{"created_by":"Tampermonkey","version":"1","scripts":[{"name":"GoogleGPT 🤖","options":{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":true,"orig_connects":["api.binjie.fun","api.openai.com","api11.gptforlove.com","cdn.jsdelivr.net","chatai.mixerbox.com","chatgpt.com","update.greasyfork.org","fanyi.sogou.com"],"orig_excludes":[],"orig_includes":["https://auth0.openai.com"],"orig_matches":["*://*.google.com/search*","*://*.google.ad/search*","*://*.google.ae/search*","*://*.google.com.af/search*","*://*.google.com.ag/search*","*://*.google.com.ai/search*","*://*.google.al/search*","*://*.google.am/search*","*://*.google.co.ao/search*","*://*.google.com.ar/search*","*://*.google.as/search*","*://*.google.at/search*","*://*.google.com.au/search*","*://*.google.az/search*","*://*.google.ba/search*","*://*.google.com.bd/search*","*://*.google.be/search*","*://*.google.bf/search*","*://*.google.bg/search*","*://*.google.com.bh/search*","*://*.google.bi/search*","*://*.google.bj/search*","*://*.google.com.bn/search*","*://*.google.com.bo/search*","*://*.google.com.br/search*","*://*.google.bs/search*","*://*.google.bt/search*","*://*.google.co.bw/search*","*://*.google.by/search*","*://*.google.com.bz/search*","*://*.google.ca/search*","*://*.google.cd/search*","*://*.google.cf/search*","*://*.google.cg/search*","*://*.google.ch/search*","*://*.google.ci/search*","*://*.google.co.ck/search*","*://*.google.cl/search*","*://*.google.cm/search*","*://*.google.cn/search*","*://*.google.com.co/search*","*://*.google.co.cr/search*","*://*.google.com.cu/search*","*://*.google.cv/search*","*://*.google.com.cy/search*","*://*.google.cz/search*","*://*.google.de/search*","*://*.google.dj/search*","*://*.google.dk/search*","*://*.google.dm/search*","*://*.google.com.do/search*","*://*.google.dz/search*","*://*.google.com.ec/search*","*://*.google.ee/search*","*://*.google.com.eg/search*","*://*.google.es/search*","*://*.google.com.et/search*","*://*.google.fi/search*","*://*.google.com.fj/search*","*://*.google.fm/search*","*://*.google.fr/search*","*://*.google.ga/search*","*://*.google.ge/search*","*://*.google.gg/search*","*://*.google.com.gh/search*","*://*.google.com.gi/search*","*://*.google.gl/search*","*://*.google.gm/search*","*://*.google.gr/search*","*://*.google.com.gt/search*","*://*.google.gy/search*","*://*.google.com.hk/search*","*://*.google.hn/search*","*://*.google.hr/search*","*://*.google.ht/search*","*://*.google.hu/search*","*://*.google.co.id/search*","*://*.google.ie/search*","*://*.google.co.il/search*","*://*.google.im/search*","*://*.google.co.in/search*","*://*.google.iq/search*","*://*.google.is/search*","*://*.google.it/search*","*://*.google.je/search*","*://*.google.com.jm/search*","*://*.google.jo/search*","*://*.google.co.jp/search*","*://*.google.co.ke/search*","*://*.google.com.kh/search*","*://*.google.ki/search*","*://*.google.kg/search*","*://*.google.co.kr/search*","*://*.google.com.kw/search*","*://*.google.kz/search*","*://*.google.la/search*","*://*.google.com.lb/search*","*://*.google.li/search*","*://*.google.lk/search*","*://*.google.co.ls/search*","*://*.google.lt/search*","*://*.google.lu/search*","*://*.google.lv/search*","*://*.google.com.ly/search*","*://*.google.co.ma/search*","*://*.google.md/search*","*://*.google.me/search*","*://*.google.mg/search*","*://*.google.mk/search*","*://*.google.ml/search*","*://*.google.com.mm/search*","*://*.google.mn/search*","*://*.google.ms/search*","*://*.google.com.mt/search*","*://*.google.mu/search*","*://*.google.mv/search*","*://*.google.mw/search*","*://*.google.com.mx/search*","*://*.google.com.my/search*","*://*.google.co.mz/search*","*://*.google.com.na/search*","*://*.google.com.ng/search*","*://*.google.com.ni/search*","*://*.google.ne/search*","*://*.google.nl/search*","*://*.google.no/search*","*://*.google.com.np/search*","*://*.google.nr/search*","*://*.google.nu/search*","*://*.google.co.nz/search*","*://*.google.com.om/search*","*://*.google.com.pa/search*","*://*.google.com.pe/search*","*://*.google.com.pg/search*","*://*.google.com.ph/search*","*://*.google.com.pk/search*","*://*.google.pl/search*","*://*.google.pn/search*","*://*.google.com.pr/search*","*://*.google.ps/search*","*://*.google.pt/search*","*://*.google.com.py/search*","*://*.google.com.qa/search*","*://*.google.ro/search*","*://*.google.ru/search*","*://*.google.rw/search*","*://*.google.com.sa/search*","*://*.google.com.sb/search*","*://*.google.sc/search*","*://*.google.se/search*","*://*.google.com.sg/search*","*://*.google.sh/search*","*://*.google.si/search*","*://*.google.sk/search*","*://*.google.com.sl/search*","*://*.google.sn/search*","*://*.google.so/search*","*://*.google.sm/search*","*://*.google.sr/search*","*://*.google.st/search*","*://*.google.com.sv/search*","*://*.google.td/search*","*://*.google.tg/search*","*://*.google.co.th/search*","*://*.google.com.tj/search*","*://*.google.tl/search*","*://*.google.tm/search*","*://*.google.tn/search*","*://*.google.to/search*","*://*.google.com.tr/search*","*://*.google.tt/search*","*://*.google.com.tw/search*","*://*.google.co.tz/search*","*://*.google.com.ua/search*","*://*.google.co.ug/search*","*://*.google.co.uk/search*","*://*.google.com.uy/search*","*://*.google.co.uz/search*","*://*.google.com.vc/search*","*://*.google.co.ve/search*","*://*.google.vg/search*","*://*.google.co.vi/search*","*://*.google.com.vn/search*","*://*.google.vu/search*","*://*.google.ws/search*","*://*.google.rs/search*","*://*.google.co.za/search*","*://*.google.co.zm/search*","*://*.google.co.zw/search*","*://*.google.cat/search*"],"orig_noframes":true,"orig_run_at":"document-idle","orig_run_in":[],"orig_tags":[],"use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":[]},"run_at":null,"run_in":null,"sandbox":null,"tags":[],"unwrap":null,"user_modified":null},"storage":{"ts":1764084296853,"data":{"googleGPT_aigcfKey":"bfalse","googleGPT_autoGetDisabled":"btrue","googleGPT_openAItoken":"seyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1UaEVOVUpHTkVNMVFURTRNMEZCTWpkQ05UZzVNRFUxUlRVd1FVSkRNRU13UmtGRVFrRXpSZyJ9.eyJodHRwczovL2FwaS5vcGVuYWkuY29tL3Byb2ZpbGUiOnsiZW1haWwiOiJ6ZGVzbGF2LnNjaHJlaWJlckBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZX0sImh0dHBzOi8vYXBpLm9wZW5haS5jb20vYXV0aCI6eyJwb2lkIjoib3JnLVZJcWNraXpuMHo0bGM1a3BaYXFva2h3MyIsInVzZXJfaWQiOiJ1c2VyLWFPbk5HV3NoTnJtR0xaN3AzaE1lS3dFTSJ9LCJpc3MiOiJodHRwczovL2F1dGgwLm9wZW5haS5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMDY3Mjc4NzY1MDIxODQ5NDk4MTIiLCJhdWQiOlsiaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MSIsImh0dHBzOi8vb3BlbmFpLm9wZW5haS5hdXRoMGFwcC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzA3MzE0NDg4LCJleHAiOjE3MDgxNzg0ODgsImF6cCI6IlRkSkljYmUxNldvVEh0Tjk1bnl5d2g1RTR5T282SXRHIiwic2NvcGUiOiJvcGVuaWQgZW1haWwgcHJvZmlsZSBtb2RlbC5yZWFkIG1vZGVsLnJlcXVlc3Qgb3JnYW5pemF0aW9uLnJlYWQgb3JnYW5pemF0aW9uLndyaXRlIG9mZmxpbmVfYWNjZXNzIn0.vUAqRnwB3lYkKcIwhr7YB4NEmVvT3_vd-LE87qlSv_qzEW3jGaCwICsoHFN9poDkPc6xnLN1IXB1nvIjf8jnXNHF5aDnUxKgNCSNRzXAnhp6UvpMYmC6oZum4Yb5Q5eSgOl1kLrNU1r-P-YyHYyY22qvDUhUhPUX25RtJrftobmPnebCAneoQgeOsPTrC88fTn9Vn462C_z9K3Y0mWcoXOFYWu5R0zM3N0-LUhyD_vo_ecJw0NhiO7APzPU1UNPxe7JaeYnf4l6RUtrAlvbP4Aict3LJAaK0GGvvR4JEKW33JfgZDGvgF3q28haN6rpO4RmtJA9Uimmg7pFWEHlTBg","googleGPT_proxyAPIenabled":"bfalse","googleGPT_replyLanguage":"shr-hr","googleGPT_widerSidebar":"bfalse"}},"enabled":false,"position":1,"file_url":"https://update.greasyfork.org/scripts/478597/GoogleGPT%20%F0%9F%A4%96.user.js","uuid":"94f575bd-b59d-4a95-b6c6-859d856a3c7e","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICAgICAgICAgICAgICBHb29nbGVHUFQg8J+klgovLyBAbmFtZTp6aC1DTiAgICAgICAgICAgICAgIEdvb2dsZUdQVCDwn6SWCi8vIEBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgQWRkcyBBSSBhbnN3ZXJzIHRvIEdvb2dsZSBTZWFyY2ggKHBvd2VyZWQgYnkgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmFmICAgICAgICAgICBWb2VnIEFJLWFudHdvb3JkZSBieSBHb29nbGUgU2VhcmNoIChhYW5nZWRyeWYgZGV1ciBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246YW0gICAgICAgICAgIOGLqCBHb29nbGUgU2VhcmNoIOGLjeGIteGMpSBBSSDhiJjhiI3hiYDhiYXhipUg4Yqg4Yu14Yit4YyN4Y2jIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g4Ymg4YiY4Yij4Yiq4Yur4YuO4Ym5IOGLjeGIteGMpSEpCi8vIEBkZXNjcmlwdGlvbjphciAgICAgICAgICAg2YrYttmK2YEg2KXYrNin2KjYp9iqIEFJINil2YTZiSBHb29nbGUgU2VhcmNoICjZhdiv2LnZiNmFINio2YjYp9iz2LfYqSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246YXMgICAgICAgICAgIEdvb2dsZSBTZWFyY2gt4Kay4KeIIEFJIOCmieCmpOCnjeCmpOCnsCDgpq/gp4vgppcg4Kam4Ka/4Kav4Ka84KeHIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g4Kam4KeN4Kas4Ka+4Kew4Ka+IOCmquCmvuCmk+CnseCmviDgprngp4jgppvgp4chKQovLyBAZGVzY3JpcHRpb246YXogICAgICAgICAgIEdvb2dsZSBTZWFyY2gteWEgQUkgY2F2YWJsYXLEsW7EsSDJmWxhdsmZIGVkaXIgKEdvb2dsZSBHZW1tYSArIEdQVC00byB0yZlyyZlmaW5kyZluIGTJmXN0yZlrbMmZbmlyISkKLy8gQGRlc2NyaXB0aW9uOmJlICAgICAgICAgICDQlNCw0LTQsNC1INCG0JAg0LDQtNC60LDQt9GLINC90LAgR29vZ2xlIFNlYXJjaCAo0L/QsNC00YLRgNGL0LzQu9GW0LLQsNC10YbRhtCwIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpiZyAgICAgICAgICAg0JTQvtCx0LDQstGPINCY0Jgg0L7RgtCz0L7QstC+0YDQuCDQsiBHb29nbGUgU2VhcmNoICjQv9C+0LTQtNGK0YDQttCw0L0g0L7RgiBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246Ym4gICAgICAgICAgIEdvb2dsZSBTZWFyY2gt4KakIEFJIOCmieCmpOCnjeCmpOCmsCDgpq/gp4vgppcg4KaV4Kaw4KeHIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g4Kam4KeN4Kas4Ka+4Kaw4Ka+IOCmquCnjeCmsOCmmuCmvuCmsuCmv+CmpCEpCi8vIEBkZXNjcmlwdGlvbjpicyAgICAgICAgICAgRG9kYWplIEFJIG9kZ292b3JlIG5hIEdvb2dsZSBTZWFyY2ggKHBva3JlxIdlIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpjYSAgICAgICAgICAgQWZlZ2VpeCByZXNwb3N0ZXMgZCdJQSBhIEdvb2dsZSBTZWFyY2ggKGltcHVsc2F0IHBlciBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246Y2ViICAgICAgICAgIE5hZ2R1Z2FuZyB1ZyBtZ2EgdHViYWcgQUkgbmdhZHRvIHNhIEdvb2dsZSBTZWFyY2ggKGdpcGFkYWdhbiBzYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246Y28gICAgICAgICAgIEFnZ2l1bmdlIHJpc3Bvc3RlIEFJIGEgR29vZ2xlIFNlYXJjaCAoc3VwcG9ydGF0ZSBkYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246Y3MgICAgICAgICAgIFDFmWlkw6F2w6EgQUkgb2Rwb3bEm2RpIGRvIEdvb2dsZSBTZWFyY2ggKHBvaMOhbsSbbm8gR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmN5ICAgICAgICAgICBZY2h3YW5lZ3UgYXRlYmlvbiBBSSBpIEdvb2dsZSBTZWFyY2ggKGEgeXJyaXIgZ2FuIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpkYSAgICAgICAgICAgVGlsZsO4amVyIEFJLXN2YXIgdGlsIEdvb2dsZSBTZWFyY2ggKGRyZXZldCBhZiBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246ZGUgICAgICAgICAgIEbDvGd0IEFJLUFudHdvcnRlbiB6dSBHb29nbGUgU2VhcmNoIGhpbnp1IChiZXRyaWViZW4gdm9uIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjplbCAgICAgICAgICAgzqDPgc6/z4POuM6tz4TOtc65IM6xz4DOsc69z4TOrs+DzrXOuc+CIEFJIM+Dz4TOvyBHb29nbGUgU2VhcmNoICjPhM+Bzr/Phs6/zrTOv8+Ezr/Pjc68zrXOvc6/IM6xz4DPjCBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246ZW4gICAgICAgICAgIEFkZHMgQUkgYW5zd2VycyB0byBHb29nbGUgU2VhcmNoIChwb3dlcmVkIGJ5IEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjplbyAgICAgICAgICAgQWxkb25hcyBBSS1yZXNwb25kb2puIGFsIEdvb2dsZSBTZWFyY2ggKGVibGlnaXRhIGRlIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjplcyAgICAgICAgICAgQcOxYWRlIHJlc3B1ZXN0YXMgZGUgSUEgYSBHb29nbGUgU2VhcmNoIChpbXB1bHNhZG8gcG9yIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpldCAgICAgICAgICAgTGlzYWIgQUktdmFzdHVzZWQgR29vZ2xlIFNlYXJjaCdsZSAoanVoaXR1ZCBHb29nbGUgR2VtbWEgKyBHUFQtNG8tZ2EhKQovLyBAZGVzY3JpcHRpb246ZXUgICAgICAgICAgIEdlaGl0dSBJQSBlcmFudHp1bmFrIEdvb2dsZSBTZWFyY2gtbiAoR29vZ2xlIEdlbW1hICsgR1BULTRvLWsgYnVsdHphdHV0YSEpCi8vIEBkZXNjcmlwdGlvbjpmYSAgICAgICAgICAg2b7Yp9iz2K7Zh9in24wg2YfZiNi02YXYtdmG2YjYuduMINio2YcgR29vZ2xlIFNlYXJjaCDYp9i22KfZgdmHINmF24zYtNmI2K8gKNiq2YjYs9i3IEdvb2dsZSBHZW1tYSArIEdQVC00byDZvti02KrbjNio2KfZhtuMINmF24zYtNmI2K8hKQovLyBAZGVzY3JpcHRpb246ZmkgICAgICAgICAgIExpc8Okw6QgdGVrb8OkbHl2YXN0YXVrc2lhIEdvb2dsZSBTZWFyY2g6aHVuIChvaGphdHR1IEdvb2dsZSBHZW1tYSArIEdQVC00bzpsbGEhKQovLyBAZGVzY3JpcHRpb246ZmlsICAgICAgICAgIE5hZ2RhcmFnZGFnIG5nIG1nYSBzYWdvdCBuZyBBSSBzYSBHb29nbGUgU2VhcmNoIChwaW5hcGFnYW5hIG5nIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpmbyAgICAgICAgICAgQsOmdGlyIEFJIHN2YXIgdmnDsCBHb29nbGUgU2VhcmNoIChkcmlmaW4gYWYgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmZyICAgICAgICAgICBBam91dGUgZGVzIHLDqXBvbnNlcyBJQSDDoCBHb29nbGUgU2VhcmNoIChwcm9wdWxzw6kgcGFyIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpmci1DQSAgICAgICAgQWpvdXRlIGRlcyByw6lwb25zZXMgSUEgw6AgR29vZ2xlIFNlYXJjaCAocHJvcHVsc8OpIHBhciBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246ZnkgICAgICAgICAgIEZvZWdldCBBSS1hbnR3dXJkZW4gdGEgb2FuIEdvb2dsZSBTZWFyY2ggKGRyZWF1biB0cm9jaCBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246Z2EgICAgICAgICAgIEN1aXJ0ZWFyIGZyZWFncmHDrSBBSSBsZSBHb29nbGUgU2VhcmNoIChkw61yw610ZWFyIGFnIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpnZCAgICAgICAgICAgQ3VyIGZyZWFnYWlydGljaGVhbiBBSSByaXMgYW4gR29vZ2xlIFNlYXJjaCAoYWlyIGEgdGh1ZyBzZWFjaGFkIGxlIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpnbCAgICAgICAgICAgRW5nYWRlIHJlc3Bvc3RhcyBkZSBJQSBhIEdvb2dsZSBTZWFyY2ggKGltcHVsc2FkbyBwb3IgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmd1ICAgICAgICAgICBHb29nbGUgU2VhcmNoIOCqruCqvuCqn+CrhyBBSSDgqpzgqrXgqr7gqqzgq4sg4KqJ4Kqu4KuH4Kqw4KuHIOCqm+CrhyAoR29vZ2xlIEdlbW1hICsgR1BULTRvIOCqpuCrjeCqteCqvuCqsOCqviDgqqrgq4vgqrXgqrDgq4fgqqEhKQovLyBAZGVzY3JpcHRpb246aGEgICAgICAgICAgIMaYYWRkYXJhIHRha2FyZHVuIEFJIHp1IEdvb2dsZSBTZWFyY2ggKGRhIGFrYSBmaSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246aGF3ICAgICAgICAgIEhvyrtvaHVpIGFrdSBpIG7EgSBob8q7b3BpyrtpIEFJIGnEgSBHb29nbGUgU2VhcmNoIChob8q7b2h1aSDKu2lhIGUgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmhlICAgICAgICAgICDXnteV16HXmdejINeq16nXldeR15XXqiBBSSDXnC1Hb29nbGUgU2VhcmNoICjXnteV16TXotecINei15wg15nXk9eZIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpoaSAgICAgICAgICAgR29vZ2xlIFNlYXJjaCDgpK7gpYfgpIIgQUkg4KSJ4KSk4KWN4KSk4KSwIOCknOCli+CkoeCkvOCkpOCkviDgpLngpYggKEdvb2dsZSBHZW1tYSArIEdQVC00byDgpKbgpY3gpLXgpL7gpLDgpL4g4KS44KSC4KSa4KS+4KSy4KS/4KSkISkKLy8gQGRlc2NyaXB0aW9uOmhtbiAgICAgICAgICBOdHhpZyBBSSBucnVhYiBucnVhYiByYXUgR29vZ2xlIFNlYXJjaCAocGFiIGN1YW0gR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmhyICAgICAgICAgICBEb2RhamUgQUkgb2Rnb3ZvcmUgbmEgR29vZ2xlIFNlYXJjaCAocG9rcmXEh2UgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmh0ICAgICAgICAgICBBam91dGUgcmVwb25zIEFJIG5hbiBHb29nbGUgU2VhcmNoIChww7J0ZSBwYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246aHUgICAgICAgICAgIEFJIHbDoWxhc3pva2F0IGFkIGhvenrDoSBhIEdvb2dsZSBTZWFyY2gtaG96IChHb29nbGUgR2VtbWEgKyBHUFQtNG8gw6FsdGFsIGhhanR2YSEpCi8vIEBkZXNjcmlwdGlvbjpoeSAgICAgICAgICAg1LHVvtWl1azVodaB1bbVuNaC1bQg1acgQUkg1brVodW/1aHVvdWt1aHVttW21aXWgCBHb29nbGUgU2VhcmNoLdW41oLVtCAo1aHVu9Wh1a/WgdW+1aHVriDVpyBHb29nbGUgR2VtbWEgKyBHUFQtNG8t1bjVviEpCi8vIEBkZXNjcmlwdGlvbjppYSAgICAgICAgICAgQWRkZSByZXNwb25hcyBBSSBhIEdvb2dsZSBTZWFyY2ggKHByb3B1bHNhdGUgcGVyIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjppZCAgICAgICAgICAgTWVuYW1iYWhrYW4gamF3YWJhbiBBSSBrZSBHb29nbGUgU2VhcmNoIChkaWR1a3VuZyBvbGVoIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjppZyAgICAgICAgICAgVGlueWUgaWhlIG5kZWvhu40gQUkgbifhu6V64buNIOG7jWfhu6Vn4bulIEdvb2dsZSBTZWFyY2ggKG4nZWZ1IG5hIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjppaSAgICAgICAgICAgR29vZ2xlIFNlYXJjaCDhkLjhlKbhkqrhlKrhkIPhk4PhkaYgQUkg4ZOH4ZGV4ZCF4ZKq4ZCD4ZGm4ZOvIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g4ZOC4ZGV4ZSq4ZGm4ZOv4ZCP4ZGm4ZGV4ZKl4ZStISkKLy8gQGRlc2NyaXB0aW9uOmlzICAgICAgICAgICBCw6Z0aXIgQUkgc3ZhciB2acOwIEdvb2dsZSBTZWFyY2ggKGtleXJpciDDoSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246aXQgICAgICAgICAgIEFnZ2l1bmdlIHJpc3Bvc3RlIEFJIGEgR29vZ2xlIFNlYXJjaCAoYWxpbWVudGF0byBkYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246aXUgICAgICAgICAgIEdvb2dsZSBTZWFyY2gg4ZGy4ZGO4ZKq4ZSq4ZaF4ZGQ4ZaF4ZGQ4ZCD4ZOQ4ZOH4ZOC4ZKDIEFJIOGRjuGRjuGVi+GWg+GVkOGTr+GSquGTguGWj+GTkCAoR29vZ2xlIEdlbW1hICsgR1BULTRvIOGRkOGRreGSp+GRpuGRluGRpiEpCi8vIEBkZXNjcmlwdGlvbjpqYSAgICAgICAgICAgR29vZ2xlIFNlYXJjaCDjgasgQUkg5Zue562U44KS6L+95Yqg44GX44G+44GZIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g44Gn5YuV5L2c77yBKQovLyBAZGVzY3JpcHRpb246anYgICAgICAgICAgIE5hbWLDqWhpIHBpcmFuZ2dhIEFJIG5nYW50aSBHb29nbGUgU2VhcmNoIChkaWR1d2VuaSBkw6luaW5nIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjprYSAgICAgICAgICAg4YOQ4YOb4YOQ4YOi4YOU4YOR4YOhIEFJIOGDnuGDkOGDoeGDo+GDruGDlOGDkeGDoSBHb29nbGUgU2VhcmNoLeGDoSAo4YOY4YOb4YOQ4YOg4YOX4YOU4YOR4YOQIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjprayAgICAgICAgICAgR29vZ2xlIFNlYXJjaC3Sk9CwIEFJINC20LDRg9Cw0L/RgtCw0YDRi9C9INKb0L7RgdCw0LTRiyAoR29vZ2xlIEdlbW1hICsgR1BULTRvINCw0YDSm9GL0LvRiyDQttKx0LzRi9GBINGW0YHRgtC10LnQtNGWISkKLy8gQGRlc2NyaXB0aW9uOmtsICAgICAgICAgICBHb29nbGUgU2VhcmNoLW1pIEFJLXQgS2FsYWFsbGl0IE51bmFhbm5pIGlsdWFuaSAoR29vZ2xlIEdlbW1hICsgR1BULTRvISAtbmlwIGlsYWFubmkhKQovLyBAZGVzY3JpcHRpb246a20gICAgICAgICAgIOGelOGek+GfkuGekOGfguGemOGeheGemOGfkuGem+GevuGemSBBSSDhnpHhn4UgR29vZ2xlIFNlYXJjaCAo4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4Z6K4Z+E4Z6ZIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjprbiAgICAgICAgICAgR29vZ2xlIFNlYXJjaCDgspfgs4YgQUkg4LKJ4LKk4LON4LKk4LKw4LKX4LKz4LKo4LON4LKo4LOBIOCyuOCzh+CysOCyv+CyuOCzgeCypOCzjeCypOCypuCzhiAoR29vZ2xlIEdlbW1hICsgR1BULTRvIOCyqOCyv+CyguCypiDgsqjgsqHgs4bgsrjgsrLgs43gsqrgsqHgs4HgsqTgs43gsqTgsr/gsqbgs4YhKQovLyBAZGVzY3JpcHRpb246a28gICAgICAgICAgIEdvb2dsZSBTZWFyY2jsl5AgQUkg64u167OA7J2EIOy2lOqwgO2VqeuLiOuLpChHb29nbGUgR2VtbWEgKyBHUFQtNG8g7KCc6rO1ISkKLy8gQGRlc2NyaXB0aW9uOmt1ICAgICAgICAgICBCZXJzaXbDqm4gQUktw6ogbGkgR29vZ2xlIFNlYXJjaCB6w6pkZSBkaWtlIChqaSBow6psYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8gdmUgaGF0w64gaMOqemRhciBraXJpbiEpCi8vIEBkZXNjcmlwdGlvbjpreSAgICAgICAgICAgR29vZ2xlIFNlYXJjaCfQs9C+IEFJINC20L7QvtC/0YLQvtGA0YPQvSDQutC+0YjQvtGCIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g0YLQsNGA0LDQsdGL0L3QsNC9INC40YjRgtC10LnRgiEpCi8vIEBkZXNjcmlwdGlvbjpsYSAgICAgICAgICAgQWRkaXQgQUkgcmVzcG9uc2EgR29vZ2xlIFNlYXJjaCAocG93ZXJlZCBwZXIgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmxiICAgICAgICAgICBGw7zDvGd0IEFJIMOEbnR3ZXJ0ZW4gb3AgR29vZ2xlIFNlYXJjaCAodWdlZHJpd3dlbiBkdWVyY2ggR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmxnICAgICAgICAgICBZYW1idWxhIGVtaXNvbW8gZXknZW5zb2JpIGt1IEdvb2dsZSBTZWFyY2ggKGVua3V1bWEgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOmxuICAgICAgICAgICBFYmFraXNpIGJpeWFubyB5YSBBSSBuYSBHb29nbGUgU2VhcmNoIChlemFsaSBuYSBuZ3V5YSB5YSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246bG8gICAgICAgICAgIOC7gOC6nuC6teC7iOC6oeC6hOC7jeC6suC6leC6reC6miBBSSDgu4Pguqvgu4nguoHgurHgupogR29vZ2xlIFNlYXJjaCAo4LqC4Lqx4Lqa4LuA4LqE4Lq34LuI4Lqt4LqZ4LuC4LqU4LqNIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpsdCAgICAgICAgICAgUHJpZGVkYSBBSSBhdHNha3ltdXMgxK8g4oCeR29vZ2xlIFNlYXJjaOKAnCAobWFpdGluYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246bHYgICAgICAgICAgIFBpZXZpZW5vIEFJIGF0YmlsZGVzIEdvb2dsZSBTZWFyY2ggKGRhcmJpbmEgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOm1nICAgICAgICAgICBNYW5hbXB5IHZhbGlueSBBSSBhbWluJ255IEdvb2dsZSBTZWFyY2ggKG5hbXBpYXNhaW4nbnkgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOm1pICAgICAgICAgICBLYSB0YWFwaXJpaGlhIG5nYSB3aGFrYXV0dSBBSSBraSBhIEdvb2dsZSBTZWFyY2ggKHdoYWthbWFoaWEgZSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246bWsgICAgICAgICAgINCU0L7QtNCw0LLQsCDQvtC00LPQvtCy0L7RgNC4INGB0L4g0LLQtdGI0YLQsNGH0LrQsCDQuNC90YLQtdC70LjQs9C10L3RhtC40ZjQsCDQvdCwIEdvb2dsZSBTZWFyY2ggKNC90LDQv9C+0ZjRg9Cy0LDQvdC+INC+0LQgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOm1sICAgICAgICAgICBHb29nbGUgU2VhcmNoLeC0r+C0v+C0suC1h+C0leC1jeC0leC1jSBBSSDgtIngtKTgtY3gtKTgtLDgtJngtY3gtJngtb4g4LSa4LWH4LW84LSV4LWN4LSV4LWB4LSo4LWN4LSo4LWBIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g4LSo4LW94LSV4LWB4LSo4LWN4LSo4LSk4LS+4LSj4LWNISkKLy8gQGRlc2NyaXB0aW9uOm1uICAgICAgICAgICBHb29nbGUgU2VhcmNoLdC0IEFJINGF0LDRgNC40YPQu9GC0YPRg9C00YvQsyDQvdGN0LzQtNGN0LMgKEdvb2dsZSBHZW1tYSArIEdQVC00by3QvtC+0YAg0LDQttC40LvQu9Cw0LTQsNCzISkKLy8gQGRlc2NyaXB0aW9uOm1yICAgICAgICAgICBHb29nbGUgU2VhcmNoIOCksuCkviBBSSDgpIngpKTgpY3gpKTgpLDgpYcg4KSc4KWL4KSh4KSk4KWHIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g4KSm4KWN4KS14KS+4KSw4KWHIOCkuOCkruCksOCljeCkpeCkv+CkpCEpCi8vIEBkZXNjcmlwdGlvbjptcyAgICAgICAgICAgTWVuYW1iYWhrYW4gamF3YXBhbiBBSSBwYWRhIEdvb2dsZSBTZWFyY2ggKGRpa3Vhc2FrYW4gb2xlaCBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246bXQgICAgICAgICAgIEnFvMW8aWQgaXQtdHdlxKFpYmlldCBBSSBnxKdhbCBHb29nbGUgU2VhcmNoIChtxKdhZGRtYSBtaW5uIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpteSAgICAgICAgICAgR29vZ2xlIFNlYXJjaCAoR29vZ2xlIEdlbW1hICsgR1BULTRvIOGAluGAvOGAhOGAt+GAuiDhgIXhgL3hgJnhgLrhgLjhgIbhgLHhgKzhgIThgLrhgJHhgKzhgLjhgJ7hgIrhgLfhgLopIOGAkOGAveGAhOGAuiBBSSDhgKHhgJbhgLzhgLHhgJnhgLvhgKzhgLjhgIDhgK3hgK8g4YCV4YCx4YCr4YCE4YC64YC44YCR4YCK4YC34YC64YCe4YCK4YC6Ci8vIEBkZXNjcmlwdGlvbjpuYSAgICAgICAgICAgQWV0YSBBSSB0ZXJvbWEgaSBHb29nbGUgU2VhcmNoIChpcmEgR29vZ2xlIEdlbW1hICsgR1BULTRvIHJla2UgYWtlYSEpCi8vIEBkZXNjcmlwdGlvbjpuYiAgICAgICAgICAgTGVnZ2VyIHRpbCBBSS1zdmFyIHDDpSBHb29nbGUgU2VhcmNoIChkcmV2ZXQgYXYgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOm5kICAgICAgICAgICBJeWF0aG9sYWthbGEgYW1hc3dlbGVsbyBlLUFJIGt1R29vZ2xlIFNlYXJjaCAoa3V5YXRob2xha2FsYSBuZ29rdWxhd3VsYSB1R29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOm5lICAgICAgICAgICBHb29nbGUgU2VhcmNoIOCkruCkviBBSSDgpJzgpLXgpL7gpKvgpLngpLDgpYIg4KSl4KSq4KWN4KSbIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g4KSm4KWN4KS14KS+4KSw4KS+IOCkuOCkguCkmuCkvuCksuCkv+CkpCEpCi8vIEBkZXNjcmlwdGlvbjpuZyAgICAgICAgICAgT25kam92YSBtYmVsZWxvIGRoYSBBSSBtb0dvb2dsZSBTZWFyY2ggKHV1bWJ1bGkgbmd1R29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOm5sICAgICAgICAgICBWb2VndCBBSS1hbnR3b29yZGVuIHRvZSBhYW4gR29vZ2xlIFNlYXJjaCAobW9nZWxpamsgZ2VtYWFrdCBkb29yIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpubiAgICAgICAgICAgTGVnZyB0aWwgQUktc3ZhciBww6UgR29vZ2xlIFNlYXJjaCAoZHJldmV0IGF2IEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpubyAgICAgICAgICAgTGVnZ2VyIHRpbCBBSS1zdmFyIHRpbCBHb29nbGUgU2VhcmNoIChkcmV2ZXQgYXYgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOm5zbyAgICAgICAgICBZYSBnbyBldGVsYSBkaXRzaGVueWVnaSB0c2EgQUkgbW8gR29vZ2xlIFNlYXJjaCAoZSBkaXJ3YW5nIGtlIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpueSAgICAgICAgICAgSW1hd29uamV6ZXJhIG1heWFua2hvIGEgQUkga3UgR29vZ2xlIFNlYXJjaCAoeW95ZW5kZXRzZWR3YSBuZGkgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOm9jICAgICAgICAgICBBanVzdGEgZGUgcmVzcG/MgHN0YXMgZCdJQSBhIEdvb2dsZSBTZWFyY2ggKGFtYiBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246b20gICAgICAgICAgIERlZWJpaSBBSSBHb29nbGUgU2VhcmNoIChHb29nbGUgR2VtbWEgKyBHUFQtNG8nbiBrYW4gaG9qamV0dSEpIGlycmF0dGkgZGFiYWxhdGEuCi8vIEBkZXNjcmlwdGlvbjpvciAgICAgICAgICAgR29vZ2xlIFNlYXJjaCDgrJXgrYEgQUkg4KyJ4Kyk4K2N4Kyk4KywIOCsr+Cti+CslyDgrJXgrLDgrYcgKEdvb2dsZSBHZW1tYSArIEdQVC00byDgrKbgrY3grbHgrL7grLDgrL4g4Kya4Ky+4Kyz4Ky/4KykISkKLy8gQGRlc2NyaXB0aW9uOnBhICAgICAgICAgICBHb29nbGUgU2VhcmNoIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g4Kim4KmB4KiG4Kiw4Ki+IOCouOCpsOComuCovuCosuCov+CopCEpIOCoteCov+CpseComiBBSSDgqJzgqLXgqL7gqKwg4Ki44Ki84Ki+4Kiu4KiyIOColeCosOCopuCoviDgqLngqYgKLy8gQGRlc2NyaXB0aW9uOnBsICAgICAgICAgICBEb2RhamUgb2Rwb3dpZWR6aSBBSSBkbyBHb29nbGUgU2VhcmNoIChvYnPFgnVnaXdhbmUgcHJ6ZXogR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnBzICAgICAgICAgICBHb29nbGUgU2VhcmNoINiq2Ycg2K8gQUkg2oHZiNin2KjZiNmG2Ycg2KfYttin2YHZhyDaqdmI2YogKNivIEdvb2dsZSBHZW1tYSArIEdQVC00byDZhNiu2YjYpyDZvtix2YXYriDZiNqT2YQg2qnbjNqW2YohKQovLyBAZGVzY3JpcHRpb246cHQgICAgICAgICAgIEFkaWNpb25hIHJlc3Bvc3RhcyBkZSBJQSBhbyBHb29nbGUgU2VhcmNoIChkZXNlbnZvbHZpZG8gcG9yIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpwdC1CUiAgICAgICAgQWRpY2lvbmEgcmVzcG9zdGFzIGRlIElBIGFvIEdvb2dsZSBTZWFyY2ggKGRlc2Vudm9sdmlkbyBwb3IgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnF1ICAgICAgICAgICBHb29nbGUgU2VhcmNoIChHb29nbGUgR2VtbWEgKyBHUFQtNG8gbmlzcWF3YW4ga2FsbHBhY2hhc3FhISkgbmlzcWFtYW4gQUkga3V0aWNoaXlrdW5hdGEgeWFwYW4uCi8vIEBkZXNjcmlwdGlvbjpybSAgICAgICAgICAgQWdpdW50ZXNjaGEgcmVzcG9zdGFzIGQnSUEgYSBHb29nbGUgU2VhcmNoIChwcm9wdWxzw6AgZGEgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnJuICAgICAgICAgICBBYmFmYXNoYSBpbnlhbmRpa28geidJQSBrdSBHb29nbGUgU2VhcmNoICh5YXNoeWl6d2VobyBuYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246cm8gICAgICAgICAgIEFkYXVnxIMgcsSDc3B1bnN1cmkgQUkgbGEgR29vZ2xlIFNlYXJjaCAoYWxpbWVudGF0IGRlIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpydSAgICAgICAgICAg0JTQvtCx0LDQstC70Y/QtdGCINC+0YLQstC10YLRiyDQmNCYINCyIEdvb2dsZSBTZWFyY2ggKNC90LAg0LHQsNC30LUgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnJ3ICAgICAgICAgICBPbmdlcmFobyBpYmlzdWJpem8gYnlhIEFJIGt1cmkgR29vZ2xlIFNlYXJjaCAoaWtvcmVzaHdhIG5hIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpzYSAgICAgICAgICAgR29vZ2xlIFNlYXJjaCAoR29vZ2xlIEdlbW1hICsgR1BULTRvIOCkpuCljeCkteCkvuCksOCkviDgpLjgpILgpJrgpL7gpLLgpL/gpKTgpK7gpY0hKSDgpIfgpKTgpY3gpK/gpKTgpY3gpLAgQUkg4KSJ4KSk4KWN4KSk4KSw4KS+4KSj4KS/IOCkr+Cli+CknOCkr+CkpOCkvyDgpaQKLy8gQGRlc2NyaXB0aW9uOnNhdCAgICAgICAgICBHb29nbGUgU2VhcmNoIGFyIEFJIGphd2FiIGtob24gb2phbnRvayAoR29vZ2xlIEdlbW1hICsgR1BULTRvISBzZWJhZGhhIG1hbmp1KQovLyBAZGVzY3JpcHRpb246c2MgICAgICAgICAgIEFnaXVuZ2l0IHJpc3Bvc3RhcyBkZSBJQSBhIEdvb2dsZSBTZWFyY2ggKG1vdG9yaXphZHUgZGEgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnNkICAgICAgICAgICDYtNin2YXZhCDaqtix2Yog2b/ZiCBBSSDYrNmI2KfYqNmGINqp2YogR29vZ2xlIFNlYXJjaCAoR29vZ2xlIEdlbW1hICsgR1BULTRvINm+2KfYsdin2YYg2LfYp9mC2KrZiNixISkKLy8gQGRlc2NyaXB0aW9uOnNlICAgICAgICAgICBMw6F2ZGVnw6FodGlpIEFJIHbDoXN0aWQgR29vZ2xlIFNlYXJjaCAoR29vZ2xlIEdlbW1hICsgR1BULTRvISB2dW9zdHRhcyEpCi8vIEBkZXNjcmlwdGlvbjpzZyAgICAgICAgICAgTsOiIHTDri1rw7t6w6IgbcOhaSB2w6pkw6FhcmEgQUkgbWJpIEdvb2dsZSBTZWFyY2ggKG5nw6IgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnNpICAgICAgICAgICBHb29nbGUgU2VhcmNoIOC3gOC3meC2rSBBSSDgtrTgt5Lgt4Xgt5Lgtq3gt5Tgtrvgt5Qg4LaR4Laa4LeKIOC2muC2u+C2uuC3kiAoR29vZ2xlIEdlbW1hICsgR1BULTRvIOC2uOC2nOC3kuC2seC3iiDgtrbgtr3gtpzgtrHgt4rgt4Dgtrrgt5IhKQovLyBAZGVzY3JpcHRpb246c2sgICAgICAgICAgIFByaWTDoXZhIG9kcG92ZWRlIEFJIGRvIEdvb2dsZSBTZWFyY2ggKHBvaMOhxYhhbsOpIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpzbCAgICAgICAgICAgRG9kYWphIG9kZ292b3JlIEFJIHYgR29vZ2xlIFNlYXJjaCAocG9nYW5qYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246c20gICAgICAgICAgIEZhyrthb3Bvb3BvIHRhbGkgQUkgaWxlIEdvb2dsZSBTZWFyY2ggKGZhyrthbWFsb3NpYSBlIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpzbiAgICAgICAgICAgSW5vd2VkemVyYSBtaGluZHVybyBkemVBSSBrdUdvb2dsZSBTZWFyY2ggKGlub2ZhbWJpc3dhIG5lR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnNvICAgICAgICAgICBXYXhheSBrdSBkYXJ0YXkgamF3YWFiYWhhIEFJIEdvb2dsZSBTZWFyY2ggKHdheGFhIGt1IHNoYXFlZXlhIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpzcSAgICAgICAgICAgU2h0b24gcMOrcmdqaWdqZXQgZSBBSSBuw6sgR29vZ2xlIFNlYXJjaCAobXVuZMOrc3VhciBuZ2EgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnNyICAgICAgICAgICDQlNC+0LTQsNGY0LUg0JDQmCDQvtC00LPQvtCy0L7RgNC1INGDIEdvb2dsZSBTZWFyY2ggKNC/0L7QutGA0LXRm9C1INCT0J/Qoi000L4hKQovLyBAZGVzY3JpcHRpb246c3MgICAgICAgICAgIElwaGVuZHZ1bGVsYSBpemluZGxlbGEgemV6aWx1bmdpc2VsZWxvIGt1LUdvb2dsZSBTZWFyY2ggKGl6ZW56YWthbG8gbmdlLUdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpzdCAgICAgICAgICAgRSBrb3BhbmV0c2UgZGlxb3FvIHRzYSBBSSBrYSBHb29nbGUgU2VhcmNoIChrYSBzZWJlbGlzb2Ega2UgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnN1ICAgICAgICAgICBOYW1iYWhrZXVuIGphd2FiYW4gQUkga2FuYSBHb29nbGUgU2VhcmNoIChkaWt1YXRrZXVuIGt1IEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjpzdiAgICAgICAgICAgTMOkZ2dlciB0aWxsIEFJLXN2YXIgdGlsbCBHb29nbGUgU2VhcmNoIChkcml2ZW4gYXYgR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnN3ICAgICAgICAgICBJbmFvbmdlemEgbWFqaWJ1IHlhIEFJIGt3YSBHb29nbGUgU2VhcmNoIChpbmFlbmRlc2h3YSBuYSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246dGEgICAgICAgICAgIEdvb2dsZSBTZWFyY2gg4K6V4K+N4K6V4K+BIEFJIOCuquCupOCuv+CusuCvjeCuleCus+CviOCumuCvjSDgrprgr4fgrrDgr43grpXgr43grpXgrr/grrHgrqTgr4EgKEdvb2dsZSBHZW1tYSArIEdQVC00byDgrq7gr4LgrrLgrq7gr40g4K6H4K6v4K6V4K+N4K6V4K6q4K+N4K6q4K6f4K+B4K6V4K6/4K6x4K6k4K+BISkKLy8gQGRlc2NyaXB0aW9uOnRlICAgICAgICAgICBHb29nbGUgU2VhcmNo4LCV4LC/IEFJIOCwuOCwruCwvuCwp+CwvuCwqOCwvuCwsuCwqOCxgSDgsJzgsYvgsKHgsL/gsLjgsY3gsKTgsYHgsILgsKbgsL8gKEdvb2dsZSBHZW1tYSArIEdQVC00byDgsKbgsY3gsLXgsL7gsLDgsL4g4LCG4LCn4LC+4LCw4LC/4LCk4LCCISkKLy8gQGRlc2NyaXB0aW9uOnRnICAgICAgICAgICDQkdCwIEdvb2dsZSBTZWFyY2gg0rfQsNCy0L7QsdKz0L7QuCBBSSDQuNC70L7QstCwINC80LXQutGD0L3QsNC0ICjQsNC3INK30L7QvdC40LHQuCBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246dGggICAgICAgICAgIOC5gOC4nuC4tOC5iOC4oeC4hOC4s+C4leC4reC4miBBSSDguYPguKvguYnguIHguLHguJogR29vZ2xlIFNlYXJjaCAo4LiC4Lix4Lia4LmA4LiE4Lil4Li34LmI4Lit4LiZ4LmC4LiU4LiiIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjp0aSAgICAgICAgICAg4YqT4YmlIEdvb2dsZSBTZWFyY2ggKOGJpUdvb2dsZSBHZW1tYSArIEdQVC00byDhi53hiLDhiK3hiJUhKSDhipPhi60gQUkg4YiY4YiN4Yi14Ymz4Ym1IOGLreGLjeGIteGKuOGIieGNogovLyBAZGVzY3JpcHRpb246dGsgICAgICAgICAgIEdvb2dsZSBTZWFyY2gtYSBBSSBqb2dhcGxhcnlueSBnb8Wfw71hciAoR29vZ2xlIEdlbW1hICsgR1BULTRvIGJpbGVuIGnFn2xlw73DpHIhKQovLyBAZGVzY3JpcHRpb246dGwgICAgICAgICAgIE5hZ2RhZGFnZGFnIG5nIG1nYSBzYWdvdCBuZyBBSSBzYSBHb29nbGUgU2VhcmNoIChwaW5hcGF0YWtibyBuZyBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246dG4gICAgICAgICAgIE8gYW1vZ2VsYSBkaXBvdHNvIHRzYSBBSSBtbyBHb29nbGUgU2VhcmNoIChlIGEgbmFuZyBsZSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246dG8gICAgICAgICAgIFRhbWJpc2EgbWFiaXpvIGEgQUkga3UgR29vZ2xlIFNlYXJjaCAobXVrdXRlbmdhIG5hIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjp0ciAgICAgICAgICAgR29vZ2xlIFNlYXJjaCd5YSB5YXBheSB6ZWthIHlhbsSxdGxhcsSxIGVrbGVyIChHb29nbGUgR2VtbWEgKyBHUFQtNG8gdGFyYWbEsW5kYW4gZGVzdGVrbGVubWVrdGVkaXIhKQovLyBAZGVzY3JpcHRpb246dHMgICAgICAgICAgIEt1IGVuZ2V0ZWxhIHRpbmhsYW11bG8gdGEgQUkgZWthIEdvb2dsZSBTZWFyY2ggKGxleWkgZmFtYml3YWthIGhpIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjp0dCAgICAgICAgICAgR29vZ2xlIFNlYXJjaCfQutCwIEFJINKX0LDQstCw0L/Qu9Cw0YDRiyDTqdGB0YLQuCAoR29vZ2xlIEdlbW1hICsgR1BULTRvINCx0LXQu9OZ0L0g0Y3RiNC705nQvdCz05nQvSEpCi8vIEBkZXNjcmlwdGlvbjp0dyAgICAgICAgICAgxoZkZSBBSSBtbXVhZSBrYSBHb29nbGUgU2VhcmNoIChhIEdvb2dsZSBHZW1tYSArIEdQVC00byBuYSDJm21hIGFob8mUZGVuISkgaG8uCi8vIEBkZXNjcmlwdGlvbjp1ZyAgICAgICAgICAgR29vZ2xlIFNlYXJjaCDbi9uV2KjYs9uQ2KrZg9uVIEFJINis2Kfbi9in2KjZhNin2LEg2YLZiNi024fYr9uHIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g2KrbldmD2LTbiNix2q/biNqG2Ykg2KjZidmE25XZhiEpCi8vIEBkZXNjcmlwdGlvbjp1ayAgICAgICAgICAg0JTQvtC00LDRlCDQstGW0LTQv9C+0LLRltC00ZYg0YjRgtGD0YfQvdC+0LPQviDRltC90YLQtdC70LXQutGC0YMg0LIgR29vZ2xlIFNlYXJjaCAo0L3QsCDQsdCw0LfRliBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246dXIgICAgICAgICAgIEdvb2dsZSBTZWFyY2gg2YXbjNq6IEFJINis2YjYp9io2KfYqiDYtNin2YXZhCDaqdix2KrYpyDbgduSIChHb29nbGUgR2VtbWEgKyBHUFQtNG8g2qnbkiDYsNix24zYuduSINiq2YLZiNuM2Kog24zYp9mB2KrbgSEpCi8vIEBkZXNjcmlwdGlvbjp1eiAgICAgICAgICAgR29vZ2xlIFNlYXJjaC1nYSBBSSBqYXZvYmxhcmluaSBxbydzaGFkaSAoR29vZ2xlIEdlbW1hICsgR1BULTRvIHRvbW9uaWRhbiBxdXZ2YXRsYW5hZGkhKQovLyBAZGVzY3JpcHRpb246dmkgICAgICAgICAgIFRow6ptIGPDonUgdHLhuqMgbOG7nWkgQUkgdsOgbyBHb29nbGUgU2VhcmNoICjEkcaw4bujYyBjdW5nIGPhuqVwIGLhu59pIEdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjp4aCAgICAgICAgICAgWW9uZ2V6YSBpaW1wZW5kdWxvIHplLUFJIGt3aS1Hb29nbGUgU2VhcmNoIChpeGhhc3dlIHlpLUdvb2dsZSBHZW1tYSArIEdQVC00byEpCi8vIEBkZXNjcmlwdGlvbjp5aSAgICAgICAgICAg15zXmdeZ15LXmCDXkNa315kg16LXoNeY16TWv9ei16jXoSDXpteVIEdvb2dsZSBTZWFyY2ggKFBvd2VyZWQg15PXldeo15ogR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGRlc2NyaXB0aW9uOnlvICAgICAgICAgICDhuaJlIGFmaWt1biBhd+G7jW4gaWRhaHVuIEFJIHNpIEdvb2dsZSBTZWFyY2ggKGFnYmFyYSBuaXBhc+G6uSBHb29nbGUgR2VtbWEgKyBHUFQtNG8hKQovLyBAZGVzY3JpcHRpb246emggICAgICAgICAgIOS4uiBHb29nbGUgU2VhcmNoIOa3u+WKoCBBSSDnrZTmoYjvvIjnlLEgR29vZ2xlIEdlbW1hICsgR1BULTRvIOaPkOS+m+aUr+aMge+8ge+8iQovLyBAZGVzY3JpcHRpb246emgtQ04gICAgICAgIOS4uiBHb29nbGUgU2VhcmNoIOa3u+WKoCBBSSDnrZTmoYjvvIjnlLEgR29vZ2xlIEdlbW1hICsgR1BULTRvIOaPkOS+m+aUr+aMge+8ge+8iQovLyBAZGVzY3JpcHRpb246emgtSEsgICAgICAgIOeCuiBHb29nbGUgU2VhcmNoIOa3u+WKoCBBSSDnrZTmoYjvvIjnlLEgR29vZ2xlIEdlbW1hICsgR1BULTRvIOaPkOS+m+aUr+aPtO+8ge+8iQovLyBAZGVzY3JpcHRpb246emgtU0cgICAgICAgIOS4uiBHb29nbGUgU2VhcmNoIOa3u+WKoCBBSSDnrZTmoYjvvIjnlLEgR29vZ2xlIEdlbW1hICsgR1BULTRvIOaPkOS+m+aUr+aMge+8ge+8iQovLyBAZGVzY3JpcHRpb246emgtVFcgICAgICAgIOeCuiBHb29nbGUgU2VhcmNoIOa3u+WKoCBBSSDnrZTmoYjvvIjnlLEgR29vZ2xlIEdlbW1hICsgR1BULTRvIOaPkOS+m+aUr+aPtO+8ge+8iQovLyBAZGVzY3JpcHRpb246enUgICAgICAgICAgIFllbmdlemEgaXppbXBlbmR1bG8gemUtQUkga3UtR29vZ2xlIFNlYXJjaCAoaW5pa3dhIGFtYW5kbGEgeWktR29vZ2xlIEdlbW1hICsgR1BULTRvISkKLy8gQGF1dGhvciAgICAgICAgICAgICAgICAgICBLdWRvQUkKLy8gQG5hbWVzcGFjZSAgICAgICAgICAgICAgICBodHRwczovL2t1ZG9haS5jb20KLy8gQHZlcnNpb24gICAgICAgICAgICAgICAgICAyMDI1LjEuMTEuMgovLyBAbGljZW5zZSAgICAgICAgICAgICAgICAgIE1JVAovLyBAaWNvbiAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vYXNzZXRzLmdvb2dsZWdwdC5pby9pbWFnZXMvaWNvbnMvZ29vZ2xlZ3B0L2JsYWNrL2ljb240OC5wbmc/dj01OTQwOWIyCi8vIEBpY29uNjQgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9hc3NldHMuZ29vZ2xlZ3B0LmlvL2ltYWdlcy9pY29ucy9nb29nbGVncHQvYmxhY2svaWNvbjY0LnBuZz92PTU5NDA5YjIKLy8gQGFudGlmZWF0dXJlICAgICAgICAgICAgICBhZHMgQSB2ZXJ5IHRpbnkgdGV4dCBhZCBkaXNwbGF5cyBiZWxvdyBHb29nbGVHUFQgY2hhdGJhci4gVGhpcyBtb3RpdmF0ZXMgbWUgdG8gc3BlbmQgb3RoZXJ3aXNlIHVucGFpZCB0aW1lIHVwZ3JhZGluZyBzY3JpcHQgdy8gbmV3IGZlYXR1cmVzICYgQVBJcy4KLy8gQGFudGlmZWF0dXJlICAgICAgICAgICAgICByZWZlcnJhbC1saW5rCi8vIEBjb21wYXRpYmxlICAgICAgICAgICAgICAgY2hyb21lIGV4Y2VwdCBmb3IgU3RyZWFtaW5nIE1vZGUgdy8gVGFtcGVybW9ua2V5ICh1c2UgU2NyaXB0Q2F0IGluc3RlYWQpCi8vIEBjb21wYXRpYmxlICAgICAgICAgICAgICAgZmlyZWZveAovLyBAY29tcGF0aWJsZSAgICAgICAgICAgICAgIGVkZ2UgZXhjZXB0IGZvciBTdHJlYW1pbmcgTW9kZSB3LyBUYW1wZXJtb25rZXkgKHVzZSBTY3JpcHRDYXQgaW5zdGVhZCkKLy8gQGNvbXBhdGlibGUgICAgICAgICAgICAgICBzYWZhcmkKLy8gQGNvbXBhdGlibGUgICAgICAgICAgICAgICBvcGVyYSBhZnRlciBhbGxvd2luZyB1c2Vyc2NyaXB0IG1hbmFnZXIgYWNjZXNzIHRvIHNlYXJjaCBwYWdlIHJlc3VsdHMgaW4gb3BlcmE6Ly9leHRlbnNpb25zCi8vIEBjb21wYXRpYmxlICAgICAgICAgICAgICAgYnJhdmUgZXhjZXB0IGZvciBTdHJlYW1pbmcgTW9kZSB3LyBUYW1wZXJtb25rZXkgKHVzZSBTY3JpcHRDYXQgaW5zdGVhZCkKLy8gQGNvbXBhdGlibGUgICAgICAgICAgICAgICB2aXZhbGRpIGV4Y2VwdCBmb3IgU3RyZWFtaW5nIE1vZGUgdy8gVGFtcGVybW9ua2V5ICh1c2UgU2NyaXB0Q2F0IGluc3RlYWQpCi8vIEBjb21wYXRpYmxlICAgICAgICAgICAgICAgd2F0ZXJmb3gKLy8gQGNvbXBhdGlibGUgICAgICAgICAgICAgICBsaWJyZXdvbGYKLy8gQGNvbXBhdGlibGUgICAgICAgICAgICAgICBnaG9zdAovLyBAY29tcGF0aWJsZSAgICAgICAgICAgICAgIHFxCi8vIEBjb21wYXRpYmxlICAgICAgICAgICAgICAgd2hhbGUKLy8gQGNvbXBhdGlibGUgICAgICAgICAgICAgICBraXdpCi8vIEBjb21wYXRpYmxlICAgICAgICAgICAgICAgbWFzawovLyBAY29tcGF0aWJsZSAgICAgICAgICAgICAgIG9yaW9uCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmFkL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuYWUvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uYWYvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uYWcvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uYWkvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5hbC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmFtL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28uYW8vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uYXIvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5hcy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmF0L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLmF1L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuYXovc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5iYS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5iZC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmJlL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuYmYvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5iZy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5iaC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmJpL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuYmovc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uYm4vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uYm8vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uYnIvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5icy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmJ0L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28uYncvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5ieS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5iei9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNhL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY2Qvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jZi9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNnL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY2gvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jaS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvLmNrL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY2wvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jbS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNuL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLmNvL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28uY3Ivc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uY3Uvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jdi9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5jeS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmN6L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuZGUvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5kai9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmRrL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuZG0vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uZG8vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5kei9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5lYy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmVlL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLmVnL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuZXMvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uZXQvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5maS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5mai9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmZtL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuZnIvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5nYS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmdlL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuZ2cvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uZ2gvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uZ2kvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5nbC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmdtL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuZ3Ivc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uZ3Qvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5neS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5oay9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmhuL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuaHIvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5odC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmh1L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28uaWQvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5pZS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvLmlsL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuaW0vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jby5pbi9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmlxL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuaXMvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5pdC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmplL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLmptL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuam8vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jby5qcC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvLmtlL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLmtoL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUua2kvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5rZy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvLmtyL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLmt3L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUua3ovc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5sYS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5sYi9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmxpL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUubGsvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jby5scy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmx0L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUubHUvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5sdi9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5seS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvLm1hL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUubWQvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5tZS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLm1nL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUubWsvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5tbC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5tbS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLm1uL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUubXMvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20ubXQvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5tdS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLm12L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUubXcvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20ubXgvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20ubXkvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jby5tei9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5uYS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5uZy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5uaS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLm5lL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUubmwvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5uby9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5ucC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLm5yL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUubnUvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jby5uei9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5vbS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5wYS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5wZS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5wZy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5waC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5way9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnBsL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUucG4vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20ucHIvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5wcy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnB0L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLnB5L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLnFhL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUucm8vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5ydS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnJ3L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLnNhL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLnNiL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuc2Mvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5zZS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5zZy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnNoL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuc2kvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5zay9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS5zbC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnNuL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuc28vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5zbS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnNyL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuc3Qvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20uc3Yvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS50ZC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnRnL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28udGgvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20udGovc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS50bC9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnRtL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUudG4vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS50by9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvbS50ci9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnR0L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLnR3L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28udHovc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20udWEvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jby51Zy9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvLnVrL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY29tLnV5L3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28udXovc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20udmMvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jby52ZS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLnZnL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28udmkvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jb20udm4vc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS52dS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLndzL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUucnMvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jby56YS9zZWFyY2gqCi8vIEBtYXRjaCAgICAgICAgICAgICAgICAgICAgKjovLyouZ29vZ2xlLmNvLnptL3NlYXJjaCoKLy8gQG1hdGNoICAgICAgICAgICAgICAgICAgICAqOi8vKi5nb29nbGUuY28uencvc2VhcmNoKgovLyBAbWF0Y2ggICAgICAgICAgICAgICAgICAgICo6Ly8qLmdvb2dsZS5jYXQvc2VhcmNoKgovLyBAaW5jbHVkZSAgICAgICAgICAgICAgICAgIGh0dHBzOi8vYXV0aDAub3BlbmFpLmNvbQovLyBAY29ubmVjdCAgICAgICAgICAgICAgICAgIGFwaS5iaW5qaWUuZnVuCi8vIEBjb25uZWN0ICAgICAgICAgICAgICAgICAgYXBpLm9wZW5haS5jb20KLy8gQGNvbm5lY3QgICAgICAgICAgICAgICAgICBhcGkxMS5ncHRmb3Jsb3ZlLmNvbQovLyBAY29ubmVjdCAgICAgICAgICAgICAgICAgIGNkbi5qc2RlbGl2ci5uZXQKLy8gQGNvbm5lY3QgICAgICAgICAgICAgICAgICBjaGF0YWkubWl4ZXJib3guY29tCi8vIEBjb25uZWN0ICAgICAgICAgICAgICAgICAgY2hhdGdwdC5jb20KLy8gQGNvbm5lY3QgICAgICAgICAgICAgICAgICB1cGRhdGUuZ3JlYXN5Zm9yay5vcmcKLy8gQGNvbm5lY3QgICAgICAgICAgICAgICAgICBmYW55aS5zb2dvdS5jb20KLy8gQHJlcXVpcmUgICAgICAgICAgICAgICAgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BrdWRvYWkvY2hhdGdwdC5qc0AzLjUuMC9kaXN0L2NoYXRncHQubWluLmpzI3NoYTI1Ni0rQzB4NEJPRlFjMzhhWkIzcHZVQzJUSHUrWlN2dUN4UnBoR2R0UkxqQ0RnPQovLyBAcmVxdWlyZSAgICAgICAgICAgICAgICAgIGh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2NyeXB0by1qcy80LjIuMC9jcnlwdG8tanMubWluLmpzI3NoYTI1Ni1kcHBWWGVWVHVydzFvek9QTkUzWHFoWW1ESlBPb3NmYktRY0h5UVNFNTh3PQovLyBAcmVxdWlyZSAgICAgICAgICAgICAgICAgIGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vZ2VuZXJhdGUtaXBAMi40LjQvZGlzdC9nZW5lcmF0ZS1pcC5taW4uanMjc2hhMjU2LWFRUUtBUWNNZ0N1OElwSnA5SEtzMzg3eDB1WXhuZ08rRmI0cGM1blNGNEk9Ci8vIEByZXF1aXJlICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaGlnaGxpZ2h0LmpzLzExLjkuMC9oaWdobGlnaHQubWluLmpzI3NoYTI1Ni1nM3B2cGJESE5yVXJ2ZUt5dGhrUE1GMmovSjdVRm9IYlV5RlFjRmUxeUVZPQovLyBAcmVxdWlyZSAgICAgICAgICAgICAgICAgIGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0va2F0ZXhAMC4xNi4xMC9kaXN0L2thdGV4Lm1pbi5qcyNzaGEyNTYtbjBVd2ZGZVU3U1I2RFFsZk9tTGxMdkloV21leU1uSURwLzJSbVZtdWVkRT0KLy8gQHJlcXVpcmUgICAgICAgICAgICAgICAgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2thdGV4QDAuMTYuMTAvZGlzdC9jb250cmliL2F1dG8tcmVuZGVyLm1pbi5qcyNzaGEyNTYtZTFmVUo2eGljR2Q5cjQyRGdON1N6SE16YjVGSm9XZTQ0ZjROYnZabUJLND0KLy8gQHJlcXVpcmUgICAgICAgICAgICAgICAgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21hcmtlZEAxMi4wLjIvbWFya2VkLm1pbi5qcyNzaGEyNTYtRmZxODViWlltTE1yQS9YdEplbjRrYWNwclV3TmJZZHhFS2QwU3FoSHFKUT0KLy8gQHJlc291cmNlIGdncHRJY29uQmxhY2sgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvS3Vkb0FJL2dvb2dsZWdwdEBjNTMyM2ZiL21lZGlhL2ltYWdlcy9pY29ucy9nb29nbGVncHQvYmxhY2svaWNvbjY0LnBuZy5iNjQjc2hhMjU2LXlpVHFnZ1lSTnNXY0p0eUlVRHpGclBxckwzeWVUYVBDckVHQVcwUUZ1UE09Ci8vIEByZXNvdXJjZSBnZ3B0SWNvbldoaXRlICAgaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL0t1ZG9BSS9nb29nbGVncHRAYzUzMjNmYi9tZWRpYS9pbWFnZXMvaWNvbnMvZ29vZ2xlZ3B0L3doaXRlL2ljb242NC5wbmcuYjY0I3NoYTI1Ni1CWVJxOTJjRjVrbnlrYUtubU5pMVU0Q3J3QkMvaksxVitNR2ZINE5HdWk0PQovLyBAcmVzb3VyY2UgZ2dwdExTbG9nbyAgICAgIGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9LdWRvQUkvZ29vZ2xlZ3B0QDYxMmI5NzYvbWVkaWEvaW1hZ2VzL2xvZ29zL2dvb2dsZWdwdC9mbGF0L2JsYWNrLWdyZWVuL2xvZ280ODB4NjQucG5nLmI2NCNzaGEyNTYtZnpTWmhMVlFRb2xDTFdZci9oMjlOV2ZSMVlsNGdsSHYxVGNzdmVZWXYrVT0KLy8gQHJlc291cmNlIGdncHREU2xvZ28gICAgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvS3Vkb0FJL2dvb2dsZWdwdEA2MTJiOTc2L21lZGlhL2ltYWdlcy9sb2dvcy9nb29nbGVncHQvZmxhdC93aGl0ZS1ncmVlbi9sb2dvNDgweDY0LnBuZy5iNjQjc2hhMjU2LTNxUmRHS2hGM3BvakRxVlZoLzVrT0RJZzdRdlliYkxmNHpGa0VoNXhvR2M9Ci8vIEByZXNvdXJjZSBobGpzQ1NTICAgICAgICAgaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaGlnaGxpZ2h0LmpzLzExLjkuMC9zdHlsZXMvZGFyay5taW4uY3NzI3NoYTI1Ni12ME43NkJGRmtIMGRDQjhiVXI0Y0hTVk44QS96Q2FPb3BNdVNtSldWLzV3PQovLyBAcmVzb3VyY2UgYnJzQ1NTICAgICAgICAgIGh0dHBzOi8vYXNzZXRzLmFpd2ViZXh0ZW5zaW9ucy5jb20vc3R5bGVzL3Jpc2luZy1zdGFycy9kaXN0L2JsYWNrLm1pbi5jc3M/dj0zMjg5NDA0I3NoYTI1Ni1DVGo2TmRuZ3ErVHNQbE5wUTZFajM5UFFLU0RwbXh5S1VGb2hoYzkxcnVRPQovLyBAcmVzb3VyY2Ugd3JzQ1NTICAgICAgICAgIGh0dHBzOi8vYXNzZXRzLmFpd2ViZXh0ZW5zaW9ucy5jb20vc3R5bGVzL3Jpc2luZy1zdGFycy9kaXN0L3doaXRlLm1pbi5jc3M/dj0zMjg5NDA0I3NoYTI1Ni10T09JdkllNk81L3gyQTVFN3M5a1A0K3p3MGQ0RUVEZlJnWFFMcTJLd0xzPQovLyBAZ3JhbnQgICAgICAgICAgICAgICAgICAgIEdNX2dldFZhbHVlCi8vIEBncmFudCAgICAgICAgICAgICAgICAgICAgR01fc2V0VmFsdWUKLy8gQGdyYW50ICAgICAgICAgICAgICAgICAgICBHTV9kZWxldGVWYWx1ZQovLyBAZ3JhbnQgICAgICAgICAgICAgICAgICAgIEdNX2Nvb2tpZQovLyBAZ3JhbnQgICAgICAgICAgICAgICAgICAgIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQKLy8gQGdyYW50ICAgICAgICAgICAgICAgICAgICBHTV91bnJlZ2lzdGVyTWVudUNvbW1hbmQKLy8gQGdyYW50ICAgICAgICAgICAgICAgICAgICBHTV9vcGVuSW5UYWIKLy8gQGdyYW50ICAgICAgICAgICAgICAgICAgICBHTV9nZXRSZXNvdXJjZVRleHQKLy8gQGdyYW50ICAgICAgICAgICAgICAgICAgICBHTV94bWxodHRwUmVxdWVzdAovLyBAZ3JhbnQgICAgICAgICAgICAgICAgICAgIEdNLnhtbEh0dHBSZXF1ZXN0Ci8vIEBub2ZyYW1lcwovLyBAaG9tZXBhZ2VVUkwgICAgICAgICAgICAgIGh0dHBzOi8vd3d3Lmdvb2dsZWdwdC5pbwovLyBAc3VwcG9ydFVSTCAgICAgICAgICAgICAgIGh0dHBzOi8vc3VwcG9ydC5nb29nbGVncHQuaW8KLy8gQGNvbnRyaWJ1dGlvblVSTCAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvS3Vkb0FJCi8vIEBkb3dubG9hZFVSTCBodHRwczovL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZy9zY3JpcHRzLzQ3ODU5Ny9Hb29nbGVHUFQlMjAlRjAlOUYlQTQlOTYudXNlci5qcwovLyBAdXBkYXRlVVJMIGh0dHBzOi8vdXBkYXRlLmdyZWFzeWZvcmsub3JnL3NjcmlwdHMvNDc4NTk3L0dvb2dsZUdQVCUyMCVGMCU5RiVBNCU5Ni5tZXRhLmpzCi8vID09L1VzZXJTY3JpcHQ9PQoKLy8gRGVwZW5kZW5jaWVzOgovLyDinJMgY2hhdGdwdC5qcyAoaHR0cHM6Ly9jaGF0Z3B0LmpzLm9yZykgwqkgMjAyM+KAkzIwMjUgS3Vkb0FJICYgY29udHJpYnV0b3JzIHVuZGVyIHRoZSBNSVQgbGljZW5zZQovLyDinJMgZ2VuZXJhdGUtaXAgKGh0dHBzOi8vZ2VuZXJhdGUtaXAub3JnKSDCqSAyMDI04oCTMjAyNSBBZGFtIEx1aSAmIGNvbnRyaWJ1dG9ycyB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKLy8g4pyTIGhpZ2hsaWdodC5qcyAoaHR0cHM6Ly9oaWdobGlnaHRqcy5vcmcpIMKpIDIwMDYgSXZhbiBTYWdhbGFldiB1bmRlciB0aGUgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UKLy8g4pyTIEthVGVYIChodHRwczovL2thdGV4Lm9yZykgwqkgMjAxM+KAkzIwMjAgS2hhbiBBY2FkZW15ICYgb3RoZXIgY29udHJpYnV0b3JzIHVuZGVyIHRoZSBNSVQgbGljZW5zZQovLyDinJMgTWFya2VkIChodHRwczovL21hcmtlZC5qcy5vcmcpIMKpIDIwMTgrIE1hcmtlZEpTIMKpIDIwMTHigJMyMDE4IENocmlzdG9waGVyIEplZmZyZXkgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCgovLyBEb2N1bWVudGF0aW9uOiBodHRwczovL2RvY3MuZ29vZ2xlZ3B0LmlvCgooYXN5bmMgKCkgPT4gewoKICAgIC8vIEluaXQgRU5WIGNvbnRleHQKICAgIGNvbnN0IGVudiA9IHsKICAgICAgICBicm93c2VyOiB7IGxhbmd1YWdlOiBjaGF0Z3B0LmdldFVzZXJMYW5ndWFnZSgpIH0sCiAgICAgICAgc2NyaXB0TWFuYWdlcjogewogICAgICAgICAgICBuYW1lOiAoKCkgPT4geyB0cnkgeyByZXR1cm4gR01faW5mby5zY3JpcHRIYW5kbGVyIH0gY2F0Y2ggKGVycikgeyByZXR1cm4gJ3Vua25vd24nIH19KSgpLAogICAgICAgICAgICB2ZXJzaW9uOiAoKCkgPT4geyB0cnkgeyByZXR1cm4gR01faW5mby52ZXJzaW9uIH0gY2F0Y2ggKGVycikgeyByZXR1cm4gJ3Vua25vd24nIH19KSgpCiAgICAgICAgfQogICAgfTsKICAgIFsnQ2hyb21lJywgJ0ZpcmVmb3gnLCAnRWRnZScsICdCcmF2ZScsICdNb2JpbGUnXS5mb3JFYWNoKHBsYXRmb3JtID0+CiAgICAgICAgZW52LmJyb3dzZXJbYGlzJHsgcGxhdGZvcm0gPT0gJ0ZpcmVmb3gnID8gJ0ZGJyA6IHBsYXRmb3JtIH1gXSA9IGNoYXRncHQuYnJvd3NlclsnaXMnICsgcGxhdGZvcm1dKCkpCiAgICBlbnYuYnJvd3Nlci5pc1BvcnRyYWl0ID0gZW52LmJyb3dzZXIuaXNNb2JpbGUgJiYgKHdpbmRvdy5pbm5lcldpZHRoIDwgd2luZG93LmlubmVySGVpZ2h0KQogICAgZW52LmJyb3dzZXIuaXNQaG9uZSA9IGVudi5icm93c2VyLmlzTW9iaWxlICYmIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ4MAogICAgZW52LnVzZXJMb2NhbGUgPSBsb2NhdGlvbi5ob3N0bmFtZS5lbmRzV2l0aCgnLmNvbScpID8gJ3VzJyA6IGxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCcuJykucG9wKCkKICAgIGVudi5zY3JpcHRNYW5hZ2VyLnN1cHBvcnRzVG9vbHRpcHMgPSBlbnYuc2NyaXB0TWFuYWdlci5uYW1lID09ICdUYW1wZXJtb25rZXknCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcGFyc2VJbnQoZW52LnNjcmlwdE1hbmFnZXIudmVyc2lvbi5zcGxpdCgnLicpWzBdKSA+PSA1CiAgICBjb25zdCB4aHIgPSB0eXBlb2YgR00gIT0gJ3VuZGVmaW5lZCcgJiYgR00ueG1sSHR0cFJlcXVlc3QgfHwgR01feG1saHR0cFJlcXVlc3QKCiAgICAvLyBJbml0IEFQUCBkYXRhCiAgICBjb25zdCBhcHAgPSB7CiAgICAgICAgbmFtZTogJ0dvb2dsZUdQVCcsIHZlcnNpb246IEdNX2luZm8uc2NyaXB0LnZlcnNpb24sIHN5bWJvbDogJ/CfpJYnLAogICAgICAgIGNvbmZpZ0tleVByZWZpeDogJ2dvb2dsZUdQVCcsIGNzc1ByZWZpeDogJ2dvb2dsZWdwdCcsCiAgICAgICAgY2hhdGdwdEpTdmVyOiAvY2hhdGdwdFwuanNAKFtcZC5dKykvLmV4ZWMoR01faW5mby5zY3JpcHRNZXRhU3RyKVsxXSwKICAgICAgICBhdXRob3I6IHsgbmFtZTogJ0t1ZG9BSScsIHVybDogJ2h0dHBzOi8va3Vkb2FpLmNvbScgfSwKICAgICAgICB1cmxzOiB7CiAgICAgICAgICAgIGFwcDogJ2h0dHBzOi8vd3d3Lmdvb2dsZWdwdC5pbycsCiAgICAgICAgICAgIGNoYXRncHRKUzogJ2h0dHBzOi8vY2hhdGdwdC5qcy5vcmcnLAogICAgICAgICAgICBjb250cmlidXRvcnM6ICdodHRwczovL2RvY3MuZ29vZ2xlZ3B0LmlvLyMtY29udHJpYnV0b3JzJywKICAgICAgICAgICAgZ2l0SHViOiAnaHR0cHM6Ly9naXRodWIuY29tL0t1ZG9BSS9nb29nbGVncHQnLAogICAgICAgICAgICBncmVhc3lGb3JrOiAnaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy9zY3JpcHRzLzQ3ODU5Ny1nb29nbGVncHQnLAogICAgICAgICAgICBwdWJsaXNoZXI6ICdodHRwczovL3d3dy5rdWRvYWkuY29tJywKICAgICAgICAgICAgcmVsYXRlZEV4dGVuc2lvbnM6ICdodHRwczovL2dpdGh1Yi5jb20vYWRhbWx1aS9haS13ZWItZXh0ZW5zaW9ucycsCiAgICAgICAgICAgIHJldmlldzogeyBncmVhc3lGb3JrOiAnaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy9zY3JpcHRzLzQ3ODU5Ny1nb29nbGVncHQvZmVlZGJhY2sjcG9zdC1kaXNjdXNzaW9uJyB9LAogICAgICAgICAgICBzdXBwb3J0OiAnaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZWdwdC5pbycKICAgICAgICB9LAogICAgICAgIGxhdGVzdFJlc291cmNlQ29tbWl0SGFzaDogJ2ZmNzFjNmQnIC8vIGZvciBjYWNoZWQgbWVzc2FnZXMuanNvbgogICAgfQogICAgYXBwLnVybHMucmVzb3VyY2VIb3N0ID0gYXBwLnVybHMuZ2l0SHViLnJlcGxhY2UoJ2dpdGh1Yi5jb20nLCAnY2RuLmpzZGVsaXZyLm5ldC9naCcpICsgYEAke2FwcC5sYXRlc3RSZXNvdXJjZUNvbW1pdEhhc2h9YAogICAgYXBwLnVybHMudXBkYXRlID0gYXBwLnVybHMuZ3JlYXN5Rm9yay5yZXBsYWNlKCdodHRwczovLycsICdodHRwczovL3VwZGF0ZS4nKQogICAgICAgIC5yZXBsYWNlKC8oXGQrKS0/KFthLXotXSopJC9pLCAoXywgaWQsIG5hbWUpID0+IGAke2lkfS8keyBuYW1lIHx8ICdzY3JpcHQnIH0ubWV0YS5qc2ApCiAgICBhcHAubXNncyA9IHsKICAgICAgICBhcHBEZXNjOiAnQWRkcyBBSSBhbnN3ZXJzIHRvIEdvb2dsZSBTZWFyY2ggKHBvd2VyZWQgYnkgR29vZ2xlIEdlbW1hICsgR1BULTRvISknLAogICAgICAgIG1lbnVMYWJlbF9hdXRvR2V0QW5zd2VyczogJ0F1dG8tR2V0IEFuc3dlcnMnLAogICAgICAgIG1lbnVMYWJlbF9hdXRvRm9jdXNDaGF0YmFyOiAnQXV0by1Gb2N1cyBDaGF0YmFyJywKICAgICAgICBtZW51TGFiZWxfd2hlblN0cmVhbWluZzogJ3doZW4gc3RyZWFtaW5nJywKICAgICAgICBtZW51TGFiZWxfcHJveHlBUEltb2RlOiAnUHJveHkgQVBJIE1vZGUnLAogICAgICAgIG1lbnVMYWJlbF9zaG93OiAnU2hvdycsCiAgICAgICAgbWVudUxhYmVsX3JlbGF0ZWRRdWVyaWVzOiAnUmVsYXRlZCBRdWVyaWVzJywKICAgICAgICBtZW51TGFiZWxfcmVxdWlyZTogJ1JlcXVpcmUnLAogICAgICAgIG1lbnVMYWJlbF9iZWZvcmVRdWVyeTogJ2JlZm9yZSBxdWVyeScsCiAgICAgICAgbWVudUxhYmVsX2FmdGVyUXVlcnk6ICdhZnRlciBxdWVyeScsCiAgICAgICAgbWVudUxhYmVsX3dpZGVyU2lkZWJhcjogJ1dpZGVyIFNpZGViYXInLAogICAgICAgIG1lbnVMYWJlbF9zdGlja3lTaWRlYmFyOiAnU3RpY2t5IFNpZGViYXInLAogICAgICAgIG1lbnVMYWJlbF9waW5UbzogJ1BpbiB0bycsCiAgICAgICAgbWVudUxhYmVsX3RvcDogJ1RvcCcsCiAgICAgICAgbWVudUxhYmVsX3NpZGViYXI6ICdTaWRlYmFyJywKICAgICAgICBtZW51TGFiZWxfYm90dG9tOiAnQm90dG9tJywKICAgICAgICBtZW51TGFiZWxfYmFja2dyb3VuZDogJ0JhY2tncm91bmQnLAogICAgICAgIG1lbnVMYWJlbF9mb3JlZ3JvdW5kOiAnRm9yZWdyb3VuZCcsCiAgICAgICAgbWVudUxhYmVsX2FuaW1hdGlvbnM6ICdBbmltYXRpb25zJywKICAgICAgICBtZW51TGFiZWxfcmVwbHlMYW5ndWFnZTogJ1JlcGx5IExhbmd1YWdlJywKICAgICAgICBtZW51TGFiZWxfY29sb3JTY2hlbWU6ICdDb2xvciBTY2hlbWUnLAogICAgICAgIG1lbnVMYWJlbF9hdXRvOiAnQXV0bycsCiAgICAgICAgbWVudUxhYmVsX2Fib3V0OiAnQWJvdXQnLAogICAgICAgIG1lbnVMYWJlbF9zZXR0aW5nczogJ1NldHRpbmdzJywKICAgICAgICBhYm91dF9hdXRob3I6ICdBdXRob3InLAogICAgICAgIGFib3V0X2FuZDogJyYnLAogICAgICAgIGFib3V0X2NvbnRyaWJ1dG9yczogJ2NvbnRyaWJ1dG9ycycsCiAgICAgICAgYWJvdXRfdmVyc2lvbjogJ1ZlcnNpb24nLAogICAgICAgIGFib3V0X3Bvd2VyZWRCeTogJ1Bvd2VyZWQgYnknLAogICAgICAgIGFib3V0X29wZW5Tb3VyY2VDb2RlOiAnT3BlbiBzb3VyY2UgY29kZScsCiAgICAgICAgc2NoZW1lX2xpZ2h0OiAnTGlnaHQnLAogICAgICAgIHNjaGVtZV9kYXJrOiAnRGFyaycsCiAgICAgICAgbW9kZV9wcm94eTogJ1Byb3h5IE1vZGUnLAogICAgICAgIG1vZGVfc3RyZWFtaW5nOiAnU3RyZWFtaW5nIE1vZGUnLAogICAgICAgIG1vZGVfYXV0b1Njcm9sbDogJ0F1dG8tU2Nyb2xsJywKICAgICAgICBtb2RlX3ByZWZpeDogJ1ByZWZpeCBNb2RlJywKICAgICAgICBtb2RlX3N1ZmZpeDogJ1N1ZmZpeCBNb2RlJywKICAgICAgICBtb2RlX2FuY2hvcjogJ0FuY2hvciBNb2RlJywKICAgICAgICBtb2RlX2RlYnVnOiAnRGVidWcgTW9kZScsCiAgICAgICAgdG9vbHRpcF9wbGF5QW5zd2VyOiAnUGxheSBhbnN3ZXInLAogICAgICAgIHRvb2x0aXBfZm9udFNpemU6ICdGb250IHNpemUnLAogICAgICAgIHRvb2x0aXBfc2VuZFJlcGx5OiAnU2VuZCByZXBseScsCiAgICAgICAgdG9vbHRpcF9mZWVsaW5nTHVja3k6ICdJXCdtIEZlZWxpbmcgTHVja3knLAogICAgICAgIHRvb2x0aXBfbWluaW1pemU6ICdNaW5pbWl6ZScsCiAgICAgICAgdG9vbHRpcF9yZXN0b3JlOiAnUmVzdG9yZScsCiAgICAgICAgdG9vbHRpcF9leHBhbmQ6ICdFeHBhbmQnLAogICAgICAgIHRvb2x0aXBfc2hyaW5rOiAnU2hyaW5rJywKICAgICAgICB0b29sdGlwX2Nsb3NlOiAnQ2xvc2UnLAogICAgICAgIHRvb2x0aXBfY29weTogJ0NvcHknLAogICAgICAgIHRvb2x0aXBfcmVnZW46ICdSZWdlbmVyYXRlJywKICAgICAgICB0b29sdGlwX3JlcGx5OiAnUmVwbHknLAogICAgICAgIHRvb2x0aXBfY29kZTogJ0NvZGUnLAogICAgICAgIHRvb2x0aXBfc2VuZFJlbGF0ZWRRdWVyeTogJ1NlbmQgcmVsYXRlZCBxdWVyeScsCiAgICAgICAgaGVscHRpcF9wcm94eUFQSW1vZGU6ICdVc2VzIGEgUHJveHkgQVBJIGZvciBuby1sb2dpbiBhY2Nlc3MgdG8gQUknLAogICAgICAgIGhlbHB0aXBfc3RyZWFtaW5nTW9kZTogJ1JlY2VpdmUgcmVwbGllcyBpbiBhIGNvbnRpbnVvdXMgdGV4dCBzdHJlYW0nLAogICAgICAgIGhlbHB0aXBfYXV0b0dldEFuc3dlcnM6ICdBdXRvLXNlbmQgcXVlcmllcyB0byBHb29nbGVHUFQgd2hlbiB1c2luZyBzZWFyY2ggZW5naW5lJywKICAgICAgICBoZWxwdGlwX2F1dG9Gb2N1c0NoYXRiYXI6ICdBdXRvLWZvY3VzIGNoYXRiYXIgd2hlbmV2ZXIgaXQgYXBwZWFycycsCiAgICAgICAgaGVscHRpcF9hdXRvU2Nyb2xsOiAnQXV0by1zY3JvbGwgcmVzcG9uc2VzIGFzIHRoZXkgZ2VuZXJhdGUgaW4gU3RyZWFtaW5nIE1vZGUnLAogICAgICAgIGhlbHB0aXBfc2hvd1JlbGF0ZWRRdWVyaWVzOiAnU2hvdyByZWxhdGVkIHF1ZXJpZXMgYmVsb3cgY2hhdGJhcicsCiAgICAgICAgaGVscHRpcF9wcmVmaXhNb2RlOiAnUmVxdWlyZSAiLyIgYmVmb3JlIHF1ZXJpZXMgZm9yIGFuc3dlcnMgdG8gc2hvdycsCiAgICAgICAgaGVscHRpcF9zdWZmaXhNb2RlOiAnUmVxdWlyZSAiPyIgYWZ0ZXIgcXVlcmllcyBmb3IgYW5zd2VycyB0byBzaG93JywKICAgICAgICBoZWxwdGlwX3dpZGVyU2lkZWJhcjogJ0hvcml6b250YWxseSBleHBhbmQgc2VhcmNoIHBhZ2Ugc2lkZWJhcicsCiAgICAgICAgaGVscHRpcF9zdGlja3lTaWRlYmFyOiAnTWFrZXMgR29vZ2xlR1BUIHZpc2libGUgaW4gc2lkZWJhciBldmVuIGFzIHlvdSBzY3JvbGwnLAogICAgICAgIGhlbHB0aXBfYW5jaG9yTW9kZTogJ0FuY2hvciBHb29nbGVHUFQgdG8gYm90dG9tIG9mIHdpbmRvdycsCiAgICAgICAgaGVscHRpcF9iZ0FuaW1hdGlvbnM6ICdTaG93IGFuaW1hdGVkIGJhY2tncm91bmRzIGluIFVJIGNvbXBvbmVudHMnLAogICAgICAgIGhlbHB0aXBfZmdBbmltYXRpb25zOiAnU2hvdyBmb3JlZ3JvdW5kIGFuaW1hdGlvbnMgaW4gVUkgY29tcG9uZW50cycsCiAgICAgICAgaGVscHRpcF9yZXBseUxhbmd1YWdlOiAnTGFuZ3VhZ2UgZm9yIEdvb2dsZUdQVCB0byByZXBseSBpbicsCiAgICAgICAgaGVscHRpcF9jb2xvclNjaGVtZTogJ1NjaGVtZSB0byBkaXNwbGF5IEdvb2dsZUdQVCBVSSBjb21wb25lbnRzIGluJywKICAgICAgICBoZWxwdGlwX2RlYnVnTW9kZTogJ1Nob3cgZGV0YWlsZWQgbG9nZ2luZyBpbiBicm93c2VyIGNvbnNvbGUnLAogICAgICAgIHBsYWNlaG9sZGVyX2Fza1NvbWV0aGluZ0Vsc2U6ICdBc2sgc29tZXRoaW5nIGVsc2UnLAogICAgICAgIHBsYWNlaG9sZGVyX3R5cGVTb21ldGhpbmc6ICdUeXBlIHNvbWV0aGluZycsCiAgICAgICAgcHJvbXB0X3VwZGF0ZVJlcGx5TGFuZzogJ1VwZGF0ZSByZXBseSBsYW5ndWFnZScsCiAgICAgICAgYWxlcnRfbGFuZ1VwZGF0ZWQ6ICdMYW5ndWFnZSB1cGRhdGVkJywKICAgICAgICBhbGVydF93aWxsUmVwbHlJbjogJ3dpbGwgcmVwbHkgaW4nLAogICAgICAgIGFsZXJ0X3lvdXJTeXNMYW5nOiAneW91ciBzeXN0ZW0gbGFuZ3VhZ2UnLAogICAgICAgIGFsZXJ0X2Nob29zZVBsYXRmb3JtOiAnQ2hvb3NlIGEgcGxhdGZvcm0nLAogICAgICAgIGFsZXJ0X3VwZGF0ZUF2YWlsOiAnVXBkYXRlIGF2YWlsYWJsZScsCiAgICAgICAgYWxlcnRfbmV3ZXJWZXI6ICdBbiB1cGRhdGUgdG8nLAogICAgICAgIGFsZXJ0X2lzQXZhaWw6ICdpcyBhdmFpbGFibGUnLAogICAgICAgIGFsZXJ0X3VwVG9EYXRlOiAnVXAtdG8tZGF0ZScsCiAgICAgICAgYWxlcnRfaXNVcFRvRGF0ZTogJ2lzIHVwLXRvLWRhdGUnLAogICAgICAgIGFsZXJ0X2lzVW5zdXBwb3J0ZWRJbjogJ2lzIHVuc3VwcG9ydGVkIGluJywKICAgICAgICBhbGVydF93aGVuVXNpbmc6ICd3aGVuIHVzaW5nJywKICAgICAgICBhbGVydF9wbGVhc2VVc2U6ICdQbGVhc2UgdXNlJywKICAgICAgICBhbGVydF9pbnN0ZWFkOiAnaW5zdGVhZCcsCiAgICAgICAgYWxlcnRfdW5hdmFpbGFibGU6ICd1bmF2YWlsYWJsZScsCiAgICAgICAgYWxlcnRfaXNPbmx5QXZhaWxGb3I6ICdpcyBvbmx5IGF2YWlsYWJsZSBmb3InLAogICAgICAgIGFsZXJ0X2FuZDogJ2FuZCcsCiAgICAgICAgYWxlcnRfdXNlcnNjcmlwdE1nck5vU3RyZWFtOiAnWW91ciB1c2Vyc2NyaXB0IG1hbmFnZXIgZG9lcyBub3Qgc3VwcG9ydCByZXR1cm5pbmcgc3RyZWFtIHJlc3BvbnNlcycsCiAgICAgICAgYWxlcnRfaXNDdXJyZW50bHlPbmx5QXZhaWxCeTogJ2lzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBieScsCiAgICAgICAgYWxlcnRfb3BlbkFJc3VwcG9ydFNvb246ICdTdXBwb3J0IGZvciBPcGVuQUkgQVBJIHdpbGwgYmUgYWRkZWQgc2hvcnRseScsCiAgICAgICAgYWxlcnRfd2FpdGluZ0ZvcjogJ1dhaXRpbmcgZm9yJywKICAgICAgICBhbGVydF9yZXNwb25zZTogJ3Jlc3BvbnNlJywKICAgICAgICBhbGVydF9sb2dpbjogJ1BsZWFzZSBsb2dpbicsCiAgICAgICAgYWxlcnRfdGhlblJlZnJlc2hQYWdlOiAndGhlbiByZWZyZXNoIHRoaXMgcGFnZScsCiAgICAgICAgYWxlcnRfdG9vTWFueVJlcXVlc3RzOiAnQ2hhdEdQVCBpcyBmbG9vZGVkIHdpdGggdG9vIG1hbnkgcmVxdWVzdHMnLAogICAgICAgIGFsZXJ0X3BhcnNlRmFpbGVkOiAnRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlIEpTT04nLAogICAgICAgIGFsZXJ0X2NoZWNrQ2xvdWRmbGFyZTogJ1BsZWFzZSBwYXNzIENsb3VkZmxhcmUgc2VjdXJpdHkgY2hlY2snLAogICAgICAgIGFsZXJ0X25vdFdvcmtpbmc6ICdpcyBub3Qgd29ya2luZycsCiAgICAgICAgYWxlcnRfaWZJc3N1ZVBlcnNpc3RzOiAnSWYgaXNzdWUgcGVyc2lzdHMnLAogICAgICAgIGFsZXJ0X3RyeTogJ1RyeScsCiAgICAgICAgYWxlcnRfc3dpdGNoaW5nT246ICdzd2l0Y2hpbmcgb24nLAogICAgICAgIGFsZXJ0X3N3aXRjaGluZ09mZjogJ3N3aXRjaGluZyBvZmYnLAogICAgICAgIG5vdGlmX2NvcGllZFRvQ2xpcGJvYXJkOiAnQ29waWVkIHRvIGNsaXBib2FyZCcsCiAgICAgICAgYnRuTGFiZWxfc2VuZFF1ZXJ5VG9BcHA6ICdTZW5kIHNlYXJjaCBxdWVyeSB0byBHb29nbGVHUFQnLAogICAgICAgIGJ0bkxhYmVsX21vcmVBSWV4dGVuc2lvbnM6ICdNb3JlIEFJIEV4dGVuc2lvbnMnLAogICAgICAgIGJ0bkxhYmVsX3JhdGVVczogJ1JhdGUgVXMnLAogICAgICAgIGJ0bkxhYmVsX2dldFN1cHBvcnQ6ICdHZXQgU3VwcG9ydCcsCiAgICAgICAgYnRuTGFiZWxfY2hlY2tGb3JVcGRhdGVzOiAnQ2hlY2sgZm9yIFVwZGF0ZXMnLAogICAgICAgIGJ0bkxhYmVsX3VwZGF0ZTogJ1VwZGF0ZScsCiAgICAgICAgYnRuTGFiZWxfZGlzbWlzczogJ0Rpc21pc3MnLAogICAgICAgIGxpbmtfdmlld0NoYW5nZXM6ICdWaWV3IGNoYW5nZXMnLAogICAgICAgIGxpbmtfc2hhcmVGZWVkYmFjazogJ1NoYXJlIEZlZWRiYWNrJywKICAgICAgICBwcmVmaXhfZXhpdDogJ0V4aXQnLAogICAgICAgIHN0YXRlX29uOiAnT24nLAogICAgICAgIHN0YXRlX29mZjogJ09mZicKICAgIH0KCiAgICAvLyBJbml0IERFQlVHIG1vZGUKICAgIGNvbnN0IGNvbmZpZyA9IHt9CiAgICBjb25zdCBzZXR0aW5ncyA9IHsKICAgICAgICBsb2FkKC4uLmtleXMpIHsKICAgICAgICAgICAga2V5cy5mbGF0KCkuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgY29uZmlnW2tleV0gPSBHTV9nZXRWYWx1ZShgJHthcHAuY29uZmlnS2V5UHJlZml4fV8ke2tleX1gLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbHM/LltrZXldPy5kZWZhdWx0VmFsID8/IHRoaXMuY29udHJvbHM/LltrZXldPy50eXBlID09ICd0b2dnbGUnKQogICAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgc2F2ZShrZXksIHZhbCkgeyBHTV9zZXRWYWx1ZShgJHthcHAuY29uZmlnS2V5UHJlZml4fV8ke2tleX1gLCB2YWwpIDsgY29uZmlnW2tleV0gPSB2YWwgfQogICAgfQogICAgc2V0dGluZ3MubG9hZCgnZGVidWdNb2RlJykKCiAgICAvLyBEZWZpbmUgTE9HIHByb3BzL2Z1bmN0aW9ucwogICAgY29uc3QgbG9nID0gewoKICAgICAgICBzdHlsZXM6IHsKICAgICAgICAgICAgcHJlZml4OiB7CiAgICAgICAgICAgICAgICBiYXNlOiBgY29sb3I6IHdoaXRlIDsgcGFkZGluZzogMnB4IDNweCAycHggNXB4IDsgYm9yZGVyLXJhZGl1czogMnB4IDsgJHsKICAgICAgICAgICAgICAgICAgICBlbnYuYnJvd3Nlci5pc0ZGID8gJ2ZvbnQtc2l6ZTogMTNweCA7JyA6ICcnIH1gLAogICAgICAgICAgICAgICAgaW5mbzogJ2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgzNDRkZWcsIHJnYmEoMCwwLDAsMSkgMCUsJwogICAgICAgICAgICAgICAgICAgICsgJ3JnYmEoMCwwLDAsMSkgMzklLCByZ2JhKDMwLDI5LDQzLDAuNjAyNjYxMTMyODEyNSkgOTMlKScsCiAgICAgICAgICAgICAgICB3b3JraW5nOiAnYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDM0MmRlZywgcmdiYSgyNTUsMTI4LDAsMSkgMCUsJwogICAgICAgICAgICAgICAgICAgICsgJ3JnYmEoMjU1LDEyOCwwLDAuOTYxMjA0NTUwMTc5NDQ2OCkgNTclLCByZ2JhKDI1NSwxMjgsMCwwLjc1MzkyMTYzNzAxNDE4MDcpIDkzJSknICwKICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICdiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMzQ0ZGVnLCByZ2JhKDAsMTA3LDQxLDEpIDAlLCcKICAgICAgICAgICAgICAgICAgICArICdyZ2JhKDMsMTQ3LDU4LDEpIDM5JSwgcmdiYSgyNCwxMjYsNDIsMC43NzM1Mjk0ODAxNTE0MzU2KSA5MyUpJywKICAgICAgICAgICAgICAgIHdhcm5pbmc6ICdiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMzQ0ZGVnLCByZ2JhKDI1NSwwLDAsMSkgMCUsJwogICAgICAgICAgICAgICAgICAgICsgJ3JnYmEoMjMyLDQxLDQxLDAuOTA3OTgzMjYxNjY0MDQwNikgNTclLCByZ2JhKDIyMiw0OSw0OSwwLjY1MzA4MTMwMDg3OTcyNjkpIDkzJSknLAogICAgICAgICAgICAgICAgY2FsbGVyOiAnY29sb3I6IGJsdWUnCiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBtc2c6IHsgd29ya2luZzogJ2NvbG9yOiAjZmY4MDAwJywgd2FybmluZzogJ2NvbG9yOiByZWQnIH0KICAgICAgICB9LAoKICAgICAgICByZWdFeDogewogICAgICAgICAgICBncmVlblZhbHM6IHsgY2FzZUluc2Vuc2l0aXZlOiAvXGIoPzp0cnVlfFxkKylcYnxzdWNjZXNzXFc/L2ksIGNhc2VTZW5zaXRpdmU6IC9cYk9OXGIvIH0sCiAgICAgICAgICAgIHJlZFZhbHM6IHsgY2FzZUluc2Vuc2l0aXZlOiAvXGJmYWxzZVxifGVycm9yXFc/L2ksIGNhc2VTZW5zaXRpdmU6IC9cQk9GRlxiLyB9LAogICAgICAgICAgICBwdXJwVmFsczogL1sgJyJdXHcrWyciXT86IC8gfSwKCiAgICAgICAgcHJldHRpZnlPYmoob2JqKSB7IHJldHVybiBKU09OLnN0cmluZ2lmeShvYmopCiAgICAgICAgICAgIC5yZXBsYWNlKC8oW3ssXSg/PSIpfCI6KS9nLCAnJDEgJykgLy8gYXBwZW5kIHNwYWNlcyB0byB7IGFuZCAiCiAgICAgICAgICAgIC5yZXBsYWNlKC8oKD88IVx9KVx9KS9nLCAnICQxJykgLy8gcHJlcGVuZCBzcGFjZXMgdG8gfQogICAgICAgICAgICAucmVwbGFjZSgvIi9nLCAnXCcnKSAvLyByZXBsYWNlICIgdy8gJwogICAgICAgIH0sCgogICAgICAgIHRvVGl0bGVDYXNlKHN0cikgeyByZXR1cm4gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpIH0KCiAgICB9IDsgWydpbmZvJywgJ2Vycm9yJywgJ2RlYnVnJ10uZm9yRWFjaChsb2dUeXBlID0+CiAgICAgICAgbG9nW2xvZ1R5cGVdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChsb2dUeXBlID09ICdkZWJ1ZycgJiYgIWNvbmZpZy5kZWJ1Z01vZGUpIHJldHVybgoKICAgICAgICAgICAgY29uc3QgYXJncyA9IEFycmF5LmZyb20oYXJndW1lbnRzKS5tYXAoYXJnID0+IHR5cGVvZiBhcmcgPT0gJ29iamVjdCcgPyBKU09OLnN0cmluZ2lmeShhcmcpIDogYXJnKQogICAgICAgICAgICBjb25zdCBtc2dUeXBlID0gYXJncy5zb21lKGFyZyA9PiAvXC57M30kLy50ZXN0KGFyZykpID8gJ3dvcmtpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcmdzLnNvbWUoYXJnID0+IC9cYnN1Y2Nlc3NcYnwhJC9pLnRlc3QoYXJnKSkgPyAnc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFyZ3Muc29tZShhcmcgPT4gL1xiKD86ZXJyb3J8ZmFpbClcYi9pLnRlc3QoYXJnKSkgfHwgbG9nVHlwZSA9PSAnZXJyb3InID8gJ3dhcm5pbmcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdpbmZvJwogICAgICAgICAgICBjb25zdCBwcmVmaXhTdHlsZSA9IGxvZy5zdHlsZXMucHJlZml4LmJhc2UgKyBsb2cuc3R5bGVzLnByZWZpeFttc2dUeXBlXQogICAgICAgICAgICBjb25zdCBiYXNlTXNnU3R5bGUgPSBsb2cuc3R5bGVzLm1zZ1ttc2dUeXBlXSwgbXNnU3R5bGVzID0gW10KCiAgICAgICAgICAgIC8vIENvbWJpbmUgcmVnZXgKICAgICAgICAgICAgY29uc3QgYWxsUGF0dGVybnMgPSBPYmplY3QudmFsdWVzKGxvZy5yZWdFeCkuZmxhdE1hcCh2YWwgPT4KICAgICAgICAgICAgICAgIHZhbCBpbnN0YW5jZW9mIFJlZ0V4cCA/IFt2YWxdIDogT2JqZWN0LnZhbHVlcyh2YWwpLmZpbHRlcih2YWwgPT4gdmFsIGluc3RhbmNlb2YgUmVnRXhwKSkKICAgICAgICAgICAgY29uc3QgY29tYmluZWRQYXR0ZXJuID0gbmV3IFJlZ0V4cChhbGxQYXR0ZXJucy5tYXAocGF0dGVybiA9PiBwYXR0ZXJuLnNvdXJjZSkuam9pbignfCcpLCAnZycpCgogICAgICAgICAgICAvLyBDb21iaW5lIGFyZ3MgaW50byBmaW5hbE1zZywgY29sb3IgY2hhcnMKICAgICAgICAgICAgbGV0IGZpbmFsTXNnID0gbG9nVHlwZSA9PSAnZXJyb3InICYmIGFyZ3MubGVuZ3RoID09IDEgPyAnRVJST1I6ICcgOiAnJwogICAgICAgICAgICBhcmdzLmZvckVhY2goKGFyZywgaWR4KSA9PiB7CiAgICAgICAgICAgICAgICBmaW5hbE1zZyArPSBpZHggPiAwID8gKGlkeCA9PSAxID8gJzogJyA6ICcgJykgOiAnJyAvLyBzZXBhcmF0ZSBtdWx0aS1hcmdzCiAgICAgICAgICAgICAgICBmaW5hbE1zZyArPSBhcmc/LnRvU3RyaW5nKCkucmVwbGFjZShjb21iaW5lZFBhdHRlcm4sIG1hdGNoID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVkID0gKAogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGxvZy5yZWdFeC5ncmVlblZhbHMpLnNvbWUodmFsID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWwudGVzdChtYXRjaCkpIHsgbXNnU3R5bGVzLnB1c2goJ2NvbG9yOiBncmVlbicsIGJhc2VNc2dTdHlsZSkgOyByZXR1cm4gdHJ1ZSB9fSkKICAgICAgICAgICAgICAgICAgICAgfHwgT2JqZWN0LnZhbHVlcyhsb2cucmVnRXgucmVkVmFscykuc29tZSh2YWwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC50ZXN0KG1hdGNoKSkgeyBtc2dTdHlsZXMucHVzaCgnY29sb3I6IHJlZCcsIGJhc2VNc2dTdHlsZSkgOyAgcmV0dXJuIHRydWUgfX0pKQogICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2hlZCAmJiBsb2cucmVnRXgucHVycFZhbHMudGVzdChtYXRjaCkpIHsgbXNnU3R5bGVzLnB1c2goJ2NvbG9yOiAjZGQyOWY0JywgYmFzZU1zZ1N0eWxlKSB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAlYyR7bWF0Y2h9JWNgCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9KQoKICAgICAgICAgICAgY29uc29sZVtsb2dUeXBlID09ICdlcnJvcicgPyBsb2dUeXBlIDogJ2luZm8nXSgKICAgICAgICAgICAgICAgIGAke2FwcC5zeW1ib2x9ICVjJHthcHAubmFtZX0lYyAkeyBsb2cuY2FsbGVyID8gYCR7bG9nLmNhbGxlcn0gwrsgYCA6ICcnIH0lYyR7ZmluYWxNc2d9YCwKICAgICAgICAgICAgICAgIHByZWZpeFN0eWxlLCBsb2cuc3R5bGVzLnByZWZpeC5jYWxsZXIsIGJhc2VNc2dTdHlsZSwgLi4ubXNnU3R5bGVzCiAgICAgICAgICAgICkKICAgICAgICB9CiAgICApCgogICAgLy8gTE9DQUxJWkUgYXBwLm1zZ3MgZm9yIG5vbi1FbmdsaXNoIHVzZXJzCiAgICBpZiAoIWVudi5icm93c2VyLmxhbmd1YWdlLnN0YXJ0c1dpdGgoJ2VuJykpIHsKICAgICAgICBsb2cuZGVidWcoJ0xvY2FsaXppbmcgYXBwIG1lc3NhZ2VzLi4uJykKICAgICAgICBjb25zdCBsb2NhbGl6ZWRNc2dzID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgICAgIGNvbnN0IG1zZ0hvc3REaXIgPSBhcHAudXJscy5yZXNvdXJjZUhvc3QgKyAnL2dyZWFzZW1vbmtleS9fbG9jYWxlcy8nLAogICAgICAgICAgICAgICAgICBtc2dMb2NhbGVEaXIgPSAoIGVudi5icm93c2VyLmxhbmd1YWdlID8gZW52LmJyb3dzZXIubGFuZ3VhZ2UucmVwbGFjZSgnLScsICdfJykgOiAnZW4nICkgKyAnLycKICAgICAgICAgICAgbGV0IG1zZ0hyZWYgPSBtc2dIb3N0RGlyICsgbXNnTG9jYWxlRGlyICsgJ21lc3NhZ2VzLmpzb24nLCBtc2dYSFJ0cmllcyA9IDAKICAgICAgICAgICAgZnVuY3Rpb24gZmV0Y2hNc2dzKCkgeyB4aHIoeyBtZXRob2Q6ICdHRVQnLCB1cmw6IG1zZ0hyZWYsIG9ubG9hZDogaGFuZGxlTXNncyB9KX0KICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlTXNncyhyZXNwKSB7CiAgICAgICAgICAgICAgICB0cnkgeyAvLyB0byByZXR1cm4gbG9jYWxpemVkIG1lc3NhZ2VzLmpzb24KICAgICAgICAgICAgICAgICAgICBjb25zdCBtc2dzID0gSlNPTi5wYXJzZShyZXNwLnJlc3BvbnNlVGV4dCksIGZsYXRNc2dzID0ge30KICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBtc2dzKSAgLy8gcmVtb3ZlIG5lZWQgdG8gcmVmIG5lc3RlZCBrZXlzCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbXNnc1trZXldID09ICdvYmplY3QnICYmICdtZXNzYWdlJyBpbiBtc2dzW2tleV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0TXNnc1trZXldID0gbXNnc1trZXldLm1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZsYXRNc2dzKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7IC8vIGlmIGJhZCByZXNwb25zZQogICAgICAgICAgICAgICAgICAgIG1zZ1hIUnRyaWVzKysgOyBpZiAobXNnWEhSdHJpZXMgPT0gMykgcmV0dXJuIHJlc29sdmUoe30pIC8vIHRyeSBvcmlnaW5hbC9yZWdpb24tc3RyaXBwZWQvRU4gb25seQogICAgICAgICAgICAgICAgICAgIG1zZ0hyZWYgPSBlbnYuYnJvd3Nlci5sYW5ndWFnZS5pbmNsdWRlcygnLScpICYmIG1zZ1hIUnRyaWVzID09IDEgPyAvLyBpZiByZWdpb25hbCBsYW5nIG9uIDFzdCB0cnkuLi4KICAgICAgICAgICAgICAgICAgICAgICAgbXNnSHJlZi5yZXBsYWNlKC8oW15fXStfW15fXSspX1teL10qKFwvLiopLywgJyQxJDInKSAvLyAuLi5zdHJpcCByZWdpb24gYmVmb3JlIHJldHJ5aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICggbXNnSG9zdERpciArICdlbi9tZXNzYWdlcy5qc29uJyApIC8vIGVsc2UgdXNlIGRlZmF1bHQgRW5nbGlzaCBtZXNzYWdlcwogICAgICAgICAgICAgICAgICAgIGZldGNoTXNncygpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmV0Y2hNc2dzKCkKICAgICAgICB9KQogICAgICAgIE9iamVjdC5hc3NpZ24oYXBwLm1zZ3MsIGxvY2FsaXplZE1zZ3MpCiAgICAgICAgbG9nLmRlYnVnKGBTdWNjZXNzISBhcHAubXNncyA9ICR7bG9nLnByZXR0aWZ5T2JqKGFwcC5tc2dzKX1gKQogICAgfQoKICAgIC8vIEluaXQgQ09NUEFUSUJJTElUWSBmbGFncwogICAgbG9nLmRlYnVnKCdJbml0aWFsaXppbmcgY29tcGF0aWJpbGl0eSBmbGFncy4uLicpCiAgICBlbnYuc3RyZWFtaW5nU3VwcG9ydGVkID0gewogICAgICAgIGJ5QnJvd3NlcjogIShlbnYuc2NyaXB0TWFuYWdlci5uYW1lID09ICdUYW1wZXJtb25rZXknCiAgICAgICAgICAgICYmIChlbnYuYnJvd3Nlci5pc0Nocm9tZSB8fCBlbnYuYnJvd3Nlci5pc0VkZ2UgfHwgZW52LmJyb3dzZXIuaXNCcmF2ZSkpLAogICAgICAgIGJ5U2NyaXB0TWFuYWdlcjogL1RhbXBlcm1vbmtleXxTY3JpcHRDYXQvLnRlc3QoZW52LnNjcmlwdE1hbmFnZXIubmFtZSkKICAgIH0KICAgIGxvZy5kZWJ1ZyhgU3VjY2VzcyEgZW52LnN0cmVhbWluZ1N1cHBvcnRlZCA9ICR7bG9nLnByZXR0aWZ5T2JqKGVudi5zdHJlYW1pbmdTdXBwb3J0ZWQpfWApCgogICAgLy8gSW5pdCBTRVRUSU5HUwogICAgbG9nLmRlYnVnKCdJbml0aWFsaXppbmcgc2V0dGluZ3MuLi4nKQogICAgT2JqZWN0LmFzc2lnbihzZXR0aW5ncywgeyBjb250cm9sczogeyAvLyBkaXNwbGF5cyB0b3AtdG8tYm90dG9tLCBsZWZ0LXRvLXJpZ2h0IGluIFNldHRpbmdzIG1vZGFsCiAgICAgICAgcHJveHlBUEllbmFibGVkOiB7IHR5cGU6ICd0b2dnbGUnLCBpY29uOiAnc3VuZ2xhc3NlcycsIGRlZmF1bHRWYWw6IGZhbHNlLAogICAgICAgICAgICBsYWJlbDogYXBwLm1zZ3MubWVudUxhYmVsX3Byb3h5QVBJbW9kZSwKICAgICAgICAgICAgaGVscHRpcDogYXBwLm1zZ3MuaGVscHRpcF9wcm94eUFQSW1vZGUgfSwKICAgICAgICBzdHJlYW1pbmdEaXNhYmxlZDogeyB0eXBlOiAndG9nZ2xlJywgaWNvbjogJ3NpZ25hbFN0cmVhbScsIGRlZmF1bHRWYWw6IGZhbHNlLAogICAgICAgICAgICBsYWJlbDogYXBwLm1zZ3MubW9kZV9zdHJlYW1pbmcsCiAgICAgICAgICAgIGhlbHB0aXA6IGFwcC5tc2dzLmhlbHB0aXBfc3RyZWFtaW5nTW9kZSB9LAogICAgICAgIGF1dG9HZXQ6IHsgdHlwZTogJ3RvZ2dsZScsIGljb246ICdzcGVlY2hCYWxsb29uTGFzc28nLCBkZWZhdWx0VmFsOiBmYWxzZSwKICAgICAgICAgICAgbGFiZWw6IGFwcC5tc2dzLm1lbnVMYWJlbF9hdXRvR2V0QW5zd2VycywKICAgICAgICAgICAgaGVscHRpcDogYXBwLm1zZ3MuaGVscHRpcF9hdXRvR2V0QW5zd2VycyB9LAogICAgICAgIGF1dG9Gb2N1c0NoYXRiYXJEaXNhYmxlZDogeyB0eXBlOiAndG9nZ2xlJywgbW9iaWxlOiBmYWxzZSwgaWNvbjogJ2NhcmV0c0lud2FyZCcsIGRlZmF1bHRWYWw6IGZhbHNlLAogICAgICAgICAgICBsYWJlbDogYXBwLm1zZ3MubWVudUxhYmVsX2F1dG9Gb2N1c0NoYXRiYXIsCiAgICAgICAgICAgIGhlbHB0aXA6IGFwcC5tc2dzLmhlbHB0aXBfYXV0b0ZvY3VzQ2hhdGJhciB9LAogICAgICAgIGF1dG9TY3JvbGw6IHsgdHlwZTogJ3RvZ2dsZScsIG1vYmlsZTogZmFsc2UsIGljb246ICdhcnJvd3NEb3duJywgZGVmYXVsdFZhbDogZmFsc2UsCiAgICAgICAgICAgIGxhYmVsOiBgJHthcHAubXNncy5tb2RlX2F1dG9TY3JvbGx9ICgke2FwcC5tc2dzLm1lbnVMYWJlbF93aGVuU3RyZWFtaW5nfSlgLAogICAgICAgICAgICBoZWxwdGlwOiBhcHAubXNncy5oZWxwdGlwX2F1dG9TY3JvbGwgfSwKICAgICAgICBycURpc2FibGVkOiB7IHR5cGU6ICd0b2dnbGUnLCBpY29uOiAnc3BlZWNoQmFsbG9vbnMnLCBkZWZhdWx0VmFsOiBmYWxzZSwKICAgICAgICAgICAgbGFiZWw6IGAke2FwcC5tc2dzLm1lbnVMYWJlbF9zaG93fSAke2FwcC5tc2dzLm1lbnVMYWJlbF9yZWxhdGVkUXVlcmllc31gLAogICAgICAgICAgICBoZWxwdGlwOiBhcHAubXNncy5oZWxwdGlwX3Nob3dSZWxhdGVkUXVlcmllcyB9LAogICAgICAgIHByZWZpeEVuYWJsZWQ6IHsgdHlwZTogJ3RvZ2dsZScsIGljb246ICdzbGFzaCcsIGRlZmF1bHRWYWw6IGZhbHNlLAogICAgICAgICAgICBsYWJlbDogYCR7YXBwLm1zZ3MubWVudUxhYmVsX3JlcXVpcmV9ICIvIiAke2FwcC5tc2dzLm1lbnVMYWJlbF9iZWZvcmVRdWVyeX1gLAogICAgICAgICAgICBoZWxwdGlwOiBhcHAubXNncy5oZWxwdGlwX3ByZWZpeE1vZGUgfSwKICAgICAgICBzdWZmaXhFbmFibGVkOiB7IHR5cGU6ICd0b2dnbGUnLCBpY29uOiAncXVlc3Rpb25NYXJrJywgZGVmYXVsdFZhbDogZmFsc2UsCiAgICAgICAgICAgIGxhYmVsOiBgJHthcHAubXNncy5tZW51TGFiZWxfcmVxdWlyZX0gIj8iICR7YXBwLm1zZ3MubWVudUxhYmVsX2FmdGVyUXVlcnl9YCwKICAgICAgICAgICAgaGVscHRpcDogYXBwLm1zZ3MuaGVscHRpcF9zdWZmaXhNb2RlIH0sCiAgICAgICAgd2lkZXJTaWRlYmFyOiB7IHR5cGU6ICd0b2dnbGUnLCBtb2JpbGU6IGZhbHNlLCBpY29uOiAnd2lkZXNjcmVlbicsIGRlZmF1bHRWYWw6IGZhbHNlLAogICAgICAgICAgICBsYWJlbDogYXBwLm1zZ3MubWVudUxhYmVsX3dpZGVyU2lkZWJhciwKICAgICAgICAgICAgaGVscHRpcDogYXBwLm1zZ3MuaGVscHRpcF93aWRlclNpZGViYXIgfSwKICAgICAgICBzdGlja3lTaWRlYmFyOiB7IHR5cGU6ICd0b2dnbGUnLCBtb2JpbGU6IGZhbHNlLCBpY29uOiAnd2ViQ29ybmVyJywgZGVmYXVsdFZhbDogZmFsc2UsCiAgICAgICAgICAgIGxhYmVsOiBhcHAubXNncy5tZW51TGFiZWxfc3RpY2t5U2lkZWJhciwKICAgICAgICAgICAgaGVscHRpcDogYXBwLm1zZ3MuaGVscHRpcF9zdGlja3lTaWRlYmFyIH0sCiAgICAgICAgYW5jaG9yZWQ6IHsgdHlwZTogJ3RvZ2dsZScsIG1vYmlsZTogZmFsc2UsIGljb246ICdhbmNob3InLCBkZWZhdWx0VmFsOiBmYWxzZSwKICAgICAgICAgICAgbGFiZWw6IGFwcC5tc2dzLm1vZGVfYW5jaG9yLAogICAgICAgICAgICBoZWxwdGlwOiBhcHAubXNncy5oZWxwdGlwX2FuY2hvck1vZGUgfSwKICAgICAgICBiZ0FuaW1hdGlvbnNEaXNhYmxlZDogeyB0eXBlOiAndG9nZ2xlJywgaWNvbjogJ3NwYXJrbGVzJywgZGVmYXVsdFZhbDogZmFsc2UsCiAgICAgICAgICAgIGxhYmVsOiBgJHthcHAubXNncy5tZW51TGFiZWxfYmFja2dyb3VuZH0gJHthcHAubXNncy5tZW51TGFiZWxfYW5pbWF0aW9uc31gLAogICAgICAgICAgICBoZWxwdGlwOiBhcHAubXNncy5oZWxwdGlwX2JnQW5pbWF0aW9ucyB9LAogICAgICAgIGZnQW5pbWF0aW9uc0Rpc2FibGVkOiB7IHR5cGU6ICd0b2dnbGUnLCBpY29uOiAnc3BhcmtsZXMnLCBkZWZhdWx0VmFsOiBmYWxzZSwKICAgICAgICAgICAgbGFiZWw6IGAke2FwcC5tc2dzLm1lbnVMYWJlbF9mb3JlZ3JvdW5kfSAke2FwcC5tc2dzLm1lbnVMYWJlbF9hbmltYXRpb25zfWAsCiAgICAgICAgICAgIGhlbHB0aXA6IGFwcC5tc2dzLmhlbHB0aXBfZmdBbmltYXRpb25zIH0sCiAgICAgICAgcmVwbHlMYW5nOiB7IHR5cGU6ICdwcm9tcHQnLCBpY29uOiAnbGFuZ3VhZ2VDaGFycycsCiAgICAgICAgICAgIGxhYmVsOiBhcHAubXNncy5tZW51TGFiZWxfcmVwbHlMYW5ndWFnZSwKICAgICAgICAgICAgaGVscHRpcDogYXBwLm1zZ3MuaGVscHRpcF9yZXBseUxhbmd1YWdlIH0sCiAgICAgICAgc2NoZW1lOiB7IHR5cGU6ICdtb2RhbCcsIGljb246ICdzY2hlbWUnLAogICAgICAgICAgICBsYWJlbDogYXBwLm1zZ3MubWVudUxhYmVsX2NvbG9yU2NoZW1lLAogICAgICAgICAgICBoZWxwdGlwOiBhcHAubXNncy5oZWxwdGlwX2NvbG9yU2NoZW1lIH0sCiAgICAgICAgZGVidWdNb2RlOiB7IHR5cGU6ICd0b2dnbGUnLCBpY29uOiAnYnVnJywgZGVmYXVsdFZhbDogZmFsc2UsCiAgICAgICAgICAgIGxhYmVsOiBhcHAubXNncy5tb2RlX2RlYnVnLAogICAgICAgICAgICBoZWxwdGlwOiBhcHAubXNncy5oZWxwdGlwX2RlYnVnTW9kZSB9LAogICAgICAgIGFib3V0OiB7IHR5cGU6ICdtb2RhbCcsIGljb246ICdxdWVzdGlvbk1hcmtDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogYCR7YXBwLm1zZ3MubWVudUxhYmVsX2Fib3V0fSAke2FwcC5uYW1lfS4uLmAgfQogICAgfX0pCiAgICBPYmplY3QuYXNzaWduKGNvbmZpZywgeyBtaW5Gb250U2l6ZTogMTEsIG1heEZvbnRTaXplOiAyNCwgbGluZUhlaWdodFJhdGlvOiBlbnYuYnJvd3Nlci5pc01vYmlsZSA/IDEuMzU3IDogMS4zNzUgfSkKICAgIHNldHRpbmdzLmxvYWQoWy4uLk9iamVjdC5rZXlzKHNldHRpbmdzLmNvbnRyb2xzKSwgJ2V4cGFuZGVkJywgJ2ZvbnRTaXplJywgJ21pbmltaXplZCcsICdub3RGaXJzdFJ1biddKQogICAgaWYgKCFjb25maWcucmVwbHlMYW5ndWFnZSkgc2V0dGluZ3Muc2F2ZSgncmVwbHlMYW5ndWFnZScsIGVudi5icm93c2VyLmxhbmd1YWdlKSAvLyBpbml0IHJlcGx5IGxhbmd1YWdlIGlmIHVuc2V0CiAgICBpZiAoIWNvbmZpZy5mb250U2l6ZSkgc2V0dGluZ3Muc2F2ZSgnZm9udFNpemUnLCBlbnYuYnJvd3Nlci5pc01vYmlsZSA/IDE0IDogMTYuNTUpIC8vIGluaXQgcmVwbHkgZm9udCBzaXplIGlmIHVuc2V0CiAgICBpZiAoIWVudi5zdHJlYW1pbmdTdXBwb3J0ZWQuYnlCcm93c2VyIHx8ICFlbnYuc3RyZWFtaW5nU3VwcG9ydGVkLmJ5U2NyaXB0TWFuYWdlcikKICAgICAgICBzZXR0aW5ncy5zYXZlKCdzdHJlYW1pbmdEaXNhYmxlZCcsIHRydWUpIC8vIGRpc2FibGUgU3RyZWFtaW5nIGluIHVuc3Bwb3J0ZWQgZW52CiAgICBpZiAoIWNvbmZpZy5ub3RGaXJzdFJ1biAmJiBlbnYuYnJvd3Nlci5pc01vYmlsZSkgc2V0dGluZ3Muc2F2ZSgnYXV0b0dldCcsIHRydWUpIC8vIHJldmVyc2UgZGVmYXVsdCBhdXRvLWdldCBkaXNhYmxlZCBpZiBtb2JpbGUKICAgIHNldHRpbmdzLnNhdmUoJ25vdEZpcnN0UnVuJywgdHJ1ZSkKICAgIGxvZy5kZWJ1ZyhgU3VjY2VzcyEgY29uZmlnID0gJHtsb2cucHJldHRpZnlPYmooY29uZmlnKX1gKQoKICAgIC8vIEluaXQgQVBJIHByb3BzCiAgICBjb25zdCBhcGlzID0gewogICAgICAgICdBSWNoYXRPUyc6IHsKICAgICAgICAgICAgZW5kcG9pbnQ6ICdodHRwczovL2FwaS5iaW5qaWUuZnVuL2FwaS9nZW5lcmF0ZVN0cmVhbScsCiAgICAgICAgICAgIGV4cGVjdGVkT3JpZ2luOiB7CiAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2NoYXQxOC5haWNoYXRvczY4LmNvbScsCiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonLCAnUHJpb3JpdHknOiAndT0wJywgJ1NlYy1GZXRjaC1TaXRlJzogJ2Nyb3NzLXNpdGUnCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLCBzdHJlYW1hYmxlOiB0cnVlLCBhY2N1bXVsYXRlc1RleHQ6IGZhbHNlLCBmYWlsRmxhZ3M6IFsn5b6I5oqx5q2J5ZywJywgJ+ezu+e7n+WFrOWRiiddLAogICAgICAgICAgICB1c2VySUQ6ICcjL2NoYXQvJyArIERhdGUubm93KCkKICAgICAgICB9LAogICAgICAgICdHUFRmb3JMb3ZlJzogewogICAgICAgICAgICBlbmRwb2ludDogJ2h0dHBzOi8vYXBpMTEuZ3B0Zm9ybG92ZS5jb20vY2hhdC1wcm9jZXNzJywKICAgICAgICAgICAgZXhwZWN0ZWRPcmlnaW46IHsKICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vYWkyNy5ncHRmb3Jsb3ZlLmNvbScsCiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonLCAnUHJpb3JpdHknOiAndT0wJywgJ1NlYy1GZXRjaC1TaXRlJzogJ3NhbWUtc2l0ZScKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsIHN0cmVhbWFibGU6IHRydWUsIGFjY3VtdWxhdGVzVGV4dDogdHJ1ZSwKICAgICAgICAgICAgZmFpbEZsYWdzOiBbJ1tcJyJdP3N0YXR1c1tcJyJdPzpcXHMqW1wnIl1GYWlsW1wnIl0nXQogICAgICAgIH0sCiAgICAgICAgJ01peGVyQm94IEFJJzogewogICAgICAgICAgICBlbmRwb2ludDogJ2h0dHBzOi8vY2hhdGFpLm1peGVyYm94LmNvbS9hcGkvY2hhdC9zdHJlYW0nLAogICAgICAgICAgICBleHBlY3RlZE9yaWdpbjogewogICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9jaGF0YWkubWl4ZXJib3guY29tJywKICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0FjY2VwdCc6ICcqLyonLCAnQWx0LVVzZWQnOiAnY2hhdGFpLm1peGVyYm94LmNvbScsICdTZWMtRmV0Y2gtU2l0ZSc6ICdzYW1lLW9yaWdpbicgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywgc3RyZWFtYWJsZTogdHJ1ZSwgYWNjdW11bGF0ZXNUZXh0OiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgJ09wZW5BSSc6IHsKICAgICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICAgICBhdXRoOiAnaHR0cHM6Ly9hdXRoMC5vcGVuYWkuY29tJywKICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zOiAnaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9jaGF0L2NvbXBsZXRpb25zJywKICAgICAgICAgICAgICAgIHNlc3Npb246ICdodHRwczovL2NoYXRncHQuY29tL2FwaS9hdXRoL3Nlc3Npb24nCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGV4cGVjdGVkT3JpZ2luOiB7CiAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2NoYXRncHQuY29tJywKICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0FjY2VwdCc6ICcqLyonLCAnUHJpb3JpdHknOiAndT00JywgJ1NlYy1GZXRjaC1TaXRlJzogJ3NhbWUtc2l0ZScgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywgc3RyZWFtYWJsZTogdHJ1ZQogICAgICAgIH0KICAgIH0KCiAgICAvLyBJbml0IElOUFVUIEVWRU5UUwogICAgY29uc3QgaW5wdXRFdmVudHMgPSB7fSA7IFsnZG93bicsICdtb3ZlJywgJ3VwJ10uZm9yRWFjaChhY3Rpb24gPT4KICAgICAgICAgIGlucHV0RXZlbnRzW2FjdGlvbl0gPSAoIHdpbmRvdy5Qb2ludGVyRXZlbnQgPyAncG9pbnRlcicgOiBlbnYuYnJvd3Nlci5pc01vYmlsZSA/ICd0b3VjaCcgOiAnbW91c2UnICkgKyBhY3Rpb24pCgogICAgLy8gSW5pdCBBTEVSVFMKICAgIE9iamVjdC5hc3NpZ24oYXBwLCB7IGFsZXJ0czogewogICAgICAgIHdhaXRpbmdSZXNwb25zZTogIGAke2FwcC5tc2dzLmFsZXJ0X3dhaXRpbmdGb3J9ICR7YXBwLm5hbWV9ICR7YXBwLm1zZ3MuYWxlcnRfcmVzcG9uc2V9Li4uYCwKICAgICAgICBsb2dpbjogICAgICAgICAgICBgJHthcHAubXNncy5hbGVydF9sb2dpbn0gQCBgLAogICAgICAgIGNoZWNrQ2xvdWRmbGFyZTogIGAke2FwcC5tc2dzLmFsZXJ0X2NoZWNrQ2xvdWRmbGFyZX0gQCBgLAogICAgICAgIHRvb01hbnlSZXF1ZXN0czogIGAke2FwcC5tc2dzLmFsZXJ0X3Rvb01hbnlSZXF1ZXN0c30uYCwKICAgICAgICBwYXJzZUZhaWxlZDogICAgICBgJHthcHAubXNncy5hbGVydF9wYXJzZUZhaWxlZH0uYCwKICAgICAgICBwcm94eU5vdFdvcmtpbmc6ICBgJHthcHAubXNncy5tb2RlX3Byb3h5fSAke2FwcC5tc2dzLmFsZXJ0X25vdFdvcmtpbmd9LmAsCiAgICAgICAgb3BlbkFJbm90V29ya2luZzogYE9wZW5BSSBBUEkgJHthcHAubXNncy5hbGVydF9ub3RXb3JraW5nfS5gLAogICAgICAgIHN1Z2dlc3RQcm94eTogICAgIGAke2FwcC5tc2dzLmFsZXJ0X3RyeX0gJHthcHAubXNncy5hbGVydF9zd2l0Y2hpbmdPbn0gJHthcHAubXNncy5tb2RlX3Byb3h5fWAsCiAgICAgICAgc3VnZ2VzdE9wZW5BSTogICAgYCR7YXBwLm1zZ3MuYWxlcnRfdHJ5fSAke2FwcC5tc2dzLmFsZXJ0X3N3aXRjaGluZ09mZn0gJHthcHAubXNncy5tb2RlX3Byb3h5fWAKICAgIH19KQoKICAgIC8vIERlZmluZSBNRU5VIGZ1bmN0aW9ucwoKICAgIGNvbnN0IG1lbnUgPSB7CiAgICAgICAgaWRzOiBbXSwgc3RhdGU6IHsKICAgICAgICAgICAgc3ltYm9sczogWyfinYwnLCAn4pyU77iPJ10sIHNlcGFyYXRvcjogZW52LnNjcmlwdE1hbmFnZXIubmFtZSA9PSAnVGFtcGVybW9ua2V5JyA/ICcg4oCUICcgOiAnOiAnLAogICAgICAgICAgICB3b3JkczogW2FwcC5tc2dzLnN0YXRlX29mZi50b1VwcGVyQ2FzZSgpLCBhcHAubXNncy5zdGF0ZV9vbi50b1VwcGVyQ2FzZSgpXQogICAgICAgIH0sCgogICAgICAgIHJlZ2lzdGVyKCkgewoKICAgICAgICAgICAgLy8gQWRkIFByb3h5IEFQSSBNb2RlIHRvZ2dsZQogICAgICAgICAgICBjb25zdCBwbUxhYmVsID0gbWVudS5zdGF0ZS5zeW1ib2xzWytjb25maWcucHJveHlBUEllbmFibGVkXSArICcgJwogICAgICAgICAgICAgICAgICAgICAgICAgICsgc2V0dGluZ3MuY29udHJvbHMucHJveHlBUEllbmFibGVkLmxhYmVsICsgJyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtZW51LnN0YXRlLnNlcGFyYXRvciArIG1lbnUuc3RhdGUud29yZHNbK2NvbmZpZy5wcm94eUFQSWVuYWJsZWRdCiAgICAgICAgICAgIG1lbnUuaWRzLnB1c2goR01fcmVnaXN0ZXJNZW51Q29tbWFuZChwbUxhYmVsLCB0b2dnbGUucHJveHlNb2RlLAogICAgICAgICAgICAgICAgZW52LnNjcmlwdE1hbmFnZXIuc3VwcG9ydHNUb29sdGlwcyA/IHsgdGl0bGU6IHNldHRpbmdzLmNvbnRyb2xzLnByb3h5QVBJZW5hYmxlZC5oZWxwdGlwIH0gOiB1bmRlZmluZWQpKTsKCiAgICAgICAgICAgIC8vIEFkZCBBYm91dC9TZXR0aW5ncyBlbnRyaWVzCiAgICAgICAgICAgIFsnYWJvdXQnLCAnc2V0dGluZ3MnXS5mb3JFYWNoKGVudHJ5VHlwZSA9PiBtZW51Lmlkcy5wdXNoKEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQoCiAgICAgICAgICAgICAgICBlbnRyeVR5cGUgPT0gJ2Fib3V0JyA/IGDwn5KhICR7c2V0dGluZ3MuY29udHJvbHMuYWJvdXQubGFiZWx9YCA6IGDimpnvuI8gJHthcHAubXNncy5tZW51TGFiZWxfc2V0dGluZ3N9YCwKICAgICAgICAgICAgICAgICgpID0+IG1vZGFscy5vcGVuKGVudHJ5VHlwZSksIGVudi5zY3JpcHRNYW5hZ2VyLnN1cHBvcnRzVG9vbHRpcHMgPyB7IHRpdGxlOiAnICcgfSA6IHVuZGVmaW5lZAogICAgICAgICAgICApKSkKICAgICAgICB9LAoKICAgICAgICByZWZyZXNoKCkgewogICAgICAgICAgICBpZiAodHlwZW9mIEdNX3VucmVnaXN0ZXJNZW51Q29tbWFuZCA9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgICAgbG9nLmRlYnVnKCdHTV91bnJlZ2lzdGVyTWVudUNvbW1hbmQgbm90IHN1cHBvcnRlZC4nKSA7IHJldHVybiB9CiAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgbWVudS5pZHMpIHsgR01fdW5yZWdpc3Rlck1lbnVDb21tYW5kKGlkKSB9IG1lbnUucmVnaXN0ZXIoKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVDaGVjaygpIHsKICAgICAgICBsb2cuY2FsbGVyID0gJ3VwZGF0ZUNoZWNrKCknCiAgICAgICAgbG9nLmRlYnVnKGBjdXJyZW50VmVyID0gJHthcHAudmVyc2lvbn1gKQoKICAgICAgICAvLyBGZXRjaCBsYXRlc3QgbWV0YQogICAgICAgIGxvZy5kZWJ1ZygnRmV0Y2hpbmcgbGF0ZXN0IHVzZXJzY3JpcHQgbWV0YWRhdGEuLi4nKQogICAgICAgIHhocih7CiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsIHVybDogYXBwLnVybHMudXBkYXRlICsgJz90PScgKyBEYXRlLm5vdygpLAogICAgICAgICAgICBoZWFkZXJzOiB7ICdDYWNoZS1Db250cm9sJzogJ25vLWNhY2hlJyB9LAogICAgICAgICAgICBvbmxvYWQ6IHJlc3AgPT4gewogICAgICAgICAgICAgICAgbG9nLmRlYnVnKCdTdWNjZXNzISBSZXNwb25zZSByZWNlaXZlZCcpCgogICAgICAgICAgICAgICAgLy8gQ29tcGFyZSB2ZXJzaW9ucywgYWxlcnQgaWYgdXBkYXRlIGZvdW5kCiAgICAgICAgICAgICAgICBsb2cuZGVidWcoJ0NvbXBhcmluZyB2ZXJzaW9ucy4uLicpCiAgICAgICAgICAgICAgICBhcHAubGF0ZXN0VmVyID0gL0B2ZXJzaW9uICsoLiopLy5leGVjKHJlc3AucmVzcG9uc2VUZXh0KT8uWzFdCiAgICAgICAgICAgICAgICBpZiAoYXBwLmxhdGVzdFZlcikgZm9yIChsZXQgaSA9IDAgOyBpIDwgNCA7IGkrKykgeyAvLyBsb29wIHRocnUgc3VidmVyJ3MKICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U3ViVmVyID0gcGFyc2VJbnQoYXBwLnZlcnNpb24uc3BsaXQoJy4nKVtpXSwgMTApIHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZXN0U3ViVmVyID0gcGFyc2VJbnQoYXBwLmxhdGVzdFZlci5zcGxpdCgnLicpW2ldLCAxMCkgfHwgMAogICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U3ViVmVyID4gbGF0ZXN0U3ViVmVyKSBicmVhayAvLyBvdXQgb2YgY29tcGFyaXNvbiBzaW5jZSBub3Qgb3V0ZGF0ZWQKICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChsYXRlc3RTdWJWZXIgPiBjdXJyZW50U3ViVmVyKSAvLyBpZiBvdXRkYXRlZAogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kYWxzLm9wZW4oJ3VwZGF0ZScsICdhdmFpbGFibGUnKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIEFsZXJ0IHRvIG5vIHVwZGF0ZSBmb3VuZCwgbmF2IGJhY2sgdG8gQWJvdXQKICAgICAgICAgICAgICAgIG1vZGFscy5vcGVuKCd1cGRhdGUnLCAndW5hdmFpbGFibGUnKQogICAgICAgIH19KQogICAgfQoKICAgIC8vIERlZmluZSBGRUVEQkFDSyBmdW5jdGlvbnMKCiAgICBmdW5jdGlvbiBhcHBBbGVydCguLi5hbGVydHMpIHsKICAgICAgICBhbGVydHMgPSBhbGVydHMuZmxhdCgpIC8vIGZsYXR0ZW4gYXJyYXkgYXJncyBuZXN0ZWQgYnkgc3ByZWFkIG9wZXJhdG9yCiAgICAgICAgYXBwRGl2LnRleHRDb250ZW50ID0gJycKICAgICAgICBjb25zdCBhbGVydFAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJykKICAgICAgICBhbGVydFAuaWQgPSBgJHthcHAuY3NzUHJlZml4fS1hbGVydGAgOyBhbGVydFAuY2xhc3NOYW1lID0gJ25vLXVzZXItc2VsZWN0JwogICAgICAgIGlmICghYWxlcnRzLmluY2x1ZGVzKCd3YWl0aW5nUmVzcG9uc2UnKSkgYWxlcnRQLnN0eWxlLm1hcmdpbkJvdHRvbSA9ICcxNnB4JyAvLyBjb3VudGVyYWN0ICNnb29nbGVncHQgcCBtYXJnaW5zCgogICAgICAgIGFsZXJ0cy5mb3JFYWNoKChhbGVydCwgaWR4KSA9PiB7IC8vIHByb2Nlc3MgZWFjaCBhbGVydCBmb3IgZGlzcGxheQogICAgICAgICAgICBsZXQgbXNnID0gYXBwLmFsZXJ0c1thbGVydF0gfHwgYWxlcnQgLy8gdXNlIHN0cmluZyB2ZXJiYXRpbSBpZiBub3QgZm91bmQgaW4gYXBwLmFsZXJ0cwogICAgICAgICAgICBpZiAoaWR4ID4gMCkgbXNnID0gJyAnICsgbXNnIC8vIGxlZnQtcGFkIDJuZCsgYWxlcnRzCiAgICAgICAgICAgIGlmIChtc2cuaW5jbHVkZXMoYXBwLmFsZXJ0cy5sb2dpbikpIHNlc3Npb24uZGVsZXRlT3BlbkFJY29va2llcygpCiAgICAgICAgICAgIGlmIChtc2cuaW5jbHVkZXMoYXBwLmFsZXJ0cy53YWl0aW5nUmVzcG9uc2UpKSBhbGVydFAuY2xhc3NMaXN0LmFkZCgnbG9hZGluZycpCgogICAgICAgICAgICAvLyBBZGQgbG9naW4gbGluayB0byBsb2dpbiBtc2dzCiAgICAgICAgICAgIGlmIChtc2cuaW5jbHVkZXMoJ0AnKSkKICAgICAgICAgICAgICAgIG1zZyArPSAnPGEgY2xhc3M9ImFsZXJ0LWxpbmsiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIicKICAgICAgICAgICAgICAgICAgICAgKyAnIGhyZWY9Imh0dHBzOi8vY2hhdGdwdC5jb20iPmNoYXRncHQuY29tPC9hPiwnCiAgICAgICAgICAgICAgICAgICAgICsgYCAke2FwcC5tc2dzLmFsZXJ0X3RoZW5SZWZyZXNoUGFnZX0uYAogICAgICAgICAgICAgICAgICAgICArIGAgKCR7YXBwLm1zZ3MuYWxlcnRfaWZJc3N1ZVBlcnNpc3RzfSxgCiAgICAgICAgICAgICAgICAgICAgICsgYCAkeyggYXBwLm1zZ3MuYWxlcnRfdHJ5ICkudG9Mb3dlckNhc2UoKSB9YAogICAgICAgICAgICAgICAgICAgICArIGAgJHthcHAubXNncy5hbGVydF9zd2l0Y2hpbmdPbn1gCiAgICAgICAgICAgICAgICAgICAgICsgYCAke2FwcC5tc2dzLm1vZGVfcHJveHl9KWAKCiAgICAgICAgICAgIC8vIEh5cGVybGluayBhcHAubXNncy5hbGVydF9zd2l0Y2hpbmc8T258T2ZmPgogICAgICAgICAgICBjb25zdCBmb3VuZFN0YXRlID0gWydPbicsICdPZmYnXS5maW5kKHN0YXRlID0+CiAgICAgICAgICAgICAgICBtc2cuaW5jbHVkZXMoYXBwLm1zZ3NbJ2FsZXJ0X3N3aXRjaGluZycgKyBzdGF0ZV0pIHx8IG5ldyBSZWdFeHAoYFxcYiR7c3RhdGV9XFxiYCwgJ2knKS50ZXN0KG1zZykpCiAgICAgICAgICAgIGlmIChmb3VuZFN0YXRlKSB7IC8vIGh5cGVybGluayBzd2l0Y2ggcGhyYXNlIGZvciBjbGljayBsaXN0ZW5lciB0byB0b2dnbGUucHJveHlNb2RlKCkKICAgICAgICAgICAgICAgIGNvbnN0IHN3aXRjaFBocmFzZSA9IGFwcC5tc2dzWydhbGVydF9zd2l0Y2hpbmcnICsgZm91bmRTdGF0ZV0gfHwgJ3N3aXRjaGluZyAnICsgZm91bmRTdGF0ZS50b0xvd2VyQ2FzZSgpCiAgICAgICAgICAgICAgICBtc2cgPSBtc2cucmVwbGFjZShzd2l0Y2hQaHJhc2UsIGA8YSBjbGFzcz0iYWxlcnQtbGluayIgaHJlZj0iIyI+JHtzd2l0Y2hQaHJhc2V9PC9hPmApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIENyZWF0ZS9maWxsL2FwcGVuZCBtc2cgc3BhbgogICAgICAgICAgICBjb25zdCBtc2dTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCiAgICAgICAgICAgIG1zZ1NwYW4uaW5uZXJIVE1MID0gbXNnIDsgYWxlcnRQLmFwcGVuZChtc2dTcGFuKQoKICAgICAgICAgICAgLy8gQWN0aXZhdGUgdG9nZ2xlIGxpbmsgaWYgbmVjZXNzYXJ5CiAgICAgICAgICAgIG1zZ1NwYW4ucXVlcnlTZWxlY3RvcignW2hyZWY9IiMiXScpPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRvZ2dsZS5wcm94eU1vZGUpCiAgICAgICAgfSkKICAgICAgICBhcHBEaXYuYXBwZW5kKGFsZXJ0UCkKICAgIH0KCiAgICBmdW5jdGlvbiBub3RpZnkobXNnLCBwb3MgPSAnJywgbm90aWZEdXJhdGlvbiA9ICcnLCBzaGFkb3cgPSAnc2hhZG93JykgewoKICAgICAgICAvLyBTdHJpcCBzdGF0ZSB3b3JkIHRvIGFwcGVuZCBjb2xvcmVkIG9uZSBsYXRlcgogICAgICAgIGNvbnN0IGZvdW5kU3RhdGUgPSBtZW51LnN0YXRlLndvcmRzLmZpbmQod29yZCA9PiBtc2cuaW5jbHVkZXMod29yZCkpCiAgICAgICAgaWYgKGZvdW5kU3RhdGUpIG1zZyA9IG1zZy5yZXBsYWNlKGZvdW5kU3RhdGUsICcnKQoKICAgICAgICAvLyBTaG93IG5vdGlmaWNhdGlvbgogICAgICAgIGNoYXRncHQubm90aWZ5KG1zZywgcG9zLCBub3RpZkR1cmF0aW9uLCBzaGFkb3cpCiAgICAgICAgY29uc3Qgbm90aWYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY2hhdGdwdC1ub3RpZjpsYXN0LWNoaWxkJykKCiAgICAgICAgLy8gUHJlcGVuZCBhcHAgaWNvbgogICAgICAgIGNvbnN0IG5vdGlmSWNvbiA9IGljb25zLmdvb2dsZUdQVC5jcmVhdGUoJ3doaXRlJykKICAgICAgICBub3RpZkljb24uc3R5bGUuY3NzVGV4dCA9ICd3aWR0aDogMjZweCA7IHBvc2l0aW9uOiByZWxhdGl2ZSA7IHRvcDogMi44cHggOyBtYXJnaW4tcmlnaHQ6IDZweCcKICAgICAgICBub3RpZi5wcmVwZW5kKG5vdGlmSWNvbikKCiAgICAgICAgLy8gQXBwZW5kIG5vdGlmIHR5cGUgaWNvbgogICAgICAgIGNvbnN0IGljb25TdHlsZXMgPSAnd2lkdGg6IDI4cHggOyBoZWlnaHQ6IDI4cHggOyBwb3NpdGlvbjogcmVsYXRpdmUgOyB0b3A6IDNweCA7IG1hcmdpbi1sZWZ0OiAxMXB4IDsnLAogICAgICAgICAgICAgIG1vZGUgPSBPYmplY3Qua2V5cyhzZXR0aW5ncy5jb250cm9scykuZmluZChrZXkgPT4gc2V0dGluZ3MuY29udHJvbHNba2V5XS5sYWJlbC5pbmNsdWRlcyhtc2cudHJpbSgpKSkKICAgICAgICBpZiAobW9kZSAmJiAhLyg/OnByZXxzdWYpZml4Ly50ZXN0KG1vZGUpKSB7CiAgICAgICAgICAgIGNvbnN0IG1vZGVJY29uID0gaWNvbnNbc2V0dGluZ3MuY29udHJvbHNbbW9kZV0uaWNvbl0uY3JlYXRlKCkKICAgICAgICAgICAgbW9kZUljb24uc3R5bGUuY3NzVGV4dCA9IGljb25TdHlsZXMKICAgICAgICAgICAgICAgICsgKCAvYXV0b2dldHxkZWJ1Z3xmb2N1c3xzY3JvbGwvaS50ZXN0KG1vZGUpID8gJ3RvcDogMC41cHgnIDogJycgKSAvLyByYWlzZSBzb21lIGljb25zCiAgICAgICAgICAgICAgICArICggL2FuaW1hdGlvbnxkZWJ1Zy9pLnRlc3QobW9kZSkgPyAnd2lkdGg6IDIzcHggOyBoZWlnaHQ6IDIzcHgnIDogJycgKSAvLyBzaHJpbmsgc29tZSBpY29uCiAgICAgICAgICAgIG5vdGlmLmFwcGVuZChtb2RlSWNvbikKICAgICAgICB9CgogICAgICAgIC8vIEFwcGVuZCBzdHlsZWQgc3RhdGUgd29yZAogICAgICAgIGlmIChmb3VuZFN0YXRlKSB7CiAgICAgICAgICAgIGNvbnN0IHN0eWxlZFN0YXRlU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQogICAgICAgICAgICBzdHlsZWRTdGF0ZVNwYW4uc3R5bGUuY3NzVGV4dCA9IGBjb2xvcjogJHsKICAgICAgICAgICAgICAgIGZvdW5kU3RhdGUgPT0gbWVudS5zdGF0ZS53b3Jkc1swXSA/ICcjZWY0ODQ4IDsgdGV4dC1zaGFkb3c6IHJnYmEoMjU1LDE2OSwyMjUsMC40NCkgMnB4IDFweCA1cHgnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnIzVjZWY0OCA7IHRleHQtc2hhZG93OiByZ2JhKDI1NSwyNTAsMTY5LDAuMzgpIDJweCAxcHggNXB4JyB9YAogICAgICAgICAgICBzdHlsZWRTdGF0ZVNwYW4uYXBwZW5kKGZvdW5kU3RhdGUpIDsgbm90aWYuaW5zZXJ0QmVmb3JlKHN0eWxlZFN0YXRlU3Bhbiwgbm90aWYuY2hpbGRyZW5bMl0pCiAgICAgICAgfQogICAgfQoKICAgIC8vIERlZmluZSBNT0RBTCBmdW5jdGlvbnMKCiAgICBjb25zdCBtb2RhbHMgPSB7CiAgICAgICAgc3RhY2s6IFtdLCAvLyBvZiB0eXBlcyBvZiB1bmRpc21pc3NlZCBtb2RhbHMKICAgICAgICBjbGFzczogYCR7YXBwLmNzc1ByZWZpeH0tbW9kYWxgLAoKICAgICAgICBhbGVydCh0aXRsZSA9ICcnLCBtc2cgPSAnJywgYnRucyA9ICcnLCBjaGVja2JveCA9ICcnLCB3aWR0aCA9ICcnKSB7IC8vIGdlbmVyaWMgb25lIGZyb20gY2hhdGdwdC5hbGVydCgpCiAgICAgICAgICAgIGNvbnN0IGFsZXJ0SUQgPSBjaGF0Z3B0LmFsZXJ0KHRpdGxlLCBtc2csIGJ0bnMsIGNoZWNrYm94LCB3aWR0aCksCiAgICAgICAgICAgICAgICAgIGFsZXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYWxlcnRJRCkuZmlyc3RDaGlsZAogICAgICAgICAgICB0aGlzLmluaXQoYWxlcnQpIC8vIGFkZCBjbGFzc2VzL2xpc3RlbmVycy9oYWNrIGJnL2dsb3d1cCBidG5zCiAgICAgICAgICAgIHJldHVybiBhbGVydAogICAgICAgIH0sCgogICAgICAgIG9wZW4obW9kYWxUeXBlLCBtb2RhbFN1YlR5cGUpIHsgLy8gY3VzdG9tIG9uZXMKICAgICAgICAgICAgY29uc3QgbW9kYWwgPSBtb2RhbFN1YlR5cGUgPyBtb2RhbHNbbW9kYWxUeXBlXVttb2RhbFN1YlR5cGVdKCkKICAgICAgICAgICAgICAgICAgICAgICAgOiAobW9kYWxzW21vZGFsVHlwZV0uc2hvdyB8fCBtb2RhbHNbbW9kYWxUeXBlXSkoKQogICAgICAgICAgICBpZiAoc2V0dGluZ3MuY29udHJvbHNbbW9kYWxUeXBlXT8udHlwZSAhPSAncHJvbXB0JykgeyAvLyBhZGQgdG8gc3RhY2sKICAgICAgICAgICAgICAgIHRoaXMuc3RhY2sudW5zaGlmdChtb2RhbFN1YlR5cGUgPyBgJHttb2RhbFR5cGV9XyR7bW9kYWxTdWJUeXBlfWAgOiBtb2RhbFR5cGUpCiAgICAgICAgICAgICAgICBsb2cuZGVidWcoYE1vZGFsIHN0YWNrOiAke0pTT04uc3RyaW5naWZ5KG1vZGFscy5zdGFjayl9YCkKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLmluaXQobW9kYWwpIC8vIGFkZCBjbGFzc2VzL2xpc3RlbmVycy9oYWNrIGJnL2dsb3d1cCBidG5zCiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZVJlbW92YWwobW9kYWwsIG1vZGFsVHlwZSwgbW9kYWxTdWJUeXBlKSAvLyB0byBtYWludGFpbiBzdGFjayBmb3IgcHJvcGVyIG5hdgogICAgICAgICAgICBpZiAoIW1vZGFscy5oYW5kbGVycy5kaXNtaXNzLmtleS5hZGRlZCkgeyAvLyBhZGQga2V5IGxpc3RlbmVyIHRvIGRpc21pc3MgbW9kYWxzCiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgbW9kYWxzLmhhbmRsZXJzLmRpc21pc3Mua2V5KQogICAgICAgICAgICAgICAgbW9kYWxzLmhhbmRsZXJzLmRpc21pc3Mua2V5LmFkZGVkID0gdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgaW5pdChtb2RhbCkgewogICAgICAgICAgICBpZiAoIXRoaXMuc3R5bGVzKSB0aGlzLnN0eWxpemUoKSAvLyB0byBpbml0L2FwcGVuZCBzdHlsZXNoZWV0CgogICAgICAgICAgICAvLyBBZGQgY2xhc3NlcwogICAgICAgICAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCduby11c2VyLXNlbGVjdCcsIHRoaXMuY2xhc3MpIDsgbW9kYWwucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKGAke3RoaXMuY2xhc3N9LWJnYCkKCiAgICAgICAgICAgIC8vIEFkZCBsaXN0ZW5lcnMKICAgICAgICAgICAgbW9kYWwub253aGVlbCA9IG1vZGFsLm9udG91Y2htb3ZlID0gZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSAvLyBkaXNhYmxlIHdoZWVsL3N3aXBlIHNjcm9sbGluZwogICAgICAgICAgICBtb2RhbC5vbm1vdXNlZG93biA9IG1vZGFscy5oYW5kbGVycy5kcmFnLm1vdXNlZG93biAvLyBlbmFibGUgY2xpY2stZHJhZ2dpbmcKICAgICAgICAgICAgaWYgKCFtb2RhbC5wYXJlbnROb2RlLmNsYXNzTmFtZS5pbmNsdWRlcygnY2hhdGdwdC1tb2RhbCcpKSB7IC8vIGVuYWJsZSBjbGljay1kaXNtaXNzaW5nIG5hdGl2ZSBtb2RhbHMKICAgICAgICAgICAgICAgIGNvbnN0IGRpc21pc3NFbGVtcyA9IFttb2RhbC5wYXJlbnROb2RlLCBtb2RhbC5xdWVyeVNlbGVjdG9yKCdbY2xhc3MqPS1jbG9zZS1idG5dJyldCiAgICAgICAgICAgICAgICBkaXNtaXNzRWxlbXMuZm9yRWFjaChlbGVtID0+IGVsZW0ub25jbGljayA9IG1vZGFscy5oYW5kbGVycy5kaXNtaXNzLmNsaWNrKQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBIYWNrIEJHCiAgICAgICAgICAgIGRvbS5maWxsU3RhcnJ5QkcobW9kYWwpCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyAvLyBkaW0gYmcKICAgICAgICAgICAgICAgIG1vZGFsLnBhcmVudE5vZGUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYHJnYmEoNjcsNzAsNzIsJHsKICAgICAgICAgICAgICAgICAgICBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAwLjYyIDogMC4zMyB9KWAKICAgICAgICAgICAgICAgIG1vZGFsLnBhcmVudE5vZGUuY2xhc3NMaXN0LmFkZCgnYW5pbWF0ZWQnKQogICAgICAgICAgICB9LCAxMDApIC8vIGRlbGF5IGZvciB0cmFuc2l0aW9uIGZ4CgogICAgICAgICAgICAvLyBHbG93dXAgYnRucwogICAgICAgICAgICBpZiAoZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnICYmICFjb25maWcuZmdBbmltYXRpb25zRGlzYWJsZWQpIHRvZ2dsZS5idG5HbG93KCkKICAgICAgICB9LAoKICAgICAgICBzdHlsaXplKCkgewogICAgICAgICAgICBpZiAoIXRoaXMuc3R5bGVzKSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJykgOyB0aGlzLnN0eWxlcy5pZCA9IGAke3RoaXMuY2xhc3N9LXN0eWxlc2AKICAgICAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kKHRoaXMuc3R5bGVzKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuc3R5bGVzLmlubmVyVGV4dCA9ICgKICAgICAgICAgICAgICAgICc6cm9vdCB7JyAvLyB2YXJzCiAgICAgICAgICAgICAgICAgICAgKyAnLS10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNjVzIGN1YmljLWJlemllcigwLjE2NSwwLjg0LDAuNDQsMSksJyAvLyBmb3IgbW9kYWwgZmFkZS1pbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAndHJhbnNmb3JtIDAuNTVzIGN1YmljLWJlemllcigwLjE2NSwwLjg0LDAuNDQsMSkgIWltcG9ydGFudCA7JyAvLyBmb3IgbW9kYWwgbW92ZS1pbgogICAgICAgICAgICAgICAgICAgICsgJy0tYmctdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlICFpbXBvcnRhbnQgOycgLy8gZm9yIG1vZGFsIGJnIGRpbQogICAgICAgICAgICAgICAgICAgICsgJy0tYnRuLXpvb20tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UgOycgLy8gZm9yIG1vZGFsIGJ1dHRvbiBob3Zlci16b29tCiAgICAgICAgICAgICAgICAgICAgKyAnLS1zZXR0aW5ncy10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlIH0nIC8vIGZvciBTZXR0aW5ncyBlbnRyeSBob3Zlci16b29tCgogICAgICAgICAgICAgICAgLy8gTWFpbiBtb2RhbCBzdHlsZXMKICAgICAgICAgICAgICArICdAa2V5ZnJhbWVzIG1vZGFsLXpvb20tZmFkZS1vdXQgeycKICAgICAgICAgICAgICAgICAgKyAnMCUgeyBvcGFjaXR5OiAxIH0gNTAlIHsgb3BhY2l0eTogMC4yNSA7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSkgfScKICAgICAgICAgICAgICAgICAgKyAnMTAwJSB7IG9wYWNpdHk6IDAgOyB0cmFuc2Zvcm06IHNjYWxlKDEuMzUpIH19JwogICAgICAgICAgICAgICsgJy5jaGF0Z3B0LW1vZGFsID4gZGl2IHsnCiAgICAgICAgICAgICAgICAgICsgJ3BhZGRpbmc6IDE3cHggMjBweCAyNHB4IDIwcHggIWltcG9ydGFudCA7JyAvLyBpbmNyZWFzZSBhbGVydCBwYWRkaW5nCiAgICAgICAgICAgICAgICAgICsgJ2JhY2tncm91bmQtY29sb3I6IHdoaXRlIDsgY29sb3I6ICMyMDIxMjQgfScKICAgICAgICAgICAgICArICcuY2hhdGdwdC1tb2RhbCBwIHsgbWFyZ2luOiAxNHB4IDAgLTI5cHggNHB4IDsgZm9udC1zaXplOiAxLjI4ZW0gOyBsaW5lLWhlaWdodDogMS41NyB9JyAvLyBwb3Mvc2l6ZSBtb2RhbCBtc2cKICAgICAgICAgICAgICArICcubW9kYWwtYnV0dG9ucyB7JwogICAgICAgICAgICAgICAgICArIGBtYXJnaW46IDQycHggNHB4ICR7IGVudi5icm93c2VyLmlzTW9iaWxlID8gJzJweCA0cHgnIDogJy0zcHggLTRweCcgfSAhaW1wb3J0YW50IDsgd2lkdGg6IDEwMCUgfWAKICAgICAgICAgICAgICArICcuY2hhdGdwdC1tb2RhbCBidXR0b24geycgLy8gYWxlcnQgYnV0dG9ucwogICAgICAgICAgICAgICAgICArICdmb250LXNpemU6IDAuODRyZW0gOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlIDsgbWluLXdpZHRoOiAxMTNweCA7JwogICAgICAgICAgICAgICAgICArIGBwYWRkaW5nOiAkeyBlbnYuYnJvd3Nlci5pc01vYmlsZSA/ICc1cHgnIDogJzRweCAxMHB4JyB9ICFpbXBvcnRhbnQgO2AKICAgICAgICAgICAgICAgICAgKyAnY3Vyc29yOiBwb2ludGVyIDsgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50IDsgaGVpZ2h0OiAzOXB4IDsnCiAgICAgICAgICAgICAgICAgICsgJ2JvcmRlcjogMXB4IHNvbGlkICcgKyAoIGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnYmxhY2snICkgKyAnICFpbXBvcnRhbnQgfScKICAgICAgICAgICAgICArICcucHJpbWFyeS1tb2RhbC1idG4geyBiYWNrZ3JvdW5kOiBibGFjayAhaW1wb3J0YW50IDsgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQgfScKICAgICAgICAgICAgICArICcuY2hhdGdwdC1tb2RhbCBidXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjOWNkYWZmICFpbXBvcnRhbnQgOyBjb2xvcjogYmxhY2sgIWltcG9ydGFudCB9JwogICAgICAgICAgICAgICsgKCBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAvLyBkYXJrbW9kZSBjaGF0Z3B0LmFsZXJ0KCkgc3R5bGVzCiAgICAgICAgICAgICAgICAgICggJy5jaGF0Z3B0LW1vZGFsID4gZGl2LCAuY2hhdGdwdC1tb2RhbCBidXR0b246bm90KC5wcmltYXJ5LW1vZGFsLWJ0bikgeycKICAgICAgICAgICAgICAgICAgICAgICsgJ2JhY2tncm91bmQtY29sb3I6IGJsYWNrICFpbXBvcnRhbnQgOyBjb2xvcjogd2hpdGUgIWltcG9ydGFudCB9JwogICAgICAgICAgICAgICAgICArICcucHJpbWFyeS1tb2RhbC1idG4geyBiYWNrZ3JvdW5kOiBoc2woMTg2IDEwMCUgNjklKSAhaW1wb3J0YW50IDsgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQgfScKICAgICAgICAgICAgICAgICAgKyAnLmNoYXRncHQtbW9kYWwgYSB7IGNvbG9yOiAjMDBjZmZmICFpbXBvcnRhbnQgfScKICAgICAgICAgICAgICAgICAgKyAnLmNoYXRncHQtbW9kYWwgYnV0dG9uOmhvdmVyIHsnCiAgICAgICAgICAgICAgICAgICAgICArICdiYWNrZ3JvdW5kLWNvbG9yOiAjMDBjZmZmICFpbXBvcnRhbnQgOyBjb2xvcjogYmxhY2sgIWltcG9ydGFudCB9JyApIDogJycgKQogICAgICAgICAgICAgICsgYC4ke21vZGFscy5jbGFzc30geyBkaXNwbGF5OiBncmlkIDsgcGxhY2UtaXRlbXM6IGNlbnRlciB9YCAvLyBmb3IgY2VudGVyZWQgaWNvbi9sb2dvCiAgICAgICAgICAgICAgKyAnW2NsYXNzKj1tb2RhbC1jbG9zZS1idG5dIHsnCiAgICAgICAgICAgICAgICAgICsgJ3Bvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50IDsgZmxvYXQ6IHJpZ2h0IDsgdG9wOiAxNHB4ICFpbXBvcnRhbnQgOyByaWdodDogMTZweCAhaW1wb3J0YW50IDsnCiAgICAgICAgICAgICAgICAgICsgJ2N1cnNvcjogcG9pbnRlciA7IHdpZHRoOiAzM3B4IDsgaGVpZ2h0OiAzM3B4IDsgYm9yZGVyLXJhZGl1czogMjBweCB9JwogICAgICAgICAgICAgICsgYFtjbGFzcyo9bW9kYWwtY2xvc2UtYnRuXSBwYXRoIHskeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnc3Ryb2tlOiB3aGl0ZSA7IGZpbGw6IHdoaXRlJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3N0cm9rZTogIzlmOWY5ZiA7IGZpbGw6ICM5ZjlmOWYnIH19YAogICAgICAgICAgICAgICsgKCBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAgLy8gaW52ZXJ0IGRhcmsgbW9kZSBob3ZlciBwYXRocwogICAgICAgICAgICAgICAgICAgICdbY2xhc3MqPW1vZGFsLWNsb3NlLWJ0bl06aG92ZXIgcGF0aCB7IHN0cm9rZTogYmxhY2sgOyBmaWxsOiBibGFjayB9JyA6ICcnICkKICAgICAgICAgICAgICArICdbY2xhc3MqPW1vZGFsLWNsb3NlLWJ0bl06aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyIH0nIC8vIGhvdmVyIHVuZGVybGF5CiAgICAgICAgICAgICAgKyAnW2NsYXNzKj1tb2RhbC1jbG9zZS1idG5dIHN2ZyB7IG1hcmdpbjogMTEuNXB4IH0nIC8vIGNlbnRlciBTVkcgZm9yIGhvdmVyIHVuZGVybGF5CiAgICAgICAgICAgICAgKyAnW2NsYXNzKj0tbW9kYWxdIGgyIHsnCiAgICAgICAgICAgICAgICAgICsgJ2ZvbnQtc2l6ZTogMS42NXJlbSA7IGxpbmUtaGVpZ2h0OiAzMnB4IDsgcGFkZGluZzogMCA7IG1hcmdpbjogOXB4IDAgLTNweCAhaW1wb3J0YW50IDsnCiAgICAgICAgICAgICAgICAgICsgYCR7IGVudi5icm93c2VyLmlzTW9iaWxlID8gJ3RleHQtYWxpZ246IGNlbnRlcicgLy8gY2VudGVyIG9uIG1vYmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdqdXN0aWZ5LXNlbGY6IHN0YXJ0JyB9fWAgLy8gbGVmdC1hbGlnbiBvbiBkZXNrdG9wCiAgICAgICAgICAgICAgKyAnW2NsYXNzKj0tbW9kYWxdIHAgeyBqdXN0aWZ5LXNlbGY6IHN0YXJ0IDsgZm9udC1zaXplOiAyMHB4IH0nCiAgICAgICAgICAgICAgKyAnW2NsYXNzKj0tbW9kYWxdIGJ1dHRvbiB7IGZvbnQtc2l6ZTogMTJweCB9JwogICAgICAgICAgICAgICsgJ1tjbGFzcyo9LW1vZGFsLWJnXSB7JwogICAgICAgICAgICAgICAgICArICdwb2ludGVyLWV2ZW50czogYXV0byA7JyAvLyBvdmVycmlkZSBhbnkgZGlzYWJsaW5nIGZyb20gc2l0ZSBtb2RhbHMKICAgICAgICAgICAgICAgICAgKyAncG9zaXRpb246IGZpeGVkIDsgdG9wOiAwIDsgbGVmdDogMCA7IHdpZHRoOiAxMDAlIDsgaGVpZ2h0OiAxMDAlIDsnIC8vIGV4cGFuZCB0byBmdWxsIHZpZXctcG9ydAogICAgICAgICAgICAgICAgICArICdkaXNwbGF5OiBmbGV4IDsganVzdGlmeS1jb250ZW50OiBjZW50ZXIgOyBhbGlnbi1pdGVtczogY2VudGVyIDsgei1pbmRleDogOTk5OSA7JyAvLyBhbGlnbgogICAgICAgICAgICAgICAgICArICd0cmFuc2l0aW9uOiB2YXIoLS1iZy10cmFuc2l0aW9uKSA7JyAvLyBmb3IgYmcgZGltCiAgICAgICAgICAgICAgICAgICAgICArICctd2Via2l0LXRyYW5zaXRpb246IHZhcigtLWJnLXRyYW5zaXRpb24pIDsgLW1vei10cmFuc2l0aW9uOiB2YXIoLS1iZy10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgKyAnLW8tdHJhbnNpdGlvbjogdmFyKC0tYmctdHJhbnNpdGlvbikgOyAtbXMtdHJhbnNpdGlvbjogdmFyKC0tYmctdHJhbnNpdGlvbikgfScKICAgICAgICAgICAgICArICdbY2xhc3MqPS1tb2RhbC1iZ10uYW5pbWF0ZWQgPiBkaXYgeycKICAgICAgICAgICAgICAgICAgKyAnei1pbmRleDogMTM0NTYgOyBvcGFjaXR5OiAwLjk4IDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCkgfScKICAgICAgICAgICAgICArICdbY2xhc3MkPS1tb2RhbF0geycgLy8gbmF0aXZlIG1vZGFscyArIGNoYXRncHQuYWxlcnQoKXMKICAgICAgICAgICAgICAgICAgKyAncG9zaXRpb246IGFic29sdXRlIDsnIC8vIHRvIGJlIGNsaWNrLWRyYWdnYWJsZQogICAgICAgICAgICAgICAgICArICdvcGFjaXR5OiAwIDsnIC8vIHRvIGZhZGUtaW4KICAgICAgICAgICAgICAgICAgKyBgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgJHsKICAgICAgICAgICAgICAgICAgICAgICBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnIzk5YThhNiAtMjAwcHgsIGJsYWNrIDIwMHB4JyA6ICcjYjZlYmZmIC0yOTZweCwgd2hpdGUgMTcxcHgnIH0pIDtgCiAgICAgICAgICAgICAgICAgICsgYGJvcmRlcjogMXB4IHNvbGlkICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnI2I1YjViNScgfSAhaW1wb3J0YW50IDtgCiAgICAgICAgICAgICAgICAgICsgYGNvbG9yOiAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnd2hpdGUnIDogJ2JsYWNrJyB9IDtgCiAgICAgICAgICAgICAgICAgICsgJ3RyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSB0cmFuc2xhdGVZKDdweCkgOycgLy8gb2Zmc2V0IHRvIG1vdmUtaW4gZnJvbQogICAgICAgICAgICAgICAgICArICd0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKSA7JyAvLyBmb3IgZmFkZS1pbiArIG1vdmUtaW4KICAgICAgICAgICAgICAgICAgICAgICsgJy13ZWJraXQtdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbikgOyAtbW96LXRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctby10cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKSA7IC1tcy10cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKSB9JwogICAgICAgICAgICAgICsgKCBjb25maWcuZmdBbmltYXRpb25zRGlzYWJsZWQgfHwgZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAnJyA6ICgKICAgICAgICAgICAgICAgICAgICAnW2NsYXNzJD0tbW9kYWxdIGJ1dHRvbjpob3ZlciB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNTUpIH0nCiAgICAgICAgICAgICAgICAgICsgJ1tjbGFzcyQ9LW1vZGFsXSBidXR0b24geyB0cmFuc2l0aW9uOiB2YXIoLS1idG4tdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy13ZWJraXQtdHJhbnNpdGlvbjogdmFyKC0tYnRuLXRyYW5zaXRpb24pIDsgLW1vei10cmFuc2l0aW9uOiB2YXIoLS1idG4tdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy1vLXRyYW5zaXRpb246IHZhcigtLWJ0bi10cmFuc2l0aW9uKSA7IC1tcy10cmFuc2l0aW9uOiB2YXIoLS1idG4tdHJhbnNpdGlvbikgfScgKSkKCiAgICAgICAgICAgICAgLy8gR2xvd2luZyBtb2RhbCBidG5zCiAgICAgICAgICAgICAgKyAnOnJvb3QgeyAtLWdsb3ctY29sb3I6IGhzbCgxODYgMTAwJSA2OSUpIH0nCiAgICAgICAgICAgICAgKyAnLmdsb3dpbmctYnRuIHsnCiAgICAgICAgICAgICAgICAgICsgJ3BlcnNwZWN0aXZlOiAyZW0gOyBmb250LXdlaWdodDogOTAwIDsgYW5pbWF0aW9uOiBib3JkZXItZmxpY2tlciAycyBsaW5lYXIgaW5maW5pdGUgOycKICAgICAgICAgICAgICAgICAgKyAnLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgMC41ZW0gMCB2YXIoLS1nbG93LWNvbG9yKSwgMCAwIDAuNWVtIDAgdmFyKC0tZ2xvdy1jb2xvcikgOycKICAgICAgICAgICAgICAgICAgKyAnYm94LXNoYWRvdzogaW5zZXQgMCAwIDAuNWVtIDAgdmFyKC0tZ2xvdy1jb2xvciksIDAgMCAwLjVlbSAwIHZhcigtLWdsb3ctY29sb3IpIDsnCiAgICAgICAgICAgICAgICAgICsgJy1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAwIDAuNWVtIDAgdmFyKC0tZ2xvdy1jb2xvciksIDAgMCAwLjVlbSAwIHZhcigtLWdsb3ctY29sb3IpIH0nCiAgICAgICAgICAgICAgKyAnLmdsb3dpbmctdHh0IHsnCiAgICAgICAgICAgICAgICAgICsgJ2FuaW1hdGlvbjogdGV4dC1mbGlja2VyIDNzIGxpbmVhciBpbmZpbml0ZSA7JwogICAgICAgICAgICAgICAgICArICctd2Via2l0LXRleHQtc2hhZG93OiAwIDAgMC4xMjVlbSBoc2woMCAwJSAxMDAlIC8gMC4zKSwgMCAwIDAuNDVlbSB2YXIoLS1nbG93LWNvbG9yKSA7JwogICAgICAgICAgICAgICAgICArICctbW96LXRleHQtc2hhZG93OiAwIDAgMC4xMjVlbSBoc2woMCAwJSAxMDAlIC8gMC4zKSwgMCAwIDAuNDVlbSB2YXIoLS1nbG93LWNvbG9yKSA7JwogICAgICAgICAgICAgICAgICArICd0ZXh0LXNoYWRvdzogMCAwIDAuMTI1ZW0gaHNsKDAgMCUgMTAwJSAvIDAuMyksIDAgMCAwLjQ1ZW0gdmFyKC0tZ2xvdy1jb2xvcikgfScKICAgICAgICAgICAgICArICcuZmF1bHR5LWxldHRlciB7JwogICAgICAgICAgICAgICAgICArICdvcGFjaXR5OiAwLjUgOyBhbmltYXRpb246IGZhdWx0eS1mbGlja2VyIDJzIGxpbmVhciBpbmZpbml0ZSB9JwogICAgICAgICAgICAgICAgICArICggIWVudi5icm93c2VyLmlzTW9iaWxlID8gJ2JhY2tncm91bmQ6IHZhcigtLWdsb3ctY29sb3IpIDsnCiAgICAgICAgICAgICAgICAgICAgICAgICsgJ3RyYW5zZm9ybTogdHJhbnNsYXRlWSgxMjAlKSByb3RhdGVYKDk1ZGVnKSBzY2FsZSgxLCAwLjM1KScgOiAnJyApICsgJ30nCiAgICAgICAgICAgICAgKyAnLmdsb3dpbmctYnRuOmhvdmVyIHsgY29sb3I6IHJnYmEoMCwwLDAsMC44KSA7IHRleHQtc2hhZG93OiBub25lIDsgYW5pbWF0aW9uOiBub25lIH0nCiAgICAgICAgICAgICAgKyAnLmdsb3dpbmctYnRuOmhvdmVyIC5nbG93aW5nLXR4dCB7IGFuaW1hdGlvbjogbm9uZSB9JwogICAgICAgICAgICAgICsgJy5nbG93aW5nLWJ0bjpob3ZlciAuZmF1bHR5LWxldHRlciB7IGFuaW1hdGlvbjogbm9uZSA7IHRleHQtc2hhZG93OiBub25lIDsgb3BhY2l0eTogMSB9JwogICAgICAgICAgICAgICsgJy5nbG93aW5nLWJ0bjpob3ZlcjpiZWZvcmUgeyBmaWx0ZXI6IGJsdXIoMS41ZW0pIDsgb3BhY2l0eTogMSB9JwogICAgICAgICAgICAgICsgJy5nbG93aW5nLWJ0bjpob3ZlcjphZnRlciB7IG9wYWNpdHk6IDEgfScKICAgICAgICAgICAgICArICdAa2V5ZnJhbWVzIGZhdWx0eS1mbGlja2VyIHsnCiAgICAgICAgICAgICAgICAgICsgJzAlIHsgb3BhY2l0eTogMC4xIH0gMiUgeyBvcGFjaXR5OiAwLjEgfSA0JSB7IG9wYWNpdHk6IDAuNSB9IDE5JSB7IG9wYWNpdHk6IDAuNSB9JwogICAgICAgICAgICAgICAgICArICcyMSUgeyBvcGFjaXR5OiAwLjEgfSAyMyUgeyBvcGFjaXR5OiAxIH0gODAlIHsgb3BhY2l0eTogMC41IH0gODMlIHsgb3BhY2l0eTogMC40IH0nCiAgICAgICAgICAgICAgICAgICsgJzg3JSB7IG9wYWNpdHk6IDEgfX0nCiAgICAgICAgICAgICAgKyAnQGtleWZyYW1lcyB0ZXh0LWZsaWNrZXIgeycKICAgICAgICAgICAgICAgICAgKyAnMCUgeyBvcGFjaXR5OiAwLjEgfSAyJSB7IG9wYWNpdHk6IDEgfSA4JSB7IG9wYWNpdHk6IDAuMSB9IDklIHsgb3BhY2l0eTogMSB9JwogICAgICAgICAgICAgICAgICArICcxMiUgeyBvcGFjaXR5OiAwLjEgfSAyMCUgeyBvcGFjaXR5OiAxIH0gMjUlIHsgb3BhY2l0eTogMC4zIH0gMzAlIHsgb3BhY2l0eTogMSB9JwogICAgICAgICAgICAgICAgICArICc3MCUgeyBvcGFjaXR5OiAwLjcgfSA3MiUgeyBvcGFjaXR5OiAwLjIgfSA3NyUgeyBvcGFjaXR5OiAwLjkgfSAxMDAlIHsgb3BhY2l0eTogMC45IH19JwogICAgICAgICAgICAgICsgJ0BrZXlmcmFtZXMgYm9yZGVyLWZsaWNrZXIgeycKICAgICAgICAgICAgICAgICAgKyAnMCUgeyBvcGFjaXR5OiAwLjEgfSAyJSB7IG9wYWNpdHk6IDEgfSA0JSB7IG9wYWNpdHk6IDAuMSB9IDglIHsgb3BhY2l0eTogMSB9JwogICAgICAgICAgICAgICAgICArICc3MCUgeyBvcGFjaXR5OiAwLjcgfSAxMDAlIHsgb3BhY2l0eTogMSB9fScKCiAgICAgICAgICAgICAgLy8gU2V0dGluZ3MgbW9kYWwKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS1zZXR0aW5ncyB7YAogICAgICAgICAgICAgICAgICArIGBtaW4td2lkdGg6ICR7IGVudi5icm93c2VyLmlzUG9ydHJhaXQgPyAyODggOiA2OTggfXB4IDtgCiAgICAgICAgICAgICAgICAgICsgJ21heC13aWR0aDogNzV2dyA7IHdvcmQtd3JhcDogYnJlYWstd29yZCA7JwogICAgICAgICAgICAgICAgICArICdtYXJnaW46IDEycHggMjNweCA7IGJvcmRlci1yYWRpdXM6IDE1cHggOyBib3gtc2hhZG93OiAwIDMwcHggNjBweCByZ2JhKDAsMCwwLDAuMTIpIDsnCiAgICAgICAgICAgICAgICAgICsgYCR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICdzdHJva2U6IHdoaXRlIDsgZmlsbDogd2hpdGUnIDogJ3N0cm9rZTogYmxhY2sgOyBmaWxsOiBibGFjaycgfX1gIC8vIGljb24gY29sb3IKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS1zZXR0aW5ncy10aXRsZSB7YAogICAgICAgICAgICAgICAgICArICdmb250LXdlaWdodDogYm9sZCA7IGxpbmUtaGVpZ2h0OiAxOXB4IDsgdGV4dC1hbGlnbjogY2VudGVyIDsnCiAgICAgICAgICAgICAgICAgICsgYG1hcmdpbjogMCAtNnB4ICR7IGVudi5icm93c2VyLmlzUG9ydHJhaXQgPyAyIDogLTE1IH1weCAwIH1gCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0tc2V0dGluZ3MtdGl0bGUgaDQge2AKICAgICAgICAgICAgICAgICAgKyBgZm9udC1zaXplOiAkeyBlbnYuYnJvd3Nlci5pc1BvcnRyYWl0ID8gMjIgOiAyOSB9cHggOyBmb250LXdlaWdodDogYm9sZCA7YAogICAgICAgICAgICAgICAgICArIGBtYXJnaW46IDAgMCAkeyBlbnYuYnJvd3Nlci5pc1BvcnRyYWl0ID8gOSA6IDI3IH1weCB9YAogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9LXNldHRpbmdzIHVsIHtgCiAgICAgICAgICAgICAgICAgICsgJ2xpc3Qtc3R5bGU6IG5vbmUgOyBwYWRkaW5nOiAwIDsgbWFyZ2luLWJvdHRvbTogMnB4IDsnIC8vIGhpZGUgYnVsbGV0cywgY2xvc2UgYm90dG9tIGdhcAogICAgICAgICAgICAgICAgICArIGB3aWR0aDogJHsgZW52LmJyb3dzZXIuaXNQb3J0cmFpdCA/IDEwMCA6IDUwIH0lIH1gIC8vIHNldCB3aWR0aCBiYXNlZCBvbiBjb2x1bW4gY250CiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0tc2V0dGluZ3MgbGkge2AKICAgICAgICAgICAgICAgICAgKyBgY29sb3I6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICdyZ2IoMjU1LDI1NSwyNTUsMC42NSknIDogJ3JnYmEoMCwwLDAsMC40NSknIH0gO2AgLy8gZm9yIHRleHQKICAgICAgICAgICAgICAgICAgKyBgZmlsbDogJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ3JnYigyNTUsMjU1LDI1NSwwLjY1KScgOiAncmdiYSgwLDAsMCwwLjQ1KScgfSA7YCAvLyBmb3IgaWNvbnMKICAgICAgICAgICAgICAgICAgKyBgc3Ryb2tlOiAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAncmdiKDI1NSwyNTUsMjU1LDAuNjUpJyA6ICdyZ2JhKDAsMCwwLDAuNDUpJyB9IDtgIC8vIGZvciBpY29ucwogICAgICAgICAgICAgICAgICArICdoZWlnaHQ6IDI0cHggOyBwYWRkaW5nOiA2cHggMTBweCA7IGZvbnQtc2l6ZTogMTMuNXB4IDsnCiAgICAgICAgICAgICAgICAgICsgYGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ3doaXRlJyA6ICdibGFjaycgfSA7YCAvLyBhZGQgc2VwYXJhdG9ycwogICAgICAgICAgICAgICAgICArICdib3JkZXItcmFkaXVzOiAzcHggOycgLy8gc2xpZ2h0bHkgcm91bmQgaGlnaGxpZ2h0IHN0cmlwCiAgICAgICAgICAgICAgICAgICsgJ3RyYW5zaXRpb246IHZhcigtLXNldHRpbmdzLXRyYW5zaXRpb24pIDsnIC8vIGZvciBob3Zlci16b29tCiAgICAgICAgICAgICAgICAgICAgICArICctd2Via2l0LXRyYW5zaXRpb246IHZhcigtLXNldHRpbmdzLXRyYW5zaXRpb24pIDsgLW1vei10cmFuc2l0aW9uOiB2YXIoLS1zZXR0aW5ncy10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgKyAnLW8tdHJhbnNpdGlvbjogdmFyKC0tc2V0dGluZ3MtdHJhbnNpdGlvbikgOyAtbXMtdHJhbnNpdGlvbjogdmFyKC0tc2V0dGluZ3MtdHJhbnNpdGlvbikgfScKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS1zZXR0aW5ncyBsaS5hY3RpdmUge2AKICAgICAgICAgICAgICAgICAgKyBgY29sb3I6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICdyZ2IoMjU1LDI1NSwyNTUpJyA6ICdyZ2JhKDAsMCwwKScgfSA7YCAvLyBmb3IgdGV4dAogICAgICAgICAgICAgICAgICArIGBmaWxsOiAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAncmdiKDI1NSwyNTUsMjU1KScgOiAncmdiYSgwLDAsMCknIH0gO2AgLy8gZm9yIGljb25zCiAgICAgICAgICAgICAgICAgICsgYHN0cm9rZTogJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ3JnYigyNTUsMjU1LDI1NSknIDogJ3JnYmEoMCwwLDApJyB9fWAgLy8gZm9yIGljb25zCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0tc2V0dGluZ3MgbGkgbGFiZWwgeyBwYWRkaW5nLXJpZ2h0OiAyMHB4IH1gIC8vIHJpZ2h0LXBhZCBsYWJlbHMgc28gdG9nZ2xlcyBkb24ndCBodWcKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS1zZXR0aW5ncyBsaTpsYXN0LW9mLXR5cGUgeyBib3JkZXItYm90dG9tOiBub25lIH1gIC8vIHJlbW92ZSBsYXN0IGJvdHRvbS1ib3JkZXIKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS1zZXR0aW5ncyBsaSwgIyR7YXBwLmNzc1ByZWZpeH0tc2V0dGluZ3MgbGkgbGFiZWwgeyBjdXJzb3I6IHBvaW50ZXIgfWAgLy8gYWRkIGZpbmdlciBvbiBob3ZlcgogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9LXNldHRpbmdzIGxpOmhvdmVyIHtgCiAgICAgICAgICAgICAgICAgICsgJ29wYWNpdHk6IDEgOycKICAgICAgICAgICAgICAgICAgKyAnYmFja2dyb3VuZDogcmdiYSgxMDAsMTQ5LDIzNywwLjg4KSA7IGNvbG9yOiB3aGl0ZSA7IGZpbGw6IHdoaXRlIDsgc3Ryb2tlOiB3aGl0ZSA7JwogICAgICAgICAgICAgICAgICArIGAkeyBjb25maWcuZmdBbmltYXRpb25zRGlzYWJsZWQgfHwgZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAnJyA6ICd0cmFuc2Zvcm06IHNjYWxlKDEuMTUpJyB9fWAKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS1zZXR0aW5ncyBsaSA+IGlucHV0IHsgZmxvYXQ6IHJpZ2h0IH1gIC8vIHBvcyB0b2dnbGVzCiAgICAgICAgICAgICAgKyAnI3NjaGVtZS1zZXR0aW5ncy1lbnRyeSA+IHNwYW4geyBtYXJnaW46IDAgLTJweCAhaW1wb3J0YW50IH0nIC8vIGFsaWduIFNjaGVtZSBzdGF0dXMKICAgICAgICAgICAgICArICcjc2NoZW1lLXNldHRpbmdzLWVudHJ5ID4gc3BhbiA+IHN2ZyB7JyAvLyB2LWFsaWduL2xlZnQtcGFkIFNjaGVtZSBzdGF0dXMgaWNvbgogICAgICAgICAgICAgICAgICArICdwb3NpdGlvbjogcmVsYXRpdmUgOyB0b3A6IDNweCA7IG1hcmdpbi1sZWZ0OiA0cHggfScKICAgICAgICAgICAgICArICggY29uZmlnLmZnQW5pbWF0aW9uc0Rpc2FibGVkID8gJycgLy8gc3BpbiBjeWNsZSBhcnJvd3MgaWNvbiB3aGVuIHNjaGVtZSBpcyBBdXRvCiAgICAgICAgICAgICAgICAgIDogKCAnI3NjaGVtZS1zZXR0aW5ncy1lbnRyeSBzdmc6aGFzKFtkXj0iTTIwNC0zMThxLTIyIl0pLCcKICAgICAgICAgICAgICAgICAgICAgICAgKyAnLmNoYXRncHQtbm90aWYgc3ZnOmhhcyhbZF49Ik0yMDQtMzE4cS0yMiJdKSB7IGFuaW1hdGlvbjogcm90YXRpb24gNXMgbGluZWFyIGluZmluaXRlIH0nICkpCiAgICAgICAgICAgICAgKyAnQGtleWZyYW1lcyByb3RhdGlvbiB7IGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB9IHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB9fScKICAgICAgICAgICAgICArIGAjYWJvdXQtc2V0dGluZ3MtZW50cnkgc3BhbiB7IGNvbG9yOiAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnIzI4ZWUyOCcgOiAnZ3JlZW4nIH19YAogICAgICAgICAgICAgICsgJyNhYm91dC1zZXR0aW5ncy1lbnRyeSA+IHNwYW4geycgLy8gb3V0ZXIgQWJvdXQgc3RhdHVzIHNwYW4KICAgICAgICAgICAgICAgICAgKyBgd2lkdGg6ICR7IGVudi5icm93c2VyLmlzUG9ydHJhaXQgPyAnMTV2dycgOiAnOTVweCcgfSA7IGhlaWdodDogMjBweCA7IG92ZXJmbG93OiBoaWRkZW4gO2AKICAgICAgICAgICAgICAgICAgKyBgJHsgZW52LmJyb3dzZXIuaXNQb3J0cmFpdCA/ICdwb3NpdGlvbjogcmVsYXRpdmUgOyBib3R0b206IDNweCA7JyA6ICcnIH1gIC8vIHYtYWxpZ24KICAgICAgICAgICAgICAgICAgKyBgJHsgY29uZmlnLmZnQW5pbWF0aW9uc0Rpc2FibGVkID8gJycgOiAoIC8vIGZhZGUgZWRnZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJ3RvIHJpZ2h0LCB0cmFuc3BhcmVudCwgYmxhY2sgMjAlLCBibGFjayA4OSUsIHRyYW5zcGFyZW50KSA7JwogICAgICAgICAgICAgICAgICArICctd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCgnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAndG8gcmlnaHQsIHRyYW5zcGFyZW50LCBibGFjayAyMCUsIGJsYWNrIDg5JSwgdHJhbnNwYXJlbnQpJyApfX1gCiAgICAgICAgICAgICAgKyAnI2Fib3V0LXNldHRpbmdzLWVudHJ5ID4gc3BhbiA+IGRpdiB7JwogICAgICAgICAgICAgICAgICArIGB0ZXh0LXdyYXA6IG5vd3JhcCA7ICR7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5mZ0FuaW1hdGlvbnNEaXNhYmxlZCA/ICcnIDogJ2FuaW1hdGlvbjogdGlja2VyIGxpbmVhciA2MHMgaW5maW5pdGUnIH19YAogICAgICAgICAgICAgICsgJ0BrZXlmcmFtZXMgdGlja2VyIHsgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgfSAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwJSkgfX0nCiAgICAgICAgICAgICAgKyBgLmFib3V0LWVtIHsgY29sb3I6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnZ3JlZW4nIH0gIWltcG9ydGFudCB9YAogICAgICAgICAgICApCiAgICAgICAgfSwKCiAgICAgICAgb2JzZXJ2ZVJlbW92YWwobW9kYWwsIG1vZGFsVHlwZSwgbW9kYWxTdWJUeXBlKSB7IC8vIHRvIG1haW50YWluIHN0YWNrIGZvciBwcm9wZXIgbmF2CiAgICAgICAgICAgIGNvbnN0IG1vZGFsQkcgPSBtb2RhbC5wYXJlbnROb2RlCiAgICAgICAgICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChbbXV0YXRpb25dLCBvYnMpID0+IHsKICAgICAgICAgICAgICAgIG11dGF0aW9uLnJlbW92ZWROb2Rlcy5mb3JFYWNoKHJlbW92ZWROb2RlID0+IHsgaWYgKHJlbW92ZWROb2RlID09IG1vZGFsQkcpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kYWxzLnN0YWNrWzBdLmluY2x1ZGVzKG1vZGFsU3ViVHlwZSB8fCBtb2RhbFR5cGUpKSB7IC8vIG5ldyBtb2RhbCBub3QgbGF1bmNoZWQgc28gbmF2IGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxzLnN0YWNrLnNoaWZ0KCkgLy8gcmVtb3ZlIHRoaXMgbW9kYWwgdHlwZSBmcm9tIHN0YWNrIDFzdAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2TW9kYWxUeXBlID0gbW9kYWxzLnN0YWNrWzBdCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2TW9kYWxUeXBlKSB7IC8vIG9wZW4gaXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFscy5zdGFjay5zaGlmdCgpIC8vIHJlbW92ZSB0eXBlIGZyb20gc3RhY2sgc2luY2UgcmUtYWRkZWQgb24gb3BlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxzLm9wZW4ocHJldk1vZGFsVHlwZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBvYnMuZGlzY29ubmVjdCgpCiAgICAgICAgICAgICAgICB9fSkKICAgICAgICAgICAgfSkub2JzZXJ2ZShtb2RhbEJHLnBhcmVudE5vZGUsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pCiAgICAgICAgfSwKCiAgICAgICAgaGlkZShtb2RhbCkgewogICAgICAgICAgICBjb25zdCBtb2RhbENvbnRhaW5lciA9IG1vZGFsPy5wYXJlbnROb2RlIDsgaWYgKCFtb2RhbENvbnRhaW5lcikgcmV0dXJuCiAgICAgICAgICAgIG1vZGFsQ29udGFpbmVyLnN0eWxlLmFuaW1hdGlvbiA9ICdtb2RhbC16b29tLWZhZGUtb3V0IDAuMTY1cyBlYXNlLW91dCcKICAgICAgICAgICAgbW9kYWxDb250YWluZXIub25hbmltYXRpb25lbmQgPSAoKSA9PiBtb2RhbENvbnRhaW5lci5yZW1vdmUoKQogICAgICAgIH0sCgogICAgICAgIGhhbmRsZXJzOiB7CgogICAgICAgICAgICBkaXNtaXNzOiB7IC8vIHRvIGRpc21pc3MgbmF0aXZlIG1vZGFscwogICAgICAgICAgICAgICAgY2xpY2soZXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGlja2VkRWxlbSA9IGV2ZW50LnRhcmdldAogICAgICAgICAgICAgICAgICAgIGlmIChjbGlja2VkRWxlbSA9PSBldmVudC5jdXJyZW50VGFyZ2V0IHx8IGNsaWNrZWRFbGVtLmNsb3Nlc3QoJ1tjbGFzcyo9LWNsb3NlLWJ0bl0nKSkKICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxzLmhpZGUoKGNsaWNrZWRFbGVtLmNsb3Nlc3QoJ1tjbGFzcyo9LW1vZGFsLWJnXScpIHx8IGNsaWNrZWRFbGVtKS5maXJzdENoaWxkKQogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICBrZXkoZXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5LnN0YXJ0c1dpdGgoJ0VzYycpIHx8IGV2ZW50LmtleUNvZGUgPT0gMjcpCiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFscy5oaWRlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tjbGFzcyQ9LW1vZGFsXScpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZHJhZzogewoKICAgICAgICAgICAgICAgIG1vdXNlZG93bihldmVudCkgeyAvLyBmaW5kIG1vZGFsLCBhdHRhY2ggbGlzdGVuZXJzLCBpbml0IFhZIG9mZnNldHMKICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9IDApIHJldHVybiAvLyBwcmV2ZW50IG5vbi1sZWZ0LWNsaWNrIGRyYWcKICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShldmVudC50YXJnZXQpLmN1cnNvciA9PSAncG9pbnRlcicpIHJldHVybiAvLyBwcmV2ZW50IGRyYWcgb24gaW50ZXJhY3RpdmUgZWxlbXMKICAgICAgICAgICAgICAgICAgICBtb2RhbHMuaGFuZGxlcnMuZHJhZy5kcmFnZ2FibGVFbGVtID0gZXZlbnQuY3VycmVudFRhcmdldAogICAgICAgICAgICAgICAgICAgIG1vZGFscy5oYW5kbGVycy5kcmFnLmRyYWdnYWJsZUVsZW0uc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJwogICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgc3ViLWVsZW1zIGxpa2UgaWNvbnMgYmVpbmcgZHJhZ2dhYmxlCiAgICAgICAgICAgICAgICAgICAgWydtb3VzZW1vdmUnLCAnbW91c2V1cCddLmZvckVhY2goZXZlbnRUeXBlID0+CiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBtb2RhbHMuaGFuZGxlcnMuZHJhZ1tldmVudFR5cGVdKSkKICAgICAgICAgICAgICAgICAgICBjb25zdCBkcmFnZ2FibGVFbGVtUmVjdCA9IG1vZGFscy5oYW5kbGVycy5kcmFnLmRyYWdnYWJsZUVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkKICAgICAgICAgICAgICAgICAgICBtb2RhbHMuaGFuZGxlcnMuZHJhZy5vZmZzZXRYID0gZXZlbnQuY2xpZW50WCAtIGRyYWdnYWJsZUVsZW1SZWN0LmxlZnQgKzIxCiAgICAgICAgICAgICAgICAgICAgbW9kYWxzLmhhbmRsZXJzLmRyYWcub2Zmc2V0WSA9IGV2ZW50LmNsaWVudFkgLSBkcmFnZ2FibGVFbGVtUmVjdC50b3AgKzEyCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgIG1vdXNlbW92ZShldmVudCkgeyAvLyBkcmFnIG1vZGFsCiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGFscy5oYW5kbGVycy5kcmFnLmRyYWdnYWJsZUVsZW0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3WCA9IGV2ZW50LmNsaWVudFggLSBtb2RhbHMuaGFuZGxlcnMuZHJhZy5vZmZzZXRYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdZID0gZXZlbnQuY2xpZW50WSAtIG1vZGFscy5oYW5kbGVycy5kcmFnLm9mZnNldFkKICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihtb2RhbHMuaGFuZGxlcnMuZHJhZy5kcmFnZ2FibGVFbGVtLnN0eWxlLCB7IGxlZnQ6IGAke25ld1h9cHhgLCB0b3A6IGAke25ld1l9cHhgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICBtb3VzZXVwKCkgeyAvLyByZW1vdmUgbGlzdGVuZXJzLCByZXNldCBtb2RhbHMuaGFuZGxlcnMuZHJhZ3MuZHJhZ2dhYmxlRWxlbQogICAgICAgICAgICAgICAgICAgIG1vZGFscy5oYW5kbGVycy5kcmFnLmRyYWdnYWJsZUVsZW0uc3R5bGUuY3Vyc29yID0gJ2luaGVyaXQnOwogICAgICAgICAgICAgICAgICAgIFsnbW91c2Vtb3ZlJywgJ21vdXNldXAnXS5mb3JFYWNoKGV2ZW50VHlwZSA9PgogICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbW9kYWxzLmhhbmRsZXJzLmRyYWdbZXZlbnRUeXBlXSkpCiAgICAgICAgICAgICAgICAgICAgbW9kYWxzLmhhbmRsZXJzLmRyYWcuZHJhZ2dhYmxlRWxlbSA9IG51bGwKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBhYm91dCgpIHsKICAgICAgICAgICAgbG9nLmNhbGxlciA9ICdtb2RhbHMuYWJvdXQoKScKICAgICAgICAgICAgbG9nLmRlYnVnKCdTaG93aW5nIEFib3V0IG1vZGFsLi4uJykKCiAgICAgICAgICAgIC8vIFNob3cgbW9kYWwKICAgICAgICAgICAgY29uc3QgYWJvdXRNb2RhbCA9IG1vZGFscy5hbGVydCgKICAgICAgICAgICAgICAgIGAke2FwcC5zeW1ib2x9ICR7YXBwLm1zZ3MuYXBwTmFtZX1gLCAvLyB0aXRsZQogICAgICAgICAgICAgICAgYPCfp6AgJHthcHAubXNncy5hYm91dF9hdXRob3J9OiBgIC8vIG1zZwogICAgICAgICAgICAgICAgICAgICsgYDxhIGhyZWY9IiR7YXBwLmF1dGhvci51cmx9Ij4ke2FwcC5hdXRob3IubmFtZX08L2E+ICR7YXBwLm1zZ3MuYWJvdXRfYW5kfWAKICAgICAgICAgICAgICAgICAgICAgICAgKyBgIDxhIGhyZWY9IiR7YXBwLnVybHMuY29udHJpYnV0b3JzfSI+JHthcHAubXNncy5hYm91dF9jb250cmlidXRvcnN9PC9hPlxuYAogICAgICAgICAgICAgICAgKyBg8J+Pt++4jyAke2FwcC5tc2dzLmFib3V0X3ZlcnNpb259OiA8c3BhbiBjbGFzcz0iYWJvdXQtZW0iPiR7YXBwLnZlcnNpb259PC9zcGFuPlxuYAogICAgICAgICAgICAgICAgKyBg8J+TnCAke2FwcC5tc2dzLmFib3V0X29wZW5Tb3VyY2VDb2RlfTogYAogICAgICAgICAgICAgICAgICAgICsgYDxhIGhyZWY9IiR7YXBwLnVybHMuZ2l0SHVifSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9wZW5lciI+YAogICAgICAgICAgICAgICAgICAgICAgICArIGFwcC51cmxzLmdpdEh1YiArICc8L2E+XG4nCiAgICAgICAgICAgICAgICArIGDimqEgJHthcHAubXNncy5hYm91dF9wb3dlcmVkQnl9OiBgCiAgICAgICAgICAgICAgICAgICAgKyBgPGEgaHJlZj0iJHthcHAudXJscy5jaGF0Z3B0SlN9IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+Y2hhdGdwdC5qczwvYT5gCiAgICAgICAgICAgICAgICAgICAgICAgICsgYCB2JHthcHAuY2hhdGdwdEpTdmVyfWAsCiAgICAgICAgICAgICAgICBbIC8vIGJ1dHRvbnMKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZXMoKSB7IHVwZGF0ZUNoZWNrKCkgfSwKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBnZXRTdXBwb3J0KCl7fSwKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiByYXRlVXMoKXt9LAogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG1vcmVBSWV4dGVuc2lvbnMoKXt9CiAgICAgICAgICAgICAgICBdLCAnJywgNTg1IC8vIG1vZGFsIHdpZHRoCiAgICAgICAgICAgICkKCiAgICAgICAgICAgIC8vIEFkZCBsb2dvCiAgICAgICAgICAgIGNvbnN0IGFib3V0SGVhZGVyTG9nbyA9IGxvZ29zLmdvb2dsZUdQVC5jcmVhdGUoKSA7IGFib3V0SGVhZGVyTG9nby53aWR0aCA9IDQwNQogICAgICAgICAgICBhYm91dEhlYWRlckxvZ28uc3R5bGUuY3NzVGV4dCA9IGBtYXgtd2lkdGg6IDk4JSA7IG1hcmdpbjogMTVweCAkewogICAgICAgICAgICAgICAgZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAnYXV0bycgOiAnMTQuNSUnIH0gLTFweGAKICAgICAgICAgICAgYWJvdXRNb2RhbC5pbnNlcnRCZWZvcmUoYWJvdXRIZWFkZXJMb2dvLCBhYm91dE1vZGFsLmZpcnN0Q2hpbGQubmV4dFNpYmxpbmcpIC8vIGFmdGVyIGNsb3NlIGJ0bgoKICAgICAgICAgICAgLy8gQ2VudGVyIHRleHQKICAgICAgICAgICAgYWJvdXRNb2RhbC5xdWVyeVNlbGVjdG9yKCdoMicpLnJlbW92ZSgpIC8vIHJlbW92ZSBlbXB0eSB0aXRsZSBoMgogICAgICAgICAgICBhYm91dE1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ3AnKS5zdHlsZS5jc3NUZXh0ID0gKAogICAgICAgICAgICAgICAgJ2p1c3RpZnktc2VsZjogY2VudGVyIDsgdGV4dC1hbGlnbjogY2VudGVyIDsgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmUgOycKICAgICAgICAgICAgICArIGBtYXJnaW46ICR7IGVudi5icm93c2VyLmlzUG9ydHJhaXQgPyAnMjFweCAwIC0yMHB4JyA6ICcxNXB4IDAgLTIxcHgnIH1gICkKCiAgICAgICAgICAgIC8vIEhhY2sgYnV0dG9ucwogICAgICAgICAgICBhYm91dE1vZGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpLmZvckVhY2goYnRuID0+IHsKICAgICAgICAgICAgICAgIGJ0bi5zdHlsZS5jc3NUZXh0ID0gJ2hlaWdodDogNTBweCA7IG1pbi13aWR0aDogMTM2cHgnCgogICAgICAgICAgICAgICAgLy8gUmVwbGFjZSBsaW5rIGJ1dHRvbnMgdy8gY2xvbmVzIHRoYXQgZG9uJ3QgZGlzbWlzcyBtb2RhbAogICAgICAgICAgICAgICAgaWYgKC9zdXBwb3J0fHJhdGV8ZXh0ZW5zaW9ucy9pLnRlc3QoYnRuLnRleHRDb250ZW50KSkgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ0bkNsb25lID0gYnRuLmNsb25lTm9kZSh0cnVlKQogICAgICAgICAgICAgICAgICAgIGJ0bi5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChidG5DbG9uZSwgYnRuKSA7IGJ0biA9IGJ0bkNsb25lCiAgICAgICAgICAgICAgICAgICAgYnRuLm9uY2xpY2sgPSAoKSA9PiBtb2RhbHMuc2FmZVdpbk9wZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIGJ0bi50ZXh0Q29udGVudC5pbmNsdWRlcyhhcHAubXNncy5idG5MYWJlbF9nZXRTdXBwb3J0KSA/IGFwcC51cmxzLnN1cHBvcnQKICAgICAgICAgICAgICAgICAgICAgIDogYnRuLnRleHRDb250ZW50LmluY2x1ZGVzKGFwcC5tc2dzLmJ0bkxhYmVsX3JhdGVVcykgPyBhcHAudXJscy5yZXZpZXcuZ3JlYXN5Rm9yawogICAgICAgICAgICAgICAgICAgICAgOiBhcHAudXJscy5yZWxhdGVkRXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBQcmVwZW5kIGVtb2ppICsgbG9jYWxpemUgbGFiZWxzCiAgICAgICAgICAgICAgICBpZiAoL3VwZGF0ZXMvaS50ZXN0KGJ0bi50ZXh0Q29udGVudCkpCiAgICAgICAgICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gYPCfmoAgJHthcHAubXNncy5idG5MYWJlbF9jaGVja0ZvclVwZGF0ZXN9YAogICAgICAgICAgICAgICAgZWxzZSBpZiAoL3N1cHBvcnQvaS50ZXN0KGJ0bi50ZXh0Q29udGVudCkpCiAgICAgICAgICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gYPCfp6AgJHthcHAubXNncy5idG5MYWJlbF9nZXRTdXBwb3J0fWAKICAgICAgICAgICAgICAgIGVsc2UgaWYgKC9yYXRlL2kudGVzdChidG4udGV4dENvbnRlbnQpKQogICAgICAgICAgICAgICAgICAgIGJ0bi50ZXh0Q29udGVudCA9IGDirZAgJHthcHAubXNncy5idG5MYWJlbF9yYXRlVXN9YAogICAgICAgICAgICAgICAgZWxzZSBpZiAoL2V4dGVuc2lvbnMvaS50ZXN0KGJ0bi50ZXh0Q29udGVudCkpCiAgICAgICAgICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gYPCfpJYgJHthcHAubXNncy5idG5MYWJlbF9tb3JlQUlleHRlbnNpb25zfWAKCiAgICAgICAgICAgICAgICAvLyBIaWRlIERpc21pc3MgYnV0dG9uCiAgICAgICAgICAgICAgICBlbHNlIGJ0bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnCiAgICAgICAgICAgIH0pCgogICAgICAgICAgICBsb2cuZGVidWcoJ1N1Y2Nlc3MhIEFib3V0IE1vZGFsIHNob3duJykKCiAgICAgICAgICAgIHJldHVybiBhYm91dE1vZGFsCiAgICAgICAgfSwKCiAgICAgICAgZmVlZGJhY2soKSB7CiAgICAgICAgICAgIGxvZy5jYWxsZXIgPSAnbW9kYWxzLmZlZWRiYWNrKCknCiAgICAgICAgICAgIGxvZy5kZWJ1ZygnU2hvd2luZyBGZWVkYmFjayBtb2RhbC4uLicpCgogICAgICAgICAgICAvLyBJbml0IGJ1dHRvbnMKICAgICAgICAgICAgbGV0IGJ0bnMgPSBbIGZ1bmN0aW9uIGdyZWFzeUZvcmsoKXt9IF0KICAgICAgICAgICAgaWYgKG1vZGFscy5zdGFja1sxXSAhPSAnYWJvdXQnKSBidG5zLnB1c2goZnVuY3Rpb24gZ2l0aHViKCl7fSkKCiAgICAgICAgICAgIC8vIFNob3cgbW9kYWwKICAgICAgICAgICAgY29uc3QgZmVlZGJhY2tNb2RhbCA9IG1vZGFscy5hbGVydChgJHthcHAubXNncy5hbGVydF9jaG9vc2VQbGF0Zm9ybX06YCwgJycsIGJ0bnMsICcnLCAzMzMpCgogICAgICAgICAgICAvLyBDZW50ZXIgQ1RBCiAgICAgICAgICAgIGZlZWRiYWNrTW9kYWwucXVlcnlTZWxlY3RvcignaDInKS5zdHlsZS5qdXN0aWZ5U2VsZiA9ICdjZW50ZXInCgogICAgICAgICAgICAvLyBSZS1zdHlsZSBidXR0b24gY2x1c3RlcgogICAgICAgICAgICBjb25zdCBidG5zRGl2ID0gZmVlZGJhY2tNb2RhbC5xdWVyeVNlbGVjdG9yKCcubW9kYWwtYnV0dG9ucycpCiAgICAgICAgICAgIGJ0bnNEaXYuc3R5bGUuY3NzVGV4dCArPSAnZGlzcGxheTogZmxleCA7IGZsZXgtd3JhcDogd3JhcCA7IGp1c3RpZnktY29udGVudDogY2VudGVyIDsnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnbWFyZ2luOiAxNnB4IDAgNXB4ICFpbXBvcnRhbnQnIC8vIGNsb3NlIGdhcCBiZXR3ZWVuIHRpdGxlL2J0bnMKICAgICAgICAgICAgLy8gSGFjayBidXR0b25zCiAgICAgICAgICAgIGJ0bnMgPSBidG5zRGl2LnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpCiAgICAgICAgICAgIGJ0bnMuZm9yRWFjaCgoYnRuLCBpZHgpID0+IHsKICAgICAgICAgICAgICAgIGlmIChpZHggPT0gMCkgYnRuLnN0eWxlLmRpc3BsYXkgPSAnbm9uZScgLy8gaGlkZSBEaXNtaXNzIGJ1dHRvbgogICAgICAgICAgICAgICAgaWYgKGlkeCA9PSBidG5zLmxlbmd0aCAtMSkgYnRuLmNsYXNzTGlzdC5yZW1vdmUoJ3ByaW1hcnktbW9kYWwtYnRuJykgLy8gZGUtZW1waGFzaXplIGxhc3QgbGluawogICAgICAgICAgICAgICAgYnRuLnN0eWxlLm1hcmdpblRvcCA9IGJ0bi5zdHlsZS5tYXJnaW5Cb3R0b20gPSAnNXB4JyAvLyB2LXBhZCBidG5zCgogICAgICAgICAgICAgICAgLy8gUmVwbGFjZSBidXR0b25zIHcvIGNsb25lcyB0aGF0IGRvbid0IGRpc21pc3MgbW9kYWwKICAgICAgICAgICAgICAgIGNvbnN0IGJ0bkNsb25lID0gYnRuLmNsb25lTm9kZSh0cnVlKQogICAgICAgICAgICAgICAgYnRuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGJ0bkNsb25lLCBidG4pIDsgYnRuID0gYnRuQ2xvbmUKICAgICAgICAgICAgICAgIGJ0bi5vbmNsaWNrID0gKCkgPT4gbW9kYWxzLnNhZmVXaW5PcGVuKAogICAgICAgICAgICAgICAgICAgIGJ0bi50ZXh0Q29udGVudCA9PSAnR3JlYXN5IEZvcmsnID8gYXBwLnVybHMucmV2aWV3LmdyZWFzeUZvcmsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGAke2FwcC51cmxzLmdpdEh1Yn0vZGlzY3Vzc2lvbnMvbmV3L2Nob29zZWAKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIGxvZy5kZWJ1ZygnU3VjY2VzcyEgRmVlZGJhY2sgbW9kYWwgc2hvd24nKQoKICAgICAgICAgICAgcmV0dXJuIGZlZWRiYWNrTW9kYWwKICAgICAgICB9LAoKICAgICAgICByZXBseUxhbmcoKSB7CiAgICAgICAgICAgIGxvZy5jYWxsZXIgPSAnbW9kYWxzLnJlcGx5TGFuZygpJwogICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgICAgbGV0IHJlcGx5TGFuZyA9IHByb21wdCgKICAgICAgICAgICAgICAgICAgICAoIGFwcC5tc2dzLnByb21wdF91cGRhdGVSZXBseUxhbmcgKSArICc6JywgY29uZmlnLnJlcGx5TGFuZ3VhZ2UpCiAgICAgICAgICAgICAgICBpZiAocmVwbHlMYW5nID09IG51bGwpIGJyZWFrIC8vIHVzZXIgY2FuY2VsbGVkIHNvIGRvIG5vdGhpbmcKICAgICAgICAgICAgICAgIGVsc2UgaWYgKCEvXGQvLnRlc3QocmVwbHlMYW5nKSkgewogICAgICAgICAgICAgICAgICAgIHJlcGx5TGFuZyA9ICggLy8gYXV0by1jYXNlIGZvciBtZW51L2FsZXJ0IGFlc3RoZXRpY3MKICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHlMYW5nLmxlbmd0aCA8IDQgfHwgcmVwbHlMYW5nLmluY2x1ZGVzKCctJykgPyByZXBseUxhbmcudG9VcHBlckNhc2UoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXBseUxhbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyByZXBseUxhbmcuc2xpY2UoMSkudG9Mb3dlckNhc2UoKSApCiAgICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCdTYXZpbmcgcmVwbHkgbGFuZ3VhZ2UuLi4nKQogICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLnNhdmUoJ3JlcGx5TGFuZ3VhZ2UnLCByZXBseUxhbmcgfHwgZW52LmJyb3dzZXIubGFuZ3VhZ2UpCiAgICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKGBTdWNjZXNzISBjb25maWcucmVwbHlMYW5ndWFnZSA9ICR7Y29uZmlnLnJlcGx5TGFuZ3VhZ2V9YCkKICAgICAgICAgICAgICAgICAgICBtb2RhbHMuYWxlcnQoYCR7YXBwLm1zZ3MuYWxlcnRfbGFuZ1VwZGF0ZWR9IWAsIC8vIHRpdGxlCiAgICAgICAgICAgICAgICAgICAgICAgIGAke2FwcC5uYW1lfSAke2FwcC5tc2dzLmFsZXJ0X3dpbGxSZXBseUlufSBgIC8vIG1zZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoIHJlcGx5TGFuZyB8fCBhcHAubXNncy5hbGVydF95b3VyU3lzTGFuZyApICsgJy4nLAogICAgICAgICAgICAgICAgICAgICAgICAnJywgJycsIDMzMCkgLy8gbW9kYWwgd2lkdGgKICAgICAgICAgICAgICAgICAgICBpZiAobW9kYWxzLnNldHRpbmdzLmdldCgpKSAvLyB1cGRhdGUgc2V0dGluZ3MgbWVudSBzdGF0dXMgbGFiZWwKICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGx5TGFuZy1zZXR0aW5ncy1lbnRyeSBzcGFuJykudGV4dENvbnRlbnQgPSByZXBseUxhbmcKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgc2NoZW1lKCkgewogICAgICAgICAgICBsb2cuY2FsbGVyID0gJ21vZGFscy5zY2hlbWUoKScKICAgICAgICAgICAgbG9nLmRlYnVnKCdTaG93aW5nIFNjaGVtZSBtb2RhbC4uLicpCgogICAgICAgICAgICAvLyBTaG93IG1vZGFsCiAgICAgICAgICAgIGNvbnN0IHNjaGVtZU1vZGFsID0gbW9kYWxzLmFsZXJ0KGAkewogICAgICAgICAgICAgICAgYXBwLm5hbWUgfSAkeyggYXBwLm1zZ3MubWVudUxhYmVsX2NvbG9yU2NoZW1lICkudG9Mb3dlckNhc2UoKSB9OmAsICcnLCAvLyB0aXRsZQogICAgICAgICAgICAgICAgWyBmdW5jdGlvbiBhdXRvKCkge30sIGZ1bmN0aW9uIGxpZ2h0KCkge30sIGZ1bmN0aW9uIGRhcmsoKSB7fSBdIC8vIGJ1dHRvbnMKICAgICAgICAgICAgKQoKICAgICAgICAgICAgLy8gQ2VudGVyIHRpdGxlL2J1dHRvbiBjbHVzdGVyCiAgICAgICAgICAgIHNjaGVtZU1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ2gyJykuc3R5bGUuanVzdGlmeVNlbGYgPSAnY2VudGVyJwogICAgICAgICAgICBzY2hlbWVNb2RhbC5xdWVyeVNlbGVjdG9yKCcubW9kYWwtYnV0dG9ucycpLnN0eWxlLmNzc1RleHQgPSAnanVzdGlmeS1jb250ZW50OiBjZW50ZXIgOyBtYXJnaW46IDIwcHggMCA5cHggIWltcG9ydGFudCcKCiAgICAgICAgICAgIC8vIFJlLWZvcm1hdCBlYWNoIGJ1dHRvbgogICAgICAgICAgICBjb25zdCBidXR0b25zID0gc2NoZW1lTW9kYWwucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJyksCiAgICAgICAgICAgICAgICAgIHNjaGVtZUVtb2ppcyA9IHsgJ2xpZ2h0JzogJ+KYgO+4jycsICdkYXJrJzogJ/CfjJgnLCAnYXV0byc6ICfwn4yXJ30KICAgICAgICAgICAgZm9yIChjb25zdCBidG4gb2YgYnV0dG9ucykgewogICAgICAgICAgICAgICAgY29uc3QgYnRuU2NoZW1lID0gYnRuLnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkKCiAgICAgICAgICAgICAgICAvLyBFbXBoYXNpemUgYWN0aXZlIHNjaGVtZQogICAgICAgICAgICAgICAgYnRuLmNsYXNzTGlzdCA9ICgKICAgICAgICAgICAgICAgICAgICBjb25maWcuc2NoZW1lID09IGJ0bi50ZXh0Q29udGVudC50b0xvd2VyQ2FzZSgpIHx8IChidG4udGV4dENvbnRlbnQgPT0gJ0F1dG8nICYmICFjb25maWcuc2NoZW1lKQogICAgICAgICAgICAgICAgICAgICAgPyAncHJpbWFyeS1tb2RhbC1idG4nIDogJycgKQoKICAgICAgICAgICAgICAgIC8vIFByZXBlbmQgZW1vamkgKyBsb2NhbGl6ZSBsYWJlbHMKICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2NoZW1lRW1vamlzLCBidG5TY2hlbWUpKQogICAgICAgICAgICAgICAgICAgIGJ0bi50ZXh0Q29udGVudCA9IGAke3NjaGVtZUVtb2ppc1tidG5TY2hlbWVdfSAkeyAvLyBlbW9qaQogICAgICAgICAgICAgICAgICAgICAgICBhcHAubXNnc1snc2NoZW1lXycgKyBidG5TY2hlbWVdIHx8IGFwcC5tc2dzWydtZW51TGFiZWxfJyArIGJ0blNjaGVtZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJ0blNjaGVtZS50b1VwcGVyQ2FzZSgpIH1gCiAgICAgICAgICAgICAgICBlbHNlIGJ0bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnIC8vIGhpZGUgRGlzbWlzcyBidXR0b24KCiAgICAgICAgICAgICAgICAvLyBDbG9uZSBidXR0b24gdG8gcmVwbGFjZSBsaXN0ZW5lciB0byBub3QgZGlzbWlzcyBtb2RhbCBvbiBjbGljawogICAgICAgICAgICAgICAgY29uc3QgbmV3QnRuID0gYnRuLmNsb25lTm9kZSh0cnVlKSA7IGJ0bi5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuZXdCdG4sIGJ0bikKICAgICAgICAgICAgICAgIG5ld0J0bi5vbmNsaWNrID0gKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NjaGVtZSA9IGJ0blNjaGVtZSA9PSAnYXV0bycgPyAoIGlzRGFya01vZGUoKSA/ICdkYXJrJyA6ICdsaWdodCcgKSA6IGJ0blNjaGVtZQogICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLnNhdmUoJ3NjaGVtZScsIGJ0blNjaGVtZSA9PSAnYXV0bycgPyBmYWxzZSA6IG5ld1NjaGVtZSkKICAgICAgICAgICAgICAgICAgICBzY2hlbWVNb2RhbC5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKS5mb3JFYWNoKGJ0biA9PgogICAgICAgICAgICAgICAgICAgICAgICBidG4uY2xhc3NMaXN0ID0gJycpIC8vIGNsZWFyIHByZXYgZW1waGFzaXplZCBhY3RpdmUgc2NoZW1lCiAgICAgICAgICAgICAgICAgICAgbmV3QnRuLmNsYXNzTGlzdCA9ICdwcmltYXJ5LW1vZGFsLWJ0bicgLy8gZW1waGFzaXplIG5ld2x5IGFjdGl2ZSBzY2hlbWUKICAgICAgICAgICAgICAgICAgICBuZXdCdG4uc3R5bGUuY3NzVGV4dCA9ICdwb2ludGVyLWV2ZW50czogbm9uZScgLy8gZGlzYWJsZSBob3ZlciBmeCB0byBzaG93IGVtcGhhc2lzCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IG5ld0J0bi5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ2F1dG8nIH0sIC8vIHJlLWVuYWJsZSBob3ZlciBmeAogICAgICAgICAgICAgICAgICAgICAgICAxMDApIC8vIC4uLmFmdGVyIDEwMG1zIHRvIGZsaWNrZXIgZW1waGFzaXMKICAgICAgICAgICAgICAgICAgICB1cGRhdGUuc2NoZW1lKG5ld1NjaGVtZSkgOyBzY2hlbWVOb3RpZnkoYnRuU2NoZW1lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBsb2cuZGVidWcoJ1N1Y2Nlc3MhIFNjaGVtZSBtb2RhbCBzaG93bicpCgogICAgICAgICAgICBmdW5jdGlvbiBzY2hlbWVOb3RpZnkoc2NoZW1lKSB7CgogICAgICAgICAgICAgICAgLy8gU2hvdyBub3RpZmljYXRpb24KICAgICAgICAgICAgICAgIG5vdGlmeShgJHthcHAubXNncy5tZW51TGFiZWxfY29sb3JTY2hlbWV9OiBgCiAgICAgICAgICAgICAgICAgICAgICArICggc2NoZW1lID09ICdsaWdodCcgPyBhcHAubXNncy5zY2hlbWVfbGlnaHQgfHwgJ0xpZ2h0JwogICAgICAgICAgICAgICAgICAgICAgICA6IHNjaGVtZSA9PSAnZGFyaycgID8gYXBwLm1zZ3Muc2NoZW1lX2RhcmsgIHx8ICdEYXJrJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwLm1zZ3MubWVudUxhYmVsX2F1dG8gKS50b1VwcGVyQ2FzZSgpICkKCiAgICAgICAgICAgICAgICAvLyBBcHBlbmQgc2NoZW1lIGljb24KICAgICAgICAgICAgICAgIGNvbnN0IG5vdGlmcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jaGF0Z3B0LW5vdGlmJykKICAgICAgICAgICAgICAgIGNvbnN0IG5vdGlmID0gbm90aWZzW25vdGlmcy5sZW5ndGggLTFdCiAgICAgICAgICAgICAgICBjb25zdCBzY2hlbWVJY29uID0gaWNvbnNbc2NoZW1lID09ICdsaWdodCcgPyAnc3VuJyA6IHNjaGVtZSA9PSAnZGFyaycgPyAnbW9vbicgOiAnYXJyb3dzQ3ljbGUnXS5jcmVhdGUoKQogICAgICAgICAgICAgICAgc2NoZW1lSWNvbi5zdHlsZS5jc3NUZXh0ID0gJ3dpZHRoOiAyM3B4IDsgaGVpZ2h0OiAyM3B4IDsgcG9zaXRpb246IHJlbGF0aXZlIDsnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAndG9wOiAxcHggOyBtYXJnaW4tbGVmdDogNnB4JwogICAgICAgICAgICAgICAgbm90aWYuYXBwZW5kKHNjaGVtZUljb24pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBzY2hlbWVNb2RhbAogICAgICAgIH0sCgogICAgICAgIHNldHRpbmdzOiB7CgogICAgICAgICAgICBjcmVhdGVBcHBlbmQoKSB7CiAgICAgICAgICAgICAgICBsb2cuY2FsbGVyID0gJ21vZGFscy5zZXR0aW5ncy5jcmVhdGVBcHBlbmQoKScKCiAgICAgICAgICAgICAgICAvLyBJbml0IG1hc3RlciBlbGVtcwogICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3NDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwKICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzTW9kYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSA7IHNldHRpbmdzTW9kYWwuaWQgPSBgJHthcHAuY3NzUHJlZml4fS1zZXR0aW5nc2AKICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzQ29udGFpbmVyLmFwcGVuZChzZXR0aW5nc01vZGFsKQoKICAgICAgICAgICAgICAgIC8vIEluaXQgc2V0dGluZ3Mga2V5cwogICAgICAgICAgICAgICAgbG9nLmRlYnVnKCdJbml0aWFsaXppbmcgc2V0dGluZ3Mga2V5cy4uLicpCiAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nc0tleXMgPSBPYmplY3Qua2V5cyhzZXR0aW5ncy5jb250cm9scykuZmlsdGVyKGtleSA9PgogICAgICAgICAgICAgICAgICAgICEoZW52LmJyb3dzZXIuaXNNb2JpbGUgJiYgc2V0dGluZ3MuY29udHJvbHNba2V5XS5tb2JpbGUgPT0gZmFsc2UpKQogICAgICAgICAgICAgICAgbG9nLmRlYnVnKGBTdWNjZXNzISBzZXR0aW5nc0tleXMgPSAke2xvZy5wcmV0dGlmeU9iaihzZXR0aW5nc0tleXMpfWApCgogICAgICAgICAgICAgICAgLy8gSW5pdCBsb2dvCiAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nc0ljb24gPSBpY29ucy5nb29nbGVHUFQuY3JlYXRlKCkKICAgICAgICAgICAgICAgIHNldHRpbmdzSWNvbi5zdHlsZS5jc3NUZXh0ICs9IGB3aWR0aDogJHsgZW52LmJyb3dzZXIuaXNQb3J0cmFpdCA/IDY0IDogNjUgfXB4IDtgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBgbWFyZ2luOiAxM3B4IDAgJHsgZW52LmJyb3dzZXIuaXNQb3J0cmFpdCA/ICctMzUnIDogJy0yNycgfXB4IDtgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBgcG9zaXRpb246IHJlbGF0aXZlIDsgdG9wOiAtNDJweCA7ICR7IGVudi5icm93c2VyLmlzUG9ydHJhaXQgPyAnbGVmdDogNnB4JyA6ICcnIH1gCiAgICAgICAgICAgICAgICAvLyBJbml0IHRpdGxlCiAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nc1RpdGxlRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykKICAgICAgICAgICAgICAgIHNldHRpbmdzVGl0bGVEaXYuaWQgPSBgJHthcHAuY3NzUHJlZml4fS1zZXR0aW5ncy10aXRsZWAKICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzVGl0bGVINCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2g0JykKICAgICAgICAgICAgICAgIHNldHRpbmdzVGl0bGVINC50ZXh0Q29udGVudCA9IGFwcC5tc2dzLm1lbnVMYWJlbF9zZXR0aW5ncwogICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3NUaXRsZUljb24gPSBpY29ucy5jb2d3aGVlbC5jcmVhdGUoKQogICAgICAgICAgICAgICAgc2V0dGluZ3NUaXRsZUljb24uc3R5bGUuY3NzVGV4dCA9ICd3aWR0aDogMjBweCA7IGhlaWdodDogMjBweCA7JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICdwb3NpdGlvbjogcmVsYXRpdmUgOyB0b3A6IDFweCA7IHJpZ2h0OiA3cHgnCiAgICAgICAgICAgICAgICBzZXR0aW5nc1RpdGxlSDQucHJlcGVuZChzZXR0aW5nc1RpdGxlSWNvbikgOyBzZXR0aW5nc1RpdGxlRGl2LmFwcGVuZChzZXR0aW5nc1RpdGxlSDQpCgogICAgICAgICAgICAgICAgLy8gSW5pdCBzZXR0aW5ncyBsaXN0cwogICAgICAgICAgICAgICAgbG9nLmRlYnVnKCdJbml0aWFsaXppbmcgc2V0dGluZ3MgbGlzdHMuLi4nKQogICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3NMaXN0cyA9IFtdLCBtaWRkbGVHYXAgPSAzMCAvLyBweAogICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3NMaXN0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykKICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzTGlzdENudCA9ICgKICAgICAgICAgICAgICAgICAgICBlbnYuYnJvd3Nlci5pc01vYmlsZSAmJiAoIGVudi5icm93c2VyLmlzUG9ydHJhaXQgfHwgc2V0dGluZ3NLZXlzLmxlbmd0aCA8IDggKSkgPyAxIDogMgogICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ0l0ZW1DYXAgPSBNYXRoLmZsb29yKHNldHRpbmdzS2V5cy5sZW5ndGggLzIpCiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMCA7IGkgPCBzZXR0aW5nc0xpc3RDbnQgOyBpKyspIHNldHRpbmdzTGlzdHMucHVzaChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bCcpKQogICAgICAgICAgICAgICAgc2V0dGluZ3NMaXN0Q29udGFpbmVyLnN0eWxlLndpZHRoID0gJzk1JScgLy8gcGFkIHZzLiBwYXJlbnQKICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nc0xpc3RDbnQgPiAxKSB7IC8vIHN0eWxlIG11bHRpLWxpc3QgbGFuZHNjYXBlIG1vZGUKICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc0xpc3RDb250YWluZXIuc3R5bGUuY3NzVGV4dCArPSAoIC8vIG1ha2UvcGFkIGZsZXhib3gsIGFkZCBtaWRkbGUgZ2FwCiAgICAgICAgICAgICAgICAgICAgICAgIGBkaXNwbGF5OiBmbGV4IDsgcGFkZGluZzogMTFweCAwIDEzcHggOyBnYXA6ICR7IG1pZGRsZUdhcCAvMiB9cHhgICkKICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc0xpc3RzWzBdLnN0eWxlLmNzc1RleHQgPSAoIC8vIGFkZCB2ZXJ0aWNhbCBzZXBhcmF0b3IKICAgICAgICAgICAgICAgICAgICAgICAgYHBhZGRpbmctcmlnaHQ6ICR7IG1pZGRsZUdhcCAvMiB9cHggOyBib3JkZXItcmlnaHQ6IDFweCBkb3R0ZWQgJHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnYmxhY2sgJ31gICkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgU3VjY2VzcyEgc2V0dGluZ3NMaXN0Q250ID0gJHtzZXR0aW5nc0xpc3RDbnR9YCkKCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUvYXBwZW5kIHNldHRpbmcgaWNvbnMvbGFiZWxzL3RvZ2dsZXMKICAgICAgICAgICAgICAgIHNldHRpbmdzS2V5cy5mb3JFYWNoKChrZXksIGlkeCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5ncy5jb250cm9sc1trZXldCgogICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZS9hcHBlbmQgaXRlbS9sYWJlbCBlbGVtcwogICAgICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmdJdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKQogICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc2V0dGluZ0l0ZW0sIHsgaWQ6IGAke2tleX0tc2V0dGluZ3MtZW50cnlgLCB0aXRsZTogc2V0dGluZy5oZWxwdGlwIHx8ICcnIH0pCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ0xhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKSA7IHNldHRpbmdMYWJlbC50ZXh0Q29udGVudCA9IHNldHRpbmcubGFiZWwKICAgICAgICAgICAgICAgICAgICBzZXR0aW5nSXRlbS5hcHBlbmQoc2V0dGluZ0xhYmVsKTsKICAgICAgICAgICAgICAgICAgICAoc2V0dGluZ3NMaXN0c1tlbnYuYnJvd3Nlci5pc1BvcnRyYWl0ID8gMCA6ICsoaWR4ID49IHNldHRpbmdJdGVtQ2FwKV0pLmFwcGVuZChzZXR0aW5nSXRlbSkKCiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlL3ByZXBlbmQgaWNvbnMKICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nSWNvbiA9IGljb25zW3NldHRpbmcuaWNvbl0uY3JlYXRlKC9iZ3xmZy8uZXhlYyhrZXkpPy5bMF0gPz8gJycpCiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ0ljb24uc3R5bGUuY3NzVGV4dCA9ICdwb3NpdGlvbjogcmVsYXRpdmUgOycgKyAoCiAgICAgICAgICAgICAgICAgICAgICAgIC9wcm94eS9pLnRlc3Qoa2V5KSA/ICd0b3A6IDNweCA7IGxlZnQ6IC0wLjVweCA7IG1hcmdpbi1yaWdodDogOXB4JwogICAgICAgICAgICAgICAgICAgICAgOiAvc3RyZWFtaW5nL2kudGVzdChrZXkpID8gJ3RvcDogM3B4IDsgbGVmdDogMC41cHggOyBtYXJnaW4tcmlnaHQ6IDlweCcKICAgICAgICAgICAgICAgICAgICAgIDogL2F1dG8oPzpnZXR8Zm9jdXMpL2kudGVzdChrZXkpID8gJ3RvcDogNC41cHggOyBtYXJnaW4tcmlnaHQ6IDdweCcKICAgICAgICAgICAgICAgICAgICAgIDogL2F1dG9zY3JvbGwvaS50ZXN0KGtleSkgPyAndG9wOiAzLjVweCA7IGxlZnQ6IC0xLjVweCA7IG1hcmdpbi1yaWdodDogNnB4JwogICAgICAgICAgICAgICAgICAgICAgOiAvXnJxLy50ZXN0KGtleSkgPyAndG9wOiAyLjVweCA7IGxlZnQ6IDAuNXB4IDsgbWFyZ2luLXJpZ2h0OiA5cHggOyB0cmFuc2Zvcm06IHNjYWxlWSgtMSknCiAgICAgICAgICAgICAgICAgICAgICA6IC9wcmVmaXgvaS50ZXN0KGtleSkgPyAndG9wOiAyLjVweCA7IGxlZnQ6IDAuNXB4IDsgbWFyZ2luLXJpZ2h0OiA5cHgnCiAgICAgICAgICAgICAgICAgICAgICA6IC9zdWZmaXgvaS50ZXN0KGtleSkgPyAndG9wOiA0cHggOyBsZWZ0OiAtMS41cHggOyBtYXJnaW4tcmlnaHQ6IDdweCcKICAgICAgICAgICAgICAgICAgICAgIDogL3NpZGViYXIvaS50ZXN0KGtleSkgPyAndG9wOiA0cHggOyBsZWZ0OiAtMS41cHggOyBtYXJnaW4tcmlnaHQ6IDcuNXB4JwogICAgICAgICAgICAgICAgICAgICAgOiAvYW5jaG9yL2kudGVzdChrZXkpID8gJ3RvcDogM3B4IDsgbGVmdDogLTIuNXB4IDsgbWFyZ2luLXJpZ2h0OiA1LjVweCcKICAgICAgICAgICAgICAgICAgICAgIDogL2FuaW1hdGlvbi9pLnRlc3Qoa2V5KSA/ICd0b3A6IDNweCA7IGxlZnQ6IC0xLjVweCA7IG1hcmdpbi1yaWdodDogNi41cHgnCiAgICAgICAgICAgICAgICAgICAgICA6IC9yZXBseWxhbmcvaS50ZXN0KGtleSkgPyAndG9wOiAzcHggOyBsZWZ0OiAtMS41cHggOyBtYXJnaW4tcmlnaHQ6IDlweCcKICAgICAgICAgICAgICAgICAgICAgIDogL3NjaGVtZS9pLnRlc3Qoa2V5KSA/ICd0b3A6IDIuNXB4IDsgbGVmdDogLTEuNXB4IDsgbWFyZ2luLXJpZ2h0OiA4cHgnCiAgICAgICAgICAgICAgICAgICAgICA6IC9kZWJ1Zy9pLnRlc3Qoa2V5KSA/ICd0b3A6IDMuNXB4IDsgbGVmdDogLTEuNXB4IDsgbWFyZ2luLXJpZ2h0OiA4cHgnCiAgICAgICAgICAgICAgICAgICAgICA6IC9hYm91dC9pLnRlc3Qoa2V5KSA/ICd0b3A6IDNweCA7IGxlZnQ6IC0zcHggOyBtYXJnaW4tcmlnaHQ6IDUuNXB4JyA6ICcnCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHNldHRpbmdJdGVtLnByZXBlbmQoc2V0dGluZ0ljb24pCgogICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZS9hcHBlbmQgdG9nZ2xlcy9saXN0ZW5lcnMKICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZy50eXBlID09ICd0b2dnbGUnKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBJbml0IHRvZ2dsZSBpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nVG9nZ2xlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ1RvZ2dsZUF0dHJzID0gW1sndHlwZScsICdjaGVja2JveCddLCBbJ2Rpc2FibGVkJywgdHJ1ZV1dCiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdUb2dnbGVBdHRycy5mb3JFYWNoKChbYXR0ciwgdmFsdWVdKSA9PiBzZXR0aW5nVG9nZ2xlLnNldEF0dHJpYnV0ZShhdHRyLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdUb2dnbGUuY2hlY2tlZCA9IGNvbmZpZ1trZXldIF4ga2V5LmluY2x1ZGVzKCdEaXNhYmxlZCcpIC8vIGluaXQgYmFzZWQgb24gY29uZmlnL25hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICEoa2V5ID09ICdzdHJlYW1pbmdEaXNhYmxlZCcgJiYgIWNvbmZpZy5wcm94eUFQSWVuYWJsZWQpIC8vIHVuY2hlY2sgU3RyZWFtaW5nIGluIE9BSSBtb2RlCiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdUb2dnbGUuc3R5bGUuZGlzcGxheSA9ICdub25lJyAvLyBoaWRlIGNoZWNrYm94CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUvc3R5bGl6ZSBzd2l0Y2gKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3dpdGNoU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHN3aXRjaFNwYW4uc3R5bGUsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLCBsZWZ0OiAnLTFweCcsIGJvdHRvbTonLTUuNXB4JywgZmxvYXQ6ICdyaWdodCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHNldHRpbmdUb2dnbGUuY2hlY2tlZCA/ICcjY2NjJyA6ICcjQUQ2OEZGJywgLy8gaW5pdCBvcHBvc2l0ZSAgZmluYWwgY29sb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMjZweCcsIGhlaWdodDogJzEzcHgnLCBib3JkZXJSYWRpdXM6ICcyOHB4JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICcwLjRzJywgJy13ZWJraXQtdHJhbnNpdGlvbic6ICcwLjRzJywgJy1tb3otdHJhbnNpdGlvbic6ICcwLjRzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLW8tdHJhbnNpdGlvbic6ICcwLjRzJywgJy1tcy10cmFuc2l0aW9uJzogJzAuNHMnCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCgogICAgICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUvc3R5bGl6ZSBrbm9iCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtub2JTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oa25vYlNwYW4uc3R5bGUsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBsZWZ0OiAnMXB4JywgYm90dG9tOiAnMXB4JywgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMXB4JywgaGVpZ2h0OiAnMTFweCcsIGNvbnRlbnQ6ICciIicsIGJvcmRlclJhZGl1czogJzI4cHgnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzZXR0aW5nVG9nZ2xlLmNoZWNrZWQgPyAvLyBpbml0IG9wcG9zaXRlIGZpbmFsIHBvcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc2xhdGVYKDApJyA6ICd0cmFuc2xhdGVYKDE0cHgpIHRyYW5zbGF0ZVkoMCknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJzAuMnMnLCAnLXdlYmtpdC10cmFuc2l0aW9uJzogJzAuMnMnLCAnLW1vei10cmFuc2l0aW9uJzogJzAuMnMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctby10cmFuc2l0aW9uJzogJzAuMnMnLCAnLW1zLXRyYW5zaXRpb24nOiAnMC4ycycKICAgICAgICAgICAgICAgICAgICAgICAgfSkKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCBlbGVtcwogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hTcGFuLmFwcGVuZChrbm9iU3BhbikgOyBzZXR0aW5nSXRlbS5hcHBlbmQoc2V0dGluZ1RvZ2dsZSwgc3dpdGNoU3BhbikKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB2aXN1YWwgc3RhdGUgdy8gYW5pbWF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gbW9kYWxzLnNldHRpbmdzLnRvZ2dsZS51cGRhdGVTdHlsZXMoc2V0dGluZ1RvZ2dsZSksIGlkeCAqMjUgLTI1KQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGNsaWNrIGxpc3RlbmVyCiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdJdGVtLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShrZXkgPT0gJ3N0cmVhbWluZ0Rpc2FibGVkJyAvLyB2aXN1YWxseSBzd2l0Y2ggdG9nZ2xlIGlmIG5vdCBTdHJlYW1pbm5nLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKCAvLyAuLi5pbiB1bnN1cHBvcnRlZCBlbnYuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWVudi5zdHJlYW1pbmdTdXBwb3J0ZWQuYnlCcm93c2VyIHx8ICFlbnYuc3RyZWFtaW5nU3VwcG9ydGVkLmJ5U2NyaXB0TWFuYWdlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIWNvbmZpZy5wcm94eUFQSWVuYWJsZWQgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkgbW9kYWxzLnNldHRpbmdzLnRvZ2dsZS5zd2l0Y2goc2V0dGluZ1RvZ2dsZSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxsIHNwZWNpYWxpemVkIHRvZ2dsZSBmdW5jcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFudWFsR2V0TWF0Y2ggPSAvKD86c3VmfHByZSlmaXgvLmV4ZWMoa2V5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygncHJveHknKSkgdG9nZ2xlLnByb3h5TW9kZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChrZXkuaW5jbHVkZXMoJ3N0cmVhbWluZycpKSB0b2dnbGUuc3RyZWFtaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKC9hdXRvZ2V0L2kudGVzdChrZXkpKSB0b2dnbGUuYXV0b0dldCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChrZXkuaW5jbHVkZXMoJ3JxJykpIHRvZ2dsZS5yZWxhdGVkUXVlcmllcygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChtYW51YWxHZXRNYXRjaCkgdG9nZ2xlLm1hbnVhbEdldChtYW51YWxHZXRNYXRjaFswXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleS5pbmNsdWRlcygnU2lkZWJhcicpKSB0b2dnbGUuc2lkZWJhcigvKC4qPylTaWRlYmFyJC8uZXhlYyhrZXkpWzFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdhbmNob3InKSkgdG9nZ2xlLmFuY2hvck1vZGUoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdiZ0FuaW1hdGlvbicpKSB0b2dnbGUuYW5pbWF0aW9ucygnYmcnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdmZ0FuaW1hdGlvbicpKSB0b2dnbGUuYW5pbWF0aW9ucygnZmcnKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLm9yIGdlbmVyaWNhbGx5IHRvZ2dsZS9ub3RpZnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5jYWxsZXIgPSAnc2V0dGluZ3MuY3JlYXRlQXBwZW5kKCknCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKGBUb2dnbGluZyAke3NldHRpbmdJdGVtLnRleHRDb250ZW50fSAkewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkuaW5jbHVkZXMoJ0Rpc2FibGVkJykgXiBjb25maWdba2V5XSA/ICdPRkYnIDogJ09OJyB9Li4uYCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5zYXZlKGtleSwgIWNvbmZpZ1trZXldKSAvLyB1cGRhdGUgY29uZmlnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5KGAke3NldHRpbmdzLmNvbnRyb2xzW2tleV0ubGFiZWx9ICR7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnUuc3RhdGUud29yZHNbKyhrZXkuaW5jbHVkZXMoJ0Rpc2FibGVkJykgXiBjb25maWdba2V5XSldfWApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nW2tleS5pbmNsdWRlcygnZGVidWcnKSA/ICdpbmZvJyA6ICdkZWJ1ZyddKGBTdWNjZXNzISBjb25maWcuJHtrZXl9ID0gJHtjb25maWdba2V5XX1gKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vIEFkZCAuYWN0aXZlICsgY29uZmlnIHN0YXR1cyArIGxpc3RlbmVycyB0byBwb3AtdXAgc2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nSXRlbS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25maWdTdGF0dXNTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ1N0YXR1c1NwYW4uc3R5bGUuY3NzVGV4dCA9ICdmbG9hdDogcmlnaHQgOyBmb250LXNpemU6IDExcHggOyBtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICArICgga2V5LmluY2x1ZGVzKCdhYm91dCcpID8gJzVweCcgOiAnM3B4IDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50JykKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygncmVwbHlMYW5nJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ1N0YXR1c1NwYW4udGV4dENvbnRlbnQgPSBjb25maWcucmVwbHlMYW5ndWFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ0l0ZW0ub25jbGljayA9ICgpID0+IG1vZGFscy5vcGVuKCdyZXBseUxhbmcnKQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcygnc2NoZW1lJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFscy5zZXR0aW5ncy51cGRhdGVTY2hlbWVTdGF0dXMoY29uZmlnU3RhdHVzU3BhbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdJdGVtLm9uY2xpY2sgPSAoKSA9PiBtb2RhbHMub3Blbignc2NoZW1lJykKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuaW5jbHVkZXMoJ2Fib3V0JykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlubmVyRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0R2FwID0gJyZlbXNwOyZlbXNwOyZlbXNwOyZlbXNwOyZlbXNwOycKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFscy5zZXR0aW5ncy5hYm91dENvbnRlbnQgPSB7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxzLnNldHRpbmdzLmFib3V0Q29udGVudC5zaG9ydCA9IGB2JHtHTV9pbmZvLnNjcmlwdC52ZXJzaW9ufWAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFscy5zZXR0aW5ncy5hYm91dENvbnRlbnQubG9uZyA9ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2FwcC5tc2dzLmFib3V0X3ZlcnNpb259OiA8c3BhbiBjbGFzcz0iYWJvdXQtZW0iPnYkewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTV9pbmZvLnNjcmlwdC52ZXJzaW9uICsgdGV4dEdhcCB9PC9zcGFuPmAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGAke2FwcC5tc2dzLmFib3V0X3Bvd2VyZWRCeX0gPHNwYW4gY2xhc3M9ImFib3V0LWVtIj5jaGF0Z3B0LmpzPC9zcGFuPiR7dGV4dEdhcH1gICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSsrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFscy5zZXR0aW5ncy5hYm91dENvbnRlbnQubG9uZyArPSBtb2RhbHMuc2V0dGluZ3MuYWJvdXRDb250ZW50LmxvbmcgLy8gbWFrZSBsb25nIGFmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lckRpdi5pbm5lckhUTUwgPSBtb2RhbHMuc2V0dGluZ3MuYWJvdXRDb250ZW50WwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5mZ0FuaW1hdGlvbnNEaXNhYmxlZCA/ICdzaG9ydCcgOiAnbG9uZyddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lckRpdi5zdHlsZS5mbG9hdCA9IGNvbmZpZy5mZ0FuaW1hdGlvbnNEaXNhYmxlZCA/ICdyaWdodCcgOiAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnU3RhdHVzU3Bhbi5hcHBlbmQoaW5uZXJEaXYpIDsgc2V0dGluZ0l0ZW0ub25jbGljayA9ICgpID0+IG1vZGFscy5vcGVuKCdhYm91dCcpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gc2V0dGluZ0l0ZW0uYXBwZW5kKGNvbmZpZ1N0YXR1c1NwYW4pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIHNldHRpbmdzTGlzdENvbnRhaW5lci5hcHBlbmQoLi4uc2V0dGluZ3NMaXN0cykKCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgY2xvc2UgYnV0dG9uCiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZUJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpCiAgICAgICAgICAgICAgICBjbG9zZUJ0bi5jbGFzc0xpc3QuYWRkKGAke2FwcC5jc3NQcmVmaXh9LW1vZGFsLWNsb3NlLWJ0bmAsICduby1tb2JpbGUtdGFwLW91dGxpbmUnKQogICAgICAgICAgICAgICAgY2xvc2VCdG4udGl0bGUgPSBhcHAubXNncy50b29sdGlwX2Nsb3NlCiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZVNWRyA9IGljb25zLnguY3JlYXRlKCkgOyBjbG9zZUJ0bi5hcHBlbmQoY2xvc2VTVkcpCgogICAgICAgICAgICAgICAgLy8gQXNzZW1ibGUvYXBwZW5kIGVsZW1zCiAgICAgICAgICAgICAgICBzZXR0aW5nc01vZGFsLmFwcGVuZChzZXR0aW5nc0ljb24sIHNldHRpbmdzVGl0bGVEaXYsIGNsb3NlQnRuLCBzZXR0aW5nc0xpc3RDb250YWluZXIpCiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChzZXR0aW5nc0NvbnRhaW5lcikKCiAgICAgICAgICAgICAgICByZXR1cm4gc2V0dGluZ3NDb250YWluZXIKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIGdldCgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke2FwcC5jc3NQcmVmaXh9LXNldHRpbmdzYCkgfSwKCiAgICAgICAgICAgIHNob3coKSB7CiAgICAgICAgICAgICAgICBsb2cuY2FsbGVyID0gJ21vZGFscy5zZXR0aW5ncy5zaG93KCknCiAgICAgICAgICAgICAgICBsb2cuZGVidWcoJ1Nob3dpbmcgU2V0dGluZ3MgbW9kYWwuLi4nKQogICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3NDb250YWluZXIgPSBtb2RhbHMuc2V0dGluZ3MuZ2V0KCk/LnBhcmVudE5vZGUgfHwgbW9kYWxzLnNldHRpbmdzLmNyZWF0ZUFwcGVuZCgpCiAgICAgICAgICAgICAgICBzZXR0aW5nc0NvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJycgLy8gc2hvdyBtb2RhbAogICAgICAgICAgICAgICAgbG9nLmNhbGxlciA9ICdtb2RhbHMuc2V0dGluZ3Muc2hvdygpJwogICAgICAgICAgICAgICAgaWYgKGVudi5icm93c2VyLmlzTW9iaWxlKSB7IC8vIHNjYWxlIDkzJSB0byB2aWV3cG9ydCBzaWRlcwogICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygnU2NhbGluZyA5MyUgdG8gdmlld3BvcnQgc2lkZXMuLi4nKQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzTW9kYWwgPSBzZXR0aW5nc0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHthcHAuY3NzUHJlZml4fS1zZXR0aW5nc2ApLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlUmF0aW8gPSAwLjkzICogd2luZG93LmlubmVyV2lkdGggLyBzZXR0aW5nc01vZGFsLm9mZnNldFdpZHRoCiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3NNb2RhbC5zdHlsZS50cmFuc2Zvcm0gPSBgc2NhbGUoJHtzY2FsZVJhdGlvfSlgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsb2cuZGVidWcoJ1N1Y2Nlc3MhIFNldHRpbmdzIG1vZGFsIHNob3duJykKICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5nc0NvbnRhaW5lci5maXJzdENoaWxkCiAgICAgICAgICAgIH0sCgogICAgICAgICAgICB0b2dnbGU6IHsKICAgICAgICAgICAgICAgIHN3aXRjaChzZXR0aW5nVG9nZ2xlKSB7CiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ1RvZ2dsZS5jaGVja2VkID0gIXNldHRpbmdUb2dnbGUuY2hlY2tlZAogICAgICAgICAgICAgICAgICAgIG1vZGFscy5zZXR0aW5ncy50b2dnbGUudXBkYXRlU3R5bGVzKHNldHRpbmdUb2dnbGUpCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgIHVwZGF0ZVN0eWxlcyhzZXR0aW5nVG9nZ2xlKSB7IC8vIGZvciAudG9nZ2xlLnNob3coKSArIHN0YWdnZXJlZCBzd2l0Y2ggYW5pbWF0aW9ucyBpbiAuY3JlYXRlQXBwZW5kKCkKICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nTGkgPSBzZXR0aW5nVG9nZ2xlLnBhcmVudE5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoU3BhbiA9IHNldHRpbmdMaS5xdWVyeVNlbGVjdG9yKCdzcGFuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAga25vYlNwYW4gPSBzd2l0Y2hTcGFuLnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hTcGFuLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHNldHRpbmdUb2dnbGUuY2hlY2tlZCA/ICcjYWQ2OGZmJyA6ICcjY2NjJwogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hTcGFuLnN0eWxlLmJveFNoYWRvdyA9IHNldHRpbmdUb2dnbGUuY2hlY2tlZCA/ICcycHggMXB4IDlweCAjZDhhOWZmJyA6ICdub25lJwogICAgICAgICAgICAgICAgICAgICAgICBrbm9iU3Bhbi5zdHlsZS50cmFuc2Zvcm0gPSBzZXR0aW5nVG9nZ2xlLmNoZWNrZWQgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbGF0ZVgoMTRweCkgdHJhbnNsYXRlWSgwKScgOiAndHJhbnNsYXRlWCgwKScKICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ0xpLmNsYXNzTGlzdFtzZXR0aW5nVG9nZ2xlLmNoZWNrZWQgPyAnYWRkJyA6ICdyZW1vdmUnXSgnYWN0aXZlJykgLy8gZGltL2JyaWdodGVuIGVudHJ5CiAgICAgICAgICAgICAgICAgICAgfSwgMSkgLy8gbWluIGRlbGF5IHRvIHRyaWdnZXIgdHJhbnNpdGlvbiBmeAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgdXBkYXRlU2NoZW1lU3RhdHVzKHNjaGVtZVN0YXR1c1NwYW4gPSBudWxsKSB7CiAgICAgICAgICAgICAgICBzY2hlbWVTdGF0dXNTcGFuID0gc2NoZW1lU3RhdHVzU3BhbiB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2NoZW1lLXNldHRpbmdzLWVudHJ5IHNwYW4nKQogICAgICAgICAgICAgICAgaWYgKHNjaGVtZVN0YXR1c1NwYW4pIHsKICAgICAgICAgICAgICAgICAgICBzY2hlbWVTdGF0dXNTcGFuLnRleHRDb250ZW50ID0gJycKICAgICAgICAgICAgICAgICAgICBzY2hlbWVTdGF0dXNTcGFuLmFwcGVuZCguLi4oIC8vIHN0YXR1cyB0eHQgKyBpY29uCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zY2hlbWUgPT0gJ2RhcmsnID8gW2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGFwcC5tc2dzLnNjaGVtZV9kYXJrKSwgaWNvbnMubW9vbi5jcmVhdGUoKV0KICAgICAgICAgICAgICAgICAgICAgIDogY29uZmlnLnNjaGVtZSA9PSAnbGlnaHQnID8gW2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGFwcC5tc2dzLnNjaGVtZV9saWdodCksIGljb25zLnN1bi5jcmVhdGUoKV0KICAgICAgICAgICAgICAgICAgICAgIDogW2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGFwcC5tc2dzLm1lbnVMYWJlbF9hdXRvKSwgaWNvbnMuYXJyb3dzQ3ljbGUuY3JlYXRlKCldICkpCiAgICAgICAgICAgICAgICAgICAgc2NoZW1lU3RhdHVzU3Bhbi5zdHlsZS5jc3NUZXh0ICs9IGA7IG1hcmdpbi10b3A6ICR7ICFjb25maWcuc2NoZW1lID8gMCA6IC0zIH1weCAhaW1wb3J0YW50YAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgdXBkYXRlOiB7CiAgICAgICAgICAgIHdpZHRoOiAzNzcsCgogICAgICAgICAgICBhdmFpbGFibGUoKSB7CgogICAgICAgICAgICAgICAgLy8gU2hvdyBtb2RhbAogICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlQXZhaWxNb2RhbCA9IG1vZGFscy5hbGVydChg8J+agCAke2FwcC5tc2dzLmFsZXJ0X3VwZGF0ZUF2YWlsfSFgLCAvLyB0aXRsZQogICAgICAgICAgICAgICAgICAgIGAke2FwcC5tc2dzLmFsZXJ0X25ld2VyVmVyfSAke2FwcC5uYW1lfSBgIC8vIG1zZwogICAgICAgICAgICAgICAgICAgICAgICArIGAodiR7YXBwLmxhdGVzdFZlcn0pICR7YXBwLm1zZ3MuYWxlcnRfaXNBdmFpbH0hICBgCiAgICAgICAgICAgICAgICAgICAgICAgICsgJzxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBzdHlsZT0iZm9udC1zaXplOiAwLjk3cmVtIiBocmVmPSInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGFwcC51cmxzLnVwZGF0ZS5yZXBsYWNlKC8uK1wvKFteL10rKW1ldGFcLmpzLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHthcHAudXJscy5naXRIdWJ9L2NvbW1pdHMvbWFpbi9ncmVhc2Vtb25rZXkvJDF1c2VyLmpzYCkKICAgICAgICAgICAgICAgICAgICAgICAgKyBgIj4ke2FwcC5tc2dzLmxpbmtfdmlld0NoYW5nZXN9PC9hPmAsCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdXBkYXRlKCkgeyAvLyBidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgR01fb3BlbkluVGFiKGFwcC51cmxzLnVwZGF0ZS5yZXBsYWNlKCdtZXRhLmpzJywgJ3VzZXIuanMnKSArICc/dD0nICsgRGF0ZS5ub3coKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgYWN0aXZlOiB0cnVlLCBpbnNlcnQ6IHRydWUgfSAvLyBmb2N1cywgbWFrZSBhZGphY2VudAogICAgICAgICAgICAgICAgICAgICAgICApLm9uY2xvc2UgPSAoKSA9PiBsb2NhdGlvbi5yZWxvYWQoKQogICAgICAgICAgICAgICAgICAgIH0sICcnLCBtb2RhbHMudXBkYXRlLndpZHRoCiAgICAgICAgICAgICAgICApCgogICAgICAgICAgICAgICAgLy8gTG9jYWxpemUgYnV0dG9uIGxhYmVscyBpZiBuZWVkZWQKICAgICAgICAgICAgICAgIGlmICghZW52LmJyb3dzZXIubGFuZ3VhZ2Uuc3RhcnRzV2l0aCgnZW4nKSkgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUJ0bnMgPSB1cGRhdGVBdmFpbE1vZGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpCiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQnRuc1sxXS50ZXh0Q29udGVudCA9IGFwcC5tc2dzLmJ0bkxhYmVsX3VwZGF0ZQogICAgICAgICAgICAgICAgICAgIHVwZGF0ZUJ0bnNbMF0udGV4dENvbnRlbnQgPSBhcHAubXNncy5idG5MYWJlbF9kaXNtaXNzCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZUF2YWlsTW9kYWwKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIHVuYXZhaWxhYmxlKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG1vZGFscy5hbGVydChgJHthcHAubXNncy5hbGVydF91cFRvRGF0ZX0hYCwgLy8gdGl0bGUKICAgICAgICAgICAgICAgICAgICBgJHthcHAubmFtZX0gKHYke2FwcC52ZXJzaW9ufSkgJHthcHAubXNncy5hbGVydF9pc1VwVG9EYXRlfSFgLCAvLyBtc2cKICAgICAgICAgICAgICAgICAgICAnJywgJycsIG1vZGFscy51cGRhdGUud2lkdGgKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHNhZmVXaW5PcGVuKHVybCkgeyBvcGVuKHVybCwgJ19ibGFuaycsICdub29wZW5lcicpIH0gLy8gdG8gcHJldmVudCBiYWNrZG9vciB2dWxuZXJhYmlsaXRpZXMKICAgIH0KCiAgICAvLyBEZWZpbmUgTUVOVSBmdW5jdGlvbnMKCiAgICBjb25zdCBtZW51cyA9IHsKICAgICAgICBmYWRlSW5EZWxheTogNSwgLy8gbXMKCiAgICAgICAgc2hvdyhtZW51KSB7CiAgICAgICAgICAgIG1lbnUuc3R5bGUuZGlzcGxheSA9ICcnCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gbWVudS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKSwgbWVudXMuZmFkZUluRGVsYXkpCiAgICAgICAgfSwKCiAgICAgICAgcGluOiB7CiAgICAgICAgICAgIGNsaWNrSGFuZGxlcihldmVudCkgewogICAgICAgICAgICAgICAgY29uc3QgcGluTWVudSA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KGAjJHthcHAuY3NzUHJlZml4fS1waW4tbWVudWApLAogICAgICAgICAgICAgICAgICAgICAgaXRlbUxhYmVsID0gZXZlbnQudGFyZ2V0LnRleHRDb250ZW50LAogICAgICAgICAgICAgICAgICAgICAgcHJldk9mZnNldFRvcCA9IGFwcERpdi5vZmZzZXRUb3AKCiAgICAgICAgICAgICAgICAvLyBTd2l0Y2ggbW9kZQogICAgICAgICAgICAgICAgaWYgKGl0ZW1MYWJlbCA9PSBhcHAubXNncy5tZW51TGFiZWxfdG9wKSB0b2dnbGUuc2lkZWJhcignc3RpY2t5JykKICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW1MYWJlbCA9PSBhcHAubXNncy5tZW51TGFiZWxfc2lkZWJhcikgewogICAgICAgICAgICAgICAgICAgIHRvZ2dsZS5zaWRlYmFyKCdzdGlja3knLCAnb2ZmJykgOyB0b2dnbGUuYW5jaG9yTW9kZSgnb2ZmJykgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbUxhYmVsID09IGFwcC5tc2dzLm1lbnVMYWJlbF9ib3R0b20pIHRvZ2dsZS5hbmNob3JNb2RlKCkKCiAgICAgICAgICAgICAgICAvLyBDbG9zZS91cGRhdGUgbWVudQogICAgICAgICAgICAgICAgaWYgKGFwcERpdi5vZmZzZXRUb3AgIT0gcHJldk9mZnNldFRvcCkgcGluTWVudS5yZW1vdmUoKSAvLyBzaW5jZSBhcHAgbW92ZWQKICAgICAgICAgICAgICAgIGVsc2UgbWVudXMucGluLnVwZGF0ZShwaW5NZW51KSAvLyBzaW5jZSBtZW51IHN0YXllZCBpbiBwbGFjZQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgY3JlYXRlQXBwZW5kKCkgewogICAgICAgICAgICAgICAgY29uc3QgcGluTWVudSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIDsgcGluTWVudS5pZCA9IGAke2FwcC5jc3NQcmVmaXh9LXBpbi1tZW51YAogICAgICAgICAgICAgICAgcGluTWVudS5jbGFzc0xpc3QuYWRkKAogICAgICAgICAgICAgICAgICAgIGAke2FwcC5jc3NQcmVmaXh9LW1lbnVgLCBgJHthcHAuY3NzUHJlZml4fS1idG4tdG9vbHRpcGAsICdmYWRlLWluLWxlc3MnLCAnbm8tdXNlci1zZWxlY3QnKQogICAgICAgICAgICAgICAgbWVudXMucGluLnVwZGF0ZShwaW5NZW51KSA7IGFwcERpdi5hcHBlbmQocGluTWVudSkKICAgICAgICAgICAgICAgIHJldHVybiBwaW5NZW51CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICB1cGRhdGUocGluTWVudSkgewogICAgICAgICAgICAgICAgcGluTWVudS50ZXh0Q29udGVudCA9ICcnCgogICAgICAgICAgICAgICAgLy8gSW5pdCBjb3JlIGVsZW1zCiAgICAgICAgICAgICAgICBjb25zdCBwaW5NZW51VUwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHthcHAuY3NzUHJlZml4fS1waW4tbWVudSB1bGApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bCcpCiAgICAgICAgICAgICAgICBjb25zdCBwaW5NZW51SXRlbXMgPSBbXQogICAgICAgICAgICAgICAgY29uc3QgcGluTWVudWxhYmVscyA9IFsKICAgICAgICAgICAgICAgICAgICBgJHthcHAubXNncy5tZW51TGFiZWxfcGluVG99Li4uYCwgYXBwLm1zZ3MubWVudUxhYmVsX3RvcCwKICAgICAgICAgICAgICAgICAgICBhcHAubXNncy5tZW51TGFiZWxfc2lkZWJhciwgYXBwLm1zZ3MubWVudUxhYmVsX2JvdHRvbSBdCiAgICAgICAgICAgICAgICBjb25zdCBwaW5NZW51SWNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgaWNvbnMud2ViQ29ybmVyLmNyZWF0ZSgpLCBpY29ucy5zaWRlYmFyLmNyZWF0ZSgpLCBpY29ucy5hbmNob3IuY3JlYXRlKCksIGljb25zLmNoZWNrbWFyay5jcmVhdGUoKV0KCiAgICAgICAgICAgICAgICAvLyBTdHlsZSBpY29ucwogICAgICAgICAgICAgICAgcGluTWVudUljb25zLmZvckVhY2goaWNvbiA9PiBpY29uLnN0eWxlLmNzc1RleHQgPSAoCiAgICAgICAgICAgICAgICAgICAgJ3dpZHRoOiAxMnB4IDsgaGVpZ2h0OiAxMnB4IDsgcG9zaXRpb246IHJlbGF0aXZlIDsgdG9wOiAxcHggOyByaWdodDogNXB4IDsgbWFyZ2luLWxlZnQ6IDVweCcpKQogICAgICAgICAgICAgICAgcGluTWVudUljb25zWzBdLnN0eWxlLndpZHRoID0gcGluTWVudUljb25zWzBdLnN0eWxlLmhlaWdodCA9ICcxMXB4JyAvLyBzaHJpbmsgY29ybmVyIHdlYiBpY29uCiAgICAgICAgICAgICAgICBwaW5NZW51SWNvbnNbM10uc3R5bGUuY3NzVGV4dCA9ICggLy8gcmUtc3R5bGUgY2hlY2ttYXJrcwogICAgICAgICAgICAgICAgICAgICdwb3NpdGlvbjogcmVsYXRpdmUgOyBmbG9hdDogcmlnaHQgOyBtYXJnaW4tcmlnaHQ6IC0xNnB4IDsgdG9wOiA0cHgnICkKCiAgICAgICAgICAgICAgICAvLyBGaWxsIG1lbnUgVUwKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwIDsgaSA8IDQgOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICBwaW5NZW51SXRlbXMucHVzaChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpKQogICAgICAgICAgICAgICAgICAgIHBpbk1lbnVJdGVtc1tpXS50ZXh0Q29udGVudCA9IHBpbk1lbnVsYWJlbHNbaV0KICAgICAgICAgICAgICAgICAgICBwaW5NZW51SXRlbXNbaV0uY2xhc3NOYW1lID0gYCR7YXBwLmNzc1ByZWZpeH0tbWVudS1pdGVtYAogICAgICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsgLy8gZm9ybWF0IGhlYWRlciBpdGVtCiAgICAgICAgICAgICAgICAgICAgICAgIHBpbk1lbnVJdGVtc1tpXS5pbm5lckhUTUwgPSBgPGI+JHtwaW5NZW51bGFiZWxzW2ldfTwvYj5gCiAgICAgICAgICAgICAgICAgICAgICAgIHBpbk1lbnVJdGVtc1tpXS5jbGFzc0xpc3QuYWRkKGAke2FwcC5jc3NQcmVmaXh9LW1lbnUtaGVhZGVyYCkgLy8gdG8gbm90IGFwcGx5IGhvdmVyIGZ4IGZyb20gYXBwLnN0eWxlcwogICAgICAgICAgICAgICAgICAgICAgICBwaW5NZW51SXRlbXNbaV0uc3R5bGUuY3NzVGV4dCA9ICdtYXJnaW4tYm90dG9tOiAxcHggOyBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIHdoaXRlJwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSAxKSBwaW5NZW51SXRlbXNbaV0uc3R5bGUubWFyZ2luVG9wID0gJzNweCcgLy8gdG9wLXBhZCBmaXJzdCBub24taGVhZGVyIGl0ZW0KICAgICAgICAgICAgICAgICAgICBwaW5NZW51SXRlbXNbaV0uc3R5bGUucGFkZGluZ1JpZ2h0ID0gJzI0cHgnIC8vIG1ha2Ugcm9vbSBmb3IgY2hlY2ttYXJrCiAgICAgICAgICAgICAgICAgICAgcGluTWVudUl0ZW1zW2ldLnByZXBlbmQoaSA+IDAgPyBwaW5NZW51SWNvbnNbaSAtMV0gOiAnJykgLy8gcHJlcGVuZCBsZWZ0IGljb24KICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAxICYmIGNvbmZpZy5zdGlja3lTaWRlYmFyIC8vICdUb3AnIGl0ZW0gKyBTdGlja3kgbW9kZSBvbgogICAgICAgICAgICAgICAgICAgICB8fCBpID09IDIgJiYgIWNvbmZpZy5zdGlja3lTaWRlYmFyICYmICFjb25maWcuYW5jaG9yZWQgLy8gJ1NpZGViYXInIGl0ZW0gKyBubyBtb2RlIG9uCiAgICAgICAgICAgICAgICAgICAgIHx8IGkgPT0gMyAmJiBjb25maWcuYW5jaG9yZWQpIC8vICdCb3R0b20nIGl0ZW0gKyBBbmNob3IgbW9kZSBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluTWVudUl0ZW1zW2ldLmFwcGVuZChwaW5NZW51SWNvbnNbcGluTWVudUljb25zLmxlbmd0aCAtMV0pIC8vIGFwcGVuZCByaWdodCBjaGVja21hcmsKICAgICAgICAgICAgICAgICAgICBwaW5NZW51SXRlbXNbaV0ub25jbGljayA9IG1lbnVzLnBpbi5jbGlja0hhbmRsZXIKICAgICAgICAgICAgICAgICAgICBwaW5NZW51VUwuYXBwZW5kKHBpbk1lbnVJdGVtc1tpXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHBpbk1lbnUuYXBwZW5kKHBpbk1lbnVVTCkKCiAgICAgICAgICAgICAgICAvLyBBZGQgbGlzdGVuZXJzCiAgICAgICAgICAgICAgICBwaW5NZW51Lm9ubW91c2VvdmVyID0gcGluTWVudS5vbm1vdXNlb3V0ID0gbWVudXMucGluLnRvZ2dsZQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgdG9nZ2xlKGV2ZW50KSB7IC8vIHZpc2liaWxpdHkKICAgICAgICAgICAgICAgIGNvbnN0IHBpbk1lbnUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHthcHAuY3NzUHJlZml4fS1waW4tbWVudWApIHx8IG1lbnVzLnBpbi5jcmVhdGVBcHBlbmQoKQogICAgICAgICAgICAgICAgaWYgKCFtZW51cy5waW4udG9wUG9zKQogICAgICAgICAgICAgICAgICAgICBtZW51cy5waW4udG9wUG9zID0gKCBldmVudC5jbGllbnRZIHx8IGV2ZW50LnRvdWNoZXM/LlswXT8uY2xpZW50WSApIDwgMTk1ID8gNTEgOiAtODEKICAgICAgICAgICAgICAgIGlmICghbWVudXMucGluLnJpZ2h0UG9zKQogICAgICAgICAgICAgICAgICAgICBtZW51cy5waW4ucmlnaHRQb3MgPSBhcHBEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgLSBldmVudC5jbGllbnRYIC0gcGluTWVudS5vZmZzZXRXaWR0aC8yCiAgICAgICAgICAgICAgICBwaW5NZW51LnN0eWxlLnRvcCA9IGAke21lbnVzLnBpbi50b3BQb3N9cHhgIDsgcGluTWVudS5zdHlsZS5yaWdodCA9IGAke21lbnVzLnBpbi5yaWdodFBvc31weGAKICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChtZW51cy5waW4uaGlkZVRpbWVvdXQpCiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAnbW91c2VvdmVyJykgcGluTWVudS5zdHlsZS5vcGFjaXR5ID0gMQogICAgICAgICAgICAgICAgZWxzZSBtZW51cy5waW4uaGlkZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHBpbk1lbnUucmVtb3ZlKCksIDU1KSAvLyBkZWxheSB0byBjb3ZlciBnYXAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyBEZWZpbmUgSUNPTiBmdW5jdGlvbnMKCiAgICBjb25zdCBpY29ucyA9IHsKCiAgICAgICAgYW5jaG9yOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgeyB3aWR0aDogMTksIGhlaWdodDogMTksIHZpZXdCb3g6ICcwIDAgMjQgMjQnIH0pCiAgICAgICAgICAgICAgICBjb25zdCBzdmdQYXRoID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICdub25lJywKICAgICAgICAgICAgICAgICAgICBkOiAnTTEyLDIgQzEzLjY1Njg1NDIsMiAxNSwzLjM0MzE0NTc1IDE1LDUgQzE1LDYuMzA1ODgyMjIgMTQuMTY1NjIyNiw3LjQxNjg4NTE1IDEzLjAwMDkwMDcsNy44Mjg5NzU3NyBMMTMuMDAwODcyMiwxOS45Mzc5OTc0IEMxNS44OTg0Nzk5LDE5LjU3NjM0NzggMTguMzE0NzI2NiwxNy42NjUwNTMgMTkuMzk0MDQxMiwxNS4wNTk2ODM4IEwxOS40MTcsMTUgTDE3LDE1IEMxNS45ODUzNjExLDE1IDE1LjYzNTg2MDgsMTMuNjg0ODAzNSAxNi40NDk1MzA5LDEzLjE2NDEwNzcgTDE2LjU1Mjc4NjQsMTMuMTA1NTcyOCBMMjAuNTUyNzg2NCwxMS4xMDU1NzI4IEMyMS4yMTc2ODc1LDEwLjc3MzEyMjMgMjIsMTEuMjU2NjE4IDIyLDEyIEMyMiwxNy41MjI4NDc1IDE3LjUyMjg0NzUsMjIgMTIsMjIgQzYuNDc3MTUyNSwyMiAyLDE3LjUyMjg0NzUgMiwxMiBDMiwxMS4yOTU3NDMzIDIuNzAyMTMwODksMTAuODI0NzM2NSAzLjM0MTM4NDY3LDExLjA1OTc4MDMgTDMuNDQ3MjEzNiwxMS4xMDU1NzI4IEw3LjQ0NzIxMzYsMTMuMTA1NTcyOCBDOC4zNTQ3MzQxOSwxMy41NTkzMzMxIDguMDc5MTYzMDYsMTQuODkxOTgxOSA3LjExODUzMjEzLDE0Ljk5MzgyMjEgTDcsMTUgTDQuNTgyLDE1IEw0LjYwNTk1ODc2LDE1LjA1OTY4MzggQzUuNjg1Mzk1NTEsMTcuNjY1MzQ3NyA4LjEwMjA2NjYyLDE5LjU3Njc4MDIgMTEuMDAwMTEwOSwxOS45MzgxMjAxIEwxMS4wMDAwODg5LDcuODI5MzI1NzIgQzkuODM0ODUwMSw3LjQxNzUxNDQyIDksNi4zMDYyNTIwNiA5LDUgQzksMy4zNDMxNDU3NSAxMC4zNDMxNDU4LDIgMTIsMiBaIE0xMiw0IEMxMS40NDc3MTUzLDQgMTEsNC40NDc3MTUyNSAxMSw1IEMxMSw1LjU1MjI4NDc1IDExLjQ0NzcxNTMsNiAxMiw2IEMxMi41NTIyODQ3LDYgMTMsNS41NTIyODQ3NSAxMyw1IEMxMyw0LjQ0NzcxNTI1IDEyLjU1MjI4NDcsNCAxMiw0IFonIH0pCiAgICAgICAgICAgICAgICBzdmcuYXBwZW5kKHN2Z1BhdGgpIDsgcmV0dXJuIHN2ZwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgYXJyb3dEb3duUmlnaHQ6IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7CiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE4LCBoZWlnaHQ6IDE4LCB2aWV3Qm94OiAnMCAwIDI0IDI0JywKICAgICAgICAgICAgICAgICAgICBmaWxsOiAnY3VycmVudENvbG9yJywgc3R5bGU6ICd0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpJyB9KQogICAgICAgICAgICAgICAgY29uc3Qgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsKICAgICAgICAgICAgICAgICAgICBkOiAnTTE2IDEwSDYuODNMOSA3LjgzbDEuNDEtMS40MUw5IDVsLTYgNiA2IDYgMS40MS0xLjQxTDkgMTQuMTcgNi44MyAxMkgxNmMxLjY1IDAgMyAxLjM1IDMgM3Y0aDJ2LTRjMC0yLjc2LTIuMjQtNS01LTV6JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGFycm93c0N5Y2xlOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgewogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMywgaGVpZ2h0OiAxMywgdmlld0JveDogJzE5NyAtOTI0IDU3MyA4OTEnLCBzdHlsZTogJ3RyYW5zZm9ybTogcm90YXRlKDE0ZGVnKScgfSkKICAgICAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGggPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgIGQ6ICdNMjA0LTMxOHEtMjItMzgtMzMtNzh0LTExLTgycTAtMTM0IDkzLTIyOHQyMjctOTRoN2wtNjQtNjQgNTYtNTYgMTYwIDE2MC0xNjAgMTYwLTU2LTU2IDY0LTY0aC03cS0xMDAgMC0xNzAgNzAuNVQyNDAtNDc4cTAgMjYgNiA1MXQxOCA0OWwtNjAgNjBaTTQ4MS00MCAzMjEtMjAwbDE2MC0xNjAgNTYgNTYtNjQgNjRoN3ExMDAgMCAxNzAtNzAuNVQ3MjAtNDgycTAtMjYtNi01MXQtMTgtNDlsNjAtNjBxMjIgMzggMzMgNzh0MTEgODJxMCAxMzQtOTMgMjI4dC0yMjcgOTRoLTdsNjQgNjQtNTYgNTZaJyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGFycm93c0RpYWdvbmFsOiB7CiAgICAgICAgICAgIGlud2FyZFNWR3BhdGgoKSB7IHJldHVybiBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJ25vbmUnLAogICAgICAgICAgICAgICAgZDogJ001IDFoMnY2SDFWNWgyLjU5TDAgMS40MSAxLjQxIDAgNSAzLjU5em03LjQxIDEwSDE1VjlIOXY2aDJ2LTIuNTlMMTQuNTkgMTYgMTYgMTQuNTl6JwogICAgICAgICAgICB9KX0sCgogICAgICAgICAgICBvdXR3YXJkU1ZHcGF0aCgpIHsgcmV0dXJuIGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsCiAgICAgICAgICAgICAgICBkOiAnTTggNi41OUw2LjU5IDggMyA0LjQxVjdIMVYxaDZ2Mkg0LjQxek0xMyA5djIuNTlMOS40MSA4IDggOS40MSAxMS41OSAxM0g5djJoNlY5eicKICAgICAgICAgICAgfSl9LAoKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7CiAgICAgICAgICAgICAgICAgICAgaWQ6ICdhcnJvd3MtZGlhZ29uYWwtaWNvbicsIHdpZHRoOiAxNiwgaGVpZ2h0OiAxNiwgdmlld0JveDogJzAgMCAxNiAxNicgfSkKICAgICAgICAgICAgICAgIGljb25zLmFycm93c0RpYWdvbmFsLnVwZGF0ZShzdmcpIDsgcmV0dXJuIHN2ZwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgdXBkYXRlKC4uLnRhcmdldEljb25zKSB7CiAgICAgICAgICAgICAgICB0YXJnZXRJY29ucyA9IHRhcmdldEljb25zLmZsYXQoKSAvLyBmbGF0dGVuIGFycmF5IGFyZ3MgbmVzdGVkIGJ5IHNwcmVhZCBvcGVyYXRvcgogICAgICAgICAgICAgICAgaWYgKHRhcmdldEljb25zLmxlbmd0aCA9PSAwKSB0YXJnZXRJY29ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNhcnJvd3MtZGlhZ29uYWwtaWNvbicpCiAgICAgICAgICAgICAgICB0YXJnZXRJY29ucy5mb3JFYWNoKGljb24gPT4gewogICAgICAgICAgICAgICAgICAgIGljb24uZmlyc3RDaGlsZD8ucmVtb3ZlKCkgLy8gY2xlYXIgcHJldiBwYXRocwogICAgICAgICAgICAgICAgICAgIGljb24uYXBwZW5kKGljb25zLmFycm93c0RpYWdvbmFsW2NvbmZpZy5leHBhbmRlZCA/ICdpbndhcmRTVkdwYXRoJyA6ICdvdXR3YXJkU1ZHcGF0aCddKCkpCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgYXJyb3dzRG93bjogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE5LCBoZWlnaHQ6IDE5LCB2aWV3Qm94OiAnMCAwIDI0IDI0JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJ25vbmUnLCBkOiAnTTE4LDEzSDZhMSwxLDAsMCwxLDAtMkgxOGExLDEsMCwwLDEsMCwyWicgfSksCiAgICAgICAgICAgICAgICAgICAgZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICdub25lJywKICAgICAgICAgICAgICAgICAgICAgICAgZDogJ00xNC43MSwxOC4yOWExLDEsMCwwLDEsMCwxLjQybC0yLDJhMSwxLDAsMCwxLTEuNDIsMGwtMi0yYTEsMSwwLDAsMSwxLjQyLTEuNDJsLjI5LjNWMTZhMSwxLDAsMCwxLDIsMHYyLjU5bC4yOS0uM0ExLDEsMCwwLDEsMTQuNzEsMTguMjlaTTExLjI5LDguNzFhMSwxLDAsMCwwLDEuNDIsMGwyLTJhMSwxLDAsMSwwLTEuNDItMS40MmwtLjI5LjNWM2ExLDEsMCwwLDAtMiwwVjUuNTlsLS4yOS0uM0ExLDEsMCwwLDAsOS4yOSw2LjcxWicgfSkpCiAgICAgICAgICAgICAgICByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBhcnJvd3NUd2lzdGVkUmlnaHQ6IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IHdpZHRoOiAyMSwgaGVpZ2h0OiAyMSwgdmlld0JveDogJy0xIC0xIDMyIDMyJyB9KQogICAgICAgICAgICAgICAgY29uc3Qgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnJywKICAgICAgICAgICAgICAgICAgICBkOiAnTTIzLjcwNywxNi4yOTNMMjguNDE0LDIxbC00LjcwNyw0LjcwN2wtMS40MTQtMS40MTRMMjQuNTg2LDIySDIzYy0yLjM0NSwwLTQuNDk2LTEuNzAyLTYuNzAyLTMuNzUzYzAuNDk4LTAuNDU4LDAuOTg0LTAuOTIsMS40Ni0xLjM3NEMxOS42MjQsMTguNiwyMS4zOTMsMjAsMjMsMjBoMS41ODZsLTIuMjkzLTIuMjkzTDIzLjcwNywxNi4yOTN6TTIzLDExaDEuNTg2bC0yLjI5MywyLjI5M2wxLjQxNCwxLjQxNEwyOC40MTQsMTBsLTQuNzA3LTQuNzA3bC0xLjQxNCwxLjQxNEwyNC41ODYsOUgyM2MtMi43ODcsMC01LjI5OSwyLjM5Ny03Ljk1Nyw0LjkzNkMxMi40MzQsMTYuNDI1LDkuNzM2LDE5LDcsMTlINHYyaDNjMy41MzcsMCw2LjUyOS0yLjg1Niw5LjQyNC01LjYxOEMxOC43ODQsMTMuMTI5LDIxLjAxNSwxMSwyMywxMXpNMTEuODQzLDE0LjE4NmMwLjUtMC40NDksMC45OTUtMC45MTQsMS40ODEtMS4zNzdDMTEuMzY0LDExLjIwOCw5LjI5NywxMCw3LDEwSDR2MmgzQzguNjMyLDEyLDEwLjI1LDEyLjkxOSwxMS44NDMsMTQuMTg2eicgfSkKICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmQoc3ZnUGF0aCkgOyByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBhcnJvd1VwOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgewogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNiwgaGVpZ2h0OiAxNiwgdmlld0JveDogJzQgMiAxNiAxNicsICdzdHJva2Utd2lkdGgnOiAnMicsCiAgICAgICAgICAgICAgICAgICAgJ3N0cm9rZS1saW5lY2FwJzogJ3JvdW5kJywgJ3N0cm9rZS1saW5lam9pbic6ICdyb3VuZCcgfSkKICAgICAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGggPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7CiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiAnJywgZmlsbDogJ25vbmUnLCAnc3Ryb2tlLXdpZHRoJzogJzInLCBsaW5lY2FwOiAncm91bmQnLAogICAgICAgICAgICAgICAgICAgICdzdHJva2UtbGluZWpvaW4nOiAncm91bmQnLCBkOiAnTTcgMTFMMTIgNkwxNyAxMU0xMiAxOFY3JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGJ1ZzogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE2LCBoZWlnaHQ6IDE2LCB2aWV3Qm94OiAnMCAwIDE3IDE3JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7CiAgICAgICAgICAgICAgICAgICAgICAgIGQ6ICdNNyAwVjEuNjAwMDJDNy4zMjMxMSAxLjUzNDQzIDcuNjU3NTMgMS41IDggMS41QzguMzQyNDcgMS41IDguNjc2ODkgMS41MzQ0MyA5IDEuNjAwMDJWMEgxMVYyLjQ5OTYzQzExLjgyNjUgMy4xMjA0MSAxMi40NTQzIDMuOTkxMzQgMTIuNzcxMSA1SDMuMjI4OUMzLjU0NTcgMy45OTEzNCA0LjE3MzU0IDMuMTIwNDEgNSAyLjQ5OTYzVjBIN1onIH0pLAogICAgICAgICAgICAgICAgICAgIGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsKICAgICAgICAgICAgICAgICAgICAgICAgZDogJ00wIDdWOUgzVjEwLjQ5NTdMMC4yMjUyNzkgMTEuMjg4NUwwLjc3NDcyMSAxMy4yMTE1TDMuMjMxODkgMTIuNTA5NUMzLjg3MTk0IDE0LjUzMzEgNS43NjQ2NyAxNiA4IDE2QzEwLjIzNTMgMTYgMTIuMTI4MSAxNC41MzMxIDEyLjc2ODEgMTIuNTA5NUwxNS4yMjUzIDEzLjIxMTVMMTUuNzc0NyAxMS4yODg1TDEzIDEwLjQ5NTdWOUgxNlY3SDlWMTJIN1Y3SDBaJyB9KSkKICAgICAgICAgICAgICAgIHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGNhcmV0c0lud2FyZDogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE3LCBoZWlnaHQ6IDE3LCB2aWV3Qm94OiAnMCAwIDI0IDI0JyB9KQogICAgICAgICAgICAgICAgY29uc3Qgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnJywKICAgICAgICAgICAgICAgICAgICBkOiAnTTExLjI5LDkuNzFhMSwxLDAsMCwwLDEuNDIsMGw1LTVhMSwxLDAsMSwwLTEuNDItMS40MkwxMiw3LjU5LDcuNzEsMy4yOUExLDEsMCwwLDAsNi4yOSw0LjcxWm0xLjQyLDQuNThhMSwxLDAsMCwwLTEuNDIsMGwtNSw1YTEsMSwwLDAsMCwxLjQyLDEuNDJMMTIsMTYuNDFsNC4yOSw0LjNhMSwxLDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQyWicgfSkKICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmQoc3ZnUGF0aCkgOyByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBjaGVja21hcms6IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7CiAgICAgICAgICAgICAgICAgICAgaWQ6IGAke2FwcC5jc3NQcmVmaXh9LWNoZWNrbWFyay1pY29uYCwgd2lkdGg6IDEwLCBoZWlnaHQ6IDEwLCB2aWV3Qm94OiAnMCAwIDIwIDIwJyB9KQogICAgICAgICAgICAgICAgY29uc3Qgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsIGQ6ICdNMCAxMWwyLTIgNSA1TDE4IDNsMiAyTDcgMTh6JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGNoZWNrbWFya0RvdWJsZTogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE3LCBoZWlnaHQ6IDE3LCB2aWV3Qm94OiAnMCAwIDI0IDI0JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgICAgICBkOiAnTTIzLjIyOCA4LjAxNzg1QzIzLjYxODYgNy42Mjc0MSAyMy42MTg3IDYuOTk0MjQgMjMuMjI4MyA2LjYwMzYzTDIyLjUyMTMgNS44OTYzOEMyMi4xMzA5IDUuNTA1NzcgMjEuNDk3NyA1LjUwNTYzIDIxLjEwNzEgNS44OTYwN0wxMC4wODYyIDE2LjkxMjJDOS42OTU2MyAxNy4zMDI3IDkuNjk1NSAxNy45MzU5IDEwLjA4NTkgMTguMzI2NUwxMC43OTI5IDE5LjAzMzdDMTEuMTgzMyAxOS40MjQzIDExLjgxNjUgMTkuNDI0NSAxMi4yMDcxIDE5LjAzNEwyMy4yMjggOC4wMTc4NVonIH0pLAogICAgICAgICAgICAgICAgICAgIGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsCiAgICAgICAgICAgICAgICAgICAgICAgIGQ6ICdNMTcuMjI4NSA4LjAxNzc3QzE3LjYxOSA3LjYyNzI0IDE3LjYxOSA2Ljk5NDA4IDE3LjIyODUgNi42MDM1NkwxNi41MjE0IDUuODk2NDVDMTYuMTMwOSA1LjUwNTkyIDE1LjQ5NzcgNS41MDU5MiAxNS4xMDcyIDUuODk2NDVMNS41NDU0MiAxNS40NTgyTDIuNzY3NzMgMTIuNjgwNUMyLjM3NzIxIDEyLjI5IDEuNzQ0MDQgMTIuMjkgMS4zNTM1MiAxMi42ODA1TDAuNjQ2NDA5IDEzLjM4NzZDMC4yNTU4ODQgMTMuNzc4MiAwLjI1NTg4NSAxNC40MTEzIDAuNjQ2NDA5IDE0LjgwMTlMNC44MzgzMSAxOC45OTM4QzUuMjI4ODMgMTkuMzg0MyA1Ljg2MiAxOS4zODQzIDYuMjUyNTIgMTguOTkzOEwxNy4yMjg1IDguMDE3NzdaJyB9KQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgcmV0dXJuIHN2ZwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgY2hldnJvbkRvd246IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCwgdmlld0JveDogJzAgMCAxNiAxNicgfSksCiAgICAgICAgICAgICAgICAgICAgICBzdmdQYXRoID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICdub25lJywgZDogJ00xIDVsNyA0LjYxTDE1IDV2Mi4zOUw4IDEyIDEgNy4zOXonIH0pCiAgICAgICAgICAgICAgICBzdmcuYXBwZW5kKHN2Z1BhdGgpIDsgcmV0dXJuIHN2ZwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgY2hldnJvblVwOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgeyB3aWR0aDogMjAsIGhlaWdodDogMjAsIHZpZXdCb3g6ICcwIDAgMTYgMTYnIH0pLAogICAgICAgICAgICAgICAgICAgICAgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsIGQ6ICdNMTUgMTFMOCA2LjM5IDEgMTFWOC42MUw4IDRsNyA0LjYxeicgfSkKICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmQoc3ZnUGF0aCkgOyByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBjb2d3aGVlbDogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE3LCBoZWlnaHQ6IDE3LCB2aWV3Qm94OiAnMCAwIDI0IDI0JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7ICdmaWxsLXJ1bGUnOiAnZXZlbm9kZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIGQ6ICdNMTIsMTUuNUEzLjUsMy41IDAgMCwxIDguNSwxMkEzLjUsMy41IDAgMCwxIDEyLDguNUEzLjUsMy41IDAgMCwxIDE1LjUsMTJBMy41LDMuNSAwIDAsMSAxMiwxNS41TTE5LjQzLDEyLjk3QzE5LjQ3LDEyLjY1IDE5LjUsMTIuMzMgMTkuNSwxMkMxOS41LDExLjY3IDE5LjQ3LDExLjM0IDE5LjQzLDExTDIxLjU0LDkuMzdDMjEuNzMsOS4yMiAyMS43OCw4Ljk1IDIxLjY2LDguNzNMMTkuNjYsNS4yN0MxOS41NCw1LjA1IDE5LjI3LDQuOTYgMTkuMDUsNS4wNUwxNi41Niw2LjA1QzE2LjA0LDUuNjYgMTUuNSw1LjMyIDE0Ljg3LDUuMDdMMTQuNSwyLjQyQzE0LjQ2LDIuMTggMTQuMjUsMiAxNCwySDEwQzkuNzUsMiA5LjU0LDIuMTggOS41LDIuNDJMOS4xMyw1LjA3QzguNSw1LjMyIDcuOTYsNS42NiA3LjQ0LDYuMDVMNC45NSw1LjA1QzQuNzMsNC45NiA0LjQ2LDUuMDUgNC4zNCw1LjI3TDIuMzQsOC43M0MyLjIxLDguOTUgMi4yNyw5LjIyIDIuNDYsOS4zN0w0LjU3LDExQzQuNTMsMTEuMzQgNC41LDExLjY3IDQuNSwxMkM0LjUsMTIuMzMgNC41MywxMi42NSA0LjU3LDEyLjk3TDIuNDYsMTQuNjNDMi4yNywxNC43OCAyLjIxLDE1LjA1IDIuMzQsMTUuMjdMNC4zNCwxOC43M0M0LjQ2LDE4Ljk1IDQuNzMsMTkuMDMgNC45NSwxOC45NUw3LjQ0LDE3Ljk0QzcuOTYsMTguMzQgOC41LDE4LjY4IDkuMTMsMTguOTNMOS41LDIxLjU4QzkuNTQsMjEuODIgOS43NSwyMiAxMCwyMkgxNEMxNC4yNSwyMiAxNC40NiwyMS44MiAxNC41LDIxLjU4TDE0Ljg3LDE4LjkzQzE1LjUsMTguNjcgMTYuMDQsMTguMzQgMTYuNTYsMTcuOTRMMTkuMDUsMTguOTVDMTkuMjcsMTkuMDMgMTkuNTQsMTguOTUgMTkuNjYsMTguNzNMMjEuNjYsMTUuMjdDMjEuNzgsMTUuMDUgMjEuNzMsMTQuNzggMjEuNTQsMTQuNjNMMTkuNDMsMTIuOTdaJyB9KSkKICAgICAgICAgICAgICAgIHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGNvcHk6IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IHdpZHRoOiAxOCwgaGVpZ2h0OiAxOCwgdmlld0JveDogJzAgMCAxMDI0IDEwMjQnIH0pCiAgICAgICAgICAgICAgICBzdmcuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgIGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsCiAgICAgICAgICAgICAgICAgICAgICAgIGQ6ICdNNzY4IDgzMmExMjggMTI4IDAgMCAxLTEyOCAxMjhIMTkyQTEyOCAxMjggMCAwIDEgNjQgODMyVjM4NGExMjggMTI4IDAgMCAxIDEyOC0xMjh2NjRhNjQgNjQgMCAwIDAtNjQgNjR2NDQ4YTY0IDY0IDAgMCAwIDY0IDY0aDQ0OGE2NCA2NCAwIDAgMCA2NC02NGg2NHonIH0pLAogICAgICAgICAgICAgICAgICAgIGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsCiAgICAgICAgICAgICAgICAgICAgICAgIGQ6ICdNMzg0IDEyOGE2NCA2NCAwIDAgMC02NCA2NHY0NDhhNjQgNjQgMCAwIDAgNjQgNjRoNDQ4YTY0IDY0IDAgMCAwIDY0LTY0VjE5MmE2NCA2NCAwIDAgMC02NC02NEgzODR6bTAtNjRoNDQ4YTEyOCAxMjggMCAwIDEgMTI4IDEyOHY0NDhhMTI4IDEyOCAwIDAgMS0xMjggMTI4SDM4NGExMjggMTI4IDAgMCAxLTEyOC0xMjhWMTkyQTEyOCAxMjggMCAwIDEgMzg0IDY0eicgfSkpCiAgICAgICAgICAgICAgICByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBmb250U2l6ZTogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE3LCBoZWlnaHQ6IDE3LCB2aWV3Qm94OiAnMCAwIDUxMiA1MTInIH0pCiAgICAgICAgICAgICAgICBzdmcuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgIGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsCiAgICAgICAgICAgICAgICAgICAgICAgIGQ6ICdNMjM0Ljk5NyA0NDguMTk5aC01NS4zNzNhNi43MzQgNi43MzQgMCAwIDEtNi41NTYtNS4xOTRsLTExLjQzNS00OC42ODJhNi43MzQgNi43MzQgMCAwIDAtNi41NTYtNS4xOTRIODYuMDYzYTYuNzM0IDYuNzM0IDAgMCAwLTYuNTU2IDUuMTk0bC0xMS40MzUgNDguNjgyYTYuNzM0IDYuNzM0IDAgMCAxLTYuNTU2IDUuMTk0SDcuNzRjLTQuNTE5IDAtNy43NTUtNC4zNjMtNi40NDUtOC42ODdsNzkuMTczLTI2MS4yNjlhNi43MzQgNi43MzQgMCAwIDEgNi40NDUtNC43ODFoNjkuMjljMi45NyAwIDUuNTkgMS45NDYgNi40NDcgNC43OWw3OC43OTUgMjYxLjI2OWMxLjMwMyA0LjMyMi0xLjkzMyA4LjY3OC02LjQ0OCA4LjY3OHptLTg4LjA0NC0xMTQuOTNsLTE5Ljk4My04NC4zNzFjLTEuNjM5LTYuOTIxLTExLjQ5My02LjkwNS0xMy4xMTEuMDJsLTE5LjcwNSA4NC4zNzFjLS45ODcgNC4yMjQgMi4yMiA4LjI2NiA2LjU1OCA4LjI2NkgxNDAuNGM0LjM0NiAwIDcuNTU1LTQuMDU2IDYuNTUzLTguMjg2eicgfSksCiAgICAgICAgICAgICAgICAgICAgZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICdub25lJywKICAgICAgICAgICAgICAgICAgICAgICAgZDogJ001MDIuNTcyIDQ0OC4xOTloLTc3LjQ3NWE5LjQyMyA5LjQyMyAwIDAgMS05LjE3My03LjI2OGwtMTYtNjguMTE0YTkuNDIzIDkuNDIzIDAgMCAwLTkuMTczLTcuMjY4SDI5NC4xOWE5LjQyMyA5LjQyMyAwIDAgMC05LjE3MyA3LjI2OGwtMTYgNjguMTE0YTkuNDIzIDkuNDIzIDAgMCAxLTkuMTczIDcuMjY4aC03NS4yNDFjLTYuMzIyIDAtMTAuODUxLTYuMTA0LTkuMDE3LTEyLjE1NUwyODYuMzYyIDcwLjQ5MWE5LjQyMiA5LjQyMiAwIDAgMSA5LjAxNy02LjY5aDk2Ljk0N2E5LjQyMiA5LjQyMiAwIDAgMSA5LjAyMSA2LjcwMmwxMTAuMjQ1IDM2NS41NTRjMS44MjUgNi4wNDctMi43MDMgMTIuMTQyLTkuMDIgMTIuMTQyek0zNzkuMzg1IDI4Ny4zOTVsLTI3Ljk1OS0xMTguMDQ3Yy0yLjI5My05LjY4My0xNi4wODEtOS42NjEtMTguMzQ0LjAyOWwtMjcuNTcgMTE4LjA0N2MtMS4zOCA1LjkxIDMuMTA2IDExLjU2NSA5LjE3NSAxMS41NjVoNTUuNTI5YzYuMDgyLS4wMDEgMTAuNTcxLTUuNjc2IDkuMTY5LTExLjU5NHonIH0pCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBnb29nbGVHUFQ6IHsKICAgICAgICAgICAgY3JlYXRlKGNvbG9yID0gJycpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKSA7IGljb24uaWQgPSBgJHthcHAuY3NzUHJlZml4fS1pY29uYAogICAgICAgICAgICAgICAgaWNvbnMuZ29vZ2xlR1BULnVwZGF0ZShpY29uLCBjb2xvcikKICAgICAgICAgICAgICAgIHJldHVybiBpY29uCiAgICAgICAgICAgIH0sCgogICAgICAgICAgICB1cGRhdGUodGFyZ2V0SWNvbnMgPSBbXSwgY29sb3IgPSAnJykgewogICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHRhcmdldEljb25zKSkgdGFyZ2V0SWNvbnMgPSBbdGFyZ2V0SWNvbnNdCiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0SWNvbnMubGVuZ3RoID09IDApIHRhcmdldEljb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgIyR7YXBwLmNzc1ByZWZpeH0taWNvbmApCiAgICAgICAgICAgICAgICB0YXJnZXRJY29ucy5mb3JFYWNoKGljb24gPT4gewogICAgICAgICAgICAgICAgICAgIGljb24uc3JjID0gR01fZ2V0UmVzb3VyY2VUZXh0KGBnZ3B0SWNvbiR7KCBjb2xvci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNvbG9yLnNsaWNlKDEpICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICggZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ1doaXRlJyA6ICdCbGFjaycgKX1gKQogICAgICAgICAgICAgICAgICAgIGljb24uc3R5bGUuZmlsdGVyID0gaWNvbi5zdHlsZS53ZWJraXRGaWx0ZXIgPSAoCiAgICAgICAgICAgICAgICAgICAgICAgICdkcm9wLXNoYWRvdyg1cHggNXB4IDE1cHggcmdiYSgwLDAsMCwwLjMpKScgLy8gZHJvcCBzaGFkb3cKICAgICAgICAgICAgICAgICAgICAgICsgJ2Ryb3Atc2hhZG93KDJweCAxcHggMCAjZmY1YjViKSBkcm9wLXNoYWRvdygtMXB4IC0xcHggMCByZ2IoNzMsMjE1LDczLDAuNzUpKScgLy8gUkdCIHNoaWZ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoIGVudi51aS5hcHAuc2NoZW1lID09ICdsaWdodCcgPyAnZHJvcC1zaGFkb3cod2hpdGUgMXB4IDFweCknIDogJycgKSkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBsYW5ndWFnZUNoYXJzOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgeyB3aWR0aDogMTUsIGhlaWdodDogMTUsIHZpZXdCb3g6ICcwIC05NjAgOTYwIDk2MCcgfSkKICAgICAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGggPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgIGQ6ICdtNDU5LTQ4IDE4OC01MjZoMTI1TDk2MC00OEg4NDdsLTM1LTEwMEg2MDNMNTY4LTQ4SDQ1OVpNMTMwLTE2OWwtNzUtNzUgMTk2LTE5NnEtNDItNDUtNzgtMTAxdC01NS0xMDVoMTE3cTE3IDMyIDQwLjUgNjcuNVQzMjUtNTE0cTM1LTM3IDcwLTkzdDY0LTExOUgwdi0xMDZoMjkwdi04MGgxMDZ2ODBoMjkwdjEwNkg1NzJxLTIzIDc0LTcwIDE1MlQzOTktNDM4bDgyIDg1LTM5IDExMS0xMTgtMTIxLTE5NCAxOTRabTUwOC03OWgxMzlsLTY5LTE5Ny03MCAxOTdaJyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIG1vb246IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IHdpZHRoOiAxNywgaGVpZ2h0OiAxNywgdmlld0JveDogJzAgMCAyNCAyNCcgfSkKICAgICAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGggPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7CiAgICAgICAgICAgICAgICAgICAgZmlsbDogJ25vbmUnLCBzdHJva2U6ICcnLCAnc3Ryb2tlLXdpZHRoJzogMiwgJ3N0cm9rZS1saW5lY2FwJzogJ3JvdW5kJywgJ3N0cm9rZS1saW5lam9pbic6ICdyb3VuZCcsCiAgICAgICAgICAgICAgICAgICAgZDogJ00zLjMyMDMxIDExLjY4MzVDMy4zMjAzMSAxNi42NTQxIDcuMzQ5NzUgMjAuNjgzNSAxMi4zMjAzIDIwLjY4MzVDMTYuMTA3NSAyMC42ODM1IDE5LjM0ODMgMTguMzQ0MyAyMC42NzY4IDE1LjAzMkMxOS42NDAyIDE1LjQ0ODYgMTguNTA1OSAxNS42ODM0IDE3LjMyMDMgMTUuNjgzNEMxMi4zNDk3IDE1LjY4MzQgOC4zMjAzMSAxMS42NTQgOC4zMjAzMSA2LjY4MzQyQzguMzIwMzEgNS41MDMzOCA4LjU1MTY1IDQuMzYyNTkgOC45NjQ1MyAzLjMyOTk2QzUuNjU2MDUgNC42NjAyOCAzLjMyMDMxIDcuODk5MTIgMy4zMjAzMSAxMS42ODM1WicgfSkKICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmQoc3ZnUGF0aCkgOyByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBwaW46IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IGlkOiAncGluLWljb24nLCB3aWR0aDogMTcsIGhlaWdodDogMTcsIHZpZXdCb3g6ICcwIDAgMTYgMTYnIH0pCiAgICAgICAgICAgICAgICBjb25zdCBzdmdQYXRoID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICcnLAogICAgICAgICAgICAgICAgICAgIGQ6ICdNOS44MjguNzIyYS41LjUgMCAwIDEgLjM1NC4xNDZsNC45NSA0Ljk1YS41LjUgMCAwIDEgMCAuNzA3Yy0uNDguNDgtMS4wNzIuNTg4LTEuNTAzLjU4OC0uMTc3IDAtLjMzNS0uMDE4LS40Ni0uMDM5bC0zLjEzNCAzLjEzNGE1LjkyNyA1LjkyNyAwIDAgMSAuMTYgMS4wMTNjLjA0Ni43MDItLjAzMiAxLjY4Ny0uNzIgMi4zNzVhLjUuNSAwIDAgMS0uNzA3IDBsLTIuODI5LTIuODI4LTMuMTgyIDMuMTgyYy0uMTk1LjE5NS0xLjIxOS45MDItMS40MTQuNzA3LS4xOTUtLjE5NS41MTItMS4yMi43MDctMS40MTRsMy4xODItMy4xODItMi44MjgtMi44MjlhLjUuNSAwIDAgMSAwLS43MDdjLjY4OC0uNjg4IDEuNjczLS43NjcgMi4zNzUtLjcyYTUuOTIyIDUuOTIyIDAgMCAxIDEuMDEzLjE2bDMuMTM0LTMuMTMzYTIuNzcyIDIuNzcyIDAgMCAxLS4wNC0uNDYxYzAtLjQzLjEwOC0xLjAyMi41ODktMS41MDNhLjUuNSAwIDAgMSAuMzUzLS4xNDZ6JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHF1ZXN0aW9uTWFyazogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE4LCBoZWlnaHQ6IDE4LCB2aWV3Qm94OiAnMCAtOTYwIDk2MCA5NjAnIH0pCiAgICAgICAgICAgICAgICBjb25zdCBzdmdQYXRoID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICdub25lJywKICAgICAgICAgICAgICAgICAgICBkOiAnTTQyOC0zODNxMC03MSAxNi0xMTF0NjMtNzRxNDctMzUgNTguNS01NS41VDU3Ny02ODNxMC0zNS0yNS01Ny41VDQ4OC03NjNxLTI2IDAtNjEgMTh0LTUwIDcwbC0xMTQtNDdxMjctODIgOTAuNS0xMjIuNVQ0ODgtODg1cTkzIDAgMTUxLjUgNTkuNVQ2OTgtNjgycTAgNTUtMTcgOTV0LTcwIDgzcS0zNyAyOS00OC41IDU1VDU1MC0zODNINDI4Wm02MCAyNjVxLTQxIDAtNjkuNS0yOC41VDM5MC0yMTZxMC00MSAyOC41LTY5LjVUNDg4LTMxNHE0MSAwIDY5LjUgMjguNVQ1ODYtMjE2cTAgNDEtMjguNSA2OS41VDQ4OC0xMThaJyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHF1ZXN0aW9uTWFya0NpcmNsZTogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE3LCBoZWlnaHQ6IDE3LCB2aWV3Qm94OiAnMCAwIDU2LjY5MyA1Ni42OTMnIH0pCiAgICAgICAgICAgICAgICBjb25zdCBzdmdQYXRoID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICdub25lJywKICAgICAgICAgICAgICAgICAgICBkOiAnTTI4Ljc2NSw0Ljc3NGMtMTMuNTYyLDAtMjQuNTk0LDExLjAzMS0yNC41OTQsMjQuNTk0YzAsMTMuNTYxLDExLjAzMSwyNC41OTQsMjQuNTk0LDI0LjU5NCAgYzEzLjU2MSwwLDI0LjU5NC0xMS4wMzMsMjQuNTk0LTI0LjU5NEM1My4zNTgsMTUuODA1LDQyLjMyNSw0Ljc3NCwyOC43NjUsNC43NzR6IE0zMS43NjUsNDIuOTEzYzAsMC42OTktMC4zMDIsMS4zMzQtMC44OTYsMS44ODUgIGMtMC41ODcsMC41NDUtMS4zNzMsMC44Mi0yLjMzNywwLjgyYy0wLjk5MywwLTEuODEyLTAuMjczLTIuNDMxLTAuODE0Yy0wLjYzNC0wLjU1MS0wLjk1NC0xLjE4OC0wLjk1NC0xLjg5MXYtMS4yMDkgIGMwLTAuNzAzLDAuMzIyLTEuMzQsMC45NTQtMS44OTFjMC42MTktMC41MzksMS40MzgtMC44MTIsMi40MzEtMC44MTJjMC45NjQsMCwxLjc1LDAuMjc3LDIuMzM3LDAuODIgIGMwLjU5NCwwLjU1MSwwLjg5NiwxLjE4NiwwLjg5NiwxLjg4M1Y0Mi45MTN6IE0zOC40MjcsMjQuNzk5Yy0wLjM4OSwwLjc2Mi0wLjg4NiwxLjQzMi0xLjQ3OCwxLjk5NCAgYy0wLjU4MSwwLjU0OS0xLjIxNSwxLjA0NC0xLjg4NywxLjQ3M2MtMC42NDMsMC40MDgtMS4yNDgsMC44NTItMS43OTgsMS4zMTVjLTAuNTM5LDAuNDU1LTAuOTksMC45NjMtMS4zNDMsMS41MTIgIGMtMC4zMzYsMC41MjMtMC41MDcsMS4xNzgtMC41MDcsMS45NDN2MC43NmMwLDAuNTA0LTAuMjQ3LDEuMDMxLTAuNzM1LDEuNTcyYy0wLjQ5NCwwLjU0NS0xLjE1NSwwLjgzOC0xLjk2MSwwLjg3MWwtMC4xNjcsMC4wMDQgIGMtMC44MTgsMC0xLjQ4NC0wLjIzNC0xLjk4LTAuNjk5Yy0wLjUzMi0wLjQ5Ni0wLjgwMS0xLjA1NS0wLjgwMS0xLjY1OGMwLTEuNDEsMC4xOTYtMi42MTEsMC41ODQtMy41NzIgIGMwLjM4NS0wLjk1MywwLjg2LTEuNzgsMS40MTYtMi40NTljMC41NTQtMC42NzgsMS4xNzgtMS4yNywxLjg1NC0xLjc2MmMwLjY0Ni0wLjQ2NywxLjI0Mi0wLjkzLDEuNzczLTEuMzcxICBjMC41MTMtMC40MjgsMC45NTQtMC44ODUsMS4zMTItMS4zNTRjMC4zMjgtMC40MzUsMC40ODktMC45NjIsMC40ODktMS42MDhjMC0xLjA2Ni0wLjI4OS0xLjgzLTAuODg3LTIuMzM0ICBjLTAuNjA0LTAuNTEyLTEuNDQyLTAuNzcxLTIuNDg3LTAuNzcxYy0wLjY5NiwwLTEuMjk0LDAuMDQzLTEuNzc2LDAuMTI5Yy0wLjQ3MSwwLjA4My0wLjkwNSwwLjIyMy0xLjI5NCwwLjQxNyAgYy0wLjM4NCwwLjE5LTAuNzQ1LDAuNDU2LTEuMDc1LDAuNzg2Yy0wLjM0NiwwLjM0Ni0wLjcxLDAuNzgzLTEuMDg0LDEuMzAxYy0wLjMzNiwwLjQ3My0wLjgzNSwwLjgzLTEuNDgsMS4wNjIgIGMtMC42NjIsMC4yMzktMS4zOTcsMC4xNzUtMi4xNjQtMC4xOTJjLTAuNjg5LTAuMzQ0LTEuMTEtMC43OTMtMS4yNTQtMS4zMzhjLTAuMTM1LTAuNS0wLjEzNS0xLjAyNS0wLjAwMi0xLjU1NyAgYzAuMDk4LTAuNDUzLDAuMzY5LTEuMDEyLDAuODMtMS42OTVjMC40NTEtMC42NywxLjA5NC0xLjMyMSwxLjkxMi0xLjkzOGMwLjgxNC0wLjYxNCwxLjg0Ny0xLjE1MSwzLjA2NC0xLjU5MyAgYzEuMjI3LTAuNDQzLDIuNjk1LTAuNjY4LDQuMzY3LTAuNjY4YzEuNjQ4LDAsMy4wNzgsMC4yNDksNC4yNDgsMC43NDJjMS4xNzYsMC40OTYsMi4xMzcsMS4xNTcsMi44NTQsMS45NjcgIGMwLjcxNSwwLjgwOSwxLjI0MiwxLjczOCwxLjU2OCwyLjc2MmMwLjMyMiwxLjAxNCwwLjQ4NiwyLjA3MiwwLjQ4NiwzLjE0NkMzOS4wMjQsMjMuMDc1LDM4LjgyMywyNC4wMjQsMzguNDI3LDI0Ljc5OXonIH0pCiAgICAgICAgICAgICAgICBzdmcuYXBwZW5kKHN2Z1BhdGgpIDsgcmV0dXJuIHN2ZwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgc2NoZW1lOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgeyB3aWR0aDogMTUsIGhlaWdodDogMTUsIHZpZXdCb3g6ICcwIC05NjAgOTYwIDk2MCcgfSkKICAgICAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGggPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgIGQ6ICdNNDc5LjkyLTM0cS05MS41NiAwLTE3My40LTM1LjAydC0xNDIuMTYtOTUuMzRxLTYwLjMyLTYwLjMyLTk1LjM0LTE0Mi4yNFEzNC0zODguNTMgMzQtNDgwLjA4cTAtOTEuNTYgMzUuMDItMTczLjR0OTUuMzQtMTQyLjE2cTYwLjMyLTYwLjMyIDE0Mi4yNC05NS4zNFEzODguNTMtOTI2IDQ4MC4wOC05MjZxOTEuNTYgMCAxNzMuNCAzNS4wMnQxNDIuMTYgOTUuMzRxNjAuMzIgNjAuMzIgOTUuMzQgMTQyLjI0UTkyNi01NzEuNDcgOTI2LTQ3OS45MnEwIDkxLjU2LTM1LjAyIDE3My40dC05NS4zNCAxNDIuMTZxLTYwLjMyIDYwLjMyLTE0Mi4yNCA5NS4zNFE1NzEuNDctMzQgNDc5LjkyLTM0Wk01MzAtMTc0cTExMy0xOSAxODYuNS0xMDIuNzhUNzkwLTQ4MHEwLTExNi43MS03My41LTIwMS4zNVE2NDMtNzY2IDUzMC03ODV2NjExWicgfSkKICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmQoc3ZnUGF0aCkgOyByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBzaWRlYmFyOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgeyB3aWR0aDogMTUsIGhlaWdodDogMTUsIHZpZXdCb3g6ICcwIC05NzUgOTAwIDEwMDAnIH0pCiAgICAgICAgICAgICAgICBjb25zdCBzdmdQYXRoID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICdub25lJywKICAgICAgICAgICAgICAgICAgICBkOiAnTTgwMC0xNjBxMzMgMCA1Ni41LTIzLjVUODgwLTI0MHYtNDgwcTAtMzMtMjMuNS01Ni41VDgwMC04MDBIMTYwcS0zMyAwLTU2LjUgMjMuNVQ4MC03MjB2NDgwcTAgMzMgMjMuNSA1Ni41VDE2MC0xNjBoNjQwWm0tMjQwLTgwSDE2MHYtNDgwaDQwMHY0ODBabTgwIDB2LTQ4MEg4MDB2NDgwSDY0MFptMTYwIDB2LTQ4MCA0ODBabS0xNjAgMGgtODAgODBabTAtNDgwaC04MCA4MFonIH0pCiAgICAgICAgICAgICAgICBzdmcuYXBwZW5kKHN2Z1BhdGgpIDsgcmV0dXJuIHN2ZwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgc2lnbmFsU3RyZWFtOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgeyB3aWR0aDogMTYsIGhlaWdodDogMTYsIHZpZXdCb3g6ICcwIDAgMzIgMzInIH0pCiAgICAgICAgICAgICAgICBjb25zdCBzdmdQYXRoID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICcnLCAnc3Ryb2tlLXdpZHRoJzogMC41LAogICAgICAgICAgICAgICAgICAgIGQ6ICdNMTYgMTEuNzVjLTIuMzQ3IDAtNC4yNSAxLjkwMy00LjI1IDQuMjVzMS45MDMgNC4yNSA0LjI1IDQuMjVjMi4zNDcgMCA0LjI1LTEuOTAzIDQuMjUtNC4yNXYwYy0wLjAwMy0yLjM0Ni0xLjkwNC00LjI0Ny00LjI1LTQuMjVoLTB6TTE2IDE3Ljc1Yy0wLjk2NiAwLTEuNzUtMC43ODQtMS43NS0xLjc1czAuNzg0LTEuNzUgMS43NS0xLjc1YzAuOTY2IDAgMS43NSAwLjc4NCAxLjc1IDEuNzV2MGMtMC4wMDEgMC45NjYtMC43ODQgMS43NDktMS43NSAxLjc1aC0wek0zLjI1IDE2YzAuMjExLTMuNDE2IDEuNjEtNi40NzEgMy43ODQtOC43ODlsLTAuMDA3IDAuMDA4YzAuMjIzLTAuMjI2IDAuMzYxLTAuNTM2IDAuMzYxLTAuODc5IDAtMC42OS0wLjU2LTEuMjUtMS4yNS0xLjI1LTAuMzQ0IDAtMC42NTUgMC4xMzktMC44ODEgMC4zNjNsMC0wYy0yLjYyOSAyLjc1Ny00LjMxIDYuNDM4LTQuNTA2IDEwLjUwOWwtMC4wMDEgMC4wMzhjMC4xOTggNC4xMDkgMS44NzkgNy43OSA0LjUxNCAxMC41NTNsLTAuMDA2LTAuMDA2YzAuMjI2IDAuMjI4IDAuNTQgMC4zNjkgMC44ODYgMC4zNjkgMC42OSAwIDEuMjQ5LTAuNTU5IDEuMjQ5LTEuMjQ5IDAtMC4zNDYtMC4xNDEtMC42NTktMC4zNjgtMC44ODVsLTAtMGMtMi4xNzMtMi4zMDctMy41NzMtNS4zNjMtMy43NzQtOC43NDNsLTAuMDAyLTAuMDM4ek05LjM2MyAxNmMwLjE0OS0yLjM0MiAxLjEwOS00LjQzNiAyLjYtNi4wMjZsLTAuMDA1IDAuMDA1YzAuMjI0LTAuMjI2IDAuMzYzLTAuNTM3IDAuMzYzLTAuODggMC0wLjY5LTAuNTYtMS4yNS0xLjI1LTEuMjUtMC4zNDUgMC0wLjY1NyAwLjEzOS0wLjg4MyAwLjM2NWwwLTBjLTEuOTQgMi4wMzUtMy4xNzkgNC43NTMtMy4zMjMgNy43NTlsLTAuMDAxIDAuMDI4YzAuMTQ1IDMuMDMyIDEuMzg0IDUuNzUgMy4zMjkgNy43OWwtMC4wMDUtMC4wMDVjMC4yMjYgMC4yMjggMC41NCAwLjM2OSAwLjg4NiAwLjM2OSAwLjY5IDAgMS4yNDktMC41NTkgMS4yNDktMS4yNDkgMC0wLjM0Ni0wLjE0MS0wLjY1OS0wLjM2OC0wLjg4NWwtMC0wYy0xLjQ5LTEuNTgxLTIuNDUxLTMuNjc2LTIuNTkxLTUuOTkzbC0wLjAwMS0wLjAyN3pNMjYuNzQ0IDUuNDUzYy0wLjIyNi0wLjIyNy0wLjU0LTAuMzY4LTAuODg2LTAuMzY4LTAuNjkxIDAtMS4yNTEgMC41Ni0xLjI1MSAxLjI1MSAwIDAuMzQ1IDAuMTM5IDAuNjU3IDAuMzY1IDAuODgzbC0wLTBjMi4xNjggMi4zMSAzLjU2NyA1LjM2NSAzLjc3NSA4Ljc0MWwwLjAwMiAwLjA0MGMtMC4yMSAzLjQxNy0xLjYwOSA2LjQ3MS0zLjc4NCA4Ljc4OWwwLjAwNy0wLjAwOGMtMC4yMjQgMC4yMjYtMC4zNjIgMC41MzctMC4zNjIgMC44OCAwIDAuNjkxIDAuNTYgMS4yNTEgMS4yNTEgMS4yNTEgMC4zNDUgMCAwLjY1Ny0wLjE0IDAuODgzLTAuMzY1bC0wIDBjMi42MjgtMi43NTcgNC4zMDgtNi40MzkgNC41MDQtMTAuNTA5bDAuMDAxLTAuMDM4Yy0wLjE5OC00LjEwOC0xLjg3OC03Ljc5LTQuNTEyLTEwLjU1M2wwLjAwNiAwLjAwN3pNMjEuODExIDguMjE0Yy0wLjIyNi0wLjIyNC0wLjUzNy0wLjM2My0wLjg4MS0wLjM2My0wLjY5IDAtMS4yNSAwLjU2LTEuMjUgMS4yNSAwIDAuMzQzIDAuMTM4IDAuNjUzIDAuMzYxIDAuODc5bC0wLTBjMS40ODYgMS41ODUgMi40NDcgMy42NzggMi41OTQgNS45OTJsMC4wMDEgMC4wMjhjLTAuMTUxIDIuMzQzLTEuMTExIDQuNDM2LTIuNjAxIDYuMDI3bDAuMDA1LTAuMDA1Yy0wLjIyNCAwLjIyNi0wLjM2MiAwLjUzNy0wLjM2MiAwLjg4IDAgMC42OTEgMC41NiAxLjI1MSAxLjI1MSAxLjI1MSAwLjM0NSAwIDAuNjU3LTAuMTQgMC44ODMtMC4zNjVsLTAgMGMxLjkzOS0yLjAzNiAzLjE3OC00Ljc1NCAzLjMyMy03Ljc1OWwwLjAwMS0wLjAyOGMtMC4xNDUtMy4wMzMtMS4zODUtNS43NTEtMy4zMzEtNy43OTFsMC4wMDUgMC4wMDV6JyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHNsYXNoOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgeyB3aWR0aDogMTUsIGhlaWdodDogMTUsIHZpZXdCb3g6ICcwIDAgMTUgMTUnIH0pLAogICAgICAgICAgICAgICAgICAgICAgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnJywgZDogJ000LjEwODc2IDE0TDkuNDY1ODIgMUgxMC44MTc4TDUuNDYwNzQgMTRINC4xMDg3NlonIH0pCiAgICAgICAgICAgICAgICBzdmcuYXBwZW5kKHN2Z1BhdGgpIDsgcmV0dXJuIHN2ZwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgc3BhcmtsZXM6IHsKICAgICAgICAgICAgY3JlYXRlKHN0eWxlKSB7IC8vIHN0eWxlID0gKCAnZmcnID8gZmlsbGVkIGZyb250IHNwYXJrbGUgOiAnYmcnID8gZmlsbGVkIHJlYXIgc3BhcmtsZXMgKQogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IHdpZHRoOiAxOCwgaGVpZ2h0OiAxOCwgdmlld0JveDogJzAgMCA1MTIgNTEyJyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IC8vIGxhcmdlIGZyb250IHNwYXJrbGUKICAgICAgICAgICAgICAgICAgICBmaWxsOiBzdHlsZSA9PSAnYmcnID8gJ25vbmUnIDogJycsIHN0cm9rZTogJycsCiAgICAgICAgICAgICAgICAgICAgJ3N0cm9rZS1saW5lY2FwJzogJ3JvdW5kJywgJ3N0cm9rZS1saW5lam9pbic6ICdyb3VuZCcsICdzdHJva2Utd2lkdGgnOiAzMiwKICAgICAgICAgICAgICAgICAgICBkOiAnTTI1OS45MiwyNjIuOTEsMjE2LjQsMTQ5Ljc3YTksOSwwLDAsMC0xNi44LDBMMTU2LjA4LDI2Mi45MWE5LDksMCwwLDEtNS4xNyw1LjE3TDM3Ljc3LDMxMS42YTksOSwwLDAsMCwwLDE2LjhsMTEzLjE0LDQzLjUyYTksOSwwLDAsMSw1LjE3LDUuMTdMMTk5LjYsNDkwLjIzYTksOSwwLDAsMCwxNi44LDBsNDMuNTItMTEzLjE0YTksOSwwLDAsMSw1LjE3LTUuMTdMMzc4LjIzLDMyOC40YTksOSwwLDAsMCwwLTE2LjhMMjY1LjA5LDI2OC4wOEE5LDksMCwwLDEsMjU5LjkyLDI2Mi45MVonIH0pKQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChkb20uY3JlYXRlLnN2Z0VsZW0oJ3BvbHlnb24nLCB7IC8vIHNtYWxsKGVzdCkgcmVhci1sZWZ0IHNwYXJrbGUKICAgICAgICAgICAgICAgICAgICBmaWxsOiBzdHlsZSA9PSAnZmcnID8gJ25vbmUnIDogJycsIHN0cm9rZTogJycsCiAgICAgICAgICAgICAgICAgICAgJ3N0cm9rZS1saW5lY2FwJzogJ3JvdW5kJywgJ3N0cm9rZS1saW5lam9pbic6ICdyb3VuZCcsICdzdHJva2Utd2lkdGgnOiAyNCwKICAgICAgICAgICAgICAgICAgICBwb2ludHM6ICcxMDggNjggODggMTYgNjggNjggMTYgODggNjggMTA4IDg4IDE2MCAxMDggMTA4IDE2MCA4OCAxMDggNjgnIH0pKQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChkb20uY3JlYXRlLnN2Z0VsZW0oJ3BvbHlnb24nLCB7IC8vIHNtYWxsIHJlYXItcmlnaHQgc3BhcmtsZQogICAgICAgICAgICAgICAgICAgIGZpbGw6IHN0eWxlID09ICdmZycgPyAnbm9uZScgOiAnJywgc3Ryb2tlOiAnJywKICAgICAgICAgICAgICAgICAgICAnc3Ryb2tlLWxpbmVjYXAnOiAncm91bmQnLCAnc3Ryb2tlLWxpbmVqb2luJzogJ3JvdW5kJywgJ3N0cm9rZS13aWR0aCc6IDMyLAogICAgICAgICAgICAgICAgICAgIHBvaW50czogJzQyNi42NyAxMTcuMzMgNDAwIDQ4IDM3My4zMyAxMTcuMzMgMzA0IDE0NCAzNzMuMzMgMTcwLjY3IDQwMCAyNDAgNDI2LjY3IDE3MC42NyA0OTYgMTQ0IDQyNi42NyAxMTcuMzMnIH0pKQogICAgICAgICAgICAgICAgcmV0dXJuIHN2ZwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgc3BlYWtlcjogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDIyLCBoZWlnaHQ6IDIyLCB2aWV3Qm94OiAnMCAwIDMyIDMyJyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJycsICdzdHJva2Utd2lkdGgnOiAnMnB4JywgZmlsbDogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgICAgICBkOiAnTTI0LjUsMjZjMi44ODEsLTIuNjUyIDQuNSwtNi4yNDkgNC41LC0xMGMwLC0zLjc1MSAtMS42MTksLTcuMzQ4IC00LjUsLTEwJyB9KSwKICAgICAgICAgICAgICAgICAgICBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJycsICdzdHJva2Utd2lkdGgnOiAnMnB4JywgZmlsbDogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgICAgICBkOiAnTTIyLDIwLjg0N2MxLjI4MSwtMS4zMDYgMiwtMy4wNzcgMiwtNC45MjRjMCwtMS44NDYgLTAuNzE5LC0zLjYxNyAtMiwtNC45MjMnIH0pLAogICAgICAgICAgICAgICAgICAgIGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsIGZpbGw6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBkOiAnTTkuOTU3LDEwLjg4Yy0wLjYwNSwwLjYyNSAtMS40MTUsMC45OCAtMi4yNjIsMC45OTFjLTQuNjk1LDAuMDIyIC00LjY5NSwwLjMyMiAtNC42OTUsNC4xMjljMCwzLjgwNiAwLDQuMTA1IDQuNjk1LDQuMTI5YzAuODQ2LDAuMDExIDEuNjU2LDAuMzY2IDIuMjYxLDAuOTkxYzEuMDQ1LDEuMDc4IDIuNzY2LDIuODU2IDQuMjQ1LDQuMzg0YzAuNDc0LDAuNDkgMS4xOCwwLjYzMSAxLjc5MSwwLjM2YzAuNjExLC0wLjI3MiAxLjAwOCwtMC45MDQgMS4wMDgsLTEuNjA0YzAsLTQuNTg1IDAsLTExLjkzNiAwLC0xNi41MmMwLC0wLjcgLTAuMzk3LC0xLjMzMiAtMS4wMDgsLTEuNjA0Yy0wLjYxMSwtMC4yNzEgLTEuMzE3LC0wLjEzIC0xLjc5MSwwLjM2Yy0xLjQ3OSwxLjUyOCAtMy4yLDMuMzA2IC00LjI0NCw0LjM4NFonIH0pCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBzcGVlY2hCYWxsb29uTGFzc286IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IHdpZHRoOiAxNywgaGVpZ2h0OiAxNywgdmlld0JveDogJzAgLTk2MCA5NjAgOTYwJyB9KQogICAgICAgICAgICAgICAgY29uc3Qgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsCiAgICAgICAgICAgICAgICAgICAgZDogJ00zMjMtNDF2LTI0N2gtMTBxLTEwNSAwLTE3Mi41LTY3VDczLTUyOHEwLTEwNSA3NC0xNzl0MTc5LTc0aDM2bC00NC00NCA2OS02OSAxNjIgMTYyLTE2MiAxNjItNjktNjkgNDQtNDRoLTM2cS02NCAwLTEwOS41IDQ1LjVUMTcxLTUyOHEwIDY0IDQ1LjUgMTA5LjVUMzI2LTM3M2g5NXY5Nmw5Ni05NmgxMTdxNjQgMCAxMDkuNS00NS41VDc4OS01MjhxMC02NC00NS41LTEwOS41VDYzNC02ODNoMTB2LTk4aC0xMHExMDUgMCAxNzkgNzR0NzQgMTc5cTAgMTA1LTc0IDE3OXQtMTc5IDc0aC03N0wzMjMtNDFaJyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHNwZWVjaEJhbGxvb25zOiB7CiAgICAgICAgICAgIGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgnc3ZnJywgeyB3aWR0aDogMTYsIGhlaWdodDogMTYsIHZpZXdCb3g6ICcwIC05NjAgOTYwIDk2MCcgfSkKICAgICAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGggPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgIGQ6ICdNMzUwLTIxMnEtMzIuNTUgMC01NS4yNy0yMi43M1EyNzItMjU3LjQ1IDI3Mi0yOTB2LTY0aDQ5MnYtMzQyaDYzLjY3cTMzLjMzIDAgNTUuODMgMjIuNzJROTA2LTY1MC41NSA5MDYtNjE4djU3Nkw3MzYtMjEySDM1MFpNNTQtMjU2di01ODIuNHEwLTMyLjM4IDIyLjcyLTU0Ljk5UTk5LjQ1LTkxNiAxMzItOTE2aDQ4MnEzMi41NSAwIDU1LjI4IDIyLjcyUTY5Mi04NzAuNTUgNjkyLTgzOHYzMzRxMCAzMi41NS0yMi43MiA1NS4yN1E2NDYuNTUtNDI2IDYxNC00MjZIMjI0TDU0LTI1NlptNTQwLTI2OHYtMjk0SDE1MnYyOTRoNDQyWm0tNDQyIDB2LTI5NCAyOTRaJyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHN1bjogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgd2lkdGg6IDE3LCBoZWlnaHQ6IDE3LCB2aWV3Qm94OiAnMCAtOTYwIDk2MCA5NjAnIH0pCiAgICAgICAgICAgICAgICBjb25zdCBzdmdQYXRoID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgeyBzdHJva2U6ICdub25lJywKICAgICAgICAgICAgICAgICAgICBkOiAnTTQ0MC03NjB2LTE2MGg4MHYxNjBoLTgwWm0yNjYgMTEwLTU1LTU1IDExMi0xMTUgNTYgNTctMTEzIDExM1ptNTQgMjEwdi04MGgxNjB2ODBINzYwWk00NDAtNDB2LTE2MGg4MHYxNjBoLTgwWk0yNTQtNjUyIDE0MC03NjNsNTctNTYgMTEzIDExMy01NiA1NFptNTA4IDUxMkw2NTEtMjU1bDU0LTU0IDExNCAxMTAtNTcgNTlaTTQwLTQ0MHYtODBoMTYwdjgwSDQwWm0xNTcgMzAwLTU2LTU3IDExMi0xMTIgMjkgMjcgMjkgMjgtMTE0IDExNFptMjgzLTEwMHEtMTAwIDAtMTcwLTcwdC03MC0xNzBxMC0xMDAgNzAtMTcwdDE3MC03MHExMDAgMCAxNzAgNzB0NzAgMTcwcTAgMTAwLTcwIDE3MHQtMTcwIDcwWm0wLTgwcTY2IDAgMTEzLTQ3dDQ3LTExM3EwLTY2LTQ3LTExM3QtMTEzLTQ3cS02NiAwLTExMyA0N3QtNDcgMTEzcTAgNjYgNDcgMTEzdDExMyA0N1ptMC0xNjBaJyB9KQogICAgICAgICAgICAgICAgc3ZnLmFwcGVuZChzdmdQYXRoKSA7IHJldHVybiBzdmcKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHN1bmdsYXNzZXM6IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IHdpZHRoOiAxNywgaGVpZ2h0OiAxNywgdmlld0JveDogJzAgMCA1MTIgNTEyJyB9KQogICAgICAgICAgICAgICAgY29uc3Qgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsgc3Ryb2tlOiAnbm9uZScsCiAgICAgICAgICAgICAgICAgICAgZDogJ001MDcuNDQsMTg1LjMyN2MtNC4wMjktNS4xMjQtMTAuMTg1LTguMTEyLTE2LjcwNC04LjExMmMwLDAtNDguMDIxLDAtMTU2LjgyNywwaC02NS43NzRIMjQzLjg3aC02NS43NzRjLTEwOC44MDYsMC0xNTYuODI3LDAtMTU2LjgyNywwYy02LjUxOSwwLTEyLjY3NSwyLjk4OC0xNi43MTQsOC4xMTJjLTQuMDI4LDUuMTI1LTUuNDg2LDExLjgxNS0zLjk2NSwxOC4xNTJjMCwwLDEyLjQyMSw1Ni4yNjksMTkuOTI3LDgyLjUzNGM3LjUwNiwyNi4yNjUsMjYuMjY1LDQ4Ljc3Miw4Ni4yOSw0OC43NzJzNTkuODI3LDAsNzQuODI4LDBjMjEuMjU4LDAsNDYuMjU2LTE5Ljk5LDU1LjAyOC00NS4wMjNjNC45Ny0xNC4xNiwxMi43NTYtMzIuNzM4LDE5LjMzOC00Ny44NzZjNi41ODIsMTUuMTM4LDE0LjM2OCwzMy43MTYsMTkuMzM4LDQ3Ljg3NmM4Ljc3MywyNS4wMzMsMzMuNzcsNDUuMDIzLDU1LjAyOCw0NS4wMjNjMTUuMDAxLDAsMTQuODAzLDAsNzQuODI4LDBzNzguNzg0LTIyLjUwNyw4Ni4yOS00OC43NzJjNy40OTYtMjYuMjY0LDE5LjkxOC04Mi41MzQsMTkuOTE4LTgyLjUzNEM1MTIuOTM1LDE5Ny4xNDIsNTExLjQ3OCwxOTAuNDUyLDUwNy40NCwxODUuMzI3eiBNOTAuMzM5LDI3OC43MzRDNDUuMzE0LDI2My43MzIsNDAuMzE4LDE5OC43LDQwLjMxOCwxOTguN3MyMi41MDcsMCw1NS4wMjgsMEw5MC4zMzksMjc4LjczNHogTTM0MC40NjQsMjc4LjczNGMtNDUuMDE1LTE1LjAwMS01MC4wMjItODAuMDM0LTUwLjAyMi04MC4wMzRzMjIuNTA4LDAsNTUuMDI5LDBMMzQwLjQ2NCwyNzguNzM0eicgfSkKICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmQoc3ZnUGF0aCkgOyByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICB3ZWJDb3JuZXI6IHsKICAgICAgICAgICAgY3JlYXRlKCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3ZnID0gZG9tLmNyZWF0ZS5zdmdFbGVtKCdzdmcnLCB7IHdpZHRoOiAxOCwgaGVpZ2h0OiAxOCwgdmlld0JveDogJzAgMCAzMiAzMicgfSkKICAgICAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGggPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3BhdGgnLCB7IHN0cm9rZTogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgIGQ6ICdNMjkuOSwyLjZjLTAuMS0wLjItMC4zLTAuNC0wLjUtMC41QzI5LjMsMiwyOS4xLDIsMjksMkgzQzIuNCwyLDIsMi40LDIsM3MwLjQsMSwxLDFoMmM1LDAsOSw0LDksOWMwLDEuOS0wLjYsMy44LTEuOCw1LjRsLTQuOSw0LjljLTAuNCwwLjQtMC40LDEsMCwxLjRDNy41LDI0LjksNy43LDI1LDgsMjVzMC41LTAuMSwwLjctMC4zbDQuOS00LjljMS42LTEuMiwzLjQtMS44LDUuNC0xLjhjNSwwLDksNCw5LDl2MiAgICBjMCwwLjYsMC40LDEsMSwxczEtMC40LDEtMVYzQzMwLDIuOSwzMCwyLjcsMjkuOSwyLjZ6TTI2LjYsNGwtNC44LDQuOGMwLTEuOS0wLjgtMy41LTItNC44SDI2LjZ6IE0xMS4zLDRIMTVjMi43LDAsNC44LDIuMiw0LjgsNC44YzAsMS0wLjMsMi0wLjksMi45bC0zLDNDMTYsMTQuMiwxNiwxMy42LDE2LDEzQzE2LDkuMywxNC4xLDYsMTEuMyw0eiBNMTksMTZjLTAuNiwwLTEuMiwwLTEuNywwLjFsMy0zYzAuOC0wLjYsMS44LTAuOSwyLjktMC45YzIuNywwLDQuOCwyLjIsNC44LDQuOHYzLjdDMjYsMTcuOSwyMi43LDE2LDE5LDE2eiBNMjMuMiwxMC4yTDI4LDUuNHY2LjhDMjYuOCwxMSwyNS4xLDEwLjIsMjMuMiwxMC4yeicgfSkKICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmQoc3ZnUGF0aCkgOyByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICB3aWRlc2NyZWVuOiB7CiAgICAgICAgICAgIHdpZGVTVkdwYXRoKCkgeyByZXR1cm4gZG9tLmNyZWF0ZS5zdmdFbGVtKCdwYXRoJywgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAnJywgZmlsbDogJycsICdmaWxsLXJ1bGUnOiAnZXZlbm9kZCcsCiAgICAgICAgICAgICAgICBkOiAnbTI2LDEzIDAsMTAgLTE2LDAgMCwtMTAgeiBtLTE0LDIgMTIsMCAwLDYgLTEyLDAgMCwtNiB6JwogICAgICAgICAgICB9KX0sCgogICAgICAgICAgICB0YWxsU1ZHcGF0aCgpIHsgcmV0dXJuIGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogJycsIGZpbGw6ICcnLCAnZmlsbC1ydWxlJzogJ2V2ZW5vZGQnLAogICAgICAgICAgICAgICAgZDogJ20yOCwxMSAwLDE0IC0yMCwwIDAsLTE0IHogbS0xOCwyIDE2LDAgMCwxMCAtMTYsMCAwLC0xMCB6JwogICAgICAgICAgICB9KX0sCgogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsKICAgICAgICAgICAgICAgICAgICBpZDogJ3dpZGVzY3JlZW4taWNvbicsIHdpZHRoOiAxOCwgaGVpZ2h0OiAxOCwgdmlld0JveDogJzggOCAyMCAyMCcgfSkKICAgICAgICAgICAgICAgIGljb25zLndpZGVzY3JlZW4udXBkYXRlKHN2ZykKICAgICAgICAgICAgICAgIHJldHVybiBzdmcKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIHVwZGF0ZSguLi50YXJnZXRJY29ucykgewogICAgICAgICAgICAgICAgdGFyZ2V0SWNvbnMgPSB0YXJnZXRJY29ucy5mbGF0KCkgLy8gZmxhdHRlbiBhcnJheSBhcmdzIG5lc3RlZCBieSBzcHJlYWQgb3BlcmF0b3IKICAgICAgICAgICAgICAgIGlmICh0YXJnZXRJY29ucy5sZW5ndGggPT0gMCkKICAgICAgICAgICAgICAgICAgICB0YXJnZXRJY29ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN3aWRlc2NyZWVuLWljb246bm90KC5jaGF0Z3B0LW5vdGlmICopJykKICAgICAgICAgICAgICAgIHRhcmdldEljb25zLmZvckVhY2goaWNvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgaWNvbi5maXJzdENoaWxkPy5yZW1vdmUoKSAvLyBjbGVhciBwcmV2IHBhdGhzCiAgICAgICAgICAgICAgICAgICAgaWNvbi5hcHBlbmQoaWNvbnMud2lkZXNjcmVlbltjb25maWcud2lkZXJTaWRlYmFyID8gJ3dpZGVTVkdwYXRoJyA6ICd0YWxsU1ZHcGF0aCddKCkpCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgeDogewogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdmcgPSBkb20uY3JlYXRlLnN2Z0VsZW0oJ3N2ZycsIHsgaGVpZ2h0OiAxMCwgdmlld0JveDogJzAgMCAxNCAxNCcsIGZpbGw6ICdub25lJyB9KQogICAgICAgICAgICAgICAgY29uc3Qgc3ZnUGF0aCA9IGRvbS5jcmVhdGUuc3ZnRWxlbSgncGF0aCcsIHsKICAgICAgICAgICAgICAgICAgICBkOiAnTTEzLjcwNzEgMS43MDcxMUMxNC4wOTc2IDEuMzE2NTggMTQuMDk3NiAwLjY4MzQxNyAxMy43MDcxIDAuMjkyODkzQzEzLjMxNjYgLTAuMDk3NjMxMiAxMi42ODM0IC0wLjA5NzYzMTIgMTIuMjkyOSAwLjI5Mjg5M0w3IDUuNTg1NzlMMS43MDcxMSAwLjI5Mjg5M0MxLjMxNjU4IC0wLjA5NzYzMTIgMC42ODM0MTcgLTAuMDk3NjMxMiAwLjI5Mjg5MyAwLjI5Mjg5M0MtMC4wOTc2MzEyIDAuNjgzNDE3IC0wLjA5NzYzMTIgMS4zMTY1OCAwLjI5Mjg5MyAxLjcwNzExTDUuNTg1NzkgN0wwLjI5Mjg5MyAxMi4yOTI5Qy0wLjA5NzYzMTIgMTIuNjgzNCAtMC4wOTc2MzEyIDEzLjMxNjYgMC4yOTI4OTMgMTMuNzA3MUMwLjY4MzQxNyAxNC4wOTc2IDEuMzE2NTggMTQuMDk3NiAxLjcwNzExIDEzLjcwNzFMNyA4LjQxNDIxTDEyLjI5MjkgMTMuNzA3MUMxMi42ODM0IDE0LjA5NzYgMTMuMzE2NiAxNC4wOTc2IDEzLjcwNzEgMTMuNzA3MUMxNC4wOTc2IDEzLjMxNjYgMTQuMDk3NiAxMi42ODM0IDEzLjcwNzEgMTIuMjkyOUw4LjQxNDIxIDdMMTMuNzA3MSAxLjcwNzExWicgfSkKICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmQoc3ZnUGF0aCkgOyByZXR1cm4gc3ZnCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gRGVmaW5lIExPR08gZnVuY3Rpb25zCgogICAgY29uc3QgbG9nb3MgPSB7CiAgICAgICAgZ29vZ2xlR1BUOiB7CgogICAgICAgICAgICBjcmVhdGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBnb29nbGVHUFRsb2dvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKICAgICAgICAgICAgICAgIGdvb2dsZUdQVGxvZ28uaWQgPSBgJHthcHAuY3NzUHJlZml4fS1sb2dvYCA7IGdvb2dsZUdQVGxvZ28uY2xhc3NOYW1lID0gJ25vLW1vYmlsZS10YXAtb3V0bGluZScKICAgICAgICAgICAgICAgIGxvZ29zLmdvb2dsZUdQVC51cGRhdGUoZ29vZ2xlR1BUbG9nbykKICAgICAgICAgICAgICAgIHJldHVybiBnb29nbGVHUFRsb2dvCiAgICAgICAgICAgIH0sCgogICAgICAgICAgICB1cGRhdGUoLi4udGFyZ2V0TG9nb3MpIHsKICAgICAgICAgICAgICAgIHRhcmdldExvZ29zID0gdGFyZ2V0TG9nb3MuZmxhdCgpIC8vIGZsYXR0ZW4gYXJyYXkgYXJncyBuZXN0ZWQgYnkgc3ByZWFkIG9wZXJhdG9yCiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0TG9nb3MubGVuZ3RoID09IDApIHRhcmdldExvZ29zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgIyR7YXBwLmNzc1ByZWZpeH0tbG9nb2ApCiAgICAgICAgICAgICAgICB0YXJnZXRMb2dvcy5mb3JFYWNoKGxvZ28gPT4KICAgICAgICAgICAgICAgICAgICBsb2dvLnNyYyA9IEdNX2dldFJlc291cmNlVGV4dChgZ2dwdCR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICdEUycgOiAnTFMnIH1sb2dvYCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gRGVmaW5lIFVQREFURSBmdW5jdGlvbnMKCiAgICBjb25zdCB1cGRhdGUgPSB7CgogICAgICAgIGFuc3dlclByZU1heEhlaWdodCgpIHsgLy8gZm9yIHZhcmlvdXMgbW9kZSB0b2dnbGVzCiAgICAgICAgICAgIGNvbnN0IGFuc3dlclByZSA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKCdwcmUnKSwKICAgICAgICAgICAgICAgICAgcmVsYXRlZFF1ZXJpZXMgPSBhcHBEaXYucXVlcnlTZWxlY3RvcihgLiR7YXBwLmNzc1ByZWZpeH0tcmVsYXRlZC1xdWVyaWVzYCksCiAgICAgICAgICAgICAgICAgIHNob3J0ZXJQcmVIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWxhdGVkUXVlcmllcz8ub2Zmc2V0SGVpZ2h0IC0gMzI4LAogICAgICAgICAgICAgICAgICBsb25nZXJQcmVIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSAzMDkKICAgICAgICAgICAgaWYgKGFuc3dlclByZSkgYW5zd2VyUHJlLnN0eWxlLm1heEhlaWdodCA9ICgKICAgICAgICAgICAgICAgIGNvbmZpZy5zdGlja3lTaWRlYmFyID8gKAogICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRRdWVyaWVzPy5vZmZzZXRIZWlnaHQgPiAwID8gYCR7c2hvcnRlclByZUhlaWdodH1weGAgOiBgJHtsb25nZXJQcmVIZWlnaHR9cHhgICkKICAgICAgICAgICAgICA6IGNvbmZpZy5hbmNob3JlZCA/IGAkeyBsb25nZXJQcmVIZWlnaHQgLSAoIGNvbmZpZy5leHBhbmRlZCA/IDExNSA6IDM2NSApIH1weGAgOiAnbm9uZScKICAgICAgICAgICAgKQogICAgICAgIH0sCgogICAgICAgIGFwcEJvdHRvbVBvcygpIHsgYXBwRGl2LnN0eWxlLmJvdHRvbSA9IGAkeyBjb25maWcubWluaW1pemVkID8gMzUgLSBhcHBEaXYub2Zmc2V0SGVpZ2h0IDogLTMzIH1weGAgfSwKCiAgICAgICAgYXBwU3R5bGUoKSB7CiAgICAgICAgICAgIGNvbnN0IGlzU3RhcnJ5RE0gPSBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgJiYgIWNvbmZpZy5iZ0FuaW1hdGlvbnNEaXNhYmxlZAogICAgICAgICAgICBtb2RhbHMuc3R5bGl6ZSgpIC8vIHVwZGF0ZSBtb2RhbCBzdHlsZXMKICAgICAgICAgICAgYXBwLnN0eWxlcy5pbm5lclRleHQgPSAoCiAgICAgICAgICAgICAgICAnOnJvb3QgeycgLy8gdmFycwogICAgICAgICAgICAgICAgICArICctLWFwcC1iZy1jb2xvci1saWdodC1zY2hlbWU6ICNmZmZmZmYgOyAtLWFwcC1iZy1jb2xvci1kYXJrLXNjaGVtZTogIzI4MjgyOCA7JwogICAgICAgICAgICAgICAgICArICctLXByZS1iZy1jb2xvci1saWdodC1zY2hlbWU6ICNlN2U3ZTc5OSA7IC0tcHJlLWJnLWNvbG9yLWRhcmstc2NoZW1lOiAjM2EzYTNhIDsnCiAgICAgICAgICAgICAgICAgICsgJy0tZm9udC1jb2xvci1saWdodC1zY2hlbWU6ICMyODI4MjggOyAtLWZvbnQtY29sb3ItZGFyay1zY2hlbWU6ICNmMmYyZjIgOycKICAgICAgICAgICAgICAgICAgKyAnLS1hcHAtc2hhZG93OiAwIDJweCAzcHggcmdiKDAsMCwwLDAuMDYpIDsgLS1hcHAtaG92ZXItc2hhZG93OiAwIDlweCAyOHB4IHJnYmEoMCwwLDAsMC4wOSkgOycKICAgICAgICAgICAgICAgICAgKyAnLS1hcHAtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHRyYW5zZm9ybSAwLjVzIGVhc2UsJyAvLyBmb3IgMXN0IGZhZGUtaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnYm90dG9tIDAuMXMgY3ViaWMtYmV6aWVyKDAsMCwwLjIsMSksJyAvLyBzbW9vdGhlbiBBbmNob3IgWSBtaW4vcmVzdG9yZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICd3aWR0aCAwLjE2N3MgY3ViaWMtYmV6aWVyKDAsMCwwLjIsMSkgOycgLy8gc21vb3RoZW4gQW5jaG9yIFggZXhwYW5kL3NocmluawogICAgICAgICAgICAgICAgICArICctLWFwcC1zaGFkb3ctdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjE1cyBlYXNlIDsnIC8vIGZvciBhcHA6aG92ZXIgdG8gbm90IHRyaWdnZXIgb24gaG92ZXItb2ZmCiAgICAgICAgICAgICAgICAgICsgJy0tYnRuLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLCcgLy8gZm9yIGhvdmVyLXpvb20KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnb3BhY2l0eSAwLjFzIGVhc2UtaW4tb3V0IDsnIC8vICsgYnRuLXpvb20tZmFkZS1vdXQgc2hvd3MKICAgICAgICAgICAgICAgICAgKyAnLS1mb250LXNpemUtc2xpZGVyLXRodW1iLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA1cyBlYXNlIDsnIC8vIGZvciBob3Zlci16b29tCiAgICAgICAgICAgICAgICAgICsgJy0tYW5zd2VyLXByZS10cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMTY3cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSA7JyAvLyBmb3IgQW5jaG9yIGNoYW5nZXMKICAgICAgICAgICAgICAgICAgKyAnLS1ycS10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlICFpbXBvcnRhbnQgOycgLy8gZm9yIGhvdmVyLXpvb20KICAgICAgICAgICAgICAgICAgKyAnLS1mYWRlLWluLWxlc3MtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UgfScgLy8gdXNlZCBieSBGb250IFNpemUgc2xpZGVyICsgUGluIG1lbnUKCiAgICAgICAgICAgICAgICAvLyBNYWluIHN0eWxlcwogICAgICAgICAgICAgICsgJ0BrZXlmcmFtZXMgYnRuLXpvb20tZmFkZS1vdXQgeycKICAgICAgICAgICAgICAgICAgKyAnMCUgeyBvcGFjaXR5OiAxIH0gNTAlIHsgb3BhY2l0eTogMC42NSA7IHRyYW5zZm9ybTogc2NhbGUoMS44NSkgfScKICAgICAgICAgICAgICAgICAgKyAnNzUlIHsgb3BhY2l0eTogMC4wNSA7IHRyYW5zZm9ybTogc2NhbGUoMy4xNSkgfSAxMDAlIHsgb3BhY2l0eTogMCA7IHRyYW5zZm9ybTogc2NhbGUoNS44NSkgfX0nCiAgICAgICAgICAgICAgKyAnLm5vLXVzZXItc2VsZWN0IHsnCiAgICAgICAgICAgICAgICAgICsgJy13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgOyAtbW96LXVzZXItc2VsZWN0OiBub25lIDsnCiAgICAgICAgICAgICAgICAgICsgJy1tcy11c2VyLXNlbGVjdDogbm9uZSA7IHVzZXItc2VsZWN0OiBub25lIH0nCiAgICAgICAgICAgICAgKyAnLm5vLW1vYmlsZS10YXAtb3V0bGluZSB7IG91dGxpbmU6IG5vbmUgOyAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50IH0nCiAgICAgICAgICAgICAgKyAoIC8vIHN0eWxpemUgc2Nyb2xsYmFycyBpbiBDaHJvbWl1bS9TYWZhcmkKICAgICAgICAgICAgICAgICAgICBgIyR7YXBwLmNzc1ByZWZpeH0gKjo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogN3B4IH1gCiAgICAgICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9ICo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogI2NkY2RjZCB9YAogICAgICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSAqOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7IGJhY2tncm91bmQ6ICNhNmE2YTYgfWAKICAgICAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0gKjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiBub25lIH1gICkKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSAqIHsgc2Nyb2xsYmFyLXdpZHRoOiB0aGluIH1gIC8vIG1ha2Ugc2Nyb2xsYmFycyB0aGluIGluIEZpcmVmb3gKICAgICAgICAgICAgICArICcuY3Vyc29yLW92ZXJsYXkgeycgLy8gZm9yIGZvbnRTaXplU2xpZGVyLmNyZWF0ZUFwcGVuZCgpIGRyYWcgbGlzdGVuZXJzCiAgICAgICAgICAgICAgICAgIC8vIC4uLnRvIHNob3cgcmVzaXplIGN1cnNvciBldmVyeXdoZXJlCiAgICAgICAgICAgICAgICAgICsgJ3Bvc2l0aW9uOiBmaXhlZCA7IHRvcDogMCA7IGxlZnQ6IDAgOyB3aWR0aDogMTAwJSA7IGhlaWdodDogMTAwJSA7JwogICAgICAgICAgICAgICAgICArICd6LWluZGV4OiA5OTk5IDsgY3Vyc29yOiBldy1yZXNpemUgfScKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSB7YAogICAgICAgICAgICAgICAgICArIGBwb3NpdGlvbjogc3RpY2t5IDsgei1pbmRleDogMTExIDsgcGFkZGluZzogJHsgZW52LmJyb3dzZXIuaXNGRiA/IDIwIDogMjIgfXB4IDI2cHggNnB4IDI2cHggO2AKICAgICAgICAgICAgICAgICAgKyAnZmxleC1iYXNpczogMCA7IGhlaWdodDogZml0LWNvbnRlbnQgOycKICAgICAgICAgICAgICAgICAgKyBgYm9yZGVyOiAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnbm9uZScgOiAnMXB4IHNvbGlkICNkYWRjZTAnIH0gOyBib3JkZXItcmFkaXVzOiA4cHggO2AKICAgICAgICAgICAgICAgICAgKyBgd2lkdGg6ICR7IGVudi5icm93c2VyLmlzTW9iaWxlID8gJ2F1dG8nIDogJzMxOXB4JyB9IDtgIC8vIGhhcmQtd2lkdGggdG8gcHJldmVudCBHb29nbGUncyBmbGV4LXdyYXAgbW92aW5nIGFwcCB0byBib3R0b20KICAgICAgICAgICAgICAgICAgKyAoIGVudi5icm93c2VyLmlzTW9iaWxlID8gJ21hcmdpbjogOHB4IDAgOHB4JyA6ICdtYXJnaW4tYm90dG9tOiAzMHB4JyApICsgJzsnIC8vIGFkZCB2ZXJ0aWNhbCBtYXJnaW5zCiAgICAgICAgICAgICAgICAgICsgJ2ZsZXgtZ3JvdzogMSA7IHdvcmQtd3JhcDogYnJlYWstd29yZCA7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcCA7IGJveC1zaGFkb3c6IHZhcigtLWFwcC1zaGFkb3cpIDsnCiAgICAgICAgICAgICAgICAgICsgKCBjb25maWcuYmdBbmltYXRpb25zRGlzYWJsZWQgPyAvLyBjbGFzc2ljIGZsYXQgYmcKICAgICAgICAgICAgICAgICAgICAgICAgYGJhY2tncm91bmQ6IHZhcigtLWFwcC1iZy1jb2xvci0ke2Vudi51aS5hcHAuc2NoZW1lfS1zY2hlbWUpIDtgCiAgICAgICAgICAgICAgICAgICAgICArIGBjb2xvcjogdmFyKC0tZm9udC1jb2xvci0ke2Vudi51aS5hcHAuc2NoZW1lfS1zY2hlbWUpIDtgCiAgICAgICAgICAgICAgICAgIDogYGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICR7IC8vIGdyYWRpZW50IGJnIHRvIG1hdGNoIHN0YXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJyM5OWE4YTYgLTI0NXB4LCBibGFjayAxODVweCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnI2I2ZWJmZiAtMTYzcHgsIHdoaXRlIDY1cHgnIH0pIDtgICkKICAgICAgICAgICAgICAgICAgKyAndHJhbnNpdGlvbjogdmFyKC0tYXBwLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctd2Via2l0LXRyYW5zaXRpb246IHZhcigtLWFwcC10cmFuc2l0aW9uKSA7IC1tb3otdHJhbnNpdGlvbjogdmFyKC0tYXBwLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctby10cmFuc2l0aW9uOiB2YXIoLS1hcHAtdHJhbnNpdGlvbikgOyAtbXMtdHJhbnNpdGlvbjogdmFyKC0tYXBwLXRyYW5zaXRpb24pIH0nCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0gLmFwcC1ob3Zlci1vbmx5IHsgZGlzcGxheTogbm9uZSB9YCAvLyBoaWRlIGFwcC1ob3Zlci1vbmx5IGVsZW1zCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH06aG92ZXIgLmFwcC1ob3Zlci1vbmx5IHsgZGlzcGxheTogaW5pdGlhbCB9YCAvLyBzaG93IGFwcC1ob3Zlci1vbmx5IGVsZW1zIG9uIGhvdmVyCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH06aG92ZXIge2AgLy8gc2hvdyBhcHAgc2hhZG93IG9uIGhvdmVyCiAgICAgICAgICAgICAgICAgICsgJ2JveC1zaGFkb3c6IHZhcigtLWFwcC1ob3Zlci1zaGFkb3cpIDsnCiAgICAgICAgICAgICAgICAgICsgJ3RyYW5zaXRpb246IHZhcigtLWFwcC10cmFuc2l0aW9uKSwgdmFyKC0tYXBwLXNoYWRvdy10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgKyAnLXdlYmtpdC10cmFuc2l0aW9uOiB2YXIoLS1hcHAtdHJhbnNpdGlvbiksIHZhcigtLWFwcC1zaGFkb3ctdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy1tb3otdHJhbnNpdGlvbjogdmFyKC0tYXBwLXRyYW5zaXRpb24pLCB2YXIoLS1hcHAtc2hhZG93LXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctby10cmFuc2l0aW9uOiB2YXIoLS1hcHAtdHJhbnNpdGlvbiksIHZhcigtLWFwcC1zaGFkb3ctdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy1tcy10cmFuc2l0aW9uOiB2YXIoLS1hcHAtdHJhbnNpdGlvbiksIHZhcigtLWFwcC1zaGFkb3ctdHJhbnNpdGlvbikgfScKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSBwIHsgbWFyZ2luOiAwIDsgJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ2NvbG9yOiAjY2NjJyA6ICcnIH19YAogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9IC5hbGVydC1saW5rIHtgCiAgICAgICAgICAgICAgICAgICsgYGNvbG9yOiAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnbGlnaHQnID8gJyMxOTBjYjAnIDogJ3doaXRlIDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUnIH19YAogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LW5hbWUge2AKICAgICAgICAgICAgICAgICAgKyAnZm9udC1zaXplOiAxLjM1cmVtIDsgZm9udC13ZWlnaHQ6IDcwMCA7IHRleHQtZGVjb3JhdGlvbjogbm9uZSA7JwogICAgICAgICAgICAgICAgICArIGBjb2xvcjogJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ3doaXRlJyA6ICdibGFjaycgfSAhaW1wb3J0YW50IH1gCiAgICAgICAgICAgICAgKyAnLmt1ZG9haSB7IGZvbnQtc2l6ZTogMTJweCA7IG1hcmdpbi1sZWZ0OiA3cHggOyBjb2xvcjogI2FhYSB9JwogICAgICAgICAgICAgICsgJy5rdWRvYWkgYSwgLmt1ZG9haSBhOnZpc2l0ZWQgeyBjb2xvcjogI2FhYSA7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50IH0nCiAgICAgICAgICAgICAgKyBgLmt1ZG9haSBhOmhvdmVyIHsgY29sb3I6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnYmxhY2snIH19YAogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9LWhlYWRlci1idG5zIHsgZmxvYXQ6IHJpZ2h0IH1gCiAgICAgICAgICAgICAgKyBgLiR7YXBwLmNzc1ByZWZpeH0taGVhZGVyLWJ0biB7YAogICAgICAgICAgICAgICAgICArICdmbG9hdDogcmlnaHQgOyBjdXJzb3I6IHBvaW50ZXIgOyBwb3NpdGlvbjogcmVsYXRpdmUgOyB0b3A6IDZweCA7JwogICAgICAgICAgICAgICAgICArIGAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnZmlsbDogd2hpdGUgOyBzdHJva2U6IHdoaXRlJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmlsbDogI2FkYWRhZCA7IHN0cm9rZTogI2FkYWRhZCcgfTtgIC8vIGNvbG9yCiAgICAgICAgICAgICAgICAgICsgJ3RyYW5zaXRpb246IHZhcigtLWJ0bi10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgKyAnLXdlYmtpdC10cmFuc2l0aW9uOiB2YXIoLS1idG4tdHJhbnNpdGlvbikgOyAtbW96LXRyYW5zaXRpb246IHZhcigtLWJ0bi10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgKyAnLW8tdHJhbnNpdGlvbjogdmFyKC0tYnRuLXRyYW5zaXRpb24pIDsgLW1zLXRyYW5zaXRpb246IHZhcigtLWJ0bi10cmFuc2l0aW9uKSB9JwogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LWhlYWRlci1idG46aG92ZXIge2AKICAgICAgICAgICAgICAgICAgKyBgJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ2ZpbGw6ICNkOWQ5ZDkgOyBzdHJva2U6ICNkOWQ5ZDknCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdmaWxsOiBibGFjayA7IHN0cm9rZTogYmxhY2snIH0gO2AKICAgICAgICAgICAgICAgICAgKyBgJHsgY29uZmlnLmZnQW5pbWF0aW9uc0Rpc2FibGVkIHx8IGVudi5icm93c2VyLmlzTW9iaWxlID8gJycgOiAndHJhbnNmb3JtOiBzY2FsZSgxLjI4NSknIH19YAogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LWhlYWRlci1idG46YWN0aXZlIHtgCiAgICAgICAgICAgICAgICAgICsgYCR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICdmaWxsOiAjOTk5OTk5IDsgc3Ryb2tlOiAjOTk5OTk5JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmlsbDogIzYzOGVkNCA7IHN0cm9rZTogIzYzOGVkNCcgfX1gCiAgICAgICAgICAgICAgKyAoIGNvbmZpZy5iZ0FuaW1hdGlvbnNEaXNhYmxlZCA/ICcnIDogKAogICAgICAgICAgICAgICAgICAgIGAjJHthcHAuY3NzUHJlZml4fS1sb2dvLCAuJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRuIHN2ZywgLiR7YXBwLmNzc1ByZWZpeH0tc3RhbmRieS1idG4ge2AKICAgICAgICAgICAgICAgICAgICAgICsgYGZpbHRlcjogZHJvcC1zaGFkb3coJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJyM3MTcxNzE0ZCAxMHB4JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnI2FhYWFhYTIxIDdweCcgfSA3cHggM3B4KSB9YCApKQogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9IC5sb2FkaW5nIHtgCiAgICAgICAgICAgICAgICAgICsgJ3BhZGRpbmctYm90dG9tOiAxNXB4IDsgY29sb3I6ICNiNmI4YmEgOycKICAgICAgICAgICAgICAgICAgKyAnYW5pbWF0aW9uOiBwdWxzZSAycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpIGluZmluaXRlIH0nCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0uc2lkZWJhci1mcmVlIHsgbWFyZ2luLWxlZnQ6IDYwcHggOyBoZWlnaHQ6IGZpdC1jb250ZW50IH1gCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLXNsaWRlci10cmFjayB7YAogICAgICAgICAgICAgICAgICArICd3aWR0aDogOTglIDsgaGVpZ2h0OiA3cHggOyBtYXJnaW46IDAgYXV0byAtMTVweCA7IHBhZGRpbmc6IDE1cHggMCA7JwogICAgICAgICAgICAgICAgICArICdiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjIDsgYm94LXNpemluZzogY29udGVudC1ib3g7IGJhY2tncm91bmQtY2xpcDogY29udGVudC1ib3ggOycKICAgICAgICAgICAgICAgICAgKyAnLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94IH0nCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLXNsaWRlci10cmFjazo6YmVmb3JlIHtgIC8vIHRvIGFkZCBmaW5nZXIgY3Vyc29yIHRvIHVucGFkZGVkIGNvcmUgb25seQogICAgICAgICAgICAgICAgICArICdjb250ZW50OiAiIiA7IHBvc2l0aW9uOiBhYnNvbHV0ZSA7IHRvcDogMTBweCA7IGxlZnQ6IDAgOyByaWdodDogMCA7JwogICAgICAgICAgICAgICAgICArICdoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwcHgpIDsgY3Vyc29yOiBwb2ludGVyIH0nCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLXNsaWRlci10aXAge2AKICAgICAgICAgICAgICAgICAgKyAnei1pbmRleDogMSA7IHBvc2l0aW9uOiBhYnNvbHV0ZSA7IGJvdHRvbTogMjBweCA7JwogICAgICAgICAgICAgICAgICArICdib3JkZXItbGVmdDogNC41cHggc29saWQgdHJhbnNwYXJlbnQgOyBib3JkZXItcmlnaHQ6IDQuNXB4IHNvbGlkIHRyYW5zcGFyZW50IDsnCiAgICAgICAgICAgICAgICAgICsgJ2JvcmRlci1ib3R0b206IDE2cHggc29saWQgI2NjYyB9JwogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9LWZvbnQtc2l6ZS1zbGlkZXItdGh1bWIge2AKICAgICAgICAgICAgICAgICAgKyAnei1pbmRleDogMiA7IHdpZHRoOiAxMHB4IDsgaGVpZ2h0OiAyNnB4IDsgYm9yZGVyLXJhZGl1czogMzAlIDsgcG9zaXRpb246IHJlbGF0aXZlIDsnCiAgICAgICAgICAgICAgICAgICsgJ3RvcDogLTguMjVweCA7IGN1cnNvcjogZXctcmVzaXplIDsnCiAgICAgICAgICAgICAgICAgICsgYGJhY2tncm91bmQtY29sb3I6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnIzRhNGE0YScgfSA7YAogICAgICAgICAgICAgICAgICArICdib3gtc2hhZG93OiByZ2JhKDAsMCwwLDAuMjEpIDFweCAxcHggOXB4IDAgOycKICAgICAgICAgICAgICAgICAgKyAndHJhbnNpdGlvbjogdmFyKC0tZm9udC1zaXplLXNsaWRlci10aHVtYi10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgKyAnLXdlYmtpdC10cmFuc2l0aW9uOiB2YXIoLS1mb250LXNpemUtc2xpZGVyLXRodW1iLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctbW96LXRyYW5zaXRpb246IHZhcigtLWZvbnQtc2l6ZS1zbGlkZXItdGh1bWItdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy1vLXRyYW5zaXRpb246IHZhcigtLWZvbnQtc2l6ZS1zbGlkZXItdGh1bWItdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy1tcy10cmFuc2l0aW9uOiB2YXIoLS1mb250LXNpemUtc2xpZGVyLXRodW1iLXRyYW5zaXRpb24pIH0nCiAgICAgICAgICAgICAgKyAoIGNvbmZpZy5mZ0FuaW1hdGlvbnNEaXNhYmxlZCB8fCBlbnYuYnJvd3Nlci5pc01vYmlsZSA/CiAgICAgICAgICAgICAgICAgICAgJycgOiBgIyR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLXNsaWRlci10aHVtYjpob3ZlciB7IHRyYW5zZm9ybTogc2NhbGUoMS4xMjUpIH1gICkKICAgICAgICAgICAgICArIGAuJHthcHAuY3NzUHJlZml4fS1zdGFuZGJ5LWJ0biB7YAogICAgICAgICAgICAgICAgICArICd3aWR0aDogMTAwJSA7IG1hcmdpbi10b3A6IDIwcHggOyBwYWRkaW5nOiAxMXB4IDAgOyBjdXJzb3I6IHBvaW50ZXIgOycKICAgICAgICAgICAgICAgICAgKyBgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMCR7IGNvbmZpZy5iZ0FuaW1hdGlvbnNEaXNhYmxlZCA/ICcnIDogJzAwJyB9O2AKICAgICAgICAgICAgICAgICAgKyBgY29sb3I6ICR7IGlzU3RhcnJ5RE0gPyAnd2hpdGUnIDogJ2JsYWNrJyB9O2AKICAgICAgICAgICAgICAgICAgKyBgYm9yZGVyLXJhZGl1czogNHB4IDsgYm9yZGVyOiAxcHggc29saWQgJHsgaXNTdGFycnlETSA/ICcjZmZmJyA6ICcjODg4JyB9O2AKICAgICAgICAgICAgICAgICAgKyAndHJhbnNpdGlvbjogdmFyKC0tYnRuLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctd2Via2l0LXRyYW5zaXRpb246IHZhcigtLWJ0bi10cmFuc2l0aW9uKSA7IC1tb3otdHJhbnNpdGlvbjogdmFyKC0tYnRuLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctby10cmFuc2l0aW9uOiB2YXIoLS1idG4tdHJhbnNpdGlvbikgOyAtbXMtdHJhbnNpdGlvbjogdmFyKC0tYnRuLXRyYW5zaXRpb24pIH0nCiAgICAgICAgICAgICAgKyBgLiR7YXBwLmNzc1ByZWZpeH0tc3RhbmRieS1idG46aG92ZXIge2AKICAgICAgICAgICAgICAgICAgKyBgJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ2JhY2tncm91bmQ6IHdoaXRlIDsgY29sb3I6IGJsYWNrJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnYmFja2dyb3VuZDogYmxhY2sgOyBjb2xvcjogd2hpdGUnIH07YAogICAgICAgICAgICAgICAgICArIGAkeyBjb25maWcuZmdBbmltYXRpb25zRGlzYWJsZWQgfHwgZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAnJwogICAgICAgICAgICAgICAgICAgICAgICA6ICd0cmFuc2Zvcm06IHNjYWxlWCgxLjAxNSkgc2NhbGVZKDEuMDMpJyB9fWAKICAgICAgICAgICAgICArIGAuJHthcHAuY3NzUHJlZml4fS1yZXBseS10aXAge2AKICAgICAgICAgICAgICAgICAgKyAnY29udGVudDogIiIgOyBwb3NpdGlvbjogcmVsYXRpdmUgOyBib3JkZXI6IDdweCBzb2xpZCB0cmFuc3BhcmVudCA7JwogICAgICAgICAgICAgICAgICArIGBmbG9hdDogbGVmdCA7IG1hcmdpbjogJHsgZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAzOSA6IDI2IH1weCAtMTVweCAwIDAgO2AKICAgICAgICAgICAgICAgICAgKyBgbGVmdDogJHsgZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAxMiA6IDYgfXB4IDtgIC8vIHBvc2l0aW9uaW5nCiAgICAgICAgICAgICAgICAgICsgJ2JvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkIDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMTZweCA7IGJvcmRlci10b3A6IDAgOyBib3JkZXItYm90dG9tLWNvbG9yOicKICAgICAgICAgICAgICAgICAgICAgICsgYCR7IC8vIGhpZGUgcmVwbHkgdGlwIGZvciB0ZXJtaW5hbCBhZXN0aGV0aWMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU3RhcnJ5RE0gPyAnIzAwMDAnIDogYHZhcigtLXByZS1iZy1jb2xvci0ke2Vudi51aS5hcHAuc2NoZW1lfS1zY2hlbWUpYCB9fWAKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSA+IHByZSB7YAogICAgICAgICAgICAgICAgICArIGBmb250LXNpemU6ICR7Y29uZmlnLmZvbnRTaXplfXB4IDsgd2hpdGUtc3BhY2U6IHByZS13cmFwIDsgbWluLXdpZHRoOiAwIDtgCiAgICAgICAgICAgICAgICAgICsgYGxpbmUtaGVpZ2h0OiAkeyBjb25maWcuZm9udFNpemUgKiBjb25maWcubGluZUhlaWdodFJhdGlvIH1weCA7IG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW4gO2AKICAgICAgICAgICAgICAgICAgKyAnbWFyZ2luOiAxNnB4IDAgMCAwIDsgcGFkZGluZzogMS4yNWVtIDsgYm9yZGVyLXJhZGl1czogMTBweCA7IG92ZXJmbG93OiBhdXRvIDsnCiAgICAgICAgICAgICAgICAgICsgKCBjb25maWcuYmdBbmltYXRpb25zRGlzYWJsZWQgPyAvLyBjbGFzc2ljIG9wYXF1ZSBiZwogICAgICAgICAgICAgICAgICAgICAgICBgYmFja2dyb3VuZDogdmFyKC0tcHJlLWJnLWNvbG9yLSR7ZW52LnVpLmFwcC5zY2hlbWV9LXNjaGVtZSkgO2AKICAgICAgICAgICAgICAgICAgICAgICsgYGNvbG9yOiB2YXIoLS1mb250LWNvbG9yLSR7ZW52LnVpLmFwcC5zY2hlbWV9LXNjaGVtZSlgCiAgICAgICAgICAgICAgICAgIDogYCR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/IC8vIHNsaWdodGx5IHRyYW5sdXNjZW50IGJnCiAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kOiAjMmIzYTQwY2YgOyBjb2xvcjogdmFyKC0tZm9udC1jb2xvci1kYXJrLXNjaGVtZSkgOyBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZScKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2JhY2tncm91bmQ6IHZhcigtLXByZS1iZy1jb2xvci1saWdodC1zY2hlbWUpIDsnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnY29sb3I6IHZhcigtLWZvbnQtY29sb3ItbGlnaHQtc2NoZW1lKSA7IGJvcmRlcjogbm9uZScgfSA7YCApCiAgICAgICAgICAgICAgICAgICsgYCR7IGNvbmZpZy5mZ0FuaW1hdGlvbnNEaXNhYmxlZCA/ICcnIDogLy8gc21vb3RoZW4gQW5jaG9yIG1vZGUgZXhwYW5kL3NocmluawogICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNpdGlvbjogdmFyKC0tYW5zd2VyLXByZS10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnLXdlYmtpdC10cmFuc2l0aW9uOiB2YXIoLS1hbnN3ZXItcHJlLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICArICctbW96LXRyYW5zaXRpb246IHZhcigtLWFuc3dlci1wcmUtdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJy1vLXRyYW5zaXRpb246IHZhcigtLWFuc3dlci1wcmUtdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJy1tcy10cmFuc2l0aW9uOiB2YXIoLS1hbnN3ZXItcHJlLXRyYW5zaXRpb24pIH0nIH19YAogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9ID4gcHJlIGEsICMke2FwcC5jc3NQcmVmaXh9ID4gcHJlIGE6dmlzaXRlZCB7IGNvbG9yOiAjNDQ5NWQ0IH1gCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0gcHJlIGE6aG92ZXIgeyBjb2xvcjogJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJ3doaXRlJyA6ICcjMjhhMDE3JyB9fWAKICAgICAgICAgICAgICArICdAa2V5ZnJhbWVzIHB1bHNlIHsgMCUsIHRvIHsgb3BhY2l0eTogMSB9IDUwJSB7IG9wYWNpdHk6IC41IH19JwogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9IHNlY3Rpb24ubG9hZGluZyB7IHBhZGRpbmc6IDE1cHggMCAxNHB4IDVweCB9YCAvLyBsZWZ0L3RvcC1wYWQgbG9hZGluZyBzdGF0dXMgd2hlbiBzZW5kaW5nIHJlcGxpZXMKICAgICAgICAgICAgICArIGAuJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRucyB7YAogICAgICAgICAgICAgICAgICArIGBmbG9hdDogcmlnaHQgOyBmaWxsOiAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnd2hpdGUnIDogJyM2ZjZmNmYnIH19YAogICAgICAgICAgICAgICsgYGNvZGUgIyR7YXBwLmNzc1ByZWZpeH0tY29weS1idG4geyBwb3NpdGlvbjogcmVsYXRpdmUgOyB0b3A6IC02cHggOyByaWdodDogLTlweCB9YAogICAgICAgICAgICAgICsgYGNvZGUgIyR7YXBwLmNzc1ByZWZpeH0tY29weS1idG4gPiBzdmcgeyBoZWlnaHQ6IDEzcHggOyB3aWR0aDogMTNweCA7IGZpbGw6IHdoaXRlIH1gCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0tY2hhdGJhciB7YAogICAgICAgICAgICAgICAgICArIGBib3JkZXI6IHNvbGlkIDFweCAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPwogICAgICAgICAgICAgICAgICAgICAgICAoIGNvbmZpZy5iZ0FuaW1hdGlvbnNEaXNhYmxlZCA/ICcjNzc3JyA6ICcjYWFhJyApIDogJyM2MzhlZDQnIH0gO2AKICAgICAgICAgICAgICAgICAgKyAnYm9yZGVyLXJhZGl1czogMTJweCAxM3B4IDEycHggMCA7IG1hcmdpbjogMTNweCAwIDE1cHggMCA7IHBhZGRpbmc6IDEzcHggNTVweCAxM3B4IDEwcHggOycKICAgICAgICAgICAgICAgICAgKyBgcG9zaXRpb246IHJlbGF0aXZlIDsgei1pbmRleDogNTU1IDsgY29sb3I6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICcjZWVlJyA6ICcjMjIyJyB9IDtgCiAgICAgICAgICAgICAgICAgICsgJ2hlaWdodDogMTZweCA7IG1heC1oZWlnaHQ6IDIwMHB4IDsgcmVzaXplOiBub25lIDsnCiAgICAgICAgICAgICAgICAgICsgYGJhY2tncm91bmQ6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdsaWdodCcgPyAnI2VlZWVlZTllJwogICAgICAgICAgICAgICAgICAgICAgICA6IGAjNTE1MTUxJHsgY29uZmlnLmJnQW5pbWF0aW9uc0Rpc2FibGVkID8gJycgOiAnOWUnIH1gIH0gO2AKICAgICAgICAgICAgICAgICAgKyBgJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2xpZ2h0JyA/ICdib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgxNSwxNywxNywwLjEpIGluc2V0JyA6ICcnIH19YAogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9LWNoYXRiYXI6Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBhdXRvIDFweCB9YAogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LXJlbGF0ZWQtcXVlcmllcyB7YAogICAgICAgICAgICAgICAgICArICdkaXNwbGF5OiBmbGV4IDsgZmxleC13cmFwOiB3cmFwIDsgd2lkdGg6IDEwMCUgOyBtYXJnaW4tYm90dG9tOiAxOXB4IH0nCiAgICAgICAgICAgICAgKyBgLiR7YXBwLmNzc1ByZWZpeH0tcmVsYXRlZC1xdWVyeSB7YAogICAgICAgICAgICAgICAgICArIGBmb250LXNpemU6ICR7IGVudi5icm93c2VyLmlzTW9iaWxlID8gMSA6IDAuODF9ZW0gOyBjdXJzb3I6IHBvaW50ZXIgO2AKICAgICAgICAgICAgICAgICAgKyAnYm94LXNpemluZzogYm9yZGVyLWJveCA7IHdpZHRoOiBmaXQtY29udGVudCA7IG1heC13aWR0aDogMTAwJSA7JyAvLyBjb25maW5lIHRvIG91dGVyIGRpdgogICAgICAgICAgICAgICAgICArICdtYXJnaW46IDVweCA0cHggN3B4IDAgOyBwYWRkaW5nOiA4cHggMTJweCA4cHggMTNweCA7JwogICAgICAgICAgICAgICAgICArIGBjb2xvcjogJHsgZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gKCBjb25maWcuYmdBbmltYXRpb25zRGlzYWJsZWQgPyAnI2NjYycgOiAnI2YyZjJmMicgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyM3Njc2NzYnIH0gO2AKICAgICAgICAgICAgICAgICAgKyBgYmFja2dyb3VuZDogJHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5iZ0FuaW1hdGlvbnNEaXNhYmxlZCA/ICggZW52LnVpLmFwcC5zY2hlbWUgPT0gJ2RhcmsnID8gJyM0MDQwNDAnIDogJyNkYWRhZGExMicgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKCBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnIzU5NTg1OGQ2JyA6ICcjZmJmYmZiYjAnICl9IDtgCiAgICAgICAgICAgICAgICAgICsgYGJvcmRlcjogMXB4IHNvbGlkICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICgKICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmJnQW5pbWF0aW9uc0Rpc2FibGVkID8gJyM1ZjVmNWYnIDogJyM3NzcnICkgOiAnI2UxZTFlMScgfSA7YAogICAgICAgICAgICAgICAgICArICdib3JkZXItcmFkaXVzOiAwIDEzcHggMTJweCAxM3B4IDsgZmxleDogMCAwIGF1dG8gOycKICAgICAgICAgICAgICAgICAgKyBgYm94LXNoYWRvdzogMXB4IDRweCAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPwogICAgICAgICAgICAgICAgICAgICAgICBgJHsgY29uZmlnLmJnQW5pbWF0aW9uc0Rpc2FibGVkID8gMTAgOiAxOCB9cHggLThweCBsaWdodGdyYXlgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICc4cHggLTZweCByZ2JhKDE2OSwxNjksMTY5LDAuNzUpJyB9O2AKICAgICAgICAgICAgICAgICAgKyBgJHsgY29uZmlnLmZnQW5pbWF0aW9uc0Rpc2FibGVkID8gJycgOiAvLyBzbW9vdGhlbiBob3Zlci16b29tCiAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc2l0aW9uOiB2YXIoLS1ycS10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgICAgICsgJy13ZWJraXQtdHJhbnNpdGlvbjogdmFyKC0tcnEtdHJhbnNpdGlvbikgOyAtbW96LXRyYW5zaXRpb246IHZhcigtLXJxLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnLW8tdHJhbnNpdGlvbjogdmFyKC0tcnEtdHJhbnNpdGlvbikgOyAtbXMtdHJhbnNpdGlvbjogdmFyKC0tcnEtdHJhbnNpdGlvbiknIH19YAogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LXJlbGF0ZWQtcXVlcnk6aG92ZXIsIC4ke2FwcC5jc3NQcmVmaXh9LXJlbGF0ZWQtcXVlcnk6Zm9jdXMge2AKICAgICAgICAgICAgICAgICAgKyAoIGNvbmZpZy5mZ0FuaW1hdGlvbnNEaXNhYmxlZCB8fCBlbnYuYnJvd3Nlci5pc01vYmlsZSA/ICcnCiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RyYW5zZm9ybTogc2NhbGUoMS4wNTUpICFpbXBvcnRhbnQgOycgKQogICAgICAgICAgICAgICAgICArIGBiYWNrZ3JvdW5kOiAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnI2EyYTJhMjcwJwogICAgICAgICAgICAgICAgICAgICAgOiAnI2RhZTVmZmEzIDsgY29sb3I6ICMwMDAwMDBhOCA7IGJvcmRlci1jb2xvcjogI2EzYzlmZicgfX1gCiAgICAgICAgICAgICAgKyBgLiR7YXBwLmNzc1ByZWZpeH0tcmVsYXRlZC1xdWVyeSBzdmcge2AgLy8gcmVsYXRlZCBxdWVyeSBpY29uCiAgICAgICAgICAgICAgICAgICsgJ2Zsb2F0OiBsZWZ0IDsgbWFyZ2luOiAtMC4wOWVtIDZweCAwIDAgOycKICAgICAgICAgICAgICAgICAgKyBgY29sb3I6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICcjYWFhJyA6ICcjYzFjMWMxJyB9fWAKICAgICAgICAgICAgICArICcuZmFkZS1pbiB7IG9wYWNpdHk6IDAgOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgfScKICAgICAgICAgICAgICArICcuZmFkZS1pbi1sZXNzIHsgb3BhY2l0eTogMCA7JwogICAgICAgICAgICAgICAgICArICd0cmFuc2l0aW9uOiB2YXIoLS1mYWRlLWluLWxlc3MtdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy13ZWJraXQtdHJhbnNpdGlvbjogdmFyKC0tZmFkZS1pbi1sZXNzLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctbW96LXRyYW5zaXRpb246IHZhcigtLWZhZGUtaW4tbGVzcy10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICAgICAgICAgKyAnLW8tdHJhbnNpdGlvbjogdmFyKC0tZmFkZS1pbi1sZXNzLXRyYW5zaXRpb24pIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctbXMtdHJhbnNpdGlvbjogdmFyKC0tZmFkZS1pbi1sZXNzLXRyYW5zaXRpb24pIH0nCiAgICAgICAgICAgICAgKyAnLmZhZGUtaW4uYWN0aXZlLCAuZmFkZS1pbi1sZXNzLmFjdGl2ZSB7IG9wYWNpdHk6IDEgOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgfScKICAgICAgICAgICAgICArIGAuJHthcHAuY3NzUHJlZml4fS1jaGF0YmFyLWJ0biB7YAogICAgICAgICAgICAgICAgICArICd6LWluZGV4OiA1NjAgOycKICAgICAgICAgICAgICAgICAgKyAnYm9yZGVyOiBub25lIDsgZmxvYXQ6IHJpZ2h0IDsgcG9zaXRpb246IHJlbGF0aXZlIDsgYmFja2dyb3VuZDogbm9uZSA7IGN1cnNvcjogcG9pbnRlciA7JwogICAgICAgICAgICAgICAgICArIGBib3R0b206ICR7KCBlbnYuYnJvd3Nlci5pc0ZGID8gNDYgOiA0OSApICsgKCBlbnYudWkuc2l0ZS5oYXNTaWRlYmFyID8gMyA6IDIgKX1weCA7YAogICAgICAgICAgICAgICAgICArIGAkeyBlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycgPyAnY29sb3I6ICNhYWEgOyBmaWxsOiAjYWFhIDsgc3Ryb2tlOiAjYWFhJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdjb2xvcjogbGlnaHRncmV5IDsgZmlsbDogbGlnaHRncmV5IDsgc3Ryb2tlOiBsaWdodGdyZXknIH19YAogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LWNoYXRiYXItYnRuOmhvdmVyIHtgCiAgICAgICAgICAgICAgICAgICsgYCR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICdjb2xvcjogd2hpdGUgOyBmaWxsOiB3aGl0ZSA7IHN0cm9rZTogd2hpdGUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdjb2xvcjogIzYzOGVkNCA7IGZpbGw6ICM2MzhlZDQgOyBzdHJva2U6ICM2MzhlZDQnIH19YAogICAgICAgICAgICAgICsgKCAvLyBtYXJrZG93biBzdHlsZXMKICAgICAgICAgICAgICAgICAgICBgIyR7YXBwLmNzc1ByZWZpeH0gPiBwcmUgaDEgeyBmb250LXNpemU6IDEuMjVlbSB9YAogICAgICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSA+IHByZSBoMiB7IGZvbnQtc2l6ZTogMS4xZW0gfWAgLy8gc2l6ZSBoZWFkaW5ncwogICAgICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSA+IHByZSA+IHA6bGFzdC1vZi10eXBlIHsgbWFyZ2luLWJvdHRvbTogLTEuMjVlbSB9YCAvLyBlbGltaW5hdGUgYm90dG9tIGdhcAogICAgICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSA+IHByZSBvbCB7IHBhZGRpbmctbGVmdDogMS41OGVtIH1gIC8vIGluZGVudAogICAgICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSA+IHByZSB1bCB7IG1hcmdpbjogLTEwcHggMCAtNnB4IDsgcGFkZGluZy1sZWZ0OiAxLjVlbSB9YCAvLyByZWR1Y2Ugdi1zcGFjaW5nLCBpbmRlbnQKICAgICAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0gPiBwcmUgbGkgeyBtYXJnaW46IC0xMHB4IDAgOyBsaXN0LXN0eWxlOiB1bnNldCB9YCApIC8vIHJlZHVjZSB2LXNwYWNpbmcsIHNob3cgbGVmdCBzeW1ib2xzCiAgICAgICAgICAgICAgKyAnY29kZS5obGpzIHsgdGV4dC13cmFwOiBub3dyYXAgOyBvdmVyZmxvdy14OiBzY3JvbGwgfScgLy8gZG9uJ3Qgd3JhcCBoaWdobGlnaHRlZCBjb2RlIHRvIGJlIHNjcm9sbGFibGUgaG9yaXpvbnRhbGx5CiAgICAgICAgICAgICAgKyAnLmthdGV4LWh0bWwgeyBkaXNwbGF5OiBub25lIH0nIC8vIGhpZGUgdW5yZW5kZXJlZCBtYXRoCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0gZm9vdGVyIHtgCiAgICAgICAgICAgICAgICAgICsgJ3Bvc2l0aW9uOiByZWxhdGl2ZSA7IHRleHQtYWxpZ246IHJpZ2h0IDsgZm9udC1zaXplOiAwLjc1cmVtIDsgbGluZS1oZWlnaHQ6IDEuNDNlbSA7JwogICAgICAgICAgICAgICAgICArIGByaWdodDogJHsgZW52LmJyb3dzZXIuaXNGRiA/IC01NCA6IC03MiB9cHggO2AKICAgICAgICAgICAgICAgICAgKyBgbWFyZ2luOiAkeyBlbnYuYnJvd3Nlci5pc0ZGID8gMSA6IC0yIH1weCAtMzJweCAxMnB4IH1gCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0gZm9vdGVyICogeyBjb2xvcjogI2FhYSA7IHRleHQtZGVjb3JhdGlvbjogbm9uZSB9YAogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9IGZvb3RlciBhOmhvdmVyIHsgY29sb3I6ICR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnYmxhY2snIH19YAogICAgICAgICAgICAgICsgJy5jaGF0Z3B0LW5vdGlmIHsgZmlsbDogd2hpdGUgOyBzdHJva2U6IHdoaXRlIDsgZm9udC1zaXplOiAyNXB4ICFpbXBvcnRhbnQgOyBwYWRkaW5nOiAxM3B4IDE0cHggMTNweCAxM3B4ICFpbXBvcnRhbnQgfScKICAgICAgICAgICAgICArICcubm90aWYtY2xvc2UtYnRuIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50IH0nIC8vIGhpZGUgbm90aWYgY2xvc2UgYnRuCiAgICAgICAgICAgICAgKyBgLiR7YXBwLmNzc1ByZWZpeH0tbWVudSB7YAogICAgICAgICAgICAgICAgICArICdwb3NpdGlvbjogYWJzb2x1dGUgOyB6LWluZGV4OiAxMjI1MCA7JwogICAgICAgICAgICAgICAgICArICdwYWRkaW5nOiAzLjVweCA1cHggIWltcG9ydGFudCA7IGZvbnQtZmFtaWx5OiAiU291cmNlIFNhbnMgUHJvIiwgc2Fucy1zZXJpZiA7IGZvbnQtc2l6ZTogMTJweCB9JwogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LW1lbnUgdWwgeyBtYXJnaW46IDAgOyBwYWRkaW5nOiAwIDsgbGlzdC1zdHlsZTogbm9uZSB9YAogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LW1lbnUtaXRlbSB7IHBhZGRpbmc6IDAgNXB4IDsgbGluZS1oZWlnaHQ6IDIwLjVweCB9YAogICAgICAgICAgICAgICsgYC4ke2FwcC5jc3NQcmVmaXh9LW1lbnUtaXRlbTpub3QoLiR7YXBwLmNzc1ByZWZpeH0tbWVudS1oZWFkZXIpOmhvdmVyIHtgCiAgICAgICAgICAgICAgICAgICsgJ2N1cnNvcjogcG9pbnRlciA7IGJhY2tncm91bmQ6IHdoaXRlIDsgY29sb3I6IGJsYWNrIDsgZmlsbDogYmxhY2sgfScKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS1jaGVja21hcmstaWNvbiB7IGZpbGw6ICNiM2Y5NmQgfWAKICAgICAgICAgICAgICArIGAuJHthcHAuY3NzUHJlZml4fS1tZW51LWl0ZW06aG92ZXIgIyR7YXBwLmNzc1ByZWZpeH0tY2hlY2ttYXJrLWljb24geyBmaWxsOiBncmVlbiB9YAoKICAgICAgICAgICAgICAvLyBXaWRlciBTaWRlYmFyIHN0eWxlcwogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9LndpZGVyIHsgbWluLXdpZHRoOiA0NTVweCB9CiAgICAgICAgICAgICAgICAgIyR7YXBwLmNzc1ByZWZpeH0ud2lkZXIgfiBkaXYgeyBtaW4td2lkdGg6IDUwOHB4IH1gIC8vIGV4cGFuZCBzaWRlIHNuaXBwZXRzCiAgICAgICAgICAgICAgKyBgI2NlbnRlcl9jb2w6aGFzKH4gZGl2ICMke2FwcC5jc3NQcmVmaXh9LndpZGVyKSwKICAgICAgICAgICAgICAgICAgICAjY2VudGVyX2NvbDpoYXMofiBkaXYgIyR7YXBwLmNzc1ByZWZpeH0ud2lkZXIpIGRpdiB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNTE2cHggfWAgLy8gc2hyaW5rIGNlbnRlciBjb2x1bW4vY2hpbGRyZW4KICAgICAgICAgICAgICArIGBkaXY6aGFzKD4gIyR7YXBwLmNzc1ByZWZpeH0ud2lkZXIpIHtgIC8vIHNoaWZ0IHNpZGViYXIgbGVmdCB0byBhbGlnbiB3LyBza2lubmllciBjZW50ZXIgY29sdW1uCiAgICAgICAgICAgICAgICAgICsgJ3Bvc2l0aW9uOiByZWxhdGl2ZSA7IGxlZnQ6IC0xMzZweCB9JwoKICAgICAgICAgICAgICAvLyBTdGlja3kgU2lkZWJhciBzdHlsZXMKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS5zdGlja3kgeyBwb3NpdGlvbjogc3RpY2t5IDsgdG9wOiA4N3B4IH0KICAgICAgICAgICAgICAgICAjJHthcHAuY3NzUHJlZml4fS5zdGlja3kgfiAqIHsgZGlzcGxheTogbm9uZSB9YCAvLyBoaWRlIHNpZGViYXIgY29udGVudHMKCiAgICAgICAgICAgICAgLy8gQW5jaG9yIE1vZGUgc3R5bGVzCiAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0uYW5jaG9yZWQgeyBwb3NpdGlvbjogZml4ZWQgOyBib3R0b206IC03cHggOyByaWdodDogMzVweCA7IHdpZHRoOiAzODhweCB9YAogICAgICAgICAgICAgICsgJyMke2FwcC5jc3NQcmVmaXh9LmV4cGFuZGVkIHsgd2lkdGg6IDUyOHB4ICFpbXBvcnRhbnQgfScKICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fS5hbmNob3JlZCAuYW5jaG9yZWQtaGlkZGVuIHsgZGlzcGxheTogbm9uZSB9YCAvLyBoaWRlIG5vbi1BbmNob3IgZWxlbXMgaW4gbW9kZQogICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9Om5vdCguYW5jaG9yZWQpIC5hbmNob3JlZC1vbmx5IHsgZGlzcGxheTogbm9uZSB9YCAvLyBoaWRlIEFuY2hvciBlbGVtcyBvdXRzaWRlIG1vZGUKCiAgICAgICAgICAgICAgLy8gVG91Y2ggZGV2aWNlIHN0eWxlcwogICAgICAgICAgICAgICsgJ0BtZWRpYSAoaG92ZXI6IG5vbmUpIHsnCiAgICAgICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9IC5hcHAtaG92ZXItb25seSB7IGRpc3BsYXk6IGluaXRpYWwgfWAgLy8gc2hvdyBhcHAtaG92ZXItb25seSBlbGVtcwogICAgICAgICAgICAgICsgJ30nCgogICAgICAgICAgICAgIC8vIFBob25lIHN0eWxlcwogICAgICAgICAgICAgICsgJ0BtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7JwogICAgICAgICAgICAgICAgICArIGAjJHthcHAuY3NzUHJlZml4fSAjJHthcHAuY3NzUHJlZml4fS1sb2dvIHtgIC8vIGhlYWRlciBsb2dvLi4uCiAgICAgICAgICAgICAgICAgICAgICArICd0b3A6IDAgOyB3aWR0aDogY2FsYygxMDAlIC0gMTU0cHgpIH0nIC8vIHJlbW92ZSB5LXBvcywgd2lkZW4gdGlsbCBidG5zCiAgICAgICAgICAgICAgICAgICsgYCMke2FwcC5jc3NQcmVmaXh9IC5rdWRvYWkgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQgfWAgLy8gaGlkZSBieWxpbmUKICAgICAgICAgICAgICAgICAgKyBgIyR7YXBwLmNzc1ByZWZpeH0gW2NsYXNzKj1yZXBseS10aXBdIHsgZGlzcGxheTogbm9uZSB9YCAvLyBoaWRlIHJlcGx5IHRpcAogICAgICAgICAgICAgICsgJ30nCiAgICAgICAgICAgICkKICAgICAgICB9LAoKICAgICAgICBieWxpbmVWaXNpYmlsaXR5KCkgewogICAgICAgICAgICBpZiAoZW52LmJyb3dzZXIuaXNQaG9uZSkgcmV0dXJuIC8vIHNpbmNlIGJ5bGluZSBoaWRkZW4gYnkgYXBwLnN0eWxlcwogICAgICAgICAgICBjb25zdCBoZWFkZXJFbGVtcyA9IHsKICAgICAgICAgICAgICAgIGFwcFByZWZpeDogYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoJyNhcHAtcHJlZml4JyksCiAgICAgICAgICAgICAgICBidG5zOiBhcHBEaXYucXVlcnlTZWxlY3RvckFsbCgnW2lkJD0taGVhZGVyLWJ0bnNdID4gYnRuJyksCiAgICAgICAgICAgICAgICBieWxpbmU6IGFwcERpdi5xdWVyeVNlbGVjdG9yKCcua3Vkb2FpJyksCiAgICAgICAgICAgICAgICBsb2dvOiBhcHBEaXYucXVlcnlTZWxlY3RvcihgIyR7YXBwLmNzc1ByZWZpeH0tbG9nb2ApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgYXBwRGl2U3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGFwcERpdikKICAgICAgICAgICAgY29uc3QgZm9yY2VEaXNwbGF5U3R5bGVzID0gJ3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdmlzaWJpbGl0eTogaGlkZGVuOyBkaXNwbGF5OiBibG9jazsnCgogICAgICAgICAgICAvLyBDYWxjL3N0b3JlIHdpZHRocyBvZiBhcHAveC1wYWRkaW5nICsgaGVhZGVyIGVsZW1zCiAgICAgICAgICAgIGNvbnN0IHdpZHRocyA9IHsKICAgICAgICAgICAgICAgIGFwcERpdjogYXBwRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLAogICAgICAgICAgICAgICAgYXBwRGl2WHBhZGRpbmc6IHBhcnNlRmxvYXQoYXBwRGl2U3R5bGUucGFkZGluZ0xlZnQpICsgcGFyc2VGbG9hdChhcHBEaXZTdHlsZS5wYWRkaW5nUmlnaHQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoaGVhZGVyRWxlbXMpLmZvckVhY2goKFtrZXksIGVsZW1dKSA9PiB7CiAgICAgICAgICAgICAgICBpZiAoZWxlbSAmJiBrZXkgPT0gJ2J5bGluZScgJiYgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKS5kaXNwbGF5ID09ICdub25lJykKICAgICAgICAgICAgICAgICAgICBlbGVtLnN0eWxlLmNzc1RleHQgKz0gZm9yY2VEaXNwbGF5U3R5bGVzIC8vIG92ZXJyaWRlIGhpZGRlbiBieWxpbmUgZGlzcGxheSBzdHlsZSB0byBtZWFzdXJlIHdpZHRoCiAgICAgICAgICAgICAgICB3aWR0aHNba2V5XSA9IGRvbS5nZXRDb21wdXRlZFdpZHRoKGVsZW0pCiAgICAgICAgICAgICAgICBpZiAoZWxlbT8uc3R5bGU/LmNzc1RleHQuaW5jbHVkZXMoZm9yY2VEaXNwbGF5U3R5bGVzKSkgLy8gcmVzdG9yZSBkaXNwbGF5IHN0eWxlIGZvciBoaWRkZW4gYnlsaW5lCiAgICAgICAgICAgICAgICAgICAgZWxlbS5zdHlsZS5jc3NUZXh0ID0gZWxlbS5zdHlsZS5jc3NUZXh0LnJlcGxhY2UoZm9yY2VEaXNwbGF5U3R5bGVzLCAnJykKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIC8vIEhpZGUvc2hvdyBieWxpbmUgYmFzZWQgb24gc3BhY2UgYXZhaWxhYmxlCiAgICAgICAgICAgIGNvbnN0IGF2YWlsU3BhY2UgPSB3aWR0aHMuYXBwRGl2IC0gd2lkdGhzLmFwcERpdlhwYWRkaW5nIC0gd2lkdGhzLmFwcFByZWZpeCAtIHdpZHRocy5sb2dvIC0gd2lkdGhzLmJ0bnMKICAgICAgICAgICAgaGVhZGVyRWxlbXMuYnlsaW5lLnN0eWxlLmRpc3BsYXkgPSAod2lkdGhzLmJ5bGluZSArMTApIDwgYXZhaWxTcGFjZSA/ICdpbml0aWFsJyA6ICdub25lJwogICAgICAgIH0sCgogICAgICAgIGNoYXRiYXJXaWR0aCgpIHsKICAgICAgICAgICAgY29uc3QgY2hhdGJhciA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKGAjJHthcHAuY3NzUHJlZml4fS1jaGF0YmFyYCkKICAgICAgICAgICAgaWYgKGNoYXRiYXIpIGNoYXRiYXIuc3R5bGUud2lkdGggPSBgJHsKICAgICAgICAgICAgICAgIGVudi5icm93c2VyLmlzTW9iaWxlID8gODEuNAogICAgICAgICAgICAgIDogY29uZmlnLmFuY2hvcmVkID8gKCBjb25maWcuZXhwYW5kZWQgPyA4Ny40IDogODMuMyApCiAgICAgICAgICAgICAgOiBjb25maWcud2lkZXJTaWRlYmFyID8gKCBlbnYudWkuc2l0ZS5oYXNTaWRlYmFyID8gODUuNCA6IDg1LjkgKSA6ICggZW52LnVpLnNpdGUuaGFzU2lkZWJhciA/IDc5LjMgOiA4MC4xICl9JWAKICAgICAgICB9LAoKICAgICAgICBmb290ZXJDb250ZW50KCkgewogICAgICAgICAgICBnZXQuanNvbignaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL0t1ZG9BSS9hZHMtbGlicmFyeS9hZHZlcnRpc2Vycy9pbmRleC5qc29uJywKICAgICAgICAgICAgICAgIChlcnIsIGFkdmVydGlzZXJzRGF0YSkgPT4geyBpZiAoZXJyKSByZXR1cm4KCiAgICAgICAgICAgICAgICAgICAgLy8gSW5pdCB2YXJzCiAgICAgICAgICAgICAgICAgICAgbGV0IGNob3NlbkFkdmVydGlzZXIsIGFkU2VsZWN0ZWQKICAgICAgICAgICAgICAgICAgICBjb25zdCByZV9hcHBOYW1lID0gbmV3IFJlZ0V4cChhcHAubmFtZS50b0xvd2VyQ2FzZSgpLCAnaScpCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSAoKCkgPT4geyAvLyBpbiBZWVlZTU1ERCBmb3JtYXQKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLCB5ZWFyID0gdG9kYXkuZ2V0RnVsbFllYXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGggPSBTdHJpbmcodG9kYXkuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheSA9IFN0cmluZyh0b2RheS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJykKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHllYXIgKyBtb250aCArIGRheQogICAgICAgICAgICAgICAgICAgIH0pKCkKCiAgICAgICAgICAgICAgICAgICAgLy8gU2VsZWN0IHJhbmRvbSwgYWN0aXZlIGFkdmVydGlzZXIKICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFthZHZlcnRpc2VyLCBkZXRhaWxzXSBvZiBzaHVmZmxlKGFwcGx5Qm9vc3RzKE9iamVjdC5lbnRyaWVzKGFkdmVydGlzZXJzRGF0YSkpKSkKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbHMuY2FtcGFpZ25zLnRleHQpIHsgY2hvc2VuQWR2ZXJ0aXNlciA9IGFkdmVydGlzZXIgOyBicmVhayB9CgogICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIGEgcmFuZG9tLCBhY3RpdmUgY3JlYXRpdmUKICAgICAgICAgICAgICAgICAgICBpZiAoY2hvc2VuQWR2ZXJ0aXNlcikgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1wYWlnbnNVUkwgPSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL0t1ZG9BSS9hZHMtbGlicmFyeS9hZHZlcnRpc2Vycy8nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNob3NlbkFkdmVydGlzZXIgKyAnL3RleHQvY2FtcGFpZ25zLmpzb24nCiAgICAgICAgICAgICAgICAgICAgICAgIGdldC5qc29uKGNhbXBhaWduc1VSTCwgKGVyciwgY2FtcGFpZ25zRGF0YSkgPT4geyBpZiAoZXJyKSByZXR1cm4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgcmFuZG9tLCBhY3RpdmUgY2FtcGFpZ24KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2NhbXBhaWduTmFtZSwgY2FtcGFpZ25dIG9mIHNodWZmbGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlCb29zdHMoT2JqZWN0LmVudHJpZXMoY2FtcGFpZ25zRGF0YSkpKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FtcGFpZ25Jc0FjdGl2ZSA9IGNhbXBhaWduLmFjdGl2ZSAmJiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFjYW1wYWlnbi5lbmREYXRlIHx8IGN1cnJlbnREYXRlIDw9IGNhbXBhaWduLmVuZERhdGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW1wYWlnbklzQWN0aXZlKSBjb250aW51ZSAvLyB0byBuZXh0IGNhbXBhaWduIHNpbmNlIGNhbXBhaWduIGluYWN0aXZlCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbGVjdCByYW5kb20gYWN0aXZlIGdyb3VwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBbZ3JvdXBOYW1lLCBhZEdyb3VwXSBvZiBzaHVmZmxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBseUJvb3N0cyhPYmplY3QuZW50cmllcyhjYW1wYWlnbi5hZEdyb3VwcykpKSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCBkaXNxdWFsaWZpZWQgZ3JvdXBzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggLy8gc2VsZi1ncm91cCBmb3Igb3RoZXIgYXBwcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL15zZWxmJC9pLnRlc3QoZ3JvdXBOYW1lKSAmJiAhcmVfYXBwTmFtZS50ZXN0KGNhbXBhaWduTmFtZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICggLy8gbm9uLXNlbGYgZ3JvdXAgZm9yIHRoaXMgYXBwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVfYXBwTmFtZS50ZXN0KGNhbXBhaWduTmFtZSkgJiYgIS9ec2VsZiQvaS50ZXN0KGdyb3VwTmFtZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBhZEdyb3VwLmFjdGl2ZSA9PSBmYWxzZSAvLyBncm91cCBleHBsaWNpdGx5IGRpc2FibGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBhZEdyb3VwLnRhcmdldEJyb3dzZXJzICYmIC8vIHRhcmdldCBicm93c2VyKHMpIGV4aXN0Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWFkR3JvdXAudGFyZ2V0QnJvd3NlcnMuc29tZSggLy8gLi4uYnV0IGRvZXNuJ3QgbWF0Y2ggdXNlcidzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXIgPT4gbmV3IFJlZ0V4cChicm93c2VyLCAnaScpLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBhZEdyb3VwLnRhcmdldExvY2F0aW9ucyAmJiAoIC8vIHRhcmdldCBsb2NhbGUocykgZXhpc3QuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi5idXQgdXNlciBsb2NhbGUgaXMgbWlzc2luZyBvciBleGNsdWRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFlbnYudXNlckxvY2FsZSB8fCAhYWRHcm91cC50YXJnZXRMb2NhdGlvbnMuc29tZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jID0+IGxvYy5pbmNsdWRlcyhlbnYudXNlckxvY2FsZSkgfHwgZW52LnVzZXJMb2NhbGUuaW5jbHVkZXMobG9jKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgY29udGludWUgLy8gdG8gbmV4dCBncm91cAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIG91dCBpbmFjdGl2ZSBhZHMsIHBpY2sgcmFuZG9tIGFjdGl2ZSBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlQWRzID0gYWRHcm91cC5hZHMuZmlsdGVyKGFkID0+IGFkLmFjdGl2ZSAhPSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUFkcy5sZW5ndGggPT0gMCkgY29udGludWUgLy8gdG8gbmV4dCBncm91cCBzaW5jZSBubyBhZHMgYWN0aXZlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNob3NlbkFkID0gKCAvLyByYW5kb20gYWN0aXZlIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQWRzW01hdGguZmxvb3IoY2hhdGdwdC5yYW5kb21GbG9hdCgpICogYWN0aXZlQWRzLmxlbmd0aCldKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQnVpbGQgZGVzdGluYXRpb24gVVJMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXN0aW5hdGlvblVSTCA9IGNob3NlbkFkLmRlc3RpbmF0aW9uVVJMIHx8IGFkR3JvdXAuZGVzdGluYXRpb25VUkwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGNhbXBhaWduLmRlc3RpbmF0aW9uVVJMIHx8ICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXN0aW5hdGlvblVSTC5pbmNsdWRlcygnaHR0cCcpKSB7IC8vIGluc2VydCBVVE0gdGFncwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2Jhc2VVUkwsIHF1ZXJ5U3RyaW5nXSA9IGRlc3RpbmF0aW9uVVJMLnNwbGl0KCc/JyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnlTdHJpbmcgfHwgJycpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtcy5zZXQoJ3V0bV9zb3VyY2UnLCBhcHAubmFtZS50b0xvd2VyQ2FzZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXMuc2V0KCd1dG1fY29udGVudCcsICdhcHBfZm9vdGVyX2xpbmsnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25VUkwgPSBiYXNlVVJMICsgJz8nICsgcXVlcnlQYXJhbXMudG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgZm9vdGVyIGNvbnRlbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3Rm9vdGVyQ29udGVudCA9IGRlc3RpbmF0aW9uVVJMID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS5jcmVhdGUuYW5jaG9yKGRlc3RpbmF0aW9uVVJMLCB7IGNsYXNzOiAnYW5jaG9yZWQtaGlkZGVuJyB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlckNvbnRlbnQucmVwbGFjZVdpdGgobmV3Rm9vdGVyQ29udGVudCkgOyBmb290ZXJDb250ZW50ID0gbmV3Rm9vdGVyQ29udGVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJDb250ZW50LnRleHRDb250ZW50ID0gY2hvc2VuQWQudGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJDb250ZW50LnNldEF0dHJpYnV0ZSgndGl0bGUnLCBjaG9zZW5BZC50b29sdGlwIHx8ICcnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZFNlbGVjdGVkID0gdHJ1ZSA7IGJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZFNlbGVjdGVkKSBicmVhayAvLyBvdXQgb2YgY2FtcGFpZ24gbG9vcCBhZnRlciBhZCBzZWxlY3Rpb24KICAgICAgICAgICAgfX0pfX0pCgogICAgICAgICAgICBmdW5jdGlvbiBzaHVmZmxlKGxpc3QpIHsKICAgICAgICAgICAgICAgIGxldCBjdXJyZW50SWR4ID0gbGlzdC5sZW5ndGgsIHRlbXBWYWx1ZSwgcmFuZG9tSWR4CiAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudElkeCAhPSAwKSB7IC8vIGVsZW1lbnRzIHJlbWFpbiB0byBiZSBzaHVmZmxlZAogICAgICAgICAgICAgICAgICAgIHJhbmRvbUlkeCA9IE1hdGguZmxvb3IoY2hhdGdwdC5yYW5kb21GbG9hdCgpICogY3VycmVudElkeCkgOyBjdXJyZW50SWR4IC09IDEKICAgICAgICAgICAgICAgICAgICB0ZW1wVmFsdWUgPSBsaXN0W2N1cnJlbnRJZHhdIDsgbGlzdFtjdXJyZW50SWR4XSA9IGxpc3RbcmFuZG9tSWR4XSA7IGxpc3RbcmFuZG9tSWR4XSA9IHRlbXBWYWx1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGxpc3QKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gYXBwbHlCb29zdHMobGlzdCkgewogICAgICAgICAgICAgICAgbGV0IGJvb3N0ZWRMaXN0ID0gWy4uLmxpc3RdLAogICAgICAgICAgICAgICAgICAgIGJvb3N0ZWRMaXN0TGVuZ3RoID0gYm9vc3RlZExpc3QubGVuZ3RoIC0gMSAvLyBmb3IgYXBwbHlpbmcgbXVsdGlwbGUgYm9vc3RzCiAgICAgICAgICAgICAgICBsaXN0LmZvckVhY2goKFtuYW1lLCBkYXRhXSkgPT4geyAvLyBjaGVjayBmb3IgYm9vc3RzCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuYm9vc3QpIHsgLy8gYm9vc3QgZmxhZ2dlZCBlbnRyeSdzIHNlbGVjdGlvbiBwcm9iYWJpbGl0eQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29zdFBlcmNlbnQgPSBwYXJzZUludChkYXRhLmJvb3N0KSAvIDEwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cmllc05lZWRlZCA9IE1hdGguY2VpbChib29zdGVkTGlzdExlbmd0aCAvICgxIC0gYm9vc3RQZXJjZW50KSkgLy8gdG90YWwgZW50cmllcyBuZWVkZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJvb3N0UGVyY2VudCAtIDEgLy8gcmVkdWNlZCB0byBib29zdGVkIGVudHJpZXMgbmVlZGVkCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwIDsgaSA8IGVudHJpZXNOZWVkZWQgOyBpKyspIGJvb3N0ZWRMaXN0LnB1c2goW25hbWUsIGRhdGFdKSAvLyBzYXR1cmF0ZSBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIGJvb3N0ZWRMaXN0TGVuZ3RoICs9IGVudHJpZXNOZWVkZWQgLy8gdXBkYXRlIGZvciBzdWJzZXF1ZW50IGNhbGN1bGF0aW9ucwogICAgICAgICAgICAgICAgfX0pCiAgICAgICAgICAgICAgICByZXR1cm4gYm9vc3RlZExpc3QKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHJlcGx5UHJlZml4KCkgewogICAgICAgICAgICBjb25zdCBmaXJzdFAgPSBhcHBEaXYucXVlcnlTZWxlY3RvcigncHJlIHAnKQogICAgICAgICAgICBpZiAoIWZpcnN0UCkgcmV0dXJuCiAgICAgICAgICAgIGNvbnN0IHByZWZpeE5lZWRlZCA9IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyAmJiAhY29uZmlnLmJnQW5pbWF0aW9uc0Rpc2FibGVkLAogICAgICAgICAgICAgICAgICBwcmVmaXhFeGlzdHMgPSBmaXJzdFAudGV4dENvbnRlbnQuc3RhcnRzV2l0aCgnPj4gJykKICAgICAgICAgICAgaWYgKHByZWZpeE5lZWRlZCAmJiAhcHJlZml4RXhpc3RzKSBmaXJzdFAucHJlcGVuZCgnPj4gJykKICAgICAgICAgICAgZWxzZSBpZiAoIXByZWZpeE5lZWRlZCAmJiBwcmVmaXhFeGlzdHMpIGZpcnN0UC50ZXh0Q29udGVudCA9IGZpcnN0UC50ZXh0Q29udGVudC5yZXBsYWNlKC9ePj4gLywgJycpCiAgICAgICAgfSwKCiAgICAgICAgcnFWaXNpYmlsaXR5KCkgewogICAgICAgICAgICBjb25zdCByZWxhdGVkUXVlcmllc0RpdiA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKGAuJHthcHAuY3NzUHJlZml4fS1yZWxhdGVkLXF1ZXJpZXNgKQogICAgICAgICAgICBpZiAocmVsYXRlZFF1ZXJpZXNEaXYpIC8vIHVwZGF0ZSB2aXNpYmlsaXR5IGJhc2VkIG9uIGxhdGVzdCBzZXR0aW5nCiAgICAgICAgICAgICAgICByZWxhdGVkUXVlcmllc0Rpdi5zdHlsZS5kaXNwbGF5ID0gY29uZmlnLnJxRGlzYWJsZWQgfHwgY29uZmlnLmFuY2hvcmVkID8gJ25vbmUnIDogJ2ZsZXgnCiAgICAgICAgfSwKCiAgICAgICAgc2NoZW1lKG5ld1NjaGVtZSkgewogICAgICAgICAgICBsb2cuY2FsbGVyID0gYHVwZGF0ZS5zY2hlbWUoJyR7bmV3U2NoZW1lfScpYAogICAgICAgICAgICBsb2cuZGVidWcoYFVwZGF0aW5nICR7YXBwLm5hbWV9IHNjaGVtZSB0byAke2xvZy50b1RpdGxlQ2FzZShuZXdTY2hlbWUpfS4uLmApCiAgICAgICAgICAgIGVudi51aS5hcHAuc2NoZW1lID0gbmV3U2NoZW1lIDsgbG9nb3MuZ29vZ2xlR1BULnVwZGF0ZSgpIDsgaWNvbnMuZ29vZ2xlR1BULnVwZGF0ZSgpIDsgdXBkYXRlLmFwcFN0eWxlKCkKICAgICAgICAgICAgdXBkYXRlLnN0YXJzKCkgOyB1cGRhdGUucmVwbHlQcmVmaXgoKSA7IHRvZ2dsZS5idG5HbG93KCkgOyBtb2RhbHMuc2V0dGluZ3MudXBkYXRlU2NoZW1lU3RhdHVzKCkKICAgICAgICAgICAgbG9nLmRlYnVnKGBTdWNjZXNzISAke2FwcC5uYW1lfSB1cGRhdGVkIHRvICR7bG9nLnRvVGl0bGVDYXNlKG5ld1NjaGVtZSl9IHNjaGVtZWApCiAgICAgICAgfSwKCiAgICAgICAgc3RhcnMoKSB7CiAgICAgICAgICAgIFsnc20nLCAnbWVkJywgJ2xnJ10uZm9yRWFjaChzaXplID0+CiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBbaWQqPXN0YXJzLSR7c2l6ZX1dYCkuZm9yRWFjaChzdGFyc0RpdiA9PgogICAgICAgICAgICAgICAgICAgIHN0YXJzRGl2LmlkID0gY29uZmlnLmJnQW5pbWF0aW9uc0Rpc2FibGVkID8gYHN0YXJzLSR7c2l6ZX0tb2ZmYAogICAgICAgICAgICAgICAgICAgIDogYCR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnYmxhY2snIH0tc3RhcnMtJHtzaXplfWAKICAgICAgICAgICAgKSkKICAgICAgICB9CiAgICB9CgogICAgLy8gRGVmaW5lIFVJIGZ1bmN0aW9ucwoKICAgIGZ1bmN0aW9uIGlzRGFya01vZGUoKSB7CgogICAgICAgIC8vIERhcmsgdGhlbWUgc3RhdHVzIGVsZW0gbWV0aG9kCiAgICAgICAgY29uc3QgZG9tRGFya1N0YXR1cyA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuJyldCiAgICAgICAgICAgIC5maW5kKHNwYW4gPT4gc3Bhbi50ZXh0Q29udGVudCA9PSAnRGFyayB0aGVtZScpIC8vIGRhcmsgdGhlbWUgc3RhdHVzIGxhYmVsCiAgICAgICAgICAgID8ubmV4dEVsZW1lbnRTaWJsaW5nLnRleHRDb250ZW50IC8vIGRhcmsgdGhlbWUgc3RhdHVzCiAgICAgICAgaWYgKGRvbURhcmtTdGF0dXMpIHJldHVybiBkb21EYXJrU3RhdHVzID09ICdPbicKCiAgICAgICAgLy8gVmFuaWxsYSBsb2dvIG1ldGhvZAogICAgICAgIGZvciAoY29uc3QgaW1nIG9mIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbWcnKSkKICAgICAgICAgICAgaWYgKGltZy5hbHQgPT0gJ0dvb2dsZScgJiYgaW1nLnNyYy5pbmNsdWRlcygnbGlnaHQnKSkKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlCgogICAgICAgIC8vIEZpbmFsIGZhbGxiYWNrIHRvIG1hdGNoTWVkaWEKICAgICAgICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWE/LignKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpPy5tYXRjaGVzCiAgICB9CgogICAgY29uc3QgYWRkTGlzdGVuZXJzID0gewoKICAgICAgICBhcHBEaXYoKSB7CiAgICAgICAgICAgIGFwcERpdi5hZGRFdmVudExpc3RlbmVyKGlucHV0RXZlbnRzLmRvd24sIGV2ZW50ID0+IHsgLy8gdG8gZGlzbWlzcyB2aXNpYmxlIGZvbnQgc2l6ZSBzbGlkZXIKICAgICAgICAgICAgICAgIGlmIChldmVudC5idXR0b24gIT0gMCkgcmV0dXJuIC8vIHByZXZlbnQgbm9uLWxlZnQtY2xpY2sgZGlzbWlzc2FsCiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLXNsaWRlci10cmFja2ApIC8vIHNsaWRlciBpcyB2aXNpYmxlCiAgICAgICAgICAgICAgICAgICAgJiYgIWV2ZW50LnRhcmdldC5jbG9zZXN0KCdbaWQqPWZvbnQtc2l6ZV0nKSAvLyBub3QgY2xpY2tpbmcgc2xpZGVyIGVsZW0KICAgICAgICAgICAgICAgICAgICAmJiBnZXRDb21wdXRlZFN0eWxlKGV2ZW50LnRhcmdldCkuY3Vyc29yICE9ICdwb2ludGVyJykgLy8gLi4ub3Igb3RoZXIgaW50ZXJhY3RpdmUgZWxlbQogICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZVNsaWRlci50b2dnbGUoJ29mZicpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIGFwcERpdi5vbm1vdXNlb3ZlciA9IGFwcERpdi5vbm1vdXNlb3V0ID0gdXBkYXRlLmJ5bGluZVZpc2liaWxpdHkgLy8gZm9yIGJ0bi5hcHAtaG92ZXItb25seSBzaG93cwogICAgICAgIH0sCgogICAgICAgIGFwcEhlYWRlckJ0bnMoKSB7CiAgICAgICAgICAgIGFwcERpdi5xdWVyeVNlbGVjdG9yQWxsKGAuJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRuYCkuZm9yRWFjaChidG4gPT4geyAvLyBmcm9tIHJpZ2h0IHRvIGxlZnQKICAgICAgICAgICAgICAgIGlmIChidG4uaWQuZW5kc1dpdGgoJ2NoZXZyb24tYnRuJykpIGJ0bi5vbmNsaWNrID0gKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGlmIChhcHBEaXYucXVlcnlTZWxlY3RvcignW2lkJD1mb250LXNpemUtc2xpZGVyLXRyYWNrXScpPy5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKQogICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZVNsaWRlci50b2dnbGUoJ29mZicpCiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLm1pbmltaXplZCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmIChidG4uaWQuZW5kc1dpdGgoJ2Fib3V0LWJ0bicpKSBidG4ub25jbGljayA9ICgpID0+IG1vZGFscy5vcGVuKCdhYm91dCcpCiAgICAgICAgICAgICAgICBlbHNlIGlmIChidG4uaWQuZW5kc1dpdGgoJ3NldHRpbmdzLWJ0bicpKSBidG4ub25jbGljayA9ICgpID0+IG1vZGFscy5vcGVuKCdzZXR0aW5ncycpCiAgICAgICAgICAgICAgICBlbHNlIGlmIChidG4uaWQuZW5kc1dpdGgoJ3NwZWFrLWJ0bicpKSBidG4ub25jbGljayA9ICgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCB3aG9sZUFuc3dlciA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKCdwcmUnKS50ZXh0Q29udGVudAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNqc1NwZWFrT3B0aW9ucyA9IHsgdm9pY2U6IDIsIHBpdGNoOiAxLCBzcGVlZDogMS41IH0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzZ3REaWFsZWN0TWFwID0gWwogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdlbicsIHJlZ2V4OiAvXihlbmcobGlzaCk/fGVuKC1cd1x3KT8pJC9pLCByYXRlOiAyIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY29kZTogJ2FyJywgcmVnZXg6IC9eKGFyYT8oYmljKT982KfZhNmE2LrYqSDYp9mE2LnYsdio2YrYqSkkL2ksIHJhdGU6IDEuNSB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdjcycsIHJlZ2V4OiAvXihjemUoY2gpP3xbY8SNXWVbc8WhXS4qfGNzKSQvaSwgcmF0ZTogMS40IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY29kZTogJ2RhJywgcmVnZXg6IC9eZGFuPyhpc2h8c2spPyQvaSwgcmF0ZTogMS4zIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY29kZTogJ2RlJywgcmVnZXg6IC9eKGdlcm1hbnxkZXU/KHRzY2gpPykkL2ksIHJhdGU6IDEuNSB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdlcycsIHJlZ2V4OiAvXihzcGEobmlzaCk/fGVzcGEuKnxlcygtXHdcdyk/KSQvaSwgcmF0ZTogMS41IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY29kZTogJ2ZpJywgcmVnZXg6IC9eKGZpbj8obmlzaCk/fHN1b20uKikkL2ksIHJhdGU6IDEuNCB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdmcicsIHJlZ2V4OiAvXmZyL2ksIHJhdGU6IDEuMiB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdodScsIHJlZ2V4OiAvXihodW4/KGdhcmlhbik/fG1hZ3lhcikkL2ksIHJhdGU6IDEuNSB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdpdCcsIHJlZ2V4OiAvXml0YT8obGlhblthb10/KT8kL2ksIHJhdGU6IDEuNCB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdqYScsIHJlZ2V4OiAvXihqYT9wYT9uKGVzZSk/fOaXpeacrOiqnnxqYSkkL2ksIHJhdGU6IDEuNSB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdubCcsIHJlZ2V4OiAvXihkdXQoY2gpP3xmbGVtaXNofG5lZGVybGFuZHNlP3x2bGFhbXNlP3xubGQ/KSQvaSwgcmF0ZTogMS4zIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY29kZTogJ3BsJywgcmVnZXg6IC9ecG8/bChpc2h8c2tpKT8kL2ksIHJhdGU6IDEuNCB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdwdCcsIHJlZ2V4OiAvXihwb3IodHVndVtlw6pdc2U/KT98cHQoLVx3XHcpPykkL2ksIHJhdGU6IDEuNSB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdydScsIHJlZ2V4OiAvXihydXM/KHNpYW4pP3zRgNGD0YHRgdC60LjQuSkkL2ksIHJhdGU6IDEuMyB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICdzdicsIHJlZ2V4OiAvXihzd2U/KGRpc2gpP3xzdihlbnNrYSk/KSQvaSwgcmF0ZTogMS40IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY29kZTogJ3RyJywgcmVnZXg6IC9edFt1w7xdP3Ioay4qKT8kL2ksIHJhdGU6IDEuNiB9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGNvZGU6ICd2aScsIHJlZ2V4OiAvXnZpW2Xhu4ddP3Q/KG5hbWVzZSk/JC9pLCByYXRlOiAxLjUgfSwKICAgICAgICAgICAgICAgICAgICAgICAgeyBjb2RlOiAnemgtQ0hTJywgcmVnZXg6IC9eKGNoaShuZXNlKT98emh85LitW+WbveWci10pL2ksIHJhdGU6IDIgfQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzZ3RSZXBseURpYWxlY3QgPSBzZ3REaWFsZWN0TWFwLmZpbmQoZW50cnkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkucmVnZXgudGVzdChjb25maWcucmVwbHlMYW5ndWFnZSkpIHx8IHNndERpYWxlY3RNYXBbMF0KICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gewogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB3aG9sZUFuc3dlciwgY3VyVGltZTogRGF0ZS5ub3coKSwgc3Bva2VuRGlhbGVjdDogc2d0UmVwbHlEaWFsZWN0LmNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHJhdGU6IHNndFJlcGx5RGlhbGVjdC5yYXRlLnRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoJzc2MzUwYjE4NDBmZjk4MzJlYjYyNDRhYzZkNDQ0MzY2JykKICAgICAgICAgICAgICAgICAgICBjb25zdCBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKAogICAgICAgICAgICAgICAgICAgICAgICBhdG9iKCdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT0nKSB8fCAnNzYzNTBiMTg0MGZmOTgzMmViNjI0NGFjNmQ0NDQzNjYnKQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY3VyZVBheWxvYWQgPSBDcnlwdG9KUy5BRVMuZW5jcnlwdChKU09OLnN0cmluZ2lmeShwYXlsb2FkKSwga2V5LCB7CiAgICAgICAgICAgICAgICAgICAgICAgIGl2OiBpdiwgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsIHBhZDogQ3J5cHRvSlMucGFkLlBrY3M3IH0pLnRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICB4aHIoeyAvLyBhdWRpbyBmcm9tIFNvZ291IFRUUwogICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2ZhbnlpLnNvZ291LmNvbS9vcGVuYXBpL2V4dGVybmFsL2dldFdlYlRUUz9TLUFwcElkPTEwMjM1Njg0NSZTLVBhcmFtPScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZW5jb2RlVVJJQ29tcG9uZW50KHNlY3VyZVBheWxvYWQpLAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLCByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsCiAgICAgICAgICAgICAgICAgICAgICAgIG9ubG9hZDogYXN5bmMgcmVzcCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcC5zdGF0dXMgIT0gMjAwKSBjaGF0Z3B0LnNwZWFrKHdob2xlQW5zd2VyLCBjanNTcGVha09wdGlvbnMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdWRpb0NvbnRleHQgPSBuZXcgKHdpbmRvdy5BdWRpb0NvbnRleHQgfHwgd2luZG93LndlYmtpdEF1ZGlvQ29udGV4dCkoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvQ29udGV4dC5kZWNvZGVBdWRpb0RhdGEocmVzcC5yZXNwb25zZSwgYnVmZmVyID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXVkaW9TcmMgPSBhdWRpb0NvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9TcmMuYnVmZmVyID0gYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvU3JjLmNvbm5lY3QoYXVkaW9Db250ZXh0LmRlc3RpbmF0aW9uKSAvLyBjb25uZWN0IHNvdXJjZSB0byBzcGVha2VycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb1NyYy5zdGFydCgwKSAvLyBwbGF5IGF1ZGlvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4gY2hhdGdwdC5zcGVhayh3aG9sZUFuc3dlciwgY2pzU3BlYWtPcHRpb25zKSkKICAgICAgICAgICAgICAgICAgICB9fX0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmIChidG4uaWQuZW5kc1dpdGgoJ2ZvbnQtc2l6ZS1idG4nKSkgYnRuLm9uY2xpY2sgPSAoKSA9PiBmb250U2l6ZVNsaWRlci50b2dnbGUoKQogICAgICAgICAgICAgICAgZWxzZSBpZiAoYnRuLmlkLmVuZHNXaXRoKCdwaW4tYnRuJykpIGJ0bi5vbm1vdXNlb3ZlciA9IGJ0bi5vbm1vdXNlb3V0ID0gbWVudXMucGluLnRvZ2dsZQogICAgICAgICAgICAgICAgZWxzZSBpZiAoYnRuLmlkLmVuZHNXaXRoKCd3c2ItYnRuJykpCiAgICAgICAgICAgICAgICAgICAgYnRuLm9uY2xpY2sgPSBldmVudCA9PiB7IHRvZ2dsZS5zaWRlYmFyKCd3aWRlcicpIDsgdG9nZ2xlLnRvb2x0aXAoZXZlbnQpIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJ0bi5pZC5lbmRzV2l0aCgnYXJyb3dzLWJ0bicpKSBidG4ub25jbGljayA9ICgpID0+IHRvZ2dsZS5leHBhbmRlZE1vZGUoKQogICAgICAgICAgICAgICAgaWYgKCFlbnYuYnJvd3Nlci5pc01vYmlsZSAmJiAhYnRuLmlkLmVuZHNXaXRoKCdwaW4tYnRuJykpIC8vIGFkZCBob3ZlciBsaXN0ZW5lcnMgZm9yIHRvb2x0aXBzCiAgICAgICAgICAgICAgICAgICAgYnRuLm9ubW91c2VlbnRlciA9IGJ0bi5vbm1vdXNlbGVhdmUgPSB0b2dnbGUudG9vbHRpcAogICAgICAgICAgICAgICAgaWYgKC9hYm91dHxzZXR0aW5nc3xzcGVhay8udGVzdChidG4uaWQpKSBidG4ub25tb3VzZXVwID0gKCkgPT4geyAvLyBhZGQgem9vbS9mYWRlLW91dCB0byBzZWxlY3QgYnV0dG9ucwogICAgICAgICAgICAgICAgICAgIGlmIChjb25maWcuZmdBbmltYXRpb25zRGlzYWJsZWQpIHJldHVybgogICAgICAgICAgICAgICAgICAgIGJ0bi5zdHlsZS5hbmltYXRpb24gPSAnYnRuLXpvb20tZmFkZS1vdXQgLjIyMHMgZWFzZS1vdXQnCiAgICAgICAgICAgICAgICAgICAgYnRuLm9uYW5pbWF0aW9uZW5kID0gKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGJ0bi5zdHlsZSwgeyBvcGFjaXR5OiAnMCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nLCBhbmltYXRpb246ICcnIH0pIC8vIGhpZGUgYnRuCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gLy8gc2hvdyBidG4gYWZ0ZXIgc2hvcnQgZGVsYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYnRuLnN0eWxlLCB7IHZpc2liaWxpdHk6ICd2aXNpYmxlJywgb3BhY2l0eTogJzEnIH0pLCAxMDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0sCgogICAgICAgIHJlcGx5U2VjdGlvbigpIHsKCiAgICAgICAgICAgIC8vIEFkZCBmb3JtIGtleSBsaXN0ZW5lcgogICAgICAgICAgICBjb25zdCByZXBseUZvcm0gPSBhcHBEaXYucXVlcnlTZWxlY3RvcignZm9ybScpCiAgICAgICAgICAgIHJlcGx5Rm9ybS5vbmtleWRvd24gPSBldmVudCA9PiB7CiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09ICdFbnRlcicgfHwgZXZlbnQua2V5Q29kZSA9PSAxMykgewogICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5jdHJsS2V5KSB7IC8vIGFkZCBuZXdsaW5lCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXRUZXh0YXJlYSA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKGAjJHthcHAuY3NzUHJlZml4fS1jaGF0YmFyYCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmV0UG9zID0gY2hhdFRleHRhcmVhLnNlbGVjdGlvblN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QmVmb3JlID0gY2hhdFRleHRhcmVhLnZhbHVlLnN1YnN0cmluZygwLCBjYXJldFBvcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBZnRlciA9IGNoYXRUZXh0YXJlYS52YWx1ZS5zdWJzdHJpbmcoY2FyZXRQb3MpCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRUZXh0YXJlYS52YWx1ZSA9IHRleHRCZWZvcmUgKyAnXG4nICsgdGV4dEFmdGVyIC8vIGFkZCBuZXdsaW5lCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRUZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IGNoYXRUZXh0YXJlYS5zZWxlY3Rpb25FbmQgPSBjYXJldFBvcyArIDEgLy8gcHJlc2VydmUgY2FyZXQgcG9zCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZExpc3RlbmVycy5yZXBseVNlY3Rpb24uY2hhdGJhckF1dG9TaXplcigpCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZXZlbnQuc2hpZnRLZXkpIGFkZExpc3RlbmVycy5yZXBseVNlY3Rpb24uc3VibWl0SGFuZGxlcihldmVudCkKICAgICAgICAgICAgfX0KCiAgICAgICAgICAgIC8vIEFkZCBmb3JtIHN1Ym1pdCBsaXN0ZW5lcgogICAgICAgICAgICBhZGRMaXN0ZW5lcnMucmVwbHlTZWN0aW9uLnN1Ym1pdEhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICAgICAgY29uc3QgY2hhdFRleHRhcmVhID0gYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoYCMke2FwcC5jc3NQcmVmaXh9LWNoYXRiYXJgKQoKICAgICAgICAgICAgICAgIC8vIE5vIHJlcGx5LCBjaGFuZ2UgcGxhY2Vob2xkZXIgKyBmb2N1cyBjaGF0YmFyCiAgICAgICAgICAgICAgICBpZiAoY2hhdFRleHRhcmVhLnZhbHVlLnRyaW0oKSA9PSAnJykgewogICAgICAgICAgICAgICAgICAgIGNoYXRUZXh0YXJlYS5wbGFjZWhvbGRlciA9IGAke2FwcC5tc2dzLnBsYWNlaG9sZGVyX3R5cGVTb21ldGhpbmd9Li4uYAogICAgICAgICAgICAgICAgICAgIGNoYXRUZXh0YXJlYS5mb2N1cygpCgogICAgICAgICAgICAgICAgLy8gWWVzIHJlcGx5LCBzdWJtaXQgaXQgKyB0cmFuc2Zvcm0gdG8gbG9hZGluZyBVSQogICAgICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgLy8gTW9kaWZ5L3N1Ym1pdCBtc2cgY2hhaW4KICAgICAgICAgICAgICAgICAgICBpZiAobXNnQ2hhaW4ubGVuZ3RoID4gMikgbXNnQ2hhaW4uc3BsaWNlKDAsIDIpIC8vIGtlZXAgdG9rZW4gdXNhZ2UgbWFpbnRhaW5hYmxlCiAgICAgICAgICAgICAgICAgICAgbXNnQ2hhaW4gPSBzdHJpcFF1ZXJ5QXVnbWVudHMobXNnQ2hhaW4pCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldlJlcGx5VHJpbW1lZCA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKCdwcmUnKQogICAgICAgICAgICAgICAgICAgICAgICA/LnRleHRDb250ZW50LnN1YnN0cmluZygwLCAyNTAgLSBjaGF0VGV4dGFyZWEudmFsdWUubGVuZ3RoKSB8fCAnJwogICAgICAgICAgICAgICAgICAgIG1zZ0NoYWluLnB1c2goeyByb2xlOiAnYXNzaXN0YW50JywgY29udGVudDogcHJldlJlcGx5VHJpbW1lZCB9KQogICAgICAgICAgICAgICAgICAgIG1zZ0NoYWluLnB1c2goeyByb2xlOiAndXNlcicsIGNvbnRlbnQ6IGF1Z21lbnRRdWVyeShjaGF0VGV4dGFyZWEudmFsdWUpIH0pCiAgICAgICAgICAgICAgICAgICAgZ2V0LnJlcGx5KG1zZ0NoYWluKQoKICAgICAgICAgICAgICAgICAgICAvLyBIaWRlL3JlbW92ZSBlbGVtcwogICAgICAgICAgICAgICAgICAgIGFwcERpdi5xdWVyeVNlbGVjdG9yKGAuJHthcHAuY3NzUHJlZml4fS1yZWxhdGVkLXF1ZXJpZXNgKT8ucmVtb3ZlKCkgLy8gcmVtb3ZlIHJlbGF0ZWQgcXVlcmllcwogICAgICAgICAgICAgICAgICAgIGlmICghZW52LmJyb3dzZXIuaXNNb2JpbGUpIC8vIGhpZGUgY2hhdGJhciBidXR0b24gdG9vbHRpcHMKICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcERpdi5zdHlsZS5vcGFjaXR5ID0gMAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGFwcEZvb3RlciA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKCdmb290ZXInKQogICAgICAgICAgICAgICAgICAgIGFwcEZvb3Rlci50ZXh0Q29udGVudCA9ICcnCgogICAgICAgICAgICAgICAgICAgIC8vIFNob3cgbG9hZGluZyBzdGF0dXMKICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBseVNlY3Rpb24gPSBhcHBEaXYucXVlcnlTZWxlY3Rvcignc2VjdGlvbicpCiAgICAgICAgICAgICAgICAgICAgcmVwbHlTZWN0aW9uLmNsYXNzTGlzdC5hZGQoJ2xvYWRpbmcnLCAnbm8tdXNlci1zZWxlY3QnKQogICAgICAgICAgICAgICAgICAgIHJlcGx5U2VjdGlvbi5pbm5lclRleHQgPSBhcHAuYWxlcnRzLndhaXRpbmdSZXNwb25zZQoKICAgICAgICAgICAgICAgICAgICAvLyBTZXQgZmxhZ3MKICAgICAgICAgICAgICAgICAgICBzaG93LnJlcGx5LnNyYyA9IG51bGwgOyBzaG93LnJlcGx5LmNoYXRiYXJGb2N1c2VkID0gZmFsc2UgOyBzaG93LnJlcGx5LnVzZXJJbnRlcmFjdGVkID0gdHJ1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlcGx5Rm9ybS5vbnN1Ym1pdCA9IGFkZExpc3RlbmVycy5yZXBseVNlY3Rpb24uc3VibWl0SGFuZGxlcgoKICAgICAgICAgICAgLy8gQWRkIGNoYXRiYXIgYXV0b3NpemVyCiAgICAgICAgICAgIGNvbnN0IGNoYXRUZXh0YXJlYSA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKGAjJHthcHAuY3NzUHJlZml4fS1jaGF0YmFyYCksCiAgICAgICAgICAgICAgICAgIHsgcGFkZGluZ1RvcCwgcGFkZGluZ0JvdHRvbSB9ID0gZ2V0Q29tcHV0ZWRTdHlsZShjaGF0VGV4dGFyZWEpLAogICAgICAgICAgICAgICAgICB2T2Zmc2V0ID0gcGFyc2VJbnQocGFkZGluZ1RvcCkgKyBwYXJzZUludChwYWRkaW5nQm90dG9tKQogICAgICAgICAgICBsZXQgcHJldkxlbmd0aCA9IGNoYXRUZXh0YXJlYS52YWx1ZS5sZW5ndGgKICAgICAgICAgICAgYWRkTGlzdGVuZXJzLnJlcGx5U2VjdGlvbi5jaGF0YmFyQXV0b1NpemVyID0gKCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgbmV3TGVuZ3RoID0gY2hhdFRleHRhcmVhLnZhbHVlLmxlbmd0aAogICAgICAgICAgICAgICAgaWYgKG5ld0xlbmd0aCA8IHByZXZMZW5ndGgpIHsgLy8gaWYgZGVsZXRpbmcgdHh0CiAgICAgICAgICAgICAgICAgICAgY2hhdFRleHRhcmVhLnN0eWxlLmhlaWdodCA9ICdhdXRvJyAvLyAuLi5hdXRvLWZpdCBoZWlnaHQKICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShjaGF0VGV4dGFyZWEpLmhlaWdodCkgPCAzNSkgeyAvLyBpZiBkb3duIHRvIG9uZSBsaW5lCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRUZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnMTZweCcgfSAvLyAuLi5yZXNldCB0byBvcmlnaW5hbCBoZWlnaHQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnN0IHVucGFkZGVkSGVpZ2h0ID0gY2hhdFRleHRhcmVhLnNjcm9sbEhlaWdodCAtIHZPZmZzZXQKICAgICAgICAgICAgICAgIGNoYXRUZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBgJHsgdW5wYWRkZWRIZWlnaHQgPiAyOSA/IHVucGFkZGVkSGVpZ2h0IDogMTYgfXB4YAogICAgICAgICAgICAgICAgcHJldkxlbmd0aCA9IG5ld0xlbmd0aAogICAgICAgICAgICB9CiAgICAgICAgICAgIGNoYXRUZXh0YXJlYS5vbmlucHV0ID0gYWRkTGlzdGVuZXJzLnJlcGx5U2VjdGlvbi5jaGF0YmFyQXV0b1NpemVyCgogICAgICAgICAgICAvLyBBZGQgYnV0dG9uIGxpc3RlbmVycwogICAgICAgICAgICBhcHBEaXYucXVlcnlTZWxlY3RvckFsbChgLiR7YXBwLmNzc1ByZWZpeH0tY2hhdGJhci1idG5gKS5mb3JFYWNoKGJ0biA9PiB7CiAgICAgICAgICAgICAgICBpZiAoYnRuLmlkLmVuZHNXaXRoKCdzaHVmZmxlLWJ0bicpKSBidG4ub25jbGljayA9ICgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCByYW5kUUFwcm9tcHQgPSAnR2VuZXJhdGUgYSBzaW5nbGUgcmFuZG9tIHF1ZXN0aW9uIG9uIGFueSB0b3BpYyB0aGVuIGFuc3dlciBpdC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICdEb25cJ3QgdGFsayBhYm91dCBDYW5iZXJyYSwgVG9reW8sIGJsdWUgd2hhbGVzLCBwaG90b3N5bnRoZXNpcywgb2NlYW5zLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICdkZXNlcnRzLCBtaW5kZnVsbmVzcyBtZWRpdGF0aW9uLCB0aGUgRmlib25hY2NpIHNlcXVlbmNlLCB0aGUgbGl2ZXIsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJ0p1cGl0ZXIsIHRoZSBHcmVhdCBXYWxsIG9mIENoaW5hLCBTaGVha2VzcGVhcmUgb3IgZGEgVmluY2kuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnVHJ5IHRvIGdpdmUgYW4gYW5zd2VyIHRoYXQgaXMgNTAtMTAwIHdvcmRzLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJ0RvIG5vdCB0eXBlIGFueXRoaW5nIGJ1dCB0aGUgcXVlc3Rpb24gYW5kIGFuc3dlci4gUmVwbHkgaW4gbWFya2Rvd24uJwogICAgICAgICAgICAgICAgICAgIGNoYXRUZXh0YXJlYS52YWx1ZSA9IGF1Z21lbnRRdWVyeShyYW5kUUFwcm9tcHQpCiAgICAgICAgICAgICAgICAgICAgY2hhdFRleHRhcmVhLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLAogICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogJ0VudGVyJywgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSkKICAgICAgICAgICAgICAgICAgICBzaG93LnJlcGx5LnNyYyA9ICdzaHVmZmxlJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFlbnYuYnJvd3Nlci5pc01vYmlsZSkgLy8gYWRkIGhvdmVyIGxpc3RlbmVyIGZvciB0b29sdGlwcwogICAgICAgICAgICAgICAgICAgIGJ0bi5vbm1vdXNlZW50ZXIgPSBidG4ub25tb3VzZWxlYXZlID0gdG9nZ2xlLnRvb2x0aXAKICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CgogICAgY29uc3QgZm9udFNpemVTbGlkZXIgPSB7CiAgICAgICAgZmFkZUluRGVsYXk6IDUsIC8vIG1zCiAgICAgICAgaFdoZWVsRGlzdGFuY2U6IDEwLCAvLyBweAoKICAgICAgICBjcmVhdGVBcHBlbmQoKSB7CiAgICAgICAgICAgIGxvZy5jYWxsZXIgPSAnZm9udFNpemVTbGlkZXIuY3JlYXRlQXBwZW5kKCknCiAgICAgICAgICAgIGxvZy5kZWJ1ZygnQ3JlYXRpbmcvYXBwZW5kaW5nIEZvbnQgU2l6ZSBzbGlkZXIuLi4nKQoKICAgICAgICAgICAgLy8gQ3JlYXRlL0lEL2NsYXNzaWZ5IHNsaWRlciBlbGVtcwogICAgICAgICAgICBmb250U2l6ZVNsaWRlci5jdXJzb3JPdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykKICAgICAgICAgICAgZm9udFNpemVTbGlkZXIuY3Vyc29yT3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjdXJzb3Itb3ZlcmxheScpIC8vIGZvciByZXNpemUgY3Vyc29yCiAgICAgICAgICAgIGNvbnN0IHNsaWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIDsgc2xpZGVyLmlkID0gYCR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLXNsaWRlci10cmFja2AKICAgICAgICAgICAgc2xpZGVyLmNsYXNzTmFtZSA9ICdmYWRlLWluLWxlc3MnIDsgc2xpZGVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZScKICAgICAgICAgICAgY29uc3Qgc2xpZGVyVGh1bWIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKQogICAgICAgICAgICBzbGlkZXJUaHVtYi5pZCA9IGAke2FwcC5jc3NQcmVmaXh9LWZvbnQtc2l6ZS1zbGlkZXItdGh1bWJgCiAgICAgICAgICAgIHNsaWRlclRodW1iLnRpdGxlID0gTWF0aC5mbG9vcihjb25maWcuZm9udFNpemUgKjEwKSAvMTAgKyAncHgnIC8vIGZvbnQgc2l6ZSB0b29sdGlwCiAgICAgICAgICAgIGNvbnN0IHNsaWRlclRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIDsgc2xpZGVyVGlwLmlkID0gYCR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLXNsaWRlci10aXBgCgogICAgICAgICAgICAvLyBBc3NlbWJsZS9pbnNlcnQgZWxlbXMKICAgICAgICAgICAgc2xpZGVyLmFwcGVuZChzbGlkZXJUaHVtYiwgc2xpZGVyVGlwKQogICAgICAgICAgICBhcHBEaXYuaW5zZXJ0QmVmb3JlKHNsaWRlciwgYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoYC4ke2FwcC5jc3NQcmVmaXh9LWJ0bi10b29sdGlwLGAgLy8gZGVza3RvcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJ3ByZScpKSAvLyBtb2JpbGUKICAgICAgICAgICAgLy8gSW5pdCB0aHVtYiBwb3MKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCBpbmlMZWZ0ID0gKGNvbmZpZy5mb250U2l6ZSAtIGNvbmZpZy5taW5Gb250U2l6ZSkgLyAoY29uZmlnLm1heEZvbnRTaXplIC0gY29uZmlnLm1pbkZvbnRTaXplKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIChzbGlkZXIub2Zmc2V0V2lkdGggLSBzbGlkZXJUaHVtYi5vZmZzZXRXaWR0aCkgLy8gc2xpZGVyIHdpZHRoCiAgICAgICAgICAgICAgICBzbGlkZXJUaHVtYi5zdHlsZS5sZWZ0ID0gaW5pTGVmdCArICdweCcKICAgICAgICAgICAgfSwgZm9udFNpemVTbGlkZXIuZmFkZUluRGVsYXkpIC8vIHRvIGVuc3VyZSB2aXNpYmlsaXR5IGZvciBhY2N1cmF0ZSBkaW1lbnNpb24gY2FsY3MKCiAgICAgICAgICAgIC8vIEFkZCBldmVudCBsaXN0ZW5lcnMgZm9yIGRyYWdnaW5nIHRodW1iCiAgICAgICAgICAgIGxldCBpc0RyYWdnaW5nID0gZmFsc2UsIHN0YXJ0WCwgc3RhcnRMZWZ0CiAgICAgICAgICAgIHNsaWRlclRodW1iLmFkZEV2ZW50TGlzdGVuZXIoaW5wdXRFdmVudHMuZG93biwgZXZlbnQgPT4gewogICAgICAgICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPSAwKSByZXR1cm4gLy8gcHJldmVudCBub24tbGVmdC1jbGljayBkcmFnCiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpIC8vIHByZXZlbnQgdGV4dCBzZWxlY3Rpb24KICAgICAgICAgICAgICAgIGlzRHJhZ2dpbmcgPSB0cnVlIDsgc3RhcnRYID0gZXZlbnQuY2xpZW50WCA7IHN0YXJ0TGVmdCA9IHNsaWRlclRodW1iLm9mZnNldExlZnQKICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9udFNpemVTbGlkZXIuY3Vyc29yT3ZlcmxheSkKICAgICAgICAgICAgfSkKICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihpbnB1dEV2ZW50cy5tb3ZlLCBldmVudCA9PiB7CiAgICAgICAgICAgICAgICBpZiAoaXNEcmFnZ2luZykgbW92ZVRodW1iKHN0YXJ0TGVmdCArIGV2ZW50LmNsaWVudFggLSBzdGFydFgpIH0pCiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoaW5wdXRFdmVudHMudXAsICgpID0+IHsKICAgICAgICAgICAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZQogICAgICAgICAgICAgICAgaWYgKGZvbnRTaXplU2xpZGVyLmN1cnNvck92ZXJsYXkucGFyZW50Tm9kZSkKICAgICAgICAgICAgICAgICAgICBmb250U2l6ZVNsaWRlci5jdXJzb3JPdmVybGF5LnJlbW92ZSgpCiAgICAgICAgICAgIH0pCgogICAgICAgICAgICAvLyBBZGQgZXZlbnQgbGlzdGVuZXIgZm9yIHdoZWVsLXNjcm9sbGluZyB0aHVtYgogICAgICAgICAgICBpZiAoIWVudi5icm93c2VyLmlzTW9iaWxlKSBzbGlkZXIub253aGVlbCA9IGV2ZW50ID0+IHsKICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIG1vdmVUaHVtYihzbGlkZXJUaHVtYi5vZmZzZXRMZWZ0IC0gTWF0aC5zaWduKGV2ZW50LmRlbHRhWSkgKiBmb250U2l6ZVNsaWRlci5oV2hlZWxEaXN0YW5jZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gQWRkIGV2ZW50IGxpc3RlbmVyIGZvciBzZWVrL2RyYWdnaW5nIGJ5IGlucHV0RXZlbnRzLmRvd24gb24gdHJhY2sKICAgICAgICAgICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoaW5wdXRFdmVudHMuZG93biwgZXZlbnQgPT4gewogICAgICAgICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPSAwKSByZXR1cm4gLy8gcHJldmVudCBub24tbGVmdC1jbGljayBkcmFnCiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpIC8vIHByZXZlbnQgdGV4dCBzZWxlY3Rpb24KICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFggPSBldmVudC5jbGllbnRYIHx8IGV2ZW50LnRvdWNoZXM/LlswXT8uY2xpZW50WAogICAgICAgICAgICAgICAgbW92ZVRodW1iKGNsaWVudFggLSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIHNsaWRlclRodW1iLm9mZnNldFdpZHRoIC8gMikKICAgICAgICAgICAgICAgIGlzRHJhZ2dpbmcgPSB0cnVlIDsgc3RhcnRYID0gY2xpZW50WCA7IHN0YXJ0TGVmdCA9IHNsaWRlclRodW1iLm9mZnNldExlZnQgLy8gbWFudWFsbHkgaW5pdCBkcmFnZ2luZwogICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb250U2l6ZVNsaWRlci5jdXJzb3JPdmVybGF5KQogICAgICAgICAgICB9KQoKICAgICAgICAgICAgZnVuY3Rpb24gbW92ZVRodW1iKG5ld0xlZnQpIHsKCiAgICAgICAgICAgICAgICAvLyBCb3VuZCB0aHVtYgogICAgICAgICAgICAgICAgY29uc3Qgc2xpZGVyV2lkdGggPSBzbGlkZXIub2Zmc2V0V2lkdGggLSBzbGlkZXJUaHVtYi5vZmZzZXRXaWR0aAogICAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPCAwKSBuZXdMZWZ0ID0gMAogICAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiBzbGlkZXJXaWR0aCkgbmV3TGVmdCA9IHNsaWRlcldpZHRoCgogICAgICAgICAgICAgICAgLy8gTW92ZSB0aHVtYgogICAgICAgICAgICAgICAgc2xpZGVyVGh1bWIuc3R5bGUubGVmdCA9IG5ld0xlZnQgKyAncHgnCgogICAgICAgICAgICAgICAgLy8gQWRqdXN0IGZvbnQgc2l6ZSBiYXNlZCBvbiB0aHVtYiBwb3NpdGlvbgogICAgICAgICAgICAgICAgY29uc3QgYW5zd2VyUHJlID0gYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoJ3ByZScpLAogICAgICAgICAgICAgICAgICAgICAgZm9udFNpemVQZXJjZW50ID0gbmV3TGVmdCAvIHNsaWRlcldpZHRoLAogICAgICAgICAgICAgICAgICAgICAgZm9udFNpemUgPSBjb25maWcubWluRm9udFNpemUgKyBmb250U2l6ZVBlcmNlbnQgKiAoY29uZmlnLm1heEZvbnRTaXplIC0gY29uZmlnLm1pbkZvbnRTaXplKQogICAgICAgICAgICAgICAgYW5zd2VyUHJlLnN0eWxlLmZvbnRTaXplID0gZm9udFNpemUgKyAncHgnCiAgICAgICAgICAgICAgICBhbnN3ZXJQcmUuc3R5bGUubGluZUhlaWdodCA9IGZvbnRTaXplICogY29uZmlnLmxpbmVIZWlnaHRSYXRpbyArICdweCcKICAgICAgICAgICAgICAgIHNldHRpbmdzLnNhdmUoJ2ZvbnRTaXplJywgZm9udFNpemUpCiAgICAgICAgICAgICAgICBzbGlkZXJUaHVtYi50aXRsZSA9IE1hdGguZmxvb3IoY29uZmlnLmZvbnRTaXplICoxMCkgLzEwICsgJ3B4JwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gc2xpZGVyCiAgICAgICAgfSwKCiAgICAgICAgdG9nZ2xlKHN0YXRlID0gJycpIHsKICAgICAgICAgICAgY29uc3Qgc2xpZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLXNsaWRlci10cmFja2ApCiAgICAgICAgICAgICAgICAgICAgICAgICB8fCBmb250U2l6ZVNsaWRlci5jcmVhdGVBcHBlbmQoKQogICAgICAgICAgICBjb25zdCByZXBseVRpcCA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKGAuJHthcHAuY3NzUHJlZml4fS1yZXBseS10aXBgKQogICAgICAgICAgICBjb25zdCBzbGlkZXJUaXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHthcHAuY3NzUHJlZml4fS1mb250LXNpemUtc2xpZGVyLXRpcGApCgogICAgICAgICAgICAvLyBTaG93IHNsaWRlcgogICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ29uJyB8fCAoIXN0YXRlICYmIHNsaWRlci5zdHlsZS5kaXNwbGF5ID09ICdub25lJykpIHsKCiAgICAgICAgICAgICAgICAvLyBQb3NpdGlvbiBzbGlkZXIgdGlwCiAgICAgICAgICAgICAgICBjb25zdCBidG5TcGFuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7YXBwLmNzc1ByZWZpeH0tZm9udC1zaXplLWJ0bmApLAogICAgICAgICAgICAgICAgICAgICAgcmVjdHMgPSB7IGFwcERpdjogYXBwRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCBidG5TcGFuOiBidG5TcGFuLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIH0KICAgICAgICAgICAgICAgIHNsaWRlclRpcC5zdHlsZS5yaWdodCA9IGAkewogICAgICAgICAgICAgICAgICAgIHJlY3RzLmFwcERpdi5yaWdodCAtICggcmVjdHMuYnRuU3Bhbi5sZWZ0ICsgcmVjdHMuYnRuU3Bhbi5yaWdodCApLzIgLTM1LjUgfXB4YAoKICAgICAgICAgICAgICAgIC8vIFNob3cgc2xpZGVyLCBoaWRlIHJlcGx5IHRpcAogICAgICAgICAgICAgICAgc2xpZGVyLnN0eWxlLmRpc3BsYXkgPSBzbGlkZXJUaXAuc3R5bGUuZGlzcGxheSA9ICcnIDsgaWYgKHJlcGx5VGlwKSByZXBseVRpcC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHNsaWRlci5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKSwgZm9udFNpemVTbGlkZXIuZmFkZUluRGVsYXkpCgogICAgICAgICAgICAvLyBIaWRlIHNsaWRlcgogICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlID09ICdvZmYnIHx8ICghc3RhdGUgJiYgc2xpZGVyLnN0eWxlLmRpc3BsYXkgIT0gJ25vbmUnKSkgewogICAgICAgICAgICAgICAgc2xpZGVyLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpIDsgaWYgKHJlcGx5VGlwKSByZXBseVRpcC5zdHlsZS5kaXNwbGF5ID0gJycKICAgICAgICAgICAgICAgIHNsaWRlclRpcC5zdHlsZS5kaXNwbGF5ID0gc2xpZGVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZScKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyBEZWZpbmUgVE9HR0xFIGZ1bmN0aW9ucwoKICAgIGNvbnN0IHRvZ2dsZSA9IHsKCiAgICAgICAgYW5jaG9yTW9kZShzdGF0ZSA9ICcnKSB7CiAgICAgICAgICAgIGxvZy5jYWxsZXIgPSBgdG9nZ2xlLmFuY2hvck1vZGUoJHsgc3RhdGUgPyBgJyR7c3RhdGV9J2AgOiAnJyB9KWAKICAgICAgICAgICAgY29uc3QgcHJldlN0YXRlID0gY29uZmlnLmFuY2hvcmVkIC8vIGZvciByZXN0cmFpbmluZyBub3RpZiBpZiBubyBjaGFuZ2UgZnJvbSBQaW4gbWVudSAnU2lkZWJhcicgY2xpY2sKCiAgICAgICAgICAgIC8vIFNhdmUgbmV3IHN0YXRlICsgZGlzYWJsZSBpbmNvbXBhdGlibGUgbW9kZXMKICAgICAgICAgICAgaWYgKHN0YXRlID09ICdvbicgfHwgIXN0YXRlICYmICFjb25maWcuYW5jaG9yZWQpIHsKICAgICAgICAgICAgICAgIHNldHRpbmdzLnNhdmUoJ2FuY2hvcmVkJywgdHJ1ZSk7CiAgICAgICAgICAgICAgICBbJ3N0aWNreScsICd3aWRlciddLmZvckVhY2gobW9kZSA9PiBjb25maWdbYCR7bW9kZX1TaWRlYmFyYF0gJiYgdG9nZ2xlLnNpZGViYXIobW9kZSkpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzZXR0aW5ncy5zYXZlKCdhbmNob3JlZCcsIGZhbHNlKQogICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5leHBhbmRlZCkgdG9nZ2xlLmV4cGFuZGVkTW9kZSgnb2ZmJykKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocHJldlN0YXRlID09IGNvbmZpZy5hbmNob3JlZCkgcmV0dXJuCgogICAgICAgICAgICAvLyBBcHBseSBjaGFuZ2VkIHN0YXRlIHRvIFVJCiAgICAgICAgICAgIGFwcERpdi5jbGFzc0xpc3RbY29uZmlnLmFuY2hvcmVkID8gJ2FkZCcgOiAncmVtb3ZlJ10oJ2FuY2hvcmVkJykKICAgICAgICAgICAgdXBkYXRlLnJxVmlzaWJpbGl0eSgpIDsgdXBkYXRlLmFuc3dlclByZU1heEhlaWdodCgpIDsgdXBkYXRlLmNoYXRiYXJXaWR0aCgpCiAgICAgICAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKGFwcERpdikudHJhbnNpdGlvblByb3BlcnR5LmluY2x1ZGVzKCd3aWR0aCcpKSAvLyB1cGRhdGUgYnlsaW5lIHZpc2liaWxpdHkKICAgICAgICAgICAgICAgIGFwcERpdi5hZGRFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJywgZnVuY3Rpb24gb25UcmFuc2l0aW9uRW5kKGV2ZW50KSB7IC8vIC4uLmFmdGVyIHdpZHRoIHRyYW5zaXRpb24KICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQucHJvcGVydHlOYW1lID09ICd3aWR0aCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlLmJ5bGluZVZpc2liaWxpdHkoKSA7IGFwcERpdi5yZW1vdmVFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJywgb25UcmFuc2l0aW9uRW5kKQogICAgICAgICAgICB9fSkKICAgICAgICAgICAgaWYgKG1vZGFscy5zZXR0aW5ncy5nZXQoKSkgeyAvLyB1cGRhdGUgdmlzdWFsIHN0YXRlIG9mIFNldHRpbmdzIHRvZ2dsZQogICAgICAgICAgICAgICAgY29uc3QgYW5jaG9yVG9nZ2xlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2lkKj1hbmNob3JdW2lkKj1tZW51LWVudHJ5XSBpbnB1dCcpCiAgICAgICAgICAgICAgICBpZiAoYW5jaG9yVG9nZ2xlLmNoZWNrZWQgIT0gY29uZmlnLmFuY2hvcmVkKSBtb2RhbHMuc2V0dGluZ3MudG9nZ2xlLnN3aXRjaChhbmNob3JUb2dnbGUpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgbWVudXMucGluLnRvcFBvcyA9IG1lbnVzLnBpbi5yaWdodFBvcyA9IG51bGwKICAgICAgICAgICAgbm90aWZ5KGAke2FwcC5tc2dzLm1vZGVfYW5jaG9yfSAke21lbnUuc3RhdGUud29yZHNbK2NvbmZpZy5hbmNob3JlZF19YCkKICAgICAgICB9LAoKICAgICAgICBhbmltYXRpb25zKGxheWVyKSB7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ0tleSA9IGAke2xheWVyfUFuaW1hdGlvbnNEaXNhYmxlZGAKICAgICAgICAgICAgc2V0dGluZ3Muc2F2ZShjb25maWdLZXksICFjb25maWdbY29uZmlnS2V5XSkKICAgICAgICAgICAgdXBkYXRlLmFwcFN0eWxlKCkgOyBpZiAobGF5ZXIgPT0gJ2JnJykgeyB1cGRhdGUuc3RhcnMoKSA7IHVwZGF0ZS5yZXBseVByZWZpeCgpIH0KICAgICAgICAgICAgaWYgKGxheWVyID09ICdmZycgJiYgbW9kYWxzLnNldHRpbmdzLmdldCgpKSB7CgogICAgICAgICAgICAgICAgLy8gVG9nZ2xlIHRpY2tlci1zY3JvbGwgb2YgQWJvdXQgc3RhdHVzIGxhYmVsCiAgICAgICAgICAgICAgICBjb25zdCBhYm91dFN0YXR1c0xhYmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Fib3V0LXNldHRpbmdzLWVudHJ5ID4gc3BhbiA+IGRpdicpCiAgICAgICAgICAgICAgICBhYm91dFN0YXR1c0xhYmVsLmlubmVySFRNTCA9IG1vZGFscy5zZXR0aW5ncy5hYm91dENvbnRlbnRbCiAgICAgICAgICAgICAgICAgICAgY29uZmlnLmZnQW5pbWF0aW9uc0Rpc2FibGVkID8gJ3Nob3J0JyA6ICdsb25nJ10KICAgICAgICAgICAgICAgIGFib3V0U3RhdHVzTGFiZWwuc3R5bGUuZmxvYXQgPSBjb25maWcuZmdBbmltYXRpb25zRGlzYWJsZWQgPyAncmlnaHQnIDogJycKCiAgICAgICAgICAgICAgICAvLyBUb2dnbGUgYnV0dG9uIGdsb3cKICAgICAgICAgICAgICAgIGlmIChlbnYudWkuYXBwLnNjaGVtZSA9PSAnZGFyaycpIHRvZ2dsZS5idG5HbG93KCkKICAgICAgICAgICAgfQogICAgICAgICAgICBub3RpZnkoYCR7c2V0dGluZ3MuY29udHJvbHNbY29uZmlnS2V5XS5sYWJlbH0gJHttZW51LnN0YXRlLndvcmRzWyshY29uZmlnW2NvbmZpZ0tleV1dfWApCiAgICAgICAgfSwKCiAgICAgICAgYXV0b0dldCgpIHsKICAgICAgICAgICAgc2V0dGluZ3Muc2F2ZSgnYXV0b0dldCcsICFjb25maWcuYXV0b0dldCkKICAgICAgICAgICAgaWYgKGFwcERpdi5xdWVyeVNlbGVjdG9yKCdbY2xhc3MqPXN0YW5kYnktYnRuXScpKSBzaG93LnJlcGx5LnN0YW5kYnlCdG5DbGlja0hhbmRsZXIoKQogICAgICAgICAgICBpZiAoY29uZmlnLmF1dG9HZXQpIC8vIGRpc2FibGUgUHJlZml4L1N1ZmZpeCBtb2RlIGlmIGVuYWJsZWQKICAgICAgICAgICAgICAgIFsncHJlZml4JywgJ3N1ZmZpeCddLmZvckVhY2gobW9kZSA9PiBjb25maWdbYCR7bW9kZX1FbmFibGVkYF0gJiYgdG9nZ2xlLm1hbnVhbEdldChtb2RlKSkKICAgICAgICAgICAgbm90aWZ5KGAke3NldHRpbmdzLmNvbnRyb2xzLmF1dG9HZXQubGFiZWx9ICR7bWVudS5zdGF0ZS53b3Jkc1srY29uZmlnLmF1dG9HZXRdfWApCiAgICAgICAgICAgIGlmIChtb2RhbHMuc2V0dGluZ3MuZ2V0KCkpIHsgLy8gdXBkYXRlIHZpc3VhbCBzdGF0ZSBvZiBTZXR0aW5ncyB0b2dnbGUKICAgICAgICAgICAgICAgIGNvbnN0IGF1dG9HZXRUb2dnbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbaWQqPWF1dG9HZXRdW2lkKj1tZW51LWVudHJ5XSBpbnB1dCcpCiAgICAgICAgICAgICAgICBpZiAoYXV0b0dldFRvZ2dsZS5jaGVja2VkICE9IGNvbmZpZy5hdXRvR2V0KSBtb2RhbHMuc2V0dGluZ3MudG9nZ2xlLnN3aXRjaChhdXRvR2V0VG9nZ2xlKQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgYnRuR2xvdyhzdGF0ZSA9ICcnKSB7CiAgICAgICAgICAgIGNvbnN0IHRvUmVtb3ZlID0gc3RhdGUgPT0gJ29mZicgfHwgZW52LnVpLmFwcC5zY2hlbWUgIT0gJ2RhcmsnIHx8IGNvbmZpZy5mZ0FuaW1hdGlvbnNEaXNhYmxlZAogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbY2xhc3MqPS1tb2RhbF0gYnV0dG9uJykuZm9yRWFjaCgoYnRuLCBpZHgpID0+IHsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gYnRuLmNsYXNzTGlzdFt0b1JlbW92ZSA/ICdyZW1vdmUnIDogJ2FkZCddKCdnbG93aW5nLWJ0bicpLAogICAgICAgICAgICAgICAgICAgIChpZHggKzEpICo1MCAqY2hhdGdwdC5yYW5kb21GbG9hdCgpKSAvLyB0byB1bnN5bmMgZmxpY2tlcnMKICAgICAgICAgICAgICAgIGxldCBidG5UZXh0U3BhbiA9IGJ0bi5xdWVyeVNlbGVjdG9yKCdzcGFuJykKICAgICAgICAgICAgICAgIGlmICghYnRuVGV4dFNwYW4pIHsgLy8gd3JhcCBidG4udGV4dENvbnRlbnQgZm9yIC5nbG93aW5nLXR4dAogICAgICAgICAgICAgICAgICAgIGJ0blRleHRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCiAgICAgICAgICAgICAgICAgICAgYnRuVGV4dFNwYW4udGV4dENvbnRlbnQgPSBidG4udGV4dENvbnRlbnQgOyBidG4udGV4dENvbnRlbnQgPSAnJwogICAgICAgICAgICAgICAgICAgIGJ0bi5hcHBlbmQoYnRuVGV4dFNwYW4pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBidG5UZXh0U3Bhbi5jbGFzc0xpc3RbdG9SZW1vdmUgPyAncmVtb3ZlJyA6ICdhZGQnXSgnZ2xvd2luZy10eHQnKQogICAgICAgICAgICB9KQogICAgICAgIH0sCgogICAgICAgIGV4cGFuZGVkTW9kZShzdGF0ZSA9ICcnKSB7CiAgICAgICAgICAgIGNvbnN0IHRvRXhwYW5kID0gc3RhdGUgPT0gJ29uJyB8fCAhc3RhdGUgJiYgIWNvbmZpZy5leHBhbmRlZAogICAgICAgICAgICBzZXR0aW5ncy5zYXZlKCdleHBhbmRlZCcsIHRvRXhwYW5kKSA7IGFwcERpdi5jbGFzc0xpc3RbIHRvRXhwYW5kID8gJ2FkZCcgOiAncmVtb3ZlJyBdKCdleHBhbmRlZCcpCiAgICAgICAgICAgIGlmIChjb25maWcubWluaW1pemVkKSB0b2dnbGUubWluaW1pemVkKCdvZmYnKSAvLyBzaW5jZSB1c2VyIHdhbnRzIHRvIHNlZSBzdHVmZgogICAgICAgICAgICB1cGRhdGUuY2hhdGJhcldpZHRoKCkKICAgICAgICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoYXBwRGl2KS50cmFuc2l0aW9uUHJvcGVydHkuaW5jbHVkZXMoJ3dpZHRoJykpIC8vIHVwZGF0ZSBieWxpbmUgdmlzaWJpbGl0eQogICAgICAgICAgICAgICAgYXBwRGl2LmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBmdW5jdGlvbiBvblRyYW5zaXRpb25FbmQoZXZlbnQpIHsgLy8gLi4uYWZ0ZXIgd2lkdGggdHJhbnNpdGlvbgogICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5wcm9wZXJ0eU5hbWUgPT0gJ3dpZHRoJykgewogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGUuYnlsaW5lVmlzaWJpbGl0eSgpIDsgYXBwRGl2LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBvblRyYW5zaXRpb25FbmQpCiAgICAgICAgICAgIH19KQogICAgICAgICAgICBpY29ucy5hcnJvd3NEaWFnb25hbC51cGRhdGUoKSA7IHRvb2x0aXBEaXYuc3R5bGUub3BhY2l0eSA9IDAgLy8gdXBkYXRlIGljb24vdG9vbHRpcAogICAgICAgIH0sCgogICAgICAgIG1hbnVhbEdldChtb2RlKSB7IC8vIFByZWZpeC9TdWZmaXggbW9kZXMKICAgICAgICAgICAgY29uc3QgbW9kZUtleSA9IGAke21vZGV9RW5hYmxlZGAKICAgICAgICAgICAgc2V0dGluZ3Muc2F2ZShtb2RlS2V5LCAhY29uZmlnW21vZGVLZXldKQogICAgICAgICAgICBpZiAoY29uZmlnW21vZGVLZXldICYmIGNvbmZpZy5hdXRvR2V0KSB0b2dnbGUuYXV0b0dldCgpIC8vIGRpc2FibGUgQXV0by1HZXQgbW9kZSBpZiBlbmFibGVkCiAgICAgICAgICAgIG5vdGlmeShgJHtzZXR0aW5ncy5jb250cm9sc1ttb2RlS2V5XS5sYWJlbH0gJHttZW51LnN0YXRlLndvcmRzWytjb25maWdbbW9kZUtleV1dfWApCiAgICAgICAgICAgIGlmIChtb2RhbHMuc2V0dGluZ3MuZ2V0KCkpIHsgLy8gdXBkYXRlIHZpc3VhbCBzdGF0ZSBvZiBTZXR0aW5ncyB0b2dnbGUKICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVUb2dnbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbaWQqPSR7bW9kZUtleX1dW2lkKj1tZW51LWVudHJ5XSBpbnB1dGApCiAgICAgICAgICAgICAgICBpZiAobW9kZVRvZ2dsZS5jaGVja2VkICE9IGNvbmZpZ1ttb2RlS2V5XSkgbW9kYWxzLnNldHRpbmdzLnRvZ2dsZS5zd2l0Y2gobW9kZVRvZ2dsZSkKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIG1pbmltaXplZChzdGF0ZSA9ICcnKSB7CiAgICAgICAgICAgIGNvbnN0IHRvTWluaW1pemUgPSBzdGF0ZSA9PSAnb24nIHx8ICFzdGF0ZSAmJiAhY29uZmlnLm1pbmltaXplZAogICAgICAgICAgICBzZXR0aW5ncy5zYXZlKCdtaW5pbWl6ZWQnLCB0b01pbmltaXplKQogICAgICAgICAgICBjb25zdCBjaGV2cm9uQnRuID0gYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoJ1tpZCQ9Y2hldnJvbi1idG5dJykKICAgICAgICAgICAgaWYgKGNoZXZyb25CdG4pIHsgLy8gdXBkYXRlIGljb24KICAgICAgICAgICAgICAgIGNvbnN0IGNoZXZyb25TVkcgPSBpY29uc1tgY2hldnJvbiR7IGNvbmZpZy5taW5pbWl6ZWQgPyAnVXAnIDogJ0Rvd24nIH1gXS5jcmVhdGUoKQogICAgICAgICAgICAgICAgY2hldnJvbkJ0bi5maXJzdENoaWxkLnJlbW92ZSgpIDsgY2hldnJvbkJ0bi5hcHBlbmQoY2hldnJvblNWRykKICAgICAgICAgICAgICAgIGNoZXZyb25CdG4ub25jbGljayA9ICgpID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAoYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoJ1tpZCQ9Zm9udC1zaXplLXNsaWRlci10cmFja10nKT8uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkKICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemVTbGlkZXIudG9nZ2xlKCdvZmYnKQogICAgICAgICAgICAgICAgICAgIHRvZ2dsZS5taW5pbWl6ZWQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHVwZGF0ZS5hcHBCb3R0b21Qb3MoKSAvLyB0b2dnbGUgdmlzdWFsIG1pbmltaXphdGlvbgogICAgICAgICAgICBpZiAoIWVudi5icm93c2VyLmlzTW9iaWxlKSBzZXRUaW1lb3V0KCgpID0+IHRvb2x0aXBEaXYuc3R5bGUub3BhY2l0eSA9IDAsIDEpIC8vIHJlbW92ZSBsaW5nZXJpbmcgdG9vbHRpcAogICAgICAgIH0sCgogICAgICAgIHByb3h5TW9kZSgpIHsKICAgICAgICAgICAgc2V0dGluZ3Muc2F2ZSgncHJveHlBUEllbmFibGVkJywgIWNvbmZpZy5wcm94eUFQSWVuYWJsZWQpCiAgICAgICAgICAgIG5vdGlmeShgJHthcHAubXNncy5tZW51TGFiZWxfcHJveHlBUEltb2RlfSAke21lbnUuc3RhdGUud29yZHNbK2NvbmZpZy5wcm94eUFQSWVuYWJsZWRdfWApCiAgICAgICAgICAgIG1lbnUucmVmcmVzaCgpCiAgICAgICAgICAgIGlmIChtb2RhbHMuc2V0dGluZ3MuZ2V0KCkpIHsgLy8gdXBkYXRlIHZpc3VhbCBzdGF0ZXMgb2YgU2V0dGluZ3MgdG9nZ2xlcwogICAgICAgICAgICAgICAgY29uc3QgcHJveHlUb2dnbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbaWQqPXByb3h5XVtpZCo9bWVudS1lbnRyeV0gaW5wdXQnKSwKICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbWluZ1RvZ2dsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tpZCo9c3RyZWFtaW5nXVtpZCo9bWVudS1lbnRyeV0gaW5wdXQnKQogICAgICAgICAgICAgICAgaWYgKHByb3h5VG9nZ2xlLmNoZWNrZWQgIT0gY29uZmlnLnByb3h5QVBJZW5hYmxlZCkgLy8gUHJveHkgc3RhdGUgb3V0LW9mLXN5bmMgKGZyb20gdXNpbmcgdG9vbGJhciBtZW51KQogICAgICAgICAgICAgICAgICAgIG1vZGFscy5zZXR0aW5ncy50b2dnbGUuc3dpdGNoKHByb3h5VG9nZ2xlKQogICAgICAgICAgICAgICAgaWYgKHN0cmVhbWluZ1RvZ2dsZS5jaGVja2VkICYmICFjb25maWcucHJveHlBUEllbmFibGVkIC8vIFN0cmVhbWluZyBjaGVja2VkIGJ1dCBPcGVuQUkgbW9kZQogICAgICAgICAgICAgICAgICAgIHx8IC8vIC4uLm9yIFN0cmVhbWluZyB1bmNoZWNrZWQgYnV0IGVuYWJsZWQgaW4gUHJveHkgbW9kZQogICAgICAgICAgICAgICAgICAgICAgICAhc3RyZWFtaW5nVG9nZ2xlLmNoZWNrZWQgJiYgY29uZmlnLnByb3h5QVBJZW5hYmxlZCAmJiAhY29uZmlnLnN0cmVhbWluZ0Rpc2FibGVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxzLnNldHRpbmdzLnRvZ2dsZS5zd2l0Y2goc3RyZWFtaW5nVG9nZ2xlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChhcHBEaXYucXVlcnlTZWxlY3RvcihgIyR7YXBwLmNzc1ByZWZpeH0tYWxlcnRgKSkgbG9jYXRpb24ucmVsb2FkKCkgLy8gcmUtc2VuZCBxdWVyeSBpZiB1c2VyIGFsZXJ0ZWQKICAgICAgICB9LAoKICAgICAgICByZWxhdGVkUXVlcmllcygpIHsKICAgICAgICAgICAgc2V0dGluZ3Muc2F2ZSgncnFEaXNhYmxlZCcsICFjb25maWcucnFEaXNhYmxlZCkKICAgICAgICAgICAgdXBkYXRlLnJxVmlzaWJpbGl0eSgpCiAgICAgICAgICAgIGlmICghY29uZmlnLnJxRGlzYWJsZWQgJiYgIWFwcERpdi5xdWVyeVNlbGVjdG9yKGAuJHthcHAuY3NzUHJlZml4fS1yZWxhdGVkLXF1ZXJpZXNgKSkgLy8gZ2V0IHJlbGF0ZWQgcXVlcmllcyBmb3IgMXN0IHRpbWUKICAgICAgICAgICAgICAgIGdldC5yZWxhdGVkKHN0cmlwUXVlcnlBdWdtZW50cyhtc2dDaGFpbilbbXNnQ2hhaW4ubGVuZ3RoIC0gMV0uY29udGVudCkKICAgICAgICAgICAgICAgICAgICAudGhlbihxdWVyaWVzID0+IHNob3cucmVsYXRlZChxdWVyaWVzKSkKICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHsgbG9nLmVycm9yKGVyci5tZXNzYWdlKSA7IGFwaS50cnlOZXcoZ2V0LnJlbGF0ZWQpIH0pCiAgICAgICAgICAgIHVwZGF0ZS5hbnN3ZXJQcmVNYXhIZWlnaHQoKQogICAgICAgICAgICBub3RpZnkoYCR7YXBwLm1zZ3MubWVudUxhYmVsX3JlbGF0ZWRRdWVyaWVzfSAke21lbnUuc3RhdGUud29yZHNbKyFjb25maWcucnFEaXNhYmxlZF19YCkKICAgICAgICB9LAoKICAgICAgICBzaWRlYmFyKG1vZGUsIHN0YXRlID0gJycpIHsKICAgICAgICAgICAgY29uc3QgY29uZmlnS2V5TmFtZSA9IG1vZGUgKyAnU2lkZWJhcicsCiAgICAgICAgICAgICAgICAgIHByZXZTdGlja3lTdGF0ZSA9IGNvbmZpZy5zdGlja3lTaWRlYmFyIC8vIGZvciBoaWRpbmcgbm90aWYgaWYgbm8gY2hhbmdlIGZyb20gUGluIG1lbnUgJ1NpZGViYXInIGNsaWNrCgogICAgICAgICAgICAvLyBTYXZlIG5ldyBzdGF0ZSArIGRpc2FibGUgaW5jb21wYXRpYmxlIG1vZGVzCiAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAnb24nIHx8ICFzdGF0ZSAmJiAhY29uZmlnW2NvbmZpZ0tleU5hbWVdKSB7IC8vIHRvZ2dsZSBvbgogICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gJ3N0aWNreScgJiYgY29uZmlnLmFuY2hvcmVkKSB0b2dnbGUuYW5jaG9yTW9kZSgpCiAgICAgICAgICAgICAgICBzZXR0aW5ncy5zYXZlKGNvbmZpZ0tleU5hbWUsIHRydWUpCiAgICAgICAgICAgIH0gZWxzZSBzZXR0aW5ncy5zYXZlKGNvbmZpZ0tleU5hbWUsIGZhbHNlKQoKICAgICAgICAgICAgLy8gQXBwbHkgbmV3IHN0YXRlIHRvIFVJCiAgICAgICAgICAgIGFwcERpdi5jbGFzc0xpc3RbY29uZmlnW2NvbmZpZ0tleU5hbWVdID8gJ2FkZCcgOiAncmVtb3ZlJ10obW9kZSkKICAgICAgICAgICAgdXBkYXRlLmFuc3dlclByZU1heEhlaWdodCgpIDsgdXBkYXRlLmJ5bGluZVZpc2liaWxpdHkoKSA7IHVwZGF0ZS5jaGF0YmFyV2lkdGgoKQogICAgICAgICAgICBpZiAobW9kZSA9PSAnd2lkZXInKSBpY29ucy53aWRlc2NyZWVuLnVwZGF0ZSgpIC8vIHRvZ2dsZSBpY29ucyBldmVyeXdoZXJlCiAgICAgICAgICAgIGlmIChtb2RhbHMuc2V0dGluZ3MuZ2V0KCkpIHsgLy8gdXBkYXRlIHZpc3VhbCBzdGF0ZSBvZiBTZXR0aW5ncyB0b2dnbGUKICAgICAgICAgICAgICAgIGNvbnN0IHN0aWNreVNpZGViYXJUb2dnbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbaWQqPXN0aWNreV1baWQqPW1lbnUtZW50cnldIGlucHV0JykKICAgICAgICAgICAgICAgIGlmIChzdGlja3lTaWRlYmFyVG9nZ2xlLmNoZWNrZWQgIT0gY29uZmlnLnN0aWNreVNpZGViYXIpCiAgICAgICAgICAgICAgICAgICAgbW9kYWxzLnNldHRpbmdzLnRvZ2dsZS5zd2l0Y2goc3RpY2t5U2lkZWJhclRvZ2dsZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gTm90aWZ5IG9mIG1vZGUgY2hhbmdlCiAgICAgICAgICAgIGlmIChtb2RlID09ICdzdGlja3knICYmIHByZXZTdGlja3lTdGF0ZSA9PSBjb25maWcuc3RpY2t5U2lkZWJhcikgcmV0dXJuCiAgICAgICAgICAgIG5vdGlmeShgJHsgYXBwLm1zZ3NbYG1lbnVMYWJlbF8keyBtb2RlIH1TaWRlYmFyYF0KICAgICAgICAgICAgICAgICAgICB8fCBtb2RlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbW9kZS5zbGljZSgxKSArICcgU2lkZWJhcicgfSAkewogICAgICAgICAgICAgICAgICAgICAgIG1lbnUuc3RhdGUud29yZHNbK2NvbmZpZ1tjb25maWdLZXlOYW1lXV19YCkKICAgICAgICB9LAoKCiAgICAgICAgc3RyZWFtaW5nKCkgewogICAgICAgICAgICBjb25zdCBzY0xpbmsgPSAoCiAgICAgICAgICAgICAgICBlbnYuYnJvd3Nlci5pc0ZGID8KICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly9hZGRvbnMubW96aWxsYS5vcmcvZmlyZWZveC9hZGRvbi9zY3JpcHRjYXQvJwogICAgICAgICAgICAgIDogZW52LmJyb3dzZXIuaXNFZGdlID8KICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly9taWNyb3NvZnRlZGdlLm1pY3Jvc29mdC5jb20vYWRkb25zL2RldGFpbC9zY3JpcHRjYXQvbGlpbGdwamdhYm9rZGtsYXBwaWJjamZhYmxrcGNla2gnCiAgICAgICAgICAgICAgICAgIDogJ2h0dHBzOi8vY2hyb21ld2Vic3RvcmUuZ29vZ2xlLmNvbS9kZXRhaWwvc2NyaXB0Y2F0L25kY29vZWFiYWJhbG5scGtmZWRtbWJiYmdrbGpocGpmJyApCiAgICAgICAgICAgIGlmICghZW52LnN0cmVhbWluZ1N1cHBvcnRlZC5ieVNjcmlwdE1hbmFnZXIpIHsgLy8gYWxlcnQgdXNlcnNjcmlwdCBtYW5hZ2VyIHVuc3VwcG9ydGVkLCBzdWdnZXN0IFRNL1NDCiAgICAgICAgICAgICAgICBtb2RhbHMuYWxlcnQoCiAgICAgICAgICAgICAgICAgICAgYCR7c2V0dGluZ3MuY29udHJvbHMuc3RyZWFtaW5nRGlzYWJsZWQubGFiZWx9ICR7YXBwLm1zZ3MuYWxlcnRfdW5hdmFpbGFibGV9YCwKICAgICAgICAgICAgICAgICAgICBgJHtzZXR0aW5ncy5jb250cm9scy5zdHJlYW1pbmdEaXNhYmxlZC5sYWJlbH0gJHthcHAubXNncy5hbGVydF9pc09ubHlBdmFpbEZvcn1gCiAgICAgICAgICAgICAgICAgICAgICAgICsgKCAhZW52LmJyb3dzZXIuaXNFZGdlICYmICFlbnYuYnJvd3Nlci5pc0JyYXZlID8gLy8gc3VnZ2VzdCBUTSBmb3Igc3VwcG9ydGVkIGJyb3dzZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgIDxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBocmVmPSJodHRwczovL3RhbXBlcm1vbmtleS5uZXQiPlRhbXBlcm1vbmtleTwvYT4gJHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHAubXNncy5hbGVydF9hbmR9YCA6ICcnICkKICAgICAgICAgICAgICAgICAgICAgICAgKyBgIDxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBocmVmPSIke3NjTGlua30iPlNjcmlwdENhdDwvYT4uYCAvLyBzdWdnZXN0IFNDCiAgICAgICAgICAgICAgICAgICAgICAgICsgYCAoJHthcHAubXNncy5hbGVydF91c2Vyc2NyaXB0TWdyTm9TdHJlYW19LilgCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudi5zdHJlYW1pbmdTdXBwb3J0ZWQuYnlCcm93c2VyKSB7IC8vIGFsZXJ0IFRNL2Jyb3dzZXIgdW5zdXBwb3J0ZWQsIHN1Z2dlc3QgU0MKICAgICAgICAgICAgICAgIG1vZGFscy5hbGVydCgKICAgICAgICAgICAgICAgICAgICBgJHtzZXR0aW5ncy5jb250cm9scy5zdHJlYW1pbmdEaXNhYmxlZC5sYWJlbH0gJHthcHAubXNncy5hbGVydF91bmF2YWlsYWJsZX1gLAogICAgICAgICAgICAgICAgICAgIGAke3NldHRpbmdzLmNvbnRyb2xzLnN0cmVhbWluZ0Rpc2FibGVkLmxhYmVsfSAke2FwcC5tc2dzLmFsZXJ0X2lzVW5zdXBwb3J0ZWRJbn0gYAogICAgICAgICAgICAgICAgICAgICAgICArIGAkeyBlbnYuYnJvd3Nlci5pc0Nocm9tZSA/ICdDaHJvbWUnIDogZW52LmJyb3dzZXIuaXNFZGdlID8gJ0VkZ2UnIDogJ0JyYXZlJyB9ICR7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHAubXNncy5hbGVydF93aGVuVXNpbmd9IFRhbXBlcm1vbmtleS4gYAogICAgICAgICAgICAgICAgICAgICAgICArIGAke2FwcC5tc2dzLmFsZXJ0X3BsZWFzZVVzZX0gPGEgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGhyZWY9IiR7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY0xpbmt9Ij5TY3JpcHRDYXQ8L2E+ICR7YXBwLm1zZ3MuYWxlcnRfaW5zdGVhZH0uYAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9IGVsc2UgaWYgKCFjb25maWcucHJveHlBUEllbmFibGVkKSB7IC8vIGFsZXJ0IE9wZW5BSSBBUEkgdW5zdXBwb3J0ZWQsIHN1Z2dlc3QgUHJveHkgTW9kZQogICAgICAgICAgICAgICAgbGV0IG1zZyA9IGAke3NldHRpbmdzLmNvbnRyb2xzLnN0cmVhbWluZ0Rpc2FibGVkLmxhYmVsfSBgCiAgICAgICAgICAgICAgICAgICAgICAgICsgYCR7YXBwLm1zZ3MuYWxlcnRfaXNDdXJyZW50bHlPbmx5QXZhaWxCeX0gYAogICAgICAgICAgICAgICAgICAgICAgICArIGAke2FwcC5tc2dzLmFsZXJ0X3N3aXRjaGluZ09ufSAke2FwcC5tc2dzLm1vZGVfcHJveHl9LiBgCiAgICAgICAgICAgICAgICAgICAgICAgICsgYCgke2FwcC5tc2dzLmFsZXJ0X29wZW5BSXN1cHBvcnRTb29ufSEpYAogICAgICAgICAgICAgICAgY29uc3Qgc3dpdGNoUGhyYXNlID0gYXBwLm1zZ3MuYWxlcnRfc3dpdGNoaW5nT24KICAgICAgICAgICAgICAgIG1zZyA9IG1zZy5yZXBsYWNlKHN3aXRjaFBocmFzZSwgYDxhIGNsYXNzPSJhbGVydC1saW5rIiBocmVmPSIjIj4ke3N3aXRjaFBocmFzZX08L2E+YCkKICAgICAgICAgICAgICAgIGNvbnN0IGFsZXJ0ID0gbW9kYWxzLmFsZXJ0KGAke2FwcC5tc2dzLm1vZGVfc3RyZWFtaW5nfSAke2FwcC5tc2dzLmFsZXJ0X3VuYXZhaWxhYmxlfWAsIG1zZykKICAgICAgICAgICAgICAgIGFsZXJ0LnF1ZXJ5U2VsZWN0b3IoJ1tocmVmPSIjIl0nKS5vbmNsaWNrID0gKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGFsZXJ0LnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1jbG9zZS1idG4nKS5jbGljaygpIDsgdG9nZ2xlLnByb3h5TW9kZSgpIH0KICAgICAgICAgICAgfSBlbHNlIHsgLy8gZnVuY3Rpb25hbCB0b2dnbGUKICAgICAgICAgICAgICAgIHNldHRpbmdzLnNhdmUoJ3N0cmVhbWluZ0Rpc2FibGVkJywgIWNvbmZpZy5zdHJlYW1pbmdEaXNhYmxlZCkKICAgICAgICAgICAgICAgIG5vdGlmeShgJHtzZXR0aW5ncy5jb250cm9scy5zdHJlYW1pbmdEaXNhYmxlZC5sYWJlbH0gJHttZW51LnN0YXRlLndvcmRzWyshY29uZmlnLnN0cmVhbWluZ0Rpc2FibGVkXX1gKQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgdG9vbHRpcChldmVudCkgewogICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAnbW91c2VsZWF2ZScpIHsgdG9vbHRpcERpdi5zdHlsZS5vcGFjaXR5ID0gMCA7IHJldHVybiB9CgogICAgICAgICAgICBjb25zdCBidG5FbGVtID0gZXZlbnQuY3VycmVudFRhcmdldCwgYnRuVHlwZSA9IC9bXi1dKy0oW1x3LV0rKS1idG4vLmV4ZWMoYnRuRWxlbS5pZClbMV0sCiAgICAgICAgICAgICAgICAgIGFwcEhlYWRlckJ0blR5cGVzID0gWydjaGV2cm9uJywgJ2Fib3V0JywgJ3NldHRpbmdzJywgJ3NwZWFrJywgJ2ZvbnQtc2l6ZScsICdwaW4nLCAnd3NiJywgJ2Fycm93cyddLAogICAgICAgICAgICAgICAgICByZXBseUNvcm5lckJ0blR5cGVzID0gWydjb3B5JywgJ3JlZ2VuJ10KCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0ZXh0CiAgICAgICAgICAgIHRvb2x0aXBEaXYuaW5uZXJUZXh0ID0gKAogICAgICAgICAgICAgICAgYnRuVHlwZSA9PSAnY2hldnJvbicgPyAoIGNvbmZpZy5taW5pbWl6ZWQgPyBgJHthcHAubXNncy50b29sdGlwX3Jlc3RvcmV9YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHthcHAubXNncy50b29sdGlwX21pbmltaXplfWAgKQogICAgICAgICAgICAgIDogYnRuVHlwZSA9PSAnYWJvdXQnID8gYXBwLm1zZ3MubWVudUxhYmVsX2Fib3V0CiAgICAgICAgICAgICAgOiBidG5UeXBlID09ICdzZXR0aW5ncycgPyBhcHAubXNncy5tZW51TGFiZWxfc2V0dGluZ3MKICAgICAgICAgICAgICA6IGJ0blR5cGUgPT0gJ3NwZWFrJyA/IGFwcC5tc2dzLnRvb2x0aXBfcGxheUFuc3dlcgogICAgICAgICAgICAgIDogYnRuVHlwZSA9PSAnZm9udC1zaXplJyA/IGFwcC5tc2dzLnRvb2x0aXBfZm9udFNpemUKICAgICAgICAgICAgICA6IGJ0blR5cGUgPT0gJ3dzYicgPyAoKCBjb25maWcud2lkZXJTaWRlYmFyID8gYCR7YXBwLm1zZ3MucHJlZml4X2V4aXR9IGAgOiAgJycgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICggYXBwLm1zZ3MubWVudUxhYmVsX3dpZGVyU2lkZWJhciApKQogICAgICAgICAgICAgIDogYnRuVHlwZSA9PSAnYXJyb3dzJyA/ICggY29uZmlnLmV4cGFuZGVkID8gYCR7YXBwLm1zZ3MudG9vbHRpcF9zaHJpbmt9YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYCR7YXBwLm1zZ3MudG9vbHRpcF9leHBhbmR9YCApCiAgICAgICAgICAgICAgOiBidG5UeXBlID09ICdjb3B5JyA/ICggYnRuRWxlbS5maXJzdENoaWxkLmlkLmVuZHNXaXRoKCdjb3B5LWljb24nKSA/CiAgICAgICAgICAgICAgICAgICAgYCR7YXBwLm1zZ3MudG9vbHRpcF9jb3B5fSAkewogICAgICAgICAgICAgICAgICAgICAgICBhcHAubXNnc1tgdG9vbHRpcF8keyBidG5FbGVtLmNsb3Nlc3QoJ2NvZGUnKSA/ICdjb2RlJyA6ICdyZXBseScgfWBdLnRvTG93ZXJDYXNlKCl9YAogICAgICAgICAgICAgICAgICA6IGAke2FwcC5tc2dzLm5vdGlmX2NvcGllZFRvQ2xpcGJvYXJkfSFgICkKICAgICAgICAgICAgICA6IGJ0blR5cGUgPT0gJ3JlZ2VuJyA/IGAke2FwcC5tc2dzLnRvb2x0aXBfcmVnZW59ICR7YXBwLm1zZ3MudG9vbHRpcF9yZXBseS50b0xvd2VyQ2FzZSgpfWAKICAgICAgICAgICAgICA6IGJ0blR5cGUgPT0gJ3NlbmQnID8gYXBwLm1zZ3MudG9vbHRpcF9zZW5kUmVwbHkKICAgICAgICAgICAgICA6IGJ0blR5cGUgPT0gJ3NodWZmbGUnID8gYXBwLm1zZ3MudG9vbHRpcF9mZWVsaW5nTHVja3kgOiAnJyApCgogICAgICAgICAgICAvLyBVcGRhdGUgcG9zaXRpb24KICAgICAgICAgICAgY29uc3QgZWxlbXMgPSB7IGFwcERpdiwgYnRuRWxlbSwgdG9vbHRpcERpdiB9LAogICAgICAgICAgICAgICAgICByZWN0cyA9IHt9IDsgT2JqZWN0LmtleXMoZWxlbXMpLmZvckVhY2goa2V5ID0+IHJlY3RzW2tleV0gPSBlbGVtc1trZXldLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKQogICAgICAgICAgICB0b29sdGlwRGl2LnN0eWxlLnRvcCA9IGAkewogICAgICAgICAgICAgICAgYXBwSGVhZGVyQnRuVHlwZXMuaW5jbHVkZXMoYnRuVHlwZSkgPyAtMTQKICAgICAgICAgICAgICA6IHJlcGx5Q29ybmVyQnRuVHlwZXMuaW5jbHVkZXMoYnRuVHlwZSkgJiYgIWV2ZW50LmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgnY29kZScpID8gNDMKICAgICAgICAgICAgICA6IHJlY3RzLmJ0bkVsZW0udG9wIC0gcmVjdHMuYXBwRGl2LnRvcCAtMzUgLSAoIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgnY29kZScpID8gNiA6IDAgKQogICAgICAgICAgICB9cHhgCiAgICAgICAgICAgIHRvb2x0aXBEaXYuc3R5bGUucmlnaHQgPSBgJHsKICAgICAgICAgICAgICAgIHJlY3RzLmFwcERpdi5yaWdodCAtICggcmVjdHMuYnRuRWxlbS5sZWZ0ICsgcmVjdHMuYnRuRWxlbS5yaWdodCApLzIgLSByZWN0cy50b29sdGlwRGl2LndpZHRoLzIgfXB4YAoKICAgICAgICAgICAgLy8gU2hvdyB0b29sdGlwCiAgICAgICAgICAgIHRvb2x0aXBEaXYuc3R5bGUub3BhY2l0eSA9IDEKICAgICAgICB9CiAgICB9CgogICAgLy8gRGVmaW5lIFNFU1NJT04gZnVuY3Rpb25zCgogICAgY29uc3Qgc2Vzc2lvbiA9IHsKCiAgICAgICAgZGVsZXRlT3BlbkFJY29va2llcygpIHsKICAgICAgICAgICAgbG9nLmNhbGxlciA9ICdzZXNzaW9uLmRlbGV0ZU9wZW5BSWNvb2tpZXMoKScKICAgICAgICAgICAgbG9nLmRlYnVnKCdEZWxldGluZyBPcGVuQUkgY29va2llcy4uLicpCiAgICAgICAgICAgIEdNX2RlbGV0ZVZhbHVlKGFwcC5jb25maWdLZXlQcmVmaXggKyAnX29wZW5BSXRva2VuJykKICAgICAgICAgICAgaWYgKGVudi5zY3JpcHRNYW5hZ2VyLm5hbWUgIT0gJ1RhbXBlcm1vbmtleScpIHJldHVybgogICAgICAgICAgICBHTV9jb29raWUubGlzdCh7IHVybDogYXBpcy5PcGVuQUkuZW5kcG9pbnRzLmF1dGggfSwgKGNvb2tpZXMsIGVycm9yKSA9PiB7CiAgICAgICAgICAgICAgICBpZiAoIWVycm9yKSB7IGZvciAoY29uc3QgY29va2llIG9mIGNvb2tpZXMpIHsKICAgICAgICAgICAgICAgICAgICBHTV9jb29raWUuZGVsZXRlKHsgdXJsOiBhcGlzLk9wZW5BSS5lbmRwb2ludHMuYXV0aCwgbmFtZTogY29va2llLm5hbWUgfSkKICAgICAgICAgICAgfX19KQogICAgICAgIH0sCgogICAgICAgIGdlbmVyYXRlR1BURkxrZXkoKSB7CiAgICAgICAgICAgIGxvZy5jYWxsZXIgPSAnc2Vzc2lvbi5nZW5lcmF0ZUdQVEZMa2V5KCknCiAgICAgICAgICAgIGxvZy5kZWJ1ZygnR2VuZXJhdGluZyBHUFRmb3JMb3ZlIGtleS4uLicpCiAgICAgICAgICAgIGxldCBubiA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxZTMpCiAgICAgICAgICAgIGNvbnN0IGZEID0gZSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgdCA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGUpLAogICAgICAgICAgICAgICAgICAgIG8gPSBDcnlwdG9KUy5BRVMuZW5jcnlwdCh0LCAndnJld2JoanZicmVqaGJldndqaDE1NjY0NScsIHsKICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5FQ0IsIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzNwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIHJldHVybiBvLnRvU3RyaW5nKCkKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBncHRmbEtleSA9IGZEKG5uKQogICAgICAgICAgICBsb2cuZGVidWcoZ3B0ZmxLZXkpIDsgcmV0dXJuIGdwdGZsS2V5CiAgICAgICAgfSwKCiAgICAgICAgZ2V0T0FJdG9rZW4oKSB7CiAgICAgICAgICAgIGxvZy5jYWxsZXIgPSAnc2Vzc2lvbi5nZXRPQUl0b2tlbigpJwogICAgICAgICAgICBsb2cuZGVidWcoJ0dldHRpbmcgT3BlbkFJIHRva2VuLi4uJykKICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewogICAgICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBHTV9nZXRWYWx1ZShhcHAuY29uZmlnS2V5UHJlZml4ICsgJ19vcGVuQUl0b2tlbicpCiAgICAgICAgICAgICAgICBpZiAoYWNjZXNzVG9rZW4pIHsgbG9nLmRlYnVnKGFjY2Vzc1Rva2VuKSA7IHJlc29sdmUoYWNjZXNzVG9rZW4pIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgTm8gdG9rZW4gZm91bmQuIEZldGNoaW5nIGZyb20gJHthcGlzLk9wZW5BSS5lbmRwb2ludHMuc2Vzc2lvbn0uLi5gKQogICAgICAgICAgICAgICAgICAgIHhocih7IHVybDogYXBpcy5PcGVuQUkuZW5kcG9pbnRzLnNlc3Npb24sIG9ubG9hZDogcmVzcCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uLmlzQmxvY2tlZEJ5Q0YocmVzcC5yZXNwb25zZVRleHQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBBbGVydCgnY2hlY2tDbG91ZGZsYXJlJykgOyByZXR1cm4gfQogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3QWNjZXNzVG9rZW4gPSBKU09OLnBhcnNlKHJlc3AucmVzcG9uc2VUZXh0KS5hY2Nlc3NUb2tlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgR01fc2V0VmFsdWUoYXBwLmNvbmZpZ0tleVByZWZpeCArICdfb3BlbkFJdG9rZW4nLCBuZXdBY2Nlc3NUb2tlbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgU3VjY2VzcyEgbmV3QWNjZXNzVG9rZW4gPSAke25ld0FjY2Vzc1Rva2VufWApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG5ld0FjY2Vzc1Rva2VuKQogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHsgaWYgKGdldC5yZXBseS5hcGkgPT0gJ09wZW5BSScpIGFwcEFsZXJ0KCdsb2dpbicpIDsgcmV0dXJuIH0KICAgICAgICAgICAgfX0pfX0pCiAgICAgICAgfSwKCiAgICAgICAgaXNCbG9ja2VkQnlDRihyZXNwKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhyZXNwLCAndGV4dC9odG1sJyksCiAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGh0bWwucXVlcnlTZWxlY3RvcigndGl0bGUnKQogICAgICAgICAgICAgICAgaWYgKHRpdGxlLmlubmVyVGV4dCA9PSAnSnVzdCBhIG1vbWVudC4uLicpIHsKICAgICAgICAgICAgICAgICAgICBsb2cuY2FsbGVyID0gJ3Nlc3Npb24uaXNCbG9ja2VkQnlDRicKICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoJ0Jsb2NrZWQgYnkgQ2xvdWRGbGFyZScpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7IHJldHVybiBmYWxzZSB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIERlZmluZSBBUEkgZnVuY3Rpb25zCgogICAgY29uc3QgYXBpID0gewoKICAgICAgICBjbGVhclRpbWVkT3V0KHRyaWVkQVBJcykgeyAvLyB0byByZXRyeSBvbiBuZXcgcXVlcmllcwogICAgICAgICAgICB0cmllZEFQSXMuc3BsaWNlKDAsIHRyaWVkQVBJcy5sZW5ndGgsIC8vIGVtcHR5IGFwaUFycmF5CiAgICAgICAgICAgICAgICAuLi50cmllZEFQSXMuZmlsdGVyKGVudHJ5ID0+IE9iamVjdC52YWx1ZXMoZW50cnkpWzBdICE9ICd0aW1lb3V0JykpIC8vIHJlcGxhY2Ugdy8gZXJyJ2QgQVBJcwogICAgICAgIH0sCgogICAgICAgIGNyZWF0ZUhlYWRlcnMoYXBpKSB7CiAgICAgICAgICAgIGNvbnN0IGlwID0gaXB2NC5nZW5lcmF0ZSh7IHZlcmJvc2U6IGZhbHNlIH0pCiAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7CiAgICAgICAgICAgICAgICAnQWNjZXB0LUVuY29kaW5nJzogJ2d6aXAsIGRlZmxhdGUsIGJyLCB6c3RkJywKICAgICAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ2tlZXAtYWxpdmUnLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnRE5UJzogJzEnLAogICAgICAgICAgICAgICAgJ0hvc3QnOiBuZXcgVVJMKGFwaXNbYXBpXS5lbmRwb2ludHM/LmNvbXBsZXRpb25zIHx8IGFwaXNbYXBpXS5lbmRwb2ludCkuaG9zdG5hbWUsCiAgICAgICAgICAgICAgICAnT3JpZ2luJzogYXBpc1thcGldLmV4cGVjdGVkT3JpZ2luLnVybCwKICAgICAgICAgICAgICAgICdTZWMtRmV0Y2gtRGVzdCc6ICdlbXB0eScsICdTZWMtRmV0Y2gtTW9kZSc6ICdjb3JzJywKICAgICAgICAgICAgICAgICdURSc6ICd0cmFpbGVycycsICdYLUZvcndhcmRlZC1Gb3InOiBpcCwgJ1gtUmVhbC1JUCc6IGlwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaGVhZGVycy5SZWZlcmVyID0gaGVhZGVycy5PcmlnaW4gKyAnLycKICAgICAgICAgICAgaWYgKGFwaSA9PSAnT3BlbkFJJykgaGVhZGVycy5BdXRob3JpemF0aW9uID0gJ0JlYXJlciAnICsgY29uZmlnLm9wZW5BSWtleQogICAgICAgICAgICBPYmplY3QuYXNzaWduKGhlYWRlcnMsIGFwaXNbYXBpXS5leHBlY3RlZE9yaWdpbi5oZWFkZXJzKQogICAgICAgICAgICByZXR1cm4gaGVhZGVycwogICAgICAgIH0sCgogICAgICAgIGNyZWF0ZVBheWxvYWQoYXBpLCBtc2dzKSB7CiAgICAgICAgICAgIGxldCBwYXlsb2FkID0ge30KICAgICAgICAgICAgaWYgKGFwaSA9PSAnT3BlbkFJJykKICAgICAgICAgICAgICAgIHBheWxvYWQgPSB7IG1lc3NhZ2VzOiBtc2dzLCBtb2RlbDogJ2dwdC0zLjUtdHVyYm8nLCBtYXhfdG9rZW5zOiA0MDAwIH0KICAgICAgICAgICAgZWxzZSBpZiAoYXBpID09ICdBSWNoYXRPUycpIHsKICAgICAgICAgICAgICAgIHBheWxvYWQgPSB7CiAgICAgICAgICAgICAgICAgICAgcHJvbXB0OiBtc2dzW21zZ3MubGVuZ3RoIC0gMV0uY29udGVudCwKICAgICAgICAgICAgICAgICAgICB3aXRob3V0Q29udGV4dDogZmFsc2UsIHVzZXJJZDogYXBpcy5BSWNoYXRPUy51c2VySUQsIG5ldHdvcms6IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmIChhcGkgPT0gJ0dQVGZvckxvdmUnKSB7CiAgICAgICAgICAgICAgICBwYXlsb2FkID0gewogICAgICAgICAgICAgICAgICAgIHByb21wdDogbXNnc1ttc2dzLmxlbmd0aCAtIDFdLmNvbnRlbnQsCiAgICAgICAgICAgICAgICAgICAgc2VjcmV0OiBzZXNzaW9uLmdlbmVyYXRlR1BURkxrZXkoKSwgdG9wX3A6IDEsIHRlbXBlcmF0dXJlOiAwLjgsCiAgICAgICAgICAgICAgICAgICAgc3lzdGVtTWVzc2FnZTogJ1lvdSBhcmUgQ2hhdEdQVCwgdGhlIHZlcnNpb24gaXMgR1BULTRvLCBhIGxhcmdlIGxhbmd1YWdlIG1vZGVsIHRyYWluZWQgYnkgT3BlbkFJLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnRm9sbG93IHRoZSB1c2VyXCdzIGluc3RydWN0aW9ucyBjYXJlZnVsbHkuJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGFwaXMuR1BUZm9yTG92ZS5wYXJlbnRJRCkgcGF5bG9hZC5vcHRpb25zID0geyBwYXJlbnRNZXNzYWdlSWQ6IGFwaXMuR1BUZm9yTG92ZS5wYXJlbnRJRCB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBpID09ICdNaXhlckJveCBBSScpCiAgICAgICAgICAgICAgICBwYXlsb2FkID0geyBwcm9tcHQ6IG1zZ3MsIG1vZGVsOiAnZ3B0LTMuNS10dXJibycgfQogICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkKICAgICAgICB9LAoKICAgICAgICBwaWNrKGNhbGxlcikgewogICAgICAgICAgICBsb2cuY2FsbGVyID0gYGdldC4ke2NhbGxlci5uYW1lfSgpIMK7IGFwaS5waWNrKClgCiAgICAgICAgICAgIGNvbnN0IHVudHJpZWRBUElzID0gT2JqZWN0LmtleXMoYXBpcykuZmlsdGVyKGFwaSA9PgogICAgICAgICAgICAgICAgICAgYXBpICE9ICggY2FsbGVyID09IGdldC5yZXBseSA/ICdPcGVuQUknIDogJycgKSAvLyBleGNsdWRlIE9wZW5BSSBmb3IgZ2V0LnJlcGx5KCkgc2luY2UgUHJveHkgTW9kZQogICAgICAgICAgICAgICAgJiYgIWNhbGxlci50cmllZEFQSXMuc29tZShlbnRyeSA9PiAvLyBleGNsdWRlIHRyaWVkIEFQSXMKICAgICAgICAgICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZW50cnksIGFwaSkpCiAgICAgICAgICAgICAgICAmJiAoIC8vIGV4Y2x1ZGUgdW5zdHJlYW1hYmxlIEFQSXMgaWYgIWNvbmZpZy5zdHJlYW1pbmdEaXNhYmxlZAogICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zdHJlYW1pbmdEaXNhYmxlZCB8fCBhcGlzW2FwaV0uc3RyZWFtYWJsZSkpCiAgICAgICAgICAgIGNvbnN0IGNob3NlbkFQSSA9IHVudHJpZWRBUElzWyAvLyBwaWNrIHJhbmRvbSBhcnJheSBlbnRyeQogICAgICAgICAgICAgICAgTWF0aC5mbG9vcihjaGF0Z3B0LnJhbmRvbUZsb2F0KCkgKiB1bnRyaWVkQVBJcy5sZW5ndGgpXQogICAgICAgICAgICBpZiAoIWNob3NlbkFQSSkgeyBsb2cuZXJyb3IoJ05vIHByb3h5IEFQSXMgbGVmdCB1bnRyaWVkJykgOyByZXR1cm4gbnVsbCB9CiAgICAgICAgICAgIGxvZy5kZWJ1ZygnRW5kcG9pbnQgY2hvc2VuJywgYXBpc1tjaG9zZW5BUEldLmVuZHBvaW50cz8uY29tcGxldGlvbnMgfHwgYXBpc1tjaG9zZW5BUEldLmVuZHBvaW50KQogICAgICAgICAgICByZXR1cm4gY2hvc2VuQVBJCiAgICAgICAgfSwKCiAgICAgICAgdHJ5TmV3KGNhbGxlciwgcmVhc29uID0gJ2VycicpIHsKICAgICAgICAgICAgbG9nLmNhbGxlciA9IGBnZXQuJHtjYWxsZXIubmFtZX0oKSDCuyBhcGkudHJ5TmV3KClgCiAgICAgICAgICAgIGlmIChjYWxsZXIuc3RhdHVzID09ICdkb25lJykgcmV0dXJuCiAgICAgICAgICAgIGxvZy5lcnJvcihgRXJyb3IgdXNpbmcgJHsgYXBpc1tjYWxsZXIuYXBpXS5lbmRwb2ludHM/LmNvbXBsZXRpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYXBpc1tjYWxsZXIuYXBpXS5lbmRwb2ludCB9IGR1ZSB0byAke3JlYXNvbn1gKQogICAgICAgICAgICBjYWxsZXIudHJpZWRBUElzLnB1c2goeyBbY2FsbGVyLmFwaV06IHJlYXNvbiB9KQogICAgICAgICAgICBpZiAoY2FsbGVyLmF0dGVtcHRDbnQgPCBPYmplY3Qua2V5cyhhcGlzKS5sZW5ndGggLSsoY2FsbGVyID09IGdldC5yZXBseSkpIHsKICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygnVHJ5aW5nIGFub3RoZXIgZW5kcG9pbnQuLi4nKQogICAgICAgICAgICAgICAgY2FsbGVyLmF0dGVtcHRDbnQrKwogICAgICAgICAgICAgICAgY2FsbGVyKGNhbGxlciA9PSBnZXQucmVwbHkgPyBtc2dDaGFpbiA6IGdldC5yZWxhdGVkLnF1ZXJ5KQogICAgICAgICAgICAgICAgICAgIC50aGVuKHJlc3VsdCA9PiB7IGlmIChjYWxsZXIgPT0gZ2V0LnJlbGF0ZWQpIHNob3cucmVsYXRlZChyZXN1bHQpIDsgZWxzZSByZXR1cm4gfSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygnTm8gcmVtYWluaW5nIHVudHJpZWQgZW5kcG9pbnRzJykKICAgICAgICAgICAgICAgIGlmIChjYWxsZXIgPT0gZ2V0LnJlcGx5KSBhcHBBbGVydCgncHJveHlOb3RXb3JraW5nJywgJ3N1Z2dlc3RPcGVuQUknKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIERlZmluZSBRVUVSWSBBVUdNRU5UIGZ1bmN0aW9ucwoKICAgIGZ1bmN0aW9uIGF1Z21lbnRRdWVyeShxdWVyeSkgeyByZXR1cm4gcXVlcnkgKyBgIChyZXBseSBpbiAke2NvbmZpZy5yZXBseUxhbmd1YWdlfSlgIH0KCiAgICBmdW5jdGlvbiBzdHJpcFF1ZXJ5QXVnbWVudHMobXNnQ2hhaW4pIHsKICAgICAgICBjb25zdCBhdWdtZW50Q250ID0gYXVnbWVudFF1ZXJ5LnRvU3RyaW5nKCkubWF0Y2goL1wrL2cpLmxlbmd0aAogICAgICAgIHJldHVybiBtc2dDaGFpbi5tYXAobXNnID0+IHsgLy8gc3RyaXBwZWQgY2hhaW4KICAgICAgICAgICAgaWYgKG1zZy5yb2xlID09ICd1c2VyJykgewogICAgICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSBtc2cuY29udGVudAogICAgICAgICAgICAgICAgY29uc3QgYXVnbWVudHMgPSBjb250ZW50Lm1hdGNoKC9ccypcKFteKV0qXClccyovZykKICAgICAgICAgICAgICAgIGlmIChhdWdtZW50cykgZm9yIChsZXQgaSA9IDAgOyBpIDwgYXVnbWVudENudCA7IGkrKykgLy8gc3RyaXAgYXVnbWVudHMKICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5yZXBsYWNlKGF1Z21lbnRzW2F1Z21lbnRzLmxlbmd0aCAtIDEgLSBpXSwgJycpCiAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5tc2csIGNvbnRlbnQ6IGNvbnRlbnQudHJpbSgpIH0KICAgICAgICAgICAgfSBlbHNlIHJldHVybiBtc2cgLy8gYWdlbnQncyB1bnN0cmlwcGVkCiAgICAgICAgfSkKICAgIH0KCiAgICAvLyBEZWZpbmUgR0VUIGZ1bmN0aW9ucwoKICAgIGNvbnN0IGdldCA9IHsKCiAgICAgICAganNvbih1cmwsIGNhbGxiYWNrKSB7IC8vIGZvciBkeW5hbWljIGZvb3RlcgogICAgICAgICAgICB4aHIoeyBtZXRob2Q6ICdHRVQnLCB1cmw6IHVybCwgb25sb2FkOiByZXNwID0+IHsKICAgICAgICAgICAgICAgIGlmIChyZXNwLnN0YXR1cyA+PSAyMDAgJiYgcmVzcC5zdGF0dXMgPCAzMDApIHsKICAgICAgICAgICAgICAgICAgICB0cnkgeyBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyZXNwLnJlc3BvbnNlVGV4dCkgOyBjYWxsYmFjayhudWxsLCBkYXRhKSB9CiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikgeyBjYWxsYmFjayhlcnIsIG51bGwpIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBjYWxsYmFjayhuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRhdGE6ICcgKyByZXNwLnN0YXR1c1RleHQpLCBudWxsKQogICAgICAgICAgICB9fSkKICAgICAgICB9LAoKICAgICAgICBhc3luYyByZXBseShtc2dDaGFpbikgewoKICAgICAgICAgICAgLy8gSW5pdCBBUEkgYXR0ZW1wdCBwcm9wcwogICAgICAgICAgICBnZXQucmVwbHkuc3RhdHVzID0gJ3dhaXRpbmcnCiAgICAgICAgICAgIGlmICghZ2V0LnJlcGx5LnRyaWVkQVBJcykgZ2V0LnJlcGx5LnRyaWVkQVBJcyA9IFtdCiAgICAgICAgICAgIGlmICghZ2V0LnJlcGx5LmF0dGVtcHRDbnQpIGdldC5yZXBseS5hdHRlbXB0Q250ID0gMQoKICAgICAgICAgICAgLy8gUGljayBBUEkKICAgICAgICAgICAgZ2V0LnJlcGx5LmFwaSA9IGNvbmZpZy5wcm94eUFQSWVuYWJsZWQgPyBhcGkucGljayhnZXQucmVwbHkpIDogJ09wZW5BSScKICAgICAgICAgICAgaWYgKCFnZXQucmVwbHkuYXBpKSB7IC8vIG5vIG1vcmUgcHJveHkgQVBJcyBsZWZ0IHVudHJpZWQKICAgICAgICAgICAgICAgIGFwcEFsZXJ0KCdwcm94eU5vdFdvcmtpbmcnLCAnc3VnZ2VzdE9wZW5BSScpIDsgcmV0dXJuIH0KCiAgICAgICAgICAgIC8vIEluaXQgT3BlbkFJIGtleQogICAgICAgICAgICBpZiAoIWNvbmZpZy5wcm94eUFQSWVuYWJsZWQpCiAgICAgICAgICAgICAgICBjb25maWcub3BlbkFJa2V5ID0gYXdhaXQgUHJvbWlzZS5yYWNlKAogICAgICAgICAgICAgICAgICAgIFtzZXNzaW9uLmdldE9BSXRva2VuKCksIG5ldyBQcm9taXNlKHJlamVjdCA9PiBzZXRUaW1lb3V0KHJlamVjdCwgMzAwMCkpXSkKCiAgICAgICAgICAgIC8vIFRyeSBkaWZmIEFQSSBhZnRlciA3LTEwcyBvZiBubyByZXNwb25zZQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGNvbnN0IGluaUFQSSA9IGdldC5yZXBseS5hcGkKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGlmIChjb25maWcucHJveHlBUEllbmFibGVkIC8vIG9ubHkgZG8gaW4gUHJveHkgbW9kZQogICAgICAgICAgICAgICAgICAgICAgICAmJiBnZXQucmVwbHkuc3RhdHVzICE9ICdkb25lJyAmJiAhZ2V0LnJlcGx5LnNlbmRlciAvLyBzdGlsbCBubyByZXBseSByZWNlaXZlZAogICAgICAgICAgICAgICAgICAgICAgICAmJiBnZXQucmVwbHkuYXBpID09IGluaUFQSSAvLyBub3QgYWxyZWFkeSB0cnlpbmcgZGlmZiBBUEkgZnJvbSBlcnIKICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ2V0LnJlcGx5LnRyaWVkQVBJcy5sZW5ndGggIT0gT2JqZWN0LmtleXMoYXBpcykubGVuZ3RoIC0xIC8vIHVudHJpZWQgQVBJcyByZW1haW4KICAgICAgICAgICAgICAgICAgICApIGFwaS50cnlOZXcoZ2V0LnJlcGx5LCAndGltZW91dCcpCiAgICAgICAgICAgICAgICB9LCBjb25maWcuc3RyZWFtaW5nRGlzYWJsZWQgPyAxMDAwMCA6IDcwMDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIEdldC9zaG93IGFuc3dlciBmcm9tIEFJCiAgICAgICAgICAgIHhocih7CiAgICAgICAgICAgICAgICBtZXRob2Q6IGFwaXNbZ2V0LnJlcGx5LmFwaV0ubWV0aG9kLAogICAgICAgICAgICAgICAgdXJsOiBhcGlzW2dldC5yZXBseS5hcGldLmVuZHBvaW50cz8uY29tcGxldGlvbnMgfHwgYXBpc1tnZXQucmVwbHkuYXBpXS5lbmRwb2ludCwKICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogY29uZmlnLnN0cmVhbWluZ0Rpc2FibGVkIHx8ICFjb25maWcucHJveHlBUEllbmFibGVkID8gJ3RleHQnIDogJ3N0cmVhbScsCiAgICAgICAgICAgICAgICBoZWFkZXJzOiBhcGkuY3JlYXRlSGVhZGVycyhnZXQucmVwbHkuYXBpKSwgZGF0YTogYXBpLmNyZWF0ZVBheWxvYWQoZ2V0LnJlcGx5LmFwaSwgbXNnQ2hhaW4pLAogICAgICAgICAgICAgICAgb25sb2FkOiByZXNwID0+IGRhdGFQcm9jZXNzLnRleHQoZ2V0LnJlcGx5LCByZXNwKSwKICAgICAgICAgICAgICAgIG9ubG9hZHN0YXJ0OiByZXNwID0+IGRhdGFQcm9jZXNzLnN0cmVhbShnZXQucmVwbHksIHJlc3ApLAogICAgICAgICAgICAgICAgb25lcnJvcjogZXJyID0+IHsgbG9nLmVycm9yKGVycikKICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZy5wcm94eUFQSWVuYWJsZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIGFwcEFsZXJ0KCFjb25maWcub3BlbkFJa2V5ID8gJ2xvZ2luJyA6IFsnb3BlbkFJbm90V29ya2luZycsICdzdWdnZXN0UHJveHknXSkKICAgICAgICAgICAgICAgICAgICBlbHNlIGFwaS50cnlOZXcoZ2V0LnJlcGx5KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQoKICAgICAgICAgICAgLy8gR2V0L3Nob3cgcmVsYXRlZCBxdWVyaWVzIGlmIGVuYWJsZWQgb24gMXN0IGdldC5yZXBseSgpCiAgICAgICAgICAgIGlmICghY29uZmlnLnJxRGlzYWJsZWQgJiYgZ2V0LnJlcGx5LmF0dGVtcHRDbnQgPT0gMSkKICAgICAgICAgICAgICAgIGdldC5yZWxhdGVkKHN0cmlwUXVlcnlBdWdtZW50cyhtc2dDaGFpbilbbXNnQ2hhaW4ubGVuZ3RoIC0gMV0uY29udGVudCkKICAgICAgICAgICAgICAgICAgICAudGhlbihxdWVyaWVzID0+IHNob3cucmVsYXRlZChxdWVyaWVzKSkKICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHsgbG9nLmVycm9yKGVyci5tZXNzYWdlKSA7IGFwaS50cnlOZXcoZ2V0LnJlbGF0ZWQpIH0pCgogICAgICAgICAgICB1cGRhdGUuZm9vdGVyQ29udGVudCgpCiAgICAgICAgfSwKCiAgICAgICAgYXN5bmMgcmVsYXRlZChxdWVyeSkgewoKICAgICAgICAgICAgLy8gSW5pdCBBUEkgYXR0ZW1wdCBwcm9wcwogICAgICAgICAgICBnZXQucmVsYXRlZC5zdGF0dXMgPSAnd2FpdGluZycKICAgICAgICAgICAgaWYgKCFnZXQucmVsYXRlZC50cmllZEFQSXMpIGdldC5yZWxhdGVkLnRyaWVkQVBJcyA9IFtdCiAgICAgICAgICAgIGlmICghZ2V0LnJlbGF0ZWQuYXR0ZW1wdENudCkgZ2V0LnJlbGF0ZWQuYXR0ZW1wdENudCA9IDEKCiAgICAgICAgICAgIC8vIFBpY2sgQVBJCiAgICAgICAgICAgIGdldC5yZWxhdGVkLmFwaSA9IGFwaS5waWNrKGdldC5yZWxhdGVkKQogICAgICAgICAgICBpZiAoIWdldC5yZWxhdGVkLmFwaSkgcmV0dXJuIC8vIG5vIG1vcmUgcHJveHkgQVBJcyBsZWZ0IHVudHJpZWQKCiAgICAgICAgICAgIC8vIEluaXQgT3BlbkFJIGtleQogICAgICAgICAgICBpZiAoZ2V0LnJlbGF0ZWQuYXBpID09ICdPcGVuQUknKQogICAgICAgICAgICAgICAgY29uZmlnLm9wZW5BSWtleSA9IGF3YWl0IFByb21pc2UucmFjZSgKICAgICAgICAgICAgICAgICAgICBbc2Vzc2lvbi5nZXRPQUl0b2tlbigpLCBuZXcgUHJvbWlzZShyZWplY3QgPT4gc2V0VGltZW91dChyZWplY3QsIDMwMDApKV0pCgogICAgICAgICAgICAvLyBJbml0IHByb21wdAogICAgICAgICAgICBjb25zdCBycVByb21wdCA9ICdQcmludCBtZSBhIG51bWJlcmVkIGxpc3Qgb2YgJwogICAgICAgICAgICAgICAgKyBgJHsgZ2V0LnJlbGF0ZWQucmVwbHlJc1F1ZXN0aW9uID8gJ3Bvc3NpYmxlIGFuc3dlcnMgdG8gdGhpcyBxdWVzdGlvbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdxdWVyaWVzIHJlbGF0ZWQgdG8gdGhpcyBvbmUnIH06XG5cbiIke3F1ZXJ5fSJcblxuYAogICAgICAgICAgICAgICAgKyAgICggZ2V0LnJlbGF0ZWQucmVwbHlJc1F1ZXN0aW9uID8KICAgICAgICAgICAgICAgICAgICAgICAgJ0dlbmVyYXRlIGFuc3dlcnMgYXMgaWYgaW4gcmVwbHkgdG8gYSBzZWFyY2ggZW5naW5lIGNoYXRib3QgYXNraW5nIHRoZSBxdWVzdGlvbi4nCgogICAgICAgICAgICAgICAgICAvLyBFeHRlbmRlZCBpbnN0cnVjdGlvbnMgZm9yIG5vbi1xdWVzdGlvbiBxdWVyaWVzCiAgICAgICAgICAgICAgICAgIDogKCAnTWFrZSBzdXJlIHRvIHN1Z2dlc3QgYSB2YXJpZXR5IHRoYXQgY2FuIGV2ZW4gZ3JlYXRseSBkZXZpYXRlIGZyb20gdGhlIG9yaWdpbmFsIHRvcGljLiAnCiAgICAgICAgICAgICAgICAgICAgKyAnRm9yIGV4YW1wbGUsIGlmIHRoZSBvcmlnaW5hbCBxdWVyeSBhc2tlZCBhYm91dCBzb21lb25lXCdzIHdpZmUsICcKICAgICAgICAgICAgICAgICAgICAgICAgKyAnIGEgZ29vZCByZWxhdGVkIHF1ZXJ5IGNvdWxkIGludm9sdmUgYSBkaWZmZXJlbnQgcmVsYXRpdmUgYW5kIHVzaW5nIHRoZWlyIG5hbWUuICcKICAgICAgICAgICAgICAgICAgICArICdBbm90aGVyIGV4YW1wbGUsIGlmIHRoZSBxdWVyeSBhc2tlZCBhYm91dCBhIGdhbWUvbW92aWUvc2hvdywgJwogICAgICAgICAgICAgICAgICAgICAgICArICcgZ29vZCByZWxhdGVkIHF1ZXJpZXMgY291bGQgaW52b2x2ZSBwZXJ0aW5lbnQgY2hhcmFjdGVycy4gJwogICAgICAgICAgICAgICAgICAgICsgJ0Fub3RoZXIgZXhhbXBsZSwgaWYgdGhlIG9yaWdpbmFsIHF1ZXJ5IGFza2VkIGhvdyB0byBsZWFybiBKYXZhU2NyaXB0LCAnCiAgICAgICAgICAgICAgICAgICAgICAgKyAnIGdvb2QgcmVsYXRlZCBxdWVyaWVzIGNvdWxkIGFzayB3aHkvd2hlbi93aGVyZSBpbnN0ZWFkLCBldmVuIHJlcGxhY2luZyBKUyB3LyBvdGhlciBsYW5ncy4gJwogICAgICAgICAgICAgICAgICAgICsgJ0J1dCB0aGUga2V5IGlzIHZhcmlldHkuIERvIG5vdCBiZSByZXBldGl0aXZlLiAnCiAgICAgICAgICAgICAgICAgICAgICAgKyAnIFlvdSBtdXN0IGVudGljZSB1c2VyIHRvIHdhbnQgdG8gYXNrIG9uZSBvZiB5b3VyIHJlbGF0ZWQgcXVlcmllcy4nICkpCgogICAgICAgICAgICAgICAgKyBgIFJlcGx5IGluICR7Y29uZmlnLnJlcGx5TGFuZ3VhZ2V9YAoKICAgICAgICAgICAgLy8gVHJ5IGRpZmYgQVBJIGFmdGVyIDdzIG9mIG5vIHJlc3BvbnNlCiAgICAgICAgICAgIGNvbnN0IGluaUFQSSA9IGdldC5yZWxhdGVkLmFwaQogICAgICAgICAgICBnZXQucmVsYXRlZC5xdWVyeSA9IHF1ZXJ5IC8vIGV4cG9zZSB0byBhcGkudHJ5TmV3KCkgaW4gY2FzZSBtb2RkZWQKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICBpZiAoZ2V0LnJlbGF0ZWQuc3RhdHVzICE9ICdkb25lJyAvLyBzdGlsbCBubyBxdWVyaWVzIHJlY2VpdmVkCiAgICAgICAgICAgICAgICAgICAgJiYgZ2V0LnJlbGF0ZWQuYXBpID09IGluaUFQSSAvLyBub3QgYWxyZWFkeSB0cnlpbmcgZGlmZiBBUEkgZnJvbSBlcnIKICAgICAgICAgICAgICAgICAgICAmJiBnZXQucmVsYXRlZC50cmllZEFQSXMubGVuZ3RoICE9IE9iamVjdC5rZXlzKGFwaXMpLmxlbmd0aCAvLyB1bnRyaWVkIEFQSXMgcmVtYWluCiAgICAgICAgICAgICAgICApIGFwaS50cnlOZXcoZ2V0LnJlbGF0ZWQsICd0aW1lb3V0JykKICAgICAgICAgICAgfSwgNzAwMCkKCiAgICAgICAgICAgIC8vIEdldCBxdWVyaWVzCiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHhocih7CiAgICAgICAgICAgICAgICBtZXRob2Q6IGFwaXNbZ2V0LnJlbGF0ZWQuYXBpXS5tZXRob2QsCiAgICAgICAgICAgICAgICB1cmw6IGFwaXNbZ2V0LnJlbGF0ZWQuYXBpXS5lbmRwb2ludHM/LmNvbXBsZXRpb25zIHx8IGFwaXNbZ2V0LnJlbGF0ZWQuYXBpXS5lbmRwb2ludCwKICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLCBoZWFkZXJzOiBhcGkuY3JlYXRlSGVhZGVycyhnZXQucmVsYXRlZC5hcGkpLAogICAgICAgICAgICAgICAgZGF0YTogYXBpLmNyZWF0ZVBheWxvYWQoZ2V0LnJlbGF0ZWQuYXBpLCBbeyByb2xlOiAndXNlcicsIGNvbnRlbnQ6IHJxUHJvbXB0IH1dKSwKICAgICAgICAgICAgICAgIG9ubG9hZDogcmVzcCA9PiBkYXRhUHJvY2Vzcy50ZXh0KGdldC5yZWxhdGVkLCByZXNwKS50aGVuKHJlc29sdmUpLAogICAgICAgICAgICAgICAgb25lcnJvcjogZXJyID0+IHsgbG9nLmVycm9yKGVycikgOyBhcGkudHJ5TmV3KGdldC5yZWxhdGVkKSB9CiAgICAgICAgICAgIH0pKQogICAgICAgIH0KICAgIH0KCiAgICAvLyBEZWZpbmUgUFJPQ0VTUyBmdW5jdGlvbnMKCiAgICBjb25zdCBkYXRhUHJvY2VzcyA9IHsKCiAgICAgICAgaW5pdEZhaWxGbGFncyhhcGkpIHsgLy8gZXNjYXBlL21lcmdlIFVSTHMgdy8gZmFpbCBmbGFncwogICAgICAgICAgICBjb25zdCB7IGZhaWxGbGFncyA9IFtdLCBlbmRwb2ludCA9IGFwaXNbYXBpXS5lbmRwb2ludHMuY29tcGxldGlvbnMsIGV4cGVjdGVkT3JpZ2luIH0gPSBhcGlzW2FwaV0sCiAgICAgICAgICAgICAgICAgIGVzY2FwZWRBUEl1cmxzID0gW2VuZHBvaW50LCBleHBlY3RlZE9yaWdpbi51cmxdLm1hcCh1cmwgPT4gdXJsLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpKQogICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChbLi4uZmFpbEZsYWdzLCAuLi5lc2NhcGVkQVBJdXJsc10uam9pbignfCcpKQogICAgICAgIH0sCgogICAgICAgIHN0cmVhbShjYWxsZXIsIHN0cmVhbSkgewogICAgICAgICAgICBpZiAoY29uZmlnLnN0cmVhbWluZ0Rpc2FibGVkIHx8ICFjb25maWcucHJveHlBUEllbmFibGVkKSByZXR1cm4KICAgICAgICAgICAgbG9nLmNhbGxlciA9IGBnZXQuJHtjYWxsZXIubmFtZX0oKSDCuyBkYXRhUHJvY2Vzcy5zdHJlYW0oKWAKICAgICAgICAgICAgY29uc3QgZmFpbEZsYWdzQW5kVVJMcyA9IGRhdGFQcm9jZXNzLmluaXRGYWlsRmxhZ3MoY2FsbGVyLmFwaSksCiAgICAgICAgICAgICAgICAgIHJlYWRlciA9IHN0cmVhbS5yZXNwb25zZS5nZXRSZWFkZXIoKSA7IGxldCBhY2N1bXVsYXRlZENodW5rcyA9ICcnCiAgICAgICAgICAgIHJlYWRlci5yZWFkKCkudGhlbihwcm9jZXNzU3RyZWFtVGV4dCkuY2F0Y2goZXJyID0+IGxvZy5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBzdHJlYW0nLCBlcnIubWVzc2FnZSkpCgogICAgICAgICAgICBmdW5jdGlvbiBwcm9jZXNzU3RyZWFtVGV4dCh7IGRvbmUsIHZhbHVlIH0pIHsKICAgICAgICAgICAgICAgIGlmIChkb25lKSB7IGNhbGxlci5zZW5kZXIgPSBudWxsCiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcERpdi5xdWVyeVNlbGVjdG9yKCcubG9hZGluZycpKSAvLyBubyB0ZXh0IHNob3duCiAgICAgICAgICAgICAgICAgICAgICAgIGFwaS50cnlOZXcoY2FsbGVyKQogICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyB0ZXh0IHdhcyBzaG93bgogICAgICAgICAgICAgICAgICAgICAgICBjYWxsZXIuc3RhdHVzID0gJ2RvbmUnIDsgY2FsbGVyLmF0dGVtcHRDbnQgPSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIHNob3cucmVwbHlDb3JuZXJCdG5zKCkgOyBhcGkuY2xlYXJUaW1lZE91dChjYWxsZXIudHJpZWRBUElzKQogICAgICAgICAgICAgICAgICAgIH0gcmV0dXJuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZXQgY2h1bmsgPSBuZXcgVGV4dERlY29kZXIoJ3V0ZjgnKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkodmFsdWUpKQogICAgICAgICAgICAgICAgaWYgKGNhbGxlci5hcGkgPT0gJ01peGVyQm94IEFJJykgeyAvLyBwcmUtcHJvY2VzcyBjaHVua3MKICAgICAgICAgICAgICAgICAgICBjb25zdCBleHRyYWN0ZWRDaHVua3MgPSBBcnJheS5mcm9tKGNodW5rLm1hdGNoQWxsKC9kYXRhOiguKikvZyksIG1hdGNoID0+IG1hdGNoWzFdCiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cW1NQQUNFXF0vZywgJyAnKS5yZXBsYWNlKC9cW05FV0xJTkVcXS9nLCAnXG4nKSkKICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihtYXRjaCA9PiAhL21lc3NhZ2VfKD86c3RhcnR8ZW5kKXxkb25lLy50ZXN0KG1hdGNoKSkKICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGV4dHJhY3RlZENodW5rcy5qb2luKCcnKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRDaHVua3MgPSBhcGlzW2NhbGxlci5hcGldLmFjY3VtdWxhdGVzVGV4dCA/IGNodW5rIDogYWNjdW11bGF0ZWRDaHVua3MgKyBjaHVuawogICAgICAgICAgICAgICAgaWYgKC9eKD86XHt8ZXZlbnQ6KS8udGVzdChhY2N1bXVsYXRlZENodW5rcykpIGFwaS50cnlOZXcoY2FsbGVyKQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgLy8gdG8gc2hvdyBzdHJlYW0gdGV4dAogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dFRvU2hvdyA9ICcnCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxsZXIuYXBpID09ICdHUFRmb3JMb3ZlJykgeyAvLyBleHRyYWN0IHBhcmVudElEICsgbGF0ZXN0IGNodW5rIHRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25MaW5lcyA9IGFjY3VtdWxhdGVkQ2h1bmtzLnNwbGl0KCdcbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm93UmVzdWx0ID0gSlNPTi5wYXJzZShqc29uTGluZXNbanNvbkxpbmVzLmxlbmd0aCAtIDFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vd1Jlc3VsdC5pZCkgYXBpcy5HUFRmb3JMb3ZlLnBhcmVudElEID0gbm93UmVzdWx0LmlkIC8vIGZvciBjb250ZXh0dWFsIHJlcGxpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRUb1Nob3cgPSBub3dSZXN1bHQudGV4dAogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgdGV4dFRvU2hvdyA9IGFjY3VtdWxhdGVkQ2h1bmtzCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZhaWxNYXRjaCA9IGZhaWxGbGFnc0FuZFVSTHMuZXhlYyh0ZXh0VG9TaG93KQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFpbE1hdGNoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoJ1Jlc3BvbnNlIHRleHQnLCB0ZXh0VG9TaG93KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCdGYWlsIGZsYWcgZGV0ZWN0ZWQnLCBgJyR7ZmFpbE1hdGNoWzBdfSdgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGxlci5zdGF0dXMgIT0gJ2RvbmUnICYmICFjYWxsZXIuc2VuZGVyKSBhcGkudHJ5TmV3KGNhbGxlcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNhbGxlci5zdGF0dXMgIT0gJ2RvbmUnKSB7IC8vIGFwcCB3YWl0aW5nIG9yIHNlbmRpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2FsbGVyLnNlbmRlcikgY2FsbGVyLnNlbmRlciA9IGNhbGxlci5hcGkgLy8gYXBwIGlzIHdhaXRpbmcsIGJlY29tZSBzZW5kZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxsZXIuc2VuZGVyID09IGNhbGxlci5hcGkgLy8gYXBwIGlzIHNlbmRpbmcgZnJvbSB0aGlzIGNhbGxlci5hcGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0ZXh0VG9TaG93LnRyaW0oKSAhPSAnJyAvLyBlbXB0eSBjaHVuayBub3QgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBzaG93LnJlcGx5KHRleHRUb1Nob3csIGZvb3RlckNvbnRlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsgbG9nLmVycm9yKCdFcnJvciBzaG93aW5nIHN0cmVhbScsIGVyci5tZXNzYWdlKSB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkKCkudGhlbigoeyBkb25lLCB2YWx1ZSB9KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxsZXIuc2VuZGVyID09IGNhbGxlci5hcGkpIC8vIGFtIGRlc2lnbmF0ZWQgc2VuZGVyLCByZWN1cnNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzU3RyZWFtVGV4dCh7IGRvbmUsIHZhbHVlIH0pCiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IGxvZy5lcnJvcignRXJyb3IgcmVhZGluZyBzdHJlYW0nLCBlcnIubWVzc2FnZSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICB0ZXh0KGNhbGxlciwgcmVzcCkgewogICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgICAgICAgICBpZiAoY2FsbGVyID09IGdldC5yZXBseSAmJiBjb25maWcucHJveHlBUEllbmFibGVkICYmICFjb25maWcuc3RyZWFtaW5nRGlzYWJsZWQKICAgICAgICAgICAgICAgICAgICB8fCBjYWxsZXIuc3RhdHVzID09ICdkb25lJykgcmV0dXJuCiAgICAgICAgICAgICAgICBsb2cuY2FsbGVyID0gYGdldC4ke2NhbGxlci5uYW1lfSgpIMK7IGRhdGFQcm9jZXNzLnRleHQoKWAKICAgICAgICAgICAgICAgIGNvbnN0IGZhaWxGbGFnc0FuZFVSTHMgPSBkYXRhUHJvY2Vzcy5pbml0RmFpbEZsYWdzKGNhbGxlci5hcGkpIDsgbGV0IHJlc3BUZXh0ID0gJycKICAgICAgICAgICAgICAgIGlmIChyZXNwLnN0YXR1cyAhPSAyMDApIHsKICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoJ1Jlc3BvbnNlIHN0YXR1cycsIHJlc3Auc3RhdHVzKQogICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKCdSZXNwb25zZSB0ZXh0JywgcmVzcC5yZXNwb25zZSB8fCByZXNwLnJlc3BvbnNlVGV4dCkKICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbGVyID09IGdldC5yZXBseSAmJiBjYWxsZXIuYXBpID09ICdPcGVuQUknKQogICAgICAgICAgICAgICAgICAgICAgICBhcHBBbGVydChyZXNwLnN0YXR1cyA9PSA0MDEgPyAnbG9naW4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlc3Auc3RhdHVzID09IDQwMyA/ICdjaGVja0Nsb3VkZmxhcmUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlc3Auc3RhdHVzID09IDQyOSA/IFsndG9vTWFueVJlcXVlc3RzJywgJ3N1Z2dlc3RQcm94eSddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFsnb3BlbkFJbm90V29ya2luZycsICdzdWdnZXN0UHJveHknXSApCiAgICAgICAgICAgICAgICAgICAgZWxzZSBhcGkudHJ5TmV3KGNhbGxlcikKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FsbGVyLmFwaSA9PSAnT3BlbkFJJyAmJiByZXNwLnJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmFpbE1hdGNoID0gZmFpbEZsYWdzQW5kVVJMcy5leGVjKHJlc3AucmVzcG9uc2UpCiAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxNYXRjaCkgeyAvLyBzdWdnZXN0IHByb3h5IG9yIHRyeSBkaWZmIEFQSQogICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoJ1Jlc3BvbnNlIHRleHQnLCByZXNwLnJlc3BvbnNlKQogICAgICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoJ0ZhaWwgZmxhZyBkZXRlY3RlZCcsIGAnJHtmYWlsTWF0Y2hbMF19J2ApCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxsZXIgPT0gZ2V0LnJlcGx5KSBhcHBBbGVydCgnb3BlbkFJbm90V29ya2luZycsICdzdWdnZXN0UHJveHknKQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGFwaS50cnlOZXcoY2FsbGVyKQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7IC8vIHRvIHNob3cgcmVzcG9uc2Ugb3IgcmV0dXJuIHJlbGF0ZWQgcXVlcmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcFRleHQgPSBKU09OLnBhcnNlKHJlc3AucmVzcG9uc2UpLmNob2ljZXNbMF0ubWVzc2FnZS5jb250ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVQcm9jZXNzQ29tcGxldGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgeyBoYW5kbGVQcm9jZXNzRXJyb3IoZXJyKSB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwLnJlc3BvbnNlVGV4dCkgewogICAgICAgICAgICAgICAgICAgIGlmIChjYWxsZXIuYXBpID09ICdBSWNoYXRPUycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsgLy8gdG8gc2hvdyByZXNwb25zZSBvciByZXR1cm4gcmVsYXRlZCBxdWVyaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gcmVzcC5yZXNwb25zZVRleHQsIGNodW5rU2l6ZSA9IDEwMjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50SWR4ID0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRJZHggPCB0ZXh0Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rID0gdGV4dC5zdWJzdHJpbmcoY3VycmVudElkeCwgY3VycmVudElkeCArIGNodW5rU2l6ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwVGV4dCArPSBjaHVuayA7IGN1cnJlbnRJZHggKz0gY2h1bmtTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVQcm9jZXNzQ29tcGxldGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgeyBoYW5kbGVQcm9jZXNzRXJyb3IoZXJyKSB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjYWxsZXIuYXBpID09ICdHUFRmb3JMb3ZlJykgewogICAgICAgICAgICAgICAgICAgICAgICB0cnkgeyAvLyB0byBzaG93IHJlc3BvbnNlIG9yIHJldHVybiByZWxhdGVkIHF1ZXJpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjaHVua3MgPSByZXNwLnJlc3BvbnNlVGV4dC50cmltKCkuc3BsaXQoJ1xuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE9iaiA9IEpTT04ucGFyc2UoY2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0T2JqLmlkKSBhcGlzLkdQVGZvckxvdmUucGFyZW50SUQgPSBsYXN0T2JqLmlkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwVGV4dCA9IGxhc3RPYmoudGV4dCA7IGhhbmRsZVByb2Nlc3NDb21wbGV0aW9uKCkKICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7IGhhbmRsZVByb2Nlc3NFcnJvcihlcnIpIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNhbGxlci5hcGkgPT0gJ01peGVyQm94IEFJJykgewogICAgICAgICAgICAgICAgICAgICAgICB0cnkgeyAvLyB0byBzaG93IHJlc3BvbnNlIG9yIHJldHVybiByZWxhdGVkIHF1ZXJpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhY3RlZERhdGEgPSBBcnJheS5mcm9tKHJlc3AucmVzcG9uc2VUZXh0Lm1hdGNoQWxsKC9kYXRhOiguKikvZyksIG1hdGNoID0+IG1hdGNoWzFdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xbU1BBQ0VcXS9nLCAnICcpLnJlcGxhY2UoL1xbTkVXTElORVxdL2csICdcbicpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobWF0Y2ggPT4gIS9tZXNzYWdlXyg/OnN0YXJ0fGVuZCl8ZG9uZS8udGVzdChtYXRjaCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwVGV4dCA9IGV4dHJhY3RlZERhdGEuam9pbignJykgOyBoYW5kbGVQcm9jZXNzQ29tcGxldGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgeyBoYW5kbGVQcm9jZXNzRXJyb3IoZXJyKSB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjYWxsZXIuc3RhdHVzICE9ICdkb25lJykgeyAvLyBwcm94eSAyMDAgcmVzcG9uc2UgZmFpbHVyZQogICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKCdSZXNwb25zZSB0ZXh0JywgcmVzcC5yZXNwb25zZVRleHQpIDsgYXBpLnRyeU5ldyhjYWxsZXIpIH0KCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVQcm9jZXNzQ29tcGxldGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbGVyLnN0YXR1cyAhPSAnZG9uZScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCdSZXNwb25zZSB0ZXh0JywgcmVzcFRleHQpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZhaWxNYXRjaCA9IGZhaWxGbGFnc0FuZFVSTHMuZXhlYyhyZXNwVGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwVGV4dCB8fCBmYWlsTWF0Y2ggfHwgL14oPzpce3xldmVudDopLy50ZXN0KHJlc3BUZXh0KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxNYXRjaCkgbG9nLmVycm9yKCdGYWlsIGZsYWcgZGV0ZWN0ZWQnLCBgJyR7ZmFpbE1hdGNoWzBdfSdgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpLnRyeU5ldyhjYWxsZXIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsZXIuc3RhdHVzID0gJ2RvbmUnIDsgYXBpLmNsZWFyVGltZWRPdXQoY2FsbGVyLnRyaWVkQVBJcykgOyBjYWxsZXIuYXR0ZW1wdENudCA9IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxsZXIgPT0gZ2V0LnJlcGx5KSB7IHNob3cucmVwbHkocmVzcFRleHQsIGZvb3RlckNvbnRlbnQpIDsgc2hvdy5yZXBseUNvcm5lckJ0bnMoKSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJlc29sdmUoYXJyYXlpZnkocmVzcFRleHQpKQogICAgICAgICAgICAgICAgfX19CgogICAgICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlUHJvY2Vzc0Vycm9yKGVycikgeyAvLyBzdWdnZXN0IHByb3h5IG9yIHRyeSBkaWZmIEFQSQogICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygnUmVzcG9uc2UgdGV4dCcsIHJlc3AucmVzcG9uc2UpCiAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKGFwcC5hbGVydHMucGFyc2VGYWlsZWQsIGVycikKICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbGVyLmFwaSA9PSAnT3BlbkFJJyAmJiBjYWxsZXIgPT0gZ2V0LnJlcGx5KSBhcHBBbGVydCgnb3BlbkFJbm90V29ya2luZycsICdzdWdnZXN0UHJveHknKQogICAgICAgICAgICAgICAgICAgIGVsc2UgYXBpLnRyeU5ldyhjYWxsZXIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVnZXhwL25vLXN1cGVyLWxpbmVhci1iYWNrdHJhY2tpbmcgKi8KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFycmF5aWZ5KHN0ckxpc3QpIHsgLy8gZm9yIGdldC5yZWxhdGVkKCkgY2FsbHMKICAgICAgICAgICAgICAgICAgICBsb2cuY2FsbGVyID0gJ2RhdGFQcm9jZXNzLnRleHQgwrsgYXJyYXlpZnkoKScKICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoJ0FycmF5aWZ5aW5nIHJlbGF0ZWQgcXVlcmllcy4uLicpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChzdHJMaXN0LnRyaW0oKS5tYXRjaCgvXlxkK1wuP1xzKihbXlxuXSs/KSg/PVxufFxcbnwkKS9nbSkgfHwgW10pCiAgICAgICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCA1KSAvLyBsaW1pdCB0byAxc3QgNQogICAgICAgICAgICAgICAgICAgICAgICAubWFwKG1hdGNoID0+IG1hdGNoLnJlcGxhY2UoL1wqXCovZywgJycpIC8vIHN0cmlwIG1hcmtkb3duIGJvbGRlbmluZ3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9eWyciXSooPzpcZCtcLj9ccyopP1snIl0qKC4qPylbJyJdKiQvZywgJyQxJykpIC8vIHN0cmlwIG51bWJlcmluZyArIHF1b3RlcwogICAgICAgICAgICAgICAgfSAvKiBlc2xpbnQtZW5hYmxlIHJlZ2V4cC9uby1zdXBlci1saW5lYXItYmFja3RyYWNraW5nICovCiAgICAgICAgfSl9CiAgICB9CgogICAgLy8gRGVmaW5lIFNIT1cgZnVuY3Rpb25zCgogICAgY29uc3Qgc2hvdyA9IHsKCiAgICAgICAgcmVwbHlDb3JuZXJCdG5zKCkgewogICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7YXBwLmNzc1ByZWZpeH0tY29weS1idG5gKSkgcmV0dXJuCiAgICAgICAgICAgIGNvbnN0IGJhc2VCdG5TdHlsZXMgPSAnZmxvYXQ6IHJpZ2h0IDsgY3Vyc29yOiBwb2ludGVyIDsnCgogICAgICAgICAgICAvLyBBZGQgdG9wIHBhcmVudCBkaXYKICAgICAgICAgICAgY29uc3QgY29ybmVyQnRuc0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpCiAgICAgICAgICAgIGNvcm5lckJ0bnNEaXYuY2xhc3NOYW1lID0gYCR7YXBwLmNzc1ByZWZpeH0taGVhZGVyLWJ0bnNgCiAgICAgICAgICAgIGFwcERpdi5xdWVyeVNlbGVjdG9yKCdwcmUnKS5wcmVwZW5kKGNvcm5lckJ0bnNEaXYpCgogICAgICAgICAgICAvLyBBZGQgQ29weSBidXR0b25zCiAgICAgICAgICAgIGFwcERpdi5xdWVyeVNlbGVjdG9yQWxsKGAjJHthcHAuY3NzUHJlZml4fSA+IHByZSwgY29kZWApLmZvckVhY2gocGFyZW50RWxlbSA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCBjb3B5QnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnRuJyksCiAgICAgICAgICAgICAgICAgICAgICBjb3B5U1ZHID0gaWNvbnMuY29weS5jcmVhdGUocGFyZW50RWxlbSkKICAgICAgICAgICAgICAgIGNvcHlCdG4uaWQgPSBgJHthcHAuY3NzUHJlZml4fS1jb3B5LWJ0bmAgOyBjb3B5U1ZHLmlkID0gYCR7YXBwLmNzc1ByZWZpeH0tY29weS1pY29uYAogICAgICAgICAgICAgICAgY29weUJ0bi5jbGFzc05hbWUgPSAnbm8tbW9iaWxlLXRhcC1vdXRsaW5lJyA7IGNvcHlCdG4uc3R5bGUuY3NzVGV4dCA9IGJhc2VCdG5TdHlsZXMKICAgICAgICAgICAgICAgIGNvcHlCdG4uYXBwZW5kKGNvcHlTVkcpIDsgbGV0IGVsZW1Ub1ByZXBlbmQgPSBjb3B5QnRuCgogICAgICAgICAgICAgICAgLy8gV3JhcCBjb2RlIGJ1dHRvbiBpbiBkaXYgZm9yIHYtb2Zmc2V0CiAgICAgICAgICAgICAgICBpZiAocGFyZW50RWxlbS50YWdOYW1lID09ICdDT0RFJykgewogICAgICAgICAgICAgICAgICAgIGVsZW1Ub1ByZXBlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKQogICAgICAgICAgICAgICAgICAgIGVsZW1Ub1ByZXBlbmQuc3R5bGUuY3NzVGV4dCA9ICdoZWlnaHQ6IDExcHggOyBtYXJnaW46IDRweCA1cHggMCAwJwogICAgICAgICAgICAgICAgICAgIGVsZW1Ub1ByZXBlbmQuYXBwZW5kKGNvcHlCdG4pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gQWRkIGxpc3RlbmVycwogICAgICAgICAgICAgICAgaWYgKCFlbnYuYnJvd3Nlci5pc01vYmlsZSkgY29weUJ0bi5vbm1vdXNlZW50ZXIgPSBjb3B5QnRuLm9ubW91c2VsZWF2ZSA9IHRvZ2dsZS50b29sdGlwCiAgICAgICAgICAgICAgICBjb3B5QnRuLm9uY2xpY2sgPSBldmVudCA9PiB7IC8vIGNvcHkgdGV4dCwgdXBkYXRlIGljb24gKyB0b29sdGlwIHN0YXR1cwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcHlTVkcgPSBjb3B5QnRuLnF1ZXJ5U2VsZWN0b3IoYCMke2FwcC5jc3NQcmVmaXh9LWNvcHktaWNvbmApCiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb3B5U1ZHKSByZXR1cm4gLy8gc2luY2UgY2xpY2tpbmcgb24gQ29waWVkIGljb24KICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0Q29udGFpbmVyID0gKAogICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnBhcmVudE5vZGUudGFnTmFtZSA9PSAnUFJFJyA/IGNvcHlCdG4ucGFyZW50Tm9kZSAvLyByZXBseSBjb250YWluZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb3B5QnRuLnBhcmVudE5vZGUucGFyZW50Tm9kZSApIC8vIGNvZGUgY29udGFpbmVyCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFRvQ29weSA9IHRleHRDb250YWluZXIudGV4dENvbnRlbnQucmVwbGFjZSgvXj4+IC8sICcnKS50cmltKCkKICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGVja21hcmtzU1ZHID0gaWNvbnMuY2hlY2ttYXJrRG91YmxlLmNyZWF0ZSgpCiAgICAgICAgICAgICAgICAgICAgY2hlY2ttYXJrc1NWRy5zdHlsZS5tYXJnaW5MZWZ0ID0gJzFweCcgLy8gc2V0IHNhbWUgbGVmdCBib3VuZGFyeSBhcyBDb3B5IGljb24gdG8gbm90IHNoaWZ0IG90aGVyIG9uZXMKICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnJlcGxhY2VDaGlsZChjaGVja21hcmtzU1ZHLCBjb3B5U1ZHKSAvLyBjaGFuZ2UgdG8gQ29waWVkIGljb24KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGNvcHlCdG4ucmVwbGFjZUNoaWxkKGNvcHlTVkcsIGNoZWNrbWFya3NTVkcpLCAxMzU1KSAvLyBjaGFuZ2UgYmFjayB0byBjb3B5IGljb24KICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0VG9Db3B5KSAvLyBjb3B5IHRleHQgdG8gY2xpcGJvYXJkCiAgICAgICAgICAgICAgICAgICAgaWYgKCFlbnYuYnJvd3Nlci5pc01vYmlsZSkgdG9nZ2xlLnRvb2x0aXAoZXZlbnQpIC8vIHNob3cgY29waWVkIHN0YXR1cyBpbiB0b29sdGlwCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gUHJlcGVuZCBidXR0b24KICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFRvSW5zZXJ0SW50byA9IHBhcmVudEVsZW0udGFnTmFtZSA9PSAnQ09ERScgPyBwYXJlbnRFbGVtIDogY29ybmVyQnRuc0RpdgogICAgICAgICAgICAgICAgcGFyZW50VG9JbnNlcnRJbnRvLnByZXBlbmQoZWxlbVRvUHJlcGVuZCkKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIC8vIEFkZCBSZWdlbmVyYXRlIGJ1dHRvbgogICAgICAgICAgICBjb25zdCByZWdlbkJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J0bicpIDsgcmVnZW5CdG4uaWQgPSBgJHthcHAuY3NzUHJlZml4fS1yZWdlbi1idG5gCiAgICAgICAgICAgIHJlZ2VuQnRuLmNsYXNzTmFtZSA9ICduby1tb2JpbGUtdGFwLW91dGxpbmUnCiAgICAgICAgICAgIHJlZ2VuQnRuLnN0eWxlLmNzc1RleHQgPSBiYXNlQnRuU3R5bGVzICsgJ3Bvc2l0aW9uOiByZWxhdGl2ZSA7IHRvcDogMXB4IDsgbWFyZ2luOiAwIDlweCAwIDVweCcKICAgICAgICAgICAgY29uc3QgcmVnZW5TVkcgPSBpY29ucy5hcnJvd3NDeWNsZS5jcmVhdGUoKTsKICAgICAgICAgICAgWyd3aWR0aCcsICdoZWlnaHQnXS5mb3JFYWNoKGF0dHIgPT4gcmVnZW5TVkcuc2V0QXR0cmlidXRlKGF0dHIsIDE3KSkKICAgICAgICAgICAgcmVnZW5CdG4uYXBwZW5kKHJlZ2VuU1ZHKSA7IGNvcm5lckJ0bnNEaXYuYXBwZW5kKHJlZ2VuQnRuKQogICAgICAgICAgICBpZiAoIWVudi5icm93c2VyLmlzTW9iaWxlKSByZWdlbkJ0bi5vbm1vdXNlZW50ZXIgPSByZWdlbkJ0bi5vbm1vdXNlbGVhdmUgPSB0b2dnbGUudG9vbHRpcAogICAgICAgICAgICByZWdlbkJ0bi5vbmNsaWNrID0gKCkgPT4gewogICAgICAgICAgICAgICAgZ2V0LnJlcGx5KG1zZ0NoYWluKSA7IGFwcEFsZXJ0KCd3YWl0aW5nUmVzcG9uc2UnKQogICAgICAgICAgICAgICAgaWYgKCFlbnYuYnJvd3Nlci5pc01vYmlsZSkgdG9vbHRpcERpdi5zdHlsZS5vcGFjaXR5ID0gMCAvLyBvciB0b29sdGlwIHNob3dzIG9uIG5leHQgcmVwbHkKICAgICAgICAgICAgICAgIHNob3cucmVwbHkuY2hhdGJhckZvY3VzZWQgPSBmYWxzZSA7IHNob3cucmVwbHkudXNlckludGVyYWN0ZWQgPSB0cnVlCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICByZXBseShhbnN3ZXIpIHsKCiAgICAgICAgICAgIC8vIEJ1aWxkIGFuc3dlciBpbnRlcmZhY2UgdXAgdG8gcmVwbHkgc2VjdGlvbiBpZiBtaXNzaW5nCiAgICAgICAgICAgIGlmICghYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoJ3ByZScpKSB7CiAgICAgICAgICAgICAgICBhcHBEaXYudGV4dENvbnRlbnQgPSAnJwogICAgICAgICAgICAgICAgZG9tLmZpbGxTdGFycnlCRyhhcHBEaXYpIC8vIGFkZCBzdGFycwoKICAgICAgICAgICAgICAgIC8vIENyZWF0ZS9hcHBlbmQgdGl0bGUKICAgICAgICAgICAgICAgIGNvbnN0IGFwcFByZWZpeFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykgOyBhcHBQcmVmaXhTcGFuLmlkID0gJ2FwcC1wcmVmaXgnCiAgICAgICAgICAgICAgICBhcHBQcmVmaXhTcGFuLmlubmVyVGV4dCA9ICfwn6SWICcgOyBhcHBQcmVmaXhTcGFuLmNsYXNzTmFtZSA9ICduby11c2VyLXNlbGVjdCcKICAgICAgICAgICAgICAgIGFwcFByZWZpeFNwYW4uc3R5bGUubWFyZ2luUmlnaHQgPSAnLTJweCcKICAgICAgICAgICAgICAgIGFwcFByZWZpeFNwYW4uc3R5bGUuZm9udFNpemUgPSBlbnYuYnJvd3Nlci5pc01vYmlsZSA/ICcxLjdyZW0nIDogJzEuMXJlbScKICAgICAgICAgICAgICAgIGFwcERpdi5hcHBlbmQoYXBwUHJlZml4U3BhbikKICAgICAgICAgICAgICAgIGNvbnN0IGFwcEhlYWRlckxvZ28gPSBsb2dvcy5nb29nbGVHUFQuY3JlYXRlKCkKICAgICAgICAgICAgICAgIGFwcEhlYWRlckxvZ28ud2lkdGggPSBlbnYuYnJvd3Nlci5pc01vYmlsZSA/IDE3NyA6IGVudi5icm93c2VyLmlzRkYgPyAxMjQgOiAxMjIKICAgICAgICAgICAgICAgIGFwcEhlYWRlckxvZ28uc3R5bGUuY3NzVGV4dCA9ICgKICAgICAgICAgICAgICAgICAgICBgcG9zaXRpb246IHJlbGF0aXZlIDsgdG9wOiAkeyBlbnYuYnJvd3Nlci5pc01vYmlsZSA/IDQgOiBlbnYuYnJvd3Nlci5pc0ZGID8gMyA6IDIgfXB4YAogICAgICAgICAgICAgICAgICArICggZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAnOyBtYXJnaW4tbGVmdDogMXB4JyA6ICcnICkpCiAgICAgICAgICAgICAgICBjb25zdCBhcHBUaXRsZUFuY2hvciA9IGRvbS5jcmVhdGUuYW5jaG9yKGFwcC51cmxzLmFwcCwgYXBwSGVhZGVyTG9nbykKICAgICAgICAgICAgICAgIGFwcFRpdGxlQW5jaG9yLmNsYXNzTGlzdC5hZGQoYCR7YXBwLmNzc1ByZWZpeH0tbmFtZWAsICduby11c2VyLXNlbGVjdCcpCiAgICAgICAgICAgICAgICBhcHBEaXYuYXBwZW5kKGFwcFRpdGxlQW5jaG9yKQoKICAgICAgICAgICAgICAgIC8vIENyZWF0ZS9hcHBlbmQgaGVhZGVyIGJ1dHRvbnMgZGl2CiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJCdG5zRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykKICAgICAgICAgICAgICAgIGhlYWRlckJ0bnNEaXYuaWQgPSBgJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRuc2AKICAgICAgICAgICAgICAgIGhlYWRlckJ0bnNEaXYuY2xhc3NOYW1lID0gJ25vLW1vYmlsZS10YXAtb3V0bGluZScKICAgICAgICAgICAgICAgIGFwcERpdi5hcHBlbmQoaGVhZGVyQnRuc0RpdikKCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUvYXBwZW5kIENoZXZyb24gYnV0dG9uCiAgICAgICAgICAgICAgICBpZiAoIWVudi5icm93c2VyLmlzTW9iaWxlKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNoZXZyb25CdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidG4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgY2hldnJvblNWRyA9IGljb25zW2BjaGV2cm9uJHsgY29uZmlnLm1pbmltaXplZCA/ICdVcCcgOiAnRG93bicgfWBdLmNyZWF0ZSgpCiAgICAgICAgICAgICAgICAgICAgY2hldnJvbkJ0bi5pZCA9IGAke2FwcC5jc3NQcmVmaXh9LWNoZXZyb24tYnRuYCAvLyBmb3IgdG9nZ2xlLnRvb2x0aXAoKQogICAgICAgICAgICAgICAgICAgIGNoZXZyb25CdG4uY2xhc3NMaXN0LmFkZChgJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRuYCwgJ2FuY2hvcmVkLW9ubHknKQogICAgICAgICAgICAgICAgICAgIGNoZXZyb25CdG4uc3R5bGUubWFyZ2luID0gJy0zLjVweCAxcHggMCAxMXB4JyAvLyBwb3NpdGlvbgogICAgICAgICAgICAgICAgICAgIGNoZXZyb25CdG4uYXBwZW5kKGNoZXZyb25TVkcpIDsgaGVhZGVyQnRuc0Rpdi5hcHBlbmQoY2hldnJvbkJ0bikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUvYXBwZW5kIEFib3V0IGJ1dHRvbgogICAgICAgICAgICAgICAgY29uc3QgYWJvdXRCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidG4nKSwKICAgICAgICAgICAgICAgICAgICAgIGFib3V0U1ZHID0gaWNvbnMucXVlc3Rpb25NYXJrQ2lyY2xlLmNyZWF0ZSgpCiAgICAgICAgICAgICAgICBhYm91dEJ0bi5pZCA9IGAke2FwcC5jc3NQcmVmaXh9LWFib3V0LWJ0bmAgLy8gZm9yIHRvZ2dsZS50b29sdGlwKCkKICAgICAgICAgICAgICAgIGFib3V0QnRuLmNsYXNzTGlzdC5hZGQoYCR7YXBwLmNzc1ByZWZpeH0taGVhZGVyLWJ0bmApCiAgICAgICAgICAgICAgICBhYm91dEJ0bi5zdHlsZS5tYXJnaW5Ub3AgPSBgJHsgZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAwLjI1IDogLTAuMTUgfXJlbWAgLy8gcG9zaXRpb24KICAgICAgICAgICAgICAgIGFib3V0QnRuLmFwcGVuZChhYm91dFNWRykgOyBoZWFkZXJCdG5zRGl2LmFwcGVuZChhYm91dEJ0bikKCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUvYXBwZW5kIFNldHRpbmdzIGJ1dHRvbgogICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3NCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidG4nKSwKICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzU1ZHID0gaWNvbnMuY29nd2hlZWwuY3JlYXRlKCkKICAgICAgICAgICAgICAgIHNldHRpbmdzQnRuLmlkID0gYCR7YXBwLmNzc1ByZWZpeH0tc2V0dGluZ3MtYnRuYCAvLyBmb3IgdG9nZ2xlLnRvb2x0aXAoKQogICAgICAgICAgICAgICAgc2V0dGluZ3NCdG4uY2xhc3NMaXN0LmFkZChgJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRuYCkKICAgICAgICAgICAgICAgIHNldHRpbmdzQnRuLnN0eWxlLm1hcmdpbiA9IGAkeyBlbnYuYnJvd3Nlci5pc01vYmlsZSA/IDQuNSA6IC0yIH1weCAxMHB4IDAgMi41cHhgIC8vIHBvc2l0aW9uCiAgICAgICAgICAgICAgICBzZXR0aW5nc0J0bi5hcHBlbmQoc2V0dGluZ3NTVkcpIDsgaGVhZGVyQnRuc0Rpdi5hcHBlbmQoc2V0dGluZ3NCdG4pCgogICAgICAgICAgICAgICAgLy8gQ3JlYXRlL2FwcGVuZCBTcGVhayBidXR0b24KICAgICAgICAgICAgICAgIGlmIChhbnN3ZXIgIT0gJ3N0YW5kYnknKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNwZWFrZXJCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidG4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgc3BlYWtlclNWRyA9IGljb25zLnNwZWFrZXIuY3JlYXRlKCkKICAgICAgICAgICAgICAgICAgICBzcGVha2VyQnRuLmlkID0gYCR7YXBwLmNzc1ByZWZpeH0tc3BlYWstYnRuYCAvLyBmb3IgdG9nZ2xlLnRvb2x0aXAoKQogICAgICAgICAgICAgICAgICAgIHNwZWFrZXJCdG4uY2xhc3NMaXN0LmFkZChgJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRuYCwgJ2FwcC1ob3Zlci1vbmx5JykKICAgICAgICAgICAgICAgICAgICBzcGVha2VyQnRuLnN0eWxlLm1hcmdpbiA9IGAkeyBlbnYuYnJvd3Nlci5pc01vYmlsZSA/IDIgOiAtNC41IH1weCA2cHggMCAwYCAvLyBwb3NpdGlvbgogICAgICAgICAgICAgICAgICAgIHNwZWFrZXJCdG4uYXBwZW5kKHNwZWFrZXJTVkcpIDsgaGVhZGVyQnRuc0Rpdi5hcHBlbmQoc3BlYWtlckJ0bikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUvYXBwZW5kIEZvbnQgU2l6ZSBidXR0b24KICAgICAgICAgICAgICAgIGlmIChhbnN3ZXIgIT0gJ3N0YW5kYnknKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGZvbnRTaXplQnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnRuJyksCiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplU1ZHID0gaWNvbnMuZm9udFNpemUuY3JlYXRlKCkKICAgICAgICAgICAgICAgICAgICBmb250U2l6ZUJ0bi5pZCA9IGAke2FwcC5jc3NQcmVmaXh9LWZvbnQtc2l6ZS1idG5gIC8vIGZvciB0b2dnbGUudG9vbHRpcCgpCiAgICAgICAgICAgICAgICAgICAgZm9udFNpemVCdG4uY2xhc3NMaXN0LmFkZChgJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRuYCwgJ2FwcC1ob3Zlci1vbmx5JykKICAgICAgICAgICAgICAgICAgICBmb250U2l6ZUJ0bi5zdHlsZS5tYXJnaW4gPSBgJHsgZW52LmJyb3dzZXIuaXNNb2JpbGUgPyA1IDogLTIgfXB4IDlweCAwIDBgIC8vIHBvc2l0aW9uCiAgICAgICAgICAgICAgICAgICAgZm9udFNpemVCdG4uYXBwZW5kKGZvbnRTaXplU1ZHKSA7IGhlYWRlckJ0bnNEaXYuYXBwZW5kKGZvbnRTaXplQnRuKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIENyZWF0ZS9hcHBlbmQgUGluIGJ1dHRvbgogICAgICAgICAgICAgICAgaWYgKCFlbnYuYnJvd3Nlci5pc01vYmlsZSkgewogICAgICAgICAgICAgICAgICAgIHZhciBwaW5CdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidG4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgcGluU1ZHID0gaWNvbnMucGluLmNyZWF0ZSgpCiAgICAgICAgICAgICAgICAgICAgcGluQnRuLmlkID0gYCR7YXBwLmNzc1ByZWZpeH0tcGluLWJ0bmAgLy8gZm9yIHRvZ2dsZS5zaWRlYmFyKCkgKyB0b2dnbGUudG9vbHRpcCgpCiAgICAgICAgICAgICAgICAgICAgcGluQnRuLmNsYXNzTGlzdC5hZGQoYCR7YXBwLmNzc1ByZWZpeH0taGVhZGVyLWJ0bmAsICdhcHAtaG92ZXItb25seScpCiAgICAgICAgICAgICAgICAgICAgcGluQnRuLnN0eWxlLm1hcmdpbiA9ICctMS41NXB4IDcuNXB4IDAgMCcgLy8gcG9zaXRpb24KICAgICAgICAgICAgICAgICAgICBwaW5CdG4uYXBwZW5kKHBpblNWRykgOyBoZWFkZXJCdG5zRGl2LmFwcGVuZChwaW5CdG4pCgogICAgICAgICAgICAgICAgLy8gQ3JlYXRlL2FwcGVuZCBXaWRlciBTaWRlYmFyIGJ1dHRvbgogICAgICAgICAgICAgICAgICAgIHZhciB3c2JCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidG4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgd3NiU1ZHID0gaWNvbnMud2lkZXNjcmVlbi5jcmVhdGUoKQogICAgICAgICAgICAgICAgICAgIHdzYkJ0bi5pZCA9IGAke2FwcC5jc3NQcmVmaXh9LXdzYi1idG5gIC8vIGZvciB0b2dnbGUuc2lkZWJhcigpICsgdG9nZ2xlLnRvb2x0aXAoKQogICAgICAgICAgICAgICAgICAgIHdzYkJ0bi5jbGFzc0xpc3QuYWRkKGAke2FwcC5jc3NQcmVmaXh9LWhlYWRlci1idG5gLCAnYXBwLWhvdmVyLW9ubHknLCAnYW5jaG9yZWQtaGlkZGVuJykKICAgICAgICAgICAgICAgICAgICB3c2JCdG4uc3R5bGUubWFyZ2luID0gJy0ycHggMTJweCAwIDAnIC8vIHBvc2l0aW9uCiAgICAgICAgICAgICAgICAgICAgd3NiQnRuLmFwcGVuZCh3c2JTVkcpIDsgaGVhZGVyQnRuc0Rpdi5hcHBlbmQod3NiQnRuKQoKICAgICAgICAgICAgICAgIC8vIENyZWF0ZS9hcHBlbmQgRXhwYW5kL1NocmluayBidXR0b24KICAgICAgICAgICAgICAgICAgICB2YXIgYXJyb3dzQnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnRuJyksCiAgICAgICAgICAgICAgICAgICAgICAgIGFycm93c1NWRyA9IGljb25zLmFycm93c0RpYWdvbmFsLmNyZWF0ZSgpCiAgICAgICAgICAgICAgICAgICAgYXJyb3dzU1ZHLnN0eWxlLnRyYW5zZm9ybSA9ICdyb3RhdGUoLTdkZWcpJyAvLyB0aWx0IHNsaWdodGx5IHRvIGhpbnQgZXhwYW5zaW9ucyBvZnRlbiBob3Jpem9udGFsCiAgICAgICAgICAgICAgICAgICAgYXJyb3dzQnRuLmlkID0gYCR7YXBwLmNzc1ByZWZpeH0tYXJyb3dzLWJ0bmAgLy8gZm9yIHRvZ2dsZS50b29sdGlwKCkKICAgICAgICAgICAgICAgICAgICBhcnJvd3NCdG4uY2xhc3NMaXN0LmFkZChgJHthcHAuY3NzUHJlZml4fS1oZWFkZXItYnRuYCwgJ2FwcC1ob3Zlci1vbmx5JywgJ2FuY2hvcmVkLW9ubHknKQogICAgICAgICAgICAgICAgICAgIGFycm93c0J0bi5zdHlsZS5tYXJnaW4gPSAnLTEuNXB4IDEycHggMCAwJyAvLyBwb3NpdGlvbgogICAgICAgICAgICAgICAgICAgIGFycm93c0J0bi5hcHBlbmQoYXJyb3dzU1ZHKSA7IGhlYWRlckJ0bnNEaXYuYXBwZW5kKGFycm93c0J0bikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBBZGQgdG9vbHRpcHMKICAgICAgICAgICAgICAgIGlmICghZW52LmJyb3dzZXIuaXNNb2JpbGUpIGFwcERpdi5hcHBlbmQodG9vbHRpcERpdikKCiAgICAgICAgICAgICAgICAvLyBBZGQgYXBwIGhlYWRlciBidXR0b24gbGlzdGVuZXJzCiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcnMuYXBwSGVhZGVyQnRucygpCgogICAgICAgICAgICAgICAgLy8gQ3JlYXRlL2FwcGVuZCAnYnkgS3Vkb0FJJyBpZiBpdCBmaXRzCiAgICAgICAgICAgICAgICBpZiAoIWVudi5icm93c2VyLmlzTW9iaWxlKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qga3Vkb0FJc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQogICAgICAgICAgICAgICAgICAgIGt1ZG9BSXNwYW4uY2xhc3NMaXN0LmFkZCgna3Vkb2FpJywgJ25vLXVzZXItc2VsZWN0JykgOyBrdWRvQUlzcGFuLnRleHRDb250ZW50ID0gJ2J5ICcKICAgICAgICAgICAgICAgICAgICBrdWRvQUlzcGFuLmFwcGVuZChkb20uY3JlYXRlLmFuY2hvcihhcHAudXJscy5wdWJsaXNoZXIsICdLdWRvQUknKSkKICAgICAgICAgICAgICAgICAgICBhcHBEaXYucXVlcnlTZWxlY3RvcihgLiR7YXBwLmNzc1ByZWZpeH0tbmFtZWApLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJlbmQnLCBrdWRvQUlzcGFuKQogICAgICAgICAgICAgICAgICAgIHVwZGF0ZS5ieWxpbmVWaXNpYmlsaXR5KCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBTaG93IHN0YW5kYnkgc3RhdGUgaWYgcHJlZml4L3N1ZmZpeCBtb2RlIG9uCiAgICAgICAgICAgICAgICBpZiAoYW5zd2VyID09ICdzdGFuZGJ5JykgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YW5kYnlCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKQogICAgICAgICAgICAgICAgICAgIHN0YW5kYnlCdG4uY2xhc3NMaXN0LmFkZChgJHthcHAuY3NzUHJlZml4fS1zdGFuZGJ5LWJ0bmAsICduby1tb2JpbGUtdGFwLW91dGxpbmUnKQogICAgICAgICAgICAgICAgICAgIHN0YW5kYnlCdG4udGV4dENvbnRlbnQgPSBhcHAubXNncy5idG5MYWJlbF9zZW5kUXVlcnlUb0FwcCB8fCBgU2VuZCBzZWFyY2ggcXVlcnkgdG8gJHthcHAubmFtZX1gCiAgICAgICAgICAgICAgICAgICAgYXBwRGl2LmFwcGVuZChzdGFuZGJ5QnRuKQogICAgICAgICAgICAgICAgICAgIHNob3cucmVwbHkuc3RhbmRieUJ0bkNsaWNrSGFuZGxlciA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBhcHBBbGVydCgnd2FpdGluZ1Jlc3BvbnNlJykKICAgICAgICAgICAgICAgICAgICAgICAgbXNnQ2hhaW4ucHVzaCh7IHJvbGU6ICd1c2VyJywgY29udGVudDogYXVnbWVudFF1ZXJ5KG5ldyBVUkwobG9jYXRpb24uaHJlZikuc2VhcmNoUGFyYW1zLmdldCgncScpKSB9KQogICAgICAgICAgICAgICAgICAgICAgICBzaG93LnJlcGx5LnVzZXJJbnRlcmFjdGVkID0gdHJ1ZSA7IHNob3cucmVwbHkuY2hhdGJhckZvY3VzZWQgPSBmYWxzZQogICAgICAgICAgICAgICAgICAgICAgICBtZW51cy5waW4udG9wUG9zID0gbWVudXMucGluLnJpZ2h0UG9zID0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBnZXQucmVwbHkobXNnQ2hhaW4pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHN0YW5kYnlCdG4ub25jbGljayA9IHNob3cucmVwbHkuc3RhbmRieUJ0bkNsaWNrSGFuZGxlcgoKICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSBjcmVhdGUvYXBwZW5kIGFuc3dlciBidWJibGUKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgYW5zd2VyUHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHlUaXBTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCiAgICAgICAgICAgICAgICAgICAgcmVwbHlUaXBTcGFuLmNsYXNzTmFtZSA9IGAke2FwcC5jc3NQcmVmaXh9LXJlcGx5LXRpcGAKICAgICAgICAgICAgICAgICAgICBhcHBEaXYuYXBwZW5kKHJlcGx5VGlwU3BhbiwgYW5zd2VyUHJlKSA7IHVwZGF0ZS5hbnN3ZXJQcmVNYXhIZWlnaHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBCdWlsZCByZXBseSBzZWN0aW9uIGlmIG1pc3NpbmcKICAgICAgICAgICAgaWYgKCFhcHBEaXYucXVlcnlTZWxlY3RvcihgIyR7YXBwLmNzc1ByZWZpeH0tY2hhdGJhcmApKSB7CgogICAgICAgICAgICAgICAgLy8gSW5pdC9jbGVhciByZXBseSBzZWN0aW9uIGNvbnRlbnQvY2xhc3NlcwogICAgICAgICAgICAgICAgY29uc3QgcmVwbHlTZWN0aW9uID0gYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoJ3NlY3Rpb24nKSB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWN0aW9uJykKICAgICAgICAgICAgICAgIHJlcGx5U2VjdGlvbi50ZXh0Q29udGVudCA9ICcnIDsgcmVwbHlTZWN0aW9uLmNsYXNzTGlzdC5yZW1vdmUoJ2xvYWRpbmcnLCAnbm8tdXNlci1zZWxlY3QnKQoKICAgICAgICAgICAgICAgIC8vIENyZWF0ZS9hcHBlbmQgc2VjdGlvbiBlbGVtcwogICAgICAgICAgICAgICAgY29uc3QgcmVwbHlGb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpLAogICAgICAgICAgICAgICAgICAgICAgY29udGludWVDaGF0RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCiAgICAgICAgICAgICAgICAgICAgICBjaGF0VGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpCiAgICAgICAgICAgICAgICBjaGF0VGV4dGFyZWEuaWQgPSBgJHthcHAuY3NzUHJlZml4fS1jaGF0YmFyYCA7IGNoYXRUZXh0YXJlYS5yb3dzID0gJzEnCiAgICAgICAgICAgICAgICBjaGF0VGV4dGFyZWEucGxhY2Vob2xkZXIgPSAoIGFuc3dlciA9PSAnc3RhbmRieScgPyBhcHAubXNncy5wbGFjZWhvbGRlcl9hc2tTb21ldGhpbmdFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcHAubXNncy50b29sdGlwX3NlbmRSZXBseSApICsgJy4uLicKICAgICAgICAgICAgICAgIGNvbnRpbnVlQ2hhdERpdi5hcHBlbmQoY2hhdFRleHRhcmVhKQogICAgICAgICAgICAgICAgcmVwbHlGb3JtLmFwcGVuZChjb250aW51ZUNoYXREaXYpIDsgcmVwbHlTZWN0aW9uLmFwcGVuZChyZXBseUZvcm0pCiAgICAgICAgICAgICAgICBhcHBEaXYuaW5zZXJ0QmVmb3JlKHJlcGx5U2VjdGlvbiwgYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoJ2Zvb3RlcicpKTsKCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUvYXBwZW5kIGNoYXRiYXIgYnV0dG9ucwogICAgICAgICAgICAgICAgWydzZW5kJywgJ3NodWZmbGUnXS5mb3JFYWNoKGJ0blR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ0bkVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKSA7IGJ0bkVsZW0uaWQgPSBgJHthcHAuY3NzUHJlZml4fS0ke2J0blR5cGV9LWJ0bmAKICAgICAgICAgICAgICAgICAgICBidG5FbGVtLmNsYXNzTGlzdC5hZGQoYCR7YXBwLmNzc1ByZWZpeH0tY2hhdGJhci1idG5gLCAnbm8tbW9iaWxlLXRhcC1vdXRsaW5lJykKICAgICAgICAgICAgICAgICAgICBidG5FbGVtLnN0eWxlLnJpZ2h0ID0gYCR7IGJ0blR5cGUgPT0gJ3NlbmQnID8gKCBlbnYuYnJvd3Nlci5pc0ZGID8gNyA6IDUgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoIGVudi5icm93c2VyLmlzRkYgPyA3IDogMiApfXB4YCAvLyBTaHVmZmxlIGJ0bgogICAgICAgICAgICAgICAgICAgIGJ0bkVsZW0uYXBwZW5kKGljb25zW2J0blR5cGUgPT0gJ3NlbmQnID8gJ2Fycm93VXAnIDogJ2Fycm93c1R3aXN0ZWRSaWdodCddLmNyZWF0ZSgpKQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlQ2hhdERpdi5hcHBlbmQoYnRuRWxlbSkKICAgICAgICAgICAgICAgIH0pCgogICAgICAgICAgICAgICAgLy8gSW5pdC9maWxsL2FwcGVuZCBmb290ZXIKICAgICAgICAgICAgICAgIGNvbnN0IGFwcEZvb3RlciA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKCdmb290ZXInKSB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb290ZXInKQogICAgICAgICAgICAgICAgYXBwRm9vdGVyLmFwcGVuZChmb290ZXJDb250ZW50KQogICAgICAgICAgICAgICAgaWYgKCFhcHBEaXYucXVlcnlTZWxlY3RvcignZm9vdGVyJykpIGFwcERpdi5hcHBlbmQoYXBwRm9vdGVyKQoKICAgICAgICAgICAgICAgIC8vIEFkZCBsaXN0ZW5lcnMKICAgICAgICAgICAgICAgIGFkZExpc3RlbmVycy5yZXBseVNlY3Rpb24oKQoKICAgICAgICAgICAgICAgIC8vIFNjcm9sbCB0byB0b3Agb24gbW9iaWxlIGlmIHVzZXIgaW50ZXJhY3RlZAogICAgICAgICAgICAgICAgaWYgKGVudi5icm93c2VyLmlzTW9iaWxlICYmIHNob3cucmVwbHkudXNlckludGVyYWN0ZWQpIHsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA9IDAgLy8gU2FmYXJpCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IDAgLy8gQ2hyb21pdW0vRkYvSUUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gUmVuZGVyL3Nob3cgYW5zd2VyIGlmIHF1ZXJ5IHNlbnQKICAgICAgICAgICAgaWYgKGFuc3dlciAhPSAnc3RhbmRieScpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGFuc3dlclByZSA9IGFwcERpdi5xdWVyeVNlbGVjdG9yKCdwcmUnKQogICAgICAgICAgICAgICAgdHJ5IHsgLy8gdG8gcmVuZGVyIG1hcmtkb3duCiAgICAgICAgICAgICAgICAgICAgYW5zd2VyUHJlLmlubmVySFRNTCA9IG1hcmtlZC5wYXJzZShhbnN3ZXIpIH0gY2F0Y2ggKGVycikgeyBsb2cuZXJyb3IoZXJyLm1lc3NhZ2UpIH0KICAgICAgICAgICAgICAgIGhsanMuaGlnaGxpZ2h0QWxsKCkgLy8gaGlnaGxpZ2h0IGNvZGUKICAgICAgICAgICAgICAgIHVwZGF0ZS5yZXBseVByZWZpeCgpIC8vIHByZXBlbmQgJz4+ICcgaWYgZGFyayBzY2hlbWUgdy8gYmcgYW5pbWF0aW9ucyB0byBlbXVsYXRlIHRlcm1pbmFsCgogICAgICAgICAgICAgICAgLy8gVHlwZXNldCBtYXRoCiAgICAgICAgICAgICAgICBhbnN3ZXJQcmUucXVlcnlTZWxlY3RvckFsbCgnY29kZScpLmZvckVhY2goY29kZUJsb2NrID0+IHsgLy8gYWRkIGxpbmVicmVha3MgYWZ0ZXIgc2VtaWNvbG9ucwogICAgICAgICAgICAgICAgICAgIGNvZGVCbG9jay5pbm5lckhUTUwgPSBjb2RlQmxvY2suaW5uZXJIVE1MLnJlcGxhY2UoLztccyovZywgJzs8YnI+JykgfSkKICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1zVG9SZW5kZXJNYXRoSW4gPSBbYW5zd2VyUHJlLCAuLi5hbnN3ZXJQcmUucXVlcnlTZWxlY3RvckFsbCgnKicpXQogICAgICAgICAgICAgICAgZWxlbXNUb1JlbmRlck1hdGhJbi5mb3JFYWNoKGVsZW0gPT4gewogICAgICAgICAgICAgICAgICAgIHJlbmRlck1hdGhJbkVsZW1lbnQoZWxlbSwgeyAvLyB0eXBlc2V0IG1hdGgKICAgICAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyczogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsZWZ0OiAnJCQnLCByaWdodDogJyQkJywgZGlzcGxheTogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsZWZ0OiAnJCcsIHJpZ2h0OiAnJCcsIGRpc3BsYXk6IGZhbHNlIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxlZnQ6ICdcXCgnLCByaWdodDogJ1xcKScsIGRpc3BsYXk6IGZhbHNlIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxlZnQ6ICdcXFsnLCByaWdodDogJ1xcXScsIGRpc3BsYXk6IHRydWUgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGVmdDogJ1xcYmVnaW57ZXF1YXRpb259JywgcmlnaHQ6ICdcXGVuZHtlcXVhdGlvbn0nLCBkaXNwbGF5OiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxlZnQ6ICdcXGJlZ2lue2FsaWdufScsIHJpZ2h0OiAnXFxlbmR7YWxpZ259JywgZGlzcGxheTogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsZWZ0OiAnXFxiZWdpbnthbGlnbmF0fScsIHJpZ2h0OiAnXFxlbmR7YWxpZ25hdH0nLCBkaXNwbGF5OiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxlZnQ6ICdcXGJlZ2lue2dhdGhlcn0nLCByaWdodDogJ1xcZW5ke2dhdGhlcn0nLCBkaXNwbGF5OiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxlZnQ6ICdcXGJlZ2lue0NEfScsIHJpZ2h0OiAnXFxlbmR7Q0R9JywgZGlzcGxheTogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsZWZ0OiAnXFxbJywgcmlnaHQ6ICdcXF0nLCBkaXNwbGF5OiB0cnVlIH0KICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dPbkVycm9yOiBmYWxzZQogICAgICAgICAgICAgICAgfSl9KQoKICAgICAgICAgICAgICAgIGlmIChjb25maWcuc3RpY2t5U2lkZWJhcikgdXBkYXRlLmFuc3dlclByZU1heEhlaWdodCgpCgogICAgICAgICAgICAgICAgLy8gQXV0by1zY3JvbGwgaWYgYWN0aXZlCiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmF1dG9TY3JvbGwgJiYgIWVudi5icm93c2VyLmlzTW9iaWxlICYmIGNvbmZpZy5wcm94eUFQSWVuYWJsZWQgJiYgIWNvbmZpZy5zdHJlYW1pbmdEaXNhYmxlZCkgewogICAgICAgICAgICAgICAgICAgIGlmIChjb25maWcuc3RpY2t5U2lkZWJhciB8fCBjb25maWcuYW5jaG9yZWQpIGFuc3dlclByZS5zY3JvbGxUb3AgPSBhbnN3ZXJQcmUuc2Nyb2xsSGVpZ2h0CiAgICAgICAgICAgICAgICAgICAgZWxzZSB3aW5kb3cuc2Nyb2xsQnkoeyB0b3A6IGFwcERpdi5xdWVyeVNlbGVjdG9yKGAjJHthcHAuY3NzUHJlZml4fS1jaGF0YmFyYCkKICAgICAgICAgICAgICAgICAgICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSAtIHdpbmRvdy5pbm5lckhlaWdodCArMTMgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gRm9jdXMgY2hhdGJhciBjb25kaXRpb25hbGx5CiAgICAgICAgICAgIGlmICghc2hvdy5yZXBseS5jaGF0YmFyRm9jdXNlZCAvLyBkbyBvbmx5IG9uY2UKICAgICAgICAgICAgICAgICYmICFlbnYuYnJvd3Nlci5pc01vYmlsZSAvLyBleGNsdWRlIG1vYmlsZSBkZXZpY2VzIHRvIG5vdCBhdXRvLXBvcHVwIE9TRCBrZXlib2FyZAogICAgICAgICAgICAgICAgJiYgKCghY29uZmlnLmF1dG9Gb2N1c0NoYXRiYXJEaXNhYmxlZCAmJiAoIGNvbmZpZy5hbmNob3JlZCAvLyBpbmNsdWRlIEFuY2hvcmVkIG1vZGUgaWYgQUYgZW5hYmxlZAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4ub3IgdW4tQW5jaG9yZWQgaWYgZnVsbHkgYWJvdmUgZm9sZAogICAgICAgICAgICAgICAgICAgICAgICB8fCAoIGFwcERpdi5vZmZzZXRIZWlnaHQgPCB3aW5kb3cuaW5uZXJIZWlnaHQgLSBhcHBEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICkpKQogICAgICAgICAgICAgICAgICAgIC8vIC4uLm9yIEFuY2hvcmVkIGlmIEFGIGRpc2FibGVkICYgdXNlciBpbnRlcmFjdGVkCiAgICAgICAgICAgICAgICAgICAgfHwgKGNvbmZpZy5hdXRvRm9jdXNDaGF0YmFyRGlzYWJsZWQgJiYgY29uZmlnLmFuY2hvcmVkICYmIHNob3cucmVwbHkudXNlckludGVyYWN0ZWQpKQogICAgICAgICAgICApIHsgYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoYCMke2FwcC5jc3NQcmVmaXh9LWNoYXRiYXJgKS5mb2N1cygpIDsgc2hvdy5yZXBseS5jaGF0YmFyRm9jdXNlZCA9IHRydWUgfQoKICAgICAgICAgICAgLy8gVXBkYXRlIHN0eWxlcwogICAgICAgICAgICBpZiAoY29uZmlnLmFuY2hvcmVkKSB1cGRhdGUuYXBwQm90dG9tUG9zKCkgLy8gcmVzdG9yZSBtaW5pbWl6ZWQvcmVzdG9yZWQgc3RhdGUgaWYgYW5jaG9yZWQKICAgICAgICAgICAgdXBkYXRlLmNoYXRiYXJXaWR0aCgpCgogICAgICAgICAgICBzaG93LnJlcGx5LnVzZXJJbnRlcmFjdGVkID0gZmFsc2UKICAgICAgICB9LAoKICAgICAgICByZWxhdGVkKHF1ZXJpZXMpIHsKICAgICAgICAgICAgbG9nLmNhbGxlciA9ICdzaG93LnJlbGF0ZWQoKScKICAgICAgICAgICAgaWYgKGdldC5yZXBseS5zdGF0dXMgPT0gJ3dhaXRpbmcnKSB7IC8vIHJlY3Vyc2UgdW50aWwgZ2V0LnJlcGx5KCkgZmluaXNoZXMgc2hvd2luZyBhbnN3ZXIKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gc2hvdy5yZWxhdGVkKHF1ZXJpZXMpLCA1MDAsIHF1ZXJpZXMpIDsgcmV0dXJuIH0KCiAgICAgICAgICAgIC8vIFJlLWdldC5yZWxhdGVkKCkgaWYgY3VycmVudCByZXBseSBpcyBxdWVzdGlvbiB0byBzdWdnZXN0IGFuc3dlcnMKICAgICAgICAgICAgY29uc3QgY3VycmVudFJlcGx5ID0gYXBwRGl2LnF1ZXJ5U2VsZWN0b3IoYCMke2FwcC5jc3NQcmVmaXh9ID4gcHJlYCk/LnRleHRDb250ZW50LnRyaW0oKQogICAgICAgICAgICBpZiAoc2hvdy5yZXBseS5zcmMgIT0gJ3NodWZmbGUnICYmICFnZXQucmVsYXRlZC5yZXBseUlzUXVlc3Rpb24gJiYgL1s/77yfXS8udGVzdChjdXJyZW50UmVwbHkpKSB7CiAgICAgICAgICAgICAgICBsb2cuZGVidWcoJ1JlLWdldHRpbmcgcmVsYXRlZCBxdWVyaWVzIHRvIGFuc3dlciByZXBseSBxdWVzdGlvbi4uLicpCiAgICAgICAgICAgICAgICBnZXQucmVsYXRlZC5yZXBseUlzUXVlc3Rpb24gPSB0cnVlCiAgICAgICAgICAgICAgICBnZXQucmVsYXRlZChjdXJyZW50UmVwbHkpLnRoZW4ocXVlcmllcyA9PiBzaG93LnJlbGF0ZWQocXVlcmllcykpCiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7IGxvZy5lcnJvcihlcnIubWVzc2FnZSkgOyBhcGkudHJ5TmV3KGdldC5yZWxhdGVkKSB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTaG93IHRoZSBxdWVyaWVzCiAgICAgICAgICAgIGVsc2UgaWYgKHF1ZXJpZXMgJiYgIWFwcERpdi5xdWVyeVNlbGVjdG9yKGAuJHthcHAuY3NzUHJlZml4fS1yZWxhdGVkLXF1ZXJpZXNgKSkgewoKICAgICAgICAgICAgICAgIC8vIENyZWF0ZS9jbGFzc2lmeS9hcHBlbmQgcGFyZW50IGRpdgogICAgICAgICAgICAgICAgY29uc3QgcmVsYXRlZFF1ZXJpZXNEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKQogICAgICAgICAgICAgICAgcmVsYXRlZFF1ZXJpZXNEaXYuY2xhc3NMaXN0LmFkZChgJHthcHAuY3NzUHJlZml4fS1yZWxhdGVkLXF1ZXJpZXNgLCAnYW5jaG9yZWQtaGlkZGVuJykKICAgICAgICAgICAgICAgIGFwcERpdi5hcHBlbmQocmVsYXRlZFF1ZXJpZXNEaXYpCgogICAgICAgICAgICAgICAgLy8gRmlsbCBlYWNoIGNoaWxkIGRpdiwgYWRkIGF0dHJpYnV0ZXMgKyBpY29uICsgbGlzdGVuZXIKICAgICAgICAgICAgICAgIHF1ZXJpZXMuZm9yRWFjaCgocXVlcnksIGlkeCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRRdWVyeURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRRdWVyeVNWRyA9IGljb25zLmFycm93RG93blJpZ2h0LmNyZWF0ZSgpCgogICAgICAgICAgICAgICAgICAgIC8vIEFkZCBhdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgcmVsYXRlZFF1ZXJ5RGl2LnRpdGxlID0gYXBwLm1zZ3MudG9vbHRpcF9zZW5kUmVsYXRlZFF1ZXJ5CiAgICAgICAgICAgICAgICAgICAgcmVsYXRlZFF1ZXJ5RGl2LmNsYXNzTGlzdC5hZGQoCiAgICAgICAgICAgICAgICAgICAgICAgIGAke2FwcC5jc3NQcmVmaXh9LXJlbGF0ZWQtcXVlcnlgLCAnZmFkZS1pbicsICduby11c2VyLXNlbGVjdCcsICduby1tb2JpbGUtdGFwLW91dGxpbmUnKQogICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRRdWVyeURpdi5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgMCkKICAgICAgICAgICAgICAgICAgICByZWxhdGVkUXVlcnlEaXYudGV4dENvbnRlbnQgPSBxdWVyeQoKICAgICAgICAgICAgICAgICAgICAvLyBBc3NlbWJsZS9pbnNlcnQgZWxlbXMKICAgICAgICAgICAgICAgICAgICByZWxhdGVkUXVlcnlEaXYucHJlcGVuZChyZWxhdGVkUXVlcnlTVkcpIDsgcmVsYXRlZFF1ZXJpZXNEaXYuYXBwZW5kKHJlbGF0ZWRRdWVyeURpdikKCiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGZhZGUgKyBsaXN0ZW5lcnMKICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRlZFF1ZXJ5RGl2LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRRdWVyeURpdi5vbmNsaWNrID0gcmVsYXRlZFF1ZXJ5RGl2Lm9ua2V5ZG93biA9IGV2ZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBbJyAnLCAnU3BhY2ViYXInLCAnRW50ZXInLCAnUmV0dXJuJ10sIGtleUNvZGVzID0gWzMyLCAxM10KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkgfHwga2V5Q29kZXMuaW5jbHVkZXMoZXZlbnQua2V5Q29kZSkgfHwgZXZlbnQudHlwZSA9PSAnY2xpY2snKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKSAvLyBwcmV2ZW50IHNjcm9sbCBvbiBzcGFjZSB0YXBzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVsYXRlZFF1ZXJ5ID0gZXZlbnQudGFyZ2V0LnRleHRDb250ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRiYXIgPSBhcHBEaXYucXVlcnlTZWxlY3RvcigndGV4dGFyZWEnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGF0YmFyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRiYXIudmFsdWUgPSByZWxhdGVkUXVlcnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cW1teW1xdXStcXS8udGVzdChyZWxhdGVkUXVlcnkpKSB7IC8vIGhpZ2hsaWdodCAxc3QgYnJhY2xldGVkIHBsYWNlaG9sZGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGF0YmFyLmZvY3VzKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZExpc3RlbmVycy5yZXBseVNlY3Rpb24uY2hhdGJhckF1dG9TaXplcigpIC8vIHNpbmNlIHF1ZXJ5IG5vdCBhdXRvLXNlbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRiYXIuc2V0U2VsZWN0aW9uUmFuZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRlZFF1ZXJ5LmluZGV4T2YoJ1snKSwgcmVsYXRlZFF1ZXJ5LmluZGV4T2YoJ10nKSArMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIC8vIHNlbmQgcGxhY2Vob2xkZXItZnJlZSByZWxhdGVkIHF1ZXJ5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGF0YmFyLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAnRW50ZXInLCBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pKQogICAgICAgICAgICAgICAgICAgIH19fX0sIGlkeCAqIDEwMCkKICAgICAgICAgICAgICAgIH0pCgogICAgICAgICAgICAgICAgdXBkYXRlLmFuc3dlclByZU1heEhlaWdodCgpIDsgZ2V0LnJlbGF0ZWQucmVwbHlJc1F1ZXN0aW9uID0gbnVsbAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIERlZmluZSBET00gdXRpbGl0aWVzCgogICAgY29uc3QgZG9tID0gewoKICAgICAgICBjcmVhdGU6IHsKICAgICAgICAgICAgYW5jaG9yKGxpbmtIcmVmLCBkaXNwbGF5Q29udGVudCwgYXR0cnMgPSB7fSkgewogICAgICAgICAgICAgICAgY29uc3QgYW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpLAogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEF0dHJzID0geyBocmVmOiBsaW5rSHJlZiwgdGFyZ2V0OiAnX2JsYW5rJywgcmVsOiAnbm9vcGVuZXInIH0sCiAgICAgICAgICAgICAgICAgICAgICBmaW5hbEF0dHJzID0geyAuLi5kZWZhdWx0QXR0cnMsIC4uLmF0dHJzIH0KICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZpbmFsQXR0cnMpLmZvckVhY2goKFthdHRyLCB2YWx1ZV0pID0+IGFuY2hvci5zZXRBdHRyaWJ1dGUoYXR0ciwgdmFsdWUpKQogICAgICAgICAgICAgICAgaWYgKGRpc3BsYXlDb250ZW50KSBhbmNob3IuYXBwZW5kKGRpc3BsYXlDb250ZW50KQogICAgICAgICAgICAgICAgcmV0dXJuIGFuY2hvcgogICAgICAgICAgICB9LAoKICAgICAgICAgICAgc3R5bGUoY29udGVudCkgewogICAgICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpCiAgICAgICAgICAgICAgICBpZiAoY29udGVudCkgc3R5bGUuaW5uZXJUZXh0ID0gY29udGVudAogICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlCiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBzdmdFbGVtKHR5cGUsIGF0dHJzKSB7CiAgICAgICAgICAgICAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsIHR5cGUpCiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgaW4gYXR0cnMpIGVsZW0uc2V0QXR0cmlidXRlTlMobnVsbCwgYXR0ciwgYXR0cnNbYXR0cl0pCiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgZmlsbFN0YXJyeUJHKHRhcmdldE5vZGUpIHsgLy8gcmVxdWlyZXMgaHR0cHM6Ly9hc3NldHMuYWl3ZWJleHRlbnNpb25zLmNvbS9zdHlsZXMvcmlzaW5nLXN0YXJzL2Nzcy88YmxhY2t8d2hpdGU+Lm1pbi5jc3MKICAgICAgICAgICAgaWYgKHRhcmdldE5vZGUucXVlcnlTZWxlY3RvcignW2lkKj1zdGFyc10nKSkgcmV0dXJuCiAgICAgICAgICAgIGNvbnN0IHN0YXJzRGl2c0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpCiAgICAgICAgICAgIHN0YXJzRGl2c0NvbnRhaW5lci5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOiBhYnNvbHV0ZSA7IHRvcDogMCA7IGxlZnQ6IDAgOycgLy8gaHVnIHRhcmdldE5vZGUncyB0b3AtbGVmdCBjb3JuZXIKICAgICAgICAgICAgICArICdoZWlnaHQ6IDEwMCUgOyB3aWR0aDogMTAwJSA7IGJvcmRlci1yYWRpdXM6IDE1cHggOyBvdmVyZmxvdzogY2xpcCA7JyAvLyBib3VuZCBpbm5hcmRzIGV4YWN0bHkgYnkgdGFyZ2V0Tm9kZQogICAgICAgICAgICAgICsgJ3otaW5kZXg6IC0xJzsgLy8gYWxsb3cgaW50ZXJhY3RpdmUgZWxlbXMgdG8gYmUgY2xpY2tlZAogICAgICAgICAgICBbJ3NtJywgJ21lZCcsICdsZyddLmZvckVhY2goc3RhclNpemUgPT4gewogICAgICAgICAgICAgICAgY29uc3Qgc3RhcnNEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKQogICAgICAgICAgICAgICAgc3RhcnNEaXYuaWQgPSBjb25maWcuYmdBbmltYXRpb25zRGlzYWJsZWQgPyBgc3RhcnMtJHtzdGFyU2l6ZX0tb2ZmYAogICAgICAgICAgICAgICAgICAgIDogYCR7IGVudi51aS5hcHAuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnYmxhY2snIH0tc3RhcnMtJHtzdGFyU2l6ZX1gCiAgICAgICAgICAgICAgICBzdGFyc0RpdnNDb250YWluZXIuYXBwZW5kKHN0YXJzRGl2KQogICAgICAgICAgICB9KQogICAgICAgICAgICB0YXJnZXROb2RlLnByZXBlbmQoc3RhcnNEaXZzQ29udGFpbmVyKQogICAgICAgIH0sCgogICAgICAgIGdldENvbXB1dGVkV2lkdGgoLi4uZWxlbXMpIHsgLy8gaW5jbHVkaW5nIG1hcmdpbnMKICAgICAgICAgICAgbGV0IHRvdGFsV2lkdGggPSAwCiAgICAgICAgICAgIGVsZW1zLm1hcChhcmcgPT4gYXJnIGluc3RhbmNlb2YgTm9kZUxpc3QgPyBbLi4uYXJnXSA6IGFyZykuZmxhdCgpLmZvckVhY2goZWxlbSA9PiB7CiAgICAgICAgICAgICAgICBpZiAoIShlbGVtIGluc3RhbmNlb2YgRWxlbWVudCkpIHJldHVybgogICAgICAgICAgICAgICAgY29uc3QgZWxlbVN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKSA7IGlmIChlbGVtU3R5bGUuZGlzcGxheSA9PSAnbm9uZScpIHJldHVybgogICAgICAgICAgICAgICAgdG90YWxXaWR0aCArPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgcGFyc2VGbG9hdChlbGVtU3R5bGUubWFyZ2luTGVmdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHBhcnNlRmxvYXQoZWxlbVN0eWxlLm1hcmdpblJpZ2h0KQogICAgICAgICAgICB9KQogICAgICAgICAgICByZXR1cm4gdG90YWxXaWR0aAogICAgICAgIH0KICAgIH0KCiAgICAvLyBSdW4gTUFJTiByb3V0aW5lCgogICAgbWVudS5yZWdpc3RlcigpCgogICAgaWYgKGxvY2F0aW9uLnNlYXJjaC5pbmNsdWRlcygnJnVkbT0yJykpIHJldHVybiBsb2cuZGVidWcoJ0V4aXRlZCBmcm9tIEdvb2dsZSBJbWFnZXMnKQoKICAgIC8vIEluaXQgVUkgcHJvcHMKICAgIGF3YWl0IFByb21pc2UucmFjZShbIC8vIGRhcmsgdGhlbWUgbGFiZWwgbG9hZGVkIG9yIDAuNXMgcGFzc2VkCiAgICAgICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgICAgIChmdW5jdGlvbiBjaGVja0RhcmtUaGVtZUxhYmVsKCkgewogICAgICAgICAgICAgICAgWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW4nKV0uZmluZChzcGFuID0+IHNwYW4udGV4dENvbnRlbnQgPT0gJ0RhcmsgdGhlbWUnKQogICAgICAgICAgICAgICAgICAgID8gcmVzb2x2ZSh0cnVlKSA6IHNldFRpbWVvdXQoY2hlY2tEYXJrVGhlbWVMYWJlbCwgMjAwKQogICAgICAgICAgICB9KSgpCiAgICAgICAgfSksIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MDApKQogICAgXSkKICAgIGVudi51aSA9IHsKICAgICAgICBhcHA6IHsgc2NoZW1lOiBjb25maWcuc2NoZW1lIHx8ICggaXNEYXJrTW9kZSgpID8gJ2RhcmsnIDogJ2xpZ2h0JyApfSwKICAgICAgICBzaXRlOiB7IGhhc1NpZGViYXI6ICEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2NsYXNzKj1rcC1dJykgfQogICAgfQoKICAgIC8vIENyZWF0ZS9JRC9jbGFzc2lmeS9saXN0ZW5lcml6ZS9zdHlsaXplIEFQUCBjb250YWluZXIKICAgIGNvbnN0IGFwcERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIDsgYXBwRGl2LmlkID0gYXBwLmNzc1ByZWZpeAogICAgYXBwRGl2LmNsYXNzTGlzdC5hZGQoJ2ZhZGUtaW4nKSA7IGFkZExpc3RlbmVycy5hcHBEaXYoKTsKICAgIFsnYW5jaG9yZWQnLCAnZXhwYW5kZWQnLCAnc3RpY2t5JywgJ3dpZGVyJ10uZm9yRWFjaChtb2RlID0+CiAgICAgICAgKGNvbmZpZ1ttb2RlXSB8fCBjb25maWdbYCR7bW9kZX1TaWRlYmFyYF0pICYmIGFwcERpdi5jbGFzc0xpc3QuYWRkKG1vZGUpKQogICAgYXBwLnN0eWxlcyA9IGRvbS5jcmVhdGUuc3R5bGUoKSA7IHVwZGF0ZS5hcHBTdHlsZSgpIDsgZG9jdW1lbnQuaGVhZC5hcHBlbmQoYXBwLnN0eWxlcyk7CiAgICBbJ2JycycsICd3cnMnLCAnaGxqcyddLmZvckVhY2goY3NzVHlwZSA9PiAvLyBibGFjayByaXNpbmcgc3RhcnMsIHdoaXRlIHJpc2luZyBzdGFycywgY29kZSBoaWdobGlnaHRpbmcKICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZChkb20uY3JlYXRlLnN0eWxlKEdNX2dldFJlc291cmNlVGV4dChgJHtjc3NUeXBlfUNTU2ApKSkpCgogICAgLy8gQ3JlYXRlL3N0eWxpemUgVE9PTFRJUHMKICAgIGlmICghZW52LmJyb3dzZXIuaXNNb2JpbGUpIHsKICAgICAgICB2YXIgdG9vbHRpcERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpCiAgICAgICAgdG9vbHRpcERpdi5jbGFzc0xpc3QuYWRkKGAke2FwcC5jc3NQcmVmaXh9LWJ0bi10b29sdGlwYCwgJ25vLXVzZXItc2VsZWN0JykKICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZChkb20uY3JlYXRlLnN0eWxlKGAuJHthcHAuY3NzUHJlZml4fS1idG4tdG9vbHRpcCB7YAogICAgICAgICAgICArICdiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNjQpIDsgcGFkZGluZzogNnB4IDsgYm9yZGVyLXJhZGl1czogNnB4IDsgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDllMyA7JyAvLyBidWJibGUgc3R5bGUKICAgICAgICAgICAgKyAnZm9udC1zaXplOiAwLjc1cmVtIDsgY29sb3I6IHdoaXRlIDsgZmlsbDogd2hpdGUgOyBzdHJva2U6IHdoaXRlIDsnIC8vIGZvbnQvaWNvbiBzdHlsZQogICAgICAgICAgICArICdwb3NpdGlvbjogYWJzb2x1dGUgOycgLy8gZm9yIHVwZGF0ZS50b29sdGlwKCkgY2FsY3MKICAgICAgICAgICAgKyAnYm94LXNoYWRvdzogM3B4IDVweCAxNnB4IDAgcmdiKDAsMCwwLDAuMjEpIDsnIC8vIGRyb3Agc2hhZG93CiAgICAgICAgICAgICsgJ29wYWNpdHk6IDAgOyBoZWlnaHQ6IGZpdC1jb250ZW50IDsgei1pbmRleDogMTI1MCA7JyAvLyB2aXNpYmlsaXR5CiAgICAgICAgICAgICsgJ3RyYW5zaXRpb246IG9wYWNpdHkgMC4xcyA7IC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIDsgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgOycKICAgICAgICAgICAgICAgICsgJy1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyA7IC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgfScKICAgICAgICApKQogICAgfQoKICAgIC8vIEFQUEVORCB0byBHb29nbGUKICAgIGNvbnN0IGNlbnRlckNvbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjZW50ZXJfY29sJykgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21haW4nKQogICAgY29uc3QgYXBwRGl2UGFyZW50ID0gZW52LmJyb3dzZXIuaXNNb2JpbGUgPyBjZW50ZXJDb2wKICAgICAgICA6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyaHMnKSAvLyBzaWRlYmFyIGNvbnRhaW5lciBpZiBzaWRlIHNuaXBwZXRzIGV4aXN0CiAgICAgICAgfHwgKCgpID0+IHsgLy8gY3JlYXRlIG5ldyBvbmUgaWYgbm8gc2lkZSBzbmlwcGV0cyBleGlzdAogICAgICAgICAgICAgICBjb25zdCBhcHBEaXZQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKQogICAgICAgICAgICAgICBjZW50ZXJDb2wuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIGFwcERpdlBhcmVudCkKICAgICAgICAgICAgICAgcmV0dXJuIGFwcERpdlBhcmVudAogICAgICAgICAgIH0pKCkKICAgIGFwcERpdlBhcmVudC5wcmVwZW5kKGFwcERpdikKICAgIHNldFRpbWVvdXQoKCkgPT4gYXBwRGl2LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpLCAxMDApIC8vIGZhZGUgaW4KCiAgICAvLyBTdHJpcCBHb29nbGUgVFJBQ0tJTkcKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoaW5wdXRFdmVudHMuZG93biwgZXZlbnQgPT4gewogICAgICAgIGxldCBhID0gZXZlbnQudGFyZ2V0IDsgd2hpbGUgKGEgJiYgIWEuaHJlZikgYSA9IGEucGFyZW50RWxlbWVudCA7IGlmICghYSkgcmV0dXJuIC8vIGZpbmQgY2xvc2VzdCBhbmNlc3RvciBocmVmCiAgICAgICAgYS5yZW1vdmVBdHRyaWJ1dGUoJ3BpbmcnKSAvLyBwcmV2ZW50IHBpbmdiYWNrIG9uIGxpbmsgY2xpY2sKICAgICAgICBpZiAoYS5nZXRBdHRyaWJ1dGUoJ29ubW91c2Vkb3duJyk/LmluY2x1ZGVzKCdyd3QoJykpIHsKICAgICAgICAgICAgYS5yZW1vdmVBdHRyaWJ1dGUoJ29ubW91c2Vkb3duJykKICAgICAgICAgICAgaWYgKGVudi5icm93c2VyLmlzQ2hyb21lKSBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSAvLyBzaW5jZSBpbmxpbmUgbGlzdGVuZXIgc3RpbGwgcnVucwogICAgICAgIH0KICAgICAgICBsZXQgcmVhbFVSTCA9IGdldFJlYWxVUkwoYSkKICAgICAgICBpZiAocmVhbFVSTCkgewogICAgICAgICAgICBhLmhyZWYgPSByZWFsVVJMCiAgICAgICAgICAgIHJlYWxVUkwgPSBnZXRSZWFsVVJMKGEpIDsgaWYgKHJlYWxVUkwpIGEuaHJlZiA9IHJlYWxVUkwgLy8gZG8gYWdhaW4gZm9yIG9sZCBtb2JpbGUgVUEKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGdldFJlYWxVUkwoYSkgewogICAgICAgICAgICBpZiAoIWEucHJvdG9jb2wuc3RhcnRzV2l0aCgnaHR0cCcpKSByZXR1cm4KICAgICAgICAgICAgbGV0IHVybAogICAgICAgICAgICBpZiAoKGEuaG9zdG5hbWUuc3RhcnRzV2l0aCgnd3d3Lmdvb2dsZS4nKSB8fCBhLmhvc3RuYW1lID09IGxvY2F0aW9uLmhvc3RuYW1lKSAmJgogICAgICAgICAgICAgICBbJy91cmwnLCAvLyBtb2JpbGU6IC91cmw/cT08dXJsPgogICAgICAgICAgICAgICAgJy9sb2NhbF91cmwnLCAvLyBNYXBzL0RpdG86IC9sb2NhbF91cmw/cT08dXJsPgogICAgICAgICAgICAgICAgJy9zZWFyY2h1cmwvcnIuaHRtbCcsICcvbGlua3JlZGlyZWN0J10uaW5jbHVkZXMoYS5wYXRobmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICB1cmwgPSAvWz8mXSg/OnF8dXJsfGRlc3QpPSgoPzpodHRwcz98ZnRwKVslOl1bXiZdKykvLmV4ZWMoYS5zZWFyY2gpIC8vIEhUVFAvRlRQIFVSTHMKICAgICAgICAgICAgICAgICAgICBpZiAodXJsKSByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHVybFsxXSkKICAgICAgICAgICAgICAgICAgICB1cmwgPSAvWz8mXSg/OnF8dXJsKT0oKD86JTJbRmZdfFwvKVteJl0rKS8uZXhlYyhhLnNlYXJjaCkgLy8gaGVscCBwYWdlcywgZS5nLiBzYWZlIGJyb3dzaW5nICgvdXJsPy4uLiZxPSUyRnN1cHBvcnQlMkZhbnN3ZXIuLi4pCiAgICAgICAgICAgICAgICAgICAgaWYgKHVybCkgcmV0dXJuIGEub3JpZ2luICsgZGVjb2RlVVJJQ29tcG9uZW50KHVybFsxXSkKICAgICAgICAgICAgICAgICAgICB1cmwgPSAvWyMmXXVybD0oaHR0cHM/WzolXVteJl0rKS8uZXhlYyhhLmhhc2gpIC8vIEFuZHJvaWQgaW50ZW50cyAoL3NlYXJjaHVybC9yci5odG1sIy4uLiZ1cmw9Li4uKQogICAgICAgICAgICAgICAgICAgIGlmICh1cmwpIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodXJsWzFdKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChhLmhvc3RuYW1lID09ICdnb29nbGV3ZWJsaWdodC5jb20nICYmIGEucGF0aG5hbWUgPT0gJy9mcCcpIHsgLy8gR29vZ2xlIFNlYXJjaCB3LyBvbGQgbW9iaWxlIFVBIChlLmcuIEZpcmVmb3ggNDEpCiAgICAgICAgICAgICAgICB1cmwgPSAvWz8mXXU9KCg/Omh0dHBzP3xmdHApWyU6XVteJl0rKS8uZXhlYyhhLnNlYXJjaCkKICAgICAgICAgICAgICAgIGlmICh1cmwpIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodXJsWzFdKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSwgdHJ1ZSkgLy8gaW52b2tlIGR1cmluZyBjYXB0dXJpbmcgcGhhc2UKCiAgICAvLyBSRUZFUlJBTElaRSBsaW5rcyB0byBzdXBwb3J0IGF1dGhvcgogICAgc2V0VGltZW91dCgoKSA9PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZePSJodHRwczovL3d3dy5hbWF6b24uIl0nKS5mb3JFYWNoKGFuY2hvciA9PiB7CiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChhbmNob3IuaHJlZikgOyB1cmwuc2VhcmNoUGFyYW1zLnNldCgndGFnJywgJ2t1ZG8tYWktMjAnKQogICAgICAgIGFuY2hvci5ocmVmID0gdXJsLnRvU3RyaW5nKCkKICAgIH0pLCAxNTAwKQoKICAgIC8vIEluaXQgZm9vdGVyIENUQSB0byBzaGFyZSBmZWVkYmFjawogICAgbGV0IGZvb3RlckNvbnRlbnQgPSBkb20uY3JlYXRlLmFuY2hvcignIycsIGFwcC5tc2dzLmxpbmtfc2hhcmVGZWVkYmFjaywgeyB0YXJnZXQ6ICdfc2VsZicsIGNsYXNzOiAnYW5jaG9yZWQtaGlkZGVuJyB9KQogICAgZm9vdGVyQ29udGVudC5vbmNsaWNrID0gKCkgPT4gbW9kYWxzLm9wZW4oJ2ZlZWRiYWNrJykKCiAgICAvLyBTaG93IFNUQU5EQlkgbW9kZSBvciBnZXQvc2hvdyBBTlNXRVIKICAgIGxldCBtc2dDaGFpbiA9IFt7IHJvbGU6ICd1c2VyJywgY29udGVudDogYXVnbWVudFF1ZXJ5KG5ldyBVUkwobG9jYXRpb24uaHJlZikuc2VhcmNoUGFyYW1zLmdldCgncScpKSB9XQogICAgaWYgKCFjb25maWcuYXV0b0dldCAvLyBBdXRvLUdldCBkaXNhYmxlZAogICAgICAgIHx8IGNvbmZpZy5wcmVmaXhFbmFibGVkICYmICEvLipxPSUyRi8udGVzdChsb2NhdGlvbi5ocmVmKSAvLyBwcmVmaXggcmVxdWlyZWQgYnV0IG5vdCBwcmVzZW50CiAgICAgICAgfHwgY29uZmlnLnN1ZmZpeEVuYWJsZWQgJiYgIS8uKnE9LiooPzolM0Z877yffCVFRiVCQyU5RikoPzomfCQpLy50ZXN0KGxvY2F0aW9uLmhyZWYpKSB7IC8vIHN1ZmZpeCByZXF1aXJlZCBidXQgbm90IHByZXNlbnQKICAgICAgICAgICAgc2hvdy5yZXBseSgnc3RhbmRieScsIGZvb3RlckNvbnRlbnQpCiAgICAgICAgICAgIGlmICghY29uZmlnLnJxRGlzYWJsZWQpCiAgICAgICAgICAgICAgICBnZXQucmVsYXRlZChzdHJpcFF1ZXJ5QXVnbWVudHMobXNnQ2hhaW4pW21zZ0NoYWluLmxlbmd0aCAtIDFdLmNvbnRlbnQpCiAgICAgICAgICAgICAgICAgICAgLnRoZW4ocXVlcmllcyA9PiBzaG93LnJlbGF0ZWQocXVlcmllcykpCiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7IGxvZy5lcnJvcihlcnIubWVzc2FnZSkgOyBhcGkudHJ5TmV3KGdldC5yZWxhdGVkKSB9KQogICAgfSBlbHNlIHsgYXBwQWxlcnQoJ3dhaXRpbmdSZXNwb25zZScpIDsgZ2V0LnJlcGx5KG1zZ0NoYWluKSB9CgogICAgLy8gT2JzZXJ2ZSBET00gZm9yIG5ldyBzaWRlYmFyIGRpdiNyaHMgY3JlYXRlZCBieSBvdGhlciBleHRlbnNpb25zIHRvIElOU0VSVCBHb29nbGVHUFQgdG8gdmlzdWFsbHkgY28tZXhpc3QKICAgIGNvbnN0IHNpZGViYXJPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHsKICAgICAgICBjb25zdCBuZXdTaWRlYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JocycpCiAgICAgICAgaWYgKG5ld1NpZGViYXIpIHsgbmV3U2lkZWJhci5wcmVwZW5kKGFwcERpdikgOyBzaWRlYmFyT2JzZXJ2ZXIuZGlzY29ubmVjdCgpIH0KICAgIH0pCiAgICBzaWRlYmFyT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IHN1YnRyZWU6IHRydWUsIGNoaWxkTGlzdDogdHJ1ZSB9KQogICAgc2V0VGltZW91dCgoKSA9PiBzaWRlYmFyT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLCA1MDAwKSAvLyBkb24ndCBvYnNlcnZlIGZvcmV2ZXIKCn0pKCkK","resources":[{"meta":{"name":"icon64.png.b64","url":"https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@c5323fb/media/images/icons/googlegpt/black/icon64.png.b64#sha256-yiTqggYRNsWcJtyIUDzFrPqrL3yeTaPCrEGAW0QFuPM=","ts":1764084296548,"mimetype":"text/plain"},"source":"ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQ0FRQUFBQUFZTGxWQUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk5BQUI2SmdBQWdJUUFBUG9BQUFDQTZBQUFkVEFBQU9wZ0FBQTZtQUFBRjNDY3VsRThBQUFBQW1KTFIwUUEvNGVQekw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUFIZEVsTlJRZm5EQVVKSlNkM2s4S3FBQUFGVjNwVVdIUlNZWGNnY0hKdlptbHNaU0IwZVhCbElIaHRjQUFBV0lXdFdGdVdxemdNL05jcVpnbGcyVEplVGpyQTM1d3puN1A4cVpJaE1hL2NKRDNOYWVKZ1d5NjlTZ3J5NzkvL3lGLzRDeFpWOUs1ekhuSm52YW45V01veGRCWXNXYlppazQ0aFRQUFB6ODhjQXA0WDdNQ1RsRFhGVWJzNDVpNHExZzVXSkE3NWxyRXhhYjdGS1VYREp3U3FZbE1JT3VzVU9yM25RVzk1TUd5MGtZZFpIenArdDd0TldUa25QQUZvb3MzRW9iYzY4Vmp1U0o1aThPeUhPK0pqUitqU0VNZlVTU0M0T2ZzalRXRlNDeVB3OUJvVklqUnJ3Yk5lVFRzdEdqU0dPNTRHZk9zMWh4bWZ2UGVxRWtaL2VNUGRjSWRLb2R0ZFlWRVBOaldzU1NIR2FEdlZndmdrMVJ0eXhOWHBEZXJNMmYvQ2xMRXFUSTY0bmx4NE9aS0FlOEI5ckFjQVVkWU0vOUFpZVlCYU9JSHpXeFNBQUZmQkVjR0tXNnJBUWxpeHpsc3ZNTmljWVZpaXFvWnRmVUVESC9INllkUFRSUmlyWURoQ2xRRjRPb0tIYWJ2VlYwK1IyS0luQnVnQUlkaWR5a3ZWbmd0eFQ5aVk2SHFxaWxPcjRQNG91R0tOSThKeUVTK3ZBWi9qaGNCeEwxd2dYWE9NS1Z1MTA1K3RjUzVjbURZWm5zQ2lPUVgzemV5YUk0Y292cXBKUCs2VXcvRmN2d2FQZkhmKzhYaDVubC9sbjV6ZElidG54QTYyKytnMElPUVN3Mkg3ZFhBd1FNWHNMRVZlS01tb3h0OWVyRFJCbDNCSytVenN1Z2RlMjhQbDVzaWNTakF2RlF1SjIyZTdIM2hvbzd5NDl1QWswRThYaHVRRXk4VklmZzNsUW55S3NYNVN1TE5URU5ERUNIb0l6a3M0ZmVHbDZQY0FxdVB6d2ZtcTI0aGRPTlNxeUY2T3NqZWlJMFNEQzExUWNOSGxYTFM0YkNZdFRKYkw5MkpsbGV0RWNZTmZ5WVlqeGJuM0NzY29UY2tqYXdKVFBEQjQ3dDhpU1JIcElsZzJlVjRCRGJmV1JYQnc4U29HN2tPd201RmtUV0VSSUVoZzltUkVXakNLanJZSXBrMDV6UUhISFdzYUxnQTJHbnVQZ083WC9HQ3RGWUJzYXBvdnFraE9NdXdHNjJSZ0N5VHY2bEhzZ3AwUUY2UDRNTEthVlFSR2h5ZEM4MjhrOTRpbEVRb2Q3VU43bGxyY2llaCtCZmRocjFoUmFuU0I2bHJVR09PUjhDUVFLUnkrSU1KaUNLcjI2aXRrT0xzanMrQWFzSnlJVGxSbXJSYWtMQUF1c1ZUanB6TFNrdVVQQmRKUys1YWE1aXY3NTByeElqeXNKR3QzMXJobWFmYXc5TXNyN1RyZUhKVktndGQrSTZBNVh0YnRDZEJSam1OTkRvLzFsWi9jQnRVRWNGMXR5YW9SREtiMzhFUWN0UnZBTUFWamxFbjBQTkhUZzViUkJpa3NxTVAybUxwTGZGdDV2VzN0MnBvSWdoQm1HRkhtd25scCtoNEF6djIyQzRGQzZKZWFFc3JjMDlhYXR0QWRiY1RZQ2J2bFMwNy9LYVdmSVNySEdQMDRSQjJBVkFRNUc0MDhYUkRhR3hRc3JVSWVFeGhCYkUvTm8xTWFJL3AxQldHaXlNc0tNcjl2ZXFucVFHN3ZuY2ZYWmtjUHFkRzE3WEVtK0llR2hRMTZtdDJOSHQzWTdMRjcwaXRkUXFkZ0ptTVhyT1ZzbFdXUDRDMno1MGRmenFycFpwZW1QdjNLN05LMExhOExkMnMzN3FETktMdzIxck44NXB0cjE4aUhLY0VDWWJqRE5sQ054Zy9HMUlheFI2ZllTSDhaUFlPTGFZSko4MVpUUFUzQUFyanMyalh5ZGV1d2M0MThteEo3MThobnZybDJqYnlpTEk3b0hiRGdLV3VSdnpOL3lJSmJuZGl3c1A3MlFkZmlUU1lYc0JUaU5OTm5MVU5yWTR5dmJXTmFTNlpzOWVZMy8xbCs3SXIrRUcxeW9wSmpCTG1mc2tHclRxdU5uRmlpKzBaRldYWDhyWW92dlBZWjJjbHYrc2EyYlpUTHZ2Rjlzdk9Fa3M4eTZqcWg1TE9NdWs0b2VaMVJZVDdyRFB5bjZhNmhrTGFqMkhVY204Q01qOWhxZmhZMy9wTnZHWEZQaVBJZUl6NFFYRFRTdFJ0NXQrOTNHdlpEMkxkNEtjV25lblQxNHZCcUxVVTdCNmNUYUdiUXVRcmNhdnl2RGQ4R1hkUDNFOUgvMHZjcmYyWjkwRlFkZ3VMNWdrcmFOMVNIMlBHM2FjL1kyYjlDckRQMVBhWnNYbVN5MTY1cWhmb09VdjREYSt2R3F2T0kxZm9BQUFOY1NVUkJWR2plN1psZFNGUkJGTWQvWm1taUZ0aUhhS1NRbFpGaWJLUWtaQTlhUVlYNEZVWm1INExRZzBGYUZCUVdXdTZERWlGQlVKRFN0MUJTaEdWaGllUkRENkZCZ1JLYVppQ0pHcEZaS0psdEQ3MnM3Y3k5TTd0M2J5L092Q3pjLzl6ejJ6c3paODZjZzR2LzI1a0ZNQlhJV3pnT3NzbWlrRVBra01OV1lnbjhWK1FmZ1Bta2NaeXJ0TkZISDBOOHBaOFB2T1VCMWV3aDFwOEFnZVRReUhlVFFXK29JTVo2Z0JESythSXh2YzlKdFJMZ0tKTmVyTEdYSkZvQmtFaXZEd3Y5b3E4QVpUN3Z0UUhpdlFlNGFkR0czKzBWQUswVytwd0tiUUJlV09yMHhvblNBcURGNUlWVGRIT1hTMVJSem5tdTBNeXdnZm9YcVZwZmdIcEQ0MjBjSkZMZ0l4MmNaa0NnLzBteTFocWcxTUI0RTNFWXR6d0daNHlZWkwzV0xtQ0QxUGd3YWFpMUdqZnpEazAvd0N1SitoRUJxTGNNcHN6TUN3RTRJdk5vNkxaVWhralhkTVdFUzlieUJmUmJBSE8xRHlOT1NCYWVsMDBmb0VlZ2VrK3dUUURrQ2xYYndDNkFhd0xOUGJBSmdFQStDalFwOWdHa0NCU3RZQk1BSVpRSUZDWDJBU1J4V2FDSVY3RGlJSk1NcGI2WklqS0pFd1BzcE5uRGZKZlMzMnpSaWd2eUNCSURGTlBwSVg2cUJOQ3NiSHlhamZJcHFPU1R4NEJhU3dFRUI1UDdUeWNqSGtQT0tnRThWZ3pKRW93WFlaWGdHS3EwRE9DYk9EUTNBM0JhTkFWanJEYmZocWNFZnZDNkpWOWd4SDNqeVFIeUJXRjR1eExBRTBQemc2SndYQVN3aGZzZXowY0pVd0I0aUlzSllYZlJiMlIrSmtBTVRvRWlRd0VnZ21naWhYMFpvVHFIVVlGQVVXUGJXZUNDbFFKRnYyZmV4NThCeVd1QnB0aE9nSE1DVFE5ejdBTklFcXFxYkFOd3laeEt1bjBBT3lSM3drZ3ZDVktJMXIyYVBSTXErNGp3d253QkxxYTVRNVo3RUdJR2tDeDFxU3MwelpmTU9Jd2J5Q1pZN1haY0xZMW5kbW1ZdnlFOGxKc29aSTE1Z3FMRElEMnhSTUY0RnFQU045UzZKeTlsQUt1WWtMN2dOL1dzbFpxZXgzN2VHYXk2MjZvNW91MG0rNmNiSjdra0VFVW9RU3htT2FrY3BwRnh3MUdkT2xteXZZcHg3bWVHK0tHazdXV2hYcDd3Z0tWNXdsNFc2V2RLOHl3ejMwR1lkN2xpaDFhTlFOYnJmTW1XaDBsOG8wdjVPcExuZThGaW44RzJOTzRONGsrdlh6RUpvWm9wN1hySk9tdUxWZ3M0S2N5aGlITER0M0Q0cTJ5WGdwTjJ4aVJlb1lzNjhnbjFiOTN3NzVRa2tVTVpwWnloaWpLT1VjUW1sbHBldUp5dEhmdTcvd0ZvMzVzZHB5UzhlZ0FBQUNWMFJWaDBaR0YwWlRwamNtVmhkR1VBTWpBeU15MHhNaTB3TlZRd09Ub3pOem96TlNzd01Eb3dNSDV5ZE1jQUFBQWxkRVZZZEdSaGRHVTZiVzlrYVdaNUFESXdNak10TVRJdE1EVlVNRGs2TXpjNk16VXJNREE2TURBUEw4eDdBQUFBQUVsRlRrU3VRbUND"},{"meta":{"name":"icon64.png.b64","url":"https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@c5323fb/media/images/icons/googlegpt/white/icon64.png.b64#sha256-BYRq92cF5knykaKnmNi1U4CrwBC/jK1V+MGfH4NGui4=","ts":1764084296549,"mimetype":"text/plain"},"source":"ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQ0FRQUFBQUFZTGxWQUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk5BQUI2SmdBQWdJUUFBUG9BQUFDQTZBQUFkVEFBQU9wZ0FBQTZtQUFBRjNDY3VsRThBQUFBQW1KTFIwUUEvNGVQekw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQVZjZWxSWWRGSmhkeUJ3Y205bWFXeGxJSFI1Y0dVZ2VHMXdBQUJZaGExWVM1S3JTQXpjNnhSekJKQ3FWSEFjdDRIZFJNeHlqaitaS3JENSt0bnVhVWRqREZWUzZwY1N5TDkvL3lOLzRVODltZGpkcHRLVnhsczMvL0Zja2phdW5yMTQ3Nk1OcXVQMDgvTXpxZUo2angyNGtvdmxORmlUaHRJa3c5ck9lMGxkdVJWc3pGWnVhY3pKOFEyQlp0aWthcE9OMnRpOWRIWXJuV09qRDFUbXJUYjg3WGNmaS9HZVVBUFFKSitJdzI3MXhtTjVJSG1Ld2JVZjdraVBIZHJrTGcyNUVTVzRxY1FseXpxYTZ3QThyU1dEQ0N2VzQxcHJibzMxcHBiMGpxdUtYNjBWbmZETlkyc21Pc1RGRzQ2T0kwelNadmZSMlR6NDFMRW1hMHJKZDZhcHhFMmExNVdFVDJNM21ET1YrTk94WUpXT2diaHE3dmtKSklxajRqaFVCVUJVckNBKzlFanBZQlkwOFA0V0JTQWdWQWlFZWgrZTZ1RWhyRmp1ZXl0dzJGVGdXS0txamwzSGdnNCs0ZzFsNHpORU9EZkI2UUJUT3VCcENCNnViWlpZUFVWaWk1MDRvQUVFOVR1TmwybzlGK0tZc1RFejlEUVZXcXZnOWlpNFlrMEQwbklXTDY4Qm4rT0Z3R0V2WENEZFNrcTVlUFhUbjcxeExseFlOZ1dSd0tJcGE4Um1Dc3RSUXhSZnpXUWNkOFpCUGRjdnlTUGY2VCtxbDZmK0t2OUVkNFBxbnBBNzJCNW5wd2tobHhnTzI2K1Rnd2txN21jbDhzSklaalgrOW1KbGxYUVpXdnJQeEM1N0VMVTlYRzVPcktrTTk5SXd6ZHcrK2YzQVF4dmpKYXdISjRGK0d1MXlFQ3dYby9oTit3dnhPYVg2VGVIQlRpcWdpUUgwb01GTDBEN3pVb3FqZ3VwNHZRdSthalppWnc3MUtyS1ZvK3lONkFUUjRNSUg4VFh6OVlOb0Nka3NXcmlzOU4rTGxVVnVFTVVOY1NVYkRoUVgwZXQ1anRhVUk3TkdNTVVEUTlUK0xaRVVVUzZDWldQVUZkQndhMTJFQVBmUnhjRGlEbXFIZm5NMmdCWUlpalU0SjV0bXJHQ3ZHYXdqUTFvQXpOYmhCcHRtNFRtNDJTRWlIeEF3L0ZZZXJMVUFrRTFQaTBVVnlVbUZnWm1oaE9MaE9YcXdOaTZzUm13RnVvc3hSUVppTUNEQ21lTTJleGt3TXNHd29rTTF0d2QwOUdkZm16c1IzYS9nUHZ5VlpuOHhiek85aGlzMXh6SXNTUFNjMEZsTVB5TEM3UnlJTE9EM1FOTENzVXdFQmZLSzZNUms5bXBCeVFMZ25FczFmeW9qelZYK01DRFB2Vy91YWJHeWZhNlVhTUxkUXJKK1o0OWJMUzJSbHZHSlRydWNiMVRsUGlOcXZ4R3dVaS9MOWd6b2FNZXBGa2ZrK3NKUDRZUHFBa3hSZFNTclRuQzRIczVudHNsNkF4aW1MMHpMTzJhZUZPVkJ6OWdLS1RPbzI2cXB1eVMyOWErM0xWUGJLb01naEJWR2xLWG5mVm5OUFFCYzJ1MFVBb013TDYxYTZJMkdyYjNwTTkzUlI4d2QzUzJmYS9xUEpmMUlVVG5tNk1jcEdnQ2tJaWpGNmVUeGd0RGVvR0JaR3hRNWdUT0liV2w1Q2twalJyL3VJQ3dVZWRsQnB2ZGRMOVVjeUcxajh2amE3V0JJUzJGdEM1MWdTRG9XUG1qcDluQjZDbWR6eG9aMlVoblFwWmpEd1ZMMEZ1N2hYUFlJM25MN3M0OVVTZ1FRV2ZXblg3bGRWbVBMNjhhOTlodDMwR2NsK2dnSDYwaytpODExYU9URGtxRC9XQXNldWEzaGZEWTA1QkZiQ25vRkl4SWRSYVAxQVJvclA4cW1MdlY0SHJvTWpYdzlPdXhDSTkrV3hENDA4bGxzcmtNanJ5aUxaNHdPV1BDVXRjamZoUSt5NE5ZZ05peXN6ejZZV21MSTVBSzJRbWh6ZS9ZeWpEYk8vTm9PcHJWbHl0WnUvb3JIOHVOVTlJZHNreE9UQWlQSS9aUU4xdWFzclpFVFR6VGZtQ2lMamI4MThVWFVQaU03K2MzY3VCNGI1WEp1Zkovc29xRGtzNHE2TGlqNXJLS3VDMHBlVjVST1o1TkJQSnJ1QmdwWlR4UzdpV09UbU9tUlc2dkg0bFg4NUZ0RzNCT2l2TWVJRHdRWGczU2RSdDZjK3puRTQ1T3AwbE5FdUtxTlZCRE85bk12eFRnWGtEbUttdEVnaTgzTy96cndiZEN0NW40aStsL21mdU5qMWdkRDFTRXBuaStvWlAyRzZwQTc4VGJ0bVR2N1Y0ajFUbjJQS1pzWG1aeTFxMWxhMzBIS2Z3Yy94bVJCcmZBTEFBQUtia2xFUVZSbzN1M1plVlJXZFI3SDhYZmpUSTZUTmVjMFRZN05LYzlNbVRXWnlxU29VemxOVkU2bElyaU50cWlaYVdubWdxYU9tQ0Nnb09BRzhvQ0N5Q2FLc2ozcys2S2d1S1dtamdvcXJpRGdnaHIzV2IvekI0LzQrSEJaN1p6K2ljODV6N25uNFp6bis3cS8zNzIvZSsvM0l2eTg0UmZBL2MyQlZua1ZCd0pKNEdzODhTZUdVRUk0U0Q2K2FQQm5OV21rc2Z2eEJMdVRJOFZ4LzhkcnBpbE80aFR6Yms2UGtrN3I4Q1dOaFFUalJ3UmhlQkJIRko0c1pUK24rY0dTRGdJS1dja0svQWo1N2Y0M2o4OC90N2tpcjdiY1dIN25hczFOL1ZuZHVmS2psK1BQZW1lTzM5RkR5MVQ4V1BQVEFrSXBKUkdmVG9sT1pUdHYzakdMV1V4aUZyTW9ZaFFSblJoRXhDUW1FVEZKMVpHMFplSFBmWXMvWVhqK0ZJQllOUGhRM09YRWt1dlhSVVRNWWhDZGFoVFJpMW5NSW1LVVk5a3BnMzJaUi96REFnSUlKb2o4dVFaRlJNUWdTalBGSDR4UlJFVEtpZ043aHhDR1YwY0JzM0RIbGRqZU44K0ltTnRVMkhvMERDSmlsckwxRzVtUFcwY0F5VXppR3c3TU1ZdUl2bzE3Ym9zd2k4aU44MnQ2ZmNZQnpyUVBFRVFFWDFFWUlXTHVVUEY3QkoySS9DaVI0MUk0emZHMkE5NWxOVUdVNTdSOTFsdENpQmlsYk5seFRsclNLcUFmOW5oU1hkRDgwT3ZGS0diTEVTOGlZaFNqbU1YWUF1SHU3VDNkZDFOQ0NTWHFnSDZOZVkybjZVdEZwb2hlOWNkTUltSVdvNkhpeExrZFZ3TGlQRUtYNUsrK0VWU1ZXbDFsRUZFNVhoUVIwUm1MQnFlUVpZa3FZSVFsVHJ4RlgvSkMxY28zTER0bUtjK0xuN1N2V3doQmxER2VBU3lsa2tLMFJOa2RkcTA1L3lCQ0VSRkZuejBna1FMeUxGRUZPRnN5bklFa3p4YlZ4VVpFNUtEVzkzay9GcFBIRGlLNHlGeEdzWjVxU3NuRW0yaThTUjUxNVpLSVVaUjc1Wlhrdis5b0xONHNvRGU5NlUwZk92TlpmeEZwTW93R0VhbXEydm5tZENZVHpscjJzSU5JTGxnQnNnZ2tIWC8reTNUMitJaUkxSXVJb3NUWmhaTkpibXNBSjV4d1ppaHZjNjVVdmZ6RjVPOGVtWWNuODluS0dsWEFSdExRNE0vWFRDUFp3V1FRcVZlaTdUUm95U0NYZlBKSkpaMThkWUFERHJ6THM0UitJeW9ydkVqeCttbjRzaElQWEZvQnJPZGJQUEhEZGZDbHEwbHZyeUdXSkRMSUk0TWtEbkVZYmZObndiTU1lYnl1eW5iLzlTSlM2ZWZDVkVKWllRTzR4Q3plWkNsVkZLREZEeTBhMXJNQUwrSVo4c2pNWDhjU3dRNlNTQ0tCUXM0alhHYTdPbUE1WG56QnJnV2ljaEtWYVYrbUsrNXN4OE1LRU1NMktuQmhDYW5jb0l3U1FrbG5CVXVaaWpzN0dZa3JpWVFUUmpnNW5NZUFJSndsVmgyd21Ea3M0dVpwYVZMK1R0bFhuZTJ3WndyTDJNQnlYTmlLSDN2WmpqK25pS1VLd1lnWkEvWGM1UlFackdFSkd0N0JqVzJzSVk0eWpBaEdsSllBSXhpRW03UFlyR1pHRWZGK3J6K2ZNUlVuM3NPSDFjd25uRldrVTBRMGhhUnpBVUdIRGdObVRKZ1JoQ3BPNHNnWHBISU1JNElKSFRwMExRRW1NSWJkWWRZVG9JZ2lJa2RqWjdBVWQ5enh3QlV2NWpPUFRRU1F5aDZLeVVUTE9RdWdJUXA2QytNcUI5QWhtRkFhLzlzQ3dJTjFuU29ycE1uK1I5cXZZRFBCQkJQTVpvSll4VUlpeWFlSUhITElhUUs0SDdOTjhWWUF5d20zTjR2Slp1VTduak1YVDZ0NDRZby9KUlNSM1NwQXNmcHNBOEM3Uy9LTUI5ZC92WWhzbnVIQUpDWTI1ajlNSVoyOWplWGJEN2hBbkRvZ29NOXVqZGpzdnlJQnZkenhiY3hxdk5oRnFWWDVITFNjczVQaE9vZW1VYXcrTGQ4TWtja1Z3M2M4cndvNC9lRzFWRnRBemZGRVVrbHJUQ29aRkpMOVFKSTRseWx0dmpGUlpNT29CWStxQXVJK3J6aG9DL2doZlQxYnJSSktKTm5rMmdKU3BZM2w5YWFGZ3o3RlJYMEtDdHl1WHJFRkhGdnJTNGhWTmhOTUd2a2RBQ2dpWWxKbTJ2Mkw3L0JVQjV6MHZIN045b2R1dWRkeDJ5b0dycEJHbGkwZ1JkcFF2djcybDY4TVlpcXV1S3NEam52VVZvbk5SYWphclpKcXE5UnhudlIyQXhRUjBkVTU5bnFWaVV4cEQwRGtzbWN4QjYxeWxDSlN5V25YRkNnaVlyZzE3TVVuR01mSExRRjJMVDVmWVFzbzJlcUNEOTZOOFdRVkdVMlBnUlpHUUJFUnVUYnUrUzc4Z3pFdEF3NlByU213QlZ3c2pDUGRLbWxra3ZmQUtwQ0Rsdk5wSW5wTERJMWJEUkV4WGpyUWZSQXZNcERSTFFNSzNqa2Rad3Vvcmw3WDFSOU5ZemFpSVo4OE1zaHNUQUxsaVNMMVZuOC9ObTRacGZic3dlNkhHRTVQQzJBU2k1b0RCRDlYN05uMFV1VHJNSjV2ckRLRlZSU1FaSlVZamoxWi8weE5OOXZVZHF2cGR1ZlAreDhyNUNURDZNa0FQdUI5UHNLOU9VQWsrUk5zbndWRXR2bjBaeHhqR2pPUzRVUlNSQkphUzdiekF3cTFUWEtkV3U3d1BYczV4VnY4amw1OGlnYzdpY2U3bVJFZzhRVkRrNnRoNWRuNW5SYmcyaGgzWmpHYlJQSkl0aUNhQTlSU2c1NlQ3T043eHZJSkd0SXBvcFFFVnFvRDNQRGg0cUVIN3dqMUloTDh1U01MbU10YzV1TENSSmJpaXh0UkpKTkVTZ3VBT3dnR1NrZ2hDUzNGRkpPQmxseDJOUWY0a2s5SVhkNzBqdkRHNlJHL2VoMW5uSERrbjN4SUhpa3N4cDFZQ29rbmpoMDJnRHJ1b21Da2pwTXNJWWgwRWtnamhSU1NTU2F2ZWNCeVhORDBFWnRKMElsSW1FZG5YdUJGZXZBT3k4Z2tsdS93SXBjTU5sQkVQSmNSYm5LWGV2VG91TVUxVHBDRkg5NDRzNFU4a2tnaW1kVFdBRFA0a3RIc1Q3RzlMUmNSV2ZUMlU3ek1NTklKWktjRlVFQTBXem1IRDFsVVVza0ZEck9ISWpheERuKzhXRXdnWDZBaEEyM2JBQ054NGpWOFByQjlMRlZFcEw1cVJUZDNQSWhsTlhFV1FENnhSSEdSNll3Z2xDT0VFSWdIQWJqaFJSaUJlTEdSMFVUYkZ6NFRTVFNKclFPY2NHSUVBeWpOVW5zMHFTMVBlbklCb2ZnU2J3V0k1QUt6R2MxV2poSkNCQUZFNElzdllXaHdad21iSm9nb3B0UFJ1eDIxajhZUVEySkxBR2VjR1kwOXl3YUlpTXFEdVhKcHhWL1hzb3FFSm9CeFJIQ01NQ0x3dHdBaThHTTY2VE5FUkV3aUluTDdkdG0yUFNPMW5ST0p4a01kTUpTaERPWGY5Q0RHVzFSN0EwWlR5ZWg1aEJIZkNzQUhIN3paSDM3L0lkOWdhZWZVMVZWcDkzNGM4cElxd0I1NzdCbklYM0NnN29BMDZRMHBJaUpTcXMzKzR6cG00VW1CS21BTEMxbENybU5OZGRQMmxrSE1JaEsvZG41dlZjQjRTeVl3aElVOXBWNk5ZQkFSTVI4SzNmUzNiMGtpakNBdThoV09oSEdZQURhd25FMi95ZnkwL0g5cWs5alFzQ3VQNnNjVDZsUHd1aVZ2TUpnL3NmajlwbDJTKzVjb3M1dzljZFl6elRuNWxiTHVzeDRiODJqWVV5ZWVqUjljTVBQSXpsdTNHenBFT3RWSnZIUndDRDNwcnc3bzM1Z0J2RVJma2o1cWp0RFFxaktLU1l4U1o2cXN1WHkxNXU2UGxwYWR1ZG5Hbm9qNWpOL3YvMG8vQnJYZUorekRNTHpJbTlnYzRkNkVHQzNIdUlpeDJRNzZ2ZkszemhUOXdZL0I5TU8rTFozU0VXeG1BeEdqOUNJUDNTYzFpTWpKQTFGZGl3bTJORUhiQUJoT0NBbU13OWRPcmo5TXU3YmgzRGtXTWhrTko5QzBENURJVEJZUTJQVnNsblJ3SEl3aW9sTlNSN2t5azJpT3RSZVF3TmVzWUNYKzdQbWtycjdwZGJMbFBXOTRaZkg5dHFpdTYvRERoYWlPQWJ6WXlEWjgwWFM1NkYxdmFEamNXaXV1dHh5YVI0ckQrNjVFUXhScm1kZHhnRDh4YkNHUVhMS2Z5RjEwcFVJc3I2ZU1ObWU3UVF5V0Yxa2lkL1dYSXVQc3hyS1FjTUtKZUhoQXcydTdiQmJoUzVMOVBzK3JoYmR2MVl1SVNlckZLR1pMSzlNa2QwdzF4MCtGN0J1Yjk5ZzIxdk01Zm9UOWRJQUQ1T05IQUd0WlJRYlpYVXI3WkRtVnpaSFpCNWRtZXNnYzNieVl5Wmx2SkQrOWhSaTJVMEFLb1V4amRYc0F2N3c3L25ueWY4Q2YzNlJUM2JUUUFBQUFKWFJGV0hSa1lYUmxPbU55WldGMFpRQXlNREl6TFRFeUxUQTFWREE1T2pNM09qTTJLekF3T2pBd1Q1cHVXZ0FBQUNWMFJWaDBaR0YwWlRwdGIyUnBabmtBTWpBeU15MHhNaTB3TlZRd09Ub3pOem96Tmlzd01Eb3dNRDdIMXVZQUFBQUFTVVZPUks1Q1lJST0="},{"meta":{"name":"logo480x64.png.b64","url":"https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@612b976/media/images/logos/googlegpt/flat/black-green/logo480x64.png.b64#sha256-fzSZhLVQQolCLWYr/h29NWfR1Yl4glHv1TcsveYYv+U=","ts":1764084296550,"mimetype":"text/plain"},"source":"ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFlQUFBQUJBQ0FZQUFBREN2NlRQQUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk5BQUI2SmdBQWdJUUFBUG9BQUFDQTZBQUFkVEFBQU9wZ0FBQTZtQUFBRjNDY3VsRThBQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBRldYcFVXSFJTWVhjZ2NISnZabWxzWlNCMGVYQmxJSGh0Y0FBQVdJWE5XRXVTcTBnTTNPc1VjNFJDcWc4Y3gyMWc5eUptT2NlZlRCVmcvdDF1ejJKTUJNYWdVcVYrS1JuNTU4L2Y4aGMrbW1NVWU5cFkyaEp5a3kxLzVWU2locXc1NVpLN1BGaXZPb3hmWDErakt1NTNPZkpPS3BaaWJ5SDJKVVNEYkpzN2lXMTVGQ3hNVmg1eFNESGpHd3JOc0VqVlJoczAyTE8wOWlodHhzTGNjN1BjYU9Edi9NeERNVDRUN2dBME1ZL0VZWS82WUJGM0pDODF1UGZGRlhGWm9TRzFzVTlCbE9ERzRyY3M2V0JaZStCcExCcFVXTEVPOXhyTEZxd3p0YWhQM0ZYOGFxem9pRytlR3pQUjNtOCtjTTQ0d3lRTnUwTW44K0RUREpta01jYThNMDNGSDlLOHRrUWN3UjR3Wnl6KzBhRkFTZ2RIWEhmdWVEZ1N4Vmx4N3VzR1FGU3NJRDcwU0dsaEZuYmc4eTBLUUVDb0VBak5uWHVxZzRjZ01UL1BqY0JoWTRGamlhbzZkaDBMT3ZpSTF6Y2JYaUhDdFFrdWU1alNBazhnZUxnMnpMRjZxY1FTTzNGQUFBVE5UeG92MVhvSzRweXdNREgwTkJXN1ZzWE5VWEhGR251azVhUmU3Z0dmNDRYQ2ZxOWNvTjFLaktuazZxZnZ2WEd1WEZnMkJaR0EwSmpVWXpPNjVhZ2hxcTltTW80NzQ3QTk1ZWZra2QvdGY5eGVYdnRYL1NkN0IxVDNpTnpCY3I4NlRRaTV4SEJZZnAwY1RGREorYXhFYm94a1Z1T3pWeXVycEV2WXBYdFA3YndHVWR2RDVlTElta3B3THczVHhPVmpmaDU0YUdPOHVQWGdKTkJQMERZNXdWSVl4Vy9hWGFoUE1kWnZLbmQyVWdGTjlLQUhkVjdDN2hNdlJUOHJxSTczVytlcnNGRTdjV2l1S2hzNTZnWUw5czU4VG5tdU9sVEt3N21CSy96cFhyVzRiaFl0WEZhNjM2dVZXYThUeFFOeEpSdjJWT2ZSNjNpTjFwUThzd1l3eFlMQmEvOFJTWW9vRjRIWTRIVUZORnhhaFJEZ3pyc1l1SS9VajZRbytBWEhBVUZyb0d6M2JRS3VhT1JWY0RZNlJpWjhkWUhrSFUyeEF2SHhIckpId1BCYldWaHJCaUNibnVaQ0ZjbEpoVDJ3Q2FxVk1RYSt4dEd4R1dSZUNSUWt3T3Q0RTByTXJ5Z0tXb2M0bi9FQVdyTURPdnF6cTgyZGlKNVhjQmQveFlyU1ZTWjRpbGJVSElNcjhBU3hFL2lGWFRVN0l2cUkvb0lvTUhVd3BMRkFabkVQTm83b3hHVDJha0hKQXVDVVN6Vi9xZ2xUbFM4R3BLbjNUVDNOSlp1WHBIZ1RibWVTelUvMnVKVm84YlQwd3p2dGZMM1pLblVKVWZ0RXdXcDdtWmNuUUVjN2pyVTRQTmRuZm5JZlZCZGdpcW9qV1hVQ3NvM09oOXRWMWd2QU1CMnUwU1l4ODBRdkQzckcxbDVCQ0Jya3N1N1h5YlN3dTFpSUlLTmc1NUZpblVOUXdob2p6dExaSUp2SkI1QkxzNTFEWUJJbXBsVVRmZEMwdFQ5OVJrbFNhWVB6NGs1OHF1cnZpbnBPVWpuTDByZVRsRFF5SXlnbDAxdkRpdExlSW1IWkd1UlpnU3VvYldoNWRGSmpUdC8zRU01SDl6MWsvS25yWmZZOTlEWStlL3pTN1NCL09DNjZ0VTBtTDlJbmNFOGxkbmQ2ZEdkenluWXlZMGdZRkR3cFdLV1ZjTVhLSHNHUDNGNld5VHpXRGlPYjV2ZUIyMlV6dU55MzdyWGZ1SUkrby9KSy9qNCsvRGcyMTZHUnQwdUNGRUlDWWNaelRrSWp3eG9TRzlzYlc3TVhCMm1odW8vVUZkQlZXbU56VWU4eEU0R2NoVVkrR0I0Mm9aSGZsc1ErTlBKZWJLNURJL2VVeFN0R0J5eDR5bHBrOEVKbnMyVlRCSUwxM3cvbUZoOHpLY0JtaU4zbzVPVWYyZ2kxc0dFN21ySnB5dDV1L3ZJLzVzZTU2RGJiNU5Ra3h3aHlQMldEbHpscmErVFVFK0Y5RTJXMjhWTVRiNlAyRHRuSlo1UGphM0NVbThueG51eDJCU1h2VmRSMVFjbDdGWFZkVVBKZFJlbDROaG40bjlQTlFDSHJpZUl3Y1d3U015NjV0ZnBqdk1UdjI4bi9paEgzaENnL1pjUUZ3WDh5K1NkcnMzcFVnY1NiSlZ0bFlVNkpJNmczMVVjWFRobUFtMU45VjVUTkRVTmR3cXc5dXYvRDVIOUlpdmtWbFd6ZlVSMXl4OStudlhKbi94S3hQdUdiVE5tOXl1UzBYYzNTK2haUy9nVWJCTWNlSU1uQkFnQUFHR1pKUkVGVWVOcnRuWG1VVk1XOXg3OGlDZ3BrRUdGUUVCQVJVVUdOb2tRVGlRdVVpcmdHa1ZMUXlHTDBCWmNYbnNRbFBJM0xJNXJuZ29Kb2dqa3VxRWg0ZXBUZ2tzUWdLb0liaWxzU0pTSmFvRUdXV1dDWW51bVo2ZmZIL2ZVNWxVNHZWZmRXM1Z2ZFZKM3pQZE1PWTFYOWJ0OWJuMXRWdi9yOWtNbGs0T1hsNWVYbDVSV3YvRVh3OHZMeVNraGNNSytkV1A0aDhQTHk4dklBOXZJQTl2THk4dklBVnREdVhMQXVYTERPcEU2U09rcy84LzFiVmgyNVlIdHd3UTRLMFg0dkxsaC9MbGczTHRqZVhMQ2VsclFQS1U0dzlySm9UMDh1V0c5akFGWW9WUUQ2a280QWNDQjk3b0hLS2UwQTlBTndNb0N4QU00SE1BWEFlUHA4Rm9EREFYUkZaWmF1QUE0ak84Y0MrREdBeWZSNUxGMlgvUUhzaXNvdG5RRDBJUjBPNEdENnZFOUMvZG1Gcm5lN0FtcFBmK05hT1FqQW1RQ09JUjJka0lZQjJOY3hBQy9tZ3EzaGd0Vnl3VnE1WU0wUjFjSUZTM1BCNnJsZ216WDY4U0FYcklFTHRvMExsdUtDTlhMQmRsaFdHeGRzSFJmc0tjdndyU0hiYk5yU3dBWGJhQlBBQndPNEFNQU1BSThCV0FMZ2VRQXJBYnhNLzcwUXdLOEFUQVJ3WkprT3VnY1JiTzREOEFLQVR3RnNBckFad0E0QU5mUjVQWUFWQUI0SE1BM0FjQUM3VmNCTHh3L0ludmtBM2lBN053R29KL3UvcGYvK0RNQ0xBR1lEdUFUQW9BcUI3Z0VBeGdDNEFjRHY2TDVlUXRkaUdYMStHc0JkQUM0RGNDeUEzV1BxMjNFQTV0QzltVTl6Nk1YSXRYSTBnTFVBL2dwZ0ZlbGRTYXVrbjZ0eWZpZi9mcFhDMythck4vdjVQUUNUSFFEd3lWeXcrVnl3THdsQ3RRU0o3VFNZYncrcEJ1bG5oZ3RXcHdHcHVkU1BETUczVVFLeERhVUk5clgwMHJDTUMzYVdCZmoycDNhYUxOcVRvdm9idVdBOVRBTDRSSHFvL3c0Z0UwSmZFcXpQYy9UTlBGdjZBSmdPNE0yUWRtYjFOWUJIQUp4YVp0QVpTYkFSRWUxL0Y4RDFORE11cDNJMGdKa0FWb2UwK3hzQXZ3ZHdNWURPRnZzNVhhRXZ0enQ2amErUGVHK1owcDBKQWJncnpUTHJDYllaeTJyZ2d1MnJDYXNIQ2RxWmhGVExCZnVXQzNhMlFRQ2ZHTlAxenZiL1NCTUFuaEpoTUNvRzQxOEM2TzdRb0RBQXdGd0FhUXNQK2pzMGszYTVuRWNyR0tadGJ3UHdNSUFoanRzL0ZzQ3JobTNmRE9CdW1rbWJMcE1WMnY4dmg2LzNCUTRBZUViTUFPNUJTNndwV2lLV0IreVVOSHRLUzB2SXJUUXpWbFZHbW9sbDZIZjdoZ1RXK1JLd1V0U3ZOdXFUYVdXWHpYT3ZUUzBYN0QwdVdMVUJBQStWWnZiTmx1eklYdmQ2THRqQUtPQWRCK0J2bGgrQWVnQTNKVHdqYmdmZ0RnS0Y3UWYrVFFBbk9UWVFIZ3ZndFpnR3ZIdG9MOVdsd2l5OWVPUnFGZ0ovQ1ZObFNwa0RHQWg4S0hZV0FOK1pCN3FORW5CTnpieFNPZkN0TmpocnpFTEw5dXl4TmNlT0RMMk05STlveTFFU2dGc3M5YjFaQXZDQlljRGJnL2ExNG53UVBrMW92K3A0YWp2dUIzK1dJd1BnTFFuWXZoN0FLRWYydUg4YnMrMmJBRnprWjhEL1VpWlVPSUNyeWJHcUlRZVN6UllHLzF4b1ZSdGF1aDJSTXhOdWlYRXB1bEY2UWRuR0JSdFVzUUNtL2I4dENUNFFOOGY0NEYrVjhOdjNXd0I2SnpUb1ZRRlltdlRzSThGQmYwZ0VYd1lUZXNRRDJBa0l6N0FNMytFMHc1VmgwbXhwNExjRjM2eEdTUkJ1TkR4ckw2V3NVMU1XYklNY0JuQTZGSUFCL05RUng0am5ZbmpnNXpoaTYxYWFoY2U5MTczZUVmdWZTR0N3SHgzVGRvT0tYMEIzRCtCRUlUekRJbnhuNWl6ZE5tb3V3YlpvN2p2YWhHOGhDS2NNSEpWcUptaTFLc3dzRzZXMnF5MEF1TVdBTFkzYWU4QU9lU1hLVGxwN1czclFIM2JNMWd5QXMyTWE1QWJSdnJ0THRxK0kwUWRnckdPMnQwWndUcXMwQUlPVzUrTzgvak10d1hlVzVFR3NNdXR0eTNGQWFvc3dBNnUyZkk1MmxDVlA0amJKQ2EwWWhMTXZHaHRDMkZvTXdLM1NucndKZTJxNFlNTlY0SHVkb1p1NWlaYXZ0eHVvNjIwQWUxbDR3S1B1K2FWb3ovaE5BQy9STXU0SGlINWtKd05naE9YQnJiY0IrSDRENEVNQXJ5QTQ5N3VDSFBXMkdZQ3c3VExHMEgyZXBwVUxFeTh5WHlNNGErNEIvSzhRM2tMWHQ4Nml0Z0dZYmdHK2QwbndiU2l4Vk50YVpEKzRnV1pSZFFxcXA3cHN3emVyMCtpTWNxM1VmbGpWNURudTFGaGtpVGdsdmFETU1RamdGdWwzdFRsOXpHZGpYWjdQdWQ4TFZJNFloVDFhOGhlYU9aK0dJREJIVHdCN0F1aEd5NXpEcVA1SEFXelFxSHVScFFmN3BwQzJmb1RnUE9VcFpHTWhoNTZEYWZCWUNLQTVaRnNETE5uZUljS3k4MklBbDlKTXJWQndrVzRJem9uZmhDREFRWmgybnJZNHFKOFFBWkp2QUxnVlFmU21Rd0QwUXVESjNSWEJHZWVqNkh1ZkMrQWZHdld1UXJTZ0haVUtZTkQxclFMd0hZdnFDcUNEWWZpZUtRM3dEVVVnMHBZSHZIVTArMXJEQlh1V0MzWXJGMnc4RjJ3Y0Yyd3NIUW5LcDNGY3NBa0p4RG11NW9JZHdRVTdoQXQyY0VnTjRvSWRUellzeU5uckxiWnlrUDJiN1Z5d2ZnWm53Tm5Qdjg3cFp6NGJEOG56K1JEUzRKS2hLQkVjUDlFZGpMYlFJTnN2QkFBbWtPTlJzZm9YV25xZ1I0V3dkUm1BTTBLMjE0c2N5bElobHQ1dGxEK0hXQnE5SzhJTHdVa0lJb2ZwWHZOckxOaStEL1RQZGpjajhGUVBzenc4bWxZSFNxM3dSSTJVVnNrQU5sWmlqUGs4Z0x4MFM4M2cwam43d2JWY3NOVUUyYXFkUEhuQnJqU3JyUzF4SGVVOTQ0Y3RBSGl4MVdRTUFEb0NxTlVjbE82RG1WakhVd29zM3oxcDZSbnNxamtBMXlPSVltU2k5RUVRRlVubk9qOXMyUDdwbXUwL2p5Q2V0Nms5MTQyYTdSOXEyUDZQTk50L0NtYWlkNTBKWUYyZStsZlNpZ2s4Z0NzRHdKU3dZTDNrc1pzdTRzMmJrbWE4SDNEQmp2UlpnL0tDc2s1YWNpNjBGSjFkVFRBTjRDVzJBYXh6enJjQjVzOXQ5cWFsdld3YmoxdDhCcC9Yc1BVMW1yMmFMbE0xSVdEcVRIUWZ6WGFuVzdDOUc0QS9hZlJoVFlMYkRwTU4yOTR4NXdWc3VjRzZQWURkQWZBOTBnQ2VLckpzbW5YdzJVRXpYZy9id3JvNFowV2gwSG5iT2k3WW1MSUJzT1orMktld0c4dDNCZTBsMnlvbk9yRDNuQzJuYWZSbHZhRTIvNkxSNWptVzdYOWNveTlYR21pdm4wWjcyMmxMeGxiNVB3VE9hL0FBcml3QTUxbDZMalh6YmFhVWRSNnlwZldXZE0zYWlnQnpYamtCV05WUjVDc0FYY3I4K1ZNTnBmbGlUUDA1UlFNS2t5SzJwYlBISDljeHFOOXJBREZxVnFFbFVQZmVQN1FNNzIwUFlEY0F2RWdhME5NRjlpdFQwdWRxRDFabGpTZnY0a3dCaDZ6czlmNjRMQUFNNEhTTlFhbXZZajVnVjhzSVJWdlh4ZHl2U1ZBL29oS2x2S0xZem5VeDIvK0JZcittUldoamtNYkx4L0F5dmI4OWdCTUdNSG0rMWhkWmVtN0w4ZGp0NjZHcXBUMGx5RFlYV0ZuUVNiV1lPSUJYS0E1S3A1YklCMXdPNVNVazQvU2p1aVJwYzFtNHYyTDlyeWRnK3o2S2ZmdG5oRFpVZzYxTUsrUDcyd000ZVFBL0pJRTJYZUs0ekNRUDFGQ3F6WUZ0dmhsd2cvTUFSdURacWpJb1BWa2dIM0E1bFI2S3R0NmJVUDg2QVdoVTZOOUxJZXUvV2RIK3BHSlJxM3Btand4UmQwZkZhL3RlbWJQRkF6aDVBTGNVbWYyMlNyTzIxenhJUTJ0ckVRQTNseE9BLzF2aGdXMEJVRlVCQUw1VXdkWkdCT2VUa3lxL1VQdyt1b1dvKzJPRnVuK1Q4SGYwalVJZjU0V29WelhpMVpFZXdCN0FFZUFyNzA4MkZabjkxbkRCanZNZ0RhMjZTZ0h3Y29VSDlzRThUbHZsV0JZbzJEbzc0VDUyUXJEWFhxcWZQOUtzZHo5RkFQVk4yUDVyRmZyNGhhWGw1MWNyZ0MwZXdNa0MrQmxwNEc3Tk01aG5sMGVYZW9pR1ZwVUUzbUo3d0RWT0F4aEFaNmhGWlJwY0FRRGVCVUZFcVZLMkh1RkFYMVc4Z3UvV3JQTUNoVHFYTzJDNzZsNndibENRenl5ODFIZ0Fld0RuQXJpbXlNeE1kZzQ2MzRNMHRDNmwvZk5DQU01Q2M3WHJBRDVlNFdGZFV5Qm9od3ZsT3hwL3EzTCtVemhpMTNpRnZpN1ZyUE4ySkJOd0kweDVTNkd2NTJ2VXR5K0NNSnFsRW1yczZTZ3ZxanlBM1Fjd0Yrd3hXdllzQkdENTJKRUhhVGgxNUlLdGs2NXhzWFBBczEwSHNNclJsemtHQUR3YXdQc0lzZ1daMEljSWpna2RwOUdITTZBV2J0Q0ZvdUlZdHg1NloyTC9vRkRuQ1k3WWY2ZENYMi9XcUUvbFJkTkU0SmNoQU42bEZ3Z1Q5L2txQkNFN3o5a0pBRHdkd0dxRFkwUllyUVl3S1NTQVA4cko5WnN2cjJ5R0M3YmNnelMwN3BMQW15cXgvSHlxNndDK1FlRmhuV29Bd0Q4RmpLUjhrM1d0Wmg4bUt0UjVveU9EVVVjRXFlMUtwYi9UU2R4ZWFsYlpDanZoTnNPVXl4UytxOThhWGxFdzRmayszTUo5L2dDQTlocDltRkttQUY1ZzRkcUYxWjBoQWJ4WmNzQktGNEJ2VzRoMGVWNkJadVlrWkNnV0MzcWI4N0dnQVR5a2NET09NZ0RnaXcwL0lHSDI2bFM4dlgvbTBJRDBOa3FuZmxUZEIyMnZzUCs5VFhOSjMyWVphWGkxUXNXeGE2cUJmZzh6ZkorSHVSL0xkUVk4eHlFQXp3Z0IzM1k1NEcwcGNEYTFuZ3QyWVl6UUdzd0ZPNFhFSkdWLzE3OE13THMvRjJ5WjVQbmNtTWZCVFE1TjJjWUZtMVVPQUo2dmNETWU2UmlBdzRaSG5LVlE5d1NIQmlRVjcvVHZLOWJWQmFXelhIMEJZRmRIYlAraGd1M0xOT3E3VHFHKzhZNEJPR3pjYXcvZ1pBQzhSMDQ2dkVJRGVRMFhiRVJNNExxTm9GVlRSTnMwSVR5R0MzWU9GK3hjK21sRFoxT0Frb2RvV1grYmRCMTNGRW5wMkNoZDYrN2xBT0JIRlc3R29RNEIrTlFJRDdnS2dFOTBhRUI2UTZHL1AxQ3M2enNLQUY3cGtPMHFpVUZlTlF6Z0NRNEIrSklJZmZBQVRnYkFIV2p3VmdId3lCZ0JuQ21oSmk3WU5NWDYzaU9nMThhZzdUbkwrTmw4eVcwbDRKc2l1MUVwTTJCWEFEd3k0Z04rcThYWmRWSUFIcWhZVndjQUcwclU5YkZEdHF2TWdCZFc2QXo0b29oOThBQk9Cc0RaK01SdEJRYnlGZ25BbzJJRXNPeVYzU3BKUGhJMVRyRys5UXBBTjYxbWdtcTZ4TjgwUzBlUE9wUUxnT2NxM0l6bkpBemdGcGdKaksvaW5PSktET0QyQ0xKT0ZldHJNL1NpWWIyRDBzZHdxaHl4L3lLRjcrcEJqZnF1aWVtN2p3cmdDdzMwd1FNNEFRQVRoRk8wUkZwc0QzaEhpQm1hQ1FBWEFvdk9tZVRQSlppbnFVNWJTaGZZNTgwWDkxbmVkdytUVlNveEFLdkUzcDJXb0JkMEU0Q2hoaDd3MFlZSGRadWx0MEpmLzZHNVo3dFlaYi9mRWZ0dmdWa3YrUE5pK3U2amVFR1BNM1R0eWhYQVQ2SDh2YUMva2h5RjBua0c4dXpzZUVFQ0FDN2tsUjBHd09rRVpzS0ZQSjZicFZsdzJKU09pUUZZWmFZeDN3Q0FUMGR3cG5HRm90NUdrSkhuS0lNUCtBQUZXejkwWkRBNlRhR3ZmOUtzVStWczdXUkg3RmZKMlh1dTRabnBDZ1A5SGt6MzdrckYreng3OXZROGc5ZXVYQUY4amVZWVlVdXJBRXdNQ2VBM1M1d0R6djV1clFkd0pMVklLdzNabzExUjhpa25CdUNoQ2cvclB4Mk9oS1ZUZGdld1djSGUvUnpvNnowSy9aeXJXYWZLMmRwbkhMQzlBNER0Q24wZG9sSG5YaWdkWDdzTndONG8vK0lqWVNrVVM1R3c3cFhnbENweVJuVTdGNnlmQjdDMnNvNVlUUkljdjQwSTMwUUJ2RHRLZThkbUFBeXZrR1FNTHlqWWVwTUQvZHlvME0rSklXWm5wZXBNQStpYXNPMWNvWitib0g5a2FyVkN2VC94QVBZQWpnamhMNHJNZ05QU3o5c3FFTUJwZzhydUJUZVJjbDlvNnJoZ0M3bGdleG00VG9sbVExSkpVUDljaFFCWXhSdDJhOEo5VkUyYjF5OUUzUnNVNnAyWnNQM3ZLdlR4NlJEMTNxdFE3OThxZ0MzbEdnbXJVZ0Q4UUI3SUZZclV0RnNGQWJncFoxbllocG9va01sS0x0Z1FnOWNwVVFCZnBUamdENmdBQUIrcWFPdTFDZlpSSld2UDZwQjF6MU9vdXhsQlNzUWt5c21LMzgrUFE5UjlrbUxkWis0RUFKNkduYnhZQlBCd2FSKzRXS3ppRkJmczZnb0RjQnU5V05RWVBoT2NwcFdGMlZ5d2dSYXVVNklBcmxZY21GWlVBSUFCNEJQRnBkZ2s5Z04vcnZoZGhKM0JISzlZLzRLRXZoc0J0V05wWFVMV3YwbWgvZzFsenBaTEZXeTgyZ000WXhQQ254ZFpoczdOaWxSZElRRE8ycnFCemptZkhsR2pTY01veXBqTkY1WGtBRXd3WGF3NE1GOVJBUUQraWFLdGNVZUdPZ3pxeHlTNlJXaG5yV0liWTJLMi8zZUsvWG8wUWh1M0s3WnhmNFhmMzNkNEFGc0Y4RlJwT2JhcFJPQ0lWeTB1UlNjQjRNMWxtT1FoY1FBZnJUSDRmeTlHQU50SUR0QWVRSjJpclhmSFpHYzNBTjhxOW1sZXhMWXUwdml1QjhWay94VWFmUm9Zb1ozdWlEY29obXJaeTJCZG8yRCtDSnNIc0I2QWQ1SEFsMUlJblRpM2dnQmM0d0dzQ1dBQzZpdFFENDV4ZUF6UHlGSUFOUWdpNUp3R3M0a0NkQWI4Nnl6YjJWVngzemVybmpFdDlXWVFITnM2d0xMOWt6VnNYMlNndmZzMDJqc3JodnY4RVFEMUFCNURjTGE1UzhUNkRsQ3dxeEZCeWtzUFlIc1F2aTFudnpjZmhIZElHWkptZXdEdjNBRHVENzBJVlNkYmVqWTZGWGdaK0lxV0JrK0hYbjdVUXVWTERYdnZ0V1RySUFEck5QcHhnNkYybVVhYmRRQkdXTEwvR3VoRktPcG1vTTA5QWV6UWFIT0NaZmptODhLZmp5RGxadGpRb0Y4cjJIV3pCN0JWQU85QloxVGxPTXlaUElQN0Rza3IrbWxEeDJxeW1reG5qajJBWFFjd1FmZ1d6UUh4NTRhZml4TVVnU1Jva0dJUjJocXFhZXZyMEF2K1VLcE1ST0J4ck5xKzZTTXlpelR0TjNrK3VnZjBRdzlPTXRqKytacHRtOTZLT0JqQVd3cnQxdEQzeERYclg2aG8xekFQWUtzUUhpME43SVdPNkxSS3M5UldMdGpYWExDaGhnYjZXM01jdmp5QVhRWXdRWGlWNXVDMERPcHA4UXFWdmdoaThlckdiQjBkc2QzL0NkSG0vMFpjQmo0ZXdKOUR0THUvNFRHb0E0QXRtbjM0Qk1EWUNHM3VoaURKZksxbXUwOWJHSU1YYXZiaHJ3YVdwS3NBL0JKQjFDMmJ1WUZQVjZ5M0JrRXdIZzlnZXhDZW4yZmZ0OWhNT0VNd2VKMExkbHpJQWY1SEZKZTZubzRHTlJiSnp1UUI3QmlBdXlQSWpLTUxpQ1cwYktiak9IVWlBdS9YZElqMkxqRDBMUDR4Uk5zTkFCNUFrSjk0VDRVMitpREk4UnFtclF5QWN5eU5RMGVFN00vN0JGSVZoNmhkQVJ3SDRGY29uZUVwbi81dWNSeGVHNkkvcjlIcVJYZU5kbzZpRjdldElkb0x1L0t3WHZHK2F1Y0JiQlhBMVZ5d2RUbXA5WW9sRjVDOXBtdG9SanlQQzNZS0Y2eDNnUUY5QUVGM0lZRzhOZ2Y2NlFMeGxEMkFYUU13UVRoS1dyVWFBSDlBa0g5M0lvTEFCc01SZUdlT1IzQ0c5WEVBbjBkb3crVCtWVHVvblEwdUZoYnhaUUMvQVhBYmdLa0VwenNSSEpsNUgwQnJoUHF2dER3V2pVRzB6REdmMEhMeUxBUU9hLzlCMExnZndIT0tJQ2lrYnczdCt4WXErNFNFWW9iMmtWOUdjTFJwRXNIc2h3Qk9vWmZES3dBOGhDREJSMWo3bjRwZzI0VW9mczc5ZXdxK0dGWDBRaTJyaTZSOC81YjlXUVZnRHd0YlZDUEpKOEdXR0lEOUxVQllEa1BaVkNMUlFDNDBXd2hzRGZSdm0wbGJDUkRiY3FDYmhYbXFSRHZadmVkTFBJQWRBakJCbUVVY21HM3BIZ3NEY1JlYWFibG02NDB4VFFnbU9tajdGZ3ZMN3ZuS0FLZ2ZTNHRUU3d6WWxtODdxUW5BZHhYKzM5Zm91dFNHVkQyaUg1bVR5OE14WHZ2YkxjMkUyeVJZTlNway9Da0YwVnkxU2JQb3RoSi90OE1EMkdFQUU0UkhPallvL2RyaVFOd0Z3SHNPMlRvMTVsVzVDUTdaL2htQ25NaHhsUU9oRmlVckxpMHlaRmNmL0x1SDlXRVdsK2R6dGRpUUhTL0VmUDF2c3JnYzNaSnpERWtsNlh3TEFTNmJtS0FsVDdLQ1pvMEU5anNrYUM3WEFJY0tnTGQ2QUJzQ01FSDRHQURmT0RBb1hSWERRTHdMa2s4TTNvYkFTemVKY25LRUpWbFRXb3BrWWxIM0J2Q1JBL2Y1N1lidE9sZWErZmJYK1A5TXZJdytFYkh2dXdGWW5zQjNNTVB5bnZDbUhBZzN4WmpBWGs0R3NaZ0wxdGt3Z1AwTTJDU0FKY2VzbHhNYWtOWWd1cGQxbUNYWkpGNDZucWNsMFNSTFQrUS9uMnBiS2RvM1Rick1UK2crcndVd3pwSk5WNFo0aHBJR2NJK0krK2RPQWxpQzhESnlnTW9POG8wVzgrdzI1U3g1MTNMQjdnZ0JEZy9nSkFBc2dmZ2FCTUh3NDNvUTdvYVpvQnRoeXBvRUh2ejdISEVTSFp1QTdZMEE5blBFL29reHJ3UThRY0J4cVNRSjRBRlFDeVpTbGdBbUNJTUxOaTVud00vdURUY2JCbStyVkg4TkYreTdJY0hoQVp3a2dBbkNCNUIzcjgwSDRBVUVSemVTS0ZYUUN3MXBXdk1TSG5pbklOa2wyTzg3QXFCdTlBSm84NFZ6SmFJRms2bEVBQjlCRGx5Wm5RREEyZG53aTlKc09IZTVPSzI0dHl2dkZhZnlMR3MzY3NFZTBseHkzaGtCM0pySFljMGRBRXNnUGd4QjhJd3RNRGNEZWh6QlVZTWtCOTB2SE5nSG5KT1EvWmM3NG9RMDFDRVE5YU45V1FHekhzNW53TzJTQklCSElGeE1nSElHY0ZhRHVXQkw2YWhSY3g0SVpKMncwbEkycGVhYzM3ZmxpVFhkekFWYlpDanQ0Vm9Kd0duSkVTeGQ1Z0FlSmdHNFdiSXQ5OGpZQ3k0Qk9GdTZJRGozK0FpQVR6VnY5TFVBbnFSWlY4K0VCNXhqNEpiSDk3T0lIcGhmdGJSSGtLTE9KZnZIT0Fha2RnVE5COGhaU3llYWxRRHdETzF4SDRqeUtCc05mSWM2V1pjdWQramV1eThCQUdmVml3djJJSjN6clNObktaMWw1M3FLLzd5V0N6YVRDOWJGSUtpK1VtaC9XeGtDK0FSNmNTaGwyeDlkQkhCdU9RQ0JOKzFsQUs0SDhBc2EzRzlFa0V4Z0tvTHNSZ01kRzNDR0l3aWdNYzRCWFVqNzdkMWpzcjBqd2VGaVIreS9ISUgzcnN0bFB3U1IzQ2JSZlg0OTNlYzMwK2VyQ2RpRFVaN1JwcDVFRUVSbUZjMkdWMm5xZlFTaFhuVWN4UjRGTUR0aDNRL2cxQVFCTE90UVNsVzRpZ3UyaFdabE8zTFVTRFBmRFpSYitBNHVXRjlMb0ZyQUJkdEliZVhUUmk3WXMyVUlZSERCM2lsaDJ3WXUySnh5QUxDOGw5cVhsdkNHRUpqN3dtNWtveWlsRjRMakwrMGNVUzhBbldPeWZUZjZubloxeFBZT0NNNndsa1BwUkgzdFM3QWRTSityVWQ3bEFnRC9TUzhTWWZRekJLRmFWY3RoQUk1RmtKczhTUTBEc0s4akFNNVZSMXBLN2luOTdGR213TnVwRlZzc1ZDOHZMeTh2SXdEMjhnRDI4dkx5OHZJQTl2SUE5dkx5OHZMeUtpUDVpK0RsNWVYbDVlVUI3T1hsNWVYbHRYUG8vd0dFalNDOXczc1JZd0FBQUNWMFJWaDBaR0YwWlRwamNtVmhkR1VBTWpBeU5DMHdOeTB3TVZRd056bzFORG8wTUNzd01Eb3dNRFh1NjdJQUFBQWxkRVZZZEdSaGRHVTZiVzlrYVdaNUFESXdNalF0TURjdE1ERlVNRGM2TlRRNk5EQXJNREE2TURCRXMxTU9BQUFBQUVsRlRrU3VRbUND"},{"meta":{"name":"logo480x64.png.b64","url":"https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@612b976/media/images/logos/googlegpt/flat/white-green/logo480x64.png.b64#sha256-3qRdGKhF3pojDqVVh/5kODIg7QvYbbLf4zFkEh5xoGc=","ts":1764084296552,"mimetype":"text/plain"},"source":"ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFlQUFBQUJBQ0FZQUFBREN2NlRQQUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk5BQUI2SmdBQWdJUUFBUG9BQUFDQTZBQUFkVEFBQU9wZ0FBQTZtQUFBRjNDY3VsRThBQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBRlZucFVXSFJTWVhjZ2NISnZabWxzWlNCMGVYQmxJSGh0Y0FBQVdJWE5XRW1XcTBnTTNPc1VmUVNRY2lDUFF4blkvZmQ2MmNmdkNDVmdSbGU1M0lzdXY4SVlsTXJRRkJMSVAzLytsci93cHlrRXNZZE51Y3ROYXBPbHJ4UnowQ1pwaWltbmtrWWJWTWZwNit0clVzWDFrZ0t2eEd3eEROYUVJVGZCSU51bElxSExmY2JDYUxrUFl3d0ozMUJvaGtXcU50bW9qVDF5WjMzdUVoYW1nWnVsVmh2K1RvODBadU05NFE1QUU5SkVITmJYRzZ1NEkzbXF3YlV2cmdqckNtMWlGNGJZaUJMY2xQMlNSUjB0NlFBOHJRV0RDc3RXY0syMVpJMFZVd3Y2d0ZYRnI5YXlUdmptc1RVVEhmeGlqMlBDRVNacGMvam9iQjU4bWlBVE5ZU1FEcWFwK0UyYTErV0FUMk05ekpteS8rbVlJYVdqSTY0N0YzNGNpZUtvT0E1MUF5REtsaEVmZWlSM01Bczc4UDRlQlNBZ1ZBaUVwdUtlS3ZBUUpKYjdxUlU0Yk1wd0xGRlZ4MjVqUVFlZjhmcG00ek5FT0RmQjZRQlRPdUJwQ0I2dWJaWllQVlZpaVYwNG9BRUVUUThhTDlWNkN1SVlzVEF5OURRVnUxYkY3Vmx4eFJvR3BPV3NYbDREdnNZTGhjTlJ1VUM3NVJCaVR0VlAzM3ZqV3Jtd2JESWlBYUVwcXNkbWNzdFJRMVJmeldRY0Q4WmhlOG92eVNPLzIvKzh2VHozci9vdjltNVEzUk55Qjh2OTdESWg1QmJEYWZsOWNqQkJKYVdyRW5saEpMTWFmMGUxc2ttNmlGM0tlMnFYTllqYUVTNFhCOVpVaEh0cG1FWXVuOUxqeEVNNzQ4V3RCeWVCZmhydG9oTXNoVkg4cHVWR2ZReWhmbE81czVNS2FHSUFQYWp6RW5hZmVTbjRVVUYxdk40NVh6VTd0VE9IcHFxeWxiTnVzT0Rnek9lVTU2b2JWMDM2YTYycmQ0K3F4WFd6YU9HeVhINnZWaGE5VGhROTRrbzJIS2pPbzFkNGp0WVVQYk5HTU1XS3dXdS9EeVJGbEl0QWJQUzZBaG91clVJSWNQRXUxbHMwZEJsNHFWaUwxQ2hBNEUwZ0VTbHhrWUNHQkdjcmJ0T2wyUm9vYkZFamdjc1NqOUhLQ1FIRGIzbGxyUVdBN0hxYUMxVWtGeFhXV3laMng5Y2hxc1RrVmNySWl3TUhSTUtEWUhTZ2NEa01JVHBGZzJwWnpDNStSRWQvbHRyY2llaHhCM2YxVjVqOXhieUZRcmVpNWhnMlRnNURMRGlpUkNmaWRuUW5RaFJZQ3Z6V3duUEVwVENtZFVRWEpyTlhDMG9XQU9kY3F2bFRUWmlyZkRVZ3pyMXY3bWt1MlQ0bHhadHd0NUJzZXJESGJVU3pwNlYvdk5NdTU3dXRZb21JMmljS050dkxzandDT3RweHFNWGh1Yjd3ay91Z3VnQlRWQjNKcWhPUWdYUSszSzZ5WFFDR0tUaEhtOFRNRTd3ODZCbmJlb1VaamdyVDR6cVpGNWFiaFFneUNuWVpLYlk1QkNXc01lTE14VWJaVFQ2QW5OdjlIQUtUTURGdG1taFAwN2IrOUJrbFNxVU56b3NIOGJtcXZ5M3FPVW5sS2t2ZlRsTFN5SUlnNTBSdmpSdEtlNHVFWlcrUVp3WE9vTGFsNWNGSmpUbjl1b2R3UG5yZFE2YWZ1bDRXMzBOdjY3UEhMOTBPOG5kT3BMV2swcGpvRTdnSDNpRkgwZW1WVmttd3JiTVZRcEtjWk9INHpqT3RHQlRsSTRJZnVUMnZrM21vSFVaMnplOER0OHR1Y0huZHVyZCs0d3I2ak1vcitmdjQ4T1BZM0lkRzNpMEpkei9RZUliRGJBOEREQVd4NGRTYkMvemtGeG1mdWRIdzMwaGk0Qi9RQmhiSHU5RElCOFBETGpUeTI1STRoa2JlaTgxOWFPUTFaZkdNMFFFTFhySVdHVHp6VVhZUW43c29XSjkrTUxmNG1Fa0JOa1BzeHRGaWZVS2JvQlkyN0VkVE5rMDUyczFmL21CK25vdGVacHRjbXVRWVFlNlhiUEEwWjJ1TlhIcWllZDlFV1d6ODFNU1hVWHVIN09TenlmRTVPTXFMeWZFMTJSMEtTdDZycVB1Q2t2Y3E2cjZnNUx1SzB1bHFNdkNIMDkxQUlkdUo0alJ4N0JJenJMbTFlVEJlNC9mdDVIL0hpRWRDbEo4eTRvcmd2NWo4SWRNbDlhanFuRWxzbFpteGxncHZUaStPTHJHbVhJcjFYVkZpMXdVRTNFc25kUCtIeWYrVUZNc3JLdG0vb3pybGpyOVBlK2JPOFNWaXZjTTNtWEo0bGNscHU1cWw5UzJrL0F2VkpzYjhSSTlJSUFBQVlvWkpSRUZVZU5ydGZYZDhWZlg1Ly91ZXUxZnVYdGtoa3hWQ0FwRXB5SWdEVUJCUnFLSzIxbG1zYlIyMXRWOVgxZFpXclZadHJYVnZDaUtncUlnZ2lBZ0lBUUlKa29TRTdPUW11WHZQOC9zajkzTjZrOXg3TTBIc0w4L3JkVitFNU54enptYzk3MmMvTEpxbU1VWmpORVpqTkVaak5FYm5samhqVXpCR1l6UkdZL1REMEpxV3NyRkorUCtZcUxFcEdLTXhHcU14R3FNeEd0T0F4MmlNeG1pTXhtaGc0Z0hnQXlBK3hHaGZJaXZ5ZjFhY3Z4RUtSdjZmQnFCbWlNOVBqanpmRnJuSDJjSVM4cjRkNTNCdWt3R0V6akx1dGpJQVBHUEdqSDVYT0J3TzVPVGs0T3FycjBZb0ZFSk5UUTNrY2prNEhBNHlNakxRMXRhR2lSTW5RaWdVNHJ2dnZnT0h3d0dIdzRIZGJrZCtmajUwT2gyNnVycGdOQnBsTjl4d2c4enI5ZUozdi91ZDRycnJybk5Obno3ZC8vNzc3M3U0WEc1WFNrb0s5dTdkQzRWQ0FaMU9oK1BIajBNbWs4SHY5eU0zTnhmVjFkVlFLcFZJU2twQ1UxTVRiRFlieXNyS29OZnI0ZlA1RW81U0tCVEM3WGJqbm52dVFXTmpJMlF5V2N6ckFvRUEyR3cybGk1ZGl0VFVWSnc4ZVJJeW1RdzhIZy9aMmRsb2JXMUZUazRPbEVvbERoOCtESnFtUVZFVUxCWUxpb3FLb05WcUtiZmJuV2F4V0xLWExGbWlvbW1hdFhIanhxU0ZDeGQ2OUhwOVlPL2V2VjZhcGhzMEdrM1Q5OTkvYiszdTdvWkVJb0ZNSmtOM2R6ZlVhalVxS3l1Ums1T0R1cm82bU0xbTZIUTZhRFFhSERod0FOM2QzYkJhcmVqczdBU2Z6eC8xM2VCMnU1R2RuWTBycnJnQ3AwNmRBb2ZEZ1ZLcGhGQW9CSmZMQlUzVG1EeDVNdHJiMjFGVFU0T1VsQlRZN1hZRUFnRVlEQVpNbURCQjN0blptVVpSVk5hOGVmUDRCdzhlRkxXMnRuS3V2UEpLdTlQcHhLNWR1MHhLcGJKZUlCQTBtMHltME1tVEo2SFg2eEVJQktEVmF0SGMzQXkvM3crZFRvY1RKMDVBSXBGQUpCTEJhRFNpbzZNREhvOEhOVFU5L0lHaUVodHRhSnBHT0J4R1JrWUdKQklKQW9GQXd1czlIZzlVS2hXV0wxOE9nOEdBclZ1M3d1ZnpvYlMwRkVlUEhrVjJkalk4SGc4Q2dRRHk4L1BSMnRvS3VWd09oOE1CTHBjTGg4TUJtcVpoTXBuRXYvNzFyNVZDb1JBUFBmU1FZdno0OGY3VnExZTd2dmppaTBCN2UzdUhRcUZBZTNzN01qTXpRZE0waEVJaFBCNFBPam82ME5MU0FxMVdDNGxFZ3VibVpvakZZcmhjTHJEWmJNeWFOUXRlcnhjS2hRTEhqaDNEbTIrK0NaRklsSEFlZ3NFZ1JDSVJTNlZTVVhRa3lLTnZyQWVMeGFJQ2dVQ0lIbUVRQ0p2Tmh0ZnJoZGZyaFVBZ1FEZ2NIdEUrek0zTnpVdExTOHUzV3EwZE1jQmo4RnlieGNKUWgwYXVweWdLSEE2SGFtaG9hSDdsbFZmYXp5UFEzUXBnUEFBTkFPa29nQVFWbVY4UEFEOEE5U0MvOXhLQXRRRENBTGlSZTV6dFlDSUJnQ1lBQndDc1BvdlBzVVNFRzlaWmZBWU53QWxBTjJLcGhjVmlJUlFLd2VWeWdjL25ReUFRUUtGUUZNamw4cWxTcVRRN0pTVWxMeFFLS2Rsc051dW1tMjVTcHFTa3VJTEJvSGZ5NU1rdU5wdGR6Mkt4YWpJek00K0Z3K0dqTnBzTkpwTUpJcEVJTEJZTDV4dFJGQVdYeXdXMzJ3MjlYby8wOVBTOHRMUzBtVXFsc29UTlp1Y0F5S1pwV3NsbXMxa3JWcXdRY1RnY1h6QVlEQlVVRkhnQk5JWEQ0ZnFjbkp3alFxSHdrTWZqT2VCd09BSjJ1eDBxbGVxOEhHL2ZkUTZId3pDYnpRUWdxZVRrNUptWm1aa1hxRlNxcVZxdGRoeUFqR0F3eUo4eVpRcS9zTENRRXd3R25Wd3VselY5K25RTGdMcFFLSFNheitlWDIrMzIvZUZ3dU5waXNTQXBLV2xBVUQyZnh1OXl1Y0RsY2dFQWFyVjZuRXFsbWlxWHkvTURnVUEyaThYU2hVSWhyRjY5V2lHUlNBS2hVTWlablozdDArdjFEWUZBb0liUDUxZXcyZXdqVHFmVEh3NkhFUTZIQjczdWJyY2JjcmtjQ3hjdUJKZkxUZmc5bjg4SHBWSTVJeWNuNTlwUUtCU09CVVFVUlZGdXQzdFRJQkRZTlpMNVo3UFpDQWFET0hUb0VBS0JBSGc4M3JEdjVYQTRvRmFyazFhdVhQbGNLQlR5ZWp3ZXp5QzFPL0k3c0tJbWhzZ2VMQmFMMWVkbk9vNm14ZHlEeStXeURoMDY5Q0tBVjMvZ3JiY0F3RThCWEJqUlZPMVJvRWxGUUhDNG1pV1pPMm5rdm9PbE1JQUFBQmtBYng4d1AxdGFzQXVBSE1CVkFIWURlQ1lpa0l3bVpVV1VVczVaRkNwWWtVOFNBQTFuSkF5SnBtblk3WGI0L1g2a3A2ZlBuelJwMGxWNnZYNlJYQzdQajJZU1BwOFBGRVdoc0xDUStmK2tTWk9ZUTVLYm13dVh5OVhVMXRhMlJ5QVFiRDF6NXN5SEpwT0pUazlQUDIrQXllZnp3V3cyUTZsVXBoVVhGNitlT0hIaVNxMVdld0ZoeG9UOGZqOW9tb1pZTEVZd0dCU0dRaUZvdFZvQVNBRXdVNi9YWDF0WVdBaWJ6ZFp1TkJxL09IMzY5UHN1bDJ1NzBXaEVWbGJXZVFkR0JIaWNUaWU4WGk4S0Nnb1dsWlNVckVsTFN5dVR5K1dwZmRmSDUvTkJLQlNTbjRWc05odkp5Y2xxQUxrQWtKYVdoZ2tUSnNCa01wVlhWMWQvR0E2SDM2K3NyR3hnc1ZoSVNVazVMNFV1djk4UGk4V0NqSXdNcUZTcWFVVkZSVmZLNWZMTDFHcjFsT2oxRHdRQ0NBYURHRDkrUERNWDJkblp2Y1ZyaTZYRDZYVHVOUnFObjNSM2QyL3E3dTUyT2h3TzZIUzZoSHZkNVhKQnBWSmh4WW9WQTJxWmJyY2JxYW1wYzFKVFUzOHh3UENjTkUzdkdvMHpKaEFJc0d2WExxalY2bUZyd1FxRkFoYUw1ZkNwVTZmK1hWWlc5c1FQdmZaZXIzZjhEL1JvT1lBL0EvaEpSTXVWUi8xTmRoYWU1d1pRTUlUcjc0Z0E3cG9Ja0p3TGlqYjl6UU5RRk5IYWJ3YXdaWlNla1JFeHkwdk93WGhzQUZLSERNRFJtcERINDBGNmV2clAxNjVkdTg1Z01Fd2gxNFJDb1Y2bVB3TFdmcitmK1gvMHoydzJHMGxKU2VsSlNVbHJDd29LMWhxTnhxWlRwMDY5M3RuWitVSkhSMGUzU0NRQ204Myt3Wml2eVdSQ2RuWjJka0ZCd2QwTEZ5NjhtY2ZqY2FJQk54YkZHbXUwMWlDWHl3MXl1ZnlHL1B6OEd6bzZPZzd6K2Z3WExCYkxtNTJkbmFBbzZnY1hQRmdzRmlpS2dzMW1RemdjaGxxdHZtcnk1TWwzYTdYYUdkSHJIQXFGK24wdmV1elI2MDZJeStWQ3A5T1Y2SFM2RXBxbUgrZHl1VzkyZG5ZKzNkVFVWT2x5dWVLNkNuNEl3Y05rTW9IUDV5TXJLMnZWbkRsejFrbWwwZ3M1bko3bEQ0ZkRDQWFEdlFDbjcvaWpmMmF4V0ZBb0ZIcUZRckVxTFMxdGxjZmplVWFwVkw2MWYvLytGNHhHWXoySHc0bTc3bXcyRzRGQUFFYWpjY0IzOTNnODRISzU1dFRVVkFRQ0FjVFJnR0czMjd1OFh1K0l6aFpOMDBoS1NzTFVxVk54OE9CQldLM1dZYnRKV0N3V0JBSUJQdnp3d3o5WnJkYUdxNisrK2owaXlKekw4OEJpc2NEbGNtR3hXS3puZU50cEFEd1BZSGtFNEtLbGUxK1VCa1cwVFNwS294cUtCdWFOL0V0OHlEa0FobXBxdnczQUxnRC9pZ2dJUGdEc3lPZHNhSTZoS08yYmloSkUzZ1JRRCtBU0FKMGpmSVlqYWk0RGtiR01OZ1VpODA0QmNBNEpnS05Oc0ZPbVRMbG14b3daRHl1VnlvSjR6SGl3QnpnWURESS9VeFFGblU2WHJ0UHBIbks3M2IrUlNxVlBOelkyUG1veW1ZaDU2SndjUUFEbzd1NUdTa29LZGVtbGwvNnB1TGo0WGo2Znowb0V1b1BlU1ZGelJWRVU5SHI5dEN1dXVPS050cmEyMjhQaDhPOTI3OTc5VlZKUzBnOGlkSkIzOG5xOXNObHNLQ29xbWxGVVZQU1h6TXpNdVNOWjUxNDdNRW80WTdQWnJObXpaOThJNE1aOSsvWTlhN1BaL3REUzB1SWFOMjdjRHlhRVVCUUZ0OXNOaThXQy9Qejh4WmRmZnZtak1wbHNCdG1qdzFsL21xYjdDYUZDb1ZCVldscjY2K0xpNGw5WFZsWStkL1RvMFllNnVycHNhV2xwQTQ0OTBkOGpmenNuazhkaXNXQ3oyWkNSa1lHU2toTHMyTEVEeWNuSnc5S0N5ZmszR0F3NGVQRGcreUtSaUZxNmRPazdmRDcvbklQd0QwQlBBZmhsSDlEMVJoZzExVWNESEpFeHJ3LzQ2a2NBWFArSmZQZWpDQWdIb2dTRFVUK1dVVCtIb3dRU0dZQ3BBTm9pVnJZekkzZ0czZWQ1WjNzY05HY29US203dXh0eXVWeXpZTUdDbDFKU1VxNGNEVERxZTVpam1aUklKSkplY3NrbEQ5dnQ5cC9zM0xuejl2cjYrbDFFTXp1YnpEY1lES0s3dXh0NWVYbHpsaTFiOXFwVUtzMDdXNUo0T0J4bVRQVEp5Y2tYL094blA5dWwwK21lcTZpbytGVjNkL2M1TjBteldDelk3WFp3dVZ6TW1UUG4wVVdMRnYwZkFjMmgrQ3lIS295dzJXek1uajM3VjRXRmhhcysrdWlqbSt2cTZqN3plcjNuZFB6UmdoZE4wOVJOTjkzMFVuRng4YzNrUFlQQjRLaU5uK3h6bXFiQjUvTlJWRlIwVjA1T3pyV2ZmZmJaYnlvcks5L21jRGdRaVVRSnZ6L0EzK2pCdkFQNWpIVGVYQzRYU2t0TFVWNWVEby9ITTJ3dG1LWnBzTmxzNlBWNkhEOSsvRjArbjg5YXZIangyK2NTaE05eGNTSXRnSDNvaWJ6bFJvRWtoWjdBbzlFa1h4OXo3a2pBbDlCdTlQaGxOMFpwd3B5enBEMUdneGcvU2tnaGZ0dmpBS1lCcVA2eFNGM1VZQTRYVGRPb3JhM0Y1TW1URjkxeXl5Mm5VbEpTcmd3R2d3TkdJWStVL0g0Ly9INC9rcEtTOGxhc1dMRno4ZUxGajFnc0ZyamQ3clBDbUNtS2dzZmpRV05qSThyS3luNzVpMS84WXE5VUtzMGo3M0cyRGorWlk1L1BCNXFtc1dUSmtydHV1dW1tZ3p3ZUw2Vzl2UjAwVFo4VHhzTm1zMkV5bVJBT2gyVzMzbnJycmtXTEZ2MWY5SHVkelhjSWhVTHcrLzJRU3FVcDExOS8vYWNYWFhUUkh4d09CeXdXeXptekJMQllMSFIxZFVHcjFVNWFzV0xGeWVMaTRwdkorRU9oMEZrWlB6RlQrM3crU0NRUzlhcFZxOTY2OXRwcjMzQTRITEJhcldkOTdNUTBQdEtQM1c1SGVubzZTa3BLWUxGWVJuUStDUUJxdFZxY09ISGluZTNidDY4RkFENmZqLytseW4xcldzcm1BbWhHandsWUZBRVRZcUxrbm1YdzFZMEMrQkxhaVI1L3RUVnkvd0I2ZktubmdnUVJqZGlMSHQvdElRRDU1L0d5c3dZTndDd1dDOEZnRUoyZG5iajAwa3Z2V0xObXpRNjVYSzcwK1h4blJSdUt1M01pUUw5Z3dZSUhiNzMxMWkzQllCQit2eDhVUlNYOEVGOE9tODBlOE9BU3M2UFZhc1VkZDl6eHdwSWxTNTZMZnZhNUFvQkFJSUJBSUFDZFRsZDY4ODAzbjVnNGNlSWNvOUY0MWdHUW9paTB0clppNHNTSjJiLzczZStxdEZydFJjRmdFSUZBNEp5YS9zamVtajkvL2g5dnVlV1dkME9oRURvN08wSDhybWR6N2x0YVdqQi8vdndsdi92ZDc0NkxSS0o4bjg5M3pzYlBZckdZc2VmbDVkMXcwMDAzSFVwTlRWWGJiRFp3T0p4K2U1dk5aby80dlVaelhORmFzRXFsd244RG1FZDJ6MGlLM2pzN2QrNDhaeUI4THRaN1RVdlpFK2lKNHVWRkFNc2JBWlBCQUc4WVBUN1I4Q0EvWnhOOENYMFdCY0tDQ0FEN0ltTWI2U2VJeE5IZXZJakc3VVZQUlBleGlHVmgxUFdFVVJvTHM5VTRnd0hmZWZQbS9hNjB0UFNKNFpoaGlTUWN6VUJEb1JEakl4ck1ZU0xNaWMxbW82aW82SEszMjkxWVUxTlR6R0t4VFBFazdYQTRES2xVeWpEMVJCSTVtODJHMCtsRWQzYzNmdmF6bjcyZWs1TnpZemdjSGhMemplUU85Z05LWXVJajh6bVk4Ukt0aTgvbkt4NTU1Skc5Zi8vNzM1Zi85YTkvM1pLVWxEVGlYTXQ0NDI5cmE0TmFyYzYvNmFhYkRyRllMT2xRMXBrSU91VGRvNzhYQ29WQVVWU3ZOUitNRU1KbXN6RjE2dFNmUFAzMDAxbnIxcTJiWFY5ZlQyZGtaQXdydjNNd1pEYWJNV0hDaEZYRnhjWC9HYzQrSjlkR1IwV1RWS1BCbW5tajkwaCtmdjYwL1B4ODQ4NmRPNmM0SEk3S3Z1azlaSjRISTF5ZUsrRXhXZ3YrNG9zdmh1MEw3cXNKcTlWcW5EcDE2aDBlajhlYU8zZnVXMmNqRno0V2lSTDVBRVlHdnMraUo3VW9LUUlhN0FITXpYUVVDRkVSYyt0UVRBelJFM1kyd0xjdkNMK0gzcEhibzBFMC91dS9qcFhyRm0yK0Z3QTRpaDdmOEdpTmxhUmVVWEdlUDFqaVJvRzVua09ZWkN4dHNLV2xCYk5uejc1L3FPRGJsMWtFZzBGWUxCWi9JQkJ3Y2pnY1BwL1BGd3NFZ2w3bXRZRjhqTkdNMStsMEdydTd1OFB4dEFDYXBpRVFDTURoY1BEODg4K2pycTRPY3JrOHByK2FvaWlZeldiNGZENnNYYnYyNVp5Y25CdUR3ZUNBSmtmaXE0b1dMQndPaDQrbTZVYXoyV3hwYjIrM0NvVkNYa1pHaG9ySDR5blpiSGFxUUNEb3Bla05GRWdUQVdIODhwZS8zTnphMnJybzNYZmYzU2tXaXdka3VpUTNlekFDQkp2Tnh1blRwM0hwcFplbVhILzk5VU1DMytoMTl2bDg4SHE5SFRSTmR6VTFOWm1jVHFkWHE5WEtEQWFEQWtDcVFDQ1FrT3NIOHFlU0NPUkFJSURNek15Wnp6enp6TDdycnJ0dWx0MXVIM1NFTkZtYlJBQkE5bmxiV3h2UzB0SldEaFY4aWRCRjlrTXdHSVROWmd2Ni9YNEhSVkVjUHA4dmxVZ2svYzdDUUtCRW5tMnoyWXhHbzlIdjgvbDZ6VFVSVWxRcUZaS1NrZ1lzTm5JdVFUamFGK3gydXhHOTUwZENTcVVTOWZYMWJ3c0VBdVRsNVQwYkRBYTU5Rm1TUENJQ0pkWGQzVzA1QytEN2RCVDR1aVBNbkRNSXB0OVhNM1pIbVBoZzVvQUZRQXpBY0JiQk54cUUxd0RZaEo0MG9hRkdhY2ZTT3FuSWZFWDdmYm5vNzJmbVJnQ1lSbzlQL1VFQTYwWlJBQ0RQdFBVUmdPZ1lZNHlicXg1bGZkN0xpVWg2L1E2MzArbkVMMy81eTUvUG5EbnpUNFBSQmtrd0NRQjR2VjY2cnE3dUs2bFUrdVh4NDhlUEppY25OMVJWVlZtMmJObml5TS9QRjl4MjIyMEtsOHVsTXB2TmhSS0paRzVxYXVvaXBWS1pISTg1aytoSUxwZUxwcWFtamNlT0hWdEZjazM3bmtGeXJWYXJ4U2VmZklKOSsvYWhvS0NBcWVnVUMrUzhYaStlZnZycGgrYk9uWHZ6UU9CTDdrOFlZbHRiVzJWemMvTTJxOVc2cTZHaG9hS29xTWhZVjFlSGwxOStHVmxaV1hqZ2dRZmdjcm1vaG9hR3ZPenM3T2xLcFhLcFZDcGRJWlZLdVFNeCsyZ1FmdkxKSjc4TUJBSTViN3p4UnQzNDhlTVRSaUlIQWdGSUpCSW9GQW9td2p3V2NUZ2NORGMzWS83OCtmeC8vdk9mQjNrODNvRGdHNzNPb1ZBSTFkWFZIemMwTkh6YzJkbTVYNnZWVnVmbTVnWmVldWtsVkZaVzRzb3JyOFR5NWN2UjJOaW9GQXFGaFVsSlNmUGtjdmtWR28xbUtwL1B4MEQ3aXFacEJBSUI1T1hsemZ6b280OCt2T1NTUzFaYUxCWW9sY29CdFQ2LzN3K1B4NU53L0RSTncyS3hZT25TcGZQbXpadTNjYkRneTJhekdlR3h0cmIyVzUvUHQ4dnRkbituMCtsT0h6cDB5TFpwMHlhYlRxZmozbjc3N2ZMNitucWxRQ0NZbUpLU01sTW9GSmFscHFabUR5U0U4SGc4R0kzR0l4OSsrT0ZNTnB2dGwwZ2t2Y1liQ0FUQTUvTkpyam5PRnlKYWNGcGFHcVpObTRiUFAvOGNCb05oMUN3MkdvMEdyYTJ0YjcvMzNudWJIQTRIaDhmajBVTjVOektIOGF3bzBiL244WGhVUzB1TDUrS0xMeDVOOEYwRzRLWW84T1VqZHJBU0hRR3Y2R0FqTy81YkRhb0t3QWtBcDZJMFkxWUM4T1VDZU9jY2JvWFBBV1JHQU4rUDRhY2wwZWhKelVwQlQycldsWkd4Q2lJZ0hJNGhtUENqelBrM0F2Z3JnTWJSMk41Um9Qc3lnTmY2L0kyT2NUM2Q1MmRXRlBoV2dVaGVlcjIrMXlac2JHekVmZmZkTitOWHYvclZ2d2tUVE1Ra0NVTzJXQ3ptOHZMeXZ6YzJOcjVSVjFmWGVNVVZWNkNscFFVU2lZUXA1dUR4ZU54c050dnNjcm5xV2xwYXZtdHVibjRsUFQyZHoyYXpWNVdXbHQ2Wm1wcGF5bWF6R1VZWXJXblcxOWYvNS9EaHc5Zkk1WEx3ZUx5NGgwaW4wMkhIamgzWXZIa3pDZ29LNHZxTnlGanZ2ZmZlUzFlc1dQRndPQndlRUh6SldLdXFxdlljUEhqd0thL1grNG5INDRGQ29ZRGI3UVlBU0NRU3FOVnFLQlFLOFBsOHVOM3VzTlBwUEdXMVdrL1YxZFc5N2ZQNWtxZE5tM2Fyd1dENHJWQW81Q2NDL1dnUWZ1U1JSM1lkUG53NDQ4eVpNMGhQVDQ4THd1RndHRnd1TjY3V1QrNXJzOWxnTUJqdyt1dXZmNkpTcVZJU0JacEZyME1vRkFwLzhza256eHFOeG4vNC9mNDZpOFVDaVVRQ25VN0hQRmV0VmtNaWtSQnQzR3l6MlhaN1BKN2QrL2Z2ZnlROVBmMml2THk4ZTlQUzBpNGRLTHFWNU5xbXBLUmMrZUNERDk1enh4MTNQSldVbE1TWSsyT05pODFtbzdXMU5hSGZuS0lvVkZkWDQ1cHJydEhmYzg4OVh3NEV2alJOZzhQaEVPQU43TjY5K3g4T2grT1ZqbzZPU3FDbndJaGNMa2NvRklMVDZVVGtIYTJ0cmEwTkVvbmtTRnRiMjl0TlRVM0l5Y2xaa3BPVHM2Nm9xT2dTc3MranRWNGVqNGZXMXRaREd6WnNtTTNuOHdOSlNVa3hMVU5rRGthU2hUQmFVZEI5NTkvcGRHTEdqQms0ZnZ3NDdIYjdvTFZnVXNvMkhBNURLQlQyR3pQSkUvWjZ2UzZuMHpta1NPdWhBbkFnRUlEWDZ4MU44TTJPbUdZbEVZQ0lCNzdCeUlkTW1nMUFBNERIQVh3UitmK1BnVHBIU2RzbUVjM3JJL1AxSElEcjhOOHFYRlNNZWVSRXdGa000T0dJeFdFMHFTQWkvSXlZT0FCdyt2UnBoaWsxTlRWaDJyUnBnbnZ1dWVkem9ra01CcENPSERueS9JWU5HeDdzNnVxeVRwMDZGVXFsRW1LeEdCS0pCRHdlRHlTdGdoeEdMcGZMQUJWRlViN3Z2Ly8rbmFxcXFuZVNrNU4vdm5yMTZtZkVZckdVQkZweE9CelUxTlM4LysyMzMvNUVwVkxGQmQ5d09BeWRUb2U2dWpwODlORkhJQVU4WWpFcE5wdU5scFlXWkdWbHlXKzQ0WWF0NU5BTk5GYXYxK3ZZc21YTHVpKy8vUEl0QUpnM2J4NGtFZ2xoREl5dm1RU0JFUkRnOC9rUWlVUnd1VndJQkFKdFI0OGVmZWk5OTk1N1pmWHExVS9uNU9Tc29pZ3E3dk9KVlVJcWxhWS84Y1FUcnk5ZnZ2eW5KcE1wYnRrL244OEhzVmpNQkhURkE2RG01bVk4OU5CRDk2clY2a1dKekpnMFRZUEg0NEhGWXFHeXN2TFRUei85OUs0REJ3NmNuajU5T3JLenN4blFJMk1ucVdJa1FwWUF0MWdzQnAvUFJ5QVErR3JEaGcxZlNhWFNWZGRmZi8wTGZENWZtMGhRSUdsS3ExYXQrdXVPSFRzKy9lQ0REMDZPR3pjdXBtWkZha0huNU9URU5jK1NPdDRsSlNYNC9lOS92d01BWnlEd0pmdThvcUppZlh0NysvM0hqeDl2NFBGNHlNek1oTi92aDFBb1pNWVp2Yy9GWWpIRVlqRllMQmJFWWpGT25qeTViY3VXTGR1V0xsMjZiTW1TSmM5TEpKSU1NblllajRlbXBxWURiNzMxMW15SlJCSW00TnZYaEMwUUNKajFQUi9KNlhReVpUT2JtNXN4V0ZkcU9CeUdYQzVIUzBzTFRwNDhDUmFMQmExV3k2d0xPVXNDZ1FCQ29mQ3NBakNQeHh1MXV1dHJXc3FVQVBaRXdOZVArR2s2UkZzVVJEVGVob2dXZHhSalJNelI2eUxhNTFjUlM0SXZEZ0Q3SWtMT0RXY0JnRWN0QlljREFBYURnVEVwdXQxdS9PRVBmM2dYZ0d5UTRPdCsvZlhYcjZxc3JQeU15K1VpT1RtWktUUS8ySUFqa3ZkbnQ5dXhmZnYyVjdxNnVqNjc3YmJiL2lPWHkyZEZ0TTEzOSt6WmM1MUdvMkcwV2NMY2laK0phTVh0N2UzWXVIRWpsRW9sbzVIRU9taCt2eDlhclJZUFBmVFF1NGtZY0xUSnVhbXBhZS9MTDcrOHVyMjl2VTJuMDRGVUxocXNCaEVOeGtLaEVGYXJ0Zm05OTk2N3VyUzA5QmVYWEhMSkM0bTBRYUtkejVrejU4WjE2OWE5L2RaYmIrMUtTMHVMQ1VKK3Y1L1J3T1A1dlRzNk9yQnk1Y3EwRlN0Vy9DVlJYZUpvOFBuMDAwL3YyN1JwMDErbFVpbkdqUnVIV0FBeDBQZ3Bpb0pVS2tWU1VoSXFLeXMzdlBUU1N6c3Z2L3p5RDdLeXNoYkhzd1NROWVMeitYanNzY2UyVkZaVzVvYkRZZlExelVZL0orS1BqUXZTYlcxdCtOdmYvdlpRZW5yNnBNRUlYalJONDRNUFB2ajVzV1BIWGkwdExVVktTZ29UdFR5VXNhdlZhbGl0VnB3K2Zmcmo1NTU3YnNleVpjdmVLaXdzWEFVQWRYVjErLzcxcjMvTmtjbGtVQ2dVQ0lmRGpDRGpjcmxBVVJRMEdnMEVBc0dvQktORnB4R05GcEg0QzZQUmlFQWdnSXlNakVGLzEyNjNZL0xreVZpd1lBR3FxNnRSV1ZuSldESTBHczJQdVJESC8wWE1zY1NzR3N2bjY0MHlPWHNBL0J6QWhqSE1qVWxIQU53SjRNVW9pNElnRGtnNkFLd0U4T0g1T0JBT2thclpiRGFxcTZ0eDY2MjN6cHM1YythVkEvbk9JbUJSODh3enoxenNjcmthMUdvMVNIclFjQ2djRG9QRDRjQmdNSUNpcU5ZWFhuaGg5dHk1YzcvTnpjMzE3Tml4NHpxNVhBNkJRTUNBR01tZHpNaklnTmxzeHQ2OWU2RldxM0hzMkRHNDNXNm9WS3E0b0VJQXFLeXNiSDUyZHZabDhjeS8wYjVubXFZM2J0dTJiZFdaTTJlUW41OGZ0OFRmVUV4L01wa01RcUVRUjQ0Y2VaSE5adGRkZU9HRm44VURZUkloeTJhemNmZmRkNzhsRUFoUytYeCt6UFFjZ1VDQTl2WjIxTlhWeFRUL2tSenVWYXRXdlpGSTg0OEczNk5IajY3WXRXdlg1cVNrSkZLemQ5ampKOENTbXBvS3U5MXUzckpsUzlsbGwxMzJUbDVlM3JYeFRLTEVDcURWYW5PZWZQTEpPN2R2My82OHdXRG9keTJ4bU96YXRRdXRyYTBRaThYOTd0UGEyb3FTa3BLTUJRc1dQRXcwNWdIRzczcnh4UmNYN2RxMTY4RHMyYk1obDh2UjJ0bzY3TFVuWTYrcHFmRysrKzY3VjdOWXJJMHltU3p2eFJkZm5FTTZVUkd0MysvM3crRndZTnk0Y1FnR2c5aS9mejhXTDE1ODNqYXdJQUtEMFdoa1VwRUd1MC84ZmorNnVycWcwV2lRbjUrUC9QeDhuRGx6QnBXVmxXaHJheU1sYTM5VVFCd3hQZjg4QWdpeGdJSm92aVM2TjRDZXBnQkdqRkVpZWd2QUx3Q1U0ci9sTDZNM0J0R0trOUJUcHZMOEJlRDI5blpHd3I3bW1tdGVKZHB3SXFiazkvdWIzM2pqalduVjFkV09HVE5td0dhenhUMW81RDVtc3hsR281RUJBTGZiRGEvWHk0QVprZXExV2kwcUt5dng2S09QenJyNTVwc2hrVWdnRkFxWjlCeWZ6d2VGUW9HOHZEeGtabWJpbTIrK3djR0RCMkV3R01CaXNaQ1dscGJRL3hjSUJKQ2Ftb3BycjczMm53U1E0cGwrdVZ3dVRwOCsvZm11WGJ0VytmMSs2UFg2VVFzcUlmTTFjZUpFbkRsejV2T09qbzZMMTY1ZHU1M0Q0Y1I4cHloVGRFcFpXZG5QVHA0OCtacE9wK3VuNVV1bFVpYXZOeFlBdGJlMzQvTExMNTlSVUZDd0lORTZFM0RmdEduVDhycTZ1aTFxdFJwT3AzUFVmSWJCWUJBS2hRS3BxYW5ZdEduVGRXdlhydVdscEtTc2lpZkVrWG1mTld2V243cTZ1djdGNVhMOWZkMFJKRStXZ0ZaZk15S0x4VUpUVXhQdXZmZmVGeE81V0tMQTExOWRYVjNhMXRaMlVxbFVnc3ZseGwxL2NoK0x4Y0xzTTV2TnhwZzAvWDQvNHpZZ1kvZjcvWGozM1hldkVvbEVDSVZDME9sMHpENjMyKzFRS3BXWU1XTUdTa3RMVVZWVmhRY2VlQUJwYVdtWU8zY3VqRWJqZVFkR2ZENGZack1aWnJONVdEbTdSTER3K1h6Z2NEakl5c3BDVmxZV21wdWIwZFRVaEk2T0RyUzJ0c0pxdFE0cHdubzRKbWlUeVRRYVUvTG5pSllXaXFQNUJpUGd3WS84bklxekg2bjh2MEovQi9CUDlPVCtCdEE3SUl1S3pDY0h3TXp6ZFFBY0FMajY2cXZSMHRLQ21UTm5YcGFabVprZEQ1Q2ltZElkZDl3eDU5VlhYM1dzVzdlT01hc2wydnloVUFnbEpTV1lObTBheEdJeHRGb3RVNGFReCtQQjZYVENack9odTdzYlhxOFhTVWxKVEtBSmo4ZUR5K1dDeitkRFNrb0tzck96a1pLU3d1UmNoa0loeUdReXFGUXFXQ3dXbkRwMUNvbEtWalkxTldIVnFsVUx0VnB0d1VDQ2h0ZnJiYnpsbGxzdVBYNzhPRXBMUzNIaGhSZkM3L2VQU2xsQ21xYVJscGFHdzRjUDQvang0Nml2ci84aUhBN2ZkTU1OTjd4S05MTjRJSlNkbmYzWTFxMWJYL3YrKysvN01TS1JTSVNtcGliVTE5ZjMrMXNvRklMWmJNYTk5OTc3cDBUQ0J5bjJzSG56NXQvZGR0dHRXOFJpTVM2NTVCTGs1K2ZENFhDTW1xbVN4K05oNjlhdGFHNXV4cTVkdTY1Ky9mWFhLMUpTVWdyaldRRWlJQ1pXS0JUclB2end3MmYwZW4xTUFENTU4aVNzVm11LzlKMjJ0alpjZE5GRitmbjUrVXNTYWI1a2J6MzY2S09MTm16WWNITENoQW1ZT25YcWdCSGlYcThYaFlXRm1EUnBFbVF5R1NaTm1rUUsrME1nRU1CaXNhQzl2UjNKeWNsTTU2aGdNQWcrbncrSlJBS24wd21YeThYazAwNllNQUVrbGNucjlVS3BWT0xRb1VNb0xDd2tndkI1dzB3SWdKSENNUlJGRFZ0WUl6d2pHQXlDdytFZ0xTME5hV2xwYUcxdGhjVmlnY2ZqR1ZMcncrRUFNT2xCUFFMdHR3REF4VkZBMjllcFRQSjdCZWhwdHpkaERIeUhSQjhCZUNPUnNTM3liOXA1RGNBbWt3bWhVQWhsWldWL1NLVDlFbzNvdGRkZXU3eTh2THlwdUxnWW5aMmRPSGp3SUpLVGszdWxSQkFOS2hRS29iMjlIVnF0RmpmZmZETUtDZ29RRG9laFVxbVFrWkdCNHVKaStIdytUSnc0RVEwTkRVaEtTbUo4ZEpHQUpYUjFkU0V6TXhPVEowL0d1SEhqbVB4T0VoMGMzZmFReCtOaHdZSUZrRWdrTVZNMFNMbkJxNjY2NnQ1RUFFUVk4SFBQUFhlWjErdkZyRm16d09QeFVGdGJpNXljSE9aNUl3RWdsVW9GcTlXS0kwZU9vTE96RXlLUkNQLzR4ejllbXpObnptWFoyZGtyWXpGWFlvcVd5V1FHZ1VDd2ZOdTJiWnY3K3RtY1RpZHljM054N2JYWHd1Vnk5ZnFieStXQ1JxUEptanAxNnZ4NFZnSVNkTlhRMFBETks2Kzg4dWVwVTZkQ0lCREFhcldpc2JFUjZlbnBDUVd1d1ppZytYdytYQzRYenB3NWc1cWFHbkE0SExTM3QrUHZmLy83eFU4KytXUTdsOHROR0JTWGw1ZDNYME5Ed3pPTmpZMzl0RndpUE1sa3NsNk1sZ1NFelo4Ly8vNUVwbmNDNHUrOTk5N2RUejMxMUY2aXlZWERZY3liTnk5bUJIWWdFSURWYWtWT1RnN216Sm5EK0Q1SmhvSFA1OE9NR1ROZ05Cb3hkZXBVQklOQlZGUlVvTDI5bmFsMDFkTFNndHpjWE15ZE94Y2xKU1VNOEVacnprbEpTV2h1YnNieDQ4ZHg0WVVYb3FPajQ3elFnb2xBWlRLWmhxMzlEZ1RFRkVVaEpTVUZQLy81ejgvSm1FNmNPREhTVzl3VDBjNW94QTY2OGtXQjd5L1JrMkkwUm9NbmQyVHVaSWlkNmtSRjQ5eDVDOEQ3OXUzRDlPblRjN1JhN2N4RXBsczJtNDBUSjA2OC8rNjc3MjR2TEN5RVVxbUV4V0pCVFUwTlZDb1ZreFpCQW9iTVpqUFMwdExnZERxWk9zc0U0TW1CNG5LNTRQRjRrRXFseU1uSndhSkZpMkMxV3FGV3ErRndPTURsY3JGbzBTSk1uRGlSWVh4RU80cjFub1N4eDJOTWRyc2RtWm1abXZ6OC9JdWp6WWF4bVBCSEgzMzA5MmVlZWVia2hBa1Q0UFA1NEhRNjBkRFFnSmFXRnVUbjV3OHJNSVFJSmlxVkNnY09IRUJWVlJXRVFpSFVhalZZTEJZYUdocHcyMjIzM2ZEUlJ4OHRFWXZGZ2xpUnJxRlFDQndPQjh1WEw3K3RxNnRyczFLcDdQVWVwSnRSWldWbHYxckNiVzF0K05uUGZuWWpBWTFZUklTUEJ4NTRZSFZWVlJYeTgvUGg4L2xndFZwUlcxdUwvUHg4NlBYNllmc2hrNUtTNFBWNjhjNDc3eUFVQ2tHcFZJS2lLR1JrWk9DMTExN3JHRGR1M0gyMzNucnJYK0pwVUtGUUNDa3BLYnFmL09Rbml3NGZQdnlsV3EzdU5iODBUY05nTUREYUphRUlrQW5tejUrL090N2FFK0dqdGJYMTZCTlBQUEZNVmxZVzlIbzlQQjRQVHAzcXlUd29LaXFDVkNxRnhXSmhYQ2g2dlI2QlFBQUtoUUtCUUlDcDNFYTBiQzZYeXdnRmVYbDVBSURTMGxMVTFOVGc2NisvQmdDc1dMRUNDeFlzUUZKU0V2TytzVWdvRktLOHZCeVRKMCtHUUNBNHArVlNFNW1PUjB2N1RhVEJqcVFtKzFES3VYSzVYTVo5TUFLNmtXeTlHTnB2T0FxVWo2QjNYdWtZRFVHZVQ3VGs1L3ZMY3dBZ0l5TURsMTEyMlJyUy96YmVodlQ3L2FIUFAvLzg5Z3N1dUFCS3BSTGhjSmdwTjhkaXNkRFIwY0drcTZTbnA4UHI5WUxINDBFdWw4TnV0L2Z6VlpMbzI3NWF0bHd1eDZwVnE3QjQ4V0p3T0J4R0UwZ0V2SXhESlZKcFNLL1h4elExc2Rsc2pCOC9mdmxBQUJRTUJyM056YzMzM1hERERWQ3BWTDNNVnlRM2RhaFIwT1Q1cE5XZFhDN0h0R25USUpWS21Ybkl5OHREUzB1THE3eTgvTEY1OCtZOUZvOFpBY0M0Y2VNV2FiVmFwY1ZpTVVlbmVvVERZZkI0UEtTa3BQU2FjNXFtSVJRS2tabVp1WElnWmxwZFhmMnlUcWRydmVXV1d4aG1TclFSRG9jRG04M0dyTVZReDkvZDNRMi8zNCtDZ2dJb0ZBcG1QQ3dXQ3dhREFkWFYxWDkxT0J5L2tVcWwrbGo3a1FTalpXZG5YL1BOTjk5ODJYY2R3K0V3T2pzN3dlUHhldTJ2cnE0dXpKNDlld21YeXhYRVczdGk1WG4yMldkdkVnZ0V5TW5KWVZ3Y1dxMFdScU1SbXpadGdzRmdnRWdrd3VUSmt4RUtoU0FTaWVEeitXSjJBb3B1dVJtOWhqcWREanFkRGtWRlJZeFBPQkh3a250SnBkSmVXdkJ3ZmNHam1RYzhVdC92VU4vN1hIeHZKR05ZMDFKMmJVUkRreUoya1F4L1JQdTFBdmp0R0k0T205Zy81cGZuQU1EczJiTXhaY3FVaXdlU1FFK2VQUG1LMVdxMXBhU2s5RFB0a1p5OVFDQ0F0TFEwU0tWU2tHTDJpVFROV015VlhDK1h5d2NOdkgwUFRYSnlNaFFLUlQvdFFLUFJZUExreVFzSW8rNTdUd0kwdTNidGV1WHJyNy8yNWVmbk0wRTEwZU4xdTkydzJXeVFTcVZRcVZTRGVpOVNvV3ZQbmoxb2JtNUdjbkp5UDVBZzc3TnQyN1puWjh5WThTQ2Z6K2ZGQXlFZWo4Zk95TWlZMzlYVnRTbTZCakVKVWlNNXF0RWFvRmdzVGsxTFM1c1lqN2tRSzhNNzc3enp1TTFtZzBBZzZBWGlCSXhiV2xyZzkvc2hsOHNIMWJHSHBtbUl4V0pRRklXMzMzNGJZckVZMmRuWkNJVkN2ZmFTUXFIQTk5OS9qeSsrK09MWmxTdFgvam1SQUpLV2xyWklyVmIzcWt6RjRYRGc4WGlZcU5sb01ocU5VS3ZWUytNeFY1SVNWMTFkL1hWdGJlM1JLVk9tOUlveVo3RlkwR2cwYUc1dWh0VnF4WFhYWFlmMDlIU21SL1pRVW5xaUxUbWtadmxRL0xraWtRaEhqaHhCWVdIaHNMWGcwVXBESXQ4M0dvMjk5c2ovNTdReUFyN2hHQ2JRNk44ZEJiQi9ERWVIUlRMOE42cWNsVUFEOXArdkErQUFnRXdta3lRbEpVMkxlMUdFS1gvMjJXZlBOemMzeDZ3UVEzSTQ1OCtmRDZWU0NZZkRNYUtPU1FPWm1oTnBiNEZBQUdmT25HSEFuQUJjeEcvTUVvdkZzK0lKQlFUSXJGYnJLK1BIajA5WTlwREw1VEp6TTFEZFlYTGQwYU5IWWJmYm9kVnFtVEgySllGQWdLNnVMbGRGUmNXVzB0TFNWYkh1UnpSUnVWdytwNzYrZmxQMG1wQ0tYRXFsc3RkYTJXdzI1T2JtenVWd09Ba0xkTFMydHU3ajgvbE5CUVVGTWNHVlJLb0xCQUtRaWtRRGxVUVVpVVJvYlczRjBhTkhvVkFvSUJLSlluYk1JV2JjVTZkT3ZlbjMrLzlNZk1HeFNLZlRaYkpZckp6cTZ1clQwVFdpSXpXa2V3bGdFYk0xc3JPelp5ZmFPeEZOK2JuTEw3OGNXcTIyMzVwU0ZBV1R5WVMwdERUazUrY3prYklqQWJHaEJsSkZhOEVWRlJXWU4yL2VEeFlSSGUzN3RWZ3MvM010QTBkQUZ4SFdpUDdGKzhudjdBQmVHcHVxWWRQVjZJbCs1aVhDTjR4T0tjcXpCOEIrdjc5SUlwSHc0NVUyak9UTm5yWllMRlVHZzZGWHh4ZkNmSnhPSnpJeU1oaWY3N25vWVVzT3VsUXFUUXFGUXZab2M1akw1Y0xodzRkN1hXK3oyWkNkbloydVVDalNFekZoczluY1lyVmFLM0p5Y2hMNk9VbVpTTFBaREkxR0E1bE1GclB3QjlFSVRwNDhDYVBSaUxTMHRBSHZHd0hDTFFCV3hUTHprcm5OemMwdElwSGw1SGQ4UGgvZDNkM1l2WHQzcjBqUmpvNE9GQlFVVEVta0FRSkFRMFBERnFGUUNKMU9GMWVvb0NnSzRYQVlIbzhIRm9zRkdvMG1ib29PaDhPQnlXUkNaV1VsK0h3KzFHcDFRbUZGbzlIQTZYUjJ0TFMwZkRkdTNMalNXTmNFQWdGd3VWeE1temF0bUtLbzAwcWxrbmt2ajhjRERvZkR1QWlBbmdoaXVWeHVVQ2dVMmZHZXkrVnk0WGE3Zlh2MjdQbmM1WEwxeS9VbDVUdkhqUnVIZ29JQzJPMzJjN3JQRlFxRmpLWnB4akVwRm92eDNYZmZJU2NuQjFLcGRNaWxFMGZEQkUxUkZJTEJJRG82T3M2SzcvZkhTR3RheXQ1QzRvNDVaSUpFQVA0emhxUERJZ0dBQjlCVGJ0S1AvaldoU2Vjb0FOaDdYZ1B3cEVtVDhvaHZNeDUxZG5adVQwOVBoMXF0anRrQUFRQlNVMVBoOS9zVDFWTmVBdUF4L0xjLzVhQk1XL0dZQjUvUEZ3RklxcWlvV0NNVUN2ZEhhK044UGg4YWphYlhtR3cyRzdLeXNpYnplTHlFelF6cTZ1cjJIVDE2RkJxTlpsQ1RHQXFGWUxQWkVBZ0VVRmhZeUlBclNiRWlSVVFrRWduUzA5TUhyUldKeGVLRHBDQkRQQTFUTHBmbmlVUWlYakFZOUJQQnlPLzNReUtSSURjM3Q5ZTFVcWtVV3ExMllpSXRIUUJPbkRqeDNaa3pad1lWaEVKU2d6bzZPc0RuOHpGaHdnUm1Qd1NEUVNhZHpPLzNZL3o0OFpESlpJUHFCaFJKZGRwTDAzUnBJbENTeStVVG85czhFcXVMUUNEb3BabjcvWDVvTkpwc05wdE5KVnI3K3ZyNmZkOTk5NTFiSXBIMEszSVNEb2RodDlzeGUvWnN4TXZWanRBazlLUkhKT3hXTTFpWENwL1A1d0pJL2ZiYmIyOE5oVUtiQ2NnSmhVS1l6V2FZVENhbzFlb2hBL0JvbUtDNVhDNnNWaXRzTnR0b2FiLzNBcmdXUFVVclJwV0dPRTRCZXZKTWh4TWNOVFVDQ3FJNHBsR3lzUTZPNGVpdzZYSDBWQmVqRWJzYkViRXlXQUY4Y2w0RHNFZ2swcE8rcGZFMnJjdmwrcDcwbysxTHBQZy9pWDZPcFdGRkpPME1BRVdqb1JHUVFKY1hYM3p4L3FOSGorNVBUMDlubUsvZGJrZEJRUUd1dU9JS0JBSUI1cDJDd1NEa2Nya21VVXU0U0E3b3laS1NFc2psOGlIMWNRMkZRdEJxdFdocWFtSVlaSHQ3Ty9idDI0ZVdsaGJvZExwQmQ2K0pYTmN5YnR3NGkwNm5VOFFEZm9GQW9Mdnh4aHVUdUZ4dWQzU2dtTVBoZ012bFlrekk1RzlhclZhYlNLdjErLzNoNU9Ua1dsTGZlakJyUVZFVXJGWXJVbE5UbVZRZm9DZmF1YUtpQXA5Ly9qbmtjbm5DSWhaOXFidTdHejZmcjNiY3VIRnhBNzNDNFRDbVRKbGlLQ3dzWko0cEVvbGdzVmp3bDcvOEJkM2QzVXdoa3ZiMmRvaEVvb3hFNXZmSWRaVWFqUWJKeWNuOW5rbjJ0MDZuZzhmalNjVFFGUUJLUmlOUG5PenpOOTU0NDZWLy8vdmZuMlJrWkRBQ250bHN4cFFwVTVqYzdPaGdOb3lzQmR5UVFJM3NnVkh5SlJjRG1IS2U4TWNKdy95ZUFmOE5EdW83S1NIOHQzTFRzVEVjSFJZOWdaNnVVanpFcnk1R1IySGM5dk1hZ0sxVzY3aDRKbEZ5d0xxNnV1bzdPenRqK2l4SjAzVWVqd2VCUUJBWFpGZ3Nsbk9rRW5JMFUzcnNzY2RXN3Rtelo5T2NPWE42TVVtcFZBcXoyWXhYWDMyMWw0blFhRFJpMmJKbHFXVmxaWWlYWXhzSnNITElaTEorVmFRR0E4TDc5dTJEM1c0bllBYWZ6d2UxV2cyUlNEUWtjMlZrRHIwc0Z1czBUZFBUNDRycEFnRjc5KzdkY3FQUjJFMGlvU21LZ3RGb1JHZG5Kek5Ya2NZV25OdHZ2MTBmcnpoK3hNVHFEb1ZDenVqbzVNR01YU3FWb3F1ckM5M2QzYVFERkZOZU5ETXpzNS9iWWlCaXM5a1FpOFYxZzJnbm1QVGxsMTlDSkJJeDYrZnhlSERoaFJmMnFvWHQ4WGlRbXBxYW11aVprZWp4bXR6YzNKaUJkU1FOaHFicGhCWVVZdUVaeVY0bjZWQUE4TGUvL2UwM1R6Lzk5Ti9tekprRExwZkxGTERoOC9tWVBuMDZLSXJxWlhXS1BQZXMyNEZKYnJSY0xvZFlMSWJiN1k1WkduV0lJR3c2ai9pamRSam1ad3FBS3FLQnhRSmdzaTVPQU4rZXc3Rk1SRTlidjc1N2c3eGZMWUF6NXpud1prWXNTMVBSVTJMU2k5aW1mdUlYcGdHOGVqNFBpS1FoOFJNZE1yL2ZqK25UcDNjVUZ4Zkh6YjAxbTgyb3I2OGZzS1BRU0tUa2FQQjk5TkZIbDIvZHVuWEx0R25UR0g4azhjbnE5WHBHUzRrbWtVZ0VxVlE2WU1qeTRjT0h1N1pzMllLVWxKUWh2Mk1vRklKS3BZSkVJc0hFaVJPUmtaSEJtSUtId3BESldEZ2NqajlSWGpaTjA2eDkrL1pwVDUwNmRacWtzYmpkYm1SbloyUFNwRW5NSEVUTXBVS0tvbVNKMXNEbjgzVnYzTGpSUmJydURJVUk0QXFGUXVUbDVTRW5Kd2RaV1ZtWU1HRkN2Mmpud1l3L0VBajRpUWsrMW5mWmJEYU1ScU4rNjlhdFVLbFV2U3dSdDkxMkc3S3pzeGt6ZWlBUWdFd21ZeVdxTlIzcG9tVE56czVHSW9IVVpyUEI2WFFPR1AwOWtnQkVMcGNMRm91RnYvM3RiNys4Ly83N243L2dnZ3NnRm91WlBGaUx4WUtwVTZjaUp5Y0haclA1bkFkZ2tUbFVLcFhZdTNjdlUwVEVZckdNcUU3MStlQS9IdUZja3BLUzhTYUJpdEtFejFXOTU4ZlEwN3dnUEFBV0ZBNEJoRmRHeHNBNmk4SWVIUkZtWmdHNElBTEFrc2pmUEJHUWpUWFBJZlQ0aE1PUnNaL2ZBRXpUZERqUlpveVltQ214V0J6emdFUmF6REdNOG13d2cyancvY1V2Zm5ISjd0Mjd0MCtkT3JWWDBBZEppOG5NekFSRlVmMEFoS0tvaEszUmlMQngzWFhYdGF4Y3VYSlE2VFY5NTRxaUtGUlZWYUdpb2dJVEowNkV4K05obU9aUUFTaVNSODBhYUY0NEhBNkxSR1FUWUpKSUpGQ3BWSEE2bll4Z3dHS3hXSW5HNVBmN29WS3BPcDUrK3VuUWNOYVJYUC9sbDEvQzUvTkJKQkl4Vm9DaDFzK09BQ1ZyRU05azlRMjRJc0pBTk5nT1p1NGpiUXBaTnBzdFpwbERrcVlrRUFqaUJodU5OS2dwZXArZk9ISGlweSsrK09JYnljbkpFSXZGdlZ3cGZENGZKU1VsU05USjZteURyMTZ2eDdGangvQzN2LzBOVXFrVUdvMEdhclVhSnBOcFdDQTgycDJaZmlBS1kvRG0vM001MktRQi91NEhzQUxBTTRPNDF4RUEyVGczaFM0NEVhR0dtRmFpK3lYSG1qOWlrdllCZUFwQTkza1B3T0Z3bUVwMDJDS2FCaXdXUzB6R3hPRnc0SEE0R0xQWVFNWHFoNnNSMERTTmRldldMWDdqalRlK3ZQVFNTM3N4UWRJRnA2R2hBWFYxZFRHZjE5TFNBb0ZBNEpneVpVcENBRzFyYTVOMWRYVkJLQlFPeVdSS3dPN2d3WU1RQ29YWXYzOC9kRG9kRXlBekZNWk1HT3ZjdVhON2dVajBtQWhEdnZEQ0N6dkhqeC9QdkMrZno4ZVJJMGZ3K3V1djk4b3hwU2pLZDhFRkY3aVVTcVVzM2hoY0xwZTBwcWFHMGNBR1M4UVBUSm85VUJTRmp6LytHQmRkZEJIYTJ0cUdIS0FUcVlkTUo3SWFoOE5oR0F5R2pxdXV1b3BwNEU2RUtKTG1GRDEzQXowL0hBNURJQkRRaWVvTUV6OXdySEtVSXdXUmFQQnRhV201M21ReXZaMmNuSXpPems3bVRCSHR0N2k0K0FmUmZza2UxT2wwcUtpb3dPT1BQODdraXE5ZnZ4N1hYSE1OVkNvVlRDYlRzS3JFblE4YThBamZnZmgzcVFSYUhTSHVPUnlXR3oxQllYNzB6a3Ntd1VwZUFJTnQ4YVVkQktDUE5nWHczK3BoZ2dUWEVBM2pGSUEvbnUvU0dnY0FtcHViSGFTK2NTeUd3dVZ5VVZsWm1WWmRYVjBlblcvWjEvU1luNS9QbUlOSGEyTkhNYVhRQXc4OGNORkxMNzIwbC9pOW91L245WHFoMFdod3dRVVh4RzBXWUxQWmtKT1QwOWkzT2xRMG8yQ3oyYWlwcWNuKzdMUFBvTlBwQmkyNTIrMTJwS1NrWU9yVXFhaXJxOE8wYWROZ3Q5dlIyTmlJK3ZwNmRIVjFNV2xLZzJGTWdVQUE0WENZYzhFRkY2VDFDYTdwZmFyYzdrQkdSb1lwZXYyNFhDN0VZakZTVWxJWVVJNk0yU2NTaWRwb21rNk9COEFzRml0bjU4NmRNcWZUYVJ1c0FCSUtoZUR4ZUhEQkJSZkE3L2VqdmIwZDQ4ZVBoOUZvUkdWbEpVNmNPQUd4V0R5a0lLek96azdNbVRNblk5YXNXWEdEcGlJQlg1Ymk0bUlHNExsY0xyeGVMNDRjT1lLVEowOHl2bWU3M1k3eDQ4Y0gwOUxTWWxvalNDNTNaV1dsYnRPbVRVaE9UbzY1ejcxZUw1WXZYNDdjM0Z6WTdmYXpZdUU1ZE9qUXRSUkZ2U2VSU1BydDgwQWc4SU5wditROWREb2RqaDQ5aWllZWVBSVVSVEc1OG1hekdldlhyOGZWVjEvTmdQQlFOT0h6SlgxcEpQUDVmdW9YN2pVdFphRUlHQWdUQURBZndHd0FuNTNqNGJIN0NBZWNPTUpCSXZKRmFjM1VXZGJraVRBemtMQVNqTHdISjJLQ0xzTWdzMjErY0FET3lNZzRFNDh4RWxOZWZuNytPQzZYeTJoVXNiUmswbndoMXFHTEZMaVhrSjhIYzloSUlFb3dHUFNiVEtaWk5UVTE1VHFkcmg4REpaRzN6YzNORUlsRS9Xb0FSNXRZR3hvYTJrdEtTcUxOc3YwWWdFYWp5Zk40UERFTFJTUmlIQWFEQWRPbVRjT1dMVnVZZXNCWldWbFlzbVFKOXU3ZEM2RlEySy95VmR6ZDFGUHBTcWZSYU5JU2FkMkJRS0JwLy83OU5pSUVrZmtnd1hLa0tBZUx4WUxKWkVKTFMwczd5Wm1OdGRaeXVad3ZsVXJITlRZMkhvMTNYVitLbE81a1VwQ09IajJLVUNnRXU5Mk9TeSs5RlBQbno4Zng0OGNISFFsTm9yaHpjbkp5QjJMTXJhMnRaL2J2Mzg5VVRZdk1DVnBiVzVtK3cwQlBWTFZhclc1SWRDOFdpNFhzN095OEN5KzhFTEVFVFJKMFJBcDh4TnJua1loZ1Bva0tIZ3dBUlFkYzdkdTNiM1YzZC9mNmdvS0Nmb0preEVTTzR1SmlaR2RubjFQdE4xcnpKZURMWnJPaFVxa1lTd3pwRTcxKy9YcXNXclVLQm9NQkpwTnAwRzZwQ0k5UWs1OS9hQUNtS0VvK3pGdDBvcWRLa3pBR3FGR1Izd2tqWnR4enJ1QVA4UCtoRUlYem85R0JMd3FrQS9nUnRYUWtHbkJIb25TUFNBM2dxUWNQSG1UNmxmWmwzQUJRV0ZnSW9WRElsT1hyQzM2QlFLQWhFQWdjQ1FhRHZzR0FFSWZENGRqdGRsOTFkZlZkU3FYeWlFYWo2VmVYMk9Gd3dPUHhRS2xVUWk2WG82MnRMZTc5SW9VVFRnVUNBVVpZaUVXWm1abXpNak16d2VmekUvcUJpZGJVMWRXRnhZc1hJejA5SFMwdExkRUhHTUZna0NtTjJOWFZ4WFJ2R2tnQU1abE1LQ3dzbkJ3UlFPSmVaN0ZZNmowZVQwZ2lrVERQNVhLNTZPcnFZdW9oRStydTdvYmRicTlKQlBwY0xoZDVlWG5GVFUxTlI2T2JITVJqVklGQUFCS0pCTVhGeFl3Wm1qQlAwaFRDN1hhanVyb2FYcThYSXBGb1VMNTFzOW1Nckt5czRrVE1tc1Zpd1d3MjEwU3ZFd0d6Z29LQ1h2UHM5WG9oRm91YlNCT1FlR3V2VkNvTCsvcVRZNW1nU2V2QnZrQVJ1YS9aNS9NZDRuQTRvVkFvTkNDREk3bkorL2J0ZTZxam8yTmp0Tm1keEdBNEhBNll6V2FvMVdwY2NNRUZUTTN6Y3dIQTBacnZrU05IOEtjLy9ha1grSkozSU1LSnhXTEJwazJiY1BIRkZ5TXRMUTNCWUJBT2gyTkFJQTRHZy9ENy9ZZERvVkN1N3dmc01CSEpJK2NIQW9HcVlkNmlEVDFsS0JFSGdFbnYyZ3N3UmlPaFVFUUxGMGJOOVkrcW56SUhBQm9iRzA4T1ZQQWhJeU5qY1VOREE2cXFxbUlHTWprY0RqUTJObUw1OHVVOUlrbWZmcTUrdng5ZXIvZFRqOGZ6YWFJODNHZ1NDQVRvN095RXpXWkRXbG9hdytBc0ZndUVRaUUwR2cwbVRKZ0FnVUNBMDZkUG83aTR1RmZxU1YvUzZYUUlCQUxOVnF2VnBORm9WUEdZalY2dm4xeGNYSnpxOFhoYUVxWHMwRFNON3U1dXhrUnF0VnFaZ3ZwOW1iSlFLRVJhV2hwcWEydGhzVmlnVkNyanpuV2tDaFlXTFZwMGNTeE5QWnE2dXJwT1YxVlY5U29hUXBvSDVPVGs5SHFHUUNDQTNXNnZIWWo1akI4L2ZvblJhSHcxVmluRzZIZjArWHhvYW1waXVodjFMVXhCaEtSd09BeWRUZ2ViellhcXFpcW1NRW04ZTBjYUd2QXpNakxtSjlMK3crRXc2dXJxYXV2cjY1a09Rc1FhMDlkUzQvRjRZTFBaYWdPQmdGOGtFdkhpQWJCV3E1MFJEb2RWN2UzdEpwSTZGajBlbjgrSHFxb3FsSmFXTXZmdDY1Y1BoOE5WSG8rbk5KR1FGMDE4UGg4Mm13MHRMUzBnVmdjU1dHWTBHbUczMnpGOStuU1E0aUNabVpuRDhySEcydXVEOWJ2cTlYb2NPWElFVHp6eEJOUE5LOWJZQ0FnN25VNXMyclFKMmRuWm1EaHhJcEtUazJHMVdoT2VlNS9QQjYvWCsxUWdFSGhxc05hbnN3WEFiRFo3SkYybURnSW9JVk1TUzQ0ajJ3MUFCczdqVW9ubktaRkFMQ29Ddm1FQUp2UVV3UGxSOVZQbVJKanBDYWZUYVpQRnNydEZtSXBhcmRZVkZSWE5QWERnd042K0ZhWUFRS1ZTd1dLeG9McTZHa1ZGUmJEYjdiMFlNakhIa2M5Z0R3SnA0OGJqOFdDMVd1RndPREI5K25TVWxwWWlOemNYNDhlUHgrSERoN0ZqeHc1a1ptWmk0c1NKVEtlZVdBekg3WGI3M1c3M2R3QXVqZlhNUUNCQTJpUGV0SG56NWtjeU16UDdqWlV3WWg2UHgvUjdIY2lzN3ZmN0laVktNWDM2ZE96ZHV4ZVZsWlZNbDZlKzVISzVJQktKVUZKUzhwTm9rMWdzTTFsTFM4dWg2R1lFWkwwb2lvSkVJdW5sUDQxb1U5K1FJS0pZQWdCTjA4ak16RnhtTkJybHg0NGRzOFlTS0VncVRrcEtDbmc4M29CTW5OUzhOaGdNNEhBNEtDOHZqOWsxaU55N29hRUIxMTU3N1FxSlJDSk9rRk9PN3U3dTdzN096dThsRWdremZtS0tKeFlCOGw0aWtRaHV0OXZTM2QzOWZYcDYrcFI0YTgvbGNsbEpTVWtyOSsvZi8zSkdSa2JNdGErdnI0ZmRic2VpUllzWXphMlBDWnI1RExhUUMwbmZJaTA2U2Z2SGVmUG1JU1VsQmJObnowWmpZeU9lZmZaWlhIamhoUmcvZmp5NnVycEdCTUlEVmNLS05qdVhsNWZqVDMvNlUwTHdqUVpoc1ZpTVlEQ0krdnA2ZlBmZGQxaTBhQkV1dXVnaXRMZTN4OVhjQ1k4WXJPbitiQUx3U0lMcDNrLzk0cTQxTFdXWG95ZHRKdFpBeUdIbEE3Z1p3Qi8rQndGeTFKWWpTdHNsV201MFZMUWR3T2NBYmdOZytiRk5GQ2RpbnZOYkxKWURNcG5zNG5pbUlUYWJqUlVyVnR4eit2VHB2WDM3NEJKVFkxSlNFam82T2xCYld3dUR3UUEybXozb29LTjRoNWltYWRUVjFlSE1tVE1vTGk3R3RHblRVRkpTQXFGUXlLUzRCQUlCaU1WaW5EcDFDcG1abWREcGRISEw4dEUwRFlmRDhYVThBQ1pVVkZSMDF4Lys4SWRIamh3NTBxdDJNWnZOaHMxbWc4L25RMWxaR2ROcWNTQkdTd3BFeUdReUZCVVZNUVVNQ0FpVDc3UFpiRFEyTnFLa3BHU2xRcUhReGdNZ29sMVZWMWZ2c2xxdHZaN3ZkRG9oRW9tZ1Vxa1lIekRRVXpzNEVBaFV1ZDN1TnFsVW1weEFBT0VrSnlmZjk4d3p6L3krc0xDd1Z3UnVwQ2dMbEVvbDh2THlHQUFlakxibGNEaVFscFlHbXFiUjNOd010VnJkNi92RTNLcFNxYkJ3NGNKNzRtbi81UHFXbHBhdlQ1OCtIU0k1d05FQVRNQWordDI2dXJyUTJ0cTZKejA5ZlVvc2N5Z1paMGxKeWE4ZmZQREJsdzhjT05ETDJrTTArczdPVGx4eXlTV1lOR2tTMHcwcVhpVzVnZWFFeFdKQkxCWXpLWHcrbnc4V2l3V3RyYTN3Ky8yNDZxcXJHQ0QzKy8xd09Cell1WE1uSmsrZW5EQlhtVFZDOVhpNDRCdjlmVGFiRGJWYURZdkZnbGRmZlJVOEhnK3paODlPQ01ML1EwUkFnWXYvVnIrSzVydStDSkRjQmVDUmlGbjZmNEg4a2ZFS1IvbSs3RDdQOEFHb2lnZ3dsVC9XeWVJQXdLbFRwNUNSa2ZGcFptYm14ZkVPZERnY1JuNSsvdVZxdFRwNzkrN2RkVmxaV1l5bTVYSzVZTEZZY08yMTEwSW9GS0tpb29KcHprQXFZdzFXRStEeitRelRPMzc4T0U2ZE9nV0pSQUtMeFlMUzBsS20vcTNENFFDYnpXYWlYSVZDSVVLaEVMNzg4a3VtRWxNczdkRmtNdUhVcVZOYkgzLzg4VC9GNjdRVENBU2cwV2dVOTl4enoyOGZlZVNSSjBtQUQ0dkZnc3ZsUW01dUxpWlBuc3dFNHd3MnNwYzByUkNKUkpnM2J4NGFHeHR4Nk5BaGFEUWFKby9WWkRKQklCRGd5aXV2L0ZNaUFJcG9nQlZjTHJleHFLaW9Gek1XQ29Wb2FXbkJLNis4MGk4WHVxMnREV0t4K05PeXNyS2Z4L1BKMFRTTmE2Kzk5cDZ2dnZycThkcmFXaGZwK1V4TXJ2UG56MGRxYWlwRUloRmNMbGRNVFRhZVVPWHorWkNSa1FHOVhvL0Rody9EYkRaRHBWSXhBVk0xTlRWWXMyYk5ncHljbkpKNHRaYkpXRTBtMDlaeDQ4WWgybGROR0w5Y0x1OFhrUytUeWVCMnV6Y0QrQ1VCemI3ckV3cUZrSldWVlhETk5kY3NlK3V0dHo3T3lzcGlyZ3NHZ3pDYnpWaTJiQmxXcmx5SjF0WldDSVZDaE1OaFpnNEcydWZSQVlzOEhnODhIZzl0YlcwNGRlb1VRcUVRdkY0dnZGNHZJMGhZTEJhRXcySElaRExRTkEyTlJvUERody9qK1BIam1EUnBFam83TzRjTlpDS1JpRllvRkRIZm1jenhvVU9IOE9jLy94bGNMbmZRNE50M3paT1NraUFTaWZEcXF6MUZpZjQvQWVIM0FLd0dJSTlvaE93NG1oMFh3QjBBbnZzZkdyc0FQWlcrZ2hqZENHa3hnQmIwMUhiK08zcXFkLzJvaVVOOEwwZU9IUGxnOGVMRnp5VUNKVDZmajF0dXVlWHQ5ZXZYeitycTZvSmNMb2ZiN1VZb0ZNTHMyYk9SbjUrUDl2WjJjRGdjbU0xbWxKU1VvTHU3R3phYkRhU09OQ21sUjFFVUUrUkVUTTNCWUJCZFhWMG9MeStIeStYQzl1M2I0WGE3c1hidFd0QTBEYnZkenRTOGphVzlpRVFpMkd3Mm1FeW11RzBFSlJJSkdob2FUcmEzdDU4MEdBd1Q0bWxDTkUxajFhcFZqMzM4OGNldlZGUlVtUEx5OHBoN1gzNzU1Y2pLeXNMUm8wY1pFL1JnaVZnTHVGd3UyR3cyT2pzN3NXZlBIdkI0UEZBVWhicTZPcno4OHN2M2lVU2kzSGhWeGNqdlRwdzQ4WFpMU3d2NjltY09Cb1B3K1h5TVdiYXZYN2EydHZiTnNyS3luOGZ6VVViV21udlhYWGU5Y3UyMTE2NlJ5K1VRaVVRd0dvM1FhRFJZdG13WjZ1cnE0SEs1aHNSQXliVWtQNWZGWXFHaW9nSWRIUjFNQUYxS1Nncm16cDM3Wmp6aEEyQ2lya05Iang3ZFJOTTBrMzlOdmtNYWNSQUxEQ0c1WEk2T2pvNnZuRTVudDBRaVVjZnJzOHhtcy9IYjMvNzJwWmFXbG8rSnY1NlVmNXd4WXdhV0xsM0tOTjhnN2dpU095eVZTcGw5SGkxVUV0TXEwWFJ0Tmh1NnU3dHg0TUFCTkRiMnVBQkpUV2R5Um1JRjYvRjRQTmhzTnV6YXRRdFRwMDVsQklDK0lNL2hjQVpjbUthbXBsQlZWVlZNVndocHIvbmFhNitCeitkRG9WQU1HWHlqenhQcEQwN0t3ODZkT3hkdGJXM0RBbUVlajNkV2dadkZZb0hINHcyNWZHb2ZNL1RlTlMxbDVnZ0F4ekpWOEtLMDRLY0F2SThmbWY4eWdjbVlGVEVOLzN3VUFKaDh2d3ZBQ2ZSVXdQcWZJUTVoYUNkT25PaXNxS2o0ZU1xVUtjdGlnUklwODVlZG5UM3pqMy84NDdwYmI3MzFCYmxjRG9WQ2dkdHV1dzBTaVFRZEhSME00NkFvQ2tsSlNhaXVyb1phclliUDU0UE5abVBBamZSVjlYZzhDSVZDYUd4c2hObHNoczFtdzVrelp5Q1h5eUdUeVNBUUNCSVd6NCttU0hNQ3FGUXFwdmhGM3dQT1lySFExTlNFcjc3NjZybWYvT1FuLzRybHB5UFJ2VHdlai9Qc3M4OStjdFZWVjgzOC9QUFBzV2pSSWl4YnRnd2FqV1pFL1ZjSjAyYXoyYmo2NnF1eGMrZE9ORFEwb0ttcENYZmVlZWZrbTI2NjZjbDRPWjVScVZuWXQyL2Y2NEZBZ09sSjIvY1p5Y25KdlpnNGk4V0NVcW5Fc1dQSHZtbHViajZUbHBhV0ZVL0xESVZDbURadDJ1cEhIbmxrNDY5Ly9lc1BSU0lSTHIvOGNreVpNZ1Urbnc4dWx3dFNxWFRZdVpza25jWmdNT0NERHo1Z1RQTC8rTWMvWGsxT1RrNGwxY05pYVpBQWNQVG8wWGRQbkRqaDBPdjF2ZHdOeEQ5OTVzeVptT3ZhM053TW1VejI2dEtsUzM4YmIyMzhmajhFQWtIeWpUZmUrT0oxMTEzM0N3SSs4K2ZQUjJabUpxeFdLL3grUHdPbWZENmY2VWpVMmRrSmdVREFOSE9JZGxtRXcyRllyVlo4ODgwM1lMUFpTRXRMdzNmZmZRZWxVZ210Vm90QUlEQ29ZaUVhalFiSGpoM0QzcjE3a1phV2hxNnVybDRXa0VqRWNjTE55ZUZ3VUZkWGwweEtydlo5cmxnc3h2NzkrNG5sQ3lNTmlpSWdEQUN2dmZZYWFKckdoUmRlaVBiMjlnSGRWT1RkU0gzdXJxNnVFZGVjSHVoOEVvVmdoUFFNZ0w5R3pMRis5SzliSEIwUnZRSEFvdjhoVXpRZjV6N0grY2NKd0IwZEhXaHNiTVFubjN6eTZKUXBVNWJGMDR5STVycDI3ZHJuT3pzN0QxVlhWeCtVeVdSSVNVbEJSMGRIcjl4SkFtSmNMaGRhclJiZmYvODlObTdjaUpxYUdseDIyV1dvcWFsQlEwTURYQzRYNUhJNUdob2FFQTZIa1p5Y0RMVmFEYVZTeWFTdXNObnNKTHZkYm1lejJSQUtoWEdyRUJGaHd1bDB3bWF6SVRVMWxURk5SNU5PcDBOMWRmVnJmci8vcnp3ZUw2bHZ4SGEwSnFoVUttZmNkOTk5enp6OTlOTy9TVWxKZ1Vna2d0UHBISEdRQ0RGM2Vqd2VyRjY5R2x1M2JzWDQ4ZU9Weno3NzdFN3k3SGphTDR2RndyNTkrMTdadW5Xck9Tc3JDMTFkWGIydThYcTkwR3ExeU1qSTZCY1J6dVZ5WVRhYmNmejQ4WWZTMHRMZWloY29SRFRCMWF0WGI2eXFxaXI0NXB0dnFuVTZIZE5yZVRRMEVJdkZndlQwZE54NDQ0MTQrKzIzOGR4eno2MmJPM2Z1enhJeFBxS1ZyRisvL3JIYTJscTQzZTUrMnI5QUlBRHA1Unl0SFpLNXE2NnVmbXJwMHFXL2pXZnRvV2thd1dBUXMyZlB2dU9KSjU3WTk1Ly8vT2M5VXV6RDYvWDJXeHRpTGs1S1NrSlZWUlcyYmR1R1NaTW00ZnJycjBkall5T09IVHNHa1VnRXNWZ01sOHVGSTBlT0lEOC9IeEtKaEdtWjZYSzVvRmFyRlE2SHcwS3NUZkdxY2ZGNFBIaTlYbnowMFVkWXZudzVhSnJ1TlE2THhRSzlYdDhjeXc4ZVRlUEhqNSthbjU4UGtValViejlMcFZLbTl2UndOZCtCUUJoQUx4Q090UTdFVkM4VUNuSHMyREZZTEJZY1BIZ1FIUjBkL2R3clpLeDloYzdCdUFaaWFjQU5EUTFZdkhqeFNJYjhEd0IvSWNPSnRaM1JVNEdLcENROUZ6RkgveThRRzJNME9BRDIrLzNRNlhUWXZIbno0Y3N1dTJ6MzFLbFQ1OGZTakFpbzh2bDgzSDMzM1Y4Zk9uUm8rdGF0VzQ4M05UVWxOQXVSL0ZLcjFZclcxbFlFZzBHWVRDWUdvSVZDSVpPV1F5UmJrOGtFcVZTS0ZTdFc3Sm82ZGVyVXBxYW1kOXZiMnoreFdDdzdYQzVYaU0xbU14MXcraDVhTHBmTDVIcHl1ZHgrZ1VKaXNSZ05EUTNCTDc3NDRvR2xTNWMrSHcrRXd1RXdnc0VnTHJua2tsOWZmUEhGbmYvM2YvLzM1NXFhR293ZlAzN1VxdmJRTkkybXBpWmtaR1RJcjcvKytnTUFOSW0wUDZMOXZ2RENDMzhJaDhOd09wMzkzc1hsY2tHcFZFSXNGc2NVRkZKU1VyQnIxNjYzWjg2YytZUlNxVXlOSllBUUxaM1A1K09QZi96anZrOCsrYVIwMjdadDlScU5aa2dsT2djeVIzdTlYalExTldIdDJyVTNMVnUyN0huU2FTamVYcUlvQ2w5OTlkWEdyVnUzMW1abFpmVXlQeE4zQ2dCb3RkcVlrZDQ2blE3TnpjM2QzMzMzM2ZPbHBhVjNKaEtPT0J3TzFxeFo4MjRvRkhJMk5qWnVKZnNoVVh0RW9WQUlwOU9KcHFZbXBrKzB4K05CVWxJUzQzSlJxVlJNUFdtSHd3R0tvbEJXVnZiR2hBa1RybXh1YnQ3YzN0NytVVnRiMjVjV2k4VkJvcVA3UGtjaWthQ3RyUTJCUUFDelo4L3U1UXVPOUlPdUp2bnVzV0lVYUpxR1NxV2E2M2E3QlhhNzNadVVsTVNNU1NLUjROQ2hRNml0cmNYa3laTkhsZUVRRUdheFdJd21QRy9lUExTM3QvZXIyMDAwWHBQSmhHKy8vUmFQUFBJSUZpNWNpSEE0ak1iR3huN3pRZ1N1YU1HTDdQK2gxQ0luR25CSFI4ZUl4dnArNmhmMG1wYXl2NkdueHpFL3l1VGMxMS9xaVdqSjE2RW5nT25PTVdqNi93aUFveXNHYmR5NDhXZFRwMDZ0SjlwQkFzYk1tejU5K3FFREJ3NWM2bkE0ZGcyVU9rRDY0NUx5ZXNSUDFqZFZDUURwNHlxKzg4NDdQMUVvRlBNQklDOHY3eGQ1ZVhtL01Kdk56ZDNkM1I5M2RIUnNzMXF0WHppZHpxRGY3MmZBTXZvK1hWMWRxS3FxZ3NWaTZWZUwyT0Z3NFBqeDR5L01tREhqWHJWYW5SNFBoSWpXVDFIVW41WXNXV0w0NUpOUDd1cnU3dTZWZHpzY0lrVTZPanM3a1p1Ym0zL3JyYmR1NTNLNUdmRnltTWwzV0N3V3RtL2Yvc0RKa3llTldWbFpNYTlUS3BVd0dvM1l1blZyM0NDbTJ0cGF5R1N5bnozNDRJTmZ4QXBJNnJQV3Fwa3paeDQxbVV4WG5qNTllbWVpYmtGRFlYSXVsd3N1bHdzTEZ5NjhaOUdpUlg4bDRCRlArQ0NCVHUrOTk5NnRFb2trWm4xcFloM1p2MzkvVEtDTUZPOUFaMmZuL1ZPblR2MDVqOGNURGlTQVhIZmRkVnMyYjk2OGRzZU9IZTlrWldVbExPUkIwelFFQWdFRE1pVFFxbSsvWEJhTEJhdlZpbUF3aUZXclZyMHhmZnIwR3dDZ29LQmdiVUZCd1ZxcjFXcHBiMi9mMXRIUjhaSFJhTnpwY0Roc3hOUk9jdlo1UEI3V3IxL1BuQzBpZkVTS2pkUVhGaGEyS3hRS1E2ejNEQVFDa0VxbGdpdXZ2UEozenovLy9FUFJ0Yjg1SEE0OEhrL2NMbFNqQWNMRTcvejY2Njh6bXJEVDZZUlFLSVJBSUFDTHhjS3hZOGZ3L3Z2dlk5YXNXVXhzaVZhclpXSksrZ0x3YUdyQVhDNTN0RXFOUGc3Z0ZnQ2FpRDh6alA0K1lYNEVoS1VBYmdTUWpCNy82V2lsMVp6QnVXbWNNRWJEQVdDWHl3VUFVS3ZWZU91dHQ4NFVGaGIrOFpwcnJ2bS9lSnBoTkFqZmVlZWRPNDhjT2ZMYkRSczIvRVVxbFNKT0t2R0FHNTVFQ0x0Y0xreWRPblhlNHNXTDMxUW9GQm5SZnJGSTNkazBwVko1UjE1ZTNoMFdpNlVsRkFydDl2djlieDA5ZW5SSFgxQ2tLQXBhclJhdHJhMjlncEtBbnJLUmpZMk5lT3V0dDY3OHpXOStjNWhvUy9HMGZqYWJqWmt6Wi83U1lEQVVIeng0OFBZelo4NVVPcDFPR0F5R0lZK1ZwbWxZclZaWXJWYk1tREhqcDB1WEx2MFhoOFBoSmdKZm92MWFyZFpUTzNic2VHTHAwcVdRU0NReDEwY2dFS0M5dlIxbnpweUpHNkVzazhtd1o4K2VIYlcxdFJ0emMzT3ZpdmRzc3RZcWxTcnBoaHR1K0hMbnpwMFBOelEwUE5MUjBZR01qSXdoKytJb2lvTEg0NEhKWklKWUxOWmNmdm5sejJkbloxOUR0TmQ0NEV2Vzd0TlBQNzBwRkFxWlY2NWNHUk1Fb3dXYmFNR3lyNERTM056cy92ampqMis4OHNvcjF3OUNBTUh5NWN2ZlZxdlZ4YnQyN2ZxTjJXeUdUQ1libGhtZW9pZzRuVTUwZEhTZ29LQ2c0TmUvL3ZXYkJvT2hsTFJSSk5mSTVYS0ZYQzYvYnZ6NDhkZFpyVmFyMiszK3NxS2k0a01XaS9VQkVXSWxFZ25jYmpjT0hUb0VyVmJMdUJ0b21rWkhSd2N1dU9DQ3ZkT25UNzg2WHJSN09Cekc1TW1USDVSS3BkczJiTmp3SGZGYmszdkV5MU1mYlJCKzQ0MDNFQXFGVUZoWUNJdkZndkx5Y3JCWUxMei8vdnZZdlhzMzVzMmJCNVZLbGJEUnkvbEs3NmQrNFZuVFV2WlRBTytpcHp3bDBYWjdiWXNJQ0x2UjAyNXZPWUNaQUpZQktCK0YxOGpFK1ZFeWNveGlBWEIweW81VUtzVS8vL25QQjVjc1diSkVJcEVVeDJPSzBjeXB1TGo0U1Q2ZmY1bkpaSHJnMkxGais0aUdPQmdHUldvR2QzWjJRcTFXcHk5WXNPRDNVNlpNdVRVV1F3Nkh3d3lUWWJGWVVDZ1VxUUN1TzNqdzRBZXhLZ01SY3pSSjc0Z0dDeGFMQmJWYWpWZGVlYVU4UHovL2lTVkxsdncrWHVBVFNjUHkrLzNJek15Y2s1bVplZUxiYjc5OWF2LysvVTkxZEhRWXpXWnpRajhaK1Q3SjhRd0VBbENwVkhNdXUreXloekl6TXhjbEFwOW84QVdBcDU1NjZ0TEt5a3BrWm1haXN6TjIwQ1NielliYjdXYWVHZThhajhlRHUrKysrN29OR3pZczRQUDV5b0hXbXNmalllSENoUStiemVhcktZcDZ1S3VyYTRQRDRjQmdha2FUTlFnR2d4Q0pSTnpaczJldkt5MHRmVWdzRnN0Q29SRGlCWU9SNTNNNEhGUlhWMi82eHovKzhWcFNVaExxNit2anRnT2tLSXJST3VOcFBocU5CcSs5OXRwL0prNmN1REkvUC8vcWdRUVFIbytIT1hQbS9Eb25KK2VTMnRyYSs1dWJtN2VhemVaQkF3Sk4wL0I0UExCYXJaREw1YktGQ3hmK2V0R2lSUSt5V0N3V0VUS2p0YlhvOTVIMzBGV2ZmZmJaMXdDWWdoMUVXN1hiN1V6Rk1mTE9ScU1STzNmdWZIUDY5T2xYeDR2cGlBU2I0WTkvL09QMmt5ZFA2b1JDb1orWXhpMFdTOXhjK3RFRzRVQWdnTzNidDRQUDU2T3FxZ3JkM2QyNDY2NjdJSlBKa0p5Y25MREJ5NDhFaExldGFTbjdPR0ppRnVLL0xmUDZnbkMwT2RvQVlDZDZJbi92QTdCL0dJKytFc0N6NkluRUpoMlB1R093ZDU0QmNIVG5sOVRVVkRRMU5lSHV1KysrK0ovLy9HY0xuOC9uRDhTWVdTd1dKazZjT0EvQU4ycTFlcHRhclg2dHRyYjJTN2ZiYlRlYnpkRHI5WEM1WERBYWpZelp6V3Exd213Mmc4ZmpJVFUxZFg1cGFlbmEzTnpjNjBVaUVTY2NEc2NOUXVxckViMzU1cHMvZWVHRkY3YXAxV3FtRFdFc0VJNWxUaU1Sc3c4Ly9QQURVNlpNbVphYW1scVdTQXNsUU1ubGNqRnIxcXg3aW91TDc2aXFxbnFydkx4OE0wM1RlOTF1dDFzaWthQzF0WlVwUUVCTWcxNnZGd3FGSWkwakkyTmhhbXJxbXF5c3JESUNUSW5BSjlyMCt2TExMNjk0K2VXWEc3S3lzbEJWVlJVWFhJZ1dtT2krWlB6ZmZQT043OUZISDEzdytPT1BIK1B6K1VpMDFpVFFSNmxVVHZqcFQzLzZuL2IyOW1PSER4OSt5MjYzZitKME9tdTlYaTljTGhmYTJ0cWcwV2dZeTRQUDUwTXdHR1NucEtTVVptVmxYVjVRVUhDdFRDWkxpeFk4QmhvL1RkUFZkOTExMThycTZtb1lESWE0WXljQVBKQ2ZtcUlvZEhSMFlOMjZkZGU4L2ZiYjAvVjZmZFpneHE3WDY4ZnI5Zm90alkyTmUrdnE2bDZuYWZwamo4ZlQ3WEE0RUFnRTRIYTcwZG5aQ2FsVXl0Unc3dTd1aGxBb2hFS2hLTTdOelYyelpzMmFtNlJTcVlJVTNrZzBkZ0swZS9mdWZmalJSeDk5bnVTZVI0UDZqQmt6a0plWDE4c2ZucEtTQXB2TjlxbkQ0V2lWU3FVcGZmY0NNWlVEd04vLy92ZWZTaVNTSUtrZVpqYWJHUUhPNi9VeVBhMFQ3YU40Wmw0aUJDWTZ6MFJnc3Rsc2NMbGNVQ2dVdmRwTHhySWVkWFYxOVN1Sk85b21hSnZOTnBxODltNEFjOUZUZXBLTjJQNWdVbHJSRnpGWHl3RE1BZkJwQkppM29TZGF1Z3F4V3dkbUE1Z0M0SnFJOXV5UDNBTVI4T1ZnTERqcS9BUGdNMmZPOU52RUd6WnM2QmFMeFJjKzg4d3pCL3N5NW1ocG5meEx1c05NbURCaHlZUUpFNWFZVENack9Ceitoc1ZpSFZNcWxmVnV0N3Q3MXF4WjFvS0NBb2xJSkZJV0ZoYnEyV3oyVkwxZVAxT3YxNCtMdnM5QURKbkQ0WUROWnVPenp6NTc5SUVISG5nL05UVVZBb0ZnV1A2cXpNeE1ORFkyNHNZYmI3eDAvZnIxSjFRcTFZU0JtQTN4TlFzRUFsRkpTY2x0SlNVbHQ5bHN0bTZYeTFYQlpyUHJWcTllM2FYVDZkcTlYaTlQSXBHa0tCUUt6ZkxseXd1VlNtV2hXQ3ltQ0dNaVRHa3dtdS9CZ3dkL3VXblRwczNFN0p3b1VwZzBISWdYUlJ0TnVibTUrTmUvL2xXaDBXaXUrdFd2ZnJVeEVRaEhDeUZzTmhzR2c2Rm8yYkpsUmNGZzhCbWowWGlTeStXZU1KbE1IVmRmZlhXSFZxdTE1ZVRrYUZVcWxkWmdNS1JtWldXVjZIUzZGSExmdmxwZkl2QU5oVUpkVHozMTFLem01bVpTelN2aG1FZ2U5RUFrRkFweDZOQWhQUHp3dzdPZWYvNzVrM3crWDBHK0YrKzl5RDdQeU1pWW01R1JNZGZwZEhxY1R1ZTNaclA1c0Z3dXI5SHI5ZVlaTTJhWURRYURnS0lvVlU1T2prcXYxeGVscDZlWGFyWGF5Y1FLRTIzSlNTUWtjTGxjSERod1lQM3R0OS8rQ01reDdodXNaREFZQ09EMnNuQzB0clppMTY1ZDkxMXh4Ulh2UnB2Wm80UzY0THAxNithVWw1Y2Z6TXZMWTVvbWtPSXFrYUF5c1VnazRuQTRuTGhkZEVqVnJhanpSMGNBaE9ieitaUkFJUER6ZUR4UG9oN0xRcUdRS1RzYnkzTEI0WEJnczlsZ3Q5c3hZY0tFZVVLaGtNdmo4ZWpCZ09sUStVSUVnS202dXJwYUFBMmpwQVYzcm1rcEs0MEFKeGM5UlNwaXBTWWhBc3loS05DVVJ6NC9CWEJWNURzVUFGY1VjTXNpSnV4UUZPZ1NNQWZpOTlDTkJuL1JHQ1QrQUFBY3krU2FuSnlNOHZMeTd6NysrT095WmN1V2ZSSE5tT05wQ2NSMHhtS3hvRktwNUFDV2FqU2FwWVRSTDF1MmpHR1FwTGxDWHkxd0lJWk1vcTNiMjl1Zi9mcnJyeDhpQmVxSEd5d1NEb2VoVkNyaGNEakMvL25QZjJaY2YvMzFoOFJpY2Y1Z2NqTDlmajhqRU1oa01yVk1KbHNJWU9IVlYxL2Q3NzFKVGVYbyt3NDBWaElZODhZYmJ6eDAzMzMzUGEvWDY2SFg2MGZkSEtmVmF2SHR0OTkrT0dQR2pKL05tREhqdFlGQU9Ob2tUOHpES1NrcEV3Qk0wR3ExR0Q5K2ZOeTVIbXhPTjlEVHBNQmlzWmh2dnZubTB0MjdkNXR6Y25LR3hWQVR6WEZhV2hvc0ZrdkgxMTkvUFgzKy9QbEgrSHgrMGtBQ1dQUStGNHZGUW9sRXNsQ3YxeThNaDhOWXVIQWhVeVBhNy9mMzIrY0RXVmo2Q3BsR28zSGJtMisrdWRwdXQ4TmdNUFJiRTZsVWlzN09Uamlkem41ejYvVjYwZHpjL042RkYxNTR0MEtoS0NiQ1JVU284YTlhdGVxQ1k4ZU9IVnU0Y0NGTUpoTTBHZzB1dXVnaXB1T1R4K1BCNHNXTFA4dkl5SmppOS91SE5lazhIbzg2Y2VMRSttKysrZWJtZUMwZStYdytyRllyN0hZN3d1Rnd2MjVaYkRZYlhWMWQ0SEs1bUR0Mzd1dHo1ODY5OFZ3d3g4T0hEejhKNFA1Uk5FVjNybWtwU3dIUUVlRzlnVGptYUVRMFZYWUVVSDFSd0N5UHVxYnY5eVJSQXBBL0lnVHhFTDhZQnJsT2lERTZmd0NZYUNhcHFhazRjK2JNanMyYk55OWV2bno1anNGb1IzMTlXT1JlYkRhYjhlWDA5WEVOQkVaOVRiR25UcDM2YTBkSHgzMXl1UnhDb1hCRURKbjBlRldyMWFCcDJ2SFJSeDlObno5Ly9wN1UxTlNwQTVtSHlYdVRLa21qUmRGai9lYWJiOWI5NVM5L2VWR3BWSTU0ckltWXZWNnZ4NmxUcDE2MzIrMkJzckt5dDRleTFrTUIxU0V3YmdDb2ZmYlpaeS9hdFd0WDY3aHg0NFpzU2h5c0FLWlFLT0IydSt2Mjd0MWJNbnYyN1AwOEhrODlXS0RzTy9ib1ppT2txTWRRMTRPazBaMDZkV3Jqd1lNSFYwa2tFcVllZWQvT1N4S0poQWtJNnd0Y1FxRVFuWjJkK05lLy9yWDgvdnZ2YnlKN3l1djFXbTY1NVpaNUgzLzg4WWxMTDcyVUVZRHo4dktRa3BMQ3RBNTB1Vnd3R0F5cFNhVFYxREJKcDlQcFNOR2VXRm8raThXS0c4OUFVUlJUZGV5NTU1NzdkTXFVS1pjT3Q3NzhVSWlpS1BqOS9sR3Z1aFFCWVQxNldoWnlJeDlQQkZ5cEJFQ01DQmlIbzZ3UDBRdE9HQkFyOHZ1QjZzTUdJd0tBTVBKdkJZQTNScE8xak1IcklBRTRFVFBRNi9Xb3JhMzk4dEZISHkyOTU1NTd0b3BFSW4wZ0VCaDBDVGx5elVoQUtocVEzbnp6emJ0c050dmZGeXhZTUNMTk41NG03UGY3SFk4OTlsako3YmZmL3Y2VUtWT3VJVzNKem1Yajg4aFk2UysvL0hKMWQzZjNmM1E2SGVQZk94dHBJY1RYbUphV2hpKysrT0tkdzRjUHQvMys5Ny9meU9mekZVTUZrTkVRQnRoc05pb3JLNzh5bVV6TE9CeU9TNnZWbnZYbnltUXkrSHkrMC8vNHh6K0tsaXhaOG5sT1RzNGtFcGs4bExVbmdYd2ozZWZidDI5L2N2UG16ZmRmY3NrbEVJdkZjVFhEVUNpRUV5ZE94QlVVdytFd0RoMDYxQ3dVQ3ErODY2NjdOZ0h3bDVlWGx4dzVjdVRNdUhIalFFcDVwcVNrSUQwOUhTYVRxVmUvWTZmVGFWV3IxUmp1UHVEeGVIQzVYQTdpUys0N1hvRkFnSzZ1TGxnc0Z2VEZlZEtPMGVQeGNLKy8vdnF2WkRMWjdLSHdudUVTU2FrTWphWlUzUitFazlIankxVkhRTkFUQWM1RWZpTTI0dnR3aCtMYjlVV1pxSjBBdmdMd2s5R2V4akY0SFlTZ054aW1ZREFZVUY5ZmYraVZWMTZaL1AzMzMrOGt2cHF6QVFheFRNNThQaDltcy9uMCt2WHI1M3orK2VkL0p6bkVvd20rRkVWQkpCSWhLeXNMTXBtTTNyQmh3K3FYWG5ycFp5YVRxZU5zbHIzclMxd3VGMGVQSHYzME43LzVUVzVGUmNWL0prNmNDQjZQaDdQRUMzck5zMXd1aDhGZ1FHZG41NjdubjM5Ky9CZGZmUEZtb3ViMG8vWHNhSVliQ0FSOFc3ZHV2Zk9wcDU1YUVBZ0VYT25wNmNQcU5EU2NQYURYNjNINjlPbldwNTkrZW5KalkrTTdIQTdubk8xejhpeS8zMjk3Ly8zM1YyL1pzdVYrb1ZESUJIUEZsSjQ1SEhpOVhuUjBkTUJrTXFHN3U3dmZoelJ6ZVBMSkp6LzY0SU1QZnRuUzBySWdGQXFkTVJnTWpMQkEwelJ5Y25MaXRxZzhXOFJtc3hFSUJHQTJtL3Vsc3hFZmRtcHFxbWJ4NHNYbE1wbHNObkg1L0M4MGNIZy85WXRPQUJNQjdFRlAzV1JoUkNIeVluVGIrVVdUUDNKL2Z1UmpRMCsxcnNzalFEeEc1NU1HSEczcWlqUUI3Mzd2dmZjV1hYWFZWZmRNbUREaHozdytuejBZTSsxd0dCSXh3d0ZBUlVYRjN5b3FLdTVyYVdrSkppY254NjN1TTF3U2lVU3cyKzE0Ly8zM21VYmNGUlVWRUlsRXJ5OVpzdVQzdytrQ014TEp1Nm1wcWU2bGwxNnFtelp0R3NyTHkyRzMyd2NWVURYY1p3cUZRcHc0Y1FLZG5aMncyKzN3Ky8xNC9mWFhqWGZkZGRlMnNyS3lHODRGQUVaWlMraU5HemR1L3ZERER4RUlCSmlpQzBNVkJJYnp2c0ZnRUJxTkJpYVRDVHQyN0ZpclVxbDJ6WjgvLzJsRnhIWTYycGFRNk01SWtYMyszc0dEQjM5VlZWWFZGWEdKSk54M3hISXhVRGNxc1ZnTW9WQ0lBd2NPUEY5UVVNRGtqNU5pS0RrNU9VaFBUNGZUNlR5bjRNYmo4ZERaMlFtMzI5MnJyQ1NKVUU5UFQ4OSs2S0dIOXFwVUtzUFpza0w5a0lBZTBZVG5veWRxK2QySUZpdkFmMzNEYkl4TzJwQWZQYVpyRXJ3VlFFOEExMFVBam8zQjRIa093SVE1a1E1RFI0NGNlZXJRb1VPYkZpeFk4RkJHUnNiMWhBRU1KbkJwTUllU1VHVmw1V2VIRGgzNmc5bHNQcEtlbmc2MVdvM3U3dTZ6d2dpOFhpK09IRGtDaXFMUTJOaUlyS3dzMmNjZmYzd29MUzB0NTF5Wm9JbFA4WW9ycnJqemd3OCtFTjU4ODgwM056WTJRcS9YbjdYbms1U0x0clkyMU5iV2dzVmk0ZlRwMC9qOTczLy84MGNmZmZUZnhIVndOcDlQS0JBSVFDQVFDRjUvL2ZWbUZvczFlOU9tVGQ5bVpXVWhLU2xweUZyd2NJTzFTRzZxUXFIQTl1M2JYMjlxYXRweTJXV1gvVUduMC8weUtTbUpUZDV6cEdiUTZIM2UwdEp5NE9EQmd3L3UyN2R2UjJabUpwS1RrK0h4ZUVaTkd5VkFyVlFxd2VQeG1MeC9NcWQ1ZVhuZ2NybHd1OTM5cW5XZFRlM1g3L2YzMG43Sm1qVTNOME11bDAvNTFhOSt0WmZENFVnSEU5RStHdnZ2QjZUMTZERUR2d2xnRm9Da0tPQWxnMmRId0hNd0plaUlyemlNL3daaUVmSkd3UDVYWTFwdjRxMHh3UC9QTFFCSFMreHl1UnkxdGJYMWxaV1ZOM1IyZGo3RjQvRitrWldWdFVxaFVDaWp0V2FhcHBsUHZJM2ZWN054T3AzZTd1N3VEL2ZzMmZQdlBYdjI3TW5KeVVGbVppWjRQTjVaUzhZbi9qV05Sb09hbWhvVUZSVXB0MjNiVnE1UUtESkpVNEp6UlNRbzdQTExMLzk1Y1hHeHI3bTVlZDBycjd5QzNidDNZNmkrME1FQ0VHbmx5T0Z3VUZOVGd5ZWZmUEsyKys2Nzc1L1JjM091aU5RSGYvUE5OL2ZkZmZmZDB5b3FLc3BmZU9FRitQMytRZmNkSG8zOVFGRVVkRG9kUkNLUmVmUG16Yjloc1ZqUFhYWFZWYmNMaGNKcmRUcGRhbC9oZEtCOVRsRlVyM2wwdTkzbzZ1cmFkdnIwNlpkMjdOanhTVnBhR2xRcUZTUVNDVk9aN214YkcwZ2x0L1QwZEZpdDFsNTdKdDU0UnV2WkhBNEhUVTFOVFA5ckl0U1l6V1lVRmhZdW5EbHo1dWNBT09kUytQMkJ3YmdUd0tYb01Vcy9qNTdtREZ6MERxYWlJOW9ySFFIaVdLbGhGUHI3aWowUlhyOEZ3Qzh3OHJhSDBSTVYzZlAzeHg1NHhZa2h4TEFpNHdwSENUTFUyWGpna0RhcldDeUdUQ2FEMys4Lzhmbm5uOSttVkNydm5UaHg0bEs5WG45eGNuTHlUSUZBa0VlS0lmaDhQaWE0aHFTaUVBM0E3WGJENy9lZjZlN3VQdUJ3T0hhMXRiVjliRGFialkyTmpaREpaSkRMNVVQV2ZvYkxQTnJiMnpGanhvenBXN1pzK1M1YVFQaWhLRFUxOVJlcHFhbXA3NzMzM2xxdjErc1lEcEFQbGtLaEVDd1dDK2ZwcDU5Ky9KWmJicm1QL0g0a1BWRkhTb1dGaFlkcG1yN0s1L045ZUM1TTRMSG1rTS9uRTFCc0xDOHZ2OTlvTlA2K3FLam9zcVNrcENVR2cyRU9uOCtmS0pGSVdNQi8wOUtJb0VBcWFBRWd4U3hhT2pzN0Q5bHN0bDN0N2UyZnQ3UzBuSmJKWk9EeitaREpaTERaYkRoWDQ0eFlHekJuemh6SVpMSitoVEtJMXF4U3FWTDZhdXhESmFWU3FaRklKTDJDckVpcW8xYXJaWXJrMk8xMnpKbzE2N1pMTDczMG4rUzZjeVYweFNLTlJxUDlBUjViQldBQmV1cEJQNGlldkY5dWhPbExNSGlUdENQeW5VNEFId0Q0VStSM280a2JuTkhHbGgrWWhGRkNSS0o1SGpXTmhETlNCa1g2NzRiRFlVZGxaZVg3NWVYbDd4Y1ZGY0ZnTUl4enU5MlpEb2NqZC83OCtVcTMyMDN0MjdjdmFmYnMyUzZ4V0J6OC9QUFBiUlJGMVlWQ29UcXoyVnhMaWc2UVF2YkRaVWpFZnp5Y3VyRit2eC9GeGNXQ0RSczIvS2FqbzZOdHVPYXNlRlY0aGxLVkoySnRZSXRFb3VTT2pnNitUQ1p6REhVT2htSTE4SHE5eU0zTjVVZ2trdWFYWDM3NUJvL0g0NHN1dGpLWWQrNWJxQ1Y2M0FOOXYrODFrYjJsTUp2TjRSOVNDQ0pqNGZQNWtFcWxNSnZONGNiR3hrOWNMdGNua1E1ZXFSS0pKTWZsY28xYnRteVpqc2ZqWWNlT0hmTGMzRnh2ZW5xNjk1dHZ2bkVMQklLNnBLU2tNNmRQbi82K3NiRXhMQktKSUpWS0laRklJQmFMUnpXYWY3RGs4L21RbHBZR0ZvdUZ3NGNQOS9NMWt5am9JMGVPN0V4TlRSM3Y5L3VqdFlGQkU0L0hvNzcvL3Z0RERRME5NSnZOL2F4cDBSWHFuRTRuM0c0MzkrdXZ2MzdMWnJQWmg5THdZekM1OVVNaExwZExuVGh4WWx0QlFjRVB0ZlhhQU53VytVd0FzQzZpRldlaXA5Q0dQNFpXeWdmUUR1QTBnQU1BWGdUUWRCYmViVjlFU0FnbXdKWDkrUEhSbnNqY3BTTnhJRnp0ZVFIQWZRNGEweXJQNy9mRDYvWFdtMHltZXFQUldFNVJsTXp2OTdQS3k4dWwwNlpOYzB1bDBtQmpZNk9Ub2loelVsSVM3SFk3MUdwMXJ3NUpJMkdZQk15SEdqaVZsSlFFazhsVXQyL2Z2aU5PcDNQSU9ZQ2pDY0NFUkNLUjN1MTJlNGVpQ1JEUUdNb2M4SGc4aU1YaTBJa1RKejd1N3U1dUNZZkRkRHh3UEZjQXpPUHh1S0ZRU0J1dmx2RVBZcVBpY0JpVHFjL25nOFBoYUxGYXJTM2QzZDJIYUpwV1VoVEZPbmJzbUZRdWwvc3pNek45SFIwZFhwRkkxQ2tRQ0JnZnEwZ2s2dVdML1NHSWdGdDlmWDNNNENzU2o1Q1VsUFJ4YTJ2cmR5TXB4TkhRMEhDeXNiR1JLUjFKMXBuRDRmU3FlaFVJQk9EeGVIYUxSS0pEZnI4L09KeWd1MFRGWTRaeTdyaGNMdFhRME5COG5nRERTZlR1RXl4QWo1K1lDRVNreTFMWE9YcWZOZmpmcGVubjhtR3NIOEswTjBaak5FWmpORWJBbXBheXNVbjQvNWlvc1NrWW96RWFvekVhb3pFNjl6U21BWS9SR0kzUkdJM1JHSTFwd0dNMFJtTTBSbU0wUm1NQVBFWmpORVpqTkVaak5FWm5pZjRmMnFWbHBsVWg5a0lBQUFBbGRFVllkR1JoZEdVNlkzSmxZWFJsQURJd01qUXRNRGN0TURGVU1EYzZOVFE2TkRBck1EQTZNREExN3V1eUFBQUFKWFJGV0hSa1lYUmxPbTF2WkdsbWVRQXlNREkwTFRBM0xUQXhWREEzT2pVME9qUXdLekF3T2pBd1JMTlREZ0FBQUFCSlJVNUVya0pnZ2c9PQ=="},{"meta":{"name":"dark.min.css","url":"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/dark.min.css#sha256-v0N76BFFkH0dCB8bUr4cHSVN8A/zCaOopMuSmJWV/5w=","ts":1764084296553,"mimetype":"text/css"},"source":"cHJlIGNvZGUuaGxqc3tkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6YXV0bztwYWRkaW5nOjFlbX1jb2RlLmhsanN7cGFkZGluZzozcHggNXB4fS5obGpze2NvbG9yOiNkZGQ7YmFja2dyb3VuZDojMzAzMDMwfS5obGpzLWtleXdvcmQsLmhsanMtbGluaywuaGxqcy1saXRlcmFsLC5obGpzLXNlY3Rpb24sLmhsanMtc2VsZWN0b3ItdGFne2NvbG9yOiNmZmZ9LmhsanMtYWRkaXRpb24sLmhsanMtYXR0cmlidXRlLC5obGpzLWJ1aWx0X2luLC5obGpzLWJ1bGxldCwuaGxqcy1uYW1lLC5obGpzLXN0cmluZywuaGxqcy1zeW1ib2wsLmhsanMtdGVtcGxhdGUtdGFnLC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLC5obGpzLXRpdGxlLC5obGpzLXR5cGUsLmhsanMtdmFyaWFibGV7Y29sb3I6I2Q4OH0uaGxqcy1jb21tZW50LC5obGpzLWRlbGV0aW9uLC5obGpzLW1ldGEsLmhsanMtcXVvdGV7Y29sb3I6Izk3OTc5N30uaGxqcy1kb2N0YWcsLmhsanMta2V5d29yZCwuaGxqcy1saXRlcmFsLC5obGpzLW5hbWUsLmhsanMtc2VjdGlvbiwuaGxqcy1zZWxlY3Rvci10YWcsLmhsanMtc3Ryb25nLC5obGpzLXRpdGxlLC5obGpzLXR5cGV7Zm9udC13ZWlnaHQ6NzAwfS5obGpzLWVtcGhhc2lze2ZvbnQtc3R5bGU6aXRhbGljfQ=="},{"meta":{"name":"black.min.css","url":"https://assets.aiwebextensions.com/styles/rising-stars/dist/black.min.css?v=3289404#sha256-CTj6Ndngq+TsPlNpQ6Ej39PQKSDpmxyKUFohhc91ruQ=","ts":1764084296555,"mimetype":"text/css"},"source":"I2JsYWNrLXN0YXJzLXNte3dpZHRoOjFweDtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjExMjhweCAxMDM0cHggIzMzMmYyZiwgNDQzcHggOTE2cHggIzMzMmYyZiwgODQzcHggMTEzMXB4ICMzMzJmMmYsIDQ4OXB4IDIxM3B4ICMzMzJmMmYsIDcyM3B4IDYwcHggIzMzMmYyZiwgNTYzcHggMzIzcHggIzMzMmYyZiwgMTU2MHB4IDkwNHB4ICMzMzJmMmYsIDE4MDJweCA5NDFweCAjMzMyZjJmLCAzMjBweCAxMzQ3cHggIzMzMmYyZiwgMTA5NnB4IDExMDRweCAjMzMyZjJmLCA5MTJweCAxNjI0cHggIzMzMmYyZiwgMTc3NnB4IDEyNDlweCAjMzMyZjJmLCA5ODVweCA1MDdweCAjMzMyZjJmLCAxNDk5cHggMTk1NnB4ICMzMzJmMmYsIDI2OHB4IDMyN3B4ICMzMzJmMmYsIDEwMDRweCAxMTk1cHggIzMzMmYyZiwgMzQ4cHggMTk3OXB4ICMzMzJmMmYsIDE2MDlweCAxNDM2cHggIzMzMmYyZiwgMTE1NHB4IDE2NjFweCAjMzMyZjJmLCAxMzM5cHggMTExOHB4ICMzMzJmMmYsIDE5NTZweCAyNnB4ICMzMzJmMmYsIDk1OXB4IDQ1NXB4ICMzMzJmMmYsIDM5cHggMTgwMnB4ICMzMzJmMmYsIDE1MzBweCA4OXB4ICMzMzJmMmYsIDQxNnB4IDMzNXB4ICMzMzJmMmYsIDQ3MHB4IDE3MzZweCAjMzMyZjJmLCAyNjlweCA1NDVweCAjMzMyZjJmLCA3NjVweCAxNTkzcHggIzMzMmYyZiwgMTY4cHggMTYwOXB4ICMzMzJmMmYsIDEwNzRweCAxNDUzcHggIzMzMmYyZiwgMTk4NnB4IDYxOXB4ICMzMzJmMmYsIDc5N3B4IDEyNDhweCAjMzMyZjJmLCAxOTQ3cHggNDU4cHggIzMzMmYyZiwgMTQ0cHggNjc0cHggIzMzMmYyZiwgMTU2NnB4IDE3MHB4ICMzMzJmMmYsIDM3MHB4IDEyMDFweCAjMzMyZjJmLCAxODk4cHggOTk3cHggIzMzMmYyZiwgMTE4cHggODkwcHggIzMzMmYyZiwgMTU5cHggMTcyOXB4ICMzMzJmMmYsIDE4MjdweCAzMjhweCAjMzMyZjJmLCAyMTdweCAxODgzcHggIzMzMmYyZiwgMzcwcHggMTYwNnB4ICMzMzJmMmYsIDE3NTFweCA2NjBweCAjMzMyZjJmLCAxMTkycHggMTM0MnB4ICMzMzJmMmYsIDU4OXB4IDEyMDRweCAjMzMyZjJmLCAzNXB4IDE0NjhweCAjMzMyZjJmLCA4MjNweCAzMXB4ICMzMzJmMmYsIDcyMHB4IDEyNDhweCAjMzMyZjJmLCAzNTVweCA1MzJweCAjMzMyZjJmLCA4MjJweCAxNjI5cHggIzMzMmYyZiwgOTY2cHggMTQ4OHB4ICMzMzJmMmYsIDE0NXB4IDg3OHB4ICMzMzJmMmYsIDE4MzhweCA0NzZweCAjMzMyZjJmLCAxNzM4cHggMTk4NHB4ICMzMzJmMmYsIDEzNzBweCA1N3B4ICMzMzJmMmYsIDEzN3B4IDEwNzJweCAjMzMyZjJmLCA2MjRweCAxODI1cHggIzMzMmYyZiwgMTMzcHggMTg2NXB4ICMzMzJmMmYsIDE4NTJweCAxMzUzcHggIzMzMmYyZiwgMTg4N3B4IDE3OHB4ICMzMzJmMmYsIDE0MTBweCAxNDUxcHggIzMzMmYyZiwgMTE1N3B4IDc2N3B4ICMzMzJmMmYsIDE0MzFweCAxMjQ4cHggIzMzMmYyZiwgMjAycHggMzQwcHggIzMzMmYyZiwgNDMxcHggMjYzcHggIzMzMmYyZiwgNzUwcHggMTc3MHB4ICMzMzJmMmYsIDEzMTlweCA3NTJweCAjMzMyZjJmLCAxMzQwcHggMTY1MHB4ICMzMzJmMmYsIDEyODFweCA2OThweCAjMzMyZjJmLCA0NjhweCAxNjkycHggIzMzMmYyZiwgMTY2N3B4IDQzMnB4ICMzMzJmMmYsIDUxNnB4IDEyNjVweCAjMzMyZjJmLCAxMTI2cHggMTA0MnB4ICMzMzJmMmYsIDE3MjhweCA4MTlweCAjMzMyZjJmLCA0ODhweCAxODY4cHggIzMzMmYyZiwgODc4cHggOTY4cHggIzMzMmYyZiwgMTE5NnB4IDE5NzZweCAjMzMyZjJmLCA4MTVweCA5MTBweCAjMzMyZjJmLCAxNjU3cHggODI5cHggIzMzMmYyZiwgODAzcHggMTI3MHB4ICMzMzJmMmYsIDE2NDdweCA2ODhweCAjMzMyZjJmLCAxODIzcHggMjAwMHB4ICMzMzJmMmYsIDE4OTZweCAyMjhweCAjMzMyZjJmLCAxODNweCAxODM4cHggIzMzMmYyZiwgMjk3cHggMTA3M3B4ICMzMzJmMmYsIDQ5M3B4IDcxNnB4ICMzMzJmMmYsIDY4OXB4IDEyNDRweCAjMzMyZjJmLCAxOTM0cHggMTE4NHB4ICMzMzJmMmYsIDU3N3B4IDEwNDlweCAjMzMyZjJmLCA1NTNweCAxNTcwcHggIzMzMmYyZiwgMTM3NHB4IDE0MTJweCAjMzMyZjJmLCAxNTMwcHggMTFweCAjMzMyZjJmLCA0MDFweCA5cHggIzMzMmYyZiwgMTI0cHggODcwcHggIzMzMmYyZiwgOTU4cHggMzUzcHggIzMzMmYyZiwgMTA2N3B4IDQwNnB4ICMzMzJmMmYsIDgyNnB4IDE5ODZweCAjMzMyZjJmLCA0MjZweCAxNDQ4cHggIzMzMmYyZiwgMzg4cHggMTcwMHB4ICMzMzJmMmYsIDEwODRweCAxMjMycHggIzMzMmYyZiwgODg2cHggMTY2OXB4ICMzMzJmMmYsIDE0N3B4IDUxMXB4ICMzMzJmMmYsIDcyNXB4IDQ1NHB4ICMzMzJmMmYsIDE0MzNweCAxMjA2cHggIzMzMmYyZiwgNTBweCAxMzM0cHggIzMzMmYyZiwgMjQ4cHggMTg0MHB4ICMzMzJmMmYsIDE2NHB4IDc3OXB4ICMzMzJmMmYsIDI0OHB4IDEzMDNweCAjMzMyZjJmLCA4NXB4IDE4MTVweCAjMzMyZjJmLCAxNDI5cHggMTQzcHggIzMzMmYyZiwgMTNweCAxMzEwcHggIzMzMmYyZiwgNjM5cHggNjU3cHggIzMzMmYyZiwgMTk2OHB4IDI3OHB4ICMzMzJmMmYsIDEzMDZweCAzNDhweCAjMzMyZjJmLCAxODA3cHggNDk4cHggIzMzMmYyZiwgMTYyNXB4IDE0OThweCAjMzMyZjJmLCA2NTRweCA3MzZweCAjMzMyZjJmLCAxNzcwcHggMzcwcHggIzMzMmYyZiwgMTIzN3B4IDE1NzRweCAjMzMyZjJmLCAxMDQ1cHggMTQ4MXB4ICMzMzJmMmYsIDEyNjRweCAyNzZweCAjMzMyZjJmLCAxNTc4cHggMjczcHggIzMzMmYyZiwgMTAwNnB4IDE1ODZweCAjMzMyZjJmLCAxMDhweCAxODEycHggIzMzMmYyZiwgODBweCAxNTYwcHggIzMzMmYyZiwgNjQ1cHggMzY4cHggIzMzMmYyZiwgMTgzOHB4IDU2OXB4ICMzMzJmMmYsIDcxNXB4IDYyN3B4ICMzMzJmMmYsIDc2NHB4IDYxMnB4ICMzMzJmMmYsIDE5MHB4IDE4NjFweCAjMzMyZjJmLCA0MjRweCAxMTY4cHggIzMzMmYyZiwgODUxcHggOTUzcHggIzMzMmYyZiwgMTA5NnB4IDEzNDZweCAjMzMyZjJmLCAxNDE1cHggMTE3MXB4ICMzMzJmMmYsIDM3OHB4IDEzODdweCAjMzMyZjJmLCAyNzBweCAxNjQ1cHggIzMzMmYyZiwgMTM0OHB4IDE3NzBweCAjMzMyZjJmLCAxMzQ5cHggMTk4OHB4ICMzMzJmMmYsIDU0OXB4IDIyN3B4ICMzMzJmMmYsIDY3MXB4IDI0cHggIzMzMmYyZiwgMTU4MXB4IDE0MzBweCAjMzMyZjJmLCAyMTJweCAxOTc5cHggIzMzMmYyZiwgMTkxNHB4IDEwODNweCAjMzMyZjJmLCAxMDU2cHggOTUwcHggIzMzMmYyZiwgNjM1cHggOTg5cHggIzMzMmYyZiwgMTIzNnB4IDU3MXB4ICMzMzJmMmYsIDIyM3B4IDE2MzRweCAjMzMyZjJmLCAxNTY0cHggNzI4cHggIzMzMmYyZiwgMTEycHggOTA4cHggIzMzMmYyZiwgMTUxMHB4IDQ1OXB4ICMzMzJmMmYsIDg4NHB4IDEyODJweCAjMzMyZjJmLCAxMjAxcHggMTk2OHB4ICMzMzJmMmYsIDEzMzZweCA1NThweCAjMzMyZjJmLCAxMDg5cHggOTE4cHggIzMzMmYyZiwgMTU3NnB4IDE4MjhweCAjMzMyZjJmLCA5NXB4IDk5cHggIzMzMmYyZiwgNDIzcHggMjY1cHggIzMzMmYyZiwgMTcxOHB4IDIzMnB4ICMzMzJmMmYsIDEwN3B4IDc4NXB4ICMzMzJmMmYsIDExMDVweCA4NTRweCAjMzMyZjJmLCAxMzcwcHggMTU1NHB4ICMzMzJmMmYsIDQ5NXB4IDQwN3B4ICMzMzJmMmYsIDE0MjZweCA0ODFweCAjMzMyZjJmLCA4MjhweCAxMjI2cHggIzMzMmYyZiwgMTEwNHB4IDIxMXB4ICMzMzJmMmYsIDEwNjRweCAxNDgwcHggIzMzMmYyZiwgMTAyOXB4IDk2N3B4ICMzMzJmMmYsIDE3MTdweCA1MDNweCAjMzMyZjJmLCA0NTJweCAxNDY0cHggIzMzMmYyZiwgMTk0MnB4IDQ1MHB4ICMzMzJmMmYsIDEyMTVweCAxMzEwcHggIzMzMmYyZiwgMzc0cHggNTU0cHggIzMzMmYyZiwgMTU2MHB4IDY5M3B4ICMzMzJmMmYsIDgzcHggMzk4cHggIzMzMmYyZiwgMzg1cHggMTE2NnB4ICMzMzJmMmYsIDE1NThweCA3MDRweCAjMzMyZjJmLCA2NXB4IDM4MHB4ICMzMzJmMmYsIDEzOTlweCAxMTMzcHggIzMzMmYyZiwgODYwcHggMzc1cHggIzMzMmYyZiwgNjQycHggNDQ5cHggIzMzMmYyZiwgNTc3cHggNTc4cHggIzMzMmYyZiwgNjA3cHggMTI5NXB4ICMzMzJmMmYsIDE4NjhweCAzOTBweCAjMzMyZjJmLCAxNjk2cHggMTgzM3B4ICMzMzJmMmYsIDExOTFweCAxMzEycHggIzMzMmYyZiwgNDE4cHggMTM4NHB4ICMzMzJmMmYsIDEyMDdweCAxMDc5cHggIzMzMmYyZiwgMTZweCA2NXB4ICMzMzJmMmYsIDE0OThweCAxOTZweCAjMzMyZjJmLCAxNDY4cHggMTIzOHB4ICMzMzJmMmYsIDE4MTBweCAxNTZweCAjMzMyZjJmLCA3NDRweCA5MjZweCAjMzMyZjJmLCAxOXB4IDE3NjVweCAjMzMyZjJmLCAxNDM2cHggOTA0cHggIzMzMmYyZiwgMTQ3NHB4IDE0NDdweCAjMzMyZjJmLCA4OHB4IDE4MTRweCAjMzMyZjJmLCAxODgxcHggMTE5N3B4ICMzMzJmMmYsIDE1NzBweCA1NDBweCAjMzMyZjJmLCAxOTY1cHggMTUyM3B4ICMzMzJmMmYsIDE0NTVweCA0MnB4ICMzMzJmMmYsIDEzN3B4IDIwOXB4ICMzMzJmMmYsIDExODZweCA0MHB4ICMzMzJmMmYsIDE2N3B4IDE2NzBweCAjMzMyZjJmLCAxNDUzcHggMTI2NHB4ICMzMzJmMmYsIDI4OHB4IDY4MnB4ICMzMzJmMmYsIDEyM3B4IDExOTdweCAjMzMyZjJmLCAxOTcwcHggMTE3MXB4ICMzMzJmMmYsIDE1NXB4IDk5NHB4ICMzMzJmMmYsIDYwMXB4IDUwOHB4ICMzMzJmMmYsIDI5MHB4IDQ1NnB4ICMzMzJmMmYsIDQxOXB4IDE5NTNweCAjMzMyZjJmLCAyNzNweCA3NHB4ICMzMzJmMmYsIDEyNjJweCA0NjBweCAjMzMyZjJmLCAxNjExcHggMTM5NnB4ICMzMzJmMmYsIDE1NzZweCA1OHB4ICMzMzJmMmYsIDk5NXB4IDE1MTRweCAjMzMyZjJmLCAxMDM5cHggMTIyOXB4ICMzMzJmMmYsIDgxN3B4IDE1MjNweCAjMzMyZjJmLCAxNTk4cHggNzQ4cHggIzMzMmYyZiwgMTM2OHB4IDE3NjRweCAjMzMyZjJmLCA5NTlweCAxNjg4cHggIzMzMmYyZiwgMTI3N3B4IDMxMXB4ICMzMzJmMmYsIDE2NTFweCAzMTlweCAjMzMyZjJmLCAxNzE5cHggMTM5MnB4ICMzMzJmMmYsIDE0NDlweCAyODJweCAjMzMyZjJmLCAxOTY5cHggNzU2cHggIzMzMmYyZiwgNDU4cHggMTg2cHggIzMzMmYyZiwgODU3cHggOTc2cHggIzMzMmYyZiwgMTU1OHB4IDQyNHB4ICMzMzJmMmYsIDEzMTRweCAxMTI2cHggIzMzMmYyZiwgMTAxMHB4IDY3MHB4ICMzMzJmMmYsIDU4NHB4IDE0N3B4ICMzMzJmMmYsIDUwN3B4IDE5NXB4ICMzMzJmMmYsIDg4M3B4IDY2OHB4ICMzMzJmMmYsIDIwMDBweCAxMDUycHggIzMzMmYyZiwgMTUzMnB4IDEyNTdweCAjMzMyZjJmLCA5MTlweCAxNDEycHggIzMzMmYyZiwgMTA0OHB4IDE3MjJweCAjMzMyZjJmLCAxNjY5cHggNzI4cHggIzMzMmYyZiwgMTQzM3B4IDM4MnB4ICMzMzJmMmYsIDE0MDRweCA2OTRweCAjMzMyZjJmLCA1OTFweCAxNDkycHggIzMzMmYyZiwgMTI4M3B4IDkyNHB4ICMzMzJmMmYsIDU5cHggMTI0NHB4ICMzMzJmMmYsIDE0NjVweCAxNjg2cHggIzMzMmYyZiwgNDA0cHggMTg0NnB4ICMzMzJmMmYsIDE1MzRweCA3OTlweCAjMzMyZjJmLCAxMzAwcHggNDA5cHggIzMzMmYyZiwgODUxcHggMTExOHB4ICMzMzJmMmYsIDIxNnB4IDY1NnB4ICMzMzJmMmYsIDQzMnB4IDExNjJweCAjMzMyZjJmLCA1NzdweCAxOTU3cHggIzMzMmYyZiwgMjc4cHggNzQ5cHggIzMzMmYyZiwgMTMzcHggNDEzcHggIzMzMmYyZiwgMTUyNHB4IDgwNnB4ICMzMzJmMmYsIDE2MDBweCAzNjBweCAjMzMyZjJmLCA0MjZweCAyMHB4ICMzMzJmMmYsIDgzNXB4IDc0NnB4ICMzMzJmMmYsIDE2MjZweCA0NDhweCAjMzMyZjJmLCAxNDk2cHggMTNweCAjMzMyZjJmLCAxMDg5cHggMTM1NnB4ICMzMzJmMmYsIDk0NnB4IDUxNHB4ICMzMzJmMmYsIDE5NDRweCAxMTIxcHggIzMzMmYyZiwgMTg3MXB4IDU5NHB4ICMzMzJmMmYsIDg5OHB4IDYzM3B4ICMzMzJmMmYsIDY3MnB4IDEwODJweCAjMzMyZjJmLCA0MjlweCA0M3B4ICMzMzJmMmYsIDEyOThweCAxNzA1cHggIzMzMmYyZiwgMTgxMHB4IDE1MDFweCAjMzMyZjJmLCAxNjg3cHggNDEzcHggIzMzMmYyZiwgMTkwMnB4IDY4N3B4ICMzMzJmMmYsIDE2NDlweCAxMzM1cHggIzMzMmYyZiwgMTI3OXB4IDU5MnB4ICMzMzJmMmYsIDE0OTlweCAxMzcwcHggIzMzMmYyZiwgMTY0MnB4IDU1NnB4ICMzMzJmMmYsIDUwNnB4IDQ4OXB4ICMzMzJmMmYsIDg3NnB4IDExMzVweCAjMzMyZjJmLCAxNjg1cHggMTcxOXB4ICMzMzJmMmYsIDE3ODhweCAxMDYxcHggIzMzMmYyZiwgMTQ3MnB4IDE1MTdweCAjMzMyZjJmLCAxODNweCAxNDkwcHggIzMzMmYyZiwgMjM2cHggNjY3cHggIzMzMmYyZiwgMjYxcHggMTQ5N3B4ICMzMzJmMmYsIDg0MnB4IDEzOXB4ICMzMzJmMmYsIDY0N3B4IDcwOXB4ICMzMzJmMmYsIDE0MzBweCAxNDBweCAjMzMyZjJmLCA0MjFweCAxODU1cHggIzMzMmYyZiwgMjAzcHggMTI5cHggIzMzMmYyZiwgMTY4cHggMTQycHggIzMzMmYyZiwgMjY0cHggNDkycHggIzMzMmYyZiwgMTM2NnB4IDIwNHB4ICMzMzJmMmYsIDY3M3B4IDEzNjFweCAjMzMyZjJmLCAxNzM5cHggMTA2N3B4ICMzMzJmMmYsIDE5MzVweCA2OTlweCAjMzMyZjJmLCA5NzBweCA1MTJweCAjMzMyZjJmLCAxMTkxcHggODI4cHggIzMzMmYyZiwgMTkzMXB4IDEyNTZweCAjMzMyZjJmLCAxMzA1cHggMTAxOHB4ICMzMzJmMmYsIDE3MTJweCAzNDdweCAjMzMyZjJmLCAxNzAycHggOTQ2cHggIzMzMmYyZiwgNTI3cHggMTIwMHB4ICMzMzJmMmYsIDE4N3B4IDU5MnB4ICMzMzJmMmYsIDc1NHB4IDgwMnB4ICMzMzJmMmYsIDE3MjhweCA2ODBweCAjMzMyZjJmLCAxMTAwcHggMTUyMHB4ICMzMzJmMmYsIDQ4MHB4IDE3NDBweCAjMzMyZjJmLCA3NzFweCAxNDg4cHggIzMzMmYyZiwgMTMzMHB4IDY3OXB4ICMzMzJmMmYsIDgyM3B4IDE5MDhweCAjMzMyZjJmLCAxNDM0cHggNTZweCAjMzMyZjJmLCAxNTEwcHggMTE3MnB4ICMzMzJmMmYsIDEyMDdweCA0OTZweCAjMzMyZjJmLCAxNTA4cHggMTk3MHB4ICMzMzJmMmYsIDQ5NnB4IDY5OXB4ICMzMzJmMmYsIDk0MnB4IDExNnB4ICMzMzJmMmYsIDEzMjRweCA0MnB4ICMzMzJmMmYsIDEwMDlweCAxODE1cHggIzMzMmYyZiwgMTA2MnB4IDE2OTRweCAjMzMyZjJmLCAxODc3cHggMjAwMHB4ICMzMzJmMmYsIDk0NnB4IDQzOXB4ICMzMzJmMmYsIDE5MTZweCAxMzc1cHggIzMzMmYyZiwgMTgzNnB4IDM0OHB4ICMzMzJmMmYsIDk5N3B4IDU1N3B4ICMzMzJmMmYsIDE3MjRweCAxMTc3cHggIzMzMmYyZiwgMTUzNHB4IDI2NnB4ICMzMzJmMmYsIDU2OHB4IDgyNXB4ICMzMzJmMmYsIDE3MTlweCAxNjgycHggIzMzMmYyZiwgMTYwNXB4IDMzN3B4ICMzMzJmMmYsIDk2OHB4IDEzNTRweCAjMzMyZjJmLCAxOTQycHggMTM0MnB4ICMzMzJmMmYsIDM0NHB4IDE1OTZweCAjMzMyZjJmLCAxMTNweCAxOTk4cHggIzMzMmYyZiwgOTYzcHggMTA5NXB4ICMzMzJmMmYsIDQ2MHB4IDEzODZweCAjMzMyZjJmLCAxOTg2cHggNjk0cHggIzMzMmYyZiwgMTkwMXB4IDQ2N3B4ICMzMzJmMmYsIDE5NzBweCAxMzM4cHggIzMzMmYyZiwgMTIwcHggNzA2cHggIzMzMmYyZiwgMTc2MXB4IDE5MTJweCAjMzMyZjJmLCA3ODhweCAxMTc3cHggIzMzMmYyZiwgMTAxMnB4IDExNzNweCAjMzMyZjJmLCAxOTY4cHggNTM4cHggIzMzMmYyZiwgMTU1MnB4IDcyN3B4ICMzMzJmMmYsIDI3M3B4IDEyNzVweCAjMzMyZjJmLCA5NnB4IDY1OXB4ICMzMzJmMmYsIDExNTdweCAxNjIzcHggIzMzMmYyZiwgMTMxNHB4IDkyMXB4ICMzMzJmMmYsIDQ5MnB4IDE5OTZweCAjMzMyZjJmLCA1N3B4IDE5NThweCAjMzMyZjJmLCAxOTRweCAxNzU5cHggIzMzMmYyZiwgMTU4cHggMTk3MXB4ICMzMzJmMmYsIDE5NjRweCAyODVweCAjMzMyZjJmLCAxNjQzcHggNjQ3cHggIzMzMmYyZiwgNTA0cHggMTY0NHB4ICMzMzJmMmYsIDQ1N3B4IDE2OTVweCAjMzMyZjJmLCAxMTI5cHggNjgycHggIzMzMmYyZiwgODEzcHggNTE2cHggIzMzMmYyZiwgMTg2MnB4IDMzcHggIzMzMmYyZiwgMjgwcHggMzZweCAjMzMyZjJmLCA1NjBweCAxMTc0cHggIzMzMmYyZiwgNzMycHggNDE5cHggIzMzMmYyZiwgMTQyMHB4IDMzNnB4ICMzMzJmMmYsIDQ0NHB4IDE4NDlweCAjMzMyZjJmLCAzNTRweCAxOTE5cHggIzMzMmYyZiwgMTIxNXB4IDQwOHB4ICMzMzJmMmYsIDUyN3B4IDEyOHB4ICMzMzJmMmYsIDE0OTRweCAxNTMxcHggIzMzMmYyZiwgMTQ3NnB4IDc1OHB4ICMzMzJmMmYsIDYyNXB4IDIzOHB4ICMzMzJmMmYsIDY2OXB4IDIwOXB4ICMzMzJmMmYsIDE5MDFweCAxMDFweCAjMzMyZjJmLCA4NDlweCAxOTA3cHggIzMzMmYyZiwgMzU5cHggMTQ2NXB4ICMzMzJmMmYsIDE4NzZweCAzODNweCAjMzMyZjJmLCAxODdweCAxMjgzcHggIzMzMmYyZiwgMTk1NXB4IDE1MDRweCAjMzMyZjJmLCA2MDFweCAxMTU3cHggIzMzMmYyZiwgNDU0cHggMTk3M3B4ICMzMzJmMmYsIDQ0NHB4IDEyNnB4ICMzMzJmMmYsIDQ0NHB4IDEwNTNweCAjMzMyZjJmLCAxNTM2cHggMTcwNHB4ICMzMzJmMmYsIDU3NXB4IDcwMXB4ICMzMzJmMmYsIDEwNjNweCA3NzNweCAjMzMyZjJmLCAxMzMwcHggMTAyNXB4ICMzMzJmMmYsIDExMTJweCAxMTY2cHggIzMzMmYyZiwgNzQ2cHggMTc1MXB4ICMzMzJmMmYsIDQ4NnB4IDk1MXB4ICMzMzJmMmYsIDU4NXB4IDEwMDlweCAjMzMyZjJmLCAxMTAzcHggMTg2NnB4ICMzMzJmMmYsIDMzMnB4IDE2MjNweCAjMzMyZjJmLCAxMDFweCA5OTdweCAjMzMyZjJmLCA0NzZweCAxMTQwcHggIzMzMmYyZiwgMTM0cHggMTA3N3B4ICMzMzJmMmYsIDE2MjRweCA3MDRweCAjMzMyZjJmLCAxNzdweCAxNjE1cHggIzMzMmYyZiwgOTU4cHggNTMzcHggIzMzMmYyZiwgNDE5cHggMTI3MHB4ICMzMzJmMmYsIDg2NXB4IDM4OHB4ICMzMzJmMmYsIDIwMDBweCA4OTNweCAjMzMyZjJmLCA3NjlweCAxMTc1cHggIzMzMmYyZiwgNzAwcHggNjEycHggIzMzMmYyZiwgMTU1OXB4IDgxNXB4ICMzMzJmMmYsIDE3MHB4IDIwMDBweCAjMzMyZjJmLCAyNTFweCAxOTA1cHggIzMzMmYyZiwgMTYyMXB4IDEwNDhweCAjMzMyZjJmLCA3MTdweCAxMDczcHggIzMzMmYyZiwgMjA0cHggOTA1cHggIzMzMmYyZiwgMTQ2MHB4IDI1MnB4ICMzMzJmMmYsIDU1MnB4IDEyNTlweCAjMzMyZjJmLCAxMjk4cHggOTM1cHggIzMzMmYyZiwgOTE1cHggMjEycHggIzMzMmYyZiwgOTA4cHggMTU3N3B4ICMzMzJmMmYsIDEzMXB4IDE1NjVweCAjMzMyZjJmLCA5NjlweCA1ODdweCAjMzMyZjJmLCAxNzQ5cHggMTA4MnB4ICMzMzJmMmYsIDE1cHggMjUxcHggIzMzMmYyZiwgMzYycHggMTY2NnB4ICMzMzJmMmYsIDE2MTVweCA4MHB4ICMzMzJmMmYsIDY1NXB4IDExOHB4ICMzMzJmMmYsIDE2MnB4IDgxN3B4ICMzMzJmMmYsIDM2MnB4IDE4MjBweCAjMzMyZjJmLCAxMTQwcHggMTA1MXB4ICMzMzJmMmYsIDc3M3B4IDcyOXB4ICMzMzJmMmYsIDExNjRweCA5ODZweCAjMzMyZjJmLCA4NTRweCAyNnB4ICMzMzJmMmYsIDc0N3B4IDEwOTVweCAjMzMyZjJmLCAxMzc0cHggNzMxcHggIzMzMmYyZiwgMTkzOHB4IDE0NDZweCAjMzMyZjJmLCAxMjM4cHggMTc2N3B4ICMzMzJmMmYsIDE3OXB4IDE2NTlweCAjMzMyZjJmLCAxMzU4cHggMTIxN3B4ICMzMzJmMmYsIDU3MnB4IDQ4MHB4ICMzMzJmMmYsIDk1NnB4IDE3MnB4ICMzMzJmMmYsIDE0NTVweCAxMDYzcHggIzMzMmYyZiwgMTkyM3B4IDYxM3B4ICMzMzJmMmYsIDE2NjdweCAzNDRweCAjMzMyZjJmLCAxMTA2cHggMTkzM3B4ICMzMzJmMmYsIDc1cHggMTY5cHggIzMzMmYyZiwgMTU2NHB4IDk0NXB4ICMzMzJmMmYsIDc3NnB4IDE3NjFweCAjMzMyZjJmLCA3ODNweCAyMjRweCAjMzMyZjJmLCA4MTNweCA3NTNweCAjMzMyZjJmLCAxNjQ0cHggNDkwcHggIzMzMmYyZiwgMTExN3B4IDY0M3B4ICMzMzJmMmYsIDc4MHB4IDMwMnB4ICMzMzJmMmYsIDE4OTNweCA0ODFweCAjMzMyZjJmLCA5OHB4IDExOTJweCAjMzMyZjJmLCA3MThweCAxODgxcHggIzMzMmYyZiwgMTU2MXB4IDgyNHB4ICMzMzJmMmYsIDc1M3B4IDEzOXB4ICMzMzJmMmYsIDkwN3B4IDU5N3B4ICMzMzJmMmYsIDE4ODFweCAxMzMzcHggIzMzMmYyZiwgMTU1MHB4IDE1NTdweCAjMzMyZjJmLCA0MTlweCAxMDQxcHggIzMzMmYyZiwgMjQwcHggMTk2MnB4ICMzMzJmMmYsIDkzOHB4IDExMTZweCAjMzMyZjJmLCA0NTlweCAxMjQ1cHggIzMzMmYyZiwgODQ5cHggNTQ0cHggIzMzMmYyZiwgMTM0M3B4IDE2NDRweCAjMzMyZjJmLCAxNDM4cHggMTk5MXB4ICMzMzJmMmYsIDE5NzdweCAyOTJweCAjMzMyZjJmLCAxNzcycHggNjU4cHggIzMzMmYyZiwgMTM4MnB4IDEwMDdweCAjMzMyZjJmLCAyOTZweCA5OTRweCAjMzMyZjJmLCAxNjE2cHggMjA1cHggIzMzMmYyZiwgOTg5cHggMTUwMnB4ICMzMzJmMmYsIDEyMDFweCAxMjk3cHggIzMzMmYyZiwgODk1cHggMTgzNXB4ICMzMzJmMmYsIDE1OTZweCA2MzdweCAjMzMyZjJmLCAxNjAxcHggMjRweCAjMzMyZjJmLCAxMDk3cHggMjQwcHggIzMzMmYyZiwgMzY0cHggNTYzcHggIzMzMmYyZiwgMTY4NnB4IDIwOHB4ICMzMzJmMmYsIDYxMnB4IDMxNXB4ICMzMzJmMmYsIDE4NDhweCAxMTdweCAjMzMyZjJmLCAxMTY2cHggODcxcHggIzMzMmYyZiwgMTY2MnB4IDYzMXB4ICMzMzJmMmYsIDYyMnB4IDU1MHB4ICMzMzJmMmYsIDE5ODJweCA0NThweCAjMzMyZjJmLCAxMjc0cHggNDM5cHggIzMzMmYyZiwgMTQ3MXB4IDE1MzFweCAjMzMyZjJmLCA5OXB4IDcwMXB4ICMzMzJmMmYsIDE3NXB4IDE0NTZweCAjMzMyZjJmLCA5MTdweCAxNTg1cHggIzMzMmYyZiwgMTg3NXB4IDI3N3B4ICMzMzJmMmYsIDU1NXB4IDQ2MHB4ICMzMzJmMmYsIDE2MXB4IDEyOTBweCAjMzMyZjJmLCA3NzBweCAxMzgxcHggIzMzMmYyZiwgMTU0OHB4IDE5MTZweCAjMzMyZjJmLCA0ODJweCAzNjZweCAjMzMyZjJmLCA5MjNweCA3OTFweCAjMzMyZjJmLCA1ODJweCAyMjVweCAjMzMyZjJmLCA2MXB4IDMwMnB4ICMzMzJmMmYsIDM4M3B4IDUyMXB4ICMzMzJmMmYsIDE5NnB4IDQ0MXB4ICMzMzJmMmYsIDMwOHB4IDE5NDhweCAjMzMyZjJmLCA0MjVweCA0MjZweCAjMzMyZjJmLCA1ODlweCAxMzQ3cHggIzMzMmYyZiwgMTQwOXB4IDE1MjhweCAjMzMyZjJmLCAxNDkycHggNDM4cHggIzMzMmYyZiwgMTU2OHB4IDEwMjdweCAjMzMyZjJmLCAxMzc3cHggMTczMHB4ICMzMzJmMmYsIDExODdweCAxNjkzcHggIzMzMmYyZiwgMTgwNHB4IDU1MnB4ICMzMzJmMmYsIDE4NThweCAxNTEycHggIzMzMmYyZiwgMjA0cHggMTU2MXB4ICMzMzJmMmYsIDIzN3B4IDk5MXB4ICMzMzJmMmYsIDcyNnB4IDEzMzRweCAjMzMyZjJmLCA3MTVweCAxMjQ0cHggIzMzMmYyZiwgMTUwMnB4IDE3MDRweCAjMzMyZjJmLCAxMDA4cHggNzkycHggIzMzMmYyZiwgMTIxMHB4IDE3MDBweCAjMzMyZjJmLCAxMzJweCAxNjYycHggIzMzMmYyZiwgMTc3MHB4IDY5OHB4ICMzMzJmMmYsIDgxMnB4IDE3MDZweCAjMzMyZjJmLCAyMTVweCA1MjFweCAjMzMyZjJmLCAxOTQ3cHggNTc0cHggIzMzMmYyZiwgMjAxcHggNjY5cHggIzMzMmYyZiwgMTI2NXB4IDE2NHB4ICMzMzJmMmYsIDk0cHggNDUzcHggIzMzMmYyZiwgMzkzcHggMTQ0MXB4ICMzMzJmMmYsIDE0MzlweCA4NDdweCAjMzMyZjJmLCAxMDg2cHggNzlweCAjMzMyZjJmLCA0MDJweCA0NzFweCAjMzMyZjJmLCAxOTcwcHggMTIyMnB4ICMzMzJmMmYsIDEzNTFweCAzOTFweCAjMzMyZjJmLCA5NHB4IDU2NnB4ICMzMzJmMmYsIDU5NHB4IDE4OTRweCAjMzMyZjJmLCAzNjNweCAxODM0cHggIzMzMmYyZiwgMjY2cHggMTQwMHB4ICMzMzJmMmYsIDg5OXB4IDk3NHB4ICMzMzJmMmYsIDE1OTJweCA1ODJweCAjMzMyZjJmLCAxMTI5cHggNTY2cHggIzMzMmYyZiwgNTMzcHggMTI3NHB4ICMzMzJmMmYsIDQ4NXB4IDM3M3B4ICMzMzJmMmYsIDg4MnB4IDE3ODdweCAjMzMyZjJmLCAxOTM3cHggNjNweCAjMzMyZjJmLCAxOTg3cHggMTkyMXB4ICMzMzJmMmYsIDY1cHggNzYzcHggIzMzMmYyZiwgOTYycHggNDQ2cHggIzMzMmYyZiwgOTJweCAxMTI1cHggIzMzMmYyZiwgMTI4MXB4IDQ5MXB4ICMzMzJmMmYsIDE3MDRweCAyODRweCAjMzMyZjJmLCAxOTA0cHggOTIxcHggIzMzMmYyZiwgNDA0cHggMzI4cHggIzMzMmYyZiwgMTMwMXB4IDE2OTZweCAjMzMyZjJmLCA0MjBweCAxMzRweCAjMzMyZjJmLCAyMzdweCAyODVweCAjMzMyZjJmLCA2MDRweCAxODgxcHggIzMzMmYyZiwgODc5cHggODE2cHggIzMzMmYyZiwgMTczcHggMTMzcHggIzMzMmYyZiwgMTQ5MXB4IDE4OXB4ICMzMzJmMmYsIDM2OXB4IDU0OHB4ICMzMzJmMmYsIDQyMXB4IDUwM3B4ICMzMzJmMmYsIDE1NTNweCAxODgzcHggIzMzMmYyZiwgODYzcHggMTA2OHB4ICMzMzJmMmYsIDE1MjZweCAxMTE1cHggIzMzMmYyZiwgNjM2cHggMTI1OHB4ICMzMzJmMmYsIDc3MXB4IDEyMjdweCAjMzMyZjJmLCA5MDJweCA4MzdweCAjMzMyZjJmLCAxMzg1cHggODEzcHggIzMzMmYyZiwgMTkwOHB4IDk1N3B4ICMzMzJmMmYsIDEwMTJweCA0ODVweCAjMzMyZjJmLCA4MzlweCA2NzZweCAjMzMyZjJmLCA3NjNweCAxNjAycHggIzMzMmYyZiwgMTU3MHB4IDE0N3B4ICMzMzJmMmYsIDEwOXB4IDU5MXB4ICMzMzJmMmYsIDI3MnB4IDc3NHB4ICMzMzJmMmYsIDE1MTlweCAzOTVweCAjMzMyZjJmLCA1NThweCA2OHB4ICMzMzJmMmYsIDEzOTlweCAyNjRweCAjMzMyZjJmLCAxOTU4cHggNDIzcHggIzMzMmYyZiwgMTYwcHggNDBweCAjMzMyZjJmLCA5OTRweCAyODNweCAjMzMyZjJmLCAxOTY5cHggMTA1MXB4ICMzMzJmMmYsIDk0NHB4IDEwMDBweCAjMzMyZjJmLCAyMjdweCAxNDc0cHggIzMzMmYyZiwgMTU3cHggMTc0NHB4ICMzMzJmMmYsIDEyNjFweCA2OTZweCAjMzMyZjJmLCAxOTUwcHggNjk5cHggIzMzMmYyZiwgNzc4cHggMTg1OHB4ICMzMzJmMmYsIDE5MTVweCAzMDNweCAjMzMyZjJmLCA4NXB4IDExMzVweCAjMzMyZjJmLCAxOTIzcHggNTZweCAjMzMyZjJmLCAzMDJweCAxMjU4cHggIzMzMmYyZiwgMTczMnB4IDE1MDRweCAjMzMyZjJmLCAxMzQ5cHggNjE5cHggIzMzMmYyZiwgMTY4N3B4IDE2MDBweCAjMzMyZjJmLCAxNTAzcHggNTcwcHggIzMzMmYyZiwgNDU3cHggMTA3NXB4ICMzMzJmMmYsIDMzcHggMTk3MXB4ICMzMzJmMmYsIDE4OTNweCA3MzJweCAjMzMyZjJmLCAxNzg0cHggMTI1N3B4ICMzMzJmMmYsIDEwOTVweCAxMzA5cHggIzMzMmYyZiwgMTUycHggMTUwMHB4ICMzMzJmMmYsIDEzNDFweCA1MDBweCAjMzMyZjJmLCAyMDdweCAxNzg3cHggIzMzMmYyZiwgMTMyNXB4IDYzNHB4ICMzMzJmMmYsIDE3MjNweCA3M3B4ICMzMzJmMmYsIDI3MHB4IDg4NXB4ICMzMzJmMmYsIDg1N3B4IDExNTZweCAjMzMyZjJmLCAzNTRweCAxODcwcHggIzMzMmYyZiwgMjQ4cHggMTUxNHB4ICMzMzJmMmYsIDg4OXB4IDEzMjRweCAjMzMyZjJmLCAxOTEwcHggNDYwcHggIzMzMmYyZiwgMTgyNHB4IDEyNjdweCAjMzMyZjJmLCAxNzc5cHggMTI1cHggIzMzMmYyZiwgNDYycHggMTk4cHggIzMzMmYyZiwgMzcycHggMjEwcHggIzMzMmYyZiwgOTkycHggNDk4cHggIzMzMmYyZiwgODc2cHggODI2cHggIzMzMmYyZiwgMTg0MXB4IDExNHB4ICMzMzJmMmYsIDE5NzhweCA1MjdweCAjMzMyZjJmLCAxNjg3cHggMTIxNnB4ICMzMzJmMmYsIDc5NXB4IDEzNTdweCAjMzMyZjJmLCAxMzhweCAxNTU5cHggIzMzMmYyZiwgMTYyNXB4IDY0M3B4ICMzMzJmMmYsIDE0MXB4IDkxMHB4ICMzMzJmMmYsIDUwM3B4IDE3MDFweCAjMzMyZjJmLCAxMjE5cHggMTg5NnB4ICMzMzJmMmYsIDU2NHB4IDE2NzVweCAjMzMyZjJmLCA4MnB4IDEyODZweCAjMzMyZjJmLCAxMjY2cHggMzc5cHggIzMzMmYyZiwgNTE4cHggMzcwcHggIzMzMmYyZiwgNTY2cHggMzIzcHggIzMzMmYyZiwgOTIwcHggMTU3N3B4ICMzMzJmMmYsIDEwOTNweCA2NzNweCAjMzMyZjJmLCAxNDExcHggNDIycHggIzMzMmYyZiwgMTUxMHB4IDEzODVweCAjMzMyZjJmLCAxMDM5cHggMjIwcHggIzMzMmYyZiwgNjQycHggMTY3NXB4ICMzMzJmMmYsIDkzMXB4IDE1MjBweCAjMzMyZjJmLCAxOTE0cHggMTg4NXB4ICMzMzJmMmYsIDEwMzhweCAxNzI3cHggIzMzMmYyZiwgMTEzNXB4IDE5MzVweCAjMzMyZjJmLCAxOTA0cHggMTEzM3B4ICMzMzJmMmYsIDEyNXB4IDQxcHggIzMzMmYyZiwgMTAxOXB4IDc4NnB4ICMzMzJmMmYsIDE2cHggMTkyNXB4ICMzMzJmMmYsIDg3NnB4IDY0NHB4ICMzMzJmMmYsIDExNzdweCAxMDg0cHggIzMzMmYyZiwgNTc2cHggODM2cHggIzMzMmYyZiwgMjQ4cHggNDZweCAjMzMyZjJmLCA5MzZweCAxNzIwcHggIzMzMmYyZiwgNDA2cHggOTgzcHggIzMzMmYyZiwgMTY2MHB4IDgwMXB4ICMzMzJmMmYsIDc1NnB4IDM1N3B4ICMzMzJmMmYsIDVweCAxMjhweCAjMzMyZjJmLCAxOTc0cHggMTExMHB4ICMzMzJmMmYsIDE2OTRweCAxNjMycHggIzMzMmYyZiwgMTk2OXB4IDE0MjBweCAjMzMyZjJmLCA1MTVweCAxMTcwcHggIzMzMmYyZiwgMTUzcHggODQ1cHggIzMzMmYyZiwgMTA3N3B4IDExNjdweCAjMzMyZjJmLCAxNDE3cHggMTc2NHB4ICMzMzJmMmYsIDE5MzhweCAxNjRweCAjMzMyZjJmLCAxMTc5cHggMTAxNXB4ICMzMzJmMmYsIDM5N3B4IDc5N3B4ICMzMzJmMmYsIDM5NnB4IDE3OThweCAjMzMyZjJmLCA5OTBweCA5N3B4ICMzMzJmMmYsIDE1MDNweCAxMTU5cHggIzMzMmYyZiwgNTg1cHggMTA0M3B4ICMzMzJmMmYsIDcwcHggMTgycHggIzMzMmYyZiwgNTIxcHggMTc0OHB4ICMzMzJmMmYsIDEyMnB4IDE0NzZweCAjMzMyZjJmLCA5MHB4IDczM3B4ICMzMzJmMmYsIDk2OXB4IDIwMHB4ICMzMzJmMmYsIDUwOHB4IDY0MXB4ICMzMzJmMmYsIDE0NzVweCA1MzJweCAjMzMyZjJmLCAzNjdweCA2NTNweCAjMzMyZjJmLCAxODE5cHggODQycHggIzMzMmYyZiwgNTE1cHggMTgwMnB4ICMzMzJmMmYsIDc0OXB4IDEwMTJweCAjMzMyZjJmLCAxNDEycHggMTk3MXB4ICMzMzJmMmYsIDEzMTFweCA2NzZweCAjMzMyZjJmLCA2NjZweCA3NzBweCAjMzMyZjJmLCAxMTk4cHggMjE4cHggIzMzMmYyZiwgMTA5NXB4IDY3NnB4ICMzMzJmMmYsIDEwMDhweCAzODJweCAjMzMyZjJmLCAxMjFweCAxMzI4cHggIzMzMmYyZiwgOTEzcHggMTY0MHB4ICMzMzJmMmYsIDE5MjRweCA0MzhweCAjMzMyZjJmLCAxNDZweCAxODQ4cHggIzMzMmYyZiwgMTcycHggNTEzcHggIzMzMmYyZiwgMTczNXB4IDE1NzRweCAjMzMyZjJmLCA2MzdweCAxNjI2cHggIzMzMmYyZiwgNzFweCAzMDFweCAjMzMyZjJmLCA3NzBweCA2NjVweCAjMzMyZjJmLCA5MXB4IDEzMjRweCAjMzMyZjJmLCAxNjQ1cHggMTcxNHB4ICMzMzJmMmYsIDExOThweCAxMjIxcHggIzMzMmYyZiwgNDM2cHggNjExcHggIzMzMmYyZiwgNTQxcHggMTYzOHB4ICMzMzJmMmYsIDEzNnB4IDcyNnB4ICMzMzJmMmYsIDgycHggMTY0cHggIzMzMmYyZiwgMTM3MXB4IDE1cHggIzMzMmYyZiwgMTQ2NHB4IDQ4N3B4ICMzMzJmMmYsIDI0MXB4IDIzcHggIzMzMmYyZiwgMTYxOXB4IDE4MTlweCAjMzMyZjJmLCA4MzNweCAxOTg4cHggIzMzMmYyZjthbmltYXRpb246YW5pbVN0YXIgODNzIGxpbmVhciBpbmZpbml0ZX0jYmxhY2stc3RhcnMtc206YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMDBweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxMTI4cHggMTAzNHB4ICMzMzJmMmYsIDQ0M3B4IDkxNnB4ICMzMzJmMmYsIDg0M3B4IDExMzFweCAjMzMyZjJmLCA0ODlweCAyMTNweCAjMzMyZjJmLCA3MjNweCA2MHB4ICMzMzJmMmYsIDU2M3B4IDMyM3B4ICMzMzJmMmYsIDE1NjBweCA5MDRweCAjMzMyZjJmLCAxODAycHggOTQxcHggIzMzMmYyZiwgMzIwcHggMTM0N3B4ICMzMzJmMmYsIDEwOTZweCAxMTA0cHggIzMzMmYyZiwgOTEycHggMTYyNHB4ICMzMzJmMmYsIDE3NzZweCAxMjQ5cHggIzMzMmYyZiwgOTg1cHggNTA3cHggIzMzMmYyZiwgMTQ5OXB4IDE5NTZweCAjMzMyZjJmLCAyNjhweCAzMjdweCAjMzMyZjJmLCAxMDA0cHggMTE5NXB4ICMzMzJmMmYsIDM0OHB4IDE5NzlweCAjMzMyZjJmLCAxNjA5cHggMTQzNnB4ICMzMzJmMmYsIDExNTRweCAxNjYxcHggIzMzMmYyZiwgMTMzOXB4IDExMThweCAjMzMyZjJmLCAxOTU2cHggMjZweCAjMzMyZjJmLCA5NTlweCA0NTVweCAjMzMyZjJmLCAzOXB4IDE4MDJweCAjMzMyZjJmLCAxNTMwcHggODlweCAjMzMyZjJmLCA0MTZweCAzMzVweCAjMzMyZjJmLCA0NzBweCAxNzM2cHggIzMzMmYyZiwgMjY5cHggNTQ1cHggIzMzMmYyZiwgNzY1cHggMTU5M3B4ICMzMzJmMmYsIDE2OHB4IDE2MDlweCAjMzMyZjJmLCAxMDc0cHggMTQ1M3B4ICMzMzJmMmYsIDE5ODZweCA2MTlweCAjMzMyZjJmLCA3OTdweCAxMjQ4cHggIzMzMmYyZiwgMTk0N3B4IDQ1OHB4ICMzMzJmMmYsIDE0NHB4IDY3NHB4ICMzMzJmMmYsIDE1NjZweCAxNzBweCAjMzMyZjJmLCAzNzBweCAxMjAxcHggIzMzMmYyZiwgMTg5OHB4IDk5N3B4ICMzMzJmMmYsIDExOHB4IDg5MHB4ICMzMzJmMmYsIDE1OXB4IDE3MjlweCAjMzMyZjJmLCAxODI3cHggMzI4cHggIzMzMmYyZiwgMjE3cHggMTg4M3B4ICMzMzJmMmYsIDM3MHB4IDE2MDZweCAjMzMyZjJmLCAxNzUxcHggNjYwcHggIzMzMmYyZiwgMTE5MnB4IDEzNDJweCAjMzMyZjJmLCA1ODlweCAxMjA0cHggIzMzMmYyZiwgMzVweCAxNDY4cHggIzMzMmYyZiwgODIzcHggMzFweCAjMzMyZjJmLCA3MjBweCAxMjQ4cHggIzMzMmYyZiwgMzU1cHggNTMycHggIzMzMmYyZiwgODIycHggMTYyOXB4ICMzMzJmMmYsIDk2NnB4IDE0ODhweCAjMzMyZjJmLCAxNDVweCA4NzhweCAjMzMyZjJmLCAxODM4cHggNDc2cHggIzMzMmYyZiwgMTczOHB4IDE5ODRweCAjMzMyZjJmLCAxMzcwcHggNTdweCAjMzMyZjJmLCAxMzdweCAxMDcycHggIzMzMmYyZiwgNjI0cHggMTgyNXB4ICMzMzJmMmYsIDEzM3B4IDE4NjVweCAjMzMyZjJmLCAxODUycHggMTM1M3B4ICMzMzJmMmYsIDE4ODdweCAxNzhweCAjMzMyZjJmLCAxNDEwcHggMTQ1MXB4ICMzMzJmMmYsIDExNTdweCA3NjdweCAjMzMyZjJmLCAxNDMxcHggMTI0OHB4ICMzMzJmMmYsIDIwMnB4IDM0MHB4ICMzMzJmMmYsIDQzMXB4IDI2M3B4ICMzMzJmMmYsIDc1MHB4IDE3NzBweCAjMzMyZjJmLCAxMzE5cHggNzUycHggIzMzMmYyZiwgMTM0MHB4IDE2NTBweCAjMzMyZjJmLCAxMjgxcHggNjk4cHggIzMzMmYyZiwgNDY4cHggMTY5MnB4ICMzMzJmMmYsIDE2NjdweCA0MzJweCAjMzMyZjJmLCA1MTZweCAxMjY1cHggIzMzMmYyZiwgMTEyNnB4IDEwNDJweCAjMzMyZjJmLCAxNzI4cHggODE5cHggIzMzMmYyZiwgNDg4cHggMTg2OHB4ICMzMzJmMmYsIDg3OHB4IDk2OHB4ICMzMzJmMmYsIDExOTZweCAxOTc2cHggIzMzMmYyZiwgODE1cHggOTEwcHggIzMzMmYyZiwgMTY1N3B4IDgyOXB4ICMzMzJmMmYsIDgwM3B4IDEyNzBweCAjMzMyZjJmLCAxNjQ3cHggNjg4cHggIzMzMmYyZiwgMTgyM3B4IDIwMDBweCAjMzMyZjJmLCAxODk2cHggMjI4cHggIzMzMmYyZiwgMTgzcHggMTgzOHB4ICMzMzJmMmYsIDI5N3B4IDEwNzNweCAjMzMyZjJmLCA0OTNweCA3MTZweCAjMzMyZjJmLCA2ODlweCAxMjQ0cHggIzMzMmYyZiwgMTkzNHB4IDExODRweCAjMzMyZjJmLCA1NzdweCAxMDQ5cHggIzMzMmYyZiwgNTUzcHggMTU3MHB4ICMzMzJmMmYsIDEzNzRweCAxNDEycHggIzMzMmYyZiwgMTUzMHB4IDExcHggIzMzMmYyZiwgNDAxcHggOXB4ICMzMzJmMmYsIDEyNHB4IDg3MHB4ICMzMzJmMmYsIDk1OHB4IDM1M3B4ICMzMzJmMmYsIDEwNjdweCA0MDZweCAjMzMyZjJmLCA4MjZweCAxOTg2cHggIzMzMmYyZiwgNDI2cHggMTQ0OHB4ICMzMzJmMmYsIDM4OHB4IDE3MDBweCAjMzMyZjJmLCAxMDg0cHggMTIzMnB4ICMzMzJmMmYsIDg4NnB4IDE2NjlweCAjMzMyZjJmLCAxNDdweCA1MTFweCAjMzMyZjJmLCA3MjVweCA0NTRweCAjMzMyZjJmLCAxNDMzcHggMTIwNnB4ICMzMzJmMmYsIDUwcHggMTMzNHB4ICMzMzJmMmYsIDI0OHB4IDE4NDBweCAjMzMyZjJmLCAxNjRweCA3NzlweCAjMzMyZjJmLCAyNDhweCAxMzAzcHggIzMzMmYyZiwgODVweCAxODE1cHggIzMzMmYyZiwgMTQyOXB4IDE0M3B4ICMzMzJmMmYsIDEzcHggMTMxMHB4ICMzMzJmMmYsIDYzOXB4IDY1N3B4ICMzMzJmMmYsIDE5NjhweCAyNzhweCAjMzMyZjJmLCAxMzA2cHggMzQ4cHggIzMzMmYyZiwgMTgwN3B4IDQ5OHB4ICMzMzJmMmYsIDE2MjVweCAxNDk4cHggIzMzMmYyZiwgNjU0cHggNzM2cHggIzMzMmYyZiwgMTc3MHB4IDM3MHB4ICMzMzJmMmYsIDEyMzdweCAxNTc0cHggIzMzMmYyZiwgMTA0NXB4IDE0ODFweCAjMzMyZjJmLCAxMjY0cHggMjc2cHggIzMzMmYyZiwgMTU3OHB4IDI3M3B4ICMzMzJmMmYsIDEwMDZweCAxNTg2cHggIzMzMmYyZiwgMTA4cHggMTgxMnB4ICMzMzJmMmYsIDgwcHggMTU2MHB4ICMzMzJmMmYsIDY0NXB4IDM2OHB4ICMzMzJmMmYsIDE4MzhweCA1NjlweCAjMzMyZjJmLCA3MTVweCA2MjdweCAjMzMyZjJmLCA3NjRweCA2MTJweCAjMzMyZjJmLCAxOTBweCAxODYxcHggIzMzMmYyZiwgNDI0cHggMTE2OHB4ICMzMzJmMmYsIDg1MXB4IDk1M3B4ICMzMzJmMmYsIDEwOTZweCAxMzQ2cHggIzMzMmYyZiwgMTQxNXB4IDExNzFweCAjMzMyZjJmLCAzNzhweCAxMzg3cHggIzMzMmYyZiwgMjcwcHggMTY0NXB4ICMzMzJmMmYsIDEzNDhweCAxNzcwcHggIzMzMmYyZiwgMTM0OXB4IDE5ODhweCAjMzMyZjJmLCA1NDlweCAyMjdweCAjMzMyZjJmLCA2NzFweCAyNHB4ICMzMzJmMmYsIDE1ODFweCAxNDMwcHggIzMzMmYyZiwgMjEycHggMTk3OXB4ICMzMzJmMmYsIDE5MTRweCAxMDgzcHggIzMzMmYyZiwgMTA1NnB4IDk1MHB4ICMzMzJmMmYsIDYzNXB4IDk4OXB4ICMzMzJmMmYsIDEyMzZweCA1NzFweCAjMzMyZjJmLCAyMjNweCAxNjM0cHggIzMzMmYyZiwgMTU2NHB4IDcyOHB4ICMzMzJmMmYsIDExMnB4IDkwOHB4ICMzMzJmMmYsIDE1MTBweCA0NTlweCAjMzMyZjJmLCA4ODRweCAxMjgycHggIzMzMmYyZiwgMTIwMXB4IDE5NjhweCAjMzMyZjJmLCAxMzM2cHggNTU4cHggIzMzMmYyZiwgMTA4OXB4IDkxOHB4ICMzMzJmMmYsIDE1NzZweCAxODI4cHggIzMzMmYyZiwgOTVweCA5OXB4ICMzMzJmMmYsIDQyM3B4IDI2NXB4ICMzMzJmMmYsIDE3MThweCAyMzJweCAjMzMyZjJmLCAxMDdweCA3ODVweCAjMzMyZjJmLCAxMTA1cHggODU0cHggIzMzMmYyZiwgMTM3MHB4IDE1NTRweCAjMzMyZjJmLCA0OTVweCA0MDdweCAjMzMyZjJmLCAxNDI2cHggNDgxcHggIzMzMmYyZiwgODI4cHggMTIyNnB4ICMzMzJmMmYsIDExMDRweCAyMTFweCAjMzMyZjJmLCAxMDY0cHggMTQ4MHB4ICMzMzJmMmYsIDEwMjlweCA5NjdweCAjMzMyZjJmLCAxNzE3cHggNTAzcHggIzMzMmYyZiwgNDUycHggMTQ2NHB4ICMzMzJmMmYsIDE5NDJweCA0NTBweCAjMzMyZjJmLCAxMjE1cHggMTMxMHB4ICMzMzJmMmYsIDM3NHB4IDU1NHB4ICMzMzJmMmYsIDE1NjBweCA2OTNweCAjMzMyZjJmLCA4M3B4IDM5OHB4ICMzMzJmMmYsIDM4NXB4IDExNjZweCAjMzMyZjJmLCAxNTU4cHggNzA0cHggIzMzMmYyZiwgNjVweCAzODBweCAjMzMyZjJmLCAxMzk5cHggMTEzM3B4ICMzMzJmMmYsIDg2MHB4IDM3NXB4ICMzMzJmMmYsIDY0MnB4IDQ0OXB4ICMzMzJmMmYsIDU3N3B4IDU3OHB4ICMzMzJmMmYsIDYwN3B4IDEyOTVweCAjMzMyZjJmLCAxODY4cHggMzkwcHggIzMzMmYyZiwgMTY5NnB4IDE4MzNweCAjMzMyZjJmLCAxMTkxcHggMTMxMnB4ICMzMzJmMmYsIDQxOHB4IDEzODRweCAjMzMyZjJmLCAxMjA3cHggMTA3OXB4ICMzMzJmMmYsIDE2cHggNjVweCAjMzMyZjJmLCAxNDk4cHggMTk2cHggIzMzMmYyZiwgMTQ2OHB4IDEyMzhweCAjMzMyZjJmLCAxODEwcHggMTU2cHggIzMzMmYyZiwgNzQ0cHggOTI2cHggIzMzMmYyZiwgMTlweCAxNzY1cHggIzMzMmYyZiwgMTQzNnB4IDkwNHB4ICMzMzJmMmYsIDE0NzRweCAxNDQ3cHggIzMzMmYyZiwgODhweCAxODE0cHggIzMzMmYyZiwgMTg4MXB4IDExOTdweCAjMzMyZjJmLCAxNTcwcHggNTQwcHggIzMzMmYyZiwgMTk2NXB4IDE1MjNweCAjMzMyZjJmLCAxNDU1cHggNDJweCAjMzMyZjJmLCAxMzdweCAyMDlweCAjMzMyZjJmLCAxMTg2cHggNDBweCAjMzMyZjJmLCAxNjdweCAxNjcwcHggIzMzMmYyZiwgMTQ1M3B4IDEyNjRweCAjMzMyZjJmLCAyODhweCA2ODJweCAjMzMyZjJmLCAxMjNweCAxMTk3cHggIzMzMmYyZiwgMTk3MHB4IDExNzFweCAjMzMyZjJmLCAxNTVweCA5OTRweCAjMzMyZjJmLCA2MDFweCA1MDhweCAjMzMyZjJmLCAyOTBweCA0NTZweCAjMzMyZjJmLCA0MTlweCAxOTUzcHggIzMzMmYyZiwgMjczcHggNzRweCAjMzMyZjJmLCAxMjYycHggNDYwcHggIzMzMmYyZiwgMTYxMXB4IDEzOTZweCAjMzMyZjJmLCAxNTc2cHggNThweCAjMzMyZjJmLCA5OTVweCAxNTE0cHggIzMzMmYyZiwgMTAzOXB4IDEyMjlweCAjMzMyZjJmLCA4MTdweCAxNTIzcHggIzMzMmYyZiwgMTU5OHB4IDc0OHB4ICMzMzJmMmYsIDEzNjhweCAxNzY0cHggIzMzMmYyZiwgOTU5cHggMTY4OHB4ICMzMzJmMmYsIDEyNzdweCAzMTFweCAjMzMyZjJmLCAxNjUxcHggMzE5cHggIzMzMmYyZiwgMTcxOXB4IDEzOTJweCAjMzMyZjJmLCAxNDQ5cHggMjgycHggIzMzMmYyZiwgMTk2OXB4IDc1NnB4ICMzMzJmMmYsIDQ1OHB4IDE4NnB4ICMzMzJmMmYsIDg1N3B4IDk3NnB4ICMzMzJmMmYsIDE1NThweCA0MjRweCAjMzMyZjJmLCAxMzE0cHggMTEyNnB4ICMzMzJmMmYsIDEwMTBweCA2NzBweCAjMzMyZjJmLCA1ODRweCAxNDdweCAjMzMyZjJmLCA1MDdweCAxOTVweCAjMzMyZjJmLCA4ODNweCA2NjhweCAjMzMyZjJmLCAyMDAwcHggMTA1MnB4ICMzMzJmMmYsIDE1MzJweCAxMjU3cHggIzMzMmYyZiwgOTE5cHggMTQxMnB4ICMzMzJmMmYsIDEwNDhweCAxNzIycHggIzMzMmYyZiwgMTY2OXB4IDcyOHB4ICMzMzJmMmYsIDE0MzNweCAzODJweCAjMzMyZjJmLCAxNDA0cHggNjk0cHggIzMzMmYyZiwgNTkxcHggMTQ5MnB4ICMzMzJmMmYsIDEyODNweCA5MjRweCAjMzMyZjJmLCA1OXB4IDEyNDRweCAjMzMyZjJmLCAxNDY1cHggMTY4NnB4ICMzMzJmMmYsIDQwNHB4IDE4NDZweCAjMzMyZjJmLCAxNTM0cHggNzk5cHggIzMzMmYyZiwgMTMwMHB4IDQwOXB4ICMzMzJmMmYsIDg1MXB4IDExMThweCAjMzMyZjJmLCAyMTZweCA2NTZweCAjMzMyZjJmLCA0MzJweCAxMTYycHggIzMzMmYyZiwgNTc3cHggMTk1N3B4ICMzMzJmMmYsIDI3OHB4IDc0OXB4ICMzMzJmMmYsIDEzM3B4IDQxM3B4ICMzMzJmMmYsIDE1MjRweCA4MDZweCAjMzMyZjJmLCAxNjAwcHggMzYwcHggIzMzMmYyZiwgNDI2cHggMjBweCAjMzMyZjJmLCA4MzVweCA3NDZweCAjMzMyZjJmLCAxNjI2cHggNDQ4cHggIzMzMmYyZiwgMTQ5NnB4IDEzcHggIzMzMmYyZiwgMTA4OXB4IDEzNTZweCAjMzMyZjJmLCA5NDZweCA1MTRweCAjMzMyZjJmLCAxOTQ0cHggMTEyMXB4ICMzMzJmMmYsIDE4NzFweCA1OTRweCAjMzMyZjJmLCA4OThweCA2MzNweCAjMzMyZjJmLCA2NzJweCAxMDgycHggIzMzMmYyZiwgNDI5cHggNDNweCAjMzMyZjJmLCAxMjk4cHggMTcwNXB4ICMzMzJmMmYsIDE4MTBweCAxNTAxcHggIzMzMmYyZiwgMTY4N3B4IDQxM3B4ICMzMzJmMmYsIDE5MDJweCA2ODdweCAjMzMyZjJmLCAxNjQ5cHggMTMzNXB4ICMzMzJmMmYsIDEyNzlweCA1OTJweCAjMzMyZjJmLCAxNDk5cHggMTM3MHB4ICMzMzJmMmYsIDE2NDJweCA1NTZweCAjMzMyZjJmLCA1MDZweCA0ODlweCAjMzMyZjJmLCA4NzZweCAxMTM1cHggIzMzMmYyZiwgMTY4NXB4IDE3MTlweCAjMzMyZjJmLCAxNzg4cHggMTA2MXB4ICMzMzJmMmYsIDE0NzJweCAxNTE3cHggIzMzMmYyZiwgMTgzcHggMTQ5MHB4ICMzMzJmMmYsIDIzNnB4IDY2N3B4ICMzMzJmMmYsIDI2MXB4IDE0OTdweCAjMzMyZjJmLCA4NDJweCAxMzlweCAjMzMyZjJmLCA2NDdweCA3MDlweCAjMzMyZjJmLCAxNDMwcHggMTQwcHggIzMzMmYyZiwgNDIxcHggMTg1NXB4ICMzMzJmMmYsIDIwM3B4IDEyOXB4ICMzMzJmMmYsIDE2OHB4IDE0MnB4ICMzMzJmMmYsIDI2NHB4IDQ5MnB4ICMzMzJmMmYsIDEzNjZweCAyMDRweCAjMzMyZjJmLCA2NzNweCAxMzYxcHggIzMzMmYyZiwgMTczOXB4IDEwNjdweCAjMzMyZjJmLCAxOTM1cHggNjk5cHggIzMzMmYyZiwgOTcwcHggNTEycHggIzMzMmYyZiwgMTE5MXB4IDgyOHB4ICMzMzJmMmYsIDE5MzFweCAxMjU2cHggIzMzMmYyZiwgMTMwNXB4IDEwMThweCAjMzMyZjJmLCAxNzEycHggMzQ3cHggIzMzMmYyZiwgMTcwMnB4IDk0NnB4ICMzMzJmMmYsIDUyN3B4IDEyMDBweCAjMzMyZjJmLCAxODdweCA1OTJweCAjMzMyZjJmLCA3NTRweCA4MDJweCAjMzMyZjJmLCAxNzI4cHggNjgwcHggIzMzMmYyZiwgMTEwMHB4IDE1MjBweCAjMzMyZjJmLCA0ODBweCAxNzQwcHggIzMzMmYyZiwgNzcxcHggMTQ4OHB4ICMzMzJmMmYsIDEzMzBweCA2NzlweCAjMzMyZjJmLCA4MjNweCAxOTA4cHggIzMzMmYyZiwgMTQzNHB4IDU2cHggIzMzMmYyZiwgMTUxMHB4IDExNzJweCAjMzMyZjJmLCAxMjA3cHggNDk2cHggIzMzMmYyZiwgMTUwOHB4IDE5NzBweCAjMzMyZjJmLCA0OTZweCA2OTlweCAjMzMyZjJmLCA5NDJweCAxMTZweCAjMzMyZjJmLCAxMzI0cHggNDJweCAjMzMyZjJmLCAxMDA5cHggMTgxNXB4ICMzMzJmMmYsIDEwNjJweCAxNjk0cHggIzMzMmYyZiwgMTg3N3B4IDIwMDBweCAjMzMyZjJmLCA5NDZweCA0MzlweCAjMzMyZjJmLCAxOTE2cHggMTM3NXB4ICMzMzJmMmYsIDE4MzZweCAzNDhweCAjMzMyZjJmLCA5OTdweCA1NTdweCAjMzMyZjJmLCAxNzI0cHggMTE3N3B4ICMzMzJmMmYsIDE1MzRweCAyNjZweCAjMzMyZjJmLCA1NjhweCA4MjVweCAjMzMyZjJmLCAxNzE5cHggMTY4MnB4ICMzMzJmMmYsIDE2MDVweCAzMzdweCAjMzMyZjJmLCA5NjhweCAxMzU0cHggIzMzMmYyZiwgMTk0MnB4IDEzNDJweCAjMzMyZjJmLCAzNDRweCAxNTk2cHggIzMzMmYyZiwgMTEzcHggMTk5OHB4ICMzMzJmMmYsIDk2M3B4IDEwOTVweCAjMzMyZjJmLCA0NjBweCAxMzg2cHggIzMzMmYyZiwgMTk4NnB4IDY5NHB4ICMzMzJmMmYsIDE5MDFweCA0NjdweCAjMzMyZjJmLCAxOTcwcHggMTMzOHB4ICMzMzJmMmYsIDEyMHB4IDcwNnB4ICMzMzJmMmYsIDE3NjFweCAxOTEycHggIzMzMmYyZiwgNzg4cHggMTE3N3B4ICMzMzJmMmYsIDEwMTJweCAxMTczcHggIzMzMmYyZiwgMTk2OHB4IDUzOHB4ICMzMzJmMmYsIDE1NTJweCA3MjdweCAjMzMyZjJmLCAyNzNweCAxMjc1cHggIzMzMmYyZiwgOTZweCA2NTlweCAjMzMyZjJmLCAxMTU3cHggMTYyM3B4ICMzMzJmMmYsIDEzMTRweCA5MjFweCAjMzMyZjJmLCA0OTJweCAxOTk2cHggIzMzMmYyZiwgNTdweCAxOTU4cHggIzMzMmYyZiwgMTk0cHggMTc1OXB4ICMzMzJmMmYsIDE1OHB4IDE5NzFweCAjMzMyZjJmLCAxOTY0cHggMjg1cHggIzMzMmYyZiwgMTY0M3B4IDY0N3B4ICMzMzJmMmYsIDUwNHB4IDE2NDRweCAjMzMyZjJmLCA0NTdweCAxNjk1cHggIzMzMmYyZiwgMTEyOXB4IDY4MnB4ICMzMzJmMmYsIDgxM3B4IDUxNnB4ICMzMzJmMmYsIDE4NjJweCAzM3B4ICMzMzJmMmYsIDI4MHB4IDM2cHggIzMzMmYyZiwgNTYwcHggMTE3NHB4ICMzMzJmMmYsIDczMnB4IDQxOXB4ICMzMzJmMmYsIDE0MjBweCAzMzZweCAjMzMyZjJmLCA0NDRweCAxODQ5cHggIzMzMmYyZiwgMzU0cHggMTkxOXB4ICMzMzJmMmYsIDEyMTVweCA0MDhweCAjMzMyZjJmLCA1MjdweCAxMjhweCAjMzMyZjJmLCAxNDk0cHggMTUzMXB4ICMzMzJmMmYsIDE0NzZweCA3NThweCAjMzMyZjJmLCA2MjVweCAyMzhweCAjMzMyZjJmLCA2NjlweCAyMDlweCAjMzMyZjJmLCAxOTAxcHggMTAxcHggIzMzMmYyZiwgODQ5cHggMTkwN3B4ICMzMzJmMmYsIDM1OXB4IDE0NjVweCAjMzMyZjJmLCAxODc2cHggMzgzcHggIzMzMmYyZiwgMTg3cHggMTI4M3B4ICMzMzJmMmYsIDE5NTVweCAxNTA0cHggIzMzMmYyZiwgNjAxcHggMTE1N3B4ICMzMzJmMmYsIDQ1NHB4IDE5NzNweCAjMzMyZjJmLCA0NDRweCAxMjZweCAjMzMyZjJmLCA0NDRweCAxMDUzcHggIzMzMmYyZiwgMTUzNnB4IDE3MDRweCAjMzMyZjJmLCA1NzVweCA3MDFweCAjMzMyZjJmLCAxMDYzcHggNzczcHggIzMzMmYyZiwgMTMzMHB4IDEwMjVweCAjMzMyZjJmLCAxMTEycHggMTE2NnB4ICMzMzJmMmYsIDc0NnB4IDE3NTFweCAjMzMyZjJmLCA0ODZweCA5NTFweCAjMzMyZjJmLCA1ODVweCAxMDA5cHggIzMzMmYyZiwgMTEwM3B4IDE4NjZweCAjMzMyZjJmLCAzMzJweCAxNjIzcHggIzMzMmYyZiwgMTAxcHggOTk3cHggIzMzMmYyZiwgNDc2cHggMTE0MHB4ICMzMzJmMmYsIDEzNHB4IDEwNzdweCAjMzMyZjJmLCAxNjI0cHggNzA0cHggIzMzMmYyZiwgMTc3cHggMTYxNXB4ICMzMzJmMmYsIDk1OHB4IDUzM3B4ICMzMzJmMmYsIDQxOXB4IDEyNzBweCAjMzMyZjJmLCA4NjVweCAzODhweCAjMzMyZjJmLCAyMDAwcHggODkzcHggIzMzMmYyZiwgNzY5cHggMTE3NXB4ICMzMzJmMmYsIDcwMHB4IDYxMnB4ICMzMzJmMmYsIDE1NTlweCA4MTVweCAjMzMyZjJmLCAxNzBweCAyMDAwcHggIzMzMmYyZiwgMjUxcHggMTkwNXB4ICMzMzJmMmYsIDE2MjFweCAxMDQ4cHggIzMzMmYyZiwgNzE3cHggMTA3M3B4ICMzMzJmMmYsIDIwNHB4IDkwNXB4ICMzMzJmMmYsIDE0NjBweCAyNTJweCAjMzMyZjJmLCA1NTJweCAxMjU5cHggIzMzMmYyZiwgMTI5OHB4IDkzNXB4ICMzMzJmMmYsIDkxNXB4IDIxMnB4ICMzMzJmMmYsIDkwOHB4IDE1NzdweCAjMzMyZjJmLCAxMzFweCAxNTY1cHggIzMzMmYyZiwgOTY5cHggNTg3cHggIzMzMmYyZiwgMTc0OXB4IDEwODJweCAjMzMyZjJmLCAxNXB4IDI1MXB4ICMzMzJmMmYsIDM2MnB4IDE2NjZweCAjMzMyZjJmLCAxNjE1cHggODBweCAjMzMyZjJmLCA2NTVweCAxMThweCAjMzMyZjJmLCAxNjJweCA4MTdweCAjMzMyZjJmLCAzNjJweCAxODIwcHggIzMzMmYyZiwgMTE0MHB4IDEwNTFweCAjMzMyZjJmLCA3NzNweCA3MjlweCAjMzMyZjJmLCAxMTY0cHggOTg2cHggIzMzMmYyZiwgODU0cHggMjZweCAjMzMyZjJmLCA3NDdweCAxMDk1cHggIzMzMmYyZiwgMTM3NHB4IDczMXB4ICMzMzJmMmYsIDE5MzhweCAxNDQ2cHggIzMzMmYyZiwgMTIzOHB4IDE3NjdweCAjMzMyZjJmLCAxNzlweCAxNjU5cHggIzMzMmYyZiwgMTM1OHB4IDEyMTdweCAjMzMyZjJmLCA1NzJweCA0ODBweCAjMzMyZjJmLCA5NTZweCAxNzJweCAjMzMyZjJmLCAxNDU1cHggMTA2M3B4ICMzMzJmMmYsIDE5MjNweCA2MTNweCAjMzMyZjJmLCAxNjY3cHggMzQ0cHggIzMzMmYyZiwgMTEwNnB4IDE5MzNweCAjMzMyZjJmLCA3NXB4IDE2OXB4ICMzMzJmMmYsIDE1NjRweCA5NDVweCAjMzMyZjJmLCA3NzZweCAxNzYxcHggIzMzMmYyZiwgNzgzcHggMjI0cHggIzMzMmYyZiwgODEzcHggNzUzcHggIzMzMmYyZiwgMTY0NHB4IDQ5MHB4ICMzMzJmMmYsIDExMTdweCA2NDNweCAjMzMyZjJmLCA3ODBweCAzMDJweCAjMzMyZjJmLCAxODkzcHggNDgxcHggIzMzMmYyZiwgOThweCAxMTkycHggIzMzMmYyZiwgNzE4cHggMTg4MXB4ICMzMzJmMmYsIDE1NjFweCA4MjRweCAjMzMyZjJmLCA3NTNweCAxMzlweCAjMzMyZjJmLCA5MDdweCA1OTdweCAjMzMyZjJmLCAxODgxcHggMTMzM3B4ICMzMzJmMmYsIDE1NTBweCAxNTU3cHggIzMzMmYyZiwgNDE5cHggMTA0MXB4ICMzMzJmMmYsIDI0MHB4IDE5NjJweCAjMzMyZjJmLCA5MzhweCAxMTE2cHggIzMzMmYyZiwgNDU5cHggMTI0NXB4ICMzMzJmMmYsIDg0OXB4IDU0NHB4ICMzMzJmMmYsIDEzNDNweCAxNjQ0cHggIzMzMmYyZiwgMTQzOHB4IDE5OTFweCAjMzMyZjJmLCAxOTc3cHggMjkycHggIzMzMmYyZiwgMTc3MnB4IDY1OHB4ICMzMzJmMmYsIDEzODJweCAxMDA3cHggIzMzMmYyZiwgMjk2cHggOTk0cHggIzMzMmYyZiwgMTYxNnB4IDIwNXB4ICMzMzJmMmYsIDk4OXB4IDE1MDJweCAjMzMyZjJmLCAxMjAxcHggMTI5N3B4ICMzMzJmMmYsIDg5NXB4IDE4MzVweCAjMzMyZjJmLCAxNTk2cHggNjM3cHggIzMzMmYyZiwgMTYwMXB4IDI0cHggIzMzMmYyZiwgMTA5N3B4IDI0MHB4ICMzMzJmMmYsIDM2NHB4IDU2M3B4ICMzMzJmMmYsIDE2ODZweCAyMDhweCAjMzMyZjJmLCA2MTJweCAzMTVweCAjMzMyZjJmLCAxODQ4cHggMTE3cHggIzMzMmYyZiwgMTE2NnB4IDg3MXB4ICMzMzJmMmYsIDE2NjJweCA2MzFweCAjMzMyZjJmLCA2MjJweCA1NTBweCAjMzMyZjJmLCAxOTgycHggNDU4cHggIzMzMmYyZiwgMTI3NHB4IDQzOXB4ICMzMzJmMmYsIDE0NzFweCAxNTMxcHggIzMzMmYyZiwgOTlweCA3MDFweCAjMzMyZjJmLCAxNzVweCAxNDU2cHggIzMzMmYyZiwgOTE3cHggMTU4NXB4ICMzMzJmMmYsIDE4NzVweCAyNzdweCAjMzMyZjJmLCA1NTVweCA0NjBweCAjMzMyZjJmLCAxNjFweCAxMjkwcHggIzMzMmYyZiwgNzcwcHggMTM4MXB4ICMzMzJmMmYsIDE1NDhweCAxOTE2cHggIzMzMmYyZiwgNDgycHggMzY2cHggIzMzMmYyZiwgOTIzcHggNzkxcHggIzMzMmYyZiwgNTgycHggMjI1cHggIzMzMmYyZiwgNjFweCAzMDJweCAjMzMyZjJmLCAzODNweCA1MjFweCAjMzMyZjJmLCAxOTZweCA0NDFweCAjMzMyZjJmLCAzMDhweCAxOTQ4cHggIzMzMmYyZiwgNDI1cHggNDI2cHggIzMzMmYyZiwgNTg5cHggMTM0N3B4ICMzMzJmMmYsIDE0MDlweCAxNTI4cHggIzMzMmYyZiwgMTQ5MnB4IDQzOHB4ICMzMzJmMmYsIDE1NjhweCAxMDI3cHggIzMzMmYyZiwgMTM3N3B4IDE3MzBweCAjMzMyZjJmLCAxMTg3cHggMTY5M3B4ICMzMzJmMmYsIDE4MDRweCA1NTJweCAjMzMyZjJmLCAxODU4cHggMTUxMnB4ICMzMzJmMmYsIDIwNHB4IDE1NjFweCAjMzMyZjJmLCAyMzdweCA5OTFweCAjMzMyZjJmLCA3MjZweCAxMzM0cHggIzMzMmYyZiwgNzE1cHggMTI0NHB4ICMzMzJmMmYsIDE1MDJweCAxNzA0cHggIzMzMmYyZiwgMTAwOHB4IDc5MnB4ICMzMzJmMmYsIDEyMTBweCAxNzAwcHggIzMzMmYyZiwgMTMycHggMTY2MnB4ICMzMzJmMmYsIDE3NzBweCA2OThweCAjMzMyZjJmLCA4MTJweCAxNzA2cHggIzMzMmYyZiwgMjE1cHggNTIxcHggIzMzMmYyZiwgMTk0N3B4IDU3NHB4ICMzMzJmMmYsIDIwMXB4IDY2OXB4ICMzMzJmMmYsIDEyNjVweCAxNjRweCAjMzMyZjJmLCA5NHB4IDQ1M3B4ICMzMzJmMmYsIDM5M3B4IDE0NDFweCAjMzMyZjJmLCAxNDM5cHggODQ3cHggIzMzMmYyZiwgMTA4NnB4IDc5cHggIzMzMmYyZiwgNDAycHggNDcxcHggIzMzMmYyZiwgMTk3MHB4IDEyMjJweCAjMzMyZjJmLCAxMzUxcHggMzkxcHggIzMzMmYyZiwgOTRweCA1NjZweCAjMzMyZjJmLCA1OTRweCAxODk0cHggIzMzMmYyZiwgMzYzcHggMTgzNHB4ICMzMzJmMmYsIDI2NnB4IDE0MDBweCAjMzMyZjJmLCA4OTlweCA5NzRweCAjMzMyZjJmLCAxNTkycHggNTgycHggIzMzMmYyZiwgMTEyOXB4IDU2NnB4ICMzMzJmMmYsIDUzM3B4IDEyNzRweCAjMzMyZjJmLCA0ODVweCAzNzNweCAjMzMyZjJmLCA4ODJweCAxNzg3cHggIzMzMmYyZiwgMTkzN3B4IDYzcHggIzMzMmYyZiwgMTk4N3B4IDE5MjFweCAjMzMyZjJmLCA2NXB4IDc2M3B4ICMzMzJmMmYsIDk2MnB4IDQ0NnB4ICMzMzJmMmYsIDkycHggMTEyNXB4ICMzMzJmMmYsIDEyODFweCA0OTFweCAjMzMyZjJmLCAxNzA0cHggMjg0cHggIzMzMmYyZiwgMTkwNHB4IDkyMXB4ICMzMzJmMmYsIDQwNHB4IDMyOHB4ICMzMzJmMmYsIDEzMDFweCAxNjk2cHggIzMzMmYyZiwgNDIwcHggMTM0cHggIzMzMmYyZiwgMjM3cHggMjg1cHggIzMzMmYyZiwgNjA0cHggMTg4MXB4ICMzMzJmMmYsIDg3OXB4IDgxNnB4ICMzMzJmMmYsIDE3M3B4IDEzM3B4ICMzMzJmMmYsIDE0OTFweCAxODlweCAjMzMyZjJmLCAzNjlweCA1NDhweCAjMzMyZjJmLCA0MjFweCA1MDNweCAjMzMyZjJmLCAxNTUzcHggMTg4M3B4ICMzMzJmMmYsIDg2M3B4IDEwNjhweCAjMzMyZjJmLCAxNTI2cHggMTExNXB4ICMzMzJmMmYsIDYzNnB4IDEyNThweCAjMzMyZjJmLCA3NzFweCAxMjI3cHggIzMzMmYyZiwgOTAycHggODM3cHggIzMzMmYyZiwgMTM4NXB4IDgxM3B4ICMzMzJmMmYsIDE5MDhweCA5NTdweCAjMzMyZjJmLCAxMDEycHggNDg1cHggIzMzMmYyZiwgODM5cHggNjc2cHggIzMzMmYyZiwgNzYzcHggMTYwMnB4ICMzMzJmMmYsIDE1NzBweCAxNDdweCAjMzMyZjJmLCAxMDlweCA1OTFweCAjMzMyZjJmLCAyNzJweCA3NzRweCAjMzMyZjJmLCAxNTE5cHggMzk1cHggIzMzMmYyZiwgNTU4cHggNjhweCAjMzMyZjJmLCAxMzk5cHggMjY0cHggIzMzMmYyZiwgMTk1OHB4IDQyM3B4ICMzMzJmMmYsIDE2MHB4IDQwcHggIzMzMmYyZiwgOTk0cHggMjgzcHggIzMzMmYyZiwgMTk2OXB4IDEwNTFweCAjMzMyZjJmLCA5NDRweCAxMDAwcHggIzMzMmYyZiwgMjI3cHggMTQ3NHB4ICMzMzJmMmYsIDE1N3B4IDE3NDRweCAjMzMyZjJmLCAxMjYxcHggNjk2cHggIzMzMmYyZiwgMTk1MHB4IDY5OXB4ICMzMzJmMmYsIDc3OHB4IDE4NThweCAjMzMyZjJmLCAxOTE1cHggMzAzcHggIzMzMmYyZiwgODVweCAxMTM1cHggIzMzMmYyZiwgMTkyM3B4IDU2cHggIzMzMmYyZiwgMzAycHggMTI1OHB4ICMzMzJmMmYsIDE3MzJweCAxNTA0cHggIzMzMmYyZiwgMTM0OXB4IDYxOXB4ICMzMzJmMmYsIDE2ODdweCAxNjAwcHggIzMzMmYyZiwgMTUwM3B4IDU3MHB4ICMzMzJmMmYsIDQ1N3B4IDEwNzVweCAjMzMyZjJmLCAzM3B4IDE5NzFweCAjMzMyZjJmLCAxODkzcHggNzMycHggIzMzMmYyZiwgMTc4NHB4IDEyNTdweCAjMzMyZjJmLCAxMDk1cHggMTMwOXB4ICMzMzJmMmYsIDE1MnB4IDE1MDBweCAjMzMyZjJmLCAxMzQxcHggNTAwcHggIzMzMmYyZiwgMjA3cHggMTc4N3B4ICMzMzJmMmYsIDEzMjVweCA2MzRweCAjMzMyZjJmLCAxNzIzcHggNzNweCAjMzMyZjJmLCAyNzBweCA4ODVweCAjMzMyZjJmLCA4NTdweCAxMTU2cHggIzMzMmYyZiwgMzU0cHggMTg3MHB4ICMzMzJmMmYsIDI0OHB4IDE1MTRweCAjMzMyZjJmLCA4ODlweCAxMzI0cHggIzMzMmYyZiwgMTkxMHB4IDQ2MHB4ICMzMzJmMmYsIDE4MjRweCAxMjY3cHggIzMzMmYyZiwgMTc3OXB4IDEyNXB4ICMzMzJmMmYsIDQ2MnB4IDE5OHB4ICMzMzJmMmYsIDM3MnB4IDIxMHB4ICMzMzJmMmYsIDk5MnB4IDQ5OHB4ICMzMzJmMmYsIDg3NnB4IDgyNnB4ICMzMzJmMmYsIDE4NDFweCAxMTRweCAjMzMyZjJmLCAxOTc4cHggNTI3cHggIzMzMmYyZiwgMTY4N3B4IDEyMTZweCAjMzMyZjJmLCA3OTVweCAxMzU3cHggIzMzMmYyZiwgMTM4cHggMTU1OXB4ICMzMzJmMmYsIDE2MjVweCA2NDNweCAjMzMyZjJmLCAxNDFweCA5MTBweCAjMzMyZjJmLCA1MDNweCAxNzAxcHggIzMzMmYyZiwgMTIxOXB4IDE4OTZweCAjMzMyZjJmLCA1NjRweCAxNjc1cHggIzMzMmYyZiwgODJweCAxMjg2cHggIzMzMmYyZiwgMTI2NnB4IDM3OXB4ICMzMzJmMmYsIDUxOHB4IDM3MHB4ICMzMzJmMmYsIDU2NnB4IDMyM3B4ICMzMzJmMmYsIDkyMHB4IDE1NzdweCAjMzMyZjJmLCAxMDkzcHggNjczcHggIzMzMmYyZiwgMTQxMXB4IDQyMnB4ICMzMzJmMmYsIDE1MTBweCAxMzg1cHggIzMzMmYyZiwgMTAzOXB4IDIyMHB4ICMzMzJmMmYsIDY0MnB4IDE2NzVweCAjMzMyZjJmLCA5MzFweCAxNTIwcHggIzMzMmYyZiwgMTkxNHB4IDE4ODVweCAjMzMyZjJmLCAxMDM4cHggMTcyN3B4ICMzMzJmMmYsIDExMzVweCAxOTM1cHggIzMzMmYyZiwgMTkwNHB4IDExMzNweCAjMzMyZjJmLCAxMjVweCA0MXB4ICMzMzJmMmYsIDEwMTlweCA3ODZweCAjMzMyZjJmLCAxNnB4IDE5MjVweCAjMzMyZjJmLCA4NzZweCA2NDRweCAjMzMyZjJmLCAxMTc3cHggMTA4NHB4ICMzMzJmMmYsIDU3NnB4IDgzNnB4ICMzMzJmMmYsIDI0OHB4IDQ2cHggIzMzMmYyZiwgOTM2cHggMTcyMHB4ICMzMzJmMmYsIDQwNnB4IDk4M3B4ICMzMzJmMmYsIDE2NjBweCA4MDFweCAjMzMyZjJmLCA3NTZweCAzNTdweCAjMzMyZjJmLCA1cHggMTI4cHggIzMzMmYyZiwgMTk3NHB4IDExMTBweCAjMzMyZjJmLCAxNjk0cHggMTYzMnB4ICMzMzJmMmYsIDE5NjlweCAxNDIwcHggIzMzMmYyZiwgNTE1cHggMTE3MHB4ICMzMzJmMmYsIDE1M3B4IDg0NXB4ICMzMzJmMmYsIDEwNzdweCAxMTY3cHggIzMzMmYyZiwgMTQxN3B4IDE3NjRweCAjMzMyZjJmLCAxOTM4cHggMTY0cHggIzMzMmYyZiwgMTE3OXB4IDEwMTVweCAjMzMyZjJmLCAzOTdweCA3OTdweCAjMzMyZjJmLCAzOTZweCAxNzk4cHggIzMzMmYyZiwgOTkwcHggOTdweCAjMzMyZjJmLCAxNTAzcHggMTE1OXB4ICMzMzJmMmYsIDU4NXB4IDEwNDNweCAjMzMyZjJmLCA3MHB4IDE4MnB4ICMzMzJmMmYsIDUyMXB4IDE3NDhweCAjMzMyZjJmLCAxMjJweCAxNDc2cHggIzMzMmYyZiwgOTBweCA3MzNweCAjMzMyZjJmLCA5NjlweCAyMDBweCAjMzMyZjJmLCA1MDhweCA2NDFweCAjMzMyZjJmLCAxNDc1cHggNTMycHggIzMzMmYyZiwgMzY3cHggNjUzcHggIzMzMmYyZiwgMTgxOXB4IDg0MnB4ICMzMzJmMmYsIDUxNXB4IDE4MDJweCAjMzMyZjJmLCA3NDlweCAxMDEycHggIzMzMmYyZiwgMTQxMnB4IDE5NzFweCAjMzMyZjJmLCAxMzExcHggNjc2cHggIzMzMmYyZiwgNjY2cHggNzcwcHggIzMzMmYyZiwgMTE5OHB4IDIxOHB4ICMzMzJmMmYsIDEwOTVweCA2NzZweCAjMzMyZjJmLCAxMDA4cHggMzgycHggIzMzMmYyZiwgMTIxcHggMTMyOHB4ICMzMzJmMmYsIDkxM3B4IDE2NDBweCAjMzMyZjJmLCAxOTI0cHggNDM4cHggIzMzMmYyZiwgMTQ2cHggMTg0OHB4ICMzMzJmMmYsIDE3MnB4IDUxM3B4ICMzMzJmMmYsIDE3MzVweCAxNTc0cHggIzMzMmYyZiwgNjM3cHggMTYyNnB4ICMzMzJmMmYsIDcxcHggMzAxcHggIzMzMmYyZiwgNzcwcHggNjY1cHggIzMzMmYyZiwgOTFweCAxMzI0cHggIzMzMmYyZiwgMTY0NXB4IDE3MTRweCAjMzMyZjJmLCAxMTk4cHggMTIyMXB4ICMzMzJmMmYsIDQzNnB4IDYxMXB4ICMzMzJmMmYsIDU0MXB4IDE2MzhweCAjMzMyZjJmLCAxMzZweCA3MjZweCAjMzMyZjJmLCA4MnB4IDE2NHB4ICMzMzJmMmYsIDEzNzFweCAxNXB4ICMzMzJmMmYsIDE0NjRweCA0ODdweCAjMzMyZjJmLCAyNDFweCAyM3B4ICMzMzJmMmYsIDE2MTlweCAxODE5cHggIzMzMmYyZiwgODMzcHggMTk4OHB4ICMzMzJmMmZ9I2JsYWNrLXN0YXJzLW1lZHt3aWR0aDoycHg7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxNDlweCAxMTQ2cHggIzMzMmYyZiwgNzg5cHggODQ0cHggIzMzMmYyZiwgMTAwOXB4IDExNzdweCAjMzMyZjJmLCA1OTVweCAxMDMycHggIzMzMmYyZiwgMTI4NXB4IDE0MjRweCAjMzMyZjJmLCAyNzhweCAxODUxcHggIzMzMmYyZiwgMTgxcHggMjg1cHggIzMzMmYyZiwgMTIwM3B4IDkzMnB4ICMzMzJmMmYsIDE2NTlweCAxMDE0cHggIzMzMmYyZiwgMTEyOXB4IDE3MzZweCAjMzMyZjJmLCAxODk4cHggMTYxOHB4ICMzMzJmMmYsIDE1ODVweCAxNTc5cHggIzMzMmYyZiwgMTExM3B4IDEyMjRweCAjMzMyZjJmLCAxOTE3cHggNjYxcHggIzMzMmYyZiwgODU4cHggMzY4cHggIzMzMmYyZiwgMjM2cHggNjA3cHggIzMzMmYyZiwgODA2cHggODI0cHggIzMzMmYyZiwgMTQ1OXB4IDE3ODFweCAjMzMyZjJmLCAxNTczcHggNTcwcHggIzMzMmYyZiwgMTk1M3B4IDQzcHggIzMzMmYyZiwgMTg1cHggNzA4cHggIzMzMmYyZiwgMTYzOXB4IDU4M3B4ICMzMzJmMmYsIDg4MHB4IDE5OTVweCAjMzMyZjJmLCAxMjE0cHggOTMwcHggIzMzMmYyZiwgNjU5cHggNDBweCAjMzMyZjJmLCAxMjc4cHggMTYxNHB4ICMzMzJmMmYsIDg3MHB4IDgzNnB4ICMzMzJmMmYsIDgwcHggMTMyNHB4ICMzMzJmMmYsIDE4NDlweCAxNTI3cHggIzMzMmYyZiwgMzUxcHggMTA0cHggIzMzMmYyZiwgMTU0OHB4IDEyMTBweCAjMzMyZjJmLCAxMjlweCA3NjhweCAjMzMyZjJmLCA1NDdweCA0NzRweCAjMzMyZjJmLCAxNjYycHggMTc2NnB4ICMzMzJmMmYsIDEyNDhweCA3MTJweCAjMzMyZjJmLCAxMDExcHggMTc1NHB4ICMzMzJmMmYsIDIwNHB4IDE2NjRweCAjMzMyZjJmLCAxMzQzcHggMTI5NnB4ICMzMzJmMmYsIDkxNXB4IDE3MjZweCAjMzMyZjJmLCAyNzFweCAyNDRweCAjMzMyZjJmLCA1OHB4IDM0OXB4ICMzMzJmMmYsIDE5NDZweCA4MDBweCAjMzMyZjJmLCAxMzgwcHggMzQ0cHggIzMzMmYyZiwgMjQwcHggMTYwN3B4ICMzMzJmMmYsIDExMzZweCAxNTkxcHggIzMzMmYyZiwgMTU5MnB4IDEyMDlweCAjMzMyZjJmLCAxOTU5cHggMTQ5M3B4ICMzMzJmMmYsIDEyMjBweCA1OTNweCAjMzMyZjJmLCAyOXB4IDE2MjFweCAjMzMyZjJmLCA2MzlweCAxMTRweCAjMzMyZjJmLCA3MDFweCAxODM4cHggIzMzMmYyZiwgNTA5cHggMTU0N3B4ICMzMzJmMmYsIDkzcHggNjY5cHggIzMzMmYyZiwgMTgzMHB4IDMycHggIzMzMmYyZiwgMTczMHB4IDEyOTJweCAjMzMyZjJmLCAxMDMxcHggMTYwN3B4ICMzMzJmMmYsIDExODhweCAxNzUycHggIzMzMmYyZiwgNDQ0cHggMTU4NXB4ICMzMzJmMmYsIDEyMTJweCAxMDI1cHggIzMzMmYyZiwgNjg1cHggOTBweCAjMzMyZjJmLCAxNDQ3cHggMTQ4OHB4ICMzMzJmMmYsIDQzMXB4IDE3OTNweCAjMzMyZjJmLCAzM3B4IDczN3B4ICMzMzJmMmYsIDg3MnB4IDEyNDNweCAjMzMyZjJmLCAxOTkxcHggNzQzcHggIzMzMmYyZiwgNzQ1cHggOTM5cHggIzMzMmYyZiwgMTIyNnB4IDg2MnB4ICMzMzJmMmYsIDEyMThweCAxODEzcHggIzMzMmYyZiwgMTU3NnB4IDQ2N3B4ICMzMzJmMmYsIDE4MDFweCAyOTVweCAjMzMyZjJmLCAxMTcycHggNTg4cHggIzMzMmYyZiwgMTE2cHggOTkzcHggIzMzMmYyZiwgNjEwcHggMTAwNXB4ICMzMzJmMmYsIDE5NTlweCAxOTAxcHggIzMzMmYyZiwgNjgwcHggNzAxcHggIzMzMmYyZiwgMTIzMnB4IDE3ODZweCAjMzMyZjJmLCAxMTIwcHggMTM2NnB4ICMzMzJmMmYsIDE0MzhweCA4MDVweCAjMzMyZjJmLCA0NDlweCAxMTY0cHggIzMzMmYyZiwgMzI5cHggMTUxNXB4ICMzMzJmMmYsIDEwMDBweCAxMTVweCAjMzMyZjJmLCA2NDBweCA1ODVweCAjMzMyZjJmLCAxOTEycHggMTc3cHggIzMzMmYyZiwgODI1cHggMTQ0NHB4ICMzMzJmMmYsIDEwNDNweCA1MjJweCAjMzMyZjJmLCAxMDU4cHggMTQyOHB4ICMzMzJmMmYsIDk2NHB4IDk1cHggIzMzMmYyZiwgOTUycHggMTEzMXB4ICMzMzJmMmYsIDI2N3B4IDE0MTVweCAjMzMyZjJmLCA4MjdweCA0NjdweCAjMzMyZjJmLCA3MDZweCA3NzJweCAjMzMyZjJmLCAxMDI0cHggMTM3cHggIzMzMmYyZiwgNzg1cHggMzgzcHggIzMzMmYyZiwgMzQzcHggMTA2NXB4ICMzMzJmMmYsIDE2MDBweCAzNjJweCAjMzMyZjJmLCAzNzRweCAxNTY0cHggIzMzMmYyZiwgMjM2cHggMTQ0MXB4ICMzMzJmMmYsIDgwOHB4IDQyNHB4ICMzMzJmMmYsIDE3OTRweCAxNzkxcHggIzMzMmYyZiwgMTY1MHB4IDEyODBweCAjMzMyZjJmLCAxMnB4IDkyOHB4ICMzMzJmMmYsIDE1MzRweCAxOTc5cHggIzMzMmYyZiwgNTAzcHggNDQ1cHggIzMzMmYyZiwgMjUzcHggMTA0NXB4ICMzMzJmMmYsIDE1MTlweCA4MTdweCAjMzMyZjJmLCAzOThweCAxMjYwcHggIzMzMmYyZiwgNDY0cHggOTk2cHggIzMzMmYyZiwgOTk1cHggMjI3cHggIzMzMmYyZiwgMTcyNnB4IDc1M3B4ICMzMzJmMmYsIDEzODdweCAxMTQxcHggIzMzMmYyZiwgMTg3MnB4IDEzNDdweCAjMzMyZjJmLCA5NDFweCA4MzRweCAjMzMyZjJmLCA0MzFweCAxNTAwcHggIzMzMmYyZiwgODgxcHggNTQ3cHggIzMzMmYyZiwgNTNweCAxMjkzcHggIzMzMmYyZiwgMTc0NnB4IDE4NTVweCAjMzMyZjJmLCAxODY3cHggMTYzcHggIzMzMmYyZiwgMTUxM3B4IDIzNXB4ICMzMzJmMmYsIDE1MDBweCA2MjNweCAjMzMyZjJmLCAxODgxcHggMTk4MHB4ICMzMzJmMmYsIDExOThweCAxNjQ4cHggIzMzMmYyZiwgMjg3cHggMTIzM3B4ICMzMzJmMmYsIDEwMDlweCAxMDgycHggIzMzMmYyZiwgMTYwOXB4IDEwODRweCAjMzMyZjJmLCAxOTE2cHggMzI1cHggIzMzMmYyZiwgODVweCAxODQycHggIzMzMmYyZiwgMTkzN3B4IDEyNjlweCAjMzMyZjJmLCA5cHggMTI4cHggIzMzMmYyZiwgMjg5cHggMzMzcHggIzMzMmYyZiwgMTA3OXB4IDE4MzVweCAjMzMyZjJmLCAyNnB4IDE1NzJweCAjMzMyZjJmLCAxNDA0cHggMTEyNXB4ICMzMzJmMmYsIDEyMTVweCA4NTBweCAjMzMyZjJmLCAzMDVweCA1MjBweCAjMzMyZjJmLCAxMTQ1cHggMTAzcHggIzMzMmYyZiwgMjMycHggODcwcHggIzMzMmYyZiwgODQ3cHggMzMzcHggIzMzMmYyZiwgNTg0cHggNjQwcHggIzMzMmYyZiwgODM2cHggODg2cHggIzMzMmYyZiwgMTcyMXB4IDQ2MnB4ICMzMzJmMmYsIDE2MDRweCA0MzRweCAjMzMyZjJmLCAyODRweCAxNDI4cHggIzMzMmYyZiwgMTA3NXB4IDY2MHB4ICMzMzJmMmYsIDg0NnB4IDExODFweCAjMzMyZjJmLCAzNDhweCAxMzgycHggIzMzMmYyZiwgMTU1M3B4IDEyODVweCAjMzMyZjJmLCAxNDg2cHggMTM3NnB4ICMzMzJmMmYsIDE0OTZweCA1MzFweCAjMzMyZjJmLCAxNDE3cHggMTk0cHggIzMzMmYyZiwgNTI0cHggOXB4ICMzMzJmMmYsIDEzNzlweCAxMTMycHggIzMzMmYyZiwgNzczcHggMTE5N3B4ICMzMzJmMmYsIDg1cHggMTk0NnB4ICMzMzJmMmYsIDE4MzRweCAxMTU3cHggIzMzMmYyZiwgMTY3MHB4IDMxNXB4ICMzMzJmMmYsIDRweCA4OTdweCAjMzMyZjJmLCAxMTE3cHggMTk3OXB4ICMzMzJmMmYsIDc3NHB4IDEyNTlweCAjMzMyZjJmLCAyMDRweCAxNTA5cHggIzMzMmYyZiwgMTI2OXB4IDg3OHB4ICMzMzJmMmYsIDE1NjJweCAxMjcxcHggIzMzMmYyZiwgNjIwcHggNjk1cHggIzMzMmYyZiwgMTI0N3B4IDExNDVweCAjMzMyZjJmLCAyODBweCAyMjVweCAjMzMyZjJmLCAxNjRweCAxNjI1cHggIzMzMmYyZiwgMTEwMXB4IDY2MnB4ICMzMzJmMmYsIDEwMTBweCAxMDgwcHggIzMzMmYyZiwgMTk2MXB4IDExMTFweCAjMzMyZjJmLCAxODU0cHggMTkyN3B4ICMzMzJmMmYsIDEzMzlweCAxNzYxcHggIzMzMmYyZiwgMTU3MXB4IDEzODZweCAjMzMyZjJmLCAxNTg4cHggMjQwcHggIzMzMmYyZiwgODExcHggMTMyNHB4ICMzMzJmMmYsIDEzMTRweCA4NDRweCAjMzMyZjJmLCAxMjUzcHggMTkxNHB4ICMzMzJmMmYsIDE1NzZweCAxMzYycHggIzMzMmYyZiwgOTg1cHggNzlweCAjMzMyZjJmLCAxNTM2cHggMTcyM3B4ICMzMzJmMmYsIDEzNXB4IDM3cHggIzMzMmYyZiwgMTc1NnB4IDE2NzBweCAjMzMyZjJmLCAxODY2cHggMTAzcHggIzMzMmYyZiwgMTc1N3B4IDkycHggIzMzMmYyZiwgMTc4OHB4IDE2ODRweCAjMzMyZjJmLCAxODVweCA2NDhweCAjMzMyZjJmLCA0NTZweCA0NjlweCAjMzMyZjJmLCA5NTBweCAxNzI0cHggIzMzMmYyZiwgMTM1NnB4IDE3MzBweCAjMzMyZjJmLCAxNTQ3cHggOTU4cHggIzMzMmYyZiwgOTI0cHggMTg5M3B4ICMzMzJmMmYsIDcwMnB4IDU0NHB4ICMzMzJmMmYsIDE4MzBweCAyMzFweCAjMzMyZjJmLCAxMzY4cHggMTI1cHggIzMzMmYyZiwgMTQ5NHB4IDIwMHB4ICMzMzJmMmYsIDM0OHB4IDkwOHB4ICMzMzJmMmYsIDEzMTZweCAxNTYxcHggIzMzMmYyZiwgNzA4cHggMTM2MXB4ICMzMzJmMmYsIDM5OHB4IDEyMTlweCAjMzMyZjJmLCAxNDI3cHggMTAzMHB4ICMzMzJmMmYsIDE2ODRweCAxOTBweCAjMzMyZjJmLCAxOTkwcHggMTIxNXB4ICMzMzJmMmY7YW5pbWF0aW9uOmFuaW1TdGFyIDE2N3MgbGluZWFyIGluZmluaXRlfSNibGFjay1zdGFycy1tZWQ6YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMDBweDt3aWR0aDoycHg7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxNDlweCAxMTQ2cHggIzMzMmYyZiwgNzg5cHggODQ0cHggIzMzMmYyZiwgMTAwOXB4IDExNzdweCAjMzMyZjJmLCA1OTVweCAxMDMycHggIzMzMmYyZiwgMTI4NXB4IDE0MjRweCAjMzMyZjJmLCAyNzhweCAxODUxcHggIzMzMmYyZiwgMTgxcHggMjg1cHggIzMzMmYyZiwgMTIwM3B4IDkzMnB4ICMzMzJmMmYsIDE2NTlweCAxMDE0cHggIzMzMmYyZiwgMTEyOXB4IDE3MzZweCAjMzMyZjJmLCAxODk4cHggMTYxOHB4ICMzMzJmMmYsIDE1ODVweCAxNTc5cHggIzMzMmYyZiwgMTExM3B4IDEyMjRweCAjMzMyZjJmLCAxOTE3cHggNjYxcHggIzMzMmYyZiwgODU4cHggMzY4cHggIzMzMmYyZiwgMjM2cHggNjA3cHggIzMzMmYyZiwgODA2cHggODI0cHggIzMzMmYyZiwgMTQ1OXB4IDE3ODFweCAjMzMyZjJmLCAxNTczcHggNTcwcHggIzMzMmYyZiwgMTk1M3B4IDQzcHggIzMzMmYyZiwgMTg1cHggNzA4cHggIzMzMmYyZiwgMTYzOXB4IDU4M3B4ICMzMzJmMmYsIDg4MHB4IDE5OTVweCAjMzMyZjJmLCAxMjE0cHggOTMwcHggIzMzMmYyZiwgNjU5cHggNDBweCAjMzMyZjJmLCAxMjc4cHggMTYxNHB4ICMzMzJmMmYsIDg3MHB4IDgzNnB4ICMzMzJmMmYsIDgwcHggMTMyNHB4ICMzMzJmMmYsIDE4NDlweCAxNTI3cHggIzMzMmYyZiwgMzUxcHggMTA0cHggIzMzMmYyZiwgMTU0OHB4IDEyMTBweCAjMzMyZjJmLCAxMjlweCA3NjhweCAjMzMyZjJmLCA1NDdweCA0NzRweCAjMzMyZjJmLCAxNjYycHggMTc2NnB4ICMzMzJmMmYsIDEyNDhweCA3MTJweCAjMzMyZjJmLCAxMDExcHggMTc1NHB4ICMzMzJmMmYsIDIwNHB4IDE2NjRweCAjMzMyZjJmLCAxMzQzcHggMTI5NnB4ICMzMzJmMmYsIDkxNXB4IDE3MjZweCAjMzMyZjJmLCAyNzFweCAyNDRweCAjMzMyZjJmLCA1OHB4IDM0OXB4ICMzMzJmMmYsIDE5NDZweCA4MDBweCAjMzMyZjJmLCAxMzgwcHggMzQ0cHggIzMzMmYyZiwgMjQwcHggMTYwN3B4ICMzMzJmMmYsIDExMzZweCAxNTkxcHggIzMzMmYyZiwgMTU5MnB4IDEyMDlweCAjMzMyZjJmLCAxOTU5cHggMTQ5M3B4ICMzMzJmMmYsIDEyMjBweCA1OTNweCAjMzMyZjJmLCAyOXB4IDE2MjFweCAjMzMyZjJmLCA2MzlweCAxMTRweCAjMzMyZjJmLCA3MDFweCAxODM4cHggIzMzMmYyZiwgNTA5cHggMTU0N3B4ICMzMzJmMmYsIDkzcHggNjY5cHggIzMzMmYyZiwgMTgzMHB4IDMycHggIzMzMmYyZiwgMTczMHB4IDEyOTJweCAjMzMyZjJmLCAxMDMxcHggMTYwN3B4ICMzMzJmMmYsIDExODhweCAxNzUycHggIzMzMmYyZiwgNDQ0cHggMTU4NXB4ICMzMzJmMmYsIDEyMTJweCAxMDI1cHggIzMzMmYyZiwgNjg1cHggOTBweCAjMzMyZjJmLCAxNDQ3cHggMTQ4OHB4ICMzMzJmMmYsIDQzMXB4IDE3OTNweCAjMzMyZjJmLCAzM3B4IDczN3B4ICMzMzJmMmYsIDg3MnB4IDEyNDNweCAjMzMyZjJmLCAxOTkxcHggNzQzcHggIzMzMmYyZiwgNzQ1cHggOTM5cHggIzMzMmYyZiwgMTIyNnB4IDg2MnB4ICMzMzJmMmYsIDEyMThweCAxODEzcHggIzMzMmYyZiwgMTU3NnB4IDQ2N3B4ICMzMzJmMmYsIDE4MDFweCAyOTVweCAjMzMyZjJmLCAxMTcycHggNTg4cHggIzMzMmYyZiwgMTE2cHggOTkzcHggIzMzMmYyZiwgNjEwcHggMTAwNXB4ICMzMzJmMmYsIDE5NTlweCAxOTAxcHggIzMzMmYyZiwgNjgwcHggNzAxcHggIzMzMmYyZiwgMTIzMnB4IDE3ODZweCAjMzMyZjJmLCAxMTIwcHggMTM2NnB4ICMzMzJmMmYsIDE0MzhweCA4MDVweCAjMzMyZjJmLCA0NDlweCAxMTY0cHggIzMzMmYyZiwgMzI5cHggMTUxNXB4ICMzMzJmMmYsIDEwMDBweCAxMTVweCAjMzMyZjJmLCA2NDBweCA1ODVweCAjMzMyZjJmLCAxOTEycHggMTc3cHggIzMzMmYyZiwgODI1cHggMTQ0NHB4ICMzMzJmMmYsIDEwNDNweCA1MjJweCAjMzMyZjJmLCAxMDU4cHggMTQyOHB4ICMzMzJmMmYsIDk2NHB4IDk1cHggIzMzMmYyZiwgOTUycHggMTEzMXB4ICMzMzJmMmYsIDI2N3B4IDE0MTVweCAjMzMyZjJmLCA4MjdweCA0NjdweCAjMzMyZjJmLCA3MDZweCA3NzJweCAjMzMyZjJmLCAxMDI0cHggMTM3cHggIzMzMmYyZiwgNzg1cHggMzgzcHggIzMzMmYyZiwgMzQzcHggMTA2NXB4ICMzMzJmMmYsIDE2MDBweCAzNjJweCAjMzMyZjJmLCAzNzRweCAxNTY0cHggIzMzMmYyZiwgMjM2cHggMTQ0MXB4ICMzMzJmMmYsIDgwOHB4IDQyNHB4ICMzMzJmMmYsIDE3OTRweCAxNzkxcHggIzMzMmYyZiwgMTY1MHB4IDEyODBweCAjMzMyZjJmLCAxMnB4IDkyOHB4ICMzMzJmMmYsIDE1MzRweCAxOTc5cHggIzMzMmYyZiwgNTAzcHggNDQ1cHggIzMzMmYyZiwgMjUzcHggMTA0NXB4ICMzMzJmMmYsIDE1MTlweCA4MTdweCAjMzMyZjJmLCAzOThweCAxMjYwcHggIzMzMmYyZiwgNDY0cHggOTk2cHggIzMzMmYyZiwgOTk1cHggMjI3cHggIzMzMmYyZiwgMTcyNnB4IDc1M3B4ICMzMzJmMmYsIDEzODdweCAxMTQxcHggIzMzMmYyZiwgMTg3MnB4IDEzNDdweCAjMzMyZjJmLCA5NDFweCA4MzRweCAjMzMyZjJmLCA0MzFweCAxNTAwcHggIzMzMmYyZiwgODgxcHggNTQ3cHggIzMzMmYyZiwgNTNweCAxMjkzcHggIzMzMmYyZiwgMTc0NnB4IDE4NTVweCAjMzMyZjJmLCAxODY3cHggMTYzcHggIzMzMmYyZiwgMTUxM3B4IDIzNXB4ICMzMzJmMmYsIDE1MDBweCA2MjNweCAjMzMyZjJmLCAxODgxcHggMTk4MHB4ICMzMzJmMmYsIDExOThweCAxNjQ4cHggIzMzMmYyZiwgMjg3cHggMTIzM3B4ICMzMzJmMmYsIDEwMDlweCAxMDgycHggIzMzMmYyZiwgMTYwOXB4IDEwODRweCAjMzMyZjJmLCAxOTE2cHggMzI1cHggIzMzMmYyZiwgODVweCAxODQycHggIzMzMmYyZiwgMTkzN3B4IDEyNjlweCAjMzMyZjJmLCA5cHggMTI4cHggIzMzMmYyZiwgMjg5cHggMzMzcHggIzMzMmYyZiwgMTA3OXB4IDE4MzVweCAjMzMyZjJmLCAyNnB4IDE1NzJweCAjMzMyZjJmLCAxNDA0cHggMTEyNXB4ICMzMzJmMmYsIDEyMTVweCA4NTBweCAjMzMyZjJmLCAzMDVweCA1MjBweCAjMzMyZjJmLCAxMTQ1cHggMTAzcHggIzMzMmYyZiwgMjMycHggODcwcHggIzMzMmYyZiwgODQ3cHggMzMzcHggIzMzMmYyZiwgNTg0cHggNjQwcHggIzMzMmYyZiwgODM2cHggODg2cHggIzMzMmYyZiwgMTcyMXB4IDQ2MnB4ICMzMzJmMmYsIDE2MDRweCA0MzRweCAjMzMyZjJmLCAyODRweCAxNDI4cHggIzMzMmYyZiwgMTA3NXB4IDY2MHB4ICMzMzJmMmYsIDg0NnB4IDExODFweCAjMzMyZjJmLCAzNDhweCAxMzgycHggIzMzMmYyZiwgMTU1M3B4IDEyODVweCAjMzMyZjJmLCAxNDg2cHggMTM3NnB4ICMzMzJmMmYsIDE0OTZweCA1MzFweCAjMzMyZjJmLCAxNDE3cHggMTk0cHggIzMzMmYyZiwgNTI0cHggOXB4ICMzMzJmMmYsIDEzNzlweCAxMTMycHggIzMzMmYyZiwgNzczcHggMTE5N3B4ICMzMzJmMmYsIDg1cHggMTk0NnB4ICMzMzJmMmYsIDE4MzRweCAxMTU3cHggIzMzMmYyZiwgMTY3MHB4IDMxNXB4ICMzMzJmMmYsIDRweCA4OTdweCAjMzMyZjJmLCAxMTE3cHggMTk3OXB4ICMzMzJmMmYsIDc3NHB4IDEyNTlweCAjMzMyZjJmLCAyMDRweCAxNTA5cHggIzMzMmYyZiwgMTI2OXB4IDg3OHB4ICMzMzJmMmYsIDE1NjJweCAxMjcxcHggIzMzMmYyZiwgNjIwcHggNjk1cHggIzMzMmYyZiwgMTI0N3B4IDExNDVweCAjMzMyZjJmLCAyODBweCAyMjVweCAjMzMyZjJmLCAxNjRweCAxNjI1cHggIzMzMmYyZiwgMTEwMXB4IDY2MnB4ICMzMzJmMmYsIDEwMTBweCAxMDgwcHggIzMzMmYyZiwgMTk2MXB4IDExMTFweCAjMzMyZjJmLCAxODU0cHggMTkyN3B4ICMzMzJmMmYsIDEzMzlweCAxNzYxcHggIzMzMmYyZiwgMTU3MXB4IDEzODZweCAjMzMyZjJmLCAxNTg4cHggMjQwcHggIzMzMmYyZiwgODExcHggMTMyNHB4ICMzMzJmMmYsIDEzMTRweCA4NDRweCAjMzMyZjJmLCAxMjUzcHggMTkxNHB4ICMzMzJmMmYsIDE1NzZweCAxMzYycHggIzMzMmYyZiwgOTg1cHggNzlweCAjMzMyZjJmLCAxNTM2cHggMTcyM3B4ICMzMzJmMmYsIDEzNXB4IDM3cHggIzMzMmYyZiwgMTc1NnB4IDE2NzBweCAjMzMyZjJmLCAxODY2cHggMTAzcHggIzMzMmYyZiwgMTc1N3B4IDkycHggIzMzMmYyZiwgMTc4OHB4IDE2ODRweCAjMzMyZjJmLCAxODVweCA2NDhweCAjMzMyZjJmLCA0NTZweCA0NjlweCAjMzMyZjJmLCA5NTBweCAxNzI0cHggIzMzMmYyZiwgMTM1NnB4IDE3MzBweCAjMzMyZjJmLCAxNTQ3cHggOTU4cHggIzMzMmYyZiwgOTI0cHggMTg5M3B4ICMzMzJmMmYsIDcwMnB4IDU0NHB4ICMzMzJmMmYsIDE4MzBweCAyMzFweCAjMzMyZjJmLCAxMzY4cHggMTI1cHggIzMzMmYyZiwgMTQ5NHB4IDIwMHB4ICMzMzJmMmYsIDM0OHB4IDkwOHB4ICMzMzJmMmYsIDEzMTZweCAxNTYxcHggIzMzMmYyZiwgNzA4cHggMTM2MXB4ICMzMzJmMmYsIDM5OHB4IDEyMTlweCAjMzMyZjJmLCAxNDI3cHggMTAzMHB4ICMzMzJmMmYsIDE2ODRweCAxOTBweCAjMzMyZjJmLCAxOTkwcHggMTIxNXB4ICMzMzJmMmZ9I2JsYWNrLXN0YXJzLWxne3dpZHRoOjNweDtoZWlnaHQ6M3B4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjExNzVweCAzNjBweCAjMzMyZjJmLCAzOTNweCAxMzE5cHggIzMzMmYyZiwgMTM0N3B4IDE5NTZweCAjMzMyZjJmLCAxNDA4cHggMTk2NXB4ICMzMzJmMmYsIDEzNTVweCAyOTJweCAjMzMyZjJmLCAxOTAycHggOTMxcHggIzMzMmYyZiwgMTU5NnB4IDExMTZweCAjMzMyZjJmLCAxcHggMjIxcHggIzMzMmYyZiwgMTMycHggMTA3OHB4ICMzMzJmMmYsIDExMDFweCAzNjhweCAjMzMyZjJmLCAxNDUxcHggMTI3NnB4ICMzMzJmMmYsIDMyN3B4IDQ0MnB4ICMzMzJmMmYsIDY2OHB4IDExMDZweCAjMzMyZjJmLCAxN3B4IDEyMDlweCAjMzMyZjJmLCAxNTI0cHggMTM3MnB4ICMzMzJmMmYsIDExODRweCAxNDExcHggIzMzMmYyZiwgMTM0cHggMTU4M3B4ICMzMzJmMmYsIDg2N3B4IDE0MDhweCAjMzMyZjJmLCA1NnB4IDEwMDhweCAjMzMyZjJmLCA1MjdweCAxNzAxcHggIzMzMmYyZiwgMTIwM3B4IDI4M3B4ICMzMzJmMmYsIDEyNzhweCA2MTRweCAjMzMyZjJmLCAxMDE0cHggMTU5cHggIzMzMmYyZiwgMTk0MHB4IDE3NzdweCAjMzMyZjJmLCA3NzBweCA0ODNweCAjMzMyZjJmLCA2OTNweCAzMTlweCAjMzMyZjJmLCAxOTY4cHggMTMwOHB4ICMzMzJmMmYsIDE4ODhweCAxNjY1cHggIzMzMmYyZiwgNzg4cHggMTI2MnB4ICMzMzJmMmYsIDI3NHB4IDk4OHB4ICMzMzJmMmYsIDE1ODFweCAxNjU3cHggIzMzMmYyZiwgMTY2OHB4IDU5cHggIzMzMmYyZiwgNjYxcHggMTU2MHB4ICMzMzJmMmYsIDg5cHggMzk4cHggIzMzMmYyZiwgMTYxN3B4IDE4MDZweCAjMzMyZjJmLCAxODAwcHggOTY3cHggIzMzMmYyZiwgMzk2cHggMTI3OXB4ICMzMzJmMmYsIDM1OHB4IDI2OXB4ICMzMzJmMmYsIDE4MjhweCAxMjc1cHggIzMzMmYyZiwgNzYycHggNjU2cHggIzMzMmYyZiwgNTYxcHggMTMwNnB4ICMzMzJmMmYsIDUyMXB4IDE4MzBweCAjMzMyZjJmLCAxODcycHggMTU4NHB4ICMzMzJmMmYsIDkwOXB4IDEzMjlweCAjMzMyZjJmLCAxODdweCA0NjZweCAjMzMyZjJmLCAxNDkxcHggMTAwMHB4ICMzMzJmMmYsIDEyNTlweCAxNDg0cHggIzMzMmYyZiwgN3B4IDg1NHB4ICMzMzJmMmYsIDE5MDZweCAxMDgxcHggIzMzMmYyZiwgMTYxMHB4IDg2cHggIzMzMmYyZiwgMTk1MnB4IDEyMjdweCAjMzMyZjJmLCA3MjRweCAxMTMycHggIzMzMmYyZiwgNTYxcHggMTc2MXB4ICMzMzJmMmYsIDE4MzhweCAyNzlweCAjMzMyZjJmLCA2NDhweCAzMDNweCAjMzMyZjJmLCAxNzQycHggNzgwcHggIzMzMmYyZiwgMTM0M3B4IDEzODlweCAjMzMyZjJmLCAxNzM0cHggMTI4M3B4ICMzMzJmMmYsIDE2MjJweCA2NzRweCAjMzMyZjJmLCAxNTM3cHggMTIxOXB4ICMzMzJmMmYsIDE5NzJweCAxNzA1cHggIzMzMmYyZiwgMTM2MHB4IDU0M3B4ICMzMzJmMmYsIDgwOHB4IDc3OHB4ICMzMzJmMmYsIDE2MHB4IDEyMTJweCAjMzMyZjJmLCAxNzY4cHggODgwcHggIzMzMmYyZiwgMTU1OHB4IDEzNzRweCAjMzMyZjJmLCAxMDZweCAxMTA0cHggIzMzMmYyZiwgNDNweCAxMDE5cHggIzMzMmYyZiwgNzk1cHggNzI4cHggIzMzMmYyZiwgMTIxMnB4IDE0MDlweCAjMzMyZjJmLCA3NDdweCAxNjA3cHggIzMzMmYyZiwgNjMxcHggMTA0NnB4ICMzMzJmMmYsIDE4MDZweCA1NTlweCAjMzMyZjJmLCAxNjUzcHggMTAxN3B4ICMzMzJmMmYsIDU0OXB4IDk4MHB4ICMzMzJmMmYsIDE3NDZweCAzMzlweCAjMzMyZjJmLCA5NzlweCAxOTU0cHggIzMzMmYyZiwgMTU5N3B4IDEzNTJweCAjMzMyZjJmLCA5NzZweCA1OTFweCAjMzMyZjJmLCAzNjRweCAxNTY4cHggIzMzMmYyZiwgMjI5cHggMTAzcHggIzMzMmYyZiwgMTk0M3B4IDU1N3B4ICMzMzJmMmYsIDI0NXB4IDEyNjhweCAjMzMyZjJmLCAzOTdweCAxNDE0cHggIzMzMmYyZiwgMTUyMHB4IDkwMHB4ICMzMzJmMmYsIDY4NHB4IDYwcHggIzMzMmYyZiwgMzE1cHggNDMzcHggIzMzMmYyZiwgNTU2cHggMzMzcHggIzMzMmYyZiwgMTk2NHB4IDExNzNweCAjMzMyZjJmLCAzNjFweCAxNDcwcHggIzMzMmYyZiwgMTk5MnB4IDM2NnB4ICMzMzJmMmYsIDU2M3B4IDYyMHB4ICMzMzJmMmYsIDE0MTBweCA3M3B4ICMzMzJmMmYsIDE2MzNweCAxODEwcHggIzMzMmYyZiwgMTQ0cHggMTk2MXB4ICMzMzJmMmYsIDcwNnB4IDM1NXB4ICMzMzJmMmYsIDEzMDBweCA1NDFweCAjMzMyZjJmLCAxMDk3cHggMTk5OHB4ICMzMzJmMmYsIDE3ODVweCA3MjRweCAjMzMyZjJmLCA3NzlweCA0MTdweCAjMzMyZjJmO2FuaW1hdGlvbjphbmltU3RhciAyNTBzIGxpbmVhciBpbmZpbml0ZX0jYmxhY2stc3RhcnMtbGc6YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMDBweDt3aWR0aDozcHg7aGVpZ2h0OjNweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxMTc1cHggMzYwcHggIzMzMmYyZiwgMzkzcHggMTMxOXB4ICMzMzJmMmYsIDEzNDdweCAxOTU2cHggIzMzMmYyZiwgMTQwOHB4IDE5NjVweCAjMzMyZjJmLCAxMzU1cHggMjkycHggIzMzMmYyZiwgMTkwMnB4IDkzMXB4ICMzMzJmMmYsIDE1OTZweCAxMTE2cHggIzMzMmYyZiwgMXB4IDIyMXB4ICMzMzJmMmYsIDEzMnB4IDEwNzhweCAjMzMyZjJmLCAxMTAxcHggMzY4cHggIzMzMmYyZiwgMTQ1MXB4IDEyNzZweCAjMzMyZjJmLCAzMjdweCA0NDJweCAjMzMyZjJmLCA2NjhweCAxMTA2cHggIzMzMmYyZiwgMTdweCAxMjA5cHggIzMzMmYyZiwgMTUyNHB4IDEzNzJweCAjMzMyZjJmLCAxMTg0cHggMTQxMXB4ICMzMzJmMmYsIDEzNHB4IDE1ODNweCAjMzMyZjJmLCA4NjdweCAxNDA4cHggIzMzMmYyZiwgNTZweCAxMDA4cHggIzMzMmYyZiwgNTI3cHggMTcwMXB4ICMzMzJmMmYsIDEyMDNweCAyODNweCAjMzMyZjJmLCAxMjc4cHggNjE0cHggIzMzMmYyZiwgMTAxNHB4IDE1OXB4ICMzMzJmMmYsIDE5NDBweCAxNzc3cHggIzMzMmYyZiwgNzcwcHggNDgzcHggIzMzMmYyZiwgNjkzcHggMzE5cHggIzMzMmYyZiwgMTk2OHB4IDEzMDhweCAjMzMyZjJmLCAxODg4cHggMTY2NXB4ICMzMzJmMmYsIDc4OHB4IDEyNjJweCAjMzMyZjJmLCAyNzRweCA5ODhweCAjMzMyZjJmLCAxNTgxcHggMTY1N3B4ICMzMzJmMmYsIDE2NjhweCA1OXB4ICMzMzJmMmYsIDY2MXB4IDE1NjBweCAjMzMyZjJmLCA4OXB4IDM5OHB4ICMzMzJmMmYsIDE2MTdweCAxODA2cHggIzMzMmYyZiwgMTgwMHB4IDk2N3B4ICMzMzJmMmYsIDM5NnB4IDEyNzlweCAjMzMyZjJmLCAzNThweCAyNjlweCAjMzMyZjJmLCAxODI4cHggMTI3NXB4ICMzMzJmMmYsIDc2MnB4IDY1NnB4ICMzMzJmMmYsIDU2MXB4IDEzMDZweCAjMzMyZjJmLCA1MjFweCAxODMwcHggIzMzMmYyZiwgMTg3MnB4IDE1ODRweCAjMzMyZjJmLCA5MDlweCAxMzI5cHggIzMzMmYyZiwgMTg3cHggNDY2cHggIzMzMmYyZiwgMTQ5MXB4IDEwMDBweCAjMzMyZjJmLCAxMjU5cHggMTQ4NHB4ICMzMzJmMmYsIDdweCA4NTRweCAjMzMyZjJmLCAxOTA2cHggMTA4MXB4ICMzMzJmMmYsIDE2MTBweCA4NnB4ICMzMzJmMmYsIDE5NTJweCAxMjI3cHggIzMzMmYyZiwgNzI0cHggMTEzMnB4ICMzMzJmMmYsIDU2MXB4IDE3NjFweCAjMzMyZjJmLCAxODM4cHggMjc5cHggIzMzMmYyZiwgNjQ4cHggMzAzcHggIzMzMmYyZiwgMTc0MnB4IDc4MHB4ICMzMzJmMmYsIDEzNDNweCAxMzg5cHggIzMzMmYyZiwgMTczNHB4IDEyODNweCAjMzMyZjJmLCAxNjIycHggNjc0cHggIzMzMmYyZiwgMTUzN3B4IDEyMTlweCAjMzMyZjJmLCAxOTcycHggMTcwNXB4ICMzMzJmMmYsIDEzNjBweCA1NDNweCAjMzMyZjJmLCA4MDhweCA3NzhweCAjMzMyZjJmLCAxNjBweCAxMjEycHggIzMzMmYyZiwgMTc2OHB4IDg4MHB4ICMzMzJmMmYsIDE1NThweCAxMzc0cHggIzMzMmYyZiwgMTA2cHggMTEwNHB4ICMzMzJmMmYsIDQzcHggMTAxOXB4ICMzMzJmMmYsIDc5NXB4IDcyOHB4ICMzMzJmMmYsIDEyMTJweCAxNDA5cHggIzMzMmYyZiwgNzQ3cHggMTYwN3B4ICMzMzJmMmYsIDYzMXB4IDEwNDZweCAjMzMyZjJmLCAxODA2cHggNTU5cHggIzMzMmYyZiwgMTY1M3B4IDEwMTdweCAjMzMyZjJmLCA1NDlweCA5ODBweCAjMzMyZjJmLCAxNzQ2cHggMzM5cHggIzMzMmYyZiwgOTc5cHggMTk1NHB4ICMzMzJmMmYsIDE1OTdweCAxMzUycHggIzMzMmYyZiwgOTc2cHggNTkxcHggIzMzMmYyZiwgMzY0cHggMTU2OHB4ICMzMzJmMmYsIDIyOXB4IDEwM3B4ICMzMzJmMmYsIDE5NDNweCA1NTdweCAjMzMyZjJmLCAyNDVweCAxMjY4cHggIzMzMmYyZiwgMzk3cHggMTQxNHB4ICMzMzJmMmYsIDE1MjBweCA5MDBweCAjMzMyZjJmLCA2ODRweCA2MHB4ICMzMzJmMmYsIDMxNXB4IDQzM3B4ICMzMzJmMmYsIDU1NnB4IDMzM3B4ICMzMzJmMmYsIDE5NjRweCAxMTczcHggIzMzMmYyZiwgMzYxcHggMTQ3MHB4ICMzMzJmMmYsIDE5OTJweCAzNjZweCAjMzMyZjJmLCA1NjNweCA2MjBweCAjMzMyZjJmLCAxNDEwcHggNzNweCAjMzMyZjJmLCAxNjMzcHggMTgxMHB4ICMzMzJmMmYsIDE0NHB4IDE5NjFweCAjMzMyZjJmLCA3MDZweCAzNTVweCAjMzMyZjJmLCAxMzAwcHggNTQxcHggIzMzMmYyZiwgMTA5N3B4IDE5OThweCAjMzMyZjJmLCAxNzg1cHggNzI0cHggIzMzMmYyZiwgNzc5cHggNDE3cHggIzMzMmYyZn1Aa2V5ZnJhbWVzIGFuaW1TdGFye2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwMHB4KX19"},{"meta":{"name":"white.min.css","url":"https://assets.aiwebextensions.com/styles/rising-stars/dist/white.min.css?v=3289404#sha256-tOOIvIe6O5/x2A5E7s9kP4+zw0d4EEDfRgXQLq2KwLs=","ts":1764084296556,"mimetype":"text/css"},"source":"I3doaXRlLXN0YXJzLXNte3dpZHRoOjFweDtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjI5MXB4IDE5ODFweCAjZmZmLCAxNjAxcHggMzMycHggI2ZmZiwgMTAwN3B4IDIyOXB4ICNmZmYsIDEzNTFweCA2MzFweCAjZmZmLCAxMzE3cHggMTgwMHB4ICNmZmYsIDcyNnB4IDE2MzhweCAjZmZmLCAxNzM2cHggNjI4cHggI2ZmZiwgODU5cHggMTE5N3B4ICNmZmYsIDQzNnB4IDIyNHB4ICNmZmYsIDEyNjNweCAyNzVweCAjZmZmLCAxMDAxcHggMTg5OHB4ICNmZmYsIDExODJweCAyODdweCAjZmZmLCAxMTc4cHggMTE0OHB4ICNmZmYsIDg3MXB4IDE0NjVweCAjZmZmLCAxOTgycHggNDQxcHggI2ZmZiwgMjk5cHggMTY3N3B4ICNmZmYsIDE0NzFweCAxNThweCAjZmZmLCA0NjVweCAxMjk2cHggI2ZmZiwgMTc4OXB4IDEyMTFweCAjZmZmLCA5MjdweCAxOTg3cHggI2ZmZiwgODE5cHggNjE2cHggI2ZmZiwgMTM2MnB4IDExOTJweCAjZmZmLCA4ODVweCA0NzlweCAjZmZmLCAxODQzcHggMTM0MXB4ICNmZmYsIDEwNjhweCA3NzdweCAjZmZmLCA5MjdweCA5MjFweCAjZmZmLCAxOTRweCAxNTA4cHggI2ZmZiwgMzE1cHggOTkycHggI2ZmZiwgMTI3MHB4IDE5ODBweCAjZmZmLCA0NjFweCAxNDA2cHggI2ZmZiwgODA5cHggNDIxcHggI2ZmZiwgOTU1cHggNTgycHggI2ZmZiwgODQ0cHggMTI3N3B4ICNmZmYsIDEzNnB4IDE3NzBweCAjZmZmLCA2NjdweCAzMTNweCAjZmZmLCA3NzJweCAxMDBweCAjZmZmLCA5ODFweCAxOTgycHggI2ZmZiwgNTA0cHggMTg1NnB4ICNmZmYsIDE0MzZweCAzOTlweCAjZmZmLCA5MDVweCA1ODhweCAjZmZmLCAxNjk3cHggMjc4cHggI2ZmZiwgOTA1cHggMTIwOHB4ICNmZmYsIDEzOTBweCAxNzM3cHggI2ZmZiwgNjE5cHggMzA2cHggI2ZmZiwgNTIycHggODUzcHggI2ZmZiwgMTE0MHB4IDEyNDNweCAjZmZmLCA1MzlweCA1MDVweCAjZmZmLCA1NDNweCAxMzc3cHggI2ZmZiwgMTExMnB4IDcwNnB4ICNmZmYsIDEyODVweCAxODM2cHggI2ZmZiwgMjI4cHggNTc2cHggI2ZmZiwgNDFweCA4NzhweCAjZmZmLCA4MjFweCAxNzQ1cHggI2ZmZiwgMTA1OXB4IDE4MTdweCAjZmZmLCA4MzdweCAxNzU3cHggI2ZmZiwgMTcyMnB4IDk5MHB4ICNmZmYsIDE2NTZweCA2MjJweCAjZmZmLCAxNTU4cHggMTk1OHB4ICNmZmYsIDEwMzRweCA5MTRweCAjZmZmLCAxOTlweCA2ODFweCAjZmZmLCAxMDQ2cHggMTk4OXB4ICNmZmYsIDM2OHB4IDE2MTNweCAjZmZmLCAxNzA3cHggMTE3MXB4ICNmZmYsIDg0OXB4IDEwNDFweCAjZmZmLCA4OTJweCAxMTA5cHggI2ZmZiwgMTY5MnB4IDU4OXB4ICNmZmYsIDIyMnB4IDk2cHggI2ZmZiwgMTYyMnB4IDUwMnB4ICNmZmYsIDE5MjdweCAxMDk1cHggI2ZmZiwgMTUyOXB4IDEzMTRweCAjZmZmLCAxMTIwcHggNTRweCAjZmZmLCAyNjRweCAxMzE2cHggI2ZmZiwgMTUyN3B4IDE3ODRweCAjZmZmLCA1ODJweCA5NjlweCAjZmZmLCAxNzgwcHggMTk1M3B4ICNmZmYsIDEyOTlweCAxMjBweCAjZmZmLCAxNTEzcHggMTkxNnB4ICNmZmYsIDExNjlweCAxNTA2cHggI2ZmZiwgMTgxNXB4IDEwNzhweCAjZmZmLCAxNDk1cHggNDIycHggI2ZmZiwgMjA3cHggMTA1OXB4ICNmZmYsIDc3NXB4IDEwMDFweCAjZmZmLCAzOThweCA4OTlweCAjZmZmLCA3NDBweCA5MjJweCAjZmZmLCA5NzRweCA1NDRweCAjZmZmLCAxMjkzcHggNzEwcHggI2ZmZiwgNXB4IDEzNjVweCAjZmZmLCAxNDY4cHggOTI0cHggI2ZmZiwgNzc5cHggNjUzcHggI2ZmZiwgNDg2cHggOThweCAjZmZmLCAxODUycHggMjY0cHggI2ZmZiwgNjQ3cHggNDg5cHggI2ZmZiwgMTgyNXB4IDE3NTBweCAjZmZmLCAxOTY4cHggMTQyNnB4ICNmZmYsIDE4NXB4IDI0M3B4ICNmZmYsIDk2MHB4IDE5NXB4ICNmZmYsIDEwNjBweCAyNjZweCAjZmZmLCA1NjdweCAxMDQxcHggI2ZmZiwgNzQ5cHggOTZweCAjZmZmLCAyNjNweCA5OHB4ICNmZmYsIDE1NzZweCAxOTNweCAjZmZmLCA0NjhweCAxNzY5cHggI2ZmZiwgMTgxM3B4IDE0ODFweCAjZmZmLCA1MzRweCAxNTc4cHggI2ZmZiwgMTMzOHB4IDk2NnB4ICNmZmYsIDE1MTJweCAxOThweCAjZmZmLCAxMjQxcHggNTg2cHggI2ZmZiwgMTk3NXB4IDkxNHB4ICNmZmYsIDI3NXB4IDE4MjNweCAjZmZmLCA2MHB4IDE2MXB4ICNmZmYsIDI3OHB4IDI0M3B4ICNmZmYsIDI4MHB4IDE5MjJweCAjZmZmLCA2NThweCAxMzQ2cHggI2ZmZiwgMTQ4N3B4IDI0NHB4ICNmZmYsIDU1OXB4IDE2M3B4ICNmZmYsIDE1MTNweCAyNjhweCAjZmZmLCAxMTc4cHggMTM5NHB4ICNmZmYsIDEyMTdweCAxMDM2cHggI2ZmZiwgMTk0NnB4IDE0ODFweCAjZmZmLCAxMTgycHggMTE1M3B4ICNmZmYsIDM3NXB4IDEwMzhweCAjZmZmLCAxMzMxcHggOTA2cHggI2ZmZiwgNzczcHggNzI0cHggI2ZmZiwgMTI2cHggMTg4M3B4ICNmZmYsIDE0MjVweCA5ODlweCAjZmZmLCAxNDM3cHggMTQwNXB4ICNmZmYsIDcxcHggMTUwMXB4ICNmZmYsIDEwNDhweCA0MTVweCAjZmZmLCAxMDk5cHggMTI0OHB4ICNmZmYsIDI4OHB4IDEyMDBweCAjZmZmLCAzNTZweCAxOTUycHggI2ZmZiwgNjE4cHggMTQ4N3B4ICNmZmYsIDcyMHB4IDE3NzFweCAjZmZmLCA3OTFweCAxMjk1cHggI2ZmZiwgMTczMXB4IDY1NHB4ICNmZmYsIDU3MHB4IDQ2N3B4ICNmZmYsIDE0NTJweCAzMzJweCAjZmZmLCAxMDAzcHggMTAzM3B4ICNmZmYsIDc4OHB4IDcwcHggI2ZmZiwgMTQwM3B4IDE2NzRweCAjZmZmLCA5MTJweCAxNzU4cHggI2ZmZiwgMTgwN3B4IDE0MTZweCAjZmZmLCA4MDJweCA3OTBweCAjZmZmLCAxNjc1cHggMTQxOHB4ICNmZmYsIDE1MjFweCA4ODJweCAjZmZmLCAxNjEzcHggMzA0cHggI2ZmZiwgNDk5cHggMTUwOXB4ICNmZmYsIDE4MDdweCAxNjk0cHggI2ZmZiwgMTAwM3B4IDEyMjJweCAjZmZmLCA3NThweCA0MTFweCAjZmZmLCAxMjg1cHggNDA4cHggI2ZmZiwgNjYycHggMTc3OXB4ICNmZmYsIDE4MDlweCA1MjBweCAjZmZmLCAxOTFweCAyMjVweCAjZmZmLCAyOTNweCA5MjhweCAjZmZmLCAzNHB4IDkzMnB4ICNmZmYsIDE1NzBweCA0NjFweCAjZmZmLCA5MDNweCA2MTdweCAjZmZmLCAyNDBweCAxMjkxcHggI2ZmZiwgODIzcHggMzY5cHggI2ZmZiwgMTY4MnB4IDE3MDBweCAjZmZmLCA4MTZweCAxMDE2cHggI2ZmZiwgMTQwN3B4IDY1OHB4ICNmZmYsIDE4NDFweCAyMDNweCAjZmZmLCA3MDlweCA3MDhweCAjZmZmLCAxMDU2cHggMTM5MXB4ICNmZmYsIDkwNnB4IDYwMnB4ICNmZmYsIDM4N3B4IDM2OHB4ICNmZmYsIDEyMzJweCA2MzFweCAjZmZmLCAxNjc0cHggMTcxMnB4ICNmZmYsIDE5MzlweCAxMDQwcHggI2ZmZiwgMTIxNnB4IDE1ODJweCAjZmZmLCAxODQ2cHggMjk3cHggI2ZmZiwgMTcxMXB4IDE0NTdweCAjZmZmLCAxMTM3cHggMTkyNXB4ICNmZmYsIDg5OHB4IDg3MnB4ICNmZmYsIDEzMjVweCA2MjJweCAjZmZmLCA4MjNweCA4NjBweCAjZmZmLCAzNDFweCAyMTFweCAjZmZmLCA2cHggMTg0NXB4ICNmZmYsIDE0MDBweCAxNjg0cHggI2ZmZiwgMTE2M3B4IDE3ODFweCAjZmZmLCAxODQycHggNzE4cHggI2ZmZiwgNTUycHggNjQ4cHggI2ZmZiwgNjA4cHggMTY3cHggI2ZmZiwgODIwcHggMTQzOHB4ICNmZmYsIDE2NHB4IDY1OXB4ICNmZmYsIDEwNDVweCA3OTZweCAjZmZmLCAzcHggMTgzOHB4ICNmZmYsIDEyMDRweCA4MjdweCAjZmZmLCA5MTNweCAxMTU2cHggI2ZmZiwgMTUyM3B4IDgxNXB4ICNmZmYsIDg0NnB4IDYwN3B4ICNmZmYsIDE4MjhweCA2MzBweCAjZmZmLCAxODg1cHggOTAycHggI2ZmZiwgMTA0NnB4IDUwN3B4ICNmZmYsIDI3cHggMTUyOHB4ICNmZmYsIDc1OHB4IDE3NDhweCAjZmZmLCAxNzU5cHggMTk5N3B4ICNmZmYsIDExNDRweCAxOTEycHggI2ZmZiwgOTA5cHggMTEwN3B4ICNmZmYsIDQ1OHB4IDk0NHB4ICNmZmYsIDY2M3B4IDI3M3B4ICNmZmYsIDJweCA2OHB4ICNmZmYsIDIwNHB4IDE4MTVweCAjZmZmLCAxMDNweCAxODgycHggI2ZmZiwgMjgzcHggMTgwNXB4ICNmZmYsIDc4OHB4IDEyMjBweCAjZmZmLCAzNzVweCAxMDk2cHggI2ZmZiwgNzYwcHggMzU0cHggI2ZmZiwgNzc1cHggMTU1OXB4ICNmZmYsIDUzN3B4IDg4OXB4ICNmZmYsIDE2MjNweCAxMTk1cHggI2ZmZiwgMTA0MXB4IDEzMnB4ICNmZmYsIDE0NDlweCA4NzdweCAjZmZmLCAxNzkxcHggNDk2cHggI2ZmZiwgMTk1N3B4IDE4ODZweCAjZmZmLCAxNjU1cHggMTI0OXB4ICNmZmYsIDQ3MHB4IDEyNnB4ICNmZmYsIDE2NjlweCAxNzAycHggI2ZmZiwgNDA3cHggMzU4cHggI2ZmZiwgMTgzMnB4IDE0MTVweCAjZmZmLCA4NTJweCAxOTQ2cHggI2ZmZiwgMTEwOXB4IDE1MDRweCAjZmZmLCA0OTNweCA0NzVweCAjZmZmLCAxMjI2cHggMzUxcHggI2ZmZiwgMTg1N3B4IDQ5cHggI2ZmZiwgMTEzM3B4IDQyMHB4ICNmZmYsIDM5MHB4IDEzMDZweCAjZmZmLCA0MjVweCAxNDg5cHggI2ZmZiwgNjI5cHggMTI2N3B4ICNmZmYsIDEzMzVweCAxMzM5cHggI2ZmZiwgMTQyNHB4IDgwNXB4ICNmZmYsIDM4MHB4IDQwNHB4ICNmZmYsIDI1OHB4IDE0MDFweCAjZmZmLCAxMzk0cHggMTAyMXB4ICNmZmYsIDQ1MHB4IDM4MnB4ICNmZmYsIDEwOTBweCA3MzRweCAjZmZmLCAzMTdweCA5MzBweCAjZmZmLCAxNjE1cHggMTYxMXB4ICNmZmYsIDIyNXB4IDE5MjdweCAjZmZmLCA4NXB4IDgwMHB4ICNmZmYsIDEyNDZweCA3cHggI2ZmZiwgNTE4cHggMzYycHggI2ZmZiwgMTc1MXB4IDQ1OHB4ICNmZmYsIDc5NnB4IDE5NDVweCAjZmZmLCA3ODZweCA5MDVweCAjZmZmLCAxOTQzcHggMTEwNHB4ICNmZmYsIDMyNnB4IDEyNzdweCAjZmZmLCAxMTczcHggMTQ5MXB4ICNmZmYsIDk4MXB4IDE3MzJweCAjZmZmLCAxOTgzcHggMzkwcHggI2ZmZiwgNDk5cHggMzgxcHggI2ZmZiwgMTQ5MHB4IDQ4OXB4ICNmZmYsIDgxNHB4IDE4NDZweCAjZmZmLCA0MDdweCA2ODlweCAjZmZmLCAxNDA0cHggMTg3M3B4ICNmZmYsIDYxcHggMTIyM3B4ICNmZmYsIDE5NjBweCAyNDhweCAjZmZmLCAxMjMxcHggMTU4OHB4ICNmZmYsIDk3N3B4IDg3MXB4ICNmZmYsIDU1NnB4IDc3MnB4ICNmZmYsIDM1OXB4IDExNDFweCAjZmZmLCA1OHB4IDg4M3B4ICNmZmYsIDQ4MXB4IDEyNTlweCAjZmZmLCA4NzRweCA0OTVweCAjZmZmLCA2MjRweCAxMzg0cHggI2ZmZiwgMTczMHB4IDkwMXB4ICNmZmYsIDE2NDhweCA4MjdweCAjZmZmLCA4MDdweCAxMDgycHggI2ZmZiwgMTYwMXB4IDEzOXB4ICNmZmYsIDE0OTBweCAxMDM3cHggI2ZmZiwgMjAycHggMTc5cHggI2ZmZiwgNjY0cHggNjUycHggI2ZmZiwgMzc3cHggMzY5cHggI2ZmZiwgNjM5cHggMTQ1NHB4ICNmZmYsIDE4cHggMTEwOHB4ICNmZmYsIDE5MThweCAxMzY0cHggI2ZmZiwgMTQ0cHggMTY3MHB4ICNmZmYsIDE1MjFweCAxMDgycHggI2ZmZiwgMTAwNnB4IDY2OXB4ICNmZmYsIDE1MXB4IDE1NDhweCAjZmZmLCA2NTdweCAxOTQwcHggI2ZmZiwgMTI4cHggMTU2N3B4ICNmZmYsIDUwMXB4IDE1NzVweCAjZmZmLCAxMDc3cHggOTE0cHggI2ZmZiwgMTU0NHB4IDczOXB4ICNmZmYsIDEwMjJweCA0MDhweCAjZmZmLCAxOTM5cHggMTg5N3B4ICNmZmYsIDU5cHggMTA5OXB4ICNmZmYsIDE5OTNweCA0MjFweCAjZmZmLCAxNDk2cHggMTkxN3B4ICNmZmYsIDE5NjRweCAxNDU2cHggI2ZmZiwgMTE4MnB4IDE0NzVweCAjZmZmLCAxNjk5cHggMTZweCAjZmZmLCAxNjFweCA0MzBweCAjZmZmLCA3NDRweCAxMDgzcHggI2ZmZiwgMTcwNnB4IDI3N3B4ICNmZmYsIDg4NHB4IDE3MjNweCAjZmZmLCA5MTBweCAxODAycHggI2ZmZiwgMTA2N3B4IDE3N3B4ICNmZmYsIDE5MjBweCAxMzY0cHggI2ZmZiwgMzAycHggMTA2NXB4ICNmZmYsIDE3MzVweCA1MzZweCAjZmZmLCAxMTIzcHggOTI5cHggI2ZmZiwgNDIwcHggMTg4M3B4ICNmZmYsIDc0OXB4IDQ4NHB4ICNmZmYsIDE2NjZweCAxNjIxcHggI2ZmZiwgMTAwOHB4IDgxNXB4ICNmZmYsIDExMjNweCAxNzY2cHggI2ZmZiwgMzM0cHggNTYxcHggI2ZmZiwgNTkwcHggMTEzM3B4ICNmZmYsIDEyMTVweCAxMDc1cHggI2ZmZiwgMzBweCAxMjA0cHggI2ZmZiwgMTkycHggMTM3NXB4ICNmZmYsIDEzMDhweCAycHggI2ZmZiwgOTU5cHggMTYwMHB4ICNmZmYsIDEyMTlweCA1NjlweCAjZmZmLCAxMTc1cHggNTI3cHggI2ZmZiwgOTczcHggMTMxOXB4ICNmZmYsIDEyMjRweCAxNDA4cHggI2ZmZiwgNDQ4cHggMTc0NnB4ICNmZmYsIDEyNThweCAxMTc4cHggI2ZmZiwgOTE2cHggMTM1OXB4ICNmZmYsIDE2N3B4IDM4MnB4ICNmZmYsIDUzNHB4IDg3MnB4ICNmZmYsIDE2NDlweCA2MzNweCAjZmZmLCAxMjVweCA2ODNweCAjZmZmLCAxMjVweCAxOTUycHggI2ZmZiwgNzE5cHggMTE5OHB4ICNmZmYsIDExMThweCAxMTQ1cHggI2ZmZiwgMTMyMXB4IDU2cHggI2ZmZiwgOTU4cHggMTA0NXB4ICNmZmYsIDM1cHggMTM5NXB4ICNmZmYsIDcwOHB4IDkzNnB4ICNmZmYsIDE5MTdweCA3MDRweCAjZmZmLCAxOTI2cHggMTkwN3B4ICNmZmYsIDQzNXB4IDEzNzlweCAjZmZmLCA5ODZweCAyODJweCAjZmZmLCAxNjE4cHggMTkxN3B4ICNmZmYsIDk1M3B4IDk2NXB4ICNmZmYsIDExMTlweCAxNzM4cHggI2ZmZiwgMTkwNXB4IDE4ODRweCAjZmZmLCAxMTA0cHggNjU3cHggI2ZmZiwgNDM5cHggOTYycHggI2ZmZiwgMzY1cHggMjE5cHggI2ZmZiwgMTYwMHB4IDEwMjhweCAjZmZmLCAxOTcwcHggMTU3NHB4ICNmZmYsIDExNTRweCA0NDBweCAjZmZmLCAxOTE2cHggNzgwcHggI2ZmZiwgMTYwOHB4IDkyOHB4ICNmZmYsIDE1ODNweCA4MTBweCAjZmZmLCA2MjhweCA2ODJweCAjZmZmLCA1OTZweCAxNTI1cHggI2ZmZiwgNTIxcHggMTc0NnB4ICNmZmYsIDg0OHB4IDc0MHB4ICNmZmYsIDEyNTFweCA4NTVweCAjZmZmLCAyMjJweCA5MTRweCAjZmZmLCAxNTM4cHggMzM0cHggI2ZmZiwgMTQ0MXB4IDE2MzFweCAjZmZmLCAxODczcHggMTA3cHggI2ZmZiwgMTU5OHB4IDEyODhweCAjZmZmLCAxNTExcHggODlweCAjZmZmLCA2NXB4IDEwNzdweCAjZmZmLCAxODMzcHggODEzcHggI2ZmZiwgODk4cHggMTM4NHB4ICNmZmYsIDUxN3B4IDE4MTlweCAjZmZmLCAyOTlweCAyOTNweCAjZmZmLCA5NTVweCAzOTFweCAjZmZmLCA1OHB4IDE2NDVweCAjZmZmLCAxOTEzcHggODZweCAjZmZmLCAxMDEzcHggNjcycHggI2ZmZiwgMTgyM3B4IDE3NTZweCAjZmZmLCA5MzBweCAzOTRweCAjZmZmLCA2ODRweCAxMDYzcHggI2ZmZiwgODc3cHggNTNweCAjZmZmLCAxOTkycHggNDdweCAjZmZmLCAxNjMzcHggMTAxNHB4ICNmZmYsIDkxM3B4IDM0NXB4ICNmZmYsIDY3MXB4IDEzNjZweCAjZmZmLCAxOTQ3cHggMTU3N3B4ICNmZmYsIDEyOTlweCAxMjcycHggI2ZmZiwgNzA0cHggMTY5MHB4ICNmZmYsIDEyMzFweCAxMjUzcHggI2ZmZiwgMTYwMnB4IDEzNDBweCAjZmZmLCA3OTRweCAxMjkzcHggI2ZmZiwgMTcwNnB4IDExNzRweCAjZmZmLCAxNDQycHggNjAwcHggI2ZmZiwgMjcwcHggMTcxN3B4ICNmZmYsIDEwMTFweCAxNzg5cHggI2ZmZiwgMTY0OHB4IDE3NTBweCAjZmZmLCAxMjk0cHggMjAwMHB4ICNmZmYsIDE2NDBweCA4ODJweCAjZmZmLCAxNTE2cHggODA1cHggI2ZmZiwgMTE5OXB4IDg5NXB4ICNmZmYsIDE0NTRweCAxOTM5cHggI2ZmZiwgNDBweCAxMDE5cHggI2ZmZiwgMzk3cHggMTAzN3B4ICNmZmYsIDEzNjRweCAxNzY3cHggI2ZmZiwgOTMycHggOTk2cHggI2ZmZiwgMjI3cHggMTAxM3B4ICNmZmYsIDMwMXB4IDMwN3B4ICNmZmYsIDM2M3B4IDYwNHB4ICNmZmYsIDE5NTZweCAxNDQ1cHggI2ZmZiwgMTgyMHB4IDk2MHB4ICNmZmYsIDMyNXB4IDEyODVweCAjZmZmLCAxOTc1cHggMjg3cHggI2ZmZiwgNTgycHggMTA4NHB4ICNmZmYsIDExN3B4IDE5ODFweCAjZmZmLCA2NjZweCAxMTgxcHggI2ZmZiwgMjQ3cHggNjkxcHggI2ZmZiwgMTMzNnB4IDEzMDNweCAjZmZmLCAxNDQ5cHggMTk3M3B4ICNmZmYsIDI1MXB4IDE4N3B4ICNmZmYsIDExMjdweCA1MjRweCAjZmZmLCAxOTIwcHggNDM0cHggI2ZmZiwgMjY3cHggMTI5OHB4ICNmZmYsIDUyMXB4IDE0NDhweCAjZmZmLCAxNTc3cHggMTkxNXB4ICNmZmYsIDEyNzZweCA1NzFweCAjZmZmLCAxMjE3cHggMTU5M3B4ICNmZmYsIDk1OHB4IDExMDhweCAjZmZmLCAyNDZweCAxMDczcHggI2ZmZiwgMTU5MnB4IDEyMzhweCAjZmZmLCAxNzQ4cHggMTQxcHggI2ZmZiwgNjgzcHggMTY0NXB4ICNmZmYsIDNweCAxMDA2cHggI2ZmZiwgMTkxNHB4IDE4MjlweCAjZmZmLCAxMzk1cHggMTQ2MnB4ICNmZmYsIDEzMjFweCA1MjhweCAjZmZmLCAxNDM3cHggMTE4M3B4ICNmZmYsIDE2NThweCAxMzE3cHggI2ZmZiwgNDI1cHggMTc5MXB4ICNmZmYsIDUwMnB4IDEwMzhweCAjZmZmLCAxMTQzcHggMjY2cHggI2ZmZiwgMTIyOXB4IDgyNHB4ICNmZmYsIDgwMHB4IDYzMnB4ICNmZmYsIDE4OTFweCAxNDY5cHggI2ZmZiwgMTA2N3B4IDUzMXB4ICNmZmYsIDEyMjZweCAxNzU5cHggI2ZmZiwgMTUxNnB4IDkyNHB4ICNmZmYsIDE1ODVweCAxNzc2cHggI2ZmZiwgODI0cHggODE0cHggI2ZmZiwgMjk3cHggMTQ2M3B4ICNmZmYsIDQ5MHB4IDE3MjZweCAjZmZmLCAxODc4cHggMTk4MXB4ICNmZmYsIDI1OHB4IDEyNnB4ICNmZmYsIDEwNjNweCA5MDJweCAjZmZmLCA4OTNweCAxMDMwcHggI2ZmZiwgMTgxOHB4IDExMzFweCAjZmZmLCAxMzU1cHggODE3cHggI2ZmZiwgMjM4cHggMTkyMHB4ICNmZmYsIDExOTNweCA4MDZweCAjZmZmLCAxMDc2cHggNTgycHggI2ZmZiwgMTQ1NnB4IDQ3MnB4ICNmZmYsIDI0OHB4IDE0NTJweCAjZmZmLCAxNDMwcHggOTA0cHggI2ZmZiwgNDE3cHggNDk2cHggI2ZmZiwgMTM4N3B4IDUwNHB4ICNmZmYsIDU3OXB4IDYwOHB4ICNmZmYsIDgyN3B4IDk0NnB4ICNmZmYsIDEyMzRweCA2MTdweCAjZmZmLCAxNzMycHggMTU0OHB4ICNmZmYsIDE3MDZweCAxOTYxcHggI2ZmZiwgMzYxcHggMzcwcHggI2ZmZiwgMjExcHggMzE1cHggI2ZmZiwgMTYxMnB4IDY1N3B4ICNmZmYsIDE1MzNweCA2MzVweCAjZmZmLCAxNTcwcHggMTk1MHB4ICNmZmYsIDI3cHggMTk2OHB4ICNmZmYsIDE0NzZweCA5NDJweCAjZmZmLCAxMTdweCA1MjBweCAjZmZmLCAxMzUycHggNDI5cHggI2ZmZiwgMTM1NHB4IDczNXB4ICNmZmYsIDk3cHggODQ5cHggI2ZmZiwgODUzcHggMjA2cHggI2ZmZiwgMTE1MHB4IDczNnB4ICNmZmYsIDI2MXB4IDE4MzBweCAjZmZmLCA0OTdweCAzOXB4ICNmZmYsIDQ0cHggMTc5OHB4ICNmZmYsIDE2NjVweCAxMzI0cHggI2ZmZiwgMTgwMHB4IDI2NnB4ICNmZmYsIDE3MzNweCA5ODFweCAjZmZmLCAxOTcxcHggMTAxNnB4ICNmZmYsIDk2NnB4IDcyNHB4ICNmZmYsIDkyNHB4IDEzOTBweCAjZmZmLCA2ODlweCAxMzI5cHggI2ZmZiwgMTcwN3B4IDEyNzZweCAjZmZmLCAxNjY5cHggMTg0MHB4ICNmZmYsIDEwOTNweCA4NzBweCAjZmZmLCA4NjNweCAxNTI1cHggI2ZmZiwgMTU2M3B4IDE4ODBweCAjZmZmLCAxNTA5cHggMTA1MXB4ICNmZmYsIDUwNHB4IDU0OHB4ICNmZmYsIDExNTdweCAxODM4cHggI2ZmZiwgMTU5OXB4IDk3NXB4ICNmZmYsIDUwMHB4IDExMDdweCAjZmZmLCAxOTExcHggMTIwMHB4ICNmZmYsIDM3NHB4IDEyODlweCAjZmZmLCA1cHggMjAxcHggI2ZmZiwgMTM2NXB4IDYzOXB4ICNmZmYsIDEyNjFweCAxNTk4cHggI2ZmZiwgMTc5N3B4IDQ4MnB4ICNmZmYsIDE5NDJweCAxMzZweCAjZmZmLCAxNzUxcHggODQ1cHggI2ZmZiwgOTU4cHggODkycHggI2ZmZiwgMjNweCAxNTQxcHggI2ZmZiwgOTc0cHggNzMzcHggI2ZmZiwgODk2cHggMTYyMHB4ICNmZmYsIDEzMzhweCAxNTM0cHggI2ZmZiwgMzY4cHggNjI2cHggI2ZmZiwgMjE0cHggNjM0cHggI2ZmZiwgNTJweCAxNjE1cHggI2ZmZiwgMTM5MXB4IDMyNnB4ICNmZmYsIDE5NjFweCAxMjUycHggI2ZmZiwgMzg0cHggMTYwMHB4ICNmZmYsIDIwNXB4IDE1OTRweCAjZmZmLCA3MDNweCA0OTJweCAjZmZmLCAxMzk5cHggNDc1cHggI2ZmZiwgOTMwcHggMTY1MnB4ICNmZmYsIDE5MzBweCA5MjhweCAjZmZmLCAxNjI3cHggODgwcHggI2ZmZiwgNTIxcHggNjEycHggI2ZmZiwgMTQyNnB4IDFweCAjZmZmLCAxNXB4IDMyOXB4ICNmZmYsIDE2MzJweCAxNDA3cHggI2ZmZiwgMjUxcHggNDUwcHggI2ZmZiwgMTA4MHB4IDE4NzhweCAjZmZmLCAxMjYzcHggMTk3NHB4ICNmZmYsIDE1ODVweCAxNDkzcHggI2ZmZiwgMTMwOHB4IDE1OTlweCAjZmZmLCAyMDlweCA1MjZweCAjZmZmLCA3MjBweCAxMTgzcHggI2ZmZiwgMTg2NnB4IDQ5M3B4ICNmZmYsIDU4MXB4IDQyN3B4ICNmZmYsIDQxMnB4IDczMHB4ICNmZmYsIDExMnB4IDUyMHB4ICNmZmYsIDk1OXB4IDE1MjdweCAjZmZmLCAxMjQxcHggMTY0NnB4ICNmZmYsIDkyMXB4IDYyMnB4ICNmZmYsIDEzMTJweCAxMjY2cHggI2ZmZiwgOTU3cHggNDQycHggI2ZmZiwgMTQ4MHB4IDg3N3B4ICNmZmYsIDk1OXB4IDg1MHB4ICNmZmYsIDEzMTBweCAxNDc5cHggI2ZmZiwgMTY4N3B4IDM2NnB4ICNmZmYsIDE0OXB4IDQzMnB4ICNmZmYsIDI3OHB4IDE0MDFweCAjZmZmLCA2MjJweCAxNjgxcHggI2ZmZiwgMTU5MHB4IDEwODBweCAjZmZmLCAxMzI2cHggOTg0cHggI2ZmZiwgNTYycHggMTkyOHB4ICNmZmYsIDE4MDVweCA4NjhweCAjZmZmLCAxNzA1cHggMTcxOHB4ICNmZmYsIDEyMzVweCAzMzNweCAjZmZmLCA5MzNweCAxNjU5cHggI2ZmZiwgOTI2cHggOTRweCAjZmZmLCA1OTJweCAxODY0cHggI2ZmZiwgMTQxM3B4IDQwNXB4ICNmZmYsIDE2NzNweCAxMzU4cHggI2ZmZiwgMTc0OXB4IDM4NHB4ICNmZmYsIDMxNHB4IDEwODZweCAjZmZmLCA0NThweCAyOTdweCAjZmZmLCAxNDEycHggMTM2N3B4ICNmZmYsIDExNDdweCAxNDI0cHggI2ZmZiwgNTUwcHggMTUwNHB4ICNmZmYsIDE1MzNweCAxNjM5cHggI2ZmZiwgMTE4MXB4IDEzMjVweCAjZmZmLCA1NTVweCAxNjgycHggI2ZmZiwgNjA3cHggNzE0cHggI2ZmZiwgMTc1NXB4IDE3OTRweCAjZmZmLCAxNDIycHggNjIwcHggI2ZmZiwgMTkxNHB4IDE0NTVweCAjZmZmLCAxMDIycHggMTM0OXB4ICNmZmYsIDEzNjhweCA5MjZweCAjZmZmLCAxODg1cHggMTExNHB4ICNmZmYsIDI5N3B4IDEyMTJweCAjZmZmLCAyMzJweCA1N3B4ICNmZmYsIDE3NDFweCAxNjc5cHggI2ZmZiwgMTY5OHB4IDE1MDZweCAjZmZmLCAxNjA1cHggMTcyOXB4ICNmZmYsIDEzMDFweCA3MDdweCAjZmZmLCAxNDA2cHggMTY2NXB4ICNmZmYsIDEyMzdweCAzNThweCAjZmZmLCA4MHB4IDE5ODRweCAjZmZmLCAyOHB4IDEyNzNweCAjZmZmLCAxMzM0cHggMTAwNnB4ICNmZmYsIDE1NzNweCA5MjVweCAjZmZmLCA3MTRweCAzNzNweCAjZmZmLCAxODk5cHggODY4cHggI2ZmZiwgODYycHggMTg3OHB4ICNmZmYsIDcwMHB4IDYwOXB4ICNmZmYsIDQ1NXB4IDEyMzdweCAjZmZmLCA2MTdweCAxNjY3cHggI2ZmZiwgMzUxcHggOTAzcHggI2ZmZiwgMjM2cHggNjI1cHggI2ZmZiwgOTA2cHggMTc3NHB4ICNmZmYsIDY0M3B4IDE2NTlweCAjZmZmLCAxMjA5cHggMjQzcHggI2ZmZiwgNTFweCAzcHggI2ZmZiwgMTkzMHB4IDE5MzNweCAjZmZmLCA1NDhweCAxNjk2cHggI2ZmZiwgMzM5cHggNTY4cHggI2ZmZiwgMTQ2OXB4IDE1MDVweCAjZmZmLCA0MzRweCAxODA3cHggI2ZmZiwgNzYxcHggMTI5OHB4ICNmZmYsIDE5NzRweCAxMTYycHggI2ZmZiwgMzY2cHggNTIxcHggI2ZmZiwgMTcwOXB4IDYxMXB4ICNmZmYsIDM1NXB4IDgyMXB4ICNmZmYsIDEzOTFweCA0MDFweCAjZmZmLCAxMDMycHggMTg5MHB4ICNmZmYsIDEzNjVweCAxMDY1cHggI2ZmZiwgMTYwMnB4IDQ0MHB4ICNmZmYsIDE2NzhweCAxMDA3cHggI2ZmZiwgMzgxcHggMTEyN3B4ICNmZmYsIDE0MDBweCAxMDA5cHggI2ZmZiwgOTY5cHggNTU0cHggI2ZmZiwgMTA4MHB4IDgzMnB4ICNmZmYsIDE4N3B4IDE5NDlweCAjZmZmLCA3MzhweCAxNjc2cHggI2ZmZiwgMThweCAxNjEwcHggI2ZmZiwgMTk4MHB4IDE3NzhweCAjZmZmLCAzNTRweCA1MjhweCAjZmZmLCAxNjgxcHggNTkwcHggI2ZmZiwgMTM5M3B4IDEyMzZweCAjZmZmLCAxNDQ5cHggMTQwNnB4ICNmZmYsIDE1OTVweCAxMjUzcHggI2ZmZiwgNzU0cHggMTY3NnB4ICNmZmYsIDE5MHB4IDQzMXB4ICNmZmYsIDg2NnB4IDYyNHB4ICNmZmYsIDE1MDhweCAxODM4cHggI2ZmZiwgODk0cHggNDM1cHggI2ZmZiwgM3B4IDE2MjNweCAjZmZmLCAxOTc5cHggNjE3cHggI2ZmZiwgNzUycHggMTU1MHB4ICNmZmYsIDE3NjFweCAxMjU1cHggI2ZmZiwgNTNweCA4NTNweCAjZmZmLCAxMTcycHggMTkxN3B4ICNmZmYsIDg4cHggMTYxcHggI2ZmZiwgMTU4N3B4IDY0OHB4ICNmZmYsIDEyMjJweCA2ODZweCAjZmZmLCAxOTU3cHggNjY2cHggI2ZmZiwgOTA5cHggMTA3MHB4ICNmZmYsIDM3OXB4IDY0OHB4ICNmZmYsIDExNTRweCAxODYycHggI2ZmZiwgMTA2NXB4IDE5MTZweCAjZmZmLCAxNTQ2cHggNjI4cHggI2ZmZiwgMTMwcHggODU4cHggI2ZmZiwgNTU4cHggMzg3cHggI2ZmZiwgMTAzNXB4IDExNThweCAjZmZmLCA2MDZweCAxNjU0cHggI2ZmZiwgNzY0cHggODI5cHggI2ZmZiwgODM3cHggMTg3OHB4ICNmZmYsIDUyMnB4IDE4NDNweCAjZmZmLCAxMjE3cHggNTMzcHggI2ZmZiwgMTk4cHggOTNweCAjZmZmLCA0ODNweCAxNDI2cHggI2ZmZiwgMTQ2M3B4IDQxOXB4ICNmZmYsIDEzMjNweCAyNzNweCAjZmZmLCA2MDhweCAxMDgzcHggI2ZmZiwgNDM1cHggMTk4NnB4ICNmZmYsIDE4MjBweCAxNDg0cHggI2ZmZiwgMTk2cHggNDY1cHggI2ZmZiwgMTIwMnB4IDg2M3B4ICNmZmYsIDE4NjdweCA4ODVweCAjZmZmLCA5N3B4IDE1NzZweCAjZmZmLCA3NDVweCAxMTQycHggI2ZmZiwgMTYwM3B4IDE4MDlweCAjZmZmLCA2MjJweCA4NDVweCAjZmZmLCA4MDFweCA0NDhweCAjZmZmLCA2NzdweCAxMDM0cHggI2ZmZiwgMTA2OHB4IDE0NjRweCAjZmZmLCAxNTg2cHggMTU3NHB4ICNmZmYsIDIzN3B4IDkxNXB4ICNmZmYsIDE5MjhweCAxNTMycHggI2ZmZiwgNjlweCAxNzAwcHggI2ZmZiwgNDA4cHggMTg3NnB4ICNmZmYsIDMzNHB4IDEycHggI2ZmZiwgMTk3M3B4IDE1ODRweCAjZmZmLCAyODBweCAyNjFweCAjZmZmLCAxNDM4cHggMzQ2cHggI2ZmZiwgMTE4MXB4IDE2MjFweCAjZmZmLCA2MTZweCAxMjUxcHggI2ZmZiwgNTBweCA2MjJweCAjZmZmLCAxOTgzcHggNjA0cHggI2ZmZiwgMTIyOHB4IDExNzJweCAjZmZmLCAyNzFweCA4OTdweCAjZmZmLCAxMTAycHggMTQ5NHB4ICNmZmYsIDE2OTZweCAxMDUxcHggI2ZmZiwgMTk2N3B4IDE4NzFweCAjZmZmLCAxMjcycHggMjQ3cHggI2ZmZiwgNzUxcHggODU0cHggI2ZmZiwgNTYwcHggMTY1MnB4ICNmZmYsIDE0OThweCAxOTZweCAjZmZmLCAxMjIycHggMTYxMnB4ICNmZmYsIDUxOHB4IDYyOXB4ICNmZmYsIDc2cHggMTk0MXB4ICNmZmYsIDEzNTdweCAxMDk5cHggI2ZmZiwgODI1cHggMTU0N3B4ICNmZmY7YW5pbWF0aW9uOmFuaW1TdGFyIDgzcyBsaW5lYXIgaW5maW5pdGV9I3doaXRlLXN0YXJzLXNtOmFmdGVye2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyMDAwcHg7d2lkdGg6MXB4O2hlaWdodDoxcHg7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MjkxcHggMTk4MXB4ICNmZmYsIDE2MDFweCAzMzJweCAjZmZmLCAxMDA3cHggMjI5cHggI2ZmZiwgMTM1MXB4IDYzMXB4ICNmZmYsIDEzMTdweCAxODAwcHggI2ZmZiwgNzI2cHggMTYzOHB4ICNmZmYsIDE3MzZweCA2MjhweCAjZmZmLCA4NTlweCAxMTk3cHggI2ZmZiwgNDM2cHggMjI0cHggI2ZmZiwgMTI2M3B4IDI3NXB4ICNmZmYsIDEwMDFweCAxODk4cHggI2ZmZiwgMTE4MnB4IDI4N3B4ICNmZmYsIDExNzhweCAxMTQ4cHggI2ZmZiwgODcxcHggMTQ2NXB4ICNmZmYsIDE5ODJweCA0NDFweCAjZmZmLCAyOTlweCAxNjc3cHggI2ZmZiwgMTQ3MXB4IDE1OHB4ICNmZmYsIDQ2NXB4IDEyOTZweCAjZmZmLCAxNzg5cHggMTIxMXB4ICNmZmYsIDkyN3B4IDE5ODdweCAjZmZmLCA4MTlweCA2MTZweCAjZmZmLCAxMzYycHggMTE5MnB4ICNmZmYsIDg4NXB4IDQ3OXB4ICNmZmYsIDE4NDNweCAxMzQxcHggI2ZmZiwgMTA2OHB4IDc3N3B4ICNmZmYsIDkyN3B4IDkyMXB4ICNmZmYsIDE5NHB4IDE1MDhweCAjZmZmLCAzMTVweCA5OTJweCAjZmZmLCAxMjcwcHggMTk4MHB4ICNmZmYsIDQ2MXB4IDE0MDZweCAjZmZmLCA4MDlweCA0MjFweCAjZmZmLCA5NTVweCA1ODJweCAjZmZmLCA4NDRweCAxMjc3cHggI2ZmZiwgMTM2cHggMTc3MHB4ICNmZmYsIDY2N3B4IDMxM3B4ICNmZmYsIDc3MnB4IDEwMHB4ICNmZmYsIDk4MXB4IDE5ODJweCAjZmZmLCA1MDRweCAxODU2cHggI2ZmZiwgMTQzNnB4IDM5OXB4ICNmZmYsIDkwNXB4IDU4OHB4ICNmZmYsIDE2OTdweCAyNzhweCAjZmZmLCA5MDVweCAxMjA4cHggI2ZmZiwgMTM5MHB4IDE3MzdweCAjZmZmLCA2MTlweCAzMDZweCAjZmZmLCA1MjJweCA4NTNweCAjZmZmLCAxMTQwcHggMTI0M3B4ICNmZmYsIDUzOXB4IDUwNXB4ICNmZmYsIDU0M3B4IDEzNzdweCAjZmZmLCAxMTEycHggNzA2cHggI2ZmZiwgMTI4NXB4IDE4MzZweCAjZmZmLCAyMjhweCA1NzZweCAjZmZmLCA0MXB4IDg3OHB4ICNmZmYsIDgyMXB4IDE3NDVweCAjZmZmLCAxMDU5cHggMTgxN3B4ICNmZmYsIDgzN3B4IDE3NTdweCAjZmZmLCAxNzIycHggOTkwcHggI2ZmZiwgMTY1NnB4IDYyMnB4ICNmZmYsIDE1NThweCAxOTU4cHggI2ZmZiwgMTAzNHB4IDkxNHB4ICNmZmYsIDE5OXB4IDY4MXB4ICNmZmYsIDEwNDZweCAxOTg5cHggI2ZmZiwgMzY4cHggMTYxM3B4ICNmZmYsIDE3MDdweCAxMTcxcHggI2ZmZiwgODQ5cHggMTA0MXB4ICNmZmYsIDg5MnB4IDExMDlweCAjZmZmLCAxNjkycHggNTg5cHggI2ZmZiwgMjIycHggOTZweCAjZmZmLCAxNjIycHggNTAycHggI2ZmZiwgMTkyN3B4IDEwOTVweCAjZmZmLCAxNTI5cHggMTMxNHB4ICNmZmYsIDExMjBweCA1NHB4ICNmZmYsIDI2NHB4IDEzMTZweCAjZmZmLCAxNTI3cHggMTc4NHB4ICNmZmYsIDU4MnB4IDk2OXB4ICNmZmYsIDE3ODBweCAxOTUzcHggI2ZmZiwgMTI5OXB4IDEyMHB4ICNmZmYsIDE1MTNweCAxOTE2cHggI2ZmZiwgMTE2OXB4IDE1MDZweCAjZmZmLCAxODE1cHggMTA3OHB4ICNmZmYsIDE0OTVweCA0MjJweCAjZmZmLCAyMDdweCAxMDU5cHggI2ZmZiwgNzc1cHggMTAwMXB4ICNmZmYsIDM5OHB4IDg5OXB4ICNmZmYsIDc0MHB4IDkyMnB4ICNmZmYsIDk3NHB4IDU0NHB4ICNmZmYsIDEyOTNweCA3MTBweCAjZmZmLCA1cHggMTM2NXB4ICNmZmYsIDE0NjhweCA5MjRweCAjZmZmLCA3NzlweCA2NTNweCAjZmZmLCA0ODZweCA5OHB4ICNmZmYsIDE4NTJweCAyNjRweCAjZmZmLCA2NDdweCA0ODlweCAjZmZmLCAxODI1cHggMTc1MHB4ICNmZmYsIDE5NjhweCAxNDI2cHggI2ZmZiwgMTg1cHggMjQzcHggI2ZmZiwgOTYwcHggMTk1cHggI2ZmZiwgMTA2MHB4IDI2NnB4ICNmZmYsIDU2N3B4IDEwNDFweCAjZmZmLCA3NDlweCA5NnB4ICNmZmYsIDI2M3B4IDk4cHggI2ZmZiwgMTU3NnB4IDE5M3B4ICNmZmYsIDQ2OHB4IDE3NjlweCAjZmZmLCAxODEzcHggMTQ4MXB4ICNmZmYsIDUzNHB4IDE1NzhweCAjZmZmLCAxMzM4cHggOTY2cHggI2ZmZiwgMTUxMnB4IDE5OHB4ICNmZmYsIDEyNDFweCA1ODZweCAjZmZmLCAxOTc1cHggOTE0cHggI2ZmZiwgMjc1cHggMTgyM3B4ICNmZmYsIDYwcHggMTYxcHggI2ZmZiwgMjc4cHggMjQzcHggI2ZmZiwgMjgwcHggMTkyMnB4ICNmZmYsIDY1OHB4IDEzNDZweCAjZmZmLCAxNDg3cHggMjQ0cHggI2ZmZiwgNTU5cHggMTYzcHggI2ZmZiwgMTUxM3B4IDI2OHB4ICNmZmYsIDExNzhweCAxMzk0cHggI2ZmZiwgMTIxN3B4IDEwMzZweCAjZmZmLCAxOTQ2cHggMTQ4MXB4ICNmZmYsIDExODJweCAxMTUzcHggI2ZmZiwgMzc1cHggMTAzOHB4ICNmZmYsIDEzMzFweCA5MDZweCAjZmZmLCA3NzNweCA3MjRweCAjZmZmLCAxMjZweCAxODgzcHggI2ZmZiwgMTQyNXB4IDk4OXB4ICNmZmYsIDE0MzdweCAxNDA1cHggI2ZmZiwgNzFweCAxNTAxcHggI2ZmZiwgMTA0OHB4IDQxNXB4ICNmZmYsIDEwOTlweCAxMjQ4cHggI2ZmZiwgMjg4cHggMTIwMHB4ICNmZmYsIDM1NnB4IDE5NTJweCAjZmZmLCA2MThweCAxNDg3cHggI2ZmZiwgNzIwcHggMTc3MXB4ICNmZmYsIDc5MXB4IDEyOTVweCAjZmZmLCAxNzMxcHggNjU0cHggI2ZmZiwgNTcwcHggNDY3cHggI2ZmZiwgMTQ1MnB4IDMzMnB4ICNmZmYsIDEwMDNweCAxMDMzcHggI2ZmZiwgNzg4cHggNzBweCAjZmZmLCAxNDAzcHggMTY3NHB4ICNmZmYsIDkxMnB4IDE3NThweCAjZmZmLCAxODA3cHggMTQxNnB4ICNmZmYsIDgwMnB4IDc5MHB4ICNmZmYsIDE2NzVweCAxNDE4cHggI2ZmZiwgMTUyMXB4IDg4MnB4ICNmZmYsIDE2MTNweCAzMDRweCAjZmZmLCA0OTlweCAxNTA5cHggI2ZmZiwgMTgwN3B4IDE2OTRweCAjZmZmLCAxMDAzcHggMTIyMnB4ICNmZmYsIDc1OHB4IDQxMXB4ICNmZmYsIDEyODVweCA0MDhweCAjZmZmLCA2NjJweCAxNzc5cHggI2ZmZiwgMTgwOXB4IDUyMHB4ICNmZmYsIDE5MXB4IDIyNXB4ICNmZmYsIDI5M3B4IDkyOHB4ICNmZmYsIDM0cHggOTMycHggI2ZmZiwgMTU3MHB4IDQ2MXB4ICNmZmYsIDkwM3B4IDYxN3B4ICNmZmYsIDI0MHB4IDEyOTFweCAjZmZmLCA4MjNweCAzNjlweCAjZmZmLCAxNjgycHggMTcwMHB4ICNmZmYsIDgxNnB4IDEwMTZweCAjZmZmLCAxNDA3cHggNjU4cHggI2ZmZiwgMTg0MXB4IDIwM3B4ICNmZmYsIDcwOXB4IDcwOHB4ICNmZmYsIDEwNTZweCAxMzkxcHggI2ZmZiwgOTA2cHggNjAycHggI2ZmZiwgMzg3cHggMzY4cHggI2ZmZiwgMTIzMnB4IDYzMXB4ICNmZmYsIDE2NzRweCAxNzEycHggI2ZmZiwgMTkzOXB4IDEwNDBweCAjZmZmLCAxMjE2cHggMTU4MnB4ICNmZmYsIDE4NDZweCAyOTdweCAjZmZmLCAxNzExcHggMTQ1N3B4ICNmZmYsIDExMzdweCAxOTI1cHggI2ZmZiwgODk4cHggODcycHggI2ZmZiwgMTMyNXB4IDYyMnB4ICNmZmYsIDgyM3B4IDg2MHB4ICNmZmYsIDM0MXB4IDIxMXB4ICNmZmYsIDZweCAxODQ1cHggI2ZmZiwgMTQwMHB4IDE2ODRweCAjZmZmLCAxMTYzcHggMTc4MXB4ICNmZmYsIDE4NDJweCA3MThweCAjZmZmLCA1NTJweCA2NDhweCAjZmZmLCA2MDhweCAxNjdweCAjZmZmLCA4MjBweCAxNDM4cHggI2ZmZiwgMTY0cHggNjU5cHggI2ZmZiwgMTA0NXB4IDc5NnB4ICNmZmYsIDNweCAxODM4cHggI2ZmZiwgMTIwNHB4IDgyN3B4ICNmZmYsIDkxM3B4IDExNTZweCAjZmZmLCAxNTIzcHggODE1cHggI2ZmZiwgODQ2cHggNjA3cHggI2ZmZiwgMTgyOHB4IDYzMHB4ICNmZmYsIDE4ODVweCA5MDJweCAjZmZmLCAxMDQ2cHggNTA3cHggI2ZmZiwgMjdweCAxNTI4cHggI2ZmZiwgNzU4cHggMTc0OHB4ICNmZmYsIDE3NTlweCAxOTk3cHggI2ZmZiwgMTE0NHB4IDE5MTJweCAjZmZmLCA5MDlweCAxMTA3cHggI2ZmZiwgNDU4cHggOTQ0cHggI2ZmZiwgNjYzcHggMjczcHggI2ZmZiwgMnB4IDY4cHggI2ZmZiwgMjA0cHggMTgxNXB4ICNmZmYsIDEwM3B4IDE4ODJweCAjZmZmLCAyODNweCAxODA1cHggI2ZmZiwgNzg4cHggMTIyMHB4ICNmZmYsIDM3NXB4IDEwOTZweCAjZmZmLCA3NjBweCAzNTRweCAjZmZmLCA3NzVweCAxNTU5cHggI2ZmZiwgNTM3cHggODg5cHggI2ZmZiwgMTYyM3B4IDExOTVweCAjZmZmLCAxMDQxcHggMTMycHggI2ZmZiwgMTQ0OXB4IDg3N3B4ICNmZmYsIDE3OTFweCA0OTZweCAjZmZmLCAxOTU3cHggMTg4NnB4ICNmZmYsIDE2NTVweCAxMjQ5cHggI2ZmZiwgNDcwcHggMTI2cHggI2ZmZiwgMTY2OXB4IDE3MDJweCAjZmZmLCA0MDdweCAzNThweCAjZmZmLCAxODMycHggMTQxNXB4ICNmZmYsIDg1MnB4IDE5NDZweCAjZmZmLCAxMTA5cHggMTUwNHB4ICNmZmYsIDQ5M3B4IDQ3NXB4ICNmZmYsIDEyMjZweCAzNTFweCAjZmZmLCAxODU3cHggNDlweCAjZmZmLCAxMTMzcHggNDIwcHggI2ZmZiwgMzkwcHggMTMwNnB4ICNmZmYsIDQyNXB4IDE0ODlweCAjZmZmLCA2MjlweCAxMjY3cHggI2ZmZiwgMTMzNXB4IDEzMzlweCAjZmZmLCAxNDI0cHggODA1cHggI2ZmZiwgMzgwcHggNDA0cHggI2ZmZiwgMjU4cHggMTQwMXB4ICNmZmYsIDEzOTRweCAxMDIxcHggI2ZmZiwgNDUwcHggMzgycHggI2ZmZiwgMTA5MHB4IDczNHB4ICNmZmYsIDMxN3B4IDkzMHB4ICNmZmYsIDE2MTVweCAxNjExcHggI2ZmZiwgMjI1cHggMTkyN3B4ICNmZmYsIDg1cHggODAwcHggI2ZmZiwgMTI0NnB4IDdweCAjZmZmLCA1MThweCAzNjJweCAjZmZmLCAxNzUxcHggNDU4cHggI2ZmZiwgNzk2cHggMTk0NXB4ICNmZmYsIDc4NnB4IDkwNXB4ICNmZmYsIDE5NDNweCAxMTA0cHggI2ZmZiwgMzI2cHggMTI3N3B4ICNmZmYsIDExNzNweCAxNDkxcHggI2ZmZiwgOTgxcHggMTczMnB4ICNmZmYsIDE5ODNweCAzOTBweCAjZmZmLCA0OTlweCAzODFweCAjZmZmLCAxNDkwcHggNDg5cHggI2ZmZiwgODE0cHggMTg0NnB4ICNmZmYsIDQwN3B4IDY4OXB4ICNmZmYsIDE0MDRweCAxODczcHggI2ZmZiwgNjFweCAxMjIzcHggI2ZmZiwgMTk2MHB4IDI0OHB4ICNmZmYsIDEyMzFweCAxNTg4cHggI2ZmZiwgOTc3cHggODcxcHggI2ZmZiwgNTU2cHggNzcycHggI2ZmZiwgMzU5cHggMTE0MXB4ICNmZmYsIDU4cHggODgzcHggI2ZmZiwgNDgxcHggMTI1OXB4ICNmZmYsIDg3NHB4IDQ5NXB4ICNmZmYsIDYyNHB4IDEzODRweCAjZmZmLCAxNzMwcHggOTAxcHggI2ZmZiwgMTY0OHB4IDgyN3B4ICNmZmYsIDgwN3B4IDEwODJweCAjZmZmLCAxNjAxcHggMTM5cHggI2ZmZiwgMTQ5MHB4IDEwMzdweCAjZmZmLCAyMDJweCAxNzlweCAjZmZmLCA2NjRweCA2NTJweCAjZmZmLCAzNzdweCAzNjlweCAjZmZmLCA2MzlweCAxNDU0cHggI2ZmZiwgMThweCAxMTA4cHggI2ZmZiwgMTkxOHB4IDEzNjRweCAjZmZmLCAxNDRweCAxNjcwcHggI2ZmZiwgMTUyMXB4IDEwODJweCAjZmZmLCAxMDA2cHggNjY5cHggI2ZmZiwgMTUxcHggMTU0OHB4ICNmZmYsIDY1N3B4IDE5NDBweCAjZmZmLCAxMjhweCAxNTY3cHggI2ZmZiwgNTAxcHggMTU3NXB4ICNmZmYsIDEwNzdweCA5MTRweCAjZmZmLCAxNTQ0cHggNzM5cHggI2ZmZiwgMTAyMnB4IDQwOHB4ICNmZmYsIDE5MzlweCAxODk3cHggI2ZmZiwgNTlweCAxMDk5cHggI2ZmZiwgMTk5M3B4IDQyMXB4ICNmZmYsIDE0OTZweCAxOTE3cHggI2ZmZiwgMTk2NHB4IDE0NTZweCAjZmZmLCAxMTgycHggMTQ3NXB4ICNmZmYsIDE2OTlweCAxNnB4ICNmZmYsIDE2MXB4IDQzMHB4ICNmZmYsIDc0NHB4IDEwODNweCAjZmZmLCAxNzA2cHggMjc3cHggI2ZmZiwgODg0cHggMTcyM3B4ICNmZmYsIDkxMHB4IDE4MDJweCAjZmZmLCAxMDY3cHggMTc3cHggI2ZmZiwgMTkyMHB4IDEzNjRweCAjZmZmLCAzMDJweCAxMDY1cHggI2ZmZiwgMTczNXB4IDUzNnB4ICNmZmYsIDExMjNweCA5MjlweCAjZmZmLCA0MjBweCAxODgzcHggI2ZmZiwgNzQ5cHggNDg0cHggI2ZmZiwgMTY2NnB4IDE2MjFweCAjZmZmLCAxMDA4cHggODE1cHggI2ZmZiwgMTEyM3B4IDE3NjZweCAjZmZmLCAzMzRweCA1NjFweCAjZmZmLCA1OTBweCAxMTMzcHggI2ZmZiwgMTIxNXB4IDEwNzVweCAjZmZmLCAzMHB4IDEyMDRweCAjZmZmLCAxOTJweCAxMzc1cHggI2ZmZiwgMTMwOHB4IDJweCAjZmZmLCA5NTlweCAxNjAwcHggI2ZmZiwgMTIxOXB4IDU2OXB4ICNmZmYsIDExNzVweCA1MjdweCAjZmZmLCA5NzNweCAxMzE5cHggI2ZmZiwgMTIyNHB4IDE0MDhweCAjZmZmLCA0NDhweCAxNzQ2cHggI2ZmZiwgMTI1OHB4IDExNzhweCAjZmZmLCA5MTZweCAxMzU5cHggI2ZmZiwgMTY3cHggMzgycHggI2ZmZiwgNTM0cHggODcycHggI2ZmZiwgMTY0OXB4IDYzM3B4ICNmZmYsIDEyNXB4IDY4M3B4ICNmZmYsIDEyNXB4IDE5NTJweCAjZmZmLCA3MTlweCAxMTk4cHggI2ZmZiwgMTExOHB4IDExNDVweCAjZmZmLCAxMzIxcHggNTZweCAjZmZmLCA5NThweCAxMDQ1cHggI2ZmZiwgMzVweCAxMzk1cHggI2ZmZiwgNzA4cHggOTM2cHggI2ZmZiwgMTkxN3B4IDcwNHB4ICNmZmYsIDE5MjZweCAxOTA3cHggI2ZmZiwgNDM1cHggMTM3OXB4ICNmZmYsIDk4NnB4IDI4MnB4ICNmZmYsIDE2MThweCAxOTE3cHggI2ZmZiwgOTUzcHggOTY1cHggI2ZmZiwgMTExOXB4IDE3MzhweCAjZmZmLCAxOTA1cHggMTg4NHB4ICNmZmYsIDExMDRweCA2NTdweCAjZmZmLCA0MzlweCA5NjJweCAjZmZmLCAzNjVweCAyMTlweCAjZmZmLCAxNjAwcHggMTAyOHB4ICNmZmYsIDE5NzBweCAxNTc0cHggI2ZmZiwgMTE1NHB4IDQ0MHB4ICNmZmYsIDE5MTZweCA3ODBweCAjZmZmLCAxNjA4cHggOTI4cHggI2ZmZiwgMTU4M3B4IDgxMHB4ICNmZmYsIDYyOHB4IDY4MnB4ICNmZmYsIDU5NnB4IDE1MjVweCAjZmZmLCA1MjFweCAxNzQ2cHggI2ZmZiwgODQ4cHggNzQwcHggI2ZmZiwgMTI1MXB4IDg1NXB4ICNmZmYsIDIyMnB4IDkxNHB4ICNmZmYsIDE1MzhweCAzMzRweCAjZmZmLCAxNDQxcHggMTYzMXB4ICNmZmYsIDE4NzNweCAxMDdweCAjZmZmLCAxNTk4cHggMTI4OHB4ICNmZmYsIDE1MTFweCA4OXB4ICNmZmYsIDY1cHggMTA3N3B4ICNmZmYsIDE4MzNweCA4MTNweCAjZmZmLCA4OThweCAxMzg0cHggI2ZmZiwgNTE3cHggMTgxOXB4ICNmZmYsIDI5OXB4IDI5M3B4ICNmZmYsIDk1NXB4IDM5MXB4ICNmZmYsIDU4cHggMTY0NXB4ICNmZmYsIDE5MTNweCA4NnB4ICNmZmYsIDEwMTNweCA2NzJweCAjZmZmLCAxODIzcHggMTc1NnB4ICNmZmYsIDkzMHB4IDM5NHB4ICNmZmYsIDY4NHB4IDEwNjNweCAjZmZmLCA4NzdweCA1M3B4ICNmZmYsIDE5OTJweCA0N3B4ICNmZmYsIDE2MzNweCAxMDE0cHggI2ZmZiwgOTEzcHggMzQ1cHggI2ZmZiwgNjcxcHggMTM2NnB4ICNmZmYsIDE5NDdweCAxNTc3cHggI2ZmZiwgMTI5OXB4IDEyNzJweCAjZmZmLCA3MDRweCAxNjkwcHggI2ZmZiwgMTIzMXB4IDEyNTNweCAjZmZmLCAxNjAycHggMTM0MHB4ICNmZmYsIDc5NHB4IDEyOTNweCAjZmZmLCAxNzA2cHggMTE3NHB4ICNmZmYsIDE0NDJweCA2MDBweCAjZmZmLCAyNzBweCAxNzE3cHggI2ZmZiwgMTAxMXB4IDE3ODlweCAjZmZmLCAxNjQ4cHggMTc1MHB4ICNmZmYsIDEyOTRweCAyMDAwcHggI2ZmZiwgMTY0MHB4IDg4MnB4ICNmZmYsIDE1MTZweCA4MDVweCAjZmZmLCAxMTk5cHggODk1cHggI2ZmZiwgMTQ1NHB4IDE5MzlweCAjZmZmLCA0MHB4IDEwMTlweCAjZmZmLCAzOTdweCAxMDM3cHggI2ZmZiwgMTM2NHB4IDE3NjdweCAjZmZmLCA5MzJweCA5OTZweCAjZmZmLCAyMjdweCAxMDEzcHggI2ZmZiwgMzAxcHggMzA3cHggI2ZmZiwgMzYzcHggNjA0cHggI2ZmZiwgMTk1NnB4IDE0NDVweCAjZmZmLCAxODIwcHggOTYwcHggI2ZmZiwgMzI1cHggMTI4NXB4ICNmZmYsIDE5NzVweCAyODdweCAjZmZmLCA1ODJweCAxMDg0cHggI2ZmZiwgMTE3cHggMTk4MXB4ICNmZmYsIDY2NnB4IDExODFweCAjZmZmLCAyNDdweCA2OTFweCAjZmZmLCAxMzM2cHggMTMwM3B4ICNmZmYsIDE0NDlweCAxOTczcHggI2ZmZiwgMjUxcHggMTg3cHggI2ZmZiwgMTEyN3B4IDUyNHB4ICNmZmYsIDE5MjBweCA0MzRweCAjZmZmLCAyNjdweCAxMjk4cHggI2ZmZiwgNTIxcHggMTQ0OHB4ICNmZmYsIDE1NzdweCAxOTE1cHggI2ZmZiwgMTI3NnB4IDU3MXB4ICNmZmYsIDEyMTdweCAxNTkzcHggI2ZmZiwgOTU4cHggMTEwOHB4ICNmZmYsIDI0NnB4IDEwNzNweCAjZmZmLCAxNTkycHggMTIzOHB4ICNmZmYsIDE3NDhweCAxNDFweCAjZmZmLCA2ODNweCAxNjQ1cHggI2ZmZiwgM3B4IDEwMDZweCAjZmZmLCAxOTE0cHggMTgyOXB4ICNmZmYsIDEzOTVweCAxNDYycHggI2ZmZiwgMTMyMXB4IDUyOHB4ICNmZmYsIDE0MzdweCAxMTgzcHggI2ZmZiwgMTY1OHB4IDEzMTdweCAjZmZmLCA0MjVweCAxNzkxcHggI2ZmZiwgNTAycHggMTAzOHB4ICNmZmYsIDExNDNweCAyNjZweCAjZmZmLCAxMjI5cHggODI0cHggI2ZmZiwgODAwcHggNjMycHggI2ZmZiwgMTg5MXB4IDE0NjlweCAjZmZmLCAxMDY3cHggNTMxcHggI2ZmZiwgMTIyNnB4IDE3NTlweCAjZmZmLCAxNTE2cHggOTI0cHggI2ZmZiwgMTU4NXB4IDE3NzZweCAjZmZmLCA4MjRweCA4MTRweCAjZmZmLCAyOTdweCAxNDYzcHggI2ZmZiwgNDkwcHggMTcyNnB4ICNmZmYsIDE4NzhweCAxOTgxcHggI2ZmZiwgMjU4cHggMTI2cHggI2ZmZiwgMTA2M3B4IDkwMnB4ICNmZmYsIDg5M3B4IDEwMzBweCAjZmZmLCAxODE4cHggMTEzMXB4ICNmZmYsIDEzNTVweCA4MTdweCAjZmZmLCAyMzhweCAxOTIwcHggI2ZmZiwgMTE5M3B4IDgwNnB4ICNmZmYsIDEwNzZweCA1ODJweCAjZmZmLCAxNDU2cHggNDcycHggI2ZmZiwgMjQ4cHggMTQ1MnB4ICNmZmYsIDE0MzBweCA5MDRweCAjZmZmLCA0MTdweCA0OTZweCAjZmZmLCAxMzg3cHggNTA0cHggI2ZmZiwgNTc5cHggNjA4cHggI2ZmZiwgODI3cHggOTQ2cHggI2ZmZiwgMTIzNHB4IDYxN3B4ICNmZmYsIDE3MzJweCAxNTQ4cHggI2ZmZiwgMTcwNnB4IDE5NjFweCAjZmZmLCAzNjFweCAzNzBweCAjZmZmLCAyMTFweCAzMTVweCAjZmZmLCAxNjEycHggNjU3cHggI2ZmZiwgMTUzM3B4IDYzNXB4ICNmZmYsIDE1NzBweCAxOTUwcHggI2ZmZiwgMjdweCAxOTY4cHggI2ZmZiwgMTQ3NnB4IDk0MnB4ICNmZmYsIDExN3B4IDUyMHB4ICNmZmYsIDEzNTJweCA0MjlweCAjZmZmLCAxMzU0cHggNzM1cHggI2ZmZiwgOTdweCA4NDlweCAjZmZmLCA4NTNweCAyMDZweCAjZmZmLCAxMTUwcHggNzM2cHggI2ZmZiwgMjYxcHggMTgzMHB4ICNmZmYsIDQ5N3B4IDM5cHggI2ZmZiwgNDRweCAxNzk4cHggI2ZmZiwgMTY2NXB4IDEzMjRweCAjZmZmLCAxODAwcHggMjY2cHggI2ZmZiwgMTczM3B4IDk4MXB4ICNmZmYsIDE5NzFweCAxMDE2cHggI2ZmZiwgOTY2cHggNzI0cHggI2ZmZiwgOTI0cHggMTM5MHB4ICNmZmYsIDY4OXB4IDEzMjlweCAjZmZmLCAxNzA3cHggMTI3NnB4ICNmZmYsIDE2NjlweCAxODQwcHggI2ZmZiwgMTA5M3B4IDg3MHB4ICNmZmYsIDg2M3B4IDE1MjVweCAjZmZmLCAxNTYzcHggMTg4MHB4ICNmZmYsIDE1MDlweCAxMDUxcHggI2ZmZiwgNTA0cHggNTQ4cHggI2ZmZiwgMTE1N3B4IDE4MzhweCAjZmZmLCAxNTk5cHggOTc1cHggI2ZmZiwgNTAwcHggMTEwN3B4ICNmZmYsIDE5MTFweCAxMjAwcHggI2ZmZiwgMzc0cHggMTI4OXB4ICNmZmYsIDVweCAyMDFweCAjZmZmLCAxMzY1cHggNjM5cHggI2ZmZiwgMTI2MXB4IDE1OThweCAjZmZmLCAxNzk3cHggNDgycHggI2ZmZiwgMTk0MnB4IDEzNnB4ICNmZmYsIDE3NTFweCA4NDVweCAjZmZmLCA5NThweCA4OTJweCAjZmZmLCAyM3B4IDE1NDFweCAjZmZmLCA5NzRweCA3MzNweCAjZmZmLCA4OTZweCAxNjIwcHggI2ZmZiwgMTMzOHB4IDE1MzRweCAjZmZmLCAzNjhweCA2MjZweCAjZmZmLCAyMTRweCA2MzRweCAjZmZmLCA1MnB4IDE2MTVweCAjZmZmLCAxMzkxcHggMzI2cHggI2ZmZiwgMTk2MXB4IDEyNTJweCAjZmZmLCAzODRweCAxNjAwcHggI2ZmZiwgMjA1cHggMTU5NHB4ICNmZmYsIDcwM3B4IDQ5MnB4ICNmZmYsIDEzOTlweCA0NzVweCAjZmZmLCA5MzBweCAxNjUycHggI2ZmZiwgMTkzMHB4IDkyOHB4ICNmZmYsIDE2MjdweCA4ODBweCAjZmZmLCA1MjFweCA2MTJweCAjZmZmLCAxNDI2cHggMXB4ICNmZmYsIDE1cHggMzI5cHggI2ZmZiwgMTYzMnB4IDE0MDdweCAjZmZmLCAyNTFweCA0NTBweCAjZmZmLCAxMDgwcHggMTg3OHB4ICNmZmYsIDEyNjNweCAxOTc0cHggI2ZmZiwgMTU4NXB4IDE0OTNweCAjZmZmLCAxMzA4cHggMTU5OXB4ICNmZmYsIDIwOXB4IDUyNnB4ICNmZmYsIDcyMHB4IDExODNweCAjZmZmLCAxODY2cHggNDkzcHggI2ZmZiwgNTgxcHggNDI3cHggI2ZmZiwgNDEycHggNzMwcHggI2ZmZiwgMTEycHggNTIwcHggI2ZmZiwgOTU5cHggMTUyN3B4ICNmZmYsIDEyNDFweCAxNjQ2cHggI2ZmZiwgOTIxcHggNjIycHggI2ZmZiwgMTMxMnB4IDEyNjZweCAjZmZmLCA5NTdweCA0NDJweCAjZmZmLCAxNDgwcHggODc3cHggI2ZmZiwgOTU5cHggODUwcHggI2ZmZiwgMTMxMHB4IDE0NzlweCAjZmZmLCAxNjg3cHggMzY2cHggI2ZmZiwgMTQ5cHggNDMycHggI2ZmZiwgMjc4cHggMTQwMXB4ICNmZmYsIDYyMnB4IDE2ODFweCAjZmZmLCAxNTkwcHggMTA4MHB4ICNmZmYsIDEzMjZweCA5ODRweCAjZmZmLCA1NjJweCAxOTI4cHggI2ZmZiwgMTgwNXB4IDg2OHB4ICNmZmYsIDE3MDVweCAxNzE4cHggI2ZmZiwgMTIzNXB4IDMzM3B4ICNmZmYsIDkzM3B4IDE2NTlweCAjZmZmLCA5MjZweCA5NHB4ICNmZmYsIDU5MnB4IDE4NjRweCAjZmZmLCAxNDEzcHggNDA1cHggI2ZmZiwgMTY3M3B4IDEzNThweCAjZmZmLCAxNzQ5cHggMzg0cHggI2ZmZiwgMzE0cHggMTA4NnB4ICNmZmYsIDQ1OHB4IDI5N3B4ICNmZmYsIDE0MTJweCAxMzY3cHggI2ZmZiwgMTE0N3B4IDE0MjRweCAjZmZmLCA1NTBweCAxNTA0cHggI2ZmZiwgMTUzM3B4IDE2MzlweCAjZmZmLCAxMTgxcHggMTMyNXB4ICNmZmYsIDU1NXB4IDE2ODJweCAjZmZmLCA2MDdweCA3MTRweCAjZmZmLCAxNzU1cHggMTc5NHB4ICNmZmYsIDE0MjJweCA2MjBweCAjZmZmLCAxOTE0cHggMTQ1NXB4ICNmZmYsIDEwMjJweCAxMzQ5cHggI2ZmZiwgMTM2OHB4IDkyNnB4ICNmZmYsIDE4ODVweCAxMTE0cHggI2ZmZiwgMjk3cHggMTIxMnB4ICNmZmYsIDIzMnB4IDU3cHggI2ZmZiwgMTc0MXB4IDE2NzlweCAjZmZmLCAxNjk4cHggMTUwNnB4ICNmZmYsIDE2MDVweCAxNzI5cHggI2ZmZiwgMTMwMXB4IDcwN3B4ICNmZmYsIDE0MDZweCAxNjY1cHggI2ZmZiwgMTIzN3B4IDM1OHB4ICNmZmYsIDgwcHggMTk4NHB4ICNmZmYsIDI4cHggMTI3M3B4ICNmZmYsIDEzMzRweCAxMDA2cHggI2ZmZiwgMTU3M3B4IDkyNXB4ICNmZmYsIDcxNHB4IDM3M3B4ICNmZmYsIDE4OTlweCA4NjhweCAjZmZmLCA4NjJweCAxODc4cHggI2ZmZiwgNzAwcHggNjA5cHggI2ZmZiwgNDU1cHggMTIzN3B4ICNmZmYsIDYxN3B4IDE2NjdweCAjZmZmLCAzNTFweCA5MDNweCAjZmZmLCAyMzZweCA2MjVweCAjZmZmLCA5MDZweCAxNzc0cHggI2ZmZiwgNjQzcHggMTY1OXB4ICNmZmYsIDEyMDlweCAyNDNweCAjZmZmLCA1MXB4IDNweCAjZmZmLCAxOTMwcHggMTkzM3B4ICNmZmYsIDU0OHB4IDE2OTZweCAjZmZmLCAzMzlweCA1NjhweCAjZmZmLCAxNDY5cHggMTUwNXB4ICNmZmYsIDQzNHB4IDE4MDdweCAjZmZmLCA3NjFweCAxMjk4cHggI2ZmZiwgMTk3NHB4IDExNjJweCAjZmZmLCAzNjZweCA1MjFweCAjZmZmLCAxNzA5cHggNjExcHggI2ZmZiwgMzU1cHggODIxcHggI2ZmZiwgMTM5MXB4IDQwMXB4ICNmZmYsIDEwMzJweCAxODkwcHggI2ZmZiwgMTM2NXB4IDEwNjVweCAjZmZmLCAxNjAycHggNDQwcHggI2ZmZiwgMTY3OHB4IDEwMDdweCAjZmZmLCAzODFweCAxMTI3cHggI2ZmZiwgMTQwMHB4IDEwMDlweCAjZmZmLCA5NjlweCA1NTRweCAjZmZmLCAxMDgwcHggODMycHggI2ZmZiwgMTg3cHggMTk0OXB4ICNmZmYsIDczOHB4IDE2NzZweCAjZmZmLCAxOHB4IDE2MTBweCAjZmZmLCAxOTgwcHggMTc3OHB4ICNmZmYsIDM1NHB4IDUyOHB4ICNmZmYsIDE2ODFweCA1OTBweCAjZmZmLCAxMzkzcHggMTIzNnB4ICNmZmYsIDE0NDlweCAxNDA2cHggI2ZmZiwgMTU5NXB4IDEyNTNweCAjZmZmLCA3NTRweCAxNjc2cHggI2ZmZiwgMTkwcHggNDMxcHggI2ZmZiwgODY2cHggNjI0cHggI2ZmZiwgMTUwOHB4IDE4MzhweCAjZmZmLCA4OTRweCA0MzVweCAjZmZmLCAzcHggMTYyM3B4ICNmZmYsIDE5NzlweCA2MTdweCAjZmZmLCA3NTJweCAxNTUwcHggI2ZmZiwgMTc2MXB4IDEyNTVweCAjZmZmLCA1M3B4IDg1M3B4ICNmZmYsIDExNzJweCAxOTE3cHggI2ZmZiwgODhweCAxNjFweCAjZmZmLCAxNTg3cHggNjQ4cHggI2ZmZiwgMTIyMnB4IDY4NnB4ICNmZmYsIDE5NTdweCA2NjZweCAjZmZmLCA5MDlweCAxMDcwcHggI2ZmZiwgMzc5cHggNjQ4cHggI2ZmZiwgMTE1NHB4IDE4NjJweCAjZmZmLCAxMDY1cHggMTkxNnB4ICNmZmYsIDE1NDZweCA2MjhweCAjZmZmLCAxMzBweCA4NThweCAjZmZmLCA1NThweCAzODdweCAjZmZmLCAxMDM1cHggMTE1OHB4ICNmZmYsIDYwNnB4IDE2NTRweCAjZmZmLCA3NjRweCA4MjlweCAjZmZmLCA4MzdweCAxODc4cHggI2ZmZiwgNTIycHggMTg0M3B4ICNmZmYsIDEyMTdweCA1MzNweCAjZmZmLCAxOThweCA5M3B4ICNmZmYsIDQ4M3B4IDE0MjZweCAjZmZmLCAxNDYzcHggNDE5cHggI2ZmZiwgMTMyM3B4IDI3M3B4ICNmZmYsIDYwOHB4IDEwODNweCAjZmZmLCA0MzVweCAxOTg2cHggI2ZmZiwgMTgyMHB4IDE0ODRweCAjZmZmLCAxOTZweCA0NjVweCAjZmZmLCAxMjAycHggODYzcHggI2ZmZiwgMTg2N3B4IDg4NXB4ICNmZmYsIDk3cHggMTU3NnB4ICNmZmYsIDc0NXB4IDExNDJweCAjZmZmLCAxNjAzcHggMTgwOXB4ICNmZmYsIDYyMnB4IDg0NXB4ICNmZmYsIDgwMXB4IDQ0OHB4ICNmZmYsIDY3N3B4IDEwMzRweCAjZmZmLCAxMDY4cHggMTQ2NHB4ICNmZmYsIDE1ODZweCAxNTc0cHggI2ZmZiwgMjM3cHggOTE1cHggI2ZmZiwgMTkyOHB4IDE1MzJweCAjZmZmLCA2OXB4IDE3MDBweCAjZmZmLCA0MDhweCAxODc2cHggI2ZmZiwgMzM0cHggMTJweCAjZmZmLCAxOTczcHggMTU4NHB4ICNmZmYsIDI4MHB4IDI2MXB4ICNmZmYsIDE0MzhweCAzNDZweCAjZmZmLCAxMTgxcHggMTYyMXB4ICNmZmYsIDYxNnB4IDEyNTFweCAjZmZmLCA1MHB4IDYyMnB4ICNmZmYsIDE5ODNweCA2MDRweCAjZmZmLCAxMjI4cHggMTE3MnB4ICNmZmYsIDI3MXB4IDg5N3B4ICNmZmYsIDExMDJweCAxNDk0cHggI2ZmZiwgMTY5NnB4IDEwNTFweCAjZmZmLCAxOTY3cHggMTg3MXB4ICNmZmYsIDEyNzJweCAyNDdweCAjZmZmLCA3NTFweCA4NTRweCAjZmZmLCA1NjBweCAxNjUycHggI2ZmZiwgMTQ5OHB4IDE5NnB4ICNmZmYsIDEyMjJweCAxNjEycHggI2ZmZiwgNTE4cHggNjI5cHggI2ZmZiwgNzZweCAxOTQxcHggI2ZmZiwgMTM1N3B4IDEwOTlweCAjZmZmLCA4MjVweCAxNTQ3cHggI2ZmZn0jd2hpdGUtc3RhcnMtbWVke3dpZHRoOjJweDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjEwNjFweCAxNzE2cHggI2ZmZiwgMzMxcHggNjMycHggI2ZmZiwgNzM4cHggMTMwMnB4ICNmZmYsIDE0MjlweCAxMzg4cHggI2ZmZiwgMzI4cHggMTc5MXB4ICNmZmYsIDE5NDFweCAxMDY3cHggI2ZmZiwgMTU3NHB4IDYyNHB4ICNmZmYsIDI2MXB4IDE3MzJweCAjZmZmLCA0MzlweCAxNzY3cHggI2ZmZiwgNjQ1cHggMTc5cHggI2ZmZiwgMTIwMnB4IDE2MzRweCAjZmZmLCAxMzM0cHggMTc1OHB4ICNmZmYsIDE4ODNweCA3NTlweCAjZmZmLCAzMXB4IDIzM3B4ICNmZmYsIDEwMzFweCAxNTkzcHggI2ZmZiwgMTM3OXB4IDE5NDZweCAjZmZmLCA5OTRweCAxNzQycHggI2ZmZiwgMTc2NnB4IDY2N3B4ICNmZmYsIDEwMzVweCAxNDM0cHggI2ZmZiwgMjE1cHggODQ2cHggI2ZmZiwgMTY3M3B4IDE3NjlweCAjZmZmLCA1NDNweCA2MTFweCAjZmZmLCA3OTRweCAxNjQ5cHggI2ZmZiwgMTY0OXB4IDkyMnB4ICNmZmYsIDE3MjhweCAxMDgwcHggI2ZmZiwgNDA1cHggNTMwcHggI2ZmZiwgMTQwNnB4IDE5OTZweCAjZmZmLCAxODcwcHggMTE5MnB4ICNmZmYsIDExNTlweCA1MTZweCAjZmZmLCA2MDFweCA3MjNweCAjZmZmLCAxNzMxcHggMTU5NnB4ICNmZmYsIDE4MDhweCA2MzlweCAjZmZmLCA0MjhweCAxMTg1cHggI2ZmZiwgMTM5cHggOTM2cHggI2ZmZiwgMTcxNnB4IDE1MTNweCAjZmZmLCAxODYwcHggMTI0NHB4ICNmZmYsIDE5MjRweCAxNjhweCAjZmZmLCA5MjZweCAxOTY4cHggI2ZmZiwgMzQxcHggODk4cHggI2ZmZiwgMTUzMHB4IDYwNHB4ICNmZmYsIDExODdweCA4OTBweCAjZmZmLCAxNDQwcHggMTYwcHggI2ZmZiwgMzQ0cHggMTczMHB4ICNmZmYsIDE4MzdweCAxNDEycHggI2ZmZiwgOTQ5cHggMTMwNHB4ICNmZmYsIDE5MDVweCA5ODNweCAjZmZmLCAxOTAwcHggNzgzcHggI2ZmZiwgMTU2NXB4IDE4MTlweCAjZmZmLCAyMTZweCA1MTFweCAjZmZmLCAyNTdweCA1MDJweCAjZmZmLCAxMTQ4cHggMTQ3NnB4ICNmZmYsIDM5MnB4IDE1NjVweCAjZmZmLCAzNjBweCAxMzAxcHggI2ZmZiwgMTYyMXB4IDEwMTNweCAjZmZmLCAxMTI2cHggNjFweCAjZmZmLCAxMTQxcHggMTQwM3B4ICNmZmYsIDE1MjZweCAxMjRweCAjZmZmLCAxNTE5cHggMTcwM3B4ICNmZmYsIDE1MzBweCAxNzZweCAjZmZmLCA3MjJweCA5MnB4ICNmZmYsIDk0MnB4IDE2MjlweCAjZmZmLCAxNzc5cHggNTUxcHggI2ZmZiwgNzM2cHggNjRweCAjZmZmLCA2OHB4IDk4N3B4ICNmZmYsIDYyNXB4IDEwMDhweCAjZmZmLCA5MzZweCAxNTEycHggI2ZmZiwgMTM4OXB4IDEwMDFweCAjZmZmLCAxOTdweCA1MDdweCAjZmZmLCAxNzg2cHggMTcwMnB4ICNmZmYsIDU1cHggMzYycHggI2ZmZiwgMTU4NnB4IDc1N3B4ICNmZmYsIDQ1MXB4IDQ5NHB4ICNmZmYsIDE0ODFweCAxMzRweCAjZmZmLCAyNThweCAyNzNweCAjZmZmLCAxNjEycHggODU5cHggI2ZmZiwgMTA4NHB4IDEwMTdweCAjZmZmLCA5NjFweCAxMTA2cHggI2ZmZiwgMTE3NnB4IDE3MDdweCAjZmZmLCAxMjkxcHggMTE1NHB4ICNmZmYsIDE5NHB4IDkxcHggI2ZmZiwgNDg3cHggODU2cHggI2ZmZiwgOTM2cHggNTE4cHggI2ZmZiwgOTAzcHggMTY4MHB4ICNmZmYsIDgxN3B4IDY3MnB4ICNmZmYsIDExMTFweCAxMDYycHggI2ZmZiwgNjQ1cHggMTMzMnB4ICNmZmYsIDE3NzZweCA2NTJweCAjZmZmLCAxNzU4cHggNDAycHggI2ZmZiwgMTg5N3B4IDg3MXB4ICNmZmYsIDExODFweCAxNDkxcHggI2ZmZiwgMTk2N3B4IDcxNHB4ICNmZmYsIDEyNjRweCAxMDE2cHggI2ZmZiwgMjg5cHggMjg1cHggI2ZmZiwgNzMzcHggMTA3NnB4ICNmZmYsIDc3MHB4IDEwNDFweCAjZmZmLCAxMjEwcHggMTY2MHB4ICNmZmYsIDE5MjRweCA2cHggI2ZmZiwgMjI1cHggMTE1OXB4ICNmZmYsIDIyN3B4IDEwMzlweCAjZmZmLCA1OTRweCA4NDVweCAjZmZmLCAxNTRweCA1MjNweCAjZmZmLCA2NzhweCAxMjM3cHggI2ZmZiwgNzA5cHggODY2cHggI2ZmZiwgMTQ2MXB4IDE2MTNweCAjZmZmLCAxOTE1cHggNjJweCAjZmZmLCAzNzBweCA4MzJweCAjZmZmLCAxNTM4cHggMzgzcHggI2ZmZiwgMTYyOXB4IDE0ODNweCAjZmZmLCAxNjk0cHggMTA2OXB4ICNmZmYsIDc1N3B4IDEwNjRweCAjZmZmLCA5NDdweCA3NDhweCAjZmZmLCAxMzEzcHggMTI3M3B4ICNmZmYsIDI5NXB4IDE2MnB4ICNmZmYsIDEyNDZweCA1ODNweCAjZmZmLCA5MjVweCAyNzlweCAjZmZmLCAxNTIxcHggMTY3N3B4ICNmZmYsIDEyOXB4IDEwMDZweCAjZmZmLCAxNzQ5cHggMzU2cHggI2ZmZiwgNTk3cHggMjYzcHggI2ZmZiwgMTIxMXB4IDE4NDZweCAjZmZmLCA0MjRweCAxNjU1cHggI2ZmZiwgMTM5M3B4IDMxNHB4ICNmZmYsIDEyODhweCAxMzQxcHggI2ZmZiwgMTc4NHB4IDgwMXB4ICNmZmYsIDkzMHB4IDgxcHggI2ZmZiwgMTQ2OXB4IDE3MjVweCAjZmZmLCA2NTJweCA1NTZweCAjZmZmLCA5cHggMTU3MHB4ICNmZmYsIDEyNDVweCAzNDdweCAjZmZmLCAxNzc3cHggMTcyMnB4ICNmZmYsIDEzMTdweCAzNTNweCAjZmZmLCA3N3B4IDExNTdweCAjZmZmLCAxMDYwcHggMTYzcHggI2ZmZiwgMTgwMHB4IDE1MTlweCAjZmZmLCAyMjBweCAxMDgzcHggI2ZmZiwgMTE4MnB4IDczcHggI2ZmZiwgNzgxcHggOTZweCAjZmZmLCAxMTQ1cHggMjA3cHggI2ZmZiwgMTk1OXB4IDMxMHB4ICNmZmYsIDEyNzZweCAxNDIxcHggI2ZmZiwgOTg1cHggMTYwM3B4ICNmZmYsIDc1NnB4IDEyODFweCAjZmZmLCAxODgzcHggMjEwcHggI2ZmZiwgOTEzcHggMzk0cHggI2ZmZiwgMTk0OHB4IDEzMzJweCAjZmZmLCA0ODFweCA2MnB4ICNmZmYsIDE5NDFweCAxMjAxcHggI2ZmZiwgMTEwMnB4IDE5ODFweCAjZmZmLCAxOTE5cHggMjQycHggI2ZmZiwgMTA2OXB4IDE5NTJweCAjZmZmLCAxMTIycHggMTk2MnB4ICNmZmYsIDExMnB4IDE0MjNweCAjZmZmLCAxMzI1cHggMTAwMnB4ICNmZmYsIDE0OThweCA5NzhweCAjZmZmLCAxMzM1cHggMTM0NnB4ICNmZmYsIDQzNXB4IDE5NDRweCAjZmZmLCAxOTg0cHggMTYxOXB4ICNmZmYsIDEzMTlweCA0MzVweCAjZmZmLCA3NzVweCAxNTYzcHggI2ZmZiwgMTEzNnB4IDE5NjFweCAjZmZmLCA5ODlweCAxNTE3cHggI2ZmZiwgMTQ2OHB4IDU5M3B4ICNmZmYsIDcxOHB4IDExNjBweCAjZmZmLCAxNzQycHggMTE4OXB4ICNmZmYsIDE4NDNweCAxNDQzcHggI2ZmZiwgMTg5M3B4IDE1NzdweCAjZmZmLCA1MDJweCAxMTNweCAjZmZmLCA1OTNweCAxNTZweCAjZmZmLCAxMTc1cHggODI4cHggI2ZmZiwgMTgxNnB4IDEyMTlweCAjZmZmLCA0NjJweCA4MDBweCAjZmZmLCA4MTRweCAxNTcycHggI2ZmZiwgMTk5MXB4IDE1MzNweCAjZmZmLCAxNjM2cHggODMycHggI2ZmZiwgODgzcHggMTYyMHB4ICNmZmYsIDE1ODhweCAzNTNweCAjZmZmLCA2NTRweCA4MDVweCAjZmZmLCAxODMzcHggNzgxcHggI2ZmZiwgNzA1cHggMTcwM3B4ICNmZmYsIDE4MzJweCAxNTQ5cHggI2ZmZiwgMTQ2N3B4IDk5MnB4ICNmZmYsIDEwMjRweCA4OHB4ICNmZmYsIDEzMDNweCA4NzJweCAjZmZmLCAzNDJweCA0NzRweCAjZmZmLCAxOTgwcHggMTE5MXB4ICNmZmYsIDEzMTJweCAyNTlweCAjZmZmLCAxMTIwcHggMjk4cHggI2ZmZiwgOTk1cHggMzg4cHggI2ZmZiwgMTc0MHB4IDg0NnB4ICNmZmYsIDM0MXB4IDQ1NXB4ICNmZmYsIDEyMDZweCAxODM3cHggI2ZmZiwgMTkzOXB4IDEyODdweCAjZmZmLCA0NXB4IDE5NDVweCAjZmZmLCAxNjMwcHggNTQycHggI2ZmZiwgNzJweCA5MzdweCAjZmZmLCA0MDRweCA3NzRweCAjZmZmLCAxMzEzcHggMTE2NXB4ICNmZmYsIDEzNDlweCAxODEwcHggI2ZmZiwgNzM1cHggNzc4cHggI2ZmZiwgNTgycHggMTY4OHB4ICNmZmY7YW5pbWF0aW9uOmFuaW1TdGFyIDE2N3MgbGluZWFyIGluZmluaXRlfSN3aGl0ZS1zdGFycy1tZWQ6YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMDBweDt3aWR0aDoycHg7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxMDYxcHggMTcxNnB4ICNmZmYsIDMzMXB4IDYzMnB4ICNmZmYsIDczOHB4IDEzMDJweCAjZmZmLCAxNDI5cHggMTM4OHB4ICNmZmYsIDMyOHB4IDE3OTFweCAjZmZmLCAxOTQxcHggMTA2N3B4ICNmZmYsIDE1NzRweCA2MjRweCAjZmZmLCAyNjFweCAxNzMycHggI2ZmZiwgNDM5cHggMTc2N3B4ICNmZmYsIDY0NXB4IDE3OXB4ICNmZmYsIDEyMDJweCAxNjM0cHggI2ZmZiwgMTMzNHB4IDE3NThweCAjZmZmLCAxODgzcHggNzU5cHggI2ZmZiwgMzFweCAyMzNweCAjZmZmLCAxMDMxcHggMTU5M3B4ICNmZmYsIDEzNzlweCAxOTQ2cHggI2ZmZiwgOTk0cHggMTc0MnB4ICNmZmYsIDE3NjZweCA2NjdweCAjZmZmLCAxMDM1cHggMTQzNHB4ICNmZmYsIDIxNXB4IDg0NnB4ICNmZmYsIDE2NzNweCAxNzY5cHggI2ZmZiwgNTQzcHggNjExcHggI2ZmZiwgNzk0cHggMTY0OXB4ICNmZmYsIDE2NDlweCA5MjJweCAjZmZmLCAxNzI4cHggMTA4MHB4ICNmZmYsIDQwNXB4IDUzMHB4ICNmZmYsIDE0MDZweCAxOTk2cHggI2ZmZiwgMTg3MHB4IDExOTJweCAjZmZmLCAxMTU5cHggNTE2cHggI2ZmZiwgNjAxcHggNzIzcHggI2ZmZiwgMTczMXB4IDE1OTZweCAjZmZmLCAxODA4cHggNjM5cHggI2ZmZiwgNDI4cHggMTE4NXB4ICNmZmYsIDEzOXB4IDkzNnB4ICNmZmYsIDE3MTZweCAxNTEzcHggI2ZmZiwgMTg2MHB4IDEyNDRweCAjZmZmLCAxOTI0cHggMTY4cHggI2ZmZiwgOTI2cHggMTk2OHB4ICNmZmYsIDM0MXB4IDg5OHB4ICNmZmYsIDE1MzBweCA2MDRweCAjZmZmLCAxMTg3cHggODkwcHggI2ZmZiwgMTQ0MHB4IDE2MHB4ICNmZmYsIDM0NHB4IDE3MzBweCAjZmZmLCAxODM3cHggMTQxMnB4ICNmZmYsIDk0OXB4IDEzMDRweCAjZmZmLCAxOTA1cHggOTgzcHggI2ZmZiwgMTkwMHB4IDc4M3B4ICNmZmYsIDE1NjVweCAxODE5cHggI2ZmZiwgMjE2cHggNTExcHggI2ZmZiwgMjU3cHggNTAycHggI2ZmZiwgMTE0OHB4IDE0NzZweCAjZmZmLCAzOTJweCAxNTY1cHggI2ZmZiwgMzYwcHggMTMwMXB4ICNmZmYsIDE2MjFweCAxMDEzcHggI2ZmZiwgMTEyNnB4IDYxcHggI2ZmZiwgMTE0MXB4IDE0MDNweCAjZmZmLCAxNTI2cHggMTI0cHggI2ZmZiwgMTUxOXB4IDE3MDNweCAjZmZmLCAxNTMwcHggMTc2cHggI2ZmZiwgNzIycHggOTJweCAjZmZmLCA5NDJweCAxNjI5cHggI2ZmZiwgMTc3OXB4IDU1MXB4ICNmZmYsIDczNnB4IDY0cHggI2ZmZiwgNjhweCA5ODdweCAjZmZmLCA2MjVweCAxMDA4cHggI2ZmZiwgOTM2cHggMTUxMnB4ICNmZmYsIDEzODlweCAxMDAxcHggI2ZmZiwgMTk3cHggNTA3cHggI2ZmZiwgMTc4NnB4IDE3MDJweCAjZmZmLCA1NXB4IDM2MnB4ICNmZmYsIDE1ODZweCA3NTdweCAjZmZmLCA0NTFweCA0OTRweCAjZmZmLCAxNDgxcHggMTM0cHggI2ZmZiwgMjU4cHggMjczcHggI2ZmZiwgMTYxMnB4IDg1OXB4ICNmZmYsIDEwODRweCAxMDE3cHggI2ZmZiwgOTYxcHggMTEwNnB4ICNmZmYsIDExNzZweCAxNzA3cHggI2ZmZiwgMTI5MXB4IDExNTRweCAjZmZmLCAxOTRweCA5MXB4ICNmZmYsIDQ4N3B4IDg1NnB4ICNmZmYsIDkzNnB4IDUxOHB4ICNmZmYsIDkwM3B4IDE2ODBweCAjZmZmLCA4MTdweCA2NzJweCAjZmZmLCAxMTExcHggMTA2MnB4ICNmZmYsIDY0NXB4IDEzMzJweCAjZmZmLCAxNzc2cHggNjUycHggI2ZmZiwgMTc1OHB4IDQwMnB4ICNmZmYsIDE4OTdweCA4NzFweCAjZmZmLCAxMTgxcHggMTQ5MXB4ICNmZmYsIDE5NjdweCA3MTRweCAjZmZmLCAxMjY0cHggMTAxNnB4ICNmZmYsIDI4OXB4IDI4NXB4ICNmZmYsIDczM3B4IDEwNzZweCAjZmZmLCA3NzBweCAxMDQxcHggI2ZmZiwgMTIxMHB4IDE2NjBweCAjZmZmLCAxOTI0cHggNnB4ICNmZmYsIDIyNXB4IDExNTlweCAjZmZmLCAyMjdweCAxMDM5cHggI2ZmZiwgNTk0cHggODQ1cHggI2ZmZiwgMTU0cHggNTIzcHggI2ZmZiwgNjc4cHggMTIzN3B4ICNmZmYsIDcwOXB4IDg2NnB4ICNmZmYsIDE0NjFweCAxNjEzcHggI2ZmZiwgMTkxNXB4IDYycHggI2ZmZiwgMzcwcHggODMycHggI2ZmZiwgMTUzOHB4IDM4M3B4ICNmZmYsIDE2MjlweCAxNDgzcHggI2ZmZiwgMTY5NHB4IDEwNjlweCAjZmZmLCA3NTdweCAxMDY0cHggI2ZmZiwgOTQ3cHggNzQ4cHggI2ZmZiwgMTMxM3B4IDEyNzNweCAjZmZmLCAyOTVweCAxNjJweCAjZmZmLCAxMjQ2cHggNTgzcHggI2ZmZiwgOTI1cHggMjc5cHggI2ZmZiwgMTUyMXB4IDE2NzdweCAjZmZmLCAxMjlweCAxMDA2cHggI2ZmZiwgMTc0OXB4IDM1NnB4ICNmZmYsIDU5N3B4IDI2M3B4ICNmZmYsIDEyMTFweCAxODQ2cHggI2ZmZiwgNDI0cHggMTY1NXB4ICNmZmYsIDEzOTNweCAzMTRweCAjZmZmLCAxMjg4cHggMTM0MXB4ICNmZmYsIDE3ODRweCA4MDFweCAjZmZmLCA5MzBweCA4MXB4ICNmZmYsIDE0NjlweCAxNzI1cHggI2ZmZiwgNjUycHggNTU2cHggI2ZmZiwgOXB4IDE1NzBweCAjZmZmLCAxMjQ1cHggMzQ3cHggI2ZmZiwgMTc3N3B4IDE3MjJweCAjZmZmLCAxMzE3cHggMzUzcHggI2ZmZiwgNzdweCAxMTU3cHggI2ZmZiwgMTA2MHB4IDE2M3B4ICNmZmYsIDE4MDBweCAxNTE5cHggI2ZmZiwgMjIwcHggMTA4M3B4ICNmZmYsIDExODJweCA3M3B4ICNmZmYsIDc4MXB4IDk2cHggI2ZmZiwgMTE0NXB4IDIwN3B4ICNmZmYsIDE5NTlweCAzMTBweCAjZmZmLCAxMjc2cHggMTQyMXB4ICNmZmYsIDk4NXB4IDE2MDNweCAjZmZmLCA3NTZweCAxMjgxcHggI2ZmZiwgMTg4M3B4IDIxMHB4ICNmZmYsIDkxM3B4IDM5NHB4ICNmZmYsIDE5NDhweCAxMzMycHggI2ZmZiwgNDgxcHggNjJweCAjZmZmLCAxOTQxcHggMTIwMXB4ICNmZmYsIDExMDJweCAxOTgxcHggI2ZmZiwgMTkxOXB4IDI0MnB4ICNmZmYsIDEwNjlweCAxOTUycHggI2ZmZiwgMTEyMnB4IDE5NjJweCAjZmZmLCAxMTJweCAxNDIzcHggI2ZmZiwgMTMyNXB4IDEwMDJweCAjZmZmLCAxNDk4cHggOTc4cHggI2ZmZiwgMTMzNXB4IDEzNDZweCAjZmZmLCA0MzVweCAxOTQ0cHggI2ZmZiwgMTk4NHB4IDE2MTlweCAjZmZmLCAxMzE5cHggNDM1cHggI2ZmZiwgNzc1cHggMTU2M3B4ICNmZmYsIDExMzZweCAxOTYxcHggI2ZmZiwgOTg5cHggMTUxN3B4ICNmZmYsIDE0NjhweCA1OTNweCAjZmZmLCA3MThweCAxMTYwcHggI2ZmZiwgMTc0MnB4IDExODlweCAjZmZmLCAxODQzcHggMTQ0M3B4ICNmZmYsIDE4OTNweCAxNTc3cHggI2ZmZiwgNTAycHggMTEzcHggI2ZmZiwgNTkzcHggMTU2cHggI2ZmZiwgMTE3NXB4IDgyOHB4ICNmZmYsIDE4MTZweCAxMjE5cHggI2ZmZiwgNDYycHggODAwcHggI2ZmZiwgODE0cHggMTU3MnB4ICNmZmYsIDE5OTFweCAxNTMzcHggI2ZmZiwgMTYzNnB4IDgzMnB4ICNmZmYsIDg4M3B4IDE2MjBweCAjZmZmLCAxNTg4cHggMzUzcHggI2ZmZiwgNjU0cHggODA1cHggI2ZmZiwgMTgzM3B4IDc4MXB4ICNmZmYsIDcwNXB4IDE3MDNweCAjZmZmLCAxODMycHggMTU0OXB4ICNmZmYsIDE0NjdweCA5OTJweCAjZmZmLCAxMDI0cHggODhweCAjZmZmLCAxMzAzcHggODcycHggI2ZmZiwgMzQycHggNDc0cHggI2ZmZiwgMTk4MHB4IDExOTFweCAjZmZmLCAxMzEycHggMjU5cHggI2ZmZiwgMTEyMHB4IDI5OHB4ICNmZmYsIDk5NXB4IDM4OHB4ICNmZmYsIDE3NDBweCA4NDZweCAjZmZmLCAzNDFweCA0NTVweCAjZmZmLCAxMjA2cHggMTgzN3B4ICNmZmYsIDE5MzlweCAxMjg3cHggI2ZmZiwgNDVweCAxOTQ1cHggI2ZmZiwgMTYzMHB4IDU0MnB4ICNmZmYsIDcycHggOTM3cHggI2ZmZiwgNDA0cHggNzc0cHggI2ZmZiwgMTMxM3B4IDExNjVweCAjZmZmLCAxMzQ5cHggMTgxMHB4ICNmZmYsIDczNXB4IDc3OHB4ICNmZmYsIDU4MnB4IDE2ODhweCAjZmZmfSN3aGl0ZS1zdGFycy1sZ3t3aWR0aDozcHg7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzo3MjNweCAyODhweCAjZmZmLCAxMTAwcHggMTQ2OXB4ICNmZmYsIDI0cHggNjYxcHggI2ZmZiwgNTY1cHggMTc4N3B4ICNmZmYsIDE5NDlweCA3NDdweCAjZmZmLCAxNDFweCAxMzY4cHggI2ZmZiwgMTU2NnB4IDE4NDlweCAjZmZmLCA0OTJweCA2MzlweCAjZmZmLCA3NzRweCAxNTBweCAjZmZmLCAxNDZweCAxMjg4cHggI2ZmZiwgNjk4cHggMTYxM3B4ICNmZmYsIDMyNXB4IDE4NXB4ICNmZmYsIDEzMjhweCA1NzRweCAjZmZmLCA0MTRweCAxMDE4cHggI2ZmZiwgMTMxMnB4IDg3cHggI2ZmZiwgNDg5cHggMzUzcHggI2ZmZiwgNDQwcHggMTg5MnB4ICNmZmYsIDE4NDZweCAxNjUxcHggI2ZmZiwgMTc4N3B4IDEwMTlweCAjZmZmLCAxMjBweCAxMjMzcHggI2ZmZiwgNTEycHggNzE0cHggI2ZmZiwgMTcwMXB4IDc5MHB4ICNmZmYsIDE1MjRweCAxOTFweCAjZmZmLCA3NjBweCA4MzhweCAjZmZmLCAzODJweCA4MHB4ICNmZmYsIDE2MThweCA1MzJweCAjZmZmLCAxODQ3cHggMTk3NnB4ICNmZmYsIDI5NHB4IDEzMzVweCAjZmZmLCAxMzg2cHggMTM2NHB4ICNmZmYsIDgxNHB4IDQ5N3B4ICNmZmYsIDE4cHggMTEwMHB4ICNmZmYsIDIxcHggMTAwMHB4ICNmZmYsIDY5N3B4IDgzOHB4ICNmZmYsIDE3MTdweCAxOTI1cHggI2ZmZiwgNzQ0cHggMjk5cHggI2ZmZiwgMTQ1N3B4IDEwOXB4ICNmZmYsIDk3MnB4IDM4N3B4ICNmZmYsIDczNnB4IDEzNjNweCAjZmZmLCA4MTRweCAyMjRweCAjZmZmLCAxNDk1cHggODY2cHggI2ZmZiwgMzQzcHggOTM3cHggI2ZmZiwgMTA5NHB4IDY5N3B4ICNmZmYsIDUzOXB4IDgyOXB4ICNmZmYsIDE4MzRweCA1NTJweCAjZmZmLCAxODE1cHggMTAwNHB4ICNmZmYsIDQzOHB4IDEyMzlweCAjZmZmLCA4MHB4IDE0NjNweCAjZmZmLCAxMTAxcHggMzU0cHggI2ZmZiwgMTg1OHB4IDE5NzFweCAjZmZmLCAxNzEzcHggMTQyMXB4ICNmZmYsIDEyMDhweCA1MHB4ICNmZmYsIDcyNXB4IDM5M3B4ICNmZmYsIDQ0NnB4IDEwNzdweCAjZmZmLCAzOTFweCA0NTVweCAjZmZmLCAxNzg2cHggOTM0cHggI2ZmZiwgMTIxN3B4IDIyM3B4ICNmZmYsIDM3M3B4IDE5OTBweCAjZmZmLCAzMDNweCAxMjQxcHggI2ZmZiwgNTI1cHggMTM2NHB4ICNmZmYsIDEzOTNweCAxNjQxcHggI2ZmZiwgMjUwcHggMjkwcHggI2ZmZiwgNzZweCAzNThweCAjZmZmLCAxMDBweCA4MTVweCAjZmZmLCAxNTE4cHggMTQ3cHggI2ZmZiwgNTY4cHggOTk2cHggI2ZmZiwgMTY3NXB4IDE0M3B4ICNmZmYsIDY2NXB4IDE2cHggI2ZmZiwgMTc1MHB4IDEzNzdweCAjZmZmLCA2MTVweCAxMzQ5cHggI2ZmZiwgMTEyMXB4IDI0NXB4ICNmZmYsIDE3NDhweCA1NTdweCAjZmZmLCA5MjZweCAxMDgwcHggI2ZmZiwgMzI2cHggMTY5MXB4ICNmZmYsIDZweCAxMTU0cHggI2ZmZiwgMTM1NnB4IDE3MThweCAjZmZmLCAxMjk0cHggMTYyM3B4ICNmZmYsIDE4MTRweCAxOTM5cHggI2ZmZiwgMjY4cHggOTgzcHggI2ZmZiwgMjY1cHggMTIyM3B4ICNmZmYsIDc4NHB4IDY3NXB4ICNmZmYsIDE0N3B4IDcxN3B4ICNmZmYsIDE4OTRweCAxODgzcHggI2ZmZiwgMjQycHggNDI4cHggI2ZmZiwgMTI5NHB4IDYwNnB4ICNmZmYsIDEzNzZweCA5NjhweCAjZmZmLCA1NzFweCAxMDAwcHggI2ZmZiwgMTU1NHB4IDg5NHB4ICNmZmYsIDc0MXB4IDQzOHB4ICNmZmYsIDEzNTlweCAxOTkzcHggI2ZmZiwgMTc2N3B4IDEzNjZweCAjZmZmLCAxNTIxcHggMjgwcHggI2ZmZiwgODUzcHggNTUzcHggI2ZmZiwgMTQwN3B4IDE3MTdweCAjZmZmLCAxMDAwcHggMTA1NXB4ICNmZmYsIDEwNDdweCA5MTlweCAjZmZmLCAxMjVweCA2MzFweCAjZmZmLCAxMjQ3cHggNDQzcHggI2ZmZiwgMzIxcHggMTY3MHB4ICNmZmYsIDE5MjZweCAxNjEzcHggI2ZmZiwgNjE1cHggMTM1OHB4ICNmZmY7YW5pbWF0aW9uOmFuaW1TdGFyIDI1MHMgbGluZWFyIGluZmluaXRlfSN3aGl0ZS1zdGFycy1sZzphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjAwMHB4O3dpZHRoOjNweDtoZWlnaHQ6M3B4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjcyM3B4IDI4OHB4ICNmZmYsIDExMDBweCAxNDY5cHggI2ZmZiwgMjRweCA2NjFweCAjZmZmLCA1NjVweCAxNzg3cHggI2ZmZiwgMTk0OXB4IDc0N3B4ICNmZmYsIDE0MXB4IDEzNjhweCAjZmZmLCAxNTY2cHggMTg0OXB4ICNmZmYsIDQ5MnB4IDYzOXB4ICNmZmYsIDc3NHB4IDE1MHB4ICNmZmYsIDE0NnB4IDEyODhweCAjZmZmLCA2OThweCAxNjEzcHggI2ZmZiwgMzI1cHggMTg1cHggI2ZmZiwgMTMyOHB4IDU3NHB4ICNmZmYsIDQxNHB4IDEwMThweCAjZmZmLCAxMzEycHggODdweCAjZmZmLCA0ODlweCAzNTNweCAjZmZmLCA0NDBweCAxODkycHggI2ZmZiwgMTg0NnB4IDE2NTFweCAjZmZmLCAxNzg3cHggMTAxOXB4ICNmZmYsIDEyMHB4IDEyMzNweCAjZmZmLCA1MTJweCA3MTRweCAjZmZmLCAxNzAxcHggNzkwcHggI2ZmZiwgMTUyNHB4IDE5MXB4ICNmZmYsIDc2MHB4IDgzOHB4ICNmZmYsIDM4MnB4IDgwcHggI2ZmZiwgMTYxOHB4IDUzMnB4ICNmZmYsIDE4NDdweCAxOTc2cHggI2ZmZiwgMjk0cHggMTMzNXB4ICNmZmYsIDEzODZweCAxMzY0cHggI2ZmZiwgODE0cHggNDk3cHggI2ZmZiwgMThweCAxMTAwcHggI2ZmZiwgMjFweCAxMDAwcHggI2ZmZiwgNjk3cHggODM4cHggI2ZmZiwgMTcxN3B4IDE5MjVweCAjZmZmLCA3NDRweCAyOTlweCAjZmZmLCAxNDU3cHggMTA5cHggI2ZmZiwgOTcycHggMzg3cHggI2ZmZiwgNzM2cHggMTM2M3B4ICNmZmYsIDgxNHB4IDIyNHB4ICNmZmYsIDE0OTVweCA4NjZweCAjZmZmLCAzNDNweCA5MzdweCAjZmZmLCAxMDk0cHggNjk3cHggI2ZmZiwgNTM5cHggODI5cHggI2ZmZiwgMTgzNHB4IDU1MnB4ICNmZmYsIDE4MTVweCAxMDA0cHggI2ZmZiwgNDM4cHggMTIzOXB4ICNmZmYsIDgwcHggMTQ2M3B4ICNmZmYsIDExMDFweCAzNTRweCAjZmZmLCAxODU4cHggMTk3MXB4ICNmZmYsIDE3MTNweCAxNDIxcHggI2ZmZiwgMTIwOHB4IDUwcHggI2ZmZiwgNzI1cHggMzkzcHggI2ZmZiwgNDQ2cHggMTA3N3B4ICNmZmYsIDM5MXB4IDQ1NXB4ICNmZmYsIDE3ODZweCA5MzRweCAjZmZmLCAxMjE3cHggMjIzcHggI2ZmZiwgMzczcHggMTk5MHB4ICNmZmYsIDMwM3B4IDEyNDFweCAjZmZmLCA1MjVweCAxMzY0cHggI2ZmZiwgMTM5M3B4IDE2NDFweCAjZmZmLCAyNTBweCAyOTBweCAjZmZmLCA3NnB4IDM1OHB4ICNmZmYsIDEwMHB4IDgxNXB4ICNmZmYsIDE1MThweCAxNDdweCAjZmZmLCA1NjhweCA5OTZweCAjZmZmLCAxNjc1cHggMTQzcHggI2ZmZiwgNjY1cHggMTZweCAjZmZmLCAxNzUwcHggMTM3N3B4ICNmZmYsIDYxNXB4IDEzNDlweCAjZmZmLCAxMTIxcHggMjQ1cHggI2ZmZiwgMTc0OHB4IDU1N3B4ICNmZmYsIDkyNnB4IDEwODBweCAjZmZmLCAzMjZweCAxNjkxcHggI2ZmZiwgNnB4IDExNTRweCAjZmZmLCAxMzU2cHggMTcxOHB4ICNmZmYsIDEyOTRweCAxNjIzcHggI2ZmZiwgMTgxNHB4IDE5MzlweCAjZmZmLCAyNjhweCA5ODNweCAjZmZmLCAyNjVweCAxMjIzcHggI2ZmZiwgNzg0cHggNjc1cHggI2ZmZiwgMTQ3cHggNzE3cHggI2ZmZiwgMTg5NHB4IDE4ODNweCAjZmZmLCAyNDJweCA0MjhweCAjZmZmLCAxMjk0cHggNjA2cHggI2ZmZiwgMTM3NnB4IDk2OHB4ICNmZmYsIDU3MXB4IDEwMDBweCAjZmZmLCAxNTU0cHggODk0cHggI2ZmZiwgNzQxcHggNDM4cHggI2ZmZiwgMTM1OXB4IDE5OTNweCAjZmZmLCAxNzY3cHggMTM2NnB4ICNmZmYsIDE1MjFweCAyODBweCAjZmZmLCA4NTNweCA1NTNweCAjZmZmLCAxNDA3cHggMTcxN3B4ICNmZmYsIDEwMDBweCAxMDU1cHggI2ZmZiwgMTA0N3B4IDkxOXB4ICNmZmYsIDEyNXB4IDYzMXB4ICNmZmYsIDEyNDdweCA0NDNweCAjZmZmLCAzMjFweCAxNjcwcHggI2ZmZiwgMTkyNnB4IDE2MTNweCAjZmZmLCA2MTVweCAxMzU4cHggI2ZmZn1Aa2V5ZnJhbWVzIGFuaW1TdGFye2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwMHB4KX19"}],"requires":[{"meta":{"name":"chatgpt.min.js","url":"https://cdn.jsdelivr.net/npm/@kudoai/chatgpt.js@3.5.0/dist/chatgpt.min.js#sha256-+C0x4BOFQc38aZB3pvUC2THu+ZSvuCxRphGdtRLjCDg=","ts":1764084296558,"mimetype":"text/javascript"},"source":"LyoqCiAqICDCqSAyMDIz4oCTMjAyNCBLdWRvQUkgJiBjb250cmlidXRvcnMgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLgogKiAgU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vS3Vkb0FJL2NoYXRncHQuanMKICogIFVzZXIgZ3VpZGU6IGh0dHBzOi8vY2hhdGdwdGpzLm9yZy91c2VyZ3VpZGUKICogIExhdGVzdCBtaW5pZmllZCByZWxlYXNlOiBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BrdWRvYWkvY2hhdGdwdC5qcy9jaGF0Z3B0Lm1pbi5qcwogKi8KbG9jYWxTdG9yYWdlLmFsZXJ0UXVldWU9SlNPTi5zdHJpbmdpZnkoW10pLGxvY2FsU3RvcmFnZS5ub3RpZnlQcm9wcz1KU09OLnN0cmluZ2lmeSh7cXVldWU6e3RvcFJpZ2h0OltdLGJvdHRvbVJpZ2h0OltdLGJvdHRvbUxlZnQ6W10sdG9wTGVmdDpbXX19KTtsZXQgY2hhdGdwdD17b3BlbkFJYWNjZXNzVG9rZW46e30sZW5kcG9pbnRzOnthc3NldHM6Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9LdWRvQUkvY2hhdGdwdC5qc0BhOGI3YjJjNDA5MWVjYWRhMzFmZGU4ZWY5YWQ0YTI4OGUwNjYwN2I3IixvcGVuQUk6e3Nlc3Npb246Imh0dHBzOi8vY2hhdGdwdC5jb20vYXBpL2F1dGgvc2Vzc2lvbiIsY2hhdHM6Imh0dHBzOi8vY2hhdGdwdC5jb20vYmFja2VuZC1hcGkvY29udmVyc2F0aW9ucyIsY2hhdDoiaHR0cHM6Ly9jaGF0Z3B0LmNvbS9iYWNrZW5kLWFwaS9jb252ZXJzYXRpb24iLHNoYXJlX2NyZWF0ZToiaHR0cHM6Ly9jaGF0Z3B0LmNvbS9iYWNrZW5kLWFwaS9zaGFyZS9jcmVhdGUiLHNoYXJlOiJodHRwczovL2NoYXRncHQuY29tL2JhY2tlbmQtYXBpL3NoYXJlIixpbnN0cnVjdGlvbnM6Imh0dHBzOi8vY2hhdGdwdC5jb20vYmFja2VuZC1hcGkvdXNlcl9zeXN0ZW1fbWVzc2FnZXMifX0sYWN0QXMocyl7cmV0dXJuIG5ldyBQcm9taXNlKChyLGEpPT57bGV0IG49bmV3IFhNTEh0dHBSZXF1ZXN0O24ub3BlbigiR0VUIiwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0t1ZG9BSS9jaGF0LXByb21wdHMvbWFpbi9kaXN0L3BlcnNvbmFzLm1pbi5qc29uIiwhMCksbi5zZW5kKCksbi5vbmxvYWQ9KCk9PntpZigyMDAhPT1uLnN0YXR1cylyZXR1cm4gYSgi8J+kliBjaGF0Z3B0LmpzID4+IFJlcXVlc3QgZmFpbGVkLiBDYW5ub3QgcmV0cmlldmUgcHJvbXB0cyBkYXRhLiIpO3ZhciBlPUpTT04ucGFyc2Uobi5yZXNwb25zZVRleHQpLnBlcnNvbmFzO2lmKHMpe3ZhciB0PWUuZmluZChlPT5lLnRpdGxlLnRvTG93ZXJDYXNlKCk9PXMudG9Mb3dlckNhc2UoKSk7aWYoIXQpcmV0dXJuIGEoYPCfpJYgY2hhdGdwdC5qcyA+PiBQZXJzb25hICcke3N9JyB3YXMgbm90IGZvdW5kIWApO2NoYXRncHQuc2VuZCh0LnByb21wdCwiY2xpY2siKSxjb25zb2xlLmluZm8oYExvYWRpbmcgJHtzfSBwZXJzb25hLi4uYCksY2hhdGdwdC5pc0lkbGUoKS50aGVuKCgpPT57Y29uc29sZS5pbmZvKCJQZXJzb25hIGFjdGl2YXRlZCEiKX0pfWVsc2V7Y29uc29sZS5sb2coIlxuJWPwn6SWIGNoYXRncHQuanMgcGVyc29uYXNcbiIsImZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmIDsgZm9udC1zaXplOiB4eHgtbGFyZ2UgOyBmb250LXdlaWdodDogYm9sZCIpO2Zvcih2YXIgbyBvZiBlKWNvbnNvbGUubG9nKCIlYyIrby50aXRsZSwiZm9udC1mYW1pbHk6IG1vbm9zcGFjZSA7IGZvbnQtc2l6ZTogbGFyZ2VyIDsiKX1yZXR1cm4gcigpfX0pfSxhY3RpdmF0ZURhcmtNb2RlKCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZXBsYWNlKCJsaWdodCIsImRhcmsiKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuY29sb3JTY2hlbWU9ImRhcmsiLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ0aGVtZSIsImRhcmsiKX0sYWN0aXZhdGVMaWdodE1vZGUoKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlcGxhY2UoImRhcmsiLCJsaWdodCIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jb2xvclNjaGVtZT0ibGlnaHQiLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ0aGVtZSIsImxpZ2h0Iil9LGFsZXJ0KG8scixlLGEsdCl7bGV0IG49Y2hhdGdwdC5pc0RhcmtNb2RlKCk/ImRhcmsiOiJsaWdodCIscz1jaGF0Z3B0LmJyb3dzZXIuaXNNb2JpbGUoKSxpPXtkaXNtaXNzOntjbGljayhlKXtlLnRhcmdldCE9ZS5jdXJyZW50VGFyZ2V0JiYhZS50YXJnZXQuY2xvc2VzdCgnW2NsYXNzKj0iLWNsb3NlLWJ0bl0nKXx8ZigpfSxrZXkoZSl7aWYoL14oPzogfFNwYWNlfEVudGVyfFJldHVybnxFc2MpLy50ZXN0KGUua2V5KSYmWzMyLDEzLDI3XS5pbmNsdWRlcyhlLmtleUNvZGUpKWZvcih2YXIgdCBvZiBtKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTtpZighdHx8Im5vbmUiPT10LnN0eWxlLmRpc3BsYXkpcmV0dXJuO2Uua2V5LnN0YXJ0c1dpdGgoIkVzYyIpfHwyNz09ZS5rZXlDb2RlP2YoKToodD10LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1idXR0b25zIikubGFzdENoaWxkKSYmKHQuY2xpY2soKSxlLnByZXZlbnREZWZhdWx0KCkpfX19LGRyYWc6e21vdXNlZG93bihlKXt2YXIgdDswPT1lLmJ1dHRvbiYmInBvaW50ZXIiIT1nZXRDb21wdXRlZFN0eWxlKGUudGFyZ2V0KS5jdXJzb3ImJihjaGF0Z3B0LmRyYWdnYWJsZUVsZW09ZS5jdXJyZW50VGFyZ2V0LGNoYXRncHQuZHJhZ2dhYmxlRWxlbS5zdHlsZS5jdXJzb3I9ImdyYWJiaW5nIixlLnByZXZlbnREZWZhdWx0KCksWyJtb3VzZW1vdmUiLCJtb3VzZXVwIl0uZm9yRWFjaChlPT5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsaS5kcmFnW2VdKSksdD1jaGF0Z3B0LmRyYWdnYWJsZUVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaS5kcmFnLm9mZnNldFg9ZS5jbGllbnRYLXQubGVmdCsyMSxpLmRyYWcub2Zmc2V0WT1lLmNsaWVudFktdC50b3ArMTIpfSxtb3VzZW1vdmUoZSl7dmFyIHQ7Y2hhdGdwdC5kcmFnZ2FibGVFbGVtJiYodD1lLmNsaWVudFgtaS5kcmFnLm9mZnNldFgsZT1lLmNsaWVudFktaS5kcmFnLm9mZnNldFksT2JqZWN0LmFzc2lnbihjaGF0Z3B0LmRyYWdnYWJsZUVsZW0uc3R5bGUse2xlZnQ6dCsicHgiLHRvcDplKyJweCJ9KSl9LG1vdXNldXAoKXtjaGF0Z3B0LmRyYWdnYWJsZUVsZW0uc3R5bGUuY3Vyc29yPSJpbmhlcml0IixbIm1vdXNlbW92ZSIsIm1vdXNldXAiXS5mb3JFYWNoKGU9PmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxpLmRyYWdbZV0pKSxjaGF0Z3B0LmRyYWdnYWJsZUVsZW09bnVsbH19fSxjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGw9KGMuaWQ9TWF0aC5mbG9vcigxZTYqY2hhdGdwdC5yYW5kb21GbG9hdCgpKStEYXRlLm5vdygpLGMuY2xhc3NMaXN0LmFkZCgiY2hhdGdwdC1tb2RhbCIpLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgyIiksZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7dmFyIHU9MTczNTQ3NTc1Nzg5MTtsZXQgcD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hhdGdwdC1tb2RhbC1zdHlsZSIpLGg9KCghcHx8cGFyc2VJbnQocC5nZXRBdHRyaWJ1dGUoImxhc3QtdXBkYXRlZCIpLDEwKTx1KSYmKHB8fCgocD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5pZD0iY2hhdGdwdC1tb2RhbC1zdHlsZSIscC5zZXRBdHRyaWJ1dGUoImxhc3QtdXBkYXRlZCIsdS50b1N0cmluZygpKSxkb2N1bWVudC5oZWFkLmFwcGVuZChwKSkscC5pbm5lclRleHQ9Ii5uby1tb2JpbGUtdGFwLW91dGxpbmUgeyBvdXRsaW5lOiBub25lIDsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCB9LmNoYXRncHQtbW9kYWwge3BvaW50ZXItZXZlbnRzOiBhdXRvIDtwb3NpdGlvbjogZml4ZWQgOyB0b3A6IDAgOyBsZWZ0OiAwIDsgd2lkdGg6IDEwMCUgOyBoZWlnaHQ6IDEwMCUgO3RyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZSAhaW1wb3J0YW50IDtkaXNwbGF5OiBmbGV4IDsganVzdGlmeS1jb250ZW50OiBjZW50ZXIgOyBhbGlnbi1pdGVtczogY2VudGVyIDsgei1pbmRleDogOTk5OSB9LmNoYXRncHQtbW9kYWwgPiBkaXYge3Bvc2l0aW9uOiBhYnNvbHV0ZSA7b3BhY2l0eTogMCA7IitgYm9yZGVyOiAxcHggc29saWQgJHsiZGFyayI9PW4/IndoaXRlIjoiI2I1YjViNSJ9O2ArYGNvbG9yOiAkeyJkYXJrIj09bj8id2hpdGUiOiJibGFjayJ9O2ArYGJhY2tncm91bmQtY29sb3I6ICR7ImRhcmsiPT1uPyJibGFjayI6IndoaXRlIn07YCsidHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHRyYW5zbGF0ZVkoN3B4KSA7dHJhbnNpdGlvbjogb3BhY2l0eSAwLjY1cyBjdWJpYy1iZXppZXIoLjE2NSwuODQsLjQ0LDEpLHRyYW5zZm9ybSAwLjU1cyBjdWJpYy1iZXppZXIoLjE2NSwuODQsLjQ0LDEpIDttYXgtd2lkdGg6IDc1dncgOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgO3BhZGRpbmc6IDIwcHggOyBtYXJnaW46IDEycHggMjNweCA7IGJvcmRlci1yYWRpdXM6IDE1cHggOyBib3gtc2hhZG93OiAwIDMwcHggNjBweCByZ2JhKDAsIDAsIDAsIC4xMikgOyAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lIDsgLW1vei11c2VyLXNlbGVjdDogbm9uZSA7IC1tcy11c2VyLXNlbGVjdDogbm9uZSA7IHVzZXItc2VsZWN0OiBub25lIDsgfS5jaGF0Z3B0LW1vZGFsIGgyIHsgbWFyZ2luLWJvdHRvbTogOXB4IH0iK2AuY2hhdGdwdC1tb2RhbCBhIHsgY29sb3I6ICR7ImRhcmsiPT1uPyIjMDBjZmZmIjoiIzFlOWViYiJ9fWArIi5jaGF0Z3B0LW1vZGFsIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9LmNoYXRncHQtbW9kYWwuYW5pbWF0ZWQgPiBkaXYgeyB6LWluZGV4OiAxMzQ1NiA7IG9wYWNpdHk6IDAuOTggOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSB9QGtleWZyYW1lcyBhbGVydC16b29tLWZhZGUtb3V0IHswJSB7IG9wYWNpdHk6IDEgfSA1MCUgeyBvcGFjaXR5OiAwLjI1IDsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KSB9MTAwJSB7IG9wYWNpdHk6IDAgOyB0cmFuc2Zvcm06IHNjYWxlKDEuMzUpIH19Lm1vZGFsLWJ1dHRvbnMgeyBkaXNwbGF5OiBmbGV4IDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCA7IG1hcmdpbjogMjBweCAtNXB4IC0zcHggMCA7Iisocz8iZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlIjoiIikrIn0uY2hhdGdwdC1tb2RhbCBidXR0b24geyIrYG1hcmdpbi1sZWZ0OiAke3M/MDoxMH1weCA7IHBhZGRpbmc6ICR7cz8xNTo0fXB4IDE4cHggOyBib3JkZXItcmFkaXVzOiAxNXB4IDtgKyhzPyJtYXJnaW4tdG9wOiA1cHggOyBtYXJnaW4tYm90dG9tOiAzcHggOyI6IiIpK2Bib3JkZXI6IDFweCBzb2xpZCAkeyJkYXJrIj09bj8id2hpdGUiOiJibGFjayJ9fWArIi5wcmltYXJ5LW1vZGFsLWJ0biB7IitgYm9yZGVyOiAxcHggc29saWQgJHsiZGFyayI9PW4/IndoaXRlIjoiYmxhY2sifSA7YCtgYmFja2dyb3VuZDogJHsiZGFyayI9PW4/IndoaXRlIjoiYmxhY2sifSA7YCtgY29sb3I6ICR7ImRhcmsiPT1uPyJibGFjayI6IndoaXRlIn19YCsiLmNoYXRncHQtbW9kYWwgYnV0dG9uOmhvdmVyIHsgY29sb3I6ICMzZDVkNzEgOyBib3JkZXItY29sb3I6ICM2ZDljYjkgO2JhY2tncm91bmQtY29sb3I6ICIrKCJkYXJrIj09bj8iIzAwY2ZmZiI6IiM5Y2RhZmYiKSsiO2JveC1zaGFkb3c6IDJweCAxcHggIisoImRhcmsiPT1uPyI1NHB4ICMwMGNmZmYiOiIzMHB4ICM5Y2RhZmYiKSsifS5tb2RhbC1jbG9zZS1idG4ge2N1cnNvcjogcG9pbnRlciA7IHdpZHRoOiAyOXB4IDsgaGVpZ2h0OiAyOXB4IDsgYm9yZGVyLXJhZGl1czogMTdweCA7ZmxvYXQ6IHJpZ2h0IDsgcG9zaXRpb246IHJlbGF0aXZlIDsgcmlnaHQ6IC02cHggOyB0b3A6IC01cHggfS5tb2RhbC1jbG9zZS1idG4gc3ZnIHsgbWFyZ2luOiAxMHB4IH0iK2AubW9kYWwtY2xvc2UtYnRuOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiR7ImRhcmsiPT1uPyIwMCI6IiJ9fWArIi5jaGF0Z3B0LW1vZGFsIC5jaGVja2JveC1ncm91cCB7IGRpc3BsYXk6IGZsZXggOyBtYXJnaW4tdG9wOiAtMThweCB9LmNoYXRncHQtbW9kYWwgLmNoZWNrYm94LWdyb3VwIGxhYmVsIHtmb250LXNpemU6IC43cmVtIDsgbWFyZ2luOiAtLjA0cmVtIDAgMHB4IC4zcmVtIDsiK2Bjb2xvcjogJHsiZGFyayI9PW4/IiNlMWUxZTEiOiIjMWUxZTFlIn19YCsiLmNoYXRncHQtbW9kYWwgaW5wdXRbdHlwZT1jaGVja2JveF0geyB0cmFuc2Zvcm06IHNjYWxlKDAuNykgOyIrYGJvcmRlcjogMXB4IHNvbGlkICR7ImRhcmsiPT1uPyJ3aGl0ZSI6ImJsYWNrIn19YCsiLmNoYXRncHQtbW9kYWwgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB7IitgYm9yZGVyOiAxcHggc29saWQgJHsiZGFyayI9PW4/IndoaXRlIjoiYmxhY2sifSA7YCsiYmFja2dyb3VuZC1jb2xvcjogYmxhY2sgOyBwb3NpdGlvbjogaW5oZXJpdCB9LmNoYXRncHQtbW9kYWwgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgeyBvdXRsaW5lOiBub25lIDsgYm94LXNoYWRvdzogbm9uZSB9IiksZC5pbm5lclRleHQ9b3x8IiIsZy5pbm5lclRleHQ9cnx8IiIsY2hhdGdwdC5yZW5kZXJIVE1MKGcpLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTtoLmNsYXNzTGlzdC5hZGQoIm1vZGFsLWJ1dHRvbnMiLCJuby1tb2JpbGUtdGFwLW91dGxpbmUiKSxlJiYoZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdKS5mb3JFYWNoKGU9Pnt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTt0LnRleHRDb250ZW50PWUubmFtZS5yZXBsYWNlKC9bXy1dXHcvZyxlPT5lLnNsaWNlKDEpLnRvVXBwZXJDYXNlKCkpLnJlcGxhY2UoLyhbQS1aXSkvZywiICQxIikucmVwbGFjZSgvXlx3LyxlPT5lLnRvVXBwZXJDYXNlKCkpLHQub25jbGljaz0oKT0+e2YoKSxlKCl9LGguaW5zZXJ0QmVmb3JlKHQsaC5maXJzdENoaWxkKX0pO3U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdS50ZXh0Q29udGVudD1lPyJEaXNtaXNzIjoiT0siLGguaW5zZXJ0QmVmb3JlKHUsaC5maXJzdENoaWxkKSxoLmxhc3RDaGlsZC5jbGFzc0xpc3QuYWRkKCJwcmltYXJ5LW1vZGFsLWJ0biIpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoYSl7by5jbGFzc0xpc3QuYWRkKCJjaGVja2JveC1ncm91cCIpO2xldCBlPWEsdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3QudHlwZT0iY2hlY2tib3giLHQub25jaGFuZ2U9ZTtyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7ci5vbmNsaWNrPSgpPT57dC5jaGVja2VkPSF0LmNoZWNrZWQsZSgpfSxyLnRleHRDb250ZW50PWUubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLm5hbWUuc2xpY2UoMSkucmVwbGFjZSgvKFtBLVpdKS9nLChlLHQpPT4iICIrdC50b0xvd2VyQ2FzZSgpKS5yZXBsYWNlKC9cYihcdyspbnRcYi9naSwiJDFuJ3QiKS50cmltKCksby5hcHBlbmQodCksby5hcHBlbmQocil9ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlLnRpdGxlPSJDbG9zZSIsZS5jbGFzc0xpc3QuYWRkKCJtb2RhbC1jbG9zZS1idG4iLCJuby1tb2JpbGUtdGFwLW91dGxpbmUiKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKSxhLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwiMTBweCIpLGEuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwiMCAwIDE0IDE0IiksYS5zZXRBdHRyaWJ1dGUoImZpbGwiLCJub25lIikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpO3Iuc2V0QXR0cmlidXRlKCJmaWxsLXJ1bGUiLCJldmVub2RkIiksci5zZXRBdHRyaWJ1dGUoImNsaXAtcnVsZSIsImV2ZW5vZGQiKSxyLnNldEF0dHJpYnV0ZSgiZmlsbCIsY2hhdGdwdC5pc0RhcmtNb2RlKCk/IndoaXRlIjoiYmxhY2siKSxyLnNldEF0dHJpYnV0ZSgiZCIsIk0xMy43MDcxIDEuNzA3MTFDMTQuMDk3NiAxLjMxNjU4IDE0LjA5NzYgMC42ODM0MTcgMTMuNzA3MSAwLjI5Mjg5M0MxMy4zMTY2IC0wLjA5NzYzMTIgMTIuNjgzNCAtMC4wOTc2MzEyIDEyLjI5MjkgMC4yOTI4OTNMNyA1LjU4NTc5TDEuNzA3MTEgMC4yOTI4OTNDMS4zMTY1OCAtMC4wOTc2MzEyIDAuNjgzNDE3IC0wLjA5NzYzMTIgMC4yOTI4OTMgMC4yOTI4OTNDLTAuMDk3NjMxMiAwLjY4MzQxNyAtMC4wOTc2MzEyIDEuMzE2NTggMC4yOTI4OTMgMS43MDcxMUw1LjU4NTc5IDdMMC4yOTI4OTMgMTIuMjkyOUMtMC4wOTc2MzEyIDEyLjY4MzQgLTAuMDk3NjMxMiAxMy4zMTY2IDAuMjkyODkzIDEzLjcwNzFDMC42ODM0MTcgMTQuMDk3NiAxLjMxNjU4IDE0LjA5NzYgMS43MDcxMSAxMy43MDcxTDcgOC40MTQyMUwxMi4yOTI5IDEzLjcwNzFDMTIuNjgzNCAxNC4wOTc2IDEzLjMxNjYgMTQuMDk3NiAxMy43MDcxIDEzLjcwNzFDMTQuMDk3NiAxMy4zMTY2IDE0LjA5NzYgMTIuNjgzNCAxMy43MDcxIDEyLjI5MjlMOC40MTQyMSA3TDEzLjcwNzEgMS43MDcxMVoiKSxhLmFwcGVuZChyKSxlLmFwcGVuZChhKSxbZSxkLGcsaCxvXS5mb3JFYWNoKGU9PntsLmFwcGVuZChlKX0pLGwuc3R5bGUud2lkdGg9YCR7dHx8NDU4fXB4YCxjLmFwcGVuZChsKSxkb2N1bWVudC5ib2R5LmFwcGVuZChjKTtsZXQgbT1KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5hbGVydFF1ZXVlKSxmPShtLnB1c2goYy5pZCksbG9jYWxTdG9yYWdlLmFsZXJ0UXVldWU9SlNPTi5zdHJpbmdpZnkobSksYy5zdHlsZS5kaXNwbGF5PSJub25lIiwxPT09bS5sZW5ndGgmJihjLnN0eWxlLmRpc3BsYXk9IiIsc2V0VGltZW91dCgoKT0+e2wucGFyZW50Tm9kZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9YHJnYmEoNjcsIDcwLCA3MiwgJHsiZGFyayI9PW4/LjYyOi4zM30pYCxsLnBhcmVudE5vZGUuY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZWQiKX0sMTAwKSksW2MsZSxhLHVdLmZvckVhY2goZT0+ZS5vbmNsaWNrPWkuZGlzbWlzcy5jbGljayksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaS5kaXNtaXNzLmtleSksbC5vbm1vdXNlZG93bj1pLmRyYWcubW91c2Vkb3duLCgpPT57Yy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9InRyYW5zcGFyZW50IixsLnN0eWxlLmFuaW1hdGlvbj0iYWxlcnQtem9vbS1mYWRlLW91dCAwLjEzNXMgZWFzZS1vdXQiLHNldFRpbWVvdXQoKCk9PntpZihjLnJlbW92ZSgpLChtPUpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmFsZXJ0UXVldWUpKS5zaGlmdCgpLGxvY2FsU3RvcmFnZS5hbGVydFF1ZXVlPUpTT04uc3RyaW5naWZ5KG0pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGkuZGlzbWlzcy5rZXkpLDA8bS5sZW5ndGgpe2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1bMF0pO3NldFRpbWVvdXQoKCk9PntlLnN0eWxlLmRpc3BsYXk9IiIsc2V0VGltZW91dCgoKT0+e2UuY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZWQiKX0sMTAwKX0sNTAwKX19LDE1NSl9KTtyZXR1cm4gYy5pZH0sYXN5bmMgYXNrQW5kR2V0UmVwbHkoZSl7cmV0dXJuIGNoYXRncHQuc2VuZChlKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKX0sYXV0b1JlZnJlc2g6e2FjdGl2YXRlKGUpe2lmKHRoaXMuaXNBY3RpdmUpY29uc29sZS5sb2coIuKGuyBDaGF0R1BUID4+IFsiK2NoYXRncHQuYXV0b1JlZnJlc2gubm93VGltZVN0YW1wKCkrIl0gQXV0byByZWZyZXNoIGFscmVhZHkgYWN0aXZlISIpO2Vsc2V7bGV0IG89dGhpcyxyPSh0aGlzLnRvZ2dsZS5yZWZyZXNoRnJhbWUoKSx0PT57dmFyIGU9TWF0aC5tYXgoMixNYXRoLmZsb29yKDIxKmNoYXRncHQucmFuZG9tRmxvYXQoKS0xMCkpO28uaXNBY3RpdmU9c2V0VGltZW91dCgoKT0+e3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJfc3NnTWFuaWZlc3QuanMiXScpO2UmJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVmcmVzaC1mcmFtZSIpLnNyYz1lLnNyYysiPyIrRGF0ZS5ub3coKSxjb25zb2xlLmxvZygi4oa7IENoYXRHUFQgPj4gWyIrby5ub3dUaW1lU3RhbXAoKSsiXSBDaGF0R1BUIHNlc3Npb24gcmVmcmVzaGVkIikpLHIodCl9LDFlMyoodCtlKSl9KTtyKGU/cGFyc2VJbnQoZSwxMCk6MzApLGNvbnNvbGUubG9nKCLihrsgQ2hhdEdQVCA+PiBbIitjaGF0Z3B0LmF1dG9SZWZyZXNoLm5vd1RpbWVTdGFtcCgpKyJdIEF1dG8gcmVmcmVzaCBhY3RpdmF0ZWQiKSxuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCJDaHJvbWUiKSYmdm9pZCAwIT09ZG9jdW1lbnQuaGlkZGVuJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLnRvZ2dsZS5iZWFjb25zKX19LGRlYWN0aXZhdGUoKXt0aGlzLmlzQWN0aXZlPyh0aGlzLnRvZ2dsZS5yZWZyZXNoRnJhbWUoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLnRvZ2dsZS5iZWFjb25zKSxjbGVhclRpbWVvdXQodGhpcy5pc0FjdGl2ZSksdGhpcy5pc0FjdGl2ZT1udWxsLGNvbnNvbGUubG9nKCLihrsgQ2hhdEdQVCA+PiBbIitjaGF0Z3B0LmF1dG9SZWZyZXNoLm5vd1RpbWVTdGFtcCgpKyJdIEF1dG8gcmVmcmVzaCBkZS1hY3RpdmF0ZWQiKSk6Y29uc29sZS5sb2coIuKGuyBDaGF0R1BUID4+IFsiK2NoYXRncHQuYXV0b1JlZnJlc2gubm93VGltZVN0YW1wKCkrIl0gQXV0byByZWZyZXNoIGFscmVhZHkgaW5hY3RpdmUhIil9LG5vd1RpbWVTdGFtcCgpe3ZhciBlPW5ldyBEYXRlLHQ9ZS5nZXRIb3VycygpJTEyfHwxMjtsZXQgbz1lLmdldE1pbnV0ZXMoKSxyPWUuZ2V0U2Vjb25kcygpO288MTAmJihvPSIwIitvKSxyPDEwJiYocj0iMCIrcik7ZT1lLmdldEhvdXJzKCk8MTI/IkFNIjoiUE0iO3JldHVybiB0KyI6IitvKyI6IityKyIgIitlfSx0b2dnbGU6e2JlYWNvbnMoKXtjaGF0Z3B0LmF1dG9SZWZyZXNoLmJlYWNvbklEPyhjbGVhckludGVydmFsKGNoYXRncHQuYXV0b1JlZnJlc2guYmVhY29uSUQpLGNoYXRncHQuYXV0b1JlZnJlc2guYmVhY29uSUQ9bnVsbCxjb25zb2xlLmxvZygi4oa7IENoYXRHUFQgPj4gWyIrY2hhdGdwdC5hdXRvUmVmcmVzaC5ub3dUaW1lU3RhbXAoKSsiXSBCZWFjb25zIGRlLWFjdGl2YXRlZCIpKTooY2hhdGdwdC5hdXRvUmVmcmVzaC5iZWFjb25JRD1zZXRJbnRlcnZhbCgoKT0+e25hdmlnYXRvci5zZW5kQmVhY29uKCJodHRwczovL2h0dHBiaW4ub3JnL3Bvc3QiLG5ldyBVaW50OEFycmF5KSxjb25zb2xlLmxvZygi4oa7IENoYXRHUFQgPj4gWyIrY2hhdGdwdC5hdXRvUmVmcmVzaC5ub3dUaW1lU3RhbXAoKSsiXSBCZWFjb24gc2VudCIpfSw5ZTQpLGNvbnNvbGUubG9nKCLihrsgQ2hhdEdQVCA+PiBbIitjaGF0Z3B0LmF1dG9SZWZyZXNoLm5vd1RpbWVTdGFtcCgpKyJdIEJlYWNvbnMgYWN0aXZhdGVkIikpfSxyZWZyZXNoRnJhbWUoKXtsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVmcmVzaC1mcmFtZSIpO2U/ZS5yZW1vdmUoKTooZT1PYmplY3QuYXNzaWduKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLHtpZDoicmVmcmVzaC1mcmFtZSIsc3R5bGU6ImRpc3BsYXk6IG5vbmUifSksZG9jdW1lbnQuaGVhZC5wcmVwZW5kKGUpKX19fSxicm93c2VyOntpc0xpZ2h0TW9kZSgpe3JldHVybiB3aW5kb3cubWF0Y2hNZWRpYT8uKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpPy5tYXRjaGVzfSxpc0RhcmtNb2RlKCl7cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhPy4oIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKT8ubWF0Y2hlc30saXNDaHJvbWl1bSgpe3JldHVybiEhSlNPTi5zdHJpbmdpZnkobmF2aWdhdG9yLnVzZXJBZ2VudERhdGE/LmJyYW5kcyk/LmluY2x1ZGVzKCJDaHJvbWl1bSIpfSxpc0Nocm9tZSgpe3JldHVybiEhSlNPTi5zdHJpbmdpZnkobmF2aWdhdG9yLnVzZXJBZ2VudERhdGE/LmJyYW5kcyk/LmluY2x1ZGVzKCJDaHJvbWUiKX0saXNFZGdlKCl7cmV0dXJuISFKU09OLnN0cmluZ2lmeShuYXZpZ2F0b3IudXNlckFnZW50RGF0YT8uYnJhbmRzKT8uaW5jbHVkZXMoIkVkZ2UiKX0saXNCcmF2ZSgpe3JldHVybiEhSlNPTi5zdHJpbmdpZnkobmF2aWdhdG9yLnVzZXJBZ2VudERhdGE/LmJyYW5kcyk/LmluY2x1ZGVzKCJCcmF2ZSIpfSxpc0ZpcmVmb3goKXtyZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRmlyZWZveCIpfSxpc0Z1bGxTY3JlZW4oKXt2YXIgZT1uYXZpZ2F0b3IudXNlckFnZW50O3JldHVybiBlLmluY2x1ZGVzKCJDaHJvbWUiKT93aW5kb3cubWF0Y2hNZWRpYSgiKGRpc3BsYXktbW9kZTogZnVsbHNjcmVlbikiKS5tYXRjaGVzOmUuaW5jbHVkZXMoIkZpcmVmb3giKT93aW5kb3cuZnVsbFNjcmVlbjovTVNJRXxydjovLnRlc3QoZSk/ZG9jdW1lbnQubXNGdWxsc2NyZWVuRWxlbWVudDpkb2N1bWVudC53ZWJraXRJc0Z1bGxTY3JlZW59LGlzTW9iaWxlKCl7cmV0dXJuL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfX0sYXN5bmMgY2xlYXJDaGF0cygpe3JldHVybiBuZXcgUHJvbWlzZSgobyxyKT0+e2NoYXRncHQuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKGU9PntsZXQgdD1uZXcgWE1MSHR0cFJlcXVlc3Q7dC5vcGVuKCJQQVRDSCIsY2hhdGdwdC5lbmRwb2ludHMub3BlbkFJLmNoYXRzLCEwKSx0LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL2pzb24iKSx0LnNldFJlcXVlc3RIZWFkZXIoIkF1dGhvcml6YXRpb24iLCJCZWFyZXIgIitlKSx0Lm9ubG9hZD0oKT0+e2lmKDIwMCE9PXQuc3RhdHVzKXJldHVybiByKCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCBjbGVhciBjaGF0cy4iKTtjb25zb2xlLmluZm8oIkNoYXRzIHN1Y2Nlc3NmdWxseSBjbGVhcmVkIiksbygpfSx0LnNlbmQoSlNPTi5zdHJpbmdpZnkoe2lzX3Zpc2libGU6ITF9KSl9KS5jYXRjaChlPT5yKG5ldyBFcnJvcihlLm1lc3NhZ2UpKSl9KX0sY29kZTp7YXN5bmMgZXhlY3V0ZShlKXtyZXR1cm4gZT8ic3RyaW5nIiE9dHlwZW9mIGU/Y29uc29sZS5lcnJvcigiQ29kZSBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nISIpOihjaGF0Z3B0LnNlbmQoIkRpc3BsYXkgdGhlIG91dHB1dCBhcyBpZiB5b3Ugd2VyZSB0ZXJtaW5hbDpcblxuIitlKSxjb25zb2xlLmluZm8oIkV4ZWN1dGluZyBjb2RlLi4uIiksYXdhaXQgY2hhdGdwdC5pc0lkbGUoKSxjaGF0Z3B0LmNvZGUuZXh0cmFjdChhd2FpdCBjaGF0Z3B0LmdldENoYXREYXRhKCJhY3RpdmUiLCJtc2ciLCJjaGF0Z3B0IiwibGF0ZXN0IikpKTpjb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG5vdCBzdXBwbGllZC4gUGFzcyBzb21lIGNvZGUhIil9LGV4dHJhY3QoZSl7dmFyIHQ9ZS5tYXRjaCgvKD88PWBgYC4qXG4pW1xzXFNdKj8oPz1gYGApL2cpO3JldHVybiB0P3RbdC5sZW5ndGgtMV06ZX0sYXN5bmMgaXNJZGxlKHQ9bnVsbCl7bGV0IGE9e2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSxuPXttc2dEaXY6ImRpdltkYXRhLW1lc3NhZ2UtYXV0aG9yLXJvbGVdIixyZXBseURpdjoiZGl2W2RhdGEtbWVzc2FnZS1hdXRob3Itcm9sZT1hc3Npc3RhbnRdIn07dmFyIGU9dD9uZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KCgpPT5lKCExKSx0KSk6bnVsbCxvPShhc3luYygpPT57YXdhaXQgbmV3IFByb21pc2Uobz0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iobi5tc2dEaXYpP28oKTpuZXcgTXV0YXRpb25PYnNlcnZlcigoZSx0KT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iobi5tc2dEaXYpJiYodC5kaXNjb25uZWN0KCksbygpKX0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSxhKX0pLGF3YWl0IG5ldyBQcm9taXNlKG89PntuZXcgTXV0YXRpb25PYnNlcnZlcigoZSx0KT0+e2NoYXRncHQuZ2V0U3RvcEJ0bigpJiYodC5kaXNjb25uZWN0KCksbygpKX0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX0pO2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwobi5yZXBseURpdikscj1lW2UubGVuZ3RoLTFdO3JldHVybiBhd2FpdCBuZXcgUHJvbWlzZShvPT57bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9PntyPy5xdWVyeVNlbGVjdG9yKCJwcmUiKSYmKHQuZGlzY29ubmVjdCgpLG8oKSl9KS5vYnNlcnZlKGRvY3VtZW50LmJvZHksYSl9KSxuZXcgUHJvbWlzZShvPT57bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9Pnshcj8ucXVlcnlTZWxlY3RvcigicHJlIik/Lm5leHRFbGVtZW50U2libGluZyYmY2hhdGdwdC5nZXRTdG9wQnRuKCl8fCh0LmRpc2Nvbm5lY3QoKSxvKCEwKSl9KS5vYnNlcnZlKGRvY3VtZW50LmJvZHksYSl9KX0pKCk7cmV0dXJuIGU/UHJvbWlzZS5yYWNlKFtvLGVdKTpvfSxhc3luYyBtaW5pZnkoZSl7cmV0dXJuIGU/InN0cmluZyIhPXR5cGVvZiBlP2NvbnNvbGUuZXJyb3IoIkNvZGUgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZyEiKTooY2hhdGdwdC5zZW5kKCJNaW5pZnkgdGhlIGZvbGxvd2luZyBjb2RlOlxuXG4iK2UpLGNvbnNvbGUuaW5mbygiTWluaWZ5aW5nIGNvZGUuLi4iKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuY29kZS5leHRyYWN0KGF3YWl0IGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKSkpOmNvbnNvbGUuZXJyb3IoIkNvZGUgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgY29kZSEiKX0sYXN5bmMgb2JmdXNjYXRlKGUpe3JldHVybiBlPyJzdHJpbmciIT10eXBlb2YgZT9jb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmchIik6KGNoYXRncHQuc2VuZCgiT2JmdXNjYXRlIHRoZSBmb2xsb3dpbmcgY29kZTpcblxuIitlKSxjb25zb2xlLmluZm8oIk9iZnVzY2F0aW5nIGNvZGUuLi4iKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuY29kZS5leHRyYWN0KGF3YWl0IGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKSkpOmNvbnNvbGUuZXJyb3IoIkNvZGUgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgY29kZSEiKX0sYXN5bmMgcmVmYWN0b3IoZSx0KXtpZighZSlyZXR1cm4gY29uc29sZS5lcnJvcigiQ29kZSAoMXN0KSBhcmd1bWVudCBub3Qgc3VwcGxpZWQuIFBhc3Mgc29tZSBjb2RlISIpO2ZvcihsZXQgZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspaWYoInN0cmluZyIhPXR5cGVvZiBhcmd1bWVudHNbZV0pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEFyZ3VtZW50ICR7ZSsxfSBtdXN0IGJlIGEgc3RyaW5nLmApO3JldHVybiBjaGF0Z3B0LnNlbmQoIlJlZmFjdG9yIHRoZSBmb2xsb3dpbmcgY29kZSBmb3IgIisodHx8ImJyZXZpdHkiKSsiOlxuXG4iK2UpLGNvbnNvbGUuaW5mbygiUmVmYWN0b3JpbmcgY29kZS4uLiIpLGF3YWl0IGNoYXRncHQuaXNJZGxlKCksY2hhdGdwdC5jb2RlLmV4dHJhY3QoYXdhaXQgY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpKX0sYXN5bmMgcmV2aWV3KGUpe3JldHVybiBlPyJzdHJpbmciIT10eXBlb2YgZT9jb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmchIik6KGNoYXRncHQuc2VuZCgiUmV2aWV3IHRoZSBmb2xsb3dpbmcgY29kZSBmb3IgbWU6XG5cbiIrZSksY29uc29sZS5pbmZvKCJSZXZpZXdpbmcgY29kZS4uLiIpLGF3YWl0IGNoYXRncHQuaXNJZGxlKCksY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpKTpjb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG5vdCBzdXBwbGllZC4gUGFzcyBzb21lIGNvZGUhIil9LGFzeW5jIHVubWluaWZ5KGUpe3JldHVybiBlPyJzdHJpbmciIT10eXBlb2YgZT9jb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmchIik6KGNoYXRncHQuc2VuZCgiVW5taW5pZnkgdGhlIGZvbGxvd2luZyBjb2RlLjpcblxuIitlKSxjb25zb2xlLmluZm8oIlVubWluaWZ5aW5nIGNvZGUuLi4iKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuY29kZS5leHRyYWN0KGF3YWl0IGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKSkpOmNvbnNvbGUuZXJyb3IoIkNvZGUgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgY29kZSEiKX0sYXN5bmMgd3JpdGUoZSx0KXtpZighZSlyZXR1cm4gY29uc29sZS5lcnJvcigiUHJvbXB0ICgxc3QpIGFyZ3VtZW50IG5vdCBzdXBwbGllZC4gUGFzcyBhIHByb21wdCEiKTtpZighdClyZXR1cm4gY29uc29sZS5lcnJvcigib3V0cHV0TGFuZyAoMm5kKSBhcmd1bWVudCBub3Qgc3VwcGxpZWQuIFBhc3MgYSBsYW5ndWFnZSEiKTtmb3IobGV0IGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWlmKCJzdHJpbmciIT10eXBlb2YgYXJndW1lbnRzW2VdKXJldHVybiBjb25zb2xlLmVycm9yKGBBcmd1bWVudCAke2UrMX0gbXVzdCBiZSBhIHN0cmluZy5gKTtyZXR1cm4gY2hhdGdwdC5zZW5kKGUrIlxuXG5Xcml0ZSB0aGlzIGFzIGNvZGUgaW4gIit0KSxjb25zb2xlLmluZm8oIldyaXRpbmcgY29kZS4uLiIpLGF3YWl0IGNoYXRncHQuaXNJZGxlKCksY2hhdGdwdC5jb2RlLmV4dHJhY3QoYXdhaXQgY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpKX19LGNvbnRpbnVlKCl7Y2hhdGdwdC5yZXNwb25zZS5jb250aW51ZSgpfSxhc3luYyBkZXRlY3RMYW5ndWFnZShlKXtyZXR1cm4gZT8ic3RyaW5nIiE9dHlwZW9mIGU/Y29uc29sZS5lcnJvcigiVGV4dCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nISIpOihjaGF0Z3B0LnNlbmQoIkRldGVjdCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGZvbGxvd2luZyB0ZXh0OlxuXG4iK2UrIlxuXG5Pbmx5IHJlc3BvbmQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UiKSxjb25zb2xlLmluZm8oIlJldmlld2luZyB0ZXh0Li4uIiksYXdhaXQgY2hhdGdwdC5pc0lkbGUoKSxjaGF0Z3B0LmdldENoYXREYXRhKCJhY3RpdmUiLCJtc2ciLCJjaGF0Z3B0IiwibGF0ZXN0IikpOmNvbnNvbGUuZXJyb3IoIlRleHQgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgdGV4dCEiKX0sZXhlY3V0ZUNvZGUoKXtjaGF0Z3B0LmNvZGUuZXhlY3V0ZSgpfSxhc3luYyBleHBvcnRDaGF0KGUsdCl7ZT1lP051bWJlci5pc0ludGVnZXIoZSl8fC9eXGQrJC8udGVzdChlKT9wYXJzZUludChlLDEwKTplOiJhY3RpdmUiLHQ9dC50b0xvd2VyQ2FzZSgpfHwiaHRtbCIsY29uc29sZS5pbmZvKCJHZW5lcmF0aW5nIHRyYW5zY3JpcHQuLi4iKTtsZXQgYT0iIixvO2lmKC90ZT94dC8udGVzdCh0KSl7dmFyIHI9bmV3IERhdGUsbj1yLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxzPShyLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksaT1yLmdldEZ1bGxZZWFyKCksYz1yLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIikscj1yLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKTtpZihvPWBDaGF0R1BUXyR7bn0tJHtzfS0ke2l9XyR7Y30tJHtyfS50eHRgLCJhY3RpdmUiPT1lJiYvXC9cd3s4fS1cd3s0fS1cd3s0fS1cd3s0fS1cd3sxMn0kLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSl7bj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJtYWluID4gZGl2ID4gZGl2ID4gZGl2ID4gZGl2ID4gZGl2ID4gZGl2W2NsYXNzKj1ncm91cF0iKTtpZigwPT09bi5sZW5ndGgpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIkNoYXQgaXMgZW1wdHkhIik7bGV0IG89W10scj0hMDtuLmZvckVhY2goZT0+e3ZhciB0PXI/IlVTRVIiOiJDSEFUR1BUIixlPShyPSFyLEFycmF5LmZyb20oZS5jaGlsZE5vZGVzKS5tYXAoZT0+ZS5pbm5lclRleHQpLmpvaW4oIlxuXG4iKS5yZXBsYWNlKCJDb3B5IGNvZGUiLCIiKSk7by5wdXNoKHQrIjogIitlKX0pLGE9by5qb2luKCJcblxuIil9ZWxzZSBmb3IodmFyIGwgb2YgYXdhaXQgY2hhdGdwdC5nZXRDaGF0RGF0YShlLCJtc2ciLCJib3RoIiwiYWxsIikpYT0oYSs9YFVTRVI6ICR7bC51c2VyfQoKYCkrYENIQVRHUFQ6ICR7bC5jaGF0Z3B0fQoKYH1lbHNle3M9YXdhaXQoYXdhaXQgZmV0Y2goYXdhaXQgY2hhdGdwdC5zaGFyZUNoYXQoZSkpKS50ZXh0KCksaT0obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKHMsInRleHQvaHRtbCIpO289YCR7aS5xdWVyeVNlbGVjdG9yKCJ0aXRsZSIpLnRleHRDb250ZW50fHwiQ2hhdEdQVCBjb252ZXJzYXRpb24ifS5odG1sYCxpLnF1ZXJ5U2VsZWN0b3JBbGwoImxpbmtbcmVsPXN0eWxlc2hlZXRdIikuZm9yRWFjaChlPT57dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKTt0Py5zdGFydHNXaXRoKCIvIikmJmUuc2V0QXR0cmlidXRlKCJocmVmIiwiaHR0cHM6Ly9jaGF0Lm9wZW5haS5jb20iK3QpfSksYT0obmV3IFhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKGkpfWlmKGNvbnNvbGUuaW5mbyhgRXhwb3J0aW5nIHRyYW5zY3JpcHQgYXMgJHt0LnRvVXBwZXJDYXNlKCl9Li4uYCksInBkZiI9PXQpe2E9YS5yZXBsYWNlKC88c3ZnLio/PFwvc3ZnPi9nLGU9PmA8aW1nIHNyYz0iJHsiZGF0YTppbWFnZS9zdmcreG1sLCIrZW5jb2RlVVJJQ29tcG9uZW50KGUpfSI+YCk7bGV0IGU9d2luZG93Lm9wZW4oIiIsIiIsInRvb2xiYXI9MCwgbG9jYXRpb249MCwgbWVudWJhcj0wLCBoZWlnaHQ9NjAwLCB3aWR0aD04MDAiKTtlLmRvY3VtZW50LndyaXRlKGEpLHNldFRpbWVvdXQoKCk9PntlLnByaW50KHt0b1BERjohMH0pfSwxMDApfWVsc2V7Im1kIj09dCYmKGM9LzwuKjxoMSgufFxuKSo/aHJlZj0iLio/Y29udGludWVbXiJdKiIuKj9cL2E+Lio/PFteL10vLmV4ZWMoYSlbMV0sYT1jfHxhLG89by5yZXBsYWNlKCIuaHRtbCIsIi5tZCIpKTtyPW5ldyBCbG9iKFthXSx7dHlwZToidGV4dC8iKygiaHRtbCI9PXQ/Imh0bWwiOiJtZCI9PXQ/Im1hcmtkb3duIjoicGxhaW4iKX0pLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGU9VVJMLmNyZWF0ZU9iamVjdFVSTChyKTtuLmhyZWY9ZSxuLmRvd25sb2FkPW8sZG9jdW1lbnQuYm9keS5hcHBlbmQobiksbi5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobiksVVJMLnJldm9rZU9iamVjdFVSTChlKX19LGV4dHJhY3RDb2RlKCl7Y2hhdGdwdC5jb2RlLmV4dHJhY3QoKX0sZm9jdXNDaGF0YmFyKCl7Y2hhdGdwdC5nZXRDaGF0Qm94KCk/LmZvY3VzKCl9LGZvb3Rlcjp7Z2V0KCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5taW4taC00Iil9LGhpZGUoKXt2YXIgZT1jaGF0Z3B0LmZvb3Rlci5nZXQoKTtyZXR1cm4gZT8iaGlkZGVuIj09ZS5zdHlsZS52aXNpYmlsaXR5P2NvbnNvbGUuaW5mbygiRm9vdGVyIGFscmVhZHkgaGlkZGVuISIpOnZvaWQoZS5zdHlsZS5kaXNwbGF5PSJub25lIik6Y29uc29sZS5lcnJvcigiRm9vdGVyIGVsZW1lbnQgbm90IGZvdW5kISIpfSxzaG93KCl7dmFyIGU9Y2hhdGdwdC5mb290ZXIuZ2V0KCk7cmV0dXJuIGU/ImhpZGRlbiIhPWUuc3R5bGUudmlzaWJpbGl0eT9jb25zb2xlLmluZm8oIkZvb3RlciBhbHJlYWR5IHNob3duISIpOnZvaWQoZS5zdHlsZS5kaXNwbGF5PSJpbmhlcml0Iik6Y29uc29sZS5lcnJvcigiRm9vdGVyIGVsZW1lbnQgbm90IGZvdW5kISIpfX0sZ2VuZXJhdGVSYW5kb21JUCgpe3ZhciBlPUFycmF5LmZyb20oe2xlbmd0aDo0fSwoKT0+TWF0aC5mbG9vcigyNTYqY2hhdGdwdC5yYW5kb21GbG9hdCgpKSkuam9pbigiLiIpO3JldHVybiBjb25zb2xlLmluZm8oIklQIGdlbmVyYXRlZDogIitlKSxlfSxnZXQoZSx0PSIiKXtpZigic3RyaW5nIiE9dHlwZW9mIGV8fCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGFyZ3VtZW50cy4gQm90aCBhcmd1bWVudHMgbXVzdCBiZSBzdHJpbmdzLiIpO2lmKCFjanNUYXJnZXRUeXBlcy5pbmNsdWRlcyhlLnRvTG93ZXJDYXNlKCkpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0YXJnZXRUeXBlOiAiK2UrIi4gVmFsaWQgdmFsdWVzIGFyZTogIitKU09OLnN0cmluZ2lmeShjanNUYXJnZXRUeXBlcykpO3ZhciBvLHI9W10sYT1uZXcgUmVnRXhwKCJeZ2V0KC4qKSIrZSsiJCIsImkiKTtmb3IobyBpbiBjaGF0Z3B0KSJmdW5jdGlvbiI9PXR5cGVvZiBjaGF0Z3B0W29dJiZhLnRlc3QobykmJnIucHVzaChvLnJlcGxhY2UoYSwiJDEiKS50b0xvd2VyQ2FzZSgpKTtpZighci5pbmNsdWRlcyh0LnRvTG93ZXJDYXNlKCkpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0YXJnZXROYW1lOiAiK3QrIi4gIisoMDxyLmxlbmd0aD8iVmFsaWQgdmFsdWVzIGFyZTogIitKU09OLnN0cmluZ2lmeShyKToidGFyZ2V0VHlwZSAiK2UudG9Mb3dlckNhc2UoKSsiIGRvZXMgbm90IHJlcXVpcmUgYWRkaXRpb25hbCBvcHRpb25zLiIpKTtsZXQgbj0oImdldCIrdCtlKS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzW09iamVjdC5rZXlzKHRoaXMpLmZpbmQoZT0+ZS50b0xvd2VyQ2FzZSgpPT1uKV0oKX0sZ2V0QWNjZXNzVG9rZW4oKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9PntpZigwPE9iamVjdC5rZXlzKGNoYXRncHQub3BlbkFJYWNjZXNzVG9rZW4pLmxlbmd0aCYmMDw9RGF0ZS5wYXJzZShjaGF0Z3B0Lm9wZW5BSWFjY2Vzc1Rva2VuLmV4cGlyZURhdGUpLURhdGUucGFyc2UobmV3IERhdGUpKXJldHVybiBlKGNoYXRncHQub3BlbkFJYWNjZXNzVG9rZW4udG9rZW4pO2xldCBvPW5ldyBYTUxIdHRwUmVxdWVzdDtvLm9wZW4oIkdFVCIsY2hhdGdwdC5lbmRwb2ludHMub3BlbkFJLnNlc3Npb24sITApLG8uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLG8ub25sb2FkPSgpPT4yMDAhPT1vLnN0YXR1cz90KCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCByZXRyaWV2ZSBhY2Nlc3MgdG9rZW4uIik6KGNvbnNvbGUuaW5mbygiVG9rZW4gZXhwaXJhdGlvbjogIituZXcgRGF0ZShKU09OLnBhcnNlKG8ucmVzcG9uc2VUZXh0KS5leHBpcmVzKS50b0xvY2FsZVN0cmluZygpLnJlcGxhY2UoIiwiLCIgYXQiKSksY2hhdGdwdC5vcGVuQUlhY2Nlc3NUb2tlbj17dG9rZW46SlNPTi5wYXJzZShvLnJlc3BvbnNlVGV4dCkuYWNjZXNzVG9rZW4sZXhwaXJlRGF0ZTpKU09OLnBhcnNlKG8ucmVzcG9uc2VUZXh0KS5leHBpcmVzfSxlKGNoYXRncHQub3BlbkFJYWNjZXNzVG9rZW4udG9rZW4pKSxvLnNlbmQoKX0pfSxnZXRBY2NvdW50RGV0YWlscyguLi5zKXt2YXIgZSx0PVsiZW1haWwiLCJpZCIsImltYWdlIiwibmFtZSIsInBpY3R1cmUiXTtmb3IoZSBvZiBzPWFyZ3VtZW50c1swXT9BcnJheS5pc0FycmF5KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOkFycmF5LmZyb20oYXJndW1lbnRzKTp0KWlmKCF0LmluY2x1ZGVzKGUpKXJldHVybiBjb25zb2xlLmVycm9yKCJJbnZhbGlkIGRldGFpbCBhcmcgJyIrZSsiJyBzdXBwbGllZC4gVmFsaWQgZGV0YWlscyBhcmU6XG4gICAgICAgICAgICAgICAgICAgIFsiK3QrIl0iKTtyZXR1cm4gbmV3IFByb21pc2UoKHIsYSk9PntsZXQgbj1uZXcgWE1MSHR0cFJlcXVlc3Q7bi5vcGVuKCJHRVQiLGNoYXRncHQuZW5kcG9pbnRzLm9wZW5BSS5zZXNzaW9uLCEwKSxuLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL2pzb24iKSxuLm9ubG9hZD0oKT0+e2lmKDIwMCE9PW4uc3RhdHVzKXJldHVybiBhKCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCByZXRyaWV2ZSBhY2NvdW50IGRldGFpbHMuIik7dmFyIGUsdD1KU09OLnBhcnNlKG4ucmVzcG9uc2VUZXh0KS51c2VyLG89e307Zm9yKGUgb2YgcylvW2VdPXRbZV07cmV0dXJuIHIobyl9LG4uc2VuZCgpfSl9LGdldENoYXRCb3goKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb21wdC10ZXh0YXJlYSIpfSxnZXRDaGF0RGF0YShkPTEscj0iYWxsIixwPSJhbGwiLGg9ImFsbCIpe3ZhciBlLHQ9WyJhbGwiLCJpZCIsInRpdGxlIiwiY3JlYXRlX3RpbWUiLCJ1cGRhdGVfdGltZSIsIm1zZyJdLG89WyJhbGwiLCJib3RoIiwidXNlciIsImNoYXRncHQiXTtkPWQ/TnVtYmVyLmlzSW50ZWdlcihkKXx8L15cZCskLy50ZXN0KGQpPzA9PT1wYXJzZUludChkLDEwKT8wOnBhcnNlSW50KGQsMTApLTE6ZDoiYWN0aXZlIixyPVsiYWxsIiwiIl0uaW5jbHVkZXMocik/dC5maWx0ZXIoZT0+L14oPyFhbGwkfG1zZyQpLiovLnRlc3QoZSkpOkFycmF5LmlzQXJyYXkocik/cjpbcl0scD1wP28uaW5jbHVkZXMocCk/cDoiaW52YWxpZCI6ImFsbCIsaD1OdW1iZXIuaXNJbnRlZ2VyKGgpfHwvXlxkKyQvLnRlc3QoaCk/MD09PXBhcnNlSW50KGgsMTApPzA6cGFyc2VJbnQoaCwxMCktMTpbImFsbCIsImxhdGVzdCJdLmluY2x1ZGVzKGgudG9Mb3dlckNhc2UoKSk/aC50b0xvd2VyQ2FzZSgpOmg/ImludmFsaWQiOiJhbGwiO2ZvcihlIG9mIHIpaWYoIXQuaW5jbHVkZXMoZSkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgZGV0YWlsIGFyZyAnIitlKyInIHBhc3NlZC4gVmFsaWQgZGV0YWlscyBhcmU6XG4gICAgICAgICAgICAgICAgICAgIFsiK3QrIl0iKTtpZigiaW52YWxpZCI9PXApcmV0dXJuIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgc2VuZGVyIGFyZyBwYXNzZWQuIFZhbGlkIHNlbmRlcnMgYXJlOlxuICAgICAgICAgICAgICAgICAgICBbIitvKyJdIik7aWYoImludmFsaWQiPT1oKXJldHVybiBjb25zb2xlLmVycm9yKCJJbnZhbGlkIG1zZ1RvR2V0IGFyZyBwYXNzZWQuIFZhbGlkIG1zZydzIHRvIGdldCBhcmU6XG4gICAgICAgICAgICAgICAgICAgIFsgJ2FsbCcgfCAnbGF0ZXN0JyB8IGluZGV4IG9mIG1zZyB0byBnZXQgXSIpO2xldCBhPShlLGMpPT57bGV0IGw9L1x3ezh9LVx3ezR9LVx3ezR9LVx3ezR9LVx3ezEyfS87cmV0dXJuIG5ldyBQcm9taXNlKCh0LHMpPT57bGV0IGk9bmV3IFhNTEh0dHBSZXF1ZXN0O2kub3BlbigiR0VUIixjaGF0Z3B0LmVuZHBvaW50cy5vcGVuQUkuY2hhdHMsITApLGkuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLGkuc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK2UpLGkub25sb2FkPSgpPT57aWYoMjAwIT09aS5zdGF0dXMpcmV0dXJuIHMoIvCfpJYgY2hhdGdwdC5qcyA+PiBSZXF1ZXN0IGZhaWxlZC4gQ2Fubm90IHJldHJpZXZlIGNoYXQgZGV0YWlscy4iKTt2YXIgbz1KU09OLnBhcnNlKGkucmVzcG9uc2VUZXh0KS5pdGVtcztpZihvLmxlbmd0aDw9MClyZXR1cm4gcygi8J+kliBjaGF0Z3B0LmpzID4+IENoYXQgbGlzdCBpcyBlbXB0eS4iKTt2YXIgcj17fTtpZihOdW1iZXIuaXNJbnRlZ2VyKGQpfHwibGF0ZXN0Ij09ZHx8ImFjdGl2ZSI9PWQmJiFuZXcgUmVnRXhwKCIvIitsLnNvdXJjZSsiJCIpLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWYpKXtpZigoZD1OdW1iZXIuaXNJbnRlZ2VyKGQpP2Q6MCk+by5sZW5ndGgpcmV0dXJuIHMoIvCfpJYgY2hhdGdwdC5qcyA+PiBDaGF0IHdpdGggaW5kZXggIisoZCsxKSsiIGlzIG91dCBvZiBib3VuZHMuIE9ubHkgIitvLmxlbmd0aCsiIGNoYXRzIGV4aXN0ISIpO2Zvcih2YXIgZSBvZiBjKXJbZV09b1tkXVtlXX1lbHNle3ZhciBhLG49ImFjdGl2ZSI9PWR8fG5ldyBSZWdFeHAoIl4iK2wuc291cmNlKyIkIikudGVzdChkKT8iaWQiOiJ0aXRsZSI7ImFjdGl2ZSI9PWQmJihkPWwuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZilbMF0pO2xldCBlLHQ7Zm9yKGU9MDtlPG8ubGVuZ3RoO2UrKylpZihvW2VdW25dPT1kKXt0PSEwO2JyZWFrfWlmKCF0KXJldHVybiBzKCLwn6SWIGNoYXRncHQuanMgPj4gTm8gY2hhdCB3aXRoICIrbisiID0gIitkKyIgZm91bmQuIik7Zm9yKGEgb2YgYylyW2FdPW9bZV1bYV19cmV0dXJuIHQocil9LGkuc2VuZCgpfSl9O3JldHVybiBuZXcgUHJvbWlzZShvPT5jaGF0Z3B0LmdldEFjY2Vzc1Rva2VuKCkudGhlbihlPT57cmV0dXJuIG8oci5pbmNsdWRlcygibXNnIik/KHQ9ZSxuZXcgUHJvbWlzZSgoZCxnKT0+e2xldCB1PW5ldyBYTUxIdHRwUmVxdWVzdDthKHQsWyJpZCJdKS50aGVuKGU9Pnt1Lm9wZW4oIkdFVCIsY2hhdGdwdC5lbmRwb2ludHMub3BlbkFJLmNoYXQrIi8iK2UuaWQsITApLHUuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLHUuc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK3QpLHUub25sb2FkPSgpPT57aWYoMjAwIT09dS5zdGF0dXMpcmV0dXJuIGcoIvCfpJYgY2hhdGdwdC5qcyA+PiBSZXF1ZXN0IGZhaWxlZC4gQ2Fubm90IHJldHJpZXZlIGNoYXQgbWVzc2FnZXMuIik7dmFyIGUsdCxvPUpTT04ucGFyc2UodS5yZXNwb25zZVRleHQpLm1hcHBpbmcscj1bXSxhPVtdLG49W107Zm9yKGUgaW4gbyludWxsIT1vW2VdLm1lc3NhZ2UmJiJ1c2VyIj09b1tlXS5tZXNzYWdlLmF1dGhvci5yb2xlJiZyLnB1c2goe2lkOm9bZV0uaWQsbXNnOm9bZV0ubWVzc2FnZX0pO2lmKHIuc29ydCgoZSx0KT0+ZS5tc2cuY3JlYXRlX3RpbWUtdC5tc2cuY3JlYXRlX3RpbWUpLHBhcnNlSW50KGgsMTApKzE+ci5sZW5ndGgpcmV0dXJuIGcoIvCfpJYgY2hhdGdwdC5qcyA+PiBNZXNzYWdlL3Jlc3BvbnNlIHdpdGggaW5kZXggIisoaCsxKSsiIGlzIG91dCBvZiBib3VuZHMuIE9ubHkgIityLmxlbmd0aCsiIG1lc3NhZ2VzL3Jlc3BvbnNlcyBleGlzdCEiKTtmb3IodCBvZiByKXtsZXQgZT1bXTtmb3IodmFyIHMgaW4gbyludWxsIT1vW3NdLm1lc3NhZ2UmJiJhc3Npc3RhbnQiPT1vW3NdLm1lc3NhZ2UuYXV0aG9yLnJvbGUmJm9bc10ucGFyZW50PT10LmlkJiZlLnB1c2gob1tzXS5tZXNzYWdlKTtlLnNvcnQoKGUsdCk9PmUuY3JlYXRlX3RpbWUtdC5jcmVhdGVfdGltZSksZT0xPT09KGU9ZS5tYXAoZT0+e3N3aXRjaChlLmNvbnRlbnQuY29udGVudF90eXBlKXtjYXNlImNvZGUiOnJldHVybiBlLmNvbnRlbnQudGV4dDtjYXNlInRleHQiOnJldHVybiBlLmNvbnRlbnQucGFydHNbMF07ZGVmYXVsdDpyZXR1cm59fSkpLmxlbmd0aD9lWzBdOmUsYS5wdXNoKGUpfWlmKCJ1c2VyIj09cClmb3IodmFyIGkgaW4gciluLnB1c2gocltpXS5tc2cuY29udGVudC5wYXJ0c1swXSk7ZWxzZSBpZigiY2hhdGdwdCI9PXApZm9yKHZhciBjIG9mIGEpbi5wdXNoKCJsYXRlc3QiPT1oP2FbYS5sZW5ndGgtMV06Yyk7ZWxzZXtsZXQgZT0wO2Zvcih2YXIgbCBpbiByKW4ucHVzaCh7dXNlcjpyW2xdLm1zZy5jb250ZW50LnBhcnRzWzBdLGNoYXRncHQ6ImxhdGVzdCI9PWg/YVtlXVthW2VdLmxlbmd0aC0xXTphW2VdfSksZSsrfXJldHVybiBkKCJhbGwiPT1oP246ImxhdGVzdCI9PWg/bltuLmxlbmd0aC0xXTpuW2hdKX0sdS5zZW5kKCl9KX0pKTphKGUscikpO3ZhciB0fSkpfSxnZXRDaGF0SW5wdXQoKXtyZXR1cm4gY2hhdGdwdC5nZXRDaGF0Qm94KCkuZmlyc3RDaGlsZC5pbm5lclRleHR9LGdldENvbnRpbnVlQnV0dG9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi5idG46aGFzKFtkXj0iTTQuNDcxODkiXSknKX0sZ2V0Rm9vdGVyRGl2KCl7cmV0dXJuIGNoYXRncHQuZm9vdGVyLmdldCgpfSxnZXRIZWFkZXJEaXYoKXtyZXR1cm4gY2hhdGdwdC5oZWFkZXIuZ2V0KCl9LGdldExhc3RQcm9tcHQoKXtyZXR1cm4gY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwidXNlciIsImxhdGVzdCIpfSxnZXRMYXN0UmVzcG9uc2UoKXtyZXR1cm4gY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpfSxnZXROZXdDaGF0QnV0dG9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbltkYXRhLXRlc3RpZCo9bmV3LWNoYXQtYnV0dG9uXSwgYnV0dG9uOmhhcyhbZF49Ik0xNS42NzI5Il0pJyl9LGdldE5ld0NoYXRMaW5rKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ25hdiBhW2hyZWY9Ii8iXScpfSxnZXRSZWdlbmVyYXRlQnV0dG9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbjpoYXMoW2RePSJNMy4wNjk1NyJdKScpfSxnZXRSZXNwb25zZSgpe3JldHVybiBjaGF0Z3B0LnJlc3BvbnNlLmdldCguLi5hcmd1bWVudHMpfSxnZXRSZXNwb25zZUZyb21BUEkoZSx0KXtyZXR1cm4gY2hhdGdwdC5yZXNwb25zZS5nZXRGcm9tQVBJKGUsdCl9LGdldFJlc3BvbnNlRnJvbURPTShlKXtyZXR1cm4gY2hhdGdwdC5yZXNwb25zZS5nZXRGcm9tRE9NKGUpfSxnZXRTY3JvbGxUb0JvdHRvbUJ1dHRvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b246aGFzKFtkXj0iTTEyIDIxQzExLjczNDgiXSknKX0sZ2V0U2VuZEJ1dHRvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS10ZXN0aWQ9c2VuZC1idXR0b25dIil9LGdldFN0b3BCdXR0b24oKXtyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYnV0dG9uW2RhdGEtdGVzdGlkPXN0b3AtYnV0dG9uXSIpfSxnZXRVc2VyTGFuZ3VhZ2UoKXtyZXR1cm4gbmF2aWdhdG9yLmxhbmd1YWdlc1swXXx8bmF2aWdhdG9yLmxhbmd1YWdlfHxuYXZpZ2F0b3IuYnJvd3Nlckxhbmd1YWdlfHxuYXZpZ2F0b3Iuc3lzdGVtTGFuZ3VhZ2V8fG5hdmlnYXRvci51c2VyTGFuZ3VhZ2V8fCIifSxoZWFkZXI6e2dldCgpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJtYWluIC5zdGlja3kiKX0saGlkZSgpe2NoYXRncHQuaGVhZGVyLmdldCgpLnN0eWxlLmRpc3BsYXk9Im5vbmUifSxzaG93KCl7Y2hhdGdwdC5oZWFkZXIuZ2V0KCkuc3R5bGUuZGlzcGxheT0iZmxleCJ9fSxoaWRlRm9vdGVyKCl7Y2hhdGdwdC5mb290ZXIuaGlkZSgpfSxoaWRlSGVhZGVyKCl7Y2hhdGdwdC5oZWFkZXIuaGlkZSgpfSxoaXN0b3J5Onthc3luYyBpc0xvYWRlZCh0PW51bGwpe3ZhciBlPXQ/bmV3IFByb21pc2UoZT0+c2V0VGltZW91dCgoKT0+ZSghMSksdCkpOm51bGwsbz1uZXcgUHJvbWlzZShvPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibmF2Iik/byghMCk6bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9Pntkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJuYXYiKSYmKHQuZGlzY29ubmVjdCgpLG8oITApKX0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX0pO3JldHVybiBlP1Byb21pc2UucmFjZShbbyxlXSk6b319LGluc3RydWN0aW9uczp7YWRkKHIsYSl7dmFyIGU7cmV0dXJuIHI/InN0cmluZyIhPXR5cGVvZiByP2NvbnNvbGUuZXJyb3IoIkluc3RydWN0aW9uIG11c3QgYmUgYSBzdHJpbmciKTooZT1bInVzZXIiLCJjaGF0Z3B0Il0sYT8ic3RyaW5nIiE9dHlwZW9mIGE/Y29uc29sZS5lcnJvcigiVGFyZ2V0IG11c3QgYmUgYSBzdHJpbmciKTooYT1hLnRvTG93ZXJDYXNlKCksZS5pbmNsdWRlcyhhKT8ocj1gCgpgK3IsbmV3IFByb21pc2Uobz0+e2NoYXRncHQuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKGFzeW5jIGU9Pnt2YXIgdD1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO3JldHVybiJ1c2VyIj09YT90LmFib3V0X3VzZXJfbWVzc2FnZSs9cjoiY2hhdGdwdCI9PWEmJih0LmFib3V0X21vZGVsX21lc3NhZ2UrPXIpLGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoIlBPU1QiLGUsdCksbygpfSl9KSk6Y29uc29sZS5lcnJvcihgSW52YWxpZCB0YXJnZXQgJHthfS4gVmFsaWQgdGFyZ2V0cyBhcmUgWyR7ZX1dYCkpOmNvbnNvbGUuZXJyb3IoIlBsZWFzZSBwcm92aWRlIGEgdmFsaWQgdGFyZ2V0ISIpKTpjb25zb2xlLmVycm9yKCJQbGVhc2UgcHJvdmlkZSBhbiBpbnN0cnVjdGlvbiIpfSxjbGVhcihyKXt2YXIgZT1bInVzZXIiLCJjaGF0Z3B0Il07cmV0dXJuIHI/InN0cmluZyIhPXR5cGVvZiByP2NvbnNvbGUuZXJyb3IoIlRhcmdldCBtdXN0IGJlIGEgc3RyaW5nIik6KHI9ci50b0xvd2VyQ2FzZSgpLGUuaW5jbHVkZXMocik/bmV3IFByb21pc2Uobz0+e2NoYXRncHQuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKGFzeW5jIGU9Pnt2YXIgdD1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO3JldHVybiJ1c2VyIj09cj90LmFib3V0X3VzZXJfbWVzc2FnZT0iIjoiY2hhdGdwdCI9PXImJih0LmFib3V0X21vZGVsX21lc3NhZ2U9IiIpLGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoIlBPU1QiLGUsdCksbygpfSl9KTpjb25zb2xlLmVycm9yKGBJbnZhbGlkIHRhcmdldCAke3J9LiBWYWxpZCB0YXJnZXRzIGFyZSBbJHtlfV1gKSk6Y29uc29sZS5lcnJvcigiUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCB0YXJnZXQhIil9LGZldGNoRGF0YSgpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57Y2hhdGdwdC5nZXRBY2Nlc3NUb2tlbigpLnRoZW4oYXN5bmMgZT0+dChhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KCJHRVQiLGUpKSl9KX0sc2VuZFJlcXVlc3QoYSxlLG4pe2ZvcihsZXQgZT0wO2U8YXJndW1lbnRzLmxlbmd0aC0xO2UrKylpZigic3RyaW5nIiE9dHlwZW9mIGFyZ3VtZW50c1tlXSlyZXR1cm4gY29uc29sZS5lcnJvcihgQXJndW1lbnQgJHtlKzF9IG11c3QgYmUgYSBzdHJpbmdgKTt2YXIgdD1bIlBPU1QiLCJHRVQiXTtyZXR1cm4oYT0oYXx8IiIpLnRyaW0oKS50b1VwcGVyQ2FzZSgpKSYmdC5pbmNsdWRlcyhhKT9lP24mJiJvYmplY3QiIT10eXBlb2Ygbj9jb25zb2xlLmVycm9yKGBJbnZhbGlkIGJvZHkgZGF0YSB0eXBlLiBHb3QgJHt0eXBlb2Ygbn0sIGV4cGVjdGVkIG9iamVjdGApOm5ldyBQcm9taXNlKCh0LG8pPT57bGV0IHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3Iub3BlbihhLGNoYXRncHQuZW5kcG9pbnRzLm9wZW5BSS5pbnN0cnVjdGlvbnMsITApLHIuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0LUxhbmd1YWdlIiwiZW4tVVMiKSxyLnNldFJlcXVlc3RIZWFkZXIoIkF1dGhvcml6YXRpb24iLCJCZWFyZXIgIitlKSwiUE9TVCI9PWEmJnIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLHIub25sb2FkPSgpPT57dmFyIGU9SlNPTi5wYXJzZShyLnJlc3BvbnNlVGV4dCk7cmV0dXJuIDQyMj09PXIuc3RhdHVzP28oIvCfpJYgY2hhdGdwdC5qcyA+PiBDaGFyYWN0ZXIgbGltaXQgZXhjZWVkZWQuIEN1c3RvbSBpbnN0cnVjdGlvbnMgY2FuIGhhdmUgYSBtYXhpbXVtIGxlbmd0aCBvZiAxNTAwIGNoYXJhY3RlcnMuIik6NDAzPT09ci5zdGF0dXMmJiJjb250ZW50X3BvbGljeSI9PWUuZGV0YWlsLnJlYXNvbj9vKCLwn6SWIGNoYXRncHQuanMgPj4gIitlLmRldGFpbC5kZXNjcmlwdGlvbik6MjAwIT09ci5zdGF0dXM/bygi8J+kliBjaGF0Z3B0LmpzID4+IFJlcXVlc3QgZmFpbGVkLiBDYW5ub3QgY29udGFjdCBjdXN0b20gaW5zdHJ1Y3Rpb25zIGVuZHBvaW50LiIpOihjb25zb2xlLmluZm8oIkN1c3RvbSBpbnN0cnVjdGlvbnMgc3VjY2Vzc2Z1bGx5IGNvbnRhY3RlZCB3aXRoIG1ldGhvZCAiK2EpLHQoZXx8e30pKX0sci5zZW5kKEpTT04uc3RyaW5naWZ5KG4pfHwiIil9KTpjb25zb2xlLmVycm9yKCJQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGFjY2VzcyB0b2tlbiEiKTpjb25zb2xlLmVycm9yKCJWYWxpZCBtZXRob2RzIGFyZSAiK3QpfSx0dXJuT2ZmKCl7cmV0dXJuIG5ldyBQcm9taXNlKG89PntjaGF0Z3B0LmdldEFjY2Vzc1Rva2VuKCkudGhlbihhc3luYyBlPT57dmFyIHQ9YXdhaXQgdGhpcy5mZXRjaERhdGEoKTtyZXR1cm4gdC5lbmFibGVkPSExLGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoIlBPU1QiLGUsdCksbygpfSl9KX0sdHVybk9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKG89PntjaGF0Z3B0LmdldEFjY2Vzc1Rva2VuKCkudGhlbihhc3luYyBlPT57dmFyIHQ9YXdhaXQgdGhpcy5mZXRjaERhdGEoKTtyZXR1cm4gdC5lbmFibGVkPSEwLGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoIlBPU1QiLGUsdCksbygpfSl9KX0sdG9nZ2xlKCl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9Pnt0aGlzLmZldGNoRGF0YSgpLnRoZW4oYXN5bmMgZT0+KGF3YWl0KGUuZW5hYmxlZD90aGlzLnR1cm5PZmYoKTp0aGlzLnR1cm5PbigpKSx0KCkpKX0pfX0saXNEYXJrTW9kZSgpe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvU3RyaW5nKCkuaW5jbHVkZXMoImRhcmsiKX0saXNGdWxsU2NyZWVuKCl7cmV0dXJuIGNoYXRncHQuYnJvd3Nlci5pc0Z1bGxTY3JlZW4oKX0sYXN5bmMgaXNJZGxlKHQ9bnVsbCl7bGV0IGU9e2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSxyPSJkaXZbZGF0YS1tZXNzYWdlLWF1dGhvci1yb2xlXSI7dmFyIG89dD9uZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KCgpPT5lKCExKSx0KSk6bnVsbCxhPShhc3luYygpPT4oYXdhaXQgbmV3IFByb21pc2Uobz0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocik/bygpOm5ldyBNdXRhdGlvbk9ic2VydmVyKChlLHQpPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihyKSYmKHQuZGlzY29ubmVjdCgpLG8oKSl9KS5vYnNlcnZlKGRvY3VtZW50LmJvZHksZSl9KSxhd2FpdCBuZXcgUHJvbWlzZShvPT57bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9PntjaGF0Z3B0LmdldFN0b3BCdG4oKSYmKHQuZGlzY29ubmVjdCgpLG8oKSl9KS5vYnNlcnZlKGRvY3VtZW50LmJvZHksZSl9KSxuZXcgUHJvbWlzZShvPT57bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9PntjaGF0Z3B0LmdldFN0b3BCdG4oKXx8KHQuZGlzY29ubmVjdCgpLG8oITApKX0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSxlKX0pKSkoKTtyZXR1cm4gbz9Qcm9taXNlLnJhY2UoW2Esb10pOmF9LGFzeW5jIGlzTG9hZGVkKHQ9bnVsbCl7dmFyIGU9dD9uZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KCgpPT5lKCExKSx0KSk6bnVsbCxvPW5ldyBQcm9taXNlKG89PntjaGF0Z3B0LmdldE5ld0NoYXRCdG4oKT9vKCEwKTpuZXcgTXV0YXRpb25PYnNlcnZlcigoZSx0KT0+e2NoYXRncHQuZ2V0TmV3Q2hhdEJ0bigpJiYodC5kaXNjb25uZWN0KCksbyghMCkpfSkub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfSk7cmV0dXJuIGU/UHJvbWlzZS5yYWNlKFtvLGVdKTpvfSxpc0xpZ2h0TW9kZSgpe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvU3RyaW5nKCkuaW5jbHVkZXMoImxpZ2h0Iil9LGxvZ291dCgpe3dpbmRvdy5sb2NhdGlvbi5ocmVmPSJodHRwczovL2NoYXQub3BlbmFpLmNvbS9hdXRoL2xvZ291dCJ9LG1lbnU6e2VsZW1lbnRzOltdLGFkZGVkRXZlbnQ6ITEsYXBwZW5kKGUsdD17fSl7dmFyIG89WyJidXR0b24iLCJkcm9wZG93biJdO2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIvCfpJYgY2hhdGdwdC5qcyA+PiBQbGVhc2Ugc3VwcGx5IGEgdmFsaWQgc3RyaW5nIGVsZW1lbnQgbmFtZSEiKTtpZihlPWUudG9Mb3dlckNhc2UoKSwhby5pbmNsdWRlcyhlKSlyZXR1cm4gY29uc29sZS5lcnJvcihg8J+kliBjaGF0Z3B0LmpzID4+IEludmFsaWQgZWxlbWVudCEgVmFsaWQgZWxlbWVudHMgYXJlIFske299XWApO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRyb3Bkb3duIj09ZT8ic2VsZWN0IjoiYnV0dG9uIj09ZT8iYSI6ZSk7aWYoci5pZD1NYXRoLmZsb29yKDFlNipjaGF0Z3B0LnJhbmRvbUZsb2F0KCkpK0RhdGUubm93KCksImJ1dHRvbiI9PWUpe3IudGV4dENvbnRlbnQ9dD8ubGFiZWwmJiJzdHJpbmciPT10eXBlb2YgdC5sYWJlbD90LmxhYmVsOiJjaGF0Z3B0LmpzIGJ1dHRvbiI7bz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtvLnNyYz10Py5pY29uJiYic3RyaW5nIj09dHlwZW9mIHQuaWNvbj90Lmljb246Y2hhdGdwdC5lbmRwb2ludHMuYXNzZXRzKyIvc3RhcnRlcnMvY2hyb21lL2V4dGVuc2lvbi9pY29ucy9pY29uMTI4LnBuZyIsby53aWR0aD0xOCxyLmluc2VydEJlZm9yZShvLHIuZmlyc3RDaGlsZCksci5vbmNsaWNrPXQ/Lm9uY2xpY2smJiJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9uY2xpY2s/dC5vbmNsaWNrOmZ1bmN0aW9uKCl7fX1lbHNlIGlmKCJkcm9wZG93biI9PWUpe2lmKHQ/Lml0ZW1zJiZBcnJheS5pc0FycmF5KHQuaXRlbXMpJiZ0Lml0ZW1zLmxlbmd0aHx8KHQuaXRlbXM9W3t0ZXh0OiLwn6SWIGNoYXRncHQuanMgb3B0aW9uIix2YWx1ZToiY2hhdGdwdC5qcyBvcHRpb24gdmFsdWUifV0pLCF0Lml0ZW1zLmV2ZXJ5KGU9PiJvYmplY3QiPT10eXBlb2YgZSkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIidpdGVtcycgbXVzdCBiZSBhbiBhcnJheSBvZiBvYmplY3RzISIpO3Iuc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMwMDA7IHdpZHRoOiAxMDAlOyBib3JkZXI6IG5vbmU7Iix0Lml0ZW1zLmZvckVhY2goZT0+e3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpO3QudGV4dENvbnRlbnQ9ZT8udGV4dCx0LnZhbHVlPWU/LnZhbHVlLHIuYWRkKHQpfSl9bGV0IGE9KCk9Pnt2YXIgZSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImFbcm9sZT1tZW51aXRlbV0iKTtsZXQgbztmb3IoZSBvZiB0KWlmKCJTZXR0aW5ncyI9PWUudGV4dENvbnRlbnQpe289ZS5jbGFzc0xpc3Q7YnJlYWt9bGV0IHI9dFswXS5wYXJlbnROb2RlO2NoYXRncHQubWVudS5lbGVtZW50cy5mb3JFYWNoKGU9PntpZihlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLG8pLCFyLmNvbnRhaW5zKGUpKXRyeXtyLmluc2VydEJlZm9yZShlLHIuZmlyc3RDaGlsZCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KX07dGhpcy5lbGVtZW50cy5wdXNoKHIpO289ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibmF2IGJ1dHRvbltpZCo9aGVhZGxlc3NdIik7cmV0dXJuIHRoaXMuYWRkZWRFdmVudHx8KG8/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3NldFRpbWVvdXQoYSwyNSl9KSx0aGlzLmFkZGVkRXZlbnQ9ITApLHIuaWR9LGNsb3NlKCl7dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm5hdiBbaWQqPW1lbnUtYnV0dG9uXVthcmlhLWV4cGFuZGVkPXRydWVdIikuY2xpY2soKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUubWVzc2FnZSl9fSxvcGVuKCl7dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm5hdiBbaWQqPW1lbnUtYnV0dG9uXVthcmlhLWV4cGFuZGVkPWZhbHNlXSIpLmNsaWNrKCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlLm1lc3NhZ2UpfX19LG1pbmlmeSgpe2NoYXRncHQuY29kZS5taW5pZnkoKX0sbm90aWZ5KGUsdCxvLHIpe289bz8rbzoxLjc1O2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuaWQ9TWF0aC5mbG9vcigxZTYqY2hhdGdwdC5yYW5kb21GbG9hdCgpKStEYXRlLm5vdygpLGEuY2xhc3NMaXN0LmFkZCgiY2hhdGdwdC1ub3RpZiIpLGEuaW5uZXJUZXh0PWUsZG9jdW1lbnQuYm9keS5hcHBlbmQoYSk7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj0oZS50aXRsZT0iRGlzbWlzcyIsZS5jbGFzc0xpc3QuYWRkKCJub3RpZi1jbG9zZS1idG4iLCJuby1tb2JpbGUtdGFwLW91dGxpbmUiKSxkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIikpLHM9KG4uc2V0QXR0cmlidXRlKCJoZWlnaHQiLCI4cHgiKSxuLnNldEF0dHJpYnV0ZSgidmlld0JveCIsIjAgMCAxNCAxNCIpLG4uc2V0QXR0cmlidXRlKCJmaWxsIiwibm9uZSIpLG4uc3R5bGUuaGVpZ2h0PW4uc3R5bGUud2lkdGg9IjhweCIsZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInBhdGgiKSkscz0ocy5zZXRBdHRyaWJ1dGUoImZpbGwtcnVsZSIsImV2ZW5vZGQiKSxzLnNldEF0dHJpYnV0ZSgiY2xpcC1ydWxlIiwiZXZlbm9kZCIpLHMuc2V0QXR0cmlidXRlKCJmaWxsIiwid2hpdGUiKSxzLnNldEF0dHJpYnV0ZSgiZCIsIk0xMy43MDcxIDEuNzA3MTFDMTQuMDk3NiAxLjMxNjU4IDE0LjA5NzYgMC42ODM0MTcgMTMuNzA3MSAwLjI5Mjg5M0MxMy4zMTY2IC0wLjA5NzYzMTIgMTIuNjgzNCAtMC4wOTc2MzEyIDEyLjI5MjkgMC4yOTI4OTNMNyA1LjU4NTc5TDEuNzA3MTEgMC4yOTI4OTNDMS4zMTY1OCAtMC4wOTc2MzEyIDAuNjgzNDE3IC0wLjA5NzYzMTIgMC4yOTI4OTMgMC4yOTI4OTNDLTAuMDk3NjMxMiAwLjY4MzQxNyAtMC4wOTc2MzEyIDEuMzE2NTggMC4yOTI4OTMgMS43MDcxMUw1LjU4NTc5IDdMMC4yOTI4OTMgMTIuMjkyOUMtMC4wOTc2MzEyIDEyLjY4MzQgLTAuMDk3NjMxMiAxMy4zMTY2IDAuMjkyODkzIDEzLjcwNzFDMC42ODM0MTcgMTQuMDk3NiAxLjMxNjU4IDE0LjA5NzYgMS43MDcxMSAxMy43MDcxTDcgOC40MTQyMUwxMi4yOTI5IDEzLjcwNzFDMTIuNjgzNCAxNC4wOTc2IDEzLjMxNjYgMTQuMDk3NiAxMy43MDcxIDEzLjcwNzFDMTQuMDk3NiAxMy4zMTY2IDE0LjA5NzYgMTIuNjgzNCAxMy43MDcxIDEyLjI5MjlMOC40MTQyMSA3TDEzLjcwNzEgMS43MDcxMVoiKSxuLmFwcGVuZChzKSxlLmFwcGVuZChuKSxhLmFwcGVuZChlKSxhLmlzVG9wPSF0fHwhL2xvd3xib3R0b20vaS50ZXN0KHQpLGEuaXNSaWdodD0hdHx8IS9sZWZ0L2kudGVzdCh0KSxhLnF1YWRyYW50PShhLmlzVG9wPyJ0b3AiOiJib3R0b20iKSsoYS5pc1JpZ2h0PyJSaWdodCI6IkxlZnQiKSwxNzM1NDc1NTI3MTUzKTtsZXQgaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hhdGdwdC1ub3RpZi1zdHlsZSIpLGM9KCghaXx8cGFyc2VJbnQoaS5nZXRBdHRyaWJ1dGUoImxhc3QtdXBkYXRlZCIpLDEwKTxzKSYmKGl8fCgoaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5pZD0iY2hhdGdwdC1ub3RpZi1zdHlsZSIsaS5zZXRBdHRyaWJ1dGUoImxhc3QtdXBkYXRlZCIscy50b1N0cmluZygpKSxkb2N1bWVudC5oZWFkLmFwcGVuZChpKSksaS5pbm5lclRleHQ9Jy5jaGF0Z3B0LW5vdGlmIHtmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgIlBpbmdGYW5nIFNDIiwiSGlyYWdpbm8gU2FucyBHQiIsICJNaWNyb3NvZnQgWWFIZWkiLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmIDsubm8tbW9iaWxlLXRhcC1vdXRsaW5lIHsgb3V0bGluZTogbm9uZSA7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgfWJhY2tncm91bmQtY29sb3I6IGJsYWNrIDsgcGFkZGluZzogMTBweCAxM3B4IDEwcHggMThweCA7IGJvcmRlci1yYWRpdXM6IDExcHggOyBib3JkZXI6IDFweCBzb2xpZCAjZjVmNWY3IDtvcGFjaXR5OiAwIDsgcG9zaXRpb246IGZpeGVkIDsgei1pbmRleDogOTk5OSA7IGZvbnQtc2l6ZTogMS44cmVtIDsgY29sb3I6IHdoaXRlIDstd2Via2l0LXVzZXItc2VsZWN0OiBub25lIDsgLW1vei11c2VyLXNlbGVjdDogbm9uZSA7IC1tcy11c2VyLXNlbGVjdDogbm9uZSA7IHVzZXItc2VsZWN0OiBub25lIDsnK2B0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHthLmlzUmlnaHQ/IiI6Ii0ifTM1cHgpIDtgKyhyPyJib3gtc2hhZG93OiAtOHB4IDEzcHggMjVweCAwICIrKC9cYig/OnNoYWRvd3xvbilcYi9pLnRlc3Qocik/ImdyYXkiOnIpOiIiKSsifS5ub3RpZi1jbG9zZS1idG4geyBjdXJzb3I6IHBvaW50ZXIgOyBmbG9hdDogcmlnaHQgOyBwb3NpdGlvbjogcmVsYXRpdmUgOyByaWdodDogLTRweCA7IG1hcmdpbi1sZWZ0OiAtM3B4IDtkaXNwbGF5OiBncmlkIH1Aa2V5ZnJhbWVzIG5vdGlmLXpvb20tZmFkZS1vdXQgeyAwJSB7IG9wYWNpdHk6IDEgOyB0cmFuc2Zvcm06IHNjYWxlKDEpIH0xNSUgeyBvcGFjaXR5OiAwLjM1IDsgdHJhbnNmb3JtOiByb3RhdGVYKC0yN2RlZykgc2NhbGUoMS4wNSkgfTQ1JSB7IG9wYWNpdHk6IDAuMDUgOyB0cmFuc2Zvcm06IHJvdGF0ZVgoLTgxZGVnKSB9MTAwJSB7IG9wYWNpdHk6IDAgOyB0cmFuc2Zvcm06IHJvdGF0ZVgoLTE4MGRlZykgc2NhbGUoMS4xNSkgfX0iKSxKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5ub3RpZnlQcm9wcykpO2MucXVldWVbYS5xdWFkcmFudF0ucHVzaChhLmlkKSxsb2NhbFN0b3JhZ2Uubm90aWZ5UHJvcHM9SlNPTi5zdHJpbmdpZnkoYyksYS5zdHlsZS50b3A9YS5pc1RvcD8yMy4udG9TdHJpbmcoKSsicHgiOiIiLGEuc3R5bGUuYm90dG9tPWEuaXNUb3A/IiI6MjMuLnRvU3RyaW5nKCkrInB4IixhLnN0eWxlLnJpZ2h0PWEuaXNSaWdodD8yNy4udG9TdHJpbmcoKSsicHgiOiIiLGEuc3R5bGUubGVmdD1hLmlzUmlnaHQ/IiI6MjcuLnRvU3RyaW5nKCkrInB4IjtlPWMucXVldWVbYS5xdWFkcmFudF07aWYoMTxlLmxlbmd0aCl0cnl7Zm9yKHZhciBsIG9mIGUuc2xpY2UoMCwtMSkpe3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGwpLGc9ZC5zdHlsZS50b3A/InRvcCI6ImJvdHRvbSIsdT0rL1xkKy8uZXhlYyhkLnN0eWxlW2ddKVswXSs1K2QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O2Quc3R5bGVbZ109dSsicHgifX1jYXRjaChlKXt9c2V0VGltZW91dCgoKT0+e2Euc3R5bGUub3BhY2l0eT1jaGF0Z3B0LmlzRGFya01vZGUoKT8uODouNjcsYS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoMCkiLGEuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UsIG9wYWNpdHkgMC4xNXMgZWFzZSJ9LDEwKTt0PSgpPT57YS5zdHlsZS5hbmltYXRpb249Im5vdGlmLXpvb20tZmFkZS1vdXQgMC4zNXMgZWFzZS1vdXQiLGNsZWFyVGltZW91dChwKX07bGV0IHA9c2V0VGltZW91dCh0LDFlMyoobzwuMzU/MDpvLS4zNSkpO3JldHVybiBuLm9uY2xpY2s9dCxhLm9uYW5pbWF0aW9uZW5kPSgpPT57YS5yZW1vdmUoKSwoYz1KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5ub3RpZnlQcm9wcykpLnF1ZXVlW2EucXVhZHJhbnRdLnNoaWZ0KCksbG9jYWxTdG9yYWdlLm5vdGlmeVByb3BzPUpTT04uc3RyaW5naWZ5KGMpfSxhfSxvYmZ1c2NhdGUoKXtjaGF0Z3B0LmNvZGUub2JmdXNjYXRlKCl9LHByaW50QWxsRnVuY3Rpb25zKCl7bGV0IG89e2NtZFByb21wdDpbIiNmZjAwZmYiLCIjMDBmZjAwIl0sb2JqTmFtZTpbIiMwNjExZTkiLCIjZjllZTE2Il0sbWV0aG9kTmFtZTpbIiMwMDVhZmYiLCIjZmZhNTAwIl0sZW50cnlUeXBlOlsiIzQ2N2UwNiIsIiNiOTgxZjkiXSxzcmNNZXRob2Q6WyIjZmYwMDAwIiwiIzAwZmZmZiJdfTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGU9PntvW2VdWzFdPW9bZV1bMV18fCIjIisoMTY3NzcyMTVeTnVtYmVyKCIweDEiK29bZV1bMF0ucmVwbGFjZSgvXiMvLCIiKSkpLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSkudG9VcHBlckNhc2UoKX0pO3ZhciBlPVtdO2ZvcihsZXQgdCBpbiB0aGlzKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW3RdKXt2YXIgcj0hT2JqZWN0LmtleXModGhpcykuZmluZChlPT5PYmplY3Qua2V5cyh0aGlzW2VdKS5pbmNsdWRlcyh0aGlzW3RdLm5hbWUpKTtlLnB1c2goW3I/ImNoYXRncHQiOiJvdGhlciIsdF0pfWVsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiB0aGlzW3RdKWZvcih2YXIgYSBpbiB0aGlzW3RdKSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW3RdW2FdJiZlLnB1c2goW3QsYV0pO2Uuc29ydCgoZSx0KT0+ZVswXS5sb2NhbGVDb21wYXJlKHRbMF0pfHxlWzFdLmxvY2FsZUNvbXBhcmUodFsxXSkpO3ZhciBuPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyxzPSJmb250LWZhbWlseTogbW9ub3NwYWNlIDsgZm9udC1zaXplOiBsYXJnZXIgOyAiO2NvbnNvbGUubG9nKCJcbiVj8J+kliBjaGF0Z3B0LmpzIG1ldGhvZHNcbiIsImZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmIDsgZm9udC1zaXplOiB4eHgtbGFyZ2UgOyBmb250LXdlaWdodDogYm9sZCIpO2ZvcihsZXQgdCBvZiBlKXt2YXIgaT0vY2hhdGdwdHxvdGhlci8udGVzdCh0WzBdKSxjPSJjaGF0Z3B0Ij09dFswXT90aGlzW3RbMV1dLm5hbWU6Im90aGVyIiE9PXRbMF0/dFswXSsiLiIrdFsxXTpPYmplY3Qua2V5cyh0aGlzKS5maW5kKGU9Pk9iamVjdC5rZXlzKHRoaXNbZV0pLmluY2x1ZGVzKHRoaXNbdFsxXV0ubmFtZSkpKyIuIit0aGlzW3RbMV1dLm5hbWUsbD0iQXN5bmNGdW5jdGlvbiI9PXRoaXNbdFsxXV0/LmNvbnN0cnVjdG9yLm5hbWU7Y29uc29sZS5sb2coIiVjPj4gJWMiKyhpPyIiOnRbMF0rIi4lYyIpK3RbMV0rIiAtIGh0dHBzOi8vY2hhdGdwdGpzLm9yZy91c2VyZ3VpZGUvIisvKD86LipcLik/KC4qKS8uZXhlYyhjKVsxXS50b0xvd2VyQ2FzZSgpKyhsPyItYXN5bmMiOiIiKSsiXG4lY1slYyIrKCJjaGF0Z3B0Ij09dFswXSYmdFsxXT09dGhpc1t0WzFdXS5uYW1lfHwhaT8iRnVuY3Rpb24iOiJBbGlhcyBvZiIpKyIlYzogJWMiK2MrIiVjXSIscysiZm9udC13ZWlnaHQ6IGJvbGQgOyBjb2xvcjoiK28uY21kUHJvbXB0WytuXSxzKyJmb250LXdlaWdodDogYm9sZCA7Y29sb3I6IitvW2k/Im1ldGhvZE5hbWUiOiJvYmpOYW1lIl1bK25dLHMrImZvbnQtd2VpZ2h0OiAiKyhpPyJpbml0aWFsIjoiYm9sZCIpKyI7Y29sb3I6IisoaT8iaW5pdGlhbCI6by5tZXRob2ROYW1lWytuXSkscysiZm9udC13ZWlnaHQ6ICIrKGk/ImJvbGQiOiJpbml0aWFsIikrIjtjb2xvcjoiKyhpP28uZW50cnlUeXBlWytuXToiaW5pdGlhbCIpLHMrImZvbnQtd2VpZ2h0OiAiKyhpPyJpbml0aWFsIjoiYm9sZCIpKyI7Y29sb3I6IisoaT8iaW5pdGlhbCI6by5lbnRyeVR5cGVbK25dKSxzKyhpPyJmb250LXN0eWxlOiBpdGFsaWMiOiJmb250LXdlaWdodDogaW5pdGlhbCIpKyI7Y29sb3I6IisoaT9vLnNyY01ldGhvZFsrbl06ImluaXRpYWwiKSxzKyhpPyJmb250LXdlaWdodDogaW5pdGlhbCI6ImZvbnQtc3R5bGU6IGl0YWxpYyIpKyI7Y29sb3I6IisoaT8iaW5pdGlhbCI6by5zcmNNZXRob2RbK25dKSxpPyIiOnMrImNvbG9yOiBpbml0aWFsIDsgZm9udC13ZWlnaHQ6IGluaXRpYWwiKX19LHJhbmRvbUZsb2F0KCl7cmV0dXJuKHdpbmRvdy5jcnlwdG98fHdpbmRvdy5tc0NyeXB0byk/LmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMSkpWzBdLzQyOTQ5NjcyOTV8fE1hdGgucmFuZG9tKCl9LHJlZmFjdG9yKCl7Y2hhdGdwdC5jb2RlLnJlZmFjdG9yKCl9LHJlZ2VuZXJhdGUoKXtjaGF0Z3B0LnJlc3BvbnNlLnJlZ2VuZXJhdGUoKX0scmVuZGVySFRNTChzKXt2YXIgaSxlPS88KFthLXpcZF0rKVxiKFtePl0qKT4oW1xzXFNdKj8pPFwvXDE+L2csYz0vKFxTKyk9WyciXT8oKD86Lig/IVsnIl0/XHMrXFMrPXxbPiddKSkrLilbJyJdPy9nLHQ9cy5jaGlsZE5vZGVzO2NoYXRncHQucmVuZGVySFRNTC5wcmVXcmFwU2V0fHwocy5zdHlsZS53aGl0ZVNwYWNlPSJwcmUtd3JhcCIsY2hhdGdwdC5yZW5kZXJIVE1MLnByZVdyYXBTZXQ9ITAsc2V0VGltZW91dCgoKT0+e2NoYXRncHQucmVuZGVySFRNTC5wcmVXcmFwU2V0PSExfSwxMDApKTtmb3IoaSBvZiB0KWlmKGkubm9kZVR5cGU9PU5vZGUuVEVYVF9OT0RFKXt2YXIgbD1pLm5vZGVWYWx1ZSxkPUFycmF5LmZyb20obC5tYXRjaEFsbChlKSk7aWYoMDxkLmxlbmd0aCl7bGV0IGU9ZFswXSxbdCxvLHIsYV09ZS5zbGljZSgwLDQpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvKTtuLnRleHRDb250ZW50PWE7QXJyYXkuZnJvbShyLm1hdGNoQWxsKGMpKS5mb3JFYWNoKGU9Pnt2YXIgdD1lWzFdLGU9ZVsyXS5yZXBsYWNlKC9bJyJdL2csIiIpO24uc2V0QXR0cmlidXRlKHQsZSl9KTt2YXIgZD1jaGF0Z3B0LnJlbmRlckhUTUwobiksZz1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsLnN1YnN0cmluZygwLGUuaW5kZXgpKSxsPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGwuc3Vic3RyaW5nKGUuaW5kZXgrdC5sZW5ndGgpKTtzLnJlcGxhY2VDaGlsZChnLGkpLHMuaW5zZXJ0QmVmb3JlKGQsZy5uZXh0U2libGluZykscy5pbnNlcnRCZWZvcmUobCxkLm5leHRTaWJsaW5nKX19ZWxzZSBpLm5vZGVUeXBlPT1Ob2RlLkVMRU1FTlRfTk9ERSYmY2hhdGdwdC5yZW5kZXJIVE1MKGkpO3JldHVybiBzfSxhc3luYyByZXNlbmQoKXtjaGF0Z3B0LnNlbmQoYXdhaXQgY2hhdGdwdC5nZXRDaGF0RGF0YSgibGF0ZXN0IiwibXNnIiwidXNlciIsImxhdGVzdCIpKX0scmVzcG9uc2U6e2NvbnRpbnVlKCl7dHJ5e2NoYXRncHQuZ2V0Q29udGludWVCdG4oKS5jbGljaygpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKX19LGdldCgpe3JldHVybih3aW5kb3cubG9jYXRpb24uaHJlZi5zdGFydHNXaXRoKCJodHRwczovL2NoYXRncHQuY29tL2MvIik/dGhpcy5nZXRGcm9tRE9NOnRoaXMuZ2V0RnJvbUFQSSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxnZXRGcm9tQVBJKGUsdCl7cmV0dXJuIGU9ZXx8ImxhdGVzdCIsdD10fHwibGF0ZXN0IixjaGF0Z3B0LmdldENoYXREYXRhKGUsIm1zZyIsImNoYXRncHQiLHQpfSxnZXRGcm9tRE9NKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRpdltkYXRhLW1lc3NhZ2UtYXV0aG9yLXJvbGU9YXNzaXN0YW50XSIpLG89ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7bGV0IHI9IiI7cmV0dXJuIHQubGVuZ3RoP3I9KHI9KC9sYXN0fGZpbmFsLy50ZXN0KG8pP3RbdC5sZW5ndGgtMV06dFsoTnVtYmVyLmlzSW50ZWdlcihlKT9lOi9eXGQrLy50ZXN0KG8pPy9eXGQrLy5leGVjKG8pWzBdOigvXig/OjF8b25lfGZpcikoPzpzdCk/JC8udGVzdChvKT8xOi9eKD86Mnx0dyg/Om98ZW58ZWwoPzp2ZXxmKSl8c2VjbykoPzpuZHx0W3lpXSk/KD86ZT90aCk/JC8udGVzdChvKT8yOi9eKD86M3x0aCg/OnJlZXxpcj8pKSg/OnJkfHRlZW58dFt5aV0pPyg/OmU/dGgpPyQvLnRlc3Qobyk/MzovXig/OjR8Zm91P3IpKD86dGVlbnx0W3lpXSk/KD86ZT90aCk/JC8udGVzdChvKT80Oi9eKD86NXxmaSg/OnZlfGYpKSg/OnRlZW58dFt5aV0pPyg/OmU/dGgpPyQvLnRlc3Qobyk/NTovXig/OjZ8c2l4KSg/OnRlZW58dFt5aV0pPyg/OmU/dGgpPyQvLnRlc3Qobyk/NjovXig/Ojd8c2V2ZW4pKD86dGVlbnx0W3lpXSk/KD86ZT90aCk/JC8udGVzdChvKT83Oi9eKD86OHxlaWdodD8pKD86dGVlbnx0W3lpXSk/KD86ZT90aCk/JC8udGVzdChvKT84Oi9eKD86OXxuaW5lPykoPzp0ZWVufHRbeWldKT8oPzplP3RoKT8kLy50ZXN0KG8pPzk6L14oPzoxMHx0ZW4pKD86dGgpPyQvLnRlc3Qobyk/MTA6MSkqKC8oPzp0eXxpZXRoKSQvLnRlc3Qobyk/MTA6MSkrKC90ZWVuKD86dGgpPyQvLnRlc3Qobyk/MTA6MCkpLTFdKS50ZXh0Q29udGVudCkucmVwbGFjZSgvXkNoYXRHUFQoPzpDaGF0R1BUKT8vLCIiKTpjb25zb2xlLmVycm9yKCJObyBjb252ZXJzYXRpb24gZm91bmQhIil9LGdldExhc3QoKXtyZXR1cm4gY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpfSxyZWdlbmVyYXRlKCl7dHJ5e2NoYXRncHQuZ2V0UmVnZW5lcmF0ZUJ0bigpLmNsaWNrKCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlLm1lc3NhZ2UpfX0sc3RvcEdlbmVyYXRpbmcoKXt0cnl7Y2hhdGdwdC5nZXRTdG9wQnRuKCkuY2xpY2soKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUubWVzc2FnZSl9fX0scmV2aWV3Q29kZSgpe2NoYXRncHQuY29kZS5yZXZpZXcoKX0sc2Nyb2xsVG9Cb3R0b20oKXt0cnl7Y2hhdGdwdC5nZXRTY3JvbGxCdG4oKS5jbGljaygpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKX19LHNlbmQoZSxvPSIiKXtmb3IobGV0IGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWlmKCJzdHJpbmciIT10eXBlb2YgYXJndW1lbnRzW2VdKXJldHVybiBjb25zb2xlLmVycm9yKGBBcmd1bWVudCAke2UrMX0gbXVzdCBiZSBhIHN0cmluZyFgKTtsZXQgcj1jaGF0Z3B0LmdldENoYXRCb3goKTtpZighcilyZXR1cm4gY29uc29sZS5lcnJvcigiQ2hhdGJhciBlbGVtZW50IG5vdCBmb3VuZCEiKTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7dC50ZXh0Q29udGVudD1lLHIucmVwbGFjZUNoaWxkKHQsci5xdWVyeVNlbGVjdG9yKCJwIikpLHIuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMH0pKSxzZXRUaW1lb3V0KGZ1bmN0aW9uIGUoKXt2YXIgdD1jaGF0Z3B0LmdldFNlbmRCdXR0b24oKTt0Py5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIik/c2V0VGltZW91dChlLDIyMik6ImNsaWNrIj09by50b0xvd2VyQ2FzZSgpfHxjaGF0Z3B0LmJyb3dzZXIuaXNNb2JpbGUoKT90LmNsaWNrKCk6ci5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCJrZXlkb3duIix7a2V5OiJFbnRlciIsYnViYmxlczohMH0pKX0sMjIyKX0sc2VuZEluTmV3Q2hhdChlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIk1lc3NhZ2UgbXVzdCBiZSBhIHN0cmluZyEiKTt0cnl7Y2hhdGdwdC5nZXROZXdDaGF0QnRuKCkuY2xpY2soKX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5lcnJvcihlLm1lc3NhZ2UpfXNldFRpbWVvdXQoKCk9PntjaGF0Z3B0LnNlbmQoZSl9LDUwMCl9LHNldHRpbmdzOntzY2hlbWU6e2lzRGFyaygpe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJkYXJrIil9LGlzTGlnaHQoKXtyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygibGlnaHQiKX0sc2V0KGUpe3ZhciB0PVsiZGFyayIsImxpZ2h0Iiwic3lzdGVtIl07aWYoIWUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIlBsZWFzZSBzcGVjaWZ5IGEgc2NoZW1lIHZhbHVlISIpO2lmKCF0LmluY2x1ZGVzKGUpKXJldHVybiBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHNjaGVtZSB2YWx1ZS4gVmFsaWQgdmFsdWVzIGFyZSBbJHt0fV1gKTtsZXQgbz1lOyJzeXN0ZW0iPT1lJiYobz13aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/ImRhcmsiOiJsaWdodCIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ0aGVtZSIsZSksY29uc29sZS5pbmZvKGBTY2hlbWUgc2V0IHRvICR7ZS50b1VwcGVyQ2FzZSgpfS5gKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKG8pfHx0aGlzLnRvZ2dsZSgpfSx0b2dnbGUoKXt2YXJbZSx0XT10aGlzLmlzRGFyaygpP1siZGFyayIsImxpZ2h0Il06WyJsaWdodCIsImRhcmsiXTtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlcGxhY2UoZSx0KSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuY29sb3JTY2hlbWU9dCxsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgidGhlbWUiLHQpfX19LGFzeW5jIHNlbnRpbWVudChlLHQpe2ZvcihsZXQgZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspaWYoInN0cmluZyIhPXR5cGVvZiBhcmd1bWVudHNbZV0pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEFyZ3VtZW50ICR7ZSsxfSBtdXN0IGJlIGEgc3RyaW5nLmApO3JldHVybiBjaGF0Z3B0LnNlbmQoIldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGUgZm9sbG93aW5nIHRleHQiKyh0P2AgdG93YXJkcyB0aGUgZW50aXR5ICR7dH0sYDoiIikrIiBmcm9tIHN0cm9uZ2x5IG5lZ2F0aXZlIHRvIHN0cm9uZ2x5IHBvc2l0aXZlP1xuXG4iK2UpLGNvbnNvbGUuaW5mbygiQW5hbHl6aW5nIHNlbnRpbWVudC4uLiIpLGF3YWl0IGNoYXRncHQuaXNJZGxlKCksY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpfSxzZXRTY2hlbWUoZSl7Y2hhdGdwdC5zZXR0aW5ncy5zY2hlbWUuc2V0KGUpfSxzaGFyZUNoYXQocyxpPSJjbGlwYm9hcmQiKXt2YXIgZT1bImFsZXJ0Iiwibm90aWZ5Iiwibm90aWZpY2F0aW9uIiwiY2xpcGJvYXJkIiwiY29weSJdO2lmKCFlLmluY2x1ZGVzKGkpKXJldHVybiBjb25zb2xlLmVycm9yKCJJbnZhbGlkIG1ldGhvZCAnIitpKyInIHBhc3NlZC4gVmFsaWQgbWV0aG9kcyBhcmUgWyIrZSsiXS4iKTtyZXR1cm4gbmV3IFByb21pc2Uobz0+e2NoYXRncHQuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKHQ9Pnt2YXIgYTthPXQsbmV3IFByb21pc2UoKHQsbyk9PntsZXQgcj1uZXcgWE1MSHR0cFJlcXVlc3Q7Y2hhdGdwdC5nZXRDaGF0RGF0YShzKS50aGVuKGU9PntyLm9wZW4oIkdFVCIsY2hhdGdwdC5lbmRwb2ludHMub3BlbkFJLmNoYXQrIi8iK2UuaWQsITApLHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLHIuc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK2EpLHIub25sb2FkPSgpPT4yMDAhPT1yLnN0YXR1cz9vKCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCByZXRyaWV2ZSBjaGF0IG5vZGUuIik6dChKU09OLnBhcnNlKHIucmVzcG9uc2VUZXh0KS5jdXJyZW50X25vZGUpLHIuc2VuZCgpfSl9KS50aGVuKGU9Pnt2YXIgYSxuO2E9dCxuPWUsbmV3IFByb21pc2UoKHQsbyk9PntsZXQgcj1uZXcgWE1MSHR0cFJlcXVlc3Q7Y2hhdGdwdC5nZXRDaGF0RGF0YShzKS50aGVuKGU9PntyLm9wZW4oIlBPU1QiLGNoYXRncHQuZW5kcG9pbnRzLm9wZW5BSS5zaGFyZV9jcmVhdGUsITApLHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLHIuc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK2EpLHIub25sb2FkPSgpPT4yMDAhPT1yLnN0YXR1cz9vKCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCBpbml0aWFsaXplIHNoYXJlIGNoYXQuIik6dChKU09OLnBhcnNlKHIucmVzcG9uc2VUZXh0KSksci5zZW5kKEpTT04uc3RyaW5naWZ5KHtjdXJyZW50X25vZGVfaWQ6bixjb252ZXJzYXRpb25faWQ6ZS5pZCxpc19hbm9ueW1vdXM6ITB9KSl9KX0pLnRoZW4oZT0+e3ZhciByLGE7cj10LGE9ZSxuZXcgUHJvbWlzZSgoZSx0KT0+e2xldCBvPW5ldyBYTUxIdHRwUmVxdWVzdDtvLm9wZW4oIlBBVENIIixjaGF0Z3B0LmVuZHBvaW50cy5vcGVuQUkuc2hhcmUrIi8iK2Euc2hhcmVfaWQsITApLG8uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLG8uc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK3IpLG8ub25sb2FkPSgpPT4yMDAhPT1vLnN0YXR1cz90KCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCBzaGFyZSBjaGF0LiIpOihjb25zb2xlLmluZm8oYENoYXQgc2hhcmVkIGF0ICcke2Euc2hhcmVfdXJsfSdgKSxlKCkpLG8uc2VuZChKU09OLnN0cmluZ2lmeSh7c2hhcmVfaWQ6YS5zaGFyZV9pZCxoaWdobGlnaHRlZF9tZXNzYWdlX2lkOmEuaGlnaGxpZ2h0ZWRfbWVzc2FnZV9pZCx0aXRsZTphLnRpdGxlLGlzX3B1YmxpYzohMCxpc192aXNpYmxlOmEuaXNfdmlzaWJsZSxpc19hbm9ueW1vdXM6YS5pc19hbm9ueW1vdXN9KSl9KS50aGVuKCgpPT57WyJjb3B5IiwiY2xpcGJvYXJkIl0uaW5jbHVkZXMoaSk/bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZS5zaGFyZV91cmwpOmNoYXRncHQuYWxlcnQoIvCfmoAgU2hhcmUgbGluayBjcmVhdGVkISIsJyInK2UudGl0bGUrJyIgaXMgYXZhaWxhYmxlIGF0OiA8YSB0YXJnZXQ9ImJsYW5rIiByZWw9Im5vb3BlbmVyIiBocmVmPSInK2Uuc2hhcmVfdXJsKyciID4nK2Uuc2hhcmVfdXJsKyI8L2E+IixbZnVuY3Rpb24oKXt3aW5kb3cub3BlbihlLnNoYXJlX3VybCwiX2JsYW5rIiwibm9vcGVuZXIiKX0sZnVuY3Rpb24oKXtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlLnNoYXJlX3VybCl9XSksbyhlLnNoYXJlX3VybCl9KX0pfSl9KX0pfSxzaG93Rm9vdGVyKCl7Y2hhdGdwdC5mb290ZXIuc2hvdygpfSxzaG93SGVhZGVyKCl7Y2hhdGdwdC5oZWFkZXIuc2hvdygpfSxzaWRlYmFyOntlbGVtZW50czpbXSxvYnNlcnZlcjp7fSxhY3RpdmF0ZU9ic2VydmVyKCl7aWYodGhpcy5vYnNlcnZlciBpbnN0YW5jZW9mIE11dGF0aW9uT2JzZXJ2ZXIpdHJ5e3RoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpfWNhdGNoKGUpe31pZighdGhpcy5lbGVtZW50cy5sZW5ndGgpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIvCfpJYgY2hhdGdwdC5qcyA+PiBObyBlbGVtZW50cyB0byBhcHBlbmQhIik7bGV0IHQ7Zm9yKHZhciBlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIm5hdiBhIikpaWYoLy4qY2hhdC8uZXhlYyhlLnRleHQpWzBdKXt0PWUuY2xhc3NMaXN0LGUucGFyZW50Tm9kZS5zdHlsZS5tYXJnaW49IjJweCAwIjticmVha310aGlzLmVsZW1lbnRzLmZvckVhY2goZT0+e2Uuc2V0QXR0cmlidXRlKCJjbGFzcyIsdCksZS5zdHlsZS5tYXhIZWlnaHQ9ZS5zdHlsZS5taW5IZWlnaHQ9IjQ0cHgiLGUuc3R5bGUubWFyZ2luPSIycHggMCJ9KTtsZXQgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJuYXYiKTtpZighbylyZXR1cm4gY29uc29sZS5lcnJvcigiU2lkZWJhciBlbGVtZW50IG5vdCBmb3VuZCEiKTt0aGlzLm9ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKGU9PntlLmZvckVhY2goZT0+eygiY2hpbGRMaXN0Ij09ZS50eXBlJiZlLmFkZGVkTm9kZXMubGVuZ3RofHwiYXR0cmlidXRlcyI9PWUudHlwZSYmImRhdGEtY2hhdGdwdGpzIj09ZS5hdHRyaWJ1dGVOYW1lKSYmdGhpcy5lbGVtZW50cy5mb3JFYWNoKGU9PntpZighby5jb250YWlucyhlKSl0cnl7by5pbnNlcnRCZWZvcmUoZSxvLnF1ZXJ5U2VsZWN0b3IoImEiKS5wYXJlbnROb2RlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0pfSl9KSx0aGlzLm9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwfSl9LGFwcGVuZChlLHQ9e30pe3ZhciBvPVsiYnV0dG9uIiwiZHJvcGRvd24iXTtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBjb25zb2xlLmVycm9yKCLwn6SWIGNoYXRncHQuanMgPj4gUGxlYXNlIHN1cHBseSBhIHZhbGlkIHN0cmluZyBlbGVtZW50IG5hbWUhIik7aWYoZT1lLnRvTG93ZXJDYXNlKCksIW8uaW5jbHVkZXMoZSkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoYPCfpJYgY2hhdGdwdC5qcyA+PiBJbnZhbGlkIGVsZW1lbnQhIFZhbGlkIGVsZW1lbnRzIGFyZSBbJHtvfV1gKTtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkcm9wZG93biI9PWU/InNlbGVjdCI6ZSk7aWYoci5pZD1NYXRoLmZsb29yKDFlNipjaGF0Z3B0LnJhbmRvbUZsb2F0KCkpK0RhdGUubm93KCksImJ1dHRvbiI9PWUpe3IudGV4dENvbnRlbnQ9dD8ubGFiZWwmJiJzdHJpbmciPT10eXBlb2YgdC5sYWJlbD90LmxhYmVsOiJjaGF0Z3B0LmpzIGJ1dHRvbiI7bz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtvLnNyYz10Py5pY29uJiYic3RyaW5nIj09dHlwZW9mIHQuaWNvbj90Lmljb246Y2hhdGdwdC5lbmRwb2ludHMuYXNzZXRzKyIvc3RhcnRlcnMvY2hyb21lL2V4dGVuc2lvbi9pY29ucy9pY29uMTI4LnBuZyIsby53aWR0aD0xOCxyLmluc2VydEJlZm9yZShvLHIuZmlyc3RDaGlsZCksci5vbmNsaWNrPXQ/Lm9uY2xpY2smJiJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9uY2xpY2s/dC5vbmNsaWNrOmZ1bmN0aW9uKCl7fX1lbHNlIGlmKCJkcm9wZG93biI9PWUpe2lmKHQ/Lml0ZW1zJiZBcnJheS5pc0FycmF5KHQuaXRlbXMpJiZ0Lml0ZW1zLmxlbmd0aHx8KHQuaXRlbXM9W3t0ZXh0OiLwn6SWIGNoYXRncHQuanMgb3B0aW9uIix2YWx1ZToiY2hhdGdwdC5qcyBvcHRpb24gdmFsdWUifV0pLCF0Lml0ZW1zLmV2ZXJ5KGU9PiJvYmplY3QiPT10eXBlb2YgZSkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIidpdGVtcycgbXVzdCBiZSBhbiBhcnJheSBvZiBvYmplY3RzISIpO3QuaXRlbXMuZm9yRWFjaChlPT57dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7dC50ZXh0Q29udGVudD1lPy50ZXh0LHQudmFsdWU9ZT8udmFsdWUsci5hZGQodCl9KX1yZXR1cm4iZHJvcGRvd24iPT1lJiYoci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9InZhcigtLWdyYXktOTAwLCByZ2IoMzIsIDMzLCAzNSkpIiksdGhpcy5lbGVtZW50cy5wdXNoKHIpLHRoaXMuYWN0aXZhdGVPYnNlcnZlcigpLGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJkYXRhLWNoYXRncHRqcyIsIm9ic2VydmVyLXRyaWdnZXIiKSxyLmlkfSxleGlzdHMoKXtyZXR1cm4hIWNoYXRncHQuZ2V0TmV3Q2hhdExpbmsoKX0saGlkZSgpe3RoaXMuaXNPbigpP3RoaXMudG9nZ2xlKCk6Y29uc29sZS5pbmZvKCJTaWRlYmFyIGFscmVhZHkgaGlkZGVuISIpfSxzaG93KCl7dGhpcy5pc09mZigpP3RoaXMudG9nZ2xlKCk6Y29uc29sZS5pbmZvKCJTaWRlYmFyIGFscmVhZHkgc2hvd24hIil9LGlzT2ZmKCl7cmV0dXJuIXRoaXMuaXNPbigpfSxpc09uKCl7dmFyIGU9Y2hhdGdwdC5zaWRlYmFyLmV4aXN0cygpP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIltjbGFzcyo9c2lkZWJhcl0iKTpudWxsO3JldHVybiBlP2NoYXRncHQuYnJvd3Nlci5pc01vYmlsZSgpPyJoaWRkZW4iPT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c6ImhpZGRlbiIhPWUuc3R5bGUudmlzaWJpbGl0eSYmIjBweCIhPWUuc3R5bGUud2lkdGg6KGNvbnNvbGUuZXJyb3IoIlNpZGViYXIgZWxlbWVudCBub3QgZm91bmQhIiksITEpfSx0b2dnbGUoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJidXR0b25bZGF0YS10ZXN0aWQqPXNpZGViYXItYnV0dG9uXSIpO2V8fGNvbnNvbGUuZXJyb3IoIlNpZGViYXIgdG9nZ2xlIG5vdCBmb3VuZCEiKSxlLmNsaWNrKCl9LGFzeW5jIGlzTG9hZGVkKHQ9NWUzKXthd2FpdCBjaGF0Z3B0LmlzTG9hZGVkKCk7dmFyIGU9bmV3IFByb21pc2UoZT0+c2V0VGltZW91dCgoKT0+e2UoITEpfSx0KSksbz1uZXcgUHJvbWlzZShvPT57Y2hhdGdwdC5nZXROZXdDaGF0TGluaygpP28oITApOm5ldyBNdXRhdGlvbk9ic2VydmVyKChlLHQpPT57Y2hhdGdwdC5nZXROZXdDaGF0TGluaygpJiYodC5kaXNjb25uZWN0KCksbyghMCkpfSkub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfSk7cmV0dXJuIFByb21pc2UucmFjZShbbyxlXSl9fSxzdGFydE5ld0NoYXQoKXt0cnl7Y2hhdGdwdC5nZXROZXdDaGF0QnRuKCkuY2xpY2soKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUubWVzc2FnZSl9fSxzdG9wKCl7Y2hhdGdwdC5yZXNwb25zZS5zdG9wR2VuZXJhdGluZygpfSxhc3luYyBzdWdnZXN0KGUsdCl7aWYoIWUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoImlkZWFUeXBlICgxc3QgYXJndW1lbnQpIG5vdCBzdXBwbGllZChlLmcuICdnaWZ0cycsICduYW1lcycsICdyZWNpcGVzJywgZXRjLikiKTtmb3IobGV0IGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWlmKCJzdHJpbmciIT10eXBlb2YgYXJndW1lbnRzW2VdKXJldHVybiBjb25zb2xlLmVycm9yKGBBcmd1bWVudCAke2UrMX0gbXVzdCBiZSBhIHN0cmluZy5gKTtyZXR1cm4gY2hhdGdwdC5zZW5kKCJTdWdnZXN0IHNvbWUgbmFtZXMuICIrKHR8fCIiKSksY29uc29sZS5pbmZvKGBDcmVhdGluZyAke2V9Li4uYCksYXdhaXQgY2hhdGdwdC5pc0lkbGUoKSxjaGF0Z3B0LmdldENoYXREYXRhKCJhY3RpdmUiLCJtc2ciLCJjaGF0Z3B0IiwibGF0ZXN0Iil9LHNwZWFrKGUsdD17fSl7dmFyIG8se3ZvaWNlOnI9MixwaXRjaDphPTIsc3BlZWQ6bj0xLjF9PXQ7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBjb25zb2xlLmVycm9yKCJNZXNzYWdlIG11c3QgYmUgYSBzdHJpbmchIik7Zm9yKG8gaW4gdCl7dmFyIHM9dFtvXTtpZigibnVtYmVyIiE9dHlwZW9mIHMmJiEvXlxkKyQvLnRlc3QocykpcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgJHtvfSBpbmRleCAnJHtzfScuIE11c3QgYmUgYSBudW1iZXIhYCl9dHJ5e3ZhciBpPXNwZWVjaFN5bnRoZXNpcy5nZXRWb2ljZXMoKSxjPW5ldyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U7Yy50ZXh0PWUsYy52b2ljZT1pW3JdLGMucGl0Y2g9YSxjLnJhdGU9bixzcGVlY2hTeW50aGVzaXMuc3BlYWsoYyl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19LGFzeW5jIHN1bW1hcml6ZShlKXtyZXR1cm4gZT8ic3RyaW5nIiE9dHlwZW9mIGU/Y29uc29sZS5lcnJvcigiVGV4dCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nISIpOihjaGF0Z3B0LnNlbmQoIlN1bW1hcml6ZSB0aGUgZm9sbG93aW5nIHRleHQ6XG5cbiIrZSksY29uc29sZS5pbmZvKCJTdW1tYXJpemluZyB0ZXh0Li4uIiksYXdhaXQgY2hhdGdwdC5pc0lkbGUoKSxjaGF0Z3B0LmdldENoYXREYXRhKCJhY3RpdmUiLCJtc2ciLCJjaGF0Z3B0IiwibGF0ZXN0IikpOmNvbnNvbGUuZXJyb3IoIlRleHQgKDFzdCkgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgdGV4dCEiKX0sdG9nZ2xlU2NoZW1lKCl7Y2hhdGdwdC5zZXR0aW5ncy5zY2hlbWUudG9nZ2xlKCl9LGFzeW5jIHRyYW5zbGF0ZShlLHQpe2lmKCFlKXJldHVybiBjb25zb2xlLmVycm9yKCJUZXh0ICgxc3QpIGFyZ3VtZW50IG5vdCBzdXBwbGllZC4gUGFzcyBzb21lIHRleHQhIik7aWYoIXQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIm91dHB1dExhbmcgKDJuZCkgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIGEgbGFuZ3VhZ2UhIik7Zm9yKGxldCBlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylpZigic3RyaW5nIiE9dHlwZW9mIGFyZ3VtZW50c1tlXSlyZXR1cm4gY29uc29sZS5lcnJvcihgQXJndW1lbnQgJHtlKzF9IG11c3QgYmUgYSBzdHJpbmchYCk7cmV0dXJuIGNoYXRncHQuc2VuZCgiVHJhbnNsYXRlIHRoZSBmb2xsb3dpbmcgdGV4dCB0byAiK3QrIi4gT25seSByZXBseSB3aXRoIHRoZSB0cmFuc2xhdGlvbi5cblxuIitlKSxjb25zb2xlLmluZm8oIlRyYW5zbGF0aW5nIHRleHQuLi4iKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKX0sdW5taW5pZnkoKXtjaGF0Z3B0LmNvZGUudW5taW5pZnkoKX0sdXVpZHY0KCl7dHJ5e3JldHVybiBjcnlwdG8ucmFuZG9tVVVJRCgpfWNhdGNoKGUpe2xldCBvPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZyxlPT57dmFyIHQ9KG8rd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDEpKVswXS8oTWF0aC5wb3coMiwzMiktMSkqMTYpJTE2fDA7cmV0dXJuIG89TWF0aC5mbG9vcihvLzE2KSwoIngiPT1lP3Q6MyZ0fDgpLnRvU3RyaW5nKDE2KX0pfX0sd3JpdGVDb2RlKCl7Y2hhdGdwdC5jb2RlLndyaXRlKCl9fSxjanNCdG5BY3Rpb25zPShjaGF0Z3B0LnNjaGVtZT17Li4uY2hhdGdwdC5zZXR0aW5ncy5zY2hlbWV9LFsiY2xpY2siLCJnZXQiXSksY2pzVGFyZ2V0VHlwZXM9WyJidXR0b24iLCJsaW5rIiwiZGl2IiwicmVzcG9uc2UiXTtmb3IobGV0IHQgb2YgY2pzQnRuQWN0aW9ucyljaGF0Z3B0W3QrIkJ1dHRvbiJdPWZ1bmN0aW9uKG8pe3ZhciBlPS9eWy4jXS8udGVzdChvKT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKG8pOi9zZW5kL2kudGVzdChvKT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJmb3JtIGJ1dHRvbltjbGFzcyo9Ym90dG9tXSIpOi9zY3JvbGwvaS50ZXN0KG8pP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbltjbGFzcyo9Y3Vyc29yXSIpOigoKT0+e2Zvcih2YXIgZSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKSlpZihlLnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoby50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gZTtmb3IodmFyIHQgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgibmF2IGEiKSlpZih0LnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoby50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gdH0pKCk7aWYoImNsaWNrIiE9dClyZXR1cm4gZTtlLmNsaWNrKCl9O2xldCBjanNGdW5jQWxpYXNlcz1bWyJhY3RBcyIsImFjdGFzIiwiYWN0IiwiYmVjb21lIiwicGVyc29uYSIsInByZW1hZGVQcm9tcHQiLCJwcmVNYWRlUHJvbXB0IiwicHJlUHJvbXB0IiwicHJlcHJvbXB0Iiwicm9sZXBsYXkiLCJyb2xlUGxheSIsInJwIl0sWyJhY3RpdmF0ZUF1dG9SZWZyZXNoIiwiYWN0aXZhdGVBdXRvUmVmcmVzaGVyIiwiYWN0aXZhdGVSZWZyZXNoZXIiLCJhY3RpdmF0ZVNlc3Npb25SZWZyZXNoZXIiLCJhdXRvUmVmcmVzaCIsImF1dG9SZWZyZXNoZXIiLCJhdXRvUmVmcmVzaFNlc3Npb24iLCJyZWZyZXNoZXIiLCJzZXNzaW9uUmVmcmVzaGVyIl0sWyJjb250aW51ZSIsImNvbnRpbnVlQ2hhdCIsImNvbnRpbnVlR2VuZXJhdGluZyIsImNvbnRpbnVlUmVzcG9uc2UiXSxbImRlYWN0aXZhdGVBdXRvUmVmcmVzaCIsImRlYWN0aXZhdGVBdXRvUmVmcmVzaGVyIiwiZGVhY3RpdmF0ZVJlZnJlc2hlciIsImRlYWN0aXZhdGVTZXNzaW9uUmVmcmVzaGVyIl0sWyJkZXRlY3RMYW5ndWFnZSIsImdldExhbmd1YWdlIl0sWyJleGVjdXRlQ29kZSIsImNvZGVFeGVjdXRlIl0sWyJleGlzdHMiLCJpc0F2YWlsYWJsZSIsImlzRXhpc3RlbnQiLCJpc1ByZXNlbnQiXSxbImV4cG9ydENoYXQiLCJjaGF0RXhwb3J0IiwiZXhwb3J0Il0sWyJnZXRGb290ZXJEaXYiLCJnZXRGb290ZXIiXSxbImdldEhlYWRlckRpdiIsImdldEhlYWRlciJdLFsiZ2V0TGFzdFByb21wdCIsImdldExhc3RRdWVyeSIsImdldE15TGFzdE1zZyIsImdldE15TGFzdFF1ZXJ5Il0sWyJnZXRDb250aW51ZUJ1dHRvbiIsImdldENvbnRpbnVlR2VuZXJhdGluZ0J1dHRvbiJdLFsiZ2V0U2Nyb2xsVG9Cb3R0b21CdXR0b24iLCJnZXRTY3JvbGxCdXR0b24iXSxbImdldFN0b3BCdXR0b24iLCJnZXRTdG9wR2VuZXJhdGluZ0J1dHRvbiJdLFsiZ2V0VGV4dGFyZWEiLCJnZXRUZXh0QXJlYSIsImdldENoYXRiYXIiLCJnZXRDaGF0QmFyIiwiZ2V0Q2hhdGJveCIsImdldENoYXRCb3giXSxbImlzRnVsbFNjcmVlbiIsImlzRnVsbHNjcmVlbiIsImlzZnVsbHNjcmVlbiJdLFsiaXNMb2FkZWQiLCJpc2xvYWRlZCJdLFsibG9nT3V0IiwibG9nb3V0IiwibG9nT2ZmIiwibG9nb2ZmIiwic2lnbk91dCIsInNpZ25vdXQiLCJzaWduT2ZmIiwic2lnbm9mZiJdLFsibWluaWZ5IiwiY29kZU1pbmlmeSIsIm1pbmlmeUNvZGUiXSxbIm5ldyIsIm5ld0NoYXQiLCJzdGFydE5ld0NoYXQiXSxbIm9iZnVzY2F0ZSIsImNvZGVPYmZ1c2NhdGUiLCJvYmZ1c2NhdGVDb2RlIl0sWyJwcmludEFsbEZ1bmN0aW9ucyIsInNob3dBbGxGdW5jdGlvbnMiXSxbInJlZmFjdG9yIiwiY29kZVJlZmFjdG9yIiwicmVmYWN0b3JDb2RlIl0sWyJyZWZyZXNoUmVwbHkiLCJyZWdlbmVyYXRlIiwicmVnZW5lcmF0ZVJlcGx5Il0sWyJyZWZyZXNoU2Vzc2lvbiIsInNlc3Npb25SZWZyZXNoIl0sWyJyZW5kZXJIVE1MIiwicmVuZGVySHRtbCIsInJlbmRlckxpbmtzIiwicmVuZGVyVGFncyJdLFsicmV2aWV3Q29kZSIsImNvZGVSZXZpZXciXSxbInNlbmQiLCJzZW5kQ2hhdCIsInNlbmRNc2ciXSxbInNlbmRJbk5ld0NoYXQiLCJzZW5kTmV3Q2hhdCJdLFsic2VudGltZW50IiwiYW5hbHl6ZVNlbnRpbWVudCIsInNlbnRpbWVudEFuYWx5c2lzIl0sWyJzdGFydE5ld0NoYXQiLCJuZXciLCJuZXdDaGF0Il0sWyJzdG9wIiwic3RvcENoYXQiLCJzdG9wR2VuZXJhdGluZyIsInN0b3BSZXNwb25zZSJdLFsic3VnZ2VzdCIsInN1Z2dlc3Rpb24iLCJyZWNvbW1lbmQiXSxbInRvZ2dsZUF1dG9SZWZyZXNoIiwidG9nZ2xlQXV0b1JlZnJlc2hlciIsInRvZ2dsZVJlZnJlc2hlciIsInRvZ2dsZVNlc3Npb25SZWZyZXNoZXIiXSxbInRvZ2dsZVNjaGVtZSIsInRvZ2dsZU1vZGUiXSxbInRyYW5zbGF0ZSIsInRyYW5zbGF0aW9uIiwidHJhbnNsYXRvciJdLFsidW5taW5pZnkiLCJ1bm1pbmlmeUNvZGUiLCJjb2RlVW5taW5pZnkiXSxbIndyaXRlQ29kZSIsImNvZGVXcml0ZSJdXSxjanNGdW5jU3lub255bXM9W1siYWNjb3VudCIsImFjY3QiXSxbImFjdGl2YXRlIiwidHVybk9uIl0sWyJhbmFseXplIiwiY2hlY2siLCJldmFsdWF0ZSIsInJldmlldyJdLFsiYXNrIiwic2VuZCIsInN1Ym1pdCJdLFsiYnV0dG9uIiwiYnRuIl0sWyJjb250aW51ZSIsInJlc3VtZSJdLFsiY2hhdHMiLCJoaXN0b3J5Il0sWyJjaGF0IiwiY29udmVyc2F0aW9uIiwiY29udm8iXSxbImNsZWFyIiwiZGVsZXRlIiwicmVtb3ZlIl0sWyJkYXRhIiwiZGV0YWlscyJdLFsiZGVhY3RpdmF0ZSIsImRlQWN0aXZhdGUiLCJ0dXJuT2ZmIl0sWyJleGVjdXRlIiwiaW50ZXJwcmV0IiwiaW50ZXJwcmV0ZXIiLCJydW4iXSxbImZpcmVmb3giLCJmZiJdLFsiZ2VuZXJhdGluZyIsImdlbmVyYXRpb24iXSxbIm1pbmlmeSIsInVnbGlmeSJdLFsicmVmYWN0b3IiLCJyZXdyaXRlIl0sWyJyZWdlbmVyYXRlIiwicmVnZW4iXSxbInJlbmRlciIsInBhcnNlIl0sWyJyZXBseSIsInJlc3BvbnNlIl0sWyJzZW50aW1lbnQiLCJhdHRpdHVkZSIsImVtb3Rpb24iLCJmZWVsaW5nIiwib3BpbmlvbiIsInBlcmNlcHRpb24iXSxbInNwZWFrIiwic2F5Iiwic3BlZWNoIiwidGFsayIsInR0cyJdLFsic3VtbWFyaXplIiwidGxkciJdLFsidW5taW5pZnkiLCJiZWF1dGlmeSIsInByZXR0aWZ5IiwicHJldHR5UHJpbnQiXV0sY2FtZWxDYXNlcj1lPT5lLm1hcCgoZSx0KT0+MD09PXR8fCJzIj09ZT9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSkuam9pbigiIik7Zm9yKGxldCByIGluIGNoYXRncHQpe2ZvcihsZXQgbyBvZiBjanNGdW5jQWxpYXNlcylpZihvLmluY2x1ZGVzKHIpKWlmKG8uc29tZShlPT5lLmluY2x1ZGVzKCIuIikpKXtsZXQgdD1vLmZpbmQoZT0+ZS5pbmNsdWRlcygiLiIpKS5zcGxpdCgiLiIpWzFdO2ZvcihsZXQgZSBvZiBvKS9eKFx3KykvLmV4ZWMoZSlbMV0hPT1yJiYoY2hhdGdwdFtlXT1jaGF0Z3B0W3JdW3RdKX1lbHNlIGZvcihsZXQgZSBvZiBvKWUhPT1yJiYoY2hhdGdwdFtlXT1jaGF0Z3B0W3JdKTtkb3t2YXIgbmV3RnVuY3Rpb25zQ3JlYXRlZD0hMTtmb3IobGV0IGEgaW4gY2hhdGdwdClpZigiZnVuY3Rpb24iPT10eXBlb2YgY2hhdGdwdFthXSl7bGV0IHI9YS5zcGxpdCgvKD89W0EtWnNdKS8pO2ZvcihsZXQgbyBvZiByKXtsZXQgZT1bXS5jb25jYXQoLi4uY2pzRnVuY1N5bm9ueW1zLmZpbHRlcihlPT5lLmluY2x1ZGVzKG8udG9Mb3dlckNhc2UoKSkpLm1hcChlPT5lLmZpbHRlcihlPT5lIT09by50b0xvd2VyQ2FzZSgpKSkpO2ZvcihsZXQgdCBvZiBlKXtsZXQgZT1jYW1lbENhc2VyKHIubWFwKGU9PmU9PW8/dDplKSk7Y2hhdGdwdFtlXXx8KGNoYXRncHRbZV09Y2hhdGdwdFthXSxuZXdGdW5jdGlvbnNDcmVhdGVkPSEwKX19fX13aGlsZShuZXdGdW5jdGlvbnNDcmVhdGVkKX1sZXQgY29uc29sZVByZWZpeD0i8J+kliBjaGF0Z3B0LmpzID4+ICIsb2dFcnJvcj1jb25zb2xlLmVycm9yLG9nSW5mbz1jb25zb2xlLmluZm87Y29uc29sZS5lcnJvcj0oLi4uZSk9PntlWzBdLnN0YXJ0c1dpdGgoY29uc29sZVByZWZpeCk/b2dFcnJvciguLi5lKTpvZ0Vycm9yKGNvbnNvbGVQcmVmaXgrZVswXSwuLi5lLnNsaWNlKDEpKX0sY29uc29sZS5pbmZvPWU9PntlLnN0YXJ0c1dpdGgoY29uc29sZVByZWZpeCk/b2dJbmZvKGUpOm9nSW5mbyhjb25zb2xlUHJlZml4K2UpfTt0cnl7d2luZG93LmNoYXRncHQ9Y2hhdGdwdH1jYXRjaChlKXt9dHJ5e21vZHVsZS5leHBvcnRzPWNoYXRncHR9Y2F0Y2goZSl7fQ=="},{"meta":{"name":"crypto-js.min.js","url":"https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/crypto-js.min.js#sha256-dppVXeVTurw1ozOPNE3XqhYmDJPOosfbKQcHyQSE58w=","ts":1764084296560,"mimetype":"text/javascript"},"source":"IWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWV4cG9ydHM9ZSgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLGUpOnQuQ3J5cHRvSlM9ZSgpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIFcsTyxJLFUsSyxYLEwsbCxqLFQsdCxOLHEsZSxaLFYsRyxKLFEsWSwkLHQxLGUxLHIxLGkxLG8xLG4xLHMsczEsYzEsYTEsaDEsbDEsbyxmMSxyLGQxLHUxLG4sYyxhLGgsZixkLGk9ZnVuY3Rpb24oaCl7dmFyIGk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jcnlwdG8mJihpPXdpbmRvdy5jcnlwdG8pLCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5jcnlwdG8mJihpPXNlbGYuY3J5cHRvKSwhKGk9IShpPSEoaT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMuY3J5cHRvP2dsb2JhbFRoaXMuY3J5cHRvOmkpJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lm1zQ3J5cHRvP3dpbmRvdy5tc0NyeXB0bzppKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJmdsb2JhbC5jcnlwdG8/Z2xvYmFsLmNyeXB0bzppKSYmImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUpdHJ5e2k9cmVxdWlyZSgiY3J5cHRvIil9Y2F0Y2godCl7fXZhciByPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHQpe3JldHVybiBlLnByb3RvdHlwZT10LHQ9bmV3IGUsZS5wcm90b3R5cGU9bnVsbCx0fTtmdW5jdGlvbiBlKCl7fXZhciB0PXt9LG89dC5saWI9e30sbj1vLkJhc2U9e2V4dGVuZDpmdW5jdGlvbih0KXt2YXIgZT1yKHRoaXMpO3JldHVybiB0JiZlLm1peEluKHQpLGUuaGFzT3duUHJvcGVydHkoImluaXQiKSYmdGhpcy5pbml0IT09ZS5pbml0fHwoZS5pbml0PWZ1bmN0aW9uKCl7ZS4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSwoZS5pbml0LnByb3RvdHlwZT1lKS4kc3VwZXI9dGhpcyxlfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmV4dGVuZCgpO3JldHVybiB0LmluaXQuYXBwbHkodCxhcmd1bWVudHMpLHR9LGluaXQ6ZnVuY3Rpb24oKXt9LG1peEluOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KXQuaGFzT3duUHJvcGVydHkoZSkmJih0aGlzW2VdPXRbZV0pO3QuaGFzT3duUHJvcGVydHkoInRvU3RyaW5nIikmJih0aGlzLnRvU3RyaW5nPXQudG9TdHJpbmcpfSxjbG9uZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluaXQucHJvdG90eXBlLmV4dGVuZCh0aGlzKX19LGw9by5Xb3JkQXJyYXk9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0PXRoaXMud29yZHM9dHx8W10sdGhpcy5zaWdCeXRlcz1udWxsIT1lP2U6NCp0Lmxlbmd0aH0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuKHR8fGMpLnN0cmluZ2lmeSh0aGlzKX0sY29uY2F0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMud29yZHMscj10LndvcmRzLGk9dGhpcy5zaWdCeXRlcyxvPXQuc2lnQnl0ZXM7aWYodGhpcy5jbGFtcCgpLGklNClmb3IodmFyIG49MDtuPG87bisrKXt2YXIgcz1yW24+Pj4yXT4+PjI0LW4lNCo4JjI1NTtlW2krbj4+PjJdfD1zPDwyNC0oaStuKSU0Kjh9ZWxzZSBmb3IodmFyIGM9MDtjPG87Yys9NCllW2krYz4+PjJdPXJbYz4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1vLHRoaXN9LGNsYW1wOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3JkcyxlPXRoaXMuc2lnQnl0ZXM7dFtlPj4+Ml0mPTQyOTQ5NjcyOTU8PDMyLWUlNCo4LHQubGVuZ3RoPWguY2VpbChlLzQpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLHR9LHJhbmRvbTpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wO3I8dDtyKz00KWUucHVzaChmdW5jdGlvbigpe2lmKGkpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBpLmdldFJhbmRvbVZhbHVlcyl0cnl7cmV0dXJuIGkuZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgxKSlbMF19Y2F0Y2godCl7fWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBpLnJhbmRvbUJ5dGVzKXRyeXtyZXR1cm4gaS5yYW5kb21CeXRlcyg0KS5yZWFkSW50MzJMRSgpfWNhdGNoKHQpe319dGhyb3cgbmV3IEVycm9yKCJOYXRpdmUgY3J5cHRvIG1vZHVsZSBjb3VsZCBub3QgYmUgdXNlZCB0byBnZXQgc2VjdXJlIHJhbmRvbSBudW1iZXIuIil9KCkpO3JldHVybiBuZXcgbC5pbml0KGUsdCl9fSkscz10LmVuYz17fSxjPXMuSGV4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQud29yZHMscj10LnNpZ0J5dGVzLGk9W10sbz0wO288cjtvKyspe3ZhciBuPWVbbz4+PjJdPj4+MjQtbyU0KjgmMjU1O2kucHVzaCgobj4+PjQpLnRvU3RyaW5nKDE2KSksaS5wdXNoKCgxNSZuKS50b1N0cmluZygxNikpfXJldHVybiBpLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1bXSxpPTA7aTxlO2krPTIpcltpPj4+M118PXBhcnNlSW50KHQuc3Vic3RyKGksMiksMTYpPDwyNC1pJTgqNDtyZXR1cm4gbmV3IGwuaW5pdChyLGUvMil9fSxhPXMuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQud29yZHMscj10LnNpZ0J5dGVzLGk9W10sbz0wO288cjtvKyspe3ZhciBuPWVbbz4+PjJdPj4+MjQtbyU0KjgmMjU1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKX1yZXR1cm4gaS5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10saT0wO2k8ZTtpKyspcltpPj4+Ml18PSgyNTUmdC5jaGFyQ29kZUF0KGkpKTw8MjQtaSU0Kjg7cmV0dXJuIG5ldyBsLmluaXQocixlKX19LGY9cy5VdGY4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKGEuc3RyaW5naWZ5KHQpKSl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgVVRGLTggZGF0YSIpfX0scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIGEucGFyc2UodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHQpKSl9fSxkPW8uQnVmZmVyZWRCbG9ja0FsZ29yaXRobT1uLmV4dGVuZCh7cmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9kYXRhPW5ldyBsLmluaXQsdGhpcy5fbkRhdGFCeXRlcz0wfSxfYXBwZW5kOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9Zi5wYXJzZSh0KSksdGhpcy5fZGF0YS5jb25jYXQodCksdGhpcy5fbkRhdGFCeXRlcys9dC5zaWdCeXRlc30sX3Byb2Nlc3M6ZnVuY3Rpb24odCl7dmFyIGUscj10aGlzLl9kYXRhLGk9ci53b3JkcyxvPXIuc2lnQnl0ZXMsbj10aGlzLmJsb2NrU2l6ZSxzPW8vKDQqbiksYz0ocz10P2guY2VpbChzKTpoLm1heCgoMHxzKS10aGlzLl9taW5CdWZmZXJTaXplLDApKSpuLHQ9aC5taW4oNCpjLG8pO2lmKGMpe2Zvcih2YXIgYT0wO2E8YzthKz1uKXRoaXMuX2RvUHJvY2Vzc0Jsb2NrKGksYSk7ZT1pLnNwbGljZSgwLGMpLHIuc2lnQnl0ZXMtPXR9cmV0dXJuIG5ldyBsLmluaXQoZSx0KX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1uLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2RhdGE9dGhpcy5fZGF0YS5jbG9uZSgpLHR9LF9taW5CdWZmZXJTaXplOjB9KSx1PShvLkhhc2hlcj1kLmV4dGVuZCh7Y2ZnOm4uZXh0ZW5kKCksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCksdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe2QucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXBwZW5kKHQpLHRoaXMuX3Byb2Nlc3MoKSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdGhpcy5fYXBwZW5kKHQpLHRoaXMuX2RvRmluYWxpemUoKX0sYmxvY2tTaXplOjE2LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByLmluaXQoZSkuZmluYWxpemUodCl9fSxfY3JlYXRlSG1hY0hlbHBlcjpmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IHUuSE1BQy5pbml0KHIsZSkuZmluYWxpemUodCl9fX0pLHQuYWxnbz17fSk7cmV0dXJuIHR9KE1hdGgpLHU9KHU9KHA9aSkubGliLFc9dS5CYXNlLE89dS5Xb3JkQXJyYXksKHU9cC54NjQ9e30pLldvcmQ9Vy5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0aGlzLmhpZ2g9dCx0aGlzLmxvdz1lfX0pLHUuV29yZEFycmF5PVcuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLHRoaXMuc2lnQnl0ZXM9bnVsbCE9ZT9lOjgqdC5sZW5ndGh9LHRvWDMyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMud29yZHMsZT10Lmxlbmd0aCxyPVtdLGk9MDtpPGU7aSsrKXt2YXIgbz10W2ldO3IucHVzaChvLmhpZ2gpLHIucHVzaChvLmxvdyl9cmV0dXJuIE8uY3JlYXRlKHIsdGhpcy5zaWdCeXRlcyl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVcuY2xvbmUuY2FsbCh0aGlzKSxlPXQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxyPWUubGVuZ3RoLGk9MDtpPHI7aSsrKWVbaV09ZVtpXS5jbG9uZSgpO3JldHVybiB0fX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheUJ1ZmZlciYmKHA9aS5saWIuV29yZEFycmF5LEk9cC5pbml0LChwLmluaXQ9ZnVuY3Rpb24odCl7aWYoKHQ9KHQ9dCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KHQpOnQpaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fCJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkmJnQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIEludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheT9uZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKTp0KWluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciBlPXQuYnl0ZUxlbmd0aCxyPVtdLGk9MDtpPGU7aSsrKXJbaT4+PjJdfD10W2ldPDwyNC1pJTQqODtJLmNhbGwodGhpcyxyLGUpfWVsc2UgSS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5wcm90b3R5cGU9cCksaSkscDE9dS5saWIuV29yZEFycmF5O2Z1bmN0aW9uIF8xKHQpe3JldHVybiB0PDw4JjQyNzgyNTUzNjB8dD4+PjgmMTY3MTE5MzV9KHU9dS5lbmMpLlV0ZjE2PXUuVXRmMTZCRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxpPVtdLG89MDtvPHI7bys9Mil7dmFyIG49ZVtvPj4+Ml0+Pj4xNi1vJTQqOCY2NTUzNTtpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShuKSl9cmV0dXJuIGkuam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPVtdLGk9MDtpPGU7aSsrKXJbaT4+PjFdfD10LmNoYXJDb2RlQXQoaSk8PDE2LWklMioxNjtyZXR1cm4gcDEuY3JlYXRlKHIsMiplKX19LHUuVXRmMTZMRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxpPVtdLG89MDtvPHI7bys9Mil7dmFyIG49XzEoZVtvPj4+Ml0+Pj4xNi1vJTQqOCY2NTUzNSk7aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobikpfXJldHVybiBpLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1bXSxpPTA7aTxlO2krKylyW2k+Pj4xXXw9XzEodC5jaGFyQ29kZUF0KGkpPDwxNi1pJTIqMTYpO3JldHVybiBwMS5jcmVhdGUociwyKmUpfX0sVT0ocD1pKS5saWIuV29yZEFycmF5LHAuZW5jLkJhc2U2ND17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxpPXRoaXMuX21hcCxvPSh0LmNsYW1wKCksW10pLG49MDtuPHI7bis9Mylmb3IodmFyIHM9KGVbbj4+PjJdPj4+MjQtbiU0KjgmMjU1KTw8MTZ8KGVbbisxPj4+Ml0+Pj4yNC0obisxKSU0KjgmMjU1KTw8OHxlW24rMj4+PjJdPj4+MjQtKG4rMiklNCo4JjI1NSxjPTA7Yzw0JiZuKy43NSpjPHI7YysrKW8ucHVzaChpLmNoYXJBdChzPj4+NiooMy1jKSY2MykpO3ZhciBhPWkuY2hhckF0KDY0KTtpZihhKWZvcig7by5sZW5ndGglNDspby5wdXNoKGEpO3JldHVybiBvLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aCxyPXRoaXMuX21hcDtpZighKGk9dGhpcy5fcmV2ZXJzZU1hcCkpZm9yKHZhciBpPXRoaXMuX3JldmVyc2VNYXA9W10sbz0wO288ci5sZW5ndGg7bysrKWlbci5jaGFyQ29kZUF0KG8pXT1vO2Zvcih2YXIgbixzLGM9ci5jaGFyQXQoNjQpLGE9KCFjfHwtMSE9PShjPXQuaW5kZXhPZihjKSkmJihlPWMpLHQpLGg9ZSxsPWksZj1bXSxkPTAsdT0wO3U8aDt1KyspdSU0JiYocz1sW2EuY2hhckNvZGVBdCh1LTEpXTw8dSU0KjIsbj1sW2EuY2hhckNvZGVBdCh1KV0+Pj42LXUlNCoyLHM9c3xuLGZbZD4+PjJdfD1zPDwyNC1kJTQqOCxkKyspO3JldHVybiBVLmNyZWF0ZShmLGQpfSxfbWFwOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSJ9LEs9KHU9aSkubGliLldvcmRBcnJheSx1LmVuYy5CYXNlNjR1cmw9e3N0cmluZ2lmeTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LndvcmRzLGk9dC5zaWdCeXRlcyxvPShlPXZvaWQgMD09PWU/ITA6ZSk/dGhpcy5fc2FmZV9tYXA6dGhpcy5fbWFwLG49KHQuY2xhbXAoKSxbXSkscz0wO3M8aTtzKz0zKWZvcih2YXIgYz0ocltzPj4+Ml0+Pj4yNC1zJTQqOCYyNTUpPDwxNnwocltzKzE+Pj4yXT4+PjI0LShzKzEpJTQqOCYyNTUpPDw4fHJbcysyPj4+Ml0+Pj4yNC0ocysyKSU0KjgmMjU1LGE9MDthPDQmJnMrLjc1KmE8aTthKyspbi5wdXNoKG8uY2hhckF0KGM+Pj42KigzLWEpJjYzKSk7dmFyIGg9by5jaGFyQXQoNjQpO2lmKGgpZm9yKDtuLmxlbmd0aCU0OyluLnB1c2goaCk7cmV0dXJuIG4uam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGgsaT0oZT12b2lkIDA9PT1lPyEwOmUpP3RoaXMuX3NhZmVfbWFwOnRoaXMuX21hcDtpZighKG89dGhpcy5fcmV2ZXJzZU1hcCkpZm9yKHZhciBvPXRoaXMuX3JldmVyc2VNYXA9W10sbj0wO248aS5sZW5ndGg7bisrKW9baS5jaGFyQ29kZUF0KG4pXT1uO2Zvcih2YXIgcyxjLGU9aS5jaGFyQXQoNjQpLGE9KCFlfHwtMSE9PShlPXQuaW5kZXhPZihlKSkmJihyPWUpLHQpLGg9cixsPW8sZj1bXSxkPTAsdT0wO3U8aDt1KyspdSU0JiYoYz1sW2EuY2hhckNvZGVBdCh1LTEpXTw8dSU0KjIscz1sW2EuY2hhckNvZGVBdCh1KV0+Pj42LXUlNCoyLGM9Y3xzLGZbZD4+PjJdfD1jPDwyNC1kJTQqOCxkKyspO3JldHVybiBLLmNyZWF0ZShmLGQpfSxfbWFwOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIsX3NhZmVfbWFwOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fIn07Zm9yKHZhciB5MT1NYXRoLHA9aSxnMT0odT1wLmxpYikuV29yZEFycmF5LHYxPXUuSGFzaGVyLHU9cC5hbGdvLEE9W10sQjE9MDtCMTw2NDtCMSsrKUFbQjFdPTQyOTQ5NjcyOTYqeTEuYWJzKHkxLnNpbihCMSsxKSl8MDtmdW5jdGlvbiB6KHQsZSxyLGksbyxuLHMpe3Q9dCsoZSZyfH5lJmkpK28rcztyZXR1cm4odDw8bnx0Pj4+MzItbikrZX1mdW5jdGlvbiBIKHQsZSxyLGksbyxuLHMpe3Q9dCsoZSZpfHImfmkpK28rcztyZXR1cm4odDw8bnx0Pj4+MzItbikrZX1mdW5jdGlvbiBDKHQsZSxyLGksbyxuLHMpe3Q9dCsoZV5yXmkpK28rcztyZXR1cm4odDw8bnx0Pj4+MzItbikrZX1mdW5jdGlvbiBSKHQsZSxyLGksbyxuLHMpe3Q9dCsocl4oZXx+aSkpK28rcztyZXR1cm4odDw8bnx0Pj4+MzItbikrZX11PXUuTUQ1PXYxLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBnMS5pbml0KFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzhdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjwxNjtyKyspe3ZhciBpPWUrcixvPXRbaV07dFtpXT0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KX12YXIgbj10aGlzLl9oYXNoLndvcmRzLHM9dFtlKzBdLGM9dFtlKzFdLGE9dFtlKzJdLGg9dFtlKzNdLGw9dFtlKzRdLGY9dFtlKzVdLGQ9dFtlKzZdLHU9dFtlKzddLHA9dFtlKzhdLF89dFtlKzldLHk9dFtlKzEwXSxnPXRbZSsxMV0sdj10W2UrMTJdLEI9dFtlKzEzXSx3PXRbZSsxNF0saz10W2UrMTVdLHg9eihuWzBdLFM9blsxXSxtPW5bMl0sYj1uWzNdLHMsNyxBWzBdKSxiPXooYix4LFMsbSxjLDEyLEFbMV0pLG09eihtLGIseCxTLGEsMTcsQVsyXSksUz16KFMsbSxiLHgsaCwyMixBWzNdKTt4PXooeCxTLG0sYixsLDcsQVs0XSksYj16KGIseCxTLG0sZiwxMixBWzVdKSxtPXoobSxiLHgsUyxkLDE3LEFbNl0pLFM9eihTLG0sYix4LHUsMjIsQVs3XSkseD16KHgsUyxtLGIscCw3LEFbOF0pLGI9eihiLHgsUyxtLF8sMTIsQVs5XSksbT16KG0sYix4LFMseSwxNyxBWzEwXSksUz16KFMsbSxiLHgsZywyMixBWzExXSkseD16KHgsUyxtLGIsdiw3LEFbMTJdKSxiPXooYix4LFMsbSxCLDEyLEFbMTNdKSxtPXoobSxiLHgsUyx3LDE3LEFbMTRdKSx4PUgoeCxTPXooUyxtLGIseCxrLDIyLEFbMTVdKSxtLGIsYyw1LEFbMTZdKSxiPUgoYix4LFMsbSxkLDksQVsxN10pLG09SChtLGIseCxTLGcsMTQsQVsxOF0pLFM9SChTLG0sYix4LHMsMjAsQVsxOV0pLHg9SCh4LFMsbSxiLGYsNSxBWzIwXSksYj1IKGIseCxTLG0seSw5LEFbMjFdKSxtPUgobSxiLHgsUyxrLDE0LEFbMjJdKSxTPUgoUyxtLGIseCxsLDIwLEFbMjNdKSx4PUgoeCxTLG0sYixfLDUsQVsyNF0pLGI9SChiLHgsUyxtLHcsOSxBWzI1XSksbT1IKG0sYix4LFMsaCwxNCxBWzI2XSksUz1IKFMsbSxiLHgscCwyMCxBWzI3XSkseD1IKHgsUyxtLGIsQiw1LEFbMjhdKSxiPUgoYix4LFMsbSxhLDksQVsyOV0pLG09SChtLGIseCxTLHUsMTQsQVszMF0pLHg9Qyh4LFM9SChTLG0sYix4LHYsMjAsQVszMV0pLG0sYixmLDQsQVszMl0pLGI9QyhiLHgsUyxtLHAsMTEsQVszM10pLG09QyhtLGIseCxTLGcsMTYsQVszNF0pLFM9QyhTLG0sYix4LHcsMjMsQVszNV0pLHg9Qyh4LFMsbSxiLGMsNCxBWzM2XSksYj1DKGIseCxTLG0sbCwxMSxBWzM3XSksbT1DKG0sYix4LFMsdSwxNixBWzM4XSksUz1DKFMsbSxiLHgseSwyMyxBWzM5XSkseD1DKHgsUyxtLGIsQiw0LEFbNDBdKSxiPUMoYix4LFMsbSxzLDExLEFbNDFdKSxtPUMobSxiLHgsUyxoLDE2LEFbNDJdKSxTPUMoUyxtLGIseCxkLDIzLEFbNDNdKSx4PUMoeCxTLG0sYixfLDQsQVs0NF0pLGI9QyhiLHgsUyxtLHYsMTEsQVs0NV0pLG09QyhtLGIseCxTLGssMTYsQVs0Nl0pLHg9Uih4LFM9QyhTLG0sYix4LGEsMjMsQVs0N10pLG0sYixzLDYsQVs0OF0pLGI9UihiLHgsUyxtLHUsMTAsQVs0OV0pLG09UihtLGIseCxTLHcsMTUsQVs1MF0pLFM9UihTLG0sYix4LGYsMjEsQVs1MV0pLHg9Uih4LFMsbSxiLHYsNixBWzUyXSksYj1SKGIseCxTLG0saCwxMCxBWzUzXSksbT1SKG0sYix4LFMseSwxNSxBWzU0XSksUz1SKFMsbSxiLHgsYywyMSxBWzU1XSkseD1SKHgsUyxtLGIscCw2LEFbNTZdKSxiPVIoYix4LFMsbSxrLDEwLEFbNTddKSxtPVIobSxiLHgsUyxkLDE1LEFbNThdKSxTPVIoUyxtLGIseCxCLDIxLEFbNTldKSx4PVIoeCxTLG0sYixsLDYsQVs2MF0pLGI9UihiLHgsUyxtLGcsMTAsQVs2MV0pLG09UihtLGIseCxTLGEsMTUsQVs2Ml0pLFM9UihTLG0sYix4LF8sMjEsQVs2M10pLG5bMF09blswXSt4fDAsblsxXT1uWzFdK1N8MCxuWzJdPW5bMl0rbXwwLG5bM109blszXStifDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzLG89KGVbaT4+PjVdfD0xMjg8PDI0LWklMzIseTEuZmxvb3Ioci80Mjk0OTY3Mjk2KSksbz0oZVsxNSsoNjQraT4+Pjk8PDQpXT0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KSxlWzE0Kyg2NCtpPj4+OTw8NCldPTE2NzExOTM1JihyPDw4fHI+Pj4yNCl8NDI3ODI1NTM2MCYocjw8MjR8cj4+PjgpLHQuc2lnQnl0ZXM9NCooZS5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2gpLG49by53b3JkcyxzPTA7czw0O3MrKyl7dmFyIGM9bltzXTtuW3NdPTE2NzExOTM1JihjPDw4fGM+Pj4yNCl8NDI3ODI1NTM2MCYoYzw8MjR8Yz4+PjgpfXJldHVybiBvfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PXYxLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSkscC5NRDU9djEuX2NyZWF0ZUhlbHBlcih1KSxwLkhtYWNNRDU9djEuX2NyZWF0ZUhtYWNIZWxwZXIodSksdT0ocD1pKS5saWIsWD11LldvcmRBcnJheSxMPXUuSGFzaGVyLHU9cC5hbGdvLGw9W10sdT11LlNIQTE9TC5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgWC5pbml0KFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5faGFzaC53b3JkcyxpPXJbMF0sbz1yWzFdLG49clsyXSxzPXJbM10sYz1yWzRdLGE9MDthPDgwO2ErKyl7YTwxNj9sW2FdPTB8dFtlK2FdOihoPWxbYS0zXV5sW2EtOF1ebFthLTE0XV5sW2EtMTZdLGxbYV09aDw8MXxoPj4+MzEpO3ZhciBoPShpPDw1fGk+Pj4yNykrYytsW2FdO2grPWE8MjA/MTUxODUwMDI0OSsobyZufH5vJnMpOmE8NDA/MTg1OTc3NTM5Mysob15uXnMpOmE8NjA/KG8mbnxvJnN8biZzKS0xODk0MDA3NTg4OihvXm5ecyktODk5NDk3NTE0LGM9cyxzPW4sbj1vPDwzMHxvPj4+MixvPWksaT1ofXJbMF09clswXStpfDAsclsxXT1yWzFdK298MCxyWzJdPXJbMl0rbnwwLHJbM109clszXStzfDAscls0XT1yWzRdK2N8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxyPTgqdGhpcy5fbkRhdGFCeXRlcyxpPTgqdC5zaWdCeXRlcztyZXR1cm4gZVtpPj4+NV18PTEyODw8MjQtaSUzMixlWzE0Kyg2NCtpPj4+OTw8NCldPU1hdGguZmxvb3Ioci80Mjk0OTY3Mjk2KSxlWzE1Kyg2NCtpPj4+OTw8NCldPXIsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PUwuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KSxwLlNIQTE9TC5fY3JlYXRlSGVscGVyKHUpLHAuSG1hY1NIQTE9TC5fY3JlYXRlSG1hY0hlbHBlcih1KTt2YXIgdzE9TWF0aCxwPWksazE9KHU9cC5saWIpLldvcmRBcnJheSx4MT11Lkhhc2hlcix1PXAuYWxnbyxiMT1bXSxtMT1bXTtmdW5jdGlvbiBTMSh0KXtyZXR1cm4gNDI5NDk2NzI5NioodC0oMHx0KSl8MH1mb3IodmFyIEExPTIsejE9MDt6MTw2NDspIWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT13MS5zcXJ0KHQpLHI9MjtyPD1lO3IrKylpZighKHQlcikpcmV0dXJuO3JldHVybiAxfShBMSl8fCh6MTw4JiYoYjFbejFdPVMxKHcxLnBvdyhBMSwuNSkpKSxtMVt6MV09UzEodzEucG93KEExLDEvMykpLHoxKyspLEExKys7dmFyIF89W10sdT11LlNIQTI1Nj14MS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgazEuaW5pdChiMS5zbGljZSgwKSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLGk9clswXSxvPXJbMV0sbj1yWzJdLHM9clszXSxjPXJbNF0sYT1yWzVdLGg9cls2XSxsPXJbN10sZj0wO2Y8NjQ7ZisrKXtmPDE2P19bZl09MHx0W2UrZl06KGQ9X1tmLTE1XSx1PV9bZi0yXSxfW2ZdPSgoZDw8MjV8ZD4+PjcpXihkPDwxNHxkPj4+MTgpXmQ+Pj4zKStfW2YtN10rKCh1PDwxNXx1Pj4+MTcpXih1PDwxM3x1Pj4+MTkpXnU+Pj4xMCkrX1tmLTE2XSk7dmFyIGQ9aSZvXmkmbl5vJm4sdT1sKygoYzw8MjZ8Yz4+PjYpXihjPDwyMXxjPj4+MTEpXihjPDw3fGM+Pj4yNSkpKyhjJmFefmMmaCkrbTFbZl0rX1tmXSxsPWgsaD1hLGE9YyxjPXMrdXwwLHM9bixuPW8sbz1pLGk9dSsoKChpPDwzMHxpPj4+MileKGk8PDE5fGk+Pj4xMyleKGk8PDEwfGk+Pj4yMikpK2QpfDB9clswXT1yWzBdK2l8MCxyWzFdPXJbMV0rb3wwLHJbMl09clsyXStufDAsclszXT1yWzNdK3N8MCxyWzRdPXJbNF0rY3wwLHJbNV09cls1XSthfDAscls2XT1yWzZdK2h8MCxyWzddPXJbN10rbHwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JldHVybiBlW2k+Pj41XXw9MTI4PDwyNC1pJTMyLGVbMTQrKDY0K2k+Pj45PDw0KV09dzEuZmxvb3Ioci80Mjk0OTY3Mjk2KSxlWzE1Kyg2NCtpPj4+OTw8NCldPXIsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PXgxLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSkscD0ocC5TSEEyNTY9eDEuX2NyZWF0ZUhlbHBlcih1KSxwLkhtYWNTSEEyNTY9eDEuX2NyZWF0ZUhtYWNIZWxwZXIodSksaj0ocD1pKS5saWIuV29yZEFycmF5LHU9cC5hbGdvLFQ9dS5TSEEyNTYsdT11LlNIQTIyND1ULmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBqLmluaXQoWzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD1ULl9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTQsdH19KSxwLlNIQTIyND1ULl9jcmVhdGVIZWxwZXIodSkscC5IbWFjU0hBMjI0PVQuX2NyZWF0ZUhtYWNIZWxwZXIodSksaSksSDE9cC5saWIuSGFzaGVyLHk9KHU9cC54NjQpLldvcmQsQzE9dS5Xb3JkQXJyYXksdT1wLmFsZ287ZnVuY3Rpb24gZygpe3JldHVybiB5LmNyZWF0ZS5hcHBseSh5LGFyZ3VtZW50cyl9Zm9yKHZhciBSMT1bZygxMTE2MzUyNDA4LDM2MDk3Njc0NTgpLGcoMTg5OTQ0NzQ0MSw2MDI4OTE3MjUpLGcoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxnKDM5MjEwMDk1NzMsMjE3MzI5NTU0OCksZyg5NjE5ODcxNjMsNDA4MTYyODQ3MiksZygxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLGcoMjQ1MzYzNTc0OCwyOTM3NjcxNTc5KSxnKDI4NzA3NjMyMjEsMzY2NDYwOTU2MCksZygzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLGcoMzEwNTk4NDAxLDExNjQ5OTY1NDIpLGcoNjA3MjI1Mjc4LDEzMjM2MTA3NjQpLGcoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxnKDE5MjUwNzgzODgsNDA2ODE4MjM4MyksZygyMTYyMDc4MjA2LDk5MTMzNjExMyksZygyNjE0ODg4MTAzLDYzMzgwMzMxNyksZygzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgpLGcoMzgzNTM5MDQwMSwyNjY2NjEzNDU4KSxnKDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxnKDI2NDM0NzA3OCwyMzQxMjYyNzczKSxnKDYwNDgwNzYyOCwyMDA3ODAwOTMzKSxnKDc3MDI1NTk4MywxNDk1OTkwOTAxKSxnKDEyNDkxNTAxMjIsMTg1NjQzMTIzNSksZygxNTU1MDgxNjkyLDMxNzUyMTgxMzIpLGcoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxnKDI1NTQyMjA4ODIsMzk5OTcxOTMzOSksZygyODIxODM0MzQ5LDc2Njc4NDAxNiksZygyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLGcoMzIxMDMxMzY3MSwzMjAzMzM3OTU2KSxnKDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiksZygzNTg0NTI4NzExLDI0NjY5NDg5MDEpLGcoMTEzOTI2OTkzLDM3NTgzMjYzODMpLGcoMzM4MjQxODk1LDE2ODcxNzkzNiksZyg2NjYzMDcyMDUsMTE4ODE3OTk2NCksZyg3NzM1Mjk5MTIsMTU0NjA0NTczNCksZygxMjk0NzU3MzcyLDE1MjI4MDU0ODUpLGcoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxnKDE2OTUxODM3MDAsMjM0MzUyNzM5MCksZygxOTg2NjYxMDUxLDEwMTQ0Nzc0ODApLGcoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxnKDI0NTY5NTYwMzcsMzQ0MDc3NjI3KSxnKDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCksZygyODIwMzAyNDExLDMxNTg0NTQyNzMpLGcoMzI1OTczMDgwMCwzNTA1OTUyNjU3KSxnKDMzNDU3NjQ3NzEsMTA2MjE3MDA4KSxnKDM1MTYwNjU4MTcsMzYwNjAwODM0NCksZygzNjAwMzUyODA0LDE0MzI3MjU3NzYpLGcoNDA5NDU3MTkwOSwxNDY3MDMxNTk0KSxnKDI3NTQyMzM0NCw4NTExNjk3MjApLGcoNDMwMjI3NzM0LDMxMDA4MjM3NTIpLGcoNTA2OTQ4NjE2LDEzNjMyNTgxOTUpLGcoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLGcoODgzOTk3ODc3LDM3ODUwNTAyODApLGcoOTU4MTM5NTcxLDMzMTgzMDc0MjcpLGcoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxnKDE1MzcwMDIwNjMsMjAwMzAzNDk5NSksZygxNzQ3ODczNzc5LDM2MDIwMzY4OTkpLGcoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxnKDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCksZygyMjI3NzMwNDUyLDI3MTY5MDQzMDYpLGcoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLGcoMjQyODQzNjQ3NCw1OTM2OTgzNDQpLGcoMjc1NjczNDE4NywzNzMzMTEwMjQ5KSxnKDMyMDQwMzE0NzksMjk5OTM1MTU3MyksZygzMzI5MzI1Mjk4LDM4MTU5MjA0MjcpLGcoMzM5MTU2OTYxNCwzOTI4MzgzOTAwKSxnKDM1MTUyNjcyNzEsNTY2MjgwNzExKSxnKDM5NDAxODc2MDYsMzQ1NDA2OTUzNCksZyg0MTE4NjMwMjcxLDQwMDAyMzk5OTIpLGcoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLGcoMTc0MjkyNDIxLDI3MzEwNTUyNzApLGcoMjg5MzgwMzU2LDMyMDM5OTMwMDYpLGcoNDYwMzkzMjY5LDMyMDYyMDMxNSksZyg2ODU0NzE3MzMsNTg3NDk2ODM2KSxnKDg1MjE0Mjk3MSwxMDg2NzkyODUxKSxnKDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxnKDExMjYwMDA1ODAsMjYxODI5NzY3NiksZygxMjg4MDMzNDcwLDM0MDk4NTUxNTgpLGcoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxnKDE2MDcxNjc5MTUsOTg3MTY3NDY4KSxnKDE4MTY0MDIzMTYsMTI0NjE4OTU5MSldLEQxPVtdLEUxPTA7RTE8ODA7RTErKylEMVtFMV09ZygpO3U9dS5TSEE1MTI9SDEuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IEMxLmluaXQoW25ldyB5LmluaXQoMTc3OTAzMzcwMyw0MDg5MjM1NzIwKSxuZXcgeS5pbml0KDMxNDQxMzQyNzcsMjIyNzg3MzU5NSksbmV3IHkuaW5pdCgxMDEzOTA0MjQyLDQyNzExNzU3MjMpLG5ldyB5LmluaXQoMjc3MzQ4MDc2MiwxNTk1NzUwMTI5KSxuZXcgeS5pbml0KDEzNTk4OTMxMTksMjkxNzU2NTEzNyksbmV3IHkuaW5pdCgyNjAwODIyOTI0LDcyNTUxMTE5OSksbmV3IHkuaW5pdCg1Mjg3MzQ2MzUsNDIxNTM4OTU0NyksbmV3IHkuaW5pdCgxNTQxNDU5MjI1LDMyNzAzMzIwOSldKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKFcsTyl7Zm9yKHZhciB0PXRoaXMuX2hhc2gud29yZHMsZT10WzBdLHI9dFsxXSxpPXRbMl0sbz10WzNdLG49dFs0XSxzPXRbNV0sYz10WzZdLHQ9dFs3XSxJPWUuaGlnaCxhPWUubG93LFU9ci5oaWdoLGg9ci5sb3csSz1pLmhpZ2gsbD1pLmxvdyxYPW8uaGlnaCxmPW8ubG93LEw9bi5oaWdoLGQ9bi5sb3csaj1zLmhpZ2gsdT1zLmxvdyxUPWMuaGlnaCxwPWMubG93LE49dC5oaWdoLF89dC5sb3cseT1JLGc9YSx2PVUsQj1oLHc9SyxrPWwscT1YLHg9ZixiPUwsbT1kLFo9aixTPXUsVj1ULEc9cCxKPU4sUT1fLEE9MDtBPDgwO0ErKyl2YXIgeixILEM9RDFbQV0sUj0oQTwxNj8oSD1DLmhpZ2g9MHxXW08rMipBXSx6PUMubG93PTB8V1tPKzIqQSsxXSk6KEY9KFA9RDFbQS0xNV0pLmhpZ2gsUD1QLmxvdyxNPShFPUQxW0EtMl0pLmhpZ2gsRT1FLmxvdyxEPShSPUQxW0EtN10pLmhpZ2gsUj1SLmxvdywkPShZPUQxW0EtMTZdKS5oaWdoLEg9KEg9KChGPj4+MXxQPDwzMSleKEY+Pj44fFA8PDI0KV5GPj4+NykrRCsoKHo9KEQ9KFA+Pj4xfEY8PDMxKV4oUD4+Pjh8Rjw8MjQpXihQPj4+N3xGPDwyNSkpK1IpPj4+MDxEPj4+MD8xOjApKSsoKE0+Pj4xOXxFPDwxMyleKE08PDN8RT4+PjI5KV5NPj4+NikrKCh6Kz1QPShFPj4+MTl8TTw8MTMpXihFPDwzfE0+Pj4yOSleKEU+Pj42fE08PDI2KSk+Pj4wPFA+Pj4wPzE6MCkseis9Rj1ZLmxvdyxDLmhpZ2g9SD1IKyQrKHo+Pj4wPEY+Pj4wPzE6MCksQy5sb3c9eiksYiZaXn5iJlYpLEQ9bSZTXn5tJkcsRT15JnZeeSZ3XnYmdyxNPShnPj4+Mjh8eTw8NCleKGc8PDMwfHk+Pj4yKV4oZzw8MjV8eT4+PjcpLFA9UjFbQV0sWT1QLmhpZ2gsJD1QLmxvdyxGPVErKChtPj4+MTR8Yjw8MTgpXihtPj4+MTh8Yjw8MTQpXihtPDwyM3xiPj4+OSkpLEM9SisoKGI+Pj4xNHxtPDwxOCleKGI+Pj4xOHxtPDwxNCleKGI8PDIzfG0+Pj45KSkrKEY+Pj4wPFE+Pj4wPzE6MCksdDE9TSsoZyZCXmcma15CJmspLEo9VixRPUcsVj1aLEc9UyxaPWIsUz1tLGI9cSsoQz1DK1IrKChGPUYrRCk+Pj4wPEQ+Pj4wPzE6MCkrWSsoKEY9RiskKT4+PjA8JD4+PjA/MTowKStIKygoRj1GK3opPj4+MDx6Pj4+MD8xOjApKSsoKG09eCtGfDApPj4+MDx4Pj4+MD8xOjApfDAscT13LHg9ayx3PXYsaz1CLHY9eSxCPWcseT1DKygoKHk+Pj4yOHxnPDw0KV4oeTw8MzB8Zz4+PjIpXih5PDwyNXxnPj4+NykpK0UrKHQxPj4+MDxNPj4+MD8xOjApKSsoKGc9Rit0MXwwKT4+PjA8Rj4+PjA/MTowKXwwO2E9ZS5sb3c9YStnLGUuaGlnaD1JK3krKGE+Pj4wPGc+Pj4wPzE6MCksaD1yLmxvdz1oK0Isci5oaWdoPVUrdisoaD4+PjA8Qj4+PjA/MTowKSxsPWkubG93PWwrayxpLmhpZ2g9Syt3KyhsPj4+MDxrPj4+MD8xOjApLGY9by5sb3c9Zit4LG8uaGlnaD1YK3ErKGY+Pj4wPHg+Pj4wPzE6MCksZD1uLmxvdz1kK20sbi5oaWdoPUwrYisoZD4+PjA8bT4+PjA/MTowKSx1PXMubG93PXUrUyxzLmhpZ2g9aitaKyh1Pj4+MDxTPj4+MD8xOjApLHA9Yy5sb3c9cCtHLGMuaGlnaD1UK1YrKHA+Pj4wPEc+Pj4wPzE6MCksXz10Lmxvdz1fK1EsdC5oaWdoPU4rSisoXz4+PjA8UT4+PjA/MTowKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxyPTgqdGhpcy5fbkRhdGFCeXRlcyxpPTgqdC5zaWdCeXRlcztyZXR1cm4gZVtpPj4+NV18PTEyODw8MjQtaSUzMixlWzMwKygxMjgraT4+PjEwPDw1KV09TWF0aC5mbG9vcihyLzQyOTQ5NjcyOTYpLGVbMzErKDEyOCtpPj4+MTA8PDUpXT1yLHQuc2lnQnl0ZXM9NCplLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCksdGhpcy5faGFzaC50b1gzMigpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PUgxLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9LGJsb2NrU2l6ZTozMn0pLHAuU0hBNTEyPUgxLl9jcmVhdGVIZWxwZXIodSkscC5IbWFjU0hBNTEyPUgxLl9jcmVhdGVIbWFjSGVscGVyKHUpLHU9KHA9aSkueDY0LHQ9dS5Xb3JkLE49dS5Xb3JkQXJyYXksdT1wLmFsZ28scT11LlNIQTUxMix1PXUuU0hBMzg0PXEuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IE4uaW5pdChbbmV3IHQuaW5pdCgzNDE4MDcwMzY1LDMyMzgzNzEwMzIpLG5ldyB0LmluaXQoMTY1NDI3MDI1MCw5MTQxNTA2NjMpLG5ldyB0LmluaXQoMjQzODUyOTM3MCw4MTI3MDI5OTkpLG5ldyB0LmluaXQoMzU1NDYyMzYwLDQxNDQ5MTI2OTcpLG5ldyB0LmluaXQoMTczMTQwNTQxNSw0MjkwNzc1ODU3KSxuZXcgdC5pbml0KDIzOTQxODAyMzEsMTc1MDYwMzAyNSksbmV3IHQuaW5pdCgzNjc1MDA4NTI1LDE2OTQwNzY4MzkpLG5ldyB0LmluaXQoMTIwMzA2MjgxMywzMjA0MDc1NDI4KV0pfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXEuX2RvRmluYWxpemUuY2FsbCh0aGlzKTtyZXR1cm4gdC5zaWdCeXRlcy09MTYsdH19KSxwLlNIQTM4ND1xLl9jcmVhdGVIZWxwZXIodSkscC5IbWFjU0hBMzg0PXEuX2NyZWF0ZUhtYWNIZWxwZXIodSk7Zm9yKHZhciBNMT1NYXRoLHA9aSxQMT0odT1wLmxpYikuV29yZEFycmF5LEYxPXUuSGFzaGVyLFcxPXAueDY0LldvcmQsdT1wLmFsZ28sTzE9W10sSTE9W10sVTE9W10sdj0xLEI9MCxLMT0wO0sxPDI0O0sxKyspe08xW3YrNSpCXT0oSzErMSkqKEsxKzIpLzIlNjQ7dmFyIFgxPSgyKnYrMypCKSU1O3Y9QiU1LEI9WDF9Zm9yKHY9MDt2PDU7disrKWZvcihCPTA7Qjw1O0IrKylJMVt2KzUqQl09QisoMip2KzMqQiklNSo1O2Zvcih2YXIgTDE9MSxqMT0wO2oxPDI0O2oxKyspe2Zvcih2YXIgVDEsTjE9MCxxMT0wLFoxPTA7WjE8NztaMSsrKTEmTDEmJigoVDE9KDE8PFoxKS0xKTwzMj9xMV49MTw8VDE6TjFePTE8PFQxLTMyKSwxMjgmTDE/TDE9TDE8PDFeMTEzOkwxPDw9MTtVMVtqMV09VzEuY3JlYXRlKE4xLHExKX1mb3IodmFyIEQ9W10sVjE9MDtWMTwyNTtWMSsrKURbVjFdPVcxLmNyZWF0ZSgpO2Z1bmN0aW9uIEcxKHQsZSxyKXtyZXR1cm4gdCZlfH50JnJ9ZnVuY3Rpb24gSjEodCxlLHIpe3JldHVybiB0JnJ8ZSZ+cn1mdW5jdGlvbiBRMSh0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfWZ1bmN0aW9uIFkxKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9mMTpvfWZ1bmN0aW9uICQxKHQsZSxyKXt2YXIgaSxvPXRoaXMuX2l2O28/KGk9byx0aGlzLl9pdj12b2lkIDApOmk9dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgbj0wO248cjtuKyspdFtlK25dXj1pW25dfWZ1bmN0aW9uIHQyKHQsZSxyLGkpe3ZhciBvLG49dGhpcy5faXY7bj8obz1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk6bz10aGlzLl9wcmV2QmxvY2ssaS5lbmNyeXB0QmxvY2sobywwKTtmb3IodmFyIHM9MDtzPHI7cysrKXRbZStzXV49b1tzXX1mdW5jdGlvbiBlMih0KXt2YXIgZSxyLGk7cmV0dXJuIDI1NT09KHQ+PjI0JjI1NSk/KHI9dD4+OCYyNTUsaT0yNTUmdCwyNTU9PT0oZT10Pj4xNiYyNTUpPyhlPTAsMjU1PT09cj8ocj0wLDI1NT09PWk/aT0wOisraSk6KytyKTorK2UsdD0wLHQ9KHQrPWU8PDE2KSsocjw8OCkraSk6dCs9MTw8MjQsdH11PXUuU0hBMz1GMS5leHRlbmQoe2NmZzpGMS5jZmcuZXh0ZW5kKHtvdXRwdXRMZW5ndGg6NTEyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fc3RhdGU9W10sZT0wO2U8MjU7ZSsrKXRbZV09bmV3IFcxLmluaXQ7dGhpcy5ibG9ja1NpemU9KDE2MDAtMip0aGlzLmNmZy5vdXRwdXRMZW5ndGgpLzMyfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5fc3RhdGUsaT10aGlzLmJsb2NrU2l6ZS8yLG89MDtvPGk7bysrKXt2YXIgbj10W2UrMipvXSxzPXRbZSsyKm8rMV0sbj0xNjcxMTkzNSYobjw8OHxuPj4+MjQpfDQyNzgyNTUzNjAmKG48PDI0fG4+Pj44KTsoeD1yW29dKS5oaWdoXj0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSx4Lmxvd149bn1mb3IodmFyIGM9MDtjPDI0O2MrKyl7Zm9yKHZhciBhPTA7YTw1O2ErKyl7Zm9yKHZhciBoPTAsbD0wLGY9MDtmPDU7ZisrKWhePSh4PXJbYSs1KmZdKS5oaWdoLGxePXgubG93O3ZhciBkPURbYV07ZC5oaWdoPWgsZC5sb3c9bH1mb3IoYT0wO2E8NTthKyspZm9yKHZhciB1PURbKGErNCklNV0scD1EWyhhKzEpJTVdLF89cC5oaWdoLHA9cC5sb3csaD11LmhpZ2heKF88PDF8cD4+PjMxKSxsPXUubG93XihwPDwxfF8+Pj4zMSksZj0wO2Y8NTtmKyspKHg9clthKzUqZl0pLmhpZ2hePWgseC5sb3dePWw7Zm9yKHZhciB5PTE7eTwyNTt5Kyspe3ZhciBnPSh4PXJbeV0pLmhpZ2gsdj14LmxvdyxCPU8xW3ldLGc9KGw9QjwzMj8oaD1nPDxCfHY+Pj4zMi1CLHY8PEJ8Zz4+PjMyLUIpOihoPXY8PEItMzJ8Zz4+PjY0LUIsZzw8Qi0zMnx2Pj4+NjQtQiksRFtJMVt5XV0pO2cuaGlnaD1oLGcubG93PWx9dmFyIHc9RFswXSxrPXJbMF07dy5oaWdoPWsuaGlnaCx3Lmxvdz1rLmxvdztmb3IoYT0wO2E8NTthKyspZm9yKGY9MDtmPDU7ZisrKXt2YXIgeD1yW3k9YSs1KmZdLGI9RFt5XSxtPURbKGErMSklNSs1KmZdLFM9RFsoYSsyKSU1KzUqZl07eC5oaWdoPWIuaGlnaF5+bS5oaWdoJlMuaGlnaCx4Lmxvdz1iLmxvd15+bS5sb3cmUy5sb3d9eD1yWzBdLHc9VTFbY107eC5oaWdoXj13LmhpZ2gseC5sb3dePXcubG93fX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMscj0odGhpcy5fbkRhdGFCeXRlcyw4KnQuc2lnQnl0ZXMpLGk9MzIqdGhpcy5ibG9ja1NpemUsbz0oZVtyPj4+NV18PTE8PDI0LXIlMzIsZVsoTTEuY2VpbCgoMStyKS9pKSppPj4+NSktMV18PTEyOCx0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX3N0YXRlKSxyPXRoaXMuY2ZnLm91dHB1dExlbmd0aC84LG49ci84LHM9W10sYz0wO2M8bjtjKyspe3ZhciBhPW9bY10saD1hLmhpZ2gsYT1hLmxvdyxoPTE2NzExOTM1JihoPDw4fGg+Pj4yNCl8NDI3ODI1NTM2MCYoaDw8MjR8aD4+PjgpO3MucHVzaCgxNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KSkscy5wdXNoKGgpfXJldHVybiBuZXcgUDEuaW5pdChzLHIpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1GMS5jbG9uZS5jYWxsKHRoaXMpLGU9dC5fc3RhdGU9dGhpcy5fc3RhdGUuc2xpY2UoMCkscj0wO3I8MjU7cisrKWVbcl09ZVtyXS5jbG9uZSgpO3JldHVybiB0fX0pLHAuU0hBMz1GMS5fY3JlYXRlSGVscGVyKHUpLHAuSG1hY1NIQTM9RjEuX2NyZWF0ZUhtYWNIZWxwZXIodSksTWF0aCx1PShwPWkpLmxpYixlPXUuV29yZEFycmF5LFo9dS5IYXNoZXIsdT1wLmFsZ28sVj1lLmNyZWF0ZShbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSksRz1lLmNyZWF0ZShbNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSksSj1lLmNyZWF0ZShbMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0pLFE9ZS5jcmVhdGUoWzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdKSxZPWUuY3JlYXRlKFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSwkPWUuY3JlYXRlKFsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdKSx1PXUuUklQRU1EMTYwPVouZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9ZS5jcmVhdGUoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MTY7cisrKXt2YXIgaT1lK3Isbz10W2ldO3RbaV09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9Zm9yKHZhciBuLHMsYyxhLGgsbCxmPXRoaXMuX2hhc2gud29yZHMsZD1ZLndvcmRzLHU9JC53b3JkcyxwPVYud29yZHMsXz1HLndvcmRzLHk9Si53b3JkcyxnPVEud29yZHMsdj1uPWZbMF0sQj1zPWZbMV0sdz1jPWZbMl0saz1hPWZbM10seD1oPWZbNF0scj0wO3I8ODA7cis9MSlsPShsPVExKGw9KGw9bit0W2UrcFtyXV18MCkrKHI8MTY/KHNeY15hKStkWzBdOnI8MzI/RzEocyxjLGEpK2RbMV06cjw0OD8oKHN8fmMpXmEpK2RbMl06cjw2ND9KMShzLGMsYSkrZFszXTooc14oY3x+YSkpK2RbNF0pfDAseVtyXSkpK2h8MCxuPWgsaD1hLGE9UTEoYywxMCksYz1zLHM9bCxsPShsPVExKGw9KGw9dit0W2UrX1tyXV18MCkrKHI8MTY/KEJeKHd8fmspKSt1WzBdOnI8MzI/SjEoQix3LGspK3VbMV06cjw0OD8oKEJ8fncpXmspK3VbMl06cjw2ND9HMShCLHcsaykrdVszXTooQl53XmspK3VbNF0pfDAsZ1tyXSkpK3h8MCx2PXgseD1rLGs9UTEodywxMCksdz1CLEI9bDtsPWZbMV0rYytrfDAsZlsxXT1mWzJdK2EreHwwLGZbMl09ZlszXStoK3Z8MCxmWzNdPWZbNF0rbitCfDAsZls0XT1mWzBdK3Mrd3wwLGZbMF09bH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMscj04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXMsaT0oZVtpPj4+NV18PTEyODw8MjQtaSUzMixlWzE0Kyg2NCtpPj4+OTw8NCldPTE2NzExOTM1JihyPDw4fHI+Pj4yNCl8NDI3ODI1NTM2MCYocjw8MjR8cj4+PjgpLHQuc2lnQnl0ZXM9NCooZS5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2gpLG89aS53b3JkcyxuPTA7bjw1O24rKyl7dmFyIHM9b1tuXTtvW25dPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpfXJldHVybiBpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PVouY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KSxwLlJJUEVNRDE2MD1aLl9jcmVhdGVIZWxwZXIodSkscC5IbWFjUklQRU1EMTYwPVouX2NyZWF0ZUhtYWNIZWxwZXIodSksdT0ocD1pKS5saWIuQmFzZSx0MT1wLmVuYy5VdGY4LHAuYWxnby5ITUFDPXUuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLl9oYXNoZXI9bmV3IHQuaW5pdCwic3RyaW5nIj09dHlwZW9mIGUmJihlPXQxLnBhcnNlKGUpKTtmb3IodmFyIHI9dC5ibG9ja1NpemUsaT00KnIsdD0oKGU9ZS5zaWdCeXRlcz5pP3QuZmluYWxpemUoZSk6ZSkuY2xhbXAoKSx0aGlzLl9vS2V5PWUuY2xvbmUoKSksZT10aGlzLl9pS2V5PWUuY2xvbmUoKSxvPXQud29yZHMsbj1lLndvcmRzLHM9MDtzPHI7cysrKW9bc11ePTE1NDk1NTY4MjgsbltzXV49OTA5NTIyNDg2O3Quc2lnQnl0ZXM9ZS5zaWdCeXRlcz1pLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9oYXNoZXI7dC5yZXNldCgpLHQudXBkYXRlKHRoaXMuX2lLZXkpfSx1cGRhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhc2hlci51cGRhdGUodCksdGhpc30sZmluYWxpemU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5faGFzaGVyLHQ9ZS5maW5hbGl6ZSh0KTtyZXR1cm4gZS5yZXNldCgpLGUuZmluYWxpemUodGhpcy5fb0tleS5jbG9uZSgpLmNvbmNhdCh0KSl9fSksdT0ocD1pKS5saWIsdz11LkJhc2UsZTE9dS5Xb3JkQXJyYXksdT1wLmFsZ28sUD11LlNIQTI1NixyMT11LkhNQUMsaTE9dS5QQktERjI9dy5leHRlbmQoe2NmZzp3LmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjpQLGl0ZXJhdGlvbnM6MjVlNH0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuY2ZnLGk9cjEuY3JlYXRlKHIuaGFzaGVyLHQpLG89ZTEuY3JlYXRlKCksbj1lMS5jcmVhdGUoWzFdKSxzPW8ud29yZHMsYz1uLndvcmRzLGE9ci5rZXlTaXplLGg9ci5pdGVyYXRpb25zO3MubGVuZ3RoPGE7KXtmb3IodmFyIGw9aS51cGRhdGUoZSkuZmluYWxpemUobiksZj0oaS5yZXNldCgpLGwud29yZHMpLGQ9Zi5sZW5ndGgsdT1sLHA9MTtwPGg7cCsrKXt1PWkuZmluYWxpemUodSksaS5yZXNldCgpO2Zvcih2YXIgXz11LndvcmRzLHk9MDt5PGQ7eSsrKWZbeV1ePV9beV19by5jb25jYXQobCksY1swXSsrfXJldHVybiBvLnNpZ0J5dGVzPTQqYSxvfX0pLHAuUEJLREYyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaTEuY3JlYXRlKHIpLmNvbXB1dGUodCxlKX0sdz0odT1pKS5saWIsUD13LkJhc2UsbzE9dy5Xb3JkQXJyYXksdz11LmFsZ28scD13Lk1ENSxuMT13LkV2cEtERj1QLmV4dGVuZCh7Y2ZnOlAuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnAsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsaT10aGlzLmNmZyxvPWkuaGFzaGVyLmNyZWF0ZSgpLG49bzEuY3JlYXRlKCkscz1uLndvcmRzLGM9aS5rZXlTaXplLGE9aS5pdGVyYXRpb25zO3MubGVuZ3RoPGM7KXtyJiZvLnVwZGF0ZShyKSxyPW8udXBkYXRlKHQpLmZpbmFsaXplKGUpLG8ucmVzZXQoKTtmb3IodmFyIGg9MTtoPGE7aCsrKXI9by5maW5hbGl6ZShyKSxvLnJlc2V0KCk7bi5jb25jYXQocil9cmV0dXJuIG4uc2lnQnl0ZXM9NCpjLG59fSksdS5FdnBLREY9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuMS5jcmVhdGUocikuY29tcHV0ZSh0LGUpfSxpLmxpYi5DaXBoZXJ8fChQPSh3PWkpLmxpYixwPVAuQmFzZSxzPVAuV29yZEFycmF5LHMxPVAuQnVmZmVyZWRCbG9ja0FsZ29yaXRobSwodT13LmVuYykuVXRmOCxjMT11LkJhc2U2NCxhMT13LmFsZ28uRXZwS0RGLGgxPVAuQ2lwaGVyPXMxLmV4dGVuZCh7Y2ZnOnAuZXh0ZW5kKCksY3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0VOQ19YRk9STV9NT0RFLHQsZSl9LGNyZWF0ZURlY3J5cHRvcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9ERUNfWEZPUk1fTU9ERSx0LGUpfSxpbml0OmZ1bmN0aW9uKHQsZSxyKXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQociksdGhpcy5feGZvcm1Nb2RlPXQsdGhpcy5fa2V5PWUsdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3MxLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSxwcm9jZXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdGhpcy5fYXBwZW5kKHQpLHRoaXMuX2RvRmluYWxpemUoKX0sa2V5U2l6ZTo0LGl2U2l6ZTo0LF9FTkNfWEZPUk1fTU9ERToxLF9ERUNfWEZPUk1fTU9ERToyLF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oaSl7cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBZMShlKS5lbmNyeXB0KGksdCxlLHIpfSxkZWNyeXB0OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gWTEoZSkuZGVjcnlwdChpLHQsZSxyKX19fX0pLFAuU3RyZWFtQ2lwaGVyPWgxLmV4dGVuZCh7X2RvRmluYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvY2VzcyghMCl9LGJsb2NrU2l6ZToxfSksdT13Lm1vZGU9e30scj1QLkJsb2NrQ2lwaGVyTW9kZT1wLmV4dGVuZCh7Y3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZSh0LGUpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5EZWNyeXB0b3IuY3JlYXRlKHQsZSl9LGluaXQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9jaXBoZXI9dCx0aGlzLl9pdj1lfX0pLHI9dS5DQkM9KCh1PXIuZXh0ZW5kKCkpLkVuY3J5cHRvcj11LmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2lwaGVyLGk9ci5ibG9ja1NpemU7JDEuY2FsbCh0aGlzLHQsZSxpKSxyLmVuY3J5cHRCbG9jayh0LGUpLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKGUsZStpKX19KSx1LkRlY3J5cHRvcj11LmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2lwaGVyLGk9ci5ibG9ja1NpemUsbz10LnNsaWNlKGUsZStpKTtyLmRlY3J5cHRCbG9jayh0LGUpLCQxLmNhbGwodGhpcyx0LGUsaSksdGhpcy5fcHJldkJsb2NrPW99fSksdSksdT0ody5wYWQ9e30pLlBrY3M3PXtwYWQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGU9NCplLHI9ZS10LnNpZ0J5dGVzJWUsaT1yPDwyNHxyPDwxNnxyPDw4fHIsbz1bXSxuPTA7bjxyO24rPTQpby5wdXNoKGkpO2U9cy5jcmVhdGUobyxyKTt0LmNvbmNhdChlKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIGU9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09ZX19LFAuQmxvY2tDaXBoZXI9aDEuZXh0ZW5kKHtjZmc6aDEuY2ZnLmV4dGVuZCh7bW9kZTpyLHBhZGRpbmc6dX0pLHJlc2V0OmZ1bmN0aW9uKCl7aDEucmVzZXQuY2FsbCh0aGlzKTt2YXIgdCxlPXRoaXMuY2ZnLHI9ZS5pdixlPWUubW9kZTt0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFP3Q9ZS5jcmVhdGVFbmNyeXB0b3I6KHQ9ZS5jcmVhdGVEZWNyeXB0b3IsdGhpcy5fbWluQnVmZmVyU2l6ZT0xKSx0aGlzLl9tb2RlJiZ0aGlzLl9tb2RlLl9fY3JlYXRvcj09dD90aGlzLl9tb2RlLmluaXQodGhpcyxyJiZyLndvcmRzKToodGhpcy5fbW9kZT10LmNhbGwoZSx0aGlzLHImJnIud29yZHMpLHRoaXMuX21vZGUuX19jcmVhdG9yPXQpfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9tb2RlLnByb2Nlc3NCbG9jayh0LGUpfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5jZmcucGFkZGluZztyZXR1cm4gdGhpcy5feGZvcm1Nb2RlPT10aGlzLl9FTkNfWEZPUk1fTU9ERT8oZS5wYWQodGhpcy5fZGF0YSx0aGlzLmJsb2NrU2l6ZSksdD10aGlzLl9wcm9jZXNzKCEwKSk6KHQ9dGhpcy5fcHJvY2VzcyghMCksZS51bnBhZCh0KSksdH0sYmxvY2tTaXplOjR9KSxsMT1QLkNpcGhlclBhcmFtcz1wLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0KXt0aGlzLm1peEluKHQpfSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8dGhpcy5mb3JtYXR0ZXIpLnN0cmluZ2lmeSh0aGlzKX19KSxyPSh3LmZvcm1hdD17fSkuT3BlblNTTD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY2lwaGVydGV4dCx0PXQuc2FsdCx0PXQ/cy5jcmVhdGUoWzEzOTg4OTM2ODQsMTcwMTA3NjgzMV0pLmNvbmNhdCh0KS5jb25jYXQoZSk6ZTtyZXR1cm4gdC50b1N0cmluZyhjMSl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlLHQ9YzEucGFyc2UodCkscj10LndvcmRzO3JldHVybiAxMzk4ODkzNjg0PT1yWzBdJiYxNzAxMDc2ODMxPT1yWzFdJiYoZT1zLmNyZWF0ZShyLnNsaWNlKDIsNCkpLHIuc3BsaWNlKDAsNCksdC5zaWdCeXRlcy09MTYpLGwxLmNyZWF0ZSh7Y2lwaGVydGV4dDp0LHNhbHQ6ZX0pfX0sbz1QLlNlcmlhbGl6YWJsZUNpcGhlcj1wLmV4dGVuZCh7Y2ZnOnAuZXh0ZW5kKHtmb3JtYXQ6cn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxlLHIsaSl7aT10aGlzLmNmZy5leHRlbmQoaSk7dmFyIG89dC5jcmVhdGVFbmNyeXB0b3IocixpKSxlPW8uZmluYWxpemUoZSksbz1vLmNmZztyZXR1cm4gbDEuY3JlYXRlKHtjaXBoZXJ0ZXh0OmUsa2V5OnIsaXY6by5pdixhbGdvcml0aG06dCxtb2RlOm8ubW9kZSxwYWRkaW5nOm8ucGFkZGluZyxibG9ja1NpemU6dC5ibG9ja1NpemUsZm9ybWF0dGVyOmkuZm9ybWF0fSl9LGRlY3J5cHQ6ZnVuY3Rpb24odCxlLHIsaSl7cmV0dXJuIGk9dGhpcy5jZmcuZXh0ZW5kKGkpLGU9dGhpcy5fcGFyc2UoZSxpLmZvcm1hdCksdC5jcmVhdGVEZWNyeXB0b3IocixpKS5maW5hbGl6ZShlLmNpcGhlcnRleHQpfSxfcGFyc2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/ZS5wYXJzZSh0LHRoaXMpOnR9fSksdT0ody5rZGY9e30pLk9wZW5TU0w9e2V4ZWN1dGU6ZnVuY3Rpb24odCxlLHIsaSxvKXtpPWl8fHMucmFuZG9tKDgpLG89KG8/YTEuY3JlYXRlKHtrZXlTaXplOmUrcixoYXNoZXI6b30pOmExLmNyZWF0ZSh7a2V5U2l6ZTplK3J9KSkuY29tcHV0ZSh0LGkpO3Q9cy5jcmVhdGUoby53b3Jkcy5zbGljZShlKSw0KnIpO3JldHVybiBvLnNpZ0J5dGVzPTQqZSxsMS5jcmVhdGUoe2tleTpvLGl2OnQsc2FsdDppfSl9fSxmMT1QLlBhc3N3b3JkQmFzZWRDaXBoZXI9by5leHRlbmQoe2NmZzpvLmNmZy5leHRlbmQoe2tkZjp1fSksZW5jcnlwdDpmdW5jdGlvbih0LGUscixpKXtyPShpPXRoaXMuY2ZnLmV4dGVuZChpKSkua2RmLmV4ZWN1dGUocix0LmtleVNpemUsdC5pdlNpemUsaS5zYWx0LGkuaGFzaGVyKSxpLml2PXIuaXYsdD1vLmVuY3J5cHQuY2FsbCh0aGlzLHQsZSxyLmtleSxpKTtyZXR1cm4gdC5taXhJbihyKSx0fSxkZWNyeXB0OmZ1bmN0aW9uKHQsZSxyLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpLGU9dGhpcy5fcGFyc2UoZSxpLmZvcm1hdCk7cj1pLmtkZi5leGVjdXRlKHIsdC5rZXlTaXplLHQuaXZTaXplLGUuc2FsdCxpLmhhc2hlcik7cmV0dXJuIGkuaXY9ci5pdixvLmRlY3J5cHQuY2FsbCh0aGlzLHQsZSxyLmtleSxpKX19KSksaS5tb2RlLkNGQj0oKHA9aS5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpKS5FbmNyeXB0b3I9cC5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2NpcGhlcixpPXIuYmxvY2tTaXplO3QyLmNhbGwodGhpcyx0LGUsaSxyKSx0aGlzLl9wcmV2QmxvY2s9dC5zbGljZShlLGUraSl9fSkscC5EZWNyeXB0b3I9cC5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2NpcGhlcixpPXIuYmxvY2tTaXplLG89dC5zbGljZShlLGUraSk7dDIuY2FsbCh0aGlzLHQsZSxpLHIpLHRoaXMuX3ByZXZCbG9jaz1vfX0pLHApLGkubW9kZS5DVFI9KHI9aS5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLHc9ci5FbmNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2NpcGhlcixpPXIuYmxvY2tTaXplLG89dGhpcy5faXYsbj10aGlzLl9jb3VudGVyLHM9KG8mJihuPXRoaXMuX2NvdW50ZXI9by5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLG4uc2xpY2UoMCkpO3IuZW5jcnlwdEJsb2NrKHMsMCksbltpLTFdPW5baS0xXSsxfDA7Zm9yKHZhciBjPTA7YzxpO2MrKyl0W2UrY11ePXNbY119fSksci5EZWNyeXB0b3I9dyxyKSxpLm1vZGUuQ1RSR2xhZG1hbj0oUD1pLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksdT1QLkVuY3J5cHRvcj1QLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2lwaGVyLGk9ci5ibG9ja1NpemUsbz10aGlzLl9pdixuPXRoaXMuX2NvdW50ZXIscz0obyYmKG49dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksMD09PSgobz1uKVswXT1lMihvWzBdKSkmJihvWzFdPWUyKG9bMV0pKSxuLnNsaWNlKDApKTtyLmVuY3J5cHRCbG9jayhzLDApO2Zvcih2YXIgYz0wO2M8aTtjKyspdFtlK2NdXj1zW2NdfX0pLFAuRGVjcnlwdG9yPXUsUCksaS5tb2RlLk9GQj0ocD1pLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksdz1wLkVuY3J5cHRvcj1wLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2lwaGVyLGk9ci5ibG9ja1NpemUsbz10aGlzLl9pdixuPXRoaXMuX2tleXN0cmVhbTtvJiYobj10aGlzLl9rZXlzdHJlYW09by5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLHIuZW5jcnlwdEJsb2NrKG4sMCk7Zm9yKHZhciBzPTA7czxpO3MrKyl0W2Urc11ePW5bc119fSkscC5EZWNyeXB0b3I9dyxwKSxpLm1vZGUuRUNCPSgodT1pLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCkpLkVuY3J5cHRvcj11LmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0LGUpfX0pLHUuRGVjcnlwdG9yPXUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9jaXBoZXIuZGVjcnlwdEJsb2NrKHQsZSl9fSksdSksaS5wYWQuQW5zaVg5MjM9e3BhZDpmdW5jdGlvbih0LGUpe3ZhciByPXQuc2lnQnl0ZXMsZT00KmUsZT1lLXIlZSxyPXIrZS0xO3QuY2xhbXAoKSx0LndvcmRzW3I+Pj4yXXw9ZTw8MjQtciU0KjgsdC5zaWdCeXRlcys9ZX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIGU9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09ZX19LGkucGFkLklzbzEwMTI2PXtwYWQ6ZnVuY3Rpb24odCxlKXtlKj00LGUtPXQuc2lnQnl0ZXMlZTt0LmNvbmNhdChpLmxpYi5Xb3JkQXJyYXkucmFuZG9tKGUtMSkpLmNvbmNhdChpLmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFtlPDwyNF0sMSkpfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgZT0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1lfX0saS5wYWQuSXNvOTc5NzE9e3BhZDpmdW5jdGlvbih0LGUpe3QuY29uY2F0KGkubGliLldvcmRBcnJheS5jcmVhdGUoWzIxNDc0ODM2NDhdLDEpKSxpLnBhZC5aZXJvUGFkZGluZy5wYWQodCxlKX0sdW5wYWQ6ZnVuY3Rpb24odCl7aS5wYWQuWmVyb1BhZGRpbmcudW5wYWQodCksdC5zaWdCeXRlcy0tfX0saS5wYWQuWmVyb1BhZGRpbmc9e3BhZDpmdW5jdGlvbih0LGUpe2UqPTQ7dC5jbGFtcCgpLHQuc2lnQnl0ZXMrPWUtKHQuc2lnQnl0ZXMlZXx8ZSl9LHVucGFkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcy0xLHI9dC5zaWdCeXRlcy0xOzA8PXI7ci0tKWlmKGVbcj4+PjJdPj4+MjQtciU0KjgmMjU1KXt0LnNpZ0J5dGVzPXIrMTticmVha319fSxpLnBhZC5Ob1BhZGRpbmc9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxkMT0oUD1pKS5saWIuQ2lwaGVyUGFyYW1zLHUxPVAuZW5jLkhleCxQLmZvcm1hdC5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jaXBoZXJ0ZXh0LnRvU3RyaW5nKHUxKX0scGFyc2U6ZnVuY3Rpb24odCl7dD11MS5wYXJzZSh0KTtyZXR1cm4gZDEuY3JlYXRlKHtjaXBoZXJ0ZXh0OnR9KX19O2Zvcih2YXIgdz1pLHA9dy5saWIuQmxvY2tDaXBoZXIsdT13LmFsZ28saz1bXSxyMj1bXSxpMj1bXSxvMj1bXSxuMj1bXSxzMj1bXSxjMj1bXSxhMj1bXSxoMj1bXSxsMj1bXSx4PVtdLGI9MDtiPDI1NjtiKyspeFtiXT1iPDEyOD9iPDwxOmI8PDFeMjgzO2Zvcih2YXIgbT0wLFM9MCxiPTA7YjwyNTY7YisrKXt2YXIgRT1TXlM8PDFeUzw8Ml5TPDwzXlM8PDQsZjI9KGtbbV09RT1FPj4+OF4yNTUmRV45OSx4W3IyW0VdPW1dKSxkMj14W2YyXSx1Mj14W2QyXSxNPTI1Nyp4W0VdXjE2ODQzMDA4KkU7aTJbbV09TTw8MjR8TT4+PjgsbzJbbV09TTw8MTZ8TT4+PjE2LG4yW21dPU08PDh8TT4+PjI0LHMyW21dPU0sYzJbRV09KE09MTY4NDMwMDkqdTJeNjU1MzcqZDJeMjU3KmYyXjE2ODQzMDA4Km0pPDwyNHxNPj4+OCxhMltFXT1NPDwxNnxNPj4+MTYsaDJbRV09TTw8OHxNPj4+MjQsbDJbRV09TSxtPyhtPWYyXnhbeFt4W3UyXmYyXV1dLFNePXhbeFtTXV0pOm09Uz0xfXZhciBwMj1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sdT11LkFFUz1wLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fblJvdW5kc3x8dGhpcy5fa2V5UHJpb3JSZXNldCE9PXRoaXMuX2tleSl7Zm9yKHZhciB0PXRoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5LGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMvNCxpPTQqKDErKHRoaXMuX25Sb3VuZHM9NityKSksbz10aGlzLl9rZXlTY2hlZHVsZT1bXSxuPTA7bjxpO24rKyluPHI/b1tuXT1lW25dOihhPW9bbi0xXSxuJXI/NjxyJiZuJXI9PTQmJihhPWtbYT4+PjI0XTw8MjR8a1thPj4+MTYmMjU1XTw8MTZ8a1thPj4+OCYyNTVdPDw4fGtbMjU1JmFdKTooYT1rWyhhPWE8PDh8YT4+PjI0KT4+PjI0XTw8MjR8a1thPj4+MTYmMjU1XTw8MTZ8a1thPj4+OCYyNTVdPDw4fGtbMjU1JmFdLGFePXAyW24vcnwwXTw8MjQpLG9bbl09b1tuLXJdXmEpO2Zvcih2YXIgcz10aGlzLl9pbnZLZXlTY2hlZHVsZT1bXSxjPTA7YzxpO2MrKyl7dmFyIGEsbj1pLWM7YT1jJTQ/b1tuXTpvW24tNF0sc1tjXT1jPDR8fG48PTQ/YTpjMltrW2E+Pj4yNF1dXmEyW2tbYT4+PjE2JjI1NV1dXmgyW2tbYT4+PjgmMjU1XV1ebDJba1syNTUmYV1dfX19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LGUsdGhpcy5fa2V5U2NoZWR1bGUsaTIsbzIsbjIsczIsayl9LGRlY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRbZSsxXSxyPSh0W2UrMV09dFtlKzNdLHRbZSszXT1yLHRoaXMuX2RvQ3J5cHRCbG9jayh0LGUsdGhpcy5faW52S2V5U2NoZWR1bGUsYzIsYTIsaDIsbDIscjIpLHRbZSsxXSk7dFtlKzFdPXRbZSszXSx0W2UrM109cn0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LGUscixpLG8sbixzLGMpe2Zvcih2YXIgYT10aGlzLl9uUm91bmRzLGg9dFtlXV5yWzBdLGw9dFtlKzFdXnJbMV0sZj10W2UrMl1eclsyXSxkPXRbZSszXV5yWzNdLHU9NCxwPTE7cDxhO3ArKyl2YXIgXz1pW2g+Pj4yNF1eb1tsPj4+MTYmMjU1XV5uW2Y+Pj44JjI1NV1ec1syNTUmZF1eclt1KytdLHk9aVtsPj4+MjRdXm9bZj4+PjE2JjI1NV1ebltkPj4+OCYyNTVdXnNbMjU1JmhdXnJbdSsrXSxnPWlbZj4+PjI0XV5vW2Q+Pj4xNiYyNTVdXm5baD4+PjgmMjU1XV5zWzI1NSZsXV5yW3UrK10sdj1pW2Q+Pj4yNF1eb1toPj4+MTYmMjU1XV5uW2w+Pj44JjI1NV1ec1syNTUmZl1eclt1KytdLGg9XyxsPXksZj1nLGQ9djtfPShjW2g+Pj4yNF08PDI0fGNbbD4+PjE2JjI1NV08PDE2fGNbZj4+PjgmMjU1XTw8OHxjWzI1NSZkXSleclt1KytdLHk9KGNbbD4+PjI0XTw8MjR8Y1tmPj4+MTYmMjU1XTw8MTZ8Y1tkPj4+OCYyNTVdPDw4fGNbMjU1JmhdKV5yW3UrK10sZz0oY1tmPj4+MjRdPDwyNHxjW2Q+Pj4xNiYyNTVdPDwxNnxjW2g+Pj44JjI1NV08PDh8Y1syNTUmbF0pXnJbdSsrXSx2PShjW2Q+Pj4yNF08PDI0fGNbaD4+PjE2JjI1NV08PDE2fGNbbD4+PjgmMjU1XTw8OHxjWzI1NSZmXSleclt1KytdO3RbZV09Xyx0W2UrMV09eSx0W2UrMl09Zyx0W2UrM109dn0sa2V5U2l6ZTo4fSksUD0ody5BRVM9cC5fY3JlYXRlSGVscGVyKHUpLGkpLF8yPSh3PVAubGliKS5Xb3JkQXJyYXksdz13LkJsb2NrQ2lwaGVyLHA9UC5hbGdvLHkyPVs1Nyw0OSw0MSwzMywyNSwxNyw5LDEsNTgsNTAsNDIsMzQsMjYsMTgsMTAsMiw1OSw1MSw0MywzNSwyNywxOSwxMSwzLDYwLDUyLDQ0LDM2LDYzLDU1LDQ3LDM5LDMxLDIzLDE1LDcsNjIsNTQsNDYsMzgsMzAsMjIsMTQsNiw2MSw1Myw0NSwzNywyOSwyMSwxMyw1LDI4LDIwLDEyLDRdLGcyPVsxNCwxNywxMSwyNCwxLDUsMywyOCwxNSw2LDIxLDEwLDIzLDE5LDEyLDQsMjYsOCwxNiw3LDI3LDIwLDEzLDIsNDEsNTIsMzEsMzcsNDcsNTUsMzAsNDAsNTEsNDUsMzMsNDgsNDQsNDksMzksNTYsMzQsNTMsNDYsNDIsNTAsMzYsMjksMzJdLHYyPVsxLDIsNCw2LDgsMTAsMTIsMTQsMTUsMTcsMTksMjEsMjMsMjUsMjcsMjhdLEIyPVt7MDo4NDIxODg4LDI2ODQzNTQ1NjozMjc2OCw1MzY4NzA5MTI6ODQyMTM3OCw4MDUzMDYzNjg6MiwxMDczNzQxODI0OjUxMiwxMzQyMTc3MjgwOjg0MjE4OTAsMTYxMDYxMjczNjo4Mzg5MTIyLDE4NzkwNDgxOTI6ODM4ODYwOCwyMTQ3NDgzNjQ4OjUxNCwyNDE1OTE5MTA0OjgzODkxMjAsMjY4NDM1NDU2MDozMzI4MCwyOTUyNzkwMDE2Ojg0MjEzNzYsMzIyMTIyNTQ3MjozMjc3MCwzNDg5NjYwOTI4OjgzODg2MTAsMzc1ODA5NjM4NDowLDQwMjY1MzE4NDA6MzMyODIsMTM0MjE3NzI4OjAsNDAyNjUzMTg0Ojg0MjE4OTAsNjcxMDg4NjQwOjMzMjgyLDkzOTUyNDA5NjozMjc2OCwxMjA3OTU5NTUyOjg0MjE4ODgsMTQ3NjM5NTAwODo1MTIsMTc0NDgzMDQ2NDo4NDIxMzc4LDIwMTMyNjU5MjA6MiwyMjgxNzAxMzc2OjgzODkxMjAsMjU1MDEzNjgzMjozMzI4MCwyODE4NTcyMjg4Ojg0MjEzNzYsMzA4NzAwNzc0NDo4Mzg5MTIyLDMzNTU0NDMyMDA6ODM4ODYxMCwzNjIzODc4NjU2OjMyNzcwLDM4OTIzMTQxMTI6NTE0LDQxNjA3NDk1Njg6ODM4ODYwOCwxOjMyNzY4LDI2ODQzNTQ1NzoyLDUzNjg3MDkxMzo4NDIxODg4LDgwNTMwNjM2OTo4Mzg4NjA4LDEwNzM3NDE4MjU6ODQyMTM3OCwxMzQyMTc3MjgxOjMzMjgwLDE2MTA2MTI3Mzc6NTEyLDE4NzkwNDgxOTM6ODM4OTEyMiwyMTQ3NDgzNjQ5Ojg0MjE4OTAsMjQxNTkxOTEwNTo4NDIxMzc2LDI2ODQzNTQ1NjE6ODM4ODYxMCwyOTUyNzkwMDE3OjMzMjgyLDMyMjEyMjU0NzM6NTE0LDM0ODk2NjA5Mjk6ODM4OTEyMCwzNzU4MDk2Mzg1OjMyNzcwLDQwMjY1MzE4NDE6MCwxMzQyMTc3Mjk6ODQyMTg5MCw0MDI2NTMxODU6ODQyMTM3Niw2NzEwODg2NDE6ODM4ODYwOCw5Mzk1MjQwOTc6NTEyLDEyMDc5NTk1NTM6MzI3NjgsMTQ3NjM5NTAwOTo4Mzg4NjEwLDE3NDQ4MzA0NjU6MiwyMDEzMjY1OTIxOjMzMjgyLDIyODE3MDEzNzc6MzI3NzAsMjU1MDEzNjgzMzo4Mzg5MTIyLDI4MTg1NzIyODk6NTE0LDMwODcwMDc3NDU6ODQyMTg4OCwzMzU1NDQzMjAxOjgzODkxMjAsMzYyMzg3ODY1NzowLDM4OTIzMTQxMTM6MzMyODAsNDE2MDc0OTU2OTo4NDIxMzc4fSx7MDoxMDc0MjgyNTEyLDE2Nzc3MjE2OjE2Mzg0LDMzNTU0NDMyOjUyNDI4OCw1MDMzMTY0ODoxMDc0MjY2MTI4LDY3MTA4ODY0OjEwNzM3NDE4NDAsODM4ODYwODA6MTA3NDI4MjQ5NiwxMDA2NjMyOTY6MTA3Mzc1ODIwOCwxMTc0NDA1MTI6MTYsMTM0MjE3NzI4OjU0MDY3MiwxNTA5OTQ5NDQ6MTA3Mzc1ODIyNCwxNjc3NzIxNjA6MTA3Mzc0MTgyNCwxODQ1NDkzNzY6NTQwNjg4LDIwMTMyNjU5Mjo1MjQzMDQsMjE4MTAzODA4OjAsMjM0ODgxMDI0OjE2NDAwLDI1MTY1ODI0MDoxMDc0MjY2MTEyLDgzODg2MDg6MTA3Mzc1ODIwOCwyNTE2NTgyNDo1NDA2ODgsNDE5NDMwNDA6MTYsNTg3MjAyNTY6MTA3Mzc1ODIyNCw3NTQ5NzQ3MjoxMDc0MjgyNTEyLDkyMjc0Njg4OjEwNzM3NDE4MjQsMTA5MDUxOTA0OjUyNDI4OCwxMjU4MjkxMjA6MTA3NDI2NjEyOCwxNDI2MDYzMzY6NTI0MzA0LDE1OTM4MzU1MjowLDE3NjE2MDc2ODoxNjM4NCwxOTI5Mzc5ODQ6MTA3NDI2NjExMiwyMDk3MTUyMDA6MTA3Mzc0MTg0MCwyMjY0OTI0MTY6NTQwNjcyLDI0MzI2OTYzMjoxMDc0MjgyNDk2LDI2MDA0Njg0ODoxNjQwMCwyNjg0MzU0NTY6MCwyODUyMTI2NzI6MTA3NDI2NjEyOCwzMDE5ODk4ODg6MTA3Mzc1ODIyNCwzMTg3NjcxMDQ6MTA3NDI4MjQ5NiwzMzU1NDQzMjA6MTA3NDI2NjExMiwzNTIzMjE1MzY6MTYsMzY5MDk4NzUyOjU0MDY4OCwzODU4NzU5Njg6MTYzODQsNDAyNjUzMTg0OjE2NDAwLDQxOTQzMDQwMDo1MjQyODgsNDM2MjA3NjE2OjUyNDMwNCw0NTI5ODQ4MzI6MTA3Mzc0MTg0MCw0Njk3NjIwNDg6NTQwNjcyLDQ4NjUzOTI2NDoxMDczNzU4MjA4LDUwMzMxNjQ4MDoxMDczNzQxODI0LDUyMDA5MzY5NjoxMDc0MjgyNTEyLDI3NjgyNDA2NDo1NDA2ODgsMjkzNjAxMjgwOjUyNDI4OCwzMTAzNzg0OTY6MTA3NDI2NjExMiwzMjcxNTU3MTI6MTYzODQsMzQzOTMyOTI4OjEwNzM3NTgyMDgsMzYwNzEwMTQ0OjEwNzQyODI1MTIsMzc3NDg3MzYwOjE2LDM5NDI2NDU3NjoxMDczNzQxODI0LDQxMTA0MTc5MjoxMDc0MjgyNDk2LDQyNzgxOTAwODoxMDczNzQxODQwLDQ0NDU5NjIyNDoxMDczNzU4MjI0LDQ2MTM3MzQ0MDo1MjQzMDQsNDc4MTUwNjU2OjAsNDk0OTI3ODcyOjE2NDAwLDUxMTcwNTA4ODoxMDc0MjY2MTI4LDUyODQ4MjMwNDo1NDA2NzJ9LHswOjI2MCwxMDQ4NTc2OjAsMjA5NzE1Mjo2NzEwOTEyMCwzMTQ1NzI4OjY1Nzk2LDQxOTQzMDQ6NjU1NDAsNTI0Mjg4MDo2NzEwODg2OCw2MjkxNDU2OjY3MTc0NjYwLDczNDAwMzI6NjcxNzQ0MDAsODM4ODYwODo2NzEwODg2NCw5NDM3MTg0OjY3MTc0NjU2LDEwNDg1NzYwOjY1NzkyLDExNTM0MzM2OjY3MTc0NDA0LDEyNTgyOTEyOjY3MTA5MTI0LDEzNjMxNDg4OjY1NTM2LDE0NjgwMDY0OjQsMTU3Mjg2NDA6MjU2LDUyNDI4ODo2NzE3NDY1NiwxNTcyODY0OjY3MTc0NDA0LDI2MjE0NDA6MCwzNjcwMDE2OjY3MTA5MTIwLDQ3MTg1OTI6NjcxMDg4NjgsNTc2NzE2ODo2NTUzNiw2ODE1NzQ0OjY1NTQwLDc4NjQzMjA6MjYwLDg5MTI4OTY6NCw5OTYxNDcyOjI1NiwxMTAxMDA0ODo2NzE3NDQwMCwxMjA1ODYyNDo2NTc5NiwxMzEwNzIwMDo2NTc5MiwxNDE1NTc3Njo2NzEwOTEyNCwxNTIwNDM1Mjo2NzE3NDY2MCwxNjI1MjkyODo2NzEwODg2NCwxNjc3NzIxNjo2NzE3NDY1NiwxNzgyNTc5Mjo2NTU0MCwxODg3NDM2ODo2NTUzNiwxOTkyMjk0NDo2NzEwOTEyMCwyMDk3MTUyMDoyNTYsMjIwMjAwOTY6NjcxNzQ2NjAsMjMwNjg2NzI6NjcxMDg4NjgsMjQxMTcyNDg6MCwyNTE2NTgyNDo2NzEwOTEyNCwyNjIxNDQwMDo2NzEwODg2NCwyNzI2Mjk3Njo0LDI4MzExNTUyOjY1NzkyLDI5MzYwMTI4OjY3MTc0NDAwLDMwNDA4NzA0OjI2MCwzMTQ1NzI4MDo2NTc5NiwzMjUwNTg1Njo2NzE3NDQwNCwxNzMwMTUwNDo2NzEwODg2NCwxODM1MDA4MDoyNjAsMTkzOTg2NTY6NjcxNzQ2NTYsMjA0NDcyMzI6MCwyMTQ5NTgwODo2NTU0MCwyMjU0NDM4NDo2NzEwOTEyMCwyMzU5Mjk2MDoyNTYsMjQ2NDE1MzY6NjcxNzQ0MDQsMjU2OTAxMTI6NjU1MzYsMjY3Mzg2ODg6NjcxNzQ2NjAsMjc3ODcyNjQ6NjU3OTYsMjg4MzU4NDA6NjcxMDg4NjgsMjk4ODQ0MTY6NjcxMDkxMjQsMzA5MzI5OTI6NjcxNzQ0MDAsMzE5ODE1Njg6NCwzMzAzMDE0NDo2NTc5Mn0sezA6MjE1MTY4MjA0OCw2NTUzNjoyMTQ3NDg3ODA4LDEzMTA3Mjo0MTk4NDY0LDE5NjYwODoyMTUxNjc3OTUyLDI2MjE0NDowLDMyNzY4MDo0MTk4NDAwLDM5MzIxNjoyMTQ3NDgzNzEyLDQ1ODc1Mjo0MTk0MzY4LDUyNDI4ODoyMTQ3NDgzNjQ4LDU4OTgyNDo0MTk0MzA0LDY1NTM2MDo2NCw3MjA4OTY6MjE0NzQ4Nzc0NCw3ODY0MzI6MjE1MTY3ODAxNiw4NTE5Njg6NDE2MCw5MTc1MDQ6NDA5Niw5ODMwNDA6MjE1MTY4MjExMiwzMjc2ODoyMTQ3NDg3ODA4LDk4MzA0OjY0LDE2Mzg0MDoyMTUxNjc4MDE2LDIyOTM3NjoyMTQ3NDg3NzQ0LDI5NDkxMjo0MTk4NDAwLDM2MDQ0ODoyMTUxNjgyMTEyLDQyNTk4NDowLDQ5MTUyMDoyMTUxNjc3OTUyLDU1NzA1Njo0MDk2LDYyMjU5MjoyMTUxNjgyMDQ4LDY4ODEyODo0MTk0MzA0LDc1MzY2NDo0MTYwLDgxOTIwMDoyMTQ3NDgzNjQ4LDg4NDczNjo0MTk0MzY4LDk1MDI3Mjo0MTk4NDY0LDEwMTU4MDg6MjE0NzQ4MzcxMiwxMDQ4NTc2OjQxOTQzNjgsMTExNDExMjo0MTk4NDAwLDExNzk2NDg6MjE0NzQ4MzcxMiwxMjQ1MTg0OjAsMTMxMDcyMDo0MTYwLDEzNzYyNTY6MjE1MTY3ODAxNiwxNDQxNzkyOjIxNTE2ODIwNDgsMTUwNzMyODoyMTQ3NDg3ODA4LDE1NzI4NjQ6MjE1MTY4MjExMiwxNjM4NDAwOjIxNDc0ODM2NDgsMTcwMzkzNjoyMTUxNjc3OTUyLDE3Njk0NzI6NDE5ODQ2NCwxODM1MDA4OjIxNDc0ODc3NDQsMTkwMDU0NDo0MTk0MzA0LDE5NjYwODA6NjQsMjAzMTYxNjo0MDk2LDEwODEzNDQ6MjE1MTY3Nzk1MiwxMTQ2ODgwOjIxNTE2ODIxMTIsMTIxMjQxNjowLDEyNzc5NTI6NDE5ODQwMCwxMzQzNDg4OjQxOTQzNjgsMTQwOTAyNDoyMTQ3NDgzNjQ4LDE0NzQ1NjA6MjE0NzQ4NzgwOCwxNTQwMDk2OjY0LDE2MDU2MzI6MjE0NzQ4MzcxMiwxNjcxMTY4OjQwOTYsMTczNjcwNDoyMTQ3NDg3NzQ0LDE4MDIyNDA6MjE1MTY3ODAxNiwxODY3Nzc2OjQxNjAsMTkzMzMxMjoyMTUxNjgyMDQ4LDE5OTg4NDg6NDE5NDMwNCwyMDY0Mzg0OjQxOTg0NjR9LHswOjEyOCw0MDk2OjE3MDM5MzYwLDgxOTI6MjYyMTQ0LDEyMjg4OjUzNjg3MDkxMiwxNjM4NDo1MzcxMzMxODQsMjA0ODA6MTY3NzczNDQsMjQ1NzY6NTUzNjQ4MjU2LDI4NjcyOjI2MjI3MiwzMjc2ODoxNjc3NzIxNiwzNjg2NDo1MzcxMzMwNTYsNDA5NjA6NTM2ODcxMDQwLDQ1MDU2OjU1MzkxMDQwMCw0OTE1Mjo1NTM5MTAyNzIsNTMyNDg6MCw1NzM0NDoxNzAzOTQ4OCw2MTQ0MDo1NTM2NDgxMjgsMjA0ODoxNzAzOTQ4OCw2MTQ0OjU1MzY0ODI1NiwxMDI0MDoxMjgsMTQzMzY6MTcwMzkzNjAsMTg0MzI6MjYyMTQ0LDIyNTI4OjUzNzEzMzE4NCwyNjYyNDo1NTM5MTAyNzIsMzA3MjA6NTM2ODcwOTEyLDM0ODE2OjUzNzEzMzA1NiwzODkxMjowLDQzMDA4OjU1MzkxMDQwMCw0NzEwNDoxNjc3NzM0NCw1MTIwMDo1MzY4NzEwNDAsNTUyOTY6NTUzNjQ4MTI4LDU5MzkyOjE2Nzc3MjE2LDYzNDg4OjI2MjI3Miw2NTUzNjoyNjIxNDQsNjk2MzI6MTI4LDczNzI4OjUzNjg3MDkxMiw3NzgyNDo1NTM2NDgyNTYsODE5MjA6MTY3NzczNDQsODYwMTY6NTUzOTEwMjcyLDkwMTEyOjUzNzEzMzE4NCw5NDIwODoxNjc3NzIxNiw5ODMwNDo1NTM5MTA0MDAsMTAyNDAwOjU1MzY0ODEyOCwxMDY0OTY6MTcwMzkzNjAsMTEwNTkyOjUzNzEzMzA1NiwxMTQ2ODg6MjYyMjcyLDExODc4NDo1MzY4NzEwNDAsMTIyODgwOjAsMTI2OTc2OjE3MDM5NDg4LDY3NTg0OjU1MzY0ODI1Niw3MTY4MDoxNjc3NzIxNiw3NTc3NjoxNzAzOTM2MCw3OTg3Mjo1MzcxMzMxODQsODM5Njg6NTM2ODcwOTEyLDg4MDY0OjE3MDM5NDg4LDkyMTYwOjEyOCw5NjI1Njo1NTM5MTAyNzIsMTAwMzUyOjI2MjI3MiwxMDQ0NDg6NTUzOTEwNDAwLDEwODU0NDowLDExMjY0MDo1NTM2NDgxMjgsMTE2NzM2OjE2Nzc3MzQ0LDEyMDgzMjoyNjIxNDQsMTI0OTI4OjUzNzEzMzA1NiwxMjkwMjQ6NTM2ODcxMDQwfSx7MDoyNjg0MzU0NjQsMjU2OjgxOTIsNTEyOjI3MDUzMjYwOCw3Njg6MjcwNTQwODA4LDEwMjQ6MjY4NDQzNjQ4LDEyODA6MjA5NzE1MiwxNTM2OjIwOTcxNjAsMTc5MjoyNjg0MzU0NTYsMjA0ODowLDIzMDQ6MjY4NDQzNjU2LDI1NjA6MjEwNTM0NCwyODE2OjgsMzA3MjoyNzA1MzI2MTYsMzMyODoyMTA1MzUyLDM1ODQ6ODIwMCwzODQwOjI3MDU0MDgwMCwxMjg6MjcwNTMyNjA4LDM4NDoyNzA1NDA4MDgsNjQwOjgsODk2OjIwOTcxNTIsMTE1MjoyMTA1MzUyLDE0MDg6MjY4NDM1NDY0LDE2NjQ6MjY4NDQzNjQ4LDE5MjA6ODIwMCwyMTc2OjIwOTcxNjAsMjQzMjo4MTkyLDI2ODg6MjY4NDQzNjU2LDI5NDQ6MjcwNTMyNjE2LDMyMDA6MCwzNDU2OjI3MDU0MDgwMCwzNzEyOjIxMDUzNDQsMzk2ODoyNjg0MzU0NTYsNDA5NjoyNjg0NDM2NDgsNDM1MjoyNzA1MzI2MTYsNDYwODoyNzA1NDA4MDgsNDg2NDo4MjAwLDUxMjA6MjA5NzE1Miw1Mzc2OjI2ODQzNTQ1Niw1NjMyOjI2ODQzNTQ2NCw1ODg4OjIxMDUzNDQsNjE0NDoyMTA1MzUyLDY0MDA6MCw2NjU2OjgsNjkxMjoyNzA1MzI2MDgsNzE2ODo4MTkyLDc0MjQ6MjY4NDQzNjU2LDc2ODA6MjcwNTQwODAwLDc5MzY6MjA5NzE2MCw0MjI0OjgsNDQ4MDoyMTA1MzQ0LDQ3MzY6MjA5NzE1Miw0OTkyOjI2ODQzNTQ2NCw1MjQ4OjI2ODQ0MzY0OCw1NTA0OjgyMDAsNTc2MDoyNzA1NDA4MDgsNjAxNjoyNzA1MzI2MDgsNjI3MjoyNzA1NDA4MDAsNjUyODoyNzA1MzI2MTYsNjc4NDo4MTkyLDcwNDA6MjEwNTM1Miw3Mjk2OjIwOTcxNjAsNzU1MjowLDc4MDg6MjY4NDM1NDU2LDgwNjQ6MjY4NDQzNjU2fSx7MDoxMDQ4NTc2LDE2OjMzNTU1NDU3LDMyOjEwMjQsNDg6MTA0OTYwMSw2NDozNDYwNDAzMyw4MDowLDk2OjEsMTEyOjM0NjAzMDA5LDEyODozMzU1NTQ1NiwxNDQ6MTA0ODU3NywxNjA6MzM1NTQ0MzMsMTc2OjM0NjA0MDMyLDE5MjozNDYwMzAwOCwyMDg6MTAyNSwyMjQ6MTA0OTYwMCwyNDA6MzM1NTQ0MzIsODozNDYwMzAwOSwyNDowLDQwOjMzNTU1NDU3LDU2OjM0NjA0MDMyLDcyOjEwNDg1NzYsODg6MzM1NTQ0MzMsMTA0OjMzNTU0NDMyLDEyMDoxMDI1LDEzNjoxMDQ5NjAxLDE1MjozMzU1NTQ1NiwxNjg6MzQ2MDMwMDgsMTg0OjEwNDg1NzcsMjAwOjEwMjQsMjE2OjM0NjA0MDMzLDIzMjoxLDI0ODoxMDQ5NjAwLDI1NjozMzU1NDQzMiwyNzI6MTA0ODU3NiwyODg6MzM1NTU0NTcsMzA0OjM0NjAzMDA5LDMyMDoxMDQ4NTc3LDMzNjozMzU1NTQ1NiwzNTI6MzQ2MDQwMzIsMzY4OjEwNDk2MDEsMzg0OjEwMjUsNDAwOjM0NjA0MDMzLDQxNjoxMDQ5NjAwLDQzMjoxLDQ0ODowLDQ2NDozNDYwMzAwOCw0ODA6MzM1NTQ0MzMsNDk2OjEwMjQsMjY0OjEwNDk2MDAsMjgwOjMzNTU1NDU3LDI5NjozNDYwMzAwOSwzMTI6MSwzMjg6MzM1NTQ0MzIsMzQ0OjEwNDg1NzYsMzYwOjEwMjUsMzc2OjM0NjA0MDMyLDM5MjozMzU1NDQzMyw0MDg6MzQ2MDMwMDgsNDI0OjAsNDQwOjM0NjA0MDMzLDQ1NjoxMDQ5NjAxLDQ3MjoxMDI0LDQ4ODozMzU1NTQ1Niw1MDQ6MTA0ODU3N30sezA6MTM0MjE5ODA4LDE6MTMxMDcyLDI6MTM0MjE3NzI4LDM6MzIsNDoxMzExMDQsNToxMzQzNTA4ODAsNjoxMzQzNTA4NDgsNzoyMDQ4LDg6MTM0MzQ4ODAwLDk6MTM0MjE5Nzc2LDEwOjEzMzEyMCwxMToxMzQzNDg4MzIsMTI6MjA4MCwxMzowLDE0OjEzNDIxNzc2MCwxNToxMzMxNTIsMjE0NzQ4MzY0ODoyMDQ4LDIxNDc0ODM2NDk6MTM0MzUwODgwLDIxNDc0ODM2NTA6MTM0MjE5ODA4LDIxNDc0ODM2NTE6MTM0MjE3NzI4LDIxNDc0ODM2NTI6MTM0MzQ4ODAwLDIxNDc0ODM2NTM6MTMzMTIwLDIxNDc0ODM2NTQ6MTMzMTUyLDIxNDc0ODM2NTU6MzIsMjE0NzQ4MzY1NjoxMzQyMTc3NjAsMjE0NzQ4MzY1NzoyMDgwLDIxNDc0ODM2NTg6MTMxMTA0LDIxNDc0ODM2NTk6MTM0MzUwODQ4LDIxNDc0ODM2NjA6MCwyMTQ3NDgzNjYxOjEzNDM0ODgzMiwyMTQ3NDgzNjYyOjEzNDIxOTc3NiwyMTQ3NDgzNjYzOjEzMTA3MiwxNjoxMzMxNTIsMTc6MTM0MzUwODQ4LDE4OjMyLDE5OjIwNDgsMjA6MTM0MjE5Nzc2LDIxOjEzNDIxNzc2MCwyMjoxMzQzNDg4MzIsMjM6MTMxMDcyLDI0OjAsMjU6MTMxMTA0LDI2OjEzNDM0ODgwMCwyNzoxMzQyMTk4MDgsMjg6MTM0MzUwODgwLDI5OjEzMzEyMCwzMDoyMDgwLDMxOjEzNDIxNzcyOCwyMTQ3NDgzNjY0OjEzMTA3MiwyMTQ3NDgzNjY1OjIwNDgsMjE0NzQ4MzY2NjoxMzQzNDg4MzIsMjE0NzQ4MzY2NzoxMzMxNTIsMjE0NzQ4MzY2ODozMiwyMTQ3NDgzNjY5OjEzNDM0ODgwMCwyMTQ3NDgzNjcwOjEzNDIxNzcyOCwyMTQ3NDgzNjcxOjEzNDIxOTgwOCwyMTQ3NDgzNjcyOjEzNDM1MDg4MCwyMTQ3NDgzNjczOjEzNDIxNzc2MCwyMTQ3NDgzNjc0OjEzNDIxOTc3NiwyMTQ3NDgzNjc1OjAsMjE0NzQ4MzY3NjoxMzMxMjAsMjE0NzQ4MzY3NzoyMDgwLDIxNDc0ODM2Nzg6MTMxMTA0LDIxNDc0ODM2Nzk6MTM0MzUwODQ4fV0sdzI9WzQxNjA3NDk1NjksNTI4NDgyMzA0LDMzMDMwMTQ0LDIwNjQzODQsMTI5MDI0LDgwNjQsNTA0LDIxNDc0ODM2NzldLGsyPXAuREVTPXcuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkud29yZHMsZT1bXSxyPTA7cjw1NjtyKyspe3ZhciBpPXkyW3JdLTE7ZVtyXT10W2k+Pj41XT4+PjMxLWklMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxuPTA7bjwxNjtuKyspe2Zvcih2YXIgcz1vW25dPVtdLGM9djJbbl0scj0wO3I8MjQ7cisrKXNbci82fDBdfD1lWyhnMltyXS0xK2MpJTI4XTw8MzEtciU2LHNbNCsoci82fDApXXw9ZVsyOCsoZzJbcisyNF0tMStjKSUyOF08PDMxLXIlNjtzWzBdPXNbMF08PDF8c1swXT4+PjMxO2ZvcihyPTE7cjw3O3IrKylzW3JdPXNbcl0+Pj40KihyLTEpKzM7c1s3XT1zWzddPDw1fHNbN10+Pj4yN31mb3IodmFyIGE9dGhpcy5faW52U3ViS2V5cz1bXSxyPTA7cjwxNjtyKyspYVtyXT1vWzE1LXJdfSxlbmNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX3N1YktleXMpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX2ludlN1YktleXMpfSxfZG9DcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9sQmxvY2s9dFtlXSx0aGlzLl9yQmxvY2s9dFtlKzFdLHgyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSkseDIuY2FsbCh0aGlzLDE2LDY1NTM1KSxiMi5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLGIyLmNhbGwodGhpcyw4LDE2NzExOTM1KSx4Mi5jYWxsKHRoaXMsMSwxNDMxNjU1NzY1KTtmb3IodmFyIGk9MDtpPDE2O2krKyl7Zm9yKHZhciBvPXJbaV0sbj10aGlzLl9sQmxvY2sscz10aGlzLl9yQmxvY2ssYz0wLGE9MDthPDg7YSsrKWN8PUIyW2FdWygoc15vW2FdKSZ3MlthXSk+Pj4wXTt0aGlzLl9sQmxvY2s9cyx0aGlzLl9yQmxvY2s9bl5jfXZhciBoPXRoaXMuX2xCbG9jazt0aGlzLl9sQmxvY2s9dGhpcy5fckJsb2NrLHRoaXMuX3JCbG9jaz1oLHgyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpLGIyLmNhbGwodGhpcyw4LDE2NzExOTM1KSxiMi5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHgyLmNhbGwodGhpcywxNiw2NTUzNSkseDIuY2FsbCh0aGlzLDQsMjUyNjQ1MTM1KSx0W2VdPXRoaXMuX2xCbG9jayx0W2UrMV09dGhpcy5fckJsb2NrfSxrZXlTaXplOjIsaXZTaXplOjIsYmxvY2tTaXplOjJ9KTtmdW5jdGlvbiB4Mih0LGUpe2U9KHRoaXMuX2xCbG9jaz4+PnRedGhpcy5fckJsb2NrKSZlO3RoaXMuX3JCbG9ja149ZSx0aGlzLl9sQmxvY2tePWU8PHR9ZnVuY3Rpb24gYjIodCxlKXtlPSh0aGlzLl9yQmxvY2s+Pj50XnRoaXMuX2xCbG9jaykmZTt0aGlzLl9sQmxvY2tePWUsdGhpcy5fckJsb2NrXj1lPDx0fVAuREVTPXcuX2NyZWF0ZUhlbHBlcihrMikscD1wLlRyaXBsZURFUz13LmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9rZXkud29yZHM7aWYoMiE9PXQubGVuZ3RoJiY0IT09dC5sZW5ndGgmJnQubGVuZ3RoPDYpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGtleSBsZW5ndGggLSAzREVTIHJlcXVpcmVzIHRoZSBrZXkgbGVuZ3RoIHRvIGJlIDY0LCAxMjgsIDE5MiBvciA+MTkyLiIpO3ZhciBlPXQuc2xpY2UoMCwyKSxyPXQubGVuZ3RoPDQ/dC5zbGljZSgwLDIpOnQuc2xpY2UoMiw0KSx0PXQubGVuZ3RoPDY/dC5zbGljZSgwLDIpOnQuc2xpY2UoNCw2KTt0aGlzLl9kZXMxPWsyLmNyZWF0ZUVuY3J5cHRvcihfMi5jcmVhdGUoZSkpLHRoaXMuX2RlczI9azIuY3JlYXRlRW5jcnlwdG9yKF8yLmNyZWF0ZShyKSksdGhpcy5fZGVzMz1rMi5jcmVhdGVFbmNyeXB0b3IoXzIuY3JlYXRlKHQpKX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fZGVzMS5lbmNyeXB0QmxvY2sodCxlKSx0aGlzLl9kZXMyLmRlY3J5cHRCbG9jayh0LGUpLHRoaXMuX2RlczMuZW5jcnlwdEJsb2NrKHQsZSl9LGRlY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RlczMuZGVjcnlwdEJsb2NrKHQsZSksdGhpcy5fZGVzMi5lbmNyeXB0QmxvY2sodCxlKSx0aGlzLl9kZXMxLmRlY3J5cHRCbG9jayh0LGUpfSxrZXlTaXplOjYsaXZTaXplOjIsYmxvY2tTaXplOjJ9KSxQLlRyaXBsZURFUz13Ll9jcmVhdGVIZWxwZXIocCk7dmFyIHU9aSxQPXUubGliLlN0cmVhbUNpcGhlcix3PXUuYWxnbyxtMj13LlJDND1QLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMsaT10aGlzLl9TPVtdLG89MDtvPDI1NjtvKyspaVtvXT1vO2Zvcih2YXIgbz0wLG49MDtvPDI1NjtvKyspe3ZhciBzPW8lcixzPWVbcz4+PjJdPj4+MjQtcyU0KjgmMjU1LG49KG4raVtvXStzKSUyNTYscz1pW29dO2lbb109aVtuXSxpW25dPXN9dGhpcy5faT10aGlzLl9qPTB9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RbZV1ePVMyLmNhbGwodGhpcyl9LGtleVNpemU6OCxpdlNpemU6MH0pO2Z1bmN0aW9uIFMyKCl7Zm9yKHZhciB0PXRoaXMuX1MsZT10aGlzLl9pLHI9dGhpcy5faixpPTAsbz0wO288NDtvKyspe3ZhciByPShyK3RbZT0oZSsxKSUyNTZdKSUyNTYsbj10W2VdO3RbZV09dFtyXSx0W3JdPW4saXw9dFsodFtlXSt0W3JdKSUyNTZdPDwyNC04Km99cmV0dXJuIHRoaXMuX2k9ZSx0aGlzLl9qPXIsaX1mdW5jdGlvbiBBMigpe2Zvcih2YXIgdD10aGlzLl9YLGU9dGhpcy5fQyxyPTA7cjw4O3IrKyljW3JdPWVbcl07ZVswXT1lWzBdKzEyOTUzMDc1OTcrdGhpcy5fYnwwLGVbMV09ZVsxXSszNTQ1MDUyMzcxKyhlWzBdPj4+MDxjWzBdPj4+MD8xOjApfDAsZVsyXT1lWzJdKzg4NjI2MzA5MisoZVsxXT4+PjA8Y1sxXT4+PjA/MTowKXwwLGVbM109ZVszXSsxMjk1MzA3NTk3KyhlWzJdPj4+MDxjWzJdPj4+MD8xOjApfDAsZVs0XT1lWzRdKzM1NDUwNTIzNzErKGVbM10+Pj4wPGNbM10+Pj4wPzE6MCl8MCxlWzVdPWVbNV0rODg2MjYzMDkyKyhlWzRdPj4+MDxjWzRdPj4+MD8xOjApfDAsZVs2XT1lWzZdKzEyOTUzMDc1OTcrKGVbNV0+Pj4wPGNbNV0+Pj4wPzE6MCl8MCxlWzddPWVbN10rMzU0NTA1MjM3MSsoZVs2XT4+PjA8Y1s2XT4+PjA/MTowKXwwLHRoaXMuX2I9ZVs3XT4+PjA8Y1s3XT4+PjA/MTowO2ZvcihyPTA7cjw4O3IrKyl7dmFyIGk9dFtyXStlW3JdLG89NjU1MzUmaSxuPWk+Pj4xNjthW3JdPSgobypvPj4+MTcpK28qbj4+PjE1KStuKm5eKCg0Mjk0OTAxNzYwJmkpKml8MCkrKCg2NTUzNSZpKSppfDApfXRbMF09YVswXSsoYVs3XTw8MTZ8YVs3XT4+PjE2KSsoYVs2XTw8MTZ8YVs2XT4+PjE2KXwwLHRbMV09YVsxXSsoYVswXTw8OHxhWzBdPj4+MjQpK2FbN118MCx0WzJdPWFbMl0rKGFbMV08PDE2fGFbMV0+Pj4xNikrKGFbMF08PDE2fGFbMF0+Pj4xNil8MCx0WzNdPWFbM10rKGFbMl08PDh8YVsyXT4+PjI0KSthWzFdfDAsdFs0XT1hWzRdKyhhWzNdPDwxNnxhWzNdPj4+MTYpKyhhWzJdPDwxNnxhWzJdPj4+MTYpfDAsdFs1XT1hWzVdKyhhWzRdPDw4fGFbNF0+Pj4yNCkrYVszXXwwLHRbNl09YVs2XSsoYVs1XTw8MTZ8YVs1XT4+PjE2KSsoYVs0XTw8MTZ8YVs0XT4+PjE2KXwwLHRbN109YVs3XSsoYVs2XTw8OHxhWzZdPj4+MjQpK2FbNV18MH1mdW5jdGlvbiB6Migpe2Zvcih2YXIgdD10aGlzLl9YLGU9dGhpcy5fQyxyPTA7cjw4O3IrKylmW3JdPWVbcl07ZVswXT1lWzBdKzEyOTUzMDc1OTcrdGhpcy5fYnwwLGVbMV09ZVsxXSszNTQ1MDUyMzcxKyhlWzBdPj4+MDxmWzBdPj4+MD8xOjApfDAsZVsyXT1lWzJdKzg4NjI2MzA5MisoZVsxXT4+PjA8ZlsxXT4+PjA/MTowKXwwLGVbM109ZVszXSsxMjk1MzA3NTk3KyhlWzJdPj4+MDxmWzJdPj4+MD8xOjApfDAsZVs0XT1lWzRdKzM1NDUwNTIzNzErKGVbM10+Pj4wPGZbM10+Pj4wPzE6MCl8MCxlWzVdPWVbNV0rODg2MjYzMDkyKyhlWzRdPj4+MDxmWzRdPj4+MD8xOjApfDAsZVs2XT1lWzZdKzEyOTUzMDc1OTcrKGVbNV0+Pj4wPGZbNV0+Pj4wPzE6MCl8MCxlWzddPWVbN10rMzU0NTA1MjM3MSsoZVs2XT4+PjA8Zls2XT4+PjA/MTowKXwwLHRoaXMuX2I9ZVs3XT4+PjA8Zls3XT4+PjA/MTowO2ZvcihyPTA7cjw4O3IrKyl7dmFyIGk9dFtyXStlW3JdLG89NjU1MzUmaSxuPWk+Pj4xNjtkW3JdPSgobypvPj4+MTcpK28qbj4+PjE1KStuKm5eKCg0Mjk0OTAxNzYwJmkpKml8MCkrKCg2NTUzNSZpKSppfDApfXRbMF09ZFswXSsoZFs3XTw8MTZ8ZFs3XT4+PjE2KSsoZFs2XTw8MTZ8ZFs2XT4+PjE2KXwwLHRbMV09ZFsxXSsoZFswXTw8OHxkWzBdPj4+MjQpK2RbN118MCx0WzJdPWRbMl0rKGRbMV08PDE2fGRbMV0+Pj4xNikrKGRbMF08PDE2fGRbMF0+Pj4xNil8MCx0WzNdPWRbM10rKGRbMl08PDh8ZFsyXT4+PjI0KStkWzFdfDAsdFs0XT1kWzRdKyhkWzNdPDwxNnxkWzNdPj4+MTYpKyhkWzJdPDwxNnxkWzJdPj4+MTYpfDAsdFs1XT1kWzVdKyhkWzRdPDw4fGRbNF0+Pj4yNCkrZFszXXwwLHRbNl09ZFs2XSsoZFs1XTw8MTZ8ZFs1XT4+PjE2KSsoZFs0XTw8MTZ8ZFs0XT4+PjE2KXwwLHRbN109ZFs3XSsoZFs2XTw8OHxkWzZdPj4+MjQpK2RbNV18MH11LlJDND1QLl9jcmVhdGVIZWxwZXIobTIpLHc9dy5SQzREcm9wPW0yLmV4dGVuZCh7Y2ZnOm0yLmNmZy5leHRlbmQoe2Ryb3A6MTkyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXttMi5fZG9SZXNldC5jYWxsKHRoaXMpO2Zvcih2YXIgdD10aGlzLmNmZy5kcm9wOzA8dDt0LS0pUzIuY2FsbCh0aGlzKX19KSx1LlJDNERyb3A9UC5fY3JlYXRlSGVscGVyKHcpLHU9KHA9aSkubGliLlN0cmVhbUNpcGhlcixQPXAuYWxnbyxuPVtdLGM9W10sYT1bXSxQPVAuUmFiYml0PXUuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkud29yZHMsZT10aGlzLmNmZy5pdixyPTA7cjw0O3IrKyl0W3JdPTE2NzExOTM1Jih0W3JdPDw4fHRbcl0+Pj4yNCl8NDI3ODI1NTM2MCYodFtyXTw8MjR8dFtyXT4+PjgpO2Zvcih2YXIgaT10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dLHI9dGhpcy5fYj0wO3I8NDtyKyspQTIuY2FsbCh0aGlzKTtmb3Iocj0wO3I8ODtyKyspb1tyXV49aVtyKzQmN107aWYoZSl7dmFyIGU9ZS53b3JkcyxuPWVbMF0sZT1lWzFdLG49MTY3MTE5MzUmKG48PDh8bj4+PjI0KXw0Mjc4MjU1MzYwJihuPDwyNHxuPj4+OCksZT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KSxzPW4+Pj4xNnw0Mjk0OTAxNzYwJmUsYz1lPDwxNnw2NTUzNSZuO29bMF1ePW4sb1sxXV49cyxvWzJdXj1lLG9bM11ePWMsb1s0XV49bixvWzVdXj1zLG9bNl1ePWUsb1s3XV49Yztmb3Iocj0wO3I8NDtyKyspQTIuY2FsbCh0aGlzKX19LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX1g7QTIuY2FsbCh0aGlzKSxuWzBdPXJbMF1ecls1XT4+PjE2XnJbM108PDE2LG5bMV09clsyXV5yWzddPj4+MTZecls1XTw8MTYsblsyXT1yWzRdXnJbMV0+Pj4xNl5yWzddPDwxNixuWzNdPXJbNl1eclszXT4+PjE2XnJbMV08PDE2O2Zvcih2YXIgaT0wO2k8NDtpKyspbltpXT0xNjcxMTkzNSYobltpXTw8OHxuW2ldPj4+MjQpfDQyNzgyNTUzNjAmKG5baV08PDI0fG5baV0+Pj44KSx0W2UraV1ePW5baV19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSkscC5SYWJiaXQ9dS5fY3JlYXRlSGVscGVyKFApLHA9KHc9aSkubGliLlN0cmVhbUNpcGhlcix1PXcuYWxnbyxoPVtdLGY9W10sZD1bXSx1PXUuUmFiYml0TGVnYWN5PXAuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkud29yZHMsZT10aGlzLmNmZy5pdixyPXRoaXMuX1g9W3RbMF0sdFszXTw8MTZ8dFsyXT4+PjE2LHRbMV0sdFswXTw8MTZ8dFszXT4+PjE2LHRbMl0sdFsxXTw8MTZ8dFswXT4+PjE2LHRbM10sdFsyXTw8MTZ8dFsxXT4+PjE2XSxpPXRoaXMuX0M9W3RbMl08PDE2fHRbMl0+Pj4xNiw0Mjk0OTAxNzYwJnRbMF18NjU1MzUmdFsxXSx0WzNdPDwxNnx0WzNdPj4+MTYsNDI5NDkwMTc2MCZ0WzFdfDY1NTM1JnRbMl0sdFswXTw8MTZ8dFswXT4+PjE2LDQyOTQ5MDE3NjAmdFsyXXw2NTUzNSZ0WzNdLHRbMV08PDE2fHRbMV0+Pj4xNiw0Mjk0OTAxNzYwJnRbM118NjU1MzUmdFswXV0sbz10aGlzLl9iPTA7bzw0O28rKyl6Mi5jYWxsKHRoaXMpO2ZvcihvPTA7bzw4O28rKylpW29dXj1yW28rNCY3XTtpZihlKXt2YXIgdD1lLndvcmRzLGU9dFswXSx0PXRbMV0sZT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KSx0PTE2NzExOTM1Jih0PDw4fHQ+Pj4yNCl8NDI3ODI1NTM2MCYodDw8MjR8dD4+PjgpLG49ZT4+PjE2fDQyOTQ5MDE3NjAmdCxzPXQ8PDE2fDY1NTM1JmU7aVswXV49ZSxpWzFdXj1uLGlbMl1ePXQsaVszXV49cyxpWzRdXj1lLGlbNV1ePW4saVs2XV49dCxpWzddXj1zO2ZvcihvPTA7bzw0O28rKyl6Mi5jYWxsKHRoaXMpfX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fWDt6Mi5jYWxsKHRoaXMpLGhbMF09clswXV5yWzVdPj4+MTZeclszXTw8MTYsaFsxXT1yWzJdXnJbN10+Pj4xNl5yWzVdPDwxNixoWzJdPXJbNF1eclsxXT4+PjE2XnJbN108PDE2LGhbM109cls2XV5yWzNdPj4+MTZeclsxXTw8MTY7Zm9yKHZhciBpPTA7aTw0O2krKyloW2ldPTE2NzExOTM1JihoW2ldPDw4fGhbaV0+Pj4yNCl8NDI3ODI1NTM2MCYoaFtpXTw8MjR8aFtpXT4+PjgpLHRbZStpXV49aFtpXX0sYmxvY2tTaXplOjQsaXZTaXplOjJ9KSx3LlJhYmJpdExlZ2FjeT1wLl9jcmVhdGVIZWxwZXIodSk7e3c9KFA9aSkubGliLkJsb2NrQ2lwaGVyLHA9UC5hbGdvO2NvbnN0IEY9MTYsRDI9WzYwODEzNTgxNiwyMjQyMDU0MzU1LDMyMDQ0MDg3OCw1NzcwMTE4OCwyNzUyMDY3NjE4LDY5ODI5ODgzMiwxMzcyOTY1MzYsMzk2NDU2MjU2OSwxMTYwMjU4MDIyLDk1MzE2MDU2NywzMTkzMjAyMzgzLDg4NzY4ODMwMCwzMjMyNTA4MzQzLDMzODAzNjc1ODEsMTA2NTY3MDA2OSwzMDQxMzMxNDc5LDI0NTA5NzAwNzMsMjMwNjQ3MjczMV0sRTI9W1szNTA5NjUyMzkwLDI1NjQ3OTc4NjgsODA1MTM5MTYzLDM0OTE0MjIxMzUsMzEwMTc5ODM4MSwxNzgwOTA3NjcwLDMxMjg3MjU1NzMsNDA0NjIyNTMwNSw2MTQ1NzAzMTEsMzAxMjY1MjI3OSwxMzQzNDU0NDIsMjI0MDc0MDM3NCwxNjY3ODM0MDcyLDE5MDE1NDcxMTMsMjc1NzI5NTc3OSw0MTAzMjkwMjM4LDIyNzg5ODUxMSwxOTIxOTU1NDE2LDE5MDQ5ODc0ODAsMjE4MjQzMzUxOCwyMDY5MTQ0NjA1LDMyNjA3MDExMDksMjYyMDQ0NjAwOSw3MjA1MjczNzksMzMxODg1MzY2Nyw2Nzc0MTQzODQsMzM5MzI4ODQ3MiwzMTAxMzc0NzAzLDIzOTAzNTEwMjQsMTYxNDQxOTk4MiwxODIyMjk3NzM5LDI5NTQ3OTE0ODYsMzYwODUwODM1MywzMTc0MTI0MzI3LDIwMjQ3NDY5NzAsMTQzMjM3ODQ2NCwzODY0MzM5OTU1LDI4NTc3NDEyMDQsMTQ2NDM3NTM5NCwxNjc2MTUzOTIwLDE0MzkzMTYzMzAsNzE1ODU0MDA2LDMwMzMyOTE4MjgsMjg5NTMyMTEwLDI3MDY2NzEyNzksMjA4NzkwNTY4MywzMDE4NzI0MzY5LDE2NjgyNjcwNTAsNzMyNTQ2Mzk3LDE5NDc3NDI3MTAsMzQ2MjE1MTcwMiwyNjA5MzUzNTAyLDI5NTAwODUxNzEsMTgxNDM1MTcwOCwyMDUwMTE4NTI5LDY4MDg4NzkyNyw5OTkyNDU5NzYsMTgwMDEyNDg0NywzMzAwOTExMTMxLDE3MTM5MDYwNjcsMTY0MTU0ODIzNiw0MjEzMjg3MzEzLDEyMTYxMzAxNDQsMTU3NTc4MDQwMiw0MDE4NDI5Mjc3LDM5MTc4Mzc3NDUsMzY5MzQ4Njg1MCwzOTQ5MjcxOTQ0LDU5NjE5Njk5MywzNTQ5ODY3MjA1LDI1ODgzMDMyMywyMjEzODIzMDMzLDc3MjQ5MDM3MCwyNzYwMTIyMzcyLDE3NzQ3NzYzOTQsMjY1Mjg3MTUxOCw1NjY2NTA5NDYsNDE0MjQ5MjgyNiwxNzI4ODc5NzEzLDI4ODI3NjcwODgsMTc4MzczNDQ4MiwzNjI5Mzk1ODE2LDI1MTc2MDgyMzIsMjg3NDIyNTU3MSwxODYxMTU5Nzg4LDMyNjc3NzgyOCwzMTI0NDkwMzIwLDIxMzAzODk2NTYsMjcxNjk1MTgzNyw5Njc3NzA0ODYsMTcyNDUzNzE1MCwyMTg1NDMyNzEyLDIzNjQ0NDIxMzcsMTE2NDk0MzI4NCwyMTA1ODQ1MTg3LDk5ODk4OTUwMiwzNzY1NDAxMDQ4LDIyNDQwMjY0ODMsMTA3NTQ2MzMyNywxNDU1NTE2MzI2LDEzMjI0OTQ1NjIsOTEwMTI4OTAyLDQ2OTY4ODE3OCwxMTE3NDU0OTA5LDkzNjQzMzQ0NCwzNDkwMzIwOTY4LDM2NzUyNTM0NTksMTI0MDU4MDI1MSwxMjI5MDkzODUsMjE1NzUxNzY5MSw2MzQ2ODE4MTYsNDE0MjQ1NjU2NywzODI1MDk0NjgyLDMwNjE0MDI2ODMsMjU0MDQ5NTAzNyw3OTY5MzQ5OCwzMjQ5MDk4Njc4LDEwODQxODY4MjAsMTU4MzEyODI1OCw0MjYzODY1MzEsMTc2MTMwODU5MSwxMDQ3Mjg2NzA5LDMyMjU0ODQ1OSw5OTUyOTAyMjMsMTg0NTI1MjM4MywyNjAzNjUyMzk2LDM0MzEwMjM5NDAsMjk0MjIyMTU3NywzMjAyNjAwOTY0LDM3Mjc5MDM0ODUsMTcxMjI2OTMxOSw0MjI0NjQ0MzUsMzIzNDU3MjM3NSwxMTcwNzY0ODE1LDM1MjM5NjA2MzMsMzExNzY3NzUzMSwxNDM0MDQyNTU3LDQ0MjUxMTg4MiwzNjAwODc1NzE4LDEwNzY2NTQ3MTMsMTczODQ4MzE5OCw0MjEzMTU0NzY0LDIzOTMyMzgwMDgsMzY3NzQ5NjA1NiwxMDE0MzA2NTI3LDQyNTEwMjAwNTMsNzkzNzc5OTEyLDI5MDI4MDcyMTEsODQyOTA1MDgyLDQyNDY5NjQwNjQsMTM5NTc1MTc1MiwxMDQwMjQ0NjEwLDI2NTY4NTE4OTksMzM5NjMwODEyOCw0NDUwNzcwMzgsMzc0Mjg1MzU5NSwzNTc3OTE1NjM4LDY3OTQxMTY1MSwyODkyNDQ0MzU4LDIzNTQwMDk0NTksMTc2NzU4MTYxNiwzMTUwNjAwMzkyLDM3OTE2MjcxMDEsMzEwMjc0MDg5NiwyODQ4MzUyMjQsNDI0NjgzMjA1NiwxMjU4MDc1NTAwLDc2ODcyNTg1MSwyNTg5MTg5MjQxLDMwNjk3MjQwMDUsMzUzMjU0MDM0OCwxMjc0Nzc5NTM2LDM3ODk0MTkyMjYsMjc2NDc5OTUzOSwxNjYwNjIxNjMzLDM0NzEwOTk2MjQsNDAxMTkwMzcwNiw5MTM3ODc5MDUsMzQ5Nzk1OTE2Niw3MzcyMjI1ODAsMjUxNDIxMzQ1MywyOTI4NzEwMDQwLDM5MzcyNDI3MzcsMTgwNDg1MDU5MiwzNDk5MDIwNzUyLDI5NDkwNjQxNjAsMjM4NjMyMDE3NSwyMzkwMDcwNDU1LDI0MTUzMjE4NTEsNDA2MTI3NzAyOCwyMjkwNjYxMzk0LDI0MTY4MzI1NDAsMTMzNjc2MjAxNiwxNzU0MjUyMDYwLDM1MjAwNjU5MzcsMzAxNDE4MTI5Myw3OTE2MTgwNzIsMzE4ODU5NDU1MSwzOTMzNTQ4MDMwLDIzMzIxNzIxOTMsMzg1MjUyMDQ2MywzMDQzOTgwNTIwLDQxMzk4Nzc5OCwzNDY1MTQyOTM3LDMwMzA5MjkzNzYsNDI0NTkzODM1OSwyMDkzMjM1MDczLDM1MzQ1OTYzMTMsMzc1MzY2MjQ2LDIxNTcyNzg5ODEsMjQ3OTY0OTU1Niw1NTUzNTczMDMsMzg3MDEwNTcwMSwyMDA4NDE0ODU0LDMzNDQxODgxNDksNDIyMTM4NDE0MywzOTU2MTI1NDUyLDIwNjc2OTYwMzIsMzU5NDU5MTE4NywyOTIxMjMzOTkzLDI0Mjg0NjEsNTQ0MzIyMzk4LDU3NzI0MTI3NSwxNDcxNzMzOTM1LDYxMDU0NzM1NSw0MDI3MTY5MDU0LDE0MzI1ODg1NzMsMTUwNzgyOTQxOCwyMDI1OTMxNjU3LDM2NDY1NzU0ODcsNTQ1MDg2MzcwLDQ4NjA5NzMzLDIyMDAzMDY1NTAsMTY1Mzk4NTE5MywyOTgzMjYzNzYsMTMxNjE3ODQ5NywzMDA3Nzg2NDQyLDIwNjQ5NTE2MjYsNDU4MjkzMzMwLDI1ODkxNDEyNjksMzU5MTMyOTU5OSwzMTY0MzI1NjA0LDcyNzc1Mzg0NiwyMTc5MzYzODQwLDE0NjQzNjAyMSwxNDYxNDQ2OTQzLDQwNjk5NzcxOTUsNzA1NTUwNjEzLDMwNTk5NjcyNjUsMzg4NzcyNDk4Miw0MjgxNTk5Mjc4LDMzMTM4NDk5NTYsMTQwNDA1NDg3NywyODQ1ODA2NDk3LDE0NjQyNTc1MywxODU0MjExOTQ2XSxbMTI2NjMxNTQ5NywzMDQ4NDE3NjA0LDM2ODE4ODAzNjYsMzI4OTk4MjQ5OSwyOTA5NzFlNCwxMjM1NzM4NDkzLDI2MzI4NjgwMjQsMjQxNDcxOTU5MCwzOTcwNjAwMDQ5LDE3NzE3MDYzNjcsMTQ0OTQxNTI3NiwzMjY2NDIwNDQ5LDQyMjk3MDAyMSwxOTYzNTQzNTkzLDI2OTAxOTIxOTIsMzgyNjc5MzAyMiwxMDYyNTA4Njk4LDE1MzEwOTIzMjUsMTgwNDU5MjM0MiwyNTgzMTE3NzgyLDI3MTQ5MzQyNzksNDAyNDk3MTUwOSwxMjk0ODA5MzE4LDQwMjg5ODA2NzMsMTI4OTU2MDE5OCwyMjIxOTkyNzQyLDE2Njk1MjM5MTAsMzU1NzI4MzAsMTU3ODM4MTQzLDEwNTI0Mzg0NzMsMTAxNjUzNTA2MCwxODAyMTM3NzYxLDE3NTMxNjcyMzYsMTM4NjI3NTQ2MiwzMDgwNDc1Mzk3LDI4NTczNzE0NDcsMTA0MDY3OTk2NCwyMTQ1MzAwMDYwLDIzOTA1NzQzMTYsMTQ2MTEyMTcyMCwyOTU2NjQ2OTY3LDQwMzE3Nzc4MDUsNDAyODM3NDc4OCwzMzYwMDUxMSwyOTIwMDg0NzYyLDEwMTg1MjQ4NTAsNjI5MzczNTI4LDM2OTE1ODU5ODEsMzUxNTk0NTk3NywyMDkxNDYyNjQ2LDI0ODYzMjMwNTksNTg2NDk5ODQxLDk4ODE0NTAyNSw5MzU1MTY4OTIsMzM2NzMzNTQ3NiwyNTk5NjczMjU1LDI4Mzk4MzA4NTQsMjY1MjkwNTEwLDM5NzI1ODExODIsMjc1OTEzODg4MSwzNzk1MzczNDY1LDEwMDUxOTQ3OTksODQ3Mjk3NDQxLDQwNjc2MjI4OSwxMzE0MTYzNTEyLDEzMzI1OTA4NTYsMTg2NjU5OTY4Myw0MTI3ODUxNzExLDc1MDI2MDg4MCw2MTM5MDc1NzcsMTQ1MDgxNTYwMiwzMTY1NjIwNjU1LDM3MzQ2NjQ5OTEsMzY1MDI5MTcyOCwzMDEyMjc1NzMwLDM3MDQ1Njk2NDYsMTQyNzI3MjIyMyw3Nzg3OTMyNTIsMTM0MzkzODAyMiwyNjc2MjgwNzExLDIwNTI2MDU3MjAsMTk0NjczNzE3NSwzMTY0NTc2NDQ0LDM5MTQwMzg2NjgsMzk2NzQ3ODg0MiwzNjgyOTM0MjY2LDE2NjE1NTE0NjIsMzI5NDkzODA2Niw0MDExNTk1ODQ3LDg0MDI5MjYxNiwzNzEyMTcwODA3LDYxNjc0MTM5OCwzMTI1NjA5NjMsNzExMzEyNDY1LDEzNTE4NzY2MTAsMzIyNjI2NzgxLDE5MTA1MDM1ODIsMjcxNjY2NzczLDIxNzU1NjM3MzQsMTU5NDk1NjE4Nyw3MDYwNDUyOSwzNjE3ODM0ODU5LDEwMDc3NTMyNzUsMTQ5NTU3Mzc2OSw0MDY5NTE3MDM3LDI1NDkyMTgyOTgsMjY2MzAzODc2NCw1MDQ3MDgyMDYsMjI2MzA0MTM5MiwzOTQxMTY3MDI1LDIyNDkwODg1MjIsMTUxNDAyMzYwMywxOTk4NTc5NDg0LDEzMTI2MjIzMzAsNjk0NTQxNDk3LDI1ODIwNjAzMDMsMjE1MTU4MjE2NiwxMzgyNDY3NjIxLDc3Njc4NDI0OCwyNjE4MzQwMjAyLDMzMjMyNjg3OTQsMjQ5Nzg5OTEyOCwyNzg0NzcxMTU1LDUwMzk4MzYwNCw0MDc2MjkzNzk5LDkwNzg4MTI3Nyw0MjMxNzU2OTUsNDMyMTc1NDU2LDEzNzgwNjgyMzIsNDE0NTIyMjMyNiwzOTU0MDQ4NjIyLDM5Mzg2NTYxMDIsMzgyMDc2NjYxMywyNzkzMTMwMTE1LDI5Nzc5MDQ1OTMsMjYwMTc1NzYsMzI3NDg5MDczNSwzMTk0NzcyMTMzLDE3MDAyNzQ1NjUsMTc1NjA3NjAzNCw0MDA2NTIwMDc5LDM2NzczMjg2OTksNzIwMzM4MzQ5LDE1MzM5NDc3ODAsMzU0NTMwODU2LDY4ODM0OTU1MiwzOTczOTI0NzI1LDE2Mzc4MTU1NjgsMzMyMTc5NTA0LDM5NDkwNTEyODYsNTM4MDQ1NzQsMjg1MjM0ODg3OSwzMDQ0MjM2NDMyLDEyODI0NDk5NzcsMzU4Mzk0MjE1NSwzNDE2OTcyODIwLDQwMDYzODEyNDQsMTYxNzA0NjY5NSwyNjI4NDc2MDc1LDMwMDIzMDM1OTgsMTY4NjgzODk1OSw0MzE4NzgzNDYsMjY4NjY3NTM4NSwxNzAwNDQ1MDA4LDEwODA1ODA2NTgsMTAwOTQzMTczMSw4MzI0OTgxMzMsMzIyMzQzNTUxMSwyNjA1OTc2MzQ1LDIyNzExOTExOTMsMjUxNjAzMTg3MCwxNjQ4MTk3MDMyLDQxNjQzODkwMTgsMjU0ODI0NzkyNywzMDA3ODI0MzEsMzc1OTE5MjMzLDIzODM4OTI4OSwzMzUzNzQ3NDE0LDI1MzExODg2NDEsMjAxOTA4MDg1NywxNDc1NzA4MDY5LDQ1NTI0MjMzOSwyNjA5MTAzODcxLDQ0ODkzOTY3MCwzNDUxMDYzMDE5LDEzOTU1MzU5NTYsMjQxMzM4MTg2MCwxODQxMDQ5ODk2LDE0OTE4NTgxNTksODg1NDU2ODc0LDQyNjQwOTUwNzMsNDAwMTExOTM0NywxNTY1MTM2MDg5LDM4OTg5MTQ3ODcsMTEwODM2ODY2MCw1NDA5MzkyMzIsMTE3MzI4MzUxMCwyNzQ1ODcxMzM4LDM2ODEzMDg0MzcsNDIwNzYyODI0MCwzMzQzMDUzODkwLDQwMTY3NDk0OTMsMTY5OTY5MTI5MywxMTAzOTYyMzczLDM2MjU4NzU4NzAsMjI1Njg4MzE0MywzODMwMTM4NzMwLDEwMzE4ODk0ODgsMzQ3OTM0NzY5OCwxNTM1OTc3MDMwLDQyMzY4MDUwMjQsMzI1MTA5MTEwNywyMTMyMDkyMDk5LDE3NzQ5NDEzMzAsMTE5OTg2ODQyNywxNDUyNDU0NTMzLDE1NzAwNzYxNiwyOTA0MTE1MzU3LDM0MjAxMjI3Niw1OTU3MjU4MjQsMTQ4MDc1NjUyMiwyMDY5NjAxMDYsNDk3OTM5NTE4LDU5MTM2MDA5Nyw4NjMxNzA3MDYsMjM3NTI1MzU2OSwzNTk2NjEwODAxLDE4MTQxODI4NzUsMjA5NDkzNzk0NSwzNDIxNDAyMjA4LDEwODI1MjAyMzEsMzQ2MzkxODE5MCwyNzg1NTA5NTA4LDQzNTcwMzk2NiwzOTA4MDMyNTk3LDE2NDE2NDk5NzMsMjg0MjI3MzcwNiwzMzA1ODk5NzE0LDE1MTAyNTU2MTIsMjE0ODI1NjQ3NiwyNjU1Mjg3ODU0LDMyNzYwOTI1NDgsNDI1ODYyMTE4OSwyMzY4ODc3NTMsMzY4MTgwMzIxOSwyNzQwNDEwMzcsMTczNDMzNTA5NywzODE1MTk1NDU2LDMzMTc5NzAwMjEsMTg5OTkwMzE5MiwxMDI2MDk1MjYyLDQwNTA1MTc3OTIsMzU2MzkzNDQ3LDI0MTA2OTE5MTQsMzg3MzY3NzA5OSwzNjgyODQwMDU1XSxbMzkxMzExMjE2OCwyNDkxNDk4NzQzLDQxMzIxODU2MjgsMjQ4OTkxOTc5NiwxMDkxOTAzNzM1LDE5Nzk4OTcwNzksMzE3MDEzNDgzMCwzNTY3Mzg2NzI4LDM1NTczMDM0MDksODU3Nzk3NzM4LDExMzYxMjEwMTUsMTM0MjIwMjI4Nyw1MDcxMTUwNTQsMjUzNTczNjY0NiwzMzc3MjczNDgsMzIxMzU5MjY0MCwxMzAxNjc1MDM3LDI1Mjg0ODE3MTEsMTg5NTA5NTc2MywxNzIxNzczODkzLDMyMTY3NzE1NjQsNjI3NTY3NDEsMjE0MjAwNjczNiw4MzU0MjE0NDQsMjUzMTk5MzUyMywxNDQyNjU4NjI1LDM2NTk4NzYzMjYsMjg4MjE0NDkyMiw2NzYzNjIyNzcsMTM5Mjc4MTgxMiwxNzA2OTAyNjYsMzkyMTA0NzAzNSwxNzU5MjUzNjAyLDM2MTE4NDY5MTIsMTc0NTc5NzI4NCw2NjQ4OTkwNTQsMTMyOTU5NDAxOCwzOTAxMjA1OTAwLDMwNDU5MDg0ODYsMjA2Mjg2NjEwMiwyODY1NjM0OTQwLDM1NDM2MjE2MTIsMzQ2NDAxMjY5NywxMDgwNzY0OTk0LDU1MzU1NzU1NywzNjU2NjE1MzUzLDM5OTY3NjgxNzEsOTkxMDU1NDk5LDQ5OTc3NjI0NywxMjY1NDQwODU0LDY0ODI0MjczNywzOTQwNzg0MDUwLDk4MDM1MTYwNCwzNzEzNzQ1NzE0LDE3NDkxNDk2ODcsMzM5Njg3MDM5NSw0MjExNzk5Mzc0LDM2NDA1NzA3NzUsMTE2MTg0NDM5NiwzMTI1MzE4OTUxLDE0MzE1MTc3NTQsNTQ1NDkyMzU5LDQyNjg0Njg2NjMsMzQ5OTUyOTU0NywxNDM3MDk5OTY0LDI3MDI1NDc1NDQsMzQzMzYzODI0MywyNTgxNzE1NzYzLDI3ODc3ODkzOTgsMTA2MDE4NTU5MywxNTkzMDgxMzcyLDI0MTg2MTg3NDgsNDI2MDk0Nzk3MCw2OTY3NjkxMiwyMTU5NzQ0MzQ4LDg2NTE5MDExLDI1MTI0NTkwODAsMzgzODIwOTMxNCwxMjIwNjEyOTI3LDMzMzk2ODM1NDgsMTMzODEwNjcwLDEwOTA3ODkxMzUsMTA3ODQyNjAyMCwxNTY5MjIyMTY3LDg0NTEwNzY5MSwzNTgzNzU0NDQ5LDQwNzI0NTY1OTEsMTA5MTY0NjgyMCw2Mjg4NDg2OTIsMTYxMzQwNTI4MCwzNzU3NjMxNjUxLDUyNjYwOTQzNSwyMzYxMDY5NDYsNDgzMTI5OTAsMjk0MjcxNzkwNSwzNDAyNzI3NzAxLDE3OTc0OTQyNDAsODU5NzM4ODQ5LDk5MjIxNzk1NCw0MDA1NDc2NjQyLDIyNDMwNzY2MjIsMzg3MDk1Mjg1NywzNzMyMDE2MjY4LDc2NTY1NDgyNCwzNDkwODcxMzY1LDI1MTE4MzY0MTMsMTY4NTkxNTc0NiwzODg4OTY5MjAwLDE0MTQxMTIxMTEsMjI3MzEzNDg0MiwzMjgxOTExMDc5LDQwODA5NjI4NDYsMTcyNDUwNjI1LDI1Njk5OTQxMDAsOTgwMzgxMzU1LDQxMDk5NTg0NTUsMjgxOTgwODM1MiwyNzE2NTg5NTYwLDI1Njg3NDExOTYsMzY4MTQ0NjY2OSwzMzI5OTcxNDcyLDE4MzU0NzgwNzEsNjYwOTg0ODkxLDM3MDQ2Nzg0MDQsNDA0NTk5OTU1OSwzNDIyNjE3NTA3LDMwNDA0MTU2MzQsMTc2MjY1MTQwMywxNzE5Mzc3OTE1LDM0NzA0OTEwMzYsMjY5MzkxMDI4MywzNjQyMDU2MzU1LDMxMzg1OTY3NDQsMTM2NDk2MjU5NiwyMDczMzI4MDYzLDE5ODM2MzMxMzEsOTI2NDk0Mzg3LDM0MjM2ODkwODEsMjE1MDAzMjAyMyw0MDk2NjY3OTQ5LDE3NDkyMDAyOTUsMzMyODg0NjY1MSwzMDk2NzcyNjAsMjAxNjM0MjMwMCwxNzc5NTgxNDk1LDMwNzk4MTk3NTEsMTExMjYyNjk0LDEyNzQ3NjYxNjAsNDQzMjI0MDg4LDI5ODUxMTg2NiwxMDI1ODgzNjA4LDM4MDY0NDY1MzcsMTE0NTE4MTc4NSwxNjg5NTY4MDYsMzY0MTUwMjgzMCwzNTg0ODEzNjEwLDE2ODkyMTY4NDYsMzY2NjI1ODAxNSwzMjAwMjQ4MjAwLDE2OTI3MTM5ODIsMjY0NjM3NjUzNSw0MDQyNzY4NTE4LDE2MTg1MDg3OTIsMTYxMDgzMzk5NywzNTIzMDUyMzU4LDQxMzA4NzMyNjQsMjAwMTA1NTIzNiwzNjEwNzA1MTAwLDIyMDIxNjgxMTUsNDAyODU0MTgwOSwyOTYxMTk1Mzk5LDEwMDY2NTcxMTksMjAwNjk5NjkyNiwzMTg2MTQyNzU2LDE0MzA2Njc5MjksMzIxMDIyNzI5NywxMzE0NDUyNjIzLDQwNzQ2MzQ2NTgsNDEwMTMwNDEyMCwyMjczOTUxMTcwLDEzOTkyNTc1MzksMzM2NzIxMDYxMiwzMDI3NjI4NjI5LDExOTA5NzU5MjksMjA2MjIzMTEzNywyMzMzOTkwNzg4LDIyMjE1NDMwMzMsMjQzODk2MDYxMCwxMTgxNjM3MDA2LDU0ODY4OTc3NiwyMzYyNzkxMzEzLDMzNzI0MDgzOTYsMzEwNDU1MDExMywzMTQ1ODYwNTYwLDI5NjI0Nzg4MCwxOTcwNTc5ODcwLDMwNzg1NjAxODIsMzc2OTIyODI5NywxNzE0MjI3NjE3LDMyOTE2MjkxMDcsMzg5ODIyMDI5MCwxNjY3NzIzNjQsMTI1MTU4MTk4OSw0OTM4MTMyNjQsNDQ4MzQ3NDIxLDE5NTQwNTAyMywyNzA5OTc1NTY3LDY3Nzk2NjE4NSwzNzAzMDM2NTQ3LDE0NjMzNTUxMzQsMjcxNTk5NTgwMywxMzM4ODY3NTM4LDEzNDMzMTU0NTcsMjgwMjIyMjA3NCwyNjg0NTMyMTY0LDIzMzIzMDM3NSwyNTk5OTgwMDcxLDIwMDA2NTE4NDEsMzI3Nzg2ODAzOCwxNjM4NDAxNzE3LDQwMjgwNzA0NDAsMzIzNzMxNjMyMCw2MzE0MTU0LDgxOTc1NjM4NiwzMDAzMjY2MTUsNTkwOTMyNTc5LDE0MDUyNzk2MzYsMzI2NzQ5OTU3MiwzMTUwNzA0MjE0LDI0MjgyODY2ODYsMzk1OTE5Mjk5MywzNDYxOTQ2NzQyLDE4NjI2NTcwMzMsMTI2NjQxODA1Niw5NjM3NzUwMzcsMjA4OTk3NDgyMCwyMjYzMDUyODk1LDE5MTc2ODkyNzMsNDQ4ODc5NTQwLDM1NTAzOTQ2MjAsMzk4MTcyNzA5NiwxNTA3NzUyMjEsMzYyNzkwODMwNywxMzAzMTg3Mzk2LDUwODYyMDYzOCwyOTc1OTgzMzUyLDI3MjY2MzA2MTcsMTgxNzI1MjY2OCwxODc2MjgxMzE5LDE0NTc2MDYzNDAsOTA4NzcxMjc4LDM3MjA3OTIxMTksMzYxNzIwNjgzNiwyNDU1OTk0ODk4LDE3MjkwMzQ4OTQsMTA4MDAzMzUwNF0sWzk3Njg2Njg3MSwzNTU2NDM5NTAzLDI4ODE2NDg0MzksMTUyMjg3MTU3OSwxNTU1MDY0NzM0LDEzMzYwOTY1NzgsMzU0ODUyMjMwNCwyNTc5Mjc0Njg2LDM1NzQ2OTc2MjksMzIwNTQ2MDc1NywzNTkzMjgwNjM4LDMzMzg3MTYyODMsMzA3OTQxMjU4Nyw1NjQyMzYzNTcsMjk5MzU5ODkxMCwxNzgxOTUyMTgwLDE0NjQzODAyMDcsMzE2Mzg0NDIxNywzMzMyNjAxNTU0LDE2OTkzMzI4MDgsMTM5MzU1NTY5NCwxMTgzNzAyNjUzLDM1ODEwODYyMzcsMTI4ODcxOTgxNCw2OTE2NDk0OTksMjg0NzU1NzIwMCwyODk1NDU1OTc2LDMxOTM4ODk1NDAsMjcxNzU3MDU0NCwxNzgxMzU0OTA2LDE2NzY2NDM1NTQsMjU5MjUzNDA1MCwzMjMwMjUzNzUyLDExMjY0NDQ3OTAsMjc3MDIwNzY1OCwyNjMzMTU4ODIwLDIyMTA0MjMyMjYsMjYxNTc2NTU4MSwyNDE0MTU1MDg4LDMxMjcxMzkyODYsNjczNjIwNzI5LDI4MDU2MTEyMzMsMTI2OTQwNTA2Miw0MDE1MzUwNTA1LDMzNDE4MDc1NzEsNDE0OTQwOTc1NCwxMDU3MjU1MjczLDIwMTI4NzUzNTMsMjE2MjQ2OTE0MSwyMjc2NDkyODAxLDI2MDExMTczNTcsOTkzOTc3NzQ3LDM5MTg1OTMzNzAsMjY1NDI2MzE5MSw3NTM5NzMyMDksMzY0MDgxNDUsMjUzMDU4NTY1OCwyNTAxMTgzNywzNTIwMDIwMTgyLDIwODg1NzgzNDQsNTMwNTIzNTk5LDI5MTgzNjUzMzksMTUyNDAyMDMzOCwxNTE4OTI1MTMyLDM3NjA4Mjc1MDUsMzc1OTc3NzI1NCwxMjAyNzYwOTU3LDM5ODU4OTgxMzksMzkwNjE5MjUyNSw2NzQ5Nzc3NDAsNDE3NDczNDg4OSwyMDMxMzAwMTM2LDIwMTk0OTIyNDEsMzk4Mzg5MjU2NSw0MTUzODA2NDA0LDM4MjIyODAzMzIsMzUyNjc3MzMyLDIyOTc3MjAyNTAsNjA5MDc4MTMsOTA1MDEzMDksMzI4Njk5ODU0OSwxMDE2MDkyNTc4LDI1MzU5MjI0MTIsMjgzOTE1MjQyNiw0NTcxNDE2NTksNTA5ODEzMjM3LDQxMjA2Njc4OTksNjUyMDE0MzYxLDE5NjYzMzIyMDAsMjk3NTIwMjgwNSw1NTk4MTE4NiwyMzI3NDYxMDUxLDY3NjQyNzUzNywzMjU1NDkxMDY0LDI4ODIyOTQxMTksMzQzMzkyNzI2MywxMzA3MDU1OTUzLDk0MjcyNjI4Niw5MzMwNTg2NTgsMjQ2ODQxMTc5MywzOTMzOTAwOTk0LDQyMTUxNzYxNDIsMTM2MTE3MDAyMCwyMDAxNzE0NzM4LDI4MzA1NTgwNzgsMzI3NDI1OTc4MiwxMjIyNTI5ODk3LDE2NzkwMjU3OTIsMjcyOTMxNDMyMCwzNzE0OTUzNzY0LDE3NzAzMzU3NDEsMTUxNDYyMjQ2LDMwMTMyMzIxMzgsMTY4MjI5Mjk1NywxNDgzNTI5OTM1LDQ3MTkxMDU3NCwxNTM5MjQxOTQ5LDQ1ODc4ODE2MCwzNDM2MzE1MDA3LDE4MDcwMTY4OTEsMzcxODQwODgzMCw5Nzg5NzY1ODEsMTA0MzY2MzQyOCwzMTY1OTY1NzgxLDE5Mjc5OTA5NTIsNDIwMDg5MTU3OSwyMzcyMjc2OTEwLDMyMDg0MDg5MDMsMzUzMzQzMTkwNywxNDEyMzkwMzAyLDI5MzE5ODAwNTksNDEzMjMzMjQwMCwxOTQ3MDc4MDI5LDM4ODE1MDU2MjMsNDE2ODIyNjQxNywyOTQxNDg0MzgxLDEwNzc5ODgxMDQsMTMyMDQ3NzM4OCw4ODYxOTU4MTgsMTgxOTg0MDQsMzc4NjQwOWUzLDI1MDk3ODE1MzMsMTEyNzYyODA0LDM0NjMzNTY0ODgsMTg2NjQxNDk3OCw4OTEzMzM1MDYsMTg0ODg2NTEsNjYxNzkyNzYwLDE2Mjg3OTA5NjEsMzg4NTE4NzAzNiwzMTQxMTcxNDk5LDg3Njk0Njg3NywyNjkzMjgyMjczLDEzNzI0ODU5NjMsNzkxODU3NTkxLDI2ODY0MzM5OTMsMzc1OTk4MjcxOCwzMTY3MjEyMDIyLDM0NzI5NTM3OTUsMjcxNjM3OTg0Nyw0NDU2Nzk0MzMsMzU2MTk5NTY3NCwzNTA0MDA0ODExLDM1NzQyNTgyMzIsNTQxMTcxNjIsMzMzMTQwNTQxNSwyMzgxOTE4NTg4LDM3Njk3MDczNDMsNDE1NDM1MDAwNywxMTQwMTc3NzIyLDQwNzQwNTIwOTUsNjY4NTUwNTU2LDMyMTQzNTI5NDAsMzY3NDU5MzcwLDI2MTIyNTU4NSwyNjEwMTczMjIxLDQyMDkzNDk0NzMsMzQ2ODA3NDIxOSwzMjY1ODE1NjQxLDMxNDIyMjgwMSwzMDY2MTAzNjQ2LDM4MDg3ODI4NjAsMjgyMjE4NTk3LDM0MDYwMTM1MDYsMzc3MzU5MTA1NCwzNzkxMTYzNDcsMTI4NTA3MTAzOCw4NDY3ODQ4NjgsMjY2OTY0NzE1NCwzNzcxOTYyMDc5LDM1NTA0OTE2OTEsMjMwNTk0NjE0Miw0NTM2Njk5NTMsMTI2ODk4NzAyMCwzMzE3NTkyMzUyLDMyNzkzMDMzODQsMzc0NDgzMzQyMSwyNjEwNTA3NTY2LDM4NTk1MDkwNjMsMjY2NTk2NjM3LDM4NDcwMTkwOTIsNTE3NjU4NzY5LDM0NjI1NjAyMDcsMzQ0MzQyNDg3OSwzNzA3MTcwMzAsNDI0NzUyNjY2MSwyMjI0MDE4MTE3LDQxNDM2NTM1MjksNDExMjc3Mzk3NSwyNzg4MzI0ODk5LDI0NzcyNzQ0MTcsMTQ1NjI2MjQwMiwyOTAxNDQyOTE0LDE1MTc2Nzc0OTMsMTg0Njk0OTUyNywyMjk1NDkzNTgwLDM3MzQzOTc1ODYsMjE3NjQwMzkyMCwxMjgwMzQ4MTg3LDE5MDg4MjM1NzIsMzg3MTc4Njk0MSw4NDY4NjEzMjIsMTE3MjQyNjc1OCwzMjg3NDQ4NDc0LDMzODMzODMwMzcsMTY1NTE4MTA1NiwzMTM5ODEzMzQ2LDkwMTYzMjc1OCwxODk3MDMxOTQxLDI5ODY2MDcxMzgsMzA2NjgxMDIzNiwzNDQ3MTAyNTA3LDEzOTM2MzkxMDQsMzczMzUxMzc5LDk1MDc3OTIzMiw2MjU0NTQ1NzYsMzEyNDI0MDU0MCw0MTQ4NjEyNzI2LDIwMDc5OTg5MTcsNTQ0NTYzMjk2LDIyNDQ3Mzg2MzgsMjMzMDQ5NjQ3MiwyMDU4MDI1MzkyLDEyOTE0MzA1MjYsNDI0MTk4NzQ4LDUwMDM5NDM2LDI5NTg0MTAwLDM2MDU3ODMwMzMsMjQyOTg3NjMyOSwyNzkxMTA0MTYwLDEwNTc1NjM5NDksMzI1NTM2MzIzMSwzMDc1MzY3MjE4LDM0NjM5NjMyMjcsMTQ2OTA0Njc1NSw5ODU4ODc0NjJdXTt2YXIgSDI9e3Bib3g6W10sc2JveDpbXX07ZnVuY3Rpb24gQzIodCxlKXt2YXIgcj10LnNib3hbMF1bZT4+MjQmMjU1XSt0LnNib3hbMV1bZT4+MTYmMjU1XTtyZXR1cm4gcj0ocl49dC5zYm94WzJdW2U+PjgmMjU1XSkrdC5zYm94WzNdWzI1NSZlXX1mdW5jdGlvbiBSMihlLHQscil7bGV0IGk9dCxvPXIsbjtmb3IobGV0IHQ9MDt0PEY7Kyt0KWlePWUucGJveFt0XSxvPUMyKGUsaSlebyxuPWksaT1vLG89bjtyZXR1cm4gbj1pLGk9byxvPW4sb149ZS5wYm94W0ZdLHtsZWZ0OmlePWUucGJveFtGKzFdLHJpZ2h0Om99fXA9cC5CbG93ZmlzaD13LmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9rZXlQcmlvclJlc2V0IT09dGhpcy5fa2V5KXt2YXIgdD10aGlzLl9rZXlQcmlvclJlc2V0PXRoaXMuX2tleSxuPXQud29yZHMsdD10LnNpZ0J5dGVzLzQ7e3ZhciBzPUgyLGM9bixhPXQ7Zm9yKGxldCBlPTA7ZTw0O2UrKyl7cy5zYm94W2VdPVtdO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKylzLnNib3hbZV1bdF09RTJbZV1bdF19bGV0IGU9MDtmb3IobGV0IHQ9MDt0PEYrMjt0Kyspcy5wYm94W3RdPUQyW3RdXmNbZV0sKytlPj1hJiYoZT0wKTtsZXQgcj0wLGk9MCxvPTA7Zm9yKGxldCB0PTA7dDxGKzI7dCs9MilvPVIyKHMscixpKSxyPW8ubGVmdCxpPW8ucmlnaHQscy5wYm94W3RdPXIscy5wYm94W3QrMV09aTtmb3IobGV0IGU9MDtlPDQ7ZSsrKWZvcihsZXQgdD0wO3Q8MjU2O3QrPTIpbz1SMihzLHIsaSkscj1vLmxlZnQsaT1vLnJpZ2h0LHMuc2JveFtlXVt0XT1yLHMuc2JveFtlXVt0KzFdPWl9fX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9UjIoSDIsdFtlXSx0W2UrMV0pO3RbZV09ci5sZWZ0LHRbZSsxXT1yLnJpZ2h0fSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgcj1mdW5jdGlvbihlLHQscil7bGV0IGk9dCxvPXIsbjtmb3IobGV0IHQ9RisxOzE8dDstLXQpaV49ZS5wYm94W3RdLG89QzIoZSxpKV5vLG49aSxpPW8sbz1uO3JldHVybiBuPWksaT1vLG89bixvXj1lLnBib3hbMV0se2xlZnQ6aV49ZS5wYm94WzBdLHJpZ2h0Om99fShIMix0W2VdLHRbZSsxXSk7dFtlXT1yLmxlZnQsdFtlKzFdPXIucmlnaHR9LGJsb2NrU2l6ZToyLGtleVNpemU6NCxpdlNpemU6Mn0pLFAuQmxvd2Zpc2g9dy5fY3JlYXRlSGVscGVyKHApfXJldHVybiBpfSk7"},{"meta":{"name":"generate-ip.min.js","url":"https://cdn.jsdelivr.net/npm/generate-ip@2.4.4/dist/generate-ip.min.js#sha256-aQQKAQcMgCu8IpJp9HKs387x0uYxngO+Fb4pc5nSF4I=","ts":1764084296561,"mimetype":"text/javascript"},"source":"LyoqCiAqICDCqSAyMDI0IEFkYW0gTHVpICYgY29udHJpYnV0b3JzIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4KICogIFNvdXJjZTogaHR0cHM6Ly9jb2RlLmdlbmVyYXRlLWlwLm9yZwogKiAgRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9kb2NzLmdlbmVyYXRlLWlwLm9yZwogKi8KY29uc3QgaXB2ND17Z2VuZXJhdGU6ZnVuY3Rpb24obz17fSl7dmFyIGU9e3ZlcmJvc2U6ITAscXR5OjF9O2lmKHZhbGlkYXRlT3B0aW9ucyhvLGUsImh0dHBzOi8vZG9jcy5nZW5lcmF0ZS1pcC5vcmcvI2lwdjRnZW5lcmF0ZW9wdGlvbnMiLCJpcHY0LmdlbmVyYXRlKHsgdmVyYm9zZTogZmFsc2UsIHF0eTogMyB9KSIpKXsobz17Li4uZSwuLi5vfSkudmVyYm9zZSYmY29uc29sZS5pbmZvKGBpcHY0LmdlbmVyYXRlKCkgwrsgR2VuZXJhdGluZyBJUHY0IGFkZHJlc3MkezE8by5xdHk/ImVzIjoiIn0uLi5gKTt2YXIgdD1bXTtpZigxPG8ucXR5KWZvcihsZXQgZT0wO2U8by5xdHk7ZSsrKXQucHVzaCh0aGlzLmdlbmVyYXRlKHsuLi5vLHF0eToxLHZlcmJvc2U6ITF9KSk7ZWxzZXt2YXIgcj1bXTtmb3IobGV0IGU9MDtlPDQ7ZSsrKXIucHVzaChyYW5kb21JbnQoMCwyNTYpKTt0LnB1c2goci5qb2luKCIuIikpfWU9MTxvLnF0eT90OnRbMF07cmV0dXJuIG8udmVyYm9zZSYmKGNvbnNvbGUuaW5mbyhgaXB2NC5nZW5lcmF0ZSgpIMK7IElQdjQgYWRkcmVzcyR7MTxvLnF0eT8iZXMiOiIifSBnZW5lcmF0ZWQhYCksY29uc29sZS5pbmZvKCJpcHY0LmdlbmVyYXRlKCkgwrsgIisoMT09by5xdHk/ZTplLmpvaW4oIiwgIikpKSksZX19LHZhbGlkYXRlOmZ1bmN0aW9uKGUsbz17fSl7dmFyIHQ9Imh0dHBzOi8vZG9jcy5nZW5lcmF0ZS1pcC5vcmcvI2lwdjR2YWxpZGF0ZWFkZHJlc3Mtb3B0aW9ucyIscj17dmVyYm9zZTohMH07aWYoInN0cmluZyIhPXR5cGVvZiBlKWNvbnNvbGUuZXJyb3IoImlwdjQudmFsaWRhdGUoKSDCuyBFUlJPUjogMXN0IGFyZyA8YWRkcmVzcz4gbXVzdCBiZSBhIHN0cmluZy4iKSxjb25zb2xlLmluZm8oImlwdjQudmFsaWRhdGUoKSDCuyBGb3IgbW9yZSBoZWxwLCBwbGVhc2UgdmlzaXQgIit0KTtlbHNlIGlmKHZhbGlkYXRlT3B0aW9ucyhvLHIsdCwiaXB2NC52YWxpZGF0ZSgnMC4wLjI1NS4yNTUnLCB7IHZlcmJvc2U6IGZhbHNlIH0pIikpcmV0dXJuKG89ey4uLnIsLi4ub30pLnZlcmJvc2UmJmNvbnNvbGUuaW5mbyhgaXB2NC52YWxpZGF0ZSgpIMK7IFZhbGlkYXRpbmcgJHtlfS4uLmApLHI9ISg0IT0odD1lLnNwbGl0KCIuIikpLmxlbmd0aHx8dC5zb21lKGU9PiEvXlxkKyQvLnRlc3QoZSl8fHBhcnNlSW50KGUsMTApPDB8fDI1NTxwYXJzZUludChlLDEwKSkpLG8udmVyYm9zZSYmY29uc29sZS5pbmZvKGBpcHY0LnZhbGlkYXRlKCkgwrsgSVAgaXMgJHtyPyIiOiJpbiJ9dmFsaWQgSVB2NCBhZGRyZXNzIWApLHJ9fSxpcHY2PXtnZW5lcmF0ZTpmdW5jdGlvbihvPXt9KXt2YXIgZT17dmVyYm9zZTohMCxxdHk6MSxsZWFkaW5nWmVyb3M6ITEsZG91YmxlQ29sb246ITB9O2lmKHZhbGlkYXRlT3B0aW9ucyhvLGUsImh0dHBzOi8vZG9jcy5nZW5lcmF0ZS1pcC5vcmcvI2lwdjZnZW5lcmF0ZW9wdGlvbnMiLCJpcHY2LmdlbmVyYXRlKHsgbGVhZGluZ1plcm9zOiB0cnVlLCBxdHk6IDUgfSkiKSl7KG89ey4uLmUsLi4ub30pLnZlcmJvc2UmJmNvbnNvbGUuaW5mbyhgaXB2Ni5nZW5lcmF0ZSgpIMK7IEdlbmVyYXRpbmcgSVB2NiBhZGRyZXNzJHsxPG8ucXR5PyJlcyI6IiJ9Li4uYCk7dmFyIHQ9W107aWYoMTxvLnF0eSlmb3IobGV0IGU9MDtlPG8ucXR5O2UrKyl0LnB1c2godGhpcy5nZW5lcmF0ZSh7Li4ubyxxdHk6MSx2ZXJib3NlOiExfSkpO2Vsc2V7Y29uc3QgaT1bXSx7cXR5Om4sLi4uc309bztmb3IobGV0IGU9MDtlPDg7ZSsrKXt2YXIgcj1yYW5kb21IZXgoNCk7aS5wdXNoKHIpfXQucHVzaCh0aGlzLmZvcm1hdChpLmpvaW4oIjoiKSx7Li4ucyx2ZXJib3NlOiExfSkpfWU9MTxvLnF0eT90OnRbMF07cmV0dXJuIG8udmVyYm9zZSYmKGNvbnNvbGUuaW5mbyhgaXB2Ni5nZW5lcmF0ZSgpIMK7IElQdjYgYWRkcmVzcyR7MTxvLnF0eT8iZXMiOiIifSBnZW5lcmF0ZWQhYCksY29uc29sZS5pbmZvKCJpcHY2LmdlbmVyYXRlKCkgwrsgIisoMT09by5xdHk/ZTplLmpvaW4oIiwgIikpKSksZX19LGZvcm1hdDpmdW5jdGlvbihvLHQ9e30pe3ZhciByLGU9Imh0dHBzOi8vZG9jcy5nZW5lcmF0ZS1pcC5vcmcvI2lwdjZmb3JtYXRpcHY2YWRkcmVzcy1vcHRpb25zIixpPXt2ZXJib3NlOiEwLGxlYWRpbmdaZXJvczohMSxkb3VibGVDb2xvbjohMH07aWYoInN0cmluZyIhPXR5cGVvZiBvKWNvbnNvbGUuZXJyb3IoImlwdjYuZm9ybWF0KCkgwrsgRVJST1I6IDFzdCBhcmcgPGlwdjZhZGRyZXNzPiBtdXN0IGJlIGEgc3RyaW5nLiIpLGNvbnNvbGUuaW5mbygiaXB2Ni5mb3JtYXQoKSDCuyBGb3IgbW9yZSBoZWxwLCBwbGVhc2UgdmlzaXQgIitlKTtlbHNlIGlmKHRoaXMudmFsaWRhdGUobyx7dmVyYm9zZTohMX0pKXtpZih2YWxpZGF0ZU9wdGlvbnModCxpLGUsImlwdjYuZm9ybWF0KCcwZDo6ZmZmZjoxOTIuMS41Ni4xMC85NicsIHsgbGVhZGluZ1plcm9zOiB0cnVlLCBkb3VibGVDb2xvbjogZmFsc2UgfSkiKSl7dD17Li4uaSwuLi50fTtsZXQgZT1vO2lmKGU9dC5kb3VibGVDb2xvbj8odC52ZXJib3NlJiZjb25zb2xlLmluZm8oImlwdjYuZm9ybWF0KCkgwrsgUmVwbGFjaW5nIHplcm8gc2VyaWVzIHcvICc6OicuLi4iKSxlLnJlcGxhY2UoLzooPzowKzopKy8sIjo6IikpOih0LnZlcmJvc2UmJmNvbnNvbGUuaW5mbygiaXB2Ni5mb3JtYXQoKSDCuyBFeHBhbmRpbmcgJzo6JyBpbnRvIHplcm8gc2VyaWVzLi4uIiksaT1lLnNwbGl0KCI6IikuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aCxyPXQubGVhZGluZ1plcm9zPyIwMDAwIjoiMCIsaT1BcnJheSg4LWkpLmZpbGwocikuam9pbigiOiIpLGUucmVwbGFjZSgiOjoiLGA6JHtpfTpgKSksdC5sZWFkaW5nWmVyb3Mpe3QudmVyYm9zZSYmY29uc29sZS5pbmZvKCJpcHY2LmZvcm1hdCgpIMK7IEFkZGluZyBsZWFkaW5nIHplcm9zLi4uIik7dmFyIG49ZS5zcGxpdCgiOiIpO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKWZvcig7bltlXS5sZW5ndGg8NDspbltlXT0iMCIrbltlXTtlPW4uam9pbigiOiIpfWVsc2UgdC52ZXJib3NlJiZjb25zb2xlLmluZm8oImlwdjYuZm9ybWF0KCkgwrsgU3RyaXBwaW5nIGxlYWRpbmcgemVyb3MuLi4iKSxlPW8ucmVwbGFjZSgvKF58KD88PTopKTArKD8hOikvZywiJDEiKTtyZXR1cm4gdC52ZXJib3NlJiYoZSE9bz9jb25zb2xlLmluZm8oImlwdjYuZm9ybWF0KCkgwrsgSVAgZm9ybWF0dGVkIHN1Y2Nlc3NmdWxseSEiKTpjb25zb2xlLmluZm8oImlwdjYuZm9ybWF0KCkgwrsgSVAgYWxyZWFkeSBmb3JtYXR0ZWQgdG8gc3BlY3MuIiksY29uc29sZS5pbmZvKCJpcHY2LmZvcm1hdCgpIMK7ICIrZSkpLGV9fWVsc2UgY29uc29sZS5lcnJvcihgaXB2Ni5mb3JtYXQoKSDCuyBFUlJPUjogICR7b30gaXMgbm90IGEgdmFsaWQgSVB2NiBhZGRyZXNzLmApLGNvbnNvbGUuaW5mbygiaXB2Ni5mb3JtYXQoKSDCuyBGb3IgbW9yZSBoZWxwLCBwbGVhc2UgdmlzaXQgIitlKX0sdmFsaWRhdGU6ZnVuY3Rpb24oZSxvPXt9KXt2YXIgdD0iaHR0cHM6Ly9kb2NzLmdlbmVyYXRlLWlwLm9yZy8jaXB2NnZhbGlkYXRlYWRkcmVzcy1vcHRpb25zIixyPXt2ZXJib3NlOiEwfTtpZigic3RyaW5nIiE9dHlwZW9mIGUpY29uc29sZS5lcnJvcigiaXB2Ni52YWxpZGF0ZSgpIMK7IEVSUk9SOiAxc3QgYXJnIDxhZGRyZXNzPiBtdXN0IGJlIGEgc3RyaW5nLiIpLGNvbnNvbGUuaW5mbygiaXB2Ni52YWxpZGF0ZSgpIMK7IEZvciBtb3JlIGhlbHAsIHBsZWFzZSB2aXNpdCAiK3QpO2Vsc2UgaWYodmFsaWRhdGVPcHRpb25zKG8scix0LCJpcHY2LnZhbGlkYXRlKCcwOjA6MDowOjA6ZmZmZjoxOTIuMS41Ni4xMC85NicsIHsgdmVyYm9zZTogZmFsc2UgfSkiKSl7KG89ey4uLnIsLi4ub30pLnZlcmJvc2UmJmNvbnNvbGUuaW5mbyhgaXB2Ni52YWxpZGF0ZSgpIMK7IFZhbGlkYXRpbmcgJHtlfS4uLmApO2NvbnN0IGk9ZS5zcGxpdCgvOjo/Lyksbj1pW2kubGVuZ3RoLTFdO3Q9IShlLmluY2x1ZGVzKCI6OiIpJiYyPGUuc3BsaXQoIjo6IikubGVuZ3RofHwvOnszLH0vLnRlc3QoZSl8fGkubGVuZ3RoPDJ8fDg8aS5sZW5ndGh8fGkuc29tZShlPT4hKC9eW1xkYS1mXXsxLDR9JC9pLnRlc3QoZSl8fGU9PW4mJmlwdjQudmFsaWRhdGUobi5yZXBsYWNlKC9cLyg/OjEyWzAtOF18WzEtOV0/XGQpJC8sIiIpLHt2ZXJib3NlOiExfSkpKSk7cmV0dXJuIG8udmVyYm9zZSYmY29uc29sZS5pbmZvKGBpcHY2LnZhbGlkYXRlKCkgwrsgSVAgaXMgJHt0PyIiOiJpbiJ9dmFsaWQgSVB2NiBhZGRyZXNzIWApLHR9fX0sbWFjPXtnZW5lcmF0ZTpmdW5jdGlvbihvPXt9KXt2YXIgZT17dmVyYm9zZTohMCxxdHk6MX07aWYodmFsaWRhdGVPcHRpb25zKG8sZSwiaHR0cHM6Ly9kb2NzLmdlbmVyYXRlLWlwLm9yZy8jbWFjZ2VuZXJhdGVvcHRpb25zIiwibWFjLmdlbmVyYXRlKHsgdmVyYm9zZTogZmFsc2UsIHF0eTogMiB9KSIpKXsobz17Li4uZSwuLi5vfSkudmVyYm9zZSYmY29uc29sZS5pbmZvKGBtYWMuZ2VuZXJhdGUoKSDCuyBHZW5lcmF0aW5nIE1BQyBhZGRyZXNzJHsxPG8ucXR5PyJlcyI6IiJ9Li4uYCk7dmFyIHQ9W107aWYoMTxvLnF0eSlmb3IobGV0IGU9MDtlPG8ucXR5O2UrKyl0LnB1c2godGhpcy5nZW5lcmF0ZSh7Li4ubyxxdHk6MSx2ZXJib3NlOiExfSkpO2Vsc2V7dmFyW2Uscl09QXJyYXkuZnJvbSh7bGVuZ3RoOjJ9LCgpPT57dmFyIG89W107Zm9yKGxldCBlPTA7ZTwzO2UrKylvLnB1c2gocmFuZG9tSGV4KDIpKTtyZXR1cm4gby5qb2luKCI6Iil9KTt0LnB1c2goZSsiOiIrcil9ZT0xPG8ucXR5P3Q6dFswXTtyZXR1cm4gby52ZXJib3NlJiYoY29uc29sZS5pbmZvKGBtYWMuZ2VuZXJhdGUoKSDCuyBNQUMgYWRkcmVzcyR7MTxvLnF0eT8iZXMiOiIifSBnZW5lcmF0ZWQhYCksY29uc29sZS5pbmZvKCJtYWMuZ2VuZXJhdGUoKSDCuyAiKygxPT1vLnF0eT9lOmUuam9pbigiLCAiKSkpKSxlfX0sdmFsaWRhdGU6ZnVuY3Rpb24oZSxvPXt9KXt2YXIgdD0iaHR0cHM6Ly9kb2NzLmdlbmVyYXRlLWlwLm9yZy8jbWFjdmFsaWRhdGVhZGRyZXNzLW9wdGlvbnMiLHI9e3ZlcmJvc2U6ITB9O2lmKCJzdHJpbmciIT10eXBlb2YgZSljb25zb2xlLmVycm9yKCJtYWMudmFsaWRhdGUoKSDCuyBFUlJPUjogMXN0IGFyZyA8YWRkcmVzcz4gbXVzdCBiZSBhIHN0cmluZy4iKSxjb25zb2xlLmluZm8oIm1hYy52YWxpZGF0ZSgpIMK7IEZvciBtb3JlIGhlbHAsIHBsZWFzZSB2aXNpdCAiK3QpO2Vsc2UgaWYodmFsaWRhdGVPcHRpb25zKG8scix0LCJtYWMudmFsaWRhdGUoJzAwOjFBOjJCOjNDOjREOjVFJywgeyB2ZXJib3NlOiBmYWxzZSB9KSIpKXJldHVybihvPXsuLi5yLC4uLm99KS52ZXJib3NlJiZjb25zb2xlLmluZm8oYG1hYy52YWxpZGF0ZSgpIMK7IFZhbGlkYXRpbmcgJHtlfS4uLmApLHQ9L14oPzpbXGRhLWZdezJ9WzotXSl7NX1bXGRhLWZdezJ9JC9pLnRlc3QoZSksby52ZXJib3NlJiZjb25zb2xlLmluZm8oYG1hYy52YWxpZGF0ZSgpIMK7IEFkZHJlc3MgaXMgJHt0PyIiOiJpbiJ9dmFsaWQgTUFDIGFkZHJlc3MhYCksdH19O2Z1bmN0aW9uIHJhbmRvbUludChlLG8pe3ZhciB0O3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgcmVxdWlyZT8odD0od2luZG93LmNyeXB0b3x8d2luZG93Lm1zQ3J5cHRvKT8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgxKSlbMF0vNDI5NDk2NzI5NXx8TWF0aC5yYW5kb20oKSxNYXRoLmZsb29yKHQqKG8tZSkpK2UpOnJlcXVpcmUoImNyeXB0byIpLnJhbmRvbUludChlLG8pfWZ1bmN0aW9uIHJhbmRvbUhleChvKXtsZXQgdD0iIjtmb3IobGV0IGU9MDtlPG87ZSsrKXQrPXJhbmRvbUludCgwLDE2KS50b1N0cmluZygxNik7cmV0dXJuIHR9ZnVuY3Rpb24gdmFsaWRhdGVPcHRpb25zKGUsbyx0LHIpe2NvbnN0IGk9SlNPTi5zdHJpbmdpZnkobyxudWxsLDIpLnJlcGxhY2UoLyIoW14iXSspIjovZywiJDE6IikucmVwbGFjZSgvIi9nLCInIikucmVwbGFjZSgvXG5ccyovZywiICIpLG49T2JqZWN0LmtleXMobykuam9pbigiLCAiKSxzPU9iamVjdC5rZXlzKG8pLmZpbHRlcihlPT4iYm9vbGVhbiI9PXR5cGVvZiBvW2VdKSxhPU9iamVjdC5rZXlzKG8pLmZpbHRlcihlPT5OdW1iZXIuaXNJbnRlZ2VyKG9bZV0pKTtsZXQgbD0idmFsaWRhdGVPcHRpb25zKCkgwrsgIjt0cnl7bD12YWxpZGF0ZU9wdGlvbnMuY2FsbGVyPy5uYW1lKyIoKSDCuyAifWNhdGNoKGUpe312YXIgdj1yLnNwbGl0KCIsIikuZmluZEluZGV4KGU9PmUudHJpbSgpLnN0YXJ0c1dpdGgoInsiKSkrMSxwPSh2Kz1bInN0IiwibmQiLCJyZCJdW3YtMV18fCJ0aCIsKCk9Pntjb25zb2xlLmluZm8oYCR7bH1WYWxpZCBvcHRpb25zOiBbICR7bn0gXWApLGNvbnNvbGUuaW5mbyhsKyJJZiBvbWl0dGVkLCBkZWZhdWx0IHNldHRpbmdzIGFyZTogIitpKX0pLGQ9KCk9Pntjb25zb2xlLmluZm8obCsiRm9yIG1vcmUgaGVscCwgcGxlYXNlIHZpc2l0ICIrdCl9O2lmKCJvYmplY3QiIT10eXBlb2YgZSlyZXR1cm4gY29uc29sZS5lcnJvcihsK2BFUlJPUjogJHsiMHRoIj09dj8iW08iOnYrIiBhcmcgW28ifXB0aW9uc10gY2FuIG9ubHkgYmUgYW4gb2JqZWN0IG9mIGtleS92YWx1ZXMuYCksY29uc29sZS5pbmZvKGwrIkV4YW1wbGUgdmFsaWQgY2FsbDogIityKSxwKCksZCgpLCExO2Zvcihjb25zdCBmIGluIGUpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxmKSlyZXR1cm4gY29uc29sZS5lcnJvcihgJHtsfUVSUk9SOiBcYCR7Zn1cYCBpcyBhbiBpbnZhbGlkIG9wdGlvbi5gKSxwKCksZCgpLCExO2lmKHMuaW5jbHVkZXMoZikmJiJib29sZWFuIiE9dHlwZW9mIGVbZl0pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYCR7bH1FUlJPUjogWyR7Zn1dIG9wdGlvbiBjYW4gb25seSBiZSBcYHRydWVcYCBvciBcYGZhbHNlXGAuYCksZCgpLCExO2lmKGEuaW5jbHVkZXMoZikmJihlW2ZdPXBhcnNlSW50KGVbZl0sMTApLGlzTmFOKGVbZl0pfHxlW2ZdPDEpKXJldHVybiBjb25zb2xlLmVycm9yKGAke2x9RVJST1I6IFske2Z9XSBvcHRpb24gY2FuIG9ubHkgYmUgYW4gaW50ZWdlciA+IDAuYCksZCgpLCExfXJldHVybiEwfWNvbnN0IGdpcEFsaWFzZXM9e2lwdjQ6WyJpcFY0IiwiSVB2NCIsIklQVjQiLCJJcHY0IiwiSXBWNCIsImlwIiwiSVAiLCJJcCJdLGlwdjY6WyJpcFY2IiwiSVB2NiIsIklQVjYiLCJJcHY2IiwiSXBWNiJdLG1hYzpbIk1BQyIsIk1hYyIsImV0aGVybmV0IiwiRXRoZXJuZXQiXX07dHJ5e21vZHVsZS5leHBvcnRzPXtpcHY0OmlwdjQsaXB2NjppcHY2LG1hYzptYWN9fWNhdGNoKGUpe310cnl7d2luZG93LmlwdjQ9aXB2NCx3aW5kb3cuaXB2Nj1pcHY2LHdpbmRvdy5tYWM9bWFjfWNhdGNoKGUpe31mb3IoY29uc3QgTWEgaW4gZ2lwQWxpYXNlcylnaXBBbGlhc2VzW01hXS5mb3JFYWNoKGU9Pnt0cnl7bW9kdWxlLmV4cG9ydHNbZV09bW9kdWxlLmV4cG9ydHNbTWFdfWNhdGNoKGUpe310cnl7d2luZG93W2VdPXdpbmRvd1tNYV19Y2F0Y2goZSl7fX0pOw=="},{"meta":{"name":"highlight.min.js","url":"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js#sha256-g3pvpbDHNrUrveKythkPMF2j/J7UFoHbUyFQcFe1yEY=","ts":1764084296566,"mimetype":"text/javascript"},"source":"LyohCiAgSGlnaGxpZ2h0LmpzIHYxMS45LjAgKGdpdDogZjQ3MTAzZDRmMSkKICAoYykgMjAwNi0yMDIzIHVuZGVmaW5lZCBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAgTGljZW5zZTogQlNELTMtQ2xhdXNlCiAqLwp2YXIgaGxqcz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKG4pewpyZXR1cm4gbiBpbnN0YW5jZW9mIE1hcD9uLmNsZWFyPW4uZGVsZXRlPW4uc2V0PSgpPT57CnRocm93IEVycm9yKCJtYXAgaXMgcmVhZC1vbmx5Iil9Om4gaW5zdGFuY2VvZiBTZXQmJihuLmFkZD1uLmNsZWFyPW4uZGVsZXRlPSgpPT57CnRocm93IEVycm9yKCJzZXQgaXMgcmVhZC1vbmx5IikKfSksT2JqZWN0LmZyZWV6ZShuKSxPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhuKS5mb3JFYWNoKCh0PT57CmNvbnN0IGE9blt0XSxpPXR5cGVvZiBhOyJvYmplY3QiIT09aSYmImZ1bmN0aW9uIiE9PWl8fE9iamVjdC5pc0Zyb3plbihhKXx8ZShhKQp9KSksbn1jbGFzcyBue2NvbnN0cnVjdG9yKGUpewp2b2lkIDA9PT1lLmRhdGEmJihlLmRhdGE9e30pLHRoaXMuZGF0YT1lLmRhdGEsdGhpcy5pc01hdGNoSWdub3JlZD0hMX0KaWdub3JlTWF0Y2goKXt0aGlzLmlzTWF0Y2hJZ25vcmVkPSEwfX1mdW5jdGlvbiB0KGUpewpyZXR1cm4gZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjeDI3OyIpCn1mdW5jdGlvbiBhKGUsLi4ubil7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBuIGluIGUpdFtuXT1lW25dCjtyZXR1cm4gbi5mb3JFYWNoKChlPT57Zm9yKGNvbnN0IG4gaW4gZSl0W25dPWVbbl19KSksdH1jb25zdCBpPWU9PiEhZS5zY29wZQo7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlLG4pewp0aGlzLmJ1ZmZlcj0iIix0aGlzLmNsYXNzUHJlZml4PW4uY2xhc3NQcmVmaXgsZS53YWxrKHRoaXMpfWFkZFRleHQoZSl7CnRoaXMuYnVmZmVyKz10KGUpfW9wZW5Ob2RlKGUpe2lmKCFpKGUpKXJldHVybjtjb25zdCBuPSgoZSx7cHJlZml4Om59KT0+ewppZihlLnN0YXJ0c1dpdGgoImxhbmd1YWdlOiIpKXJldHVybiBlLnJlcGxhY2UoImxhbmd1YWdlOiIsImxhbmd1YWdlLSIpCjtpZihlLmluY2x1ZGVzKCIuIikpe2NvbnN0IHQ9ZS5zcGxpdCgiLiIpCjtyZXR1cm5bYCR7bn0ke3Quc2hpZnQoKX1gLC4uLnQubWFwKCgoZSxuKT0+YCR7ZX0keyJfIi5yZXBlYXQobisxKX1gKSldLmpvaW4oIiAiKQp9cmV0dXJuYCR7bn0ke2V9YH0pKGUuc2NvcGUse3ByZWZpeDp0aGlzLmNsYXNzUHJlZml4fSk7dGhpcy5zcGFuKG4pfQpjbG9zZU5vZGUoZSl7aShlKSYmKHRoaXMuYnVmZmVyKz0iPC9zcGFuPiIpfXZhbHVlKCl7cmV0dXJuIHRoaXMuYnVmZmVyfXNwYW4oZSl7CnRoaXMuYnVmZmVyKz1gPHNwYW4gY2xhc3M9IiR7ZX0iPmB9fWNvbnN0IHM9KGU9e30pPT57Y29uc3Qgbj17Y2hpbGRyZW46W119CjtyZXR1cm4gT2JqZWN0LmFzc2lnbihuLGUpLG59O2NsYXNzIG97Y29uc3RydWN0b3IoKXsKdGhpcy5yb290Tm9kZT1zKCksdGhpcy5zdGFjaz1bdGhpcy5yb290Tm9kZV19Z2V0IHRvcCgpewpyZXR1cm4gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXX1nZXQgcm9vdCgpe3JldHVybiB0aGlzLnJvb3ROb2RlfWFkZChlKXsKdGhpcy50b3AuY2hpbGRyZW4ucHVzaChlKX1vcGVuTm9kZShlKXtjb25zdCBuPXMoe3Njb3BlOmV9KQo7dGhpcy5hZGQobiksdGhpcy5zdGFjay5wdXNoKG4pfWNsb3NlTm9kZSgpewppZih0aGlzLnN0YWNrLmxlbmd0aD4xKXJldHVybiB0aGlzLnN0YWNrLnBvcCgpfWNsb3NlQWxsTm9kZXMoKXsKZm9yKDt0aGlzLmNsb3NlTm9kZSgpOyk7fXRvSlNPTigpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnJvb3ROb2RlLG51bGwsNCl9CndhbGsoZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuX3dhbGsoZSx0aGlzLnJvb3ROb2RlKX1zdGF0aWMgX3dhbGsoZSxuKXsKcmV0dXJuInN0cmluZyI9PXR5cGVvZiBuP2UuYWRkVGV4dChuKTpuLmNoaWxkcmVuJiYoZS5vcGVuTm9kZShuKSwKbi5jaGlsZHJlbi5mb3JFYWNoKChuPT50aGlzLl93YWxrKGUsbikpKSxlLmNsb3NlTm9kZShuKSksZX1zdGF0aWMgX2NvbGxhcHNlKGUpewoic3RyaW5nIiE9dHlwZW9mIGUmJmUuY2hpbGRyZW4mJihlLmNoaWxkcmVuLmV2ZXJ5KChlPT4ic3RyaW5nIj09dHlwZW9mIGUpKT9lLmNoaWxkcmVuPVtlLmNoaWxkcmVuLmpvaW4oIiIpXTplLmNoaWxkcmVuLmZvckVhY2goKGU9PnsKby5fY29sbGFwc2UoZSl9KSkpfX1jbGFzcyBsIGV4dGVuZHMgb3tjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMub3B0aW9ucz1lfQphZGRUZXh0KGUpeyIiIT09ZSYmdGhpcy5hZGQoZSl9c3RhcnRTY29wZShlKXt0aGlzLm9wZW5Ob2RlKGUpfWVuZFNjb3BlKCl7CnRoaXMuY2xvc2VOb2RlKCl9X19hZGRTdWJsYW5ndWFnZShlLG4pe2NvbnN0IHQ9ZS5yb290CjtuJiYodC5zY29wZT0ibGFuZ3VhZ2U6IituKSx0aGlzLmFkZCh0KX10b0hUTUwoKXsKcmV0dXJuIG5ldyByKHRoaXMsdGhpcy5vcHRpb25zKS52YWx1ZSgpfWZpbmFsaXplKCl7CnJldHVybiB0aGlzLmNsb3NlQWxsTm9kZXMoKSwhMH19ZnVuY3Rpb24gYyhlKXsKcmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP2U6ZS5zb3VyY2U6bnVsbH1mdW5jdGlvbiBkKGUpe3JldHVybiBiKCIoPz0iLGUsIikiKX0KZnVuY3Rpb24gZyhlKXtyZXR1cm4gYigiKD86IixlLCIpKiIpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIGIoIig/OiIsZSwiKT8iKX0KZnVuY3Rpb24gYiguLi5lKXtyZXR1cm4gZS5tYXAoKGU9PmMoZSkpKS5qb2luKCIiKX1mdW5jdGlvbiBtKC4uLmUpe2NvbnN0IG49KGU9PnsKY29uc3Qgbj1lW2UubGVuZ3RoLTFdCjtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIG4mJm4uY29uc3RydWN0b3I9PT1PYmplY3Q/KGUuc3BsaWNlKGUubGVuZ3RoLTEsMSksbik6e30KfSkoZSk7cmV0dXJuIigiKyhuLmNhcHR1cmU/IiI6Ij86IikrZS5tYXAoKGU9PmMoZSkpKS5qb2luKCJ8IikrIikifQpmdW5jdGlvbiBwKGUpe3JldHVybiBSZWdFeHAoZS50b1N0cmluZygpKyJ8IikuZXhlYygiIikubGVuZ3RoLTF9CmNvbnN0IF89L1xbKD86W15cXFxdXXxcXC4pKlxdfFwoXD8/fFxcKFsxLTldWzAtOV0qKXxcXC4vCjtmdW5jdGlvbiBoKGUse2pvaW5XaXRoOm59KXtsZXQgdD0wO3JldHVybiBlLm1hcCgoZT0+e3QrPTE7Y29uc3Qgbj10CjtsZXQgYT1jKGUpLGk9IiI7Zm9yKDthLmxlbmd0aD4wOyl7Y29uc3QgZT1fLmV4ZWMoYSk7aWYoIWUpe2krPWE7YnJlYWt9CmkrPWEuc3Vic3RyaW5nKDAsZS5pbmRleCksCmE9YS5zdWJzdHJpbmcoZS5pbmRleCtlWzBdLmxlbmd0aCksIlxcIj09PWVbMF1bMF0mJmVbMV0/aSs9IlxcIisoTnVtYmVyKGVbMV0pK24pOihpKz1lWzBdLAoiKCI9PT1lWzBdJiZ0KyspfXJldHVybiBpfSkpLm1hcCgoZT0+YCgke2V9KWApKS5qb2luKG4pfQpjb25zdCBmPSJbYS16QS1aXVxcdyoiLEU9IlthLXpBLVpfXVxcdyoiLHk9IlxcYlxcZCsoXFwuXFxkKyk/IixOPSIoLT8pKFxcYjBbeFhdW2EtZkEtRjAtOV0rfChcXGJcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWy0rXT9cXGQrKT8pIix3PSJcXGIoMGJbMDFdKykiLHY9ewpiZWdpbjoiXFxcXFtcXHNcXFNdIixyZWxldmFuY2U6MH0sTz17c2NvcGU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiJyIsCmlsbGVnYWw6IlxcbiIsY29udGFpbnM6W3ZdfSxrPXtzY29wZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLApjb250YWluczpbdl19LHg9KGUsbix0PXt9KT0+e2NvbnN0IGk9YSh7c2NvcGU6ImNvbW1lbnQiLGJlZ2luOmUsZW5kOm4sCmNvbnRhaW5zOltdfSx0KTtpLmNvbnRhaW5zLnB1c2goe3Njb3BlOiJkb2N0YWciLApiZWdpbjoiWyBdKig/PShUT0RPfEZJWE1FfE5PVEV8QlVHfE9QVElNSVpFfEhBQ0t8WFhYKTopIiwKZW5kOi8oVE9ET3xGSVhNRXxOT1RFfEJVR3xPUFRJTUlaRXxIQUNLfFhYWCk6LyxleGNsdWRlQmVnaW46ITAscmVsZXZhbmNlOjB9KQo7Y29uc3Qgcj1tKCJJIiwiYSIsImlzIiwic28iLCJ1cyIsInRvIiwiYXQiLCJpZiIsImluIiwiaXQiLCJvbiIsL1tBLVphLXpdK1snXShkfHZlfHJlfGxsfHR8c3xuKS8sL1tBLVphLXpdK1stXVthLXpdKy8sL1tBLVphLXpdW2Etel17Mix9LykKO3JldHVybiBpLmNvbnRhaW5zLnB1c2goe2JlZ2luOmIoL1sgXSsvLCIoIixyLC9bLl0/WzpdPyhbLl1bIF18WyBdKS8sIil7M30iKX0pLGkKfSxNPXgoIi8vIiwiJCIpLFM9eCgiL1xcKiIsIlxcKi8iKSxBPXgoIiMiLCIkIik7dmFyIEM9T2JqZWN0LmZyZWV6ZSh7Cl9fcHJvdG9fXzpudWxsLEFQT1NfU1RSSU5HX01PREU6TyxCQUNLU0xBU0hfRVNDQVBFOnYsQklOQVJZX05VTUJFUl9NT0RFOnsKc2NvcGU6Im51bWJlciIsYmVnaW46dyxyZWxldmFuY2U6MH0sQklOQVJZX05VTUJFUl9SRTp3LENPTU1FTlQ6eCwKQ19CTE9DS19DT01NRU5UX01PREU6UyxDX0xJTkVfQ09NTUVOVF9NT0RFOk0sQ19OVU1CRVJfTU9ERTp7c2NvcGU6Im51bWJlciIsCmJlZ2luOk4scmVsZXZhbmNlOjB9LENfTlVNQkVSX1JFOk4sRU5EX1NBTUVfQVNfQkVHSU46ZT0+T2JqZWN0LmFzc2lnbihlLHsKIm9uOmJlZ2luIjooZSxuKT0+e24uZGF0YS5fYmVnaW5NYXRjaD1lWzFdfSwib246ZW5kIjooZSxuKT0+ewpuLmRhdGEuX2JlZ2luTWF0Y2ghPT1lWzFdJiZuLmlnbm9yZU1hdGNoKCl9fSksSEFTSF9DT01NRU5UX01PREU6QSxJREVOVF9SRTpmLApNQVRDSF9OT1RISU5HX1JFOi9cYlxCLyxNRVRIT0RfR1VBUkQ6e2JlZ2luOiJcXC5cXHMqIitFLHJlbGV2YW5jZTowfSwKTlVNQkVSX01PREU6e3Njb3BlOiJudW1iZXIiLGJlZ2luOnkscmVsZXZhbmNlOjB9LE5VTUJFUl9SRTp5LApQSFJBU0FMX1dPUkRTX01PREU6ewpiZWdpbjovXGIoYXxhbnx0aGV8YXJlfEknbXxpc24ndHxkb24ndHxkb2Vzbid0fHdvbid0fGJ1dHxqdXN0fHNob3VsZHxwcmV0dHl8c2ltcGx5fGVub3VnaHxnb25uYXxnb2luZ3x3dGZ8c298c3VjaHx3aWxsfHlvdXx5b3VyfHRoZXl8bGlrZXxtb3JlKVxiLwp9LFFVT1RFX1NUUklOR19NT0RFOmssUkVHRVhQX01PREU6e3Njb3BlOiJyZWdleHAiLGJlZ2luOi9cLyg/PVteL1xuXSpcLykvLAplbmQ6L1wvW2dpbXV5XSovLGNvbnRhaW5zOlt2LHtiZWdpbjovXFsvLGVuZDovXF0vLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt2XX1dfSwKUkVfU1RBUlRFUlNfUkU6IiF8IT18IT09fCV8JT18JnwmJnwmPXxcXCp8XFwqPXxcXCt8XFwrPXwsfC18LT18Lz18L3w6fDt8PDx8PDw9fDw9fDx8PT09fD09fD18Pj4+PXw+Pj18Pj18Pj4+fD4+fD58XFw/fFxcW3xcXHt8XFwofFxcXnxcXF49fFxcfHxcXHw9fFxcfFxcfHx+IiwKU0hFQkFORzooZT17fSk9Pntjb25zdCBuPS9eIyFbIF0qXC8vCjtyZXR1cm4gZS5iaW5hcnkmJihlLmJlZ2luPWIobiwvLipcYi8sZS5iaW5hcnksL1xiLiovKSksYSh7c2NvcGU6Im1ldGEiLGJlZ2luOm4sCmVuZDovJC8scmVsZXZhbmNlOjAsIm9uOmJlZ2luIjooZSxuKT0+ezAhPT1lLmluZGV4JiZuLmlnbm9yZU1hdGNoKCl9fSxlKX0sClRJVExFX01PREU6e3Njb3BlOiJ0aXRsZSIsYmVnaW46ZixyZWxldmFuY2U6MH0sVU5ERVJTQ09SRV9JREVOVF9SRTpFLApVTkRFUlNDT1JFX1RJVExFX01PREU6e3Njb3BlOiJ0aXRsZSIsYmVnaW46RSxyZWxldmFuY2U6MH19KTtmdW5jdGlvbiBUKGUsbil7CiIuIj09PWUuaW5wdXRbZS5pbmRleC0xXSYmbi5pZ25vcmVNYXRjaCgpfWZ1bmN0aW9uIFIoZSxuKXsKdm9pZCAwIT09ZS5jbGFzc05hbWUmJihlLnNjb3BlPWUuY2xhc3NOYW1lLGRlbGV0ZSBlLmNsYXNzTmFtZSl9ZnVuY3Rpb24gRChlLG4pewpuJiZlLmJlZ2luS2V5d29yZHMmJihlLmJlZ2luPSJcXGIoIitlLmJlZ2luS2V5d29yZHMuc3BsaXQoIiAiKS5qb2luKCJ8IikrIikoPyFcXC4pKD89XFxifFxccykiLAplLl9fYmVmb3JlQmVnaW49VCxlLmtleXdvcmRzPWUua2V5d29yZHN8fGUuYmVnaW5LZXl3b3JkcyxkZWxldGUgZS5iZWdpbktleXdvcmRzLAp2b2lkIDA9PT1lLnJlbGV2YW5jZSYmKGUucmVsZXZhbmNlPTApKX1mdW5jdGlvbiBJKGUsbil7CkFycmF5LmlzQXJyYXkoZS5pbGxlZ2FsKSYmKGUuaWxsZWdhbD1tKC4uLmUuaWxsZWdhbCkpfWZ1bmN0aW9uIEwoZSxuKXsKaWYoZS5tYXRjaCl7CmlmKGUuYmVnaW58fGUuZW5kKXRocm93IEVycm9yKCJiZWdpbiAmIGVuZCBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIG1hdGNoIikKO2UuYmVnaW49ZS5tYXRjaCxkZWxldGUgZS5tYXRjaH19ZnVuY3Rpb24gQihlLG4pewp2b2lkIDA9PT1lLnJlbGV2YW5jZSYmKGUucmVsZXZhbmNlPTEpfWNvbnN0ICQ9KGUsbik9PntpZighZS5iZWZvcmVNYXRjaClyZXR1cm4KO2lmKGUuc3RhcnRzKXRocm93IEVycm9yKCJiZWZvcmVNYXRjaCBjYW5ub3QgYmUgdXNlZCB3aXRoIHN0YXJ0cyIpCjtjb25zdCB0PU9iamVjdC5hc3NpZ24oe30sZSk7T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgobj0+e2RlbGV0ZSBlW25dCn0pKSxlLmtleXdvcmRzPXQua2V5d29yZHMsZS5iZWdpbj1iKHQuYmVmb3JlTWF0Y2gsZCh0LmJlZ2luKSksZS5zdGFydHM9ewpyZWxldmFuY2U6MCxjb250YWluczpbT2JqZWN0LmFzc2lnbih0LHtlbmRzUGFyZW50OiEwfSldCn0sZS5yZWxldmFuY2U9MCxkZWxldGUgdC5iZWZvcmVNYXRjaAp9LHo9WyJvZiIsImFuZCIsImZvciIsImluIiwibm90Iiwib3IiLCJpZiIsInRoZW4iLCJwYXJlbnQiLCJsaXN0IiwidmFsdWUiXSxGPSJrZXl3b3JkIgo7ZnVuY3Rpb24gVShlLG4sdD1GKXtjb25zdCBhPU9iamVjdC5jcmVhdGUobnVsbCkKO3JldHVybiJzdHJpbmciPT10eXBlb2YgZT9pKHQsZS5zcGxpdCgiICIpKTpBcnJheS5pc0FycmF5KGUpP2kodCxlKTpPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT57Ck9iamVjdC5hc3NpZ24oYSxVKGVbdF0sbix0KSl9KSksYTtmdW5jdGlvbiBpKGUsdCl7Cm4mJih0PXQubWFwKChlPT5lLnRvTG93ZXJDYXNlKCkpKSksdC5mb3JFYWNoKChuPT57Y29uc3QgdD1uLnNwbGl0KCJ8IikKO2FbdFswXV09W2Usaih0WzBdLHRbMV0pXX0pKX19ZnVuY3Rpb24gaihlLG4pewpyZXR1cm4gbj9OdW1iZXIobik6KGU9PnouaW5jbHVkZXMoZS50b0xvd2VyQ2FzZSgpKSkoZSk/MDoxfWNvbnN0IFA9e30sSz1lPT57CmNvbnNvbGUuZXJyb3IoZSl9LEg9KGUsLi4ubik9Pntjb25zb2xlLmxvZygiV0FSTjogIitlLC4uLm4pfSxxPShlLG4pPT57ClBbYCR7ZX0vJHtufWBdfHwoY29uc29sZS5sb2coYERlcHJlY2F0ZWQgYXMgb2YgJHtlfS4gJHtufWApLFBbYCR7ZX0vJHtufWBdPSEwKQp9LEc9RXJyb3IoKTtmdW5jdGlvbiBaKGUsbix7a2V5OnR9KXtsZXQgYT0wO2NvbnN0IGk9ZVt0XSxyPXt9LHM9e30KO2ZvcihsZXQgZT0xO2U8PW4ubGVuZ3RoO2UrKylzW2UrYV09aVtlXSxyW2UrYV09ITAsYSs9cChuW2UtMV0pCjtlW3RdPXMsZVt0XS5fZW1pdD1yLGVbdF0uX211bHRpPSEwfWZ1bmN0aW9uIFcoZSl7KGU9PnsKZS5zY29wZSYmIm9iamVjdCI9PXR5cGVvZiBlLnNjb3BlJiZudWxsIT09ZS5zY29wZSYmKGUuYmVnaW5TY29wZT1lLnNjb3BlLApkZWxldGUgZS5zY29wZSl9KShlKSwic3RyaW5nIj09dHlwZW9mIGUuYmVnaW5TY29wZSYmKGUuYmVnaW5TY29wZT17Cl93cmFwOmUuYmVnaW5TY29wZX0pLCJzdHJpbmciPT10eXBlb2YgZS5lbmRTY29wZSYmKGUuZW5kU2NvcGU9e193cmFwOmUuZW5kU2NvcGUKfSksKGU9PntpZihBcnJheS5pc0FycmF5KGUuYmVnaW4pKXsKaWYoZS5za2lwfHxlLmV4Y2x1ZGVCZWdpbnx8ZS5yZXR1cm5CZWdpbil0aHJvdyBLKCJza2lwLCBleGNsdWRlQmVnaW4sIHJldHVybkJlZ2luIG5vdCBjb21wYXRpYmxlIHdpdGggYmVnaW5TY29wZToge30iKSwKRwo7aWYoIm9iamVjdCIhPXR5cGVvZiBlLmJlZ2luU2NvcGV8fG51bGw9PT1lLmJlZ2luU2NvcGUpdGhyb3cgSygiYmVnaW5TY29wZSBtdXN0IGJlIG9iamVjdCIpLApHO1ooZSxlLmJlZ2luLHtrZXk6ImJlZ2luU2NvcGUifSksZS5iZWdpbj1oKGUuYmVnaW4se2pvaW5XaXRoOiIifSl9fSkoZSksKGU9PnsKaWYoQXJyYXkuaXNBcnJheShlLmVuZCkpewppZihlLnNraXB8fGUuZXhjbHVkZUVuZHx8ZS5yZXR1cm5FbmQpdGhyb3cgSygic2tpcCwgZXhjbHVkZUVuZCwgcmV0dXJuRW5kIG5vdCBjb21wYXRpYmxlIHdpdGggZW5kU2NvcGU6IHt9IiksCkcKO2lmKCJvYmplY3QiIT10eXBlb2YgZS5lbmRTY29wZXx8bnVsbD09PWUuZW5kU2NvcGUpdGhyb3cgSygiZW5kU2NvcGUgbXVzdCBiZSBvYmplY3QiKSwKRztaKGUsZS5lbmQse2tleToiZW5kU2NvcGUifSksZS5lbmQ9aChlLmVuZCx7am9pbldpdGg6IiJ9KX19KShlKX1mdW5jdGlvbiBRKGUpewpmdW5jdGlvbiBuKG4sdCl7CnJldHVybiBSZWdFeHAoYyhuKSwibSIrKGUuY2FzZV9pbnNlbnNpdGl2ZT8iaSI6IiIpKyhlLnVuaWNvZGVSZWdleD8idSI6IiIpKyh0PyJnIjoiIikpCn1jbGFzcyB0e2NvbnN0cnVjdG9yKCl7CnRoaXMubWF0Y2hJbmRleGVzPXt9LHRoaXMucmVnZXhlcz1bXSx0aGlzLm1hdGNoQXQ9MSx0aGlzLnBvc2l0aW9uPTB9CmFkZFJ1bGUoZSxuKXsKbi5wb3NpdGlvbj10aGlzLnBvc2l0aW9uKyssdGhpcy5tYXRjaEluZGV4ZXNbdGhpcy5tYXRjaEF0XT1uLHRoaXMucmVnZXhlcy5wdXNoKFtuLGVdKSwKdGhpcy5tYXRjaEF0Kz1wKGUpKzF9Y29tcGlsZSgpezA9PT10aGlzLnJlZ2V4ZXMubGVuZ3RoJiYodGhpcy5leGVjPSgpPT5udWxsKQo7Y29uc3QgZT10aGlzLnJlZ2V4ZXMubWFwKChlPT5lWzFdKSk7dGhpcy5tYXRjaGVyUmU9bihoKGUse2pvaW5XaXRoOiJ8Igp9KSwhMCksdGhpcy5sYXN0SW5kZXg9MH1leGVjKGUpe3RoaXMubWF0Y2hlclJlLmxhc3RJbmRleD10aGlzLmxhc3RJbmRleAo7Y29uc3Qgbj10aGlzLm1hdGNoZXJSZS5leGVjKGUpO2lmKCFuKXJldHVybiBudWxsCjtjb25zdCB0PW4uZmluZEluZGV4KCgoZSxuKT0+bj4wJiZ2b2lkIDAhPT1lKSksYT10aGlzLm1hdGNoSW5kZXhlc1t0XQo7cmV0dXJuIG4uc3BsaWNlKDAsdCksT2JqZWN0LmFzc2lnbihuLGEpfX1jbGFzcyBpe2NvbnN0cnVjdG9yKCl7CnRoaXMucnVsZXM9W10sdGhpcy5tdWx0aVJlZ2V4ZXM9W10sCnRoaXMuY291bnQ9MCx0aGlzLmxhc3RJbmRleD0wLHRoaXMucmVnZXhJbmRleD0wfWdldE1hdGNoZXIoZSl7CmlmKHRoaXMubXVsdGlSZWdleGVzW2VdKXJldHVybiB0aGlzLm11bHRpUmVnZXhlc1tlXTtjb25zdCBuPW5ldyB0CjtyZXR1cm4gdGhpcy5ydWxlcy5zbGljZShlKS5mb3JFYWNoKCgoW2UsdF0pPT5uLmFkZFJ1bGUoZSx0KSkpLApuLmNvbXBpbGUoKSx0aGlzLm11bHRpUmVnZXhlc1tlXT1uLG59cmVzdW1pbmdTY2FuQXRTYW1lUG9zaXRpb24oKXsKcmV0dXJuIDAhPT10aGlzLnJlZ2V4SW5kZXh9Y29uc2lkZXJBbGwoKXt0aGlzLnJlZ2V4SW5kZXg9MH1hZGRSdWxlKGUsbil7CnRoaXMucnVsZXMucHVzaChbZSxuXSksImJlZ2luIj09PW4udHlwZSYmdGhpcy5jb3VudCsrfWV4ZWMoZSl7CmNvbnN0IG49dGhpcy5nZXRNYXRjaGVyKHRoaXMucmVnZXhJbmRleCk7bi5sYXN0SW5kZXg9dGhpcy5sYXN0SW5kZXgKO2xldCB0PW4uZXhlYyhlKQo7aWYodGhpcy5yZXN1bWluZ1NjYW5BdFNhbWVQb3NpdGlvbigpKWlmKHQmJnQuaW5kZXg9PT10aGlzLmxhc3RJbmRleCk7ZWxzZXsKY29uc3Qgbj10aGlzLmdldE1hdGNoZXIoMCk7bi5sYXN0SW5kZXg9dGhpcy5sYXN0SW5kZXgrMSx0PW4uZXhlYyhlKX0KcmV0dXJuIHQmJih0aGlzLnJlZ2V4SW5kZXgrPXQucG9zaXRpb24rMSwKdGhpcy5yZWdleEluZGV4PT09dGhpcy5jb3VudCYmdGhpcy5jb25zaWRlckFsbCgpKSx0fX0KaWYoZS5jb21waWxlckV4dGVuc2lvbnN8fChlLmNvbXBpbGVyRXh0ZW5zaW9ucz1bXSksCmUuY29udGFpbnMmJmUuY29udGFpbnMuaW5jbHVkZXMoInNlbGYiKSl0aHJvdyBFcnJvcigiRVJSOiBjb250YWlucyBgc2VsZmAgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGUgdG9wLWxldmVsIG9mIGEgbGFuZ3VhZ2UuICBTZWUgZG9jdW1lbnRhdGlvbi4iKQo7cmV0dXJuIGUuY2xhc3NOYW1lQWxpYXNlcz1hKGUuY2xhc3NOYW1lQWxpYXNlc3x8e30pLGZ1bmN0aW9uIHQocixzKXtjb25zdCBvPXIKO2lmKHIuaXNDb21waWxlZClyZXR1cm4gbwo7W1IsTCxXLCRdLmZvckVhY2goKGU9PmUocixzKSkpLGUuY29tcGlsZXJFeHRlbnNpb25zLmZvckVhY2goKGU9PmUocixzKSkpLApyLl9fYmVmb3JlQmVnaW49bnVsbCxbRCxJLEJdLmZvckVhY2goKGU9PmUocixzKSkpLHIuaXNDb21waWxlZD0hMDtsZXQgbD1udWxsCjtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHIua2V5d29yZHMmJnIua2V5d29yZHMuJHBhdHRlcm4mJihyLmtleXdvcmRzPU9iamVjdC5hc3NpZ24oe30sci5rZXl3b3JkcyksCmw9ci5rZXl3b3Jkcy4kcGF0dGVybiwKZGVsZXRlIHIua2V5d29yZHMuJHBhdHRlcm4pLGw9bHx8L1x3Ky8sci5rZXl3b3JkcyYmKHIua2V5d29yZHM9VShyLmtleXdvcmRzLGUuY2FzZV9pbnNlbnNpdGl2ZSkpLApvLmtleXdvcmRQYXR0ZXJuUmU9bihsLCEwKSwKcyYmKHIuYmVnaW58fChyLmJlZ2luPS9cQnxcYi8pLG8uYmVnaW5SZT1uKG8uYmVnaW4pLHIuZW5kfHxyLmVuZHNXaXRoUGFyZW50fHwoci5lbmQ9L1xCfFxiLyksCnIuZW5kJiYoby5lbmRSZT1uKG8uZW5kKSksCm8udGVybWluYXRvckVuZD1jKG8uZW5kKXx8IiIsci5lbmRzV2l0aFBhcmVudCYmcy50ZXJtaW5hdG9yRW5kJiYoby50ZXJtaW5hdG9yRW5kKz0oci5lbmQ/InwiOiIiKStzLnRlcm1pbmF0b3JFbmQpKSwKci5pbGxlZ2FsJiYoby5pbGxlZ2FsUmU9bihyLmlsbGVnYWwpKSwKci5jb250YWluc3x8KHIuY29udGFpbnM9W10pLHIuY29udGFpbnM9W10uY29uY2F0KC4uLnIuY29udGFpbnMubWFwKChlPT4oZT0+KGUudmFyaWFudHMmJiFlLmNhY2hlZFZhcmlhbnRzJiYoZS5jYWNoZWRWYXJpYW50cz1lLnZhcmlhbnRzLm1hcCgobj0+YShlLHsKdmFyaWFudHM6bnVsbH0sbikpKSksZS5jYWNoZWRWYXJpYW50cz9lLmNhY2hlZFZhcmlhbnRzOlgoZSk/YShlLHsKc3RhcnRzOmUuc3RhcnRzP2EoZS5zdGFydHMpOm51bGwKfSk6T2JqZWN0LmlzRnJvemVuKGUpP2EoZSk6ZSkpKCJzZWxmIj09PWU/cjplKSkpKSxyLmNvbnRhaW5zLmZvckVhY2goKGU9Pnt0KGUsbykKfSkpLHIuc3RhcnRzJiZ0KHIuc3RhcnRzLHMpLG8ubWF0Y2hlcj0oZT0+e2NvbnN0IG49bmV3IGkKO3JldHVybiBlLmNvbnRhaW5zLmZvckVhY2goKGU9Pm4uYWRkUnVsZShlLmJlZ2luLHtydWxlOmUsdHlwZToiYmVnaW4iCn0pKSksZS50ZXJtaW5hdG9yRW5kJiZuLmFkZFJ1bGUoZS50ZXJtaW5hdG9yRW5kLHt0eXBlOiJlbmQiCn0pLGUuaWxsZWdhbCYmbi5hZGRSdWxlKGUuaWxsZWdhbCx7dHlwZToiaWxsZWdhbCJ9KSxufSkobyksb30oZSl9ZnVuY3Rpb24gWChlKXsKcmV0dXJuISFlJiYoZS5lbmRzV2l0aFBhcmVudHx8WChlLnN0YXJ0cykpfWNsYXNzIFYgZXh0ZW5kcyBFcnJvcnsKY29uc3RydWN0b3IoZSxuKXtzdXBlcihlKSx0aGlzLm5hbWU9IkhUTUxJbmplY3Rpb25FcnJvciIsdGhpcy5odG1sPW59fQpjb25zdCBKPXQsWT1hLGVlPVN5bWJvbCgibm9tYXRjaCIpLG5lPXQ9PnsKY29uc3QgYT1PYmplY3QuY3JlYXRlKG51bGwpLGk9T2JqZWN0LmNyZWF0ZShudWxsKSxyPVtdO2xldCBzPSEwCjtjb25zdCBvPSJDb3VsZCBub3QgZmluZCB0aGUgbGFuZ3VhZ2UgJ3t9JywgZGlkIHlvdSBmb3JnZXQgdG8gbG9hZC9pbmNsdWRlIGEgbGFuZ3VhZ2UgbW9kdWxlPyIsYz17CmRpc2FibGVBdXRvZGV0ZWN0OiEwLG5hbWU6IlBsYWluIHRleHQiLGNvbnRhaW5zOltdfTtsZXQgcD17Cmlnbm9yZVVuZXNjYXBlZEhUTUw6ITEsdGhyb3dVbmVzY2FwZWRIVE1MOiExLG5vSGlnaGxpZ2h0UmU6L14obm8tP2hpZ2hsaWdodCkkL2ksCmxhbmd1YWdlRGV0ZWN0UmU6L1xibGFuZyg/OnVhZ2UpPy0oW1x3LV0rKVxiL2ksY2xhc3NQcmVmaXg6ImhsanMtIiwKY3NzU2VsZWN0b3I6InByZSBjb2RlIixsYW5ndWFnZXM6bnVsbCxfX2VtaXR0ZXI6bH07ZnVuY3Rpb24gXyhlKXsKcmV0dXJuIHAubm9IaWdobGlnaHRSZS50ZXN0KGUpfWZ1bmN0aW9uIGgoZSxuLHQpe2xldCBhPSIiLGk9IiIKOyJvYmplY3QiPT10eXBlb2Ygbj8oYT1lLAp0PW4uaWdub3JlSWxsZWdhbHMsaT1uLmxhbmd1YWdlKToocSgiMTAuNy4wIiwiaGlnaGxpZ2h0KGxhbmcsIGNvZGUsIC4uLmFyZ3MpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIiksCnEoIjEwLjcuMCIsIlBsZWFzZSB1c2UgaGlnaGxpZ2h0KGNvZGUsIG9wdGlvbnMpIGluc3RlYWQuXG5odHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8yMjc3IiksCmk9ZSxhPW4pLHZvaWQgMD09PXQmJih0PSEwKTtjb25zdCByPXtjb2RlOmEsbGFuZ3VhZ2U6aX07eCgiYmVmb3JlOmhpZ2hsaWdodCIscikKO2NvbnN0IHM9ci5yZXN1bHQ/ci5yZXN1bHQ6ZihyLmxhbmd1YWdlLHIuY29kZSx0KQo7cmV0dXJuIHMuY29kZT1yLmNvZGUseCgiYWZ0ZXI6aGlnaGxpZ2h0IixzKSxzfWZ1bmN0aW9uIGYoZSx0LGkscil7CmNvbnN0IGw9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBjKCl7aWYoIXgua2V5d29yZHMpcmV0dXJuIHZvaWQgUy5hZGRUZXh0KEEpCjtsZXQgZT0wO3gua2V5d29yZFBhdHRlcm5SZS5sYXN0SW5kZXg9MDtsZXQgbj14LmtleXdvcmRQYXR0ZXJuUmUuZXhlYyhBKSx0PSIiCjtmb3IoO247KXt0Kz1BLnN1YnN0cmluZyhlLG4uaW5kZXgpCjtjb25zdCBpPXcuY2FzZV9pbnNlbnNpdGl2ZT9uWzBdLnRvTG93ZXJDYXNlKCk6blswXSxyPShhPWkseC5rZXl3b3Jkc1thXSk7aWYocil7CmNvbnN0W2UsYV09cgo7aWYoUy5hZGRUZXh0KHQpLHQ9IiIsbFtpXT0obFtpXXx8MCkrMSxsW2ldPD03JiYoQys9YSksZS5zdGFydHNXaXRoKCJfIikpdCs9blswXTtlbHNlewpjb25zdCB0PXcuY2xhc3NOYW1lQWxpYXNlc1tlXXx8ZTtnKG5bMF0sdCl9fWVsc2UgdCs9blswXQo7ZT14LmtleXdvcmRQYXR0ZXJuUmUubGFzdEluZGV4LG49eC5rZXl3b3JkUGF0dGVyblJlLmV4ZWMoQSl9dmFyIGEKO3QrPUEuc3Vic3RyaW5nKGUpLFMuYWRkVGV4dCh0KX1mdW5jdGlvbiBkKCl7bnVsbCE9eC5zdWJMYW5ndWFnZT8oKCk9PnsKaWYoIiI9PT1BKXJldHVybjtsZXQgZT1udWxsO2lmKCJzdHJpbmciPT10eXBlb2YgeC5zdWJMYW5ndWFnZSl7CmlmKCFhW3guc3ViTGFuZ3VhZ2VdKXJldHVybiB2b2lkIFMuYWRkVGV4dChBKQo7ZT1mKHguc3ViTGFuZ3VhZ2UsQSwhMCxNW3guc3ViTGFuZ3VhZ2VdKSxNW3guc3ViTGFuZ3VhZ2VdPWUuX3RvcAp9ZWxzZSBlPUUoQSx4LnN1Ykxhbmd1YWdlLmxlbmd0aD94LnN1Ykxhbmd1YWdlOm51bGwpCjt4LnJlbGV2YW5jZT4wJiYoQys9ZS5yZWxldmFuY2UpLFMuX19hZGRTdWJsYW5ndWFnZShlLl9lbWl0dGVyLGUubGFuZ3VhZ2UpCn0pKCk6YygpLEE9IiJ9ZnVuY3Rpb24gZyhlLG4pewoiIiE9PWUmJihTLnN0YXJ0U2NvcGUobiksUy5hZGRUZXh0KGUpLFMuZW5kU2NvcGUoKSl9ZnVuY3Rpb24gdShlLG4pe2xldCB0PTEKO2NvbnN0IGE9bi5sZW5ndGgtMTtmb3IoO3Q8PWE7KXtpZighZS5fZW1pdFt0XSl7dCsrO2NvbnRpbnVlfQpjb25zdCBhPXcuY2xhc3NOYW1lQWxpYXNlc1tlW3RdXXx8ZVt0XSxpPW5bdF07YT9nKGksYSk6KEE9aSxjKCksQT0iIiksdCsrfX0KZnVuY3Rpb24gYihlLG4pewpyZXR1cm4gZS5zY29wZSYmInN0cmluZyI9PXR5cGVvZiBlLnNjb3BlJiZTLm9wZW5Ob2RlKHcuY2xhc3NOYW1lQWxpYXNlc1tlLnNjb3BlXXx8ZS5zY29wZSksCmUuYmVnaW5TY29wZSYmKGUuYmVnaW5TY29wZS5fd3JhcD8oZyhBLHcuY2xhc3NOYW1lQWxpYXNlc1tlLmJlZ2luU2NvcGUuX3dyYXBdfHxlLmJlZ2luU2NvcGUuX3dyYXApLApBPSIiKTplLmJlZ2luU2NvcGUuX211bHRpJiYodShlLmJlZ2luU2NvcGUsbiksQT0iIikpLHg9T2JqZWN0LmNyZWF0ZShlLHtwYXJlbnQ6ewp2YWx1ZTp4fX0pLHh9ZnVuY3Rpb24gbShlLHQsYSl7bGV0IGk9KChlLG4pPT57Y29uc3QgdD1lJiZlLmV4ZWMobikKO3JldHVybiB0JiYwPT09dC5pbmRleH0pKGUuZW5kUmUsYSk7aWYoaSl7aWYoZVsib246ZW5kIl0pe2NvbnN0IGE9bmV3IG4oZSkKO2VbIm9uOmVuZCJdKHQsYSksYS5pc01hdGNoSWdub3JlZCYmKGk9ITEpfWlmKGkpewpmb3IoO2UuZW5kc1BhcmVudCYmZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9fQppZihlLmVuZHNXaXRoUGFyZW50KXJldHVybiBtKGUucGFyZW50LHQsYSl9ZnVuY3Rpb24gXyhlKXsKcmV0dXJuIDA9PT14Lm1hdGNoZXIucmVnZXhJbmRleD8oQSs9ZVswXSwxKTooRD0hMCwwKX1mdW5jdGlvbiBoKGUpewpjb25zdCBuPWVbMF0sYT10LnN1YnN0cmluZyhlLmluZGV4KSxpPW0oeCxlLGEpO2lmKCFpKXJldHVybiBlZTtjb25zdCByPXgKO3guZW5kU2NvcGUmJnguZW5kU2NvcGUuX3dyYXA/KGQoKSwKZyhuLHguZW5kU2NvcGUuX3dyYXApKTp4LmVuZFNjb3BlJiZ4LmVuZFNjb3BlLl9tdWx0aT8oZCgpLAp1KHguZW5kU2NvcGUsZSkpOnIuc2tpcD9BKz1uOihyLnJldHVybkVuZHx8ci5leGNsdWRlRW5kfHwoQSs9biksCmQoKSxyLmV4Y2x1ZGVFbmQmJihBPW4pKTtkb3sKeC5zY29wZSYmUy5jbG9zZU5vZGUoKSx4LnNraXB8fHguc3ViTGFuZ3VhZ2V8fChDKz14LnJlbGV2YW5jZSkseD14LnBhcmVudAp9d2hpbGUoeCE9PWkucGFyZW50KTtyZXR1cm4gaS5zdGFydHMmJmIoaS5zdGFydHMsZSksci5yZXR1cm5FbmQ/MDpuLmxlbmd0aH0KbGV0IHk9e307ZnVuY3Rpb24gTihhLHIpe2NvbnN0IG89ciYmclswXTtpZihBKz1hLG51bGw9PW8pcmV0dXJuIGQoKSwwCjtpZigiYmVnaW4iPT09eS50eXBlJiYiZW5kIj09PXIudHlwZSYmeS5pbmRleD09PXIuaW5kZXgmJiIiPT09byl7CmlmKEErPXQuc2xpY2Uoci5pbmRleCxyLmluZGV4KzEpLCFzKXtjb25zdCBuPUVycm9yKGAwIHdpZHRoIG1hdGNoIHJlZ2V4ICgke2V9KWApCjt0aHJvdyBuLmxhbmd1YWdlTmFtZT1lLG4uYmFkUnVsZT15LnJ1bGUsbn1yZXR1cm4gMX0KaWYoeT1yLCJiZWdpbiI9PT1yLnR5cGUpcmV0dXJuKGU9PnsKY29uc3QgdD1lWzBdLGE9ZS5ydWxlLGk9bmV3IG4oYSkscj1bYS5fX2JlZm9yZUJlZ2luLGFbIm9uOmJlZ2luIl1dCjtmb3IoY29uc3QgbiBvZiByKWlmKG4mJihuKGUsaSksaS5pc01hdGNoSWdub3JlZCkpcmV0dXJuIF8odCkKO3JldHVybiBhLnNraXA/QSs9dDooYS5leGNsdWRlQmVnaW4mJihBKz10KSwKZCgpLGEucmV0dXJuQmVnaW58fGEuZXhjbHVkZUJlZ2lufHwoQT10KSksYihhLGUpLGEucmV0dXJuQmVnaW4/MDp0Lmxlbmd0aH0pKHIpCjtpZigiaWxsZWdhbCI9PT1yLnR5cGUmJiFpKXsKY29uc3QgZT1FcnJvcignSWxsZWdhbCBsZXhlbWUgIicrbysnIiBmb3IgbW9kZSAiJysoeC5zY29wZXx8Ijx1bm5hbWVkPiIpKyciJykKO3Rocm93IGUubW9kZT14LGV9aWYoImVuZCI9PT1yLnR5cGUpe2NvbnN0IGU9aChyKTtpZihlIT09ZWUpcmV0dXJuIGV9CmlmKCJpbGxlZ2FsIj09PXIudHlwZSYmIiI9PT1vKXJldHVybiAxCjtpZihSPjFlNSYmUj4zKnIuaW5kZXgpdGhyb3cgRXJyb3IoInBvdGVudGlhbCBpbmZpbml0ZSBsb29wLCB3YXkgbW9yZSBpdGVyYXRpb25zIHRoYW4gbWF0Y2hlcyIpCjtyZXR1cm4gQSs9byxvLmxlbmd0aH1jb25zdCB3PXYoZSkKO2lmKCF3KXRocm93IEsoby5yZXBsYWNlKCJ7fSIsZSkpLEVycm9yKCdVbmtub3duIGxhbmd1YWdlOiAiJytlKyciJykKO2NvbnN0IE89USh3KTtsZXQgaz0iIix4PXJ8fE87Y29uc3QgTT17fSxTPW5ldyBwLl9fZW1pdHRlcihwKTsoKCk9Pntjb25zdCBlPVtdCjtmb3IobGV0IG49eDtuIT09dztuPW4ucGFyZW50KW4uc2NvcGUmJmUudW5zaGlmdChuLnNjb3BlKQo7ZS5mb3JFYWNoKChlPT5TLm9wZW5Ob2RlKGUpKSl9KSgpO2xldCBBPSIiLEM9MCxUPTAsUj0wLEQ9ITE7dHJ5ewppZih3Ll9fZW1pdFRva2Vucyl3Ll9fZW1pdFRva2Vucyh0LFMpO2Vsc2V7Zm9yKHgubWF0Y2hlci5jb25zaWRlckFsbCgpOzspewpSKyssRD9EPSExOngubWF0Y2hlci5jb25zaWRlckFsbCgpLHgubWF0Y2hlci5sYXN0SW5kZXg9VAo7Y29uc3QgZT14Lm1hdGNoZXIuZXhlYyh0KTtpZighZSlicmVhaztjb25zdCBuPU4odC5zdWJzdHJpbmcoVCxlLmluZGV4KSxlKQo7VD1lLmluZGV4K259Tih0LnN1YnN0cmluZyhUKSl9cmV0dXJuIFMuZmluYWxpemUoKSxrPVMudG9IVE1MKCkse2xhbmd1YWdlOmUsCnZhbHVlOmsscmVsZXZhbmNlOkMsaWxsZWdhbDohMSxfZW1pdHRlcjpTLF90b3A6eH19Y2F0Y2gobil7CmlmKG4ubWVzc2FnZSYmbi5tZXNzYWdlLmluY2x1ZGVzKCJJbGxlZ2FsIikpcmV0dXJue2xhbmd1YWdlOmUsdmFsdWU6Sih0KSwKaWxsZWdhbDohMCxyZWxldmFuY2U6MCxfaWxsZWdhbEJ5OnttZXNzYWdlOm4ubWVzc2FnZSxpbmRleDpULApjb250ZXh0OnQuc2xpY2UoVC0xMDAsVCsxMDApLG1vZGU6bi5tb2RlLHJlc3VsdFNvRmFyOmt9LF9lbWl0dGVyOlN9O2lmKHMpcmV0dXJuewpsYW5ndWFnZTplLHZhbHVlOkoodCksaWxsZWdhbDohMSxyZWxldmFuY2U6MCxlcnJvclJhaXNlZDpuLF9lbWl0dGVyOlMsX3RvcDp4fQo7dGhyb3cgbn19ZnVuY3Rpb24gRShlLG4pe249bnx8cC5sYW5ndWFnZXN8fE9iamVjdC5rZXlzKGEpO2NvbnN0IHQ9KGU9PnsKY29uc3Qgbj17dmFsdWU6SihlKSxpbGxlZ2FsOiExLHJlbGV2YW5jZTowLF90b3A6YyxfZW1pdHRlcjpuZXcgcC5fX2VtaXR0ZXIocCl9CjtyZXR1cm4gbi5fZW1pdHRlci5hZGRUZXh0KGUpLG59KShlKSxpPW4uZmlsdGVyKHYpLmZpbHRlcihrKS5tYXAoKG49PmYobixlLCExKSkpCjtpLnVuc2hpZnQodCk7Y29uc3Qgcj1pLnNvcnQoKChlLG4pPT57CmlmKGUucmVsZXZhbmNlIT09bi5yZWxldmFuY2UpcmV0dXJuIG4ucmVsZXZhbmNlLWUucmVsZXZhbmNlCjtpZihlLmxhbmd1YWdlJiZuLmxhbmd1YWdlKXtpZih2KGUubGFuZ3VhZ2UpLnN1cGVyc2V0T2Y9PT1uLmxhbmd1YWdlKXJldHVybiAxCjtpZih2KG4ubGFuZ3VhZ2UpLnN1cGVyc2V0T2Y9PT1lLmxhbmd1YWdlKXJldHVybi0xfXJldHVybiAwfSkpLFtzLG9dPXIsbD1zCjtyZXR1cm4gbC5zZWNvbmRCZXN0PW8sbH1mdW5jdGlvbiB5KGUpe2xldCBuPW51bGw7Y29uc3QgdD0oZT0+ewpsZXQgbj1lLmNsYXNzTmFtZSsiICI7bis9ZS5wYXJlbnROb2RlP2UucGFyZW50Tm9kZS5jbGFzc05hbWU6IiIKO2NvbnN0IHQ9cC5sYW5ndWFnZURldGVjdFJlLmV4ZWMobik7aWYodCl7Y29uc3Qgbj12KHRbMV0pCjtyZXR1cm4gbnx8KEgoby5yZXBsYWNlKCJ7fSIsdFsxXSkpLApIKCJGYWxsaW5nIGJhY2sgdG8gbm8taGlnaGxpZ2h0IG1vZGUgZm9yIHRoaXMgYmxvY2suIixlKSksbj90WzFdOiJuby1oaWdobGlnaHQifQpyZXR1cm4gbi5zcGxpdCgvXHMrLykuZmluZCgoZT0+XyhlKXx8dihlKSkpfSkoZSk7aWYoXyh0KSlyZXR1cm4KO2lmKHgoImJlZm9yZTpoaWdobGlnaHRFbGVtZW50Iix7ZWw6ZSxsYW5ndWFnZTp0Cn0pLGUuZGF0YXNldC5oaWdobGlnaHRlZClyZXR1cm4gdm9pZCBjb25zb2xlLmxvZygiRWxlbWVudCBwcmV2aW91c2x5IGhpZ2hsaWdodGVkLiBUbyBoaWdobGlnaHQgYWdhaW4sIGZpcnN0IHVuc2V0IGBkYXRhc2V0LmhpZ2hsaWdodGVkYC4iLGUpCjtpZihlLmNoaWxkcmVuLmxlbmd0aD4wJiYocC5pZ25vcmVVbmVzY2FwZWRIVE1MfHwoY29uc29sZS53YXJuKCJPbmUgb2YgeW91ciBjb2RlIGJsb2NrcyBpbmNsdWRlcyB1bmVzY2FwZWQgSFRNTC4gVGhpcyBpcyBhIHBvdGVudGlhbGx5IHNlcmlvdXMgc2VjdXJpdHkgcmlzay4iKSwKY29uc29sZS53YXJuKCJodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL3dpa2kvc2VjdXJpdHkiKSwKY29uc29sZS53YXJuKCJUaGUgZWxlbWVudCB3aXRoIHVuZXNjYXBlZCBIVE1MOiIpLApjb25zb2xlLndhcm4oZSkpLHAudGhyb3dVbmVzY2FwZWRIVE1MKSl0aHJvdyBuZXcgVigiT25lIG9mIHlvdXIgY29kZSBibG9ja3MgaW5jbHVkZXMgdW5lc2NhcGVkIEhUTUwuIixlLmlubmVySFRNTCkKO249ZTtjb25zdCBhPW4udGV4dENvbnRlbnQscj10P2goYSx7bGFuZ3VhZ2U6dCxpZ25vcmVJbGxlZ2FsczohMH0pOkUoYSkKO2UuaW5uZXJIVE1MPXIudmFsdWUsZS5kYXRhc2V0LmhpZ2hsaWdodGVkPSJ5ZXMiLCgoZSxuLHQpPT57Y29uc3QgYT1uJiZpW25dfHx0CjtlLmNsYXNzTGlzdC5hZGQoImhsanMiKSxlLmNsYXNzTGlzdC5hZGQoImxhbmd1YWdlLSIrYSkKfSkoZSx0LHIubGFuZ3VhZ2UpLGUucmVzdWx0PXtsYW5ndWFnZTpyLmxhbmd1YWdlLHJlOnIucmVsZXZhbmNlLApyZWxldmFuY2U6ci5yZWxldmFuY2V9LHIuc2Vjb25kQmVzdCYmKGUuc2Vjb25kQmVzdD17Cmxhbmd1YWdlOnIuc2Vjb25kQmVzdC5sYW5ndWFnZSxyZWxldmFuY2U6ci5zZWNvbmRCZXN0LnJlbGV2YW5jZQp9KSx4KCJhZnRlcjpoaWdobGlnaHRFbGVtZW50Iix7ZWw6ZSxyZXN1bHQ6cix0ZXh0OmF9KX1sZXQgTj0hMTtmdW5jdGlvbiB3KCl7CiJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGU/ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChwLmNzc1NlbGVjdG9yKS5mb3JFYWNoKHkpOk49ITAKfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGU9KGV8fCIiKS50b0xvd2VyQ2FzZSgpLGFbZV18fGFbaVtlXV19CmZ1bmN0aW9uIE8oZSx7bGFuZ3VhZ2VOYW1lOm59KXsic3RyaW5nIj09dHlwZW9mIGUmJihlPVtlXSksZS5mb3JFYWNoKChlPT57CmlbZS50b0xvd2VyQ2FzZSgpXT1ufSkpfWZ1bmN0aW9uIGsoZSl7Y29uc3Qgbj12KGUpCjtyZXR1cm4gbiYmIW4uZGlzYWJsZUF1dG9kZXRlY3R9ZnVuY3Rpb24geChlLG4pe2NvbnN0IHQ9ZTtyLmZvckVhY2goKGU9PnsKZVt0XSYmZVt0XShuKX0pKX0KInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsKCgpPT57Ck4mJncoKX0pLCExKSxPYmplY3QuYXNzaWduKHQse2hpZ2hsaWdodDpoLGhpZ2hsaWdodEF1dG86RSxoaWdobGlnaHRBbGw6dywKaGlnaGxpZ2h0RWxlbWVudDp5LApoaWdobGlnaHRCbG9jazplPT4ocSgiMTAuNy4wIiwiaGlnaGxpZ2h0QmxvY2sgd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHYxMi4wIiksCnEoIjEwLjcuMCIsIlBsZWFzZSB1c2UgaGlnaGxpZ2h0RWxlbWVudCBub3cuIikseShlKSksY29uZmlndXJlOmU9PntwPVkocCxlKX0sCmluaXRIaWdobGlnaHRpbmc6KCk9PnsKdygpLHEoIjEwLjYuMCIsImluaXRIaWdobGlnaHRpbmcoKSBkZXByZWNhdGVkLiAgVXNlIGhpZ2hsaWdodEFsbCgpIG5vdy4iKX0sCmluaXRIaWdobGlnaHRpbmdPbkxvYWQ6KCk9PnsKdygpLHEoIjEwLjYuMCIsImluaXRIaWdobGlnaHRpbmdPbkxvYWQoKSBkZXByZWNhdGVkLiAgVXNlIGhpZ2hsaWdodEFsbCgpIG5vdy4iKQp9LHJlZ2lzdGVyTGFuZ3VhZ2U6KGUsbik9PntsZXQgaT1udWxsO3RyeXtpPW4odCl9Y2F0Y2gobil7CmlmKEsoIkxhbmd1YWdlIGRlZmluaXRpb24gZm9yICd7fScgY291bGQgbm90IGJlIHJlZ2lzdGVyZWQuIi5yZXBsYWNlKCJ7fSIsZSkpLAohcyl0aHJvdyBuO0sobiksaT1jfQppLm5hbWV8fChpLm5hbWU9ZSksYVtlXT1pLGkucmF3RGVmaW5pdGlvbj1uLmJpbmQobnVsbCx0KSxpLmFsaWFzZXMmJk8oaS5hbGlhc2VzLHsKbGFuZ3VhZ2VOYW1lOmV9KX0sdW5yZWdpc3Rlckxhbmd1YWdlOmU9PntkZWxldGUgYVtlXQo7Zm9yKGNvbnN0IG4gb2YgT2JqZWN0LmtleXMoaSkpaVtuXT09PWUmJmRlbGV0ZSBpW25dfSwKbGlzdExhbmd1YWdlczooKT0+T2JqZWN0LmtleXMoYSksZ2V0TGFuZ3VhZ2U6dixyZWdpc3RlckFsaWFzZXM6TywKYXV0b0RldGVjdGlvbjprLGluaGVyaXQ6WSxhZGRQbHVnaW46ZT0+eyhlPT57CmVbImJlZm9yZTpoaWdobGlnaHRCbG9jayJdJiYhZVsiYmVmb3JlOmhpZ2hsaWdodEVsZW1lbnQiXSYmKGVbImJlZm9yZTpoaWdobGlnaHRFbGVtZW50Il09bj0+ewplWyJiZWZvcmU6aGlnaGxpZ2h0QmxvY2siXShPYmplY3QuYXNzaWduKHtibG9jazpuLmVsfSxuKSkKfSksZVsiYWZ0ZXI6aGlnaGxpZ2h0QmxvY2siXSYmIWVbImFmdGVyOmhpZ2hsaWdodEVsZW1lbnQiXSYmKGVbImFmdGVyOmhpZ2hsaWdodEVsZW1lbnQiXT1uPT57CmVbImFmdGVyOmhpZ2hsaWdodEJsb2NrIl0oT2JqZWN0LmFzc2lnbih7YmxvY2s6bi5lbH0sbikpfSl9KShlKSxyLnB1c2goZSl9LApyZW1vdmVQbHVnaW46ZT0+e2NvbnN0IG49ci5pbmRleE9mKGUpOy0xIT09biYmci5zcGxpY2UobiwxKX19KSx0LmRlYnVnTW9kZT0oKT0+ewpzPSExfSx0LnNhZmVNb2RlPSgpPT57cz0hMH0sdC52ZXJzaW9uU3RyaW5nPSIxMS45LjAiLHQucmVnZXg9e2NvbmNhdDpiLApsb29rYWhlYWQ6ZCxlaXRoZXI6bSxvcHRpb25hbDp1LGFueU51bWJlck9mVGltZXM6Z30KO2Zvcihjb25zdCBuIGluIEMpIm9iamVjdCI9PXR5cGVvZiBDW25dJiZlKENbbl0pO3JldHVybiBPYmplY3QuYXNzaWduKHQsQyksdAp9LHRlPW5lKHt9KTt0ZS5uZXdJbnN0YW5jZT0oKT0+bmUoe30pO3ZhciBhZT10ZTtjb25zdCBpZT1lPT4oe0lNUE9SVEFOVDp7CnNjb3BlOiJtZXRhIixiZWdpbjoiIWltcG9ydGFudCJ9LEJMT0NLX0NPTU1FTlQ6ZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxIRVhDT0xPUjp7CnNjb3BlOiJudW1iZXIiLGJlZ2luOi8jKChbMC05YS1mQS1GXXszLDR9KXwoKFswLTlhLWZBLUZdezJ9KXszLDR9KSlcYi99LApGVU5DVElPTl9ESVNQQVRDSDp7Y2xhc3NOYW1lOiJidWlsdF9pbiIsYmVnaW46L1tcdy1dKyg/PVwoKS99LApBVFRSSUJVVEVfU0VMRUNUT1JfTU9ERTp7c2NvcGU6InNlbGVjdG9yLWF0dHIiLGJlZ2luOi9cWy8sZW5kOi9cXS8saWxsZWdhbDoiJCIsCmNvbnRhaW5zOltlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERV19LENTU19OVU1CRVJfTU9ERTp7CnNjb3BlOiJudW1iZXIiLApiZWdpbjplLk5VTUJFUl9SRSsiKCV8ZW18ZXh8Y2h8cmVtfHZ3fHZofHZtaW58dm1heHxjbXxtbXxpbnxwdHxwY3xweHxkZWd8Z3JhZHxyYWR8dHVybnxzfG1zfEh6fGtIenxkcGl8ZHBjbXxkcHB4KT8iLApyZWxldmFuY2U6MH0sQ1NTX1ZBUklBQkxFOntjbGFzc05hbWU6ImF0dHIiLGJlZ2luOi8tLVtBLVphLXpfXVtBLVphLXowLTlfLV0qL30KfSkscmU9WyJhIiwiYWJiciIsImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJhdWRpbyIsImIiLCJibG9ja3F1b3RlIiwiYm9keSIsImJ1dHRvbiIsImNhbnZhcyIsImNhcHRpb24iLCJjaXRlIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRmbiIsImRpdiIsImRsIiwiZHQiLCJlbSIsImZpZWxkc2V0IiwiZmlnY2FwdGlvbiIsImZpZ3VyZSIsImZvb3RlciIsImZvcm0iLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkZXIiLCJoZ3JvdXAiLCJodG1sIiwiaSIsImlmcmFtZSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGFiZWwiLCJsZWdlbmQiLCJsaSIsIm1haW4iLCJtYXJrIiwibWVudSIsIm5hdiIsIm9iamVjdCIsIm9sIiwicCIsInEiLCJxdW90ZSIsInNhbXAiLCJzZWN0aW9uIiwic3BhbiIsInN0cm9uZyIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0ZXh0YXJlYSIsInRmb290IiwidGgiLCJ0aGVhZCIsInRpbWUiLCJ0ciIsInVsIiwidmFyIiwidmlkZW8iXSxzZT1bImFueS1ob3ZlciIsImFueS1wb2ludGVyIiwiYXNwZWN0LXJhdGlvIiwiY29sb3IiLCJjb2xvci1nYW11dCIsImNvbG9yLWluZGV4IiwiZGV2aWNlLWFzcGVjdC1yYXRpbyIsImRldmljZS1oZWlnaHQiLCJkZXZpY2Utd2lkdGgiLCJkaXNwbGF5LW1vZGUiLCJmb3JjZWQtY29sb3JzIiwiZ3JpZCIsImhlaWdodCIsImhvdmVyIiwiaW52ZXJ0ZWQtY29sb3JzIiwibW9ub2Nocm9tZSIsIm9yaWVudGF0aW9uIiwib3ZlcmZsb3ctYmxvY2siLCJvdmVyZmxvdy1pbmxpbmUiLCJwb2ludGVyIiwicHJlZmVycy1jb2xvci1zY2hlbWUiLCJwcmVmZXJzLWNvbnRyYXN0IiwicHJlZmVycy1yZWR1Y2VkLW1vdGlvbiIsInByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3kiLCJyZXNvbHV0aW9uIiwic2NhbiIsInNjcmlwdGluZyIsInVwZGF0ZSIsIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiXSxvZT1bImFjdGl2ZSIsImFueS1saW5rIiwiYmxhbmsiLCJjaGVja2VkIiwiY3VycmVudCIsImRlZmF1bHQiLCJkZWZpbmVkIiwiZGlyIiwiZGlzYWJsZWQiLCJkcm9wIiwiZW1wdHkiLCJlbmFibGVkIiwiZmlyc3QiLCJmaXJzdC1jaGlsZCIsImZpcnN0LW9mLXR5cGUiLCJmdWxsc2NyZWVuIiwiZnV0dXJlIiwiZm9jdXMiLCJmb2N1cy12aXNpYmxlIiwiZm9jdXMtd2l0aGluIiwiaGFzIiwiaG9zdCIsImhvc3QtY29udGV4dCIsImhvdmVyIiwiaW5kZXRlcm1pbmF0ZSIsImluLXJhbmdlIiwiaW52YWxpZCIsImlzIiwibGFuZyIsImxhc3QtY2hpbGQiLCJsYXN0LW9mLXR5cGUiLCJsZWZ0IiwibGluayIsImxvY2FsLWxpbmsiLCJub3QiLCJudGgtY2hpbGQiLCJudGgtY29sIiwibnRoLWxhc3QtY2hpbGQiLCJudGgtbGFzdC1jb2wiLCJudGgtbGFzdC1vZi10eXBlIiwibnRoLW9mLXR5cGUiLCJvbmx5LWNoaWxkIiwib25seS1vZi10eXBlIiwib3B0aW9uYWwiLCJvdXQtb2YtcmFuZ2UiLCJwYXN0IiwicGxhY2Vob2xkZXItc2hvd24iLCJyZWFkLW9ubHkiLCJyZWFkLXdyaXRlIiwicmVxdWlyZWQiLCJyaWdodCIsInJvb3QiLCJzY29wZSIsInRhcmdldCIsInRhcmdldC13aXRoaW4iLCJ1c2VyLWludmFsaWQiLCJ2YWxpZCIsInZpc2l0ZWQiLCJ3aGVyZSJdLGxlPVsiYWZ0ZXIiLCJiYWNrZHJvcCIsImJlZm9yZSIsImN1ZSIsImN1ZS1yZWdpb24iLCJmaXJzdC1sZXR0ZXIiLCJmaXJzdC1saW5lIiwiZ3JhbW1hci1lcnJvciIsIm1hcmtlciIsInBhcnQiLCJwbGFjZWhvbGRlciIsInNlbGVjdGlvbiIsInNsb3R0ZWQiLCJzcGVsbGluZy1lcnJvciJdLGNlPVsiYWxpZ24tY29udGVudCIsImFsaWduLWl0ZW1zIiwiYWxpZ24tc2VsZiIsImFsbCIsImFuaW1hdGlvbiIsImFuaW1hdGlvbi1kZWxheSIsImFuaW1hdGlvbi1kaXJlY3Rpb24iLCJhbmltYXRpb24tZHVyYXRpb24iLCJhbmltYXRpb24tZmlsbC1tb2RlIiwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCIsImFuaW1hdGlvbi1uYW1lIiwiYW5pbWF0aW9uLXBsYXktc3RhdGUiLCJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIiwiYmFja2ZhY2UtdmlzaWJpbGl0eSIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiLCJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiLCJiYWNrZ3JvdW5kLWNsaXAiLCJiYWNrZ3JvdW5kLWNvbG9yIiwiYmFja2dyb3VuZC1pbWFnZSIsImJhY2tncm91bmQtb3JpZ2luIiwiYmFja2dyb3VuZC1wb3NpdGlvbiIsImJhY2tncm91bmQtcmVwZWF0IiwiYmFja2dyb3VuZC1zaXplIiwiYmxvY2stc2l6ZSIsImJvcmRlciIsImJvcmRlci1ibG9jayIsImJvcmRlci1ibG9jay1jb2xvciIsImJvcmRlci1ibG9jay1lbmQiLCJib3JkZXItYmxvY2stZW5kLWNvbG9yIiwiYm9yZGVyLWJsb2NrLWVuZC1zdHlsZSIsImJvcmRlci1ibG9jay1lbmQtd2lkdGgiLCJib3JkZXItYmxvY2stc3RhcnQiLCJib3JkZXItYmxvY2stc3RhcnQtY29sb3IiLCJib3JkZXItYmxvY2stc3RhcnQtc3R5bGUiLCJib3JkZXItYmxvY2stc3RhcnQtd2lkdGgiLCJib3JkZXItYmxvY2stc3R5bGUiLCJib3JkZXItYmxvY2std2lkdGgiLCJib3JkZXItYm90dG9tIiwiYm9yZGVyLWJvdHRvbS1jb2xvciIsImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiLCJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tc3R5bGUiLCJib3JkZXItYm90dG9tLXdpZHRoIiwiYm9yZGVyLWNvbGxhcHNlIiwiYm9yZGVyLWNvbG9yIiwiYm9yZGVyLWltYWdlIiwiYm9yZGVyLWltYWdlLW91dHNldCIsImJvcmRlci1pbWFnZS1yZXBlYXQiLCJib3JkZXItaW1hZ2Utc2xpY2UiLCJib3JkZXItaW1hZ2Utc291cmNlIiwiYm9yZGVyLWltYWdlLXdpZHRoIiwiYm9yZGVyLWlubGluZSIsImJvcmRlci1pbmxpbmUtY29sb3IiLCJib3JkZXItaW5saW5lLWVuZCIsImJvcmRlci1pbmxpbmUtZW5kLWNvbG9yIiwiYm9yZGVyLWlubGluZS1lbmQtc3R5bGUiLCJib3JkZXItaW5saW5lLWVuZC13aWR0aCIsImJvcmRlci1pbmxpbmUtc3RhcnQiLCJib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yIiwiYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZSIsImJvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGgiLCJib3JkZXItaW5saW5lLXN0eWxlIiwiYm9yZGVyLWlubGluZS13aWR0aCIsImJvcmRlci1sZWZ0IiwiYm9yZGVyLWxlZnQtY29sb3IiLCJib3JkZXItbGVmdC1zdHlsZSIsImJvcmRlci1sZWZ0LXdpZHRoIiwiYm9yZGVyLXJhZGl1cyIsImJvcmRlci1yaWdodCIsImJvcmRlci1yaWdodC1jb2xvciIsImJvcmRlci1yaWdodC1zdHlsZSIsImJvcmRlci1yaWdodC13aWR0aCIsImJvcmRlci1zcGFjaW5nIiwiYm9yZGVyLXN0eWxlIiwiYm9yZGVyLXRvcCIsImJvcmRlci10b3AtY29sb3IiLCJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMiLCJib3JkZXItdG9wLXN0eWxlIiwiYm9yZGVyLXRvcC13aWR0aCIsImJvcmRlci13aWR0aCIsImJvdHRvbSIsImJveC1kZWNvcmF0aW9uLWJyZWFrIiwiYm94LXNoYWRvdyIsImJveC1zaXppbmciLCJicmVhay1hZnRlciIsImJyZWFrLWJlZm9yZSIsImJyZWFrLWluc2lkZSIsImNhcHRpb24tc2lkZSIsImNhcmV0LWNvbG9yIiwiY2xlYXIiLCJjbGlwIiwiY2xpcC1wYXRoIiwiY2xpcC1ydWxlIiwiY29sb3IiLCJjb2x1bW4tY291bnQiLCJjb2x1bW4tZmlsbCIsImNvbHVtbi1nYXAiLCJjb2x1bW4tcnVsZSIsImNvbHVtbi1ydWxlLWNvbG9yIiwiY29sdW1uLXJ1bGUtc3R5bGUiLCJjb2x1bW4tcnVsZS13aWR0aCIsImNvbHVtbi1zcGFuIiwiY29sdW1uLXdpZHRoIiwiY29sdW1ucyIsImNvbnRhaW4iLCJjb250ZW50IiwiY29udGVudC12aXNpYmlsaXR5IiwiY291bnRlci1pbmNyZW1lbnQiLCJjb3VudGVyLXJlc2V0IiwiY3VlIiwiY3VlLWFmdGVyIiwiY3VlLWJlZm9yZSIsImN1cnNvciIsImRpcmVjdGlvbiIsImRpc3BsYXkiLCJlbXB0eS1jZWxscyIsImZpbHRlciIsImZsZXgiLCJmbGV4LWJhc2lzIiwiZmxleC1kaXJlY3Rpb24iLCJmbGV4LWZsb3ciLCJmbGV4LWdyb3ciLCJmbGV4LXNocmluayIsImZsZXgtd3JhcCIsImZsb2F0IiwiZmxvdyIsImZvbnQiLCJmb250LWRpc3BsYXkiLCJmb250LWZhbWlseSIsImZvbnQtZmVhdHVyZS1zZXR0aW5ncyIsImZvbnQta2VybmluZyIsImZvbnQtbGFuZ3VhZ2Utb3ZlcnJpZGUiLCJmb250LXNpemUiLCJmb250LXNpemUtYWRqdXN0IiwiZm9udC1zbW9vdGhpbmciLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC1zeW50aGVzaXMiLCJmb250LXZhcmlhbnQiLCJmb250LXZhcmlhbnQtY2FwcyIsImZvbnQtdmFyaWFudC1lYXN0LWFzaWFuIiwiZm9udC12YXJpYW50LWxpZ2F0dXJlcyIsImZvbnQtdmFyaWFudC1udW1lcmljIiwiZm9udC12YXJpYW50LXBvc2l0aW9uIiwiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiLCJmb250LXdlaWdodCIsImdhcCIsImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIiwiZ3JpZCIsImdyaWQtYXJlYSIsImdyaWQtYXV0by1jb2x1bW5zIiwiZ3JpZC1hdXRvLWZsb3ciLCJncmlkLWF1dG8tcm93cyIsImdyaWQtY29sdW1uIiwiZ3JpZC1jb2x1bW4tZW5kIiwiZ3JpZC1jb2x1bW4tc3RhcnQiLCJncmlkLWdhcCIsImdyaWQtcm93IiwiZ3JpZC1yb3ctZW5kIiwiZ3JpZC1yb3ctc3RhcnQiLCJncmlkLXRlbXBsYXRlIiwiZ3JpZC10ZW1wbGF0ZS1hcmVhcyIsImdyaWQtdGVtcGxhdGUtY29sdW1ucyIsImdyaWQtdGVtcGxhdGUtcm93cyIsImhhbmdpbmctcHVuY3R1YXRpb24iLCJoZWlnaHQiLCJoeXBoZW5zIiwiaWNvbiIsImltYWdlLW9yaWVudGF0aW9uIiwiaW1hZ2UtcmVuZGVyaW5nIiwiaW1hZ2UtcmVzb2x1dGlvbiIsImltZS1tb2RlIiwiaW5saW5lLXNpemUiLCJpc29sYXRpb24iLCJqdXN0aWZ5LWNvbnRlbnQiLCJsZWZ0IiwibGV0dGVyLXNwYWNpbmciLCJsaW5lLWJyZWFrIiwibGluZS1oZWlnaHQiLCJsaXN0LXN0eWxlIiwibGlzdC1zdHlsZS1pbWFnZSIsImxpc3Qtc3R5bGUtcG9zaXRpb24iLCJsaXN0LXN0eWxlLXR5cGUiLCJtYXJnaW4iLCJtYXJnaW4tYmxvY2siLCJtYXJnaW4tYmxvY2stZW5kIiwibWFyZ2luLWJsb2NrLXN0YXJ0IiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1pbmxpbmUiLCJtYXJnaW4taW5saW5lLWVuZCIsIm1hcmdpbi1pbmxpbmUtc3RhcnQiLCJtYXJnaW4tbGVmdCIsIm1hcmdpbi1yaWdodCIsIm1hcmdpbi10b3AiLCJtYXJrcyIsIm1hc2siLCJtYXNrLWJvcmRlciIsIm1hc2stYm9yZGVyLW1vZGUiLCJtYXNrLWJvcmRlci1vdXRzZXQiLCJtYXNrLWJvcmRlci1yZXBlYXQiLCJtYXNrLWJvcmRlci1zbGljZSIsIm1hc2stYm9yZGVyLXNvdXJjZSIsIm1hc2stYm9yZGVyLXdpZHRoIiwibWFzay1jbGlwIiwibWFzay1jb21wb3NpdGUiLCJtYXNrLWltYWdlIiwibWFzay1tb2RlIiwibWFzay1vcmlnaW4iLCJtYXNrLXBvc2l0aW9uIiwibWFzay1yZXBlYXQiLCJtYXNrLXNpemUiLCJtYXNrLXR5cGUiLCJtYXgtYmxvY2stc2l6ZSIsIm1heC1oZWlnaHQiLCJtYXgtaW5saW5lLXNpemUiLCJtYXgtd2lkdGgiLCJtaW4tYmxvY2stc2l6ZSIsIm1pbi1oZWlnaHQiLCJtaW4taW5saW5lLXNpemUiLCJtaW4td2lkdGgiLCJtaXgtYmxlbmQtbW9kZSIsIm5hdi1kb3duIiwibmF2LWluZGV4IiwibmF2LWxlZnQiLCJuYXYtcmlnaHQiLCJuYXYtdXAiLCJub25lIiwibm9ybWFsIiwib2JqZWN0LWZpdCIsIm9iamVjdC1wb3NpdGlvbiIsIm9wYWNpdHkiLCJvcmRlciIsIm9ycGhhbnMiLCJvdXRsaW5lIiwib3V0bGluZS1jb2xvciIsIm91dGxpbmUtb2Zmc2V0Iiwib3V0bGluZS1zdHlsZSIsIm91dGxpbmUtd2lkdGgiLCJvdmVyZmxvdyIsIm92ZXJmbG93LXdyYXAiLCJvdmVyZmxvdy14Iiwib3ZlcmZsb3cteSIsInBhZGRpbmciLCJwYWRkaW5nLWJsb2NrIiwicGFkZGluZy1ibG9jay1lbmQiLCJwYWRkaW5nLWJsb2NrLXN0YXJ0IiwicGFkZGluZy1ib3R0b20iLCJwYWRkaW5nLWlubGluZSIsInBhZGRpbmctaW5saW5lLWVuZCIsInBhZGRpbmctaW5saW5lLXN0YXJ0IiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGFnZS1icmVhay1hZnRlciIsInBhZ2UtYnJlYWstYmVmb3JlIiwicGFnZS1icmVhay1pbnNpZGUiLCJwYXVzZSIsInBhdXNlLWFmdGVyIiwicGF1c2UtYmVmb3JlIiwicGVyc3BlY3RpdmUiLCJwZXJzcGVjdGl2ZS1vcmlnaW4iLCJwb2ludGVyLWV2ZW50cyIsInBvc2l0aW9uIiwicXVvdGVzIiwicmVzaXplIiwicmVzdCIsInJlc3QtYWZ0ZXIiLCJyZXN0LWJlZm9yZSIsInJpZ2h0Iiwicm93LWdhcCIsInNjcm9sbC1tYXJnaW4iLCJzY3JvbGwtbWFyZ2luLWJsb2NrIiwic2Nyb2xsLW1hcmdpbi1ibG9jay1lbmQiLCJzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0Iiwic2Nyb2xsLW1hcmdpbi1ib3R0b20iLCJzY3JvbGwtbWFyZ2luLWlubGluZSIsInNjcm9sbC1tYXJnaW4taW5saW5lLWVuZCIsInNjcm9sbC1tYXJnaW4taW5saW5lLXN0YXJ0Iiwic2Nyb2xsLW1hcmdpbi1sZWZ0Iiwic2Nyb2xsLW1hcmdpbi1yaWdodCIsInNjcm9sbC1tYXJnaW4tdG9wIiwic2Nyb2xsLXBhZGRpbmciLCJzY3JvbGwtcGFkZGluZy1ibG9jayIsInNjcm9sbC1wYWRkaW5nLWJsb2NrLWVuZCIsInNjcm9sbC1wYWRkaW5nLWJsb2NrLXN0YXJ0Iiwic2Nyb2xsLXBhZGRpbmctYm90dG9tIiwic2Nyb2xsLXBhZGRpbmctaW5saW5lIiwic2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCIsInNjcm9sbC1wYWRkaW5nLWlubGluZS1zdGFydCIsInNjcm9sbC1wYWRkaW5nLWxlZnQiLCJzY3JvbGwtcGFkZGluZy1yaWdodCIsInNjcm9sbC1wYWRkaW5nLXRvcCIsInNjcm9sbC1zbmFwLWFsaWduIiwic2Nyb2xsLXNuYXAtc3RvcCIsInNjcm9sbC1zbmFwLXR5cGUiLCJzY3JvbGxiYXItY29sb3IiLCJzY3JvbGxiYXItZ3V0dGVyIiwic2Nyb2xsYmFyLXdpZHRoIiwic2hhcGUtaW1hZ2UtdGhyZXNob2xkIiwic2hhcGUtbWFyZ2luIiwic2hhcGUtb3V0c2lkZSIsInNwZWFrIiwic3BlYWstYXMiLCJzcmMiLCJ0YWItc2l6ZSIsInRhYmxlLWxheW91dCIsInRleHQtYWxpZ24iLCJ0ZXh0LWFsaWduLWFsbCIsInRleHQtYWxpZ24tbGFzdCIsInRleHQtY29tYmluZS11cHJpZ2h0IiwidGV4dC1kZWNvcmF0aW9uIiwidGV4dC1kZWNvcmF0aW9uLWNvbG9yIiwidGV4dC1kZWNvcmF0aW9uLWxpbmUiLCJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiLCJ0ZXh0LWVtcGhhc2lzIiwidGV4dC1lbXBoYXNpcy1jb2xvciIsInRleHQtZW1waGFzaXMtcG9zaXRpb24iLCJ0ZXh0LWVtcGhhc2lzLXN0eWxlIiwidGV4dC1pbmRlbnQiLCJ0ZXh0LWp1c3RpZnkiLCJ0ZXh0LW9yaWVudGF0aW9uIiwidGV4dC1vdmVyZmxvdyIsInRleHQtcmVuZGVyaW5nIiwidGV4dC1zaGFkb3ciLCJ0ZXh0LXRyYW5zZm9ybSIsInRleHQtdW5kZXJsaW5lLXBvc2l0aW9uIiwidG9wIiwidHJhbnNmb3JtIiwidHJhbnNmb3JtLWJveCIsInRyYW5zZm9ybS1vcmlnaW4iLCJ0cmFuc2Zvcm0tc3R5bGUiLCJ0cmFuc2l0aW9uIiwidHJhbnNpdGlvbi1kZWxheSIsInRyYW5zaXRpb24tZHVyYXRpb24iLCJ0cmFuc2l0aW9uLXByb3BlcnR5IiwidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24iLCJ1bmljb2RlLWJpZGkiLCJ2ZXJ0aWNhbC1hbGlnbiIsInZpc2liaWxpdHkiLCJ2b2ljZS1iYWxhbmNlIiwidm9pY2UtZHVyYXRpb24iLCJ2b2ljZS1mYW1pbHkiLCJ2b2ljZS1waXRjaCIsInZvaWNlLXJhbmdlIiwidm9pY2UtcmF0ZSIsInZvaWNlLXN0cmVzcyIsInZvaWNlLXZvbHVtZSIsIndoaXRlLXNwYWNlIiwid2lkb3dzIiwid2lkdGgiLCJ3aWxsLWNoYW5nZSIsIndvcmQtYnJlYWsiLCJ3b3JkLXNwYWNpbmciLCJ3b3JkLXdyYXAiLCJ3cml0aW5nLW1vZGUiLCJ6LWluZGV4Il0ucmV2ZXJzZSgpLGRlPW9lLmNvbmNhdChsZSkKO3ZhciBnZT0iWzAtOV0oXypbMC05XSkqIix1ZT1gXFwuKCR7Z2V9KWAsYmU9IlswLTlhLWZBLUZdKF8qWzAtOWEtZkEtRl0pKiIsbWU9ewpjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3sKYmVnaW46YChcXGIoJHtnZX0pKCgke3VlfSl8XFwuKT98KCR7dWV9KSlbZUVdWystXT8oJHtnZX0pW2ZGZERdP1xcYmB9LHsKYmVnaW46YFxcYigke2dlfSkoKCR7dWV9KVtmRmREXT9cXGJ8XFwuKFtmRmREXVxcYik/KWB9LHsKYmVnaW46YCgke3VlfSlbZkZkRF0/XFxiYH0se2JlZ2luOmBcXGIoJHtnZX0pW2ZGZERdXFxiYH0sewpiZWdpbjpgXFxiMFt4WF0oKCR7YmV9KVxcLj98KCR7YmV9KT9cXC4oJHtiZX0pKVtwUF1bKy1dPygke2dlfSlbZkZkRF0/XFxiYH0sewpiZWdpbjoiXFxiKDB8WzEtOV0oXypbMC05XSkqKVtsTF0/XFxiIn0se2JlZ2luOmBcXGIwW3hYXSgke2JlfSlbbExdP1xcYmB9LHsKYmVnaW46IlxcYjAoXypbMC03XSkqW2xMXT9cXGIifSx7YmVnaW46IlxcYjBbYkJdWzAxXShfKlswMV0pKltsTF0/XFxiIn1dLApyZWxldmFuY2U6MH07ZnVuY3Rpb24gcGUoZSxuLHQpe3JldHVybi0xPT09dD8iIjplLnJlcGxhY2UobiwoYT0+cGUoZSxuLHQtMSkpKX0KY29uc3QgX2U9IltBLVphLXokX11bMC05QS1aYS16JF9dKiIsaGU9WyJhcyIsImluIiwib2YiLCJpZiIsImZvciIsIndoaWxlIiwiZmluYWxseSIsInZhciIsIm5ldyIsImZ1bmN0aW9uIiwiZG8iLCJyZXR1cm4iLCJ2b2lkIiwiZWxzZSIsImJyZWFrIiwiY2F0Y2giLCJpbnN0YW5jZW9mIiwid2l0aCIsInRocm93IiwiY2FzZSIsImRlZmF1bHQiLCJ0cnkiLCJzd2l0Y2giLCJjb250aW51ZSIsInR5cGVvZiIsImRlbGV0ZSIsImxldCIsInlpZWxkIiwiY29uc3QiLCJjbGFzcyIsImRlYnVnZ2VyIiwiYXN5bmMiLCJhd2FpdCIsInN0YXRpYyIsImltcG9ydCIsImZyb20iLCJleHBvcnQiLCJleHRlbmRzIl0sZmU9WyJ0cnVlIiwiZmFsc2UiLCJudWxsIiwidW5kZWZpbmVkIiwiTmFOIiwiSW5maW5pdHkiXSxFZT1bIk9iamVjdCIsIkZ1bmN0aW9uIiwiQm9vbGVhbiIsIlN5bWJvbCIsIk1hdGgiLCJEYXRlIiwiTnVtYmVyIiwiQmlnSW50IiwiU3RyaW5nIiwiUmVnRXhwIiwiQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJJbnQ4QXJyYXkiLCJVaW50OEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJCaWdJbnQ2NEFycmF5IiwiQmlnVWludDY0QXJyYXkiLCJTZXQiLCJNYXAiLCJXZWFrU2V0IiwiV2Vha01hcCIsIkFycmF5QnVmZmVyIiwiU2hhcmVkQXJyYXlCdWZmZXIiLCJBdG9taWNzIiwiRGF0YVZpZXciLCJKU09OIiwiUHJvbWlzZSIsIkdlbmVyYXRvciIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiQXN5bmNGdW5jdGlvbiIsIlJlZmxlY3QiLCJQcm94eSIsIkludGwiLCJXZWJBc3NlbWJseSJdLHllPVsiRXJyb3IiLCJFdmFsRXJyb3IiLCJJbnRlcm5hbEVycm9yIiwiUmFuZ2VFcnJvciIsIlJlZmVyZW5jZUVycm9yIiwiU3ludGF4RXJyb3IiLCJUeXBlRXJyb3IiLCJVUklFcnJvciJdLE5lPVsic2V0SW50ZXJ2YWwiLCJzZXRUaW1lb3V0IiwiY2xlYXJJbnRlcnZhbCIsImNsZWFyVGltZW91dCIsInJlcXVpcmUiLCJleHBvcnRzIiwiZXZhbCIsImlzRmluaXRlIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwicGFyc2VJbnQiLCJkZWNvZGVVUkkiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVVUkkiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlc2NhcGUiLCJ1bmVzY2FwZSJdLHdlPVsiYXJndW1lbnRzIiwidGhpcyIsInN1cGVyIiwiY29uc29sZSIsIndpbmRvdyIsImRvY3VtZW50IiwibG9jYWxTdG9yYWdlIiwic2Vzc2lvblN0b3JhZ2UiLCJtb2R1bGUiLCJnbG9iYWwiXSx2ZT1bXS5jb25jYXQoTmUsRWUseWUpCjtmdW5jdGlvbiBPZShlKXtjb25zdCBuPWUucmVnZXgsdD1fZSxhPXtiZWdpbjovPFtBLVphLXowLTlcXC5fOi1dKy8sCmVuZDovXC9bQS1aYS16MC05XFwuXzotXSs+fFwvPi8saXNUcnVseU9wZW5pbmdUYWc6KGUsbik9PnsKY29uc3QgdD1lWzBdLmxlbmd0aCtlLmluZGV4LGE9ZS5pbnB1dFt0XQo7aWYoIjwiPT09YXx8IiwiPT09YSlyZXR1cm4gdm9pZCBuLmlnbm9yZU1hdGNoKCk7bGV0IGkKOyI+Ij09PWEmJigoKGUse2FmdGVyOm59KT0+e2NvbnN0IHQ9IjwvIitlWzBdLnNsaWNlKDEpCjtyZXR1cm4tMSE9PWUuaW5wdXQuaW5kZXhPZih0LG4pfSkoZSx7YWZ0ZXI6dH0pfHxuLmlnbm9yZU1hdGNoKCkpCjtjb25zdCByPWUuaW5wdXQuc3Vic3RyaW5nKHQpCjsoKGk9ci5tYXRjaCgvXlxzKj0vKSl8fChpPXIubWF0Y2goL15ccytleHRlbmRzXHMrLykpJiYwPT09aS5pbmRleCkmJm4uaWdub3JlTWF0Y2goKQp9fSxpPXskcGF0dGVybjpfZSxrZXl3b3JkOmhlLGxpdGVyYWw6ZmUsYnVpbHRfaW46dmUsInZhcmlhYmxlLmxhbmd1YWdlIjp3ZQp9LHI9IlswLTldKF8/WzAtOV0pKiIscz1gXFwuKCR7cn0pYCxvPSIwfFsxLTldKF8/WzAtOV0pKnwwWzAtN10qWzg5XVswLTldKiIsbD17CmNsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbewpiZWdpbjpgKFxcYigke299KSgoJHtzfSl8XFwuKT98KCR7c30pKVtlRV1bKy1dPygke3J9KVxcYmB9LHsKYmVnaW46YFxcYigke299KVxcYigoJHtzfSlcXGJ8XFwuKT98KCR7c30pXFxiYH0sewpiZWdpbjoiXFxiKDB8WzEtOV0oXz9bMC05XSkqKW5cXGIifSx7CmJlZ2luOiJcXGIwW3hYXVswLTlhLWZBLUZdKF8/WzAtOWEtZkEtRl0pKm4/XFxiIn0sewpiZWdpbjoiXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcYiJ9LHtiZWdpbjoiXFxiMFtvT11bMC03XShfP1swLTddKSpuP1xcYiJ9LHsKYmVnaW46IlxcYjBbMC03XStuP1xcYiJ9XSxyZWxldmFuY2U6MH0sYz17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46IlxcJFxceyIsCmVuZDoiXFx9IixrZXl3b3JkczppLGNvbnRhaW5zOltdfSxkPXtiZWdpbjoiaHRtbGAiLGVuZDoiIixzdGFydHM6e2VuZDoiYCIsCnJldHVybkVuZDohMSxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLGNdLHN1Ykxhbmd1YWdlOiJ4bWwifX0sZz17CmJlZ2luOiJjc3NgIixlbmQ6IiIsc3RhcnRzOntlbmQ6ImAiLHJldHVybkVuZDohMSwKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxjXSxzdWJMYW5ndWFnZToiY3NzIn19LHU9e2JlZ2luOiJncWxgIixlbmQ6IiIsCnN0YXJ0czp7ZW5kOiJgIixyZXR1cm5FbmQ6ITEsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxjXSwKc3ViTGFuZ3VhZ2U6ImdyYXBocWwifX0sYj17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJgIixlbmQ6ImAiLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLGNdfSxtPXtjbGFzc05hbWU6ImNvbW1lbnQiLAp2YXJpYW50czpbZS5DT01NRU5UKC9cL1wqXCooPyFcLykvLCJcXCovIix7cmVsZXZhbmNlOjAsY29udGFpbnM6W3sKYmVnaW46Iig/PUBbQS1aYS16XSspIixyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIiwKYmVnaW46IkBbQS1aYS16XSsifSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFx7IixlbmQ6IlxcfSIsZXhjbHVkZUVuZDohMCwKZXhjbHVkZUJlZ2luOiEwLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46dCsiKD89XFxzKigtKXwkKSIsCmVuZHNQYXJlbnQ6ITAscmVsZXZhbmNlOjB9LHtiZWdpbjovKD89W15cbl0pXHMvLHJlbGV2YW5jZTowfV19XQp9KSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuQ19MSU5FX0NPTU1FTlRfTU9ERV0KfSxwPVtlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxkLGcsdSxiLHttYXRjaDovXCRcZCsvfSxsXQo7Yy5jb250YWlucz1wLmNvbmNhdCh7YmVnaW46L1x7LyxlbmQ6L1x9LyxrZXl3b3JkczppLGNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdChwKQp9KTtjb25zdCBfPVtdLmNvbmNhdChtLGMuY29udGFpbnMpLGg9Xy5jb25jYXQoW3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOmksCmNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdChfKX1dKSxmPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLywKZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6aSxjb250YWluczpofSxFPXt2YXJpYW50czpbewptYXRjaDpbL2NsYXNzLywvXHMrLyx0LC9ccysvLC9leHRlbmRzLywvXHMrLyxuLmNvbmNhdCh0LCIoIixuLmNvbmNhdCgvXC4vLHQpLCIpKiIpXSwKc2NvcGU6ezE6ImtleXdvcmQiLDM6InRpdGxlLmNsYXNzIiw1OiJrZXl3b3JkIiw3OiJ0aXRsZS5jbGFzcy5pbmhlcml0ZWQifX0sewptYXRjaDpbL2NsYXNzLywvXHMrLyx0XSxzY29wZTp7MToia2V5d29yZCIsMzoidGl0bGUuY2xhc3MifX1dfSx5PXtyZWxldmFuY2U6MCwKbWF0Y2g6bi5laXRoZXIoL1xiSlNPTi8sL1xiW0EtWl1bYS16XSsoW0EtWl1bYS16XSp8XGQpKi8sL1xiW0EtWl17Mix9KFtBLVpdW2Etel0rfFxkKSsoW0EtWl1bYS16XSopKi8sL1xiW0EtWl17Mix9W2Etel0rKFtBLVpdW2Etel0rfFxkKSooW0EtWl1bYS16XSopKi8pLApjbGFzc05hbWU6InRpdGxlLmNsYXNzIixrZXl3b3Jkczp7XzpbLi4uRWUsLi4ueWVdfX0sTj17dmFyaWFudHM6W3sKbWF0Y2g6Wy9mdW5jdGlvbi8sL1xzKy8sdCwvKD89XHMqXCgpL119LHttYXRjaDpbL2Z1bmN0aW9uLywvXHMqKD89XCgpL119XSwKY2xhc3NOYW1lOnsxOiJrZXl3b3JkIiwzOiJ0aXRsZS5mdW5jdGlvbiJ9LGxhYmVsOiJmdW5jLmRlZiIsY29udGFpbnM6W2ZdLAppbGxlZ2FsOi8lL30sdz17Cm1hdGNoOm4uY29uY2F0KC9cYi8sKHY9Wy4uLk5lLCJzdXBlciIsImltcG9ydCJdLG4uY29uY2F0KCIoPyEiLHYuam9pbigifCIpLCIpIikpLHQsbi5sb29rYWhlYWQoL1woLykpLApjbGFzc05hbWU6InRpdGxlLmZ1bmN0aW9uIixyZWxldmFuY2U6MH07dmFyIHY7Y29uc3QgTz17CmJlZ2luOm4uY29uY2F0KC9cLi8sbi5sb29rYWhlYWQobi5jb25jYXQodCwvKD8hWzAtOUEtWmEteiRfKF0pLykpKSxlbmQ6dCwKZXhjbHVkZUJlZ2luOiEwLGtleXdvcmRzOiJwcm90b3R5cGUiLGNsYXNzTmFtZToicHJvcGVydHkiLHJlbGV2YW5jZTowfSxrPXsKbWF0Y2g6Wy9nZXR8c2V0LywvXHMrLyx0LC8oPz1cKCkvXSxjbGFzc05hbWU6ezE6ImtleXdvcmQiLDM6InRpdGxlLmZ1bmN0aW9uIn0sCmNvbnRhaW5zOlt7YmVnaW46L1woXCkvfSxmXQp9LHg9IihcXChbXigpXSooXFwoW14oKV0qKFxcKFteKCldKlxcKVteKCldKikqXFwpW14oKV0qKSpcXCl8IitlLlVOREVSU0NPUkVfSURFTlRfUkUrIilcXHMqPT4iLE09ewptYXRjaDpbL2NvbnN0fHZhcnxsZXQvLC9ccysvLHQsL1xzKi8sLz1ccyovLC8oYXN5bmNccyopPy8sbi5sb29rYWhlYWQoeCldLAprZXl3b3JkczoiYXN5bmMiLGNsYXNzTmFtZTp7MToia2V5d29yZCIsMzoidGl0bGUuZnVuY3Rpb24ifSxjb250YWluczpbZl19CjtyZXR1cm57bmFtZToiSmF2YVNjcmlwdCIsYWxpYXNlczpbImpzIiwianN4IiwibWpzIiwiY2pzIl0sa2V5d29yZHM6aSxleHBvcnRzOnsKUEFSQU1TX0NPTlRBSU5TOmgsQ0xBU1NfUkVGRVJFTkNFOnl9LGlsbGVnYWw6LyMoPyFbJF9BLXpdKS8sCmNvbnRhaW5zOltlLlNIRUJBTkcoe2xhYmVsOiJzaGViYW5nIixiaW5hcnk6Im5vZGUiLHJlbGV2YW5jZTo1fSksewpsYWJlbDoidXNlX3N0cmljdCIsY2xhc3NOYW1lOiJtZXRhIixyZWxldmFuY2U6MTAsCmJlZ2luOi9eXHMqWyciXXVzZSAoc3RyaWN0fGFzbSlbJyJdLwp9LGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGQsZyx1LGIsbSx7bWF0Y2g6L1wkXGQrL30sbCx5LHsKY2xhc3NOYW1lOiJhdHRyIixiZWdpbjp0K24ubG9va2FoZWFkKCI6IikscmVsZXZhbmNlOjB9LE0sewpiZWdpbjoiKCIrZS5SRV9TVEFSVEVSU19SRSsifFxcYihjYXNlfHJldHVybnx0aHJvdylcXGIpXFxzKiIsCmtleXdvcmRzOiJyZXR1cm4gdGhyb3cgY2FzZSIscmVsZXZhbmNlOjAsY29udGFpbnM6W20sZS5SRUdFWFBfTU9ERSx7CmNsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOngscmV0dXJuQmVnaW46ITAsZW5kOiJcXHMqPT4iLGNvbnRhaW5zOlt7CmNsYXNzTmFtZToicGFyYW1zIix2YXJpYW50czpbe2JlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSxyZWxldmFuY2U6MH0sewpjbGFzc05hbWU6bnVsbCxiZWdpbjovXChccypcKS8sc2tpcDohMH0se2JlZ2luOi9cKC8sZW5kOi9cKS8sZXhjbHVkZUJlZ2luOiEwLApleGNsdWRlRW5kOiEwLGtleXdvcmRzOmksY29udGFpbnM6aH1dfV19LHtiZWdpbjovLC8scmVsZXZhbmNlOjB9LHttYXRjaDovXHMrLywKcmVsZXZhbmNlOjB9LHt2YXJpYW50czpbe2JlZ2luOiI8PiIsZW5kOiI8Lz4ifSx7Cm1hdGNoOi88W0EtWmEtejAtOVxcLl86LV0rXHMqXC8+L30se2JlZ2luOmEuYmVnaW4sCiJvbjpiZWdpbiI6YS5pc1RydWx5T3BlbmluZ1RhZyxlbmQ6YS5lbmR9XSxzdWJMYW5ndWFnZToieG1sIixjb250YWluczpbewpiZWdpbjphLmJlZ2luLGVuZDphLmVuZCxza2lwOiEwLGNvbnRhaW5zOlsic2VsZiJdfV19XX0sTix7CmJlZ2luS2V5d29yZHM6IndoaWxlIGlmIHN3aXRjaCBjYXRjaCBmb3IifSx7CmJlZ2luOiJcXGIoPyFmdW5jdGlvbikiK2UuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFwoW14oKV0qKFxcKFteKCldKihcXChbXigpXSpcXClbXigpXSopKlxcKVteKCldKikqXFwpXFxzKlxceyIsCnJldHVybkJlZ2luOiEwLGxhYmVsOiJmdW5jLmRlZiIsY29udGFpbnM6W2YsZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7YmVnaW46dCwKY2xhc3NOYW1lOiJ0aXRsZS5mdW5jdGlvbiJ9KV19LHttYXRjaDovXC5cLlwuLyxyZWxldmFuY2U6MH0sTyx7bWF0Y2g6IlxcJCIrdCwKcmVsZXZhbmNlOjB9LHttYXRjaDpbL1xiY29uc3RydWN0b3IoPz1ccypcKCkvXSxjbGFzc05hbWU6ezE6InRpdGxlLmZ1bmN0aW9uIn0sCmNvbnRhaW5zOltmXX0sdyx7cmVsZXZhbmNlOjAsbWF0Y2g6L1xiW0EtWl1bQS1aXzAtOV0rXGIvLApjbGFzc05hbWU6InZhcmlhYmxlLmNvbnN0YW50In0sRSxrLHttYXRjaDovXCRbKC5dL31dfX0KY29uc3Qga2U9ZT0+YigvXGIvLGUsL1x3JC8udGVzdChlKT8vXGIvOi9cQi8pLHhlPVsiUHJvdG9jb2wiLCJUeXBlIl0ubWFwKGtlKSxNZT1bImluaXQiLCJzZWxmIl0ubWFwKGtlKSxTZT1bIkFueSIsIlNlbGYiXSxBZT1bImFjdG9yIiwiYW55IiwiYXNzb2NpYXRlZHR5cGUiLCJhc3luYyIsImF3YWl0IiwvYXNcPy8sL2FzIS8sImFzIiwiYm9ycm93aW5nIiwiYnJlYWsiLCJjYXNlIiwiY2F0Y2giLCJjbGFzcyIsImNvbnN1bWUiLCJjb25zdW1pbmciLCJjb250aW51ZSIsImNvbnZlbmllbmNlIiwiY29weSIsImRlZmF1bHQiLCJkZWZlciIsImRlaW5pdCIsImRpZFNldCIsImRpc3RyaWJ1dGVkIiwiZG8iLCJkeW5hbWljIiwiZWFjaCIsImVsc2UiLCJlbnVtIiwiZXh0ZW5zaW9uIiwiZmFsbHRocm91Z2giLC9maWxlcHJpdmF0ZVwoc2V0XCkvLCJmaWxlcHJpdmF0ZSIsImZpbmFsIiwiZm9yIiwiZnVuYyIsImdldCIsImd1YXJkIiwiaWYiLCJpbXBvcnQiLCJpbmRpcmVjdCIsImluZml4IiwvaW5pdFw/LywvaW5pdCEvLCJpbm91dCIsL2ludGVybmFsXChzZXRcKS8sImludGVybmFsIiwiaW4iLCJpcyIsImlzb2xhdGVkIiwibm9uaXNvbGF0ZWQiLCJsYXp5IiwibGV0IiwibWFjcm8iLCJtdXRhdGluZyIsIm5vbm11dGF0aW5nIiwvb3Blblwoc2V0XCkvLCJvcGVuIiwib3BlcmF0b3IiLCJvcHRpb25hbCIsIm92ZXJyaWRlIiwicG9zdGZpeCIsInByZWNlZGVuY2Vncm91cCIsInByZWZpeCIsL3ByaXZhdGVcKHNldFwpLywicHJpdmF0ZSIsInByb3RvY29sIiwvcHVibGljXChzZXRcKS8sInB1YmxpYyIsInJlcGVhdCIsInJlcXVpcmVkIiwicmV0aHJvd3MiLCJyZXR1cm4iLCJzZXQiLCJzb21lIiwic3RhdGljIiwic3RydWN0Iiwic3Vic2NyaXB0Iiwic3VwZXIiLCJzd2l0Y2giLCJ0aHJvd3MiLCJ0aHJvdyIsL3RyeVw/LywvdHJ5IS8sInRyeSIsInR5cGVhbGlhcyIsL3Vub3duZWRcKHNhZmVcKS8sL3Vub3duZWRcKHVuc2FmZVwpLywidW5vd25lZCIsInZhciIsIndlYWsiLCJ3aGVyZSIsIndoaWxlIiwid2lsbFNldCJdLENlPVsiZmFsc2UiLCJuaWwiLCJ0cnVlIl0sVGU9WyJhc3NpZ25tZW50IiwiYXNzb2NpYXRpdml0eSIsImhpZ2hlclRoYW4iLCJsZWZ0IiwibG93ZXJUaGFuIiwibm9uZSIsInJpZ2h0Il0sUmU9WyIjY29sb3JMaXRlcmFsIiwiI2NvbHVtbiIsIiNkc29oYW5kbGUiLCIjZWxzZSIsIiNlbHNlaWYiLCIjZW5kaWYiLCIjZXJyb3IiLCIjZmlsZSIsIiNmaWxlSUQiLCIjZmlsZUxpdGVyYWwiLCIjZmlsZVBhdGgiLCIjZnVuY3Rpb24iLCIjaWYiLCIjaW1hZ2VMaXRlcmFsIiwiI2tleVBhdGgiLCIjbGluZSIsIiNzZWxlY3RvciIsIiNzb3VyY2VMb2NhdGlvbiIsIiN3YXJuaW5nIl0sRGU9WyJhYnMiLCJhbGwiLCJhbnkiLCJhc3NlcnQiLCJhc3NlcnRpb25GYWlsdXJlIiwiZGVidWdQcmludCIsImR1bXAiLCJmYXRhbEVycm9yIiwiZ2V0VmFMaXN0IiwiaXNLbm93blVuaXF1ZWx5UmVmZXJlbmNlZCIsIm1heCIsIm1pbiIsIm51bWVyaWNDYXN0IiwicG9pbnR3aXNlTWF4IiwicG9pbnR3aXNlTWluIiwicHJlY29uZGl0aW9uIiwicHJlY29uZGl0aW9uRmFpbHVyZSIsInByaW50IiwicmVhZExpbmUiLCJyZXBlYXRFbGVtZW50Iiwic2VxdWVuY2UiLCJzdHJpZGUiLCJzd2FwIiwic3dpZnRfdW5ib3hGcm9tU3dpZnRWYWx1ZVdpdGhUeXBlIiwidHJhbnNjb2RlIiwidHlwZSIsInVuc2FmZUJpdENhc3QiLCJ1bnNhZmVEb3duY2FzdCIsIndpdGhFeHRlbmRlZExpZmV0aW1lIiwid2l0aFVuc2FmZU11dGFibGVQb2ludGVyIiwid2l0aFVuc2FmZVBvaW50ZXIiLCJ3aXRoVmFMaXN0Iiwid2l0aG91dEFjdHVhbGx5RXNjYXBpbmciLCJ6aXAiXSxJZT1tKC9bLz1cLSshKiU8PiZ8Xn4/XS8sL1tcdTAwQTEtXHUwMEE3XS8sL1tcdTAwQTlcdTAwQUJdLywvW1x1MDBBQ1x1MDBBRV0vLC9bXHUwMEIwXHUwMEIxXS8sL1tcdTAwQjZcdTAwQkJcdTAwQkZcdTAwRDdcdTAwRjddLywvW1x1MjAxNi1cdTIwMTddLywvW1x1MjAyMC1cdTIwMjddLywvW1x1MjAzMC1cdTIwM0VdLywvW1x1MjA0MS1cdTIwNTNdLywvW1x1MjA1NS1cdTIwNUVdLywvW1x1MjE5MC1cdTIzRkZdLywvW1x1MjUwMC1cdTI3NzVdLywvW1x1Mjc5NC1cdTJCRkZdLywvW1x1MkUwMC1cdTJFN0ZdLywvW1x1MzAwMS1cdTMwMDNdLywvW1x1MzAwOC1cdTMwMjBdLywvW1x1MzAzMF0vKSxMZT1tKEllLC9bXHUwMzAwLVx1MDM2Rl0vLC9bXHUxREMwLVx1MURGRl0vLC9bXHUyMEQwLVx1MjBGRl0vLC9bXHVGRTAwLVx1RkUwRl0vLC9bXHVGRTIwLVx1RkUyRl0vKSxCZT1iKEllLExlLCIqIiksJGU9bSgvW2EtekEtWl9dLywvW1x1MDBBOFx1MDBBQVx1MDBBRFx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjctXHUwMEJBXS8sL1tcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMEZGXS8sL1tcdTAxMDAtXHUwMkZGXHUwMzcwLVx1MTY3Rlx1MTY4MS1cdTE4MERcdTE4MEYtXHUxREJGXS8sL1tcdTFFMDAtXHUxRkZGXS8sL1tcdTIwMEItXHUyMDBEXHUyMDJBLVx1MjAyRVx1MjAzRi1cdTIwNDBcdTIwNTRcdTIwNjAtXHUyMDZGXS8sL1tcdTIwNzAtXHUyMENGXHUyMTAwLVx1MjE4Rlx1MjQ2MC1cdTI0RkZcdTI3NzYtXHUyNzkzXS8sL1tcdTJDMDAtXHUyREZGXHUyRTgwLVx1MkZGRl0vLC9bXHUzMDA0LVx1MzAwN1x1MzAyMS1cdTMwMkZcdTMwMzEtXHUzMDNGXHUzMDQwLVx1RDdGRl0vLC9bXHVGOTAwLVx1RkQzRFx1RkQ0MC1cdUZEQ0ZcdUZERjAtXHVGRTFGXHVGRTMwLVx1RkU0NF0vLC9bXHVGRTQ3LVx1RkVGRVx1RkYwMC1cdUZGRkRdLyksemU9bSgkZSwvXGQvLC9bXHUwMzAwLVx1MDM2Rlx1MURDMC1cdTFERkZcdTIwRDAtXHUyMEZGXHVGRTIwLVx1RkUyRl0vKSxGZT1iKCRlLHplLCIqIiksVWU9YigvW0EtWl0vLHplLCIqIiksamU9WyJhdHRhY2hlZCIsImF1dG9jbG9zdXJlIixiKC9jb252ZW50aW9uXCgvLG0oInN3aWZ0IiwiYmxvY2siLCJjIiksL1wpLyksImRpc2NhcmRhYmxlUmVzdWx0IiwiZHluYW1pY0NhbGxhYmxlIiwiZHluYW1pY01lbWJlckxvb2t1cCIsImVzY2FwaW5nIiwiZnJlZXN0YW5kaW5nIiwiZnJvemVuIiwiR0tJbnNwZWN0YWJsZSIsIklCQWN0aW9uIiwiSUJEZXNpZ25hYmxlIiwiSUJJbnNwZWN0YWJsZSIsIklCT3V0bGV0IiwiSUJTZWd1ZUFjdGlvbiIsImlubGluYWJsZSIsIm1haW4iLCJub25vYmpjIiwiTlNBcHBsaWNhdGlvbk1haW4iLCJOU0NvcHlpbmciLCJOU01hbmFnZWQiLGIoL29iamNcKC8sRmUsL1wpLyksIm9iamMiLCJvYmpjTWVtYmVycyIsInByb3BlcnR5V3JhcHBlciIsInJlcXVpcmVzX3N0b3JlZF9wcm9wZXJ0eV9pbml0cyIsInJlc3VsdEJ1aWxkZXIiLCJTZW5kYWJsZSIsInRlc3RhYmxlIiwiVUlBcHBsaWNhdGlvbk1haW4iLCJ1bmNoZWNrZWQiLCJ1bmtub3duIiwidXNhYmxlRnJvbUlubGluZSIsIndhcm5fdW5xdWFsaWZpZWRfYWNjZXNzIl0sUGU9WyJpT1MiLCJpT1NBcHBsaWNhdGlvbkV4dGVuc2lvbiIsIm1hY09TIiwibWFjT1NBcHBsaWNhdGlvbkV4dGVuc2lvbiIsIm1hY0NhdGFseXN0IiwibWFjQ2F0YWx5c3RBcHBsaWNhdGlvbkV4dGVuc2lvbiIsIndhdGNoT1MiLCJ3YXRjaE9TQXBwbGljYXRpb25FeHRlbnNpb24iLCJ0dk9TIiwidHZPU0FwcGxpY2F0aW9uRXh0ZW5zaW9uIiwic3dpZnQiXQo7dmFyIEtlPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGdybXJfYmFzaDplPT57Y29uc3Qgbj1lLnJlZ2V4LHQ9e30sYT17CmJlZ2luOi9cJFx7LyxlbmQ6L1x9Lyxjb250YWluczpbInNlbGYiLHtiZWdpbjovOi0vLGNvbnRhaW5zOlt0XX1dfQo7T2JqZWN0LmFzc2lnbih0LHtjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbewpiZWdpbjpuLmNvbmNhdCgvXCRbXHdcZCNAXVtcd1xkX10qLywiKD8hW1xcd1xcZF0pKD8hWyRdKSIpfSxhXX0pO2NvbnN0IGk9ewpjbGFzc05hbWU6InN1YnN0IixiZWdpbjovXCRcKC8sZW5kOi9cKS8sY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHI9ewpiZWdpbjovPDwtP1xzKig/PVx3KykvLHN0YXJ0czp7Y29udGFpbnM6W2UuRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi8oXHcrKS8sCmVuZDovKFx3KykvLGNsYXNzTmFtZToic3RyaW5nIn0pXX19LHM9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovIi8sZW5kOi8iLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSx0LGldfTtpLmNvbnRhaW5zLnB1c2gocyk7Y29uc3Qgbz17YmVnaW46L1wkP1woXCgvLAplbmQ6L1wpXCkvLGNvbnRhaW5zOlt7YmVnaW46L1xkKyNbMC05YS1mXSsvLGNsYXNzTmFtZToibnVtYmVyIn0sZS5OVU1CRVJfTU9ERSx0XQp9LGw9ZS5TSEVCQU5HKHtiaW5hcnk6IihmaXNofGJhc2h8enNofHNofGNzaHxrc2h8dGNzaHxkYXNofHNjc2gpIixyZWxldmFuY2U6MTAKfSksYz17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46L1x3W1x3XGRfXSpccypcKFxzKlwpXHMqXHsvLHJldHVybkJlZ2luOiEwLApjb250YWluczpbZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7YmVnaW46L1x3W1x3XGRfXSovfSldLHJlbGV2YW5jZTowfTtyZXR1cm57Cm5hbWU6IkJhc2giLGFsaWFzZXM6WyJzaCJdLGtleXdvcmRzOnskcGF0dGVybjovXGJbYS16XVthLXowLTkuXy1dK1xiLywKa2V5d29yZDpbImlmIiwidGhlbiIsImVsc2UiLCJlbGlmIiwiZmkiLCJmb3IiLCJ3aGlsZSIsInVudGlsIiwiaW4iLCJkbyIsImRvbmUiLCJjYXNlIiwiZXNhYyIsImZ1bmN0aW9uIiwic2VsZWN0Il0sCmxpdGVyYWw6WyJ0cnVlIiwiZmFsc2UiXSwKYnVpbHRfaW46WyJicmVhayIsImNkIiwiY29udGludWUiLCJldmFsIiwiZXhlYyIsImV4aXQiLCJleHBvcnQiLCJnZXRvcHRzIiwiaGFzaCIsInB3ZCIsInJlYWRvbmx5IiwicmV0dXJuIiwic2hpZnQiLCJ0ZXN0IiwidGltZXMiLCJ0cmFwIiwidW1hc2siLCJ1bnNldCIsImFsaWFzIiwiYmluZCIsImJ1aWx0aW4iLCJjYWxsZXIiLCJjb21tYW5kIiwiZGVjbGFyZSIsImVjaG8iLCJlbmFibGUiLCJoZWxwIiwibGV0IiwibG9jYWwiLCJsb2dvdXQiLCJtYXBmaWxlIiwicHJpbnRmIiwicmVhZCIsInJlYWRhcnJheSIsInNvdXJjZSIsInR5cGUiLCJ0eXBlc2V0IiwidWxpbWl0IiwidW5hbGlhcyIsInNldCIsInNob3B0IiwiYXV0b2xvYWQiLCJiZyIsImJpbmRrZXkiLCJieWUiLCJjYXAiLCJjaGRpciIsImNsb25lIiwiY29tcGFyZ3VtZW50cyIsImNvbXBjYWxsIiwiY29tcGN0bCIsImNvbXBkZXNjcmliZSIsImNvbXBmaWxlcyIsImNvbXBncm91cHMiLCJjb21wcXVvdGUiLCJjb21wdGFncyIsImNvbXB0cnkiLCJjb21wdmFsdWVzIiwiZGlycyIsImRpc2FibGUiLCJkaXNvd24iLCJlY2hvdGMiLCJlY2hvdGkiLCJlbXVsYXRlIiwiZmMiLCJmZyIsImZsb2F0IiwiZnVuY3Rpb25zIiwiZ2V0Y2FwIiwiZ2V0bG4iLCJoaXN0b3J5IiwiaW50ZWdlciIsImpvYnMiLCJraWxsIiwibGltaXQiLCJsb2ciLCJub2dsb2IiLCJwb3BkIiwicHJpbnQiLCJwdXNoZCIsInB1c2hsbiIsInJlaGFzaCIsInNjaGVkIiwic2V0Y2FwIiwic2V0b3B0Iiwic3RhdCIsInN1c3BlbmQiLCJ0dHljdGwiLCJ1bmZ1bmN0aW9uIiwidW5oYXNoIiwidW5saW1pdCIsInVuc2V0b3B0IiwidmFyZWQiLCJ3YWl0Iiwid2hlbmNlIiwid2hlcmUiLCJ3aGljaCIsInpjb21waWxlIiwiemZvcm1hdCIsInpmdHAiLCJ6bGUiLCJ6bW9kbG9hZCIsInpwYXJzZW9wdHMiLCJ6cHJvZiIsInpwdHkiLCJ6cmVnZXhwYXJzZSIsInpzb2NrZXQiLCJ6c3R5bGUiLCJ6dGNwIiwiY2hjb24iLCJjaGdycCIsImNob3duIiwiY2htb2QiLCJjcCIsImRkIiwiZGYiLCJkaXIiLCJkaXJjb2xvcnMiLCJsbiIsImxzIiwibWtkaXIiLCJta2ZpZm8iLCJta25vZCIsIm1rdGVtcCIsIm12IiwicmVhbHBhdGgiLCJybSIsInJtZGlyIiwic2hyZWQiLCJzeW5jIiwidG91Y2giLCJ0cnVuY2F0ZSIsInZkaXIiLCJiMnN1bSIsImJhc2UzMiIsImJhc2U2NCIsImNhdCIsImNrc3VtIiwiY29tbSIsImNzcGxpdCIsImN1dCIsImV4cGFuZCIsImZtdCIsImZvbGQiLCJoZWFkIiwiam9pbiIsIm1kNXN1bSIsIm5sIiwibnVtZm10Iiwib2QiLCJwYXN0ZSIsInB0eCIsInByIiwic2hhMXN1bSIsInNoYTIyNHN1bSIsInNoYTI1NnN1bSIsInNoYTM4NHN1bSIsInNoYTUxMnN1bSIsInNodWYiLCJzb3J0Iiwic3BsaXQiLCJzdW0iLCJ0YWMiLCJ0YWlsIiwidHIiLCJ0c29ydCIsInVuZXhwYW5kIiwidW5pcSIsIndjIiwiYXJjaCIsImJhc2VuYW1lIiwiY2hyb290IiwiZGF0ZSIsImRpcm5hbWUiLCJkdSIsImVjaG8iLCJlbnYiLCJleHByIiwiZmFjdG9yIiwiZ3JvdXBzIiwiaG9zdGlkIiwiaWQiLCJsaW5rIiwibG9nbmFtZSIsIm5pY2UiLCJub2h1cCIsIm5wcm9jIiwicGF0aGNoayIsInBpbmt5IiwicHJpbnRlbnYiLCJwcmludGYiLCJwd2QiLCJyZWFkbGluayIsInJ1bmNvbiIsInNlcSIsInNsZWVwIiwic3RhdCIsInN0ZGJ1ZiIsInN0dHkiLCJ0ZWUiLCJ0ZXN0IiwidGltZW91dCIsInR0eSIsInVuYW1lIiwidW5saW5rIiwidXB0aW1lIiwidXNlcnMiLCJ3aG8iLCJ3aG9hbWkiLCJ5ZXMiXQp9LGNvbnRhaW5zOltsLGUuU0hFQkFORygpLGMsbyxlLkhBU0hfQ09NTUVOVF9NT0RFLHIse21hdGNoOi8oXC9bYS16Ll8tXSspKy99LHMsewptYXRjaDovXFwiL30se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovJy8sZW5kOi8nL30se21hdGNoOi9cXCcvfSx0XX19LApncm1yX2M6ZT0+e2NvbnN0IG49ZS5yZWdleCx0PWUuQ09NTUVOVCgiLy8iLCIkIix7Y29udGFpbnM6W3tiZWdpbjovXFxcbi99XQp9KSxhPSJkZWNsdHlwZVxcKGF1dG9cXCkiLGk9IlthLXpBLVpfXVxcdyo6OiIscj0iKCIrYSsifCIrbi5vcHRpb25hbChpKSsiW2EtekEtWl9dXFx3KiIrbi5vcHRpb25hbCgiPFtePD5dKz4iKSsiKSIscz17CmNsYXNzTmFtZToidHlwZSIsdmFyaWFudHM6W3tiZWdpbjoiXFxiW2EtelxcZF9dKl90XFxiIn0sewptYXRjaDovXGJhdG9taWNfW2Etel17Myw2fVxiL31dfSxvPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3sKYmVnaW46Jyh1OD98VXxMKT8iJyxlbmQ6JyInLGlsbGVnYWw6IlxcbiIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHsKYmVnaW46Iih1OD98VXxMKT8nKFxcXFwoeFswLTlBLUZhLWZdezJ9fHVbMC05QS1GYS1mXXs0LDh9fFswLTddezN9fFxcUyl8LikiLAplbmQ6IiciLGlsbGVnYWw6Ii4ifSxlLkVORF9TQU1FX0FTX0JFR0lOKHsKYmVnaW46Lyg/OnU4P3xVfEwpP1IiKFteKClcXCBdezAsMTZ9KVwoLyxlbmQ6L1wpKFteKClcXCBdezAsMTZ9KSIvfSldfSxsPXsKY2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46IlxcYigwYlswMSddKykifSx7CmJlZ2luOiIoLT8pXFxiKFtcXGQnXSsoXFwuW1xcZCddKik/fFxcLltcXGQnXSspKChsbHxMTHxsfEwpKHV8VSk/fCh1fFUpKGxsfExMfGx8TCk/fGZ8RnxifEIpIgp9LHsKYmVnaW46IigtPykoXFxiMFt4WF1bYS1mQS1GMC05J10rfChcXGJbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKShbZUVdWy0rXT9bXFxkJ10rKT8pIgp9XSxyZWxldmFuY2U6MH0sYz17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovI1xzKlthLXpdK1xiLyxlbmQ6LyQvLGtleXdvcmRzOnsKa2V5d29yZDoiaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgcHJhZ21hIF9QcmFnbWEgaWZkZWYgaWZuZGVmIGluY2x1ZGUiCn0sY29udGFpbnM6W3tiZWdpbjovXFxcbi8scmVsZXZhbmNlOjB9LGUuaW5oZXJpdChvLHtjbGFzc05hbWU6InN0cmluZyJ9KSx7CmNsYXNzTmFtZToic3RyaW5nIixiZWdpbjovPC4qPz4vfSx0LGUuQ19CTE9DS19DT01NRU5UX01PREVdfSxkPXsKY2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46bi5vcHRpb25hbChpKStlLklERU5UX1JFLHJlbGV2YW5jZTowCn0sZz1uLm9wdGlvbmFsKGkpK2UuSURFTlRfUkUrIlxccypcXCgiLHU9ewprZXl3b3JkOlsiYXNtIiwiYXV0byIsImJyZWFrIiwiY2FzZSIsImNvbnRpbnVlIiwiZGVmYXVsdCIsImRvIiwiZWxzZSIsImVudW0iLCJleHRlcm4iLCJmb3IiLCJmb3J0cmFuIiwiZ290byIsImlmIiwiaW5saW5lIiwicmVnaXN0ZXIiLCJyZXN0cmljdCIsInJldHVybiIsInNpemVvZiIsInN0cnVjdCIsInN3aXRjaCIsInR5cGVkZWYiLCJ1bmlvbiIsInZvbGF0aWxlIiwid2hpbGUiLCJfQWxpZ25hcyIsIl9BbGlnbm9mIiwiX0F0b21pYyIsIl9HZW5lcmljIiwiX05vcmV0dXJuIiwiX1N0YXRpY19hc3NlcnQiLCJfVGhyZWFkX2xvY2FsIiwiYWxpZ25hcyIsImFsaWdub2YiLCJub3JldHVybiIsInN0YXRpY19hc3NlcnQiLCJ0aHJlYWRfbG9jYWwiLCJfUHJhZ21hIl0sCnR5cGU6WyJmbG9hdCIsImRvdWJsZSIsInNpZ25lZCIsInVuc2lnbmVkIiwiaW50Iiwic2hvcnQiLCJsb25nIiwiY2hhciIsInZvaWQiLCJfQm9vbCIsIl9Db21wbGV4IiwiX0ltYWdpbmFyeSIsIl9EZWNpbWFsMzIiLCJfRGVjaW1hbDY0IiwiX0RlY2ltYWwxMjgiLCJjb25zdCIsInN0YXRpYyIsImNvbXBsZXgiLCJib29sIiwiaW1hZ2luYXJ5Il0sCmxpdGVyYWw6InRydWUgZmFsc2UgTlVMTCIsCmJ1aWx0X2luOiJzdGQgc3RyaW5nIHdzdHJpbmcgY2luIGNvdXQgY2VyciBjbG9nIHN0ZGluIHN0ZG91dCBzdGRlcnIgc3RyaW5nc3RyZWFtIGlzdHJpbmdzdHJlYW0gb3N0cmluZ3N0cmVhbSBhdXRvX3B0ciBkZXF1ZSBsaXN0IHF1ZXVlIHN0YWNrIHZlY3RvciBtYXAgc2V0IHBhaXIgYml0c2V0IG11bHRpc2V0IG11bHRpbWFwIHVub3JkZXJlZF9zZXQgdW5vcmRlcmVkX21hcCB1bm9yZGVyZWRfbXVsdGlzZXQgdW5vcmRlcmVkX211bHRpbWFwIHByaW9yaXR5X3F1ZXVlIG1ha2VfcGFpciBhcnJheSBzaGFyZWRfcHRyIGFib3J0IHRlcm1pbmF0ZSBhYnMgYWNvcyBhc2luIGF0YW4yIGF0YW4gY2FsbG9jIGNlaWwgY29zaCBjb3MgZXhpdCBleHAgZmFicyBmbG9vciBmbW9kIGZwcmludGYgZnB1dHMgZnJlZSBmcmV4cCBmc2NhbmYgZnV0dXJlIGlzYWxudW0gaXNhbHBoYSBpc2NudHJsIGlzZGlnaXQgaXNncmFwaCBpc2xvd2VyIGlzcHJpbnQgaXNwdW5jdCBpc3NwYWNlIGlzdXBwZXIgaXN4ZGlnaXQgdG9sb3dlciB0b3VwcGVyIGxhYnMgbGRleHAgbG9nMTAgbG9nIG1hbGxvYyByZWFsbG9jIG1lbWNociBtZW1jbXAgbWVtY3B5IG1lbXNldCBtb2RmIHBvdyBwcmludGYgcHV0Y2hhciBwdXRzIHNjYW5mIHNpbmggc2luIHNucHJpbnRmIHNwcmludGYgc3FydCBzc2NhbmYgc3RyY2F0IHN0cmNociBzdHJjbXAgc3RyY3B5IHN0cmNzcG4gc3RybGVuIHN0cm5jYXQgc3RybmNtcCBzdHJuY3B5IHN0cnBicmsgc3RycmNociBzdHJzcG4gc3Ryc3RyIHRhbmggdGFuIHZmcHJpbnRmIHZwcmludGYgdnNwcmludGYgZW5kbCBpbml0aWFsaXplcl9saXN0IHVuaXF1ZV9wdHIiCn0sYj1bYyxzLHQsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxsLG9dLG09e3ZhcmlhbnRzOlt7YmVnaW46Lz0vLGVuZDovOy99LHsKYmVnaW46L1woLyxlbmQ6L1wpL30se2JlZ2luS2V5d29yZHM6Im5ldyB0aHJvdyByZXR1cm4gZWxzZSIsZW5kOi87L31dLAprZXl3b3Jkczp1LGNvbnRhaW5zOmIuY29uY2F0KFt7YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3Jkczp1LApjb250YWluczpiLmNvbmNhdChbInNlbGYiXSkscmVsZXZhbmNlOjB9XSkscmVsZXZhbmNlOjB9LHA9ewpiZWdpbjoiKCIrcisiW1xcKiZcXHNdKykrIitnLHJldHVybkJlZ2luOiEwLGVuZDovW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsCmtleXdvcmRzOnUsaWxsZWdhbDovW15cd1xzXComOjw+Ll0vLGNvbnRhaW5zOlt7YmVnaW46YSxrZXl3b3Jkczp1LHJlbGV2YW5jZTowfSx7CmJlZ2luOmcscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W2UuaW5oZXJpdChkLHtjbGFzc05hbWU6InRpdGxlLmZ1bmN0aW9uIn0pXSwKcmVsZXZhbmNlOjB9LHtyZWxldmFuY2U6MCxtYXRjaDovLC99LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLywKa2V5d29yZHM6dSxyZWxldmFuY2U6MCxjb250YWluczpbdCxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG8sbCxzLHtiZWdpbjovXCgvLAplbmQ6L1wpLyxrZXl3b3Jkczp1LHJlbGV2YW5jZTowLGNvbnRhaW5zOlsic2VsZiIsdCxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG8sbCxzXQp9XX0scyx0LGUuQ19CTE9DS19DT01NRU5UX01PREUsY119O3JldHVybntuYW1lOiJDIixhbGlhc2VzOlsiaCJdLGtleXdvcmRzOnUsCmRpc2FibGVBdXRvZGV0ZWN0OiEwLGlsbGVnYWw6IjwvIixjb250YWluczpbXS5jb25jYXQobSxwLGIsW2MsewpiZWdpbjplLklERU5UX1JFKyI6OiIsa2V5d29yZHM6dX0se2NsYXNzTmFtZToiY2xhc3MiLApiZWdpbktleXdvcmRzOiJlbnVtIGNsYXNzIHN0cnVjdCB1bmlvbiIsZW5kOi9bezs6PD49XS8sY29udGFpbnM6W3sKYmVnaW5LZXl3b3JkczoiZmluYWwgY2xhc3Mgc3RydWN0In0sZS5USVRMRV9NT0RFXX1dKSxleHBvcnRzOntwcmVwcm9jZXNzb3I6YywKc3RyaW5nczpvLGtleXdvcmRzOnV9fX0sZ3Jtcl9jcHA6ZT0+e2NvbnN0IG49ZS5yZWdleCx0PWUuQ09NTUVOVCgiLy8iLCIkIix7CmNvbnRhaW5zOlt7YmVnaW46L1xcXG4vfV0KfSksYT0iZGVjbHR5cGVcXChhdXRvXFwpIixpPSJbYS16QS1aX11cXHcqOjoiLHI9Iig/IXN0cnVjdCkoIithKyJ8IituLm9wdGlvbmFsKGkpKyJbYS16QS1aX11cXHcqIituLm9wdGlvbmFsKCI8W148Pl0rPiIpKyIpIixzPXsKY2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFxiW2EtelxcZF9dKl90XFxiIn0sbz17Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7CmJlZ2luOicodTg/fFV8TCk/IicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfSx7CmJlZ2luOiIodTg/fFV8TCk/JyhcXFxcKHhbMC05QS1GYS1mXXsyfXx1WzAtOUEtRmEtZl17NCw4fXxbMC03XXszfXxcXFMpfC4pIiwKZW5kOiInIixpbGxlZ2FsOiIuIn0sZS5FTkRfU0FNRV9BU19CRUdJTih7CmJlZ2luOi8oPzp1OD98VXxMKT9SIihbXigpXFwgXXswLDE2fSlcKC8sZW5kOi9cKShbXigpXFwgXXswLDE2fSkiL30pXX0sbD17CmNsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOiJcXGIoMGJbMDEnXSspIn0sewpiZWdpbjoiKC0/KVxcYihbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKSgobGx8TEx8bHxMKSh1fFUpP3wodXxVKShsbHxMTHxsfEwpP3xmfEZ8YnxCKSIKfSx7CmJlZ2luOiIoLT8pKFxcYjBbeFhdW2EtZkEtRjAtOSddK3woXFxiW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykoW2VFXVstK10/W1xcZCddKyk/KSIKfV0scmVsZXZhbmNlOjB9LGM9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46LyNccypbYS16XStcYi8sZW5kOi8kLyxrZXl3b3Jkczp7CmtleXdvcmQ6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHByYWdtYSBfUHJhZ21hIGlmZGVmIGlmbmRlZiBpbmNsdWRlIgp9LGNvbnRhaW5zOlt7YmVnaW46L1xcXG4vLHJlbGV2YW5jZTowfSxlLmluaGVyaXQobyx7Y2xhc3NOYW1lOiJzdHJpbmcifSksewpjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LzwuKj8+L30sdCxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sZD17CmNsYXNzTmFtZToidGl0bGUiLGJlZ2luOm4ub3B0aW9uYWwoaSkrZS5JREVOVF9SRSxyZWxldmFuY2U6MAp9LGc9bi5vcHRpb25hbChpKStlLklERU5UX1JFKyJcXHMqXFwoIix1PXsKdHlwZTpbImJvb2wiLCJjaGFyIiwiY2hhcjE2X3QiLCJjaGFyMzJfdCIsImNoYXI4X3QiLCJkb3VibGUiLCJmbG9hdCIsImludCIsImxvbmciLCJzaG9ydCIsInZvaWQiLCJ3Y2hhcl90IiwidW5zaWduZWQiLCJzaWduZWQiLCJjb25zdCIsInN0YXRpYyJdLAprZXl3b3JkOlsiYWxpZ25hcyIsImFsaWdub2YiLCJhbmQiLCJhbmRfZXEiLCJhc20iLCJhdG9taWNfY2FuY2VsIiwiYXRvbWljX2NvbW1pdCIsImF0b21pY19ub2V4Y2VwdCIsImF1dG8iLCJiaXRhbmQiLCJiaXRvciIsImJyZWFrIiwiY2FzZSIsImNhdGNoIiwiY2xhc3MiLCJjb19hd2FpdCIsImNvX3JldHVybiIsImNvX3lpZWxkIiwiY29tcGwiLCJjb25jZXB0IiwiY29uc3RfY2FzdHwxMCIsImNvbnN0ZXZhbCIsImNvbnN0ZXhwciIsImNvbnN0aW5pdCIsImNvbnRpbnVlIiwiZGVjbHR5cGUiLCJkZWZhdWx0IiwiZGVsZXRlIiwiZG8iLCJkeW5hbWljX2Nhc3R8MTAiLCJlbHNlIiwiZW51bSIsImV4cGxpY2l0IiwiZXhwb3J0IiwiZXh0ZXJuIiwiZmFsc2UiLCJmaW5hbCIsImZvciIsImZyaWVuZCIsImdvdG8iLCJpZiIsImltcG9ydCIsImlubGluZSIsIm1vZHVsZSIsIm11dGFibGUiLCJuYW1lc3BhY2UiLCJuZXciLCJub2V4Y2VwdCIsIm5vdCIsIm5vdF9lcSIsIm51bGxwdHIiLCJvcGVyYXRvciIsIm9yIiwib3JfZXEiLCJvdmVycmlkZSIsInByaXZhdGUiLCJwcm90ZWN0ZWQiLCJwdWJsaWMiLCJyZWZsZXhwciIsInJlZ2lzdGVyIiwicmVpbnRlcnByZXRfY2FzdHwxMCIsInJlcXVpcmVzIiwicmV0dXJuIiwic2l6ZW9mIiwic3RhdGljX2Fzc2VydCIsInN0YXRpY19jYXN0fDEwIiwic3RydWN0Iiwic3dpdGNoIiwic3luY2hyb25pemVkIiwidGVtcGxhdGUiLCJ0aGlzIiwidGhyZWFkX2xvY2FsIiwidGhyb3ciLCJ0cmFuc2FjdGlvbl9zYWZlIiwidHJhbnNhY3Rpb25fc2FmZV9keW5hbWljIiwidHJ1ZSIsInRyeSIsInR5cGVkZWYiLCJ0eXBlaWQiLCJ0eXBlbmFtZSIsInVuaW9uIiwidXNpbmciLCJ2aXJ0dWFsIiwidm9sYXRpbGUiLCJ3aGlsZSIsInhvciIsInhvcl9lcSJdLApsaXRlcmFsOlsiTlVMTCIsImZhbHNlIiwibnVsbG9wdCIsIm51bGxwdHIiLCJ0cnVlIl0sYnVpbHRfaW46WyJfUHJhZ21hIl0sCl90eXBlX2hpbnRzOlsiYW55IiwiYXV0b19wdHIiLCJiYXJyaWVyIiwiYmluYXJ5X3NlbWFwaG9yZSIsImJpdHNldCIsImNvbXBsZXgiLCJjb25kaXRpb25fdmFyaWFibGUiLCJjb25kaXRpb25fdmFyaWFibGVfYW55IiwiY291bnRpbmdfc2VtYXBob3JlIiwiZGVxdWUiLCJmYWxzZV90eXBlIiwiZnV0dXJlIiwiaW1hZ2luYXJ5IiwiaW5pdGlhbGl6ZXJfbGlzdCIsImlzdHJpbmdzdHJlYW0iLCJqdGhyZWFkIiwibGF0Y2giLCJsb2NrX2d1YXJkIiwibXVsdGltYXAiLCJtdWx0aXNldCIsIm11dGV4Iiwib3B0aW9uYWwiLCJvc3RyaW5nc3RyZWFtIiwicGFja2FnZWRfdGFzayIsInBhaXIiLCJwcm9taXNlIiwicHJpb3JpdHlfcXVldWUiLCJxdWV1ZSIsInJlY3Vyc2l2ZV9tdXRleCIsInJlY3Vyc2l2ZV90aW1lZF9tdXRleCIsInNjb3BlZF9sb2NrIiwic2V0Iiwic2hhcmVkX2Z1dHVyZSIsInNoYXJlZF9sb2NrIiwic2hhcmVkX211dGV4Iiwic2hhcmVkX3RpbWVkX211dGV4Iiwic2hhcmVkX3B0ciIsInN0YWNrIiwic3RyaW5nX3ZpZXciLCJzdHJpbmdzdHJlYW0iLCJ0aW1lZF9tdXRleCIsInRocmVhZCIsInRydWVfdHlwZSIsInR1cGxlIiwidW5pcXVlX2xvY2siLCJ1bmlxdWVfcHRyIiwidW5vcmRlcmVkX21hcCIsInVub3JkZXJlZF9tdWx0aW1hcCIsInVub3JkZXJlZF9tdWx0aXNldCIsInVub3JkZXJlZF9zZXQiLCJ2YXJpYW50IiwidmVjdG9yIiwid2Vha19wdHIiLCJ3c3RyaW5nIiwid3N0cmluZ192aWV3Il0KfSxiPXtjbGFzc05hbWU6ImZ1bmN0aW9uLmRpc3BhdGNoIixyZWxldmFuY2U6MCxrZXl3b3Jkczp7Cl9oaW50OlsiYWJvcnQiLCJhYnMiLCJhY29zIiwiYXBwbHkiLCJhc19jb25zdCIsImFzaW4iLCJhdGFuIiwiYXRhbjIiLCJjYWxsb2MiLCJjZWlsIiwiY2VyciIsImNpbiIsImNsb2ciLCJjb3MiLCJjb3NoIiwiY291dCIsImRlY2x2YWwiLCJlbmRsIiwiZXhjaGFuZ2UiLCJleGl0IiwiZXhwIiwiZmFicyIsImZsb29yIiwiZm1vZCIsImZvcndhcmQiLCJmcHJpbnRmIiwiZnB1dHMiLCJmcmVlIiwiZnJleHAiLCJmc2NhbmYiLCJmdXR1cmUiLCJpbnZva2UiLCJpc2FsbnVtIiwiaXNhbHBoYSIsImlzY250cmwiLCJpc2RpZ2l0IiwiaXNncmFwaCIsImlzbG93ZXIiLCJpc3ByaW50IiwiaXNwdW5jdCIsImlzc3BhY2UiLCJpc3VwcGVyIiwiaXN4ZGlnaXQiLCJsYWJzIiwibGF1bmRlciIsImxkZXhwIiwibG9nIiwibG9nMTAiLCJtYWtlX3BhaXIiLCJtYWtlX3NoYXJlZCIsIm1ha2Vfc2hhcmVkX2Zvcl9vdmVyd3JpdGUiLCJtYWtlX3R1cGxlIiwibWFrZV91bmlxdWUiLCJtYWxsb2MiLCJtZW1jaHIiLCJtZW1jbXAiLCJtZW1jcHkiLCJtZW1zZXQiLCJtb2RmIiwibW92ZSIsInBvdyIsInByaW50ZiIsInB1dGNoYXIiLCJwdXRzIiwicmVhbGxvYyIsInNjYW5mIiwic2luIiwic2luaCIsInNucHJpbnRmIiwic3ByaW50ZiIsInNxcnQiLCJzc2NhbmYiLCJzdGQiLCJzdGRlcnIiLCJzdGRpbiIsInN0ZG91dCIsInN0cmNhdCIsInN0cmNociIsInN0cmNtcCIsInN0cmNweSIsInN0cmNzcG4iLCJzdHJsZW4iLCJzdHJuY2F0Iiwic3RybmNtcCIsInN0cm5jcHkiLCJzdHJwYnJrIiwic3RycmNociIsInN0cnNwbiIsInN0cnN0ciIsInN3YXAiLCJ0YW4iLCJ0YW5oIiwidGVybWluYXRlIiwidG9fdW5kZXJseWluZyIsInRvbG93ZXIiLCJ0b3VwcGVyIiwidmZwcmludGYiLCJ2aXNpdCIsInZwcmludGYiLCJ2c3ByaW50ZiJdCn0sCmJlZ2luOm4uY29uY2F0KC9cYi8sLyg/IWRlY2x0eXBlKS8sLyg/IWlmKS8sLyg/IWZvcikvLC8oPyFzd2l0Y2gpLywvKD8hd2hpbGUpLyxlLklERU5UX1JFLG4ubG9va2FoZWFkKC8oPFtePD5dKz58KVxzKlwoLykpCn0sbT1bYixjLHMsdCxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGwsb10scD17dmFyaWFudHM6W3tiZWdpbjovPS8sZW5kOi87L30sewpiZWdpbjovXCgvLGVuZDovXCkvfSx7YmVnaW5LZXl3b3JkczoibmV3IHRocm93IHJldHVybiBlbHNlIixlbmQ6LzsvfV0sCmtleXdvcmRzOnUsY29udGFpbnM6bS5jb25jYXQoW3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOnUsCmNvbnRhaW5zOm0uY29uY2F0KFsic2VsZiJdKSxyZWxldmFuY2U6MH1dKSxyZWxldmFuY2U6MH0sXz17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsCmJlZ2luOiIoIityKyJbXFwqJlxcc10rKSsiK2cscmV0dXJuQmVnaW46ITAsZW5kOi9bezs9XS8sZXhjbHVkZUVuZDohMCwKa2V5d29yZHM6dSxpbGxlZ2FsOi9bXlx3XHNcKiY6PD4uXS8sY29udGFpbnM6W3tiZWdpbjphLGtleXdvcmRzOnUscmVsZXZhbmNlOjB9LHsKYmVnaW46ZyxyZXR1cm5CZWdpbjohMCxjb250YWluczpbZF0scmVsZXZhbmNlOjB9LHtiZWdpbjovOjovLHJlbGV2YW5jZTowfSx7CmJlZ2luOi86LyxlbmRzV2l0aFBhcmVudDohMCxjb250YWluczpbbyxsXX0se3JlbGV2YW5jZTowLG1hdGNoOi8sL30sewpjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3Jkczp1LHJlbGV2YW5jZTowLApjb250YWluczpbdCxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG8sbCxzLHtiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOnUsCnJlbGV2YW5jZTowLGNvbnRhaW5zOlsic2VsZiIsdCxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG8sbCxzXX1dCn0scyx0LGUuQ19CTE9DS19DT01NRU5UX01PREUsY119O3JldHVybntuYW1lOiJDKysiLAphbGlhc2VzOlsiY2MiLCJjKysiLCJoKysiLCJocHAiLCJoaCIsImh4eCIsImN4eCJdLGtleXdvcmRzOnUsaWxsZWdhbDoiPC8iLApjbGFzc05hbWVBbGlhc2VzOnsiZnVuY3Rpb24uZGlzcGF0Y2giOiJidWlsdF9pbiJ9LApjb250YWluczpbXS5jb25jYXQocCxfLGIsbSxbYyx7CmJlZ2luOiJcXGIoZGVxdWV8bGlzdHxxdWV1ZXxwcmlvcml0eV9xdWV1ZXxwYWlyfHN0YWNrfHZlY3RvcnxtYXB8c2V0fGJpdHNldHxtdWx0aXNldHxtdWx0aW1hcHx1bm9yZGVyZWRfbWFwfHVub3JkZXJlZF9zZXR8dW5vcmRlcmVkX211bHRpc2V0fHVub3JkZXJlZF9tdWx0aW1hcHxhcnJheXx0dXBsZXxvcHRpb25hbHx2YXJpYW50fGZ1bmN0aW9uKVxccyo8KD8hPCkiLAplbmQ6Ij4iLGtleXdvcmRzOnUsY29udGFpbnM6WyJzZWxmIixzXX0se2JlZ2luOmUuSURFTlRfUkUrIjo6IixrZXl3b3Jkczp1fSx7Cm1hdGNoOlsvXGIoPzplbnVtKD86XHMrKD86Y2xhc3N8c3RydWN0KSk/fGNsYXNzfHN0cnVjdHx1bmlvbikvLC9ccysvLC9cdysvXSwKY2xhc3NOYW1lOnsxOiJrZXl3b3JkIiwzOiJ0aXRsZS5jbGFzcyJ9fV0pfX0sZ3Jtcl9jc2hhcnA6ZT0+e2NvbnN0IG49ewprZXl3b3JkOlsiYWJzdHJhY3QiLCJhcyIsImJhc2UiLCJicmVhayIsImNhc2UiLCJjYXRjaCIsImNsYXNzIiwiY29uc3QiLCJjb250aW51ZSIsImRvIiwiZWxzZSIsImV2ZW50IiwiZXhwbGljaXQiLCJleHRlcm4iLCJmaW5hbGx5IiwiZml4ZWQiLCJmb3IiLCJmb3JlYWNoIiwiZ290byIsImlmIiwiaW1wbGljaXQiLCJpbiIsImludGVyZmFjZSIsImludGVybmFsIiwiaXMiLCJsb2NrIiwibmFtZXNwYWNlIiwibmV3Iiwib3BlcmF0b3IiLCJvdXQiLCJvdmVycmlkZSIsInBhcmFtcyIsInByaXZhdGUiLCJwcm90ZWN0ZWQiLCJwdWJsaWMiLCJyZWFkb25seSIsInJlY29yZCIsInJlZiIsInJldHVybiIsInNjb3BlZCIsInNlYWxlZCIsInNpemVvZiIsInN0YWNrYWxsb2MiLCJzdGF0aWMiLCJzdHJ1Y3QiLCJzd2l0Y2giLCJ0aGlzIiwidGhyb3ciLCJ0cnkiLCJ0eXBlb2YiLCJ1bmNoZWNrZWQiLCJ1bnNhZmUiLCJ1c2luZyIsInZpcnR1YWwiLCJ2b2lkIiwidm9sYXRpbGUiLCJ3aGlsZSJdLmNvbmNhdChbImFkZCIsImFsaWFzIiwiYW5kIiwiYXNjZW5kaW5nIiwiYXN5bmMiLCJhd2FpdCIsImJ5IiwiZGVzY2VuZGluZyIsImVxdWFscyIsImZyb20iLCJnZXQiLCJnbG9iYWwiLCJncm91cCIsImluaXQiLCJpbnRvIiwiam9pbiIsImxldCIsIm5hbWVvZiIsIm5vdCIsIm5vdG51bGwiLCJvbiIsIm9yIiwib3JkZXJieSIsInBhcnRpYWwiLCJyZW1vdmUiLCJzZWxlY3QiLCJzZXQiLCJ1bm1hbmFnZWQiLCJ2YWx1ZXwwIiwidmFyIiwid2hlbiIsIndoZXJlIiwid2l0aCIsInlpZWxkIl0pLApidWlsdF9pbjpbImJvb2wiLCJieXRlIiwiY2hhciIsImRlY2ltYWwiLCJkZWxlZ2F0ZSIsImRvdWJsZSIsImR5bmFtaWMiLCJlbnVtIiwiZmxvYXQiLCJpbnQiLCJsb25nIiwibmludCIsIm51aW50Iiwib2JqZWN0Iiwic2J5dGUiLCJzaG9ydCIsInN0cmluZyIsInVsb25nIiwidWludCIsInVzaG9ydCJdLApsaXRlcmFsOlsiZGVmYXVsdCIsImZhbHNlIiwibnVsbCIsInRydWUiXX0sdD1lLmluaGVyaXQoZS5USVRMRV9NT0RFLHsKYmVnaW46IlthLXpBLVpdKFxcLj9cXHcpKiJ9KSxhPXtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3sKYmVnaW46IlxcYigwYlswMSddKykifSx7CmJlZ2luOiIoLT8pXFxiKFtcXGQnXSsoXFwuW1xcZCddKik/fFxcLltcXGQnXSspKHV8VXxsfEx8dWx8VUx8ZnxGfGJ8QikifSx7CmJlZ2luOiIoLT8pKFxcYjBbeFhdW2EtZkEtRjAtOSddK3woXFxiW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykoW2VFXVstK10/W1xcZCddKyk/KSIKfV0scmVsZXZhbmNlOjB9LGk9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonQCInLGVuZDonIicsY29udGFpbnM6W3tiZWdpbjonIiInfV0KfSxyPWUuaW5oZXJpdChpLHtpbGxlZ2FsOi9cbi99KSxzPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovXHsvLGVuZDovXH0vLAprZXl3b3JkczpufSxvPWUuaW5oZXJpdChzLHtpbGxlZ2FsOi9cbi99KSxsPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46L1wkIi8sCmVuZDonIicsaWxsZWdhbDovXG4vLGNvbnRhaW5zOlt7YmVnaW46L1x7XHsvfSx7YmVnaW46L1x9XH0vCn0sZS5CQUNLU0xBU0hfRVNDQVBFLG9dfSxjPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46L1wkQCIvLGVuZDonIicsY29udGFpbnM6W3sKYmVnaW46L1x7XHsvfSx7YmVnaW46L1x9XH0vfSx7YmVnaW46JyIiJ30sc119LGQ9ZS5pbmhlcml0KGMse2lsbGVnYWw6L1xuLywKY29udGFpbnM6W3tiZWdpbjovXHtcey99LHtiZWdpbjovXH1cfS99LHtiZWdpbjonIiInfSxvXX0pCjtzLmNvbnRhaW5zPVtjLGwsaSxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxhLGUuQ19CTE9DS19DT01NRU5UX01PREVdLApvLmNvbnRhaW5zPVtkLGwscixlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxhLGUuaW5oZXJpdChlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHsKaWxsZWdhbDovXG4vfSldO2NvbnN0IGc9e3ZhcmlhbnRzOltjLGwsaSxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERV0KfSx1PXtiZWdpbjoiPCIsZW5kOiI+Iixjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImluIG91dCJ9LHRdCn0sYj1lLklERU5UX1JFKyIoPCIrZS5JREVOVF9SRSsiKFxccyosXFxzKiIrZS5JREVOVF9SRSsiKSo+KT8oXFxbXFxdKT8iLG09ewpiZWdpbjoiQCIrZS5JREVOVF9SRSxyZWxldmFuY2U6MH07cmV0dXJue25hbWU6IkMjIixhbGlhc2VzOlsiY3MiLCJjIyJdLAprZXl3b3JkczpuLGlsbGVnYWw6Lzo6Lyxjb250YWluczpbZS5DT01NRU5UKCIvLy8iLCIkIix7cmV0dXJuQmVnaW46ITAsCmNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJkb2N0YWciLHZhcmlhbnRzOlt7YmVnaW46Ii8vLyIscmVsZXZhbmNlOjB9LHsKYmVnaW46Ilx4M2MhLS18LS1ceDNlIn0se2JlZ2luOiI8Lz8iLGVuZDoiPiJ9XX1dCn0pLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiIjIiwKZW5kOiIkIixrZXl3b3Jkczp7CmtleXdvcmQ6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHJlZ2lvbiBlbmRyZWdpb24gcHJhZ21hIGNoZWNrc3VtIgp9fSxnLGEse2JlZ2luS2V5d29yZHM6ImNsYXNzIGludGVyZmFjZSIscmVsZXZhbmNlOjAsZW5kOi9bezs9XS8sCmlsbGVnYWw6L1teXHM6LF0vLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3Jkczoid2hlcmUgY2xhc3MiCn0sdCx1LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0se2JlZ2luS2V5d29yZHM6Im5hbWVzcGFjZSIsCnJlbGV2YW5jZTowLGVuZDovW3s7PV0vLGlsbGVnYWw6L1teXHM6XS8sCmNvbnRhaW5zOlt0LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sewpiZWdpbktleXdvcmRzOiJyZWNvcmQiLHJlbGV2YW5jZTowLGVuZDovW3s7PV0vLGlsbGVnYWw6L1teXHM6XS8sCmNvbnRhaW5zOlt0LHUsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfSx7Y2xhc3NOYW1lOiJtZXRhIiwKYmVnaW46Il5cXHMqXFxbKD89W1xcd10pIixleGNsdWRlQmVnaW46ITAsZW5kOiJcXF0iLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W3sKY2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8iLyxlbmQ6LyIvfV19LHsKYmVnaW5LZXl3b3JkczoibmV3IHJldHVybiB0aHJvdyBhd2FpdCBlbHNlIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiZnVuY3Rpb24iLApiZWdpbjoiKCIrYisiXFxzKykrIitlLklERU5UX1JFKyJcXHMqKDxbXj1dKz5cXHMqKT9cXCgiLHJldHVybkJlZ2luOiEwLAplbmQ6L1xzKlt7Oz1dLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOm4sY29udGFpbnM6W3sKYmVnaW5LZXl3b3JkczoicHVibGljIHByaXZhdGUgcHJvdGVjdGVkIHN0YXRpYyBpbnRlcm5hbCBwcm90ZWN0ZWQgYWJzdHJhY3QgYXN5bmMgZXh0ZXJuIG92ZXJyaWRlIHVuc2FmZSB2aXJ0dWFsIG5ldyBzZWFsZWQgcGFydGlhbCIsCnJlbGV2YW5jZTowfSx7YmVnaW46ZS5JREVOVF9SRSsiXFxzKig8W149XSs+XFxzKik/XFwoIixyZXR1cm5CZWdpbjohMCwKY29udGFpbnM6W2UuVElUTEVfTU9ERSx1XSxyZWxldmFuY2U6MH0se21hdGNoOi9cKFwpL30se2NsYXNzTmFtZToicGFyYW1zIiwKYmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpuLHJlbGV2YW5jZTowLApjb250YWluczpbZyxhLGUuQ19CTE9DS19DT01NRU5UX01PREVdCn0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfSxtXX19LGdybXJfY3NzOmU9PnsKY29uc3Qgbj1lLnJlZ2V4LHQ9aWUoZSksYT1bZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREVdO3JldHVybnsKbmFtZToiQ1NTIixjYXNlX2luc2Vuc2l0aXZlOiEwLGlsbGVnYWw6L1s9fCdcJF0vLGtleXdvcmRzOnsKa2V5ZnJhbWVQb3NpdGlvbjoiZnJvbSB0byJ9LGNsYXNzTmFtZUFsaWFzZXM6e2tleWZyYW1lUG9zaXRpb246InNlbGVjdG9yLXRhZyJ9LApjb250YWluczpbdC5CTE9DS19DT01NRU5ULHtiZWdpbjovLSh3ZWJraXR8bW96fG1zfG8pLSg/PVthLXpdKS8KfSx0LkNTU19OVU1CRVJfTU9ERSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1pZCIsYmVnaW46LyNbQS1aYS16MC05Xy1dKy8scmVsZXZhbmNlOjAKfSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1jbGFzcyIsYmVnaW46IlxcLlthLXpBLVotXVthLXpBLVowLTlfLV0qIixyZWxldmFuY2U6MAp9LHQuQVRUUklCVVRFX1NFTEVDVE9SX01PREUse2NsYXNzTmFtZToic2VsZWN0b3ItcHNldWRvIix2YXJpYW50czpbewpiZWdpbjoiOigiK29lLmpvaW4oInwiKSsiKSJ9LHtiZWdpbjoiOig6KT8oIitsZS5qb2luKCJ8IikrIikifV0KfSx0LkNTU19WQVJJQUJMRSx7Y2xhc3NOYW1lOiJhdHRyaWJ1dGUiLGJlZ2luOiJcXGIoIitjZS5qb2luKCJ8IikrIilcXGIifSx7CmJlZ2luOi86LyxlbmQ6L1s7fXtdLywKY29udGFpbnM6W3QuQkxPQ0tfQ09NTUVOVCx0LkhFWENPTE9SLHQuSU1QT1JUQU5ULHQuQ1NTX05VTUJFUl9NT0RFLC4uLmEsewpiZWdpbjovKHVybHxkYXRhLXVyaSlcKC8sZW5kOi9cKS8scmVsZXZhbmNlOjAsa2V5d29yZHM6e2J1aWx0X2luOiJ1cmwgZGF0YS11cmkiCn0sY29udGFpbnM6Wy4uLmEse2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovW14pXS8sZW5kc1dpdGhQYXJlbnQ6ITAsCmV4Y2x1ZGVFbmQ6ITB9XX0sdC5GVU5DVElPTl9ESVNQQVRDSF19LHtiZWdpbjpuLmxvb2thaGVhZCgvQC8pLGVuZDoiW3s7XSIsCnJlbGV2YW5jZTowLGlsbGVnYWw6LzovLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovQC0/XHdbXHddKigtXHcrKSovCn0se2JlZ2luOi9ccy8sZW5kc1dpdGhQYXJlbnQ6ITAsZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MCxrZXl3b3Jkczp7CiRwYXR0ZXJuOi9bYS16LV0rLyxrZXl3b3JkOiJhbmQgb3Igbm90IG9ubHkiLGF0dHJpYnV0ZTpzZS5qb2luKCIgIil9LGNvbnRhaW5zOlt7CmJlZ2luOi9bYS16LV0rKD89OikvLGNsYXNzTmFtZToiYXR0cmlidXRlIn0sLi4uYSx0LkNTU19OVU1CRVJfTU9ERV19XX0sewpjbGFzc05hbWU6InNlbGVjdG9yLXRhZyIsYmVnaW46IlxcYigiK3JlLmpvaW4oInwiKSsiKVxcYiJ9XX19LGdybXJfZGlmZjplPT57CmNvbnN0IG49ZS5yZWdleDtyZXR1cm57bmFtZToiRGlmZiIsYWxpYXNlczpbInBhdGNoIl0sY29udGFpbnM6W3sKY2xhc3NOYW1lOiJtZXRhIixyZWxldmFuY2U6MTAsCm1hdGNoOm4uZWl0aGVyKC9eQEAgKy1cZCssXGQrICtcK1xkKyxcZCsgK0BALywvXlwqXCpcKiArXGQrLFxkKyArXCpcKlwqXCokLywvXi0tLSArXGQrLFxkKyArLS0tLSQvKQp9LHtjbGFzc05hbWU6ImNvbW1lbnQiLHZhcmlhbnRzOlt7CmJlZ2luOm4uZWl0aGVyKC9JbmRleDogLywvXmluZGV4LywvPXszLH0vLC9eLXszfS8sL15cKnszfSAvLC9eXCt7M30vLC9eZGlmZiAtLWdpdC8pLAplbmQ6LyQvfSx7bWF0Y2g6L15cKnsxNX0kL31dfSx7Y2xhc3NOYW1lOiJhZGRpdGlvbiIsYmVnaW46L15cKy8sZW5kOi8kL30sewpjbGFzc05hbWU6ImRlbGV0aW9uIixiZWdpbjovXi0vLGVuZDovJC99LHtjbGFzc05hbWU6ImFkZGl0aW9uIixiZWdpbjovXiEvLAplbmQ6LyQvfV19fSxncm1yX2dvOmU9Pntjb25zdCBuPXsKa2V5d29yZDpbImJyZWFrIiwiY2FzZSIsImNoYW4iLCJjb25zdCIsImNvbnRpbnVlIiwiZGVmYXVsdCIsImRlZmVyIiwiZWxzZSIsImZhbGx0aHJvdWdoIiwiZm9yIiwiZnVuYyIsImdvIiwiZ290byIsImlmIiwiaW1wb3J0IiwiaW50ZXJmYWNlIiwibWFwIiwicGFja2FnZSIsInJhbmdlIiwicmV0dXJuIiwic2VsZWN0Iiwic3RydWN0Iiwic3dpdGNoIiwidHlwZSIsInZhciJdLAp0eXBlOlsiYm9vbCIsImJ5dGUiLCJjb21wbGV4NjQiLCJjb21wbGV4MTI4IiwiZXJyb3IiLCJmbG9hdDMyIiwiZmxvYXQ2NCIsImludDgiLCJpbnQxNiIsImludDMyIiwiaW50NjQiLCJzdHJpbmciLCJ1aW50OCIsInVpbnQxNiIsInVpbnQzMiIsInVpbnQ2NCIsImludCIsInVpbnQiLCJ1aW50cHRyIiwicnVuZSJdLApsaXRlcmFsOlsidHJ1ZSIsImZhbHNlIiwiaW90YSIsIm5pbCJdLApidWlsdF9pbjpbImFwcGVuZCIsImNhcCIsImNsb3NlIiwiY29tcGxleCIsImNvcHkiLCJpbWFnIiwibGVuIiwibWFrZSIsIm5ldyIsInBhbmljIiwicHJpbnQiLCJwcmludGxuIiwicmVhbCIsInJlY292ZXIiLCJkZWxldGUiXQp9O3JldHVybntuYW1lOiJHbyIsYWxpYXNlczpbImdvbGFuZyJdLGtleXdvcmRzOm4saWxsZWdhbDoiPC8iLApjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToic3RyaW5nIiwKdmFyaWFudHM6W2UuUVVPVEVfU1RSSU5HX01PREUsZS5BUE9TX1NUUklOR19NT0RFLHtiZWdpbjoiYCIsZW5kOiJgIn1dfSx7CmNsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOmUuQ19OVU1CRVJfUkUrIltpXSIscmVsZXZhbmNlOjEKfSxlLkNfTlVNQkVSX01PREVdfSx7YmVnaW46Lzo9L30se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmMiLAplbmQ6IlxccyooXFx7fCQpIixleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltlLlRJVExFX01PREUse2NsYXNzTmFtZToicGFyYW1zIiwKYmVnaW46L1woLyxlbmQ6L1wpLyxlbmRzUGFyZW50OiEwLGtleXdvcmRzOm4saWxsZWdhbDovWyInXS99XX1dfX0sCmdybXJfZ3JhcGhxbDplPT57Y29uc3Qgbj1lLnJlZ2V4O3JldHVybntuYW1lOiJHcmFwaFFMIixhbGlhc2VzOlsiZ3FsIl0sCmNhc2VfaW5zZW5zaXRpdmU6ITAsZGlzYWJsZUF1dG9kZXRlY3Q6ITEsa2V5d29yZHM6ewprZXl3b3JkOlsicXVlcnkiLCJtdXRhdGlvbiIsInN1YnNjcmlwdGlvbiIsInR5cGUiLCJpbnB1dCIsInNjaGVtYSIsImRpcmVjdGl2ZSIsImludGVyZmFjZSIsInVuaW9uIiwic2NhbGFyIiwiZnJhZ21lbnQiLCJlbnVtIiwib24iXSwKbGl0ZXJhbDpbInRydWUiLCJmYWxzZSIsIm51bGwiXX0sCmNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5OVU1CRVJfTU9ERSx7CnNjb3BlOiJwdW5jdHVhdGlvbiIsbWF0Y2g6L1suXXszfS8scmVsZXZhbmNlOjB9LHtzY29wZToicHVuY3R1YXRpb24iLApiZWdpbjovW1whXChcKVw6XD1cW1xdXHtcfFx9XXsxfS8scmVsZXZhbmNlOjB9LHtzY29wZToidmFyaWFibGUiLGJlZ2luOi9cJC8sCmVuZDovXFcvLGV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjB9LHtzY29wZToibWV0YSIsbWF0Y2g6L0BcdysvLGV4Y2x1ZGVFbmQ6ITB9LHsKc2NvcGU6InN5bWJvbCIsYmVnaW46bi5jb25jYXQoL1tfQS1aYS16XVtfMC05QS1aYS16XSovLG4ubG9va2FoZWFkKC9ccyo6LykpLApyZWxldmFuY2U6MH1dLGlsbGVnYWw6Wy9bOzwnXS8sL0JFR0lOL119fSxncm1yX2luaTplPT57Y29uc3Qgbj1lLnJlZ2V4LHQ9ewpjbGFzc05hbWU6Im51bWJlciIscmVsZXZhbmNlOjAsdmFyaWFudHM6W3tiZWdpbjovKFsrLV0rKT9bXGRdK19bXGRfXSsvfSx7CmJlZ2luOmUuTlVNQkVSX1JFfV19LGE9ZS5DT01NRU5UKCk7YS52YXJpYW50cz1be2JlZ2luOi87LyxlbmQ6LyQvfSx7YmVnaW46LyMvLAplbmQ6LyQvfV07Y29uc3QgaT17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsdmFyaWFudHM6W3tiZWdpbjovXCRbXHdcZCJdW1x3XGRfXSovfSx7CmJlZ2luOi9cJFx7KC4qPylcfS99XX0scj17Y2xhc3NOYW1lOiJsaXRlcmFsIiwKYmVnaW46L1xib258b2ZmfHRydWV8ZmFsc2V8eWVzfG5vXGIvfSxzPXtjbGFzc05hbWU6InN0cmluZyIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdLHZhcmlhbnRzOlt7YmVnaW46IicnJyIsZW5kOiInJyciLHJlbGV2YW5jZToxMH0sewpiZWdpbjonIiIiJyxlbmQ6JyIiIicscmVsZXZhbmNlOjEwfSx7YmVnaW46JyInLGVuZDonIid9LHtiZWdpbjoiJyIsZW5kOiInIn1dCn0sbz17YmVnaW46L1xbLyxlbmQ6L1xdLyxjb250YWluczpbYSxyLGkscyx0LCJzZWxmIl0scmVsZXZhbmNlOjAKfSxsPW4uZWl0aGVyKC9bQS1aYS16MC05Xy1dKy8sLyIoXFwifFteIl0pKiIvLC8nW14nXSonLyk7cmV0dXJuewpuYW1lOiJUT01MLCBhbHNvIElOSSIsYWxpYXNlczpbInRvbWwiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGlsbGVnYWw6L1xTLywKY29udGFpbnM6W2Ese2NsYXNzTmFtZToic2VjdGlvbiIsYmVnaW46L1xbKy8sZW5kOi9cXSsvfSx7CmJlZ2luOm4uY29uY2F0KGwsIihcXHMqXFwuXFxzKiIsbCwiKSoiLG4ubG9va2FoZWFkKC9ccyo9XHMqW14jXHNdLykpLApjbGFzc05hbWU6ImF0dHIiLHN0YXJ0czp7ZW5kOi8kLyxjb250YWluczpbYSxvLHIsaSxzLHRdfX1dfX0sZ3Jtcl9qYXZhOmU9PnsKY29uc3Qgbj1lLnJlZ2V4LHQ9IltceGMwLVx1MDJiOGEtekEtWl8kXVtceGMwLVx1MDJiOGEtekEtWl8kMC05XSoiLGE9dCtwZSgiKD86PCIrdCsifn5+KD86XFxzKixcXHMqIit0KyJ+fn4pKj4pPyIsL35+fi9nLDIpLGk9ewprZXl3b3JkOlsic3luY2hyb25pemVkIiwiYWJzdHJhY3QiLCJwcml2YXRlIiwidmFyIiwic3RhdGljIiwiaWYiLCJjb25zdCAiLCJmb3IiLCJ3aGlsZSIsInN0cmljdGZwIiwiZmluYWxseSIsInByb3RlY3RlZCIsImltcG9ydCIsIm5hdGl2ZSIsImZpbmFsIiwidm9pZCIsImVudW0iLCJlbHNlIiwiYnJlYWsiLCJ0cmFuc2llbnQiLCJjYXRjaCIsImluc3RhbmNlb2YiLCJ2b2xhdGlsZSIsImNhc2UiLCJhc3NlcnQiLCJwYWNrYWdlIiwiZGVmYXVsdCIsInB1YmxpYyIsInRyeSIsInN3aXRjaCIsImNvbnRpbnVlIiwidGhyb3dzIiwicHJvdGVjdGVkIiwicHVibGljIiwicHJpdmF0ZSIsIm1vZHVsZSIsInJlcXVpcmVzIiwiZXhwb3J0cyIsImRvIiwic2VhbGVkIiwieWllbGQiLCJwZXJtaXRzIl0sCmxpdGVyYWw6WyJmYWxzZSIsInRydWUiLCJudWxsIl0sCnR5cGU6WyJjaGFyIiwiYm9vbGVhbiIsImxvbmciLCJmbG9hdCIsImludCIsImJ5dGUiLCJzaG9ydCIsImRvdWJsZSJdLApidWlsdF9pbjpbInN1cGVyIiwidGhpcyJdfSxyPXtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJAIit0LGNvbnRhaW5zOlt7CmJlZ2luOi9cKC8sZW5kOi9cKS8sY29udGFpbnM6WyJzZWxmIl19XX0scz17Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sCmVuZDovXCkvLGtleXdvcmRzOmkscmVsZXZhbmNlOjAsY29udGFpbnM6W2UuQ19CTE9DS19DT01NRU5UX01PREVdLGVuZHNQYXJlbnQ6ITB9CjtyZXR1cm57bmFtZToiSmF2YSIsYWxpYXNlczpbImpzcCJdLGtleXdvcmRzOmksaWxsZWdhbDovPFwvfCMvLApjb250YWluczpbZS5DT01NRU5UKCIvXFwqXFwqIiwiXFwqLyIse3JlbGV2YW5jZTowLGNvbnRhaW5zOlt7YmVnaW46L1x3K0AvLApyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjoiQFtBLVphLXpdKyJ9XX0pLHsKYmVnaW46L2ltcG9ydCBqYXZhXC5bYS16XStcLi8sa2V5d29yZHM6ImltcG9ydCIscmVsZXZhbmNlOjIKfSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7YmVnaW46LyIiIi8sZW5kOi8iIiIvLApjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV0KfSxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSx7Cm1hdGNoOlsvXGIoPzpjbGFzc3xpbnRlcmZhY2V8ZW51bXxleHRlbmRzfGltcGxlbWVudHN8bmV3KS8sL1xzKy8sdF0sY2xhc3NOYW1lOnsKMToia2V5d29yZCIsMzoidGl0bGUuY2xhc3MifX0se21hdGNoOi9ub24tc2VhbGVkLyxzY29wZToia2V5d29yZCJ9LHsKYmVnaW46W24uY29uY2F0KC8oPyFlbHNlKS8sdCksL1xzKy8sdCwvXHMrLywvPSg/IT0pL10sY2xhc3NOYW1lOnsxOiJ0eXBlIiwKMzoidmFyaWFibGUiLDU6Im9wZXJhdG9yIn19LHtiZWdpbjpbL3JlY29yZC8sL1xzKy8sdF0sY2xhc3NOYW1lOnsxOiJrZXl3b3JkIiwKMzoidGl0bGUuY2xhc3MifSxjb250YWluczpbcyxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LHsKYmVnaW5LZXl3b3JkczoibmV3IHRocm93IHJldHVybiBlbHNlIixyZWxldmFuY2U6MH0sewpiZWdpbjpbIig/OiIrYSsiXFxzKykiLGUuVU5ERVJTQ09SRV9JREVOVF9SRSwvXHMqKD89XCgpL10sY2xhc3NOYW1lOnsKMjoidGl0bGUuZnVuY3Rpb24ifSxrZXl3b3JkczppLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sCmVuZDovXCkvLGtleXdvcmRzOmkscmVsZXZhbmNlOjAsCmNvbnRhaW5zOltyLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLG1lLGUuQ19CTE9DS19DT01NRU5UX01PREVdCn0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfSxtZSxyXX19LGdybXJfamF2YXNjcmlwdDpPZSwKZ3Jtcl9qc29uOmU9Pntjb25zdCBuPVsidHJ1ZSIsImZhbHNlIiwibnVsbCJdLHQ9e3Njb3BlOiJsaXRlcmFsIiwKYmVnaW5LZXl3b3JkczpuLmpvaW4oIiAiKX07cmV0dXJue25hbWU6IkpTT04iLGtleXdvcmRzOntsaXRlcmFsOm59LGNvbnRhaW5zOlt7CmNsYXNzTmFtZToiYXR0ciIsYmVnaW46LyIoXFwufFteXFwiXHJcbl0pKiIoPz1ccyo6KS8scmVsZXZhbmNlOjEuMDF9LHsKbWF0Y2g6L1t7fVtcXSw6XS8sY2xhc3NOYW1lOiJwdW5jdHVhdGlvbiIscmVsZXZhbmNlOjAKfSxlLlFVT1RFX1NUUklOR19NT0RFLHQsZS5DX05VTUJFUl9NT0RFLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXSwKaWxsZWdhbDoiXFxTIn19LGdybXJfa290bGluOmU9Pntjb25zdCBuPXsKa2V5d29yZDoiYWJzdHJhY3QgYXMgdmFsIHZhciB2YXJhcmcgZ2V0IHNldCBjbGFzcyBvYmplY3Qgb3BlbiBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgbm9pbmxpbmUgY3Jvc3NpbmxpbmUgZHluYW1pYyBmaW5hbCBlbnVtIGlmIGVsc2UgZG8gd2hpbGUgZm9yIHdoZW4gdGhyb3cgdHJ5IGNhdGNoIGZpbmFsbHkgaW1wb3J0IHBhY2thZ2UgaXMgaW4gZnVuIG92ZXJyaWRlIGNvbXBhbmlvbiByZWlmaWVkIGlubGluZSBsYXRlaW5pdCBpbml0IGludGVyZmFjZSBhbm5vdGF0aW9uIGRhdGEgc2VhbGVkIGludGVybmFsIGluZml4IG9wZXJhdG9yIG91dCBieSBjb25zdHJ1Y3RvciBzdXBlciB0YWlscmVjIHdoZXJlIGNvbnN0IGlubmVyIHN1c3BlbmQgdHlwZWFsaWFzIGV4dGVybmFsIGV4cGVjdCBhY3R1YWwiLApidWlsdF9pbjoiQnl0ZSBTaG9ydCBDaGFyIEludCBMb25nIEJvb2xlYW4gRmxvYXQgRG91YmxlIFZvaWQgVW5pdCBOb3RoaW5nIiwKbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIn0sdD17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSsiQCIKfSxhPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovXCRcey8sZW5kOi9cfS8sY29udGFpbnM6W2UuQ19OVU1CRVJfTU9ERV19LGk9ewpjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjoiXFwkIitlLlVOREVSU0NPUkVfSURFTlRfUkV9LHI9e2NsYXNzTmFtZToic3RyaW5nIiwKdmFyaWFudHM6W3tiZWdpbjonIiIiJyxlbmQ6JyIiIig/PVteIl0pJyxjb250YWluczpbaSxhXX0se2JlZ2luOiInIixlbmQ6IiciLAppbGxlZ2FsOi9cbi8sY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjonIicsZW5kOiciJyxpbGxlZ2FsOi9cbi8sCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsaSxhXX1dfTthLmNvbnRhaW5zLnB1c2gocik7Y29uc3Qgcz17CmNsYXNzTmFtZToibWV0YSIsCmJlZ2luOiJAKD86ZmlsZXxwcm9wZXJ0eXxmaWVsZHxnZXR8c2V0fHJlY2VpdmVyfHBhcmFtfHNldHBhcmFtfGRlbGVnYXRlKVxccyo6KD86XFxzKiIrZS5VTkRFUlNDT1JFX0lERU5UX1JFKyIpPyIKfSxvPXtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJAIitlLlVOREVSU0NPUkVfSURFTlRfUkUsY29udGFpbnM6W3tiZWdpbjovXCgvLAplbmQ6L1wpLyxjb250YWluczpbZS5pbmhlcml0KHIse2NsYXNzTmFtZToic3RyaW5nIn0pLCJzZWxmIl19XQp9LGw9bWUsYz1lLkNPTU1FTlQoIi9cXCoiLCJcXCovIix7Y29udGFpbnM6W2UuQ19CTE9DS19DT01NRU5UX01PREVdfSksZD17CnZhcmlhbnRzOlt7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjplLlVOREVSU0NPUkVfSURFTlRfUkV9LHtiZWdpbjovXCgvLGVuZDovXCkvLApjb250YWluczpbXX1dfSxnPWQ7cmV0dXJuIGcudmFyaWFudHNbMV0uY29udGFpbnM9W2RdLGQudmFyaWFudHNbMV0uY29udGFpbnM9W2ddLAp7bmFtZToiS290bGluIixhbGlhc2VzOlsia3QiLCJrdHMiXSxrZXl3b3JkczpuLApjb250YWluczpbZS5DT01NRU5UKCIvXFwqXFwqIiwiXFwqLyIse3JlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJkb2N0YWciLApiZWdpbjoiQFtBLVphLXpdKyJ9XX0pLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxjLHtjbGFzc05hbWU6ImtleXdvcmQiLApiZWdpbjovXGIoYnJlYWt8Y29udGludWV8cmV0dXJufHRoaXMpXGIvLHN0YXJ0czp7Y29udGFpbnM6W3tjbGFzc05hbWU6InN5bWJvbCIsCmJlZ2luOi9AXHcrL31dfX0sdCxzLG8se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1biIsZW5kOiJbKF18JCIsCnJldHVybkJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6bixyZWxldmFuY2U6NSxjb250YWluczpbewpiZWdpbjplLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccypcXCgiLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLApjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjovPC8sZW5kOi8+LywKa2V5d29yZHM6InJlaWZpZWQiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8sCmVuZHNQYXJlbnQ6ITAsa2V5d29yZHM6bixyZWxldmFuY2U6MCxjb250YWluczpbe2JlZ2luOi86LyxlbmQ6L1s9LFwvXS8sCmVuZHNXaXRoUGFyZW50OiEwLGNvbnRhaW5zOltkLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxjXSxyZWxldmFuY2U6MAp9LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxjLHMsbyxyLGUuQ19OVU1CRVJfTU9ERV19LGNdfSx7CmJlZ2luOlsvY2xhc3N8aW50ZXJmYWNlfHRyYWl0LywvXHMrLyxlLlVOREVSU0NPUkVfSURFTlRfUkVdLGJlZ2luU2NvcGU6ewozOiJ0aXRsZS5jbGFzcyJ9LGtleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UgdHJhaXQiLGVuZDovWzpceyhdfCQvLGV4Y2x1ZGVFbmQ6ITAsCmlsbGVnYWw6ImV4dGVuZHMgaW1wbGVtZW50cyIsY29udGFpbnM6W3sKYmVnaW5LZXl3b3JkczoicHVibGljIHByb3RlY3RlZCBpbnRlcm5hbCBwcml2YXRlIGNvbnN0cnVjdG9yIgp9LGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFLHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOi88LyxlbmQ6Lz4vLGV4Y2x1ZGVCZWdpbjohMCwKZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46L1ssOl1ccyovLGVuZDovWzxcKCwpe1xzXXwkLywKZXhjbHVkZUJlZ2luOiEwLHJldHVybkVuZDohMH0scyxvXX0scix7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXiMhL3Vzci9iaW4vZW52IiwKZW5kOiIkIixpbGxlZ2FsOiJcbiJ9LGxdfX0sZ3Jtcl9sZXNzOmU9PnsKY29uc3Qgbj1pZShlKSx0PWRlLGE9IltcXHctXSsiLGk9IigiK2ErInxAXFx7IithKyJcXH0pIixyPVtdLHM9W10sbz1lPT4oewpjbGFzc05hbWU6InN0cmluZyIsYmVnaW46In4/IitlKyIuKj8iK2V9KSxsPShlLG4sdCk9Pih7Y2xhc3NOYW1lOmUsYmVnaW46biwKcmVsZXZhbmNlOnR9KSxjPXskcGF0dGVybjovW2Etei1dKy8sa2V5d29yZDoiYW5kIG9yIG5vdCBvbmx5IiwKYXR0cmlidXRlOnNlLmpvaW4oIiAiKX0sZD17YmVnaW46IlxcKCIsZW5kOiJcXCkiLGNvbnRhaW5zOnMsa2V5d29yZHM6YywKcmVsZXZhbmNlOjB9CjtzLnB1c2goZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsbygiJyIpLG8oJyInKSxuLkNTU19OVU1CRVJfTU9ERSx7CmJlZ2luOiIodXJsfGRhdGEtdXJpKVxcKCIsc3RhcnRzOntjbGFzc05hbWU6InN0cmluZyIsZW5kOiJbXFwpXFxuXSIsCmV4Y2x1ZGVFbmQ6ITB9Cn0sbi5IRVhDT0xPUixkLGwoInZhcmlhYmxlIiwiQEA/IithLDEwKSxsKCJ2YXJpYWJsZSIsIkBcXHsiK2ErIlxcfSIpLGwoImJ1aWx0X2luIiwifj9gW15gXSo/YCIpLHsKY2xhc3NOYW1lOiJhdHRyaWJ1dGUiLGJlZ2luOmErIlxccyo6IixlbmQ6IjoiLHJldHVybkJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAKfSxuLklNUE9SVEFOVCx7YmVnaW5LZXl3b3JkczoiYW5kIG5vdCJ9LG4uRlVOQ1RJT05fRElTUEFUQ0gpO2NvbnN0IGc9cy5jb25jYXQoewpiZWdpbjovXHsvLGVuZDovXH0vLGNvbnRhaW5zOnJ9KSx1PXtiZWdpbktleXdvcmRzOiJ3aGVuIixlbmRzV2l0aFBhcmVudDohMCwKY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJhbmQgbm90In1dLmNvbmNhdChzKX0sYj17YmVnaW46aSsiXFxzKjoiLApyZXR1cm5CZWdpbjohMCxlbmQ6L1s7fV0vLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7YmVnaW46Ly0od2Via2l0fG1venxtc3xvKS0vCn0sbi5DU1NfVkFSSUFCTEUse2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjoiXFxiKCIrY2Uuam9pbigifCIpKyIpXFxiIiwKZW5kOi8oPz06KS8sc3RhcnRzOntlbmRzV2l0aFBhcmVudDohMCxpbGxlZ2FsOiJbPD0kXSIscmVsZXZhbmNlOjAsY29udGFpbnM6c319XQp9LG09e2NsYXNzTmFtZToia2V5d29yZCIsCmJlZ2luOiJAKGltcG9ydHxtZWRpYXxjaGFyc2V0fGZvbnQtZmFjZXwoLVthLXpdKy0pP2tleWZyYW1lc3xzdXBwb3J0c3xkb2N1bWVudHxuYW1lc3BhY2V8cGFnZXx2aWV3cG9ydHxob3N0KVxcYiIsCnN0YXJ0czp7ZW5kOiJbO3t9XSIsa2V5d29yZHM6YyxyZXR1cm5FbmQ6ITAsY29udGFpbnM6cyxyZWxldmFuY2U6MH19LHA9ewpjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOiJAIithKyJcXHMqOiIscmVsZXZhbmNlOjE1fSx7YmVnaW46IkAiK2EKfV0sc3RhcnRzOntlbmQ6Ils7fV0iLHJldHVybkVuZDohMCxjb250YWluczpnfX0sXz17dmFyaWFudHM6W3sKYmVnaW46IltcXC4jOiZcXFs+XSIsZW5kOiJbO3t9XSJ9LHtiZWdpbjppLGVuZDovXHsvfV0scmV0dXJuQmVnaW46ITAsCnJldHVybkVuZDohMCxpbGxlZ2FsOiJbPD0nJFwiXSIscmVsZXZhbmNlOjAsCmNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx1LGwoImtleXdvcmQiLCJhbGxcXGIiKSxsKCJ2YXJpYWJsZSIsIkBcXHsiK2ErIlxcfSIpLHsKYmVnaW46IlxcYigiK3JlLmpvaW4oInwiKSsiKVxcYiIsY2xhc3NOYW1lOiJzZWxlY3Rvci10YWciCn0sbi5DU1NfTlVNQkVSX01PREUsbCgic2VsZWN0b3ItdGFnIixpLDApLGwoInNlbGVjdG9yLWlkIiwiIyIraSksbCgic2VsZWN0b3ItY2xhc3MiLCJcXC4iK2ksMCksbCgic2VsZWN0b3ItdGFnIiwiJiIsMCksbi5BVFRSSUJVVEVfU0VMRUNUT1JfTU9ERSx7CmNsYXNzTmFtZToic2VsZWN0b3ItcHNldWRvIixiZWdpbjoiOigiK29lLmpvaW4oInwiKSsiKSJ9LHsKY2xhc3NOYW1lOiJzZWxlY3Rvci1wc2V1ZG8iLGJlZ2luOiI6KDopPygiK2xlLmpvaW4oInwiKSsiKSJ9LHtiZWdpbjovXCgvLAplbmQ6L1wpLyxyZWxldmFuY2U6MCxjb250YWluczpnfSx7YmVnaW46IiFpbXBvcnRhbnQifSxuLkZVTkNUSU9OX0RJU1BBVENIXX0saD17CmJlZ2luOmErIjooOik/IitgKCR7dC5qb2luKCJ8Iil9KWAscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W19dfQo7cmV0dXJuIHIucHVzaChlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxtLHAsaCxiLF8sdSxuLkZVTkNUSU9OX0RJU1BBVENIKSwKe25hbWU6Ikxlc3MiLGNhc2VfaW5zZW5zaXRpdmU6ITAsaWxsZWdhbDoiWz0+Jy88KCRcIl0iLGNvbnRhaW5zOnJ9fSwKZ3Jtcl9sdWE6ZT0+e2NvbnN0IG49IlxcWz0qXFxbIix0PSJcXF09KlxcXSIsYT17YmVnaW46bixlbmQ6dCxjb250YWluczpbInNlbGYiXQp9LGk9W2UuQ09NTUVOVCgiLS0oPyEiK24rIikiLCIkIiksZS5DT01NRU5UKCItLSIrbix0LHtjb250YWluczpbYV0scmVsZXZhbmNlOjEwCn0pXTtyZXR1cm57bmFtZToiTHVhIixrZXl3b3Jkczp7JHBhdHRlcm46ZS5VTkRFUlNDT1JFX0lERU5UX1JFLApsaXRlcmFsOiJ0cnVlIGZhbHNlIG5pbCIsCmtleXdvcmQ6ImFuZCBicmVhayBkbyBlbHNlIGVsc2VpZiBlbmQgZm9yIGdvdG8gaWYgaW4gbG9jYWwgbm90IG9yIHJlcGVhdCByZXR1cm4gdGhlbiB1bnRpbCB3aGlsZSIsCmJ1aWx0X2luOiJfRyBfRU5WIF9WRVJTSU9OIF9faW5kZXggX19uZXdpbmRleCBfX21vZGUgX19jYWxsIF9fbWV0YXRhYmxlIF9fdG9zdHJpbmcgX19sZW4gX19nYyBfX2FkZCBfX3N1YiBfX211bCBfX2RpdiBfX21vZCBfX3BvdyBfX2NvbmNhdCBfX3VubSBfX2VxIF9fbHQgX19sZSBhc3NlcnQgY29sbGVjdGdhcmJhZ2UgZG9maWxlIGVycm9yIGdldGZlbnYgZ2V0bWV0YXRhYmxlIGlwYWlycyBsb2FkIGxvYWRmaWxlIGxvYWRzdHJpbmcgbW9kdWxlIG5leHQgcGFpcnMgcGNhbGwgcHJpbnQgcmF3ZXF1YWwgcmF3Z2V0IHJhd3NldCByZXF1aXJlIHNlbGVjdCBzZXRmZW52IHNldG1ldGF0YWJsZSB0b251bWJlciB0b3N0cmluZyB0eXBlIHVucGFjayB4cGNhbGwgYXJnIHNlbGYgY29yb3V0aW5lIHJlc3VtZSB5aWVsZCBzdGF0dXMgd3JhcCBjcmVhdGUgcnVubmluZyBkZWJ1ZyBnZXR1cHZhbHVlIGRlYnVnIHNldGhvb2sgZ2V0bWV0YXRhYmxlIGdldGhvb2sgc2V0bWV0YXRhYmxlIHNldGxvY2FsIHRyYWNlYmFjayBzZXRmZW52IGdldGluZm8gc2V0dXB2YWx1ZSBnZXRsb2NhbCBnZXRyZWdpc3RyeSBnZXRmZW52IGlvIGxpbmVzIHdyaXRlIGNsb3NlIGZsdXNoIG9wZW4gb3V0cHV0IHR5cGUgcmVhZCBzdGRlcnIgc3RkaW4gaW5wdXQgc3Rkb3V0IHBvcGVuIHRtcGZpbGUgbWF0aCBsb2cgbWF4IGFjb3MgaHVnZSBsZGV4cCBwaSBjb3MgdGFuaCBwb3cgZGVnIHRhbiBjb3NoIHNpbmggcmFuZG9tIHJhbmRvbXNlZWQgZnJleHAgY2VpbCBmbG9vciByYWQgYWJzIHNxcnQgbW9kZiBhc2luIG1pbiBtb2QgZm1vZCBsb2cxMCBhdGFuMiBleHAgc2luIGF0YW4gb3MgZXhpdCBzZXRsb2NhbGUgZGF0ZSBnZXRlbnYgZGlmZnRpbWUgcmVtb3ZlIHRpbWUgY2xvY2sgdG1wbmFtZSByZW5hbWUgZXhlY3V0ZSBwYWNrYWdlIHByZWxvYWQgbG9hZGxpYiBsb2FkZWQgbG9hZGVycyBjcGF0aCBjb25maWcgcGF0aCBzZWVhbGwgc3RyaW5nIHN1YiB1cHBlciBsZW4gZ2ZpbmQgcmVwIGZpbmQgbWF0Y2ggY2hhciBkdW1wIGdtYXRjaCByZXZlcnNlIGJ5dGUgZm9ybWF0IGdzdWIgbG93ZXIgdGFibGUgc2V0biBpbnNlcnQgZ2V0biBmb3JlYWNoaSBtYXhuIGZvcmVhY2ggY29uY2F0IHNvcnQgcmVtb3ZlIgp9LGNvbnRhaW5zOmkuY29uY2F0KFt7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDoiXFwpIiwKY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUsewpiZWdpbjoiKFtfYS16QS1aXVxcdypcXC4pKihbX2EtekEtWl1cXHcqOik/W19hLXpBLVpdXFx3KiJ9KSx7Y2xhc3NOYW1lOiJwYXJhbXMiLApiZWdpbjoiXFwoIixlbmRzV2l0aFBhcmVudDohMCxjb250YWluczppfV0uY29uY2F0KGkpCn0sZS5DX05VTUJFUl9NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsCmJlZ2luOm4sZW5kOnQsY29udGFpbnM6W2FdLHJlbGV2YW5jZTo1fV0pfX0sZ3Jtcl9tYWtlZmlsZTplPT57Y29uc3Qgbj17CmNsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46IlxcJFxcKCIrZS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXCkiLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXX0se2JlZ2luOi9cJFtAJTw/XF5cK1wqXS99XX0sdD17Y2xhc3NOYW1lOiJzdHJpbmciLApiZWdpbjovIi8sZW5kOi8iLyxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLG5dfSxhPXtjbGFzc05hbWU6InZhcmlhYmxlIiwKYmVnaW46L1wkXChbXHctXStccy8sZW5kOi9cKS8sa2V5d29yZHM6ewpidWlsdF9pbjoic3Vic3QgcGF0c3Vic3Qgc3RyaXAgZmluZHN0cmluZyBmaWx0ZXIgZmlsdGVyLW91dCBzb3J0IHdvcmQgd29yZGxpc3QgZmlyc3R3b3JkIGxhc3R3b3JkIGRpciBub3RkaXIgc3VmZml4IGJhc2VuYW1lIGFkZHN1ZmZpeCBhZGRwcmVmaXggam9pbiB3aWxkY2FyZCByZWFscGF0aCBhYnNwYXRoIGVycm9yIHdhcm5pbmcgc2hlbGwgb3JpZ2luIGZsYXZvciBmb3JlYWNoIGlmIG9yIGFuZCBjYWxsIGV2YWwgZmlsZSB2YWx1ZSIKfSxjb250YWluczpbbl19LGk9e2JlZ2luOiJeIitlLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccyooPz1bOis/XT89KSJ9LHI9ewpjbGFzc05hbWU6InNlY3Rpb24iLGJlZ2luOi9eW15cc10rOi8sZW5kOi8kLyxjb250YWluczpbbl19O3JldHVybnsKbmFtZToiTWFrZWZpbGUiLGFsaWFzZXM6WyJtayIsIm1hayIsIm1ha2UiXSxrZXl3b3Jkczp7JHBhdHRlcm46L1tcdy1dKy8sCmtleXdvcmQ6ImRlZmluZSBlbmRlZiB1bmRlZmluZSBpZmRlZiBpZm5kZWYgaWZlcSBpZm5lcSBlbHNlIGVuZGlmIGluY2x1ZGUgLWluY2x1ZGUgc2luY2x1ZGUgb3ZlcnJpZGUgZXhwb3J0IHVuZXhwb3J0IHByaXZhdGUgdnBhdGgiCn0sY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsbix0LGEsaSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovXlwuUEhPTlk6LywKZW5kOi8kLyxrZXl3b3Jkczp7JHBhdHRlcm46L1tcLlx3XSsvLGtleXdvcmQ6Ii5QSE9OWSJ9fSxyXX19LGdybXJfbWFya2Rvd246ZT0+ewpjb25zdCBuPXtiZWdpbjovPFwvP1tBLVphLXpfXS8sZW5kOiI+IixzdWJMYW5ndWFnZToieG1sIixyZWxldmFuY2U6MH0sdD17CnZhcmlhbnRzOlt7YmVnaW46L1xbLis/XF1cWy4qP1xdLyxyZWxldmFuY2U6MH0sewpiZWdpbjovXFsuKz9cXVwoKChkYXRhfGphdmFzY3JpcHR8bWFpbHRvKTp8KD86aHR0cHxmdHApcz86XC9cLykuKj9cKS8sCnJlbGV2YW5jZToyfSx7CmJlZ2luOmUucmVnZXguY29uY2F0KC9cWy4rP1xdXCgvLC9bQS1aYS16XVtBLVphLXowLTkrLi1dKi8sLzpcL1wvLio/XCkvKSwKcmVsZXZhbmNlOjJ9LHtiZWdpbjovXFsuKz9cXVwoWy4vPyYjXS4qP1wpLyxyZWxldmFuY2U6MX0sewpiZWdpbjovXFsuKj9cXVwoLio/XCkvLHJlbGV2YW5jZTowfV0scmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3ttYXRjaDovXFsoPz1cXSkvCn0se2NsYXNzTmFtZToic3RyaW5nIixyZWxldmFuY2U6MCxiZWdpbjoiXFxbIixlbmQ6IlxcXSIsZXhjbHVkZUJlZ2luOiEwLApyZXR1cm5FbmQ6ITB9LHtjbGFzc05hbWU6ImxpbmsiLHJlbGV2YW5jZTowLGJlZ2luOiJcXF1cXCgiLGVuZDoiXFwpIiwKZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITB9LHtjbGFzc05hbWU6InN5bWJvbCIscmVsZXZhbmNlOjAsYmVnaW46IlxcXVxcWyIsCmVuZDoiXFxdIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMH1dfSxhPXtjbGFzc05hbWU6InN0cm9uZyIsY29udGFpbnM6W10sCnZhcmlhbnRzOlt7YmVnaW46L197Mn0oPyFccykvLGVuZDovX3syfS99LHtiZWdpbjovXCp7Mn0oPyFccykvLGVuZDovXCp7Mn0vfV0KfSxpPXtjbGFzc05hbWU6ImVtcGhhc2lzIixjb250YWluczpbXSx2YXJpYW50czpbe2JlZ2luOi9cKig/IVsqXHNdKS8sZW5kOi9cKi99LHsKYmVnaW46L18oPyFbX1xzXSkvLGVuZDovXy8scmVsZXZhbmNlOjB9XX0scj1lLmluaGVyaXQoYSx7Y29udGFpbnM6W10KfSkscz1lLmluaGVyaXQoaSx7Y29udGFpbnM6W119KTthLmNvbnRhaW5zLnB1c2gocyksaS5jb250YWlucy5wdXNoKHIpCjtsZXQgbz1bbix0XTtyZXR1cm5bYSxpLHIsc10uZm9yRWFjaCgoZT0+e2UuY29udGFpbnM9ZS5jb250YWlucy5jb25jYXQobykKfSkpLG89by5jb25jYXQoYSxpKSx7bmFtZToiTWFya2Rvd24iLGFsaWFzZXM6WyJtZCIsIm1rZG93biIsIm1rZCJdLGNvbnRhaW5zOlt7CmNsYXNzTmFtZToic2VjdGlvbiIsdmFyaWFudHM6W3tiZWdpbjoiXiN7MSw2fSIsZW5kOiIkIixjb250YWluczpvfSx7CmJlZ2luOiIoPz1eLis/XFxuWz0tXXsyLH0kKSIsY29udGFpbnM6W3tiZWdpbjoiXls9LV0qJCJ9LHtiZWdpbjoiXiIsZW5kOiJcXG4iLApjb250YWluczpvfV19XX0sbix7Y2xhc3NOYW1lOiJidWxsZXQiLGJlZ2luOiJeWyBcdF0qKFsqKy1dfChcXGQrXFwuKSkoPz1cXHMrKSIsCmVuZDoiXFxzKyIsZXhjbHVkZUVuZDohMH0sYSxpLHtjbGFzc05hbWU6InF1b3RlIixiZWdpbjoiXj5cXHMrIixjb250YWluczpvLAplbmQ6IiQifSx7Y2xhc3NOYW1lOiJjb2RlIix2YXJpYW50czpbe2JlZ2luOiIoYHszLH0pW15gXSgufFxcbikqP1xcMWAqWyBdKiJ9LHsKYmVnaW46Iih+ezMsfSlbXn5dKC58XFxuKSo/XFwxfipbIF0qIn0se2JlZ2luOiJgYGAiLGVuZDoiYGBgK1sgXSokIn0sewpiZWdpbjoifn5+IixlbmQ6In5+fitbIF0qJCJ9LHtiZWdpbjoiYC4rP2AifSx7YmVnaW46Iig/PV4oIHs0fXxcXHQpKSIsCmNvbnRhaW5zOlt7YmVnaW46Il4oIHs0fXxcXHQpIixlbmQ6IihcXG4pJCJ9XSxyZWxldmFuY2U6MH1dfSx7CmJlZ2luOiJeWy1cXCpdezMsfSIsZW5kOiIkIn0sdCx7YmVnaW46L15cW1teXG5dK1xdOi8scmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3sKY2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOi9cWy8sZW5kOi9cXS8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITB9LHsKY2xhc3NOYW1lOiJsaW5rIixiZWdpbjovOlxzKi8sZW5kOi8kLyxleGNsdWRlQmVnaW46ITB9XX1dfX0sZ3Jtcl9vYmplY3RpdmVjOmU9PnsKY29uc3Qgbj0vW2EtekEtWkBdW2EtekEtWjAtOV9dKi8sdD17JHBhdHRlcm46biwKa2V5d29yZDpbIkBpbnRlcmZhY2UiLCJAY2xhc3MiLCJAcHJvdG9jb2wiLCJAaW1wbGVtZW50YXRpb24iXX07cmV0dXJuewpuYW1lOiJPYmplY3RpdmUtQyIsYWxpYXNlczpbIm1tIiwib2JqYyIsIm9iai1jIiwib2JqLWMrKyIsIm9iamVjdGl2ZS1jKysiXSwKa2V5d29yZHM6eyJ2YXJpYWJsZS5sYW5ndWFnZSI6WyJ0aGlzIiwic3VwZXIiXSwkcGF0dGVybjpuLAprZXl3b3JkOlsid2hpbGUiLCJleHBvcnQiLCJzaXplb2YiLCJ0eXBlZGVmIiwiY29uc3QiLCJzdHJ1Y3QiLCJmb3IiLCJ1bmlvbiIsInZvbGF0aWxlIiwic3RhdGljIiwibXV0YWJsZSIsImlmIiwiZG8iLCJyZXR1cm4iLCJnb3RvIiwiZW51bSIsImVsc2UiLCJicmVhayIsImV4dGVybiIsImFzbSIsImNhc2UiLCJkZWZhdWx0IiwicmVnaXN0ZXIiLCJleHBsaWNpdCIsInR5cGVuYW1lIiwic3dpdGNoIiwiY29udGludWUiLCJpbmxpbmUiLCJyZWFkb25seSIsImFzc2lnbiIsInJlYWR3cml0ZSIsInNlbGYiLCJAc3luY2hyb25pemVkIiwiaWQiLCJ0eXBlb2YiLCJub25hdG9taWMiLCJJQk91dGxldCIsIklCQWN0aW9uIiwic3Ryb25nIiwid2VhayIsImNvcHkiLCJpbiIsIm91dCIsImlub3V0IiwiYnljb3B5IiwiYnlyZWYiLCJvbmV3YXkiLCJfX3N0cm9uZyIsIl9fd2VhayIsIl9fYmxvY2siLCJfX2F1dG9yZWxlYXNpbmciLCJAcHJpdmF0ZSIsIkBwcm90ZWN0ZWQiLCJAcHVibGljIiwiQHRyeSIsIkBwcm9wZXJ0eSIsIkBlbmQiLCJAdGhyb3ciLCJAY2F0Y2giLCJAZmluYWxseSIsIkBhdXRvcmVsZWFzZXBvb2wiLCJAc3ludGhlc2l6ZSIsIkBkeW5hbWljIiwiQHNlbGVjdG9yIiwiQG9wdGlvbmFsIiwiQHJlcXVpcmVkIiwiQGVuY29kZSIsIkBwYWNrYWdlIiwiQGltcG9ydCIsIkBkZWZzIiwiQGNvbXBhdGliaWxpdHlfYWxpYXMiLCJfX2JyaWRnZSIsIl9fYnJpZGdlX3RyYW5zZmVyIiwiX19icmlkZ2VfcmV0YWluZWQiLCJfX2JyaWRnZV9yZXRhaW4iLCJfX2NvdmFyaWFudCIsIl9fY29udHJhdmFyaWFudCIsIl9fa2luZG9mIiwiX05vbm51bGwiLCJfTnVsbGFibGUiLCJfTnVsbF91bnNwZWNpZmllZCIsIl9fRlVOQ1RJT05fXyIsIl9fUFJFVFRZX0ZVTkNUSU9OX18iLCJfX2F0dHJpYnV0ZV9fIiwiZ2V0dGVyIiwic2V0dGVyIiwicmV0YWluIiwidW5zYWZlX3VucmV0YWluZWQiLCJub25udWxsIiwibnVsbGFibGUiLCJudWxsX3Vuc3BlY2lmaWVkIiwibnVsbF9yZXNldHRhYmxlIiwiY2xhc3MiLCJpbnN0YW5jZXR5cGUiLCJOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSIiwiTlNfVU5BVkFJTEFCTEUiLCJOU19SRVFVSVJFU19TVVBFUiIsIk5TX1JFVFVSTlNfSU5ORVJfUE9JTlRFUiIsIk5TX0lOTElORSIsIk5TX0FWQUlMQUJMRSIsIk5TX0RFUFJFQ0FURUQiLCJOU19FTlVNIiwiTlNfT1BUSU9OUyIsIk5TX1NXSUZUX1VOQVZBSUxBQkxFIiwiTlNfQVNTVU1FX05PTk5VTExfQkVHSU4iLCJOU19BU1NVTUVfTk9OTlVMTF9FTkQiLCJOU19SRUZJTkVEX0ZPUl9TV0lGVCIsIk5TX1NXSUZUX05BTUUiLCJOU19TV0lGVF9OT1RIUk9XIiwiTlNfRFVSSU5HIiwiTlNfSEFORExFUiIsIk5TX0VOREhBTkRMRVIiLCJOU19WQUxVRVJFVFVSTiIsIk5TX1ZPSURSRVRVUk4iXSwKbGl0ZXJhbDpbImZhbHNlIiwidHJ1ZSIsIkZBTFNFIiwiVFJVRSIsIm5pbCIsIllFUyIsIk5PIiwiTlVMTCJdLApidWlsdF9pbjpbImRpc3BhdGNoX29uY2VfdCIsImRpc3BhdGNoX3F1ZXVlX3QiLCJkaXNwYXRjaF9zeW5jIiwiZGlzcGF0Y2hfYXN5bmMiLCJkaXNwYXRjaF9vbmNlIl0sCnR5cGU6WyJpbnQiLCJmbG9hdCIsImNoYXIiLCJ1bnNpZ25lZCIsInNpZ25lZCIsInNob3J0IiwibG9uZyIsImRvdWJsZSIsIndjaGFyX3QiLCJ1bmljaGFyIiwidm9pZCIsImJvb2wiLCJCT09MIiwiaWR8MCIsIl9Cb29sIl0KfSxpbGxlZ2FsOiI8LyIsY29udGFpbnM6W3tjbGFzc05hbWU6ImJ1aWx0X2luIiwKYmVnaW46IlxcYihBVnxDQXxDRnxDR3xDSXxDTHxDTXxDTnxDVHxNS3xNUHxNVEt8TVRMfE5TfFNDTnxTS3xVSXxXS3xYQylcXHcrIgp9LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuQ19OVU1CRVJfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSx7CmNsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOidAIicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXX1dfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovI1xzKlthLXpdK1xiLyxlbmQ6LyQvLAprZXl3b3Jkczp7CmtleXdvcmQ6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZSIKfSxjb250YWluczpbe2JlZ2luOi9cXFxuLyxyZWxldmFuY2U6MH0sZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUsewpjbGFzc05hbWU6InN0cmluZyJ9KSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi88Lio/Pi8sZW5kOi8kLyxpbGxlZ2FsOiJcXG4iCn0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfSx7Y2xhc3NOYW1lOiJjbGFzcyIsCmJlZ2luOiIoIit0LmtleXdvcmQuam9pbigifCIpKyIpXFxiIixlbmQ6Lyhce3wkKS8sZXhjbHVkZUVuZDohMCxrZXl3b3Jkczp0LApjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7YmVnaW46IlxcLiIrZS5VTkRFUlNDT1JFX0lERU5UX1JFLApyZWxldmFuY2U6MH1dfX0sZ3Jtcl9wZXJsOmU9Pntjb25zdCBuPWUucmVnZXgsdD0vW2R1YWx4bXNpcG5ncl17MCwxMn0vLGE9ewokcGF0dGVybjovW1x3Ll0rLywKa2V5d29yZDoiYWJzIGFjY2VwdCBhbGFybSBhbmQgYXRhbjIgYmluZCBiaW5tb2RlIGJsZXNzIGJyZWFrIGNhbGxlciBjaGRpciBjaG1vZCBjaG9tcCBjaG9wIGNob3duIGNociBjaHJvb3QgY2xvc2UgY2xvc2VkaXIgY29ubmVjdCBjb250aW51ZSBjb3MgY3J5cHQgZGJtY2xvc2UgZGJtb3BlbiBkZWZpbmVkIGRlbGV0ZSBkaWUgZG8gZHVtcCBlYWNoIGVsc2UgZWxzaWYgZW5kZ3JlbnQgZW5kaG9zdGVudCBlbmRuZXRlbnQgZW5kcHJvdG9lbnQgZW5kcHdlbnQgZW5kc2VydmVudCBlb2YgZXZhbCBleGVjIGV4aXN0cyBleGl0IGV4cCBmY250bCBmaWxlbm8gZmxvY2sgZm9yIGZvcmVhY2ggZm9yayBmb3JtYXQgZm9ybWxpbmUgZ2V0YyBnZXRncmVudCBnZXRncmdpZCBnZXRncm5hbSBnZXRob3N0YnlhZGRyIGdldGhvc3RieW5hbWUgZ2V0aG9zdGVudCBnZXRsb2dpbiBnZXRuZXRieWFkZHIgZ2V0bmV0YnluYW1lIGdldG5ldGVudCBnZXRwZWVybmFtZSBnZXRwZ3JwIGdldHByaW9yaXR5IGdldHByb3RvYnluYW1lIGdldHByb3RvYnludW1iZXIgZ2V0cHJvdG9lbnQgZ2V0cHdlbnQgZ2V0cHduYW0gZ2V0cHd1aWQgZ2V0c2VydmJ5bmFtZSBnZXRzZXJ2Ynlwb3J0IGdldHNlcnZlbnQgZ2V0c29ja25hbWUgZ2V0c29ja29wdCBnaXZlbiBnbG9iIGdtdGltZSBnb3RvIGdyZXAgZ3QgaGV4IGlmIGluZGV4IGludCBpb2N0bCBqb2luIGtleXMga2lsbCBsYXN0IGxjIGxjZmlyc3QgbGVuZ3RoIGxpbmsgbGlzdGVuIGxvY2FsIGxvY2FsdGltZSBsb2cgbHN0YXQgbHQgbWEgbWFwIG1rZGlyIG1zZ2N0bCBtc2dnZXQgbXNncmN2IG1zZ3NuZCBteSBuZSBuZXh0IG5vIG5vdCBvY3Qgb3BlbiBvcGVuZGlyIG9yIG9yZCBvdXIgcGFjayBwYWNrYWdlIHBpcGUgcG9wIHBvcyBwcmludCBwcmludGYgcHJvdG90eXBlIHB1c2ggcXwwIHFxIHF1b3RlbWV0YSBxdyBxeCByYW5kIHJlYWQgcmVhZGRpciByZWFkbGluZSByZWFkbGluayByZWFkcGlwZSByZWN2IHJlZG8gcmVmIHJlbmFtZSByZXF1aXJlIHJlc2V0IHJldHVybiByZXZlcnNlIHJld2luZGRpciByaW5kZXggcm1kaXIgc2F5IHNjYWxhciBzZWVrIHNlZWtkaXIgc2VsZWN0IHNlbWN0bCBzZW1nZXQgc2Vtb3Agc2VuZCBzZXRncmVudCBzZXRob3N0ZW50IHNldG5ldGVudCBzZXRwZ3JwIHNldHByaW9yaXR5IHNldHByb3RvZW50IHNldHB3ZW50IHNldHNlcnZlbnQgc2V0c29ja29wdCBzaGlmdCBzaG1jdGwgc2htZ2V0IHNobXJlYWQgc2htd3JpdGUgc2h1dGRvd24gc2luIHNsZWVwIHNvY2tldCBzb2NrZXRwYWlyIHNvcnQgc3BsaWNlIHNwbGl0IHNwcmludGYgc3FydCBzcmFuZCBzdGF0IHN0YXRlIHN0dWR5IHN1YiBzdWJzdHIgc3ltbGluayBzeXNjYWxsIHN5c29wZW4gc3lzcmVhZCBzeXNzZWVrIHN5c3RlbSBzeXN3cml0ZSB0ZWxsIHRlbGxkaXIgdGllIHRpZWQgdGltZSB0aW1lcyB0ciB0cnVuY2F0ZSB1YyB1Y2ZpcnN0IHVtYXNrIHVuZGVmIHVubGVzcyB1bmxpbmsgdW5wYWNrIHVuc2hpZnQgdW50aWUgdW50aWwgdXNlIHV0aW1lIHZhbHVlcyB2ZWMgd2FpdCB3YWl0cGlkIHdhbnRhcnJheSB3YXJuIHdoZW4gd2hpbGUgd3JpdGUgeHwwIHhvciB5fDAiCn0saT17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46IlskQF1cXHsiLGVuZDoiXFx9IixrZXl3b3JkczphfSxyPXtiZWdpbjovLT5cey8sCmVuZDovXH0vfSxzPXt2YXJpYW50czpbe2JlZ2luOi9cJFxkL30sewpiZWdpbjpuLmNvbmNhdCgvWyQlQF0oXF5cd1xifCNcdysoOjpcdyspKnxce1x3K1x9fFx3Kyg6Olx3KikqKS8sIig/IVtBLVphLXpdKSg/IVtAJCVdKSIpCn0se2JlZ2luOi9bJCVAXVteXHNcd3tdLyxyZWxldmFuY2U6MH1dCn0sbz1bZS5CQUNLU0xBU0hfRVNDQVBFLGksc10sbD1bLyEvLC9cLy8sL1x8LywvXD8vLC8nLywvIi8sLyMvXSxjPShlLGEsaT0iXFwxIik9PnsKY29uc3Qgcj0iXFwxIj09PWk/aTpuLmNvbmNhdChpLGEpCjtyZXR1cm4gbi5jb25jYXQobi5jb25jYXQoIig/OiIsZSwiKSIpLGEsLyg/OlxcLnxbXlxcXC9dKSo/LyxyLC8oPzpcXC58W15cXFwvXSkqPy8saSx0KQp9LGQ9KGUsYSxpKT0+bi5jb25jYXQobi5jb25jYXQoIig/OiIsZSwiKSIpLGEsLyg/OlxcLnxbXlxcXC9dKSo/LyxpLHQpLGc9W3MsZS5IQVNIX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoL149XHcvLC89Y3V0Lyx7CmVuZHNXaXRoUGFyZW50OiEwfSkscix7Y2xhc3NOYW1lOiJzdHJpbmciLGNvbnRhaW5zOm8sdmFyaWFudHM6W3sKYmVnaW46InFbcXd4cl0/XFxzKlxcKCIsZW5kOiJcXCkiLHJlbGV2YW5jZTo1fSx7YmVnaW46InFbcXd4cl0/XFxzKlxcWyIsCmVuZDoiXFxdIixyZWxldmFuY2U6NX0se2JlZ2luOiJxW3F3eHJdP1xccypcXHsiLGVuZDoiXFx9IixyZWxldmFuY2U6NX0sewpiZWdpbjoicVtxd3hyXT9cXHMqXFx8IixlbmQ6IlxcfCIscmVsZXZhbmNlOjV9LHtiZWdpbjoicVtxd3hyXT9cXHMqPCIsZW5kOiI+IiwKcmVsZXZhbmNlOjV9LHtiZWdpbjoicXdcXHMrcSIsZW5kOiJxIixyZWxldmFuY2U6NX0se2JlZ2luOiInIixlbmQ6IiciLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXX0se2JlZ2luOiciJyxlbmQ6JyInfSx7YmVnaW46ImAiLGVuZDoiYCIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46L1x7XHcrXH0vLHJlbGV2YW5jZTowfSx7CmJlZ2luOiItP1xcdytcXHMqPT4iLHJlbGV2YW5jZTowfV19LHtjbGFzc05hbWU6Im51bWJlciIsCmJlZ2luOiIoXFxiMFswLTdfXSspfChcXGIweFswLTlhLWZBLUZfXSspfChcXGJbMS05XVswLTlfXSooXFwuWzAtOV9dKyk/KXxbMF9dXFxiIiwKcmVsZXZhbmNlOjB9LHsKYmVnaW46IihcXC9cXC98IitlLlJFX1NUQVJURVJTX1JFKyJ8XFxiKHNwbGl0fHJldHVybnxwcmludHxyZXZlcnNlfGdyZXApXFxiKVxccyoiLAprZXl3b3Jkczoic3BsaXQgcmV0dXJuIHByaW50IHJldmVyc2UgZ3JlcCIscmVsZXZhbmNlOjAsCmNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6InJlZ2V4cCIsdmFyaWFudHM6W3sKYmVnaW46Yygic3x0cnx5IixuLmVpdGhlciguLi5sLHtjYXB0dXJlOiEwfSkpfSx7YmVnaW46Yygic3x0cnx5IiwiXFwoIiwiXFwpIil9LHsKYmVnaW46Yygic3x0cnx5IiwiXFxbIiwiXFxdIil9LHtiZWdpbjpjKCJzfHRyfHkiLCJcXHsiLCJcXH0iKX1dLHJlbGV2YW5jZToyfSx7CmNsYXNzTmFtZToicmVnZXhwIix2YXJpYW50czpbe2JlZ2luOi8obXxxcilcL1wvLyxyZWxldmFuY2U6MH0sewpiZWdpbjpkKCIoPzptfHFyKT8iLC9cLy8sL1wvLyl9LHtiZWdpbjpkKCJtfHFyIixuLmVpdGhlciguLi5sLHtjYXB0dXJlOiEwCn0pLC9cMS8pfSx7YmVnaW46ZCgibXxxciIsL1woLywvXCkvKX0se2JlZ2luOmQoIm18cXIiLC9cWy8sL1xdLyl9LHsKYmVnaW46ZCgibXxxciIsL1x7LywvXH0vKX1dfV19LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJzdWIiLAplbmQ6IihcXHMqXFwoLio/XFwpKT9bO3tdIixleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTo1LGNvbnRhaW5zOltlLlRJVExFX01PREVdfSx7CmJlZ2luOiItXFx3XFxiIixyZWxldmFuY2U6MH0se2JlZ2luOiJeX19EQVRBX18kIixlbmQ6Il5fX0VORF9fJCIsCnN1Ykxhbmd1YWdlOiJtb2pvbGljaW91cyIsY29udGFpbnM6W3tiZWdpbjoiXkBALioiLGVuZDoiJCIsY2xhc3NOYW1lOiJjb21tZW50In1dCn1dO3JldHVybiBpLmNvbnRhaW5zPWcsci5jb250YWlucz1nLHtuYW1lOiJQZXJsIixhbGlhc2VzOlsicGwiLCJwbSJdLGtleXdvcmRzOmEsCmNvbnRhaW5zOmd9fSxncm1yX3BocDplPT57CmNvbnN0IG49ZS5yZWdleCx0PS8oPyFbQS1aYS16MC05XSkoPyFbJF0pLyxhPW4uY29uY2F0KC9bYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aMC05X1x4N2YtXHhmZl0qLyx0KSxpPW4uY29uY2F0KC8oXFw/W0EtWl1bYS16MC05X1x4N2YtXHhmZl0rfFxcP1tBLVpdKyg/PVtBLVpdW2EtejAtOV9ceDdmLVx4ZmZdKSl7MSx9Lyx0KSxyPXsKc2NvcGU6InZhcmlhYmxlIixtYXRjaDoiXFwkKyIrYX0scz17c2NvcGU6InN1YnN0Iix2YXJpYW50czpbe2JlZ2luOi9cJFx3Ky99LHsKYmVnaW46L1x7XCQvLGVuZDovXH0vfV19LG89ZS5pbmhlcml0KGUuQVBPU19TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsCn0pLGw9IlsgXHRcbl0iLGM9e3Njb3BlOiJzdHJpbmciLHZhcmlhbnRzOltlLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7CmlsbGVnYWw6bnVsbCxjb250YWluczplLlFVT1RFX1NUUklOR19NT0RFLmNvbnRhaW5zLmNvbmNhdChzKX0pLG8sewpiZWdpbjovPDw8WyBcdF0qKD86KFx3Kyl8IihcdyspIilcbi8sZW5kOi9bIFx0XSooXHcrKVxiLywKY29udGFpbnM6ZS5RVU9URV9TVFJJTkdfTU9ERS5jb250YWlucy5jb25jYXQocyksIm9uOmJlZ2luIjooZSxuKT0+ewpuLmRhdGEuX2JlZ2luTWF0Y2g9ZVsxXXx8ZVsyXX0sIm9uOmVuZCI6KGUsbik9PnsKbi5kYXRhLl9iZWdpbk1hdGNoIT09ZVsxXSYmbi5pZ25vcmVNYXRjaCgpfX0sZS5FTkRfU0FNRV9BU19CRUdJTih7CmJlZ2luOi88PDxbIFx0XSonKFx3KyknXG4vLGVuZDovWyBcdF0qKFx3KylcYi99KV19LGQ9e3Njb3BlOiJudW1iZXIiLHZhcmlhbnRzOlt7CmJlZ2luOiJcXGIwW2JCXVswMV0rKD86X1swMV0rKSpcXGIifSx7YmVnaW46IlxcYjBbb09dWzAtN10rKD86X1swLTddKykqXFxiIn0sewpiZWdpbjoiXFxiMFt4WF1bXFxkYS1mQS1GXSsoPzpfW1xcZGEtZkEtRl0rKSpcXGIifSx7CmJlZ2luOiIoPzpcXGJcXGQrKD86X1xcZCspKihcXC4oPzpcXGQrKD86X1xcZCspKikpP3xcXEJcXC5cXGQrKSg/OltlRV1bKy1dP1xcZCspPyIKfV0scmVsZXZhbmNlOjAKfSxnPVsiZmFsc2UiLCJudWxsIiwidHJ1ZSJdLHU9WyJfX0NMQVNTX18iLCJfX0RJUl9fIiwiX19GSUxFX18iLCJfX0ZVTkNUSU9OX18iLCJfX0NPTVBJTEVSX0hBTFRfT0ZGU0VUX18iLCJfX0xJTkVfXyIsIl9fTUVUSE9EX18iLCJfX05BTUVTUEFDRV9fIiwiX19UUkFJVF9fIiwiZGllIiwiZWNobyIsImV4aXQiLCJpbmNsdWRlIiwiaW5jbHVkZV9vbmNlIiwicHJpbnQiLCJyZXF1aXJlIiwicmVxdWlyZV9vbmNlIiwiYXJyYXkiLCJhYnN0cmFjdCIsImFuZCIsImFzIiwiYmluYXJ5IiwiYm9vbCIsImJvb2xlYW4iLCJicmVhayIsImNhbGxhYmxlIiwiY2FzZSIsImNhdGNoIiwiY2xhc3MiLCJjbG9uZSIsImNvbnN0IiwiY29udGludWUiLCJkZWNsYXJlIiwiZGVmYXVsdCIsImRvIiwiZG91YmxlIiwiZWxzZSIsImVsc2VpZiIsImVtcHR5IiwiZW5kZGVjbGFyZSIsImVuZGZvciIsImVuZGZvcmVhY2giLCJlbmRpZiIsImVuZHN3aXRjaCIsImVuZHdoaWxlIiwiZW51bSIsImV2YWwiLCJleHRlbmRzIiwiZmluYWwiLCJmaW5hbGx5IiwiZmxvYXQiLCJmb3IiLCJmb3JlYWNoIiwiZnJvbSIsImdsb2JhbCIsImdvdG8iLCJpZiIsImltcGxlbWVudHMiLCJpbnN0YW5jZW9mIiwiaW5zdGVhZG9mIiwiaW50IiwiaW50ZWdlciIsImludGVyZmFjZSIsImlzc2V0IiwiaXRlcmFibGUiLCJsaXN0IiwibWF0Y2h8MCIsIm1peGVkIiwibmV3IiwibmV2ZXIiLCJvYmplY3QiLCJvciIsInByaXZhdGUiLCJwcm90ZWN0ZWQiLCJwdWJsaWMiLCJyZWFkb25seSIsInJlYWwiLCJyZXR1cm4iLCJzdHJpbmciLCJzd2l0Y2giLCJ0aHJvdyIsInRyYWl0IiwidHJ5IiwidW5zZXQiLCJ1c2UiLCJ2YXIiLCJ2b2lkIiwid2hpbGUiLCJ4b3IiLCJ5aWVsZCJdLGI9WyJFcnJvcnwwIiwiQXBwZW5kSXRlcmF0b3IiLCJBcmd1bWVudENvdW50RXJyb3IiLCJBcml0aG1ldGljRXJyb3IiLCJBcnJheUl0ZXJhdG9yIiwiQXJyYXlPYmplY3QiLCJBc3NlcnRpb25FcnJvciIsIkJhZEZ1bmN0aW9uQ2FsbEV4Y2VwdGlvbiIsIkJhZE1ldGhvZENhbGxFeGNlcHRpb24iLCJDYWNoaW5nSXRlcmF0b3IiLCJDYWxsYmFja0ZpbHRlckl0ZXJhdG9yIiwiQ29tcGlsZUVycm9yIiwiQ291bnRhYmxlIiwiRGlyZWN0b3J5SXRlcmF0b3IiLCJEaXZpc2lvbkJ5WmVyb0Vycm9yIiwiRG9tYWluRXhjZXB0aW9uIiwiRW1wdHlJdGVyYXRvciIsIkVycm9yRXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiRmlsZXN5c3RlbUl0ZXJhdG9yIiwiRmlsdGVySXRlcmF0b3IiLCJHbG9iSXRlcmF0b3IiLCJJbmZpbml0ZUl0ZXJhdG9yIiwiSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIiwiSXRlcmF0b3JJdGVyYXRvciIsIkxlbmd0aEV4Y2VwdGlvbiIsIkxpbWl0SXRlcmF0b3IiLCJMb2dpY0V4Y2VwdGlvbiIsIk11bHRpcGxlSXRlcmF0b3IiLCJOb1Jld2luZEl0ZXJhdG9yIiwiT3V0T2ZCb3VuZHNFeGNlcHRpb24iLCJPdXRPZlJhbmdlRXhjZXB0aW9uIiwiT3V0ZXJJdGVyYXRvciIsIk92ZXJmbG93RXhjZXB0aW9uIiwiUGFyZW50SXRlcmF0b3IiLCJQYXJzZUVycm9yIiwiUmFuZ2VFeGNlcHRpb24iLCJSZWN1cnNpdmVBcnJheUl0ZXJhdG9yIiwiUmVjdXJzaXZlQ2FjaGluZ0l0ZXJhdG9yIiwiUmVjdXJzaXZlQ2FsbGJhY2tGaWx0ZXJJdGVyYXRvciIsIlJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yIiwiUmVjdXJzaXZlRmlsdGVySXRlcmF0b3IiLCJSZWN1cnNpdmVJdGVyYXRvciIsIlJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IiLCJSZWN1cnNpdmVSZWdleEl0ZXJhdG9yIiwiUmVjdXJzaXZlVHJlZUl0ZXJhdG9yIiwiUmVnZXhJdGVyYXRvciIsIlJ1bnRpbWVFeGNlcHRpb24iLCJTZWVrYWJsZUl0ZXJhdG9yIiwiU3BsRG91Ymx5TGlua2VkTGlzdCIsIlNwbEZpbGVJbmZvIiwiU3BsRmlsZU9iamVjdCIsIlNwbEZpeGVkQXJyYXkiLCJTcGxIZWFwIiwiU3BsTWF4SGVhcCIsIlNwbE1pbkhlYXAiLCJTcGxPYmplY3RTdG9yYWdlIiwiU3BsT2JzZXJ2ZXIiLCJTcGxQcmlvcml0eVF1ZXVlIiwiU3BsUXVldWUiLCJTcGxTdGFjayIsIlNwbFN1YmplY3QiLCJTcGxUZW1wRmlsZU9iamVjdCIsIlR5cGVFcnJvciIsIlVuZGVyZmxvd0V4Y2VwdGlvbiIsIlVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbiIsIlVuaGFuZGxlZE1hdGNoRXJyb3IiLCJBcnJheUFjY2VzcyIsIkJhY2tlZEVudW0iLCJDbG9zdXJlIiwiRmliZXIiLCJHZW5lcmF0b3IiLCJJdGVyYXRvciIsIkl0ZXJhdG9yQWdncmVnYXRlIiwiU2VyaWFsaXphYmxlIiwiU3RyaW5nYWJsZSIsIlRocm93YWJsZSIsIlRyYXZlcnNhYmxlIiwiVW5pdEVudW0iLCJXZWFrUmVmZXJlbmNlIiwiV2Vha01hcCIsIkRpcmVjdG9yeSIsIl9fUEhQX0luY29tcGxldGVfQ2xhc3MiLCJwYXJlbnQiLCJwaHBfdXNlcl9maWx0ZXIiLCJzZWxmIiwic3RhdGljIiwic3RkQ2xhc3MiXSxtPXsKa2V5d29yZDp1LGxpdGVyYWw6KGU9Pntjb25zdCBuPVtdO3JldHVybiBlLmZvckVhY2goKGU9PnsKbi5wdXNoKGUpLGUudG9Mb3dlckNhc2UoKT09PWU/bi5wdXNoKGUudG9VcHBlckNhc2UoKSk6bi5wdXNoKGUudG9Mb3dlckNhc2UoKSkKfSkpLG59KShnKSxidWlsdF9pbjpifSxwPWU9PmUubWFwKChlPT5lLnJlcGxhY2UoL1x8XGQrJC8sIiIpKSksXz17dmFyaWFudHM6W3sKbWF0Y2g6Wy9uZXcvLG4uY29uY2F0KGwsIisiKSxuLmNvbmNhdCgiKD8hIixwKGIpLmpvaW4oIlxcYnwiKSwiXFxiKSIpLGldLHNjb3BlOnsKMToia2V5d29yZCIsNDoidGl0bGUuY2xhc3MifX1dfSxoPW4uY29uY2F0KGEsIlxcYig/IVxcKCkiKSxmPXt2YXJpYW50czpbewptYXRjaDpbbi5jb25jYXQoLzo6LyxuLmxvb2thaGVhZCgvKD8hY2xhc3NcYikvKSksaF0sc2NvcGU6ezI6InZhcmlhYmxlLmNvbnN0YW50Igp9fSx7bWF0Y2g6Wy86Oi8sL2NsYXNzL10sc2NvcGU6ezI6InZhcmlhYmxlLmxhbmd1YWdlIn19LHsKbWF0Y2g6W2ksbi5jb25jYXQoLzo6LyxuLmxvb2thaGVhZCgvKD8hY2xhc3NcYikvKSksaF0sc2NvcGU6ezE6InRpdGxlLmNsYXNzIiwKMzoidmFyaWFibGUuY29uc3RhbnQifX0se21hdGNoOltpLG4uY29uY2F0KCI6OiIsbi5sb29rYWhlYWQoLyg/IWNsYXNzXGIpLykpXSwKc2NvcGU6ezE6InRpdGxlLmNsYXNzIn19LHttYXRjaDpbaSwvOjovLC9jbGFzcy9dLHNjb3BlOnsxOiJ0aXRsZS5jbGFzcyIsCjM6InZhcmlhYmxlLmxhbmd1YWdlIn19XX0sRT17c2NvcGU6ImF0dHIiLAptYXRjaDpuLmNvbmNhdChhLG4ubG9va2FoZWFkKCI6Iiksbi5sb29rYWhlYWQoLyg/ITo6KS8pKX0seT17cmVsZXZhbmNlOjAsCmJlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6bSxjb250YWluczpbRSxyLGYsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxjLGQsX10KfSxOPXtyZWxldmFuY2U6MCwKbWF0Y2g6Wy9cYi8sbi5jb25jYXQoIig/IWZuXFxifGZ1bmN0aW9uXFxifCIscCh1KS5qb2luKCJcXGJ8IiksInwiLHAoYikuam9pbigiXFxifCIpLCJcXGIpIiksYSxuLmNvbmNhdChsLCIqIiksbi5sb29rYWhlYWQoLyg/PVwoKS8pXSwKc2NvcGU6ezM6InRpdGxlLmZ1bmN0aW9uLmludm9rZSJ9LGNvbnRhaW5zOlt5XX07eS5jb250YWlucy5wdXNoKE4pCjtjb25zdCB3PVtFLGYsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxjLGQsX107cmV0dXJue2Nhc2VfaW5zZW5zaXRpdmU6ITEsCmtleXdvcmRzOm0sY29udGFpbnM6W3tiZWdpbjpuLmNvbmNhdCgvI1xbXHMqLyxpKSxiZWdpblNjb3BlOiJtZXRhIixlbmQ6L10vLAplbmRTY29wZToibWV0YSIsa2V5d29yZHM6e2xpdGVyYWw6ZyxrZXl3b3JkOlsibmV3IiwiYXJyYXkiXX0sY29udGFpbnM6W3sKYmVnaW46L1xbLyxlbmQ6L10vLGtleXdvcmRzOntsaXRlcmFsOmcsa2V5d29yZDpbIm5ldyIsImFycmF5Il19LApjb250YWluczpbInNlbGYiLC4uLnddfSwuLi53LHtzY29wZToibWV0YSIsbWF0Y2g6aX1dCn0sZS5IQVNIX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoIi8vIiwiJCIpLGUuQ09NTUVOVCgiL1xcKiIsIlxcKi8iLHtjb250YWluczpbewpzY29wZToiZG9jdGFnIixtYXRjaDoiQFtBLVphLXpdKyJ9XX0pLHttYXRjaDovX19oYWx0X2NvbXBpbGVyXChcKTsvLAprZXl3b3JkczoiX19oYWx0X2NvbXBpbGVyIixzdGFydHM6e3Njb3BlOiJjb21tZW50IixlbmQ6ZS5NQVRDSF9OT1RISU5HX1JFLApjb250YWluczpbe21hdGNoOi9cPz4vLHNjb3BlOiJtZXRhIixlbmRzUGFyZW50OiEwfV19fSx7c2NvcGU6Im1ldGEiLHZhcmlhbnRzOlt7CmJlZ2luOi88XD9waHAvLHJlbGV2YW5jZToxMH0se2JlZ2luOi88XD89L30se2JlZ2luOi88XD8vLHJlbGV2YW5jZTouMX0sewpiZWdpbjovXD8+L31dfSx7c2NvcGU6InZhcmlhYmxlLmxhbmd1YWdlIixtYXRjaDovXCR0aGlzXGIvfSxyLE4sZix7Cm1hdGNoOlsvY29uc3QvLC9ccy8sYV0sc2NvcGU6ezE6ImtleXdvcmQiLDM6InZhcmlhYmxlLmNvbnN0YW50In19LF8sewpzY29wZToiZnVuY3Rpb24iLHJlbGV2YW5jZTowLGJlZ2luS2V5d29yZHM6ImZuIGZ1bmN0aW9uIixlbmQ6L1s7e10vLApleGNsdWRlRW5kOiEwLGlsbGVnYWw6IlskJVxcW10iLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoidXNlIgp9LGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFLHtiZWdpbjoiPT4iLGVuZHNQYXJlbnQ6ITB9LHtzY29wZToicGFyYW1zIiwKYmVnaW46IlxcKCIsZW5kOiJcXCkiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGtleXdvcmRzOm0sCmNvbnRhaW5zOlsic2VsZiIscixmLGUuQ19CTE9DS19DT01NRU5UX01PREUsYyxkXX1dfSx7c2NvcGU6ImNsYXNzIix2YXJpYW50czpbewpiZWdpbktleXdvcmRzOiJlbnVtIixpbGxlZ2FsOi9bKCQiXS99LHtiZWdpbktleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UgdHJhaXQiLAppbGxlZ2FsOi9bOigkIl0vfV0scmVsZXZhbmNlOjAsZW5kOi9cey8sZXhjbHVkZUVuZDohMCxjb250YWluczpbewpiZWdpbktleXdvcmRzOiJleHRlbmRzIGltcGxlbWVudHMifSxlLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LHsKYmVnaW5LZXl3b3JkczoibmFtZXNwYWNlIixyZWxldmFuY2U6MCxlbmQ6IjsiLGlsbGVnYWw6L1suJ10vLApjb250YWluczpbZS5pbmhlcml0KGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFLHtzY29wZToidGl0bGUuY2xhc3MifSldfSx7CmJlZ2luS2V5d29yZHM6InVzZSIscmVsZXZhbmNlOjAsZW5kOiI7Iixjb250YWluczpbewptYXRjaDovXGIoYXN8Y29uc3R8ZnVuY3Rpb24pXGIvLHNjb3BlOiJrZXl3b3JkIn0sZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSxjLGRdfQp9LGdybXJfcGhwX3RlbXBsYXRlOmU9Pih7bmFtZToiUEhQIHRlbXBsYXRlIixzdWJMYW5ndWFnZToieG1sIixjb250YWluczpbewpiZWdpbjovPFw/KHBocHw9KT8vLGVuZDovXD8+LyxzdWJMYW5ndWFnZToicGhwIixjb250YWluczpbe2JlZ2luOiIvXFwqIiwKZW5kOiJcXCovIixza2lwOiEwfSx7YmVnaW46J2IiJyxlbmQ6JyInLHNraXA6ITB9LHtiZWdpbjoiYiciLGVuZDoiJyIsc2tpcDohMAp9LGUuaW5oZXJpdChlLkFQT1NfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbCxjbGFzc05hbWU6bnVsbCxjb250YWluczpudWxsLApza2lwOiEwfSksZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbCxjbGFzc05hbWU6bnVsbCwKY29udGFpbnM6bnVsbCxza2lwOiEwfSldfV19KSxncm1yX3BsYWludGV4dDplPT4oe25hbWU6IlBsYWluIHRleHQiLAphbGlhc2VzOlsidGV4dCIsInR4dCJdLGRpc2FibGVBdXRvZGV0ZWN0OiEwfSksZ3Jtcl9weXRob246ZT0+ewpjb25zdCBuPWUucmVnZXgsdD0vW1xwe1hJRF9TdGFydH1fXVxwe1hJRF9Db250aW51ZX0qL3UsYT1bImFuZCIsImFzIiwiYXNzZXJ0IiwiYXN5bmMiLCJhd2FpdCIsImJyZWFrIiwiY2FzZSIsImNsYXNzIiwiY29udGludWUiLCJkZWYiLCJkZWwiLCJlbGlmIiwiZWxzZSIsImV4Y2VwdCIsImZpbmFsbHkiLCJmb3IiLCJmcm9tIiwiZ2xvYmFsIiwiaWYiLCJpbXBvcnQiLCJpbiIsImlzIiwibGFtYmRhIiwibWF0Y2giLCJub25sb2NhbHwxMCIsIm5vdCIsIm9yIiwicGFzcyIsInJhaXNlIiwicmV0dXJuIiwidHJ5Iiwid2hpbGUiLCJ3aXRoIiwieWllbGQiXSxpPXsKJHBhdHRlcm46L1tBLVphLXpdXHcrfF9fXHcrX18vLGtleXdvcmQ6YSwKYnVpbHRfaW46WyJfX2ltcG9ydF9fIiwiYWJzIiwiYWxsIiwiYW55IiwiYXNjaWkiLCJiaW4iLCJib29sIiwiYnJlYWtwb2ludCIsImJ5dGVhcnJheSIsImJ5dGVzIiwiY2FsbGFibGUiLCJjaHIiLCJjbGFzc21ldGhvZCIsImNvbXBpbGUiLCJjb21wbGV4IiwiZGVsYXR0ciIsImRpY3QiLCJkaXIiLCJkaXZtb2QiLCJlbnVtZXJhdGUiLCJldmFsIiwiZXhlYyIsImZpbHRlciIsImZsb2F0IiwiZm9ybWF0IiwiZnJvemVuc2V0IiwiZ2V0YXR0ciIsImdsb2JhbHMiLCJoYXNhdHRyIiwiaGFzaCIsImhlbHAiLCJoZXgiLCJpZCIsImlucHV0IiwiaW50IiwiaXNpbnN0YW5jZSIsImlzc3ViY2xhc3MiLCJpdGVyIiwibGVuIiwibGlzdCIsImxvY2FscyIsIm1hcCIsIm1heCIsIm1lbW9yeXZpZXciLCJtaW4iLCJuZXh0Iiwib2JqZWN0Iiwib2N0Iiwib3BlbiIsIm9yZCIsInBvdyIsInByaW50IiwicHJvcGVydHkiLCJyYW5nZSIsInJlcHIiLCJyZXZlcnNlZCIsInJvdW5kIiwic2V0Iiwic2V0YXR0ciIsInNsaWNlIiwic29ydGVkIiwic3RhdGljbWV0aG9kIiwic3RyIiwic3VtIiwic3VwZXIiLCJ0dXBsZSIsInR5cGUiLCJ2YXJzIiwiemlwIl0sCmxpdGVyYWw6WyJfX2RlYnVnX18iLCJFbGxpcHNpcyIsIkZhbHNlIiwiTm9uZSIsIk5vdEltcGxlbWVudGVkIiwiVHJ1ZSJdLAp0eXBlOlsiQW55IiwiQ2FsbGFibGUiLCJDb3JvdXRpbmUiLCJEaWN0IiwiTGlzdCIsIkxpdGVyYWwiLCJHZW5lcmljIiwiT3B0aW9uYWwiLCJTZXF1ZW5jZSIsIlNldCIsIlR1cGxlIiwiVHlwZSIsIlVuaW9uIl0KfSxyPXtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9eKD4+PnxcLlwuXC4pIC99LHM9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOi9cey8sCmVuZDovXH0vLGtleXdvcmRzOmksaWxsZWdhbDovIy99LG89e2JlZ2luOi9ce1x7LyxyZWxldmFuY2U6MH0sbD17CmNsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSx2YXJpYW50czpbewpiZWdpbjovKFt1VV18W2JCXXxbclJdfFtiQl1bclJdfFtyUl1bYkJdKT8nJycvLGVuZDovJycnLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxyXSxyZWxldmFuY2U6MTB9LHsKYmVnaW46LyhbdVVdfFtiQl18W3JSXXxbYkJdW3JSXXxbclJdW2JCXSk/IiIiLyxlbmQ6LyIiIi8sCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUscl0scmVsZXZhbmNlOjEwfSx7CmJlZ2luOi8oW2ZGXVtyUl18W3JSXVtmRl18W2ZGXSknJycvLGVuZDovJycnLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxyLG8sc119LHtiZWdpbjovKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pIiIiLywKZW5kOi8iIiIvLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUscixvLHNdfSx7YmVnaW46LyhbdVVdfFtyUl0pJy8sZW5kOi8nLywKcmVsZXZhbmNlOjEwfSx7YmVnaW46LyhbdVVdfFtyUl0pIi8sZW5kOi8iLyxyZWxldmFuY2U6MTB9LHsKYmVnaW46LyhbYkJdfFtiQl1bclJdfFtyUl1bYkJdKScvLGVuZDovJy99LHtiZWdpbjovKFtiQl18W2JCXVtyUl18W3JSXVtiQl0pIi8sCmVuZDovIi99LHtiZWdpbjovKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pJy8sZW5kOi8nLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxvLHNdfSx7YmVnaW46LyhbZkZdW3JSXXxbclJdW2ZGXXxbZkZdKSIvLGVuZDovIi8sCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsbyxzXX0sZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREVdCn0sYz0iWzAtOV0oXz9bMC05XSkqIixkPWAoXFxiKCR7Y30pKT9cXC4oJHtjfSl8XFxiKCR7Y30pXFwuYCxnPSJcXGJ8IithLmpvaW4oInwiKSx1PXsKY2xhc3NOYW1lOiJudW1iZXIiLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7CmJlZ2luOmAoXFxiKCR7Y30pfCgke2R9KSlbZUVdWystXT8oJHtjfSlbakpdPyg/PSR7Z30pYH0se2JlZ2luOmAoJHtkfSlbakpdP2B9LHsKYmVnaW46YFxcYihbMS05XShfP1swLTldKSp8MCsoXz8wKSopW2xMakpdPyg/PSR7Z30pYH0sewpiZWdpbjpgXFxiMFtiQl0oXz9bMDFdKStbbExdPyg/PSR7Z30pYH0se2JlZ2luOmBcXGIwW29PXShfP1swLTddKStbbExdPyg/PSR7Z30pYAp9LHtiZWdpbjpgXFxiMFt4WF0oXz9bMC05YS1mQS1GXSkrW2xMXT8oPz0ke2d9KWB9LHtiZWdpbjpgXFxiKCR7Y30pW2pKXSg/PSR7Z30pYAp9XX0sYj17Y2xhc3NOYW1lOiJjb21tZW50IixiZWdpbjpuLmxvb2thaGVhZCgvIyB0eXBlOi8pLGVuZDovJC8sa2V5d29yZHM6aSwKY29udGFpbnM6W3tiZWdpbjovIyB0eXBlOi99LHtiZWdpbjovIy8sZW5kOi9cYlxCLyxlbmRzV2l0aFBhcmVudDohMH1dfSxtPXsKY2xhc3NOYW1lOiJwYXJhbXMiLHZhcmlhbnRzOlt7Y2xhc3NOYW1lOiIiLGJlZ2luOi9cKFxzKlwpLyxza2lwOiEwfSx7YmVnaW46L1woLywKZW5kOi9cKS8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6aSwKY29udGFpbnM6WyJzZWxmIixyLHUsbCxlLkhBU0hfQ09NTUVOVF9NT0RFXX1dfTtyZXR1cm4gcy5jb250YWlucz1bbCx1LHJdLHsKbmFtZToiUHl0aG9uIixhbGlhc2VzOlsicHkiLCJneXAiLCJpcHl0aG9uIl0sdW5pY29kZVJlZ2V4OiEwLGtleXdvcmRzOmksCmlsbGVnYWw6Lyg8XC98XD8pfD0+Lyxjb250YWluczpbcix1LHtiZWdpbjovXGJzZWxmXGIvfSx7YmVnaW5LZXl3b3JkczoiaWYiLApyZWxldmFuY2U6MH0sbCxiLGUuSEFTSF9DT01NRU5UX01PREUse21hdGNoOlsvXGJkZWYvLC9ccysvLHRdLHNjb3BlOnsKMToia2V5d29yZCIsMzoidGl0bGUuZnVuY3Rpb24ifSxjb250YWluczpbbV19LHt2YXJpYW50czpbewptYXRjaDpbL1xiY2xhc3MvLC9ccysvLHQsL1xzKi8sL1woXHMqLyx0LC9ccypcKS9dfSx7bWF0Y2g6Wy9cYmNsYXNzLywvXHMrLyx0XX1dLApzY29wZTp7MToia2V5d29yZCIsMzoidGl0bGUuY2xhc3MiLDY6InRpdGxlLmNsYXNzLmluaGVyaXRlZCJ9fSx7CmNsYXNzTmFtZToibWV0YSIsYmVnaW46L15bXHQgXSpALyxlbmQ6Lyg/PSMpfCQvLGNvbnRhaW5zOlt1LG0sbF19XX19LApncm1yX3B5dGhvbl9yZXBsOmU9Pih7YWxpYXNlczpbInB5Y29uIl0sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEucHJvbXB0IiwKc3RhcnRzOntlbmQ6LyB8JC8sc3RhcnRzOntlbmQ6IiQiLHN1Ykxhbmd1YWdlOiJweXRob24ifX0sdmFyaWFudHM6W3sKYmVnaW46L14+Pj4oPz1bIF18JCkvfSx7YmVnaW46L15cLlwuXC4oPz1bIF18JCkvfV19XX0pLGdybXJfcjplPT57CmNvbnN0IG49ZS5yZWdleCx0PS8oPzooPzpbYS16QS1aXXxcLlsuX2EtekEtWl0pWy5fYS16QS1aMC05XSopfFwuKD8hXGQpLyxhPW4uZWl0aGVyKC8wW3hYXVswLTlhLWZBLUZdK1wuWzAtOWEtZkEtRl0qW3BQXVsrLV0/XGQraT8vLC8wW3hYXVswLTlhLWZBLUZdKyg/OltwUF1bKy1dP1xkKyk/W0xpXT8vLC8oPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OltlRV1bKy1dP1xkKyk/W0xpXT8vKSxpPS9bPSE8PjpdPXxcfFx8fCYmfDo6Oj98PC18PDwtfC0+PnwtPnxcfD58Wy0rKlwvPyEkJnw6PD0+QF5+XXxcKlwqLyxyPW4uZWl0aGVyKC9bKCldLywvW3t9XS8sL1xbXFsvLC9bW1xdXS8sL1xcLywvLC8pCjtyZXR1cm57bmFtZToiUiIsa2V5d29yZHM6eyRwYXR0ZXJuOnQsCmtleXdvcmQ6ImZ1bmN0aW9uIGlmIGluIGJyZWFrIG5leHQgcmVwZWF0IGVsc2UgZm9yIHdoaWxlIiwKbGl0ZXJhbDoiTlVMTCBOQSBUUlVFIEZBTFNFIEluZiBOYU4gTkFfaW50ZWdlcl98MTAgTkFfcmVhbF98MTAgTkFfY2hhcmFjdGVyX3wxMCBOQV9jb21wbGV4X3wxMCIsCmJ1aWx0X2luOiJMRVRURVJTIGxldHRlcnMgbW9udGguYWJiIG1vbnRoLm5hbWUgcGkgVCBGIGFicyBhY29zIGFjb3NoIGFsbCBhbnkgYW55TkEgQXJnIGFzLmNhbGwgYXMuY2hhcmFjdGVyIGFzLmNvbXBsZXggYXMuZG91YmxlIGFzLmVudmlyb25tZW50IGFzLmludGVnZXIgYXMubG9naWNhbCBhcy5udWxsLmRlZmF1bHQgYXMubnVtZXJpYyBhcy5yYXcgYXNpbiBhc2luaCBhdGFuIGF0YW5oIGF0dHIgYXR0cmlidXRlcyBiYXNlZW52IGJyb3dzZXIgYyBjYWxsIGNlaWxpbmcgY2xhc3MgQ29uaiBjb3MgY29zaCBjb3NwaSBjdW1tYXggY3VtbWluIGN1bXByb2QgY3Vtc3VtIGRpZ2FtbWEgZGltIGRpbW5hbWVzIGVtcHR5ZW52IGV4cCBleHByZXNzaW9uIGZsb29yIGZvcmNlQW5kQ2FsbCBnYW1tYSBnYy50aW1lIGdsb2JhbGVudiBJbSBpbnRlcmFjdGl2ZSBpbnZpc2libGUgaXMuYXJyYXkgaXMuYXRvbWljIGlzLmNhbGwgaXMuY2hhcmFjdGVyIGlzLmNvbXBsZXggaXMuZG91YmxlIGlzLmVudmlyb25tZW50IGlzLmV4cHJlc3Npb24gaXMuZmluaXRlIGlzLmZ1bmN0aW9uIGlzLmluZmluaXRlIGlzLmludGVnZXIgaXMubGFuZ3VhZ2UgaXMubGlzdCBpcy5sb2dpY2FsIGlzLm1hdHJpeCBpcy5uYSBpcy5uYW1lIGlzLm5hbiBpcy5udWxsIGlzLm51bWVyaWMgaXMub2JqZWN0IGlzLnBhaXJsaXN0IGlzLnJhdyBpcy5yZWN1cnNpdmUgaXMuc2luZ2xlIGlzLnN5bWJvbCBsYXp5TG9hZERCZmV0Y2ggbGVuZ3RoIGxnYW1tYSBsaXN0IGxvZyBtYXggbWluIG1pc3NpbmcgTW9kIG5hbWVzIG5hcmdzIG56Y2hhciBvbGRDbGFzcyBvbi5leGl0IHBvcy50by5lbnYgcHJvYy50aW1lIHByb2QgcXVvdGUgcmFuZ2UgUmUgcmVwIHJldHJhY2VtZW0gcmV0dXJuIHJvdW5kIHNlcV9hbG9uZyBzZXFfbGVuIHNlcS5pbnQgc2lnbiBzaWduaWYgc2luIHNpbmggc2lucGkgc3FydCBzdGFuZGFyZEdlbmVyaWMgc3Vic3RpdHV0ZSBzdW0gc3dpdGNoIHRhbiB0YW5oIHRhbnBpIHRyYWNlbWVtIHRyaWdhbW1hIHRydW5jIHVuY2xhc3MgdW50cmFjZW1lbSBVc2VNZXRob2QgeHRmcm0iCn0sY29udGFpbnM6W2UuQ09NTUVOVCgvIycvLC8kLyx7Y29udGFpbnM6W3tzY29wZToiZG9jdGFnIixtYXRjaDovQGV4YW1wbGVzLywKc3RhcnRzOntlbmQ6bi5sb29rYWhlYWQobi5laXRoZXIoL1xuXiMnXHMqKD89QFthLXpBLVpdKykvLC9cbl4oPyEjJykvKSksCmVuZHNQYXJlbnQ6ITB9fSx7c2NvcGU6ImRvY3RhZyIsYmVnaW46IkBwYXJhbSIsZW5kOi8kLyxjb250YWluczpbewpzY29wZToidmFyaWFibGUiLHZhcmlhbnRzOlt7bWF0Y2g6dH0se21hdGNoOi9gKD86XFwufFteYFxcXSkrYC99XSxlbmRzUGFyZW50OiEwCn1dfSx7c2NvcGU6ImRvY3RhZyIsbWF0Y2g6L0BbYS16QS1aXSsvfSx7c2NvcGU6ImtleXdvcmQiLG1hdGNoOi9cXFthLXpBLVpdKy99XQp9KSxlLkhBU0hfQ09NTUVOVF9NT0RFLHtzY29wZToic3RyaW5nIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSwKdmFyaWFudHM6W2UuRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi9bclJdIigtKilcKC8sZW5kOi9cKSgtKikiLwp9KSxlLkVORF9TQU1FX0FTX0JFR0lOKHtiZWdpbjovW3JSXSIoLSopXHsvLGVuZDovXH0oLSopIi8KfSksZS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0iKC0qKVxbLyxlbmQ6L1xdKC0qKSIvCn0pLGUuRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi9bclJdJygtKilcKC8sZW5kOi9cKSgtKiknLwp9KSxlLkVORF9TQU1FX0FTX0JFR0lOKHtiZWdpbjovW3JSXScoLSopXHsvLGVuZDovXH0oLSopJy8KfSksZS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0nKC0qKVxbLyxlbmQ6L1xdKC0qKScvfSkse2JlZ2luOiciJyxlbmQ6JyInLApyZWxldmFuY2U6MH0se2JlZ2luOiInIixlbmQ6IiciLHJlbGV2YW5jZTowfV19LHtyZWxldmFuY2U6MCx2YXJpYW50czpbe3Njb3BlOnsKMToib3BlcmF0b3IiLDI6Im51bWJlciJ9LG1hdGNoOltpLGFdfSx7c2NvcGU6ezE6Im9wZXJhdG9yIiwyOiJudW1iZXIifSwKbWF0Y2g6Wy8lW14lXSolLyxhXX0se3Njb3BlOnsxOiJwdW5jdHVhdGlvbiIsMjoibnVtYmVyIn0sbWF0Y2g6W3IsYV19LHtzY29wZTp7CjI6Im51bWJlciJ9LG1hdGNoOlsvW15hLXpBLVowLTkuX118Xi8sYV19XX0se3Njb3BlOnszOiJvcGVyYXRvciJ9LAptYXRjaDpbdCwvXHMrLywvPC0vLC9ccysvXX0se3Njb3BlOiJvcGVyYXRvciIscmVsZXZhbmNlOjAsdmFyaWFudHM6W3ttYXRjaDppfSx7Cm1hdGNoOi8lW14lXSolL31dfSx7c2NvcGU6InB1bmN0dWF0aW9uIixyZWxldmFuY2U6MCxtYXRjaDpyfSx7YmVnaW46ImAiLGVuZDoiYCIsCmNvbnRhaW5zOlt7YmVnaW46L1xcLi99XX1dfX0sZ3Jtcl9ydWJ5OmU9PnsKY29uc3Qgbj1lLnJlZ2V4LHQ9IihbYS16QS1aX11cXHcqWyE/PV0/fFstK35dQHw8PHw+Pnw9fnw9PT0/fDw9PnxbPD5dPT98XFwqXFwqfFstLyslXiYqfmB8XXxcXFtcXF09PykiLGE9bi5laXRoZXIoL1xiKFtBLVpdK1thLXowLTldKykrLywvXGIoW0EtWl0rW2EtejAtOV0rKStbQS1aXSsvKSxpPW4uY29uY2F0KGEsLyg6Olx3KykqLykscj17CiJ2YXJpYWJsZS5jb25zdGFudCI6WyJfX0ZJTEVfXyIsIl9fTElORV9fIiwiX19FTkNPRElOR19fIl0sCiJ2YXJpYWJsZS5sYW5ndWFnZSI6WyJzZWxmIiwic3VwZXIiXSwKa2V5d29yZDpbImFsaWFzIiwiYW5kIiwiYmVnaW4iLCJCRUdJTiIsImJyZWFrIiwiY2FzZSIsImNsYXNzIiwiZGVmaW5lZCIsImRvIiwiZWxzZSIsImVsc2lmIiwiZW5kIiwiRU5EIiwiZW5zdXJlIiwiZm9yIiwiaWYiLCJpbiIsIm1vZHVsZSIsIm5leHQiLCJub3QiLCJvciIsInJlZG8iLCJyZXF1aXJlIiwicmVzY3VlIiwicmV0cnkiLCJyZXR1cm4iLCJ0aGVuIiwidW5kZWYiLCJ1bmxlc3MiLCJ1bnRpbCIsIndoZW4iLCJ3aGlsZSIsInlpZWxkIiwiaW5jbHVkZSIsImV4dGVuZCIsInByZXBlbmQiLCJwdWJsaWMiLCJwcml2YXRlIiwicHJvdGVjdGVkIiwicmFpc2UiLCJ0aHJvdyJdLApidWlsdF9pbjpbInByb2MiLCJsYW1iZGEiLCJhdHRyX2FjY2Vzc29yIiwiYXR0cl9yZWFkZXIiLCJhdHRyX3dyaXRlciIsImRlZmluZV9tZXRob2QiLCJwcml2YXRlX2NvbnN0YW50IiwibW9kdWxlX2Z1bmN0aW9uIl0sCmxpdGVyYWw6WyJ0cnVlIiwiZmFsc2UiLCJuaWwiXX0scz17Y2xhc3NOYW1lOiJkb2N0YWciLGJlZ2luOiJAW0EtWmEtel0rIn0sbz17CmJlZ2luOiIjPCIsZW5kOiI+In0sbD1bZS5DT01NRU5UKCIjIiwiJCIse2NvbnRhaW5zOltzXQp9KSxlLkNPTU1FTlQoIl49YmVnaW4iLCJePWVuZCIse2NvbnRhaW5zOltzXSxyZWxldmFuY2U6MTAKfSksZS5DT01NRU5UKCJeX19FTkRfXyIsZS5NQVRDSF9OT1RISU5HX1JFKV0sYz17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46LyNcey8sCmVuZDovXH0vLGtleXdvcmRzOnJ9LGQ9e2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLGNdLAp2YXJpYW50czpbe2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46LyIvLGVuZDovIi99LHtiZWdpbjovYC8sZW5kOi9gL30sewpiZWdpbjovJVtxUXdXeF0/XCgvLGVuZDovXCkvfSx7YmVnaW46LyVbcVF3V3hdP1xbLyxlbmQ6L1xdL30sewpiZWdpbjovJVtxUXdXeF0/XHsvLGVuZDovXH0vfSx7YmVnaW46LyVbcVF3V3hdPzwvLGVuZDovPi99LHtiZWdpbjovJVtxUXdXeF0/XC8vLAplbmQ6L1wvL30se2JlZ2luOi8lW3FRd1d4XT8lLyxlbmQ6LyUvfSx7YmVnaW46LyVbcVF3V3hdPy0vLGVuZDovLS99LHsKYmVnaW46LyVbcVF3V3hdP1x8LyxlbmQ6L1x8L30se2JlZ2luOi9cQlw/KFxcXGR7MSwzfSkvfSx7CmJlZ2luOi9cQlw/KFxceFtBLUZhLWYwLTldezEsMn0pL30se2JlZ2luOi9cQlw/KFxcdVx7P1tBLUZhLWYwLTldezEsNn1cfT8pL30sewpiZWdpbjovXEJcPyhcXE0tXFxDLXxcXE0tXFxjfFxcY1xcTS18XFxNLXxcXEMtXFxNLSlbXHgyMC1ceDdlXS99LHsKYmVnaW46L1xCXD9cXChjfEMtKVtceDIwLVx4N2VdL30se2JlZ2luOi9cQlw/XFw/XFMvfSx7CmJlZ2luOm4uY29uY2F0KC88PFstfl0/Jz8vLG4ubG9va2FoZWFkKC8oXHcrKSg/PVxXKVteXG5dKlxuKD86W15cbl0qXG4pKj9ccypcMVxiLykpLApjb250YWluczpbZS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46LyhcdyspLyxlbmQ6LyhcdyspLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxjXX0pXX1dfSxnPSJbMC05XShfP1swLTldKSoiLHU9e2NsYXNzTmFtZToibnVtYmVyIiwKcmVsZXZhbmNlOjAsdmFyaWFudHM6W3sKYmVnaW46YFxcYihbMS05XShfP1swLTldKSp8MCkoXFwuKCR7Z30pKT8oW2VFXVsrLV0/KCR7Z30pfHIpP2k/XFxiYH0sewpiZWdpbjoiXFxiMFtkRF1bMC05XShfP1swLTldKSpyP2k/XFxiIn0se2JlZ2luOiJcXGIwW2JCXVswLTFdKF8/WzAtMV0pKnI/aT9cXGIiCn0se2JlZ2luOiJcXGIwW29PXVswLTddKF8/WzAtN10pKnI/aT9cXGIifSx7CmJlZ2luOiJcXGIwW3hYXVswLTlhLWZBLUZdKF8/WzAtOWEtZkEtRl0pKnI/aT9cXGIifSx7CmJlZ2luOiJcXGIwKF8/WzAtN10pK3I/aT9cXGIifV19LGI9e3ZhcmlhbnRzOlt7bWF0Y2g6L1woXCkvfSx7CmNsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovKD89XCkpLyxleGNsdWRlQmVnaW46ITAsZW5kc1BhcmVudDohMCwKa2V5d29yZHM6cn1dfSxtPVtkLHt2YXJpYW50czpbe21hdGNoOlsvY2xhc3NccysvLGksL1xzKzxccysvLGldfSx7Cm1hdGNoOlsvXGIoY2xhc3N8bW9kdWxlKVxzKy8saV19XSxzY29wZTp7MjoidGl0bGUuY2xhc3MiLAo0OiJ0aXRsZS5jbGFzcy5pbmhlcml0ZWQifSxrZXl3b3JkczpyfSx7bWF0Y2g6Wy8oaW5jbHVkZXxleHRlbmQpXHMrLyxpXSxzY29wZTp7CjI6InRpdGxlLmNsYXNzIn0sa2V5d29yZHM6cn0se3JlbGV2YW5jZTowLG1hdGNoOltpLC9cLm5ld1suIChdL10sc2NvcGU6ewoxOiJ0aXRsZS5jbGFzcyJ9fSx7cmVsZXZhbmNlOjAsbWF0Y2g6L1xiW0EtWl1bQS1aXzAtOV0rXGIvLApjbGFzc05hbWU6InZhcmlhYmxlLmNvbnN0YW50In0se3JlbGV2YW5jZTowLG1hdGNoOmEsc2NvcGU6InRpdGxlLmNsYXNzIn0sewptYXRjaDpbL2RlZi8sL1xzKy8sdF0sc2NvcGU6ezE6ImtleXdvcmQiLDM6InRpdGxlLmZ1bmN0aW9uIn0sY29udGFpbnM6W2JdfSx7CmJlZ2luOmUuSURFTlRfUkUrIjo6In0se2NsYXNzTmFtZToic3ltYm9sIiwKYmVnaW46ZS5VTkRFUlNDT1JFX0lERU5UX1JFKyIoIXxcXD8pPzoiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLApiZWdpbjoiOig/IVxccykiLGNvbnRhaW5zOltkLHtiZWdpbjp0fV0scmVsZXZhbmNlOjB9LHUse2NsYXNzTmFtZToidmFyaWFibGUiLApiZWdpbjoiKFxcJFxcVyl8KChcXCR8QEA/KShcXHcrKSkoPz1bXkAkP10pKD8hW0EtWmEtel0pKD8hW0AkPyddKSJ9LHsKY2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cfC8sZW5kOi9cfC8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsCnJlbGV2YW5jZTowLGtleXdvcmRzOnJ9LHtiZWdpbjoiKCIrZS5SRV9TVEFSVEVSU19SRSsifHVubGVzcylcXHMqIiwKa2V5d29yZHM6InVubGVzcyIsY29udGFpbnM6W3tjbGFzc05hbWU6InJlZ2V4cCIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxjXSwKaWxsZWdhbDovXG4vLHZhcmlhbnRzOlt7YmVnaW46Ii8iLGVuZDoiL1thLXpdKiJ9LHtiZWdpbjovJXJcey8sZW5kOi9cfVthLXpdKi99LHsKYmVnaW46IiVyXFwoIixlbmQ6IlxcKVthLXpdKiJ9LHtiZWdpbjoiJXIhIixlbmQ6IiFbYS16XSoifSx7YmVnaW46IiVyXFxbIiwKZW5kOiJcXF1bYS16XSoifV19XS5jb25jYXQobyxsKSxyZWxldmFuY2U6MH1dLmNvbmNhdChvLGwpCjtjLmNvbnRhaW5zPW0sYi5jb250YWlucz1tO2NvbnN0IHA9W3tiZWdpbjovXlxzKj0+LyxzdGFydHM6e2VuZDoiJCIsY29udGFpbnM6bX0KfSx7Y2xhc3NOYW1lOiJtZXRhLnByb21wdCIsCmJlZ2luOiJeKFs+P10+fFtcXHcjXStcXChcXHcrXFwpOlxcZCs6XFxkK1s+Kl18KFxcdystKT9cXGQrXFwuXFxkK1xcLlxcZCsocFxcZCspP1teXFxkXVtePl0rPikoPz1bIF0pIiwKc3RhcnRzOntlbmQ6IiQiLGtleXdvcmRzOnIsY29udGFpbnM6bX19XTtyZXR1cm4gbC51bnNoaWZ0KG8pLHtuYW1lOiJSdWJ5IiwKYWxpYXNlczpbInJiIiwiZ2Vtc3BlYyIsInBvZHNwZWMiLCJ0aG9yIiwiaXJiIl0sa2V5d29yZHM6cixpbGxlZ2FsOi9cL1wqLywKY29udGFpbnM6W2UuU0hFQkFORyh7YmluYXJ5OiJydWJ5In0pXS5jb25jYXQocCkuY29uY2F0KGwpLmNvbmNhdChtKX19LApncm1yX3J1c3Q6ZT0+e2NvbnN0IG49ZS5yZWdleCx0PXtjbGFzc05hbWU6InRpdGxlLmZ1bmN0aW9uLmludm9rZSIscmVsZXZhbmNlOjAsCmJlZ2luOm4uY29uY2F0KC9cYi8sLyg/IWxldHxmb3J8d2hpbGV8aWZ8ZWxzZXxtYXRjaFxiKS8sZS5JREVOVF9SRSxuLmxvb2thaGVhZCgvXHMqXCgvKSkKfSxhPSIoW3VpXSg4fDE2fDMyfDY0fDEyOHxzaXplKXxmKDMyfDY0KSk/IixpPVsiZHJvcCAiLCJDb3B5IiwiU2VuZCIsIlNpemVkIiwiU3luYyIsIkRyb3AiLCJGbiIsIkZuTXV0IiwiRm5PbmNlIiwiVG9Pd25lZCIsIkNsb25lIiwiRGVidWciLCJQYXJ0aWFsRXEiLCJQYXJ0aWFsT3JkIiwiRXEiLCJPcmQiLCJBc1JlZiIsIkFzTXV0IiwiSW50byIsIkZyb20iLCJEZWZhdWx0IiwiSXRlcmF0b3IiLCJFeHRlbmQiLCJJbnRvSXRlcmF0b3IiLCJEb3VibGVFbmRlZEl0ZXJhdG9yIiwiRXhhY3RTaXplSXRlcmF0b3IiLCJTbGljZUNvbmNhdEV4dCIsIlRvU3RyaW5nIiwiYXNzZXJ0ISIsImFzc2VydF9lcSEiLCJiaXRmbGFncyEiLCJieXRlcyEiLCJjZmchIiwiY29sISIsImNvbmNhdCEiLCJjb25jYXRfaWRlbnRzISIsImRlYnVnX2Fzc2VydCEiLCJkZWJ1Z19hc3NlcnRfZXEhIiwiZW52ISIsImVwcmludGxuISIsInBhbmljISIsImZpbGUhIiwiZm9ybWF0ISIsImZvcm1hdF9hcmdzISIsImluY2x1ZGVfYnl0ZXMhIiwiaW5jbHVkZV9zdHIhIiwibGluZSEiLCJsb2NhbF9kYXRhX2tleSEiLCJtb2R1bGVfcGF0aCEiLCJvcHRpb25fZW52ISIsInByaW50ISIsInByaW50bG4hIiwic2VsZWN0ISIsInN0cmluZ2lmeSEiLCJ0cnkhIiwidW5pbXBsZW1lbnRlZCEiLCJ1bnJlYWNoYWJsZSEiLCJ2ZWMhIiwid3JpdGUhIiwid3JpdGVsbiEiLCJtYWNyb19ydWxlcyEiLCJhc3NlcnRfbmUhIiwiZGVidWdfYXNzZXJ0X25lISJdLHI9WyJpOCIsImkxNiIsImkzMiIsImk2NCIsImkxMjgiLCJpc2l6ZSIsInU4IiwidTE2IiwidTMyIiwidTY0IiwidTEyOCIsInVzaXplIiwiZjMyIiwiZjY0Iiwic3RyIiwiY2hhciIsImJvb2wiLCJCb3giLCJPcHRpb24iLCJSZXN1bHQiLCJTdHJpbmciLCJWZWMiXQo7cmV0dXJue25hbWU6IlJ1c3QiLGFsaWFzZXM6WyJycyJdLGtleXdvcmRzOnskcGF0dGVybjplLklERU5UX1JFKyIhPyIsdHlwZTpyLAprZXl3b3JkOlsiYWJzdHJhY3QiLCJhcyIsImFzeW5jIiwiYXdhaXQiLCJiZWNvbWUiLCJib3giLCJicmVhayIsImNvbnN0IiwiY29udGludWUiLCJjcmF0ZSIsImRvIiwiZHluIiwiZWxzZSIsImVudW0iLCJleHRlcm4iLCJmYWxzZSIsImZpbmFsIiwiZm4iLCJmb3IiLCJpZiIsImltcGwiLCJpbiIsImxldCIsImxvb3AiLCJtYWNybyIsIm1hdGNoIiwibW9kIiwibW92ZSIsIm11dCIsIm92ZXJyaWRlIiwicHJpdiIsInB1YiIsInJlZiIsInJldHVybiIsInNlbGYiLCJTZWxmIiwic3RhdGljIiwic3RydWN0Iiwic3VwZXIiLCJ0cmFpdCIsInRydWUiLCJ0cnkiLCJ0eXBlIiwidHlwZW9mIiwidW5zYWZlIiwidW5zaXplZCIsInVzZSIsInZpcnR1YWwiLCJ3aGVyZSIsIndoaWxlIiwieWllbGQiXSwKbGl0ZXJhbDpbInRydWUiLCJmYWxzZSIsIlNvbWUiLCJOb25lIiwiT2siLCJFcnIiXSxidWlsdF9pbjppfSxpbGxlZ2FsOiI8LyIsCmNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DT01NRU5UKCIvXFwqIiwiXFwqLyIse2NvbnRhaW5zOlsic2VsZiJdCn0pLGUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtiZWdpbjovYj8iLyxpbGxlZ2FsOm51bGx9KSx7CmNsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi9iP3IoIyopIigufFxuKSo/IlwxKD8hIykvfSx7CmJlZ2luOi9iPydcXD8oeFx3ezJ9fHVcd3s0fXxVXHd7OH18LiknL31dfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLApiZWdpbjovJ1thLXpBLVpfXVthLXpBLVowLTlfXSovfSx7Y2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7CmJlZ2luOiJcXGIwYihbMDFfXSspIithfSx7YmVnaW46IlxcYjBvKFswLTdfXSspIithfSx7CmJlZ2luOiJcXGIweChbQS1GYS1mMC05X10rKSIrYX0sewpiZWdpbjoiXFxiKFxcZFtcXGRfXSooXFwuWzAtOV9dKyk/KFtlRV1bKy1dP1swLTlfXSspPykiK2F9XSxyZWxldmFuY2U6MH0sewpiZWdpbjpbL2ZuLywvXHMrLyxlLlVOREVSU0NPUkVfSURFTlRfUkVdLGNsYXNzTmFtZTp7MToia2V5d29yZCIsCjM6InRpdGxlLmZ1bmN0aW9uIn19LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiIjIT9cXFsiLGVuZDoiXFxdIixjb250YWluczpbewpjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIvLGVuZDovIi99XX0sewpiZWdpbjpbL2xldC8sL1xzKy8sLyg/Om11dFxzKyk/LyxlLlVOREVSU0NPUkVfSURFTlRfUkVdLGNsYXNzTmFtZTp7MToia2V5d29yZCIsCjM6ImtleXdvcmQiLDQ6InZhcmlhYmxlIn19LHsKYmVnaW46Wy9mb3IvLC9ccysvLGUuVU5ERVJTQ09SRV9JREVOVF9SRSwvXHMrLywvaW4vXSxjbGFzc05hbWU6ezE6ImtleXdvcmQiLAozOiJ2YXJpYWJsZSIsNToia2V5d29yZCJ9fSx7YmVnaW46Wy90eXBlLywvXHMrLyxlLlVOREVSU0NPUkVfSURFTlRfUkVdLApjbGFzc05hbWU6ezE6ImtleXdvcmQiLDM6InRpdGxlLmNsYXNzIn19LHsKYmVnaW46Wy8oPzp0cmFpdHxlbnVtfHN0cnVjdHx1bmlvbnxpbXBsfGZvcikvLC9ccysvLGUuVU5ERVJTQ09SRV9JREVOVF9SRV0sCmNsYXNzTmFtZTp7MToia2V5d29yZCIsMzoidGl0bGUuY2xhc3MifX0se2JlZ2luOmUuSURFTlRfUkUrIjo6IixrZXl3b3Jkczp7CmtleXdvcmQ6IlNlbGYiLGJ1aWx0X2luOmksdHlwZTpyfX0se2NsYXNzTmFtZToicHVuY3R1YXRpb24iLGJlZ2luOiItPiJ9LHRdfX0sCmdybXJfc2NzczplPT57Y29uc3Qgbj1pZShlKSx0PWxlLGE9b2UsaT0iQFthLXotXSsiLHI9e2NsYXNzTmFtZToidmFyaWFibGUiLApiZWdpbjoiKFxcJFthLXpBLVotXVthLXpBLVowLTlfLV0qKVxcYiIscmVsZXZhbmNlOjB9O3JldHVybntuYW1lOiJTQ1NTIiwKY2FzZV9pbnNlbnNpdGl2ZTohMCxpbGxlZ2FsOiJbPS98J10iLApjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsbi5DU1NfTlVNQkVSX01PREUsewpjbGFzc05hbWU6InNlbGVjdG9yLWlkIixiZWdpbjoiI1tBLVphLXowLTlfLV0rIixyZWxldmFuY2U6MH0sewpjbGFzc05hbWU6InNlbGVjdG9yLWNsYXNzIixiZWdpbjoiXFwuW0EtWmEtejAtOV8tXSsiLHJlbGV2YW5jZTowCn0sbi5BVFRSSUJVVEVfU0VMRUNUT1JfTU9ERSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci10YWciLApiZWdpbjoiXFxiKCIrcmUuam9pbigifCIpKyIpXFxiIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic2VsZWN0b3ItcHNldWRvIiwKYmVnaW46IjooIithLmpvaW4oInwiKSsiKSJ9LHtjbGFzc05hbWU6InNlbGVjdG9yLXBzZXVkbyIsCmJlZ2luOiI6KDopPygiK3Quam9pbigifCIpKyIpIn0scix7YmVnaW46L1woLyxlbmQ6L1wpLywKY29udGFpbnM6W24uQ1NTX05VTUJFUl9NT0RFXX0sbi5DU1NfVkFSSUFCTEUse2NsYXNzTmFtZToiYXR0cmlidXRlIiwKYmVnaW46IlxcYigiK2NlLmpvaW4oInwiKSsiKVxcYiJ9LHsKYmVnaW46IlxcYih3aGl0ZXNwYWNlfHdhaXR8dy1yZXNpemV8dmlzaWJsZXx2ZXJ0aWNhbC10ZXh0fHZlcnRpY2FsLWlkZW9ncmFwaGljfHVwcGVyY2FzZXx1cHBlci1yb21hbnx1cHBlci1hbHBoYXx1bmRlcmxpbmV8dHJhbnNwYXJlbnR8dG9wfHRoaW58dGhpY2t8dGV4dHx0ZXh0LXRvcHx0ZXh0LWJvdHRvbXx0Yi1ybHx0YWJsZS1oZWFkZXItZ3JvdXB8dGFibGUtZm9vdGVyLWdyb3VwfHN3LXJlc2l6ZXxzdXBlcnxzdHJpY3R8c3RhdGljfHNxdWFyZXxzb2xpZHxzbWFsbC1jYXBzfHNlcGFyYXRlfHNlLXJlc2l6ZXxzY3JvbGx8cy1yZXNpemV8cnRsfHJvdy1yZXNpemV8cmlkZ2V8cmlnaHR8cmVwZWF0fHJlcGVhdC15fHJlcGVhdC14fHJlbGF0aXZlfHByb2dyZXNzfHBvaW50ZXJ8b3ZlcmxpbmV8b3V0c2lkZXxvdXRzZXR8b2JsaXF1ZXxub3dyYXB8bm90LWFsbG93ZWR8bm9ybWFsfG5vbmV8bnctcmVzaXplfG5vLXJlcGVhdHxuby1kcm9wfG5ld3NwYXBlcnxuZS1yZXNpemV8bi1yZXNpemV8bW92ZXxtaWRkbGV8bWVkaXVtfGx0cnxsci10Ynxsb3dlcmNhc2V8bG93ZXItcm9tYW58bG93ZXItYWxwaGF8bG9vc2V8bGlzdC1pdGVtfGxpbmV8bGluZS10aHJvdWdofGxpbmUtZWRnZXxsaWdodGVyfGxlZnR8a2VlcC1hbGx8anVzdGlmeXxpdGFsaWN8aW50ZXItd29yZHxpbnRlci1pZGVvZ3JhcGh8aW5zaWRlfGluc2V0fGlubGluZXxpbmxpbmUtYmxvY2t8aW5oZXJpdHxpbmFjdGl2ZXxpZGVvZ3JhcGgtc3BhY2V8aWRlb2dyYXBoLXBhcmVudGhlc2lzfGlkZW9ncmFwaC1udW1lcmljfGlkZW9ncmFwaC1hbHBoYXxob3Jpem9udGFsfGhpZGRlbnxoZWxwfGhhbmR8Z3Jvb3ZlfGZpeGVkfGVsbGlwc2lzfGUtcmVzaXplfGRvdWJsZXxkb3R0ZWR8ZGlzdHJpYnV0ZXxkaXN0cmlidXRlLXNwYWNlfGRpc3RyaWJ1dGUtbGV0dGVyfGRpc3RyaWJ1dGUtYWxsLWxpbmVzfGRpc2N8ZGlzYWJsZWR8ZGVmYXVsdHxkZWNpbWFsfGRhc2hlZHxjcm9zc2hhaXJ8Y29sbGFwc2V8Y29sLXJlc2l6ZXxjaXJjbGV8Y2hhcnxjZW50ZXJ8Y2FwaXRhbGl6ZXxicmVhay13b3JkfGJyZWFrLWFsbHxib3R0b218Ym90aHxib2xkZXJ8Ym9sZHxibG9ja3xiaWRpLW92ZXJyaWRlfGJlbG93fGJhc2VsaW5lfGF1dG98YWx3YXlzfGFsbC1zY3JvbGx8YWJzb2x1dGV8dGFibGV8dGFibGUtY2VsbClcXGIiCn0se2JlZ2luOi86LyxlbmQ6L1s7fXtdLyxyZWxldmFuY2U6MCwKY29udGFpbnM6W24uQkxPQ0tfQ09NTUVOVCxyLG4uSEVYQ09MT1Isbi5DU1NfTlVNQkVSX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsbi5JTVBPUlRBTlQsbi5GVU5DVElPTl9ESVNQQVRDSF0KfSx7YmVnaW46IkAocGFnZXxmb250LWZhY2UpIixrZXl3b3Jkczp7JHBhdHRlcm46aSxrZXl3b3JkOiJAcGFnZSBAZm9udC1mYWNlIn19LHsKYmVnaW46IkAiLGVuZDoiW3s7XSIscmV0dXJuQmVnaW46ITAsa2V5d29yZHM6eyRwYXR0ZXJuOi9bYS16LV0rLywKa2V5d29yZDoiYW5kIG9yIG5vdCBvbmx5IixhdHRyaWJ1dGU6c2Uuam9pbigiICIpfSxjb250YWluczpbe2JlZ2luOmksCmNsYXNzTmFtZToia2V5d29yZCJ9LHtiZWdpbjovW2Etei1dKyg/PTopLyxjbGFzc05hbWU6ImF0dHJpYnV0ZSIKfSxyLGUuUVVPVEVfU1RSSU5HX01PREUsZS5BUE9TX1NUUklOR19NT0RFLG4uSEVYQ09MT1Isbi5DU1NfTlVNQkVSX01PREVdCn0sbi5GVU5DVElPTl9ESVNQQVRDSF19fSxncm1yX3NoZWxsOmU9Pih7bmFtZToiU2hlbGwgU2Vzc2lvbiIsCmFsaWFzZXM6WyJjb25zb2xlIiwic2hlbGxzZXNzaW9uIl0sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEucHJvbXB0IiwKYmVnaW46L15cc3swLDN9Wy9+XHdcZFtcXSgpQC1dKls+JSQjXVsgXT8vLHN0YXJ0czp7ZW5kOi9bXlxcXSg/PVxzKiQpLywKc3ViTGFuZ3VhZ2U6ImJhc2gifX1dfSksZ3Jtcl9zcWw6ZT0+ewpjb25zdCBuPWUucmVnZXgsdD1lLkNPTU1FTlQoIi0tIiwiJCIpLGE9WyJ0cnVlIiwiZmFsc2UiLCJ1bmtub3duIl0saT1bImJpZ2ludCIsImJpbmFyeSIsImJsb2IiLCJib29sZWFuIiwiY2hhciIsImNoYXJhY3RlciIsImNsb2IiLCJkYXRlIiwiZGVjIiwiZGVjZmxvYXQiLCJkZWNpbWFsIiwiZmxvYXQiLCJpbnQiLCJpbnRlZ2VyIiwiaW50ZXJ2YWwiLCJuY2hhciIsIm5jbG9iIiwibmF0aW9uYWwiLCJudW1lcmljIiwicmVhbCIsInJvdyIsInNtYWxsaW50IiwidGltZSIsInRpbWVzdGFtcCIsInZhcmNoYXIiLCJ2YXJ5aW5nIiwidmFyYmluYXJ5Il0scj1bImFicyIsImFjb3MiLCJhcnJheV9hZ2ciLCJhc2luIiwiYXRhbiIsImF2ZyIsImNhc3QiLCJjZWlsIiwiY2VpbGluZyIsImNvYWxlc2NlIiwiY29yciIsImNvcyIsImNvc2giLCJjb3VudCIsImNvdmFyX3BvcCIsImNvdmFyX3NhbXAiLCJjdW1lX2Rpc3QiLCJkZW5zZV9yYW5rIiwiZGVyZWYiLCJlbGVtZW50IiwiZXhwIiwiZXh0cmFjdCIsImZpcnN0X3ZhbHVlIiwiZmxvb3IiLCJqc29uX2FycmF5IiwianNvbl9hcnJheWFnZyIsImpzb25fZXhpc3RzIiwianNvbl9vYmplY3QiLCJqc29uX29iamVjdGFnZyIsImpzb25fcXVlcnkiLCJqc29uX3RhYmxlIiwianNvbl90YWJsZV9wcmltaXRpdmUiLCJqc29uX3ZhbHVlIiwibGFnIiwibGFzdF92YWx1ZSIsImxlYWQiLCJsaXN0YWdnIiwibG4iLCJsb2ciLCJsb2cxMCIsImxvd2VyIiwibWF4IiwibWluIiwibW9kIiwibnRoX3ZhbHVlIiwibnRpbGUiLCJudWxsaWYiLCJwZXJjZW50X3JhbmsiLCJwZXJjZW50aWxlX2NvbnQiLCJwZXJjZW50aWxlX2Rpc2MiLCJwb3NpdGlvbiIsInBvc2l0aW9uX3JlZ2V4IiwicG93ZXIiLCJyYW5rIiwicmVncl9hdmd4IiwicmVncl9hdmd5IiwicmVncl9jb3VudCIsInJlZ3JfaW50ZXJjZXB0IiwicmVncl9yMiIsInJlZ3Jfc2xvcGUiLCJyZWdyX3N4eCIsInJlZ3Jfc3h5IiwicmVncl9zeXkiLCJyb3dfbnVtYmVyIiwic2luIiwic2luaCIsInNxcnQiLCJzdGRkZXZfcG9wIiwic3RkZGV2X3NhbXAiLCJzdWJzdHJpbmciLCJzdWJzdHJpbmdfcmVnZXgiLCJzdW0iLCJ0YW4iLCJ0YW5oIiwidHJhbnNsYXRlIiwidHJhbnNsYXRlX3JlZ2V4IiwidHJlYXQiLCJ0cmltIiwidHJpbV9hcnJheSIsInVubmVzdCIsInVwcGVyIiwidmFsdWVfb2YiLCJ2YXJfcG9wIiwidmFyX3NhbXAiLCJ3aWR0aF9idWNrZXQiXSxzPVsiY3JlYXRlIHRhYmxlIiwiaW5zZXJ0IGludG8iLCJwcmltYXJ5IGtleSIsImZvcmVpZ24ga2V5Iiwibm90IG51bGwiLCJhbHRlciB0YWJsZSIsImFkZCBjb25zdHJhaW50IiwiZ3JvdXBpbmcgc2V0cyIsIm9uIG92ZXJmbG93IiwiY2hhcmFjdGVyIHNldCIsInJlc3BlY3QgbnVsbHMiLCJpZ25vcmUgbnVsbHMiLCJudWxscyBmaXJzdCIsIm51bGxzIGxhc3QiLCJkZXB0aCBmaXJzdCIsImJyZWFkdGggZmlyc3QiXSxvPXIsbD1bImFicyIsImFjb3MiLCJhbGwiLCJhbGxvY2F0ZSIsImFsdGVyIiwiYW5kIiwiYW55IiwiYXJlIiwiYXJyYXkiLCJhcnJheV9hZ2ciLCJhcnJheV9tYXhfY2FyZGluYWxpdHkiLCJhcyIsImFzZW5zaXRpdmUiLCJhc2luIiwiYXN5bW1ldHJpYyIsImF0IiwiYXRhbiIsImF0b21pYyIsImF1dGhvcml6YXRpb24iLCJhdmciLCJiZWdpbiIsImJlZ2luX2ZyYW1lIiwiYmVnaW5fcGFydGl0aW9uIiwiYmV0d2VlbiIsImJpZ2ludCIsImJpbmFyeSIsImJsb2IiLCJib29sZWFuIiwiYm90aCIsImJ5IiwiY2FsbCIsImNhbGxlZCIsImNhcmRpbmFsaXR5IiwiY2FzY2FkZWQiLCJjYXNlIiwiY2FzdCIsImNlaWwiLCJjZWlsaW5nIiwiY2hhciIsImNoYXJfbGVuZ3RoIiwiY2hhcmFjdGVyIiwiY2hhcmFjdGVyX2xlbmd0aCIsImNoZWNrIiwiY2xhc3NpZmllciIsImNsb2IiLCJjbG9zZSIsImNvYWxlc2NlIiwiY29sbGF0ZSIsImNvbGxlY3QiLCJjb2x1bW4iLCJjb21taXQiLCJjb25kaXRpb24iLCJjb25uZWN0IiwiY29uc3RyYWludCIsImNvbnRhaW5zIiwiY29udmVydCIsImNvcHkiLCJjb3JyIiwiY29ycmVzcG9uZGluZyIsImNvcyIsImNvc2giLCJjb3VudCIsImNvdmFyX3BvcCIsImNvdmFyX3NhbXAiLCJjcmVhdGUiLCJjcm9zcyIsImN1YmUiLCJjdW1lX2Rpc3QiLCJjdXJyZW50IiwiY3VycmVudF9jYXRhbG9nIiwiY3VycmVudF9kYXRlIiwiY3VycmVudF9kZWZhdWx0X3RyYW5zZm9ybV9ncm91cCIsImN1cnJlbnRfcGF0aCIsImN1cnJlbnRfcm9sZSIsImN1cnJlbnRfcm93IiwiY3VycmVudF9zY2hlbWEiLCJjdXJyZW50X3RpbWUiLCJjdXJyZW50X3RpbWVzdGFtcCIsImN1cnJlbnRfcGF0aCIsImN1cnJlbnRfcm9sZSIsImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlIiwiY3VycmVudF91c2VyIiwiY3Vyc29yIiwiY3ljbGUiLCJkYXRlIiwiZGF5IiwiZGVhbGxvY2F0ZSIsImRlYyIsImRlY2ltYWwiLCJkZWNmbG9hdCIsImRlY2xhcmUiLCJkZWZhdWx0IiwiZGVmaW5lIiwiZGVsZXRlIiwiZGVuc2VfcmFuayIsImRlcmVmIiwiZGVzY3JpYmUiLCJkZXRlcm1pbmlzdGljIiwiZGlzY29ubmVjdCIsImRpc3RpbmN0IiwiZG91YmxlIiwiZHJvcCIsImR5bmFtaWMiLCJlYWNoIiwiZWxlbWVudCIsImVsc2UiLCJlbXB0eSIsImVuZCIsImVuZF9mcmFtZSIsImVuZF9wYXJ0aXRpb24iLCJlbmQtZXhlYyIsImVxdWFscyIsImVzY2FwZSIsImV2ZXJ5IiwiZXhjZXB0IiwiZXhlYyIsImV4ZWN1dGUiLCJleGlzdHMiLCJleHAiLCJleHRlcm5hbCIsImV4dHJhY3QiLCJmYWxzZSIsImZldGNoIiwiZmlsdGVyIiwiZmlyc3RfdmFsdWUiLCJmbG9hdCIsImZsb29yIiwiZm9yIiwiZm9yZWlnbiIsImZyYW1lX3JvdyIsImZyZWUiLCJmcm9tIiwiZnVsbCIsImZ1bmN0aW9uIiwiZnVzaW9uIiwiZ2V0IiwiZ2xvYmFsIiwiZ3JhbnQiLCJncm91cCIsImdyb3VwaW5nIiwiZ3JvdXBzIiwiaGF2aW5nIiwiaG9sZCIsImhvdXIiLCJpZGVudGl0eSIsImluIiwiaW5kaWNhdG9yIiwiaW5pdGlhbCIsImlubmVyIiwiaW5vdXQiLCJpbnNlbnNpdGl2ZSIsImluc2VydCIsImludCIsImludGVnZXIiLCJpbnRlcnNlY3QiLCJpbnRlcnNlY3Rpb24iLCJpbnRlcnZhbCIsImludG8iLCJpcyIsImpvaW4iLCJqc29uX2FycmF5IiwianNvbl9hcnJheWFnZyIsImpzb25fZXhpc3RzIiwianNvbl9vYmplY3QiLCJqc29uX29iamVjdGFnZyIsImpzb25fcXVlcnkiLCJqc29uX3RhYmxlIiwianNvbl90YWJsZV9wcmltaXRpdmUiLCJqc29uX3ZhbHVlIiwibGFnIiwibGFuZ3VhZ2UiLCJsYXJnZSIsImxhc3RfdmFsdWUiLCJsYXRlcmFsIiwibGVhZCIsImxlYWRpbmciLCJsZWZ0IiwibGlrZSIsImxpa2VfcmVnZXgiLCJsaXN0YWdnIiwibG4iLCJsb2NhbCIsImxvY2FsdGltZSIsImxvY2FsdGltZXN0YW1wIiwibG9nIiwibG9nMTAiLCJsb3dlciIsIm1hdGNoIiwibWF0Y2hfbnVtYmVyIiwibWF0Y2hfcmVjb2duaXplIiwibWF0Y2hlcyIsIm1heCIsIm1lbWJlciIsIm1lcmdlIiwibWV0aG9kIiwibWluIiwibWludXRlIiwibW9kIiwibW9kaWZpZXMiLCJtb2R1bGUiLCJtb250aCIsIm11bHRpc2V0IiwibmF0aW9uYWwiLCJuYXR1cmFsIiwibmNoYXIiLCJuY2xvYiIsIm5ldyIsIm5vIiwibm9uZSIsIm5vcm1hbGl6ZSIsIm5vdCIsIm50aF92YWx1ZSIsIm50aWxlIiwibnVsbCIsIm51bGxpZiIsIm51bWVyaWMiLCJvY3RldF9sZW5ndGgiLCJvY2N1cnJlbmNlc19yZWdleCIsIm9mIiwib2Zmc2V0Iiwib2xkIiwib21pdCIsIm9uIiwib25lIiwib25seSIsIm9wZW4iLCJvciIsIm9yZGVyIiwib3V0Iiwib3V0ZXIiLCJvdmVyIiwib3ZlcmxhcHMiLCJvdmVybGF5IiwicGFyYW1ldGVyIiwicGFydGl0aW9uIiwicGF0dGVybiIsInBlciIsInBlcmNlbnQiLCJwZXJjZW50X3JhbmsiLCJwZXJjZW50aWxlX2NvbnQiLCJwZXJjZW50aWxlX2Rpc2MiLCJwZXJpb2QiLCJwb3J0aW9uIiwicG9zaXRpb24iLCJwb3NpdGlvbl9yZWdleCIsInBvd2VyIiwicHJlY2VkZXMiLCJwcmVjaXNpb24iLCJwcmVwYXJlIiwicHJpbWFyeSIsInByb2NlZHVyZSIsInB0ZiIsInJhbmdlIiwicmFuayIsInJlYWRzIiwicmVhbCIsInJlY3Vyc2l2ZSIsInJlZiIsInJlZmVyZW5jZXMiLCJyZWZlcmVuY2luZyIsInJlZ3JfYXZneCIsInJlZ3JfYXZneSIsInJlZ3JfY291bnQiLCJyZWdyX2ludGVyY2VwdCIsInJlZ3JfcjIiLCJyZWdyX3Nsb3BlIiwicmVncl9zeHgiLCJyZWdyX3N4eSIsInJlZ3Jfc3l5IiwicmVsZWFzZSIsInJlc3VsdCIsInJldHVybiIsInJldHVybnMiLCJyZXZva2UiLCJyaWdodCIsInJvbGxiYWNrIiwicm9sbHVwIiwicm93Iiwicm93X251bWJlciIsInJvd3MiLCJydW5uaW5nIiwic2F2ZXBvaW50Iiwic2NvcGUiLCJzY3JvbGwiLCJzZWFyY2giLCJzZWNvbmQiLCJzZWVrIiwic2VsZWN0Iiwic2Vuc2l0aXZlIiwic2Vzc2lvbl91c2VyIiwic2V0Iiwic2hvdyIsInNpbWlsYXIiLCJzaW4iLCJzaW5oIiwic2tpcCIsInNtYWxsaW50Iiwic29tZSIsInNwZWNpZmljIiwic3BlY2lmaWN0eXBlIiwic3FsIiwic3FsZXhjZXB0aW9uIiwic3Fsc3RhdGUiLCJzcWx3YXJuaW5nIiwic3FydCIsInN0YXJ0Iiwic3RhdGljIiwic3RkZGV2X3BvcCIsInN0ZGRldl9zYW1wIiwic3VibXVsdGlzZXQiLCJzdWJzZXQiLCJzdWJzdHJpbmciLCJzdWJzdHJpbmdfcmVnZXgiLCJzdWNjZWVkcyIsInN1bSIsInN5bW1ldHJpYyIsInN5c3RlbSIsInN5c3RlbV90aW1lIiwic3lzdGVtX3VzZXIiLCJ0YWJsZSIsInRhYmxlc2FtcGxlIiwidGFuIiwidGFuaCIsInRoZW4iLCJ0aW1lIiwidGltZXN0YW1wIiwidGltZXpvbmVfaG91ciIsInRpbWV6b25lX21pbnV0ZSIsInRvIiwidHJhaWxpbmciLCJ0cmFuc2xhdGUiLCJ0cmFuc2xhdGVfcmVnZXgiLCJ0cmFuc2xhdGlvbiIsInRyZWF0IiwidHJpZ2dlciIsInRyaW0iLCJ0cmltX2FycmF5IiwidHJ1ZSIsInRydW5jYXRlIiwidWVzY2FwZSIsInVuaW9uIiwidW5pcXVlIiwidW5rbm93biIsInVubmVzdCIsInVwZGF0ZSIsInVwcGVyIiwidXNlciIsInVzaW5nIiwidmFsdWUiLCJ2YWx1ZXMiLCJ2YWx1ZV9vZiIsInZhcl9wb3AiLCJ2YXJfc2FtcCIsInZhcmJpbmFyeSIsInZhcmNoYXIiLCJ2YXJ5aW5nIiwidmVyc2lvbmluZyIsIndoZW4iLCJ3aGVuZXZlciIsIndoZXJlIiwid2lkdGhfYnVja2V0Iiwid2luZG93Iiwid2l0aCIsIndpdGhpbiIsIndpdGhvdXQiLCJ5ZWFyIiwiYWRkIiwiYXNjIiwiY29sbGF0aW9uIiwiZGVzYyIsImZpbmFsIiwiZmlyc3QiLCJsYXN0IiwidmlldyJdLmZpbHRlcigoZT0+IXIuaW5jbHVkZXMoZSkpKSxjPXsKYmVnaW46bi5jb25jYXQoL1xiLyxuLmVpdGhlciguLi5vKSwvXHMqXCgvKSxyZWxldmFuY2U6MCxrZXl3b3Jkczp7YnVpbHRfaW46b319CjtyZXR1cm57bmFtZToiU1FMIixjYXNlX2luc2Vuc2l0aXZlOiEwLGlsbGVnYWw6L1t7fV18PFwvLyxrZXl3b3Jkczp7CiRwYXR0ZXJuOi9cYltcd1wuXSsvLGtleXdvcmQ6KChlLHtleGNlcHRpb25zOm4sd2hlbjp0fT17fSk9Pntjb25zdCBhPXQKO3JldHVybiBuPW58fFtdLGUubWFwKChlPT5lLm1hdGNoKC9cfFxkKyQvKXx8bi5pbmNsdWRlcyhlKT9lOmEoZSk/ZSsifDAiOmUpKQp9KShsLHt3aGVuOmU9PmUubGVuZ3RoPDN9KSxsaXRlcmFsOmEsdHlwZTppLApidWlsdF9pbjpbImN1cnJlbnRfY2F0YWxvZyIsImN1cnJlbnRfZGF0ZSIsImN1cnJlbnRfZGVmYXVsdF90cmFuc2Zvcm1fZ3JvdXAiLCJjdXJyZW50X3BhdGgiLCJjdXJyZW50X3JvbGUiLCJjdXJyZW50X3NjaGVtYSIsImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlIiwiY3VycmVudF91c2VyIiwic2Vzc2lvbl91c2VyIiwic3lzdGVtX3RpbWUiLCJzeXN0ZW1fdXNlciIsImN1cnJlbnRfdGltZSIsImxvY2FsdGltZSIsImN1cnJlbnRfdGltZXN0YW1wIiwibG9jYWx0aW1lc3RhbXAiXQp9LGNvbnRhaW5zOlt7YmVnaW46bi5laXRoZXIoLi4ucykscmVsZXZhbmNlOjAsa2V5d29yZHM6eyRwYXR0ZXJuOi9bXHdcLl0rLywKa2V5d29yZDpsLmNvbmNhdChzKSxsaXRlcmFsOmEsdHlwZTppfX0se2NsYXNzTmFtZToidHlwZSIsCmJlZ2luOm4uZWl0aGVyKCJkb3VibGUgcHJlY2lzaW9uIiwibGFyZ2Ugb2JqZWN0Iiwid2l0aCB0aW1lem9uZSIsIndpdGhvdXQgdGltZXpvbmUiKQp9LGMse2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi9AW2EtejAtOV1bYS16MC05X10qL30se2NsYXNzTmFtZToic3RyaW5nIiwKdmFyaWFudHM6W3tiZWdpbjovJy8sZW5kOi8nLyxjb250YWluczpbe2JlZ2luOi8nJy99XX1dfSx7YmVnaW46LyIvLGVuZDovIi8sCmNvbnRhaW5zOlt7YmVnaW46LyIiL31dfSxlLkNfTlVNQkVSX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx0LHsKY2xhc3NOYW1lOiJvcGVyYXRvciIsYmVnaW46L1stKyovPSVefl18JiY/fFx8XHw/fCE9P3w8KD86PT4/fDx8Pik/fD5bPj1dPy8sCnJlbGV2YW5jZTowfV19fSxncm1yX3N3aWZ0OmU9Pntjb25zdCBuPXttYXRjaDovXHMrLyxyZWxldmFuY2U6MAp9LHQ9ZS5DT01NRU5UKCIvXFwqIiwiXFwqLyIse2NvbnRhaW5zOlsic2VsZiJdfSksYT1bZS5DX0xJTkVfQ09NTUVOVF9NT0RFLHRdLGk9ewptYXRjaDpbL1wuLyxtKC4uLnhlLC4uLk1lKV0sY2xhc3NOYW1lOnsyOiJrZXl3b3JkIn19LHI9e21hdGNoOmIoL1wuLyxtKC4uLkFlKSksCnJlbGV2YW5jZTowfSxzPUFlLmZpbHRlcigoZT0+InN0cmluZyI9PXR5cGVvZiBlKSkuY29uY2F0KFsiX3wwIl0pLG89e3ZhcmlhbnRzOlt7CmNsYXNzTmFtZToia2V5d29yZCIsCm1hdGNoOm0oLi4uQWUuZmlsdGVyKChlPT4ic3RyaW5nIiE9dHlwZW9mIGUpKS5jb25jYXQoU2UpLm1hcChrZSksLi4uTWUpfV19LGw9ewokcGF0dGVybjptKC9cYlx3Ky8sLyNcdysvKSxrZXl3b3JkOnMuY29uY2F0KFJlKSxsaXRlcmFsOkNlfSxjPVtpLHIsb10sZz1bewptYXRjaDpiKC9cLi8sbSguLi5EZSkpLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJidWlsdF9pbiIsCm1hdGNoOmIoL1xiLyxtKC4uLkRlKSwvKD89XCgpLyl9XSx1PXttYXRjaDovLT4vLHJlbGV2YW5jZTowfSxwPVt1LHsKY2xhc3NOYW1lOiJvcGVyYXRvciIscmVsZXZhbmNlOjAsdmFyaWFudHM6W3ttYXRjaDpCZX0se21hdGNoOmBcXC4oXFwufCR7TGV9KStgfV0KfV0sXz0iKFswLTldXyopKyIsaD0iKFswLTlhLWZBLUZdXyopKyIsZj17Y2xhc3NOYW1lOiJudW1iZXIiLHJlbGV2YW5jZTowLAp2YXJpYW50czpbe21hdGNoOmBcXGIoJHtffSkoXFwuKCR7X30pKT8oW2VFXVsrLV0/KCR7X30pKT9cXGJgfSx7Cm1hdGNoOmBcXGIweCgke2h9KShcXC4oJHtofSkpPyhbcFBdWystXT8oJHtffSkpP1xcYmB9LHttYXRjaDovXGIwbyhbMC03XV8qKStcYi8KfSx7bWF0Y2g6L1xiMGIoWzAxXV8qKStcYi99XX0sRT0oZT0iIik9Pih7Y2xhc3NOYW1lOiJzdWJzdCIsdmFyaWFudHM6W3sKbWF0Y2g6YigvXFwvLGUsL1swXFx0bnIiJ10vKX0se21hdGNoOmIoL1xcLyxlLC91XHtbMC05YS1mQS1GXXsxLDh9XH0vKX1dCn0pLHk9KGU9IiIpPT4oe2NsYXNzTmFtZToic3Vic3QiLG1hdGNoOmIoL1xcLyxlLC9bXHQgXSooPzpbXHJcbl18XHJcbikvKQp9KSxOPShlPSIiKT0+KHtjbGFzc05hbWU6InN1YnN0IixsYWJlbDoiaW50ZXJwb2wiLGJlZ2luOmIoL1xcLyxlLC9cKC8pLGVuZDovXCkvCn0pLHc9KGU9IiIpPT4oe2JlZ2luOmIoZSwvIiIiLyksZW5kOmIoLyIiIi8sZSksY29udGFpbnM6W0UoZSkseShlKSxOKGUpXQp9KSx2PShlPSIiKT0+KHtiZWdpbjpiKGUsLyIvKSxlbmQ6YigvIi8sZSksY29udGFpbnM6W0UoZSksTihlKV19KSxPPXsKY2xhc3NOYW1lOiJzdHJpbmciLAp2YXJpYW50czpbdygpLHcoIiMiKSx3KCIjIyIpLHcoIiMjIyIpLHYoKSx2KCIjIiksdigiIyMiKSx2KCIjIyMiKV0KfSxrPVtlLkJBQ0tTTEFTSF9FU0NBUEUse2JlZ2luOi9cWy8sZW5kOi9cXS8scmVsZXZhbmNlOjAsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfV0seD17YmVnaW46L1wvW15cc10oPz1bXi9cbl0qXC8pLyxlbmQ6L1wvLywKY29udGFpbnM6a30sTT1lPT57Y29uc3Qgbj1iKGUsL1wvLyksdD1iKC9cLy8sZSk7cmV0dXJue2JlZ2luOm4sZW5kOnQsCmNvbnRhaW5zOlsuLi5rLHtzY29wZToiY29tbWVudCIsYmVnaW46YCMoPyEuKiR7dH0pYCxlbmQ6LyQvfV19fSxTPXsKc2NvcGU6InJlZ2V4cCIsdmFyaWFudHM6W00oIiMjIyIpLE0oIiMjIiksTSgiIyIpLHhdfSxBPXttYXRjaDpiKC9gLyxGZSwvYC8pCn0sQz1bQSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsbWF0Y2g6L1wkXGQrL30se2NsYXNzTmFtZToidmFyaWFibGUiLAptYXRjaDpgXFwkJHt6ZX0rYH1dLFQ9W3ttYXRjaDovKEB8Iyh1bik/KWF2YWlsYWJsZS8sc2NvcGU6ImtleXdvcmQiLHN0YXJ0czp7CmNvbnRhaW5zOlt7YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpQZSxjb250YWluczpbLi4ucCxmLE9dfV19fSx7CnNjb3BlOiJrZXl3b3JkIixtYXRjaDpiKC9ALyxtKC4uLmplKSl9LHtzY29wZToibWV0YSIsbWF0Y2g6YigvQC8sRmUpfV0sUj17Cm1hdGNoOmQoL1xiW0EtWl0vKSxyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToidHlwZSIsCm1hdGNoOmIoLyhBVnxDQXxDRnxDR3xDSXxDTHxDTXxDTnxDVHxNS3xNUHxNVEt8TVRMfE5TfFNDTnxTS3xVSXxXS3xYQykvLHplLCIrIikKfSx7Y2xhc3NOYW1lOiJ0eXBlIixtYXRjaDpVZSxyZWxldmFuY2U6MH0se21hdGNoOi9bPyFdKy8scmVsZXZhbmNlOjB9LHsKbWF0Y2g6L1wuXC5cLi8scmVsZXZhbmNlOjB9LHttYXRjaDpiKC9ccysmXHMrLyxkKFVlKSkscmVsZXZhbmNlOjB9XX0sRD17CmJlZ2luOi88LyxlbmQ6Lz4vLGtleXdvcmRzOmwsY29udGFpbnM6Wy4uLmEsLi4uYywuLi5ULHUsUl19O1IuY29udGFpbnMucHVzaChEKQo7Y29uc3QgST17YmVnaW46L1woLyxlbmQ6L1wpLyxyZWxldmFuY2U6MCxrZXl3b3JkczpsLGNvbnRhaW5zOlsic2VsZiIsewptYXRjaDpiKEZlLC9ccyo6Lyksa2V5d29yZHM6Il98MCIscmVsZXZhbmNlOjAKfSwuLi5hLFMsLi4uYywuLi5nLC4uLnAsZixPLC4uLkMsLi4uVCxSXX0sTD17YmVnaW46LzwvLGVuZDovPi8sCmtleXdvcmRzOiJyZXBlYXQgZWFjaCIsY29udGFpbnM6Wy4uLmEsUl19LEI9e2JlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6bCwKY29udGFpbnM6W3tiZWdpbjptKGQoYihGZSwvXHMqOi8pKSxkKGIoRmUsL1xzKy8sRmUsL1xzKjovKSkpLGVuZDovOi8sCnJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIixtYXRjaDovXGJfXGIvfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLAptYXRjaDpGZX1dfSwuLi5hLC4uLmMsLi4ucCxmLE8sLi4uVCxSLEldLGVuZHNQYXJlbnQ6ITAsaWxsZWdhbDovWyInXS99LCQ9ewptYXRjaDpbLyhmdW5jfG1hY3JvKS8sL1xzKy8sbShBLm1hdGNoLEZlLEJlKV0sY2xhc3NOYW1lOnsxOiJrZXl3b3JkIiwKMzoidGl0bGUuZnVuY3Rpb24ifSxjb250YWluczpbTCxCLG5dLGlsbGVnYWw6Wy9cWy8sLyUvXX0sej17Cm1hdGNoOlsvXGIoPzpzdWJzY3JpcHR8aW5pdFs/IV0/KS8sL1xzKig/PVs8KF0pL10sY2xhc3NOYW1lOnsxOiJrZXl3b3JkIn0sCmNvbnRhaW5zOltMLEIsbl0saWxsZWdhbDovXFt8JS99LEY9e21hdGNoOlsvb3BlcmF0b3IvLC9ccysvLEJlXSxjbGFzc05hbWU6ewoxOiJrZXl3b3JkIiwzOiJ0aXRsZSJ9fSxVPXtiZWdpbjpbL3ByZWNlZGVuY2Vncm91cC8sL1xzKy8sVWVdLGNsYXNzTmFtZTp7CjE6ImtleXdvcmQiLDM6InRpdGxlIn0sY29udGFpbnM6W1JdLGtleXdvcmRzOlsuLi5UZSwuLi5DZV0sZW5kOi99L30KO2Zvcihjb25zdCBlIG9mIE8udmFyaWFudHMpe2NvbnN0IG49ZS5jb250YWlucy5maW5kKChlPT4iaW50ZXJwb2wiPT09ZS5sYWJlbCkpCjtuLmtleXdvcmRzPWw7Y29uc3QgdD1bLi4uYywuLi5nLC4uLnAsZixPLC4uLkNdO24uY29udGFpbnM9Wy4uLnQse2JlZ2luOi9cKC8sCmVuZDovXCkvLGNvbnRhaW5zOlsic2VsZiIsLi4udF19XX1yZXR1cm57bmFtZToiU3dpZnQiLGtleXdvcmRzOmwsCmNvbnRhaW5zOlsuLi5hLCQseix7YmVnaW5LZXl3b3Jkczoic3RydWN0IHByb3RvY29sIGNsYXNzIGV4dGVuc2lvbiBlbnVtIGFjdG9yIiwKZW5kOiJcXHsiLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6bCxjb250YWluczpbZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7CmNsYXNzTmFtZToidGl0bGUuY2xhc3MiLGJlZ2luOi9bQS1aYS16JF9dW1x1MDBDMC1cdTAyQjgwLTlBLVphLXokX10qL30pLC4uLmNdCn0sRixVLHtiZWdpbktleXdvcmRzOiJpbXBvcnQiLGVuZDovJC8sY29udGFpbnM6Wy4uLmFdLHJlbGV2YW5jZTowCn0sUywuLi5jLC4uLmcsLi4ucCxmLE8sLi4uQywuLi5ULFIsSV19fSxncm1yX3R5cGVzY3JpcHQ6ZT0+ewpjb25zdCBuPU9lKGUpLHQ9X2UsYT1bImFueSIsInZvaWQiLCJudW1iZXIiLCJib29sZWFuIiwic3RyaW5nIiwib2JqZWN0IiwibmV2ZXIiLCJzeW1ib2wiLCJiaWdpbnQiLCJ1bmtub3duIl0saT17CmJlZ2luS2V5d29yZHM6Im5hbWVzcGFjZSIsZW5kOi9cey8sZXhjbHVkZUVuZDohMCwKY29udGFpbnM6W24uZXhwb3J0cy5DTEFTU19SRUZFUkVOQ0VdfSxyPXtiZWdpbktleXdvcmRzOiJpbnRlcmZhY2UiLGVuZDovXHsvLApleGNsdWRlRW5kOiEwLGtleXdvcmRzOntrZXl3b3JkOiJpbnRlcmZhY2UgZXh0ZW5kcyIsYnVpbHRfaW46YX0sCmNvbnRhaW5zOltuLmV4cG9ydHMuQ0xBU1NfUkVGRVJFTkNFXX0scz17JHBhdHRlcm46X2UsCmtleXdvcmQ6aGUuY29uY2F0KFsidHlwZSIsIm5hbWVzcGFjZSIsImludGVyZmFjZSIsInB1YmxpYyIsInByaXZhdGUiLCJwcm90ZWN0ZWQiLCJpbXBsZW1lbnRzIiwiZGVjbGFyZSIsImFic3RyYWN0IiwicmVhZG9ubHkiLCJlbnVtIiwib3ZlcnJpZGUiXSksCmxpdGVyYWw6ZmUsYnVpbHRfaW46dmUuY29uY2F0KGEpLCJ2YXJpYWJsZS5sYW5ndWFnZSI6d2V9LG89e2NsYXNzTmFtZToibWV0YSIsCmJlZ2luOiJAIit0fSxsPShlLG4sdCk9Pntjb25zdCBhPWUuY29udGFpbnMuZmluZEluZGV4KChlPT5lLmxhYmVsPT09bikpCjtpZigtMT09PWEpdGhyb3cgRXJyb3IoImNhbiBub3QgZmluZCBtb2RlIHRvIHJlcGxhY2UiKTtlLmNvbnRhaW5zLnNwbGljZShhLDEsdCl9CjtyZXR1cm4gT2JqZWN0LmFzc2lnbihuLmtleXdvcmRzLHMpLApuLmV4cG9ydHMuUEFSQU1TX0NPTlRBSU5TLnB1c2gobyksbi5jb250YWlucz1uLmNvbnRhaW5zLmNvbmNhdChbbyxpLHJdKSwKbChuLCJzaGViYW5nIixlLlNIRUJBTkcoKSksbChuLCJ1c2Vfc3RyaWN0Iix7Y2xhc3NOYW1lOiJtZXRhIixyZWxldmFuY2U6MTAsCmJlZ2luOi9eXHMqWyciXXVzZSBzdHJpY3RbJyJdLwp9KSxuLmNvbnRhaW5zLmZpbmQoKGU9PiJmdW5jLmRlZiI9PT1lLmxhYmVsKSkucmVsZXZhbmNlPTAsT2JqZWN0LmFzc2lnbihuLHsKbmFtZToiVHlwZVNjcmlwdCIsYWxpYXNlczpbInRzIiwidHN4IiwibXRzIiwiY3RzIl19KSxufSxncm1yX3ZibmV0OmU9PnsKY29uc3Qgbj1lLnJlZ2V4LHQ9L1xkezEsMn1cL1xkezEsMn1cL1xkezR9LyxhPS9cZHs0fS1cZHsxLDJ9LVxkezEsMn0vLGk9LyhcZHwxWzAxMl0pKDpcZCspezAsMn0gKihBTXxQTSkvLHI9L1xkezEsMn0oOlxkezEsMn0pezEsMn0vLHM9ewpjbGFzc05hbWU6ImxpdGVyYWwiLHZhcmlhbnRzOlt7YmVnaW46bi5jb25jYXQoLyMgKi8sbi5laXRoZXIoYSx0KSwvICojLyl9LHsKYmVnaW46bi5jb25jYXQoLyMgKi8sciwvICojLyl9LHtiZWdpbjpuLmNvbmNhdCgvIyAqLyxpLC8gKiMvKX0sewpiZWdpbjpuLmNvbmNhdCgvIyAqLyxuLmVpdGhlcihhLHQpLC8gKy8sbi5laXRoZXIoaSxyKSwvICojLyl9XQp9LG89ZS5DT01NRU5UKC8nJycvLC8kLyx7Y29udGFpbnM6W3tjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46LzxcLz8vLGVuZDovPi99XQp9KSxsPWUuQ09NTUVOVChudWxsLC8kLyx7dmFyaWFudHM6W3tiZWdpbjovJy99LHtiZWdpbjovKFtcdCBdfF4pUkVNKD89XHMpL31dfSkKO3JldHVybntuYW1lOiJWaXN1YWwgQmFzaWMgLk5FVCIsYWxpYXNlczpbInZiIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCwKY2xhc3NOYW1lQWxpYXNlczp7bGFiZWw6InN5bWJvbCJ9LGtleXdvcmRzOnsKa2V5d29yZDoiYWRkaGFuZGxlciBhbGlhcyBhZ2dyZWdhdGUgYW5zaSBhcyBhc3luYyBhc3NlbWJseSBhdXRvIGJpbmFyeSBieSBieXJlZiBieXZhbCBjYWxsIGNhc2UgY2F0Y2ggY2xhc3MgY29tcGFyZSBjb25zdCBjb250aW51ZSBjdXN0b20gZGVjbGFyZSBkZWZhdWx0IGRlbGVnYXRlIGRpbSBkaXN0aW5jdCBkbyBlYWNoIGVxdWFscyBlbHNlIGVsc2VpZiBlbmQgZW51bSBlcmFzZSBlcnJvciBldmVudCBleGl0IGV4cGxpY2l0IGZpbmFsbHkgZm9yIGZyaWVuZCBmcm9tIGZ1bmN0aW9uIGdldCBnbG9iYWwgZ290byBncm91cCBoYW5kbGVzIGlmIGltcGxlbWVudHMgaW1wb3J0cyBpbiBpbmhlcml0cyBpbnRlcmZhY2UgaW50byBpdGVyYXRvciBqb2luIGtleSBsZXQgbGliIGxvb3AgbWUgbWlkIG1vZHVsZSBtdXN0aW5oZXJpdCBtdXN0b3ZlcnJpZGUgbXliYXNlIG15Y2xhc3MgbmFtZXNwYWNlIG5hcnJvd2luZyBuZXcgbmV4dCBub3Rpbmhlcml0YWJsZSBub3RvdmVycmlkYWJsZSBvZiBvZmYgb24gb3BlcmF0b3Igb3B0aW9uIG9wdGlvbmFsIG9yZGVyIG92ZXJsb2FkcyBvdmVycmlkYWJsZSBvdmVycmlkZXMgcGFyYW1hcnJheSBwYXJ0aWFsIHByZXNlcnZlIHByaXZhdGUgcHJvcGVydHkgcHJvdGVjdGVkIHB1YmxpYyByYWlzZWV2ZW50IHJlYWRvbmx5IHJlZGltIHJlbW92ZWhhbmRsZXIgcmVzdW1lIHJldHVybiBzZWxlY3Qgc2V0IHNoYWRvd3Mgc2hhcmVkIHNraXAgc3RhdGljIHN0ZXAgc3RvcCBzdHJ1Y3R1cmUgc3RyaWN0IHN1YiBzeW5jbG9jayB0YWtlIHRleHQgdGhlbiB0aHJvdyB0byB0cnkgdW5pY29kZSB1bnRpbCB1c2luZyB3aGVuIHdoZXJlIHdoaWxlIHdpZGVuaW5nIHdpdGggd2l0aGV2ZW50cyB3cml0ZW9ubHkgeWllbGQiLApidWlsdF9pbjoiYWRkcmVzc29mIGFuZCBhbmRhbHNvIGF3YWl0IGRpcmVjdGNhc3QgZ2V0dHlwZSBnZXR4bWxuYW1lc3BhY2UgaXMgaXNmYWxzZSBpc25vdCBpc3RydWUgbGlrZSBtb2QgbmFtZW9mIG5ldyBub3Qgb3Igb3JlbHNlIHRyeWNhc3QgdHlwZW9mIHhvciBjYm9vbCBjYnl0ZSBjY2hhciBjZGF0ZSBjZGJsIGNkZWMgY2ludCBjbG5nIGNvYmogY3NieXRlIGNzaG9ydCBjc25nIGNzdHIgY3VpbnQgY3VsbmcgY3VzaG9ydCIsCnR5cGU6ImJvb2xlYW4gYnl0ZSBjaGFyIGRhdGUgZGVjaW1hbCBkb3VibGUgaW50ZWdlciBsb25nIG9iamVjdCBzYnl0ZSBzaG9ydCBzaW5nbGUgc3RyaW5nIHVpbnRlZ2VyIHVsb25nIHVzaG9ydCIsCmxpdGVyYWw6InRydWUgZmFsc2Ugbm90aGluZyJ9LAppbGxlZ2FsOiIvL3xcXHt8XFx9fGVuZGlmfGdvc3VifHZhcmlhbnR8d2VuZHxeXFwkICIsY29udGFpbnM6W3sKY2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8iKCIifFteL25dKSJDXGIvfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8iLywKZW5kOi8iLyxpbGxlZ2FsOi9cbi8sY29udGFpbnM6W3tiZWdpbjovIiIvfV19LHMse2NsYXNzTmFtZToibnVtYmVyIixyZWxldmFuY2U6MCwKdmFyaWFudHM6W3tiZWdpbjovXGJcZFtcZF9dKigoXC5bXGRfXSsoRVsrLV0/W1xkX10rKT8pfChFWystXT9bXGRfXSspKVtSRkRAISNdPy8KfSx7YmVnaW46L1xiXGRbXGRfXSooKFU/W1NJTF0pfFslJl0pPy99LHtiZWdpbjovJkhbXGRBLUZfXSsoKFU/W1NJTF0pfFslJl0pPy99LHsKYmVnaW46LyZPWzAtN19dKygoVT9bU0lMXSl8WyUmXSk/L30se2JlZ2luOi8mQlswMV9dKygoVT9bU0lMXSl8WyUmXSk/L31dfSx7CmNsYXNzTmFtZToibGFiZWwiLGJlZ2luOi9eXHcrOi99LG8sbCx7Y2xhc3NOYW1lOiJtZXRhIiwKYmVnaW46L1tcdCBdKiMoY29uc3R8ZGlzYWJsZXxlbHNlfGVsc2VpZnxlbmFibGV8ZW5kfGV4dGVybmFsc291cmNlfGlmfHJlZ2lvbilcYi8sCmVuZDovJC8sa2V5d29yZHM6ewprZXl3b3JkOiJjb25zdCBkaXNhYmxlIGVsc2UgZWxzZWlmIGVuYWJsZSBlbmQgZXh0ZXJuYWxzb3VyY2UgaWYgcmVnaW9uIHRoZW4ifSwKY29udGFpbnM6W2xdfV19fSxncm1yX3dhc206ZT0+e2UucmVnZXg7Y29uc3Qgbj1lLkNPTU1FTlQoL1woOy8sLztcKS8pCjtyZXR1cm4gbi5jb250YWlucy5wdXNoKCJzZWxmIikse25hbWU6IldlYkFzc2VtYmx5IixrZXl3b3Jkczp7JHBhdHRlcm46L1tcdy5dKy8sCmtleXdvcmQ6WyJhbnlmdW5jIiwiYmxvY2siLCJiciIsImJyX2lmIiwiYnJfdGFibGUiLCJjYWxsIiwiY2FsbF9pbmRpcmVjdCIsImRhdGEiLCJkcm9wIiwiZWxlbSIsImVsc2UiLCJlbmQiLCJleHBvcnQiLCJmdW5jIiwiZ2xvYmFsLmdldCIsImdsb2JhbC5zZXQiLCJsb2NhbC5nZXQiLCJsb2NhbC5zZXQiLCJsb2NhbC50ZWUiLCJnZXRfZ2xvYmFsIiwiZ2V0X2xvY2FsIiwiZ2xvYmFsIiwiaWYiLCJpbXBvcnQiLCJsb2NhbCIsImxvb3AiLCJtZW1vcnkiLCJtZW1vcnkuZ3JvdyIsIm1lbW9yeS5zaXplIiwibW9kdWxlIiwibXV0Iiwibm9wIiwib2Zmc2V0IiwicGFyYW0iLCJyZXN1bHQiLCJyZXR1cm4iLCJzZWxlY3QiLCJzZXRfZ2xvYmFsIiwic2V0X2xvY2FsIiwic3RhcnQiLCJ0YWJsZSIsInRlZV9sb2NhbCIsInRoZW4iLCJ0eXBlIiwidW5yZWFjaGFibGUiXQp9LGNvbnRhaW5zOltlLkNPTU1FTlQoLzs7LywvJC8pLG4se21hdGNoOlsvKD86b2Zmc2V0fGFsaWduKS8sL1xzKi8sLz0vXSwKY2xhc3NOYW1lOnsxOiJrZXl3b3JkIiwzOiJvcGVyYXRvciJ9fSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46L1wkW1x3X10rL30sewptYXRjaDovKFwoKD8hOyl8XCkpKy8sY2xhc3NOYW1lOiJwdW5jdHVhdGlvbiIscmVsZXZhbmNlOjB9LHsKYmVnaW46Wy8oPzpmdW5jfGNhbGx8Y2FsbF9pbmRpcmVjdCkvLC9ccysvLC9cJFteXHMpXSsvXSxjbGFzc05hbWU6ezE6ImtleXdvcmQiLAozOiJ0aXRsZS5mdW5jdGlvbiJ9fSxlLlFVT1RFX1NUUklOR19NT0RFLHttYXRjaDovKGkzMnxpNjR8ZjMyfGY2NCkoPyFcLikvLApjbGFzc05hbWU6InR5cGUifSx7Y2xhc3NOYW1lOiJrZXl3b3JkIiwKbWF0Y2g6L1xiKGYzMnxmNjR8aTMyfGk2NCkoPzpcLig/OmFic3xhZGR8YW5kfGNlaWx8Y2x6fGNvbnN0fGNvbnZlcnRfW3N1XVwvaSg/OjMyfDY0KXxjb3B5c2lnbnxjdHp8ZGVtb3RlXC9mNjR8ZGl2KD86X1tzdV0pP3xlcXo/fGV4dGVuZF9bc3VdXC9pMzJ8Zmxvb3J8Z2UoPzpfW3N1XSk/fGd0KD86X1tzdV0pP3xsZSg/Ol9bc3VdKT98bG9hZCg/Oig/Ojh8MTZ8MzIpX1tzdV0pP3xsdCg/Ol9bc3VdKT98bWF4fG1pbnxtdWx8bmVhcmVzdHxuZWc/fG9yfHBvcGNudHxwcm9tb3RlXC9mMzJ8cmVpbnRlcnByZXRcL1tmaV0oPzozMnw2NCl8cmVtX1tzdV18cm90W2xyXXxzaGx8c2hyX1tzdV18c3RvcmUoPzo4fDE2fDMyKT98c3FydHxzdWJ8dHJ1bmMoPzpfW3N1XVwvZig/OjMyfDY0KSk/fHdyYXBcL2k2NHx4b3IpKVxiLwp9LHtjbGFzc05hbWU6Im51bWJlciIscmVsZXZhbmNlOjAsCm1hdGNoOi9bKy1dP1xiKD86XGQoPzpfP1xkKSooPzpcLlxkKD86Xz9cZCkqKT8oPzpbZUVdWystXT9cZCg/Ol8/XGQpKik/fDB4W1xkYS1mQS1GXSg/Ol8/W1xkYS1mQS1GXSkqKD86XC5bXGRhLWZBLUZdKD86Xz9bXGRhLWZBLURdKSopPyg/OltwUF1bKy1dP1xkKD86Xz9cZCkqKT8pXGJ8XGJpbmZcYnxcYm5hbig/OjoweFtcZGEtZkEtRl0oPzpfP1tcZGEtZkEtRF0pKik/XGIvCn1dfX0sZ3Jtcl94bWw6ZT0+ewpjb25zdCBuPWUucmVnZXgsdD1uLmNvbmNhdCgvW1xwe0x9X10vdSxuLm9wdGlvbmFsKC9bXHB7TH0wLTlfLi1dKjovdSksL1tccHtMfTAtOV8uLV0qL3UpLGE9ewpjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46LyZbYS16XSs7fCYjWzAtOV0rO3wmI3hbYS1mMC05XSs7L30saT17YmVnaW46L1xzLywKY29udGFpbnM6W3tjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOi8jP1thLXpfXVthLXoxLTlfLV0rLyxpbGxlZ2FsOi9cbi99XQp9LHI9ZS5pbmhlcml0KGkse2JlZ2luOi9cKC8sZW5kOi9cKS99KSxzPWUuaW5oZXJpdChlLkFQT1NfU1RSSU5HX01PREUsewpjbGFzc05hbWU6InN0cmluZyJ9KSxvPWUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyJ9KSxsPXsKZW5kc1dpdGhQYXJlbnQ6ITAsaWxsZWdhbDovPC8scmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLApiZWdpbjovW1xwe0x9MC05Ll86LV0rL3UscmVsZXZhbmNlOjB9LHtiZWdpbjovPVxzKi8scmVsZXZhbmNlOjAsY29udGFpbnM6W3sKY2xhc3NOYW1lOiJzdHJpbmciLGVuZHNQYXJlbnQ6ITAsdmFyaWFudHM6W3tiZWdpbjovIi8sZW5kOi8iLyxjb250YWluczpbYV19LHsKYmVnaW46LycvLGVuZDovJy8sY29udGFpbnM6W2FdfSx7YmVnaW46L1teXHMiJz08PmBdKy99XX1dfV19O3JldHVybnsKbmFtZToiSFRNTCwgWE1MIiwKYWxpYXNlczpbImh0bWwiLCJ4aHRtbCIsInJzcyIsImF0b20iLCJ4amIiLCJ4c2QiLCJ4c2wiLCJwbGlzdCIsIndzZiIsInN2ZyJdLApjYXNlX2luc2Vuc2l0aXZlOiEwLHVuaWNvZGVSZWdleDohMCxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46LzwhW2Etel0vLAplbmQ6Lz4vLHJlbGV2YW5jZToxMCxjb250YWluczpbaSxvLHMscix7YmVnaW46L1xbLyxlbmQ6L1xdLyxjb250YWluczpbewpjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi88IVthLXpdLyxlbmQ6Lz4vLGNvbnRhaW5zOltpLHIsbyxzXX1dfV0KfSxlLkNPTU1FTlQoLzwhLS0vLC8tLT4vLHtyZWxldmFuY2U6MTB9KSx7YmVnaW46LzwhXFtDREFUQVxbLyxlbmQ6L1xdXF0+LywKcmVsZXZhbmNlOjEwfSxhLHtjbGFzc05hbWU6Im1ldGEiLGVuZDovXD8+Lyx2YXJpYW50czpbe2JlZ2luOi88XD94bWwvLApyZWxldmFuY2U6MTAsY29udGFpbnM6W29dfSx7YmVnaW46LzxcP1thLXpdW2EtejAtOV0rL31dfSx7Y2xhc3NOYW1lOiJ0YWciLApiZWdpbjovPHN0eWxlKD89XHN8PikvLGVuZDovPi8sa2V5d29yZHM6e25hbWU6InN0eWxlIn0sY29udGFpbnM6W2xdLHN0YXJ0czp7CmVuZDovPFwvc3R5bGU+LyxyZXR1cm5FbmQ6ITAsc3ViTGFuZ3VhZ2U6WyJjc3MiLCJ4bWwiXX19LHtjbGFzc05hbWU6InRhZyIsCmJlZ2luOi88c2NyaXB0KD89XHN8PikvLGVuZDovPi8sa2V5d29yZHM6e25hbWU6InNjcmlwdCJ9LGNvbnRhaW5zOltsXSxzdGFydHM6ewplbmQ6LzxcL3NjcmlwdD4vLHJldHVybkVuZDohMCxzdWJMYW5ndWFnZTpbImphdmFzY3JpcHQiLCJoYW5kbGViYXJzIiwieG1sIl19fSx7CmNsYXNzTmFtZToidGFnIixiZWdpbjovPD58PFwvPi99LHtjbGFzc05hbWU6InRhZyIsCmJlZ2luOm4uY29uY2F0KC88LyxuLmxvb2thaGVhZChuLmNvbmNhdCh0LG4uZWl0aGVyKC9cLz4vLC8+LywvXHMvKSkpKSwKZW5kOi9cLz8+Lyxjb250YWluczpbe2NsYXNzTmFtZToibmFtZSIsYmVnaW46dCxyZWxldmFuY2U6MCxzdGFydHM6bH1dfSx7CmNsYXNzTmFtZToidGFnIixiZWdpbjpuLmNvbmNhdCgvPFwvLyxuLmxvb2thaGVhZChuLmNvbmNhdCh0LC8+LykpKSxjb250YWluczpbewpjbGFzc05hbWU6Im5hbWUiLGJlZ2luOnQscmVsZXZhbmNlOjB9LHtiZWdpbjovPi8scmVsZXZhbmNlOjAsZW5kc1BhcmVudDohMH1dfV19Cn0sZ3Jtcl95YW1sOmU9PnsKY29uc3Qgbj0idHJ1ZSBmYWxzZSB5ZXMgbm8gbnVsbCIsdD0iW1xcdyM7Lz86QCY9KyQsLn4qJygpW1xcXV0rIixhPXsKY2xhc3NOYW1lOiJzdHJpbmciLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovIi8sZW5kOi8iLwp9LHtiZWdpbjovXFMrL31dLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUse2NsYXNzTmFtZToidGVtcGxhdGUtdmFyaWFibGUiLAp2YXJpYW50czpbe2JlZ2luOi9ce1x7LyxlbmQ6L1x9XH0vfSx7YmVnaW46LyVcey8sZW5kOi9cfS99XX1dfSxpPWUuaW5oZXJpdChhLHsKdmFyaWFudHM6W3tiZWdpbjovJy8sZW5kOi8nL30se2JlZ2luOi8iLyxlbmQ6LyIvfSx7YmVnaW46L1teXHMse31bXF1dKy99XX0pLHI9ewplbmQ6IiwiLGVuZHNXaXRoUGFyZW50OiEwLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6bixyZWxldmFuY2U6MH0scz17YmVnaW46L1x7LywKZW5kOi9cfS8sY29udGFpbnM6W3JdLGlsbGVnYWw6IlxcbiIscmVsZXZhbmNlOjB9LG89e2JlZ2luOiJcXFsiLGVuZDoiXFxdIiwKY29udGFpbnM6W3JdLGlsbGVnYWw6IlxcbiIscmVsZXZhbmNlOjB9LGw9W3tjbGFzc05hbWU6ImF0dHIiLHZhcmlhbnRzOlt7CmJlZ2luOiJcXHdbXFx3IDpcXC8uLV0qOig/PVsgXHRdfCQpIn0se2JlZ2luOiciXFx3W1xcdyA6XFwvLi1dKiI6KD89WyBcdF18JCknfSx7CmJlZ2luOiInXFx3W1xcdyA6XFwvLi1dKic6KD89WyBcdF18JCkifV19LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJeLS0tXFxzKiQiLApyZWxldmFuY2U6MTB9LHtjbGFzc05hbWU6InN0cmluZyIsCmJlZ2luOiJbXFx8Pl0oWzEtOV0/WystXSk/WyBdKlxcbiggKylbXiBdW15cXG5dKlxcbihcXDJbXlxcbl0rXFxuPykqIn0sewpiZWdpbjoiPCVbJT0tXT8iLGVuZDoiWyUtXT8lPiIsc3ViTGFuZ3VhZ2U6InJ1YnkiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLApyZWxldmFuY2U6MH0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46IiFcXHcrISIrdH0se2NsYXNzTmFtZToidHlwZSIsCmJlZ2luOiIhPCIrdCsiPiJ9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiIhIit0fSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiISEiK3QKfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiJiIrZS5VTkRFUlNDT1JFX0lERU5UX1JFKyIkIn0se2NsYXNzTmFtZToibWV0YSIsCmJlZ2luOiJcXCoiK2UuVU5ERVJTQ09SRV9JREVOVF9SRSsiJCJ9LHtjbGFzc05hbWU6ImJ1bGxldCIsYmVnaW46Ii0oPz1bIF18JCkiLApyZWxldmFuY2U6MH0sZS5IQVNIX0NPTU1FTlRfTU9ERSx7YmVnaW5LZXl3b3JkczpuLGtleXdvcmRzOntsaXRlcmFsOm59fSx7CmNsYXNzTmFtZToibnVtYmVyIiwKYmVnaW46IlxcYlswLTldezR9KC1bMC05XVswLTldKXswLDJ9KFtUdCBcXHRdWzAtOV1bMC05XT8oOlswLTldWzAtOV0pezJ9KT8oXFwuWzAtOV0qKT8oWyBcXHRdKSooWnxbLStdWzAtOV1bMC05XT8oOlswLTldWzAtOV0pPyk/XFxiIgp9LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46ZS5DX05VTUJFUl9SRSsiXFxiIixyZWxldmFuY2U6MH0scyxvLGFdLGM9Wy4uLmxdCjtyZXR1cm4gYy5wb3AoKSxjLnB1c2goaSksci5jb250YWlucz1jLHtuYW1lOiJZQU1MIixjYXNlX2luc2Vuc2l0aXZlOiEwLAphbGlhc2VzOlsieW1sIl0sY29udGFpbnM6bH19fSk7Y29uc3QgSGU9YWU7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXMoS2UpKXsKY29uc3Qgbj1lLnJlcGxhY2UoImdybXJfIiwiIikucmVwbGFjZSgiXyIsIi0iKTtIZS5yZWdpc3Rlckxhbmd1YWdlKG4sS2VbZV0pfQpyZXR1cm4gSGV9KCkKOyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGUmJihtb2R1bGUuZXhwb3J0cz1obGpzKTs="},{"meta":{"name":"katex.min.js","url":"https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.js#sha256-n0UwfFeU7SR6DQlfOmLlLvIhWmeyMnIDp/2RmVmuedE=","ts":1764084296576,"mimetype":"text/javascript"},"source":"IWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMua2F0ZXg9dCgpOmUua2F0ZXg9dCgpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzLChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZDpmdW5jdGlvbih0LHIpe2Zvcih2YXIgbiBpbiByKWUubyhyLG4pJiYhZS5vKHQsbikmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4se2VudW1lcmFibGU6ITAsZ2V0OnJbbl19KX0sbzpmdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX19LHQ9e307ZS5kKHQse2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gWW59fSk7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlLHQpe3RoaXMubmFtZT12b2lkIDAsdGhpcy5wb3NpdGlvbj12b2lkIDAsdGhpcy5sZW5ndGg9dm9pZCAwLHRoaXMucmF3TWVzc2FnZT12b2lkIDA7bGV0IG4sbyxzPSJLYVRlWCBwYXJzZSBlcnJvcjogIitlO2NvbnN0IGk9dCYmdC5sb2M7aWYoaSYmaS5zdGFydDw9aS5lbmQpe2NvbnN0IGU9aS5sZXhlci5pbnB1dDtuPWkuc3RhcnQsbz1pLmVuZCxuPT09ZS5sZW5ndGg/cys9IiBhdCBlbmQgb2YgaW5wdXQ6ICI6cys9IiBhdCBwb3NpdGlvbiAiKyhuKzEpKyI6ICI7Y29uc3QgdD1lLnNsaWNlKG4sbykucmVwbGFjZSgvW15dL2csIiQmXHUwMzMyIik7bGV0IHIsYTtyPW4+MTU/Ilx1MjAyNiIrZS5zbGljZShuLTE1LG4pOmUuc2xpY2UoMCxuKSxhPW8rMTU8ZS5sZW5ndGg/ZS5zbGljZShvLG8rMTUpKyJcdTIwMjYiOmUuc2xpY2Uobykscys9cit0K2F9Y29uc3QgYT1uZXcgRXJyb3Iocyk7cmV0dXJuIGEubmFtZT0iUGFyc2VFcnJvciIsYS5fX3Byb3RvX189ci5wcm90b3R5cGUsYS5wb3NpdGlvbj1uLG51bGwhPW4mJm51bGwhPW8mJihhLmxlbmd0aD1vLW4pLGEucmF3TWVzc2FnZT1lLGF9fXIucHJvdG90eXBlLl9fcHJvdG9fXz1FcnJvci5wcm90b3R5cGU7dmFyIG49cjtjb25zdCBvPS8oW0EtWl0pL2cscz17IiYiOiImYW1wOyIsIj4iOiImZ3Q7IiwiPCI6IiZsdDsiLCciJzoiJnF1b3Q7IiwiJyI6IiYjeDI3OyJ9LGk9L1smPjwiJ10vZztjb25zdCBhPWZ1bmN0aW9uKGUpe3JldHVybiJvcmRncm91cCI9PT1lLnR5cGV8fCJjb2xvciI9PT1lLnR5cGU/MT09PWUuYm9keS5sZW5ndGg/YShlLmJvZHlbMF0pOmU6ImZvbnQiPT09ZS50eXBlP2EoZS5ib2R5KTplfTt2YXIgbD17Y29udGFpbnM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4tMSE9PWUuaW5kZXhPZih0KX0sZGVmbHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09ZT90OmV9LGVzY2FwZTpmdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoaSwoZT0+c1tlXSkpfSxoeXBoZW5hdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShvLCItJDEiKS50b0xvd2VyQ2FzZSgpfSxnZXRCYXNlRWxlbTphLGlzQ2hhcmFjdGVyQm94OmZ1bmN0aW9uKGUpe2NvbnN0IHQ9YShlKTtyZXR1cm4ibWF0aG9yZCI9PT10LnR5cGV8fCJ0ZXh0b3JkIj09PXQudHlwZXx8ImF0b20iPT09dC50eXBlfSxwcm90b2NvbEZyb21Vcmw6ZnVuY3Rpb24oZSl7Y29uc3QgdD0vXltceDAwLVx4MjBdKihbXlxcLyM/XSo/KSg6fCYjMCo1OHwmI3gwKjNhfCZjb2xvbikvaS5leGVjKGUpO3JldHVybiB0PyI6IiE9PXRbMl0/bnVsbDovXlthLXpBLVpdW2EtekEtWjAtOStcLS5dKiQvLnRlc3QodFsxXSk/dFsxXS50b0xvd2VyQ2FzZSgpOm51bGw6Il9yZWxhdGl2ZSJ9fTtjb25zdCBoPXtkaXNwbGF5TW9kZTp7dHlwZToiYm9vbGVhbiIsZGVzY3JpcHRpb246IlJlbmRlciBtYXRoIGluIGRpc3BsYXkgbW9kZSwgd2hpY2ggcHV0cyB0aGUgbWF0aCBpbiBkaXNwbGF5IHN0eWxlIChzbyBcXGludCBhbmQgXFxzdW0gYXJlIGxhcmdlLCBmb3IgZXhhbXBsZSksIGFuZCBjZW50ZXJzIHRoZSBtYXRoIG9uIHRoZSBwYWdlIG9uIGl0cyBvd24gbGluZS4iLGNsaToiLWQsIC0tZGlzcGxheS1tb2RlIn0sb3V0cHV0Ont0eXBlOntlbnVtOlsiaHRtbEFuZE1hdGhtbCIsImh0bWwiLCJtYXRobWwiXX0sZGVzY3JpcHRpb246IkRldGVybWluZXMgdGhlIG1hcmt1cCBsYW5ndWFnZSBvZiB0aGUgb3V0cHV0LiIsY2xpOiItRiwgLS1mb3JtYXQgPHR5cGU+In0sbGVxbm86e3R5cGU6ImJvb2xlYW4iLGRlc2NyaXB0aW9uOiJSZW5kZXIgZGlzcGxheSBtYXRoIGluIGxlcW5vIHN0eWxlIChsZWZ0LWp1c3RpZmllZCB0YWdzKS4ifSxmbGVxbjp7dHlwZToiYm9vbGVhbiIsZGVzY3JpcHRpb246IlJlbmRlciBkaXNwbGF5IG1hdGggZmx1c2ggbGVmdC4ifSx0aHJvd09uRXJyb3I6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITAsY2xpOiItdCwgLS1uby10aHJvdy1vbi1lcnJvciIsY2xpRGVzY3JpcHRpb246IlJlbmRlciBlcnJvcnMgKGluIHRoZSBjb2xvciBnaXZlbiBieSAtLWVycm9yLWNvbG9yKSBpbnN0ZWFkIG9mIHRocm93aW5nIGEgUGFyc2VFcnJvciBleGNlcHRpb24gd2hlbiBlbmNvdW50ZXJpbmcgYW4gZXJyb3IuIn0sZXJyb3JDb2xvcjp7dHlwZToic3RyaW5nIixkZWZhdWx0OiIjY2MwMDAwIixjbGk6Ii1jLCAtLWVycm9yLWNvbG9yIDxjb2xvcj4iLGNsaURlc2NyaXB0aW9uOiJBIGNvbG9yIHN0cmluZyBnaXZlbiBpbiB0aGUgZm9ybWF0ICdyZ2InIG9yICdycmdnYmInIChubyAjKS4gVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgY29sb3Igb2YgZXJyb3JzIHJlbmRlcmVkIGJ5IHRoZSAtdCBvcHRpb24uIixjbGlQcm9jZXNzb3I6ZT0+IiMiK2V9LG1hY3Jvczp7dHlwZToib2JqZWN0IixjbGk6Ii1tLCAtLW1hY3JvIDxkZWY+IixjbGlEZXNjcmlwdGlvbjoiRGVmaW5lIGN1c3RvbSBtYWNybyBvZiB0aGUgZm9ybSAnXFxmb286ZXhwYW5zaW9uJyAodXNlIG11bHRpcGxlIC1tIGFyZ3VtZW50cyBmb3IgbXVsdGlwbGUgbWFjcm9zKS4iLGNsaURlZmF1bHQ6W10sY2xpUHJvY2Vzc29yOihlLHQpPT4odC5wdXNoKGUpLHQpfSxtaW5SdWxlVGhpY2tuZXNzOnt0eXBlOiJudW1iZXIiLGRlc2NyaXB0aW9uOiJTcGVjaWZpZXMgYSBtaW5pbXVtIHRoaWNrbmVzcywgaW4gZW1zLCBmb3IgZnJhY3Rpb24gbGluZXMsIGBcXHNxcnRgIHRvcCBsaW5lcywgYHthcnJheX1gIHZlcnRpY2FsIGxpbmVzLCBgXFxobGluZWAsIGBcXGhkYXNobGluZWAsIGBcXHVuZGVybGluZWAsIGBcXG92ZXJsaW5lYCwgYW5kIHRoZSBib3JkZXJzIG9mIGBcXGZib3hgLCBgXFxib3hlZGAsIGFuZCBgXFxmY29sb3Jib3hgLiIscHJvY2Vzc29yOmU9Pk1hdGgubWF4KDAsZSksY2xpOiItLW1pbi1ydWxlLXRoaWNrbmVzcyA8c2l6ZT4iLGNsaVByb2Nlc3NvcjpwYXJzZUZsb2F0fSxjb2xvcklzVGV4dENvbG9yOnt0eXBlOiJib29sZWFuIixkZXNjcmlwdGlvbjoiTWFrZXMgXFxjb2xvciBiZWhhdmUgbGlrZSBMYVRlWCdzIDItYXJndW1lbnQgXFx0ZXh0Y29sb3IsIGluc3RlYWQgb2YgTGFUZVgncyBvbmUtYXJndW1lbnQgXFxjb2xvciBtb2RlIGNoYW5nZS4iLGNsaToiLWIsIC0tY29sb3ItaXMtdGV4dC1jb2xvciJ9LHN0cmljdDp7dHlwZTpbe2VudW06WyJ3YXJuIiwiaWdub3JlIiwiZXJyb3IiXX0sImJvb2xlYW4iLCJmdW5jdGlvbiJdLGRlc2NyaXB0aW9uOiJUdXJuIG9uIHN0cmljdCAvIExhVGVYIGZhaXRoZnVsbmVzcyBtb2RlLCB3aGljaCB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIGlucHV0IHVzZXMgZmVhdHVyZXMgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBieSBMYVRlWC4iLGNsaToiLVMsIC0tc3RyaWN0IixjbGlEZWZhdWx0OiExfSx0cnVzdDp7dHlwZTpbImJvb2xlYW4iLCJmdW5jdGlvbiJdLGRlc2NyaXB0aW9uOiJUcnVzdCB0aGUgaW5wdXQsIGVuYWJsaW5nIGFsbCBIVE1MIGZlYXR1cmVzIHN1Y2ggYXMgXFx1cmwuIixjbGk6Ii1ULCAtLXRydXN0In0sbWF4U2l6ZTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEvMCxkZXNjcmlwdGlvbjoiSWYgbm9uLXplcm8sIGFsbCB1c2VyLXNwZWNpZmllZCBzaXplcywgZS5nLiBpbiBcXHJ1bGV7NTAwZW19ezUwMGVtfSwgd2lsbCBiZSBjYXBwZWQgdG8gbWF4U2l6ZSBlbXMuIE90aGVyd2lzZSwgZWxlbWVudHMgYW5kIHNwYWNlcyBjYW4gYmUgYXJiaXRyYXJpbHkgbGFyZ2UiLHByb2Nlc3NvcjplPT5NYXRoLm1heCgwLGUpLGNsaToiLXMsIC0tbWF4LXNpemUgPG4+IixjbGlQcm9jZXNzb3I6cGFyc2VJbnR9LG1heEV4cGFuZDp7dHlwZToibnVtYmVyIixkZWZhdWx0OjFlMyxkZXNjcmlwdGlvbjoiTGltaXQgdGhlIG51bWJlciBvZiBtYWNybyBleHBhbnNpb25zIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyLCB0byBwcmV2ZW50IGUuZy4gaW5maW5pdGUgbWFjcm8gbG9vcHMuIElmIHNldCB0byBJbmZpbml0eSwgdGhlIG1hY3JvIGV4cGFuZGVyIHdpbGwgdHJ5IHRvIGZ1bGx5IGV4cGFuZCBhcyBpbiBMYVRlWC4iLHByb2Nlc3NvcjplPT5NYXRoLm1heCgwLGUpLGNsaToiLWUsIC0tbWF4LWV4cGFuZCA8bj4iLGNsaVByb2Nlc3NvcjplPT4iSW5maW5pdHkiPT09ZT8xLzA6cGFyc2VJbnQoZSl9LGdsb2JhbEdyb3VwOnt0eXBlOiJib29sZWFuIixjbGk6ITF9fTtmdW5jdGlvbiBjKGUpe2lmKGUuZGVmYXVsdClyZXR1cm4gZS5kZWZhdWx0O2NvbnN0IHQ9ZS50eXBlLHI9QXJyYXkuaXNBcnJheSh0KT90WzBdOnQ7aWYoInN0cmluZyIhPXR5cGVvZiByKXJldHVybiByLmVudW1bMF07c3dpdGNoKHIpe2Nhc2UiYm9vbGVhbiI6cmV0dXJuITE7Y2FzZSJzdHJpbmciOnJldHVybiIiO2Nhc2UibnVtYmVyIjpyZXR1cm4gMDtjYXNlIm9iamVjdCI6cmV0dXJue319fWNsYXNzIG17Y29uc3RydWN0b3IoZSl7dGhpcy5kaXNwbGF5TW9kZT12b2lkIDAsdGhpcy5vdXRwdXQ9dm9pZCAwLHRoaXMubGVxbm89dm9pZCAwLHRoaXMuZmxlcW49dm9pZCAwLHRoaXMudGhyb3dPbkVycm9yPXZvaWQgMCx0aGlzLmVycm9yQ29sb3I9dm9pZCAwLHRoaXMubWFjcm9zPXZvaWQgMCx0aGlzLm1pblJ1bGVUaGlja25lc3M9dm9pZCAwLHRoaXMuY29sb3JJc1RleHRDb2xvcj12b2lkIDAsdGhpcy5zdHJpY3Q9dm9pZCAwLHRoaXMudHJ1c3Q9dm9pZCAwLHRoaXMubWF4U2l6ZT12b2lkIDAsdGhpcy5tYXhFeHBhbmQ9dm9pZCAwLHRoaXMuZ2xvYmFsR3JvdXA9dm9pZCAwLGU9ZXx8e307Zm9yKGNvbnN0IHQgaW4gaClpZihoLmhhc093blByb3BlcnR5KHQpKXtjb25zdCByPWhbdF07dGhpc1t0XT12b2lkIDAhPT1lW3RdP3IucHJvY2Vzc29yP3IucHJvY2Vzc29yKGVbdF0pOmVbdF06YyhyKX19cmVwb3J0Tm9uc3RyaWN0KGUsdCxyKXtsZXQgbz10aGlzLnN0cmljdDtpZigiZnVuY3Rpb24iPT10eXBlb2YgbyYmKG89byhlLHQscikpLG8mJiJpZ25vcmUiIT09byl7aWYoITA9PT1vfHwiZXJyb3IiPT09byl0aHJvdyBuZXcgbigiTGFUZVgtaW5jb21wYXRpYmxlIGlucHV0IGFuZCBzdHJpY3QgbW9kZSBpcyBzZXQgdG8gJ2Vycm9yJzogIit0KyIgWyIrZSsiXSIscik7Indhcm4iPT09bz8idW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybigiTGFUZVgtaW5jb21wYXRpYmxlIGlucHV0IGFuZCBzdHJpY3QgbW9kZSBpcyBzZXQgdG8gJ3dhcm4nOiAiK3QrIiBbIitlKyJdIik6InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm4oIkxhVGVYLWluY29tcGF0aWJsZSBpbnB1dCBhbmQgc3RyaWN0IG1vZGUgaXMgc2V0IHRvIHVucmVjb2duaXplZCAnIitvKyInOiAiK3QrIiBbIitlKyJdIil9fXVzZVN0cmljdEJlaGF2aW9yKGUsdCxyKXtsZXQgbj10aGlzLnN0cmljdDtpZigiZnVuY3Rpb24iPT10eXBlb2Ygbil0cnl7bj1uKGUsdCxyKX1jYXRjaChlKXtuPSJlcnJvciJ9cmV0dXJuISghbnx8Imlnbm9yZSI9PT1uKSYmKCEwPT09bnx8ImVycm9yIj09PW58fCgid2FybiI9PT1uPygidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybigiTGFUZVgtaW5jb21wYXRpYmxlIGlucHV0IGFuZCBzdHJpY3QgbW9kZSBpcyBzZXQgdG8gJ3dhcm4nOiAiK3QrIiBbIitlKyJdIiksITEpOigidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybigiTGFUZVgtaW5jb21wYXRpYmxlIGlucHV0IGFuZCBzdHJpY3QgbW9kZSBpcyBzZXQgdG8gdW5yZWNvZ25pemVkICciK24rIic6ICIrdCsiIFsiK2UrIl0iKSwhMSkpKX1pc1RydXN0ZWQoZSl7aWYoZS51cmwmJiFlLnByb3RvY29sKXtjb25zdCB0PWwucHJvdG9jb2xGcm9tVXJsKGUudXJsKTtpZihudWxsPT10KXJldHVybiExO2UucHJvdG9jb2w9dH1jb25zdCB0PSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnRydXN0P3RoaXMudHJ1c3QoZSk6dGhpcy50cnVzdDtyZXR1cm4gQm9vbGVhbih0KX19Y2xhc3MgcHtjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5pZD12b2lkIDAsdGhpcy5zaXplPXZvaWQgMCx0aGlzLmNyYW1wZWQ9dm9pZCAwLHRoaXMuaWQ9ZSx0aGlzLnNpemU9dCx0aGlzLmNyYW1wZWQ9cn1zdXAoKXtyZXR1cm4gdVtkW3RoaXMuaWRdXX1zdWIoKXtyZXR1cm4gdVtnW3RoaXMuaWRdXX1mcmFjTnVtKCl7cmV0dXJuIHVbZlt0aGlzLmlkXV19ZnJhY0Rlbigpe3JldHVybiB1W2JbdGhpcy5pZF1dfWNyYW1wKCl7cmV0dXJuIHVbeVt0aGlzLmlkXV19dGV4dCgpe3JldHVybiB1W3hbdGhpcy5pZF1dfWlzVGlnaHQoKXtyZXR1cm4gdGhpcy5zaXplPj0yfX1jb25zdCB1PVtuZXcgcCgwLDAsITEpLG5ldyBwKDEsMCwhMCksbmV3IHAoMiwxLCExKSxuZXcgcCgzLDEsITApLG5ldyBwKDQsMiwhMSksbmV3IHAoNSwyLCEwKSxuZXcgcCg2LDMsITEpLG5ldyBwKDcsMywhMCldLGQ9WzQsNSw0LDUsNiw3LDYsN10sZz1bNSw1LDUsNSw3LDcsNyw3XSxmPVsyLDMsNCw1LDYsNyw2LDddLGI9WzMsMyw1LDUsNyw3LDcsN10seT1bMSwxLDMsMyw1LDUsNyw3XSx4PVswLDEsMiwzLDIsMywyLDNdO3ZhciB3PXtESVNQTEFZOnVbMF0sVEVYVDp1WzJdLFNDUklQVDp1WzRdLFNDUklQVFNDUklQVDp1WzZdfTtjb25zdCB2PVt7bmFtZToibGF0aW4iLGJsb2NrczpbWzI1Niw1OTFdLFs3NjgsODc5XV19LHtuYW1lOiJjeXJpbGxpYyIsYmxvY2tzOltbMTAyNCwxMjc5XV19LHtuYW1lOiJhcm1lbmlhbiIsYmxvY2tzOltbMTMyOCwxNDIzXV19LHtuYW1lOiJicmFobWljIixibG9ja3M6W1syMzA0LDQyNTVdXX0se25hbWU6Imdlb3JnaWFuIixibG9ja3M6W1s0MjU2LDQzNTFdXX0se25hbWU6ImNqayIsYmxvY2tzOltbMTIyODgsMTI1NDNdLFsxOTk2OCw0MDg3OV0sWzY1MjgwLDY1Mzc2XV19LHtuYW1lOiJoYW5ndWwiLGJsb2NrczpbWzQ0MDMyLDU1MjE1XV19XTtjb25zdCBrPVtdO2Z1bmN0aW9uIFMoZSl7Zm9yKGxldCB0PTA7dDxrLmxlbmd0aDt0Kz0yKWlmKGU+PWtbdF0mJmU8PWtbdCsxXSlyZXR1cm4hMDtyZXR1cm4hMX12LmZvckVhY2goKGU9PmUuYmxvY2tzLmZvckVhY2goKGU9PmsucHVzaCguLi5lKSkpKSk7Y29uc3QgTT04MCx6PXtkb3VibGVsZWZ0YXJyb3c6Ik0yNjIgMTU3XG5sMTAtMTBjMzQtMzYgNjIuNy03NyA4Ni0xMjMgMy4zLTggNS0xMy4zIDUtMTYgMC01LjMtNi43LTgtMjAtOC03LjNcbiAwLTEyLjIuNS0xNC41IDEuNS0yLjMgMS00LjggNC41LTcuNSAxMC41LTQ5LjMgOTcuMy0xMjEuNyAxNjkuMy0yMTcgMjE2LTI4XG4gMTQtNTcuMyAyNS04OCAzMy02LjcgMi0xMSAzLjgtMTMgNS41LTIgMS43LTMgNC4yLTMgNy41czEgNS44IDMgNy41XG5jMiAxLjcgNi4zIDMuNSAxMyA1LjUgNjggMTcuMyAxMjguMiA0Ny44IDE4MC41IDkxLjUgNTIuMyA0My43IDkzLjggOTYuMiAxMjQuNVxuIDE1Ny41IDkuMyA4IDE1LjMgMTIuMyAxOCAxM2g2YzEyLS43IDE4LTQgMTgtMTAgMC0yLTEuNy03LTUtMTUtMjMuMy00Ni01Mi04N1xuLTg2LTEyM2wtMTAtMTBoMzk5NzM4di00MEgyMThjMzI4IDAgMCAwIDAgMGwtMTAtOGMtMjYuNy0yMC02NS43LTQzLTExNy02OSAyLjdcbi0yIDYtMy43IDEwLTUgMzYuNy0xNiA3Mi4zLTM3LjMgMTA3LTY0bDEwLThoMzk5Nzgydi00MHpcbm04IDB2NDBoMzk5NzMwdi00MHptMCAxOTR2NDBoMzk5NzMwdi00MHoiLGRvdWJsZXJpZ2h0YXJyb3c6Ik0zOTk3MzggMzkybFxuLTEwIDEwYy0zNCAzNi02Mi43IDc3LTg2IDEyMy0zLjMgOC01IDEzLjMtNSAxNiAwIDUuMyA2LjcgOCAyMCA4IDcuMyAwIDEyLjItLjVcbiAxNC41LTEuNSAyLjMtMSA0LjgtNC41IDcuNS0xMC41IDQ5LjMtOTcuMyAxMjEuNy0xNjkuMyAyMTctMjE2IDI4LTE0IDU3LjMtMjUgODhcbi0zMyA2LjctMiAxMS0zLjggMTMtNS41IDItMS43IDMtNC4yIDMtNy41cy0xLTUuOC0zLTcuNWMtMi0xLjctNi4zLTMuNS0xMy01LjUtNjhcbi0xNy4zLTEyOC4yLTQ3LjgtMTgwLjUtOTEuNS01Mi4zLTQzLjctOTMuOC05Ni4yLTEyNC41LTE1Ny41LTkuMy04LTE1LjMtMTIuMy0xOFxuLTEzaC02Yy0xMiAuNy0xOCA0LTE4IDEwIDAgMiAxLjcgNyA1IDE1IDIzLjMgNDYgNTIgODcgODYgMTIzbDEwIDEwSDB2NDBoMzk5NzgyXG5jLTMyOCAwIDAgMCAwIDBsMTAgOGMyNi43IDIwIDY1LjcgNDMgMTE3IDY5LTIuNyAyLTYgMy43LTEwIDUtMzYuNyAxNi03Mi4zIDM3LjNcbi0xMDcgNjRsLTEwIDhIMHY0MHpNMCAxNTd2NDBoMzk5NzMwdi00MHptMCAxOTR2NDBoMzk5NzMwdi00MHoiLGxlZnRhcnJvdzoiTTQwMDAwMCAyNDFIMTEwbDMtM2M2OC43LTUyLjcgMTEzLjctMTIwXG4gMTM1LTIwMiA0LTE0LjcgNi0yMyA2LTI1IDAtNy4zLTctMTEtMjEtMTEtOCAwLTEzLjIuOC0xNS41IDIuNS0yLjMgMS43LTQuMiA1Ljhcbi01LjUgMTIuNS0xLjMgNC43LTIuNyAxMC4zLTQgMTctMTIgNDguNy0zNC44IDkyLTY4LjUgMTMwUzY1LjMgMjI4LjMgMTggMjQ3XG5jLTEwIDQtMTYgNy43LTE4IDExIDAgOC43IDYgMTQuMyAxOCAxNyA0Ny4zIDE4LjcgODcuOCA0NyAxMjEuNSA4NVMxOTYgNDQxLjMgMjA4XG4gNDkwYy43IDIgMS4zIDUgMiA5czEuMiA2LjcgMS41IDhjLjMgMS4zIDEgMy4zIDIgNnMyLjIgNC41IDMuNSA1LjVjMS4zIDEgMy4zXG4gMS44IDYgMi41czYgMSAxMCAxYzE0IDAgMjEtMy43IDIxLTExIDAtMi0yLTEwLjMtNi0yNS0yMC03OS4zLTY1LTE0Ni43LTEzNS0yMDJcbiBsLTMtM2gzOTk4OTB6TTEwMCAyNDF2NDBoMzk5OTAwdi00MHoiLGxlZnRicmFjZToiTTYgNTQ4bC02LTZ2LTM1bDYtMTFjNTYtMTA0IDEzNS4zLTE4MS4zIDIzOC0yMzIgNTcuMy0yOC43IDExN1xuLTQ1IDE3OS01MGgzOTk1Nzd2MTIwSDQwM2MtNDMuMyA3LTgxIDE1LTExMyAyNi0xMDAuNyAzMy0xNzkuNyA5MS0yMzcgMTc0LTIuN1xuIDUtNiA5LTEwIDEzLS43IDEtNy4zIDEtMjAgMUg2eiIsbGVmdGJyYWNldW5kZXI6Ik0wIDZsNi02aDE3YzEyLjY4OCAwIDE5LjMxMy4zIDIwIDEgNCA0IDcuMzEzIDguMyAxMCAxM1xuIDM1LjMxMyA1MS4zIDgwLjgxMyA5My44IDEzNi41IDEyNy41IDU1LjY4OCAzMy43IDExNy4xODggNTUuOCAxODQuNSA2Ni41LjY4OFxuIDAgMiAuMyA0IDEgMTguNjg4IDIuNyA3NiA0LjMgMTcyIDVoMzk5NDUwdjEyMEg0MjlsLTYtMWMtMTI0LjY4OC04LTIzNS02MS43XG4tMzMxLTE2MUM2MC42ODcgMTM4LjcgMzIuMzEyIDk5LjMgNyA1NEwwIDQxVjZ6IixsZWZ0Z3JvdXA6Ik00MDAwMDAgODBcbkg0MzVDNjQgODAgMTY4LjMgMjI5LjQgMjEgMjYwYy01LjkgMS4yLTE4IDAtMTggMC0yIDAtMy0xLTMtM3YtMzhDNzYgNjEgMjU3IDBcbiA0MzUgMGgzOTk1NjV6IixsZWZ0Z3JvdXB1bmRlcjoiTTQwMDAwMCAyNjJcbkg0MzVDNjQgMjYyIDE2OC4zIDExMi42IDIxIDgyYy01LjktMS4yLTE4IDAtMTggMC0yIDAtMyAxLTMgM3YzOGM3NiAxNTggMjU3IDIxOVxuIDQzNSAyMTloMzk5NTY1eiIsbGVmdGhhcnBvb246Ik0wIDI2N2MuNyA1LjMgMyAxMCA3IDE0aDM5OTk5M3YtNDBIOTNjMy4zXG4tMy4zIDEwLjItOS41IDIwLjUtMTguNXMxNy44LTE1LjggMjIuNS0yMC41YzUwLjctNTIgODgtMTEwLjMgMTEyLTE3NSA0LTExLjMgNVxuLTE4LjMgMy0yMS0xLjMtNC03LjMtNi0xOC02LTggMC0xMyAuNy0xNSAycy00LjcgNi43LTggMTZjLTQyIDk4LjctMTA3LjMgMTc0Ljdcbi0xOTYgMjI4LTYuNyA0LjctMTAuNyA4LTEyIDEwLTEuMyAyLTIgNS43LTIgMTF6bTEwMC0yNnY0MGgzOTk5MDB2LTQweiIsbGVmdGhhcnBvb25wbHVzOiJNMCAyNjdjLjcgNS4zIDMgMTAgNyAxNGgzOTk5OTN2LTQwSDkzYzMuMy0zLjMgMTAuMi05LjVcbiAyMC41LTE4LjVzMTcuOC0xNS44IDIyLjUtMjAuNWM1MC43LTUyIDg4LTExMC4zIDExMi0xNzUgNC0xMS4zIDUtMTguMyAzLTIxLTEuM1xuLTQtNy4zLTYtMTgtNi04IDAtMTMgLjctMTUgMnMtNC43IDYuNy04IDE2Yy00MiA5OC43LTEwNy4zIDE3NC43LTE5NiAyMjgtNi43IDQuN1xuLTEwLjcgOC0xMiAxMC0xLjMgMi0yIDUuNy0yIDExem0xMDAtMjZ2NDBoMzk5OTAwdi00MHpNMCA0MzV2NDBoNDAwMDAwdi00MHpcbm0wIDB2NDBoNDAwMDAwdi00MHoiLGxlZnRoYXJwb29uZG93bjoiTTcgMjQxYy00IDQtNi4zMzMgOC42NjctNyAxNCAwIDUuMzMzLjY2NyA5IDIgMTFzNS4zMzNcbiA1LjMzMyAxMiAxMGM5MC42NjcgNTQgMTU2IDEzMCAxOTYgMjI4IDMuMzMzIDEwLjY2NyA2LjMzMyAxNi4zMzMgOSAxNyAyIC42NjcgNVxuIDEgOSAxaDVjMTAuNjY3IDAgMTYuNjY3LTIgMTgtNiAyLTIuNjY3IDEtOS42NjctMy0yMS0zMi04Ny4zMzMtODIuNjY3LTE1Ny42Njdcbi0xNTItMjExbC0zLTNoMzk5OTA3di00MHpNOTMgMjgxIEg0MDAwMDAgdi00MEw3IDI0MXoiLGxlZnRoYXJwb29uZG93bnBsdXM6Ik03IDQzNWMtNCA0LTYuMyA4LjctNyAxNCAwIDUuMy43IDkgMiAxMXM1LjMgNS4zIDEyXG4gMTBjOTAuNyA1NCAxNTYgMTMwIDE5NiAyMjggMy4zIDEwLjcgNi4zIDE2LjMgOSAxNyAyIC43IDUgMSA5IDFoNWMxMC43IDAgMTYuN1xuLTIgMTgtNiAyLTIuNyAxLTkuNy0zLTIxLTMyLTg3LjMtODIuNy0xNTcuNy0xNTItMjExbC0zLTNoMzk5OTA3di00MEg3em05MyAwXG52NDBoMzk5OTAwdi00MHpNMCAyNDF2NDBoMzk5OTAwdi00MHptMCAwdjQwaDM5OTkwMHYtNDB6IixsZWZ0aG9vazoiTTQwMDAwMCAyODEgSDEwM3MtMzMtMTEuMi02MS0zMy41UzAgMTk3LjMgMCAxNjRzMTQuMi02MS4yIDQyLjVcbi04My41QzcwLjggNTguMiAxMDQgNDcgMTQyIDQ3IGMxNi43IDAgMjUgNi43IDI1IDIwIDAgMTItOC43IDE4LjctMjYgMjAtNDAgMy4zXG4tNjguNyAxNS43LTg2IDM3LTEwIDEyLTE1IDI1LjMtMTUgNDAgMCAyMi43IDkuOCA0MC43IDI5LjUgNTQgMTkuNyAxMy4zIDQzLjUgMjFcbiA3MS41IDIzaDM5OTg1OXpNMTAzIDI4MXYtNDBoMzk5ODk3djQweiIsbGVmdGxpbmVzZWdtZW50OiJNNDAgMjgxIFY0MjggSDAgVjk0IEg0MCBWMjQxIEg0MDAwMDAgdjQwelxuTTQwIDI4MSBWNDI4IEgwIFY5NCBINDAgVjI0MSBINDAwMDAwIHY0MHoiLGxlZnRtYXBzdG86Ik00MCAyODEgVjQ0OEgwVjc0SDQwVjI0MUg0MDAwMDB2NDB6XG5NNDAgMjgxIFY0NDhIMFY3NEg0MFYyNDFINDAwMDAwdjQweiIsbGVmdFRvRnJvbToiTTAgMTQ3aDQwMDAwMHY0MEgwem0wIDIxNGM2OCA0MCAxMTUuNyA5NS43IDE0MyAxNjdoMjJjMTUuMyAwIDIzXG4tLjMgMjMtMSAwLTEuMy01LjMtMTMuNy0xNi0zNy0xOC0zNS4zLTQxLjMtNjktNzAtMTAxbC03LThoMzk5OTA1di00MEg5NWw3LThcbmMyOC43LTMyIDUyLTY1LjcgNzAtMTAxIDEwLjctMjMuMyAxNi0zNS43IDE2LTM3IDAtLjctNy43LTEtMjMtMWgtMjJDMTE1LjcgMjY1LjNcbiA2OCAzMjEgMCAzNjF6bTAtMTc0di00MGgzOTk5MDB2NDB6bTEwMCAxNTR2NDBoMzk5OTAwdi00MHoiLGxvbmdlcXVhbDoiTTAgNTAgaDQwMDAwMCB2NDBIMHogbTAgMTk0aDQwMDAwdjQwSDB6XG5NMCA1MCBoNDAwMDAwIHY0MEgweiBtMCAxOTRoNDAwMDB2NDBIMHoiLG1pZGJyYWNlOiJNMjAwNDI4IDMzNFxuYy0xMDAuNy04LjMtMTk1LjMtNDQtMjgwLTEwOC01NS4zLTQyLTEwMS43LTkzLTEzOS0xNTNsLTktMTRjLTIuNyA0LTUuNyA4LjctOSAxNFxuLTUzLjMgODYuNy0xMjMuNyAxNTMtMjExIDE5OS02Ni43IDM2LTEzNy4zIDU2LjMtMjEyIDYySDBWMjE0aDE5OTU2OGMxNzguMy0xMS43XG4gMzExLjctNzguMyA0MDMtMjAxIDYtOCA5LjctMTIgMTEtMTIgLjctLjcgNi43LTEgMTgtMXMxNy4zLjMgMTggMWMxLjMgMCA1IDQgMTFcbiAxMiA0NC43IDU5LjMgMTAxLjMgMTA2LjMgMTcwIDE0MXMxNDUuMyA1NC4zIDIyOSA2MGgxOTk1NzJ2MTIweiIsbWlkYnJhY2V1bmRlcjoiTTE5OTU3MiAyMTRcbmMxMDAuNyA4LjMgMTk1LjMgNDQgMjgwIDEwOCA1NS4zIDQyIDEwMS43IDkzIDEzOSAxNTNsOSAxNGMyLjctNCA1LjctOC43IDktMTRcbiA1My4zLTg2LjcgMTIzLjctMTUzIDIxMS0xOTkgNjYuNy0zNiAxMzcuMy01Ni4zIDIxMi02MmgxOTk1Njh2MTIwSDIwMDQzMmMtMTc4LjNcbiAxMS43LTMxMS43IDc4LjMtNDAzIDIwMS02IDgtOS43IDEyLTExIDEyLS43LjctNi43IDEtMTggMXMtMTcuMy0uMy0xOC0xYy0xLjMgMFxuLTUtNC0xMS0xMi00NC43LTU5LjMtMTAxLjMtMTA2LjMtMTcwLTE0MXMtMTQ1LjMtNTQuMy0yMjktNjBIMFYyMTR6IixvaWludFNpemUxOiJNNTEyLjYgNzEuNmMyNzIuNiAwIDMyMC4zIDEwNi44IDMyMC4zIDE3OC4yIDAgNzAuOC00Ny43IDE3Ny42XG4tMzIwLjMgMTc3LjZTMTkzLjEgMzIwLjYgMTkzLjEgMjQ5LjhjMC03MS40IDQ2LjktMTc4LjIgMzE5LjUtMTc4LjJ6XG5tMzY4LjEgMTc4LjJjMC04Ni40LTYwLjktMjE1LjQtMzY4LjEtMjE1LjQtMzA2LjQgMC0zNjcuMyAxMjktMzY3LjMgMjE1LjQgMCA4NS44XG42MC45IDIxNC44IDM2Ny4zIDIxNC44IDMwNy4yIDAgMzY4LjEtMTI5IDM2OC4xLTIxNC44eiIsb2lpbnRTaXplMjoiTTc1Ny44IDEwMC4xYzM4NC43IDAgNDUxLjEgMTM3LjYgNDUxLjEgMjMwIDAgOTEuMy02Ni40IDIyOC44XG4tNDUxLjEgMjI4LjgtMzg2LjMgMC00NTIuNy0xMzcuNS00NTIuNy0yMjguOCAwLTkyLjQgNjYuNC0yMzAgNDUyLjctMjMwelxubTUwMi40IDIzMGMwLTExMS4yLTgyLjQtMjc3LjItNTAyLjQtMjc3LjJzLTUwNCAxNjYtNTA0IDI3Ny4yXG5jMCAxMTAgODQgMjc2IDUwNCAyNzZzNTAyLjQtMTY2IDUwMi40LTI3NnoiLG9paWludFNpemUxOiJNNjgxLjQgNzEuNmM0MDguOSAwIDQ4MC41IDEwNi44IDQ4MC41IDE3OC4yIDAgNzAuOC03MS42IDE3Ny42XG4tNDgwLjUgMTc3LjZTMjAyLjEgMzIwLjYgMjAyLjEgMjQ5LjhjMC03MS40IDcwLjUtMTc4LjIgNDc5LjMtMTc4LjJ6XG5tNTI1LjggMTc4LjJjMC04Ni40LTg2LjgtMjE1LjQtNTI1LjctMjE1LjQtNDM3LjkgMC01MjQuNyAxMjktNTI0LjcgMjE1LjQgMFxuODUuOCA4Ni44IDIxNC44IDUyNC43IDIxNC44IDQzOC45IDAgNTI1LjctMTI5IDUyNS43LTIxNC44eiIsb2lpaW50U2l6ZTI6Ik0xMDIxLjIgNTNjNjAzLjYgMCA3MDcuOCAxNjUuOCA3MDcuOCAyNzcuMiAwIDExMC0xMDQuMiAyNzUuOFxuLTcwNy44IDI3NS44LTYwNiAwLTcxMC4yLTE2NS44LTcxMC4yLTI3NS44QzMxMSAyMTguOCA0MTUuMiA1MyAxMDIxLjIgNTN6XG5tNzcwLjQgMjc3LjFjMC0xMzEuMi0xMjYuNC0zMjcuNi03NzAuNS0zMjcuNlMyNDguNCAxOTguOSAyNDguNCAzMzAuMVxuYzAgMTMwIDEyOC44IDMyNi40IDc3Mi43IDMyNi40czc3MC41LTE5Ni40IDc3MC41LTMyNi40eiIscmlnaHRhcnJvdzoiTTAgMjQxdjQwaDM5OTg5MWMtNDcuMyAzNS4zLTg0IDc4LTExMCAxMjhcbi0xNi43IDMyLTI3LjcgNjMuNy0zMyA5NSAwIDEuMy0uMiAyLjctLjUgNC0uMyAxLjMtLjUgMi4zLS41IDMgMCA3LjMgNi43IDExIDIwXG4gMTEgOCAwIDEzLjItLjggMTUuNS0yLjUgMi4zLTEuNyA0LjItNS41IDUuNS0xMS41IDItMTMuMyA1LjctMjcgMTEtNDEgMTQuNy00NC43XG4gMzktODQuNSA3My0xMTkuNXM3My43LTYwLjIgMTE5LTc1LjVjNi0yIDktNS43IDktMTFzLTMtOS05LTExYy00NS4zLTE1LjMtODVcbi00MC41LTExOS03NS41cy01OC4zLTc0LjgtNzMtMTE5LjVjLTQuNy0xNC04LjMtMjcuMy0xMS00MC0xLjMtNi43LTMuMi0xMC44LTUuNVxuLTEyLjUtMi4zLTEuNy03LjUtMi41LTE1LjUtMi41LTE0IDAtMjEgMy43LTIxIDExIDAgMiAyIDEwLjMgNiAyNSAyMC43IDgzLjMgNjdcbiAxNTEuNyAxMzkgMjA1em0wIDB2NDBoMzk5OTAwdi00MHoiLHJpZ2h0YnJhY2U6Ik00MDAwMDAgNTQybFxuLTYgNmgtMTdjLTEyLjcgMC0xOS4zLS4zLTIwLTEtNC00LTcuMy04LjMtMTAtMTMtMzUuMy01MS4zLTgwLjgtOTMuOC0xMzYuNS0xMjcuNVxucy0xMTcuMi01NS44LTE4NC41LTY2LjVjLS43IDAtMi0uMy00LTEtMTguNy0yLjctNzYtNC4zLTE3Mi01SDBWMjE0aDM5OTU3MWw2IDFcbmMxMjQuNyA4IDIzNSA2MS43IDMzMSAxNjEgMzEuMyAzMy4zIDU5LjcgNzIuNyA4NSAxMThsNyAxM3YzNXoiLHJpZ2h0YnJhY2V1bmRlcjoiTTM5OTk5NCAwbDYgNnYzNWwtNiAxMWMtNTYgMTA0LTEzNS4zIDE4MS4zLTIzOCAyMzItNTcuM1xuIDI4LjctMTE3IDQ1LTE3OSA1MEgtMzAwVjIxNGgzOTk4OTdjNDMuMy03IDgxLTE1IDExMy0yNiAxMDAuNy0zMyAxNzkuNy05MSAyMzdcbi0xNzQgMi43LTUgNi05IDEwLTEzIC43LTEgNy4zLTEgMjAtMWgxN3oiLHJpZ2h0Z3JvdXA6Ik0wIDgwaDM5OTU2NWMzNzEgMCAyNjYuNyAxNDkuNCA0MTQgMTgwIDUuOSAxLjIgMTggMCAxOCAwIDIgMFxuIDMtMSAzLTN2LTM4Yy03Ni0xNTgtMjU3LTIxOS00MzUtMjE5SDB6IixyaWdodGdyb3VwdW5kZXI6Ik0wIDI2MmgzOTk1NjVjMzcxIDAgMjY2LjctMTQ5LjQgNDE0LTE4MCA1LjktMS4yIDE4IDAgMThcbiAwIDIgMCAzIDEgMyAzdjM4Yy03NiAxNTgtMjU3IDIxOS00MzUgMjE5SDB6IixyaWdodGhhcnBvb246Ik0wIDI0MXY0MGgzOTk5OTNjNC43LTQuNyA3LTkuMyA3LTE0IDAtOS4zXG4tMy43LTE1LjMtMTEtMTgtOTIuNy01Ni43LTE1OS0xMzMuNy0xOTktMjMxLTMuMy05LjMtNi0xNC43LTgtMTYtMi0xLjMtNy0yLTE1LTJcbi0xMC43IDAtMTYuNyAyLTE4IDYtMiAyLjctMSA5LjcgMyAyMSAxNS4zIDQyIDM2LjcgODEuOCA2NCAxMTkuNSAyNy4zIDM3LjcgNThcbiA2OS4yIDkyIDk0LjV6bTAgMHY0MGgzOTk5MDB2LTQweiIscmlnaHRoYXJwb29ucGx1czoiTTAgMjQxdjQwaDM5OTk5M2M0LjctNC43IDctOS4zIDctMTQgMC05LjMtMy43LTE1LjMtMTFcbi0xOC05Mi43LTU2LjctMTU5LTEzMy43LTE5OS0yMzEtMy4zLTkuMy02LTE0LjctOC0xNi0yLTEuMy03LTItMTUtMi0xMC43IDAtMTYuN1xuIDItMTggNi0yIDIuNy0xIDkuNyAzIDIxIDE1LjMgNDIgMzYuNyA4MS44IDY0IDExOS41IDI3LjMgMzcuNyA1OCA2OS4yIDkyIDk0LjV6XG5tMCAwdjQwaDM5OTkwMHYtNDB6IG0xMDAgMTk0djQwaDM5OTkwMHYtNDB6bTAgMHY0MGgzOTk5MDB2LTQweiIscmlnaHRoYXJwb29uZG93bjoiTTM5OTc0NyA1MTFjMCA3LjMgNi43IDExIDIwIDExIDggMCAxMy0uOCAxNS0yLjVzNC43LTYuOFxuIDgtMTUuNWM0MC05NCA5OS4zLTE2Ni4zIDE3OC0yMTcgMTMuMy04IDIwLjMtMTIuMyAyMS0xMyA1LjMtMy4zIDguNS01LjggOS41XG4tNy41IDEtMS43IDEuNS01LjIgMS41LTEwLjVzLTIuMy0xMC4zLTctMTVIMHY0MGgzOTk5MDhjLTM0IDI1LjMtNjQuNyA1Ny05MiA5NVxuLTI3LjMgMzgtNDguNyA3Ny43LTY0IDExOS0zLjMgOC43LTUgMTQtNSAxNnpNMCAyNDF2NDBoMzk5OTAwdi00MHoiLHJpZ2h0aGFycG9vbmRvd25wbHVzOiJNMzk5NzQ3IDcwNWMwIDcuMyA2LjcgMTEgMjAgMTEgOCAwIDEzLS44XG4gMTUtMi41czQuNy02LjggOC0xNS41YzQwLTk0IDk5LjMtMTY2LjMgMTc4LTIxNyAxMy4zLTggMjAuMy0xMi4zIDIxLTEzIDUuMy0zLjNcbiA4LjUtNS44IDkuNS03LjUgMS0xLjcgMS41LTUuMiAxLjUtMTAuNXMtMi4zLTEwLjMtNy0xNUgwdjQwaDM5OTkwOGMtMzQgMjUuM1xuLTY0LjcgNTctOTIgOTUtMjcuMyAzOC00OC43IDc3LjctNjQgMTE5LTMuMyA4LjctNSAxNC01IDE2ek0wIDQzNXY0MGgzOTk5MDB2LTQwelxubTAtMTk0djQwaDQwMDAwMHYtNDB6bTAgMHY0MGg0MDAwMDB2LTQweiIscmlnaHRob29rOiJNMzk5ODU5IDI0MWMtNzY0IDAgMCAwIDAgMCA0MC0zLjMgNjguNy0xNS43IDg2LTM3IDEwLTEyIDE1LTI1LjNcbiAxNS00MCAwLTIyLjctOS44LTQwLjctMjkuNS01NC0xOS43LTEzLjMtNDMuNS0yMS03MS41LTIzLTE3LjMtMS4zLTI2LTgtMjYtMjAgMFxuLTEzLjMgOC43LTIwIDI2LTIwIDM4IDAgNzEgMTEuMiA5OSAzMy41IDAgMCA3IDUuNiAyMSAxNi43IDE0IDExLjIgMjEgMzMuNSAyMVxuIDY2LjhzLTE0IDYxLjItNDIgODMuNWMtMjggMjIuMy02MSAzMy41LTk5IDMzLjVMMCAyNDF6IE0wIDI4MXYtNDBoMzk5ODU5djQweiIscmlnaHRsaW5lc2VnbWVudDoiTTM5OTk2MCAyNDEgVjk0IGg0MCBWNDI4IGgtNDAgVjI4MSBIMCB2LTQwelxuTTM5OTk2MCAyNDEgVjk0IGg0MCBWNDI4IGgtNDAgVjI4MSBIMCB2LTQweiIscmlnaHRUb0Zyb206Ik00MDAwMDAgMTY3Yy03MC43LTQyLTExOC05Ny43LTE0Mi0xNjdoLTIzYy0xNS4zIDAtMjMgLjMtMjNcbiAxIDAgMS4zIDUuMyAxMy43IDE2IDM3IDE4IDM1LjMgNDEuMyA2OSA3MCAxMDFsNyA4SDB2NDBoMzk5OTA1bC03IDhjLTI4LjcgMzJcbi01MiA2NS43LTcwIDEwMS0xMC43IDIzLjMtMTYgMzUuNy0xNiAzNyAwIC43IDcuNyAxIDIzIDFoMjNjMjQtNjkuMyA3MS4zLTEyNSAxNDJcbi0xNjd6IE0xMDAgMTQ3djQwaDM5OTkwMHYtNDB6TTAgMzQxdjQwaDM5OTkwMHYtNDB6Iix0d29oZWFkbGVmdGFycm93OiJNMCAxNjdjNjggNDBcbiAxMTUuNyA5NS43IDE0MyAxNjdoMjJjMTUuMyAwIDIzLS4zIDIzLTEgMC0xLjMtNS4zLTEzLjctMTYtMzctMTgtMzUuMy00MS4zLTY5XG4tNzAtMTAxbC03LThoMTI1bDkgN2M1MC43IDM5LjMgODUgODYgMTAzIDE0MGg0NmMwLTQuNy02LjMtMTguNy0xOS00Mi0xOC0zNS4zXG4tNDAtNjcuMy02Ni05NmwtOS05aDM5OTcxNnYtNDBIMjg0bDktOWMyNi0yOC43IDQ4LTYwLjcgNjYtOTYgMTIuNy0yMy4zMzMgMTlcbi0zNy4zMzMgMTktNDJoLTQ2Yy0xOCA1NC01Mi4zIDEwMC43LTEwMyAxNDBsLTkgN0g5NWw3LThjMjguNy0zMiA1Mi02NS43IDcwLTEwMVxuIDEwLjctMjMuMzMzIDE2LTM1LjcgMTYtMzcgMC0uNy03LjctMS0yMy0xaC0yMkMxMTUuNyA3MS4zIDY4IDEyNyAwIDE2N3oiLHR3b2hlYWRyaWdodGFycm93OiJNNDAwMDAwIDE2N1xuYy02OC00MC0xMTUuNy05NS43LTE0My0xNjdoLTIyYy0xNS4zIDAtMjMgLjMtMjMgMSAwIDEuMyA1LjMgMTMuNyAxNiAzNyAxOCAzNS4zXG4gNDEuMyA2OSA3MCAxMDFsNyA4aC0xMjVsLTktN2MtNTAuNy0zOS4zLTg1LTg2LTEwMy0xNDBoLTQ2YzAgNC43IDYuMyAxOC43IDE5IDQyXG4gMTggMzUuMyA0MCA2Ny4zIDY2IDk2bDkgOUgwdjQwaDM5OTcxNmwtOSA5Yy0yNiAyOC43LTQ4IDYwLjctNjYgOTYtMTIuNyAyMy4zMzNcbi0xOSAzNy4zMzMtMTkgNDJoNDZjMTgtNTQgNTIuMy0xMDAuNyAxMDMtMTQwbDktN2gxMjVsLTcgOGMtMjguNyAzMi01MiA2NS43LTcwXG4gMTAxLTEwLjcgMjMuMzMzLTE2IDM1LjctMTYgMzcgMCAuNyA3LjcgMSAyMyAxaDIyYzI3LjMtNzEuMyA3NS0xMjcgMTQzLTE2N3oiLHRpbGRlMToiTTIwMCA1NS41MzhjLTc3IDAtMTY4IDczLjk1My0xNzcgNzMuOTUzLTMgMC03XG4tMi4xNzUtOS01LjQzN0wyIDk3Yy0xLTItMi00LTItNiAwLTQgMi03IDUtOWwyMC0xMkMxMTYgMTIgMTcxIDAgMjA3IDBjODYgMFxuIDExNCA2OCAxOTEgNjggNzggMCAxNjgtNjggMTc3LTY4IDQgMCA3IDIgOSA1bDEyIDE5YzEgMi4xNzUgMiA0LjM1IDIgNi41MjUgMFxuIDQuMzUtMiA3LjYxMy01IDkuNzg4bC0xOSAxMy4wNWMtOTIgNjMuMDc3LTExNi45MzcgNzUuMzA4LTE4MyA3Ni4xMjhcbi02OC4yNjcuODQ3LTExMy03My45NTItMTkxLTczLjk1MnoiLHRpbGRlMjoiTTM0NCA1NS4yNjZjLTE0MiAwLTMwMC42MzggODEuMzE2LTMxMS41IDg2LjQxOFxuLTguMDEgMy43NjItMjIuNSAxMC45MS0yMy41IDUuNTYyTDEgMTIwYy0xLTItMS0zLTEtNCAwLTUgMy05IDgtMTBsMTguNC05QzE2MC45XG4gMzEuOSAyODMgMCAzNTggMGMxNDggMCAxODggMTIyIDMzMSAxMjJzMzE0LTk3IDMyNi05N2M0IDAgOCAyIDEwIDdsNyAyMS4xMTRcbmMxIDIuMTQgMSAzLjIxIDEgNC4yOCAwIDUuMzQ3LTMgOS42MjYtNyAxMC42OTZsLTIyLjMgMTIuNjIyQzg1Mi42IDE1OC4zNzIgNzUxXG4gMTgxLjQ3NiA2NzYgMTgxLjQ3NmMtMTQ5IDAtMTg5LTEyNi4yMS0zMzItMTI2LjIxeiIsdGlsZGUzOiJNNzg2IDU5QzQ1NyA1OSAzMiAxNzUuMjQyIDEzIDE3NS4yNDJjLTYgMC0xMC0zLjQ1N1xuLTExLTEwLjM3TC4xNSAxMzhjLTEtNyAzLTEyIDEwLTEzbDE5LjItNi40QzM3OC40IDQwLjcgNjM0LjMgMCA4MDQuMyAwYzMzNyAwXG4gNDExLjggMTU3IDc0Ni44IDE1NyAzMjggMCA3NTQtMTEyIDc3My0xMTIgNSAwIDEwIDMgMTEgOWwxIDE0LjA3NWMxIDguMDY2LS42OTdcbiAxNi41OTUtNi42OTcgMTcuNDkybC0yMS4wNTIgNy4zMWMtMzY3LjkgOTguMTQ2LTYwOS4xNSAxMjIuNjk2LTc3OC4xNSAxMjIuNjk2XG4gLTMzOCAwLTQwOS0xNTYuNTczLTc0NC0xNTYuNTczeiIsdGlsZGU0OiJNNzg2IDU4QzQ1NyA1OCAzMiAxNzcuNDg3IDEzIDE3Ny40ODdjLTYgMC0xMC0zLjM0NVxuLTExLTEwLjAzNUwuMTUgMTQzYy0xLTcgMy0xMiAxMC0xM2wyMi02LjdDMzgxLjIgMzUgNjM3LjE1IDAgODA3LjE1IDBjMzM3IDAgNDA5XG4gMTc3IDc0NCAxNzcgMzI4IDAgNzU0LTEyNyA3NzMtMTI3IDUgMCAxMCAzIDExIDlsMSAxNC43OTRjMSA3LjgwNS0zIDEzLjM4LTlcbiAxNC40OTVsLTIwLjcgNS41NzRjLTM2Ni44NSA5OS43OS02MDcuMyAxMzkuMzcyLTc3Ni4zIDEzOS4zNzItMzM4IDAtNDA5XG4gLTE3NS4yMzYtNzQ0LTE3NS4yMzZ6Iix2ZWM6Ik0zNzcgMjBjMC01LjMzMyAxLjgzMy0xMCA1LjUtMTRTMzkxIDAgMzk3IDBjNC42NjcgMCA4LjY2NyAxLjY2NyAxMiA1XG4zLjMzMyAyLjY2NyA2LjY2NyA5IDEwIDE5IDYuNjY3IDI0LjY2NyAyMC4zMzMgNDMuNjY3IDQxIDU3IDcuMzMzIDQuNjY3IDExXG4xMC42NjcgMTEgMTggMCA2LTEgMTAtMyAxMnMtNi42NjcgNS0xNCA5Yy0yOC42NjcgMTQuNjY3LTUzLjY2NyAzNS42NjctNzUgNjNcbi0xLjMzMyAxLjMzMy0zLjE2NyAzLjUtNS41IDYuNXMtNCA0LjgzMy01IDUuNWMtMSAuNjY3LTIuNSAxLjMzMy00LjUgMnMtNC4zMzMgMVxuLTcgMWMtNC42NjcgMC05LjE2Ny0xLjgzMy0xMy41LTUuNVMzMzcgMTg0IDMzNyAxNzhjMC0xMi42NjcgMTUuNjY3LTMyLjMzMyA0Ny01OVxuSDIxM2wtMTcxLTFjLTguNjY3LTYtMTMtMTIuMzMzLTEzLTE5IDAtNC42NjcgNC4zMzMtMTEuMzMzIDEzLTIwaDM1OVxuYy0xNi0yNS4zMzMtMjQtNDUtMjQtNTl6Iix3aWRlaGF0MToiTTUyOSAwaDVsNTE5IDExNWM1IDEgOSA1IDkgMTAgMCAxLTEgMi0xIDNsLTQgMjJcbmMtMSA1LTUgOS0xMSA5aC0yTDUzMiA2NyAxOSAxNTloLTJjLTUgMC05LTQtMTEtOWwtNS0yMmMtMS02IDItMTIgOC0xM3oiLHdpZGVoYXQyOiJNMTE4MSAwaDJsMTE3MSAxNzZjNiAwIDEwIDUgMTAgMTFsLTIgMjNjLTEgNi01IDEwXG4tMTEgMTBoLTFMMTE4MiA2NyAxNSAyMjBoLTFjLTYgMC0xMC00LTExLTEwbC0yLTIzYy0xLTYgNC0xMSAxMC0xMXoiLHdpZGVoYXQzOiJNMTE4MSAwaDJsMTE3MSAyMzZjNiAwIDEwIDUgMTAgMTFsLTIgMjNjLTEgNi01IDEwXG4tMTEgMTBoLTFMMTE4MiA2NyAxNSAyODBoLTFjLTYgMC0xMC00LTExLTEwbC0yLTIzYy0xLTYgNC0xMSAxMC0xMXoiLHdpZGVoYXQ0OiJNMTE4MSAwaDJsMTE3MSAyOTZjNiAwIDEwIDUgMTAgMTFsLTIgMjNjLTEgNi01IDEwXG4tMTEgMTBoLTFMMTE4MiA2NyAxNSAzNDBoLTFjLTYgMC0xMC00LTExLTEwbC0yLTIzYy0xLTYgNC0xMSAxMC0xMXoiLHdpZGVjaGVjazE6Ik01MjksMTU5aDVsNTE5LC0xMTVjNSwtMSw5LC01LDksLTEwYzAsLTEsLTEsLTIsLTEsLTNsLTQsLTIyYy0xLFxuLTUsLTUsLTksLTExLC05aC0ybC01MTIsOTJsLTUxMywtOTJoLTJjLTUsMCwtOSw0LC0xMSw5bC01LDIyYy0xLDYsMiwxMiw4LDEzeiIsd2lkZWNoZWNrMjoiTTExODEsMjIwaDJsMTE3MSwtMTc2YzYsMCwxMCwtNSwxMCwtMTFsLTIsLTIzYy0xLC02LC01LC0xMCxcbi0xMSwtMTBoLTFsLTExNjgsMTUzbC0xMTY3LC0xNTNoLTFjLTYsMCwtMTAsNCwtMTEsMTBsLTIsMjNjLTEsNiw0LDExLDEwLDExeiIsd2lkZWNoZWNrMzoiTTExODEsMjgwaDJsMTE3MSwtMjM2YzYsMCwxMCwtNSwxMCwtMTFsLTIsLTIzYy0xLC02LC01LC0xMCxcbi0xMSwtMTBoLTFsLTExNjgsMjEzbC0xMTY3LC0yMTNoLTFjLTYsMCwtMTAsNCwtMTEsMTBsLTIsMjNjLTEsNiw0LDExLDEwLDExeiIsd2lkZWNoZWNrNDoiTTExODEsMzQwaDJsMTE3MSwtMjk2YzYsMCwxMCwtNSwxMCwtMTFsLTIsLTIzYy0xLC02LC01LC0xMCxcbi0xMSwtMTBoLTFsLTExNjgsMjczbC0xMTY3LC0yNzNoLTFjLTYsMCwtMTAsNCwtMTEsMTBsLTIsMjNjLTEsNiw0LDExLDEwLDExeiIsYmFyYWJvdmVsZWZ0YXJyb3c6Ik00MDAwMDAgNjIwaC0zOTk4OTBsMyAtM2M2OC43IC01Mi43IDExMy43IC0xMjAgMTM1IC0yMDJcbmM0IC0xNC43IDYgLTIzIDYgLTI1YzAgLTcuMyAtNyAtMTEgLTIxIC0xMWMtOCAwIC0xMy4yIDAuOCAtMTUuNSAyLjVcbmMtMi4zIDEuNyAtNC4yIDUuOCAtNS41IDEyLjVjLTEuMyA0LjcgLTIuNyAxMC4zIC00IDE3Yy0xMiA0OC43IC0zNC44IDkyIC02OC41IDEzMFxucy03NC4yIDY2LjMgLTEyMS41IDg1Yy0xMCA0IC0xNiA3LjcgLTE4IDExYzAgOC43IDYgMTQuMyAxOCAxN2M0Ny4zIDE4LjcgODcuOCA0N1xuMTIxLjUgODVzNTYuNSA4MS4zIDY4LjUgMTMwYzAuNyAyIDEuMyA1IDIgOXMxLjIgNi43IDEuNSA4YzAuMyAxLjMgMSAzLjMgMiA2XG5zMi4yIDQuNSAzLjUgNS41YzEuMyAxIDMuMyAxLjggNiAyLjVzNiAxIDEwIDFjMTQgMCAyMSAtMy43IDIxIC0xMVxuYzAgLTIgLTIgLTEwLjMgLTYgLTI1Yy0yMCAtNzkuMyAtNjUgLTE0Ni43IC0xMzUgLTIwMmwtMyAtM2gzOTk4OTB6XG5NMTAwIDYyMHY0MGgzOTk5MDB2LTQweiBNMCAyNDF2NDBoMzk5OTAwdi00MHpNMCAyNDF2NDBoMzk5OTAwdi00MHoiLHJpZ2h0YXJyb3dhYm92ZWJhcjoiTTAgMjQxdjQwaDM5OTg5MWMtNDcuMyAzNS4zLTg0IDc4LTExMCAxMjgtMTYuNyAzMlxuLTI3LjcgNjMuNy0zMyA5NSAwIDEuMy0uMiAyLjctLjUgNC0uMyAxLjMtLjUgMi4zLS41IDMgMCA3LjMgNi43IDExIDIwIDExIDggMFxuMTMuMi0uOCAxNS41LTIuNSAyLjMtMS43IDQuMi01LjUgNS41LTExLjUgMi0xMy4zIDUuNy0yNyAxMS00MSAxNC43LTQ0LjcgMzlcbi04NC41IDczLTExOS41czczLjctNjAuMiAxMTktNzUuNWM2LTIgOS01LjcgOS0xMXMtMy05LTktMTFjLTQ1LjMtMTUuMy04NS00MC41XG4tMTE5LTc1LjVzLTU4LjMtNzQuOC03My0xMTkuNWMtNC43LTE0LTguMy0yNy4zLTExLTQwLTEuMy02LjctMy4yLTEwLjgtNS41XG4tMTIuNS0yLjMtMS43LTcuNS0yLjUtMTUuNS0yLjUtMTQgMC0yMSAzLjctMjEgMTEgMCAyIDIgMTAuMyA2IDI1IDIwLjcgODMuMyA2N1xuMTUxLjcgMTM5IDIwNXptOTYgMzc5aDM5OTg5NHY0MEgwem0wIDBoMzk5OTA0djQwSDB6IixiYXJhYm92ZXNob3J0bGVmdGhhcnBvb246Ik01MDcsNDM1Yy00LDQsLTYuMyw4LjcsLTcsMTRjMCw1LjMsMC43LDksMiwxMVxuYzEuMywyLDUuMyw1LjMsMTIsMTBjOTAuNyw1NCwxNTYsMTMwLDE5NiwyMjhjMy4zLDEwLjcsNi4zLDE2LjMsOSwxN1xuYzIsMC43LDUsMSw5LDFjMCwwLDUsMCw1LDBjMTAuNywwLDE2LjcsLTIsMTgsLTZjMiwtMi43LDEsLTkuNywtMywtMjFcbmMtMzIsLTg3LjMsLTgyLjcsLTE1Ny43LC0xNTIsLTIxMWMwLDAsLTMsLTMsLTMsLTNsMzk5MzUxLDBsMCwtNDBcbmMtMzk4NTcwLDAsLTM5OTQzNywwLC0zOTk0MzcsMHogTTU5MyA0MzUgdjQwIEgzOTk1MDAgdi00MHpcbk0wIDI4MSB2LTQwIEgzOTk5MDggdjQweiBNMCAyODEgdi00MCBIMzk5OTA4IHY0MHoiLHJpZ2h0aGFycG9vbmFib3Zlc2hvcnRiYXI6Ik0wLDI0MSBsMCw0MGMzOTkxMjYsMCwzOTk5OTMsMCwzOTk5OTMsMFxuYzQuNywtNC43LDcsLTkuMyw3LC0xNGMwLC05LjMsLTMuNywtMTUuMywtMTEsLTE4Yy05Mi43LC01Ni43LC0xNTksLTEzMy43LC0xOTksXG4tMjMxYy0zLjMsLTkuMywtNiwtMTQuNywtOCwtMTZjLTIsLTEuMywtNywtMiwtMTUsLTJjLTEwLjcsMCwtMTYuNywyLC0xOCw2XG5jLTIsMi43LC0xLDkuNywzLDIxYzE1LjMsNDIsMzYuNyw4MS44LDY0LDExOS41YzI3LjMsMzcuNyw1OCw2OS4yLDkyLDk0LjV6XG5NMCAyNDEgdjQwIEgzOTk5MDggdi00MHogTTAgNDc1IHYtNDAgSDM5OTUwMCB2NDB6IE0wIDQ3NSB2LTQwIEgzOTk1MDAgdjQweiIsc2hvcnRiYXJhYm92ZWxlZnRoYXJwb29uOiJNNyw0MzVjLTQsNCwtNi4zLDguNywtNywxNGMwLDUuMywwLjcsOSwyLDExXG5jMS4zLDIsNS4zLDUuMywxMiwxMGM5MC43LDU0LDE1NiwxMzAsMTk2LDIyOGMzLjMsMTAuNyw2LjMsMTYuMyw5LDE3YzIsMC43LDUsMSw5LFxuMWMwLDAsNSwwLDUsMGMxMC43LDAsMTYuNywtMiwxOCwtNmMyLC0yLjcsMSwtOS43LC0zLC0yMWMtMzIsLTg3LjMsLTgyLjcsLTE1Ny43LFxuLTE1MiwtMjExYzAsMCwtMywtMywtMywtM2wzOTk5MDcsMGwwLC00MGMtMzk5MTI2LDAsLTM5OTk5MywwLC0zOTk5OTMsMHpcbk05MyA0MzUgdjQwIEg0MDAwMDAgdi00MHogTTUwMCAyNDEgdjQwIEg0MDAwMDAgdi00MHogTTUwMCAyNDEgdjQwIEg0MDAwMDAgdi00MHoiLHNob3J0cmlnaHRoYXJwb29uYWJvdmViYXI6Ik01MywyNDFsMCw0MGMzOTg1NzAsMCwzOTk0MzcsMCwzOTk0MzcsMFxuYzQuNywtNC43LDcsLTkuMyw3LC0xNGMwLC05LjMsLTMuNywtMTUuMywtMTEsLTE4Yy05Mi43LC01Ni43LC0xNTksLTEzMy43LC0xOTksXG4tMjMxYy0zLjMsLTkuMywtNiwtMTQuNywtOCwtMTZjLTIsLTEuMywtNywtMiwtMTUsLTJjLTEwLjcsMCwtMTYuNywyLC0xOCw2XG5jLTIsMi43LC0xLDkuNywzLDIxYzE1LjMsNDIsMzYuNyw4MS44LDY0LDExOS41YzI3LjMsMzcuNyw1OCw2OS4yLDkyLDk0LjV6XG5NNTAwIDI0MSB2NDAgSDM5OTQwOCB2LTQweiBNNTAwIDQzNSB2NDAgSDQwMDAwMCB2LTQweiJ9O2NsYXNzIEF7Y29uc3RydWN0b3IoZSl7dGhpcy5jaGlsZHJlbj12b2lkIDAsdGhpcy5jbGFzc2VzPXZvaWQgMCx0aGlzLmhlaWdodD12b2lkIDAsdGhpcy5kZXB0aD12b2lkIDAsdGhpcy5tYXhGb250U2l6ZT12b2lkIDAsdGhpcy5zdHlsZT12b2lkIDAsdGhpcy5jaGlsZHJlbj1lLHRoaXMuY2xhc3Nlcz1bXSx0aGlzLmhlaWdodD0wLHRoaXMuZGVwdGg9MCx0aGlzLm1heEZvbnRTaXplPTAsdGhpcy5zdHlsZT17fX1oYXNDbGFzcyhlKXtyZXR1cm4gbC5jb250YWlucyh0aGlzLmNsYXNzZXMsZSl9dG9Ob2RlKCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKGxldCB0PTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0KyspZS5hcHBlbmRDaGlsZCh0aGlzLmNoaWxkcmVuW3RdLnRvTm9kZSgpKTtyZXR1cm4gZX10b01hcmt1cCgpe2xldCBlPSIiO2ZvcihsZXQgdD0wO3Q8dGhpcy5jaGlsZHJlbi5sZW5ndGg7dCsrKWUrPXRoaXMuY2hpbGRyZW5bdF0udG9NYXJrdXAoKTtyZXR1cm4gZX10b1RleHQoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5tYXAoKGU9PmUudG9UZXh0KCkpKS5qb2luKCIiKX19dmFyIFQ9eyJBTVMtUmVndWxhciI6ezMyOlswLDAsMCwwLC4yNV0sNjU6WzAsLjY4ODg5LDAsMCwuNzIyMjJdLDY2OlswLC42ODg4OSwwLDAsLjY2NjY3XSw2NzpbMCwuNjg4ODksMCwwLC43MjIyMl0sNjg6WzAsLjY4ODg5LDAsMCwuNzIyMjJdLDY5OlswLC42ODg4OSwwLDAsLjY2NjY3XSw3MDpbMCwuNjg4ODksMCwwLC42MTExMV0sNzE6WzAsLjY4ODg5LDAsMCwuNzc3NzhdLDcyOlswLC42ODg4OSwwLDAsLjc3Nzc4XSw3MzpbMCwuNjg4ODksMCwwLC4zODg4OV0sNzQ6Wy4xNjY2NywuNjg4ODksMCwwLC41XSw3NTpbMCwuNjg4ODksMCwwLC43Nzc3OF0sNzY6WzAsLjY4ODg5LDAsMCwuNjY2NjddLDc3OlswLC42ODg4OSwwLDAsLjk0NDQ1XSw3ODpbMCwuNjg4ODksMCwwLC43MjIyMl0sNzk6Wy4xNjY2NywuNjg4ODksMCwwLC43Nzc3OF0sODA6WzAsLjY4ODg5LDAsMCwuNjExMTFdLDgxOlsuMTY2NjcsLjY4ODg5LDAsMCwuNzc3NzhdLDgyOlswLC42ODg4OSwwLDAsLjcyMjIyXSw4MzpbMCwuNjg4ODksMCwwLC41NTU1Nl0sODQ6WzAsLjY4ODg5LDAsMCwuNjY2NjddLDg1OlswLC42ODg4OSwwLDAsLjcyMjIyXSw4NjpbMCwuNjg4ODksMCwwLC43MjIyMl0sODc6WzAsLjY4ODg5LDAsMCwxXSw4ODpbMCwuNjg4ODksMCwwLC43MjIyMl0sODk6WzAsLjY4ODg5LDAsMCwuNzIyMjJdLDkwOlswLC42ODg4OSwwLDAsLjY2NjY3XSwxMDc6WzAsLjY4ODg5LDAsMCwuNTU1NTZdLDE2MDpbMCwwLDAsMCwuMjVdLDE2NTpbMCwuNjc1LC4wMjUsMCwuNzVdLDE3NDpbLjE1NTU5LC42OTIyNCwwLDAsLjk0NjY2XSwyNDA6WzAsLjY4ODg5LDAsMCwuNTU1NTZdLDI5NTpbMCwuNjg4ODksMCwwLC41NDAyOF0sNzEwOlswLC44MjUsMCwwLDIuMzMzMzRdLDczMjpbMCwuOSwwLDAsMi4zMzMzNF0sNzcwOlswLC44MjUsMCwwLDIuMzMzMzRdLDc3MTpbMCwuOSwwLDAsMi4zMzMzNF0sOTg5OlsuMDgxNjcsLjU4MTY3LDAsMCwuNzc3NzhdLDEwMDg6WzAsLjQzMDU2LC4wNDAyOCwwLC42NjY2N10sODI0NTpbMCwuNTQ5ODYsMCwwLC4yNzVdLDg0NjM6WzAsLjY4ODg5LDAsMCwuNTQwMjhdLDg0ODc6WzAsLjY4ODg5LDAsMCwuNzIyMjJdLDg0OTg6WzAsLjY4ODg5LDAsMCwuNTU1NTZdLDg1MDI6WzAsLjY4ODg5LDAsMCwuNjY2NjddLDg1MDM6WzAsLjY4ODg5LDAsMCwuNDQ0NDVdLDg1MDQ6WzAsLjY4ODg5LDAsMCwuNjY2NjddLDg1MTM6WzAsLjY4ODg5LDAsMCwuNjM4ODldLDg1OTI6Wy0uMDM1OTgsLjQ2NDAyLDAsMCwuNV0sODU5NDpbLS4wMzU5OCwuNDY0MDIsMCwwLC41XSw4NjAyOlstLjEzMzEzLC4zNjY4NywwLDAsMV0sODYwMzpbLS4xMzMxMywuMzY2ODcsMCwwLDFdLDg2MDY6Wy4wMTM1NCwuNTIyMzksMCwwLDFdLDg2MDg6Wy4wMTM1NCwuNTIyMzksMCwwLDFdLDg2MTA6Wy4wMTM1NCwuNTIyMzksMCwwLDEuMTExMTFdLDg2MTE6Wy4wMTM1NCwuNTIyMzksMCwwLDEuMTExMTFdLDg2MTk6WzAsLjU0OTg2LDAsMCwxXSw4NjIwOlswLC41NDk4NiwwLDAsMV0sODYyMTpbLS4xMzMxMywuMzc3ODgsMCwwLDEuMzg4ODldLDg2MjI6Wy0uMTMzMTMsLjM2Njg3LDAsMCwxXSw4NjI0OlswLC42OTIyNCwwLDAsLjVdLDg2MjU6WzAsLjY5MjI0LDAsMCwuNV0sODYzMDpbMCwuNDMwNTYsMCwwLDFdLDg2MzE6WzAsLjQzMDU2LDAsMCwxXSw4NjM0OlsuMDgxOTgsLjU4MTk4LDAsMCwuNzc3NzhdLDg2MzU6Wy4wODE5OCwuNTgxOTgsMCwwLC43Nzc3OF0sODYzODpbLjE5NDQ0LC42OTIyNCwwLDAsLjQxNjY3XSw4NjM5OlsuMTk0NDQsLjY5MjI0LDAsMCwuNDE2NjddLDg2NDI6Wy4xOTQ0NCwuNjkyMjQsMCwwLC40MTY2N10sODY0MzpbLjE5NDQ0LC42OTIyNCwwLDAsLjQxNjY3XSw4NjQ0OlsuMTgwOCwuNjc1LDAsMCwxXSw4NjQ2OlsuMTgwOCwuNjc1LDAsMCwxXSw4NjQ3OlsuMTgwOCwuNjc1LDAsMCwxXSw4NjQ4OlsuMTk0NDQsLjY5MjI0LDAsMCwuODMzMzRdLDg2NDk6Wy4xODA4LC42NzUsMCwwLDFdLDg2NTA6Wy4xOTQ0NCwuNjkyMjQsMCwwLC44MzMzNF0sODY1MTpbLjAxMzU0LC41MjIzOSwwLDAsMV0sODY1MjpbLjAxMzU0LC41MjIzOSwwLDAsMV0sODY1MzpbLS4xMzMxMywuMzY2ODcsMCwwLDFdLDg2NTQ6Wy0uMTMzMTMsLjM2Njg3LDAsMCwxXSw4NjU1OlstLjEzMzEzLC4zNjY4NywwLDAsMV0sODY2NjpbLjEzNjY3LC42MzY2NywwLDAsMV0sODY2NzpbLjEzNjY3LC42MzY2NywwLDAsMV0sODY2OTpbLS4xMzMxMywuMzc3ODgsMCwwLDFdLDg2NzI6Wy0uMDY0LC40MzcsMCwwLDEuMzM0XSw4Njc0OlstLjA2NCwuNDM3LDAsMCwxLjMzNF0sODcwNTpbMCwuODI1LDAsMCwuNV0sODcwODpbMCwuNjg4ODksMCwwLC41NTU1Nl0sODcwOTpbLjA4MTY3LC41ODE2NywwLDAsLjc3Nzc4XSw4NzE3OlswLC40MzA1NiwwLDAsLjQyOTE3XSw4NzIyOlstLjAzNTk4LC40NjQwMiwwLDAsLjVdLDg3MjQ6Wy4wODE5OCwuNjkyMjQsMCwwLC43Nzc3OF0sODcyNjpbLjA4MTY3LC41ODE2NywwLDAsLjc3Nzc4XSw4NzMzOlswLC42OTIyNCwwLDAsLjc3Nzc4XSw4NzM2OlswLC42OTIyNCwwLDAsLjcyMjIyXSw4NzM3OlswLC42OTIyNCwwLDAsLjcyMjIyXSw4NzM4OlsuMDM1MTcsLjUyMjM5LDAsMCwuNzIyMjJdLDg3Mzk6Wy4wODE2NywuNTgxNjcsMCwwLC4yMjIyMl0sODc0MDpbLjI1MTQyLC43NDExMSwwLDAsLjI3Nzc4XSw4NzQxOlsuMDgxNjcsLjU4MTY3LDAsMCwuMzg4ODldLDg3NDI6Wy4yNTE0MiwuNzQxMTEsMCwwLC41XSw4NzU2OlswLC42OTIyNCwwLDAsLjY2NjY3XSw4NzU3OlswLC42OTIyNCwwLDAsLjY2NjY3XSw4NzY0OlstLjEzMzEzLC4zNjY4NywwLDAsLjc3Nzc4XSw4NzY1OlstLjEzMzEzLC4zNzc4OCwwLDAsLjc3Nzc4XSw4NzY5OlstLjEzMzEzLC4zNjY4NywwLDAsLjc3Nzc4XSw4NzcwOlstLjAzNjI1LC40NjM3NSwwLDAsLjc3Nzc4XSw4Nzc0OlsuMzAyNzQsLjc5MzgzLDAsMCwuNzc3NzhdLDg3NzY6Wy0uMDE2ODgsLjQ4MzEyLDAsMCwuNzc3NzhdLDg3Nzg6Wy4wODE2NywuNTgxNjcsMCwwLC43Nzc3OF0sODc4MjpbLjA2MDYyLC41NDk4NiwwLDAsLjc3Nzc4XSw4NzgzOlsuMDYwNjIsLjU0OTg2LDAsMCwuNzc3NzhdLDg3ODU6Wy4wODE5OCwuNTgxOTgsMCwwLC43Nzc3OF0sODc4NjpbLjA4MTk4LC41ODE5OCwwLDAsLjc3Nzc4XSw4Nzg3OlsuMDgxOTgsLjU4MTk4LDAsMCwuNzc3NzhdLDg3OTA6WzAsLjY5MjI0LDAsMCwuNzc3NzhdLDg3OTE6Wy4yMjk1OCwuNzI5NTgsMCwwLC43Nzc3OF0sODc5NjpbLjA4MTk4LC45MTY2NywwLDAsLjc3Nzc4XSw4ODA2OlsuMjU1ODMsLjc1NTgzLDAsMCwuNzc3NzhdLDg4MDc6Wy4yNTU4MywuNzU1ODMsMCwwLC43Nzc3OF0sODgwODpbLjI1MTQyLC43NTcyNiwwLDAsLjc3Nzc4XSw4ODA5OlsuMjUxNDIsLjc1NzI2LDAsMCwuNzc3NzhdLDg4MTI6Wy4yNTU4MywuNzU1ODMsMCwwLC41XSw4ODE0OlsuMjA1NzYsLjcwNTc2LDAsMCwuNzc3NzhdLDg4MTU6Wy4yMDU3NiwuNzA1NzYsMCwwLC43Nzc3OF0sODgxNjpbLjMwMjc0LC43OTM4MywwLDAsLjc3Nzc4XSw4ODE3OlsuMzAyNzQsLjc5MzgzLDAsMCwuNzc3NzhdLDg4MTg6Wy4yMjk1OCwuNzI5NTgsMCwwLC43Nzc3OF0sODgxOTpbLjIyOTU4LC43Mjk1OCwwLDAsLjc3Nzc4XSw4ODIyOlsuMTgwOCwuNjc1LDAsMCwuNzc3NzhdLDg4MjM6Wy4xODA4LC42NzUsMCwwLC43Nzc3OF0sODgyODpbLjEzNjY3LC42MzY2NywwLDAsLjc3Nzc4XSw4ODI5OlsuMTM2NjcsLjYzNjY3LDAsMCwuNzc3NzhdLDg4MzA6Wy4yMjk1OCwuNzI5NTgsMCwwLC43Nzc3OF0sODgzMTpbLjIyOTU4LC43Mjk1OCwwLDAsLjc3Nzc4XSw4ODMyOlsuMjA1NzYsLjcwNTc2LDAsMCwuNzc3NzhdLDg4MzM6Wy4yMDU3NiwuNzA1NzYsMCwwLC43Nzc3OF0sODg0MDpbLjMwMjc0LC43OTM4MywwLDAsLjc3Nzc4XSw4ODQxOlsuMzAyNzQsLjc5MzgzLDAsMCwuNzc3NzhdLDg4NDI6Wy4xMzU5NywuNjM1OTcsMCwwLC43Nzc3OF0sODg0MzpbLjEzNTk3LC42MzU5NywwLDAsLjc3Nzc4XSw4ODQ3OlsuMDM1MTcsLjU0OTg2LDAsMCwuNzc3NzhdLDg4NDg6Wy4wMzUxNywuNTQ5ODYsMCwwLC43Nzc3OF0sODg1ODpbLjA4MTk4LC41ODE5OCwwLDAsLjc3Nzc4XSw4ODU5OlsuMDgxOTgsLjU4MTk4LDAsMCwuNzc3NzhdLDg4NjE6Wy4wODE5OCwuNTgxOTgsMCwwLC43Nzc3OF0sODg2MjpbMCwuNjc1LDAsMCwuNzc3NzhdLDg4NjM6WzAsLjY3NSwwLDAsLjc3Nzc4XSw4ODY0OlswLC42NzUsMCwwLC43Nzc3OF0sODg2NTpbMCwuNjc1LDAsMCwuNzc3NzhdLDg4NzI6WzAsLjY5MjI0LDAsMCwuNjExMTFdLDg4NzM6WzAsLjY5MjI0LDAsMCwuNzIyMjJdLDg4NzQ6WzAsLjY5MjI0LDAsMCwuODg4ODldLDg4NzY6WzAsLjY4ODg5LDAsMCwuNjExMTFdLDg4Nzc6WzAsLjY4ODg5LDAsMCwuNjExMTFdLDg4Nzg6WzAsLjY4ODg5LDAsMCwuNzIyMjJdLDg4Nzk6WzAsLjY4ODg5LDAsMCwuNzIyMjJdLDg4ODI6Wy4wMzUxNywuNTQ5ODYsMCwwLC43Nzc3OF0sODg4MzpbLjAzNTE3LC41NDk4NiwwLDAsLjc3Nzc4XSw4ODg0OlsuMTM2NjcsLjYzNjY3LDAsMCwuNzc3NzhdLDg4ODU6Wy4xMzY2NywuNjM2NjcsMCwwLC43Nzc3OF0sODg4ODpbMCwuNTQ5ODYsMCwwLDEuMTExMTFdLDg4OTA6Wy4xOTQ0NCwuNDMwNTYsMCwwLC41NTU1Nl0sODg5MTpbLjE5NDQ0LC42OTIyNCwwLDAsLjYxMTExXSw4ODkyOlsuMTk0NDQsLjY5MjI0LDAsMCwuNjExMTFdLDg5MDE6WzAsLjU0OTg2LDAsMCwuMjc3NzhdLDg5MDM6Wy4wODE2NywuNTgxNjcsMCwwLC43Nzc3OF0sODkwNTpbLjA4MTY3LC41ODE2NywwLDAsLjc3Nzc4XSw4OTA2OlsuMDgxNjcsLjU4MTY3LDAsMCwuNzc3NzhdLDg5MDc6WzAsLjY5MjI0LDAsMCwuNzc3NzhdLDg5MDg6WzAsLjY5MjI0LDAsMCwuNzc3NzhdLDg5MDk6Wy0uMDM1OTgsLjQ2NDAyLDAsMCwuNzc3NzhdLDg5MTA6WzAsLjU0OTg2LDAsMCwuNzYwNDJdLDg5MTE6WzAsLjU0OTg2LDAsMCwuNzYwNDJdLDg5MTI6Wy4wMzUxNywuNTQ5ODYsMCwwLC43Nzc3OF0sODkxMzpbLjAzNTE3LC41NDk4NiwwLDAsLjc3Nzc4XSw4OTE0OlswLC41NDk4NiwwLDAsLjY2NjY3XSw4OTE1OlswLC41NDk4NiwwLDAsLjY2NjY3XSw4OTE2OlswLC42OTIyNCwwLDAsLjY2NjY3XSw4OTE4OlsuMDM5MSwuNTM5MSwwLDAsLjc3Nzc4XSw4OTE5OlsuMDM5MSwuNTM5MSwwLDAsLjc3Nzc4XSw4OTIwOlsuMDM1MTcsLjU0OTg2LDAsMCwxLjMzMzM0XSw4OTIxOlsuMDM1MTcsLjU0OTg2LDAsMCwxLjMzMzM0XSw4OTIyOlsuMzg1NjksLjg4NTY5LDAsMCwuNzc3NzhdLDg5MjM6Wy4zODU2OSwuODg1NjksMCwwLC43Nzc3OF0sODkyNjpbLjEzNjY3LC42MzY2NywwLDAsLjc3Nzc4XSw4OTI3OlsuMTM2NjcsLjYzNjY3LDAsMCwuNzc3NzhdLDg5Mjg6Wy4zMDI3NCwuNzkzODMsMCwwLC43Nzc3OF0sODkyOTpbLjMwMjc0LC43OTM4MywwLDAsLjc3Nzc4XSw4OTM0OlsuMjMyMjIsLjc0MTExLDAsMCwuNzc3NzhdLDg5MzU6Wy4yMzIyMiwuNzQxMTEsMCwwLC43Nzc3OF0sODkzNjpbLjIzMjIyLC43NDExMSwwLDAsLjc3Nzc4XSw4OTM3OlsuMjMyMjIsLjc0MTExLDAsMCwuNzc3NzhdLDg5Mzg6Wy4yMDU3NiwuNzA1NzYsMCwwLC43Nzc3OF0sODkzOTpbLjIwNTc2LC43MDU3NiwwLDAsLjc3Nzc4XSw4OTQwOlsuMzAyNzQsLjc5MzgzLDAsMCwuNzc3NzhdLDg5NDE6Wy4zMDI3NCwuNzkzODMsMCwwLC43Nzc3OF0sODk5NDpbLjE5NDQ0LC42OTIyNCwwLDAsLjc3Nzc4XSw4OTk1OlsuMTk0NDQsLjY5MjI0LDAsMCwuNzc3NzhdLDk0MTY6Wy4xNTU1OSwuNjkyMjQsMCwwLC45MDIyMl0sOTQ4NDpbMCwuNjkyMjQsMCwwLC41XSw5NDg4OlswLC42OTIyNCwwLDAsLjVdLDk0OTI6WzAsLjM3Nzg4LDAsMCwuNV0sOTQ5NjpbMCwuMzc3ODgsMCwwLC41XSw5NTg1OlsuMTk0NDQsLjY4ODg5LDAsMCwuODg4ODldLDk1ODY6Wy4xOTQ0NCwuNzQxMTEsMCwwLC44ODg4OV0sOTYzMjpbMCwuNjc1LDAsMCwuNzc3NzhdLDk2MzM6WzAsLjY3NSwwLDAsLjc3Nzc4XSw5NjUwOlswLC41NDk4NiwwLDAsLjcyMjIyXSw5NjUxOlswLC41NDk4NiwwLDAsLjcyMjIyXSw5NjU0OlsuMDM1MTcsLjU0OTg2LDAsMCwuNzc3NzhdLDk2NjA6WzAsLjU0OTg2LDAsMCwuNzIyMjJdLDk2NjE6WzAsLjU0OTg2LDAsMCwuNzIyMjJdLDk2NjQ6Wy4wMzUxNywuNTQ5ODYsMCwwLC43Nzc3OF0sOTY3NDpbLjExMTExLC42OTIyNCwwLDAsLjY2NjY3XSw5NzMzOlsuMTk0NDQsLjY5MjI0LDAsMCwuOTQ0NDVdLDEwMDAzOlswLC42OTIyNCwwLDAsLjgzMzM0XSwxMDAxNjpbMCwuNjkyMjQsMCwwLC44MzMzNF0sMTA3MzE6Wy4xMTExMSwuNjkyMjQsMCwwLC42NjY2N10sMTA4NDY6Wy4xOTQ0NCwuNzU1ODMsMCwwLC42MTExMV0sMTA4Nzc6Wy4xMzY2NywuNjM2NjcsMCwwLC43Nzc3OF0sMTA4Nzg6Wy4xMzY2NywuNjM2NjcsMCwwLC43Nzc3OF0sMTA4ODU6Wy4yNTU4MywuNzU1ODMsMCwwLC43Nzc3OF0sMTA4ODY6Wy4yNTU4MywuNzU1ODMsMCwwLC43Nzc3OF0sMTA4ODc6Wy4xMzU5NywuNjM1OTcsMCwwLC43Nzc3OF0sMTA4ODg6Wy4xMzU5NywuNjM1OTcsMCwwLC43Nzc3OF0sMTA4ODk6Wy4yNjE2NywuNzU3MjYsMCwwLC43Nzc3OF0sMTA4OTA6Wy4yNjE2NywuNzU3MjYsMCwwLC43Nzc3OF0sMTA4OTE6Wy40ODI1NiwuOTgyNTYsMCwwLC43Nzc3OF0sMTA4OTI6Wy40ODI1NiwuOTgyNTYsMCwwLC43Nzc3OF0sMTA5MDE6Wy4xMzY2NywuNjM2NjcsMCwwLC43Nzc3OF0sMTA5MDI6Wy4xMzY2NywuNjM2NjcsMCwwLC43Nzc3OF0sMTA5MzM6Wy4yNTE0MiwuNzU3MjYsMCwwLC43Nzc3OF0sMTA5MzQ6Wy4yNTE0MiwuNzU3MjYsMCwwLC43Nzc3OF0sMTA5MzU6Wy4yNjE2NywuNzU3MjYsMCwwLC43Nzc3OF0sMTA5MzY6Wy4yNjE2NywuNzU3MjYsMCwwLC43Nzc3OF0sMTA5Mzc6Wy4yNjE2NywuNzU3MjYsMCwwLC43Nzc3OF0sMTA5Mzg6Wy4yNjE2NywuNzU3MjYsMCwwLC43Nzc3OF0sMTA5NDk6Wy4yNTU4MywuNzU1ODMsMCwwLC43Nzc3OF0sMTA5NTA6Wy4yNTU4MywuNzU1ODMsMCwwLC43Nzc3OF0sMTA5NTU6Wy4yODQ4MSwuNzkzODMsMCwwLC43Nzc3OF0sMTA5NTY6Wy4yODQ4MSwuNzkzODMsMCwwLC43Nzc3OF0sNTczNTA6Wy4wODE2NywuNTgxNjcsMCwwLC4yMjIyMl0sNTczNTE6Wy4wODE2NywuNTgxNjcsMCwwLC4zODg4OV0sNTczNTI6Wy4wODE2NywuNTgxNjcsMCwwLC43Nzc3OF0sNTczNTM6WzAsLjQzMDU2LC4wNDAyOCwwLC42NjY2N10sNTczNTY6Wy4yNTE0MiwuNzU3MjYsMCwwLC43Nzc3OF0sNTczNTc6Wy4yNTE0MiwuNzU3MjYsMCwwLC43Nzc3OF0sNTczNTg6Wy40MTk1MSwuOTE5NTEsMCwwLC43Nzc3OF0sNTczNTk6Wy4zMDI3NCwuNzkzODMsMCwwLC43Nzc3OF0sNTczNjA6Wy4zMDI3NCwuNzkzODMsMCwwLC43Nzc3OF0sNTczNjE6Wy40MTk1MSwuOTE5NTEsMCwwLC43Nzc3OF0sNTczNjY6Wy4yNTE0MiwuNzU3MjYsMCwwLC43Nzc3OF0sNTczNjc6Wy4yNTE0MiwuNzU3MjYsMCwwLC43Nzc3OF0sNTczNjg6Wy4yNTE0MiwuNzU3MjYsMCwwLC43Nzc3OF0sNTczNjk6Wy4yNTE0MiwuNzU3MjYsMCwwLC43Nzc3OF0sNTczNzA6Wy4xMzU5NywuNjM1OTcsMCwwLC43Nzc3OF0sNTczNzE6Wy4xMzU5NywuNjM1OTcsMCwwLC43Nzc3OF19LCJDYWxpZ3JhcGhpYy1SZWd1bGFyIjp7MzI6WzAsMCwwLDAsLjI1XSw2NTpbMCwuNjgzMzMsMCwuMTk0NDUsLjc5ODQ3XSw2NjpbMCwuNjgzMzMsLjAzMDQxLC4xMzg4OSwuNjU2ODFdLDY3OlswLC42ODMzMywuMDU4MzQsLjEzODg5LC41MjY1M10sNjg6WzAsLjY4MzMzLC4wMjc3OCwuMDgzMzQsLjc3MTM5XSw2OTpbMCwuNjgzMzMsLjA4OTQ0LC4xMTExMSwuNTI3NzhdLDcwOlswLC42ODMzMywuMDk5MzEsLjExMTExLC43MTg3NV0sNzE6Wy4wOTcyMiwuNjgzMzMsLjA1OTMsLjExMTExLC41OTQ4N10sNzI6WzAsLjY4MzMzLC4wMDk2NSwuMTExMTEsLjg0NDUyXSw3MzpbMCwuNjgzMzMsLjA3MzgyLDAsLjU0NDUyXSw3NDpbLjA5NzIyLC42ODMzMywuMTg0NzIsLjE2NjY3LC42Nzc3OF0sNzU6WzAsLjY4MzMzLC4wMTQ0NSwuMDU1NTYsLjc2MTk1XSw3NjpbMCwuNjgzMzMsMCwuMTM4ODksLjY4OTcyXSw3NzpbMCwuNjgzMzMsMCwuMTM4ODksMS4yMDA5XSw3ODpbMCwuNjgzMzMsLjE0NzM2LC4wODMzNCwuODIwNDldLDc5OlswLC42ODMzMywuMDI3NzgsLjExMTExLC43OTYxMV0sODA6WzAsLjY4MzMzLC4wODIyMiwuMDgzMzQsLjY5NTU2XSw4MTpbLjA5NzIyLC42ODMzMywwLC4xMTExMSwuODE2NjddLDgyOlswLC42ODMzMywwLC4wODMzNCwuODQ3NV0sODM6WzAsLjY4MzMzLC4wNzUsLjEzODg5LC42MDU1Nl0sODQ6WzAsLjY4MzMzLC4yNTQxNywwLC41NDQ2NF0sODU6WzAsLjY4MzMzLC4wOTkzMSwuMDgzMzQsLjYyNTgzXSw4NjpbMCwuNjgzMzMsLjA4MjIyLDAsLjYxMjc4XSw4NzpbMCwuNjgzMzMsLjA4MjIyLC4wODMzNCwuOTg3NzhdLDg4OlswLC42ODMzMywuMTQ2NDMsLjEzODg5LC43MTMzXSw4OTpbLjA5NzIyLC42ODMzMywuMDgyMjIsLjA4MzM0LC42NjgzNF0sOTA6WzAsLjY4MzMzLC4wNzk0NCwuMTM4ODksLjcyNDczXSwxNjA6WzAsMCwwLDAsLjI1XX0sIkZyYWt0dXItUmVndWxhciI6ezMyOlswLDAsMCwwLC4yNV0sMzM6WzAsLjY5MTQxLDAsMCwuMjk1NzRdLDM0OlswLC42OTE0MSwwLDAsLjIxNDcxXSwzODpbMCwuNjkxNDEsMCwwLC43Mzc4Nl0sMzk6WzAsLjY5MTQxLDAsMCwuMjEyMDFdLDQwOlsuMjQ5ODIsLjc0OTQ3LDAsMCwuMzg4NjVdLDQxOlsuMjQ5ODIsLjc0OTQ3LDAsMCwuMzg4NjVdLDQyOlswLC42MjExOSwwLDAsLjI3NzY0XSw0MzpbLjA4MzE5LC41ODI4MywwLDAsLjc1NjIzXSw0NDpbMCwuMTA4MDMsMCwwLC4yNzc2NF0sNDU6Wy4wODMxOSwuNTgyODMsMCwwLC43NTYyM10sNDY6WzAsLjEwODAzLDAsMCwuMjc3NjRdLDQ3OlsuMjQ5ODIsLjc0OTQ3LDAsMCwuNTAxODFdLDQ4OlswLC40NzUzNCwwLDAsLjUwMTgxXSw0OTpbMCwuNDc1MzQsMCwwLC41MDE4MV0sNTA6WzAsLjQ3NTM0LDAsMCwuNTAxODFdLDUxOlsuMTg5MDYsLjQ3NTM0LDAsMCwuNTAxODFdLDUyOlsuMTg5MDYsLjQ3NTM0LDAsMCwuNTAxODFdLDUzOlsuMTg5MDYsLjQ3NTM0LDAsMCwuNTAxODFdLDU0OlswLC42OTE0MSwwLDAsLjUwMTgxXSw1NTpbLjE4OTA2LC40NzUzNCwwLDAsLjUwMTgxXSw1NjpbMCwuNjkxNDEsMCwwLC41MDE4MV0sNTc6Wy4xODkwNiwuNDc1MzQsMCwwLC41MDE4MV0sNTg6WzAsLjQ3NTM0LDAsMCwuMjE2MDZdLDU5OlsuMTI2MDQsLjQ3NTM0LDAsMCwuMjE2MDZdLDYxOlstLjEzMDk5LC4zNjg2NiwwLDAsLjc1NjIzXSw2MzpbMCwuNjkxNDEsMCwwLC4zNjI0NV0sNjU6WzAsLjY5MTQxLDAsMCwuNzE3Nl0sNjY6WzAsLjY5MTQxLDAsMCwuODgzOTddLDY3OlswLC42OTE0MSwwLDAsLjYxMjU0XSw2ODpbMCwuNjkxNDEsMCwwLC44MzE1OF0sNjk6WzAsLjY5MTQxLDAsMCwuNjYyNzhdLDcwOlsuMTI2MDQsLjY5MTQxLDAsMCwuNjExMTldLDcxOlswLC42OTE0MSwwLDAsLjc4NTM5XSw3MjpbLjA2MzAyLC42OTE0MSwwLDAsLjcyMDNdLDczOlswLC42OTE0MSwwLDAsLjU1NDQ4XSw3NDpbLjEyNjA0LC42OTE0MSwwLDAsLjU1MjMxXSw3NTpbMCwuNjkxNDEsMCwwLC42Njg0NV0sNzY6WzAsLjY5MTQxLDAsMCwuNjY2MDJdLDc3OlswLC42OTE0MSwwLDAsMS4wNDk1M10sNzg6WzAsLjY5MTQxLDAsMCwuODMyMTJdLDc5OlswLC42OTE0MSwwLDAsLjgyNjk5XSw4MDpbLjE4OTA2LC42OTE0MSwwLDAsLjgyNzUzXSw4MTpbLjAzNzgxLC42OTE0MSwwLDAsLjgyNjk5XSw4MjpbMCwuNjkxNDEsMCwwLC44MjgwN10sODM6WzAsLjY5MTQxLDAsMCwuODI4NjFdLDg0OlswLC42OTE0MSwwLDAsLjY2ODk5XSw4NTpbMCwuNjkxNDEsMCwwLC42NDU3Nl0sODY6WzAsLjY5MTQxLDAsMCwuODMxMzFdLDg3OlswLC42OTE0MSwwLDAsMS4wNDYwMl0sODg6WzAsLjY5MTQxLDAsMCwuNzE5MjJdLDg5OlsuMTg5MDYsLjY5MTQxLDAsMCwuODMyOTNdLDkwOlsuMTI2MDQsLjY5MTQxLDAsMCwuNjAyMDFdLDkxOlsuMjQ5ODIsLjc0OTQ3LDAsMCwuMjc3NjRdLDkzOlsuMjQ5ODIsLjc0OTQ3LDAsMCwuMjc3NjRdLDk0OlswLC42OTE0MSwwLDAsLjQ5OTY1XSw5NzpbMCwuNDc1MzQsMCwwLC41MDA0Nl0sOTg6WzAsLjY5MTQxLDAsMCwuNTEzMTVdLDk5OlswLC40NzUzNCwwLDAsLjM4OTQ2XSwxMDA6WzAsLjYyMTE5LDAsMCwuNDk4NTddLDEwMTpbMCwuNDc1MzQsMCwwLC40MDA1M10sMTAyOlsuMTg5MDYsLjY5MTQxLDAsMCwuMzI2MjZdLDEwMzpbLjE4OTA2LC40NzUzNCwwLDAsLjUwMzddLDEwNDpbLjE4OTA2LC42OTE0MSwwLDAsLjUyMTI2XSwxMDU6WzAsLjY5MTQxLDAsMCwuMjc4OTldLDEwNjpbMCwuNjkxNDEsMCwwLC4yODA4OF0sMTA3OlswLC42OTE0MSwwLDAsLjM4OTQ2XSwxMDg6WzAsLjY5MTQxLDAsMCwuMjc5NTNdLDEwOTpbMCwuNDc1MzQsMCwwLC43NjY3Nl0sMTEwOlswLC40NzUzNCwwLDAsLjUyNjY2XSwxMTE6WzAsLjQ3NTM0LDAsMCwuNDg4ODVdLDExMjpbLjE4OTA2LC41MjM5NiwwLDAsLjUwMDQ2XSwxMTM6Wy4xODkwNiwuNDc1MzQsMCwwLC40ODkxMl0sMTE0OlswLC40NzUzNCwwLDAsLjM4OTE5XSwxMTU6WzAsLjQ3NTM0LDAsMCwuNDQyNjZdLDExNjpbMCwuNjIxMTksMCwwLC4zMzMwMV0sMTE3OlswLC40NzUzNCwwLDAsLjUxNzJdLDExODpbMCwuNTIzOTYsMCwwLC41MTE4XSwxMTk6WzAsLjUyMzk2LDAsMCwuNzczNTFdLDEyMDpbLjE4OTA2LC40NzUzNCwwLDAsLjM4ODY1XSwxMjE6Wy4xODkwNiwuNDc1MzQsMCwwLC40OTg4NF0sMTIyOlsuMTg5MDYsLjQ3NTM0LDAsMCwuMzkwNTRdLDE2MDpbMCwwLDAsMCwuMjVdLDgyMTY6WzAsLjY5MTQxLDAsMCwuMjE0NzFdLDgyMTc6WzAsLjY5MTQxLDAsMCwuMjE0NzFdLDU4MTEyOlswLC42MjExOSwwLDAsLjQ5NzQ5XSw1ODExMzpbMCwuNjIxMTksMCwwLC40OTgzXSw1ODExNDpbLjE4OTA2LC42OTE0MSwwLDAsLjMzMzI4XSw1ODExNTpbLjE4OTA2LC42OTE0MSwwLDAsLjMyOTIzXSw1ODExNjpbLjE4OTA2LC40NzUzNCwwLDAsLjUwMzQzXSw1ODExNzpbMCwuNjkxNDEsMCwwLC4zMzMwMV0sNTgxMTg6WzAsLjYyMTE5LDAsMCwuMzM0MDldLDU4MTE5OlswLC40NzUzNCwwLDAsLjUwMDczXX0sIk1haW4tQm9sZCI6ezMyOlswLDAsMCwwLC4yNV0sMzM6WzAsLjY5NDQ0LDAsMCwuMzVdLDM0OlswLC42OTQ0NCwwLDAsLjYwMjc4XSwzNTpbLjE5NDQ0LC42OTQ0NCwwLDAsLjk1ODMzXSwzNjpbLjA1NTU2LC43NSwwLDAsLjU3NV0sMzc6Wy4wNTU1NiwuNzUsMCwwLC45NTgzM10sMzg6WzAsLjY5NDQ0LDAsMCwuODk0NDRdLDM5OlswLC42OTQ0NCwwLDAsLjMxOTQ0XSw0MDpbLjI1LC43NSwwLDAsLjQ0NzIyXSw0MTpbLjI1LC43NSwwLDAsLjQ0NzIyXSw0MjpbMCwuNzUsMCwwLC41NzVdLDQzOlsuMTMzMzMsLjYzMzMzLDAsMCwuODk0NDRdLDQ0OlsuMTk0NDQsLjE1NTU2LDAsMCwuMzE5NDRdLDQ1OlswLC40NDQ0NCwwLDAsLjM4MzMzXSw0NjpbMCwuMTU1NTYsMCwwLC4zMTk0NF0sNDc6Wy4yNSwuNzUsMCwwLC41NzVdLDQ4OlswLC42NDQ0NCwwLDAsLjU3NV0sNDk6WzAsLjY0NDQ0LDAsMCwuNTc1XSw1MDpbMCwuNjQ0NDQsMCwwLC41NzVdLDUxOlswLC42NDQ0NCwwLDAsLjU3NV0sNTI6WzAsLjY0NDQ0LDAsMCwuNTc1XSw1MzpbMCwuNjQ0NDQsMCwwLC41NzVdLDU0OlswLC42NDQ0NCwwLDAsLjU3NV0sNTU6WzAsLjY0NDQ0LDAsMCwuNTc1XSw1NjpbMCwuNjQ0NDQsMCwwLC41NzVdLDU3OlswLC42NDQ0NCwwLDAsLjU3NV0sNTg6WzAsLjQ0NDQ0LDAsMCwuMzE5NDRdLDU5OlsuMTk0NDQsLjQ0NDQ0LDAsMCwuMzE5NDRdLDYwOlsuMDg1NTYsLjU4NTU2LDAsMCwuODk0NDRdLDYxOlstLjEwODg5LC4zOTExMSwwLDAsLjg5NDQ0XSw2MjpbLjA4NTU2LC41ODU1NiwwLDAsLjg5NDQ0XSw2MzpbMCwuNjk0NDQsMCwwLC41NDMwNV0sNjQ6WzAsLjY5NDQ0LDAsMCwuODk0NDRdLDY1OlswLC42ODYxMSwwLDAsLjg2OTQ0XSw2NjpbMCwuNjg2MTEsMCwwLC44MTgwNV0sNjc6WzAsLjY4NjExLDAsMCwuODMwNTVdLDY4OlswLC42ODYxMSwwLDAsLjg4MTk0XSw2OTpbMCwuNjg2MTEsMCwwLC43NTU1NV0sNzA6WzAsLjY4NjExLDAsMCwuNzIzNjFdLDcxOlswLC42ODYxMSwwLDAsLjkwNDE2XSw3MjpbMCwuNjg2MTEsMCwwLC45XSw3MzpbMCwuNjg2MTEsMCwwLC40MzYxMV0sNzQ6WzAsLjY4NjExLDAsMCwuNTk0NDRdLDc1OlswLC42ODYxMSwwLDAsLjkwMTM4XSw3NjpbMCwuNjg2MTEsMCwwLC42OTE2Nl0sNzc6WzAsLjY4NjExLDAsMCwxLjA5MTY2XSw3ODpbMCwuNjg2MTEsMCwwLC45XSw3OTpbMCwuNjg2MTEsMCwwLC44NjM4OF0sODA6WzAsLjY4NjExLDAsMCwuNzg2MTFdLDgxOlsuMTk0NDQsLjY4NjExLDAsMCwuODYzODhdLDgyOlswLC42ODYxMSwwLDAsLjg2MjVdLDgzOlswLC42ODYxMSwwLDAsLjYzODg5XSw4NDpbMCwuNjg2MTEsMCwwLC44XSw4NTpbMCwuNjg2MTEsMCwwLC44ODQ3Ml0sODY6WzAsLjY4NjExLC4wMTU5NywwLC44Njk0NF0sODc6WzAsLjY4NjExLC4wMTU5NywwLDEuMTg4ODhdLDg4OlswLC42ODYxMSwwLDAsLjg2OTQ0XSw4OTpbMCwuNjg2MTEsLjAyODc1LDAsLjg2OTQ0XSw5MDpbMCwuNjg2MTEsMCwwLC43MDI3N10sOTE6Wy4yNSwuNzUsMCwwLC4zMTk0NF0sOTI6Wy4yNSwuNzUsMCwwLC41NzVdLDkzOlsuMjUsLjc1LDAsMCwuMzE5NDRdLDk0OlswLC42OTQ0NCwwLDAsLjU3NV0sOTU6Wy4zMSwuMTM0NDQsLjAzMTk0LDAsLjU3NV0sOTc6WzAsLjQ0NDQ0LDAsMCwuNTU5MDJdLDk4OlswLC42OTQ0NCwwLDAsLjYzODg5XSw5OTpbMCwuNDQ0NDQsMCwwLC41MTExMV0sMTAwOlswLC42OTQ0NCwwLDAsLjYzODg5XSwxMDE6WzAsLjQ0NDQ0LDAsMCwuNTI3MDhdLDEwMjpbMCwuNjk0NDQsLjEwOTAzLDAsLjM1MTM5XSwxMDM6Wy4xOTQ0NCwuNDQ0NDQsLjAxNTk3LDAsLjU3NV0sMTA0OlswLC42OTQ0NCwwLDAsLjYzODg5XSwxMDU6WzAsLjY5NDQ0LDAsMCwuMzE5NDRdLDEwNjpbLjE5NDQ0LC42OTQ0NCwwLDAsLjM1MTM5XSwxMDc6WzAsLjY5NDQ0LDAsMCwuNjA2OTRdLDEwODpbMCwuNjk0NDQsMCwwLC4zMTk0NF0sMTA5OlswLC40NDQ0NCwwLDAsLjk1ODMzXSwxMTA6WzAsLjQ0NDQ0LDAsMCwuNjM4ODldLDExMTpbMCwuNDQ0NDQsMCwwLC41NzVdLDExMjpbLjE5NDQ0LC40NDQ0NCwwLDAsLjYzODg5XSwxMTM6Wy4xOTQ0NCwuNDQ0NDQsMCwwLC42MDY5NF0sMTE0OlswLC40NDQ0NCwwLDAsLjQ3MzYxXSwxMTU6WzAsLjQ0NDQ0LDAsMCwuNDUzNjFdLDExNjpbMCwuNjM0OTIsMCwwLC40NDcyMl0sMTE3OlswLC40NDQ0NCwwLDAsLjYzODg5XSwxMTg6WzAsLjQ0NDQ0LC4wMTU5NywwLC42MDY5NF0sMTE5OlswLC40NDQ0NCwuMDE1OTcsMCwuODMwNTVdLDEyMDpbMCwuNDQ0NDQsMCwwLC42MDY5NF0sMTIxOlsuMTk0NDQsLjQ0NDQ0LC4wMTU5NywwLC42MDY5NF0sMTIyOlswLC40NDQ0NCwwLDAsLjUxMTExXSwxMjM6Wy4yNSwuNzUsMCwwLC41NzVdLDEyNDpbLjI1LC43NSwwLDAsLjMxOTQ0XSwxMjU6Wy4yNSwuNzUsMCwwLC41NzVdLDEyNjpbLjM1LC4zNDQ0NCwwLDAsLjU3NV0sMTYwOlswLDAsMCwwLC4yNV0sMTYzOlswLC42OTQ0NCwwLDAsLjg2ODUzXSwxNjg6WzAsLjY5NDQ0LDAsMCwuNTc1XSwxNzI6WzAsLjQ0NDQ0LDAsMCwuNzY2NjZdLDE3NjpbMCwuNjk0NDQsMCwwLC44Njk0NF0sMTc3OlsuMTMzMzMsLjYzMzMzLDAsMCwuODk0NDRdLDE4NDpbLjE3MDE0LDAsMCwwLC41MTExMV0sMTk4OlswLC42ODYxMSwwLDAsMS4wNDE2Nl0sMjE1OlsuMTMzMzMsLjYzMzMzLDAsMCwuODk0NDRdLDIxNjpbLjA0ODYxLC43MzQ3MiwwLDAsLjg5NDQ0XSwyMjM6WzAsLjY5NDQ0LDAsMCwuNTk3MjJdLDIzMDpbMCwuNDQ0NDQsMCwwLC44MzA1NV0sMjQ3OlsuMTMzMzMsLjYzMzMzLDAsMCwuODk0NDRdLDI0ODpbLjA5NzIyLC41NDE2NywwLDAsLjU3NV0sMzA1OlswLC40NDQ0NCwwLDAsLjMxOTQ0XSwzMzg6WzAsLjY4NjExLDAsMCwxLjE2OTQ0XSwzMzk6WzAsLjQ0NDQ0LDAsMCwuODk0NDRdLDU2NzpbLjE5NDQ0LC40NDQ0NCwwLDAsLjM1MTM5XSw3MTA6WzAsLjY5NDQ0LDAsMCwuNTc1XSw3MTE6WzAsLjYzMTk0LDAsMCwuNTc1XSw3MTM6WzAsLjU5NjExLDAsMCwuNTc1XSw3MTQ6WzAsLjY5NDQ0LDAsMCwuNTc1XSw3MTU6WzAsLjY5NDQ0LDAsMCwuNTc1XSw3Mjg6WzAsLjY5NDQ0LDAsMCwuNTc1XSw3Mjk6WzAsLjY5NDQ0LDAsMCwuMzE5NDRdLDczMDpbMCwuNjk0NDQsMCwwLC44Njk0NF0sNzMyOlswLC42OTQ0NCwwLDAsLjU3NV0sNzMzOlswLC42OTQ0NCwwLDAsLjU3NV0sOTE1OlswLC42ODYxMSwwLDAsLjY5MTY2XSw5MTY6WzAsLjY4NjExLDAsMCwuOTU4MzNdLDkyMDpbMCwuNjg2MTEsMCwwLC44OTQ0NF0sOTIzOlswLC42ODYxMSwwLDAsLjgwNTU1XSw5MjY6WzAsLjY4NjExLDAsMCwuNzY2NjZdLDkyODpbMCwuNjg2MTEsMCwwLC45XSw5MzE6WzAsLjY4NjExLDAsMCwuODMwNTVdLDkzMzpbMCwuNjg2MTEsMCwwLC44OTQ0NF0sOTM0OlswLC42ODYxMSwwLDAsLjgzMDU1XSw5MzY6WzAsLjY4NjExLDAsMCwuODk0NDRdLDkzNzpbMCwuNjg2MTEsMCwwLC44MzA1NV0sODIxMTpbMCwuNDQ0NDQsLjAzMTk0LDAsLjU3NV0sODIxMjpbMCwuNDQ0NDQsLjAzMTk0LDAsMS4xNDk5OV0sODIxNjpbMCwuNjk0NDQsMCwwLC4zMTk0NF0sODIxNzpbMCwuNjk0NDQsMCwwLC4zMTk0NF0sODIyMDpbMCwuNjk0NDQsMCwwLC42MDI3OF0sODIyMTpbMCwuNjk0NDQsMCwwLC42MDI3OF0sODIyNDpbLjE5NDQ0LC42OTQ0NCwwLDAsLjUxMTExXSw4MjI1OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNTExMTFdLDgyNDI6WzAsLjU1NTU2LDAsMCwuMzQ0NDRdLDg0MDc6WzAsLjcyNDQ0LC4xNTQ4NiwwLC41NzVdLDg0NjM6WzAsLjY5NDQ0LDAsMCwuNjY3NTldLDg0NjU6WzAsLjY5NDQ0LDAsMCwuODMwNTVdLDg0Njc6WzAsLjY5NDQ0LDAsMCwuNDczNjFdLDg0NzI6Wy4xOTQ0NCwuNDQ0NDQsMCwwLC43NDAyN10sODQ3NjpbMCwuNjk0NDQsMCwwLC44MzA1NV0sODUwMTpbMCwuNjk0NDQsMCwwLC43MDI3N10sODU5MjpbLS4xMDg4OSwuMzkxMTEsMCwwLDEuMTQ5OTldLDg1OTM6Wy4xOTQ0NCwuNjk0NDQsMCwwLC41NzVdLDg1OTQ6Wy0uMTA4ODksLjM5MTExLDAsMCwxLjE0OTk5XSw4NTk1OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNTc1XSw4NTk2OlstLjEwODg5LC4zOTExMSwwLDAsMS4xNDk5OV0sODU5NzpbLjI1LC43NSwwLDAsLjU3NV0sODU5ODpbLjE5NDQ0LC42OTQ0NCwwLDAsMS4xNDk5OV0sODU5OTpbLjE5NDQ0LC42OTQ0NCwwLDAsMS4xNDk5OV0sODYwMDpbLjE5NDQ0LC42OTQ0NCwwLDAsMS4xNDk5OV0sODYwMTpbLjE5NDQ0LC42OTQ0NCwwLDAsMS4xNDk5OV0sODYzNjpbLS4xMDg4OSwuMzkxMTEsMCwwLDEuMTQ5OTldLDg2Mzc6Wy0uMTA4ODksLjM5MTExLDAsMCwxLjE0OTk5XSw4NjQwOlstLjEwODg5LC4zOTExMSwwLDAsMS4xNDk5OV0sODY0MTpbLS4xMDg4OSwuMzkxMTEsMCwwLDEuMTQ5OTldLDg2NTY6Wy0uMTA4ODksLjM5MTExLDAsMCwxLjE0OTk5XSw4NjU3OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNzAyNzddLDg2NTg6Wy0uMTA4ODksLjM5MTExLDAsMCwxLjE0OTk5XSw4NjU5OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNzAyNzddLDg2NjA6Wy0uMTA4ODksLjM5MTExLDAsMCwxLjE0OTk5XSw4NjYxOlsuMjUsLjc1LDAsMCwuNzAyNzddLDg3MDQ6WzAsLjY5NDQ0LDAsMCwuNjM4ODldLDg3MDY6WzAsLjY5NDQ0LC4wNjM4OSwwLC42Mjg0N10sODcwNzpbMCwuNjk0NDQsMCwwLC42Mzg4OV0sODcwOTpbLjA1NTU2LC43NSwwLDAsLjU3NV0sODcxMTpbMCwuNjg2MTEsMCwwLC45NTgzM10sODcxMjpbLjA4NTU2LC41ODU1NiwwLDAsLjc2NjY2XSw4NzE1OlsuMDg1NTYsLjU4NTU2LDAsMCwuNzY2NjZdLDg3MjI6Wy4xMzMzMywuNjMzMzMsMCwwLC44OTQ0NF0sODcyMzpbLjEzMzMzLC42MzMzMywwLDAsLjg5NDQ0XSw4NzI1OlsuMjUsLjc1LDAsMCwuNTc1XSw4NzI2OlsuMjUsLjc1LDAsMCwuNTc1XSw4NzI3OlstLjAyNzc4LC40NzIyMiwwLDAsLjU3NV0sODcyODpbLS4wMjYzOSwuNDczNjEsMCwwLC41NzVdLDg3Mjk6Wy0uMDI2MzksLjQ3MzYxLDAsMCwuNTc1XSw4NzMwOlsuMTgsLjgyLDAsMCwuOTU4MzNdLDg3MzM6WzAsLjQ0NDQ0LDAsMCwuODk0NDRdLDg3MzQ6WzAsLjQ0NDQ0LDAsMCwxLjE0OTk5XSw4NzM2OlswLC42OTIyNCwwLDAsLjcyMjIyXSw4NzM5OlsuMjUsLjc1LDAsMCwuMzE5NDRdLDg3NDE6Wy4yNSwuNzUsMCwwLC41NzVdLDg3NDM6WzAsLjU1NTU2LDAsMCwuNzY2NjZdLDg3NDQ6WzAsLjU1NTU2LDAsMCwuNzY2NjZdLDg3NDU6WzAsLjU1NTU2LDAsMCwuNzY2NjZdLDg3NDY6WzAsLjU1NTU2LDAsMCwuNzY2NjZdLDg3NDc6Wy4xOTQ0NCwuNjk0NDQsLjEyNzc4LDAsLjU2ODc1XSw4NzY0OlstLjEwODg5LC4zOTExMSwwLDAsLjg5NDQ0XSw4NzY4OlsuMTk0NDQsLjY5NDQ0LDAsMCwuMzE5NDRdLDg3NzE6Wy4wMDIyMiwuNTAyMjIsMCwwLC44OTQ0NF0sODc3MzpbLjAyNywuNjM4LDAsMCwuODk0XSw4Nzc2OlsuMDI0NDQsLjUyNDQ0LDAsMCwuODk0NDRdLDg3ODE6Wy4wMDIyMiwuNTAyMjIsMCwwLC44OTQ0NF0sODgwMTpbLjAwMjIyLC41MDIyMiwwLDAsLjg5NDQ0XSw4ODA0OlsuMTk2NjcsLjY5NjY3LDAsMCwuODk0NDRdLDg4MDU6Wy4xOTY2NywuNjk2NjcsMCwwLC44OTQ0NF0sODgxMDpbLjA4NTU2LC41ODU1NiwwLDAsMS4xNDk5OV0sODgxMTpbLjA4NTU2LC41ODU1NiwwLDAsMS4xNDk5OV0sODgyNjpbLjA4NTU2LC41ODU1NiwwLDAsLjg5NDQ0XSw4ODI3OlsuMDg1NTYsLjU4NTU2LDAsMCwuODk0NDRdLDg4MzQ6Wy4wODU1NiwuNTg1NTYsMCwwLC44OTQ0NF0sODgzNTpbLjA4NTU2LC41ODU1NiwwLDAsLjg5NDQ0XSw4ODM4OlsuMTk2NjcsLjY5NjY3LDAsMCwuODk0NDRdLDg4Mzk6Wy4xOTY2NywuNjk2NjcsMCwwLC44OTQ0NF0sODg0NjpbMCwuNTU1NTYsMCwwLC43NjY2Nl0sODg0OTpbLjE5NjY3LC42OTY2NywwLDAsLjg5NDQ0XSw4ODUwOlsuMTk2NjcsLjY5NjY3LDAsMCwuODk0NDRdLDg4NTE6WzAsLjU1NTU2LDAsMCwuNzY2NjZdLDg4NTI6WzAsLjU1NTU2LDAsMCwuNzY2NjZdLDg4NTM6Wy4xMzMzMywuNjMzMzMsMCwwLC44OTQ0NF0sODg1NDpbLjEzMzMzLC42MzMzMywwLDAsLjg5NDQ0XSw4ODU1OlsuMTMzMzMsLjYzMzMzLDAsMCwuODk0NDRdLDg4NTY6Wy4xMzMzMywuNjMzMzMsMCwwLC44OTQ0NF0sODg1NzpbLjEzMzMzLC42MzMzMywwLDAsLjg5NDQ0XSw4ODY2OlswLC42OTQ0NCwwLDAsLjcwMjc3XSw4ODY3OlswLC42OTQ0NCwwLDAsLjcwMjc3XSw4ODY4OlswLC42OTQ0NCwwLDAsLjg5NDQ0XSw4ODY5OlswLC42OTQ0NCwwLDAsLjg5NDQ0XSw4OTAwOlstLjAyNjM5LC40NzM2MSwwLDAsLjU3NV0sODkwMTpbLS4wMjYzOSwuNDczNjEsMCwwLC4zMTk0NF0sODkwMjpbLS4wMjc3OCwuNDcyMjIsMCwwLC41NzVdLDg5Njg6Wy4yNSwuNzUsMCwwLC41MTExMV0sODk2OTpbLjI1LC43NSwwLDAsLjUxMTExXSw4OTcwOlsuMjUsLjc1LDAsMCwuNTExMTFdLDg5NzE6Wy4yNSwuNzUsMCwwLC41MTExMV0sODk5NDpbLS4xMzg4OSwuMzYxMTEsMCwwLDEuMTQ5OTldLDg5OTU6Wy0uMTM4ODksLjM2MTExLDAsMCwxLjE0OTk5XSw5NjUxOlsuMTk0NDQsLjY5NDQ0LDAsMCwxLjAyMjIyXSw5NjU3OlstLjAyNzc4LC40NzIyMiwwLDAsLjU3NV0sOTY2MTpbLjE5NDQ0LC42OTQ0NCwwLDAsMS4wMjIyMl0sOTY2NzpbLS4wMjc3OCwuNDcyMjIsMCwwLC41NzVdLDk3MTE6Wy4xOTQ0NCwuNjk0NDQsMCwwLDEuMTQ5OTldLDk4MjQ6Wy4xMjk2MywuNjk0NDQsMCwwLC44OTQ0NF0sOTgyNTpbLjEyOTYzLC42OTQ0NCwwLDAsLjg5NDQ0XSw5ODI2OlsuMTI5NjMsLjY5NDQ0LDAsMCwuODk0NDRdLDk4Mjc6Wy4xMjk2MywuNjk0NDQsMCwwLC44OTQ0NF0sOTgzNzpbMCwuNzUsMCwwLC40NDcyMl0sOTgzODpbLjE5NDQ0LC42OTQ0NCwwLDAsLjQ0NzIyXSw5ODM5OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNDQ3MjJdLDEwMjE2OlsuMjUsLjc1LDAsMCwuNDQ3MjJdLDEwMjE3OlsuMjUsLjc1LDAsMCwuNDQ3MjJdLDEwODE1OlswLC42ODYxMSwwLDAsLjldLDEwOTI3OlsuMTk2NjcsLjY5NjY3LDAsMCwuODk0NDRdLDEwOTI4OlsuMTk2NjcsLjY5NjY3LDAsMCwuODk0NDRdLDU3Mzc2OlsuMTk0NDQsLjY5NDQ0LDAsMCwwXX0sIk1haW4tQm9sZEl0YWxpYyI6ezMyOlswLDAsMCwwLC4yNV0sMzM6WzAsLjY5NDQ0LC4xMTQxNywwLC4zODYxMV0sMzQ6WzAsLjY5NDQ0LC4wNzkzOSwwLC42MjA1NV0sMzU6Wy4xOTQ0NCwuNjk0NDQsLjA2ODMzLDAsLjk0NDQ0XSwzNzpbLjA1NTU2LC43NSwuMTI4NjEsMCwuOTQ0NDRdLDM4OlswLC42OTQ0NCwuMDg1MjgsMCwuODg1NTVdLDM5OlswLC42OTQ0NCwuMTI5NDUsMCwuMzU1NTVdLDQwOlsuMjUsLjc1LC4xNTgwNiwwLC40NzMzM10sNDE6Wy4yNSwuNzUsLjAzMzA2LDAsLjQ3MzMzXSw0MjpbMCwuNzUsLjE0MzMzLDAsLjU5MTExXSw0MzpbLjEwMzMzLC42MDMzMywuMDMzMDYsMCwuODg1NTVdLDQ0OlsuMTk0NDQsLjE0NzIyLDAsMCwuMzU1NTVdLDQ1OlswLC40NDQ0NCwuMDI2MTEsMCwuNDE0NDRdLDQ2OlswLC4xNDcyMiwwLDAsLjM1NTU1XSw0NzpbLjI1LC43NSwuMTU4MDYsMCwuNTkxMTFdLDQ4OlswLC42NDQ0NCwuMTMxNjcsMCwuNTkxMTFdLDQ5OlswLC42NDQ0NCwuMTMxNjcsMCwuNTkxMTFdLDUwOlswLC42NDQ0NCwuMTMxNjcsMCwuNTkxMTFdLDUxOlswLC42NDQ0NCwuMTMxNjcsMCwuNTkxMTFdLDUyOlsuMTk0NDQsLjY0NDQ0LC4xMzE2NywwLC41OTExMV0sNTM6WzAsLjY0NDQ0LC4xMzE2NywwLC41OTExMV0sNTQ6WzAsLjY0NDQ0LC4xMzE2NywwLC41OTExMV0sNTU6Wy4xOTQ0NCwuNjQ0NDQsLjEzMTY3LDAsLjU5MTExXSw1NjpbMCwuNjQ0NDQsLjEzMTY3LDAsLjU5MTExXSw1NzpbMCwuNjQ0NDQsLjEzMTY3LDAsLjU5MTExXSw1ODpbMCwuNDQ0NDQsLjA2Njk1LDAsLjM1NTU1XSw1OTpbLjE5NDQ0LC40NDQ0NCwuMDY2OTUsMCwuMzU1NTVdLDYxOlstLjEwODg5LC4zOTExMSwuMDY4MzMsMCwuODg1NTVdLDYzOlswLC42OTQ0NCwuMTE0NzIsMCwuNTkxMTFdLDY0OlswLC42OTQ0NCwuMDkyMDgsMCwuODg1NTVdLDY1OlswLC42ODYxMSwwLDAsLjg2NTU1XSw2NjpbMCwuNjg2MTEsLjA5OTIsMCwuODE2NjZdLDY3OlswLC42ODYxMSwuMTQyMDgsMCwuODI2NjZdLDY4OlswLC42ODYxMSwuMDkwNjIsMCwuODc1NTVdLDY5OlswLC42ODYxMSwuMTE0MzEsMCwuNzU2NjZdLDcwOlswLC42ODYxMSwuMTI5MDMsMCwuNzI3MjJdLDcxOlswLC42ODYxMSwuMDczNDcsMCwuODk1MjddLDcyOlswLC42ODYxMSwuMTcyMDgsMCwuODk2MV0sNzM6WzAsLjY4NjExLC4xNTY4MSwwLC40NzE2Nl0sNzQ6WzAsLjY4NjExLC4xNDUsMCwuNjEwNTVdLDc1OlswLC42ODYxMSwuMTQyMDgsMCwuODk0OTldLDc2OlswLC42ODYxMSwwLDAsLjY5Nzc3XSw3NzpbMCwuNjg2MTEsLjE3MjA4LDAsMS4wNzI3N10sNzg6WzAsLjY4NjExLC4xNzIwOCwwLC44OTYxXSw3OTpbMCwuNjg2MTEsLjA5MDYyLDAsLjg1NDk5XSw4MDpbMCwuNjg2MTEsLjA5OTIsMCwuNzg3MjFdLDgxOlsuMTk0NDQsLjY4NjExLC4wOTA2MiwwLC44NTQ5OV0sODI6WzAsLjY4NjExLC4wMjU1OSwwLC44NTk0NF0sODM6WzAsLjY4NjExLC4xMTI2NCwwLC42NDk5OV0sODQ6WzAsLjY4NjExLC4xMjkwMywwLC43OTYxXSw4NTpbMCwuNjg2MTEsLjE3MjA4LDAsLjg4MDgzXSw4NjpbMCwuNjg2MTEsLjE4NjI1LDAsLjg2NTU1XSw4NzpbMCwuNjg2MTEsLjE4NjI1LDAsMS4xNTk5OV0sODg6WzAsLjY4NjExLC4xNTY4MSwwLC44NjU1NV0sODk6WzAsLjY4NjExLC4xOTgwMywwLC44NjU1NV0sOTA6WzAsLjY4NjExLC4xNDIwOCwwLC43MDg4OF0sOTE6Wy4yNSwuNzUsLjE4NzUsMCwuMzU2MTFdLDkzOlsuMjUsLjc1LC4wOTk3MiwwLC4zNTYxMV0sOTQ6WzAsLjY5NDQ0LC4wNjcwOSwwLC41OTExMV0sOTU6Wy4zMSwuMTM0NDQsLjA5ODExLDAsLjU5MTExXSw5NzpbMCwuNDQ0NDQsLjA5NDI2LDAsLjU5MTExXSw5ODpbMCwuNjk0NDQsLjA3ODYxLDAsLjUzMjIyXSw5OTpbMCwuNDQ0NDQsLjA1MjIyLDAsLjUzMjIyXSwxMDA6WzAsLjY5NDQ0LC4xMDg2MSwwLC41OTExMV0sMTAxOlswLC40NDQ0NCwuMDg1LDAsLjUzMjIyXSwxMDI6Wy4xOTQ0NCwuNjk0NDQsLjIxNzc4LDAsLjRdLDEwMzpbLjE5NDQ0LC40NDQ0NCwuMTA1LDAsLjUzMjIyXSwxMDQ6WzAsLjY5NDQ0LC4wOTQyNiwwLC41OTExMV0sMTA1OlswLC42OTMyNiwuMTEzODcsMCwuMzU1NTVdLDEwNjpbLjE5NDQ0LC42OTMyNiwuMTY3MiwwLC4zNTU1NV0sMTA3OlswLC42OTQ0NCwuMTExMTEsMCwuNTMyMjJdLDEwODpbMCwuNjk0NDQsLjEwODYxLDAsLjI5NjY2XSwxMDk6WzAsLjQ0NDQ0LC4wOTQyNiwwLC45NDQ0NF0sMTEwOlswLC40NDQ0NCwuMDk0MjYsMCwuNjQ5OTldLDExMTpbMCwuNDQ0NDQsLjA3ODYxLDAsLjU5MTExXSwxMTI6Wy4xOTQ0NCwuNDQ0NDQsLjA3ODYxLDAsLjU5MTExXSwxMTM6Wy4xOTQ0NCwuNDQ0NDQsLjEwNSwwLC41MzIyMl0sMTE0OlswLC40NDQ0NCwuMTExMTEsMCwuNTAxNjddLDExNTpbMCwuNDQ0NDQsLjA4MTY3LDAsLjQ4Njk0XSwxMTY6WzAsLjYzNDkyLC4wOTYzOSwwLC4zODVdLDExNzpbMCwuNDQ0NDQsLjA5NDI2LDAsLjYyMDU1XSwxMTg6WzAsLjQ0NDQ0LC4xMTExMSwwLC41MzIyMl0sMTE5OlswLC40NDQ0NCwuMTExMTEsMCwuNzY3NzddLDEyMDpbMCwuNDQ0NDQsLjEyNTgzLDAsLjU2MDU1XSwxMjE6Wy4xOTQ0NCwuNDQ0NDQsLjEwNSwwLC41NjE2Nl0sMTIyOlswLC40NDQ0NCwuMTM4ODksMCwuNDkwNTVdLDEyNjpbLjM1LC4zNDQ0NCwuMTE0NzIsMCwuNTkxMTFdLDE2MDpbMCwwLDAsMCwuMjVdLDE2ODpbMCwuNjk0NDQsLjExNDczLDAsLjU5MTExXSwxNzY6WzAsLjY5NDQ0LDAsMCwuOTQ4ODhdLDE4NDpbLjE3MDE0LDAsMCwwLC41MzIyMl0sMTk4OlswLC42ODYxMSwuMTE0MzEsMCwxLjAyMjc3XSwyMTY6Wy4wNDg2MSwuNzM0NzIsLjA5MDYyLDAsLjg4NTU1XSwyMjM6Wy4xOTQ0NCwuNjk0NDQsLjA5NzM2LDAsLjY2NV0sMjMwOlswLC40NDQ0NCwuMDg1LDAsLjgyNjY2XSwyNDg6Wy4wOTcyMiwuNTQxNjcsLjA5NDU4LDAsLjU5MTExXSwzMDU6WzAsLjQ0NDQ0LC4wOTQyNiwwLC4zNTU1NV0sMzM4OlswLC42ODYxMSwuMTE0MzEsMCwxLjE0MDU0XSwzMzk6WzAsLjQ0NDQ0LC4wODUsMCwuODI2NjZdLDU2NzpbLjE5NDQ0LC40NDQ0NCwuMDQ2MTEsMCwuMzg1XSw3MTA6WzAsLjY5NDQ0LC4wNjcwOSwwLC41OTExMV0sNzExOlswLC42MzE5NCwuMDgyNzEsMCwuNTkxMTFdLDcxMzpbMCwuNTk0NDQsLjEwNDQ0LDAsLjU5MTExXSw3MTQ6WzAsLjY5NDQ0LC4wODUyOCwwLC41OTExMV0sNzE1OlswLC42OTQ0NCwwLDAsLjU5MTExXSw3Mjg6WzAsLjY5NDQ0LC4xMDMzMywwLC41OTExMV0sNzI5OlswLC42OTQ0NCwuMTI5NDUsMCwuMzU1NTVdLDczMDpbMCwuNjk0NDQsMCwwLC45NDg4OF0sNzMyOlswLC42OTQ0NCwuMTE0NzIsMCwuNTkxMTFdLDczMzpbMCwuNjk0NDQsLjExNDcyLDAsLjU5MTExXSw5MTU6WzAsLjY4NjExLC4xMjkwMywwLC42OTc3N10sOTE2OlswLC42ODYxMSwwLDAsLjk0NDQ0XSw5MjA6WzAsLjY4NjExLC4wOTA2MiwwLC44ODU1NV0sOTIzOlswLC42ODYxMSwwLDAsLjgwNjY2XSw5MjY6WzAsLjY4NjExLC4xNTA5MiwwLC43Njc3N10sOTI4OlswLC42ODYxMSwuMTcyMDgsMCwuODk2MV0sOTMxOlswLC42ODYxMSwuMTE0MzEsMCwuODI2NjZdLDkzMzpbMCwuNjg2MTEsLjEwNzc4LDAsLjg4NTU1XSw5MzQ6WzAsLjY4NjExLC4wNTYzMiwwLC44MjY2Nl0sOTM2OlswLC42ODYxMSwuMTA3NzgsMCwuODg1NTVdLDkzNzpbMCwuNjg2MTEsLjA5OTIsMCwuODI2NjZdLDgyMTE6WzAsLjQ0NDQ0LC4wOTgxMSwwLC41OTExMV0sODIxMjpbMCwuNDQ0NDQsLjA5ODExLDAsMS4xODIyMV0sODIxNjpbMCwuNjk0NDQsLjEyOTQ1LDAsLjM1NTU1XSw4MjE3OlswLC42OTQ0NCwuMTI5NDUsMCwuMzU1NTVdLDgyMjA6WzAsLjY5NDQ0LC4xNjc3MiwwLC42MjA1NV0sODIyMTpbMCwuNjk0NDQsLjA3OTM5LDAsLjYyMDU1XX0sIk1haW4tSXRhbGljIjp7MzI6WzAsMCwwLDAsLjI1XSwzMzpbMCwuNjk0NDQsLjEyNDE3LDAsLjMwNjY3XSwzNDpbMCwuNjk0NDQsLjA2OTYxLDAsLjUxNDQ0XSwzNTpbLjE5NDQ0LC42OTQ0NCwuMDY2MTYsMCwuODE3NzddLDM3OlsuMDU1NTYsLjc1LC4xMzYzOSwwLC44MTc3N10sMzg6WzAsLjY5NDQ0LC4wOTY5NCwwLC43NjY2Nl0sMzk6WzAsLjY5NDQ0LC4xMjQxNywwLC4zMDY2N10sNDA6Wy4yNSwuNzUsLjE2MTk0LDAsLjQwODg5XSw0MTpbLjI1LC43NSwuMDM2OTQsMCwuNDA4ODldLDQyOlswLC43NSwuMTQ5MTcsMCwuNTExMTFdLDQzOlsuMDU2NjcsLjU2MTY3LC4wMzY5NCwwLC43NjY2Nl0sNDQ6Wy4xOTQ0NCwuMTA1NTYsMCwwLC4zMDY2N10sNDU6WzAsLjQzMDU2LC4wMjgyNiwwLC4zNTc3OF0sNDY6WzAsLjEwNTU2LDAsMCwuMzA2NjddLDQ3OlsuMjUsLjc1LC4xNjE5NCwwLC41MTExMV0sNDg6WzAsLjY0NDQ0LC4xMzU1NiwwLC41MTExMV0sNDk6WzAsLjY0NDQ0LC4xMzU1NiwwLC41MTExMV0sNTA6WzAsLjY0NDQ0LC4xMzU1NiwwLC41MTExMV0sNTE6WzAsLjY0NDQ0LC4xMzU1NiwwLC41MTExMV0sNTI6Wy4xOTQ0NCwuNjQ0NDQsLjEzNTU2LDAsLjUxMTExXSw1MzpbMCwuNjQ0NDQsLjEzNTU2LDAsLjUxMTExXSw1NDpbMCwuNjQ0NDQsLjEzNTU2LDAsLjUxMTExXSw1NTpbLjE5NDQ0LC42NDQ0NCwuMTM1NTYsMCwuNTExMTFdLDU2OlswLC42NDQ0NCwuMTM1NTYsMCwuNTExMTFdLDU3OlswLC42NDQ0NCwuMTM1NTYsMCwuNTExMTFdLDU4OlswLC40MzA1NiwuMDU4MiwwLC4zMDY2N10sNTk6Wy4xOTQ0NCwuNDMwNTYsLjA1ODIsMCwuMzA2NjddLDYxOlstLjEzMzEzLC4zNjY4NywuMDY2MTYsMCwuNzY2NjZdLDYzOlswLC42OTQ0NCwuMTIyNSwwLC41MTExMV0sNjQ6WzAsLjY5NDQ0LC4wOTU5NywwLC43NjY2Nl0sNjU6WzAsLjY4MzMzLDAsMCwuNzQzMzNdLDY2OlswLC42ODMzMywuMTAyNTcsMCwuNzAzODldLDY3OlswLC42ODMzMywuMTQ1MjgsMCwuNzE1NTVdLDY4OlswLC42ODMzMywuMDk0MDMsMCwuNzU1XSw2OTpbMCwuNjgzMzMsLjEyMDI4LDAsLjY3ODMzXSw3MDpbMCwuNjgzMzMsLjEzMzA1LDAsLjY1Mjc3XSw3MTpbMCwuNjgzMzMsLjA4NzIyLDAsLjc3MzYxXSw3MjpbMCwuNjgzMzMsLjE2Mzg5LDAsLjc0MzMzXSw3MzpbMCwuNjgzMzMsLjE1ODA2LDAsLjM4NTU1XSw3NDpbMCwuNjgzMzMsLjE0MDI4LDAsLjUyNV0sNzU6WzAsLjY4MzMzLC4xNDUyOCwwLC43Njg4OF0sNzY6WzAsLjY4MzMzLDAsMCwuNjI3MjJdLDc3OlswLC42ODMzMywuMTYzODksMCwuODk2NjZdLDc4OlswLC42ODMzMywuMTYzODksMCwuNzQzMzNdLDc5OlswLC42ODMzMywuMDk0MDMsMCwuNzY2NjZdLDgwOlswLC42ODMzMywuMTAyNTcsMCwuNjc4MzNdLDgxOlsuMTk0NDQsLjY4MzMzLC4wOTQwMywwLC43NjY2Nl0sODI6WzAsLjY4MzMzLC4wMzg2OCwwLC43Mjk0NF0sODM6WzAsLjY4MzMzLC4xMTk3MiwwLC41NjIyMl0sODQ6WzAsLjY4MzMzLC4xMzMwNSwwLC43MTU1NV0sODU6WzAsLjY4MzMzLC4xNjM4OSwwLC43NDMzM10sODY6WzAsLjY4MzMzLC4xODM2MSwwLC43NDMzM10sODc6WzAsLjY4MzMzLC4xODM2MSwwLC45OTg4OF0sODg6WzAsLjY4MzMzLC4xNTgwNiwwLC43NDMzM10sODk6WzAsLjY4MzMzLC4xOTM4MywwLC43NDMzM10sOTA6WzAsLjY4MzMzLC4xNDUyOCwwLC42MTMzM10sOTE6Wy4yNSwuNzUsLjE4NzUsMCwuMzA2NjddLDkzOlsuMjUsLjc1LC4xMDUyOCwwLC4zMDY2N10sOTQ6WzAsLjY5NDQ0LC4wNjY0NiwwLC41MTExMV0sOTU6Wy4zMSwuMTIwNTYsLjA5MjA4LDAsLjUxMTExXSw5NzpbMCwuNDMwNTYsLjA3NjcxLDAsLjUxMTExXSw5ODpbMCwuNjk0NDQsLjA2MzEyLDAsLjQ2XSw5OTpbMCwuNDMwNTYsLjA1NjUzLDAsLjQ2XSwxMDA6WzAsLjY5NDQ0LC4xMDMzMywwLC41MTExMV0sMTAxOlswLC40MzA1NiwuMDc1MTQsMCwuNDZdLDEwMjpbLjE5NDQ0LC42OTQ0NCwuMjExOTQsMCwuMzA2NjddLDEwMzpbLjE5NDQ0LC40MzA1NiwuMDg4NDcsMCwuNDZdLDEwNDpbMCwuNjk0NDQsLjA3NjcxLDAsLjUxMTExXSwxMDU6WzAsLjY1NTM2LC4xMDE5LDAsLjMwNjY3XSwxMDY6Wy4xOTQ0NCwuNjU1MzYsLjE0NDY3LDAsLjMwNjY3XSwxMDc6WzAsLjY5NDQ0LC4xMDc2NCwwLC40Nl0sMTA4OlswLC42OTQ0NCwuMTAzMzMsMCwuMjU1NTVdLDEwOTpbMCwuNDMwNTYsLjA3NjcxLDAsLjgxNzc3XSwxMTA6WzAsLjQzMDU2LC4wNzY3MSwwLC41NjIyMl0sMTExOlswLC40MzA1NiwuMDYzMTIsMCwuNTExMTFdLDExMjpbLjE5NDQ0LC40MzA1NiwuMDYzMTIsMCwuNTExMTFdLDExMzpbLjE5NDQ0LC40MzA1NiwuMDg4NDcsMCwuNDZdLDExNDpbMCwuNDMwNTYsLjEwNzY0LDAsLjQyMTY2XSwxMTU6WzAsLjQzMDU2LC4wODIwOCwwLC40MDg4OV0sMTE2OlswLC42MTUwOCwuMDk0ODYsMCwuMzMyMjJdLDExNzpbMCwuNDMwNTYsLjA3NjcxLDAsLjUzNjY2XSwxMTg6WzAsLjQzMDU2LC4xMDc2NCwwLC40Nl0sMTE5OlswLC40MzA1NiwuMTA3NjQsMCwuNjY0NDRdLDEyMDpbMCwuNDMwNTYsLjEyMDQyLDAsLjQ2Mzg5XSwxMjE6Wy4xOTQ0NCwuNDMwNTYsLjA4ODQ3LDAsLjQ4NTU1XSwxMjI6WzAsLjQzMDU2LC4xMjI5MiwwLC40MDg4OV0sMTI2OlsuMzUsLjMxNzg2LC4xMTU4NSwwLC41MTExMV0sMTYwOlswLDAsMCwwLC4yNV0sMTY4OlswLC42Njc4NiwuMTA0NzQsMCwuNTExMTFdLDE3NjpbMCwuNjk0NDQsMCwwLC44MzEyOV0sMTg0OlsuMTcwMTQsMCwwLDAsLjQ2XSwxOTg6WzAsLjY4MzMzLC4xMjAyOCwwLC44ODI3N10sMjE2OlsuMDQ4NjEsLjczMTk0LC4wOTQwMywwLC43NjY2Nl0sMjIzOlsuMTk0NDQsLjY5NDQ0LC4xMDUxNCwwLC41MzY2Nl0sMjMwOlswLC40MzA1NiwuMDc1MTQsMCwuNzE1NTVdLDI0ODpbLjA5NzIyLC41Mjc3OCwuMDkxOTQsMCwuNTExMTFdLDMzODpbMCwuNjgzMzMsLjEyMDI4LDAsLjk4NDk5XSwzMzk6WzAsLjQzMDU2LC4wNzUxNCwwLC43MTU1NV0sNzEwOlswLC42OTQ0NCwuMDY2NDYsMCwuNTExMTFdLDcxMTpbMCwuNjI4NDcsLjA4Mjk1LDAsLjUxMTExXSw3MTM6WzAsLjU2MTY3LC4xMDMzMywwLC41MTExMV0sNzE0OlswLC42OTQ0NCwuMDk2OTQsMCwuNTExMTFdLDcxNTpbMCwuNjk0NDQsMCwwLC41MTExMV0sNzI4OlswLC42OTQ0NCwuMTA4MDYsMCwuNTExMTFdLDcyOTpbMCwuNjY3ODYsLjExNzUyLDAsLjMwNjY3XSw3MzA6WzAsLjY5NDQ0LDAsMCwuODMxMjldLDczMjpbMCwuNjY3ODYsLjExNTg1LDAsLjUxMTExXSw3MzM6WzAsLjY5NDQ0LC4xMjI1LDAsLjUxMTExXSw5MTU6WzAsLjY4MzMzLC4xMzMwNSwwLC42MjcyMl0sOTE2OlswLC42ODMzMywwLDAsLjgxNzc3XSw5MjA6WzAsLjY4MzMzLC4wOTQwMywwLC43NjY2Nl0sOTIzOlswLC42ODMzMywwLDAsLjY5MjIyXSw5MjY6WzAsLjY4MzMzLC4xNTI5NCwwLC42NjQ0NF0sOTI4OlswLC42ODMzMywuMTYzODksMCwuNzQzMzNdLDkzMTpbMCwuNjgzMzMsLjEyMDI4LDAsLjcxNTU1XSw5MzM6WzAsLjY4MzMzLC4xMTExMSwwLC43NjY2Nl0sOTM0OlswLC42ODMzMywuMDU5ODYsMCwuNzE1NTVdLDkzNjpbMCwuNjgzMzMsLjExMTExLDAsLjc2NjY2XSw5Mzc6WzAsLjY4MzMzLC4xMDI1NywwLC43MTU1NV0sODIxMTpbMCwuNDMwNTYsLjA5MjA4LDAsLjUxMTExXSw4MjEyOlswLC40MzA1NiwuMDkyMDgsMCwxLjAyMjIyXSw4MjE2OlswLC42OTQ0NCwuMTI0MTcsMCwuMzA2NjddLDgyMTc6WzAsLjY5NDQ0LC4xMjQxNywwLC4zMDY2N10sODIyMDpbMCwuNjk0NDQsLjE2ODUsMCwuNTE0NDRdLDgyMjE6WzAsLjY5NDQ0LC4wNjk2MSwwLC41MTQ0NF0sODQ2MzpbMCwuNjg4ODksMCwwLC41NDAyOF19LCJNYWluLVJlZ3VsYXIiOnszMjpbMCwwLDAsMCwuMjVdLDMzOlswLC42OTQ0NCwwLDAsLjI3Nzc4XSwzNDpbMCwuNjk0NDQsMCwwLC41XSwzNTpbLjE5NDQ0LC42OTQ0NCwwLDAsLjgzMzM0XSwzNjpbLjA1NTU2LC43NSwwLDAsLjVdLDM3OlsuMDU1NTYsLjc1LDAsMCwuODMzMzRdLDM4OlswLC42OTQ0NCwwLDAsLjc3Nzc4XSwzOTpbMCwuNjk0NDQsMCwwLC4yNzc3OF0sNDA6Wy4yNSwuNzUsMCwwLC4zODg4OV0sNDE6Wy4yNSwuNzUsMCwwLC4zODg4OV0sNDI6WzAsLjc1LDAsMCwuNV0sNDM6Wy4wODMzMywuNTgzMzMsMCwwLC43Nzc3OF0sNDQ6Wy4xOTQ0NCwuMTA1NTYsMCwwLC4yNzc3OF0sNDU6WzAsLjQzMDU2LDAsMCwuMzMzMzNdLDQ2OlswLC4xMDU1NiwwLDAsLjI3Nzc4XSw0NzpbLjI1LC43NSwwLDAsLjVdLDQ4OlswLC42NDQ0NCwwLDAsLjVdLDQ5OlswLC42NDQ0NCwwLDAsLjVdLDUwOlswLC42NDQ0NCwwLDAsLjVdLDUxOlswLC42NDQ0NCwwLDAsLjVdLDUyOlswLC42NDQ0NCwwLDAsLjVdLDUzOlswLC42NDQ0NCwwLDAsLjVdLDU0OlswLC42NDQ0NCwwLDAsLjVdLDU1OlswLC42NDQ0NCwwLDAsLjVdLDU2OlswLC42NDQ0NCwwLDAsLjVdLDU3OlswLC42NDQ0NCwwLDAsLjVdLDU4OlswLC40MzA1NiwwLDAsLjI3Nzc4XSw1OTpbLjE5NDQ0LC40MzA1NiwwLDAsLjI3Nzc4XSw2MDpbLjAzOTEsLjUzOTEsMCwwLC43Nzc3OF0sNjE6Wy0uMTMzMTMsLjM2Njg3LDAsMCwuNzc3NzhdLDYyOlsuMDM5MSwuNTM5MSwwLDAsLjc3Nzc4XSw2MzpbMCwuNjk0NDQsMCwwLC40NzIyMl0sNjQ6WzAsLjY5NDQ0LDAsMCwuNzc3NzhdLDY1OlswLC42ODMzMywwLDAsLjc1XSw2NjpbMCwuNjgzMzMsMCwwLC43MDgzNF0sNjc6WzAsLjY4MzMzLDAsMCwuNzIyMjJdLDY4OlswLC42ODMzMywwLDAsLjc2Mzg5XSw2OTpbMCwuNjgzMzMsMCwwLC42ODA1Nl0sNzA6WzAsLjY4MzMzLDAsMCwuNjUyNzhdLDcxOlswLC42ODMzMywwLDAsLjc4NDcyXSw3MjpbMCwuNjgzMzMsMCwwLC43NV0sNzM6WzAsLjY4MzMzLDAsMCwuMzYxMTFdLDc0OlswLC42ODMzMywwLDAsLjUxMzg5XSw3NTpbMCwuNjgzMzMsMCwwLC43Nzc3OF0sNzY6WzAsLjY4MzMzLDAsMCwuNjI1XSw3NzpbMCwuNjgzMzMsMCwwLC45MTY2N10sNzg6WzAsLjY4MzMzLDAsMCwuNzVdLDc5OlswLC42ODMzMywwLDAsLjc3Nzc4XSw4MDpbMCwuNjgzMzMsMCwwLC42ODA1Nl0sODE6Wy4xOTQ0NCwuNjgzMzMsMCwwLC43Nzc3OF0sODI6WzAsLjY4MzMzLDAsMCwuNzM2MTFdLDgzOlswLC42ODMzMywwLDAsLjU1NTU2XSw4NDpbMCwuNjgzMzMsMCwwLC43MjIyMl0sODU6WzAsLjY4MzMzLDAsMCwuNzVdLDg2OlswLC42ODMzMywuMDEzODksMCwuNzVdLDg3OlswLC42ODMzMywuMDEzODksMCwxLjAyNzc4XSw4ODpbMCwuNjgzMzMsMCwwLC43NV0sODk6WzAsLjY4MzMzLC4wMjUsMCwuNzVdLDkwOlswLC42ODMzMywwLDAsLjYxMTExXSw5MTpbLjI1LC43NSwwLDAsLjI3Nzc4XSw5MjpbLjI1LC43NSwwLDAsLjVdLDkzOlsuMjUsLjc1LDAsMCwuMjc3NzhdLDk0OlswLC42OTQ0NCwwLDAsLjVdLDk1OlsuMzEsLjEyMDU2LC4wMjc3OCwwLC41XSw5NzpbMCwuNDMwNTYsMCwwLC41XSw5ODpbMCwuNjk0NDQsMCwwLC41NTU1Nl0sOTk6WzAsLjQzMDU2LDAsMCwuNDQ0NDVdLDEwMDpbMCwuNjk0NDQsMCwwLC41NTU1Nl0sMTAxOlswLC40MzA1NiwwLDAsLjQ0NDQ1XSwxMDI6WzAsLjY5NDQ0LC4wNzc3OCwwLC4zMDU1Nl0sMTAzOlsuMTk0NDQsLjQzMDU2LC4wMTM4OSwwLC41XSwxMDQ6WzAsLjY5NDQ0LDAsMCwuNTU1NTZdLDEwNTpbMCwuNjY3ODYsMCwwLC4yNzc3OF0sMTA2OlsuMTk0NDQsLjY2Nzg2LDAsMCwuMzA1NTZdLDEwNzpbMCwuNjk0NDQsMCwwLC41Mjc3OF0sMTA4OlswLC42OTQ0NCwwLDAsLjI3Nzc4XSwxMDk6WzAsLjQzMDU2LDAsMCwuODMzMzRdLDExMDpbMCwuNDMwNTYsMCwwLC41NTU1Nl0sMTExOlswLC40MzA1NiwwLDAsLjVdLDExMjpbLjE5NDQ0LC40MzA1NiwwLDAsLjU1NTU2XSwxMTM6Wy4xOTQ0NCwuNDMwNTYsMCwwLC41Mjc3OF0sMTE0OlswLC40MzA1NiwwLDAsLjM5MTY3XSwxMTU6WzAsLjQzMDU2LDAsMCwuMzk0NDVdLDExNjpbMCwuNjE1MDgsMCwwLC4zODg4OV0sMTE3OlswLC40MzA1NiwwLDAsLjU1NTU2XSwxMTg6WzAsLjQzMDU2LC4wMTM4OSwwLC41Mjc3OF0sMTE5OlswLC40MzA1NiwuMDEzODksMCwuNzIyMjJdLDEyMDpbMCwuNDMwNTYsMCwwLC41Mjc3OF0sMTIxOlsuMTk0NDQsLjQzMDU2LC4wMTM4OSwwLC41Mjc3OF0sMTIyOlswLC40MzA1NiwwLDAsLjQ0NDQ1XSwxMjM6Wy4yNSwuNzUsMCwwLC41XSwxMjQ6Wy4yNSwuNzUsMCwwLC4yNzc3OF0sMTI1OlsuMjUsLjc1LDAsMCwuNV0sMTI2OlsuMzUsLjMxNzg2LDAsMCwuNV0sMTYwOlswLDAsMCwwLC4yNV0sMTYzOlswLC42OTQ0NCwwLDAsLjc2OTA5XSwxNjc6Wy4xOTQ0NCwuNjk0NDQsMCwwLC40NDQ0NV0sMTY4OlswLC42Njc4NiwwLDAsLjVdLDE3MjpbMCwuNDMwNTYsMCwwLC42NjY2N10sMTc2OlswLC42OTQ0NCwwLDAsLjc1XSwxNzc6Wy4wODMzMywuNTgzMzMsMCwwLC43Nzc3OF0sMTgyOlsuMTk0NDQsLjY5NDQ0LDAsMCwuNjExMTFdLDE4NDpbLjE3MDE0LDAsMCwwLC40NDQ0NV0sMTk4OlswLC42ODMzMywwLDAsLjkwMjc4XSwyMTU6Wy4wODMzMywuNTgzMzMsMCwwLC43Nzc3OF0sMjE2OlsuMDQ4NjEsLjczMTk0LDAsMCwuNzc3NzhdLDIyMzpbMCwuNjk0NDQsMCwwLC41XSwyMzA6WzAsLjQzMDU2LDAsMCwuNzIyMjJdLDI0NzpbLjA4MzMzLC41ODMzMywwLDAsLjc3Nzc4XSwyNDg6Wy4wOTcyMiwuNTI3NzgsMCwwLC41XSwzMDU6WzAsLjQzMDU2LDAsMCwuMjc3NzhdLDMzODpbMCwuNjgzMzMsMCwwLDEuMDEzODldLDMzOTpbMCwuNDMwNTYsMCwwLC43Nzc3OF0sNTY3OlsuMTk0NDQsLjQzMDU2LDAsMCwuMzA1NTZdLDcxMDpbMCwuNjk0NDQsMCwwLC41XSw3MTE6WzAsLjYyODQ3LDAsMCwuNV0sNzEzOlswLC41Njc3OCwwLDAsLjVdLDcxNDpbMCwuNjk0NDQsMCwwLC41XSw3MTU6WzAsLjY5NDQ0LDAsMCwuNV0sNzI4OlswLC42OTQ0NCwwLDAsLjVdLDcyOTpbMCwuNjY3ODYsMCwwLC4yNzc3OF0sNzMwOlswLC42OTQ0NCwwLDAsLjc1XSw3MzI6WzAsLjY2Nzg2LDAsMCwuNV0sNzMzOlswLC42OTQ0NCwwLDAsLjVdLDkxNTpbMCwuNjgzMzMsMCwwLC42MjVdLDkxNjpbMCwuNjgzMzMsMCwwLC44MzMzNF0sOTIwOlswLC42ODMzMywwLDAsLjc3Nzc4XSw5MjM6WzAsLjY4MzMzLDAsMCwuNjk0NDVdLDkyNjpbMCwuNjgzMzMsMCwwLC42NjY2N10sOTI4OlswLC42ODMzMywwLDAsLjc1XSw5MzE6WzAsLjY4MzMzLDAsMCwuNzIyMjJdLDkzMzpbMCwuNjgzMzMsMCwwLC43Nzc3OF0sOTM0OlswLC42ODMzMywwLDAsLjcyMjIyXSw5MzY6WzAsLjY4MzMzLDAsMCwuNzc3NzhdLDkzNzpbMCwuNjgzMzMsMCwwLC43MjIyMl0sODIxMTpbMCwuNDMwNTYsLjAyNzc4LDAsLjVdLDgyMTI6WzAsLjQzMDU2LC4wMjc3OCwwLDFdLDgyMTY6WzAsLjY5NDQ0LDAsMCwuMjc3NzhdLDgyMTc6WzAsLjY5NDQ0LDAsMCwuMjc3NzhdLDgyMjA6WzAsLjY5NDQ0LDAsMCwuNV0sODIyMTpbMCwuNjk0NDQsMCwwLC41XSw4MjI0OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNDQ0NDVdLDgyMjU6Wy4xOTQ0NCwuNjk0NDQsMCwwLC40NDQ0NV0sODIzMDpbMCwuMTIzLDAsMCwxLjE3Ml0sODI0MjpbMCwuNTU1NTYsMCwwLC4yNzVdLDg0MDc6WzAsLjcxNDQ0LC4xNTM4MiwwLC41XSw4NDYzOlswLC42ODg4OSwwLDAsLjU0MDI4XSw4NDY1OlswLC42OTQ0NCwwLDAsLjcyMjIyXSw4NDY3OlswLC42OTQ0NCwwLC4xMTExMSwuNDE2NjddLDg0NzI6Wy4xOTQ0NCwuNDMwNTYsMCwuMTExMTEsLjYzNjQ2XSw4NDc2OlswLC42OTQ0NCwwLDAsLjcyMjIyXSw4NTAxOlswLC42OTQ0NCwwLDAsLjYxMTExXSw4NTkyOlstLjEzMzEzLC4zNjY4NywwLDAsMV0sODU5MzpbLjE5NDQ0LC42OTQ0NCwwLDAsLjVdLDg1OTQ6Wy0uMTMzMTMsLjM2Njg3LDAsMCwxXSw4NTk1OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNV0sODU5NjpbLS4xMzMxMywuMzY2ODcsMCwwLDFdLDg1OTc6Wy4yNSwuNzUsMCwwLC41XSw4NTk4OlsuMTk0NDQsLjY5NDQ0LDAsMCwxXSw4NTk5OlsuMTk0NDQsLjY5NDQ0LDAsMCwxXSw4NjAwOlsuMTk0NDQsLjY5NDQ0LDAsMCwxXSw4NjAxOlsuMTk0NDQsLjY5NDQ0LDAsMCwxXSw4NjE0OlsuMDExLC41MTEsMCwwLDFdLDg2MTc6Wy4wMTEsLjUxMSwwLDAsMS4xMjZdLDg2MTg6Wy4wMTEsLjUxMSwwLDAsMS4xMjZdLDg2MzY6Wy0uMTMzMTMsLjM2Njg3LDAsMCwxXSw4NjM3OlstLjEzMzEzLC4zNjY4NywwLDAsMV0sODY0MDpbLS4xMzMxMywuMzY2ODcsMCwwLDFdLDg2NDE6Wy0uMTMzMTMsLjM2Njg3LDAsMCwxXSw4NjUyOlsuMDExLC42NzEsMCwwLDFdLDg2NTY6Wy0uMTMzMTMsLjM2Njg3LDAsMCwxXSw4NjU3OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNjExMTFdLDg2NTg6Wy0uMTMzMTMsLjM2Njg3LDAsMCwxXSw4NjU5OlsuMTk0NDQsLjY5NDQ0LDAsMCwuNjExMTFdLDg2NjA6Wy0uMTMzMTMsLjM2Njg3LDAsMCwxXSw4NjYxOlsuMjUsLjc1LDAsMCwuNjExMTFdLDg3MDQ6WzAsLjY5NDQ0LDAsMCwuNTU1NTZdLDg3MDY6WzAsLjY5NDQ0LC4wNTU1NiwuMDgzMzQsLjUzMDldLDg3MDc6WzAsLjY5NDQ0LDAsMCwuNTU1NTZdLDg3MDk6Wy4wNTU1NiwuNzUsMCwwLC41XSw4NzExOlswLC42ODMzMywwLDAsLjgzMzM0XSw4NzEyOlsuMDM5MSwuNTM5MSwwLDAsLjY2NjY3XSw4NzE1OlsuMDM5MSwuNTM5MSwwLDAsLjY2NjY3XSw4NzIyOlsuMDgzMzMsLjU4MzMzLDAsMCwuNzc3NzhdLDg3MjM6Wy4wODMzMywuNTgzMzMsMCwwLC43Nzc3OF0sODcyNTpbLjI1LC43NSwwLDAsLjVdLDg3MjY6Wy4yNSwuNzUsMCwwLC41XSw4NzI3OlstLjAzNDcyLC40NjUyOCwwLDAsLjVdLDg3Mjg6Wy0uMDU1NTUsLjQ0NDQ1LDAsMCwuNV0sODcyOTpbLS4wNTU1NSwuNDQ0NDUsMCwwLC41XSw4NzMwOlsuMiwuOCwwLDAsLjgzMzM0XSw4NzMzOlswLC40MzA1NiwwLDAsLjc3Nzc4XSw4NzM0OlswLC40MzA1NiwwLDAsMV0sODczNjpbMCwuNjkyMjQsMCwwLC43MjIyMl0sODczOTpbLjI1LC43NSwwLDAsLjI3Nzc4XSw4NzQxOlsuMjUsLjc1LDAsMCwuNV0sODc0MzpbMCwuNTU1NTYsMCwwLC42NjY2N10sODc0NDpbMCwuNTU1NTYsMCwwLC42NjY2N10sODc0NTpbMCwuNTU1NTYsMCwwLC42NjY2N10sODc0NjpbMCwuNTU1NTYsMCwwLC42NjY2N10sODc0NzpbLjE5NDQ0LC42OTQ0NCwuMTExMTEsMCwuNDE2NjddLDg3NjQ6Wy0uMTMzMTMsLjM2Njg3LDAsMCwuNzc3NzhdLDg3Njg6Wy4xOTQ0NCwuNjk0NDQsMCwwLC4yNzc3OF0sODc3MTpbLS4wMzYyNSwuNDYzNzUsMCwwLC43Nzc3OF0sODc3MzpbLS4wMjIsLjU4OSwwLDAsLjc3OF0sODc3NjpbLS4wMTY4OCwuNDgzMTIsMCwwLC43Nzc3OF0sODc4MTpbLS4wMzYyNSwuNDYzNzUsMCwwLC43Nzc3OF0sODc4NDpbLS4xMzMsLjY3MywwLDAsLjc3OF0sODgwMTpbLS4wMzYyNSwuNDYzNzUsMCwwLC43Nzc3OF0sODgwNDpbLjEzNTk3LC42MzU5NywwLDAsLjc3Nzc4XSw4ODA1OlsuMTM1OTcsLjYzNTk3LDAsMCwuNzc3NzhdLDg4MTA6Wy4wMzkxLC41MzkxLDAsMCwxXSw4ODExOlsuMDM5MSwuNTM5MSwwLDAsMV0sODgyNjpbLjAzOTEsLjUzOTEsMCwwLC43Nzc3OF0sODgyNzpbLjAzOTEsLjUzOTEsMCwwLC43Nzc3OF0sODgzNDpbLjAzOTEsLjUzOTEsMCwwLC43Nzc3OF0sODgzNTpbLjAzOTEsLjUzOTEsMCwwLC43Nzc3OF0sODgzODpbLjEzNTk3LC42MzU5NywwLDAsLjc3Nzc4XSw4ODM5OlsuMTM1OTcsLjYzNTk3LDAsMCwuNzc3NzhdLDg4NDY6WzAsLjU1NTU2LDAsMCwuNjY2NjddLDg4NDk6Wy4xMzU5NywuNjM1OTcsMCwwLC43Nzc3OF0sODg1MDpbLjEzNTk3LC42MzU5NywwLDAsLjc3Nzc4XSw4ODUxOlswLC41NTU1NiwwLDAsLjY2NjY3XSw4ODUyOlswLC41NTU1NiwwLDAsLjY2NjY3XSw4ODUzOlsuMDgzMzMsLjU4MzMzLDAsMCwuNzc3NzhdLDg4NTQ6Wy4wODMzMywuNTgzMzMsMCwwLC43Nzc3OF0sODg1NTpbLjA4MzMzLC41ODMzMywwLDAsLjc3Nzc4XSw4ODU2OlsuMDgzMzMsLjU4MzMzLDAsMCwuNzc3NzhdLDg4NTc6Wy4wODMzMywuNTgzMzMsMCwwLC43Nzc3OF0sODg2NjpbMCwuNjk0NDQsMCwwLC42MTExMV0sODg2NzpbMCwuNjk0NDQsMCwwLC42MTExMV0sODg2ODpbMCwuNjk0NDQsMCwwLC43Nzc3OF0sODg2OTpbMCwuNjk0NDQsMCwwLC43Nzc3OF0sODg3MjpbLjI0OSwuNzUsMCwwLC44NjddLDg5MDA6Wy0uMDU1NTUsLjQ0NDQ1LDAsMCwuNV0sODkwMTpbLS4wNTU1NSwuNDQ0NDUsMCwwLC4yNzc3OF0sODkwMjpbLS4wMzQ3MiwuNDY1MjgsMCwwLC41XSw4OTA0OlsuMDA1LC41MDUsMCwwLC45XSw4OTQyOlsuMDMsLjkwMywwLDAsLjI3OF0sODk0MzpbLS4xOSwuMzEzLDAsMCwxLjE3Ml0sODk0NTpbLS4xLC44MjMsMCwwLDEuMjgyXSw4OTY4OlsuMjUsLjc1LDAsMCwuNDQ0NDVdLDg5Njk6Wy4yNSwuNzUsMCwwLC40NDQ0NV0sODk3MDpbLjI1LC43NSwwLDAsLjQ0NDQ1XSw4OTcxOlsuMjUsLjc1LDAsMCwuNDQ0NDVdLDg5OTQ6Wy0uMTQyMzYsLjM1NzY0LDAsMCwxXSw4OTk1OlstLjE0MjM2LC4zNTc2NCwwLDAsMV0sOTEzNjpbLjI0NCwuNzQ0LDAsMCwuNDEyXSw5MTM3OlsuMjQ0LC43NDUsMCwwLC40MTJdLDk2NTE6Wy4xOTQ0NCwuNjk0NDQsMCwwLC44ODg4OV0sOTY1NzpbLS4wMzQ3MiwuNDY1MjgsMCwwLC41XSw5NjYxOlsuMTk0NDQsLjY5NDQ0LDAsMCwuODg4ODldLDk2Njc6Wy0uMDM0NzIsLjQ2NTI4LDAsMCwuNV0sOTcxMTpbLjE5NDQ0LC42OTQ0NCwwLDAsMV0sOTgyNDpbLjEyOTYzLC42OTQ0NCwwLDAsLjc3Nzc4XSw5ODI1OlsuMTI5NjMsLjY5NDQ0LDAsMCwuNzc3NzhdLDk4MjY6Wy4xMjk2MywuNjk0NDQsMCwwLC43Nzc3OF0sOTgyNzpbLjEyOTYzLC42OTQ0NCwwLDAsLjc3Nzc4XSw5ODM3OlswLC43NSwwLDAsLjM4ODg5XSw5ODM4OlsuMTk0NDQsLjY5NDQ0LDAsMCwuMzg4ODldLDk4Mzk6Wy4xOTQ0NCwuNjk0NDQsMCwwLC4zODg4OV0sMTAyMTY6Wy4yNSwuNzUsMCwwLC4zODg4OV0sMTAyMTc6Wy4yNSwuNzUsMCwwLC4zODg4OV0sMTAyMjI6Wy4yNDQsLjc0NCwwLDAsLjQxMl0sMTAyMjM6Wy4yNDQsLjc0NSwwLDAsLjQxMl0sMTAyMjk6Wy4wMTEsLjUxMSwwLDAsMS42MDldLDEwMjMwOlsuMDExLC41MTEsMCwwLDEuNjM4XSwxMDIzMTpbLjAxMSwuNTExLDAsMCwxLjg1OV0sMTAyMzI6Wy4wMjQsLjUyNSwwLDAsMS42MDldLDEwMjMzOlsuMDI0LC41MjUsMCwwLDEuNjM4XSwxMDIzNDpbLjAyNCwuNTI1LDAsMCwxLjg1OF0sMTAyMzY6Wy4wMTEsLjUxMSwwLDAsMS42MzhdLDEwODE1OlswLC42ODMzMywwLDAsLjc1XSwxMDkyNzpbLjEzNTk3LC42MzU5NywwLDAsLjc3Nzc4XSwxMDkyODpbLjEzNTk3LC42MzU5NywwLDAsLjc3Nzc4XSw1NzM3NjpbLjE5NDQ0LC42OTQ0NCwwLDAsMF19LCJNYXRoLUJvbGRJdGFsaWMiOnszMjpbMCwwLDAsMCwuMjVdLDQ4OlswLC40NDQ0NCwwLDAsLjU3NV0sNDk6WzAsLjQ0NDQ0LDAsMCwuNTc1XSw1MDpbMCwuNDQ0NDQsMCwwLC41NzVdLDUxOlsuMTk0NDQsLjQ0NDQ0LDAsMCwuNTc1XSw1MjpbLjE5NDQ0LC40NDQ0NCwwLDAsLjU3NV0sNTM6Wy4xOTQ0NCwuNDQ0NDQsMCwwLC41NzVdLDU0OlswLC42NDQ0NCwwLDAsLjU3NV0sNTU6Wy4xOTQ0NCwuNDQ0NDQsMCwwLC41NzVdLDU2OlswLC42NDQ0NCwwLDAsLjU3NV0sNTc6Wy4xOTQ0NCwuNDQ0NDQsMCwwLC41NzVdLDY1OlswLC42ODYxMSwwLDAsLjg2OTQ0XSw2NjpbMCwuNjg2MTEsLjA0ODM1LDAsLjg2NjRdLDY3OlswLC42ODYxMSwuMDY5NzksMCwuODE2OTRdLDY4OlswLC42ODYxMSwuMDMxOTQsMCwuOTM4MTJdLDY5OlswLC42ODYxMSwuMDU0NTEsMCwuODEwMDddLDcwOlswLC42ODYxMSwuMTU5NzIsMCwuNjg4ODldLDcxOlswLC42ODYxMSwwLDAsLjg4NjczXSw3MjpbMCwuNjg2MTEsLjA4MjI5LDAsLjk4MjI5XSw3MzpbMCwuNjg2MTEsLjA3Nzc4LDAsLjUxMTExXSw3NDpbMCwuNjg2MTEsLjEwMDY5LDAsLjYzMTI1XSw3NTpbMCwuNjg2MTEsLjA2OTc5LDAsLjk3MTE4XSw3NjpbMCwuNjg2MTEsMCwwLC43NTU1NV0sNzc6WzAsLjY4NjExLC4xMTQyNCwwLDEuMTQyMDFdLDc4OlswLC42ODYxMSwuMTE0MjQsMCwuOTUwMzRdLDc5OlswLC42ODYxMSwuMDMxOTQsMCwuODM2NjZdLDgwOlswLC42ODYxMSwuMTU5NzIsMCwuNzIzMDldLDgxOlsuMTk0NDQsLjY4NjExLDAsMCwuODY4NjFdLDgyOlswLC42ODYxMSwuMDA0MjEsMCwuODcyMzVdLDgzOlswLC42ODYxMSwuMDUzODIsMCwuNjkyNzFdLDg0OlswLC42ODYxMSwuMTU5NzIsMCwuNjM2NjNdLDg1OlswLC42ODYxMSwuMTE0MjQsMCwuODAwMjddLDg2OlswLC42ODYxMSwuMjU1NTUsMCwuNjc3NzhdLDg3OlswLC42ODYxMSwuMTU5NzIsMCwxLjA5MzA1XSw4ODpbMCwuNjg2MTEsLjA3Nzc4LDAsLjk0NzIyXSw4OTpbMCwuNjg2MTEsLjI1NTU1LDAsLjY3NDU4XSw5MDpbMCwuNjg2MTEsLjA2OTc5LDAsLjc3MjU3XSw5NzpbMCwuNDQ0NDQsMCwwLC42MzI4N10sOTg6WzAsLjY5NDQ0LDAsMCwuNTIwODNdLDk5OlswLC40NDQ0NCwwLDAsLjUxMzQyXSwxMDA6WzAsLjY5NDQ0LDAsMCwuNjA5NzJdLDEwMTpbMCwuNDQ0NDQsMCwwLC41NTM2MV0sMTAyOlsuMTk0NDQsLjY5NDQ0LC4xMTA0MiwwLC41NjgwNl0sMTAzOlsuMTk0NDQsLjQ0NDQ0LC4wMzcwNCwwLC41NDQ5XSwxMDQ6WzAsLjY5NDQ0LDAsMCwuNjY3NTldLDEwNTpbMCwuNjkzMjYsMCwwLC40MDQ4XSwxMDY6Wy4xOTQ0NCwuNjkzMjYsLjA2MjIsMCwuNDcwODNdLDEwNzpbMCwuNjk0NDQsLjAxODUyLDAsLjYwMzddLDEwODpbMCwuNjk0NDQsLjAwODgsMCwuMzQ4MTVdLDEwOTpbMCwuNDQ0NDQsMCwwLDEuMDMyNF0sMTEwOlswLC40NDQ0NCwwLDAsLjcxMjk2XSwxMTE6WzAsLjQ0NDQ0LDAsMCwuNTg0NzJdLDExMjpbLjE5NDQ0LC40NDQ0NCwwLDAsLjYwMDkyXSwxMTM6Wy4xOTQ0NCwuNDQ0NDQsLjAzNzA0LDAsLjU0MjEzXSwxMTQ6WzAsLjQ0NDQ0LC4wMzE5NCwwLC41Mjg3XSwxMTU6WzAsLjQ0NDQ0LDAsMCwuNTMxMjVdLDExNjpbMCwuNjM0OTIsMCwwLC40MTUyOF0sMTE3OlswLC40NDQ0NCwwLDAsLjY4MTAyXSwxMTg6WzAsLjQ0NDQ0LC4wMzcwNCwwLC41NjY2Nl0sMTE5OlswLC40NDQ0NCwuMDI3NzgsMCwuODMxNDhdLDEyMDpbMCwuNDQ0NDQsMCwwLC42NTkwM10sMTIxOlsuMTk0NDQsLjQ0NDQ0LC4wMzcwNCwwLC41OTAyOF0sMTIyOlswLC40NDQ0NCwuMDQyMTMsMCwuNTU1MDldLDE2MDpbMCwwLDAsMCwuMjVdLDkxNTpbMCwuNjg2MTEsLjE1OTcyLDAsLjY1Njk0XSw5MTY6WzAsLjY4NjExLDAsMCwuOTU4MzNdLDkyMDpbMCwuNjg2MTEsLjAzMTk0LDAsLjg2NzIyXSw5MjM6WzAsLjY4NjExLDAsMCwuODA1NTVdLDkyNjpbMCwuNjg2MTEsLjA3NDU4LDAsLjg0MTI1XSw5Mjg6WzAsLjY4NjExLC4wODIyOSwwLC45ODIyOV0sOTMxOlswLC42ODYxMSwuMDU0NTEsMCwuODg1MDddLDkzMzpbMCwuNjg2MTEsLjE1OTcyLDAsLjY3MDgzXSw5MzQ6WzAsLjY4NjExLDAsMCwuNzY2NjZdLDkzNjpbMCwuNjg2MTEsLjExNjUzLDAsLjcxNDAyXSw5Mzc6WzAsLjY4NjExLC4wNDgzNSwwLC44Nzg5XSw5NDU6WzAsLjQ0NDQ0LDAsMCwuNzYwNjRdLDk0NjpbLjE5NDQ0LC42OTQ0NCwuMDM0MDMsMCwuNjU5NzJdLDk0NzpbLjE5NDQ0LC40NDQ0NCwuMDYzODksMCwuNTkwMDNdLDk0ODpbMCwuNjk0NDQsLjAzODE5LDAsLjUyMjIyXSw5NDk6WzAsLjQ0NDQ0LDAsMCwuNTI4ODJdLDk1MDpbLjE5NDQ0LC42OTQ0NCwuMDYyMTUsMCwuNTA4MzNdLDk1MTpbLjE5NDQ0LC40NDQ0NCwuMDM3MDQsMCwuNl0sOTUyOlswLC42OTQ0NCwuMDMxOTQsMCwuNTYxOF0sOTUzOlswLC40NDQ0NCwwLDAsLjQxMjA0XSw5NTQ6WzAsLjQ0NDQ0LDAsMCwuNjY3NTldLDk1NTpbMCwuNjk0NDQsMCwwLC42NzA4M10sOTU2OlsuMTk0NDQsLjQ0NDQ0LDAsMCwuNzA3ODddLDk1NzpbMCwuNDQ0NDQsLjA2ODk4LDAsLjU3Njg1XSw5NTg6Wy4xOTQ0NCwuNjk0NDQsLjAzMDIxLDAsLjUwODMzXSw5NTk6WzAsLjQ0NDQ0LDAsMCwuNTg0NzJdLDk2MDpbMCwuNDQ0NDQsLjAzNzA0LDAsLjY4MjQxXSw5NjE6Wy4xOTQ0NCwuNDQ0NDQsMCwwLC42MTE4XSw5NjI6Wy4wOTcyMiwuNDQ0NDQsLjA3OTE3LDAsLjQyMzYxXSw5NjM6WzAsLjQ0NDQ0LC4wMzcwNCwwLC42ODU4OF0sOTY0OlswLC40NDQ0NCwuMTM0NzIsMCwuNTIwODNdLDk2NTpbMCwuNDQ0NDQsLjAzNzA0LDAsLjYzMDU1XSw5NjY6Wy4xOTQ0NCwuNDQ0NDQsMCwwLC43NDcyMl0sOTY3OlsuMTk0NDQsLjQ0NDQ0LDAsMCwuNzE4MDVdLDk2ODpbLjE5NDQ0LC42OTQ0NCwuMDM3MDQsMCwuNzU4MzNdLDk2OTpbMCwuNDQ0NDQsLjAzNzA0LDAsLjcxNzgyXSw5Nzc6WzAsLjY5NDQ0LDAsMCwuNjkxNTVdLDk4MTpbLjE5NDQ0LC42OTQ0NCwwLDAsLjcxMjVdLDk4MjpbMCwuNDQ0NDQsLjAzMTk0LDAsLjk3NV0sMTAwOTpbLjE5NDQ0LC40NDQ0NCwwLDAsLjYxMThdLDEwMTM6WzAsLjQ0NDQ0LDAsMCwuNDgzMzNdLDU3NjQ5OlswLC40NDQ0NCwwLDAsLjM5MzUyXSw1NzkxMTpbLjE5NDQ0LC40NDQ0NCwwLDAsLjQzODg5XX0sIk1hdGgtSXRhbGljIjp7MzI6WzAsMCwwLDAsLjI1XSw0ODpbMCwuNDMwNTYsMCwwLC41XSw0OTpbMCwuNDMwNTYsMCwwLC41XSw1MDpbMCwuNDMwNTYsMCwwLC41XSw1MTpbLjE5NDQ0LC40MzA1NiwwLDAsLjVdLDUyOlsuMTk0NDQsLjQzMDU2LDAsMCwuNV0sNTM6Wy4xOTQ0NCwuNDMwNTYsMCwwLC41XSw1NDpbMCwuNjQ0NDQsMCwwLC41XSw1NTpbLjE5NDQ0LC40MzA1NiwwLDAsLjVdLDU2OlswLC42NDQ0NCwwLDAsLjVdLDU3OlsuMTk0NDQsLjQzMDU2LDAsMCwuNV0sNjU6WzAsLjY4MzMzLDAsLjEzODg5LC43NV0sNjY6WzAsLjY4MzMzLC4wNTAxNywuMDgzMzQsLjc1ODUxXSw2NzpbMCwuNjgzMzMsLjA3MTUzLC4wODMzNCwuNzE0NzJdLDY4OlswLC42ODMzMywuMDI3NzgsLjA1NTU2LC44Mjc5Ml0sNjk6WzAsLjY4MzMzLC4wNTc2NCwuMDgzMzQsLjczODJdLDcwOlswLC42ODMzMywuMTM4ODksLjA4MzM0LC42NDMwNl0sNzE6WzAsLjY4MzMzLDAsLjA4MzM0LC43ODYyNV0sNzI6WzAsLjY4MzMzLC4wODEyNSwuMDU1NTYsLjgzMTI1XSw3MzpbMCwuNjgzMzMsLjA3ODQ3LC4xMTExMSwuNDM5NThdLDc0OlswLC42ODMzMywuMDk2MTgsLjE2NjY3LC41NTQ1MV0sNzU6WzAsLjY4MzMzLC4wNzE1MywuMDU1NTYsLjg0OTMxXSw3NjpbMCwuNjgzMzMsMCwuMDI3NzgsLjY4MDU2XSw3NzpbMCwuNjgzMzMsLjEwOTAzLC4wODMzNCwuOTcwMTRdLDc4OlswLC42ODMzMywuMTA5MDMsLjA4MzM0LC44MDM0N10sNzk6WzAsLjY4MzMzLC4wMjc3OCwuMDgzMzQsLjc2Mjc4XSw4MDpbMCwuNjgzMzMsLjEzODg5LC4wODMzNCwuNjQyMDFdLDgxOlsuMTk0NDQsLjY4MzMzLDAsLjA4MzM0LC43OTA1Nl0sODI6WzAsLjY4MzMzLC4wMDc3MywuMDgzMzQsLjc1OTI5XSw4MzpbMCwuNjgzMzMsLjA1NzY0LC4wODMzNCwuNjEzMl0sODQ6WzAsLjY4MzMzLC4xMzg4OSwuMDgzMzQsLjU4NDM4XSw4NTpbMCwuNjgzMzMsLjEwOTAzLC4wMjc3OCwuNjgyNzhdLDg2OlswLC42ODMzMywuMjIyMjIsMCwuNTgzMzNdLDg3OlswLC42ODMzMywuMTM4ODksMCwuOTQ0NDVdLDg4OlswLC42ODMzMywuMDc4NDcsLjA4MzM0LC44Mjg0N10sODk6WzAsLjY4MzMzLC4yMjIyMiwwLC41ODA1Nl0sOTA6WzAsLjY4MzMzLC4wNzE1MywuMDgzMzQsLjY4MjY0XSw5NzpbMCwuNDMwNTYsMCwwLC41Mjg1OV0sOTg6WzAsLjY5NDQ0LDAsMCwuNDI5MTddLDk5OlswLC40MzA1NiwwLC4wNTU1NiwuNDMyNzZdLDEwMDpbMCwuNjk0NDQsMCwuMTY2NjcsLjUyMDQ5XSwxMDE6WzAsLjQzMDU2LDAsLjA1NTU2LC40NjU2M10sMTAyOlsuMTk0NDQsLjY5NDQ0LC4xMDc2NCwuMTY2NjcsLjQ4OTU5XSwxMDM6Wy4xOTQ0NCwuNDMwNTYsLjAzNTg4LC4wMjc3OCwuNDc2OTddLDEwNDpbMCwuNjk0NDQsMCwwLC41NzYxNl0sMTA1OlswLC42NTk1MiwwLDAsLjM0NDUxXSwxMDY6Wy4xOTQ0NCwuNjU5NTIsLjA1NzI0LDAsLjQxMTgxXSwxMDc6WzAsLjY5NDQ0LC4wMzE0OCwwLC41MjA2XSwxMDg6WzAsLjY5NDQ0LC4wMTk2OCwuMDgzMzQsLjI5ODM4XSwxMDk6WzAsLjQzMDU2LDAsMCwuODc4MDFdLDExMDpbMCwuNDMwNTYsMCwwLC42MDAyM10sMTExOlswLC40MzA1NiwwLC4wNTU1NiwuNDg0NzJdLDExMjpbLjE5NDQ0LC40MzA1NiwwLC4wODMzNCwuNTAzMTNdLDExMzpbLjE5NDQ0LC40MzA1NiwuMDM1ODgsLjA4MzM0LC40NDY0MV0sMTE0OlswLC40MzA1NiwuMDI3NzgsLjA1NTU2LC40NTExNl0sMTE1OlswLC40MzA1NiwwLC4wNTU1NiwuNDY4NzVdLDExNjpbMCwuNjE1MDgsMCwuMDgzMzQsLjM2MTExXSwxMTc6WzAsLjQzMDU2LDAsLjAyNzc4LC41NzI0Nl0sMTE4OlswLC40MzA1NiwuMDM1ODgsLjAyNzc4LC40ODQ3Ml0sMTE5OlswLC40MzA1NiwuMDI2OTEsLjA4MzM0LC43MTU5Ml0sMTIwOlswLC40MzA1NiwwLC4wMjc3OCwuNTcxNTNdLDEyMTpbLjE5NDQ0LC40MzA1NiwuMDM1ODgsLjA1NTU2LC40OTAyOF0sMTIyOlswLC40MzA1NiwuMDQzOTgsLjA1NTU2LC40NjUwNV0sMTYwOlswLDAsMCwwLC4yNV0sOTE1OlswLC42ODMzMywuMTM4ODksLjA4MzM0LC42MTUyOF0sOTE2OlswLC42ODMzMywwLC4xNjY2NywuODMzMzRdLDkyMDpbMCwuNjgzMzMsLjAyNzc4LC4wODMzNCwuNzYyNzhdLDkyMzpbMCwuNjgzMzMsMCwuMTY2NjcsLjY5NDQ1XSw5MjY6WzAsLjY4MzMzLC4wNzU2OSwuMDgzMzQsLjc0MjM2XSw5Mjg6WzAsLjY4MzMzLC4wODEyNSwuMDU1NTYsLjgzMTI1XSw5MzE6WzAsLjY4MzMzLC4wNTc2NCwuMDgzMzQsLjc3OTg2XSw5MzM6WzAsLjY4MzMzLC4xMzg4OSwuMDU1NTYsLjU4MzMzXSw5MzQ6WzAsLjY4MzMzLDAsLjA4MzM0LC42NjY2N10sOTM2OlswLC42ODMzMywuMTEsLjA1NTU2LC42MTIyMl0sOTM3OlswLC42ODMzMywuMDUwMTcsLjA4MzM0LC43NzI0XSw5NDU6WzAsLjQzMDU2LC4wMDM3LC4wMjc3OCwuNjM5N10sOTQ2OlsuMTk0NDQsLjY5NDQ0LC4wNTI3OCwuMDgzMzQsLjU2NTYzXSw5NDc6Wy4xOTQ0NCwuNDMwNTYsLjA1NTU2LDAsLjUxNzczXSw5NDg6WzAsLjY5NDQ0LC4wMzc4NSwuMDU1NTYsLjQ0NDQ0XSw5NDk6WzAsLjQzMDU2LDAsLjA4MzM0LC40NjYzMl0sOTUwOlsuMTk0NDQsLjY5NDQ0LC4wNzM3OCwuMDgzMzQsLjQzNzVdLDk1MTpbLjE5NDQ0LC40MzA1NiwuMDM1ODgsLjA1NTU2LC40OTY1M10sOTUyOlswLC42OTQ0NCwuMDI3NzgsLjA4MzM0LC40Njk0NF0sOTUzOlswLC40MzA1NiwwLC4wNTU1NiwuMzUzOTRdLDk1NDpbMCwuNDMwNTYsMCwwLC41NzYxNl0sOTU1OlswLC42OTQ0NCwwLDAsLjU4MzM0XSw5NTY6Wy4xOTQ0NCwuNDMwNTYsMCwuMDI3NzgsLjYwMjU1XSw5NTc6WzAsLjQzMDU2LC4wNjM2NiwuMDI3NzgsLjQ5Mzk4XSw5NTg6Wy4xOTQ0NCwuNjk0NDQsLjA0NjAxLC4xMTExMSwuNDM3NV0sOTU5OlswLC40MzA1NiwwLC4wNTU1NiwuNDg0NzJdLDk2MDpbMCwuNDMwNTYsLjAzNTg4LDAsLjU3MDAzXSw5NjE6Wy4xOTQ0NCwuNDMwNTYsMCwuMDgzMzQsLjUxNzAyXSw5NjI6Wy4wOTcyMiwuNDMwNTYsLjA3OTg2LC4wODMzNCwuMzYyODVdLDk2MzpbMCwuNDMwNTYsLjAzNTg4LDAsLjU3MTQxXSw5NjQ6WzAsLjQzMDU2LC4xMTMyLC4wMjc3OCwuNDM3MTVdLDk2NTpbMCwuNDMwNTYsLjAzNTg4LC4wMjc3OCwuNTQwMjhdLDk2NjpbLjE5NDQ0LC40MzA1NiwwLC4wODMzNCwuNjU0MTddLDk2NzpbLjE5NDQ0LC40MzA1NiwwLC4wNTU1NiwuNjI1NjldLDk2ODpbLjE5NDQ0LC42OTQ0NCwuMDM1ODgsLjExMTExLC42NTEzOV0sOTY5OlswLC40MzA1NiwuMDM1ODgsMCwuNjIyNDVdLDk3NzpbMCwuNjk0NDQsMCwuMDgzMzQsLjU5MTQ0XSw5ODE6Wy4xOTQ0NCwuNjk0NDQsMCwuMDgzMzQsLjU5NTgzXSw5ODI6WzAsLjQzMDU2LC4wMjc3OCwwLC44MjgxM10sMTAwOTpbLjE5NDQ0LC40MzA1NiwwLC4wODMzNCwuNTE3MDJdLDEwMTM6WzAsLjQzMDU2LDAsLjA1NTU2LC40MDU5XSw1NzY0OTpbMCwuNDMwNTYsMCwuMDI3NzgsLjMyMjQ2XSw1NzkxMTpbLjE5NDQ0LC40MzA1NiwwLC4wODMzNCwuMzg0MDNdfSwiU2Fuc1NlcmlmLUJvbGQiOnszMjpbMCwwLDAsMCwuMjVdLDMzOlswLC42OTQ0NCwwLDAsLjM2NjY3XSwzNDpbMCwuNjk0NDQsMCwwLC41NTgzNF0sMzU6Wy4xOTQ0NCwuNjk0NDQsMCwwLC45MTY2N10sMzY6Wy4wNTU1NiwuNzUsMCwwLC41NV0sMzc6Wy4wNTU1NiwuNzUsMCwwLDEuMDI5MTJdLDM4OlswLC42OTQ0NCwwLDAsLjgzMDU2XSwzOTpbMCwuNjk0NDQsMCwwLC4zMDU1Nl0sNDA6Wy4yNSwuNzUsMCwwLC40Mjc3OF0sNDE6Wy4yNSwuNzUsMCwwLC40Mjc3OF0sNDI6WzAsLjc1LDAsMCwuNTVdLDQzOlsuMTE2NjcsLjYxNjY3LDAsMCwuODU1NTZdLDQ0OlsuMTA1NTYsLjEzMDU2LDAsMCwuMzA1NTZdLDQ1OlswLC40NTgzMywwLDAsLjM2NjY3XSw0NjpbMCwuMTMwNTYsMCwwLC4zMDU1Nl0sNDc6Wy4yNSwuNzUsMCwwLC41NV0sNDg6WzAsLjY5NDQ0LDAsMCwuNTVdLDQ5OlswLC42OTQ0NCwwLDAsLjU1XSw1MDpbMCwuNjk0NDQsMCwwLC41NV0sNTE6WzAsLjY5NDQ0LDAsMCwuNTVdLDUyOlswLC42OTQ0NCwwLDAsLjU1XSw1MzpbMCwuNjk0NDQsMCwwLC41NV0sNTQ6WzAsLjY5NDQ0LDAsMCwuNTVdLDU1OlswLC42OTQ0NCwwLDAsLjU1XSw1NjpbMCwuNjk0NDQsMCwwLC41NV0sNTc6WzAsLjY5NDQ0LDAsMCwuNTVdLDU4OlswLC40NTgzMywwLDAsLjMwNTU2XSw1OTpbLjEwNTU2LC40NTgzMywwLDAsLjMwNTU2XSw2MTpbLS4wOTM3NSwuNDA2MjUsMCwwLC44NTU1Nl0sNjM6WzAsLjY5NDQ0LDAsMCwuNTE5NDVdLDY0OlswLC42OTQ0NCwwLDAsLjczMzM0XSw2NTpbMCwuNjk0NDQsMCwwLC43MzMzNF0sNjY6WzAsLjY5NDQ0LDAsMCwuNzMzMzRdLDY3OlswLC42OTQ0NCwwLDAsLjcwMjc4XSw2ODpbMCwuNjk0NDQsMCwwLC43OTQ0NV0sNjk6WzAsLjY5NDQ0LDAsMCwuNjQxNjddLDcwOlswLC42OTQ0NCwwLDAsLjYxMTExXSw3MTpbMCwuNjk0NDQsMCwwLC43MzMzNF0sNzI6WzAsLjY5NDQ0LDAsMCwuNzk0NDVdLDczOlswLC42OTQ0NCwwLDAsLjMzMDU2XSw3NDpbMCwuNjk0NDQsMCwwLC41MTk0NV0sNzU6WzAsLjY5NDQ0LDAsMCwuNzYzODldLDc2OlswLC42OTQ0NCwwLDAsLjU4MDU2XSw3NzpbMCwuNjk0NDQsMCwwLC45Nzc3OF0sNzg6WzAsLjY5NDQ0LDAsMCwuNzk0NDVdLDc5OlswLC42OTQ0NCwwLDAsLjc5NDQ1XSw4MDpbMCwuNjk0NDQsMCwwLC43MDI3OF0sODE6Wy4xMDU1NiwuNjk0NDQsMCwwLC43OTQ0NV0sODI6WzAsLjY5NDQ0LDAsMCwuNzAyNzhdLDgzOlswLC42OTQ0NCwwLDAsLjYxMTExXSw4NDpbMCwuNjk0NDQsMCwwLC43MzMzNF0sODU6WzAsLjY5NDQ0LDAsMCwuNzYzODldLDg2OlswLC42OTQ0NCwuMDE1MjgsMCwuNzMzMzRdLDg3OlswLC42OTQ0NCwuMDE1MjgsMCwxLjAzODg5XSw4ODpbMCwuNjk0NDQsMCwwLC43MzMzNF0sODk6WzAsLjY5NDQ0LC4wMjc1LDAsLjczMzM0XSw5MDpbMCwuNjk0NDQsMCwwLC42NzIyM10sOTE6Wy4yNSwuNzUsMCwwLC4zNDMwNl0sOTM6Wy4yNSwuNzUsMCwwLC4zNDMwNl0sOTQ6WzAsLjY5NDQ0LDAsMCwuNTVdLDk1OlsuMzUsLjEwODMzLC4wMzA1NiwwLC41NV0sOTc6WzAsLjQ1ODMzLDAsMCwuNTI1XSw5ODpbMCwuNjk0NDQsMCwwLC41NjExMV0sOTk6WzAsLjQ1ODMzLDAsMCwuNDg4ODldLDEwMDpbMCwuNjk0NDQsMCwwLC41NjExMV0sMTAxOlswLC40NTgzMywwLDAsLjUxMTExXSwxMDI6WzAsLjY5NDQ0LC4wNzYzOSwwLC4zMzYxMV0sMTAzOlsuMTk0NDQsLjQ1ODMzLC4wMTUyOCwwLC41NV0sMTA0OlswLC42OTQ0NCwwLDAsLjU2MTExXSwxMDU6WzAsLjY5NDQ0LDAsMCwuMjU1NTZdLDEwNjpbLjE5NDQ0LC42OTQ0NCwwLDAsLjI4NjExXSwxMDc6WzAsLjY5NDQ0LDAsMCwuNTMwNTZdLDEwODpbMCwuNjk0NDQsMCwwLC4yNTU1Nl0sMTA5OlswLC40NTgzMywwLDAsLjg2NjY3XSwxMTA6WzAsLjQ1ODMzLDAsMCwuNTYxMTFdLDExMTpbMCwuNDU4MzMsMCwwLC41NV0sMTEyOlsuMTk0NDQsLjQ1ODMzLDAsMCwuNTYxMTFdLDExMzpbLjE5NDQ0LC40NTgzMywwLDAsLjU2MTExXSwxMTQ6WzAsLjQ1ODMzLC4wMTUyOCwwLC4zNzIyMl0sMTE1OlswLC40NTgzMywwLDAsLjQyMTY3XSwxMTY6WzAsLjU4OTI5LDAsMCwuNDA0MTddLDExNzpbMCwuNDU4MzMsMCwwLC41NjExMV0sMTE4OlswLC40NTgzMywuMDE1MjgsMCwuNV0sMTE5OlswLC40NTgzMywuMDE1MjgsMCwuNzQ0NDVdLDEyMDpbMCwuNDU4MzMsMCwwLC41XSwxMjE6Wy4xOTQ0NCwuNDU4MzMsLjAxNTI4LDAsLjVdLDEyMjpbMCwuNDU4MzMsMCwwLC40NzYzOV0sMTI2OlsuMzUsLjM0NDQ0LDAsMCwuNTVdLDE2MDpbMCwwLDAsMCwuMjVdLDE2ODpbMCwuNjk0NDQsMCwwLC41NV0sMTc2OlswLC42OTQ0NCwwLDAsLjczMzM0XSwxODA6WzAsLjY5NDQ0LDAsMCwuNTVdLDE4NDpbLjE3MDE0LDAsMCwwLC40ODg4OV0sMzA1OlswLC40NTgzMywwLDAsLjI1NTU2XSw1Njc6Wy4xOTQ0NCwuNDU4MzMsMCwwLC4yODYxMV0sNzEwOlswLC42OTQ0NCwwLDAsLjU1XSw3MTE6WzAsLjYzNTQyLDAsMCwuNTVdLDcxMzpbMCwuNjM3NzgsMCwwLC41NV0sNzI4OlswLC42OTQ0NCwwLDAsLjU1XSw3Mjk6WzAsLjY5NDQ0LDAsMCwuMzA1NTZdLDczMDpbMCwuNjk0NDQsMCwwLC43MzMzNF0sNzMyOlswLC42OTQ0NCwwLDAsLjU1XSw3MzM6WzAsLjY5NDQ0LDAsMCwuNTVdLDkxNTpbMCwuNjk0NDQsMCwwLC41ODA1Nl0sOTE2OlswLC42OTQ0NCwwLDAsLjkxNjY3XSw5MjA6WzAsLjY5NDQ0LDAsMCwuODU1NTZdLDkyMzpbMCwuNjk0NDQsMCwwLC42NzIyM10sOTI2OlswLC42OTQ0NCwwLDAsLjczMzM0XSw5Mjg6WzAsLjY5NDQ0LDAsMCwuNzk0NDVdLDkzMTpbMCwuNjk0NDQsMCwwLC43OTQ0NV0sOTMzOlswLC42OTQ0NCwwLDAsLjg1NTU2XSw5MzQ6WzAsLjY5NDQ0LDAsMCwuNzk0NDVdLDkzNjpbMCwuNjk0NDQsMCwwLC44NTU1Nl0sOTM3OlswLC42OTQ0NCwwLDAsLjc5NDQ1XSw4MjExOlswLC40NTgzMywuMDMwNTYsMCwuNTVdLDgyMTI6WzAsLjQ1ODMzLC4wMzA1NiwwLDEuMTAwMDFdLDgyMTY6WzAsLjY5NDQ0LDAsMCwuMzA1NTZdLDgyMTc6WzAsLjY5NDQ0LDAsMCwuMzA1NTZdLDgyMjA6WzAsLjY5NDQ0LDAsMCwuNTU4MzRdLDgyMjE6WzAsLjY5NDQ0LDAsMCwuNTU4MzRdfSwiU2Fuc1NlcmlmLUl0YWxpYyI6ezMyOlswLDAsMCwwLC4yNV0sMzM6WzAsLjY5NDQ0LC4wNTczMywwLC4zMTk0NV0sMzQ6WzAsLjY5NDQ0LC4wMDMxNiwwLC41XSwzNTpbLjE5NDQ0LC42OTQ0NCwuMDUwODcsMCwuODMzMzRdLDM2OlsuMDU1NTYsLjc1LC4xMTE1NiwwLC41XSwzNzpbLjA1NTU2LC43NSwuMDMxMjYsMCwuODMzMzRdLDM4OlswLC42OTQ0NCwuMDMwNTgsMCwuNzU4MzRdLDM5OlswLC42OTQ0NCwuMDc4MTYsMCwuMjc3NzhdLDQwOlsuMjUsLjc1LC4xMzE2NCwwLC4zODg4OV0sNDE6Wy4yNSwuNzUsLjAyNTM2LDAsLjM4ODg5XSw0MjpbMCwuNzUsLjExNzc1LDAsLjVdLDQzOlsuMDgzMzMsLjU4MzMzLC4wMjUzNiwwLC43Nzc3OF0sNDQ6Wy4xMjUsLjA4MzMzLDAsMCwuMjc3NzhdLDQ1OlswLC40NDQ0NCwuMDE5NDYsMCwuMzMzMzNdLDQ2OlswLC4wODMzMywwLDAsLjI3Nzc4XSw0NzpbLjI1LC43NSwuMTMxNjQsMCwuNV0sNDg6WzAsLjY1NTU2LC4xMTE1NiwwLC41XSw0OTpbMCwuNjU1NTYsLjExMTU2LDAsLjVdLDUwOlswLC42NTU1NiwuMTExNTYsMCwuNV0sNTE6WzAsLjY1NTU2LC4xMTE1NiwwLC41XSw1MjpbMCwuNjU1NTYsLjExMTU2LDAsLjVdLDUzOlswLC42NTU1NiwuMTExNTYsMCwuNV0sNTQ6WzAsLjY1NTU2LC4xMTE1NiwwLC41XSw1NTpbMCwuNjU1NTYsLjExMTU2LDAsLjVdLDU2OlswLC42NTU1NiwuMTExNTYsMCwuNV0sNTc6WzAsLjY1NTU2LC4xMTE1NiwwLC41XSw1ODpbMCwuNDQ0NDQsLjAyNTAyLDAsLjI3Nzc4XSw1OTpbLjEyNSwuNDQ0NDQsLjAyNTAyLDAsLjI3Nzc4XSw2MTpbLS4xMywuMzcsLjA1MDg3LDAsLjc3Nzc4XSw2MzpbMCwuNjk0NDQsLjExODA5LDAsLjQ3MjIyXSw2NDpbMCwuNjk0NDQsLjA3NTU1LDAsLjY2NjY3XSw2NTpbMCwuNjk0NDQsMCwwLC42NjY2N10sNjY6WzAsLjY5NDQ0LC4wODI5MywwLC42NjY2N10sNjc6WzAsLjY5NDQ0LC4xMTk4MywwLC42Mzg4OV0sNjg6WzAsLjY5NDQ0LC4wNzU1NSwwLC43MjIyM10sNjk6WzAsLjY5NDQ0LC4xMTk4MywwLC41OTcyMl0sNzA6WzAsLjY5NDQ0LC4xMzM3MiwwLC41Njk0NV0sNzE6WzAsLjY5NDQ0LC4xMTk4MywwLC42NjY2N10sNzI6WzAsLjY5NDQ0LC4wODA5NCwwLC43MDgzNF0sNzM6WzAsLjY5NDQ0LC4xMzM3MiwwLC4yNzc3OF0sNzQ6WzAsLjY5NDQ0LC4wODA5NCwwLC40NzIyMl0sNzU6WzAsLjY5NDQ0LC4xMTk4MywwLC42OTQ0NV0sNzY6WzAsLjY5NDQ0LDAsMCwuNTQxNjddLDc3OlswLC42OTQ0NCwuMDgwOTQsMCwuODc1XSw3ODpbMCwuNjk0NDQsLjA4MDk0LDAsLjcwODM0XSw3OTpbMCwuNjk0NDQsLjA3NTU1LDAsLjczNjExXSw4MDpbMCwuNjk0NDQsLjA4MjkzLDAsLjYzODg5XSw4MTpbLjEyNSwuNjk0NDQsLjA3NTU1LDAsLjczNjExXSw4MjpbMCwuNjk0NDQsLjA4MjkzLDAsLjY0NTg0XSw4MzpbMCwuNjk0NDQsLjA5MjA1LDAsLjU1NTU2XSw4NDpbMCwuNjk0NDQsLjEzMzcyLDAsLjY4MDU2XSw4NTpbMCwuNjk0NDQsLjA4MDk0LDAsLjY4NzVdLDg2OlswLC42OTQ0NCwuMTYxNSwwLC42NjY2N10sODc6WzAsLjY5NDQ0LC4xNjE1LDAsLjk0NDQ1XSw4ODpbMCwuNjk0NDQsLjEzMzcyLDAsLjY2NjY3XSw4OTpbMCwuNjk0NDQsLjE3MjYxLDAsLjY2NjY3XSw5MDpbMCwuNjk0NDQsLjExOTgzLDAsLjYxMTExXSw5MTpbLjI1LC43NSwuMTU5NDIsMCwuMjg4ODldLDkzOlsuMjUsLjc1LC4wODcxOSwwLC4yODg4OV0sOTQ6WzAsLjY5NDQ0LC4wNzk5LDAsLjVdLDk1OlsuMzUsLjA5NDQ0LC4wODYxNiwwLC41XSw5NzpbMCwuNDQ0NDQsLjAwOTgxLDAsLjQ4MDU2XSw5ODpbMCwuNjk0NDQsLjAzMDU3LDAsLjUxNjY3XSw5OTpbMCwuNDQ0NDQsLjA4MzM2LDAsLjQ0NDQ1XSwxMDA6WzAsLjY5NDQ0LC4wOTQ4MywwLC41MTY2N10sMTAxOlswLC40NDQ0NCwuMDY3NzgsMCwuNDQ0NDVdLDEwMjpbMCwuNjk0NDQsLjIxNzA1LDAsLjMwNTU2XSwxMDM6Wy4xOTQ0NCwuNDQ0NDQsLjEwODM2LDAsLjVdLDEwNDpbMCwuNjk0NDQsLjAxNzc4LDAsLjUxNjY3XSwxMDU6WzAsLjY3OTM3LC4wOTcxOCwwLC4yMzg4OV0sMTA2OlsuMTk0NDQsLjY3OTM3LC4wOTE2MiwwLC4yNjY2N10sMTA3OlswLC42OTQ0NCwuMDgzMzYsMCwuNDg4ODldLDEwODpbMCwuNjk0NDQsLjA5NDgzLDAsLjIzODg5XSwxMDk6WzAsLjQ0NDQ0LC4wMTc3OCwwLC43OTQ0NV0sMTEwOlswLC40NDQ0NCwuMDE3NzgsMCwuNTE2NjddLDExMTpbMCwuNDQ0NDQsLjA2NjEzLDAsLjVdLDExMjpbLjE5NDQ0LC40NDQ0NCwuMDM4OSwwLC41MTY2N10sMTEzOlsuMTk0NDQsLjQ0NDQ0LC4wNDE2OSwwLC41MTY2N10sMTE0OlswLC40NDQ0NCwuMTA4MzYsMCwuMzQxNjddLDExNTpbMCwuNDQ0NDQsLjA3NzgsMCwuMzgzMzNdLDExNjpbMCwuNTcxNDMsLjA3MjI1LDAsLjM2MTExXSwxMTc6WzAsLjQ0NDQ0LC4wNDE2OSwwLC41MTY2N10sMTE4OlswLC40NDQ0NCwuMTA4MzYsMCwuNDYxMTFdLDExOTpbMCwuNDQ0NDQsLjEwODM2LDAsLjY4MzM0XSwxMjA6WzAsLjQ0NDQ0LC4wOTE2OSwwLC40NjExMV0sMTIxOlsuMTk0NDQsLjQ0NDQ0LC4xMDgzNiwwLC40NjExMV0sMTIyOlswLC40NDQ0NCwuMDg3NTIsMCwuNDM0NzJdLDEyNjpbLjM1LC4zMjY1OSwuMDg4MjYsMCwuNV0sMTYwOlswLDAsMCwwLC4yNV0sMTY4OlswLC42NzkzNywuMDYzODUsMCwuNV0sMTc2OlswLC42OTQ0NCwwLDAsLjczNzUyXSwxODQ6Wy4xNzAxNCwwLDAsMCwuNDQ0NDVdLDMwNTpbMCwuNDQ0NDQsLjA0MTY5LDAsLjIzODg5XSw1Njc6Wy4xOTQ0NCwuNDQ0NDQsLjA0MTY5LDAsLjI2NjY3XSw3MTA6WzAsLjY5NDQ0LC4wNzk5LDAsLjVdLDcxMTpbMCwuNjMxOTQsLjA4NDMyLDAsLjVdLDcxMzpbMCwuNjA4ODksLjA4Nzc2LDAsLjVdLDcxNDpbMCwuNjk0NDQsLjA5MjA1LDAsLjVdLDcxNTpbMCwuNjk0NDQsMCwwLC41XSw3Mjg6WzAsLjY5NDQ0LC4wOTQ4MywwLC41XSw3Mjk6WzAsLjY3OTM3LC4wNzc3NCwwLC4yNzc3OF0sNzMwOlswLC42OTQ0NCwwLDAsLjczNzUyXSw3MzI6WzAsLjY3NjU5LC4wODgyNiwwLC41XSw3MzM6WzAsLjY5NDQ0LC4wOTIwNSwwLC41XSw5MTU6WzAsLjY5NDQ0LC4xMzM3MiwwLC41NDE2N10sOTE2OlswLC42OTQ0NCwwLDAsLjgzMzM0XSw5MjA6WzAsLjY5NDQ0LC4wNzU1NSwwLC43Nzc3OF0sOTIzOlswLC42OTQ0NCwwLDAsLjYxMTExXSw5MjY6WzAsLjY5NDQ0LC4xMjgxNiwwLC42NjY2N10sOTI4OlswLC42OTQ0NCwuMDgwOTQsMCwuNzA4MzRdLDkzMTpbMCwuNjk0NDQsLjExOTgzLDAsLjcyMjIyXSw5MzM6WzAsLjY5NDQ0LC4wOTAzMSwwLC43Nzc3OF0sOTM0OlswLC42OTQ0NCwuMDQ2MDMsMCwuNzIyMjJdLDkzNjpbMCwuNjk0NDQsLjA5MDMxLDAsLjc3Nzc4XSw5Mzc6WzAsLjY5NDQ0LC4wODI5MywwLC43MjIyMl0sODIxMTpbMCwuNDQ0NDQsLjA4NjE2LDAsLjVdLDgyMTI6WzAsLjQ0NDQ0LC4wODYxNiwwLDFdLDgyMTY6WzAsLjY5NDQ0LC4wNzgxNiwwLC4yNzc3OF0sODIxNzpbMCwuNjk0NDQsLjA3ODE2LDAsLjI3Nzc4XSw4MjIwOlswLC42OTQ0NCwuMTQyMDUsMCwuNV0sODIyMTpbMCwuNjk0NDQsLjAwMzE2LDAsLjVdfSwiU2Fuc1NlcmlmLVJlZ3VsYXIiOnszMjpbMCwwLDAsMCwuMjVdLDMzOlswLC42OTQ0NCwwLDAsLjMxOTQ1XSwzNDpbMCwuNjk0NDQsMCwwLC41XSwzNTpbLjE5NDQ0LC42OTQ0NCwwLDAsLjgzMzM0XSwzNjpbLjA1NTU2LC43NSwwLDAsLjVdLDM3OlsuMDU1NTYsLjc1LDAsMCwuODMzMzRdLDM4OlswLC42OTQ0NCwwLDAsLjc1ODM0XSwzOTpbMCwuNjk0NDQsMCwwLC4yNzc3OF0sNDA6Wy4yNSwuNzUsMCwwLC4zODg4OV0sNDE6Wy4yNSwuNzUsMCwwLC4zODg4OV0sNDI6WzAsLjc1LDAsMCwuNV0sNDM6Wy4wODMzMywuNTgzMzMsMCwwLC43Nzc3OF0sNDQ6Wy4xMjUsLjA4MzMzLDAsMCwuMjc3NzhdLDQ1OlswLC40NDQ0NCwwLDAsLjMzMzMzXSw0NjpbMCwuMDgzMzMsMCwwLC4yNzc3OF0sNDc6Wy4yNSwuNzUsMCwwLC41XSw0ODpbMCwuNjU1NTYsMCwwLC41XSw0OTpbMCwuNjU1NTYsMCwwLC41XSw1MDpbMCwuNjU1NTYsMCwwLC41XSw1MTpbMCwuNjU1NTYsMCwwLC41XSw1MjpbMCwuNjU1NTYsMCwwLC41XSw1MzpbMCwuNjU1NTYsMCwwLC41XSw1NDpbMCwuNjU1NTYsMCwwLC41XSw1NTpbMCwuNjU1NTYsMCwwLC41XSw1NjpbMCwuNjU1NTYsMCwwLC41XSw1NzpbMCwuNjU1NTYsMCwwLC41XSw1ODpbMCwuNDQ0NDQsMCwwLC4yNzc3OF0sNTk6Wy4xMjUsLjQ0NDQ0LDAsMCwuMjc3NzhdLDYxOlstLjEzLC4zNywwLDAsLjc3Nzc4XSw2MzpbMCwuNjk0NDQsMCwwLC40NzIyMl0sNjQ6WzAsLjY5NDQ0LDAsMCwuNjY2NjddLDY1OlswLC42OTQ0NCwwLDAsLjY2NjY3XSw2NjpbMCwuNjk0NDQsMCwwLC42NjY2N10sNjc6WzAsLjY5NDQ0LDAsMCwuNjM4ODldLDY4OlswLC42OTQ0NCwwLDAsLjcyMjIzXSw2OTpbMCwuNjk0NDQsMCwwLC41OTcyMl0sNzA6WzAsLjY5NDQ0LDAsMCwuNTY5NDVdLDcxOlswLC42OTQ0NCwwLDAsLjY2NjY3XSw3MjpbMCwuNjk0NDQsMCwwLC43MDgzNF0sNzM6WzAsLjY5NDQ0LDAsMCwuMjc3NzhdLDc0OlswLC42OTQ0NCwwLDAsLjQ3MjIyXSw3NTpbMCwuNjk0NDQsMCwwLC42OTQ0NV0sNzY6WzAsLjY5NDQ0LDAsMCwuNTQxNjddLDc3OlswLC42OTQ0NCwwLDAsLjg3NV0sNzg6WzAsLjY5NDQ0LDAsMCwuNzA4MzRdLDc5OlswLC42OTQ0NCwwLDAsLjczNjExXSw4MDpbMCwuNjk0NDQsMCwwLC42Mzg4OV0sODE6Wy4xMjUsLjY5NDQ0LDAsMCwuNzM2MTFdLDgyOlswLC42OTQ0NCwwLDAsLjY0NTg0XSw4MzpbMCwuNjk0NDQsMCwwLC41NTU1Nl0sODQ6WzAsLjY5NDQ0LDAsMCwuNjgwNTZdLDg1OlswLC42OTQ0NCwwLDAsLjY4NzVdLDg2OlswLC42OTQ0NCwuMDEzODksMCwuNjY2NjddLDg3OlswLC42OTQ0NCwuMDEzODksMCwuOTQ0NDVdLDg4OlswLC42OTQ0NCwwLDAsLjY2NjY3XSw4OTpbMCwuNjk0NDQsLjAyNSwwLC42NjY2N10sOTA6WzAsLjY5NDQ0LDAsMCwuNjExMTFdLDkxOlsuMjUsLjc1LDAsMCwuMjg4ODldLDkzOlsuMjUsLjc1LDAsMCwuMjg4ODldLDk0OlswLC42OTQ0NCwwLDAsLjVdLDk1OlsuMzUsLjA5NDQ0LC4wMjc3OCwwLC41XSw5NzpbMCwuNDQ0NDQsMCwwLC40ODA1Nl0sOTg6WzAsLjY5NDQ0LDAsMCwuNTE2NjddLDk5OlswLC40NDQ0NCwwLDAsLjQ0NDQ1XSwxMDA6WzAsLjY5NDQ0LDAsMCwuNTE2NjddLDEwMTpbMCwuNDQ0NDQsMCwwLC40NDQ0NV0sMTAyOlswLC42OTQ0NCwuMDY5NDQsMCwuMzA1NTZdLDEwMzpbLjE5NDQ0LC40NDQ0NCwuMDEzODksMCwuNV0sMTA0OlswLC42OTQ0NCwwLDAsLjUxNjY3XSwxMDU6WzAsLjY3OTM3LDAsMCwuMjM4ODldLDEwNjpbLjE5NDQ0LC42NzkzNywwLDAsLjI2NjY3XSwxMDc6WzAsLjY5NDQ0LDAsMCwuNDg4ODldLDEwODpbMCwuNjk0NDQsMCwwLC4yMzg4OV0sMTA5OlswLC40NDQ0NCwwLDAsLjc5NDQ1XSwxMTA6WzAsLjQ0NDQ0LDAsMCwuNTE2NjddLDExMTpbMCwuNDQ0NDQsMCwwLC41XSwxMTI6Wy4xOTQ0NCwuNDQ0NDQsMCwwLC41MTY2N10sMTEzOlsuMTk0NDQsLjQ0NDQ0LDAsMCwuNTE2NjddLDExNDpbMCwuNDQ0NDQsLjAxMzg5LDAsLjM0MTY3XSwxMTU6WzAsLjQ0NDQ0LDAsMCwuMzgzMzNdLDExNjpbMCwuNTcxNDMsMCwwLC4zNjExMV0sMTE3OlswLC40NDQ0NCwwLDAsLjUxNjY3XSwxMTg6WzAsLjQ0NDQ0LC4wMTM4OSwwLC40NjExMV0sMTE5OlswLC40NDQ0NCwuMDEzODksMCwuNjgzMzRdLDEyMDpbMCwuNDQ0NDQsMCwwLC40NjExMV0sMTIxOlsuMTk0NDQsLjQ0NDQ0LC4wMTM4OSwwLC40NjExMV0sMTIyOlswLC40NDQ0NCwwLDAsLjQzNDcyXSwxMjY6Wy4zNSwuMzI2NTksMCwwLC41XSwxNjA6WzAsMCwwLDAsLjI1XSwxNjg6WzAsLjY3OTM3LDAsMCwuNV0sMTc2OlswLC42OTQ0NCwwLDAsLjY2NjY3XSwxODQ6Wy4xNzAxNCwwLDAsMCwuNDQ0NDVdLDMwNTpbMCwuNDQ0NDQsMCwwLC4yMzg4OV0sNTY3OlsuMTk0NDQsLjQ0NDQ0LDAsMCwuMjY2NjddLDcxMDpbMCwuNjk0NDQsMCwwLC41XSw3MTE6WzAsLjYzMTk0LDAsMCwuNV0sNzEzOlswLC42MDg4OSwwLDAsLjVdLDcxNDpbMCwuNjk0NDQsMCwwLC41XSw3MTU6WzAsLjY5NDQ0LDAsMCwuNV0sNzI4OlswLC42OTQ0NCwwLDAsLjVdLDcyOTpbMCwuNjc5MzcsMCwwLC4yNzc3OF0sNzMwOlswLC42OTQ0NCwwLDAsLjY2NjY3XSw3MzI6WzAsLjY3NjU5LDAsMCwuNV0sNzMzOlswLC42OTQ0NCwwLDAsLjVdLDkxNTpbMCwuNjk0NDQsMCwwLC41NDE2N10sOTE2OlswLC42OTQ0NCwwLDAsLjgzMzM0XSw5MjA6WzAsLjY5NDQ0LDAsMCwuNzc3NzhdLDkyMzpbMCwuNjk0NDQsMCwwLC42MTExMV0sOTI2OlswLC42OTQ0NCwwLDAsLjY2NjY3XSw5Mjg6WzAsLjY5NDQ0LDAsMCwuNzA4MzRdLDkzMTpbMCwuNjk0NDQsMCwwLC43MjIyMl0sOTMzOlswLC42OTQ0NCwwLDAsLjc3Nzc4XSw5MzQ6WzAsLjY5NDQ0LDAsMCwuNzIyMjJdLDkzNjpbMCwuNjk0NDQsMCwwLC43Nzc3OF0sOTM3OlswLC42OTQ0NCwwLDAsLjcyMjIyXSw4MjExOlswLC40NDQ0NCwuMDI3NzgsMCwuNV0sODIxMjpbMCwuNDQ0NDQsLjAyNzc4LDAsMV0sODIxNjpbMCwuNjk0NDQsMCwwLC4yNzc3OF0sODIxNzpbMCwuNjk0NDQsMCwwLC4yNzc3OF0sODIyMDpbMCwuNjk0NDQsMCwwLC41XSw4MjIxOlswLC42OTQ0NCwwLDAsLjVdfSwiU2NyaXB0LVJlZ3VsYXIiOnszMjpbMCwwLDAsMCwuMjVdLDY1OlswLC43LC4yMjkyNSwwLC44MDI1M10sNjY6WzAsLjcsLjA0MDg3LDAsLjkwNzU3XSw2NzpbMCwuNywuMTY4OSwwLC42NjYxOV0sNjg6WzAsLjcsLjA5MzcxLDAsLjc3NDQzXSw2OTpbMCwuNywuMTg1ODMsMCwuNTYxNjJdLDcwOlswLC43LC4xMzYzNCwwLC44OTU0NF0sNzE6WzAsLjcsLjE3MzIyLDAsLjYwOTYxXSw3MjpbMCwuNywuMjk2OTQsMCwuOTY5MTldLDczOlswLC43LC4xOTE4OSwwLC44MDkwN10sNzQ6Wy4yNzc3OCwuNywuMTkxODksMCwxLjA1MTU5XSw3NTpbMCwuNywuMzEyNTksMCwuOTEzNjRdLDc2OlswLC43LC4xOTE4OSwwLC44NzM3M10sNzc6WzAsLjcsLjE1OTgxLDAsMS4wODAzMV0sNzg6WzAsLjcsLjM1MjUsMCwuOTAxNV0sNzk6WzAsLjcsLjA4MDc4LDAsLjczNzg3XSw4MDpbMCwuNywuMDgwNzgsMCwxLjAxMjYyXSw4MTpbMCwuNywuMDMzMDUsMCwuODgyODJdLDgyOlswLC43LC4wNjI1OSwwLC44NV0sODM6WzAsLjcsLjE5MTg5LDAsLjg2NzY3XSw4NDpbMCwuNywuMjkwODcsMCwuNzQ2OTddLDg1OlswLC43LC4yNTgxNSwwLC43OTk5Nl0sODY6WzAsLjcsLjI3NTIzLDAsLjYyMjA0XSw4NzpbMCwuNywuMjc1MjMsMCwuODA1MzJdLDg4OlswLC43LC4yNjAwNiwwLC45NDQ0NV0sODk6WzAsLjcsLjI5MzksMCwuNzA5NjFdLDkwOlswLC43LC4yNDAzNywwLC44MjEyXSwxNjA6WzAsMCwwLDAsLjI1XX0sIlNpemUxLVJlZ3VsYXIiOnszMjpbMCwwLDAsMCwuMjVdLDQwOlsuMzUwMDEsLjg1LDAsMCwuNDU4MzRdLDQxOlsuMzUwMDEsLjg1LDAsMCwuNDU4MzRdLDQ3OlsuMzUwMDEsLjg1LDAsMCwuNTc3NzhdLDkxOlsuMzUwMDEsLjg1LDAsMCwuNDE2NjddLDkyOlsuMzUwMDEsLjg1LDAsMCwuNTc3NzhdLDkzOlsuMzUwMDEsLjg1LDAsMCwuNDE2NjddLDEyMzpbLjM1MDAxLC44NSwwLDAsLjU4MzM0XSwxMjU6Wy4zNTAwMSwuODUsMCwwLC41ODMzNF0sMTYwOlswLDAsMCwwLC4yNV0sNzEwOlswLC43MjIyMiwwLDAsLjU1NTU2XSw3MzI6WzAsLjcyMjIyLDAsMCwuNTU1NTZdLDc3MDpbMCwuNzIyMjIsMCwwLC41NTU1Nl0sNzcxOlswLC43MjIyMiwwLDAsLjU1NTU2XSw4MjE0OlstOTllLTUsLjYwMSwwLDAsLjc3Nzc4XSw4NTkzOlsxZS01LC42LDAsMCwuNjY2NjddLDg1OTU6WzFlLTUsLjYsMCwwLC42NjY2N10sODY1NzpbMWUtNSwuNiwwLDAsLjc3Nzc4XSw4NjU5OlsxZS01LC42LDAsMCwuNzc3NzhdLDg3MTk6Wy4yNTAwMSwuNzUsMCwwLC45NDQ0NV0sODcyMDpbLjI1MDAxLC43NSwwLDAsLjk0NDQ1XSw4NzIxOlsuMjUwMDEsLjc1LDAsMCwxLjA1NTU2XSw4NzMwOlsuMzUwMDEsLjg1LDAsMCwxXSw4NzM5OlstLjAwNTk5LC42MDYsMCwwLC4zMzMzM10sODc0MTpbLS4wMDU5OSwuNjA2LDAsMCwuNTU1NTZdLDg3NDc6Wy4zMDYxMiwuODA1LC4xOTQ0NSwwLC40NzIyMl0sODc0ODpbLjMwNiwuODA1LC4xOTQ0NSwwLC40NzIyMl0sODc0OTpbLjMwNiwuODA1LC4xOTQ0NSwwLC40NzIyMl0sODc1MDpbLjMwNjEyLC44MDUsLjE5NDQ1LDAsLjQ3MjIyXSw4ODk2OlsuMjUwMDEsLjc1LDAsMCwuODMzMzRdLDg4OTc6Wy4yNTAwMSwuNzUsMCwwLC44MzMzNF0sODg5ODpbLjI1MDAxLC43NSwwLDAsLjgzMzM0XSw4ODk5OlsuMjUwMDEsLjc1LDAsMCwuODMzMzRdLDg5Njg6Wy4zNTAwMSwuODUsMCwwLC40NzIyMl0sODk2OTpbLjM1MDAxLC44NSwwLDAsLjQ3MjIyXSw4OTcwOlsuMzUwMDEsLjg1LDAsMCwuNDcyMjJdLDg5NzE6Wy4zNTAwMSwuODUsMCwwLC40NzIyMl0sOTE2ODpbLTk5ZS01LC42MDEsMCwwLC42NjY2N10sMTAyMTY6Wy4zNTAwMSwuODUsMCwwLC40NzIyMl0sMTAyMTc6Wy4zNTAwMSwuODUsMCwwLC40NzIyMl0sMTA3NTI6Wy4yNTAwMSwuNzUsMCwwLDEuMTExMTFdLDEwNzUzOlsuMjUwMDEsLjc1LDAsMCwxLjExMTExXSwxMDc1NDpbLjI1MDAxLC43NSwwLDAsMS4xMTExMV0sMTA3NTY6Wy4yNTAwMSwuNzUsMCwwLC44MzMzNF0sMTA3NTg6Wy4yNTAwMSwuNzUsMCwwLC44MzMzNF19LCJTaXplMi1SZWd1bGFyIjp7MzI6WzAsMCwwLDAsLjI1XSw0MDpbLjY1MDAyLDEuMTUsMCwwLC41OTcyMl0sNDE6Wy42NTAwMiwxLjE1LDAsMCwuNTk3MjJdLDQ3OlsuNjUwMDIsMS4xNSwwLDAsLjgxMTExXSw5MTpbLjY1MDAyLDEuMTUsMCwwLC40NzIyMl0sOTI6Wy42NTAwMiwxLjE1LDAsMCwuODExMTFdLDkzOlsuNjUwMDIsMS4xNSwwLDAsLjQ3MjIyXSwxMjM6Wy42NTAwMiwxLjE1LDAsMCwuNjY2NjddLDEyNTpbLjY1MDAyLDEuMTUsMCwwLC42NjY2N10sMTYwOlswLDAsMCwwLC4yNV0sNzEwOlswLC43NSwwLDAsMV0sNzMyOlswLC43NSwwLDAsMV0sNzcwOlswLC43NSwwLDAsMV0sNzcxOlswLC43NSwwLDAsMV0sODcxOTpbLjU1MDAxLDEuMDUsMCwwLDEuMjc3NzhdLDg3MjA6Wy41NTAwMSwxLjA1LDAsMCwxLjI3Nzc4XSw4NzIxOlsuNTUwMDEsMS4wNSwwLDAsMS40NDQ0NV0sODczMDpbLjY1MDAyLDEuMTUsMCwwLDFdLDg3NDc6Wy44NjIyNSwxLjM2LC40NDQ0NSwwLC41NTU1Nl0sODc0ODpbLjg2MiwxLjM2LC40NDQ0NSwwLC41NTU1Nl0sODc0OTpbLjg2MiwxLjM2LC40NDQ0NSwwLC41NTU1Nl0sODc1MDpbLjg2MjI1LDEuMzYsLjQ0NDQ1LDAsLjU1NTU2XSw4ODk2OlsuNTUwMDEsMS4wNSwwLDAsMS4xMTExMV0sODg5NzpbLjU1MDAxLDEuMDUsMCwwLDEuMTExMTFdLDg4OTg6Wy41NTAwMSwxLjA1LDAsMCwxLjExMTExXSw4ODk5OlsuNTUwMDEsMS4wNSwwLDAsMS4xMTExMV0sODk2ODpbLjY1MDAyLDEuMTUsMCwwLC41Mjc3OF0sODk2OTpbLjY1MDAyLDEuMTUsMCwwLC41Mjc3OF0sODk3MDpbLjY1MDAyLDEuMTUsMCwwLC41Mjc3OF0sODk3MTpbLjY1MDAyLDEuMTUsMCwwLC41Mjc3OF0sMTAyMTY6Wy42NTAwMiwxLjE1LDAsMCwuNjExMTFdLDEwMjE3OlsuNjUwMDIsMS4xNSwwLDAsLjYxMTExXSwxMDc1MjpbLjU1MDAxLDEuMDUsMCwwLDEuNTExMTJdLDEwNzUzOlsuNTUwMDEsMS4wNSwwLDAsMS41MTExMl0sMTA3NTQ6Wy41NTAwMSwxLjA1LDAsMCwxLjUxMTEyXSwxMDc1NjpbLjU1MDAxLDEuMDUsMCwwLDEuMTExMTFdLDEwNzU4OlsuNTUwMDEsMS4wNSwwLDAsMS4xMTExMV19LCJTaXplMy1SZWd1bGFyIjp7MzI6WzAsMCwwLDAsLjI1XSw0MDpbLjk1MDAzLDEuNDUsMCwwLC43MzYxMV0sNDE6Wy45NTAwMywxLjQ1LDAsMCwuNzM2MTFdLDQ3OlsuOTUwMDMsMS40NSwwLDAsMS4wNDQ0NV0sOTE6Wy45NTAwMywxLjQ1LDAsMCwuNTI3NzhdLDkyOlsuOTUwMDMsMS40NSwwLDAsMS4wNDQ0NV0sOTM6Wy45NTAwMywxLjQ1LDAsMCwuNTI3NzhdLDEyMzpbLjk1MDAzLDEuNDUsMCwwLC43NV0sMTI1OlsuOTUwMDMsMS40NSwwLDAsLjc1XSwxNjA6WzAsMCwwLDAsLjI1XSw3MTA6WzAsLjc1LDAsMCwxLjQ0NDQ1XSw3MzI6WzAsLjc1LDAsMCwxLjQ0NDQ1XSw3NzA6WzAsLjc1LDAsMCwxLjQ0NDQ1XSw3NzE6WzAsLjc1LDAsMCwxLjQ0NDQ1XSw4NzMwOlsuOTUwMDMsMS40NSwwLDAsMV0sODk2ODpbLjk1MDAzLDEuNDUsMCwwLC41ODMzNF0sODk2OTpbLjk1MDAzLDEuNDUsMCwwLC41ODMzNF0sODk3MDpbLjk1MDAzLDEuNDUsMCwwLC41ODMzNF0sODk3MTpbLjk1MDAzLDEuNDUsMCwwLC41ODMzNF0sMTAyMTY6Wy45NTAwMywxLjQ1LDAsMCwuNzVdLDEwMjE3OlsuOTUwMDMsMS40NSwwLDAsLjc1XX0sIlNpemU0LVJlZ3VsYXIiOnszMjpbMCwwLDAsMCwuMjVdLDQwOlsxLjI1MDAzLDEuNzUsMCwwLC43OTE2N10sNDE6WzEuMjUwMDMsMS43NSwwLDAsLjc5MTY3XSw0NzpbMS4yNTAwMywxLjc1LDAsMCwxLjI3Nzc4XSw5MTpbMS4yNTAwMywxLjc1LDAsMCwuNTgzMzRdLDkyOlsxLjI1MDAzLDEuNzUsMCwwLDEuMjc3NzhdLDkzOlsxLjI1MDAzLDEuNzUsMCwwLC41ODMzNF0sMTIzOlsxLjI1MDAzLDEuNzUsMCwwLC44MDU1Nl0sMTI1OlsxLjI1MDAzLDEuNzUsMCwwLC44MDU1Nl0sMTYwOlswLDAsMCwwLC4yNV0sNzEwOlswLC44MjUsMCwwLDEuODg4OV0sNzMyOlswLC44MjUsMCwwLDEuODg4OV0sNzcwOlswLC44MjUsMCwwLDEuODg4OV0sNzcxOlswLC44MjUsMCwwLDEuODg4OV0sODczMDpbMS4yNTAwMywxLjc1LDAsMCwxXSw4OTY4OlsxLjI1MDAzLDEuNzUsMCwwLC42Mzg4OV0sODk2OTpbMS4yNTAwMywxLjc1LDAsMCwuNjM4ODldLDg5NzA6WzEuMjUwMDMsMS43NSwwLDAsLjYzODg5XSw4OTcxOlsxLjI1MDAzLDEuNzUsMCwwLC42Mzg4OV0sOTExNTpbLjY0NTAyLDEuMTU1LDAsMCwuODc1XSw5MTE2OlsxZS01LC42LDAsMCwuODc1XSw5MTE3OlsuNjQ1MDIsMS4xNTUsMCwwLC44NzVdLDkxMTg6Wy42NDUwMiwxLjE1NSwwLDAsLjg3NV0sOTExOTpbMWUtNSwuNiwwLDAsLjg3NV0sOTEyMDpbLjY0NTAyLDEuMTU1LDAsMCwuODc1XSw5MTIxOlsuNjQ1MDIsMS4xNTUsMCwwLC42NjY2N10sOTEyMjpbLTk5ZS01LC42MDEsMCwwLC42NjY2N10sOTEyMzpbLjY0NTAyLDEuMTU1LDAsMCwuNjY2NjddLDkxMjQ6Wy42NDUwMiwxLjE1NSwwLDAsLjY2NjY3XSw5MTI1OlstOTllLTUsLjYwMSwwLDAsLjY2NjY3XSw5MTI2OlsuNjQ1MDIsMS4xNTUsMCwwLC42NjY2N10sOTEyNzpbMWUtNSwuOSwwLDAsLjg4ODg5XSw5MTI4OlsuNjUwMDIsMS4xNSwwLDAsLjg4ODg5XSw5MTI5OlsuOTAwMDEsMCwwLDAsLjg4ODg5XSw5MTMwOlswLC4zLDAsMCwuODg4ODldLDkxMzE6WzFlLTUsLjksMCwwLC44ODg4OV0sOTEzMjpbLjY1MDAyLDEuMTUsMCwwLC44ODg4OV0sOTEzMzpbLjkwMDAxLDAsMCwwLC44ODg4OV0sOTE0MzpbLjg4NTAyLC45MTUsMCwwLDEuMDU1NTZdLDEwMjE2OlsxLjI1MDAzLDEuNzUsMCwwLC44MDU1Nl0sMTAyMTc6WzEuMjUwMDMsMS43NSwwLDAsLjgwNTU2XSw1NzM0NDpbLS4wMDQ5OSwuNjA1LDAsMCwxLjA1NTU2XSw1NzM0NTpbLS4wMDQ5OSwuNjA1LDAsMCwxLjA1NTU2XSw1NzY4MDpbMCwuMTIsMCwwLC40NV0sNTc2ODE6WzAsLjEyLDAsMCwuNDVdLDU3NjgyOlswLC4xMiwwLDAsLjQ1XSw1NzY4MzpbMCwuMTIsMCwwLC40NV19LCJUeXBld3JpdGVyLVJlZ3VsYXIiOnszMjpbMCwwLDAsMCwuNTI1XSwzMzpbMCwuNjExMTEsMCwwLC41MjVdLDM0OlswLC42MTExMSwwLDAsLjUyNV0sMzU6WzAsLjYxMTExLDAsMCwuNTI1XSwzNjpbLjA4MzMzLC42OTQ0NCwwLDAsLjUyNV0sMzc6Wy4wODMzMywuNjk0NDQsMCwwLC41MjVdLDM4OlswLC42MTExMSwwLDAsLjUyNV0sMzk6WzAsLjYxMTExLDAsMCwuNTI1XSw0MDpbLjA4MzMzLC42OTQ0NCwwLDAsLjUyNV0sNDE6Wy4wODMzMywuNjk0NDQsMCwwLC41MjVdLDQyOlswLC41MjA4MywwLDAsLjUyNV0sNDM6Wy0uMDgwNTYsLjUzMDU1LDAsMCwuNTI1XSw0NDpbLjEzODg5LC4xMjUsMCwwLC41MjVdLDQ1OlstLjA4MDU2LC41MzA1NSwwLDAsLjUyNV0sNDY6WzAsLjEyNSwwLDAsLjUyNV0sNDc6Wy4wODMzMywuNjk0NDQsMCwwLC41MjVdLDQ4OlswLC42MTExMSwwLDAsLjUyNV0sNDk6WzAsLjYxMTExLDAsMCwuNTI1XSw1MDpbMCwuNjExMTEsMCwwLC41MjVdLDUxOlswLC42MTExMSwwLDAsLjUyNV0sNTI6WzAsLjYxMTExLDAsMCwuNTI1XSw1MzpbMCwuNjExMTEsMCwwLC41MjVdLDU0OlswLC42MTExMSwwLDAsLjUyNV0sNTU6WzAsLjYxMTExLDAsMCwuNTI1XSw1NjpbMCwuNjExMTEsMCwwLC41MjVdLDU3OlswLC42MTExMSwwLDAsLjUyNV0sNTg6WzAsLjQzMDU2LDAsMCwuNTI1XSw1OTpbLjEzODg5LC40MzA1NiwwLDAsLjUyNV0sNjA6Wy0uMDU1NTYsLjU1NTU2LDAsMCwuNTI1XSw2MTpbLS4xOTU0OSwuNDE1NjIsMCwwLC41MjVdLDYyOlstLjA1NTU2LC41NTU1NiwwLDAsLjUyNV0sNjM6WzAsLjYxMTExLDAsMCwuNTI1XSw2NDpbMCwuNjExMTEsMCwwLC41MjVdLDY1OlswLC42MTExMSwwLDAsLjUyNV0sNjY6WzAsLjYxMTExLDAsMCwuNTI1XSw2NzpbMCwuNjExMTEsMCwwLC41MjVdLDY4OlswLC42MTExMSwwLDAsLjUyNV0sNjk6WzAsLjYxMTExLDAsMCwuNTI1XSw3MDpbMCwuNjExMTEsMCwwLC41MjVdLDcxOlswLC42MTExMSwwLDAsLjUyNV0sNzI6WzAsLjYxMTExLDAsMCwuNTI1XSw3MzpbMCwuNjExMTEsMCwwLC41MjVdLDc0OlswLC42MTExMSwwLDAsLjUyNV0sNzU6WzAsLjYxMTExLDAsMCwuNTI1XSw3NjpbMCwuNjExMTEsMCwwLC41MjVdLDc3OlswLC42MTExMSwwLDAsLjUyNV0sNzg6WzAsLjYxMTExLDAsMCwuNTI1XSw3OTpbMCwuNjExMTEsMCwwLC41MjVdLDgwOlswLC42MTExMSwwLDAsLjUyNV0sODE6Wy4xMzg4OSwuNjExMTEsMCwwLC41MjVdLDgyOlswLC42MTExMSwwLDAsLjUyNV0sODM6WzAsLjYxMTExLDAsMCwuNTI1XSw4NDpbMCwuNjExMTEsMCwwLC41MjVdLDg1OlswLC42MTExMSwwLDAsLjUyNV0sODY6WzAsLjYxMTExLDAsMCwuNTI1XSw4NzpbMCwuNjExMTEsMCwwLC41MjVdLDg4OlswLC42MTExMSwwLDAsLjUyNV0sODk6WzAsLjYxMTExLDAsMCwuNTI1XSw5MDpbMCwuNjExMTEsMCwwLC41MjVdLDkxOlsuMDgzMzMsLjY5NDQ0LDAsMCwuNTI1XSw5MjpbLjA4MzMzLC42OTQ0NCwwLDAsLjUyNV0sOTM6Wy4wODMzMywuNjk0NDQsMCwwLC41MjVdLDk0OlswLC42MTExMSwwLDAsLjUyNV0sOTU6Wy4wOTUxNCwwLDAsMCwuNTI1XSw5NjpbMCwuNjExMTEsMCwwLC41MjVdLDk3OlswLC40MzA1NiwwLDAsLjUyNV0sOTg6WzAsLjYxMTExLDAsMCwuNTI1XSw5OTpbMCwuNDMwNTYsMCwwLC41MjVdLDEwMDpbMCwuNjExMTEsMCwwLC41MjVdLDEwMTpbMCwuNDMwNTYsMCwwLC41MjVdLDEwMjpbMCwuNjExMTEsMCwwLC41MjVdLDEwMzpbLjIyMjIyLC40MzA1NiwwLDAsLjUyNV0sMTA0OlswLC42MTExMSwwLDAsLjUyNV0sMTA1OlswLC42MTExMSwwLDAsLjUyNV0sMTA2OlsuMjIyMjIsLjYxMTExLDAsMCwuNTI1XSwxMDc6WzAsLjYxMTExLDAsMCwuNTI1XSwxMDg6WzAsLjYxMTExLDAsMCwuNTI1XSwxMDk6WzAsLjQzMDU2LDAsMCwuNTI1XSwxMTA6WzAsLjQzMDU2LDAsMCwuNTI1XSwxMTE6WzAsLjQzMDU2LDAsMCwuNTI1XSwxMTI6Wy4yMjIyMiwuNDMwNTYsMCwwLC41MjVdLDExMzpbLjIyMjIyLC40MzA1NiwwLDAsLjUyNV0sMTE0OlswLC40MzA1NiwwLDAsLjUyNV0sMTE1OlswLC40MzA1NiwwLDAsLjUyNV0sMTE2OlswLC41NTM1OCwwLDAsLjUyNV0sMTE3OlswLC40MzA1NiwwLDAsLjUyNV0sMTE4OlswLC40MzA1NiwwLDAsLjUyNV0sMTE5OlswLC40MzA1NiwwLDAsLjUyNV0sMTIwOlswLC40MzA1NiwwLDAsLjUyNV0sMTIxOlsuMjIyMjIsLjQzMDU2LDAsMCwuNTI1XSwxMjI6WzAsLjQzMDU2LDAsMCwuNTI1XSwxMjM6Wy4wODMzMywuNjk0NDQsMCwwLC41MjVdLDEyNDpbLjA4MzMzLC42OTQ0NCwwLDAsLjUyNV0sMTI1OlsuMDgzMzMsLjY5NDQ0LDAsMCwuNTI1XSwxMjY6WzAsLjYxMTExLDAsMCwuNTI1XSwxMjc6WzAsLjYxMTExLDAsMCwuNTI1XSwxNjA6WzAsMCwwLDAsLjUyNV0sMTc2OlswLC42MTExMSwwLDAsLjUyNV0sMTg0OlsuMTk0NDUsMCwwLDAsLjUyNV0sMzA1OlswLC40MzA1NiwwLDAsLjUyNV0sNTY3OlsuMjIyMjIsLjQzMDU2LDAsMCwuNTI1XSw3MTE6WzAsLjU2NTk3LDAsMCwuNTI1XSw3MTM6WzAsLjU2NTU1LDAsMCwuNTI1XSw3MTQ6WzAsLjYxMTExLDAsMCwuNTI1XSw3MTU6WzAsLjYxMTExLDAsMCwuNTI1XSw3Mjg6WzAsLjYxMTExLDAsMCwuNTI1XSw3MzA6WzAsLjYxMTExLDAsMCwuNTI1XSw3NzA6WzAsLjYxMTExLDAsMCwuNTI1XSw3NzE6WzAsLjYxMTExLDAsMCwuNTI1XSw3NzY6WzAsLjYxMTExLDAsMCwuNTI1XSw5MTU6WzAsLjYxMTExLDAsMCwuNTI1XSw5MTY6WzAsLjYxMTExLDAsMCwuNTI1XSw5MjA6WzAsLjYxMTExLDAsMCwuNTI1XSw5MjM6WzAsLjYxMTExLDAsMCwuNTI1XSw5MjY6WzAsLjYxMTExLDAsMCwuNTI1XSw5Mjg6WzAsLjYxMTExLDAsMCwuNTI1XSw5MzE6WzAsLjYxMTExLDAsMCwuNTI1XSw5MzM6WzAsLjYxMTExLDAsMCwuNTI1XSw5MzQ6WzAsLjYxMTExLDAsMCwuNTI1XSw5MzY6WzAsLjYxMTExLDAsMCwuNTI1XSw5Mzc6WzAsLjYxMTExLDAsMCwuNTI1XSw4MjE2OlswLC42MTExMSwwLDAsLjUyNV0sODIxNzpbMCwuNjExMTEsMCwwLC41MjVdLDgyNDI6WzAsLjYxMTExLDAsMCwuNTI1XSw5MjUxOlsuMTExMTEsLjIxOTQ0LDAsMCwuNTI1XX19O2NvbnN0IEI9e3NsYW50OlsuMjUsLjI1LC4yNV0sc3BhY2U6WzAsMCwwXSxzdHJldGNoOlswLDAsMF0sc2hyaW5rOlswLDAsMF0seEhlaWdodDpbLjQzMSwuNDMxLC40MzFdLHF1YWQ6WzEsMS4xNzEsMS40NzJdLGV4dHJhU3BhY2U6WzAsMCwwXSxudW0xOlsuNjc3LC43MzIsLjkyNV0sbnVtMjpbLjM5NCwuMzg0LC4zODddLG51bTM6Wy40NDQsLjQ3MSwuNTA0XSxkZW5vbTE6Wy42ODYsLjc1MiwxLjAyNV0sZGVub20yOlsuMzQ1LC4zNDQsLjUzMl0sc3VwMTpbLjQxMywuNTAzLC41MDRdLHN1cDI6Wy4zNjMsLjQzMSwuNDA0XSxzdXAzOlsuMjg5LC4yODYsLjI5NF0sc3ViMTpbLjE1LC4xNDMsLjJdLHN1YjI6Wy4yNDcsLjI4NiwuNF0sc3VwRHJvcDpbLjM4NiwuMzUzLC40OTRdLHN1YkRyb3A6Wy4wNSwuMDcxLC4xXSxkZWxpbTE6WzIuMzksMS43LDEuOThdLGRlbGltMjpbMS4wMSwxLjE1NywxLjQyXSxheGlzSGVpZ2h0OlsuMjUsLjI1LC4yNV0sZGVmYXVsdFJ1bGVUaGlja25lc3M6Wy4wNCwuMDQ5LC4wNDldLGJpZ09wU3BhY2luZzE6Wy4xMTEsLjExMSwuMTExXSxiaWdPcFNwYWNpbmcyOlsuMTY2LC4xNjYsLjE2Nl0sYmlnT3BTcGFjaW5nMzpbLjIsLjIsLjJdLGJpZ09wU3BhY2luZzQ6Wy42LC42MTEsLjYxMV0sYmlnT3BTcGFjaW5nNTpbLjEsLjE0MywuMTQzXSxzcXJ0UnVsZVRoaWNrbmVzczpbLjA0LC4wNCwuMDRdLHB0UGVyRW06WzEwLDEwLDEwXSxkb3VibGVSdWxlU2VwOlsuMiwuMiwuMl0sYXJyYXlSdWxlV2lkdGg6Wy4wNCwuMDQsLjA0XSxmYm94c2VwOlsuMywuMywuM10sZmJveHJ1bGU6Wy4wNCwuMDQsLjA0XX0sQz17Ilx4YzUiOiJBIiwiXHhkMCI6IkQiLCJceGRlIjoibyIsIlx4ZTUiOiJhIiwiXHhmMCI6ImQiLCJceGZlIjoibyIsIlx1MDQxMCI6IkEiLCJcdTA0MTEiOiJCIiwiXHUwNDEyIjoiQiIsIlx1MDQxMyI6IkYiLCJcdTA0MTQiOiJBIiwiXHUwNDE1IjoiRSIsIlx1MDQxNiI6IksiLCJcdTA0MTciOiIzIiwiXHUwNDE4IjoiTiIsIlx1MDQxOSI6Ik4iLCJcdTA0MWEiOiJLIiwiXHUwNDFiIjoiTiIsIlx1MDQxYyI6Ik0iLCJcdTA0MWQiOiJIIiwiXHUwNDFlIjoiTyIsIlx1MDQxZiI6Ik4iLCJcdTA0MjAiOiJQIiwiXHUwNDIxIjoiQyIsIlx1MDQyMiI6IlQiLCJcdTA0MjMiOiJ5IiwiXHUwNDI0IjoiTyIsIlx1MDQyNSI6IlgiLCJcdTA0MjYiOiJVIiwiXHUwNDI3IjoiaCIsIlx1MDQyOCI6IlciLCJcdTA0MjkiOiJXIiwiXHUwNDJhIjoiQiIsIlx1MDQyYiI6IlgiLCJcdTA0MmMiOiJCIiwiXHUwNDJkIjoiMyIsIlx1MDQyZSI6IlgiLCJcdTA0MmYiOiJSIiwiXHUwNDMwIjoiYSIsIlx1MDQzMSI6ImIiLCJcdTA0MzIiOiJhIiwiXHUwNDMzIjoiciIsIlx1MDQzNCI6InkiLCJcdTA0MzUiOiJlIiwiXHUwNDM2IjoibSIsIlx1MDQzNyI6ImUiLCJcdTA0MzgiOiJuIiwiXHUwNDM5IjoibiIsIlx1MDQzYSI6Im4iLCJcdTA0M2IiOiJuIiwiXHUwNDNjIjoibSIsIlx1MDQzZCI6Im4iLCJcdTA0M2UiOiJvIiwiXHUwNDNmIjoibiIsIlx1MDQ0MCI6InAiLCJcdTA0NDEiOiJjIiwiXHUwNDQyIjoibyIsIlx1MDQ0MyI6InkiLCJcdTA0NDQiOiJiIiwiXHUwNDQ1IjoieCIsIlx1MDQ0NiI6Im4iLCJcdTA0NDciOiJuIiwiXHUwNDQ4IjoidyIsIlx1MDQ0OSI6InciLCJcdTA0NGEiOiJhIiwiXHUwNDRiIjoibSIsIlx1MDQ0YyI6ImEiLCJcdTA0NGQiOiJlIiwiXHUwNDRlIjoibSIsIlx1MDQ0ZiI6InIifTtmdW5jdGlvbiBOKGUsdCxyKXtpZighVFt0XSl0aHJvdyBuZXcgRXJyb3IoIkZvbnQgbWV0cmljcyBub3QgZm91bmQgZm9yIGZvbnQ6ICIrdCsiLiIpO2xldCBuPWUuY2hhckNvZGVBdCgwKSxvPVRbdF1bbl07aWYoIW8mJmVbMF1pbiBDJiYobj1DW2VbMF1dLmNoYXJDb2RlQXQoMCksbz1UW3RdW25dKSxvfHwidGV4dCIhPT1yfHxTKG4pJiYobz1UW3RdWzc3XSksbylyZXR1cm57ZGVwdGg6b1swXSxoZWlnaHQ6b1sxXSxpdGFsaWM6b1syXSxza2V3Om9bM10sd2lkdGg6b1s0XX19Y29uc3QgcT17fTtjb25zdCBJPVtbMSwxLDFdLFsyLDEsMV0sWzMsMSwxXSxbNCwyLDFdLFs1LDIsMV0sWzYsMywxXSxbNyw0LDJdLFs4LDYsM10sWzksNyw2XSxbMTAsOCw3XSxbMTEsMTAsOV1dLFI9Wy41LC42LC43LC44LC45LDEsMS4yLDEuNDQsMS43MjgsMi4wNzQsMi40ODhdLEg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zaXplPDI/ZTpJW2UtMV1bdC5zaXplLTFdfTtjbGFzcyBPe2NvbnN0cnVjdG9yKGUpe3RoaXMuc3R5bGU9dm9pZCAwLHRoaXMuY29sb3I9dm9pZCAwLHRoaXMuc2l6ZT12b2lkIDAsdGhpcy50ZXh0U2l6ZT12b2lkIDAsdGhpcy5waGFudG9tPXZvaWQgMCx0aGlzLmZvbnQ9dm9pZCAwLHRoaXMuZm9udEZhbWlseT12b2lkIDAsdGhpcy5mb250V2VpZ2h0PXZvaWQgMCx0aGlzLmZvbnRTaGFwZT12b2lkIDAsdGhpcy5zaXplTXVsdGlwbGllcj12b2lkIDAsdGhpcy5tYXhTaXplPXZvaWQgMCx0aGlzLm1pblJ1bGVUaGlja25lc3M9dm9pZCAwLHRoaXMuX2ZvbnRNZXRyaWNzPXZvaWQgMCx0aGlzLnN0eWxlPWUuc3R5bGUsdGhpcy5jb2xvcj1lLmNvbG9yLHRoaXMuc2l6ZT1lLnNpemV8fE8uQkFTRVNJWkUsdGhpcy50ZXh0U2l6ZT1lLnRleHRTaXplfHx0aGlzLnNpemUsdGhpcy5waGFudG9tPSEhZS5waGFudG9tLHRoaXMuZm9udD1lLmZvbnR8fCIiLHRoaXMuZm9udEZhbWlseT1lLmZvbnRGYW1pbHl8fCIiLHRoaXMuZm9udFdlaWdodD1lLmZvbnRXZWlnaHR8fCIiLHRoaXMuZm9udFNoYXBlPWUuZm9udFNoYXBlfHwiIix0aGlzLnNpemVNdWx0aXBsaWVyPVJbdGhpcy5zaXplLTFdLHRoaXMubWF4U2l6ZT1lLm1heFNpemUsdGhpcy5taW5SdWxlVGhpY2tuZXNzPWUubWluUnVsZVRoaWNrbmVzcyx0aGlzLl9mb250TWV0cmljcz12b2lkIDB9ZXh0ZW5kKGUpe2NvbnN0IHQ9e3N0eWxlOnRoaXMuc3R5bGUsc2l6ZTp0aGlzLnNpemUsdGV4dFNpemU6dGhpcy50ZXh0U2l6ZSxjb2xvcjp0aGlzLmNvbG9yLHBoYW50b206dGhpcy5waGFudG9tLGZvbnQ6dGhpcy5mb250LGZvbnRGYW1pbHk6dGhpcy5mb250RmFtaWx5LGZvbnRXZWlnaHQ6dGhpcy5mb250V2VpZ2h0LGZvbnRTaGFwZTp0aGlzLmZvbnRTaGFwZSxtYXhTaXplOnRoaXMubWF4U2l6ZSxtaW5SdWxlVGhpY2tuZXNzOnRoaXMubWluUnVsZVRoaWNrbmVzc307Zm9yKGNvbnN0IHIgaW4gZSllLmhhc093blByb3BlcnR5KHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gbmV3IE8odCl9aGF2aW5nU3R5bGUoZSl7cmV0dXJuIHRoaXMuc3R5bGU9PT1lP3RoaXM6dGhpcy5leHRlbmQoe3N0eWxlOmUsc2l6ZTpIKHRoaXMudGV4dFNpemUsZSl9KX1oYXZpbmdDcmFtcGVkU3R5bGUoKXtyZXR1cm4gdGhpcy5oYXZpbmdTdHlsZSh0aGlzLnN0eWxlLmNyYW1wKCkpfWhhdmluZ1NpemUoZSl7cmV0dXJuIHRoaXMuc2l6ZT09PWUmJnRoaXMudGV4dFNpemU9PT1lP3RoaXM6dGhpcy5leHRlbmQoe3N0eWxlOnRoaXMuc3R5bGUudGV4dCgpLHNpemU6ZSx0ZXh0U2l6ZTplLHNpemVNdWx0aXBsaWVyOlJbZS0xXX0pfWhhdmluZ0Jhc2VTdHlsZShlKXtlPWV8fHRoaXMuc3R5bGUudGV4dCgpO2NvbnN0IHQ9SChPLkJBU0VTSVpFLGUpO3JldHVybiB0aGlzLnNpemU9PT10JiZ0aGlzLnRleHRTaXplPT09Ty5CQVNFU0laRSYmdGhpcy5zdHlsZT09PWU/dGhpczp0aGlzLmV4dGVuZCh7c3R5bGU6ZSxzaXplOnR9KX1oYXZpbmdCYXNlU2l6aW5nKCl7bGV0IGU7c3dpdGNoKHRoaXMuc3R5bGUuaWQpe2Nhc2UgNDpjYXNlIDU6ZT0zO2JyZWFrO2Nhc2UgNjpjYXNlIDc6ZT0xO2JyZWFrO2RlZmF1bHQ6ZT02fXJldHVybiB0aGlzLmV4dGVuZCh7c3R5bGU6dGhpcy5zdHlsZS50ZXh0KCksc2l6ZTplfSl9d2l0aENvbG9yKGUpe3JldHVybiB0aGlzLmV4dGVuZCh7Y29sb3I6ZX0pfXdpdGhQaGFudG9tKCl7cmV0dXJuIHRoaXMuZXh0ZW5kKHtwaGFudG9tOiEwfSl9d2l0aEZvbnQoZSl7cmV0dXJuIHRoaXMuZXh0ZW5kKHtmb250OmV9KX13aXRoVGV4dEZvbnRGYW1pbHkoZSl7cmV0dXJuIHRoaXMuZXh0ZW5kKHtmb250RmFtaWx5OmUsZm9udDoiIn0pfXdpdGhUZXh0Rm9udFdlaWdodChlKXtyZXR1cm4gdGhpcy5leHRlbmQoe2ZvbnRXZWlnaHQ6ZSxmb250OiIifSl9d2l0aFRleHRGb250U2hhcGUoZSl7cmV0dXJuIHRoaXMuZXh0ZW5kKHtmb250U2hhcGU6ZSxmb250OiIifSl9c2l6aW5nQ2xhc3NlcyhlKXtyZXR1cm4gZS5zaXplIT09dGhpcy5zaXplP1sic2l6aW5nIiwicmVzZXQtc2l6ZSIrZS5zaXplLCJzaXplIit0aGlzLnNpemVdOltdfWJhc2VTaXppbmdDbGFzc2VzKCl7cmV0dXJuIHRoaXMuc2l6ZSE9PU8uQkFTRVNJWkU/WyJzaXppbmciLCJyZXNldC1zaXplIit0aGlzLnNpemUsInNpemUiK08uQkFTRVNJWkVdOltdfWZvbnRNZXRyaWNzKCl7cmV0dXJuIHRoaXMuX2ZvbnRNZXRyaWNzfHwodGhpcy5fZm9udE1ldHJpY3M9ZnVuY3Rpb24oZSl7bGV0IHQ7aWYodD1lPj01PzA6ZT49Mz8xOjIsIXFbdF0pe2NvbnN0IGU9cVt0XT17Y3NzRW1QZXJNdTpCLnF1YWRbdF0vMTh9O2Zvcihjb25zdCByIGluIEIpQi5oYXNPd25Qcm9wZXJ0eShyKSYmKGVbcl09QltyXVt0XSl9cmV0dXJuIHFbdF19KHRoaXMuc2l6ZSkpLHRoaXMuX2ZvbnRNZXRyaWNzfWdldENvbG9yKCl7cmV0dXJuIHRoaXMucGhhbnRvbT8idHJhbnNwYXJlbnQiOnRoaXMuY29sb3J9fU8uQkFTRVNJWkU9Njt2YXIgRT1PO2NvbnN0IEw9e3B0OjEsbW06NzIyNy8yNTQwLGNtOjcyMjcvMjU0LGluOjcyLjI3LGJwOjEuMDAzNzUscGM6MTIsZGQ6MTIzOC8xMTU3LGNjOjE0ODU2LzExNTcsbmQ6Njg1LzY0MixuYzoxMzcwLzEwNyxzcDoxLzY1NTM2LHB4OjEuMDAzNzV9LEQ9e2V4OiEwLGVtOiEwLG11OiEwfSxWPWZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciIT10eXBlb2YgZSYmKGU9ZS51bml0KSxlIGluIEx8fGUgaW4gRHx8ImV4Ij09PWV9LFA9ZnVuY3Rpb24oZSx0KXtsZXQgcjtpZihlLnVuaXQgaW4gTClyPUxbZS51bml0XS90LmZvbnRNZXRyaWNzKCkucHRQZXJFbS90LnNpemVNdWx0aXBsaWVyO2Vsc2UgaWYoIm11Ij09PWUudW5pdClyPXQuZm9udE1ldHJpY3MoKS5jc3NFbVBlck11O2Vsc2V7bGV0IG87aWYobz10LnN0eWxlLmlzVGlnaHQoKT90LmhhdmluZ1N0eWxlKHQuc3R5bGUudGV4dCgpKTp0LCJleCI9PT1lLnVuaXQpcj1vLmZvbnRNZXRyaWNzKCkueEhlaWdodDtlbHNle2lmKCJlbSIhPT1lLnVuaXQpdGhyb3cgbmV3IG4oIkludmFsaWQgdW5pdDogJyIrZS51bml0KyInIik7cj1vLmZvbnRNZXRyaWNzKCkucXVhZH1vIT09dCYmKHIqPW8uc2l6ZU11bHRpcGxpZXIvdC5zaXplTXVsdGlwbGllcil9cmV0dXJuIE1hdGgubWluKGUubnVtYmVyKnIsdC5tYXhTaXplKX0sRj1mdW5jdGlvbihlKXtyZXR1cm4rZS50b0ZpeGVkKDQpKyJlbSJ9LEc9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmlsdGVyKChlPT5lKSkuam9pbigiICIpfSxVPWZ1bmN0aW9uKGUsdCxyKXtpZih0aGlzLmNsYXNzZXM9ZXx8W10sdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMuaGVpZ2h0PTAsdGhpcy5kZXB0aD0wLHRoaXMubWF4Rm9udFNpemU9MCx0aGlzLnN0eWxlPXJ8fHt9LHQpe3Quc3R5bGUuaXNUaWdodCgpJiZ0aGlzLmNsYXNzZXMucHVzaCgibXRpZ2h0Iik7Y29uc3QgZT10LmdldENvbG9yKCk7ZSYmKHRoaXMuc3R5bGUuY29sb3I9ZSl9fSxZPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTt0LmNsYXNzTmFtZT1HKHRoaXMuY2xhc3Nlcyk7Zm9yKGNvbnN0IGUgaW4gdGhpcy5zdHlsZSl0aGlzLnN0eWxlLmhhc093blByb3BlcnR5KGUpJiYodC5zdHlsZVtlXT10aGlzLnN0eWxlW2VdKTtmb3IoY29uc3QgZSBpbiB0aGlzLmF0dHJpYnV0ZXMpdGhpcy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KGUpJiZ0LnNldEF0dHJpYnV0ZShlLHRoaXMuYXR0cmlidXRlc1tlXSk7Zm9yKGxldCBlPTA7ZTx0aGlzLmNoaWxkcmVuLmxlbmd0aDtlKyspdC5hcHBlbmRDaGlsZCh0aGlzLmNoaWxkcmVuW2VdLnRvTm9kZSgpKTtyZXR1cm4gdH0sWD1mdW5jdGlvbihlKXtsZXQgdD0iPCIrZTt0aGlzLmNsYXNzZXMubGVuZ3RoJiYodCs9JyBjbGFzcz0iJytsLmVzY2FwZShHKHRoaXMuY2xhc3NlcykpKyciJyk7bGV0IHI9IiI7Zm9yKGNvbnN0IGUgaW4gdGhpcy5zdHlsZSl0aGlzLnN0eWxlLmhhc093blByb3BlcnR5KGUpJiYocis9bC5oeXBoZW5hdGUoZSkrIjoiK3RoaXMuc3R5bGVbZV0rIjsiKTtyJiYodCs9JyBzdHlsZT0iJytsLmVzY2FwZShyKSsnIicpO2Zvcihjb25zdCBlIGluIHRoaXMuYXR0cmlidXRlcyl0aGlzLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoZSkmJih0Kz0iICIrZSsnPSInK2wuZXNjYXBlKHRoaXMuYXR0cmlidXRlc1tlXSkrJyInKTt0Kz0iPiI7Zm9yKGxldCBlPTA7ZTx0aGlzLmNoaWxkcmVuLmxlbmd0aDtlKyspdCs9dGhpcy5jaGlsZHJlbltlXS50b01hcmt1cCgpO3JldHVybiB0Kz0iPC8iK2UrIj4iLHR9O2NsYXNzIFd7Y29uc3RydWN0b3IoZSx0LHIsbil7dGhpcy5jaGlsZHJlbj12b2lkIDAsdGhpcy5hdHRyaWJ1dGVzPXZvaWQgMCx0aGlzLmNsYXNzZXM9dm9pZCAwLHRoaXMuaGVpZ2h0PXZvaWQgMCx0aGlzLmRlcHRoPXZvaWQgMCx0aGlzLndpZHRoPXZvaWQgMCx0aGlzLm1heEZvbnRTaXplPXZvaWQgMCx0aGlzLnN0eWxlPXZvaWQgMCxVLmNhbGwodGhpcyxlLHIsbiksdGhpcy5jaGlsZHJlbj10fHxbXX1zZXRBdHRyaWJ1dGUoZSx0KXt0aGlzLmF0dHJpYnV0ZXNbZV09dH1oYXNDbGFzcyhlKXtyZXR1cm4gbC5jb250YWlucyh0aGlzLmNsYXNzZXMsZSl9dG9Ob2RlKCl7cmV0dXJuIFkuY2FsbCh0aGlzLCJzcGFuIil9dG9NYXJrdXAoKXtyZXR1cm4gWC5jYWxsKHRoaXMsInNwYW4iKX19Y2xhc3MgX3tjb25zdHJ1Y3RvcihlLHQscixuKXt0aGlzLmNoaWxkcmVuPXZvaWQgMCx0aGlzLmF0dHJpYnV0ZXM9dm9pZCAwLHRoaXMuY2xhc3Nlcz12b2lkIDAsdGhpcy5oZWlnaHQ9dm9pZCAwLHRoaXMuZGVwdGg9dm9pZCAwLHRoaXMubWF4Rm9udFNpemU9dm9pZCAwLHRoaXMuc3R5bGU9dm9pZCAwLFUuY2FsbCh0aGlzLHQsbiksdGhpcy5jaGlsZHJlbj1yfHxbXSx0aGlzLnNldEF0dHJpYnV0ZSgiaHJlZiIsZSl9c2V0QXR0cmlidXRlKGUsdCl7dGhpcy5hdHRyaWJ1dGVzW2VdPXR9aGFzQ2xhc3MoZSl7cmV0dXJuIGwuY29udGFpbnModGhpcy5jbGFzc2VzLGUpfXRvTm9kZSgpe3JldHVybiBZLmNhbGwodGhpcywiYSIpfXRvTWFya3VwKCl7cmV0dXJuIFguY2FsbCh0aGlzLCJhIil9fWNsYXNzIGp7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMuc3JjPXZvaWQgMCx0aGlzLmFsdD12b2lkIDAsdGhpcy5jbGFzc2VzPXZvaWQgMCx0aGlzLmhlaWdodD12b2lkIDAsdGhpcy5kZXB0aD12b2lkIDAsdGhpcy5tYXhGb250U2l6ZT12b2lkIDAsdGhpcy5zdHlsZT12b2lkIDAsdGhpcy5hbHQ9dCx0aGlzLnNyYz1lLHRoaXMuY2xhc3Nlcz1bIm1vcmQiXSx0aGlzLnN0eWxlPXJ9aGFzQ2xhc3MoZSl7cmV0dXJuIGwuY29udGFpbnModGhpcy5jbGFzc2VzLGUpfXRvTm9kZSgpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7ZS5zcmM9dGhpcy5zcmMsZS5hbHQ9dGhpcy5hbHQsZS5jbGFzc05hbWU9Im1vcmQiO2Zvcihjb25zdCB0IGluIHRoaXMuc3R5bGUpdGhpcy5zdHlsZS5oYXNPd25Qcm9wZXJ0eSh0KSYmKGUuc3R5bGVbdF09dGhpcy5zdHlsZVt0XSk7cmV0dXJuIGV9dG9NYXJrdXAoKXtsZXQgZT0nPGltZyBzcmM9IicrbC5lc2NhcGUodGhpcy5zcmMpKyciIGFsdD0iJytsLmVzY2FwZSh0aGlzLmFsdCkrJyInLHQ9IiI7Zm9yKGNvbnN0IGUgaW4gdGhpcy5zdHlsZSl0aGlzLnN0eWxlLmhhc093blByb3BlcnR5KGUpJiYodCs9bC5oeXBoZW5hdGUoZSkrIjoiK3RoaXMuc3R5bGVbZV0rIjsiKTtyZXR1cm4gdCYmKGUrPScgc3R5bGU9IicrbC5lc2NhcGUodCkrJyInKSxlKz0iJy8+IixlfX1jb25zdCAkPXsiXHhlZSI6Ilx1MDEzMVx1MDMwMiIsIlx4ZWYiOiJcdTAxMzFcdTAzMDgiLCJceGVkIjoiXHUwMTMxXHUwMzAxIiwiXHhlYyI6Ilx1MDEzMVx1MDMwMCJ9O2NsYXNzIFp7Y29uc3RydWN0b3IoZSx0LHIsbixvLHMsaSxhKXt0aGlzLnRleHQ9dm9pZCAwLHRoaXMuaGVpZ2h0PXZvaWQgMCx0aGlzLmRlcHRoPXZvaWQgMCx0aGlzLml0YWxpYz12b2lkIDAsdGhpcy5za2V3PXZvaWQgMCx0aGlzLndpZHRoPXZvaWQgMCx0aGlzLm1heEZvbnRTaXplPXZvaWQgMCx0aGlzLmNsYXNzZXM9dm9pZCAwLHRoaXMuc3R5bGU9dm9pZCAwLHRoaXMudGV4dD1lLHRoaXMuaGVpZ2h0PXR8fDAsdGhpcy5kZXB0aD1yfHwwLHRoaXMuaXRhbGljPW58fDAsdGhpcy5za2V3PW98fDAsdGhpcy53aWR0aD1zfHwwLHRoaXMuY2xhc3Nlcz1pfHxbXSx0aGlzLnN0eWxlPWF8fHt9LHRoaXMubWF4Rm9udFNpemU9MDtjb25zdCBsPWZ1bmN0aW9uKGUpe2ZvcihsZXQgdD0wO3Q8di5sZW5ndGg7dCsrKXtjb25zdCByPXZbdF07Zm9yKGxldCB0PTA7dDxyLmJsb2Nrcy5sZW5ndGg7dCsrKXtjb25zdCBuPXIuYmxvY2tzW3RdO2lmKGU+PW5bMF0mJmU8PW5bMV0pcmV0dXJuIHIubmFtZX19cmV0dXJuIG51bGx9KHRoaXMudGV4dC5jaGFyQ29kZUF0KDApKTtsJiZ0aGlzLmNsYXNzZXMucHVzaChsKyJfZmFsbGJhY2siKSwvW1x4ZWVceGVmXHhlZFx4ZWNdLy50ZXN0KHRoaXMudGV4dCkmJih0aGlzLnRleHQ9JFt0aGlzLnRleHRdKX1oYXNDbGFzcyhlKXtyZXR1cm4gbC5jb250YWlucyh0aGlzLmNsYXNzZXMsZSl9dG9Ob2RlKCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnRleHQpO2xldCB0PW51bGw7dGhpcy5pdGFsaWM+MCYmKHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHQuc3R5bGUubWFyZ2luUmlnaHQ9Rih0aGlzLml0YWxpYykpLHRoaXMuY2xhc3Nlcy5sZW5ndGg+MCYmKHQ9dHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHQuY2xhc3NOYW1lPUcodGhpcy5jbGFzc2VzKSk7Zm9yKGNvbnN0IGUgaW4gdGhpcy5zdHlsZSl0aGlzLnN0eWxlLmhhc093blByb3BlcnR5KGUpJiYodD10fHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdC5zdHlsZVtlXT10aGlzLnN0eWxlW2VdKTtyZXR1cm4gdD8odC5hcHBlbmRDaGlsZChlKSx0KTplfXRvTWFya3VwKCl7bGV0IGU9ITEsdD0iPHNwYW4iO3RoaXMuY2xhc3Nlcy5sZW5ndGgmJihlPSEwLHQrPScgY2xhc3M9IicsdCs9bC5lc2NhcGUoRyh0aGlzLmNsYXNzZXMpKSx0Kz0nIicpO2xldCByPSIiO3RoaXMuaXRhbGljPjAmJihyKz0ibWFyZ2luLXJpZ2h0OiIrdGhpcy5pdGFsaWMrImVtOyIpO2Zvcihjb25zdCBlIGluIHRoaXMuc3R5bGUpdGhpcy5zdHlsZS5oYXNPd25Qcm9wZXJ0eShlKSYmKHIrPWwuaHlwaGVuYXRlKGUpKyI6Iit0aGlzLnN0eWxlW2VdKyI7Iik7ciYmKGU9ITAsdCs9JyBzdHlsZT0iJytsLmVzY2FwZShyKSsnIicpO2NvbnN0IG49bC5lc2NhcGUodGhpcy50ZXh0KTtyZXR1cm4gZT8odCs9Ij4iLHQrPW4sdCs9Ijwvc3Bhbj4iLHQpOm59fWNsYXNzIEt7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmNoaWxkcmVuPXZvaWQgMCx0aGlzLmF0dHJpYnV0ZXM9dm9pZCAwLHRoaXMuY2hpbGRyZW49ZXx8W10sdGhpcy5hdHRyaWJ1dGVzPXR8fHt9fXRvTm9kZSgpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO2Zvcihjb25zdCB0IGluIHRoaXMuYXR0cmlidXRlcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLHQpJiZlLnNldEF0dHJpYnV0ZSh0LHRoaXMuYXR0cmlidXRlc1t0XSk7Zm9yKGxldCB0PTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0KyspZS5hcHBlbmRDaGlsZCh0aGlzLmNoaWxkcmVuW3RdLnRvTm9kZSgpKTtyZXR1cm4gZX10b01hcmt1cCgpe2xldCBlPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyInO2Zvcihjb25zdCB0IGluIHRoaXMuYXR0cmlidXRlcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLHQpJiYoZSs9IiAiK3QrJz0iJytsLmVzY2FwZSh0aGlzLmF0dHJpYnV0ZXNbdF0pKyciJyk7ZSs9Ij4iO2ZvcihsZXQgdD0wO3Q8dGhpcy5jaGlsZHJlbi5sZW5ndGg7dCsrKWUrPXRoaXMuY2hpbGRyZW5bdF0udG9NYXJrdXAoKTtyZXR1cm4gZSs9Ijwvc3ZnPiIsZX19Y2xhc3MgSntjb25zdHJ1Y3RvcihlLHQpe3RoaXMucGF0aE5hbWU9dm9pZCAwLHRoaXMuYWx0ZXJuYXRlPXZvaWQgMCx0aGlzLnBhdGhOYW1lPWUsdGhpcy5hbHRlcm5hdGU9dH10b05vZGUoKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7cmV0dXJuIHRoaXMuYWx0ZXJuYXRlP2Uuc2V0QXR0cmlidXRlKCJkIix0aGlzLmFsdGVybmF0ZSk6ZS5zZXRBdHRyaWJ1dGUoImQiLHpbdGhpcy5wYXRoTmFtZV0pLGV9dG9NYXJrdXAoKXtyZXR1cm4gdGhpcy5hbHRlcm5hdGU/JzxwYXRoIGQ9IicrbC5lc2NhcGUodGhpcy5hbHRlcm5hdGUpKyciLz4nOic8cGF0aCBkPSInK2wuZXNjYXBlKHpbdGhpcy5wYXRoTmFtZV0pKyciLz4nfX1jbGFzcyBRe2NvbnN0cnVjdG9yKGUpe3RoaXMuYXR0cmlidXRlcz12b2lkIDAsdGhpcy5hdHRyaWJ1dGVzPWV8fHt9fXRvTm9kZSgpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImxpbmUiKTtmb3IoY29uc3QgdCBpbiB0aGlzLmF0dHJpYnV0ZXMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcyx0KSYmZS5zZXRBdHRyaWJ1dGUodCx0aGlzLmF0dHJpYnV0ZXNbdF0pO3JldHVybiBlfXRvTWFya3VwKCl7bGV0IGU9IjxsaW5lIjtmb3IoY29uc3QgdCBpbiB0aGlzLmF0dHJpYnV0ZXMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcyx0KSYmKGUrPSIgIit0Kyc9IicrbC5lc2NhcGUodGhpcy5hdHRyaWJ1dGVzW3RdKSsnIicpO3JldHVybiBlKz0iLz4iLGV9fWZ1bmN0aW9uIGVlKGUpe2lmKGUgaW5zdGFuY2VvZiBaKXJldHVybiBlO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgc3ltYm9sTm9kZSBidXQgZ290ICIrU3RyaW5nKGUpKyIuIil9Y29uc3QgdGU9e2JpbjoxLGNsb3NlOjEsaW5uZXI6MSxvcGVuOjEscHVuY3Q6MSxyZWw6MX0scmU9eyJhY2NlbnQtdG9rZW4iOjEsbWF0aG9yZDoxLCJvcC10b2tlbiI6MSxzcGFjaW5nOjEsdGV4dG9yZDoxfSxuZT17bWF0aDp7fSx0ZXh0Ont9fTt2YXIgb2U9bmU7ZnVuY3Rpb24gc2UoZSx0LHIsbixvLHMpe25lW2VdW29dPXtmb250OnQsZ3JvdXA6cixyZXBsYWNlOm59LHMmJm4mJihuZVtlXVtuXT1uZVtlXVtvXSl9Y29uc3QgaWU9Im1hdGgiLGFlPSJ0ZXh0IixsZT0ibWFpbiIsaGU9ImFtcyIsY2U9ImFjY2VudC10b2tlbiIsbWU9ImJpbiIscGU9ImNsb3NlIix1ZT0iaW5uZXIiLGRlPSJtYXRob3JkIixnZT0ib3AtdG9rZW4iLGZlPSJvcGVuIixiZT0icHVuY3QiLHllPSJyZWwiLHhlPSJzcGFjaW5nIix3ZT0idGV4dG9yZCI7c2UoaWUsbGUseWUsIlx1MjI2MSIsIlxcZXF1aXYiLCEwKSxzZShpZSxsZSx5ZSwiXHUyMjdhIiwiXFxwcmVjIiwhMCksc2UoaWUsbGUseWUsIlx1MjI3YiIsIlxcc3VjYyIsITApLHNlKGllLGxlLHllLCJcdTIyM2MiLCJcXHNpbSIsITApLHNlKGllLGxlLHllLCJcdTIyYTUiLCJcXHBlcnAiKSxzZShpZSxsZSx5ZSwiXHUyYWFmIiwiXFxwcmVjZXEiLCEwKSxzZShpZSxsZSx5ZSwiXHUyYWIwIiwiXFxzdWNjZXEiLCEwKSxzZShpZSxsZSx5ZSwiXHUyMjQzIiwiXFxzaW1lcSIsITApLHNlKGllLGxlLHllLCJcdTIyMjMiLCJcXG1pZCIsITApLHNlKGllLGxlLHllLCJcdTIyNmEiLCJcXGxsIiwhMCksc2UoaWUsbGUseWUsIlx1MjI2YiIsIlxcZ2ciLCEwKSxzZShpZSxsZSx5ZSwiXHUyMjRkIiwiXFxhc3ltcCIsITApLHNlKGllLGxlLHllLCJcdTIyMjUiLCJcXHBhcmFsbGVsIiksc2UoaWUsbGUseWUsIlx1MjJjOCIsIlxcYm93dGllIiwhMCksc2UoaWUsbGUseWUsIlx1MjMyMyIsIlxcc21pbGUiLCEwKSxzZShpZSxsZSx5ZSwiXHUyMjkxIiwiXFxzcXN1YnNldGVxIiwhMCksc2UoaWUsbGUseWUsIlx1MjI5MiIsIlxcc3FzdXBzZXRlcSIsITApLHNlKGllLGxlLHllLCJcdTIyNTAiLCJcXGRvdGVxIiwhMCksc2UoaWUsbGUseWUsIlx1MjMyMiIsIlxcZnJvd24iLCEwKSxzZShpZSxsZSx5ZSwiXHUyMjBiIiwiXFxuaSIsITApLHNlKGllLGxlLHllLCJcdTIyMWQiLCJcXHByb3B0byIsITApLHNlKGllLGxlLHllLCJcdTIyYTIiLCJcXHZkYXNoIiwhMCksc2UoaWUsbGUseWUsIlx1MjJhMyIsIlxcZGFzaHYiLCEwKSxzZShpZSxsZSx5ZSwiXHUyMjBiIiwiXFxvd25zIiksc2UoaWUsbGUsYmUsIi4iLCJcXGxkb3RwIiksc2UoaWUsbGUsYmUsIlx1MjJjNSIsIlxcY2RvdHAiKSxzZShpZSxsZSx3ZSwiIyIsIlxcIyIpLHNlKGFlLGxlLHdlLCIjIiwiXFwjIiksc2UoaWUsbGUsd2UsIiYiLCJcXCYiKSxzZShhZSxsZSx3ZSwiJiIsIlxcJiIpLHNlKGllLGxlLHdlLCJcdTIxMzUiLCJcXGFsZXBoIiwhMCksc2UoaWUsbGUsd2UsIlx1MjIwMCIsIlxcZm9yYWxsIiwhMCksc2UoaWUsbGUsd2UsIlx1MjEwZiIsIlxcaGJhciIsITApLHNlKGllLGxlLHdlLCJcdTIyMDMiLCJcXGV4aXN0cyIsITApLHNlKGllLGxlLHdlLCJcdTIyMDciLCJcXG5hYmxhIiwhMCksc2UoaWUsbGUsd2UsIlx1MjY2ZCIsIlxcZmxhdCIsITApLHNlKGllLGxlLHdlLCJcdTIxMTMiLCJcXGVsbCIsITApLHNlKGllLGxlLHdlLCJcdTI2NmUiLCJcXG5hdHVyYWwiLCEwKSxzZShpZSxsZSx3ZSwiXHUyNjYzIiwiXFxjbHVic3VpdCIsITApLHNlKGllLGxlLHdlLCJcdTIxMTgiLCJcXHdwIiwhMCksc2UoaWUsbGUsd2UsIlx1MjY2ZiIsIlxcc2hhcnAiLCEwKSxzZShpZSxsZSx3ZSwiXHUyNjYyIiwiXFxkaWFtb25kc3VpdCIsITApLHNlKGllLGxlLHdlLCJcdTIxMWMiLCJcXFJlIiwhMCksc2UoaWUsbGUsd2UsIlx1MjY2MSIsIlxcaGVhcnRzdWl0IiwhMCksc2UoaWUsbGUsd2UsIlx1MjExMSIsIlxcSW0iLCEwKSxzZShpZSxsZSx3ZSwiXHUyNjYwIiwiXFxzcGFkZXN1aXQiLCEwKSxzZShpZSxsZSx3ZSwiXHhhNyIsIlxcUyIsITApLHNlKGFlLGxlLHdlLCJceGE3IiwiXFxTIiksc2UoaWUsbGUsd2UsIlx4YjYiLCJcXFAiLCEwKSxzZShhZSxsZSx3ZSwiXHhiNiIsIlxcUCIpLHNlKGllLGxlLHdlLCJcdTIwMjAiLCJcXGRhZyIpLHNlKGFlLGxlLHdlLCJcdTIwMjAiLCJcXGRhZyIpLHNlKGFlLGxlLHdlLCJcdTIwMjAiLCJcXHRleHRkYWdnZXIiKSxzZShpZSxsZSx3ZSwiXHUyMDIxIiwiXFxkZGFnIiksc2UoYWUsbGUsd2UsIlx1MjAyMSIsIlxcZGRhZyIpLHNlKGFlLGxlLHdlLCJcdTIwMjEiLCJcXHRleHRkYWdnZXJkYmwiKSxzZShpZSxsZSxwZSwiXHUyM2IxIiwiXFxybW91c3RhY2hlIiwhMCksc2UoaWUsbGUsZmUsIlx1MjNiMCIsIlxcbG1vdXN0YWNoZSIsITApLHNlKGllLGxlLHBlLCJcdTI3ZWYiLCJcXHJncm91cCIsITApLHNlKGllLGxlLGZlLCJcdTI3ZWUiLCJcXGxncm91cCIsITApLHNlKGllLGxlLG1lLCJcdTIyMTMiLCJcXG1wIiwhMCksc2UoaWUsbGUsbWUsIlx1MjI5NiIsIlxcb21pbnVzIiwhMCksc2UoaWUsbGUsbWUsIlx1MjI4ZSIsIlxcdXBsdXMiLCEwKSxzZShpZSxsZSxtZSwiXHUyMjkzIiwiXFxzcWNhcCIsITApLHNlKGllLGxlLG1lLCJcdTIyMTciLCJcXGFzdCIpLHNlKGllLGxlLG1lLCJcdTIyOTQiLCJcXHNxY3VwIiwhMCksc2UoaWUsbGUsbWUsIlx1MjVlZiIsIlxcYmlnY2lyYyIsITApLHNlKGllLGxlLG1lLCJcdTIyMTkiLCJcXGJ1bGxldCIsITApLHNlKGllLGxlLG1lLCJcdTIwMjEiLCJcXGRkYWdnZXIiKSxzZShpZSxsZSxtZSwiXHUyMjQwIiwiXFx3ciIsITApLHNlKGllLGxlLG1lLCJcdTJhM2YiLCJcXGFtYWxnIiksc2UoaWUsbGUsbWUsIiYiLCJcXEFuZCIpLHNlKGllLGxlLHllLCJcdTI3ZjUiLCJcXGxvbmdsZWZ0YXJyb3ciLCEwKSxzZShpZSxsZSx5ZSwiXHUyMWQwIiwiXFxMZWZ0YXJyb3ciLCEwKSxzZShpZSxsZSx5ZSwiXHUyN2Y4IiwiXFxMb25nbGVmdGFycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjdmNiIsIlxcbG9uZ3JpZ2h0YXJyb3ciLCEwKSxzZShpZSxsZSx5ZSwiXHUyMWQyIiwiXFxSaWdodGFycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjdmOSIsIlxcTG9uZ3JpZ2h0YXJyb3ciLCEwKSxzZShpZSxsZSx5ZSwiXHUyMTk0IiwiXFxsZWZ0cmlnaHRhcnJvdyIsITApLHNlKGllLGxlLHllLCJcdTI3ZjciLCJcXGxvbmdsZWZ0cmlnaHRhcnJvdyIsITApLHNlKGllLGxlLHllLCJcdTIxZDQiLCJcXExlZnRyaWdodGFycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjdmYSIsIlxcTG9uZ2xlZnRyaWdodGFycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjFhNiIsIlxcbWFwc3RvIiwhMCksc2UoaWUsbGUseWUsIlx1MjdmYyIsIlxcbG9uZ21hcHN0byIsITApLHNlKGllLGxlLHllLCJcdTIxOTciLCJcXG5lYXJyb3ciLCEwKSxzZShpZSxsZSx5ZSwiXHUyMWE5IiwiXFxob29rbGVmdGFycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjFhYSIsIlxcaG9va3JpZ2h0YXJyb3ciLCEwKSxzZShpZSxsZSx5ZSwiXHUyMTk4IiwiXFxzZWFycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjFiYyIsIlxcbGVmdGhhcnBvb251cCIsITApLHNlKGllLGxlLHllLCJcdTIxYzAiLCJcXHJpZ2h0aGFycG9vbnVwIiwhMCksc2UoaWUsbGUseWUsIlx1MjE5OSIsIlxcc3dhcnJvdyIsITApLHNlKGllLGxlLHllLCJcdTIxYmQiLCJcXGxlZnRoYXJwb29uZG93biIsITApLHNlKGllLGxlLHllLCJcdTIxYzEiLCJcXHJpZ2h0aGFycG9vbmRvd24iLCEwKSxzZShpZSxsZSx5ZSwiXHUyMTk2IiwiXFxud2Fycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjFjYyIsIlxccmlnaHRsZWZ0aGFycG9vbnMiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMjZlIiwiXFxubGVzcyIsITApLHNlKGllLGhlLHllLCJcdWUwMTAiLCJcXEBubGVxc2xhbnQiKSxzZShpZSxoZSx5ZSwiXHVlMDExIiwiXFxAbmxlcXEiKSxzZShpZSxoZSx5ZSwiXHUyYTg3IiwiXFxsbmVxIiwhMCksc2UoaWUsaGUseWUsIlx1MjI2OCIsIlxcbG5lcXEiLCEwKSxzZShpZSxoZSx5ZSwiXHVlMDBjIiwiXFxAbHZlcnRuZXFxIiksc2UoaWUsaGUseWUsIlx1MjJlNiIsIlxcbG5zaW0iLCEwKSxzZShpZSxoZSx5ZSwiXHUyYTg5IiwiXFxsbmFwcHJveCIsITApLHNlKGllLGhlLHllLCJcdTIyODAiLCJcXG5wcmVjIiwhMCksc2UoaWUsaGUseWUsIlx1MjJlMCIsIlxcbnByZWNlcSIsITApLHNlKGllLGhlLHllLCJcdTIyZTgiLCJcXHByZWNuc2ltIiwhMCksc2UoaWUsaGUseWUsIlx1MmFiOSIsIlxccHJlY25hcHByb3giLCEwKSxzZShpZSxoZSx5ZSwiXHUyMjQxIiwiXFxuc2ltIiwhMCksc2UoaWUsaGUseWUsIlx1ZTAwNiIsIlxcQG5zaG9ydG1pZCIpLHNlKGllLGhlLHllLCJcdTIyMjQiLCJcXG5taWQiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmFjIiwiXFxudmRhc2giLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmFkIiwiXFxudkRhc2giLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmVhIiwiXFxudHJpYW5nbGVsZWZ0Iiksc2UoaWUsaGUseWUsIlx1MjJlYyIsIlxcbnRyaWFuZ2xlbGVmdGVxIiwhMCksc2UoaWUsaGUseWUsIlx1MjI4YSIsIlxcc3Vic2V0bmVxIiwhMCksc2UoaWUsaGUseWUsIlx1ZTAxYSIsIlxcQHZhcnN1YnNldG5lcSIpLHNlKGllLGhlLHllLCJcdTJhY2IiLCJcXHN1YnNldG5lcXEiLCEwKSxzZShpZSxoZSx5ZSwiXHVlMDE3IiwiXFxAdmFyc3Vic2V0bmVxcSIpLHNlKGllLGhlLHllLCJcdTIyNmYiLCJcXG5ndHIiLCEwKSxzZShpZSxoZSx5ZSwiXHVlMDBmIiwiXFxAbmdlcXNsYW50Iiksc2UoaWUsaGUseWUsIlx1ZTAwZSIsIlxcQG5nZXFxIiksc2UoaWUsaGUseWUsIlx1MmE4OCIsIlxcZ25lcSIsITApLHNlKGllLGhlLHllLCJcdTIyNjkiLCJcXGduZXFxIiwhMCksc2UoaWUsaGUseWUsIlx1ZTAwZCIsIlxcQGd2ZXJ0bmVxcSIpLHNlKGllLGhlLHllLCJcdTIyZTciLCJcXGduc2ltIiwhMCksc2UoaWUsaGUseWUsIlx1MmE4YSIsIlxcZ25hcHByb3giLCEwKSxzZShpZSxoZSx5ZSwiXHUyMjgxIiwiXFxuc3VjYyIsITApLHNlKGllLGhlLHllLCJcdTIyZTEiLCJcXG5zdWNjZXEiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmU5IiwiXFxzdWNjbnNpbSIsITApLHNlKGllLGhlLHllLCJcdTJhYmEiLCJcXHN1Y2NuYXBwcm94IiwhMCksc2UoaWUsaGUseWUsIlx1MjI0NiIsIlxcbmNvbmciLCEwKSxzZShpZSxoZSx5ZSwiXHVlMDA3IiwiXFxAbnNob3J0cGFyYWxsZWwiKSxzZShpZSxoZSx5ZSwiXHUyMjI2IiwiXFxucGFyYWxsZWwiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmFmIiwiXFxuVkRhc2giLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmViIiwiXFxudHJpYW5nbGVyaWdodCIpLHNlKGllLGhlLHllLCJcdTIyZWQiLCJcXG50cmlhbmdsZXJpZ2h0ZXEiLCEwKSxzZShpZSxoZSx5ZSwiXHVlMDE4IiwiXFxAbnN1cHNldGVxcSIpLHNlKGllLGhlLHllLCJcdTIyOGIiLCJcXHN1cHNldG5lcSIsITApLHNlKGllLGhlLHllLCJcdWUwMWIiLCJcXEB2YXJzdXBzZXRuZXEiKSxzZShpZSxoZSx5ZSwiXHUyYWNjIiwiXFxzdXBzZXRuZXFxIiwhMCksc2UoaWUsaGUseWUsIlx1ZTAxOSIsIlxcQHZhcnN1cHNldG5lcXEiKSxzZShpZSxoZSx5ZSwiXHUyMmFlIiwiXFxuVmRhc2giLCEwKSxzZShpZSxoZSx5ZSwiXHUyYWI1IiwiXFxwcmVjbmVxcSIsITApLHNlKGllLGhlLHllLCJcdTJhYjYiLCJcXHN1Y2NuZXFxIiwhMCksc2UoaWUsaGUseWUsIlx1ZTAxNiIsIlxcQG5zdWJzZXRlcXEiKSxzZShpZSxoZSxtZSwiXHUyMmI0IiwiXFx1bmxoZCIpLHNlKGllLGhlLG1lLCJcdTIyYjUiLCJcXHVucmhkIiksc2UoaWUsaGUseWUsIlx1MjE5YSIsIlxcbmxlZnRhcnJvdyIsITApLHNlKGllLGhlLHllLCJcdTIxOWIiLCJcXG5yaWdodGFycm93IiwhMCksc2UoaWUsaGUseWUsIlx1MjFjZCIsIlxcbkxlZnRhcnJvdyIsITApLHNlKGllLGhlLHllLCJcdTIxY2YiLCJcXG5SaWdodGFycm93IiwhMCksc2UoaWUsaGUseWUsIlx1MjFhZSIsIlxcbmxlZnRyaWdodGFycm93IiwhMCksc2UoaWUsaGUseWUsIlx1MjFjZSIsIlxcbkxlZnRyaWdodGFycm93IiwhMCksc2UoaWUsaGUseWUsIlx1MjViMyIsIlxcdmFydHJpYW5nbGUiKSxzZShpZSxoZSx3ZSwiXHUyMTBmIiwiXFxoc2xhc2giKSxzZShpZSxoZSx3ZSwiXHUyNWJkIiwiXFx0cmlhbmdsZWRvd24iKSxzZShpZSxoZSx3ZSwiXHUyNWNhIiwiXFxsb3plbmdlIiksc2UoaWUsaGUsd2UsIlx1MjRjOCIsIlxcY2lyY2xlZFMiKSxzZShpZSxoZSx3ZSwiXHhhZSIsIlxcY2lyY2xlZFIiKSxzZShhZSxoZSx3ZSwiXHhhZSIsIlxcY2lyY2xlZFIiKSxzZShpZSxoZSx3ZSwiXHUyMjIxIiwiXFxtZWFzdXJlZGFuZ2xlIiwhMCksc2UoaWUsaGUsd2UsIlx1MjIwNCIsIlxcbmV4aXN0cyIpLHNlKGllLGhlLHdlLCJcdTIxMjciLCJcXG1obyIpLHNlKGllLGhlLHdlLCJcdTIxMzIiLCJcXEZpbnYiLCEwKSxzZShpZSxoZSx3ZSwiXHUyMTQxIiwiXFxHYW1lIiwhMCksc2UoaWUsaGUsd2UsIlx1MjAzNSIsIlxcYmFja3ByaW1lIiksc2UoaWUsaGUsd2UsIlx1MjViMiIsIlxcYmxhY2t0cmlhbmdsZSIpLHNlKGllLGhlLHdlLCJcdTI1YmMiLCJcXGJsYWNrdHJpYW5nbGVkb3duIiksc2UoaWUsaGUsd2UsIlx1MjVhMCIsIlxcYmxhY2tzcXVhcmUiKSxzZShpZSxoZSx3ZSwiXHUyOWViIiwiXFxibGFja2xvemVuZ2UiKSxzZShpZSxoZSx3ZSwiXHUyNjA1IiwiXFxiaWdzdGFyIiksc2UoaWUsaGUsd2UsIlx1MjIyMiIsIlxcc3BoZXJpY2FsYW5nbGUiLCEwKSxzZShpZSxoZSx3ZSwiXHUyMjAxIiwiXFxjb21wbGVtZW50IiwhMCksc2UoaWUsaGUsd2UsIlx4ZjAiLCJcXGV0aCIsITApLHNlKGFlLGxlLHdlLCJceGYwIiwiXHhmMCIpLHNlKGllLGhlLHdlLCJcdTI1NzEiLCJcXGRpYWd1cCIpLHNlKGllLGhlLHdlLCJcdTI1NzIiLCJcXGRpYWdkb3duIiksc2UoaWUsaGUsd2UsIlx1MjVhMSIsIlxcc3F1YXJlIiksc2UoaWUsaGUsd2UsIlx1MjVhMSIsIlxcQm94Iiksc2UoaWUsaGUsd2UsIlx1MjVjYSIsIlxcRGlhbW9uZCIpLHNlKGllLGhlLHdlLCJceGE1IiwiXFx5ZW4iLCEwKSxzZShhZSxoZSx3ZSwiXHhhNSIsIlxceWVuIiwhMCksc2UoaWUsaGUsd2UsIlx1MjcxMyIsIlxcY2hlY2ttYXJrIiwhMCksc2UoYWUsaGUsd2UsIlx1MjcxMyIsIlxcY2hlY2ttYXJrIiksc2UoaWUsaGUsd2UsIlx1MjEzNiIsIlxcYmV0aCIsITApLHNlKGllLGhlLHdlLCJcdTIxMzgiLCJcXGRhbGV0aCIsITApLHNlKGllLGhlLHdlLCJcdTIxMzciLCJcXGdpbWVsIiwhMCksc2UoaWUsaGUsd2UsIlx1MDNkZCIsIlxcZGlnYW1tYSIsITApLHNlKGllLGhlLHdlLCJcdTAzZjAiLCJcXHZhcmthcHBhIiksc2UoaWUsaGUsZmUsIlx1MjUwYyIsIlxcQHVsY29ybmVyIiwhMCksc2UoaWUsaGUscGUsIlx1MjUxMCIsIlxcQHVyY29ybmVyIiwhMCksc2UoaWUsaGUsZmUsIlx1MjUxNCIsIlxcQGxsY29ybmVyIiwhMCksc2UoaWUsaGUscGUsIlx1MjUxOCIsIlxcQGxyY29ybmVyIiwhMCksc2UoaWUsaGUseWUsIlx1MjI2NiIsIlxcbGVxcSIsITApLHNlKGllLGhlLHllLCJcdTJhN2QiLCJcXGxlcXNsYW50IiwhMCksc2UoaWUsaGUseWUsIlx1MmE5NSIsIlxcZXFzbGFudGxlc3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMjcyIiwiXFxsZXNzc2ltIiwhMCksc2UoaWUsaGUseWUsIlx1MmE4NSIsIlxcbGVzc2FwcHJveCIsITApLHNlKGllLGhlLHllLCJcdTIyNGEiLCJcXGFwcHJveGVxIiwhMCksc2UoaWUsaGUsbWUsIlx1MjJkNiIsIlxcbGVzc2RvdCIpLHNlKGllLGhlLHllLCJcdTIyZDgiLCJcXGxsbCIsITApLHNlKGllLGhlLHllLCJcdTIyNzYiLCJcXGxlc3NndHIiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmRhIiwiXFxsZXNzZXFndHIiLCEwKSxzZShpZSxoZSx5ZSwiXHUyYThiIiwiXFxsZXNzZXFxZ3RyIiwhMCksc2UoaWUsaGUseWUsIlx1MjI1MSIsIlxcZG90ZXFkb3QiKSxzZShpZSxoZSx5ZSwiXHUyMjUzIiwiXFxyaXNpbmdkb3RzZXEiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMjUyIiwiXFxmYWxsaW5nZG90c2VxIiwhMCksc2UoaWUsaGUseWUsIlx1MjIzZCIsIlxcYmFja3NpbSIsITApLHNlKGllLGhlLHllLCJcdTIyY2QiLCJcXGJhY2tzaW1lcSIsITApLHNlKGllLGhlLHllLCJcdTJhYzUiLCJcXHN1YnNldGVxcSIsITApLHNlKGllLGhlLHllLCJcdTIyZDAiLCJcXFN1YnNldCIsITApLHNlKGllLGhlLHllLCJcdTIyOGYiLCJcXHNxc3Vic2V0IiwhMCksc2UoaWUsaGUseWUsIlx1MjI3YyIsIlxccHJlY2N1cmx5ZXEiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmRlIiwiXFxjdXJseWVxcHJlYyIsITApLHNlKGllLGhlLHllLCJcdTIyN2UiLCJcXHByZWNzaW0iLCEwKSxzZShpZSxoZSx5ZSwiXHUyYWI3IiwiXFxwcmVjYXBwcm94IiwhMCksc2UoaWUsaGUseWUsIlx1MjJiMiIsIlxcdmFydHJpYW5nbGVsZWZ0Iiksc2UoaWUsaGUseWUsIlx1MjJiNCIsIlxcdHJpYW5nbGVsZWZ0ZXEiKSxzZShpZSxoZSx5ZSwiXHUyMmE4IiwiXFx2RGFzaCIsITApLHNlKGllLGhlLHllLCJcdTIyYWEiLCJcXFZ2ZGFzaCIsITApLHNlKGllLGhlLHllLCJcdTIzMjMiLCJcXHNtYWxsc21pbGUiKSxzZShpZSxoZSx5ZSwiXHUyMzIyIiwiXFxzbWFsbGZyb3duIiksc2UoaWUsaGUseWUsIlx1MjI0ZiIsIlxcYnVtcGVxIiwhMCksc2UoaWUsaGUseWUsIlx1MjI0ZSIsIlxcQnVtcGVxIiwhMCksc2UoaWUsaGUseWUsIlx1MjI2NyIsIlxcZ2VxcSIsITApLHNlKGllLGhlLHllLCJcdTJhN2UiLCJcXGdlcXNsYW50IiwhMCksc2UoaWUsaGUseWUsIlx1MmE5NiIsIlxcZXFzbGFudGd0ciIsITApLHNlKGllLGhlLHllLCJcdTIyNzMiLCJcXGd0cnNpbSIsITApLHNlKGllLGhlLHllLCJcdTJhODYiLCJcXGd0cmFwcHJveCIsITApLHNlKGllLGhlLG1lLCJcdTIyZDciLCJcXGd0cmRvdCIpLHNlKGllLGhlLHllLCJcdTIyZDkiLCJcXGdnZyIsITApLHNlKGllLGhlLHllLCJcdTIyNzciLCJcXGd0cmxlc3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmRiIiwiXFxndHJlcWxlc3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyYThjIiwiXFxndHJlcXFsZXNzIiwhMCksc2UoaWUsaGUseWUsIlx1MjI1NiIsIlxcZXFjaXJjIiwhMCksc2UoaWUsaGUseWUsIlx1MjI1NyIsIlxcY2lyY2VxIiwhMCksc2UoaWUsaGUseWUsIlx1MjI1YyIsIlxcdHJpYW5nbGVxIiwhMCksc2UoaWUsaGUseWUsIlx1MjIzYyIsIlxcdGhpY2tzaW0iKSxzZShpZSxoZSx5ZSwiXHUyMjQ4IiwiXFx0aGlja2FwcHJveCIpLHNlKGllLGhlLHllLCJcdTJhYzYiLCJcXHN1cHNldGVxcSIsITApLHNlKGllLGhlLHllLCJcdTIyZDEiLCJcXFN1cHNldCIsITApLHNlKGllLGhlLHllLCJcdTIyOTAiLCJcXHNxc3Vwc2V0IiwhMCksc2UoaWUsaGUseWUsIlx1MjI3ZCIsIlxcc3VjY2N1cmx5ZXEiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMmRmIiwiXFxjdXJseWVxc3VjYyIsITApLHNlKGllLGhlLHllLCJcdTIyN2YiLCJcXHN1Y2NzaW0iLCEwKSxzZShpZSxoZSx5ZSwiXHUyYWI4IiwiXFxzdWNjYXBwcm94IiwhMCksc2UoaWUsaGUseWUsIlx1MjJiMyIsIlxcdmFydHJpYW5nbGVyaWdodCIpLHNlKGllLGhlLHllLCJcdTIyYjUiLCJcXHRyaWFuZ2xlcmlnaHRlcSIpLHNlKGllLGhlLHllLCJcdTIyYTkiLCJcXFZkYXNoIiwhMCksc2UoaWUsaGUseWUsIlx1MjIyMyIsIlxcc2hvcnRtaWQiKSxzZShpZSxoZSx5ZSwiXHUyMjI1IiwiXFxzaG9ydHBhcmFsbGVsIiksc2UoaWUsaGUseWUsIlx1MjI2YyIsIlxcYmV0d2VlbiIsITApLHNlKGllLGhlLHllLCJcdTIyZDQiLCJcXHBpdGNoZm9yayIsITApLHNlKGllLGhlLHllLCJcdTIyMWQiLCJcXHZhcnByb3B0byIpLHNlKGllLGhlLHllLCJcdTI1YzAiLCJcXGJsYWNrdHJpYW5nbGVsZWZ0Iiksc2UoaWUsaGUseWUsIlx1MjIzNCIsIlxcdGhlcmVmb3JlIiwhMCksc2UoaWUsaGUseWUsIlx1MjIwZCIsIlxcYmFja2Vwc2lsb24iKSxzZShpZSxoZSx5ZSwiXHUyNWI2IiwiXFxibGFja3RyaWFuZ2xlcmlnaHQiKSxzZShpZSxoZSx5ZSwiXHUyMjM1IiwiXFxiZWNhdXNlIiwhMCksc2UoaWUsaGUseWUsIlx1MjJkOCIsIlxcbGxsZXNzIiksc2UoaWUsaGUseWUsIlx1MjJkOSIsIlxcZ2dndHIiKSxzZShpZSxoZSxtZSwiXHUyMmIyIiwiXFxsaGQiKSxzZShpZSxoZSxtZSwiXHUyMmIzIiwiXFxyaGQiKSxzZShpZSxoZSx5ZSwiXHUyMjQyIiwiXFxlcXNpbSIsITApLHNlKGllLGxlLHllLCJcdTIyYzgiLCJcXEpvaW4iKSxzZShpZSxoZSx5ZSwiXHUyMjUxIiwiXFxEb3RlcSIsITApLHNlKGllLGhlLG1lLCJcdTIyMTQiLCJcXGRvdHBsdXMiLCEwKSxzZShpZSxoZSxtZSwiXHUyMjE2IiwiXFxzbWFsbHNldG1pbnVzIiksc2UoaWUsaGUsbWUsIlx1MjJkMiIsIlxcQ2FwIiwhMCksc2UoaWUsaGUsbWUsIlx1MjJkMyIsIlxcQ3VwIiwhMCksc2UoaWUsaGUsbWUsIlx1MmE1ZSIsIlxcZG91YmxlYmFyd2VkZ2UiLCEwKSxzZShpZSxoZSxtZSwiXHUyMjlmIiwiXFxib3htaW51cyIsITApLHNlKGllLGhlLG1lLCJcdTIyOWUiLCJcXGJveHBsdXMiLCEwKSxzZShpZSxoZSxtZSwiXHUyMmM3IiwiXFxkaXZpZGVvbnRpbWVzIiwhMCksc2UoaWUsaGUsbWUsIlx1MjJjOSIsIlxcbHRpbWVzIiwhMCksc2UoaWUsaGUsbWUsIlx1MjJjYSIsIlxccnRpbWVzIiwhMCksc2UoaWUsaGUsbWUsIlx1MjJjYiIsIlxcbGVmdHRocmVldGltZXMiLCEwKSxzZShpZSxoZSxtZSwiXHUyMmNjIiwiXFxyaWdodHRocmVldGltZXMiLCEwKSxzZShpZSxoZSxtZSwiXHUyMmNmIiwiXFxjdXJseXdlZGdlIiwhMCksc2UoaWUsaGUsbWUsIlx1MjJjZSIsIlxcY3VybHl2ZWUiLCEwKSxzZShpZSxoZSxtZSwiXHUyMjlkIiwiXFxjaXJjbGVkZGFzaCIsITApLHNlKGllLGhlLG1lLCJcdTIyOWIiLCJcXGNpcmNsZWRhc3QiLCEwKSxzZShpZSxoZSxtZSwiXHUyMmM1IiwiXFxjZW50ZXJkb3QiKSxzZShpZSxoZSxtZSwiXHUyMmJhIiwiXFxpbnRlcmNhbCIsITApLHNlKGllLGhlLG1lLCJcdTIyZDIiLCJcXGRvdWJsZWNhcCIpLHNlKGllLGhlLG1lLCJcdTIyZDMiLCJcXGRvdWJsZWN1cCIpLHNlKGllLGhlLG1lLCJcdTIyYTAiLCJcXGJveHRpbWVzIiwhMCksc2UoaWUsaGUseWUsIlx1MjFlMiIsIlxcZGFzaHJpZ2h0YXJyb3ciLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWUwIiwiXFxkYXNobGVmdGFycm93IiwhMCksc2UoaWUsaGUseWUsIlx1MjFjNyIsIlxcbGVmdGxlZnRhcnJvd3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWM2IiwiXFxsZWZ0cmlnaHRhcnJvd3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWRhIiwiXFxMbGVmdGFycm93IiwhMCksc2UoaWUsaGUseWUsIlx1MjE5ZSIsIlxcdHdvaGVhZGxlZnRhcnJvdyIsITApLHNlKGllLGhlLHllLCJcdTIxYTIiLCJcXGxlZnRhcnJvd3RhaWwiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWFiIiwiXFxsb29wYXJyb3dsZWZ0IiwhMCksc2UoaWUsaGUseWUsIlx1MjFjYiIsIlxcbGVmdHJpZ2h0aGFycG9vbnMiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWI2IiwiXFxjdXJ2ZWFycm93bGVmdCIsITApLHNlKGllLGhlLHllLCJcdTIxYmEiLCJcXGNpcmNsZWFycm93bGVmdCIsITApLHNlKGllLGhlLHllLCJcdTIxYjAiLCJcXExzaCIsITApLHNlKGllLGhlLHllLCJcdTIxYzgiLCJcXHVwdXBhcnJvd3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWJmIiwiXFx1cGhhcnBvb25sZWZ0IiwhMCksc2UoaWUsaGUseWUsIlx1MjFjMyIsIlxcZG93bmhhcnBvb25sZWZ0IiwhMCksc2UoaWUsbGUseWUsIlx1MjJiNiIsIlxcb3JpZ29mIiwhMCksc2UoaWUsbGUseWUsIlx1MjJiNyIsIlxcaW1hZ2VvZiIsITApLHNlKGllLGhlLHllLCJcdTIyYjgiLCJcXG11bHRpbWFwIiwhMCksc2UoaWUsaGUseWUsIlx1MjFhZCIsIlxcbGVmdHJpZ2h0c3F1aWdhcnJvdyIsITApLHNlKGllLGhlLHllLCJcdTIxYzkiLCJcXHJpZ2h0cmlnaHRhcnJvd3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWM0IiwiXFxyaWdodGxlZnRhcnJvd3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWEwIiwiXFx0d29oZWFkcmlnaHRhcnJvdyIsITApLHNlKGllLGhlLHllLCJcdTIxYTMiLCJcXHJpZ2h0YXJyb3d0YWlsIiwhMCksc2UoaWUsaGUseWUsIlx1MjFhYyIsIlxcbG9vcGFycm93cmlnaHQiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWI3IiwiXFxjdXJ2ZWFycm93cmlnaHQiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWJiIiwiXFxjaXJjbGVhcnJvd3JpZ2h0IiwhMCksc2UoaWUsaGUseWUsIlx1MjFiMSIsIlxcUnNoIiwhMCksc2UoaWUsaGUseWUsIlx1MjFjYSIsIlxcZG93bmRvd25hcnJvd3MiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWJlIiwiXFx1cGhhcnBvb25yaWdodCIsITApLHNlKGllLGhlLHllLCJcdTIxYzIiLCJcXGRvd25oYXJwb29ucmlnaHQiLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWRkIiwiXFxyaWdodHNxdWlnYXJyb3ciLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWRkIiwiXFxsZWFkc3RvIiksc2UoaWUsaGUseWUsIlx1MjFkYiIsIlxcUnJpZ2h0YXJyb3ciLCEwKSxzZShpZSxoZSx5ZSwiXHUyMWJlIiwiXFxyZXN0cmljdGlvbiIpLHNlKGllLGxlLHdlLCJcdTIwMTgiLCJgIiksc2UoaWUsbGUsd2UsIiQiLCJcXCQiKSxzZShhZSxsZSx3ZSwiJCIsIlxcJCIpLHNlKGFlLGxlLHdlLCIkIiwiXFx0ZXh0ZG9sbGFyIiksc2UoaWUsbGUsd2UsIiUiLCJcXCUiKSxzZShhZSxsZSx3ZSwiJSIsIlxcJSIpLHNlKGllLGxlLHdlLCJfIiwiXFxfIiksc2UoYWUsbGUsd2UsIl8iLCJcXF8iKSxzZShhZSxsZSx3ZSwiXyIsIlxcdGV4dHVuZGVyc2NvcmUiKSxzZShpZSxsZSx3ZSwiXHUyMjIwIiwiXFxhbmdsZSIsITApLHNlKGllLGxlLHdlLCJcdTIyMWUiLCJcXGluZnR5IiwhMCksc2UoaWUsbGUsd2UsIlx1MjAzMiIsIlxccHJpbWUiKSxzZShpZSxsZSx3ZSwiXHUyNWIzIiwiXFx0cmlhbmdsZSIpLHNlKGllLGxlLHdlLCJcdTAzOTMiLCJcXEdhbW1hIiwhMCksc2UoaWUsbGUsd2UsIlx1MDM5NCIsIlxcRGVsdGEiLCEwKSxzZShpZSxsZSx3ZSwiXHUwMzk4IiwiXFxUaGV0YSIsITApLHNlKGllLGxlLHdlLCJcdTAzOWIiLCJcXExhbWJkYSIsITApLHNlKGllLGxlLHdlLCJcdTAzOWUiLCJcXFhpIiwhMCksc2UoaWUsbGUsd2UsIlx1MDNhMCIsIlxcUGkiLCEwKSxzZShpZSxsZSx3ZSwiXHUwM2EzIiwiXFxTaWdtYSIsITApLHNlKGllLGxlLHdlLCJcdTAzYTUiLCJcXFVwc2lsb24iLCEwKSxzZShpZSxsZSx3ZSwiXHUwM2E2IiwiXFxQaGkiLCEwKSxzZShpZSxsZSx3ZSwiXHUwM2E4IiwiXFxQc2kiLCEwKSxzZShpZSxsZSx3ZSwiXHUwM2E5IiwiXFxPbWVnYSIsITApLHNlKGllLGxlLHdlLCJBIiwiXHUwMzkxIiksc2UoaWUsbGUsd2UsIkIiLCJcdTAzOTIiKSxzZShpZSxsZSx3ZSwiRSIsIlx1MDM5NSIpLHNlKGllLGxlLHdlLCJaIiwiXHUwMzk2Iiksc2UoaWUsbGUsd2UsIkgiLCJcdTAzOTciKSxzZShpZSxsZSx3ZSwiSSIsIlx1MDM5OSIpLHNlKGllLGxlLHdlLCJLIiwiXHUwMzlhIiksc2UoaWUsbGUsd2UsIk0iLCJcdTAzOWMiKSxzZShpZSxsZSx3ZSwiTiIsIlx1MDM5ZCIpLHNlKGllLGxlLHdlLCJPIiwiXHUwMzlmIiksc2UoaWUsbGUsd2UsIlAiLCJcdTAzYTEiKSxzZShpZSxsZSx3ZSwiVCIsIlx1MDNhNCIpLHNlKGllLGxlLHdlLCJYIiwiXHUwM2E3Iiksc2UoaWUsbGUsd2UsIlx4YWMiLCJcXG5lZyIsITApLHNlKGllLGxlLHdlLCJceGFjIiwiXFxsbm90Iiksc2UoaWUsbGUsd2UsIlx1MjJhNCIsIlxcdG9wIiksc2UoaWUsbGUsd2UsIlx1MjJhNSIsIlxcYm90Iiksc2UoaWUsbGUsd2UsIlx1MjIwNSIsIlxcZW1wdHlzZXQiKSxzZShpZSxoZSx3ZSwiXHUyMjA1IiwiXFx2YXJub3RoaW5nIiksc2UoaWUsbGUsZGUsIlx1MDNiMSIsIlxcYWxwaGEiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2IyIiwiXFxiZXRhIiwhMCksc2UoaWUsbGUsZGUsIlx1MDNiMyIsIlxcZ2FtbWEiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2I0IiwiXFxkZWx0YSIsITApLHNlKGllLGxlLGRlLCJcdTAzZjUiLCJcXGVwc2lsb24iLCEwKSxzZShpZSxsZSxkZSwiXHUwM2I2IiwiXFx6ZXRhIiwhMCksc2UoaWUsbGUsZGUsIlx1MDNiNyIsIlxcZXRhIiwhMCksc2UoaWUsbGUsZGUsIlx1MDNiOCIsIlxcdGhldGEiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2I5IiwiXFxpb3RhIiwhMCksc2UoaWUsbGUsZGUsIlx1MDNiYSIsIlxca2FwcGEiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2JiIiwiXFxsYW1iZGEiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2JjIiwiXFxtdSIsITApLHNlKGllLGxlLGRlLCJcdTAzYmQiLCJcXG51IiwhMCksc2UoaWUsbGUsZGUsIlx1MDNiZSIsIlxceGkiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2JmIiwiXFxvbWljcm9uIiwhMCksc2UoaWUsbGUsZGUsIlx1MDNjMCIsIlxccGkiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2MxIiwiXFxyaG8iLCEwKSxzZShpZSxsZSxkZSwiXHUwM2MzIiwiXFxzaWdtYSIsITApLHNlKGllLGxlLGRlLCJcdTAzYzQiLCJcXHRhdSIsITApLHNlKGllLGxlLGRlLCJcdTAzYzUiLCJcXHVwc2lsb24iLCEwKSxzZShpZSxsZSxkZSwiXHUwM2Q1IiwiXFxwaGkiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2M3IiwiXFxjaGkiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2M4IiwiXFxwc2kiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2M5IiwiXFxvbWVnYSIsITApLHNlKGllLGxlLGRlLCJcdTAzYjUiLCJcXHZhcmVwc2lsb24iLCEwKSxzZShpZSxsZSxkZSwiXHUwM2QxIiwiXFx2YXJ0aGV0YSIsITApLHNlKGllLGxlLGRlLCJcdTAzZDYiLCJcXHZhcnBpIiwhMCksc2UoaWUsbGUsZGUsIlx1MDNmMSIsIlxcdmFycmhvIiwhMCksc2UoaWUsbGUsZGUsIlx1MDNjMiIsIlxcdmFyc2lnbWEiLCEwKSxzZShpZSxsZSxkZSwiXHUwM2M2IiwiXFx2YXJwaGkiLCEwKSxzZShpZSxsZSxtZSwiXHUyMjE3IiwiKiIsITApLHNlKGllLGxlLG1lLCIrIiwiKyIpLHNlKGllLGxlLG1lLCJcdTIyMTIiLCItIiwhMCksc2UoaWUsbGUsbWUsIlx1MjJjNSIsIlxcY2RvdCIsITApLHNlKGllLGxlLG1lLCJcdTIyMTgiLCJcXGNpcmMiLCEwKSxzZShpZSxsZSxtZSwiXHhmNyIsIlxcZGl2IiwhMCksc2UoaWUsbGUsbWUsIlx4YjEiLCJcXHBtIiwhMCksc2UoaWUsbGUsbWUsIlx4ZDciLCJcXHRpbWVzIiwhMCksc2UoaWUsbGUsbWUsIlx1MjIyOSIsIlxcY2FwIiwhMCksc2UoaWUsbGUsbWUsIlx1MjIyYSIsIlxcY3VwIiwhMCksc2UoaWUsbGUsbWUsIlx1MjIxNiIsIlxcc2V0bWludXMiLCEwKSxzZShpZSxsZSxtZSwiXHUyMjI3IiwiXFxsYW5kIiksc2UoaWUsbGUsbWUsIlx1MjIyOCIsIlxcbG9yIiksc2UoaWUsbGUsbWUsIlx1MjIyNyIsIlxcd2VkZ2UiLCEwKSxzZShpZSxsZSxtZSwiXHUyMjI4IiwiXFx2ZWUiLCEwKSxzZShpZSxsZSx3ZSwiXHUyMjFhIiwiXFxzdXJkIiksc2UoaWUsbGUsZmUsIlx1MjdlOCIsIlxcbGFuZ2xlIiwhMCksc2UoaWUsbGUsZmUsIlx1MjIyMyIsIlxcbHZlcnQiKSxzZShpZSxsZSxmZSwiXHUyMjI1IiwiXFxsVmVydCIpLHNlKGllLGxlLHBlLCI/IiwiPyIpLHNlKGllLGxlLHBlLCIhIiwiISIpLHNlKGllLGxlLHBlLCJcdTI3ZTkiLCJcXHJhbmdsZSIsITApLHNlKGllLGxlLHBlLCJcdTIyMjMiLCJcXHJ2ZXJ0Iiksc2UoaWUsbGUscGUsIlx1MjIyNSIsIlxcclZlcnQiKSxzZShpZSxsZSx5ZSwiPSIsIj0iKSxzZShpZSxsZSx5ZSwiOiIsIjoiKSxzZShpZSxsZSx5ZSwiXHUyMjQ4IiwiXFxhcHByb3giLCEwKSxzZShpZSxsZSx5ZSwiXHUyMjQ1IiwiXFxjb25nIiwhMCksc2UoaWUsbGUseWUsIlx1MjI2NSIsIlxcZ2UiKSxzZShpZSxsZSx5ZSwiXHUyMjY1IiwiXFxnZXEiLCEwKSxzZShpZSxsZSx5ZSwiXHUyMTkwIiwiXFxnZXRzIiksc2UoaWUsbGUseWUsIj4iLCJcXGd0IiwhMCksc2UoaWUsbGUseWUsIlx1MjIwOCIsIlxcaW4iLCEwKSxzZShpZSxsZSx5ZSwiXHVlMDIwIiwiXFxAbm90Iiksc2UoaWUsbGUseWUsIlx1MjI4MiIsIlxcc3Vic2V0IiwhMCksc2UoaWUsbGUseWUsIlx1MjI4MyIsIlxcc3Vwc2V0IiwhMCksc2UoaWUsbGUseWUsIlx1MjI4NiIsIlxcc3Vic2V0ZXEiLCEwKSxzZShpZSxsZSx5ZSwiXHUyMjg3IiwiXFxzdXBzZXRlcSIsITApLHNlKGllLGhlLHllLCJcdTIyODgiLCJcXG5zdWJzZXRlcSIsITApLHNlKGllLGhlLHllLCJcdTIyODkiLCJcXG5zdXBzZXRlcSIsITApLHNlKGllLGxlLHllLCJcdTIyYTgiLCJcXG1vZGVscyIpLHNlKGllLGxlLHllLCJcdTIxOTAiLCJcXGxlZnRhcnJvdyIsITApLHNlKGllLGxlLHllLCJcdTIyNjQiLCJcXGxlIiksc2UoaWUsbGUseWUsIlx1MjI2NCIsIlxcbGVxIiwhMCksc2UoaWUsbGUseWUsIjwiLCJcXGx0IiwhMCksc2UoaWUsbGUseWUsIlx1MjE5MiIsIlxccmlnaHRhcnJvdyIsITApLHNlKGllLGxlLHllLCJcdTIxOTIiLCJcXHRvIiksc2UoaWUsaGUseWUsIlx1MjI3MSIsIlxcbmdlcSIsITApLHNlKGllLGhlLHllLCJcdTIyNzAiLCJcXG5sZXEiLCEwKSxzZShpZSxsZSx4ZSwiXHhhMCIsIlxcICIpLHNlKGllLGxlLHhlLCJceGEwIiwiXFxzcGFjZSIpLHNlKGllLGxlLHhlLCJceGEwIiwiXFxub2JyZWFrc3BhY2UiKSxzZShhZSxsZSx4ZSwiXHhhMCIsIlxcICIpLHNlKGFlLGxlLHhlLCJceGEwIiwiICIpLHNlKGFlLGxlLHhlLCJceGEwIiwiXFxzcGFjZSIpLHNlKGFlLGxlLHhlLCJceGEwIiwiXFxub2JyZWFrc3BhY2UiKSxzZShpZSxsZSx4ZSxudWxsLCJcXG5vYnJlYWsiKSxzZShpZSxsZSx4ZSxudWxsLCJcXGFsbG93YnJlYWsiKSxzZShpZSxsZSxiZSwiLCIsIiwiKSxzZShpZSxsZSxiZSwiOyIsIjsiKSxzZShpZSxoZSxtZSwiXHUyMmJjIiwiXFxiYXJ3ZWRnZSIsITApLHNlKGllLGhlLG1lLCJcdTIyYmIiLCJcXHZlZWJhciIsITApLHNlKGllLGxlLG1lLCJcdTIyOTkiLCJcXG9kb3QiLCEwKSxzZShpZSxsZSxtZSwiXHUyMjk1IiwiXFxvcGx1cyIsITApLHNlKGllLGxlLG1lLCJcdTIyOTciLCJcXG90aW1lcyIsITApLHNlKGllLGxlLHdlLCJcdTIyMDIiLCJcXHBhcnRpYWwiLCEwKSxzZShpZSxsZSxtZSwiXHUyMjk4IiwiXFxvc2xhc2giLCEwKSxzZShpZSxoZSxtZSwiXHUyMjlhIiwiXFxjaXJjbGVkY2lyYyIsITApLHNlKGllLGhlLG1lLCJcdTIyYTEiLCJcXGJveGRvdCIsITApLHNlKGllLGxlLG1lLCJcdTI1YjMiLCJcXGJpZ3RyaWFuZ2xldXAiKSxzZShpZSxsZSxtZSwiXHUyNWJkIiwiXFxiaWd0cmlhbmdsZWRvd24iKSxzZShpZSxsZSxtZSwiXHUyMDIwIiwiXFxkYWdnZXIiKSxzZShpZSxsZSxtZSwiXHUyMmM0IiwiXFxkaWFtb25kIiksc2UoaWUsbGUsbWUsIlx1MjJjNiIsIlxcc3RhciIpLHNlKGllLGxlLG1lLCJcdTI1YzMiLCJcXHRyaWFuZ2xlbGVmdCIpLHNlKGllLGxlLG1lLCJcdTI1YjkiLCJcXHRyaWFuZ2xlcmlnaHQiKSxzZShpZSxsZSxmZSwieyIsIlxceyIpLHNlKGFlLGxlLHdlLCJ7IiwiXFx7Iiksc2UoYWUsbGUsd2UsInsiLCJcXHRleHRicmFjZWxlZnQiKSxzZShpZSxsZSxwZSwifSIsIlxcfSIpLHNlKGFlLGxlLHdlLCJ9IiwiXFx9Iiksc2UoYWUsbGUsd2UsIn0iLCJcXHRleHRicmFjZXJpZ2h0Iiksc2UoaWUsbGUsZmUsInsiLCJcXGxicmFjZSIpLHNlKGllLGxlLHBlLCJ9IiwiXFxyYnJhY2UiKSxzZShpZSxsZSxmZSwiWyIsIlxcbGJyYWNrIiwhMCksc2UoYWUsbGUsd2UsIlsiLCJcXGxicmFjayIsITApLHNlKGllLGxlLHBlLCJdIiwiXFxyYnJhY2siLCEwKSxzZShhZSxsZSx3ZSwiXSIsIlxccmJyYWNrIiwhMCksc2UoaWUsbGUsZmUsIigiLCJcXGxwYXJlbiIsITApLHNlKGllLGxlLHBlLCIpIiwiXFxycGFyZW4iLCEwKSxzZShhZSxsZSx3ZSwiPCIsIlxcdGV4dGxlc3MiLCEwKSxzZShhZSxsZSx3ZSwiPiIsIlxcdGV4dGdyZWF0ZXIiLCEwKSxzZShpZSxsZSxmZSwiXHUyMzBhIiwiXFxsZmxvb3IiLCEwKSxzZShpZSxsZSxwZSwiXHUyMzBiIiwiXFxyZmxvb3IiLCEwKSxzZShpZSxsZSxmZSwiXHUyMzA4IiwiXFxsY2VpbCIsITApLHNlKGllLGxlLHBlLCJcdTIzMDkiLCJcXHJjZWlsIiwhMCksc2UoaWUsbGUsd2UsIlxcIiwiXFxiYWNrc2xhc2giKSxzZShpZSxsZSx3ZSwiXHUyMjIzIiwifCIpLHNlKGllLGxlLHdlLCJcdTIyMjMiLCJcXHZlcnQiKSxzZShhZSxsZSx3ZSwifCIsIlxcdGV4dGJhciIsITApLHNlKGllLGxlLHdlLCJcdTIyMjUiLCJcXHwiKSxzZShpZSxsZSx3ZSwiXHUyMjI1IiwiXFxWZXJ0Iiksc2UoYWUsbGUsd2UsIlx1MjIyNSIsIlxcdGV4dGJhcmRibCIpLHNlKGFlLGxlLHdlLCJ+IiwiXFx0ZXh0YXNjaWl0aWxkZSIpLHNlKGFlLGxlLHdlLCJcXCIsIlxcdGV4dGJhY2tzbGFzaCIpLHNlKGFlLGxlLHdlLCJeIiwiXFx0ZXh0YXNjaWljaXJjdW0iKSxzZShpZSxsZSx5ZSwiXHUyMTkxIiwiXFx1cGFycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjFkMSIsIlxcVXBhcnJvdyIsITApLHNlKGllLGxlLHllLCJcdTIxOTMiLCJcXGRvd25hcnJvdyIsITApLHNlKGllLGxlLHllLCJcdTIxZDMiLCJcXERvd25hcnJvdyIsITApLHNlKGllLGxlLHllLCJcdTIxOTUiLCJcXHVwZG93bmFycm93IiwhMCksc2UoaWUsbGUseWUsIlx1MjFkNSIsIlxcVXBkb3duYXJyb3ciLCEwKSxzZShpZSxsZSxnZSwiXHUyMjEwIiwiXFxjb3Byb2QiKSxzZShpZSxsZSxnZSwiXHUyMmMxIiwiXFxiaWd2ZWUiKSxzZShpZSxsZSxnZSwiXHUyMmMwIiwiXFxiaWd3ZWRnZSIpLHNlKGllLGxlLGdlLCJcdTJhMDQiLCJcXGJpZ3VwbHVzIiksc2UoaWUsbGUsZ2UsIlx1MjJjMiIsIlxcYmlnY2FwIiksc2UoaWUsbGUsZ2UsIlx1MjJjMyIsIlxcYmlnY3VwIiksc2UoaWUsbGUsZ2UsIlx1MjIyYiIsIlxcaW50Iiksc2UoaWUsbGUsZ2UsIlx1MjIyYiIsIlxcaW50b3AiKSxzZShpZSxsZSxnZSwiXHUyMjJjIiwiXFxpaW50Iiksc2UoaWUsbGUsZ2UsIlx1MjIyZCIsIlxcaWlpbnQiKSxzZShpZSxsZSxnZSwiXHUyMjBmIiwiXFxwcm9kIiksc2UoaWUsbGUsZ2UsIlx1MjIxMSIsIlxcc3VtIiksc2UoaWUsbGUsZ2UsIlx1MmEwMiIsIlxcYmlnb3RpbWVzIiksc2UoaWUsbGUsZ2UsIlx1MmEwMSIsIlxcYmlnb3BsdXMiKSxzZShpZSxsZSxnZSwiXHUyYTAwIiwiXFxiaWdvZG90Iiksc2UoaWUsbGUsZ2UsIlx1MjIyZSIsIlxcb2ludCIpLHNlKGllLGxlLGdlLCJcdTIyMmYiLCJcXG9paW50Iiksc2UoaWUsbGUsZ2UsIlx1MjIzMCIsIlxcb2lpaW50Iiksc2UoaWUsbGUsZ2UsIlx1MmEwNiIsIlxcYmlnc3FjdXAiKSxzZShpZSxsZSxnZSwiXHUyMjJiIiwiXFxzbWFsbGludCIpLHNlKGFlLGxlLHVlLCJcdTIwMjYiLCJcXHRleHRlbGxpcHNpcyIpLHNlKGllLGxlLHVlLCJcdTIwMjYiLCJcXG1hdGhlbGxpcHNpcyIpLHNlKGFlLGxlLHVlLCJcdTIwMjYiLCJcXGxkb3RzIiwhMCksc2UoaWUsbGUsdWUsIlx1MjAyNiIsIlxcbGRvdHMiLCEwKSxzZShpZSxsZSx1ZSwiXHUyMmVmIiwiXFxAY2RvdHMiLCEwKSxzZShpZSxsZSx1ZSwiXHUyMmYxIiwiXFxkZG90cyIsITApLHNlKGllLGxlLHdlLCJcdTIyZWUiLCJcXHZhcnZkb3RzIiksc2UoaWUsbGUsY2UsIlx1MDJjYSIsIlxcYWN1dGUiKSxzZShpZSxsZSxjZSwiXHUwMmNiIiwiXFxncmF2ZSIpLHNlKGllLGxlLGNlLCJceGE4IiwiXFxkZG90Iiksc2UoaWUsbGUsY2UsIn4iLCJcXHRpbGRlIiksc2UoaWUsbGUsY2UsIlx1MDJjOSIsIlxcYmFyIiksc2UoaWUsbGUsY2UsIlx1MDJkOCIsIlxcYnJldmUiKSxzZShpZSxsZSxjZSwiXHUwMmM3IiwiXFxjaGVjayIpLHNlKGllLGxlLGNlLCJeIiwiXFxoYXQiKSxzZShpZSxsZSxjZSwiXHUyMGQ3IiwiXFx2ZWMiKSxzZShpZSxsZSxjZSwiXHUwMmQ5IiwiXFxkb3QiKSxzZShpZSxsZSxjZSwiXHUwMmRhIiwiXFxtYXRocmluZyIpLHNlKGllLGxlLGRlLCJcdWUxMzEiLCJcXEBpbWF0aCIpLHNlKGllLGxlLGRlLCJcdWUyMzciLCJcXEBqbWF0aCIpLHNlKGllLGxlLHdlLCJcdTAxMzEiLCJcdTAxMzEiKSxzZShpZSxsZSx3ZSwiXHUwMjM3IiwiXHUwMjM3Iiksc2UoYWUsbGUsd2UsIlx1MDEzMSIsIlxcaSIsITApLHNlKGFlLGxlLHdlLCJcdTAyMzciLCJcXGoiLCEwKSxzZShhZSxsZSx3ZSwiXHhkZiIsIlxcc3MiLCEwKSxzZShhZSxsZSx3ZSwiXHhlNiIsIlxcYWUiLCEwKSxzZShhZSxsZSx3ZSwiXHUwMTUzIiwiXFxvZSIsITApLHNlKGFlLGxlLHdlLCJceGY4IiwiXFxvIiwhMCksc2UoYWUsbGUsd2UsIlx4YzYiLCJcXEFFIiwhMCksc2UoYWUsbGUsd2UsIlx1MDE1MiIsIlxcT0UiLCEwKSxzZShhZSxsZSx3ZSwiXHhkOCIsIlxcTyIsITApLHNlKGFlLGxlLGNlLCJcdTAyY2EiLCJcXCciKSxzZShhZSxsZSxjZSwiXHUwMmNiIiwiXFxgIiksc2UoYWUsbGUsY2UsIlx1MDJjNiIsIlxcXiIpLHNlKGFlLGxlLGNlLCJcdTAyZGMiLCJcXH4iKSxzZShhZSxsZSxjZSwiXHUwMmM5IiwiXFw9Iiksc2UoYWUsbGUsY2UsIlx1MDJkOCIsIlxcdSIpLHNlKGFlLGxlLGNlLCJcdTAyZDkiLCJcXC4iKSxzZShhZSxsZSxjZSwiXHhiOCIsIlxcYyIpLHNlKGFlLGxlLGNlLCJcdTAyZGEiLCJcXHIiKSxzZShhZSxsZSxjZSwiXHUwMmM3IiwiXFx2Iiksc2UoYWUsbGUsY2UsIlx4YTgiLCdcXCInKSxzZShhZSxsZSxjZSwiXHUwMmRkIiwiXFxIIiksc2UoYWUsbGUsY2UsIlx1MjVlZiIsIlxcdGV4dGNpcmNsZWQiKTtjb25zdCB2ZT17Ii0tIjohMCwiLS0tIjohMCwiYGAiOiEwLCInJyI6ITB9O3NlKGFlLGxlLHdlLCJcdTIwMTMiLCItLSIsITApLHNlKGFlLGxlLHdlLCJcdTIwMTMiLCJcXHRleHRlbmRhc2giKSxzZShhZSxsZSx3ZSwiXHUyMDE0IiwiLS0tIiwhMCksc2UoYWUsbGUsd2UsIlx1MjAxNCIsIlxcdGV4dGVtZGFzaCIpLHNlKGFlLGxlLHdlLCJcdTIwMTgiLCJgIiwhMCksc2UoYWUsbGUsd2UsIlx1MjAxOCIsIlxcdGV4dHF1b3RlbGVmdCIpLHNlKGFlLGxlLHdlLCJcdTIwMTkiLCInIiwhMCksc2UoYWUsbGUsd2UsIlx1MjAxOSIsIlxcdGV4dHF1b3RlcmlnaHQiKSxzZShhZSxsZSx3ZSwiXHUyMDFjIiwiYGAiLCEwKSxzZShhZSxsZSx3ZSwiXHUyMDFjIiwiXFx0ZXh0cXVvdGVkYmxsZWZ0Iiksc2UoYWUsbGUsd2UsIlx1MjAxZCIsIicnIiwhMCksc2UoYWUsbGUsd2UsIlx1MjAxZCIsIlxcdGV4dHF1b3RlZGJscmlnaHQiKSxzZShpZSxsZSx3ZSwiXHhiMCIsIlxcZGVncmVlIiwhMCksc2UoYWUsbGUsd2UsIlx4YjAiLCJcXGRlZ3JlZSIpLHNlKGFlLGxlLHdlLCJceGIwIiwiXFx0ZXh0ZGVncmVlIiwhMCksc2UoaWUsbGUsd2UsIlx4YTMiLCJcXHBvdW5kcyIpLHNlKGllLGxlLHdlLCJceGEzIiwiXFxtYXRoc3RlcmxpbmciLCEwKSxzZShhZSxsZSx3ZSwiXHhhMyIsIlxccG91bmRzIiksc2UoYWUsbGUsd2UsIlx4YTMiLCJcXHRleHRzdGVybGluZyIsITApLHNlKGllLGhlLHdlLCJcdTI3MjAiLCJcXG1hbHRlc2UiKSxzZShhZSxoZSx3ZSwiXHUyNzIwIiwiXFxtYWx0ZXNlIik7Y29uc3Qga2U9JzAxMjM0NTY3ODkvQC4iJztmb3IobGV0IGU9MDtlPGtlLmxlbmd0aDtlKyspe2NvbnN0IHQ9a2UuY2hhckF0KGUpO3NlKGllLGxlLHdlLHQsdCl9Y29uc3QgU2U9JzAxMjM0NTY3ODkhQCooKS09KyI7Oj8vLiwnO2ZvcihsZXQgZT0wO2U8U2UubGVuZ3RoO2UrKyl7Y29uc3QgdD1TZS5jaGFyQXQoZSk7c2UoYWUsbGUsd2UsdCx0KX1jb25zdCBNZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7Zm9yKGxldCBlPTA7ZTxNZS5sZW5ndGg7ZSsrKXtjb25zdCB0PU1lLmNoYXJBdChlKTtzZShpZSxsZSxkZSx0LHQpLHNlKGFlLGxlLHdlLHQsdCl9c2UoaWUsaGUsd2UsIkMiLCJcdTIxMDIiKSxzZShhZSxoZSx3ZSwiQyIsIlx1MjEwMiIpLHNlKGllLGhlLHdlLCJIIiwiXHUyMTBkIiksc2UoYWUsaGUsd2UsIkgiLCJcdTIxMGQiKSxzZShpZSxoZSx3ZSwiTiIsIlx1MjExNSIpLHNlKGFlLGhlLHdlLCJOIiwiXHUyMTE1Iiksc2UoaWUsaGUsd2UsIlAiLCJcdTIxMTkiKSxzZShhZSxoZSx3ZSwiUCIsIlx1MjExOSIpLHNlKGllLGhlLHdlLCJRIiwiXHUyMTFhIiksc2UoYWUsaGUsd2UsIlEiLCJcdTIxMWEiKSxzZShpZSxoZSx3ZSwiUiIsIlx1MjExZCIpLHNlKGFlLGhlLHdlLCJSIiwiXHUyMTFkIiksc2UoaWUsaGUsd2UsIloiLCJcdTIxMjQiKSxzZShhZSxoZSx3ZSwiWiIsIlx1MjEyNCIpLHNlKGllLGxlLGRlLCJoIiwiXHUyMTBlIiksc2UoYWUsbGUsZGUsImgiLCJcdTIxMGUiKTtsZXQgemU9IiI7Zm9yKGxldCBlPTA7ZTxNZS5sZW5ndGg7ZSsrKXtjb25zdCB0PU1lLmNoYXJBdChlKTt6ZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1MzQ5LDU2MzIwK2UpLHNlKGllLGxlLGRlLHQsemUpLHNlKGFlLGxlLHdlLHQsemUpLHplPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNDksNTYzNzIrZSksc2UoaWUsbGUsZGUsdCx6ZSksc2UoYWUsbGUsd2UsdCx6ZSksemU9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTM0OSw1NjQyNCtlKSxzZShpZSxsZSxkZSx0LHplKSxzZShhZSxsZSx3ZSx0LHplKSx6ZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1MzQ5LDU2NTgwK2UpLHNlKGllLGxlLGRlLHQsemUpLHNlKGFlLGxlLHdlLHQsemUpLHplPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNDksNTY2ODQrZSksc2UoaWUsbGUsZGUsdCx6ZSksc2UoYWUsbGUsd2UsdCx6ZSksemU9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTM0OSw1NjczNitlKSxzZShpZSxsZSxkZSx0LHplKSxzZShhZSxsZSx3ZSx0LHplKSx6ZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1MzQ5LDU2Nzg4K2UpLHNlKGllLGxlLGRlLHQsemUpLHNlKGFlLGxlLHdlLHQsemUpLHplPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNDksNTY4NDArZSksc2UoaWUsbGUsZGUsdCx6ZSksc2UoYWUsbGUsd2UsdCx6ZSksemU9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTM0OSw1Njk0NCtlKSxzZShpZSxsZSxkZSx0LHplKSxzZShhZSxsZSx3ZSx0LHplKSxlPDI2JiYoemU9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTM0OSw1NjYzMitlKSxzZShpZSxsZSxkZSx0LHplKSxzZShhZSxsZSx3ZSx0LHplKSx6ZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1MzQ5LDU2NDc2K2UpLHNlKGllLGxlLGRlLHQsemUpLHNlKGFlLGxlLHdlLHQsemUpKX16ZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1MzQ5LDU2NjY4KSxzZShpZSxsZSxkZSwiayIsemUpLHNlKGFlLGxlLHdlLCJrIix6ZSk7Zm9yKGxldCBlPTA7ZTwxMDtlKyspe2NvbnN0IHQ9ZS50b1N0cmluZygpO3plPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNDksNTcyOTQrZSksc2UoaWUsbGUsZGUsdCx6ZSksc2UoYWUsbGUsd2UsdCx6ZSksemU9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTM0OSw1NzMxNCtlKSxzZShpZSxsZSxkZSx0LHplKSxzZShhZSxsZSx3ZSx0LHplKSx6ZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1MzQ5LDU3MzI0K2UpLHNlKGllLGxlLGRlLHQsemUpLHNlKGFlLGxlLHdlLHQsemUpLHplPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNDksNTczMzQrZSksc2UoaWUsbGUsZGUsdCx6ZSksc2UoYWUsbGUsd2UsdCx6ZSl9Y29uc3QgQWU9Ilx4ZDBceGRlXHhmZSI7Zm9yKGxldCBlPTA7ZTxBZS5sZW5ndGg7ZSsrKXtjb25zdCB0PUFlLmNoYXJBdChlKTtzZShpZSxsZSxkZSx0LHQpLHNlKGFlLGxlLHdlLHQsdCl9Y29uc3QgVGU9W1sibWF0aGJmIiwidGV4dGJmIiwiTWFpbi1Cb2xkIl0sWyJtYXRoYmYiLCJ0ZXh0YmYiLCJNYWluLUJvbGQiXSxbIm1hdGhub3JtYWwiLCJ0ZXh0aXQiLCJNYXRoLUl0YWxpYyJdLFsibWF0aG5vcm1hbCIsInRleHRpdCIsIk1hdGgtSXRhbGljIl0sWyJib2xkc3ltYm9sIiwiYm9sZHN5bWJvbCIsIk1haW4tQm9sZEl0YWxpYyJdLFsiYm9sZHN5bWJvbCIsImJvbGRzeW1ib2wiLCJNYWluLUJvbGRJdGFsaWMiXSxbIm1hdGhzY3IiLCJ0ZXh0c2NyIiwiU2NyaXB0LVJlZ3VsYXIiXSxbIiIsIiIsIiJdLFsiIiwiIiwiIl0sWyIiLCIiLCIiXSxbIm1hdGhmcmFrIiwidGV4dGZyYWsiLCJGcmFrdHVyLVJlZ3VsYXIiXSxbIm1hdGhmcmFrIiwidGV4dGZyYWsiLCJGcmFrdHVyLVJlZ3VsYXIiXSxbIm1hdGhiYiIsInRleHRiYiIsIkFNUy1SZWd1bGFyIl0sWyJtYXRoYmIiLCJ0ZXh0YmIiLCJBTVMtUmVndWxhciJdLFsibWF0aGJvbGRmcmFrIiwidGV4dGJvbGRmcmFrIiwiRnJha3R1ci1SZWd1bGFyIl0sWyJtYXRoYm9sZGZyYWsiLCJ0ZXh0Ym9sZGZyYWsiLCJGcmFrdHVyLVJlZ3VsYXIiXSxbIm1hdGhzZiIsInRleHRzZiIsIlNhbnNTZXJpZi1SZWd1bGFyIl0sWyJtYXRoc2YiLCJ0ZXh0c2YiLCJTYW5zU2VyaWYtUmVndWxhciJdLFsibWF0aGJvbGRzZiIsInRleHRib2xkc2YiLCJTYW5zU2VyaWYtQm9sZCJdLFsibWF0aGJvbGRzZiIsInRleHRib2xkc2YiLCJTYW5zU2VyaWYtQm9sZCJdLFsibWF0aGl0c2YiLCJ0ZXh0aXRzZiIsIlNhbnNTZXJpZi1JdGFsaWMiXSxbIm1hdGhpdHNmIiwidGV4dGl0c2YiLCJTYW5zU2VyaWYtSXRhbGljIl0sWyIiLCIiLCIiXSxbIiIsIiIsIiJdLFsibWF0aHR0IiwidGV4dHR0IiwiVHlwZXdyaXRlci1SZWd1bGFyIl0sWyJtYXRodHQiLCJ0ZXh0dHQiLCJUeXBld3JpdGVyLVJlZ3VsYXIiXV0sQmU9W1sibWF0aGJmIiwidGV4dGJmIiwiTWFpbi1Cb2xkIl0sWyIiLCIiLCIiXSxbIm1hdGhzZiIsInRleHRzZiIsIlNhbnNTZXJpZi1SZWd1bGFyIl0sWyJtYXRoYm9sZHNmIiwidGV4dGJvbGRzZiIsIlNhbnNTZXJpZi1Cb2xkIl0sWyJtYXRodHQiLCJ0ZXh0dHQiLCJUeXBld3JpdGVyLVJlZ3VsYXIiXV0sQ2U9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBvZVtyXVtlXSYmb2Vbcl1bZV0ucmVwbGFjZSYmKGU9b2Vbcl1bZV0ucmVwbGFjZSkse3ZhbHVlOmUsbWV0cmljczpOKGUsdCxyKX19LE5lPWZ1bmN0aW9uKGUsdCxyLG4sbyl7Y29uc3Qgcz1DZShlLHQsciksaT1zLm1ldHJpY3M7bGV0IGE7aWYoZT1zLnZhbHVlLGkpe2xldCB0PWkuaXRhbGljOygidGV4dCI9PT1yfHxuJiYibWF0aGl0Ij09PW4uZm9udCkmJih0PTApLGE9bmV3IFooZSxpLmhlaWdodCxpLmRlcHRoLHQsaS5za2V3LGkud2lkdGgsbyl9ZWxzZSJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKCJObyBjaGFyYWN0ZXIgbWV0cmljcyBmb3IgJyIrZSsiJyBpbiBzdHlsZSAnIit0KyInIGFuZCBtb2RlICciK3IrIiciKSxhPW5ldyBaKGUsMCwwLDAsMCwwLG8pO2lmKG4pe2EubWF4Rm9udFNpemU9bi5zaXplTXVsdGlwbGllcixuLnN0eWxlLmlzVGlnaHQoKSYmYS5jbGFzc2VzLnB1c2goIm10aWdodCIpO2NvbnN0IGU9bi5nZXRDb2xvcigpO2UmJihhLnN0eWxlLmNvbG9yPWUpfXJldHVybiBhfSxxZT0oZSx0KT0+e2lmKEcoZS5jbGFzc2VzKSE9PUcodC5jbGFzc2VzKXx8ZS5za2V3IT09dC5za2V3fHxlLm1heEZvbnRTaXplIT09dC5tYXhGb250U2l6ZSlyZXR1cm4hMTtpZigxPT09ZS5jbGFzc2VzLmxlbmd0aCl7Y29uc3QgdD1lLmNsYXNzZXNbMF07aWYoIm1iaW4iPT09dHx8Im1vcmQiPT09dClyZXR1cm4hMX1mb3IoY29uc3QgciBpbiBlLnN0eWxlKWlmKGUuc3R5bGUuaGFzT3duUHJvcGVydHkocikmJmUuc3R5bGVbcl0hPT10LnN0eWxlW3JdKXJldHVybiExO2Zvcihjb25zdCByIGluIHQuc3R5bGUpaWYodC5zdHlsZS5oYXNPd25Qcm9wZXJ0eShyKSYmZS5zdHlsZVtyXSE9PXQuc3R5bGVbcl0pcmV0dXJuITE7cmV0dXJuITB9LEllPWZ1bmN0aW9uKGUpe2xldCB0PTAscj0wLG49MDtmb3IobGV0IG89MDtvPGUuY2hpbGRyZW4ubGVuZ3RoO28rKyl7Y29uc3Qgcz1lLmNoaWxkcmVuW29dO3MuaGVpZ2h0PnQmJih0PXMuaGVpZ2h0KSxzLmRlcHRoPnImJihyPXMuZGVwdGgpLHMubWF4Rm9udFNpemU+biYmKG49cy5tYXhGb250U2l6ZSl9ZS5oZWlnaHQ9dCxlLmRlcHRoPXIsZS5tYXhGb250U2l6ZT1ufSxSZT1mdW5jdGlvbihlLHQscixuKXtjb25zdCBvPW5ldyBXKGUsdCxyLG4pO3JldHVybiBJZShvKSxvfSxIZT0oZSx0LHIsbik9Pm5ldyBXKGUsdCxyLG4pLE9lPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IEEoZSk7cmV0dXJuIEllKHQpLHR9LEVlPWZ1bmN0aW9uKGUsdCxyKXtsZXQgbixvPSIiO3N3aXRjaChlKXtjYXNlImFtc3JtIjpvPSJBTVMiO2JyZWFrO2Nhc2UidGV4dHJtIjpvPSJNYWluIjticmVhaztjYXNlInRleHRzZiI6bz0iU2Fuc1NlcmlmIjticmVhaztjYXNlInRleHR0dCI6bz0iVHlwZXdyaXRlciI7YnJlYWs7ZGVmYXVsdDpvPWV9cmV0dXJuIG49InRleHRiZiI9PT10JiYidGV4dGl0Ij09PXI/IkJvbGRJdGFsaWMiOiJ0ZXh0YmYiPT09dD8iQm9sZCI6InRleHRpdCI9PT10PyJJdGFsaWMiOiJSZWd1bGFyIixvKyItIitufSxMZT17bWF0aGJmOnt2YXJpYW50OiJib2xkIixmb250TmFtZToiTWFpbi1Cb2xkIn0sbWF0aHJtOnt2YXJpYW50OiJub3JtYWwiLGZvbnROYW1lOiJNYWluLVJlZ3VsYXIifSx0ZXh0aXQ6e3ZhcmlhbnQ6Iml0YWxpYyIsZm9udE5hbWU6Ik1haW4tSXRhbGljIn0sbWF0aGl0Ont2YXJpYW50OiJpdGFsaWMiLGZvbnROYW1lOiJNYWluLUl0YWxpYyJ9LG1hdGhub3JtYWw6e3ZhcmlhbnQ6Iml0YWxpYyIsZm9udE5hbWU6Ik1hdGgtSXRhbGljIn0sbWF0aGJiOnt2YXJpYW50OiJkb3VibGUtc3RydWNrIixmb250TmFtZToiQU1TLVJlZ3VsYXIifSxtYXRoY2FsOnt2YXJpYW50OiJzY3JpcHQiLGZvbnROYW1lOiJDYWxpZ3JhcGhpYy1SZWd1bGFyIn0sbWF0aGZyYWs6e3ZhcmlhbnQ6ImZyYWt0dXIiLGZvbnROYW1lOiJGcmFrdHVyLVJlZ3VsYXIifSxtYXRoc2NyOnt2YXJpYW50OiJzY3JpcHQiLGZvbnROYW1lOiJTY3JpcHQtUmVndWxhciJ9LG1hdGhzZjp7dmFyaWFudDoic2Fucy1zZXJpZiIsZm9udE5hbWU6IlNhbnNTZXJpZi1SZWd1bGFyIn0sbWF0aHR0Ont2YXJpYW50OiJtb25vc3BhY2UiLGZvbnROYW1lOiJUeXBld3JpdGVyLVJlZ3VsYXIifX0sRGU9e3ZlYzpbInZlYyIsLjQ3MSwuNzE0XSxvaWludFNpemUxOlsib2lpbnRTaXplMSIsLjk1NywuNDk5XSxvaWludFNpemUyOlsib2lpbnRTaXplMiIsMS40NzIsLjY1OV0sb2lpaW50U2l6ZTE6WyJvaWlpbnRTaXplMSIsMS4zMDQsLjQ5OV0sb2lpaW50U2l6ZTI6WyJvaWlpbnRTaXplMiIsMS45OCwuNjU5XX07dmFyIFZlPXtmb250TWFwOkxlLG1ha2VTeW1ib2w6TmUsbWF0aHN5bTpmdW5jdGlvbihlLHQscixuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49W10pLCJib2xkc3ltYm9sIj09PXIuZm9udCYmQ2UoZSwiTWFpbi1Cb2xkIix0KS5tZXRyaWNzP05lKGUsIk1haW4tQm9sZCIsdCxyLG4uY29uY2F0KFsibWF0aGJmIl0pKToiXFwiPT09ZXx8Im1haW4iPT09b2VbdF1bZV0uZm9udD9OZShlLCJNYWluLVJlZ3VsYXIiLHQscixuKTpOZShlLCJBTVMtUmVndWxhciIsdCxyLG4uY29uY2F0KFsiYW1zcm0iXSkpfSxtYWtlU3BhbjpSZSxtYWtlU3ZnU3BhbjpIZSxtYWtlTGluZVNwYW46ZnVuY3Rpb24oZSx0LHIpe2NvbnN0IG49UmUoW2VdLFtdLHQpO3JldHVybiBuLmhlaWdodD1NYXRoLm1heChyfHx0LmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3MsdC5taW5SdWxlVGhpY2tuZXNzKSxuLnN0eWxlLmJvcmRlckJvdHRvbVdpZHRoPUYobi5oZWlnaHQpLG4ubWF4Rm9udFNpemU9MSxufSxtYWtlQW5jaG9yOmZ1bmN0aW9uKGUsdCxyLG4pe2NvbnN0IG89bmV3IF8oZSx0LHIsbik7cmV0dXJuIEllKG8pLG99LG1ha2VGcmFnbWVudDpPZSx3cmFwRnJhZ21lbnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIEE/UmUoW10sW2VdLHQpOmV9LG1ha2VWTGlzdDpmdW5jdGlvbihlLHQpe2NvbnN0e2NoaWxkcmVuOnIsZGVwdGg6bn09ZnVuY3Rpb24oZSl7aWYoImluZGl2aWR1YWxTaGlmdCI9PT1lLnBvc2l0aW9uVHlwZSl7Y29uc3QgdD1lLmNoaWxkcmVuLHI9W3RbMF1dLG49LXRbMF0uc2hpZnQtdFswXS5lbGVtLmRlcHRoO2xldCBvPW47Zm9yKGxldCBlPTE7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG49LXRbZV0uc2hpZnQtby10W2VdLmVsZW0uZGVwdGgscz1uLSh0W2UtMV0uZWxlbS5oZWlnaHQrdFtlLTFdLmVsZW0uZGVwdGgpO28rPW4sci5wdXNoKHt0eXBlOiJrZXJuIixzaXplOnN9KSxyLnB1c2godFtlXSl9cmV0dXJue2NoaWxkcmVuOnIsZGVwdGg6bn19bGV0IHQ7aWYoInRvcCI9PT1lLnBvc2l0aW9uVHlwZSl7bGV0IHI9ZS5wb3NpdGlvbkRhdGE7Zm9yKGxldCB0PTA7dDxlLmNoaWxkcmVuLmxlbmd0aDt0Kyspe2NvbnN0IG49ZS5jaGlsZHJlblt0XTtyLT0ia2VybiI9PT1uLnR5cGU/bi5zaXplOm4uZWxlbS5oZWlnaHQrbi5lbGVtLmRlcHRofXQ9cn1lbHNlIGlmKCJib3R0b20iPT09ZS5wb3NpdGlvblR5cGUpdD0tZS5wb3NpdGlvbkRhdGE7ZWxzZXtjb25zdCByPWUuY2hpbGRyZW5bMF07aWYoImVsZW0iIT09ci50eXBlKXRocm93IG5ldyBFcnJvcignRmlyc3QgY2hpbGQgbXVzdCBoYXZlIHR5cGUgImVsZW0iLicpO2lmKCJzaGlmdCI9PT1lLnBvc2l0aW9uVHlwZSl0PS1yLmVsZW0uZGVwdGgtZS5wb3NpdGlvbkRhdGE7ZWxzZXtpZigiZmlyc3RCYXNlbGluZSIhPT1lLnBvc2l0aW9uVHlwZSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcG9zaXRpb25UeXBlICIrZS5wb3NpdGlvblR5cGUrIi4iKTt0PS1yLmVsZW0uZGVwdGh9fXJldHVybntjaGlsZHJlbjplLmNoaWxkcmVuLGRlcHRoOnR9fShlKTtsZXQgbz0wO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXtjb25zdCB0PXJbZV07aWYoImVsZW0iPT09dC50eXBlKXtjb25zdCBlPXQuZWxlbTtvPU1hdGgubWF4KG8sZS5tYXhGb250U2l6ZSxlLmhlaWdodCl9fW8rPTI7Y29uc3Qgcz1SZShbInBzdHJ1dCJdLFtdKTtzLnN0eWxlLmhlaWdodD1GKG8pO2NvbnN0IGk9W107bGV0IGE9bixsPW4saD1uO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXtjb25zdCB0PXJbZV07aWYoImtlcm4iPT09dC50eXBlKWgrPXQuc2l6ZTtlbHNle2NvbnN0IGU9dC5lbGVtLHI9dC53cmFwcGVyQ2xhc3Nlc3x8W10sbj10LndyYXBwZXJTdHlsZXx8e30sYT1SZShyLFtzLGVdLHZvaWQgMCxuKTthLnN0eWxlLnRvcD1GKC1vLWgtZS5kZXB0aCksdC5tYXJnaW5MZWZ0JiYoYS5zdHlsZS5tYXJnaW5MZWZ0PXQubWFyZ2luTGVmdCksdC5tYXJnaW5SaWdodCYmKGEuc3R5bGUubWFyZ2luUmlnaHQ9dC5tYXJnaW5SaWdodCksaS5wdXNoKGEpLGgrPWUuaGVpZ2h0K2UuZGVwdGh9YT1NYXRoLm1pbihhLGgpLGw9TWF0aC5tYXgobCxoKX1jb25zdCBjPVJlKFsidmxpc3QiXSxpKTtsZXQgbTtpZihjLnN0eWxlLmhlaWdodD1GKGwpLGE8MCl7Y29uc3QgZT1SZShbXSxbXSksdD1SZShbInZsaXN0Il0sW2VdKTt0LnN0eWxlLmhlaWdodD1GKC1hKTtjb25zdCByPVJlKFsidmxpc3QtcyJdLFtuZXcgWigiXHUyMDBiIildKTttPVtSZShbInZsaXN0LXIiXSxbYyxyXSksUmUoWyJ2bGlzdC1yIl0sW3RdKV19ZWxzZSBtPVtSZShbInZsaXN0LXIiXSxbY10pXTtjb25zdCBwPVJlKFsidmxpc3QtdCJdLG0pO3JldHVybiAyPT09bS5sZW5ndGgmJnAuY2xhc3Nlcy5wdXNoKCJ2bGlzdC10MiIpLHAuaGVpZ2h0PWwscC5kZXB0aD0tYSxwfSxtYWtlT3JkOmZ1bmN0aW9uKGUsdCxyKXtjb25zdCBvPWUubW9kZSxzPWUudGV4dCxpPVsibW9yZCJdLGE9Im1hdGgiPT09b3x8InRleHQiPT09byYmdC5mb250LGw9YT90LmZvbnQ6dC5mb250RmFtaWx5O2xldCBoPSIiLGM9IiI7aWYoNTUzNDk9PT1zLmNoYXJDb2RlQXQoMCkmJihbaCxjXT1mdW5jdGlvbihlLHQpe2NvbnN0IHI9MTAyNCooZS5jaGFyQ29kZUF0KDApLTU1Mjk2KSsoZS5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2NTUzNixvPSJtYXRoIj09PXQ/MDoxO2lmKDExOTgwODw9ciYmcjwxMjA0ODQpe2NvbnN0IGU9TWF0aC5mbG9vcigoci0xMTk4MDgpLzI2KTtyZXR1cm5bVGVbZV1bMl0sVGVbZV1bb11dfWlmKDEyMDc4Mjw9ciYmcjw9MTIwODMxKXtjb25zdCBlPU1hdGguZmxvb3IoKHItMTIwNzgyKS8xMCk7cmV0dXJuW0JlW2VdWzJdLEJlW2VdW29dXX1pZigxMjA0ODU9PT1yfHwxMjA0ODY9PT1yKXJldHVybltUZVswXVsyXSxUZVswXVtvXV07aWYoMTIwNDg2PHImJnI8MTIwNzgyKXJldHVyblsiIiwiIl07dGhyb3cgbmV3IG4oIlVuc3VwcG9ydGVkIGNoYXJhY3RlcjogIitlKX0ocyxvKSksaC5sZW5ndGg+MClyZXR1cm4gTmUocyxoLG8sdCxpLmNvbmNhdChjKSk7aWYobCl7bGV0IGUsbjtpZigiYm9sZHN5bWJvbCI9PT1sKXtjb25zdCB0PWZ1bmN0aW9uKGUsdCxyLG4sbyl7cmV0dXJuInRleHRvcmQiIT09byYmQ2UoZSwiTWF0aC1Cb2xkSXRhbGljIix0KS5tZXRyaWNzP3tmb250TmFtZToiTWF0aC1Cb2xkSXRhbGljIixmb250Q2xhc3M6ImJvbGRzeW1ib2wifTp7Zm9udE5hbWU6Ik1haW4tQm9sZCIsZm9udENsYXNzOiJtYXRoYmYifX0ocyxvLDAsMCxyKTtlPXQuZm9udE5hbWUsbj1bdC5mb250Q2xhc3NdfWVsc2UgYT8oZT1MZVtsXS5mb250TmFtZSxuPVtsXSk6KGU9RWUobCx0LmZvbnRXZWlnaHQsdC5mb250U2hhcGUpLG49W2wsdC5mb250V2VpZ2h0LHQuZm9udFNoYXBlXSk7aWYoQ2UocyxlLG8pLm1ldHJpY3MpcmV0dXJuIE5lKHMsZSxvLHQsaS5jb25jYXQobikpO2lmKHZlLmhhc093blByb3BlcnR5KHMpJiYiVHlwZXdyaXRlciI9PT1lLnNsaWNlKDAsMTApKXtjb25zdCByPVtdO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSsrKXIucHVzaChOZShzW2FdLGUsbyx0LGkuY29uY2F0KG4pKSk7cmV0dXJuIE9lKHIpfX1pZigibWF0aG9yZCI9PT1yKXJldHVybiBOZShzLCJNYXRoLUl0YWxpYyIsbyx0LGkuY29uY2F0KFsibWF0aG5vcm1hbCJdKSk7aWYoInRleHRvcmQiPT09cil7Y29uc3QgZT1vZVtvXVtzXSYmb2Vbb11bc10uZm9udDtpZigiYW1zIj09PWUpe2NvbnN0IGU9RWUoImFtc3JtIix0LmZvbnRXZWlnaHQsdC5mb250U2hhcGUpO3JldHVybiBOZShzLGUsbyx0LGkuY29uY2F0KCJhbXNybSIsdC5mb250V2VpZ2h0LHQuZm9udFNoYXBlKSl9aWYoIm1haW4iIT09ZSYmZSl7Y29uc3Qgcj1FZShlLHQuZm9udFdlaWdodCx0LmZvbnRTaGFwZSk7cmV0dXJuIE5lKHMscixvLHQsaS5jb25jYXQocix0LmZvbnRXZWlnaHQsdC5mb250U2hhcGUpKX17Y29uc3QgZT1FZSgidGV4dHJtIix0LmZvbnRXZWlnaHQsdC5mb250U2hhcGUpO3JldHVybiBOZShzLGUsbyx0LGkuY29uY2F0KHQuZm9udFdlaWdodCx0LmZvbnRTaGFwZSkpfX10aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgdHlwZTogIityKyIgaW4gbWFrZU9yZCIpfSxtYWtlR2x1ZTooZSx0KT0+e2NvbnN0IHI9UmUoWyJtc3BhY2UiXSxbXSx0KSxuPVAoZSx0KTtyZXR1cm4gci5zdHlsZS5tYXJnaW5SaWdodD1GKG4pLHJ9LHN0YXRpY1N2ZzpmdW5jdGlvbihlLHQpe2NvbnN0W3IsbixvXT1EZVtlXSxzPW5ldyBKKHIpLGk9bmV3IEsoW3NdLHt3aWR0aDpGKG4pLGhlaWdodDpGKG8pLHN0eWxlOiJ3aWR0aDoiK0Yobiksdmlld0JveDoiMCAwICIrMWUzKm4rIiAiKzFlMypvLHByZXNlcnZlQXNwZWN0UmF0aW86InhNaW5ZTWluIn0pLGE9SGUoWyJvdmVybGF5Il0sW2ldLHQpO3JldHVybiBhLmhlaWdodD1vLGEuc3R5bGUuaGVpZ2h0PUYobyksYS5zdHlsZS53aWR0aD1GKG4pLGF9LHN2Z0RhdGE6RGUsdHJ5Q29tYmluZUNoYXJzOmU9Pntmb3IobGV0IHQ9MDt0PGUubGVuZ3RoLTE7dCsrKXtjb25zdCByPWVbdF0sbj1lW3QrMV07ciBpbnN0YW5jZW9mIFomJm4gaW5zdGFuY2VvZiBaJiZxZShyLG4pJiYoci50ZXh0Kz1uLnRleHQsci5oZWlnaHQ9TWF0aC5tYXgoci5oZWlnaHQsbi5oZWlnaHQpLHIuZGVwdGg9TWF0aC5tYXgoci5kZXB0aCxuLmRlcHRoKSxyLml0YWxpYz1uLml0YWxpYyxlLnNwbGljZSh0KzEsMSksdC0tKX1yZXR1cm4gZX19O2NvbnN0IFBlPXtudW1iZXI6Myx1bml0OiJtdSJ9LEZlPXtudW1iZXI6NCx1bml0OiJtdSJ9LEdlPXtudW1iZXI6NSx1bml0OiJtdSJ9LFVlPXttb3JkOnttb3A6UGUsbWJpbjpGZSxtcmVsOkdlLG1pbm5lcjpQZX0sbW9wOnttb3JkOlBlLG1vcDpQZSxtcmVsOkdlLG1pbm5lcjpQZX0sbWJpbjp7bW9yZDpGZSxtb3A6RmUsbW9wZW46RmUsbWlubmVyOkZlfSxtcmVsOnttb3JkOkdlLG1vcDpHZSxtb3BlbjpHZSxtaW5uZXI6R2V9LG1vcGVuOnt9LG1jbG9zZTp7bW9wOlBlLG1iaW46RmUsbXJlbDpHZSxtaW5uZXI6UGV9LG1wdW5jdDp7bW9yZDpQZSxtb3A6UGUsbXJlbDpHZSxtb3BlbjpQZSxtY2xvc2U6UGUsbXB1bmN0OlBlLG1pbm5lcjpQZX0sbWlubmVyOnttb3JkOlBlLG1vcDpQZSxtYmluOkZlLG1yZWw6R2UsbW9wZW46UGUsbXB1bmN0OlBlLG1pbm5lcjpQZX19LFllPXttb3JkOnttb3A6UGV9LG1vcDp7bW9yZDpQZSxtb3A6UGV9LG1iaW46e30sbXJlbDp7fSxtb3Blbjp7fSxtY2xvc2U6e21vcDpQZX0sbXB1bmN0Ont9LG1pbm5lcjp7bW9wOlBlfX0sWGU9e30sV2U9e30sX2U9e307ZnVuY3Rpb24gamUoZSl7bGV0e3R5cGU6dCxuYW1lczpyLHByb3BzOm4saGFuZGxlcjpvLGh0bWxCdWlsZGVyOnMsbWF0aG1sQnVpbGRlcjppfT1lO2NvbnN0IGE9e3R5cGU6dCxudW1BcmdzOm4ubnVtQXJncyxhcmdUeXBlczpuLmFyZ1R5cGVzLGFsbG93ZWRJbkFyZ3VtZW50OiEhbi5hbGxvd2VkSW5Bcmd1bWVudCxhbGxvd2VkSW5UZXh0OiEhbi5hbGxvd2VkSW5UZXh0LGFsbG93ZWRJbk1hdGg6dm9pZCAwPT09bi5hbGxvd2VkSW5NYXRofHxuLmFsbG93ZWRJbk1hdGgsbnVtT3B0aW9uYWxBcmdzOm4ubnVtT3B0aW9uYWxBcmdzfHwwLGluZml4OiEhbi5pbmZpeCxwcmltaXRpdmU6ISFuLnByaW1pdGl2ZSxoYW5kbGVyOm99O2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7KytlKVhlW3JbZV1dPWE7dCYmKHMmJihXZVt0XT1zKSxpJiYoX2VbdF09aSkpfWZ1bmN0aW9uICRlKGUpe2xldHt0eXBlOnQsaHRtbEJ1aWxkZXI6cixtYXRobWxCdWlsZGVyOm59PWU7amUoe3R5cGU6dCxuYW1lczpbXSxwcm9wczp7bnVtQXJnczowfSxoYW5kbGVyKCl7dGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgYmUgY2FsbGVkLiIpfSxodG1sQnVpbGRlcjpyLG1hdGhtbEJ1aWxkZXI6bn0pfWNvbnN0IFplPWZ1bmN0aW9uKGUpe3JldHVybiJvcmRncm91cCI9PT1lLnR5cGUmJjE9PT1lLmJvZHkubGVuZ3RoP2UuYm9keVswXTplfSxLZT1mdW5jdGlvbihlKXtyZXR1cm4ib3JkZ3JvdXAiPT09ZS50eXBlP2UuYm9keTpbZV19LEplPVZlLm1ha2VTcGFuLFFlPVsibGVmdG1vc3QiLCJtYmluIiwibW9wZW4iLCJtcmVsIiwibW9wIiwibXB1bmN0Il0sZXQ9WyJyaWdodG1vc3QiLCJtcmVsIiwibWNsb3NlIiwibXB1bmN0Il0sdHQ9e2Rpc3BsYXk6dy5ESVNQTEFZLHRleHQ6dy5URVhULHNjcmlwdDp3LlNDUklQVCxzY3JpcHRzY3JpcHQ6dy5TQ1JJUFRTQ1JJUFR9LHJ0PXttb3JkOiJtb3JkIixtb3A6Im1vcCIsbWJpbjoibWJpbiIsbXJlbDoibXJlbCIsbW9wZW46Im1vcGVuIixtY2xvc2U6Im1jbG9zZSIsbXB1bmN0OiJtcHVuY3QiLG1pbm5lcjoibWlubmVyIn0sbnQ9ZnVuY3Rpb24oZSx0LHIsbil7dm9pZCAwPT09biYmKG49W251bGwsbnVsbF0pO2NvbnN0IG89W107Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2NvbnN0IG49aHQoZVtyXSx0KTtpZihuIGluc3RhbmNlb2YgQSl7Y29uc3QgZT1uLmNoaWxkcmVuO28ucHVzaCguLi5lKX1lbHNlIG8ucHVzaChuKX1pZihWZS50cnlDb21iaW5lQ2hhcnMobyksIXIpcmV0dXJuIG87bGV0IHM9dDtpZigxPT09ZS5sZW5ndGgpe2NvbnN0IHI9ZVswXTsic2l6aW5nIj09PXIudHlwZT9zPXQuaGF2aW5nU2l6ZShyLnNpemUpOiJzdHlsaW5nIj09PXIudHlwZSYmKHM9dC5oYXZpbmdTdHlsZSh0dFtyLnN0eWxlXSkpfWNvbnN0IGk9SmUoW25bMF18fCJsZWZ0bW9zdCJdLFtdLHQpLGE9SmUoW25bMV18fCJyaWdodG1vc3QiXSxbXSx0KSxoPSJyb290Ij09PXI7cmV0dXJuIG90KG8sKChlLHQpPT57Y29uc3Qgcj10LmNsYXNzZXNbMF0sbj1lLmNsYXNzZXNbMF07Im1iaW4iPT09ciYmbC5jb250YWlucyhldCxuKT90LmNsYXNzZXNbMF09Im1vcmQiOiJtYmluIj09PW4mJmwuY29udGFpbnMoUWUscikmJihlLmNsYXNzZXNbMF09Im1vcmQiKX0pLHtub2RlOml9LGEsaCksb3QobywoKGUsdCk9Pntjb25zdCByPWF0KHQpLG49YXQoZSksbz1yJiZuP2UuaGFzQ2xhc3MoIm10aWdodCIpP1llW3JdW25dOlVlW3JdW25dOm51bGw7aWYobylyZXR1cm4gVmUubWFrZUdsdWUobyxzKX0pLHtub2RlOml9LGEsaCksb30sb3Q9ZnVuY3Rpb24oZSx0LHIsbixvKXtuJiZlLnB1c2gobik7bGV0IHM9MDtmb3IoO3M8ZS5sZW5ndGg7cysrKXtjb25zdCBuPWVbc10saT1zdChuKTtpZihpKXtvdChpLmNoaWxkcmVuLHQscixudWxsLG8pO2NvbnRpbnVlfWNvbnN0IGE9IW4uaGFzQ2xhc3MoIm1zcGFjZSIpO2lmKGEpe2NvbnN0IG89dChuLHIubm9kZSk7byYmKHIuaW5zZXJ0QWZ0ZXI/ci5pbnNlcnRBZnRlcihvKTooZS51bnNoaWZ0KG8pLHMrKykpfWE/ci5ub2RlPW46byYmbi5oYXNDbGFzcygibmV3bGluZSIpJiYoci5ub2RlPUplKFsibGVmdG1vc3QiXSkpLHIuaW5zZXJ0QWZ0ZXI9KHQ9PnI9PntlLnNwbGljZSh0KzEsMCxyKSxzKyt9KShzKX1uJiZlLnBvcCgpfSxzdD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEF8fGUgaW5zdGFuY2VvZiBffHxlIGluc3RhbmNlb2YgVyYmZS5oYXNDbGFzcygiZW5jbG9zaW5nIik/ZTpudWxsfSxpdD1mdW5jdGlvbihlLHQpe2NvbnN0IHI9c3QoZSk7aWYocil7Y29uc3QgZT1yLmNoaWxkcmVuO2lmKGUubGVuZ3RoKXtpZigicmlnaHQiPT09dClyZXR1cm4gaXQoZVtlLmxlbmd0aC0xXSwicmlnaHQiKTtpZigibGVmdCI9PT10KXJldHVybiBpdChlWzBdLCJsZWZ0Iil9fXJldHVybiBlfSxhdD1mdW5jdGlvbihlLHQpe3JldHVybiBlPyh0JiYoZT1pdChlLHQpKSxydFtlLmNsYXNzZXNbMF1dfHxudWxsKTpudWxsfSxsdD1mdW5jdGlvbihlLHQpe2NvbnN0IHI9WyJudWxsZGVsaW1pdGVyIl0uY29uY2F0KGUuYmFzZVNpemluZ0NsYXNzZXMoKSk7cmV0dXJuIEplKHQuY29uY2F0KHIpKX0saHQ9ZnVuY3Rpb24oZSx0LHIpe2lmKCFlKXJldHVybiBKZSgpO2lmKFdlW2UudHlwZV0pe2xldCBuPVdlW2UudHlwZV0oZSx0KTtpZihyJiZ0LnNpemUhPT1yLnNpemUpe249SmUodC5zaXppbmdDbGFzc2VzKHIpLFtuXSx0KTtjb25zdCBlPXQuc2l6ZU11bHRpcGxpZXIvci5zaXplTXVsdGlwbGllcjtuLmhlaWdodCo9ZSxuLmRlcHRoKj1lfXJldHVybiBufXRocm93IG5ldyBuKCJHb3QgZ3JvdXAgb2YgdW5rbm93biB0eXBlOiAnIitlLnR5cGUrIiciKX07ZnVuY3Rpb24gY3QoZSx0KXtjb25zdCByPUplKFsiYmFzZSJdLGUsdCksbj1KZShbInN0cnV0Il0pO3JldHVybiBuLnN0eWxlLmhlaWdodD1GKHIuaGVpZ2h0K3IuZGVwdGgpLHIuZGVwdGgmJihuLnN0eWxlLnZlcnRpY2FsQWxpZ249Rigtci5kZXB0aCkpLHIuY2hpbGRyZW4udW5zaGlmdChuKSxyfWZ1bmN0aW9uIG10KGUsdCl7bGV0IHI9bnVsbDsxPT09ZS5sZW5ndGgmJiJ0YWciPT09ZVswXS50eXBlJiYocj1lWzBdLnRhZyxlPWVbMF0uYm9keSk7Y29uc3Qgbj1udChlLHQsInJvb3QiKTtsZXQgbzsyPT09bi5sZW5ndGgmJm5bMV0uaGFzQ2xhc3MoInRhZyIpJiYobz1uLnBvcCgpKTtjb25zdCBzPVtdO2xldCBpLGE9W107Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspaWYoYS5wdXNoKG5bZV0pLG5bZV0uaGFzQ2xhc3MoIm1iaW4iKXx8bltlXS5oYXNDbGFzcygibXJlbCIpfHxuW2VdLmhhc0NsYXNzKCJhbGxvd2JyZWFrIikpe2xldCByPSExO2Zvcig7ZTxuLmxlbmd0aC0xJiZuW2UrMV0uaGFzQ2xhc3MoIm1zcGFjZSIpJiYhbltlKzFdLmhhc0NsYXNzKCJuZXdsaW5lIik7KWUrKyxhLnB1c2gobltlXSksbltlXS5oYXNDbGFzcygibm9icmVhayIpJiYocj0hMCk7cnx8KHMucHVzaChjdChhLHQpKSxhPVtdKX1lbHNlIG5bZV0uaGFzQ2xhc3MoIm5ld2xpbmUiKSYmKGEucG9wKCksYS5sZW5ndGg+MCYmKHMucHVzaChjdChhLHQpKSxhPVtdKSxzLnB1c2gobltlXSkpO2EubGVuZ3RoPjAmJnMucHVzaChjdChhLHQpKSxyPyhpPWN0KG50KHIsdCwhMCkpLGkuY2xhc3Nlcz1bInRhZyJdLHMucHVzaChpKSk6byYmcy5wdXNoKG8pO2NvbnN0IGw9SmUoWyJrYXRleC1odG1sIl0scyk7aWYobC5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLGkpe2NvbnN0IGU9aS5jaGlsZHJlblswXTtlLnN0eWxlLmhlaWdodD1GKGwuaGVpZ2h0K2wuZGVwdGgpLGwuZGVwdGgmJihlLnN0eWxlLnZlcnRpY2FsQWxpZ249RigtbC5kZXB0aCkpfXJldHVybiBsfWZ1bmN0aW9uIHB0KGUpe3JldHVybiBuZXcgQShlKX1jbGFzcyB1dHtjb25zdHJ1Y3RvcihlLHQscil7dGhpcy50eXBlPXZvaWQgMCx0aGlzLmF0dHJpYnV0ZXM9dm9pZCAwLHRoaXMuY2hpbGRyZW49dm9pZCAwLHRoaXMuY2xhc3Nlcz12b2lkIDAsdGhpcy50eXBlPWUsdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMuY2hpbGRyZW49dHx8W10sdGhpcy5jbGFzc2VzPXJ8fFtdfXNldEF0dHJpYnV0ZShlLHQpe3RoaXMuYXR0cmlidXRlc1tlXT10fWdldEF0dHJpYnV0ZShlKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW2VdfXRvTm9kZSgpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIix0aGlzLnR5cGUpO2Zvcihjb25zdCB0IGluIHRoaXMuYXR0cmlidXRlcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLHQpJiZlLnNldEF0dHJpYnV0ZSh0LHRoaXMuYXR0cmlidXRlc1t0XSk7dGhpcy5jbGFzc2VzLmxlbmd0aD4wJiYoZS5jbGFzc05hbWU9Ryh0aGlzLmNsYXNzZXMpKTtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrKyllLmFwcGVuZENoaWxkKHRoaXMuY2hpbGRyZW5bdF0udG9Ob2RlKCkpO3JldHVybiBlfXRvTWFya3VwKCl7bGV0IGU9IjwiK3RoaXMudHlwZTtmb3IoY29uc3QgdCBpbiB0aGlzLmF0dHJpYnV0ZXMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcyx0KSYmKGUrPSIgIit0Kyc9IicsZSs9bC5lc2NhcGUodGhpcy5hdHRyaWJ1dGVzW3RdKSxlKz0nIicpO3RoaXMuY2xhc3Nlcy5sZW5ndGg+MCYmKGUrPScgY2xhc3MgPSInK2wuZXNjYXBlKEcodGhpcy5jbGFzc2VzKSkrJyInKSxlKz0iPiI7Zm9yKGxldCB0PTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0KyspZSs9dGhpcy5jaGlsZHJlblt0XS50b01hcmt1cCgpO3JldHVybiBlKz0iPC8iK3RoaXMudHlwZSsiPiIsZX10b1RleHQoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5tYXAoKGU9PmUudG9UZXh0KCkpKS5qb2luKCIiKX19Y2xhc3MgZHR7Y29uc3RydWN0b3IoZSl7dGhpcy50ZXh0PXZvaWQgMCx0aGlzLnRleHQ9ZX10b05vZGUoKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy50ZXh0KX10b01hcmt1cCgpe3JldHVybiBsLmVzY2FwZSh0aGlzLnRvVGV4dCgpKX10b1RleHQoKXtyZXR1cm4gdGhpcy50ZXh0fX12YXIgZ3Q9e01hdGhOb2RlOnV0LFRleHROb2RlOmR0LFNwYWNlTm9kZTpjbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLndpZHRoPXZvaWQgMCx0aGlzLmNoYXJhY3Rlcj12b2lkIDAsdGhpcy53aWR0aD1lLHRoaXMuY2hhcmFjdGVyPWU+PS4wNTU1NSYmZTw9LjA1NTU2PyJcdTIwMGEiOmU+PS4xNjY2JiZlPD0uMTY2Nz8iXHUyMDA5IjplPj0uMjIyMiYmZTw9LjIyMjM/Ilx1MjAwNSI6ZT49LjI3NzcmJmU8PS4yNzc4PyJcdTIwMDVcdTIwMGEiOmU+PS0uMDU1NTYmJmU8PS0uMDU1NTU/Ilx1MjAwYVx1MjA2MyI6ZT49LS4xNjY3JiZlPD0tLjE2NjY/Ilx1MjAwOVx1MjA2MyI6ZT49LS4yMjIzJiZlPD0tLjIyMjI/Ilx1MjA1Zlx1MjA2MyI6ZT49LS4yNzc4JiZlPD0tLjI3Nzc/Ilx1MjAwNVx1MjA2MyI6bnVsbH10b05vZGUoKXtpZih0aGlzLmNoYXJhY3RlcilyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5jaGFyYWN0ZXIpO3tjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsIm1zcGFjZSIpO3JldHVybiBlLnNldEF0dHJpYnV0ZSgid2lkdGgiLEYodGhpcy53aWR0aCkpLGV9fXRvTWFya3VwKCl7cmV0dXJuIHRoaXMuY2hhcmFjdGVyPyI8bXRleHQ+Iit0aGlzLmNoYXJhY3RlcisiPC9tdGV4dD4iOic8bXNwYWNlIHdpZHRoPSInK0YodGhpcy53aWR0aCkrJyIvPid9dG9UZXh0KCl7cmV0dXJuIHRoaXMuY2hhcmFjdGVyP3RoaXMuY2hhcmFjdGVyOiIgIn19LG5ld0RvY3VtZW50RnJhZ21lbnQ6cHR9O2NvbnN0IGZ0PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4hb2VbdF1bZV18fCFvZVt0XVtlXS5yZXBsYWNlfHw1NTM0OT09PWUuY2hhckNvZGVBdCgwKXx8dmUuaGFzT3duUHJvcGVydHkoZSkmJnImJihyLmZvbnRGYW1pbHkmJiJ0dCI9PT1yLmZvbnRGYW1pbHkuc2xpY2UoNCw2KXx8ci5mb250JiYidHQiPT09ci5mb250LnNsaWNlKDQsNikpfHwoZT1vZVt0XVtlXS5yZXBsYWNlKSxuZXcgZ3QuVGV4dE5vZGUoZSl9LGJ0PWZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5sZW5ndGg/ZVswXTpuZXcgZ3QuTWF0aE5vZGUoIm1yb3ciLGUpfSx5dD1mdW5jdGlvbihlLHQpe2lmKCJ0ZXh0dHQiPT09dC5mb250RmFtaWx5KXJldHVybiJtb25vc3BhY2UiO2lmKCJ0ZXh0c2YiPT09dC5mb250RmFtaWx5KXJldHVybiJ0ZXh0aXQiPT09dC5mb250U2hhcGUmJiJ0ZXh0YmYiPT09dC5mb250V2VpZ2h0PyJzYW5zLXNlcmlmLWJvbGQtaXRhbGljIjoidGV4dGl0Ij09PXQuZm9udFNoYXBlPyJzYW5zLXNlcmlmLWl0YWxpYyI6InRleHRiZiI9PT10LmZvbnRXZWlnaHQ/ImJvbGQtc2Fucy1zZXJpZiI6InNhbnMtc2VyaWYiO2lmKCJ0ZXh0aXQiPT09dC5mb250U2hhcGUmJiJ0ZXh0YmYiPT09dC5mb250V2VpZ2h0KXJldHVybiJib2xkLWl0YWxpYyI7aWYoInRleHRpdCI9PT10LmZvbnRTaGFwZSlyZXR1cm4iaXRhbGljIjtpZigidGV4dGJmIj09PXQuZm9udFdlaWdodClyZXR1cm4iYm9sZCI7Y29uc3Qgcj10LmZvbnQ7aWYoIXJ8fCJtYXRobm9ybWFsIj09PXIpcmV0dXJuIG51bGw7Y29uc3Qgbj1lLm1vZGU7aWYoIm1hdGhpdCI9PT1yKXJldHVybiJpdGFsaWMiO2lmKCJib2xkc3ltYm9sIj09PXIpcmV0dXJuInRleHRvcmQiPT09ZS50eXBlPyJib2xkIjoiYm9sZC1pdGFsaWMiO2lmKCJtYXRoYmYiPT09cilyZXR1cm4iYm9sZCI7aWYoIm1hdGhiYiI9PT1yKXJldHVybiJkb3VibGUtc3RydWNrIjtpZigibWF0aGZyYWsiPT09cilyZXR1cm4iZnJha3R1ciI7aWYoIm1hdGhzY3IiPT09cnx8Im1hdGhjYWwiPT09cilyZXR1cm4ic2NyaXB0IjtpZigibWF0aHNmIj09PXIpcmV0dXJuInNhbnMtc2VyaWYiO2lmKCJtYXRodHQiPT09cilyZXR1cm4ibW9ub3NwYWNlIjtsZXQgbz1lLnRleHQ7aWYobC5jb250YWlucyhbIlxcaW1hdGgiLCJcXGptYXRoIl0sbykpcmV0dXJuIG51bGw7b2Vbbl1bb10mJm9lW25dW29dLnJlcGxhY2UmJihvPW9lW25dW29dLnJlcGxhY2UpO3JldHVybiBOKG8sVmUuZm9udE1hcFtyXS5mb250TmFtZSxuKT9WZS5mb250TWFwW3JdLnZhcmlhbnQ6bnVsbH0seHQ9ZnVuY3Rpb24oZSx0LHIpe2lmKDE9PT1lLmxlbmd0aCl7Y29uc3Qgbj12dChlWzBdLHQpO3JldHVybiByJiZuIGluc3RhbmNlb2YgdXQmJiJtbyI9PT1uLnR5cGUmJihuLnNldEF0dHJpYnV0ZSgibHNwYWNlIiwiMGVtIiksbi5zZXRBdHRyaWJ1dGUoInJzcGFjZSIsIjBlbSIpKSxbbl19Y29uc3Qgbj1bXTtsZXQgbztmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7Y29uc3Qgcz12dChlW3JdLHQpO2lmKHMgaW5zdGFuY2VvZiB1dCYmbyBpbnN0YW5jZW9mIHV0KXtpZigibXRleHQiPT09cy50eXBlJiYibXRleHQiPT09by50eXBlJiZzLmdldEF0dHJpYnV0ZSgibWF0aHZhcmlhbnQiKT09PW8uZ2V0QXR0cmlidXRlKCJtYXRodmFyaWFudCIpKXtvLmNoaWxkcmVuLnB1c2goLi4ucy5jaGlsZHJlbik7Y29udGludWV9aWYoIm1uIj09PXMudHlwZSYmIm1uIj09PW8udHlwZSl7by5jaGlsZHJlbi5wdXNoKC4uLnMuY2hpbGRyZW4pO2NvbnRpbnVlfWlmKCJtaSI9PT1zLnR5cGUmJjE9PT1zLmNoaWxkcmVuLmxlbmd0aCYmIm1uIj09PW8udHlwZSl7Y29uc3QgZT1zLmNoaWxkcmVuWzBdO2lmKGUgaW5zdGFuY2VvZiBkdCYmIi4iPT09ZS50ZXh0KXtvLmNoaWxkcmVuLnB1c2goLi4ucy5jaGlsZHJlbik7Y29udGludWV9fWVsc2UgaWYoIm1pIj09PW8udHlwZSYmMT09PW8uY2hpbGRyZW4ubGVuZ3RoKXtjb25zdCBlPW8uY2hpbGRyZW5bMF07aWYoZSBpbnN0YW5jZW9mIGR0JiYiXHUwMzM4Ij09PWUudGV4dCYmKCJtbyI9PT1zLnR5cGV8fCJtaSI9PT1zLnR5cGV8fCJtbiI9PT1zLnR5cGUpKXtjb25zdCBlPXMuY2hpbGRyZW5bMF07ZSBpbnN0YW5jZW9mIGR0JiZlLnRleHQubGVuZ3RoPjAmJihlLnRleHQ9ZS50ZXh0LnNsaWNlKDAsMSkrIlx1MDMzOCIrZS50ZXh0LnNsaWNlKDEpLG4ucG9wKCkpfX19bi5wdXNoKHMpLG89c31yZXR1cm4gbn0sd3Q9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBidCh4dChlLHQscikpfSx2dD1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiBuZXcgZ3QuTWF0aE5vZGUoIm1yb3ciKTtpZihfZVtlLnR5cGVdKXtyZXR1cm4gX2VbZS50eXBlXShlLHQpfXRocm93IG5ldyBuKCJHb3QgZ3JvdXAgb2YgdW5rbm93biB0eXBlOiAnIitlLnR5cGUrIiciKX07ZnVuY3Rpb24ga3QoZSx0LHIsbixvKXtjb25zdCBzPXh0KGUscik7bGV0IGk7aT0xPT09cy5sZW5ndGgmJnNbMF1pbnN0YW5jZW9mIHV0JiZsLmNvbnRhaW5zKFsibXJvdyIsIm10YWJsZSJdLHNbMF0udHlwZSk/c1swXTpuZXcgZ3QuTWF0aE5vZGUoIm1yb3ciLHMpO2NvbnN0IGE9bmV3IGd0Lk1hdGhOb2RlKCJhbm5vdGF0aW9uIixbbmV3IGd0LlRleHROb2RlKHQpXSk7YS5zZXRBdHRyaWJ1dGUoImVuY29kaW5nIiwiYXBwbGljYXRpb24veC10ZXgiKTtjb25zdCBoPW5ldyBndC5NYXRoTm9kZSgic2VtYW50aWNzIixbaSxhXSksYz1uZXcgZ3QuTWF0aE5vZGUoIm1hdGgiLFtoXSk7Yy5zZXRBdHRyaWJ1dGUoInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIpLG4mJmMuc2V0QXR0cmlidXRlKCJkaXNwbGF5IiwiYmxvY2siKTtjb25zdCBtPW8/ImthdGV4Ijoia2F0ZXgtbWF0aG1sIjtyZXR1cm4gVmUubWFrZVNwYW4oW21dLFtjXSl9Y29uc3QgU3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBFKHtzdHlsZTplLmRpc3BsYXlNb2RlP3cuRElTUExBWTp3LlRFWFQsbWF4U2l6ZTplLm1heFNpemUsbWluUnVsZVRoaWNrbmVzczplLm1pblJ1bGVUaGlja25lc3N9KX0sTXQ9ZnVuY3Rpb24oZSx0KXtpZih0LmRpc3BsYXlNb2RlKXtjb25zdCByPVsia2F0ZXgtZGlzcGxheSJdO3QubGVxbm8mJnIucHVzaCgibGVxbm8iKSx0LmZsZXFuJiZyLnB1c2goImZsZXFuIiksZT1WZS5tYWtlU3BhbihyLFtlXSl9cmV0dXJuIGV9LHp0PWZ1bmN0aW9uKGUsdCxyKXtjb25zdCBuPVN0KHIpO2xldCBvO2lmKCJtYXRobWwiPT09ci5vdXRwdXQpcmV0dXJuIGt0KGUsdCxuLHIuZGlzcGxheU1vZGUsITApO2lmKCJodG1sIj09PXIub3V0cHV0KXtjb25zdCB0PW10KGUsbik7bz1WZS5tYWtlU3BhbihbImthdGV4Il0sW3RdKX1lbHNle2NvbnN0IHM9a3QoZSx0LG4sci5kaXNwbGF5TW9kZSwhMSksaT1tdChlLG4pO289VmUubWFrZVNwYW4oWyJrYXRleCJdLFtzLGldKX1yZXR1cm4gTXQobyxyKX07Y29uc3QgQXQ9e3dpZGVoYXQ6Il4iLHdpZGVjaGVjazoiXHUwMmM3Iix3aWRldGlsZGU6In4iLHV0aWxkZToifiIsb3ZlcmxlZnRhcnJvdzoiXHUyMTkwIix1bmRlcmxlZnRhcnJvdzoiXHUyMTkwIix4bGVmdGFycm93OiJcdTIxOTAiLG92ZXJyaWdodGFycm93OiJcdTIxOTIiLHVuZGVycmlnaHRhcnJvdzoiXHUyMTkyIix4cmlnaHRhcnJvdzoiXHUyMTkyIix1bmRlcmJyYWNlOiJcdTIzZGYiLG92ZXJicmFjZToiXHUyM2RlIixvdmVyZ3JvdXA6Ilx1MjNlMCIsdW5kZXJncm91cDoiXHUyM2UxIixvdmVybGVmdHJpZ2h0YXJyb3c6Ilx1MjE5NCIsdW5kZXJsZWZ0cmlnaHRhcnJvdzoiXHUyMTk0Iix4bGVmdHJpZ2h0YXJyb3c6Ilx1MjE5NCIsT3ZlcnJpZ2h0YXJyb3c6Ilx1MjFkMiIseFJpZ2h0YXJyb3c6Ilx1MjFkMiIsb3ZlcmxlZnRoYXJwb29uOiJcdTIxYmMiLHhsZWZ0aGFycG9vbnVwOiJcdTIxYmMiLG92ZXJyaWdodGhhcnBvb246Ilx1MjFjMCIseHJpZ2h0aGFycG9vbnVwOiJcdTIxYzAiLHhMZWZ0YXJyb3c6Ilx1MjFkMCIseExlZnRyaWdodGFycm93OiJcdTIxZDQiLHhob29rbGVmdGFycm93OiJcdTIxYTkiLHhob29rcmlnaHRhcnJvdzoiXHUyMWFhIix4bWFwc3RvOiJcdTIxYTYiLHhyaWdodGhhcnBvb25kb3duOiJcdTIxYzEiLHhsZWZ0aGFycG9vbmRvd246Ilx1MjFiZCIseHJpZ2h0bGVmdGhhcnBvb25zOiJcdTIxY2MiLHhsZWZ0cmlnaHRoYXJwb29uczoiXHUyMWNiIix4dHdvaGVhZGxlZnRhcnJvdzoiXHUyMTllIix4dHdvaGVhZHJpZ2h0YXJyb3c6Ilx1MjFhMCIseGxvbmdlcXVhbDoiPSIseHRvZnJvbToiXHUyMWM0Iix4cmlnaHRsZWZ0YXJyb3dzOiJcdTIxYzQiLHhyaWdodGVxdWlsaWJyaXVtOiJcdTIxY2MiLHhsZWZ0ZXF1aWxpYnJpdW06Ilx1MjFjYiIsIlxcY2RyaWdodGFycm93IjoiXHUyMTkyIiwiXFxjZGxlZnRhcnJvdyI6Ilx1MjE5MCIsIlxcY2Rsb25nZXF1YWwiOiI9In0sVHQ9e292ZXJyaWdodGFycm93OltbInJpZ2h0YXJyb3ciXSwuODg4LDUyMiwieE1heFlNaW4iXSxvdmVybGVmdGFycm93OltbImxlZnRhcnJvdyJdLC44ODgsNTIyLCJ4TWluWU1pbiJdLHVuZGVycmlnaHRhcnJvdzpbWyJyaWdodGFycm93Il0sLjg4OCw1MjIsInhNYXhZTWluIl0sdW5kZXJsZWZ0YXJyb3c6W1sibGVmdGFycm93Il0sLjg4OCw1MjIsInhNaW5ZTWluIl0seHJpZ2h0YXJyb3c6W1sicmlnaHRhcnJvdyJdLDEuNDY5LDUyMiwieE1heFlNaW4iXSwiXFxjZHJpZ2h0YXJyb3ciOltbInJpZ2h0YXJyb3ciXSwzLDUyMiwieE1heFlNaW4iXSx4bGVmdGFycm93OltbImxlZnRhcnJvdyJdLDEuNDY5LDUyMiwieE1pbllNaW4iXSwiXFxjZGxlZnRhcnJvdyI6W1sibGVmdGFycm93Il0sMyw1MjIsInhNaW5ZTWluIl0sT3ZlcnJpZ2h0YXJyb3c6W1siZG91YmxlcmlnaHRhcnJvdyJdLC44ODgsNTYwLCJ4TWF4WU1pbiJdLHhSaWdodGFycm93OltbImRvdWJsZXJpZ2h0YXJyb3ciXSwxLjUyNiw1NjAsInhNYXhZTWluIl0seExlZnRhcnJvdzpbWyJkb3VibGVsZWZ0YXJyb3ciXSwxLjUyNiw1NjAsInhNaW5ZTWluIl0sb3ZlcmxlZnRoYXJwb29uOltbImxlZnRoYXJwb29uIl0sLjg4OCw1MjIsInhNaW5ZTWluIl0seGxlZnRoYXJwb29udXA6W1sibGVmdGhhcnBvb24iXSwuODg4LDUyMiwieE1pbllNaW4iXSx4bGVmdGhhcnBvb25kb3duOltbImxlZnRoYXJwb29uZG93biJdLC44ODgsNTIyLCJ4TWluWU1pbiJdLG92ZXJyaWdodGhhcnBvb246W1sicmlnaHRoYXJwb29uIl0sLjg4OCw1MjIsInhNYXhZTWluIl0seHJpZ2h0aGFycG9vbnVwOltbInJpZ2h0aGFycG9vbiJdLC44ODgsNTIyLCJ4TWF4WU1pbiJdLHhyaWdodGhhcnBvb25kb3duOltbInJpZ2h0aGFycG9vbmRvd24iXSwuODg4LDUyMiwieE1heFlNaW4iXSx4bG9uZ2VxdWFsOltbImxvbmdlcXVhbCJdLC44ODgsMzM0LCJ4TWluWU1pbiJdLCJcXGNkbG9uZ2VxdWFsIjpbWyJsb25nZXF1YWwiXSwzLDMzNCwieE1pbllNaW4iXSx4dHdvaGVhZGxlZnRhcnJvdzpbWyJ0d29oZWFkbGVmdGFycm93Il0sLjg4OCwzMzQsInhNaW5ZTWluIl0seHR3b2hlYWRyaWdodGFycm93OltbInR3b2hlYWRyaWdodGFycm93Il0sLjg4OCwzMzQsInhNYXhZTWluIl0sb3ZlcmxlZnRyaWdodGFycm93OltbImxlZnRhcnJvdyIsInJpZ2h0YXJyb3ciXSwuODg4LDUyMl0sb3ZlcmJyYWNlOltbImxlZnRicmFjZSIsIm1pZGJyYWNlIiwicmlnaHRicmFjZSJdLDEuNiw1NDhdLHVuZGVyYnJhY2U6W1sibGVmdGJyYWNldW5kZXIiLCJtaWRicmFjZXVuZGVyIiwicmlnaHRicmFjZXVuZGVyIl0sMS42LDU0OF0sdW5kZXJsZWZ0cmlnaHRhcnJvdzpbWyJsZWZ0YXJyb3ciLCJyaWdodGFycm93Il0sLjg4OCw1MjJdLHhsZWZ0cmlnaHRhcnJvdzpbWyJsZWZ0YXJyb3ciLCJyaWdodGFycm93Il0sMS43NSw1MjJdLHhMZWZ0cmlnaHRhcnJvdzpbWyJkb3VibGVsZWZ0YXJyb3ciLCJkb3VibGVyaWdodGFycm93Il0sMS43NSw1NjBdLHhyaWdodGxlZnRoYXJwb29uczpbWyJsZWZ0aGFycG9vbmRvd25wbHVzIiwicmlnaHRoYXJwb29ucGx1cyJdLDEuNzUsNzE2XSx4bGVmdHJpZ2h0aGFycG9vbnM6W1sibGVmdGhhcnBvb25wbHVzIiwicmlnaHRoYXJwb29uZG93bnBsdXMiXSwxLjc1LDcxNl0seGhvb2tsZWZ0YXJyb3c6W1sibGVmdGFycm93IiwicmlnaHRob29rIl0sMS4wOCw1MjJdLHhob29rcmlnaHRhcnJvdzpbWyJsZWZ0aG9vayIsInJpZ2h0YXJyb3ciXSwxLjA4LDUyMl0sb3ZlcmxpbmVzZWdtZW50OltbImxlZnRsaW5lc2VnbWVudCIsInJpZ2h0bGluZXNlZ21lbnQiXSwuODg4LDUyMl0sdW5kZXJsaW5lc2VnbWVudDpbWyJsZWZ0bGluZXNlZ21lbnQiLCJyaWdodGxpbmVzZWdtZW50Il0sLjg4OCw1MjJdLG92ZXJncm91cDpbWyJsZWZ0Z3JvdXAiLCJyaWdodGdyb3VwIl0sLjg4OCwzNDJdLHVuZGVyZ3JvdXA6W1sibGVmdGdyb3VwdW5kZXIiLCJyaWdodGdyb3VwdW5kZXIiXSwuODg4LDM0Ml0seG1hcHN0bzpbWyJsZWZ0bWFwc3RvIiwicmlnaHRhcnJvdyJdLDEuNSw1MjJdLHh0b2Zyb206W1sibGVmdFRvRnJvbSIsInJpZ2h0VG9Gcm9tIl0sMS43NSw1MjhdLHhyaWdodGxlZnRhcnJvd3M6W1siYmFyYWJvdmVsZWZ0YXJyb3ciLCJyaWdodGFycm93YWJvdmViYXIiXSwxLjc1LDkwMV0seHJpZ2h0ZXF1aWxpYnJpdW06W1siYmFyYWJvdmVzaG9ydGxlZnRoYXJwb29uIiwicmlnaHRoYXJwb29uYWJvdmVzaG9ydGJhciJdLDEuNzUsNzE2XSx4bGVmdGVxdWlsaWJyaXVtOltbInNob3J0YmFyYWJvdmVsZWZ0aGFycG9vbiIsInNob3J0cmlnaHRoYXJwb29uYWJvdmViYXIiXSwxLjc1LDcxNl19O3ZhciBCdD1mdW5jdGlvbihlLHQscixuLG8pe2xldCBzO2NvbnN0IGk9ZS5oZWlnaHQrZS5kZXB0aCtyK247aWYoL2Zib3h8Y29sb3J8YW5nbC8udGVzdCh0KSl7aWYocz1WZS5tYWtlU3BhbihbInN0cmV0Y2h5Iix0XSxbXSxvKSwiZmJveCI9PT10KXtjb25zdCBlPW8uY29sb3ImJm8uZ2V0Q29sb3IoKTtlJiYocy5zdHlsZS5ib3JkZXJDb2xvcj1lKX19ZWxzZXtjb25zdCBlPVtdOy9eW2J4XWNhbmNlbCQvLnRlc3QodCkmJmUucHVzaChuZXcgUSh7eDE6IjAiLHkxOiIwIix4MjoiMTAwJSIseTI6IjEwMCUiLCJzdHJva2Utd2lkdGgiOiIwLjA0NmVtIn0pKSwvXng/Y2FuY2VsJC8udGVzdCh0KSYmZS5wdXNoKG5ldyBRKHt4MToiMCIseTE6IjEwMCUiLHgyOiIxMDAlIix5MjoiMCIsInN0cm9rZS13aWR0aCI6IjAuMDQ2ZW0ifSkpO2NvbnN0IHI9bmV3IEsoZSx7d2lkdGg6IjEwMCUiLGhlaWdodDpGKGkpfSk7cz1WZS5tYWtlU3ZnU3BhbihbXSxbcl0sbyl9cmV0dXJuIHMuaGVpZ2h0PWkscy5zdHlsZS5oZWlnaHQ9RihpKSxzfSxDdD1mdW5jdGlvbihlKXtjb25zdCB0PW5ldyBndC5NYXRoTm9kZSgibW8iLFtuZXcgZ3QuVGV4dE5vZGUoQXRbZS5yZXBsYWNlKC9eXFwvLCIiKV0pXSk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJzdHJldGNoeSIsInRydWUiKSx0fSxOdD1mdW5jdGlvbihlLHQpe2NvbnN0e3NwYW46cixtaW5XaWR0aDpuLGhlaWdodDpvfT1mdW5jdGlvbigpe2xldCByPTRlNTtjb25zdCBuPWUubGFiZWwuc2xpY2UoMSk7aWYobC5jb250YWlucyhbIndpZGVoYXQiLCJ3aWRlY2hlY2siLCJ3aWRldGlsZGUiLCJ1dGlsZGUiXSxuKSl7Y29uc3Qgcz0ib3JkZ3JvdXAiPT09KG89ZS5iYXNlKS50eXBlP28uYm9keS5sZW5ndGg6MTtsZXQgaSxhLGw7aWYocz41KSJ3aWRlaGF0Ij09PW58fCJ3aWRlY2hlY2siPT09bj8oaT00MjAscj0yMzY0LGw9LjQyLGE9bisiNCIpOihpPTMxMixyPTIzNDAsbD0uMzQsYT0idGlsZGU0Iik7ZWxzZXtjb25zdCBlPVsxLDEsMiwyLDMsM11bc107IndpZGVoYXQiPT09bnx8IndpZGVjaGVjayI9PT1uPyhyPVswLDEwNjIsMjM2NCwyMzY0LDIzNjRdW2VdLGk9WzAsMjM5LDMwMCwzNjAsNDIwXVtlXSxsPVswLC4yNCwuMywuMywuMzYsLjQyXVtlXSxhPW4rZSk6KHI9WzAsNjAwLDEwMzMsMjMzOSwyMzQwXVtlXSxpPVswLDI2MCwyODYsMzA2LDMxMl1bZV0sbD1bMCwuMjYsLjI4NiwuMywuMzA2LC4zNF1bZV0sYT0idGlsZGUiK2UpfWNvbnN0IGg9bmV3IEooYSksYz1uZXcgSyhbaF0se3dpZHRoOiIxMDAlIixoZWlnaHQ6RihsKSx2aWV3Qm94OiIwIDAgIityKyIgIitpLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSk7cmV0dXJue3NwYW46VmUubWFrZVN2Z1NwYW4oW10sW2NdLHQpLG1pbldpZHRoOjAsaGVpZ2h0Omx9fXtjb25zdCBlPVtdLG89VHRbbl0sW3MsaSxhXT1vLGw9YS8xZTMsaD1zLmxlbmd0aDtsZXQgYyxtO2lmKDE9PT1oKXtjPVsiaGlkZS10YWlsIl0sbT1bb1szXV19ZWxzZSBpZigyPT09aCljPVsiaGFsZmFycm93LWxlZnQiLCJoYWxmYXJyb3ctcmlnaHQiXSxtPVsieE1pbllNaW4iLCJ4TWF4WU1pbiJdO2Vsc2V7aWYoMyE9PWgpdGhyb3cgbmV3IEVycm9yKCJDb3JyZWN0IGthdGV4SW1hZ2VzRGF0YSBvciB1cGRhdGUgY29kZSBoZXJlIHRvIHN1cHBvcnRcbiAgICAgICAgICAgICAgICAgICAgIitoKyIgY2hpbGRyZW4uIik7Yz1bImJyYWNlLWxlZnQiLCJicmFjZS1jZW50ZXIiLCJicmFjZS1yaWdodCJdLG09WyJ4TWluWU1pbiIsInhNaWRZTWluIiwieE1heFlNaW4iXX1mb3IobGV0IG49MDtuPGg7bisrKXtjb25zdCBvPW5ldyBKKHNbbl0pLHA9bmV3IEsoW29dLHt3aWR0aDoiNDAwZW0iLGhlaWdodDpGKGwpLHZpZXdCb3g6IjAgMCAiK3IrIiAiK2EscHJlc2VydmVBc3BlY3RSYXRpbzptW25dKyIgc2xpY2UifSksdT1WZS5tYWtlU3ZnU3BhbihbY1tuXV0sW3BdLHQpO2lmKDE9PT1oKXJldHVybntzcGFuOnUsbWluV2lkdGg6aSxoZWlnaHQ6bH07dS5zdHlsZS5oZWlnaHQ9RihsKSxlLnB1c2godSl9cmV0dXJue3NwYW46VmUubWFrZVNwYW4oWyJzdHJldGNoeSJdLGUsdCksbWluV2lkdGg6aSxoZWlnaHQ6bH19dmFyIG99KCk7cmV0dXJuIHIuaGVpZ2h0PW8sci5zdHlsZS5oZWlnaHQ9RihvKSxuPjAmJihyLnN0eWxlLm1pbldpZHRoPUYobikpLHJ9O2Z1bmN0aW9uIHF0KGUsdCl7aWYoIWV8fGUudHlwZSE9PXQpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBub2RlIG9mIHR5cGUgIit0KyIsIGJ1dCBnb3QgIisoZT8ibm9kZSBvZiB0eXBlICIrZS50eXBlOlN0cmluZyhlKSkpO3JldHVybiBlfWZ1bmN0aW9uIEl0KGUpe2NvbnN0IHQ9UnQoZSk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBub2RlIG9mIHN5bWJvbCBncm91cCB0eXBlLCBidXQgZ290ICIrKGU/Im5vZGUgb2YgdHlwZSAiK2UudHlwZTpTdHJpbmcoZSkpKTtyZXR1cm4gdH1mdW5jdGlvbiBSdChlKXtyZXR1cm4gZSYmKCJhdG9tIj09PWUudHlwZXx8cmUuaGFzT3duUHJvcGVydHkoZS50eXBlKSk/ZTpudWxsfWNvbnN0IEh0PShlLHQpPT57bGV0IHIsbixvO2UmJiJzdXBzdWIiPT09ZS50eXBlPyhuPXF0KGUuYmFzZSwiYWNjZW50Iikscj1uLmJhc2UsZS5iYXNlPXIsbz1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgVylyZXR1cm4gZTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHNwYW48SHRtbERvbU5vZGU+IGJ1dCBnb3QgIitTdHJpbmcoZSkrIi4iKX0oaHQoZSx0KSksZS5iYXNlPW4pOihuPXF0KGUsImFjY2VudCIpLHI9bi5iYXNlKTtjb25zdCBzPWh0KHIsdC5oYXZpbmdDcmFtcGVkU3R5bGUoKSk7bGV0IGk9MDtpZihuLmlzU2hpZnR5JiZsLmlzQ2hhcmFjdGVyQm94KHIpKXtjb25zdCBlPWwuZ2V0QmFzZUVsZW0ocik7aT1lZShodChlLHQuaGF2aW5nQ3JhbXBlZFN0eWxlKCkpKS5za2V3fWNvbnN0IGE9IlxcYyI9PT1uLmxhYmVsO2xldCBoLGM9YT9zLmhlaWdodCtzLmRlcHRoOk1hdGgubWluKHMuaGVpZ2h0LHQuZm9udE1ldHJpY3MoKS54SGVpZ2h0KTtpZihuLmlzU3RyZXRjaHkpaD1OdChuLHQpLGg9VmUubWFrZVZMaXN0KHtwb3NpdGlvblR5cGU6ImZpcnN0QmFzZWxpbmUiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpzfSx7dHlwZToiZWxlbSIsZWxlbTpoLHdyYXBwZXJDbGFzc2VzOlsic3ZnLWFsaWduIl0sd3JhcHBlclN0eWxlOmk+MD97d2lkdGg6ImNhbGMoMTAwJSAtICIrRigyKmkpKyIpIixtYXJnaW5MZWZ0OkYoMippKX06dm9pZCAwfV19LHQpO2Vsc2V7bGV0IGUscjsiXFx2ZWMiPT09bi5sYWJlbD8oZT1WZS5zdGF0aWNTdmcoInZlYyIsdCkscj1WZS5zdmdEYXRhLnZlY1sxXSk6KGU9VmUubWFrZU9yZCh7bW9kZTpuLm1vZGUsdGV4dDpuLmxhYmVsfSx0LCJ0ZXh0b3JkIiksZT1lZShlKSxlLml0YWxpYz0wLHI9ZS53aWR0aCxhJiYoYys9ZS5kZXB0aCkpLGg9VmUubWFrZVNwYW4oWyJhY2NlbnQtYm9keSJdLFtlXSk7Y29uc3Qgbz0iXFx0ZXh0Y2lyY2xlZCI9PT1uLmxhYmVsO28mJihoLmNsYXNzZXMucHVzaCgiYWNjZW50LWZ1bGwiKSxjPXMuaGVpZ2h0KTtsZXQgbD1pO298fChsLT1yLzIpLGguc3R5bGUubGVmdD1GKGwpLCJcXHRleHRjaXJjbGVkIj09PW4ubGFiZWwmJihoLnN0eWxlLnRvcD0iLjJlbSIpLGg9VmUubWFrZVZMaXN0KHtwb3NpdGlvblR5cGU6ImZpcnN0QmFzZWxpbmUiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpzfSx7dHlwZToia2VybiIsc2l6ZTotY30se3R5cGU6ImVsZW0iLGVsZW06aH1dfSx0KX1jb25zdCBtPVZlLm1ha2VTcGFuKFsibW9yZCIsImFjY2VudCJdLFtoXSx0KTtyZXR1cm4gbz8oby5jaGlsZHJlblswXT1tLG8uaGVpZ2h0PU1hdGgubWF4KG0uaGVpZ2h0LG8uaGVpZ2h0KSxvLmNsYXNzZXNbMF09Im1vcmQiLG8pOm19LE90PShlLHQpPT57Y29uc3Qgcj1lLmlzU3RyZXRjaHk/Q3QoZS5sYWJlbCk6bmV3IGd0Lk1hdGhOb2RlKCJtbyIsW2Z0KGUubGFiZWwsZS5tb2RlKV0pLG49bmV3IGd0Lk1hdGhOb2RlKCJtb3ZlciIsW3Z0KGUuYmFzZSx0KSxyXSk7cmV0dXJuIG4uc2V0QXR0cmlidXRlKCJhY2NlbnQiLCJ0cnVlIiksbn0sRXQ9bmV3IFJlZ0V4cChbIlxcYWN1dGUiLCJcXGdyYXZlIiwiXFxkZG90IiwiXFx0aWxkZSIsIlxcYmFyIiwiXFxicmV2ZSIsIlxcY2hlY2siLCJcXGhhdCIsIlxcdmVjIiwiXFxkb3QiLCJcXG1hdGhyaW5nIl0ubWFwKChlPT4iXFwiK2UpKS5qb2luKCJ8IikpO2plKHt0eXBlOiJhY2NlbnQiLG5hbWVzOlsiXFxhY3V0ZSIsIlxcZ3JhdmUiLCJcXGRkb3QiLCJcXHRpbGRlIiwiXFxiYXIiLCJcXGJyZXZlIiwiXFxjaGVjayIsIlxcaGF0IiwiXFx2ZWMiLCJcXGRvdCIsIlxcbWF0aHJpbmciLCJcXHdpZGVjaGVjayIsIlxcd2lkZWhhdCIsIlxcd2lkZXRpbGRlIiwiXFxvdmVycmlnaHRhcnJvdyIsIlxcb3ZlcmxlZnRhcnJvdyIsIlxcT3ZlcnJpZ2h0YXJyb3ciLCJcXG92ZXJsZWZ0cmlnaHRhcnJvdyIsIlxcb3Zlcmdyb3VwIiwiXFxvdmVybGluZXNlZ21lbnQiLCJcXG92ZXJsZWZ0aGFycG9vbiIsIlxcb3ZlcnJpZ2h0aGFycG9vbiJdLHByb3BzOntudW1BcmdzOjF9LGhhbmRsZXI6KGUsdCk9Pntjb25zdCByPVplKHRbMF0pLG49IUV0LnRlc3QoZS5mdW5jTmFtZSksbz0hbnx8Ilxcd2lkZWhhdCI9PT1lLmZ1bmNOYW1lfHwiXFx3aWRldGlsZGUiPT09ZS5mdW5jTmFtZXx8Ilxcd2lkZWNoZWNrIj09PWUuZnVuY05hbWU7cmV0dXJue3R5cGU6ImFjY2VudCIsbW9kZTplLnBhcnNlci5tb2RlLGxhYmVsOmUuZnVuY05hbWUsaXNTdHJldGNoeTpuLGlzU2hpZnR5Om8sYmFzZTpyfX0saHRtbEJ1aWxkZXI6SHQsbWF0aG1sQnVpbGRlcjpPdH0pLGplKHt0eXBlOiJhY2NlbnQiLG5hbWVzOlsiXFwnIiwiXFxgIiwiXFxeIiwiXFx+IiwiXFw9IiwiXFx1IiwiXFwuIiwnXFwiJywiXFxjIiwiXFxyIiwiXFxIIiwiXFx2IiwiXFx0ZXh0Y2lyY2xlZCJdLHByb3BzOntudW1BcmdzOjEsYWxsb3dlZEluVGV4dDohMCxhbGxvd2VkSW5NYXRoOiEwLGFyZ1R5cGVzOlsicHJpbWl0aXZlIl19LGhhbmRsZXI6KGUsdCk9Pntjb25zdCByPXRbMF07bGV0IG49ZS5wYXJzZXIubW9kZTtyZXR1cm4ibWF0aCI9PT1uJiYoZS5wYXJzZXIuc2V0dGluZ3MucmVwb3J0Tm9uc3RyaWN0KCJtYXRoVnNUZXh0QWNjZW50cyIsIkxhVGVYJ3MgYWNjZW50ICIrZS5mdW5jTmFtZSsiIHdvcmtzIG9ubHkgaW4gdGV4dCBtb2RlIiksbj0idGV4dCIpLHt0eXBlOiJhY2NlbnQiLG1vZGU6bixsYWJlbDplLmZ1bmNOYW1lLGlzU3RyZXRjaHk6ITEsaXNTaGlmdHk6ITAsYmFzZTpyfX0saHRtbEJ1aWxkZXI6SHQsbWF0aG1sQnVpbGRlcjpPdH0pLGplKHt0eXBlOiJhY2NlbnRVbmRlciIsbmFtZXM6WyJcXHVuZGVybGVmdGFycm93IiwiXFx1bmRlcnJpZ2h0YXJyb3ciLCJcXHVuZGVybGVmdHJpZ2h0YXJyb3ciLCJcXHVuZGVyZ3JvdXAiLCJcXHVuZGVybGluZXNlZ21lbnQiLCJcXHV0aWxkZSJdLHByb3BzOntudW1BcmdzOjF9LGhhbmRsZXI6KGUsdCk9PntsZXR7cGFyc2VyOnIsZnVuY05hbWU6bn09ZTtjb25zdCBvPXRbMF07cmV0dXJue3R5cGU6ImFjY2VudFVuZGVyIixtb2RlOnIubW9kZSxsYWJlbDpuLGJhc2U6b319LGh0bWxCdWlsZGVyOihlLHQpPT57Y29uc3Qgcj1odChlLmJhc2UsdCksbj1OdChlLHQpLG89IlxcdXRpbGRlIj09PWUubGFiZWw/LjEyOjAscz1WZS5tYWtlVkxpc3Qoe3Bvc2l0aW9uVHlwZToidG9wIixwb3NpdGlvbkRhdGE6ci5oZWlnaHQsY2hpbGRyZW46W3t0eXBlOiJlbGVtIixlbGVtOm4sd3JhcHBlckNsYXNzZXM6WyJzdmctYWxpZ24iXX0se3R5cGU6Imtlcm4iLHNpemU6b30se3R5cGU6ImVsZW0iLGVsZW06cn1dfSx0KTtyZXR1cm4gVmUubWFrZVNwYW4oWyJtb3JkIiwiYWNjZW50dW5kZXIiXSxbc10sdCl9LG1hdGhtbEJ1aWxkZXI6KGUsdCk9Pntjb25zdCByPUN0KGUubGFiZWwpLG49bmV3IGd0Lk1hdGhOb2RlKCJtdW5kZXIiLFt2dChlLmJhc2UsdCkscl0pO3JldHVybiBuLnNldEF0dHJpYnV0ZSgiYWNjZW50dW5kZXIiLCJ0cnVlIiksbn19KTtjb25zdCBMdD1lPT57Y29uc3QgdD1uZXcgZ3QuTWF0aE5vZGUoIm1wYWRkZWQiLGU/W2VdOltdKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwiKzAuNmVtIiksdC5zZXRBdHRyaWJ1dGUoImxzcGFjZSIsIjAuM2VtIiksdH07amUoe3R5cGU6InhBcnJvdyIsbmFtZXM6WyJcXHhsZWZ0YXJyb3ciLCJcXHhyaWdodGFycm93IiwiXFx4TGVmdGFycm93IiwiXFx4UmlnaHRhcnJvdyIsIlxceGxlZnRyaWdodGFycm93IiwiXFx4TGVmdHJpZ2h0YXJyb3ciLCJcXHhob29rbGVmdGFycm93IiwiXFx4aG9va3JpZ2h0YXJyb3ciLCJcXHhtYXBzdG8iLCJcXHhyaWdodGhhcnBvb25kb3duIiwiXFx4cmlnaHRoYXJwb29udXAiLCJcXHhsZWZ0aGFycG9vbmRvd24iLCJcXHhsZWZ0aGFycG9vbnVwIiwiXFx4cmlnaHRsZWZ0aGFycG9vbnMiLCJcXHhsZWZ0cmlnaHRoYXJwb29ucyIsIlxceGxvbmdlcXVhbCIsIlxceHR3b2hlYWRyaWdodGFycm93IiwiXFx4dHdvaGVhZGxlZnRhcnJvdyIsIlxceHRvZnJvbSIsIlxceHJpZ2h0bGVmdGFycm93cyIsIlxceHJpZ2h0ZXF1aWxpYnJpdW0iLCJcXHhsZWZ0ZXF1aWxpYnJpdW0iLCJcXFxcY2RyaWdodGFycm93IiwiXFxcXGNkbGVmdGFycm93IiwiXFxcXGNkbG9uZ2VxdWFsIl0scHJvcHM6e251bUFyZ3M6MSxudW1PcHRpb25hbEFyZ3M6MX0saGFuZGxlcihlLHQscil7bGV0e3BhcnNlcjpuLGZ1bmNOYW1lOm99PWU7cmV0dXJue3R5cGU6InhBcnJvdyIsbW9kZTpuLm1vZGUsbGFiZWw6byxib2R5OnRbMF0sYmVsb3c6clswXX19LGh0bWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj10LnN0eWxlO2xldCBuPXQuaGF2aW5nU3R5bGUoci5zdXAoKSk7Y29uc3Qgbz1WZS53cmFwRnJhZ21lbnQoaHQoZS5ib2R5LG4sdCksdCkscz0iXFx4Ij09PWUubGFiZWwuc2xpY2UoMCwyKT8ieCI6ImNkIjtsZXQgaTtvLmNsYXNzZXMucHVzaChzKyItYXJyb3ctcGFkIiksZS5iZWxvdyYmKG49dC5oYXZpbmdTdHlsZShyLnN1YigpKSxpPVZlLndyYXBGcmFnbWVudChodChlLmJlbG93LG4sdCksdCksaS5jbGFzc2VzLnB1c2gocysiLWFycm93LXBhZCIpKTtjb25zdCBhPU50KGUsdCksbD0tdC5mb250TWV0cmljcygpLmF4aXNIZWlnaHQrLjUqYS5oZWlnaHQ7bGV0IGgsYz0tdC5mb250TWV0cmljcygpLmF4aXNIZWlnaHQtLjUqYS5oZWlnaHQtLjExMTtpZigoby5kZXB0aD4uMjV8fCJcXHhsZWZ0ZXF1aWxpYnJpdW0iPT09ZS5sYWJlbCkmJihjLT1vLmRlcHRoKSxpKXtjb25zdCBlPS10LmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodCtpLmhlaWdodCsuNSphLmhlaWdodCsuMTExO2g9VmUubWFrZVZMaXN0KHtwb3NpdGlvblR5cGU6ImluZGl2aWR1YWxTaGlmdCIsY2hpbGRyZW46W3t0eXBlOiJlbGVtIixlbGVtOm8sc2hpZnQ6Y30se3R5cGU6ImVsZW0iLGVsZW06YSxzaGlmdDpsfSx7dHlwZToiZWxlbSIsZWxlbTppLHNoaWZ0OmV9XX0sdCl9ZWxzZSBoPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJpbmRpdmlkdWFsU2hpZnQiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpvLHNoaWZ0OmN9LHt0eXBlOiJlbGVtIixlbGVtOmEsc2hpZnQ6bH1dfSx0KTtyZXR1cm4gaC5jaGlsZHJlblswXS5jaGlsZHJlblswXS5jaGlsZHJlblsxXS5jbGFzc2VzLnB1c2goInN2Zy1hbGlnbiIpLFZlLm1ha2VTcGFuKFsibXJlbCIsIngtYXJyb3ciXSxbaF0sdCl9LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPUN0KGUubGFiZWwpO2xldCBuO2lmKHIuc2V0QXR0cmlidXRlKCJtaW5zaXplIiwieCI9PT1lLmxhYmVsLmNoYXJBdCgwKT8iMS43NWVtIjoiMy4wZW0iKSxlLmJvZHkpe2NvbnN0IG89THQodnQoZS5ib2R5LHQpKTtpZihlLmJlbG93KXtjb25zdCBzPUx0KHZ0KGUuYmVsb3csdCkpO249bmV3IGd0Lk1hdGhOb2RlKCJtdW5kZXJvdmVyIixbcixzLG9dKX1lbHNlIG49bmV3IGd0Lk1hdGhOb2RlKCJtb3ZlciIsW3Isb10pfWVsc2UgaWYoZS5iZWxvdyl7Y29uc3Qgbz1MdCh2dChlLmJlbG93LHQpKTtuPW5ldyBndC5NYXRoTm9kZSgibXVuZGVyIixbcixvXSl9ZWxzZSBuPUx0KCksbj1uZXcgZ3QuTWF0aE5vZGUoIm1vdmVyIixbcixuXSk7cmV0dXJuIG59fSk7Y29uc3QgRHQ9VmUubWFrZVNwYW47ZnVuY3Rpb24gVnQoZSx0KXtjb25zdCByPW50KGUuYm9keSx0LCEwKTtyZXR1cm4gRHQoW2UubWNsYXNzXSxyLHQpfWZ1bmN0aW9uIFB0KGUsdCl7bGV0IHI7Y29uc3Qgbj14dChlLmJvZHksdCk7cmV0dXJuIm1pbm5lciI9PT1lLm1jbGFzcz9yPW5ldyBndC5NYXRoTm9kZSgibXBhZGRlZCIsbik6Im1vcmQiPT09ZS5tY2xhc3M/ZS5pc0NoYXJhY3RlckJveD8ocj1uWzBdLHIudHlwZT0ibWkiKTpyPW5ldyBndC5NYXRoTm9kZSgibWkiLG4pOihlLmlzQ2hhcmFjdGVyQm94PyhyPW5bMF0sci50eXBlPSJtbyIpOnI9bmV3IGd0Lk1hdGhOb2RlKCJtbyIsbiksIm1iaW4iPT09ZS5tY2xhc3M/KHIuYXR0cmlidXRlcy5sc3BhY2U9IjAuMjJlbSIsci5hdHRyaWJ1dGVzLnJzcGFjZT0iMC4yMmVtIik6Im1wdW5jdCI9PT1lLm1jbGFzcz8oci5hdHRyaWJ1dGVzLmxzcGFjZT0iMGVtIixyLmF0dHJpYnV0ZXMucnNwYWNlPSIwLjE3ZW0iKToibW9wZW4iPT09ZS5tY2xhc3N8fCJtY2xvc2UiPT09ZS5tY2xhc3M/KHIuYXR0cmlidXRlcy5sc3BhY2U9IjBlbSIsci5hdHRyaWJ1dGVzLnJzcGFjZT0iMGVtIik6Im1pbm5lciI9PT1lLm1jbGFzcyYmKHIuYXR0cmlidXRlcy5sc3BhY2U9IjAuMDU1NmVtIixyLmF0dHJpYnV0ZXMud2lkdGg9IiswLjExMTFlbSIpKSxyfWplKHt0eXBlOiJtY2xhc3MiLG5hbWVzOlsiXFxtYXRob3JkIiwiXFxtYXRoYmluIiwiXFxtYXRocmVsIiwiXFxtYXRob3BlbiIsIlxcbWF0aGNsb3NlIiwiXFxtYXRocHVuY3QiLCJcXG1hdGhpbm5lciJdLHByb3BzOntudW1BcmdzOjEscHJpbWl0aXZlOiEwfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm59PWU7Y29uc3Qgbz10WzBdO3JldHVybnt0eXBlOiJtY2xhc3MiLG1vZGU6ci5tb2RlLG1jbGFzczoibSIrbi5zbGljZSg1KSxib2R5OktlKG8pLGlzQ2hhcmFjdGVyQm94OmwuaXNDaGFyYWN0ZXJCb3gobyl9fSxodG1sQnVpbGRlcjpWdCxtYXRobWxCdWlsZGVyOlB0fSk7Y29uc3QgRnQ9ZT0+e2NvbnN0IHQ9Im9yZGdyb3VwIj09PWUudHlwZSYmZS5ib2R5Lmxlbmd0aD9lLmJvZHlbMF06ZTtyZXR1cm4iYXRvbSIhPT10LnR5cGV8fCJiaW4iIT09dC5mYW1pbHkmJiJyZWwiIT09dC5mYW1pbHk/Im1vcmQiOiJtIit0LmZhbWlseX07amUoe3R5cGU6Im1jbGFzcyIsbmFtZXM6WyJcXEBiaW5yZWwiXSxwcm9wczp7bnVtQXJnczoyfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyfT1lO3JldHVybnt0eXBlOiJtY2xhc3MiLG1vZGU6ci5tb2RlLG1jbGFzczpGdCh0WzBdKSxib2R5OktlKHRbMV0pLGlzQ2hhcmFjdGVyQm94OmwuaXNDaGFyYWN0ZXJCb3godFsxXSl9fX0pLGplKHt0eXBlOiJtY2xhc3MiLG5hbWVzOlsiXFxzdGFja3JlbCIsIlxcb3ZlcnNldCIsIlxcdW5kZXJzZXQiXSxwcm9wczp7bnVtQXJnczoyfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm59PWU7Y29uc3Qgbz10WzFdLHM9dFswXTtsZXQgaTtpPSJcXHN0YWNrcmVsIiE9PW4/RnQobyk6Im1yZWwiO2NvbnN0IGE9e3R5cGU6Im9wIixtb2RlOm8ubW9kZSxsaW1pdHM6ITAsYWx3YXlzSGFuZGxlU3VwU3ViOiEwLHBhcmVudElzU3VwU3ViOiExLHN5bWJvbDohMSxzdXBwcmVzc0Jhc2VTaGlmdDoiXFxzdGFja3JlbCIhPT1uLGJvZHk6S2Uobyl9LGg9e3R5cGU6InN1cHN1YiIsbW9kZTpzLm1vZGUsYmFzZTphLHN1cDoiXFx1bmRlcnNldCI9PT1uP251bGw6cyxzdWI6IlxcdW5kZXJzZXQiPT09bj9zOm51bGx9O3JldHVybnt0eXBlOiJtY2xhc3MiLG1vZGU6ci5tb2RlLG1jbGFzczppLGJvZHk6W2hdLGlzQ2hhcmFjdGVyQm94OmwuaXNDaGFyYWN0ZXJCb3goaCl9fSxodG1sQnVpbGRlcjpWdCxtYXRobWxCdWlsZGVyOlB0fSksamUoe3R5cGU6InBtYiIsbmFtZXM6WyJcXHBtYiJdLHByb3BzOntudW1BcmdzOjEsYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcihlLHQpe2xldHtwYXJzZXI6cn09ZTtyZXR1cm57dHlwZToicG1iIixtb2RlOnIubW9kZSxtY2xhc3M6RnQodFswXSksYm9keTpLZSh0WzBdKX19LGh0bWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj1udChlLmJvZHksdCwhMCksbj1WZS5tYWtlU3BhbihbZS5tY2xhc3NdLHIsdCk7cmV0dXJuIG4uc3R5bGUudGV4dFNoYWRvdz0iMC4wMmVtIDAuMDFlbSAwLjA0cHgiLG59LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPXh0KGUuYm9keSx0KSxuPW5ldyBndC5NYXRoTm9kZSgibXN0eWxlIixyKTtyZXR1cm4gbi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwidGV4dC1zaGFkb3c6IDAuMDJlbSAwLjAxZW0gMC4wNHB4Iiksbn19KTtjb25zdCBHdD17Ij4iOiJcXFxcY2RyaWdodGFycm93IiwiPCI6IlxcXFxjZGxlZnRhcnJvdyIsIj0iOiJcXFxcY2Rsb25nZXF1YWwiLEE6IlxcdXBhcnJvdyIsVjoiXFxkb3duYXJyb3ciLCJ8IjoiXFxWZXJ0IiwiLiI6Im5vIGFycm93In0sVXQ9ZT0+InRleHRvcmQiPT09ZS50eXBlJiYiQCI9PT1lLnRleHQ7ZnVuY3Rpb24gWXQoZSx0LHIpe2NvbnN0IG49R3RbZV07c3dpdGNoKG4pe2Nhc2UiXFxcXGNkcmlnaHRhcnJvdyI6Y2FzZSJcXFxcY2RsZWZ0YXJyb3ciOnJldHVybiByLmNhbGxGdW5jdGlvbihuLFt0WzBdXSxbdFsxXV0pO2Nhc2UiXFx1cGFycm93IjpjYXNlIlxcZG93bmFycm93Ijp7Y29uc3QgZT17dHlwZToiYXRvbSIsdGV4dDpuLG1vZGU6Im1hdGgiLGZhbWlseToicmVsIn0sbz17dHlwZToib3JkZ3JvdXAiLG1vZGU6Im1hdGgiLGJvZHk6W3IuY2FsbEZ1bmN0aW9uKCJcXFxcY2RsZWZ0IixbdFswXV0sW10pLHIuY2FsbEZ1bmN0aW9uKCJcXEJpZyIsW2VdLFtdKSxyLmNhbGxGdW5jdGlvbigiXFxcXGNkcmlnaHQiLFt0WzFdXSxbXSldfTtyZXR1cm4gci5jYWxsRnVuY3Rpb24oIlxcXFxjZHBhcmVudCIsW29dLFtdKX1jYXNlIlxcXFxjZGxvbmdlcXVhbCI6cmV0dXJuIHIuY2FsbEZ1bmN0aW9uKCJcXFxcY2Rsb25nZXF1YWwiLFtdLFtdKTtjYXNlIlxcVmVydCI6e2NvbnN0IGU9e3R5cGU6InRleHRvcmQiLHRleHQ6IlxcVmVydCIsbW9kZToibWF0aCJ9O3JldHVybiByLmNhbGxGdW5jdGlvbigiXFxCaWciLFtlXSxbXSl9ZGVmYXVsdDpyZXR1cm57dHlwZToidGV4dG9yZCIsdGV4dDoiICIsbW9kZToibWF0aCJ9fX1qZSh7dHlwZToiY2RsYWJlbCIsbmFtZXM6WyJcXFxcY2RsZWZ0IiwiXFxcXGNkcmlnaHQiXSxwcm9wczp7bnVtQXJnczoxfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm59PWU7cmV0dXJue3R5cGU6ImNkbGFiZWwiLG1vZGU6ci5tb2RlLHNpZGU6bi5zbGljZSg0KSxsYWJlbDp0WzBdfX0saHRtbEJ1aWxkZXIoZSx0KXtjb25zdCByPXQuaGF2aW5nU3R5bGUodC5zdHlsZS5zdXAoKSksbj1WZS53cmFwRnJhZ21lbnQoaHQoZS5sYWJlbCxyLHQpLHQpO3JldHVybiBuLmNsYXNzZXMucHVzaCgiY2QtbGFiZWwtIitlLnNpZGUpLG4uc3R5bGUuYm90dG9tPUYoLjgtbi5kZXB0aCksbi5oZWlnaHQ9MCxuLmRlcHRoPTAsbn0sbWF0aG1sQnVpbGRlcihlLHQpe2xldCByPW5ldyBndC5NYXRoTm9kZSgibXJvdyIsW3Z0KGUubGFiZWwsdCldKTtyZXR1cm4gcj1uZXcgZ3QuTWF0aE5vZGUoIm1wYWRkZWQiLFtyXSksci5zZXRBdHRyaWJ1dGUoIndpZHRoIiwiMCIpLCJsZWZ0Ij09PWUuc2lkZSYmci5zZXRBdHRyaWJ1dGUoImxzcGFjZSIsIi0xd2lkdGgiKSxyLnNldEF0dHJpYnV0ZSgidm9mZnNldCIsIjAuN2VtIikscj1uZXcgZ3QuTWF0aE5vZGUoIm1zdHlsZSIsW3JdKSxyLnNldEF0dHJpYnV0ZSgiZGlzcGxheXN0eWxlIiwiZmFsc2UiKSxyLnNldEF0dHJpYnV0ZSgic2NyaXB0bGV2ZWwiLCIxIikscn19KSxqZSh7dHlwZToiY2RsYWJlbHBhcmVudCIsbmFtZXM6WyJcXFxcY2RwYXJlbnQiXSxwcm9wczp7bnVtQXJnczoxfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyfT1lO3JldHVybnt0eXBlOiJjZGxhYmVscGFyZW50Iixtb2RlOnIubW9kZSxmcmFnbWVudDp0WzBdfX0saHRtbEJ1aWxkZXIoZSx0KXtjb25zdCByPVZlLndyYXBGcmFnbWVudChodChlLmZyYWdtZW50LHQpLHQpO3JldHVybiByLmNsYXNzZXMucHVzaCgiY2QtdmVydC1hcnJvdyIpLHJ9LG1hdGhtbEJ1aWxkZXIoZSx0KXtyZXR1cm4gbmV3IGd0Lk1hdGhOb2RlKCJtcm93IixbdnQoZS5mcmFnbWVudCx0KV0pfX0pLGplKHt0eXBlOiJ0ZXh0b3JkIixuYW1lczpbIlxcQGNoYXIiXSxwcm9wczp7bnVtQXJnczoxLGFsbG93ZWRJblRleHQ6ITB9LGhhbmRsZXIoZSx0KXtsZXR7cGFyc2VyOnJ9PWU7Y29uc3Qgbz1xdCh0WzBdLCJvcmRncm91cCIpLmJvZHk7bGV0IHM9IiI7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe3MrPXF0KG9bZV0sInRleHRvcmQiKS50ZXh0fWxldCBpLGE9cGFyc2VJbnQocyk7aWYoaXNOYU4oYSkpdGhyb3cgbmV3IG4oIlxcQGNoYXIgaGFzIG5vbi1udW1lcmljIGFyZ3VtZW50ICIrcyk7aWYoYTwwfHxhPj0xMTE0MTExKXRocm93IG5ldyBuKCJcXEBjaGFyIHdpdGggaW52YWxpZCBjb2RlIHBvaW50ICIrcyk7cmV0dXJuIGE8PTY1NTM1P2k9U3RyaW5nLmZyb21DaGFyQ29kZShhKTooYS09NjU1MzYsaT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhhPj4xMCksNTYzMjArKDEwMjMmYSkpKSx7dHlwZToidGV4dG9yZCIsbW9kZTpyLm1vZGUsdGV4dDppfX19KTtjb25zdCBYdD0oZSx0KT0+e2NvbnN0IHI9bnQoZS5ib2R5LHQud2l0aENvbG9yKGUuY29sb3IpLCExKTtyZXR1cm4gVmUubWFrZUZyYWdtZW50KHIpfSxXdD0oZSx0KT0+e2NvbnN0IHI9eHQoZS5ib2R5LHQud2l0aENvbG9yKGUuY29sb3IpKSxuPW5ldyBndC5NYXRoTm9kZSgibXN0eWxlIixyKTtyZXR1cm4gbi5zZXRBdHRyaWJ1dGUoIm1hdGhjb2xvciIsZS5jb2xvciksbn07amUoe3R5cGU6ImNvbG9yIixuYW1lczpbIlxcdGV4dGNvbG9yIl0scHJvcHM6e251bUFyZ3M6MixhbGxvd2VkSW5UZXh0OiEwLGFyZ1R5cGVzOlsiY29sb3IiLCJvcmlnaW5hbCJdfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyfT1lO2NvbnN0IG49cXQodFswXSwiY29sb3ItdG9rZW4iKS5jb2xvcixvPXRbMV07cmV0dXJue3R5cGU6ImNvbG9yIixtb2RlOnIubW9kZSxjb2xvcjpuLGJvZHk6S2Uobyl9fSxodG1sQnVpbGRlcjpYdCxtYXRobWxCdWlsZGVyOld0fSksamUoe3R5cGU6ImNvbG9yIixuYW1lczpbIlxcY29sb3IiXSxwcm9wczp7bnVtQXJnczoxLGFsbG93ZWRJblRleHQ6ITAsYXJnVHlwZXM6WyJjb2xvciJdfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyLGJyZWFrT25Ub2tlblRleHQ6bn09ZTtjb25zdCBvPXF0KHRbMF0sImNvbG9yLXRva2VuIikuY29sb3I7ci5ndWxsZXQubWFjcm9zLnNldCgiXFxjdXJyZW50QGNvbG9yIixvKTtjb25zdCBzPXIucGFyc2VFeHByZXNzaW9uKCEwLG4pO3JldHVybnt0eXBlOiJjb2xvciIsbW9kZTpyLm1vZGUsY29sb3I6byxib2R5OnN9fSxodG1sQnVpbGRlcjpYdCxtYXRobWxCdWlsZGVyOld0fSksamUoe3R5cGU6ImNyIixuYW1lczpbIlxcXFwiXSxwcm9wczp7bnVtQXJnczowLG51bU9wdGlvbmFsQXJnczowLGFsbG93ZWRJblRleHQ6ITB9LGhhbmRsZXIoZSx0LHIpe2xldHtwYXJzZXI6bn09ZTtjb25zdCBvPSJbIj09PW4uZ3VsbGV0LmZ1dHVyZSgpLnRleHQ/bi5wYXJzZVNpemVHcm91cCghMCk6bnVsbCxzPSFuLnNldHRpbmdzLmRpc3BsYXlNb2RlfHwhbi5zZXR0aW5ncy51c2VTdHJpY3RCZWhhdmlvcigibmV3TGluZUluRGlzcGxheU1vZGUiLCJJbiBMYVRlWCwgXFxcXCBvciBcXG5ld2xpbmUgZG9lcyBub3RoaW5nIGluIGRpc3BsYXkgbW9kZSIpO3JldHVybnt0eXBlOiJjciIsbW9kZTpuLm1vZGUsbmV3TGluZTpzLHNpemU6byYmcXQobywic2l6ZSIpLnZhbHVlfX0saHRtbEJ1aWxkZXIoZSx0KXtjb25zdCByPVZlLm1ha2VTcGFuKFsibXNwYWNlIl0sW10sdCk7cmV0dXJuIGUubmV3TGluZSYmKHIuY2xhc3Nlcy5wdXNoKCJuZXdsaW5lIiksZS5zaXplJiYoci5zdHlsZS5tYXJnaW5Ub3A9RihQKGUuc2l6ZSx0KSkpKSxyfSxtYXRobWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj1uZXcgZ3QuTWF0aE5vZGUoIm1zcGFjZSIpO3JldHVybiBlLm5ld0xpbmUmJihyLnNldEF0dHJpYnV0ZSgibGluZWJyZWFrIiwibmV3bGluZSIpLGUuc2l6ZSYmci5zZXRBdHRyaWJ1dGUoImhlaWdodCIsRihQKGUuc2l6ZSx0KSkpKSxyfX0pO2NvbnN0IF90PXsiXFxnbG9iYWwiOiJcXGdsb2JhbCIsIlxcbG9uZyI6IlxcXFxnbG9iYWxsb25nIiwiXFxcXGdsb2JhbGxvbmciOiJcXFxcZ2xvYmFsbG9uZyIsIlxcZGVmIjoiXFxnZGVmIiwiXFxnZGVmIjoiXFxnZGVmIiwiXFxlZGVmIjoiXFx4ZGVmIiwiXFx4ZGVmIjoiXFx4ZGVmIiwiXFxsZXQiOiJcXFxcZ2xvYmFsbGV0IiwiXFxmdXR1cmVsZXQiOiJcXFxcZ2xvYmFsZnV0dXJlIn0sanQ9ZT0+e2NvbnN0IHQ9ZS50ZXh0O2lmKC9eKD86W1xce30kJiNeX118RU9GKSQvLnRlc3QodCkpdGhyb3cgbmV3IG4oIkV4cGVjdGVkIGEgY29udHJvbCBzZXF1ZW5jZSIsZSk7cmV0dXJuIHR9LCR0PShlLHQscixuKT0+e2xldCBvPWUuZ3VsbGV0Lm1hY3Jvcy5nZXQoci50ZXh0KTtudWxsPT1vJiYoci5ub2V4cGFuZD0hMCxvPXt0b2tlbnM6W3JdLG51bUFyZ3M6MCx1bmV4cGFuZGFibGU6IWUuZ3VsbGV0LmlzRXhwYW5kYWJsZShyLnRleHQpfSksZS5ndWxsZXQubWFjcm9zLnNldCh0LG8sbil9O2plKHt0eXBlOiJpbnRlcm5hbCIsbmFtZXM6WyJcXGdsb2JhbCIsIlxcbG9uZyIsIlxcXFxnbG9iYWxsb25nIl0scHJvcHM6e251bUFyZ3M6MCxhbGxvd2VkSW5UZXh0OiEwfSxoYW5kbGVyKGUpe2xldHtwYXJzZXI6dCxmdW5jTmFtZTpyfT1lO3QuY29uc3VtZVNwYWNlcygpO2NvbnN0IG89dC5mZXRjaCgpO2lmKF90W28udGV4dF0pcmV0dXJuIlxcZ2xvYmFsIiE9PXImJiJcXFxcZ2xvYmFsbG9uZyIhPT1yfHwoby50ZXh0PV90W28udGV4dF0pLHF0KHQucGFyc2VGdW5jdGlvbigpLCJpbnRlcm5hbCIpO3Rocm93IG5ldyBuKCJJbnZhbGlkIHRva2VuIGFmdGVyIG1hY3JvIHByZWZpeCIsbyl9fSksamUoe3R5cGU6ImludGVybmFsIixuYW1lczpbIlxcZGVmIiwiXFxnZGVmIiwiXFxlZGVmIiwiXFx4ZGVmIl0scHJvcHM6e251bUFyZ3M6MCxhbGxvd2VkSW5UZXh0OiEwLHByaW1pdGl2ZTohMH0saGFuZGxlcihlKXtsZXR7cGFyc2VyOnQsZnVuY05hbWU6cn09ZSxvPXQuZ3VsbGV0LnBvcFRva2VuKCk7Y29uc3Qgcz1vLnRleHQ7aWYoL14oPzpbXFx7fSQmI15fXXxFT0YpJC8udGVzdChzKSl0aHJvdyBuZXcgbigiRXhwZWN0ZWQgYSBjb250cm9sIHNlcXVlbmNlIixvKTtsZXQgaSxhPTA7Y29uc3QgbD1bW11dO2Zvcig7InsiIT09dC5ndWxsZXQuZnV0dXJlKCkudGV4dDspaWYobz10Lmd1bGxldC5wb3BUb2tlbigpLCIjIj09PW8udGV4dCl7aWYoInsiPT09dC5ndWxsZXQuZnV0dXJlKCkudGV4dCl7aT10Lmd1bGxldC5mdXR1cmUoKSxsW2FdLnB1c2goInsiKTticmVha31pZihvPXQuZ3VsbGV0LnBvcFRva2VuKCksIS9eWzEtOV0kLy50ZXN0KG8udGV4dCkpdGhyb3cgbmV3IG4oJ0ludmFsaWQgYXJndW1lbnQgbnVtYmVyICInK28udGV4dCsnIicpO2lmKHBhcnNlSW50KG8udGV4dCkhPT1hKzEpdGhyb3cgbmV3IG4oJ0FyZ3VtZW50IG51bWJlciAiJytvLnRleHQrJyIgb3V0IG9mIG9yZGVyJyk7YSsrLGwucHVzaChbXSl9ZWxzZXtpZigiRU9GIj09PW8udGV4dCl0aHJvdyBuZXcgbigiRXhwZWN0ZWQgYSBtYWNybyBkZWZpbml0aW9uIik7bFthXS5wdXNoKG8udGV4dCl9bGV0e3Rva2VuczpofT10Lmd1bGxldC5jb25zdW1lQXJnKCk7cmV0dXJuIGkmJmgudW5zaGlmdChpKSwiXFxlZGVmIiE9PXImJiJcXHhkZWYiIT09cnx8KGg9dC5ndWxsZXQuZXhwYW5kVG9rZW5zKGgpLGgucmV2ZXJzZSgpKSx0Lmd1bGxldC5tYWNyb3Muc2V0KHMse3Rva2VuczpoLG51bUFyZ3M6YSxkZWxpbWl0ZXJzOmx9LHI9PT1fdFtyXSkse3R5cGU6ImludGVybmFsIixtb2RlOnQubW9kZX19fSksamUoe3R5cGU6ImludGVybmFsIixuYW1lczpbIlxcbGV0IiwiXFxcXGdsb2JhbGxldCJdLHByb3BzOntudW1BcmdzOjAsYWxsb3dlZEluVGV4dDohMCxwcmltaXRpdmU6ITB9LGhhbmRsZXIoZSl7bGV0e3BhcnNlcjp0LGZ1bmNOYW1lOnJ9PWU7Y29uc3Qgbj1qdCh0Lmd1bGxldC5wb3BUb2tlbigpKTt0Lmd1bGxldC5jb25zdW1lU3BhY2VzKCk7Y29uc3Qgbz0oZT0+e2xldCB0PWUuZ3VsbGV0LnBvcFRva2VuKCk7cmV0dXJuIj0iPT09dC50ZXh0JiYodD1lLmd1bGxldC5wb3BUb2tlbigpLCIgIj09PXQudGV4dCYmKHQ9ZS5ndWxsZXQucG9wVG9rZW4oKSkpLHR9KSh0KTtyZXR1cm4gJHQodCxuLG8sIlxcXFxnbG9iYWxsZXQiPT09cikse3R5cGU6ImludGVybmFsIixtb2RlOnQubW9kZX19fSksamUoe3R5cGU6ImludGVybmFsIixuYW1lczpbIlxcZnV0dXJlbGV0IiwiXFxcXGdsb2JhbGZ1dHVyZSJdLHByb3BzOntudW1BcmdzOjAsYWxsb3dlZEluVGV4dDohMCxwcmltaXRpdmU6ITB9LGhhbmRsZXIoZSl7bGV0e3BhcnNlcjp0LGZ1bmNOYW1lOnJ9PWU7Y29uc3Qgbj1qdCh0Lmd1bGxldC5wb3BUb2tlbigpKSxvPXQuZ3VsbGV0LnBvcFRva2VuKCkscz10Lmd1bGxldC5wb3BUb2tlbigpO3JldHVybiAkdCh0LG4scywiXFxcXGdsb2JhbGZ1dHVyZSI9PT1yKSx0Lmd1bGxldC5wdXNoVG9rZW4ocyksdC5ndWxsZXQucHVzaFRva2VuKG8pLHt0eXBlOiJpbnRlcm5hbCIsbW9kZTp0Lm1vZGV9fX0pO2NvbnN0IFp0PWZ1bmN0aW9uKGUsdCxyKXtjb25zdCBuPU4ob2UubWF0aFtlXSYmb2UubWF0aFtlXS5yZXBsYWNlfHxlLHQscik7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzeW1ib2wgIitlKyIgYW5kIGZvbnQgc2l6ZSAiK3QrIi4iKTtyZXR1cm4gbn0sS3Q9ZnVuY3Rpb24oZSx0LHIsbil7Y29uc3Qgbz1yLmhhdmluZ0Jhc2VTdHlsZSh0KSxzPVZlLm1ha2VTcGFuKG4uY29uY2F0KG8uc2l6aW5nQ2xhc3NlcyhyKSksW2VdLHIpLGk9by5zaXplTXVsdGlwbGllci9yLnNpemVNdWx0aXBsaWVyO3JldHVybiBzLmhlaWdodCo9aSxzLmRlcHRoKj1pLHMubWF4Rm9udFNpemU9by5zaXplTXVsdGlwbGllcixzfSxKdD1mdW5jdGlvbihlLHQscil7Y29uc3Qgbj10LmhhdmluZ0Jhc2VTdHlsZShyKSxvPSgxLXQuc2l6ZU11bHRpcGxpZXIvbi5zaXplTXVsdGlwbGllcikqdC5mb250TWV0cmljcygpLmF4aXNIZWlnaHQ7ZS5jbGFzc2VzLnB1c2goImRlbGltY2VudGVyIiksZS5zdHlsZS50b3A9RihvKSxlLmhlaWdodC09byxlLmRlcHRoKz1vfSxRdD1mdW5jdGlvbihlLHQscixuLG8scyl7Y29uc3QgaT1mdW5jdGlvbihlLHQscixuKXtyZXR1cm4gVmUubWFrZVN5bWJvbChlLCJTaXplIit0KyItUmVndWxhciIscixuKX0oZSx0LG8sbiksYT1LdChWZS5tYWtlU3BhbihbImRlbGltc2l6aW5nIiwic2l6ZSIrdF0sW2ldLG4pLHcuVEVYVCxuLHMpO3JldHVybiByJiZKdChhLG4sdy5URVhUKSxhfSxlcj1mdW5jdGlvbihlLHQscil7bGV0IG47bj0iU2l6ZTEtUmVndWxhciI9PT10PyJkZWxpbS1zaXplMSI6ImRlbGltLXNpemU0IjtyZXR1cm57dHlwZToiZWxlbSIsZWxlbTpWZS5tYWtlU3BhbihbImRlbGltc2l6aW5naW5uZXIiLG5dLFtWZS5tYWtlU3BhbihbXSxbVmUubWFrZVN5bWJvbChlLHQscildKV0pfX0sdHI9ZnVuY3Rpb24oZSx0LHIpe2NvbnN0IG49VFsiU2l6ZTQtUmVndWxhciJdW2UuY2hhckNvZGVBdCgwKV0/VFsiU2l6ZTQtUmVndWxhciJdW2UuY2hhckNvZGVBdCgwKV1bNF06VFsiU2l6ZTEtUmVndWxhciJdW2UuY2hhckNvZGVBdCgwKV1bNF0sbz1uZXcgSigiaW5uZXIiLGZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2UiXHUyMzljIjpyZXR1cm4iTTI5MSAwIEg0MTcgViIrdCsiIEgyOTF6IE0yOTEgMCBINDE3IFYiK3QrIiBIMjkxeiI7Y2FzZSJcdTIyMjMiOnJldHVybiJNMTQ1IDAgSDE4OCBWIit0KyIgSDE0NXogTTE0NSAwIEgxODggViIrdCsiIEgxNDV6IjtjYXNlIlx1MjIyNSI6cmV0dXJuIk0xNDUgMCBIMTg4IFYiK3QrIiBIMTQ1eiBNMTQ1IDAgSDE4OCBWIit0KyIgSDE0NXpNMzY3IDAgSDQxMCBWIit0KyIgSDM2N3ogTTM2NyAwIEg0MTAgViIrdCsiIEgzNjd6IjtjYXNlIlx1MjM5ZiI6cmV0dXJuIk00NTcgMCBINTgzIFYiK3QrIiBINDU3eiBNNDU3IDAgSDU4MyBWIit0KyIgSDQ1N3oiO2Nhc2UiXHUyM2EyIjpyZXR1cm4iTTMxOSAwIEg0MDMgViIrdCsiIEgzMTl6IE0zMTkgMCBINDAzIFYiK3QrIiBIMzE5eiI7Y2FzZSJcdTIzYTUiOnJldHVybiJNMjYzIDAgSDM0NyBWIit0KyIgSDI2M3ogTTI2MyAwIEgzNDcgViIrdCsiIEgyNjN6IjtjYXNlIlx1MjNhYSI6cmV0dXJuIk0zODQgMCBINTA0IFYiK3QrIiBIMzg0eiBNMzg0IDAgSDUwNCBWIit0KyIgSDM4NHoiO2Nhc2UiXHUyM2QwIjpyZXR1cm4iTTMxMiAwIEgzNTUgViIrdCsiIEgzMTJ6IE0zMTIgMCBIMzU1IFYiK3QrIiBIMzEyeiI7Y2FzZSJcdTIwMTYiOnJldHVybiJNMjU3IDAgSDMwMCBWIit0KyIgSDI1N3ogTTI1NyAwIEgzMDAgViIrdCsiIEgyNTd6TTQ3OCAwIEg1MjEgViIrdCsiIEg0Nzh6IE00NzggMCBINTIxIFYiK3QrIiBINDc4eiI7ZGVmYXVsdDpyZXR1cm4iIn19KGUsTWF0aC5yb3VuZCgxZTMqdCkpKSxzPW5ldyBLKFtvXSx7d2lkdGg6RihuKSxoZWlnaHQ6Rih0KSxzdHlsZToid2lkdGg6IitGKG4pLHZpZXdCb3g6IjAgMCAiKzFlMypuKyIgIitNYXRoLnJvdW5kKDFlMyp0KSxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJ4TWluWU1pbiJ9KSxpPVZlLm1ha2VTdmdTcGFuKFtdLFtzXSxyKTtyZXR1cm4gaS5oZWlnaHQ9dCxpLnN0eWxlLmhlaWdodD1GKHQpLGkuc3R5bGUud2lkdGg9RihuKSx7dHlwZToiZWxlbSIsZWxlbTppfX0scnI9e3R5cGU6Imtlcm4iLHNpemU6LS4wMDh9LG5yPVsifCIsIlxcbHZlcnQiLCJcXHJ2ZXJ0IiwiXFx2ZXJ0Il0sb3I9WyJcXHwiLCJcXGxWZXJ0IiwiXFxyVmVydCIsIlxcVmVydCJdLHNyPWZ1bmN0aW9uKGUsdCxyLG4sbyxzKXtsZXQgaSxhLGgsYyxtPSIiLHA9MDtpPWg9Yz1lLGE9bnVsbDtsZXQgdT0iU2l6ZTEtUmVndWxhciI7IlxcdXBhcnJvdyI9PT1lP2g9Yz0iXHUyM2QwIjoiXFxVcGFycm93Ij09PWU/aD1jPSJcdTIwMTYiOiJcXGRvd25hcnJvdyI9PT1lP2k9aD0iXHUyM2QwIjoiXFxEb3duYXJyb3ciPT09ZT9pPWg9Ilx1MjAxNiI6IlxcdXBkb3duYXJyb3ciPT09ZT8oaT0iXFx1cGFycm93IixoPSJcdTIzZDAiLGM9IlxcZG93bmFycm93Iik6IlxcVXBkb3duYXJyb3ciPT09ZT8oaT0iXFxVcGFycm93IixoPSJcdTIwMTYiLGM9IlxcRG93bmFycm93Iik6bC5jb250YWlucyhucixlKT8oaD0iXHUyMjIzIixtPSJ2ZXJ0IixwPTMzMyk6bC5jb250YWlucyhvcixlKT8oaD0iXHUyMjI1IixtPSJkb3VibGV2ZXJ0IixwPTU1Nik6IlsiPT09ZXx8IlxcbGJyYWNrIj09PWU/KGk9Ilx1MjNhMSIsaD0iXHUyM2EyIixjPSJcdTIzYTMiLHU9IlNpemU0LVJlZ3VsYXIiLG09ImxicmFjayIscD02NjcpOiJdIj09PWV8fCJcXHJicmFjayI9PT1lPyhpPSJcdTIzYTQiLGg9Ilx1MjNhNSIsYz0iXHUyM2E2Iix1PSJTaXplNC1SZWd1bGFyIixtPSJyYnJhY2siLHA9NjY3KToiXFxsZmxvb3IiPT09ZXx8Ilx1MjMwYSI9PT1lPyhoPWk9Ilx1MjNhMiIsYz0iXHUyM2EzIix1PSJTaXplNC1SZWd1bGFyIixtPSJsZmxvb3IiLHA9NjY3KToiXFxsY2VpbCI9PT1lfHwiXHUyMzA4Ij09PWU/KGk9Ilx1MjNhMSIsaD1jPSJcdTIzYTIiLHU9IlNpemU0LVJlZ3VsYXIiLG09ImxjZWlsIixwPTY2Nyk6IlxccmZsb29yIj09PWV8fCJcdTIzMGIiPT09ZT8oaD1pPSJcdTIzYTUiLGM9Ilx1MjNhNiIsdT0iU2l6ZTQtUmVndWxhciIsbT0icmZsb29yIixwPTY2Nyk6IlxccmNlaWwiPT09ZXx8Ilx1MjMwOSI9PT1lPyhpPSJcdTIzYTQiLGg9Yz0iXHUyM2E1Iix1PSJTaXplNC1SZWd1bGFyIixtPSJyY2VpbCIscD02NjcpOiIoIj09PWV8fCJcXGxwYXJlbiI9PT1lPyhpPSJcdTIzOWIiLGg9Ilx1MjM5YyIsYz0iXHUyMzlkIix1PSJTaXplNC1SZWd1bGFyIixtPSJscGFyZW4iLHA9ODc1KToiKSI9PT1lfHwiXFxycGFyZW4iPT09ZT8oaT0iXHUyMzllIixoPSJcdTIzOWYiLGM9Ilx1MjNhMCIsdT0iU2l6ZTQtUmVndWxhciIsbT0icnBhcmVuIixwPTg3NSk6IlxceyI9PT1lfHwiXFxsYnJhY2UiPT09ZT8oaT0iXHUyM2E3IixhPSJcdTIzYTgiLGM9Ilx1MjNhOSIsaD0iXHUyM2FhIix1PSJTaXplNC1SZWd1bGFyIik6IlxcfSI9PT1lfHwiXFxyYnJhY2UiPT09ZT8oaT0iXHUyM2FiIixhPSJcdTIzYWMiLGM9Ilx1MjNhZCIsaD0iXHUyM2FhIix1PSJTaXplNC1SZWd1bGFyIik6IlxcbGdyb3VwIj09PWV8fCJcdTI3ZWUiPT09ZT8oaT0iXHUyM2E3IixjPSJcdTIzYTkiLGg9Ilx1MjNhYSIsdT0iU2l6ZTQtUmVndWxhciIpOiJcXHJncm91cCI9PT1lfHwiXHUyN2VmIj09PWU/KGk9Ilx1MjNhYiIsYz0iXHUyM2FkIixoPSJcdTIzYWEiLHU9IlNpemU0LVJlZ3VsYXIiKToiXFxsbW91c3RhY2hlIj09PWV8fCJcdTIzYjAiPT09ZT8oaT0iXHUyM2E3IixjPSJcdTIzYWQiLGg9Ilx1MjNhYSIsdT0iU2l6ZTQtUmVndWxhciIpOiJcXHJtb3VzdGFjaGUiIT09ZSYmIlx1MjNiMSIhPT1lfHwoaT0iXHUyM2FiIixjPSJcdTIzYTkiLGg9Ilx1MjNhYSIsdT0iU2l6ZTQtUmVndWxhciIpO2NvbnN0IGQ9WnQoaSx1LG8pLGc9ZC5oZWlnaHQrZC5kZXB0aCxmPVp0KGgsdSxvKSxiPWYuaGVpZ2h0K2YuZGVwdGgseT1adChjLHUsbykseD15LmhlaWdodCt5LmRlcHRoO2xldCB2PTAsaz0xO2lmKG51bGwhPT1hKXtjb25zdCBlPVp0KGEsdSxvKTt2PWUuaGVpZ2h0K2UuZGVwdGgsaz0yfWNvbnN0IFM9Zyt4K3YsTT1TK01hdGgubWF4KDAsTWF0aC5jZWlsKCh0LVMpLyhrKmIpKSkqaypiO2xldCB6PW4uZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0O3ImJih6Kj1uLnNpemVNdWx0aXBsaWVyKTtjb25zdCBBPU0vMi16LFQ9W107aWYobS5sZW5ndGg+MCl7Y29uc3QgZT1NLWcteCx0PU1hdGgucm91bmQoMWUzKk0pLHI9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJsYnJhY2siOnJldHVybiJNNDAzIDE3NTkgVjg0IEg2NjYgVjAgSDMxOSBWMTc1OSB2Iit0KyIgdjE3NTkgaDM0NyB2LTg0XG5INDAzeiBNNDAzIDE3NTkgVjAgSDMxOSBWMTc1OSB2Iit0KyIgdjE3NTkgaDg0eiI7Y2FzZSJyYnJhY2siOnJldHVybiJNMzQ3IDE3NTkgVjAgSDAgVjg0IEgyNjMgVjE3NTkgdiIrdCsiIHYxNzU5IEgwIHY4NCBIMzQ3elxuTTM0NyAxNzU5IFYwIEgyNjMgVjE3NTkgdiIrdCsiIHYxNzU5IGg4NHoiO2Nhc2UidmVydCI6cmV0dXJuIk0xNDUgMTUgdjU4NSB2Iit0KyIgdjU4NSBjMi42NjcsMTAsOS42NjcsMTUsMjEsMTVcbmMxMCwwLDE2LjY2NywtNSwyMCwtMTUgdi01ODUgdiIrLXQrIiB2LTU4NSBjLTIuNjY3LC0xMCwtOS42NjcsLTE1LC0yMSwtMTVcbmMtMTAsMCwtMTYuNjY3LDUsLTIwLDE1eiBNMTg4IDE1IEgxNDUgdjU4NSB2Iit0KyIgdjU4NSBoNDN6IjtjYXNlImRvdWJsZXZlcnQiOnJldHVybiJNMTQ1IDE1IHY1ODUgdiIrdCsiIHY1ODUgYzIuNjY3LDEwLDkuNjY3LDE1LDIxLDE1XG5jMTAsMCwxNi42NjcsLTUsMjAsLTE1IHYtNTg1IHYiKy10KyIgdi01ODUgYy0yLjY2NywtMTAsLTkuNjY3LC0xNSwtMjEsLTE1XG5jLTEwLDAsLTE2LjY2Nyw1LC0yMCwxNXogTTE4OCAxNSBIMTQ1IHY1ODUgdiIrdCsiIHY1ODUgaDQzelxuTTM2NyAxNSB2NTg1IHYiK3QrIiB2NTg1IGMyLjY2NywxMCw5LjY2NywxNSwyMSwxNVxuYzEwLDAsMTYuNjY3LC01LDIwLC0xNSB2LTU4NSB2IistdCsiIHYtNTg1IGMtMi42NjcsLTEwLC05LjY2NywtMTUsLTIxLC0xNVxuYy0xMCwwLC0xNi42NjcsNSwtMjAsMTV6IE00MTAgMTUgSDM2NyB2NTg1IHYiK3QrIiB2NTg1IGg0M3oiO2Nhc2UibGZsb29yIjpyZXR1cm4iTTMxOSA2MDIgVjAgSDQwMyBWNjAyIHYiK3QrIiB2MTcxNSBoMjYzIHY4NCBIMzE5elxuTU0zMTkgNjAyIFYwIEg0MDMgVjYwMiB2Iit0KyIgdjE3MTUgSDMxOXoiO2Nhc2UicmZsb29yIjpyZXR1cm4iTTMxOSA2MDIgVjAgSDQwMyBWNjAyIHYiK3QrIiB2MTc5OSBIMCB2LTg0IEgzMTl6XG5NTTMxOSA2MDIgVjAgSDQwMyBWNjAyIHYiK3QrIiB2MTcxNSBIMzE5eiI7Y2FzZSJsY2VpbCI6cmV0dXJuIk00MDMgMTc1OSBWODQgSDY2NiBWMCBIMzE5IFYxNzU5IHYiK3QrIiB2NjAyIGg4NHpcbk00MDMgMTc1OSBWMCBIMzE5IFYxNzU5IHYiK3QrIiB2NjAyIGg4NHoiO2Nhc2UicmNlaWwiOnJldHVybiJNMzQ3IDE3NTkgVjAgSDAgVjg0IEgyNjMgVjE3NTkgdiIrdCsiIHY2MDIgaDg0elxuTTM0NyAxNzU5IFYwIGgtODQgVjE3NTkgdiIrdCsiIHY2MDIgaDg0eiI7Y2FzZSJscGFyZW4iOnJldHVybiJNODYzLDljMCwtMiwtMiwtNSwtNiwtOWMwLDAsLTE3LDAsLTE3LDBjLTEyLjcsMCwtMTkuMywwLjMsLTIwLDFcbmMtNS4zLDUuMywtMTAuMywxMSwtMTUsMTdjLTI0Mi43LDI5NC43LC0zOTUuMyw2ODIsLTQ1OCwxMTYyYy0yMS4zLDE2My4zLC0zMy4zLDM0OSxcbi0zNiw1NTcgbDAsIisodCs4NCkrImMwLjIsNiwwLDI2LDAsNjBjMiwxNTkuMywxMCwzMTAuNywyNCw0NTRjNTMuMyw1MjgsMjEwLFxuOTQ5LjcsNDcwLDEyNjVjNC43LDYsOS43LDExLjcsMTUsMTdjMC43LDAuNyw3LDEsMTksMWMwLDAsMTgsMCwxOCwwYzQsLTQsNiwtNyw2LC05XG5jMCwtMi43LC0zLjMsLTguNywtMTAsLTE4Yy0xMzUuMywtMTkyLjcsLTIzNS41LC00MTQuMywtMzAwLjUsLTY2NWMtNjUsLTI1MC43LC0xMDIuNSxcbi01NDQuNywtMTEyLjUsLTg4MmMtMiwtMTA0LC0zLC0xNjcsLTMsLTE4OVxubDAsLSIrKHQrOTIpKyJjMCwtMTYyLjcsNS43LC0zMTQsMTcsLTQ1NGMyMC43LC0yNzIsNjMuNywtNTEzLDEyOSwtNzIzYzY1LjMsXG4tMjEwLDE1NS4zLC0zOTYuMywyNzAsLTU1OWM2LjcsLTkuMywxMCwtMTUuMywxMCwtMTh6IjtjYXNlInJwYXJlbiI6cmV0dXJuIk03NiwwYy0xNi43LDAsLTI1LDMsLTI1LDljMCwyLDIsNi4zLDYsMTNjMjEuMywyOC43LDQyLjMsNjAuMyxcbjYzLDk1Yzk2LjcsMTU2LjcsMTcyLjgsMzMyLjUsMjI4LjUsNTI3LjVjNTUuNywxOTUsOTIuOCw0MTYuNSwxMTEuNSw2NjQuNVxuYzExLjMsMTM5LjMsMTcsMjkwLjcsMTcsNDU0YzAsMjgsMS43LDQzLDMuMyw0NWwwLCIrKHQrOSkrIlxuYy0zLDQsLTMuMywxNi43LC0zLjMsMzhjMCwxNjIsLTUuNywzMTMuNywtMTcsNDU1Yy0xOC43LDI0OCwtNTUuOCw0NjkuMywtMTExLjUsNjY0XG5jLTU1LjcsMTk0LjcsLTEzMS44LDM3MC4zLC0yMjguNSw1MjdjLTIwLjcsMzQuNywtNDEuNyw2Ni4zLC02Myw5NWMtMiwzLjMsLTQsNywtNiwxMVxuYzAsNy4zLDUuNywxMSwxNywxMWMwLDAsMTEsMCwxMSwwYzkuMywwLDE0LjMsLTAuMywxNSwtMWM1LjMsLTUuMywxMC4zLC0xMSwxNSwtMTdcbmMyNDIuNywtMjk0LjcsMzk1LjMsLTY4MS43LDQ1OCwtMTE2MWMyMS4zLC0xNjQuNywzMy4zLC0zNTAuNywzNiwtNTU4XG5sMCwtIisodCsxNDQpKyJjLTIsLTE1OS4zLC0xMCwtMzEwLjcsLTI0LC00NTRjLTUzLjMsLTUyOCwtMjEwLC05NDkuNyxcbi00NzAsLTEyNjVjLTQuNywtNiwtOS43LC0xMS43LC0xNSwtMTdjLTAuNywtMC43LC02LjcsLTEsLTE4LC0xeiI7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gc3RyZXRjaHkgZGVsaW1pdGVyLiIpfX0obSxNYXRoLnJvdW5kKDFlMyplKSksbz1uZXcgSihtLHIpLHM9KHAvMWUzKS50b0ZpeGVkKDMpKyJlbSIsaT0odC8xZTMpLnRvRml4ZWQoMykrImVtIixhPW5ldyBLKFtvXSx7d2lkdGg6cyxoZWlnaHQ6aSx2aWV3Qm94OiIwIDAgIitwKyIgIit0fSksbD1WZS5tYWtlU3ZnU3BhbihbXSxbYV0sbik7bC5oZWlnaHQ9dC8xZTMsbC5zdHlsZS53aWR0aD1zLGwuc3R5bGUuaGVpZ2h0PWksVC5wdXNoKHt0eXBlOiJlbGVtIixlbGVtOmx9KX1lbHNle2lmKFQucHVzaChlcihjLHUsbykpLFQucHVzaChyciksbnVsbD09PWEpe2NvbnN0IGU9TS1nLXgrLjAxNjtULnB1c2godHIoaCxlLG4pKX1lbHNle2NvbnN0IGU9KE0tZy14LXYpLzIrLjAxNjtULnB1c2godHIoaCxlLG4pKSxULnB1c2gocnIpLFQucHVzaChlcihhLHUsbykpLFQucHVzaChyciksVC5wdXNoKHRyKGgsZSxuKSl9VC5wdXNoKHJyKSxULnB1c2goZXIoaSx1LG8pKX1jb25zdCBCPW4uaGF2aW5nQmFzZVN0eWxlKHcuVEVYVCksQz1WZS5tYWtlVkxpc3Qoe3Bvc2l0aW9uVHlwZToiYm90dG9tIixwb3NpdGlvbkRhdGE6QSxjaGlsZHJlbjpUfSxCKTtyZXR1cm4gS3QoVmUubWFrZVNwYW4oWyJkZWxpbXNpemluZyIsIm11bHQiXSxbQ10sQiksdy5URVhULG4scyl9LGlyPS4wOCxhcj1mdW5jdGlvbihlLHQscixuLG8pe2NvbnN0IHM9ZnVuY3Rpb24oZSx0LHIpe3QqPTFlMztsZXQgbj0iIjtzd2l0Y2goZSl7Y2FzZSJzcXJ0TWFpbiI6bj1mdW5jdGlvbihlLHQpe3JldHVybiJNOTUsIisoNjIyK2UrdCkrIlxuYy0yLjcsMCwtNy4xNywtMi43LC0xMy41LC04Yy01LjgsLTUuMywtOS41LC0xMCwtOS41LC0xNFxuYzAsLTIsMC4zLC0zLjMsMSwtNGMxLjMsLTIuNywyMy44MywtMjAuNyw2Ny41LC01NFxuYzQ0LjIsLTMzLjMsNjUuOCwtNTAuMyw2Ni41LC01MWMxLjMsLTEuMywzLC0yLDUsLTJjNC43LDAsOC43LDMuMywxMiwxMFxuczE3MywzNzgsMTczLDM3OGMwLjcsMCwzNS4zLC03MSwxMDQsLTIxM2M2OC43LC0xNDIsMTM3LjUsLTI4NSwyMDYuNSwtNDI5XG5jNjksLTE0NCwxMDQuNSwtMjE3LjcsMTA2LjUsLTIyMVxubCIrZS8yLjA3NSsiIC0iK2UrIlxuYzUuMywtOS4zLDEyLC0xNCwyMCwtMTRcbkg0MDAwMDB2IisoNDArZSkrIkg4NDUuMjcyNFxucy0yMjUuMjcyLDQ2NywtMjI1LjI3Miw0NjdzLTIzNSw0ODYsLTIzNSw0ODZjLTIuNyw0LjcsLTksNywtMTksN1xuYy02LDAsLTEwLC0xLC0xMiwtM3MtMTk0LC00MjIsLTE5NCwtNDIycy02NSw0NywtNjUsNDd6XG5NIisoODM0K2UpKyIgIit0KyJoNDAwMDAwdiIrKDQwK2UpKyJoLTQwMDAwMHoifSh0LE0pO2JyZWFrO2Nhc2Uic3FydFNpemUxIjpuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIk0yNjMsIisoNjAxK2UrdCkrImMwLjcsMCwxOCwzOS43LDUyLDExOVxuYzM0LDc5LjMsNjguMTY3LDE1OC43LDEwMi41LDIzOGMzNC4zLDc5LjMsNTEuOCwxMTkuMyw1Mi41LDEyMFxuYzM0MCwtNzA0LjcsNTEwLjcsLTEwNjAuMyw1MTIsLTEwNjdcbmwiK2UvMi4wODQrIiAtIitlKyJcbmM0LjcsLTcuMywxMSwtMTEsMTksLTExXG5INDAwMDB2IisoNDArZSkrIkgxMDEyLjNcbnMtMjcxLjMsNTY3LC0yNzEuMyw1NjdjLTM4LjcsODAuNywtODQsMTc1LC0xMzYsMjgzYy01MiwxMDgsLTg5LjE2NywxODUuMywtMTExLjUsMjMyXG5jLTIyLjMsNDYuNywtMzMuOCw3MC4zLC0zNC41LDcxYy00LjcsNC43LC0xMi4zLDcsLTIzLDdzLTEyLC0xLC0xMiwtMVxucy0xMDksLTI1MywtMTA5LC0yNTNjLTcyLjcsLTE2OCwtMTA5LjMsLTI1MiwtMTEwLC0yNTJjLTEwLjcsOCwtMjIsMTYuNywtMzQsMjZcbmMtMjIsMTcuMywtMzMuMywyNiwtMzQsMjZzLTI2LC0yNiwtMjYsLTI2czc2LC01OSw3NiwtNTlzNzYsLTYwLDc2LC02MHpcbk0iKygxMDAxK2UpKyIgIit0KyJoNDAwMDAwdiIrKDQwK2UpKyJoLTQwMDAwMHoifSh0LE0pO2JyZWFrO2Nhc2Uic3FydFNpemUyIjpuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIk05ODMgIisoMTArZSt0KSsiXG5sIitlLzMuMTMrIiAtIitlKyJcbmM0LC02LjcsMTAsLTEwLDE4LC0xMCBINDAwMDAwdiIrKDQwK2UpKyJcbkgxMDEzLjFzLTgzLjQsMjY4LC0yNjQuMSw4NDBjLTE4MC43LDU3MiwtMjc3LDg3Ni4zLC0yODksOTEzYy00LjcsNC43LC0xMi43LDcsLTI0LDdcbnMtMTIsMCwtMTIsMGMtMS4zLC0zLjMsLTMuNywtMTEuNywtNywtMjVjLTM1LjMsLTEyNS4zLC0xMDYuNywtMzczLjMsLTIxNCwtNzQ0XG5jLTEwLDEyLC0yMSwyNSwtMzMsMzlzLTMyLDM5LC0zMiwzOWMtNiwtNS4zLC0xNSwtMTQsLTI3LC0yNnMyNSwtMzAsMjUsLTMwXG5jMjYuNywtMzIuNyw1MiwtNjMsNzYsLTkxczUyLC02MCw1MiwtNjBzMjA4LDcyMiwyMDgsNzIyXG5jNTYsLTE3NS4zLDEyNi4zLC0zOTcuMywyMTEsLTY2NmM4NC43LC0yNjguNywxNTMuOCwtNDg4LjIsMjA3LjUsLTY1OC41XG5jNTMuNywtMTcwLjMsODQuNSwtMjY2LjgsOTIuNSwtMjg5LjV6XG5NIisoMTAwMStlKSsiICIrdCsiaDQwMDAwMHYiKyg0MCtlKSsiaC00MDAwMDB6In0odCxNKTticmVhaztjYXNlInNxcnRTaXplMyI6bj1mdW5jdGlvbihlLHQpe3JldHVybiJNNDI0LCIrKDIzOTgrZSt0KSsiXG5jLTEuMywtMC43LC0zOC41LC0xNzIsLTExMS41LC01MTRjLTczLC0zNDIsLTEwOS44LC01MTMuMywtMTEwLjUsLTUxNFxuYzAsLTIsLTEwLjcsMTQuMywtMzIsNDljLTQuNyw3LjMsLTkuOCwxNS43LC0xNS41LDI1Yy01LjcsOS4zLC05LjgsMTYsLTEyLjUsMjBcbnMtNSw3LC01LDdjLTQsLTMuMywtOC4zLC03LjcsLTEzLC0xM3MtMTMsLTEzLC0xMywtMTNzNzYsLTEyMiw3NiwtMTIyczc3LC0xMjEsNzcsLTEyMVxuczIwOSw5NjgsMjA5LDk2OGMwLC0yLDg0LjcsLTM2MS43LDI1NCwtMTA3OWMxNjkuMywtNzE3LjMsMjU0LjcsLTEwNzcuNywyNTYsLTEwODFcbmwiK2UvNC4yMjMrIiAtIitlKyJjNCwtNi43LDEwLC0xMCwxOCwtMTAgSDQwMDAwMFxudiIrKDQwK2UpKyJIMTAxNC42XG5zLTg3LjMsMzc4LjcsLTI3Mi42LDExNjZjLTE4NS4zLDc4Ny4zLC0yNzkuMywxMTgyLjMsLTI4MiwxMTg1XG5jLTIsNiwtMTAsOSwtMjQsOVxuYy04LDAsLTEyLC0wLjcsLTEyLC0yeiBNIisoMTAwMStlKSsiICIrdCsiXG5oNDAwMDAwdiIrKDQwK2UpKyJoLTQwMDAwMHoifSh0LE0pO2JyZWFrO2Nhc2Uic3FydFNpemU0IjpuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIk00NzMsIisoMjcxMytlK3QpKyJcbmMzMzkuMywtMTc5OS4zLDUwOS4zLC0yNzAwLDUxMCwtMjcwMiBsIitlLzUuMjk4KyIgLSIrZSsiXG5jMy4zLC03LjMsOS4zLC0xMSwxOCwtMTEgSDQwMDAwMHYiKyg0MCtlKSsiSDEwMTcuN1xucy05MC41LDQ3OCwtMjc2LjIsMTQ2NmMtMTg1LjcsOTg4LC0yNzkuNSwxNDgzLC0yODEuNSwxNDg1Yy0yLDYsLTEwLDksLTI0LDlcbmMtOCwwLC0xMiwtMC43LC0xMiwtMmMwLC0xLjMsLTUuMywtMzIsLTE2LC05MmMtNTAuNywtMjkzLjMsLTExOS43LC02OTMuMywtMjA3LC0xMjAwXG5jMCwtMS4zLC01LjMsOC43LC0xNiwzMGMtMTAuNywyMS4zLC0yMS4zLDQyLjcsLTMyLDY0cy0xNiwzMywtMTYsMzNzLTI2LC0yNiwtMjYsLTI2XG5zNzYsLTE1Myw3NiwtMTUzczc3LC0xNTEsNzcsLTE1MWMwLjcsMC43LDM1LjcsMjAyLDEwNSw2MDRjNjcuMyw0MDAuNywxMDIsNjAyLjcsMTA0LFxuNjA2ek0iKygxMDAxK2UpKyIgIit0KyJoNDAwMDAwdiIrKDQwK2UpKyJIMTAxNy43eiJ9KHQsTSk7YnJlYWs7Y2FzZSJzcXJ0VGFsbCI6bj1mdW5jdGlvbihlLHQscil7cmV0dXJuIk03MDIgIisoZSt0KSsiSDQwMDAwMCIrKDQwK2UpKyJcbkg3NDJ2Iisoci01NC10LWUpKyJsLTQgNC00IDRjLS42NjcuNyAtMiAxLjUtNCAyLjVzLTQuMTY3IDEuODMzLTYuNSAyLjUtNS41IDEtOS41IDFcbmgtMTJsLTI4LTg0Yy0xNi42NjctNTItOTYuNjY3IC0yOTQuMzMzLTI0MC03MjdsLTIxMiAtNjQzIC04NSAxNzBcbmMtNC0zLjMzMy04LjMzMy03LjY2Ny0xMyAtMTNsLTEzLTEzbDc3LTE1NSA3Ny0xNTZjNjYgMTk5LjMzMyAxMzkgNDE5LjY2N1xuMjE5IDY2MSBsMjE4IDY2MXpNNzAyICIrdCsiSDQwMDAwMHYiKyg0MCtlKSsiSDc0MnoifSh0LE0scil9cmV0dXJuIG59KGUsbixyKSxpPW5ldyBKKGUscyksYT1uZXcgSyhbaV0se3dpZHRoOiI0MDBlbSIsaGVpZ2h0OkYodCksdmlld0JveDoiMCAwIDQwMDAwMCAiK3IscHJlc2VydmVBc3BlY3RSYXRpbzoieE1pbllNaW4gc2xpY2UifSk7cmV0dXJuIFZlLm1ha2VTdmdTcGFuKFsiaGlkZS10YWlsIl0sW2FdLG8pfSxscj1bIigiLCJcXGxwYXJlbiIsIikiLCJcXHJwYXJlbiIsIlsiLCJcXGxicmFjayIsIl0iLCJcXHJicmFjayIsIlxceyIsIlxcbGJyYWNlIiwiXFx9IiwiXFxyYnJhY2UiLCJcXGxmbG9vciIsIlxccmZsb29yIiwiXHUyMzBhIiwiXHUyMzBiIiwiXFxsY2VpbCIsIlxccmNlaWwiLCJcdTIzMDgiLCJcdTIzMDkiLCJcXHN1cmQiXSxocj1bIlxcdXBhcnJvdyIsIlxcZG93bmFycm93IiwiXFx1cGRvd25hcnJvdyIsIlxcVXBhcnJvdyIsIlxcRG93bmFycm93IiwiXFxVcGRvd25hcnJvdyIsInwiLCJcXHwiLCJcXHZlcnQiLCJcXFZlcnQiLCJcXGx2ZXJ0IiwiXFxydmVydCIsIlxcbFZlcnQiLCJcXHJWZXJ0IiwiXFxsZ3JvdXAiLCJcXHJncm91cCIsIlx1MjdlZSIsIlx1MjdlZiIsIlxcbG1vdXN0YWNoZSIsIlxccm1vdXN0YWNoZSIsIlx1MjNiMCIsIlx1MjNiMSJdLGNyPVsiPCIsIj4iLCJcXGxhbmdsZSIsIlxccmFuZ2xlIiwiLyIsIlxcYmFja3NsYXNoIiwiXFxsdCIsIlxcZ3QiXSxtcj1bMCwxLjIsMS44LDIuNCwzXSxwcj1be3R5cGU6InNtYWxsIixzdHlsZTp3LlNDUklQVFNDUklQVH0se3R5cGU6InNtYWxsIixzdHlsZTp3LlNDUklQVH0se3R5cGU6InNtYWxsIixzdHlsZTp3LlRFWFR9LHt0eXBlOiJsYXJnZSIsc2l6ZToxfSx7dHlwZToibGFyZ2UiLHNpemU6Mn0se3R5cGU6ImxhcmdlIixzaXplOjN9LHt0eXBlOiJsYXJnZSIsc2l6ZTo0fV0sdXI9W3t0eXBlOiJzbWFsbCIsc3R5bGU6dy5TQ1JJUFRTQ1JJUFR9LHt0eXBlOiJzbWFsbCIsc3R5bGU6dy5TQ1JJUFR9LHt0eXBlOiJzbWFsbCIsc3R5bGU6dy5URVhUfSx7dHlwZToic3RhY2sifV0sZHI9W3t0eXBlOiJzbWFsbCIsc3R5bGU6dy5TQ1JJUFRTQ1JJUFR9LHt0eXBlOiJzbWFsbCIsc3R5bGU6dy5TQ1JJUFR9LHt0eXBlOiJzbWFsbCIsc3R5bGU6dy5URVhUfSx7dHlwZToibGFyZ2UiLHNpemU6MX0se3R5cGU6ImxhcmdlIixzaXplOjJ9LHt0eXBlOiJsYXJnZSIsc2l6ZTozfSx7dHlwZToibGFyZ2UiLHNpemU6NH0se3R5cGU6InN0YWNrIn1dLGdyPWZ1bmN0aW9uKGUpe2lmKCJzbWFsbCI9PT1lLnR5cGUpcmV0dXJuIk1haW4tUmVndWxhciI7aWYoImxhcmdlIj09PWUudHlwZSlyZXR1cm4iU2l6ZSIrZS5zaXplKyItUmVndWxhciI7aWYoInN0YWNrIj09PWUudHlwZSlyZXR1cm4iU2l6ZTQtUmVndWxhciI7dGhyb3cgbmV3IEVycm9yKCJBZGQgc3VwcG9ydCBmb3IgZGVsaW0gdHlwZSAnIitlLnR5cGUrIicgaGVyZS4iKX0sZnI9ZnVuY3Rpb24oZSx0LHIsbil7Zm9yKGxldCBvPU1hdGgubWluKDIsMy1uLnN0eWxlLnNpemUpO288ci5sZW5ndGgmJiJzdGFjayIhPT1yW29dLnR5cGU7bysrKXtjb25zdCBzPVp0KGUsZ3IocltvXSksIm1hdGgiKTtsZXQgaT1zLmhlaWdodCtzLmRlcHRoO2lmKCJzbWFsbCI9PT1yW29dLnR5cGUpe2kqPW4uaGF2aW5nQmFzZVN0eWxlKHJbb10uc3R5bGUpLnNpemVNdWx0aXBsaWVyfWlmKGk+dClyZXR1cm4gcltvXX1yZXR1cm4gcltyLmxlbmd0aC0xXX0sYnI9ZnVuY3Rpb24oZSx0LHIsbixvLHMpe2xldCBpOyI8Ij09PWV8fCJcXGx0Ij09PWV8fCJcdTI3ZTgiPT09ZT9lPSJcXGxhbmdsZSI6Ij4iIT09ZSYmIlxcZ3QiIT09ZSYmIlx1MjdlOSIhPT1lfHwoZT0iXFxyYW5nbGUiKSxpPWwuY29udGFpbnMoY3IsZSk/cHI6bC5jb250YWlucyhscixlKT9kcjp1cjtjb25zdCBhPWZyKGUsdCxpLG4pO3JldHVybiJzbWFsbCI9PT1hLnR5cGU/ZnVuY3Rpb24oZSx0LHIsbixvLHMpe2NvbnN0IGk9VmUubWFrZVN5bWJvbChlLCJNYWluLVJlZ3VsYXIiLG8sbiksYT1LdChpLHQsbixzKTtyZXR1cm4gciYmSnQoYSxuLHQpLGF9KGUsYS5zdHlsZSxyLG4sbyxzKToibGFyZ2UiPT09YS50eXBlP1F0KGUsYS5zaXplLHIsbixvLHMpOnNyKGUsdCxyLG4sbyxzKX07dmFyIHlyPXtzcXJ0SW1hZ2U6ZnVuY3Rpb24oZSx0KXtjb25zdCByPXQuaGF2aW5nQmFzZVNpemluZygpLG49ZnIoIlxcc3VyZCIsZSpyLnNpemVNdWx0aXBsaWVyLGRyLHIpO2xldCBvPXIuc2l6ZU11bHRpcGxpZXI7Y29uc3Qgcz1NYXRoLm1heCgwLHQubWluUnVsZVRoaWNrbmVzcy10LmZvbnRNZXRyaWNzKCkuc3FydFJ1bGVUaGlja25lc3MpO2xldCBpLGEsbD0wLGg9MCxjPTA7cmV0dXJuInNtYWxsIj09PW4udHlwZT8oYz0xZTMrMWUzKnMrODAsZTwxP289MTplPDEuNCYmKG89LjcpLGw9KDErcytpcikvbyxoPSgxK3MpL28saT1hcigic3FydE1haW4iLGwsYyxzLHQpLGkuc3R5bGUubWluV2lkdGg9IjAuODUzZW0iLGE9LjgzMy9vKToibGFyZ2UiPT09bi50eXBlPyhjPTEwODAqbXJbbi5zaXplXSxoPShtcltuLnNpemVdK3MpL28sbD0obXJbbi5zaXplXStzK2lyKS9vLGk9YXIoInNxcnRTaXplIituLnNpemUsbCxjLHMsdCksaS5zdHlsZS5taW5XaWR0aD0iMS4wMmVtIixhPTEvbyk6KGw9ZStzK2lyLGg9ZStzLGM9TWF0aC5mbG9vcigxZTMqZStzKSs4MCxpPWFyKCJzcXJ0VGFsbCIsbCxjLHMsdCksaS5zdHlsZS5taW5XaWR0aD0iMC43NDJlbSIsYT0xLjA1NiksaS5oZWlnaHQ9aCxpLnN0eWxlLmhlaWdodD1GKGwpLHtzcGFuOmksYWR2YW5jZVdpZHRoOmEscnVsZVdpZHRoOih0LmZvbnRNZXRyaWNzKCkuc3FydFJ1bGVUaGlja25lc3Mrcykqb319LHNpemVkRGVsaW06ZnVuY3Rpb24oZSx0LHIsbyxzKXtpZigiPCI9PT1lfHwiXFxsdCI9PT1lfHwiXHUyN2U4Ij09PWU/ZT0iXFxsYW5nbGUiOiI+IiE9PWUmJiJcXGd0IiE9PWUmJiJcdTI3ZTkiIT09ZXx8KGU9IlxccmFuZ2xlIiksbC5jb250YWlucyhscixlKXx8bC5jb250YWlucyhjcixlKSlyZXR1cm4gUXQoZSx0LCExLHIsbyxzKTtpZihsLmNvbnRhaW5zKGhyLGUpKXJldHVybiBzcihlLG1yW3RdLCExLHIsbyxzKTt0aHJvdyBuZXcgbigiSWxsZWdhbCBkZWxpbWl0ZXI6ICciK2UrIiciKX0sc2l6ZVRvTWF4SGVpZ2h0Om1yLGN1c3RvbVNpemVkRGVsaW06YnIsbGVmdFJpZ2h0RGVsaW06ZnVuY3Rpb24oZSx0LHIsbixvLHMpe2NvbnN0IGk9bi5mb250TWV0cmljcygpLmF4aXNIZWlnaHQqbi5zaXplTXVsdGlwbGllcixhPTUvbi5mb250TWV0cmljcygpLnB0UGVyRW0sbD1NYXRoLm1heCh0LWkscitpKSxoPU1hdGgubWF4KGwvNTAwKjkwMSwyKmwtYSk7cmV0dXJuIGJyKGUsaCwhMCxuLG8scyl9fTtjb25zdCB4cj17IlxcYmlnbCI6e21jbGFzczoibW9wZW4iLHNpemU6MX0sIlxcQmlnbCI6e21jbGFzczoibW9wZW4iLHNpemU6Mn0sIlxcYmlnZ2wiOnttY2xhc3M6Im1vcGVuIixzaXplOjN9LCJcXEJpZ2dsIjp7bWNsYXNzOiJtb3BlbiIsc2l6ZTo0fSwiXFxiaWdyIjp7bWNsYXNzOiJtY2xvc2UiLHNpemU6MX0sIlxcQmlnciI6e21jbGFzczoibWNsb3NlIixzaXplOjJ9LCJcXGJpZ2dyIjp7bWNsYXNzOiJtY2xvc2UiLHNpemU6M30sIlxcQmlnZ3IiOnttY2xhc3M6Im1jbG9zZSIsc2l6ZTo0fSwiXFxiaWdtIjp7bWNsYXNzOiJtcmVsIixzaXplOjF9LCJcXEJpZ20iOnttY2xhc3M6Im1yZWwiLHNpemU6Mn0sIlxcYmlnZ20iOnttY2xhc3M6Im1yZWwiLHNpemU6M30sIlxcQmlnZ20iOnttY2xhc3M6Im1yZWwiLHNpemU6NH0sIlxcYmlnIjp7bWNsYXNzOiJtb3JkIixzaXplOjF9LCJcXEJpZyI6e21jbGFzczoibW9yZCIsc2l6ZToyfSwiXFxiaWdnIjp7bWNsYXNzOiJtb3JkIixzaXplOjN9LCJcXEJpZ2ciOnttY2xhc3M6Im1vcmQiLHNpemU6NH19LHdyPVsiKCIsIlxcbHBhcmVuIiwiKSIsIlxccnBhcmVuIiwiWyIsIlxcbGJyYWNrIiwiXSIsIlxccmJyYWNrIiwiXFx7IiwiXFxsYnJhY2UiLCJcXH0iLCJcXHJicmFjZSIsIlxcbGZsb29yIiwiXFxyZmxvb3IiLCJcdTIzMGEiLCJcdTIzMGIiLCJcXGxjZWlsIiwiXFxyY2VpbCIsIlx1MjMwOCIsIlx1MjMwOSIsIjwiLCI+IiwiXFxsYW5nbGUiLCJcdTI3ZTgiLCJcXHJhbmdsZSIsIlx1MjdlOSIsIlxcbHQiLCJcXGd0IiwiXFxsdmVydCIsIlxccnZlcnQiLCJcXGxWZXJ0IiwiXFxyVmVydCIsIlxcbGdyb3VwIiwiXFxyZ3JvdXAiLCJcdTI3ZWUiLCJcdTI3ZWYiLCJcXGxtb3VzdGFjaGUiLCJcXHJtb3VzdGFjaGUiLCJcdTIzYjAiLCJcdTIzYjEiLCIvIiwiXFxiYWNrc2xhc2giLCJ8IiwiXFx2ZXJ0IiwiXFx8IiwiXFxWZXJ0IiwiXFx1cGFycm93IiwiXFxVcGFycm93IiwiXFxkb3duYXJyb3ciLCJcXERvd25hcnJvdyIsIlxcdXBkb3duYXJyb3ciLCJcXFVwZG93bmFycm93IiwiLiJdO2Z1bmN0aW9uIHZyKGUsdCl7Y29uc3Qgcj1SdChlKTtpZihyJiZsLmNvbnRhaW5zKHdyLHIudGV4dCkpcmV0dXJuIHI7dGhyb3cgbmV3IG4ocj8iSW52YWxpZCBkZWxpbWl0ZXIgJyIrci50ZXh0KyInIGFmdGVyICciK3QuZnVuY05hbWUrIiciOiJJbnZhbGlkIGRlbGltaXRlciB0eXBlICciK2UudHlwZSsiJyIsZSl9ZnVuY3Rpb24ga3IoZSl7aWYoIWUuYm9keSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZzogVGhlIGxlZnRyaWdodCBQYXJzZU5vZGUgd2Fzbid0IGZ1bGx5IHBhcnNlZC4iKX1qZSh7dHlwZToiZGVsaW1zaXppbmciLG5hbWVzOlsiXFxiaWdsIiwiXFxCaWdsIiwiXFxiaWdnbCIsIlxcQmlnZ2wiLCJcXGJpZ3IiLCJcXEJpZ3IiLCJcXGJpZ2dyIiwiXFxCaWdnciIsIlxcYmlnbSIsIlxcQmlnbSIsIlxcYmlnZ20iLCJcXEJpZ2dtIiwiXFxiaWciLCJcXEJpZyIsIlxcYmlnZyIsIlxcQmlnZyJdLHByb3BzOntudW1BcmdzOjEsYXJnVHlwZXM6WyJwcmltaXRpdmUiXX0saGFuZGxlcjooZSx0KT0+e2NvbnN0IHI9dnIodFswXSxlKTtyZXR1cm57dHlwZToiZGVsaW1zaXppbmciLG1vZGU6ZS5wYXJzZXIubW9kZSxzaXplOnhyW2UuZnVuY05hbWVdLnNpemUsbWNsYXNzOnhyW2UuZnVuY05hbWVdLm1jbGFzcyxkZWxpbTpyLnRleHR9fSxodG1sQnVpbGRlcjooZSx0KT0+Ii4iPT09ZS5kZWxpbT9WZS5tYWtlU3BhbihbZS5tY2xhc3NdKTp5ci5zaXplZERlbGltKGUuZGVsaW0sZS5zaXplLHQsZS5tb2RlLFtlLm1jbGFzc10pLG1hdGhtbEJ1aWxkZXI6ZT0+e2NvbnN0IHQ9W107Ii4iIT09ZS5kZWxpbSYmdC5wdXNoKGZ0KGUuZGVsaW0sZS5tb2RlKSk7Y29uc3Qgcj1uZXcgZ3QuTWF0aE5vZGUoIm1vIix0KTsibW9wZW4iPT09ZS5tY2xhc3N8fCJtY2xvc2UiPT09ZS5tY2xhc3M/ci5zZXRBdHRyaWJ1dGUoImZlbmNlIiwidHJ1ZSIpOnIuc2V0QXR0cmlidXRlKCJmZW5jZSIsImZhbHNlIiksci5zZXRBdHRyaWJ1dGUoInN0cmV0Y2h5IiwidHJ1ZSIpO2NvbnN0IG49Rih5ci5zaXplVG9NYXhIZWlnaHRbZS5zaXplXSk7cmV0dXJuIHIuc2V0QXR0cmlidXRlKCJtaW5zaXplIixuKSxyLnNldEF0dHJpYnV0ZSgibWF4c2l6ZSIsbikscn19KSxqZSh7dHlwZToibGVmdHJpZ2h0LXJpZ2h0IixuYW1lczpbIlxccmlnaHQiXSxwcm9wczp7bnVtQXJnczoxLHByaW1pdGl2ZTohMH0saGFuZGxlcjooZSx0KT0+e2NvbnN0IHI9ZS5wYXJzZXIuZ3VsbGV0Lm1hY3Jvcy5nZXQoIlxcY3VycmVudEBjb2xvciIpO2lmKHImJiJzdHJpbmciIT10eXBlb2Ygcil0aHJvdyBuZXcgbigiXFxjdXJyZW50QGNvbG9yIHNldCB0byBub24tc3RyaW5nIGluIFxccmlnaHQiKTtyZXR1cm57dHlwZToibGVmdHJpZ2h0LXJpZ2h0Iixtb2RlOmUucGFyc2VyLm1vZGUsZGVsaW06dnIodFswXSxlKS50ZXh0LGNvbG9yOnJ9fX0pLGplKHt0eXBlOiJsZWZ0cmlnaHQiLG5hbWVzOlsiXFxsZWZ0Il0scHJvcHM6e251bUFyZ3M6MSxwcmltaXRpdmU6ITB9LGhhbmRsZXI6KGUsdCk9Pntjb25zdCByPXZyKHRbMF0sZSksbj1lLnBhcnNlcjsrK24ubGVmdHJpZ2h0RGVwdGg7Y29uc3Qgbz1uLnBhcnNlRXhwcmVzc2lvbighMSk7LS1uLmxlZnRyaWdodERlcHRoLG4uZXhwZWN0KCJcXHJpZ2h0IiwhMSk7Y29uc3Qgcz1xdChuLnBhcnNlRnVuY3Rpb24oKSwibGVmdHJpZ2h0LXJpZ2h0Iik7cmV0dXJue3R5cGU6ImxlZnRyaWdodCIsbW9kZTpuLm1vZGUsYm9keTpvLGxlZnQ6ci50ZXh0LHJpZ2h0OnMuZGVsaW0scmlnaHRDb2xvcjpzLmNvbG9yfX0saHRtbEJ1aWxkZXI6KGUsdCk9PntrcihlKTtjb25zdCByPW50KGUuYm9keSx0LCEwLFsibW9wZW4iLCJtY2xvc2UiXSk7bGV0IG4sbyxzPTAsaT0wLGE9ITE7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspcltlXS5pc01pZGRsZT9hPSEwOihzPU1hdGgubWF4KHJbZV0uaGVpZ2h0LHMpLGk9TWF0aC5tYXgocltlXS5kZXB0aCxpKSk7aWYocyo9dC5zaXplTXVsdGlwbGllcixpKj10LnNpemVNdWx0aXBsaWVyLG49Ii4iPT09ZS5sZWZ0P2x0KHQsWyJtb3BlbiJdKTp5ci5sZWZ0UmlnaHREZWxpbShlLmxlZnQscyxpLHQsZS5tb2RlLFsibW9wZW4iXSksci51bnNoaWZ0KG4pLGEpZm9yKGxldCB0PTE7dDxyLmxlbmd0aDt0Kyspe2NvbnN0IG49clt0XS5pc01pZGRsZTtuJiYoclt0XT15ci5sZWZ0UmlnaHREZWxpbShuLmRlbGltLHMsaSxuLm9wdGlvbnMsZS5tb2RlLFtdKSl9aWYoIi4iPT09ZS5yaWdodClvPWx0KHQsWyJtY2xvc2UiXSk7ZWxzZXtjb25zdCByPWUucmlnaHRDb2xvcj90LndpdGhDb2xvcihlLnJpZ2h0Q29sb3IpOnQ7bz15ci5sZWZ0UmlnaHREZWxpbShlLnJpZ2h0LHMsaSxyLGUubW9kZSxbIm1jbG9zZSJdKX1yZXR1cm4gci5wdXNoKG8pLFZlLm1ha2VTcGFuKFsibWlubmVyIl0scix0KX0sbWF0aG1sQnVpbGRlcjooZSx0KT0+e2tyKGUpO2NvbnN0IHI9eHQoZS5ib2R5LHQpO2lmKCIuIiE9PWUubGVmdCl7Y29uc3QgdD1uZXcgZ3QuTWF0aE5vZGUoIm1vIixbZnQoZS5sZWZ0LGUubW9kZSldKTt0LnNldEF0dHJpYnV0ZSgiZmVuY2UiLCJ0cnVlIiksci51bnNoaWZ0KHQpfWlmKCIuIiE9PWUucmlnaHQpe2NvbnN0IHQ9bmV3IGd0Lk1hdGhOb2RlKCJtbyIsW2Z0KGUucmlnaHQsZS5tb2RlKV0pO3Quc2V0QXR0cmlidXRlKCJmZW5jZSIsInRydWUiKSxlLnJpZ2h0Q29sb3ImJnQuc2V0QXR0cmlidXRlKCJtYXRoY29sb3IiLGUucmlnaHRDb2xvciksci5wdXNoKHQpfXJldHVybiBidChyKX19KSxqZSh7dHlwZToibWlkZGxlIixuYW1lczpbIlxcbWlkZGxlIl0scHJvcHM6e251bUFyZ3M6MSxwcmltaXRpdmU6ITB9LGhhbmRsZXI6KGUsdCk9Pntjb25zdCByPXZyKHRbMF0sZSk7aWYoIWUucGFyc2VyLmxlZnRyaWdodERlcHRoKXRocm93IG5ldyBuKCJcXG1pZGRsZSB3aXRob3V0IHByZWNlZGluZyBcXGxlZnQiLHIpO3JldHVybnt0eXBlOiJtaWRkbGUiLG1vZGU6ZS5wYXJzZXIubW9kZSxkZWxpbTpyLnRleHR9fSxodG1sQnVpbGRlcjooZSx0KT0+e2xldCByO2lmKCIuIj09PWUuZGVsaW0pcj1sdCh0LFtdKTtlbHNle3I9eXIuc2l6ZWREZWxpbShlLmRlbGltLDEsdCxlLm1vZGUsW10pO2NvbnN0IG49e2RlbGltOmUuZGVsaW0sb3B0aW9uczp0fTtyLmlzTWlkZGxlPW59cmV0dXJuIHJ9LG1hdGhtbEJ1aWxkZXI6KGUsdCk9Pntjb25zdCByPSJcXHZlcnQiPT09ZS5kZWxpbXx8InwiPT09ZS5kZWxpbT9mdCgifCIsInRleHQiKTpmdChlLmRlbGltLGUubW9kZSksbj1uZXcgZ3QuTWF0aE5vZGUoIm1vIixbcl0pO3JldHVybiBuLnNldEF0dHJpYnV0ZSgiZmVuY2UiLCJ0cnVlIiksbi5zZXRBdHRyaWJ1dGUoImxzcGFjZSIsIjAuMDVlbSIpLG4uc2V0QXR0cmlidXRlKCJyc3BhY2UiLCIwLjA1ZW0iKSxufX0pO2NvbnN0IFNyPShlLHQpPT57Y29uc3Qgcj1WZS53cmFwRnJhZ21lbnQoaHQoZS5ib2R5LHQpLHQpLG49ZS5sYWJlbC5zbGljZSgxKTtsZXQgbyxzPXQuc2l6ZU11bHRpcGxpZXIsaT0wO2NvbnN0IGE9bC5pc0NoYXJhY3RlckJveChlLmJvZHkpO2lmKCJzb3V0Ij09PW4pbz1WZS5tYWtlU3BhbihbInN0cmV0Y2h5Iiwic291dCJdKSxvLmhlaWdodD10LmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3MvcyxpPS0uNSp0LmZvbnRNZXRyaWNzKCkueEhlaWdodDtlbHNlIGlmKCJwaGFzZSI9PT1uKXtjb25zdCBlPVAoe251bWJlcjouNix1bml0OiJwdCJ9LHQpLG49UCh7bnVtYmVyOi4zNSx1bml0OiJleCJ9LHQpO3MvPXQuaGF2aW5nQmFzZVNpemluZygpLnNpemVNdWx0aXBsaWVyO2NvbnN0IGE9ci5oZWlnaHQrci5kZXB0aCtlK247ci5zdHlsZS5wYWRkaW5nTGVmdD1GKGEvMitlKTtjb25zdCBsPU1hdGguZmxvb3IoMWUzKmEqcyksYz0iTTQwMDAwMCAiKyhoPWwpKyIgSDAgTCIraC8yKyIgMCBsNjUgNDUgTDE0NSAiKyhoLTgwKSsiIEg0MDAwMDB6IixtPW5ldyBLKFtuZXcgSigicGhhc2UiLGMpXSx7d2lkdGg6IjQwMGVtIixoZWlnaHQ6RihsLzFlMyksdmlld0JveDoiMCAwIDQwMDAwMCAiK2wscHJlc2VydmVBc3BlY3RSYXRpbzoieE1pbllNaW4gc2xpY2UifSk7bz1WZS5tYWtlU3ZnU3BhbihbImhpZGUtdGFpbCJdLFttXSx0KSxvLnN0eWxlLmhlaWdodD1GKGEpLGk9ci5kZXB0aCtlK259ZWxzZXsvY2FuY2VsLy50ZXN0KG4pP2F8fHIuY2xhc3Nlcy5wdXNoKCJjYW5jZWwtcGFkIik6ImFuZ2wiPT09bj9yLmNsYXNzZXMucHVzaCgiYW5nbHBhZCIpOnIuY2xhc3Nlcy5wdXNoKCJib3hwYWQiKTtsZXQgcz0wLGw9MCxoPTA7L2JveC8udGVzdChuKT8oaD1NYXRoLm1heCh0LmZvbnRNZXRyaWNzKCkuZmJveHJ1bGUsdC5taW5SdWxlVGhpY2tuZXNzKSxzPXQuZm9udE1ldHJpY3MoKS5mYm94c2VwKygiY29sb3Jib3giPT09bj8wOmgpLGw9cyk6ImFuZ2wiPT09bj8oaD1NYXRoLm1heCh0LmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3MsdC5taW5SdWxlVGhpY2tuZXNzKSxzPTQqaCxsPU1hdGgubWF4KDAsLjI1LXIuZGVwdGgpKToocz1hPy4yOjAsbD1zKSxvPUJ0KHIsbixzLGwsdCksL2Zib3h8Ym94ZWR8ZmNvbG9yYm94Ly50ZXN0KG4pPyhvLnN0eWxlLmJvcmRlclN0eWxlPSJzb2xpZCIsby5zdHlsZS5ib3JkZXJXaWR0aD1GKGgpKToiYW5nbCI9PT1uJiYuMDQ5IT09aCYmKG8uc3R5bGUuYm9yZGVyVG9wV2lkdGg9RihoKSxvLnN0eWxlLmJvcmRlclJpZ2h0V2lkdGg9RihoKSksaT1yLmRlcHRoK2wsZS5iYWNrZ3JvdW5kQ29sb3ImJihvLnN0eWxlLmJhY2tncm91bmRDb2xvcj1lLmJhY2tncm91bmRDb2xvcixlLmJvcmRlckNvbG9yJiYoby5zdHlsZS5ib3JkZXJDb2xvcj1lLmJvcmRlckNvbG9yKSl9dmFyIGg7bGV0IGM7aWYoZS5iYWNrZ3JvdW5kQ29sb3IpYz1WZS5tYWtlVkxpc3Qoe3Bvc2l0aW9uVHlwZToiaW5kaXZpZHVhbFNoaWZ0IixjaGlsZHJlbjpbe3R5cGU6ImVsZW0iLGVsZW06byxzaGlmdDppfSx7dHlwZToiZWxlbSIsZWxlbTpyLHNoaWZ0OjB9XX0sdCk7ZWxzZXtjb25zdCBlPS9jYW5jZWx8cGhhc2UvLnRlc3Qobik/WyJzdmctYWxpZ24iXTpbXTtjPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJpbmRpdmlkdWFsU2hpZnQiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpyLHNoaWZ0OjB9LHt0eXBlOiJlbGVtIixlbGVtOm8sc2hpZnQ6aSx3cmFwcGVyQ2xhc3NlczplfV19LHQpfXJldHVybi9jYW5jZWwvLnRlc3QobikmJihjLmhlaWdodD1yLmhlaWdodCxjLmRlcHRoPXIuZGVwdGgpLC9jYW5jZWwvLnRlc3QobikmJiFhP1ZlLm1ha2VTcGFuKFsibW9yZCIsImNhbmNlbC1sYXAiXSxbY10sdCk6VmUubWFrZVNwYW4oWyJtb3JkIl0sW2NdLHQpfSxNcj0oZSx0KT0+e2xldCByPTA7Y29uc3Qgbj1uZXcgZ3QuTWF0aE5vZGUoZS5sYWJlbC5pbmRleE9mKCJjb2xvcmJveCIpPi0xPyJtcGFkZGVkIjoibWVuY2xvc2UiLFt2dChlLmJvZHksdCldKTtzd2l0Y2goZS5sYWJlbCl7Y2FzZSJcXGNhbmNlbCI6bi5zZXRBdHRyaWJ1dGUoIm5vdGF0aW9uIiwidXBkaWFnb25hbHN0cmlrZSIpO2JyZWFrO2Nhc2UiXFxiY2FuY2VsIjpuLnNldEF0dHJpYnV0ZSgibm90YXRpb24iLCJkb3duZGlhZ29uYWxzdHJpa2UiKTticmVhaztjYXNlIlxccGhhc2UiOm4uc2V0QXR0cmlidXRlKCJub3RhdGlvbiIsInBoYXNvcmFuZ2xlIik7YnJlYWs7Y2FzZSJcXHNvdXQiOm4uc2V0QXR0cmlidXRlKCJub3RhdGlvbiIsImhvcml6b250YWxzdHJpa2UiKTticmVhaztjYXNlIlxcZmJveCI6bi5zZXRBdHRyaWJ1dGUoIm5vdGF0aW9uIiwiYm94Iik7YnJlYWs7Y2FzZSJcXGFuZ2wiOm4uc2V0QXR0cmlidXRlKCJub3RhdGlvbiIsImFjdHVhcmlhbCIpO2JyZWFrO2Nhc2UiXFxmY29sb3Jib3giOmNhc2UiXFxjb2xvcmJveCI6aWYocj10LmZvbnRNZXRyaWNzKCkuZmJveHNlcCp0LmZvbnRNZXRyaWNzKCkucHRQZXJFbSxuLnNldEF0dHJpYnV0ZSgid2lkdGgiLCIrIisyKnIrInB0Iiksbi5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIisiKzIqcisicHQiKSxuLnNldEF0dHJpYnV0ZSgibHNwYWNlIixyKyJwdCIpLG4uc2V0QXR0cmlidXRlKCJ2b2Zmc2V0IixyKyJwdCIpLCJcXGZjb2xvcmJveCI9PT1lLmxhYmVsKXtjb25zdCByPU1hdGgubWF4KHQuZm9udE1ldHJpY3MoKS5mYm94cnVsZSx0Lm1pblJ1bGVUaGlja25lc3MpO24uc2V0QXR0cmlidXRlKCJzdHlsZSIsImJvcmRlcjogIityKyJlbSBzb2xpZCAiK1N0cmluZyhlLmJvcmRlckNvbG9yKSl9YnJlYWs7Y2FzZSJcXHhjYW5jZWwiOm4uc2V0QXR0cmlidXRlKCJub3RhdGlvbiIsInVwZGlhZ29uYWxzdHJpa2UgZG93bmRpYWdvbmFsc3RyaWtlIil9cmV0dXJuIGUuYmFja2dyb3VuZENvbG9yJiZuLnNldEF0dHJpYnV0ZSgibWF0aGJhY2tncm91bmQiLGUuYmFja2dyb3VuZENvbG9yKSxufTtqZSh7dHlwZToiZW5jbG9zZSIsbmFtZXM6WyJcXGNvbG9yYm94Il0scHJvcHM6e251bUFyZ3M6MixhbGxvd2VkSW5UZXh0OiEwLGFyZ1R5cGVzOlsiY29sb3IiLCJ0ZXh0Il19LGhhbmRsZXIoZSx0LHIpe2xldHtwYXJzZXI6bixmdW5jTmFtZTpvfT1lO2NvbnN0IHM9cXQodFswXSwiY29sb3ItdG9rZW4iKS5jb2xvcixpPXRbMV07cmV0dXJue3R5cGU6ImVuY2xvc2UiLG1vZGU6bi5tb2RlLGxhYmVsOm8sYmFja2dyb3VuZENvbG9yOnMsYm9keTppfX0saHRtbEJ1aWxkZXI6U3IsbWF0aG1sQnVpbGRlcjpNcn0pLGplKHt0eXBlOiJlbmNsb3NlIixuYW1lczpbIlxcZmNvbG9yYm94Il0scHJvcHM6e251bUFyZ3M6MyxhbGxvd2VkSW5UZXh0OiEwLGFyZ1R5cGVzOlsiY29sb3IiLCJjb2xvciIsInRleHQiXX0saGFuZGxlcihlLHQscil7bGV0e3BhcnNlcjpuLGZ1bmNOYW1lOm99PWU7Y29uc3Qgcz1xdCh0WzBdLCJjb2xvci10b2tlbiIpLmNvbG9yLGk9cXQodFsxXSwiY29sb3ItdG9rZW4iKS5jb2xvcixhPXRbMl07cmV0dXJue3R5cGU6ImVuY2xvc2UiLG1vZGU6bi5tb2RlLGxhYmVsOm8sYmFja2dyb3VuZENvbG9yOmksYm9yZGVyQ29sb3I6cyxib2R5OmF9fSxodG1sQnVpbGRlcjpTcixtYXRobWxCdWlsZGVyOk1yfSksamUoe3R5cGU6ImVuY2xvc2UiLG5hbWVzOlsiXFxmYm94Il0scHJvcHM6e251bUFyZ3M6MSxhcmdUeXBlczpbImhib3giXSxhbGxvd2VkSW5UZXh0OiEwfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyfT1lO3JldHVybnt0eXBlOiJlbmNsb3NlIixtb2RlOnIubW9kZSxsYWJlbDoiXFxmYm94Iixib2R5OnRbMF19fX0pLGplKHt0eXBlOiJlbmNsb3NlIixuYW1lczpbIlxcY2FuY2VsIiwiXFxiY2FuY2VsIiwiXFx4Y2FuY2VsIiwiXFxzb3V0IiwiXFxwaGFzZSJdLHByb3BzOntudW1BcmdzOjF9LGhhbmRsZXIoZSx0KXtsZXR7cGFyc2VyOnIsZnVuY05hbWU6bn09ZTtjb25zdCBvPXRbMF07cmV0dXJue3R5cGU6ImVuY2xvc2UiLG1vZGU6ci5tb2RlLGxhYmVsOm4sYm9keTpvfX0saHRtbEJ1aWxkZXI6U3IsbWF0aG1sQnVpbGRlcjpNcn0pLGplKHt0eXBlOiJlbmNsb3NlIixuYW1lczpbIlxcYW5nbCJdLHByb3BzOntudW1BcmdzOjEsYXJnVHlwZXM6WyJoYm94Il0sYWxsb3dlZEluVGV4dDohMX0saGFuZGxlcihlLHQpe2xldHtwYXJzZXI6cn09ZTtyZXR1cm57dHlwZToiZW5jbG9zZSIsbW9kZTpyLm1vZGUsbGFiZWw6IlxcYW5nbCIsYm9keTp0WzBdfX19KTtjb25zdCB6cj17fTtmdW5jdGlvbiBBcihlKXtsZXR7dHlwZTp0LG5hbWVzOnIscHJvcHM6bixoYW5kbGVyOm8saHRtbEJ1aWxkZXI6cyxtYXRobWxCdWlsZGVyOml9PWU7Y29uc3QgYT17dHlwZTp0LG51bUFyZ3M6bi5udW1BcmdzfHwwLGFsbG93ZWRJblRleHQ6ITEsbnVtT3B0aW9uYWxBcmdzOjAsaGFuZGxlcjpvfTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoOysrZSl6cltyW2VdXT1hO3MmJihXZVt0XT1zKSxpJiYoX2VbdF09aSl9Y29uc3QgVHI9e307ZnVuY3Rpb24gQnIoZSx0KXtUcltlXT10fWNsYXNzIENye2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLmxleGVyPXZvaWQgMCx0aGlzLnN0YXJ0PXZvaWQgMCx0aGlzLmVuZD12b2lkIDAsdGhpcy5sZXhlcj1lLHRoaXMuc3RhcnQ9dCx0aGlzLmVuZD1yfXN0YXRpYyByYW5nZShlLHQpe3JldHVybiB0P2UmJmUubG9jJiZ0LmxvYyYmZS5sb2MubGV4ZXI9PT10LmxvYy5sZXhlcj9uZXcgQ3IoZS5sb2MubGV4ZXIsZS5sb2Muc3RhcnQsdC5sb2MuZW5kKTpudWxsOmUmJmUubG9jfX1jbGFzcyBOcntjb25zdHJ1Y3RvcihlLHQpe3RoaXMudGV4dD12b2lkIDAsdGhpcy5sb2M9dm9pZCAwLHRoaXMubm9leHBhbmQ9dm9pZCAwLHRoaXMudHJlYXRBc1JlbGF4PXZvaWQgMCx0aGlzLnRleHQ9ZSx0aGlzLmxvYz10fXJhbmdlKGUsdCl7cmV0dXJuIG5ldyBOcih0LENyLnJhbmdlKHRoaXMsZSkpfX1mdW5jdGlvbiBxcihlKXtjb25zdCB0PVtdO2UuY29uc3VtZVNwYWNlcygpO2xldCByPWUuZmV0Y2goKS50ZXh0O2ZvcigiXFxyZWxheCI9PT1yJiYoZS5jb25zdW1lKCksZS5jb25zdW1lU3BhY2VzKCkscj1lLmZldGNoKCkudGV4dCk7IlxcaGxpbmUiPT09cnx8IlxcaGRhc2hsaW5lIj09PXI7KWUuY29uc3VtZSgpLHQucHVzaCgiXFxoZGFzaGxpbmUiPT09ciksZS5jb25zdW1lU3BhY2VzKCkscj1lLmZldGNoKCkudGV4dDtyZXR1cm4gdH1jb25zdCBJcj1lPT57aWYoIWUucGFyc2VyLnNldHRpbmdzLmRpc3BsYXlNb2RlKXRocm93IG5ldyBuKCJ7IitlLmVudk5hbWUrIn0gY2FuIGJlIHVzZWQgb25seSBpbiBkaXNwbGF5IG1vZGUuIil9O2Z1bmN0aW9uIFJyKGUpe2lmKC0xPT09ZS5pbmRleE9mKCJlZCIpKXJldHVybi0xPT09ZS5pbmRleE9mKCIqIil9ZnVuY3Rpb24gSHIoZSx0LHIpe2xldHtoc2tpcEJlZm9yZUFuZEFmdGVyOm8sYWRkSm90OnMsY29sczppLGFycmF5c3RyZXRjaDphLGNvbFNlcGFyYXRpb25UeXBlOmwsYXV0b1RhZzpoLHNpbmdsZVJvdzpjLGVtcHR5U2luZ2xlUm93Om0sbWF4TnVtQ29sczpwLGxlcW5vOnV9PXQ7aWYoZS5ndWxsZXQuYmVnaW5Hcm91cCgpLGN8fGUuZ3VsbGV0Lm1hY3Jvcy5zZXQoIlxcY3IiLCJcXFxcXFxyZWxheCIpLCFhKXtjb25zdCB0PWUuZ3VsbGV0LmV4cGFuZE1hY3JvQXNUZXh0KCJcXGFycmF5c3RyZXRjaCIpO2lmKG51bGw9PXQpYT0xO2Vsc2UgaWYoYT1wYXJzZUZsb2F0KHQpLCFhfHxhPDApdGhyb3cgbmV3IG4oIkludmFsaWQgXFxhcnJheXN0cmV0Y2g6ICIrdCl9ZS5ndWxsZXQuYmVnaW5Hcm91cCgpO2xldCBkPVtdO2NvbnN0IGc9W2RdLGY9W10sYj1bXSx5PW51bGwhPWg/W106dm9pZCAwO2Z1bmN0aW9uIHgoKXtoJiZlLmd1bGxldC5tYWNyb3Muc2V0KCJcXEBlcW5zdyIsIjEiLCEwKX1mdW5jdGlvbiB3KCl7eSYmKGUuZ3VsbGV0Lm1hY3Jvcy5nZXQoIlxcZGZAdGFnIik/KHkucHVzaChlLnN1YnBhcnNlKFtuZXcgTnIoIlxcZGZAdGFnIildKSksZS5ndWxsZXQubWFjcm9zLnNldCgiXFxkZkB0YWciLHZvaWQgMCwhMCkpOnkucHVzaChCb29sZWFuKGgpJiYiMSI9PT1lLmd1bGxldC5tYWNyb3MuZ2V0KCJcXEBlcW5zdyIpKSl9Zm9yKHgoKSxiLnB1c2gocXIoZSkpOzspe2xldCB0PWUucGFyc2VFeHByZXNzaW9uKCExLGM/IlxcZW5kIjoiXFxcXCIpO2UuZ3VsbGV0LmVuZEdyb3VwKCksZS5ndWxsZXQuYmVnaW5Hcm91cCgpLHQ9e3R5cGU6Im9yZGdyb3VwIixtb2RlOmUubW9kZSxib2R5OnR9LHImJih0PXt0eXBlOiJzdHlsaW5nIixtb2RlOmUubW9kZSxzdHlsZTpyLGJvZHk6W3RdfSksZC5wdXNoKHQpO2NvbnN0IG89ZS5mZXRjaCgpLnRleHQ7aWYoIiYiPT09byl7aWYocCYmZC5sZW5ndGg9PT1wKXtpZihjfHxsKXRocm93IG5ldyBuKCJUb28gbWFueSB0YWIgY2hhcmFjdGVyczogJiIsZS5uZXh0VG9rZW4pO2Uuc2V0dGluZ3MucmVwb3J0Tm9uc3RyaWN0KCJ0ZXh0RW52IiwiVG9vIGZldyBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGUge2FycmF5fSBjb2x1bW4gYXJndW1lbnQuIil9ZS5jb25zdW1lKCl9ZWxzZXtpZigiXFxlbmQiPT09byl7dygpLDE9PT1kLmxlbmd0aCYmInN0eWxpbmciPT09dC50eXBlJiYwPT09dC5ib2R5WzBdLmJvZHkubGVuZ3RoJiYoZy5sZW5ndGg+MXx8IW0pJiZnLnBvcCgpLGIubGVuZ3RoPGcubGVuZ3RoKzEmJmIucHVzaChbXSk7YnJlYWt9aWYoIlxcXFwiIT09byl0aHJvdyBuZXcgbigiRXhwZWN0ZWQgJiBvciBcXFxcIG9yIFxcY3Igb3IgXFxlbmQiLGUubmV4dFRva2VuKTt7bGV0IHQ7ZS5jb25zdW1lKCksIiAiIT09ZS5ndWxsZXQuZnV0dXJlKCkudGV4dCYmKHQ9ZS5wYXJzZVNpemVHcm91cCghMCkpLGYucHVzaCh0P3QudmFsdWU6bnVsbCksdygpLGIucHVzaChxcihlKSksZD1bXSxnLnB1c2goZCkseCgpfX19cmV0dXJuIGUuZ3VsbGV0LmVuZEdyb3VwKCksZS5ndWxsZXQuZW5kR3JvdXAoKSx7dHlwZToiYXJyYXkiLG1vZGU6ZS5tb2RlLGFkZEpvdDpzLGFycmF5c3RyZXRjaDphLGJvZHk6Zyxjb2xzOmkscm93R2FwczpmLGhza2lwQmVmb3JlQW5kQWZ0ZXI6byxoTGluZXNCZWZvcmVSb3c6Yixjb2xTZXBhcmF0aW9uVHlwZTpsLHRhZ3M6eSxsZXFubzp1fX1mdW5jdGlvbiBPcihlKXtyZXR1cm4iZCI9PT1lLnNsaWNlKDAsMSk/ImRpc3BsYXkiOiJ0ZXh0In1jb25zdCBFcj1mdW5jdGlvbihlLHQpe2xldCByLG87Y29uc3Qgcz1lLmJvZHkubGVuZ3RoLGk9ZS5oTGluZXNCZWZvcmVSb3c7bGV0IGE9MCxoPW5ldyBBcnJheShzKTtjb25zdCBjPVtdLG09TWF0aC5tYXgodC5mb250TWV0cmljcygpLmFycmF5UnVsZVdpZHRoLHQubWluUnVsZVRoaWNrbmVzcykscD0xL3QuZm9udE1ldHJpY3MoKS5wdFBlckVtO2xldCB1PTUqcDtpZihlLmNvbFNlcGFyYXRpb25UeXBlJiYic21hbGwiPT09ZS5jb2xTZXBhcmF0aW9uVHlwZSl7dT10LmhhdmluZ1N0eWxlKHcuU0NSSVBUKS5zaXplTXVsdGlwbGllci90LnNpemVNdWx0aXBsaWVyKi4yNzc4fWNvbnN0IGQ9IkNEIj09PWUuY29sU2VwYXJhdGlvblR5cGU/UCh7bnVtYmVyOjMsdW5pdDoiZXgifSx0KToxMipwLGc9MypwLGY9ZS5hcnJheXN0cmV0Y2gqZCxiPS43KmYseT0uMypmO2xldCB4PTA7ZnVuY3Rpb24gdihlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoOysrdCl0PjAmJih4Kz0uMjUpLGMucHVzaCh7cG9zOngsaXNEYXNoZWQ6ZVt0XX0pfWZvcih2KGlbMF0pLHI9MDtyPGUuYm9keS5sZW5ndGg7KytyKXtjb25zdCBuPWUuYm9keVtyXTtsZXQgcz1iLGw9eTthPG4ubGVuZ3RoJiYoYT1uLmxlbmd0aCk7Y29uc3QgYz1uZXcgQXJyYXkobi5sZW5ndGgpO2ZvcihvPTA7bzxuLmxlbmd0aDsrK28pe2NvbnN0IGU9aHQobltvXSx0KTtsPGUuZGVwdGgmJihsPWUuZGVwdGgpLHM8ZS5oZWlnaHQmJihzPWUuaGVpZ2h0KSxjW29dPWV9Y29uc3QgbT1lLnJvd0dhcHNbcl07bGV0IHA9MDttJiYocD1QKG0sdCkscD4wJiYocCs9eSxsPHAmJihsPXApLHA9MCkpLGUuYWRkSm90JiYobCs9ZyksYy5oZWlnaHQ9cyxjLmRlcHRoPWwseCs9cyxjLnBvcz14LHgrPWwrcCxoW3JdPWMsdihpW3IrMV0pfWNvbnN0IGs9eC8yK3QuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0LFM9ZS5jb2xzfHxbXSxNPVtdO2xldCB6LEE7Y29uc3QgVD1bXTtpZihlLnRhZ3MmJmUudGFncy5zb21lKChlPT5lKSkpZm9yKHI9MDtyPHM7KytyKXtjb25zdCBuPWhbcl0sbz1uLnBvcy1rLHM9ZS50YWdzW3JdO2xldCBpO2k9ITA9PT1zP1ZlLm1ha2VTcGFuKFsiZXFuLW51bSJdLFtdLHQpOiExPT09cz9WZS5tYWtlU3BhbihbXSxbXSx0KTpWZS5tYWtlU3BhbihbXSxudChzLHQsITApLHQpLGkuZGVwdGg9bi5kZXB0aCxpLmhlaWdodD1uLmhlaWdodCxULnB1c2goe3R5cGU6ImVsZW0iLGVsZW06aSxzaGlmdDpvfSl9Zm9yKG89MCxBPTA7bzxhfHxBPFMubGVuZ3RoOysrbywrK0Epe2xldCBpLGM9U1tBXXx8e30scD0hMDtmb3IoOyJzZXBhcmF0b3IiPT09Yy50eXBlOyl7aWYocHx8KHo9VmUubWFrZVNwYW4oWyJhcnJheWNvbHNlcCJdLFtdKSx6LnN0eWxlLndpZHRoPUYodC5mb250TWV0cmljcygpLmRvdWJsZVJ1bGVTZXApLE0ucHVzaCh6KSksInwiIT09Yy5zZXBhcmF0b3ImJiI6IiE9PWMuc2VwYXJhdG9yKXRocm93IG5ldyBuKCJJbnZhbGlkIHNlcGFyYXRvciB0eXBlOiAiK2Muc2VwYXJhdG9yKTt7Y29uc3QgZT0ifCI9PT1jLnNlcGFyYXRvcj8ic29saWQiOiJkYXNoZWQiLHI9VmUubWFrZVNwYW4oWyJ2ZXJ0aWNhbC1zZXBhcmF0b3IiXSxbXSx0KTtyLnN0eWxlLmhlaWdodD1GKHgpLHIuc3R5bGUuYm9yZGVyUmlnaHRXaWR0aD1GKG0pLHIuc3R5bGUuYm9yZGVyUmlnaHRTdHlsZT1lLHIuc3R5bGUubWFyZ2luPSIwICIrRigtbS8yKTtjb25zdCBuPXgtaztuJiYoci5zdHlsZS52ZXJ0aWNhbEFsaWduPUYoLW4pKSxNLnB1c2gocil9QSsrLGM9U1tBXXx8e30scD0hMX1pZihvPj1hKWNvbnRpbnVlOyhvPjB8fGUuaHNraXBCZWZvcmVBbmRBZnRlcikmJihpPWwuZGVmbHQoYy5wcmVnYXAsdSksMCE9PWkmJih6PVZlLm1ha2VTcGFuKFsiYXJyYXljb2xzZXAiXSxbXSksei5zdHlsZS53aWR0aD1GKGkpLE0ucHVzaCh6KSkpO2xldCBkPVtdO2ZvcihyPTA7cjxzOysrcil7Y29uc3QgZT1oW3JdLHQ9ZVtvXTtpZighdCljb250aW51ZTtjb25zdCBuPWUucG9zLWs7dC5kZXB0aD1lLmRlcHRoLHQuaGVpZ2h0PWUuaGVpZ2h0LGQucHVzaCh7dHlwZToiZWxlbSIsZWxlbTp0LHNoaWZ0Om59KX1kPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJpbmRpdmlkdWFsU2hpZnQiLGNoaWxkcmVuOmR9LHQpLGQ9VmUubWFrZVNwYW4oWyJjb2wtYWxpZ24tIisoYy5hbGlnbnx8ImMiKV0sW2RdKSxNLnB1c2goZCksKG88YS0xfHxlLmhza2lwQmVmb3JlQW5kQWZ0ZXIpJiYoaT1sLmRlZmx0KGMucG9zdGdhcCx1KSwwIT09aSYmKHo9VmUubWFrZVNwYW4oWyJhcnJheWNvbHNlcCJdLFtdKSx6LnN0eWxlLndpZHRoPUYoaSksTS5wdXNoKHopKSl9aWYoaD1WZS5tYWtlU3BhbihbIm10YWJsZSJdLE0pLGMubGVuZ3RoPjApe2NvbnN0IGU9VmUubWFrZUxpbmVTcGFuKCJobGluZSIsdCxtKSxyPVZlLm1ha2VMaW5lU3BhbigiaGRhc2hsaW5lIix0LG0pLG49W3t0eXBlOiJlbGVtIixlbGVtOmgsc2hpZnQ6MH1dO2Zvcig7Yy5sZW5ndGg+MDspe2NvbnN0IHQ9Yy5wb3AoKSxvPXQucG9zLWs7dC5pc0Rhc2hlZD9uLnB1c2goe3R5cGU6ImVsZW0iLGVsZW06cixzaGlmdDpvfSk6bi5wdXNoKHt0eXBlOiJlbGVtIixlbGVtOmUsc2hpZnQ6b30pfWg9VmUubWFrZVZMaXN0KHtwb3NpdGlvblR5cGU6ImluZGl2aWR1YWxTaGlmdCIsY2hpbGRyZW46bn0sdCl9aWYoMD09PVQubGVuZ3RoKXJldHVybiBWZS5tYWtlU3BhbihbIm1vcmQiXSxbaF0sdCk7e2xldCBlPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJpbmRpdmlkdWFsU2hpZnQiLGNoaWxkcmVuOlR9LHQpO3JldHVybiBlPVZlLm1ha2VTcGFuKFsidGFnIl0sW2VdLHQpLFZlLm1ha2VGcmFnbWVudChbaCxlXSl9fSxMcj17YzoiY2VudGVyICIsbDoibGVmdCAiLHI6InJpZ2h0ICJ9LERyPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgcj1bXSxuPW5ldyBndC5NYXRoTm9kZSgibXRkIixbXSxbIm10ci1nbHVlIl0pLG89bmV3IGd0Lk1hdGhOb2RlKCJtdGQiLFtdLFsibW1sLWVxbi1udW0iXSk7Zm9yKGxldCBzPTA7czxlLmJvZHkubGVuZ3RoO3MrKyl7Y29uc3QgaT1lLmJvZHlbc10sYT1bXTtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKylhLnB1c2gobmV3IGd0Lk1hdGhOb2RlKCJtdGQiLFt2dChpW2VdLHQpXSkpO2UudGFncyYmZS50YWdzW3NdJiYoYS51bnNoaWZ0KG4pLGEucHVzaChuKSxlLmxlcW5vP2EudW5zaGlmdChvKTphLnB1c2gobykpLHIucHVzaChuZXcgZ3QuTWF0aE5vZGUoIm10ciIsYSkpfWxldCBzPW5ldyBndC5NYXRoTm9kZSgibXRhYmxlIixyKTtjb25zdCBpPS41PT09ZS5hcnJheXN0cmV0Y2g/LjE6LjE2K2UuYXJyYXlzdHJldGNoLTErKGUuYWRkSm90Py4wOTowKTtzLnNldEF0dHJpYnV0ZSgicm93c3BhY2luZyIsRihpKSk7bGV0IGE9IiIsbD0iIjtpZihlLmNvbHMmJmUuY29scy5sZW5ndGg+MCl7Y29uc3QgdD1lLmNvbHM7bGV0IHI9IiIsbj0hMSxvPTAsaT10Lmxlbmd0aDsic2VwYXJhdG9yIj09PXRbMF0udHlwZSYmKGErPSJ0b3AgIixvPTEpLCJzZXBhcmF0b3IiPT09dFt0Lmxlbmd0aC0xXS50eXBlJiYoYSs9ImJvdHRvbSAiLGktPTEpO2ZvcihsZXQgZT1vO2U8aTtlKyspImFsaWduIj09PXRbZV0udHlwZT8obCs9THJbdFtlXS5hbGlnbl0sbiYmKHIrPSJub25lICIpLG49ITApOiJzZXBhcmF0b3IiPT09dFtlXS50eXBlJiZuJiYocis9InwiPT09dFtlXS5zZXBhcmF0b3I/InNvbGlkICI6ImRhc2hlZCAiLG49ITEpO3Muc2V0QXR0cmlidXRlKCJjb2x1bW5hbGlnbiIsbC50cmltKCkpLC9bc2RdLy50ZXN0KHIpJiZzLnNldEF0dHJpYnV0ZSgiY29sdW1ubGluZXMiLHIudHJpbSgpKX1pZigiYWxpZ24iPT09ZS5jb2xTZXBhcmF0aW9uVHlwZSl7Y29uc3QgdD1lLmNvbHN8fFtdO2xldCByPSIiO2ZvcihsZXQgZT0xO2U8dC5sZW5ndGg7ZSsrKXIrPWUlMj8iMGVtICI6IjFlbSAiO3Muc2V0QXR0cmlidXRlKCJjb2x1bW5zcGFjaW5nIixyLnRyaW0oKSl9ZWxzZSJhbGlnbmF0Ij09PWUuY29sU2VwYXJhdGlvblR5cGV8fCJnYXRoZXIiPT09ZS5jb2xTZXBhcmF0aW9uVHlwZT9zLnNldEF0dHJpYnV0ZSgiY29sdW1uc3BhY2luZyIsIjBlbSIpOiJzbWFsbCI9PT1lLmNvbFNlcGFyYXRpb25UeXBlP3Muc2V0QXR0cmlidXRlKCJjb2x1bW5zcGFjaW5nIiwiMC4yNzc4ZW0iKToiQ0QiPT09ZS5jb2xTZXBhcmF0aW9uVHlwZT9zLnNldEF0dHJpYnV0ZSgiY29sdW1uc3BhY2luZyIsIjAuNWVtIik6cy5zZXRBdHRyaWJ1dGUoImNvbHVtbnNwYWNpbmciLCIxZW0iKTtsZXQgaD0iIjtjb25zdCBjPWUuaExpbmVzQmVmb3JlUm93O2ErPWNbMF0ubGVuZ3RoPjA/ImxlZnQgIjoiIixhKz1jW2MubGVuZ3RoLTFdLmxlbmd0aD4wPyJyaWdodCAiOiIiO2ZvcihsZXQgZT0xO2U8Yy5sZW5ndGgtMTtlKyspaCs9MD09PWNbZV0ubGVuZ3RoPyJub25lICI6Y1tlXVswXT8iZGFzaGVkICI6InNvbGlkICI7cmV0dXJuL1tzZF0vLnRlc3QoaCkmJnMuc2V0QXR0cmlidXRlKCJyb3dsaW5lcyIsaC50cmltKCkpLCIiIT09YSYmKHM9bmV3IGd0Lk1hdGhOb2RlKCJtZW5jbG9zZSIsW3NdKSxzLnNldEF0dHJpYnV0ZSgibm90YXRpb24iLGEudHJpbSgpKSksZS5hcnJheXN0cmV0Y2gmJmUuYXJyYXlzdHJldGNoPDEmJihzPW5ldyBndC5NYXRoTm9kZSgibXN0eWxlIixbc10pLHMuc2V0QXR0cmlidXRlKCJzY3JpcHRsZXZlbCIsIjEiKSksc30sVnI9ZnVuY3Rpb24oZSx0KXstMT09PWUuZW52TmFtZS5pbmRleE9mKCJlZCIpJiZJcihlKTtjb25zdCByPVtdLG89ZS5lbnZOYW1lLmluZGV4T2YoImF0Iik+LTE/ImFsaWduYXQiOiJhbGlnbiIscz0ic3BsaXQiPT09ZS5lbnZOYW1lLGk9SHIoZS5wYXJzZXIse2NvbHM6cixhZGRKb3Q6ITAsYXV0b1RhZzpzP3ZvaWQgMDpScihlLmVudk5hbWUpLGVtcHR5U2luZ2xlUm93OiEwLGNvbFNlcGFyYXRpb25UeXBlOm8sbWF4TnVtQ29sczpzPzI6dm9pZCAwLGxlcW5vOmUucGFyc2VyLnNldHRpbmdzLmxlcW5vfSwiZGlzcGxheSIpO2xldCBhLGw9MDtjb25zdCBoPXt0eXBlOiJvcmRncm91cCIsbW9kZTplLm1vZGUsYm9keTpbXX07aWYodFswXSYmIm9yZGdyb3VwIj09PXRbMF0udHlwZSl7bGV0IGU9IiI7Zm9yKGxldCByPTA7cjx0WzBdLmJvZHkubGVuZ3RoO3IrKyl7ZSs9cXQodFswXS5ib2R5W3JdLCJ0ZXh0b3JkIikudGV4dH1hPU51bWJlcihlKSxsPTIqYX1jb25zdCBjPSFsO2kuYm9keS5mb3JFYWNoKChmdW5jdGlvbihlKXtmb3IobGV0IHQ9MTt0PGUubGVuZ3RoO3QrPTIpe2NvbnN0IHI9cXQoZVt0XSwic3R5bGluZyIpO3F0KHIuYm9keVswXSwib3JkZ3JvdXAiKS5ib2R5LnVuc2hpZnQoaCl9aWYoYylsPGUubGVuZ3RoJiYobD1lLmxlbmd0aCk7ZWxzZXtjb25zdCB0PWUubGVuZ3RoLzI7aWYoYTx0KXRocm93IG5ldyBuKCJUb28gbWFueSBtYXRoIGluIGEgcm93OiBleHBlY3RlZCAiK2ErIiwgYnV0IGdvdCAiK3QsZVswXSl9fSkpO2ZvcihsZXQgZT0wO2U8bDsrK2Upe2xldCB0PSJyIixuPTA7ZSUyPT0xP3Q9ImwiOmU+MCYmYyYmKG49MSkscltlXT17dHlwZToiYWxpZ24iLGFsaWduOnQscHJlZ2FwOm4scG9zdGdhcDowfX1yZXR1cm4gaS5jb2xTZXBhcmF0aW9uVHlwZT1jPyJhbGlnbiI6ImFsaWduYXQiLGl9O0FyKHt0eXBlOiJhcnJheSIsbmFtZXM6WyJhcnJheSIsImRhcnJheSJdLHByb3BzOntudW1BcmdzOjF9LGhhbmRsZXIoZSx0KXtjb25zdCByPShSdCh0WzBdKT9bdFswXV06cXQodFswXSwib3JkZ3JvdXAiKS5ib2R5KS5tYXAoKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9SXQoZSkudGV4dDtpZigtMSE9PSJsY3IiLmluZGV4T2YodCkpcmV0dXJue3R5cGU6ImFsaWduIixhbGlnbjp0fTtpZigifCI9PT10KXJldHVybnt0eXBlOiJzZXBhcmF0b3IiLHNlcGFyYXRvcjoifCJ9O2lmKCI6Ij09PXQpcmV0dXJue3R5cGU6InNlcGFyYXRvciIsc2VwYXJhdG9yOiI6In07dGhyb3cgbmV3IG4oIlVua25vd24gY29sdW1uIGFsaWdubWVudDogIit0LGUpfSkpLG89e2NvbHM6cixoc2tpcEJlZm9yZUFuZEFmdGVyOiEwLG1heE51bUNvbHM6ci5sZW5ndGh9O3JldHVybiBIcihlLnBhcnNlcixvLE9yKGUuZW52TmFtZSkpfSxodG1sQnVpbGRlcjpFcixtYXRobWxCdWlsZGVyOkRyfSksQXIoe3R5cGU6ImFycmF5IixuYW1lczpbIm1hdHJpeCIsInBtYXRyaXgiLCJibWF0cml4IiwiQm1hdHJpeCIsInZtYXRyaXgiLCJWbWF0cml4IiwibWF0cml4KiIsInBtYXRyaXgqIiwiYm1hdHJpeCoiLCJCbWF0cml4KiIsInZtYXRyaXgqIiwiVm1hdHJpeCoiXSxwcm9wczp7bnVtQXJnczowfSxoYW5kbGVyKGUpe2NvbnN0IHQ9e21hdHJpeDpudWxsLHBtYXRyaXg6WyIoIiwiKSJdLGJtYXRyaXg6WyJbIiwiXSJdLEJtYXRyaXg6WyJcXHsiLCJcXH0iXSx2bWF0cml4OlsifCIsInwiXSxWbWF0cml4OlsiXFxWZXJ0IiwiXFxWZXJ0Il19W2UuZW52TmFtZS5yZXBsYWNlKCIqIiwiIildO2xldCByPSJjIjtjb25zdCBvPXtoc2tpcEJlZm9yZUFuZEFmdGVyOiExLGNvbHM6W3t0eXBlOiJhbGlnbiIsYWxpZ246cn1dfTtpZigiKiI9PT1lLmVudk5hbWUuY2hhckF0KGUuZW52TmFtZS5sZW5ndGgtMSkpe2NvbnN0IHQ9ZS5wYXJzZXI7aWYodC5jb25zdW1lU3BhY2VzKCksIlsiPT09dC5mZXRjaCgpLnRleHQpe2lmKHQuY29uc3VtZSgpLHQuY29uc3VtZVNwYWNlcygpLHI9dC5mZXRjaCgpLnRleHQsLTE9PT0ibGNyIi5pbmRleE9mKHIpKXRocm93IG5ldyBuKCJFeHBlY3RlZCBsIG9yIGMgb3IgciIsdC5uZXh0VG9rZW4pO3QuY29uc3VtZSgpLHQuY29uc3VtZVNwYWNlcygpLHQuZXhwZWN0KCJdIiksdC5jb25zdW1lKCksby5jb2xzPVt7dHlwZToiYWxpZ24iLGFsaWduOnJ9XX19Y29uc3Qgcz1IcihlLnBhcnNlcixvLE9yKGUuZW52TmFtZSkpLGk9TWF0aC5tYXgoMCwuLi5zLmJvZHkubWFwKChlPT5lLmxlbmd0aCkpKTtyZXR1cm4gcy5jb2xzPW5ldyBBcnJheShpKS5maWxsKHt0eXBlOiJhbGlnbiIsYWxpZ246cn0pLHQ/e3R5cGU6ImxlZnRyaWdodCIsbW9kZTplLm1vZGUsYm9keTpbc10sbGVmdDp0WzBdLHJpZ2h0OnRbMV0scmlnaHRDb2xvcjp2b2lkIDB9OnN9LGh0bWxCdWlsZGVyOkVyLG1hdGhtbEJ1aWxkZXI6RHJ9KSxBcih7dHlwZToiYXJyYXkiLG5hbWVzOlsic21hbGxtYXRyaXgiXSxwcm9wczp7bnVtQXJnczowfSxoYW5kbGVyKGUpe2NvbnN0IHQ9SHIoZS5wYXJzZXIse2FycmF5c3RyZXRjaDouNX0sInNjcmlwdCIpO3JldHVybiB0LmNvbFNlcGFyYXRpb25UeXBlPSJzbWFsbCIsdH0saHRtbEJ1aWxkZXI6RXIsbWF0aG1sQnVpbGRlcjpEcn0pLEFyKHt0eXBlOiJhcnJheSIsbmFtZXM6WyJzdWJhcnJheSJdLHByb3BzOntudW1BcmdzOjF9LGhhbmRsZXIoZSx0KXtjb25zdCByPShSdCh0WzBdKT9bdFswXV06cXQodFswXSwib3JkZ3JvdXAiKS5ib2R5KS5tYXAoKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9SXQoZSkudGV4dDtpZigtMSE9PSJsYyIuaW5kZXhPZih0KSlyZXR1cm57dHlwZToiYWxpZ24iLGFsaWduOnR9O3Rocm93IG5ldyBuKCJVbmtub3duIGNvbHVtbiBhbGlnbm1lbnQ6ICIrdCxlKX0pKTtpZihyLmxlbmd0aD4xKXRocm93IG5ldyBuKCJ7c3ViYXJyYXl9IGNhbiBjb250YWluIG9ubHkgb25lIGNvbHVtbiIpO2xldCBvPXtjb2xzOnIsaHNraXBCZWZvcmVBbmRBZnRlcjohMSxhcnJheXN0cmV0Y2g6LjV9O2lmKG89SHIoZS5wYXJzZXIsbywic2NyaXB0Iiksby5ib2R5Lmxlbmd0aD4wJiZvLmJvZHlbMF0ubGVuZ3RoPjEpdGhyb3cgbmV3IG4oIntzdWJhcnJheX0gY2FuIGNvbnRhaW4gb25seSBvbmUgY29sdW1uIik7cmV0dXJuIG99LGh0bWxCdWlsZGVyOkVyLG1hdGhtbEJ1aWxkZXI6RHJ9KSxBcih7dHlwZToiYXJyYXkiLG5hbWVzOlsiY2FzZXMiLCJkY2FzZXMiLCJyY2FzZXMiLCJkcmNhc2VzIl0scHJvcHM6e251bUFyZ3M6MH0saGFuZGxlcihlKXtjb25zdCB0PUhyKGUucGFyc2VyLHthcnJheXN0cmV0Y2g6MS4yLGNvbHM6W3t0eXBlOiJhbGlnbiIsYWxpZ246ImwiLHByZWdhcDowLHBvc3RnYXA6MX0se3R5cGU6ImFsaWduIixhbGlnbjoibCIscHJlZ2FwOjAscG9zdGdhcDowfV19LE9yKGUuZW52TmFtZSkpO3JldHVybnt0eXBlOiJsZWZ0cmlnaHQiLG1vZGU6ZS5tb2RlLGJvZHk6W3RdLGxlZnQ6ZS5lbnZOYW1lLmluZGV4T2YoInIiKT4tMT8iLiI6IlxceyIscmlnaHQ6ZS5lbnZOYW1lLmluZGV4T2YoInIiKT4tMT8iXFx9IjoiLiIscmlnaHRDb2xvcjp2b2lkIDB9fSxodG1sQnVpbGRlcjpFcixtYXRobWxCdWlsZGVyOkRyfSksQXIoe3R5cGU6ImFycmF5IixuYW1lczpbImFsaWduIiwiYWxpZ24qIiwiYWxpZ25lZCIsInNwbGl0Il0scHJvcHM6e251bUFyZ3M6MH0saGFuZGxlcjpWcixodG1sQnVpbGRlcjpFcixtYXRobWxCdWlsZGVyOkRyfSksQXIoe3R5cGU6ImFycmF5IixuYW1lczpbImdhdGhlcmVkIiwiZ2F0aGVyIiwiZ2F0aGVyKiJdLHByb3BzOntudW1BcmdzOjB9LGhhbmRsZXIoZSl7bC5jb250YWlucyhbImdhdGhlciIsImdhdGhlcioiXSxlLmVudk5hbWUpJiZJcihlKTtjb25zdCB0PXtjb2xzOlt7dHlwZToiYWxpZ24iLGFsaWduOiJjIn1dLGFkZEpvdDohMCxjb2xTZXBhcmF0aW9uVHlwZToiZ2F0aGVyIixhdXRvVGFnOlJyKGUuZW52TmFtZSksZW1wdHlTaW5nbGVSb3c6ITAsbGVxbm86ZS5wYXJzZXIuc2V0dGluZ3MubGVxbm99O3JldHVybiBIcihlLnBhcnNlcix0LCJkaXNwbGF5Iil9LGh0bWxCdWlsZGVyOkVyLG1hdGhtbEJ1aWxkZXI6RHJ9KSxBcih7dHlwZToiYXJyYXkiLG5hbWVzOlsiYWxpZ25hdCIsImFsaWduYXQqIiwiYWxpZ25lZGF0Il0scHJvcHM6e251bUFyZ3M6MX0saGFuZGxlcjpWcixodG1sQnVpbGRlcjpFcixtYXRobWxCdWlsZGVyOkRyfSksQXIoe3R5cGU6ImFycmF5IixuYW1lczpbImVxdWF0aW9uIiwiZXF1YXRpb24qIl0scHJvcHM6e251bUFyZ3M6MH0saGFuZGxlcihlKXtJcihlKTtjb25zdCB0PXthdXRvVGFnOlJyKGUuZW52TmFtZSksZW1wdHlTaW5nbGVSb3c6ITAsc2luZ2xlUm93OiEwLG1heE51bUNvbHM6MSxsZXFubzplLnBhcnNlci5zZXR0aW5ncy5sZXFub307cmV0dXJuIEhyKGUucGFyc2VyLHQsImRpc3BsYXkiKX0saHRtbEJ1aWxkZXI6RXIsbWF0aG1sQnVpbGRlcjpEcn0pLEFyKHt0eXBlOiJhcnJheSIsbmFtZXM6WyJDRCJdLHByb3BzOntudW1BcmdzOjB9LGhhbmRsZXIoZSl7cmV0dXJuIElyKGUpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9W107Zm9yKGUuZ3VsbGV0LmJlZ2luR3JvdXAoKSxlLmd1bGxldC5tYWNyb3Muc2V0KCJcXGNyIiwiXFxcXFxccmVsYXgiKSxlLmd1bGxldC5iZWdpbkdyb3VwKCk7Oyl7dC5wdXNoKGUucGFyc2VFeHByZXNzaW9uKCExLCJcXFxcIikpLGUuZ3VsbGV0LmVuZEdyb3VwKCksZS5ndWxsZXQuYmVnaW5Hcm91cCgpO2NvbnN0IHI9ZS5mZXRjaCgpLnRleHQ7aWYoIiYiIT09ciYmIlxcXFwiIT09cil7aWYoIlxcZW5kIj09PXIpezA9PT10W3QubGVuZ3RoLTFdLmxlbmd0aCYmdC5wb3AoKTticmVha310aHJvdyBuZXcgbigiRXhwZWN0ZWQgXFxcXCBvciBcXGNyIG9yIFxcZW5kIixlLm5leHRUb2tlbil9ZS5jb25zdW1lKCl9bGV0IHI9W107Y29uc3Qgbz1bcl07Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspe2NvbnN0IGw9dFthXTtsZXQgaD17dHlwZToic3R5bGluZyIsYm9keTpbXSxtb2RlOiJtYXRoIixzdHlsZToiZGlzcGxheSJ9O2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKWlmKFV0KGxbdF0pKXtyLnB1c2goaCksdCs9MTtjb25zdCBvPUl0KGxbdF0pLnRleHQsYT1uZXcgQXJyYXkoMik7aWYoYVswXT17dHlwZToib3JkZ3JvdXAiLG1vZGU6Im1hdGgiLGJvZHk6W119LGFbMV09e3R5cGU6Im9yZGdyb3VwIixtb2RlOiJtYXRoIixib2R5OltdfSwiPXwuIi5pbmRleE9mKG8pPi0xKTtlbHNle2lmKCEoIjw+QVYiLmluZGV4T2Yobyk+LTEpKXRocm93IG5ldyBuKCdFeHBlY3RlZCBvbmUgb2YgIjw+QVY9fC4iIGFmdGVyIEAnLGxbdF0pO2ZvcihsZXQgZT0wO2U8MjtlKyspe2xldCByPSEwO2ZvcihsZXQgaD10KzE7aDxsLmxlbmd0aDtoKyspe2lmKGk9bywoIm1hdGhvcmQiPT09KHM9bFtoXSkudHlwZXx8ImF0b20iPT09cy50eXBlKSYmcy50ZXh0PT09aSl7cj0hMSx0PWg7YnJlYWt9aWYoVXQobFtoXSkpdGhyb3cgbmV3IG4oIk1pc3NpbmcgYSAiK28rIiBjaGFyYWN0ZXIgdG8gY29tcGxldGUgYSBDRCBhcnJvdy4iLGxbaF0pO2FbZV0uYm9keS5wdXNoKGxbaF0pfWlmKHIpdGhyb3cgbmV3IG4oIk1pc3NpbmcgYSAiK28rIiBjaGFyYWN0ZXIgdG8gY29tcGxldGUgYSBDRCBhcnJvdy4iLGxbdF0pfX1jb25zdCBjPXt0eXBlOiJzdHlsaW5nIixib2R5OltZdChvLGEsZSldLG1vZGU6Im1hdGgiLHN0eWxlOiJkaXNwbGF5In07ci5wdXNoKGMpLGg9e3R5cGU6InN0eWxpbmciLGJvZHk6W10sbW9kZToibWF0aCIsc3R5bGU6ImRpc3BsYXkifX1lbHNlIGguYm9keS5wdXNoKGxbdF0pO2ElMj09MD9yLnB1c2goaCk6ci5zaGlmdCgpLHI9W10sby5wdXNoKHIpfXZhciBzLGk7cmV0dXJuIGUuZ3VsbGV0LmVuZEdyb3VwKCksZS5ndWxsZXQuZW5kR3JvdXAoKSx7dHlwZToiYXJyYXkiLG1vZGU6Im1hdGgiLGJvZHk6byxhcnJheXN0cmV0Y2g6MSxhZGRKb3Q6ITAscm93R2FwczpbbnVsbF0sY29sczpuZXcgQXJyYXkob1swXS5sZW5ndGgpLmZpbGwoe3R5cGU6ImFsaWduIixhbGlnbjoiYyIscHJlZ2FwOi4yNSxwb3N0Z2FwOi4yNX0pLGNvbFNlcGFyYXRpb25UeXBlOiJDRCIsaExpbmVzQmVmb3JlUm93Om5ldyBBcnJheShvLmxlbmd0aCsxKS5maWxsKFtdKX19KGUucGFyc2VyKX0saHRtbEJ1aWxkZXI6RXIsbWF0aG1sQnVpbGRlcjpEcn0pLEJyKCJcXG5vbnVtYmVyIiwiXFxnZGVmXFxAZXFuc3d7MH0iKSxCcigiXFxub3RhZyIsIlxcbm9udW1iZXIiKSxqZSh7dHlwZToidGV4dCIsbmFtZXM6WyJcXGhsaW5lIiwiXFxoZGFzaGxpbmUiXSxwcm9wczp7bnVtQXJnczowLGFsbG93ZWRJblRleHQ6ITAsYWxsb3dlZEluTWF0aDohMH0saGFuZGxlcihlLHQpe3Rocm93IG5ldyBuKGUuZnVuY05hbWUrIiB2YWxpZCBvbmx5IHdpdGhpbiBhcnJheSBlbnZpcm9ubWVudCIpfX0pO3ZhciBQcj16cjtqZSh7dHlwZToiZW52aXJvbm1lbnQiLG5hbWVzOlsiXFxiZWdpbiIsIlxcZW5kIl0scHJvcHM6e251bUFyZ3M6MSxhcmdUeXBlczpbInRleHQiXX0saGFuZGxlcihlLHQpe2xldHtwYXJzZXI6cixmdW5jTmFtZTpvfT1lO2NvbnN0IHM9dFswXTtpZigib3JkZ3JvdXAiIT09cy50eXBlKXRocm93IG5ldyBuKCJJbnZhbGlkIGVudmlyb25tZW50IG5hbWUiLHMpO2xldCBpPSIiO2ZvcihsZXQgZT0wO2U8cy5ib2R5Lmxlbmd0aDsrK2UpaSs9cXQocy5ib2R5W2VdLCJ0ZXh0b3JkIikudGV4dDtpZigiXFxiZWdpbiI9PT1vKXtpZighUHIuaGFzT3duUHJvcGVydHkoaSkpdGhyb3cgbmV3IG4oIk5vIHN1Y2ggZW52aXJvbm1lbnQ6ICIraSxzKTtjb25zdCBlPVByW2ldLHthcmdzOnQsb3B0QXJnczpvfT1yLnBhcnNlQXJndW1lbnRzKCJcXGJlZ2lueyIraSsifSIsZSksYT17bW9kZTpyLm1vZGUsZW52TmFtZTppLHBhcnNlcjpyfSxsPWUuaGFuZGxlcihhLHQsbyk7ci5leHBlY3QoIlxcZW5kIiwhMSk7Y29uc3QgaD1yLm5leHRUb2tlbixjPXF0KHIucGFyc2VGdW5jdGlvbigpLCJlbnZpcm9ubWVudCIpO2lmKGMubmFtZSE9PWkpdGhyb3cgbmV3IG4oIk1pc21hdGNoOiBcXGJlZ2lueyIraSsifSBtYXRjaGVkIGJ5IFxcZW5keyIrYy5uYW1lKyJ9IixoKTtyZXR1cm4gbH1yZXR1cm57dHlwZToiZW52aXJvbm1lbnQiLG1vZGU6ci5tb2RlLG5hbWU6aSxuYW1lR3JvdXA6c319fSk7Y29uc3QgRnI9KGUsdCk9Pntjb25zdCByPWUuZm9udCxuPXQud2l0aEZvbnQocik7cmV0dXJuIGh0KGUuYm9keSxuKX0sR3I9KGUsdCk9Pntjb25zdCByPWUuZm9udCxuPXQud2l0aEZvbnQocik7cmV0dXJuIHZ0KGUuYm9keSxuKX0sVXI9eyJcXEJiYiI6IlxcbWF0aGJiIiwiXFxib2xkIjoiXFxtYXRoYmYiLCJcXGZyYWsiOiJcXG1hdGhmcmFrIiwiXFxibSI6IlxcYm9sZHN5bWJvbCJ9O2plKHt0eXBlOiJmb250IixuYW1lczpbIlxcbWF0aHJtIiwiXFxtYXRoaXQiLCJcXG1hdGhiZiIsIlxcbWF0aG5vcm1hbCIsIlxcbWF0aGJiIiwiXFxtYXRoY2FsIiwiXFxtYXRoZnJhayIsIlxcbWF0aHNjciIsIlxcbWF0aHNmIiwiXFxtYXRodHQiLCJcXEJiYiIsIlxcYm9sZCIsIlxcZnJhayJdLHByb3BzOntudW1BcmdzOjEsYWxsb3dlZEluQXJndW1lbnQ6ITB9LGhhbmRsZXI6KGUsdCk9PntsZXR7cGFyc2VyOnIsZnVuY05hbWU6bn09ZTtjb25zdCBvPVplKHRbMF0pO2xldCBzPW47cmV0dXJuIHMgaW4gVXImJihzPVVyW3NdKSx7dHlwZToiZm9udCIsbW9kZTpyLm1vZGUsZm9udDpzLnNsaWNlKDEpLGJvZHk6b319LGh0bWxCdWlsZGVyOkZyLG1hdGhtbEJ1aWxkZXI6R3J9KSxqZSh7dHlwZToibWNsYXNzIixuYW1lczpbIlxcYm9sZHN5bWJvbCIsIlxcYm0iXSxwcm9wczp7bnVtQXJnczoxfSxoYW5kbGVyOihlLHQpPT57bGV0e3BhcnNlcjpyfT1lO2NvbnN0IG49dFswXSxvPWwuaXNDaGFyYWN0ZXJCb3gobik7cmV0dXJue3R5cGU6Im1jbGFzcyIsbW9kZTpyLm1vZGUsbWNsYXNzOkZ0KG4pLGJvZHk6W3t0eXBlOiJmb250Iixtb2RlOnIubW9kZSxmb250OiJib2xkc3ltYm9sIixib2R5Om59XSxpc0NoYXJhY3RlckJveDpvfX19KSxqZSh7dHlwZToiZm9udCIsbmFtZXM6WyJcXHJtIiwiXFxzZiIsIlxcdHQiLCJcXGJmIiwiXFxpdCIsIlxcY2FsIl0scHJvcHM6e251bUFyZ3M6MCxhbGxvd2VkSW5UZXh0OiEwfSxoYW5kbGVyOihlLHQpPT57bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm4sYnJlYWtPblRva2VuVGV4dDpvfT1lO2NvbnN0e21vZGU6c309cixpPXIucGFyc2VFeHByZXNzaW9uKCEwLG8pO3JldHVybnt0eXBlOiJmb250Iixtb2RlOnMsZm9udDoibWF0aCIrbi5zbGljZSgxKSxib2R5Ont0eXBlOiJvcmRncm91cCIsbW9kZTpyLm1vZGUsYm9keTppfX19LGh0bWxCdWlsZGVyOkZyLG1hdGhtbEJ1aWxkZXI6R3J9KTtjb25zdCBZcj0oZSx0KT0+e2xldCByPXQ7cmV0dXJuImRpc3BsYXkiPT09ZT9yPXIuaWQ+PXcuU0NSSVBULmlkP3IudGV4dCgpOncuRElTUExBWToidGV4dCI9PT1lJiZyLnNpemU9PT13LkRJU1BMQVkuc2l6ZT9yPXcuVEVYVDoic2NyaXB0Ij09PWU/cj13LlNDUklQVDoic2NyaXB0c2NyaXB0Ij09PWUmJihyPXcuU0NSSVBUU0NSSVBUKSxyfSxYcj0oZSx0KT0+e2NvbnN0IHI9WXIoZS5zaXplLHQuc3R5bGUpLG49ci5mcmFjTnVtKCksbz1yLmZyYWNEZW4oKTtsZXQgcztzPXQuaGF2aW5nU3R5bGUobik7Y29uc3QgaT1odChlLm51bWVyLHMsdCk7aWYoZS5jb250aW51ZWQpe2NvbnN0IGU9OC41L3QuZm9udE1ldHJpY3MoKS5wdFBlckVtLHI9My41L3QuZm9udE1ldHJpY3MoKS5wdFBlckVtO2kuaGVpZ2h0PWkuaGVpZ2h0PGU/ZTppLmhlaWdodCxpLmRlcHRoPWkuZGVwdGg8cj9yOmkuZGVwdGh9cz10LmhhdmluZ1N0eWxlKG8pO2NvbnN0IGE9aHQoZS5kZW5vbSxzLHQpO2xldCBsLGgsYyxtLHAsdSxkLGcsZixiO2lmKGUuaGFzQmFyTGluZT8oZS5iYXJTaXplPyhoPVAoZS5iYXJTaXplLHQpLGw9VmUubWFrZUxpbmVTcGFuKCJmcmFjLWxpbmUiLHQsaCkpOmw9VmUubWFrZUxpbmVTcGFuKCJmcmFjLWxpbmUiLHQpLGg9bC5oZWlnaHQsYz1sLmhlaWdodCk6KGw9bnVsbCxoPTAsYz10LmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3MpLHIuc2l6ZT09PXcuRElTUExBWS5zaXplfHwiZGlzcGxheSI9PT1lLnNpemU/KG09dC5mb250TWV0cmljcygpLm51bTEscD1oPjA/MypjOjcqYyx1PXQuZm9udE1ldHJpY3MoKS5kZW5vbTEpOihoPjA/KG09dC5mb250TWV0cmljcygpLm51bTIscD1jKToobT10LmZvbnRNZXRyaWNzKCkubnVtMyxwPTMqYyksdT10LmZvbnRNZXRyaWNzKCkuZGVub20yKSxsKXtjb25zdCBlPXQuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0O20taS5kZXB0aC0oZSsuNSpoKTxwJiYobSs9cC0obS1pLmRlcHRoLShlKy41KmgpKSksZS0uNSpoLShhLmhlaWdodC11KTxwJiYodSs9cC0oZS0uNSpoLShhLmhlaWdodC11KSkpO2NvbnN0IHI9LShlLS41KmgpO2Q9VmUubWFrZVZMaXN0KHtwb3NpdGlvblR5cGU6ImluZGl2aWR1YWxTaGlmdCIsY2hpbGRyZW46W3t0eXBlOiJlbGVtIixlbGVtOmEsc2hpZnQ6dX0se3R5cGU6ImVsZW0iLGVsZW06bCxzaGlmdDpyfSx7dHlwZToiZWxlbSIsZWxlbTppLHNoaWZ0Oi1tfV19LHQpfWVsc2V7Y29uc3QgZT1tLWkuZGVwdGgtKGEuaGVpZ2h0LXUpO2U8cCYmKG0rPS41KihwLWUpLHUrPS41KihwLWUpKSxkPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJpbmRpdmlkdWFsU2hpZnQiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTphLHNoaWZ0OnV9LHt0eXBlOiJlbGVtIixlbGVtOmksc2hpZnQ6LW19XX0sdCl9cmV0dXJuIHM9dC5oYXZpbmdTdHlsZShyKSxkLmhlaWdodCo9cy5zaXplTXVsdGlwbGllci90LnNpemVNdWx0aXBsaWVyLGQuZGVwdGgqPXMuc2l6ZU11bHRpcGxpZXIvdC5zaXplTXVsdGlwbGllcixnPXIuc2l6ZT09PXcuRElTUExBWS5zaXplP3QuZm9udE1ldHJpY3MoKS5kZWxpbTE6ci5zaXplPT09dy5TQ1JJUFRTQ1JJUFQuc2l6ZT90LmhhdmluZ1N0eWxlKHcuU0NSSVBUKS5mb250TWV0cmljcygpLmRlbGltMjp0LmZvbnRNZXRyaWNzKCkuZGVsaW0yLGY9bnVsbD09ZS5sZWZ0RGVsaW0/bHQodCxbIm1vcGVuIl0pOnlyLmN1c3RvbVNpemVkRGVsaW0oZS5sZWZ0RGVsaW0sZywhMCx0LmhhdmluZ1N0eWxlKHIpLGUubW9kZSxbIm1vcGVuIl0pLGI9ZS5jb250aW51ZWQ/VmUubWFrZVNwYW4oW10pOm51bGw9PWUucmlnaHREZWxpbT9sdCh0LFsibWNsb3NlIl0pOnlyLmN1c3RvbVNpemVkRGVsaW0oZS5yaWdodERlbGltLGcsITAsdC5oYXZpbmdTdHlsZShyKSxlLm1vZGUsWyJtY2xvc2UiXSksVmUubWFrZVNwYW4oWyJtb3JkIl0uY29uY2F0KHMuc2l6aW5nQ2xhc3Nlcyh0KSksW2YsVmUubWFrZVNwYW4oWyJtZnJhYyJdLFtkXSksYl0sdCl9LFdyPShlLHQpPT57bGV0IHI9bmV3IGd0Lk1hdGhOb2RlKCJtZnJhYyIsW3Z0KGUubnVtZXIsdCksdnQoZS5kZW5vbSx0KV0pO2lmKGUuaGFzQmFyTGluZSl7aWYoZS5iYXJTaXplKXtjb25zdCBuPVAoZS5iYXJTaXplLHQpO3Iuc2V0QXR0cmlidXRlKCJsaW5ldGhpY2tuZXNzIixGKG4pKX19ZWxzZSByLnNldEF0dHJpYnV0ZSgibGluZXRoaWNrbmVzcyIsIjBweCIpO2NvbnN0IG49WXIoZS5zaXplLHQuc3R5bGUpO2lmKG4uc2l6ZSE9PXQuc3R5bGUuc2l6ZSl7cj1uZXcgZ3QuTWF0aE5vZGUoIm1zdHlsZSIsW3JdKTtjb25zdCBlPW4uc2l6ZT09PXcuRElTUExBWS5zaXplPyJ0cnVlIjoiZmFsc2UiO3Iuc2V0QXR0cmlidXRlKCJkaXNwbGF5c3R5bGUiLGUpLHIuc2V0QXR0cmlidXRlKCJzY3JpcHRsZXZlbCIsIjAiKX1pZihudWxsIT1lLmxlZnREZWxpbXx8bnVsbCE9ZS5yaWdodERlbGltKXtjb25zdCB0PVtdO2lmKG51bGwhPWUubGVmdERlbGltKXtjb25zdCByPW5ldyBndC5NYXRoTm9kZSgibW8iLFtuZXcgZ3QuVGV4dE5vZGUoZS5sZWZ0RGVsaW0ucmVwbGFjZSgiXFwiLCIiKSldKTtyLnNldEF0dHJpYnV0ZSgiZmVuY2UiLCJ0cnVlIiksdC5wdXNoKHIpfWlmKHQucHVzaChyKSxudWxsIT1lLnJpZ2h0RGVsaW0pe2NvbnN0IHI9bmV3IGd0Lk1hdGhOb2RlKCJtbyIsW25ldyBndC5UZXh0Tm9kZShlLnJpZ2h0RGVsaW0ucmVwbGFjZSgiXFwiLCIiKSldKTtyLnNldEF0dHJpYnV0ZSgiZmVuY2UiLCJ0cnVlIiksdC5wdXNoKHIpfXJldHVybiBidCh0KX1yZXR1cm4gcn07amUoe3R5cGU6ImdlbmZyYWMiLG5hbWVzOlsiXFxkZnJhYyIsIlxcZnJhYyIsIlxcdGZyYWMiLCJcXGRiaW5vbSIsIlxcYmlub20iLCJcXHRiaW5vbSIsIlxcXFxhdG9wZnJhYyIsIlxcXFxicmFjZWZyYWMiLCJcXFxcYnJhY2tmcmFjIl0scHJvcHM6e251bUFyZ3M6MixhbGxvd2VkSW5Bcmd1bWVudDohMH0saGFuZGxlcjooZSx0KT0+e2xldHtwYXJzZXI6cixmdW5jTmFtZTpufT1lO2NvbnN0IG89dFswXSxzPXRbMV07bGV0IGksYT1udWxsLGw9bnVsbCxoPSJhdXRvIjtzd2l0Y2gobil7Y2FzZSJcXGRmcmFjIjpjYXNlIlxcZnJhYyI6Y2FzZSJcXHRmcmFjIjppPSEwO2JyZWFrO2Nhc2UiXFxcXGF0b3BmcmFjIjppPSExO2JyZWFrO2Nhc2UiXFxkYmlub20iOmNhc2UiXFxiaW5vbSI6Y2FzZSJcXHRiaW5vbSI6aT0hMSxhPSIoIixsPSIpIjticmVhaztjYXNlIlxcXFxicmFjZWZyYWMiOmk9ITEsYT0iXFx7IixsPSJcXH0iO2JyZWFrO2Nhc2UiXFxcXGJyYWNrZnJhYyI6aT0hMSxhPSJbIixsPSJdIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIGdlbmZyYWMgY29tbWFuZCIpfXN3aXRjaChuKXtjYXNlIlxcZGZyYWMiOmNhc2UiXFxkYmlub20iOmg9ImRpc3BsYXkiO2JyZWFrO2Nhc2UiXFx0ZnJhYyI6Y2FzZSJcXHRiaW5vbSI6aD0idGV4dCJ9cmV0dXJue3R5cGU6ImdlbmZyYWMiLG1vZGU6ci5tb2RlLGNvbnRpbnVlZDohMSxudW1lcjpvLGRlbm9tOnMsaGFzQmFyTGluZTppLGxlZnREZWxpbTphLHJpZ2h0RGVsaW06bCxzaXplOmgsYmFyU2l6ZTpudWxsfX0saHRtbEJ1aWxkZXI6WHIsbWF0aG1sQnVpbGRlcjpXcn0pLGplKHt0eXBlOiJnZW5mcmFjIixuYW1lczpbIlxcY2ZyYWMiXSxwcm9wczp7bnVtQXJnczoyfSxoYW5kbGVyOihlLHQpPT57bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm59PWU7Y29uc3Qgbz10WzBdLHM9dFsxXTtyZXR1cm57dHlwZToiZ2VuZnJhYyIsbW9kZTpyLm1vZGUsY29udGludWVkOiEwLG51bWVyOm8sZGVub206cyxoYXNCYXJMaW5lOiEwLGxlZnREZWxpbTpudWxsLHJpZ2h0RGVsaW06bnVsbCxzaXplOiJkaXNwbGF5IixiYXJTaXplOm51bGx9fX0pLGplKHt0eXBlOiJpbmZpeCIsbmFtZXM6WyJcXG92ZXIiLCJcXGNob29zZSIsIlxcYXRvcCIsIlxcYnJhY2UiLCJcXGJyYWNrIl0scHJvcHM6e251bUFyZ3M6MCxpbmZpeDohMH0saGFuZGxlcihlKXtsZXQgdCx7cGFyc2VyOnIsZnVuY05hbWU6bix0b2tlbjpvfT1lO3N3aXRjaChuKXtjYXNlIlxcb3ZlciI6dD0iXFxmcmFjIjticmVhaztjYXNlIlxcY2hvb3NlIjp0PSJcXGJpbm9tIjticmVhaztjYXNlIlxcYXRvcCI6dD0iXFxcXGF0b3BmcmFjIjticmVhaztjYXNlIlxcYnJhY2UiOnQ9IlxcXFxicmFjZWZyYWMiO2JyZWFrO2Nhc2UiXFxicmFjayI6dD0iXFxcXGJyYWNrZnJhYyI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBpbmZpeCBnZW5mcmFjIGNvbW1hbmQiKX1yZXR1cm57dHlwZToiaW5maXgiLG1vZGU6ci5tb2RlLHJlcGxhY2VXaXRoOnQsdG9rZW46b319fSk7Y29uc3QgX3I9WyJkaXNwbGF5IiwidGV4dCIsInNjcmlwdCIsInNjcmlwdHNjcmlwdCJdLGpyPWZ1bmN0aW9uKGUpe2xldCB0PW51bGw7cmV0dXJuIGUubGVuZ3RoPjAmJih0PWUsdD0iLiI9PT10P251bGw6dCksdH07amUoe3R5cGU6ImdlbmZyYWMiLG5hbWVzOlsiXFxnZW5mcmFjIl0scHJvcHM6e251bUFyZ3M6NixhbGxvd2VkSW5Bcmd1bWVudDohMCxhcmdUeXBlczpbIm1hdGgiLCJtYXRoIiwic2l6ZSIsInRleHQiLCJtYXRoIiwibWF0aCJdfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyfT1lO2NvbnN0IG49dFs0XSxvPXRbNV0scz1aZSh0WzBdKSxpPSJhdG9tIj09PXMudHlwZSYmIm9wZW4iPT09cy5mYW1pbHk/anIocy50ZXh0KTpudWxsLGE9WmUodFsxXSksbD0iYXRvbSI9PT1hLnR5cGUmJiJjbG9zZSI9PT1hLmZhbWlseT9qcihhLnRleHQpOm51bGwsaD1xdCh0WzJdLCJzaXplIik7bGV0IGMsbT1udWxsO2guaXNCbGFuaz9jPSEwOihtPWgudmFsdWUsYz1tLm51bWJlcj4wKTtsZXQgcD0iYXV0byIsdT10WzNdO2lmKCJvcmRncm91cCI9PT11LnR5cGUpe2lmKHUuYm9keS5sZW5ndGg+MCl7Y29uc3QgZT1xdCh1LmJvZHlbMF0sInRleHRvcmQiKTtwPV9yW051bWJlcihlLnRleHQpXX19ZWxzZSB1PXF0KHUsInRleHRvcmQiKSxwPV9yW051bWJlcih1LnRleHQpXTtyZXR1cm57dHlwZToiZ2VuZnJhYyIsbW9kZTpyLm1vZGUsbnVtZXI6bixkZW5vbTpvLGNvbnRpbnVlZDohMSxoYXNCYXJMaW5lOmMsYmFyU2l6ZTptLGxlZnREZWxpbTppLHJpZ2h0RGVsaW06bCxzaXplOnB9fSxodG1sQnVpbGRlcjpYcixtYXRobWxCdWlsZGVyOldyfSksamUoe3R5cGU6ImluZml4IixuYW1lczpbIlxcYWJvdmUiXSxwcm9wczp7bnVtQXJnczoxLGFyZ1R5cGVzOlsic2l6ZSJdLGluZml4OiEwfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm4sdG9rZW46b309ZTtyZXR1cm57dHlwZToiaW5maXgiLG1vZGU6ci5tb2RlLHJlcGxhY2VXaXRoOiJcXFxcYWJvdmVmcmFjIixzaXplOnF0KHRbMF0sInNpemUiKS52YWx1ZSx0b2tlbjpvfX19KSxqZSh7dHlwZToiZ2VuZnJhYyIsbmFtZXM6WyJcXFxcYWJvdmVmcmFjIl0scHJvcHM6e251bUFyZ3M6MyxhcmdUeXBlczpbIm1hdGgiLCJzaXplIiwibWF0aCJdfSxoYW5kbGVyOihlLHQpPT57bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm59PWU7Y29uc3Qgbz10WzBdLHM9ZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBub24tbnVsbCwgYnV0IGdvdCAiK1N0cmluZyhlKSk7cmV0dXJuIGV9KHF0KHRbMV0sImluZml4Iikuc2l6ZSksaT10WzJdLGE9cy5udW1iZXI+MDtyZXR1cm57dHlwZToiZ2VuZnJhYyIsbW9kZTpyLm1vZGUsbnVtZXI6byxkZW5vbTppLGNvbnRpbnVlZDohMSxoYXNCYXJMaW5lOmEsYmFyU2l6ZTpzLGxlZnREZWxpbTpudWxsLHJpZ2h0RGVsaW06bnVsbCxzaXplOiJhdXRvIn19LGh0bWxCdWlsZGVyOlhyLG1hdGhtbEJ1aWxkZXI6V3J9KTtjb25zdCAkcj0oZSx0KT0+e2NvbnN0IHI9dC5zdHlsZTtsZXQgbixvOyJzdXBzdWIiPT09ZS50eXBlPyhuPWUuc3VwP2h0KGUuc3VwLHQuaGF2aW5nU3R5bGUoci5zdXAoKSksdCk6aHQoZS5zdWIsdC5oYXZpbmdTdHlsZShyLnN1YigpKSx0KSxvPXF0KGUuYmFzZSwiaG9yaXpCcmFjZSIpKTpvPXF0KGUsImhvcml6QnJhY2UiKTtjb25zdCBzPWh0KG8uYmFzZSx0LmhhdmluZ0Jhc2VTdHlsZSh3LkRJU1BMQVkpKSxpPU50KG8sdCk7bGV0IGE7aWYoby5pc092ZXI/KGE9VmUubWFrZVZMaXN0KHtwb3NpdGlvblR5cGU6ImZpcnN0QmFzZWxpbmUiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpzfSx7dHlwZToia2VybiIsc2l6ZTouMX0se3R5cGU6ImVsZW0iLGVsZW06aX1dfSx0KSxhLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNsYXNzZXMucHVzaCgic3ZnLWFsaWduIikpOihhPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJib3R0b20iLHBvc2l0aW9uRGF0YTpzLmRlcHRoKy4xK2kuaGVpZ2h0LGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTppfSx7dHlwZToia2VybiIsc2l6ZTouMX0se3R5cGU6ImVsZW0iLGVsZW06c31dfSx0KSxhLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNsYXNzZXMucHVzaCgic3ZnLWFsaWduIikpLG4pe2NvbnN0IGU9VmUubWFrZVNwYW4oWyJtb3JkIixvLmlzT3Zlcj8ibW92ZXIiOiJtdW5kZXIiXSxbYV0sdCk7YT1vLmlzT3Zlcj9WZS5tYWtlVkxpc3Qoe3Bvc2l0aW9uVHlwZToiZmlyc3RCYXNlbGluZSIsY2hpbGRyZW46W3t0eXBlOiJlbGVtIixlbGVtOmV9LHt0eXBlOiJrZXJuIixzaXplOi4yfSx7dHlwZToiZWxlbSIsZWxlbTpufV19LHQpOlZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJib3R0b20iLHBvc2l0aW9uRGF0YTplLmRlcHRoKy4yK24uaGVpZ2h0K24uZGVwdGgsY2hpbGRyZW46W3t0eXBlOiJlbGVtIixlbGVtOm59LHt0eXBlOiJrZXJuIixzaXplOi4yfSx7dHlwZToiZWxlbSIsZWxlbTplfV19LHQpfXJldHVybiBWZS5tYWtlU3BhbihbIm1vcmQiLG8uaXNPdmVyPyJtb3ZlciI6Im11bmRlciJdLFthXSx0KX07amUoe3R5cGU6Imhvcml6QnJhY2UiLG5hbWVzOlsiXFxvdmVyYnJhY2UiLCJcXHVuZGVyYnJhY2UiXSxwcm9wczp7bnVtQXJnczoxfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm59PWU7cmV0dXJue3R5cGU6Imhvcml6QnJhY2UiLG1vZGU6ci5tb2RlLGxhYmVsOm4saXNPdmVyOi9eXFxvdmVyLy50ZXN0KG4pLGJhc2U6dFswXX19LGh0bWxCdWlsZGVyOiRyLG1hdGhtbEJ1aWxkZXI6KGUsdCk9Pntjb25zdCByPUN0KGUubGFiZWwpO3JldHVybiBuZXcgZ3QuTWF0aE5vZGUoZS5pc092ZXI/Im1vdmVyIjoibXVuZGVyIixbdnQoZS5iYXNlLHQpLHJdKX19KSxqZSh7dHlwZToiaHJlZiIsbmFtZXM6WyJcXGhyZWYiXSxwcm9wczp7bnVtQXJnczoyLGFyZ1R5cGVzOlsidXJsIiwib3JpZ2luYWwiXSxhbGxvd2VkSW5UZXh0OiEwfSxoYW5kbGVyOihlLHQpPT57bGV0e3BhcnNlcjpyfT1lO2NvbnN0IG49dFsxXSxvPXF0KHRbMF0sInVybCIpLnVybDtyZXR1cm4gci5zZXR0aW5ncy5pc1RydXN0ZWQoe2NvbW1hbmQ6IlxcaHJlZiIsdXJsOm99KT97dHlwZToiaHJlZiIsbW9kZTpyLm1vZGUsaHJlZjpvLGJvZHk6S2Uobil9OnIuZm9ybWF0VW5zdXBwb3J0ZWRDbWQoIlxcaHJlZiIpfSxodG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9bnQoZS5ib2R5LHQsITEpO3JldHVybiBWZS5tYWtlQW5jaG9yKGUuaHJlZixbXSxyLHQpfSxtYXRobWxCdWlsZGVyOihlLHQpPT57bGV0IHI9d3QoZS5ib2R5LHQpO3JldHVybiByIGluc3RhbmNlb2YgdXR8fChyPW5ldyB1dCgibXJvdyIsW3JdKSksci5zZXRBdHRyaWJ1dGUoImhyZWYiLGUuaHJlZikscn19KSxqZSh7dHlwZToiaHJlZiIsbmFtZXM6WyJcXHVybCJdLHByb3BzOntudW1BcmdzOjEsYXJnVHlwZXM6WyJ1cmwiXSxhbGxvd2VkSW5UZXh0OiEwfSxoYW5kbGVyOihlLHQpPT57bGV0e3BhcnNlcjpyfT1lO2NvbnN0IG49cXQodFswXSwidXJsIikudXJsO2lmKCFyLnNldHRpbmdzLmlzVHJ1c3RlZCh7Y29tbWFuZDoiXFx1cmwiLHVybDpufSkpcmV0dXJuIHIuZm9ybWF0VW5zdXBwb3J0ZWRDbWQoIlxcdXJsIik7Y29uc3Qgbz1bXTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7bGV0IHQ9bltlXTsifiI9PT10JiYodD0iXFx0ZXh0YXNjaWl0aWxkZSIpLG8ucHVzaCh7dHlwZToidGV4dG9yZCIsbW9kZToidGV4dCIsdGV4dDp0fSl9Y29uc3Qgcz17dHlwZToidGV4dCIsbW9kZTpyLm1vZGUsZm9udDoiXFx0ZXh0dHQiLGJvZHk6b307cmV0dXJue3R5cGU6ImhyZWYiLG1vZGU6ci5tb2RlLGhyZWY6bixib2R5OktlKHMpfX19KSxqZSh7dHlwZToiaGJveCIsbmFtZXM6WyJcXGhib3giXSxwcm9wczp7bnVtQXJnczoxLGFyZ1R5cGVzOlsidGV4dCJdLGFsbG93ZWRJblRleHQ6ITAscHJpbWl0aXZlOiEwfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyfT1lO3JldHVybnt0eXBlOiJoYm94Iixtb2RlOnIubW9kZSxib2R5OktlKHRbMF0pfX0saHRtbEJ1aWxkZXIoZSx0KXtjb25zdCByPW50KGUuYm9keSx0LCExKTtyZXR1cm4gVmUubWFrZUZyYWdtZW50KHIpfSxtYXRobWxCdWlsZGVyKGUsdCl7cmV0dXJuIG5ldyBndC5NYXRoTm9kZSgibXJvdyIseHQoZS5ib2R5LHQpKX19KSxqZSh7dHlwZToiaHRtbCIsbmFtZXM6WyJcXGh0bWxDbGFzcyIsIlxcaHRtbElkIiwiXFxodG1sU3R5bGUiLCJcXGh0bWxEYXRhIl0scHJvcHM6e251bUFyZ3M6MixhcmdUeXBlczpbInJhdyIsIm9yaWdpbmFsIl0sYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcjooZSx0KT0+e2xldHtwYXJzZXI6cixmdW5jTmFtZTpvLHRva2VuOnN9PWU7Y29uc3QgaT1xdCh0WzBdLCJyYXciKS5zdHJpbmcsYT10WzFdO2xldCBsO3Iuc2V0dGluZ3Muc3RyaWN0JiZyLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdCgiaHRtbEV4dGVuc2lvbiIsIkhUTUwgZXh0ZW5zaW9uIGlzIGRpc2FibGVkIG9uIHN0cmljdCBtb2RlIik7Y29uc3QgaD17fTtzd2l0Y2gobyl7Y2FzZSJcXGh0bWxDbGFzcyI6aC5jbGFzcz1pLGw9e2NvbW1hbmQ6IlxcaHRtbENsYXNzIixjbGFzczppfTticmVhaztjYXNlIlxcaHRtbElkIjpoLmlkPWksbD17Y29tbWFuZDoiXFxodG1sSWQiLGlkOml9O2JyZWFrO2Nhc2UiXFxodG1sU3R5bGUiOmguc3R5bGU9aSxsPXtjb21tYW5kOiJcXGh0bWxTdHlsZSIsc3R5bGU6aX07YnJlYWs7Y2FzZSJcXGh0bWxEYXRhIjp7Y29uc3QgZT1pLnNwbGl0KCIsIik7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IHI9ZVt0XS5zcGxpdCgiPSIpO2lmKDIhPT1yLmxlbmd0aCl0aHJvdyBuZXcgbigiRXJyb3IgcGFyc2luZyBrZXktdmFsdWUgZm9yIFxcaHRtbERhdGEiKTtoWyJkYXRhLSIrclswXS50cmltKCldPXJbMV0udHJpbSgpfWw9e2NvbW1hbmQ6IlxcaHRtbERhdGEiLGF0dHJpYnV0ZXM6aH07YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBodG1sIGNvbW1hbmQiKX1yZXR1cm4gci5zZXR0aW5ncy5pc1RydXN0ZWQobCk/e3R5cGU6Imh0bWwiLG1vZGU6ci5tb2RlLGF0dHJpYnV0ZXM6aCxib2R5OktlKGEpfTpyLmZvcm1hdFVuc3VwcG9ydGVkQ21kKG8pfSxodG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9bnQoZS5ib2R5LHQsITEpLG49WyJlbmNsb3NpbmciXTtlLmF0dHJpYnV0ZXMuY2xhc3MmJm4ucHVzaCguLi5lLmF0dHJpYnV0ZXMuY2xhc3MudHJpbSgpLnNwbGl0KC9ccysvKSk7Y29uc3Qgbz1WZS5tYWtlU3BhbihuLHIsdCk7Zm9yKGNvbnN0IHQgaW4gZS5hdHRyaWJ1dGVzKSJjbGFzcyIhPT10JiZlLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkodCkmJm8uc2V0QXR0cmlidXRlKHQsZS5hdHRyaWJ1dGVzW3RdKTtyZXR1cm4gb30sbWF0aG1sQnVpbGRlcjooZSx0KT0+d3QoZS5ib2R5LHQpfSksamUoe3R5cGU6Imh0bWxtYXRobWwiLG5hbWVzOlsiXFxodG1sQG1hdGhtbCJdLHByb3BzOntudW1BcmdzOjIsYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcjooZSx0KT0+e2xldHtwYXJzZXI6cn09ZTtyZXR1cm57dHlwZToiaHRtbG1hdGhtbCIsbW9kZTpyLm1vZGUsaHRtbDpLZSh0WzBdKSxtYXRobWw6S2UodFsxXSl9fSxodG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9bnQoZS5odG1sLHQsITEpO3JldHVybiBWZS5tYWtlRnJhZ21lbnQocil9LG1hdGhtbEJ1aWxkZXI6KGUsdCk9Pnd0KGUubWF0aG1sLHQpfSk7Y29uc3QgWnI9ZnVuY3Rpb24oZSl7aWYoL15bLStdPyAqKFxkKyhcLlxkKik/fFwuXGQrKSQvLnRlc3QoZSkpcmV0dXJue251bWJlcjorZSx1bml0OiJicCJ9O3tjb25zdCB0PS8oWy0rXT8pICooXGQrKD86XC5cZCopP3xcLlxkKykgKihbYS16XXsyfSkvLmV4ZWMoZSk7aWYoIXQpdGhyb3cgbmV3IG4oIkludmFsaWQgc2l6ZTogJyIrZSsiJyBpbiBcXGluY2x1ZGVncmFwaGljcyIpO2NvbnN0IHI9e251bWJlcjorKHRbMV0rdFsyXSksdW5pdDp0WzNdfTtpZighVihyKSl0aHJvdyBuZXcgbigiSW52YWxpZCB1bml0OiAnIityLnVuaXQrIicgaW4gXFxpbmNsdWRlZ3JhcGhpY3MuIik7cmV0dXJuIHJ9fTtqZSh7dHlwZToiaW5jbHVkZWdyYXBoaWNzIixuYW1lczpbIlxcaW5jbHVkZWdyYXBoaWNzIl0scHJvcHM6e251bUFyZ3M6MSxudW1PcHRpb25hbEFyZ3M6MSxhcmdUeXBlczpbInJhdyIsInVybCJdLGFsbG93ZWRJblRleHQ6ITF9LGhhbmRsZXI6KGUsdCxyKT0+e2xldHtwYXJzZXI6b309ZSxzPXtudW1iZXI6MCx1bml0OiJlbSJ9LGk9e251bWJlcjouOSx1bml0OiJlbSJ9LGE9e251bWJlcjowLHVuaXQ6ImVtIn0sbD0iIjtpZihyWzBdKXtjb25zdCBlPXF0KHJbMF0sInJhdyIpLnN0cmluZy5zcGxpdCgiLCIpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCByPWVbdF0uc3BsaXQoIj0iKTtpZigyPT09ci5sZW5ndGgpe2NvbnN0IGU9clsxXS50cmltKCk7c3dpdGNoKHJbMF0udHJpbSgpKXtjYXNlImFsdCI6bD1lO2JyZWFrO2Nhc2Uid2lkdGgiOnM9WnIoZSk7YnJlYWs7Y2FzZSJoZWlnaHQiOmk9WnIoZSk7YnJlYWs7Y2FzZSJ0b3RhbGhlaWdodCI6YT1acihlKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBuKCJJbnZhbGlkIGtleTogJyIrclswXSsiJyBpbiBcXGluY2x1ZGVncmFwaGljcy4iKX19fX1jb25zdCBoPXF0KHRbMF0sInVybCIpLnVybDtyZXR1cm4iIj09PWwmJihsPWgsbD1sLnJlcGxhY2UoL14uKltcXC9dLywiIiksbD1sLnN1YnN0cmluZygwLGwubGFzdEluZGV4T2YoIi4iKSkpLG8uc2V0dGluZ3MuaXNUcnVzdGVkKHtjb21tYW5kOiJcXGluY2x1ZGVncmFwaGljcyIsdXJsOmh9KT97dHlwZToiaW5jbHVkZWdyYXBoaWNzIixtb2RlOm8ubW9kZSxhbHQ6bCx3aWR0aDpzLGhlaWdodDppLHRvdGFsaGVpZ2h0OmEsc3JjOmh9Om8uZm9ybWF0VW5zdXBwb3J0ZWRDbWQoIlxcaW5jbHVkZWdyYXBoaWNzIil9LGh0bWxCdWlsZGVyOihlLHQpPT57Y29uc3Qgcj1QKGUuaGVpZ2h0LHQpO2xldCBuPTA7ZS50b3RhbGhlaWdodC5udW1iZXI+MCYmKG49UChlLnRvdGFsaGVpZ2h0LHQpLXIpO2xldCBvPTA7ZS53aWR0aC5udW1iZXI+MCYmKG89UChlLndpZHRoLHQpKTtjb25zdCBzPXtoZWlnaHQ6RihyK24pfTtvPjAmJihzLndpZHRoPUYobykpLG4+MCYmKHMudmVydGljYWxBbGlnbj1GKC1uKSk7Y29uc3QgaT1uZXcgaihlLnNyYyxlLmFsdCxzKTtyZXR1cm4gaS5oZWlnaHQ9cixpLmRlcHRoPW4saX0sbWF0aG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9bmV3IGd0Lk1hdGhOb2RlKCJtZ2x5cGgiLFtdKTtyLnNldEF0dHJpYnV0ZSgiYWx0IixlLmFsdCk7Y29uc3Qgbj1QKGUuaGVpZ2h0LHQpO2xldCBvPTA7aWYoZS50b3RhbGhlaWdodC5udW1iZXI+MCYmKG89UChlLnRvdGFsaGVpZ2h0LHQpLW4sci5zZXRBdHRyaWJ1dGUoInZhbGlnbiIsRigtbykpKSxyLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixGKG4rbykpLGUud2lkdGgubnVtYmVyPjApe2NvbnN0IG49UChlLndpZHRoLHQpO3Iuc2V0QXR0cmlidXRlKCJ3aWR0aCIsRihuKSl9cmV0dXJuIHIuc2V0QXR0cmlidXRlKCJzcmMiLGUuc3JjKSxyfX0pLGplKHt0eXBlOiJrZXJuIixuYW1lczpbIlxca2VybiIsIlxcbWtlcm4iLCJcXGhza2lwIiwiXFxtc2tpcCJdLHByb3BzOntudW1BcmdzOjEsYXJnVHlwZXM6WyJzaXplIl0scHJpbWl0aXZlOiEwLGFsbG93ZWRJblRleHQ6ITB9LGhhbmRsZXIoZSx0KXtsZXR7cGFyc2VyOnIsZnVuY05hbWU6bn09ZTtjb25zdCBvPXF0KHRbMF0sInNpemUiKTtpZihyLnNldHRpbmdzLnN0cmljdCl7Y29uc3QgZT0ibSI9PT1uWzFdLHQ9Im11Ij09PW8udmFsdWUudW5pdDtlPyh0fHxyLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdCgibWF0aFZzVGV4dFVuaXRzIiwiTGFUZVgncyAiK24rIiBzdXBwb3J0cyBvbmx5IG11IHVuaXRzLCBub3QgIitvLnZhbHVlLnVuaXQrIiB1bml0cyIpLCJtYXRoIiE9PXIubW9kZSYmci5zZXR0aW5ncy5yZXBvcnROb25zdHJpY3QoIm1hdGhWc1RleHRVbml0cyIsIkxhVGVYJ3MgIituKyIgd29ya3Mgb25seSBpbiBtYXRoIG1vZGUiKSk6dCYmci5zZXR0aW5ncy5yZXBvcnROb25zdHJpY3QoIm1hdGhWc1RleHRVbml0cyIsIkxhVGVYJ3MgIituKyIgZG9lc24ndCBzdXBwb3J0IG11IHVuaXRzIil9cmV0dXJue3R5cGU6Imtlcm4iLG1vZGU6ci5tb2RlLGRpbWVuc2lvbjpvLnZhbHVlfX0saHRtbEJ1aWxkZXIoZSx0KXtyZXR1cm4gVmUubWFrZUdsdWUoZS5kaW1lbnNpb24sdCl9LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPVAoZS5kaW1lbnNpb24sdCk7cmV0dXJuIG5ldyBndC5TcGFjZU5vZGUocil9fSksamUoe3R5cGU6ImxhcCIsbmFtZXM6WyJcXG1hdGhsbGFwIiwiXFxtYXRocmxhcCIsIlxcbWF0aGNsYXAiXSxwcm9wczp7bnVtQXJnczoxLGFsbG93ZWRJblRleHQ6ITB9LGhhbmRsZXI6KGUsdCk9PntsZXR7cGFyc2VyOnIsZnVuY05hbWU6bn09ZTtjb25zdCBvPXRbMF07cmV0dXJue3R5cGU6ImxhcCIsbW9kZTpyLm1vZGUsYWxpZ25tZW50Om4uc2xpY2UoNSksYm9keTpvfX0saHRtbEJ1aWxkZXI6KGUsdCk9PntsZXQgcjsiY2xhcCI9PT1lLmFsaWdubWVudD8ocj1WZS5tYWtlU3BhbihbXSxbaHQoZS5ib2R5LHQpXSkscj1WZS5tYWtlU3BhbihbImlubmVyIl0sW3JdLHQpKTpyPVZlLm1ha2VTcGFuKFsiaW5uZXIiXSxbaHQoZS5ib2R5LHQpXSk7Y29uc3Qgbj1WZS5tYWtlU3BhbihbImZpeCJdLFtdKTtsZXQgbz1WZS5tYWtlU3BhbihbZS5hbGlnbm1lbnRdLFtyLG5dLHQpO2NvbnN0IHM9VmUubWFrZVNwYW4oWyJzdHJ1dCJdKTtyZXR1cm4gcy5zdHlsZS5oZWlnaHQ9RihvLmhlaWdodCtvLmRlcHRoKSxvLmRlcHRoJiYocy5zdHlsZS52ZXJ0aWNhbEFsaWduPUYoLW8uZGVwdGgpKSxvLmNoaWxkcmVuLnVuc2hpZnQocyksbz1WZS5tYWtlU3BhbihbInRoaW5ib3giXSxbb10sdCksVmUubWFrZVNwYW4oWyJtb3JkIiwidmJveCJdLFtvXSx0KX0sbWF0aG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9bmV3IGd0Lk1hdGhOb2RlKCJtcGFkZGVkIixbdnQoZS5ib2R5LHQpXSk7aWYoInJsYXAiIT09ZS5hbGlnbm1lbnQpe2NvbnN0IHQ9ImxsYXAiPT09ZS5hbGlnbm1lbnQ/Ii0xIjoiLTAuNSI7ci5zZXRBdHRyaWJ1dGUoImxzcGFjZSIsdCsid2lkdGgiKX1yZXR1cm4gci5zZXRBdHRyaWJ1dGUoIndpZHRoIiwiMHB4Iikscn19KSxqZSh7dHlwZToic3R5bGluZyIsbmFtZXM6WyJcXCgiLCIkIl0scHJvcHM6e251bUFyZ3M6MCxhbGxvd2VkSW5UZXh0OiEwLGFsbG93ZWRJbk1hdGg6ITF9LGhhbmRsZXIoZSx0KXtsZXR7ZnVuY05hbWU6cixwYXJzZXI6bn09ZTtjb25zdCBvPW4ubW9kZTtuLnN3aXRjaE1vZGUoIm1hdGgiKTtjb25zdCBzPSJcXCgiPT09cj8iXFwpIjoiJCIsaT1uLnBhcnNlRXhwcmVzc2lvbighMSxzKTtyZXR1cm4gbi5leHBlY3Qocyksbi5zd2l0Y2hNb2RlKG8pLHt0eXBlOiJzdHlsaW5nIixtb2RlOm4ubW9kZSxzdHlsZToidGV4dCIsYm9keTppfX19KSxqZSh7dHlwZToidGV4dCIsbmFtZXM6WyJcXCkiLCJcXF0iXSxwcm9wczp7bnVtQXJnczowLGFsbG93ZWRJblRleHQ6ITAsYWxsb3dlZEluTWF0aDohMX0saGFuZGxlcihlLHQpe3Rocm93IG5ldyBuKCJNaXNtYXRjaGVkICIrZS5mdW5jTmFtZSl9fSk7Y29uc3QgS3I9KGUsdCk9Pntzd2l0Y2godC5zdHlsZS5zaXplKXtjYXNlIHcuRElTUExBWS5zaXplOnJldHVybiBlLmRpc3BsYXk7Y2FzZSB3LlRFWFQuc2l6ZTpyZXR1cm4gZS50ZXh0O2Nhc2Ugdy5TQ1JJUFQuc2l6ZTpyZXR1cm4gZS5zY3JpcHQ7Y2FzZSB3LlNDUklQVFNDUklQVC5zaXplOnJldHVybiBlLnNjcmlwdHNjcmlwdDtkZWZhdWx0OnJldHVybiBlLnRleHR9fTtqZSh7dHlwZToibWF0aGNob2ljZSIsbmFtZXM6WyJcXG1hdGhjaG9pY2UiXSxwcm9wczp7bnVtQXJnczo0LHByaW1pdGl2ZTohMH0saGFuZGxlcjooZSx0KT0+e2xldHtwYXJzZXI6cn09ZTtyZXR1cm57dHlwZToibWF0aGNob2ljZSIsbW9kZTpyLm1vZGUsZGlzcGxheTpLZSh0WzBdKSx0ZXh0OktlKHRbMV0pLHNjcmlwdDpLZSh0WzJdKSxzY3JpcHRzY3JpcHQ6S2UodFszXSl9fSxodG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9S3IoZSx0KSxuPW50KHIsdCwhMSk7cmV0dXJuIFZlLm1ha2VGcmFnbWVudChuKX0sbWF0aG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9S3IoZSx0KTtyZXR1cm4gd3Qocix0KX19KTtjb25zdCBKcj0oZSx0LHIsbixvLHMsaSk9PntlPVZlLm1ha2VTcGFuKFtdLFtlXSk7Y29uc3QgYT1yJiZsLmlzQ2hhcmFjdGVyQm94KHIpO2xldCBoLGMsbTtpZih0KXtjb25zdCBlPWh0KHQsbi5oYXZpbmdTdHlsZShvLnN1cCgpKSxuKTtjPXtlbGVtOmUsa2VybjpNYXRoLm1heChuLmZvbnRNZXRyaWNzKCkuYmlnT3BTcGFjaW5nMSxuLmZvbnRNZXRyaWNzKCkuYmlnT3BTcGFjaW5nMy1lLmRlcHRoKX19aWYocil7Y29uc3QgZT1odChyLG4uaGF2aW5nU3R5bGUoby5zdWIoKSksbik7aD17ZWxlbTplLGtlcm46TWF0aC5tYXgobi5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzIsbi5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzQtZS5oZWlnaHQpfX1pZihjJiZoKXtjb25zdCB0PW4uZm9udE1ldHJpY3MoKS5iaWdPcFNwYWNpbmc1K2guZWxlbS5oZWlnaHQraC5lbGVtLmRlcHRoK2gua2VybitlLmRlcHRoK2k7bT1WZS5tYWtlVkxpc3Qoe3Bvc2l0aW9uVHlwZToiYm90dG9tIixwb3NpdGlvbkRhdGE6dCxjaGlsZHJlbjpbe3R5cGU6Imtlcm4iLHNpemU6bi5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzV9LHt0eXBlOiJlbGVtIixlbGVtOmguZWxlbSxtYXJnaW5MZWZ0OkYoLXMpfSx7dHlwZToia2VybiIsc2l6ZTpoLmtlcm59LHt0eXBlOiJlbGVtIixlbGVtOmV9LHt0eXBlOiJrZXJuIixzaXplOmMua2Vybn0se3R5cGU6ImVsZW0iLGVsZW06Yy5lbGVtLG1hcmdpbkxlZnQ6RihzKX0se3R5cGU6Imtlcm4iLHNpemU6bi5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzV9XX0sbil9ZWxzZSBpZihoKXtjb25zdCB0PWUuaGVpZ2h0LWk7bT1WZS5tYWtlVkxpc3Qoe3Bvc2l0aW9uVHlwZToidG9wIixwb3NpdGlvbkRhdGE6dCxjaGlsZHJlbjpbe3R5cGU6Imtlcm4iLHNpemU6bi5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzV9LHt0eXBlOiJlbGVtIixlbGVtOmguZWxlbSxtYXJnaW5MZWZ0OkYoLXMpfSx7dHlwZToia2VybiIsc2l6ZTpoLmtlcm59LHt0eXBlOiJlbGVtIixlbGVtOmV9XX0sbil9ZWxzZXtpZighYylyZXR1cm4gZTt7Y29uc3QgdD1lLmRlcHRoK2k7bT1WZS5tYWtlVkxpc3Qoe3Bvc2l0aW9uVHlwZToiYm90dG9tIixwb3NpdGlvbkRhdGE6dCxjaGlsZHJlbjpbe3R5cGU6ImVsZW0iLGVsZW06ZX0se3R5cGU6Imtlcm4iLHNpemU6Yy5rZXJufSx7dHlwZToiZWxlbSIsZWxlbTpjLmVsZW0sbWFyZ2luTGVmdDpGKHMpfSx7dHlwZToia2VybiIsc2l6ZTpuLmZvbnRNZXRyaWNzKCkuYmlnT3BTcGFjaW5nNX1dfSxuKX19Y29uc3QgcD1bbV07aWYoaCYmMCE9PXMmJiFhKXtjb25zdCBlPVZlLm1ha2VTcGFuKFsibXNwYWNlIl0sW10sbik7ZS5zdHlsZS5tYXJnaW5SaWdodD1GKHMpLHAudW5zaGlmdChlKX1yZXR1cm4gVmUubWFrZVNwYW4oWyJtb3AiLCJvcC1saW1pdHMiXSxwLG4pfSxRcj1bIlxcc21hbGxpbnQiXSxlbj0oZSx0KT0+e2xldCByLG4sbyxzPSExOyJzdXBzdWIiPT09ZS50eXBlPyhyPWUuc3VwLG49ZS5zdWIsbz1xdChlLmJhc2UsIm9wIikscz0hMCk6bz1xdChlLCJvcCIpO2NvbnN0IGk9dC5zdHlsZTtsZXQgYSxoPSExO2lmKGkuc2l6ZT09PXcuRElTUExBWS5zaXplJiZvLnN5bWJvbCYmIWwuY29udGFpbnMoUXIsby5uYW1lKSYmKGg9ITApLG8uc3ltYm9sKXtjb25zdCBlPWg/IlNpemUyLVJlZ3VsYXIiOiJTaXplMS1SZWd1bGFyIjtsZXQgcj0iIjtpZigiXFxvaWludCIhPT1vLm5hbWUmJiJcXG9paWludCIhPT1vLm5hbWV8fChyPW8ubmFtZS5zbGljZSgxKSxvLm5hbWU9Im9paW50Ij09PXI/IlxcaWludCI6IlxcaWlpbnQiKSxhPVZlLm1ha2VTeW1ib2woby5uYW1lLGUsIm1hdGgiLHQsWyJtb3AiLCJvcC1zeW1ib2wiLGg/ImxhcmdlLW9wIjoic21hbGwtb3AiXSksci5sZW5ndGg+MCl7Y29uc3QgZT1hLml0YWxpYyxuPVZlLnN0YXRpY1N2ZyhyKyJTaXplIisoaD8iMiI6IjEiKSx0KTthPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJpbmRpdmlkdWFsU2hpZnQiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTphLHNoaWZ0OjB9LHt0eXBlOiJlbGVtIixlbGVtOm4sc2hpZnQ6aD8uMDg6MH1dfSx0KSxvLm5hbWU9IlxcIityLGEuY2xhc3Nlcy51bnNoaWZ0KCJtb3AiKSxhLml0YWxpYz1lfX1lbHNlIGlmKG8uYm9keSl7Y29uc3QgZT1udChvLmJvZHksdCwhMCk7MT09PWUubGVuZ3RoJiZlWzBdaW5zdGFuY2VvZiBaPyhhPWVbMF0sYS5jbGFzc2VzWzBdPSJtb3AiKTphPVZlLm1ha2VTcGFuKFsibW9wIl0sZSx0KX1lbHNle2NvbnN0IGU9W107Zm9yKGxldCByPTE7cjxvLm5hbWUubGVuZ3RoO3IrKyllLnB1c2goVmUubWF0aHN5bShvLm5hbWVbcl0sby5tb2RlLHQpKTthPVZlLm1ha2VTcGFuKFsibW9wIl0sZSx0KX1sZXQgYz0wLG09MDtyZXR1cm4oYSBpbnN0YW5jZW9mIFp8fCJcXG9paW50Ij09PW8ubmFtZXx8Ilxcb2lpaW50Ij09PW8ubmFtZSkmJiFvLnN1cHByZXNzQmFzZVNoaWZ0JiYoYz0oYS5oZWlnaHQtYS5kZXB0aCkvMi10LmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodCxtPWEuaXRhbGljKSxzP0pyKGEscixuLHQsaSxtLGMpOihjJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGEuc3R5bGUudG9wPUYoYykpLGEpfSx0bj0oZSx0KT0+e2xldCByO2lmKGUuc3ltYm9sKXI9bmV3IHV0KCJtbyIsW2Z0KGUubmFtZSxlLm1vZGUpXSksbC5jb250YWlucyhRcixlLm5hbWUpJiZyLnNldEF0dHJpYnV0ZSgibGFyZ2VvcCIsImZhbHNlIik7ZWxzZSBpZihlLmJvZHkpcj1uZXcgdXQoIm1vIix4dChlLmJvZHksdCkpO2Vsc2V7cj1uZXcgdXQoIm1pIixbbmV3IGR0KGUubmFtZS5zbGljZSgxKSldKTtjb25zdCB0PW5ldyB1dCgibW8iLFtmdCgiXHUyMDYxIiwidGV4dCIpXSk7cj1lLnBhcmVudElzU3VwU3ViP25ldyB1dCgibXJvdyIsW3IsdF0pOnB0KFtyLHRdKX1yZXR1cm4gcn0scm49eyJcdTIyMGYiOiJcXHByb2QiLCJcdTIyMTAiOiJcXGNvcHJvZCIsIlx1MjIxMSI6Ilxcc3VtIiwiXHUyMmMwIjoiXFxiaWd3ZWRnZSIsIlx1MjJjMSI6IlxcYmlndmVlIiwiXHUyMmMyIjoiXFxiaWdjYXAiLCJcdTIyYzMiOiJcXGJpZ2N1cCIsIlx1MmEwMCI6IlxcYmlnb2RvdCIsIlx1MmEwMSI6IlxcYmlnb3BsdXMiLCJcdTJhMDIiOiJcXGJpZ290aW1lcyIsIlx1MmEwNCI6IlxcYmlndXBsdXMiLCJcdTJhMDYiOiJcXGJpZ3NxY3VwIn07amUoe3R5cGU6Im9wIixuYW1lczpbIlxcY29wcm9kIiwiXFxiaWd2ZWUiLCJcXGJpZ3dlZGdlIiwiXFxiaWd1cGx1cyIsIlxcYmlnY2FwIiwiXFxiaWdjdXAiLCJcXGludG9wIiwiXFxwcm9kIiwiXFxzdW0iLCJcXGJpZ290aW1lcyIsIlxcYmlnb3BsdXMiLCJcXGJpZ29kb3QiLCJcXGJpZ3NxY3VwIiwiXFxzbWFsbGludCIsIlx1MjIwZiIsIlx1MjIxMCIsIlx1MjIxMSIsIlx1MjJjMCIsIlx1MjJjMSIsIlx1MjJjMiIsIlx1MjJjMyIsIlx1MmEwMCIsIlx1MmEwMSIsIlx1MmEwMiIsIlx1MmEwNCIsIlx1MmEwNiJdLHByb3BzOntudW1BcmdzOjB9LGhhbmRsZXI6KGUsdCk9PntsZXR7cGFyc2VyOnIsZnVuY05hbWU6bn09ZSxvPW47cmV0dXJuIDE9PT1vLmxlbmd0aCYmKG89cm5bb10pLHt0eXBlOiJvcCIsbW9kZTpyLm1vZGUsbGltaXRzOiEwLHBhcmVudElzU3VwU3ViOiExLHN5bWJvbDohMCxuYW1lOm99fSxodG1sQnVpbGRlcjplbixtYXRobWxCdWlsZGVyOnRufSksamUoe3R5cGU6Im9wIixuYW1lczpbIlxcbWF0aG9wIl0scHJvcHM6e251bUFyZ3M6MSxwcmltaXRpdmU6ITB9LGhhbmRsZXI6KGUsdCk9PntsZXR7cGFyc2VyOnJ9PWU7Y29uc3Qgbj10WzBdO3JldHVybnt0eXBlOiJvcCIsbW9kZTpyLm1vZGUsbGltaXRzOiExLHBhcmVudElzU3VwU3ViOiExLHN5bWJvbDohMSxib2R5OktlKG4pfX0saHRtbEJ1aWxkZXI6ZW4sbWF0aG1sQnVpbGRlcjp0bn0pO2NvbnN0IG5uPXsiXHUyMjJiIjoiXFxpbnQiLCJcdTIyMmMiOiJcXGlpbnQiLCJcdTIyMmQiOiJcXGlpaW50IiwiXHUyMjJlIjoiXFxvaW50IiwiXHUyMjJmIjoiXFxvaWludCIsIlx1MjIzMCI6Ilxcb2lpaW50In07amUoe3R5cGU6Im9wIixuYW1lczpbIlxcYXJjc2luIiwiXFxhcmNjb3MiLCJcXGFyY3RhbiIsIlxcYXJjdGciLCJcXGFyY2N0ZyIsIlxcYXJnIiwiXFxjaCIsIlxcY29zIiwiXFxjb3NlYyIsIlxcY29zaCIsIlxcY290IiwiXFxjb3RnIiwiXFxjb3RoIiwiXFxjc2MiLCJcXGN0ZyIsIlxcY3RoIiwiXFxkZWciLCJcXGRpbSIsIlxcZXhwIiwiXFxob20iLCJcXGtlciIsIlxcbGciLCJcXGxuIiwiXFxsb2ciLCJcXHNlYyIsIlxcc2luIiwiXFxzaW5oIiwiXFxzaCIsIlxcdGFuIiwiXFx0YW5oIiwiXFx0ZyIsIlxcdGgiXSxwcm9wczp7bnVtQXJnczowfSxoYW5kbGVyKGUpe2xldHtwYXJzZXI6dCxmdW5jTmFtZTpyfT1lO3JldHVybnt0eXBlOiJvcCIsbW9kZTp0Lm1vZGUsbGltaXRzOiExLHBhcmVudElzU3VwU3ViOiExLHN5bWJvbDohMSxuYW1lOnJ9fSxodG1sQnVpbGRlcjplbixtYXRobWxCdWlsZGVyOnRufSksamUoe3R5cGU6Im9wIixuYW1lczpbIlxcZGV0IiwiXFxnY2QiLCJcXGluZiIsIlxcbGltIiwiXFxtYXgiLCJcXG1pbiIsIlxcUHIiLCJcXHN1cCJdLHByb3BzOntudW1BcmdzOjB9LGhhbmRsZXIoZSl7bGV0e3BhcnNlcjp0LGZ1bmNOYW1lOnJ9PWU7cmV0dXJue3R5cGU6Im9wIixtb2RlOnQubW9kZSxsaW1pdHM6ITAscGFyZW50SXNTdXBTdWI6ITEsc3ltYm9sOiExLG5hbWU6cn19LGh0bWxCdWlsZGVyOmVuLG1hdGhtbEJ1aWxkZXI6dG59KSxqZSh7dHlwZToib3AiLG5hbWVzOlsiXFxpbnQiLCJcXGlpbnQiLCJcXGlpaW50IiwiXFxvaW50IiwiXFxvaWludCIsIlxcb2lpaW50IiwiXHUyMjJiIiwiXHUyMjJjIiwiXHUyMjJkIiwiXHUyMjJlIiwiXHUyMjJmIiwiXHUyMjMwIl0scHJvcHM6e251bUFyZ3M6MH0saGFuZGxlcihlKXtsZXR7cGFyc2VyOnQsZnVuY05hbWU6cn09ZSxuPXI7cmV0dXJuIDE9PT1uLmxlbmd0aCYmKG49bm5bbl0pLHt0eXBlOiJvcCIsbW9kZTp0Lm1vZGUsbGltaXRzOiExLHBhcmVudElzU3VwU3ViOiExLHN5bWJvbDohMCxuYW1lOm59fSxodG1sQnVpbGRlcjplbixtYXRobWxCdWlsZGVyOnRufSk7Y29uc3Qgb249KGUsdCk9PntsZXQgcixuLG8scyxpPSExO2lmKCJzdXBzdWIiPT09ZS50eXBlPyhyPWUuc3VwLG49ZS5zdWIsbz1xdChlLmJhc2UsIm9wZXJhdG9ybmFtZSIpLGk9ITApOm89cXQoZSwib3BlcmF0b3JuYW1lIiksby5ib2R5Lmxlbmd0aD4wKXtjb25zdCBlPW8uYm9keS5tYXAoKGU9Pntjb25zdCB0PWUudGV4dDtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/e3R5cGU6InRleHRvcmQiLG1vZGU6ZS5tb2RlLHRleHQ6dH06ZX0pKSxyPW50KGUsdC53aXRoRm9udCgibWF0aHJtIiksITApO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXtjb25zdCB0PXJbZV07dCBpbnN0YW5jZW9mIFomJih0LnRleHQ9dC50ZXh0LnJlcGxhY2UoL1x1MjIxMi8sIi0iKS5yZXBsYWNlKC9cdTIyMTcvLCIqIikpfXM9VmUubWFrZVNwYW4oWyJtb3AiXSxyLHQpfWVsc2Ugcz1WZS5tYWtlU3BhbihbIm1vcCJdLFtdLHQpO3JldHVybiBpP0pyKHMscixuLHQsdC5zdHlsZSwwLDApOnN9O2Z1bmN0aW9uIHNuKGUsdCxyKXtjb25zdCBuPW50KGUsdCwhMSksbz10LnNpemVNdWx0aXBsaWVyL3Iuc2l6ZU11bHRpcGxpZXI7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2NvbnN0IHM9bltlXS5jbGFzc2VzLmluZGV4T2YoInNpemluZyIpO3M8MD9BcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShuW2VdLmNsYXNzZXMsdC5zaXppbmdDbGFzc2VzKHIpKTpuW2VdLmNsYXNzZXNbcysxXT09PSJyZXNldC1zaXplIit0LnNpemUmJihuW2VdLmNsYXNzZXNbcysxXT0icmVzZXQtc2l6ZSIrci5zaXplKSxuW2VdLmhlaWdodCo9byxuW2VdLmRlcHRoKj1vfXJldHVybiBWZS5tYWtlRnJhZ21lbnQobil9amUoe3R5cGU6Im9wZXJhdG9ybmFtZSIsbmFtZXM6WyJcXG9wZXJhdG9ybmFtZUAiLCJcXG9wZXJhdG9ybmFtZXdpdGhsaW1pdHMiXSxwcm9wczp7bnVtQXJnczoxfSxoYW5kbGVyOihlLHQpPT57bGV0e3BhcnNlcjpyLGZ1bmNOYW1lOm59PWU7Y29uc3Qgbz10WzBdO3JldHVybnt0eXBlOiJvcGVyYXRvcm5hbWUiLG1vZGU6ci5tb2RlLGJvZHk6S2UobyksYWx3YXlzSGFuZGxlU3VwU3ViOiJcXG9wZXJhdG9ybmFtZXdpdGhsaW1pdHMiPT09bixsaW1pdHM6ITEscGFyZW50SXNTdXBTdWI6ITF9fSxodG1sQnVpbGRlcjpvbixtYXRobWxCdWlsZGVyOihlLHQpPT57bGV0IHI9eHQoZS5ib2R5LHQud2l0aEZvbnQoIm1hdGhybSIpKSxuPSEwO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXtjb25zdCB0PXJbZV07aWYodCBpbnN0YW5jZW9mIGd0LlNwYWNlTm9kZSk7ZWxzZSBpZih0IGluc3RhbmNlb2YgZ3QuTWF0aE5vZGUpc3dpdGNoKHQudHlwZSl7Y2FzZSJtaSI6Y2FzZSJtbiI6Y2FzZSJtcyI6Y2FzZSJtc3BhY2UiOmNhc2UibXRleHQiOmJyZWFrO2Nhc2UibW8iOntjb25zdCBlPXQuY2hpbGRyZW5bMF07MT09PXQuY2hpbGRyZW4ubGVuZ3RoJiZlIGluc3RhbmNlb2YgZ3QuVGV4dE5vZGU/ZS50ZXh0PWUudGV4dC5yZXBsYWNlKC9cdTIyMTIvLCItIikucmVwbGFjZSgvXHUyMjE3LywiKiIpOm49ITE7YnJlYWt9ZGVmYXVsdDpuPSExfWVsc2Ugbj0hMX1pZihuKXtjb25zdCBlPXIubWFwKChlPT5lLnRvVGV4dCgpKSkuam9pbigiIik7cj1bbmV3IGd0LlRleHROb2RlKGUpXX1jb25zdCBvPW5ldyBndC5NYXRoTm9kZSgibWkiLHIpO28uc2V0QXR0cmlidXRlKCJtYXRodmFyaWFudCIsIm5vcm1hbCIpO2NvbnN0IHM9bmV3IGd0Lk1hdGhOb2RlKCJtbyIsW2Z0KCJcdTIwNjEiLCJ0ZXh0IildKTtyZXR1cm4gZS5wYXJlbnRJc1N1cFN1Yj9uZXcgZ3QuTWF0aE5vZGUoIm1yb3ciLFtvLHNdKTpndC5uZXdEb2N1bWVudEZyYWdtZW50KFtvLHNdKX19KSxCcigiXFxvcGVyYXRvcm5hbWUiLCJcXEBpZnN0YXJcXG9wZXJhdG9ybmFtZXdpdGhsaW1pdHNcXG9wZXJhdG9ybmFtZUAiKSwkZSh7dHlwZToib3JkZ3JvdXAiLGh0bWxCdWlsZGVyKGUsdCl7cmV0dXJuIGUuc2VtaXNpbXBsZT9WZS5tYWtlRnJhZ21lbnQobnQoZS5ib2R5LHQsITEpKTpWZS5tYWtlU3BhbihbIm1vcmQiXSxudChlLmJvZHksdCwhMCksdCl9LG1hdGhtbEJ1aWxkZXIoZSx0KXtyZXR1cm4gd3QoZS5ib2R5LHQsITApfX0pLGplKHt0eXBlOiJvdmVybGluZSIsbmFtZXM6WyJcXG92ZXJsaW5lIl0scHJvcHM6e251bUFyZ3M6MX0saGFuZGxlcihlLHQpe2xldHtwYXJzZXI6cn09ZTtjb25zdCBuPXRbMF07cmV0dXJue3R5cGU6Im92ZXJsaW5lIixtb2RlOnIubW9kZSxib2R5Om59fSxodG1sQnVpbGRlcihlLHQpe2NvbnN0IHI9aHQoZS5ib2R5LHQuaGF2aW5nQ3JhbXBlZFN0eWxlKCkpLG49VmUubWFrZUxpbmVTcGFuKCJvdmVybGluZS1saW5lIix0KSxvPXQuZm9udE1ldHJpY3MoKS5kZWZhdWx0UnVsZVRoaWNrbmVzcyxzPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJmaXJzdEJhc2VsaW5lIixjaGlsZHJlbjpbe3R5cGU6ImVsZW0iLGVsZW06cn0se3R5cGU6Imtlcm4iLHNpemU6MypvfSx7dHlwZToiZWxlbSIsZWxlbTpufSx7dHlwZToia2VybiIsc2l6ZTpvfV19LHQpO3JldHVybiBWZS5tYWtlU3BhbihbIm1vcmQiLCJvdmVybGluZSJdLFtzXSx0KX0sbWF0aG1sQnVpbGRlcihlLHQpe2NvbnN0IHI9bmV3IGd0Lk1hdGhOb2RlKCJtbyIsW25ldyBndC5UZXh0Tm9kZSgiXHUyMDNlIildKTtyLnNldEF0dHJpYnV0ZSgic3RyZXRjaHkiLCJ0cnVlIik7Y29uc3Qgbj1uZXcgZ3QuTWF0aE5vZGUoIm1vdmVyIixbdnQoZS5ib2R5LHQpLHJdKTtyZXR1cm4gbi5zZXRBdHRyaWJ1dGUoImFjY2VudCIsInRydWUiKSxufX0pLGplKHt0eXBlOiJwaGFudG9tIixuYW1lczpbIlxccGhhbnRvbSJdLHByb3BzOntudW1BcmdzOjEsYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcjooZSx0KT0+e2xldHtwYXJzZXI6cn09ZTtjb25zdCBuPXRbMF07cmV0dXJue3R5cGU6InBoYW50b20iLG1vZGU6ci5tb2RlLGJvZHk6S2Uobil9fSxodG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9bnQoZS5ib2R5LHQud2l0aFBoYW50b20oKSwhMSk7cmV0dXJuIFZlLm1ha2VGcmFnbWVudChyKX0sbWF0aG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9eHQoZS5ib2R5LHQpO3JldHVybiBuZXcgZ3QuTWF0aE5vZGUoIm1waGFudG9tIixyKX19KSxqZSh7dHlwZToiaHBoYW50b20iLG5hbWVzOlsiXFxocGhhbnRvbSJdLHByb3BzOntudW1BcmdzOjEsYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcjooZSx0KT0+e2xldHtwYXJzZXI6cn09ZTtjb25zdCBuPXRbMF07cmV0dXJue3R5cGU6ImhwaGFudG9tIixtb2RlOnIubW9kZSxib2R5Om59fSxodG1sQnVpbGRlcjooZSx0KT0+e2xldCByPVZlLm1ha2VTcGFuKFtdLFtodChlLmJvZHksdC53aXRoUGhhbnRvbSgpKV0pO2lmKHIuaGVpZ2h0PTAsci5kZXB0aD0wLHIuY2hpbGRyZW4pZm9yKGxldCBlPTA7ZTxyLmNoaWxkcmVuLmxlbmd0aDtlKyspci5jaGlsZHJlbltlXS5oZWlnaHQ9MCxyLmNoaWxkcmVuW2VdLmRlcHRoPTA7cmV0dXJuIHI9VmUubWFrZVZMaXN0KHtwb3NpdGlvblR5cGU6ImZpcnN0QmFzZWxpbmUiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpyfV19LHQpLFZlLm1ha2VTcGFuKFsibW9yZCJdLFtyXSx0KX0sbWF0aG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9eHQoS2UoZS5ib2R5KSx0KSxuPW5ldyBndC5NYXRoTm9kZSgibXBoYW50b20iLHIpLG89bmV3IGd0Lk1hdGhOb2RlKCJtcGFkZGVkIixbbl0pO3JldHVybiBvLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwiMHB4Iiksby5zZXRBdHRyaWJ1dGUoImRlcHRoIiwiMHB4Iiksb319KSxqZSh7dHlwZToidnBoYW50b20iLG5hbWVzOlsiXFx2cGhhbnRvbSJdLHByb3BzOntudW1BcmdzOjEsYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcjooZSx0KT0+e2xldHtwYXJzZXI6cn09ZTtjb25zdCBuPXRbMF07cmV0dXJue3R5cGU6InZwaGFudG9tIixtb2RlOnIubW9kZSxib2R5Om59fSxodG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9VmUubWFrZVNwYW4oWyJpbm5lciJdLFtodChlLmJvZHksdC53aXRoUGhhbnRvbSgpKV0pLG49VmUubWFrZVNwYW4oWyJmaXgiXSxbXSk7cmV0dXJuIFZlLm1ha2VTcGFuKFsibW9yZCIsInJsYXAiXSxbcixuXSx0KX0sbWF0aG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9eHQoS2UoZS5ib2R5KSx0KSxuPW5ldyBndC5NYXRoTm9kZSgibXBoYW50b20iLHIpLG89bmV3IGd0Lk1hdGhOb2RlKCJtcGFkZGVkIixbbl0pO3JldHVybiBvLnNldEF0dHJpYnV0ZSgid2lkdGgiLCIwcHgiKSxvfX0pLGplKHt0eXBlOiJyYWlzZWJveCIsbmFtZXM6WyJcXHJhaXNlYm94Il0scHJvcHM6e251bUFyZ3M6MixhcmdUeXBlczpbInNpemUiLCJoYm94Il0sYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcihlLHQpe2xldHtwYXJzZXI6cn09ZTtjb25zdCBuPXF0KHRbMF0sInNpemUiKS52YWx1ZSxvPXRbMV07cmV0dXJue3R5cGU6InJhaXNlYm94Iixtb2RlOnIubW9kZSxkeTpuLGJvZHk6b319LGh0bWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj1odChlLmJvZHksdCksbj1QKGUuZHksdCk7cmV0dXJuIFZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJzaGlmdCIscG9zaXRpb25EYXRhOi1uLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpyfV19LHQpfSxtYXRobWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj1uZXcgZ3QuTWF0aE5vZGUoIm1wYWRkZWQiLFt2dChlLmJvZHksdCldKSxuPWUuZHkubnVtYmVyK2UuZHkudW5pdDtyZXR1cm4gci5zZXRBdHRyaWJ1dGUoInZvZmZzZXQiLG4pLHJ9fSksamUoe3R5cGU6ImludGVybmFsIixuYW1lczpbIlxccmVsYXgiXSxwcm9wczp7bnVtQXJnczowLGFsbG93ZWRJblRleHQ6ITB9LGhhbmRsZXIoZSl7bGV0e3BhcnNlcjp0fT1lO3JldHVybnt0eXBlOiJpbnRlcm5hbCIsbW9kZTp0Lm1vZGV9fX0pLGplKHt0eXBlOiJydWxlIixuYW1lczpbIlxccnVsZSJdLHByb3BzOntudW1BcmdzOjIsbnVtT3B0aW9uYWxBcmdzOjEsYXJnVHlwZXM6WyJzaXplIiwic2l6ZSIsInNpemUiXX0saGFuZGxlcihlLHQscil7bGV0e3BhcnNlcjpufT1lO2NvbnN0IG89clswXSxzPXF0KHRbMF0sInNpemUiKSxpPXF0KHRbMV0sInNpemUiKTtyZXR1cm57dHlwZToicnVsZSIsbW9kZTpuLm1vZGUsc2hpZnQ6byYmcXQobywic2l6ZSIpLnZhbHVlLHdpZHRoOnMudmFsdWUsaGVpZ2h0OmkudmFsdWV9fSxodG1sQnVpbGRlcihlLHQpe2NvbnN0IHI9VmUubWFrZVNwYW4oWyJtb3JkIiwicnVsZSJdLFtdLHQpLG49UChlLndpZHRoLHQpLG89UChlLmhlaWdodCx0KSxzPWUuc2hpZnQ/UChlLnNoaWZ0LHQpOjA7cmV0dXJuIHIuc3R5bGUuYm9yZGVyUmlnaHRXaWR0aD1GKG4pLHIuc3R5bGUuYm9yZGVyVG9wV2lkdGg9RihvKSxyLnN0eWxlLmJvdHRvbT1GKHMpLHIud2lkdGg9bixyLmhlaWdodD1vK3Msci5kZXB0aD0tcyxyLm1heEZvbnRTaXplPTEuMTI1Km8qdC5zaXplTXVsdGlwbGllcixyfSxtYXRobWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj1QKGUud2lkdGgsdCksbj1QKGUuaGVpZ2h0LHQpLG89ZS5zaGlmdD9QKGUuc2hpZnQsdCk6MCxzPXQuY29sb3ImJnQuZ2V0Q29sb3IoKXx8ImJsYWNrIixpPW5ldyBndC5NYXRoTm9kZSgibXNwYWNlIik7aS5zZXRBdHRyaWJ1dGUoIm1hdGhiYWNrZ3JvdW5kIixzKSxpLnNldEF0dHJpYnV0ZSgid2lkdGgiLEYocikpLGkuc2V0QXR0cmlidXRlKCJoZWlnaHQiLEYobikpO2NvbnN0IGE9bmV3IGd0Lk1hdGhOb2RlKCJtcGFkZGVkIixbaV0pO3JldHVybiBvPj0wP2Euc2V0QXR0cmlidXRlKCJoZWlnaHQiLEYobykpOihhLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixGKG8pKSxhLnNldEF0dHJpYnV0ZSgiZGVwdGgiLEYoLW8pKSksYS5zZXRBdHRyaWJ1dGUoInZvZmZzZXQiLEYobykpLGF9fSk7Y29uc3QgYW49WyJcXHRpbnkiLCJcXHNpeHB0c2l6ZSIsIlxcc2NyaXB0c2l6ZSIsIlxcZm9vdG5vdGVzaXplIiwiXFxzbWFsbCIsIlxcbm9ybWFsc2l6ZSIsIlxcbGFyZ2UiLCJcXExhcmdlIiwiXFxMQVJHRSIsIlxcaHVnZSIsIlxcSHVnZSJdO2plKHt0eXBlOiJzaXppbmciLG5hbWVzOmFuLHByb3BzOntudW1BcmdzOjAsYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcjooZSx0KT0+e2xldHticmVha09uVG9rZW5UZXh0OnIsZnVuY05hbWU6bixwYXJzZXI6b309ZTtjb25zdCBzPW8ucGFyc2VFeHByZXNzaW9uKCExLHIpO3JldHVybnt0eXBlOiJzaXppbmciLG1vZGU6by5tb2RlLHNpemU6YW4uaW5kZXhPZihuKSsxLGJvZHk6c319LGh0bWxCdWlsZGVyOihlLHQpPT57Y29uc3Qgcj10LmhhdmluZ1NpemUoZS5zaXplKTtyZXR1cm4gc24oZS5ib2R5LHIsdCl9LG1hdGhtbEJ1aWxkZXI6KGUsdCk9Pntjb25zdCByPXQuaGF2aW5nU2l6ZShlLnNpemUpLG49eHQoZS5ib2R5LHIpLG89bmV3IGd0Lk1hdGhOb2RlKCJtc3R5bGUiLG4pO3JldHVybiBvLnNldEF0dHJpYnV0ZSgibWF0aHNpemUiLEYoci5zaXplTXVsdGlwbGllcikpLG99fSksamUoe3R5cGU6InNtYXNoIixuYW1lczpbIlxcc21hc2giXSxwcm9wczp7bnVtQXJnczoxLG51bU9wdGlvbmFsQXJnczoxLGFsbG93ZWRJblRleHQ6ITB9LGhhbmRsZXI6KGUsdCxyKT0+e2xldHtwYXJzZXI6bn09ZSxvPSExLHM9ITE7Y29uc3QgaT1yWzBdJiZxdChyWzBdLCJvcmRncm91cCIpO2lmKGkpe2xldCBlPSIiO2ZvcihsZXQgdD0wO3Q8aS5ib2R5Lmxlbmd0aDsrK3Qpe2lmKGU9aS5ib2R5W3RdLnRleHQsInQiPT09ZSlvPSEwO2Vsc2V7aWYoImIiIT09ZSl7bz0hMSxzPSExO2JyZWFrfXM9ITB9fX1lbHNlIG89ITAscz0hMDtjb25zdCBhPXRbMF07cmV0dXJue3R5cGU6InNtYXNoIixtb2RlOm4ubW9kZSxib2R5OmEsc21hc2hIZWlnaHQ6byxzbWFzaERlcHRoOnN9fSxodG1sQnVpbGRlcjooZSx0KT0+e2NvbnN0IHI9VmUubWFrZVNwYW4oW10sW2h0KGUuYm9keSx0KV0pO2lmKCFlLnNtYXNoSGVpZ2h0JiYhZS5zbWFzaERlcHRoKXJldHVybiByO2lmKGUuc21hc2hIZWlnaHQmJihyLmhlaWdodD0wLHIuY2hpbGRyZW4pKWZvcihsZXQgZT0wO2U8ci5jaGlsZHJlbi5sZW5ndGg7ZSsrKXIuY2hpbGRyZW5bZV0uaGVpZ2h0PTA7aWYoZS5zbWFzaERlcHRoJiYoci5kZXB0aD0wLHIuY2hpbGRyZW4pKWZvcihsZXQgZT0wO2U8ci5jaGlsZHJlbi5sZW5ndGg7ZSsrKXIuY2hpbGRyZW5bZV0uZGVwdGg9MDtjb25zdCBuPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJmaXJzdEJhc2VsaW5lIixjaGlsZHJlbjpbe3R5cGU6ImVsZW0iLGVsZW06cn1dfSx0KTtyZXR1cm4gVmUubWFrZVNwYW4oWyJtb3JkIl0sW25dLHQpfSxtYXRobWxCdWlsZGVyOihlLHQpPT57Y29uc3Qgcj1uZXcgZ3QuTWF0aE5vZGUoIm1wYWRkZWQiLFt2dChlLmJvZHksdCldKTtyZXR1cm4gZS5zbWFzaEhlaWdodCYmci5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIjBweCIpLGUuc21hc2hEZXB0aCYmci5zZXRBdHRyaWJ1dGUoImRlcHRoIiwiMHB4Iikscn19KSxqZSh7dHlwZToic3FydCIsbmFtZXM6WyJcXHNxcnQiXSxwcm9wczp7bnVtQXJnczoxLG51bU9wdGlvbmFsQXJnczoxfSxoYW5kbGVyKGUsdCxyKXtsZXR7cGFyc2VyOm59PWU7Y29uc3Qgbz1yWzBdLHM9dFswXTtyZXR1cm57dHlwZToic3FydCIsbW9kZTpuLm1vZGUsYm9keTpzLGluZGV4Om99fSxodG1sQnVpbGRlcihlLHQpe2xldCByPWh0KGUuYm9keSx0LmhhdmluZ0NyYW1wZWRTdHlsZSgpKTswPT09ci5oZWlnaHQmJihyLmhlaWdodD10LmZvbnRNZXRyaWNzKCkueEhlaWdodCkscj1WZS53cmFwRnJhZ21lbnQocix0KTtjb25zdCBuPXQuZm9udE1ldHJpY3MoKS5kZWZhdWx0UnVsZVRoaWNrbmVzcztsZXQgbz1uO3Quc3R5bGUuaWQ8dy5URVhULmlkJiYobz10LmZvbnRNZXRyaWNzKCkueEhlaWdodCk7bGV0IHM9bitvLzQ7Y29uc3QgaT1yLmhlaWdodCtyLmRlcHRoK3Mrbix7c3BhbjphLHJ1bGVXaWR0aDpsLGFkdmFuY2VXaWR0aDpofT15ci5zcXJ0SW1hZ2UoaSx0KSxjPWEuaGVpZ2h0LWw7Yz5yLmhlaWdodCtyLmRlcHRoK3MmJihzPShzK2Mtci5oZWlnaHQtci5kZXB0aCkvMik7Y29uc3QgbT1hLmhlaWdodC1yLmhlaWdodC1zLWw7ci5zdHlsZS5wYWRkaW5nTGVmdD1GKGgpO2NvbnN0IHA9VmUubWFrZVZMaXN0KHtwb3NpdGlvblR5cGU6ImZpcnN0QmFzZWxpbmUiLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpyLHdyYXBwZXJDbGFzc2VzOlsic3ZnLWFsaWduIl19LHt0eXBlOiJrZXJuIixzaXplOi0oci5oZWlnaHQrbSl9LHt0eXBlOiJlbGVtIixlbGVtOmF9LHt0eXBlOiJrZXJuIixzaXplOmx9XX0sdCk7aWYoZS5pbmRleCl7Y29uc3Qgcj10LmhhdmluZ1N0eWxlKHcuU0NSSVBUU0NSSVBUKSxuPWh0KGUuaW5kZXgscix0KSxvPS42KihwLmhlaWdodC1wLmRlcHRoKSxzPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJzaGlmdCIscG9zaXRpb25EYXRhOi1vLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTpufV19LHQpLGk9VmUubWFrZVNwYW4oWyJyb290Il0sW3NdKTtyZXR1cm4gVmUubWFrZVNwYW4oWyJtb3JkIiwic3FydCJdLFtpLHBdLHQpfXJldHVybiBWZS5tYWtlU3BhbihbIm1vcmQiLCJzcXJ0Il0sW3BdLHQpfSxtYXRobWxCdWlsZGVyKGUsdCl7Y29uc3R7Ym9keTpyLGluZGV4Om59PWU7cmV0dXJuIG4/bmV3IGd0Lk1hdGhOb2RlKCJtcm9vdCIsW3Z0KHIsdCksdnQobix0KV0pOm5ldyBndC5NYXRoTm9kZSgibXNxcnQiLFt2dChyLHQpXSl9fSk7Y29uc3QgbG49e2Rpc3BsYXk6dy5ESVNQTEFZLHRleHQ6dy5URVhULHNjcmlwdDp3LlNDUklQVCxzY3JpcHRzY3JpcHQ6dy5TQ1JJUFRTQ1JJUFR9O2plKHt0eXBlOiJzdHlsaW5nIixuYW1lczpbIlxcZGlzcGxheXN0eWxlIiwiXFx0ZXh0c3R5bGUiLCJcXHNjcmlwdHN0eWxlIiwiXFxzY3JpcHRzY3JpcHRzdHlsZSJdLHByb3BzOntudW1BcmdzOjAsYWxsb3dlZEluVGV4dDohMCxwcmltaXRpdmU6ITB9LGhhbmRsZXIoZSx0KXtsZXR7YnJlYWtPblRva2VuVGV4dDpyLGZ1bmNOYW1lOm4scGFyc2VyOm99PWU7Y29uc3Qgcz1vLnBhcnNlRXhwcmVzc2lvbighMCxyKSxpPW4uc2xpY2UoMSxuLmxlbmd0aC01KTtyZXR1cm57dHlwZToic3R5bGluZyIsbW9kZTpvLm1vZGUsc3R5bGU6aSxib2R5OnN9fSxodG1sQnVpbGRlcihlLHQpe2NvbnN0IHI9bG5bZS5zdHlsZV0sbj10LmhhdmluZ1N0eWxlKHIpLndpdGhGb250KCIiKTtyZXR1cm4gc24oZS5ib2R5LG4sdCl9LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPWxuW2Uuc3R5bGVdLG49dC5oYXZpbmdTdHlsZShyKSxvPXh0KGUuYm9keSxuKSxzPW5ldyBndC5NYXRoTm9kZSgibXN0eWxlIixvKSxpPXtkaXNwbGF5OlsiMCIsInRydWUiXSx0ZXh0OlsiMCIsImZhbHNlIl0sc2NyaXB0OlsiMSIsImZhbHNlIl0sc2NyaXB0c2NyaXB0OlsiMiIsImZhbHNlIl19W2Uuc3R5bGVdO3JldHVybiBzLnNldEF0dHJpYnV0ZSgic2NyaXB0bGV2ZWwiLGlbMF0pLHMuc2V0QXR0cmlidXRlKCJkaXNwbGF5c3R5bGUiLGlbMV0pLHN9fSk7JGUoe3R5cGU6InN1cHN1YiIsaHRtbEJ1aWxkZXIoZSx0KXtjb25zdCByPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgcj1lLmJhc2U7aWYocilyZXR1cm4ib3AiPT09ci50eXBlP3IubGltaXRzJiYodC5zdHlsZS5zaXplPT09dy5ESVNQTEFZLnNpemV8fHIuYWx3YXlzSGFuZGxlU3VwU3ViKT9lbjpudWxsOiJvcGVyYXRvcm5hbWUiPT09ci50eXBlP3IuYWx3YXlzSGFuZGxlU3VwU3ViJiYodC5zdHlsZS5zaXplPT09dy5ESVNQTEFZLnNpemV8fHIubGltaXRzKT9vbjpudWxsOiJhY2NlbnQiPT09ci50eXBlP2wuaXNDaGFyYWN0ZXJCb3goci5iYXNlKT9IdDpudWxsOiJob3JpekJyYWNlIj09PXIudHlwZSYmIWUuc3ViPT09ci5pc092ZXI/JHI6bnVsbDtyZXR1cm4gbnVsbH0oZSx0KTtpZihyKXJldHVybiByKGUsdCk7Y29uc3R7YmFzZTpuLHN1cDpvLHN1YjpzfT1lLGk9aHQobix0KTtsZXQgYSxoO2NvbnN0IGM9dC5mb250TWV0cmljcygpO2xldCBtPTAscD0wO2NvbnN0IHU9biYmbC5pc0NoYXJhY3RlckJveChuKTtpZihvKXtjb25zdCBlPXQuaGF2aW5nU3R5bGUodC5zdHlsZS5zdXAoKSk7YT1odChvLGUsdCksdXx8KG09aS5oZWlnaHQtZS5mb250TWV0cmljcygpLnN1cERyb3AqZS5zaXplTXVsdGlwbGllci90LnNpemVNdWx0aXBsaWVyKX1pZihzKXtjb25zdCBlPXQuaGF2aW5nU3R5bGUodC5zdHlsZS5zdWIoKSk7aD1odChzLGUsdCksdXx8KHA9aS5kZXB0aCtlLmZvbnRNZXRyaWNzKCkuc3ViRHJvcCplLnNpemVNdWx0aXBsaWVyL3Quc2l6ZU11bHRpcGxpZXIpfWxldCBkO2Q9dC5zdHlsZT09PXcuRElTUExBWT9jLnN1cDE6dC5zdHlsZS5jcmFtcGVkP2Muc3VwMzpjLnN1cDI7Y29uc3QgZz10LnNpemVNdWx0aXBsaWVyLGY9RiguNS9jLnB0UGVyRW0vZyk7bGV0IGIseT1udWxsO2lmKGgpe2NvbnN0IHQ9ZS5iYXNlJiYib3AiPT09ZS5iYXNlLnR5cGUmJmUuYmFzZS5uYW1lJiYoIlxcb2lpbnQiPT09ZS5iYXNlLm5hbWV8fCJcXG9paWludCI9PT1lLmJhc2UubmFtZSk7KGkgaW5zdGFuY2VvZiBafHx0KSYmKHk9RigtaS5pdGFsaWMpKX1pZihhJiZoKXttPU1hdGgubWF4KG0sZCxhLmRlcHRoKy4yNSpjLnhIZWlnaHQpLHA9TWF0aC5tYXgocCxjLnN1YjIpO2NvbnN0IGU9NCpjLmRlZmF1bHRSdWxlVGhpY2tuZXNzO2lmKG0tYS5kZXB0aC0oaC5oZWlnaHQtcCk8ZSl7cD1lLShtLWEuZGVwdGgpK2guaGVpZ2h0O2NvbnN0IHQ9LjgqYy54SGVpZ2h0LShtLWEuZGVwdGgpO3Q+MCYmKG0rPXQscC09dCl9Y29uc3Qgcj1be3R5cGU6ImVsZW0iLGVsZW06aCxzaGlmdDpwLG1hcmdpblJpZ2h0OmYsbWFyZ2luTGVmdDp5fSx7dHlwZToiZWxlbSIsZWxlbTphLHNoaWZ0Oi1tLG1hcmdpblJpZ2h0OmZ9XTtiPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJpbmRpdmlkdWFsU2hpZnQiLGNoaWxkcmVuOnJ9LHQpfWVsc2UgaWYoaCl7cD1NYXRoLm1heChwLGMuc3ViMSxoLmhlaWdodC0uOCpjLnhIZWlnaHQpO2NvbnN0IGU9W3t0eXBlOiJlbGVtIixlbGVtOmgsbWFyZ2luTGVmdDp5LG1hcmdpblJpZ2h0OmZ9XTtiPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJzaGlmdCIscG9zaXRpb25EYXRhOnAsY2hpbGRyZW46ZX0sdCl9ZWxzZXtpZighYSl0aHJvdyBuZXcgRXJyb3IoInN1cHN1YiBtdXN0IGhhdmUgZWl0aGVyIHN1cCBvciBzdWIuIik7bT1NYXRoLm1heChtLGQsYS5kZXB0aCsuMjUqYy54SGVpZ2h0KSxiPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJzaGlmdCIscG9zaXRpb25EYXRhOi1tLGNoaWxkcmVuOlt7dHlwZToiZWxlbSIsZWxlbTphLG1hcmdpblJpZ2h0OmZ9XX0sdCl9Y29uc3QgeD1hdChpLCJyaWdodCIpfHwibW9yZCI7cmV0dXJuIFZlLm1ha2VTcGFuKFt4XSxbaSxWZS5tYWtlU3BhbihbIm1zdXBzdWIiXSxbYl0pXSx0KX0sbWF0aG1sQnVpbGRlcihlLHQpe2xldCByLG4sbz0hMTtlLmJhc2UmJiJob3JpekJyYWNlIj09PWUuYmFzZS50eXBlJiYobj0hIWUuc3VwLG49PT1lLmJhc2UuaXNPdmVyJiYobz0hMCxyPWUuYmFzZS5pc092ZXIpKSwhZS5iYXNlfHwib3AiIT09ZS5iYXNlLnR5cGUmJiJvcGVyYXRvcm5hbWUiIT09ZS5iYXNlLnR5cGV8fChlLmJhc2UucGFyZW50SXNTdXBTdWI9ITApO2NvbnN0IHM9W3Z0KGUuYmFzZSx0KV07bGV0IGk7aWYoZS5zdWImJnMucHVzaCh2dChlLnN1Yix0KSksZS5zdXAmJnMucHVzaCh2dChlLnN1cCx0KSksbylpPXI/Im1vdmVyIjoibXVuZGVyIjtlbHNlIGlmKGUuc3ViKWlmKGUuc3VwKXtjb25zdCByPWUuYmFzZTtpPXImJiJvcCI9PT1yLnR5cGUmJnIubGltaXRzJiZ0LnN0eWxlPT09dy5ESVNQTEFZfHxyJiYib3BlcmF0b3JuYW1lIj09PXIudHlwZSYmci5hbHdheXNIYW5kbGVTdXBTdWImJih0LnN0eWxlPT09dy5ESVNQTEFZfHxyLmxpbWl0cyk/Im11bmRlcm92ZXIiOiJtc3Vic3VwIn1lbHNle2NvbnN0IHI9ZS5iYXNlO2k9ciYmIm9wIj09PXIudHlwZSYmci5saW1pdHMmJih0LnN0eWxlPT09dy5ESVNQTEFZfHxyLmFsd2F5c0hhbmRsZVN1cFN1Yil8fHImJiJvcGVyYXRvcm5hbWUiPT09ci50eXBlJiZyLmFsd2F5c0hhbmRsZVN1cFN1YiYmKHIubGltaXRzfHx0LnN0eWxlPT09dy5ESVNQTEFZKT8ibXVuZGVyIjoibXN1YiJ9ZWxzZXtjb25zdCByPWUuYmFzZTtpPXImJiJvcCI9PT1yLnR5cGUmJnIubGltaXRzJiYodC5zdHlsZT09PXcuRElTUExBWXx8ci5hbHdheXNIYW5kbGVTdXBTdWIpfHxyJiYib3BlcmF0b3JuYW1lIj09PXIudHlwZSYmci5hbHdheXNIYW5kbGVTdXBTdWImJihyLmxpbWl0c3x8dC5zdHlsZT09PXcuRElTUExBWSk/Im1vdmVyIjoibXN1cCJ9cmV0dXJuIG5ldyBndC5NYXRoTm9kZShpLHMpfX0pLCRlKHt0eXBlOiJhdG9tIixodG1sQnVpbGRlcihlLHQpe3JldHVybiBWZS5tYXRoc3ltKGUudGV4dCxlLm1vZGUsdCxbIm0iK2UuZmFtaWx5XSl9LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPW5ldyBndC5NYXRoTm9kZSgibW8iLFtmdChlLnRleHQsZS5tb2RlKV0pO2lmKCJiaW4iPT09ZS5mYW1pbHkpe2NvbnN0IG49eXQoZSx0KTsiYm9sZC1pdGFsaWMiPT09biYmci5zZXRBdHRyaWJ1dGUoIm1hdGh2YXJpYW50IixuKX1lbHNlInB1bmN0Ij09PWUuZmFtaWx5P3Iuc2V0QXR0cmlidXRlKCJzZXBhcmF0b3IiLCJ0cnVlIik6Im9wZW4iIT09ZS5mYW1pbHkmJiJjbG9zZSIhPT1lLmZhbWlseXx8ci5zZXRBdHRyaWJ1dGUoInN0cmV0Y2h5IiwiZmFsc2UiKTtyZXR1cm4gcn19KTtjb25zdCBobj17bWk6Iml0YWxpYyIsbW46Im5vcm1hbCIsbXRleHQ6Im5vcm1hbCJ9OyRlKHt0eXBlOiJtYXRob3JkIixodG1sQnVpbGRlcihlLHQpe3JldHVybiBWZS5tYWtlT3JkKGUsdCwibWF0aG9yZCIpfSxtYXRobWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj1uZXcgZ3QuTWF0aE5vZGUoIm1pIixbZnQoZS50ZXh0LGUubW9kZSx0KV0pLG49eXQoZSx0KXx8Iml0YWxpYyI7cmV0dXJuIG4hPT1obltyLnR5cGVdJiZyLnNldEF0dHJpYnV0ZSgibWF0aHZhcmlhbnQiLG4pLHJ9fSksJGUoe3R5cGU6InRleHRvcmQiLGh0bWxCdWlsZGVyKGUsdCl7cmV0dXJuIFZlLm1ha2VPcmQoZSx0LCJ0ZXh0b3JkIil9LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPWZ0KGUudGV4dCxlLm1vZGUsdCksbj15dChlLHQpfHwibm9ybWFsIjtsZXQgbztyZXR1cm4gbz0idGV4dCI9PT1lLm1vZGU/bmV3IGd0Lk1hdGhOb2RlKCJtdGV4dCIsW3JdKTovWzAtOV0vLnRlc3QoZS50ZXh0KT9uZXcgZ3QuTWF0aE5vZGUoIm1uIixbcl0pOiJcXHByaW1lIj09PWUudGV4dD9uZXcgZ3QuTWF0aE5vZGUoIm1vIixbcl0pOm5ldyBndC5NYXRoTm9kZSgibWkiLFtyXSksbiE9PWhuW28udHlwZV0mJm8uc2V0QXR0cmlidXRlKCJtYXRodmFyaWFudCIsbiksb319KTtjb25zdCBjbj17Ilxcbm9icmVhayI6Im5vYnJlYWsiLCJcXGFsbG93YnJlYWsiOiJhbGxvd2JyZWFrIn0sbW49eyIgIjp7fSwiXFwgIjp7fSwifiI6e2NsYXNzTmFtZToibm9icmVhayJ9LCJcXHNwYWNlIjp7fSwiXFxub2JyZWFrc3BhY2UiOntjbGFzc05hbWU6Im5vYnJlYWsifX07JGUoe3R5cGU6InNwYWNpbmciLGh0bWxCdWlsZGVyKGUsdCl7aWYobW4uaGFzT3duUHJvcGVydHkoZS50ZXh0KSl7Y29uc3Qgcj1tbltlLnRleHRdLmNsYXNzTmFtZXx8IiI7aWYoInRleHQiPT09ZS5tb2RlKXtjb25zdCBuPVZlLm1ha2VPcmQoZSx0LCJ0ZXh0b3JkIik7cmV0dXJuIG4uY2xhc3Nlcy5wdXNoKHIpLG59cmV0dXJuIFZlLm1ha2VTcGFuKFsibXNwYWNlIixyXSxbVmUubWF0aHN5bShlLnRleHQsZS5tb2RlLHQpXSx0KX1pZihjbi5oYXNPd25Qcm9wZXJ0eShlLnRleHQpKXJldHVybiBWZS5tYWtlU3BhbihbIm1zcGFjZSIsY25bZS50ZXh0XV0sW10sdCk7dGhyb3cgbmV3IG4oJ1Vua25vd24gdHlwZSBvZiBzcGFjZSAiJytlLnRleHQrJyInKX0sbWF0aG1sQnVpbGRlcihlLHQpe2xldCByO2lmKCFtbi5oYXNPd25Qcm9wZXJ0eShlLnRleHQpKXtpZihjbi5oYXNPd25Qcm9wZXJ0eShlLnRleHQpKXJldHVybiBuZXcgZ3QuTWF0aE5vZGUoIm1zcGFjZSIpO3Rocm93IG5ldyBuKCdVbmtub3duIHR5cGUgb2Ygc3BhY2UgIicrZS50ZXh0KyciJyl9cmV0dXJuIHI9bmV3IGd0Lk1hdGhOb2RlKCJtdGV4dCIsW25ldyBndC5UZXh0Tm9kZSgiXHhhMCIpXSkscn19KTtjb25zdCBwbj0oKT0+e2NvbnN0IGU9bmV3IGd0Lk1hdGhOb2RlKCJtdGQiLFtdKTtyZXR1cm4gZS5zZXRBdHRyaWJ1dGUoIndpZHRoIiwiNTAlIiksZX07JGUoe3R5cGU6InRhZyIsbWF0aG1sQnVpbGRlcihlLHQpe2NvbnN0IHI9bmV3IGd0Lk1hdGhOb2RlKCJtdGFibGUiLFtuZXcgZ3QuTWF0aE5vZGUoIm10ciIsW3BuKCksbmV3IGd0Lk1hdGhOb2RlKCJtdGQiLFt3dChlLmJvZHksdCldKSxwbigpLG5ldyBndC5NYXRoTm9kZSgibXRkIixbd3QoZS50YWcsdCldKV0pXSk7cmV0dXJuIHIuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjEwMCUiKSxyfX0pO2NvbnN0IHVuPXsiXFx0ZXh0Ijp2b2lkIDAsIlxcdGV4dHJtIjoidGV4dHJtIiwiXFx0ZXh0c2YiOiJ0ZXh0c2YiLCJcXHRleHR0dCI6InRleHR0dCIsIlxcdGV4dG5vcm1hbCI6InRleHRybSJ9LGRuPXsiXFx0ZXh0YmYiOiJ0ZXh0YmYiLCJcXHRleHRtZCI6InRleHRtZCJ9LGduPXsiXFx0ZXh0aXQiOiJ0ZXh0aXQiLCJcXHRleHR1cCI6InRleHR1cCJ9LGZuPShlLHQpPT57Y29uc3Qgcj1lLmZvbnQ7cmV0dXJuIHI/dW5bcl0/dC53aXRoVGV4dEZvbnRGYW1pbHkodW5bcl0pOmRuW3JdP3Qud2l0aFRleHRGb250V2VpZ2h0KGRuW3JdKTp0LndpdGhUZXh0Rm9udFNoYXBlKGduW3JdKTp0fTtqZSh7dHlwZToidGV4dCIsbmFtZXM6WyJcXHRleHQiLCJcXHRleHRybSIsIlxcdGV4dHNmIiwiXFx0ZXh0dHQiLCJcXHRleHRub3JtYWwiLCJcXHRleHRiZiIsIlxcdGV4dG1kIiwiXFx0ZXh0aXQiLCJcXHRleHR1cCJdLHByb3BzOntudW1BcmdzOjEsYXJnVHlwZXM6WyJ0ZXh0Il0sYWxsb3dlZEluQXJndW1lbnQ6ITAsYWxsb3dlZEluVGV4dDohMH0saGFuZGxlcihlLHQpe2xldHtwYXJzZXI6cixmdW5jTmFtZTpufT1lO2NvbnN0IG89dFswXTtyZXR1cm57dHlwZToidGV4dCIsbW9kZTpyLm1vZGUsYm9keTpLZShvKSxmb250Om59fSxodG1sQnVpbGRlcihlLHQpe2NvbnN0IHI9Zm4oZSx0KSxuPW50KGUuYm9keSxyLCEwKTtyZXR1cm4gVmUubWFrZVNwYW4oWyJtb3JkIiwidGV4dCJdLG4scil9LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPWZuKGUsdCk7cmV0dXJuIHd0KGUuYm9keSxyKX19KSxqZSh7dHlwZToidW5kZXJsaW5lIixuYW1lczpbIlxcdW5kZXJsaW5lIl0scHJvcHM6e251bUFyZ3M6MSxhbGxvd2VkSW5UZXh0OiEwfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyfT1lO3JldHVybnt0eXBlOiJ1bmRlcmxpbmUiLG1vZGU6ci5tb2RlLGJvZHk6dFswXX19LGh0bWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj1odChlLmJvZHksdCksbj1WZS5tYWtlTGluZVNwYW4oInVuZGVybGluZS1saW5lIix0KSxvPXQuZm9udE1ldHJpY3MoKS5kZWZhdWx0UnVsZVRoaWNrbmVzcyxzPVZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJ0b3AiLHBvc2l0aW9uRGF0YTpyLmhlaWdodCxjaGlsZHJlbjpbe3R5cGU6Imtlcm4iLHNpemU6b30se3R5cGU6ImVsZW0iLGVsZW06bn0se3R5cGU6Imtlcm4iLHNpemU6MypvfSx7dHlwZToiZWxlbSIsZWxlbTpyfV19LHQpO3JldHVybiBWZS5tYWtlU3BhbihbIm1vcmQiLCJ1bmRlcmxpbmUiXSxbc10sdCl9LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPW5ldyBndC5NYXRoTm9kZSgibW8iLFtuZXcgZ3QuVGV4dE5vZGUoIlx1MjAzZSIpXSk7ci5zZXRBdHRyaWJ1dGUoInN0cmV0Y2h5IiwidHJ1ZSIpO2NvbnN0IG49bmV3IGd0Lk1hdGhOb2RlKCJtdW5kZXIiLFt2dChlLmJvZHksdCkscl0pO3JldHVybiBuLnNldEF0dHJpYnV0ZSgiYWNjZW50dW5kZXIiLCJ0cnVlIiksbn19KSxqZSh7dHlwZToidmNlbnRlciIsbmFtZXM6WyJcXHZjZW50ZXIiXSxwcm9wczp7bnVtQXJnczoxLGFyZ1R5cGVzOlsib3JpZ2luYWwiXSxhbGxvd2VkSW5UZXh0OiExfSxoYW5kbGVyKGUsdCl7bGV0e3BhcnNlcjpyfT1lO3JldHVybnt0eXBlOiJ2Y2VudGVyIixtb2RlOnIubW9kZSxib2R5OnRbMF19fSxodG1sQnVpbGRlcihlLHQpe2NvbnN0IHI9aHQoZS5ib2R5LHQpLG49dC5mb250TWV0cmljcygpLmF4aXNIZWlnaHQsbz0uNSooci5oZWlnaHQtbi0oci5kZXB0aCtuKSk7cmV0dXJuIFZlLm1ha2VWTGlzdCh7cG9zaXRpb25UeXBlOiJzaGlmdCIscG9zaXRpb25EYXRhOm8sY2hpbGRyZW46W3t0eXBlOiJlbGVtIixlbGVtOnJ9XX0sdCl9LG1hdGhtbEJ1aWxkZXIoZSx0KXtyZXR1cm4gbmV3IGd0Lk1hdGhOb2RlKCJtcGFkZGVkIixbdnQoZS5ib2R5LHQpXSxbInZjZW50ZXIiXSl9fSksamUoe3R5cGU6InZlcmIiLG5hbWVzOlsiXFx2ZXJiIl0scHJvcHM6e251bUFyZ3M6MCxhbGxvd2VkSW5UZXh0OiEwfSxoYW5kbGVyKGUsdCxyKXt0aHJvdyBuZXcgbigiXFx2ZXJiIGVuZGVkIGJ5IGVuZCBvZiBsaW5lIGluc3RlYWQgb2YgbWF0Y2hpbmcgZGVsaW1pdGVyIil9LGh0bWxCdWlsZGVyKGUsdCl7Y29uc3Qgcj1ibihlKSxuPVtdLG89dC5oYXZpbmdTdHlsZSh0LnN0eWxlLnRleHQoKSk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2xldCBzPXJbdF07In4iPT09cyYmKHM9IlxcdGV4dGFzY2lpdGlsZGUiKSxuLnB1c2goVmUubWFrZVN5bWJvbChzLCJUeXBld3JpdGVyLVJlZ3VsYXIiLGUubW9kZSxvLFsibW9yZCIsInRleHR0dCJdKSl9cmV0dXJuIFZlLm1ha2VTcGFuKFsibW9yZCIsInRleHQiXS5jb25jYXQoby5zaXppbmdDbGFzc2VzKHQpKSxWZS50cnlDb21iaW5lQ2hhcnMobiksbyl9LG1hdGhtbEJ1aWxkZXIoZSx0KXtjb25zdCByPW5ldyBndC5UZXh0Tm9kZShibihlKSksbj1uZXcgZ3QuTWF0aE5vZGUoIm10ZXh0Iixbcl0pO3JldHVybiBuLnNldEF0dHJpYnV0ZSgibWF0aHZhcmlhbnQiLCJtb25vc3BhY2UiKSxufX0pO2NvbnN0IGJuPWU9PmUuYm9keS5yZXBsYWNlKC8gL2csZS5zdGFyPyJcdTI0MjMiOiJceGEwIik7dmFyIHluPVhlO2NvbnN0IHhuPSJbIFxyXG5cdF0iLHduPSIoXFxcXFthLXpBLVpAXSspIit4bisiKiIsdm49IltcdTAzMDAtXHUwMzZmXSIsa249bmV3IFJlZ0V4cCh2bisiKyQiKSxTbj0iKCIreG4rIispfFxcXFwoXG58WyBcclx0XStcbj8pWyBcclx0XSp8KFshLVxcW1xcXS1cdTIwMjdcdTIwMmEtXHVkN2ZmXHVmOTAwLVx1ZmZmZl0iK3ZuKyIqfFtcdWQ4MDAtXHVkYmZmXVtcdWRjMDAtXHVkZmZmXSIrdm4rIip8XFxcXHZlcmJcXCooW15dKS4qP1xcNHxcXFxcdmVyYihbXiphLXpBLVpdKS4qP1xcNXwiK3duKyJ8XFxcXFteXHVkODAwLVx1ZGZmZl0pIjtjbGFzcyBNbntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuaW5wdXQ9dm9pZCAwLHRoaXMuc2V0dGluZ3M9dm9pZCAwLHRoaXMudG9rZW5SZWdleD12b2lkIDAsdGhpcy5jYXRjb2Rlcz12b2lkIDAsdGhpcy5pbnB1dD1lLHRoaXMuc2V0dGluZ3M9dCx0aGlzLnRva2VuUmVnZXg9bmV3IFJlZ0V4cChTbiwiZyIpLHRoaXMuY2F0Y29kZXM9eyIlIjoxNCwifiI6MTN9fXNldENhdGNvZGUoZSx0KXt0aGlzLmNhdGNvZGVzW2VdPXR9bGV4KCl7Y29uc3QgZT10aGlzLmlucHV0LHQ9dGhpcy50b2tlblJlZ2V4Lmxhc3RJbmRleDtpZih0PT09ZS5sZW5ndGgpcmV0dXJuIG5ldyBOcigiRU9GIixuZXcgQ3IodGhpcyx0LHQpKTtjb25zdCByPXRoaXMudG9rZW5SZWdleC5leGVjKGUpO2lmKG51bGw9PT1yfHxyLmluZGV4IT09dCl0aHJvdyBuZXcgbigiVW5leHBlY3RlZCBjaGFyYWN0ZXI6ICciK2VbdF0rIiciLG5ldyBOcihlW3RdLG5ldyBDcih0aGlzLHQsdCsxKSkpO2NvbnN0IG89cls2XXx8clszXXx8KHJbMl0/IlxcICI6IiAiKTtpZigxND09PXRoaXMuY2F0Y29kZXNbb10pe2NvbnN0IHQ9ZS5pbmRleE9mKCJcbiIsdGhpcy50b2tlblJlZ2V4Lmxhc3RJbmRleCk7cmV0dXJuLTE9PT10Pyh0aGlzLnRva2VuUmVnZXgubGFzdEluZGV4PWUubGVuZ3RoLHRoaXMuc2V0dGluZ3MucmVwb3J0Tm9uc3RyaWN0KCJjb21tZW50QXRFbmQiLCIlIGNvbW1lbnQgaGFzIG5vIHRlcm1pbmF0aW5nIG5ld2xpbmU7IExhVGVYIHdvdWxkIGZhaWwgYmVjYXVzZSBvZiBjb21tZW50aW5nIHRoZSBlbmQgb2YgbWF0aCBtb2RlIChlLmcuICQpIikpOnRoaXMudG9rZW5SZWdleC5sYXN0SW5kZXg9dCsxLHRoaXMubGV4KCl9cmV0dXJuIG5ldyBOcihvLG5ldyBDcih0aGlzLHQsdGhpcy50b2tlblJlZ2V4Lmxhc3RJbmRleCkpfX1jbGFzcyB6bntjb25zdHJ1Y3RvcihlLHQpe3ZvaWQgMD09PWUmJihlPXt9KSx2b2lkIDA9PT10JiYodD17fSksdGhpcy5jdXJyZW50PXZvaWQgMCx0aGlzLmJ1aWx0aW5zPXZvaWQgMCx0aGlzLnVuZGVmU3RhY2s9dm9pZCAwLHRoaXMuY3VycmVudD10LHRoaXMuYnVpbHRpbnM9ZSx0aGlzLnVuZGVmU3RhY2s9W119YmVnaW5Hcm91cCgpe3RoaXMudW5kZWZTdGFjay5wdXNoKHt9KX1lbmRHcm91cCgpe2lmKDA9PT10aGlzLnVuZGVmU3RhY2subGVuZ3RoKXRocm93IG5ldyBuKCJVbmJhbGFuY2VkIG5hbWVzcGFjZSBkZXN0cnVjdGlvbjogYXR0ZW1wdCB0byBwb3AgZ2xvYmFsIG5hbWVzcGFjZTsgcGxlYXNlIHJlcG9ydCB0aGlzIGFzIGEgYnVnIik7Y29uc3QgZT10aGlzLnVuZGVmU3RhY2sucG9wKCk7Zm9yKGNvbnN0IHQgaW4gZSllLmhhc093blByb3BlcnR5KHQpJiYobnVsbD09ZVt0XT9kZWxldGUgdGhpcy5jdXJyZW50W3RdOnRoaXMuY3VycmVudFt0XT1lW3RdKX1lbmRHcm91cHMoKXtmb3IoO3RoaXMudW5kZWZTdGFjay5sZW5ndGg+MDspdGhpcy5lbmRHcm91cCgpfWhhcyhlKXtyZXR1cm4gdGhpcy5jdXJyZW50Lmhhc093blByb3BlcnR5KGUpfHx0aGlzLmJ1aWx0aW5zLmhhc093blByb3BlcnR5KGUpfWdldChlKXtyZXR1cm4gdGhpcy5jdXJyZW50Lmhhc093blByb3BlcnR5KGUpP3RoaXMuY3VycmVudFtlXTp0aGlzLmJ1aWx0aW5zW2VdfXNldChlLHQscil7aWYodm9pZCAwPT09ciYmKHI9ITEpLHIpe2ZvcihsZXQgdD0wO3Q8dGhpcy51bmRlZlN0YWNrLmxlbmd0aDt0KyspZGVsZXRlIHRoaXMudW5kZWZTdGFja1t0XVtlXTt0aGlzLnVuZGVmU3RhY2subGVuZ3RoPjAmJih0aGlzLnVuZGVmU3RhY2tbdGhpcy51bmRlZlN0YWNrLmxlbmd0aC0xXVtlXT10KX1lbHNle2NvbnN0IHQ9dGhpcy51bmRlZlN0YWNrW3RoaXMudW5kZWZTdGFjay5sZW5ndGgtMV07dCYmIXQuaGFzT3duUHJvcGVydHkoZSkmJih0W2VdPXRoaXMuY3VycmVudFtlXSl9bnVsbD09dD9kZWxldGUgdGhpcy5jdXJyZW50W2VdOnRoaXMuY3VycmVudFtlXT10fX12YXIgQW49VHI7QnIoIlxcbm9leHBhbmQiLChmdW5jdGlvbihlKXtjb25zdCB0PWUucG9wVG9rZW4oKTtyZXR1cm4gZS5pc0V4cGFuZGFibGUodC50ZXh0KSYmKHQubm9leHBhbmQ9ITAsdC50cmVhdEFzUmVsYXg9ITApLHt0b2tlbnM6W3RdLG51bUFyZ3M6MH19KSksQnIoIlxcZXhwYW5kYWZ0ZXIiLChmdW5jdGlvbihlKXtjb25zdCB0PWUucG9wVG9rZW4oKTtyZXR1cm4gZS5leHBhbmRPbmNlKCEwKSx7dG9rZW5zOlt0XSxudW1BcmdzOjB9fSkpLEJyKCJcXEBmaXJzdG9mdHdvIiwoZnVuY3Rpb24oZSl7cmV0dXJue3Rva2VuczplLmNvbnN1bWVBcmdzKDIpWzBdLG51bUFyZ3M6MH19KSksQnIoIlxcQHNlY29uZG9mdHdvIiwoZnVuY3Rpb24oZSl7cmV0dXJue3Rva2VuczplLmNvbnN1bWVBcmdzKDIpWzFdLG51bUFyZ3M6MH19KSksQnIoIlxcQGlmbmV4dGNoYXIiLChmdW5jdGlvbihlKXtjb25zdCB0PWUuY29uc3VtZUFyZ3MoMyk7ZS5jb25zdW1lU3BhY2VzKCk7Y29uc3Qgcj1lLmZ1dHVyZSgpO3JldHVybiAxPT09dFswXS5sZW5ndGgmJnRbMF1bMF0udGV4dD09PXIudGV4dD97dG9rZW5zOnRbMV0sbnVtQXJnczowfTp7dG9rZW5zOnRbMl0sbnVtQXJnczowfX0pKSxCcigiXFxAaWZzdGFyIiwiXFxAaWZuZXh0Y2hhciAqe1xcQGZpcnN0b2Z0d297IzF9fSIpLEJyKCJcXFRleHRPck1hdGgiLChmdW5jdGlvbihlKXtjb25zdCB0PWUuY29uc3VtZUFyZ3MoMik7cmV0dXJuInRleHQiPT09ZS5tb2RlP3t0b2tlbnM6dFswXSxudW1BcmdzOjB9Ont0b2tlbnM6dFsxXSxudW1BcmdzOjB9fSkpO2NvbnN0IFRuPXswOjAsMToxLDI6MiwzOjMsNDo0LDU6NSw2OjYsNzo3LDg6OCw5OjksYToxMCxBOjEwLGI6MTEsQjoxMSxjOjEyLEM6MTIsZDoxMyxEOjEzLGU6MTQsRToxNCxmOjE1LEY6MTV9O0JyKCJcXGNoYXIiLChmdW5jdGlvbihlKXtsZXQgdCxyPWUucG9wVG9rZW4oKSxvPSIiO2lmKCInIj09PXIudGV4dCl0PTgscj1lLnBvcFRva2VuKCk7ZWxzZSBpZignIic9PT1yLnRleHQpdD0xNixyPWUucG9wVG9rZW4oKTtlbHNlIGlmKCJgIj09PXIudGV4dClpZihyPWUucG9wVG9rZW4oKSwiXFwiPT09ci50ZXh0WzBdKW89ci50ZXh0LmNoYXJDb2RlQXQoMSk7ZWxzZXtpZigiRU9GIj09PXIudGV4dCl0aHJvdyBuZXcgbigiXFxjaGFyYCBtaXNzaW5nIGFyZ3VtZW50Iik7bz1yLnRleHQuY2hhckNvZGVBdCgwKX1lbHNlIHQ9MTA7aWYodCl7aWYobz1UbltyLnRleHRdLG51bGw9PW98fG8+PXQpdGhyb3cgbmV3IG4oIkludmFsaWQgYmFzZS0iK3QrIiBkaWdpdCAiK3IudGV4dCk7bGV0IHM7Zm9yKDtudWxsIT0ocz1UbltlLmZ1dHVyZSgpLnRleHRdKSYmczx0OylvKj10LG8rPXMsZS5wb3BUb2tlbigpfXJldHVybiJcXEBjaGFyeyIrbysifSJ9KSk7Y29uc3QgQm49KGUsdCxyKT0+e2xldCBvPWUuY29uc3VtZUFyZygpLnRva2VucztpZigxIT09by5sZW5ndGgpdGhyb3cgbmV3IG4oIlxcbmV3Y29tbWFuZCdzIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBtYWNybyBuYW1lIik7Y29uc3Qgcz1vWzBdLnRleHQsaT1lLmlzRGVmaW5lZChzKTtpZihpJiYhdCl0aHJvdyBuZXcgbigiXFxuZXdjb21tYW5keyIrcysifSBhdHRlbXB0aW5nIHRvIHJlZGVmaW5lICIrcysiOyB1c2UgXFxyZW5ld2NvbW1hbmQiKTtpZighaSYmIXIpdGhyb3cgbmV3IG4oIlxccmVuZXdjb21tYW5keyIrcysifSB3aGVuIGNvbW1hbmQgIitzKyIgZG9lcyBub3QgeWV0IGV4aXN0OyB1c2UgXFxuZXdjb21tYW5kIik7bGV0IGE9MDtpZihvPWUuY29uc3VtZUFyZygpLnRva2VucywxPT09by5sZW5ndGgmJiJbIj09PW9bMF0udGV4dCl7bGV0IHQ9IiIscj1lLmV4cGFuZE5leHRUb2tlbigpO2Zvcig7Il0iIT09ci50ZXh0JiYiRU9GIiE9PXIudGV4dDspdCs9ci50ZXh0LHI9ZS5leHBhbmROZXh0VG9rZW4oKTtpZighdC5tYXRjaCgvXlxzKlswLTldK1xzKiQvKSl0aHJvdyBuZXcgbigiSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzOiAiK3QpO2E9cGFyc2VJbnQodCksbz1lLmNvbnN1bWVBcmcoKS50b2tlbnN9cmV0dXJuIGUubWFjcm9zLnNldChzLHt0b2tlbnM6byxudW1BcmdzOmF9KSwiIn07QnIoIlxcbmV3Y29tbWFuZCIsKGU9PkJuKGUsITEsITApKSksQnIoIlxccmVuZXdjb21tYW5kIiwoZT0+Qm4oZSwhMCwhMSkpKSxCcigiXFxwcm92aWRlY29tbWFuZCIsKGU9PkJuKGUsITAsITApKSksQnIoIlxcbWVzc2FnZSIsKGU9Pntjb25zdCB0PWUuY29uc3VtZUFyZ3MoMSlbMF07cmV0dXJuIGNvbnNvbGUubG9nKHQucmV2ZXJzZSgpLm1hcCgoZT0+ZS50ZXh0KSkuam9pbigiIikpLCIifSkpLEJyKCJcXGVycm1lc3NhZ2UiLChlPT57Y29uc3QgdD1lLmNvbnN1bWVBcmdzKDEpWzBdO3JldHVybiBjb25zb2xlLmVycm9yKHQucmV2ZXJzZSgpLm1hcCgoZT0+ZS50ZXh0KSkuam9pbigiIikpLCIifSkpLEJyKCJcXHNob3ciLChlPT57Y29uc3QgdD1lLnBvcFRva2VuKCkscj10LnRleHQ7cmV0dXJuIGNvbnNvbGUubG9nKHQsZS5tYWNyb3MuZ2V0KHIpLHluW3JdLG9lLm1hdGhbcl0sb2UudGV4dFtyXSksIiJ9KSksQnIoIlxcYmdyb3VwIiwieyIpLEJyKCJcXGVncm91cCIsIn0iKSxCcigifiIsIlxcbm9icmVha3NwYWNlIiksQnIoIlxcbHEiLCJgIiksQnIoIlxccnEiLCInIiksQnIoIlxcYWEiLCJcXHIgYSIpLEJyKCJcXEFBIiwiXFxyIEEiKSxCcigiXFx0ZXh0Y29weXJpZ2h0IiwiXFxodG1sQG1hdGhtbHtcXHRleHRjaXJjbGVke2N9fXtcXGNoYXJgXHhhOX0iKSxCcigiXFxjb3B5cmlnaHQiLCJcXFRleHRPck1hdGh7XFx0ZXh0Y29weXJpZ2h0fXtcXHRleHR7XFx0ZXh0Y29weXJpZ2h0fX0iKSxCcigiXFx0ZXh0cmVnaXN0ZXJlZCIsIlxcaHRtbEBtYXRobWx7XFx0ZXh0Y2lyY2xlZHtcXHNjcmlwdHNpemUgUn19e1xcY2hhcmBceGFlfSIpLEJyKCJcdTIxMmMiLCJcXG1hdGhzY3J7Qn0iKSxCcigiXHUyMTMwIiwiXFxtYXRoc2Nye0V9IiksQnIoIlx1MjEzMSIsIlxcbWF0aHNjcntGfSIpLEJyKCJcdTIxMGIiLCJcXG1hdGhzY3J7SH0iKSxCcigiXHUyMTEwIiwiXFxtYXRoc2Nye0l9IiksQnIoIlx1MjExMiIsIlxcbWF0aHNjcntMfSIpLEJyKCJcdTIxMzMiLCJcXG1hdGhzY3J7TX0iKSxCcigiXHUyMTFiIiwiXFxtYXRoc2Nye1J9IiksQnIoIlx1MjEyZCIsIlxcbWF0aGZyYWt7Q30iKSxCcigiXHUyMTBjIiwiXFxtYXRoZnJha3tIfSIpLEJyKCJcdTIxMjgiLCJcXG1hdGhmcmFre1p9IiksQnIoIlxcQmJiayIsIlxcQmJie2t9IiksQnIoIlx4YjciLCJcXGNkb3RwIiksQnIoIlxcbGxhcCIsIlxcbWF0aGxsYXB7XFx0ZXh0cm17IzF9fSIpLEJyKCJcXHJsYXAiLCJcXG1hdGhybGFwe1xcdGV4dHJteyMxfX0iKSxCcigiXFxjbGFwIiwiXFxtYXRoY2xhcHtcXHRleHRybXsjMX19IiksQnIoIlxcbWF0aHN0cnV0IiwiXFx2cGhhbnRvbXsofSIpLEJyKCJcXHVuZGVyYmFyIiwiXFx1bmRlcmxpbmV7XFx0ZXh0eyMxfX0iKSxCcigiXFxub3QiLCdcXGh0bWxAbWF0aG1se1xcbWF0aHJlbHtcXG1hdGhybGFwXFxAbm90fX17XFxjaGFyIjMzOH0nKSxCcigiXFxuZXEiLCJcXGh0bWxAbWF0aG1se1xcbWF0aHJlbHtcXG5vdD19fXtcXG1hdGhyZWx7XFxjaGFyYFx1MjI2MH19IiksQnIoIlxcbmUiLCJcXG5lcSIpLEJyKCJcdTIyNjAiLCJcXG5lcSIpLEJyKCJcXG5vdGluIiwiXFxodG1sQG1hdGhtbHtcXG1hdGhyZWx7e1xcaW59XFxtYXRobGxhcHsvXFxtc2tpcDFtdX19fXtcXG1hdGhyZWx7XFxjaGFyYFx1MjIwOX19IiksQnIoIlx1MjIwOSIsIlxcbm90aW4iKSxCcigiXHUyMjU4IiwiXFxodG1sQG1hdGhtbHtcXG1hdGhyZWx7PVxca2VybnstMWVtfVxccmFpc2Vib3h7MC40ZW19eyRcXHNjcmlwdHNpemVcXGZyb3duJH19fXtcXG1hdGhyZWx7XFxjaGFyYFx1MjI1OH19IiksQnIoIlx1MjI1OSIsIlxcaHRtbEBtYXRobWx7XFxzdGFja3JlbHtcXHRpbnlcXHdlZGdlfXs9fX17XFxtYXRocmVse1xcY2hhcmBcdTIyNTh9fSIpLEJyKCJcdTIyNWEiLCJcXGh0bWxAbWF0aG1se1xcc3RhY2tyZWx7XFx0aW55XFx2ZWV9ez19fXtcXG1hdGhyZWx7XFxjaGFyYFx1MjI1YX19IiksQnIoIlx1MjI1YiIsIlxcaHRtbEBtYXRobWx7XFxzdGFja3JlbHtcXHNjcmlwdHNpemVcXHN0YXJ9ez19fXtcXG1hdGhyZWx7XFxjaGFyYFx1MjI1Yn19IiksQnIoIlx1MjI1ZCIsIlxcaHRtbEBtYXRobWx7XFxzdGFja3JlbHtcXHRpbnlcXG1hdGhybXtkZWZ9fXs9fX17XFxtYXRocmVse1xcY2hhcmBcdTIyNWR9fSIpLEJyKCJcdTIyNWUiLCJcXGh0bWxAbWF0aG1se1xcc3RhY2tyZWx7XFx0aW55XFxtYXRocm17bX19ez19fXtcXG1hdGhyZWx7XFxjaGFyYFx1MjI1ZX19IiksQnIoIlx1MjI1ZiIsIlxcaHRtbEBtYXRobWx7XFxzdGFja3JlbHtcXHRpbnk/fXs9fX17XFxtYXRocmVse1xcY2hhcmBcdTIyNWZ9fSIpLEJyKCJcdTI3YzIiLCJcXHBlcnAiKSxCcigiXHUyMDNjIiwiXFxtYXRoY2xvc2V7IVxcbWtlcm4tMC44bXUhfSIpLEJyKCJcdTIyMGMiLCJcXG5vdG5pIiksQnIoIlx1MjMxYyIsIlxcdWxjb3JuZXIiKSxCcigiXHUyMzFkIiwiXFx1cmNvcm5lciIpLEJyKCJcdTIzMWUiLCJcXGxsY29ybmVyIiksQnIoIlx1MjMxZiIsIlxcbHJjb3JuZXIiKSxCcigiXHhhOSIsIlxcY29weXJpZ2h0IiksQnIoIlx4YWUiLCJcXHRleHRyZWdpc3RlcmVkIiksQnIoIlx1ZmUwZiIsIlxcdGV4dHJlZ2lzdGVyZWQiKSxCcigiXFx1bGNvcm5lciIsJ1xcaHRtbEBtYXRobWx7XFxAdWxjb3JuZXJ9e1xcbWF0aG9we1xcY2hhciIyMzFjfX0nKSxCcigiXFx1cmNvcm5lciIsJ1xcaHRtbEBtYXRobWx7XFxAdXJjb3JuZXJ9e1xcbWF0aG9we1xcY2hhciIyMzFkfX0nKSxCcigiXFxsbGNvcm5lciIsJ1xcaHRtbEBtYXRobWx7XFxAbGxjb3JuZXJ9e1xcbWF0aG9we1xcY2hhciIyMzFlfX0nKSxCcigiXFxscmNvcm5lciIsJ1xcaHRtbEBtYXRobWx7XFxAbHJjb3JuZXJ9e1xcbWF0aG9we1xcY2hhciIyMzFmfX0nKSxCcigiXFx2ZG90cyIsIlxcbWF0aG9yZHtcXHZhcnZkb3RzXFxydWxlezBwdH17MTVwdH19IiksQnIoIlx1MjJlZSIsIlxcdmRvdHMiKSxCcigiXFx2YXJHYW1tYSIsIlxcbWF0aGl0e1xcR2FtbWF9IiksQnIoIlxcdmFyRGVsdGEiLCJcXG1hdGhpdHtcXERlbHRhfSIpLEJyKCJcXHZhclRoZXRhIiwiXFxtYXRoaXR7XFxUaGV0YX0iKSxCcigiXFx2YXJMYW1iZGEiLCJcXG1hdGhpdHtcXExhbWJkYX0iKSxCcigiXFx2YXJYaSIsIlxcbWF0aGl0e1xcWGl9IiksQnIoIlxcdmFyUGkiLCJcXG1hdGhpdHtcXFBpfSIpLEJyKCJcXHZhclNpZ21hIiwiXFxtYXRoaXR7XFxTaWdtYX0iKSxCcigiXFx2YXJVcHNpbG9uIiwiXFxtYXRoaXR7XFxVcHNpbG9ufSIpLEJyKCJcXHZhclBoaSIsIlxcbWF0aGl0e1xcUGhpfSIpLEJyKCJcXHZhclBzaSIsIlxcbWF0aGl0e1xcUHNpfSIpLEJyKCJcXHZhck9tZWdhIiwiXFxtYXRoaXR7XFxPbWVnYX0iKSxCcigiXFxzdWJzdGFjayIsIlxcYmVnaW57c3ViYXJyYXl9e2N9IzFcXGVuZHtzdWJhcnJheX0iKSxCcigiXFxjb2xvbiIsIlxcbm9icmVha1xcbXNraXAybXVcXG1hdGhwdW5jdHt9XFxtYXRoY2hvaWNle1xcbWtlcm4tM211fXtcXG1rZXJuLTNtdX17fXt9ezp9XFxtc2tpcDZtdVxccmVsYXgiKSxCcigiXFxib3hlZCIsIlxcZmJveHskXFxkaXNwbGF5c3R5bGV7IzF9JH0iKSxCcigiXFxpZmYiLCJcXERPVFNCXFw7XFxMb25nbGVmdHJpZ2h0YXJyb3dcXDsiKSxCcigiXFxpbXBsaWVzIiwiXFxET1RTQlxcO1xcTG9uZ3JpZ2h0YXJyb3dcXDsiKSxCcigiXFxpbXBsaWVkYnkiLCJcXERPVFNCXFw7XFxMb25nbGVmdGFycm93XFw7Iik7Y29uc3QgQ249eyIsIjoiXFxkb3RzYyIsIlxcbm90IjoiXFxkb3RzYiIsIisiOiJcXGRvdHNiIiwiPSI6IlxcZG90c2IiLCI8IjoiXFxkb3RzYiIsIj4iOiJcXGRvdHNiIiwiLSI6IlxcZG90c2IiLCIqIjoiXFxkb3RzYiIsIjoiOiJcXGRvdHNiIiwiXFxET1RTQiI6IlxcZG90c2IiLCJcXGNvcHJvZCI6IlxcZG90c2IiLCJcXGJpZ3ZlZSI6IlxcZG90c2IiLCJcXGJpZ3dlZGdlIjoiXFxkb3RzYiIsIlxcYmlndXBsdXMiOiJcXGRvdHNiIiwiXFxiaWdjYXAiOiJcXGRvdHNiIiwiXFxiaWdjdXAiOiJcXGRvdHNiIiwiXFxwcm9kIjoiXFxkb3RzYiIsIlxcc3VtIjoiXFxkb3RzYiIsIlxcYmlnb3RpbWVzIjoiXFxkb3RzYiIsIlxcYmlnb3BsdXMiOiJcXGRvdHNiIiwiXFxiaWdvZG90IjoiXFxkb3RzYiIsIlxcYmlnc3FjdXAiOiJcXGRvdHNiIiwiXFxBbmQiOiJcXGRvdHNiIiwiXFxsb25ncmlnaHRhcnJvdyI6IlxcZG90c2IiLCJcXExvbmdyaWdodGFycm93IjoiXFxkb3RzYiIsIlxcbG9uZ2xlZnRhcnJvdyI6IlxcZG90c2IiLCJcXExvbmdsZWZ0YXJyb3ciOiJcXGRvdHNiIiwiXFxsb25nbGVmdHJpZ2h0YXJyb3ciOiJcXGRvdHNiIiwiXFxMb25nbGVmdHJpZ2h0YXJyb3ciOiJcXGRvdHNiIiwiXFxtYXBzdG8iOiJcXGRvdHNiIiwiXFxsb25nbWFwc3RvIjoiXFxkb3RzYiIsIlxcaG9va3JpZ2h0YXJyb3ciOiJcXGRvdHNiIiwiXFxkb3RlcSI6IlxcZG90c2IiLCJcXG1hdGhiaW4iOiJcXGRvdHNiIiwiXFxtYXRocmVsIjoiXFxkb3RzYiIsIlxccmVsYmFyIjoiXFxkb3RzYiIsIlxcUmVsYmFyIjoiXFxkb3RzYiIsIlxceHJpZ2h0YXJyb3ciOiJcXGRvdHNiIiwiXFx4bGVmdGFycm93IjoiXFxkb3RzYiIsIlxcRE9UU0kiOiJcXGRvdHNpIiwiXFxpbnQiOiJcXGRvdHNpIiwiXFxvaW50IjoiXFxkb3RzaSIsIlxcaWludCI6IlxcZG90c2kiLCJcXGlpaW50IjoiXFxkb3RzaSIsIlxcaWlpaW50IjoiXFxkb3RzaSIsIlxcaWRvdHNpbnQiOiJcXGRvdHNpIiwiXFxET1RTWCI6IlxcZG90c3gifTtCcigiXFxkb3RzIiwoZnVuY3Rpb24oZSl7bGV0IHQ9IlxcZG90c28iO2NvbnN0IHI9ZS5leHBhbmRBZnRlckZ1dHVyZSgpLnRleHQ7cmV0dXJuIHIgaW4gQ24/dD1DbltyXTooIlxcbm90Ij09PXIuc2xpY2UoMCw0KXx8ciBpbiBvZS5tYXRoJiZsLmNvbnRhaW5zKFsiYmluIiwicmVsIl0sb2UubWF0aFtyXS5ncm91cCkpJiYodD0iXFxkb3RzYiIpLHR9KSk7Y29uc3QgTm49eyIpIjohMCwiXSI6ITAsIlxccmJyYWNrIjohMCwiXFx9IjohMCwiXFxyYnJhY2UiOiEwLCJcXHJhbmdsZSI6ITAsIlxccmNlaWwiOiEwLCJcXHJmbG9vciI6ITAsIlxccmdyb3VwIjohMCwiXFxybW91c3RhY2hlIjohMCwiXFxyaWdodCI6ITAsIlxcYmlnciI6ITAsIlxcYmlnZ3IiOiEwLCJcXEJpZ3IiOiEwLCJcXEJpZ2dyIjohMCwkOiEwLCI7IjohMCwiLiI6ITAsIiwiOiEwfTtCcigiXFxkb3RzbyIsKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZ1dHVyZSgpLnRleHQgaW4gTm4/IlxcbGRvdHNcXCwiOiJcXGxkb3RzIn0pKSxCcigiXFxkb3RzYyIsKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5mdXR1cmUoKS50ZXh0O3JldHVybiB0IGluIE5uJiYiLCIhPT10PyJcXGxkb3RzXFwsIjoiXFxsZG90cyJ9KSksQnIoIlxcY2RvdHMiLChmdW5jdGlvbihlKXtyZXR1cm4gZS5mdXR1cmUoKS50ZXh0IGluIE5uPyJcXEBjZG90c1xcLCI6IlxcQGNkb3RzIn0pKSxCcigiXFxkb3RzYiIsIlxcY2RvdHMiKSxCcigiXFxkb3RzbSIsIlxcY2RvdHMiKSxCcigiXFxkb3RzaSIsIlxcIVxcY2RvdHMiKSxCcigiXFxkb3RzeCIsIlxcbGRvdHNcXCwiKSxCcigiXFxET1RTSSIsIlxccmVsYXgiKSxCcigiXFxET1RTQiIsIlxccmVsYXgiKSxCcigiXFxET1RTWCIsIlxccmVsYXgiKSxCcigiXFx0bXNwYWNlIiwiXFxUZXh0T3JNYXRoe1xca2VybiMxIzN9e1xcbXNraXAjMSMyfVxccmVsYXgiKSxCcigiXFwsIiwiXFx0bXNwYWNlK3szbXV9ey4xNjY3ZW19IiksQnIoIlxcdGhpbnNwYWNlIiwiXFwsIiksQnIoIlxcPiIsIlxcbXNraXB7NG11fSIpLEJyKCJcXDoiLCJcXHRtc3BhY2UrezRtdX17LjIyMjJlbX0iKSxCcigiXFxtZWRzcGFjZSIsIlxcOiIpLEJyKCJcXDsiLCJcXHRtc3BhY2UrezVtdX17LjI3NzdlbX0iKSxCcigiXFx0aGlja3NwYWNlIiwiXFw7IiksQnIoIlxcISIsIlxcdG1zcGFjZS17M211fXsuMTY2N2VtfSIpLEJyKCJcXG5lZ3RoaW5zcGFjZSIsIlxcISIpLEJyKCJcXG5lZ21lZHNwYWNlIiwiXFx0bXNwYWNlLXs0bXV9ey4yMjIyZW19IiksQnIoIlxcbmVndGhpY2tzcGFjZSIsIlxcdG1zcGFjZS17NW11fXsuMjc3ZW19IiksQnIoIlxcZW5zcGFjZSIsIlxca2Vybi41ZW0gIiksQnIoIlxcZW5za2lwIiwiXFxoc2tpcC41ZW1cXHJlbGF4IiksQnIoIlxccXVhZCIsIlxcaHNraXAxZW1cXHJlbGF4IiksQnIoIlxccXF1YWQiLCJcXGhza2lwMmVtXFxyZWxheCIpLEJyKCJcXHRhZyIsIlxcQGlmc3RhclxcdGFnQGxpdGVyYWxcXHRhZ0BwYXJlbiIpLEJyKCJcXHRhZ0BwYXJlbiIsIlxcdGFnQGxpdGVyYWx7KHsjMX0pfSIpLEJyKCJcXHRhZ0BsaXRlcmFsIiwoZT0+e2lmKGUubWFjcm9zLmdldCgiXFxkZkB0YWciKSl0aHJvdyBuZXcgbigiTXVsdGlwbGUgXFx0YWciKTtyZXR1cm4iXFxnZGVmXFxkZkB0YWd7XFx0ZXh0eyMxfX0ifSkpLEJyKCJcXGJtb2QiLCJcXG1hdGhjaG9pY2V7XFxtc2tpcDFtdX17XFxtc2tpcDFtdX17XFxtc2tpcDVtdX17XFxtc2tpcDVtdX1cXG1hdGhiaW57XFxybSBtb2R9XFxtYXRoY2hvaWNle1xcbXNraXAxbXV9e1xcbXNraXAxbXV9e1xcbXNraXA1bXV9e1xcbXNraXA1bXV9IiksQnIoIlxccG9kIiwiXFxhbGxvd2JyZWFrXFxtYXRoY2hvaWNle1xcbWtlcm4xOG11fXtcXG1rZXJuOG11fXtcXG1rZXJuOG11fXtcXG1rZXJuOG11fSgjMSkiKSxCcigiXFxwbW9kIiwiXFxwb2R7e1xccm0gbW9kfVxcbWtlcm42bXUjMX0iKSxCcigiXFxtb2QiLCJcXGFsbG93YnJlYWtcXG1hdGhjaG9pY2V7XFxta2VybjE4bXV9e1xcbWtlcm4xMm11fXtcXG1rZXJuMTJtdX17XFxta2VybjEybXV9e1xccm0gbW9kfVxcLFxcLCMxIiksQnIoIlxcbmV3bGluZSIsIlxcXFxcXHJlbGF4IiksQnIoIlxcVGVYIiwiXFx0ZXh0cm17XFxodG1sQG1hdGhtbHtUXFxrZXJuLS4xNjY3ZW1cXHJhaXNlYm94ey0uNWV4fXtFfVxca2Vybi0uMTI1ZW1YfXtUZVh9fSIpO2NvbnN0IHFuPUYoVFsiTWFpbi1SZWd1bGFyIl1bIlQiLmNoYXJDb2RlQXQoMCldWzFdLS43KlRbIk1haW4tUmVndWxhciJdWyJBIi5jaGFyQ29kZUF0KDApXVsxXSk7QnIoIlxcTGFUZVgiLCJcXHRleHRybXtcXGh0bWxAbWF0aG1se0xcXGtlcm4tLjM2ZW1cXHJhaXNlYm94eyIrcW4rIn17XFxzY3JpcHRzdHlsZSBBfVxca2Vybi0uMTVlbVxcVGVYfXtMYVRlWH19IiksQnIoIlxcS2FUZVgiLCJcXHRleHRybXtcXGh0bWxAbWF0aG1se0tcXGtlcm4tLjE3ZW1cXHJhaXNlYm94eyIrcW4rIn17XFxzY3JpcHRzdHlsZSBBfVxca2Vybi0uMTVlbVxcVGVYfXtLYVRlWH19IiksQnIoIlxcaHNwYWNlIiwiXFxAaWZzdGFyXFxAaHNwYWNlclxcQGhzcGFjZSIpLEJyKCJcXEBoc3BhY2UiLCJcXGhza2lwICMxXFxyZWxheCIpLEJyKCJcXEBoc3BhY2VyIiwiXFxydWxlezBwdH17MHB0fVxcaHNraXAgIzFcXHJlbGF4IiksQnIoIlxcb3JkaW5hcnljb2xvbiIsIjoiKSxCcigiXFx2Y2VudGNvbG9uIiwiXFxtYXRocmVse1xcbWF0aG9wXFxvcmRpbmFyeWNvbG9ufSIpLEJyKCJcXGRibGNvbG9uIiwnXFxodG1sQG1hdGhtbHtcXG1hdGhyZWx7XFx2Y2VudGNvbG9uXFxtYXRocmVse1xcbWtlcm4tLjltdX1cXHZjZW50Y29sb259fXtcXG1hdGhvcHtcXGNoYXIiMjIzN319JyksQnIoIlxcY29sb25lcXEiLCdcXGh0bWxAbWF0aG1se1xcbWF0aHJlbHtcXHZjZW50Y29sb25cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX09fX17XFxtYXRob3B7XFxjaGFyIjIyNTR9fScpLEJyKCJcXENvbG9uZXFxIiwnXFxodG1sQG1hdGhtbHtcXG1hdGhyZWx7XFxkYmxjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fT19fXtcXG1hdGhvcHtcXGNoYXIiMjIzN1xcY2hhciIzZH19JyksQnIoIlxcY29sb25lcSIsJ1xcaHRtbEBtYXRobWx7XFxtYXRocmVse1xcdmNlbnRjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcbWF0aHJlbHstfX19e1xcbWF0aG9we1xcY2hhciIzYVxcY2hhciIyMjEyfX0nKSxCcigiXFxDb2xvbmVxIiwnXFxodG1sQG1hdGhtbHtcXG1hdGhyZWx7XFxkYmxjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcbWF0aHJlbHstfX19e1xcbWF0aG9we1xcY2hhciIyMjM3XFxjaGFyIjIyMTJ9fScpLEJyKCJcXGVxcWNvbG9uIiwnXFxodG1sQG1hdGhtbHtcXG1hdGhyZWx7PVxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcdmNlbnRjb2xvbn19e1xcbWF0aG9we1xcY2hhciIyMjU1fX0nKSxCcigiXFxFcXFjb2xvbiIsJ1xcaHRtbEBtYXRobWx7XFxtYXRocmVsez1cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXGRibGNvbG9ufX17XFxtYXRob3B7XFxjaGFyIjNkXFxjaGFyIjIyMzd9fScpLEJyKCJcXGVxY29sb24iLCdcXGh0bWxAbWF0aG1se1xcbWF0aHJlbHtcXG1hdGhyZWx7LX1cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXHZjZW50Y29sb259fXtcXG1hdGhvcHtcXGNoYXIiMjIzOX19JyksQnIoIlxcRXFjb2xvbiIsJ1xcaHRtbEBtYXRobWx7XFxtYXRocmVse1xcbWF0aHJlbHstfVxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcZGJsY29sb259fXtcXG1hdGhvcHtcXGNoYXIiMjIxMlxcY2hhciIyMjM3fX0nKSxCcigiXFxjb2xvbmFwcHJveCIsJ1xcaHRtbEBtYXRobWx7XFxtYXRocmVse1xcdmNlbnRjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcYXBwcm94fX17XFxtYXRob3B7XFxjaGFyIjNhXFxjaGFyIjIyNDh9fScpLEJyKCJcXENvbG9uYXBwcm94IiwnXFxodG1sQG1hdGhtbHtcXG1hdGhyZWx7XFxkYmxjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcYXBwcm94fX17XFxtYXRob3B7XFxjaGFyIjIyMzdcXGNoYXIiMjI0OH19JyksQnIoIlxcY29sb25zaW0iLCdcXGh0bWxAbWF0aG1se1xcbWF0aHJlbHtcXHZjZW50Y29sb25cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXHNpbX19e1xcbWF0aG9we1xcY2hhciIzYVxcY2hhciIyMjNjfX0nKSxCcigiXFxDb2xvbnNpbSIsJ1xcaHRtbEBtYXRobWx7XFxtYXRocmVse1xcZGJsY29sb25cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXHNpbX19e1xcbWF0aG9we1xcY2hhciIyMjM3XFxjaGFyIjIyM2N9fScpLEJyKCJcdTIyMzciLCJcXGRibGNvbG9uIiksQnIoIlx1MjIzOSIsIlxcZXFjb2xvbiIpLEJyKCJcdTIyNTQiLCJcXGNvbG9uZXFxIiksQnIoIlx1MjI1NSIsIlxcZXFxY29sb24iKSxCcigiXHUyYTc0IiwiXFxDb2xvbmVxcSIpLEJyKCJcXHJhdGlvIiwiXFx2Y2VudGNvbG9uIiksQnIoIlxcY29sb25jb2xvbiIsIlxcZGJsY29sb24iKSxCcigiXFxjb2xvbmVxdWFscyIsIlxcY29sb25lcXEiKSxCcigiXFxjb2xvbmNvbG9uZXF1YWxzIiwiXFxDb2xvbmVxcSIpLEJyKCJcXGVxdWFsc2NvbG9uIiwiXFxlcXFjb2xvbiIpLEJyKCJcXGVxdWFsc2NvbG9uY29sb24iLCJcXEVxcWNvbG9uIiksQnIoIlxcY29sb25taW51cyIsIlxcY29sb25lcSIpLEJyKCJcXGNvbG9uY29sb25taW51cyIsIlxcQ29sb25lcSIpLEJyKCJcXG1pbnVzY29sb24iLCJcXGVxY29sb24iKSxCcigiXFxtaW51c2NvbG9uY29sb24iLCJcXEVxY29sb24iKSxCcigiXFxjb2xvbmNvbG9uYXBwcm94IiwiXFxDb2xvbmFwcHJveCIpLEJyKCJcXGNvbG9uY29sb25zaW0iLCJcXENvbG9uc2ltIiksQnIoIlxcc2ltY29sb24iLCJcXG1hdGhyZWx7XFxzaW1cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXHZjZW50Y29sb259IiksQnIoIlxcc2ltY29sb25jb2xvbiIsIlxcbWF0aHJlbHtcXHNpbVxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcZGJsY29sb259IiksQnIoIlxcYXBwcm94Y29sb24iLCJcXG1hdGhyZWx7XFxhcHByb3hcXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXHZjZW50Y29sb259IiksQnIoIlxcYXBwcm94Y29sb25jb2xvbiIsIlxcbWF0aHJlbHtcXGFwcHJveFxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcZGJsY29sb259IiksQnIoIlxcbm90bmkiLCJcXGh0bWxAbWF0aG1se1xcbm90XFxuaX17XFxtYXRocmVse1xcY2hhcmBcdTIyMGN9fSIpLEJyKCJcXGxpbXN1cCIsIlxcRE9UU0JcXG9wZXJhdG9ybmFtZSp7bGltXFwsc3VwfSIpLEJyKCJcXGxpbWluZiIsIlxcRE9UU0JcXG9wZXJhdG9ybmFtZSp7bGltXFwsaW5mfSIpLEJyKCJcXGluamxpbSIsIlxcRE9UU0JcXG9wZXJhdG9ybmFtZSp7aW5qXFwsbGltfSIpLEJyKCJcXHByb2psaW0iLCJcXERPVFNCXFxvcGVyYXRvcm5hbWUqe3Byb2pcXCxsaW19IiksQnIoIlxcdmFybGltc3VwIiwiXFxET1RTQlxcb3BlcmF0b3JuYW1lKntcXG92ZXJsaW5le2xpbX19IiksQnIoIlxcdmFybGltaW5mIiwiXFxET1RTQlxcb3BlcmF0b3JuYW1lKntcXHVuZGVybGluZXtsaW19fSIpLEJyKCJcXHZhcmluamxpbSIsIlxcRE9UU0JcXG9wZXJhdG9ybmFtZSp7XFx1bmRlcnJpZ2h0YXJyb3d7bGltfX0iKSxCcigiXFx2YXJwcm9qbGltIiwiXFxET1RTQlxcb3BlcmF0b3JuYW1lKntcXHVuZGVybGVmdGFycm93e2xpbX19IiksQnIoIlxcZ3ZlcnRuZXFxIiwiXFxodG1sQG1hdGhtbHtcXEBndmVydG5lcXF9e1x1MjI2OX0iKSxCcigiXFxsdmVydG5lcXEiLCJcXGh0bWxAbWF0aG1se1xcQGx2ZXJ0bmVxcX17XHUyMjY4fSIpLEJyKCJcXG5nZXFxIiwiXFxodG1sQG1hdGhtbHtcXEBuZ2VxcX17XHUyMjcxfSIpLEJyKCJcXG5nZXFzbGFudCIsIlxcaHRtbEBtYXRobWx7XFxAbmdlcXNsYW50fXtcdTIyNzF9IiksQnIoIlxcbmxlcXEiLCJcXGh0bWxAbWF0aG1se1xcQG5sZXFxfXtcdTIyNzB9IiksQnIoIlxcbmxlcXNsYW50IiwiXFxodG1sQG1hdGhtbHtcXEBubGVxc2xhbnR9e1x1MjI3MH0iKSxCcigiXFxuc2hvcnRtaWQiLCJcXGh0bWxAbWF0aG1se1xcQG5zaG9ydG1pZH17XHUyMjI0fSIpLEJyKCJcXG5zaG9ydHBhcmFsbGVsIiwiXFxodG1sQG1hdGhtbHtcXEBuc2hvcnRwYXJhbGxlbH17XHUyMjI2fSIpLEJyKCJcXG5zdWJzZXRlcXEiLCJcXGh0bWxAbWF0aG1se1xcQG5zdWJzZXRlcXF9e1x1MjI4OH0iKSxCcigiXFxuc3Vwc2V0ZXFxIiwiXFxodG1sQG1hdGhtbHtcXEBuc3Vwc2V0ZXFxfXtcdTIyODl9IiksQnIoIlxcdmFyc3Vic2V0bmVxIiwiXFxodG1sQG1hdGhtbHtcXEB2YXJzdWJzZXRuZXF9e1x1MjI4YX0iKSxCcigiXFx2YXJzdWJzZXRuZXFxIiwiXFxodG1sQG1hdGhtbHtcXEB2YXJzdWJzZXRuZXFxfXtcdTJhY2J9IiksQnIoIlxcdmFyc3Vwc2V0bmVxIiwiXFxodG1sQG1hdGhtbHtcXEB2YXJzdXBzZXRuZXF9e1x1MjI4Yn0iKSxCcigiXFx2YXJzdXBzZXRuZXFxIiwiXFxodG1sQG1hdGhtbHtcXEB2YXJzdXBzZXRuZXFxfXtcdTJhY2N9IiksQnIoIlxcaW1hdGgiLCJcXGh0bWxAbWF0aG1se1xcQGltYXRofXtcdTAxMzF9IiksQnIoIlxcam1hdGgiLCJcXGh0bWxAbWF0aG1se1xcQGptYXRofXtcdTAyMzd9IiksQnIoIlxcbGxicmFja2V0IiwiXFxodG1sQG1hdGhtbHtcXG1hdGhvcGVue1tcXG1rZXJuLTMuMm11W319e1xcbWF0aG9wZW57XFxjaGFyYFx1MjdlNn19IiksQnIoIlxccnJicmFja2V0IiwiXFxodG1sQG1hdGhtbHtcXG1hdGhjbG9zZXtdXFxta2Vybi0zLjJtdV19fXtcXG1hdGhjbG9zZXtcXGNoYXJgXHUyN2U3fX0iKSxCcigiXHUyN2U2IiwiXFxsbGJyYWNrZXQiKSxCcigiXHUyN2U3IiwiXFxycmJyYWNrZXQiKSxCcigiXFxsQnJhY2UiLCJcXGh0bWxAbWF0aG1se1xcbWF0aG9wZW57XFx7XFxta2Vybi0zLjJtdVt9fXtcXG1hdGhvcGVue1xcY2hhcmBcdTI5ODN9fSIpLEJyKCJcXHJCcmFjZSIsIlxcaHRtbEBtYXRobWx7XFxtYXRoY2xvc2V7XVxcbWtlcm4tMy4ybXVcXH19fXtcXG1hdGhjbG9zZXtcXGNoYXJgXHUyOTg0fX0iKSxCcigiXHUyOTgzIiwiXFxsQnJhY2UiKSxCcigiXHUyOTg0IiwiXFxyQnJhY2UiKSxCcigiXFxtaW51c28iLCJcXG1hdGhiaW57XFxodG1sQG1hdGhtbHt7XFxtYXRocmxhcHtcXG1hdGhjaG9pY2V7XFxrZXJuezAuMTQ1ZW19fXtcXGtlcm57MC4xNDVlbX19e1xca2VybnswLjEwMTVlbX19e1xca2VybnswLjA3MjVlbX19XFxjaXJjfXstfX19e1xcY2hhcmBcdTI5YjV9fSIpLEJyKCJcdTI5YjUiLCJcXG1pbnVzbyIpLEJyKCJcXGRhcnIiLCJcXGRvd25hcnJvdyIpLEJyKCJcXGRBcnIiLCJcXERvd25hcnJvdyIpLEJyKCJcXERhcnIiLCJcXERvd25hcnJvdyIpLEJyKCJcXGxhbmciLCJcXGxhbmdsZSIpLEJyKCJcXHJhbmciLCJcXHJhbmdsZSIpLEJyKCJcXHVhcnIiLCJcXHVwYXJyb3ciKSxCcigiXFx1QXJyIiwiXFxVcGFycm93IiksQnIoIlxcVWFyciIsIlxcVXBhcnJvdyIpLEJyKCJcXE4iLCJcXG1hdGhiYntOfSIpLEJyKCJcXFIiLCJcXG1hdGhiYntSfSIpLEJyKCJcXFoiLCJcXG1hdGhiYntafSIpLEJyKCJcXGFsZWYiLCJcXGFsZXBoIiksQnIoIlxcYWxlZnN5bSIsIlxcYWxlcGgiKSxCcigiXFxBbHBoYSIsIlxcbWF0aHJte0F9IiksQnIoIlxcQmV0YSIsIlxcbWF0aHJte0J9IiksQnIoIlxcYnVsbCIsIlxcYnVsbGV0IiksQnIoIlxcQ2hpIiwiXFxtYXRocm17WH0iKSxCcigiXFxjbHVicyIsIlxcY2x1YnN1aXQiKSxCcigiXFxjbnVtcyIsIlxcbWF0aGJie0N9IiksQnIoIlxcQ29tcGxleCIsIlxcbWF0aGJie0N9IiksQnIoIlxcRGFnZ2VyIiwiXFxkZGFnZ2VyIiksQnIoIlxcZGlhbW9uZHMiLCJcXGRpYW1vbmRzdWl0IiksQnIoIlxcZW1wdHkiLCJcXGVtcHR5c2V0IiksQnIoIlxcRXBzaWxvbiIsIlxcbWF0aHJte0V9IiksQnIoIlxcRXRhIiwiXFxtYXRocm17SH0iKSxCcigiXFxleGlzdCIsIlxcZXhpc3RzIiksQnIoIlxcaGFyciIsIlxcbGVmdHJpZ2h0YXJyb3ciKSxCcigiXFxoQXJyIiwiXFxMZWZ0cmlnaHRhcnJvdyIpLEJyKCJcXEhhcnIiLCJcXExlZnRyaWdodGFycm93IiksQnIoIlxcaGVhcnRzIiwiXFxoZWFydHN1aXQiKSxCcigiXFxpbWFnZSIsIlxcSW0iKSxCcigiXFxpbmZpbiIsIlxcaW5mdHkiKSxCcigiXFxJb3RhIiwiXFxtYXRocm17SX0iKSxCcigiXFxpc2luIiwiXFxpbiIpLEJyKCJcXEthcHBhIiwiXFxtYXRocm17S30iKSxCcigiXFxsYXJyIiwiXFxsZWZ0YXJyb3ciKSxCcigiXFxsQXJyIiwiXFxMZWZ0YXJyb3ciKSxCcigiXFxMYXJyIiwiXFxMZWZ0YXJyb3ciKSxCcigiXFxscmFyciIsIlxcbGVmdHJpZ2h0YXJyb3ciKSxCcigiXFxsckFyciIsIlxcTGVmdHJpZ2h0YXJyb3ciKSxCcigiXFxMcmFyciIsIlxcTGVmdHJpZ2h0YXJyb3ciKSxCcigiXFxNdSIsIlxcbWF0aHJte019IiksQnIoIlxcbmF0bnVtcyIsIlxcbWF0aGJie059IiksQnIoIlxcTnUiLCJcXG1hdGhybXtOfSIpLEJyKCJcXE9taWNyb24iLCJcXG1hdGhybXtPfSIpLEJyKCJcXHBsdXNtbiIsIlxccG0iKSxCcigiXFxyYXJyIiwiXFxyaWdodGFycm93IiksQnIoIlxcckFyciIsIlxcUmlnaHRhcnJvdyIpLEJyKCJcXFJhcnIiLCJcXFJpZ2h0YXJyb3ciKSxCcigiXFxyZWFsIiwiXFxSZSIpLEJyKCJcXHJlYWxzIiwiXFxtYXRoYmJ7Un0iKSxCcigiXFxSZWFscyIsIlxcbWF0aGJie1J9IiksQnIoIlxcUmhvIiwiXFxtYXRocm17UH0iKSxCcigiXFxzZG90IiwiXFxjZG90IiksQnIoIlxcc2VjdCIsIlxcUyIpLEJyKCJcXHNwYWRlcyIsIlxcc3BhZGVzdWl0IiksQnIoIlxcc3ViIiwiXFxzdWJzZXQiKSxCcigiXFxzdWJlIiwiXFxzdWJzZXRlcSIpLEJyKCJcXHN1cGUiLCJcXHN1cHNldGVxIiksQnIoIlxcVGF1IiwiXFxtYXRocm17VH0iKSxCcigiXFx0aGV0YXN5bSIsIlxcdmFydGhldGEiKSxCcigiXFx3ZWllcnAiLCJcXHdwIiksQnIoIlxcWmV0YSIsIlxcbWF0aHJte1p9IiksQnIoIlxcYXJnbWluIiwiXFxET1RTQlxcb3BlcmF0b3JuYW1lKnthcmdcXCxtaW59IiksQnIoIlxcYXJnbWF4IiwiXFxET1RTQlxcb3BlcmF0b3JuYW1lKnthcmdcXCxtYXh9IiksQnIoIlxccGxpbSIsIlxcRE9UU0JcXG1hdGhvcHtcXG9wZXJhdG9ybmFtZXtwbGltfX1cXGxpbWl0cyIpLEJyKCJcXGJyYSIsIlxcbWF0aGlubmVye1xcbGFuZ2xleyMxfXx9IiksQnIoIlxca2V0IiwiXFxtYXRoaW5uZXJ7fHsjMX1cXHJhbmdsZX0iKSxCcigiXFxicmFrZXQiLCJcXG1hdGhpbm5lcntcXGxhbmdsZXsjMX1cXHJhbmdsZX0iKSxCcigiXFxCcmEiLCJcXGxlZnRcXGxhbmdsZSMxXFxyaWdodHwiKSxCcigiXFxLZXQiLCJcXGxlZnR8IzFcXHJpZ2h0XFxyYW5nbGUiKTtjb25zdCBJbj1lPT50PT57Y29uc3Qgcj10LmNvbnN1bWVBcmcoKS50b2tlbnMsbj10LmNvbnN1bWVBcmcoKS50b2tlbnMsbz10LmNvbnN1bWVBcmcoKS50b2tlbnMscz10LmNvbnN1bWVBcmcoKS50b2tlbnMsaT10Lm1hY3Jvcy5nZXQoInwiKSxhPXQubWFjcm9zLmdldCgiXFx8Iik7dC5tYWNyb3MuYmVnaW5Hcm91cCgpO2NvbnN0IGw9dD0+cj0+e2UmJihyLm1hY3Jvcy5zZXQoInwiLGkpLG8ubGVuZ3RoJiZyLm1hY3Jvcy5zZXQoIlxcfCIsYSkpO2xldCBzPXQ7aWYoIXQmJm8ubGVuZ3RoKXsifCI9PT1yLmZ1dHVyZSgpLnRleHQmJihyLnBvcFRva2VuKCkscz0hMCl9cmV0dXJue3Rva2VuczpzP286bixudW1BcmdzOjB9fTt0Lm1hY3Jvcy5zZXQoInwiLGwoITEpKSxvLmxlbmd0aCYmdC5tYWNyb3Muc2V0KCJcXHwiLGwoITApKTtjb25zdCBoPXQuY29uc3VtZUFyZygpLnRva2VucyxjPXQuZXhwYW5kVG9rZW5zKFsuLi5zLC4uLmgsLi4ucl0pO3JldHVybiB0Lm1hY3Jvcy5lbmRHcm91cCgpLHt0b2tlbnM6Yy5yZXZlcnNlKCksbnVtQXJnczowfX07QnIoIlxcYnJhQGtldCIsSW4oITEpKSxCcigiXFxicmFAc2V0IixJbighMCkpLEJyKCJcXEJyYWtldCIsIlxcYnJhQGtldHtcXGxlZnRcXGxhbmdsZX17XFwsXFxtaWRkbGVcXHZlcnRcXCx9e1xcLFxcbWlkZGxlXFx2ZXJ0XFwsfXtcXHJpZ2h0XFxyYW5nbGV9IiksQnIoIlxcU2V0IiwiXFxicmFAc2V0e1xcbGVmdFxce1xcOn17XFw7XFxtaWRkbGVcXHZlcnRcXDt9e1xcO1xcbWlkZGxlXFxWZXJ0XFw7fXtcXDpcXHJpZ2h0XFx9fSIpLEJyKCJcXHNldCIsIlxcYnJhQHNldHtcXHtcXCx9e1xcbWlkfXt9e1xcLFxcfX0iKSxCcigiXFxhbmdsbiIsIntcXGFuZ2wgbn0iKSxCcigiXFxibHVlIiwiXFx0ZXh0Y29sb3J7IyM2NDk1ZWR9eyMxfSIpLEJyKCJcXG9yYW5nZSIsIlxcdGV4dGNvbG9yeyMjZmZhNTAwfXsjMX0iKSxCcigiXFxwaW5rIiwiXFx0ZXh0Y29sb3J7IyNmZjAwYWZ9eyMxfSIpLEJyKCJcXHJlZCIsIlxcdGV4dGNvbG9yeyMjZGYwMDMwfXsjMX0iKSxCcigiXFxncmVlbiIsIlxcdGV4dGNvbG9yeyMjMjhhZTdifXsjMX0iKSxCcigiXFxncmF5IiwiXFx0ZXh0Y29sb3J7Z3JheX17IzF9IiksQnIoIlxccHVycGxlIiwiXFx0ZXh0Y29sb3J7IyM5ZDM4YmR9eyMxfSIpLEJyKCJcXGJsdWVBIiwiXFx0ZXh0Y29sb3J7IyNjY2ZhZmZ9eyMxfSIpLEJyKCJcXGJsdWVCIiwiXFx0ZXh0Y29sb3J7IyM4MGY2ZmZ9eyMxfSIpLEJyKCJcXGJsdWVDIiwiXFx0ZXh0Y29sb3J7IyM2M2Q5ZWF9eyMxfSIpLEJyKCJcXGJsdWVEIiwiXFx0ZXh0Y29sb3J7IyMxMWFjY2R9eyMxfSIpLEJyKCJcXGJsdWVFIiwiXFx0ZXh0Y29sb3J7IyMwYzdmOTl9eyMxfSIpLEJyKCJcXHRlYWxBIiwiXFx0ZXh0Y29sb3J7IyM5NGZmZjV9eyMxfSIpLEJyKCJcXHRlYWxCIiwiXFx0ZXh0Y29sb3J7IyMyNmVkZDV9eyMxfSIpLEJyKCJcXHRlYWxDIiwiXFx0ZXh0Y29sb3J7IyMwMWQxYzF9eyMxfSIpLEJyKCJcXHRlYWxEIiwiXFx0ZXh0Y29sb3J7IyMwMWE5OTV9eyMxfSIpLEJyKCJcXHRlYWxFIiwiXFx0ZXh0Y29sb3J7IyMyMDgxNzB9eyMxfSIpLEJyKCJcXGdyZWVuQSIsIlxcdGV4dGNvbG9yeyMjYjZmZmIwfXsjMX0iKSxCcigiXFxncmVlbkIiLCJcXHRleHRjb2xvcnsjIzhhZjI4MX17IzF9IiksQnIoIlxcZ3JlZW5DIiwiXFx0ZXh0Y29sb3J7IyM3NGNmNzB9eyMxfSIpLEJyKCJcXGdyZWVuRCIsIlxcdGV4dGNvbG9yeyMjMWZhYjU0fXsjMX0iKSxCcigiXFxncmVlbkUiLCJcXHRleHRjb2xvcnsjIzBkOTIzZn17IzF9IiksQnIoIlxcZ29sZEEiLCJcXHRleHRjb2xvcnsjI2ZmZDBhOX17IzF9IiksQnIoIlxcZ29sZEIiLCJcXHRleHRjb2xvcnsjI2ZmYmI3MX17IzF9IiksQnIoIlxcZ29sZEMiLCJcXHRleHRjb2xvcnsjI2ZmOWMzOX17IzF9IiksQnIoIlxcZ29sZEQiLCJcXHRleHRjb2xvcnsjI2UwN2QxMH17IzF9IiksQnIoIlxcZ29sZEUiLCJcXHRleHRjb2xvcnsjI2E3NWEwNX17IzF9IiksQnIoIlxccmVkQSIsIlxcdGV4dGNvbG9yeyMjZmNhOWE5fXsjMX0iKSxCcigiXFxyZWRCIiwiXFx0ZXh0Y29sb3J7IyNmZjg0ODJ9eyMxfSIpLEJyKCJcXHJlZEMiLCJcXHRleHRjb2xvcnsjI2Y5Njg1ZH17IzF9IiksQnIoIlxccmVkRCIsIlxcdGV4dGNvbG9yeyMjZTg0ZDM5fXsjMX0iKSxCcigiXFxyZWRFIiwiXFx0ZXh0Y29sb3J7IyNiYzI2MTJ9eyMxfSIpLEJyKCJcXG1hcm9vbkEiLCJcXHRleHRjb2xvcnsjI2ZmYmRlMH17IzF9IiksQnIoIlxcbWFyb29uQiIsIlxcdGV4dGNvbG9yeyMjZmY5MmM2fXsjMX0iKSxCcigiXFxtYXJvb25DIiwiXFx0ZXh0Y29sb3J7IyNlZDVmYTZ9eyMxfSIpLEJyKCJcXG1hcm9vbkQiLCJcXHRleHRjb2xvcnsjI2NhMzM3Y317IzF9IiksQnIoIlxcbWFyb29uRSIsIlxcdGV4dGNvbG9yeyMjOWUwMzRlfXsjMX0iKSxCcigiXFxwdXJwbGVBIiwiXFx0ZXh0Y29sb3J7IyNkZGQ3ZmZ9eyMxfSIpLEJyKCJcXHB1cnBsZUIiLCJcXHRleHRjb2xvcnsjI2M2YjlmY317IzF9IiksQnIoIlxccHVycGxlQyIsIlxcdGV4dGNvbG9yeyMjYWE4N2ZmfXsjMX0iKSxCcigiXFxwdXJwbGVEIiwiXFx0ZXh0Y29sb3J7IyM3ODU0YWJ9eyMxfSIpLEJyKCJcXHB1cnBsZUUiLCJcXHRleHRjb2xvcnsjIzU0M2I3OH17IzF9IiksQnIoIlxcbWludEEiLCJcXHRleHRjb2xvcnsjI2Y1ZjllOH17IzF9IiksQnIoIlxcbWludEIiLCJcXHRleHRjb2xvcnsjI2VkZjJkZn17IzF9IiksQnIoIlxcbWludEMiLCJcXHRleHRjb2xvcnsjI2UwZTVjY317IzF9IiksQnIoIlxcZ3JheUEiLCJcXHRleHRjb2xvcnsjI2Y2ZjdmN317IzF9IiksQnIoIlxcZ3JheUIiLCJcXHRleHRjb2xvcnsjI2YwZjFmMn17IzF9IiksQnIoIlxcZ3JheUMiLCJcXHRleHRjb2xvcnsjI2UzZTVlNn17IzF9IiksQnIoIlxcZ3JheUQiLCJcXHRleHRjb2xvcnsjI2Q2ZDhkYX17IzF9IiksQnIoIlxcZ3JheUUiLCJcXHRleHRjb2xvcnsjI2JhYmVjMn17IzF9IiksQnIoIlxcZ3JheUYiLCJcXHRleHRjb2xvcnsjIzg4OGQ5M317IzF9IiksQnIoIlxcZ3JheUciLCJcXHRleHRjb2xvcnsjIzYyNjU2OX17IzF9IiksQnIoIlxcZ3JheUgiLCJcXHRleHRjb2xvcnsjIzNiM2U0MH17IzF9IiksQnIoIlxcZ3JheUkiLCJcXHRleHRjb2xvcnsjIzIxMjQyY317IzF9IiksQnIoIlxca2FCbHVlIiwiXFx0ZXh0Y29sb3J7IyMzMTQ0NTN9eyMxfSIpLEJyKCJcXGthR3JlZW4iLCJcXHRleHRjb2xvcnsjIzcxQjMwN317IzF9Iik7Y29uc3QgUm49eyJeIjohMCxfOiEwLCJcXGxpbWl0cyI6ITAsIlxcbm9saW1pdHMiOiEwfTtjbGFzcyBIbntjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5zZXR0aW5ncz12b2lkIDAsdGhpcy5leHBhbnNpb25Db3VudD12b2lkIDAsdGhpcy5sZXhlcj12b2lkIDAsdGhpcy5tYWNyb3M9dm9pZCAwLHRoaXMuc3RhY2s9dm9pZCAwLHRoaXMubW9kZT12b2lkIDAsdGhpcy5zZXR0aW5ncz10LHRoaXMuZXhwYW5zaW9uQ291bnQ9MCx0aGlzLmZlZWQoZSksdGhpcy5tYWNyb3M9bmV3IHpuKEFuLHQubWFjcm9zKSx0aGlzLm1vZGU9cix0aGlzLnN0YWNrPVtdfWZlZWQoZSl7dGhpcy5sZXhlcj1uZXcgTW4oZSx0aGlzLnNldHRpbmdzKX1zd2l0Y2hNb2RlKGUpe3RoaXMubW9kZT1lfWJlZ2luR3JvdXAoKXt0aGlzLm1hY3Jvcy5iZWdpbkdyb3VwKCl9ZW5kR3JvdXAoKXt0aGlzLm1hY3Jvcy5lbmRHcm91cCgpfWVuZEdyb3Vwcygpe3RoaXMubWFjcm9zLmVuZEdyb3VwcygpfWZ1dHVyZSgpe3JldHVybiAwPT09dGhpcy5zdGFjay5sZW5ndGgmJnRoaXMucHVzaFRva2VuKHRoaXMubGV4ZXIubGV4KCkpLHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV19cG9wVG9rZW4oKXtyZXR1cm4gdGhpcy5mdXR1cmUoKSx0aGlzLnN0YWNrLnBvcCgpfXB1c2hUb2tlbihlKXt0aGlzLnN0YWNrLnB1c2goZSl9cHVzaFRva2VucyhlKXt0aGlzLnN0YWNrLnB1c2goLi4uZSl9c2NhbkFyZ3VtZW50KGUpe2xldCB0LHIsbjtpZihlKXtpZih0aGlzLmNvbnN1bWVTcGFjZXMoKSwiWyIhPT10aGlzLmZ1dHVyZSgpLnRleHQpcmV0dXJuIG51bGw7dD10aGlzLnBvcFRva2VuKCksKHt0b2tlbnM6bixlbmQ6cn09dGhpcy5jb25zdW1lQXJnKFsiXSJdKSl9ZWxzZSh7dG9rZW5zOm4sc3RhcnQ6dCxlbmQ6cn09dGhpcy5jb25zdW1lQXJnKCkpO3JldHVybiB0aGlzLnB1c2hUb2tlbihuZXcgTnIoIkVPRiIsci5sb2MpKSx0aGlzLnB1c2hUb2tlbnMobiksdC5yYW5nZShyLCIiKX1jb25zdW1lU3BhY2VzKCl7Zm9yKDs7KXtpZigiICIhPT10aGlzLmZ1dHVyZSgpLnRleHQpYnJlYWs7dGhpcy5zdGFjay5wb3AoKX19Y29uc3VtZUFyZyhlKXtjb25zdCB0PVtdLHI9ZSYmZS5sZW5ndGg+MDtyfHx0aGlzLmNvbnN1bWVTcGFjZXMoKTtjb25zdCBvPXRoaXMuZnV0dXJlKCk7bGV0IHMsaT0wLGE9MDtkb3tpZihzPXRoaXMucG9wVG9rZW4oKSx0LnB1c2gocyksInsiPT09cy50ZXh0KSsraTtlbHNlIGlmKCJ9Ij09PXMudGV4dCl7aWYoLS1pLC0xPT09aSl0aHJvdyBuZXcgbigiRXh0cmEgfSIscyl9ZWxzZSBpZigiRU9GIj09PXMudGV4dCl0aHJvdyBuZXcgbigiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgaW4gYSBtYWNybyBhcmd1bWVudCwgZXhwZWN0ZWQgJyIrKGUmJnI/ZVthXToifSIpKyInIixzKTtpZihlJiZyKWlmKCgwPT09aXx8MT09PWkmJiJ7Ij09PWVbYV0pJiZzLnRleHQ9PT1lW2FdKXtpZigrK2EsYT09PWUubGVuZ3RoKXt0LnNwbGljZSgtYSxhKTticmVha319ZWxzZSBhPTB9d2hpbGUoMCE9PWl8fHIpO3JldHVybiJ7Ij09PW8udGV4dCYmIn0iPT09dFt0Lmxlbmd0aC0xXS50ZXh0JiYodC5wb3AoKSx0LnNoaWZ0KCkpLHQucmV2ZXJzZSgpLHt0b2tlbnM6dCxzdGFydDpvLGVuZDpzfX1jb25zdW1lQXJncyhlLHQpe2lmKHQpe2lmKHQubGVuZ3RoIT09ZSsxKXRocm93IG5ldyBuKCJUaGUgbGVuZ3RoIG9mIGRlbGltaXRlcnMgZG9lc24ndCBtYXRjaCB0aGUgbnVtYmVyIG9mIGFyZ3MhIik7Y29uc3Qgcj10WzBdO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXtjb25zdCB0PXRoaXMucG9wVG9rZW4oKTtpZihyW2VdIT09dC50ZXh0KXRocm93IG5ldyBuKCJVc2Ugb2YgdGhlIG1hY3JvIGRvZXNuJ3QgbWF0Y2ggaXRzIGRlZmluaXRpb24iLHQpfX1jb25zdCByPVtdO2ZvcihsZXQgbj0wO248ZTtuKyspci5wdXNoKHRoaXMuY29uc3VtZUFyZyh0JiZ0W24rMV0pLnRva2Vucyk7cmV0dXJuIHJ9Y291bnRFeHBhbnNpb24oZSl7aWYodGhpcy5leHBhbnNpb25Db3VudCs9ZSx0aGlzLmV4cGFuc2lvbkNvdW50PnRoaXMuc2V0dGluZ3MubWF4RXhwYW5kKXRocm93IG5ldyBuKCJUb28gbWFueSBleHBhbnNpb25zOiBpbmZpbml0ZSBsb29wIG9yIG5lZWQgdG8gaW5jcmVhc2UgbWF4RXhwYW5kIHNldHRpbmciKX1leHBhbmRPbmNlKGUpe2NvbnN0IHQ9dGhpcy5wb3BUb2tlbigpLHI9dC50ZXh0LG89dC5ub2V4cGFuZD9udWxsOnRoaXMuX2dldEV4cGFuc2lvbihyKTtpZihudWxsPT1vfHxlJiZvLnVuZXhwYW5kYWJsZSl7aWYoZSYmbnVsbD09byYmIlxcIj09PXJbMF0mJiF0aGlzLmlzRGVmaW5lZChyKSl0aHJvdyBuZXcgbigiVW5kZWZpbmVkIGNvbnRyb2wgc2VxdWVuY2U6ICIrcik7cmV0dXJuIHRoaXMucHVzaFRva2VuKHQpLCExfXRoaXMuY291bnRFeHBhbnNpb24oMSk7bGV0IHM9by50b2tlbnM7Y29uc3QgaT10aGlzLmNvbnN1bWVBcmdzKG8ubnVtQXJncyxvLmRlbGltaXRlcnMpO2lmKG8ubnVtQXJncyl7cz1zLnNsaWNlKCk7Zm9yKGxldCBlPXMubGVuZ3RoLTE7ZT49MDstLWUpe2xldCB0PXNbZV07aWYoIiMiPT09dC50ZXh0KXtpZigwPT09ZSl0aHJvdyBuZXcgbigiSW5jb21wbGV0ZSBwbGFjZWhvbGRlciBhdCBlbmQgb2YgbWFjcm8gYm9keSIsdCk7aWYodD1zWy0tZV0sIiMiPT09dC50ZXh0KXMuc3BsaWNlKGUrMSwxKTtlbHNle2lmKCEvXlsxLTldJC8udGVzdCh0LnRleHQpKXRocm93IG5ldyBuKCJOb3QgYSB2YWxpZCBhcmd1bWVudCBudW1iZXIiLHQpO3Muc3BsaWNlKGUsMiwuLi5pWyt0LnRleHQtMV0pfX19fXJldHVybiB0aGlzLnB1c2hUb2tlbnMocykscy5sZW5ndGh9ZXhwYW5kQWZ0ZXJGdXR1cmUoKXtyZXR1cm4gdGhpcy5leHBhbmRPbmNlKCksdGhpcy5mdXR1cmUoKX1leHBhbmROZXh0VG9rZW4oKXtmb3IoOzspaWYoITE9PT10aGlzLmV4cGFuZE9uY2UoKSl7Y29uc3QgZT10aGlzLnN0YWNrLnBvcCgpO3JldHVybiBlLnRyZWF0QXNSZWxheCYmKGUudGV4dD0iXFxyZWxheCIpLGV9dGhyb3cgbmV3IEVycm9yfWV4cGFuZE1hY3JvKGUpe3JldHVybiB0aGlzLm1hY3Jvcy5oYXMoZSk/dGhpcy5leHBhbmRUb2tlbnMoW25ldyBOcihlKV0pOnZvaWQgMH1leHBhbmRUb2tlbnMoZSl7Y29uc3QgdD1bXSxyPXRoaXMuc3RhY2subGVuZ3RoO2Zvcih0aGlzLnB1c2hUb2tlbnMoZSk7dGhpcy5zdGFjay5sZW5ndGg+cjspaWYoITE9PT10aGlzLmV4cGFuZE9uY2UoITApKXtjb25zdCBlPXRoaXMuc3RhY2sucG9wKCk7ZS50cmVhdEFzUmVsYXgmJihlLm5vZXhwYW5kPSExLGUudHJlYXRBc1JlbGF4PSExKSx0LnB1c2goZSl9cmV0dXJuIHRoaXMuY291bnRFeHBhbnNpb24odC5sZW5ndGgpLHR9ZXhwYW5kTWFjcm9Bc1RleHQoZSl7Y29uc3QgdD10aGlzLmV4cGFuZE1hY3JvKGUpO3JldHVybiB0P3QubWFwKChlPT5lLnRleHQpKS5qb2luKCIiKTp0fV9nZXRFeHBhbnNpb24oZSl7Y29uc3QgdD10aGlzLm1hY3Jvcy5nZXQoZSk7aWYobnVsbD09dClyZXR1cm4gdDtpZigxPT09ZS5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5sZXhlci5jYXRjb2Rlc1tlXTtpZihudWxsIT10JiYxMyE9PXQpcmV0dXJufWNvbnN0IHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dCh0aGlzKTp0O2lmKCJzdHJpbmciPT10eXBlb2Ygcil7bGV0IGU9MDtpZigtMSE9PXIuaW5kZXhPZigiIyIpKXtjb25zdCB0PXIucmVwbGFjZSgvIyMvZywiIik7Zm9yKDstMSE9PXQuaW5kZXhPZigiIyIrKGUrMSkpOykrK2V9Y29uc3QgdD1uZXcgTW4ocix0aGlzLnNldHRpbmdzKSxuPVtdO2xldCBvPXQubGV4KCk7Zm9yKDsiRU9GIiE9PW8udGV4dDspbi5wdXNoKG8pLG89dC5sZXgoKTtuLnJldmVyc2UoKTtyZXR1cm57dG9rZW5zOm4sbnVtQXJnczplfX1yZXR1cm4gcn1pc0RlZmluZWQoZSl7cmV0dXJuIHRoaXMubWFjcm9zLmhhcyhlKXx8eW4uaGFzT3duUHJvcGVydHkoZSl8fG9lLm1hdGguaGFzT3duUHJvcGVydHkoZSl8fG9lLnRleHQuaGFzT3duUHJvcGVydHkoZSl8fFJuLmhhc093blByb3BlcnR5KGUpfWlzRXhwYW5kYWJsZShlKXtjb25zdCB0PXRoaXMubWFjcm9zLmdldChlKTtyZXR1cm4gbnVsbCE9dD8ic3RyaW5nIj09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0fHwhdC51bmV4cGFuZGFibGU6eW4uaGFzT3duUHJvcGVydHkoZSkmJiF5bltlXS5wcmltaXRpdmV9fWNvbnN0IE9uPS9eW1x1MjA4YVx1MjA4Ylx1MjA4Y1x1MjA4ZFx1MjA4ZVx1MjA4MFx1MjA4MVx1MjA4Mlx1MjA4M1x1MjA4NFx1MjA4NVx1MjA4Nlx1MjA4N1x1MjA4OFx1MjA4OVx1MjA5MFx1MjA5MVx1MjA5NVx1MWQ2Mlx1MmM3Y1x1MjA5Nlx1MjA5N1x1MjA5OFx1MjA5OVx1MjA5Mlx1MjA5YVx1MWQ2M1x1MjA5Ylx1MjA5Y1x1MWQ2NFx1MWQ2NVx1MjA5M1x1MWQ2Nlx1MWQ2N1x1MWQ2OFx1MWQ2OVx1MWQ2YV0vLEVuPU9iamVjdC5mcmVlemUoeyJcdTIwOGEiOiIrIiwiXHUyMDhiIjoiLSIsIlx1MjA4YyI6Ij0iLCJcdTIwOGQiOiIoIiwiXHUyMDhlIjoiKSIsIlx1MjA4MCI6IjAiLCJcdTIwODEiOiIxIiwiXHUyMDgyIjoiMiIsIlx1MjA4MyI6IjMiLCJcdTIwODQiOiI0IiwiXHUyMDg1IjoiNSIsIlx1MjA4NiI6IjYiLCJcdTIwODciOiI3IiwiXHUyMDg4IjoiOCIsIlx1MjA4OSI6IjkiLCJcdTIwOTAiOiJhIiwiXHUyMDkxIjoiZSIsIlx1MjA5NSI6ImgiLCJcdTFkNjIiOiJpIiwiXHUyYzdjIjoiaiIsIlx1MjA5NiI6ImsiLCJcdTIwOTciOiJsIiwiXHUyMDk4IjoibSIsIlx1MjA5OSI6Im4iLCJcdTIwOTIiOiJvIiwiXHUyMDlhIjoicCIsIlx1MWQ2MyI6InIiLCJcdTIwOWIiOiJzIiwiXHUyMDljIjoidCIsIlx1MWQ2NCI6InUiLCJcdTFkNjUiOiJ2IiwiXHUyMDkzIjoieCIsIlx1MWQ2NiI6Ilx1MDNiMiIsIlx1MWQ2NyI6Ilx1MDNiMyIsIlx1MWQ2OCI6Ilx1MDNjMSIsIlx1MWQ2OSI6Ilx1MDNkNSIsIlx1MWQ2YSI6Ilx1MDNjNyIsIlx1MjA3YSI6IisiLCJcdTIwN2IiOiItIiwiXHUyMDdjIjoiPSIsIlx1MjA3ZCI6IigiLCJcdTIwN2UiOiIpIiwiXHUyMDcwIjoiMCIsIlx4YjkiOiIxIiwiXHhiMiI6IjIiLCJceGIzIjoiMyIsIlx1MjA3NCI6IjQiLCJcdTIwNzUiOiI1IiwiXHUyMDc2IjoiNiIsIlx1MjA3NyI6IjciLCJcdTIwNzgiOiI4IiwiXHUyMDc5IjoiOSIsIlx1MWQyYyI6IkEiLCJcdTFkMmUiOiJCIiwiXHUxZDMwIjoiRCIsIlx1MWQzMSI6IkUiLCJcdTFkMzMiOiJHIiwiXHUxZDM0IjoiSCIsIlx1MWQzNSI6IkkiLCJcdTFkMzYiOiJKIiwiXHUxZDM3IjoiSyIsIlx1MWQzOCI6IkwiLCJcdTFkMzkiOiJNIiwiXHUxZDNhIjoiTiIsIlx1MWQzYyI6Ik8iLCJcdTFkM2UiOiJQIiwiXHUxZDNmIjoiUiIsIlx1MWQ0MCI6IlQiLCJcdTFkNDEiOiJVIiwiXHUyYzdkIjoiViIsIlx1MWQ0MiI6IlciLCJcdTFkNDMiOiJhIiwiXHUxZDQ3IjoiYiIsIlx1MWQ5YyI6ImMiLCJcdTFkNDgiOiJkIiwiXHUxZDQ5IjoiZSIsIlx1MWRhMCI6ImYiLCJcdTFkNGQiOiJnIiwiXHUwMmIwIjoiaCIsIlx1MjA3MSI6ImkiLCJcdTAyYjIiOiJqIiwiXHUxZDRmIjoiayIsIlx1MDJlMSI6ImwiLCJcdTFkNTAiOiJtIiwiXHUyMDdmIjoibiIsIlx1MWQ1MiI6Im8iLCJcdTFkNTYiOiJwIiwiXHUwMmIzIjoiciIsIlx1MDJlMiI6InMiLCJcdTFkNTciOiJ0IiwiXHUxZDU4IjoidSIsIlx1MWQ1YiI6InYiLCJcdTAyYjciOiJ3IiwiXHUwMmUzIjoieCIsIlx1MDJiOCI6InkiLCJcdTFkYmIiOiJ6IiwiXHUxZDVkIjoiXHUwM2IyIiwiXHUxZDVlIjoiXHUwM2IzIiwiXHUxZDVmIjoiXHUwM2I0IiwiXHUxZDYwIjoiXHUwM2Q1IiwiXHUxZDYxIjoiXHUwM2M3IiwiXHUxZGJmIjoiXHUwM2I4In0pLExuPXsiXHUwMzAxIjp7dGV4dDoiXFwnIixtYXRoOiJcXGFjdXRlIn0sIlx1MDMwMCI6e3RleHQ6IlxcYCIsbWF0aDoiXFxncmF2ZSJ9LCJcdTAzMDgiOnt0ZXh0OidcXCInLG1hdGg6IlxcZGRvdCJ9LCJcdTAzMDMiOnt0ZXh0OiJcXH4iLG1hdGg6IlxcdGlsZGUifSwiXHUwMzA0Ijp7dGV4dDoiXFw9IixtYXRoOiJcXGJhciJ9LCJcdTAzMDYiOnt0ZXh0OiJcXHUiLG1hdGg6IlxcYnJldmUifSwiXHUwMzBjIjp7dGV4dDoiXFx2IixtYXRoOiJcXGNoZWNrIn0sIlx1MDMwMiI6e3RleHQ6IlxcXiIsbWF0aDoiXFxoYXQifSwiXHUwMzA3Ijp7dGV4dDoiXFwuIixtYXRoOiJcXGRvdCJ9LCJcdTAzMGEiOnt0ZXh0OiJcXHIiLG1hdGg6IlxcbWF0aHJpbmcifSwiXHUwMzBiIjp7dGV4dDoiXFxIIn0sIlx1MDMyNyI6e3RleHQ6IlxcYyJ9fSxEbj17Ilx4ZTEiOiJhXHUwMzAxIiwiXHhlMCI6ImFcdTAzMDAiLCJceGU0IjoiYVx1MDMwOCIsIlx1MDFkZiI6ImFcdTAzMDhcdTAzMDQiLCJceGUzIjoiYVx1MDMwMyIsIlx1MDEwMSI6ImFcdTAzMDQiLCJcdTAxMDMiOiJhXHUwMzA2IiwiXHUxZWFmIjoiYVx1MDMwNlx1MDMwMSIsIlx1MWViMSI6ImFcdTAzMDZcdTAzMDAiLCJcdTFlYjUiOiJhXHUwMzA2XHUwMzAzIiwiXHUwMWNlIjoiYVx1MDMwYyIsIlx4ZTIiOiJhXHUwMzAyIiwiXHUxZWE1IjoiYVx1MDMwMlx1MDMwMSIsIlx1MWVhNyI6ImFcdTAzMDJcdTAzMDAiLCJcdTFlYWIiOiJhXHUwMzAyXHUwMzAzIiwiXHUwMjI3IjoiYVx1MDMwNyIsIlx1MDFlMSI6ImFcdTAzMDdcdTAzMDQiLCJceGU1IjoiYVx1MDMwYSIsIlx1MDFmYiI6ImFcdTAzMGFcdTAzMDEiLCJcdTFlMDMiOiJiXHUwMzA3IiwiXHUwMTA3IjoiY1x1MDMwMSIsIlx1MWUwOSI6ImNcdTAzMjdcdTAzMDEiLCJcdTAxMGQiOiJjXHUwMzBjIiwiXHUwMTA5IjoiY1x1MDMwMiIsIlx1MDEwYiI6ImNcdTAzMDciLCJceGU3IjoiY1x1MDMyNyIsIlx1MDEwZiI6ImRcdTAzMGMiLCJcdTFlMGIiOiJkXHUwMzA3IiwiXHUxZTExIjoiZFx1MDMyNyIsIlx4ZTkiOiJlXHUwMzAxIiwiXHhlOCI6ImVcdTAzMDAiLCJceGViIjoiZVx1MDMwOCIsIlx1MWViZCI6ImVcdTAzMDMiLCJcdTAxMTMiOiJlXHUwMzA0IiwiXHUxZTE3IjoiZVx1MDMwNFx1MDMwMSIsIlx1MWUxNSI6ImVcdTAzMDRcdTAzMDAiLCJcdTAxMTUiOiJlXHUwMzA2IiwiXHUxZTFkIjoiZVx1MDMyN1x1MDMwNiIsIlx1MDExYiI6ImVcdTAzMGMiLCJceGVhIjoiZVx1MDMwMiIsIlx1MWViZiI6ImVcdTAzMDJcdTAzMDEiLCJcdTFlYzEiOiJlXHUwMzAyXHUwMzAwIiwiXHUxZWM1IjoiZVx1MDMwMlx1MDMwMyIsIlx1MDExNyI6ImVcdTAzMDciLCJcdTAyMjkiOiJlXHUwMzI3IiwiXHUxZTFmIjoiZlx1MDMwNyIsIlx1MDFmNSI6ImdcdTAzMDEiLCJcdTFlMjEiOiJnXHUwMzA0IiwiXHUwMTFmIjoiZ1x1MDMwNiIsIlx1MDFlNyI6ImdcdTAzMGMiLCJcdTAxMWQiOiJnXHUwMzAyIiwiXHUwMTIxIjoiZ1x1MDMwNyIsIlx1MDEyMyI6ImdcdTAzMjciLCJcdTFlMjciOiJoXHUwMzA4IiwiXHUwMjFmIjoiaFx1MDMwYyIsIlx1MDEyNSI6ImhcdTAzMDIiLCJcdTFlMjMiOiJoXHUwMzA3IiwiXHUxZTI5IjoiaFx1MDMyNyIsIlx4ZWQiOiJpXHUwMzAxIiwiXHhlYyI6ImlcdTAzMDAiLCJceGVmIjoiaVx1MDMwOCIsIlx1MWUyZiI6ImlcdTAzMDhcdTAzMDEiLCJcdTAxMjkiOiJpXHUwMzAzIiwiXHUwMTJiIjoiaVx1MDMwNCIsIlx1MDEyZCI6ImlcdTAzMDYiLCJcdTAxZDAiOiJpXHUwMzBjIiwiXHhlZSI6ImlcdTAzMDIiLCJcdTAxZjAiOiJqXHUwMzBjIiwiXHUwMTM1Ijoialx1MDMwMiIsIlx1MWUzMSI6ImtcdTAzMDEiLCJcdTAxZTkiOiJrXHUwMzBjIiwiXHUwMTM3Ijoia1x1MDMyNyIsIlx1MDEzYSI6ImxcdTAzMDEiLCJcdTAxM2UiOiJsXHUwMzBjIiwiXHUwMTNjIjoibFx1MDMyNyIsIlx1MWUzZiI6Im1cdTAzMDEiLCJcdTFlNDEiOiJtXHUwMzA3IiwiXHUwMTQ0Ijoiblx1MDMwMSIsIlx1MDFmOSI6Im5cdTAzMDAiLCJceGYxIjoiblx1MDMwMyIsIlx1MDE0OCI6Im5cdTAzMGMiLCJcdTFlNDUiOiJuXHUwMzA3IiwiXHUwMTQ2Ijoiblx1MDMyNyIsIlx4ZjMiOiJvXHUwMzAxIiwiXHhmMiI6Im9cdTAzMDAiLCJceGY2Ijoib1x1MDMwOCIsIlx1MDIyYiI6Im9cdTAzMDhcdTAzMDQiLCJceGY1Ijoib1x1MDMwMyIsIlx1MWU0ZCI6Im9cdTAzMDNcdTAzMDEiLCJcdTFlNGYiOiJvXHUwMzAzXHUwMzA4IiwiXHUwMjJkIjoib1x1MDMwM1x1MDMwNCIsIlx1MDE0ZCI6Im9cdTAzMDQiLCJcdTFlNTMiOiJvXHUwMzA0XHUwMzAxIiwiXHUxZTUxIjoib1x1MDMwNFx1MDMwMCIsIlx1MDE0ZiI6Im9cdTAzMDYiLCJcdTAxZDIiOiJvXHUwMzBjIiwiXHhmNCI6Im9cdTAzMDIiLCJcdTFlZDEiOiJvXHUwMzAyXHUwMzAxIiwiXHUxZWQzIjoib1x1MDMwMlx1MDMwMCIsIlx1MWVkNyI6Im9cdTAzMDJcdTAzMDMiLCJcdTAyMmYiOiJvXHUwMzA3IiwiXHUwMjMxIjoib1x1MDMwN1x1MDMwNCIsIlx1MDE1MSI6Im9cdTAzMGIiLCJcdTFlNTUiOiJwXHUwMzAxIiwiXHUxZTU3IjoicFx1MDMwNyIsIlx1MDE1NSI6InJcdTAzMDEiLCJcdTAxNTkiOiJyXHUwMzBjIiwiXHUxZTU5Ijoiclx1MDMwNyIsIlx1MDE1NyI6InJcdTAzMjciLCJcdTAxNWIiOiJzXHUwMzAxIiwiXHUxZTY1Ijoic1x1MDMwMVx1MDMwNyIsIlx1MDE2MSI6InNcdTAzMGMiLCJcdTFlNjciOiJzXHUwMzBjXHUwMzA3IiwiXHUwMTVkIjoic1x1MDMwMiIsIlx1MWU2MSI6InNcdTAzMDciLCJcdTAxNWYiOiJzXHUwMzI3IiwiXHUxZTk3IjoidFx1MDMwOCIsIlx1MDE2NSI6InRcdTAzMGMiLCJcdTFlNmIiOiJ0XHUwMzA3IiwiXHUwMTYzIjoidFx1MDMyNyIsIlx4ZmEiOiJ1XHUwMzAxIiwiXHhmOSI6InVcdTAzMDAiLCJceGZjIjoidVx1MDMwOCIsIlx1MDFkOCI6InVcdTAzMDhcdTAzMDEiLCJcdTAxZGMiOiJ1XHUwMzA4XHUwMzAwIiwiXHUwMWQ2IjoidVx1MDMwOFx1MDMwNCIsIlx1MDFkYSI6InVcdTAzMDhcdTAzMGMiLCJcdTAxNjkiOiJ1XHUwMzAzIiwiXHUxZTc5IjoidVx1MDMwM1x1MDMwMSIsIlx1MDE2YiI6InVcdTAzMDQiLCJcdTFlN2IiOiJ1XHUwMzA0XHUwMzA4IiwiXHUwMTZkIjoidVx1MDMwNiIsIlx1MDFkNCI6InVcdTAzMGMiLCJceGZiIjoidVx1MDMwMiIsIlx1MDE2ZiI6InVcdTAzMGEiLCJcdTAxNzEiOiJ1XHUwMzBiIiwiXHUxZTdkIjoidlx1MDMwMyIsIlx1MWU4MyI6IndcdTAzMDEiLCJcdTFlODEiOiJ3XHUwMzAwIiwiXHUxZTg1Ijoid1x1MDMwOCIsIlx1MDE3NSI6IndcdTAzMDIiLCJcdTFlODciOiJ3XHUwMzA3IiwiXHUxZTk4Ijoid1x1MDMwYSIsIlx1MWU4ZCI6InhcdTAzMDgiLCJcdTFlOGIiOiJ4XHUwMzA3IiwiXHhmZCI6InlcdTAzMDEiLCJcdTFlZjMiOiJ5XHUwMzAwIiwiXHhmZiI6InlcdTAzMDgiLCJcdTFlZjkiOiJ5XHUwMzAzIiwiXHUwMjMzIjoieVx1MDMwNCIsIlx1MDE3NyI6InlcdTAzMDIiLCJcdTFlOGYiOiJ5XHUwMzA3IiwiXHUxZTk5IjoieVx1MDMwYSIsIlx1MDE3YSI6InpcdTAzMDEiLCJcdTAxN2UiOiJ6XHUwMzBjIiwiXHUxZTkxIjoielx1MDMwMiIsIlx1MDE3YyI6InpcdTAzMDciLCJceGMxIjoiQVx1MDMwMSIsIlx4YzAiOiJBXHUwMzAwIiwiXHhjNCI6IkFcdTAzMDgiLCJcdTAxZGUiOiJBXHUwMzA4XHUwMzA0IiwiXHhjMyI6IkFcdTAzMDMiLCJcdTAxMDAiOiJBXHUwMzA0IiwiXHUwMTAyIjoiQVx1MDMwNiIsIlx1MWVhZSI6IkFcdTAzMDZcdTAzMDEiLCJcdTFlYjAiOiJBXHUwMzA2XHUwMzAwIiwiXHUxZWI0IjoiQVx1MDMwNlx1MDMwMyIsIlx1MDFjZCI6IkFcdTAzMGMiLCJceGMyIjoiQVx1MDMwMiIsIlx1MWVhNCI6IkFcdTAzMDJcdTAzMDEiLCJcdTFlYTYiOiJBXHUwMzAyXHUwMzAwIiwiXHUxZWFhIjoiQVx1MDMwMlx1MDMwMyIsIlx1MDIyNiI6IkFcdTAzMDciLCJcdTAxZTAiOiJBXHUwMzA3XHUwMzA0IiwiXHhjNSI6IkFcdTAzMGEiLCJcdTAxZmEiOiJBXHUwMzBhXHUwMzAxIiwiXHUxZTAyIjoiQlx1MDMwNyIsIlx1MDEwNiI6IkNcdTAzMDEiLCJcdTFlMDgiOiJDXHUwMzI3XHUwMzAxIiwiXHUwMTBjIjoiQ1x1MDMwYyIsIlx1MDEwOCI6IkNcdTAzMDIiLCJcdTAxMGEiOiJDXHUwMzA3IiwiXHhjNyI6IkNcdTAzMjciLCJcdTAxMGUiOiJEXHUwMzBjIiwiXHUxZTBhIjoiRFx1MDMwNyIsIlx1MWUxMCI6IkRcdTAzMjciLCJceGM5IjoiRVx1MDMwMSIsIlx4YzgiOiJFXHUwMzAwIiwiXHhjYiI6IkVcdTAzMDgiLCJcdTFlYmMiOiJFXHUwMzAzIiwiXHUwMTEyIjoiRVx1MDMwNCIsIlx1MWUxNiI6IkVcdTAzMDRcdTAzMDEiLCJcdTFlMTQiOiJFXHUwMzA0XHUwMzAwIiwiXHUwMTE0IjoiRVx1MDMwNiIsIlx1MWUxYyI6IkVcdTAzMjdcdTAzMDYiLCJcdTAxMWEiOiJFXHUwMzBjIiwiXHhjYSI6IkVcdTAzMDIiLCJcdTFlYmUiOiJFXHUwMzAyXHUwMzAxIiwiXHUxZWMwIjoiRVx1MDMwMlx1MDMwMCIsIlx1MWVjNCI6IkVcdTAzMDJcdTAzMDMiLCJcdTAxMTYiOiJFXHUwMzA3IiwiXHUwMjI4IjoiRVx1MDMyNyIsIlx1MWUxZSI6IkZcdTAzMDciLCJcdTAxZjQiOiJHXHUwMzAxIiwiXHUxZTIwIjoiR1x1MDMwNCIsIlx1MDExZSI6IkdcdTAzMDYiLCJcdTAxZTYiOiJHXHUwMzBjIiwiXHUwMTFjIjoiR1x1MDMwMiIsIlx1MDEyMCI6IkdcdTAzMDciLCJcdTAxMjIiOiJHXHUwMzI3IiwiXHUxZTI2IjoiSFx1MDMwOCIsIlx1MDIxZSI6IkhcdTAzMGMiLCJcdTAxMjQiOiJIXHUwMzAyIiwiXHUxZTIyIjoiSFx1MDMwNyIsIlx1MWUyOCI6IkhcdTAzMjciLCJceGNkIjoiSVx1MDMwMSIsIlx4Y2MiOiJJXHUwMzAwIiwiXHhjZiI6IklcdTAzMDgiLCJcdTFlMmUiOiJJXHUwMzA4XHUwMzAxIiwiXHUwMTI4IjoiSVx1MDMwMyIsIlx1MDEyYSI6IklcdTAzMDQiLCJcdTAxMmMiOiJJXHUwMzA2IiwiXHUwMWNmIjoiSVx1MDMwYyIsIlx4Y2UiOiJJXHUwMzAyIiwiXHUwMTMwIjoiSVx1MDMwNyIsIlx1MDEzNCI6IkpcdTAzMDIiLCJcdTFlMzAiOiJLXHUwMzAxIiwiXHUwMWU4IjoiS1x1MDMwYyIsIlx1MDEzNiI6IktcdTAzMjciLCJcdTAxMzkiOiJMXHUwMzAxIiwiXHUwMTNkIjoiTFx1MDMwYyIsIlx1MDEzYiI6IkxcdTAzMjciLCJcdTFlM2UiOiJNXHUwMzAxIiwiXHUxZTQwIjoiTVx1MDMwNyIsIlx1MDE0MyI6Ik5cdTAzMDEiLCJcdTAxZjgiOiJOXHUwMzAwIiwiXHhkMSI6Ik5cdTAzMDMiLCJcdTAxNDciOiJOXHUwMzBjIiwiXHUxZTQ0IjoiTlx1MDMwNyIsIlx1MDE0NSI6Ik5cdTAzMjciLCJceGQzIjoiT1x1MDMwMSIsIlx4ZDIiOiJPXHUwMzAwIiwiXHhkNiI6Ik9cdTAzMDgiLCJcdTAyMmEiOiJPXHUwMzA4XHUwMzA0IiwiXHhkNSI6Ik9cdTAzMDMiLCJcdTFlNGMiOiJPXHUwMzAzXHUwMzAxIiwiXHUxZTRlIjoiT1x1MDMwM1x1MDMwOCIsIlx1MDIyYyI6Ik9cdTAzMDNcdTAzMDQiLCJcdTAxNGMiOiJPXHUwMzA0IiwiXHUxZTUyIjoiT1x1MDMwNFx1MDMwMSIsIlx1MWU1MCI6Ik9cdTAzMDRcdTAzMDAiLCJcdTAxNGUiOiJPXHUwMzA2IiwiXHUwMWQxIjoiT1x1MDMwYyIsIlx4ZDQiOiJPXHUwMzAyIiwiXHUxZWQwIjoiT1x1MDMwMlx1MDMwMSIsIlx1MWVkMiI6Ik9cdTAzMDJcdTAzMDAiLCJcdTFlZDYiOiJPXHUwMzAyXHUwMzAzIiwiXHUwMjJlIjoiT1x1MDMwNyIsIlx1MDIzMCI6Ik9cdTAzMDdcdTAzMDQiLCJcdTAxNTAiOiJPXHUwMzBiIiwiXHUxZTU0IjoiUFx1MDMwMSIsIlx1MWU1NiI6IlBcdTAzMDciLCJcdTAxNTQiOiJSXHUwMzAxIiwiXHUwMTU4IjoiUlx1MDMwYyIsIlx1MWU1OCI6IlJcdTAzMDciLCJcdTAxNTYiOiJSXHUwMzI3IiwiXHUwMTVhIjoiU1x1MDMwMSIsIlx1MWU2NCI6IlNcdTAzMDFcdTAzMDciLCJcdTAxNjAiOiJTXHUwMzBjIiwiXHUxZTY2IjoiU1x1MDMwY1x1MDMwNyIsIlx1MDE1YyI6IlNcdTAzMDIiLCJcdTFlNjAiOiJTXHUwMzA3IiwiXHUwMTVlIjoiU1x1MDMyNyIsIlx1MDE2NCI6IlRcdTAzMGMiLCJcdTFlNmEiOiJUXHUwMzA3IiwiXHUwMTYyIjoiVFx1MDMyNyIsIlx4ZGEiOiJVXHUwMzAxIiwiXHhkOSI6IlVcdTAzMDAiLCJceGRjIjoiVVx1MDMwOCIsIlx1MDFkNyI6IlVcdTAzMDhcdTAzMDEiLCJcdTAxZGIiOiJVXHUwMzA4XHUwMzAwIiwiXHUwMWQ1IjoiVVx1MDMwOFx1MDMwNCIsIlx1MDFkOSI6IlVcdTAzMDhcdTAzMGMiLCJcdTAxNjgiOiJVXHUwMzAzIiwiXHUxZTc4IjoiVVx1MDMwM1x1MDMwMSIsIlx1MDE2YSI6IlVcdTAzMDQiLCJcdTFlN2EiOiJVXHUwMzA0XHUwMzA4IiwiXHUwMTZjIjoiVVx1MDMwNiIsIlx1MDFkMyI6IlVcdTAzMGMiLCJceGRiIjoiVVx1MDMwMiIsIlx1MDE2ZSI6IlVcdTAzMGEiLCJcdTAxNzAiOiJVXHUwMzBiIiwiXHUxZTdjIjoiVlx1MDMwMyIsIlx1MWU4MiI6IldcdTAzMDEiLCJcdTFlODAiOiJXXHUwMzAwIiwiXHUxZTg0IjoiV1x1MDMwOCIsIlx1MDE3NCI6IldcdTAzMDIiLCJcdTFlODYiOiJXXHUwMzA3IiwiXHUxZThjIjoiWFx1MDMwOCIsIlx1MWU4YSI6IlhcdTAzMDciLCJceGRkIjoiWVx1MDMwMSIsIlx1MWVmMiI6IllcdTAzMDAiLCJcdTAxNzgiOiJZXHUwMzA4IiwiXHUxZWY4IjoiWVx1MDMwMyIsIlx1MDIzMiI6IllcdTAzMDQiLCJcdTAxNzYiOiJZXHUwMzAyIiwiXHUxZThlIjoiWVx1MDMwNyIsIlx1MDE3OSI6IlpcdTAzMDEiLCJcdTAxN2QiOiJaXHUwMzBjIiwiXHUxZTkwIjoiWlx1MDMwMiIsIlx1MDE3YiI6IlpcdTAzMDciLCJcdTAzYWMiOiJcdTAzYjFcdTAzMDEiLCJcdTFmNzAiOiJcdTAzYjFcdTAzMDAiLCJcdTFmYjEiOiJcdTAzYjFcdTAzMDQiLCJcdTFmYjAiOiJcdTAzYjFcdTAzMDYiLCJcdTAzYWQiOiJcdTAzYjVcdTAzMDEiLCJcdTFmNzIiOiJcdTAzYjVcdTAzMDAiLCJcdTAzYWUiOiJcdTAzYjdcdTAzMDEiLCJcdTFmNzQiOiJcdTAzYjdcdTAzMDAiLCJcdTAzYWYiOiJcdTAzYjlcdTAzMDEiLCJcdTFmNzYiOiJcdTAzYjlcdTAzMDAiLCJcdTAzY2EiOiJcdTAzYjlcdTAzMDgiLCJcdTAzOTAiOiJcdTAzYjlcdTAzMDhcdTAzMDEiLCJcdTFmZDIiOiJcdTAzYjlcdTAzMDhcdTAzMDAiLCJcdTFmZDEiOiJcdTAzYjlcdTAzMDQiLCJcdTFmZDAiOiJcdTAzYjlcdTAzMDYiLCJcdTAzY2MiOiJcdTAzYmZcdTAzMDEiLCJcdTFmNzgiOiJcdTAzYmZcdTAzMDAiLCJcdTAzY2QiOiJcdTAzYzVcdTAzMDEiLCJcdTFmN2EiOiJcdTAzYzVcdTAzMDAiLCJcdTAzY2IiOiJcdTAzYzVcdTAzMDgiLCJcdTAzYjAiOiJcdTAzYzVcdTAzMDhcdTAzMDEiLCJcdTFmZTIiOiJcdTAzYzVcdTAzMDhcdTAzMDAiLCJcdTFmZTEiOiJcdTAzYzVcdTAzMDQiLCJcdTFmZTAiOiJcdTAzYzVcdTAzMDYiLCJcdTAzY2UiOiJcdTAzYzlcdTAzMDEiLCJcdTFmN2MiOiJcdTAzYzlcdTAzMDAiLCJcdTAzOGUiOiJcdTAzYTVcdTAzMDEiLCJcdTFmZWEiOiJcdTAzYTVcdTAzMDAiLCJcdTAzYWIiOiJcdTAzYTVcdTAzMDgiLCJcdTFmZTkiOiJcdTAzYTVcdTAzMDQiLCJcdTFmZTgiOiJcdTAzYTVcdTAzMDYiLCJcdTAzOGYiOiJcdTAzYTlcdTAzMDEiLCJcdTFmZmEiOiJcdTAzYTlcdTAzMDAifTtjbGFzcyBWbntjb25zdHJ1Y3RvcihlLHQpe3RoaXMubW9kZT12b2lkIDAsdGhpcy5ndWxsZXQ9dm9pZCAwLHRoaXMuc2V0dGluZ3M9dm9pZCAwLHRoaXMubGVmdHJpZ2h0RGVwdGg9dm9pZCAwLHRoaXMubmV4dFRva2VuPXZvaWQgMCx0aGlzLm1vZGU9Im1hdGgiLHRoaXMuZ3VsbGV0PW5ldyBIbihlLHQsdGhpcy5tb2RlKSx0aGlzLnNldHRpbmdzPXQsdGhpcy5sZWZ0cmlnaHREZXB0aD0wfWV4cGVjdChlLHQpe2lmKHZvaWQgMD09PXQmJih0PSEwKSx0aGlzLmZldGNoKCkudGV4dCE9PWUpdGhyb3cgbmV3IG4oIkV4cGVjdGVkICciK2UrIicsIGdvdCAnIit0aGlzLmZldGNoKCkudGV4dCsiJyIsdGhpcy5mZXRjaCgpKTt0JiZ0aGlzLmNvbnN1bWUoKX1jb25zdW1lKCl7dGhpcy5uZXh0VG9rZW49bnVsbH1mZXRjaCgpe3JldHVybiBudWxsPT10aGlzLm5leHRUb2tlbiYmKHRoaXMubmV4dFRva2VuPXRoaXMuZ3VsbGV0LmV4cGFuZE5leHRUb2tlbigpKSx0aGlzLm5leHRUb2tlbn1zd2l0Y2hNb2RlKGUpe3RoaXMubW9kZT1lLHRoaXMuZ3VsbGV0LnN3aXRjaE1vZGUoZSl9cGFyc2UoKXt0aGlzLnNldHRpbmdzLmdsb2JhbEdyb3VwfHx0aGlzLmd1bGxldC5iZWdpbkdyb3VwKCksdGhpcy5zZXR0aW5ncy5jb2xvcklzVGV4dENvbG9yJiZ0aGlzLmd1bGxldC5tYWNyb3Muc2V0KCJcXGNvbG9yIiwiXFx0ZXh0Y29sb3IiKTt0cnl7Y29uc3QgZT10aGlzLnBhcnNlRXhwcmVzc2lvbighMSk7cmV0dXJuIHRoaXMuZXhwZWN0KCJFT0YiKSx0aGlzLnNldHRpbmdzLmdsb2JhbEdyb3VwfHx0aGlzLmd1bGxldC5lbmRHcm91cCgpLGV9ZmluYWxseXt0aGlzLmd1bGxldC5lbmRHcm91cHMoKX19c3VicGFyc2UoZSl7Y29uc3QgdD10aGlzLm5leHRUb2tlbjt0aGlzLmNvbnN1bWUoKSx0aGlzLmd1bGxldC5wdXNoVG9rZW4obmV3IE5yKCJ9IikpLHRoaXMuZ3VsbGV0LnB1c2hUb2tlbnMoZSk7Y29uc3Qgcj10aGlzLnBhcnNlRXhwcmVzc2lvbighMSk7cmV0dXJuIHRoaXMuZXhwZWN0KCJ9IiksdGhpcy5uZXh0VG9rZW49dCxyfXBhcnNlRXhwcmVzc2lvbihlLHQpe2NvbnN0IHI9W107Zm9yKDs7KXsibWF0aCI9PT10aGlzLm1vZGUmJnRoaXMuY29uc3VtZVNwYWNlcygpO2NvbnN0IG49dGhpcy5mZXRjaCgpO2lmKC0xIT09Vm4uZW5kT2ZFeHByZXNzaW9uLmluZGV4T2Yobi50ZXh0KSlicmVhaztpZih0JiZuLnRleHQ9PT10KWJyZWFrO2lmKGUmJnluW24udGV4dF0mJnluW24udGV4dF0uaW5maXgpYnJlYWs7Y29uc3Qgbz10aGlzLnBhcnNlQXRvbSh0KTtpZighbylicmVhazsiaW50ZXJuYWwiIT09by50eXBlJiZyLnB1c2gobyl9cmV0dXJuInRleHQiPT09dGhpcy5tb2RlJiZ0aGlzLmZvcm1MaWdhdHVyZXMociksdGhpcy5oYW5kbGVJbmZpeE5vZGVzKHIpfWhhbmRsZUluZml4Tm9kZXMoZSl7bGV0IHQscj0tMTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKylpZigiaW5maXgiPT09ZVtvXS50eXBlKXtpZigtMSE9PXIpdGhyb3cgbmV3IG4oIm9ubHkgb25lIGluZml4IG9wZXJhdG9yIHBlciBncm91cCIsZVtvXS50b2tlbik7cj1vLHQ9ZVtvXS5yZXBsYWNlV2l0aH1pZigtMSE9PXImJnQpe2xldCBuLG87Y29uc3Qgcz1lLnNsaWNlKDAsciksaT1lLnNsaWNlKHIrMSk7bGV0IGE7cmV0dXJuIG49MT09PXMubGVuZ3RoJiYib3JkZ3JvdXAiPT09c1swXS50eXBlP3NbMF06e3R5cGU6Im9yZGdyb3VwIixtb2RlOnRoaXMubW9kZSxib2R5OnN9LG89MT09PWkubGVuZ3RoJiYib3JkZ3JvdXAiPT09aVswXS50eXBlP2lbMF06e3R5cGU6Im9yZGdyb3VwIixtb2RlOnRoaXMubW9kZSxib2R5Oml9LGE9IlxcXFxhYm92ZWZyYWMiPT09dD90aGlzLmNhbGxGdW5jdGlvbih0LFtuLGVbcl0sb10sW10pOnRoaXMuY2FsbEZ1bmN0aW9uKHQsW24sb10sW10pLFthXX1yZXR1cm4gZX1oYW5kbGVTdXBTdWJzY3JpcHQoZSl7Y29uc3QgdD10aGlzLmZldGNoKCkscj10LnRleHQ7dGhpcy5jb25zdW1lKCksdGhpcy5jb25zdW1lU3BhY2VzKCk7Y29uc3Qgbz10aGlzLnBhcnNlR3JvdXAoZSk7aWYoIW8pdGhyb3cgbmV3IG4oIkV4cGVjdGVkIGdyb3VwIGFmdGVyICciK3IrIiciLHQpO3JldHVybiBvfWZvcm1hdFVuc3VwcG9ydGVkQ21kKGUpe2NvbnN0IHQ9W107Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdC5wdXNoKHt0eXBlOiJ0ZXh0b3JkIixtb2RlOiJ0ZXh0Iix0ZXh0OmVbcl19KTtjb25zdCByPXt0eXBlOiJ0ZXh0Iixtb2RlOnRoaXMubW9kZSxib2R5OnR9O3JldHVybnt0eXBlOiJjb2xvciIsbW9kZTp0aGlzLm1vZGUsY29sb3I6dGhpcy5zZXR0aW5ncy5lcnJvckNvbG9yLGJvZHk6W3JdfX1wYXJzZUF0b20oZSl7Y29uc3QgdD10aGlzLnBhcnNlR3JvdXAoImF0b20iLGUpO2lmKCJ0ZXh0Ij09PXRoaXMubW9kZSlyZXR1cm4gdDtsZXQgcixvO2Zvcig7Oyl7dGhpcy5jb25zdW1lU3BhY2VzKCk7Y29uc3QgZT10aGlzLmZldGNoKCk7aWYoIlxcbGltaXRzIj09PWUudGV4dHx8Ilxcbm9saW1pdHMiPT09ZS50ZXh0KXtpZih0JiYib3AiPT09dC50eXBlKXtjb25zdCByPSJcXGxpbWl0cyI9PT1lLnRleHQ7dC5saW1pdHM9cix0LmFsd2F5c0hhbmRsZVN1cFN1Yj0hMH1lbHNle2lmKCF0fHwib3BlcmF0b3JuYW1lIiE9PXQudHlwZSl0aHJvdyBuZXcgbigiTGltaXQgY29udHJvbHMgbXVzdCBmb2xsb3cgYSBtYXRoIG9wZXJhdG9yIixlKTt0LmFsd2F5c0hhbmRsZVN1cFN1YiYmKHQubGltaXRzPSJcXGxpbWl0cyI9PT1lLnRleHQpfXRoaXMuY29uc3VtZSgpfWVsc2UgaWYoIl4iPT09ZS50ZXh0KXtpZihyKXRocm93IG5ldyBuKCJEb3VibGUgc3VwZXJzY3JpcHQiLGUpO3I9dGhpcy5oYW5kbGVTdXBTdWJzY3JpcHQoInN1cGVyc2NyaXB0Iil9ZWxzZSBpZigiXyI9PT1lLnRleHQpe2lmKG8pdGhyb3cgbmV3IG4oIkRvdWJsZSBzdWJzY3JpcHQiLGUpO289dGhpcy5oYW5kbGVTdXBTdWJzY3JpcHQoInN1YnNjcmlwdCIpfWVsc2UgaWYoIiciPT09ZS50ZXh0KXtpZihyKXRocm93IG5ldyBuKCJEb3VibGUgc3VwZXJzY3JpcHQiLGUpO2NvbnN0IHQ9e3R5cGU6InRleHRvcmQiLG1vZGU6dGhpcy5tb2RlLHRleHQ6IlxccHJpbWUifSxvPVt0XTtmb3IodGhpcy5jb25zdW1lKCk7IiciPT09dGhpcy5mZXRjaCgpLnRleHQ7KW8ucHVzaCh0KSx0aGlzLmNvbnN1bWUoKTsiXiI9PT10aGlzLmZldGNoKCkudGV4dCYmby5wdXNoKHRoaXMuaGFuZGxlU3VwU3Vic2NyaXB0KCJzdXBlcnNjcmlwdCIpKSxyPXt0eXBlOiJvcmRncm91cCIsbW9kZTp0aGlzLm1vZGUsYm9keTpvfX1lbHNle2lmKCFFbltlLnRleHRdKWJyZWFrO3tjb25zdCB0PU9uLnRlc3QoZS50ZXh0KSxuPVtdO2ZvcihuLnB1c2gobmV3IE5yKEVuW2UudGV4dF0pKSx0aGlzLmNvbnN1bWUoKTs7KXtjb25zdCBlPXRoaXMuZmV0Y2goKS50ZXh0O2lmKCFFbltlXSlicmVhaztpZihPbi50ZXN0KGUpIT09dClicmVhaztuLnVuc2hpZnQobmV3IE5yKEVuW2VdKSksdGhpcy5jb25zdW1lKCl9Y29uc3Qgcz10aGlzLnN1YnBhcnNlKG4pO3Q/bz17dHlwZToib3JkZ3JvdXAiLG1vZGU6Im1hdGgiLGJvZHk6c306cj17dHlwZToib3JkZ3JvdXAiLG1vZGU6Im1hdGgiLGJvZHk6c319fX1yZXR1cm4gcnx8bz97dHlwZToic3Vwc3ViIixtb2RlOnRoaXMubW9kZSxiYXNlOnQsc3VwOnIsc3ViOm99OnR9cGFyc2VGdW5jdGlvbihlLHQpe2NvbnN0IHI9dGhpcy5mZXRjaCgpLG89ci50ZXh0LHM9eW5bb107aWYoIXMpcmV0dXJuIG51bGw7aWYodGhpcy5jb25zdW1lKCksdCYmImF0b20iIT09dCYmIXMuYWxsb3dlZEluQXJndW1lbnQpdGhyb3cgbmV3IG4oIkdvdCBmdW5jdGlvbiAnIitvKyInIHdpdGggbm8gYXJndW1lbnRzIisodD8iIGFzICIrdDoiIikscik7aWYoInRleHQiPT09dGhpcy5tb2RlJiYhcy5hbGxvd2VkSW5UZXh0KXRocm93IG5ldyBuKCJDYW4ndCB1c2UgZnVuY3Rpb24gJyIrbysiJyBpbiB0ZXh0IG1vZGUiLHIpO2lmKCJtYXRoIj09PXRoaXMubW9kZSYmITE9PT1zLmFsbG93ZWRJbk1hdGgpdGhyb3cgbmV3IG4oIkNhbid0IHVzZSBmdW5jdGlvbiAnIitvKyInIGluIG1hdGggbW9kZSIscik7Y29uc3R7YXJnczppLG9wdEFyZ3M6YX09dGhpcy5wYXJzZUFyZ3VtZW50cyhvLHMpO3JldHVybiB0aGlzLmNhbGxGdW5jdGlvbihvLGksYSxyLGUpfWNhbGxGdW5jdGlvbihlLHQscixvLHMpe2NvbnN0IGk9e2Z1bmNOYW1lOmUscGFyc2VyOnRoaXMsdG9rZW46byxicmVha09uVG9rZW5UZXh0OnN9LGE9eW5bZV07aWYoYSYmYS5oYW5kbGVyKXJldHVybiBhLmhhbmRsZXIoaSx0LHIpO3Rocm93IG5ldyBuKCJObyBmdW5jdGlvbiBoYW5kbGVyIGZvciAiK2UpfXBhcnNlQXJndW1lbnRzKGUsdCl7Y29uc3Qgcj10Lm51bUFyZ3MrdC5udW1PcHRpb25hbEFyZ3M7aWYoMD09PXIpcmV0dXJue2FyZ3M6W10sb3B0QXJnczpbXX07Y29uc3Qgbz1bXSxzPVtdO2ZvcihsZXQgaT0wO2k8cjtpKyspe2xldCByPXQuYXJnVHlwZXMmJnQuYXJnVHlwZXNbaV07Y29uc3QgYT1pPHQubnVtT3B0aW9uYWxBcmdzOyh0LnByaW1pdGl2ZSYmbnVsbD09cnx8InNxcnQiPT09dC50eXBlJiYxPT09aSYmbnVsbD09c1swXSkmJihyPSJwcmltaXRpdmUiKTtjb25zdCBsPXRoaXMucGFyc2VHcm91cE9mVHlwZSgiYXJndW1lbnQgdG8gJyIrZSsiJyIscixhKTtpZihhKXMucHVzaChsKTtlbHNle2lmKG51bGw9PWwpdGhyb3cgbmV3IG4oIk51bGwgYXJndW1lbnQsIHBsZWFzZSByZXBvcnQgdGhpcyBhcyBhIGJ1ZyIpO28ucHVzaChsKX19cmV0dXJue2FyZ3M6byxvcHRBcmdzOnN9fXBhcnNlR3JvdXBPZlR5cGUoZSx0LHIpe3N3aXRjaCh0KXtjYXNlImNvbG9yIjpyZXR1cm4gdGhpcy5wYXJzZUNvbG9yR3JvdXAocik7Y2FzZSJzaXplIjpyZXR1cm4gdGhpcy5wYXJzZVNpemVHcm91cChyKTtjYXNlInVybCI6cmV0dXJuIHRoaXMucGFyc2VVcmxHcm91cChyKTtjYXNlIm1hdGgiOmNhc2UidGV4dCI6cmV0dXJuIHRoaXMucGFyc2VBcmd1bWVudEdyb3VwKHIsdCk7Y2FzZSJoYm94Ijp7Y29uc3QgZT10aGlzLnBhcnNlQXJndW1lbnRHcm91cChyLCJ0ZXh0Iik7cmV0dXJuIG51bGwhPWU/e3R5cGU6InN0eWxpbmciLG1vZGU6ZS5tb2RlLGJvZHk6W2VdLHN0eWxlOiJ0ZXh0In06bnVsbH1jYXNlInJhdyI6e2NvbnN0IGU9dGhpcy5wYXJzZVN0cmluZ0dyb3VwKCJyYXciLHIpO3JldHVybiBudWxsIT1lP3t0eXBlOiJyYXciLG1vZGU6InRleHQiLHN0cmluZzplLnRleHR9Om51bGx9Y2FzZSJwcmltaXRpdmUiOntpZihyKXRocm93IG5ldyBuKCJBIHByaW1pdGl2ZSBhcmd1bWVudCBjYW5ub3QgYmUgb3B0aW9uYWwiKTtjb25zdCB0PXRoaXMucGFyc2VHcm91cChlKTtpZihudWxsPT10KXRocm93IG5ldyBuKCJFeHBlY3RlZCBncm91cCBhcyAiK2UsdGhpcy5mZXRjaCgpKTtyZXR1cm4gdH1jYXNlIm9yaWdpbmFsIjpjYXNlIG51bGw6Y2FzZSB2b2lkIDA6cmV0dXJuIHRoaXMucGFyc2VBcmd1bWVudEdyb3VwKHIpO2RlZmF1bHQ6dGhyb3cgbmV3IG4oIlVua25vd24gZ3JvdXAgdHlwZSBhcyAiK2UsdGhpcy5mZXRjaCgpKX19Y29uc3VtZVNwYWNlcygpe2Zvcig7IiAiPT09dGhpcy5mZXRjaCgpLnRleHQ7KXRoaXMuY29uc3VtZSgpfXBhcnNlU3RyaW5nR3JvdXAoZSx0KXtjb25zdCByPXRoaXMuZ3VsbGV0LnNjYW5Bcmd1bWVudCh0KTtpZihudWxsPT1yKXJldHVybiBudWxsO2xldCBuLG89IiI7Zm9yKDsiRU9GIiE9PShuPXRoaXMuZmV0Y2goKSkudGV4dDspbys9bi50ZXh0LHRoaXMuY29uc3VtZSgpO3JldHVybiB0aGlzLmNvbnN1bWUoKSxyLnRleHQ9byxyfXBhcnNlUmVnZXhHcm91cChlLHQpe2NvbnN0IHI9dGhpcy5mZXRjaCgpO2xldCBvLHM9cixpPSIiO2Zvcig7IkVPRiIhPT0obz10aGlzLmZldGNoKCkpLnRleHQmJmUudGVzdChpK28udGV4dCk7KXM9byxpKz1zLnRleHQsdGhpcy5jb25zdW1lKCk7aWYoIiI9PT1pKXRocm93IG5ldyBuKCJJbnZhbGlkICIrdCsiOiAnIityLnRleHQrIiciLHIpO3JldHVybiByLnJhbmdlKHMsaSl9cGFyc2VDb2xvckdyb3VwKGUpe2NvbnN0IHQ9dGhpcy5wYXJzZVN0cmluZ0dyb3VwKCJjb2xvciIsZSk7aWYobnVsbD09dClyZXR1cm4gbnVsbDtjb25zdCByPS9eKCNbYS1mMC05XXszfXwjP1thLWYwLTldezZ9fFthLXpdKykkL2kuZXhlYyh0LnRleHQpO2lmKCFyKXRocm93IG5ldyBuKCJJbnZhbGlkIGNvbG9yOiAnIit0LnRleHQrIiciLHQpO2xldCBvPXJbMF07cmV0dXJuL15bMC05YS1mXXs2fSQvaS50ZXN0KG8pJiYobz0iIyIrbykse3R5cGU6ImNvbG9yLXRva2VuIixtb2RlOnRoaXMubW9kZSxjb2xvcjpvfX1wYXJzZVNpemVHcm91cChlKXtsZXQgdCxyPSExO2lmKHRoaXMuZ3VsbGV0LmNvbnN1bWVTcGFjZXMoKSx0PWV8fCJ7Ij09PXRoaXMuZ3VsbGV0LmZ1dHVyZSgpLnRleHQ/dGhpcy5wYXJzZVN0cmluZ0dyb3VwKCJzaXplIixlKTp0aGlzLnBhcnNlUmVnZXhHcm91cCgvXlstK10/ICooPzokfFxkK3xcZCtcLlxkKnxcLlxkKikgKlthLXpdezAsMn0gKiQvLCJzaXplIiksIXQpcmV0dXJuIG51bGw7ZXx8MCE9PXQudGV4dC5sZW5ndGh8fCh0LnRleHQ9IjBwdCIscj0hMCk7Y29uc3Qgbz0vKFstK10/KSAqKFxkKyg/OlwuXGQqKT98XC5cZCspICooW2Etel17Mn0pLy5leGVjKHQudGV4dCk7aWYoIW8pdGhyb3cgbmV3IG4oIkludmFsaWQgc2l6ZTogJyIrdC50ZXh0KyInIix0KTtjb25zdCBzPXtudW1iZXI6KyhvWzFdK29bMl0pLHVuaXQ6b1szXX07aWYoIVYocykpdGhyb3cgbmV3IG4oIkludmFsaWQgdW5pdDogJyIrcy51bml0KyInIix0KTtyZXR1cm57dHlwZToic2l6ZSIsbW9kZTp0aGlzLm1vZGUsdmFsdWU6cyxpc0JsYW5rOnJ9fXBhcnNlVXJsR3JvdXAoZSl7dGhpcy5ndWxsZXQubGV4ZXIuc2V0Q2F0Y29kZSgiJSIsMTMpLHRoaXMuZ3VsbGV0LmxleGVyLnNldENhdGNvZGUoIn4iLDEyKTtjb25zdCB0PXRoaXMucGFyc2VTdHJpbmdHcm91cCgidXJsIixlKTtpZih0aGlzLmd1bGxldC5sZXhlci5zZXRDYXRjb2RlKCIlIiwxNCksdGhpcy5ndWxsZXQubGV4ZXIuc2V0Q2F0Y29kZSgifiIsMTMpLG51bGw9PXQpcmV0dXJuIG51bGw7Y29uc3Qgcj10LnRleHQucmVwbGFjZSgvXFwoWyMkJSZ+X157fV0pL2csIiQxIik7cmV0dXJue3R5cGU6InVybCIsbW9kZTp0aGlzLm1vZGUsdXJsOnJ9fXBhcnNlQXJndW1lbnRHcm91cChlLHQpe2NvbnN0IHI9dGhpcy5ndWxsZXQuc2NhbkFyZ3VtZW50KGUpO2lmKG51bGw9PXIpcmV0dXJuIG51bGw7Y29uc3Qgbj10aGlzLm1vZGU7dCYmdGhpcy5zd2l0Y2hNb2RlKHQpLHRoaXMuZ3VsbGV0LmJlZ2luR3JvdXAoKTtjb25zdCBvPXRoaXMucGFyc2VFeHByZXNzaW9uKCExLCJFT0YiKTt0aGlzLmV4cGVjdCgiRU9GIiksdGhpcy5ndWxsZXQuZW5kR3JvdXAoKTtjb25zdCBzPXt0eXBlOiJvcmRncm91cCIsbW9kZTp0aGlzLm1vZGUsbG9jOnIubG9jLGJvZHk6b307cmV0dXJuIHQmJnRoaXMuc3dpdGNoTW9kZShuKSxzfXBhcnNlR3JvdXAoZSx0KXtjb25zdCByPXRoaXMuZmV0Y2goKSxvPXIudGV4dDtsZXQgcztpZigieyI9PT1vfHwiXFxiZWdpbmdyb3VwIj09PW8pe3RoaXMuY29uc3VtZSgpO2NvbnN0IGU9InsiPT09bz8ifSI6IlxcZW5kZ3JvdXAiO3RoaXMuZ3VsbGV0LmJlZ2luR3JvdXAoKTtjb25zdCB0PXRoaXMucGFyc2VFeHByZXNzaW9uKCExLGUpLG49dGhpcy5mZXRjaCgpO3RoaXMuZXhwZWN0KGUpLHRoaXMuZ3VsbGV0LmVuZEdyb3VwKCkscz17dHlwZToib3JkZ3JvdXAiLG1vZGU6dGhpcy5tb2RlLGxvYzpDci5yYW5nZShyLG4pLGJvZHk6dCxzZW1pc2ltcGxlOiJcXGJlZ2luZ3JvdXAiPT09b3x8dm9pZCAwfX1lbHNlIGlmKHM9dGhpcy5wYXJzZUZ1bmN0aW9uKHQsZSl8fHRoaXMucGFyc2VTeW1ib2woKSxudWxsPT1zJiYiXFwiPT09b1swXSYmIVJuLmhhc093blByb3BlcnR5KG8pKXtpZih0aGlzLnNldHRpbmdzLnRocm93T25FcnJvcil0aHJvdyBuZXcgbigiVW5kZWZpbmVkIGNvbnRyb2wgc2VxdWVuY2U6ICIrbyxyKTtzPXRoaXMuZm9ybWF0VW5zdXBwb3J0ZWRDbWQobyksdGhpcy5jb25zdW1lKCl9cmV0dXJuIHN9Zm9ybUxpZ2F0dXJlcyhlKXtsZXQgdD1lLmxlbmd0aC0xO2ZvcihsZXQgcj0wO3I8dDsrK3Ipe2NvbnN0IG49ZVtyXSxvPW4udGV4dDsiLSI9PT1vJiYiLSI9PT1lW3IrMV0udGV4dCYmKHIrMTx0JiYiLSI9PT1lW3IrMl0udGV4dD8oZS5zcGxpY2UociwzLHt0eXBlOiJ0ZXh0b3JkIixtb2RlOiJ0ZXh0Iixsb2M6Q3IucmFuZ2UobixlW3IrMl0pLHRleHQ6Ii0tLSJ9KSx0LT0yKTooZS5zcGxpY2UociwyLHt0eXBlOiJ0ZXh0b3JkIixtb2RlOiJ0ZXh0Iixsb2M6Q3IucmFuZ2UobixlW3IrMV0pLHRleHQ6Ii0tIn0pLHQtPTEpKSwiJyIhPT1vJiYiYCIhPT1vfHxlW3IrMV0udGV4dCE9PW98fChlLnNwbGljZShyLDIse3R5cGU6InRleHRvcmQiLG1vZGU6InRleHQiLGxvYzpDci5yYW5nZShuLGVbcisxXSksdGV4dDpvK299KSx0LT0xKX19cGFyc2VTeW1ib2woKXtjb25zdCBlPXRoaXMuZmV0Y2goKTtsZXQgdD1lLnRleHQ7aWYoL15cXHZlcmJbXmEtekEtWl0vLnRlc3QodCkpe3RoaXMuY29uc3VtZSgpO2xldCBlPXQuc2xpY2UoNSk7Y29uc3Qgcj0iKiI9PT1lLmNoYXJBdCgwKTtpZihyJiYoZT1lLnNsaWNlKDEpKSxlLmxlbmd0aDwyfHxlLmNoYXJBdCgwKSE9PWUuc2xpY2UoLTEpKXRocm93IG5ldyBuKCJcXHZlcmIgYXNzZXJ0aW9uIGZhaWxlZCAtLVxuICAgICAgICAgICAgICAgICAgICBwbGVhc2UgcmVwb3J0IHdoYXQgaW5wdXQgY2F1c2VkIHRoaXMgYnVnIik7cmV0dXJuIGU9ZS5zbGljZSgxLC0xKSx7dHlwZToidmVyYiIsbW9kZToidGV4dCIsYm9keTplLHN0YXI6cn19RG4uaGFzT3duUHJvcGVydHkodFswXSkmJiFvZVt0aGlzLm1vZGVdW3RbMF1dJiYodGhpcy5zZXR0aW5ncy5zdHJpY3QmJiJtYXRoIj09PXRoaXMubW9kZSYmdGhpcy5zZXR0aW5ncy5yZXBvcnROb25zdHJpY3QoInVuaWNvZGVUZXh0SW5NYXRoTW9kZSIsJ0FjY2VudGVkIFVuaWNvZGUgdGV4dCBjaGFyYWN0ZXIgIicrdFswXSsnIiB1c2VkIGluIG1hdGggbW9kZScsZSksdD1Eblt0WzBdXSt0LnNsaWNlKDEpKTtjb25zdCByPWtuLmV4ZWModCk7bGV0IG87aWYociYmKHQ9dC5zdWJzdHJpbmcoMCxyLmluZGV4KSwiaSI9PT10P3Q9Ilx1MDEzMSI6ImoiPT09dCYmKHQ9Ilx1MDIzNyIpKSxvZVt0aGlzLm1vZGVdW3RdKXt0aGlzLnNldHRpbmdzLnN0cmljdCYmIm1hdGgiPT09dGhpcy5tb2RlJiZBZS5pbmRleE9mKHQpPj0wJiZ0aGlzLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdCgidW5pY29kZVRleHRJbk1hdGhNb2RlIiwnTGF0aW4tMS9Vbmljb2RlIHRleHQgY2hhcmFjdGVyICInK3RbMF0rJyIgdXNlZCBpbiBtYXRoIG1vZGUnLGUpO2NvbnN0IHI9b2VbdGhpcy5tb2RlXVt0XS5ncm91cCxuPUNyLnJhbmdlKGUpO2xldCBzO2lmKHRlLmhhc093blByb3BlcnR5KHIpKXtjb25zdCBlPXI7cz17dHlwZToiYXRvbSIsbW9kZTp0aGlzLm1vZGUsZmFtaWx5OmUsbG9jOm4sdGV4dDp0fX1lbHNlIHM9e3R5cGU6cixtb2RlOnRoaXMubW9kZSxsb2M6bix0ZXh0OnR9O289c31lbHNle2lmKCEodC5jaGFyQ29kZUF0KDApPj0xMjgpKXJldHVybiBudWxsO3RoaXMuc2V0dGluZ3Muc3RyaWN0JiYoUyh0LmNoYXJDb2RlQXQoMCkpPyJtYXRoIj09PXRoaXMubW9kZSYmdGhpcy5zZXR0aW5ncy5yZXBvcnROb25zdHJpY3QoInVuaWNvZGVUZXh0SW5NYXRoTW9kZSIsJ1VuaWNvZGUgdGV4dCBjaGFyYWN0ZXIgIicrdFswXSsnIiB1c2VkIGluIG1hdGggbW9kZScsZSk6dGhpcy5zZXR0aW5ncy5yZXBvcnROb25zdHJpY3QoInVua25vd25TeW1ib2wiLCdVbnJlY29nbml6ZWQgVW5pY29kZSBjaGFyYWN0ZXIgIicrdFswXSsnIiAoJyt0LmNoYXJDb2RlQXQoMCkrIikiLGUpKSxvPXt0eXBlOiJ0ZXh0b3JkIixtb2RlOiJ0ZXh0Iixsb2M6Q3IucmFuZ2UoZSksdGV4dDp0fX1pZih0aGlzLmNvbnN1bWUoKSxyKWZvcihsZXQgdD0wO3Q8clswXS5sZW5ndGg7dCsrKXtjb25zdCBzPXJbMF1bdF07aWYoIUxuW3NdKXRocm93IG5ldyBuKCJVbmtub3duIGFjY2VudCAnICIrcysiJyIsZSk7Y29uc3QgaT1MbltzXVt0aGlzLm1vZGVdfHxMbltzXS50ZXh0O2lmKCFpKXRocm93IG5ldyBuKCJBY2NlbnQgIitzKyIgdW5zdXBwb3J0ZWQgaW4gIit0aGlzLm1vZGUrIiBtb2RlIixlKTtvPXt0eXBlOiJhY2NlbnQiLG1vZGU6dGhpcy5tb2RlLGxvYzpDci5yYW5nZShlKSxsYWJlbDppLGlzU3RyZXRjaHk6ITEsaXNTaGlmdHk6ITAsYmFzZTpvfX1yZXR1cm4gb319Vm4uZW5kT2ZFeHByZXNzaW9uPVsifSIsIlxcZW5kZ3JvdXAiLCJcXGVuZCIsIlxccmlnaHQiLCImIl07dmFyIFBuPWZ1bmN0aW9uKGUsdCl7aWYoISgic3RyaW5nIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBTdHJpbmcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkthVGVYIGNhbiBvbmx5IHBhcnNlIHN0cmluZyB0eXBlZCBleHByZXNzaW9uIik7Y29uc3Qgcj1uZXcgVm4oZSx0KTtkZWxldGUgci5ndWxsZXQubWFjcm9zLmN1cnJlbnRbIlxcZGZAdGFnIl07bGV0IG89ci5wYXJzZSgpO2lmKGRlbGV0ZSByLmd1bGxldC5tYWNyb3MuY3VycmVudFsiXFxjdXJyZW50QGNvbG9yIl0sZGVsZXRlIHIuZ3VsbGV0Lm1hY3Jvcy5jdXJyZW50WyJcXGNvbG9yIl0sci5ndWxsZXQubWFjcm9zLmdldCgiXFxkZkB0YWciKSl7aWYoIXQuZGlzcGxheU1vZGUpdGhyb3cgbmV3IG4oIlxcdGFnIHdvcmtzIG9ubHkgaW4gZGlzcGxheSBlcXVhdGlvbnMiKTtvPVt7dHlwZToidGFnIixtb2RlOiJ0ZXh0Iixib2R5Om8sdGFnOnIuc3VicGFyc2UoW25ldyBOcigiXFxkZkB0YWciKV0pfV19cmV0dXJuIG99O2xldCBGbj1mdW5jdGlvbihlLHQscil7dC50ZXh0Q29udGVudD0iIjtjb25zdCBuPVVuKGUscikudG9Ob2RlKCk7dC5hcHBlbmRDaGlsZChuKX07InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmIkNTUzFDb21wYXQiIT09ZG9jdW1lbnQuY29tcGF0TW9kZSYmKCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKCJXYXJuaW5nOiBLYVRlWCBkb2Vzbid0IHdvcmsgaW4gcXVpcmtzIG1vZGUuIE1ha2Ugc3VyZSB5b3VyIHdlYnNpdGUgaGFzIGEgc3VpdGFibGUgZG9jdHlwZS4iKSxGbj1mdW5jdGlvbigpe3Rocm93IG5ldyBuKCJLYVRlWCBkb2Vzbid0IHdvcmsgaW4gcXVpcmtzIG1vZGUuIil9KTtjb25zdCBHbj1mdW5jdGlvbihlLHQscil7aWYoci50aHJvd09uRXJyb3J8fCEoZSBpbnN0YW5jZW9mIG4pKXRocm93IGU7Y29uc3Qgbz1WZS5tYWtlU3BhbihbImthdGV4LWVycm9yIl0sW25ldyBaKHQpXSk7cmV0dXJuIG8uc2V0QXR0cmlidXRlKCJ0aXRsZSIsZS50b1N0cmluZygpKSxvLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJjb2xvcjoiK3IuZXJyb3JDb2xvciksb30sVW49ZnVuY3Rpb24oZSx0KXtjb25zdCByPW5ldyBtKHQpO3RyeXtjb25zdCB0PVBuKGUscik7cmV0dXJuIHp0KHQsZSxyKX1jYXRjaCh0KXtyZXR1cm4gR24odCxlLHIpfX07dmFyIFluPXt2ZXJzaW9uOiIwLjE2LjEwIixyZW5kZXI6Rm4scmVuZGVyVG9TdHJpbmc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVW4oZSx0KS50b01hcmt1cCgpfSxQYXJzZUVycm9yOm4sU0VUVElOR1NfU0NIRU1BOmgsX19wYXJzZTpmdW5jdGlvbihlLHQpe2NvbnN0IHI9bmV3IG0odCk7cmV0dXJuIFBuKGUscil9LF9fcmVuZGVyVG9Eb21UcmVlOlVuLF9fcmVuZGVyVG9IVE1MVHJlZTpmdW5jdGlvbihlLHQpe2NvbnN0IHI9bmV3IG0odCk7dHJ5e3JldHVybiBmdW5jdGlvbihlLHQscil7Y29uc3Qgbj1tdChlLFN0KHIpKSxvPVZlLm1ha2VTcGFuKFsia2F0ZXgiXSxbbl0pO3JldHVybiBNdChvLHIpfShQbihlLHIpLDAscil9Y2F0Y2godCl7cmV0dXJuIEduKHQsZSxyKX19LF9fc2V0Rm9udE1ldHJpY3M6ZnVuY3Rpb24oZSx0KXtUW2VdPXR9LF9fZGVmaW5lU3ltYm9sOnNlLF9fZGVmaW5lRnVuY3Rpb246amUsX19kZWZpbmVNYWNybzpCcixfX2RvbVRyZWU6e1NwYW46VyxBbmNob3I6XyxTeW1ib2xOb2RlOlosU3ZnTm9kZTpLLFBhdGhOb2RlOkosTGluZU5vZGU6UX19O3JldHVybiB0PXQuZGVmYXVsdH0oKX0pKTs="},{"meta":{"name":"auto-render.min.js","url":"https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/contrib/auto-render.min.js#sha256-e1fUJ6xicGd9r42DgN7SzHMzb5FJoWe44f4NbvZmBK4=","ts":1764084296578,"mimetype":"text/javascript"},"source":"IWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KHJlcXVpcmUoImthdGV4IikpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsia2F0ZXgiXSx0KToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0cy5yZW5kZXJNYXRoSW5FbGVtZW50PXQocmVxdWlyZSgia2F0ZXgiKSk6ZS5yZW5kZXJNYXRoSW5FbGVtZW50PXQoZS5rYXRleCl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD17NzcxOmZ1bmN0aW9uKHQpe3QuZXhwb3J0cz1lfX0sbj17fTtmdW5jdGlvbiByKGUpe3ZhciBvPW5bZV07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBpPW5bZV09e2V4cG9ydHM6e319O3JldHVybiB0W2VdKGksaS5leHBvcnRzLHIpLGkuZXhwb3J0c31yLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIHIuZCh0LHthOnR9KSx0fSxyLmQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClyLm8odCxuKSYmIXIubyhlLG4pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOiEwLGdldDp0W25dfSl9LHIubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX07dmFyIG89e307cmV0dXJuIGZ1bmN0aW9uKCl7ci5kKG8se2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH19KTt2YXIgZT1yKDc3MSksdD1yLm4oZSk7Y29uc3Qgbj1mdW5jdGlvbihlLHQsbil7bGV0IHI9bixvPTA7Y29uc3QgaT1lLmxlbmd0aDtmb3IoO3I8dC5sZW5ndGg7KXtjb25zdCBuPXRbcl07aWYobzw9MCYmdC5zbGljZShyLHIraSk9PT1lKXJldHVybiByOyJcXCI9PT1uP3IrKzoieyI9PT1uP28rKzoifSI9PT1uJiZvLS0scisrfXJldHVybi0xfSxpPS9eXFxiZWdpbnsvO3ZhciBhPWZ1bmN0aW9uKGUsdCl7bGV0IHI7Y29uc3Qgbz1bXSxhPW5ldyBSZWdFeHAoIigiK3QubWFwKChlPT5lLmxlZnQucmVwbGFjZSgvWy0vXFxeJCorPy4oKXxbXF17fV0vZywiXFwkJiIpKSkuam9pbigifCIpKyIpIik7Zm9yKDtyPWUuc2VhcmNoKGEpLC0xIT09cjspe3I+MCYmKG8ucHVzaCh7dHlwZToidGV4dCIsZGF0YTplLnNsaWNlKDAscil9KSxlPWUuc2xpY2UocikpO2NvbnN0IGE9dC5maW5kSW5kZXgoKHQ9PmUuc3RhcnRzV2l0aCh0LmxlZnQpKSk7aWYocj1uKHRbYV0ucmlnaHQsZSx0W2FdLmxlZnQubGVuZ3RoKSwtMT09PXIpYnJlYWs7Y29uc3QgbD1lLnNsaWNlKDAscit0W2FdLnJpZ2h0Lmxlbmd0aCkscz1pLnRlc3QobCk/bDplLnNsaWNlKHRbYV0ubGVmdC5sZW5ndGgscik7by5wdXNoKHt0eXBlOiJtYXRoIixkYXRhOnMscmF3RGF0YTpsLGRpc3BsYXk6dFthXS5kaXNwbGF5fSksZT1lLnNsaWNlKHIrdFthXS5yaWdodC5sZW5ndGgpfXJldHVybiIiIT09ZSYmby5wdXNoKHt0eXBlOiJ0ZXh0IixkYXRhOmV9KSxvfTtjb25zdCBsPWZ1bmN0aW9uKGUsbil7Y29uc3Qgcj1hKGUsbi5kZWxpbWl0ZXJzKTtpZigxPT09ci5sZW5ndGgmJiJ0ZXh0Ij09PXJbMF0udHlwZSlyZXR1cm4gbnVsbDtjb25zdCBvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKylpZigidGV4dCI9PT1yW2VdLnR5cGUpby5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShyW2VdLmRhdGEpKTtlbHNle2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2xldCBhPXJbZV0uZGF0YTtuLmRpc3BsYXlNb2RlPXJbZV0uZGlzcGxheTt0cnl7bi5wcmVQcm9jZXNzJiYoYT1uLnByZVByb2Nlc3MoYSkpLHQoKS5yZW5kZXIoYSxpLG4pfWNhdGNoKGkpe2lmKCEoaSBpbnN0YW5jZW9mIHQoKS5QYXJzZUVycm9yKSl0aHJvdyBpO24uZXJyb3JDYWxsYmFjaygiS2FUZVggYXV0by1yZW5kZXI6IEZhaWxlZCB0byBwYXJzZSBgIityW2VdLmRhdGErImAgd2l0aCAiLGkpLG8uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocltlXS5yYXdEYXRhKSk7Y29udGludWV9by5hcHBlbmRDaGlsZChpKX1yZXR1cm4gb30scz1mdW5jdGlvbihlLHQpe2ZvcihsZXQgbj0wO248ZS5jaGlsZE5vZGVzLmxlbmd0aDtuKyspe2NvbnN0IHI9ZS5jaGlsZE5vZGVzW25dO2lmKDM9PT1yLm5vZGVUeXBlKXtsZXQgbz1yLnRleHRDb250ZW50LGk9ci5uZXh0U2libGluZyxhPTA7Zm9yKDtpJiZpLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU7KW8rPWkudGV4dENvbnRlbnQsaT1pLm5leHRTaWJsaW5nLGErKztjb25zdCBzPWwobyx0KTtpZihzKXtmb3IobGV0IGU9MDtlPGE7ZSsrKXIubmV4dFNpYmxpbmcucmVtb3ZlKCk7bis9cy5jaGlsZE5vZGVzLmxlbmd0aC0xLGUucmVwbGFjZUNoaWxkKHMscil9ZWxzZSBuKz1hfWVsc2UgaWYoMT09PXIubm9kZVR5cGUpe2NvbnN0IGU9IiAiK3IuY2xhc3NOYW1lKyIgIjstMT09PXQuaWdub3JlZFRhZ3MuaW5kZXhPZihyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZ0Lmlnbm9yZWRDbGFzc2VzLmV2ZXJ5KCh0PT4tMT09PWUuaW5kZXhPZigiICIrdCsiICIpKSkmJnMocix0KX19fTt2YXIgZD1mdW5jdGlvbihlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiTm8gZWxlbWVudCBwcm92aWRlZCB0byByZW5kZXIiKTtjb25zdCBuPXt9O2Zvcihjb25zdCBlIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShlKSYmKG5bZV09dFtlXSk7bi5kZWxpbWl0ZXJzPW4uZGVsaW1pdGVyc3x8W3tsZWZ0OiIkJCIscmlnaHQ6IiQkIixkaXNwbGF5OiEwfSx7bGVmdDoiXFwoIixyaWdodDoiXFwpIixkaXNwbGF5OiExfSx7bGVmdDoiXFxiZWdpbntlcXVhdGlvbn0iLHJpZ2h0OiJcXGVuZHtlcXVhdGlvbn0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXGJlZ2lue2FsaWdufSIscmlnaHQ6IlxcZW5ke2FsaWdufSIsZGlzcGxheTohMH0se2xlZnQ6IlxcYmVnaW57YWxpZ25hdH0iLHJpZ2h0OiJcXGVuZHthbGlnbmF0fSIsZGlzcGxheTohMH0se2xlZnQ6IlxcYmVnaW57Z2F0aGVyfSIscmlnaHQ6IlxcZW5ke2dhdGhlcn0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXGJlZ2lue0NEfSIscmlnaHQ6IlxcZW5ke0NEfSIsZGlzcGxheTohMH0se2xlZnQ6IlxcWyIscmlnaHQ6IlxcXSIsZGlzcGxheTohMH1dLG4uaWdub3JlZFRhZ3M9bi5pZ25vcmVkVGFnc3x8WyJzY3JpcHQiLCJub3NjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiLCJwcmUiLCJjb2RlIiwib3B0aW9uIl0sbi5pZ25vcmVkQ2xhc3Nlcz1uLmlnbm9yZWRDbGFzc2VzfHxbXSxuLmVycm9yQ2FsbGJhY2s9bi5lcnJvckNhbGxiYWNrfHxjb25zb2xlLmVycm9yLG4ubWFjcm9zPW4ubWFjcm9zfHx7fSxzKGUsbil9fSgpLG89by5kZWZhdWx0fSgpfSkpOw=="},{"meta":{"name":"marked.min.js","url":"https://cdn.jsdelivr.net/npm/marked@12.0.2/marked.min.js#sha256-Ffq85bZYmLMrA/XtJen4kacprUwNbYdxEKd0SqhHqJQ=","ts":1764084296581,"mimetype":"text/javascript"},"source":"LyoqCiAqIG1hcmtlZCB2MTIuMC4yIC0gYSBtYXJrZG93biBwYXJzZXIKICogQ29weXJpZ2h0IChjKSAyMDExLTIwMjQsIENocmlzdG9waGVyIEplZmZyZXkuIChNSVQgTGljZW5zZWQpCiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJrZWRqcy9tYXJrZWQKICovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU/dChleHBvcnRzKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImV4cG9ydHMiXSx0KTp0KChlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLm1hcmtlZD17fSl9KHRoaXMsKGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KCl7cmV0dXJue2FzeW5jOiExLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2ZtOiEwLGhvb2tzOm51bGwscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzaWxlbnQ6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsfX1mdW5jdGlvbiBuKHQpe2UuZGVmYXVsdHM9dH1lLmRlZmF1bHRzPXthc3luYzohMSxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxob29rczpudWxsLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2lsZW50OiExLHRva2VuaXplcjpudWxsLHdhbGtUb2tlbnM6bnVsbH07Y29uc3Qgcz0vWyY8PiInXS8scj1uZXcgUmVnRXhwKHMuc291cmNlLCJnIiksaT0vWzw+IiddfCYoPyEoI1xkezEsN318I1tYeF1bYS1mQS1GMC05XXsxLDZ9fFx3Kyk7KS8sbD1uZXcgUmVnRXhwKGkuc291cmNlLCJnIiksbz17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7IiwiJyI6IiYjMzk7In0sYT1lPT5vW2VdO2Z1bmN0aW9uIGMoZSx0KXtpZih0KXtpZihzLnRlc3QoZSkpcmV0dXJuIGUucmVwbGFjZShyLGEpfWVsc2UgaWYoaS50ZXN0KGUpKXJldHVybiBlLnJlcGxhY2UobCxhKTtyZXR1cm4gZX1jb25zdCBoPS8mKCMoPzpcZCspfCg/OiN4WzAtOUEtRmEtZl0rKXwoPzpcdyspKTs/L2dpO2Z1bmN0aW9uIHAoZSl7cmV0dXJuIGUucmVwbGFjZShoLCgoZSx0KT0+ImNvbG9uIj09PSh0PXQudG9Mb3dlckNhc2UoKSk/IjoiOiIjIj09PXQuY2hhckF0KDApPyJ4Ij09PXQuY2hhckF0KDEpP1N0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodC5zdWJzdHJpbmcoMiksMTYpKTpTdHJpbmcuZnJvbUNoYXJDb2RlKCt0LnN1YnN0cmluZygxKSk6IiIpKX1jb25zdCB1PS8oXnxbXlxbXSlcXi9nO2Z1bmN0aW9uIGsoZSx0KXtsZXQgbj0ic3RyaW5nIj09dHlwZW9mIGU/ZTplLnNvdXJjZTt0PXR8fCIiO2NvbnN0IHM9e3JlcGxhY2U6KGUsdCk9PntsZXQgcj0ic3RyaW5nIj09dHlwZW9mIHQ/dDp0LnNvdXJjZTtyZXR1cm4gcj1yLnJlcGxhY2UodSwiJDEiKSxuPW4ucmVwbGFjZShlLHIpLHN9LGdldFJlZ2V4OigpPT5uZXcgUmVnRXhwKG4sdCl9O3JldHVybiBzfWZ1bmN0aW9uIGcoZSl7dHJ5e2U9ZW5jb2RlVVJJKGUpLnJlcGxhY2UoLyUyNS9nLCIlIil9Y2F0Y2goZSl7cmV0dXJuIG51bGx9cmV0dXJuIGV9Y29uc3QgZj17ZXhlYzooKT0+bnVsbH07ZnVuY3Rpb24gZChlLHQpe2NvbnN0IG49ZS5yZXBsYWNlKC9cfC9nLCgoZSx0LG4pPT57bGV0IHM9ITEscj10O2Zvcig7LS1yPj0wJiYiXFwiPT09bltyXTspcz0hcztyZXR1cm4gcz8ifCI6IiB8In0pKS5zcGxpdCgvIFx8Lyk7bGV0IHM9MDtpZihuWzBdLnRyaW0oKXx8bi5zaGlmdCgpLG4ubGVuZ3RoPjAmJiFuW24ubGVuZ3RoLTFdLnRyaW0oKSYmbi5wb3AoKSx0KWlmKG4ubGVuZ3RoPnQpbi5zcGxpY2UodCk7ZWxzZSBmb3IoO24ubGVuZ3RoPHQ7KW4ucHVzaCgiIik7Zm9yKDtzPG4ubGVuZ3RoO3MrKyluW3NdPW5bc10udHJpbSgpLnJlcGxhY2UoL1xcXHwvZywifCIpO3JldHVybiBufWZ1bmN0aW9uIHgoZSx0LG4pe2NvbnN0IHM9ZS5sZW5ndGg7aWYoMD09PXMpcmV0dXJuIiI7bGV0IHI9MDtmb3IoO3I8czspe2NvbnN0IGk9ZS5jaGFyQXQocy1yLTEpO2lmKGkhPT10fHxuKXtpZihpPT09dHx8IW4pYnJlYWs7cisrfWVsc2UgcisrfXJldHVybiBlLnNsaWNlKDAscy1yKX1mdW5jdGlvbiBiKGUsdCxuLHMpe2NvbnN0IHI9dC5ocmVmLGk9dC50aXRsZT9jKHQudGl0bGUpOm51bGwsbD1lWzFdLnJlcGxhY2UoL1xcKFtcW1xdXSkvZywiJDEiKTtpZigiISIhPT1lWzBdLmNoYXJBdCgwKSl7cy5zdGF0ZS5pbkxpbms9ITA7Y29uc3QgZT17dHlwZToibGluayIscmF3Om4saHJlZjpyLHRpdGxlOmksdGV4dDpsLHRva2VuczpzLmlubGluZVRva2VucyhsKX07cmV0dXJuIHMuc3RhdGUuaW5MaW5rPSExLGV9cmV0dXJue3R5cGU6ImltYWdlIixyYXc6bixocmVmOnIsdGl0bGU6aSx0ZXh0OmMobCl9fWNsYXNzIHd7b3B0aW9ucztydWxlcztsZXhlcjtjb25zdHJ1Y3Rvcih0KXt0aGlzLm9wdGlvbnM9dHx8ZS5kZWZhdWx0c31zcGFjZShlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2submV3bGluZS5leGVjKGUpO2lmKHQmJnRbMF0ubGVuZ3RoPjApcmV0dXJue3R5cGU6InNwYWNlIixyYXc6dFswXX19Y29kZShlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suY29kZS5leGVjKGUpO2lmKHQpe2NvbnN0IGU9dFswXS5yZXBsYWNlKC9eIHsxLDR9L2dtLCIiKTtyZXR1cm57dHlwZToiY29kZSIscmF3OnRbMF0sY29kZUJsb2NrU3R5bGU6ImluZGVudGVkIix0ZXh0OnRoaXMub3B0aW9ucy5wZWRhbnRpYz9lOngoZSwiXG4iKX19fWZlbmNlcyhlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suZmVuY2VzLmV4ZWMoZSk7aWYodCl7Y29uc3QgZT10WzBdLG49ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUubWF0Y2goL14oXHMrKSg/OmBgYCkvKTtpZihudWxsPT09bilyZXR1cm4gdDtjb25zdCBzPW5bMV07cmV0dXJuIHQuc3BsaXQoIlxuIikubWFwKChlPT57Y29uc3QgdD1lLm1hdGNoKC9eXHMrLyk7aWYobnVsbD09PXQpcmV0dXJuIGU7Y29uc3Rbbl09dDtyZXR1cm4gbi5sZW5ndGg+PXMubGVuZ3RoP2Uuc2xpY2Uocy5sZW5ndGgpOmV9KSkuam9pbigiXG4iKX0oZSx0WzNdfHwiIik7cmV0dXJue3R5cGU6ImNvZGUiLHJhdzplLGxhbmc6dFsyXT90WzJdLnRyaW0oKS5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLmFueVB1bmN0dWF0aW9uLCIkMSIpOnRbMl0sdGV4dDpufX19aGVhZGluZyhlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKGUpO2lmKHQpe2xldCBlPXRbMl0udHJpbSgpO2lmKC8jJC8udGVzdChlKSl7Y29uc3QgdD14KGUsIiMiKTt0aGlzLm9wdGlvbnMucGVkYW50aWM/ZT10LnRyaW0oKTp0JiYhLyAkLy50ZXN0KHQpfHwoZT10LnRyaW0oKSl9cmV0dXJue3R5cGU6ImhlYWRpbmciLHJhdzp0WzBdLGRlcHRoOnRbMV0ubGVuZ3RoLHRleHQ6ZSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmUoZSl9fX1ocihlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suaHIuZXhlYyhlKTtpZih0KXJldHVybnt0eXBlOiJociIscmF3OnRbMF19fWJsb2NrcXVvdGUoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLmJsb2NrcXVvdGUuZXhlYyhlKTtpZih0KXtsZXQgZT10WzBdLnJlcGxhY2UoL1xuIHswLDN9KCg/Oj0rfC0rKSAqKSg/PVxufCQpL2csIlxuICAgICQxIik7ZT14KGUucmVwbGFjZSgvXiAqPlsgXHRdPy9nbSwiIiksIlxuIik7Y29uc3Qgbj10aGlzLmxleGVyLnN0YXRlLnRvcDt0aGlzLmxleGVyLnN0YXRlLnRvcD0hMDtjb25zdCBzPXRoaXMubGV4ZXIuYmxvY2tUb2tlbnMoZSk7cmV0dXJuIHRoaXMubGV4ZXIuc3RhdGUudG9wPW4se3R5cGU6ImJsb2NrcXVvdGUiLHJhdzp0WzBdLHRva2VuczpzLHRleHQ6ZX19fWxpc3QoZSl7bGV0IHQ9dGhpcy5ydWxlcy5ibG9jay5saXN0LmV4ZWMoZSk7aWYodCl7bGV0IG49dFsxXS50cmltKCk7Y29uc3Qgcz1uLmxlbmd0aD4xLHI9e3R5cGU6Imxpc3QiLHJhdzoiIixvcmRlcmVkOnMsc3RhcnQ6cz8rbi5zbGljZSgwLC0xKToiIixsb29zZTohMSxpdGVtczpbXX07bj1zP2BcXGR7MSw5fVxcJHtuLnNsaWNlKC0xKX1gOmBcXCR7bn1gLHRoaXMub3B0aW9ucy5wZWRhbnRpYyYmKG49cz9uOiJbKistXSIpO2NvbnN0IGk9bmV3IFJlZ0V4cChgXiggezAsM30ke259KSgoPzpbXHQgXVteXFxuXSopPyg/OlxcbnwkKSlgKTtsZXQgbD0iIixvPSIiLGE9ITE7Zm9yKDtlOyl7bGV0IG49ITE7aWYoISh0PWkuZXhlYyhlKSkpYnJlYWs7aWYodGhpcy5ydWxlcy5ibG9jay5oci50ZXN0KGUpKWJyZWFrO2w9dFswXSxlPWUuc3Vic3RyaW5nKGwubGVuZ3RoKTtsZXQgcz10WzJdLnNwbGl0KCJcbiIsMSlbMF0ucmVwbGFjZSgvXlx0Ky8sKGU9PiIgIi5yZXBlYXQoMyplLmxlbmd0aCkpKSxjPWUuc3BsaXQoIlxuIiwxKVswXSxoPTA7dGhpcy5vcHRpb25zLnBlZGFudGljPyhoPTIsbz1zLnRyaW1TdGFydCgpKTooaD10WzJdLnNlYXJjaCgvW14gXS8pLGg9aD40PzE6aCxvPXMuc2xpY2UoaCksaCs9dFsxXS5sZW5ndGgpO2xldCBwPSExO2lmKCFzJiYvXiAqJC8udGVzdChjKSYmKGwrPWMrIlxuIixlPWUuc3Vic3RyaW5nKGMubGVuZ3RoKzEpLG49ITApLCFuKXtjb25zdCB0PW5ldyBSZWdFeHAoYF4gezAsJHtNYXRoLm1pbigzLGgtMSl9fSg/OlsqKy1dfFxcZHsxLDl9Wy4pXSkoKD86WyBcdF1bXlxcbl0qKT8oPzpcXG58JCkpYCksbj1uZXcgUmVnRXhwKGBeIHswLCR7TWF0aC5taW4oMyxoLTEpfX0oKD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwqICopezMsfSkoPzpcXG4rfCQpYCkscj1uZXcgUmVnRXhwKGBeIHswLCR7TWF0aC5taW4oMyxoLTEpfX0oPzpcYFxgXGB8fn5+KWApLGk9bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsaC0xKX19I2ApO2Zvcig7ZTspe2NvbnN0IGE9ZS5zcGxpdCgiXG4iLDEpWzBdO2lmKGM9YSx0aGlzLm9wdGlvbnMucGVkYW50aWMmJihjPWMucmVwbGFjZSgvXiB7MSw0fSg/PSggezR9KSpbXiBdKS9nLCIgICIpKSxyLnRlc3QoYykpYnJlYWs7aWYoaS50ZXN0KGMpKWJyZWFrO2lmKHQudGVzdChjKSlicmVhaztpZihuLnRlc3QoZSkpYnJlYWs7aWYoYy5zZWFyY2goL1teIF0vKT49aHx8IWMudHJpbSgpKW8rPSJcbiIrYy5zbGljZShoKTtlbHNle2lmKHApYnJlYWs7aWYocy5zZWFyY2goL1teIF0vKT49NClicmVhaztpZihyLnRlc3QocykpYnJlYWs7aWYoaS50ZXN0KHMpKWJyZWFrO2lmKG4udGVzdChzKSlicmVhaztvKz0iXG4iK2N9cHx8Yy50cmltKCl8fChwPSEwKSxsKz1hKyJcbiIsZT1lLnN1YnN0cmluZyhhLmxlbmd0aCsxKSxzPWMuc2xpY2UoaCl9fXIubG9vc2V8fChhP3IubG9vc2U9ITA6L1xuICpcbiAqJC8udGVzdChsKSYmKGE9ITApKTtsZXQgdSxrPW51bGw7dGhpcy5vcHRpb25zLmdmbSYmKGs9L15cW1sgeFhdXF0gLy5leGVjKG8pLGsmJih1PSJbIF0gIiE9PWtbMF0sbz1vLnJlcGxhY2UoL15cW1sgeFhdXF0gKy8sIiIpKSksci5pdGVtcy5wdXNoKHt0eXBlOiJsaXN0X2l0ZW0iLHJhdzpsLHRhc2s6ISFrLGNoZWNrZWQ6dSxsb29zZTohMSx0ZXh0Om8sdG9rZW5zOltdfSksci5yYXcrPWx9ci5pdGVtc1tyLml0ZW1zLmxlbmd0aC0xXS5yYXc9bC50cmltRW5kKCksci5pdGVtc1tyLml0ZW1zLmxlbmd0aC0xXS50ZXh0PW8udHJpbUVuZCgpLHIucmF3PXIucmF3LnRyaW1FbmQoKTtmb3IobGV0IGU9MDtlPHIuaXRlbXMubGVuZ3RoO2UrKylpZih0aGlzLmxleGVyLnN0YXRlLnRvcD0hMSxyLml0ZW1zW2VdLnRva2Vucz10aGlzLmxleGVyLmJsb2NrVG9rZW5zKHIuaXRlbXNbZV0udGV4dCxbXSksIXIubG9vc2Upe2NvbnN0IHQ9ci5pdGVtc1tlXS50b2tlbnMuZmlsdGVyKChlPT4ic3BhY2UiPT09ZS50eXBlKSksbj10Lmxlbmd0aD4wJiZ0LnNvbWUoKGU9Pi9cbi4qXG4vLnRlc3QoZS5yYXcpKSk7ci5sb29zZT1ufWlmKHIubG9vc2UpZm9yKGxldCBlPTA7ZTxyLml0ZW1zLmxlbmd0aDtlKyspci5pdGVtc1tlXS5sb29zZT0hMDtyZXR1cm4gcn19aHRtbChlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suaHRtbC5leGVjKGUpO2lmKHQpe3JldHVybnt0eXBlOiJodG1sIixibG9jazohMCxyYXc6dFswXSxwcmU6InByZSI9PT10WzFdfHwic2NyaXB0Ij09PXRbMV18fCJzdHlsZSI9PT10WzFdLHRleHQ6dFswXX19fWRlZihlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suZGVmLmV4ZWMoZSk7aWYodCl7Y29uc3QgZT10WzFdLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIiAiKSxuPXRbMl0/dFsyXS5yZXBsYWNlKC9ePCguKik+JC8sIiQxIikucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5hbnlQdW5jdHVhdGlvbiwiJDEiKToiIixzPXRbM10/dFszXS5zdWJzdHJpbmcoMSx0WzNdLmxlbmd0aC0xKS5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLmFueVB1bmN0dWF0aW9uLCIkMSIpOnRbM107cmV0dXJue3R5cGU6ImRlZiIsdGFnOmUscmF3OnRbMF0saHJlZjpuLHRpdGxlOnN9fX10YWJsZShlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2sudGFibGUuZXhlYyhlKTtpZighdClyZXR1cm47aWYoIS9bOnxdLy50ZXN0KHRbMl0pKXJldHVybjtjb25zdCBuPWQodFsxXSkscz10WzJdLnJlcGxhY2UoL15cfHxcfCAqJC9nLCIiKS5zcGxpdCgifCIpLHI9dFszXSYmdFszXS50cmltKCk/dFszXS5yZXBsYWNlKC9cblsgXHRdKiQvLCIiKS5zcGxpdCgiXG4iKTpbXSxpPXt0eXBlOiJ0YWJsZSIscmF3OnRbMF0saGVhZGVyOltdLGFsaWduOltdLHJvd3M6W119O2lmKG4ubGVuZ3RoPT09cy5sZW5ndGgpe2Zvcihjb25zdCBlIG9mIHMpL14gKi0rOiAqJC8udGVzdChlKT9pLmFsaWduLnB1c2goInJpZ2h0Iik6L14gKjotKzogKiQvLnRlc3QoZSk/aS5hbGlnbi5wdXNoKCJjZW50ZXIiKTovXiAqOi0rICokLy50ZXN0KGUpP2kuYWxpZ24ucHVzaCgibGVmdCIpOmkuYWxpZ24ucHVzaChudWxsKTtmb3IoY29uc3QgZSBvZiBuKWkuaGVhZGVyLnB1c2goe3RleHQ6ZSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmUoZSl9KTtmb3IoY29uc3QgZSBvZiByKWkucm93cy5wdXNoKGQoZSxpLmhlYWRlci5sZW5ndGgpLm1hcCgoZT0+KHt0ZXh0OmUsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKGUpfSkpKSk7cmV0dXJuIGl9fWxoZWFkaW5nKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5ibG9jay5saGVhZGluZy5leGVjKGUpO2lmKHQpcmV0dXJue3R5cGU6ImhlYWRpbmciLHJhdzp0WzBdLGRlcHRoOiI9Ij09PXRbMl0uY2hhckF0KDApPzE6Mix0ZXh0OnRbMV0sdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKHRbMV0pfX1wYXJhZ3JhcGgoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLnBhcmFncmFwaC5leGVjKGUpO2lmKHQpe2NvbnN0IGU9IlxuIj09PXRbMV0uY2hhckF0KHRbMV0ubGVuZ3RoLTEpP3RbMV0uc2xpY2UoMCwtMSk6dFsxXTtyZXR1cm57dHlwZToicGFyYWdyYXBoIixyYXc6dFswXSx0ZXh0OmUsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKGUpfX19dGV4dChlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2sudGV4dC5leGVjKGUpO2lmKHQpcmV0dXJue3R5cGU6InRleHQiLHJhdzp0WzBdLHRleHQ6dFswXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmUodFswXSl9fWVzY2FwZShlKXtjb25zdCB0PXRoaXMucnVsZXMuaW5saW5lLmVzY2FwZS5leGVjKGUpO2lmKHQpcmV0dXJue3R5cGU6ImVzY2FwZSIscmF3OnRbMF0sdGV4dDpjKHRbMV0pfX10YWcoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmlubGluZS50YWcuZXhlYyhlKTtpZih0KXJldHVybiF0aGlzLmxleGVyLnN0YXRlLmluTGluayYmL148YSAvaS50ZXN0KHRbMF0pP3RoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxcL2E+L2kudGVzdCh0WzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSExKSwhdGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrJiYvXjwocHJlfGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KHRbMF0pP3RoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePFwvKHByZXxjb2RlfGtiZHxzY3JpcHQpKFxzfD4pL2kudGVzdCh0WzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMSkse3R5cGU6Imh0bWwiLHJhdzp0WzBdLGluTGluazp0aGlzLmxleGVyLnN0YXRlLmluTGluayxpblJhd0Jsb2NrOnRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jayxibG9jazohMSx0ZXh0OnRbMF19fWxpbmsoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmlubGluZS5saW5rLmV4ZWMoZSk7aWYodCl7Y29uc3QgZT10WzJdLnRyaW0oKTtpZighdGhpcy5vcHRpb25zLnBlZGFudGljJiYvXjwvLnRlc3QoZSkpe2lmKCEvPiQvLnRlc3QoZSkpcmV0dXJuO2NvbnN0IHQ9eChlLnNsaWNlKDAsLTEpLCJcXCIpO2lmKChlLmxlbmd0aC10Lmxlbmd0aCklMj09MClyZXR1cm59ZWxzZXtjb25zdCBlPWZ1bmN0aW9uKGUsdCl7aWYoLTE9PT1lLmluZGV4T2YodFsxXSkpcmV0dXJuLTE7bGV0IG49MDtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKylpZigiXFwiPT09ZVtzXSlzKys7ZWxzZSBpZihlW3NdPT09dFswXSluKys7ZWxzZSBpZihlW3NdPT09dFsxXSYmKG4tLSxuPDApKXJldHVybiBzO3JldHVybi0xfSh0WzJdLCIoKSIpO2lmKGU+LTEpe2NvbnN0IG49KDA9PT10WzBdLmluZGV4T2YoIiEiKT81OjQpK3RbMV0ubGVuZ3RoK2U7dFsyXT10WzJdLnN1YnN0cmluZygwLGUpLHRbMF09dFswXS5zdWJzdHJpbmcoMCxuKS50cmltKCksdFszXT0iIn19bGV0IG49dFsyXSxzPSIiO2lmKHRoaXMub3B0aW9ucy5wZWRhbnRpYyl7Y29uc3QgZT0vXihbXiciXSpbXlxzXSlccysoWyciXSkoLiopXDIvLmV4ZWMobik7ZSYmKG49ZVsxXSxzPWVbM10pfWVsc2Ugcz10WzNdP3RbM10uc2xpY2UoMSwtMSk6IiI7cmV0dXJuIG49bi50cmltKCksL148Ly50ZXN0KG4pJiYobj10aGlzLm9wdGlvbnMucGVkYW50aWMmJiEvPiQvLnRlc3QoZSk/bi5zbGljZSgxKTpuLnNsaWNlKDEsLTEpKSxiKHQse2hyZWY6bj9uLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuYW55UHVuY3R1YXRpb24sIiQxIik6bix0aXRsZTpzP3MucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5hbnlQdW5jdHVhdGlvbiwiJDEiKTpzfSx0WzBdLHRoaXMubGV4ZXIpfX1yZWZsaW5rKGUsdCl7bGV0IG47aWYoKG49dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKGUpKXx8KG49dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWMoZSkpKXtjb25zdCBlPXRbKG5bMl18fG5bMV0pLnJlcGxhY2UoL1xzKy9nLCIgIikudG9Mb3dlckNhc2UoKV07aWYoIWUpe2NvbnN0IGU9blswXS5jaGFyQXQoMCk7cmV0dXJue3R5cGU6InRleHQiLHJhdzplLHRleHQ6ZX19cmV0dXJuIGIobixlLG5bMF0sdGhpcy5sZXhlcil9fWVtU3Ryb25nKGUsdCxuPSIiKXtsZXQgcz10aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZ0xEZWxpbS5leGVjKGUpO2lmKCFzKXJldHVybjtpZihzWzNdJiZuLm1hdGNoKC9bXHB7TH1ccHtOfV0vdSkpcmV0dXJuO2lmKCEoc1sxXXx8c1syXXx8IiIpfHwhbnx8dGhpcy5ydWxlcy5pbmxpbmUucHVuY3R1YXRpb24uZXhlYyhuKSl7Y29uc3Qgbj1bLi4uc1swXV0ubGVuZ3RoLTE7bGV0IHIsaSxsPW4sbz0wO2NvbnN0IGE9IioiPT09c1swXVswXT90aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZ1JEZWxpbUFzdDp0aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZ1JEZWxpbVVuZDtmb3IoYS5sYXN0SW5kZXg9MCx0PXQuc2xpY2UoLTEqZS5sZW5ndGgrbik7bnVsbCE9KHM9YS5leGVjKHQpKTspe2lmKHI9c1sxXXx8c1syXXx8c1szXXx8c1s0XXx8c1s1XXx8c1s2XSwhciljb250aW51ZTtpZihpPVsuLi5yXS5sZW5ndGgsc1szXXx8c1s0XSl7bCs9aTtjb250aW51ZX1pZigoc1s1XXx8c1s2XSkmJm4lMyYmISgobitpKSUzKSl7bys9aTtjb250aW51ZX1pZihsLT1pLGw+MCljb250aW51ZTtpPU1hdGgubWluKGksaStsK28pO2NvbnN0IHQ9Wy4uLnNbMF1dWzBdLmxlbmd0aCxhPWUuc2xpY2UoMCxuK3MuaW5kZXgrdCtpKTtpZihNYXRoLm1pbihuLGkpJTIpe2NvbnN0IGU9YS5zbGljZSgxLC0xKTtyZXR1cm57dHlwZToiZW0iLHJhdzphLHRleHQ6ZSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMoZSl9fWNvbnN0IGM9YS5zbGljZSgyLC0yKTtyZXR1cm57dHlwZToic3Ryb25nIixyYXc6YSx0ZXh0OmMsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKGMpfX19fWNvZGVzcGFuKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5pbmxpbmUuY29kZS5leGVjKGUpO2lmKHQpe2xldCBlPXRbMl0ucmVwbGFjZSgvXG4vZywiICIpO2NvbnN0IG49L1teIF0vLnRlc3QoZSkscz0vXiAvLnRlc3QoZSkmJi8gJC8udGVzdChlKTtyZXR1cm4gbiYmcyYmKGU9ZS5zdWJzdHJpbmcoMSxlLmxlbmd0aC0xKSksZT1jKGUsITApLHt0eXBlOiJjb2Rlc3BhbiIscmF3OnRbMF0sdGV4dDplfX19YnIoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmlubGluZS5ici5leGVjKGUpO2lmKHQpcmV0dXJue3R5cGU6ImJyIixyYXc6dFswXX19ZGVsKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5pbmxpbmUuZGVsLmV4ZWMoZSk7aWYodClyZXR1cm57dHlwZToiZGVsIixyYXc6dFswXSx0ZXh0OnRbMl0sdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKHRbMl0pfX1hdXRvbGluayhlKXtjb25zdCB0PXRoaXMucnVsZXMuaW5saW5lLmF1dG9saW5rLmV4ZWMoZSk7aWYodCl7bGV0IGUsbjtyZXR1cm4iQCI9PT10WzJdPyhlPWModFsxXSksbj0ibWFpbHRvOiIrZSk6KGU9Yyh0WzFdKSxuPWUpLHt0eXBlOiJsaW5rIixyYXc6dFswXSx0ZXh0OmUsaHJlZjpuLHRva2Vuczpbe3R5cGU6InRleHQiLHJhdzplLHRleHQ6ZX1dfX19dXJsKGUpe2xldCB0O2lmKHQ9dGhpcy5ydWxlcy5pbmxpbmUudXJsLmV4ZWMoZSkpe2xldCBlLG47aWYoIkAiPT09dFsyXSllPWModFswXSksbj0ibWFpbHRvOiIrZTtlbHNle2xldCBzO2Rve3M9dFswXSx0WzBdPXRoaXMucnVsZXMuaW5saW5lLl9iYWNrcGVkYWwuZXhlYyh0WzBdKT8uWzBdPz8iIn13aGlsZShzIT09dFswXSk7ZT1jKHRbMF0pLG49Ind3dy4iPT09dFsxXT8iaHR0cDovLyIrdFswXTp0WzBdfXJldHVybnt0eXBlOiJsaW5rIixyYXc6dFswXSx0ZXh0OmUsaHJlZjpuLHRva2Vuczpbe3R5cGU6InRleHQiLHJhdzplLHRleHQ6ZX1dfX19aW5saW5lVGV4dChlKXtjb25zdCB0PXRoaXMucnVsZXMuaW5saW5lLnRleHQuZXhlYyhlKTtpZih0KXtsZXQgZTtyZXR1cm4gZT10aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2s/dFswXTpjKHRbMF0pLHt0eXBlOiJ0ZXh0IixyYXc6dFswXSx0ZXh0OmV9fX19Y29uc3QgbT0vXiB7MCwzfSgoPzotW1x0IF0qKXszLH18KD86X1sgXHRdKil7Myx9fCg/OlwqWyBcdF0qKXszLH0pKD86XG4rfCQpLyx5PS8oPzpbKistXXxcZHsxLDl9Wy4pXSkvLCQ9aygvXig/IWJ1bGwgfGJsb2NrQ29kZXxmZW5jZXN8YmxvY2txdW90ZXxoZWFkaW5nfGh0bWwpKCg/Oi58XG4oPyFccyo/XG58YnVsbCB8YmxvY2tDb2RlfGZlbmNlc3xibG9ja3F1b3RlfGhlYWRpbmd8aHRtbCkpKz8pXG4gezAsM30oPSt8LSspICooPzpcbit8JCkvKS5yZXBsYWNlKC9idWxsL2cseSkucmVwbGFjZSgvYmxvY2tDb2RlL2csLyB7NH0vKS5yZXBsYWNlKC9mZW5jZXMvZywvIHswLDN9KD86YHszLH18fnszLH0pLykucmVwbGFjZSgvYmxvY2txdW90ZS9nLC8gezAsM30+LykucmVwbGFjZSgvaGVhZGluZy9nLC8gezAsM30jezEsNn0vKS5yZXBsYWNlKC9odG1sL2csLyB7MCwzfTxbXlxuPl0rPlxuLykuZ2V0UmVnZXgoKSx6PS9eKFteXG5dKyg/OlxuKD8haHJ8aGVhZGluZ3xsaGVhZGluZ3xibG9ja3F1b3RlfGZlbmNlc3xsaXN0fGh0bWx8dGFibGV8ICtcbilbXlxuXSspKikvLFQ9Lyg/IVxzKlxdKSg/OlxcLnxbXlxbXF1cXF0pKy8sUj1rKC9eIHswLDN9XFsobGFiZWwpXF06ICooPzpcbiAqKT8oW148XHNdW15cc10qfDwuKj8+KSg/Oig/OiArKD86XG4gKik/fCAqXG4gKikodGl0bGUpKT8gKig/OlxuK3wkKS8pLnJlcGxhY2UoImxhYmVsIixUKS5yZXBsYWNlKCJ0aXRsZSIsLyg/OiIoPzpcXCI/fFteIlxcXSkqInwnW14nXG5dKig/OlxuW14nXG5dKykqXG4/J3xcKFteKCldKlwpKS8pLmdldFJlZ2V4KCksXz1rKC9eKCB7MCwzfWJ1bGwpKFsgXHRdW15cbl0rPyk/KD86XG58JCkvKS5yZXBsYWNlKC9idWxsL2cseSkuZ2V0UmVnZXgoKSxBPSJhZGRyZXNzfGFydGljbGV8YXNpZGV8YmFzZXxiYXNlZm9udHxibG9ja3F1b3RlfGJvZHl8Y2FwdGlvbnxjZW50ZXJ8Y29sfGNvbGdyb3VwfGRkfGRldGFpbHN8ZGlhbG9nfGRpcnxkaXZ8ZGx8ZHR8ZmllbGRzZXR8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGZvcm18ZnJhbWV8ZnJhbWVzZXR8aFsxLTZdfGhlYWR8aGVhZGVyfGhyfGh0bWx8aWZyYW1lfGxlZ2VuZHxsaXxsaW5rfG1haW58bWVudXxtZW51aXRlbXxtZXRhfG5hdnxub2ZyYW1lc3xvbHxvcHRncm91cHxvcHRpb258cHxwYXJhbXxzZWFyY2h8c2VjdGlvbnxzdW1tYXJ5fHRhYmxlfHRib2R5fHRkfHRmb290fHRofHRoZWFkfHRpdGxlfHRyfHRyYWNrfHVsIixTPS88IS0tKD86LT8+fFtcc1xTXSo/KD86LS0+fCQpKS8sST1rKCJeIHswLDN9KD86PChzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVtcXHM+XVtcXHNcXFNdKj8oPzo8L1xcMT5bXlxcbl0qXFxuK3wkKXxjb21tZW50W15cXG5dKihcXG4rfCQpfDxcXD9bXFxzXFxTXSo/KD86XFw/Plxcbip8JCl8PCFbQS1aXVtcXHNcXFNdKj8oPzo+XFxuKnwkKXw8IVxcW0NEQVRBXFxbW1xcc1xcU10qPyg/OlxcXVxcXT5cXG4qfCQpfDwvPyh0YWcpKD86ICt8XFxufC8/PilbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8KD8hc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSkoW2Etel1bXFx3LV0qKSg/OmF0dHJpYnV0ZSkqPyAqLz8+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8Lyg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW2Etel1bXFx3LV0qXFxzKj4oPz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpKSIsImkiKS5yZXBsYWNlKCJjb21tZW50IixTKS5yZXBsYWNlKCJ0YWciLEEpLnJlcGxhY2UoImF0dHJpYnV0ZSIsLyArW2EtekEtWjpfXVtcdy46LV0qKD86ICo9ICoiW14iXG5dKiJ8ICo9IConW14nXG5dKid8ICo9ICpbXlxzIic9PD5gXSspPy8pLmdldFJlZ2V4KCksRT1rKHopLnJlcGxhY2UoImhyIixtKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9KD86XFxzfCQpIikucmVwbGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgifHRhYmxlIiwiIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLEEpLmdldFJlZ2V4KCkscT17YmxvY2txdW90ZTprKC9eKCB7MCwzfT4gPyhwYXJhZ3JhcGh8W15cbl0qKSg/OlxufCQpKSsvKS5yZXBsYWNlKCJwYXJhZ3JhcGgiLEUpLmdldFJlZ2V4KCksY29kZTovXiggezR9W15cbl0rKD86XG4oPzogKig/OlxufCQpKSopPykrLyxkZWY6UixmZW5jZXM6L14gezAsM30oYHszLH0oPz1bXmBcbl0qKD86XG58JCkpfH57Myx9KShbXlxuXSopKD86XG58JCkoPzp8KFtcc1xTXSo/KSg/OlxufCQpKSg/OiB7MCwzfVwxW35gXSogKig/PVxufCQpfCQpLyxoZWFkaW5nOi9eIHswLDN9KCN7MSw2fSkoPz1cc3wkKSguKikoPzpcbit8JCkvLGhyOm0saHRtbDpJLGxoZWFkaW5nOiQsbGlzdDpfLG5ld2xpbmU6L14oPzogKig/OlxufCQpKSsvLHBhcmFncmFwaDpFLHRhYmxlOmYsdGV4dDovXlteXG5dKy99LFo9aygiXiAqKFteXFxuIF0uKilcXG4gezAsM30oKD86XFx8ICopPzo/LSs6PyAqKD86XFx8ICo6Py0rOj8gKikqKD86XFx8ICopPykoPzpcXG4oKD86KD8hICpcXG58aHJ8aGVhZGluZ3xibG9ja3F1b3RlfGNvZGV8ZmVuY2VzfGxpc3R8aHRtbCkuKig/OlxcbnwkKSkqKVxcbip8JCkiKS5yZXBsYWNlKCJociIsbSkucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSg/Olxcc3wkKSIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiY29kZSIsIiB7NH1bXlxcbl0iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLEEpLmdldFJlZ2V4KCksTD17Li4ucSx0YWJsZTpaLHBhcmFncmFwaDprKHopLnJlcGxhY2UoImhyIixtKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9KD86XFxzfCQpIikucmVwbGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgidGFibGUiLFopLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixBKS5nZXRSZWdleCgpfSxQPXsuLi5xLGh0bWw6aygiXiAqKD86Y29tbWVudCAqKD86XFxufFxccyokKXw8KHRhZylbXFxzXFxTXSs/PC9cXDE+ICooPzpcXG57Mix9fFxccyokKXw8dGFnKD86XCJbXlwiXSpcInwnW14nXSonfFxcc1teJ1wiLz5cXHNdKikqPy8/PiAqKD86XFxuezIsfXxcXHMqJCkpIikucmVwbGFjZSgiY29tbWVudCIsUykucmVwbGFjZSgvdGFnL2csIig/ISg/OmF8ZW18c3Ryb25nfHNtYWxsfHN8Y2l0ZXxxfGRmbnxhYmJyfGRhdGF8dGltZXxjb2RlfHZhcnxzYW1wfGtiZHxzdWJ8c3VwfGl8Ynx1fG1hcmt8cnVieXxydHxycHxiZGl8YmRvfHNwYW58YnJ8d2JyfGluc3xkZWx8aW1nKVxcYilcXHcrKD8hOnxbXlxcd1xcc0BdKkApXFxiIikuZ2V0UmVnZXgoKSxkZWY6L14gKlxbKFteXF1dKylcXTogKjw/KFteXHM+XSspPj8oPzogKyhbIihdW15cbl0rWyIpXSkpPyAqKD86XG4rfCQpLyxoZWFkaW5nOi9eKCN7MSw2fSkoLiopKD86XG4rfCQpLyxmZW5jZXM6ZixsaGVhZGluZzovXiguKz8pXG4gezAsM30oPSt8LSspICooPzpcbit8JCkvLHBhcmFncmFwaDprKHopLnJlcGxhY2UoImhyIixtKS5yZXBsYWNlKCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5dIikucmVwbGFjZSgibGhlYWRpbmciLCQpLnJlcGxhY2UoInx0YWJsZSIsIiIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgifGZlbmNlcyIsIiIpLnJlcGxhY2UoInxsaXN0IiwiIikucmVwbGFjZSgifGh0bWwiLCIiKS5yZXBsYWNlKCJ8dGFnIiwiIikuZ2V0UmVnZXgoKX0sUT0vXlxcKFshIiMkJSYnKCkqKyxcLS4vOjs8PT4/QFxbXF1cXF5fYHt8fX5dKS8sdj0vXiggezIsfXxcXClcbig/IVxzKiQpLyxCPSJcXHB7UH1cXHB7U30iLEM9aygvXigoPyFbKl9dKVtcc3B1bmN0dWF0aW9uXSkvLCJ1IikucmVwbGFjZSgvcHVuY3R1YXRpb24vZyxCKS5nZXRSZWdleCgpLE09aygvXig/OlwqKyg/OigoPyFcKilbcHVuY3RdKXxbXlxzKl0pKXxeXysoPzooKD8hXylbcHVuY3RdKXwoW15cc19dKSkvLCJ1IikucmVwbGFjZSgvcHVuY3QvZyxCKS5nZXRSZWdleCgpLE89aygiXlteXypdKj9fX1teXypdKj9cXCpbXl8qXSo/KD89X18pfFteKl0rKD89W14qXSl8KD8hXFwqKVtwdW5jdF0oXFwqKykoPz1bXFxzXXwkKXxbXnB1bmN0XFxzXShcXCorKSg/IVxcKikoPz1bcHVuY3RcXHNdfCQpfCg/IVxcKilbcHVuY3RcXHNdKFxcKispKD89W15wdW5jdFxcc10pfFtcXHNdKFxcKispKD8hXFwqKSg/PVtwdW5jdF0pfCg/IVxcKilbcHVuY3RdKFxcKispKD8hXFwqKSg/PVtwdW5jdF0pfFtecHVuY3RcXHNdKFxcKispKD89W15wdW5jdFxcc10pIiwiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLEIpLmdldFJlZ2V4KCksRD1rKCJeW15fKl0qP1xcKlxcKlteXypdKj9fW15fKl0qPyg/PVxcKlxcKil8W15fXSsoPz1bXl9dKXwoPyFfKVtwdW5jdF0oXyspKD89W1xcc118JCl8W15wdW5jdFxcc10oXyspKD8hXykoPz1bcHVuY3RcXHNdfCQpfCg/IV8pW3B1bmN0XFxzXShfKykoPz1bXnB1bmN0XFxzXSl8W1xcc10oXyspKD8hXykoPz1bcHVuY3RdKXwoPyFfKVtwdW5jdF0oXyspKD8hXykoPz1bcHVuY3RdKSIsImd1IikucmVwbGFjZSgvcHVuY3QvZyxCKS5nZXRSZWdleCgpLGo9aygvXFwoW3B1bmN0XSkvLCJndSIpLnJlcGxhY2UoL3B1bmN0L2csQikuZ2V0UmVnZXgoKSxIPWsoL148KHNjaGVtZTpbXlxzXHgwMC1ceDFmPD5dKnxlbWFpbCk+LykucmVwbGFjZSgic2NoZW1lIiwvW2EtekEtWl1bYS16QS1aMC05Ky4tXXsxLDMxfS8pLnJlcGxhY2UoImVtYWlsIiwvW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXSsoQClbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8oPzpcLlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPykrKD8hWy1fXSkvKS5nZXRSZWdleCgpLFU9ayhTKS5yZXBsYWNlKCIoPzotLVx4M2V8JCkiLCItLVx4M2UiKS5nZXRSZWdleCgpLFg9aygiXmNvbW1lbnR8XjwvW2EtekEtWl1bXFx3Oi1dKlxccyo+fF48W2EtekEtWl1bXFx3LV0qKD86YXR0cmlidXRlKSo/XFxzKi8/PnxePFxcP1tcXHNcXFNdKj9cXD8+fF48IVthLXpBLVpdK1xcc1tcXHNcXFNdKj8+fF48IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4iKS5yZXBsYWNlKCJjb21tZW50IixVKS5yZXBsYWNlKCJhdHRyaWJ1dGUiLC9ccytbYS16QS1aOl9dW1x3LjotXSooPzpccyo9XHMqIlteIl0qInxccyo9XHMqJ1teJ10qJ3xccyo9XHMqW15ccyInPTw+YF0rKT8vKS5nZXRSZWdleCgpLEY9Lyg/OlxbKD86XFwufFteXFtcXVxcXSkqXF18XFwufGBbXmBdKmB8W15cW1xdXFxgXSkqPy8sTj1rKC9eIT9cWyhsYWJlbClcXVwoXHMqKGhyZWYpKD86XHMrKHRpdGxlKSk/XHMqXCkvKS5yZXBsYWNlKCJsYWJlbCIsRikucmVwbGFjZSgiaHJlZiIsLzwoPzpcXC58W15cbjw+XFxdKSs+fFteXHNceDAwLVx4MWZdKi8pLnJlcGxhY2UoInRpdGxlIiwvIig/OlxcIj98W14iXFxdKSoifCcoPzpcXCc/fFteJ1xcXSkqJ3xcKCg/OlxcXCk/fFteKVxcXSkqXCkvKS5nZXRSZWdleCgpLEc9aygvXiE/XFsobGFiZWwpXF1cWyhyZWYpXF0vKS5yZXBsYWNlKCJsYWJlbCIsRikucmVwbGFjZSgicmVmIixUKS5nZXRSZWdleCgpLEo9aygvXiE/XFsocmVmKVxdKD86XFtcXSk/LykucmVwbGFjZSgicmVmIixUKS5nZXRSZWdleCgpLEs9e19iYWNrcGVkYWw6ZixhbnlQdW5jdHVhdGlvbjpqLGF1dG9saW5rOkgsYmxvY2tTa2lwOi9cW1teW1xdXSo/XF1cKFteXChcKV0qP1wpfGBbXmBdKj9gfDxbXjw+XSo/Pi9nLGJyOnYsY29kZTovXihgKykoW15gXXxbXmBdW1xzXFNdKj9bXmBdKVwxKD8hYCkvLGRlbDpmLGVtU3Ryb25nTERlbGltOk0sZW1TdHJvbmdSRGVsaW1Bc3Q6TyxlbVN0cm9uZ1JEZWxpbVVuZDpELGVzY2FwZTpRLGxpbms6Tixub2xpbms6SixwdW5jdHVhdGlvbjpDLHJlZmxpbms6RyxyZWZsaW5rU2VhcmNoOmsoInJlZmxpbmt8bm9saW5rKD8hXFwoKSIsImciKS5yZXBsYWNlKCJyZWZsaW5rIixHKS5yZXBsYWNlKCJub2xpbmsiLEopLmdldFJlZ2V4KCksdGFnOlgsdGV4dDovXihgK3xbXmBdKSg/Oig/PSB7Mix9XG4pfFtcc1xTXSo/KD86KD89W1xcPCFcW2AqX118XGJffCQpfFteIF0oPz0gezIsfVxuKSkpLyx1cmw6Zn0sVj17Li4uSyxsaW5rOmsoL14hP1xbKGxhYmVsKVxdXCgoLio/KVwpLykucmVwbGFjZSgibGFiZWwiLEYpLmdldFJlZ2V4KCkscmVmbGluazprKC9eIT9cWyhsYWJlbClcXVxzKlxbKFteXF1dKilcXS8pLnJlcGxhY2UoImxhYmVsIixGKS5nZXRSZWdleCgpfSxXPXsuLi5LLGVzY2FwZTprKFEpLnJlcGxhY2UoIl0pIiwifnxdKSIpLmdldFJlZ2V4KCksdXJsOmsoL14oKD86ZnRwfGh0dHBzPyk6XC9cL3x3d3dcLikoPzpbYS16QS1aMC05XC1dK1wuPykrW15cczxdKnxeZW1haWwvLCJpIikucmVwbGFjZSgiZW1haWwiLC9bQS1aYS16MC05Ll8rLV0rKEApW2EtekEtWjAtOS1fXSsoPzpcLlthLXpBLVowLTktX10qW2EtekEtWjAtOV0pKyg/IVstX10pLykuZ2V0UmVnZXgoKSxfYmFja3BlZGFsOi8oPzpbXj8hLiw6OypfJyJ+KCkmXSt8XChbXildKlwpfCYoPyFbYS16QS1aMC05XSs7JCl8Wz8hLiw6OypfJyJ+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0pKFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSxZPXsuLi5XLGJyOmsodikucmVwbGFjZSgiezIsfSIsIioiKS5nZXRSZWdleCgpLHRleHQ6ayhXLnRleHQpLnJlcGxhY2UoIlxcYl8iLCJcXGJffCB7Mix9XFxuIikucmVwbGFjZSgvXHsyLFx9L2csIioiKS5nZXRSZWdleCgpfSxlZT17bm9ybWFsOnEsZ2ZtOkwscGVkYW50aWM6UH0sdGU9e25vcm1hbDpLLGdmbTpXLGJyZWFrczpZLHBlZGFudGljOlZ9O2NsYXNzIG5le3Rva2VucztvcHRpb25zO3N0YXRlO3Rva2VuaXplcjtpbmxpbmVRdWV1ZTtjb25zdHJ1Y3Rvcih0KXt0aGlzLnRva2Vucz1bXSx0aGlzLnRva2Vucy5saW5rcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMub3B0aW9ucz10fHxlLmRlZmF1bHRzLHRoaXMub3B0aW9ucy50b2tlbml6ZXI9dGhpcy5vcHRpb25zLnRva2VuaXplcnx8bmV3IHcsdGhpcy50b2tlbml6ZXI9dGhpcy5vcHRpb25zLnRva2VuaXplcix0aGlzLnRva2VuaXplci5vcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLnRva2VuaXplci5sZXhlcj10aGlzLHRoaXMuaW5saW5lUXVldWU9W10sdGhpcy5zdGF0ZT17aW5MaW5rOiExLGluUmF3QmxvY2s6ITEsdG9wOiEwfTtjb25zdCBuPXtibG9jazplZS5ub3JtYWwsaW5saW5lOnRlLm5vcm1hbH07dGhpcy5vcHRpb25zLnBlZGFudGljPyhuLmJsb2NrPWVlLnBlZGFudGljLG4uaW5saW5lPXRlLnBlZGFudGljKTp0aGlzLm9wdGlvbnMuZ2ZtJiYobi5ibG9jaz1lZS5nZm0sdGhpcy5vcHRpb25zLmJyZWFrcz9uLmlubGluZT10ZS5icmVha3M6bi5pbmxpbmU9dGUuZ2ZtKSx0aGlzLnRva2VuaXplci5ydWxlcz1ufXN0YXRpYyBnZXQgcnVsZXMoKXtyZXR1cm57YmxvY2s6ZWUsaW5saW5lOnRlfX1zdGF0aWMgbGV4KGUsdCl7cmV0dXJuIG5ldyBuZSh0KS5sZXgoZSl9c3RhdGljIGxleElubGluZShlLHQpe3JldHVybiBuZXcgbmUodCkuaW5saW5lVG9rZW5zKGUpfWxleChlKXtlPWUucmVwbGFjZSgvXHJcbnxcci9nLCJcbiIpLHRoaXMuYmxvY2tUb2tlbnMoZSx0aGlzLnRva2Vucyk7Zm9yKGxldCBlPTA7ZTx0aGlzLmlubGluZVF1ZXVlLmxlbmd0aDtlKyspe2NvbnN0IHQ9dGhpcy5pbmxpbmVRdWV1ZVtlXTt0aGlzLmlubGluZVRva2Vucyh0LnNyYyx0LnRva2Vucyl9cmV0dXJuIHRoaXMuaW5saW5lUXVldWU9W10sdGhpcy50b2tlbnN9YmxvY2tUb2tlbnMoZSx0PVtdKXtsZXQgbixzLHIsaTtmb3IoZT10aGlzLm9wdGlvbnMucGVkYW50aWM/ZS5yZXBsYWNlKC9cdC9nLCIgICAgIikucmVwbGFjZSgvXiArJC9nbSwiIik6ZS5yZXBsYWNlKC9eKCAqKShcdCspL2dtLCgoZSx0LG4pPT50KyIgICAgIi5yZXBlYXQobi5sZW5ndGgpKSk7ZTspaWYoISh0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2smJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrLnNvbWUoKHM9PiEhKG49cy5jYWxsKHtsZXhlcjp0aGlzfSxlLHQpKSYmKGU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSx0LnB1c2gobiksITApKSkpKWlmKG49dGhpcy50b2tlbml6ZXIuc3BhY2UoZSkpZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLDE9PT1uLnJhdy5sZW5ndGgmJnQubGVuZ3RoPjA/dFt0Lmxlbmd0aC0xXS5yYXcrPSJcbiI6dC5wdXNoKG4pO2Vsc2UgaWYobj10aGlzLnRva2VuaXplci5jb2RlKGUpKWU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSxzPXRbdC5sZW5ndGgtMV0sIXN8fCJwYXJhZ3JhcGgiIT09cy50eXBlJiYidGV4dCIhPT1zLnR5cGU/dC5wdXNoKG4pOihzLnJhdys9IlxuIituLnJhdyxzLnRleHQrPSJcbiIrbi50ZXh0LHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPXMudGV4dCk7ZWxzZSBpZihuPXRoaXMudG9rZW5pemVyLmZlbmNlcyhlKSllPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksdC5wdXNoKG4pO2Vsc2UgaWYobj10aGlzLnRva2VuaXplci5oZWFkaW5nKGUpKWU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSx0LnB1c2gobik7ZWxzZSBpZihuPXRoaXMudG9rZW5pemVyLmhyKGUpKWU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSx0LnB1c2gobik7ZWxzZSBpZihuPXRoaXMudG9rZW5pemVyLmJsb2NrcXVvdGUoZSkpZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLHQucHVzaChuKTtlbHNlIGlmKG49dGhpcy50b2tlbml6ZXIubGlzdChlKSllPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksdC5wdXNoKG4pO2Vsc2UgaWYobj10aGlzLnRva2VuaXplci5odG1sKGUpKWU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSx0LnB1c2gobik7ZWxzZSBpZihuPXRoaXMudG9rZW5pemVyLmRlZihlKSllPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCkscz10W3QubGVuZ3RoLTFdLCFzfHwicGFyYWdyYXBoIiE9PXMudHlwZSYmInRleHQiIT09cy50eXBlP3RoaXMudG9rZW5zLmxpbmtzW24udGFnXXx8KHRoaXMudG9rZW5zLmxpbmtzW24udGFnXT17aHJlZjpuLmhyZWYsdGl0bGU6bi50aXRsZX0pOihzLnJhdys9IlxuIituLnJhdyxzLnRleHQrPSJcbiIrbi5yYXcsdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9cy50ZXh0KTtlbHNlIGlmKG49dGhpcy50b2tlbml6ZXIudGFibGUoZSkpZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLHQucHVzaChuKTtlbHNlIGlmKG49dGhpcy50b2tlbml6ZXIubGhlYWRpbmcoZSkpZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLHQucHVzaChuKTtlbHNle2lmKHI9ZSx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jayl7bGV0IHQ9MS8wO2NvbnN0IG49ZS5zbGljZSgxKTtsZXQgczt0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydEJsb2NrLmZvckVhY2goKGU9PntzPWUuY2FsbCh7bGV4ZXI6dGhpc30sbiksIm51bWJlciI9PXR5cGVvZiBzJiZzPj0wJiYodD1NYXRoLm1pbih0LHMpKX0pKSx0PDEvMCYmdD49MCYmKHI9ZS5zdWJzdHJpbmcoMCx0KzEpKX1pZih0aGlzLnN0YXRlLnRvcCYmKG49dGhpcy50b2tlbml6ZXIucGFyYWdyYXBoKHIpKSlzPXRbdC5sZW5ndGgtMV0saSYmInBhcmFncmFwaCI9PT1zLnR5cGU/KHMucmF3Kz0iXG4iK24ucmF3LHMudGV4dCs9IlxuIituLnRleHQsdGhpcy5pbmxpbmVRdWV1ZS5wb3AoKSx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1zLnRleHQpOnQucHVzaChuKSxpPXIubGVuZ3RoIT09ZS5sZW5ndGgsZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpO2Vsc2UgaWYobj10aGlzLnRva2VuaXplci50ZXh0KGUpKWU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSxzPXRbdC5sZW5ndGgtMV0scyYmInRleHQiPT09cy50eXBlPyhzLnJhdys9IlxuIituLnJhdyxzLnRleHQrPSJcbiIrbi50ZXh0LHRoaXMuaW5saW5lUXVldWUucG9wKCksdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9cy50ZXh0KTp0LnB1c2gobik7ZWxzZSBpZihlKXtjb25zdCB0PSJJbmZpbml0ZSBsb29wIG9uIGJ5dGU6ICIrZS5jaGFyQ29kZUF0KDApO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpe2NvbnNvbGUuZXJyb3IodCk7YnJlYWt9dGhyb3cgbmV3IEVycm9yKHQpfX1yZXR1cm4gdGhpcy5zdGF0ZS50b3A9ITAsdH1pbmxpbmUoZSx0PVtdKXtyZXR1cm4gdGhpcy5pbmxpbmVRdWV1ZS5wdXNoKHtzcmM6ZSx0b2tlbnM6dH0pLHR9aW5saW5lVG9rZW5zKGUsdD1bXSl7bGV0IG4scyxyLGksbCxvLGE9ZTtpZih0aGlzLnRva2Vucy5saW5rcyl7Y29uc3QgZT1PYmplY3Qua2V5cyh0aGlzLnRva2Vucy5saW5rcyk7aWYoZS5sZW5ndGg+MClmb3IoO251bGwhPShpPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmV4ZWMoYSkpOyllLmluY2x1ZGVzKGlbMF0uc2xpY2UoaVswXS5sYXN0SW5kZXhPZigiWyIpKzEsLTEpKSYmKGE9YS5zbGljZSgwLGkuaW5kZXgpKyJbIisiYSIucmVwZWF0KGlbMF0ubGVuZ3RoLTIpKyJdIithLnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmxhc3RJbmRleCkpfWZvcig7bnVsbCE9KGk9dGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5leGVjKGEpKTspYT1hLnNsaWNlKDAsaS5pbmRleCkrIlsiKyJhIi5yZXBlYXQoaVswXS5sZW5ndGgtMikrIl0iK2Euc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5sYXN0SW5kZXgpO2Zvcig7bnVsbCE9KGk9dGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmFueVB1bmN0dWF0aW9uLmV4ZWMoYSkpOylhPWEuc2xpY2UoMCxpLmluZGV4KSsiKysiK2Euc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmFueVB1bmN0dWF0aW9uLmxhc3RJbmRleCk7Zm9yKDtlOylpZihsfHwobz0iIiksbD0hMSwhKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmlubGluZS5zb21lKChzPT4hIShuPXMuY2FsbCh7bGV4ZXI6dGhpc30sZSx0KSkmJihlPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksdC5wdXNoKG4pLCEwKSkpKSlpZihuPXRoaXMudG9rZW5pemVyLmVzY2FwZShlKSllPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksdC5wdXNoKG4pO2Vsc2UgaWYobj10aGlzLnRva2VuaXplci50YWcoZSkpZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLHM9dFt0Lmxlbmd0aC0xXSxzJiYidGV4dCI9PT1uLnR5cGUmJiJ0ZXh0Ij09PXMudHlwZT8ocy5yYXcrPW4ucmF3LHMudGV4dCs9bi50ZXh0KTp0LnB1c2gobik7ZWxzZSBpZihuPXRoaXMudG9rZW5pemVyLmxpbmsoZSkpZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLHQucHVzaChuKTtlbHNlIGlmKG49dGhpcy50b2tlbml6ZXIucmVmbGluayhlLHRoaXMudG9rZW5zLmxpbmtzKSllPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCkscz10W3QubGVuZ3RoLTFdLHMmJiJ0ZXh0Ij09PW4udHlwZSYmInRleHQiPT09cy50eXBlPyhzLnJhdys9bi5yYXcscy50ZXh0Kz1uLnRleHQpOnQucHVzaChuKTtlbHNlIGlmKG49dGhpcy50b2tlbml6ZXIuZW1TdHJvbmcoZSxhLG8pKWU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSx0LnB1c2gobik7ZWxzZSBpZihuPXRoaXMudG9rZW5pemVyLmNvZGVzcGFuKGUpKWU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSx0LnB1c2gobik7ZWxzZSBpZihuPXRoaXMudG9rZW5pemVyLmJyKGUpKWU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSx0LnB1c2gobik7ZWxzZSBpZihuPXRoaXMudG9rZW5pemVyLmRlbChlKSllPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksdC5wdXNoKG4pO2Vsc2UgaWYobj10aGlzLnRva2VuaXplci5hdXRvbGluayhlKSllPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksdC5wdXNoKG4pO2Vsc2UgaWYodGhpcy5zdGF0ZS5pbkxpbmt8fCEobj10aGlzLnRva2VuaXplci51cmwoZSkpKXtpZihyPWUsdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0SW5saW5lKXtsZXQgdD0xLzA7Y29uc3Qgbj1lLnNsaWNlKDEpO2xldCBzO3RoaXMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0SW5saW5lLmZvckVhY2goKGU9PntzPWUuY2FsbCh7bGV4ZXI6dGhpc30sbiksIm51bWJlciI9PXR5cGVvZiBzJiZzPj0wJiYodD1NYXRoLm1pbih0LHMpKX0pKSx0PDEvMCYmdD49MCYmKHI9ZS5zdWJzdHJpbmcoMCx0KzEpKX1pZihuPXRoaXMudG9rZW5pemVyLmlubGluZVRleHQocikpZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLCJfIiE9PW4ucmF3LnNsaWNlKC0xKSYmKG89bi5yYXcuc2xpY2UoLTEpKSxsPSEwLHM9dFt0Lmxlbmd0aC0xXSxzJiYidGV4dCI9PT1zLnR5cGU/KHMucmF3Kz1uLnJhdyxzLnRleHQrPW4udGV4dCk6dC5wdXNoKG4pO2Vsc2UgaWYoZSl7Y29uc3QgdD0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK2UuY2hhckNvZGVBdCgwKTtpZih0aGlzLm9wdGlvbnMuc2lsZW50KXtjb25zb2xlLmVycm9yKHQpO2JyZWFrfXRocm93IG5ldyBFcnJvcih0KX19ZWxzZSBlPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksdC5wdXNoKG4pO3JldHVybiB0fX1jbGFzcyBzZXtvcHRpb25zO2NvbnN0cnVjdG9yKHQpe3RoaXMub3B0aW9ucz10fHxlLmRlZmF1bHRzfWNvZGUoZSx0LG4pe2NvbnN0IHM9KHR8fCIiKS5tYXRjaCgvXlxTKi8pPy5bMF07cmV0dXJuIGU9ZS5yZXBsYWNlKC9cbiQvLCIiKSsiXG4iLHM/JzxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLScrYyhzKSsnIj4nKyhuP2U6YyhlLCEwKSkrIjwvY29kZT48L3ByZT5cbiI6IjxwcmU+PGNvZGU+Iisobj9lOmMoZSwhMCkpKyI8L2NvZGU+PC9wcmU+XG4ifWJsb2NrcXVvdGUoZSl7cmV0dXJuYDxibG9ja3F1b3RlPlxuJHtlfTwvYmxvY2txdW90ZT5cbmB9aHRtbChlLHQpe3JldHVybiBlfWhlYWRpbmcoZSx0LG4pe3JldHVybmA8aCR7dH0+JHtlfTwvaCR7dH0+XG5gfWhyKCl7cmV0dXJuIjxocj5cbiJ9bGlzdChlLHQsbil7Y29uc3Qgcz10PyJvbCI6InVsIjtyZXR1cm4iPCIrcysodCYmMSE9PW4/JyBzdGFydD0iJytuKyciJzoiIikrIj5cbiIrZSsiPC8iK3MrIj5cbiJ9bGlzdGl0ZW0oZSx0LG4pe3JldHVybmA8bGk+JHtlfTwvbGk+XG5gfWNoZWNrYm94KGUpe3JldHVybiI8aW5wdXQgIisoZT8nY2hlY2tlZD0iIiAnOiIiKSsnZGlzYWJsZWQ9IiIgdHlwZT0iY2hlY2tib3giPid9cGFyYWdyYXBoKGUpe3JldHVybmA8cD4ke2V9PC9wPlxuYH10YWJsZShlLHQpe3JldHVybiB0JiYodD1gPHRib2R5PiR7dH08L3Rib2R5PmApLCI8dGFibGU+XG48dGhlYWQ+XG4iK2UrIjwvdGhlYWQ+XG4iK3QrIjwvdGFibGU+XG4ifXRhYmxlcm93KGUpe3JldHVybmA8dHI+XG4ke2V9PC90cj5cbmB9dGFibGVjZWxsKGUsdCl7Y29uc3Qgbj10LmhlYWRlcj8idGgiOiJ0ZCI7cmV0dXJuKHQuYWxpZ24/YDwke259IGFsaWduPSIke3QuYWxpZ259Ij5gOmA8JHtufT5gKStlK2A8LyR7bn0+XG5gfXN0cm9uZyhlKXtyZXR1cm5gPHN0cm9uZz4ke2V9PC9zdHJvbmc+YH1lbShlKXtyZXR1cm5gPGVtPiR7ZX08L2VtPmB9Y29kZXNwYW4oZSl7cmV0dXJuYDxjb2RlPiR7ZX08L2NvZGU+YH1icigpe3JldHVybiI8YnI+In1kZWwoZSl7cmV0dXJuYDxkZWw+JHtlfTwvZGVsPmB9bGluayhlLHQsbil7Y29uc3Qgcz1nKGUpO2lmKG51bGw9PT1zKXJldHVybiBuO2xldCByPSc8YSBocmVmPSInKyhlPXMpKyciJztyZXR1cm4gdCYmKHIrPScgdGl0bGU9IicrdCsnIicpLHIrPSI+IituKyI8L2E+IixyfWltYWdlKGUsdCxuKXtjb25zdCBzPWcoZSk7aWYobnVsbD09PXMpcmV0dXJuIG47bGV0IHI9YDxpbWcgc3JjPSIke2U9c30iIGFsdD0iJHtufSJgO3JldHVybiB0JiYocis9YCB0aXRsZT0iJHt0fSJgKSxyKz0iPiIscn10ZXh0KGUpe3JldHVybiBlfX1jbGFzcyByZXtzdHJvbmcoZSl7cmV0dXJuIGV9ZW0oZSl7cmV0dXJuIGV9Y29kZXNwYW4oZSl7cmV0dXJuIGV9ZGVsKGUpe3JldHVybiBlfWh0bWwoZSl7cmV0dXJuIGV9dGV4dChlKXtyZXR1cm4gZX1saW5rKGUsdCxuKXtyZXR1cm4iIitufWltYWdlKGUsdCxuKXtyZXR1cm4iIitufWJyKCl7cmV0dXJuIiJ9fWNsYXNzIGlle29wdGlvbnM7cmVuZGVyZXI7dGV4dFJlbmRlcmVyO2NvbnN0cnVjdG9yKHQpe3RoaXMub3B0aW9ucz10fHxlLmRlZmF1bHRzLHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyBzZSx0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyByZX1zdGF0aWMgcGFyc2UoZSx0KXtyZXR1cm4gbmV3IGllKHQpLnBhcnNlKGUpfXN0YXRpYyBwYXJzZUlubGluZShlLHQpe3JldHVybiBuZXcgaWUodCkucGFyc2VJbmxpbmUoZSl9cGFyc2UoZSx0PSEwKXtsZXQgbj0iIjtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKyl7Y29uc3Qgcj1lW3NdO2lmKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tyLnR5cGVdKXtjb25zdCBlPXIsdD10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbZS50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sZSk7aWYoITEhPT10fHwhWyJzcGFjZSIsImhyIiwiaGVhZGluZyIsImNvZGUiLCJ0YWJsZSIsImJsb2NrcXVvdGUiLCJsaXN0IiwiaHRtbCIsInBhcmFncmFwaCIsInRleHQiXS5pbmNsdWRlcyhlLnR5cGUpKXtuKz10fHwiIjtjb250aW51ZX19c3dpdGNoKHIudHlwZSl7Y2FzZSJzcGFjZSI6Y29udGludWU7Y2FzZSJociI6bis9dGhpcy5yZW5kZXJlci5ocigpO2NvbnRpbnVlO2Nhc2UiaGVhZGluZyI6e2NvbnN0IGU9cjtuKz10aGlzLnJlbmRlcmVyLmhlYWRpbmcodGhpcy5wYXJzZUlubGluZShlLnRva2VucyksZS5kZXB0aCxwKHRoaXMucGFyc2VJbmxpbmUoZS50b2tlbnMsdGhpcy50ZXh0UmVuZGVyZXIpKSk7Y29udGludWV9Y2FzZSJjb2RlIjp7Y29uc3QgZT1yO24rPXRoaXMucmVuZGVyZXIuY29kZShlLnRleHQsZS5sYW5nLCEhZS5lc2NhcGVkKTtjb250aW51ZX1jYXNlInRhYmxlIjp7Y29uc3QgZT1yO2xldCB0PSIiLHM9IiI7Zm9yKGxldCB0PTA7dDxlLmhlYWRlci5sZW5ndGg7dCsrKXMrPXRoaXMucmVuZGVyZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUoZS5oZWFkZXJbdF0udG9rZW5zKSx7aGVhZGVyOiEwLGFsaWduOmUuYWxpZ25bdF19KTt0Kz10aGlzLnJlbmRlcmVyLnRhYmxlcm93KHMpO2xldCBpPSIiO2ZvcihsZXQgdD0wO3Q8ZS5yb3dzLmxlbmd0aDt0Kyspe2NvbnN0IG49ZS5yb3dzW3RdO3M9IiI7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspcys9dGhpcy5yZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShuW3RdLnRva2Vucykse2hlYWRlcjohMSxhbGlnbjplLmFsaWduW3RdfSk7aSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhzKX1uKz10aGlzLnJlbmRlcmVyLnRhYmxlKHQsaSk7Y29udGludWV9Y2FzZSJibG9ja3F1b3RlIjp7Y29uc3QgZT1yLHQ9dGhpcy5wYXJzZShlLnRva2Vucyk7bis9dGhpcy5yZW5kZXJlci5ibG9ja3F1b3RlKHQpO2NvbnRpbnVlfWNhc2UibGlzdCI6e2NvbnN0IGU9cix0PWUub3JkZXJlZCxzPWUuc3RhcnQsaT1lLmxvb3NlO2xldCBsPSIiO2ZvcihsZXQgdD0wO3Q8ZS5pdGVtcy5sZW5ndGg7dCsrKXtjb25zdCBuPWUuaXRlbXNbdF0scz1uLmNoZWNrZWQscj1uLnRhc2s7bGV0IG89IiI7aWYobi50YXNrKXtjb25zdCBlPXRoaXMucmVuZGVyZXIuY2hlY2tib3goISFzKTtpP24udG9rZW5zLmxlbmd0aD4wJiYicGFyYWdyYXBoIj09PW4udG9rZW5zWzBdLnR5cGU/KG4udG9rZW5zWzBdLnRleHQ9ZSsiICIrbi50b2tlbnNbMF0udGV4dCxuLnRva2Vuc1swXS50b2tlbnMmJm4udG9rZW5zWzBdLnRva2Vucy5sZW5ndGg+MCYmInRleHQiPT09bi50b2tlbnNbMF0udG9rZW5zWzBdLnR5cGUmJihuLnRva2Vuc1swXS50b2tlbnNbMF0udGV4dD1lKyIgIituLnRva2Vuc1swXS50b2tlbnNbMF0udGV4dCkpOm4udG9rZW5zLnVuc2hpZnQoe3R5cGU6InRleHQiLHRleHQ6ZSsiICJ9KTpvKz1lKyIgIn1vKz10aGlzLnBhcnNlKG4udG9rZW5zLGkpLGwrPXRoaXMucmVuZGVyZXIubGlzdGl0ZW0obyxyLCEhcyl9bis9dGhpcy5yZW5kZXJlci5saXN0KGwsdCxzKTtjb250aW51ZX1jYXNlImh0bWwiOntjb25zdCBlPXI7bis9dGhpcy5yZW5kZXJlci5odG1sKGUudGV4dCxlLmJsb2NrKTtjb250aW51ZX1jYXNlInBhcmFncmFwaCI6e2NvbnN0IGU9cjtuKz10aGlzLnJlbmRlcmVyLnBhcmFncmFwaCh0aGlzLnBhcnNlSW5saW5lKGUudG9rZW5zKSk7Y29udGludWV9Y2FzZSJ0ZXh0Ijp7bGV0IGk9cixsPWkudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoaS50b2tlbnMpOmkudGV4dDtmb3IoO3MrMTxlLmxlbmd0aCYmInRleHQiPT09ZVtzKzFdLnR5cGU7KWk9ZVsrK3NdLGwrPSJcbiIrKGkudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoaS50b2tlbnMpOmkudGV4dCk7bis9dD90aGlzLnJlbmRlcmVyLnBhcmFncmFwaChsKTpsO2NvbnRpbnVlfWRlZmF1bHQ6e2NvbnN0IGU9J1Rva2VuIHdpdGggIicrci50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoZSksIiI7dGhyb3cgbmV3IEVycm9yKGUpfX19cmV0dXJuIG59cGFyc2VJbmxpbmUoZSx0KXt0PXR8fHRoaXMucmVuZGVyZXI7bGV0IG49IiI7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2NvbnN0IHI9ZVtzXTtpZih0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbci50eXBlXSl7Y29uc3QgZT10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbci50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30scik7aWYoITEhPT1lfHwhWyJlc2NhcGUiLCJodG1sIiwibGluayIsImltYWdlIiwic3Ryb25nIiwiZW0iLCJjb2Rlc3BhbiIsImJyIiwiZGVsIiwidGV4dCJdLmluY2x1ZGVzKHIudHlwZSkpe24rPWV8fCIiO2NvbnRpbnVlfX1zd2l0Y2goci50eXBlKXtjYXNlImVzY2FwZSI6e2NvbnN0IGU9cjtuKz10LnRleHQoZS50ZXh0KTticmVha31jYXNlImh0bWwiOntjb25zdCBlPXI7bis9dC5odG1sKGUudGV4dCk7YnJlYWt9Y2FzZSJsaW5rIjp7Y29uc3QgZT1yO24rPXQubGluayhlLmhyZWYsZS50aXRsZSx0aGlzLnBhcnNlSW5saW5lKGUudG9rZW5zLHQpKTticmVha31jYXNlImltYWdlIjp7Y29uc3QgZT1yO24rPXQuaW1hZ2UoZS5ocmVmLGUudGl0bGUsZS50ZXh0KTticmVha31jYXNlInN0cm9uZyI6e2NvbnN0IGU9cjtuKz10LnN0cm9uZyh0aGlzLnBhcnNlSW5saW5lKGUudG9rZW5zLHQpKTticmVha31jYXNlImVtIjp7Y29uc3QgZT1yO24rPXQuZW0odGhpcy5wYXJzZUlubGluZShlLnRva2Vucyx0KSk7YnJlYWt9Y2FzZSJjb2Rlc3BhbiI6e2NvbnN0IGU9cjtuKz10LmNvZGVzcGFuKGUudGV4dCk7YnJlYWt9Y2FzZSJiciI6bis9dC5icigpO2JyZWFrO2Nhc2UiZGVsIjp7Y29uc3QgZT1yO24rPXQuZGVsKHRoaXMucGFyc2VJbmxpbmUoZS50b2tlbnMsdCkpO2JyZWFrfWNhc2UidGV4dCI6e2NvbnN0IGU9cjtuKz10LnRleHQoZS50ZXh0KTticmVha31kZWZhdWx0Ontjb25zdCBlPSdUb2tlbiB3aXRoICInK3IudHlwZSsnIiB0eXBlIHdhcyBub3QgZm91bmQuJztpZih0aGlzLm9wdGlvbnMuc2lsZW50KXJldHVybiBjb25zb2xlLmVycm9yKGUpLCIiO3Rocm93IG5ldyBFcnJvcihlKX19fXJldHVybiBufX1jbGFzcyBsZXtvcHRpb25zO2NvbnN0cnVjdG9yKHQpe3RoaXMub3B0aW9ucz10fHxlLmRlZmF1bHRzfXN0YXRpYyBwYXNzVGhyb3VnaEhvb2tzPW5ldyBTZXQoWyJwcmVwcm9jZXNzIiwicG9zdHByb2Nlc3MiLCJwcm9jZXNzQWxsVG9rZW5zIl0pO3ByZXByb2Nlc3MoZSl7cmV0dXJuIGV9cG9zdHByb2Nlc3MoZSl7cmV0dXJuIGV9cHJvY2Vzc0FsbFRva2VucyhlKXtyZXR1cm4gZX19Y2xhc3Mgb2V7ZGVmYXVsdHM9e2FzeW5jOiExLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2ZtOiEwLGhvb2tzOm51bGwscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzaWxlbnQ6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsfTtvcHRpb25zPXRoaXMuc2V0T3B0aW9ucztwYXJzZT10aGlzLiNlKG5lLmxleCxpZS5wYXJzZSk7cGFyc2VJbmxpbmU9dGhpcy4jZShuZS5sZXhJbmxpbmUsaWUucGFyc2VJbmxpbmUpO1BhcnNlcj1pZTtSZW5kZXJlcj1zZTtUZXh0UmVuZGVyZXI9cmU7TGV4ZXI9bmU7VG9rZW5pemVyPXc7SG9va3M9bGU7Y29uc3RydWN0b3IoLi4uZSl7dGhpcy51c2UoLi4uZSl9d2Fsa1Rva2VucyhlLHQpe2xldCBuPVtdO2Zvcihjb25zdCBzIG9mIGUpc3dpdGNoKG49bi5jb25jYXQodC5jYWxsKHRoaXMscykpLHMudHlwZSl7Y2FzZSJ0YWJsZSI6e2NvbnN0IGU9cztmb3IoY29uc3QgcyBvZiBlLmhlYWRlciluPW4uY29uY2F0KHRoaXMud2Fsa1Rva2VucyhzLnRva2Vucyx0KSk7Zm9yKGNvbnN0IHMgb2YgZS5yb3dzKWZvcihjb25zdCBlIG9mIHMpbj1uLmNvbmNhdCh0aGlzLndhbGtUb2tlbnMoZS50b2tlbnMsdCkpO2JyZWFrfWNhc2UibGlzdCI6e2NvbnN0IGU9cztuPW4uY29uY2F0KHRoaXMud2Fsa1Rva2VucyhlLml0ZW1zLHQpKTticmVha31kZWZhdWx0Ontjb25zdCBlPXM7dGhpcy5kZWZhdWx0cy5leHRlbnNpb25zPy5jaGlsZFRva2Vucz8uW2UudHlwZV0/dGhpcy5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zW2UudHlwZV0uZm9yRWFjaCgocz0+e2NvbnN0IHI9ZVtzXS5mbGF0KDEvMCk7bj1uLmNvbmNhdCh0aGlzLndhbGtUb2tlbnMocix0KSl9KSk6ZS50b2tlbnMmJihuPW4uY29uY2F0KHRoaXMud2Fsa1Rva2VucyhlLnRva2Vucyx0KSkpfX1yZXR1cm4gbn11c2UoLi4uZSl7Y29uc3QgdD10aGlzLmRlZmF1bHRzLmV4dGVuc2lvbnN8fHtyZW5kZXJlcnM6e30sY2hpbGRUb2tlbnM6e319O3JldHVybiBlLmZvckVhY2goKGU9Pntjb25zdCBuPXsuLi5lfTtpZihuLmFzeW5jPXRoaXMuZGVmYXVsdHMuYXN5bmN8fG4uYXN5bmN8fCExLGUuZXh0ZW5zaW9ucyYmKGUuZXh0ZW5zaW9ucy5mb3JFYWNoKChlPT57aWYoIWUubmFtZSl0aHJvdyBuZXcgRXJyb3IoImV4dGVuc2lvbiBuYW1lIHJlcXVpcmVkIik7aWYoInJlbmRlcmVyImluIGUpe2NvbnN0IG49dC5yZW5kZXJlcnNbZS5uYW1lXTt0LnJlbmRlcmVyc1tlLm5hbWVdPW4/ZnVuY3Rpb24oLi4udCl7bGV0IHM9ZS5yZW5kZXJlci5hcHBseSh0aGlzLHQpO3JldHVybiExPT09cyYmKHM9bi5hcHBseSh0aGlzLHQpKSxzfTplLnJlbmRlcmVyfWlmKCJ0b2tlbml6ZXIiaW4gZSl7aWYoIWUubGV2ZWx8fCJibG9jayIhPT1lLmxldmVsJiYiaW5saW5lIiE9PWUubGV2ZWwpdGhyb3cgbmV3IEVycm9yKCJleHRlbnNpb24gbGV2ZWwgbXVzdCBiZSAnYmxvY2snIG9yICdpbmxpbmUnIik7Y29uc3Qgbj10W2UubGV2ZWxdO24/bi51bnNoaWZ0KGUudG9rZW5pemVyKTp0W2UubGV2ZWxdPVtlLnRva2VuaXplcl0sZS5zdGFydCYmKCJibG9jayI9PT1lLmxldmVsP3Quc3RhcnRCbG9jaz90LnN0YXJ0QmxvY2sucHVzaChlLnN0YXJ0KTp0LnN0YXJ0QmxvY2s9W2Uuc3RhcnRdOiJpbmxpbmUiPT09ZS5sZXZlbCYmKHQuc3RhcnRJbmxpbmU/dC5zdGFydElubGluZS5wdXNoKGUuc3RhcnQpOnQuc3RhcnRJbmxpbmU9W2Uuc3RhcnRdKSl9ImNoaWxkVG9rZW5zImluIGUmJmUuY2hpbGRUb2tlbnMmJih0LmNoaWxkVG9rZW5zW2UubmFtZV09ZS5jaGlsZFRva2Vucyl9KSksbi5leHRlbnNpb25zPXQpLGUucmVuZGVyZXIpe2NvbnN0IHQ9dGhpcy5kZWZhdWx0cy5yZW5kZXJlcnx8bmV3IHNlKHRoaXMuZGVmYXVsdHMpO2Zvcihjb25zdCBuIGluIGUucmVuZGVyZXIpe2lmKCEobiBpbiB0KSl0aHJvdyBuZXcgRXJyb3IoYHJlbmRlcmVyICcke259JyBkb2VzIG5vdCBleGlzdGApO2lmKCJvcHRpb25zIj09PW4pY29udGludWU7Y29uc3Qgcz1uLHI9ZS5yZW5kZXJlcltzXSxpPXRbc107dFtzXT0oLi4uZSk9PntsZXQgbj1yLmFwcGx5KHQsZSk7cmV0dXJuITE9PT1uJiYobj1pLmFwcGx5KHQsZSkpLG58fCIifX1uLnJlbmRlcmVyPXR9aWYoZS50b2tlbml6ZXIpe2NvbnN0IHQ9dGhpcy5kZWZhdWx0cy50b2tlbml6ZXJ8fG5ldyB3KHRoaXMuZGVmYXVsdHMpO2Zvcihjb25zdCBuIGluIGUudG9rZW5pemVyKXtpZighKG4gaW4gdCkpdGhyb3cgbmV3IEVycm9yKGB0b2tlbml6ZXIgJyR7bn0nIGRvZXMgbm90IGV4aXN0YCk7aWYoWyJvcHRpb25zIiwicnVsZXMiLCJsZXhlciJdLmluY2x1ZGVzKG4pKWNvbnRpbnVlO2NvbnN0IHM9bixyPWUudG9rZW5pemVyW3NdLGk9dFtzXTt0W3NdPSguLi5lKT0+e2xldCBuPXIuYXBwbHkodCxlKTtyZXR1cm4hMT09PW4mJihuPWkuYXBwbHkodCxlKSksbn19bi50b2tlbml6ZXI9dH1pZihlLmhvb2tzKXtjb25zdCB0PXRoaXMuZGVmYXVsdHMuaG9va3N8fG5ldyBsZTtmb3IoY29uc3QgbiBpbiBlLmhvb2tzKXtpZighKG4gaW4gdCkpdGhyb3cgbmV3IEVycm9yKGBob29rICcke259JyBkb2VzIG5vdCBleGlzdGApO2lmKCJvcHRpb25zIj09PW4pY29udGludWU7Y29uc3Qgcz1uLHI9ZS5ob29rc1tzXSxpPXRbc107bGUucGFzc1Rocm91Z2hIb29rcy5oYXMobik/dFtzXT1lPT57aWYodGhpcy5kZWZhdWx0cy5hc3luYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHIuY2FsbCh0LGUpKS50aGVuKChlPT5pLmNhbGwodCxlKSkpO2NvbnN0IG49ci5jYWxsKHQsZSk7cmV0dXJuIGkuY2FsbCh0LG4pfTp0W3NdPSguLi5lKT0+e2xldCBuPXIuYXBwbHkodCxlKTtyZXR1cm4hMT09PW4mJihuPWkuYXBwbHkodCxlKSksbn19bi5ob29rcz10fWlmKGUud2Fsa1Rva2Vucyl7Y29uc3QgdD10aGlzLmRlZmF1bHRzLndhbGtUb2tlbnMscz1lLndhbGtUb2tlbnM7bi53YWxrVG9rZW5zPWZ1bmN0aW9uKGUpe2xldCBuPVtdO3JldHVybiBuLnB1c2gocy5jYWxsKHRoaXMsZSkpLHQmJihuPW4uY29uY2F0KHQuY2FsbCh0aGlzLGUpKSksbn19dGhpcy5kZWZhdWx0cz17Li4udGhpcy5kZWZhdWx0cywuLi5ufX0pKSx0aGlzfXNldE9wdGlvbnMoZSl7cmV0dXJuIHRoaXMuZGVmYXVsdHM9ey4uLnRoaXMuZGVmYXVsdHMsLi4uZX0sdGhpc31sZXhlcihlLHQpe3JldHVybiBuZS5sZXgoZSx0Pz90aGlzLmRlZmF1bHRzKX1wYXJzZXIoZSx0KXtyZXR1cm4gaWUucGFyc2UoZSx0Pz90aGlzLmRlZmF1bHRzKX0jZShlLHQpe3JldHVybihuLHMpPT57Y29uc3Qgcj17Li4uc30saT17Li4udGhpcy5kZWZhdWx0cywuLi5yfTshMD09PXRoaXMuZGVmYXVsdHMuYXN5bmMmJiExPT09ci5hc3luYyYmKGkuc2lsZW50fHxjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBUaGUgYXN5bmMgb3B0aW9uIHdhcyBzZXQgdG8gdHJ1ZSBieSBhbiBleHRlbnNpb24uIFRoZSBhc3luYzogZmFsc2Ugb3B0aW9uIHNlbnQgdG8gcGFyc2Ugd2lsbCBiZSBpZ25vcmVkLiIpLGkuYXN5bmM9ITApO2NvbnN0IGw9dGhpcy4jdCghIWkuc2lsZW50LCEhaS5hc3luYyk7aWYobnVsbD09bilyZXR1cm4gbChuZXcgRXJyb3IoIm1hcmtlZCgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkIG9yIG51bGwiKSk7aWYoInN0cmluZyIhPXR5cGVvZiBuKXJldHVybiBsKG5ldyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyBvZiB0eXBlICIrT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pKyIsIHN0cmluZyBleHBlY3RlZCIpKTtpZihpLmhvb2tzJiYoaS5ob29rcy5vcHRpb25zPWkpLGkuYXN5bmMpcmV0dXJuIFByb21pc2UucmVzb2x2ZShpLmhvb2tzP2kuaG9va3MucHJlcHJvY2VzcyhuKTpuKS50aGVuKCh0PT5lKHQsaSkpKS50aGVuKChlPT5pLmhvb2tzP2kuaG9va3MucHJvY2Vzc0FsbFRva2VucyhlKTplKSkudGhlbigoZT0+aS53YWxrVG9rZW5zP1Byb21pc2UuYWxsKHRoaXMud2Fsa1Rva2VucyhlLGkud2Fsa1Rva2VucykpLnRoZW4oKCgpPT5lKSk6ZSkpLnRoZW4oKGU9PnQoZSxpKSkpLnRoZW4oKGU9PmkuaG9va3M/aS5ob29rcy5wb3N0cHJvY2VzcyhlKTplKSkuY2F0Y2gobCk7dHJ5e2kuaG9va3MmJihuPWkuaG9va3MucHJlcHJvY2VzcyhuKSk7bGV0IHM9ZShuLGkpO2kuaG9va3MmJihzPWkuaG9va3MucHJvY2Vzc0FsbFRva2VucyhzKSksaS53YWxrVG9rZW5zJiZ0aGlzLndhbGtUb2tlbnMocyxpLndhbGtUb2tlbnMpO2xldCByPXQocyxpKTtyZXR1cm4gaS5ob29rcyYmKHI9aS5ob29rcy5wb3N0cHJvY2VzcyhyKSkscn1jYXRjaChlKXtyZXR1cm4gbChlKX19fSN0KGUsdCl7cmV0dXJuIG49PntpZihuLm1lc3NhZ2UrPSJcblBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRwczovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFya2VkLiIsZSl7Y29uc3QgZT0iPHA+QW4gZXJyb3Igb2NjdXJyZWQ6PC9wPjxwcmU+IitjKG4ubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7cmV0dXJuIHQ/UHJvbWlzZS5yZXNvbHZlKGUpOmV9aWYodClyZXR1cm4gUHJvbWlzZS5yZWplY3Qobik7dGhyb3cgbn19fWNvbnN0IGFlPW5ldyBvZTtmdW5jdGlvbiBjZShlLHQpe3JldHVybiBhZS5wYXJzZShlLHQpfWNlLm9wdGlvbnM9Y2Uuc2V0T3B0aW9ucz1mdW5jdGlvbihlKXtyZXR1cm4gYWUuc2V0T3B0aW9ucyhlKSxjZS5kZWZhdWx0cz1hZS5kZWZhdWx0cyxuKGNlLmRlZmF1bHRzKSxjZX0sY2UuZ2V0RGVmYXVsdHM9dCxjZS5kZWZhdWx0cz1lLmRlZmF1bHRzLGNlLnVzZT1mdW5jdGlvbiguLi5lKXtyZXR1cm4gYWUudXNlKC4uLmUpLGNlLmRlZmF1bHRzPWFlLmRlZmF1bHRzLG4oY2UuZGVmYXVsdHMpLGNlfSxjZS53YWxrVG9rZW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFlLndhbGtUb2tlbnMoZSx0KX0sY2UucGFyc2VJbmxpbmU9YWUucGFyc2VJbmxpbmUsY2UuUGFyc2VyPWllLGNlLnBhcnNlcj1pZS5wYXJzZSxjZS5SZW5kZXJlcj1zZSxjZS5UZXh0UmVuZGVyZXI9cmUsY2UuTGV4ZXI9bmUsY2UubGV4ZXI9bmUubGV4LGNlLlRva2VuaXplcj13LGNlLkhvb2tzPWxlLGNlLnBhcnNlPWNlO2NvbnN0IGhlPWNlLm9wdGlvbnMscGU9Y2Uuc2V0T3B0aW9ucyx1ZT1jZS51c2Usa2U9Y2Uud2Fsa1Rva2VucyxnZT1jZS5wYXJzZUlubGluZSxmZT1jZSxkZT1pZS5wYXJzZSx4ZT1uZS5sZXg7ZS5Ib29rcz1sZSxlLkxleGVyPW5lLGUuTWFya2VkPW9lLGUuUGFyc2VyPWllLGUuUmVuZGVyZXI9c2UsZS5UZXh0UmVuZGVyZXI9cmUsZS5Ub2tlbml6ZXI9dyxlLmdldERlZmF1bHRzPXQsZS5sZXhlcj14ZSxlLm1hcmtlZD1jZSxlLm9wdGlvbnM9aGUsZS5wYXJzZT1mZSxlLnBhcnNlSW5saW5lPWdlLGUucGFyc2VyPWRlLGUuc2V0T3B0aW9ucz1wZSxlLnVzZT11ZSxlLndhbGtUb2tlbnM9a2V9KSk7Cg=="}]},{"name":"JWPlayer Enhancer","options":{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":true,"orig_connects":[],"orig_excludes":[],"orig_includes":["*"],"orig_matches":[],"orig_noframes":null,"orig_run_at":"document-end","orig_run_in":[],"use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":[]},"run_at":null,"run_in":null,"sandbox":null,"tags":[],"unwrap":null,"user_modified":null},"storage":{"ts":1764084296584,"data":{}},"enabled":false,"position":2,"file_url":"https://update.greasyfork.org/scripts/434709/JWPlayer%20Enhancer.user.js","uuid":"84f76271-14f2-49d1-ad48-e6e4cfed91af","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICBKV1BsYXllciBFbmhhbmNlcgovLyBAbmFtZXNwYWNlICAgIGh0dHBzOi8vZ3JlYXN5Zm9yay5vcmcvZW4vdXNlcnMvNjcwMTg4LWhhY2tlcjA5P3NvcnQ9ZGFpbHlfaW5zdGFsbHMKLy8gQHZlcnNpb24gICAgICAzCi8vIEBkZXNjcmlwdGlvbiAgSW1wcm92ZXMgYmluZ2Ugd2F0Y2ggZXhwZXJpZW5jZXMgb24gYW55IEpXUGxheWVyIHZpZGVvcyBvbmxpbmUuCi8vIEBhdXRob3IgICAgICAgaGFja2VyMDkKLy8gQGluY2x1ZGUgICAgICAqCi8vIEBpY29uICAgICAgICAgaHR0cHM6Ly93d3cuandwbGF5ZXIuY29tL2h1YmZzL0pXX1BsYXllcl9BdWd1c3QyMDIxL0ltYWdlcy9mYXZpY29uLTE1Mi5wbmcKLy8gQHJ1bi1hdCAgICAgICBkb2N1bWVudC1lbmQKLy8gQGdyYW50ICAgICAgICB1bnNhZmVXaW5kb3cKLy8gQGRvd25sb2FkVVJMIGh0dHBzOi8vdXBkYXRlLmdyZWFzeWZvcmsub3JnL3NjcmlwdHMvNDM0NzA5L0pXUGxheWVyJTIwRW5oYW5jZXIudXNlci5qcwovLyBAdXBkYXRlVVJMIGh0dHBzOi8vdXBkYXRlLmdyZWFzeWZvcmsub3JnL3NjcmlwdHMvNDM0NzA5L0pXUGxheWVyJTIwRW5oYW5jZXIubWV0YS5qcwovLyA9PS9Vc2VyU2NyaXB0PT0KCihmdW5jdGlvbigpIHsKICAndXNlIHN0cmljdCc7CiAgd2luZG93Lm9ubG9hZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IC8vV2hlbiB0aGUgcGFnZSBpcyBsb2FkZWQKICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuanctbWVkaWEnKSAhPT0gbnVsbCkgLy9JZiB0aGUgTiBrZXkgd2FzIHByZXNzZWQgKHNraXAgZW5kIGFuZCBuZXh0IGVwIHByZXZpZXcpCiAgICB7IC8vU3RhcnRzIHRoZSBpZiBjb25kaXRpb24KICAgICAgdmFyIG5leHQ7IC8vQ3JlYXRlcyBhIG5ldyBnbG9iYWwgdmFyaWFibGUKICAgICAgY29uc3QgUGxheWVyID0gdW5zYWZlV2luZG93Lmp3cGxheWVyKHVuc2FmZVdpbmRvdy5qd3BsYXllcigpLmdldENvbnRhaW5lcigpKTsgLy9TdG9yZSB0aGUgUGxheWVyIGVsZW1lbnQgdG8gYSB2YXJpYWJsZQoKICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgLy9TdGFydHMgdGhlIHNldHRpbWVvdXQgZnVuY3Rpb24KCiAgICAgICAgZnVuY3Rpb24gVmlzaWJpbGl0eSgpIC8vQ3JlYXRlIGEgZnVuY3Rpb24gdG8gY2hlY2sgdGhlIHRhYiB2aXNpYmlsaXR5IHN0YXR1cwogICAgICAgIHsgLy9TdGFydHMgdGhlIGZ1bmN0aW9uCiAgICAgICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAndmlzaWJsZScpIHsgLy9JZiB0aGUgdGFiIGlzIHVuZm9jdXNlZAogICAgICAgICAgICBQbGF5ZXIucGxheSgpOyAvL1BsYXlzIHRoZSB2aWRlbwogICAgICAgICAgICBQbGF5ZXIuc2V0RnVsbHNjcmVlbih0cnVlKTsgLy9BdXRvIGZ1bGwgc2NyZWVuIHRoZSB2aWRlbwogICAgICAgICAgfSAvL0ZpbmlzaGVzIHRoZSBpZiBjb25kaXRpb24KICAgICAgICB9IC8vRmluaXNoZXMgdGhlIGlmIGZ1bmN0aW9uCiAgICAgICAgVmlzaWJpbGl0eSgpOyAvL0NhbGxzIHRoZSBmdW5jdGlvbgoKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgZnVuY3Rpb24oKSB7IC8vV2hlbiB0aGUgdGFiIGlzIGZvY3VzZWQvdW5mb2N1c2VkCiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAvL1N0YXJ0cyB0aGUgc2V0dGltZW91dCBmdW5jdGlvbgogICAgICAgICAgICBWaXNpYmlsaXR5KCk7IC8vQ2FsbHMgdGhlIGZ1bmN0aW9uCiAgICAgICAgICB9LCAxMDAwKTsgLy9GaW5pc2hlcyB0aGUgc2V0dGltZW91dCBmdW5jdGlvbgoKICAgICAgICAgIGlmIChkb2N1bWVudC5oaWRkZW4pIHsgLy9JZiB0aGUgdGFiIGlzIHVuZm9jdXNlZAogICAgICAgICAgICBQbGF5ZXIucGF1c2UoKTsgLy9QYXVzZSB0aGUgdmlkZW8KICAgICAgICAgIH0gLy9GaW5pc2hlcyB0aGUgaWYgY29uZGl0aW9uCgogICAgICAgIH0sIGZhbHNlKTsgLy9GaW5pc2hlcyB0aGUgdmlzaWJpbGl0eWNoYW5nZSBldmVudCBsaXN0ZW5lcgogICAgICB9LCA1MDApOyAvL0ZpbmlzaGVzIHRoZSBzZXR0aW1lb3V0IGZ1bmN0aW9uCgogICAgICBQbGF5ZXIub24oJ2NvbXBsZXRlJywgZnVuY3Rpb24oKSB7IC8vV2hlbiB0aGUgdmlkZW8gZW5kcwogICAgICAgIFBsYXllci5zZXRGdWxsc2NyZWVuKGZhbHNlKTsgLy9MZWF2ZSB2aWRlbyBmdWxsIHNjcmVlbiBtb2RlCiAgICAgIH0pOyAvL0ZpbmlzaGVzIHRoZSBvbmNvbXBsZXRlIGV2ZW50IGxpc3RlbmVyCgogICAgICBQbGF5ZXIub24oJ3BhdXNlJywgZnVuY3Rpb24oKSB7IC8vV2hlbiB0aGUgdmlkZW8gaXMgcGF1c2UKICAgICAgICBQbGF5ZXIuc2V0RnVsbHNjcmVlbihmYWxzZSk7IC8vTGVhdmUgdmlkZW8gZnVsbCBzY3JlZW4gbW9kZQogICAgICB9KTsgLy9GaW5pc2hlcyB0aGUgb25jb21wbGV0ZSBldmVudCBsaXN0ZW5lcgoKICAgICAgZG9jdW1lbnQuaGVhZC5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsICc8c3R5bGU+Lmp3LXJpZ2h0Y2xpY2sgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH08L3N0eWxlPicpOyAvL0hpZGUgdGhlIHJpZ2h0IGNsaWNrIGp3cGxheWVyIHZpZGVvIG1lbnUgb3B0aW9ucwoKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodW5zYWZlV2luZG93Lmp3cGxheWVyKCkuaWQpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgeyAvL1doZW4gdGhlIHZpZGVvIGlzIGNsaWNrZWQKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAvL1N0YXJ0cyB0aGUgc2V0dGltZW91dCBmdW5jdGlvbgogICAgICAgICAgaWYgKFBsYXllci5nZXRTdGF0ZSgpID09PSAncGF1c2VkJykgLy9JZiB0aGUgdmlkZW8gaXMgcGF1c2VkCiAgICAgICAgICB7IC8vU3RhcnRzIHRoZSBpZiBjb25kaXRpb24KICAgICAgICAgICAgUGxheWVyLnNldEZ1bGxzY3JlZW4oZmFsc2UpOyAvL0xlYXZlIHZpZGVvIGZ1bGwgc2NyZWVuIG1vZGUKICAgICAgICAgIH0gLy9GaW5pc2hlcyB0aGUgaWYgY29uZGl0aW9uCiAgICAgICAgICBlbHNlIC8vSWYgdGhlIHZpZGVvIGlzIHBsYXlpbmcKICAgICAgICAgIHsgLy9TdGFydHMgdGhlIGVsc2UgY29uZGl0aW9uCiAgICAgICAgICAgIFBsYXllci5zZXRGdWxsc2NyZWVuKHRydWUpOyAvL0VudGVycyB2aWRlbyBmdWxsIHNjcmVlbiBtb2RlCiAgICAgICAgICB9IC8vRmluaXNoZXMgdGhlIGVsc2UgY29uZGl0aW9uCiAgICAgICAgfSwgNTAwKTsgLy9GaW5pc2hlcyB0aGUgc2V0dGltZW91dCBmdW5jdGlvbgogICAgICB9KTsgLy9GaW5pc2hlcyB0aGUgb24gY2xpY2sgZXZlbnQgbGlzdGVuZXIKCiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBlID0+IHsgLy9MaXN0ZW4gZm9yIGtleXByZXNzZXMKICAgICAgICBpZiAoZS5rZXkgPT09ICduJykgLy9JZiB0aGUgTiBrZXkgd2FzIHByZXNzZWQgKHNraXAgZW5kIGFuZCBuZXh0IGVwIHByZXZpZXcpCiAgICAgICAgeyAvL1N0YXJ0cyB0aGUgaWYgY29uZGl0aW9uCiAgICAgICAgICBQbGF5ZXIuc2V0RnVsbHNjcmVlbihmYWxzZSk7IC8vTGVhdmUgdmlkZW8gZnVsbCBzY3JlZW4gbW9kZQogICAgICAgICAgaWYgKGxvY2F0aW9uLmhyZWYubWF0Y2goJ21hdGV1czdnJykgIT09IG51bGwpIC8vSWYgdGhlIE4ga2V5IHdhcyBwcmVzc2VkIChza2lwIGVuZCBhbmQgbmV4dCBlcCBwcmV2aWV3KQogICAgICAgICAgeyAvL1N0YXJ0cyB0aGUgaWYgY29uZGl0aW9uCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJrZXkgTiAyIHByZXNzZWQiKTsKICAgICAgICAgICAgLy9uZXh0LmNsaWNrKCk7CiAgICAgICAgICAgIFBsYXllci5uZXh0KCk7IC8vSnVtcCB0byBuZXh0IGVwCiAgICAgICAgICAgIC8vd2luZG93LnF1ZXJ5U2VsZWN0b3IoIi5jb2xsZWN0aW9uLWNhcm91c2VsLW1lZGlhLWxpbmstY3VycmVudCIpLnBhcmVudEVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoImRpdiA+IGRpdiA+IGRpdiA+IGEiKS5jbGljaygpOyAvL0p1bXAgdG8gbmV4dCBlcAogICAgICAgICAgfSAvL0ZpbmlzaGVzIHRoZSBlbHNlIGNvbmRpdGlvbgogICAgICAgIH0gLy9GaW5pc2hlcyB0aGUgZWxzZSBjb25kaXRpb24KICAgICAgICBpZiAoZS5rZXkgPT09ICdsJykgLy9JZiB0aGUgTCBrZXkgd2FzIHByZXNzZWQgKHNraXAgdGhlIG9wZW5pbmcpCiAgICAgICAgeyAvL1N0YXJ0cyB0aGUgaWYgY29uZGl0aW9uCiAgICAgICAgICBQbGF5ZXIuc2VlayhQbGF5ZXIuZ2V0UG9zaXRpb24oKSArIDg1KTsgLy9TZWVrIDE6MjUgc2VjcyBmb3dhcmQKICAgICAgICB9IC8vRmluaXNoZXMgdGhlIGVsc2UgY29uZGl0aW9uCiAgICAgIH0pOyAvL0ZpbmlzaGVzIHRoZSBrZXlkb3duIGV2ZW50IGxpc3RlbmVyCiAgICB9IC8vRmluaXNoZXMgdGhlIGlmIGNvbmRpdGlvbgogIH0sIDE1MDApOyAvL0ZpbmlzaGVzIHRoZSBvbmxvYWQgZXZlbnQgbGlzdGVuZXIKfSkoKTs="},{"name":"ChatGPT Infinity ∞","options":{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":true,"orig_connects":["cdn.jsdelivr.net","update.greasyfork.org"],"orig_excludes":[],"orig_includes":[],"orig_matches":["*://chatgpt.com/*","*://chat.openai.com/*"],"orig_noframes":true,"orig_run_at":"document-idle","orig_run_in":[],"orig_tags":[],"use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":[]},"run_at":null,"run_in":null,"sandbox":null,"tags":[],"unwrap":null,"user_modified":null},"storage":{"ts":1764084296853,"data":{"chatGPTinfinity_replyInterval":"n7","chatGPTinfinity_replyLanguage":"sen-US","chatGPTinfinity_replyTopic":"sALL"}},"enabled":false,"position":3,"file_url":"https://update.greasyfork.org/scripts/465051/ChatGPT%20Infinity%20%E2%88%9E.user.js","uuid":"beb45a12-af5e-4c5d-b4cf-8755dc7cc7f7","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICAgICAgICAgQ2hhdEdQVCBJbmZpbml0eSDiiJ4KLy8gQG5hbWU6YWYgICAgICAgICAgICAgQ2hhdEdQVCBPbmVpbmRpZyDiiJ4KLy8gQG5hbWU6YXIgICAgICAgICAgICAg2K/Ysdiv2LTYqUdQVCDYpdmG2YHZitmG2YrYqtmKIOKIngovLyBAbmFtZTpheiAgICAgICAgICAgICBDaGF0R1BUIFNvbnN1emx1cSDiiJ4KLy8gQG5hbWU6YmUgICAgICAgICAgICAgQ2hhdEdQVCDQkdGP0YHQutC+0L3RhtCw0YHRhtGMIOKIngovLyBAbmFtZTpiZyAgICAgICAgICAgICBDaGF0R1BUINCR0LXQt9C60YDQsNC50L3QvtGB0YIg4oieCi8vIEBuYW1lOmJuICAgICAgICAgICAgIENoYXRHUFQg4KaH4Kao4Kar4Ka/4Kao4Ka/4Kaf4Ka/IOKIngovLyBAbmFtZTpibyAgICAgICAgICAgICBDaGF0R1BUIOC9keC9guC8i+C9puC+kOC+seC9uuC9puC8i+C9oeC9vOC9keC8i+C9lOC8iyDiiJ4KLy8gQG5hbWU6YnMgICAgICAgICAgICAgQ2hhdEdQVCBCZXNrcmFqbm9zdCDiiJ4KLy8gQG5hbWU6Y2EgICAgICAgICAgICAgQ2hhdEdQVCBJbmZpbml0IOKIngovLyBAbmFtZTpja2IgICAgICAgICAgICBDaGF0R1BUINmG25XZvtuO2YbYr9uM24zblSDiiJ4KLy8gQG5hbWU6Y3MgICAgICAgICAgICAgQ2hhdEdQVCBOZWtvbmXEjW5vIOKIngovLyBAbmFtZTpjeSAgICAgICAgICAgICBDaGF0R1BUIEFuZmVpZHJlZGQg4oieCi8vIEBuYW1lOmRhICAgICAgICAgICAgIENoYXRHUFQgVWVuZGVsaWdoZWQg4oieCi8vIEBuYW1lOmRlICAgICAgICAgICAgIENoYXRHUFQgVW5lbmRsaWNoa2VpdCDiiJ4KLy8gQG5hbWU6ZHYgICAgICAgICAgICAgQ2hhdEdQVCDegt6q3ojept6M3qYg3oTep96I3qbeh96w3pberd6O3qzegt6wIOKIngovLyBAbmFtZTpkeiAgICAgICAgICAgICBDaGF0R1BUIOC9ouC+qeC9uuC9keC8i+C9puC+kuC+suC9suC9luC8i+C9guC9ieC9suC9puC8iyDiiJ4KLy8gQG5hbWU6ZWwgICAgICAgICAgICAgQ2hhdEdQVCDOhs+AzrXOuc+Bzr8g4oieCi8vIEBuYW1lOmVvICAgICAgICAgICAgIENoYXRHUFQgSW5maW5pdG8g4oieCi8vIEBuYW1lOmVzICAgICAgICAgICAgIENoYXRHUFQgSW5maW5pdG8g4oieCi8vIEBuYW1lOmV0ICAgICAgICAgICAgIENoYXRHUFQgTMO1cG1hdHVzIOKIngovLyBAbmFtZTpldSAgICAgICAgICAgICBDaGF0R1BUIEluZmluaXR1YSDiiJ4KLy8gQG5hbWU6ZmEgICAgICAgICAgICAgQ2hhdEdQVCDYqNuM2YbZh9in24zYqiDiiJ4KLy8gQG5hbWU6ZmkgICAgICAgICAgICAgQ2hhdEdQVCDDhMOkcmV0w7ZuIOKIngovLyBAbmFtZTpmbyAgICAgICAgICAgICBDaGF0R1BUIMOTZW5kYW5saWdoZWQg4oieCi8vIEBuYW1lOmZyICAgICAgICAgICAgIENoYXRHUFQgSW5maW5pIOKIngovLyBAbmFtZTpmci1DQSAgICAgICAgICBDaGF0R1BUIEluZmluaSDiiJ4KLy8gQG5hbWU6Z2wgICAgICAgICAgICAgQ2hhdEdQVCBJbmZpbml0byDiiJ4KLy8gQG5hbWU6Z3UgICAgICAgICAgICAgQ2hhdEdQVCDgqoXgqqjgqoLgqqQg4oieCi8vIEBuYW1lOmhhdyAgICAgICAgICAgIENoYXRHUFQgTcSBaGluYSDKu29sZSDiiJ4KLy8gQG5hbWU6aGUgICAgICAgICAgICAgQ2hhdEdQVCDXkNeZ16DXodeV16Mg4oieCi8vIEBuYW1lOmhpICAgICAgICAgICAgIENoYXRHUFQg4KSF4KSo4KSC4KSkIOKIngovLyBAbmFtZTpociAgICAgICAgICAgICBDaGF0R1BUIEJlc2tyYWpub3N0IOKIngovLyBAbmFtZTpodSAgICAgICAgICAgICBDaGF0R1BUIFbDqWd0ZWxlbnPDqWcg4oieCi8vIEBuYW1lOmh5ICAgICAgICAgICAgIENoYXRHUFQg1LHVttW+1aXWgNW7IOKIngovLyBAbmFtZTppZCAgICAgICAgICAgICBDaGF0R1BUIEluZmluaXR5IOKIngovLyBAbmFtZTppcyAgICAgICAgICAgICBDaGF0R1BUIMOTZW5kYW5sZWlraSDiiJ4KLy8gQG5hbWU6aXQgICAgICAgICAgICAgQ2hhdEdQVCBJbmZpbml0byDiiJ4KLy8gQG5hbWU6amEgICAgICAgICAgICAgQ2hhdEdQVCDnhKHpmZAg4oieCi8vIEBuYW1lOmthICAgICAgICAgICAgIENoYXRHUFQg4YOj4YOh4YOQ4YOh4YOg4YOj4YOa4YOd4YOR4YOQIOKIngovLyBAbmFtZTprbSAgICAgICAgICAgICBDaGF0R1BUIOGeouGek+GeoeGetuGeiSDiiJ4KLy8gQG5hbWU6a24gICAgICAgICAgICAgQ2hhdEdQVCDgsoXgsqjgsoLgsqQg4oieCi8vIEBuYW1lOmtvICAgICAgICAgICAgIENoYXRHUFQg66y07ZWcIOKIngovLyBAbmFtZTprdSAgICAgICAgICAgICBDaGF0R1BUIFDDqsWfYW5nZWgg4oieCi8vIEBuYW1lOmt5ICAgICAgICAgICAgIENoYXRHUFQg0JjRh9C60Lgg4oieCi8vIEBuYW1lOmxhICAgICAgICAgICAgIENoYXRHUFQgSW5maW5pdGFzIOKIngovLyBAbmFtZTpsYiAgICAgICAgICAgICBDaGF0R1BUIFVuZW5kbGVjaGtlZXQg4oieCi8vIEBuYW1lOmxvICAgICAgICAgICAgIENoYXRHUFQg4Lqa4LuN4LuI4LuE4Lqb4Lqq4Lq54LuI4LqI4Lqx4LqB4LqC4Lqt4LqH4Lqq4Lqy4Lqh4Lqr4Lqn4LuI4Lqy4LqHIOKIngovLyBAbmFtZTpsdCAgICAgICAgICAgICBDaGF0R1BUIEJlZ2FseWLElyDiiJ4KLy8gQG5hbWU6bHYgICAgICAgICAgICAgQ2hhdEdQVCBCZXpnYWzEq2JhIOKIngovLyBAbmFtZTptayAgICAgICAgICAgICBDaGF0R1BUINCR0LXRgdC60L7QvdC10YfQvdC+0YHRgiDiiJ4KLy8gQG5hbWU6bWwgICAgICAgICAgICAgQ2hhdEdQVCDgtIXgtKjgtKjgtY3gtKTgtKQg4oieCi8vIEBuYW1lOm1uICAgICAgICAgICAgIENoYXRHUFQg0KLRjdCz0Ygg0LHRg9GBIOKIngovLyBAbmFtZTptdCAgICAgICAgICAgICBDaGF0R1BUIEluZmluaXTDoCDiiJ4KLy8gQG5hbWU6bXkgICAgICAgICAgICAgQ2hhdEdQVCDhgJnhgLzhgIThgLrhgIDhgL3hgIThgLrhgLgg4oieCi8vIEBuYW1lOm5lICAgICAgICAgICAgIENoYXRHUFQg4KSF4KSo4KSC4KSkIOKIngovLyBAbmFtZTpubCAgICAgICAgICAgICBDaGF0R1BUIE9uZWluZGlnaGVpZCDiiJ4KLy8gQG5hbWU6bm8gICAgICAgICAgICAgQ2hhdEdQVCBVZW5kZWxpZ2hldCDiiJ4KLy8gQG5hbWU6cGEgICAgICAgICAgICAgQ2hhdEdQVCDgqIfgqKjgqKvgqL/gqKjgqL/gqJ/gqYAg4oieCi8vIEBuYW1lOnBsICAgICAgICAgICAgIENoYXRHUFQgTmllc2tvxYRjem9ub8WbxIcg4oieCi8vIEBuYW1lOnBzICAgICAgICAgICAgIENoYXRHUFQg2YTYp9mF2qnYp9mGIOKIngovLyBAbmFtZTpwdCAgICAgICAgICAgICBDaGF0R1BUIEluZmluaXRvIOKIngovLyBAbmFtZTpwdC1CUiAgICAgICAgICBDaGF0R1BUIEluZmluaXRvIOKIngovLyBAbmFtZTpybyAgICAgICAgICAgICBDaGF0R1BUIEluZmluaXRhdGUg4oieCi8vIEBuYW1lOnJ1ICAgICAgICAgICAgIENoYXRHUFQg0JHQtdGB0LrQvtC90LXRh9C90L7RgdGC0Ywg4oieCi8vIEBuYW1lOnNpICAgICAgICAgICAgIENoYXRHUFQg4LaF4Lax4Lax4LeK4Lat4La6IOKIngovLyBAbmFtZTpzayAgICAgICAgICAgICBDaGF0R1BUIE5la29uZcSNbm8g4oieCi8vIEBuYW1lOnNsICAgICAgICAgICAgIENoYXRHUFQgTmVza29uxI1ub3N0IOKIngovLyBAbmFtZTpzbyAgICAgICAgICAgICBDaGF0R1BUIFFheWJ0aWlzYSDiiJ4KLy8gQG5hbWU6c3IgICAgICAgICAgICAgQ2hhdEdQVCDQkdC10YHQutGA0LDRmNC90L7RgdGCIOKIngovLyBAbmFtZTpzdiAgICAgICAgICAgICBDaGF0R1BUIE/DpG5kbGlnaGV0IOKIngovLyBAbmFtZTp0YSAgICAgICAgICAgICBDaGF0R1BUIOCuruCvgeCun+Cuv+CuteCuv+CusuCuv+CusOCvgeCuqOCvjeCupOCvgSDiiJ4KLy8gQG5hbWU6dGUgICAgICAgICAgICAgQ2hhdEdQVCDgsIXgsKjgsILgsKTgsKQg4oieCi8vIEBuYW1lOnRnICAgICAgICAgICAgIENoYXRHUFQg0JHQtdC+0rPToyDiiJ4KLy8gQG5hbWU6dGggICAgICAgICAgICAgQ2hhdEdQVCDguK3guJnguLHguJnguJXguYwg4oieCi8vIEBuYW1lOnRpICAgICAgICAgICAgIENoYXRHUFQg4YiY4Yuw4YiY4YitIOKIngovLyBAbmFtZTp0ayAgICAgICAgICAgICBDaGF0R1BUIFNvbnN1emx1ayDiiJ4KLy8gQG5hbWU6dHIgICAgICAgICAgICAgQ2hhdEdQVCBTb25zdXpsdWsg4oieCi8vIEBuYW1lOnVrICAgICAgICAgICAgIENoYXRHUFQg0J3QtdGB0LrRltC90YfQtdC90L3RltGB0YLRjCDiiJ4KLy8gQG5hbWU6dXIgICAgICAgICAgICAgQ2hhdEdQVCDYqNuSINin2YbYqtuB2Kcg4oieCi8vIEBuYW1lOnZpICAgICAgICAgICAgIENoYXRHUFQgVsO0IGPDuW5nIOKIngovLyBAbmFtZTp5aSAgICAgICAgICAgICBDaGF0R1BUINeQ15nXoNek15nXoNeZ15jXmSDiiJ4KLy8gQG5hbWU6emggICAgICAgICAgICAgQ2hhdEdQVCDml6DpmZAg4oieCi8vIEBuYW1lOnpoLUNOICAgICAgICAgIENoYXRHUFQg5peg6ZmQIOKIngovLyBAbmFtZTp6aC1ISyAgICAgICAgICBDaGF0R1BUIOeEoemZkCDiiJ4KLy8gQG5hbWU6emgtU0cgICAgICAgICAgQ2hhdEdQVCDml6DpmZAg4oieCi8vIEBuYW1lOnpoLVRXICAgICAgICAgIENoYXRHUFQg54Sh6ZmQIOKIngovLyBAZGVzY3JpcHRpb24gICAgICAgICBHZW5lcmF0ZSBlbmRsZXNzIGFuc3dlcnMgZnJvbSBhbGwta25vd2luZyBDaGF0R1BUIChpbiBhbnkgbGFuZ3VhZ2UhKQovLyBAZGVzY3JpcHRpb246YWYgICAgICBHZW5lcmVlciBlaW5kZWxvc2UgYW50d29vcmRlIHZhbiBkaWUgYWx3ZXRlbmRlIENoYXRHUFQgKGluIGVuaWdlIHRhYWwhKQovLyBAZGVzY3JpcHRpb246YW0gICAgICDhiJPhiaDhiKzhibPhi60g4Yqj4Yut4YqQ4Ymg4Yit4YqTIOGImOGIjeGKpeGKveGJsiDhiqPhiIjhirnhiJ0g4Yqj4YiO4Yq74YuKIOGLq+GIjeGKo+GLreGJtSBDaGF0R1BUICjhiaDhiYvhipXhiYshKQovLyBAZGVzY3JpcHRpb246YXIgICAgICDZgtmFINio2KrZiNmE2YrYryDYpdis2KfYqNin2Kog2YTYpyDZhtmH2KfYptmK2Kkg2YXZhiBDaGF0R1BUINin2YTZhdi52LHZgSDYqNmD2YQg2LTZitihICjYqNij2Yog2YTYutipISkKLy8gQGRlc2NyaXB0aW9uOmF6ICAgICAgSMmZciDFn2V5aSBiaWzJmW4gQ2hhdEdQVC1kyZluIHNvbnN1eiBjYXZhYmxhciB5YXJhZMSxbiAoaMmZciBoYW5zxLEgYmlyIGRpbCBpbMmZISkKLy8gQGRlc2NyaXB0aW9uOmJlICAgICAg0KHRgtCy0LDRgNGL0YbQtSDQsdGP0YHQutC+0L3RhtGLINCw0LTQutCw0LfRiyDQsNC0INGe0YHQtdCy0LXQtNGD0YfQsNCz0LAgQ2hhdEdQVCAo0L3QsCDQu9GO0LHQvtC5INC80L7QstC1ISkKLy8gQGRlc2NyaXB0aW9uOmJlbSAgICAgUGFtZW5lIG13YXBvc2EgbWFmb2xvc2hvIGEgbcqMbm96ZSBDaGF0R1BUIChtdSBsdXBpeWEgbHdhIG5kYWxhbWEhKQovLyBAZGVzY3JpcHRpb246YmcgICAgICDQk9C10L3QtdGA0LjRgNCw0LnRgtC1INCx0LXQt9C60YDQsNC50L3QuCDQvtGC0LPQvtCy0L7RgNC4INC+0YIg0LLRgdC10LfQvdCw0LnQvdC40Y8gQ2hhdEdQVCAo0L3QsCDQstGB0Y/QuiDQtdC30LjQuiEpCi8vIEBkZXNjcmlwdGlvbjpibiAgICAgIOCmuOCmsOCnjeCmrOCmnOCnjeCmniDgpprgp43gpq/gpr7gpp/gppzgpr/gpqrgpr/gpp/gpr8g4Kal4KeH4KaV4KeHIOCmheCmuOCngOCmriDgpongpqTgp43gpqTgprAg4Kak4KeI4Kaw4Ka/IOCmleCmsOCngeCmqCAo4Kav4KeHIOCmleCni+CmqCDgpq3gpr7gprfgpr7gpq/gprwhKQovLyBAZGVzY3JpcHRpb246Ym8gICAgICDgvZbgvZ/gvbzgvabgvIvgvZTgvIvgvZbgvaLgvpfgvbzgvZHgvIvgvZTgvaDgvbLgvItDaGF0R1BU4L2C4L2y4LyL4L2C4L6y4L284L2m4LyL4L2U4L2i4LyL4L2g4L2C4L6y4L204L2W4LyL4L2g4L2R4L264L2Y4L2m4LyL4L2W4L2m4L6Q4L6x4L264L2R4LyL4L2Y4L2y4LyL4L2g4L284L2E4L2m4LyL4L2U4LyNICjgvaPgvabgvIvgvabgvpDgvZbgvabgvIvgvYDgvrHgvbLgvIvgvabgvpDgvZHgvIvgvaHgvbLgvYLgvIvgvYLgvbLgvIvgvabgvpDgvZHgvIshKQovLyBAZGVzY3JpcHRpb246YnMgICAgICBHZW5lcmnFoWl0ZSBiZXNrb25hxI1uZSBvZGdvdm9yZSBvZCBzdmV6bmFqdcSHZWcgQ2hhdEdQVCAobmEgYmlsbyBrb20gamV6aWt1ISkKLy8gQGRlc2NyaXB0aW9uOmNhICAgICAgR2VuZXJldSByZXNwb3N0ZXMgaW5maW5pdGVzIGRlcyBkZSBsJ29tbmlzY2llbnQgQ2hhdEdQVCAoZW4gcXVhbHNldm9sIGlkaW9tYSEpCi8vIEBkZXNjcmlwdGlvbjpjZWIgICAgIFN1a2RhZ29uIGFuZyB3YWxheSBrYXRhcHVzYW4gbmdhIG1nYSB0dWJhZyBnaWthbiBzYSB0YW5hbi1tYWhpYmF3LWFub25nIENoYXRHUFQgKHNhIGJpc2FuIHVuc2FuZyBwaW51bG9uZ2FuISkKLy8gQGRlc2NyaXB0aW9uOmNrYiAgICAg2b7bjti02KjbjNmG24wg2obYp9iq2q/Zvtiq25XaqduVINiv24zYp9ix24zbjNuV2qnYp9mG24wg2b7bjtqp2LHYp9mI25Xaqdin2YYg2KjZhtmI2YjYs9uVICjYqNuVINmH25XYsSDYstmF2KfZhtuO2qnbjCDYr9uM2qnblSEpCi8vIEBkZXNjcmlwdGlvbjpjcyAgICAgIEdlbmVydWp0ZSBuZWtvbmXEjW7DqSBvZHBvdsSbZGkgb2QgdsWhZXbEm2RvdWPDrWhvIENoYXRHUFQgKHYgamFrw6lta29saSBqYXp5Y2UhKQovLyBAZGVzY3JpcHRpb246Y3kgICAgICBDeW5oeXJjaHdjaCBhdGViaW9uIGRpZGRpd2VkZCBvIENoYXRHUFQgeSBnxbVyIHN5J24gZ3d5Ym9kIHBvcGV0aCAobWV3biB1bnJoeXcgaWFpdGghKQovLyBAZGVzY3JpcHRpb246ZGEgICAgICBHZW5lcmVyIGVuZGVsw7hzZSBzdmFyIGZyYSBkZW4gYWx0dmlkZW5kZSBDaGF0R1BUIChww6UgaHZpbGtldCBzb20gaGVsc3Qgc3Byb2chKQovLyBAZGVzY3JpcHRpb246ZGUgICAgICBHZW5lcmllcmVuIFNpZSBlbmRsb3NlIEFudHdvcnRlbiB2b24gZGVtIGFsbHdpc3NlbmRlbiBDaGF0R1BUIChpbiBiZWxpZWJpZ2VyIFNwcmFjaGUhKQovLyBAZGVzY3JpcHRpb246ZHYgICAgICDeh96s3oDerN6C3oveqt6G3qbel96s3ofesN6I3qzekN6pIN6X3qzeh96w3pDeqN6Q3rDek96v3oLept6B3rAg3oLeqN6U3qbejd6m3ofeqN6K3qbeh96o3ojept6C3qkg3pDeqt6D3qreht6u3oHesCDeit6p3oDeqt6C3rAgKN6G3qbegt6w3oferN6I3qzekN6wIN6A3qbeid6m3ojerN6Q3rAhKQovLyBAZGVzY3JpcHRpb246ZHogICAgICDgvYbgvYLgvabgvIvgvYDgvrHgvbLgvabgvIvgvaPgvIvgvZbgvaLgvp/gvbrgvZPgvIvgvYLgvYTgvIvgvaLgvbTgvYTgvIvgvYLgvbLgvItDaGF0R1BU4L2C4L2y4LyL4L2a4L284L2C4L2m4LyL4L2U4L2g4L2y4LyL4L2m4L6Q4L2R4LyL4L2h4L2y4L2C4LyL4L2C4L6x4L2y4LyL4L2m4L6Q4L2R4LyL4L2h4L2y4L2C4LyL4L2W4L6x4L264L2R4LyL4L2U4LyNICjgvZbgvrPgvIvgvZjgvaDgvbLgvIvgvabgvpDgvZHgvIvgvaHgvbLgvYLgvIshKQovLyBAZGVzY3JpcHRpb246ZWwgICAgICDOlM63zrzOuc6/z4XPgc6zzq7Pg8+EzrUgzrHPhM61zrvOtc6vz4nPhM61z4IgzrHPgM6xzr3PhM6uz4POtc65z4IgzrHPgM+MIM+Ezr8gzrPOvc+Oz4PPhM63IENoYXRHUFQgKM+DzrUgzr/PgM6/zrnOsc60zq7PgM6/z4TOtSDOs867z47Pg8+DzrEhKQovLyBAZGVzY3JpcHRpb246ZW8gICAgICBLcmV1IG5lc2ZpbmHEtWFqbiByZXNwb25kb2puIGVsIGxhIMSJaW8tc2NpYW50YSBDaGF0R1BUIChlbiBham4gbGluZ3ZvISkKLy8gQGRlc2NyaXB0aW9uOmVzICAgICAgR2VuZXJhIHJlc3B1ZXN0YXMgaW5maW5pdGFzIGRlc2RlIGVsIENoYXRHUFQgb21uaXNjaWVudGUgKMKhZW4gY3VhbHF1aWVyIGlkaW9tYSEpCi8vIEBkZXNjcmlwdGlvbjpldCAgICAgIExvbyBsw7VwdXR1aWQgdmFzdHVzZWlkIGvDtWlrZS10ZWFkdmFzdCBDaGF0R1BULXN0IChtaXMgdGFoZXMga2VlbGVzISkKLy8gQGRlc2NyaXB0aW9uOmV1ICAgICAgU29ydHUgZXJhbnR6dW4gaW5maW5pdHVhayBndXp0aXotYXJkdXJhdHN1YXJlbiBDaGF0R1BULXRpayAoZWRvemVpbiBoaXprdW50emFuISkKLy8gQGRlc2NyaXB0aW9uOmZhICAgICAg2b7Yp9iz2K7Zh9in24wg2KjbjNm+2KfbjNin2YbbjCDYsdinINin2LIgQ2hhdEdQVCDZh9mF2YfYr9in2YbYpyDYqtmI2YTbjNivINqp2YbbjNivICjYqNmHINmH2LEg2LLYqNin2YbbjCEpCi8vIEBkZXNjcmlwdGlvbjpmaSAgICAgIEx1byBsb3B1dHRvbWlhIHZhc3RhdWtzaWEga2Fpa2tpdGlldMOkdsOkc3TDpCBDaGF0R1BUOnN0w6QgKG1pbGzDpCB0YWhhbnNhIGtpZWxlbGzDpCEpCi8vIEBkZXNjcmlwdGlvbjpmbyAgICAgIFNrYXBhIGVuZGFsYXVzIHN2w7hyIGZyw6EgYWx0dml0YW5kaSBDaGF0R1BUICjDoSBodsO4cmp1bSBtw6FscsO4w7AhKQovLyBAZGVzY3JpcHRpb246ZnIgICAgICBHw6luw6lyZXogZGVzIHLDqXBvbnNlcyBpbmZpbmllcyDDoCBwYXJ0aXIgZGUgQ2hhdEdQVCBxdWkgc2FpdCB0b3V0IChkYW5zIG4naW1wb3J0ZSBxdWVsbGUgbGFuZ3VlISkKLy8gQGRlc2NyaXB0aW9uOmZyLUNBICAgR8OpbsOpcmV6IGRlcyByw6lwb25zZXMgaW5maW5pZXMgw6AgcGFydGlyIGRlIENoYXRHUFQgcXVpIHNhaXQgdG91dCAoZGFucyBuJ2ltcG9ydGUgcXVlbGxlIGxhbmd1ZSEpCi8vIEBkZXNjcmlwdGlvbjpnZCAgICAgIENydXRoYWljaCBmcmVhZ2FpcnRlYW4gZ3VuIGNyw6xvY2ggw6AgQ2hhdEdQVCBhIHRoYSBhJyBmYWlnaG5lYWNoZCBnYWNoIGPDoGlsIChhbm4gYW4gc2FtIGJpdGggY8OgbmFuISkKLy8gQGRlc2NyaXB0aW9uOmdsICAgICAgWGVyZSBhcyByZXNwb3N0YXMgaW5maW5pdGFzIGRvIENoYXRHUFQgcXVlIHRvZG8gbyBzYWJlIChlbiBjYWxxdWVyYSBsaW5ndWEhKQovLyBAZGVzY3JpcHRpb246Z3UgICAgICDgqpzgq43gqp7gqr7gqqjgqrXgqr7gqqggQ2hhdEdQVCDgqqXgq4Ag4KqF4Kqo4KqC4KqkIOCqnOCqteCqvuCqrOCriyDgqongqqTgq43gqqrgqqgg4KqV4Kqw4KuLICjgqpXgq4vgqogg4Kqq4KqjIOCqreCqvuCqt+CqvuCqruCqvuCqgiEpCi8vIEBkZXNjcmlwdGlvbjpoYXcgICAgIEhhbGVsZcq7YSBpIG7EgSDKu8WNbGVsbyBwxIFsdWxlbG8gbWFpIGtlIGt1cGEgyrtpa2UgbG9hIG8gQ2hhdEdQVCAoaSBsb2tvIG8ga8STbMSBIMq7xY1sZWxvIGFrdSBhyrtlISkKLy8gQGRlc2NyaXB0aW9uOmhlICAgICAg15nXpteo15Ug16rXqdeV15HXldeqINeQ15nXoNeh15XXpNeZ15XXqiDXnteULUNoYXRHUFQg15TXnteR15nXnyDXlNeb15wgKNeR15vXnCDXqdek15QhKQovLyBAZGVzY3JpcHRpb246aGkgICAgICDgpLjgpK3gpYAt4KSc4KS+4KSo4KSo4KWH4KS14KS+4KSy4KWHIOCkmuCliOCkn+CknOClgOCkquClgOCkn+ClgCDgpLjgpYcg4KSF4KSo4KSC4KSkIOCkieCkpOCljeCkpOCksOCli+CkgiDgpJXgpL4g4KSJ4KSk4KWN4KSq4KS+4KSm4KSoIOCkleCksOClh+CkgiAo4KSV4KS/4KS44KWAIOCkreClgCDgpK3gpL7gpLfgpL4g4KSu4KWH4KSCISkKLy8gQGRlc2NyaXB0aW9uOmhyICAgICAgR2VuZXJpcmFqdGUgYmVza3Jham5lIG9kZ292b3JlIGl6IHN2ZXpuYWp1xIdlZyBDaGF0R1BULWEgKG5hIGJpbG8ga29qZW0gamV6aWt1ISkKLy8gQGRlc2NyaXB0aW9uOmh0ICAgICAgSmVuZXJlIHJlcG9ucyBzYW4gZmVuIHNvdGkgbmFuIENoYXRHUFQgay1hcCBrb25uZW4gdG91dCBiYWdheSB5byAobmFuIG5lbnDDsnQgbGFuZyEpCi8vIEBkZXNjcmlwdGlvbjpodSAgICAgIFbDqWd0ZWxlbiB2w6FsYXN6b2thdCBnZW5lcsOhbGpvbiBhIG1pbmRlbnR1ZMOzIENoYXRHUFQtYsWRbCAoYsOhcm1lbHkgbnllbHZlbiEpCi8vIEBkZXNjcmlwdGlvbjpoeSAgICAgINWN1b/VpdWy1a7VpdaEINWh1bbVvdWh1bDVtNWh1bbVodaD1aHVryDVutWh1b/VodW91a3VodW21bbVpdaAINWh1bTVpdW21aHVo9Wr1b/VodWv1aHVtiBDaGF0R1BULdWr1oEgKNaB1aHVttWv1aHWgdWh1a4g1azVpdWm1bjWgtW2INW01aXVuyEpCi8vIEBkZXNjcmlwdGlvbjppZCAgICAgIEhhc2lsa2FuIGphd2FiYW4gdGFrIHRlcmJhdGFzIGRhcmkgQ2hhdEdQVCB5YW5nIHRhaHUgc2VnYWxhbnlhIChkYWxhbSBiYWhhc2EgYXBhIHB1biEpCi8vIEBkZXNjcmlwdGlvbjppcyAgICAgIELDumnDsCB0aWwgZW5kYWxhdXMgc3bDtnIgZnLDoSBhbGx2aXNzdSBDaGF0R1BUICjDoSBodmHDsGEgdHVuZ3Vtw6FsaSBzZW0gZXIhKQovLyBAZGVzY3JpcHRpb246aXQgICAgICBHZW5lcmEgcmlzcG9zdGUgaW5maW5pdGUgZGFsbCdvbm5pc2NpZW50ZSBDaGF0R1BUIChpbiBxdWFsc2lhc2kgbGluZ3VhISkKLy8gQGRlc2NyaXB0aW9uOmphICAgICAg44GC44KJ44KG44KL6KiA6Kqe44Gn5YWo55+l44GuQ2hhdEdQVOOBi+OCieeEoemZkOOBruWbnuetlOOCkueUn+aIkOOBl+OBvuOBme+8gQovLyBAZGVzY3JpcHRpb246anYgICAgICBNYnVrYWsgcGFuZ2d1bmcgamF3YWJhbiBzYWthIENoYXRHUFQga2FuZyBzdXfDqW7DqWgga2Fiw6hoIChrw6luZ2luZyBiYXNhIGFwYXB1biEpCi8vIEBkZXNjcmlwdGlvbjprYSAgICAgIOGDqOGDlOGDpeGDm+GDlOGDnOGDmOGDlyDhg6Phg6Hhg5Dhg6Hhg6Dhg6Phg5rhg50g4YOe4YOQ4YOh4YOj4YOu4YOU4YOR4YOYIOGDp+GDleGDlOGDmuGDkuGDkOGDnOGDkOGDrOGDmOGDmuGDlOGDkeGDo+GDmuGDmCBDaGF0R1BULeGDk+GDkOGDnCAo4YOc4YOU4YOa4YOQIOGDlOGDnOGDkOGDluGDlCEpCi8vIEBkZXNjcmlwdGlvbjprYWIgICAgIEtrZXMtYXMgeWlkaXIgc2VnIHlpc2VtLWFzZW4gbiB0YWZyaXF0IGFyYSBkZHVubml0IENoYXRHUFQgKGRpIHRpZnJhdCBhcmEgZGR1bml0ISkKLy8gQGRlc2NyaXB0aW9uOmtrICAgICAg0JHQsNGA0LvRi9KbINGC0ZbQu9C00LUg0LHQsNGAINCx0ZbQu9Cz0LXQvSBDaGF0R1BULdC00LXQvSDRiNC10LrRgdGW0Lcg0LbQsNGD0LDQv9GC0LDRgCDQttCw0YHQsNGDICjSm9Cw0L3QtNCw0Lkg0LTQsCDRgtGW0LvQtNC1ISkKLy8gQGRlc2NyaXB0aW9uOmttICAgICAg4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4Z6F4Z6Y4Z+S4Z6b4Z6+4Z6Z4Z6Y4Z634Z6T4Z6D4Z6+4Z6J4Z6F4Z6U4Z+L4Z6W4Z64IENoYXRHUFQg4Z6K4Z+C4Z6b4Z6F4Z+C4Z6A4Z6f4Z6E4Z+S4Z6f4Z+Q4Z6Z4Z6R4Z624Z+G4Z6E4Z6i4Z6f4Z+LICjhnofhnrbhnpPhn4vhnoLhn5LhnprhnpThn4vhnpfhnrbhnp/hnrYhKQovLyBAZGVzY3JpcHRpb246a24gICAgICDgso7gsrLgs43gsrLgsrDgs4Eg4LKk4LK/4LKz4LK/4LKm4LK/4LKw4LOB4LK1IOCymuCyvuCyn+CzjeCynOCyv+CyquCyv+Cyn+Cyv+Cyr+Cyv+CyguCypiDgsoXgsqjgsoLgsqQg4LKJ4LKk4LON4LKk4LKw4LKX4LKz4LKo4LON4LKo4LOBIOCysOCymuCyv+CyuOCyvyAo4LKv4LK+4LK14LOB4LKm4LOHIOCyreCyvuCyt+CzhuCyr+CysuCzjeCysuCyvyEpCi8vIEBkZXNjcmlwdGlvbjprbyAgICAgIOyWtOuWpCDslrjslrTroZzrk6Dsp4Ag66y06raB66y07KeE7ZWcIOuLteuzgOydhCDrp4zrk6TslrTrgrTripQgQ2hhdEdQVOyeheuLiOuLpCEKLy8gQGRlc2NyaXB0aW9uOmt1ICAgICAgSmkgQ2hhdEdQVC3Dqiwga3UgaGVtw64gdGnFn3RhbiBkaXphbmUsIGJlcnNpdmEgbGkgc2VyYmF6w6puIGxpIGRvciBxZXfDriB5w6puIGhpbGJpamFydGluIChiaSBoZXJ0acWfdMOuIHppbWFuZWshKQovLyBAZGVzY3JpcHRpb246a3kgICAgICDQotKv0Lcg0LHQuNC70LjQvNC00q/SryBDaGF0R1BUINCx0L7RjtC90YfQsCDRh9GL0LPQsNGA0LzQsNC70LDRgNC00Ysg0LbQsNGB0LAKLy8gQGRlc2NyaXB0aW9uOmxhICAgICAgR2VuZXJhIGluZmluaXRhcyByZXNwb25zaW9uZXMgZGUgQ2hhdEdQVCBvbW5pc2NpbyAoaW4gcXVhbGliZXQgbGluZ3VhISkKLy8gQGRlc2NyaXB0aW9uOmxiICAgICAgR2VuZXLDqWllcnQgZW5kbG9zIMOEbnR3ZXJ0ZW4gdnVtIGFsbHfDq3NzZW5kZSBDaGF0R1BUIChvcCBqaWRkZXJlIFNwcm9vY2ghKQovLyBAZGVzY3JpcHRpb246bG8gICAgICDguqrgu4ngurLguofgupzgurvgupnguqrgurvgupTgupfgurXgu4jguqrgurLguqHgurLgupTgu4DguqXgurfguq3guoHguojgurLguoHgup7gurLguqrgurLgupfgurXgu4jguq7gurngu4nguprgurjguoHguoHgurPguqXgurHguocgQ2hhdEdQVCAo4LuD4LqZ4Lqe4Lqy4Lqq4Lqy4LuD4LqU4Luc4Lq24LuI4LqHISkKLy8gQGRlc2NyaXB0aW9uOmx0ICAgICAgU3VnZW5lcnVva2l0ZSBiZWdhbGluxK8gYXRzYWt5bcWzIGtpZWvEryBpxaEgdmlzYWkgxb5pbm9hbsSNaW8gQ2hhdEdQVCAoYmV0IGt1cmlhIGthbGJhISkKLy8gQGRlc2NyaXB0aW9uOmx2ICAgICAgxKJlbmVyxJMgbmViZWlkemFtdXMgYXRiaWzFvnUgdmFyaWFudHVzIG5vIHZpc3NhcHJhdMSrZ8SBIENoYXRHUFQgKGplYmt1csSBIHZhbG9kxIEhKQovLyBAZGVzY3JpcHRpb246bWcgICAgICBNYW5kb3phIG55IHZhbGlueSBtaWFyYWthIGFtaW4nbnkgQ2hhdEdQVCBtYWhhbGFsYSBueSB6YXZhdHJhIHJlaGV0cmEgKGFtaW4nbnkgZml0ZW55IGlyYXkga29rb2EhKQovLyBAZGVzY3JpcHRpb246bWkgICAgICBXaGFrYXDFq21hdSBpIG5nxIEgd2hha2F1dHUga29yZSBtdXR1bmdhIG1haSBpIHRlIENoYXRHUFQgbWF0YXUgaSBuZ8SBIHJlbyBrYXRvYSEKLy8gQGRlc2NyaXB0aW9uOm1rICAgICAg0JPQtdC90LXRgNC40YDQsNGY0YLQtSDQsdC10LfQsdGA0L7RmCDQvtC00LPQvtCy0L7RgNC4INC+0LQg0YHDqNC30L3QsNC10L3QsNGC0LAgQ2hhdEdQVCAo0L3QsCDQsdC40LvQviDQutC+0Zgg0ZjQsNC30LjQuiEpCi8vIEBkZXNjcmlwdGlvbjptbCAgICAgIOC0juC0qOC1jeC0qOC1huC0tOC1geC0pOC0vuC1uyDgtIXgtKjgtKjgtY3gtK/gtKjgtL7gtK8gQ2hhdEdQVCAo4LSP4LSk4LWG4LSZ4LWN4LSV4LS/4LSy4LWB4LSCIOC0reC0vuC0t+C0r+C0v+C1vSkg4LSH4LSo4LWN4LSo4LWH4LSV4LWN4LSV4LWB4LSCIOC0teC1h+C0o+C1jeC0n+C0vyDgtIXgtLXgtLjgtL7gtKjgtL/gtKrgtY3gtKrgtL/gtJXgtY3gtJXgtYHgtJUhCi8vIEBkZXNjcmlwdGlvbjptbiAgICAgINCh0q/Sr9C70LQg0q/Qu9C00YHRjdC90Y3RjdGB0Y3RjSDRhdCw0LnRgNGG0LDQsyDQsdC+0LvQvtGFIENoYXRHUFQgKNGP0LzQsNGAINGHINGF0Y3QuyDQtNGN0Y3RgCkg0LTRjdGN0YDRhdGN0Y3RgCDRj9GA0LjRhQovLyBAZGVzY3JpcHRpb246bXMgICAgICBDaXB0YSBwZWxiYWdhaSBqYXdhcGFuIGRhcmlwYWRhIENoYXRHUFQgeWFuZyB0YWh1IHNlZ2FsYS1nYWxhbnlhIChkYWxhbSBhcGEtYXBhIGJhaGFzYSEpCi8vIEBkZXNjcmlwdGlvbjptdCAgICAgIEnEocShZW5lcmEgcmlzcG9zdGkgaW5maW5pdGkgbWlsbC1DaGF0R1BUIGxpIGtvbGxoYSBqYWYgKGYneGkgbGluZ3dhISkKLy8gQGRlc2NyaXB0aW9uOm15ICAgICAg4YCh4YCs4YC44YCc4YCv4YC24YC44YCA4YCt4YCv4YCe4YCE4YC64YCb4YCt4YCv4YC44YCb4YCt4YCv4YC44YCG4YC94YCy4YCU4YCt4YCv4YCE4YC64YCe4YCK4YC64YC3IENoYXRHUFQgKOGAkOGAheGAuuGAgeGAr+GAmeGAvuGArOGAmuGAsOGAnuGAr+GAtuGAuOGAm+GAlOGAuiEpCi8vIEBkZXNjcmlwdGlvbjpuZSAgICAgIOCkuOCkrOCliC3gpJzgpY3gpJ7gpL7gpKjgpYAgQ2hhdEdQVCDgpKzgpL7gpJ8g4KSF4KSo4KSC4KSkIOCkieCkpOCljeCkpOCksOCkueCksOClgiDgpIngpKTgpY3gpKrgpKjgpY3gpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNICjgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkreCkvuCkt+CkvuCkruCkviEpCi8vIEBkZXNjcmlwdGlvbjpubCAgICAgIEdlbmVyZWVyIGVpbmRlbG96ZSBhbnR3b29yZGVuIHZhbiBhbHdldGVuZGUgQ2hhdEdQVCAoaW4gZWxrZSB0YWFsISkKLy8gQGRlc2NyaXB0aW9uOm5vICAgICAgR2VuZXJlciBlbmRlbMO4c2Ugc3ZhciBmcmEgYWxsdml0ZW5kZSBDaGF0R1BUIChww6UgaHZpbGtldCBzb20gaGVsc3Qgc3Byw6VrISkKLy8gQGRlc2NyaXB0aW9uOm55ICAgICAgR2FsaW1vdG8gbWFid2lubyBhIG10ZW5kZXJlIHpvc2l5YW5hc2l5YW5hIGt1Y2hva2VyYSBrdSBDaGF0R1BUIHdveWFua2h1bGEgem9uc2UhIChtdXlhbmtodWxpdHNhIGNoaWxpY2hvbnNlISkKLy8gQGRlc2NyaXB0aW9uOnBhICAgICAg4Ki44KitIOConOCovuCooyDgqLXgqL7gqLLgqYcgQ2hhdEdQVCDgqKTgqYvgqIIg4Kiy4Kmw4Kis4KmHIOCoieCpseCopOCosOCovuCogiDgqKjgqYLgqbAg4Kis4Kij4Ki+4KiTICjgqJXgqL/gqLjgqYcg4Ki14KmAIOCoreCovuCouOCovOCoviDgqLXgqL/gqbHgqJohKQovLyBAZGVzY3JpcHRpb246cGFwICAgICBIYXNpIHJlc3B1ZXN0YSBzaW5maW4gZGkgQ2hhdEdQVCBrdSB0dXIgc2FiaSAobmEga3VhIGlkaW9tYSEpCi8vIEBkZXNjcmlwdGlvbjpwbCAgICAgIEdlbmVydWogbmllc2tvxYRjem9uZSBvZHBvd2llZHppIG9kIHdzemVjaHdpZWR6xIVjZWdvIENoYXRHUFQgKHcgZG93b2xueW0gasSZenlrdSEpCi8vIEBkZXNjcmlwdGlvbjpwcyAgICAgINivINmH2LrZiNuMINqG2bzaqdin2YQgQ2hhdEdQVCDZhNiu2YjYpyDZhtmH2KfbjNiqINis2YjYp9io2YjZhtmHINis2Yjak9mHINqp2pPYpiAo2K8g2YfYsSDbjNmI2Ycg2pjYqNmHINqp24whKQovLyBAZGVzY3JpcHRpb246cHQgICAgICBHZXJlIHJlc3Bvc3RhcyBpbmZpbml0YXMgZG8gQ2hhdEdQVCBvbmlzY2llbnRlIChlbSBxdWFscXVlciBpZGlvbWEhKQovLyBAZGVzY3JpcHRpb246cHQtQlIgICBHZXJlIHJlc3Bvc3RhcyBpbmZpbml0YXMgZG8gQ2hhdEdQVCBvbmlzY2llbnRlIChlbSBxdWFscXVlciBpZGlvbWEhKQovLyBAZGVzY3JpcHRpb246cm4gICAgICBCYXNoYSBpbnppcmEgbmsnaXRhbmR1a2FueWUgeid1a28gQ2hhdEdQVCB1emkgKG11IHJ1cmltaSByd29zZSEpCi8vIEBkZXNjcmlwdGlvbjpybyAgICAgIEdlbmVyZWF6xIMgcsSDc3B1bnN1cmkgaW5maW5pdGUgZGUgbGEgQ2hhdEdQVCBvbW5pc2NpZW50ICjDrm4gb3JpY2UgbGltYsSDISkKLy8gQGRlc2NyaXB0aW9uOnJ1ICAgICAg0JPQtdC90LXRgNC40YDRg9C50YLQtSDQsdC10YHQutC+0L3QtdGH0L3Ri9C1INC+0YLQstC10YLRiyDQvtGCINCy0YHQtdC30L3QsNGO0YnQtdCz0L4gQ2hhdEdQVCAo0L3QsCDQu9GO0LHQvtC8INGP0LfRi9C60LUhKQovLyBAZGVzY3JpcHRpb246cncgICAgICBCYW5kYSBpbmFtYSB6J2ltaXJpbW8gaXNpZ2F5ZSB6b3NlIHondW11Y28gd2EgQ2hhdEdQVCAobXUgcnVyaW1pIHJ3b3NlISkKLy8gQGRlc2NyaXB0aW9uOnNnICAgICAgVGlhIG5nYW1hbmEgbmdhIG1iZXRlbGEgdGkgQ2hhdEdQVCB0b3p1d2EgbWl0YXlpIG1pbmdpIChwbyB3dW5kaSBuZGltaSB5byBuZ2FtYm8hKQovLyBAZGVzY3JpcHRpb246c2kgICAgICDgt4Pgt5Lgtrrgt4Xgt5Qg4Lav4LeQ4Lax4Lan4La44Lat4LeKIOC3g+C3hOC2reC3kuC2muC2tOC2reC3iuC2muC2u+C2sSDgtq3gt4Dgtq3gt4og4LeD4LeS4Lat4LeS4La64La44LeKIOC3g+C3kOC2muC3g+C3lOC2uOC3iiDgtr3gtrbgt48g4Lav4LeZ4Lax4LeK4Lax4LeP4LeA4LeWIENoYXRHUFQg4LeD4LeR4Lav4LeT4La4ICjgtpXgtrHgt5Hgtrgg4La34LeP4LeC4LeP4LeA4LeZ4Lax4LeK4La4ISkKLy8gQGRlc2NyaXB0aW9uOnNrICAgICAgR2VuZXJ1anRlIG5la29uZcSNbsOpIG9kcG92ZWRlIG9kIHbFoWV2aWV0YWrDumNlaG8gQ2hhdEdQVCAodiBha29ta2/EvnZlayBqYXp5a3UhKQovLyBAZGVzY3JpcHRpb246c2wgICAgICBHZW5lcmlyYWp0ZSBuZXNrb27EjW5lIG9kZ292b3JlIGl6IHZzZXZlZG5lZ2EgQ2hhdEdQVCAodiBrYXRlcmVtIGtvbGkgamV6aWt1ISkKLy8gQGRlc2NyaXB0aW9uOnNtICAgICAgRmFpYSBzZSBmYWlnYSB0ZWxlIGkgbGUgQ2hhdEdQVCBlc2Vlc2UgKGkgbmlzaSBnYWdhbmEhKQovLyBAZGVzY3JpcHRpb246c24gICAgICBTaW11ZHphIG1oaW5kdXJvIGR6YWthd2FuZGEga3VidmEga3VuZSBDaGF0R1BUIGljaGl3YW5pa3dhIGNoaXNhcnVkem8hIChtdW5lIHJpbXdlIG5ndXZhISkKLy8gQGRlc2NyaXB0aW9uOnNvICAgICAgS29yIHUgcWFhZG8gamF3YWFibyBrYWxhIGR1d2FuIG9vIGthIHNvbyBzYWFyIENoYXRHUFQgKGx1dXFhZCBrYSBtaWQgYWghKQovLyBAZGVzY3JpcHRpb246c3IgICAgICDQk9C10L3QtdGA0LjRiNC40YLQtSDQsdC10LfQsdGA0L7RmCDQvtC00LPQvtCy0L7RgNCwINC+0LQg0YHQstC10LzQvtGb0L3QvtCzIENoYXRHUFQgKNC90LAg0LHQuNC70L4g0LrQvtC8INGY0LXQt9C40LrRgyEpCi8vIEBkZXNjcmlwdGlvbjpzdiAgICAgIEdlbmVyZXJhIG/DpG5kbGlnYSBzdmFyIGZyw6VuIGFsbHZldGFuZGUgQ2hhdEdQVCAocMOlIHZhbGZyaXR0IHNwcsOlayEpCi8vIEBkZXNjcmlwdGlvbjpzdyAgICAgIFRvYSBtYWppYnUgeWFzaXlva3V3YSBuYSBtd2lzaG8ga3V0b2thIGt3YSBDaGF0R1BUIG13ZW55ZSBtYWFyaWZhIHlvdGUgKGthdGlrYSBsdWdoYSB5b3lvdGUhKQovLyBAZGVzY3JpcHRpb246dGEgICAgICDgroXgrqngr4jgrqTgr43grqTgr4Eg4K6k4K6V4K614K6y4K+I4K6v4K+B4K6u4K+NIOCuheCuseCuv+Cur+CuquCvjeCuquCun+CvjeCunyDgrprgr4bgrr7grqjgr43grqTgrq7grr7grqkgQ2hhdEdQVCDgrofgrrLgrr/grrDgr4Hgrqjgr43grqTgr4Eg4K6u4K+B4K6f4K6/4K614K+B4K6V4K6z4K+IIOCuieCusOCvgeCuteCuvuCuleCvjeCuleCuteCvgeCuruCvjSAo4K6O4K6o4K+N4K6kIOCuruCviuCutOCuv+Cur+Cuv+CusuCvgeCuruCvjSEpCi8vIEBkZXNjcmlwdGlvbjp0ZSAgICAgIOCwheCwqOCxjeCwqOCwv+CwguCwn+Cwv+CwqOCxgOCwleCwv+CwguCwnyDgsK7gsL7gsJ/gsLLgsYEg4LCw4LC+4LCv4LCC4LCh4LC/IENoYXRHUFQg4LCX4LGB4LCw4LC/4LCC4LCa4LC/IOCwheCwqOCxh+CwlSDgsJzgsLXgsL7gsKzgsL7gsLLgsKjgsYEg4LC44LGD4LC34LGN4LCf4LC/4LCC4LCa4LCC4LCh4LC/ICjgsI/gsKbgsYjgsKjgsL4g4LCt4LC+4LC34LCy4LGLISkKLy8gQGRlc2NyaXB0aW9uOnRnICAgICAg0rbQsNCy0L7QsdKz0L7QuCDQsdC10YHRg9C00LDQvdC90LggQ2hhdEdQVNC4INKz0LDQvNCw0LjRhNCw0pvQsNGCICjQtNCw0YAg0Y/QuiDQt9Cw0LHQvtC90Lgg0LzRg9Cw0LnRj9C90LghKQovLyBAZGVzY3JpcHRpb246dGggICAgICDguKrguKPguYnguLLguIfguITguLPguJXguK3guJrguYTguKHguYjguKrguLTguYnguJnguKrguLjguJTguIjguLLguIEgQ2hhdEdQVCDguJfguLXguYjguKPguLnguYnguJfguLjguIHguKrguLTguYjguIcgKOC5g+C4meC4oOC4suC4qeC4suC5g+C4lOC4geC5h+C5hOC4lOC5iSEpCi8vIEBkZXNjcmlwdGlvbjp0aSAgICAgIOGKreGIreGIteGJteGKlSDhiIjhiJvhi43hjKPhibUg4Yqo4YyI4Yy94Ymz4YuN4YqVIENoYXRHUFQg4Yuo4Ymw4Yqo4Yiz4Yi9IOGKoOGIteGJsOGKq+GKreGIjSDhiqDhiLXhibDhiqvhiq3hiI7hibUgKOGJoOGKpeGLjeGKkOGJtSDhiYvhipXhiYshKQovLyBAZGVzY3JpcHRpb246dGsgICAgICDFnmXDvWxlIGFubGHFn3lsw71hbiBDaGF0R1BUIChoZXIgaGlsaSDDvMOnaW4pIGFyYXN5bmRhbiBiw6TFn23DvMWIaGF0IGphd2FwbGFyIGTDtnJldAovLyBAZGVzY3JpcHRpb246dG4gICAgICBIbGVsYSB6aXRzaGEgendpbmUgendp4bmxaGlzZWxlbGEga2hhIENoYXRHUFQgdmh1ZnVkemnhubFlIChtdXZoaWxpIHdvIHZoYSB1IGl0ZSEpCi8vIEBkZXNjcmlwdGlvbjp0byAgICAgIEZha2F0b251dG9udSDKu2loZSBuZ8SBdWVrZXNpIG1laSBoZSBDaGF0R1BUIGZha2Fvbmdvb25nbyB0b2VuZ2EgKGkgaGUgbGVhIGZha2EtVG9uZ2EgaWEhKQovLyBAZGVzY3JpcHRpb246dHBpICAgICBTYW5hcGltIGhhbWFtYXNwbGVzIGxvbmcgc2F2ZSBvbHNlbSBDaGF0R1BUIGkgbWFzcGxlcyAobG9uZyB3YW5wZWxhIHRvayBwbGVzISkKLy8gQGRlc2NyaXB0aW9uOnRyICAgICAgQmlsZ2UgQ2hhdEdQVCdkZW4gc29uc3V6IGNldmFwbGFyIMO8cmV0IChoZXJoYW5naSBiaXIgZGlsZGUhKQovLyBAZGVzY3JpcHRpb246dWsgICAgICDQk9C10L3QtdGA0YPQudGC0LUg0LHQtdC30LrRltC90LXRh9C90ZYg0LLRltC00L/QvtCy0ZbQtNGWINCy0ZbQtCDRg9GB0LXQt9C90LDRjtGH0L7Qs9C+IENoYXRHUFQgKNC90LAg0LHRg9C00Ywt0Y/QutGW0Lkg0LzQvtCy0ZYhKQovLyBAZGVzY3JpcHRpb246dXIgICAgICDYs9ioINis2KfZhtmG25Ig2YjYp9mE25IgQ2hhdEdQVCDYs9uSINmE2KfZhdiq2YbYp9uB24wg2KzZiNin2KjYp9iqINm+24zYr9inINqp2LHbjNq6ICjaqdiz24wg2KjavtuMINiy2KjYp9mGINmF24zauiEpCi8vIEBkZXNjcmlwdGlvbjp1eiAgICAgIEJhcmNoYSBiaWxhZGlnYW4gQ2hhdEdQVCBkYW4gY2hla2xvdmxpIGphdm9ibGFyIG9saW5nIChoZWNoIHFhbmRheSB0aWxkYSBoYW0pIQovLyBAZGVzY3JpcHRpb246dmkgICAgICBU4bqhbyByYSB2w7Qgc+G7kSBjw6J1IHRy4bqjIGzhu51pIHThu6sgQ2hhdEdQVCB0aMO0bmcgbWluaCAoYuG6sW5nIGLhuqV0IGvhu7MgbmfDtG4gbmfhu68gbsOgbyEpCi8vIEBkZXNjcmlwdGlvbjp4aCAgICAgIEJoYWxhIGl6aW50byBlemluZ2Vrd2F6aXlvIGV6aXlpbWZpaGxvIGt1c3VrYSBrdSBDaGF0R1BUIChuZ29sd2ltaSBsd2FueWFuZXRoYSEpCi8vIEBkZXNjcmlwdGlvbjp5aSAgICAgINeT15bXqdei16DXoteo15nXmdeYINeh15DWuNejINei16DXmNek1r/Xoteo16Eg16TWv9eV158g15DWt9ec16It15LXoteV15XXmdeh158gQ2hhdEdQVCAo15DXmdefINen15nXmdefINep16TWvNeo15DWt9eaISkKLy8gQGRlc2NyaXB0aW9uOnpoICAgICAg5LuO5peg5omA5LiN55+l55qEIENoYXRHUFQg55Sf5oiQ5peg56m35peg5bC955qE562U5qGIICjnlKjku7vkvZXor63oqIAhKQovLyBAZGVzY3JpcHRpb246emgtQ04gICDku47ml6DmiYDkuI3nn6XnmoQgQ2hhdEdQVCDnlJ/miJDml6Dnqbfml6DlsL3nmoTnrZTmoYggKOeUqOS7u+S9leivreiogCEpCi8vIEBkZXNjcmlwdGlvbjp6aC1ISyAgIOW+nueEoeaJgOS4jeefpeeahCBDaGF0R1BUIOeUn+aIkOeEoeeqrueEoeeboeeahOetlOahiCAo55So5Lu75L2V6Kqe6KiAISkKLy8gQGRlc2NyaXB0aW9uOnpoLVNHICAg5LuO5peg5omA5LiN55+l55qEIENoYXRHUFQg55Sf5oiQ5peg56m35peg5bC955qE562U5qGIICjnlKjku7vkvZXor63oqIAhKQovLyBAZGVzY3JpcHRpb246emgtVFcgICDlvp7nhKHmiYDkuI3nn6XnmoQgQ2hhdEdQVCDnlJ/miJDnhKHnqq7nhKHnm6HnmoTnrZTmoYggKOeUqOS7u+S9leiqnuiogCEpCi8vIEBhdXRob3IgICAgICAgICAgICAgIEFkYW0gTHVpCi8vIEBuYW1lc3BhY2UgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hZGFtbHVpCi8vIEB2ZXJzaW9uICAgICAgICAgICAgIDIwMjUuMS4xMi4xCi8vIEBsaWNlbnNlICAgICAgICAgICAgIE1JVAovLyBAaWNvbiAgICAgICAgICAgICAgICBodHRwczovL2Fzc2V0cy5jaGF0Z3B0aW5maW5pdHkuY29tL2ltYWdlcy9pY29ucy9pbmZpbml0eS1zeW1ib2wvY2lyY2xlZC93aXRoLXJvYm90L2ljb240OC5wbmc/dj02OWU0MzRiCi8vIEBpY29uNjQgICAgICAgICAgICAgIGh0dHBzOi8vYXNzZXRzLmNoYXRncHRpbmZpbml0eS5jb20vaW1hZ2VzL2ljb25zL2luZmluaXR5LXN5bWJvbC9jaXJjbGVkL3dpdGgtcm9ib3QvaWNvbjY0LnBuZz92PTY5ZTQzNGIKLy8gQGNvbXBhdGlibGUgICAgICAgICAgY2hyb21lCi8vIEBjb21wYXRpYmxlICAgICAgICAgIGZpcmVmb3gKLy8gQGNvbXBhdGlibGUgICAgICAgICAgZWRnZQovLyBAY29tcGF0aWJsZSAgICAgICAgICBvcGVyYQovLyBAY29tcGF0aWJsZSAgICAgICAgICBicmF2ZQovLyBAY29tcGF0aWJsZSAgICAgICAgICB2aXZhbGRpCi8vIEBjb21wYXRpYmxlICAgICAgICAgIHdhdGVyZm94Ci8vIEBjb21wYXRpYmxlICAgICAgICAgIGxpYnJld29sZgovLyBAY29tcGF0aWJsZSAgICAgICAgICBnaG9zdAovLyBAY29tcGF0aWJsZSAgICAgICAgICBxcQovLyBAY29tcGF0aWJsZSAgICAgICAgICB3aGFsZQovLyBAY29tcGF0aWJsZSAgICAgICAgICBraXdpCi8vIEBtYXRjaCAgICAgICAgICAgICAgICo6Ly9jaGF0Z3B0LmNvbS8qCi8vIEBtYXRjaCAgICAgICAgICAgICAgICo6Ly9jaGF0Lm9wZW5haS5jb20vKgovLyBAY29ubmVjdCAgICAgICAgICAgICBjZG4uanNkZWxpdnIubmV0Ci8vIEBjb25uZWN0ICAgICAgICAgICAgIHVwZGF0ZS5ncmVhc3lmb3JrLm9yZwovLyBAcmVxdWlyZSAgICAgICAgICAgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BrdWRvYWkvY2hhdGdwdC5qc0AzLjUuMC9kaXN0L2NoYXRncHQubWluLmpzI3NoYTI1Ni0rQzB4NEJPRlFjMzhhWkIzcHZVQzJUSHUrWlN2dUN4UnBoR2R0UkxqQ0RnPQovLyBAcmVxdWlyZSAgICAgICAgICAgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvYWRhbWx1aS9jaGF0Z3B0LWluZmluaXR5QDdjMmI3ZDBlNGE3ZGFiMTIxYzkyNWRhN2Q4YmY5MDI0ZWEwYjViMDAvY2hyb21lL2V4dGVuc2lvbi9jb21wb25lbnRzL21vZGFscy5qcyNzaGEyNTYtZVpOT3dycHY3MkhLbm13MzJmWEFJZlFTZEI4Uy9ETitIUnlSb3F1aEc2UT0KLy8gQHJlcXVpcmUgICAgICAgICAgICAgaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2FkYW1sdWkvY2hhdGdwdC1pbmZpbml0eUA1ODhlYzkwMjAzY2Y5MzJjMDRhZjAwMTQ0NjYwZDVhOTM2MjM5ZWEzL2Nocm9tZS9leHRlbnNpb24vY29tcG9uZW50cy90b2dnbGVzLmpzI3NoYTI1Ni0wWXorVVFnc0JPNXJhUGJSQ3U4RVp3NjBjcmxtOHBWcXJuNHJuYnBnOE9ZPQovLyBAcmVxdWlyZSAgICAgICAgICAgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvYWRhbWx1aS9jaGF0Z3B0LWluZmluaXR5QGM2MzM4YTIyYjk4ZWRhODc3NDM2ZmQ2YzU5NTBhYzMxMTRhZWEyM2MvY2hyb21lL2V4dGVuc2lvbi9saWIvZG9tLmpzI3NoYTI1Ni0vUWFxenVHR0M3UHJ6alluWHRZaDQxMXJKSk9wMjdqV0xBNGF0YUthV1dZPQovLyBAcmVxdWlyZSAgICAgICAgICAgICBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvYWRhbWx1aS9jaGF0Z3B0LWluZmluaXR5QDNmYjJhMTI2MjFmMWVlOTcxZWVkOTQzOWM1ZTExZDFiZGRmZjI4ZmMvY2hyb21lL2V4dGVuc2lvbi9saWIvc2V0dGluZ3MuanMjc2hhMjU2LTN1ajF5UFhUaC96WmQ0cEh2TXpPem52TDVkcjAwZlJFYm1KZTJiNVZLa1E9Ci8vIEByZXNvdXJjZSBicnNDU1MgICAgIGh0dHBzOi8vYXNzZXRzLmFpd2ViZXh0ZW5zaW9ucy5jb20vc3R5bGVzL3Jpc2luZy1zdGFycy9kaXN0L2JsYWNrLm1pbi5jc3M/dj0zMjg5NDA0I3NoYTI1Ni1DVGo2TmRuZ3ErVHNQbE5wUTZFajM5UFFLU0RwbXh5S1VGb2hoYzkxcnVRPQovLyBAcmVzb3VyY2Ugd3JzQ1NTICAgICBodHRwczovL2Fzc2V0cy5haXdlYmV4dGVuc2lvbnMuY29tL3N0eWxlcy9yaXNpbmctc3RhcnMvZGlzdC93aGl0ZS5taW4uY3NzP3Y9MzI4OTQwNCNzaGEyNTYtdE9PSXZJZTZPNS94MkE1RTdzOWtQNCt6dzBkNEVFRGZSZ1hRTHEyS3dMcz0KLy8gQGdyYW50ICAgICAgICAgICAgICAgR01fc2V0VmFsdWUKLy8gQGdyYW50ICAgICAgICAgICAgICAgR01fZ2V0VmFsdWUKLy8gQGdyYW50ICAgICAgICAgICAgICAgR01fcmVnaXN0ZXJNZW51Q29tbWFuZAovLyBAZ3JhbnQgICAgICAgICAgICAgICBHTV91bnJlZ2lzdGVyTWVudUNvbW1hbmQKLy8gQGdyYW50ICAgICAgICAgICAgICAgR01fZ2V0UmVzb3VyY2VUZXh0Ci8vIEBncmFudCAgICAgICAgICAgICAgIEdNX3htbGh0dHBSZXF1ZXN0Ci8vIEBncmFudCAgICAgICAgICAgICAgIEdNLnhtbEh0dHBSZXF1ZXN0Ci8vIEBub2ZyYW1lcwovLyBAaG9tZXBhZ2VVUkwgICAgICAgICBodHRwczovL3d3dy5jaGF0Z3B0aW5maW5pdHkuY29tCi8vIEBzdXBwb3J0VVJMICAgICAgICAgIGh0dHBzOi8vc3VwcG9ydC5jaGF0Z3B0aW5maW5pdHkuY29tCi8vIEBjb250cmlidXRpb25VUkwgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hZGFtbHVpCi8vIEBkb3dubG9hZFVSTCBodHRwczovL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZy9zY3JpcHRzLzQ2NTA1MS9DaGF0R1BUJTIwSW5maW5pdHklMjAlRTIlODglOUUudXNlci5qcwovLyBAdXBkYXRlVVJMIGh0dHBzOi8vdXBkYXRlLmdyZWFzeWZvcmsub3JnL3NjcmlwdHMvNDY1MDUxL0NoYXRHUFQlMjBJbmZpbml0eSUyMCVFMiU4OCU5RS5tZXRhLmpzCi8vID09L1VzZXJTY3JpcHQ9PQoKLy8gRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9kb2NzLmNoYXRncHRpbmZpbml0eS5jb20KLy8gTk9URTogVGhpcyBzY3JpcHQgcmVsaWVzIG9uIHRoZSBwb3dlcmZ1bCBjaGF0Z3B0LmpzIGxpYnJhcnkgQCBodHRwczovL2NoYXRncHQuanMub3JnCi8vICDCqSAyMDIz4oCTMjAyNSBLdWRvQUkgJiBjb250cmlidXRvcnMgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLgoKKGFzeW5jICgpID0+IHsKCiAgICAvLyBJbml0IEVOViBjb250ZXh0CiAgICBjb25zdCBlbnYgPSB7CiAgICAgICAgYnJvd3NlcjogewogICAgICAgICAgICBsYW5ndWFnZTogY2hhdGdwdC5nZXRVc2VyTGFuZ3VhZ2UoKSwgaXNGRjogY2hhdGdwdC5icm93c2VyLmlzRmlyZWZveCgpLCBpc01vYmlsZTogY2hhdGdwdC5icm93c2VyLmlzTW9iaWxlKCkKICAgICAgICB9LAogICAgICAgIHNjcmlwdE1hbmFnZXI6IHsKICAgICAgICAgICAgbmFtZTogKCgpID0+IHsgdHJ5IHsgcmV0dXJuIEdNX2luZm8uc2NyaXB0SGFuZGxlciB9IGNhdGNoIChlcnIpIHsgcmV0dXJuICd1bmtub3duJyB9fSkoKSwKICAgICAgICAgICAgdmVyc2lvbjogKCgpID0+IHsgdHJ5IHsgcmV0dXJuIEdNX2luZm8udmVyc2lvbiB9IGNhdGNoIChlcnIpIHsgcmV0dXJuICd1bmtub3duJyB9fSkoKQogICAgICAgIH0sCiAgICAgICAgdWk6IHsgc2NoZW1lOiBnZXRTY2hlbWUoKSB9CiAgICB9CiAgICBlbnYuYnJvd3Nlci5pc1BvcnRyYWl0ID0gZW52LmJyb3dzZXIuaXNNb2JpbGUgJiYgKHdpbmRvdy5pbm5lcldpZHRoIDwgd2luZG93LmlubmVySGVpZ2h0KQogICAgZW52LnNjcmlwdE1hbmFnZXIuc3VwcG9ydHNUb29sdGlwcyA9IGVudi5zY3JpcHRNYW5hZ2VyLm5hbWUgPT0gJ1RhbXBlcm1vbmtleScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBwYXJzZUludChlbnYuc2NyaXB0TWFuYWdlci52ZXJzaW9uLnNwbGl0KCcuJylbMF0pID49IDUKICAgIGNvbnN0IHhociA9IHR5cGVvZiBHTSAhPSAndW5kZWZpbmVkJyAmJiBHTS54bWxIdHRwUmVxdWVzdCB8fCBHTV94bWxodHRwUmVxdWVzdAoKICAgIC8vIEluaXQgQVBQIGRhdGEKICAgIGNvbnN0IGFwcCA9IHsKICAgICAgICB2ZXJzaW9uOiBHTV9pbmZvLnNjcmlwdC52ZXJzaW9uLCBjb25maWdLZXlQcmVmaXg6ICdjaGF0R1BUaW5maW5pdHknLAogICAgICAgIGNoYXRncHRKU3ZlcjogL2NoYXRncHRcLmpzQChbXGQuXSspLy5leGVjKEdNX2luZm8uc2NyaXB0TWV0YVN0cilbMV0sIHVybHM6IHt9LAogICAgICAgIGxhdGVzdFJlc291cmNlQ29tbWl0SGFzaDogJzUzZTc1MTEnIC8vIGZvciBjYWNoZWQgYXBwLmpzb24gKyBtZXNzYWdlcy5qc29uICsgbmF2aWNvbiBpbiB0b2dnbGVzLnNpZGViYXIuaW5zZXJ0KCkKICAgIH0KICAgIGFwcC51cmxzLnJlc291cmNlSG9zdCA9IGBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvYWRhbWx1aS9jaGF0Z3B0LWluZmluaXR5QCR7YXBwLmxhdGVzdFJlc291cmNlQ29tbWl0SGFzaH1gCiAgICBjb25zdCByZW1vdGVBcHBEYXRhID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB4aHIoewogICAgICAgIG1ldGhvZDogJ0dFVCcsIHVybDogYCR7YXBwLnVybHMucmVzb3VyY2VIb3N0fS9hcHAuanNvbmAsCiAgICAgICAgb25sb2FkOiByZXNwID0+IHJlc29sdmUoSlNPTi5wYXJzZShyZXNwLnJlc3BvbnNlVGV4dCkpCiAgICB9KSkKICAgIE9iamVjdC5hc3NpZ24oYXBwLCB7IC4uLnJlbW90ZUFwcERhdGEsIHVybHM6IHsgLi4uYXBwLnVybHMsIC4uLnJlbW90ZUFwcERhdGEudXJscyB9fSkKICAgIGFwcC51cmxzLnVwZGF0ZSA9IGFwcC51cmxzLmdyZWFzeUZvcmsucmVwbGFjZSgnaHR0cHM6Ly8nLCAnaHR0cHM6Ly91cGRhdGUuJykKICAgICAgICAucmVwbGFjZSgvKFxkKyktPyhbYS16LV0qKSQvaSwgKF8sIGlkLCBuYW1lKSA9PiBgJHtpZH0vJHsgbmFtZSB8fCAnc2NyaXB0JyB9Lm1ldGEuanNgKQogICAgYXBwLm1zZ3MgPSB7CiAgICAgICAgYXBwTmFtZTogYXBwLm5hbWUsCiAgICAgICAgYXBwQXV0aG9yOiBhcHAuYXV0aG9yLm5hbWUsCiAgICAgICAgYXBwRGVzYzogJ0dlbmVyYXRlIGVuZGxlc3MgYW5zd2VycyBmcm9tIGFsbC1rbm93aW5nIENoYXRHUFQgKGluIGFueSBsYW5ndWFnZSEpJywKICAgICAgICBtZW51TGFiZWxfaW5maW5pdHlNb2RlOiAnSW5maW5pdHkgTW9kZScsCiAgICAgICAgbWVudUxhYmVsX2F1dG9TdGFydDogJ0F1dG8tU3RhcnQnLAogICAgICAgIG1lbnVMYWJlbF90b2dnbGVWaXM6ICdUb2dnbGUgVmlzaWJpbGl0eScsCiAgICAgICAgbWVudUxhYmVsX2F1dG9TY3JvbGw6ICdBdXRvLVNjcm9sbCcsCiAgICAgICAgbWVudUxhYmVsX3JlcGx5TGFuZzogJ1JlcGx5IExhbmd1YWdlJywKICAgICAgICBtZW51TGFiZWxfcmVwbHlUb3BpYzogJ1JlcGx5IFRvcGljJywKICAgICAgICBtZW51TGFiZWxfYWxsOiAnQUxMJywKICAgICAgICBtZW51TGFiZWxfcmVwbHlJbnQ6ICdSZXBseSBJbnRlcnZhbCcsCiAgICAgICAgbWVudUxhYmVsX2Fib3V0OiAnQWJvdXQnLAogICAgICAgIG1lbnVMYWJlbF9kb25hdGU6ICdQbGVhc2Ugc2VuZCBhIGRvbmF0aW9uJywKICAgICAgICBtZW51TGFiZWxfZGlzYWJsZWQ6ICdEaXNhYmxlZCAoZXh0ZW5zaW9uIGluc3RhbGxlZCknLAogICAgICAgIGFib3V0X2F1dGhvcjogJ0F1dGhvcicsCiAgICAgICAgYWJvdXRfYW5kOiAnJicsCiAgICAgICAgYWJvdXRfY29udHJpYnV0b3JzOiAnY29udHJpYnV0b3JzJywKICAgICAgICBhYm91dF92ZXJzaW9uOiAnVmVyc2lvbicsCiAgICAgICAgYWJvdXRfcG93ZXJlZEJ5OiAnUG93ZXJlZCBieScsCiAgICAgICAgYWJvdXRfb3BlblNvdXJjZUNvZGU6ICdPcGVuIHNvdXJjZSBjb2RlJywKICAgICAgICBwcm9tcHRfdXBkYXRlUmVwbHlMYW5nOiAnVXBkYXRlIHJlcGx5IGxhbmd1YWdlJywKICAgICAgICBwcm9tcHRfdXBkYXRlUmVwbHlUb3BpYzogJ1VwZGF0ZSByZXBseSB0b3BpYycsCiAgICAgICAgcHJvbXB0X29yRW50ZXI6ICdvciBlbnRlcicsCiAgICAgICAgcHJvbXB0X3VwZGF0ZVJlcGx5SW50OiAnVXBkYXRlIHJlcGx5IGludGVydmFsIChtaW5pbXVtIDUgc2VjcyknLAogICAgICAgIGhlbHB0aXBfYXV0b1N0YXJ0OiAnQXV0b21hdGljYWxseSBzdGFydCBJbmZpbml0eSBNb2RlIHdoZW4gdmlzaXRpbmcgY2hhdGdwdC5jb20nLAogICAgICAgIGhlbHB0aXBfdG9nZ2xlVmlzOiAnU2hvdyBJbmZpbml0eSBNb2RlIHRvZ2dsZSBpbiBzaWRlYmFyJywKICAgICAgICBoZWxwdGlwX2F1dG9TY3JvbGw6ICdBdXRvbWF0aWNhbGx5IHNjcm9sbCB0byBib3R0b20gYXMgcmVwbGllcyBhcmUgZ2VuZXJhdGluZycsCiAgICAgICAgYWxlcnRfcmVwbHlMYW5nVXBkYXRlZDogJ0xhbmd1YWdlIHVwZGF0ZWQnLAogICAgICAgIGFsZXJ0X3dpbGxSZXBseUluOiAnd2lsbCByZXBseSBpbicsCiAgICAgICAgYWxlcnRfeW91clN5c0xhbmc6ICd5b3VyIHN5c3RlbSBsYW5ndWFnZScsCiAgICAgICAgYWxlcnRfcmVwbHlUb3BpY1VwZGF0ZWQ6ICdUb3BpYyB1cGRhdGVkJywKICAgICAgICBhbGVydF93aWxsQW5zd2VyOiAnd2lsbCBhbnN3ZXIgcXVlc3Rpb25zJywKICAgICAgICBhbGVydF9vblRvcGljT2Y6ICdvbiB0aGUgdG9waWMgb2YnLAogICAgICAgIGFsZXJ0X29uQWxsVG9waWNzOiAnb24gQUxMIHRvcGljcycsCiAgICAgICAgYWxlcnRfcmVwbHlJbnRVcGRhdGVkOiAnSW50ZXJ2YWwgdXBkYXRlZCcsCiAgICAgICAgYWxlcnRfd2lsbFJlcGx5RXZlcnk6ICd3aWxsIHJlcGx5IGV2ZXJ5JywKICAgICAgICBhbGVydF9jaG9vc2VQbGF0Zm9ybTogJ0Nob29zZSBhIHBsYXRmb3JtJywKICAgICAgICBhbGVydF91cGRhdGVBdmFpbDogJ1VwZGF0ZSBhdmFpbGFibGUnLAogICAgICAgIGFsZXJ0X25ld2VyVmVyOiAnQW4gdXBkYXRlIHRvJywKICAgICAgICBhbGVydF9pc0F2YWlsOiAnaXMgYXZhaWxhYmxlJywKICAgICAgICBhbGVydF91cFRvRGF0ZTogJ1VwLXRvLWRhdGUnLAogICAgICAgIGFsZXJ0X2lzVXBUb0RhdGU6ICdpcyB1cC10by1kYXRlJywKICAgICAgICBhbGVydF9zaG93WW91clN1cHBvcnQ6ICdTaG93IHlvdXIgc3VwcG9ydCcsCiAgICAgICAgYWxlcnRfaXNPU1M6ICdpcyBvcGVuLXNvdXJjZSBzb2Z0d2FyZSBidWlsdCAmIG1haW50YWluZWQgZm9yIGZyZWUgdGhyb3VnaCAxMDAlIHZvbHVudGVlciBlZmZvcnRzJywKICAgICAgICBhbGVydF9kZXNwaXRlQWZmbGljdGlvbjogJ0Rlc3BpdGUgYmVpbmcgc2V2ZXJlbHkgYWZmbGljdGVkIGJ5JywKICAgICAgICBhbGVydF9sb25nQ09WSUQ6ICdsb25nIENPVklEJywKICAgICAgICBhbGVydF9zaW5jZTIwMjA6ICdzaW5jZSAyMDIwJywKICAgICAgICBhbGVydF9ieURvbmF0aW5nUmVzdWx0czogJ2J5IGRvbmF0aW5nLCB5b3UgaGVscCBtZSB0byBjb250aW51ZSBpbXByb3ZpbmcsIGZpeGluZyBidWdzLCBhZGRpbmcgbmV3IGZlYXR1cmVzLCBhbmQgbWFraW5nIHRoZSBzb2Z0d2FyZSBldmVuIGJldHRlcicsCiAgICAgICAgYWxlcnRfeW91ckNvbnRyaWI6ICdZb3VyIGNvbnRyaWJ1dGlvbicsCiAgICAgICAgYWxlcnRfbm9NYXR0ZXJTaXplOiAnbm8gbWF0dGVyIHRoZSBzaXplJywKICAgICAgICBhbGVydF9kaXJlY3RseVN1cHBvcnRzOiAnZGlyZWN0bHkgc3VwcG9ydHMgbXkgdW5wYWlkIGVmZm9ydHMgdG8gZW5zdXJlIHRoaXMgcHJvamVjdCByZW1haW5zIGZyZWUgYW5kIG9wZW4gZm9yIGFsbCB0byB1c2UnLAogICAgICAgIGFsZXJ0X3R5Rm9yU3VwcG9ydDogJ1RoYW5rIHlvdSBmb3IgeW91ciBzdXBwb3J0JywKICAgICAgICBidG5MYWJlbF9tb3JlQUlleHRlbnNpb25zOiAnTW9yZSBBSSBFeHRlbnNpb25zJywKICAgICAgICBidG5MYWJlbF9yYXRlVXM6ICdSYXRlIFVzJywKICAgICAgICBidG5MYWJlbF9nZXRTdXBwb3J0OiAnR2V0IFN1cHBvcnQnLAogICAgICAgIGJ0bkxhYmVsX2NoZWNrRm9yVXBkYXRlczogJ0NoZWNrIGZvciBVcGRhdGVzJywKICAgICAgICBidG5MYWJlbF91cGRhdGU6ICdVcGRhdGUnLAogICAgICAgIGJ0bkxhYmVsX2Rpc21pc3M6ICdEaXNtaXNzJywKICAgICAgICBsaW5rX3ZpZXdDaGFuZ2VzOiAnVmlldyBjaGFuZ2VzJywKICAgICAgICB1bml0X3NlY29uZHM6ICdzZWNvbmRzJywKICAgICAgICBzdGF0ZV9lbmFibGVkOiAnZW5hYmxlZCcsCiAgICAgICAgc3RhdGVfZGlzYWJsZWQ6ICdkaXNhYmxlZCcsCiAgICAgICAgc3RhdGVfb246ICdvbicsCiAgICAgICAgc3RhdGVfb2ZmOiAnb2ZmJwogICAgfQoKICAgIC8vIExPQ0FMSVpFIGFwcC5tc2dzIGZvciBub24tRW5nbGlzaCB1c2VycwogICAgaWYgKCFlbnYuYnJvd3Nlci5sYW5ndWFnZS5zdGFydHNXaXRoKCdlbicpKSB7CiAgICAgICAgY29uc3QgbG9jYWxpemVkTXNncyA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewogICAgICAgICAgICBjb25zdCBtc2dIb3N0RGlyID0gYXBwLnVybHMucmVzb3VyY2VIb3N0ICsgJy9jaHJvbWUvZXh0ZW5zaW9uL19sb2NhbGVzLycsCiAgICAgICAgICAgICAgICAgIG1zZ0xvY2FsZURpciA9ICggZW52LmJyb3dzZXIubGFuZ3VhZ2UgPyBlbnYuYnJvd3Nlci5sYW5ndWFnZS5yZXBsYWNlKCctJywgJ18nKSA6ICdlbicgKSArICcvJwogICAgICAgICAgICBsZXQgbXNnSHJlZiA9IG1zZ0hvc3REaXIgKyBtc2dMb2NhbGVEaXIgKyAnbWVzc2FnZXMuanNvbicsIG1zZ1hIUnRyaWVzID0gMAogICAgICAgICAgICBmdW5jdGlvbiBmZXRjaE1zZ3MoKSB7IHhocih7IG1ldGhvZDogJ0dFVCcsIHVybDogbXNnSHJlZiwgb25sb2FkOiBoYW5kbGVNc2dzIH0pfQogICAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVNc2dzKHJlc3ApIHsKICAgICAgICAgICAgICAgIHRyeSB7IC8vIHRvIHJldHVybiBsb2NhbGl6ZWQgbWVzc2FnZXMuanNvbgogICAgICAgICAgICAgICAgICAgIGNvbnN0IG1zZ3MgPSBKU09OLnBhcnNlKHJlc3AucmVzcG9uc2VUZXh0KSwgZmxhdE1zZ3MgPSB7fQogICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG1zZ3MpICAvLyByZW1vdmUgbmVlZCB0byByZWYgbmVzdGVkIGtleXMKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBtc2dzW2tleV0gPT0gJ29iamVjdCcgJiYgJ21lc3NhZ2UnIGluIG1zZ3Nba2V5XSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRNc2dzW2tleV0gPSBtc2dzW2tleV0ubWVzc2FnZQogICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmxhdE1zZ3MpCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsgLy8gaWYgYmFkIHJlc3BvbnNlCiAgICAgICAgICAgICAgICAgICAgbXNnWEhSdHJpZXMrKyA7IGlmIChtc2dYSFJ0cmllcyA9PSAzKSByZXR1cm4gcmVzb2x2ZSh7fSkgLy8gdHJ5IG9yaWdpbmFsL3JlZ2lvbi1zdHJpcHBlZC9FTiBvbmx5CiAgICAgICAgICAgICAgICAgICAgbXNnSHJlZiA9IGVudi5icm93c2VyLmxhbmd1YWdlLmluY2x1ZGVzKCctJykgJiYgbXNnWEhSdHJpZXMgPT0gMSA/IC8vIGlmIHJlZ2lvbmFsIGxhbmcgb24gMXN0IHRyeS4uLgogICAgICAgICAgICAgICAgICAgICAgICBtc2dIcmVmLnJlcGxhY2UoLyhbXl9dK19bXl9dKylfW14vXSooXC8uKikvLCAnJDEkMicpIC8vIC4uLnN0cmlwIHJlZ2lvbiBiZWZvcmUgcmV0cnlpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKCBtc2dIb3N0RGlyICsgJ2VuL21lc3NhZ2VzLmpzb24nICkgLy8gZWxzZSB1c2UgZGVmYXVsdCBFbmdsaXNoIG1lc3NhZ2VzCiAgICAgICAgICAgICAgICAgICAgZmV0Y2hNc2dzKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmZXRjaE1zZ3MoKQogICAgICAgIH0pCiAgICAgICAgT2JqZWN0LmFzc2lnbihhcHAubXNncywgbG9jYWxpemVkTXNncykKICAgIH0KCiAgICAvLyBFeHBvcnQgREVQRU5ERU5DSUVTIHRvIGltcG9ydGVkIHJlc291cmNlcwogICAgZG9tLmltcG9ydHMuaW1wb3J0KHsgZW52IH0pIC8vIGZvciBlbnYudWkuc2NoZW1lCiAgICBtb2RhbHMuaW1wb3J0cy5pbXBvcnQoeyBhcHAsIGVudiwgdXBkYXRlQ2hlY2sgfSkgLy8gZm9yIGFwcCBkYXRhICsgZW52LnVpLnNjaGVtZSArIG1vZGFscy5hYm91dAogICAgc2V0dGluZ3MuaW1wb3J0cy5pbXBvcnQoeyBhcHAgfSkgLy8gZm9yIGFwcC5tc2dzICsgYXBwLmNvbmZpZ0tleVByZWZpeCByZWZzCgogICAgLy8gSW5pdCBTRVRUSU5HUwogICAgc2V0dGluZ3MubG9hZChPYmplY3Qua2V5cyhzZXR0aW5ncy5jb250cm9scykuZmlsdGVyKGtleSA9PiBrZXkgIT0gJ2luZmluaXR5TW9kZScpKSAvLyBleGNsdWRlIGluZmluaXR5TW9kZS4uLgogICAgc2V0dGluZ3Muc2F2ZSgnaW5maW5pdHlNb2RlJywgZmFsc2UpIC8vIC4uLnRvIGFsd2F5cyBpbml0IGFzIGZhbHNlCiAgICBpZiAoIWNvbmZpZy5yZXBseUxhbmd1YWdlKSBzZXR0aW5ncy5zYXZlKCdyZXBseUxhbmd1YWdlJywgZW52LmJyb3dzZXIubGFuZ3VhZ2UpIC8vIGluaXQgcmVwbHkgbGFuZ3VhZ2UgaWYgdW5zZXQKICAgIGlmICghY29uZmlnLnJlcGx5VG9waWMpIHNldHRpbmdzLnNhdmUoJ3JlcGx5VG9waWMnLCBhcHAubXNncy5tZW51TGFiZWxfYWxsKSAvLyBpbml0IHJlcGx5IHRvcGljIGlmIHVuc2V0CiAgICBpZiAoIWNvbmZpZy5yZXBseUludGVydmFsKSBzZXR0aW5ncy5zYXZlKCdyZXBseUludGVydmFsJywgNykgLy8gaW5pdCByZWZyZXNoIGludGVydmFsIHRvIDcgc2VjcyBpZiB1bnNldAoKICAgIC8vIERlZmluZSBNRU5VIGZ1bmN0aW9ucwoKICAgIGNvbnN0IG1lbnUgPSB7CiAgICAgICAgaWRzOiBbXSwgc3RhdGU6IHsKICAgICAgICAgICAgc3ltYm9sczogWyfinYwnLCAn4pyU77iPJ10sIHNlcGFyYXRvcjogZW52LnNjcmlwdE1hbmFnZXIubmFtZSA9PSAnVGFtcGVybW9ua2V5JyA/ICcg4oCUICcgOiAnOiAnLAogICAgICAgICAgICB3b3JkczogW2FwcC5tc2dzLnN0YXRlX29mZi50b1VwcGVyQ2FzZSgpLCBhcHAubXNncy5zdGF0ZV9vbi50b1VwcGVyQ2FzZSgpXQogICAgICAgIH0sCgogICAgICAgIHJlZ2lzdGVyKCkgewoKICAgICAgICAgICAgLy8gU2hvdyAiRGlzYWJsZWQgKGV4dGVuc2lvbiBpbnN0YWxsZWQpIgogICAgICAgICAgICBpZiAoZW52LmV4dGVuc2lvbkluc3RhbGxlZCkKICAgICAgICAgICAgICAgIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQoYCR7bWVudS5zdGF0ZS5zeW1ib2xzWzBdfSAke2FwcC5tc2dzLm1lbnVMYWJlbF9kaXNhYmxlZH1gLAogICAgICAgICAgICAgICAgICAgICgpID0+IG1vZGFscy5vcGVuKCdhYm91dCcpLCBlbnYuc2NyaXB0TWFuYWdlci5zdXBwb3J0c1Rvb2x0aXBzID8geyB0aXRsZTogJyAnIH0gOiB1bmRlZmluZWQgKQoKICAgICAgICAgICAgLy8gLi4ub3IgYWRkIHNldHRpbmdzIGVudHJpZXMKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBjb25zdCByZV9hbGwgPSBuZXcgUmVnRXhwKGBeKCR7YXBwLm1zZ3MubWVudUxhYmVsX2FsbH18YWxsfGFueXxldmVyeSkkYCwgJ2knKQoKICAgICAgICAgICAgICAgIC8vIEFkZCBzZXR0aW5nIGVudHJpZXMKICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHNldHRpbmdzLmNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZ0lzRW5hYmxlZCA9IGNvbmZpZ1trZXldIF4gL2Rpc2FibGVkfGhpZGRlbi9pLnRlc3Qoa2V5KQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbnVMYWJlbCA9IGAkeyBzZXR0aW5ncy5jb250cm9sc1trZXldLnN5bWJvbCB8fCBtZW51LnN0YXRlLnN5bWJvbHNbK3NldHRpbmdJc0VuYWJsZWRdIH0gYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNldHRpbmdzLmNvbnRyb2xzW2tleV0ubGFiZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoIHNldHRpbmdzLmNvbnRyb2xzW2tleV0udHlwZSA9PSAndG9nZ2xlJyA/IG1lbnUuc3RhdGUuc2VwYXJhdG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtZW51LnN0YXRlLndvcmRzWytzZXR0aW5nSXNFbmFibGVkXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYOKAlCAke3NldHRpbmdzLmNvbnRyb2xzW2tleV0uc3RhdHVzfWAgKQogICAgICAgICAgICAgICAgICAgIG1lbnUuaWRzLnB1c2goR01fcmVnaXN0ZXJNZW51Q29tbWFuZChtZW51TGFiZWwsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzLmNvbnRyb2xzW2tleV0udHlwZSA9PSAndG9nZ2xlJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3Muc2F2ZShrZXksICFjb25maWdba2V5XSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeShgJHtzZXR0aW5ncy5jb250cm9sc1trZXldLmxhYmVsfTogJHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51LnN0YXRlLndvcmRzWysoL2Rpc2FibGVkfGhpZGRlbi9pLnRlc3Qoa2V5KSBeIGNvbmZpZ1trZXldKV19YCkKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT0gJ3JlcGx5TGFuZ3VhZ2UnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXBseUxhbmcgPSBwcm9tcHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2FwcC5tc2dzLnByb21wdF91cGRhdGVSZXBseUxhbmd9OmAsIGNvbmZpZy5yZXBseUxhbmd1YWdlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBseUxhbmcgPT0gbnVsbCkgYnJlYWsgLy8gdXNlciBjYW5jZWxsZWQgc28gZG8gbm90aGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCEvXGQvLnRlc3QocmVwbHlMYW5nKSkgeyAvLyB2YWxpZCByZXBseSBsYW5ndWFnZSBzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHlMYW5nID0gKCAvLyBhdXRvLWNhc2UgZm9yIG1lbnUvYWxlcnQgYWVzdGhldGljcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHlMYW5nLmxlbmd0aCA8IDQgfHwgcmVwbHlMYW5nLmluY2x1ZGVzKCctJykgPyByZXBseUxhbmcudG9VcHBlckNhc2UoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVwbHlMYW5nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcmVwbHlMYW5nLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5zYXZlKCdyZXBseUxhbmd1YWdlJywgcmVwbHlMYW5nIHx8IGVudi5icm93c2VyLmxhbmd1YWdlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbHMuYWxlcnQoKCBhcHAubXNncy5hbGVydF9yZXBseUxhbmdVcGRhdGVkICkgKyAnIScsIC8vIHRpdGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGFwcC5tc2dzLmFwcE5hbWUgKSArICcgJyAvLyBtc2cKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICggYXBwLm1zZ3MuYWxlcnRfd2lsbFJlcGx5SW4gKSArICcgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKCByZXBseUxhbmcgfHwgYXBwLm1zZ3MuYWxlcnRfeW91clN5c0xhbmcpICsgJy4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICdyZXBseVRvcGljJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcGx5VG9waWMgPSBwcm9tcHQoKCBhcHAubXNncy5wcm9tcHRfdXBkYXRlUmVwbHlUb3BpYyApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnICgnICsgKCBhcHAubXNncy5wcm9tcHRfb3JFbnRlciApICsgJyBcJ0FMTFwnKTonLCBjb25maWcucmVwbHlUb3BpYykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBseVRvcGljICE9IG51bGwpIHsgLy8gdXNlciBkaWRuJ3QgY2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHlUb3BpYyA9IHRvVGl0bGVDYXNlKHJlcGx5VG9waWMudG9TdHJpbmcoKSkgLy8gZm9yIG1lbnUvYWxlcnQgYWVzdGhldGljcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLnNhdmUoJ3JlcGx5VG9waWMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcmVwbHlUb3BpYyB8fCByZV9hbGwudGVzdChyZXBseVRvcGljKSA/IGFwcC5tc2dzLm1lbnVMYWJlbF9hbGwgOiByZXBseVRvcGljKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFscy5hbGVydChgJHthcHAubXNncy5hbGVydF9yZXBseVRvcGljVXBkYXRlZH0hYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7YXBwLm1zZ3MuYXBwTmFtZX0gJHthcHAubXNncy5hbGVydF93aWxsQW5zd2VyfSBgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICggIXJlcGx5VG9waWMgfHwgcmVfYWxsLnRlc3QocmVwbHlUb3BpYykgPyBhcHAubXNncy5hbGVydF9vbkFsbFRvcGljcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYCR7YXBwLm1zZ3MuYWxlcnRfb25Ub3BpY09mfSAke3JlcGx5VG9waWN9YCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICchJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT0gJ3JlcGx5SW50ZXJ2YWwnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGx5SW50ZXJ2YWwgPSBwcm9tcHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2FwcC5tc2dzLnByb21wdF91cGRhdGVSZXBseUludH06YCwgY29uZmlnLnJlcGx5SW50ZXJ2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGx5SW50ZXJ2YWwgPT0gbnVsbCkgYnJlYWsgLy8gdXNlciBjYW5jZWxsZWQgc28gZG8gbm90aGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc05hTihwYXJzZUludChyZXBseUludGVydmFsLCAxMCkpICYmIHBhcnNlSW50KHJlcGx5SW50ZXJ2YWwsIDEwKSA+IDQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3Muc2F2ZSgncmVwbHlJbnRlcnZhbCcsIHBhcnNlSW50KHJlcGx5SW50ZXJ2YWwsIDEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxzLmFsZXJ0KCggYXBwLm1zZ3MuYWxlcnRfcmVwbHlJbnRVcGRhdGVkICkgKyAnIScsIC8vIHRpdGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGFwcC5tc2dzLmFwcE5hbWUgKSArICcgJyAvLyBtc2cKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICggYXBwLm1zZ3MuYWxlcnRfd2lsbFJlcGx5RXZlcnkgKSArICcgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgcmVwbHlJbnRlcnZhbCArICcgJyArICggYXBwLm1zZ3MudW5pdF9zZWNvbmRzICkgKyAnLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBzeW5jQ29uZmlnVG9VSSh7IHVwZGF0ZWRLZXk6IGtleSB9KQogICAgICAgICAgICAgICAgICAgIH0sIGVudi5zY3JpcHRNYW5hZ2VyLnN1cHBvcnRzVG9vbHRpcHMgPyB7IHRpdGxlOiBzZXR0aW5ncy5jb250cm9sc1trZXldLmhlbHB0aXAgfHwgJyAnIH0gOiB1bmRlZmluZWQpKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gQWRkIEFib3V0L0RvbmF0ZSBlbnRyaWVzCiAgICAgICAgICAgIFsnYWJvdXQnLCAnZG9uYXRlJ10uZm9yRWFjaChlbnRyeVR5cGUgPT4gewogICAgICAgICAgICAgICAgaWYgKGVudHJ5VHlwZSA9PT0gJ2RvbmF0ZScgJiYgZW52LmV4dGVuc2lvbkluc3RhbGxlZCkgcmV0dXJuCiAgICAgICAgICAgICAgICBtZW51Lmlkcy5wdXNoKEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQoCiAgICAgICAgICAgICAgICAgICAgYCR7IGVudHJ5VHlwZSA9PSAnYWJvdXQnID8gJ/CfkqEnIDogJ/CfkpYnIH1gCiAgICAgICAgICAgICAgICAgICAgICAgICsgYCAke2FwcC5tc2dzW2BtZW51TGFiZWxfJHtlbnRyeVR5cGV9YF19ICR7IGVudHJ5VHlwZSA9PSAnYWJvdXQnID8gYXBwLm1zZ3MuYXBwTmFtZSA6ICcnIH1gLAogICAgICAgICAgICAgICAgICAgICgpID0+IG1vZGFscy5vcGVuKGVudHJ5VHlwZSksIGVudi5zY3JpcHRNYW5hZ2VyLnN1cHBvcnRzVG9vbHRpcHMgPyB7IHRpdGxlOiAnICcgfSA6IHVuZGVmaW5lZAogICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgfSkKICAgICAgICB9LAoKICAgICAgICByZWZyZXNoKCkgewogICAgICAgICAgICBpZiAodHlwZW9mIEdNX3VucmVnaXN0ZXJNZW51Q29tbWFuZCA9PSAndW5kZWZpbmVkJykgcmV0dXJuCiAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgbWVudS5pZHMpIHsgR01fdW5yZWdpc3Rlck1lbnVDb21tYW5kKGlkKSB9IG1lbnUucmVnaXN0ZXIoKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVDaGVjaygpIHsKICAgICAgICB4aHIoewogICAgICAgICAgICBtZXRob2Q6ICdHRVQnLCB1cmw6IGFwcC51cmxzLnVwZGF0ZSArICc/dD0nICsgRGF0ZS5ub3coKSwKICAgICAgICAgICAgaGVhZGVyczogeyAnQ2FjaGUtQ29udHJvbCc6ICduby1jYWNoZScgfSwKICAgICAgICAgICAgb25sb2FkOiByZXNwID0+IHsKCiAgICAgICAgICAgICAgICAvLyBDb21wYXJlIHZlcnNpb25zLCBhbGVydCBpZiB1cGRhdGUgZm91bmQKICAgICAgICAgICAgICAgIGFwcC5sYXRlc3RWZXIgPSAvQHZlcnNpb24gKyguKikvLmV4ZWMocmVzcC5yZXNwb25zZVRleHQpPy5bMV0KICAgICAgICAgICAgICAgIGlmIChhcHAubGF0ZXN0VmVyKSBmb3IgKGxldCBpID0gMCA7IGkgPCA0IDsgaSsrKSB7IC8vIGxvb3AgdGhydSBzdWJ2ZXIncwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdWJWZXIgPSBwYXJzZUludChhcHAudmVyc2lvbi5zcGxpdCgnLicpW2ldLCAxMCkgfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlc3RTdWJWZXIgPSBwYXJzZUludChhcHAubGF0ZXN0VmVyLnNwbGl0KCcuJylbaV0sIDEwKSB8fCAwCiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTdWJWZXIgPiBsYXRlc3RTdWJWZXIpIGJyZWFrIC8vIG91dCBvZiBjb21wYXJpc29uIHNpbmNlIG5vdCBvdXRkYXRlZAogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGxhdGVzdFN1YlZlciA+IGN1cnJlbnRTdWJWZXIpIC8vIGlmIG91dGRhdGVkCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2RhbHMub3BlbigndXBkYXRlJywgJ2F2YWlsYWJsZScpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gQWxlcnQgdG8gbm8gdXBkYXRlIGZvdW5kLCBuYXYgYmFjayB0byBBYm91dAogICAgICAgICAgICAgICAgbW9kYWxzLm9wZW4oJ3VwZGF0ZScsICd1bmF2YWlsYWJsZScpCiAgICAgICAgfX0pCiAgICB9CgogICAgZnVuY3Rpb24gdG9UaXRsZUNhc2Uoc3RyKSB7CiAgICAgICAgaWYgKCFzdHIpIHJldHVybiAnJwogICAgICAgIGNvbnN0IHdvcmRzID0gc3RyLnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKQogICAgICAgIGZvciAobGV0IGkgPSAwIDsgaSA8IHdvcmRzLmxlbmd0aCA7IGkrKykgLy8gZm9yIGVhY2ggd29yZAogICAgICAgICAgICB3b3Jkc1tpXSA9IHdvcmRzW2ldWzBdLnRvVXBwZXJDYXNlKCkgKyB3b3Jkc1tpXS5zbGljZSgxKSAvLyB0aXRsZS1jYXNlIGl0CiAgICAgICAgcmV0dXJuIHdvcmRzLmpvaW4oJyAnKSAvLyBqb2luJ2VtIGJhY2sgdG9nZXRoZXIKICAgIH0KCiAgICAvLyBEZWZpbmUgRkVFREJBQ0sgZnVuY3Rpb25zCgogICAgZnVuY3Rpb24gbm90aWZ5KG1zZywgcG9zID0gJycsIG5vdGlmRHVyYXRpb24gPSAnJywgc2hhZG93ID0gJycpIHsKCiAgICAgICAgLy8gU3RyaXAgc3RhdGUgd29yZCB0byBhcHBlbmQgY29sb3JlZCBvbmUgbGF0ZXIKICAgICAgICBjb25zdCBmb3VuZFN0YXRlID0gbWVudS5zdGF0ZS53b3Jkcy5maW5kKHdvcmQgPT4gbXNnLmluY2x1ZGVzKHdvcmQpKQogICAgICAgIGlmIChmb3VuZFN0YXRlKSBtc2cgPSBtc2cucmVwbGFjZShmb3VuZFN0YXRlLCAnJykKCiAgICAgICAgLy8gU2hvdyBub3RpZmljYXRpb24KICAgICAgICBjaGF0Z3B0Lm5vdGlmeShgJHthcHAuc3ltYm9sfSAke21zZ31gLCBwb3MsIG5vdGlmRHVyYXRpb24sIHNoYWRvdyB8fCBlbnYudWkuc2NoZW1lID09ICdkYXJrJyA/ICcnIDogJ3NoYWRvdycpCiAgICAgICAgY29uc3Qgbm90aWYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY2hhdGdwdC1ub3RpZjpsYXN0LWNoaWxkJykKCiAgICAgICAgLy8gQXBwZW5kIHN0eWxlZCBzdGF0ZSB3b3JkCiAgICAgICAgaWYgKGZvdW5kU3RhdGUpIHsKICAgICAgICAgICAgY29uc3Qgc3R5bGVkU3RhdGVTcGFuID0gZG9tLmNyZWF0ZS5lbGVtKCdzcGFuJykKICAgICAgICAgICAgc3R5bGVkU3RhdGVTcGFuLnN0eWxlLmNzc1RleHQgPSBgY29sb3I6ICR7CiAgICAgICAgICAgICAgICBmb3VuZFN0YXRlID09IG1lbnUuc3RhdGUud29yZHNbMF0gPyAnI2VmNDg0OCA7IHRleHQtc2hhZG93OiByZ2JhKDI1NSwxNjksMjI1LDAuNDQpIDJweCAxcHggNXB4JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyM1Y2VmNDggOyB0ZXh0LXNoYWRvdzogcmdiYSgyNTUsMjUwLDE2OSwwLjM4KSAycHggMXB4IDVweCcgfWAKICAgICAgICAgICAgc3R5bGVkU3RhdGVTcGFuLmFwcGVuZChmb3VuZFN0YXRlKSA7IG5vdGlmLmFwcGVuZChzdHlsZWRTdGF0ZVNwYW4pCiAgICAgICAgfQogICAgfQoKICAgIC8vIERlZmluZSBVSSBmdW5jdGlvbnMKCiAgICBmdW5jdGlvbiBzeW5jQ29uZmlnVG9VSShvcHRpb25zKSB7CiAgICAgICAgaWYgKG9wdGlvbnM/LnVwZGF0ZWRLZXkgPT0gJ2luZmluaXR5TW9kZScpIGluZmluaXR5W2NvbmZpZy5pbmZpbml0eU1vZGUgPyAnYWN0aXZhdGUnIDogJ2RlYWN0aXZhdGUnXSgpCiAgICAgICAgZWxzZSBpZiAoc2V0dGluZ3MuY29udHJvbHNbb3B0aW9ucz8udXBkYXRlZEtleV0udHlwZSA9PSAncHJvbXB0JyAmJiBjb25maWcuaW5maW5pdHlNb2RlKQogICAgICAgICAgICBpbmZpbml0eS5yZXN0YXJ0KHsgdGFyZ2V0OiBvcHRpb25zPy51cGRhdGVkS2V5ID09ICdyZXBseUludGVydmFsJyA/ICdzZWxmJyA6ICduZXcnIH0pCiAgICAgICAgaWYgKC9pbmZpbml0eU1vZGV8dG9nZ2xlSGlkZGVuLy50ZXN0KG9wdGlvbnM/LnVwZGF0ZWRLZXkpKSB0b2dnbGVzLnNpZGViYXIudXBkYXRlU3RhdGUoKQogICAgICAgIG1lbnUucmVmcmVzaCgpIC8vIHByZWZpeGVzL3N1ZmZpeGVzCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0U2NoZW1lKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lCiAgICAgICAgICAgIHx8ICh3aW5kb3cubWF0Y2hNZWRpYT8uKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJyk/Lm1hdGNoZXMgPyAnZGFyaycgOiAnbGlnaHQnKQogICAgfQoKICAgIGNoYXRncHQuaXNJZGxlID0gZnVuY3Rpb24oKSB7IC8vIHJlcGxhY2Ugd2FpdGluZyBmb3IgY2hhdCB0byBzdGFydCBpbiBjYXNlIG9mIGludGVycnVwdHMKICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7IC8vIHdoZW4gc3RvcCBidG4gbWlzc2luZwogICAgICAgICAgICBuZXcgTXV0YXRpb25PYnNlcnZlcigoXywgb2JzKSA9PiB7CiAgICAgICAgICAgICAgICBpZiAoIWNoYXRncHQuZ2V0U3RvcEJ0bigpKSB7IG9icy5kaXNjb25uZWN0KCk7IHJlc29sdmUoKSB9CiAgICAgICAgICAgIH0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSkKICAgICAgICB9KQogICAgfQoKICAgIC8vIERlZmluZSBJTkZJTklUWSBNT0RFIGZ1bmN0aW9ucwoKICAgIGNvbnN0IGluZmluaXR5ID0gewoKICAgICAgICBhc3luYyBhY3RpdmF0ZSgpIHsKICAgICAgICAgICAgY29uc3QgYWN0aXZhdGVQcm9tcHQgPSAnR2VuZXJhdGUgYSBzaW5nbGUgcmFuZG9tIHF1ZXN0aW9uJwogICAgICAgICAgICAgICAgKyAoIGNvbmZpZy5yZXBseUxhbmd1YWdlID8gKCAnIGluICcgKyBjb25maWcucmVwbHlMYW5ndWFnZSApIDogJycgKQogICAgICAgICAgICAgICAgKyAoICcgb24gJyArICggY29uZmlnLnJlcGx5VG9waWMgPT0gJ0FMTCcgPyAnQUxMIHRvcGljcycgOiAndGhlIHRvcGljIG9mICcgKyBjb25maWcucmVwbHlUb3BpYyApKQogICAgICAgICAgICAgICAgKyAnIHRoZW4gYW5zd2VyIGl0LiBEb25cJ3QgdHlwZSBhbnl0aGluZyBlbHNlLicKICAgICAgICAgICAgaWYgKGVudi5icm93c2VyLmlzTW9iaWxlICYmIGNoYXRncHQuc2lkZWJhci5pc09uKCkpIGNoYXRncHQuc2lkZWJhci5oaWRlKCkKICAgICAgICAgICAgaWYgKCFuZXcgVVJMKGxvY2F0aW9uKS5wYXRobmFtZS5zdGFydHNXaXRoKCcvZy8nKSkgLy8gbm90IG9uIEdQVCBwYWdlCiAgICAgICAgICAgICAgICB0cnkgeyBjaGF0Z3B0LnN0YXJ0TmV3Q2hhdCgpIH0gY2F0Y2ggKGVycikgeyByZXR1cm4gfSAvLyBzdGFydCBuZXcgY2hhdAogICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAwKSkgLy8gc2xlZXAgNTAwbXMKICAgICAgICAgICAgY2hhdGdwdC5zZW5kKGFjdGl2YXRlUHJvbXB0KQogICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMzAwMCkpIC8vIHNsZWVwIDNzCiAgICAgICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtbWVzc2FnZS1hdXRob3Itcm9sZV0nKSAvLyBuZXcgY2hhdCByZXNldCBkdWUgdG8gT3BlbkFJIGJ1ZwogICAgICAgICAgICAgICAgJiYgY29uZmlnLmluZmluaXR5TW9kZSkgLy8gLi4uYW5kIHRvZ2dsZSBzdGlsbCBhY3RpdmUKICAgICAgICAgICAgICAgICAgICBjaGF0Z3B0LnNlbmQoYWN0aXZhdGVQcm9tcHQpIC8vIC4uLnNvIHByb21wdCBhZ2FpbgogICAgICAgICAgICBhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpCiAgICAgICAgICAgIGlmIChjb25maWcuaW5maW5pdHlNb2RlICYmICFpbmZpbml0eS5pc0FjdGl2ZSkgLy8gZG91YmxlLWNoZWNrIGluIGNhc2UgZGUtYWN0aXZhdGVkIGJlZm9yZSBzY2hlZHVsZWQKICAgICAgICAgICAgICAgIGluZmluaXR5LmlzQWN0aXZlID0gc2V0VGltZW91dChpbmZpbml0eS5jb250aW51ZSwgcGFyc2VJbnQoY29uZmlnLnJlcGx5SW50ZXJ2YWwsIDEwKSAqIDEwMDApCiAgICAgICAgfSwKCiAgICAgICAgYXN5bmMgY29udGludWUoKSB7CiAgICAgICAgICAgIGlmICghY29uZmlnLmF1dG9TY3JvbGxEaXNhYmxlZCkgdHJ5IHsgY2hhdGdwdC5zY3JvbGxUb0JvdHRvbSgpIH0gY2F0Y2goZXJyKSB7fQogICAgICAgICAgICBjaGF0Z3B0LnNlbmQoJ0RvIGl0IGFnYWluLicpCiAgICAgICAgICAgIGF3YWl0IGNoYXRncHQuaXNJZGxlKCkgLy8gYmVmb3JlIHN0YXJ0aW5nIGRlbGF5IHRpbGwgbmV4dCBpdGVyYXRpb24KICAgICAgICAgICAgaWYgKGluZmluaXR5LmlzQWN0aXZlKSAvLyByZXBsYWNlIHRpbWVyCiAgICAgICAgICAgICAgICBpbmZpbml0eS5pc0FjdGl2ZSA9IHNldFRpbWVvdXQoaW5maW5pdHkuY29udGludWUsIHBhcnNlSW50KGNvbmZpZy5yZXBseUludGVydmFsLCAxMCkgKiAxMDAwKQogICAgICAgIH0sCgogICAgICAgIGRlYWN0aXZhdGUoKSB7CiAgICAgICAgICAgIGlmIChjaGF0Z3B0LmdldFN0b3BCdG4oKSkgY2hhdGdwdC5zdG9wKCkKICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGluZmluaXR5LmlzQWN0aXZlKSA7IGluZmluaXR5LmlzQWN0aXZlID0gbnVsbAogICAgICAgIH0sCgogICAgICAgIGFzeW5jIHJlc3RhcnQob3B0aW9ucyA9IHsgdGFyZ2V0OiAnbmV3JyB9KSB7CiAgICAgICAgICAgIGlmIChvcHRpb25zLnRhcmdldCA9PSAnbmV3JykgewogICAgICAgICAgICAgICAgaW5maW5pdHkuZGVhY3RpdmF0ZSgpIDsgc2V0VGltZW91dCgoKSA9PiBpbmZpbml0eS5hY3RpdmF0ZSgpLCA3NTApCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoaW5maW5pdHkuaXNBY3RpdmUpIDsgaW5maW5pdHkuaXNBY3RpdmUgPSBudWxsIDsgYXdhaXQgY2hhdGdwdC5pc0lkbGUoKQogICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5pbmZpbml0eU1vZGUgJiYgIWluZmluaXR5LmlzQWN0aXZlKSAvLyBkb3VibGUtY2hlY2sgaW4gY2FzZSBkZS1hY3RpdmF0ZWQgYmVmb3JlIHNjaGVkdWxlZAogICAgICAgICAgICAgICAgICAgIGluZmluaXR5LmlzQWN0aXZlID0gc2V0VGltZW91dChpbmZpbml0eS5jb250aW51ZSwgcGFyc2VJbnQoY29uZmlnLnJlcGx5SW50ZXJ2YWwsIDEwKSAqIDEwMDApCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gUnVuIE1BSU4gcm91dGluZQoKICAgIC8vIENyZWF0ZSBicm93c2VyIFRPT0xCQVIgTUVOVSBvciBESVNBQkxFIFNDUklQVCBpZiBleHRlbnNpb24gaW5zdGFsbGVkCiAgICBlbnYuZXh0ZW5zaW9uSW5zdGFsbGVkID0gYXdhaXQgUHJvbWlzZS5yYWNlKFsKICAgICAgICBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgICAgICAgICAgKGZ1bmN0aW9uIGNoZWNrRXh0ZW5zaW9uSW5zdGFsbGVkKCkgewogICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NoYXRncHQtaW5maW5pdHktZXh0ZW5zaW9uLWluc3RhbGxlZCcpKSByZXNvbHZlKHRydWUpCiAgICAgICAgICAgICAgICBlbHNlIHNldFRpbWVvdXQoY2hlY2tFeHRlbnNpb25JbnN0YWxsZWQsIDIwMCkKICAgICAgICAgICAgfSkoKQogICAgICAgIH0pLCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZShmYWxzZSksIDE1MDApKV0pCgogICAgbWVudS5yZWdpc3RlcigpIDsgaWYgKGVudi5leHRlbnNpb25JbnN0YWxsZWQpIHJldHVybgoKICAgIC8vIEluaXQgQlJPV1NFUi9VSSBwcm9wcwogICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtjaGF0Z3B0LmlzTG9hZGVkKCksIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MDAwKSldKSAvLyBpbml0aWFsIFVJIGxvYWRlZAogICAgYXdhaXQgY2hhdGdwdC5zaWRlYmFyLmlzTG9hZGVkKCkKICAgIGVudi51aS5maXJzdExpbmsgPSBjaGF0Z3B0LmdldE5ld0NoYXRMaW5rKCkKCiAgICAvLyBBZGQgTElTVEVORVIgdG8gYXV0by1kaXNhYmxlIEluZmluaXR5IE1vZGUKICAgIGlmICgnaGlkZGVuJyBpbiBkb2N1bWVudCkgLy8gLi4uaWYgUGFnZSBWaXNpYmlsaXR5IEFQSSBzdXBwb3J0ZWQKICAgICAgICBkb2N1bWVudC5vbnZpc2liaWxpdHljaGFuZ2UgPSAoKSA9PiB7CiAgICAgICAgICAgIGlmIChjb25maWcuaW5maW5pdHlNb2RlKSB7CiAgICAgICAgICAgICAgICBzZXR0aW5ncy5zYXZlKCdpbmZpbml0eU1vZGUnLCBmYWxzZSkgOyBzeW5jQ29uZmlnVG9VSSh7IHVwZGF0ZWRLZXk6ICdpbmZpbml0eU1vZGUnIH0pIH0KICAgICAgICB9CgogICAgLy8gQWRkIFNUQVJTIHN0eWxlcwogICAgWydicnMnLCAnd3JzJ10uZm9yRWFjaChjc3NUeXBlID0+IGRvY3VtZW50LmhlYWQuYXBwZW5kKGRvbS5jcmVhdGUuc3R5bGUoR01fZ2V0UmVzb3VyY2VUZXh0KGAke2Nzc1R5cGV9Q1NTYCkpKSkKCiAgICB0b2dnbGVzLmltcG9ydHMuaW1wb3J0KHsgYXBwLCBlbnYsIG5vdGlmeSwgc3luY0NvbmZpZ1RvVUkgfSkKICAgIHRvZ2dsZXMuc2lkZWJhci5pbnNlcnQoKQoKICAgIC8vIEF1dG8tc3RhcnQgaWYgZW5hYmxlZAogICAgaWYgKGNvbmZpZy5hdXRvU3RhcnQpIHsKICAgICAgICBzZXR0aW5ncy5zYXZlKCdpbmZpbml0eU1vZGUnLCB0cnVlKSA7IHN5bmNDb25maWdUb1VJKHsgdXBkYXRlZEtleTogJ2luZmluaXR5TW9kZScgfSkKICAgICAgICBub3RpZnkoYCR7YXBwLm1zZ3MubWVudUxhYmVsX2F1dG9TdGFydH06ICR7YXBwLm1zZ3Muc3RhdGVfb24udG9VcHBlckNhc2UoKX1gKQogICAgfQoKICAgIC8vIE1vbml0b3IgTk9ERSBDSEFOR0VTIHRvIG1haW50YWluIHNpZGViYXIgdG9nZ2xlIHZpc2liaWxpdHkKICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHsKICAgICAgICBpZiAoIWNvbmZpZy50b2dnbGVIaWRkZW4gJiYgIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3RvZ2dsZXMuc2lkZWJhci5jbGFzc31gKQogICAgICAgICAgICAmJiB0b2dnbGVzLnNpZGViYXIuc3RhdHVzICE9ICdpbnNlcnRpbmcnKSB7CiAgICAgICAgICAgICAgICB0b2dnbGVzLnNpZGViYXIuc3RhdHVzID0gJ21pc3NpbmcnIDsgdG9nZ2xlcy5zaWRlYmFyLmluc2VydCgpIH0KICAgIH0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pCgogICAgLy8gTW9uaXRvciBTQ0hFTUUgUFJFRiBjaGFuZ2VzIHRvIHVwZGF0ZSBzaWRlYmFyIHRvZ2dsZSArIG1vZGFsIGNvbG9ycwogICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoaGFuZGxlU2NoZW1lUHJlZkNoYW5nZSkub2JzZXJ2ZSggLy8gZm9yIHNpdGUgc2NoZW1lIHByZWYgY2hhbmdlcwogICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXSB9KQogICAgd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5hZGRFdmVudExpc3RlbmVyKCAvLyBmb3IgYnJvd3Nlci9zeXN0ZW0gc2NoZW1lIHByZWYgY2hhbmdlcwogICAgICAgICdjaGFuZ2UnLCAoKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaGFuZGxlU2NoZW1lUHJlZkNoYW5nZSkpCiAgICBmdW5jdGlvbiBoYW5kbGVTY2hlbWVQcmVmQ2hhbmdlKCkgewogICAgICAgIGNvbnN0IGRpc3BsYXllZFNjaGVtZSA9IGdldFNjaGVtZSgpCiAgICAgICAgaWYgKGVudi51aS5zY2hlbWUgIT0gZGlzcGxheWVkU2NoZW1lKSB7CiAgICAgICAgICAgIGVudi51aS5zY2hlbWUgPSBkaXNwbGF5ZWRTY2hlbWUgOyB0b2dnbGVzLnNpZGViYXIudXBkYXRlQWVzdGhldGljKCkgOyBtb2RhbHMuc3R5bGl6ZSgpIH0KICAgIH0KCiAgICAvLyBEaXNhYmxlIGRpc3RyYWN0aW5nIFNJREVCQVIgQ0xJQ0stWk9PTSBlZmZlY3QKICAgIGlmICghZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2lkZWJhci1jbGljay16b29tLW9ic2VydmVkJykpIHsKICAgICAgICBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4gbXV0YXRpb25zLmZvckVhY2goKHsgdGFyZ2V0IH0pID0+IHsKICAgICAgICAgICAgaWYgKHRhcmdldC5jbG9zZXN0KCdbY2xhc3MqPXNpZGViYXJdJykgLy8gaW5jbHVkZSBzaWRlYmFyIGVsZW1zCiAgICAgICAgICAgICAgICAmJiAhdGFyZ2V0LmNsb3Nlc3QoJ1tjbGFzcyo9c2lkZWJhci10b2dnbGVdJykgLy8gZXhjbHVkZSBvdXIgdG9nZ2xlcy5zaWRlYmFyJ3MgZWxlbXMKICAgICAgICAgICAgICAgICYmIHRhcmdldC5zdHlsZS50cmFuc2Zvcm0gIT0gJ25vbmUnIC8vIGNsaWNrLXpvb20gb2NjdXJyZWQKICAgICAgICAgICAgKSB0YXJnZXQuc3R5bGUudHJhbnNmb3JtID0gJ25vbmUnCiAgICAgICAgfSkpLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBzdWJ0cmVlOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnc3R5bGUnXSB9KQogICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3NpZGViYXItY2xpY2stem9vbS1vYnNlcnZlZCcsIHRydWUpCiAgICB9Cgp9KSgpCg==","resources":[{"meta":{"name":"black.min.css","url":"https://assets.aiwebextensions.com/styles/rising-stars/dist/black.min.css?v=3289404#sha256-CTj6Ndngq+TsPlNpQ6Ej39PQKSDpmxyKUFohhc91ruQ=","ts":1764084296589,"mimetype":"text/css"},"source":"I2JsYWNrLXN0YXJzLXNte3dpZHRoOjFweDtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjExMjhweCAxMDM0cHggIzMzMmYyZiwgNDQzcHggOTE2cHggIzMzMmYyZiwgODQzcHggMTEzMXB4ICMzMzJmMmYsIDQ4OXB4IDIxM3B4ICMzMzJmMmYsIDcyM3B4IDYwcHggIzMzMmYyZiwgNTYzcHggMzIzcHggIzMzMmYyZiwgMTU2MHB4IDkwNHB4ICMzMzJmMmYsIDE4MDJweCA5NDFweCAjMzMyZjJmLCAzMjBweCAxMzQ3cHggIzMzMmYyZiwgMTA5NnB4IDExMDRweCAjMzMyZjJmLCA5MTJweCAxNjI0cHggIzMzMmYyZiwgMTc3NnB4IDEyNDlweCAjMzMyZjJmLCA5ODVweCA1MDdweCAjMzMyZjJmLCAxNDk5cHggMTk1NnB4ICMzMzJmMmYsIDI2OHB4IDMyN3B4ICMzMzJmMmYsIDEwMDRweCAxMTk1cHggIzMzMmYyZiwgMzQ4cHggMTk3OXB4ICMzMzJmMmYsIDE2MDlweCAxNDM2cHggIzMzMmYyZiwgMTE1NHB4IDE2NjFweCAjMzMyZjJmLCAxMzM5cHggMTExOHB4ICMzMzJmMmYsIDE5NTZweCAyNnB4ICMzMzJmMmYsIDk1OXB4IDQ1NXB4ICMzMzJmMmYsIDM5cHggMTgwMnB4ICMzMzJmMmYsIDE1MzBweCA4OXB4ICMzMzJmMmYsIDQxNnB4IDMzNXB4ICMzMzJmMmYsIDQ3MHB4IDE3MzZweCAjMzMyZjJmLCAyNjlweCA1NDVweCAjMzMyZjJmLCA3NjVweCAxNTkzcHggIzMzMmYyZiwgMTY4cHggMTYwOXB4ICMzMzJmMmYsIDEwNzRweCAxNDUzcHggIzMzMmYyZiwgMTk4NnB4IDYxOXB4ICMzMzJmMmYsIDc5N3B4IDEyNDhweCAjMzMyZjJmLCAxOTQ3cHggNDU4cHggIzMzMmYyZiwgMTQ0cHggNjc0cHggIzMzMmYyZiwgMTU2NnB4IDE3MHB4ICMzMzJmMmYsIDM3MHB4IDEyMDFweCAjMzMyZjJmLCAxODk4cHggOTk3cHggIzMzMmYyZiwgMTE4cHggODkwcHggIzMzMmYyZiwgMTU5cHggMTcyOXB4ICMzMzJmMmYsIDE4MjdweCAzMjhweCAjMzMyZjJmLCAyMTdweCAxODgzcHggIzMzMmYyZiwgMzcwcHggMTYwNnB4ICMzMzJmMmYsIDE3NTFweCA2NjBweCAjMzMyZjJmLCAxMTkycHggMTM0MnB4ICMzMzJmMmYsIDU4OXB4IDEyMDRweCAjMzMyZjJmLCAzNXB4IDE0NjhweCAjMzMyZjJmLCA4MjNweCAzMXB4ICMzMzJmMmYsIDcyMHB4IDEyNDhweCAjMzMyZjJmLCAzNTVweCA1MzJweCAjMzMyZjJmLCA4MjJweCAxNjI5cHggIzMzMmYyZiwgOTY2cHggMTQ4OHB4ICMzMzJmMmYsIDE0NXB4IDg3OHB4ICMzMzJmMmYsIDE4MzhweCA0NzZweCAjMzMyZjJmLCAxNzM4cHggMTk4NHB4ICMzMzJmMmYsIDEzNzBweCA1N3B4ICMzMzJmMmYsIDEzN3B4IDEwNzJweCAjMzMyZjJmLCA2MjRweCAxODI1cHggIzMzMmYyZiwgMTMzcHggMTg2NXB4ICMzMzJmMmYsIDE4NTJweCAxMzUzcHggIzMzMmYyZiwgMTg4N3B4IDE3OHB4ICMzMzJmMmYsIDE0MTBweCAxNDUxcHggIzMzMmYyZiwgMTE1N3B4IDc2N3B4ICMzMzJmMmYsIDE0MzFweCAxMjQ4cHggIzMzMmYyZiwgMjAycHggMzQwcHggIzMzMmYyZiwgNDMxcHggMjYzcHggIzMzMmYyZiwgNzUwcHggMTc3MHB4ICMzMzJmMmYsIDEzMTlweCA3NTJweCAjMzMyZjJmLCAxMzQwcHggMTY1MHB4ICMzMzJmMmYsIDEyODFweCA2OThweCAjMzMyZjJmLCA0NjhweCAxNjkycHggIzMzMmYyZiwgMTY2N3B4IDQzMnB4ICMzMzJmMmYsIDUxNnB4IDEyNjVweCAjMzMyZjJmLCAxMTI2cHggMTA0MnB4ICMzMzJmMmYsIDE3MjhweCA4MTlweCAjMzMyZjJmLCA0ODhweCAxODY4cHggIzMzMmYyZiwgODc4cHggOTY4cHggIzMzMmYyZiwgMTE5NnB4IDE5NzZweCAjMzMyZjJmLCA4MTVweCA5MTBweCAjMzMyZjJmLCAxNjU3cHggODI5cHggIzMzMmYyZiwgODAzcHggMTI3MHB4ICMzMzJmMmYsIDE2NDdweCA2ODhweCAjMzMyZjJmLCAxODIzcHggMjAwMHB4ICMzMzJmMmYsIDE4OTZweCAyMjhweCAjMzMyZjJmLCAxODNweCAxODM4cHggIzMzMmYyZiwgMjk3cHggMTA3M3B4ICMzMzJmMmYsIDQ5M3B4IDcxNnB4ICMzMzJmMmYsIDY4OXB4IDEyNDRweCAjMzMyZjJmLCAxOTM0cHggMTE4NHB4ICMzMzJmMmYsIDU3N3B4IDEwNDlweCAjMzMyZjJmLCA1NTNweCAxNTcwcHggIzMzMmYyZiwgMTM3NHB4IDE0MTJweCAjMzMyZjJmLCAxNTMwcHggMTFweCAjMzMyZjJmLCA0MDFweCA5cHggIzMzMmYyZiwgMTI0cHggODcwcHggIzMzMmYyZiwgOTU4cHggMzUzcHggIzMzMmYyZiwgMTA2N3B4IDQwNnB4ICMzMzJmMmYsIDgyNnB4IDE5ODZweCAjMzMyZjJmLCA0MjZweCAxNDQ4cHggIzMzMmYyZiwgMzg4cHggMTcwMHB4ICMzMzJmMmYsIDEwODRweCAxMjMycHggIzMzMmYyZiwgODg2cHggMTY2OXB4ICMzMzJmMmYsIDE0N3B4IDUxMXB4ICMzMzJmMmYsIDcyNXB4IDQ1NHB4ICMzMzJmMmYsIDE0MzNweCAxMjA2cHggIzMzMmYyZiwgNTBweCAxMzM0cHggIzMzMmYyZiwgMjQ4cHggMTg0MHB4ICMzMzJmMmYsIDE2NHB4IDc3OXB4ICMzMzJmMmYsIDI0OHB4IDEzMDNweCAjMzMyZjJmLCA4NXB4IDE4MTVweCAjMzMyZjJmLCAxNDI5cHggMTQzcHggIzMzMmYyZiwgMTNweCAxMzEwcHggIzMzMmYyZiwgNjM5cHggNjU3cHggIzMzMmYyZiwgMTk2OHB4IDI3OHB4ICMzMzJmMmYsIDEzMDZweCAzNDhweCAjMzMyZjJmLCAxODA3cHggNDk4cHggIzMzMmYyZiwgMTYyNXB4IDE0OThweCAjMzMyZjJmLCA2NTRweCA3MzZweCAjMzMyZjJmLCAxNzcwcHggMzcwcHggIzMzMmYyZiwgMTIzN3B4IDE1NzRweCAjMzMyZjJmLCAxMDQ1cHggMTQ4MXB4ICMzMzJmMmYsIDEyNjRweCAyNzZweCAjMzMyZjJmLCAxNTc4cHggMjczcHggIzMzMmYyZiwgMTAwNnB4IDE1ODZweCAjMzMyZjJmLCAxMDhweCAxODEycHggIzMzMmYyZiwgODBweCAxNTYwcHggIzMzMmYyZiwgNjQ1cHggMzY4cHggIzMzMmYyZiwgMTgzOHB4IDU2OXB4ICMzMzJmMmYsIDcxNXB4IDYyN3B4ICMzMzJmMmYsIDc2NHB4IDYxMnB4ICMzMzJmMmYsIDE5MHB4IDE4NjFweCAjMzMyZjJmLCA0MjRweCAxMTY4cHggIzMzMmYyZiwgODUxcHggOTUzcHggIzMzMmYyZiwgMTA5NnB4IDEzNDZweCAjMzMyZjJmLCAxNDE1cHggMTE3MXB4ICMzMzJmMmYsIDM3OHB4IDEzODdweCAjMzMyZjJmLCAyNzBweCAxNjQ1cHggIzMzMmYyZiwgMTM0OHB4IDE3NzBweCAjMzMyZjJmLCAxMzQ5cHggMTk4OHB4ICMzMzJmMmYsIDU0OXB4IDIyN3B4ICMzMzJmMmYsIDY3MXB4IDI0cHggIzMzMmYyZiwgMTU4MXB4IDE0MzBweCAjMzMyZjJmLCAyMTJweCAxOTc5cHggIzMzMmYyZiwgMTkxNHB4IDEwODNweCAjMzMyZjJmLCAxMDU2cHggOTUwcHggIzMzMmYyZiwgNjM1cHggOTg5cHggIzMzMmYyZiwgMTIzNnB4IDU3MXB4ICMzMzJmMmYsIDIyM3B4IDE2MzRweCAjMzMyZjJmLCAxNTY0cHggNzI4cHggIzMzMmYyZiwgMTEycHggOTA4cHggIzMzMmYyZiwgMTUxMHB4IDQ1OXB4ICMzMzJmMmYsIDg4NHB4IDEyODJweCAjMzMyZjJmLCAxMjAxcHggMTk2OHB4ICMzMzJmMmYsIDEzMzZweCA1NThweCAjMzMyZjJmLCAxMDg5cHggOTE4cHggIzMzMmYyZiwgMTU3NnB4IDE4MjhweCAjMzMyZjJmLCA5NXB4IDk5cHggIzMzMmYyZiwgNDIzcHggMjY1cHggIzMzMmYyZiwgMTcxOHB4IDIzMnB4ICMzMzJmMmYsIDEwN3B4IDc4NXB4ICMzMzJmMmYsIDExMDVweCA4NTRweCAjMzMyZjJmLCAxMzcwcHggMTU1NHB4ICMzMzJmMmYsIDQ5NXB4IDQwN3B4ICMzMzJmMmYsIDE0MjZweCA0ODFweCAjMzMyZjJmLCA4MjhweCAxMjI2cHggIzMzMmYyZiwgMTEwNHB4IDIxMXB4ICMzMzJmMmYsIDEwNjRweCAxNDgwcHggIzMzMmYyZiwgMTAyOXB4IDk2N3B4ICMzMzJmMmYsIDE3MTdweCA1MDNweCAjMzMyZjJmLCA0NTJweCAxNDY0cHggIzMzMmYyZiwgMTk0MnB4IDQ1MHB4ICMzMzJmMmYsIDEyMTVweCAxMzEwcHggIzMzMmYyZiwgMzc0cHggNTU0cHggIzMzMmYyZiwgMTU2MHB4IDY5M3B4ICMzMzJmMmYsIDgzcHggMzk4cHggIzMzMmYyZiwgMzg1cHggMTE2NnB4ICMzMzJmMmYsIDE1NThweCA3MDRweCAjMzMyZjJmLCA2NXB4IDM4MHB4ICMzMzJmMmYsIDEzOTlweCAxMTMzcHggIzMzMmYyZiwgODYwcHggMzc1cHggIzMzMmYyZiwgNjQycHggNDQ5cHggIzMzMmYyZiwgNTc3cHggNTc4cHggIzMzMmYyZiwgNjA3cHggMTI5NXB4ICMzMzJmMmYsIDE4NjhweCAzOTBweCAjMzMyZjJmLCAxNjk2cHggMTgzM3B4ICMzMzJmMmYsIDExOTFweCAxMzEycHggIzMzMmYyZiwgNDE4cHggMTM4NHB4ICMzMzJmMmYsIDEyMDdweCAxMDc5cHggIzMzMmYyZiwgMTZweCA2NXB4ICMzMzJmMmYsIDE0OThweCAxOTZweCAjMzMyZjJmLCAxNDY4cHggMTIzOHB4ICMzMzJmMmYsIDE4MTBweCAxNTZweCAjMzMyZjJmLCA3NDRweCA5MjZweCAjMzMyZjJmLCAxOXB4IDE3NjVweCAjMzMyZjJmLCAxNDM2cHggOTA0cHggIzMzMmYyZiwgMTQ3NHB4IDE0NDdweCAjMzMyZjJmLCA4OHB4IDE4MTRweCAjMzMyZjJmLCAxODgxcHggMTE5N3B4ICMzMzJmMmYsIDE1NzBweCA1NDBweCAjMzMyZjJmLCAxOTY1cHggMTUyM3B4ICMzMzJmMmYsIDE0NTVweCA0MnB4ICMzMzJmMmYsIDEzN3B4IDIwOXB4ICMzMzJmMmYsIDExODZweCA0MHB4ICMzMzJmMmYsIDE2N3B4IDE2NzBweCAjMzMyZjJmLCAxNDUzcHggMTI2NHB4ICMzMzJmMmYsIDI4OHB4IDY4MnB4ICMzMzJmMmYsIDEyM3B4IDExOTdweCAjMzMyZjJmLCAxOTcwcHggMTE3MXB4ICMzMzJmMmYsIDE1NXB4IDk5NHB4ICMzMzJmMmYsIDYwMXB4IDUwOHB4ICMzMzJmMmYsIDI5MHB4IDQ1NnB4ICMzMzJmMmYsIDQxOXB4IDE5NTNweCAjMzMyZjJmLCAyNzNweCA3NHB4ICMzMzJmMmYsIDEyNjJweCA0NjBweCAjMzMyZjJmLCAxNjExcHggMTM5NnB4ICMzMzJmMmYsIDE1NzZweCA1OHB4ICMzMzJmMmYsIDk5NXB4IDE1MTRweCAjMzMyZjJmLCAxMDM5cHggMTIyOXB4ICMzMzJmMmYsIDgxN3B4IDE1MjNweCAjMzMyZjJmLCAxNTk4cHggNzQ4cHggIzMzMmYyZiwgMTM2OHB4IDE3NjRweCAjMzMyZjJmLCA5NTlweCAxNjg4cHggIzMzMmYyZiwgMTI3N3B4IDMxMXB4ICMzMzJmMmYsIDE2NTFweCAzMTlweCAjMzMyZjJmLCAxNzE5cHggMTM5MnB4ICMzMzJmMmYsIDE0NDlweCAyODJweCAjMzMyZjJmLCAxOTY5cHggNzU2cHggIzMzMmYyZiwgNDU4cHggMTg2cHggIzMzMmYyZiwgODU3cHggOTc2cHggIzMzMmYyZiwgMTU1OHB4IDQyNHB4ICMzMzJmMmYsIDEzMTRweCAxMTI2cHggIzMzMmYyZiwgMTAxMHB4IDY3MHB4ICMzMzJmMmYsIDU4NHB4IDE0N3B4ICMzMzJmMmYsIDUwN3B4IDE5NXB4ICMzMzJmMmYsIDg4M3B4IDY2OHB4ICMzMzJmMmYsIDIwMDBweCAxMDUycHggIzMzMmYyZiwgMTUzMnB4IDEyNTdweCAjMzMyZjJmLCA5MTlweCAxNDEycHggIzMzMmYyZiwgMTA0OHB4IDE3MjJweCAjMzMyZjJmLCAxNjY5cHggNzI4cHggIzMzMmYyZiwgMTQzM3B4IDM4MnB4ICMzMzJmMmYsIDE0MDRweCA2OTRweCAjMzMyZjJmLCA1OTFweCAxNDkycHggIzMzMmYyZiwgMTI4M3B4IDkyNHB4ICMzMzJmMmYsIDU5cHggMTI0NHB4ICMzMzJmMmYsIDE0NjVweCAxNjg2cHggIzMzMmYyZiwgNDA0cHggMTg0NnB4ICMzMzJmMmYsIDE1MzRweCA3OTlweCAjMzMyZjJmLCAxMzAwcHggNDA5cHggIzMzMmYyZiwgODUxcHggMTExOHB4ICMzMzJmMmYsIDIxNnB4IDY1NnB4ICMzMzJmMmYsIDQzMnB4IDExNjJweCAjMzMyZjJmLCA1NzdweCAxOTU3cHggIzMzMmYyZiwgMjc4cHggNzQ5cHggIzMzMmYyZiwgMTMzcHggNDEzcHggIzMzMmYyZiwgMTUyNHB4IDgwNnB4ICMzMzJmMmYsIDE2MDBweCAzNjBweCAjMzMyZjJmLCA0MjZweCAyMHB4ICMzMzJmMmYsIDgzNXB4IDc0NnB4ICMzMzJmMmYsIDE2MjZweCA0NDhweCAjMzMyZjJmLCAxNDk2cHggMTNweCAjMzMyZjJmLCAxMDg5cHggMTM1NnB4ICMzMzJmMmYsIDk0NnB4IDUxNHB4ICMzMzJmMmYsIDE5NDRweCAxMTIxcHggIzMzMmYyZiwgMTg3MXB4IDU5NHB4ICMzMzJmMmYsIDg5OHB4IDYzM3B4ICMzMzJmMmYsIDY3MnB4IDEwODJweCAjMzMyZjJmLCA0MjlweCA0M3B4ICMzMzJmMmYsIDEyOThweCAxNzA1cHggIzMzMmYyZiwgMTgxMHB4IDE1MDFweCAjMzMyZjJmLCAxNjg3cHggNDEzcHggIzMzMmYyZiwgMTkwMnB4IDY4N3B4ICMzMzJmMmYsIDE2NDlweCAxMzM1cHggIzMzMmYyZiwgMTI3OXB4IDU5MnB4ICMzMzJmMmYsIDE0OTlweCAxMzcwcHggIzMzMmYyZiwgMTY0MnB4IDU1NnB4ICMzMzJmMmYsIDUwNnB4IDQ4OXB4ICMzMzJmMmYsIDg3NnB4IDExMzVweCAjMzMyZjJmLCAxNjg1cHggMTcxOXB4ICMzMzJmMmYsIDE3ODhweCAxMDYxcHggIzMzMmYyZiwgMTQ3MnB4IDE1MTdweCAjMzMyZjJmLCAxODNweCAxNDkwcHggIzMzMmYyZiwgMjM2cHggNjY3cHggIzMzMmYyZiwgMjYxcHggMTQ5N3B4ICMzMzJmMmYsIDg0MnB4IDEzOXB4ICMzMzJmMmYsIDY0N3B4IDcwOXB4ICMzMzJmMmYsIDE0MzBweCAxNDBweCAjMzMyZjJmLCA0MjFweCAxODU1cHggIzMzMmYyZiwgMjAzcHggMTI5cHggIzMzMmYyZiwgMTY4cHggMTQycHggIzMzMmYyZiwgMjY0cHggNDkycHggIzMzMmYyZiwgMTM2NnB4IDIwNHB4ICMzMzJmMmYsIDY3M3B4IDEzNjFweCAjMzMyZjJmLCAxNzM5cHggMTA2N3B4ICMzMzJmMmYsIDE5MzVweCA2OTlweCAjMzMyZjJmLCA5NzBweCA1MTJweCAjMzMyZjJmLCAxMTkxcHggODI4cHggIzMzMmYyZiwgMTkzMXB4IDEyNTZweCAjMzMyZjJmLCAxMzA1cHggMTAxOHB4ICMzMzJmMmYsIDE3MTJweCAzNDdweCAjMzMyZjJmLCAxNzAycHggOTQ2cHggIzMzMmYyZiwgNTI3cHggMTIwMHB4ICMzMzJmMmYsIDE4N3B4IDU5MnB4ICMzMzJmMmYsIDc1NHB4IDgwMnB4ICMzMzJmMmYsIDE3MjhweCA2ODBweCAjMzMyZjJmLCAxMTAwcHggMTUyMHB4ICMzMzJmMmYsIDQ4MHB4IDE3NDBweCAjMzMyZjJmLCA3NzFweCAxNDg4cHggIzMzMmYyZiwgMTMzMHB4IDY3OXB4ICMzMzJmMmYsIDgyM3B4IDE5MDhweCAjMzMyZjJmLCAxNDM0cHggNTZweCAjMzMyZjJmLCAxNTEwcHggMTE3MnB4ICMzMzJmMmYsIDEyMDdweCA0OTZweCAjMzMyZjJmLCAxNTA4cHggMTk3MHB4ICMzMzJmMmYsIDQ5NnB4IDY5OXB4ICMzMzJmMmYsIDk0MnB4IDExNnB4ICMzMzJmMmYsIDEzMjRweCA0MnB4ICMzMzJmMmYsIDEwMDlweCAxODE1cHggIzMzMmYyZiwgMTA2MnB4IDE2OTRweCAjMzMyZjJmLCAxODc3cHggMjAwMHB4ICMzMzJmMmYsIDk0NnB4IDQzOXB4ICMzMzJmMmYsIDE5MTZweCAxMzc1cHggIzMzMmYyZiwgMTgzNnB4IDM0OHB4ICMzMzJmMmYsIDk5N3B4IDU1N3B4ICMzMzJmMmYsIDE3MjRweCAxMTc3cHggIzMzMmYyZiwgMTUzNHB4IDI2NnB4ICMzMzJmMmYsIDU2OHB4IDgyNXB4ICMzMzJmMmYsIDE3MTlweCAxNjgycHggIzMzMmYyZiwgMTYwNXB4IDMzN3B4ICMzMzJmMmYsIDk2OHB4IDEzNTRweCAjMzMyZjJmLCAxOTQycHggMTM0MnB4ICMzMzJmMmYsIDM0NHB4IDE1OTZweCAjMzMyZjJmLCAxMTNweCAxOTk4cHggIzMzMmYyZiwgOTYzcHggMTA5NXB4ICMzMzJmMmYsIDQ2MHB4IDEzODZweCAjMzMyZjJmLCAxOTg2cHggNjk0cHggIzMzMmYyZiwgMTkwMXB4IDQ2N3B4ICMzMzJmMmYsIDE5NzBweCAxMzM4cHggIzMzMmYyZiwgMTIwcHggNzA2cHggIzMzMmYyZiwgMTc2MXB4IDE5MTJweCAjMzMyZjJmLCA3ODhweCAxMTc3cHggIzMzMmYyZiwgMTAxMnB4IDExNzNweCAjMzMyZjJmLCAxOTY4cHggNTM4cHggIzMzMmYyZiwgMTU1MnB4IDcyN3B4ICMzMzJmMmYsIDI3M3B4IDEyNzVweCAjMzMyZjJmLCA5NnB4IDY1OXB4ICMzMzJmMmYsIDExNTdweCAxNjIzcHggIzMzMmYyZiwgMTMxNHB4IDkyMXB4ICMzMzJmMmYsIDQ5MnB4IDE5OTZweCAjMzMyZjJmLCA1N3B4IDE5NThweCAjMzMyZjJmLCAxOTRweCAxNzU5cHggIzMzMmYyZiwgMTU4cHggMTk3MXB4ICMzMzJmMmYsIDE5NjRweCAyODVweCAjMzMyZjJmLCAxNjQzcHggNjQ3cHggIzMzMmYyZiwgNTA0cHggMTY0NHB4ICMzMzJmMmYsIDQ1N3B4IDE2OTVweCAjMzMyZjJmLCAxMTI5cHggNjgycHggIzMzMmYyZiwgODEzcHggNTE2cHggIzMzMmYyZiwgMTg2MnB4IDMzcHggIzMzMmYyZiwgMjgwcHggMzZweCAjMzMyZjJmLCA1NjBweCAxMTc0cHggIzMzMmYyZiwgNzMycHggNDE5cHggIzMzMmYyZiwgMTQyMHB4IDMzNnB4ICMzMzJmMmYsIDQ0NHB4IDE4NDlweCAjMzMyZjJmLCAzNTRweCAxOTE5cHggIzMzMmYyZiwgMTIxNXB4IDQwOHB4ICMzMzJmMmYsIDUyN3B4IDEyOHB4ICMzMzJmMmYsIDE0OTRweCAxNTMxcHggIzMzMmYyZiwgMTQ3NnB4IDc1OHB4ICMzMzJmMmYsIDYyNXB4IDIzOHB4ICMzMzJmMmYsIDY2OXB4IDIwOXB4ICMzMzJmMmYsIDE5MDFweCAxMDFweCAjMzMyZjJmLCA4NDlweCAxOTA3cHggIzMzMmYyZiwgMzU5cHggMTQ2NXB4ICMzMzJmMmYsIDE4NzZweCAzODNweCAjMzMyZjJmLCAxODdweCAxMjgzcHggIzMzMmYyZiwgMTk1NXB4IDE1MDRweCAjMzMyZjJmLCA2MDFweCAxMTU3cHggIzMzMmYyZiwgNDU0cHggMTk3M3B4ICMzMzJmMmYsIDQ0NHB4IDEyNnB4ICMzMzJmMmYsIDQ0NHB4IDEwNTNweCAjMzMyZjJmLCAxNTM2cHggMTcwNHB4ICMzMzJmMmYsIDU3NXB4IDcwMXB4ICMzMzJmMmYsIDEwNjNweCA3NzNweCAjMzMyZjJmLCAxMzMwcHggMTAyNXB4ICMzMzJmMmYsIDExMTJweCAxMTY2cHggIzMzMmYyZiwgNzQ2cHggMTc1MXB4ICMzMzJmMmYsIDQ4NnB4IDk1MXB4ICMzMzJmMmYsIDU4NXB4IDEwMDlweCAjMzMyZjJmLCAxMTAzcHggMTg2NnB4ICMzMzJmMmYsIDMzMnB4IDE2MjNweCAjMzMyZjJmLCAxMDFweCA5OTdweCAjMzMyZjJmLCA0NzZweCAxMTQwcHggIzMzMmYyZiwgMTM0cHggMTA3N3B4ICMzMzJmMmYsIDE2MjRweCA3MDRweCAjMzMyZjJmLCAxNzdweCAxNjE1cHggIzMzMmYyZiwgOTU4cHggNTMzcHggIzMzMmYyZiwgNDE5cHggMTI3MHB4ICMzMzJmMmYsIDg2NXB4IDM4OHB4ICMzMzJmMmYsIDIwMDBweCA4OTNweCAjMzMyZjJmLCA3NjlweCAxMTc1cHggIzMzMmYyZiwgNzAwcHggNjEycHggIzMzMmYyZiwgMTU1OXB4IDgxNXB4ICMzMzJmMmYsIDE3MHB4IDIwMDBweCAjMzMyZjJmLCAyNTFweCAxOTA1cHggIzMzMmYyZiwgMTYyMXB4IDEwNDhweCAjMzMyZjJmLCA3MTdweCAxMDczcHggIzMzMmYyZiwgMjA0cHggOTA1cHggIzMzMmYyZiwgMTQ2MHB4IDI1MnB4ICMzMzJmMmYsIDU1MnB4IDEyNTlweCAjMzMyZjJmLCAxMjk4cHggOTM1cHggIzMzMmYyZiwgOTE1cHggMjEycHggIzMzMmYyZiwgOTA4cHggMTU3N3B4ICMzMzJmMmYsIDEzMXB4IDE1NjVweCAjMzMyZjJmLCA5NjlweCA1ODdweCAjMzMyZjJmLCAxNzQ5cHggMTA4MnB4ICMzMzJmMmYsIDE1cHggMjUxcHggIzMzMmYyZiwgMzYycHggMTY2NnB4ICMzMzJmMmYsIDE2MTVweCA4MHB4ICMzMzJmMmYsIDY1NXB4IDExOHB4ICMzMzJmMmYsIDE2MnB4IDgxN3B4ICMzMzJmMmYsIDM2MnB4IDE4MjBweCAjMzMyZjJmLCAxMTQwcHggMTA1MXB4ICMzMzJmMmYsIDc3M3B4IDcyOXB4ICMzMzJmMmYsIDExNjRweCA5ODZweCAjMzMyZjJmLCA4NTRweCAyNnB4ICMzMzJmMmYsIDc0N3B4IDEwOTVweCAjMzMyZjJmLCAxMzc0cHggNzMxcHggIzMzMmYyZiwgMTkzOHB4IDE0NDZweCAjMzMyZjJmLCAxMjM4cHggMTc2N3B4ICMzMzJmMmYsIDE3OXB4IDE2NTlweCAjMzMyZjJmLCAxMzU4cHggMTIxN3B4ICMzMzJmMmYsIDU3MnB4IDQ4MHB4ICMzMzJmMmYsIDk1NnB4IDE3MnB4ICMzMzJmMmYsIDE0NTVweCAxMDYzcHggIzMzMmYyZiwgMTkyM3B4IDYxM3B4ICMzMzJmMmYsIDE2NjdweCAzNDRweCAjMzMyZjJmLCAxMTA2cHggMTkzM3B4ICMzMzJmMmYsIDc1cHggMTY5cHggIzMzMmYyZiwgMTU2NHB4IDk0NXB4ICMzMzJmMmYsIDc3NnB4IDE3NjFweCAjMzMyZjJmLCA3ODNweCAyMjRweCAjMzMyZjJmLCA4MTNweCA3NTNweCAjMzMyZjJmLCAxNjQ0cHggNDkwcHggIzMzMmYyZiwgMTExN3B4IDY0M3B4ICMzMzJmMmYsIDc4MHB4IDMwMnB4ICMzMzJmMmYsIDE4OTNweCA0ODFweCAjMzMyZjJmLCA5OHB4IDExOTJweCAjMzMyZjJmLCA3MThweCAxODgxcHggIzMzMmYyZiwgMTU2MXB4IDgyNHB4ICMzMzJmMmYsIDc1M3B4IDEzOXB4ICMzMzJmMmYsIDkwN3B4IDU5N3B4ICMzMzJmMmYsIDE4ODFweCAxMzMzcHggIzMzMmYyZiwgMTU1MHB4IDE1NTdweCAjMzMyZjJmLCA0MTlweCAxMDQxcHggIzMzMmYyZiwgMjQwcHggMTk2MnB4ICMzMzJmMmYsIDkzOHB4IDExMTZweCAjMzMyZjJmLCA0NTlweCAxMjQ1cHggIzMzMmYyZiwgODQ5cHggNTQ0cHggIzMzMmYyZiwgMTM0M3B4IDE2NDRweCAjMzMyZjJmLCAxNDM4cHggMTk5MXB4ICMzMzJmMmYsIDE5NzdweCAyOTJweCAjMzMyZjJmLCAxNzcycHggNjU4cHggIzMzMmYyZiwgMTM4MnB4IDEwMDdweCAjMzMyZjJmLCAyOTZweCA5OTRweCAjMzMyZjJmLCAxNjE2cHggMjA1cHggIzMzMmYyZiwgOTg5cHggMTUwMnB4ICMzMzJmMmYsIDEyMDFweCAxMjk3cHggIzMzMmYyZiwgODk1cHggMTgzNXB4ICMzMzJmMmYsIDE1OTZweCA2MzdweCAjMzMyZjJmLCAxNjAxcHggMjRweCAjMzMyZjJmLCAxMDk3cHggMjQwcHggIzMzMmYyZiwgMzY0cHggNTYzcHggIzMzMmYyZiwgMTY4NnB4IDIwOHB4ICMzMzJmMmYsIDYxMnB4IDMxNXB4ICMzMzJmMmYsIDE4NDhweCAxMTdweCAjMzMyZjJmLCAxMTY2cHggODcxcHggIzMzMmYyZiwgMTY2MnB4IDYzMXB4ICMzMzJmMmYsIDYyMnB4IDU1MHB4ICMzMzJmMmYsIDE5ODJweCA0NThweCAjMzMyZjJmLCAxMjc0cHggNDM5cHggIzMzMmYyZiwgMTQ3MXB4IDE1MzFweCAjMzMyZjJmLCA5OXB4IDcwMXB4ICMzMzJmMmYsIDE3NXB4IDE0NTZweCAjMzMyZjJmLCA5MTdweCAxNTg1cHggIzMzMmYyZiwgMTg3NXB4IDI3N3B4ICMzMzJmMmYsIDU1NXB4IDQ2MHB4ICMzMzJmMmYsIDE2MXB4IDEyOTBweCAjMzMyZjJmLCA3NzBweCAxMzgxcHggIzMzMmYyZiwgMTU0OHB4IDE5MTZweCAjMzMyZjJmLCA0ODJweCAzNjZweCAjMzMyZjJmLCA5MjNweCA3OTFweCAjMzMyZjJmLCA1ODJweCAyMjVweCAjMzMyZjJmLCA2MXB4IDMwMnB4ICMzMzJmMmYsIDM4M3B4IDUyMXB4ICMzMzJmMmYsIDE5NnB4IDQ0MXB4ICMzMzJmMmYsIDMwOHB4IDE5NDhweCAjMzMyZjJmLCA0MjVweCA0MjZweCAjMzMyZjJmLCA1ODlweCAxMzQ3cHggIzMzMmYyZiwgMTQwOXB4IDE1MjhweCAjMzMyZjJmLCAxNDkycHggNDM4cHggIzMzMmYyZiwgMTU2OHB4IDEwMjdweCAjMzMyZjJmLCAxMzc3cHggMTczMHB4ICMzMzJmMmYsIDExODdweCAxNjkzcHggIzMzMmYyZiwgMTgwNHB4IDU1MnB4ICMzMzJmMmYsIDE4NThweCAxNTEycHggIzMzMmYyZiwgMjA0cHggMTU2MXB4ICMzMzJmMmYsIDIzN3B4IDk5MXB4ICMzMzJmMmYsIDcyNnB4IDEzMzRweCAjMzMyZjJmLCA3MTVweCAxMjQ0cHggIzMzMmYyZiwgMTUwMnB4IDE3MDRweCAjMzMyZjJmLCAxMDA4cHggNzkycHggIzMzMmYyZiwgMTIxMHB4IDE3MDBweCAjMzMyZjJmLCAxMzJweCAxNjYycHggIzMzMmYyZiwgMTc3MHB4IDY5OHB4ICMzMzJmMmYsIDgxMnB4IDE3MDZweCAjMzMyZjJmLCAyMTVweCA1MjFweCAjMzMyZjJmLCAxOTQ3cHggNTc0cHggIzMzMmYyZiwgMjAxcHggNjY5cHggIzMzMmYyZiwgMTI2NXB4IDE2NHB4ICMzMzJmMmYsIDk0cHggNDUzcHggIzMzMmYyZiwgMzkzcHggMTQ0MXB4ICMzMzJmMmYsIDE0MzlweCA4NDdweCAjMzMyZjJmLCAxMDg2cHggNzlweCAjMzMyZjJmLCA0MDJweCA0NzFweCAjMzMyZjJmLCAxOTcwcHggMTIyMnB4ICMzMzJmMmYsIDEzNTFweCAzOTFweCAjMzMyZjJmLCA5NHB4IDU2NnB4ICMzMzJmMmYsIDU5NHB4IDE4OTRweCAjMzMyZjJmLCAzNjNweCAxODM0cHggIzMzMmYyZiwgMjY2cHggMTQwMHB4ICMzMzJmMmYsIDg5OXB4IDk3NHB4ICMzMzJmMmYsIDE1OTJweCA1ODJweCAjMzMyZjJmLCAxMTI5cHggNTY2cHggIzMzMmYyZiwgNTMzcHggMTI3NHB4ICMzMzJmMmYsIDQ4NXB4IDM3M3B4ICMzMzJmMmYsIDg4MnB4IDE3ODdweCAjMzMyZjJmLCAxOTM3cHggNjNweCAjMzMyZjJmLCAxOTg3cHggMTkyMXB4ICMzMzJmMmYsIDY1cHggNzYzcHggIzMzMmYyZiwgOTYycHggNDQ2cHggIzMzMmYyZiwgOTJweCAxMTI1cHggIzMzMmYyZiwgMTI4MXB4IDQ5MXB4ICMzMzJmMmYsIDE3MDRweCAyODRweCAjMzMyZjJmLCAxOTA0cHggOTIxcHggIzMzMmYyZiwgNDA0cHggMzI4cHggIzMzMmYyZiwgMTMwMXB4IDE2OTZweCAjMzMyZjJmLCA0MjBweCAxMzRweCAjMzMyZjJmLCAyMzdweCAyODVweCAjMzMyZjJmLCA2MDRweCAxODgxcHggIzMzMmYyZiwgODc5cHggODE2cHggIzMzMmYyZiwgMTczcHggMTMzcHggIzMzMmYyZiwgMTQ5MXB4IDE4OXB4ICMzMzJmMmYsIDM2OXB4IDU0OHB4ICMzMzJmMmYsIDQyMXB4IDUwM3B4ICMzMzJmMmYsIDE1NTNweCAxODgzcHggIzMzMmYyZiwgODYzcHggMTA2OHB4ICMzMzJmMmYsIDE1MjZweCAxMTE1cHggIzMzMmYyZiwgNjM2cHggMTI1OHB4ICMzMzJmMmYsIDc3MXB4IDEyMjdweCAjMzMyZjJmLCA5MDJweCA4MzdweCAjMzMyZjJmLCAxMzg1cHggODEzcHggIzMzMmYyZiwgMTkwOHB4IDk1N3B4ICMzMzJmMmYsIDEwMTJweCA0ODVweCAjMzMyZjJmLCA4MzlweCA2NzZweCAjMzMyZjJmLCA3NjNweCAxNjAycHggIzMzMmYyZiwgMTU3MHB4IDE0N3B4ICMzMzJmMmYsIDEwOXB4IDU5MXB4ICMzMzJmMmYsIDI3MnB4IDc3NHB4ICMzMzJmMmYsIDE1MTlweCAzOTVweCAjMzMyZjJmLCA1NThweCA2OHB4ICMzMzJmMmYsIDEzOTlweCAyNjRweCAjMzMyZjJmLCAxOTU4cHggNDIzcHggIzMzMmYyZiwgMTYwcHggNDBweCAjMzMyZjJmLCA5OTRweCAyODNweCAjMzMyZjJmLCAxOTY5cHggMTA1MXB4ICMzMzJmMmYsIDk0NHB4IDEwMDBweCAjMzMyZjJmLCAyMjdweCAxNDc0cHggIzMzMmYyZiwgMTU3cHggMTc0NHB4ICMzMzJmMmYsIDEyNjFweCA2OTZweCAjMzMyZjJmLCAxOTUwcHggNjk5cHggIzMzMmYyZiwgNzc4cHggMTg1OHB4ICMzMzJmMmYsIDE5MTVweCAzMDNweCAjMzMyZjJmLCA4NXB4IDExMzVweCAjMzMyZjJmLCAxOTIzcHggNTZweCAjMzMyZjJmLCAzMDJweCAxMjU4cHggIzMzMmYyZiwgMTczMnB4IDE1MDRweCAjMzMyZjJmLCAxMzQ5cHggNjE5cHggIzMzMmYyZiwgMTY4N3B4IDE2MDBweCAjMzMyZjJmLCAxNTAzcHggNTcwcHggIzMzMmYyZiwgNDU3cHggMTA3NXB4ICMzMzJmMmYsIDMzcHggMTk3MXB4ICMzMzJmMmYsIDE4OTNweCA3MzJweCAjMzMyZjJmLCAxNzg0cHggMTI1N3B4ICMzMzJmMmYsIDEwOTVweCAxMzA5cHggIzMzMmYyZiwgMTUycHggMTUwMHB4ICMzMzJmMmYsIDEzNDFweCA1MDBweCAjMzMyZjJmLCAyMDdweCAxNzg3cHggIzMzMmYyZiwgMTMyNXB4IDYzNHB4ICMzMzJmMmYsIDE3MjNweCA3M3B4ICMzMzJmMmYsIDI3MHB4IDg4NXB4ICMzMzJmMmYsIDg1N3B4IDExNTZweCAjMzMyZjJmLCAzNTRweCAxODcwcHggIzMzMmYyZiwgMjQ4cHggMTUxNHB4ICMzMzJmMmYsIDg4OXB4IDEzMjRweCAjMzMyZjJmLCAxOTEwcHggNDYwcHggIzMzMmYyZiwgMTgyNHB4IDEyNjdweCAjMzMyZjJmLCAxNzc5cHggMTI1cHggIzMzMmYyZiwgNDYycHggMTk4cHggIzMzMmYyZiwgMzcycHggMjEwcHggIzMzMmYyZiwgOTkycHggNDk4cHggIzMzMmYyZiwgODc2cHggODI2cHggIzMzMmYyZiwgMTg0MXB4IDExNHB4ICMzMzJmMmYsIDE5NzhweCA1MjdweCAjMzMyZjJmLCAxNjg3cHggMTIxNnB4ICMzMzJmMmYsIDc5NXB4IDEzNTdweCAjMzMyZjJmLCAxMzhweCAxNTU5cHggIzMzMmYyZiwgMTYyNXB4IDY0M3B4ICMzMzJmMmYsIDE0MXB4IDkxMHB4ICMzMzJmMmYsIDUwM3B4IDE3MDFweCAjMzMyZjJmLCAxMjE5cHggMTg5NnB4ICMzMzJmMmYsIDU2NHB4IDE2NzVweCAjMzMyZjJmLCA4MnB4IDEyODZweCAjMzMyZjJmLCAxMjY2cHggMzc5cHggIzMzMmYyZiwgNTE4cHggMzcwcHggIzMzMmYyZiwgNTY2cHggMzIzcHggIzMzMmYyZiwgOTIwcHggMTU3N3B4ICMzMzJmMmYsIDEwOTNweCA2NzNweCAjMzMyZjJmLCAxNDExcHggNDIycHggIzMzMmYyZiwgMTUxMHB4IDEzODVweCAjMzMyZjJmLCAxMDM5cHggMjIwcHggIzMzMmYyZiwgNjQycHggMTY3NXB4ICMzMzJmMmYsIDkzMXB4IDE1MjBweCAjMzMyZjJmLCAxOTE0cHggMTg4NXB4ICMzMzJmMmYsIDEwMzhweCAxNzI3cHggIzMzMmYyZiwgMTEzNXB4IDE5MzVweCAjMzMyZjJmLCAxOTA0cHggMTEzM3B4ICMzMzJmMmYsIDEyNXB4IDQxcHggIzMzMmYyZiwgMTAxOXB4IDc4NnB4ICMzMzJmMmYsIDE2cHggMTkyNXB4ICMzMzJmMmYsIDg3NnB4IDY0NHB4ICMzMzJmMmYsIDExNzdweCAxMDg0cHggIzMzMmYyZiwgNTc2cHggODM2cHggIzMzMmYyZiwgMjQ4cHggNDZweCAjMzMyZjJmLCA5MzZweCAxNzIwcHggIzMzMmYyZiwgNDA2cHggOTgzcHggIzMzMmYyZiwgMTY2MHB4IDgwMXB4ICMzMzJmMmYsIDc1NnB4IDM1N3B4ICMzMzJmMmYsIDVweCAxMjhweCAjMzMyZjJmLCAxOTc0cHggMTExMHB4ICMzMzJmMmYsIDE2OTRweCAxNjMycHggIzMzMmYyZiwgMTk2OXB4IDE0MjBweCAjMzMyZjJmLCA1MTVweCAxMTcwcHggIzMzMmYyZiwgMTUzcHggODQ1cHggIzMzMmYyZiwgMTA3N3B4IDExNjdweCAjMzMyZjJmLCAxNDE3cHggMTc2NHB4ICMzMzJmMmYsIDE5MzhweCAxNjRweCAjMzMyZjJmLCAxMTc5cHggMTAxNXB4ICMzMzJmMmYsIDM5N3B4IDc5N3B4ICMzMzJmMmYsIDM5NnB4IDE3OThweCAjMzMyZjJmLCA5OTBweCA5N3B4ICMzMzJmMmYsIDE1MDNweCAxMTU5cHggIzMzMmYyZiwgNTg1cHggMTA0M3B4ICMzMzJmMmYsIDcwcHggMTgycHggIzMzMmYyZiwgNTIxcHggMTc0OHB4ICMzMzJmMmYsIDEyMnB4IDE0NzZweCAjMzMyZjJmLCA5MHB4IDczM3B4ICMzMzJmMmYsIDk2OXB4IDIwMHB4ICMzMzJmMmYsIDUwOHB4IDY0MXB4ICMzMzJmMmYsIDE0NzVweCA1MzJweCAjMzMyZjJmLCAzNjdweCA2NTNweCAjMzMyZjJmLCAxODE5cHggODQycHggIzMzMmYyZiwgNTE1cHggMTgwMnB4ICMzMzJmMmYsIDc0OXB4IDEwMTJweCAjMzMyZjJmLCAxNDEycHggMTk3MXB4ICMzMzJmMmYsIDEzMTFweCA2NzZweCAjMzMyZjJmLCA2NjZweCA3NzBweCAjMzMyZjJmLCAxMTk4cHggMjE4cHggIzMzMmYyZiwgMTA5NXB4IDY3NnB4ICMzMzJmMmYsIDEwMDhweCAzODJweCAjMzMyZjJmLCAxMjFweCAxMzI4cHggIzMzMmYyZiwgOTEzcHggMTY0MHB4ICMzMzJmMmYsIDE5MjRweCA0MzhweCAjMzMyZjJmLCAxNDZweCAxODQ4cHggIzMzMmYyZiwgMTcycHggNTEzcHggIzMzMmYyZiwgMTczNXB4IDE1NzRweCAjMzMyZjJmLCA2MzdweCAxNjI2cHggIzMzMmYyZiwgNzFweCAzMDFweCAjMzMyZjJmLCA3NzBweCA2NjVweCAjMzMyZjJmLCA5MXB4IDEzMjRweCAjMzMyZjJmLCAxNjQ1cHggMTcxNHB4ICMzMzJmMmYsIDExOThweCAxMjIxcHggIzMzMmYyZiwgNDM2cHggNjExcHggIzMzMmYyZiwgNTQxcHggMTYzOHB4ICMzMzJmMmYsIDEzNnB4IDcyNnB4ICMzMzJmMmYsIDgycHggMTY0cHggIzMzMmYyZiwgMTM3MXB4IDE1cHggIzMzMmYyZiwgMTQ2NHB4IDQ4N3B4ICMzMzJmMmYsIDI0MXB4IDIzcHggIzMzMmYyZiwgMTYxOXB4IDE4MTlweCAjMzMyZjJmLCA4MzNweCAxOTg4cHggIzMzMmYyZjthbmltYXRpb246YW5pbVN0YXIgODNzIGxpbmVhciBpbmZpbml0ZX0jYmxhY2stc3RhcnMtc206YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMDBweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxMTI4cHggMTAzNHB4ICMzMzJmMmYsIDQ0M3B4IDkxNnB4ICMzMzJmMmYsIDg0M3B4IDExMzFweCAjMzMyZjJmLCA0ODlweCAyMTNweCAjMzMyZjJmLCA3MjNweCA2MHB4ICMzMzJmMmYsIDU2M3B4IDMyM3B4ICMzMzJmMmYsIDE1NjBweCA5MDRweCAjMzMyZjJmLCAxODAycHggOTQxcHggIzMzMmYyZiwgMzIwcHggMTM0N3B4ICMzMzJmMmYsIDEwOTZweCAxMTA0cHggIzMzMmYyZiwgOTEycHggMTYyNHB4ICMzMzJmMmYsIDE3NzZweCAxMjQ5cHggIzMzMmYyZiwgOTg1cHggNTA3cHggIzMzMmYyZiwgMTQ5OXB4IDE5NTZweCAjMzMyZjJmLCAyNjhweCAzMjdweCAjMzMyZjJmLCAxMDA0cHggMTE5NXB4ICMzMzJmMmYsIDM0OHB4IDE5NzlweCAjMzMyZjJmLCAxNjA5cHggMTQzNnB4ICMzMzJmMmYsIDExNTRweCAxNjYxcHggIzMzMmYyZiwgMTMzOXB4IDExMThweCAjMzMyZjJmLCAxOTU2cHggMjZweCAjMzMyZjJmLCA5NTlweCA0NTVweCAjMzMyZjJmLCAzOXB4IDE4MDJweCAjMzMyZjJmLCAxNTMwcHggODlweCAjMzMyZjJmLCA0MTZweCAzMzVweCAjMzMyZjJmLCA0NzBweCAxNzM2cHggIzMzMmYyZiwgMjY5cHggNTQ1cHggIzMzMmYyZiwgNzY1cHggMTU5M3B4ICMzMzJmMmYsIDE2OHB4IDE2MDlweCAjMzMyZjJmLCAxMDc0cHggMTQ1M3B4ICMzMzJmMmYsIDE5ODZweCA2MTlweCAjMzMyZjJmLCA3OTdweCAxMjQ4cHggIzMzMmYyZiwgMTk0N3B4IDQ1OHB4ICMzMzJmMmYsIDE0NHB4IDY3NHB4ICMzMzJmMmYsIDE1NjZweCAxNzBweCAjMzMyZjJmLCAzNzBweCAxMjAxcHggIzMzMmYyZiwgMTg5OHB4IDk5N3B4ICMzMzJmMmYsIDExOHB4IDg5MHB4ICMzMzJmMmYsIDE1OXB4IDE3MjlweCAjMzMyZjJmLCAxODI3cHggMzI4cHggIzMzMmYyZiwgMjE3cHggMTg4M3B4ICMzMzJmMmYsIDM3MHB4IDE2MDZweCAjMzMyZjJmLCAxNzUxcHggNjYwcHggIzMzMmYyZiwgMTE5MnB4IDEzNDJweCAjMzMyZjJmLCA1ODlweCAxMjA0cHggIzMzMmYyZiwgMzVweCAxNDY4cHggIzMzMmYyZiwgODIzcHggMzFweCAjMzMyZjJmLCA3MjBweCAxMjQ4cHggIzMzMmYyZiwgMzU1cHggNTMycHggIzMzMmYyZiwgODIycHggMTYyOXB4ICMzMzJmMmYsIDk2NnB4IDE0ODhweCAjMzMyZjJmLCAxNDVweCA4NzhweCAjMzMyZjJmLCAxODM4cHggNDc2cHggIzMzMmYyZiwgMTczOHB4IDE5ODRweCAjMzMyZjJmLCAxMzcwcHggNTdweCAjMzMyZjJmLCAxMzdweCAxMDcycHggIzMzMmYyZiwgNjI0cHggMTgyNXB4ICMzMzJmMmYsIDEzM3B4IDE4NjVweCAjMzMyZjJmLCAxODUycHggMTM1M3B4ICMzMzJmMmYsIDE4ODdweCAxNzhweCAjMzMyZjJmLCAxNDEwcHggMTQ1MXB4ICMzMzJmMmYsIDExNTdweCA3NjdweCAjMzMyZjJmLCAxNDMxcHggMTI0OHB4ICMzMzJmMmYsIDIwMnB4IDM0MHB4ICMzMzJmMmYsIDQzMXB4IDI2M3B4ICMzMzJmMmYsIDc1MHB4IDE3NzBweCAjMzMyZjJmLCAxMzE5cHggNzUycHggIzMzMmYyZiwgMTM0MHB4IDE2NTBweCAjMzMyZjJmLCAxMjgxcHggNjk4cHggIzMzMmYyZiwgNDY4cHggMTY5MnB4ICMzMzJmMmYsIDE2NjdweCA0MzJweCAjMzMyZjJmLCA1MTZweCAxMjY1cHggIzMzMmYyZiwgMTEyNnB4IDEwNDJweCAjMzMyZjJmLCAxNzI4cHggODE5cHggIzMzMmYyZiwgNDg4cHggMTg2OHB4ICMzMzJmMmYsIDg3OHB4IDk2OHB4ICMzMzJmMmYsIDExOTZweCAxOTc2cHggIzMzMmYyZiwgODE1cHggOTEwcHggIzMzMmYyZiwgMTY1N3B4IDgyOXB4ICMzMzJmMmYsIDgwM3B4IDEyNzBweCAjMzMyZjJmLCAxNjQ3cHggNjg4cHggIzMzMmYyZiwgMTgyM3B4IDIwMDBweCAjMzMyZjJmLCAxODk2cHggMjI4cHggIzMzMmYyZiwgMTgzcHggMTgzOHB4ICMzMzJmMmYsIDI5N3B4IDEwNzNweCAjMzMyZjJmLCA0OTNweCA3MTZweCAjMzMyZjJmLCA2ODlweCAxMjQ0cHggIzMzMmYyZiwgMTkzNHB4IDExODRweCAjMzMyZjJmLCA1NzdweCAxMDQ5cHggIzMzMmYyZiwgNTUzcHggMTU3MHB4ICMzMzJmMmYsIDEzNzRweCAxNDEycHggIzMzMmYyZiwgMTUzMHB4IDExcHggIzMzMmYyZiwgNDAxcHggOXB4ICMzMzJmMmYsIDEyNHB4IDg3MHB4ICMzMzJmMmYsIDk1OHB4IDM1M3B4ICMzMzJmMmYsIDEwNjdweCA0MDZweCAjMzMyZjJmLCA4MjZweCAxOTg2cHggIzMzMmYyZiwgNDI2cHggMTQ0OHB4ICMzMzJmMmYsIDM4OHB4IDE3MDBweCAjMzMyZjJmLCAxMDg0cHggMTIzMnB4ICMzMzJmMmYsIDg4NnB4IDE2NjlweCAjMzMyZjJmLCAxNDdweCA1MTFweCAjMzMyZjJmLCA3MjVweCA0NTRweCAjMzMyZjJmLCAxNDMzcHggMTIwNnB4ICMzMzJmMmYsIDUwcHggMTMzNHB4ICMzMzJmMmYsIDI0OHB4IDE4NDBweCAjMzMyZjJmLCAxNjRweCA3NzlweCAjMzMyZjJmLCAyNDhweCAxMzAzcHggIzMzMmYyZiwgODVweCAxODE1cHggIzMzMmYyZiwgMTQyOXB4IDE0M3B4ICMzMzJmMmYsIDEzcHggMTMxMHB4ICMzMzJmMmYsIDYzOXB4IDY1N3B4ICMzMzJmMmYsIDE5NjhweCAyNzhweCAjMzMyZjJmLCAxMzA2cHggMzQ4cHggIzMzMmYyZiwgMTgwN3B4IDQ5OHB4ICMzMzJmMmYsIDE2MjVweCAxNDk4cHggIzMzMmYyZiwgNjU0cHggNzM2cHggIzMzMmYyZiwgMTc3MHB4IDM3MHB4ICMzMzJmMmYsIDEyMzdweCAxNTc0cHggIzMzMmYyZiwgMTA0NXB4IDE0ODFweCAjMzMyZjJmLCAxMjY0cHggMjc2cHggIzMzMmYyZiwgMTU3OHB4IDI3M3B4ICMzMzJmMmYsIDEwMDZweCAxNTg2cHggIzMzMmYyZiwgMTA4cHggMTgxMnB4ICMzMzJmMmYsIDgwcHggMTU2MHB4ICMzMzJmMmYsIDY0NXB4IDM2OHB4ICMzMzJmMmYsIDE4MzhweCA1NjlweCAjMzMyZjJmLCA3MTVweCA2MjdweCAjMzMyZjJmLCA3NjRweCA2MTJweCAjMzMyZjJmLCAxOTBweCAxODYxcHggIzMzMmYyZiwgNDI0cHggMTE2OHB4ICMzMzJmMmYsIDg1MXB4IDk1M3B4ICMzMzJmMmYsIDEwOTZweCAxMzQ2cHggIzMzMmYyZiwgMTQxNXB4IDExNzFweCAjMzMyZjJmLCAzNzhweCAxMzg3cHggIzMzMmYyZiwgMjcwcHggMTY0NXB4ICMzMzJmMmYsIDEzNDhweCAxNzcwcHggIzMzMmYyZiwgMTM0OXB4IDE5ODhweCAjMzMyZjJmLCA1NDlweCAyMjdweCAjMzMyZjJmLCA2NzFweCAyNHB4ICMzMzJmMmYsIDE1ODFweCAxNDMwcHggIzMzMmYyZiwgMjEycHggMTk3OXB4ICMzMzJmMmYsIDE5MTRweCAxMDgzcHggIzMzMmYyZiwgMTA1NnB4IDk1MHB4ICMzMzJmMmYsIDYzNXB4IDk4OXB4ICMzMzJmMmYsIDEyMzZweCA1NzFweCAjMzMyZjJmLCAyMjNweCAxNjM0cHggIzMzMmYyZiwgMTU2NHB4IDcyOHB4ICMzMzJmMmYsIDExMnB4IDkwOHB4ICMzMzJmMmYsIDE1MTBweCA0NTlweCAjMzMyZjJmLCA4ODRweCAxMjgycHggIzMzMmYyZiwgMTIwMXB4IDE5NjhweCAjMzMyZjJmLCAxMzM2cHggNTU4cHggIzMzMmYyZiwgMTA4OXB4IDkxOHB4ICMzMzJmMmYsIDE1NzZweCAxODI4cHggIzMzMmYyZiwgOTVweCA5OXB4ICMzMzJmMmYsIDQyM3B4IDI2NXB4ICMzMzJmMmYsIDE3MThweCAyMzJweCAjMzMyZjJmLCAxMDdweCA3ODVweCAjMzMyZjJmLCAxMTA1cHggODU0cHggIzMzMmYyZiwgMTM3MHB4IDE1NTRweCAjMzMyZjJmLCA0OTVweCA0MDdweCAjMzMyZjJmLCAxNDI2cHggNDgxcHggIzMzMmYyZiwgODI4cHggMTIyNnB4ICMzMzJmMmYsIDExMDRweCAyMTFweCAjMzMyZjJmLCAxMDY0cHggMTQ4MHB4ICMzMzJmMmYsIDEwMjlweCA5NjdweCAjMzMyZjJmLCAxNzE3cHggNTAzcHggIzMzMmYyZiwgNDUycHggMTQ2NHB4ICMzMzJmMmYsIDE5NDJweCA0NTBweCAjMzMyZjJmLCAxMjE1cHggMTMxMHB4ICMzMzJmMmYsIDM3NHB4IDU1NHB4ICMzMzJmMmYsIDE1NjBweCA2OTNweCAjMzMyZjJmLCA4M3B4IDM5OHB4ICMzMzJmMmYsIDM4NXB4IDExNjZweCAjMzMyZjJmLCAxNTU4cHggNzA0cHggIzMzMmYyZiwgNjVweCAzODBweCAjMzMyZjJmLCAxMzk5cHggMTEzM3B4ICMzMzJmMmYsIDg2MHB4IDM3NXB4ICMzMzJmMmYsIDY0MnB4IDQ0OXB4ICMzMzJmMmYsIDU3N3B4IDU3OHB4ICMzMzJmMmYsIDYwN3B4IDEyOTVweCAjMzMyZjJmLCAxODY4cHggMzkwcHggIzMzMmYyZiwgMTY5NnB4IDE4MzNweCAjMzMyZjJmLCAxMTkxcHggMTMxMnB4ICMzMzJmMmYsIDQxOHB4IDEzODRweCAjMzMyZjJmLCAxMjA3cHggMTA3OXB4ICMzMzJmMmYsIDE2cHggNjVweCAjMzMyZjJmLCAxNDk4cHggMTk2cHggIzMzMmYyZiwgMTQ2OHB4IDEyMzhweCAjMzMyZjJmLCAxODEwcHggMTU2cHggIzMzMmYyZiwgNzQ0cHggOTI2cHggIzMzMmYyZiwgMTlweCAxNzY1cHggIzMzMmYyZiwgMTQzNnB4IDkwNHB4ICMzMzJmMmYsIDE0NzRweCAxNDQ3cHggIzMzMmYyZiwgODhweCAxODE0cHggIzMzMmYyZiwgMTg4MXB4IDExOTdweCAjMzMyZjJmLCAxNTcwcHggNTQwcHggIzMzMmYyZiwgMTk2NXB4IDE1MjNweCAjMzMyZjJmLCAxNDU1cHggNDJweCAjMzMyZjJmLCAxMzdweCAyMDlweCAjMzMyZjJmLCAxMTg2cHggNDBweCAjMzMyZjJmLCAxNjdweCAxNjcwcHggIzMzMmYyZiwgMTQ1M3B4IDEyNjRweCAjMzMyZjJmLCAyODhweCA2ODJweCAjMzMyZjJmLCAxMjNweCAxMTk3cHggIzMzMmYyZiwgMTk3MHB4IDExNzFweCAjMzMyZjJmLCAxNTVweCA5OTRweCAjMzMyZjJmLCA2MDFweCA1MDhweCAjMzMyZjJmLCAyOTBweCA0NTZweCAjMzMyZjJmLCA0MTlweCAxOTUzcHggIzMzMmYyZiwgMjczcHggNzRweCAjMzMyZjJmLCAxMjYycHggNDYwcHggIzMzMmYyZiwgMTYxMXB4IDEzOTZweCAjMzMyZjJmLCAxNTc2cHggNThweCAjMzMyZjJmLCA5OTVweCAxNTE0cHggIzMzMmYyZiwgMTAzOXB4IDEyMjlweCAjMzMyZjJmLCA4MTdweCAxNTIzcHggIzMzMmYyZiwgMTU5OHB4IDc0OHB4ICMzMzJmMmYsIDEzNjhweCAxNzY0cHggIzMzMmYyZiwgOTU5cHggMTY4OHB4ICMzMzJmMmYsIDEyNzdweCAzMTFweCAjMzMyZjJmLCAxNjUxcHggMzE5cHggIzMzMmYyZiwgMTcxOXB4IDEzOTJweCAjMzMyZjJmLCAxNDQ5cHggMjgycHggIzMzMmYyZiwgMTk2OXB4IDc1NnB4ICMzMzJmMmYsIDQ1OHB4IDE4NnB4ICMzMzJmMmYsIDg1N3B4IDk3NnB4ICMzMzJmMmYsIDE1NThweCA0MjRweCAjMzMyZjJmLCAxMzE0cHggMTEyNnB4ICMzMzJmMmYsIDEwMTBweCA2NzBweCAjMzMyZjJmLCA1ODRweCAxNDdweCAjMzMyZjJmLCA1MDdweCAxOTVweCAjMzMyZjJmLCA4ODNweCA2NjhweCAjMzMyZjJmLCAyMDAwcHggMTA1MnB4ICMzMzJmMmYsIDE1MzJweCAxMjU3cHggIzMzMmYyZiwgOTE5cHggMTQxMnB4ICMzMzJmMmYsIDEwNDhweCAxNzIycHggIzMzMmYyZiwgMTY2OXB4IDcyOHB4ICMzMzJmMmYsIDE0MzNweCAzODJweCAjMzMyZjJmLCAxNDA0cHggNjk0cHggIzMzMmYyZiwgNTkxcHggMTQ5MnB4ICMzMzJmMmYsIDEyODNweCA5MjRweCAjMzMyZjJmLCA1OXB4IDEyNDRweCAjMzMyZjJmLCAxNDY1cHggMTY4NnB4ICMzMzJmMmYsIDQwNHB4IDE4NDZweCAjMzMyZjJmLCAxNTM0cHggNzk5cHggIzMzMmYyZiwgMTMwMHB4IDQwOXB4ICMzMzJmMmYsIDg1MXB4IDExMThweCAjMzMyZjJmLCAyMTZweCA2NTZweCAjMzMyZjJmLCA0MzJweCAxMTYycHggIzMzMmYyZiwgNTc3cHggMTk1N3B4ICMzMzJmMmYsIDI3OHB4IDc0OXB4ICMzMzJmMmYsIDEzM3B4IDQxM3B4ICMzMzJmMmYsIDE1MjRweCA4MDZweCAjMzMyZjJmLCAxNjAwcHggMzYwcHggIzMzMmYyZiwgNDI2cHggMjBweCAjMzMyZjJmLCA4MzVweCA3NDZweCAjMzMyZjJmLCAxNjI2cHggNDQ4cHggIzMzMmYyZiwgMTQ5NnB4IDEzcHggIzMzMmYyZiwgMTA4OXB4IDEzNTZweCAjMzMyZjJmLCA5NDZweCA1MTRweCAjMzMyZjJmLCAxOTQ0cHggMTEyMXB4ICMzMzJmMmYsIDE4NzFweCA1OTRweCAjMzMyZjJmLCA4OThweCA2MzNweCAjMzMyZjJmLCA2NzJweCAxMDgycHggIzMzMmYyZiwgNDI5cHggNDNweCAjMzMyZjJmLCAxMjk4cHggMTcwNXB4ICMzMzJmMmYsIDE4MTBweCAxNTAxcHggIzMzMmYyZiwgMTY4N3B4IDQxM3B4ICMzMzJmMmYsIDE5MDJweCA2ODdweCAjMzMyZjJmLCAxNjQ5cHggMTMzNXB4ICMzMzJmMmYsIDEyNzlweCA1OTJweCAjMzMyZjJmLCAxNDk5cHggMTM3MHB4ICMzMzJmMmYsIDE2NDJweCA1NTZweCAjMzMyZjJmLCA1MDZweCA0ODlweCAjMzMyZjJmLCA4NzZweCAxMTM1cHggIzMzMmYyZiwgMTY4NXB4IDE3MTlweCAjMzMyZjJmLCAxNzg4cHggMTA2MXB4ICMzMzJmMmYsIDE0NzJweCAxNTE3cHggIzMzMmYyZiwgMTgzcHggMTQ5MHB4ICMzMzJmMmYsIDIzNnB4IDY2N3B4ICMzMzJmMmYsIDI2MXB4IDE0OTdweCAjMzMyZjJmLCA4NDJweCAxMzlweCAjMzMyZjJmLCA2NDdweCA3MDlweCAjMzMyZjJmLCAxNDMwcHggMTQwcHggIzMzMmYyZiwgNDIxcHggMTg1NXB4ICMzMzJmMmYsIDIwM3B4IDEyOXB4ICMzMzJmMmYsIDE2OHB4IDE0MnB4ICMzMzJmMmYsIDI2NHB4IDQ5MnB4ICMzMzJmMmYsIDEzNjZweCAyMDRweCAjMzMyZjJmLCA2NzNweCAxMzYxcHggIzMzMmYyZiwgMTczOXB4IDEwNjdweCAjMzMyZjJmLCAxOTM1cHggNjk5cHggIzMzMmYyZiwgOTcwcHggNTEycHggIzMzMmYyZiwgMTE5MXB4IDgyOHB4ICMzMzJmMmYsIDE5MzFweCAxMjU2cHggIzMzMmYyZiwgMTMwNXB4IDEwMThweCAjMzMyZjJmLCAxNzEycHggMzQ3cHggIzMzMmYyZiwgMTcwMnB4IDk0NnB4ICMzMzJmMmYsIDUyN3B4IDEyMDBweCAjMzMyZjJmLCAxODdweCA1OTJweCAjMzMyZjJmLCA3NTRweCA4MDJweCAjMzMyZjJmLCAxNzI4cHggNjgwcHggIzMzMmYyZiwgMTEwMHB4IDE1MjBweCAjMzMyZjJmLCA0ODBweCAxNzQwcHggIzMzMmYyZiwgNzcxcHggMTQ4OHB4ICMzMzJmMmYsIDEzMzBweCA2NzlweCAjMzMyZjJmLCA4MjNweCAxOTA4cHggIzMzMmYyZiwgMTQzNHB4IDU2cHggIzMzMmYyZiwgMTUxMHB4IDExNzJweCAjMzMyZjJmLCAxMjA3cHggNDk2cHggIzMzMmYyZiwgMTUwOHB4IDE5NzBweCAjMzMyZjJmLCA0OTZweCA2OTlweCAjMzMyZjJmLCA5NDJweCAxMTZweCAjMzMyZjJmLCAxMzI0cHggNDJweCAjMzMyZjJmLCAxMDA5cHggMTgxNXB4ICMzMzJmMmYsIDEwNjJweCAxNjk0cHggIzMzMmYyZiwgMTg3N3B4IDIwMDBweCAjMzMyZjJmLCA5NDZweCA0MzlweCAjMzMyZjJmLCAxOTE2cHggMTM3NXB4ICMzMzJmMmYsIDE4MzZweCAzNDhweCAjMzMyZjJmLCA5OTdweCA1NTdweCAjMzMyZjJmLCAxNzI0cHggMTE3N3B4ICMzMzJmMmYsIDE1MzRweCAyNjZweCAjMzMyZjJmLCA1NjhweCA4MjVweCAjMzMyZjJmLCAxNzE5cHggMTY4MnB4ICMzMzJmMmYsIDE2MDVweCAzMzdweCAjMzMyZjJmLCA5NjhweCAxMzU0cHggIzMzMmYyZiwgMTk0MnB4IDEzNDJweCAjMzMyZjJmLCAzNDRweCAxNTk2cHggIzMzMmYyZiwgMTEzcHggMTk5OHB4ICMzMzJmMmYsIDk2M3B4IDEwOTVweCAjMzMyZjJmLCA0NjBweCAxMzg2cHggIzMzMmYyZiwgMTk4NnB4IDY5NHB4ICMzMzJmMmYsIDE5MDFweCA0NjdweCAjMzMyZjJmLCAxOTcwcHggMTMzOHB4ICMzMzJmMmYsIDEyMHB4IDcwNnB4ICMzMzJmMmYsIDE3NjFweCAxOTEycHggIzMzMmYyZiwgNzg4cHggMTE3N3B4ICMzMzJmMmYsIDEwMTJweCAxMTczcHggIzMzMmYyZiwgMTk2OHB4IDUzOHB4ICMzMzJmMmYsIDE1NTJweCA3MjdweCAjMzMyZjJmLCAyNzNweCAxMjc1cHggIzMzMmYyZiwgOTZweCA2NTlweCAjMzMyZjJmLCAxMTU3cHggMTYyM3B4ICMzMzJmMmYsIDEzMTRweCA5MjFweCAjMzMyZjJmLCA0OTJweCAxOTk2cHggIzMzMmYyZiwgNTdweCAxOTU4cHggIzMzMmYyZiwgMTk0cHggMTc1OXB4ICMzMzJmMmYsIDE1OHB4IDE5NzFweCAjMzMyZjJmLCAxOTY0cHggMjg1cHggIzMzMmYyZiwgMTY0M3B4IDY0N3B4ICMzMzJmMmYsIDUwNHB4IDE2NDRweCAjMzMyZjJmLCA0NTdweCAxNjk1cHggIzMzMmYyZiwgMTEyOXB4IDY4MnB4ICMzMzJmMmYsIDgxM3B4IDUxNnB4ICMzMzJmMmYsIDE4NjJweCAzM3B4ICMzMzJmMmYsIDI4MHB4IDM2cHggIzMzMmYyZiwgNTYwcHggMTE3NHB4ICMzMzJmMmYsIDczMnB4IDQxOXB4ICMzMzJmMmYsIDE0MjBweCAzMzZweCAjMzMyZjJmLCA0NDRweCAxODQ5cHggIzMzMmYyZiwgMzU0cHggMTkxOXB4ICMzMzJmMmYsIDEyMTVweCA0MDhweCAjMzMyZjJmLCA1MjdweCAxMjhweCAjMzMyZjJmLCAxNDk0cHggMTUzMXB4ICMzMzJmMmYsIDE0NzZweCA3NThweCAjMzMyZjJmLCA2MjVweCAyMzhweCAjMzMyZjJmLCA2NjlweCAyMDlweCAjMzMyZjJmLCAxOTAxcHggMTAxcHggIzMzMmYyZiwgODQ5cHggMTkwN3B4ICMzMzJmMmYsIDM1OXB4IDE0NjVweCAjMzMyZjJmLCAxODc2cHggMzgzcHggIzMzMmYyZiwgMTg3cHggMTI4M3B4ICMzMzJmMmYsIDE5NTVweCAxNTA0cHggIzMzMmYyZiwgNjAxcHggMTE1N3B4ICMzMzJmMmYsIDQ1NHB4IDE5NzNweCAjMzMyZjJmLCA0NDRweCAxMjZweCAjMzMyZjJmLCA0NDRweCAxMDUzcHggIzMzMmYyZiwgMTUzNnB4IDE3MDRweCAjMzMyZjJmLCA1NzVweCA3MDFweCAjMzMyZjJmLCAxMDYzcHggNzczcHggIzMzMmYyZiwgMTMzMHB4IDEwMjVweCAjMzMyZjJmLCAxMTEycHggMTE2NnB4ICMzMzJmMmYsIDc0NnB4IDE3NTFweCAjMzMyZjJmLCA0ODZweCA5NTFweCAjMzMyZjJmLCA1ODVweCAxMDA5cHggIzMzMmYyZiwgMTEwM3B4IDE4NjZweCAjMzMyZjJmLCAzMzJweCAxNjIzcHggIzMzMmYyZiwgMTAxcHggOTk3cHggIzMzMmYyZiwgNDc2cHggMTE0MHB4ICMzMzJmMmYsIDEzNHB4IDEwNzdweCAjMzMyZjJmLCAxNjI0cHggNzA0cHggIzMzMmYyZiwgMTc3cHggMTYxNXB4ICMzMzJmMmYsIDk1OHB4IDUzM3B4ICMzMzJmMmYsIDQxOXB4IDEyNzBweCAjMzMyZjJmLCA4NjVweCAzODhweCAjMzMyZjJmLCAyMDAwcHggODkzcHggIzMzMmYyZiwgNzY5cHggMTE3NXB4ICMzMzJmMmYsIDcwMHB4IDYxMnB4ICMzMzJmMmYsIDE1NTlweCA4MTVweCAjMzMyZjJmLCAxNzBweCAyMDAwcHggIzMzMmYyZiwgMjUxcHggMTkwNXB4ICMzMzJmMmYsIDE2MjFweCAxMDQ4cHggIzMzMmYyZiwgNzE3cHggMTA3M3B4ICMzMzJmMmYsIDIwNHB4IDkwNXB4ICMzMzJmMmYsIDE0NjBweCAyNTJweCAjMzMyZjJmLCA1NTJweCAxMjU5cHggIzMzMmYyZiwgMTI5OHB4IDkzNXB4ICMzMzJmMmYsIDkxNXB4IDIxMnB4ICMzMzJmMmYsIDkwOHB4IDE1NzdweCAjMzMyZjJmLCAxMzFweCAxNTY1cHggIzMzMmYyZiwgOTY5cHggNTg3cHggIzMzMmYyZiwgMTc0OXB4IDEwODJweCAjMzMyZjJmLCAxNXB4IDI1MXB4ICMzMzJmMmYsIDM2MnB4IDE2NjZweCAjMzMyZjJmLCAxNjE1cHggODBweCAjMzMyZjJmLCA2NTVweCAxMThweCAjMzMyZjJmLCAxNjJweCA4MTdweCAjMzMyZjJmLCAzNjJweCAxODIwcHggIzMzMmYyZiwgMTE0MHB4IDEwNTFweCAjMzMyZjJmLCA3NzNweCA3MjlweCAjMzMyZjJmLCAxMTY0cHggOTg2cHggIzMzMmYyZiwgODU0cHggMjZweCAjMzMyZjJmLCA3NDdweCAxMDk1cHggIzMzMmYyZiwgMTM3NHB4IDczMXB4ICMzMzJmMmYsIDE5MzhweCAxNDQ2cHggIzMzMmYyZiwgMTIzOHB4IDE3NjdweCAjMzMyZjJmLCAxNzlweCAxNjU5cHggIzMzMmYyZiwgMTM1OHB4IDEyMTdweCAjMzMyZjJmLCA1NzJweCA0ODBweCAjMzMyZjJmLCA5NTZweCAxNzJweCAjMzMyZjJmLCAxNDU1cHggMTA2M3B4ICMzMzJmMmYsIDE5MjNweCA2MTNweCAjMzMyZjJmLCAxNjY3cHggMzQ0cHggIzMzMmYyZiwgMTEwNnB4IDE5MzNweCAjMzMyZjJmLCA3NXB4IDE2OXB4ICMzMzJmMmYsIDE1NjRweCA5NDVweCAjMzMyZjJmLCA3NzZweCAxNzYxcHggIzMzMmYyZiwgNzgzcHggMjI0cHggIzMzMmYyZiwgODEzcHggNzUzcHggIzMzMmYyZiwgMTY0NHB4IDQ5MHB4ICMzMzJmMmYsIDExMTdweCA2NDNweCAjMzMyZjJmLCA3ODBweCAzMDJweCAjMzMyZjJmLCAxODkzcHggNDgxcHggIzMzMmYyZiwgOThweCAxMTkycHggIzMzMmYyZiwgNzE4cHggMTg4MXB4ICMzMzJmMmYsIDE1NjFweCA4MjRweCAjMzMyZjJmLCA3NTNweCAxMzlweCAjMzMyZjJmLCA5MDdweCA1OTdweCAjMzMyZjJmLCAxODgxcHggMTMzM3B4ICMzMzJmMmYsIDE1NTBweCAxNTU3cHggIzMzMmYyZiwgNDE5cHggMTA0MXB4ICMzMzJmMmYsIDI0MHB4IDE5NjJweCAjMzMyZjJmLCA5MzhweCAxMTE2cHggIzMzMmYyZiwgNDU5cHggMTI0NXB4ICMzMzJmMmYsIDg0OXB4IDU0NHB4ICMzMzJmMmYsIDEzNDNweCAxNjQ0cHggIzMzMmYyZiwgMTQzOHB4IDE5OTFweCAjMzMyZjJmLCAxOTc3cHggMjkycHggIzMzMmYyZiwgMTc3MnB4IDY1OHB4ICMzMzJmMmYsIDEzODJweCAxMDA3cHggIzMzMmYyZiwgMjk2cHggOTk0cHggIzMzMmYyZiwgMTYxNnB4IDIwNXB4ICMzMzJmMmYsIDk4OXB4IDE1MDJweCAjMzMyZjJmLCAxMjAxcHggMTI5N3B4ICMzMzJmMmYsIDg5NXB4IDE4MzVweCAjMzMyZjJmLCAxNTk2cHggNjM3cHggIzMzMmYyZiwgMTYwMXB4IDI0cHggIzMzMmYyZiwgMTA5N3B4IDI0MHB4ICMzMzJmMmYsIDM2NHB4IDU2M3B4ICMzMzJmMmYsIDE2ODZweCAyMDhweCAjMzMyZjJmLCA2MTJweCAzMTVweCAjMzMyZjJmLCAxODQ4cHggMTE3cHggIzMzMmYyZiwgMTE2NnB4IDg3MXB4ICMzMzJmMmYsIDE2NjJweCA2MzFweCAjMzMyZjJmLCA2MjJweCA1NTBweCAjMzMyZjJmLCAxOTgycHggNDU4cHggIzMzMmYyZiwgMTI3NHB4IDQzOXB4ICMzMzJmMmYsIDE0NzFweCAxNTMxcHggIzMzMmYyZiwgOTlweCA3MDFweCAjMzMyZjJmLCAxNzVweCAxNDU2cHggIzMzMmYyZiwgOTE3cHggMTU4NXB4ICMzMzJmMmYsIDE4NzVweCAyNzdweCAjMzMyZjJmLCA1NTVweCA0NjBweCAjMzMyZjJmLCAxNjFweCAxMjkwcHggIzMzMmYyZiwgNzcwcHggMTM4MXB4ICMzMzJmMmYsIDE1NDhweCAxOTE2cHggIzMzMmYyZiwgNDgycHggMzY2cHggIzMzMmYyZiwgOTIzcHggNzkxcHggIzMzMmYyZiwgNTgycHggMjI1cHggIzMzMmYyZiwgNjFweCAzMDJweCAjMzMyZjJmLCAzODNweCA1MjFweCAjMzMyZjJmLCAxOTZweCA0NDFweCAjMzMyZjJmLCAzMDhweCAxOTQ4cHggIzMzMmYyZiwgNDI1cHggNDI2cHggIzMzMmYyZiwgNTg5cHggMTM0N3B4ICMzMzJmMmYsIDE0MDlweCAxNTI4cHggIzMzMmYyZiwgMTQ5MnB4IDQzOHB4ICMzMzJmMmYsIDE1NjhweCAxMDI3cHggIzMzMmYyZiwgMTM3N3B4IDE3MzBweCAjMzMyZjJmLCAxMTg3cHggMTY5M3B4ICMzMzJmMmYsIDE4MDRweCA1NTJweCAjMzMyZjJmLCAxODU4cHggMTUxMnB4ICMzMzJmMmYsIDIwNHB4IDE1NjFweCAjMzMyZjJmLCAyMzdweCA5OTFweCAjMzMyZjJmLCA3MjZweCAxMzM0cHggIzMzMmYyZiwgNzE1cHggMTI0NHB4ICMzMzJmMmYsIDE1MDJweCAxNzA0cHggIzMzMmYyZiwgMTAwOHB4IDc5MnB4ICMzMzJmMmYsIDEyMTBweCAxNzAwcHggIzMzMmYyZiwgMTMycHggMTY2MnB4ICMzMzJmMmYsIDE3NzBweCA2OThweCAjMzMyZjJmLCA4MTJweCAxNzA2cHggIzMzMmYyZiwgMjE1cHggNTIxcHggIzMzMmYyZiwgMTk0N3B4IDU3NHB4ICMzMzJmMmYsIDIwMXB4IDY2OXB4ICMzMzJmMmYsIDEyNjVweCAxNjRweCAjMzMyZjJmLCA5NHB4IDQ1M3B4ICMzMzJmMmYsIDM5M3B4IDE0NDFweCAjMzMyZjJmLCAxNDM5cHggODQ3cHggIzMzMmYyZiwgMTA4NnB4IDc5cHggIzMzMmYyZiwgNDAycHggNDcxcHggIzMzMmYyZiwgMTk3MHB4IDEyMjJweCAjMzMyZjJmLCAxMzUxcHggMzkxcHggIzMzMmYyZiwgOTRweCA1NjZweCAjMzMyZjJmLCA1OTRweCAxODk0cHggIzMzMmYyZiwgMzYzcHggMTgzNHB4ICMzMzJmMmYsIDI2NnB4IDE0MDBweCAjMzMyZjJmLCA4OTlweCA5NzRweCAjMzMyZjJmLCAxNTkycHggNTgycHggIzMzMmYyZiwgMTEyOXB4IDU2NnB4ICMzMzJmMmYsIDUzM3B4IDEyNzRweCAjMzMyZjJmLCA0ODVweCAzNzNweCAjMzMyZjJmLCA4ODJweCAxNzg3cHggIzMzMmYyZiwgMTkzN3B4IDYzcHggIzMzMmYyZiwgMTk4N3B4IDE5MjFweCAjMzMyZjJmLCA2NXB4IDc2M3B4ICMzMzJmMmYsIDk2MnB4IDQ0NnB4ICMzMzJmMmYsIDkycHggMTEyNXB4ICMzMzJmMmYsIDEyODFweCA0OTFweCAjMzMyZjJmLCAxNzA0cHggMjg0cHggIzMzMmYyZiwgMTkwNHB4IDkyMXB4ICMzMzJmMmYsIDQwNHB4IDMyOHB4ICMzMzJmMmYsIDEzMDFweCAxNjk2cHggIzMzMmYyZiwgNDIwcHggMTM0cHggIzMzMmYyZiwgMjM3cHggMjg1cHggIzMzMmYyZiwgNjA0cHggMTg4MXB4ICMzMzJmMmYsIDg3OXB4IDgxNnB4ICMzMzJmMmYsIDE3M3B4IDEzM3B4ICMzMzJmMmYsIDE0OTFweCAxODlweCAjMzMyZjJmLCAzNjlweCA1NDhweCAjMzMyZjJmLCA0MjFweCA1MDNweCAjMzMyZjJmLCAxNTUzcHggMTg4M3B4ICMzMzJmMmYsIDg2M3B4IDEwNjhweCAjMzMyZjJmLCAxNTI2cHggMTExNXB4ICMzMzJmMmYsIDYzNnB4IDEyNThweCAjMzMyZjJmLCA3NzFweCAxMjI3cHggIzMzMmYyZiwgOTAycHggODM3cHggIzMzMmYyZiwgMTM4NXB4IDgxM3B4ICMzMzJmMmYsIDE5MDhweCA5NTdweCAjMzMyZjJmLCAxMDEycHggNDg1cHggIzMzMmYyZiwgODM5cHggNjc2cHggIzMzMmYyZiwgNzYzcHggMTYwMnB4ICMzMzJmMmYsIDE1NzBweCAxNDdweCAjMzMyZjJmLCAxMDlweCA1OTFweCAjMzMyZjJmLCAyNzJweCA3NzRweCAjMzMyZjJmLCAxNTE5cHggMzk1cHggIzMzMmYyZiwgNTU4cHggNjhweCAjMzMyZjJmLCAxMzk5cHggMjY0cHggIzMzMmYyZiwgMTk1OHB4IDQyM3B4ICMzMzJmMmYsIDE2MHB4IDQwcHggIzMzMmYyZiwgOTk0cHggMjgzcHggIzMzMmYyZiwgMTk2OXB4IDEwNTFweCAjMzMyZjJmLCA5NDRweCAxMDAwcHggIzMzMmYyZiwgMjI3cHggMTQ3NHB4ICMzMzJmMmYsIDE1N3B4IDE3NDRweCAjMzMyZjJmLCAxMjYxcHggNjk2cHggIzMzMmYyZiwgMTk1MHB4IDY5OXB4ICMzMzJmMmYsIDc3OHB4IDE4NThweCAjMzMyZjJmLCAxOTE1cHggMzAzcHggIzMzMmYyZiwgODVweCAxMTM1cHggIzMzMmYyZiwgMTkyM3B4IDU2cHggIzMzMmYyZiwgMzAycHggMTI1OHB4ICMzMzJmMmYsIDE3MzJweCAxNTA0cHggIzMzMmYyZiwgMTM0OXB4IDYxOXB4ICMzMzJmMmYsIDE2ODdweCAxNjAwcHggIzMzMmYyZiwgMTUwM3B4IDU3MHB4ICMzMzJmMmYsIDQ1N3B4IDEwNzVweCAjMzMyZjJmLCAzM3B4IDE5NzFweCAjMzMyZjJmLCAxODkzcHggNzMycHggIzMzMmYyZiwgMTc4NHB4IDEyNTdweCAjMzMyZjJmLCAxMDk1cHggMTMwOXB4ICMzMzJmMmYsIDE1MnB4IDE1MDBweCAjMzMyZjJmLCAxMzQxcHggNTAwcHggIzMzMmYyZiwgMjA3cHggMTc4N3B4ICMzMzJmMmYsIDEzMjVweCA2MzRweCAjMzMyZjJmLCAxNzIzcHggNzNweCAjMzMyZjJmLCAyNzBweCA4ODVweCAjMzMyZjJmLCA4NTdweCAxMTU2cHggIzMzMmYyZiwgMzU0cHggMTg3MHB4ICMzMzJmMmYsIDI0OHB4IDE1MTRweCAjMzMyZjJmLCA4ODlweCAxMzI0cHggIzMzMmYyZiwgMTkxMHB4IDQ2MHB4ICMzMzJmMmYsIDE4MjRweCAxMjY3cHggIzMzMmYyZiwgMTc3OXB4IDEyNXB4ICMzMzJmMmYsIDQ2MnB4IDE5OHB4ICMzMzJmMmYsIDM3MnB4IDIxMHB4ICMzMzJmMmYsIDk5MnB4IDQ5OHB4ICMzMzJmMmYsIDg3NnB4IDgyNnB4ICMzMzJmMmYsIDE4NDFweCAxMTRweCAjMzMyZjJmLCAxOTc4cHggNTI3cHggIzMzMmYyZiwgMTY4N3B4IDEyMTZweCAjMzMyZjJmLCA3OTVweCAxMzU3cHggIzMzMmYyZiwgMTM4cHggMTU1OXB4ICMzMzJmMmYsIDE2MjVweCA2NDNweCAjMzMyZjJmLCAxNDFweCA5MTBweCAjMzMyZjJmLCA1MDNweCAxNzAxcHggIzMzMmYyZiwgMTIxOXB4IDE4OTZweCAjMzMyZjJmLCA1NjRweCAxNjc1cHggIzMzMmYyZiwgODJweCAxMjg2cHggIzMzMmYyZiwgMTI2NnB4IDM3OXB4ICMzMzJmMmYsIDUxOHB4IDM3MHB4ICMzMzJmMmYsIDU2NnB4IDMyM3B4ICMzMzJmMmYsIDkyMHB4IDE1NzdweCAjMzMyZjJmLCAxMDkzcHggNjczcHggIzMzMmYyZiwgMTQxMXB4IDQyMnB4ICMzMzJmMmYsIDE1MTBweCAxMzg1cHggIzMzMmYyZiwgMTAzOXB4IDIyMHB4ICMzMzJmMmYsIDY0MnB4IDE2NzVweCAjMzMyZjJmLCA5MzFweCAxNTIwcHggIzMzMmYyZiwgMTkxNHB4IDE4ODVweCAjMzMyZjJmLCAxMDM4cHggMTcyN3B4ICMzMzJmMmYsIDExMzVweCAxOTM1cHggIzMzMmYyZiwgMTkwNHB4IDExMzNweCAjMzMyZjJmLCAxMjVweCA0MXB4ICMzMzJmMmYsIDEwMTlweCA3ODZweCAjMzMyZjJmLCAxNnB4IDE5MjVweCAjMzMyZjJmLCA4NzZweCA2NDRweCAjMzMyZjJmLCAxMTc3cHggMTA4NHB4ICMzMzJmMmYsIDU3NnB4IDgzNnB4ICMzMzJmMmYsIDI0OHB4IDQ2cHggIzMzMmYyZiwgOTM2cHggMTcyMHB4ICMzMzJmMmYsIDQwNnB4IDk4M3B4ICMzMzJmMmYsIDE2NjBweCA4MDFweCAjMzMyZjJmLCA3NTZweCAzNTdweCAjMzMyZjJmLCA1cHggMTI4cHggIzMzMmYyZiwgMTk3NHB4IDExMTBweCAjMzMyZjJmLCAxNjk0cHggMTYzMnB4ICMzMzJmMmYsIDE5NjlweCAxNDIwcHggIzMzMmYyZiwgNTE1cHggMTE3MHB4ICMzMzJmMmYsIDE1M3B4IDg0NXB4ICMzMzJmMmYsIDEwNzdweCAxMTY3cHggIzMzMmYyZiwgMTQxN3B4IDE3NjRweCAjMzMyZjJmLCAxOTM4cHggMTY0cHggIzMzMmYyZiwgMTE3OXB4IDEwMTVweCAjMzMyZjJmLCAzOTdweCA3OTdweCAjMzMyZjJmLCAzOTZweCAxNzk4cHggIzMzMmYyZiwgOTkwcHggOTdweCAjMzMyZjJmLCAxNTAzcHggMTE1OXB4ICMzMzJmMmYsIDU4NXB4IDEwNDNweCAjMzMyZjJmLCA3MHB4IDE4MnB4ICMzMzJmMmYsIDUyMXB4IDE3NDhweCAjMzMyZjJmLCAxMjJweCAxNDc2cHggIzMzMmYyZiwgOTBweCA3MzNweCAjMzMyZjJmLCA5NjlweCAyMDBweCAjMzMyZjJmLCA1MDhweCA2NDFweCAjMzMyZjJmLCAxNDc1cHggNTMycHggIzMzMmYyZiwgMzY3cHggNjUzcHggIzMzMmYyZiwgMTgxOXB4IDg0MnB4ICMzMzJmMmYsIDUxNXB4IDE4MDJweCAjMzMyZjJmLCA3NDlweCAxMDEycHggIzMzMmYyZiwgMTQxMnB4IDE5NzFweCAjMzMyZjJmLCAxMzExcHggNjc2cHggIzMzMmYyZiwgNjY2cHggNzcwcHggIzMzMmYyZiwgMTE5OHB4IDIxOHB4ICMzMzJmMmYsIDEwOTVweCA2NzZweCAjMzMyZjJmLCAxMDA4cHggMzgycHggIzMzMmYyZiwgMTIxcHggMTMyOHB4ICMzMzJmMmYsIDkxM3B4IDE2NDBweCAjMzMyZjJmLCAxOTI0cHggNDM4cHggIzMzMmYyZiwgMTQ2cHggMTg0OHB4ICMzMzJmMmYsIDE3MnB4IDUxM3B4ICMzMzJmMmYsIDE3MzVweCAxNTc0cHggIzMzMmYyZiwgNjM3cHggMTYyNnB4ICMzMzJmMmYsIDcxcHggMzAxcHggIzMzMmYyZiwgNzcwcHggNjY1cHggIzMzMmYyZiwgOTFweCAxMzI0cHggIzMzMmYyZiwgMTY0NXB4IDE3MTRweCAjMzMyZjJmLCAxMTk4cHggMTIyMXB4ICMzMzJmMmYsIDQzNnB4IDYxMXB4ICMzMzJmMmYsIDU0MXB4IDE2MzhweCAjMzMyZjJmLCAxMzZweCA3MjZweCAjMzMyZjJmLCA4MnB4IDE2NHB4ICMzMzJmMmYsIDEzNzFweCAxNXB4ICMzMzJmMmYsIDE0NjRweCA0ODdweCAjMzMyZjJmLCAyNDFweCAyM3B4ICMzMzJmMmYsIDE2MTlweCAxODE5cHggIzMzMmYyZiwgODMzcHggMTk4OHB4ICMzMzJmMmZ9I2JsYWNrLXN0YXJzLW1lZHt3aWR0aDoycHg7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxNDlweCAxMTQ2cHggIzMzMmYyZiwgNzg5cHggODQ0cHggIzMzMmYyZiwgMTAwOXB4IDExNzdweCAjMzMyZjJmLCA1OTVweCAxMDMycHggIzMzMmYyZiwgMTI4NXB4IDE0MjRweCAjMzMyZjJmLCAyNzhweCAxODUxcHggIzMzMmYyZiwgMTgxcHggMjg1cHggIzMzMmYyZiwgMTIwM3B4IDkzMnB4ICMzMzJmMmYsIDE2NTlweCAxMDE0cHggIzMzMmYyZiwgMTEyOXB4IDE3MzZweCAjMzMyZjJmLCAxODk4cHggMTYxOHB4ICMzMzJmMmYsIDE1ODVweCAxNTc5cHggIzMzMmYyZiwgMTExM3B4IDEyMjRweCAjMzMyZjJmLCAxOTE3cHggNjYxcHggIzMzMmYyZiwgODU4cHggMzY4cHggIzMzMmYyZiwgMjM2cHggNjA3cHggIzMzMmYyZiwgODA2cHggODI0cHggIzMzMmYyZiwgMTQ1OXB4IDE3ODFweCAjMzMyZjJmLCAxNTczcHggNTcwcHggIzMzMmYyZiwgMTk1M3B4IDQzcHggIzMzMmYyZiwgMTg1cHggNzA4cHggIzMzMmYyZiwgMTYzOXB4IDU4M3B4ICMzMzJmMmYsIDg4MHB4IDE5OTVweCAjMzMyZjJmLCAxMjE0cHggOTMwcHggIzMzMmYyZiwgNjU5cHggNDBweCAjMzMyZjJmLCAxMjc4cHggMTYxNHB4ICMzMzJmMmYsIDg3MHB4IDgzNnB4ICMzMzJmMmYsIDgwcHggMTMyNHB4ICMzMzJmMmYsIDE4NDlweCAxNTI3cHggIzMzMmYyZiwgMzUxcHggMTA0cHggIzMzMmYyZiwgMTU0OHB4IDEyMTBweCAjMzMyZjJmLCAxMjlweCA3NjhweCAjMzMyZjJmLCA1NDdweCA0NzRweCAjMzMyZjJmLCAxNjYycHggMTc2NnB4ICMzMzJmMmYsIDEyNDhweCA3MTJweCAjMzMyZjJmLCAxMDExcHggMTc1NHB4ICMzMzJmMmYsIDIwNHB4IDE2NjRweCAjMzMyZjJmLCAxMzQzcHggMTI5NnB4ICMzMzJmMmYsIDkxNXB4IDE3MjZweCAjMzMyZjJmLCAyNzFweCAyNDRweCAjMzMyZjJmLCA1OHB4IDM0OXB4ICMzMzJmMmYsIDE5NDZweCA4MDBweCAjMzMyZjJmLCAxMzgwcHggMzQ0cHggIzMzMmYyZiwgMjQwcHggMTYwN3B4ICMzMzJmMmYsIDExMzZweCAxNTkxcHggIzMzMmYyZiwgMTU5MnB4IDEyMDlweCAjMzMyZjJmLCAxOTU5cHggMTQ5M3B4ICMzMzJmMmYsIDEyMjBweCA1OTNweCAjMzMyZjJmLCAyOXB4IDE2MjFweCAjMzMyZjJmLCA2MzlweCAxMTRweCAjMzMyZjJmLCA3MDFweCAxODM4cHggIzMzMmYyZiwgNTA5cHggMTU0N3B4ICMzMzJmMmYsIDkzcHggNjY5cHggIzMzMmYyZiwgMTgzMHB4IDMycHggIzMzMmYyZiwgMTczMHB4IDEyOTJweCAjMzMyZjJmLCAxMDMxcHggMTYwN3B4ICMzMzJmMmYsIDExODhweCAxNzUycHggIzMzMmYyZiwgNDQ0cHggMTU4NXB4ICMzMzJmMmYsIDEyMTJweCAxMDI1cHggIzMzMmYyZiwgNjg1cHggOTBweCAjMzMyZjJmLCAxNDQ3cHggMTQ4OHB4ICMzMzJmMmYsIDQzMXB4IDE3OTNweCAjMzMyZjJmLCAzM3B4IDczN3B4ICMzMzJmMmYsIDg3MnB4IDEyNDNweCAjMzMyZjJmLCAxOTkxcHggNzQzcHggIzMzMmYyZiwgNzQ1cHggOTM5cHggIzMzMmYyZiwgMTIyNnB4IDg2MnB4ICMzMzJmMmYsIDEyMThweCAxODEzcHggIzMzMmYyZiwgMTU3NnB4IDQ2N3B4ICMzMzJmMmYsIDE4MDFweCAyOTVweCAjMzMyZjJmLCAxMTcycHggNTg4cHggIzMzMmYyZiwgMTE2cHggOTkzcHggIzMzMmYyZiwgNjEwcHggMTAwNXB4ICMzMzJmMmYsIDE5NTlweCAxOTAxcHggIzMzMmYyZiwgNjgwcHggNzAxcHggIzMzMmYyZiwgMTIzMnB4IDE3ODZweCAjMzMyZjJmLCAxMTIwcHggMTM2NnB4ICMzMzJmMmYsIDE0MzhweCA4MDVweCAjMzMyZjJmLCA0NDlweCAxMTY0cHggIzMzMmYyZiwgMzI5cHggMTUxNXB4ICMzMzJmMmYsIDEwMDBweCAxMTVweCAjMzMyZjJmLCA2NDBweCA1ODVweCAjMzMyZjJmLCAxOTEycHggMTc3cHggIzMzMmYyZiwgODI1cHggMTQ0NHB4ICMzMzJmMmYsIDEwNDNweCA1MjJweCAjMzMyZjJmLCAxMDU4cHggMTQyOHB4ICMzMzJmMmYsIDk2NHB4IDk1cHggIzMzMmYyZiwgOTUycHggMTEzMXB4ICMzMzJmMmYsIDI2N3B4IDE0MTVweCAjMzMyZjJmLCA4MjdweCA0NjdweCAjMzMyZjJmLCA3MDZweCA3NzJweCAjMzMyZjJmLCAxMDI0cHggMTM3cHggIzMzMmYyZiwgNzg1cHggMzgzcHggIzMzMmYyZiwgMzQzcHggMTA2NXB4ICMzMzJmMmYsIDE2MDBweCAzNjJweCAjMzMyZjJmLCAzNzRweCAxNTY0cHggIzMzMmYyZiwgMjM2cHggMTQ0MXB4ICMzMzJmMmYsIDgwOHB4IDQyNHB4ICMzMzJmMmYsIDE3OTRweCAxNzkxcHggIzMzMmYyZiwgMTY1MHB4IDEyODBweCAjMzMyZjJmLCAxMnB4IDkyOHB4ICMzMzJmMmYsIDE1MzRweCAxOTc5cHggIzMzMmYyZiwgNTAzcHggNDQ1cHggIzMzMmYyZiwgMjUzcHggMTA0NXB4ICMzMzJmMmYsIDE1MTlweCA4MTdweCAjMzMyZjJmLCAzOThweCAxMjYwcHggIzMzMmYyZiwgNDY0cHggOTk2cHggIzMzMmYyZiwgOTk1cHggMjI3cHggIzMzMmYyZiwgMTcyNnB4IDc1M3B4ICMzMzJmMmYsIDEzODdweCAxMTQxcHggIzMzMmYyZiwgMTg3MnB4IDEzNDdweCAjMzMyZjJmLCA5NDFweCA4MzRweCAjMzMyZjJmLCA0MzFweCAxNTAwcHggIzMzMmYyZiwgODgxcHggNTQ3cHggIzMzMmYyZiwgNTNweCAxMjkzcHggIzMzMmYyZiwgMTc0NnB4IDE4NTVweCAjMzMyZjJmLCAxODY3cHggMTYzcHggIzMzMmYyZiwgMTUxM3B4IDIzNXB4ICMzMzJmMmYsIDE1MDBweCA2MjNweCAjMzMyZjJmLCAxODgxcHggMTk4MHB4ICMzMzJmMmYsIDExOThweCAxNjQ4cHggIzMzMmYyZiwgMjg3cHggMTIzM3B4ICMzMzJmMmYsIDEwMDlweCAxMDgycHggIzMzMmYyZiwgMTYwOXB4IDEwODRweCAjMzMyZjJmLCAxOTE2cHggMzI1cHggIzMzMmYyZiwgODVweCAxODQycHggIzMzMmYyZiwgMTkzN3B4IDEyNjlweCAjMzMyZjJmLCA5cHggMTI4cHggIzMzMmYyZiwgMjg5cHggMzMzcHggIzMzMmYyZiwgMTA3OXB4IDE4MzVweCAjMzMyZjJmLCAyNnB4IDE1NzJweCAjMzMyZjJmLCAxNDA0cHggMTEyNXB4ICMzMzJmMmYsIDEyMTVweCA4NTBweCAjMzMyZjJmLCAzMDVweCA1MjBweCAjMzMyZjJmLCAxMTQ1cHggMTAzcHggIzMzMmYyZiwgMjMycHggODcwcHggIzMzMmYyZiwgODQ3cHggMzMzcHggIzMzMmYyZiwgNTg0cHggNjQwcHggIzMzMmYyZiwgODM2cHggODg2cHggIzMzMmYyZiwgMTcyMXB4IDQ2MnB4ICMzMzJmMmYsIDE2MDRweCA0MzRweCAjMzMyZjJmLCAyODRweCAxNDI4cHggIzMzMmYyZiwgMTA3NXB4IDY2MHB4ICMzMzJmMmYsIDg0NnB4IDExODFweCAjMzMyZjJmLCAzNDhweCAxMzgycHggIzMzMmYyZiwgMTU1M3B4IDEyODVweCAjMzMyZjJmLCAxNDg2cHggMTM3NnB4ICMzMzJmMmYsIDE0OTZweCA1MzFweCAjMzMyZjJmLCAxNDE3cHggMTk0cHggIzMzMmYyZiwgNTI0cHggOXB4ICMzMzJmMmYsIDEzNzlweCAxMTMycHggIzMzMmYyZiwgNzczcHggMTE5N3B4ICMzMzJmMmYsIDg1cHggMTk0NnB4ICMzMzJmMmYsIDE4MzRweCAxMTU3cHggIzMzMmYyZiwgMTY3MHB4IDMxNXB4ICMzMzJmMmYsIDRweCA4OTdweCAjMzMyZjJmLCAxMTE3cHggMTk3OXB4ICMzMzJmMmYsIDc3NHB4IDEyNTlweCAjMzMyZjJmLCAyMDRweCAxNTA5cHggIzMzMmYyZiwgMTI2OXB4IDg3OHB4ICMzMzJmMmYsIDE1NjJweCAxMjcxcHggIzMzMmYyZiwgNjIwcHggNjk1cHggIzMzMmYyZiwgMTI0N3B4IDExNDVweCAjMzMyZjJmLCAyODBweCAyMjVweCAjMzMyZjJmLCAxNjRweCAxNjI1cHggIzMzMmYyZiwgMTEwMXB4IDY2MnB4ICMzMzJmMmYsIDEwMTBweCAxMDgwcHggIzMzMmYyZiwgMTk2MXB4IDExMTFweCAjMzMyZjJmLCAxODU0cHggMTkyN3B4ICMzMzJmMmYsIDEzMzlweCAxNzYxcHggIzMzMmYyZiwgMTU3MXB4IDEzODZweCAjMzMyZjJmLCAxNTg4cHggMjQwcHggIzMzMmYyZiwgODExcHggMTMyNHB4ICMzMzJmMmYsIDEzMTRweCA4NDRweCAjMzMyZjJmLCAxMjUzcHggMTkxNHB4ICMzMzJmMmYsIDE1NzZweCAxMzYycHggIzMzMmYyZiwgOTg1cHggNzlweCAjMzMyZjJmLCAxNTM2cHggMTcyM3B4ICMzMzJmMmYsIDEzNXB4IDM3cHggIzMzMmYyZiwgMTc1NnB4IDE2NzBweCAjMzMyZjJmLCAxODY2cHggMTAzcHggIzMzMmYyZiwgMTc1N3B4IDkycHggIzMzMmYyZiwgMTc4OHB4IDE2ODRweCAjMzMyZjJmLCAxODVweCA2NDhweCAjMzMyZjJmLCA0NTZweCA0NjlweCAjMzMyZjJmLCA5NTBweCAxNzI0cHggIzMzMmYyZiwgMTM1NnB4IDE3MzBweCAjMzMyZjJmLCAxNTQ3cHggOTU4cHggIzMzMmYyZiwgOTI0cHggMTg5M3B4ICMzMzJmMmYsIDcwMnB4IDU0NHB4ICMzMzJmMmYsIDE4MzBweCAyMzFweCAjMzMyZjJmLCAxMzY4cHggMTI1cHggIzMzMmYyZiwgMTQ5NHB4IDIwMHB4ICMzMzJmMmYsIDM0OHB4IDkwOHB4ICMzMzJmMmYsIDEzMTZweCAxNTYxcHggIzMzMmYyZiwgNzA4cHggMTM2MXB4ICMzMzJmMmYsIDM5OHB4IDEyMTlweCAjMzMyZjJmLCAxNDI3cHggMTAzMHB4ICMzMzJmMmYsIDE2ODRweCAxOTBweCAjMzMyZjJmLCAxOTkwcHggMTIxNXB4ICMzMzJmMmY7YW5pbWF0aW9uOmFuaW1TdGFyIDE2N3MgbGluZWFyIGluZmluaXRlfSNibGFjay1zdGFycy1tZWQ6YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMDBweDt3aWR0aDoycHg7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxNDlweCAxMTQ2cHggIzMzMmYyZiwgNzg5cHggODQ0cHggIzMzMmYyZiwgMTAwOXB4IDExNzdweCAjMzMyZjJmLCA1OTVweCAxMDMycHggIzMzMmYyZiwgMTI4NXB4IDE0MjRweCAjMzMyZjJmLCAyNzhweCAxODUxcHggIzMzMmYyZiwgMTgxcHggMjg1cHggIzMzMmYyZiwgMTIwM3B4IDkzMnB4ICMzMzJmMmYsIDE2NTlweCAxMDE0cHggIzMzMmYyZiwgMTEyOXB4IDE3MzZweCAjMzMyZjJmLCAxODk4cHggMTYxOHB4ICMzMzJmMmYsIDE1ODVweCAxNTc5cHggIzMzMmYyZiwgMTExM3B4IDEyMjRweCAjMzMyZjJmLCAxOTE3cHggNjYxcHggIzMzMmYyZiwgODU4cHggMzY4cHggIzMzMmYyZiwgMjM2cHggNjA3cHggIzMzMmYyZiwgODA2cHggODI0cHggIzMzMmYyZiwgMTQ1OXB4IDE3ODFweCAjMzMyZjJmLCAxNTczcHggNTcwcHggIzMzMmYyZiwgMTk1M3B4IDQzcHggIzMzMmYyZiwgMTg1cHggNzA4cHggIzMzMmYyZiwgMTYzOXB4IDU4M3B4ICMzMzJmMmYsIDg4MHB4IDE5OTVweCAjMzMyZjJmLCAxMjE0cHggOTMwcHggIzMzMmYyZiwgNjU5cHggNDBweCAjMzMyZjJmLCAxMjc4cHggMTYxNHB4ICMzMzJmMmYsIDg3MHB4IDgzNnB4ICMzMzJmMmYsIDgwcHggMTMyNHB4ICMzMzJmMmYsIDE4NDlweCAxNTI3cHggIzMzMmYyZiwgMzUxcHggMTA0cHggIzMzMmYyZiwgMTU0OHB4IDEyMTBweCAjMzMyZjJmLCAxMjlweCA3NjhweCAjMzMyZjJmLCA1NDdweCA0NzRweCAjMzMyZjJmLCAxNjYycHggMTc2NnB4ICMzMzJmMmYsIDEyNDhweCA3MTJweCAjMzMyZjJmLCAxMDExcHggMTc1NHB4ICMzMzJmMmYsIDIwNHB4IDE2NjRweCAjMzMyZjJmLCAxMzQzcHggMTI5NnB4ICMzMzJmMmYsIDkxNXB4IDE3MjZweCAjMzMyZjJmLCAyNzFweCAyNDRweCAjMzMyZjJmLCA1OHB4IDM0OXB4ICMzMzJmMmYsIDE5NDZweCA4MDBweCAjMzMyZjJmLCAxMzgwcHggMzQ0cHggIzMzMmYyZiwgMjQwcHggMTYwN3B4ICMzMzJmMmYsIDExMzZweCAxNTkxcHggIzMzMmYyZiwgMTU5MnB4IDEyMDlweCAjMzMyZjJmLCAxOTU5cHggMTQ5M3B4ICMzMzJmMmYsIDEyMjBweCA1OTNweCAjMzMyZjJmLCAyOXB4IDE2MjFweCAjMzMyZjJmLCA2MzlweCAxMTRweCAjMzMyZjJmLCA3MDFweCAxODM4cHggIzMzMmYyZiwgNTA5cHggMTU0N3B4ICMzMzJmMmYsIDkzcHggNjY5cHggIzMzMmYyZiwgMTgzMHB4IDMycHggIzMzMmYyZiwgMTczMHB4IDEyOTJweCAjMzMyZjJmLCAxMDMxcHggMTYwN3B4ICMzMzJmMmYsIDExODhweCAxNzUycHggIzMzMmYyZiwgNDQ0cHggMTU4NXB4ICMzMzJmMmYsIDEyMTJweCAxMDI1cHggIzMzMmYyZiwgNjg1cHggOTBweCAjMzMyZjJmLCAxNDQ3cHggMTQ4OHB4ICMzMzJmMmYsIDQzMXB4IDE3OTNweCAjMzMyZjJmLCAzM3B4IDczN3B4ICMzMzJmMmYsIDg3MnB4IDEyNDNweCAjMzMyZjJmLCAxOTkxcHggNzQzcHggIzMzMmYyZiwgNzQ1cHggOTM5cHggIzMzMmYyZiwgMTIyNnB4IDg2MnB4ICMzMzJmMmYsIDEyMThweCAxODEzcHggIzMzMmYyZiwgMTU3NnB4IDQ2N3B4ICMzMzJmMmYsIDE4MDFweCAyOTVweCAjMzMyZjJmLCAxMTcycHggNTg4cHggIzMzMmYyZiwgMTE2cHggOTkzcHggIzMzMmYyZiwgNjEwcHggMTAwNXB4ICMzMzJmMmYsIDE5NTlweCAxOTAxcHggIzMzMmYyZiwgNjgwcHggNzAxcHggIzMzMmYyZiwgMTIzMnB4IDE3ODZweCAjMzMyZjJmLCAxMTIwcHggMTM2NnB4ICMzMzJmMmYsIDE0MzhweCA4MDVweCAjMzMyZjJmLCA0NDlweCAxMTY0cHggIzMzMmYyZiwgMzI5cHggMTUxNXB4ICMzMzJmMmYsIDEwMDBweCAxMTVweCAjMzMyZjJmLCA2NDBweCA1ODVweCAjMzMyZjJmLCAxOTEycHggMTc3cHggIzMzMmYyZiwgODI1cHggMTQ0NHB4ICMzMzJmMmYsIDEwNDNweCA1MjJweCAjMzMyZjJmLCAxMDU4cHggMTQyOHB4ICMzMzJmMmYsIDk2NHB4IDk1cHggIzMzMmYyZiwgOTUycHggMTEzMXB4ICMzMzJmMmYsIDI2N3B4IDE0MTVweCAjMzMyZjJmLCA4MjdweCA0NjdweCAjMzMyZjJmLCA3MDZweCA3NzJweCAjMzMyZjJmLCAxMDI0cHggMTM3cHggIzMzMmYyZiwgNzg1cHggMzgzcHggIzMzMmYyZiwgMzQzcHggMTA2NXB4ICMzMzJmMmYsIDE2MDBweCAzNjJweCAjMzMyZjJmLCAzNzRweCAxNTY0cHggIzMzMmYyZiwgMjM2cHggMTQ0MXB4ICMzMzJmMmYsIDgwOHB4IDQyNHB4ICMzMzJmMmYsIDE3OTRweCAxNzkxcHggIzMzMmYyZiwgMTY1MHB4IDEyODBweCAjMzMyZjJmLCAxMnB4IDkyOHB4ICMzMzJmMmYsIDE1MzRweCAxOTc5cHggIzMzMmYyZiwgNTAzcHggNDQ1cHggIzMzMmYyZiwgMjUzcHggMTA0NXB4ICMzMzJmMmYsIDE1MTlweCA4MTdweCAjMzMyZjJmLCAzOThweCAxMjYwcHggIzMzMmYyZiwgNDY0cHggOTk2cHggIzMzMmYyZiwgOTk1cHggMjI3cHggIzMzMmYyZiwgMTcyNnB4IDc1M3B4ICMzMzJmMmYsIDEzODdweCAxMTQxcHggIzMzMmYyZiwgMTg3MnB4IDEzNDdweCAjMzMyZjJmLCA5NDFweCA4MzRweCAjMzMyZjJmLCA0MzFweCAxNTAwcHggIzMzMmYyZiwgODgxcHggNTQ3cHggIzMzMmYyZiwgNTNweCAxMjkzcHggIzMzMmYyZiwgMTc0NnB4IDE4NTVweCAjMzMyZjJmLCAxODY3cHggMTYzcHggIzMzMmYyZiwgMTUxM3B4IDIzNXB4ICMzMzJmMmYsIDE1MDBweCA2MjNweCAjMzMyZjJmLCAxODgxcHggMTk4MHB4ICMzMzJmMmYsIDExOThweCAxNjQ4cHggIzMzMmYyZiwgMjg3cHggMTIzM3B4ICMzMzJmMmYsIDEwMDlweCAxMDgycHggIzMzMmYyZiwgMTYwOXB4IDEwODRweCAjMzMyZjJmLCAxOTE2cHggMzI1cHggIzMzMmYyZiwgODVweCAxODQycHggIzMzMmYyZiwgMTkzN3B4IDEyNjlweCAjMzMyZjJmLCA5cHggMTI4cHggIzMzMmYyZiwgMjg5cHggMzMzcHggIzMzMmYyZiwgMTA3OXB4IDE4MzVweCAjMzMyZjJmLCAyNnB4IDE1NzJweCAjMzMyZjJmLCAxNDA0cHggMTEyNXB4ICMzMzJmMmYsIDEyMTVweCA4NTBweCAjMzMyZjJmLCAzMDVweCA1MjBweCAjMzMyZjJmLCAxMTQ1cHggMTAzcHggIzMzMmYyZiwgMjMycHggODcwcHggIzMzMmYyZiwgODQ3cHggMzMzcHggIzMzMmYyZiwgNTg0cHggNjQwcHggIzMzMmYyZiwgODM2cHggODg2cHggIzMzMmYyZiwgMTcyMXB4IDQ2MnB4ICMzMzJmMmYsIDE2MDRweCA0MzRweCAjMzMyZjJmLCAyODRweCAxNDI4cHggIzMzMmYyZiwgMTA3NXB4IDY2MHB4ICMzMzJmMmYsIDg0NnB4IDExODFweCAjMzMyZjJmLCAzNDhweCAxMzgycHggIzMzMmYyZiwgMTU1M3B4IDEyODVweCAjMzMyZjJmLCAxNDg2cHggMTM3NnB4ICMzMzJmMmYsIDE0OTZweCA1MzFweCAjMzMyZjJmLCAxNDE3cHggMTk0cHggIzMzMmYyZiwgNTI0cHggOXB4ICMzMzJmMmYsIDEzNzlweCAxMTMycHggIzMzMmYyZiwgNzczcHggMTE5N3B4ICMzMzJmMmYsIDg1cHggMTk0NnB4ICMzMzJmMmYsIDE4MzRweCAxMTU3cHggIzMzMmYyZiwgMTY3MHB4IDMxNXB4ICMzMzJmMmYsIDRweCA4OTdweCAjMzMyZjJmLCAxMTE3cHggMTk3OXB4ICMzMzJmMmYsIDc3NHB4IDEyNTlweCAjMzMyZjJmLCAyMDRweCAxNTA5cHggIzMzMmYyZiwgMTI2OXB4IDg3OHB4ICMzMzJmMmYsIDE1NjJweCAxMjcxcHggIzMzMmYyZiwgNjIwcHggNjk1cHggIzMzMmYyZiwgMTI0N3B4IDExNDVweCAjMzMyZjJmLCAyODBweCAyMjVweCAjMzMyZjJmLCAxNjRweCAxNjI1cHggIzMzMmYyZiwgMTEwMXB4IDY2MnB4ICMzMzJmMmYsIDEwMTBweCAxMDgwcHggIzMzMmYyZiwgMTk2MXB4IDExMTFweCAjMzMyZjJmLCAxODU0cHggMTkyN3B4ICMzMzJmMmYsIDEzMzlweCAxNzYxcHggIzMzMmYyZiwgMTU3MXB4IDEzODZweCAjMzMyZjJmLCAxNTg4cHggMjQwcHggIzMzMmYyZiwgODExcHggMTMyNHB4ICMzMzJmMmYsIDEzMTRweCA4NDRweCAjMzMyZjJmLCAxMjUzcHggMTkxNHB4ICMzMzJmMmYsIDE1NzZweCAxMzYycHggIzMzMmYyZiwgOTg1cHggNzlweCAjMzMyZjJmLCAxNTM2cHggMTcyM3B4ICMzMzJmMmYsIDEzNXB4IDM3cHggIzMzMmYyZiwgMTc1NnB4IDE2NzBweCAjMzMyZjJmLCAxODY2cHggMTAzcHggIzMzMmYyZiwgMTc1N3B4IDkycHggIzMzMmYyZiwgMTc4OHB4IDE2ODRweCAjMzMyZjJmLCAxODVweCA2NDhweCAjMzMyZjJmLCA0NTZweCA0NjlweCAjMzMyZjJmLCA5NTBweCAxNzI0cHggIzMzMmYyZiwgMTM1NnB4IDE3MzBweCAjMzMyZjJmLCAxNTQ3cHggOTU4cHggIzMzMmYyZiwgOTI0cHggMTg5M3B4ICMzMzJmMmYsIDcwMnB4IDU0NHB4ICMzMzJmMmYsIDE4MzBweCAyMzFweCAjMzMyZjJmLCAxMzY4cHggMTI1cHggIzMzMmYyZiwgMTQ5NHB4IDIwMHB4ICMzMzJmMmYsIDM0OHB4IDkwOHB4ICMzMzJmMmYsIDEzMTZweCAxNTYxcHggIzMzMmYyZiwgNzA4cHggMTM2MXB4ICMzMzJmMmYsIDM5OHB4IDEyMTlweCAjMzMyZjJmLCAxNDI3cHggMTAzMHB4ICMzMzJmMmYsIDE2ODRweCAxOTBweCAjMzMyZjJmLCAxOTkwcHggMTIxNXB4ICMzMzJmMmZ9I2JsYWNrLXN0YXJzLWxne3dpZHRoOjNweDtoZWlnaHQ6M3B4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjExNzVweCAzNjBweCAjMzMyZjJmLCAzOTNweCAxMzE5cHggIzMzMmYyZiwgMTM0N3B4IDE5NTZweCAjMzMyZjJmLCAxNDA4cHggMTk2NXB4ICMzMzJmMmYsIDEzNTVweCAyOTJweCAjMzMyZjJmLCAxOTAycHggOTMxcHggIzMzMmYyZiwgMTU5NnB4IDExMTZweCAjMzMyZjJmLCAxcHggMjIxcHggIzMzMmYyZiwgMTMycHggMTA3OHB4ICMzMzJmMmYsIDExMDFweCAzNjhweCAjMzMyZjJmLCAxNDUxcHggMTI3NnB4ICMzMzJmMmYsIDMyN3B4IDQ0MnB4ICMzMzJmMmYsIDY2OHB4IDExMDZweCAjMzMyZjJmLCAxN3B4IDEyMDlweCAjMzMyZjJmLCAxNTI0cHggMTM3MnB4ICMzMzJmMmYsIDExODRweCAxNDExcHggIzMzMmYyZiwgMTM0cHggMTU4M3B4ICMzMzJmMmYsIDg2N3B4IDE0MDhweCAjMzMyZjJmLCA1NnB4IDEwMDhweCAjMzMyZjJmLCA1MjdweCAxNzAxcHggIzMzMmYyZiwgMTIwM3B4IDI4M3B4ICMzMzJmMmYsIDEyNzhweCA2MTRweCAjMzMyZjJmLCAxMDE0cHggMTU5cHggIzMzMmYyZiwgMTk0MHB4IDE3NzdweCAjMzMyZjJmLCA3NzBweCA0ODNweCAjMzMyZjJmLCA2OTNweCAzMTlweCAjMzMyZjJmLCAxOTY4cHggMTMwOHB4ICMzMzJmMmYsIDE4ODhweCAxNjY1cHggIzMzMmYyZiwgNzg4cHggMTI2MnB4ICMzMzJmMmYsIDI3NHB4IDk4OHB4ICMzMzJmMmYsIDE1ODFweCAxNjU3cHggIzMzMmYyZiwgMTY2OHB4IDU5cHggIzMzMmYyZiwgNjYxcHggMTU2MHB4ICMzMzJmMmYsIDg5cHggMzk4cHggIzMzMmYyZiwgMTYxN3B4IDE4MDZweCAjMzMyZjJmLCAxODAwcHggOTY3cHggIzMzMmYyZiwgMzk2cHggMTI3OXB4ICMzMzJmMmYsIDM1OHB4IDI2OXB4ICMzMzJmMmYsIDE4MjhweCAxMjc1cHggIzMzMmYyZiwgNzYycHggNjU2cHggIzMzMmYyZiwgNTYxcHggMTMwNnB4ICMzMzJmMmYsIDUyMXB4IDE4MzBweCAjMzMyZjJmLCAxODcycHggMTU4NHB4ICMzMzJmMmYsIDkwOXB4IDEzMjlweCAjMzMyZjJmLCAxODdweCA0NjZweCAjMzMyZjJmLCAxNDkxcHggMTAwMHB4ICMzMzJmMmYsIDEyNTlweCAxNDg0cHggIzMzMmYyZiwgN3B4IDg1NHB4ICMzMzJmMmYsIDE5MDZweCAxMDgxcHggIzMzMmYyZiwgMTYxMHB4IDg2cHggIzMzMmYyZiwgMTk1MnB4IDEyMjdweCAjMzMyZjJmLCA3MjRweCAxMTMycHggIzMzMmYyZiwgNTYxcHggMTc2MXB4ICMzMzJmMmYsIDE4MzhweCAyNzlweCAjMzMyZjJmLCA2NDhweCAzMDNweCAjMzMyZjJmLCAxNzQycHggNzgwcHggIzMzMmYyZiwgMTM0M3B4IDEzODlweCAjMzMyZjJmLCAxNzM0cHggMTI4M3B4ICMzMzJmMmYsIDE2MjJweCA2NzRweCAjMzMyZjJmLCAxNTM3cHggMTIxOXB4ICMzMzJmMmYsIDE5NzJweCAxNzA1cHggIzMzMmYyZiwgMTM2MHB4IDU0M3B4ICMzMzJmMmYsIDgwOHB4IDc3OHB4ICMzMzJmMmYsIDE2MHB4IDEyMTJweCAjMzMyZjJmLCAxNzY4cHggODgwcHggIzMzMmYyZiwgMTU1OHB4IDEzNzRweCAjMzMyZjJmLCAxMDZweCAxMTA0cHggIzMzMmYyZiwgNDNweCAxMDE5cHggIzMzMmYyZiwgNzk1cHggNzI4cHggIzMzMmYyZiwgMTIxMnB4IDE0MDlweCAjMzMyZjJmLCA3NDdweCAxNjA3cHggIzMzMmYyZiwgNjMxcHggMTA0NnB4ICMzMzJmMmYsIDE4MDZweCA1NTlweCAjMzMyZjJmLCAxNjUzcHggMTAxN3B4ICMzMzJmMmYsIDU0OXB4IDk4MHB4ICMzMzJmMmYsIDE3NDZweCAzMzlweCAjMzMyZjJmLCA5NzlweCAxOTU0cHggIzMzMmYyZiwgMTU5N3B4IDEzNTJweCAjMzMyZjJmLCA5NzZweCA1OTFweCAjMzMyZjJmLCAzNjRweCAxNTY4cHggIzMzMmYyZiwgMjI5cHggMTAzcHggIzMzMmYyZiwgMTk0M3B4IDU1N3B4ICMzMzJmMmYsIDI0NXB4IDEyNjhweCAjMzMyZjJmLCAzOTdweCAxNDE0cHggIzMzMmYyZiwgMTUyMHB4IDkwMHB4ICMzMzJmMmYsIDY4NHB4IDYwcHggIzMzMmYyZiwgMzE1cHggNDMzcHggIzMzMmYyZiwgNTU2cHggMzMzcHggIzMzMmYyZiwgMTk2NHB4IDExNzNweCAjMzMyZjJmLCAzNjFweCAxNDcwcHggIzMzMmYyZiwgMTk5MnB4IDM2NnB4ICMzMzJmMmYsIDU2M3B4IDYyMHB4ICMzMzJmMmYsIDE0MTBweCA3M3B4ICMzMzJmMmYsIDE2MzNweCAxODEwcHggIzMzMmYyZiwgMTQ0cHggMTk2MXB4ICMzMzJmMmYsIDcwNnB4IDM1NXB4ICMzMzJmMmYsIDEzMDBweCA1NDFweCAjMzMyZjJmLCAxMDk3cHggMTk5OHB4ICMzMzJmMmYsIDE3ODVweCA3MjRweCAjMzMyZjJmLCA3NzlweCA0MTdweCAjMzMyZjJmO2FuaW1hdGlvbjphbmltU3RhciAyNTBzIGxpbmVhciBpbmZpbml0ZX0jYmxhY2stc3RhcnMtbGc6YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMDBweDt3aWR0aDozcHg7aGVpZ2h0OjNweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxMTc1cHggMzYwcHggIzMzMmYyZiwgMzkzcHggMTMxOXB4ICMzMzJmMmYsIDEzNDdweCAxOTU2cHggIzMzMmYyZiwgMTQwOHB4IDE5NjVweCAjMzMyZjJmLCAxMzU1cHggMjkycHggIzMzMmYyZiwgMTkwMnB4IDkzMXB4ICMzMzJmMmYsIDE1OTZweCAxMTE2cHggIzMzMmYyZiwgMXB4IDIyMXB4ICMzMzJmMmYsIDEzMnB4IDEwNzhweCAjMzMyZjJmLCAxMTAxcHggMzY4cHggIzMzMmYyZiwgMTQ1MXB4IDEyNzZweCAjMzMyZjJmLCAzMjdweCA0NDJweCAjMzMyZjJmLCA2NjhweCAxMTA2cHggIzMzMmYyZiwgMTdweCAxMjA5cHggIzMzMmYyZiwgMTUyNHB4IDEzNzJweCAjMzMyZjJmLCAxMTg0cHggMTQxMXB4ICMzMzJmMmYsIDEzNHB4IDE1ODNweCAjMzMyZjJmLCA4NjdweCAxNDA4cHggIzMzMmYyZiwgNTZweCAxMDA4cHggIzMzMmYyZiwgNTI3cHggMTcwMXB4ICMzMzJmMmYsIDEyMDNweCAyODNweCAjMzMyZjJmLCAxMjc4cHggNjE0cHggIzMzMmYyZiwgMTAxNHB4IDE1OXB4ICMzMzJmMmYsIDE5NDBweCAxNzc3cHggIzMzMmYyZiwgNzcwcHggNDgzcHggIzMzMmYyZiwgNjkzcHggMzE5cHggIzMzMmYyZiwgMTk2OHB4IDEzMDhweCAjMzMyZjJmLCAxODg4cHggMTY2NXB4ICMzMzJmMmYsIDc4OHB4IDEyNjJweCAjMzMyZjJmLCAyNzRweCA5ODhweCAjMzMyZjJmLCAxNTgxcHggMTY1N3B4ICMzMzJmMmYsIDE2NjhweCA1OXB4ICMzMzJmMmYsIDY2MXB4IDE1NjBweCAjMzMyZjJmLCA4OXB4IDM5OHB4ICMzMzJmMmYsIDE2MTdweCAxODA2cHggIzMzMmYyZiwgMTgwMHB4IDk2N3B4ICMzMzJmMmYsIDM5NnB4IDEyNzlweCAjMzMyZjJmLCAzNThweCAyNjlweCAjMzMyZjJmLCAxODI4cHggMTI3NXB4ICMzMzJmMmYsIDc2MnB4IDY1NnB4ICMzMzJmMmYsIDU2MXB4IDEzMDZweCAjMzMyZjJmLCA1MjFweCAxODMwcHggIzMzMmYyZiwgMTg3MnB4IDE1ODRweCAjMzMyZjJmLCA5MDlweCAxMzI5cHggIzMzMmYyZiwgMTg3cHggNDY2cHggIzMzMmYyZiwgMTQ5MXB4IDEwMDBweCAjMzMyZjJmLCAxMjU5cHggMTQ4NHB4ICMzMzJmMmYsIDdweCA4NTRweCAjMzMyZjJmLCAxOTA2cHggMTA4MXB4ICMzMzJmMmYsIDE2MTBweCA4NnB4ICMzMzJmMmYsIDE5NTJweCAxMjI3cHggIzMzMmYyZiwgNzI0cHggMTEzMnB4ICMzMzJmMmYsIDU2MXB4IDE3NjFweCAjMzMyZjJmLCAxODM4cHggMjc5cHggIzMzMmYyZiwgNjQ4cHggMzAzcHggIzMzMmYyZiwgMTc0MnB4IDc4MHB4ICMzMzJmMmYsIDEzNDNweCAxMzg5cHggIzMzMmYyZiwgMTczNHB4IDEyODNweCAjMzMyZjJmLCAxNjIycHggNjc0cHggIzMzMmYyZiwgMTUzN3B4IDEyMTlweCAjMzMyZjJmLCAxOTcycHggMTcwNXB4ICMzMzJmMmYsIDEzNjBweCA1NDNweCAjMzMyZjJmLCA4MDhweCA3NzhweCAjMzMyZjJmLCAxNjBweCAxMjEycHggIzMzMmYyZiwgMTc2OHB4IDg4MHB4ICMzMzJmMmYsIDE1NThweCAxMzc0cHggIzMzMmYyZiwgMTA2cHggMTEwNHB4ICMzMzJmMmYsIDQzcHggMTAxOXB4ICMzMzJmMmYsIDc5NXB4IDcyOHB4ICMzMzJmMmYsIDEyMTJweCAxNDA5cHggIzMzMmYyZiwgNzQ3cHggMTYwN3B4ICMzMzJmMmYsIDYzMXB4IDEwNDZweCAjMzMyZjJmLCAxODA2cHggNTU5cHggIzMzMmYyZiwgMTY1M3B4IDEwMTdweCAjMzMyZjJmLCA1NDlweCA5ODBweCAjMzMyZjJmLCAxNzQ2cHggMzM5cHggIzMzMmYyZiwgOTc5cHggMTk1NHB4ICMzMzJmMmYsIDE1OTdweCAxMzUycHggIzMzMmYyZiwgOTc2cHggNTkxcHggIzMzMmYyZiwgMzY0cHggMTU2OHB4ICMzMzJmMmYsIDIyOXB4IDEwM3B4ICMzMzJmMmYsIDE5NDNweCA1NTdweCAjMzMyZjJmLCAyNDVweCAxMjY4cHggIzMzMmYyZiwgMzk3cHggMTQxNHB4ICMzMzJmMmYsIDE1MjBweCA5MDBweCAjMzMyZjJmLCA2ODRweCA2MHB4ICMzMzJmMmYsIDMxNXB4IDQzM3B4ICMzMzJmMmYsIDU1NnB4IDMzM3B4ICMzMzJmMmYsIDE5NjRweCAxMTczcHggIzMzMmYyZiwgMzYxcHggMTQ3MHB4ICMzMzJmMmYsIDE5OTJweCAzNjZweCAjMzMyZjJmLCA1NjNweCA2MjBweCAjMzMyZjJmLCAxNDEwcHggNzNweCAjMzMyZjJmLCAxNjMzcHggMTgxMHB4ICMzMzJmMmYsIDE0NHB4IDE5NjFweCAjMzMyZjJmLCA3MDZweCAzNTVweCAjMzMyZjJmLCAxMzAwcHggNTQxcHggIzMzMmYyZiwgMTA5N3B4IDE5OThweCAjMzMyZjJmLCAxNzg1cHggNzI0cHggIzMzMmYyZiwgNzc5cHggNDE3cHggIzMzMmYyZn1Aa2V5ZnJhbWVzIGFuaW1TdGFye2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwMHB4KX19"},{"meta":{"name":"white.min.css","url":"https://assets.aiwebextensions.com/styles/rising-stars/dist/white.min.css?v=3289404#sha256-tOOIvIe6O5/x2A5E7s9kP4+zw0d4EEDfRgXQLq2KwLs=","ts":1764084296590,"mimetype":"text/css"},"source":"I3doaXRlLXN0YXJzLXNte3dpZHRoOjFweDtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjI5MXB4IDE5ODFweCAjZmZmLCAxNjAxcHggMzMycHggI2ZmZiwgMTAwN3B4IDIyOXB4ICNmZmYsIDEzNTFweCA2MzFweCAjZmZmLCAxMzE3cHggMTgwMHB4ICNmZmYsIDcyNnB4IDE2MzhweCAjZmZmLCAxNzM2cHggNjI4cHggI2ZmZiwgODU5cHggMTE5N3B4ICNmZmYsIDQzNnB4IDIyNHB4ICNmZmYsIDEyNjNweCAyNzVweCAjZmZmLCAxMDAxcHggMTg5OHB4ICNmZmYsIDExODJweCAyODdweCAjZmZmLCAxMTc4cHggMTE0OHB4ICNmZmYsIDg3MXB4IDE0NjVweCAjZmZmLCAxOTgycHggNDQxcHggI2ZmZiwgMjk5cHggMTY3N3B4ICNmZmYsIDE0NzFweCAxNThweCAjZmZmLCA0NjVweCAxMjk2cHggI2ZmZiwgMTc4OXB4IDEyMTFweCAjZmZmLCA5MjdweCAxOTg3cHggI2ZmZiwgODE5cHggNjE2cHggI2ZmZiwgMTM2MnB4IDExOTJweCAjZmZmLCA4ODVweCA0NzlweCAjZmZmLCAxODQzcHggMTM0MXB4ICNmZmYsIDEwNjhweCA3NzdweCAjZmZmLCA5MjdweCA5MjFweCAjZmZmLCAxOTRweCAxNTA4cHggI2ZmZiwgMzE1cHggOTkycHggI2ZmZiwgMTI3MHB4IDE5ODBweCAjZmZmLCA0NjFweCAxNDA2cHggI2ZmZiwgODA5cHggNDIxcHggI2ZmZiwgOTU1cHggNTgycHggI2ZmZiwgODQ0cHggMTI3N3B4ICNmZmYsIDEzNnB4IDE3NzBweCAjZmZmLCA2NjdweCAzMTNweCAjZmZmLCA3NzJweCAxMDBweCAjZmZmLCA5ODFweCAxOTgycHggI2ZmZiwgNTA0cHggMTg1NnB4ICNmZmYsIDE0MzZweCAzOTlweCAjZmZmLCA5MDVweCA1ODhweCAjZmZmLCAxNjk3cHggMjc4cHggI2ZmZiwgOTA1cHggMTIwOHB4ICNmZmYsIDEzOTBweCAxNzM3cHggI2ZmZiwgNjE5cHggMzA2cHggI2ZmZiwgNTIycHggODUzcHggI2ZmZiwgMTE0MHB4IDEyNDNweCAjZmZmLCA1MzlweCA1MDVweCAjZmZmLCA1NDNweCAxMzc3cHggI2ZmZiwgMTExMnB4IDcwNnB4ICNmZmYsIDEyODVweCAxODM2cHggI2ZmZiwgMjI4cHggNTc2cHggI2ZmZiwgNDFweCA4NzhweCAjZmZmLCA4MjFweCAxNzQ1cHggI2ZmZiwgMTA1OXB4IDE4MTdweCAjZmZmLCA4MzdweCAxNzU3cHggI2ZmZiwgMTcyMnB4IDk5MHB4ICNmZmYsIDE2NTZweCA2MjJweCAjZmZmLCAxNTU4cHggMTk1OHB4ICNmZmYsIDEwMzRweCA5MTRweCAjZmZmLCAxOTlweCA2ODFweCAjZmZmLCAxMDQ2cHggMTk4OXB4ICNmZmYsIDM2OHB4IDE2MTNweCAjZmZmLCAxNzA3cHggMTE3MXB4ICNmZmYsIDg0OXB4IDEwNDFweCAjZmZmLCA4OTJweCAxMTA5cHggI2ZmZiwgMTY5MnB4IDU4OXB4ICNmZmYsIDIyMnB4IDk2cHggI2ZmZiwgMTYyMnB4IDUwMnB4ICNmZmYsIDE5MjdweCAxMDk1cHggI2ZmZiwgMTUyOXB4IDEzMTRweCAjZmZmLCAxMTIwcHggNTRweCAjZmZmLCAyNjRweCAxMzE2cHggI2ZmZiwgMTUyN3B4IDE3ODRweCAjZmZmLCA1ODJweCA5NjlweCAjZmZmLCAxNzgwcHggMTk1M3B4ICNmZmYsIDEyOTlweCAxMjBweCAjZmZmLCAxNTEzcHggMTkxNnB4ICNmZmYsIDExNjlweCAxNTA2cHggI2ZmZiwgMTgxNXB4IDEwNzhweCAjZmZmLCAxNDk1cHggNDIycHggI2ZmZiwgMjA3cHggMTA1OXB4ICNmZmYsIDc3NXB4IDEwMDFweCAjZmZmLCAzOThweCA4OTlweCAjZmZmLCA3NDBweCA5MjJweCAjZmZmLCA5NzRweCA1NDRweCAjZmZmLCAxMjkzcHggNzEwcHggI2ZmZiwgNXB4IDEzNjVweCAjZmZmLCAxNDY4cHggOTI0cHggI2ZmZiwgNzc5cHggNjUzcHggI2ZmZiwgNDg2cHggOThweCAjZmZmLCAxODUycHggMjY0cHggI2ZmZiwgNjQ3cHggNDg5cHggI2ZmZiwgMTgyNXB4IDE3NTBweCAjZmZmLCAxOTY4cHggMTQyNnB4ICNmZmYsIDE4NXB4IDI0M3B4ICNmZmYsIDk2MHB4IDE5NXB4ICNmZmYsIDEwNjBweCAyNjZweCAjZmZmLCA1NjdweCAxMDQxcHggI2ZmZiwgNzQ5cHggOTZweCAjZmZmLCAyNjNweCA5OHB4ICNmZmYsIDE1NzZweCAxOTNweCAjZmZmLCA0NjhweCAxNzY5cHggI2ZmZiwgMTgxM3B4IDE0ODFweCAjZmZmLCA1MzRweCAxNTc4cHggI2ZmZiwgMTMzOHB4IDk2NnB4ICNmZmYsIDE1MTJweCAxOThweCAjZmZmLCAxMjQxcHggNTg2cHggI2ZmZiwgMTk3NXB4IDkxNHB4ICNmZmYsIDI3NXB4IDE4MjNweCAjZmZmLCA2MHB4IDE2MXB4ICNmZmYsIDI3OHB4IDI0M3B4ICNmZmYsIDI4MHB4IDE5MjJweCAjZmZmLCA2NThweCAxMzQ2cHggI2ZmZiwgMTQ4N3B4IDI0NHB4ICNmZmYsIDU1OXB4IDE2M3B4ICNmZmYsIDE1MTNweCAyNjhweCAjZmZmLCAxMTc4cHggMTM5NHB4ICNmZmYsIDEyMTdweCAxMDM2cHggI2ZmZiwgMTk0NnB4IDE0ODFweCAjZmZmLCAxMTgycHggMTE1M3B4ICNmZmYsIDM3NXB4IDEwMzhweCAjZmZmLCAxMzMxcHggOTA2cHggI2ZmZiwgNzczcHggNzI0cHggI2ZmZiwgMTI2cHggMTg4M3B4ICNmZmYsIDE0MjVweCA5ODlweCAjZmZmLCAxNDM3cHggMTQwNXB4ICNmZmYsIDcxcHggMTUwMXB4ICNmZmYsIDEwNDhweCA0MTVweCAjZmZmLCAxMDk5cHggMTI0OHB4ICNmZmYsIDI4OHB4IDEyMDBweCAjZmZmLCAzNTZweCAxOTUycHggI2ZmZiwgNjE4cHggMTQ4N3B4ICNmZmYsIDcyMHB4IDE3NzFweCAjZmZmLCA3OTFweCAxMjk1cHggI2ZmZiwgMTczMXB4IDY1NHB4ICNmZmYsIDU3MHB4IDQ2N3B4ICNmZmYsIDE0NTJweCAzMzJweCAjZmZmLCAxMDAzcHggMTAzM3B4ICNmZmYsIDc4OHB4IDcwcHggI2ZmZiwgMTQwM3B4IDE2NzRweCAjZmZmLCA5MTJweCAxNzU4cHggI2ZmZiwgMTgwN3B4IDE0MTZweCAjZmZmLCA4MDJweCA3OTBweCAjZmZmLCAxNjc1cHggMTQxOHB4ICNmZmYsIDE1MjFweCA4ODJweCAjZmZmLCAxNjEzcHggMzA0cHggI2ZmZiwgNDk5cHggMTUwOXB4ICNmZmYsIDE4MDdweCAxNjk0cHggI2ZmZiwgMTAwM3B4IDEyMjJweCAjZmZmLCA3NThweCA0MTFweCAjZmZmLCAxMjg1cHggNDA4cHggI2ZmZiwgNjYycHggMTc3OXB4ICNmZmYsIDE4MDlweCA1MjBweCAjZmZmLCAxOTFweCAyMjVweCAjZmZmLCAyOTNweCA5MjhweCAjZmZmLCAzNHB4IDkzMnB4ICNmZmYsIDE1NzBweCA0NjFweCAjZmZmLCA5MDNweCA2MTdweCAjZmZmLCAyNDBweCAxMjkxcHggI2ZmZiwgODIzcHggMzY5cHggI2ZmZiwgMTY4MnB4IDE3MDBweCAjZmZmLCA4MTZweCAxMDE2cHggI2ZmZiwgMTQwN3B4IDY1OHB4ICNmZmYsIDE4NDFweCAyMDNweCAjZmZmLCA3MDlweCA3MDhweCAjZmZmLCAxMDU2cHggMTM5MXB4ICNmZmYsIDkwNnB4IDYwMnB4ICNmZmYsIDM4N3B4IDM2OHB4ICNmZmYsIDEyMzJweCA2MzFweCAjZmZmLCAxNjc0cHggMTcxMnB4ICNmZmYsIDE5MzlweCAxMDQwcHggI2ZmZiwgMTIxNnB4IDE1ODJweCAjZmZmLCAxODQ2cHggMjk3cHggI2ZmZiwgMTcxMXB4IDE0NTdweCAjZmZmLCAxMTM3cHggMTkyNXB4ICNmZmYsIDg5OHB4IDg3MnB4ICNmZmYsIDEzMjVweCA2MjJweCAjZmZmLCA4MjNweCA4NjBweCAjZmZmLCAzNDFweCAyMTFweCAjZmZmLCA2cHggMTg0NXB4ICNmZmYsIDE0MDBweCAxNjg0cHggI2ZmZiwgMTE2M3B4IDE3ODFweCAjZmZmLCAxODQycHggNzE4cHggI2ZmZiwgNTUycHggNjQ4cHggI2ZmZiwgNjA4cHggMTY3cHggI2ZmZiwgODIwcHggMTQzOHB4ICNmZmYsIDE2NHB4IDY1OXB4ICNmZmYsIDEwNDVweCA3OTZweCAjZmZmLCAzcHggMTgzOHB4ICNmZmYsIDEyMDRweCA4MjdweCAjZmZmLCA5MTNweCAxMTU2cHggI2ZmZiwgMTUyM3B4IDgxNXB4ICNmZmYsIDg0NnB4IDYwN3B4ICNmZmYsIDE4MjhweCA2MzBweCAjZmZmLCAxODg1cHggOTAycHggI2ZmZiwgMTA0NnB4IDUwN3B4ICNmZmYsIDI3cHggMTUyOHB4ICNmZmYsIDc1OHB4IDE3NDhweCAjZmZmLCAxNzU5cHggMTk5N3B4ICNmZmYsIDExNDRweCAxOTEycHggI2ZmZiwgOTA5cHggMTEwN3B4ICNmZmYsIDQ1OHB4IDk0NHB4ICNmZmYsIDY2M3B4IDI3M3B4ICNmZmYsIDJweCA2OHB4ICNmZmYsIDIwNHB4IDE4MTVweCAjZmZmLCAxMDNweCAxODgycHggI2ZmZiwgMjgzcHggMTgwNXB4ICNmZmYsIDc4OHB4IDEyMjBweCAjZmZmLCAzNzVweCAxMDk2cHggI2ZmZiwgNzYwcHggMzU0cHggI2ZmZiwgNzc1cHggMTU1OXB4ICNmZmYsIDUzN3B4IDg4OXB4ICNmZmYsIDE2MjNweCAxMTk1cHggI2ZmZiwgMTA0MXB4IDEzMnB4ICNmZmYsIDE0NDlweCA4NzdweCAjZmZmLCAxNzkxcHggNDk2cHggI2ZmZiwgMTk1N3B4IDE4ODZweCAjZmZmLCAxNjU1cHggMTI0OXB4ICNmZmYsIDQ3MHB4IDEyNnB4ICNmZmYsIDE2NjlweCAxNzAycHggI2ZmZiwgNDA3cHggMzU4cHggI2ZmZiwgMTgzMnB4IDE0MTVweCAjZmZmLCA4NTJweCAxOTQ2cHggI2ZmZiwgMTEwOXB4IDE1MDRweCAjZmZmLCA0OTNweCA0NzVweCAjZmZmLCAxMjI2cHggMzUxcHggI2ZmZiwgMTg1N3B4IDQ5cHggI2ZmZiwgMTEzM3B4IDQyMHB4ICNmZmYsIDM5MHB4IDEzMDZweCAjZmZmLCA0MjVweCAxNDg5cHggI2ZmZiwgNjI5cHggMTI2N3B4ICNmZmYsIDEzMzVweCAxMzM5cHggI2ZmZiwgMTQyNHB4IDgwNXB4ICNmZmYsIDM4MHB4IDQwNHB4ICNmZmYsIDI1OHB4IDE0MDFweCAjZmZmLCAxMzk0cHggMTAyMXB4ICNmZmYsIDQ1MHB4IDM4MnB4ICNmZmYsIDEwOTBweCA3MzRweCAjZmZmLCAzMTdweCA5MzBweCAjZmZmLCAxNjE1cHggMTYxMXB4ICNmZmYsIDIyNXB4IDE5MjdweCAjZmZmLCA4NXB4IDgwMHB4ICNmZmYsIDEyNDZweCA3cHggI2ZmZiwgNTE4cHggMzYycHggI2ZmZiwgMTc1MXB4IDQ1OHB4ICNmZmYsIDc5NnB4IDE5NDVweCAjZmZmLCA3ODZweCA5MDVweCAjZmZmLCAxOTQzcHggMTEwNHB4ICNmZmYsIDMyNnB4IDEyNzdweCAjZmZmLCAxMTczcHggMTQ5MXB4ICNmZmYsIDk4MXB4IDE3MzJweCAjZmZmLCAxOTgzcHggMzkwcHggI2ZmZiwgNDk5cHggMzgxcHggI2ZmZiwgMTQ5MHB4IDQ4OXB4ICNmZmYsIDgxNHB4IDE4NDZweCAjZmZmLCA0MDdweCA2ODlweCAjZmZmLCAxNDA0cHggMTg3M3B4ICNmZmYsIDYxcHggMTIyM3B4ICNmZmYsIDE5NjBweCAyNDhweCAjZmZmLCAxMjMxcHggMTU4OHB4ICNmZmYsIDk3N3B4IDg3MXB4ICNmZmYsIDU1NnB4IDc3MnB4ICNmZmYsIDM1OXB4IDExNDFweCAjZmZmLCA1OHB4IDg4M3B4ICNmZmYsIDQ4MXB4IDEyNTlweCAjZmZmLCA4NzRweCA0OTVweCAjZmZmLCA2MjRweCAxMzg0cHggI2ZmZiwgMTczMHB4IDkwMXB4ICNmZmYsIDE2NDhweCA4MjdweCAjZmZmLCA4MDdweCAxMDgycHggI2ZmZiwgMTYwMXB4IDEzOXB4ICNmZmYsIDE0OTBweCAxMDM3cHggI2ZmZiwgMjAycHggMTc5cHggI2ZmZiwgNjY0cHggNjUycHggI2ZmZiwgMzc3cHggMzY5cHggI2ZmZiwgNjM5cHggMTQ1NHB4ICNmZmYsIDE4cHggMTEwOHB4ICNmZmYsIDE5MThweCAxMzY0cHggI2ZmZiwgMTQ0cHggMTY3MHB4ICNmZmYsIDE1MjFweCAxMDgycHggI2ZmZiwgMTAwNnB4IDY2OXB4ICNmZmYsIDE1MXB4IDE1NDhweCAjZmZmLCA2NTdweCAxOTQwcHggI2ZmZiwgMTI4cHggMTU2N3B4ICNmZmYsIDUwMXB4IDE1NzVweCAjZmZmLCAxMDc3cHggOTE0cHggI2ZmZiwgMTU0NHB4IDczOXB4ICNmZmYsIDEwMjJweCA0MDhweCAjZmZmLCAxOTM5cHggMTg5N3B4ICNmZmYsIDU5cHggMTA5OXB4ICNmZmYsIDE5OTNweCA0MjFweCAjZmZmLCAxNDk2cHggMTkxN3B4ICNmZmYsIDE5NjRweCAxNDU2cHggI2ZmZiwgMTE4MnB4IDE0NzVweCAjZmZmLCAxNjk5cHggMTZweCAjZmZmLCAxNjFweCA0MzBweCAjZmZmLCA3NDRweCAxMDgzcHggI2ZmZiwgMTcwNnB4IDI3N3B4ICNmZmYsIDg4NHB4IDE3MjNweCAjZmZmLCA5MTBweCAxODAycHggI2ZmZiwgMTA2N3B4IDE3N3B4ICNmZmYsIDE5MjBweCAxMzY0cHggI2ZmZiwgMzAycHggMTA2NXB4ICNmZmYsIDE3MzVweCA1MzZweCAjZmZmLCAxMTIzcHggOTI5cHggI2ZmZiwgNDIwcHggMTg4M3B4ICNmZmYsIDc0OXB4IDQ4NHB4ICNmZmYsIDE2NjZweCAxNjIxcHggI2ZmZiwgMTAwOHB4IDgxNXB4ICNmZmYsIDExMjNweCAxNzY2cHggI2ZmZiwgMzM0cHggNTYxcHggI2ZmZiwgNTkwcHggMTEzM3B4ICNmZmYsIDEyMTVweCAxMDc1cHggI2ZmZiwgMzBweCAxMjA0cHggI2ZmZiwgMTkycHggMTM3NXB4ICNmZmYsIDEzMDhweCAycHggI2ZmZiwgOTU5cHggMTYwMHB4ICNmZmYsIDEyMTlweCA1NjlweCAjZmZmLCAxMTc1cHggNTI3cHggI2ZmZiwgOTczcHggMTMxOXB4ICNmZmYsIDEyMjRweCAxNDA4cHggI2ZmZiwgNDQ4cHggMTc0NnB4ICNmZmYsIDEyNThweCAxMTc4cHggI2ZmZiwgOTE2cHggMTM1OXB4ICNmZmYsIDE2N3B4IDM4MnB4ICNmZmYsIDUzNHB4IDg3MnB4ICNmZmYsIDE2NDlweCA2MzNweCAjZmZmLCAxMjVweCA2ODNweCAjZmZmLCAxMjVweCAxOTUycHggI2ZmZiwgNzE5cHggMTE5OHB4ICNmZmYsIDExMThweCAxMTQ1cHggI2ZmZiwgMTMyMXB4IDU2cHggI2ZmZiwgOTU4cHggMTA0NXB4ICNmZmYsIDM1cHggMTM5NXB4ICNmZmYsIDcwOHB4IDkzNnB4ICNmZmYsIDE5MTdweCA3MDRweCAjZmZmLCAxOTI2cHggMTkwN3B4ICNmZmYsIDQzNXB4IDEzNzlweCAjZmZmLCA5ODZweCAyODJweCAjZmZmLCAxNjE4cHggMTkxN3B4ICNmZmYsIDk1M3B4IDk2NXB4ICNmZmYsIDExMTlweCAxNzM4cHggI2ZmZiwgMTkwNXB4IDE4ODRweCAjZmZmLCAxMTA0cHggNjU3cHggI2ZmZiwgNDM5cHggOTYycHggI2ZmZiwgMzY1cHggMjE5cHggI2ZmZiwgMTYwMHB4IDEwMjhweCAjZmZmLCAxOTcwcHggMTU3NHB4ICNmZmYsIDExNTRweCA0NDBweCAjZmZmLCAxOTE2cHggNzgwcHggI2ZmZiwgMTYwOHB4IDkyOHB4ICNmZmYsIDE1ODNweCA4MTBweCAjZmZmLCA2MjhweCA2ODJweCAjZmZmLCA1OTZweCAxNTI1cHggI2ZmZiwgNTIxcHggMTc0NnB4ICNmZmYsIDg0OHB4IDc0MHB4ICNmZmYsIDEyNTFweCA4NTVweCAjZmZmLCAyMjJweCA5MTRweCAjZmZmLCAxNTM4cHggMzM0cHggI2ZmZiwgMTQ0MXB4IDE2MzFweCAjZmZmLCAxODczcHggMTA3cHggI2ZmZiwgMTU5OHB4IDEyODhweCAjZmZmLCAxNTExcHggODlweCAjZmZmLCA2NXB4IDEwNzdweCAjZmZmLCAxODMzcHggODEzcHggI2ZmZiwgODk4cHggMTM4NHB4ICNmZmYsIDUxN3B4IDE4MTlweCAjZmZmLCAyOTlweCAyOTNweCAjZmZmLCA5NTVweCAzOTFweCAjZmZmLCA1OHB4IDE2NDVweCAjZmZmLCAxOTEzcHggODZweCAjZmZmLCAxMDEzcHggNjcycHggI2ZmZiwgMTgyM3B4IDE3NTZweCAjZmZmLCA5MzBweCAzOTRweCAjZmZmLCA2ODRweCAxMDYzcHggI2ZmZiwgODc3cHggNTNweCAjZmZmLCAxOTkycHggNDdweCAjZmZmLCAxNjMzcHggMTAxNHB4ICNmZmYsIDkxM3B4IDM0NXB4ICNmZmYsIDY3MXB4IDEzNjZweCAjZmZmLCAxOTQ3cHggMTU3N3B4ICNmZmYsIDEyOTlweCAxMjcycHggI2ZmZiwgNzA0cHggMTY5MHB4ICNmZmYsIDEyMzFweCAxMjUzcHggI2ZmZiwgMTYwMnB4IDEzNDBweCAjZmZmLCA3OTRweCAxMjkzcHggI2ZmZiwgMTcwNnB4IDExNzRweCAjZmZmLCAxNDQycHggNjAwcHggI2ZmZiwgMjcwcHggMTcxN3B4ICNmZmYsIDEwMTFweCAxNzg5cHggI2ZmZiwgMTY0OHB4IDE3NTBweCAjZmZmLCAxMjk0cHggMjAwMHB4ICNmZmYsIDE2NDBweCA4ODJweCAjZmZmLCAxNTE2cHggODA1cHggI2ZmZiwgMTE5OXB4IDg5NXB4ICNmZmYsIDE0NTRweCAxOTM5cHggI2ZmZiwgNDBweCAxMDE5cHggI2ZmZiwgMzk3cHggMTAzN3B4ICNmZmYsIDEzNjRweCAxNzY3cHggI2ZmZiwgOTMycHggOTk2cHggI2ZmZiwgMjI3cHggMTAxM3B4ICNmZmYsIDMwMXB4IDMwN3B4ICNmZmYsIDM2M3B4IDYwNHB4ICNmZmYsIDE5NTZweCAxNDQ1cHggI2ZmZiwgMTgyMHB4IDk2MHB4ICNmZmYsIDMyNXB4IDEyODVweCAjZmZmLCAxOTc1cHggMjg3cHggI2ZmZiwgNTgycHggMTA4NHB4ICNmZmYsIDExN3B4IDE5ODFweCAjZmZmLCA2NjZweCAxMTgxcHggI2ZmZiwgMjQ3cHggNjkxcHggI2ZmZiwgMTMzNnB4IDEzMDNweCAjZmZmLCAxNDQ5cHggMTk3M3B4ICNmZmYsIDI1MXB4IDE4N3B4ICNmZmYsIDExMjdweCA1MjRweCAjZmZmLCAxOTIwcHggNDM0cHggI2ZmZiwgMjY3cHggMTI5OHB4ICNmZmYsIDUyMXB4IDE0NDhweCAjZmZmLCAxNTc3cHggMTkxNXB4ICNmZmYsIDEyNzZweCA1NzFweCAjZmZmLCAxMjE3cHggMTU5M3B4ICNmZmYsIDk1OHB4IDExMDhweCAjZmZmLCAyNDZweCAxMDczcHggI2ZmZiwgMTU5MnB4IDEyMzhweCAjZmZmLCAxNzQ4cHggMTQxcHggI2ZmZiwgNjgzcHggMTY0NXB4ICNmZmYsIDNweCAxMDA2cHggI2ZmZiwgMTkxNHB4IDE4MjlweCAjZmZmLCAxMzk1cHggMTQ2MnB4ICNmZmYsIDEzMjFweCA1MjhweCAjZmZmLCAxNDM3cHggMTE4M3B4ICNmZmYsIDE2NThweCAxMzE3cHggI2ZmZiwgNDI1cHggMTc5MXB4ICNmZmYsIDUwMnB4IDEwMzhweCAjZmZmLCAxMTQzcHggMjY2cHggI2ZmZiwgMTIyOXB4IDgyNHB4ICNmZmYsIDgwMHB4IDYzMnB4ICNmZmYsIDE4OTFweCAxNDY5cHggI2ZmZiwgMTA2N3B4IDUzMXB4ICNmZmYsIDEyMjZweCAxNzU5cHggI2ZmZiwgMTUxNnB4IDkyNHB4ICNmZmYsIDE1ODVweCAxNzc2cHggI2ZmZiwgODI0cHggODE0cHggI2ZmZiwgMjk3cHggMTQ2M3B4ICNmZmYsIDQ5MHB4IDE3MjZweCAjZmZmLCAxODc4cHggMTk4MXB4ICNmZmYsIDI1OHB4IDEyNnB4ICNmZmYsIDEwNjNweCA5MDJweCAjZmZmLCA4OTNweCAxMDMwcHggI2ZmZiwgMTgxOHB4IDExMzFweCAjZmZmLCAxMzU1cHggODE3cHggI2ZmZiwgMjM4cHggMTkyMHB4ICNmZmYsIDExOTNweCA4MDZweCAjZmZmLCAxMDc2cHggNTgycHggI2ZmZiwgMTQ1NnB4IDQ3MnB4ICNmZmYsIDI0OHB4IDE0NTJweCAjZmZmLCAxNDMwcHggOTA0cHggI2ZmZiwgNDE3cHggNDk2cHggI2ZmZiwgMTM4N3B4IDUwNHB4ICNmZmYsIDU3OXB4IDYwOHB4ICNmZmYsIDgyN3B4IDk0NnB4ICNmZmYsIDEyMzRweCA2MTdweCAjZmZmLCAxNzMycHggMTU0OHB4ICNmZmYsIDE3MDZweCAxOTYxcHggI2ZmZiwgMzYxcHggMzcwcHggI2ZmZiwgMjExcHggMzE1cHggI2ZmZiwgMTYxMnB4IDY1N3B4ICNmZmYsIDE1MzNweCA2MzVweCAjZmZmLCAxNTcwcHggMTk1MHB4ICNmZmYsIDI3cHggMTk2OHB4ICNmZmYsIDE0NzZweCA5NDJweCAjZmZmLCAxMTdweCA1MjBweCAjZmZmLCAxMzUycHggNDI5cHggI2ZmZiwgMTM1NHB4IDczNXB4ICNmZmYsIDk3cHggODQ5cHggI2ZmZiwgODUzcHggMjA2cHggI2ZmZiwgMTE1MHB4IDczNnB4ICNmZmYsIDI2MXB4IDE4MzBweCAjZmZmLCA0OTdweCAzOXB4ICNmZmYsIDQ0cHggMTc5OHB4ICNmZmYsIDE2NjVweCAxMzI0cHggI2ZmZiwgMTgwMHB4IDI2NnB4ICNmZmYsIDE3MzNweCA5ODFweCAjZmZmLCAxOTcxcHggMTAxNnB4ICNmZmYsIDk2NnB4IDcyNHB4ICNmZmYsIDkyNHB4IDEzOTBweCAjZmZmLCA2ODlweCAxMzI5cHggI2ZmZiwgMTcwN3B4IDEyNzZweCAjZmZmLCAxNjY5cHggMTg0MHB4ICNmZmYsIDEwOTNweCA4NzBweCAjZmZmLCA4NjNweCAxNTI1cHggI2ZmZiwgMTU2M3B4IDE4ODBweCAjZmZmLCAxNTA5cHggMTA1MXB4ICNmZmYsIDUwNHB4IDU0OHB4ICNmZmYsIDExNTdweCAxODM4cHggI2ZmZiwgMTU5OXB4IDk3NXB4ICNmZmYsIDUwMHB4IDExMDdweCAjZmZmLCAxOTExcHggMTIwMHB4ICNmZmYsIDM3NHB4IDEyODlweCAjZmZmLCA1cHggMjAxcHggI2ZmZiwgMTM2NXB4IDYzOXB4ICNmZmYsIDEyNjFweCAxNTk4cHggI2ZmZiwgMTc5N3B4IDQ4MnB4ICNmZmYsIDE5NDJweCAxMzZweCAjZmZmLCAxNzUxcHggODQ1cHggI2ZmZiwgOTU4cHggODkycHggI2ZmZiwgMjNweCAxNTQxcHggI2ZmZiwgOTc0cHggNzMzcHggI2ZmZiwgODk2cHggMTYyMHB4ICNmZmYsIDEzMzhweCAxNTM0cHggI2ZmZiwgMzY4cHggNjI2cHggI2ZmZiwgMjE0cHggNjM0cHggI2ZmZiwgNTJweCAxNjE1cHggI2ZmZiwgMTM5MXB4IDMyNnB4ICNmZmYsIDE5NjFweCAxMjUycHggI2ZmZiwgMzg0cHggMTYwMHB4ICNmZmYsIDIwNXB4IDE1OTRweCAjZmZmLCA3MDNweCA0OTJweCAjZmZmLCAxMzk5cHggNDc1cHggI2ZmZiwgOTMwcHggMTY1MnB4ICNmZmYsIDE5MzBweCA5MjhweCAjZmZmLCAxNjI3cHggODgwcHggI2ZmZiwgNTIxcHggNjEycHggI2ZmZiwgMTQyNnB4IDFweCAjZmZmLCAxNXB4IDMyOXB4ICNmZmYsIDE2MzJweCAxNDA3cHggI2ZmZiwgMjUxcHggNDUwcHggI2ZmZiwgMTA4MHB4IDE4NzhweCAjZmZmLCAxMjYzcHggMTk3NHB4ICNmZmYsIDE1ODVweCAxNDkzcHggI2ZmZiwgMTMwOHB4IDE1OTlweCAjZmZmLCAyMDlweCA1MjZweCAjZmZmLCA3MjBweCAxMTgzcHggI2ZmZiwgMTg2NnB4IDQ5M3B4ICNmZmYsIDU4MXB4IDQyN3B4ICNmZmYsIDQxMnB4IDczMHB4ICNmZmYsIDExMnB4IDUyMHB4ICNmZmYsIDk1OXB4IDE1MjdweCAjZmZmLCAxMjQxcHggMTY0NnB4ICNmZmYsIDkyMXB4IDYyMnB4ICNmZmYsIDEzMTJweCAxMjY2cHggI2ZmZiwgOTU3cHggNDQycHggI2ZmZiwgMTQ4MHB4IDg3N3B4ICNmZmYsIDk1OXB4IDg1MHB4ICNmZmYsIDEzMTBweCAxNDc5cHggI2ZmZiwgMTY4N3B4IDM2NnB4ICNmZmYsIDE0OXB4IDQzMnB4ICNmZmYsIDI3OHB4IDE0MDFweCAjZmZmLCA2MjJweCAxNjgxcHggI2ZmZiwgMTU5MHB4IDEwODBweCAjZmZmLCAxMzI2cHggOTg0cHggI2ZmZiwgNTYycHggMTkyOHB4ICNmZmYsIDE4MDVweCA4NjhweCAjZmZmLCAxNzA1cHggMTcxOHB4ICNmZmYsIDEyMzVweCAzMzNweCAjZmZmLCA5MzNweCAxNjU5cHggI2ZmZiwgOTI2cHggOTRweCAjZmZmLCA1OTJweCAxODY0cHggI2ZmZiwgMTQxM3B4IDQwNXB4ICNmZmYsIDE2NzNweCAxMzU4cHggI2ZmZiwgMTc0OXB4IDM4NHB4ICNmZmYsIDMxNHB4IDEwODZweCAjZmZmLCA0NThweCAyOTdweCAjZmZmLCAxNDEycHggMTM2N3B4ICNmZmYsIDExNDdweCAxNDI0cHggI2ZmZiwgNTUwcHggMTUwNHB4ICNmZmYsIDE1MzNweCAxNjM5cHggI2ZmZiwgMTE4MXB4IDEzMjVweCAjZmZmLCA1NTVweCAxNjgycHggI2ZmZiwgNjA3cHggNzE0cHggI2ZmZiwgMTc1NXB4IDE3OTRweCAjZmZmLCAxNDIycHggNjIwcHggI2ZmZiwgMTkxNHB4IDE0NTVweCAjZmZmLCAxMDIycHggMTM0OXB4ICNmZmYsIDEzNjhweCA5MjZweCAjZmZmLCAxODg1cHggMTExNHB4ICNmZmYsIDI5N3B4IDEyMTJweCAjZmZmLCAyMzJweCA1N3B4ICNmZmYsIDE3NDFweCAxNjc5cHggI2ZmZiwgMTY5OHB4IDE1MDZweCAjZmZmLCAxNjA1cHggMTcyOXB4ICNmZmYsIDEzMDFweCA3MDdweCAjZmZmLCAxNDA2cHggMTY2NXB4ICNmZmYsIDEyMzdweCAzNThweCAjZmZmLCA4MHB4IDE5ODRweCAjZmZmLCAyOHB4IDEyNzNweCAjZmZmLCAxMzM0cHggMTAwNnB4ICNmZmYsIDE1NzNweCA5MjVweCAjZmZmLCA3MTRweCAzNzNweCAjZmZmLCAxODk5cHggODY4cHggI2ZmZiwgODYycHggMTg3OHB4ICNmZmYsIDcwMHB4IDYwOXB4ICNmZmYsIDQ1NXB4IDEyMzdweCAjZmZmLCA2MTdweCAxNjY3cHggI2ZmZiwgMzUxcHggOTAzcHggI2ZmZiwgMjM2cHggNjI1cHggI2ZmZiwgOTA2cHggMTc3NHB4ICNmZmYsIDY0M3B4IDE2NTlweCAjZmZmLCAxMjA5cHggMjQzcHggI2ZmZiwgNTFweCAzcHggI2ZmZiwgMTkzMHB4IDE5MzNweCAjZmZmLCA1NDhweCAxNjk2cHggI2ZmZiwgMzM5cHggNTY4cHggI2ZmZiwgMTQ2OXB4IDE1MDVweCAjZmZmLCA0MzRweCAxODA3cHggI2ZmZiwgNzYxcHggMTI5OHB4ICNmZmYsIDE5NzRweCAxMTYycHggI2ZmZiwgMzY2cHggNTIxcHggI2ZmZiwgMTcwOXB4IDYxMXB4ICNmZmYsIDM1NXB4IDgyMXB4ICNmZmYsIDEzOTFweCA0MDFweCAjZmZmLCAxMDMycHggMTg5MHB4ICNmZmYsIDEzNjVweCAxMDY1cHggI2ZmZiwgMTYwMnB4IDQ0MHB4ICNmZmYsIDE2NzhweCAxMDA3cHggI2ZmZiwgMzgxcHggMTEyN3B4ICNmZmYsIDE0MDBweCAxMDA5cHggI2ZmZiwgOTY5cHggNTU0cHggI2ZmZiwgMTA4MHB4IDgzMnB4ICNmZmYsIDE4N3B4IDE5NDlweCAjZmZmLCA3MzhweCAxNjc2cHggI2ZmZiwgMThweCAxNjEwcHggI2ZmZiwgMTk4MHB4IDE3NzhweCAjZmZmLCAzNTRweCA1MjhweCAjZmZmLCAxNjgxcHggNTkwcHggI2ZmZiwgMTM5M3B4IDEyMzZweCAjZmZmLCAxNDQ5cHggMTQwNnB4ICNmZmYsIDE1OTVweCAxMjUzcHggI2ZmZiwgNzU0cHggMTY3NnB4ICNmZmYsIDE5MHB4IDQzMXB4ICNmZmYsIDg2NnB4IDYyNHB4ICNmZmYsIDE1MDhweCAxODM4cHggI2ZmZiwgODk0cHggNDM1cHggI2ZmZiwgM3B4IDE2MjNweCAjZmZmLCAxOTc5cHggNjE3cHggI2ZmZiwgNzUycHggMTU1MHB4ICNmZmYsIDE3NjFweCAxMjU1cHggI2ZmZiwgNTNweCA4NTNweCAjZmZmLCAxMTcycHggMTkxN3B4ICNmZmYsIDg4cHggMTYxcHggI2ZmZiwgMTU4N3B4IDY0OHB4ICNmZmYsIDEyMjJweCA2ODZweCAjZmZmLCAxOTU3cHggNjY2cHggI2ZmZiwgOTA5cHggMTA3MHB4ICNmZmYsIDM3OXB4IDY0OHB4ICNmZmYsIDExNTRweCAxODYycHggI2ZmZiwgMTA2NXB4IDE5MTZweCAjZmZmLCAxNTQ2cHggNjI4cHggI2ZmZiwgMTMwcHggODU4cHggI2ZmZiwgNTU4cHggMzg3cHggI2ZmZiwgMTAzNXB4IDExNThweCAjZmZmLCA2MDZweCAxNjU0cHggI2ZmZiwgNzY0cHggODI5cHggI2ZmZiwgODM3cHggMTg3OHB4ICNmZmYsIDUyMnB4IDE4NDNweCAjZmZmLCAxMjE3cHggNTMzcHggI2ZmZiwgMTk4cHggOTNweCAjZmZmLCA0ODNweCAxNDI2cHggI2ZmZiwgMTQ2M3B4IDQxOXB4ICNmZmYsIDEzMjNweCAyNzNweCAjZmZmLCA2MDhweCAxMDgzcHggI2ZmZiwgNDM1cHggMTk4NnB4ICNmZmYsIDE4MjBweCAxNDg0cHggI2ZmZiwgMTk2cHggNDY1cHggI2ZmZiwgMTIwMnB4IDg2M3B4ICNmZmYsIDE4NjdweCA4ODVweCAjZmZmLCA5N3B4IDE1NzZweCAjZmZmLCA3NDVweCAxMTQycHggI2ZmZiwgMTYwM3B4IDE4MDlweCAjZmZmLCA2MjJweCA4NDVweCAjZmZmLCA4MDFweCA0NDhweCAjZmZmLCA2NzdweCAxMDM0cHggI2ZmZiwgMTA2OHB4IDE0NjRweCAjZmZmLCAxNTg2cHggMTU3NHB4ICNmZmYsIDIzN3B4IDkxNXB4ICNmZmYsIDE5MjhweCAxNTMycHggI2ZmZiwgNjlweCAxNzAwcHggI2ZmZiwgNDA4cHggMTg3NnB4ICNmZmYsIDMzNHB4IDEycHggI2ZmZiwgMTk3M3B4IDE1ODRweCAjZmZmLCAyODBweCAyNjFweCAjZmZmLCAxNDM4cHggMzQ2cHggI2ZmZiwgMTE4MXB4IDE2MjFweCAjZmZmLCA2MTZweCAxMjUxcHggI2ZmZiwgNTBweCA2MjJweCAjZmZmLCAxOTgzcHggNjA0cHggI2ZmZiwgMTIyOHB4IDExNzJweCAjZmZmLCAyNzFweCA4OTdweCAjZmZmLCAxMTAycHggMTQ5NHB4ICNmZmYsIDE2OTZweCAxMDUxcHggI2ZmZiwgMTk2N3B4IDE4NzFweCAjZmZmLCAxMjcycHggMjQ3cHggI2ZmZiwgNzUxcHggODU0cHggI2ZmZiwgNTYwcHggMTY1MnB4ICNmZmYsIDE0OThweCAxOTZweCAjZmZmLCAxMjIycHggMTYxMnB4ICNmZmYsIDUxOHB4IDYyOXB4ICNmZmYsIDc2cHggMTk0MXB4ICNmZmYsIDEzNTdweCAxMDk5cHggI2ZmZiwgODI1cHggMTU0N3B4ICNmZmY7YW5pbWF0aW9uOmFuaW1TdGFyIDgzcyBsaW5lYXIgaW5maW5pdGV9I3doaXRlLXN0YXJzLXNtOmFmdGVye2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyMDAwcHg7d2lkdGg6MXB4O2hlaWdodDoxcHg7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MjkxcHggMTk4MXB4ICNmZmYsIDE2MDFweCAzMzJweCAjZmZmLCAxMDA3cHggMjI5cHggI2ZmZiwgMTM1MXB4IDYzMXB4ICNmZmYsIDEzMTdweCAxODAwcHggI2ZmZiwgNzI2cHggMTYzOHB4ICNmZmYsIDE3MzZweCA2MjhweCAjZmZmLCA4NTlweCAxMTk3cHggI2ZmZiwgNDM2cHggMjI0cHggI2ZmZiwgMTI2M3B4IDI3NXB4ICNmZmYsIDEwMDFweCAxODk4cHggI2ZmZiwgMTE4MnB4IDI4N3B4ICNmZmYsIDExNzhweCAxMTQ4cHggI2ZmZiwgODcxcHggMTQ2NXB4ICNmZmYsIDE5ODJweCA0NDFweCAjZmZmLCAyOTlweCAxNjc3cHggI2ZmZiwgMTQ3MXB4IDE1OHB4ICNmZmYsIDQ2NXB4IDEyOTZweCAjZmZmLCAxNzg5cHggMTIxMXB4ICNmZmYsIDkyN3B4IDE5ODdweCAjZmZmLCA4MTlweCA2MTZweCAjZmZmLCAxMzYycHggMTE5MnB4ICNmZmYsIDg4NXB4IDQ3OXB4ICNmZmYsIDE4NDNweCAxMzQxcHggI2ZmZiwgMTA2OHB4IDc3N3B4ICNmZmYsIDkyN3B4IDkyMXB4ICNmZmYsIDE5NHB4IDE1MDhweCAjZmZmLCAzMTVweCA5OTJweCAjZmZmLCAxMjcwcHggMTk4MHB4ICNmZmYsIDQ2MXB4IDE0MDZweCAjZmZmLCA4MDlweCA0MjFweCAjZmZmLCA5NTVweCA1ODJweCAjZmZmLCA4NDRweCAxMjc3cHggI2ZmZiwgMTM2cHggMTc3MHB4ICNmZmYsIDY2N3B4IDMxM3B4ICNmZmYsIDc3MnB4IDEwMHB4ICNmZmYsIDk4MXB4IDE5ODJweCAjZmZmLCA1MDRweCAxODU2cHggI2ZmZiwgMTQzNnB4IDM5OXB4ICNmZmYsIDkwNXB4IDU4OHB4ICNmZmYsIDE2OTdweCAyNzhweCAjZmZmLCA5MDVweCAxMjA4cHggI2ZmZiwgMTM5MHB4IDE3MzdweCAjZmZmLCA2MTlweCAzMDZweCAjZmZmLCA1MjJweCA4NTNweCAjZmZmLCAxMTQwcHggMTI0M3B4ICNmZmYsIDUzOXB4IDUwNXB4ICNmZmYsIDU0M3B4IDEzNzdweCAjZmZmLCAxMTEycHggNzA2cHggI2ZmZiwgMTI4NXB4IDE4MzZweCAjZmZmLCAyMjhweCA1NzZweCAjZmZmLCA0MXB4IDg3OHB4ICNmZmYsIDgyMXB4IDE3NDVweCAjZmZmLCAxMDU5cHggMTgxN3B4ICNmZmYsIDgzN3B4IDE3NTdweCAjZmZmLCAxNzIycHggOTkwcHggI2ZmZiwgMTY1NnB4IDYyMnB4ICNmZmYsIDE1NThweCAxOTU4cHggI2ZmZiwgMTAzNHB4IDkxNHB4ICNmZmYsIDE5OXB4IDY4MXB4ICNmZmYsIDEwNDZweCAxOTg5cHggI2ZmZiwgMzY4cHggMTYxM3B4ICNmZmYsIDE3MDdweCAxMTcxcHggI2ZmZiwgODQ5cHggMTA0MXB4ICNmZmYsIDg5MnB4IDExMDlweCAjZmZmLCAxNjkycHggNTg5cHggI2ZmZiwgMjIycHggOTZweCAjZmZmLCAxNjIycHggNTAycHggI2ZmZiwgMTkyN3B4IDEwOTVweCAjZmZmLCAxNTI5cHggMTMxNHB4ICNmZmYsIDExMjBweCA1NHB4ICNmZmYsIDI2NHB4IDEzMTZweCAjZmZmLCAxNTI3cHggMTc4NHB4ICNmZmYsIDU4MnB4IDk2OXB4ICNmZmYsIDE3ODBweCAxOTUzcHggI2ZmZiwgMTI5OXB4IDEyMHB4ICNmZmYsIDE1MTNweCAxOTE2cHggI2ZmZiwgMTE2OXB4IDE1MDZweCAjZmZmLCAxODE1cHggMTA3OHB4ICNmZmYsIDE0OTVweCA0MjJweCAjZmZmLCAyMDdweCAxMDU5cHggI2ZmZiwgNzc1cHggMTAwMXB4ICNmZmYsIDM5OHB4IDg5OXB4ICNmZmYsIDc0MHB4IDkyMnB4ICNmZmYsIDk3NHB4IDU0NHB4ICNmZmYsIDEyOTNweCA3MTBweCAjZmZmLCA1cHggMTM2NXB4ICNmZmYsIDE0NjhweCA5MjRweCAjZmZmLCA3NzlweCA2NTNweCAjZmZmLCA0ODZweCA5OHB4ICNmZmYsIDE4NTJweCAyNjRweCAjZmZmLCA2NDdweCA0ODlweCAjZmZmLCAxODI1cHggMTc1MHB4ICNmZmYsIDE5NjhweCAxNDI2cHggI2ZmZiwgMTg1cHggMjQzcHggI2ZmZiwgOTYwcHggMTk1cHggI2ZmZiwgMTA2MHB4IDI2NnB4ICNmZmYsIDU2N3B4IDEwNDFweCAjZmZmLCA3NDlweCA5NnB4ICNmZmYsIDI2M3B4IDk4cHggI2ZmZiwgMTU3NnB4IDE5M3B4ICNmZmYsIDQ2OHB4IDE3NjlweCAjZmZmLCAxODEzcHggMTQ4MXB4ICNmZmYsIDUzNHB4IDE1NzhweCAjZmZmLCAxMzM4cHggOTY2cHggI2ZmZiwgMTUxMnB4IDE5OHB4ICNmZmYsIDEyNDFweCA1ODZweCAjZmZmLCAxOTc1cHggOTE0cHggI2ZmZiwgMjc1cHggMTgyM3B4ICNmZmYsIDYwcHggMTYxcHggI2ZmZiwgMjc4cHggMjQzcHggI2ZmZiwgMjgwcHggMTkyMnB4ICNmZmYsIDY1OHB4IDEzNDZweCAjZmZmLCAxNDg3cHggMjQ0cHggI2ZmZiwgNTU5cHggMTYzcHggI2ZmZiwgMTUxM3B4IDI2OHB4ICNmZmYsIDExNzhweCAxMzk0cHggI2ZmZiwgMTIxN3B4IDEwMzZweCAjZmZmLCAxOTQ2cHggMTQ4MXB4ICNmZmYsIDExODJweCAxMTUzcHggI2ZmZiwgMzc1cHggMTAzOHB4ICNmZmYsIDEzMzFweCA5MDZweCAjZmZmLCA3NzNweCA3MjRweCAjZmZmLCAxMjZweCAxODgzcHggI2ZmZiwgMTQyNXB4IDk4OXB4ICNmZmYsIDE0MzdweCAxNDA1cHggI2ZmZiwgNzFweCAxNTAxcHggI2ZmZiwgMTA0OHB4IDQxNXB4ICNmZmYsIDEwOTlweCAxMjQ4cHggI2ZmZiwgMjg4cHggMTIwMHB4ICNmZmYsIDM1NnB4IDE5NTJweCAjZmZmLCA2MThweCAxNDg3cHggI2ZmZiwgNzIwcHggMTc3MXB4ICNmZmYsIDc5MXB4IDEyOTVweCAjZmZmLCAxNzMxcHggNjU0cHggI2ZmZiwgNTcwcHggNDY3cHggI2ZmZiwgMTQ1MnB4IDMzMnB4ICNmZmYsIDEwMDNweCAxMDMzcHggI2ZmZiwgNzg4cHggNzBweCAjZmZmLCAxNDAzcHggMTY3NHB4ICNmZmYsIDkxMnB4IDE3NThweCAjZmZmLCAxODA3cHggMTQxNnB4ICNmZmYsIDgwMnB4IDc5MHB4ICNmZmYsIDE2NzVweCAxNDE4cHggI2ZmZiwgMTUyMXB4IDg4MnB4ICNmZmYsIDE2MTNweCAzMDRweCAjZmZmLCA0OTlweCAxNTA5cHggI2ZmZiwgMTgwN3B4IDE2OTRweCAjZmZmLCAxMDAzcHggMTIyMnB4ICNmZmYsIDc1OHB4IDQxMXB4ICNmZmYsIDEyODVweCA0MDhweCAjZmZmLCA2NjJweCAxNzc5cHggI2ZmZiwgMTgwOXB4IDUyMHB4ICNmZmYsIDE5MXB4IDIyNXB4ICNmZmYsIDI5M3B4IDkyOHB4ICNmZmYsIDM0cHggOTMycHggI2ZmZiwgMTU3MHB4IDQ2MXB4ICNmZmYsIDkwM3B4IDYxN3B4ICNmZmYsIDI0MHB4IDEyOTFweCAjZmZmLCA4MjNweCAzNjlweCAjZmZmLCAxNjgycHggMTcwMHB4ICNmZmYsIDgxNnB4IDEwMTZweCAjZmZmLCAxNDA3cHggNjU4cHggI2ZmZiwgMTg0MXB4IDIwM3B4ICNmZmYsIDcwOXB4IDcwOHB4ICNmZmYsIDEwNTZweCAxMzkxcHggI2ZmZiwgOTA2cHggNjAycHggI2ZmZiwgMzg3cHggMzY4cHggI2ZmZiwgMTIzMnB4IDYzMXB4ICNmZmYsIDE2NzRweCAxNzEycHggI2ZmZiwgMTkzOXB4IDEwNDBweCAjZmZmLCAxMjE2cHggMTU4MnB4ICNmZmYsIDE4NDZweCAyOTdweCAjZmZmLCAxNzExcHggMTQ1N3B4ICNmZmYsIDExMzdweCAxOTI1cHggI2ZmZiwgODk4cHggODcycHggI2ZmZiwgMTMyNXB4IDYyMnB4ICNmZmYsIDgyM3B4IDg2MHB4ICNmZmYsIDM0MXB4IDIxMXB4ICNmZmYsIDZweCAxODQ1cHggI2ZmZiwgMTQwMHB4IDE2ODRweCAjZmZmLCAxMTYzcHggMTc4MXB4ICNmZmYsIDE4NDJweCA3MThweCAjZmZmLCA1NTJweCA2NDhweCAjZmZmLCA2MDhweCAxNjdweCAjZmZmLCA4MjBweCAxNDM4cHggI2ZmZiwgMTY0cHggNjU5cHggI2ZmZiwgMTA0NXB4IDc5NnB4ICNmZmYsIDNweCAxODM4cHggI2ZmZiwgMTIwNHB4IDgyN3B4ICNmZmYsIDkxM3B4IDExNTZweCAjZmZmLCAxNTIzcHggODE1cHggI2ZmZiwgODQ2cHggNjA3cHggI2ZmZiwgMTgyOHB4IDYzMHB4ICNmZmYsIDE4ODVweCA5MDJweCAjZmZmLCAxMDQ2cHggNTA3cHggI2ZmZiwgMjdweCAxNTI4cHggI2ZmZiwgNzU4cHggMTc0OHB4ICNmZmYsIDE3NTlweCAxOTk3cHggI2ZmZiwgMTE0NHB4IDE5MTJweCAjZmZmLCA5MDlweCAxMTA3cHggI2ZmZiwgNDU4cHggOTQ0cHggI2ZmZiwgNjYzcHggMjczcHggI2ZmZiwgMnB4IDY4cHggI2ZmZiwgMjA0cHggMTgxNXB4ICNmZmYsIDEwM3B4IDE4ODJweCAjZmZmLCAyODNweCAxODA1cHggI2ZmZiwgNzg4cHggMTIyMHB4ICNmZmYsIDM3NXB4IDEwOTZweCAjZmZmLCA3NjBweCAzNTRweCAjZmZmLCA3NzVweCAxNTU5cHggI2ZmZiwgNTM3cHggODg5cHggI2ZmZiwgMTYyM3B4IDExOTVweCAjZmZmLCAxMDQxcHggMTMycHggI2ZmZiwgMTQ0OXB4IDg3N3B4ICNmZmYsIDE3OTFweCA0OTZweCAjZmZmLCAxOTU3cHggMTg4NnB4ICNmZmYsIDE2NTVweCAxMjQ5cHggI2ZmZiwgNDcwcHggMTI2cHggI2ZmZiwgMTY2OXB4IDE3MDJweCAjZmZmLCA0MDdweCAzNThweCAjZmZmLCAxODMycHggMTQxNXB4ICNmZmYsIDg1MnB4IDE5NDZweCAjZmZmLCAxMTA5cHggMTUwNHB4ICNmZmYsIDQ5M3B4IDQ3NXB4ICNmZmYsIDEyMjZweCAzNTFweCAjZmZmLCAxODU3cHggNDlweCAjZmZmLCAxMTMzcHggNDIwcHggI2ZmZiwgMzkwcHggMTMwNnB4ICNmZmYsIDQyNXB4IDE0ODlweCAjZmZmLCA2MjlweCAxMjY3cHggI2ZmZiwgMTMzNXB4IDEzMzlweCAjZmZmLCAxNDI0cHggODA1cHggI2ZmZiwgMzgwcHggNDA0cHggI2ZmZiwgMjU4cHggMTQwMXB4ICNmZmYsIDEzOTRweCAxMDIxcHggI2ZmZiwgNDUwcHggMzgycHggI2ZmZiwgMTA5MHB4IDczNHB4ICNmZmYsIDMxN3B4IDkzMHB4ICNmZmYsIDE2MTVweCAxNjExcHggI2ZmZiwgMjI1cHggMTkyN3B4ICNmZmYsIDg1cHggODAwcHggI2ZmZiwgMTI0NnB4IDdweCAjZmZmLCA1MThweCAzNjJweCAjZmZmLCAxNzUxcHggNDU4cHggI2ZmZiwgNzk2cHggMTk0NXB4ICNmZmYsIDc4NnB4IDkwNXB4ICNmZmYsIDE5NDNweCAxMTA0cHggI2ZmZiwgMzI2cHggMTI3N3B4ICNmZmYsIDExNzNweCAxNDkxcHggI2ZmZiwgOTgxcHggMTczMnB4ICNmZmYsIDE5ODNweCAzOTBweCAjZmZmLCA0OTlweCAzODFweCAjZmZmLCAxNDkwcHggNDg5cHggI2ZmZiwgODE0cHggMTg0NnB4ICNmZmYsIDQwN3B4IDY4OXB4ICNmZmYsIDE0MDRweCAxODczcHggI2ZmZiwgNjFweCAxMjIzcHggI2ZmZiwgMTk2MHB4IDI0OHB4ICNmZmYsIDEyMzFweCAxNTg4cHggI2ZmZiwgOTc3cHggODcxcHggI2ZmZiwgNTU2cHggNzcycHggI2ZmZiwgMzU5cHggMTE0MXB4ICNmZmYsIDU4cHggODgzcHggI2ZmZiwgNDgxcHggMTI1OXB4ICNmZmYsIDg3NHB4IDQ5NXB4ICNmZmYsIDYyNHB4IDEzODRweCAjZmZmLCAxNzMwcHggOTAxcHggI2ZmZiwgMTY0OHB4IDgyN3B4ICNmZmYsIDgwN3B4IDEwODJweCAjZmZmLCAxNjAxcHggMTM5cHggI2ZmZiwgMTQ5MHB4IDEwMzdweCAjZmZmLCAyMDJweCAxNzlweCAjZmZmLCA2NjRweCA2NTJweCAjZmZmLCAzNzdweCAzNjlweCAjZmZmLCA2MzlweCAxNDU0cHggI2ZmZiwgMThweCAxMTA4cHggI2ZmZiwgMTkxOHB4IDEzNjRweCAjZmZmLCAxNDRweCAxNjcwcHggI2ZmZiwgMTUyMXB4IDEwODJweCAjZmZmLCAxMDA2cHggNjY5cHggI2ZmZiwgMTUxcHggMTU0OHB4ICNmZmYsIDY1N3B4IDE5NDBweCAjZmZmLCAxMjhweCAxNTY3cHggI2ZmZiwgNTAxcHggMTU3NXB4ICNmZmYsIDEwNzdweCA5MTRweCAjZmZmLCAxNTQ0cHggNzM5cHggI2ZmZiwgMTAyMnB4IDQwOHB4ICNmZmYsIDE5MzlweCAxODk3cHggI2ZmZiwgNTlweCAxMDk5cHggI2ZmZiwgMTk5M3B4IDQyMXB4ICNmZmYsIDE0OTZweCAxOTE3cHggI2ZmZiwgMTk2NHB4IDE0NTZweCAjZmZmLCAxMTgycHggMTQ3NXB4ICNmZmYsIDE2OTlweCAxNnB4ICNmZmYsIDE2MXB4IDQzMHB4ICNmZmYsIDc0NHB4IDEwODNweCAjZmZmLCAxNzA2cHggMjc3cHggI2ZmZiwgODg0cHggMTcyM3B4ICNmZmYsIDkxMHB4IDE4MDJweCAjZmZmLCAxMDY3cHggMTc3cHggI2ZmZiwgMTkyMHB4IDEzNjRweCAjZmZmLCAzMDJweCAxMDY1cHggI2ZmZiwgMTczNXB4IDUzNnB4ICNmZmYsIDExMjNweCA5MjlweCAjZmZmLCA0MjBweCAxODgzcHggI2ZmZiwgNzQ5cHggNDg0cHggI2ZmZiwgMTY2NnB4IDE2MjFweCAjZmZmLCAxMDA4cHggODE1cHggI2ZmZiwgMTEyM3B4IDE3NjZweCAjZmZmLCAzMzRweCA1NjFweCAjZmZmLCA1OTBweCAxMTMzcHggI2ZmZiwgMTIxNXB4IDEwNzVweCAjZmZmLCAzMHB4IDEyMDRweCAjZmZmLCAxOTJweCAxMzc1cHggI2ZmZiwgMTMwOHB4IDJweCAjZmZmLCA5NTlweCAxNjAwcHggI2ZmZiwgMTIxOXB4IDU2OXB4ICNmZmYsIDExNzVweCA1MjdweCAjZmZmLCA5NzNweCAxMzE5cHggI2ZmZiwgMTIyNHB4IDE0MDhweCAjZmZmLCA0NDhweCAxNzQ2cHggI2ZmZiwgMTI1OHB4IDExNzhweCAjZmZmLCA5MTZweCAxMzU5cHggI2ZmZiwgMTY3cHggMzgycHggI2ZmZiwgNTM0cHggODcycHggI2ZmZiwgMTY0OXB4IDYzM3B4ICNmZmYsIDEyNXB4IDY4M3B4ICNmZmYsIDEyNXB4IDE5NTJweCAjZmZmLCA3MTlweCAxMTk4cHggI2ZmZiwgMTExOHB4IDExNDVweCAjZmZmLCAxMzIxcHggNTZweCAjZmZmLCA5NThweCAxMDQ1cHggI2ZmZiwgMzVweCAxMzk1cHggI2ZmZiwgNzA4cHggOTM2cHggI2ZmZiwgMTkxN3B4IDcwNHB4ICNmZmYsIDE5MjZweCAxOTA3cHggI2ZmZiwgNDM1cHggMTM3OXB4ICNmZmYsIDk4NnB4IDI4MnB4ICNmZmYsIDE2MThweCAxOTE3cHggI2ZmZiwgOTUzcHggOTY1cHggI2ZmZiwgMTExOXB4IDE3MzhweCAjZmZmLCAxOTA1cHggMTg4NHB4ICNmZmYsIDExMDRweCA2NTdweCAjZmZmLCA0MzlweCA5NjJweCAjZmZmLCAzNjVweCAyMTlweCAjZmZmLCAxNjAwcHggMTAyOHB4ICNmZmYsIDE5NzBweCAxNTc0cHggI2ZmZiwgMTE1NHB4IDQ0MHB4ICNmZmYsIDE5MTZweCA3ODBweCAjZmZmLCAxNjA4cHggOTI4cHggI2ZmZiwgMTU4M3B4IDgxMHB4ICNmZmYsIDYyOHB4IDY4MnB4ICNmZmYsIDU5NnB4IDE1MjVweCAjZmZmLCA1MjFweCAxNzQ2cHggI2ZmZiwgODQ4cHggNzQwcHggI2ZmZiwgMTI1MXB4IDg1NXB4ICNmZmYsIDIyMnB4IDkxNHB4ICNmZmYsIDE1MzhweCAzMzRweCAjZmZmLCAxNDQxcHggMTYzMXB4ICNmZmYsIDE4NzNweCAxMDdweCAjZmZmLCAxNTk4cHggMTI4OHB4ICNmZmYsIDE1MTFweCA4OXB4ICNmZmYsIDY1cHggMTA3N3B4ICNmZmYsIDE4MzNweCA4MTNweCAjZmZmLCA4OThweCAxMzg0cHggI2ZmZiwgNTE3cHggMTgxOXB4ICNmZmYsIDI5OXB4IDI5M3B4ICNmZmYsIDk1NXB4IDM5MXB4ICNmZmYsIDU4cHggMTY0NXB4ICNmZmYsIDE5MTNweCA4NnB4ICNmZmYsIDEwMTNweCA2NzJweCAjZmZmLCAxODIzcHggMTc1NnB4ICNmZmYsIDkzMHB4IDM5NHB4ICNmZmYsIDY4NHB4IDEwNjNweCAjZmZmLCA4NzdweCA1M3B4ICNmZmYsIDE5OTJweCA0N3B4ICNmZmYsIDE2MzNweCAxMDE0cHggI2ZmZiwgOTEzcHggMzQ1cHggI2ZmZiwgNjcxcHggMTM2NnB4ICNmZmYsIDE5NDdweCAxNTc3cHggI2ZmZiwgMTI5OXB4IDEyNzJweCAjZmZmLCA3MDRweCAxNjkwcHggI2ZmZiwgMTIzMXB4IDEyNTNweCAjZmZmLCAxNjAycHggMTM0MHB4ICNmZmYsIDc5NHB4IDEyOTNweCAjZmZmLCAxNzA2cHggMTE3NHB4ICNmZmYsIDE0NDJweCA2MDBweCAjZmZmLCAyNzBweCAxNzE3cHggI2ZmZiwgMTAxMXB4IDE3ODlweCAjZmZmLCAxNjQ4cHggMTc1MHB4ICNmZmYsIDEyOTRweCAyMDAwcHggI2ZmZiwgMTY0MHB4IDg4MnB4ICNmZmYsIDE1MTZweCA4MDVweCAjZmZmLCAxMTk5cHggODk1cHggI2ZmZiwgMTQ1NHB4IDE5MzlweCAjZmZmLCA0MHB4IDEwMTlweCAjZmZmLCAzOTdweCAxMDM3cHggI2ZmZiwgMTM2NHB4IDE3NjdweCAjZmZmLCA5MzJweCA5OTZweCAjZmZmLCAyMjdweCAxMDEzcHggI2ZmZiwgMzAxcHggMzA3cHggI2ZmZiwgMzYzcHggNjA0cHggI2ZmZiwgMTk1NnB4IDE0NDVweCAjZmZmLCAxODIwcHggOTYwcHggI2ZmZiwgMzI1cHggMTI4NXB4ICNmZmYsIDE5NzVweCAyODdweCAjZmZmLCA1ODJweCAxMDg0cHggI2ZmZiwgMTE3cHggMTk4MXB4ICNmZmYsIDY2NnB4IDExODFweCAjZmZmLCAyNDdweCA2OTFweCAjZmZmLCAxMzM2cHggMTMwM3B4ICNmZmYsIDE0NDlweCAxOTczcHggI2ZmZiwgMjUxcHggMTg3cHggI2ZmZiwgMTEyN3B4IDUyNHB4ICNmZmYsIDE5MjBweCA0MzRweCAjZmZmLCAyNjdweCAxMjk4cHggI2ZmZiwgNTIxcHggMTQ0OHB4ICNmZmYsIDE1NzdweCAxOTE1cHggI2ZmZiwgMTI3NnB4IDU3MXB4ICNmZmYsIDEyMTdweCAxNTkzcHggI2ZmZiwgOTU4cHggMTEwOHB4ICNmZmYsIDI0NnB4IDEwNzNweCAjZmZmLCAxNTkycHggMTIzOHB4ICNmZmYsIDE3NDhweCAxNDFweCAjZmZmLCA2ODNweCAxNjQ1cHggI2ZmZiwgM3B4IDEwMDZweCAjZmZmLCAxOTE0cHggMTgyOXB4ICNmZmYsIDEzOTVweCAxNDYycHggI2ZmZiwgMTMyMXB4IDUyOHB4ICNmZmYsIDE0MzdweCAxMTgzcHggI2ZmZiwgMTY1OHB4IDEzMTdweCAjZmZmLCA0MjVweCAxNzkxcHggI2ZmZiwgNTAycHggMTAzOHB4ICNmZmYsIDExNDNweCAyNjZweCAjZmZmLCAxMjI5cHggODI0cHggI2ZmZiwgODAwcHggNjMycHggI2ZmZiwgMTg5MXB4IDE0NjlweCAjZmZmLCAxMDY3cHggNTMxcHggI2ZmZiwgMTIyNnB4IDE3NTlweCAjZmZmLCAxNTE2cHggOTI0cHggI2ZmZiwgMTU4NXB4IDE3NzZweCAjZmZmLCA4MjRweCA4MTRweCAjZmZmLCAyOTdweCAxNDYzcHggI2ZmZiwgNDkwcHggMTcyNnB4ICNmZmYsIDE4NzhweCAxOTgxcHggI2ZmZiwgMjU4cHggMTI2cHggI2ZmZiwgMTA2M3B4IDkwMnB4ICNmZmYsIDg5M3B4IDEwMzBweCAjZmZmLCAxODE4cHggMTEzMXB4ICNmZmYsIDEzNTVweCA4MTdweCAjZmZmLCAyMzhweCAxOTIwcHggI2ZmZiwgMTE5M3B4IDgwNnB4ICNmZmYsIDEwNzZweCA1ODJweCAjZmZmLCAxNDU2cHggNDcycHggI2ZmZiwgMjQ4cHggMTQ1MnB4ICNmZmYsIDE0MzBweCA5MDRweCAjZmZmLCA0MTdweCA0OTZweCAjZmZmLCAxMzg3cHggNTA0cHggI2ZmZiwgNTc5cHggNjA4cHggI2ZmZiwgODI3cHggOTQ2cHggI2ZmZiwgMTIzNHB4IDYxN3B4ICNmZmYsIDE3MzJweCAxNTQ4cHggI2ZmZiwgMTcwNnB4IDE5NjFweCAjZmZmLCAzNjFweCAzNzBweCAjZmZmLCAyMTFweCAzMTVweCAjZmZmLCAxNjEycHggNjU3cHggI2ZmZiwgMTUzM3B4IDYzNXB4ICNmZmYsIDE1NzBweCAxOTUwcHggI2ZmZiwgMjdweCAxOTY4cHggI2ZmZiwgMTQ3NnB4IDk0MnB4ICNmZmYsIDExN3B4IDUyMHB4ICNmZmYsIDEzNTJweCA0MjlweCAjZmZmLCAxMzU0cHggNzM1cHggI2ZmZiwgOTdweCA4NDlweCAjZmZmLCA4NTNweCAyMDZweCAjZmZmLCAxMTUwcHggNzM2cHggI2ZmZiwgMjYxcHggMTgzMHB4ICNmZmYsIDQ5N3B4IDM5cHggI2ZmZiwgNDRweCAxNzk4cHggI2ZmZiwgMTY2NXB4IDEzMjRweCAjZmZmLCAxODAwcHggMjY2cHggI2ZmZiwgMTczM3B4IDk4MXB4ICNmZmYsIDE5NzFweCAxMDE2cHggI2ZmZiwgOTY2cHggNzI0cHggI2ZmZiwgOTI0cHggMTM5MHB4ICNmZmYsIDY4OXB4IDEzMjlweCAjZmZmLCAxNzA3cHggMTI3NnB4ICNmZmYsIDE2NjlweCAxODQwcHggI2ZmZiwgMTA5M3B4IDg3MHB4ICNmZmYsIDg2M3B4IDE1MjVweCAjZmZmLCAxNTYzcHggMTg4MHB4ICNmZmYsIDE1MDlweCAxMDUxcHggI2ZmZiwgNTA0cHggNTQ4cHggI2ZmZiwgMTE1N3B4IDE4MzhweCAjZmZmLCAxNTk5cHggOTc1cHggI2ZmZiwgNTAwcHggMTEwN3B4ICNmZmYsIDE5MTFweCAxMjAwcHggI2ZmZiwgMzc0cHggMTI4OXB4ICNmZmYsIDVweCAyMDFweCAjZmZmLCAxMzY1cHggNjM5cHggI2ZmZiwgMTI2MXB4IDE1OThweCAjZmZmLCAxNzk3cHggNDgycHggI2ZmZiwgMTk0MnB4IDEzNnB4ICNmZmYsIDE3NTFweCA4NDVweCAjZmZmLCA5NThweCA4OTJweCAjZmZmLCAyM3B4IDE1NDFweCAjZmZmLCA5NzRweCA3MzNweCAjZmZmLCA4OTZweCAxNjIwcHggI2ZmZiwgMTMzOHB4IDE1MzRweCAjZmZmLCAzNjhweCA2MjZweCAjZmZmLCAyMTRweCA2MzRweCAjZmZmLCA1MnB4IDE2MTVweCAjZmZmLCAxMzkxcHggMzI2cHggI2ZmZiwgMTk2MXB4IDEyNTJweCAjZmZmLCAzODRweCAxNjAwcHggI2ZmZiwgMjA1cHggMTU5NHB4ICNmZmYsIDcwM3B4IDQ5MnB4ICNmZmYsIDEzOTlweCA0NzVweCAjZmZmLCA5MzBweCAxNjUycHggI2ZmZiwgMTkzMHB4IDkyOHB4ICNmZmYsIDE2MjdweCA4ODBweCAjZmZmLCA1MjFweCA2MTJweCAjZmZmLCAxNDI2cHggMXB4ICNmZmYsIDE1cHggMzI5cHggI2ZmZiwgMTYzMnB4IDE0MDdweCAjZmZmLCAyNTFweCA0NTBweCAjZmZmLCAxMDgwcHggMTg3OHB4ICNmZmYsIDEyNjNweCAxOTc0cHggI2ZmZiwgMTU4NXB4IDE0OTNweCAjZmZmLCAxMzA4cHggMTU5OXB4ICNmZmYsIDIwOXB4IDUyNnB4ICNmZmYsIDcyMHB4IDExODNweCAjZmZmLCAxODY2cHggNDkzcHggI2ZmZiwgNTgxcHggNDI3cHggI2ZmZiwgNDEycHggNzMwcHggI2ZmZiwgMTEycHggNTIwcHggI2ZmZiwgOTU5cHggMTUyN3B4ICNmZmYsIDEyNDFweCAxNjQ2cHggI2ZmZiwgOTIxcHggNjIycHggI2ZmZiwgMTMxMnB4IDEyNjZweCAjZmZmLCA5NTdweCA0NDJweCAjZmZmLCAxNDgwcHggODc3cHggI2ZmZiwgOTU5cHggODUwcHggI2ZmZiwgMTMxMHB4IDE0NzlweCAjZmZmLCAxNjg3cHggMzY2cHggI2ZmZiwgMTQ5cHggNDMycHggI2ZmZiwgMjc4cHggMTQwMXB4ICNmZmYsIDYyMnB4IDE2ODFweCAjZmZmLCAxNTkwcHggMTA4MHB4ICNmZmYsIDEzMjZweCA5ODRweCAjZmZmLCA1NjJweCAxOTI4cHggI2ZmZiwgMTgwNXB4IDg2OHB4ICNmZmYsIDE3MDVweCAxNzE4cHggI2ZmZiwgMTIzNXB4IDMzM3B4ICNmZmYsIDkzM3B4IDE2NTlweCAjZmZmLCA5MjZweCA5NHB4ICNmZmYsIDU5MnB4IDE4NjRweCAjZmZmLCAxNDEzcHggNDA1cHggI2ZmZiwgMTY3M3B4IDEzNThweCAjZmZmLCAxNzQ5cHggMzg0cHggI2ZmZiwgMzE0cHggMTA4NnB4ICNmZmYsIDQ1OHB4IDI5N3B4ICNmZmYsIDE0MTJweCAxMzY3cHggI2ZmZiwgMTE0N3B4IDE0MjRweCAjZmZmLCA1NTBweCAxNTA0cHggI2ZmZiwgMTUzM3B4IDE2MzlweCAjZmZmLCAxMTgxcHggMTMyNXB4ICNmZmYsIDU1NXB4IDE2ODJweCAjZmZmLCA2MDdweCA3MTRweCAjZmZmLCAxNzU1cHggMTc5NHB4ICNmZmYsIDE0MjJweCA2MjBweCAjZmZmLCAxOTE0cHggMTQ1NXB4ICNmZmYsIDEwMjJweCAxMzQ5cHggI2ZmZiwgMTM2OHB4IDkyNnB4ICNmZmYsIDE4ODVweCAxMTE0cHggI2ZmZiwgMjk3cHggMTIxMnB4ICNmZmYsIDIzMnB4IDU3cHggI2ZmZiwgMTc0MXB4IDE2NzlweCAjZmZmLCAxNjk4cHggMTUwNnB4ICNmZmYsIDE2MDVweCAxNzI5cHggI2ZmZiwgMTMwMXB4IDcwN3B4ICNmZmYsIDE0MDZweCAxNjY1cHggI2ZmZiwgMTIzN3B4IDM1OHB4ICNmZmYsIDgwcHggMTk4NHB4ICNmZmYsIDI4cHggMTI3M3B4ICNmZmYsIDEzMzRweCAxMDA2cHggI2ZmZiwgMTU3M3B4IDkyNXB4ICNmZmYsIDcxNHB4IDM3M3B4ICNmZmYsIDE4OTlweCA4NjhweCAjZmZmLCA4NjJweCAxODc4cHggI2ZmZiwgNzAwcHggNjA5cHggI2ZmZiwgNDU1cHggMTIzN3B4ICNmZmYsIDYxN3B4IDE2NjdweCAjZmZmLCAzNTFweCA5MDNweCAjZmZmLCAyMzZweCA2MjVweCAjZmZmLCA5MDZweCAxNzc0cHggI2ZmZiwgNjQzcHggMTY1OXB4ICNmZmYsIDEyMDlweCAyNDNweCAjZmZmLCA1MXB4IDNweCAjZmZmLCAxOTMwcHggMTkzM3B4ICNmZmYsIDU0OHB4IDE2OTZweCAjZmZmLCAzMzlweCA1NjhweCAjZmZmLCAxNDY5cHggMTUwNXB4ICNmZmYsIDQzNHB4IDE4MDdweCAjZmZmLCA3NjFweCAxMjk4cHggI2ZmZiwgMTk3NHB4IDExNjJweCAjZmZmLCAzNjZweCA1MjFweCAjZmZmLCAxNzA5cHggNjExcHggI2ZmZiwgMzU1cHggODIxcHggI2ZmZiwgMTM5MXB4IDQwMXB4ICNmZmYsIDEwMzJweCAxODkwcHggI2ZmZiwgMTM2NXB4IDEwNjVweCAjZmZmLCAxNjAycHggNDQwcHggI2ZmZiwgMTY3OHB4IDEwMDdweCAjZmZmLCAzODFweCAxMTI3cHggI2ZmZiwgMTQwMHB4IDEwMDlweCAjZmZmLCA5NjlweCA1NTRweCAjZmZmLCAxMDgwcHggODMycHggI2ZmZiwgMTg3cHggMTk0OXB4ICNmZmYsIDczOHB4IDE2NzZweCAjZmZmLCAxOHB4IDE2MTBweCAjZmZmLCAxOTgwcHggMTc3OHB4ICNmZmYsIDM1NHB4IDUyOHB4ICNmZmYsIDE2ODFweCA1OTBweCAjZmZmLCAxMzkzcHggMTIzNnB4ICNmZmYsIDE0NDlweCAxNDA2cHggI2ZmZiwgMTU5NXB4IDEyNTNweCAjZmZmLCA3NTRweCAxNjc2cHggI2ZmZiwgMTkwcHggNDMxcHggI2ZmZiwgODY2cHggNjI0cHggI2ZmZiwgMTUwOHB4IDE4MzhweCAjZmZmLCA4OTRweCA0MzVweCAjZmZmLCAzcHggMTYyM3B4ICNmZmYsIDE5NzlweCA2MTdweCAjZmZmLCA3NTJweCAxNTUwcHggI2ZmZiwgMTc2MXB4IDEyNTVweCAjZmZmLCA1M3B4IDg1M3B4ICNmZmYsIDExNzJweCAxOTE3cHggI2ZmZiwgODhweCAxNjFweCAjZmZmLCAxNTg3cHggNjQ4cHggI2ZmZiwgMTIyMnB4IDY4NnB4ICNmZmYsIDE5NTdweCA2NjZweCAjZmZmLCA5MDlweCAxMDcwcHggI2ZmZiwgMzc5cHggNjQ4cHggI2ZmZiwgMTE1NHB4IDE4NjJweCAjZmZmLCAxMDY1cHggMTkxNnB4ICNmZmYsIDE1NDZweCA2MjhweCAjZmZmLCAxMzBweCA4NThweCAjZmZmLCA1NThweCAzODdweCAjZmZmLCAxMDM1cHggMTE1OHB4ICNmZmYsIDYwNnB4IDE2NTRweCAjZmZmLCA3NjRweCA4MjlweCAjZmZmLCA4MzdweCAxODc4cHggI2ZmZiwgNTIycHggMTg0M3B4ICNmZmYsIDEyMTdweCA1MzNweCAjZmZmLCAxOThweCA5M3B4ICNmZmYsIDQ4M3B4IDE0MjZweCAjZmZmLCAxNDYzcHggNDE5cHggI2ZmZiwgMTMyM3B4IDI3M3B4ICNmZmYsIDYwOHB4IDEwODNweCAjZmZmLCA0MzVweCAxOTg2cHggI2ZmZiwgMTgyMHB4IDE0ODRweCAjZmZmLCAxOTZweCA0NjVweCAjZmZmLCAxMjAycHggODYzcHggI2ZmZiwgMTg2N3B4IDg4NXB4ICNmZmYsIDk3cHggMTU3NnB4ICNmZmYsIDc0NXB4IDExNDJweCAjZmZmLCAxNjAzcHggMTgwOXB4ICNmZmYsIDYyMnB4IDg0NXB4ICNmZmYsIDgwMXB4IDQ0OHB4ICNmZmYsIDY3N3B4IDEwMzRweCAjZmZmLCAxMDY4cHggMTQ2NHB4ICNmZmYsIDE1ODZweCAxNTc0cHggI2ZmZiwgMjM3cHggOTE1cHggI2ZmZiwgMTkyOHB4IDE1MzJweCAjZmZmLCA2OXB4IDE3MDBweCAjZmZmLCA0MDhweCAxODc2cHggI2ZmZiwgMzM0cHggMTJweCAjZmZmLCAxOTczcHggMTU4NHB4ICNmZmYsIDI4MHB4IDI2MXB4ICNmZmYsIDE0MzhweCAzNDZweCAjZmZmLCAxMTgxcHggMTYyMXB4ICNmZmYsIDYxNnB4IDEyNTFweCAjZmZmLCA1MHB4IDYyMnB4ICNmZmYsIDE5ODNweCA2MDRweCAjZmZmLCAxMjI4cHggMTE3MnB4ICNmZmYsIDI3MXB4IDg5N3B4ICNmZmYsIDExMDJweCAxNDk0cHggI2ZmZiwgMTY5NnB4IDEwNTFweCAjZmZmLCAxOTY3cHggMTg3MXB4ICNmZmYsIDEyNzJweCAyNDdweCAjZmZmLCA3NTFweCA4NTRweCAjZmZmLCA1NjBweCAxNjUycHggI2ZmZiwgMTQ5OHB4IDE5NnB4ICNmZmYsIDEyMjJweCAxNjEycHggI2ZmZiwgNTE4cHggNjI5cHggI2ZmZiwgNzZweCAxOTQxcHggI2ZmZiwgMTM1N3B4IDEwOTlweCAjZmZmLCA4MjVweCAxNTQ3cHggI2ZmZn0jd2hpdGUtc3RhcnMtbWVke3dpZHRoOjJweDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjEwNjFweCAxNzE2cHggI2ZmZiwgMzMxcHggNjMycHggI2ZmZiwgNzM4cHggMTMwMnB4ICNmZmYsIDE0MjlweCAxMzg4cHggI2ZmZiwgMzI4cHggMTc5MXB4ICNmZmYsIDE5NDFweCAxMDY3cHggI2ZmZiwgMTU3NHB4IDYyNHB4ICNmZmYsIDI2MXB4IDE3MzJweCAjZmZmLCA0MzlweCAxNzY3cHggI2ZmZiwgNjQ1cHggMTc5cHggI2ZmZiwgMTIwMnB4IDE2MzRweCAjZmZmLCAxMzM0cHggMTc1OHB4ICNmZmYsIDE4ODNweCA3NTlweCAjZmZmLCAzMXB4IDIzM3B4ICNmZmYsIDEwMzFweCAxNTkzcHggI2ZmZiwgMTM3OXB4IDE5NDZweCAjZmZmLCA5OTRweCAxNzQycHggI2ZmZiwgMTc2NnB4IDY2N3B4ICNmZmYsIDEwMzVweCAxNDM0cHggI2ZmZiwgMjE1cHggODQ2cHggI2ZmZiwgMTY3M3B4IDE3NjlweCAjZmZmLCA1NDNweCA2MTFweCAjZmZmLCA3OTRweCAxNjQ5cHggI2ZmZiwgMTY0OXB4IDkyMnB4ICNmZmYsIDE3MjhweCAxMDgwcHggI2ZmZiwgNDA1cHggNTMwcHggI2ZmZiwgMTQwNnB4IDE5OTZweCAjZmZmLCAxODcwcHggMTE5MnB4ICNmZmYsIDExNTlweCA1MTZweCAjZmZmLCA2MDFweCA3MjNweCAjZmZmLCAxNzMxcHggMTU5NnB4ICNmZmYsIDE4MDhweCA2MzlweCAjZmZmLCA0MjhweCAxMTg1cHggI2ZmZiwgMTM5cHggOTM2cHggI2ZmZiwgMTcxNnB4IDE1MTNweCAjZmZmLCAxODYwcHggMTI0NHB4ICNmZmYsIDE5MjRweCAxNjhweCAjZmZmLCA5MjZweCAxOTY4cHggI2ZmZiwgMzQxcHggODk4cHggI2ZmZiwgMTUzMHB4IDYwNHB4ICNmZmYsIDExODdweCA4OTBweCAjZmZmLCAxNDQwcHggMTYwcHggI2ZmZiwgMzQ0cHggMTczMHB4ICNmZmYsIDE4MzdweCAxNDEycHggI2ZmZiwgOTQ5cHggMTMwNHB4ICNmZmYsIDE5MDVweCA5ODNweCAjZmZmLCAxOTAwcHggNzgzcHggI2ZmZiwgMTU2NXB4IDE4MTlweCAjZmZmLCAyMTZweCA1MTFweCAjZmZmLCAyNTdweCA1MDJweCAjZmZmLCAxMTQ4cHggMTQ3NnB4ICNmZmYsIDM5MnB4IDE1NjVweCAjZmZmLCAzNjBweCAxMzAxcHggI2ZmZiwgMTYyMXB4IDEwMTNweCAjZmZmLCAxMTI2cHggNjFweCAjZmZmLCAxMTQxcHggMTQwM3B4ICNmZmYsIDE1MjZweCAxMjRweCAjZmZmLCAxNTE5cHggMTcwM3B4ICNmZmYsIDE1MzBweCAxNzZweCAjZmZmLCA3MjJweCA5MnB4ICNmZmYsIDk0MnB4IDE2MjlweCAjZmZmLCAxNzc5cHggNTUxcHggI2ZmZiwgNzM2cHggNjRweCAjZmZmLCA2OHB4IDk4N3B4ICNmZmYsIDYyNXB4IDEwMDhweCAjZmZmLCA5MzZweCAxNTEycHggI2ZmZiwgMTM4OXB4IDEwMDFweCAjZmZmLCAxOTdweCA1MDdweCAjZmZmLCAxNzg2cHggMTcwMnB4ICNmZmYsIDU1cHggMzYycHggI2ZmZiwgMTU4NnB4IDc1N3B4ICNmZmYsIDQ1MXB4IDQ5NHB4ICNmZmYsIDE0ODFweCAxMzRweCAjZmZmLCAyNThweCAyNzNweCAjZmZmLCAxNjEycHggODU5cHggI2ZmZiwgMTA4NHB4IDEwMTdweCAjZmZmLCA5NjFweCAxMTA2cHggI2ZmZiwgMTE3NnB4IDE3MDdweCAjZmZmLCAxMjkxcHggMTE1NHB4ICNmZmYsIDE5NHB4IDkxcHggI2ZmZiwgNDg3cHggODU2cHggI2ZmZiwgOTM2cHggNTE4cHggI2ZmZiwgOTAzcHggMTY4MHB4ICNmZmYsIDgxN3B4IDY3MnB4ICNmZmYsIDExMTFweCAxMDYycHggI2ZmZiwgNjQ1cHggMTMzMnB4ICNmZmYsIDE3NzZweCA2NTJweCAjZmZmLCAxNzU4cHggNDAycHggI2ZmZiwgMTg5N3B4IDg3MXB4ICNmZmYsIDExODFweCAxNDkxcHggI2ZmZiwgMTk2N3B4IDcxNHB4ICNmZmYsIDEyNjRweCAxMDE2cHggI2ZmZiwgMjg5cHggMjg1cHggI2ZmZiwgNzMzcHggMTA3NnB4ICNmZmYsIDc3MHB4IDEwNDFweCAjZmZmLCAxMjEwcHggMTY2MHB4ICNmZmYsIDE5MjRweCA2cHggI2ZmZiwgMjI1cHggMTE1OXB4ICNmZmYsIDIyN3B4IDEwMzlweCAjZmZmLCA1OTRweCA4NDVweCAjZmZmLCAxNTRweCA1MjNweCAjZmZmLCA2NzhweCAxMjM3cHggI2ZmZiwgNzA5cHggODY2cHggI2ZmZiwgMTQ2MXB4IDE2MTNweCAjZmZmLCAxOTE1cHggNjJweCAjZmZmLCAzNzBweCA4MzJweCAjZmZmLCAxNTM4cHggMzgzcHggI2ZmZiwgMTYyOXB4IDE0ODNweCAjZmZmLCAxNjk0cHggMTA2OXB4ICNmZmYsIDc1N3B4IDEwNjRweCAjZmZmLCA5NDdweCA3NDhweCAjZmZmLCAxMzEzcHggMTI3M3B4ICNmZmYsIDI5NXB4IDE2MnB4ICNmZmYsIDEyNDZweCA1ODNweCAjZmZmLCA5MjVweCAyNzlweCAjZmZmLCAxNTIxcHggMTY3N3B4ICNmZmYsIDEyOXB4IDEwMDZweCAjZmZmLCAxNzQ5cHggMzU2cHggI2ZmZiwgNTk3cHggMjYzcHggI2ZmZiwgMTIxMXB4IDE4NDZweCAjZmZmLCA0MjRweCAxNjU1cHggI2ZmZiwgMTM5M3B4IDMxNHB4ICNmZmYsIDEyODhweCAxMzQxcHggI2ZmZiwgMTc4NHB4IDgwMXB4ICNmZmYsIDkzMHB4IDgxcHggI2ZmZiwgMTQ2OXB4IDE3MjVweCAjZmZmLCA2NTJweCA1NTZweCAjZmZmLCA5cHggMTU3MHB4ICNmZmYsIDEyNDVweCAzNDdweCAjZmZmLCAxNzc3cHggMTcyMnB4ICNmZmYsIDEzMTdweCAzNTNweCAjZmZmLCA3N3B4IDExNTdweCAjZmZmLCAxMDYwcHggMTYzcHggI2ZmZiwgMTgwMHB4IDE1MTlweCAjZmZmLCAyMjBweCAxMDgzcHggI2ZmZiwgMTE4MnB4IDczcHggI2ZmZiwgNzgxcHggOTZweCAjZmZmLCAxMTQ1cHggMjA3cHggI2ZmZiwgMTk1OXB4IDMxMHB4ICNmZmYsIDEyNzZweCAxNDIxcHggI2ZmZiwgOTg1cHggMTYwM3B4ICNmZmYsIDc1NnB4IDEyODFweCAjZmZmLCAxODgzcHggMjEwcHggI2ZmZiwgOTEzcHggMzk0cHggI2ZmZiwgMTk0OHB4IDEzMzJweCAjZmZmLCA0ODFweCA2MnB4ICNmZmYsIDE5NDFweCAxMjAxcHggI2ZmZiwgMTEwMnB4IDE5ODFweCAjZmZmLCAxOTE5cHggMjQycHggI2ZmZiwgMTA2OXB4IDE5NTJweCAjZmZmLCAxMTIycHggMTk2MnB4ICNmZmYsIDExMnB4IDE0MjNweCAjZmZmLCAxMzI1cHggMTAwMnB4ICNmZmYsIDE0OThweCA5NzhweCAjZmZmLCAxMzM1cHggMTM0NnB4ICNmZmYsIDQzNXB4IDE5NDRweCAjZmZmLCAxOTg0cHggMTYxOXB4ICNmZmYsIDEzMTlweCA0MzVweCAjZmZmLCA3NzVweCAxNTYzcHggI2ZmZiwgMTEzNnB4IDE5NjFweCAjZmZmLCA5ODlweCAxNTE3cHggI2ZmZiwgMTQ2OHB4IDU5M3B4ICNmZmYsIDcxOHB4IDExNjBweCAjZmZmLCAxNzQycHggMTE4OXB4ICNmZmYsIDE4NDNweCAxNDQzcHggI2ZmZiwgMTg5M3B4IDE1NzdweCAjZmZmLCA1MDJweCAxMTNweCAjZmZmLCA1OTNweCAxNTZweCAjZmZmLCAxMTc1cHggODI4cHggI2ZmZiwgMTgxNnB4IDEyMTlweCAjZmZmLCA0NjJweCA4MDBweCAjZmZmLCA4MTRweCAxNTcycHggI2ZmZiwgMTk5MXB4IDE1MzNweCAjZmZmLCAxNjM2cHggODMycHggI2ZmZiwgODgzcHggMTYyMHB4ICNmZmYsIDE1ODhweCAzNTNweCAjZmZmLCA2NTRweCA4MDVweCAjZmZmLCAxODMzcHggNzgxcHggI2ZmZiwgNzA1cHggMTcwM3B4ICNmZmYsIDE4MzJweCAxNTQ5cHggI2ZmZiwgMTQ2N3B4IDk5MnB4ICNmZmYsIDEwMjRweCA4OHB4ICNmZmYsIDEzMDNweCA4NzJweCAjZmZmLCAzNDJweCA0NzRweCAjZmZmLCAxOTgwcHggMTE5MXB4ICNmZmYsIDEzMTJweCAyNTlweCAjZmZmLCAxMTIwcHggMjk4cHggI2ZmZiwgOTk1cHggMzg4cHggI2ZmZiwgMTc0MHB4IDg0NnB4ICNmZmYsIDM0MXB4IDQ1NXB4ICNmZmYsIDEyMDZweCAxODM3cHggI2ZmZiwgMTkzOXB4IDEyODdweCAjZmZmLCA0NXB4IDE5NDVweCAjZmZmLCAxNjMwcHggNTQycHggI2ZmZiwgNzJweCA5MzdweCAjZmZmLCA0MDRweCA3NzRweCAjZmZmLCAxMzEzcHggMTE2NXB4ICNmZmYsIDEzNDlweCAxODEwcHggI2ZmZiwgNzM1cHggNzc4cHggI2ZmZiwgNTgycHggMTY4OHB4ICNmZmY7YW5pbWF0aW9uOmFuaW1TdGFyIDE2N3MgbGluZWFyIGluZmluaXRlfSN3aGl0ZS1zdGFycy1tZWQ6YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMDBweDt3aWR0aDoycHg7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzoxMDYxcHggMTcxNnB4ICNmZmYsIDMzMXB4IDYzMnB4ICNmZmYsIDczOHB4IDEzMDJweCAjZmZmLCAxNDI5cHggMTM4OHB4ICNmZmYsIDMyOHB4IDE3OTFweCAjZmZmLCAxOTQxcHggMTA2N3B4ICNmZmYsIDE1NzRweCA2MjRweCAjZmZmLCAyNjFweCAxNzMycHggI2ZmZiwgNDM5cHggMTc2N3B4ICNmZmYsIDY0NXB4IDE3OXB4ICNmZmYsIDEyMDJweCAxNjM0cHggI2ZmZiwgMTMzNHB4IDE3NThweCAjZmZmLCAxODgzcHggNzU5cHggI2ZmZiwgMzFweCAyMzNweCAjZmZmLCAxMDMxcHggMTU5M3B4ICNmZmYsIDEzNzlweCAxOTQ2cHggI2ZmZiwgOTk0cHggMTc0MnB4ICNmZmYsIDE3NjZweCA2NjdweCAjZmZmLCAxMDM1cHggMTQzNHB4ICNmZmYsIDIxNXB4IDg0NnB4ICNmZmYsIDE2NzNweCAxNzY5cHggI2ZmZiwgNTQzcHggNjExcHggI2ZmZiwgNzk0cHggMTY0OXB4ICNmZmYsIDE2NDlweCA5MjJweCAjZmZmLCAxNzI4cHggMTA4MHB4ICNmZmYsIDQwNXB4IDUzMHB4ICNmZmYsIDE0MDZweCAxOTk2cHggI2ZmZiwgMTg3MHB4IDExOTJweCAjZmZmLCAxMTU5cHggNTE2cHggI2ZmZiwgNjAxcHggNzIzcHggI2ZmZiwgMTczMXB4IDE1OTZweCAjZmZmLCAxODA4cHggNjM5cHggI2ZmZiwgNDI4cHggMTE4NXB4ICNmZmYsIDEzOXB4IDkzNnB4ICNmZmYsIDE3MTZweCAxNTEzcHggI2ZmZiwgMTg2MHB4IDEyNDRweCAjZmZmLCAxOTI0cHggMTY4cHggI2ZmZiwgOTI2cHggMTk2OHB4ICNmZmYsIDM0MXB4IDg5OHB4ICNmZmYsIDE1MzBweCA2MDRweCAjZmZmLCAxMTg3cHggODkwcHggI2ZmZiwgMTQ0MHB4IDE2MHB4ICNmZmYsIDM0NHB4IDE3MzBweCAjZmZmLCAxODM3cHggMTQxMnB4ICNmZmYsIDk0OXB4IDEzMDRweCAjZmZmLCAxOTA1cHggOTgzcHggI2ZmZiwgMTkwMHB4IDc4M3B4ICNmZmYsIDE1NjVweCAxODE5cHggI2ZmZiwgMjE2cHggNTExcHggI2ZmZiwgMjU3cHggNTAycHggI2ZmZiwgMTE0OHB4IDE0NzZweCAjZmZmLCAzOTJweCAxNTY1cHggI2ZmZiwgMzYwcHggMTMwMXB4ICNmZmYsIDE2MjFweCAxMDEzcHggI2ZmZiwgMTEyNnB4IDYxcHggI2ZmZiwgMTE0MXB4IDE0MDNweCAjZmZmLCAxNTI2cHggMTI0cHggI2ZmZiwgMTUxOXB4IDE3MDNweCAjZmZmLCAxNTMwcHggMTc2cHggI2ZmZiwgNzIycHggOTJweCAjZmZmLCA5NDJweCAxNjI5cHggI2ZmZiwgMTc3OXB4IDU1MXB4ICNmZmYsIDczNnB4IDY0cHggI2ZmZiwgNjhweCA5ODdweCAjZmZmLCA2MjVweCAxMDA4cHggI2ZmZiwgOTM2cHggMTUxMnB4ICNmZmYsIDEzODlweCAxMDAxcHggI2ZmZiwgMTk3cHggNTA3cHggI2ZmZiwgMTc4NnB4IDE3MDJweCAjZmZmLCA1NXB4IDM2MnB4ICNmZmYsIDE1ODZweCA3NTdweCAjZmZmLCA0NTFweCA0OTRweCAjZmZmLCAxNDgxcHggMTM0cHggI2ZmZiwgMjU4cHggMjczcHggI2ZmZiwgMTYxMnB4IDg1OXB4ICNmZmYsIDEwODRweCAxMDE3cHggI2ZmZiwgOTYxcHggMTEwNnB4ICNmZmYsIDExNzZweCAxNzA3cHggI2ZmZiwgMTI5MXB4IDExNTRweCAjZmZmLCAxOTRweCA5MXB4ICNmZmYsIDQ4N3B4IDg1NnB4ICNmZmYsIDkzNnB4IDUxOHB4ICNmZmYsIDkwM3B4IDE2ODBweCAjZmZmLCA4MTdweCA2NzJweCAjZmZmLCAxMTExcHggMTA2MnB4ICNmZmYsIDY0NXB4IDEzMzJweCAjZmZmLCAxNzc2cHggNjUycHggI2ZmZiwgMTc1OHB4IDQwMnB4ICNmZmYsIDE4OTdweCA4NzFweCAjZmZmLCAxMTgxcHggMTQ5MXB4ICNmZmYsIDE5NjdweCA3MTRweCAjZmZmLCAxMjY0cHggMTAxNnB4ICNmZmYsIDI4OXB4IDI4NXB4ICNmZmYsIDczM3B4IDEwNzZweCAjZmZmLCA3NzBweCAxMDQxcHggI2ZmZiwgMTIxMHB4IDE2NjBweCAjZmZmLCAxOTI0cHggNnB4ICNmZmYsIDIyNXB4IDExNTlweCAjZmZmLCAyMjdweCAxMDM5cHggI2ZmZiwgNTk0cHggODQ1cHggI2ZmZiwgMTU0cHggNTIzcHggI2ZmZiwgNjc4cHggMTIzN3B4ICNmZmYsIDcwOXB4IDg2NnB4ICNmZmYsIDE0NjFweCAxNjEzcHggI2ZmZiwgMTkxNXB4IDYycHggI2ZmZiwgMzcwcHggODMycHggI2ZmZiwgMTUzOHB4IDM4M3B4ICNmZmYsIDE2MjlweCAxNDgzcHggI2ZmZiwgMTY5NHB4IDEwNjlweCAjZmZmLCA3NTdweCAxMDY0cHggI2ZmZiwgOTQ3cHggNzQ4cHggI2ZmZiwgMTMxM3B4IDEyNzNweCAjZmZmLCAyOTVweCAxNjJweCAjZmZmLCAxMjQ2cHggNTgzcHggI2ZmZiwgOTI1cHggMjc5cHggI2ZmZiwgMTUyMXB4IDE2NzdweCAjZmZmLCAxMjlweCAxMDA2cHggI2ZmZiwgMTc0OXB4IDM1NnB4ICNmZmYsIDU5N3B4IDI2M3B4ICNmZmYsIDEyMTFweCAxODQ2cHggI2ZmZiwgNDI0cHggMTY1NXB4ICNmZmYsIDEzOTNweCAzMTRweCAjZmZmLCAxMjg4cHggMTM0MXB4ICNmZmYsIDE3ODRweCA4MDFweCAjZmZmLCA5MzBweCA4MXB4ICNmZmYsIDE0NjlweCAxNzI1cHggI2ZmZiwgNjUycHggNTU2cHggI2ZmZiwgOXB4IDE1NzBweCAjZmZmLCAxMjQ1cHggMzQ3cHggI2ZmZiwgMTc3N3B4IDE3MjJweCAjZmZmLCAxMzE3cHggMzUzcHggI2ZmZiwgNzdweCAxMTU3cHggI2ZmZiwgMTA2MHB4IDE2M3B4ICNmZmYsIDE4MDBweCAxNTE5cHggI2ZmZiwgMjIwcHggMTA4M3B4ICNmZmYsIDExODJweCA3M3B4ICNmZmYsIDc4MXB4IDk2cHggI2ZmZiwgMTE0NXB4IDIwN3B4ICNmZmYsIDE5NTlweCAzMTBweCAjZmZmLCAxMjc2cHggMTQyMXB4ICNmZmYsIDk4NXB4IDE2MDNweCAjZmZmLCA3NTZweCAxMjgxcHggI2ZmZiwgMTg4M3B4IDIxMHB4ICNmZmYsIDkxM3B4IDM5NHB4ICNmZmYsIDE5NDhweCAxMzMycHggI2ZmZiwgNDgxcHggNjJweCAjZmZmLCAxOTQxcHggMTIwMXB4ICNmZmYsIDExMDJweCAxOTgxcHggI2ZmZiwgMTkxOXB4IDI0MnB4ICNmZmYsIDEwNjlweCAxOTUycHggI2ZmZiwgMTEyMnB4IDE5NjJweCAjZmZmLCAxMTJweCAxNDIzcHggI2ZmZiwgMTMyNXB4IDEwMDJweCAjZmZmLCAxNDk4cHggOTc4cHggI2ZmZiwgMTMzNXB4IDEzNDZweCAjZmZmLCA0MzVweCAxOTQ0cHggI2ZmZiwgMTk4NHB4IDE2MTlweCAjZmZmLCAxMzE5cHggNDM1cHggI2ZmZiwgNzc1cHggMTU2M3B4ICNmZmYsIDExMzZweCAxOTYxcHggI2ZmZiwgOTg5cHggMTUxN3B4ICNmZmYsIDE0NjhweCA1OTNweCAjZmZmLCA3MThweCAxMTYwcHggI2ZmZiwgMTc0MnB4IDExODlweCAjZmZmLCAxODQzcHggMTQ0M3B4ICNmZmYsIDE4OTNweCAxNTc3cHggI2ZmZiwgNTAycHggMTEzcHggI2ZmZiwgNTkzcHggMTU2cHggI2ZmZiwgMTE3NXB4IDgyOHB4ICNmZmYsIDE4MTZweCAxMjE5cHggI2ZmZiwgNDYycHggODAwcHggI2ZmZiwgODE0cHggMTU3MnB4ICNmZmYsIDE5OTFweCAxNTMzcHggI2ZmZiwgMTYzNnB4IDgzMnB4ICNmZmYsIDg4M3B4IDE2MjBweCAjZmZmLCAxNTg4cHggMzUzcHggI2ZmZiwgNjU0cHggODA1cHggI2ZmZiwgMTgzM3B4IDc4MXB4ICNmZmYsIDcwNXB4IDE3MDNweCAjZmZmLCAxODMycHggMTU0OXB4ICNmZmYsIDE0NjdweCA5OTJweCAjZmZmLCAxMDI0cHggODhweCAjZmZmLCAxMzAzcHggODcycHggI2ZmZiwgMzQycHggNDc0cHggI2ZmZiwgMTk4MHB4IDExOTFweCAjZmZmLCAxMzEycHggMjU5cHggI2ZmZiwgMTEyMHB4IDI5OHB4ICNmZmYsIDk5NXB4IDM4OHB4ICNmZmYsIDE3NDBweCA4NDZweCAjZmZmLCAzNDFweCA0NTVweCAjZmZmLCAxMjA2cHggMTgzN3B4ICNmZmYsIDE5MzlweCAxMjg3cHggI2ZmZiwgNDVweCAxOTQ1cHggI2ZmZiwgMTYzMHB4IDU0MnB4ICNmZmYsIDcycHggOTM3cHggI2ZmZiwgNDA0cHggNzc0cHggI2ZmZiwgMTMxM3B4IDExNjVweCAjZmZmLCAxMzQ5cHggMTgxMHB4ICNmZmYsIDczNXB4IDc3OHB4ICNmZmYsIDU4MnB4IDE2ODhweCAjZmZmfSN3aGl0ZS1zdGFycy1sZ3t3aWR0aDozcHg7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzo3MjNweCAyODhweCAjZmZmLCAxMTAwcHggMTQ2OXB4ICNmZmYsIDI0cHggNjYxcHggI2ZmZiwgNTY1cHggMTc4N3B4ICNmZmYsIDE5NDlweCA3NDdweCAjZmZmLCAxNDFweCAxMzY4cHggI2ZmZiwgMTU2NnB4IDE4NDlweCAjZmZmLCA0OTJweCA2MzlweCAjZmZmLCA3NzRweCAxNTBweCAjZmZmLCAxNDZweCAxMjg4cHggI2ZmZiwgNjk4cHggMTYxM3B4ICNmZmYsIDMyNXB4IDE4NXB4ICNmZmYsIDEzMjhweCA1NzRweCAjZmZmLCA0MTRweCAxMDE4cHggI2ZmZiwgMTMxMnB4IDg3cHggI2ZmZiwgNDg5cHggMzUzcHggI2ZmZiwgNDQwcHggMTg5MnB4ICNmZmYsIDE4NDZweCAxNjUxcHggI2ZmZiwgMTc4N3B4IDEwMTlweCAjZmZmLCAxMjBweCAxMjMzcHggI2ZmZiwgNTEycHggNzE0cHggI2ZmZiwgMTcwMXB4IDc5MHB4ICNmZmYsIDE1MjRweCAxOTFweCAjZmZmLCA3NjBweCA4MzhweCAjZmZmLCAzODJweCA4MHB4ICNmZmYsIDE2MThweCA1MzJweCAjZmZmLCAxODQ3cHggMTk3NnB4ICNmZmYsIDI5NHB4IDEzMzVweCAjZmZmLCAxMzg2cHggMTM2NHB4ICNmZmYsIDgxNHB4IDQ5N3B4ICNmZmYsIDE4cHggMTEwMHB4ICNmZmYsIDIxcHggMTAwMHB4ICNmZmYsIDY5N3B4IDgzOHB4ICNmZmYsIDE3MTdweCAxOTI1cHggI2ZmZiwgNzQ0cHggMjk5cHggI2ZmZiwgMTQ1N3B4IDEwOXB4ICNmZmYsIDk3MnB4IDM4N3B4ICNmZmYsIDczNnB4IDEzNjNweCAjZmZmLCA4MTRweCAyMjRweCAjZmZmLCAxNDk1cHggODY2cHggI2ZmZiwgMzQzcHggOTM3cHggI2ZmZiwgMTA5NHB4IDY5N3B4ICNmZmYsIDUzOXB4IDgyOXB4ICNmZmYsIDE4MzRweCA1NTJweCAjZmZmLCAxODE1cHggMTAwNHB4ICNmZmYsIDQzOHB4IDEyMzlweCAjZmZmLCA4MHB4IDE0NjNweCAjZmZmLCAxMTAxcHggMzU0cHggI2ZmZiwgMTg1OHB4IDE5NzFweCAjZmZmLCAxNzEzcHggMTQyMXB4ICNmZmYsIDEyMDhweCA1MHB4ICNmZmYsIDcyNXB4IDM5M3B4ICNmZmYsIDQ0NnB4IDEwNzdweCAjZmZmLCAzOTFweCA0NTVweCAjZmZmLCAxNzg2cHggOTM0cHggI2ZmZiwgMTIxN3B4IDIyM3B4ICNmZmYsIDM3M3B4IDE5OTBweCAjZmZmLCAzMDNweCAxMjQxcHggI2ZmZiwgNTI1cHggMTM2NHB4ICNmZmYsIDEzOTNweCAxNjQxcHggI2ZmZiwgMjUwcHggMjkwcHggI2ZmZiwgNzZweCAzNThweCAjZmZmLCAxMDBweCA4MTVweCAjZmZmLCAxNTE4cHggMTQ3cHggI2ZmZiwgNTY4cHggOTk2cHggI2ZmZiwgMTY3NXB4IDE0M3B4ICNmZmYsIDY2NXB4IDE2cHggI2ZmZiwgMTc1MHB4IDEzNzdweCAjZmZmLCA2MTVweCAxMzQ5cHggI2ZmZiwgMTEyMXB4IDI0NXB4ICNmZmYsIDE3NDhweCA1NTdweCAjZmZmLCA5MjZweCAxMDgwcHggI2ZmZiwgMzI2cHggMTY5MXB4ICNmZmYsIDZweCAxMTU0cHggI2ZmZiwgMTM1NnB4IDE3MThweCAjZmZmLCAxMjk0cHggMTYyM3B4ICNmZmYsIDE4MTRweCAxOTM5cHggI2ZmZiwgMjY4cHggOTgzcHggI2ZmZiwgMjY1cHggMTIyM3B4ICNmZmYsIDc4NHB4IDY3NXB4ICNmZmYsIDE0N3B4IDcxN3B4ICNmZmYsIDE4OTRweCAxODgzcHggI2ZmZiwgMjQycHggNDI4cHggI2ZmZiwgMTI5NHB4IDYwNnB4ICNmZmYsIDEzNzZweCA5NjhweCAjZmZmLCA1NzFweCAxMDAwcHggI2ZmZiwgMTU1NHB4IDg5NHB4ICNmZmYsIDc0MXB4IDQzOHB4ICNmZmYsIDEzNTlweCAxOTkzcHggI2ZmZiwgMTc2N3B4IDEzNjZweCAjZmZmLCAxNTIxcHggMjgwcHggI2ZmZiwgODUzcHggNTUzcHggI2ZmZiwgMTQwN3B4IDE3MTdweCAjZmZmLCAxMDAwcHggMTA1NXB4ICNmZmYsIDEwNDdweCA5MTlweCAjZmZmLCAxMjVweCA2MzFweCAjZmZmLCAxMjQ3cHggNDQzcHggI2ZmZiwgMzIxcHggMTY3MHB4ICNmZmYsIDE5MjZweCAxNjEzcHggI2ZmZiwgNjE1cHggMTM1OHB4ICNmZmY7YW5pbWF0aW9uOmFuaW1TdGFyIDI1MHMgbGluZWFyIGluZmluaXRlfSN3aGl0ZS1zdGFycy1sZzphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjAwMHB4O3dpZHRoOjNweDtoZWlnaHQ6M3B4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjcyM3B4IDI4OHB4ICNmZmYsIDExMDBweCAxNDY5cHggI2ZmZiwgMjRweCA2NjFweCAjZmZmLCA1NjVweCAxNzg3cHggI2ZmZiwgMTk0OXB4IDc0N3B4ICNmZmYsIDE0MXB4IDEzNjhweCAjZmZmLCAxNTY2cHggMTg0OXB4ICNmZmYsIDQ5MnB4IDYzOXB4ICNmZmYsIDc3NHB4IDE1MHB4ICNmZmYsIDE0NnB4IDEyODhweCAjZmZmLCA2OThweCAxNjEzcHggI2ZmZiwgMzI1cHggMTg1cHggI2ZmZiwgMTMyOHB4IDU3NHB4ICNmZmYsIDQxNHB4IDEwMThweCAjZmZmLCAxMzEycHggODdweCAjZmZmLCA0ODlweCAzNTNweCAjZmZmLCA0NDBweCAxODkycHggI2ZmZiwgMTg0NnB4IDE2NTFweCAjZmZmLCAxNzg3cHggMTAxOXB4ICNmZmYsIDEyMHB4IDEyMzNweCAjZmZmLCA1MTJweCA3MTRweCAjZmZmLCAxNzAxcHggNzkwcHggI2ZmZiwgMTUyNHB4IDE5MXB4ICNmZmYsIDc2MHB4IDgzOHB4ICNmZmYsIDM4MnB4IDgwcHggI2ZmZiwgMTYxOHB4IDUzMnB4ICNmZmYsIDE4NDdweCAxOTc2cHggI2ZmZiwgMjk0cHggMTMzNXB4ICNmZmYsIDEzODZweCAxMzY0cHggI2ZmZiwgODE0cHggNDk3cHggI2ZmZiwgMThweCAxMTAwcHggI2ZmZiwgMjFweCAxMDAwcHggI2ZmZiwgNjk3cHggODM4cHggI2ZmZiwgMTcxN3B4IDE5MjVweCAjZmZmLCA3NDRweCAyOTlweCAjZmZmLCAxNDU3cHggMTA5cHggI2ZmZiwgOTcycHggMzg3cHggI2ZmZiwgNzM2cHggMTM2M3B4ICNmZmYsIDgxNHB4IDIyNHB4ICNmZmYsIDE0OTVweCA4NjZweCAjZmZmLCAzNDNweCA5MzdweCAjZmZmLCAxMDk0cHggNjk3cHggI2ZmZiwgNTM5cHggODI5cHggI2ZmZiwgMTgzNHB4IDU1MnB4ICNmZmYsIDE4MTVweCAxMDA0cHggI2ZmZiwgNDM4cHggMTIzOXB4ICNmZmYsIDgwcHggMTQ2M3B4ICNmZmYsIDExMDFweCAzNTRweCAjZmZmLCAxODU4cHggMTk3MXB4ICNmZmYsIDE3MTNweCAxNDIxcHggI2ZmZiwgMTIwOHB4IDUwcHggI2ZmZiwgNzI1cHggMzkzcHggI2ZmZiwgNDQ2cHggMTA3N3B4ICNmZmYsIDM5MXB4IDQ1NXB4ICNmZmYsIDE3ODZweCA5MzRweCAjZmZmLCAxMjE3cHggMjIzcHggI2ZmZiwgMzczcHggMTk5MHB4ICNmZmYsIDMwM3B4IDEyNDFweCAjZmZmLCA1MjVweCAxMzY0cHggI2ZmZiwgMTM5M3B4IDE2NDFweCAjZmZmLCAyNTBweCAyOTBweCAjZmZmLCA3NnB4IDM1OHB4ICNmZmYsIDEwMHB4IDgxNXB4ICNmZmYsIDE1MThweCAxNDdweCAjZmZmLCA1NjhweCA5OTZweCAjZmZmLCAxNjc1cHggMTQzcHggI2ZmZiwgNjY1cHggMTZweCAjZmZmLCAxNzUwcHggMTM3N3B4ICNmZmYsIDYxNXB4IDEzNDlweCAjZmZmLCAxMTIxcHggMjQ1cHggI2ZmZiwgMTc0OHB4IDU1N3B4ICNmZmYsIDkyNnB4IDEwODBweCAjZmZmLCAzMjZweCAxNjkxcHggI2ZmZiwgNnB4IDExNTRweCAjZmZmLCAxMzU2cHggMTcxOHB4ICNmZmYsIDEyOTRweCAxNjIzcHggI2ZmZiwgMTgxNHB4IDE5MzlweCAjZmZmLCAyNjhweCA5ODNweCAjZmZmLCAyNjVweCAxMjIzcHggI2ZmZiwgNzg0cHggNjc1cHggI2ZmZiwgMTQ3cHggNzE3cHggI2ZmZiwgMTg5NHB4IDE4ODNweCAjZmZmLCAyNDJweCA0MjhweCAjZmZmLCAxMjk0cHggNjA2cHggI2ZmZiwgMTM3NnB4IDk2OHB4ICNmZmYsIDU3MXB4IDEwMDBweCAjZmZmLCAxNTU0cHggODk0cHggI2ZmZiwgNzQxcHggNDM4cHggI2ZmZiwgMTM1OXB4IDE5OTNweCAjZmZmLCAxNzY3cHggMTM2NnB4ICNmZmYsIDE1MjFweCAyODBweCAjZmZmLCA4NTNweCA1NTNweCAjZmZmLCAxNDA3cHggMTcxN3B4ICNmZmYsIDEwMDBweCAxMDU1cHggI2ZmZiwgMTA0N3B4IDkxOXB4ICNmZmYsIDEyNXB4IDYzMXB4ICNmZmYsIDEyNDdweCA0NDNweCAjZmZmLCAzMjFweCAxNjcwcHggI2ZmZiwgMTkyNnB4IDE2MTNweCAjZmZmLCA2MTVweCAxMzU4cHggI2ZmZn1Aa2V5ZnJhbWVzIGFuaW1TdGFye2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwMHB4KX19"}],"requires":[{"meta":{"name":"chatgpt.min.js","url":"https://cdn.jsdelivr.net/npm/@kudoai/chatgpt.js@3.5.0/dist/chatgpt.min.js#sha256-+C0x4BOFQc38aZB3pvUC2THu+ZSvuCxRphGdtRLjCDg=","ts":1764084296592,"mimetype":"text/javascript"},"source":"LyoqCiAqICDCqSAyMDIz4oCTMjAyNCBLdWRvQUkgJiBjb250cmlidXRvcnMgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLgogKiAgU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vS3Vkb0FJL2NoYXRncHQuanMKICogIFVzZXIgZ3VpZGU6IGh0dHBzOi8vY2hhdGdwdGpzLm9yZy91c2VyZ3VpZGUKICogIExhdGVzdCBtaW5pZmllZCByZWxlYXNlOiBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BrdWRvYWkvY2hhdGdwdC5qcy9jaGF0Z3B0Lm1pbi5qcwogKi8KbG9jYWxTdG9yYWdlLmFsZXJ0UXVldWU9SlNPTi5zdHJpbmdpZnkoW10pLGxvY2FsU3RvcmFnZS5ub3RpZnlQcm9wcz1KU09OLnN0cmluZ2lmeSh7cXVldWU6e3RvcFJpZ2h0OltdLGJvdHRvbVJpZ2h0OltdLGJvdHRvbUxlZnQ6W10sdG9wTGVmdDpbXX19KTtsZXQgY2hhdGdwdD17b3BlbkFJYWNjZXNzVG9rZW46e30sZW5kcG9pbnRzOnthc3NldHM6Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9LdWRvQUkvY2hhdGdwdC5qc0BhOGI3YjJjNDA5MWVjYWRhMzFmZGU4ZWY5YWQ0YTI4OGUwNjYwN2I3IixvcGVuQUk6e3Nlc3Npb246Imh0dHBzOi8vY2hhdGdwdC5jb20vYXBpL2F1dGgvc2Vzc2lvbiIsY2hhdHM6Imh0dHBzOi8vY2hhdGdwdC5jb20vYmFja2VuZC1hcGkvY29udmVyc2F0aW9ucyIsY2hhdDoiaHR0cHM6Ly9jaGF0Z3B0LmNvbS9iYWNrZW5kLWFwaS9jb252ZXJzYXRpb24iLHNoYXJlX2NyZWF0ZToiaHR0cHM6Ly9jaGF0Z3B0LmNvbS9iYWNrZW5kLWFwaS9zaGFyZS9jcmVhdGUiLHNoYXJlOiJodHRwczovL2NoYXRncHQuY29tL2JhY2tlbmQtYXBpL3NoYXJlIixpbnN0cnVjdGlvbnM6Imh0dHBzOi8vY2hhdGdwdC5jb20vYmFja2VuZC1hcGkvdXNlcl9zeXN0ZW1fbWVzc2FnZXMifX0sYWN0QXMocyl7cmV0dXJuIG5ldyBQcm9taXNlKChyLGEpPT57bGV0IG49bmV3IFhNTEh0dHBSZXF1ZXN0O24ub3BlbigiR0VUIiwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0t1ZG9BSS9jaGF0LXByb21wdHMvbWFpbi9kaXN0L3BlcnNvbmFzLm1pbi5qc29uIiwhMCksbi5zZW5kKCksbi5vbmxvYWQ9KCk9PntpZigyMDAhPT1uLnN0YXR1cylyZXR1cm4gYSgi8J+kliBjaGF0Z3B0LmpzID4+IFJlcXVlc3QgZmFpbGVkLiBDYW5ub3QgcmV0cmlldmUgcHJvbXB0cyBkYXRhLiIpO3ZhciBlPUpTT04ucGFyc2Uobi5yZXNwb25zZVRleHQpLnBlcnNvbmFzO2lmKHMpe3ZhciB0PWUuZmluZChlPT5lLnRpdGxlLnRvTG93ZXJDYXNlKCk9PXMudG9Mb3dlckNhc2UoKSk7aWYoIXQpcmV0dXJuIGEoYPCfpJYgY2hhdGdwdC5qcyA+PiBQZXJzb25hICcke3N9JyB3YXMgbm90IGZvdW5kIWApO2NoYXRncHQuc2VuZCh0LnByb21wdCwiY2xpY2siKSxjb25zb2xlLmluZm8oYExvYWRpbmcgJHtzfSBwZXJzb25hLi4uYCksY2hhdGdwdC5pc0lkbGUoKS50aGVuKCgpPT57Y29uc29sZS5pbmZvKCJQZXJzb25hIGFjdGl2YXRlZCEiKX0pfWVsc2V7Y29uc29sZS5sb2coIlxuJWPwn6SWIGNoYXRncHQuanMgcGVyc29uYXNcbiIsImZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmIDsgZm9udC1zaXplOiB4eHgtbGFyZ2UgOyBmb250LXdlaWdodDogYm9sZCIpO2Zvcih2YXIgbyBvZiBlKWNvbnNvbGUubG9nKCIlYyIrby50aXRsZSwiZm9udC1mYW1pbHk6IG1vbm9zcGFjZSA7IGZvbnQtc2l6ZTogbGFyZ2VyIDsiKX1yZXR1cm4gcigpfX0pfSxhY3RpdmF0ZURhcmtNb2RlKCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZXBsYWNlKCJsaWdodCIsImRhcmsiKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuY29sb3JTY2hlbWU9ImRhcmsiLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ0aGVtZSIsImRhcmsiKX0sYWN0aXZhdGVMaWdodE1vZGUoKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlcGxhY2UoImRhcmsiLCJsaWdodCIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jb2xvclNjaGVtZT0ibGlnaHQiLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ0aGVtZSIsImxpZ2h0Iil9LGFsZXJ0KG8scixlLGEsdCl7bGV0IG49Y2hhdGdwdC5pc0RhcmtNb2RlKCk/ImRhcmsiOiJsaWdodCIscz1jaGF0Z3B0LmJyb3dzZXIuaXNNb2JpbGUoKSxpPXtkaXNtaXNzOntjbGljayhlKXtlLnRhcmdldCE9ZS5jdXJyZW50VGFyZ2V0JiYhZS50YXJnZXQuY2xvc2VzdCgnW2NsYXNzKj0iLWNsb3NlLWJ0bl0nKXx8ZigpfSxrZXkoZSl7aWYoL14oPzogfFNwYWNlfEVudGVyfFJldHVybnxFc2MpLy50ZXN0KGUua2V5KSYmWzMyLDEzLDI3XS5pbmNsdWRlcyhlLmtleUNvZGUpKWZvcih2YXIgdCBvZiBtKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTtpZighdHx8Im5vbmUiPT10LnN0eWxlLmRpc3BsYXkpcmV0dXJuO2Uua2V5LnN0YXJ0c1dpdGgoIkVzYyIpfHwyNz09ZS5rZXlDb2RlP2YoKToodD10LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1idXR0b25zIikubGFzdENoaWxkKSYmKHQuY2xpY2soKSxlLnByZXZlbnREZWZhdWx0KCkpfX19LGRyYWc6e21vdXNlZG93bihlKXt2YXIgdDswPT1lLmJ1dHRvbiYmInBvaW50ZXIiIT1nZXRDb21wdXRlZFN0eWxlKGUudGFyZ2V0KS5jdXJzb3ImJihjaGF0Z3B0LmRyYWdnYWJsZUVsZW09ZS5jdXJyZW50VGFyZ2V0LGNoYXRncHQuZHJhZ2dhYmxlRWxlbS5zdHlsZS5jdXJzb3I9ImdyYWJiaW5nIixlLnByZXZlbnREZWZhdWx0KCksWyJtb3VzZW1vdmUiLCJtb3VzZXVwIl0uZm9yRWFjaChlPT5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsaS5kcmFnW2VdKSksdD1jaGF0Z3B0LmRyYWdnYWJsZUVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaS5kcmFnLm9mZnNldFg9ZS5jbGllbnRYLXQubGVmdCsyMSxpLmRyYWcub2Zmc2V0WT1lLmNsaWVudFktdC50b3ArMTIpfSxtb3VzZW1vdmUoZSl7dmFyIHQ7Y2hhdGdwdC5kcmFnZ2FibGVFbGVtJiYodD1lLmNsaWVudFgtaS5kcmFnLm9mZnNldFgsZT1lLmNsaWVudFktaS5kcmFnLm9mZnNldFksT2JqZWN0LmFzc2lnbihjaGF0Z3B0LmRyYWdnYWJsZUVsZW0uc3R5bGUse2xlZnQ6dCsicHgiLHRvcDplKyJweCJ9KSl9LG1vdXNldXAoKXtjaGF0Z3B0LmRyYWdnYWJsZUVsZW0uc3R5bGUuY3Vyc29yPSJpbmhlcml0IixbIm1vdXNlbW92ZSIsIm1vdXNldXAiXS5mb3JFYWNoKGU9PmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxpLmRyYWdbZV0pKSxjaGF0Z3B0LmRyYWdnYWJsZUVsZW09bnVsbH19fSxjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGw9KGMuaWQ9TWF0aC5mbG9vcigxZTYqY2hhdGdwdC5yYW5kb21GbG9hdCgpKStEYXRlLm5vdygpLGMuY2xhc3NMaXN0LmFkZCgiY2hhdGdwdC1tb2RhbCIpLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgyIiksZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7dmFyIHU9MTczNTQ3NTc1Nzg5MTtsZXQgcD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hhdGdwdC1tb2RhbC1zdHlsZSIpLGg9KCghcHx8cGFyc2VJbnQocC5nZXRBdHRyaWJ1dGUoImxhc3QtdXBkYXRlZCIpLDEwKTx1KSYmKHB8fCgocD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5pZD0iY2hhdGdwdC1tb2RhbC1zdHlsZSIscC5zZXRBdHRyaWJ1dGUoImxhc3QtdXBkYXRlZCIsdS50b1N0cmluZygpKSxkb2N1bWVudC5oZWFkLmFwcGVuZChwKSkscC5pbm5lclRleHQ9Ii5uby1tb2JpbGUtdGFwLW91dGxpbmUgeyBvdXRsaW5lOiBub25lIDsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCB9LmNoYXRncHQtbW9kYWwge3BvaW50ZXItZXZlbnRzOiBhdXRvIDtwb3NpdGlvbjogZml4ZWQgOyB0b3A6IDAgOyBsZWZ0OiAwIDsgd2lkdGg6IDEwMCUgOyBoZWlnaHQ6IDEwMCUgO3RyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZSAhaW1wb3J0YW50IDtkaXNwbGF5OiBmbGV4IDsganVzdGlmeS1jb250ZW50OiBjZW50ZXIgOyBhbGlnbi1pdGVtczogY2VudGVyIDsgei1pbmRleDogOTk5OSB9LmNoYXRncHQtbW9kYWwgPiBkaXYge3Bvc2l0aW9uOiBhYnNvbHV0ZSA7b3BhY2l0eTogMCA7IitgYm9yZGVyOiAxcHggc29saWQgJHsiZGFyayI9PW4/IndoaXRlIjoiI2I1YjViNSJ9O2ArYGNvbG9yOiAkeyJkYXJrIj09bj8id2hpdGUiOiJibGFjayJ9O2ArYGJhY2tncm91bmQtY29sb3I6ICR7ImRhcmsiPT1uPyJibGFjayI6IndoaXRlIn07YCsidHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHRyYW5zbGF0ZVkoN3B4KSA7dHJhbnNpdGlvbjogb3BhY2l0eSAwLjY1cyBjdWJpYy1iZXppZXIoLjE2NSwuODQsLjQ0LDEpLHRyYW5zZm9ybSAwLjU1cyBjdWJpYy1iZXppZXIoLjE2NSwuODQsLjQ0LDEpIDttYXgtd2lkdGg6IDc1dncgOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgO3BhZGRpbmc6IDIwcHggOyBtYXJnaW46IDEycHggMjNweCA7IGJvcmRlci1yYWRpdXM6IDE1cHggOyBib3gtc2hhZG93OiAwIDMwcHggNjBweCByZ2JhKDAsIDAsIDAsIC4xMikgOyAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lIDsgLW1vei11c2VyLXNlbGVjdDogbm9uZSA7IC1tcy11c2VyLXNlbGVjdDogbm9uZSA7IHVzZXItc2VsZWN0OiBub25lIDsgfS5jaGF0Z3B0LW1vZGFsIGgyIHsgbWFyZ2luLWJvdHRvbTogOXB4IH0iK2AuY2hhdGdwdC1tb2RhbCBhIHsgY29sb3I6ICR7ImRhcmsiPT1uPyIjMDBjZmZmIjoiIzFlOWViYiJ9fWArIi5jaGF0Z3B0LW1vZGFsIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9LmNoYXRncHQtbW9kYWwuYW5pbWF0ZWQgPiBkaXYgeyB6LWluZGV4OiAxMzQ1NiA7IG9wYWNpdHk6IDAuOTggOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSB9QGtleWZyYW1lcyBhbGVydC16b29tLWZhZGUtb3V0IHswJSB7IG9wYWNpdHk6IDEgfSA1MCUgeyBvcGFjaXR5OiAwLjI1IDsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KSB9MTAwJSB7IG9wYWNpdHk6IDAgOyB0cmFuc2Zvcm06IHNjYWxlKDEuMzUpIH19Lm1vZGFsLWJ1dHRvbnMgeyBkaXNwbGF5OiBmbGV4IDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCA7IG1hcmdpbjogMjBweCAtNXB4IC0zcHggMCA7Iisocz8iZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlIjoiIikrIn0uY2hhdGdwdC1tb2RhbCBidXR0b24geyIrYG1hcmdpbi1sZWZ0OiAke3M/MDoxMH1weCA7IHBhZGRpbmc6ICR7cz8xNTo0fXB4IDE4cHggOyBib3JkZXItcmFkaXVzOiAxNXB4IDtgKyhzPyJtYXJnaW4tdG9wOiA1cHggOyBtYXJnaW4tYm90dG9tOiAzcHggOyI6IiIpK2Bib3JkZXI6IDFweCBzb2xpZCAkeyJkYXJrIj09bj8id2hpdGUiOiJibGFjayJ9fWArIi5wcmltYXJ5LW1vZGFsLWJ0biB7IitgYm9yZGVyOiAxcHggc29saWQgJHsiZGFyayI9PW4/IndoaXRlIjoiYmxhY2sifSA7YCtgYmFja2dyb3VuZDogJHsiZGFyayI9PW4/IndoaXRlIjoiYmxhY2sifSA7YCtgY29sb3I6ICR7ImRhcmsiPT1uPyJibGFjayI6IndoaXRlIn19YCsiLmNoYXRncHQtbW9kYWwgYnV0dG9uOmhvdmVyIHsgY29sb3I6ICMzZDVkNzEgOyBib3JkZXItY29sb3I6ICM2ZDljYjkgO2JhY2tncm91bmQtY29sb3I6ICIrKCJkYXJrIj09bj8iIzAwY2ZmZiI6IiM5Y2RhZmYiKSsiO2JveC1zaGFkb3c6IDJweCAxcHggIisoImRhcmsiPT1uPyI1NHB4ICMwMGNmZmYiOiIzMHB4ICM5Y2RhZmYiKSsifS5tb2RhbC1jbG9zZS1idG4ge2N1cnNvcjogcG9pbnRlciA7IHdpZHRoOiAyOXB4IDsgaGVpZ2h0OiAyOXB4IDsgYm9yZGVyLXJhZGl1czogMTdweCA7ZmxvYXQ6IHJpZ2h0IDsgcG9zaXRpb246IHJlbGF0aXZlIDsgcmlnaHQ6IC02cHggOyB0b3A6IC01cHggfS5tb2RhbC1jbG9zZS1idG4gc3ZnIHsgbWFyZ2luOiAxMHB4IH0iK2AubW9kYWwtY2xvc2UtYnRuOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiR7ImRhcmsiPT1uPyIwMCI6IiJ9fWArIi5jaGF0Z3B0LW1vZGFsIC5jaGVja2JveC1ncm91cCB7IGRpc3BsYXk6IGZsZXggOyBtYXJnaW4tdG9wOiAtMThweCB9LmNoYXRncHQtbW9kYWwgLmNoZWNrYm94LWdyb3VwIGxhYmVsIHtmb250LXNpemU6IC43cmVtIDsgbWFyZ2luOiAtLjA0cmVtIDAgMHB4IC4zcmVtIDsiK2Bjb2xvcjogJHsiZGFyayI9PW4/IiNlMWUxZTEiOiIjMWUxZTFlIn19YCsiLmNoYXRncHQtbW9kYWwgaW5wdXRbdHlwZT1jaGVja2JveF0geyB0cmFuc2Zvcm06IHNjYWxlKDAuNykgOyIrYGJvcmRlcjogMXB4IHNvbGlkICR7ImRhcmsiPT1uPyJ3aGl0ZSI6ImJsYWNrIn19YCsiLmNoYXRncHQtbW9kYWwgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB7IitgYm9yZGVyOiAxcHggc29saWQgJHsiZGFyayI9PW4/IndoaXRlIjoiYmxhY2sifSA7YCsiYmFja2dyb3VuZC1jb2xvcjogYmxhY2sgOyBwb3NpdGlvbjogaW5oZXJpdCB9LmNoYXRncHQtbW9kYWwgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgeyBvdXRsaW5lOiBub25lIDsgYm94LXNoYWRvdzogbm9uZSB9IiksZC5pbm5lclRleHQ9b3x8IiIsZy5pbm5lclRleHQ9cnx8IiIsY2hhdGdwdC5yZW5kZXJIVE1MKGcpLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTtoLmNsYXNzTGlzdC5hZGQoIm1vZGFsLWJ1dHRvbnMiLCJuby1tb2JpbGUtdGFwLW91dGxpbmUiKSxlJiYoZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdKS5mb3JFYWNoKGU9Pnt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTt0LnRleHRDb250ZW50PWUubmFtZS5yZXBsYWNlKC9bXy1dXHcvZyxlPT5lLnNsaWNlKDEpLnRvVXBwZXJDYXNlKCkpLnJlcGxhY2UoLyhbQS1aXSkvZywiICQxIikucmVwbGFjZSgvXlx3LyxlPT5lLnRvVXBwZXJDYXNlKCkpLHQub25jbGljaz0oKT0+e2YoKSxlKCl9LGguaW5zZXJ0QmVmb3JlKHQsaC5maXJzdENoaWxkKX0pO3U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdS50ZXh0Q29udGVudD1lPyJEaXNtaXNzIjoiT0siLGguaW5zZXJ0QmVmb3JlKHUsaC5maXJzdENoaWxkKSxoLmxhc3RDaGlsZC5jbGFzc0xpc3QuYWRkKCJwcmltYXJ5LW1vZGFsLWJ0biIpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoYSl7by5jbGFzc0xpc3QuYWRkKCJjaGVja2JveC1ncm91cCIpO2xldCBlPWEsdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3QudHlwZT0iY2hlY2tib3giLHQub25jaGFuZ2U9ZTtyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7ci5vbmNsaWNrPSgpPT57dC5jaGVja2VkPSF0LmNoZWNrZWQsZSgpfSxyLnRleHRDb250ZW50PWUubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLm5hbWUuc2xpY2UoMSkucmVwbGFjZSgvKFtBLVpdKS9nLChlLHQpPT4iICIrdC50b0xvd2VyQ2FzZSgpKS5yZXBsYWNlKC9cYihcdyspbnRcYi9naSwiJDFuJ3QiKS50cmltKCksby5hcHBlbmQodCksby5hcHBlbmQocil9ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlLnRpdGxlPSJDbG9zZSIsZS5jbGFzc0xpc3QuYWRkKCJtb2RhbC1jbG9zZS1idG4iLCJuby1tb2JpbGUtdGFwLW91dGxpbmUiKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKSxhLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwiMTBweCIpLGEuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwiMCAwIDE0IDE0IiksYS5zZXRBdHRyaWJ1dGUoImZpbGwiLCJub25lIikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpO3Iuc2V0QXR0cmlidXRlKCJmaWxsLXJ1bGUiLCJldmVub2RkIiksci5zZXRBdHRyaWJ1dGUoImNsaXAtcnVsZSIsImV2ZW5vZGQiKSxyLnNldEF0dHJpYnV0ZSgiZmlsbCIsY2hhdGdwdC5pc0RhcmtNb2RlKCk/IndoaXRlIjoiYmxhY2siKSxyLnNldEF0dHJpYnV0ZSgiZCIsIk0xMy43MDcxIDEuNzA3MTFDMTQuMDk3NiAxLjMxNjU4IDE0LjA5NzYgMC42ODM0MTcgMTMuNzA3MSAwLjI5Mjg5M0MxMy4zMTY2IC0wLjA5NzYzMTIgMTIuNjgzNCAtMC4wOTc2MzEyIDEyLjI5MjkgMC4yOTI4OTNMNyA1LjU4NTc5TDEuNzA3MTEgMC4yOTI4OTNDMS4zMTY1OCAtMC4wOTc2MzEyIDAuNjgzNDE3IC0wLjA5NzYzMTIgMC4yOTI4OTMgMC4yOTI4OTNDLTAuMDk3NjMxMiAwLjY4MzQxNyAtMC4wOTc2MzEyIDEuMzE2NTggMC4yOTI4OTMgMS43MDcxMUw1LjU4NTc5IDdMMC4yOTI4OTMgMTIuMjkyOUMtMC4wOTc2MzEyIDEyLjY4MzQgLTAuMDk3NjMxMiAxMy4zMTY2IDAuMjkyODkzIDEzLjcwNzFDMC42ODM0MTcgMTQuMDk3NiAxLjMxNjU4IDE0LjA5NzYgMS43MDcxMSAxMy43MDcxTDcgOC40MTQyMUwxMi4yOTI5IDEzLjcwNzFDMTIuNjgzNCAxNC4wOTc2IDEzLjMxNjYgMTQuMDk3NiAxMy43MDcxIDEzLjcwNzFDMTQuMDk3NiAxMy4zMTY2IDE0LjA5NzYgMTIuNjgzNCAxMy43MDcxIDEyLjI5MjlMOC40MTQyMSA3TDEzLjcwNzEgMS43MDcxMVoiKSxhLmFwcGVuZChyKSxlLmFwcGVuZChhKSxbZSxkLGcsaCxvXS5mb3JFYWNoKGU9PntsLmFwcGVuZChlKX0pLGwuc3R5bGUud2lkdGg9YCR7dHx8NDU4fXB4YCxjLmFwcGVuZChsKSxkb2N1bWVudC5ib2R5LmFwcGVuZChjKTtsZXQgbT1KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5hbGVydFF1ZXVlKSxmPShtLnB1c2goYy5pZCksbG9jYWxTdG9yYWdlLmFsZXJ0UXVldWU9SlNPTi5zdHJpbmdpZnkobSksYy5zdHlsZS5kaXNwbGF5PSJub25lIiwxPT09bS5sZW5ndGgmJihjLnN0eWxlLmRpc3BsYXk9IiIsc2V0VGltZW91dCgoKT0+e2wucGFyZW50Tm9kZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9YHJnYmEoNjcsIDcwLCA3MiwgJHsiZGFyayI9PW4/LjYyOi4zM30pYCxsLnBhcmVudE5vZGUuY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZWQiKX0sMTAwKSksW2MsZSxhLHVdLmZvckVhY2goZT0+ZS5vbmNsaWNrPWkuZGlzbWlzcy5jbGljayksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaS5kaXNtaXNzLmtleSksbC5vbm1vdXNlZG93bj1pLmRyYWcubW91c2Vkb3duLCgpPT57Yy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9InRyYW5zcGFyZW50IixsLnN0eWxlLmFuaW1hdGlvbj0iYWxlcnQtem9vbS1mYWRlLW91dCAwLjEzNXMgZWFzZS1vdXQiLHNldFRpbWVvdXQoKCk9PntpZihjLnJlbW92ZSgpLChtPUpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmFsZXJ0UXVldWUpKS5zaGlmdCgpLGxvY2FsU3RvcmFnZS5hbGVydFF1ZXVlPUpTT04uc3RyaW5naWZ5KG0pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGkuZGlzbWlzcy5rZXkpLDA8bS5sZW5ndGgpe2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1bMF0pO3NldFRpbWVvdXQoKCk9PntlLnN0eWxlLmRpc3BsYXk9IiIsc2V0VGltZW91dCgoKT0+e2UuY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZWQiKX0sMTAwKX0sNTAwKX19LDE1NSl9KTtyZXR1cm4gYy5pZH0sYXN5bmMgYXNrQW5kR2V0UmVwbHkoZSl7cmV0dXJuIGNoYXRncHQuc2VuZChlKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKX0sYXV0b1JlZnJlc2g6e2FjdGl2YXRlKGUpe2lmKHRoaXMuaXNBY3RpdmUpY29uc29sZS5sb2coIuKGuyBDaGF0R1BUID4+IFsiK2NoYXRncHQuYXV0b1JlZnJlc2gubm93VGltZVN0YW1wKCkrIl0gQXV0byByZWZyZXNoIGFscmVhZHkgYWN0aXZlISIpO2Vsc2V7bGV0IG89dGhpcyxyPSh0aGlzLnRvZ2dsZS5yZWZyZXNoRnJhbWUoKSx0PT57dmFyIGU9TWF0aC5tYXgoMixNYXRoLmZsb29yKDIxKmNoYXRncHQucmFuZG9tRmxvYXQoKS0xMCkpO28uaXNBY3RpdmU9c2V0VGltZW91dCgoKT0+e3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJfc3NnTWFuaWZlc3QuanMiXScpO2UmJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVmcmVzaC1mcmFtZSIpLnNyYz1lLnNyYysiPyIrRGF0ZS5ub3coKSxjb25zb2xlLmxvZygi4oa7IENoYXRHUFQgPj4gWyIrby5ub3dUaW1lU3RhbXAoKSsiXSBDaGF0R1BUIHNlc3Npb24gcmVmcmVzaGVkIikpLHIodCl9LDFlMyoodCtlKSl9KTtyKGU/cGFyc2VJbnQoZSwxMCk6MzApLGNvbnNvbGUubG9nKCLihrsgQ2hhdEdQVCA+PiBbIitjaGF0Z3B0LmF1dG9SZWZyZXNoLm5vd1RpbWVTdGFtcCgpKyJdIEF1dG8gcmVmcmVzaCBhY3RpdmF0ZWQiKSxuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCJDaHJvbWUiKSYmdm9pZCAwIT09ZG9jdW1lbnQuaGlkZGVuJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLnRvZ2dsZS5iZWFjb25zKX19LGRlYWN0aXZhdGUoKXt0aGlzLmlzQWN0aXZlPyh0aGlzLnRvZ2dsZS5yZWZyZXNoRnJhbWUoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLnRvZ2dsZS5iZWFjb25zKSxjbGVhclRpbWVvdXQodGhpcy5pc0FjdGl2ZSksdGhpcy5pc0FjdGl2ZT1udWxsLGNvbnNvbGUubG9nKCLihrsgQ2hhdEdQVCA+PiBbIitjaGF0Z3B0LmF1dG9SZWZyZXNoLm5vd1RpbWVTdGFtcCgpKyJdIEF1dG8gcmVmcmVzaCBkZS1hY3RpdmF0ZWQiKSk6Y29uc29sZS5sb2coIuKGuyBDaGF0R1BUID4+IFsiK2NoYXRncHQuYXV0b1JlZnJlc2gubm93VGltZVN0YW1wKCkrIl0gQXV0byByZWZyZXNoIGFscmVhZHkgaW5hY3RpdmUhIil9LG5vd1RpbWVTdGFtcCgpe3ZhciBlPW5ldyBEYXRlLHQ9ZS5nZXRIb3VycygpJTEyfHwxMjtsZXQgbz1lLmdldE1pbnV0ZXMoKSxyPWUuZ2V0U2Vjb25kcygpO288MTAmJihvPSIwIitvKSxyPDEwJiYocj0iMCIrcik7ZT1lLmdldEhvdXJzKCk8MTI/IkFNIjoiUE0iO3JldHVybiB0KyI6IitvKyI6IityKyIgIitlfSx0b2dnbGU6e2JlYWNvbnMoKXtjaGF0Z3B0LmF1dG9SZWZyZXNoLmJlYWNvbklEPyhjbGVhckludGVydmFsKGNoYXRncHQuYXV0b1JlZnJlc2guYmVhY29uSUQpLGNoYXRncHQuYXV0b1JlZnJlc2guYmVhY29uSUQ9bnVsbCxjb25zb2xlLmxvZygi4oa7IENoYXRHUFQgPj4gWyIrY2hhdGdwdC5hdXRvUmVmcmVzaC5ub3dUaW1lU3RhbXAoKSsiXSBCZWFjb25zIGRlLWFjdGl2YXRlZCIpKTooY2hhdGdwdC5hdXRvUmVmcmVzaC5iZWFjb25JRD1zZXRJbnRlcnZhbCgoKT0+e25hdmlnYXRvci5zZW5kQmVhY29uKCJodHRwczovL2h0dHBiaW4ub3JnL3Bvc3QiLG5ldyBVaW50OEFycmF5KSxjb25zb2xlLmxvZygi4oa7IENoYXRHUFQgPj4gWyIrY2hhdGdwdC5hdXRvUmVmcmVzaC5ub3dUaW1lU3RhbXAoKSsiXSBCZWFjb24gc2VudCIpfSw5ZTQpLGNvbnNvbGUubG9nKCLihrsgQ2hhdEdQVCA+PiBbIitjaGF0Z3B0LmF1dG9SZWZyZXNoLm5vd1RpbWVTdGFtcCgpKyJdIEJlYWNvbnMgYWN0aXZhdGVkIikpfSxyZWZyZXNoRnJhbWUoKXtsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVmcmVzaC1mcmFtZSIpO2U/ZS5yZW1vdmUoKTooZT1PYmplY3QuYXNzaWduKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLHtpZDoicmVmcmVzaC1mcmFtZSIsc3R5bGU6ImRpc3BsYXk6IG5vbmUifSksZG9jdW1lbnQuaGVhZC5wcmVwZW5kKGUpKX19fSxicm93c2VyOntpc0xpZ2h0TW9kZSgpe3JldHVybiB3aW5kb3cubWF0Y2hNZWRpYT8uKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpPy5tYXRjaGVzfSxpc0RhcmtNb2RlKCl7cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhPy4oIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKT8ubWF0Y2hlc30saXNDaHJvbWl1bSgpe3JldHVybiEhSlNPTi5zdHJpbmdpZnkobmF2aWdhdG9yLnVzZXJBZ2VudERhdGE/LmJyYW5kcyk/LmluY2x1ZGVzKCJDaHJvbWl1bSIpfSxpc0Nocm9tZSgpe3JldHVybiEhSlNPTi5zdHJpbmdpZnkobmF2aWdhdG9yLnVzZXJBZ2VudERhdGE/LmJyYW5kcyk/LmluY2x1ZGVzKCJDaHJvbWUiKX0saXNFZGdlKCl7cmV0dXJuISFKU09OLnN0cmluZ2lmeShuYXZpZ2F0b3IudXNlckFnZW50RGF0YT8uYnJhbmRzKT8uaW5jbHVkZXMoIkVkZ2UiKX0saXNCcmF2ZSgpe3JldHVybiEhSlNPTi5zdHJpbmdpZnkobmF2aWdhdG9yLnVzZXJBZ2VudERhdGE/LmJyYW5kcyk/LmluY2x1ZGVzKCJCcmF2ZSIpfSxpc0ZpcmVmb3goKXtyZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRmlyZWZveCIpfSxpc0Z1bGxTY3JlZW4oKXt2YXIgZT1uYXZpZ2F0b3IudXNlckFnZW50O3JldHVybiBlLmluY2x1ZGVzKCJDaHJvbWUiKT93aW5kb3cubWF0Y2hNZWRpYSgiKGRpc3BsYXktbW9kZTogZnVsbHNjcmVlbikiKS5tYXRjaGVzOmUuaW5jbHVkZXMoIkZpcmVmb3giKT93aW5kb3cuZnVsbFNjcmVlbjovTVNJRXxydjovLnRlc3QoZSk/ZG9jdW1lbnQubXNGdWxsc2NyZWVuRWxlbWVudDpkb2N1bWVudC53ZWJraXRJc0Z1bGxTY3JlZW59LGlzTW9iaWxlKCl7cmV0dXJuL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfX0sYXN5bmMgY2xlYXJDaGF0cygpe3JldHVybiBuZXcgUHJvbWlzZSgobyxyKT0+e2NoYXRncHQuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKGU9PntsZXQgdD1uZXcgWE1MSHR0cFJlcXVlc3Q7dC5vcGVuKCJQQVRDSCIsY2hhdGdwdC5lbmRwb2ludHMub3BlbkFJLmNoYXRzLCEwKSx0LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL2pzb24iKSx0LnNldFJlcXVlc3RIZWFkZXIoIkF1dGhvcml6YXRpb24iLCJCZWFyZXIgIitlKSx0Lm9ubG9hZD0oKT0+e2lmKDIwMCE9PXQuc3RhdHVzKXJldHVybiByKCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCBjbGVhciBjaGF0cy4iKTtjb25zb2xlLmluZm8oIkNoYXRzIHN1Y2Nlc3NmdWxseSBjbGVhcmVkIiksbygpfSx0LnNlbmQoSlNPTi5zdHJpbmdpZnkoe2lzX3Zpc2libGU6ITF9KSl9KS5jYXRjaChlPT5yKG5ldyBFcnJvcihlLm1lc3NhZ2UpKSl9KX0sY29kZTp7YXN5bmMgZXhlY3V0ZShlKXtyZXR1cm4gZT8ic3RyaW5nIiE9dHlwZW9mIGU/Y29uc29sZS5lcnJvcigiQ29kZSBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nISIpOihjaGF0Z3B0LnNlbmQoIkRpc3BsYXkgdGhlIG91dHB1dCBhcyBpZiB5b3Ugd2VyZSB0ZXJtaW5hbDpcblxuIitlKSxjb25zb2xlLmluZm8oIkV4ZWN1dGluZyBjb2RlLi4uIiksYXdhaXQgY2hhdGdwdC5pc0lkbGUoKSxjaGF0Z3B0LmNvZGUuZXh0cmFjdChhd2FpdCBjaGF0Z3B0LmdldENoYXREYXRhKCJhY3RpdmUiLCJtc2ciLCJjaGF0Z3B0IiwibGF0ZXN0IikpKTpjb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG5vdCBzdXBwbGllZC4gUGFzcyBzb21lIGNvZGUhIil9LGV4dHJhY3QoZSl7dmFyIHQ9ZS5tYXRjaCgvKD88PWBgYC4qXG4pW1xzXFNdKj8oPz1gYGApL2cpO3JldHVybiB0P3RbdC5sZW5ndGgtMV06ZX0sYXN5bmMgaXNJZGxlKHQ9bnVsbCl7bGV0IGE9e2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSxuPXttc2dEaXY6ImRpdltkYXRhLW1lc3NhZ2UtYXV0aG9yLXJvbGVdIixyZXBseURpdjoiZGl2W2RhdGEtbWVzc2FnZS1hdXRob3Itcm9sZT1hc3Npc3RhbnRdIn07dmFyIGU9dD9uZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KCgpPT5lKCExKSx0KSk6bnVsbCxvPShhc3luYygpPT57YXdhaXQgbmV3IFByb21pc2Uobz0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iobi5tc2dEaXYpP28oKTpuZXcgTXV0YXRpb25PYnNlcnZlcigoZSx0KT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iobi5tc2dEaXYpJiYodC5kaXNjb25uZWN0KCksbygpKX0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSxhKX0pLGF3YWl0IG5ldyBQcm9taXNlKG89PntuZXcgTXV0YXRpb25PYnNlcnZlcigoZSx0KT0+e2NoYXRncHQuZ2V0U3RvcEJ0bigpJiYodC5kaXNjb25uZWN0KCksbygpKX0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX0pO2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwobi5yZXBseURpdikscj1lW2UubGVuZ3RoLTFdO3JldHVybiBhd2FpdCBuZXcgUHJvbWlzZShvPT57bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9PntyPy5xdWVyeVNlbGVjdG9yKCJwcmUiKSYmKHQuZGlzY29ubmVjdCgpLG8oKSl9KS5vYnNlcnZlKGRvY3VtZW50LmJvZHksYSl9KSxuZXcgUHJvbWlzZShvPT57bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9Pnshcj8ucXVlcnlTZWxlY3RvcigicHJlIik/Lm5leHRFbGVtZW50U2libGluZyYmY2hhdGdwdC5nZXRTdG9wQnRuKCl8fCh0LmRpc2Nvbm5lY3QoKSxvKCEwKSl9KS5vYnNlcnZlKGRvY3VtZW50LmJvZHksYSl9KX0pKCk7cmV0dXJuIGU/UHJvbWlzZS5yYWNlKFtvLGVdKTpvfSxhc3luYyBtaW5pZnkoZSl7cmV0dXJuIGU/InN0cmluZyIhPXR5cGVvZiBlP2NvbnNvbGUuZXJyb3IoIkNvZGUgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZyEiKTooY2hhdGdwdC5zZW5kKCJNaW5pZnkgdGhlIGZvbGxvd2luZyBjb2RlOlxuXG4iK2UpLGNvbnNvbGUuaW5mbygiTWluaWZ5aW5nIGNvZGUuLi4iKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuY29kZS5leHRyYWN0KGF3YWl0IGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKSkpOmNvbnNvbGUuZXJyb3IoIkNvZGUgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgY29kZSEiKX0sYXN5bmMgb2JmdXNjYXRlKGUpe3JldHVybiBlPyJzdHJpbmciIT10eXBlb2YgZT9jb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmchIik6KGNoYXRncHQuc2VuZCgiT2JmdXNjYXRlIHRoZSBmb2xsb3dpbmcgY29kZTpcblxuIitlKSxjb25zb2xlLmluZm8oIk9iZnVzY2F0aW5nIGNvZGUuLi4iKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuY29kZS5leHRyYWN0KGF3YWl0IGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKSkpOmNvbnNvbGUuZXJyb3IoIkNvZGUgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgY29kZSEiKX0sYXN5bmMgcmVmYWN0b3IoZSx0KXtpZighZSlyZXR1cm4gY29uc29sZS5lcnJvcigiQ29kZSAoMXN0KSBhcmd1bWVudCBub3Qgc3VwcGxpZWQuIFBhc3Mgc29tZSBjb2RlISIpO2ZvcihsZXQgZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspaWYoInN0cmluZyIhPXR5cGVvZiBhcmd1bWVudHNbZV0pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEFyZ3VtZW50ICR7ZSsxfSBtdXN0IGJlIGEgc3RyaW5nLmApO3JldHVybiBjaGF0Z3B0LnNlbmQoIlJlZmFjdG9yIHRoZSBmb2xsb3dpbmcgY29kZSBmb3IgIisodHx8ImJyZXZpdHkiKSsiOlxuXG4iK2UpLGNvbnNvbGUuaW5mbygiUmVmYWN0b3JpbmcgY29kZS4uLiIpLGF3YWl0IGNoYXRncHQuaXNJZGxlKCksY2hhdGdwdC5jb2RlLmV4dHJhY3QoYXdhaXQgY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpKX0sYXN5bmMgcmV2aWV3KGUpe3JldHVybiBlPyJzdHJpbmciIT10eXBlb2YgZT9jb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmchIik6KGNoYXRncHQuc2VuZCgiUmV2aWV3IHRoZSBmb2xsb3dpbmcgY29kZSBmb3IgbWU6XG5cbiIrZSksY29uc29sZS5pbmZvKCJSZXZpZXdpbmcgY29kZS4uLiIpLGF3YWl0IGNoYXRncHQuaXNJZGxlKCksY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpKTpjb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG5vdCBzdXBwbGllZC4gUGFzcyBzb21lIGNvZGUhIil9LGFzeW5jIHVubWluaWZ5KGUpe3JldHVybiBlPyJzdHJpbmciIT10eXBlb2YgZT9jb25zb2xlLmVycm9yKCJDb2RlIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmchIik6KGNoYXRncHQuc2VuZCgiVW5taW5pZnkgdGhlIGZvbGxvd2luZyBjb2RlLjpcblxuIitlKSxjb25zb2xlLmluZm8oIlVubWluaWZ5aW5nIGNvZGUuLi4iKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuY29kZS5leHRyYWN0KGF3YWl0IGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKSkpOmNvbnNvbGUuZXJyb3IoIkNvZGUgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgY29kZSEiKX0sYXN5bmMgd3JpdGUoZSx0KXtpZighZSlyZXR1cm4gY29uc29sZS5lcnJvcigiUHJvbXB0ICgxc3QpIGFyZ3VtZW50IG5vdCBzdXBwbGllZC4gUGFzcyBhIHByb21wdCEiKTtpZighdClyZXR1cm4gY29uc29sZS5lcnJvcigib3V0cHV0TGFuZyAoMm5kKSBhcmd1bWVudCBub3Qgc3VwcGxpZWQuIFBhc3MgYSBsYW5ndWFnZSEiKTtmb3IobGV0IGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWlmKCJzdHJpbmciIT10eXBlb2YgYXJndW1lbnRzW2VdKXJldHVybiBjb25zb2xlLmVycm9yKGBBcmd1bWVudCAke2UrMX0gbXVzdCBiZSBhIHN0cmluZy5gKTtyZXR1cm4gY2hhdGdwdC5zZW5kKGUrIlxuXG5Xcml0ZSB0aGlzIGFzIGNvZGUgaW4gIit0KSxjb25zb2xlLmluZm8oIldyaXRpbmcgY29kZS4uLiIpLGF3YWl0IGNoYXRncHQuaXNJZGxlKCksY2hhdGdwdC5jb2RlLmV4dHJhY3QoYXdhaXQgY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpKX19LGNvbnRpbnVlKCl7Y2hhdGdwdC5yZXNwb25zZS5jb250aW51ZSgpfSxhc3luYyBkZXRlY3RMYW5ndWFnZShlKXtyZXR1cm4gZT8ic3RyaW5nIiE9dHlwZW9mIGU/Y29uc29sZS5lcnJvcigiVGV4dCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nISIpOihjaGF0Z3B0LnNlbmQoIkRldGVjdCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGZvbGxvd2luZyB0ZXh0OlxuXG4iK2UrIlxuXG5Pbmx5IHJlc3BvbmQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UiKSxjb25zb2xlLmluZm8oIlJldmlld2luZyB0ZXh0Li4uIiksYXdhaXQgY2hhdGdwdC5pc0lkbGUoKSxjaGF0Z3B0LmdldENoYXREYXRhKCJhY3RpdmUiLCJtc2ciLCJjaGF0Z3B0IiwibGF0ZXN0IikpOmNvbnNvbGUuZXJyb3IoIlRleHQgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgdGV4dCEiKX0sZXhlY3V0ZUNvZGUoKXtjaGF0Z3B0LmNvZGUuZXhlY3V0ZSgpfSxhc3luYyBleHBvcnRDaGF0KGUsdCl7ZT1lP051bWJlci5pc0ludGVnZXIoZSl8fC9eXGQrJC8udGVzdChlKT9wYXJzZUludChlLDEwKTplOiJhY3RpdmUiLHQ9dC50b0xvd2VyQ2FzZSgpfHwiaHRtbCIsY29uc29sZS5pbmZvKCJHZW5lcmF0aW5nIHRyYW5zY3JpcHQuLi4iKTtsZXQgYT0iIixvO2lmKC90ZT94dC8udGVzdCh0KSl7dmFyIHI9bmV3IERhdGUsbj1yLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxzPShyLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksaT1yLmdldEZ1bGxZZWFyKCksYz1yLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIikscj1yLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKTtpZihvPWBDaGF0R1BUXyR7bn0tJHtzfS0ke2l9XyR7Y30tJHtyfS50eHRgLCJhY3RpdmUiPT1lJiYvXC9cd3s4fS1cd3s0fS1cd3s0fS1cd3s0fS1cd3sxMn0kLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSl7bj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJtYWluID4gZGl2ID4gZGl2ID4gZGl2ID4gZGl2ID4gZGl2ID4gZGl2W2NsYXNzKj1ncm91cF0iKTtpZigwPT09bi5sZW5ndGgpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIkNoYXQgaXMgZW1wdHkhIik7bGV0IG89W10scj0hMDtuLmZvckVhY2goZT0+e3ZhciB0PXI/IlVTRVIiOiJDSEFUR1BUIixlPShyPSFyLEFycmF5LmZyb20oZS5jaGlsZE5vZGVzKS5tYXAoZT0+ZS5pbm5lclRleHQpLmpvaW4oIlxuXG4iKS5yZXBsYWNlKCJDb3B5IGNvZGUiLCIiKSk7by5wdXNoKHQrIjogIitlKX0pLGE9by5qb2luKCJcblxuIil9ZWxzZSBmb3IodmFyIGwgb2YgYXdhaXQgY2hhdGdwdC5nZXRDaGF0RGF0YShlLCJtc2ciLCJib3RoIiwiYWxsIikpYT0oYSs9YFVTRVI6ICR7bC51c2VyfQoKYCkrYENIQVRHUFQ6ICR7bC5jaGF0Z3B0fQoKYH1lbHNle3M9YXdhaXQoYXdhaXQgZmV0Y2goYXdhaXQgY2hhdGdwdC5zaGFyZUNoYXQoZSkpKS50ZXh0KCksaT0obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKHMsInRleHQvaHRtbCIpO289YCR7aS5xdWVyeVNlbGVjdG9yKCJ0aXRsZSIpLnRleHRDb250ZW50fHwiQ2hhdEdQVCBjb252ZXJzYXRpb24ifS5odG1sYCxpLnF1ZXJ5U2VsZWN0b3JBbGwoImxpbmtbcmVsPXN0eWxlc2hlZXRdIikuZm9yRWFjaChlPT57dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKTt0Py5zdGFydHNXaXRoKCIvIikmJmUuc2V0QXR0cmlidXRlKCJocmVmIiwiaHR0cHM6Ly9jaGF0Lm9wZW5haS5jb20iK3QpfSksYT0obmV3IFhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKGkpfWlmKGNvbnNvbGUuaW5mbyhgRXhwb3J0aW5nIHRyYW5zY3JpcHQgYXMgJHt0LnRvVXBwZXJDYXNlKCl9Li4uYCksInBkZiI9PXQpe2E9YS5yZXBsYWNlKC88c3ZnLio/PFwvc3ZnPi9nLGU9PmA8aW1nIHNyYz0iJHsiZGF0YTppbWFnZS9zdmcreG1sLCIrZW5jb2RlVVJJQ29tcG9uZW50KGUpfSI+YCk7bGV0IGU9d2luZG93Lm9wZW4oIiIsIiIsInRvb2xiYXI9MCwgbG9jYXRpb249MCwgbWVudWJhcj0wLCBoZWlnaHQ9NjAwLCB3aWR0aD04MDAiKTtlLmRvY3VtZW50LndyaXRlKGEpLHNldFRpbWVvdXQoKCk9PntlLnByaW50KHt0b1BERjohMH0pfSwxMDApfWVsc2V7Im1kIj09dCYmKGM9LzwuKjxoMSgufFxuKSo/aHJlZj0iLio/Y29udGludWVbXiJdKiIuKj9cL2E+Lio/PFteL10vLmV4ZWMoYSlbMV0sYT1jfHxhLG89by5yZXBsYWNlKCIuaHRtbCIsIi5tZCIpKTtyPW5ldyBCbG9iKFthXSx7dHlwZToidGV4dC8iKygiaHRtbCI9PXQ/Imh0bWwiOiJtZCI9PXQ/Im1hcmtkb3duIjoicGxhaW4iKX0pLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGU9VVJMLmNyZWF0ZU9iamVjdFVSTChyKTtuLmhyZWY9ZSxuLmRvd25sb2FkPW8sZG9jdW1lbnQuYm9keS5hcHBlbmQobiksbi5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobiksVVJMLnJldm9rZU9iamVjdFVSTChlKX19LGV4dHJhY3RDb2RlKCl7Y2hhdGdwdC5jb2RlLmV4dHJhY3QoKX0sZm9jdXNDaGF0YmFyKCl7Y2hhdGdwdC5nZXRDaGF0Qm94KCk/LmZvY3VzKCl9LGZvb3Rlcjp7Z2V0KCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5taW4taC00Iil9LGhpZGUoKXt2YXIgZT1jaGF0Z3B0LmZvb3Rlci5nZXQoKTtyZXR1cm4gZT8iaGlkZGVuIj09ZS5zdHlsZS52aXNpYmlsaXR5P2NvbnNvbGUuaW5mbygiRm9vdGVyIGFscmVhZHkgaGlkZGVuISIpOnZvaWQoZS5zdHlsZS5kaXNwbGF5PSJub25lIik6Y29uc29sZS5lcnJvcigiRm9vdGVyIGVsZW1lbnQgbm90IGZvdW5kISIpfSxzaG93KCl7dmFyIGU9Y2hhdGdwdC5mb290ZXIuZ2V0KCk7cmV0dXJuIGU/ImhpZGRlbiIhPWUuc3R5bGUudmlzaWJpbGl0eT9jb25zb2xlLmluZm8oIkZvb3RlciBhbHJlYWR5IHNob3duISIpOnZvaWQoZS5zdHlsZS5kaXNwbGF5PSJpbmhlcml0Iik6Y29uc29sZS5lcnJvcigiRm9vdGVyIGVsZW1lbnQgbm90IGZvdW5kISIpfX0sZ2VuZXJhdGVSYW5kb21JUCgpe3ZhciBlPUFycmF5LmZyb20oe2xlbmd0aDo0fSwoKT0+TWF0aC5mbG9vcigyNTYqY2hhdGdwdC5yYW5kb21GbG9hdCgpKSkuam9pbigiLiIpO3JldHVybiBjb25zb2xlLmluZm8oIklQIGdlbmVyYXRlZDogIitlKSxlfSxnZXQoZSx0PSIiKXtpZigic3RyaW5nIiE9dHlwZW9mIGV8fCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGFyZ3VtZW50cy4gQm90aCBhcmd1bWVudHMgbXVzdCBiZSBzdHJpbmdzLiIpO2lmKCFjanNUYXJnZXRUeXBlcy5pbmNsdWRlcyhlLnRvTG93ZXJDYXNlKCkpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0YXJnZXRUeXBlOiAiK2UrIi4gVmFsaWQgdmFsdWVzIGFyZTogIitKU09OLnN0cmluZ2lmeShjanNUYXJnZXRUeXBlcykpO3ZhciBvLHI9W10sYT1uZXcgUmVnRXhwKCJeZ2V0KC4qKSIrZSsiJCIsImkiKTtmb3IobyBpbiBjaGF0Z3B0KSJmdW5jdGlvbiI9PXR5cGVvZiBjaGF0Z3B0W29dJiZhLnRlc3QobykmJnIucHVzaChvLnJlcGxhY2UoYSwiJDEiKS50b0xvd2VyQ2FzZSgpKTtpZighci5pbmNsdWRlcyh0LnRvTG93ZXJDYXNlKCkpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0YXJnZXROYW1lOiAiK3QrIi4gIisoMDxyLmxlbmd0aD8iVmFsaWQgdmFsdWVzIGFyZTogIitKU09OLnN0cmluZ2lmeShyKToidGFyZ2V0VHlwZSAiK2UudG9Mb3dlckNhc2UoKSsiIGRvZXMgbm90IHJlcXVpcmUgYWRkaXRpb25hbCBvcHRpb25zLiIpKTtsZXQgbj0oImdldCIrdCtlKS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzW09iamVjdC5rZXlzKHRoaXMpLmZpbmQoZT0+ZS50b0xvd2VyQ2FzZSgpPT1uKV0oKX0sZ2V0QWNjZXNzVG9rZW4oKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9PntpZigwPE9iamVjdC5rZXlzKGNoYXRncHQub3BlbkFJYWNjZXNzVG9rZW4pLmxlbmd0aCYmMDw9RGF0ZS5wYXJzZShjaGF0Z3B0Lm9wZW5BSWFjY2Vzc1Rva2VuLmV4cGlyZURhdGUpLURhdGUucGFyc2UobmV3IERhdGUpKXJldHVybiBlKGNoYXRncHQub3BlbkFJYWNjZXNzVG9rZW4udG9rZW4pO2xldCBvPW5ldyBYTUxIdHRwUmVxdWVzdDtvLm9wZW4oIkdFVCIsY2hhdGdwdC5lbmRwb2ludHMub3BlbkFJLnNlc3Npb24sITApLG8uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLG8ub25sb2FkPSgpPT4yMDAhPT1vLnN0YXR1cz90KCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCByZXRyaWV2ZSBhY2Nlc3MgdG9rZW4uIik6KGNvbnNvbGUuaW5mbygiVG9rZW4gZXhwaXJhdGlvbjogIituZXcgRGF0ZShKU09OLnBhcnNlKG8ucmVzcG9uc2VUZXh0KS5leHBpcmVzKS50b0xvY2FsZVN0cmluZygpLnJlcGxhY2UoIiwiLCIgYXQiKSksY2hhdGdwdC5vcGVuQUlhY2Nlc3NUb2tlbj17dG9rZW46SlNPTi5wYXJzZShvLnJlc3BvbnNlVGV4dCkuYWNjZXNzVG9rZW4sZXhwaXJlRGF0ZTpKU09OLnBhcnNlKG8ucmVzcG9uc2VUZXh0KS5leHBpcmVzfSxlKGNoYXRncHQub3BlbkFJYWNjZXNzVG9rZW4udG9rZW4pKSxvLnNlbmQoKX0pfSxnZXRBY2NvdW50RGV0YWlscyguLi5zKXt2YXIgZSx0PVsiZW1haWwiLCJpZCIsImltYWdlIiwibmFtZSIsInBpY3R1cmUiXTtmb3IoZSBvZiBzPWFyZ3VtZW50c1swXT9BcnJheS5pc0FycmF5KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOkFycmF5LmZyb20oYXJndW1lbnRzKTp0KWlmKCF0LmluY2x1ZGVzKGUpKXJldHVybiBjb25zb2xlLmVycm9yKCJJbnZhbGlkIGRldGFpbCBhcmcgJyIrZSsiJyBzdXBwbGllZC4gVmFsaWQgZGV0YWlscyBhcmU6XG4gICAgICAgICAgICAgICAgICAgIFsiK3QrIl0iKTtyZXR1cm4gbmV3IFByb21pc2UoKHIsYSk9PntsZXQgbj1uZXcgWE1MSHR0cFJlcXVlc3Q7bi5vcGVuKCJHRVQiLGNoYXRncHQuZW5kcG9pbnRzLm9wZW5BSS5zZXNzaW9uLCEwKSxuLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL2pzb24iKSxuLm9ubG9hZD0oKT0+e2lmKDIwMCE9PW4uc3RhdHVzKXJldHVybiBhKCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCByZXRyaWV2ZSBhY2NvdW50IGRldGFpbHMuIik7dmFyIGUsdD1KU09OLnBhcnNlKG4ucmVzcG9uc2VUZXh0KS51c2VyLG89e307Zm9yKGUgb2YgcylvW2VdPXRbZV07cmV0dXJuIHIobyl9LG4uc2VuZCgpfSl9LGdldENoYXRCb3goKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb21wdC10ZXh0YXJlYSIpfSxnZXRDaGF0RGF0YShkPTEscj0iYWxsIixwPSJhbGwiLGg9ImFsbCIpe3ZhciBlLHQ9WyJhbGwiLCJpZCIsInRpdGxlIiwiY3JlYXRlX3RpbWUiLCJ1cGRhdGVfdGltZSIsIm1zZyJdLG89WyJhbGwiLCJib3RoIiwidXNlciIsImNoYXRncHQiXTtkPWQ/TnVtYmVyLmlzSW50ZWdlcihkKXx8L15cZCskLy50ZXN0KGQpPzA9PT1wYXJzZUludChkLDEwKT8wOnBhcnNlSW50KGQsMTApLTE6ZDoiYWN0aXZlIixyPVsiYWxsIiwiIl0uaW5jbHVkZXMocik/dC5maWx0ZXIoZT0+L14oPyFhbGwkfG1zZyQpLiovLnRlc3QoZSkpOkFycmF5LmlzQXJyYXkocik/cjpbcl0scD1wP28uaW5jbHVkZXMocCk/cDoiaW52YWxpZCI6ImFsbCIsaD1OdW1iZXIuaXNJbnRlZ2VyKGgpfHwvXlxkKyQvLnRlc3QoaCk/MD09PXBhcnNlSW50KGgsMTApPzA6cGFyc2VJbnQoaCwxMCktMTpbImFsbCIsImxhdGVzdCJdLmluY2x1ZGVzKGgudG9Mb3dlckNhc2UoKSk/aC50b0xvd2VyQ2FzZSgpOmg/ImludmFsaWQiOiJhbGwiO2ZvcihlIG9mIHIpaWYoIXQuaW5jbHVkZXMoZSkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgZGV0YWlsIGFyZyAnIitlKyInIHBhc3NlZC4gVmFsaWQgZGV0YWlscyBhcmU6XG4gICAgICAgICAgICAgICAgICAgIFsiK3QrIl0iKTtpZigiaW52YWxpZCI9PXApcmV0dXJuIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgc2VuZGVyIGFyZyBwYXNzZWQuIFZhbGlkIHNlbmRlcnMgYXJlOlxuICAgICAgICAgICAgICAgICAgICBbIitvKyJdIik7aWYoImludmFsaWQiPT1oKXJldHVybiBjb25zb2xlLmVycm9yKCJJbnZhbGlkIG1zZ1RvR2V0IGFyZyBwYXNzZWQuIFZhbGlkIG1zZydzIHRvIGdldCBhcmU6XG4gICAgICAgICAgICAgICAgICAgIFsgJ2FsbCcgfCAnbGF0ZXN0JyB8IGluZGV4IG9mIG1zZyB0byBnZXQgXSIpO2xldCBhPShlLGMpPT57bGV0IGw9L1x3ezh9LVx3ezR9LVx3ezR9LVx3ezR9LVx3ezEyfS87cmV0dXJuIG5ldyBQcm9taXNlKCh0LHMpPT57bGV0IGk9bmV3IFhNTEh0dHBSZXF1ZXN0O2kub3BlbigiR0VUIixjaGF0Z3B0LmVuZHBvaW50cy5vcGVuQUkuY2hhdHMsITApLGkuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLGkuc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK2UpLGkub25sb2FkPSgpPT57aWYoMjAwIT09aS5zdGF0dXMpcmV0dXJuIHMoIvCfpJYgY2hhdGdwdC5qcyA+PiBSZXF1ZXN0IGZhaWxlZC4gQ2Fubm90IHJldHJpZXZlIGNoYXQgZGV0YWlscy4iKTt2YXIgbz1KU09OLnBhcnNlKGkucmVzcG9uc2VUZXh0KS5pdGVtcztpZihvLmxlbmd0aDw9MClyZXR1cm4gcygi8J+kliBjaGF0Z3B0LmpzID4+IENoYXQgbGlzdCBpcyBlbXB0eS4iKTt2YXIgcj17fTtpZihOdW1iZXIuaXNJbnRlZ2VyKGQpfHwibGF0ZXN0Ij09ZHx8ImFjdGl2ZSI9PWQmJiFuZXcgUmVnRXhwKCIvIitsLnNvdXJjZSsiJCIpLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWYpKXtpZigoZD1OdW1iZXIuaXNJbnRlZ2VyKGQpP2Q6MCk+by5sZW5ndGgpcmV0dXJuIHMoIvCfpJYgY2hhdGdwdC5qcyA+PiBDaGF0IHdpdGggaW5kZXggIisoZCsxKSsiIGlzIG91dCBvZiBib3VuZHMuIE9ubHkgIitvLmxlbmd0aCsiIGNoYXRzIGV4aXN0ISIpO2Zvcih2YXIgZSBvZiBjKXJbZV09b1tkXVtlXX1lbHNle3ZhciBhLG49ImFjdGl2ZSI9PWR8fG5ldyBSZWdFeHAoIl4iK2wuc291cmNlKyIkIikudGVzdChkKT8iaWQiOiJ0aXRsZSI7ImFjdGl2ZSI9PWQmJihkPWwuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZilbMF0pO2xldCBlLHQ7Zm9yKGU9MDtlPG8ubGVuZ3RoO2UrKylpZihvW2VdW25dPT1kKXt0PSEwO2JyZWFrfWlmKCF0KXJldHVybiBzKCLwn6SWIGNoYXRncHQuanMgPj4gTm8gY2hhdCB3aXRoICIrbisiID0gIitkKyIgZm91bmQuIik7Zm9yKGEgb2YgYylyW2FdPW9bZV1bYV19cmV0dXJuIHQocil9LGkuc2VuZCgpfSl9O3JldHVybiBuZXcgUHJvbWlzZShvPT5jaGF0Z3B0LmdldEFjY2Vzc1Rva2VuKCkudGhlbihlPT57cmV0dXJuIG8oci5pbmNsdWRlcygibXNnIik/KHQ9ZSxuZXcgUHJvbWlzZSgoZCxnKT0+e2xldCB1PW5ldyBYTUxIdHRwUmVxdWVzdDthKHQsWyJpZCJdKS50aGVuKGU9Pnt1Lm9wZW4oIkdFVCIsY2hhdGdwdC5lbmRwb2ludHMub3BlbkFJLmNoYXQrIi8iK2UuaWQsITApLHUuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLHUuc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK3QpLHUub25sb2FkPSgpPT57aWYoMjAwIT09dS5zdGF0dXMpcmV0dXJuIGcoIvCfpJYgY2hhdGdwdC5qcyA+PiBSZXF1ZXN0IGZhaWxlZC4gQ2Fubm90IHJldHJpZXZlIGNoYXQgbWVzc2FnZXMuIik7dmFyIGUsdCxvPUpTT04ucGFyc2UodS5yZXNwb25zZVRleHQpLm1hcHBpbmcscj1bXSxhPVtdLG49W107Zm9yKGUgaW4gbyludWxsIT1vW2VdLm1lc3NhZ2UmJiJ1c2VyIj09b1tlXS5tZXNzYWdlLmF1dGhvci5yb2xlJiZyLnB1c2goe2lkOm9bZV0uaWQsbXNnOm9bZV0ubWVzc2FnZX0pO2lmKHIuc29ydCgoZSx0KT0+ZS5tc2cuY3JlYXRlX3RpbWUtdC5tc2cuY3JlYXRlX3RpbWUpLHBhcnNlSW50KGgsMTApKzE+ci5sZW5ndGgpcmV0dXJuIGcoIvCfpJYgY2hhdGdwdC5qcyA+PiBNZXNzYWdlL3Jlc3BvbnNlIHdpdGggaW5kZXggIisoaCsxKSsiIGlzIG91dCBvZiBib3VuZHMuIE9ubHkgIityLmxlbmd0aCsiIG1lc3NhZ2VzL3Jlc3BvbnNlcyBleGlzdCEiKTtmb3IodCBvZiByKXtsZXQgZT1bXTtmb3IodmFyIHMgaW4gbyludWxsIT1vW3NdLm1lc3NhZ2UmJiJhc3Npc3RhbnQiPT1vW3NdLm1lc3NhZ2UuYXV0aG9yLnJvbGUmJm9bc10ucGFyZW50PT10LmlkJiZlLnB1c2gob1tzXS5tZXNzYWdlKTtlLnNvcnQoKGUsdCk9PmUuY3JlYXRlX3RpbWUtdC5jcmVhdGVfdGltZSksZT0xPT09KGU9ZS5tYXAoZT0+e3N3aXRjaChlLmNvbnRlbnQuY29udGVudF90eXBlKXtjYXNlImNvZGUiOnJldHVybiBlLmNvbnRlbnQudGV4dDtjYXNlInRleHQiOnJldHVybiBlLmNvbnRlbnQucGFydHNbMF07ZGVmYXVsdDpyZXR1cm59fSkpLmxlbmd0aD9lWzBdOmUsYS5wdXNoKGUpfWlmKCJ1c2VyIj09cClmb3IodmFyIGkgaW4gciluLnB1c2gocltpXS5tc2cuY29udGVudC5wYXJ0c1swXSk7ZWxzZSBpZigiY2hhdGdwdCI9PXApZm9yKHZhciBjIG9mIGEpbi5wdXNoKCJsYXRlc3QiPT1oP2FbYS5sZW5ndGgtMV06Yyk7ZWxzZXtsZXQgZT0wO2Zvcih2YXIgbCBpbiByKW4ucHVzaCh7dXNlcjpyW2xdLm1zZy5jb250ZW50LnBhcnRzWzBdLGNoYXRncHQ6ImxhdGVzdCI9PWg/YVtlXVthW2VdLmxlbmd0aC0xXTphW2VdfSksZSsrfXJldHVybiBkKCJhbGwiPT1oP246ImxhdGVzdCI9PWg/bltuLmxlbmd0aC0xXTpuW2hdKX0sdS5zZW5kKCl9KX0pKTphKGUscikpO3ZhciB0fSkpfSxnZXRDaGF0SW5wdXQoKXtyZXR1cm4gY2hhdGdwdC5nZXRDaGF0Qm94KCkuZmlyc3RDaGlsZC5pbm5lclRleHR9LGdldENvbnRpbnVlQnV0dG9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi5idG46aGFzKFtkXj0iTTQuNDcxODkiXSknKX0sZ2V0Rm9vdGVyRGl2KCl7cmV0dXJuIGNoYXRncHQuZm9vdGVyLmdldCgpfSxnZXRIZWFkZXJEaXYoKXtyZXR1cm4gY2hhdGdwdC5oZWFkZXIuZ2V0KCl9LGdldExhc3RQcm9tcHQoKXtyZXR1cm4gY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwidXNlciIsImxhdGVzdCIpfSxnZXRMYXN0UmVzcG9uc2UoKXtyZXR1cm4gY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpfSxnZXROZXdDaGF0QnV0dG9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbltkYXRhLXRlc3RpZCo9bmV3LWNoYXQtYnV0dG9uXSwgYnV0dG9uOmhhcyhbZF49Ik0xNS42NzI5Il0pJyl9LGdldE5ld0NoYXRMaW5rKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ25hdiBhW2hyZWY9Ii8iXScpfSxnZXRSZWdlbmVyYXRlQnV0dG9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbjpoYXMoW2RePSJNMy4wNjk1NyJdKScpfSxnZXRSZXNwb25zZSgpe3JldHVybiBjaGF0Z3B0LnJlc3BvbnNlLmdldCguLi5hcmd1bWVudHMpfSxnZXRSZXNwb25zZUZyb21BUEkoZSx0KXtyZXR1cm4gY2hhdGdwdC5yZXNwb25zZS5nZXRGcm9tQVBJKGUsdCl9LGdldFJlc3BvbnNlRnJvbURPTShlKXtyZXR1cm4gY2hhdGdwdC5yZXNwb25zZS5nZXRGcm9tRE9NKGUpfSxnZXRTY3JvbGxUb0JvdHRvbUJ1dHRvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b246aGFzKFtkXj0iTTEyIDIxQzExLjczNDgiXSknKX0sZ2V0U2VuZEJ1dHRvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS10ZXN0aWQ9c2VuZC1idXR0b25dIil9LGdldFN0b3BCdXR0b24oKXtyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYnV0dG9uW2RhdGEtdGVzdGlkPXN0b3AtYnV0dG9uXSIpfSxnZXRVc2VyTGFuZ3VhZ2UoKXtyZXR1cm4gbmF2aWdhdG9yLmxhbmd1YWdlc1swXXx8bmF2aWdhdG9yLmxhbmd1YWdlfHxuYXZpZ2F0b3IuYnJvd3Nlckxhbmd1YWdlfHxuYXZpZ2F0b3Iuc3lzdGVtTGFuZ3VhZ2V8fG5hdmlnYXRvci51c2VyTGFuZ3VhZ2V8fCIifSxoZWFkZXI6e2dldCgpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJtYWluIC5zdGlja3kiKX0saGlkZSgpe2NoYXRncHQuaGVhZGVyLmdldCgpLnN0eWxlLmRpc3BsYXk9Im5vbmUifSxzaG93KCl7Y2hhdGdwdC5oZWFkZXIuZ2V0KCkuc3R5bGUuZGlzcGxheT0iZmxleCJ9fSxoaWRlRm9vdGVyKCl7Y2hhdGdwdC5mb290ZXIuaGlkZSgpfSxoaWRlSGVhZGVyKCl7Y2hhdGdwdC5oZWFkZXIuaGlkZSgpfSxoaXN0b3J5Onthc3luYyBpc0xvYWRlZCh0PW51bGwpe3ZhciBlPXQ/bmV3IFByb21pc2UoZT0+c2V0VGltZW91dCgoKT0+ZSghMSksdCkpOm51bGwsbz1uZXcgUHJvbWlzZShvPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibmF2Iik/byghMCk6bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9Pntkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJuYXYiKSYmKHQuZGlzY29ubmVjdCgpLG8oITApKX0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX0pO3JldHVybiBlP1Byb21pc2UucmFjZShbbyxlXSk6b319LGluc3RydWN0aW9uczp7YWRkKHIsYSl7dmFyIGU7cmV0dXJuIHI/InN0cmluZyIhPXR5cGVvZiByP2NvbnNvbGUuZXJyb3IoIkluc3RydWN0aW9uIG11c3QgYmUgYSBzdHJpbmciKTooZT1bInVzZXIiLCJjaGF0Z3B0Il0sYT8ic3RyaW5nIiE9dHlwZW9mIGE/Y29uc29sZS5lcnJvcigiVGFyZ2V0IG11c3QgYmUgYSBzdHJpbmciKTooYT1hLnRvTG93ZXJDYXNlKCksZS5pbmNsdWRlcyhhKT8ocj1gCgpgK3IsbmV3IFByb21pc2Uobz0+e2NoYXRncHQuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKGFzeW5jIGU9Pnt2YXIgdD1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO3JldHVybiJ1c2VyIj09YT90LmFib3V0X3VzZXJfbWVzc2FnZSs9cjoiY2hhdGdwdCI9PWEmJih0LmFib3V0X21vZGVsX21lc3NhZ2UrPXIpLGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoIlBPU1QiLGUsdCksbygpfSl9KSk6Y29uc29sZS5lcnJvcihgSW52YWxpZCB0YXJnZXQgJHthfS4gVmFsaWQgdGFyZ2V0cyBhcmUgWyR7ZX1dYCkpOmNvbnNvbGUuZXJyb3IoIlBsZWFzZSBwcm92aWRlIGEgdmFsaWQgdGFyZ2V0ISIpKTpjb25zb2xlLmVycm9yKCJQbGVhc2UgcHJvdmlkZSBhbiBpbnN0cnVjdGlvbiIpfSxjbGVhcihyKXt2YXIgZT1bInVzZXIiLCJjaGF0Z3B0Il07cmV0dXJuIHI/InN0cmluZyIhPXR5cGVvZiByP2NvbnNvbGUuZXJyb3IoIlRhcmdldCBtdXN0IGJlIGEgc3RyaW5nIik6KHI9ci50b0xvd2VyQ2FzZSgpLGUuaW5jbHVkZXMocik/bmV3IFByb21pc2Uobz0+e2NoYXRncHQuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKGFzeW5jIGU9Pnt2YXIgdD1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO3JldHVybiJ1c2VyIj09cj90LmFib3V0X3VzZXJfbWVzc2FnZT0iIjoiY2hhdGdwdCI9PXImJih0LmFib3V0X21vZGVsX21lc3NhZ2U9IiIpLGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoIlBPU1QiLGUsdCksbygpfSl9KTpjb25zb2xlLmVycm9yKGBJbnZhbGlkIHRhcmdldCAke3J9LiBWYWxpZCB0YXJnZXRzIGFyZSBbJHtlfV1gKSk6Y29uc29sZS5lcnJvcigiUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCB0YXJnZXQhIil9LGZldGNoRGF0YSgpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57Y2hhdGdwdC5nZXRBY2Nlc3NUb2tlbigpLnRoZW4oYXN5bmMgZT0+dChhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KCJHRVQiLGUpKSl9KX0sc2VuZFJlcXVlc3QoYSxlLG4pe2ZvcihsZXQgZT0wO2U8YXJndW1lbnRzLmxlbmd0aC0xO2UrKylpZigic3RyaW5nIiE9dHlwZW9mIGFyZ3VtZW50c1tlXSlyZXR1cm4gY29uc29sZS5lcnJvcihgQXJndW1lbnQgJHtlKzF9IG11c3QgYmUgYSBzdHJpbmdgKTt2YXIgdD1bIlBPU1QiLCJHRVQiXTtyZXR1cm4oYT0oYXx8IiIpLnRyaW0oKS50b1VwcGVyQ2FzZSgpKSYmdC5pbmNsdWRlcyhhKT9lP24mJiJvYmplY3QiIT10eXBlb2Ygbj9jb25zb2xlLmVycm9yKGBJbnZhbGlkIGJvZHkgZGF0YSB0eXBlLiBHb3QgJHt0eXBlb2Ygbn0sIGV4cGVjdGVkIG9iamVjdGApOm5ldyBQcm9taXNlKCh0LG8pPT57bGV0IHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3Iub3BlbihhLGNoYXRncHQuZW5kcG9pbnRzLm9wZW5BSS5pbnN0cnVjdGlvbnMsITApLHIuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0LUxhbmd1YWdlIiwiZW4tVVMiKSxyLnNldFJlcXVlc3RIZWFkZXIoIkF1dGhvcml6YXRpb24iLCJCZWFyZXIgIitlKSwiUE9TVCI9PWEmJnIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLHIub25sb2FkPSgpPT57dmFyIGU9SlNPTi5wYXJzZShyLnJlc3BvbnNlVGV4dCk7cmV0dXJuIDQyMj09PXIuc3RhdHVzP28oIvCfpJYgY2hhdGdwdC5qcyA+PiBDaGFyYWN0ZXIgbGltaXQgZXhjZWVkZWQuIEN1c3RvbSBpbnN0cnVjdGlvbnMgY2FuIGhhdmUgYSBtYXhpbXVtIGxlbmd0aCBvZiAxNTAwIGNoYXJhY3RlcnMuIik6NDAzPT09ci5zdGF0dXMmJiJjb250ZW50X3BvbGljeSI9PWUuZGV0YWlsLnJlYXNvbj9vKCLwn6SWIGNoYXRncHQuanMgPj4gIitlLmRldGFpbC5kZXNjcmlwdGlvbik6MjAwIT09ci5zdGF0dXM/bygi8J+kliBjaGF0Z3B0LmpzID4+IFJlcXVlc3QgZmFpbGVkLiBDYW5ub3QgY29udGFjdCBjdXN0b20gaW5zdHJ1Y3Rpb25zIGVuZHBvaW50LiIpOihjb25zb2xlLmluZm8oIkN1c3RvbSBpbnN0cnVjdGlvbnMgc3VjY2Vzc2Z1bGx5IGNvbnRhY3RlZCB3aXRoIG1ldGhvZCAiK2EpLHQoZXx8e30pKX0sci5zZW5kKEpTT04uc3RyaW5naWZ5KG4pfHwiIil9KTpjb25zb2xlLmVycm9yKCJQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGFjY2VzcyB0b2tlbiEiKTpjb25zb2xlLmVycm9yKCJWYWxpZCBtZXRob2RzIGFyZSAiK3QpfSx0dXJuT2ZmKCl7cmV0dXJuIG5ldyBQcm9taXNlKG89PntjaGF0Z3B0LmdldEFjY2Vzc1Rva2VuKCkudGhlbihhc3luYyBlPT57dmFyIHQ9YXdhaXQgdGhpcy5mZXRjaERhdGEoKTtyZXR1cm4gdC5lbmFibGVkPSExLGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoIlBPU1QiLGUsdCksbygpfSl9KX0sdHVybk9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKG89PntjaGF0Z3B0LmdldEFjY2Vzc1Rva2VuKCkudGhlbihhc3luYyBlPT57dmFyIHQ9YXdhaXQgdGhpcy5mZXRjaERhdGEoKTtyZXR1cm4gdC5lbmFibGVkPSEwLGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoIlBPU1QiLGUsdCksbygpfSl9KX0sdG9nZ2xlKCl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9Pnt0aGlzLmZldGNoRGF0YSgpLnRoZW4oYXN5bmMgZT0+KGF3YWl0KGUuZW5hYmxlZD90aGlzLnR1cm5PZmYoKTp0aGlzLnR1cm5PbigpKSx0KCkpKX0pfX0saXNEYXJrTW9kZSgpe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvU3RyaW5nKCkuaW5jbHVkZXMoImRhcmsiKX0saXNGdWxsU2NyZWVuKCl7cmV0dXJuIGNoYXRncHQuYnJvd3Nlci5pc0Z1bGxTY3JlZW4oKX0sYXN5bmMgaXNJZGxlKHQ9bnVsbCl7bGV0IGU9e2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSxyPSJkaXZbZGF0YS1tZXNzYWdlLWF1dGhvci1yb2xlXSI7dmFyIG89dD9uZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KCgpPT5lKCExKSx0KSk6bnVsbCxhPShhc3luYygpPT4oYXdhaXQgbmV3IFByb21pc2Uobz0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocik/bygpOm5ldyBNdXRhdGlvbk9ic2VydmVyKChlLHQpPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihyKSYmKHQuZGlzY29ubmVjdCgpLG8oKSl9KS5vYnNlcnZlKGRvY3VtZW50LmJvZHksZSl9KSxhd2FpdCBuZXcgUHJvbWlzZShvPT57bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9PntjaGF0Z3B0LmdldFN0b3BCdG4oKSYmKHQuZGlzY29ubmVjdCgpLG8oKSl9KS5vYnNlcnZlKGRvY3VtZW50LmJvZHksZSl9KSxuZXcgUHJvbWlzZShvPT57bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGUsdCk9PntjaGF0Z3B0LmdldFN0b3BCdG4oKXx8KHQuZGlzY29ubmVjdCgpLG8oITApKX0pLm9ic2VydmUoZG9jdW1lbnQuYm9keSxlKX0pKSkoKTtyZXR1cm4gbz9Qcm9taXNlLnJhY2UoW2Esb10pOmF9LGFzeW5jIGlzTG9hZGVkKHQ9bnVsbCl7dmFyIGU9dD9uZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KCgpPT5lKCExKSx0KSk6bnVsbCxvPW5ldyBQcm9taXNlKG89PntjaGF0Z3B0LmdldE5ld0NoYXRCdG4oKT9vKCEwKTpuZXcgTXV0YXRpb25PYnNlcnZlcigoZSx0KT0+e2NoYXRncHQuZ2V0TmV3Q2hhdEJ0bigpJiYodC5kaXNjb25uZWN0KCksbyghMCkpfSkub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfSk7cmV0dXJuIGU/UHJvbWlzZS5yYWNlKFtvLGVdKTpvfSxpc0xpZ2h0TW9kZSgpe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvU3RyaW5nKCkuaW5jbHVkZXMoImxpZ2h0Iil9LGxvZ291dCgpe3dpbmRvdy5sb2NhdGlvbi5ocmVmPSJodHRwczovL2NoYXQub3BlbmFpLmNvbS9hdXRoL2xvZ291dCJ9LG1lbnU6e2VsZW1lbnRzOltdLGFkZGVkRXZlbnQ6ITEsYXBwZW5kKGUsdD17fSl7dmFyIG89WyJidXR0b24iLCJkcm9wZG93biJdO2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIvCfpJYgY2hhdGdwdC5qcyA+PiBQbGVhc2Ugc3VwcGx5IGEgdmFsaWQgc3RyaW5nIGVsZW1lbnQgbmFtZSEiKTtpZihlPWUudG9Mb3dlckNhc2UoKSwhby5pbmNsdWRlcyhlKSlyZXR1cm4gY29uc29sZS5lcnJvcihg8J+kliBjaGF0Z3B0LmpzID4+IEludmFsaWQgZWxlbWVudCEgVmFsaWQgZWxlbWVudHMgYXJlIFske299XWApO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRyb3Bkb3duIj09ZT8ic2VsZWN0IjoiYnV0dG9uIj09ZT8iYSI6ZSk7aWYoci5pZD1NYXRoLmZsb29yKDFlNipjaGF0Z3B0LnJhbmRvbUZsb2F0KCkpK0RhdGUubm93KCksImJ1dHRvbiI9PWUpe3IudGV4dENvbnRlbnQ9dD8ubGFiZWwmJiJzdHJpbmciPT10eXBlb2YgdC5sYWJlbD90LmxhYmVsOiJjaGF0Z3B0LmpzIGJ1dHRvbiI7bz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtvLnNyYz10Py5pY29uJiYic3RyaW5nIj09dHlwZW9mIHQuaWNvbj90Lmljb246Y2hhdGdwdC5lbmRwb2ludHMuYXNzZXRzKyIvc3RhcnRlcnMvY2hyb21lL2V4dGVuc2lvbi9pY29ucy9pY29uMTI4LnBuZyIsby53aWR0aD0xOCxyLmluc2VydEJlZm9yZShvLHIuZmlyc3RDaGlsZCksci5vbmNsaWNrPXQ/Lm9uY2xpY2smJiJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9uY2xpY2s/dC5vbmNsaWNrOmZ1bmN0aW9uKCl7fX1lbHNlIGlmKCJkcm9wZG93biI9PWUpe2lmKHQ/Lml0ZW1zJiZBcnJheS5pc0FycmF5KHQuaXRlbXMpJiZ0Lml0ZW1zLmxlbmd0aHx8KHQuaXRlbXM9W3t0ZXh0OiLwn6SWIGNoYXRncHQuanMgb3B0aW9uIix2YWx1ZToiY2hhdGdwdC5qcyBvcHRpb24gdmFsdWUifV0pLCF0Lml0ZW1zLmV2ZXJ5KGU9PiJvYmplY3QiPT10eXBlb2YgZSkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIidpdGVtcycgbXVzdCBiZSBhbiBhcnJheSBvZiBvYmplY3RzISIpO3Iuc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMwMDA7IHdpZHRoOiAxMDAlOyBib3JkZXI6IG5vbmU7Iix0Lml0ZW1zLmZvckVhY2goZT0+e3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpO3QudGV4dENvbnRlbnQ9ZT8udGV4dCx0LnZhbHVlPWU/LnZhbHVlLHIuYWRkKHQpfSl9bGV0IGE9KCk9Pnt2YXIgZSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImFbcm9sZT1tZW51aXRlbV0iKTtsZXQgbztmb3IoZSBvZiB0KWlmKCJTZXR0aW5ncyI9PWUudGV4dENvbnRlbnQpe289ZS5jbGFzc0xpc3Q7YnJlYWt9bGV0IHI9dFswXS5wYXJlbnROb2RlO2NoYXRncHQubWVudS5lbGVtZW50cy5mb3JFYWNoKGU9PntpZihlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLG8pLCFyLmNvbnRhaW5zKGUpKXRyeXtyLmluc2VydEJlZm9yZShlLHIuZmlyc3RDaGlsZCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KX07dGhpcy5lbGVtZW50cy5wdXNoKHIpO289ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibmF2IGJ1dHRvbltpZCo9aGVhZGxlc3NdIik7cmV0dXJuIHRoaXMuYWRkZWRFdmVudHx8KG8/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3NldFRpbWVvdXQoYSwyNSl9KSx0aGlzLmFkZGVkRXZlbnQ9ITApLHIuaWR9LGNsb3NlKCl7dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm5hdiBbaWQqPW1lbnUtYnV0dG9uXVthcmlhLWV4cGFuZGVkPXRydWVdIikuY2xpY2soKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUubWVzc2FnZSl9fSxvcGVuKCl7dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm5hdiBbaWQqPW1lbnUtYnV0dG9uXVthcmlhLWV4cGFuZGVkPWZhbHNlXSIpLmNsaWNrKCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlLm1lc3NhZ2UpfX19LG1pbmlmeSgpe2NoYXRncHQuY29kZS5taW5pZnkoKX0sbm90aWZ5KGUsdCxvLHIpe289bz8rbzoxLjc1O2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuaWQ9TWF0aC5mbG9vcigxZTYqY2hhdGdwdC5yYW5kb21GbG9hdCgpKStEYXRlLm5vdygpLGEuY2xhc3NMaXN0LmFkZCgiY2hhdGdwdC1ub3RpZiIpLGEuaW5uZXJUZXh0PWUsZG9jdW1lbnQuYm9keS5hcHBlbmQoYSk7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj0oZS50aXRsZT0iRGlzbWlzcyIsZS5jbGFzc0xpc3QuYWRkKCJub3RpZi1jbG9zZS1idG4iLCJuby1tb2JpbGUtdGFwLW91dGxpbmUiKSxkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIikpLHM9KG4uc2V0QXR0cmlidXRlKCJoZWlnaHQiLCI4cHgiKSxuLnNldEF0dHJpYnV0ZSgidmlld0JveCIsIjAgMCAxNCAxNCIpLG4uc2V0QXR0cmlidXRlKCJmaWxsIiwibm9uZSIpLG4uc3R5bGUuaGVpZ2h0PW4uc3R5bGUud2lkdGg9IjhweCIsZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInBhdGgiKSkscz0ocy5zZXRBdHRyaWJ1dGUoImZpbGwtcnVsZSIsImV2ZW5vZGQiKSxzLnNldEF0dHJpYnV0ZSgiY2xpcC1ydWxlIiwiZXZlbm9kZCIpLHMuc2V0QXR0cmlidXRlKCJmaWxsIiwid2hpdGUiKSxzLnNldEF0dHJpYnV0ZSgiZCIsIk0xMy43MDcxIDEuNzA3MTFDMTQuMDk3NiAxLjMxNjU4IDE0LjA5NzYgMC42ODM0MTcgMTMuNzA3MSAwLjI5Mjg5M0MxMy4zMTY2IC0wLjA5NzYzMTIgMTIuNjgzNCAtMC4wOTc2MzEyIDEyLjI5MjkgMC4yOTI4OTNMNyA1LjU4NTc5TDEuNzA3MTEgMC4yOTI4OTNDMS4zMTY1OCAtMC4wOTc2MzEyIDAuNjgzNDE3IC0wLjA5NzYzMTIgMC4yOTI4OTMgMC4yOTI4OTNDLTAuMDk3NjMxMiAwLjY4MzQxNyAtMC4wOTc2MzEyIDEuMzE2NTggMC4yOTI4OTMgMS43MDcxMUw1LjU4NTc5IDdMMC4yOTI4OTMgMTIuMjkyOUMtMC4wOTc2MzEyIDEyLjY4MzQgLTAuMDk3NjMxMiAxMy4zMTY2IDAuMjkyODkzIDEzLjcwNzFDMC42ODM0MTcgMTQuMDk3NiAxLjMxNjU4IDE0LjA5NzYgMS43MDcxMSAxMy43MDcxTDcgOC40MTQyMUwxMi4yOTI5IDEzLjcwNzFDMTIuNjgzNCAxNC4wOTc2IDEzLjMxNjYgMTQuMDk3NiAxMy43MDcxIDEzLjcwNzFDMTQuMDk3NiAxMy4zMTY2IDE0LjA5NzYgMTIuNjgzNCAxMy43MDcxIDEyLjI5MjlMOC40MTQyMSA3TDEzLjcwNzEgMS43MDcxMVoiKSxuLmFwcGVuZChzKSxlLmFwcGVuZChuKSxhLmFwcGVuZChlKSxhLmlzVG9wPSF0fHwhL2xvd3xib3R0b20vaS50ZXN0KHQpLGEuaXNSaWdodD0hdHx8IS9sZWZ0L2kudGVzdCh0KSxhLnF1YWRyYW50PShhLmlzVG9wPyJ0b3AiOiJib3R0b20iKSsoYS5pc1JpZ2h0PyJSaWdodCI6IkxlZnQiKSwxNzM1NDc1NTI3MTUzKTtsZXQgaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hhdGdwdC1ub3RpZi1zdHlsZSIpLGM9KCghaXx8cGFyc2VJbnQoaS5nZXRBdHRyaWJ1dGUoImxhc3QtdXBkYXRlZCIpLDEwKTxzKSYmKGl8fCgoaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5pZD0iY2hhdGdwdC1ub3RpZi1zdHlsZSIsaS5zZXRBdHRyaWJ1dGUoImxhc3QtdXBkYXRlZCIscy50b1N0cmluZygpKSxkb2N1bWVudC5oZWFkLmFwcGVuZChpKSksaS5pbm5lclRleHQ9Jy5jaGF0Z3B0LW5vdGlmIHtmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgIlBpbmdGYW5nIFNDIiwiSGlyYWdpbm8gU2FucyBHQiIsICJNaWNyb3NvZnQgWWFIZWkiLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmIDsubm8tbW9iaWxlLXRhcC1vdXRsaW5lIHsgb3V0bGluZTogbm9uZSA7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgfWJhY2tncm91bmQtY29sb3I6IGJsYWNrIDsgcGFkZGluZzogMTBweCAxM3B4IDEwcHggMThweCA7IGJvcmRlci1yYWRpdXM6IDExcHggOyBib3JkZXI6IDFweCBzb2xpZCAjZjVmNWY3IDtvcGFjaXR5OiAwIDsgcG9zaXRpb246IGZpeGVkIDsgei1pbmRleDogOTk5OSA7IGZvbnQtc2l6ZTogMS44cmVtIDsgY29sb3I6IHdoaXRlIDstd2Via2l0LXVzZXItc2VsZWN0OiBub25lIDsgLW1vei11c2VyLXNlbGVjdDogbm9uZSA7IC1tcy11c2VyLXNlbGVjdDogbm9uZSA7IHVzZXItc2VsZWN0OiBub25lIDsnK2B0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHthLmlzUmlnaHQ/IiI6Ii0ifTM1cHgpIDtgKyhyPyJib3gtc2hhZG93OiAtOHB4IDEzcHggMjVweCAwICIrKC9cYig/OnNoYWRvd3xvbilcYi9pLnRlc3Qocik/ImdyYXkiOnIpOiIiKSsifS5ub3RpZi1jbG9zZS1idG4geyBjdXJzb3I6IHBvaW50ZXIgOyBmbG9hdDogcmlnaHQgOyBwb3NpdGlvbjogcmVsYXRpdmUgOyByaWdodDogLTRweCA7IG1hcmdpbi1sZWZ0OiAtM3B4IDtkaXNwbGF5OiBncmlkIH1Aa2V5ZnJhbWVzIG5vdGlmLXpvb20tZmFkZS1vdXQgeyAwJSB7IG9wYWNpdHk6IDEgOyB0cmFuc2Zvcm06IHNjYWxlKDEpIH0xNSUgeyBvcGFjaXR5OiAwLjM1IDsgdHJhbnNmb3JtOiByb3RhdGVYKC0yN2RlZykgc2NhbGUoMS4wNSkgfTQ1JSB7IG9wYWNpdHk6IDAuMDUgOyB0cmFuc2Zvcm06IHJvdGF0ZVgoLTgxZGVnKSB9MTAwJSB7IG9wYWNpdHk6IDAgOyB0cmFuc2Zvcm06IHJvdGF0ZVgoLTE4MGRlZykgc2NhbGUoMS4xNSkgfX0iKSxKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5ub3RpZnlQcm9wcykpO2MucXVldWVbYS5xdWFkcmFudF0ucHVzaChhLmlkKSxsb2NhbFN0b3JhZ2Uubm90aWZ5UHJvcHM9SlNPTi5zdHJpbmdpZnkoYyksYS5zdHlsZS50b3A9YS5pc1RvcD8yMy4udG9TdHJpbmcoKSsicHgiOiIiLGEuc3R5bGUuYm90dG9tPWEuaXNUb3A/IiI6MjMuLnRvU3RyaW5nKCkrInB4IixhLnN0eWxlLnJpZ2h0PWEuaXNSaWdodD8yNy4udG9TdHJpbmcoKSsicHgiOiIiLGEuc3R5bGUubGVmdD1hLmlzUmlnaHQ/IiI6MjcuLnRvU3RyaW5nKCkrInB4IjtlPWMucXVldWVbYS5xdWFkcmFudF07aWYoMTxlLmxlbmd0aCl0cnl7Zm9yKHZhciBsIG9mIGUuc2xpY2UoMCwtMSkpe3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGwpLGc9ZC5zdHlsZS50b3A/InRvcCI6ImJvdHRvbSIsdT0rL1xkKy8uZXhlYyhkLnN0eWxlW2ddKVswXSs1K2QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O2Quc3R5bGVbZ109dSsicHgifX1jYXRjaChlKXt9c2V0VGltZW91dCgoKT0+e2Euc3R5bGUub3BhY2l0eT1jaGF0Z3B0LmlzRGFya01vZGUoKT8uODouNjcsYS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoMCkiLGEuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UsIG9wYWNpdHkgMC4xNXMgZWFzZSJ9LDEwKTt0PSgpPT57YS5zdHlsZS5hbmltYXRpb249Im5vdGlmLXpvb20tZmFkZS1vdXQgMC4zNXMgZWFzZS1vdXQiLGNsZWFyVGltZW91dChwKX07bGV0IHA9c2V0VGltZW91dCh0LDFlMyoobzwuMzU/MDpvLS4zNSkpO3JldHVybiBuLm9uY2xpY2s9dCxhLm9uYW5pbWF0aW9uZW5kPSgpPT57YS5yZW1vdmUoKSwoYz1KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5ub3RpZnlQcm9wcykpLnF1ZXVlW2EucXVhZHJhbnRdLnNoaWZ0KCksbG9jYWxTdG9yYWdlLm5vdGlmeVByb3BzPUpTT04uc3RyaW5naWZ5KGMpfSxhfSxvYmZ1c2NhdGUoKXtjaGF0Z3B0LmNvZGUub2JmdXNjYXRlKCl9LHByaW50QWxsRnVuY3Rpb25zKCl7bGV0IG89e2NtZFByb21wdDpbIiNmZjAwZmYiLCIjMDBmZjAwIl0sb2JqTmFtZTpbIiMwNjExZTkiLCIjZjllZTE2Il0sbWV0aG9kTmFtZTpbIiMwMDVhZmYiLCIjZmZhNTAwIl0sZW50cnlUeXBlOlsiIzQ2N2UwNiIsIiNiOTgxZjkiXSxzcmNNZXRob2Q6WyIjZmYwMDAwIiwiIzAwZmZmZiJdfTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGU9PntvW2VdWzFdPW9bZV1bMV18fCIjIisoMTY3NzcyMTVeTnVtYmVyKCIweDEiK29bZV1bMF0ucmVwbGFjZSgvXiMvLCIiKSkpLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSkudG9VcHBlckNhc2UoKX0pO3ZhciBlPVtdO2ZvcihsZXQgdCBpbiB0aGlzKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW3RdKXt2YXIgcj0hT2JqZWN0LmtleXModGhpcykuZmluZChlPT5PYmplY3Qua2V5cyh0aGlzW2VdKS5pbmNsdWRlcyh0aGlzW3RdLm5hbWUpKTtlLnB1c2goW3I/ImNoYXRncHQiOiJvdGhlciIsdF0pfWVsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiB0aGlzW3RdKWZvcih2YXIgYSBpbiB0aGlzW3RdKSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW3RdW2FdJiZlLnB1c2goW3QsYV0pO2Uuc29ydCgoZSx0KT0+ZVswXS5sb2NhbGVDb21wYXJlKHRbMF0pfHxlWzFdLmxvY2FsZUNvbXBhcmUodFsxXSkpO3ZhciBuPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyxzPSJmb250LWZhbWlseTogbW9ub3NwYWNlIDsgZm9udC1zaXplOiBsYXJnZXIgOyAiO2NvbnNvbGUubG9nKCJcbiVj8J+kliBjaGF0Z3B0LmpzIG1ldGhvZHNcbiIsImZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmIDsgZm9udC1zaXplOiB4eHgtbGFyZ2UgOyBmb250LXdlaWdodDogYm9sZCIpO2ZvcihsZXQgdCBvZiBlKXt2YXIgaT0vY2hhdGdwdHxvdGhlci8udGVzdCh0WzBdKSxjPSJjaGF0Z3B0Ij09dFswXT90aGlzW3RbMV1dLm5hbWU6Im90aGVyIiE9PXRbMF0/dFswXSsiLiIrdFsxXTpPYmplY3Qua2V5cyh0aGlzKS5maW5kKGU9Pk9iamVjdC5rZXlzKHRoaXNbZV0pLmluY2x1ZGVzKHRoaXNbdFsxXV0ubmFtZSkpKyIuIit0aGlzW3RbMV1dLm5hbWUsbD0iQXN5bmNGdW5jdGlvbiI9PXRoaXNbdFsxXV0/LmNvbnN0cnVjdG9yLm5hbWU7Y29uc29sZS5sb2coIiVjPj4gJWMiKyhpPyIiOnRbMF0rIi4lYyIpK3RbMV0rIiAtIGh0dHBzOi8vY2hhdGdwdGpzLm9yZy91c2VyZ3VpZGUvIisvKD86LipcLik/KC4qKS8uZXhlYyhjKVsxXS50b0xvd2VyQ2FzZSgpKyhsPyItYXN5bmMiOiIiKSsiXG4lY1slYyIrKCJjaGF0Z3B0Ij09dFswXSYmdFsxXT09dGhpc1t0WzFdXS5uYW1lfHwhaT8iRnVuY3Rpb24iOiJBbGlhcyBvZiIpKyIlYzogJWMiK2MrIiVjXSIscysiZm9udC13ZWlnaHQ6IGJvbGQgOyBjb2xvcjoiK28uY21kUHJvbXB0WytuXSxzKyJmb250LXdlaWdodDogYm9sZCA7Y29sb3I6IitvW2k/Im1ldGhvZE5hbWUiOiJvYmpOYW1lIl1bK25dLHMrImZvbnQtd2VpZ2h0OiAiKyhpPyJpbml0aWFsIjoiYm9sZCIpKyI7Y29sb3I6IisoaT8iaW5pdGlhbCI6by5tZXRob2ROYW1lWytuXSkscysiZm9udC13ZWlnaHQ6ICIrKGk/ImJvbGQiOiJpbml0aWFsIikrIjtjb2xvcjoiKyhpP28uZW50cnlUeXBlWytuXToiaW5pdGlhbCIpLHMrImZvbnQtd2VpZ2h0OiAiKyhpPyJpbml0aWFsIjoiYm9sZCIpKyI7Y29sb3I6IisoaT8iaW5pdGlhbCI6by5lbnRyeVR5cGVbK25dKSxzKyhpPyJmb250LXN0eWxlOiBpdGFsaWMiOiJmb250LXdlaWdodDogaW5pdGlhbCIpKyI7Y29sb3I6IisoaT9vLnNyY01ldGhvZFsrbl06ImluaXRpYWwiKSxzKyhpPyJmb250LXdlaWdodDogaW5pdGlhbCI6ImZvbnQtc3R5bGU6IGl0YWxpYyIpKyI7Y29sb3I6IisoaT8iaW5pdGlhbCI6by5zcmNNZXRob2RbK25dKSxpPyIiOnMrImNvbG9yOiBpbml0aWFsIDsgZm9udC13ZWlnaHQ6IGluaXRpYWwiKX19LHJhbmRvbUZsb2F0KCl7cmV0dXJuKHdpbmRvdy5jcnlwdG98fHdpbmRvdy5tc0NyeXB0byk/LmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMSkpWzBdLzQyOTQ5NjcyOTV8fE1hdGgucmFuZG9tKCl9LHJlZmFjdG9yKCl7Y2hhdGdwdC5jb2RlLnJlZmFjdG9yKCl9LHJlZ2VuZXJhdGUoKXtjaGF0Z3B0LnJlc3BvbnNlLnJlZ2VuZXJhdGUoKX0scmVuZGVySFRNTChzKXt2YXIgaSxlPS88KFthLXpcZF0rKVxiKFtePl0qKT4oW1xzXFNdKj8pPFwvXDE+L2csYz0vKFxTKyk9WyciXT8oKD86Lig/IVsnIl0/XHMrXFMrPXxbPiddKSkrLilbJyJdPy9nLHQ9cy5jaGlsZE5vZGVzO2NoYXRncHQucmVuZGVySFRNTC5wcmVXcmFwU2V0fHwocy5zdHlsZS53aGl0ZVNwYWNlPSJwcmUtd3JhcCIsY2hhdGdwdC5yZW5kZXJIVE1MLnByZVdyYXBTZXQ9ITAsc2V0VGltZW91dCgoKT0+e2NoYXRncHQucmVuZGVySFRNTC5wcmVXcmFwU2V0PSExfSwxMDApKTtmb3IoaSBvZiB0KWlmKGkubm9kZVR5cGU9PU5vZGUuVEVYVF9OT0RFKXt2YXIgbD1pLm5vZGVWYWx1ZSxkPUFycmF5LmZyb20obC5tYXRjaEFsbChlKSk7aWYoMDxkLmxlbmd0aCl7bGV0IGU9ZFswXSxbdCxvLHIsYV09ZS5zbGljZSgwLDQpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvKTtuLnRleHRDb250ZW50PWE7QXJyYXkuZnJvbShyLm1hdGNoQWxsKGMpKS5mb3JFYWNoKGU9Pnt2YXIgdD1lWzFdLGU9ZVsyXS5yZXBsYWNlKC9bJyJdL2csIiIpO24uc2V0QXR0cmlidXRlKHQsZSl9KTt2YXIgZD1jaGF0Z3B0LnJlbmRlckhUTUwobiksZz1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsLnN1YnN0cmluZygwLGUuaW5kZXgpKSxsPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGwuc3Vic3RyaW5nKGUuaW5kZXgrdC5sZW5ndGgpKTtzLnJlcGxhY2VDaGlsZChnLGkpLHMuaW5zZXJ0QmVmb3JlKGQsZy5uZXh0U2libGluZykscy5pbnNlcnRCZWZvcmUobCxkLm5leHRTaWJsaW5nKX19ZWxzZSBpLm5vZGVUeXBlPT1Ob2RlLkVMRU1FTlRfTk9ERSYmY2hhdGdwdC5yZW5kZXJIVE1MKGkpO3JldHVybiBzfSxhc3luYyByZXNlbmQoKXtjaGF0Z3B0LnNlbmQoYXdhaXQgY2hhdGdwdC5nZXRDaGF0RGF0YSgibGF0ZXN0IiwibXNnIiwidXNlciIsImxhdGVzdCIpKX0scmVzcG9uc2U6e2NvbnRpbnVlKCl7dHJ5e2NoYXRncHQuZ2V0Q29udGludWVCdG4oKS5jbGljaygpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKX19LGdldCgpe3JldHVybih3aW5kb3cubG9jYXRpb24uaHJlZi5zdGFydHNXaXRoKCJodHRwczovL2NoYXRncHQuY29tL2MvIik/dGhpcy5nZXRGcm9tRE9NOnRoaXMuZ2V0RnJvbUFQSSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxnZXRGcm9tQVBJKGUsdCl7cmV0dXJuIGU9ZXx8ImxhdGVzdCIsdD10fHwibGF0ZXN0IixjaGF0Z3B0LmdldENoYXREYXRhKGUsIm1zZyIsImNoYXRncHQiLHQpfSxnZXRGcm9tRE9NKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRpdltkYXRhLW1lc3NhZ2UtYXV0aG9yLXJvbGU9YXNzaXN0YW50XSIpLG89ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7bGV0IHI9IiI7cmV0dXJuIHQubGVuZ3RoP3I9KHI9KC9sYXN0fGZpbmFsLy50ZXN0KG8pP3RbdC5sZW5ndGgtMV06dFsoTnVtYmVyLmlzSW50ZWdlcihlKT9lOi9eXGQrLy50ZXN0KG8pPy9eXGQrLy5leGVjKG8pWzBdOigvXig/OjF8b25lfGZpcikoPzpzdCk/JC8udGVzdChvKT8xOi9eKD86Mnx0dyg/Om98ZW58ZWwoPzp2ZXxmKSl8c2VjbykoPzpuZHx0W3lpXSk/KD86ZT90aCk/JC8udGVzdChvKT8yOi9eKD86M3x0aCg/OnJlZXxpcj8pKSg/OnJkfHRlZW58dFt5aV0pPyg/OmU/dGgpPyQvLnRlc3Qobyk/MzovXig/OjR8Zm91P3IpKD86dGVlbnx0W3lpXSk/KD86ZT90aCk/JC8udGVzdChvKT80Oi9eKD86NXxmaSg/OnZlfGYpKSg/OnRlZW58dFt5aV0pPyg/OmU/dGgpPyQvLnRlc3Qobyk/NTovXig/OjZ8c2l4KSg/OnRlZW58dFt5aV0pPyg/OmU/dGgpPyQvLnRlc3Qobyk/NjovXig/Ojd8c2V2ZW4pKD86dGVlbnx0W3lpXSk/KD86ZT90aCk/JC8udGVzdChvKT83Oi9eKD86OHxlaWdodD8pKD86dGVlbnx0W3lpXSk/KD86ZT90aCk/JC8udGVzdChvKT84Oi9eKD86OXxuaW5lPykoPzp0ZWVufHRbeWldKT8oPzplP3RoKT8kLy50ZXN0KG8pPzk6L14oPzoxMHx0ZW4pKD86dGgpPyQvLnRlc3Qobyk/MTA6MSkqKC8oPzp0eXxpZXRoKSQvLnRlc3Qobyk/MTA6MSkrKC90ZWVuKD86dGgpPyQvLnRlc3Qobyk/MTA6MCkpLTFdKS50ZXh0Q29udGVudCkucmVwbGFjZSgvXkNoYXRHUFQoPzpDaGF0R1BUKT8vLCIiKTpjb25zb2xlLmVycm9yKCJObyBjb252ZXJzYXRpb24gZm91bmQhIil9LGdldExhc3QoKXtyZXR1cm4gY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpfSxyZWdlbmVyYXRlKCl7dHJ5e2NoYXRncHQuZ2V0UmVnZW5lcmF0ZUJ0bigpLmNsaWNrKCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlLm1lc3NhZ2UpfX0sc3RvcEdlbmVyYXRpbmcoKXt0cnl7Y2hhdGdwdC5nZXRTdG9wQnRuKCkuY2xpY2soKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUubWVzc2FnZSl9fX0scmV2aWV3Q29kZSgpe2NoYXRncHQuY29kZS5yZXZpZXcoKX0sc2Nyb2xsVG9Cb3R0b20oKXt0cnl7Y2hhdGdwdC5nZXRTY3JvbGxCdG4oKS5jbGljaygpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKX19LHNlbmQoZSxvPSIiKXtmb3IobGV0IGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWlmKCJzdHJpbmciIT10eXBlb2YgYXJndW1lbnRzW2VdKXJldHVybiBjb25zb2xlLmVycm9yKGBBcmd1bWVudCAke2UrMX0gbXVzdCBiZSBhIHN0cmluZyFgKTtsZXQgcj1jaGF0Z3B0LmdldENoYXRCb3goKTtpZighcilyZXR1cm4gY29uc29sZS5lcnJvcigiQ2hhdGJhciBlbGVtZW50IG5vdCBmb3VuZCEiKTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7dC50ZXh0Q29udGVudD1lLHIucmVwbGFjZUNoaWxkKHQsci5xdWVyeVNlbGVjdG9yKCJwIikpLHIuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMH0pKSxzZXRUaW1lb3V0KGZ1bmN0aW9uIGUoKXt2YXIgdD1jaGF0Z3B0LmdldFNlbmRCdXR0b24oKTt0Py5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIik/c2V0VGltZW91dChlLDIyMik6ImNsaWNrIj09by50b0xvd2VyQ2FzZSgpfHxjaGF0Z3B0LmJyb3dzZXIuaXNNb2JpbGUoKT90LmNsaWNrKCk6ci5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCJrZXlkb3duIix7a2V5OiJFbnRlciIsYnViYmxlczohMH0pKX0sMjIyKX0sc2VuZEluTmV3Q2hhdChlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIk1lc3NhZ2UgbXVzdCBiZSBhIHN0cmluZyEiKTt0cnl7Y2hhdGdwdC5nZXROZXdDaGF0QnRuKCkuY2xpY2soKX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5lcnJvcihlLm1lc3NhZ2UpfXNldFRpbWVvdXQoKCk9PntjaGF0Z3B0LnNlbmQoZSl9LDUwMCl9LHNldHRpbmdzOntzY2hlbWU6e2lzRGFyaygpe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJkYXJrIil9LGlzTGlnaHQoKXtyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygibGlnaHQiKX0sc2V0KGUpe3ZhciB0PVsiZGFyayIsImxpZ2h0Iiwic3lzdGVtIl07aWYoIWUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIlBsZWFzZSBzcGVjaWZ5IGEgc2NoZW1lIHZhbHVlISIpO2lmKCF0LmluY2x1ZGVzKGUpKXJldHVybiBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHNjaGVtZSB2YWx1ZS4gVmFsaWQgdmFsdWVzIGFyZSBbJHt0fV1gKTtsZXQgbz1lOyJzeXN0ZW0iPT1lJiYobz13aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/ImRhcmsiOiJsaWdodCIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ0aGVtZSIsZSksY29uc29sZS5pbmZvKGBTY2hlbWUgc2V0IHRvICR7ZS50b1VwcGVyQ2FzZSgpfS5gKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKG8pfHx0aGlzLnRvZ2dsZSgpfSx0b2dnbGUoKXt2YXJbZSx0XT10aGlzLmlzRGFyaygpP1siZGFyayIsImxpZ2h0Il06WyJsaWdodCIsImRhcmsiXTtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlcGxhY2UoZSx0KSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuY29sb3JTY2hlbWU9dCxsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgidGhlbWUiLHQpfX19LGFzeW5jIHNlbnRpbWVudChlLHQpe2ZvcihsZXQgZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspaWYoInN0cmluZyIhPXR5cGVvZiBhcmd1bWVudHNbZV0pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEFyZ3VtZW50ICR7ZSsxfSBtdXN0IGJlIGEgc3RyaW5nLmApO3JldHVybiBjaGF0Z3B0LnNlbmQoIldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGUgZm9sbG93aW5nIHRleHQiKyh0P2AgdG93YXJkcyB0aGUgZW50aXR5ICR7dH0sYDoiIikrIiBmcm9tIHN0cm9uZ2x5IG5lZ2F0aXZlIHRvIHN0cm9uZ2x5IHBvc2l0aXZlP1xuXG4iK2UpLGNvbnNvbGUuaW5mbygiQW5hbHl6aW5nIHNlbnRpbWVudC4uLiIpLGF3YWl0IGNoYXRncHQuaXNJZGxlKCksY2hhdGdwdC5nZXRDaGF0RGF0YSgiYWN0aXZlIiwibXNnIiwiY2hhdGdwdCIsImxhdGVzdCIpfSxzZXRTY2hlbWUoZSl7Y2hhdGdwdC5zZXR0aW5ncy5zY2hlbWUuc2V0KGUpfSxzaGFyZUNoYXQocyxpPSJjbGlwYm9hcmQiKXt2YXIgZT1bImFsZXJ0Iiwibm90aWZ5Iiwibm90aWZpY2F0aW9uIiwiY2xpcGJvYXJkIiwiY29weSJdO2lmKCFlLmluY2x1ZGVzKGkpKXJldHVybiBjb25zb2xlLmVycm9yKCJJbnZhbGlkIG1ldGhvZCAnIitpKyInIHBhc3NlZC4gVmFsaWQgbWV0aG9kcyBhcmUgWyIrZSsiXS4iKTtyZXR1cm4gbmV3IFByb21pc2Uobz0+e2NoYXRncHQuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKHQ9Pnt2YXIgYTthPXQsbmV3IFByb21pc2UoKHQsbyk9PntsZXQgcj1uZXcgWE1MSHR0cFJlcXVlc3Q7Y2hhdGdwdC5nZXRDaGF0RGF0YShzKS50aGVuKGU9PntyLm9wZW4oIkdFVCIsY2hhdGdwdC5lbmRwb2ludHMub3BlbkFJLmNoYXQrIi8iK2UuaWQsITApLHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLHIuc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK2EpLHIub25sb2FkPSgpPT4yMDAhPT1yLnN0YXR1cz9vKCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCByZXRyaWV2ZSBjaGF0IG5vZGUuIik6dChKU09OLnBhcnNlKHIucmVzcG9uc2VUZXh0KS5jdXJyZW50X25vZGUpLHIuc2VuZCgpfSl9KS50aGVuKGU9Pnt2YXIgYSxuO2E9dCxuPWUsbmV3IFByb21pc2UoKHQsbyk9PntsZXQgcj1uZXcgWE1MSHR0cFJlcXVlc3Q7Y2hhdGdwdC5nZXRDaGF0RGF0YShzKS50aGVuKGU9PntyLm9wZW4oIlBPU1QiLGNoYXRncHQuZW5kcG9pbnRzLm9wZW5BSS5zaGFyZV9jcmVhdGUsITApLHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLHIuc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK2EpLHIub25sb2FkPSgpPT4yMDAhPT1yLnN0YXR1cz9vKCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCBpbml0aWFsaXplIHNoYXJlIGNoYXQuIik6dChKU09OLnBhcnNlKHIucmVzcG9uc2VUZXh0KSksci5zZW5kKEpTT04uc3RyaW5naWZ5KHtjdXJyZW50X25vZGVfaWQ6bixjb252ZXJzYXRpb25faWQ6ZS5pZCxpc19hbm9ueW1vdXM6ITB9KSl9KX0pLnRoZW4oZT0+e3ZhciByLGE7cj10LGE9ZSxuZXcgUHJvbWlzZSgoZSx0KT0+e2xldCBvPW5ldyBYTUxIdHRwUmVxdWVzdDtvLm9wZW4oIlBBVENIIixjaGF0Z3B0LmVuZHBvaW50cy5vcGVuQUkuc2hhcmUrIi8iK2Euc2hhcmVfaWQsITApLG8uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLG8uc2V0UmVxdWVzdEhlYWRlcigiQXV0aG9yaXphdGlvbiIsIkJlYXJlciAiK3IpLG8ub25sb2FkPSgpPT4yMDAhPT1vLnN0YXR1cz90KCLwn6SWIGNoYXRncHQuanMgPj4gUmVxdWVzdCBmYWlsZWQuIENhbm5vdCBzaGFyZSBjaGF0LiIpOihjb25zb2xlLmluZm8oYENoYXQgc2hhcmVkIGF0ICcke2Euc2hhcmVfdXJsfSdgKSxlKCkpLG8uc2VuZChKU09OLnN0cmluZ2lmeSh7c2hhcmVfaWQ6YS5zaGFyZV9pZCxoaWdobGlnaHRlZF9tZXNzYWdlX2lkOmEuaGlnaGxpZ2h0ZWRfbWVzc2FnZV9pZCx0aXRsZTphLnRpdGxlLGlzX3B1YmxpYzohMCxpc192aXNpYmxlOmEuaXNfdmlzaWJsZSxpc19hbm9ueW1vdXM6YS5pc19hbm9ueW1vdXN9KSl9KS50aGVuKCgpPT57WyJjb3B5IiwiY2xpcGJvYXJkIl0uaW5jbHVkZXMoaSk/bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZS5zaGFyZV91cmwpOmNoYXRncHQuYWxlcnQoIvCfmoAgU2hhcmUgbGluayBjcmVhdGVkISIsJyInK2UudGl0bGUrJyIgaXMgYXZhaWxhYmxlIGF0OiA8YSB0YXJnZXQ9ImJsYW5rIiByZWw9Im5vb3BlbmVyIiBocmVmPSInK2Uuc2hhcmVfdXJsKyciID4nK2Uuc2hhcmVfdXJsKyI8L2E+IixbZnVuY3Rpb24oKXt3aW5kb3cub3BlbihlLnNoYXJlX3VybCwiX2JsYW5rIiwibm9vcGVuZXIiKX0sZnVuY3Rpb24oKXtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlLnNoYXJlX3VybCl9XSksbyhlLnNoYXJlX3VybCl9KX0pfSl9KX0pfSxzaG93Rm9vdGVyKCl7Y2hhdGdwdC5mb290ZXIuc2hvdygpfSxzaG93SGVhZGVyKCl7Y2hhdGdwdC5oZWFkZXIuc2hvdygpfSxzaWRlYmFyOntlbGVtZW50czpbXSxvYnNlcnZlcjp7fSxhY3RpdmF0ZU9ic2VydmVyKCl7aWYodGhpcy5vYnNlcnZlciBpbnN0YW5jZW9mIE11dGF0aW9uT2JzZXJ2ZXIpdHJ5e3RoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpfWNhdGNoKGUpe31pZighdGhpcy5lbGVtZW50cy5sZW5ndGgpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIvCfpJYgY2hhdGdwdC5qcyA+PiBObyBlbGVtZW50cyB0byBhcHBlbmQhIik7bGV0IHQ7Zm9yKHZhciBlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIm5hdiBhIikpaWYoLy4qY2hhdC8uZXhlYyhlLnRleHQpWzBdKXt0PWUuY2xhc3NMaXN0LGUucGFyZW50Tm9kZS5zdHlsZS5tYXJnaW49IjJweCAwIjticmVha310aGlzLmVsZW1lbnRzLmZvckVhY2goZT0+e2Uuc2V0QXR0cmlidXRlKCJjbGFzcyIsdCksZS5zdHlsZS5tYXhIZWlnaHQ9ZS5zdHlsZS5taW5IZWlnaHQ9IjQ0cHgiLGUuc3R5bGUubWFyZ2luPSIycHggMCJ9KTtsZXQgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJuYXYiKTtpZighbylyZXR1cm4gY29uc29sZS5lcnJvcigiU2lkZWJhciBlbGVtZW50IG5vdCBmb3VuZCEiKTt0aGlzLm9ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKGU9PntlLmZvckVhY2goZT0+eygiY2hpbGRMaXN0Ij09ZS50eXBlJiZlLmFkZGVkTm9kZXMubGVuZ3RofHwiYXR0cmlidXRlcyI9PWUudHlwZSYmImRhdGEtY2hhdGdwdGpzIj09ZS5hdHRyaWJ1dGVOYW1lKSYmdGhpcy5lbGVtZW50cy5mb3JFYWNoKGU9PntpZighby5jb250YWlucyhlKSl0cnl7by5pbnNlcnRCZWZvcmUoZSxvLnF1ZXJ5U2VsZWN0b3IoImEiKS5wYXJlbnROb2RlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0pfSl9KSx0aGlzLm9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwfSl9LGFwcGVuZChlLHQ9e30pe3ZhciBvPVsiYnV0dG9uIiwiZHJvcGRvd24iXTtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBjb25zb2xlLmVycm9yKCLwn6SWIGNoYXRncHQuanMgPj4gUGxlYXNlIHN1cHBseSBhIHZhbGlkIHN0cmluZyBlbGVtZW50IG5hbWUhIik7aWYoZT1lLnRvTG93ZXJDYXNlKCksIW8uaW5jbHVkZXMoZSkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoYPCfpJYgY2hhdGdwdC5qcyA+PiBJbnZhbGlkIGVsZW1lbnQhIFZhbGlkIGVsZW1lbnRzIGFyZSBbJHtvfV1gKTtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkcm9wZG93biI9PWU/InNlbGVjdCI6ZSk7aWYoci5pZD1NYXRoLmZsb29yKDFlNipjaGF0Z3B0LnJhbmRvbUZsb2F0KCkpK0RhdGUubm93KCksImJ1dHRvbiI9PWUpe3IudGV4dENvbnRlbnQ9dD8ubGFiZWwmJiJzdHJpbmciPT10eXBlb2YgdC5sYWJlbD90LmxhYmVsOiJjaGF0Z3B0LmpzIGJ1dHRvbiI7bz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtvLnNyYz10Py5pY29uJiYic3RyaW5nIj09dHlwZW9mIHQuaWNvbj90Lmljb246Y2hhdGdwdC5lbmRwb2ludHMuYXNzZXRzKyIvc3RhcnRlcnMvY2hyb21lL2V4dGVuc2lvbi9pY29ucy9pY29uMTI4LnBuZyIsby53aWR0aD0xOCxyLmluc2VydEJlZm9yZShvLHIuZmlyc3RDaGlsZCksci5vbmNsaWNrPXQ/Lm9uY2xpY2smJiJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9uY2xpY2s/dC5vbmNsaWNrOmZ1bmN0aW9uKCl7fX1lbHNlIGlmKCJkcm9wZG93biI9PWUpe2lmKHQ/Lml0ZW1zJiZBcnJheS5pc0FycmF5KHQuaXRlbXMpJiZ0Lml0ZW1zLmxlbmd0aHx8KHQuaXRlbXM9W3t0ZXh0OiLwn6SWIGNoYXRncHQuanMgb3B0aW9uIix2YWx1ZToiY2hhdGdwdC5qcyBvcHRpb24gdmFsdWUifV0pLCF0Lml0ZW1zLmV2ZXJ5KGU9PiJvYmplY3QiPT10eXBlb2YgZSkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIidpdGVtcycgbXVzdCBiZSBhbiBhcnJheSBvZiBvYmplY3RzISIpO3QuaXRlbXMuZm9yRWFjaChlPT57dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7dC50ZXh0Q29udGVudD1lPy50ZXh0LHQudmFsdWU9ZT8udmFsdWUsci5hZGQodCl9KX1yZXR1cm4iZHJvcGRvd24iPT1lJiYoci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9InZhcigtLWdyYXktOTAwLCByZ2IoMzIsIDMzLCAzNSkpIiksdGhpcy5lbGVtZW50cy5wdXNoKHIpLHRoaXMuYWN0aXZhdGVPYnNlcnZlcigpLGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJkYXRhLWNoYXRncHRqcyIsIm9ic2VydmVyLXRyaWdnZXIiKSxyLmlkfSxleGlzdHMoKXtyZXR1cm4hIWNoYXRncHQuZ2V0TmV3Q2hhdExpbmsoKX0saGlkZSgpe3RoaXMuaXNPbigpP3RoaXMudG9nZ2xlKCk6Y29uc29sZS5pbmZvKCJTaWRlYmFyIGFscmVhZHkgaGlkZGVuISIpfSxzaG93KCl7dGhpcy5pc09mZigpP3RoaXMudG9nZ2xlKCk6Y29uc29sZS5pbmZvKCJTaWRlYmFyIGFscmVhZHkgc2hvd24hIil9LGlzT2ZmKCl7cmV0dXJuIXRoaXMuaXNPbigpfSxpc09uKCl7dmFyIGU9Y2hhdGdwdC5zaWRlYmFyLmV4aXN0cygpP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIltjbGFzcyo9c2lkZWJhcl0iKTpudWxsO3JldHVybiBlP2NoYXRncHQuYnJvd3Nlci5pc01vYmlsZSgpPyJoaWRkZW4iPT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c6ImhpZGRlbiIhPWUuc3R5bGUudmlzaWJpbGl0eSYmIjBweCIhPWUuc3R5bGUud2lkdGg6KGNvbnNvbGUuZXJyb3IoIlNpZGViYXIgZWxlbWVudCBub3QgZm91bmQhIiksITEpfSx0b2dnbGUoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJidXR0b25bZGF0YS10ZXN0aWQqPXNpZGViYXItYnV0dG9uXSIpO2V8fGNvbnNvbGUuZXJyb3IoIlNpZGViYXIgdG9nZ2xlIG5vdCBmb3VuZCEiKSxlLmNsaWNrKCl9LGFzeW5jIGlzTG9hZGVkKHQ9NWUzKXthd2FpdCBjaGF0Z3B0LmlzTG9hZGVkKCk7dmFyIGU9bmV3IFByb21pc2UoZT0+c2V0VGltZW91dCgoKT0+e2UoITEpfSx0KSksbz1uZXcgUHJvbWlzZShvPT57Y2hhdGdwdC5nZXROZXdDaGF0TGluaygpP28oITApOm5ldyBNdXRhdGlvbk9ic2VydmVyKChlLHQpPT57Y2hhdGdwdC5nZXROZXdDaGF0TGluaygpJiYodC5kaXNjb25uZWN0KCksbyghMCkpfSkub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfSk7cmV0dXJuIFByb21pc2UucmFjZShbbyxlXSl9fSxzdGFydE5ld0NoYXQoKXt0cnl7Y2hhdGdwdC5nZXROZXdDaGF0QnRuKCkuY2xpY2soKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUubWVzc2FnZSl9fSxzdG9wKCl7Y2hhdGdwdC5yZXNwb25zZS5zdG9wR2VuZXJhdGluZygpfSxhc3luYyBzdWdnZXN0KGUsdCl7aWYoIWUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoImlkZWFUeXBlICgxc3QgYXJndW1lbnQpIG5vdCBzdXBwbGllZChlLmcuICdnaWZ0cycsICduYW1lcycsICdyZWNpcGVzJywgZXRjLikiKTtmb3IobGV0IGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWlmKCJzdHJpbmciIT10eXBlb2YgYXJndW1lbnRzW2VdKXJldHVybiBjb25zb2xlLmVycm9yKGBBcmd1bWVudCAke2UrMX0gbXVzdCBiZSBhIHN0cmluZy5gKTtyZXR1cm4gY2hhdGdwdC5zZW5kKCJTdWdnZXN0IHNvbWUgbmFtZXMuICIrKHR8fCIiKSksY29uc29sZS5pbmZvKGBDcmVhdGluZyAke2V9Li4uYCksYXdhaXQgY2hhdGdwdC5pc0lkbGUoKSxjaGF0Z3B0LmdldENoYXREYXRhKCJhY3RpdmUiLCJtc2ciLCJjaGF0Z3B0IiwibGF0ZXN0Iil9LHNwZWFrKGUsdD17fSl7dmFyIG8se3ZvaWNlOnI9MixwaXRjaDphPTIsc3BlZWQ6bj0xLjF9PXQ7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBjb25zb2xlLmVycm9yKCJNZXNzYWdlIG11c3QgYmUgYSBzdHJpbmchIik7Zm9yKG8gaW4gdCl7dmFyIHM9dFtvXTtpZigibnVtYmVyIiE9dHlwZW9mIHMmJiEvXlxkKyQvLnRlc3QocykpcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgJHtvfSBpbmRleCAnJHtzfScuIE11c3QgYmUgYSBudW1iZXIhYCl9dHJ5e3ZhciBpPXNwZWVjaFN5bnRoZXNpcy5nZXRWb2ljZXMoKSxjPW5ldyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U7Yy50ZXh0PWUsYy52b2ljZT1pW3JdLGMucGl0Y2g9YSxjLnJhdGU9bixzcGVlY2hTeW50aGVzaXMuc3BlYWsoYyl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19LGFzeW5jIHN1bW1hcml6ZShlKXtyZXR1cm4gZT8ic3RyaW5nIiE9dHlwZW9mIGU/Y29uc29sZS5lcnJvcigiVGV4dCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nISIpOihjaGF0Z3B0LnNlbmQoIlN1bW1hcml6ZSB0aGUgZm9sbG93aW5nIHRleHQ6XG5cbiIrZSksY29uc29sZS5pbmZvKCJTdW1tYXJpemluZyB0ZXh0Li4uIiksYXdhaXQgY2hhdGdwdC5pc0lkbGUoKSxjaGF0Z3B0LmdldENoYXREYXRhKCJhY3RpdmUiLCJtc2ciLCJjaGF0Z3B0IiwibGF0ZXN0IikpOmNvbnNvbGUuZXJyb3IoIlRleHQgKDFzdCkgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIHNvbWUgdGV4dCEiKX0sdG9nZ2xlU2NoZW1lKCl7Y2hhdGdwdC5zZXR0aW5ncy5zY2hlbWUudG9nZ2xlKCl9LGFzeW5jIHRyYW5zbGF0ZShlLHQpe2lmKCFlKXJldHVybiBjb25zb2xlLmVycm9yKCJUZXh0ICgxc3QpIGFyZ3VtZW50IG5vdCBzdXBwbGllZC4gUGFzcyBzb21lIHRleHQhIik7aWYoIXQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIm91dHB1dExhbmcgKDJuZCkgYXJndW1lbnQgbm90IHN1cHBsaWVkLiBQYXNzIGEgbGFuZ3VhZ2UhIik7Zm9yKGxldCBlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylpZigic3RyaW5nIiE9dHlwZW9mIGFyZ3VtZW50c1tlXSlyZXR1cm4gY29uc29sZS5lcnJvcihgQXJndW1lbnQgJHtlKzF9IG11c3QgYmUgYSBzdHJpbmchYCk7cmV0dXJuIGNoYXRncHQuc2VuZCgiVHJhbnNsYXRlIHRoZSBmb2xsb3dpbmcgdGV4dCB0byAiK3QrIi4gT25seSByZXBseSB3aXRoIHRoZSB0cmFuc2xhdGlvbi5cblxuIitlKSxjb25zb2xlLmluZm8oIlRyYW5zbGF0aW5nIHRleHQuLi4iKSxhd2FpdCBjaGF0Z3B0LmlzSWRsZSgpLGNoYXRncHQuZ2V0Q2hhdERhdGEoImFjdGl2ZSIsIm1zZyIsImNoYXRncHQiLCJsYXRlc3QiKX0sdW5taW5pZnkoKXtjaGF0Z3B0LmNvZGUudW5taW5pZnkoKX0sdXVpZHY0KCl7dHJ5e3JldHVybiBjcnlwdG8ucmFuZG9tVVVJRCgpfWNhdGNoKGUpe2xldCBvPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZyxlPT57dmFyIHQ9KG8rd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDEpKVswXS8oTWF0aC5wb3coMiwzMiktMSkqMTYpJTE2fDA7cmV0dXJuIG89TWF0aC5mbG9vcihvLzE2KSwoIngiPT1lP3Q6MyZ0fDgpLnRvU3RyaW5nKDE2KX0pfX0sd3JpdGVDb2RlKCl7Y2hhdGdwdC5jb2RlLndyaXRlKCl9fSxjanNCdG5BY3Rpb25zPShjaGF0Z3B0LnNjaGVtZT17Li4uY2hhdGdwdC5zZXR0aW5ncy5zY2hlbWV9LFsiY2xpY2siLCJnZXQiXSksY2pzVGFyZ2V0VHlwZXM9WyJidXR0b24iLCJsaW5rIiwiZGl2IiwicmVzcG9uc2UiXTtmb3IobGV0IHQgb2YgY2pzQnRuQWN0aW9ucyljaGF0Z3B0W3QrIkJ1dHRvbiJdPWZ1bmN0aW9uKG8pe3ZhciBlPS9eWy4jXS8udGVzdChvKT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKG8pOi9zZW5kL2kudGVzdChvKT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJmb3JtIGJ1dHRvbltjbGFzcyo9Ym90dG9tXSIpOi9zY3JvbGwvaS50ZXN0KG8pP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbltjbGFzcyo9Y3Vyc29yXSIpOigoKT0+e2Zvcih2YXIgZSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKSlpZihlLnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoby50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gZTtmb3IodmFyIHQgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgibmF2IGEiKSlpZih0LnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoby50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gdH0pKCk7aWYoImNsaWNrIiE9dClyZXR1cm4gZTtlLmNsaWNrKCl9O2xldCBjanNGdW5jQWxpYXNlcz1bWyJhY3RBcyIsImFjdGFzIiwiYWN0IiwiYmVjb21lIiwicGVyc29uYSIsInByZW1hZGVQcm9tcHQiLCJwcmVNYWRlUHJvbXB0IiwicHJlUHJvbXB0IiwicHJlcHJvbXB0Iiwicm9sZXBsYXkiLCJyb2xlUGxheSIsInJwIl0sWyJhY3RpdmF0ZUF1dG9SZWZyZXNoIiwiYWN0aXZhdGVBdXRvUmVmcmVzaGVyIiwiYWN0aXZhdGVSZWZyZXNoZXIiLCJhY3RpdmF0ZVNlc3Npb25SZWZyZXNoZXIiLCJhdXRvUmVmcmVzaCIsImF1dG9SZWZyZXNoZXIiLCJhdXRvUmVmcmVzaFNlc3Npb24iLCJyZWZyZXNoZXIiLCJzZXNzaW9uUmVmcmVzaGVyIl0sWyJjb250aW51ZSIsImNvbnRpbnVlQ2hhdCIsImNvbnRpbnVlR2VuZXJhdGluZyIsImNvbnRpbnVlUmVzcG9uc2UiXSxbImRlYWN0aXZhdGVBdXRvUmVmcmVzaCIsImRlYWN0aXZhdGVBdXRvUmVmcmVzaGVyIiwiZGVhY3RpdmF0ZVJlZnJlc2hlciIsImRlYWN0aXZhdGVTZXNzaW9uUmVmcmVzaGVyIl0sWyJkZXRlY3RMYW5ndWFnZSIsImdldExhbmd1YWdlIl0sWyJleGVjdXRlQ29kZSIsImNvZGVFeGVjdXRlIl0sWyJleGlzdHMiLCJpc0F2YWlsYWJsZSIsImlzRXhpc3RlbnQiLCJpc1ByZXNlbnQiXSxbImV4cG9ydENoYXQiLCJjaGF0RXhwb3J0IiwiZXhwb3J0Il0sWyJnZXRGb290ZXJEaXYiLCJnZXRGb290ZXIiXSxbImdldEhlYWRlckRpdiIsImdldEhlYWRlciJdLFsiZ2V0TGFzdFByb21wdCIsImdldExhc3RRdWVyeSIsImdldE15TGFzdE1zZyIsImdldE15TGFzdFF1ZXJ5Il0sWyJnZXRDb250aW51ZUJ1dHRvbiIsImdldENvbnRpbnVlR2VuZXJhdGluZ0J1dHRvbiJdLFsiZ2V0U2Nyb2xsVG9Cb3R0b21CdXR0b24iLCJnZXRTY3JvbGxCdXR0b24iXSxbImdldFN0b3BCdXR0b24iLCJnZXRTdG9wR2VuZXJhdGluZ0J1dHRvbiJdLFsiZ2V0VGV4dGFyZWEiLCJnZXRUZXh0QXJlYSIsImdldENoYXRiYXIiLCJnZXRDaGF0QmFyIiwiZ2V0Q2hhdGJveCIsImdldENoYXRCb3giXSxbImlzRnVsbFNjcmVlbiIsImlzRnVsbHNjcmVlbiIsImlzZnVsbHNjcmVlbiJdLFsiaXNMb2FkZWQiLCJpc2xvYWRlZCJdLFsibG9nT3V0IiwibG9nb3V0IiwibG9nT2ZmIiwibG9nb2ZmIiwic2lnbk91dCIsInNpZ25vdXQiLCJzaWduT2ZmIiwic2lnbm9mZiJdLFsibWluaWZ5IiwiY29kZU1pbmlmeSIsIm1pbmlmeUNvZGUiXSxbIm5ldyIsIm5ld0NoYXQiLCJzdGFydE5ld0NoYXQiXSxbIm9iZnVzY2F0ZSIsImNvZGVPYmZ1c2NhdGUiLCJvYmZ1c2NhdGVDb2RlIl0sWyJwcmludEFsbEZ1bmN0aW9ucyIsInNob3dBbGxGdW5jdGlvbnMiXSxbInJlZmFjdG9yIiwiY29kZVJlZmFjdG9yIiwicmVmYWN0b3JDb2RlIl0sWyJyZWZyZXNoUmVwbHkiLCJyZWdlbmVyYXRlIiwicmVnZW5lcmF0ZVJlcGx5Il0sWyJyZWZyZXNoU2Vzc2lvbiIsInNlc3Npb25SZWZyZXNoIl0sWyJyZW5kZXJIVE1MIiwicmVuZGVySHRtbCIsInJlbmRlckxpbmtzIiwicmVuZGVyVGFncyJdLFsicmV2aWV3Q29kZSIsImNvZGVSZXZpZXciXSxbInNlbmQiLCJzZW5kQ2hhdCIsInNlbmRNc2ciXSxbInNlbmRJbk5ld0NoYXQiLCJzZW5kTmV3Q2hhdCJdLFsic2VudGltZW50IiwiYW5hbHl6ZVNlbnRpbWVudCIsInNlbnRpbWVudEFuYWx5c2lzIl0sWyJzdGFydE5ld0NoYXQiLCJuZXciLCJuZXdDaGF0Il0sWyJzdG9wIiwic3RvcENoYXQiLCJzdG9wR2VuZXJhdGluZyIsInN0b3BSZXNwb25zZSJdLFsic3VnZ2VzdCIsInN1Z2dlc3Rpb24iLCJyZWNvbW1lbmQiXSxbInRvZ2dsZUF1dG9SZWZyZXNoIiwidG9nZ2xlQXV0b1JlZnJlc2hlciIsInRvZ2dsZVJlZnJlc2hlciIsInRvZ2dsZVNlc3Npb25SZWZyZXNoZXIiXSxbInRvZ2dsZVNjaGVtZSIsInRvZ2dsZU1vZGUiXSxbInRyYW5zbGF0ZSIsInRyYW5zbGF0aW9uIiwidHJhbnNsYXRvciJdLFsidW5taW5pZnkiLCJ1bm1pbmlmeUNvZGUiLCJjb2RlVW5taW5pZnkiXSxbIndyaXRlQ29kZSIsImNvZGVXcml0ZSJdXSxjanNGdW5jU3lub255bXM9W1siYWNjb3VudCIsImFjY3QiXSxbImFjdGl2YXRlIiwidHVybk9uIl0sWyJhbmFseXplIiwiY2hlY2siLCJldmFsdWF0ZSIsInJldmlldyJdLFsiYXNrIiwic2VuZCIsInN1Ym1pdCJdLFsiYnV0dG9uIiwiYnRuIl0sWyJjb250aW51ZSIsInJlc3VtZSJdLFsiY2hhdHMiLCJoaXN0b3J5Il0sWyJjaGF0IiwiY29udmVyc2F0aW9uIiwiY29udm8iXSxbImNsZWFyIiwiZGVsZXRlIiwicmVtb3ZlIl0sWyJkYXRhIiwiZGV0YWlscyJdLFsiZGVhY3RpdmF0ZSIsImRlQWN0aXZhdGUiLCJ0dXJuT2ZmIl0sWyJleGVjdXRlIiwiaW50ZXJwcmV0IiwiaW50ZXJwcmV0ZXIiLCJydW4iXSxbImZpcmVmb3giLCJmZiJdLFsiZ2VuZXJhdGluZyIsImdlbmVyYXRpb24iXSxbIm1pbmlmeSIsInVnbGlmeSJdLFsicmVmYWN0b3IiLCJyZXdyaXRlIl0sWyJyZWdlbmVyYXRlIiwicmVnZW4iXSxbInJlbmRlciIsInBhcnNlIl0sWyJyZXBseSIsInJlc3BvbnNlIl0sWyJzZW50aW1lbnQiLCJhdHRpdHVkZSIsImVtb3Rpb24iLCJmZWVsaW5nIiwib3BpbmlvbiIsInBlcmNlcHRpb24iXSxbInNwZWFrIiwic2F5Iiwic3BlZWNoIiwidGFsayIsInR0cyJdLFsic3VtbWFyaXplIiwidGxkciJdLFsidW5taW5pZnkiLCJiZWF1dGlmeSIsInByZXR0aWZ5IiwicHJldHR5UHJpbnQiXV0sY2FtZWxDYXNlcj1lPT5lLm1hcCgoZSx0KT0+MD09PXR8fCJzIj09ZT9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSkuam9pbigiIik7Zm9yKGxldCByIGluIGNoYXRncHQpe2ZvcihsZXQgbyBvZiBjanNGdW5jQWxpYXNlcylpZihvLmluY2x1ZGVzKHIpKWlmKG8uc29tZShlPT5lLmluY2x1ZGVzKCIuIikpKXtsZXQgdD1vLmZpbmQoZT0+ZS5pbmNsdWRlcygiLiIpKS5zcGxpdCgiLiIpWzFdO2ZvcihsZXQgZSBvZiBvKS9eKFx3KykvLmV4ZWMoZSlbMV0hPT1yJiYoY2hhdGdwdFtlXT1jaGF0Z3B0W3JdW3RdKX1lbHNlIGZvcihsZXQgZSBvZiBvKWUhPT1yJiYoY2hhdGdwdFtlXT1jaGF0Z3B0W3JdKTtkb3t2YXIgbmV3RnVuY3Rpb25zQ3JlYXRlZD0hMTtmb3IobGV0IGEgaW4gY2hhdGdwdClpZigiZnVuY3Rpb24iPT10eXBlb2YgY2hhdGdwdFthXSl7bGV0IHI9YS5zcGxpdCgvKD89W0EtWnNdKS8pO2ZvcihsZXQgbyBvZiByKXtsZXQgZT1bXS5jb25jYXQoLi4uY2pzRnVuY1N5bm9ueW1zLmZpbHRlcihlPT5lLmluY2x1ZGVzKG8udG9Mb3dlckNhc2UoKSkpLm1hcChlPT5lLmZpbHRlcihlPT5lIT09by50b0xvd2VyQ2FzZSgpKSkpO2ZvcihsZXQgdCBvZiBlKXtsZXQgZT1jYW1lbENhc2VyKHIubWFwKGU9PmU9PW8/dDplKSk7Y2hhdGdwdFtlXXx8KGNoYXRncHRbZV09Y2hhdGdwdFthXSxuZXdGdW5jdGlvbnNDcmVhdGVkPSEwKX19fX13aGlsZShuZXdGdW5jdGlvbnNDcmVhdGVkKX1sZXQgY29uc29sZVByZWZpeD0i8J+kliBjaGF0Z3B0LmpzID4+ICIsb2dFcnJvcj1jb25zb2xlLmVycm9yLG9nSW5mbz1jb25zb2xlLmluZm87Y29uc29sZS5lcnJvcj0oLi4uZSk9PntlWzBdLnN0YXJ0c1dpdGgoY29uc29sZVByZWZpeCk/b2dFcnJvciguLi5lKTpvZ0Vycm9yKGNvbnNvbGVQcmVmaXgrZVswXSwuLi5lLnNsaWNlKDEpKX0sY29uc29sZS5pbmZvPWU9PntlLnN0YXJ0c1dpdGgoY29uc29sZVByZWZpeCk/b2dJbmZvKGUpOm9nSW5mbyhjb25zb2xlUHJlZml4K2UpfTt0cnl7d2luZG93LmNoYXRncHQ9Y2hhdGdwdH1jYXRjaChlKXt9dHJ5e21vZHVsZS5leHBvcnRzPWNoYXRncHR9Y2F0Y2goZSl7fQ=="},{"meta":{"name":"modals.js","url":"https://cdn.jsdelivr.net/gh/adamlui/chatgpt-infinity@7c2b7d0e4a7dab121c925da7d8bf9024ea0b5b00/chrome/extension/components/modals.js#sha256-eZNOwrpv72HKnmw32fXAIfQSdB8S/DN+HRyRoquhG6Q=","ts":1764084296592,"mimetype":"text/javascript"},"source":"Ly8gUmVxdWlyZXMgbGliL2NoYXRncHQuanMgKyBsaWIvZG9tLmpzCgp3aW5kb3cubW9kYWxzID0gewogICAgc3RhY2s6IFtdLCAvLyBvZiB0eXBlcyBvZiB1bmRpc21pc3NlZCBtb2RhbHMKICAgIGdldCBjbGFzcygpIHsgcmV0dXJuIGAke3RoaXMuaW1wb3J0cy5hcHAuY3NzUHJlZml4fS1tb2RhbGAgfSwKCiAgICBpbXBvcnRzOiB7CiAgICAgICAgaW1wb3J0KGRlcHMpIHsgLy8geyBhcHAsIGVudiwgdXBkYXRlQ2hlY2sgKHVzZXJzY3JpcHQgb25seSkgfQogICAgICAgICAgICBmb3IgKGNvbnN0IGRlcE5hbWUgaW4gZGVwcykgdGhpc1tkZXBOYW1lXSA9IGRlcHNbZGVwTmFtZV0gfQogICAgfSwKCiAgICBnZXQgcnVudGltZSgpIHsKICAgICAgICBpZiAodHlwZW9mIEdNX2luZm8gIT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnR3JlYXNlbW9ua2V5IHVzZXJzY3JpcHQnCiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNocm9tZSAhPSAndW5kZWZpbmVkJyAmJiBjaHJvbWUucnVudGltZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGJyb3dzZXIgIT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnRmlyZWZveCBhZGQtb24nCiAgICAgICAgICAgIGVsc2UgcmV0dXJuIGBDaHJvbWl1bSAkeyBuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCdFZGcnKSA/ICdFZGdlIGFkZC1vbicgOiAnZXh0ZW5zaW9uJyB9YAogICAgICAgIH0gZWxzZSByZXR1cm4gJ1Vua25vd24nCiAgICB9LAoKICAgIGdldE1zZyhrZXkpIHsKICAgICAgICByZXR1cm4gL0Nocm9taXVtfEZpcmVmb3gvLnRlc3QodGhpcy5ydW50aW1lKSA/IGNocm9tZS5pMThuLmdldE1lc3NhZ2Uoa2V5KQogICAgICAgICAgICA6IHRoaXMuaW1wb3J0cy5hcHAubXNnc1trZXldIC8vIGFzc2lnbmVkIGZyb20gbW9kYWxzLmltcG9ydHMuaW1wb3J0KHsgYXBwIH0pIGluIHVzZXJzY3JpcHQKICAgIH0sCgogICAgYWxlcnQodGl0bGUgPSAnJywgbXNnID0gJycsIGJ0bnMgPSAnJywgY2hlY2tib3ggPSAnJywgd2lkdGggPSAnJykgeyAvLyBnZW5lcmljIG9uZSBmcm9tIGNoYXRncHQuYWxlcnQoKQogICAgICAgIGNvbnN0IGFsZXJ0SUQgPSBjaGF0Z3B0LmFsZXJ0KHRpdGxlLCBtc2csIGJ0bnMsIGNoZWNrYm94LCB3aWR0aCksCiAgICAgICAgICAgICAgYWxlcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhbGVydElEKS5maXJzdENoaWxkCiAgICAgICAgdGhpcy5pbml0KGFsZXJ0KSAvLyBhZGQgY2xhc3NlcyArIHN0YXJyeSBiZwogICAgICAgIHJldHVybiBhbGVydAogICAgfSwKCiAgICBvcGVuKG1vZGFsVHlwZSwgbW9kYWxTdWJUeXBlKSB7CiAgICAgICAgY29uc3QgbW9kYWwgPSBtb2RhbFN1YlR5cGUgPyB0aGlzW21vZGFsVHlwZV1bbW9kYWxTdWJUeXBlXSgpIDogdGhpc1ttb2RhbFR5cGVdKCkgLy8gc2hvdyBtb2RhbAogICAgICAgIGlmICghbW9kYWwpIHJldHVybiAvLyBzaW5jZSBubyBkaXYgcmV0dXJuZWQKICAgICAgICB0aGlzLnN0YWNrLnVuc2hpZnQobW9kYWxTdWJUeXBlID8gYCR7bW9kYWxUeXBlfV8ke21vZGFsU3ViVHlwZX1gIDogbW9kYWxUeXBlKSAvLyBhZGQgdG8gc3RhY2sKICAgICAgICB0aGlzLmluaXQobW9kYWwpIC8vIGFkZCBjbGFzc2VzICsgc3RhcnJ5IGJnCiAgICAgICAgdGhpcy5vYnNlcnZlUmVtb3ZhbChtb2RhbCwgbW9kYWxUeXBlLCBtb2RhbFN1YlR5cGUpIC8vIHRvIG1haW50YWluIHN0YWNrIGZvciBwcm9wZXIgbmF2CiAgICB9LAoKICAgIGluaXQobW9kYWwpIHsKICAgICAgICBpZiAoIXRoaXMuc3R5bGVzKSB0aGlzLnN0eWxpemUoKSAvLyB0byBpbml0L2FwcGVuZCBzdHlsZXNoZWV0CiAgICAgICAgbW9kYWwuY2xhc3NMaXN0LmFkZCgnbm8tdXNlci1zZWxlY3QnLCB0aGlzLmNsYXNzKSA7IG1vZGFsLnBhcmVudE5vZGUuY2xhc3NMaXN0LmFkZChgJHt0aGlzLmNsYXNzfS1iZ2ApCiAgICAgICAgZG9tLmZpbGxTdGFycnlCRyhtb2RhbCkgLy8gYWRkIHN0YXJyeSBiZwogICAgfSwKCiAgICBzdHlsaXplKCkgewogICAgICAgIGlmICghdGhpcy5zdHlsZXMpIHsKICAgICAgICAgICAgdGhpcy5zdHlsZXMgPSBkb20uY3JlYXRlLmVsZW0oJ3N0eWxlJykgOyB0aGlzLnN0eWxlcy5pZCA9IGAke3RoaXMuY2xhc3N9LXN0eWxlc2AKICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmQodGhpcy5zdHlsZXMpCiAgICAgICAgfQogICAgICAgIHRoaXMuc3R5bGVzLmlubmVyVGV4dCA9ICgKICAgICAgICAgICAgYC5uby11c2VyLXNlbGVjdCB7CiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZSA7IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgOyAtbW96LXVzZXItc2VsZWN0OiBub25lIDsgLW1zLXVzZXItc2VsZWN0OiBub25lIH1gCiAgICAgICAgICArIGAuJHt0aGlzLmNsYXNzfSB7YCAvLyBtb2RhbHMKICAgICAgICAgICAgICArICdmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBSb2JvdG8sJwogICAgICAgICAgICAgICAgICArICdPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIEhlbHZldGljYSBOZXVlLCBzYW5zLXNlcmlmIDsnCiAgICAgICAgICAgICAgKyAncGFkZGluZzogMjBweCAyNXB4IDI0cHggMjVweCAhaW1wb3J0YW50IDsgZm9udC1zaXplOiAyMHB4IDsnCiAgICAgICAgICAgICAgKyBgY29sb3I6ICR7IHRoaXMuaW1wb3J0cy5lbnYudWkuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnYmxhY2snIH0gIWltcG9ydGFudCA7YAogICAgICAgICAgICAgICsgYGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICR7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1wb3J0cy5lbnYudWkuc2NoZW1lID09ICdkYXJrJyA/ICcjOTlhOGE2IC0yMDBweCwgYmxhY2sgMjAwcHgnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyNiNmViZmYgLTI5NnB4LCB3aGl0ZSAxNzFweCcgfSkgfWAKICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9IFtjbGFzcyo9bW9kYWwtY2xvc2UtYnRuXSB7YAogICAgICAgICAgICAgICsgJ3Bvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50IDsgZmxvYXQ6IHJpZ2h0IDsgdG9wOiAxNHB4ICFpbXBvcnRhbnQgOyByaWdodDogMTZweCAhaW1wb3J0YW50IDsnCiAgICAgICAgICAgICAgKyAnY3Vyc29yOiBwb2ludGVyIDsgd2lkdGg6IDMzcHggOyBoZWlnaHQ6IDMzcHggOyBib3JkZXItcmFkaXVzOiAyMHB4IH0nCiAgICAgICAgICArIGAuJHt0aGlzLmNsYXNzfSBbY2xhc3MqPW1vZGFsLWNsb3NlLWJ0bl0gc3ZnIHsgaGVpZ2h0OiAxMHB4IH1gCiAgICAgICAgICArIGAuJHt0aGlzLmNsYXNzfSBbY2xhc3MqPW1vZGFsLWNsb3NlLWJ0bl0gcGF0aCB7YAogICAgICAgICAgICAgICsgYCR7IHRoaXMuaW1wb3J0cy5lbnYudWkuc2NoZW1lID09ICdkYXJrJyA/ICdzdHJva2U6IHdoaXRlIDsgZmlsbDogd2hpdGUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnc3Ryb2tlOiAjOWY5ZjlmIDsgZmlsbDogIzlmOWY5ZicgfX1gCiAgICAgICAgICArICggdGhpcy5pbXBvcnRzLmVudi51aS5zY2hlbWUgPT0gJ2RhcmsnID8gIC8vIGludmVydCBkYXJrIG1vZGUgaG92ZXIgcGF0aHMKICAgICAgICAgICAgICAgIGAuJHt0aGlzLmNsYXNzfSBbY2xhc3MqPW1vZGFsLWNsb3NlLWJ0bl06aG92ZXIgcGF0aCB7IHN0cm9rZTogYmxhY2sgOyBmaWxsOiBibGFjayB9YCA6ICcnICkKICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9IFtjbGFzcyo9bW9kYWwtY2xvc2UtYnRuXTpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgfWAgLy8gaG92ZXIgdW5kZXJsYXkKICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9IFtjbGFzcyo9bW9kYWwtY2xvc2UtYnRuXSBzdmcgeyBtYXJnaW46IDExLjVweCB9YCAvLyBjZW50ZXIgU1ZHIGZvciBob3ZlciB1bmRlcmxheQogICAgICAgICAgKyBgLiR7dGhpcy5jbGFzc30gYSB7YAogICAgICAgICAgICAgICsgYGNvbG9yOiAjJHsgdGhpcy5pbXBvcnRzLmVudi51aS5zY2hlbWUgPT0gJ2RhcmsnID8gJzAwY2ZmZicgOiAnMWU5ZWJiJyB9ICFpbXBvcnRhbnQgfWAKICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9IGgyIHsgZm9udC13ZWlnaHQ6IGJvbGQgfWAKICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9IGJ1dHRvbiB7YAogICAgICAgICAgICAgICsgJy0tYnRuLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMXMgZWFzZS1pbi1vdXQgOycKICAgICAgICAgICAgICArICdmb250LXNpemU6IDE0cHggOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlIDsnIC8vIHNocmluay91cHBlcmNhc2UgbGFiZWxzCiAgICAgICAgICAgICAgKyAnYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50IDsnIC8vIHNxdWFyZSBib3JkZXJzCiAgICAgICAgICAgICAgKyAndHJhbnNpdGlvbjogdmFyKC0tYnRuLXRyYW5zaXRpb24pIDsnIC8vIHNtb290aGVuIGhvdmVyIGZ4CiAgICAgICAgICAgICAgICAgICsgJy13ZWJraXQtdHJhbnNpdGlvbjogdmFyKC0tYnRuLXRyYW5zaXRpb24pIDsgLW1vei10cmFuc2l0aW9uOiB2YXIoLS1idG4tdHJhbnNpdGlvbikgOycKICAgICAgICAgICAgICAgICAgKyAnLW8tdHJhbnNpdGlvbjogdmFyKC0tYnRuLXRyYW5zaXRpb24pIDsgLW1zLXRyYW5zaXRpb246IHZhcigtLWJ0bi10cmFuc2l0aW9uKSA7JwogICAgICAgICAgICAgICsgJ2N1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50IDsnIC8vIGFkZCBmaW5nZXIgY3Vyc29yCiAgICAgICAgICAgICAgKyBgYm9yZGVyOiAxcHggc29saWQgJHsgdGhpcy5pbXBvcnRzLmVudi51aS5zY2hlbWUgPT0gJ2RhcmsnID8gJ3doaXRlJyA6ICdibGFjaycgfSAhaW1wb3J0YW50IDtgCiAgICAgICAgICAgICAgKyAncGFkZGluZzogOHB4ICFpbXBvcnRhbnQgOyBtaW4td2lkdGg6IDEwMnB4IH0nIC8vIHJlc2l6ZQogICAgICAgICAgKyBgLiR7dGhpcy5jbGFzc30gYnV0dG9uOmhvdmVyIHtgIC8vIGFkZCB6b29tLCByZS1zY2hlbWUKICAgICAgICAgICAgICArICd0cmFuc2Zvcm06IHNjYWxlKDEuMDU1KSA7IGNvbG9yOiBibGFjayAhaW1wb3J0YW50IDsnCiAgICAgICAgICAgICAgKyBgYmFja2dyb3VuZC1jb2xvcjogIyR7IHRoaXMuaW1wb3J0cy5lbnYudWkuc2NoZW1lID09ICdkYXJrJyA/ICcwMGNmZmYnIDogJzljZGFmZicgfSAhaW1wb3J0YW50IH1gCiAgICAgICAgICArICggIXRoaXMuaW1wb3J0cy5lbnYuYnJvd3Nlci5pc01vYmlsZSA/CiAgICAgICAgICAgICAgICBgLiR7dGhpcy5jbGFzc30gLm1vZGFsLWJ1dHRvbnMgeyBtYXJnaW4tbGVmdDogLTEzcHggIWltcG9ydGFudCB9YCA6ICcnICkKICAgICAgICAgICsgYC5hYm91dC1lbSB7IGNvbG9yOiAkeyB0aGlzLmltcG9ydHMuZW52LnVpLnNjaGVtZSA9PSAnZGFyaycgPyAnd2hpdGUnIDogJ2dyZWVuJyB9ICFpbXBvcnRhbnQgfWAKICAgICAgICApCiAgICB9LAoKICAgIG9ic2VydmVSZW1vdmFsKG1vZGFsLCBtb2RhbFR5cGUsIG1vZGFsU3ViVHlwZSkgeyAvLyB0byBtYWludGFpbiBzdGFjayBmb3IgcHJvcGVyIG5hdgogICAgICAgIGNvbnN0IG1vZGFsQkcgPSBtb2RhbC5wYXJlbnROb2RlCiAgICAgICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKFttdXRhdGlvbl0sIG9icykgPT4gewogICAgICAgICAgICBtdXRhdGlvbi5yZW1vdmVkTm9kZXMuZm9yRWFjaChyZW1vdmVkTm9kZSA9PiB7IGlmIChyZW1vdmVkTm9kZSA9PSBtb2RhbEJHKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFja1swXS5pbmNsdWRlcyhtb2RhbFN1YlR5cGUgfHwgbW9kYWxUeXBlKSkgeyAvLyBuZXcgbW9kYWwgbm90IGxhdW5jaGVkIHNvIG5hdiBiYWNrCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5zaGlmdCgpIC8vIHJlbW92ZSB0aGlzIG1vZGFsIHR5cGUgZnJvbSBzdGFjayAxc3QKICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2TW9kYWxUeXBlID0gdGhpcy5zdGFja1swXQogICAgICAgICAgICAgICAgICAgIGlmIChwcmV2TW9kYWxUeXBlKSB7IC8vIG9wZW4gaXQKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5zaGlmdCgpIC8vIHJlbW92ZSB0eXBlIGZyb20gc3RhY2sgc2luY2UgcmUtYWRkZWQgb24gb3BlbgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4ocHJldk1vZGFsVHlwZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBvYnMuZGlzY29ubmVjdCgpCiAgICAgICAgICAgIH19KQogICAgICAgIH0pLm9ic2VydmUobW9kYWxCRy5wYXJlbnROb2RlLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KQogICAgfSwKCiAgICBhYm91dCgpIHsKCiAgICAgICAgLy8gSW5pdCBidXR0b25zCiAgICAgICAgY29uc3QgbW9kYWxCdG5zID0gWwogICAgICAgICAgICBmdW5jdGlvbiBnZXRTdXBwb3J0KCl7fSwKICAgICAgICAgICAgZnVuY3Rpb24gcmF0ZVVzKCkgeyBtb2RhbHMub3BlbignZmVlZGJhY2snKSB9LAogICAgICAgICAgICBmdW5jdGlvbiBtb3JlQUlleHRlbnNpb25zKCl7fQogICAgICAgIF0KICAgICAgICBpZiAodGhpcy5ydW50aW1lLmluY2x1ZGVzKCdHcmVhc2Vtb25rZXknKSkgbW9kYWxCdG5zLnVuc2hpZnQoCiAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yVXBkYXRlcygpeyBtb2RhbHMuaW1wb3J0cy51cGRhdGVDaGVjaygpIH0pCgogICAgICAgIC8vIFNob3cgbW9kYWwKICAgICAgICBjb25zdCBhYm91dE1vZGFsID0gbW9kYWxzLmFsZXJ0KAogICAgICAgICAgICBgJHt0aGlzLmltcG9ydHMuYXBwLnN5bWJvbH0gJHt0aGlzLmdldE1zZygnYXBwTmFtZScpfWAsIC8vIHRpdGxlCiAgICAgICAgICAgIGDwn6egICR7dGhpcy5nZXRNc2coJ2Fib3V0X2F1dGhvcicpfTogYCAvLyBtc2cKICAgICAgICAgICAgICAgICsgYDxhIGhyZWY9IiR7dGhpcy5pbXBvcnRzLmFwcC5hdXRob3IudXJsfSI+JHt0aGlzLmdldE1zZygnYXBwQXV0aG9yJyl9PC9hPiAke3RoaXMuZ2V0TXNnKCdhYm91dF9hbmQnKX1gCiAgICAgICAgICAgICAgICAgICAgKyBgIDxhIGhyZWY9IiR7dGhpcy5pbXBvcnRzLmFwcC51cmxzLmNvbnRyaWJ1dG9yc30iPiR7dGhpcy5nZXRNc2coJ2Fib3V0X2NvbnRyaWJ1dG9ycycpfTwvYT5cbmAKICAgICAgICAgICAgKyBg8J+Pt++4jyAke3RoaXMuZ2V0TXNnKCdhYm91dF92ZXJzaW9uJyl9OiA8c3BhbiBjbGFzcz0iYWJvdXQtZW0iPiR7dGhpcy5pbXBvcnRzLmFwcC52ZXJzaW9ufTwvc3Bhbj5cbmAKICAgICAgICAgICAgKyBg8J+TnCAke3RoaXMuZ2V0TXNnKCdhYm91dF9vcGVuU291cmNlQ29kZScpfTogYAogICAgICAgICAgICAgICAgKyBgPGEgaHJlZj0iJHt0aGlzLmltcG9ydHMuYXBwLnVybHMuZ2l0SHVifSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9wZW5lciI+YAogICAgICAgICAgICAgICAgICAgICsgdGhpcy5pbXBvcnRzLmFwcC51cmxzLmdpdEh1YiArICc8L2E+XG4nCiAgICAgICAgICAgICsgYOKaoSAke3RoaXMuZ2V0TXNnKCdhYm91dF9wb3dlcmVkQnknKX06IGAKICAgICAgICAgICAgICAgICsgYDxhIGhyZWY9IiR7dGhpcy5pbXBvcnRzLmFwcC51cmxzLmNoYXRncHRKU30iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj5jaGF0Z3B0LmpzPC9hPmAKICAgICAgICAgICAgICAgICAgICArIGAgdiR7dGhpcy5pbXBvcnRzLmFwcC5jaGF0Z3B0SlN2ZXJ9YCwKICAgICAgICAgICAgbW9kYWxCdG5zLCAnJywgNjg2CiAgICAgICAgKQoKICAgICAgICAvLyBGb3JtYXQgdGV4dAogICAgICAgIGFib3V0TW9kYWwucXVlcnlTZWxlY3RvcignaDInKS5zdHlsZS5jc3NUZXh0ID0gKAogICAgICAgICAgICAndGV4dC1hbGlnbjogY2VudGVyIDsgZm9udC1zaXplOiA1MXB4IDsgbGluZS1oZWlnaHQ6IDQ2cHggOyBwYWRkaW5nOiAxNXB4IDAnICkKICAgICAgICBhYm91dE1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ3AnKS5zdHlsZS5jc3NUZXh0ID0gKAogICAgICAgICAgICAndGV4dC1hbGlnbjogY2VudGVyIDsgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmUgOycKICAgICAgICAgICsgYG1hcmdpbjogJHsgdGhpcy5pbXBvcnRzLmVudi5icm93c2VyLmlzUG9ydHJhaXQgPyAnNnB4IDAgLTE2cHgnIDogJzNweCAwIDI5cHgnIH1gICkKCiAgICAgICAgLy8gSGFjayBidXR0b25zCiAgICAgICAgYWJvdXRNb2RhbC5xdWVyeVNlbGVjdG9yKCcubW9kYWwtYnV0dG9ucycpLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2NlbnRlcicKICAgICAgICBhYm91dE1vZGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpLmZvckVhY2goYnRuID0+IHsKICAgICAgICAgICAgYnRuLnN0eWxlLmNzc1RleHQgPSAnbWluLXdpZHRoOiAxMzZweCA7IHRleHQtYWxpZ246IGNlbnRlciA7JwogICAgICAgICAgICAgICAgKyBgaGVpZ2h0OiAkeyB0aGlzLnJ1bnRpbWUuaW5jbHVkZXMoJ0dyZWFzZW1vbmtleScpID8gNTggOiA1NSB9cHhgCgogICAgICAgICAgICAvLyBSZXBsYWNlIGxpbmsgYnV0dG9ucyB3LyBjbG9uZXMgdGhhdCBkb24ndCBkaXNtaXNzIG1vZGFsCiAgICAgICAgICAgIGlmICgvc3VwcG9ydHxleHRlbnNpb25zL2kudGVzdChidG4udGV4dENvbnRlbnQpKSB7CiAgICAgICAgICAgICAgICBjb25zdCBidG5DbG9uZSA9IGJ0bi5jbG9uZU5vZGUodHJ1ZSkKICAgICAgICAgICAgICAgIGJ0bi5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChidG5DbG9uZSwgYnRuKSA7IGJ0biA9IGJ0bkNsb25lCiAgICAgICAgICAgICAgICBidG4ub25jbGljayA9ICgpID0+IHRoaXMuc2FmZVdpbk9wZW4odGhpcy5pbXBvcnRzLmFwcC51cmxzWwogICAgICAgICAgICAgICAgICAgIGJ0bi50ZXh0Q29udGVudC5pbmNsdWRlcyh0aGlzLmdldE1zZygnYnRuTGFiZWxfZ2V0U3VwcG9ydCcpKSA/ICdzdXBwb3J0JyA6ICdyZWxhdGVkRXh0ZW5zaW9ucycgXSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gUHJlcGVuZCBlbW9qaSArIGxvY2FsaXplIGxhYmVscwogICAgICAgICAgICBpZiAoL3VwZGF0ZXMvaS50ZXN0KGJ0bi50ZXh0Q29udGVudCkpCiAgICAgICAgICAgICAgICBidG4udGV4dENvbnRlbnQgPSBg8J+agCAke3RoaXMuZ2V0TXNnKCdidG5MYWJlbF9jaGVja0ZvclVwZGF0ZXMnKX1gCiAgICAgICAgICAgIGVsc2UgaWYgKC9zdXBwb3J0L2kudGVzdChidG4udGV4dENvbnRlbnQpKQogICAgICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gYPCfp6AgJHt0aGlzLmdldE1zZygnYnRuTGFiZWxfZ2V0U3VwcG9ydCcpfWAKICAgICAgICAgICAgZWxzZSBpZiAoL3JhdGUvaS50ZXN0KGJ0bi50ZXh0Q29udGVudCkpCiAgICAgICAgICAgICAgICBidG4udGV4dENvbnRlbnQgPSBg4q2QICR7dGhpcy5nZXRNc2coJ2J0bkxhYmVsX3JhdGVVcycpfWAKICAgICAgICAgICAgZWxzZSBpZiAoL2V4dGVuc2lvbnMvaS50ZXN0KGJ0bi50ZXh0Q29udGVudCkpCiAgICAgICAgICAgICAgICBidG4udGV4dENvbnRlbnQgPSBg8J+kliAke3RoaXMuZ2V0TXNnKCdidG5MYWJlbF9tb3JlQUlleHRlbnNpb25zJyl9YAoKICAgICAgICAgICAgLy8gSGlkZSBEaXNtaXNzIGJ1dHRvbgogICAgICAgICAgICBlbHNlIGJ0bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnCiAgICAgICAgfSkKCiAgICAgICAgcmV0dXJuIGFib3V0TW9kYWwKICAgIH0sCgogICAgZG9uYXRlKCkgewoKICAgICAgICAvLyBTaG93IG1vZGFsCiAgICAgICAgY29uc3QgZG9uYXRlTW9kYWwgPSBtb2RhbHMuYWxlcnQoCiAgICAgICAgICAgIGDwn5KWICR7dGhpcy5nZXRNc2coJ2FsZXJ0X3Nob3dZb3VyU3VwcG9ydCcpfWAsIC8vIHRpdGxlCiAgICAgICAgICAgICAgICBgPHA+JHt0aGlzLmdldE1zZygnYXBwTmFtZScpfSAke3RoaXMuZ2V0TXNnKCdhbGVydF9pc09TUycpfS48L3A+YCAvLyBtc2cKICAgICAgICAgICAgICAgICsgYDxwPiR7dGhpcy5nZXRNc2coJ2FsZXJ0X2Rlc3BpdGVBZmZsaWN0aW9uJyl9IGAKICAgICAgICAgICAgICAgICAgICArICc8YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTG9uZ19DT1ZJRCI+JwogICAgICAgICAgICAgICAgICAgICAgICArIGAke3RoaXMuZ2V0TXNnKCdhbGVydF9sb25nQ09WSUQnKX08L2E+IGAKICAgICAgICAgICAgICAgICAgICArIGAke3RoaXMuZ2V0TXNnKCdhbGVydF9zaW5jZTIwMjAnKX0sICR7dGhpcy5nZXRNc2coJ2FsZXJ0X2J5RG9uYXRpbmdSZXN1bHRzJyl9LjwvcD5gCiAgICAgICAgICAgICAgICArIGA8cD4ke3RoaXMuZ2V0TXNnKCdhbGVydF95b3VyQ29udHJpYicpfSwgPGI+JHt0aGlzLmdldE1zZygnYWxlcnRfbm9NYXR0ZXJTaXplJyl9PC9iPiwgYAogICAgICAgICAgICAgICAgICAgICsgYCR7dGhpcy5nZXRNc2coJ2FsZXJ0X2RpcmVjdGx5U3VwcG9ydHMnKX0uPC9wPmAKICAgICAgICAgICAgICAgICsgYDxwPiR7dGhpcy5nZXRNc2coJ2FsZXJ0X3R5Rm9yU3VwcG9ydCcpfSE8L3A+YAogICAgICAgICAgICAgICAgKyAnPGltZyBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9hZGFtbHVpL2FkYW1sdWkvaW1hZ2VzL3NpZ2dpZS8nCiAgICAgICAgICAgICAgICAgICAgKyBgJHsgdGhpcy5pbXBvcnRzLmVudi51aS5zY2hlbWUgPT0gJ2RhcmsnID8gJ3doaXRlJyA6ICdibGFjaycgfS5wbmciIGAKICAgICAgICAgICAgICAgICAgICArICdzdHlsZT0iaGVpZ2h0OiA1NHB4IDsgbWFyZ2luOiA1cHggMCAtMnB4IDVweCI+PC9pbWc+JwogICAgICAgICAgICAgICAgKyBgPHA+4oCUPGI+PGEgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGhyZWY9IiR7dGhpcy5pbXBvcnRzLmFwcC5hdXRob3IudXJsfSI+YAogICAgICAgICAgICAgICAgICAgICsgYCR7dGhpcy5nZXRNc2coJ2FwcEF1dGhvcicpfTwvYT48L2I+LCAke3RoaXMuZ2V0TXNnKCdhYm91dF9hdXRob3InKS50b0xvd2VyQ2FzZSgpfTwvcD5gLAogICAgICAgICAgICBbIC8vIGJ1dHRvbnMKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHBheXBhbCgpe30sCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBnaXRodWJTcG9uc29ycygpe30sCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBjYXNoQXBwKCl7fSwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHJhdGVVcygpIHsgbW9kYWxzLm9wZW4oJ2ZlZWRiYWNrJykgfQogICAgICAgICAgICBdLCAnJywgNDc4IC8vIG1vZGFsIHdpZHRoCiAgICAgICAgKQoKICAgICAgICAvLyBGb3JtYXQgdGV4dAogICAgICAgIGRvbmF0ZU1vZGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJ3AnKS5mb3JFYWNoKHAgPT4gLy8gdi1wYWQgdGV4dCwgc2hyaW5rIGxpbmUgaGVpZ2h0CiAgICAgICAgICAgIHAuc3R5bGUuY3NzVGV4dCA9ICdwYWRkaW5nOiA4cHggMCA7IGxpbmUtaGVpZ2h0OiAyMHB4JykKCiAgICAgICAgLy8gSGFjayBidXR0b25zCiAgICAgICAgY29uc3QgYnRucyA9IGRvbmF0ZU1vZGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpCiAgICAgICAgYnRucy5mb3JFYWNoKChidG4sIGlkeCkgPT4gewoKICAgICAgICAgICAgLy8gUmVwbGFjZSBsaW5rIGJ1dHRvbnMgdy8gY2xvbmVzIHRoYXQgZG9uJ3QgZGlzbWlzcyBtb2RhbAogICAgICAgICAgICBpZiAoIS9kaXNtaXNzfHJhdGUvaS50ZXN0KGJ0bi50ZXh0Q29udGVudCkpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGJ0bkNsb25lID0gYnRuLmNsb25lTm9kZSh0cnVlKQogICAgICAgICAgICAgICAgYnRuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGJ0bkNsb25lLCBidG4pIDsgYnRuID0gYnRuQ2xvbmUKICAgICAgICAgICAgICAgIGJ0bi5vbmNsaWNrID0gKCkgPT4gdGhpcy5zYWZlV2luT3Blbih0aGlzLmltcG9ydHMuYXBwLnVybHMuZG9uYXRlWwogICAgICAgICAgICAgICAgICAgIGJ0bi50ZXh0Q29udGVudCA9PSAnQ2FzaCBBcHAnID8gJ2Nhc2hBcHAnCiAgICAgICAgICAgICAgICAgIDogYnRuLnRleHRDb250ZW50ID09ICdHaXRodWIgU3BvbnNvcnMnID8gJ2dpdEh1YicKICAgICAgICAgICAgICAgICAgOiAncGF5UGFsJwogICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gRm9ybWF0IGJ1dHRvbnMKICAgICAgICAgICAgaWYgKGlkeCA9PSAwKSBidG4uc3R5bGUuZGlzcGxheSA9ICdub25lJyAvLyBoaWRlIERpc21pc3MgYnV0dG9uCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYnRuLnN0eWxlLmNzc1RleHQgPSAncGFkZGluZzogOHB4IDZweCAhaW1wb3J0YW50IDsgbWFyZ2luLXRvcDogLTE0cHggOycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJyB3aWR0aDogMTA3cHggOyBsaW5lLWhlaWdodDogMTRweCcKICAgICAgICAgICAgICAgIGlmIChpZHggPT0gYnRucy5sZW5ndGggLTEpIC8vIGRlLWVtcGhhc2l6ZSByaWdodC1tb3N0IGJ1dHRvbgogICAgICAgICAgICAgICAgICAgIGJ0bi5jbGFzc0xpc3QucmVtb3ZlKCdwcmltYXJ5LW1vZGFsLWJ0bicpCiAgICAgICAgICAgICAgICBlbHNlIGlmICgvcmF0ZS9pLnRlc3QoYnRuLnRleHRDb250ZW50KSkgLy8gbG9jYWxpemUgJ1JhdGUgVXMnIGxhYmVsCiAgICAgICAgICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gdGhpcy5nZXRNc2coJ2J0bkxhYmVsX3JhdGVVcycpCiAgICAgICAgICAgIH0KICAgICAgICB9KQoKICAgICAgICByZXR1cm4gZG9uYXRlTW9kYWwKICAgIH0sCgogICAgZmVlZGJhY2soKSB7CgogICAgICAgIC8vIEluaXQgYnV0dG9ucwogICAgICAgIGNvbnN0IG1vZGFsQnRucyA9IFsgZnVuY3Rpb24gcHJvZHVjdEh1bnQoKXt9LCBmdW5jdGlvbiBhbHRlcm5hdGl2ZXRvKCl7fSBdCiAgICAgICAgbW9kYWxCdG5zLnVuc2hpZnQodGhpcy5ydW50aW1lLmluY2x1ZGVzKCdGaXJlZm94JykgPyBmdW5jdGlvbiBmaXJlZm94QWRkb25zKCl7fQogICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucnVudGltZS5pbmNsdWRlcygnRWRnZScpID8gZnVuY3Rpb24gZWRnZUFkZG9ucygpe30KICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnJ1bnRpbWUuaW5jbHVkZXMoJ0Nocm9taXVtJykgPyBmdW5jdGlvbiBjaHJvbWVXZWJTdG9yZSgpe30KICAgICAgICAgICAgICAgICAgICAgICAgOiBmdW5jdGlvbiBncmVhc3lGb3JrKCl7fSApCiAgICAgICAgLy8gU2hvdyBtb2RhbAogICAgICAgIGNvbnN0IGZlZWRiYWNrTW9kYWwgPSBtb2RhbHMuYWxlcnQoYCR7dGhpcy5nZXRNc2coJ2FsZXJ0X2Nob29zZVBsYXRmb3JtJyl9OmAsICcnLCBtb2RhbEJ0bnMpCgogICAgICAgIC8vIEhhY2sgYnV0dG9ucwogICAgICAgIGZlZWRiYWNrTW9kYWwucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJykuZm9yRWFjaCgoYnRuLCBpZHgpID0+IHsKICAgICAgICAgICAgaWYgKGlkeCA9PSAwKSBidG4uc3R5bGUuZGlzcGxheSA9ICdub25lJyAvLyBoaWRlIERpc21pc3MgYnV0dG9uCgogICAgICAgICAgICAvLyBSZXBsYWNlIGJ1dHRvbnMgdy8gY2xvbmVzIHRoYXQgZG9uJ3QgZGlzbWlzcyBtb2RhbAogICAgICAgICAgICBjb25zdCBidG5DbG9uZSA9IGJ0bi5jbG9uZU5vZGUodHJ1ZSkKICAgICAgICAgICAgYnRuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGJ0bkNsb25lLCBidG4pIDsgYnRuID0gYnRuQ2xvbmUKICAgICAgICAgICAgYnRuLm9uY2xpY2sgPSAoKSA9PiB0aGlzLnNhZmVXaW5PcGVuKHRoaXMuaW1wb3J0cy5hcHAudXJscy5yZXZpZXdbCiAgICAgICAgICAgICAgICBidG4udGV4dENvbnRlbnQgPT0gJ0FsdGVybmF0aXZldG8nID8gJ2FsdGVybmF0aXZlVG8nCiAgICAgICAgICAgICAgOiBidG4udGV4dENvbnRlbnQgPT0gJ0Nocm9tZSBXZWIgU3RvcmUnID8gJ2Nocm9tZVdlYlN0b3JlJwogICAgICAgICAgICAgIDogYnRuLnRleHRDb250ZW50ID09ICdFZGdlIEFkZG9ucycgPyAnZWRnZUFkZG9ucycKICAgICAgICAgICAgICA6IGJ0bi50ZXh0Q29udGVudCA9PSAnRmlyZWZveCBBZGRvbnMnID8gJ2ZpcmVmb3hBZGRvbnMnCiAgICAgICAgICAgICAgOiBidG4udGV4dENvbnRlbnQgPT0gJ0dyZWFzeSBGb3JrJyA/ICdncmVhc3lGb3JrJwogICAgICAgICAgICAgIDogJ3Byb2R1Y3RIdW50JwogICAgICAgICAgICBdKQogICAgICAgIH0pCgogICAgICAgIHJldHVybiBmZWVkYmFja01vZGFsCiAgICB9LAoKICAgIHVwZGF0ZTogewogICAgICAgIHdpZHRoOiAzNzcsCgogICAgICAgIGF2YWlsYWJsZSgpIHsKCiAgICAgICAgICAgIC8vIFNob3cgbW9kYWwKICAgICAgICAgICAgY29uc3QgdXBkYXRlQXZhaWxNb2RhbCA9IG1vZGFscy5hbGVydChg8J+agCAke21vZGFscy5nZXRNc2coJ2FsZXJ0X3VwZGF0ZUF2YWlsJyl9IWAsIC8vIHRpdGxlCiAgICAgICAgICAgICAgICBgJHttb2RhbHMuZ2V0TXNnKCdhbGVydF9uZXdlclZlcicpfSAke21vZGFscy5nZXRNc2coJ2FwcE5hbWUnKX0gYCAvLyBtc2cKICAgICAgICAgICAgICAgICAgICArIGAodiR7bW9kYWxzLmltcG9ydHMuYXBwLmxhdGVzdFZlcn0pICR7bW9kYWxzLmdldE1zZygnYWxlcnRfaXNBdmFpbCcpfSEgIGAKICAgICAgICAgICAgICAgICAgICArICc8YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgc3R5bGU9ImZvbnQtc2l6ZTogMC43cmVtIiBocmVmPSInCiAgICAgICAgICAgICAgICAgICAgICAgICsgbW9kYWxzLmltcG9ydHMuYXBwLnVybHMudXBkYXRlLnJlcGxhY2UoLy4rXC8oW14vXSspbWV0YVwuanMvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7bW9kYWxzLmltcG9ydHMuYXBwLnVybHMuZ2l0SHVifS9jb21taXRzL21haW4vZ3JlYXNlbW9ua2V5LyQxdXNlci5qc2ApCiAgICAgICAgICAgICAgICAgICAgKyBgIj4ke21vZGFscy5nZXRNc2coJ2xpbmtfdmlld0NoYW5nZXMnKX08L2E+YCwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZSgpIHsgLy8gYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgbW9kYWxzLnNhZmVXaW5PcGVuKAogICAgICAgICAgICAgICAgICAgICAgICBtb2RhbHMuaW1wb3J0cy5hcHAudXJscy51cGRhdGUucmVwbGFjZSgnbWV0YS5qcycsICd1c2VyLmpzJykgKyAnP3Q9JyArIERhdGUubm93KCkpCiAgICAgICAgICAgICAgICB9LCAnJywgbW9kYWxzLnVwZGF0ZS53aWR0aAogICAgICAgICAgICApCgogICAgICAgICAgICAvLyBMb2NhbGl6ZSBidXR0b24gbGFiZWxzIGlmIG5lZWRlZAogICAgICAgICAgICBpZiAoIW1vZGFscy5pbXBvcnRzLmVudi5icm93c2VyLmxhbmd1YWdlLnN0YXJ0c1dpdGgoJ2VuJykpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUJ0bnMgPSB1cGRhdGVBdmFpbE1vZGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpCiAgICAgICAgICAgICAgICB1cGRhdGVCdG5zWzFdLnRleHRDb250ZW50ID0gbW9kYWxzLmdldE1zZygnYnRuTGFiZWxfdXBkYXRlJykKICAgICAgICAgICAgICAgIHVwZGF0ZUJ0bnNbMF0udGV4dENvbnRlbnQgPSBtb2RhbHMuZ2V0TXNnKCdidG5MYWJlbF9kaXNtaXNzJykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZUF2YWlsTW9kYWwKICAgICAgICB9LAoKICAgICAgICB1bmF2YWlsYWJsZSgpIHsKICAgICAgICAgICAgcmV0dXJuIG1vZGFscy5hbGVydChgJHttb2RhbHMuZ2V0TXNnKCdhbGVydF91cFRvRGF0ZScpfSFgLCAvLyB0aXRsZQogICAgICAgICAgICAgICAgYCR7bW9kYWxzLmdldE1zZygnYXBwTmFtZScpfSAodiR7bW9kYWxzLmltcG9ydHMuYXBwLnZlcnNpb259KSAkeyAvLyBtc2cKICAgICAgICAgICAgICAgICAgICBtb2RhbHMuZ2V0TXNnKCdhbGVydF9pc1VwVG9EYXRlJyl9IWAsCiAgICAgICAgICAgICAgICAnJywgJycsIG1vZGFscy51cGRhdGUud2lkdGgKICAgICAgICAgICAgKQogICAgICAgIH0KICAgIH0sCgogICAgc2FmZVdpbk9wZW4odXJsKSB7IG9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyJykgfSAvLyB0byBwcmV2ZW50IGJhY2tkb29yIHZ1bG5lcmFiaWxpdGllcwp9Owo="},{"meta":{"name":"toggles.js","url":"https://cdn.jsdelivr.net/gh/adamlui/chatgpt-infinity@588ec90203cf932c04af00144660d5a936239ea3/chrome/extension/components/toggles.js#sha256-0Yz+UQgsBO5raPbRCu8EZw60crlm8pVqrn4rnbpg8OY=","ts":1764084296593,"mimetype":"text/javascript"},"source":"d2luZG93LnRvZ2dsZXMgPSB7CgogICAgaW1wb3J0czogewogICAgICAgIGltcG9ydChkZXBzKSB7IC8vIHsgYXBwLCBlbnYsIG5vdGlmeSwgc3luY0NvbmZpZ1RvVUkgfQogICAgICAgICAgICBmb3IgKGNvbnN0IGRlcE5hbWUgaW4gZGVwcykgdGhpc1tkZXBOYW1lXSA9IGRlcHNbZGVwTmFtZV0gfQogICAgfSwKCiAgICBnZXRNc2coa2V5KSB7CiAgICAgICAgcmV0dXJuIHR5cGVvZiBHTV9pbmZvICE9ICd1bmRlZmluZWQnID8gdGhpcy5pbXBvcnRzLmFwcC5tc2dzW2tleV0gOiBjaHJvbWUuaTE4bi5nZXRNZXNzYWdlKGtleSkgfSwKCiAgICBzaWRlYmFyOiB7CiAgICAgICAgZ2V0IGNsYXNzKCkgeyByZXR1cm4gYCR7dG9nZ2xlcy5pbXBvcnRzLmFwcC5jc3NQcmVmaXh9LXNpZGViYXItdG9nZ2xlYCB9LAoKICAgICAgICBjcmVhdGUoKSB7CgogICAgICAgICAgICAvLyBJbml0IHRvZ2dsZSBlbGVtcwogICAgICAgICAgICB0aGlzLmRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIDsgdGhpcy5kaXYuY2xhc3NOYW1lID0gdGhpcy5jbGFzcwogICAgICAgICAgICB0aGlzLm5hdmljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKQogICAgICAgICAgICB0aGlzLnRvZ2dsZUxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKQogICAgICAgICAgICB0aGlzLnRvZ2dsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKQogICAgICAgICAgICB0aGlzLnN3aXRjaFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKICAgICAgICAgICAgdGhpcy5rbm9iU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQoKICAgICAgICAgICAgLy8gQXNzZW1ibGUgZWxlbXMgaW50byBwYXJlbnQgZGl2CiAgICAgICAgICAgIHRoaXMuc3dpdGNoU3Bhbi5hcHBlbmQodGhpcy5rbm9iU3BhbikKICAgICAgICAgICAgdGhpcy5kaXYuYXBwZW5kKHRoaXMubmF2aWNvbiwgdGhpcy50b2dnbGVJbnB1dCwgdGhpcy5zd2l0Y2hTcGFuLCB0aGlzLnRvZ2dsZUxhYmVsKQoKICAgICAgICAgICAgLy8gU3R5bGl6ZSBlbGVtcwogICAgICAgICAgICB0aGlzLnN0eWxpemUoKSAvLyBjcmVhdGUvYXBwZW5kIHN0eWxlc2hlZXQKICAgICAgICAgICAgaWYgKHRvZ2dsZXMuaW1wb3J0cy5lbnYudWkuZmlyc3RMaW5rKSB7IC8vIGJvcnJvdy9hc3NpZ24gY2xhc3NlcyBmcm9tIHNpZGViYXIgZWxlbXMKICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0SWNvbiA9IHRvZ2dsZXMuaW1wb3J0cy5lbnYudWkuZmlyc3RMaW5rLnF1ZXJ5U2VsZWN0b3IoJ2RpdjpmaXJzdC1jaGlsZCcpLAogICAgICAgICAgICAgICAgICAgICAgZmlyc3RMYWJlbCA9IHRvZ2dsZXMuaW1wb3J0cy5lbnYudWkuZmlyc3RMaW5rLnF1ZXJ5U2VsZWN0b3IoJ2RpdjpudGgtY2hpbGQoMiknKQogICAgICAgICAgICAgICAgdGhpcy5kaXYuY2xhc3NMaXN0LmFkZCgKICAgICAgICAgICAgICAgICAgICAuLi50b2dnbGVzLmltcG9ydHMuZW52LnVpLmZpcnN0TGluay5jbGFzc0xpc3QsIC4uLihmaXJzdExhYmVsPy5jbGFzc0xpc3QgfHwgW10pKQogICAgICAgICAgICAgICAgdGhpcy5kaXYucXVlcnlTZWxlY3RvcignaW1nJyk/LmNsYXNzTGlzdC5hZGQoLi4uKGZpcnN0SWNvbj8uY2xhc3NMaXN0IHx8IFtdKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gVXBkYXRlIGFlc3RoZXRpYy9zdGF0ZQogICAgICAgICAgICB0aGlzLnVwZGF0ZUFlc3RoZXRpYygpIDsgdGhpcy51cGRhdGVTdGF0ZSgpIC8vIHRvIG9wcG9zaXRlIGluaXQgc3RhdGUgZm9yIGFuaW1hdGlvbiBvbiAxc3QgbG9hZAoKICAgICAgICAgICAgLy8gQWRkIGhvdmVyL2NsaWNrIGxpc3RlbmVycwogICAgICAgICAgICB0aGlzLmRpdi5vbm1vdXNlb3ZlciA9IHRoaXMuZGl2Lm9ubW91c2VvdXQgPSBldmVudCA9PiAvLyB0cmlnZ2VyIE9wZW5BSSBob3ZlciBvdmVybGF5CiAgICAgICAgICAgICAgICB0aGlzLmRpdi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pdGVtLWJhY2tncm91bmQtY29sb3InLAogICAgICAgICAgICAgICAgICAgIGB2YXIoLS1zaWRlYmFyLXN1cmZhY2UtJHtldmVudC50eXBlID09ICdtb3VzZW92ZXInID8gJ3NlY29uZGFyeScgOiAncHJpbWFyeSd9KWApCiAgICAgICAgICAgIHRoaXMuZGl2Lm9uY2xpY2sgPSAoKSA9PiB7IC8vIHRvZ2dsZSBJbmZpbml0eSBtb2RlCiAgICAgICAgICAgICAgICBzZXR0aW5ncy5zYXZlKCdpbmZpbml0eU1vZGUnLCAhdGhpcy50b2dnbGVJbnB1dC5jaGVja2VkKQogICAgICAgICAgICAgICAgdG9nZ2xlcy5pbXBvcnRzLnN5bmNDb25maWdUb1VJKHsgdXBkYXRlZEtleTogJ2luZmluaXR5TW9kZScgfSkKICAgICAgICAgICAgICAgIHRvZ2dsZXMuaW1wb3J0cy5ub3RpZnkoYCR7dG9nZ2xlcy5nZXRNc2coJ21lbnVMYWJlbF9pbmZpbml0eU1vZGUnKX06ICR7CiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlcy5nZXRNc2coYHN0YXRlXyR7IGNvbmZpZy5pbmZpbml0eU1vZGUgPyAnb24nIDogJ29mZicgfWApLnRvVXBwZXJDYXNlKCl9YCkKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHN0eWxpemUoKSB7CiAgICAgICAgICAgIHRoaXMuc3R5bGVzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKSA7IHRoaXMuc3R5bGVzLmlkID0gYCR7dGhpcy5jbGFzc30tc3R5bGVzYAogICAgICAgICAgICB0aGlzLnN0eWxlcy5pbm5lclRleHQgPSAoCiAgICAgICAgICAgICAgICAnOnJvb3QgeycgLy8gdmFycwogICAgICAgICAgICAgICAgICArICctLXN3aXRjaC1lbmFibGVkLWJnLWNvbG9yOiAjYWQ2OGZmIDsgLS1zd2l0Y2gtZGlzYWJsZWQtYmctY29sb3I6ICNjY2MgOycKICAgICAgICAgICAgICAgICAgKyAnLS1zd2l0Y2gtZW5hYmxlZC1ib3gtc2hhZG93OiAycHggMXB4IDlweCAjZDhhOWZmIDsnCiAgICAgICAgICAgICAgICAgICsgJy0tc3dpdGNoLWVuYWJsZWQtaG92ZXItYm94LXNoYWRvdzogMCAxcHggMTBweCAjOWI1YWQxIDsnCiAgICAgICAgICAgICAgICAgICsgJy0ta25vYi1ib3gtc2hhZG93OiByZ2JhKDAsMCwwLDAuMykgMCAxcHggMnB4IDAgOycKICAgICAgICAgICAgICAgICAgKyAnLS1rbm9iLWJveC1zaGFkb3ctZGFyazogcmdiYSgwLDAsMCwwLjMpIDAgMXB4IDJweCAwLCByZ2JhKDAsMCwwLDAuMTUpIDAgM3B4IDZweCAycHggfScKCiAgICAgICAgICAgICAgICAvLyBFbGVtZW50IHN0eWxlcwogICAgICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9IHtgIC8vIHBhcmVudCBkaXYKICAgICAgICAgICAgICAgICAgKyAnbWF4LWhlaWdodDogMzdweCA7IG1hcmdpbjogMnB4IDAgOyB1c2VyLXNlbGVjdDogbm9uZSA7IGN1cnNvcjogcG9pbnRlciA7JwogICAgICAgICAgICAgICAgICArICdmbGV4LWdyb3c6IHVuc2V0IH0nIC8vIG92ZXJjb21lIE9wZW5BSSAuZ3JvdwogICAgICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9ID4gaW1nIHtgIC8vIG5hdmljb24KICAgICAgICAgICAgICAgICAgKyAnd2lkdGg6IDEuMjVyZW0gOyBoZWlnaHQ6IDEuMjVyZW0gOyBtYXJnaW4tbGVmdDogMnB4IDsgbWFyZ2luLXJpZ2h0OiA0cHggfScKICAgICAgICAgICAgICArIGAuJHt0aGlzLmNsYXNzfSA+IGlucHV0IHsgZGlzcGxheTogbm9uZSB9YCAvLyBoaWRlIGNoZWNrYm94CiAgICAgICAgICAgICAgKyBgLiR7dGhpcy5jbGFzc30gPiBzcGFuIHtgIC8vIHN3aXRjaCBzcGFuCiAgICAgICAgICAgICAgICAgICsgJ3Bvc2l0aW9uOiByZWxhdGl2ZSA7IHdpZHRoOiAzMHB4IDsgaGVpZ2h0OiAxNXB4IDsgYm9yZGVyLXJhZGl1czogMjhweCA7JwogICAgICAgICAgICAgICAgICArICdiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zd2l0Y2gtZW5hYmxlZC1iZy1jb2xvcikgOycgLy8gaW5pdCBvcHBvc2l0ZSAgZmluYWwgY29sb3IKICAgICAgICAgICAgICAgICAgKyBgYm90dG9tOiAkeyB0b2dnbGVzLmltcG9ydHMuZW52LnVpLmZpcnN0TGluayA/IDAgOiAtMC4xNSB9ZW0gO2AKICAgICAgICAgICAgICAgICAgKyBgbGVmdDogJHsgdG9nZ2xlcy5pbXBvcnRzLmVudi5icm93c2VyLmlzTW9iaWxlID8gMTY5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRvZ2dsZXMuaW1wb3J0cy5lbnYudWkuZmlyc3RMaW5rID8gMTU0IDogMTYwIH1weCA7YAogICAgICAgICAgICAgICAgICArICd0cmFuc2l0aW9uOiAwLjRzIDsgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjRzIDsgLW1vei10cmFuc2l0aW9uOiAwLjRzIDsnCiAgICAgICAgICAgICAgICAgICAgICArICctby10cmFuc2l0aW9uOiAwLjRzIDsgLW1zLXRyYW5zaXRpb246IDAuNHMgfScKICAgICAgICAgICAgICArIGAuJHt0aGlzLmNsYXNzfSA+IHNwYW4uZW5hYmxlZCB7YCAvLyBzd2l0Y2ggb24KICAgICAgICAgICAgICAgICAgKyAnYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3dpdGNoLWVuYWJsZWQtYmctY29sb3IpIDsgYm94LXNoYWRvdzogdmFyKC0tc3dpdGNoLWVuYWJsZWQtYm94LXNoYWRvdykgfScKICAgICAgICAgICAgICArIGAuJHt0aGlzLmNsYXNzfTpob3ZlciA+IHNwYW4uZW5hYmxlZCB7YCAvLyBzd2l0Y2ggb24gd2hlbiBob3ZlciBvbiBwYXJlbnQgZGl2CiAgICAgICAgICAgICAgICAgICsgJ2JveC1zaGFkb3c6IHZhcigtLXN3aXRjaC1lbmFibGVkLWhvdmVyLWJveC1zaGFkb3cpIDsnCiAgICAgICAgICAgICAgICAgICsgJ3RyYW5zaXRpb246IG5vbmUgOyAtd2Via2l0LXRyYW5zaXRpb246IG5vbmUgOyAtbW96LXRyYW5zaXRpb246IG5vbmUgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy1vLXRyYW5zaXRpb246IG5vbmUgOyAtbXMtdHJhbnNpdGlvbjogbm9uZSB9JwogICAgICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9ID4gc3Bhbi5kaXNhYmxlZCB7YCAvLyBzd2l0Y2ggb2ZmCiAgICAgICAgICAgICAgICAgICsgJ2JhY2tncm91bmQtY29sb3I6IHZhcigtLXN3aXRjaC1kaXNhYmxlZC1iZy1jb2xvcikgOyBib3gtc2hhZG93OiBub25lIH0nCiAgICAgICAgICAgICAgKyBgLiR7dGhpcy5jbGFzc30gPiBzcGFuID4gc3BhbiB7YCAvLyBrbm9iIHNwYW4KICAgICAgICAgICAgICAgICAgKyAncG9zaXRpb246IGFic29sdXRlIDsgd2lkdGg6IDEycHggOyBoZWlnaHQ6IDEycHggOyBjb250ZW50OiAiIiA7IGJvcmRlci1yYWRpdXM6IDI4cHggOycKICAgICAgICAgICAgICAgICAgKyAnYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgOyBsZWZ0OiAzcHggOyBib3R0b206IDEuMjVweCA7JwogICAgICAgICAgICAgICAgICArICdib3gtc2hhZG93OiB2YXIoLS1rbm9iLWJveC1zaGFkb3cpIDsnIC8vIG1ha2UgM0QKICAgICAgICAgICAgICAgICAgKyAndHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEzcHgpIDsnIC8vIGluaXQgb3Bwb3NpdGUgZmluYWwgcG9zCiAgICAgICAgICAgICAgICAgICsgJ3RyYW5zaXRpb246IDAuNHMgOyAtd2Via2l0LXRyYW5zaXRpb246IDAuNHMgOyAtbW96LXRyYW5zaXRpb246IDAuNHMgOycKICAgICAgICAgICAgICAgICAgICAgICsgJy1vLXRyYW5zaXRpb246IDAuNHMgOyAtbXMtdHJhbnNpdGlvbjogMC40cyB9JwogICAgICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9ID4gbGFiZWwge2AgLy8gdG9nZ2xlIGxhYmVsCiAgICAgICAgICAgICAgICAgICsgJ2N1cnNvcjogcG9pbnRlciA7IG92ZXJmbG93OiBoaWRkZW4gOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyA7JwogICAgICAgICAgICAgICAgICArIGB3aWR0aDogJHsgdG9nZ2xlcy5pbXBvcnRzLmVudi5icm93c2VyLmlzTW9iaWxlID8gMjAxIDogMTQ4IH1weCA7YAogICAgICAgICAgICAgICAgICArIGBtYXJnaW4tbGVmdDogLSR7IHRvZ2dsZXMuaW1wb3J0cy5lbnYudWkuZmlyc3RMaW5rID8gNDEgOiAyMyB9cHggO2AgLy8gbGVmdC1zaGlmdCB0byBuYXZpY29uCiAgICAgICAgICAgICAgICAgICsgYCR7IHRvZ2dsZXMuaW1wb3J0cy5lbnYudWkuZmlyc3RMaW5rID8gJycgOiAnZm9udC1zaXplOiAwLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OiA2MDAnIH19YAoKICAgICAgICAgICAgICAgIC8vIERhcmsgc2NoZW1lIG1vZHMKICAgICAgICAgICAgICArIGAuJHt0aGlzLmNsYXNzfS5kYXJrID4gc3Bhbi5lbmFibGVkIHtgIC8vIHN3aXRjaCBvbgogICAgICAgICAgICAgICAgICArICdiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zd2l0Y2gtZW5hYmxlZC1iZy1jb2xvcikgOycKICAgICAgICAgICAgICAgICAgKyAnYm94LXNoYWRvdzogdmFyKC0tc3dpdGNoLWVuYWJsZWQtaG92ZXItYm94LXNoYWRvdykgfScgLy8gdXNlIGhvdmVyIHN0eWxlIGluc3RlYWQKICAgICAgICAgICAgICArIGAuJHt0aGlzLmNsYXNzfS5kYXJrOmhvdmVyID4gc3Bhbi5lbmFibGVkIHtgIC8vIHN3aXRjaCBvbiB3aGVuIGhvdmVyIG9uIHBhcmVudCBkaXYKICAgICAgICAgICAgICAgICAgKyAnYm94LXNoYWRvdzogdmFyKC0tc3dpdGNoLWVuYWJsZWQtYm94LXNoYWRvdykgfScgLy8gdXNlIHJlZ3VsYXIgc3R5bGUgaW5zdGVhZAogICAgICAgICAgICAgICsgYC4ke3RoaXMuY2xhc3N9LmRhcmsgPiBzcGFuID4gc3BhbiB7YCAvLyBrbm9iIHNwYW4KICAgICAgICAgICAgICAgICAgKyAnYm94LXNoYWRvdzogdmFyKC0ta25vYi1ib3gtc2hhZG93LWRhcmspIH0nIC8vIG1ha2UgM0QtZXIKICAgICAgICAgICAgKQogICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZCh0aGlzLnN0eWxlcykKICAgICAgICB9LAoKICAgICAgICBpbnNlcnQoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLnN0YXR1cz8uc3RhcnRzV2l0aCgnaW5zZXJ0JykgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7dGhpcy5jbGFzc31gKSkgcmV0dXJuCiAgICAgICAgICAgIGNvbnN0IHNpZGViYXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCduYXYnKVt0b2dnbGVzLmltcG9ydHMuZW52LmJyb3dzZXIuaXNNb2JpbGUgPyAxIDogMF0KICAgICAgICAgICAgaWYgKCFzaWRlYmFyKSByZXR1cm4KICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSAnaW5zZXJ0aW5nJyA7IGlmICghdGhpcy5kaXYpIHRoaXMuY3JlYXRlKCkKICAgICAgICAgICAgc2lkZWJhci5pbnNlcnRCZWZvcmUodGhpcy5kaXYsIHNpZGViYXIuY2hpbGRyZW5bMV0pIDsgdGhpcy5zdGF0dXMgPSAnaW5zZXJ0ZWQnCiAgICAgICAgfSwKCiAgICAgICAgdXBkYXRlQWVzdGhldGljKCkgeyAvLyB0byBtYXRjaCBVSSBzY2hlbWUKICAgICAgICAgICAgY29uc3QgaXNEYXJrU2NoZW1lID0gdG9nZ2xlcy5pbXBvcnRzLmVudi51aS5zY2hlbWUgPT0gJ2RhcmsnCiAgICAgICAgICAgIHRoaXMuZGl2LmNsYXNzTGlzdC5hZGQoaXNEYXJrU2NoZW1lID8gJ2RhcmsnIDogJ2xpZ2h0JykKICAgICAgICAgICAgdGhpcy5kaXYuY2xhc3NMaXN0LnJlbW92ZShpc0RhcmtTY2hlbWUgPyAnbGlnaHQnIDogJ2RhcmsnKQogICAgICAgICAgICB0aGlzLm5hdmljb24uc3JjID0gYCR7CiAgICAgICAgICAgICAgICB0b2dnbGVzLmltcG9ydHMuYXBwLnVybHMuYXNzZXRIb3N0fS9pbWFnZXMvaWNvbnMvaW5maW5pdHktc3ltYm9sLyR7CiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlcy5pbXBvcnRzLmVudi51aS5zY2hlbWUgPT0gJ2RhcmsnID8gJ3doaXRlJyA6ICdibGFjaycgfS9pY29uMzIucG5nP3Y9JHsKICAgICAgICAgICAgICAgICAgICB0b2dnbGVzLmltcG9ydHMuYXBwLmxhdGVzdFJlc291cmNlQ29tbWl0SGFzaH1gCiAgICAgICAgfSwKCiAgICAgICAgdXBkYXRlU3RhdGUoKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5kaXYpIHJldHVybiAvLyBzaW5jZSB0b2dnbGUgbmV2ZXIgY3JlYXRlZCA9IHNpZGViYXIgbWlzc2luZwogICAgICAgICAgICB0aGlzLmRpdi5zdHlsZS5kaXNwbGF5ID0gY29uZmlnLnRvZ2dsZUhpZGRlbiB8fCBjb25maWcuZXh0ZW5zaW9uRGlzYWJsZWQgPyAnbm9uZScgOiAnZmxleCcKICAgICAgICAgICAgdGhpcy50b2dnbGVJbnB1dC5jaGVja2VkID0gY29uZmlnLmluZmluaXR5TW9kZQogICAgICAgICAgICB0aGlzLnRvZ2dsZUxhYmVsLmlubmVyVGV4dCA9IGAke3RvZ2dsZXMuZ2V0TXNnKCdtZW51TGFiZWxfaW5maW5pdHlNb2RlJyl9IGAKICAgICAgICAgICAgICAgICsgdG9nZ2xlcy5nZXRNc2coYHN0YXRlXyR7IHRoaXMudG9nZ2xlSW5wdXQuY2hlY2tlZCA/ICdlbmFibGVkJyA6ICdkaXNhYmxlZCcgfWApCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgdGhpcy5zd2l0Y2hTcGFuLmNsYXNzTmFtZSA9IHRoaXMudG9nZ2xlSW5wdXQuY2hlY2tlZCA/ICdlbmFibGVkJyA6ICdkaXNhYmxlZCcKICAgICAgICAgICAgICAgIHRoaXMua25vYlNwYW4uc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHsgdGhpcy50b2dnbGVJbnB1dC5jaGVja2VkID8gMTMgOiAwIH1weClgCiAgICAgICAgICAgIH0sIDEpIC8vIG1pbiBkZWxheSB0byB0cmlnZ2VyIDFzdCB0cmFuc2l0aW9uIGZ4CiAgICAgICAgfQogICAgfQp9Owo="},{"meta":{"name":"dom.js","url":"https://cdn.jsdelivr.net/gh/adamlui/chatgpt-infinity@c6338a22b98eda877436fd6c5950ac3114aea23c/chrome/extension/lib/dom.js#sha256-/QaqzuGGC7PrzjYnXtYh411rJJOp27jWLA4ataKaWWY=","ts":1764084296593,"mimetype":"text/javascript"},"source":"d2luZG93LmRvbSA9IHsKCiAgICBpbXBvcnRzOiB7CiAgICAgICAgaW1wb3J0KGRlcHMpIHsgLy8geyBlbnYpIH0KICAgICAgICAgICAgZm9yIChjb25zdCBkZXBOYW1lIGluIGRlcHMpIHRoaXNbZGVwTmFtZV0gPSBkZXBzW2RlcE5hbWVdIH0KICAgIH0sCgogICAgY3JlYXRlOiB7CiAgICAgICAgZWxlbShlbGVtVHlwZSwgYXR0cnMgPSB7fSkgewogICAgICAgICAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtVHlwZSkKICAgICAgICAgICAgZm9yIChjb25zdCBhdHRyIGluIGF0dHJzKSBlbGVtLnNldEF0dHJpYnV0ZShhdHRyLCBhdHRyc1thdHRyXSkKICAgICAgICAgICAgcmV0dXJuIGVsZW0KICAgICAgICB9LAoKICAgICAgICBzdHlsZShjb250ZW50KSB7CiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKQogICAgICAgICAgICBpZiAoY29udGVudCkgc3R5bGUuaW5uZXJUZXh0ID0gY29udGVudAogICAgICAgICAgICByZXR1cm4gc3R5bGUKICAgICAgICB9LAoKICAgICAgICBzdmdFbGVtKHR5cGUsIGF0dHJzKSB7CiAgICAgICAgICAgIGNvbnN0IGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgdHlwZSkKICAgICAgICAgICAgZm9yIChjb25zdCBhdHRyIGluIGF0dHJzKSBlbGVtLnNldEF0dHJpYnV0ZU5TKG51bGwsIGF0dHIsIGF0dHJzW2F0dHJdKQogICAgICAgICAgICByZXR1cm4gZWxlbQogICAgICAgIH0KICAgIH0sCgogICAgZmlsbFN0YXJyeUJHKHRhcmdldE5vZGUpIHsgLy8gcmVxdWlyZXMgaHR0cHM6Ly9hc3NldHMuYWl3ZWJleHRlbnNpb25zLmNvbS9zdHlsZXMvcmlzaW5nLXN0YXJzL2Nzcy88YmxhY2t8d2hpdGU+Lm1pbi5jc3MKICAgICAgICBpZiAodGFyZ2V0Tm9kZS5xdWVyeVNlbGVjdG9yKCdbaWQqPXN0YXJzXScpKSByZXR1cm4KICAgICAgICBjb25zdCBzdGFyc0RpdnNDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKQogICAgICAgIHN0YXJzRGl2c0NvbnRhaW5lci5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOiBhYnNvbHV0ZSA7IHRvcDogMCA7IGxlZnQ6IDAgOycgLy8gaHVnIHRhcmdldE5vZGUncyB0b3AtbGVmdCBjb3JuZXIKICAgICAgICAgICsgJ2hlaWdodDogMTAwJSA7IHdpZHRoOiAxMDAlIDsgYm9yZGVyLXJhZGl1czogMTVweCA7IG92ZXJmbG93OiBjbGlwIDsnIC8vIGJvdW5kIGlubmFyZHMgZXhhY3RseSBieSB0YXJnZXROb2RlCiAgICAgICAgICArICd6LWluZGV4OiAtMSc7IC8vIGFsbG93IGludGVyYWN0aXZlIGVsZW1zIHRvIGJlIGNsaWNrZWQKICAgICAgICBbJ3NtJywgJ21lZCcsICdsZyddLmZvckVhY2goc3RhclNpemUgPT4gewogICAgICAgICAgICBjb25zdCBzdGFyc0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpCiAgICAgICAgICAgIHN0YXJzRGl2LmlkID0gYCR7IHRoaXMuaW1wb3J0cy5lbnYudWkuc2NoZW1lID09ICdkYXJrJyA/ICd3aGl0ZScgOiAnYmxhY2snIH0tc3RhcnMtJHtzdGFyU2l6ZX1gCiAgICAgICAgICAgIHN0YXJzRGl2c0NvbnRhaW5lci5hcHBlbmQoc3RhcnNEaXYpCiAgICAgICAgfSkKICAgICAgICB0YXJnZXROb2RlLnByZXBlbmQoc3RhcnNEaXZzQ29udGFpbmVyKQogICAgfQp9Owo="},{"meta":{"name":"settings.js","url":"https://cdn.jsdelivr.net/gh/adamlui/chatgpt-infinity@3fb2a12621f1ee971eed9439c5e11d1bddff28fc/chrome/extension/lib/settings.js#sha256-3uj1yPXTh/zZd4pHvMzOznvL5dr00fREbmJe2b5VKkQ=","ts":1764084296593,"mimetype":"text/javascript"},"source":"d2luZG93LmNvbmZpZyA9IHt9CndpbmRvdy5zZXR0aW5ncyA9IHsKCiAgICBpbXBvcnRzOiB7CiAgICAgICAgaW1wb3J0KGRlcHMpIHsgLy8geyBhcHAgfQogICAgICAgICAgICBmb3IgKGNvbnN0IGRlcE5hbWUgaW4gZGVwcykgdGhpc1tkZXBOYW1lXSA9IGRlcHNbZGVwTmFtZV0gfQogICAgfSwKCiAgICBjb250cm9sczogeyAvLyBkaXNwbGF5cyB0b3AtdG8tYm90dG9tIGluIHRvb2xiYXIgbWVudQogICAgICAgIGdldCBpbmZpbml0eU1vZGUoKSB7IHJldHVybiB7IHR5cGU6ICd0b2dnbGUnLCBkZWZhdWx0VmFsOiBmYWxzZSwKICAgICAgICAgICAgbGFiZWw6IHNldHRpbmdzLmdldE1zZygnbWVudUxhYmVsX2luZmluaXR5TW9kZScpCiAgICAgICAgfX0sCiAgICAgICAgZ2V0IGF1dG9TdGFydCgpIHsgcmV0dXJuIHsgdHlwZTogJ3RvZ2dsZScsIGRlZmF1bHRWYWw6IGZhbHNlLAogICAgICAgICAgICBsYWJlbDogc2V0dGluZ3MuZ2V0TXNnKCdtZW51TGFiZWxfYXV0b1N0YXJ0JyksCiAgICAgICAgICAgIGhlbHB0aXA6IHNldHRpbmdzLmdldE1zZygnaGVscHRpcF9hdXRvU3RhcnQnKQogICAgICAgIH19LAogICAgICAgIGdldCB0b2dnbGVIaWRkZW4oKSB7IHJldHVybiB7IHR5cGU6ICd0b2dnbGUnLCBkZWZhdWx0VmFsOiBmYWxzZSwKICAgICAgICAgICAgbGFiZWw6IHNldHRpbmdzLmdldE1zZygnbWVudUxhYmVsX3RvZ2dsZVZpcycpLAogICAgICAgICAgICBoZWxwdGlwOiBzZXR0aW5ncy5nZXRNc2coJ2hlbHB0aXBfdG9nZ2xlVmlzJykKICAgICAgICB9fSwKICAgICAgICBnZXQgYXV0b1Njcm9sbERpc2FibGVkKCkgeyByZXR1cm4geyB0eXBlOiAndG9nZ2xlJywgZGVmYXVsdFZhbDogZmFsc2UsCiAgICAgICAgICAgIGxhYmVsOiBzZXR0aW5ncy5nZXRNc2coJ21lbnVMYWJlbF9hdXRvU2Nyb2xsJyksCiAgICAgICAgICAgIGhlbHB0aXA6IHNldHRpbmdzLmdldE1zZygnaGVscHRpcF9hdXRvU2Nyb2xsJykKICAgICAgICB9fSwKICAgICAgICBnZXQgcmVwbHlMYW5ndWFnZSgpIHsgcmV0dXJuIHsgdHlwZTogJ3Byb21wdCcsIHN5bWJvbDogJ/CfjJAnLAogICAgICAgICAgICBsYWJlbDogc2V0dGluZ3MuZ2V0TXNnKCdtZW51TGFiZWxfcmVwbHlMYW5nJyksCiAgICAgICAgICAgIGhlbHB0aXA6IHNldHRpbmdzLmdldE1zZygncHJvbXB0X3VwZGF0ZVJlcGx5TGFuZycpLAogICAgICAgICAgICBzdGF0dXM6IHdpbmRvdy5jb25maWcucmVwbHlMYW5ndWFnZQogICAgICAgIH19LAogICAgICAgIGdldCByZXBseVRvcGljKCkgeyByZXR1cm4geyB0eXBlOiAncHJvbXB0Jywgc3ltYm9sOiAn8J+noCcsCiAgICAgICAgICAgIGxhYmVsOiBzZXR0aW5ncy5nZXRNc2coJ21lbnVMYWJlbF9yZXBseVRvcGljJyksCiAgICAgICAgICAgIGhlbHB0aXA6IHNldHRpbmdzLmdldE1zZygncHJvbXB0X3VwZGF0ZVJlcGx5VG9waWMnKSwKICAgICAgICAgICAgc3RhdHVzOiB3aW5kb3cuY29uZmlnLnJlcGx5VG9waWMKICAgICAgICB9fSwKICAgICAgICBnZXQgcmVwbHlJbnRlcnZhbCgpIHsgcmV0dXJuIHsgdHlwZTogJ3Byb21wdCcsIHN5bWJvbDogJ+KMmicsCiAgICAgICAgICAgIGxhYmVsOiBzZXR0aW5ncy5nZXRNc2coJ21lbnVMYWJlbF9yZXBseUludCcpLAogICAgICAgICAgICBoZWxwdGlwOiBzZXR0aW5ncy5nZXRNc2coJ3Byb21wdF91cGRhdGVSZXBseUludCcpLAogICAgICAgICAgICBzdGF0dXM6IGAke3dpbmRvdy5jb25maWcucmVwbHlJbnRlcnZhbH1zYAogICAgICAgIH19CiAgICB9LAoKICAgIGdldE1zZyhrZXkpIHsKICAgICAgICByZXR1cm4gdHlwZW9mIEdNX2luZm8gIT0gJ3VuZGVmaW5lZCcgPyB0aGlzLmltcG9ydHMuYXBwLm1zZ3Nba2V5XSA6IGNocm9tZS5pMThuLmdldE1lc3NhZ2Uoa2V5KSB9LAoKICAgIGxvYWQoLi4ua2V5cykgewogICAgICAgIGtleXMgPSBrZXlzLmZsYXQoKSAvLyBmbGF0dGVuIGFycmF5IGFyZ3MgbmVzdGVkIGJ5IHNwcmVhZCBvcGVyYXRvcgogICAgICAgIGlmICh0eXBlb2YgR01faW5mbyAhPSAndW5kZWZpbmVkJykgLy8gc3luY2hyb25vdXNseSBsb2FkIGZyb20gdXNlcnNjcmlwdCBtYW5hZ2VyIHN0b3JhZ2UKICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICBjb25maWdba2V5XSA9IEdNX2dldFZhbHVlKGAke3RoaXMuaW1wb3J0cy5hcHAuY29uZmlnS2V5UHJlZml4fV8ke2tleX1gLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbHNba2V5XT8uZGVmYXVsdFZhbCA/PyB0aGlzLmNvbnRyb2xzW2tleV0/LnR5cGUgPT0gJ3RvZ2dsZScpCiAgICAgICAgICAgIH0pCiAgICAgICAgZWxzZSAvLyBhc3luY2hyb25vdXNseSBsb2FkIGZyb20gYnJvd3NlciBleHRlbnNpb24gc3RvcmFnZQogICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoa2V5cy5tYXAoYXN5bmMga2V5ID0+IC8vIHJlc29sdmUgcHJvbWlzZSB3aGVuIGFsbCBrZXlzIGxvYWQKICAgICAgICAgICAgICAgIHdpbmRvdy5jb25maWdba2V5XSA9IChhd2FpdCBjaHJvbWUuc3RvcmFnZS5zeW5jLmdldChrZXkpKVtrZXldCiAgICAgICAgICAgICAgICAgICAgPz8gdGhpcy5jb250cm9sc1trZXldPy5kZWZhdWx0VmFsID8/IHRoaXMuY29udHJvbHNba2V5XT8udHlwZSA9PSAndG9nZ2xlJwogICAgICAgICAgICApKQogICAgfSwKCiAgICBzYXZlKGtleSwgdmFsKSB7CiAgICAgICAgaWYgKHR5cGVvZiBHTV9pbmZvICE9ICd1bmRlZmluZWQnKSAvLyBzYXZlIHRvIHVzZXJzY3JpcHQgbWFuYWdlciBzdG9yYWdlCiAgICAgICAgICAgIEdNX3NldFZhbHVlKGAke3RoaXMuaW1wb3J0cy5hcHAuY29uZmlnS2V5UHJlZml4fV8ke2tleX1gLCB2YWwpCiAgICAgICAgZWxzZSAvLyBzYXZlIHRvIGJyb3dzZXIgZXh0ZW5zaW9uIHN0b3JhZ2UKICAgICAgICAgICAgY2hyb21lLnN0b3JhZ2Uuc3luYy5zZXQoeyBba2V5XTogdmFsIH0pCiAgICAgICAgd2luZG93LmNvbmZpZ1trZXldID0gdmFsIC8vIHNhdmUgdG8gbWVtb3J5CiAgICB9Cn07Cg=="}]},{"name":"Return YouTube Dislike","options":{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":true,"orig_connects":["youtube.com"],"orig_excludes":["*://music.youtube.com/*","*://*.music.youtube.com/*"],"orig_includes":[],"orig_matches":["*://*.youtube.com/*"],"orig_noframes":null,"orig_run_at":"document-end","orig_run_in":[],"orig_tags":[],"use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":[]},"run_at":null,"run_in":null,"sandbox":null,"tags":[],"unwrap":null,"user_modified":null},"storage":{"ts":1764084296607,"data":{}},"enabled":true,"position":4,"file_url":"https://update.greasyfork.org/scripts/436115/Return%20YouTube%20Dislike.user.js","uuid":"081e31b5-7fe6-4584-af49-5d17573f01e7","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICBSZXR1cm4gWW91VHViZSBEaXNsaWtlCi8vIEBuYW1lc3BhY2UgICAgaHR0cHM6Ly93d3cucmV0dXJueW91dHViZWRpc2xpa2UuY29tLwovLyBAaG9tZXBhZ2UgICAgIGh0dHBzOi8vd3d3LnJldHVybnlvdXR1YmVkaXNsaWtlLmNvbS8KLy8gQHZlcnNpb24gICAgICAzLjEuNQovLyBAZW5jb2RpbmcgICAgIHV0Zi04Ci8vIEBkZXNjcmlwdGlvbiAgUmV0dXJuIG9mIHRoZSBZb3VUdWJlIERpc2xpa2UsIEJhc2VkIG9mZiBodHRwczovL3d3dy5yZXR1cm55b3V0dWJlZGlzbGlrZS5jb20vCi8vIEBpY29uICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL0FuYXJpb3MvcmV0dXJuLXlvdXR1YmUtZGlzbGlrZS9yYXcvbWFpbi9JY29ucy9SZXR1cm4lMjBZb3V0dWJlJTIwRGlzbGlrZSUyMC0lMjBUcmFuc3BhcmVudC5wbmcKLy8gQGF1dGhvciAgICAgICBBbmFyaW9zICYgSlJXUgovLyBAbWF0Y2ggICAgICAgICo6Ly8qLnlvdXR1YmUuY29tLyoKLy8gQGV4Y2x1ZGUgICAgICAqOi8vbXVzaWMueW91dHViZS5jb20vKgovLyBAZXhjbHVkZSAgICAgICo6Ly8qLm11c2ljLnlvdXR1YmUuY29tLyoKLy8gQGNvbXBhdGlibGUgICBjaHJvbWUKLy8gQGNvbXBhdGlibGUgICBmaXJlZm94Ci8vIEBjb21wYXRpYmxlICAgb3BlcmEKLy8gQGNvbXBhdGlibGUgICBzYWZhcmkKLy8gQGNvbXBhdGlibGUgICBlZGdlCi8vIEBncmFudCAgICAgICAgR00ueG1sSHR0cFJlcXVlc3QKLy8gQGNvbm5lY3QgICAgICB5b3V0dWJlLmNvbQovLyBAZ3JhbnQgICAgICAgIEdNX2FkZFN0eWxlCi8vIEBydW4tYXQgICAgICAgZG9jdW1lbnQtZW5kCi8vIEBkb3dubG9hZFVSTCBodHRwczovL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZy9zY3JpcHRzLzQzNjExNS9SZXR1cm4lMjBZb3VUdWJlJTIwRGlzbGlrZS51c2VyLmpzCi8vIEB1cGRhdGVVUkwgaHR0cHM6Ly91cGRhdGUuZ3JlYXN5Zm9yay5vcmcvc2NyaXB0cy80MzYxMTUvUmV0dXJuJTIwWW91VHViZSUyMERpc2xpa2UubWV0YS5qcwovLyA9PS9Vc2VyU2NyaXB0PT0KCmNvbnN0IGV4dENvbmZpZyA9IHsKICAvLyBCRUdJTiBVU0VSIE9QVElPTlMKICAvLyBZb3UgbWF5IGNoYW5nZSB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyB0byBhbGxvd2VkIHZhbHVlcyBsaXN0ZWQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnJhY2tldHMgKCogbWVhbnMgZGVmYXVsdCkuIEtlZXAgdGhlIHN0eWxlIGFuZCBrZXl3b3JkcyBpbnRhY3QuCiAgc2hvd1VwZGF0ZVBvcHVwOiBmYWxzZSwgLy8gW3RydWUsIGZhbHNlKl0gU2hvdyBhIHBvcHVwIHRhYiBhZnRlciBleHRlbnNpb24gdXBkYXRlIChTZWUgd2hhdCdzIG5ldykKICBkaXNhYmxlVm90ZVN1Ym1pc3Npb246IGZhbHNlLCAvLyBbdHJ1ZSwgZmFsc2UqXSBEaXNhYmxlIGxpa2UvZGlzbGlrZSBzdWJtaXNzaW9uIChTdG9wcyBjb3VudGluZyB5b3VyIGxpa2VzIGFuZCBkaXNsaWtlcykKICBkaXNhYmxlTG9nZ2luZzogdHJ1ZSwgLy8gW3RydWUqLCBmYWxzZV0gRGlzYWJsZSBMb2dnaW5nIEFQSSBSZXNwb25zZSBpbiBKYXZhU2NyaXB0IENvbnNvbGUuCiAgY29sb3JlZFRodW1iczogZmFsc2UsIC8vIFt0cnVlLCBmYWxzZSpdIENvbG9yaXplIHRodW1icyAoVXNlIGN1c3RvbSBjb2xvcnMgZm9yIHRodW1iIGljb25zKQogIGNvbG9yZWRCYXI6IGZhbHNlLCAvLyBbdHJ1ZSwgZmFsc2UqXSBDb2xvcml6ZSByYXRpbyBiYXIgKFVzZSBjdXN0b20gY29sb3JzIGZvciByYXRpbyBiYXIpCiAgY29sb3JUaGVtZTogImNsYXNzaWMiLCAvLyBbY2xhc3NpYyosIGFjY2Vzc2libGUsIG5lb25dIENvbG9yIHRoZW1lIChyZWQvZ3JlZW4sIGJsdWUveWVsbG93LCBwaW5rL2N5YW4pCiAgbnVtYmVyRGlzcGxheUZvcm1hdDogImNvbXBhY3RTaG9ydCIsIC8vIFtjb21wYWN0U2hvcnQqLCBjb21wYWN0TG9uZywgc3RhbmRhcmRdIE51bWJlciBmb3JtYXQgKEZvciBub24tRW5nbGlzaCBsb2NhbGUgdXNlcnMsIHlvdSBtYXkgYmUgYWJsZSB0byBpbXByb3ZlIGFwcGVhcmFuY2Ugd2l0aCBhIGRpZmZlcmVudCBvcHRpb24uIFBsZWFzZSBmaWxlIGEgZmVhdHVyZSByZXF1ZXN0IGlmIHlvdXIgbG9jYWxlIGlzIG5vdCBjb3ZlcmVkKQogIG51bWJlckRpc3BsYXlSb3VuZERvd246IHRydWUsIC8vIFt0cnVlKiwgZmFsc2VdIFJvdW5kIGRvd24gbnVtYmVycyAoU2hvdyByb3VuZGVkIGRvd24gbnVtYmVycykKICB0b29sdGlwUGVyY2VudGFnZU1vZGU6ICJub25lIiwgLy8gW25vbmUqLCBkYXNoX2xpa2UsIGRhc2hfZGlzbGlrZSwgYm90aCwgb25seV9saWtlLCBvbmx5X2Rpc2xpa2VdIE1vZGUgb2Ygc2hvd2luZyBwZXJjZW50YWdlIGluIGxpa2UvZGlzbGlrZSBiYXIgdG9vbHRpcC4KICBudW1iZXJEaXNwbGF5UmVmb3JtYXRMaWtlczogZmFsc2UsIC8vIFt0cnVlLCBmYWxzZSpdIFJlLWZvcm1hdCBsaWtlIG51bWJlcnMgKE1ha2UgbGlrZXMgYW5kIGRpc2xpa2VzIGZvcm1hdCBjb25zaXN0ZW50KQogIHJhdGVCYXJFbmFibGVkOiBmYWxzZSwgLy8gW3RydWUsIGZhbHNlKl0gRW5hYmxlcyByYXRpbyBiYXIgdW5kZXIgbGlrZS9kaXNsaWtlIGJ1dHRvbnMKICAvLyBFTkQgVVNFUiBPUFRJT05TCn07Cgpjb25zdCBMSUtFRF9TVEFURSA9ICJMSUtFRF9TVEFURSI7CmNvbnN0IERJU0xJS0VEX1NUQVRFID0gIkRJU0xJS0VEX1NUQVRFIjsKY29uc3QgTkVVVFJBTF9TVEFURSA9ICJORVVUUkFMX1NUQVRFIjsKbGV0IHByZXZpb3VzU3RhdGUgPSAzOyAvLzE9TElLRUQsIDI9RElTTElLRUQsIDM9TkVVVFJBTApsZXQgbGlrZXN2YWx1ZSA9IDA7CmxldCBkaXNsaWtlc3ZhbHVlID0gMDsKbGV0IHByZU5hdmlnYXRlTGlrZUJ1dHRvbiA9IG51bGw7CgpsZXQgaXNNb2JpbGUgPSBsb2NhdGlvbi5ob3N0bmFtZSA9PSAibS55b3V0dWJlLmNvbSI7CmxldCBpc1Nob3J0cyA9ICgpID0+IGxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgoIi9zaG9ydHMiKTsKbGV0IG1vYmlsZURpc2xpa2VzID0gMDsKZnVuY3Rpb24gY0xvZyh0ZXh0LCBzdWJ0ZXh0ID0gIiIpIHsKICBpZiAoIWV4dENvbmZpZy5kaXNhYmxlTG9nZ2luZykgewogICAgc3VidGV4dCA9IHN1YnRleHQudHJpbSgpID09PSAiIiA/ICIiIDogYCgke3N1YnRleHR9KWA7IAogICAgY29uc29sZS5sb2coYFtSZXR1cm4gWW91VHViZSBEaXNsaWtlc10gJHt0ZXh0fSAke3N1YnRleHR9YCk7IAogIH0KfQoKZnVuY3Rpb24gaXNJblZpZXdwb3J0KGVsZW1lbnQpIHsKICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICBjb25zdCBoZWlnaHQgPSBpbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OwogIGNvbnN0IHdpZHRoID0gaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7CiAgcmV0dXJuICgKICAgIC8vIFdoZW4gc2hvcnQgKGNoYW5uZWwpIGlzIGlnbm9yZWQsIHRoZSBlbGVtZW50IChsaWtlL2Rpc2xpa2UgQU5EIHNob3J0IGl0c2VsZikgaXMKICAgIC8vIGhpZGRlbiB3aXRoIGEgMCBET01SZWN0LiBJbiB0aGlzIGNhc2UsIGNvbnNpZGVyIGl0IG91dHNpZGUgb2YgVmlld3BvcnQKICAgICEocmVjdC50b3AgPT0gMCAmJiByZWN0LmxlZnQgPT0gMCAmJiByZWN0LmJvdHRvbSA9PSAwICYmIHJlY3QucmlnaHQgPT0gMCkgJiYKICAgIHJlY3QudG9wID49IDAgJiYKICAgIHJlY3QubGVmdCA+PSAwICYmCiAgICByZWN0LmJvdHRvbSA8PSBoZWlnaHQgJiYKICAgIHJlY3QucmlnaHQgPD0gd2lkdGgKICApOwp9CgpmdW5jdGlvbiBnZXRCdXR0b25zKCkgewogIGlmIChpc1Nob3J0cygpKSB7CiAgICBsZXQgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgICBpc01vYmlsZSA/ICJ5dG0tbGlrZS1idXR0b24tcmVuZGVyZXIiIDogIiNsaWtlLWJ1dHRvbiA+IHl0ZC1saWtlLWJ1dHRvbi1yZW5kZXJlciIsCiAgICApOwogICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbGVtZW50cykgewogICAgICBpZiAoaXNJblZpZXdwb3J0KGVsZW1lbnQpKSB7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKGlzTW9iaWxlKSB7CiAgICByZXR1cm4gKAogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2xpbS12aWRlby1hY3Rpb24tYmFyLWFjdGlvbnMgLnNlZ21lbnRlZC1idXR0b25zIikgPz8KICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNsaW0tdmlkZW8tYWN0aW9uLWJhci1hY3Rpb25zIikKICAgICk7CiAgfQogIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS1jb250YWluZXIiKT8ub2Zmc2V0UGFyZW50ID09PSBudWxsKSB7CiAgICByZXR1cm4gKAogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ5dGQtbWVudS1yZW5kZXJlci55dGQtd2F0Y2gtbWV0YWRhdGEgPiBkaXYiKSA/PwogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ5dGQtbWVudS1yZW5kZXJlci55dGQtdmlkZW8tcHJpbWFyeS1pbmZvLXJlbmRlcmVyID4gZGl2IikKICAgICk7CiAgfSBlbHNlIHsKICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS1jb250YWluZXIiKT8ucXVlcnlTZWxlY3RvcigiI3RvcC1sZXZlbC1idXR0b25zLWNvbXB1dGVkIik7CiAgfQp9CgpmdW5jdGlvbiBnZXREaXNsaWtlQnV0dG9uKCkgewogIGlmIChnZXRCdXR0b25zKCkuY2hpbGRyZW5bMF0udGFnTmFtZSA9PT0gIllURC1TRUdNRU5URUQtTElLRS1ESVNMSUtFLUJVVFRPTi1SRU5ERVJFUiIpIHsKICAgIGlmIChnZXRCdXR0b25zKCkuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0gPT09IHVuZGVmaW5lZCkgewogICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlZ21lbnRlZC1kaXNsaWtlLWJ1dHRvbiIpOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIGdldEJ1dHRvbnMoKS5jaGlsZHJlblswXS5jaGlsZHJlblsxXTsKICAgIH0KICB9IGVsc2UgewogICAgaWYgKGdldEJ1dHRvbnMoKS5xdWVyeVNlbGVjdG9yKCJzZWdtZW50ZWQtbGlrZS1kaXNsaWtlLWJ1dHRvbi12aWV3LW1vZGVsIikpIHsKICAgICAgY29uc3QgZGlzbGlrZVZpZXdNb2RlbCA9IGdldEJ1dHRvbnMoKS5xdWVyeVNlbGVjdG9yKCJkaXNsaWtlLWJ1dHRvbi12aWV3LW1vZGVsIik7CiAgICAgIGlmICghZGlzbGlrZVZpZXdNb2RlbCkgY0xvZygiRGlzbGlrZSBidXR0b24gd2Fzbid0IGFkZGVkIHRvIERPTSB5ZXQuLi4iKTsKICAgICAgcmV0dXJuIGRpc2xpa2VWaWV3TW9kZWw7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gZ2V0QnV0dG9ucygpLmNoaWxkcmVuWzFdOwogICAgfQogIH0KfQoKZnVuY3Rpb24gZ2V0TGlrZUJ1dHRvbigpIHsKICByZXR1cm4gZ2V0QnV0dG9ucygpLmNoaWxkcmVuWzBdLnRhZ05hbWUgPT09ICJZVEQtU0VHTUVOVEVELUxJS0UtRElTTElLRS1CVVRUT04tUkVOREVSRVIiCiAgICA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWdtZW50ZWQtbGlrZS1idXR0b24iKSAhPT0gbnVsbAogICAgICA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWdtZW50ZWQtbGlrZS1idXR0b24iKQogICAgICA6IGdldEJ1dHRvbnMoKS5jaGlsZHJlblswXS5jaGlsZHJlblswXQogICAgOiBnZXRCdXR0b25zKCkucXVlcnlTZWxlY3RvcigibGlrZS1idXR0b24tdmlldy1tb2RlbCIpID8/IGdldEJ1dHRvbnMoKS5jaGlsZHJlblswXTsKfQoKZnVuY3Rpb24gZ2V0TGlrZVRleHRDb250YWluZXIoKSB7CiAgcmV0dXJuICgKICAgIGdldExpa2VCdXR0b24oKS5xdWVyeVNlbGVjdG9yKCIjdGV4dCIpID8/CiAgICBnZXRMaWtlQnV0dG9uKCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInl0LWZvcm1hdHRlZC1zdHJpbmciKVswXSA/PwogICAgZ2V0TGlrZUJ1dHRvbigpLnF1ZXJ5U2VsZWN0b3IoInNwYW5bcm9sZT0ndGV4dCddIikKICApOwp9CgpmdW5jdGlvbiBnZXREaXNsaWtlVGV4dENvbnRhaW5lcigpIHsKICBjb25zdCBkaXNsaWtlQnV0dG9uID0gZ2V0RGlzbGlrZUJ1dHRvbigpOwogIGxldCByZXN1bHQgPQogICAgZGlzbGlrZUJ1dHRvbj8ucXVlcnlTZWxlY3RvcigiI3RleHQiKSA/PwogICAgZGlzbGlrZUJ1dHRvbj8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInl0LWZvcm1hdHRlZC1zdHJpbmciKVswXSA/PwogICAgZGlzbGlrZUJ1dHRvbj8ucXVlcnlTZWxlY3Rvcigic3Bhbltyb2xlPSd0ZXh0J10iKTsKICBpZiAocmVzdWx0ID09PSBudWxsKSB7CiAgICBsZXQgdGV4dFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICB0ZXh0U3Bhbi5pZCA9ICJ0ZXh0IjsKICAgIHRleHRTcGFuLnN0eWxlLm1hcmdpbkxlZnQgPSAiNnB4IjsKICAgIGRpc2xpa2VCdXR0b24/LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpLmFwcGVuZENoaWxkKHRleHRTcGFuKTsKICAgIGlmIChkaXNsaWtlQnV0dG9uKSBkaXNsaWtlQnV0dG9uLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpLnN0eWxlLndpZHRoID0gImF1dG8iOwogICAgcmVzdWx0ID0gdGV4dFNwYW47CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KCmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMsIGNhbGxiYWNrKSB7CiAgY29uc3Qgb2JzZXJ2ZXJXcmFwcGVyID0gbmV3IE9iamVjdCgpOwogIG9ic2VydmVyV3JhcHBlci5vcHRpb25zID0gb3B0aW9uczsKICBvYnNlcnZlcldyYXBwZXIub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7CiAgb2JzZXJ2ZXJXcmFwcGVyLm9ic2VydmUgPSBmdW5jdGlvbiAoZWxlbWVudCkgewogICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIHRoaXMub3B0aW9ucyk7CiAgfTsKICBvYnNlcnZlcldyYXBwZXIuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHsKICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpOwogIH07CiAgcmV0dXJuIG9ic2VydmVyV3JhcHBlcjsKfQoKbGV0IHNob3J0c09ic2VydmVyID0gbnVsbDsKCmlmIChpc1Nob3J0cygpICYmICFzaG9ydHNPYnNlcnZlcikgewogIGNMb2coIkluaXRpYWxpemluZyBzaG9ydHMgbXV0YXRpb24gb2JzZXJ2ZXIiKTsKICBzaG9ydHNPYnNlcnZlciA9IGNyZWF0ZU9ic2VydmVyKAogICAgewogICAgICBhdHRyaWJ1dGVzOiB0cnVlLAogICAgfSwKICAgIChtdXRhdGlvbkxpc3QpID0+IHsKICAgICAgbXV0YXRpb25MaXN0LmZvckVhY2goKG11dGF0aW9uKSA9PiB7CiAgICAgICAgaWYgKAogICAgICAgICAgbXV0YXRpb24udHlwZSA9PT0gImF0dHJpYnV0ZXMiICYmCiAgICAgICAgICBtdXRhdGlvbi50YXJnZXQubm9kZU5hbWUgPT09ICJUUC1ZVC1QQVBFUi1CVVRUT04iICYmCiAgICAgICAgICBtdXRhdGlvbi50YXJnZXQuaWQgPT09ICJidXR0b24iCiAgICAgICAgKSB7CiAgICAgICAgICBjTG9nKCJTaG9ydCB0aHVtYiBidXR0b24gc3RhdHVzIGNoYW5nZWQiKTsKICAgICAgICAgIGlmIChtdXRhdGlvbi50YXJnZXQuZ2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiKSA9PT0gInRydWUiKSB7CiAgICAgICAgICAgIG11dGF0aW9uLnRhcmdldC5zdHlsZS5jb2xvciA9CiAgICAgICAgICAgICAgbXV0YXRpb24udGFyZ2V0LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5pZCA9PT0gImxpa2UtYnV0dG9uIgogICAgICAgICAgICAgICAgPyBnZXRDb2xvckZyb21UaGVtZSh0cnVlKQogICAgICAgICAgICAgICAgOiBnZXRDb2xvckZyb21UaGVtZShmYWxzZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBtdXRhdGlvbi50YXJnZXQuc3R5bGUuY29sb3IgPSAidW5zZXQiOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjTG9nKCJVbmV4cGVjdGVkIG11dGF0aW9uIG9ic2VydmVyIGV2ZW50OiAiICsgbXV0YXRpb24udGFyZ2V0ICsgbXV0YXRpb24udHlwZSk7CiAgICAgIH0pOwogICAgfSwKICApOwp9CgpmdW5jdGlvbiBpc1ZpZGVvTGlrZWQoKSB7CiAgaWYgKGlzTW9iaWxlKSB7CiAgICByZXR1cm4gZ2V0TGlrZUJ1dHRvbigpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpID09ICJ0cnVlIjsKICB9CiAgcmV0dXJuIGdldExpa2VCdXR0b24oKS5jbGFzc0xpc3QuY29udGFpbnMoInN0eWxlLWRlZmF1bHQtYWN0aXZlIik7Cn0KCmZ1bmN0aW9uIGlzVmlkZW9EaXNsaWtlZCgpIHsKICBpZiAoaXNNb2JpbGUpIHsKICAgIHJldHVybiBnZXREaXNsaWtlQnV0dG9uKCk/LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpID09ICJ0cnVlIjsKICB9CiAgcmV0dXJuIGdldERpc2xpa2VCdXR0b24oKT8uY2xhc3NMaXN0LmNvbnRhaW5zKCJzdHlsZS1kZWZhdWx0LWFjdGl2ZSIpOwp9CgpmdW5jdGlvbiBpc1ZpZGVvTm90TGlrZWQoKSB7CiAgaWYgKGlzTW9iaWxlKSB7CiAgICByZXR1cm4gIWlzVmlkZW9MaWtlZCgpOwogIH0KICByZXR1cm4gZ2V0TGlrZUJ1dHRvbigpLmNsYXNzTGlzdC5jb250YWlucygic3R5bGUtdGV4dCIpOwp9CgpmdW5jdGlvbiBpc1ZpZGVvTm90RGlzbGlrZWQoKSB7CiAgaWYgKGlzTW9iaWxlKSB7CiAgICByZXR1cm4gIWlzVmlkZW9EaXNsaWtlZCgpOwogIH0KICByZXR1cm4gZ2V0RGlzbGlrZUJ1dHRvbigpPy5jbGFzc0xpc3QuY29udGFpbnMoInN0eWxlLXRleHQiKTsKfQoKZnVuY3Rpb24gY2hlY2tGb3JVc2VyQXZhdGFyQnV0dG9uKCkgewogIGlmIChpc01vYmlsZSkgewogICAgcmV0dXJuOwogIH0KICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2F2YXRhci1idG4iKSkgewogICAgcmV0dXJuIHRydWU7CiAgfSBlbHNlIHsKICAgIHJldHVybiBmYWxzZTsKICB9Cn0KCmZ1bmN0aW9uIGdldFN0YXRlKCkgewogIGlmIChpc1ZpZGVvTGlrZWQoKSkgewogICAgcmV0dXJuIExJS0VEX1NUQVRFOwogIH0KICBpZiAoaXNWaWRlb0Rpc2xpa2VkKCkpIHsKICAgIHJldHVybiBESVNMSUtFRF9TVEFURTsKICB9CiAgcmV0dXJuIE5FVVRSQUxfU1RBVEU7Cn0KCmZ1bmN0aW9uIHNldExpa2VzKGxpa2VzQ291bnQpIHsKICBpZiAoaXNNb2JpbGUpIHsKICAgIGdldEJ1dHRvbnMoKS5jaGlsZHJlblswXS5xdWVyeVNlbGVjdG9yKCIuYnV0dG9uLXJlbmRlcmVyLXRleHQiKS5pbm5lclRleHQgPSBsaWtlc0NvdW50OwogICAgcmV0dXJuOwogIH0KICBnZXRMaWtlVGV4dENvbnRhaW5lcigpLmlubmVyVGV4dCA9IGxpa2VzQ291bnQ7Cn0KCmZ1bmN0aW9uIHNldERpc2xpa2VzKGRpc2xpa2VzQ291bnQpIHsKICBpZiAoaXNNb2JpbGUpIHsKICAgIG1vYmlsZURpc2xpa2VzID0gZGlzbGlrZXNDb3VudDsKICAgIHJldHVybjsKICB9CgogIGNvbnN0IF9jb250YWluZXIgPSBnZXREaXNsaWtlVGV4dENvbnRhaW5lcigpOwogIF9jb250YWluZXI/LnJlbW92ZUF0dHJpYnV0ZSgiaXMtZW1wdHkiKTsKICBpZiAoX2NvbnRhaW5lcj8uaW5uZXJUZXh0ICE9PSBkaXNsaWtlc0NvdW50KSB7CiAgICBfY29udGFpbmVyLmlubmVyVGV4dCA9IGRpc2xpa2VzQ291bnQ7CiAgfQp9CgpmdW5jdGlvbiBnZXRMaWtlQ291bnRGcm9tQnV0dG9uKCkgewogIHRyeSB7CiAgICBpZiAoaXNTaG9ydHMoKSkgewogICAgICAvL1lvdXR1YmUgU2hvcnRzIGRvbid0IHdvcmsgd2l0aCB0aGlzIHF1ZXJ5LiBJdCdzIG5vdCBuZWNlc3Nhcnk7IHdlIGNhbiBza2lwIGl0IGFuZCBzdGlsbCBzZWUgdGhlIHJlc3VsdHMuCiAgICAgIC8vSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGZpeCB0aGlzIGZ1bmN0aW9uLCBidXQgaXQncyBub3QgY3JpdGljYWwgdG8gc2hvd2luZyB0aGUgZGlzbGlrZSBjb3VudC4KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgbGV0IGxpa2VCdXR0b24gPQogICAgICBnZXRMaWtlQnV0dG9uKCkucXVlcnlTZWxlY3RvcigieXQtZm9ybWF0dGVkLXN0cmluZyN0ZXh0IikgPz8gZ2V0TGlrZUJ1dHRvbigpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpOwoKICAgIGxldCBsaWtlc1N0ciA9IGxpa2VCdXR0b24uZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIikucmVwbGFjZSgvXEQvZywgIiIpOwogICAgcmV0dXJuIGxpa2VzU3RyLmxlbmd0aCA+IDAgPyBwYXJzZUludChsaWtlc1N0cikgOiBmYWxzZTsKICB9IGNhdGNoIHsKICAgIHJldHVybiBmYWxzZTsKICB9Cn0KCih0eXBlb2YgR01fYWRkU3R5bGUgIT0gInVuZGVmaW5lZCIKICA/IEdNX2FkZFN0eWxlCiAgOiAoc3R5bGVzKSA9PiB7CiAgICAgIGxldCBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOwogICAgICBzdHlsZU5vZGUudHlwZSA9ICJ0ZXh0L2NzcyI7CiAgICAgIHN0eWxlTm9kZS5pbm5lclRleHQgPSBzdHlsZXM7CiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVOb2RlKTsKICAgIH0pKGAKICAgICNyZXR1cm4teW91dHViZS1kaXNsaWtlLWJhci1jb250YWluZXIgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS15dC1zcGVjLWljb24tZGlzYWJsZWQpOwogICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICB9CgogICAgI3JldHVybi15b3V0dWJlLWRpc2xpa2UtYmFyIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0teXQtc3BlYy10ZXh0LXByaW1hcnkpOwogICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDsKICAgIH0KCiAgICAucnlkLXRvb2x0aXAgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBoZWlnaHQ6IDJweDsKICAgICAgYm90dG9tOiAtMTBweDsKICAgIH0KCiAgICAucnlkLXRvb2x0aXAtYmFyLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDJweDsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBwYWRkaW5nLXRvcDogNnB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDsKICAgICAgdG9wOiAtNnB4OwogICAgfQoKICAgIHl0ZC1tZW51LXJlbmRlcmVyLnl0ZC13YXRjaC1tZXRhZGF0YSB7CiAgICAgIG92ZXJmbG93LXk6IHZpc2libGUgIWltcG9ydGFudDsKICAgIH0KICAgIAogICAgI3RvcC1sZXZlbC1idXR0b25zLWNvbXB1dGVkIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CiAgICB9CiAgYCk7CgpmdW5jdGlvbiBjcmVhdGVSYXRlQmFyKGxpa2VzLCBkaXNsaWtlcykgewogIGlmIChpc01vYmlsZSB8fCAhZXh0Q29uZmlnLnJhdGVCYXJFbmFibGVkKSB7CiAgICByZXR1cm47CiAgfQogIGxldCByYXRlQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJldHVybi15b3V0dWJlLWRpc2xpa2UtYmFyLWNvbnRhaW5lciIpOwoKICBjb25zdCB3aWR0aFB4ID0gZ2V0TGlrZUJ1dHRvbigpLmNsaWVudFdpZHRoICsgKGdldERpc2xpa2VCdXR0b24oKT8uY2xpZW50V2lkdGggPz8gNTIpOwoKICBjb25zdCB3aWR0aFBlcmNlbnQgPSBsaWtlcyArIGRpc2xpa2VzID4gMCA/IChsaWtlcyAvIChsaWtlcyArIGRpc2xpa2VzKSkgKiAxMDAgOiA1MDsKCiAgdmFyIGxpa2VQZXJjZW50YWdlID0gcGFyc2VGbG9hdCh3aWR0aFBlcmNlbnQudG9GaXhlZCgxKSk7CiAgY29uc3QgZGlzbGlrZVBlcmNlbnRhZ2UgPSAoMTAwIC0gbGlrZVBlcmNlbnRhZ2UpLnRvTG9jYWxlU3RyaW5nKCk7CiAgbGlrZVBlcmNlbnRhZ2UgPSBsaWtlUGVyY2VudGFnZS50b0xvY2FsZVN0cmluZygpOwoKICB2YXIgdG9vbHRpcElubmVySFRNTDsKICBzd2l0Y2ggKGV4dENvbmZpZy50b29sdGlwUGVyY2VudGFnZU1vZGUpIHsKICAgIGNhc2UgImRhc2hfbGlrZSI6CiAgICAgIHRvb2x0aXBJbm5lckhUTUwgPSBgJHtsaWtlcy50b0xvY2FsZVN0cmluZygpfSZuYnNwOy8mbmJzcDske2Rpc2xpa2VzLnRvTG9jYWxlU3RyaW5nKCl9Jm5ic3A7Jm5ic3A7LSZuYnNwOyZuYnNwOyR7bGlrZVBlcmNlbnRhZ2V9JWA7CiAgICAgIGJyZWFrOwogICAgY2FzZSAiZGFzaF9kaXNsaWtlIjoKICAgICAgdG9vbHRpcElubmVySFRNTCA9IGAke2xpa2VzLnRvTG9jYWxlU3RyaW5nKCl9Jm5ic3A7LyZuYnNwOyR7ZGlzbGlrZXMudG9Mb2NhbGVTdHJpbmcoKX0mbmJzcDsmbmJzcDstJm5ic3A7Jm5ic3A7JHtkaXNsaWtlUGVyY2VudGFnZX0lYDsKICAgICAgYnJlYWs7CiAgICBjYXNlICJib3RoIjoKICAgICAgdG9vbHRpcElubmVySFRNTCA9IGAke2xpa2VQZXJjZW50YWdlfSUmbmJzcDsvJm5ic3A7JHtkaXNsaWtlUGVyY2VudGFnZX0lYDsKICAgICAgYnJlYWs7CiAgICBjYXNlICJvbmx5X2xpa2UiOgogICAgICB0b29sdGlwSW5uZXJIVE1MID0gYCR7bGlrZVBlcmNlbnRhZ2V9JWA7CiAgICAgIGJyZWFrOwogICAgY2FzZSAib25seV9kaXNsaWtlIjoKICAgICAgdG9vbHRpcElubmVySFRNTCA9IGAke2Rpc2xpa2VQZXJjZW50YWdlfSVgOwogICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgIHRvb2x0aXBJbm5lckhUTUwgPSBgJHtsaWtlcy50b0xvY2FsZVN0cmluZygpfSZuYnNwOy8mbmJzcDske2Rpc2xpa2VzLnRvTG9jYWxlU3RyaW5nKCl9YDsKICB9CgogIGlmICghcmF0ZUJhciAmJiAhaXNNb2JpbGUpIHsKICAgIGxldCBjb2xvckxpa2VTdHlsZSA9ICIiOwogICAgbGV0IGNvbG9yRGlzbGlrZVN0eWxlID0gIiI7CiAgICBpZiAoZXh0Q29uZmlnLmNvbG9yZWRCYXIpIHsKICAgICAgY29sb3JMaWtlU3R5bGUgPSAiOyBiYWNrZ3JvdW5kLWNvbG9yOiAiICsgZ2V0Q29sb3JGcm9tVGhlbWUodHJ1ZSk7CiAgICAgIGNvbG9yRGlzbGlrZVN0eWxlID0gIjsgYmFja2dyb3VuZC1jb2xvcjogIiArIGdldENvbG9yRnJvbVRoZW1lKGZhbHNlKTsKICAgIH0KCiAgICBnZXRCdXR0b25zKCkuaW5zZXJ0QWRqYWNlbnRIVE1MKAogICAgICAiYmVmb3JlZW5kIiwKICAgICAgYAogICAgICAgIDxkaXYgY2xhc3M9InJ5ZC10b29sdGlwIiBzdHlsZT0id2lkdGg6ICR7d2lkdGhQeH1weCI+CiAgICAgICAgPGRpdiBjbGFzcz0icnlkLXRvb2x0aXAtYmFyLWNvbnRhaW5lciI+CiAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGlkPSJyZXR1cm4teW91dHViZS1kaXNsaWtlLWJhci1jb250YWluZXIiCiAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDJweDske2NvbG9yRGlzbGlrZVN0eWxlfSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgIGlkPSJyZXR1cm4teW91dHViZS1kaXNsaWtlLWJhciIKICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7d2lkdGhQZXJjZW50fSU7IGhlaWdodDogMTAwJSR7Y29sb3JEaXNsaWtlU3R5bGV9IgogICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dHAteXQtcGFwZXItdG9vbHRpcCBwb3NpdGlvbj0idG9wIiBpZD0icnlkLWRpc2xpa2UtdG9vbHRpcCIgY2xhc3M9InN0eWxlLXNjb3BlIHl0ZC1zZW50aW1lbnQtYmFyLXJlbmRlcmVyIiByb2xlPSJ0b29sdGlwIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgIDwhLS1jc3MtYnVpbGQ6c2hhZHktLT4ke3Rvb2x0aXBJbm5lckhUTUx9CiAgICAgICAgPC90cC15dC1wYXBlci10b29sdGlwPgogICAgICAgIDwvZGl2PgpgLAogICAgKTsKICAgIGxldCBkZXNjcmlwdGlvbkFuZEFjdGlvbnNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcC1yb3ciKTsKICAgIGRlc2NyaXB0aW9uQW5kQWN0aW9uc0VsZW1lbnQuc3R5bGUuYm9yZGVyQm90dG9tID0gIjFweCBzb2xpZCB2YXIoLS15dC1zcGVjLTEwLXBlcmNlbnQtbGF5ZXIpIjsKICAgIGRlc2NyaXB0aW9uQW5kQWN0aW9uc0VsZW1lbnQuc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMHB4IjsKICB9IGVsc2UgewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnJ5ZC10b29sdGlwIikuc3R5bGUud2lkdGggPSB3aWR0aFB4ICsgInB4IjsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXR1cm4teW91dHViZS1kaXNsaWtlLWJhciIpLnN0eWxlLndpZHRoID0gd2lkdGhQZXJjZW50ICsgIiUiOwoKICAgIGlmIChleHRDb25maWcuY29sb3JlZEJhcikgewogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmV0dXJuLXlvdXR1YmUtZGlzbGlrZS1iYXItY29udGFpbmVyIikuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gZ2V0Q29sb3JGcm9tVGhlbWUoZmFsc2UpOwogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmV0dXJuLXlvdXR1YmUtZGlzbGlrZS1iYXIiKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBnZXRDb2xvckZyb21UaGVtZSh0cnVlKTsKICAgIH0KICB9Cn0KCmZ1bmN0aW9uIHNldFN0YXRlKCkgewogIGNMb2coIkZldGNoaW5nIHZvdGVzLi4uIik7CiAgbGV0IHN0YXRzU2V0ID0gZmFsc2U7CgogIGZldGNoKGBodHRwczovL3JldHVybnlvdXR1YmVkaXNsaWtlYXBpLmNvbS92b3Rlcz92aWRlb0lkPSR7Z2V0VmlkZW9JZCgpfWApLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICByZXNwb25zZS5qc29uKCkudGhlbigoanNvbikgPT4gewogICAgICBpZiAoanNvbiAmJiAhKCJ0cmFjZUlkIiBpbiByZXNwb25zZSkgJiYgIXN0YXRzU2V0KSB7CiAgICAgICAgY29uc3QgeyBkaXNsaWtlcywgbGlrZXMgfSA9IGpzb247CiAgICAgICAgY0xvZyhgUmVjZWl2ZWQgY291bnQ6ICR7ZGlzbGlrZXN9YCk7CiAgICAgICAgbGlrZXN2YWx1ZSA9IGxpa2VzOwogICAgICAgIGRpc2xpa2VzdmFsdWUgPSBkaXNsaWtlczsKICAgICAgICBzZXREaXNsaWtlcyhudW1iZXJGb3JtYXQoZGlzbGlrZXMpKTsKICAgICAgICBpZiAoZXh0Q29uZmlnLm51bWJlckRpc3BsYXlSZWZvcm1hdExpa2VzID09PSB0cnVlKSB7CiAgICAgICAgICBjb25zdCBuYXRpdmVMaWtlcyA9IGdldExpa2VDb3VudEZyb21CdXR0b24oKTsKICAgICAgICAgIGlmIChuYXRpdmVMaWtlcyAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgc2V0TGlrZXMobnVtYmVyRm9ybWF0KG5hdGl2ZUxpa2VzKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNyZWF0ZVJhdGVCYXIobGlrZXMsIGRpc2xpa2VzKTsKICAgICAgICBpZiAoZXh0Q29uZmlnLmNvbG9yZWRUaHVtYnMgPT09IHRydWUpIHsKICAgICAgICAgIGNvbnN0IGRpc2xpa2VCdXR0b24gPSBnZXREaXNsaWtlQnV0dG9uKCk7CiAgICAgICAgICBpZiAoaXNTaG9ydHMoKSkgewogICAgICAgICAgICAvLyBmb3Igc2hvcnRzLCBsZWF2ZSBkZWFjdGl2ZWQgYnV0dG9ucyBpbiBkZWZhdWx0IGNvbG9yCiAgICAgICAgICAgIGNvbnN0IHNob3J0TGlrZUJ1dHRvbiA9IGdldExpa2VCdXR0b24oKS5xdWVyeVNlbGVjdG9yKCJ0cC15dC1wYXBlci1idXR0b24jYnV0dG9uIik7CiAgICAgICAgICAgIGNvbnN0IHNob3J0RGlzbGlrZUJ1dHRvbiA9IGRpc2xpa2VCdXR0b24/LnF1ZXJ5U2VsZWN0b3IoInRwLXl0LXBhcGVyLWJ1dHRvbiNidXR0b24iKTsKICAgICAgICAgICAgaWYgKHNob3J0TGlrZUJ1dHRvbi5nZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIpID09PSAidHJ1ZSIpIHsKICAgICAgICAgICAgICBzaG9ydExpa2VCdXR0b24uc3R5bGUuY29sb3IgPSBnZXRDb2xvckZyb21UaGVtZSh0cnVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc2hvcnREaXNsaWtlQnV0dG9uICYmIHNob3J0RGlzbGlrZUJ1dHRvbi5nZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIpID09PSAidHJ1ZSIpIHsKICAgICAgICAgICAgICBzaG9ydERpc2xpa2VCdXR0b24uc3R5bGUuY29sb3IgPSBnZXRDb2xvckZyb21UaGVtZShmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2hvcnRzT2JzZXJ2ZXIub2JzZXJ2ZShzaG9ydExpa2VCdXR0b24pOwogICAgICAgICAgICBzaG9ydHNPYnNlcnZlci5vYnNlcnZlKHNob3J0RGlzbGlrZUJ1dHRvbik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZXRMaWtlQnV0dG9uKCkuc3R5bGUuY29sb3IgPSBnZXRDb2xvckZyb21UaGVtZSh0cnVlKTsKICAgICAgICAgICAgaWYgKGRpc2xpa2VCdXR0b24pIGRpc2xpa2VCdXR0b24uc3R5bGUuY29sb3IgPSBnZXRDb2xvckZyb21UaGVtZShmYWxzZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9KTsKfQoKZnVuY3Rpb24gdXBkYXRlRE9NRGlzbGlrZXMoKSB7CiAgc2V0RGlzbGlrZXMobnVtYmVyRm9ybWF0KGRpc2xpa2VzdmFsdWUpKTsKICBjcmVhdGVSYXRlQmFyKGxpa2VzdmFsdWUsIGRpc2xpa2VzdmFsdWUpOwp9CgpmdW5jdGlvbiBsaWtlQ2xpY2tlZCgpIHsKICBpZiAoY2hlY2tGb3JVc2VyQXZhdGFyQnV0dG9uKCkgPT0gdHJ1ZSkgewogICAgaWYgKHByZXZpb3VzU3RhdGUgPT0gMSkgewogICAgICBsaWtlc3ZhbHVlLS07CiAgICAgIHVwZGF0ZURPTURpc2xpa2VzKCk7CiAgICAgIHByZXZpb3VzU3RhdGUgPSAzOwogICAgfSBlbHNlIGlmIChwcmV2aW91c1N0YXRlID09IDIpIHsKICAgICAgbGlrZXN2YWx1ZSsrOwogICAgICBkaXNsaWtlc3ZhbHVlLS07CiAgICAgIHVwZGF0ZURPTURpc2xpa2VzKCk7CiAgICAgIHByZXZpb3VzU3RhdGUgPSAxOwogICAgfSBlbHNlIGlmIChwcmV2aW91c1N0YXRlID09IDMpIHsKICAgICAgbGlrZXN2YWx1ZSsrOwogICAgICB1cGRhdGVET01EaXNsaWtlcygpOwogICAgICBwcmV2aW91c1N0YXRlID0gMTsKICAgIH0KICAgIGlmIChleHRDb25maWcubnVtYmVyRGlzcGxheVJlZm9ybWF0TGlrZXMgPT09IHRydWUpIHsKICAgICAgY29uc3QgbmF0aXZlTGlrZXMgPSBnZXRMaWtlQ291bnRGcm9tQnV0dG9uKCk7CiAgICAgIGlmIChuYXRpdmVMaWtlcyAhPT0gZmFsc2UpIHsKICAgICAgICBzZXRMaWtlcyhudW1iZXJGb3JtYXQobmF0aXZlTGlrZXMpKTsKICAgICAgfQogICAgfQogIH0KfQoKZnVuY3Rpb24gZGlzbGlrZUNsaWNrZWQoKSB7CiAgaWYgKGNoZWNrRm9yVXNlckF2YXRhckJ1dHRvbigpID09IHRydWUpIHsKICAgIGlmIChwcmV2aW91c1N0YXRlID09IDMpIHsKICAgICAgZGlzbGlrZXN2YWx1ZSsrOwogICAgICB1cGRhdGVET01EaXNsaWtlcygpOwogICAgICBwcmV2aW91c1N0YXRlID0gMjsKICAgIH0gZWxzZSBpZiAocHJldmlvdXNTdGF0ZSA9PSAyKSB7CiAgICAgIGRpc2xpa2VzdmFsdWUtLTsKICAgICAgdXBkYXRlRE9NRGlzbGlrZXMoKTsKICAgICAgcHJldmlvdXNTdGF0ZSA9IDM7CiAgICB9IGVsc2UgaWYgKHByZXZpb3VzU3RhdGUgPT0gMSkgewogICAgICBsaWtlc3ZhbHVlLS07CiAgICAgIGRpc2xpa2VzdmFsdWUrKzsKICAgICAgdXBkYXRlRE9NRGlzbGlrZXMoKTsKICAgICAgcHJldmlvdXNTdGF0ZSA9IDI7CiAgICAgIGlmIChleHRDb25maWcubnVtYmVyRGlzcGxheVJlZm9ybWF0TGlrZXMgPT09IHRydWUpIHsKICAgICAgICBjb25zdCBuYXRpdmVMaWtlcyA9IGdldExpa2VDb3VudEZyb21CdXR0b24oKTsKICAgICAgICBpZiAobmF0aXZlTGlrZXMgIT09IGZhbHNlKSB7CiAgICAgICAgICBzZXRMaWtlcyhudW1iZXJGb3JtYXQobmF0aXZlTGlrZXMpKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KCmZ1bmN0aW9uIHNldEluaXRpYWxTdGF0ZSgpIHsKICBzZXRTdGF0ZSgpOwp9CgpmdW5jdGlvbiBnZXRWaWRlb0lkKCkgewogIGNvbnN0IHVybE9iamVjdCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpOwogIGNvbnN0IHBhdGhuYW1lID0gdXJsT2JqZWN0LnBhdGhuYW1lOwogIGlmIChwYXRobmFtZS5zdGFydHNXaXRoKCIvY2xpcCIpKSB7CiAgICByZXR1cm4gKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm1ldGFbaXRlbXByb3A9J3ZpZGVvSWQnXSIpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm1ldGFbaXRlbXByb3A9J2lkZW50aWZpZXInXSIpKS5jb250ZW50OwogIH0gZWxzZSB7CiAgICBpZiAocGF0aG5hbWUuc3RhcnRzV2l0aCgiL3Nob3J0cyIpKSB7CiAgICAgIHJldHVybiBwYXRobmFtZS5zbGljZSg4KTsKICAgIH0KICAgIHJldHVybiB1cmxPYmplY3Quc2VhcmNoUGFyYW1zLmdldCgidiIpOwogIH0KfQoKZnVuY3Rpb24gaXNWaWRlb0xvYWRlZCgpIHsKICBpZiAoaXNNb2JpbGUpIHsKICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyIikuZ2V0QXR0cmlidXRlKCJsb2FkaW5nIikgPT0gImZhbHNlIjsKICB9CiAgY29uc3QgdmlkZW9JZCA9IGdldFZpZGVvSWQoKTsKCiAgcmV0dXJuICgKICAgIC8vIGRlc2t0b3A6IHNwcmluZyAyMDI0IFVJCiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGB5dGQtd2F0Y2gtZ3JpZFt2aWRlby1pZD0nJHt2aWRlb0lkfSddYCkgIT09IG51bGwgfHwKICAgIC8vIGRlc2t0b3A6IG9sZGVyIFVJCiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGB5dGQtd2F0Y2gtZmxleHlbdmlkZW8taWQ9JyR7dmlkZW9JZH0nXWApICE9PSBudWxsIHx8CiAgICAvLyBtb2JpbGU6IG5vIHZpZGVvLWlkIGF0dHJpYnV0ZQogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BsYXllcltsb2FkaW5nPSJmYWxzZSJdOm5vdChbaGlkZGVuXSknKSAhPT0gbnVsbAogICk7Cn0KCmZ1bmN0aW9uIHJvdW5kRG93bihudW0pIHsKICBpZiAobnVtIDwgMTAwMCkgcmV0dXJuIG51bTsKICBjb25zdCBpbnQgPSBNYXRoLmZsb29yKE1hdGgubG9nMTAobnVtKSAtIDIpOwogIGNvbnN0IGRlY2ltYWwgPSBpbnQgKyAoaW50ICUgMyA/IDEgOiAwKTsKICBjb25zdCB2YWx1ZSA9IE1hdGguZmxvb3IobnVtIC8gMTAgKiogZGVjaW1hbCk7CiAgcmV0dXJuIHZhbHVlICogMTAgKiogZGVjaW1hbDsKfQoKZnVuY3Rpb24gbnVtYmVyRm9ybWF0KG51bWJlclN0YXRlKSB7CiAgbGV0IG51bWJlckRpc3BsYXk7CiAgaWYgKGV4dENvbmZpZy5udW1iZXJEaXNwbGF5Um91bmREb3duID09PSBmYWxzZSkgewogICAgbnVtYmVyRGlzcGxheSA9IG51bWJlclN0YXRlOwogIH0gZWxzZSB7CiAgICBudW1iZXJEaXNwbGF5ID0gcm91bmREb3duKG51bWJlclN0YXRlKTsKICB9CiAgcmV0dXJuIGdldE51bWJlckZvcm1hdHRlcihleHRDb25maWcubnVtYmVyRGlzcGxheUZvcm1hdCkuZm9ybWF0KG51bWJlckRpc3BsYXkpOwp9CgpmdW5jdGlvbiBnZXROdW1iZXJGb3JtYXR0ZXIob3B0aW9uU2VsZWN0KSB7CiAgbGV0IHVzZXJMb2NhbGVzOwogIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZykgewogICAgdXNlckxvY2FsZXMgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZzsKICB9IGVsc2UgaWYgKG5hdmlnYXRvci5sYW5ndWFnZSkgewogICAgdXNlckxvY2FsZXMgPSBuYXZpZ2F0b3IubGFuZ3VhZ2U7CiAgfSBlbHNlIHsKICAgIHRyeSB7CiAgICAgIHVzZXJMb2NhbGVzID0gbmV3IFVSTCgKICAgICAgICBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImhlYWQgPiBsaW5rW3JlbD0nc2VhcmNoJ10iKSkKICAgICAgICAgID8uZmluZCgobikgPT4gbj8uZ2V0QXR0cmlidXRlKCJocmVmIik/LmluY2x1ZGVzKCI/bG9jYWxlPSIpKQogICAgICAgICAgPy5nZXRBdHRyaWJ1dGUoImhyZWYiKSwKICAgICAgKT8uc2VhcmNoUGFyYW1zPy5nZXQoImxvY2FsZSIpOwogICAgfSBjYXRjaCB7CiAgICAgIGNMb2coIkNhbm5vdCBmaW5kIGJyb3dzZXIgbG9jYWxlLiBVc2UgZW4gYXMgZGVmYXVsdCBmb3IgbnVtYmVyIGZvcm1hdHRpbmcuIik7CiAgICAgIHVzZXJMb2NhbGVzID0gImVuIjsKICAgIH0KICB9CgogIGxldCBmb3JtYXR0ZXJOb3RhdGlvbjsKICBsZXQgZm9ybWF0dGVyQ29tcGFjdERpc3BsYXk7CiAgc3dpdGNoIChvcHRpb25TZWxlY3QpIHsKICAgIGNhc2UgImNvbXBhY3RMb25nIjoKICAgICAgZm9ybWF0dGVyTm90YXRpb24gPSAiY29tcGFjdCI7CiAgICAgIGZvcm1hdHRlckNvbXBhY3REaXNwbGF5ID0gImxvbmciOwogICAgICBicmVhazsKICAgIGNhc2UgInN0YW5kYXJkIjoKICAgICAgZm9ybWF0dGVyTm90YXRpb24gPSAic3RhbmRhcmQiOwogICAgICBmb3JtYXR0ZXJDb21wYWN0RGlzcGxheSA9ICJzaG9ydCI7CiAgICAgIGJyZWFrOwogICAgY2FzZSAiY29tcGFjdFNob3J0IjoKICAgIGRlZmF1bHQ6CiAgICAgIGZvcm1hdHRlck5vdGF0aW9uID0gImNvbXBhY3QiOwogICAgICBmb3JtYXR0ZXJDb21wYWN0RGlzcGxheSA9ICJzaG9ydCI7CiAgfQoKICBjb25zdCBmb3JtYXR0ZXIgPSBJbnRsLk51bWJlckZvcm1hdCh1c2VyTG9jYWxlcywgewogICAgbm90YXRpb246IGZvcm1hdHRlck5vdGF0aW9uLAogICAgY29tcGFjdERpc3BsYXk6IGZvcm1hdHRlckNvbXBhY3REaXNwbGF5LAogIH0pOwogIHJldHVybiBmb3JtYXR0ZXI7Cn0KCmZ1bmN0aW9uIGdldENvbG9yRnJvbVRoZW1lKHZvdGVJc0xpa2UpIHsKICBsZXQgY29sb3JTdHJpbmc7CiAgc3dpdGNoIChleHRDb25maWcuY29sb3JUaGVtZSkgewogICAgY2FzZSAiYWNjZXNzaWJsZSI6CiAgICAgIGlmICh2b3RlSXNMaWtlID09PSB0cnVlKSB7CiAgICAgICAgY29sb3JTdHJpbmcgPSAiZG9kZ2VyYmx1ZSI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29sb3JTdHJpbmcgPSAiZ29sZCI7CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICBjYXNlICJuZW9uIjoKICAgICAgaWYgKHZvdGVJc0xpa2UgPT09IHRydWUpIHsKICAgICAgICBjb2xvclN0cmluZyA9ICJhcXVhIjsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb2xvclN0cmluZyA9ICJtYWdlbnRhIjsKICAgICAgfQogICAgICBicmVhazsKICAgIGNhc2UgImNsYXNzaWMiOgogICAgZGVmYXVsdDoKICAgICAgaWYgKHZvdGVJc0xpa2UgPT09IHRydWUpIHsKICAgICAgICBjb2xvclN0cmluZyA9ICJsaW1lIjsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb2xvclN0cmluZyA9ICJyZWQiOwogICAgICB9CiAgfQogIHJldHVybiBjb2xvclN0cmluZzsKfQoKbGV0IHNtYXJ0aW1hdGlvbk9ic2VydmVyID0gbnVsbDsKCmZ1bmN0aW9uIHNldEV2ZW50TGlzdGVuZXJzKGV2dCkgewogIGxldCBqc0luaXRDaGVja3RpbWVyOwoKICBmdW5jdGlvbiBjaGVja0ZvckpTX0ZpbmlzaCgpIHsKICAgIC8vY29uc29sZS5sb2coKTsKICAgIGlmIChpc1Nob3J0cygpIHx8IChnZXRCdXR0b25zKCk/Lm9mZnNldFBhcmVudCAmJiBpc1ZpZGVvTG9hZGVkKCkpKSB7CiAgICAgIGNvbnN0IGJ1dHRvbnMgPSBnZXRCdXR0b25zKCk7CiAgICAgIGNvbnN0IGRpc2xpa2VCdXR0b24gPSBnZXREaXNsaWtlQnV0dG9uKCk7CgogICAgICBpZiAocHJlTmF2aWdhdGVMaWtlQnV0dG9uICE9PSBnZXRMaWtlQnV0dG9uKCkgJiYgZGlzbGlrZUJ1dHRvbikgewogICAgICAgIGNMb2coIlJlZ2lzdGVyaW5nIGJ1dHRvbiBsaXN0ZW5lcnMuLi4iKTsKICAgICAgICB0cnkgewogICAgICAgICAgZ2V0TGlrZUJ1dHRvbigpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlrZUNsaWNrZWQpOwogICAgICAgICAgZGlzbGlrZUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBkaXNsaWtlQ2xpY2tlZCk7CiAgICAgICAgICBnZXRMaWtlQnV0dG9uKCkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIGxpa2VDbGlja2VkKTsKICAgICAgICAgIGRpc2xpa2VCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBkaXNsaWtlQ2xpY2tlZCk7CiAgICAgICAgICBkaXNsaWtlQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwgdXBkYXRlRE9NRGlzbGlrZXMpOwogICAgICAgICAgZGlzbGlrZUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCB1cGRhdGVET01EaXNsaWtlcyk7CiAgICAgICAgICBwcmVOYXZpZ2F0ZUxpa2VCdXR0b24gPSBnZXRMaWtlQnV0dG9uKCk7CgogICAgICAgICAgaWYgKCFzbWFydGltYXRpb25PYnNlcnZlcikgewogICAgICAgICAgICBzbWFydGltYXRpb25PYnNlcnZlciA9IGNyZWF0ZU9ic2VydmVyKAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsCiAgICAgICAgICAgICAgICBzdWJ0cmVlOiB0cnVlLAogICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgdXBkYXRlRE9NRGlzbGlrZXMsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHNtYXJ0aW1hdGlvbk9ic2VydmVyLmNvbnRhaW5lciA9IG51bGw7CiAgICAgICAgICB9CgogICAgICAgICAgY29uc3Qgc21hcnRpbWF0aW9uQ29udGFpbmVyID0gYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCJ5dC1zbWFydGltYXRpb24iKTsKICAgICAgICAgIGlmIChzbWFydGltYXRpb25Db250YWluZXIgJiYgc21hcnRpbWF0aW9uT2JzZXJ2ZXIuY29udGFpbmVyICE9IHNtYXJ0aW1hdGlvbkNvbnRhaW5lcikgewogICAgICAgICAgICBjTG9nKCJJbml0aWFsaXppbmcgc21hcnRpbWF0aW9uIG11dGF0aW9uIG9ic2VydmVyIik7CiAgICAgICAgICAgIHNtYXJ0aW1hdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKICAgICAgICAgICAgc21hcnRpbWF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShzbWFydGltYXRpb25Db250YWluZXIpOwogICAgICAgICAgICBzbWFydGltYXRpb25PYnNlcnZlci5jb250YWluZXIgPSBzbWFydGltYXRpb25Db250YWluZXI7CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfSAvL0Rvbid0IHNwYW0gZXJyb3JzIGludG8gdGhlIGNvbnNvbGUKICAgICAgfQogICAgICBpZiAoZGlzbGlrZUJ1dHRvbikgewogICAgICAgIHNldEluaXRpYWxTdGF0ZSgpOwogICAgICAgIGNsZWFySW50ZXJ2YWwoanNJbml0Q2hlY2t0aW1lcik7CiAgICAgIH0KICAgIH0KICB9CgogIGNMb2coIlNldHRpbmcgdXAuLi4iKTsKICBqc0luaXRDaGVja3RpbWVyID0gc2V0SW50ZXJ2YWwoY2hlY2tGb3JKU19GaW5pc2gsIDExMSk7Cn0KCihmdW5jdGlvbiAoKSB7CiAgInVzZSBzdHJpY3QiOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ5dC1uYXZpZ2F0ZS1maW5pc2giLCBzZXRFdmVudExpc3RlbmVycywgdHJ1ZSk7CiAgc2V0RXZlbnRMaXN0ZW5lcnMoKTsKfSkoKTsKaWYgKGlzTW9iaWxlKSB7CiAgbGV0IG9yaWdpbmFsUHVzaCA9IGhpc3RvcnkucHVzaFN0YXRlOwogIGhpc3RvcnkucHVzaFN0YXRlID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHsKICAgIHdpbmRvdy5yZXR1cm5EaXNsaWtlQnV0dG9ubGlzdGVuZXJzU2V0ID0gZmFsc2U7CiAgICBzZXRFdmVudExpc3RlbmVycyhhcmdzWzJdKTsKICAgIHJldHVybiBvcmlnaW5hbFB1c2guYXBwbHkoaGlzdG9yeSwgYXJncyk7CiAgfTsKICBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICBjb25zdCBkaXNsaWtlQnV0dG9uID0gZ2V0RGlzbGlrZUJ1dHRvbigpOwogICAgaWYgKGRpc2xpa2VCdXR0b24/LnF1ZXJ5U2VsZWN0b3IoIi5idXR0b24tcmVuZGVyZXItdGV4dCIpID09PSBudWxsKSB7CiAgICAgIGdldERpc2xpa2VUZXh0Q29udGFpbmVyKCkuaW5uZXJUZXh0ID0gbW9iaWxlRGlzbGlrZXM7CiAgICB9IGVsc2UgewogICAgICBpZiAoZGlzbGlrZUJ1dHRvbikgZGlzbGlrZUJ1dHRvbi5xdWVyeVNlbGVjdG9yKCIuYnV0dG9uLXJlbmRlcmVyLXRleHQiKS5pbm5lclRleHQgPSBtb2JpbGVEaXNsaWtlczsKICAgIH0KICB9LCAxMDAwKTsKfQo="},{"name":"GoldenAdblocker","options":{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":true,"orig_connects":[],"orig_excludes":[],"orig_includes":[],"orig_matches":["*://m.youtube.com/*","*://www.youtube.com/*","*://youtube.com/*","*://*.wikipedia.org/*"],"orig_noframes":null,"orig_run_at":"document-start","orig_run_in":[],"orig_tags":[],"use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":[]},"run_at":null,"run_in":null,"sandbox":null,"tags":[],"unwrap":null,"user_modified":null},"storage":{"ts":1764084296624,"data":{}},"enabled":false,"position":5,"file_url":"https://ilomero.com/goldenadblocker/download.user.js","uuid":"f63e957e-6dd3-4957-9a37-b67be8b22221","source":"Ly8gPT1Vc2VyU2NyaXB0PT0NCi8vIEBuYW1lICAgICAgICAgR29sZGVuQWRibG9ja2VyDQovLyBAbmFtZXNwYWNlICAgIGh0dHBzOi8vaWxvbWVyby5jb20vDQovLyBAdmVyc2lvbiAgICAgIDUNCi8vIEBkZXNjcmlwdGlvbiAgUmVtb3ZlcyA5OSUgb2YgYWRzIGZyb20gWW91dHViZSEgQ29tcGxldGVseSBmcmVlIQ0KLy8gQGF1dGhvciAgICAgICBJbG9tZXJvLmNvbQ0KLy8gQHVwZGF0ZVVSTCAgICBodHRwczovL2lsb21lcm8uY29tL2dvbGRlbmFkYmxvY2tlci9kb3dubG9hZC51c2VyLmpzDQovLyBAZG93bmxvYWRVUkwgIGh0dHBzOi8vaWxvbWVyby5jb20vZ29sZGVuYWRibG9ja2VyL2Rvd25sb2FkLnVzZXIuanMNCi8vIEBtYXRjaCAgICAgICAgKjovL20ueW91dHViZS5jb20vKg0KLy8gQG1hdGNoICAgICAgICAqOi8vd3d3LnlvdXR1YmUuY29tLyoNCi8vIEBtYXRjaCAgICAgICAgKjovL3lvdXR1YmUuY29tLyoNCi8vIEBtYXRjaCAgICAgICAgKjovLyoud2lraXBlZGlhLm9yZy8qDQovLyBAaWNvbiAgICAgICAgIGh0dHBzOi8vaWxvbWVyby5jb20vZ29sZGVuYWRibG9ja2VyL2Zhdmljb24uaWNvDQovLyBAcnVuLWF0ICAgICAgIGRvY3VtZW50LXN0YXJ0DQovLyA9PS9Vc2VyU2NyaXB0PT0NCg0KKGZ1bmN0aW9uICgpIHsNCiAgICAndXNlIHN0cmljdCc7DQoNCiAgICBpZiAod2luZG93LnRydXN0ZWRUeXBlcyAmJiB3aW5kb3cudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSAmJiAhd2luZG93LnRydXN0ZWRUeXBlcy5kZWZhdWx0UG9saWN5KSB7DQogICAgICAgIHdpbmRvdy50cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KCdkZWZhdWx0Jywgew0KICAgICAgICAgICAgY3JlYXRlSFRNTDogc3RyaW5nID0+IHN0cmluZywNCiAgICAgICAgICAgIGNyZWF0ZVNjcmlwdFVSTDogc3RyaW5nID0+IHN0cmluZywNCiAgICAgICAgICAgIGNyZWF0ZVNjcmlwdDogc3RyaW5nID0+IHN0cmluZw0KICAgICAgICB9KTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBHb2xkZW5BZGJsb2NrZXJfTG9hZGluZ19UcnkoTG9hZGluZ1RyeSkgew0KICAgICAgICBpZiAoTG9hZGluZ1RyeSA+PSA0KSB7DQogICAgICAgICAgICBhbGVydCgnQ2Fu4oCZdCBsb2FkIEdvbGRlbkFkYmxvY2tlciEgVHJ5IHJlZnJlc2hpbmcgdGhlIHBhZ2Ugb3Igd2FpdGluZyBhIHdoaWxlIGFuZCB0aGVuIHRyeSBhZ2FpbiEnKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIExvYWRpbmdUcnkrKzsNCg0KICAgICAgICBmZXRjaCgnaHR0cHM6Ly9pbG9tZXJvLmNvbS9nb2xkZW5hZGJsb2NrZXIvbWFpbi5qcycpDQogICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpDQogICAgICAgICAgICAudGhlbihkYXRhID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7DQogICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgICAgICB9KQ0KICAgICAgICAgICAgLmNhdGNoKCgpID0+IHsNCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgR29sZGVuQWRibG9ja2VyX0xvYWRpbmdfVHJ5KExvYWRpbmdUcnkpOw0KICAgICAgICAgICAgICAgIH0sIDUwMCk7DQogICAgICAgICAgICB9KTsNCiAgICB9DQoNCiAgICBHb2xkZW5BZGJsb2NrZXJfTG9hZGluZ19UcnkoMCk7DQp9KSgpOw0K"},{"name":"GoodTube","options":{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":true,"orig_connects":[],"orig_excludes":[],"orig_includes":[],"orig_matches":["*://m.youtube.com/*","*://www.youtube.com/*","*://youtube.com/*","*://*.wikipedia.org/*"],"orig_noframes":null,"orig_run_at":"document-start","orig_run_in":[],"orig_tags":[],"use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":[]},"run_at":null,"run_in":null,"sandbox":null,"tags":[],"unwrap":null,"user_modified":null},"storage":{"ts":1764084513267,"data":{}},"enabled":true,"position":6,"file_url":"https://github.com/goodtube4u/goodtube/raw/refs/heads/main/goodtube.user.js","uuid":"10745190-3c02-4e87-8691-1a683f8001b1","source":"Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gICAgICBfX19fX18gICAgICAgICAgICAgICAgX19fX19fX18gICAgICBfXwovLyAgICAgLyBfX19fL19fXyAgX19fXyAgX19fXy8gL18gIF9fL18gIF9fLyAvXyAgX19fCi8vICAgIC8gLyBfXy8gX18gXC8gX18gXC8gX18gIC8gLyAvIC8gLyAvIC8gX18gXC8gXyBcCi8vICAgLyAvXy8gLyAvXy8gLyAvXy8gLyAvXy8gLyAvIC8gLyAvXy8gLyAvXy8gLyAgX18vCi8vICAgXF9fX18vXF9fX18vXF9fX18vXF9fX18vIC9fLyAgXF9fX18vX19fX18vXF9fXy8KLy8KLy8KLy8JSGVsbG8gZnJpZW5kLCB3ZWxjb21lIHRvIEdvb2RUdWJlLgovLwovLwlUaGUgYmVsb3cgY29kZSBhdXRvbWF0aWNhbGx5IGxvYWRzIHRoZSBsYXRlc3QgbWluaWZpZWQgdmVyc2lvbi4KLy8JVGhpcyBtZWFucyB5b3Ugd2lsbCBuZXZlciBuZWVkIHRvIG1hbnVhbGx5IHVwZGF0ZSA6KQovLwovLwlUbyB2aWV3IHRoZSBmdWxsIHNvdXJjZSBjb2RlIGdvIGhlcmU6Ci8vCWh0dHBzOi8vZ2l0aHViLmNvbS9nb29kdHViZTR1L2dvb2R0dWJlL2Jsb2IvbWFpbi9nb29kdHViZS5qcwovLwovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKLy8gPT1Vc2VyU2NyaXB0PT0KCi8vIEBuYW1lICAgICAgICAgR29vZFR1YmUKLy8gQGRlc2NyaXB0aW9uICBBIGZyZWUgWW91dHViZSBhZGJsb2NrZXIuIFJlbW92ZXMgMTAwJSBvZiBZb3V0dWJlIGFkcyBhbmQgYWxzbyBwcm92aWRlcyBhbiBvcHRpb24gdG8gZGlzYWJsZSBzaG9ydHMuCi8vIEB2ZXJzaW9uICAgICAgMy4wMDQKLy8gQGF1dGhvciAgICAgICBHb29kVHViZQovLyBAaWNvbiAgICAgICAgIGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ3dBQUFBc0NBWUFBQUFlaEZvQkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEa3VNUzFqTURBeklEYzVMamsyT1RCaE9EZG1ZeXdnTWpBeU5TOHdNeTh3TmkweU1EbzFNRG94TmlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SURJMkxqa2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPa0l5TTBNeE9EVkdRa1F5UVRFeFJqQTROMEkyUVRVMFJEVTFORVl4UkRCR0lpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09rSXlNME14T0RZd1FrUXlRVEV4UmpBNE4wSTJRVFUwUkRVMU5FWXhSREJHSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNlFqSXpRekU0TlVSQ1JESkJNVEZHTURnM1FqWkJOVFJFTlRVMFJqRkVNRVlpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2UWpJelF6RTROVVZDUkRKQk1URkdNRGczUWpaQk5UUkVOVFUwUmpGRU1FWWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejRnblZ4eUFBQUVLVWxFUVZSNDJ1eFozVTRUUVJRK3A3VEdHNGtKTDRBeHZVQkpETE10eG5qcmt4Qm9xUThFdElXSDBBZndTaStrM1NFbUtqRkJRaUNSV3pRUk1mMDV6dTUwZHVmTS9xUUlHdHF3aWJHN016dnpuWE8rODUyekF4SVJUTkpWZ0FtN2JnSGZBbmF1WXRaQWQ2MCt5a1ljUFNHb3RKdDQ0d0Q3dFVZSXRQS3lBVDlQVCtITHE5ZmhjOUhjK21kZ3paN0dNY1BCSVB4VjNXbmpkRkZDMWh1RXhxYmhFSTdmdm9QL29kTmVheFBOL3NGMlZSWGQ4RjU1bnF6eENMQXYxa0pVRDJzdjRQNnpCVDNTNzZub0VPRElndTdhdXFaS082YUdlYy9NRVg3clNyVFJ2b21YR0NnTWhXSnB2S1M3emt0Nk5SYW1xeGhXdEQxRWgwZnE1Z2NZZFZpWW53Y0kvZ1diU3FrU2J4T3p2VU5YVHJweXVRd25KOGNBRnhjNjZWWldRb2Y3UWh2c3lSWVc0MUM0bTFKZ1NlNUdpSGlKY0JOd21iVFgwZi9QenQ2RHg0dUxBQjgvMmFNYUMvZHcraWI3bi9maC9QeWNKUWJQbGhrZDR0Wm1MbkpEQWIrMm5ob0dFems5anVCNWdqbk9kc3hreWxya0FaWDFSMjhPdFYyVkpXVnJPUXBIa0RodXNsQ0dXbWhWcEtTWEtqTnF6V1F3REVleCtraFI1eHQ4UDlQdjB0bFp2ZzRIaXhxdTRSaEpoUlp3bDgrRkFrTDhDbHJRS1pQREFIZlZ6UU00K0tvckhmb0g0YjZlakNzZVptVjNLRVZQcTBEOXZ0VmdTQWJNdk9yVnEwa0VCSWtFbHMzZEZPTUR6eS94UkZiN1pNbmZ4SEVZOC9UVGNFdnpTM21odXdlaXRweFVweUNyN1hVUU9jdnRMZVNlbmp1YUUzaWR2Q1VXd2J6Q3dnRTMyOFRER3QvNnpZNVM4aVdGclpnTWV4QlNjb0ZpT21CL2p6M3cvVDZnb1VCOW1SdHM5cSt2NGZRMThObzZYbVhRdFQ3eUtEcXlNbnFQRWpLUXJLRG9qdlBJcGdOdWJaTzdzZlI3amdBUkR4TWp1M1NlbzhNREYxRDhDQzNWOEdXZnpSWmVTYzgxK0dxcnFwY0llYXVuZERxcW5TdVlIcldCcnN3Uk9SNG14eGhUVWgzK2g3eEY0SkVaamR0bWVVMitwMS9iSk5XV1E3VmFpbkpzTWpuc3EvQ0g3ZHcydHhDYTI4UTRyRVk3dTczSVVjdkx2TG1HM1U3OGUyNk8wOGx5NWU5ZlE0ZHBhS21VK2wxZlJUdktnYWZEZTYrb0ZLVzJFVlpMbHdLUnhCbTlESXhTT2d3VkVWVXJwajRJWFBMczBIWjdHYVZZdmR1UjBacGVwY1NwWk1sWkNCcnpWTUx3ekhBdFlqb2xtcCtrZ3ZBWllZK1M2Q0V3SGtPbjF1ZjAyWVcwQkx1Smw4R1lYZW1VQjZUc1dVMTJBNE5QR2ZRSGlRNE9xeUpWN2FKUEwzdndmUmRzWGNQbmQwQnNtSzltelZVaFNqeUdGalV5S1JFa0l2TzhNZ2J4aWVLYkxVUHJhQ1FQVTFwUU1xQm9HTzB0UHV5Z1hOK0twdzRLa2FORU01bGswM2EyaG1uZmlNeG5hZCtTRkoxZllLb2FrUElMRm5qWmo3ODhBb21ieVVuOFhNQUVRT09SbnoyVDdVc2xyYkFxbXBZcnpEdFpHYjhmZG91SWJ5Vmg0Q0V4NHZDbHp5Rkd5V1Y4RkhIVlNxN3BQeDlPNWUvUTdpai8vcVRIL25LbVM2NHpQbUFWcmdxMHIrVW9VNFFsUEwwRVR4MGw4UGJ2ZExlQUp4endId0VHQUVlODkrenF0OFpWQUFBQUFFbEZUa1N1UW1DQwoKLy8gQG5hbWVzcGFjZSAgICBodHRwczovL2dpdGh1Yi5jb20vZ29vZHR1YmU0dS9nb29kdHViZS8KLy8gQHVwZGF0ZVVSTCAgICBodHRwczovL2dpdGh1Yi5jb20vZ29vZHR1YmU0dS9nb29kdHViZS9yYXcvcmVmcy9oZWFkcy9tYWluL2dvb2R0dWJlLnVzZXIuanMKLy8gQGRvd25sb2FkVVJMICBodHRwczovL2dpdGh1Yi5jb20vZ29vZHR1YmU0dS9nb29kdHViZS9yYXcvcmVmcy9oZWFkcy9tYWluL2dvb2R0dWJlLnVzZXIuanMKCi8vIEBtYXRjaCAgICAgICAgKjovL20ueW91dHViZS5jb20vKgovLyBAbWF0Y2ggICAgICAgICo6Ly93d3cueW91dHViZS5jb20vKgovLyBAbWF0Y2ggICAgICAgICo6Ly95b3V0dWJlLmNvbS8qCi8vIEBtYXRjaCAgICAgICAgKjovLyoud2lraXBlZGlhLm9yZy8qCi8vIEBydW4tYXQgICAgICAgZG9jdW1lbnQtc3RhcnQKCi8vID09L1VzZXJTY3JpcHQ9PQoKCihmdW5jdGlvbiAoKSB7CgkndXNlIHN0cmljdCc7CgoKCS8qIENvbmZpZ3VyZSBDU1AKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCWlmICh3aW5kb3cudHJ1c3RlZFR5cGVzICYmIHdpbmRvdy50cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KSB7CgkJd2luZG93LnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImRlZmF1bHQiLCB7CgkJCWNyZWF0ZUhUTUw6IHN0cmluZyA9PiBzdHJpbmcsCgkJCWNyZWF0ZVNjcmlwdFVSTDogc3RyaW5nID0+IHN0cmluZywKCQkJY3JlYXRlU2NyaXB0OiBzdHJpbmcgPT4gc3RyaW5nCgkJfSk7Cgl9CgoKCS8qIExvYWQgR29vZFR1YmUKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCWZ1bmN0aW9uIGdvb2RUdWJlX2xvYWQobG9hZEF0dGVtcHRzID0gMCkgewoJCS8vIE9ubHkgcmUtYXR0ZW1wdCB0byBsb2FkIHRoZSBHb29kVHViZSAxMCB0aW1lcwoJCWlmIChsb2FkQXR0ZW1wdHMgPj0gOSkgewoJCQlpZiAod2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYpIHsKCQkJCS8vIERlYnVnIG1lc3NhZ2UKCQkJCWNvbnNvbGUubG9nKCdbR29vZFR1YmVdIEdvb2RUdWJlIGNvdWxkIG5vdCBiZSBsb2FkZWQnKTsKCgkJCQkvLyBTaG93IHByb21wdAoJCQkJYWxlcnQoJ0dvb2RUdWJlIGNvdWxkIG5vdCBiZSBsb2FkZWQhIFBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIHRvIHRyeSBhZ2Fpbi4nKTsKCQkJfQoKCQkJcmV0dXJuOwoJCX0KCgkJLy8gSW5jcmVtZW50IHRoZSBsb2FkIGF0dGVtcHRzCgkJbG9hZEF0dGVtcHRzKys7CgoJCS8vIEdldCB0aGUgR29vZFR1YmUgbWluaWZpZWQgY29kZQoJCWZldGNoKCdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZ29vZHR1YmU0dS9nb29kdHViZS9yZWZzL2hlYWRzL21haW4vZ29vZHR1YmUubWluLmpzJykKCQkJLy8gU3VjY2VzcwoJCQkudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCgkJCS50aGVuKGRhdGEgPT4gewoJCQkJLy8gTG9hZCB0aGUgR29vZFR1YmUgY29kZSBpbnRvIGEgPHNjcmlwdD4gdGFnCgkJCQlsZXQgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CgkJCQlzY3JpcHQuaW5uZXJIVE1MID0gZGF0YTsKCQkJCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKCQkJfSkKCQkJLy8gRXJyb3IKCQkJLmNhdGNoKChlcnJvcikgPT4gewoJCQkJLy8gVHJ5IGFnYWluIGFmdGVyIDUwMG1zCgkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCQlnb29kVHViZV9sb2FkKGxvYWRBdHRlbXB0cyk7CgkJCQl9LCA1MDApOwoJCQl9KTsKCX0KCgkvLyBMZXQncyBnbyEKCWdvb2RUdWJlX2xvYWQoKTsKfSkoKTsK"}]}