6.8 sec in total
178 ms
5 sec
1.6 sec
Visit accident-helpline.uk.com now to see the best up-to-date Accident Helpline content for United Kingdom and also check out these interesting facts you probably never knew about accident-helpline.uk.com
Need help with your personal injury claim? We’re here to help. Call us today for free no obligation advice, on a no win no fee basis. Freephone 0800 0511 511.
Visit accident-helpline.uk.comWe analyzed Accident-helpline.uk.com page load time and found that the first response time was 178 ms and then it took 6.6 sec to load all DOM resources and completely render a web page. This is a poor result, as 80% of websites can load faster.
accident-helpline.uk.com performance score
name
value
score
weighting
Value3.5 s
34/100
10%
Value8.7 s
1/100
25%
Value7.6 s
25/100
10%
Value820 ms
35/100
30%
Value0.154
75/100
15%
Value9.5 s
30/100
10%
178 ms
2998 ms
9 ms
23 ms
26 ms
Our browser made a total of 194 requests to load all elements on the main page. We found that 62% of them (121 requests) were addressed to the original Accident-helpline.uk.com, 20% (38 requests) were made to Fonts.gstatic.com and 12% (24 requests) were made to . The less responsive or slowest element that took the longest time to load (3 sec) belongs to the original domain Accident-helpline.uk.com.
Page size can be reduced by 427.8 kB (34%)
1.2 MB
814.1 kB
In fact, the total size of Accident-helpline.uk.com main page is 1.2 MB. This result falls beyond the top 1M of websites and identifies a large and not optimized web page that may take ages to load. 80% of websites need less resources to load and that’s why Accessify’s recommendations for optimization and resource minification can be helpful for this project. HTML takes 505.9 kB which makes up the majority of the site volume.
Potential reduce by 426.7 kB
HTML content can be minified and compressed by a website’s server. The most efficient way is to compress content using GZIP which reduces data amount travelling through the network between server and browser. HTML code on this page is well minified. It is highly recommended that content of this web page should be compressed using GZIP, as it can save up to 426.7 kB or 84% of the original size.
Potential reduce by 1 B
Image size optimization can help to speed up a website loading time. The chart above shows the difference between the size before and after optimization. Accident Helpline images are well optimized though.
Potential reduce by 318 B
It’s better to minify JavaScript in order to improve website performance. The diagram shows the current total size of all JavaScript files against the prospective JavaScript size after its minification and compression. This website has mostly compressed JavaScripts.
Potential reduce by 779 B
CSS files minification is very important to reduce a web page rendering time. The faster CSS files can load, the earlier a page can be rendered. Accident-helpline.uk.com has all CSS files already compressed.
Number of requests can be reduced by 93 (74%)
125
32
The browser has sent 125 CSS, Javascripts, AJAX and image requests in order to completely render the main page of Accident Helpline. We recommend that multiple CSS and JavaScript files should be merged into one by each type, as it can help reduce assets requests from 34 to 1 for JavaScripts and from 54 to 1 for CSS and as a result speed up the page load time.
accident-helpline.uk.com
178 ms
www.accident-helpline.uk.com
2998 ms
dChlLmNvbmNhdGVtb2ppKTplLndwZW1vamkmJmUudHdlbW9qaSYmKHQoZS50d2Vtb2ppKSx0KGUud3BlbW9qaSkpKX0pKX0oKHdpbmRvdyxkb2N1bWVudCksd2luZG93Ll93cGVtb2ppU2V0dGluZ3MpOwo=
9 ms
parsley.css
23 ms
animate.css
26 ms
styles.css
25 ms
cookieblocker.min.css
23 ms
style.css
29 ms
style.css
35 ms
custom-style.css
45 ms
custom-frontend-lite.min.css
38 ms
swiper.min.css
35 ms
post-7.css
37 ms
custom-pro-frontend-lite.min.css
52 ms
all.min.css
57 ms
v4-shims.min.css
55 ms
global.css
52 ms
post-55485.css
61 ms
post-59578.css
60 ms
post-59092.css
66 ms
post-58725.css
65 ms
post-38842.css
64 ms
post-37863.css
67 ms
post-21933.css
69 ms
post-60562.css
72 ms
post-59865.css
82 ms
css
48 ms
autoptimize_single_f051caff028b976a14f5f0c1df8f47eb.js
88 ms
jquery.min.js
92 ms
jquery-migrate.min.js
114 ms
javascript;base64,CnZhciBwYkxvY2FsaXplT2JqID0geyJhamF4IjoiaHR0cHM6XC9cL3d3dy5hY2NpZGVudC1oZWxwbGluZS51ay5jb21cL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCIsInNlY29uZHMiOiJzZWNvbmRzIiwidGhpc1dpbGxDbG9zZSI6IlRoaXMgd2lsbCBjbG9zZSBpbiIsImljb25zIjp7ImNsb3NlX2ljb24iOiI8c3ZnIGNsYXNzPVwiYXlzX3BiX21hdGVyaWFsX2Nsb3NlX2ljb25cIiB4bWxucz1cImh0dHBzOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiBoZWlnaHQ9XCIzNnB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMzZweFwiIGZpbGw9XCIjMDAwMDAwXCIgYWx0PVwiUG9wLXVwIENsb3NlXCI+PHBhdGggZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiXC8+PHBhdGggZD1cIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6XCJcLz48XC9zdmc+IiwiY2xvc2VfY2lyY2xlX2ljb24iOiI8c3ZnIGNsYXNzPVwiYXlzX3BiX21hdGVyaWFsX2Nsb3NlX2NpcmNsZV9pY29uXCIgeG1sbnM9XCJodHRwczpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIzNlwiIGFsdD1cIlBvcC11cCBDbG9zZVwiPjxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIlwvPjxwYXRoIGQ9XCJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptNSAxMy41OUwxNS41OSAxNyAxMiAxMy40MSA4LjQxIDE3IDcgMTUuNTkgMTAuNTkgMTIgNyA4LjQxIDguNDEgNyAxMiAxMC41OSAxNS41OSA3IDE3IDguNDEgMTMuNDEgMTIgMTcgMTUuNTl6XCJcLz48XC9zdmc+Iiwidm9sdW1lX3VwX2ljb24iOiI8c3ZnIGNsYXNzPVwiYXlzX3BiX2ZhX3ZvbHVtZVwiIHhtbG5zPVwiaHR0cHM6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMzZcIj48cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCJcLz48cGF0aCBkPVwiTTMgOXY2aDRsNSA1VjRMNyA5SDN6bTEzLjUgM2MwLTEuNzctMS4wMi0zLjI5LTIuNS00LjAzdjguMDVjMS40OC0uNzMgMi41LTIuMjUgMi41LTQuMDJ6TTE0IDMuMjN2Mi4wNmMyLjg5Ljg2IDUgMy41NCA1IDYuNzFzLTIuMTEgNS44NS01IDYuNzF2Mi4wNmM0LjAxLS45MSA3LTQuNDkgNy04Ljc3cy0yLjk5LTcuODYtNy04Ljc3elwiXC8+PFwvc3ZnPiIsInZvbHVtZV9tdXRlX2ljb24iOiI8c3ZnIHhtbG5zPVwiaHR0cHM6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIj48cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCJcLz48cGF0aCBkPVwiTTcgOXY2aDRsNSA1VjRsLTUgNUg3elwiXC8+PFwvc3ZnPiJ9fTsK
0 ms
autoptimize_single_f3d5fe90ca6738715e756f29a7026721.js
113 ms
javascript;base64,CnZhciB0cnVzdHBpbG90X3NldHRpbmdzID0geyJrZXkiOiJQZXdhc1Fwc2VBYmkzZGJmIiwiVHJ1c3RwaWxvdFNjcmlwdFVybCI6Imh0dHBzOlwvXC9pbnZpdGVqcy50cnVzdHBpbG90LmNvbVwvdHAubWluLmpzIiwiSW50ZWdyYXRpb25BcHBVcmwiOiJcL1wvZWNvbW1zY3JpcHQtaW50ZWdyYXRpb25hcHAudHJ1c3RwaWxvdC5jb20iLCJQcmV2aWV3U2NyaXB0VXJsIjoiXC9cL2Vjb21tcGx1Z2lucy1zY3JpcHRzLnRydXN0cGlsb3QuY29tXC92Mi4xXC9qc1wvcHJldmlldy5taW4uanMiLCJQcmV2aWV3Q3NzVXJsIjoiXC9cL2Vjb21tcGx1Z2lucy1zY3JpcHRzLnRydXN0cGlsb3QuY29tXC92Mi4xXC9jc3NcL3ByZXZpZXcubWluLmNzcyIsIlByZXZpZXdXUENzc1VybCI6IlwvXC9lY29tbXBsdWdpbnMtc2NyaXB0cy50cnVzdHBpbG90LmNvbVwvdjIuMVwvY3NzXC9wcmV2aWV3X3dwLmNzcyIsIldpZGdldFNjcmlwdFVybCI6IlwvXC93aWRnZXQudHJ1c3RwaWxvdC5jb21cL2Jvb3RzdHJhcFwvdjVcL3RwLndpZGdldC5ib290c3RyYXAubWluLmpzIn07Cg==
5 ms
headerScript.min.js'='async
1860 ms
tp.widget.bootstrap.min.js'='async
379 ms
javascript;base64,CnZhciB0cnVzdGJveF9zZXR0aW5ncyA9IHsicGFnZSI6ImxhbmRpbmciLCJza3UiOm51bGwsIm5hbWUiOm51bGx9Owp2YXIgdHJ1c3RwaWxvdF90cnVzdGJveF9zZXR0aW5ncyA9IHsidHJ1c3Rib3hlcyI6W3siZW5hYmxlZCI6ImVuYWJsZWQiLCJzbmlwcGV0IjoiUENFdExTQlVjblZ6ZEVKdmVDQjNhV1JuWlhRZ0xTQk5hVzVwSUMwdFBnbzhaR2wySUdOc1lYTnpQU0owY25WemRIQnBiRzkwTFhkcFpHZGxkQ0lnWkdGMFlTMXNiMk5oYkdVOUltVnVMVWRDSWlCa1lYUmhMWFJsYlhCc1lYUmxMV2xrUFNJMU0yRmhPRGd3TjJSbFl6ZGxNVEJrTXpobU5UbG1NeklpSUdSaGRHRXRZblZ6YVc1bGMzTjFibWwwTFdsa1BTSTFNRGxpT1dVMll6QXdNREEyTkRBd01EVXhaVFEzTXpJaUlHUmhkR0V0YzNSNWJHVXRhR1ZwWjJoMFBTSXhOVEJ3ZUNJZ1pHRjBZUzF6ZEhsc1pTMTNhV1IwYUQwaU1UQXdKU0lnWkdGMFlTMTBhR1Z0WlQwaWJHbG5hSFFpUGdvZ0lEeGhJR2h5WldZOUltaDBkSEJ6T2k4dmRXc3VkSEoxYzNSd2FXeHZkQzVqYjIwdmNtVjJhV1YzTDJGalkybGtaVzUwTFdobGJIQnNhVzVsTG5WckxtTnZiU0lnZEdGeVoyVjBQU0pmWW14aGJtc2lJSEpsYkQwaWJtOXZjR1Z1WlhJaVBsUnlkWE4wY0dsc2IzUThMMkUrQ2lBZ1BHZ3hQbEpoZEdWa0lFVjRZMlZzYkdWdWRDQnZiaUJVY25WemRIQnBiRzkwSUdKNUlIQmxiM0JzWlNCc2FXdGxJSGx2ZFR3dmFERStDand2WkdsMlBnb0tQQ0V0TFNCRmJtUWdWSEoxYzNSQ2IzZ2dkMmxrWjJWMElDMHRQZ29LUENFdExTQlVjblZ6ZEVKdmVDQjNhV1JuWlhRZ0xTQlRiR2xrWlhJZ0xTMCtDanhrYVhZZ1kyeGhjM005SW5SeWRYTjBjR2xzYjNRdGQybGtaMlYwSWlCa1lYUmhMV3h2WTJGc1pUMGlaVzR0UjBJaUlHUmhkR0V0ZEdWdGNHeGhkR1V0YVdROUlqVTBZV1ExWkdWbVl6WTBOVFJtTURZMVl6STRZV1k0WWlJZ1pHRjBZUzFpZFhOcGJtVnpjM1Z1YVhRdGFXUTlJalV3T1dJNVpUWmpNREF3TURZME1EQXdOVEZsTkRjek1pSWdaR0YwWVMxemRIbHNaUzFvWldsbmFIUTlJakkwTUhCNElpQmtZWFJoTFhOMGVXeGxMWGRwWkhSb1BTSXhNREFsSWlCa1lYUmhMWFJvWlcxbFBTSnNhV2RvZENJZ1pHRjBZUzF6ZEdGeWN6MGlNU3d5TERNc05DdzFJaUJrWVhSaExYSmxkbWxsZHkxc1lXNW5kV0ZuWlhNOUltVnVJajRLSUNBOFlTQm9jbVZtUFNKb2RIUndjem92TDNWckxuUnlkWE4wY0dsc2IzUXVZMjl0TDNKbGRtbGxkeTloWTJOcFpHVnVkQzFvWld4d2JHbHVaUzUxYXk1amIyMGlJSFJoY21kbGREMGlYMkpzWVc1cklpQnlaV3c5SW01dmIzQmxibVZ5SWo1VWNuVnpkSEJwYkc5MFBDOWhQZ284TDJScGRqNEtQQ0V0TFNCRmJtUWdWSEoxYzNSQ2IzZ2dkMmxrWjJWMElDMHRQZz09IiwiY3VzdG9taXphdGlvbnMiOm51bGwsImRlZmF1bHRzIjpudWxsLCJwYWdlIjoibGFuZGluZyIsInBvc2l0aW9uIjoiYmVmb3JlIiwiY29ybmVyIjoidG9wOiAje1l9cHg7IGxlZnQ6ICN7WH1weDsiLCJwYWRkaW5neCI6IjAiLCJwYWRkaW5neSI6IjAiLCJ6aW5kZXgiOiIxMDAwIiwiY2xlYXIiOiJib3RoIiwieHBhdGhzIjoiV3lJdkwwSlBSRmt2UkVsV1d6TmRMMU5GUTFSSlQwNWJNMTB2UkVsV1d6RmRMMFJKVmxzeFhTOUVTVlpiTVYwdlJFbFdXekpkTDBSSlZsc3hYU0lzSWk4dlJFbFdXMEJqYkdGemN6MWNJbVZzWlcxbGJuUnZjaTEzYVdSblpYUXRZMjl1ZEdGcGJtVnlYQ0pkSWl3aUwwaFVUVXhiTVYwdlFrOUVXVnN4WFM5RVNWWmJNMTB2VTBWRFZFbFBUbHN6WFM5RVNWWmJNVjB2UkVsV1d6RmRMMFJKVmxzeFhTOUVTVlpiTWwwdlJFbFdXekZkSWwwPSIsInNrdSI6IiIsIm5hbWUiOiIiLCJ3aWRnZXROYW1lIjoiQ3VzdG9tIFRydXN0Qm94IiwicmVwZWF0YWJsZSI6ZmFsc2UsInV1aWQiOiJjYjg1MjcwMy0zMjY5LWM4NGMtZTM4OS01OWZlYjk1MmFhZGYiLCJlcnJvciI6bnVsbH1dfTsK
4 ms
trustBoxScript.min.js'='async
2005 ms
v4-shims.min.js
51 ms
javascript;base64,DQoJd2luZG93LmRhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107DQogICAgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fQ0KCWd0YWcoJ2NvbnNlbnQnLCAnZGVmYXVsdCcsIHsNCiAgICAgICAgJ2FkX3N0b3JhZ2UnOiAnZ3JhbnRlZCcsDQogICAgICAgICdhZF91c2VyX2RhdGEnOiAnZ3JhbnRlZCcsDQogICAgICAgICdhZF9wZXJzb25hbGl6YXRpb24nOiAnZ3JhbnRlZCcsDQogICAgICAgICdhbmFseXRpY3Nfc3RvcmFnZSc6ICdncmFudGVkJw0KICAgIH0pOw0K
3 ms
autoptimize_single_d7899117079c3e69f045a5ac683e1366.js
50 ms
js
295 ms
javascript;base64,IHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOyBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9IGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7IGd0YWcoJ2NvbmZpZycsICdBVy05NzA3NTExNjQnKTsg
2 ms
js
297 ms
javascript;base64,DQogIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9DQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7DQoNCiAgZ3RhZygnY29uZmlnJywgJ0ctS0g0QktQUk4yTCcpOw0K
3 ms
JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9DQonaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPScraStkbDtmLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGosZik7DQp9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2RhdGFMYXllcicsJ0dUTS1LMjk4WDUnKTs=
3 ms
bugsnag.min.js
61 ms
c3Y9Jyk7IA==
11 ms
css2
39 ms
custom-widget-icon-box.min.css
53 ms
custom-pro-widget-nav-menu.min.css
66 ms
jquery.min.js
61 ms
javascript;base64,DQokKCBkb2N1bWVudCApLnJlYWR5KGZ1bmN0aW9uKCkgew0KDQovLyAJTGFuZGluZyBmb3JtIFllcy9ObyBhY3RpdmUgYnV0dG9uIGNsYXNzIFNUQVJUDQokKCcucGFnZS10ZW1wbGF0ZS1sYW5kaW5nLXBhZ2UgLmVsZW1lbnRvci13aWRnZXQtY29udGFpbmVyIGZvcm0gLndwY2Y3LWxpc3QtaXRlbS5maXJzdCAud3BjZjctbGlzdC1pdGVtLWxhYmVsJykuY3NzKCdjb2xvcix3aGl0ZScpOw0KJCgncGFnZS10ZW1wbGF0ZS1sYW5kaW5nLXBhZ2UgLmVsZW1lbnRvci13aWRnZXQtY29udGFpbmVyIGZvcm0gLndwY2Y3LWxpc3QtaXRlbS5sYXN0IC53cGNmNy1saXN0LWl0ZW0tbGFiZWwnKS5jc3MoJ2NvbG9yLCNBRkFGQUYnKTsNCiQoIiNsYW5kaW5nLWZvcm0gaW5wdXRbdHlwZT0ncmFkaW8nXSIpLmNsaWNrKGZ1bmN0aW9uKCl7DQp2YXIgcGFySUQgPSAkKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLnBhcmVudCgpLmF0dHIoJ2lkJyk7DQogCSQoJyMnICsgcGFySUQgKyAnIGxhYmVsJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZWJ0bicpLmFkZENsYXNzKCdpbmFjdGl2ZWJ0bicpOw0KCSQodGhpcykucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2luYWN0aXZlYnRuJykuYWRkQ2xhc3MoJ2FjdGl2ZWJ0bicpOw0KfSk7IAkNCi8vIAlMYW5kaW5nIGZvcm0gWWVzL05vIGFjdGl2ZSBidXR0b24gY2xhc3MgRU5EDQp9KTsJDQoNCgkNCiQoJyNoYW1idXJnZXInKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpew0KICQoJyNla2l0LW1lZ2FtZW51LWhlYWRlci1tZW51ICcpLnRvZ2dsZSggKTsNCmlmICgkKCAiI3RvZ2dsZS1jb2xtIiApLmhhc0NsYXNzKCdtZW51LW9wZW4nKSkgew0KCSQoICIjdG9nZ2xlLWNvbG0iICkucmVtb3ZlQ2xhc3MoICdtZW51LW9wZW4nKTsNCn0gZWxzZSB7DQogICQoICIjdG9nZ2xlLWNvbG0iICkuYWRkQ2xhc3MoICdtZW51LW9wZW4nKTsNCn0NCg0KfSk7CQ0K
3 ms
widget-carousel.min.css
53 ms
logo-white.png
250 ms
nav-trustpilot.png
470 ms
sml-logo1.png
249 ms
user-1.png
312 ms
call-1.png
312 ms
trustpilot-new.jpg
252 ms
trustpilot-mobile.jpg
313 ms
20years-3.jpg
375 ms
checkmark.png
468 ms
orange-checkmark.png
591 ms
trustpilot-blk.png
480 ms
trust-mbl.jpg
552 ms
stars.jpg
479 ms
trustpilot-4stars.jpg
490 ms
bg-transperent-white.png
423 ms
main-bg.jpg
369 ms
advice-bg.jpg
416 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCuM70w-.ttf
204 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvr70w-.ttf
339 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvC70w-.ttf
294 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu170w-.ttf
251 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Ew-.ttf
338 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew-.ttf
293 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCs16Ew-.ttf
339 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvr6Ew-.ttf
340 ms
JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Uw-.ttf
342 ms
custom-widget-icon-list.min.css
318 ms
javascript;base64,aWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4KSB7IGpRdWVyeShkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKHsndG9wJzogJzM1cHgnLCAgJ2xlZnQnOiAnMCcsJ3JpZ2h0JzogJzAnLCdib3R0b20nOid1bnNldCcsICdtYXJnaW4nOiAnNjBweCBhdXRvJ30pOyB9IGVsc2UgeyBqUXVlcnkoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLmNzcyh7J3RvcCc6ICczNXB4JywgICdsZWZ0JzogJzAnLCdyaWdodCc6ICcwJywnYm90dG9tJzondW5zZXQnLCAnbWFyZ2luJzogJzYwcHggYXV0byd9KTsgfQ==
72 ms
javascript;base64,CiAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiggJCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2Ugc3RyaWN0JzsKICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYlZpZXdzRmxhZ182ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBheXNfZmxhZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2hvd19vbmx5X29uY2UgPSAnb2ZmJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpc01vYmlsZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNsb3NlUG9wdXBPdmVybGF5ID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpc1BhZ2VTY3JvbGxEaXNhYmxlZCA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2hlY2tBbmltU3BlZWQgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF5c19wYl9hbmltYXRpb25fY2xvc2Vfc3BlZWQgPSAkKGRvY3VtZW50KS5maW5kKCcjYXlzX3BiX2FuaW1hdGlvbl9jbG9zZV9zcGVlZF82JykudmFsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXlzX3BiX2VmZmVjdEluXzYgPSAkKGRvY3VtZW50KS5maW5kKCcjYXlzX3BiX21vZGFsX2FuaW1hdGVfaW5fNicpLnZhbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF5c19wYl9lZmZlY3RPdXRfNiA9ICQoZG9jdW1lbnQpLmZpbmQoJyNheXNfcGJfbW9kYWxfYW5pbWF0ZV9vdXRfNicpLnZhbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNNb2JpbGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlUG9wdXBPdmVybGF5ID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BhZ2VTY3JvbGxEaXNhYmxlZCA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tBbmltU3BlZWQgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF5c19wYl9hbmltYXRpb25fY2xvc2Vfc3BlZWQgPSAkKGRvY3VtZW50KS5maW5kKCcjYXlzX3BiX2FuaW1hdGlvbl9jbG9zZV9zcGVlZF9tb2JpbGVfNicpLnZhbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF5c19wYl9lZmZlY3RJbl82ID0gJChkb2N1bWVudCkuZmluZCgnI2F5c19wYl9tb2RhbF9hbmltYXRlX2luX21vYmlsZV82JykudmFsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXlzX3BiX2VmZmVjdE91dF82ID0gJChkb2N1bWVudCkuZmluZCgnI2F5c19wYl9tb2RhbF9hbmltYXRlX291dF9tb2JpbGVfNicpLnZhbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJy5jbGFpbUFtb3VudHMnLCBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhY3Rpb25TZWxlY3RvciA9ICcuY2xhaW1BbW91bnRzJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhY3Rpb25TZWxlY3Rvci5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5c19wYl9tdXNpY19zb3VuZCcpLmNzcyh7J2Rpc3BsYXknOidibG9jayd9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2hvd19vbmx5X29uY2UgPT0gJ29uJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQuYWpheCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL3d3dy5hY2NpZGVudC1oZWxwbGluZS51ay5jb20vd3AtYWRtaW4vYWRtaW4tYWpheC5waHAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2F5c19wYl9zZXRfY29va2llX29ubHlfb25jZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdDbGFpbSBBbW91bnRzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGFBdHRyID0gJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuYXR0cignZGF0YS1heXMtZmxhZycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihheXNfZmxhZyAmJiBkYXRhQXR0ciA9PSAndHJ1ZScpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF5c19mbGFnID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF2X3BvcF9tb2RhbHNfNicpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF2X3BvcF9tb2RhbHNfNicpLmNzcygncG9pbnRlci1ldmVudHMnLCAnYXV0bycpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA3NjgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5c19wYl90aW1lcl82IHNwYW4nKS5odG1sKCQoZG9jdW1lbnQpLmZpbmQoJy5heXNfcGJfdGltZXJfNiBzcGFuJykuYXR0cignZGF0YS1heXMtbW9iaWxlLXNlY29uZHMnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXNfcGJfdGltZXJfNiBzcGFuJykuaHRtbCgkKGRvY3VtZW50KS5maW5kKCcuYXlzX3BiX3RpbWVyXzYgc3BhbicpLmF0dHIoJ2RhdGEtYXlzLXNlY29uZHMnKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyX3BiXzYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVyX3BiXzYgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLnJlbW92ZUNsYXNzKGF5c19wYl9lZmZlY3RPdXRfNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuYWRkQ2xhc3MoYXlzX3BiX2VmZmVjdEluXzYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLmNzcygnZGlzcGxheScsICdibG9jaycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCAmJiAkKGRvY3VtZW50KS5maW5kKCcjYXlzLXBiLXNjcmVlbi1zaGFkZV82JykuYXR0cignZGF0YS1tb2JpbGUtb3ZlcmxheScpID09ICd0cnVlJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcjYXlzLXBiLXNjcmVlbi1zaGFkZV82JykuY3NzKHsnb3BhY2l0eSc6ICcwLjUnLCAnZGlzcGxheSc6ICdibG9jayd9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnI2F5cy1wYi1zY3JlZW4tc2hhZGVfNicpLmNzcyh7J29wYWNpdHknOiAnMC41MDAwMDAnLCAnZGlzcGxheSc6ICdibG9jayd9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbC1jaGVja182JykucHJvcCgnY2hlY2tlZCcsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWwtY2hlY2tfNicpLmF0dHIoJ2NoZWNrZWQnLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXlzX3BiX2FuaW1hdGlvbl9jbG9zZV9zZWNvbmRzID0gKGF5c19wYl9hbmltYXRpb25fY2xvc2Vfc3BlZWQgLyAxMDAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc291bmRfc3JjID0gJChkb2N1bWVudCkuZmluZCgnI2F5c19wYl9zb3VuZF82JykuYXR0cignc3JjJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsb3NlX3NvdW5kX3NyYyA9ICQoZG9jdW1lbnQpLmZpbmQoJyNheXNfcGJfY2xvc2Vfc291bmRfNicpLmF0dHIoJ3NyYycpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheXNfcGJfYW5pbWF0aW9uX2Nsb3NlX3NwZWVkID0gcGFyc2VGbG9hdChheXNfcGJfYW5pbWF0aW9uX2Nsb3NlX3NwZWVkKSAtIDUwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnb2ZmJyA9PT0gJ29uJyAmJiB0eXBlb2Ygc291bmRfc3JjICE9PSAndW5kZWZpbmVkJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNheXNfcGJfc291bmRfNicpLmdldCgwKS5wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXNfcGJfcGF1c2Vfc291bmRfNicpLm9uKCdjbGljaycsZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdWRpbyA9ICQoJyNheXNfcGJfc291bmRfNicpLmdldCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Nsb3NlIHNvdW5kIHN0YXJ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2hlY2tBbmltU3BlZWQgJiYgdHlwZW9mIGNsb3NlX3NvdW5kX3NyYyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ29mZicgPT09ICdvbicpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjaGVja0FuaW1TcGVlZCAhPT0gMCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzX3BiX3BhdXNlX3NvdW5kXzYnKS5vbignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApLnBsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihheXNfcGJfZWZmZWN0T3V0XzYgIT0gJ25vbmUnKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXVkaW8gPSAkKCcjYXlzX3BiX2Nsb3NlX3NvdW5kXzYnKS5nZXQoMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcl9wYl82KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYXlzX3BiX2FuaW1hdGlvbl9jbG9zZV9zcGVlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLmNzcygnZGlzcGxheScsICdub25lJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdWRpbyA9ICQoJyNheXNfcGJfY2xvc2Vfc291bmRfNicpLmdldCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8uY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY2xvc2Ugc291bmQgZW5kCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aW1lX3BiX3N0cl82ID0gJChkb2N1bWVudCkuZmluZCgnLmF5c19wYl90aW1lcl82IHNwYW4nKS5hdHRyKCdkYXRhLWF5cy1zZWNvbmRzJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtb2JpbGVUaW1lciA9ICskKGRvY3VtZW50KS5maW5kKCcuYXlzX3BiX3RpbWVyXzYgc3BhbicpLmF0dHIoJ2RhdGEtYXlzLW1vYmlsZS1zZWNvbmRzJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXNfcGJfdGltZXJfNiBzcGFuJykuaHRtbChtb2JpbGVUaW1lcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfcGJfc3RyXzYgPSBtb2JpbGVUaW1lcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRpbWVfcGJfNiA9IHBhcnNlSW50KHRpbWVfcGJfc3RyXzYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRpbWVfcGJfNiAhPT0gdW5kZWZpbmVkKXsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRpbWVfcGJfNiAhPT0gMCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aW1lcl9wYl82ID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdUaW1lX3BiXzYgPSB0aW1lX3BiXzYtLTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXNfcGJfdGltZXJfNiBzcGFuJykudGV4dChuZXdUaW1lX3BiXzYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYW5pbWF0aW9uLWR1cmF0aW9uJzogYXlzX3BiX2FuaW1hdGlvbl9jbG9zZV9zZWNvbmRzICsgJ3MnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihuZXdUaW1lX3BiXzYgPD0gMCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbC1jbG9zZV82JykudHJpZ2dlcignY2xpY2snKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKS5hdHRyKCdjbGFzcycsICdheXNfbWluaW1hbF93aW5kb3cgYXlzLXBiLW1vZGFsXzYgY2xhaW0tYW1vdW50cyAnK2F5c19wYl9lZmZlY3RPdXRfNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXlzX3BiX2VmZmVjdE91dF82ICE9ICdub25lJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLmNzcygnZGlzcGxheScsICdub25lJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheXNfZmxhZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGF5c19wYl9hbmltYXRpb25fY2xvc2Vfc3BlZWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheXNfZmxhZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnb2ZmJyA9PT0gJ29uJyAmJiB0eXBlb2Ygc291bmRfc3JjICE9PSAndW5kZWZpbmVkJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdWRpbyA9ICQoJyNheXNfcGJfc291bmRfNicpLmdldCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8uY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyX3BiXzYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJzEnICYmIHR5cGVvZiBjbG9zZV9zb3VuZF9zcmMgIT09ICd1bmRlZmluZWQnICYmICdvZmYnID09PSAnb24nKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2hlY2tBbmltU3BlZWQgIT09IDApewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApLnBsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGF5c19wYl9lZmZlY3RPdXRfNiAhPSAnbm9uZScpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXlzX2ZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF1ZGlvID0gJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXJfcGJfNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYXlzX3BiX2FuaW1hdGlvbl9jbG9zZV9zcGVlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheXNfZmxhZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdWRpbyA9ICQoJyNheXNfcGJfY2xvc2Vfc291bmRfNicpLmdldCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8uY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbC1jbG9zZV82Jykub25lKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBiVmlld3NGbGFnXzYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBiX2lkID0gNjsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQuYWpheCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHBiTG9jYWxpemVPYmouYWpheCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6ICd0ZXh0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcGJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnYXlzX2luY3JlbWVudF9wYl92aWV3cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBiVmlld3NGbGFnXzYgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF2X3BvcF9tb2RhbHNfNicpLmNzcygncG9pbnRlci1ldmVudHMnLCAnbm9uZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLmF0dHIoJ2NsYXNzJywgJ2F5c19taW5pbWFsX3dpbmRvdyBheXMtcGItbW9kYWxfNiAgIGNsYWltLWFtb3VudHMgYXlzLXBiLWJvcmRlci1tb2JpbGVfNiAnK2F5c19wYl9lZmZlY3RPdXRfNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcuYXlzLXBiLW1vZGFscycpLmZpbmQoJ2lmcmFtZScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IC9odHRwczpcL1wvd3d3LnlvdXR1YmUuY29tLzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNyYyA9ICQodGhpcykuYXR0cignc3JjJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYXR0cignc3JjJywgJCh0aGlzKS5hdHRyKCdzcmMnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcuYXlzLXBiLW1vZGFscycpLmZpbmQoJ3ZpZGVvLndwLXZpZGVvLXNob3J0Y29kZScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodHlwZW9mICQodGhpcykuZ2V0KDApICE9ICd1bmRlZmluZWQnKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggISAkKHRoaXMpLmdldCgwKS5wYXVzZWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5nZXQoMCkucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnBhcmVudHMoJy5heXMtcGItbW9kYWxzJykuZmluZCgnYXVkaW8ud3AtYXVkaW8tc2hvcnRjb2RlJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0eXBlb2YgJCh0aGlzKS5nZXQoMCkgIT0gJ3VuZGVmaW5lZCcpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhICQodGhpcykuZ2V0KDApLnBhdXNlZCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmdldCgwKS5wYXVzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGF5c19wYl9lZmZlY3RPdXRfNiAhPSAnbm9uZScpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheXNfZmxhZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGF5c19wYl9hbmltYXRpb25fY2xvc2Vfc3BlZWQpOyAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLmNzcygnZGlzcGxheScsICdub25lJyk7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheXNfZmxhZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJyNheXMtcGItc2NyZWVuLXNoYWRlXzYnKS5jc3MoeydvcGFjaXR5JzogJzAnLCAnZGlzcGxheSc6ICdub25lJ30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXJfcGJfNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF5c19wYl9mbGFnID0gIHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbigna2V5ZG93bicsIGZ1bmN0aW9uKGV2ZW50KSB7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCcxJyAmJiBheXNfcGJfZmxhZyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlc2NDbG9zaW5nUG9wdXBzID0gJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1jbG9zZS1wb3B1cC13aXRoLWVzYzp2aXNpYmxlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09IDI3KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9wbW9zdFBvcHVwID0gZXNjQ2xvc2luZ1BvcHVwcy5sYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3Btb3N0UG9wdXAuZmluZCgnLmF5cy1wYi1tb2RhbC1jbG9zZV82JykudHJpZ2dlcignY2xpY2snKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF5c19wYl9mbGFnID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ29mZicgPT09ICdvbicgJiYgdHlwZW9mIHNvdW5kX3NyYyAhPT0gJ3VuZGVmaW5lZCcpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdWRpbyA9ICQoJyNheXNfcGJfc291bmRfNicpLmdldCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5wYXVzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyX3BiXzYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2hlY2tBbmltU3BlZWQgJiYgdHlwZW9mIGNsb3NlX3NvdW5kX3NyYyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ29mZicgPT09ICdvbicpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNoZWNrQW5pbVNwZWVkICE9PSAwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApLnBsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXlzX3BiX2VmZmVjdE91dF82ICE9ICdub25lJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF1ZGlvID0gJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5wYXVzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXJfcGJfNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBheXNfcGJfYW5pbWF0aW9uX2Nsb3NlX3NwZWVkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF1ZGlvID0gJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXJfcGJfNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXlzX3BiX2ZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJ2NsaWNrU2VsZWN0b3InICE9ICdib3RoJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjbG9zZVBvcHVwT3ZlcmxheSAmJiAnT24nID09ICdPbicpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJyNheXMtcGItc2NyZWVuLXNoYWRlXzYnKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBiX3BhcmVudF9kaXYgPSAkKHRoaXMpLmZpbmQoJy5heXMtcGItbW9kYWxzJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYl9kaXYgPSAkKHRoaXMpLnBhcmVudHMoJy5heXMtcGItbW9kYWxzJykuZmluZCgnLmF5cy1wYi1tb2RhbF82Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGJfcGFyZW50X2Rpdi5pcyhwYl9kaXYpICYmIHBiX3BhcmVudF9kaXYuaGFzKHBiX2RpdikubGVuZ3RoID09PSAwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWwtY2xvc2VfNicpLmNsaWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ29mZicgPT09ICdvbicgJiYgdHlwZW9mIHNvdW5kX3NyYyAhPT0gJ3VuZGVmaW5lZCcpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdWRpbyA9ICQoJyNheXNfcGJfc291bmRfNicpLmdldCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5wYXVzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyX3BiXzYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2hlY2tBbmltU3BlZWQgJiYgdHlwZW9mIGNsb3NlX3NvdW5kX3NyYyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ29mZicgPT09ICdvbicpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNoZWNrQW5pbVNwZWVkICE9PSAwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApLnBsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXlzX3BiX2VmZmVjdE91dF82ICE9ICdub25lJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF1ZGlvID0gJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5wYXVzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBheXNfcGJfYW5pbWF0aW9uX2Nsb3NlX3NwZWVkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF1ZGlvID0gJCgnI2F5c19wYl9jbG9zZV9zb3VuZF82JykuZ2V0KDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNsb3NlUG9wdXBPdmVybGF5ICYmICdPbicgPT0gJ09uJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF2X3BvcF9tb2RhbHNfNicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBiX3BhcmVudF9kaXYgPSAkKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGJfZGl2ID0gJCh0aGlzKS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYl9kaXYuaXMoZS50YXJnZXQpICYmIHBiX2Rpdi5oYXMoZS50YXJnZXQpLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsLWNsb3NlXzYnKS5jbGljaygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCdvZmYnID09PSAnb24nICYmIHR5cGVvZiBzb3VuZF9zcmMgIT09ICd1bmRlZmluZWQnKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXVkaW8gPSAkKCcjYXlzX3BiX3NvdW5kXzYnKS5nZXQoMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcl9wYl82KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNoZWNrQW5pbVNwZWVkICYmIHR5cGVvZiBjbG9zZV9zb3VuZF9zcmMgIT09ICd1bmRlZmluZWQnICYmICdvZmYnID09PSAnb24nKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjaGVja0FuaW1TcGVlZCAhPT0gMCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNheXNfcGJfY2xvc2Vfc291bmRfNicpLmdldCgwKS5wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGF5c19wYl9lZmZlY3RPdXRfNiAhPSAnbm9uZScpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLmNzcygnZGlzcGxheScsICdub25lJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdWRpbyA9ICQoJyNheXNfcGJfY2xvc2Vfc291bmRfNicpLmdldCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8uY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyX3BiXzYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYXlzX3BiX2FuaW1hdGlvbl9jbG9zZV9zcGVlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdWRpbyA9ICQoJyNheXNfcGJfY2xvc2Vfc291bmRfNicpLmdldCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzX3BiX3RpbWVyXzYnKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKS5jc3MoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FuaW1hdGlvbi1kdXJhdGlvbic6IGF5c19wYl9hbmltYXRpb25fY2xvc2Vfc2Vjb25kcyArICdzJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbC1jbG9zZV82Jykub25lKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGJWaWV3c0ZsYWdfNikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYl9pZCA9IDY7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQuYWpheCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogcGJMb2NhbGl6ZU9iai5hamF4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6ICd0ZXh0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHBiX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnYXlzX2luY3JlbWVudF9wYl92aWV3cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBiVmlld3NGbGFnXzYgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5hdl9wb3BfbW9kYWxzXzYnKS5jc3MoJ3BvaW50ZXItZXZlbnRzJywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxfNicpLmF0dHIoJ2NsYXNzJywgJ2F5c19taW5pbWFsX3dpbmRvdyAgYXlzLXBiLW1vZGFsXzYgY2xhaW0tYW1vdW50cyBheXMtcGItYm9yZGVyLW1vYmlsZV82ICcrYXlzX3BiX2VmZmVjdE91dF82KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucGFyZW50cygnLmF5cy1wYi1tb2RhbHMnKS5maW5kKCdpZnJhbWUnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IC9odHRwczpcL1wvd3d3LnlvdXR1YmUuY29tLzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3JjID0gJCh0aGlzKS5hdHRyKCdzcmMnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ3NyYycsICQodGhpcykuYXR0cignc3JjJykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnBhcmVudHMoJy5heXMtcGItbW9kYWxzJykuZmluZCgndmlkZW8ud3AtdmlkZW8tc2hvcnRjb2RlJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHR5cGVvZiAkKHRoaXMpLmdldCgwKSAhPSAndW5kZWZpbmVkJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggISAkKHRoaXMpLmdldCgwKS5wYXVzZWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmdldCgwKS5wYXVzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcuYXlzLXBiLW1vZGFscycpLmZpbmQoJ2F1ZGlvLndwLWF1ZGlvLXNob3J0Y29kZScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0eXBlb2YgJCh0aGlzKS5nZXQoMCkgIT0gJ3VuZGVmaW5lZCcpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICEgJCh0aGlzKS5nZXQoMCkucGF1c2VkICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5nZXQoMCkucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGF5c19wYl9lZmZlY3RPdXRfNiAhPSAnbm9uZScpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF2X3BvcF9tb2RhbHNfNicpLmNzcygnZGlzcGxheScsICdub25lJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF5c19mbGFnID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBheXNfcGJfYW5pbWF0aW9uX2Nsb3NlX3NwZWVkKTsgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXZfcG9wX21vZGFsc182JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheXNfZmxhZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJyNheXMtcGItc2NyZWVuLXNoYWRlXzYnKS5jc3MoeydvcGFjaXR5JzogJzAnLCAnZGlzcGxheSc6ICdub25lJ30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihpc1BhZ2VTY3JvbGxEaXNhYmxlZCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJ2JvZHknKS5hZGRDbGFzcygncGJfZGlzYWJsZV9zY3JvbGxfNicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCdodG1sJykuYWRkQ2xhc3MoJ3BiX2Rpc2FibGVfc2Nyb2xsXzYnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeShkb2N1bWVudCkub24oJ2NsaWNrJywgJy5heXMtcGItbW9kYWwtY2xvc2VfNicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnYm9keScpLnJlbW92ZUNsYXNzKCdwYl9kaXNhYmxlX3Njcm9sbF82Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCdodG1sJykucmVtb3ZlQ2xhc3MoJ3BiX2Rpc2FibGVfc2Nyb2xsXzYnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ09uJyAhPSAnT24nKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnI2F5cy1wYi1zY3JlZW4tc2hhZGVfNicpLmNzcyh7J29wYWNpdHknOiAnMCcsICdkaXNwbGF5JzogJ25vbmUgIWltcG9ydGFudCcsICdwb2ludGVyLWV2ZW50cyc6ICdub25lJ30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKS5jc3MoJ3BvaW50ZXItZXZlbnRzJywgJ2F1dG8nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF2X3BvcF9tb2RhbHNfNicpLmNzcygncG9pbnRlci1ldmVudHMnLCdub25lJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZignZmFsc2UnID09ICd0cnVlJyAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKDAgIT0gMCAmJiAnb2ZmJyAhPSAnb24nKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWwtY2xvc2VfNicpLmNzcyh7J2Rpc3BsYXknOiAnbm9uZSd9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbC1jbG9zZV82JykuY3NzKHsnZGlzcGxheSc6ICdibG9jayd9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoMCAhPSAwICYmICdvZmYnICE9ICdvbicpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbC1jbG9zZV82JykuY3NzKHsnZGlzcGxheSc6ICdub25lJ30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFsLWNsb3NlXzYnKS5jc3MoeydkaXNwbGF5JzogJ2Jsb2NrJ30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYoMCA9PSAwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjbG9zZVBvcHVwT3ZlcmxheSAmJiAnT24nID09ICdPbicpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXZfcG9wX21vZGFsc182Jykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBiX3BhcmVudCA9ICQodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGJfZGl2ID0gJCh0aGlzKS5maW5kKCcuYXlzLXBiLW1vZGFsXzYnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGJfZGl2LmlzKGUudGFyZ2V0KSAmJiBwYl9kaXYuaGFzKGUudGFyZ2V0KS5sZW5ndGggPT09IDApewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWwtY2xvc2VfNicpLmNsaWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXlzX3BiX2ZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKCdrZXlkb3duJywgZnVuY3Rpb24oZXZlbnQpIHsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCcxJyAmJiBheXNfcGJfZmxhZyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXNjQ2xvc2luZ1BvcHVwcyA9ICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItY2xvc2UtcG9wdXAtd2l0aC1lc2M6dmlzaWJsZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT0gMjcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9wbW9zdFBvcHVwID0gZXNjQ2xvc2luZ1BvcHVwcy5sYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wbW9zdFBvcHVwLmZpbmQoJy5heXMtcGItbW9kYWwtY2xvc2VfNicpLnRyaWdnZXIoJ2NsaWNrJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXlzX3BiX2ZsYWcgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF5c19wYl9mbGFnID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ09uJyAhPSAnT24nKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcjYXlzLXBiLXNjcmVlbi1zaGFkZV82JykuY3NzKHsnb3BhY2l0eSc6ICcwJywgJ2Rpc3BsYXknOiAnbm9uZSAhaW1wb3J0YW50JywgJ3BvaW50ZXItZXZlbnRzJzogJ25vbmUnfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbF82JykuY3NzKCdwb2ludGVyLWV2ZW50cycsICdhdXRvJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF2X3BvcF9tb2RhbHNfNicpLmNzcygncG9pbnRlci1ldmVudHMnLCdub25lJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJ2NsaWNrU2VsZWN0b3InICE9ICdib3RoJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbHMgdmlkZW8nKS5oYXNDbGFzcygnd3AtdmlkZW8tc2hvcnRjb2RlJykpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9XaWR0aCAgPSAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFscyB2aWRlby53cC12aWRlby1zaG9ydGNvZGUnKS5hdHRyKCd3aWR0aCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9IZWlnaHQgPSAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFscyB2aWRlby53cC12aWRlby1zaG9ydGNvZGUnKS5hdHRyKCdoZWlnaHQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLmF5cy1wYi1tb2RhbHMgLndwLXZpZGVvJykucmVtb3ZlQXR0cignc3R5bGUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxzIC5tZWpzLWNvbnRhaW5lcicpLnJlbW92ZUF0dHIoJ3N0eWxlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFscyB2aWRlby53cC12aWRlby1zaG9ydGNvZGUnKS5yZW1vdmVBdHRyKCdzdHlsZScpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxzIC53cC12aWRlbycpLmNzcyh7J3dpZHRoJzogJzEwMCUnfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFscyAubWVqcy1jb250YWluZXInKS5jc3Moeyd3aWR0aCc6ICcxMDAlJywnaGVpZ2h0JzogdmlkZW9IZWlnaHQgKyAncHgnfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFscyB2aWRlby53cC12aWRlby1zaG9ydGNvZGUnKS5jc3Moeyd3aWR0aCc6ICcxMDAlJywnaGVpZ2h0JzogdmlkZW9IZWlnaHQgKyAncHgnfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sMTAwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCQoZG9jdW1lbnQpLmZpbmQoJy5heXMtcGItbW9kYWxzIGlmcmFtZScpLmF0dHIoJ3N0eWxlJykgIT0gJycpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuYXlzLXBiLW1vZGFscyBpZnJhbWUnKS5yZW1vdmVBdHRyKCdzdHlsZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LDUwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJ29mZicgPT0gJ29uJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlbyA9ICQoZG9jdW1lbnQpLmZpbmQoJ3ZpZGVvLndwLXZpZGVvLXNob3J0Y29kZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlkZW8ubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9baV0uYWRkRXZlbnRMaXN0ZW5lcignZW5kZWQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLm5leHQoKS52YWwoKSA9PT0gJ29uJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucGFyZW50cygnLmF5c192aWRlb193aW5kb3cnKS5maW5kKCcuY2xvc2UtaW1hZ2UtYnRuJykudHJpZ2dlcignY2xpY2snKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9KSggalF1ZXJ5ICk7CiAgICAgICAgICAgICAgICA=
71 ms
javascript;base64,CiAgICAgICAgICAgICAgICAgICAgaWYodHlwZW9mIGF5c1BvcHVwT3B0aW9ucyA9PT0gInVuZGVmaW5lZCIpewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXlzUG9wdXBPcHRpb25zID0gW107CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGF5c1BvcHVwT3B0aW9uc1siNiJdICA9ICJleUp3YjNCMWNHSnZlQ0k2ZXlKcFpDSTZJallpTENKMGFYUnNaU0k2SWtOc1lXbHRJRUZ0YjNWdWRITWlMQ0p3YjNCMWNGOXVZVzFsSWpvaUlpd2laR1Z6WTNKcGNIUnBiMjRpT2lKRVpXMXZJRVJsYzJOeWFYQjBhVzl1SWl3aVkyRjBaV2R2Y25sZmFXUWlPaUl4SWl3aVlYVjBiMk5zYjNObElqb2lNQ0lzSW1OdmIydHBaU0k2SWpBaUxDSjNhV1IwYUNJNk56WTJMQ0pvWldsbmFIUWlPalkxTUN3aVltZGpiMnh2Y2lJNklpTm1abVptWm1ZaUxDSjBaWGgwWTI5c2IzSWlPaUlqTURBd01EQXdJaXdpWW05eVpHVnljMmw2WlNJNklqRWlMQ0ppYjNKa1pYSmpiMnh2Y2lJNklpTm1abVptWm1ZaUxDSmliM0prWlhKZmNtRmthWFZ6SWpvaU5TSXNJbk5vYjNKMFkyOWtaU0k2SWx0bGJHVnRaVzUwYjNJdGRHVnRjR3hoZEdVZ2FXUTlYQ0kyTURJNE0xd2lYU0lzSW5WelpYSnpYM0p2YkdVaU9pSmJYU0lzSW1OMWMzUnZiVjlqYkdGemN5STZJbU5zWVdsdExXRnRiM1Z1ZEhNaUxDSmpkWE4wYjIxZlkzTnpJam9pTG1Oc1lXbHRMV0Z0YjNWdWRITWdlMXh5WEc1Y2RIUmxlSFF0WVd4cFoyNDZJR3hsWm5RN1hISmNibHgwWW05eVpHVnlPaUJ1YjI1bE8xeHlYRzVjZEdadmJuUXRabUZ0YVd4NU9pQlFiM0J3YVc1ekxDQnpZVzV6TFhObGNtbG1PMXh5WEc1OVhISmNibHh5WEc0dVkyeGhhVzB0WVcxdmRXNTBjeUF1WVhsekxYQmlMVzF2WkdGc0xXTnNiM05sWHpZZ2UxeHlYRzVjZEhSdmNEb2dNVEJ3ZUNBaGFXMXdiM0owWVc1ME8xeHlYRzU5SWl3aVkzVnpkRzl0WDJoMGJXd2lPaUpJWlhKbElHTmhiaUJpWlNCNWIzVnlJR04xYzNSdmJTQklWRTFNSUc5eUlGTm9iM0owWTI5a1pTSXNJbTl1YjJabWMzZHBkR05vSWpvaVQyNGlMQ0p6YUc5M1gyRnNiQ0k2SW1Gc2JDSXNJbVJsYkdGNUlqb2lNQ0lzSW5OamNtOXNiRjkwYjNBaU9pSXdJaXdpWVc1cGJXRjBaVjlwYmlJNkltWmhaR1ZKYmlJc0ltRnVhVzFoZEdWZmIzVjBJam9pWm1Ga1pVOTFkQ0lzSW1GamRHbHZibDlpZFhSMGIyNGlPaUl1WTJ4aGFXMUJiVzkxYm5Seklpd2lkbWxsZDE5d2JHRmpaU0k2SWlJc0ltRmpkR2x2Ymw5aWRYUjBiMjVmZEhsd1pTSTZJbU5zYVdOclUyVnNaV04wYjNJaUxDSnRiMlJoYkY5amIyNTBaVzUwSWpvaWMyaHZjblJqYjJSbElpd2lkbWxsZDE5MGVYQmxJam9pYldsdWFXMWhiQ0lzSW05dWIyWm1iM1psY214aGVTSTZJazl1SWl3aWMyaHZkMTl3YjNCMWNGOTBhWFJzWlNJNklrOW1aaUlzSW5Ob2IzZGZjRzl3ZFhCZlpHVnpZeUk2SWs5bVppSXNJbU5zYjNObFgySjFkSFJ2YmlJNkltOW1aaUlzSW1obFlXUmxjbDlpWjJOdmJHOXlJam9pSTJabVptWm1aaUlzSW1KblgybHRZV2RsSWpvaUlpd2liRzluWDNWelpYSWlPaUpQYmlJc0ltZDFaWE4wSWpvaVQyNGlMQ0poWTNScGRtVmZaR0YwWlY5amFHVmpheUk2SW05bVppSXNJbUZqZEdsMlpVbHVkR1Z5ZG1Gc0lqb2lNakF5TkMwd055MHhOQ0F4TlRvMU9Eb3dNU0lzSW1SbFlXTjBhWFpsU1c1MFpYSjJZV3dpT2lJeU1ESTBMVEEzTFRFMElERTFPalU0T2pBeElpd2ljR0pmY0c5emFYUnBiMjRpT2lKMGIzQXRZMlZ1ZEdWeUlpd2ljR0pmYldGeVoybHVJam9pTmpBaUxDSnZjSFJwYjI1eklqb2llMXdpWlc1aFlteGxYMkpoWTJ0bmNtOTFibVJmWjNKaFpHbGxiblJjSWpwY0ltOW1abHdpTEZ3aVltRmphMmR5YjNWdVpGOW5jbUZrYVdWdWRGOWpiMnh2Y2w4eFhDSTZYQ0lqTURBd1hDSXNYQ0ppWVdOclozSnZkVzVrWDJkeVlXUnBaVzUwWDJOdmJHOXlYekpjSWpwY0lpTm1abVpjSWl4Y0luQmlYMmR5WVdScFpXNTBYMlJwY21WamRHbHZibHdpT2x3aWRtVnlkR2xqWVd4Y0lpeGNJbVZ1WVdKc1pWOWlZV05yWjNKdmRXNWtYMmR5WVdScFpXNTBYMjF2WW1sc1pWd2lPbHdpYjJabVhDSXNYQ0ppWVdOclozSnZkVzVrWDJkeVlXUnBaVzUwWDJOdmJHOXlYekZmYlc5aWFXeGxYQ0k2WENJak1EQXdYQ0lzWENKaVlXTnJaM0p2ZFc1a1gyZHlZV1JwWlc1MFgyTnZiRzl5WHpKZmJXOWlhV3hsWENJNlhDSWpabVptWENJc1hDSndZbDluY21Ga2FXVnVkRjlrYVhKbFkzUnBiMjVmYlc5aWFXeGxYQ0k2WENKMlpYSjBhV05oYkZ3aUxGd2laWGhqWlhCMFgzQnZjM1JmZEhsd1pYTmNJanBiWFN4Y0ltVjRZMlZ3ZEY5d2IzTjBjMXdpT2x0ZExGd2lZV3hzWDNCdmMzUnpYQ0k2WENKY0lpeGNJbU5zYjNObFgySjFkSFJ2Ymw5a1pXeGhlVndpT2pBc1hDSmpiRzl6WlY5aWRYUjBiMjVmWkdWc1lYbGZabTl5WDIxdlltbHNaVndpT2pBc1hDSmxibUZpYkdWZlkyeHZjMlZmWW5WMGRHOXVYMlJsYkdGNVgyWnZjbDl0YjJKcGJHVmNJanBjSW05bVpsd2lMRndpWlc1aFlteGxYM0JpWDNOdmRXNWtYQ0k2WENKdlptWmNJaXhjSW05MlpYSnNZWGxmWTI5c2IzSmNJanBjSWlNd01EQmNJaXhjSW1WdVlXSnNaVjl2ZG1WeWJHRjVYMk52Ykc5eVgyMXZZbWxzWlZ3aU9sd2liMlptWENJc1hDSnZkbVZ5YkdGNVgyTnZiRzl5WDIxdlltbHNaVndpT2x3aUl6QXdNRndpTEZ3aVlXNXBiV0YwYVc5dVgzTndaV1ZrWENJNk1TeGNJbVZ1WVdKc1pWOWhibWx0WVhScGIyNWZjM0JsWldSZmJXOWlhV3hsWENJNlhDSnZabVpjSWl4Y0ltRnVhVzFoZEdsdmJsOXpjR1ZsWkY5dGIySnBiR1ZjSWpveExGd2lZMnh2YzJWZllXNXBiV0YwYVc5dVgzTndaV1ZrWENJNk1TeGNJbVZ1WVdKc1pWOWpiRzl6WlY5aGJtbHRZWFJwYjI1ZmMzQmxaV1JmYlc5aWFXeGxYQ0k2WENKdlptWmNJaXhjSW1Oc2IzTmxYMkZ1YVcxaGRHbHZibDl6Y0dWbFpGOXRiMkpwYkdWY0lqb3hMRndpY0dKZmJXOWlhV3hsWENJNlhDSnZabVpjSWl4Y0ltTnNiM05sWDJKMWRIUnZibDkwWlhoMFhDSTZYQ0pjWEhVeU56RTFYQ0lzWENKbGJtRmliR1ZmWTJ4dmMyVmZZblYwZEc5dVgzUmxlSFJmYlc5aWFXeGxYQ0k2WENKdmJsd2lMRndpWTJ4dmMyVmZZblYwZEc5dVgzUmxlSFJmYlc5aWFXeGxYQ0k2WENKY1hIVXlOekUxWENJc1hDSmpiRzl6WlY5aWRYUjBiMjVmYUc5MlpYSmZkR1Y0ZEZ3aU9sd2lYQ0lzWENKdGIySnBiR1ZmZDJsa2RHaGNJam81TlN4Y0ltMXZZbWxzWlY5dFlYaGZkMmxrZEdoY0lqcGNJbHdpTEZ3aWJXOWlhV3hsWDJobGFXZG9kRndpT2x3aVhDSXNYQ0pqYkc5elpWOWlkWFIwYjI1ZmNHOXphWFJwYjI1Y0lqcGNJbkpwWjJoMExYUnZjRndpTEZ3aVpXNWhZbXhsWDJOc2IzTmxYMkoxZEhSdmJsOXdiM05wZEdsdmJsOXRiMkpwYkdWY0lqcGNJbTltWmx3aUxGd2lZMnh2YzJWZlluVjBkRzl1WDNCdmMybDBhVzl1WDIxdlltbHNaVndpT2x3aWNtbG5hSFF0ZEc5d1hDSXNYQ0p6YUc5M1gyOXViSGxmYjI1alpWd2lPbHdpYjJabVhDSXNYQ0p6YUc5M1gyOXVYMmh2YldWZmNHRm5aVndpT2x3aWIyWm1YQ0lzWENKamJHOXpaVjl3YjNCMWNGOWxjMk5jSWpwY0ltOXVYQ0lzWENKd2IzQjFjRjkzYVdSMGFGOWllVjl3WlhKalpXNTBZV2RsWDNCNFhDSTZYQ0p3YVhobGJITmNJaXhjSW5CdmNIVndYM2RwWkhSb1gySjVYM0JsY21ObGJuUmhaMlZmY0hoZmJXOWlhV3hsWENJNlhDSndaWEpqWlc1MFlXZGxYQ0lzWENKd2IzQjFjRjlqYjI1MFpXNTBYM0JoWkdScGJtZGNJam93TEZ3aWNHOXdkWEJmY0dGa1pHbHVaMTlpZVY5d1pYSmpaVzUwWVdkbFgzQjRYQ0k2WENKd2FYaGxiSE5jSWl4Y0luQmlYMlp2Ym5SZlptRnRhV3g1WENJNlhDSnBibWhsY21sMFhDSXNYQ0pqYkc5elpWOXdiM0IxY0Y5dmRtVnliR0Y1WENJNlhDSnZibHdpTEZ3aVkyeHZjMlZmY0c5d2RYQmZiM1psY214aGVWOXRiMkpwYkdWY0lqcGNJbTl1WENJc1hDSmxibUZpYkdWZmNHSmZablZzYkhOamNtVmxibHdpT2x3aWIyWm1YQ0lzWENKbGJtRmliR1ZmYUdsa1pWOTBhVzFsY2x3aU9sd2liMlptWENJc1hDSmxibUZpYkdWZmFHbGtaVjkwYVcxbGNsOXRiMkpwYkdWY0lqcGNJbTltWmx3aUxGd2laVzVoWW14bFgyRjFkRzlqYkc5elpWOXZibDlqYjIxd2JHVjBhVzl1WENJNlhDSnZabVpjSWl4Y0ltVnVZV0pzWlY5emIyTnBZV3hmYkdsdWEzTmNJanBjSW05bVpsd2lMRndpYzI5amFXRnNYMnhwYm10elhDSTZlMXdpYkdsdWEyVmthVzVmYkdsdWExd2lPbHdpWENJc1hDSm1ZV05sWW05dmExOXNhVzVyWENJNlhDSmNJaXhjSW5SM2FYUjBaWEpmYkdsdWExd2lPbHdpWENJc1hDSjJhMjl1ZEdGcmRHVmZiR2x1YTF3aU9sd2lYQ0lzWENKNWIzVjBkV0psWDJ4cGJtdGNJanBjSWx3aUxGd2lhVzV6ZEdGbmNtRnRYMnhwYm10Y0lqcGNJbHdpTEZ3aVltVm9ZVzVqWlY5c2FXNXJYQ0k2WENKY0luMHNYQ0p6YjJOcFlXeGZZblYwZEc5dWMxOW9aV0ZrYVc1blhDSTZYQ0pjSWl4Y0ltTnNiM05sWDJKMWRIUnZibDl6YVhwbFhDSTZNU3hjSW1Oc2IzTmxYMkoxZEhSdmJsOXBiV0ZuWlZ3aU9sd2lYQ0lzWENKaWIzSmtaWEpmYzNSNWJHVmNJanBjSW5OdmJHbGtYQ0lzWENKbGJtRmliR1ZmWW05eVpHVnlYM04wZVd4bFgyMXZZbWxzWlZ3aU9sd2liMlptWENJc1hDSmliM0prWlhKZmMzUjViR1ZmYlc5aWFXeGxYQ0k2WENKemIyeHBaRndpTEZ3aVlYbHpYM0JpWDJodmRtVnlYM05vYjNkZlkyeHZjMlZmWW5SdVhDSTZYQ0p2Wm1aY0lpeGNJbVJwYzJGaWJHVmZjMk55YjJ4c1hDSTZYQ0p2Ymx3aUxGd2laR2x6WVdKc1pWOXpZM0p2Ykd4ZmJXOWlhV3hsWENJNlhDSnZibHdpTEZ3aVpXNWhZbXhsWDI5d1pXNWZaR1ZzWVhsZmJXOWlhV3hsWENJNlhDSnZabVpjSWl4Y0ltOXdaVzVmWkdWc1lYbGZiVzlpYVd4bFhDSTZYQ0l3WENJc1hDSmxibUZpYkdWZmMyTnliMnhzWDNSdmNGOXRiMkpwYkdWY0lqcGNJbTltWmx3aUxGd2ljMk55YjJ4c1gzUnZjRjl0YjJKcGJHVmNJanBjSWpCY0lpeGNJbVZ1WVdKc1pWOXdZbDl3YjNOcGRHbHZibDl0YjJKcGJHVmNJanBjSW05bVpsd2lMRndpY0dKZmNHOXphWFJwYjI1ZmJXOWlhV3hsWENJNlhDSmpaVzUwWlhJdFkyVnVkR1Z5WENJc1hDSndZbDlpWjE5cGJXRm5aVjl3YjNOcGRHbHZibHdpT2x3aVkyVnVkR1Z5TFdObGJuUmxjbHdpTEZ3aVpXNWhZbXhsWDNCaVgySm5YMmx0WVdkbFgzQnZjMmwwYVc5dVgyMXZZbWxzWlZ3aU9sd2liMlptWENJc1hDSndZbDlpWjE5cGJXRm5aVjl3YjNOcGRHbHZibDl0YjJKcGJHVmNJanBjSW1ObGJuUmxjaTFqWlc1MFpYSmNJaXhjSW5CaVgySm5YMmx0WVdkbFgzTnBlbWx1WjF3aU9sd2lZMjkyWlhKY0lpeGNJbVZ1WVdKc1pWOXdZbDlpWjE5cGJXRm5aVjl6YVhwcGJtZGZiVzlpYVd4bFhDSTZYQ0p2Wm1aY0lpeGNJbkJpWDJKblgybHRZV2RsWDNOcGVtbHVaMTl0YjJKcGJHVmNJanBjSW1OdmRtVnlYQ0lzWENKMmFXUmxiMTkwYUdWdFpWOTFjbXhjSWpwY0lsd2lMRndpYVcxaFoyVmZkSGx3WlY5cGJXZGZjM0pqWENJNlhDSmNJaXhjSW1sdFlXZGxYM1I1Y0dWZmFXMW5YM0psWkdseVpXTjBYM1Z5YkZ3aU9sd2lYQ0lzWENKbVlXTmxZbTl2YTE5d1lXZGxYM1Z5YkZ3aU9sd2lhSFIwY0hNNlhGeGNMMXhjWEM5M2QzY3VabUZqWldKdmIyc3VZMjl0WEZ4Y0wzZHZjbVJ3Y21WemMxd2lMRndpYUdsa1pWOW1ZbDl3WVdkbFgyTnZkbVZ5WDNCb2IzUnZYQ0k2WENKdlptWmNJaXhjSW01dmRHbG1hV05oZEdsdmJsOTBlWEJsWDJOdmJYQnZibVZ1ZEhOY0lqcGJYU3hjSW01dmRHbG1hV05oZEdsdmJsOTBlWEJsWDJOdmJYQnZibVZ1ZEhOZmIzSmtaWEpjSWpwN1hDSnRZV2x1WDJOdmJuUmxiblJjSWpwY0ltMWhhVzVmWTI5dWRHVnVkRndpTEZ3aVluVjBkRzl1WHpGY0lqcGNJbUoxZEhSdmJsOHhYQ0o5TEZ3aWJtOTBhV1pwWTJGMGFXOXVYMjFoYVc1ZlkyOXVkR1Z1ZEZ3aU9sd2lWM0pwZEdVZ2RHaGxJR04xYzNSdmJTQnViM1JwWm1sallYUnBiMjRnWW1GdWJtVnlJSFJsZUhRZ2FHVnlaUzVjSWl4Y0ltNXZkR2xtYVdOaGRHbHZibDlpZFhSMGIyNWZNVjkwWlhoMFhDSTZYQ0pEYkdsamF5RmNJaXhjSW01dmRHbG1hV05oZEdsdmJsOWlkWFIwYjI1Zk1WOXlaV1JwY21WamRGOTFjbXhjSWpwY0lsd2lMRndpYm05MGFXWnBZMkYwYVc5dVgySjFkSFJ2Ymw4eFgySm5YMk52Ykc5eVhDSTZYQ0lqUmpZMk1USXpYQ0lzWENKdWIzUnBabWxqWVhScGIyNWZZblYwZEc5dVh6RmZkR1Y0ZEY5amIyeHZjbHdpT2x3aUkwWkdSa1pHUmx3aUxGd2ljR0pmYldGNFgyaGxhV2RvZEZ3aU9sd2lYQ0lzWENKd2IzQjFjRjl0WVhoZmFHVnBaMmgwWDJKNVgzQmxjbU5sYm5SaFoyVmZjSGhjSWpwY0luQnBlR1ZzYzF3aUxGd2ljR0pmYldGNFgyaGxhV2RvZEY5dGIySnBiR1ZjSWpwY0lsd2lMRndpY0c5d2RYQmZiV0Y0WDJobGFXZG9kRjlpZVY5d1pYSmpaVzUwWVdkbFgzQjRYMjF2WW1sc1pWd2lPbHdpY0dsNFpXeHpYQ0lzWENKd1lsOXRhVzVmYUdWcFoyaDBYQ0k2WENKY0lpeGNJbkJpWDJadmJuUmZjMmw2WlZ3aU9qRXpMRndpY0dKZlptOXVkRjl6YVhwbFgyWnZjbDl0YjJKcGJHVmNJam94TXl4Y0luQmlYM1JwZEd4bFgzUmxlSFJmYzJoaFpHOTNYQ0k2WENKeVoySmhLREkxTlN3eU5UVXNNalUxTERBcFhDSXNYQ0psYm1GaWJHVmZjR0pmZEdsMGJHVmZkR1Y0ZEY5emFHRmtiM2RjSWpwY0ltOW1abHdpTEZ3aWNHSmZkR2wwYkdWZmRHVjRkRjl6YUdGa2IzZGZlRjl2Wm1aelpYUmNJam95TEZ3aWNHSmZkR2wwYkdWZmRHVjRkRjl6YUdGa2IzZGZlVjl2Wm1aelpYUmNJam95TEZ3aWNHSmZkR2wwYkdWZmRHVjRkRjl6YUdGa2IzZGZlbDl2Wm1aelpYUmNJam93TEZ3aWNHSmZkR2wwYkdWZmRHVjRkRjl6YUdGa2IzZGZiVzlpYVd4bFhDSTZYQ0p5WjJKaEtESTFOU3d5TlRVc01qVTFMREFwWENJc1hDSmxibUZpYkdWZmNHSmZkR2wwYkdWZmRHVjRkRjl6YUdGa2IzZGZiVzlpYVd4bFhDSTZYQ0p2Wm1aY0lpeGNJbkJpWDNScGRHeGxYM1JsZUhSZmMyaGhaRzkzWDNoZmIyWm1jMlYwWDIxdlltbHNaVndpT2pJc1hDSndZbDkwYVhSc1pWOTBaWGgwWDNOb1lXUnZkMTk1WDI5bVpuTmxkRjl0YjJKcGJHVmNJam95TEZ3aWNHSmZkR2wwYkdWZmRHVjRkRjl6YUdGa2IzZGZlbDl2Wm1aelpYUmZiVzlpYVd4bFhDSTZNQ3hjSW1OeVpXRjBaVjlrWVhSbFhDSTZYQ0l5TURJMExUQTNMVEV6SURFMU9qQTFPalUxWENJc1hDSmpjbVZoZEdWZllYVjBhRzl5WENJNk15eGNJbUYxZEdodmNsd2lPbHdpZTF4Y1hDSnBaRnhjWENJNlhGeGNJak5jWEZ3aUxGeGNYQ0p1WVcxbFhGeGNJanBjWEZ3aVUyaGhkVzRnUm05eWMzbDBhRnhjWENKOVhDSXNYQ0psYm1GaWJHVmZaR2x6YldsemMxd2lPbHdpYjJabVhDSXNYQ0psYm1GaWJHVmZaR2x6YldsemMxOTBaWGgwWENJNlhDSkVhWE50YVhOeklHRmtYQ0lzWENKbGJtRmliR1ZmWkdsemJXbHpjMTl0YjJKcGJHVmNJanBjSW05bVpsd2lMRndpWlc1aFlteGxYMlJwYzIxcGMzTmZkR1Y0ZEY5dGIySnBiR1ZjSWpwY0lrUnBjMjFwYzNNZ1lXUmNJaXhjSW1WdVlXSnNaVjlpYjNoZmMyaGhaRzkzWENJNlhDSnZabVpjSWl4Y0ltVnVZV0pzWlY5aWIzaGZjMmhoWkc5M1gyMXZZbWxzWlZ3aU9sd2liMlptWENJc1hDSmliM2hmYzJoaFpHOTNYMk52Ykc5eVhDSTZYQ0lqTURBd1hDSXNYQ0ppYjNoZmMyaGhaRzkzWDJOdmJHOXlYMjF2WW1sc1pWd2lPbHdpSXpBd01Gd2lMRndpY0dKZlltOTRYM05vWVdSdmQxOTRYMjltWm5ObGRGd2lPakFzWENKd1lsOWliM2hmYzJoaFpHOTNYM2hmYjJabWMyVjBYMjF2WW1sc1pWd2lPakFzWENKd1lsOWliM2hmYzJoaFpHOTNYM2xmYjJabWMyVjBYQ0k2TUN4Y0luQmlYMkp2ZUY5emFHRmtiM2RmZVY5dlptWnpaWFJmYlc5aWFXeGxYQ0k2TUN4Y0luQmlYMkp2ZUY5emFHRmtiM2RmZWw5dlptWnpaWFJjSWpveE5TeGNJbkJpWDJKdmVGOXphR0ZrYjNkZmVsOXZabVp6WlhSZmJXOWlhV3hsWENJNk1UVXNYQ0prYVhOaFlteGxYM05qY205c2JGOXZibDl3YjNCMWNGd2lPbHdpYjI1Y0lpeGNJbVJwYzJGaWJHVmZjMk55YjJ4c1gyOXVYM0J2Y0hWd1gyMXZZbWxzWlZ3aU9sd2liMjVjSWl4Y0luTm9iM2RmYzJOeWIyeHNZbUZ5WENJNlhDSnZabVpjSWl4Y0ltaHBaR1ZmYjI1ZmNHTmNJanBjSW05bVpsd2lMRndpYUdsa1pWOXZibDkwWVdKc1pYUnpYQ0k2WENKdlptWmNJaXhjSW5CaVgySm5YMmx0WVdkbFgyUnBjbVZqZEdsdmJsOXZibDl0YjJKcGJHVmNJanBjSW05dVhDSXNYQ0pqYkc5elpWOWlkWFIwYjI1ZlkyOXNiM0pjSWpwY0lpTXdNREJjSWl4Y0ltTnNiM05sWDJKMWRIUnZibDlvYjNabGNsOWpiMnh2Y2x3aU9sd2lJekF3TURBd01Gd2lMRndpWW14MWNtVmtYMjkyWlhKc1lYbGNJanBjSW05dVhDSXNYQ0ppYkhWeVpXUmZiM1psY214aGVWOXRiMkpwYkdWY0lqcGNJbTl1WENJc1hDSndZbDloZFhSdlkyeHZjMlZmYlc5aWFXeGxYQ0k2WENJeU1Gd2lMRndpWlc1aFlteGxYMkYxZEc5amJHOXpaVjlrWld4aGVWOTBaWGgwWDIxdlltbHNaVndpT2x3aWIyWm1YQ0lzWENKbGJtRmliR1ZmYjNabGNteGhlVjkwWlhoMFgyMXZZbWxzWlZ3aU9sd2liMlptWENJc1hDSnZkbVZ5YkdGNVgyMXZZbWxzWlY5dmNHRmphWFI1WENJNlhDSXdMalZjSWl4Y0luTm9iM2RmY0c5d2RYQmZkR2wwYkdWZmJXOWlhV3hsWENJNlhDSlBabVpjSWl4Y0luTm9iM2RmY0c5d2RYQmZaR1Z6WTE5dGIySnBiR1ZjSWpwY0lrOW1abHdpTEZ3aVpXNWhZbXhsWDJGdWFXMWhkR1ZmYVc1ZmJXOWlhV3hsWENJNlhDSnZabVpjSWl4Y0ltRnVhVzFoZEdWZmFXNWZiVzlpYVd4bFhDSTZYQ0ptWVdSbFNXNWNJaXhjSW1WdVlXSnNaVjloYm1sdFlYUmxYMjkxZEY5dGIySnBiR1ZjSWpwY0ltOW1abHdpTEZ3aVlXNXBiV0YwWlY5dmRYUmZiVzlpYVd4bFhDSTZYQ0ptWVdSbFQzVjBYQ0lzWENKbGJtRmliR1ZmWkdsemNHeGhlVjlqYjI1MFpXNTBYMjF2WW1sc1pWd2lPbHdpYjJabVhDSXNYQ0psYm1GaWJHVmZZbWRqYjJ4dmNsOXRiMkpwYkdWY0lqcGNJbTltWmx3aUxGd2lZbWRqYjJ4dmNsOXRiMkpwYkdWY0lqcGNJaU5tWm1abVptWmNJaXhjSW1WdVlXSnNaVjlpWjE5cGJXRm5aVjl0YjJKcGJHVmNJanBjSW05bVpsd2lMRndpWW1kZmFXMWhaMlZmYlc5aWFXeGxYQ0k2WENKY0lpeGNJbVZ1WVdKc1pWOWliM0prWlhKamIyeHZjbDl0YjJKcGJHVmNJanBjSW05bVpsd2lMRndpWW05eVpHVnlZMjlzYjNKZmJXOWlhV3hsWENJNlhDSWpabVptWm1abVhDSXNYQ0psYm1GaWJHVmZZbTl5WkdWeWMybDZaVjl0YjJKcGJHVmNJanBjSW05bVpsd2lMRndpWW05eVpHVnljMmw2WlY5dGIySnBiR1ZjSWpwY0lqRmNJaXhjSW1WdVlXSnNaVjlpYjNKa1pYSmZjbUZrYVhWelgyMXZZbWxzWlZ3aU9sd2liMlptWENJc1hDSmliM0prWlhKZmNtRmthWFZ6WDIxdlltbHNaVndpT2x3aU5Gd2lmU0lzSW5Ob2IzZGZiMjVzZVY5bWIzSmZZWFYwYUc5eUlqb2liMlptSWl3aWIzWmxjbXhoZVY5dmNHRmphWFI1SWpvaU1DNDFNREF3TURBaUxDSjJhV1YzY3lJNklqWTRJaXdpWTI5dWRtVnljMmx2Ym5NaU9pSXdJaXdpYzJodmQxOXdiM0IxY0Y5MGFYUnNaVjl0YjJKcGJHVWlPaUpQWm1ZaUxDSnphRzkzWDNCdmNIVndYMlJsYzJOZmJXOWlhV3hsSWpvaVQyWm1JbjE5IjsKICAgICAgICAgICAgICAgIA==
70 ms
autoptimize_single_bcedc2b682d52873a6f6dac330e7e37f.js
309 ms
javascript;base64,CiAgICBqUXVlcnkod2luZG93KS5zY3JvbGwoZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPiA1MCkgewogICAgICAgICAgICBqUXVlcnkoJ2JvZHknKS5hZGRDbGFzcygnc2hyaW5rJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgalF1ZXJ5KCdib2R5JykucmVtb3ZlQ2xhc3MoJ3NocmluaycpOwogICAgICAgIH0KICAgIH0pOwogICBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgICAvL2FsZXJ0KCJoaGhoaCIpOwogICAgalF1ZXJ5KCIuZHJvcGRvd24gZHQgLmhpZGEiKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgalF1ZXJ5KCIuZHJvcGRvd24gZGQgdWwiKS5zbGlkZVRvZ2dsZSgnZmFzdCcpOwogICAgfSk7CgogICAgalF1ZXJ5KCIuZHJvcGRvd24gZGQgdWwgbGkgYSIpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICBqUXVlcnkoIi5kcm9wZG93biBkZCB1bCIpLmhpZGUoKTsKICAgIH0pOwoKICAgIGZ1bmN0aW9uIGdldFNlbGVjdGVkVmFsdWUoaWQpIHsKICAgICAgcmV0dXJuIGpRdWVyeSgiIyIgKyBpZCkuZmluZCgiZHQgYSBzcGFuLnZhbHVlIikuaHRtbCgpOwogICAgfQoKICAgIGpRdWVyeShkb2N1bWVudCkuYmluZCgnY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgIHZhciAkY2xpY2tlZCA9IGpRdWVyeShlLnRhcmdldCk7CiAgICAgIGlmICghJGNsaWNrZWQucGFyZW50cygpLmhhc0NsYXNzKCJkcm9wZG93biIpKSBqUXVlcnkoIi5kcm9wZG93biBkZCB1bCIpLmhpZGUoKTsKICAgIH0pOwoKICAgIGpRdWVyeSgnLm11dGxpU2VsZWN0IGlucHV0W3R5cGU9ImNoZWNrYm94Il0nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKCiAgICAgIC8qdmFyIHRpdGxlID0galF1ZXJ5KHRoaXMpLmNsb3Nlc3QoJy5tdXRsaVNlbGVjdCcpLmZpbmQoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nKS52YWwoKSwKICAgICAgICB0aXRsZSA9IGpRdWVyeSh0aGlzKS52YWwoKSArICIsIjsqLwogICAgICAvKnZhciB2YWwgPSBqUXVlcnkodGhpcykudmFsKCk7CiAgICAgIGFsZXJ0KHZhbCk7Ki8KICAgIH0pOwogICAgICAgalF1ZXJ5KCcjc2F2ZV92YWx1ZScpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAgICAgIHZhciBmaWVsZHMgPSBqUXVlcnkoImlucHV0W25hbWU9J2NoZWNrYm94LXZhbFtdJ10iKS5zZXJpYWxpemVBcnJheSgpOyAKICAgICAgICAgdmFyIG5hbWUgPSBqUXVlcnkoJyNuYW1lJykudmFsKCk7CiAgICAgICAgIHZhciBwaG9uZSA9IGpRdWVyeSgnI3Bob25lJykudmFsKCk7CiAgICAgICAgIHZhciBiZXN0X3RpbWUgPSBqUXVlcnkoJyNiZXN0LXRpbWUnKS52YWwoKTsKICAgICAgICAgIGlmIChmaWVsZHMubGVuZ3RoID09PSAwIHx8IG5hbWUgPT0gJycgfHwgcGhvbmUgPT0gJycgfHwgYmVzdF90aW1lID09ICcnICkgCiAgICAgICAgICB7IAogICAgICAgICAgICAgIC8vYWxlcnQoJ25vdGhpbmcgc2VsZWN0ZWQnKTsgCiAgICAgICAgICAgICAgLy9qUXVlcnkoImg2I2hpZGEiKS5hZGRDbGFzcygnZXJyb3InKTsKICAgICAgICAgICAgICAvL2pRdWVyeSgncCBpbnB1dFt0eXBlPXRleHRdJykuYWRkQ2xhc3MoJ2Vycm9yJyk7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgalF1ZXJ5KCIjbmFtZS1pbnB1dCIpLmFwcGVuZCgnPHNwYW4gY2xhc3M9ImVycm9yIj5UaGlzIGZpZWxkIGlzIHJlcXVpcmVkLjwvc3Bhbj4nKTsKICAgICAgICAgICAgICBqUXVlcnkoIiNwaG9uZS1pbnB1dCIpLmFwcGVuZCgnPHNwYW4gY2xhc3M9ImVycm9yIj5UaGlzIGZpZWxkIGlzIHJlcXVpcmVkLjwvc3Bhbj4nKTsKICAgICAgICAgICAgICBqUXVlcnkoIiNiZXN0LWlucHV0IikuYXBwZW5kKCc8c3BhbiBjbGFzcz0iZXJyb3IiPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuPC9zcGFuPicpOwogICAgICAgICAgICAgIGpRdWVyeSgiZGwuZHJvcGRvd24gZHQiKS5hcHBlbmQoJzxzcGFuIGNsYXNzPSJlcnJvciI+VGhpcyBmaWVsZCBpcyByZXF1aXJlZC48L3NwYW4+Jyk7CiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfSAKICAgICAgICAgIGVsc2UgCiAgICAgICAgICB7IAogICAgICAgICAgICAKICAgICAgICAgICAgLy9qUXVlcnkoImg2I2hpZGEiKS5yZW1vdmVDbGFzcygnZXJyb3InKTsKICAgICAgICAgICAgLy9qUXVlcnkoJ3AgaW5wdXRbdHlwZT10ZXh0XScpLnJlbW92ZUNsYXNzKCdlcnJvcicpOwogICAgICAgICAgICAgIC8vYWxlcnQoZmllbGRzLmxlbmd0aCArICIgaXRlbXMgc2VsZWN0ZWQiKTsgCiAgICAgICAgICB9CiAgICAgIH0pOwogICB9KTsgCg==
69 ms
javascript;base64,CmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICd3cGNmN21haWxzZW50JywgZnVuY3Rpb24oIGV2ZW50ICkgewogICAgbG9jYXRpb24gPSAnaHR0cHM6Ly93d3cuYWNjaWRlbnQtaGVscGxpbmUudWsuY29tL3RoYW5rLXlvdS8nOwp9LCBmYWxzZSApOwo=
70 ms
javascript;base64,ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJuby1qcyIpOw==
69 ms
javascript;base64,CglpZiAoIC0xICE9PSBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoICdNU0lFJyApIHx8IC0xICE9PSBuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCAnVHJpZGVudC8nICkgKSB7CgkJZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCAnaXMtSUUnICk7Cgl9Cgk=
69 ms
post-56911.css
308 ms
post-58185.css
310 ms
post-59945.css
313 ms
post-52923.css
314 ms
post-59676.css
317 ms
post-59679.css
315 ms
post-53543.css
324 ms
post-59655.css
324 ms
post-59660.css
325 ms
post-56391.css
338 ms
post-56404.css
336 ms
post-59673.css
338 ms
post-56394.css
347 ms
post-59670.css
349 ms
parsley.min.js
235 ms
javascript;base64,CnZhciBjb21wbGlhbnogPSB7InByZWZpeCI6ImNtcGx6XyIsInVzZXJfYmFubmVyX2lkIjoiMSIsInNldF9jb29raWVzIjpbXSwiYmxvY2tfYWpheF9jb250ZW50IjoiIiwiYmFubmVyX3ZlcnNpb24iOiIyNyIsInZlcnNpb24iOiI3LjEuMCIsInN0b3JlX2NvbnNlbnQiOiIiLCJkb19ub3RfdHJhY2tfZW5hYmxlZCI6IiIsImNvbnNlbnR0eXBlIjoib3B0aW4iLCJyZWdpb24iOiJ1ayIsImdlb2lwIjoiIiwiZGlzbWlzc190aW1lb3V0IjoiIiwiZGlzYWJsZV9jb29raWViYW5uZXIiOiIiLCJzb2Z0X2Nvb2tpZXdhbGwiOiIiLCJkaXNtaXNzX29uX3Njcm9sbCI6IiIsImNvb2tpZV9leHBpcnkiOiIzNjUiLCJ1cmwiOiJodHRwczpcL1wvd3d3LmFjY2lkZW50LWhlbHBsaW5lLnVrLmNvbVwvd3AtanNvblwvY29tcGxpYW56XC92MVwvIiwibG9jYWxlIjoibGFuZz1lbiZsb2NhbGU9ZW5fR0IiLCJzZXRfY29va2llc19vbl9yb290IjoiIiwiY29va2llX2RvbWFpbiI6IiIsImN1cnJlbnRfcG9saWN5X2lkIjoiMjkiLCJjb29raWVfcGF0aCI6IlwvIiwiY2F0ZWdvcmllcyI6eyJzdGF0aXN0aWNzIjoic3RhdGlzdGljcyIsIm1hcmtldGluZyI6Im1hcmtldGluZyJ9LCJ0Y2ZfYWN0aXZlIjoiIiwicGxhY2Vob2xkZXJ0ZXh0IjoiQ2xpY2sgdG8gYWNjZXB0IHtjYXRlZ29yeX0gY29va2llcyBhbmQgZW5hYmxlIHRoaXMgY29udGVudCIsImNzc19maWxlIjoiaHR0cHM6XC9cL3d3dy5hY2NpZGVudC1oZWxwbGluZS51ay5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcL2NvbXBsaWFuelwvY3NzXC9iYW5uZXIte2Jhbm5lcl9pZH0te3R5cGV9LmNzcz92PTI3IiwicGFnZV9saW5rcyI6eyJ1ayI6eyJjb29raWUtc3RhdGVtZW50Ijp7InRpdGxlIjoiUHJpdmFjeSBQb2xpY3kiLCJ1cmwiOiJodHRwczpcL1wvd3d3LmFjY2lkZW50LWhlbHBsaW5lLnVrLmNvbVwvcHJpdmFjeXBvbGljeVwvIn0sInByaXZhY3ktc3RhdGVtZW50Ijp7InRpdGxlIjoiUHJpdmFjeSBQb2xpY3kiLCJ1cmwiOiJodHRwczpcL1wvd3d3LmFjY2lkZW50LWhlbHBsaW5lLnVrLmNvbVwvcHJpdmFjeXBvbGljeVwvIn19fSwidG1fY2F0ZWdvcmllcyI6IiIsImZvcmNlRW5hYmxlU3RhdHMiOiIiLCJwcmV2aWV3IjoiIiwiY2xlYW5fY29va2llcyI6IiIsImFyaWFfbGFiZWwiOiJDbGljayB0byBhY2NlcHQge2NhdGVnb3J5fSBjb29raWVzIGFuZCBlbmFibGUgdGhpcyBjb250ZW50In07Cg==
64 ms
javascript;base64,CgkJaWYgKCd1bmRlZmluZWQnICE9IHR5cGVvZiB3aW5kb3cualF1ZXJ5KSB7CgkJCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCQpIHsKCQkJCSQoZG9jdW1lbnQpLm9uKCdlbGVtZW50b3IvcG9wdXAvc2hvdycsICgpID0+IHsKCQkJCQlsZXQgcmV2X2NhdHMgPSBjbXBsel9jYXRlZ29yaWVzLnJldmVyc2UoKTsKCQkJCQlmb3IgKGxldCBrZXkgaW4gcmV2X2NhdHMpIHsKCQkJCQkJaWYgKHJldl9jYXRzLmhhc093blByb3BlcnR5KGtleSkpIHsKCQkJCQkJCWxldCBjYXRlZ29yeSA9IGNtcGx6X2NhdGVnb3JpZXNba2V5XTsKCQkJCQkJCWlmIChjbXBsel9oYXNfY29uc2VudChjYXRlZ29yeSkpIHsKCQkJCQkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1jYXRlZ29yeT0iJyArIGNhdGVnb3J5ICsgJyJdJykuZm9yRWFjaChvYmogPT4gewoJCQkJCQkJCQljbXBsel9yZW1vdmVfcGxhY2Vob2xkZXIob2JqKTsKCQkJCQkJCQl9KTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCgkJCQkJbGV0IHNlcnZpY2VzID0gY21wbHpfZ2V0X3NlcnZpY2VzX29uX3BhZ2UoKTsKCQkJCQlmb3IgKGxldCBrZXkgaW4gc2VydmljZXMpIHsKCQkJCQkJaWYgKHNlcnZpY2VzLmhhc093blByb3BlcnR5KGtleSkpIHsKCQkJCQkJCWxldCBzZXJ2aWNlID0gc2VydmljZXNba2V5XS5zZXJ2aWNlOwoJCQkJCQkJbGV0IGNhdGVnb3J5ID0gc2VydmljZXNba2V5XS5jYXRlZ29yeTsKCQkJCQkJCWlmIChjbXBsel9oYXNfc2VydmljZV9jb25zZW50KHNlcnZpY2UsIGNhdGVnb3J5KSkgewoJCQkJCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNlcnZpY2U9IicgKyBzZXJ2aWNlICsgJyJdJykuZm9yRWFjaChvYmogPT4gewoJCQkJCQkJCQljbXBsel9yZW1vdmVfcGxhY2Vob2xkZXIob2JqKTsKCQkJCQkJCQl9KTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0pOwoJCQl9KTsKCQl9Cg==
64 ms
javascript;base64,CndwLmkxOG4uc2V0TG9jYWxlRGF0YSggeyAndGV4dCBkaXJlY3Rpb25cdTAwMDRsdHInOiBbICdsdHInIF0gfSApOwp3cC5pMThuLnNldExvY2FsZURhdGEoIHsgJ3RleHQgZGlyZWN0aW9uXHUwMDA0bHRyJzogWyAnbHRyJyBdIH0gKTsK
65 ms
javascript;base64,CnZhciBFbGVtZW50b3JQcm9Gcm9udGVuZENvbmZpZyA9IHsiYWpheHVybCI6Imh0dHBzOlwvXC93d3cuYWNjaWRlbnQtaGVscGxpbmUudWsuY29tXC93cC1hZG1pblwvYWRtaW4tYWpheC5waHAiLCJub25jZSI6ImZhM2M5MmI0MTYiLCJ1cmxzIjp7ImFzc2V0cyI6Imh0dHBzOlwvXC93d3cuYWNjaWRlbnQtaGVscGxpbmUudWsuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9lbGVtZW50b3ItcHJvXC9hc3NldHNcLyIsInJlc3QiOiJodHRwczpcL1wvd3d3LmFjY2lkZW50LWhlbHBsaW5lLnVrLmNvbVwvd3AtanNvblwvIn0sInNoYXJlQnV0dG9uc05ldHdvcmtzIjp7ImZhY2Vib29rIjp7InRpdGxlIjoiRmFjZWJvb2siLCJoYXNfY291bnRlciI6dHJ1ZX0sInR3aXR0ZXIiOnsidGl0bGUiOiJUd2l0dGVyIn0sImxpbmtlZGluIjp7InRpdGxlIjoiTGlua2VkSW4iLCJoYXNfY291bnRlciI6dHJ1ZX0sInBpbnRlcmVzdCI6eyJ0aXRsZSI6IlBpbnRlcmVzdCIsImhhc19jb3VudGVyIjp0cnVlfSwicmVkZGl0Ijp7InRpdGxlIjoiUmVkZGl0IiwiaGFzX2NvdW50ZXIiOnRydWV9LCJ2ayI6eyJ0aXRsZSI6IlZLIiwiaGFzX2NvdW50ZXIiOnRydWV9LCJvZG5va2xhc3NuaWtpIjp7InRpdGxlIjoiT0siLCJoYXNfY291bnRlciI6dHJ1ZX0sInR1bWJsciI6eyJ0aXRsZSI6IlR1bWJsciJ9LCJkaWdnIjp7InRpdGxlIjoiRGlnZyJ9LCJza3lwZSI6eyJ0aXRsZSI6IlNreXBlIn0sInN0dW1ibGV1cG9uIjp7InRpdGxlIjoiU3R1bWJsZVVwb24iLCJoYXNfY291bnRlciI6dHJ1ZX0sIm1peCI6eyJ0aXRsZSI6Ik1peCJ9LCJ0ZWxlZ3JhbSI6eyJ0aXRsZSI6IlRlbGVncmFtIn0sInBvY2tldCI6eyJ0aXRsZSI6IlBvY2tldCIsImhhc19jb3VudGVyIjp0cnVlfSwieGluZyI6eyJ0aXRsZSI6IlhJTkciLCJoYXNfY291bnRlciI6dHJ1ZX0sIndoYXRzYXBwIjp7InRpdGxlIjoiV2hhdHNBcHAifSwiZW1haWwiOnsidGl0bGUiOiJFbWFpbCJ9LCJwcmludCI6eyJ0aXRsZSI6IlByaW50In0sIngtdHdpdHRlciI6eyJ0aXRsZSI6IlgifSwidGhyZWFkcyI6eyJ0aXRsZSI6IlRocmVhZHMifX0sImZhY2Vib29rX3NkayI6eyJsYW5nIjoiZW5fR0IiLCJhcHBfaWQiOiIifSwibG90dGllIjp7ImRlZmF1bHRBbmltYXRpb25VcmwiOiJodHRwczpcL1wvd3d3LmFjY2lkZW50LWhlbHBsaW5lLnVrLmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZWxlbWVudG9yLXByb1wvbW9kdWxlc1wvbG90dGllXC9hc3NldHNcL2FuaW1hdGlvbnNcL2RlZmF1bHQuanNvbiJ9fTsK
65 ms
javascript;base64,CnZhciBlbGVtZW50b3JGcm9udGVuZENvbmZpZyA9IHsiZW52aXJvbm1lbnRNb2RlIjp7ImVkaXQiOmZhbHNlLCJ3cFByZXZpZXciOmZhbHNlLCJpc1NjcmlwdERlYnVnIjpmYWxzZX0sImkxOG4iOnsic2hhcmVPbkZhY2Vib29rIjoiU2hhcmUgb24gRmFjZWJvb2siLCJzaGFyZU9uVHdpdHRlciI6IlNoYXJlIG9uIFR3aXR0ZXIiLCJwaW5JdCI6IlBpbiBpdCIsImRvd25sb2FkIjoiRG93bmxvYWQiLCJkb3dubG9hZEltYWdlIjoiRG93bmxvYWQgaW1hZ2UiLCJmdWxsc2NyZWVuIjoiRnVsbHNjcmVlbiIsInpvb20iOiJab29tIiwic2hhcmUiOiJTaGFyZSIsInBsYXlWaWRlbyI6IlBsYXkgVmlkZW8iLCJwcmV2aW91cyI6IlByZXZpb3VzIiwibmV4dCI6Ik5leHQiLCJjbG9zZSI6IkNsb3NlIiwiYTExeUNhcm91c2VsV3JhcHBlckFyaWFMYWJlbCI6IkNhcm91c2VsIHwgSG9yaXpvbnRhbCBzY3JvbGxpbmc6IEFycm93IExlZnQgJiBSaWdodCIsImExMXlDYXJvdXNlbFByZXZTbGlkZU1lc3NhZ2UiOiJQcmV2aW91cyBzbGlkZSIsImExMXlDYXJvdXNlbE5leHRTbGlkZU1lc3NhZ2UiOiJOZXh0IHNsaWRlIiwiYTExeUNhcm91c2VsRmlyc3RTbGlkZU1lc3NhZ2UiOiJUaGlzIGlzIHRoZSBmaXJzdCBzbGlkZSIsImExMXlDYXJvdXNlbExhc3RTbGlkZU1lc3NhZ2UiOiJUaGlzIGlzIHRoZSBsYXN0IHNsaWRlIiwiYTExeUNhcm91c2VsUGFnaW5hdGlvbkJ1bGxldE1lc3NhZ2UiOiJHbyB0byBzbGlkZSJ9LCJpc19ydGwiOmZhbHNlLCJicmVha3BvaW50cyI6eyJ4cyI6MCwic20iOjQ4MCwibWQiOjc2OCwibGciOjEwMjUsInhsIjoxNDQwLCJ4eGwiOjE2MDB9LCJyZXNwb25zaXZlIjp7ImJyZWFrcG9pbnRzIjp7Im1vYmlsZSI6eyJsYWJlbCI6Ik1vYmlsZSBQb3J0cmFpdCIsInZhbHVlIjo3NjcsImRlZmF1bHRfdmFsdWUiOjc2NywiZGlyZWN0aW9uIjoibWF4IiwiaXNfZW5hYmxlZCI6dHJ1ZX0sIm1vYmlsZV9leHRyYSI6eyJsYWJlbCI6Ik1vYmlsZSBMYW5kc2NhcGUiLCJ2YWx1ZSI6ODgwLCJkZWZhdWx0X3ZhbHVlIjo4ODAsImRpcmVjdGlvbiI6Im1heCIsImlzX2VuYWJsZWQiOnRydWV9LCJ0YWJsZXQiOnsibGFiZWwiOiJUYWJsZXQgUG9ydHJhaXQiLCJ2YWx1ZSI6MTAyNCwiZGVmYXVsdF92YWx1ZSI6MTAyNCwiZGlyZWN0aW9uIjoibWF4IiwiaXNfZW5hYmxlZCI6dHJ1ZX0sInRhYmxldF9leHRyYSI6eyJsYWJlbCI6IlRhYmxldCBMYW5kc2NhcGUiLCJ2YWx1ZSI6MTIwMCwiZGVmYXVsdF92YWx1ZSI6MTIwMCwiZGlyZWN0aW9uIjoibWF4IiwiaXNfZW5hYmxlZCI6dHJ1ZX0sImxhcHRvcCI6eyJsYWJlbCI6IkxhcHRvcCIsInZhbHVlIjoxMzY2LCJkZWZhdWx0X3ZhbHVlIjoxMzY2LCJkaXJlY3Rpb24iOiJtYXgiLCJpc19lbmFibGVkIjp0cnVlfSwid2lkZXNjcmVlbiI6eyJsYWJlbCI6IldpZGVzY3JlZW4iLCJ2YWx1ZSI6MjQwMCwiZGVmYXVsdF92YWx1ZSI6MjQwMCwiZGlyZWN0aW9uIjoibWluIiwiaXNfZW5hYmxlZCI6dHJ1ZX19fSwidmVyc2lvbiI6IjMuMjIuMSIsImlzX3N0YXRpYyI6ZmFsc2UsImV4cGVyaW1lbnRhbEZlYXR1cmVzIjp7ImVfb3B0aW1pemVkX2Fzc2V0c19sb2FkaW5nIjp0cnVlLCJlX29wdGltaXplZF9jc3NfbG9hZGluZyI6dHJ1ZSwiZV9mb250X2ljb25fc3ZnIjp0cnVlLCJhZGRpdGlvbmFsX2N1c3RvbV9icmVha3BvaW50cyI6dHJ1ZSwiY29udGFpbmVyX2dyaWQiOnRydWUsImVfc3dpcGVyX2xhdGVzdCI6dHJ1ZSwiZV9vbmJvYXJkaW5nIjp0cnVlLCJ0aGVtZV9idWlsZGVyX3YyIjp0cnVlLCJob21lX3NjcmVlbiI6dHJ1ZSwiYWktbGF5b3V0Ijp0cnVlLCJsYW5kaW5nLXBhZ2VzIjp0cnVlLCJmb3JtLXN1Ym1pc3Npb25zIjp0cnVlfSwidXJscyI6eyJhc3NldHMiOiJodHRwczpcL1wvd3d3LmFjY2lkZW50LWhlbHBsaW5lLnVrLmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZWxlbWVudG9yXC9hc3NldHNcLyJ9LCJzd2lwZXJDbGFzcyI6InN3aXBlciIsInNldHRpbmdzIjp7InBhZ2UiOltdLCJlZGl0b3JQcmVmZXJlbmNlcyI6W119LCJraXQiOnsiYWN0aXZlX2JyZWFrcG9pbnRzIjpbInZpZXdwb3J0X21vYmlsZSIsInZpZXdwb3J0X21vYmlsZV9leHRyYSIsInZpZXdwb3J0X3RhYmxldCIsInZpZXdwb3J0X3RhYmxldF9leHRyYSIsInZpZXdwb3J0X2xhcHRvcCIsInZpZXdwb3J0X3dpZGVzY3JlZW4iXSwiZ2xvYmFsX2ltYWdlX2xpZ2h0Ym94IjoieWVzIiwibGlnaHRib3hfZW5hYmxlX2NvdW50ZXIiOiJ5ZXMiLCJsaWdodGJveF9lbmFibGVfZnVsbHNjcmVlbiI6InllcyIsImxpZ2h0Ym94X2VuYWJsZV96b29tIjoieWVzIiwibGlnaHRib3hfZW5hYmxlX3NoYXJlIjoieWVzIiwibGlnaHRib3hfdGl0bGVfc3JjIjoidGl0bGUiLCJsaWdodGJveF9kZXNjcmlwdGlvbl9zcmMiOiJkZXNjcmlwdGlvbiJ9LCJwb3N0Ijp7ImlkIjo1NTQ4NSwidGl0bGUiOiJQZXJzb25hbCUyMEluanVyeSUyMENsYWltcyUyMEhlbHBsaW5lJTIwLSUyMEFjY2lkZW50JTIwQ29tcGVuc2F0aW9uJTIwSGVscGxpbmUiLCJleGNlcnB0IjoiIiwiZmVhdHVyZWRJbWFnZSI6ZmFsc2V9fTsK
64 ms
javascript;base64,CgkJLyh0cmlkZW50fG1zaWUpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsKGZ1bmN0aW9uKCl7dmFyIHQsZT1sb2NhdGlvbi5oYXNoLnN1YnN0cmluZygxKTsvXltBLXowLTlfLV0rJC8udGVzdChlKSYmKHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSkpJiYoL14oPzphfHNlbGVjdHxpbnB1dHxidXR0b258dGV4dGFyZWEpJC9pLnRlc3QodC50YWdOYW1lKXx8KHQudGFiSW5kZXg9LTEpLHQuZm9jdXMoKSl9KSwhMSk7CgkJ
64 ms
vcd15cbe7772f49c399c6a5babf22c1241717689176015
251 ms
post-59667.css
350 ms
post-56397.css
353 ms
post-59662.css
354 ms
pxiEyp8kv8JHgFVrJJfedw.ttf
223 ms
pxiByp8kv8JHgFVrLGT9Z1xlEA.ttf
223 ms
pxiByp8kv8JHgFVrLDz8Z1xlEA.ttf
221 ms
pxiByp8kv8JHgFVrLFj_Z1xlEA.ttf
222 ms
pxiGyp8kv8JHgFVrLPTucHtF.ttf
224 ms
pxiByp8kv8JHgFVrLEj6Z1xlEA.ttf
229 ms
pxiByp8kv8JHgFVrLCz7Z1xlEA.ttf
224 ms
pxiByp8kv8JHgFVrLDD4Z1xlEA.ttf
224 ms
pxiByp8kv8JHgFVrLBT5Z1xlEA.ttf
223 ms
memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjr0B4gaVc.ttf
225 ms
memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVc.ttf
230 ms
memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVc.ttf
228 ms
memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsgH1x4gaVc.ttf
230 ms
memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVc.ttf
230 ms
memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgshZ1x4gaVc.ttf
229 ms
1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4VrMDrMfJQ.ttf
231 ms
1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4WjMDrMfJQ.ttf
231 ms
1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4TbMDrMfJQ.ttf
232 ms
1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4bbLDrMfJQ.ttf
232 ms
1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4Y_LDrMfJQ.ttf
233 ms
pxiGyp8kv8JHgFVrJJLucHtF.ttf
234 ms
pxiDyp8kv8JHgFVrJJLmg1hVF9eL.ttf
232 ms
pxiDyp8kv8JHgFVrJJLm21lVF9eL.ttf
234 ms
pxiDyp8kv8JHgFVrJJLmv1pVF9eL.ttf
235 ms
pxiAyp8kv8JHgFVrJJLmE0tCMPc.ttf
235 ms
pxiDyp8kv8JHgFVrJJLmr19VF9eL.ttf
236 ms
pxiDyp8kv8JHgFVrJJLmy15VF9eL.ttf
237 ms
post-56410.css
345 ms
post-56416.css
298 ms
post-59650.css
302 ms
javascript;base64,CiAgICAkKGZ1bmN0aW9uKCl7CiAgICAgICAgbGV0IHN0YW5kYXJkSGVpZ2h0ID0gMDsKICAgICAgICAkKCcuYXlzLXBiLW1vZGFscyAuY2xhaW0tYW1vdW50cyBzZWxlY3RbbmFtZT0iYm9keV9wYXJ0Il0nKQogICAgICAgICAgICAub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgbGV0IHNlY3Rpb25IZWlnaHQgPSA0MDA7CiAgICAgICAgICAgICAgICBsZXQgbWFyZ2luID0gNjA7CiAgICAgICAgICAgICAgICBsZXQgcGFkZGluZyA9IDEyMDsgLy8gNjAgdG9wIC8gYm90dG9tCiAgICAgICAgICAgICAgICAkcG9wdXAgPSAkKHRoaXMpLmNsb3Nlc3QoJy5heXMtcGItbW9kYWxzJyk7CiAgICAgICAgICAgICAgICAkbW9kYWwgPSAkcG9wdXAuZmluZCgnLmNsYWltLWFtb3VudHMnKTsKICAgICAgICAgICAgICAgICRvdmVybGF5ID0gJHBvcHVwLmZpbmQoJ2RpdltvdmVybGF5XScpOwogICAgICAgICAgICAgICAgJGNsYWltQW1vdW50cyA9ICRwb3B1cC5maW5kKCcuYW1vdW50cy1zZWN0aW9uJyk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgJGNsYWltQW1vdW50cy5yZW1vdmVDbGFzcygnb3BlbicpLmFkZENsYXNzKCdjbG9zZWQnKTsKICAgICAgICAgICAgICAgICAgICAkbW9kYWwuY3NzKCdoZWlnaHQnLCBzdGFuZGFyZEhlaWdodCArICdweCcpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJGNsYWltQW1vdW50cy5maW5kKCcuaW5qdXJ5LXNlY3Rpb24nKS5oaWRlKCk7CiAgICAgICAgICAgICAgICAkY2xhaW1BbW91bnRzLmZpbmQoJy5pbmp1cnktc2VjdGlvbi4nK3RoaXMudmFsdWUpLnNob3coKTsKICAgICAgICAgICAgICAgICRwb3B1cC5maW5kKCcud3BjZjcgaW5wdXRbbmFtZT1ib2R5X3BhcnRdJykudmFsKHRoaXMudmFsdWUpOwogICAgICAgICAgICAgICAgaWYgKCRjbGFpbUFtb3VudHMuaGFzQ2xhc3MoJ2Nsb3NlZCcpKSB7CiAgICAgICAgICAgICAgICAgICAgJGNsYWltQW1vdW50cy5yZW1vdmVDbGFzcygnY2xvc2VkJykuYWRkQ2xhc3MoJ29wZW4nKTsKICAgICAgICAgICAgICAgICAgICBsZXQgaGVpZ2h0ID0gcGFyc2VJbnQoJG1vZGFsLmNzcygnaGVpZ2h0JykpOwogICAgICAgICAgICAgICAgICAgIGlmIChzdGFuZGFyZEhlaWdodCA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkSGVpZ2h0ID0gaGVpZ2h0OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkbW9kYWwKICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygnaGVpZ2h0JywgKGhlaWdodCArIHNlY3Rpb25IZWlnaHQpICsgJ3B4JykKICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygnbWF4LWhlaWdodCcsICdpbml0aWFsJyk7CiAgICAgICAgICAgICAgICAgICAgJHBvcHVwLmNzcygnb3ZlcmZsb3cteScsICdzY3JvbGwnKTsKICAgICAgICAgICAgICAgICAgICAkb3ZlcmxheS5jc3MoJ2hlaWdodCcsIChoZWlnaHQgKyBzZWN0aW9uSGVpZ2h0ICsgbWFyZ2luICsgMTIwKSArICdweCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgIH0pOwo=
11 ms
post-59658.css
294 ms
pxiDyp8kv8JHgFVrJJLm111VF9eL.ttf
120 ms
post-60283.css
241 ms
pxiDyp8kv8JHgFVrJJLm81xVF9eL.ttf
72 ms
ays-pb-public-min.css
154 ms
post-48183.css
157 ms
autoptimize_single_4f59cd073d50b0ed5a57c6eb3e0dac30.js
294 ms
autoptimize_single_95e0d3d407563ac082622955276e9c5a.js
330 ms
autoptimize_single_2ab642220b6377a3a1e633bca3406c0c.js
323 ms
autoptimize_single_75d7822d25873fd727beecf0744affa4.js
269 ms
complianz.min.js
267 ms
jquery.smartmenus.min.js
268 ms
imagesloaded.min.js
267 ms
webpack-pro.runtime.min.js
266 ms
webpack.runtime.min.js
266 ms
frontend-modules.min.js
266 ms
hooks.min.js
265 ms
i18n.min.js
266 ms
frontend.min.js
263 ms
waypoints.min.js
264 ms
core.min.js
264 ms
frontend.min.js
257 ms
elements-handlers.min.js
258 ms
jquery.sticky.min.js
255 ms
knowledge-icon.jpg
245 ms
confidence-icon.jpg
244 ms
choice-icon.jpg
245 ms
claim-bg.jpg
298 ms
image.jpg
296 ms
badge.png
297 ms
background.jpg
229 ms
help-img.png
289 ms
phone-icon.png
332 ms
f-logo-1.png
332 ms
mobile-badges.png
328 ms
phone.jpg
278 ms
badges.png
324 ms
trustpilot-sml.png
395 ms
f-trustpilot-badge-1.png
391 ms
autoptimize_single_a32ca91d60e1f56ebb9c3a93a5f1ff30.js
352 ms
send-a-message-icon.png
314 ms
blue-bg.jpg
315 ms
logo-element-light.png
313 ms
blue-arrow-faq.png
412 ms
blue-bg-faq.png
412 ms
fa-solid-900.woff
376 ms
fa-regular-400.woff
308 ms
gtm.js
103 ms
hotjar-2045683.js
170 ms
print.css
23 ms
accident-helpline.uk.com accessibility score
Contrast
These are opportunities to improve the legibility of your content.
Impact
Issue
Background and foreground colors do not have a sufficient contrast ratio.
Navigation
These are opportunities to improve keyboard navigation in your application.
Impact
Issue
Heading elements are not in a sequentially-descending order
Names and labels
These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.
Impact
Issue
Links do not have a discernible name
accident-helpline.uk.com best practices score
Trust and Safety
Impact
Issue
Does not use HTTPS
Ensure CSP is effective against XSS attacks
User Experience
Impact
Issue
Serves images with low resolution
General
Impact
Issue
Detected JavaScript libraries
Browser errors were logged to the console
Page has valid source maps
accident-helpline.uk.com SEO score
Mobile Friendly
Make sure your pages are mobile friendly so users don’t have to pinch or zoom in order to read the content pages. [Learn more](https://developers.google.com/search/mobile-sites/).
Impact
Issue
Document uses legible font sizes
Tap targets are not sized appropriately
EN
EN
UTF-8
Language claimed in HTML meta tag should match the language actually used on the web page. Otherwise Accident-helpline.uk.com can be misinterpreted by Google and other search engines. Our service has detected that English is used on the page, and it matches the claimed language. Our system also found out that Accident-helpline.uk.com main page’s claimed encoding is utf-8. Use of this encoding format is the best practice as the main page visitors from all over the world won’t have any issues with symbol transcription.
accident-helpline.uk.com
Open Graph data is detected on the main page of Accident Helpline. This is the best way to make the web page social media friendly. Here is how it looks like on Facebook: