Our Logo
WebAsOne
Home
Design
Design Block
Design Patterns
Themes
Design-Marketing
Hero
About
BIO
Contact
CTA
FAQ
Footer
Portfolio
Price
Service
Team
Testimonials
JS Frameworks
ReactJS
SvelteJS
VueJS
Web Apps
OpenSource
Mini-Apps
Google
Map
Contact Form
Email
One
Mini-Apps
-> Google ->
Map
Contact Form
Questions or comments
Submit
Page,idxx-xx,oneColumn,
oneColumn/id13-33,Click to clipboard
ezE6IHsnZW4nOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnVGlueU1DRScsCiAgICAgICAgICAgICdhSW1hZ2UnOiAnJywKICAgICAgICAgICAgJ2FMYWJlbCc6ICdodG1sIGZvcm0nLAogICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAnY29kZSc6ICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJ3NldF9lcnJvcl9oYW5kbGVyKGZ1bmN0aW9uKCRfZXJybm8sICRlcnJzdHIpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIC8vIENvbnZlcnQgbm90aWNlLCB3YXJuaW5nLCBldGMuIHRvIGVycm9yLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgdGhyb3cgbmV3IEVycm9yKCRlcnJzdHIpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJ30pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyRmaWxlbmFtZSA9ICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAiJy9waHAvZ29vZ2xlL3JlY2FwdGNoYS1tYXN0ZXIvc3JjL2F1dG9sb2FkLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnaWYgKCFmaWxlX2V4aXN0cygkZmlsZW5hbWUpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICBlY2hvICJUaGUgZmlsZSAkZmlsZW5hbWUgZG9lcyBub3QgZXhpc3QuIDxiciAvPiBVc2UgJwogICAgICAgICAgICAgICAgICAgICdJbnNlcnRNZW51IHRvIGFkZCBwaHAgbGlicmFyaWVzOiAsdG9wQyxwaHBfZ3AxIjtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICd0cnkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAnICByZXF1aXJlICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAiJy9waHAvZ29vZ2xlL3JlY2FwdGNoYS1tYXN0ZXIvc3JjL2F1dG9sb2FkLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAiICByZXF1aXJlICdfQXJlYV8vcGhwL215Zm9ybS5waHAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgLy8gUmVnaXN0ZXIgQVBJIGtleXMgYXQgJwogICAgICAgICAgICAgICAgICAgICdodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hZG1pblxyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgJHNpdGVLZXkgPSAnCiAgICAgICAgICAgICAgICAgICAgIic2TGZMR2hrcUFBQUFBSThGNmZhQ1Q0R1BYc1RxRnJVamlmbDMyZmNuJztcclxuIgogICAgICAgICAgICAgICAgICAgICcgICRzZWNyZXQgPSAnCiAgICAgICAgICAgICAgICAgICAgIic2TGZMR2hrcUFBQUFBQWRkbzBkOGhDOXNPd0NORkFkRy1KdWstZGhQJztcclxuIgogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICIgIGlmIChpc3NldCgkX1BPU1RbJ2ctcmVjYXB0Y2hhLXJlc3BvbnNlJ10pKSB7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIFRoZSBQT1NUIGRhdGEgaGVyZSBpcyB1bmZpbHRlcmVkIGJlY2F1c2UgdGhpcyBpcyAnCiAgICAgICAgICAgICAgICAgICAgJ2FuIGV4YW1wbGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIEluIHByb2R1Y3Rpb24sICphbHdheXMqIHNhbml0aXNlIGFuZCB2YWxpZGF0ZSB5b3VyICcKICAgICAgICAgICAgICAgICAgICAiaW5wdXQnXHJcbiIKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIHZhcl9leHBvcnQoJF9QT1NUKTtcclxuJwogICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzw/cGhwXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIElmIHRoZSBmb3JtIHN1Ym1pc3Npb24gaW5jbHVkZXMgdGhlICcKICAgICAgICAgICAgICAgICAgICAnImctY2FwdGNoYS1yZXNwb25zZSIgZmllbGRcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBzZXJ2aWNlIHVzaW5nIHlvdXIgJwogICAgICAgICAgICAgICAgICAgICdzZWNyZXRcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgJHJlY2FwdGNoYSA9IG5ldyBcXFJlQ2FwdGNoYVxcUmVDYXB0Y2hhKCRzZWNyZXQpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBJZiBmaWxlX2dldF9jb250ZW50cygpIGlzIGxvY2tlZCBkb3duIG9uIHlvdXIgUEhQICcKICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGF0aW9uIHRvIGRpc2FsbG93XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIGl0cyB1c2Ugd2l0aCBVUkxzLCB0aGVuIHlvdSBjYW4gdXNlIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgJ2FsdGVybmF0aXZlIHJlcXVlc3QgbWV0aG9kIGluc3RlYWQuXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIFRoaXMgbWFrZXMgdXNlIG9mIGZzb2Nrb3BlbigpIGluc3RlYWQuXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vICAkcmVjYXB0Y2hhID0gbmV3IFxcUmVDYXB0Y2hhXFxSZUNhcHRjaGEoJHNlY3JldCwgJwogICAgICAgICAgICAgICAgICAgICduZXcgXFxSZUNhcHRjaGFcXFJlcXVlc3RNZXRob2RcXFNvY2tldFBvc3QoKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIE1ha2UgdGhlIGNhbGwgdG8gdmVyaWZ5IHRoZSByZXNwb25zZSBhbmQgYWxzbyBwYXNzICcKICAgICAgICAgICAgICAgICAgICAidGhlIHVzZXIncyBJUCBhZGRyZXNzXHJcbiIKICAgICAgICAgICAgICAgICAgICAnICAgICRyZXNwID0gJwogICAgICAgICAgICAgICAgICAgICIkcmVjYXB0Y2hhLT5zZXRFeHBlY3RlZEhvc3RuYW1lKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKVxyXG4iCiAgICAgICAgICAgICAgICAgICAgIiAgICAgIC0+dmVyaWZ5KCRfUE9TVFsnZy1yZWNhcHRjaGEtcmVzcG9uc2UnXSwgIgogICAgICAgICAgICAgICAgICAgICIkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkcmVzcC0+aXNTdWNjZXNzKCkpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYSBzdWNjZXNzLCBwcm9jZXNzIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgJ2Zvcm1cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgICBwcm9jX2Zvcm0oJHJlbF9yb290KTtcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgICAvL3Zhcl9leHBvcnQoJHJlc3ApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtc3VjY2VzcyIgcm9sZT0iYWxlcnQiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPGgxPiBUaGFua3MgZm9yIHlvdXIgc3VibWl0ISBXZSB3aWxsIGNvbnRhY3QgeW91ICcKICAgICAgICAgICAgICAgICAgICAnc2hvcnRseSEgPC9oMT5cclxuJwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgIiAgICAgIC8vIElmIGl0J3Mgbm90IHN1Y2Nlc3NmdWwsIHRoZW4gb25lIG9yIG1vcmUgZXJyb3IgIgogICAgICAgICAgICAgICAgICAgICdjb2RlcyB3aWxsIGJlIHJldHVybmVkLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPGgyPlNvbWV0aGluZyB3ZW50IHdyb25nPC9oMj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8a2JkPjxwcmU+PD9waHAgdmFyX2V4cG9ydCgkcmVzcCk7Pz48L3ByZT48L2tiZD5cclxuJwogICAgICAgICAgICAgICAgICAgICc8cD5DaGVjayB0aGUgZXJyb3IgY29kZSByZWZlcmVuY2UgYXQgPGtiZD48YSAnCiAgICAgICAgICAgICAgICAgICAgJ2hyZWY9Imh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3JlY2FwdGNoYS9kb2NzL3ZlcmlmeSNlcnJvci1jb2RlLXJlZmVyZW5jZSI+aHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvdmVyaWZ5I2Vycm9yLWNvZGUtcmVmZXJlbmNlPC9hPjwva2JkPi5cclxuJwogICAgICAgICAgICAgICAgICAgICc8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEVycm9yIGNvZGUgJwogICAgICAgICAgICAgICAgICAgICc8a2JkPm1pc3NpbmctaW5wdXQtcmVzcG9uc2U8L2tiZD4gbWF5IG1lYW4gdGhlIHVzZXIganVzdCAnCiAgICAgICAgICAgICAgICAgICAgImRpZG4ndCBjb21wbGV0ZSB0aGUgcmVDQVBUQ0hBLjwvcD5cclxuIgogICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICB9IFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgaWQ9Il9NSURYX2xvYWRlciIgY2xhc3M9Im14LWF1dG8gcC00Ij48L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8Zm9ybSBhY3Rpb249IiMiIG1ldGhvZD0icG9zdCIgaWQ9ImRlbW8tZm9ybSI+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJlbWFpbCIgJwogICAgICAgICAgICAgICAgICAgICdwbGFjZWhvbGRlcj0iWW91ciBlbWFpbCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAnbmFtZT0icmVxdXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJZb3VyIG5hbWUiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAnbmFtZT0ic3ViamVjdCIgcGxhY2Vob2xkZXI9IlN1YmplY3QiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICA8bGFiZWwgZm9yPSJleGFtcGxlRm9ybUNvbnRyb2xUZXh0YXJlYTEiID5RdWVzdGlvbnMgJwogICAgICAgICAgICAgICAgICAgICdvciBjb21tZW50czwvbGFiZWw+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIDx0ZXh0YXJlYSBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJtZXNzYWdlIiAnCiAgICAgICAgICAgICAgICAgICAgJ3Jvd3M9IjMiPjwvdGV4dGFyZWE+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICcgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iZy1yZWNhcHRjaGEgYnRuICcKICAgICAgICAgICAgICAgICAgICAnYnRuLXByaW1hcnkgYnRuLWJsb2NrIiBkYXRhLXNpdGVrZXk9Ijw/cGhwIGVjaG8gJHNpdGVLZXk7ICcKICAgICAgICAgICAgICAgICAgICAnPz4iIGRhdGEtY2FsbGJhY2s9XCdvblN1Ym1pdFwnPlN1Ym1pdDwvYnV0dG9uPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzwvZm9ybT5cclxuJwogICAgICAgICAgICAgICAgICAgICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgJwogICAgICAgICAgICAgICAgICAgICdzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9obD08P3BocCAnCiAgICAgICAgICAgICAgICAgICAgJ2VjaG8gJENNU19sYzsgPz4iIGFzeW5jIGRlZmVyPjwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICcgIGZ1bmN0aW9uIG9uU3VibWl0KHRva2VuKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWZvcm0iKS5zdHlsZS5kaXNwbGF5ID0gJwogICAgICAgICAgICAgICAgICAgICcibm9uZSI7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgICcKICAgICAgICAgICAgICAgICAgICAnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9NSURYX2xvYWRlciIpLmNsYXNzTGlzdC5hZGQoXCdsb2FkZXJcJyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWZvcm0iKS5zdWJtaXQoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgfSBcclxuJwogICAgICAgICAgICAgICAgICAgICd9IGNhdGNoIChUaHJvd2FibGUgJGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIG15bG9nKCRlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIGVjaG8gJGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmxvYWRlciB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBib3JkZXI6IDE2cHggc29saWQgI2YzZjNmMzsgLyogTGlnaHQgZ3JleSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyLXRvcDogMTZweCBzb2xpZCBfQ29sb3JEXzsgLyogQmx1ZSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgd2lkdGg6IDEyMHB4O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiAxMjBweDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ0BrZXlmcmFtZXMgc3BpbiB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICdjb2xCR0ltYWdlJzogJycsCiAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcnLAogICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlJzogJzw/cGhwIC8qIF9BcmVhXy9waHAvbXlmb3JtLnBocCAqLyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnLy8gZm9yIGRlYnVnZ2luZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ2Z1bmN0aW9uIG15bG9nKCRtc2cpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICRoID0gZm9wZW4oJy9ob21lL2Ntc25vdy9hY2Nlc3NfbG9nJywgJ2EnKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgIGZ3cml0ZSgkaCwgdGltZSgpKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIGZ3cml0ZSgkaCwgJG1zZyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBmY2xvc2UoJGgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdmdW5jdGlvbiBwcm9jX2Zvcm0oJHJlbF9yb290KSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB0cnkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL3JlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL3BocC9Bc09uZS9taXNjLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIHJlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICInL3BocC9QSFBNYWlsZXIvUEhQTWFpbGVyQXV0b2xvYWQucGhwJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gdG8gZGlzYWJsZSBieSBhc3NpZ24gYW4gZW1wdHkgc3RyaW5nXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRidWd6aWxsYVNlcnZlciA9ICdidWcud2ViY21zLWEuY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsU01UUCA9ICdzbXRwLmJpem1haWwueWFob28uY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsVXNlciA9ICduby1yZXBseUBhc29uZWxpc3QuY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsUGFzc3dkID0gJ3V5cXZjdmxja25lcGRzaXInO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbm90aWZ5RW1haWwgPSAnaW5mb0B3ZWJhc29uZS5jb20nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL215bG9nKCJjYWxsIHByb2NfZm9ybSIpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvLyRhc29uZUZpbGUgPSBuZXcgQXNPbmVGaWxlKCdfSURYXycsICIKICAgICAgICAgICAgICAgICAgICAgICAnQXNvbmVQYXRoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwgPSBuZXcgUEhQTWFpbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1RlbGwgUEhQTWFpbGVyIHRvIHVzZSBTTVRQXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vVGVsbCBQSFBNYWlsZXIgdG8gdXNlIFNNVFBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPmlzU01UUCgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL0VuYWJsZSBTTVRQIGRlYnVnZ2luZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyAwID0gb2ZmIChmb3IgcHJvZHVjdGlvbiB1c2UpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIDEgPSBjbGllbnQgbWVzc2FnZXNcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gMiA9IGNsaWVudCBhbmQgc2VydmVyIG1lc3NhZ2VzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5TTVRQRGVidWcgPSAwO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL0FzayBmb3IgSFRNTC1mcmllbmRseSBkZWJ1ZyBvdXRwdXRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPkRlYnVnb3V0cHV0ID0gJ2h0bWwnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCB0aGUgaG9zdG5hbWUgb2YgdGhlIG1haWwgc2VydmVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5Ib3N0ID0gJGVtYWlsU01UUDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgdGhlIFNNVFAgcG9ydCBudW1iZXIgLSBsaWtlbHkgdG8gYmUgMjUsIDQ2NSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ29yIDU4N1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+UG9ydCA9IDQ2NTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPlNNVFBTZWN1cmUgPSAnc3NsJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9XaGV0aGVyIHRvIHVzZSBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5TTVRQQXV0aCA9IHRydWU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vVXNlcm5hbWUgdG8gdXNlIGZvciBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5Vc2VybmFtZSA9ICRlbWFpbFVzZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vUGFzc3dvcmQgdG8gdXNlIGZvciBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5QYXNzd29yZCA9ICRlbWFpbFBhc3N3ZDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgd2hvIHRoZSBtZXNzYWdlIGlzIHRvIGJlIHNlbnQgZnJvbVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+c2V0RnJvbSgkZW1haWxVc2VyLCAkX1NFUlZFUlsnSFRUUF9IT1NUJ10uJyAiCiAgICAgICAgICAgICAgICAgICAgICAgIlN1Ym1pdCcpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCBhbiBhbHRlcm5hdGl2ZSByZXBseS10byBhZGRyZXNzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5hZGRSZXBseVRvKCdEbyBub3QgcmVwbHknLCAnRG8gbm90ICIKICAgICAgICAgICAgICAgICAgICAgICAicmVwbHknKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgd2hvIHRoZSBtZXNzYWdlIGlzIHRvIGJlIHNlbnQgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPmFkZEFkZHJlc3MoJG5vdGlmeUVtYWlsLCAnRG8gbm90ICIKICAgICAgICAgICAgICAgICAgICAgICAiUmVwbHknKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgdGhlIHN1YmplY3QgbGluZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL3NlbmQgZW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPlN1YmplY3QgPSAnKERvIG5vdCByZXBseSkgZnJvbSAiCiAgICAgICAgICAgICAgICAgICAgICAgIicuZ2V0aG9zdG5hbWUoKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8kbXNnID0gJzxwPldlYnNpdGU6ICVzPC9wPic7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtc2cgPSAnJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsncmVxdXNlcm5hbWUnXSkpICRtc2cgLj0gIgogICAgICAgICAgICAgICAgICAgICAgICdcJ0Zyb206ICBcJy4kX1JFUVVFU1RbXCdyZXF1c2VybmFtZVwnXS4iXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnZW1haWwnXSkpICRtc2cgLj0gJ0VtYWlsOiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ2VtYWlsXCddLiJcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWydzdWJqZWN0J10pKSAkbXNnIC49ICdTdWJqZWN0OiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ3N1YmplY3RcJ10uIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgIC8vaWYgKGlzc2V0KCRfUkVRVUVTVFsnY2h1cmNod2Vic2l0ZSddKSkgJG1zZyAuPSAiCiAgICAgICAgICAgICAgICAgICAgICAgIidjaHVyY2h3ZWJzaXRlOiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ2NodXJjaHdlYnNpdGVcJ10uIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtc2cgLj0gIk1lc3NhZ2U6XFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnbWVzc2FnZSddKSkgJG1zZyAuPSAiCiAgICAgICAgICAgICAgICAgICAgICAgJyRfUkVRVUVTVFtcJ21lc3NhZ2VcJ10uIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5tc2dIVE1MKCc8cHJlPicuJG1zZy4nPC9wcmU+Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkbWFpbC0+c2VuZCgpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgZWNobyAiPGgzPiBTeXN0ZW0gRXJyb3IuIDwvaDM+IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkYm1zZyA9IFwnRnJvbTogYnVnQHdlYmFzb25lLmNvbVwnLiAiXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgICAnU3ViamVjdDogVXNlciBTdWJtaXQgZnJvbSAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLmdldGhvc3RuYW1lKCkuIlxcblxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAcHJvZHVjdCA9IFdlYkFzT25lXCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAY29tcG9uZW50ID0gVXNlclJlcG9ydFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQG9wX3N5cyBMaW51eFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQHJlcF9wbGF0Zm9ybSBBbGxcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0B2ZXJzaW9uID0gMS4wLjBcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0BTZXZlcml0eSA9IG5vcm1hbFwnLiJcXG5cXG5cXG4iLiAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkbXNnO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcHV0X2NvbnRlbnRzKCIvaG9tZS9jbXNub3cvZm9ybV9tc2cudHh0IiwkYm1zZyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkYnVnemlsbGFTZXJ2ZXIpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkZGVzY3JpcHRvcnNwZWMgPSBhcnJheShcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDAgPT4gYXJyYXkoInBpcGUiLCAiciIpLCAgLy8gc3RkaW4gaXMgYSBwaXBlICcKICAgICAgICAgICAgICAgICAgICAgICAndGhhdCB0aGUgY2hpbGQgd2lsbCByZWFkIGZyb21cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDEgPT4gYXJyYXkoInBpcGUiLCAidyIpLCAgLy8gc3Rkb3V0IGlzIGEgcGlwZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3RoYXQgdGhlIGNoaWxkIHdpbGwgd3JpdGUgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDIgPT4gYXJyYXkoImZpbGUiLCAnCiAgICAgICAgICAgICAgICAgICAgICAgJyIvaG9tZS9jbXNub3cvL2Vycm9yLW91dHB1dC50eHQiLCAidysiKSAvLyBzdGRlcnIgaXMgYSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUgdG8gd3JpdGUgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICRjbWQgPSAnc3NoICcuJGJ1Z3ppbGxhU2VydmVyLicgIgogICAgICAgICAgICAgICAgICAgICAgICciL2hvbWUvY21zbm93L3d3dy9ob3N0cy9cJy4kYnVnemlsbGFTZXJ2ZXIuXCcvZG9jcy9lbWFpbF9pbi5wbCJcJztcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkcHJvY2VzcyA9IHByb2Nfb3BlbigkY21kLCAkZGVzY3JpcHRvcnNwZWMsICcKICAgICAgICAgICAgICAgICAgICAgICAnJHBpcGVzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBpZiAoaXNfcmVzb3VyY2UoJHByb2Nlc3MpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvLyAkcGlwZXMgbm93IGxvb2tzIGxpa2UgdGhpczpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIDAgPT4gd3JpdGVhYmxlIGhhbmRsZSBjb25uZWN0ZWQgdG8gY2hpbGQgJwogICAgICAgICAgICAgICAgICAgICAgICdzdGRpblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gMSA9PiByZWFkYWJsZSBoYW5kbGUgY29ubmVjdGVkIHRvIGNoaWxkICcKICAgICAgICAgICAgICAgICAgICAgICAnc3Rkb3V0XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBmd3JpdGUoJHBpcGVzWzBdLCAkYm1zZyk7IC8vICcKICAgICAgICAgICAgICAgICAgICAgICAiZmlsZV9nZXRfY29udGVudHMoJ3BocDovL3N0ZGluJylcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGZjbG9zZSgkcGlwZXNbMF0pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJG91dHB1dCA9IHN0cmVhbV9nZXRfY29udGVudHMoJHBpcGVzWzFdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICNlY2hvICRvdXRwdXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBmY2xvc2UoJHBpcGVzWzFdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0aGF0IHlvdSBjbG9zZSBhbnkgcGlwZXMgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgY2FsbGluZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gcHJvY19jbG9zZSBpbiBvcmRlciB0byBhdm9pZCBhIGRlYWRsb2NrXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcmV0dXJuX3ZhbHVlID0gcHJvY19jbG9zZSgkcHJvY2Vzcyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAjZWNobyAkcmV0dXJuX3ZhbHVlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgfSAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH0gY2F0Y2ggKFRocm93YWJsZSAkZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBteWxvZygkZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGVjaG8gJGU7IC8vIEVycm9yOiBVbmRlZmluZWQgdmFyaWFibGU6IHR3Li4uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAncGhwRmlsZUInOiAnJywKICAgICAgICAgICAgJ3Rjb2RlJzogJycsCiAgICAgICAgICAgICd2Y29kZSc6ICcnfSwKICAgICAnZW4tVVMnOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnVGlueU1DRScsCiAgICAgICAgICAgICAgICdhSW1hZ2UnOiAnJywKICAgICAgICAgICAgICAgJ2FMYWJlbCc6ICdodG1sIGZvcm0nLAogICAgICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAgICAnY29kZSc6ICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ3NldF9lcnJvcl9oYW5kbGVyKGZ1bmN0aW9uKCRfZXJybm8sICRlcnJzdHIpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIC8vIENvbnZlcnQgbm90aWNlLCB3YXJuaW5nLCBldGMuIHRvIGVycm9yLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgdGhyb3cgbmV3IEVycm9yKCRlcnJzdHIpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ30pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyRmaWxlbmFtZSA9ICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAgICAiJy9waHAvZ29vZ2xlL3JlY2FwdGNoYS1tYXN0ZXIvc3JjL2F1dG9sb2FkLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnaWYgKCFmaWxlX2V4aXN0cygkZmlsZW5hbWUpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBlY2hvICJUaGUgZmlsZSAkZmlsZW5hbWUgZG9lcyBub3QgZXhpc3QuIDxiciAvPiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ1VzZSBJbnNlcnRNZW51IHRvIGFkZCBwaHAgbGlicmFyaWVzOiAnCiAgICAgICAgICAgICAgICAgICAgICAgJyx0b3BDLHBocF9ncDEiO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ3RyeSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIHJlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICInL3BocC9nb29nbGUvcmVjYXB0Y2hhLW1hc3Rlci9zcmMvYXV0b2xvYWQucGhwJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgIHJlcXVpcmUgJ19BcmVhXy9waHAvbXlmb3JtLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAvLyBSZWdpc3RlciBBUEkga2V5cyBhdCAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FkbWluXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAkc2l0ZUtleSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAiJzZMZkxHaGtxQUFBQUFJOEY2ZmFDVDRHUFhzVHFGclVqaWZsMzJmY24nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgJHNlY3JldCA9ICcKICAgICAgICAgICAgICAgICAgICAgICAiJzZMZkxHaGtxQUFBQUFBZGRvMGQ4aEM5c093Q05GQWRHLUp1ay1kaFAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgaWYgKGlzc2V0KCRfUE9TVFsnZy1yZWNhcHRjaGEtcmVzcG9uc2UnXSkpIHtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gVGhlIFBPU1QgZGF0YSBoZXJlIGlzIHVuZmlsdGVyZWQgYmVjYXVzZSB0aGlzICcKICAgICAgICAgICAgICAgICAgICAgICAnaXMgYW4gZXhhbXBsZS5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gSW4gcHJvZHVjdGlvbiwgKmFsd2F5cyogc2FuaXRpc2UgYW5kIHZhbGlkYXRlICcKICAgICAgICAgICAgICAgICAgICAgICAieW91ciBpbnB1dCdcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gdmFyX2V4cG9ydCgkX1BPU1QpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPD9waHBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gSWYgdGhlIGZvcm0gc3VibWlzc2lvbiBpbmNsdWRlcyB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICciZy1jYXB0Y2hhLXJlc3BvbnNlIiBmaWVsZFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIHNlcnZpY2UgdXNpbmcgeW91ciAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3NlY3JldFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkcmVjYXB0Y2hhID0gbmV3ICcKICAgICAgICAgICAgICAgICAgICAgICAnXFxSZUNhcHRjaGFcXFJlQ2FwdGNoYSgkc2VjcmV0KTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gSWYgZmlsZV9nZXRfY29udGVudHMoKSBpcyBsb2NrZWQgZG93biBvbiB5b3VyICcKICAgICAgICAgICAgICAgICAgICAgICAnUEhQIGluc3RhbGxhdGlvbiB0byBkaXNhbGxvd1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBpdHMgdXNlIHdpdGggVVJMcywgdGhlbiB5b3UgY2FuIHVzZSB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdhbHRlcm5hdGl2ZSByZXF1ZXN0IG1ldGhvZCBpbnN0ZWFkLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBUaGlzIG1ha2VzIHVzZSBvZiBmc29ja29wZW4oKSBpbnN0ZWFkLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyAgJHJlY2FwdGNoYSA9IG5ldyAnCiAgICAgICAgICAgICAgICAgICAgICAgJ1xcUmVDYXB0Y2hhXFxSZUNhcHRjaGEoJHNlY3JldCwgbmV3ICcKICAgICAgICAgICAgICAgICAgICAgICAnXFxSZUNhcHRjaGFcXFJlcXVlc3RNZXRob2RcXFNvY2tldFBvc3QoKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIE1ha2UgdGhlIGNhbGwgdG8gdmVyaWZ5IHRoZSByZXNwb25zZSBhbmQgYWxzbyAnCiAgICAgICAgICAgICAgICAgICAgICAgInBhc3MgdGhlIHVzZXIncyBJUCBhZGRyZXNzXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRyZXNwID0gJwogICAgICAgICAgICAgICAgICAgICAgICIkcmVjYXB0Y2hhLT5zZXRFeHBlY3RlZEhvc3RuYW1lKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKVxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgIC0+dmVyaWZ5KCRfUE9TVFsnZy1yZWNhcHRjaGEtcmVzcG9uc2UnXSwgIgogICAgICAgICAgICAgICAgICAgICAgICIkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkcmVzcC0+aXNTdWNjZXNzKCkpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYSBzdWNjZXNzLCBwcm9jZXNzIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBwcm9jX2Zvcm0oJHJlbF9yb290KTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAvL3Zhcl9leHBvcnQoJHJlc3ApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtc3VjY2VzcyIgcm9sZT0iYWxlcnQiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPGgxPiBUaGFua3MgZm9yIHlvdXIgc3VibWl0ISBXZSB3aWxsIGNvbnRhY3QgeW91ICcKICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnRseSEgPC9oMT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgIC8vIElmIGl0J3Mgbm90IHN1Y2Nlc3NmdWwsIHRoZW4gb25lIG9yIG1vcmUgIgogICAgICAgICAgICAgICAgICAgICAgICdlcnJvciBjb2RlcyB3aWxsIGJlIHJldHVybmVkLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGgyPlNvbWV0aGluZyB3ZW50IHdyb25nPC9oMj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8a2JkPjxwcmU+PD9waHAgdmFyX2V4cG9ydCgkcmVzcCk7Pz48L3ByZT48L2tiZD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8cD5DaGVjayB0aGUgZXJyb3IgY29kZSByZWZlcmVuY2UgYXQgPGtiZD48YSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2hyZWY9Imh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3JlY2FwdGNoYS9kb2NzL3ZlcmlmeSNlcnJvci1jb2RlLXJlZmVyZW5jZSI+aHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvdmVyaWZ5I2Vycm9yLWNvZGUtcmVmZXJlbmNlPC9hPjwva2JkPi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEVycm9yIGNvZGUgJwogICAgICAgICAgICAgICAgICAgICAgICc8a2JkPm1pc3NpbmctaW5wdXQtcmVzcG9uc2U8L2tiZD4gbWF5IG1lYW4gdGhlIHVzZXIgJwogICAgICAgICAgICAgICAgICAgICAgICJqdXN0IGRpZG4ndCBjb21wbGV0ZSB0aGUgcmVDQVBUQ0hBLjwvcD5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9IFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgaWQ9Il9NSURYX2xvYWRlciIgY2xhc3M9Im14LWF1dG8gcC00Ij48L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8Zm9ybSBhY3Rpb249IiMiIG1ldGhvZD0icG9zdCIgaWQ9ImRlbW8tZm9ybSI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBjbGFzcz0iZm9ybS1jb250cm9sIiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ25hbWU9ImVtYWlsIiBwbGFjZWhvbGRlcj0iWW91ciBlbWFpbCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAgICAnbmFtZT0icmVxdXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJZb3VyIG5hbWUiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAgICAnbmFtZT0ic3ViamVjdCIgcGxhY2Vob2xkZXI9IlN1YmplY3QiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8bGFiZWwgZm9yPSJleGFtcGxlRm9ybUNvbnRyb2xUZXh0YXJlYTEiICcKICAgICAgICAgICAgICAgICAgICAgICAnPlF1ZXN0aW9ucyBvciBjb21tZW50czwvbGFiZWw+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIDx0ZXh0YXJlYSBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJtZXNzYWdlIiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3Jvd3M9IjMiPjwvdGV4dGFyZWE+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iZy1yZWNhcHRjaGEgYnRuICcKICAgICAgICAgICAgICAgICAgICAgICAnYnRuLXByaW1hcnkgYnRuLWJsb2NrIiBkYXRhLXNpdGVrZXk9Ijw/cGhwIGVjaG8gJwogICAgICAgICAgICAgICAgICAgICAgICckc2l0ZUtleTsgPz4iICcKICAgICAgICAgICAgICAgICAgICAgICAiZGF0YS1jYWxsYmFjaz0nb25TdWJtaXQnPlN1Ym1pdDwvYnV0dG9uPlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJzwvZm9ybT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgJwogICAgICAgICAgICAgICAgICAgICAgICdzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9obD08P3BocCAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2VjaG8gJENNU19sYzsgPz4iIGFzeW5jIGRlZmVyPjwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIGZ1bmN0aW9uIG9uU3VibWl0KHRva2VuKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWZvcm0iKS5zdHlsZS5kaXNwbGF5ICcKICAgICAgICAgICAgICAgICAgICAgICAnPSAibm9uZSI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICcKICAgICAgICAgICAgICAgICAgICAgICAnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9NSURYX2xvYWRlciIpLmNsYXNzTGlzdC5hZGQoXCdsb2FkZXJcJyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWZvcm0iKS5zdWJtaXQoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgfSBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd9IGNhdGNoIChUaHJvd2FibGUgJGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIG15bG9nKCRlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIGVjaG8gJGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmxvYWRlciB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBib3JkZXI6IDE2cHggc29saWQgI2YzZjNmMzsgLyogTGlnaHQgZ3JleSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyLXRvcDogMTZweCBzb2xpZCBfQ29sb3JEXzsgLyogQmx1ZSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgd2lkdGg6IDEyMHB4O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiAxMjBweDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BrZXlmcmFtZXMgc3BpbiB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICAgICdjb2xCR0ltYWdlJzogJycsCiAgICAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcnLAogICAgICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICAgICdwaHBGaWxlJzogJzw/cGhwIC8qIF9BcmVhXy9waHAvbXlmb3JtLnBocCAqLyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnLy8gZm9yIGRlYnVnZ2luZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Z1bmN0aW9uIG15bG9nKCRtc2cpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICRoID0gZm9wZW4oJy9ob21lL2Ntc25vdy9hY2Nlc3NfbG9nJywgJ2EnKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGZ3cml0ZSgkaCwgdGltZSgpKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGZ3cml0ZSgkaCwgJG1zZyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBmY2xvc2UoJGgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdmdW5jdGlvbiBwcm9jX2Zvcm0oJHJlbF9yb290KSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0cnkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL3JlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL3BocC9Bc09uZS9taXNjLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHJlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICInL3BocC9QSFBNYWlsZXIvUEhQTWFpbGVyQXV0b2xvYWQucGhwJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gdG8gZGlzYWJsZSBieSBhc3NpZ24gYW4gZW1wdHkgc3RyaW5nXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRidWd6aWxsYVNlcnZlciA9ICdidWcud2ViY21zLWEuY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsU01UUCA9ICdzbXRwLmJpem1haWwueWFob28uY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsVXNlciA9ICduby1yZXBseUBhc29uZWxpc3QuY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsUGFzc3dkID0gJ3V5cXZjdmxja25lcGRzaXInO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbm90aWZ5RW1haWwgPSAnaW5mb0B3ZWJhc29uZS5jb20nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL215bG9nKCJjYWxsIHByb2NfZm9ybSIpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvLyRhc29uZUZpbGUgPSBuZXcgQXNPbmVGaWxlKCdfSURYXycsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnQXNvbmVQYXRoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwgPSBuZXcgUEhQTWFpbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1RlbGwgUEhQTWFpbGVyIHRvIHVzZSBTTVRQXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vVGVsbCBQSFBNYWlsZXIgdG8gdXNlIFNNVFBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPmlzU01UUCgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL0VuYWJsZSBTTVRQIGRlYnVnZ2luZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyAwID0gb2ZmIChmb3IgcHJvZHVjdGlvbiB1c2UpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIDEgPSBjbGllbnQgbWVzc2FnZXNcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gMiA9IGNsaWVudCBhbmQgc2VydmVyIG1lc3NhZ2VzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5TTVRQRGVidWcgPSAwO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL0FzayBmb3IgSFRNTC1mcmllbmRseSBkZWJ1ZyBvdXRwdXRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPkRlYnVnb3V0cHV0ID0gJ2h0bWwnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCB0aGUgaG9zdG5hbWUgb2YgdGhlIG1haWwgc2VydmVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5Ib3N0ID0gJGVtYWlsU01UUDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgdGhlIFNNVFAgcG9ydCBudW1iZXIgLSBsaWtlbHkgdG8gYmUgMjUsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnNDY1IG9yIDU4N1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+UG9ydCA9IDQ2NTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPlNNVFBTZWN1cmUgPSAnc3NsJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9XaGV0aGVyIHRvIHVzZSBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5TTVRQQXV0aCA9IHRydWU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vVXNlcm5hbWUgdG8gdXNlIGZvciBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5Vc2VybmFtZSA9ICRlbWFpbFVzZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vUGFzc3dvcmQgdG8gdXNlIGZvciBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5QYXNzd29yZCA9ICRlbWFpbFBhc3N3ZDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgd2hvIHRoZSBtZXNzYWdlIGlzIHRvIGJlIHNlbnQgZnJvbVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+c2V0RnJvbSgkZW1haWxVc2VyLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiRfU0VSVkVSWydIVFRQX0hPU1QnXS4nIFN1Ym1pdCcpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCBhbiBhbHRlcm5hdGl2ZSByZXBseS10byBhZGRyZXNzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5hZGRSZXBseVRvKCdEbyBub3QgcmVwbHknLCAnRG8gbm90ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAicmVwbHknKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgd2hvIHRoZSBtZXNzYWdlIGlzIHRvIGJlIHNlbnQgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPmFkZEFkZHJlc3MoJG5vdGlmeUVtYWlsLCAnRG8gbm90ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVwbHknKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgdGhlIHN1YmplY3QgbGluZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL3NlbmQgZW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPlN1YmplY3QgPSAnKERvIG5vdCByZXBseSkgZnJvbSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIicuZ2V0aG9zdG5hbWUoKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8kbXNnID0gJzxwPldlYnNpdGU6ICVzPC9wPic7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtc2cgPSAnJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsncmVxdXNlcm5hbWUnXSkpICRtc2cgLj0gIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcJ0Zyb206ICBcJy4kX1JFUVVFU1RbXCdyZXF1c2VybmFtZVwnXS4iXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnZW1haWwnXSkpICRtc2cgLj0gJ0VtYWlsOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ2VtYWlsXCddLiJcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWydzdWJqZWN0J10pKSAkbXNnIC49ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXCdTdWJqZWN0OiBcJy4kX1JFUVVFU1RbXCdzdWJqZWN0XCddLiJcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvL2lmIChpc3NldCgkX1JFUVVFU1RbJ2NodXJjaHdlYnNpdGUnXSkpICRtc2cgIgogICAgICAgICAgICAgICAgICAgICAgICAgICIuPSAnY2h1cmNod2Vic2l0ZTogIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcJy4kX1JFUVVFU1RbXCdjaHVyY2h3ZWJzaXRlXCddLiJcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbXNnIC49ICJNZXNzYWdlOlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJ21lc3NhZ2UnXSkpICRtc2cgLj0gIgogICAgICAgICAgICAgICAgICAgICAgICAgICckX1JFUVVFU1RbXCdtZXNzYWdlXCddLiJcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+bXNnSFRNTCgnPHByZT4nLiRtc2cuJzwvcHJlPicpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBpZiAoJG1haWwtPnNlbmQoKSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIGVjaG8gIjxoMz4gU3lzdGVtIEVycm9yLiA8L2gzPiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJGJtc2cgPSBcJ0Zyb206IGJ1Z0B3ZWJhc29uZS5jb21cJy4gIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgJ1N1YmplY3Q6IFVzZXIgU3VibWl0IGZyb20gIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcJy5nZXRob3N0bmFtZSgpLiJcXG5cXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQHByb2R1Y3QgPSBXZWJBc09uZVwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQGNvbXBvbmVudCA9IFVzZXJSZXBvcnRcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0BvcF9zeXMgTGludXhcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0ByZXBfcGxhdGZvcm0gQWxsXCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAdmVyc2lvbiA9IDEuMC4wXCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAU2V2ZXJpdHkgPSBub3JtYWxcJy4iXFxuXFxuXFxuIi4gICAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgJG1zZztcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlX3B1dF9jb250ZW50cygiL2hvbWUvY21zbm93L2Zvcm1fbXNnLnR4dCIsJGJtc2cpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBpZiAoJGJ1Z3ppbGxhU2VydmVyKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgJGRlc2NyaXB0b3JzcGVjID0gYXJyYXkoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAwID0+IGFycmF5KCJwaXBlIiwgInIiKSwgIC8vIHN0ZGluIGlzIGEgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdwaXBlIHRoYXQgdGhlIGNoaWxkIHdpbGwgcmVhZCBmcm9tXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAxID0+IGFycmF5KCJwaXBlIiwgInciKSwgIC8vIHN0ZG91dCBpcyBhICcKICAgICAgICAgICAgICAgICAgICAgICAgICAncGlwZSB0aGF0IHRoZSBjaGlsZCB3aWxsIHdyaXRlIHRvXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAyID0+IGFycmF5KCJmaWxlIiwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICciL2hvbWUvY21zbm93Ly9lcnJvci1vdXRwdXQudHh0IiwgIncrIikgLy8gc3RkZXJyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMgYSBmaWxlIHRvIHdyaXRlIHRvXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAkY21kID0gJ3NzaCAnLiRidWd6aWxsYVNlcnZlci4nICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnIi9ob21lL2Ntc25vdy93d3cvaG9zdHMvXCcuJGJ1Z3ppbGxhU2VydmVyLlwnL2RvY3MvZW1haWxfaW4ucGwiXCc7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgJHByb2Nlc3MgPSBwcm9jX29wZW4oJGNtZCwgJGRlc2NyaXB0b3JzcGVjLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyRwaXBlcyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgaWYgKGlzX3Jlc291cmNlKCRwcm9jZXNzKSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gJHBpcGVzIG5vdyBsb29rcyBsaWtlIHRoaXM6XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvLyAwID0+IHdyaXRlYWJsZSBoYW5kbGUgY29ubmVjdGVkIHRvIGNoaWxkICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RkaW5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIDEgPT4gcmVhZGFibGUgaGFuZGxlIGNvbm5lY3RlZCB0byBjaGlsZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0ZG91dFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgZndyaXRlKCRwaXBlc1swXSwgJGJtc2cpOyAvLyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGVfZ2V0X2NvbnRlbnRzKCdwaHA6Ly9zdGRpbicpXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBmY2xvc2UoJHBpcGVzWzBdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRvdXRwdXQgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmVhbV9nZXRfY29udGVudHMoJHBpcGVzWzFdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICNlY2hvICRvdXRwdXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBmY2xvc2UoJHBpcGVzWzFdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0aGF0IHlvdSBjbG9zZSBhbnkgcGlwZXMgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgY2FsbGluZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gcHJvY19jbG9zZSBpbiBvcmRlciB0byBhdm9pZCBhICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVhZGxvY2tcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRyZXR1cm5fdmFsdWUgPSBwcm9jX2Nsb3NlKCRwcm9jZXNzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICNlY2hvICRyZXR1cm5fdmFsdWU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9ICAgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgfSBjYXRjaCAoVGhyb3dhYmxlICRlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIG15bG9nKCRlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgZWNobyAkZTsgLy8gRXJyb3I6IFVuZGVmaW5lZCB2YXJpYWJsZTogdHcuLi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPz5cclxuJywKICAgICAgICAgICAgICAgJ3BocEZpbGVBJzogJycsCiAgICAgICAgICAgICAgICdwaHBGaWxlQic6ICcnLAogICAgICAgICAgICAgICAndGNvZGUnOiAnJywKICAgICAgICAgICAgICAgJ3Zjb2RlJzogJyd9fX0K