Off-Grid Solutions

There has never been a more apt time to reform the British Virgin Islands’ energy resources than now. The Territory has experienced an obligatory ‘reset,’ and the most productive action of the tragic conditions of hurricane Irma, is to prepare as best as humanly possible for ‘survivability’ through any future storms and power outages.

Residents should be investing serious thought into the design of their properties and their backup power supply, so that both remain steadfast during adverse situations. Contemplation on the future of construction and our power needs should be put into practice, even if it means engineering at a slightly higher cost.

In this month’s issue, we have seen what buildings survived and in the accompanying Q&A editorial with alternative energy company aTec, we witness how renewable energy power systems assisted residential and commercial entities during and after the hurricanes.

Such progression reveals the advancement and benefit that battery-based renewable energy systems bring to primary and backup power systems. Now that we are experiencing storms of this magnitude and extended power failures, the financial benefit of renewable energy systems is undeniable. Renewable energy systems offset the cost of fossil fuel, fossil fuel transport, and engine maintenance.

For those unaware, off-grid and backup solutions in the energy industry are systems designed to help people function without the support of a utility like the BVI Electricity Corporation.

Speaking to aTec Managing Director Dana Miller, he explained that the best option available is generally, “automated renewable systems with integrated generators that reduce your operating cost and make managing energy easier. We also have various battery types available to store excess solar energy for use at a later time—effectively a free fuel source.”

The managing director relayed to VIPY that the ideal time to move to off grid solutions—a power supply that can keep running through an adverse condition like a hurricane—is now as duty cost has been waived, but will likely be reinstated at the end of 2017.

aTec advise that any individual who seeks to build their home or business in a remote location, can create their own power at an initial cost that has a reasonable payback period. The system fee can be added to a mortgage and eliminate their electricity bill—the loan repayment will likely be less than their current electricity charges and energy will generally be stored in the latest battery technology.

Moving off grid doesn’t mean an individual or family must cut themselves off from utility power. There is flexibility to integrate a solar power system or hybrid renewable/ fossil fuel with the standard power supply for those who are not ready to make the complete transition to alternative energy. 

Perhaps one of the greatest aspects of alternative energy—aside from protecting the world—is that it makes a resident’s life easier: “Alternative energy will reduce the time and money you spend on generator fuel and generator maintenance. It reduces your expenditure on your primary or backup power. Particularly primary.” Also, one does not have to continually refuel. It comes to the individual from a massive nuclear reactor in the sky—the sun.

The BVI could realistically aim for becoming a global pioneer and advocate in the Caribbean region for decreasing reliance on fossil fuel energy. “All residential and commercial customers should consider the use of a renewable energy system,” said Dana when discussing this aspect of the BVI’s future positioning on an international scale. “We could offset one third of the BVI energy load without considering grid instability.”

The challenge for residents to go off grid has always been the initial financial cost. Realistically, people as a movement will not prevent reliance on fossil fuels until Government makes some infrastructural changes regarding energy.

When asked about the future for off-grid solutions and alternative energy in its entirety, Dana simply said that, “renewable energy is intuitively the superior energy solution. It reduces cost while reducing pollution. It’s like comparing the candle to the laser beam. One is ancient and reliable and the other is modern and efficient. When we combine the two, we have the perfect power solution.”

In pondering the British Virgin Islands’ future as well as its geographical location, climate, and the prospect of the annual hurricane season, the prudent question should now be: what do we do next to facilitate the transition to natural resources as our power supply?

Photography by Dana Miller and Shakti Segura

Stephen Leslie France, Editor-in-Chief - aLookingGlass
Hailing from London, UK, Stephen graduated with a BA English Literature degree at the University of Southampton in 2007. Whilst employed, he completed the second draft of his 93,000 word novel ‘Fall from Grace’ among other writing projects and a variety of occupations - stephenlesliefrance.com/
Stephen Leslie France, Editor-in-Chief - aLookingGlass
Stephen Leslie France, Editor-in-Chief - aLookingGlass

Latest posts by Stephen Leslie France, Editor-in-Chief - aLookingGlass (see all)

Like this article? Sign up to our newsletter!

Share This
BVI Property and Yacht
Like this article
Like FB Page
PGlmcmFtZSBzcmM9Ii8vd3d3LmZhY2Vib29rLmNvbS9wbHVnaW5zL2xpa2Vib3gucGhwP2hyZWY9aHR0cHMlM0ElMkYlMkZ3d3cuZmFjZWJvb2suY29tJTJGVmlyZ2luSXNsYW5kc1Byb3BlcnR5WWFjaHQmd2lkdGg9MTYwcHgmaGVpZ2h0PTYyJmNvbG9yc2NoZW1lPWxpZ2h0JnNob3dfZmFjZXM9ZmFsc2UmaGVhZGVyPWZhbHNlJnN0cmVhbT1mYWxzZSZzaG93X2JvcmRlcj1mYWxzZSZhcHBJZD01MDYyNzM5MjYxMTUyNzEiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOm5vbmU7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MTYwcHhweDsgaGVpZ2h0OjEwMHB4OyIgYWxsb3dUcmFuc3BhcmVuY3k9InRydWUiPjwvaWZyYW1lPg==
Like this article
Subscribe to Newsletter
ARE YOU READY? GET IT NOW!
Increase more than 500% of Email Subscribers!
Your Information will never be shared with any third party.
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzEnID48YSBpZD0nZ2ZfNzEnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzEnIGlkPSdnZm9ybV83MScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzcxJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzEnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzFfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IFdoYXQgZmllbGQgZG8geW91IHdvcmsgaW4/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzFfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI4YTI2ZmU5NycgIGlkPSdjaG9pY2VfNzFfMl8wJyB0YWJpbmRleD0nMScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl8wJyBpZD0nbGFiZWxfNzFfMl8wJz5BZG1pbmlzdHJhdGlvbjwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmI1ZTEwNTlmJyAgaWQ9J2Nob2ljZV83MV8yXzEnIHRhYmluZGV4PScyJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzEnIGlkPSdsYWJlbF83MV8yXzEnPkJ1c2luZXNzIG93bmVyPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMDNiNjNkZTgnICBpZD0nY2hvaWNlXzcxXzJfMicgdGFiaW5kZXg9JzMnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfMicgaWQ9J2xhYmVsXzcxXzJfMic+RXhlY3V0aXZlLyBHZW5lcmFsIE1hbmFnZW1lbnQvIERpcmVjdG9yPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYWRiYjJmMWYnICBpZD0nY2hvaWNlXzcxXzJfMycgdGFiaW5kZXg9JzQnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfMycgaWQ9J2xhYmVsXzcxXzJfMyc+R292ZXJubWVudDwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl80Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmZlYmJjMmNjJyAgaWQ9J2Nob2ljZV83MV8yXzQnIHRhYmluZGV4PSc1JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzQnIGlkPSdsYWJlbF83MV8yXzQnPkhlYWx0aGNhcmU8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfNSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIyZWVjYTgxZScgIGlkPSdjaG9pY2VfNzFfMl81JyB0YWJpbmRleD0nNicgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl81JyBpZD0nbGFiZWxfNzFfMl81Jz5Ib21lbWFrZXI8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfNic+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI1OGQ2YjgxOScgIGlkPSdjaG9pY2VfNzFfMl82JyB0YWJpbmRleD0nNycgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl82JyBpZD0nbGFiZWxfNzFfMl82Jz5Ib3NwaXRhbGl0eTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl83Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjkzYWQzYWY5JyAgaWQ9J2Nob2ljZV83MV8yXzcnIHRhYmluZGV4PSc4JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzcnIGlkPSdsYWJlbF83MV8yXzcnPk1pZC1MZXZlbCBNYW5hZ2VtZW50PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzgnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMmEwMzJjODAnICBpZD0nY2hvaWNlXzcxXzJfOCcgdGFiaW5kZXg9JzknICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfOCcgaWQ9J2xhYmVsXzcxXzJfOCc+VHJhZGVzcGVyc29uPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzknPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyM2VmMThjZDknICBpZD0nY2hvaWNlXzcxXzJfOScgdGFiaW5kZXg9JzEwJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzknIGlkPSdsYWJlbF83MV8yXzknPm90aGVyPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzcxXzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzFfMycgPlBob25lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzcxXzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzcxJyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzExJyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzEiXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MSJdPXRydWU7ICAnIG9ua2V5cHJlc3M9J2lmKCBldmVudC5rZXlDb2RlID09IDEzICl7IGlmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MSJdKXtyZXR1cm4gZmFsc2U7fSB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzEiXT10cnVlOyAgalF1ZXJ5KCIjZ2Zvcm1fNzEiKS50cmlnZ2VyKCJzdWJtaXQiLFt0cnVlXSk7IH0nIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTcxJmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0XzcxJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nNzEnIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzcxJyB2YWx1ZT0nV3lKYlhTSXNJak5pTlRBek56WXdZemxoTVRBMllqUTBPV0k0WTJVM05tRTVORGhrTkRsaklsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83MScgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83MScgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MScgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MScgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzcxJyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV83MSc+VGhpcyBpZnJhbWUgY29udGFpbnMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbmRsZSBBSkFYIHBvd2VyZWQgR3Jhdml0eSBGb3Jtcy48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDcxLCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV83MScpLmxvYWQoIGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzcxJyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl83MScpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzEnKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcxJykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzEnKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcxJykub2Zmc2V0KCkudG9wKTsgfSwgNTAgKTtpZih3aW5kb3dbJ2dmb3JtSW5pdERhdGVwaWNrZXInXSkge2dmb3JtSW5pdERhdGVwaWNrZXIoKTt9aWYod2luZG93WydnZm9ybUluaXRQcmljZUZpZWxkcyddKSB7Z2Zvcm1Jbml0UHJpY2VGaWVsZHMoKTt9dmFyIGN1cnJlbnRfcGFnZSA9IGpRdWVyeSgnI2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MScpLnZhbCgpO2dmb3JtSW5pdFNwaW5uZXIoIDcxLCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFs3MSwgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzcxJ10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJy5HRl9BSkFYX1BPU1RCQUNLJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzEnKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfNzEnKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFs3MV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183MSddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzcxJykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzEsIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBpZih0eXBlb2YgZ2ZfZ2xvYmFsID09ICd1bmRlZmluZWQnKSB2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjJ9LCJiYXNlX3VybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3Jtc1wvaW1hZ2VzXC9zcGlubmVyLmdpZiJ9O2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9yZW5kZXInLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBjdXJyZW50UGFnZSl7aWYoZm9ybUlkID09IDcxKSB7fSB9ICk7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzcxLCAxXSkgfSApOyA8L3NjcmlwdD4=
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzInID48YSBpZD0nZ2ZfNzInIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzInIGlkPSdnZm9ybV83MicgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzcyJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzInIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzJfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IFdoYXQgd2FzIHlvdXIgVE9UQUwgQ09NQklORUQgaG91c2Vob2xkIGluY29tZSBsYXN0IHllYXI/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzJfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIzZWYxOGNkOScgIGlkPSdjaG9pY2VfNzJfMl8wJyB0YWJpbmRleD0nMScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzJfMl8wJyBpZD0nbGFiZWxfNzJfMl8wJz4kMjAwLDAwMCBhbmQgdXA8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfMSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIyYTAzMmM4MCcgIGlkPSdjaG9pY2VfNzJfMl8xJyB0YWJpbmRleD0nMicgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzJfMl8xJyBpZD0nbGFiZWxfNzJfMl8xJz4kMTc1LDAwMCB0byAkMTk5LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl8yJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjkzYWQzYWY5JyAgaWQ9J2Nob2ljZV83Ml8yXzInIHRhYmluZGV4PSczJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzInIGlkPSdsYWJlbF83Ml8yXzInPiQxNTAsMDAwIHRvICQxNzQsOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNThkNmI4MTknICBpZD0nY2hvaWNlXzcyXzJfMycgdGFiaW5kZXg9JzQnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfMycgaWQ9J2xhYmVsXzcyXzJfMyc+JDEyNSwwMDAgdG8gJDE0OSw5OTk8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfNCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIyZWVjYTgxZScgIGlkPSdjaG9pY2VfNzJfMl80JyB0YWJpbmRleD0nNScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzJfMl80JyBpZD0nbGFiZWxfNzJfMl80Jz4kMTAwLDAwMCB0byAkMTI0LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl81Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmZlYmJjMmNjJyAgaWQ9J2Nob2ljZV83Ml8yXzUnIHRhYmluZGV4PSc2JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzUnIGlkPSdsYWJlbF83Ml8yXzUnPiQ3NSwwMDAgdG8gJDk5LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl82Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmFkYmIyZjFmJyAgaWQ9J2Nob2ljZV83Ml8yXzYnIHRhYmluZGV4PSc3JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzYnIGlkPSdsYWJlbF83Ml8yXzYnPiQ1MCwwMDAgdG8gJDc0LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl83Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjAzYjYzZGU4JyAgaWQ9J2Nob2ljZV83Ml8yXzcnIHRhYmluZGV4PSc4JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzcnIGlkPSdsYWJlbF83Ml8yXzcnPiQyNSwwMDAgdG8gNDksOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzgnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYjVlMTA1OWYnICBpZD0nY2hvaWNlXzcyXzJfOCcgdGFiaW5kZXg9JzknICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfOCcgaWQ9J2xhYmVsXzcyXzJfOCc+JDEwLDAwMCB0byAkMjQsOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzknPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyOGEyNmZlOTcnICBpZD0nY2hvaWNlXzcyXzJfOScgdGFiaW5kZXg9JzEwJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzknIGlkPSdsYWJlbF83Ml8yXzknPiQwIHRvICQ5LDk5OTwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83Ml8zJyBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5XycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzcyXzMnID5OYW1lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzcyXzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzcyJyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzExJyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzIiXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MiJdPXRydWU7ICAnIG9ua2V5cHJlc3M9J2lmKCBldmVudC5rZXlDb2RlID09IDEzICl7IGlmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MiJdKXtyZXR1cm4gZmFsc2U7fSB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzIiXT10cnVlOyAgalF1ZXJ5KCIjZ2Zvcm1fNzIiKS50cmlnZ2VyKCJzdWJtaXQiLFt0cnVlXSk7IH0nIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTcyJmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0XzcyJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nNzInIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzcyJyB2YWx1ZT0nV3lKYlhTSXNJak5pTlRBek56WXdZemxoTVRBMllqUTBPV0k0WTJVM05tRTVORGhrTkRsaklsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83MicgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83MicgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MicgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MicgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzcyJyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV83Mic+VGhpcyBpZnJhbWUgY29udGFpbnMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbmRsZSBBSkFYIHBvd2VyZWQgR3Jhdml0eSBGb3Jtcy48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDcyLCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV83MicpLmxvYWQoIGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzcyJyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl83MicpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzInKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcyJykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzInKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcyJykub2Zmc2V0KCkudG9wKTsgfSwgNTAgKTtpZih3aW5kb3dbJ2dmb3JtSW5pdERhdGVwaWNrZXInXSkge2dmb3JtSW5pdERhdGVwaWNrZXIoKTt9aWYod2luZG93WydnZm9ybUluaXRQcmljZUZpZWxkcyddKSB7Z2Zvcm1Jbml0UHJpY2VGaWVsZHMoKTt9dmFyIGN1cnJlbnRfcGFnZSA9IGpRdWVyeSgnI2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MicpLnZhbCgpO2dmb3JtSW5pdFNwaW5uZXIoIDcyLCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFs3MiwgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzcyJ10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJy5HRl9BSkFYX1BPU1RCQUNLJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzInKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfNzInKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFs3Ml0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183MiddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzcyJykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzIsIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBpZih0eXBlb2YgZ2ZfZ2xvYmFsID09ICd1bmRlZmluZWQnKSB2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjJ9LCJiYXNlX3VybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3Jtc1wvaW1hZ2VzXC9zcGlubmVyLmdpZiJ9O2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9yZW5kZXInLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBjdXJyZW50UGFnZSl7aWYoZm9ybUlkID09IDcyKSB7fSB9ICk7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzcyLCAxXSkgfSApOyA8L3NjcmlwdD4=
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzMnID48YSBpZD0nZ2ZfNzMnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzMnIGlkPSdnZm9ybV83MycgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzczJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzMnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzNfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEhvdyBtYW55IGZhbWlseSBtZW1iZXJzIGFyZSBsaXZpbmcgaW4geW91ciBob3VzZWhvbGQgKGluY2x1ZGluZyB5b3U/KTwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3JhZGlvJz48dWwgY2xhc3M9J2dmaWVsZF9yYWRpbycgaWQ9J2lucHV0XzczXzInPjxsaSBjbGFzcz0nZ2Nob2ljZV83M18yXzAnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyM2VmMThjZDknICBpZD0nY2hvaWNlXzczXzJfMCcgdGFiaW5kZXg9JzEnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzczXzJfMCcgaWQ9J2xhYmVsXzczXzJfMCc+MTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzNfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjJhMDMyYzgwJyAgaWQ9J2Nob2ljZV83M18yXzEnIHRhYmluZGV4PScyJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83M18yXzEnIGlkPSdsYWJlbF83M18yXzEnPjI8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzczXzJfMic+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI5M2FkM2FmOScgIGlkPSdjaG9pY2VfNzNfMl8yJyB0YWJpbmRleD0nMycgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzNfMl8yJyBpZD0nbGFiZWxfNzNfMl8yJz4zPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83M18yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNThkNmI4MTknICBpZD0nY2hvaWNlXzczXzJfMycgdGFiaW5kZXg9JzQnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzczXzJfMycgaWQ9J2xhYmVsXzczXzJfMyc+NCBvciBtb3JlPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzczXzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzNfMycgPkNvbW1lbnRzPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzczXzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzczJyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzUnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MyJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzczIl09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzczIl0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MyJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83MyIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzMmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzMnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3MycgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzMnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzczJyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzczJyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzczJyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzczJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzMnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzczJz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzMsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzczJykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzMnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzczJykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MycpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzMnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MycpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzMnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzczJykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzMsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzczLCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzMnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MycpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83MycpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzczXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzczJ10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzMnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3MywgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzMpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzMsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzQnID48YSBpZD0nZ2ZfNzQnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzQnIGlkPSdnZm9ybV83NCcgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzc0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzQnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzRfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEFyZSB5b3UgdGhlIGhvdXNlaG9sZCBzaG9wcGVyIChwZXJzb24gcmVzcG9uc2libGUgZm9yIHB1cmNoYXNlcyBpbiB5b3VyIGhvdXNlaG9sZCk/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzRfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzc0XzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIzZWYxOGNkOScgIGlkPSdjaG9pY2VfNzRfMl8wJyB0YWJpbmRleD0nMScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzRfMl8wJyBpZD0nbGFiZWxfNzRfMl8wJz5ZZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc0XzJfMSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTJjOWIzYzM2ZScgIGlkPSdjaG9pY2VfNzRfMl8xJyB0YWJpbmRleD0nMicgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzRfMl8xJyBpZD0nbGFiZWxfNzRfMl8xJz5ObzwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83NF8zJyBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5XycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0Xzc0XzMnID5QaG9uZTwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzMnIGlkPSdpbnB1dF83NF8zJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyAvPjwvZGl2PjxkaXYgY2xhc3M9J2dmaWVsZF9kZXNjcmlwdGlvbic+VGhpcyBmaWVsZCBpcyBmb3IgdmFsaWRhdGlvbiBwdXJwb3NlcyBhbmQgc2hvdWxkIGJlIGxlZnQgdW5jaGFuZ2VkLjwvZGl2PjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2Zvb3RlciB0b3BfbGFiZWwnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyBpZD0nZ2Zvcm1fc3VibWl0X2J1dHRvbl83NCcgY2xhc3M9J2dmb3JtX2J1dHRvbiBidXR0b24nIHZhbHVlPSdTdWJtaXQnIHRhYmluZGV4PSczJyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzQiXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NCJdPXRydWU7ICAnIG9ua2V5cHJlc3M9J2lmKCBldmVudC5rZXlDb2RlID09IDEzICl7IGlmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NCJdKXtyZXR1cm4gZmFsc2U7fSB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzQiXT10cnVlOyAgalF1ZXJ5KCIjZ2Zvcm1fNzQiKS50cmlnZ2VyKCJzdWJtaXQiLFt0cnVlXSk7IH0nIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTc0JmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0Xzc0JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nNzQnIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzc0JyB2YWx1ZT0nV3lKYlhTSXNJak5pTlRBek56WXdZemxoTVRBMllqUTBPV0k0WTJVM05tRTVORGhrTkRsaklsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83NCcgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83NCcgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83NCcgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83NCcgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzc0JyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV83NCc+VGhpcyBpZnJhbWUgY29udGFpbnMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbmRsZSBBSkFYIHBvd2VyZWQgR3Jhdml0eSBGb3Jtcy48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDc0LCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV83NCcpLmxvYWQoIGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzc0Jyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl83NCcpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzQnKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc0JykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzQnKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc0Jykub2Zmc2V0KCkudG9wKTsgfSwgNTAgKTtpZih3aW5kb3dbJ2dmb3JtSW5pdERhdGVwaWNrZXInXSkge2dmb3JtSW5pdERhdGVwaWNrZXIoKTt9aWYod2luZG93WydnZm9ybUluaXRQcmljZUZpZWxkcyddKSB7Z2Zvcm1Jbml0UHJpY2VGaWVsZHMoKTt9dmFyIGN1cnJlbnRfcGFnZSA9IGpRdWVyeSgnI2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83NCcpLnZhbCgpO2dmb3JtSW5pdFNwaW5uZXIoIDc0LCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFs3NCwgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc0J10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJy5HRl9BSkFYX1BPU1RCQUNLJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzQnKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfNzQnKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFs3NF0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183NCddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzc0JykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzQsIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBpZih0eXBlb2YgZ2ZfZ2xvYmFsID09ICd1bmRlZmluZWQnKSB2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjJ9LCJiYXNlX3VybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3Jtc1wvaW1hZ2VzXC9zcGlubmVyLmdpZiJ9O2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9yZW5kZXInLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBjdXJyZW50UGFnZSl7aWYoZm9ybUlkID09IDc0KSB7fSB9ICk7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzc0LCAxXSkgfSApOyA8L3NjcmlwdD4=
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzUnID48YSBpZD0nZ2ZfNzUnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzUnIGlkPSdnZm9ybV83NScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzc1Jz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzUnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzVfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEluIHRoZSBsYXN0IDEyIG1vbnRocywgaG93IG1hbnkgdGltZXMgaGF2ZSB5b3UgdHJhdmVsbGVkIG92ZXJzZWFzPzwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3JhZGlvJz48dWwgY2xhc3M9J2dmaWVsZF9yYWRpbycgaWQ9J2lucHV0Xzc1XzInPjxsaSBjbGFzcz0nZ2Nob2ljZV83NV8yXzAnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYzliM2MzNmUnICBpZD0nY2hvaWNlXzc1XzJfMCcgdGFiaW5kZXg9JzEnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc1XzJfMCcgaWQ9J2xhYmVsXzc1XzJfMCc+bm9uZTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzVfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjgwNmQ3MGE5JyAgaWQ9J2Nob2ljZV83NV8yXzEnIHRhYmluZGV4PScyJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NV8yXzEnIGlkPSdsYWJlbF83NV8yXzEnPjEtMzwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzVfMl8yJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmNjNWNmMmZkJyAgaWQ9J2Nob2ljZV83NV8yXzInIHRhYmluZGV4PSczJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NV8yXzInIGlkPSdsYWJlbF83NV8yXzInPjQtNjwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzVfMl8zJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjI3NzcwNjIzJyAgaWQ9J2Nob2ljZV83NV8yXzMnIHRhYmluZGV4PSc0JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NV8yXzMnIGlkPSdsYWJlbF83NV8yXzMnPjctOTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzVfMl80Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmU2MTc0ODRlJyAgaWQ9J2Nob2ljZV83NV8yXzQnIHRhYmluZGV4PSc1JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NV8yXzQnIGlkPSdsYWJlbF83NV8yXzQnPjEwIGFuZCBtb3JlIHRpbWVzPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzc1XzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzVfMycgPkNvbW1lbnRzPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc1XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc1JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzYnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NSJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc1Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc1Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NSJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83NSIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzUmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzUnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3NScgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzUnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc1JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc1JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc1JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc1JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzUnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc1Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzUsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc1JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzUnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc1JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NScpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzUnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NScpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzUnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc1JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzUsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc1LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzUnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NScpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83NScpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc1XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc1J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzUnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NSwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzUpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzUsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzYnID48YSBpZD0nZ2ZfNzYnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzYnIGlkPSdnZm9ybV83NicgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzc2Jz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzYnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzZfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IERvIHlvdSBvd24gb25lIG9yIG1vcmUgcHJvcGVydGllcz88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83Nl8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzZfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmM5YjNjMzZlJyAgaWQ9J2Nob2ljZV83Nl8yXzAnIHRhYmluZGV4PScxJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Nl8yXzAnIGlkPSdsYWJlbF83Nl8yXzAnPlllczwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzZfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjgwNmQ3MGE5JyAgaWQ9J2Nob2ljZV83Nl8yXzEnIHRhYmluZGV4PScyJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Nl8yXzEnIGlkPSdsYWJlbF83Nl8yXzEnPk5vPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzc2XzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzZfMycgPlBob25lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc2XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc2JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzMnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NiJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc2Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc2Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NiJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83NiIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzYmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzYnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3NicgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzYnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc2JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc2JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc2JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc2JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzYnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc2Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzYsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc2JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzYnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc2JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NicpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzYnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NicpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzYnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc2JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzYsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc2LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzYnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NicpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83NicpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc2XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc2J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzYnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NiwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzYpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzYsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzcnID48YSBpZD0nZ2ZfNzcnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzcnIGlkPSdnZm9ybV83NycgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzc3Jz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzcnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzdfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IERvIHlvdSBvd24gb25lIG9yIG1vcmUgYm9hdHM/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzdfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzc3XzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTJjOWIzYzM2ZScgIGlkPSdjaG9pY2VfNzdfMl8wJyB0YWJpbmRleD0nMScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzdfMl8wJyBpZD0nbGFiZWxfNzdfMl8wJz5ZZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc3XzJfMSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI4MDZkNzBhOScgIGlkPSdjaG9pY2VfNzdfMl8xJyB0YWJpbmRleD0nMicgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzdfMl8xJyBpZD0nbGFiZWxfNzdfMl8xJz5ObzwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83N18zJyBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5XycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0Xzc3XzMnID5Db21tZW50czwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzMnIGlkPSdpbnB1dF83N18zJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyAvPjwvZGl2PjxkaXYgY2xhc3M9J2dmaWVsZF9kZXNjcmlwdGlvbic+VGhpcyBmaWVsZCBpcyBmb3IgdmFsaWRhdGlvbiBwdXJwb3NlcyBhbmQgc2hvdWxkIGJlIGxlZnQgdW5jaGFuZ2VkLjwvZGl2PjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2Zvb3RlciB0b3BfbGFiZWwnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyBpZD0nZ2Zvcm1fc3VibWl0X2J1dHRvbl83NycgY2xhc3M9J2dmb3JtX2J1dHRvbiBidXR0b24nIHZhbHVlPSdTdWJtaXQnIHRhYmluZGV4PSczJyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzciXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NyJdPXRydWU7ICAnIG9ua2V5cHJlc3M9J2lmKCBldmVudC5rZXlDb2RlID09IDEzICl7IGlmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NyJdKXtyZXR1cm4gZmFsc2U7fSB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzciXT10cnVlOyAgalF1ZXJ5KCIjZ2Zvcm1fNzciKS50cmlnZ2VyKCJzdWJtaXQiLFt0cnVlXSk7IH0nIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTc3JmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0Xzc3JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nNzcnIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzc3JyB2YWx1ZT0nV3lKYlhTSXNJak5pTlRBek56WXdZemxoTVRBMllqUTBPV0k0WTJVM05tRTVORGhrTkRsaklsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83NycgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83NycgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83NycgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83NycgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzc3JyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV83Nyc+VGhpcyBpZnJhbWUgY29udGFpbnMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbmRsZSBBSkFYIHBvd2VyZWQgR3Jhdml0eSBGb3Jtcy48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDc3LCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV83NycpLmxvYWQoIGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzc3Jyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl83NycpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzcnKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc3JykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzcnKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc3Jykub2Zmc2V0KCkudG9wKTsgfSwgNTAgKTtpZih3aW5kb3dbJ2dmb3JtSW5pdERhdGVwaWNrZXInXSkge2dmb3JtSW5pdERhdGVwaWNrZXIoKTt9aWYod2luZG93WydnZm9ybUluaXRQcmljZUZpZWxkcyddKSB7Z2Zvcm1Jbml0UHJpY2VGaWVsZHMoKTt9dmFyIGN1cnJlbnRfcGFnZSA9IGpRdWVyeSgnI2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83NycpLnZhbCgpO2dmb3JtSW5pdFNwaW5uZXIoIDc3LCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFs3NywgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc3J10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJy5HRl9BSkFYX1BPU1RCQUNLJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzcnKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfNzcnKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFs3N10pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183NyddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzc3JykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzcsIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBpZih0eXBlb2YgZ2ZfZ2xvYmFsID09ICd1bmRlZmluZWQnKSB2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjJ9LCJiYXNlX3VybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3Jtc1wvaW1hZ2VzXC9zcGlubmVyLmdpZiJ9O2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9yZW5kZXInLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBjdXJyZW50UGFnZSl7aWYoZm9ybUlkID09IDc3KSB7fSB9ICk7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzc3LCAxXSkgfSApOyA8L3NjcmlwdD4=
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzgnID48YSBpZD0nZ2ZfNzgnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzgnIGlkPSdnZm9ybV83OCcgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzc4Jz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzgnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzhfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEluIHRoZSBwYXN0IDMwIGRheXMsIGhvdyBvZnRlbiBkaWQgeW91IGRpbmUgb3V0IGF0IGEgcmVzdGF1cmFudD88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83OF8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzhfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmM5YjNjMzZlJyAgaWQ9J2Nob2ljZV83OF8yXzAnIHRhYmluZGV4PScxJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83OF8yXzAnIGlkPSdsYWJlbF83OF8yXzAnPk5ldmVyPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzEnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyODA2ZDcwYTknICBpZD0nY2hvaWNlXzc4XzJfMScgdGFiaW5kZXg9JzInICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfMScgaWQ9J2xhYmVsXzc4XzJfMSc+MS0zIHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNDNhMTcyNmEnICBpZD0nY2hvaWNlXzc4XzJfMicgdGFiaW5kZXg9JzMnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfMicgaWQ9J2xhYmVsXzc4XzJfMic+NC02IHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNGZkMjU0MjEnICBpZD0nY2hvaWNlXzc4XzJfMycgdGFiaW5kZXg9JzQnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfMycgaWQ9J2xhYmVsXzc4XzJfMyc+Ny05IHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzQnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMzJjMWQ1YmUnICBpZD0nY2hvaWNlXzc4XzJfNCcgdGFiaW5kZXg9JzUnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfNCcgaWQ9J2xhYmVsXzc4XzJfNCc+MTAgb3IgbW9yZSB0aW1lczwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83OF8zJyBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5XycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0Xzc4XzMnID5OYW1lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc4XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc4JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzYnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OCJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc4Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc4Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OCJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83OCIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzgmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzgnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3OCcgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzgnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc4JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc4JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzgnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc4Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzgsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc4JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzgnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc4JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzgnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzgnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzgsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc4LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzgnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83OCcpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc4XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc4J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzgnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3OCwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzgpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzgsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzknID48YSBpZD0nZ2ZfNzknIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzknIGlkPSdnZm9ybV83OScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy9wcm9wZXJ0eS9vZmYtZ3JpZC1zb2x1dGlvbnMvI2dmXzc5Jz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfNzknIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfNzlfMicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEluIHRoZSBwYXN0IDMwIGRheXMsIGhvdyBvZnRlbiBkaWQgeW91IGVudGVydGFpbiBndWVzdHMgYXQgaG9tZT88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83OV8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzlfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmM5YjNjMzZlJyAgaWQ9J2Nob2ljZV83OV8yXzAnIHRhYmluZGV4PScxJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83OV8yXzAnIGlkPSdsYWJlbF83OV8yXzAnPk5ldmVyPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzEnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyODA2ZDcwYTknICBpZD0nY2hvaWNlXzc5XzJfMScgdGFiaW5kZXg9JzInICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfMScgaWQ9J2xhYmVsXzc5XzJfMSc+MS0zIHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNDNhMTcyNmEnICBpZD0nY2hvaWNlXzc5XzJfMicgdGFiaW5kZXg9JzMnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfMicgaWQ9J2xhYmVsXzc5XzJfMic+NC02IHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNGZkMjU0MjEnICBpZD0nY2hvaWNlXzc5XzJfMycgdGFiaW5kZXg9JzQnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfMycgaWQ9J2xhYmVsXzc5XzJfMyc+Ny05IHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzQnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMzJjMWQ1YmUnICBpZD0nY2hvaWNlXzc5XzJfNCcgdGFiaW5kZXg9JzUnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfNCcgaWQ9J2xhYmVsXzc5XzJfNCc+MTAgb3IgbW9yZSB0aW1lczwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83OV8zJyBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5XycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0Xzc5XzMnID5Db21tZW50czwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzMnIGlkPSdpbnB1dF83OV8zJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyAvPjwvZGl2PjxkaXYgY2xhc3M9J2dmaWVsZF9kZXNjcmlwdGlvbic+VGhpcyBmaWVsZCBpcyBmb3IgdmFsaWRhdGlvbiBwdXJwb3NlcyBhbmQgc2hvdWxkIGJlIGxlZnQgdW5jaGFuZ2VkLjwvZGl2PjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2Zvb3RlciB0b3BfbGFiZWwnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyBpZD0nZ2Zvcm1fc3VibWl0X2J1dHRvbl83OScgY2xhc3M9J2dmb3JtX2J1dHRvbiBidXR0b24nIHZhbHVlPSdTdWJtaXQnIHRhYmluZGV4PSc2JyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzkiXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OSJdPXRydWU7ICAnIG9ua2V5cHJlc3M9J2lmKCBldmVudC5rZXlDb2RlID09IDEzICl7IGlmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OSJdKXtyZXR1cm4gZmFsc2U7fSB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzkiXT10cnVlOyAgalF1ZXJ5KCIjZ2Zvcm1fNzkiKS50cmlnZ2VyKCJzdWJtaXQiLFt0cnVlXSk7IH0nIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTc5JmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0Xzc5JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nNzknIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzc5JyB2YWx1ZT0nV3lKYlhTSXNJak5pTlRBek56WXdZemxoTVRBMllqUTBPV0k0WTJVM05tRTVORGhrTkRsaklsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83OScgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83OScgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83OScgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83OScgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzc5JyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV83OSc+VGhpcyBpZnJhbWUgY29udGFpbnMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbmRsZSBBSkFYIHBvd2VyZWQgR3Jhdml0eSBGb3Jtcy48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDc5LCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV83OScpLmxvYWQoIGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzc5Jyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl83OScpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzknKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc5JykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzknKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc5Jykub2Zmc2V0KCkudG9wKTsgfSwgNTAgKTtpZih3aW5kb3dbJ2dmb3JtSW5pdERhdGVwaWNrZXInXSkge2dmb3JtSW5pdERhdGVwaWNrZXIoKTt9aWYod2luZG93WydnZm9ybUluaXRQcmljZUZpZWxkcyddKSB7Z2Zvcm1Jbml0UHJpY2VGaWVsZHMoKTt9dmFyIGN1cnJlbnRfcGFnZSA9IGpRdWVyeSgnI2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83OScpLnZhbCgpO2dmb3JtSW5pdFNwaW5uZXIoIDc5LCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFs3OSwgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc5J10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJy5HRl9BSkFYX1BPU1RCQUNLJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzknKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfNzknKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFs3OV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183OSddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzc5JykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzksIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBpZih0eXBlb2YgZ2ZfZ2xvYmFsID09ICd1bmRlZmluZWQnKSB2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjJ9LCJiYXNlX3VybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3Jtc1wvaW1hZ2VzXC9zcGlubmVyLmdpZiJ9O2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9yZW5kZXInLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBjdXJyZW50UGFnZSl7aWYoZm9ybUlkID09IDc5KSB7fSB9ICk7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzc5LCAxXSkgfSApOyA8L3NjcmlwdD4=