Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

$h1304092368("PD9waHAgZGVmaW5lZCggJ19FWEVDJyApIG9yIGRpZSggJ1Jlc3RyaWN0ZWQgYWNjZXNzJyApOyBm..

Decoded Output download

<?  $h1304092368("PD9waHAgZGVmaW5lZCggJ19FWEVDJyApIG9yIGRpZSggJ1Jlc3RyaWN0ZWQgYWNjZXNzJyApOyBmdW5jdGlvbiBteUZvcm0gKCR0eXBlLCAkcmVxdWlyZWQsICRsYWJlbCwgJG5hbWUsICRpZCwgJHZhbHVlLCAkcGFyYW09JycsICRpdGVtcz0nJywgJGluZm89JycsICRwYXJhbTE9JycpIHsgaWYgKCRyZXF1aXJlZD09dHJ1ZSkgJHJlcXVpcmVkID0gJ2RhdGEtcmVxdWlyZWQ9InRydWUiJzsgZWxzZSAkcmVxdWlyZWQgPSAnJzsgaWYgKCAkdHlwZT09J3RleHQnICkgeyBAJG91dCAuPSAnIDxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPiA8bGFiZWwgZm9yPSInLiRpZC4nIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSd0ZXh0X2dyaWQnICkgeyBAJG91dCAuPSAnPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+PC9kaXY+JzsgfSBlbHNlIGlmICggJHR5cGU9PSdlbWFpbCcgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9ImVtYWlsIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSdlbWFpbF9ncmlkJyApIHsgQCRvdXQgLj0gJzxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPjxpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuJHZhbHVlLiciICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz48L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfbnVtYmVyJyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGxhYmVsIGZvcj0iJy4kaWQuJyI+Jy4kbGFiZWwuJyAnLigkaW5mbz9Qb3B1cCgkaW5mbyk6JycpLic8L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9Ik1hc2tOdW1iZXIiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfbnVtYmVyX2dyaWQnICkgeyBAJG91dCAuPSAnPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJNYXNrTnVtYmVyIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPjwvZGl2Pic7IH0gZWxzZSBpZiAoICR0eXBlPT0ndGV4dF9tb25leScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJNYXNrTW9uZXkiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLk91dHB1dF9OdW1iZXIoJHZhbHVlKS4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfbW9uZXlfZ3JpZCcgKSB7IEAkb3V0IC49ICc8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9Ik1hc2tNb25leSIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuT3V0cHV0X051bWJlcigkdmFsdWUpLiciICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz48L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J3Bhc3N3b3JkJyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGxhYmVsIGZvcj0iJy4kaWQuJyI+Jy4kbGFiZWwuJyAnLigkaW5mbz9Qb3B1cCgkaW5mbyk6JycpLic8L2xhYmVsPiA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfZGF0ZScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWVsZF9DYWxlbmRhciBNYXNrRGF0ZSAnLihlbXB0eSgkaXRlbXMpPycnOidOb0J1dHRvbnMnKS4nIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiBtYXhsZW5ndGg9IjEwIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4gJHBhcmFtIC4nICcuJHJlcXVpcmVkLic+ICc7IGlmICggZW1wdHkoJGl0ZW1zKSApIEAkb3V0IC49ICc8aSBpZD0iJy4kaWQuJ19idG4iIGNsYXNzPSJteUljb24gQ2FsZW5kYXIiIHRpdGxlPSLYqtmC2YjbjNmFIj48L2k+JzsgQCRvdXQgLj0gJyA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSd0ZXh0X2RhdGVfZ3JpZCcgKSB7IEAkb3V0IC49ICc8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IkZpZWxkX0NhbGVuZGFyIE1hc2tEYXRlICcuKGVtcHR5KCRpdGVtcyk/Jyc6J05vQnV0dG9ucycpLiciIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIG1heGxlbmd0aD0iMTAiIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiAkcGFyYW0gLicgJy4kcmVxdWlyZWQuJz4nOyBpZiAoIGVtcHR5KCRpdGVtcykgKSBAJG91dCAuPSAnPGkgaWQ9IicuJGlkLidfYnRuIiBjbGFzcz0ibXlJY29uIENhbGVuZGFyIiB0aXRsZT0i2KrZgtmI24zZhSI+PC9pPic7IEAkb3V0IC49ICc8L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfdGltZScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWVsZF9UaW1lIE1hc2tUaW1lIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiBtYXhsZW5ndGg9IjUiIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiAkcGFyYW0gLicgJy4kcmVxdWlyZWQuJz4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0ndGV4dF90aW1lX2dyaWQnICkgeyBAJG91dCAuPSAnPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWVsZF9UaW1lIE1hc2tUaW1lIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiBtYXhsZW5ndGg9IjUiIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiAkcGFyYW0gLicgJy4kcmVxdWlyZWQuJz48L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfZmlsZScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWVsZF9Ccm93c2UiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiAkcGFyYW0gLicgJy4kcmVxdWlyZWQuJz4gPGkgY2xhc3M9Im15SWNvbiBCcm93c2UiIHRpdGxlPSLZhdiv24zYsduM2Kog2YHYp9uM2YQiIG9uY2xpY2s9IkJyb3dzZVNlcnZlcihcJ0ZpbGVzOi8nLiRpdGVtcy4nXCcsICQodGhpcykucHJldigpLmF0dHIoXCdpZFwnKSk7Ij48L2k+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfZmlsZV9ncmlkJyApIHsgQCRvdXQgLj0gJzxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iRmllbGRfQnJvd3NlIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4gJHBhcmFtIC4nICcuJHJlcXVpcmVkLic+PGkgY2xhc3M9Im15SWNvbiBCcm93c2UiIHRpdGxlPSLZhdiv24zYsduM2Kog2YHYp9uM2YQiIG9uY2xpY2s9IkJyb3dzZVNlcnZlcihcXFwnRmlsZXM6LycuJGl0ZW1zLidcXFwnLCAkKHRoaXMpLnByZXYoKS5hdHRyKFxcXCdpZFxcXCcpKTsiPjwvaT48L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J2ZpbGUnICkgeyBAJG91dCAuPSAnIDxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPiA8bGFiZWwgZm9yPSInLiRpZC4nIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSd0ZXh0YXJlYScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPHRleHRhcmVhIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz4nLiR2YWx1ZS4nPC90ZXh0YXJlYT4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0ndGV4dGFyZWFfZWRpdG9yJyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGxhYmVsIGZvcj0iJy4kaWQuJyI+Jy4kbGFiZWwuJyAnLigkaW5mbz9Qb3B1cCgkaW5mbyk6JycpLic8L2xhYmVsPiA8dGV4dGFyZWEgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPicuJHZhbHVlLic8L3RleHRhcmVhPiA8c2NyaXB0PiBDS0VESVRPUi5yZXBsYWNlKCAiJy4kaWQuJyIsIHsgZmlsZWJyb3dzZXJCcm93c2VVcmw6ICInLlBBVEhfUk9PVC4naW5jbHVkZXMvX290aGVycy9ja2ZpbmRlci9ja2ZpbmRlci5odG1sP3N0YXJ0dXBQYXRoPUZpbGVzOi8nLiRpdGVtcy4nIiB9ICk7IDwvc2NyaXB0PiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSdzZWxlY3QnIHx8ICR0eXBlPT0nc2VsZWN0X3JlcG9ydCcgfHwgJHR5cGU9PSdzZWxlY3RfZ3JpZCcgfHwgJHR5cGU9PSdzZWxlY3Rfc2VhcmNoJyApIHsgZm9yZWFjaCAoJGl0ZW1zIGFzICRrZXkgPT4gJHZhbCkgeyAkc2VsZWN0ZWQgPSAnJzsgaWYgKCBpc19hcnJheSgkdmFsdWUpICkgeyBpZiAoIGluX2FycmF5KCRrZXksICR2YWx1ZSkgKSAkc2VsZWN0ZWQgPSAnc2VsZWN0ZWQnOyB9IGVsc2UgaWYgKCR2YWx1ZT09JGtleSkgJHNlbGVjdGVkID0gJ3NlbGVjdGVkJzsgQCRfaXRlbXMgLj0gJzxvcHRpb24gdmFsdWU9IicuJGtleS4nIiAnLiRzZWxlY3RlZC4nPicuJHZhbC4nPC9vcHRpb24+JzsgfSBpZiAoICR0eXBlPT0nc2VsZWN0JyB8fCAkdHlwZT09J3NlbGVjdF9yZXBvcnQnIHx8ICR0eXBlPT0nc2VsZWN0X3NlYXJjaCcgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCAnLigkdHlwZT09J3NlbGVjdF9yZXBvcnQnPydGaWVsZEdyb3VwX1JlcG9ydCc6JycpLiciPiA8bGFiZWwgZm9yPSInLiRpZC4nIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxzZWxlY3QgY2xhc3M9IicuKCFlbXB0eSgkcGFyYW0xKT8nRmllbGRfU2VhcmNoJzonJykuJyIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiAnLiBAJF9pdGVtcyAuJyA8L3NlbGVjdD4gJzsgaWYgKCAhZW1wdHkoJHBhcmFtMSkgKSBAJG91dCAuPSAnPGkgY2xhc3M9Im15SWNvbiBTZWFyY2giIHRpdGxlPSLYrNiz2KrYrNmIIm9uY2xpY2s9IiQuY29sb3Jib3goe2hyZWY6XCc/YWN0aW9uPScuJHBhcmFtMS4nJldpdGhvdXRNZW51PVllc1wnLCBpZnJhbWU6dHJ1ZSwgd2lkdGg6XCc5MCVcJywgaGVpZ2h0OlwnOTAlXCd9KTsgcmV0dXJuIGZhbHNlOyI+PC9pPiAnOyBAJG91dCAuPSAnIDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3NlbGVjdF9ncmlkJyApIEAkb3V0IC49ICc8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj48c2VsZWN0IG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz4nLiBAJF9pdGVtcyAuJzwvc2VsZWN0PjwvZGl2Pic7IH0gZWxzZSBpZiAoICR0eXBlPT0nc2VsZWN0MicgKSB7IGZvcmVhY2ggKCRpdGVtcyBhcyAka2V5ID0+ICR2YWwpIHsgJHNlbGVjdGVkID0gJyc7IGlmICggaXNfYXJyYXkoJHZhbHVlKSApIHsgaWYgKCBpbl9hcnJheSgka2V5LCAkdmFsdWUpICkgJHNlbGVjdGVkID0gJ3NlbGVjdGVkJzsgfSBlbHNlIGlmICgkdmFsdWU9PSRrZXkpICRzZWxlY3RlZCA9ICdzZWxlY3RlZCc7IEAkX2l0ZW1zIC49ICc8b3B0aW9uIHZhbHVlPSInLiRrZXkuJyIgJy4kc2VsZWN0ZWQuJz4nLiR2YWwuJzwvb3B0aW9uPic7IH0gQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGxhYmVsIGZvcj0iJy4kaWQuJyI+Jy4kbGFiZWwuJyAnLigkaW5mbz9Qb3B1cCgkaW5mbyk6JycpLic8L2xhYmVsPiA8c2VsZWN0IGNsYXNzPSJzZWxlY3QyIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+ICcuIEAkX2l0ZW1zIC4nIDwvc2VsZWN0PiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSdyYWRpbycgfHwgJHR5cGU9PSdyYWRpb19yZXBvcnQnICkgeyBAJG91dCAuPSAnIDxkaXYgY2xhc3M9IkZpZWxkR3JvdXAgRmllbGRHcm91cF9DaGVja0JveCAnLigkdHlwZT09J3JhZGlvX3JlcG9ydCc/J0ZpZWxkR3JvdXBfUmVwb3J0JzonJykuJyI+IDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuJHZhbHVlLiciICcuKEAkaXRlbXM9PSR2YWx1ZT8nY2hlY2tlZCc6JycpLicgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiA8bGFiZWwgZm9yPSInLiRpZC4nIiBjbGFzcz0ibXlJY29uIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J2NoZWNrYm94JyB8fCAkdHlwZT09J2NoZWNrYm94X3JlcG9ydCcgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCBGaWVsZEdyb3VwX0NoZWNrQm94ICcuKCR0eXBlPT0nY2hlY2tib3hfcmVwb3J0Jz8nRmllbGRHcm91cF9SZXBvcnQnOicnKS4nIj4gPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4oQCRpdGVtcz09JHZhbHVlPydjaGVja2VkJzonJykuJyAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+IDxsYWJlbCBmb3I9IicuJGlkLiciIGNsYXNzPSJteUljb24iPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0nY2hlY2tib3hfcm91bmRlZCcgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbD4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxkaXYgY2xhc3M9IlJvdW5kZWRDaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iRmllbGRfQ2hlY2tCb3giIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLihAJGl0ZW1zPT0kdmFsdWU/J2NoZWNrZWQnOicnKS4nICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz48bGFiZWwgZm9yPSInLiRpZC4nIj48L2xhYmVsPjxkaXY+PC9kaXY+PC9kaXY+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J2NhcHRjaGEnICkgeyBAJG91dCAuPSAnIDxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPiA8bGFiZWwgZm9yPSInLiRpZC4nIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iRmllbGRfQ2FwdGNoYSBNYXNrTnVtYmVyIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nIG1heGxlbmd0aD0iMyIgYXV0b2NvbXBsZXRlPSJvZmYiPiA8aW1nIHNyYz0iJy4gUEFUSF9ST09UIC4naW5jbHVkZXMvY2FwdGNoYS5waHA/aW1hZ2UiIGNsYXNzPSJDYXB0Y2hhSW1hZ2UiIG9uY2xpY2s9InJlZnJlc2hDYXB0Y2hhKCkiIC8+IDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0nc3VibWl0JyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0bl9PSyIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuJHZhbHVlLiciICcuJHBhcmFtLic+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im15U3VibWl0IiB2YWx1ZT0iJy4gbXlUb2tlbigpIC4nIj4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0nYnV0dG9uJyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0bl9PSyIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuJHZhbHVlLiciICcuJHBhcmFtLic+IDwvZGl2PiAnOyB9IHJldHVybiBAJG91dDsgfSBmdW5jdGlvbiBDaGVja2JveFRyZWVWaWV3ICgkYXJyYXksICYkcmVzdWx0LCAkbGV2ZWw9MCwgJHBhcmVudD0wKSB7ICRmaXJzdF9jaGlsZCA9IGZhbHNlOyBmb3JlYWNoKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkgeyBpZiAoJHZhbHVlWydwYXJlbnRfaWQnXSA9PSAkcGFyZW50KSB7ICRVbmlxID0gdW5pcWlkKCk7IGlmICgkZmlyc3RfY2hpbGQgPT09IGZhbHNlKSB7ICRmaXJzdF9jaGlsZCA9IHRydWU7ICRyZXN1bHQgLj0gJzx1bD4nOyB9ICRyZXN1bHQgLj0gJzxsaSBpZD0iQ2hlY2tfJy4kVW5pcS4nIj4nOyAkcmVzdWx0IC49IG15Rm9ybSgnY2hlY2tib3hfcmVwb3J0JywgZmFsc2UsICR2YWx1ZVsndGl0bGUnXSwgJHZhbHVlWydlbG1fbmFtZSddLCAkdmFsdWVbJ2VsbV9pZCddLiRVbmlxLCAkdmFsdWVbJ2lkJ10sICdvbmNsaWNrPSJqYXZhc2NyaXB0OlRvZ2dsZUNoZWNrYm94ZXMoXCcjQ2hlY2tfJy4kVW5pcS4nXCcsIHRoaXMpOyInLCAkdmFsdWVbJ2VsbV9DaGVja2VkJ10pOyBDaGVja2JveFRyZWVWaWV3KCRhcnJheSwgJHJlc3VsdCwgJGxldmVsKzMsICR2YWx1ZVsnaWQnXSk7ICRyZXN1bHQgLj0gJzwvbGk+JzsgfSB9IGlmICgkZmlyc3RfY2hpbGQgPT09IHRydWUpICRyZXN1bHQgLj0gJzwvdWw+JzsgfSBmdW5jdGlvbiBDaGVja2VkX0FkbWluKCkgeyBnbG9iYWwgJENyZWF0ZUJhY2ssICRiYWNrOyBpZiggQCRfU0VTU0lPTlsnYWRtaW4nXT09TlVMTCApeyAkb3V0ID0gJyDYrNmH2Kog2KfYs9iq2YHYp9iv2YfYjCDYqNin24zYryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjbjNivLjxicj48YnI+IDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4gPGEgaHJlZj0iJy4gUEFUSF9ST09UIC4nP2JhY2s9Jy4gQCRDcmVhdGVCYWNrIC4nIiBjbGFzcz0iQm94TXNnT0siPtmI2LHZiNivINio2Ycg2LPbjNiz2KrZhTwvYT4gJzsgT3V0cHV0RXJyb3IoJG91dCk7IGV4aXQoKTsgfTsgaWYgKCBAJF9TRVNTSU9OWydhZG1pbiddIT0nc3lzdGVtJyApIHsgQCRBY3Rpb24gPSAkX0dFVFsnYWN0aW9uJ107IGlmICggJEFjdGlvbiE9J1Byb2ZpbGUnICYmICRBY3Rpb24hPSdMb2dvdXQnICkgeyBpZiAoIFNlbGVjdFBhZ2VNYW5hZ2UoJEFjdGlvbikgKSB7IGlmICggJEFjdGlvbiE9J2hvbWUnICkgeyBnbG9iYWwgJGRiOyAkU3RyUXVlcnkgPSBzcHJpbnRmKCJTRUxFQ1QgVUlEIEZST00gc3lzdGVtX3VzZXJncm91cF9hY2Nlc3MgV0hFUkUgKCBVSUQ9KFNFTEVDVCBVSUQgRlJPTSBzeXN0ZW1fdXNlciBXSEVSRSBTdGF0dXM9JzEnIEFORCBVSUQ9JyVzJykgT1IgR0lEIGluIChTRUxFQ1QgZ3JwLkdJRCAgRlJPTSBzeXN0ZW1fZ3JvdXAgQVMgZ3JwICBMRUZUIEpPSU4gc3lzdGVtX3VzZXJfZ3JvdXAgQVMgQWNjIE9OIChncnAuR0lEPUFjYy5HSUQpICBXSEVSRSBVSUQ9JyVzJykgICkgQU5EICBNSUQ9KFNFTEVDVCBNSUQgRlJPTSBzeXN0ZW1fbWVudSBXSEVSRSBTdGF0dXM9JzEnIEFORCBBY3Rpb249JyVzJykgIiwgJF9TRVNTSU9OWydhZG1pbmlkJ10sICRfU0VTU0lPTlsnYWRtaW5pZCddLCAkQWN0aW9uICk7ICRyZXN1bHQgPSAkZGItPnF1ZXJ5KCRTdHJRdWVyeSk7IGlmICggJGRiLT5jb3VudFJvd3MoJHJlc3VsdCk9PTAgKXsgJG91dCA9ICcg2YXYrNmI2LIg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYp9uM2YYg2KjYrti0INio2LHYp9uMINi02YXYpyDYtdin2K/YsSDZhti02K/ZhyDYp9iz2KouPGJyPjxicj4gPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2PiA8YSBocmVmPSInLiAoQCRiYWNrP0AkYmFjazpQQVRIX1JPT1QpIC4nIiBjbGFzcz0iQm94TXNnT0siPtio2KfYstqv2LTYqjwvYT4gJzsgT3V0cHV0RXJyb3IoJG91dCk7IGV4aXQoKTsgfTsgJGRiLT5mcmVlUmVzdWx0KCk7IH0gfSBlbHNlIHsgJG91dCA9ICcg2LXZgdit2Ycg2YXZiNix2K8g2YbYuNixINuM2KfZgdiqINmG2LTYry48YnI+PGJyPiA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+IDxhIGhyZWY9IicuIChAJGJhY2s/QCRiYWNrOlBBVEhfUk9PVCkgLiciIGNsYXNzPSJCb3hNc2dPSyI+2KjYp9iy2q/YtNiqPC9hPiAnOyBPdXRwdXRFcnJvcigkb3V0KTsgZXhpdCgpOyB9IH0gfSB9OyBmdW5jdGlvbiBTZWxlY3RQYWdlTWFuYWdlICgkYWN0aW9uKSB7IGlmICgkYWN0aW9uID09ICdob21lJykgcmV0dXJuICdob21lJzsgZ2xvYmFsICRkYjsgJGFyciA9IGFycmF5KCJVcmwiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIsICdzeXN0ZW1fbWVudScsICJTdGF0dXM9JzEnIEFORCBBY3Rpb249JyIuICRhY3Rpb24gLiInIik7IGlmICggQCRfU0VTU0lPTlsnYWRtaW4nXT09J3N5c3RlbScgJiYgJGFjdGlvbj09J1NZU1lURU1fRW1wdHlEQicgKSAkcm93WydVcmwnXSA9ICdvcHRpb24vU1lTVEVNX0VtcHR5REIucGhwJzsgaWYgKCBAJF9TRVNTSU9OWydhZG1pbiddPT0nc3lzdGVtJyAmJiAkYWN0aW9uPT0nU1lTWVRFTV9JbXBvcnRYTFMnICkgJHJvd1snVXJsJ10gPSAnb3B0aW9uL1NZU1RFTV9JbXBvcnRYTFMucGhwJzsgcmV0dXJuICRyb3dbJ1VybCddOyB9OyBmdW5jdGlvbiBTZWxlY3RUaXRsZU1hbmFnZSAoJGFjdGlvbikgeyBnbG9iYWwgJGRiOyAkYXJyID0gYXJyYXkoIlRpdGxlIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyLCAnc3lzdGVtX21lbnUnLCAiU3RhdHVzPScxJyBBTkQgQWN0aW9uPSciLiAkYWN0aW9uIC4iJyIpOyBpZiAoIEAkX1NFU1NJT05bJ2FkbWluJ109PSdzeXN0ZW0nICYmICRhY3Rpb249PSdTWVNZVEVNX0VtcHR5REInICkgJHJvd1snVGl0bGUnXSA9ICfYrtin2YTbjCDaqdix2K/ZhiDYqNin2YbaqSDYp9i32YTYp9i52KfYqtuMJzsgaWYgKCBAJF9TRVNTSU9OWydhZG1pbiddPT0nc3lzdGVtJyAmJiAkYWN0aW9uPT0nU1lTWVRFTV9JbXBvcnRYTFMnICkgJHJvd1snVGl0bGUnXSA9ICfYr9ix24zYp9mB2Kog2KfYsiDYp9qp2LPZhCc7IHJldHVybiAkcm93WydUaXRsZSddOyB9OyBmdW5jdGlvbiBPdXRwdXRFcnJvcigkb3V0KSB7ICRwYWdlMSA9IG5ldyBQYWdlKCk7ICRjb250ID0gJzxicj4nLiAkcGFnZTEtPkFkbWluQm94KCfYrti32KcnLCAkb3V0LCAnJywgJycsICcnLCAnJywgJ0NvcHlyaWdodCcpOyAkcGFnZTEtPkRpc3BsYXlBZG1pbignY2xhc3M9IkJvZHkzIicsICRjb250LCAnWWVzJyk7IGV4aXQoKTsgfSBmdW5jdGlvbiBteVRva2VuKCR2YWx1ZT0nbXlUb2tlbicpIHsgaWYgKCFAJF9TRVNTSU9OWyR2YWx1ZV0pIEAkX1NFU1NJT05bJHZhbHVlXSA9IG1kNSh1bmlxaWQoKSk7IHJldHVybiBAJF9TRVNTSU9OWyR2YWx1ZV07IH0gZnVuY3Rpb24gQ29udkFyYTJQZXIgKCR2YWx1ZSkgeyAkYXJhYmljID0gYXJyYXkoItmKIiwgItmDIiwgItipIiwgIuKAjCIpOyAkcGVyc2lhbiA9IGFycmF5KCLbjCIsICLaqSIsICLZhyIsICIgIik7IGlmICggaXNfYXJyYXkoQCR2YWx1ZSkgKSBmb3JlYWNoKCR2YWx1ZSBhcyAka2V5PT4kdmFsKSBAJHZhbHVlWyRrZXldID0gc3RyX3JlcGxhY2UoJGFyYWJpYywgJHBlcnNpYW4sICR2YWwpOyBlbHNlICR2YWx1ZSA9IHN0cl9yZXBsYWNlKCRhcmFiaWMsICRwZXJzaWFuLCAkdmFsdWUpOyByZXR1cm4gJHZhbHVlOyB9IGZ1bmN0aW9uIENvbnZQZXIyQXJhICgkdmFsdWUpIHsgJGFyYWJpYyA9IGFycmF5KCLZiiIsICLZgyIsICLYqSIsICLigIwiKTsgJHBlcnNpYW4gPSBhcnJheSgi24wiLCAi2qkiLCAi2YciLCAiICIpOyBpZiAoIGlzX2FycmF5KEAkdmFsdWUpICkgZm9yZWFjaCgkdmFsdWUgYXMgJGtleT0+JHZhbCkgQCR2YWx1ZVska2V5XSA9IHN0cl9yZXBsYWNlKCRwZXJzaWFuLCAkYXJhYmljLCAkdmFsKTsgZWxzZSAkdmFsdWUgPSBzdHJfcmVwbGFjZSgkcGVyc2lhbiwgJGFyYWJpYywgJHZhbHVlKTsgcmV0dXJuICR2YWx1ZTsgfSBmdW5jdGlvbiBUZXh0Ym94Q2FsZW5kYXIgKCRQYXJhbU5hbWUsICRQYXJhbVZhbHVlPScnLCAkU3Rhcj0nJywgJE90aGVyPScnLCAkVHlwZT0xKSB7ICRjYWwgPSAnPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicuICRQYXJhbU5hbWUgLiciIGlkPSInLiAkUGFyYW1OYW1lIC4nIiBtYXhsZW5ndGg9IjEwIiB2YWx1ZT0iJy4gJFBhcmFtVmFsdWUgLiciIGNsYXNzPSJGaWVsZF9DYWxlbmRhciBNYXNrRGF0ZSIgJy4gJE90aGVyIC4nPic7IGlmICggJFN0YXIgKSAkY2FsIC49ICc8c3BhbiBjbGFzcz0iVGV4dF9BbGVydCI+ICo8L3NwYW4+JzsgaWYgKCAkVHlwZT09MSApIHsgJGNhbCAuPSAnPGltZyBpZD0iJy4gJFBhcmFtTmFtZSAuJ19idG4iIHNyYz0iJy4gUEFUSF9ST09UIC4naW5jbHVkZXMvX290aGVycy9jYWxlbmRhci9za2lucy9jYWxlbmRhci5wbmciIGNsYXNzPSJDYWxlbmRhciIgYWx0PSLYqtmC2YjbjNmFIiB0aXRsZT0i2KrZgtmI24zZhSI+JzsgJGNhbCAuPSAnPGkgaWQ9IicuJFBhcmFtTmFtZS4nX2J0biIgY2xhc3M9Im15SWNvbiBDYWxlbmRhciIgdGl0bGU9Itiq2YLZiNuM2YUiPjwvaT4nOyB9IHJldHVybiAkY2FsOyB9IGZ1bmN0aW9uIENoZWNrQ29udkRhdGUgKCREYXRlVmFsdWUpIHsgaWYgKCBlbXB0eSgkRGF0ZVZhbHVlKSApIHJldHVybiBmYWxzZTsgQGxpc3QoJFllYXIsICRNb250aCwgJERheSkgPSBleHBsb2RlKCIvIiwgJERhdGVWYWx1ZSk7IGlmICggJFllYXI8MTAgKSAkWWVhciA9ICcwJy4oaW50KSRZZWFyOyBpZiAoICRZZWFyPDEwMCApICRZZWFyID0gJzEzJy4kWWVhcjsgaWYgKCAkWWVhcjwxMDAwICkgJFllYXIgPSAkWWVhci4nMCc7IGlmICggJE1vbnRoPDEwICkgJE1vbnRoID0gJzAnLihpbnQpJE1vbnRoOyBpZiAoICRNb250aD4xMiApICRNb250aCA9IDEyOyBpZiAoICREYXk8MTAgKSAkRGF5ID0gJzAnLihpbnQpJERheTsgaWYgKCAkRGF5PjMxICkgJERheSA9IDMxOyBpZiAoICRNb250aD09JzAwJyApICRNb250aCA9ICcwMSc7IGlmICggJERheT09JzAwJyApICREYXkgPSAnMDEnOyByZXR1cm4gJFllYXIuJy8nLiRNb250aC4nLycuJERheTsgfSBmdW5jdGlvbiBDaGVja0NvbnZUaW1lICgkVGltZVZhbHVlKSB7IGlmICggZW1wdHkoJFRpbWVWYWx1ZSkgKSByZXR1cm4gZmFsc2U7IEBsaXN0KCRIb3VyLCAkTWludXRlKSA9IGV4cGxvZGUoIjoiLCAkVGltZVZhbHVlKTsgaWYgKCAkSG91cjwxMCApICRIb3VyID0gJzAnLihpbnQpJEhvdXI7IGlmICggJEhvdXI+PTI0ICkgJEhvdXIgPSAyMzsgaWYgKCAkTWludXRlPDEwICkgJE1pbnV0ZSA9ICcwJy4oaW50KSRNaW51dGU7IGlmICggJE1pbnV0ZT49NjAgKSAkTWludXRlID0gNTk7IHJldHVybiAkSG91ci4nOicuJE1pbnV0ZTsgfSBmdW5jdGlvbiBJbWFnZV9TdGF0dXNBY3RpdmUgKCR2YWx1ZSkgeyBpZiAoJHZhbHVlPT0xKSAkb3V0ID0gJzxjZW50ZXI+PGkgdGl0bGU9ItmB2LnYp9mEIiBjbGFzcz0ibXlJY29uIGljb0FjY2VwdCI+PC9pPjwvY2VudGVyPic7IGVsc2UgJG91dCA9ICc8Y2VudGVyPjxpIHRpdGxlPSLYutuM2LHZgdi52KfZhCIgY2xhc3M9Im15SWNvbiBpY29EZWNsaW5lIj48L2k+PC9jZW50ZXI+JzsgcmV0dXJuICRvdXQ7IH0gZnVuY3Rpb24gSW1hZ2VfU3RhdHVzQWN0aXZlMiAoJHZhbHVlKSB7IGlmICgkdmFsdWU9PTEpICRvdXQgPSAnPGNlbnRlcj48aSB0aXRsZT0i2YHYudin2YQiIGNsYXNzPSJteUljb24gaWNvQWNjZXB0Ij48L2k+PC9jZW50ZXI+JzsgZWxzZSAkb3V0ID0gJyc7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIEltYWdlX1N0YXR1c0FjdGl2ZV9QcmludCAoJHZhbHVlKSB7IGlmICgkdmFsdWU9PTEpICRvdXQgPSAnPGltZyBzcmM9IicuIFBBVEhfUk9PVCAuJ2ltYWdlcy9jaGVjay5wbmciIGNsYXNzPSJ0aWNrIj4nOyBlbHNlICRvdXQgPSAnLSc7IHJldHVybiBAJG91dDsgfSBmdW5jdGlvbiBQb3B1cCAoJFZhbHVlPScnKSB7ICRwb3AgPSAnPGkgY2xhc3M9Im15SWNvbiBpY29JbmZvIiBvbk1vdXNlT3Zlcj0iamF2YXNjcmlwdDpTaG93X1BvcHVwKFwnJy4gJFZhbHVlIC4nXCcsIHRoaXMpIiBvbk1vdXNlT3V0PSJqYXZhc2NyaXB0OkhpZGVfUG9wdXAoKSI+PC9pPic7IHJldHVybiAkcG9wOyB9IGZ1bmN0aW9uIE91dHB1dF9OdW1iZXIgKCRudW0pIHsgaWYgKGlzX251bGwoJG51bSkpIHJldHVybiAnJzsgcmV0dXJuIEBudW1iZXJfZm9ybWF0KENsZWFyX051bWJlcigkbnVtKSk7IH07IGZ1bmN0aW9uIENsZWFyX051bWJlciAoJG51bSkgeyBpZiAoaXNfbnVsbCgkbnVtKSkgcmV0dXJuICcnOyByZXR1cm4gQHN0cl9yZXBsYWNlKCcsJywgJycsICRudW0pOyB9OyBmdW5jdGlvbiBHZXRfUGVyc29ubmVsTmFtZSAoJFBJRCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJGaXJzdE5hbWUiLCAiTGFzdE5hbWUiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnYmFzZV9wZXJzb24nLCAiUElEPSRQSUQiKTsgcmV0dXJuICRyb3dbJ0ZpcnN0TmFtZSddLicgJy4kcm93WydMYXN0TmFtZSddOyB9OyBmdW5jdGlvbiBGaW5kQ2hpbGRyZW4oJHR5cGUsICRhcnJheSwgJHBhcmVudD0wLCAmJHJlc3VsdD1hcnJheSgpKSB7IGdsb2JhbCAkZGI7IGlmICggJHR5cGU9PSdDTUlEJyApIHsgJHJlc3VsdDIgPSAkZGItPnF1ZXJ5KCJTRUxFQ1QgQ01JRCBBUyBpZCwgUGFyZW50Q01JRCBBUyBwYXJlbnRfaWQgRlJPTSBpbnNfY29tbWl0bWVudHMgT1JERVIgQlkgQ29kZUNNIik7ICRhcnJheSA9IGFycmF5KCk7IHdoaWxlICgkcm93ID0gJGRiLT5mZXRjaEFzc29jKCRyZXN1bHQyKSkgeyAkYXJyYXlbXSA9ICRyb3c7IH0gJGRiLT5mcmVlUmVzdWx0KCRyZXN1bHQyKTsgfSBmb3JlYWNoKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkgeyBpZiAoaXNfbnVsbCgkdmFsdWVbJ3BhcmVudF9pZCddKSkgJHZhbHVlWydwYXJlbnRfaWQnXSA9IDA7IGlmICgkdmFsdWVbJ3BhcmVudF9pZCddID09ICRwYXJlbnQpIHsgJHJlc3VsdFtdID0gJHZhbHVlWydpZCddOyBGaW5kQ2hpbGRyZW4oJycsICRhcnJheSwgJHZhbHVlWydpZCddLCAkcmVzdWx0KTsgfSB9IHJldHVybiBAJHJlc3VsdDsgfSBmdW5jdGlvbiBPcmdhbiAoKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIk9yZ2FuTmFtZSIsICJPcmdhbkxvZ28iLCAiT3JnYW5BZGRyZXNzIiwgIk9yZ2FuVGVsIiwgIk9yZ2FuRmF4Iik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ29yZ2FuJyk7IGRlZmluZSggJ09yZ2FuTmFtZScsICRyb3dbJ09yZ2FuTmFtZSddICk7IGRlZmluZSggJ09yZ2FuTG9nbycsICRyb3dbJ09yZ2FuTG9nbyddICk7IGRlZmluZSggJ09yZ2FuQWRkcmVzcycsICRyb3dbJ09yZ2FuQWRkcmVzcyddICk7IGRlZmluZSggJ09yZ2FuVGVsJywgJHJvd1snT3JnYW5UZWwnXSApOyBkZWZpbmUoICdPcmdhbkZheCcsICRyb3dbJ09yZ2FuRmF4J10gKTsgfTsgZnVuY3Rpb24gT3JnYW5fUG9zdCAoJFBvc3RJRCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJGdWxsTmFtZSIsICJQb3N0IiwgIlNpZ25hdHVyZSIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdvcmdhbnBvc3QnLCAiT1BJRD0kUG9zdElEIik7ICRhcnIxID0gYXJyYXkoIkZ1bGxOYW1lIiA9PiAkcm93WydGdWxsTmFtZSddLCAiUG9zdCIgPT4gJHJvd1snUG9zdCddLCAiU2lnbmF0dXJlIiA9PiAkcm93WydTaWduYXR1cmUnXSk7IHJldHVybiAkYXJyMTsgfTsgZnVuY3Rpb24gQ2hlY2tCb3hfVXNlclN0YXR1cyAoJHZhbHVlLCAkVUlEKSB7ICRVbmlxID0gdW5pcWlkKCk7ICRvdXQgPSAnPGNlbnRlcj48ZGl2IGNsYXNzPSJSb3VuZGVkQ2hlY2tib3giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iU3RhdHVzW10iIGlkPSJTdGF0dXMnLiRVbmlxLiciIHZhbHVlPSInLiAkVUlEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjxsYWJlbCBmb3I9IlN0YXR1cycuJFVuaXEuJyI+PC9sYWJlbD48ZGl2PjwvZGl2PjwvZGl2PjwvY2VudGVyPic7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIFRhYmxlX2Jhc2VfcGVyc29uICgkdmFsdWUsICRVSUQpIHsgJG91dCA9ICIgKCBTRUxFQ1QgKiBGUk9NIGJhc2VfcGVyc29uIFdIRVJFIFBJRCBJTiAoU0VMRUNUIFBJRCBGUk9NIGJhc2VfcGVyc29uY2VudGVyX2FjY2VzcyBXSEVSRSBVSUQ9JF9TRVNTSU9OW2FkbWluaWRdKSBPUiBDZW50ZXJJRCBJTiAoU0VMRUNUIENlbnRlcklEIEZST00gYmFzZV9wZXJzb25jZW50ZXJfYWNjZXNzIFdIRVJFIFVJRD0kX1NFU1NJT05bYWRtaW5pZF0pIE9SIChTRUxFQ1QgSUYoKFNFTEVDVCBQQ0lEIEZST00gYmFzZV9wZXJzb25jZW50ZXJfYWNjZXNzIFdIRVJFIFBJRCBJUyBOVUxMIEFORCBDZW50ZXJJRCBJUyBOVUxMIEFORCBVSUQ9JF9TRVNTSU9OW2FkbWluaWRdKSwgMSwgMCkpICkgQVMgdGJCYXNlUGVyc29uICI7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIENoZWNrZWRfVXNlckFjY2VzcygkUGVySUQ9JycpIHsgZ2xvYmFsICRkYiwgJGJhY2s7IGlmICggIUAkUGVySUQgKSBAJFBlcklEID0gJF9SRVFVRVNUWydQSUQnXTsgaWYgKGlzX2FycmF5KCRQZXJJRCkpICRTdHJfUElEID0gJ1BJRCBJTiAoJy4gaW1wbG9kZSgnLCcsICRQZXJJRCkgLicpJzsgZWxzZSAkU3RyX1BJRCA9ICJQSUQ9JFBlcklEIjsgaWYgKCBAJFBlcklEICYmIEAkX0dFVFsnYWN0aW9uJ10hPSdVc2VyQWNjZXNzUGVyc29uQ2VudGVyJyApIHsgJHJvdzUwID0gJGRiLT5zZWxlY3RPbmUoYXJyYXkoIlBJRCIpLCAnYmFzZV9wZXJzb24nLCAkU3RyX1BJRC4iIEFORCAoIFBJRCBJTiAoU0VMRUNUIFBJRCBGUk9NIGJhc2VfcGVyc29uY2VudGVyX2FjY2VzcyBXSEVSRSBVSUQ9JF9TRVNTSU9OW2FkbWluaWRdKSBPUiBDZW50ZXJJRCBJTiAoU0VMRUNUIENlbnRlcklEIEZST00gYmFzZV9wZXJzb25jZW50ZXJfYWNjZXNzIFdIRVJFIFVJRD0kX1NFU1NJT05bYWRtaW5pZF0pIE9SIChTRUxFQ1QgSUYoKFNFTEVDVCBQQ0lEIEZST00gYmFzZV9wZXJzb25jZW50ZXJfYWNjZXNzIFdIRVJFIFBJRCBJUyBOVUxMIEFORCBDZW50ZXJJRCBJUyBOVUxMIEFORCBVSUQ9JF9TRVNTSU9OW2FkbWluaWRdKSwgMSwgMCkpICkiKTsgaWYgKCAhQCRyb3c1MFsnUElEJ10gKSB7ICRvdXQgPSAnINmF2KzZiNiyINiv2LPYqtix2LPbjCDYqNmHINin24zZhiDYudi22Ygg2KjYsdin24wg2LTZhdinINi12KfYr9ixINmG2LTYr9mHINin2LPYqi48YnI+PGJyPiA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+IDxhIGhyZWY9IicuIChAJGJhY2s/QCRiYWNrOlBBVEhfUk9PVCkgLiciIGNsYXNzPSJCb3hNc2dPSyI+2KjYp9iy2q/YtNiqPC9hPiAnOyBPdXRwdXRFcnJvcigkb3V0KTsgZXhpdCgpOyB9IH0gfSBmdW5jdGlvbiBTZXRfQWN0aXZlWWVhcnNfUGVyc29ubmVsICgpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiWUlEIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2VfeWVhcicsICJBY3RpdmVZZWFyc19QZXJzb25uZWw9MSIpOyAkX1NFU1NJT05bJ0FjdGl2ZVllYXJzX1BlcnNvbm5lbCddID0gJHJvd1snWUlEJ107IH07IGZ1bmN0aW9uIFNldF9BY3RpdmVZZWFyc19GYWN1bHR5ICgpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiWUlEIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2VfeWVhcicsICJBY3RpdmVZZWFyc19GYWN1bHR5PTEiKTsgJF9TRVNTSU9OWydBY3RpdmVZZWFyc19GYWN1bHR5J10gPSAkcm93WydZSUQnXTsgfTsgZnVuY3Rpb24gQ2hlY2tlZF9TZXRJdGVtWWVhciAoJFllYXJJRCwgJFR5cGVQZXJzb24pIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiWUlEIiwgIlllYXJUaXRsZSIpOyBpZiAoICEkZGItPnNlbGVjdE9uZVZhbHVlKCdEb21haW4nLCAnaG9rbV9jb25maWcnLCAiWUlEPSRZZWFySUQgQU5EIFR5cGVQZXJzb249JFR5cGVQZXJzb24iKSApIHJldHVybiAnPGJyPtii24zYqtmFINmH2KfbjCDYp9uM2YYg2LPYp9mEINiu2KfZhNuMINmF24wg2KjYp9i02K8uICjYrNmH2Kog2KraqdmF24zZhCDZhtmF2YjYr9mGINii24zYqtmFINmH2KfYjCDYp9iyINmF2YbZiNuMINiq2YbYuNuM2YXYp9iqINiz2KfZhNuM2KfZhtmHINin2LPYqtmB2KfYr9mHINmG2YXYp9uM24zYryknOyB9OyBmdW5jdGlvbiBDaGVja0JveF9NZW1iZXJQZXJzb25uZWwgKCR2YWx1ZSwgJFBJRCkgeyAkb3V0ID0gJyA8Y2VudGVyPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iTWVtYmVyUGVyc29ubmVsW10iIHZhbHVlPSInLiAkUElEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjwvY2VudGVyPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQSURbXSIgdmFsdWU9IicuICRQSUQgLiciPiAnOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBDaGVja0JveF9NZW1iZXJGYWN1bHR5ICgkdmFsdWUsICRQSUQpIHsgJG91dCA9ICcgPGNlbnRlcj48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Ik1lbWJlckZhY3VsdHlbXSIgdmFsdWU9IicuICRQSUQgLiciICcuICgkdmFsdWU9PTEgPyAnY2hlY2tlZCcgOiAnJyApIC4nIGNsYXNzPSJGaWVsZF9DaGVja0JveCI+PC9jZW50ZXI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlBJRFtdIiB2YWx1ZT0iJy4gJFBJRCAuJyI+ICc7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIFNhbmF2YXRfS2hlZG1hdCAoJERhdGVFc3Rla2hkYW0sICRPbGRTYW5hdmF0LCAkT2xkU2FuYXZhdFR5cGUsICREYXRlRXhlKSB7IEBsaXN0KCRzdGFydF95ZWFyLCAkc3RhcnRfbW9udGgsICRzdGFydF9kYXkpID0gZXhwbG9kZSgiLyIsICREYXRlRXN0ZWtoZGFtKTsgbGlzdCgkT2xkU2FuYXZhdF95ZWFyLCAkT2xkU2FuYXZhdF9tb250aCwgJE9sZFNhbmF2YXRfZGF5KSA9IGV4cGxvZGUoIi0iLCAkT2xkU2FuYXZhdCk7IEBsaXN0KCRlbmRfeWVhciwgJGVuZF9tb250aCwgJGVuZF9kYXkpID0gZXhwbG9kZSgiLyIsICREYXRlRXhlKTsgJHN0YXJ0ID0gJHN0YXJ0X3llYXIuJy8nLiRzdGFydF9tb250aC4nLycuJHN0YXJ0X2RheTsgJGVuZCA9ICRlbmRfeWVhci4nLycuJGVuZF9tb250aC4nLycuJGVuZF9kYXk7ICRkYXRlX2RpZmZfYXJyYXkgPSBkYXRlX2RpZmZlcmVuY2UoJGVuZCwgJHN0YXJ0KTsgaWYgKCAkT2xkU2FuYXZhdF95ZWFyIHx8ICRPbGRTYW5hdmF0X21vbnRoIHx8ICRPbGRTYW5hdmF0X2RheSApIHsgaWYgKCAkT2xkU2FuYXZhdFR5cGU9PTEgKSB7IGlmICggKCRkYXRlX2RpZmZfYXJyYXlbJ2RheSddKyRPbGRTYW5hdmF0X2RheSk8PTI5ICkgeyAkZGF0ZV9kaWZmX2FycmF5WydkYXknXSArPSAkT2xkU2FuYXZhdF9kYXk7IH0gZWxzZSB7ICRkYXRlX2RpZmZfYXJyYXlbJ21vbnRoJ10rKzsgJGRhdGVfZGlmZl9hcnJheVsnZGF5J10gPSAoJE9sZFNhbmF2YXRfZGF5ICsgJGRhdGVfZGlmZl9hcnJheVsnZGF5J10pIC0gMzA7IH0gaWYgKCAoJGRhdGVfZGlmZl9hcnJheVsnbW9udGgnXSskT2xkU2FuYXZhdF9tb250aCk8PTExICkgeyAkZGF0ZV9kaWZmX2FycmF5Wydtb250aCddICs9ICRPbGRTYW5hdmF0X21vbnRoOyB9IGVsc2UgeyAkZGF0ZV9kaWZmX2FycmF5Wyd5ZWFyJ10rKzsgJGRhdGVfZGlmZl9hcnJheVsnbW9udGgnXSA9ICgkT2xkU2FuYXZhdF9tb250aCArICRkYXRlX2RpZmZfYXJyYXlbJ21vbnRoJ10pIC0gMTI7IH0gJGRhdGVfZGlmZl9hcnJheVsneWVhciddICs9ICRPbGRTYW5hdmF0X3llYXI7IH0gaWYgKCAkT2xkU2FuYXZhdFR5cGU9PTIgKSB7IGlmICggKCRkYXRlX2RpZmZfYXJyYXlbJ2RheSddLSRPbGRTYW5hdmF0X2RheSk+PTAgKSB7ICRkYXRlX2RpZmZfYXJyYXlbJ2RheSddIC09ICRPbGRTYW5hdmF0X2RheTsgfSBlbHNlIHsgJGRhdGVfZGlmZl9hcnJheVsnbW9udGgnXS0tOyAkZGF0ZV9kaWZmX2FycmF5WydkYXknXSA9IDMwIC0gKCRPbGRTYW5hdmF0X2RheSAtICRkYXRlX2RpZmZfYXJyYXlbJ2RheSddKTsgfSBpZiAoICgkZGF0ZV9kaWZmX2FycmF5Wydtb250aCddLSRPbGRTYW5hdmF0X21vbnRoKT49MCApIHsgJGRhdGVfZGlmZl9hcnJheVsnbW9udGgnXSAtPSAkT2xkU2FuYXZhdF9tb250aDsgfSBlbHNlIHsgJGRhdGVfZGlmZl9hcnJheVsneWVhciddLS07ICRkYXRlX2RpZmZfYXJyYXlbJ21vbnRoJ10gPSAxMiAtICgkT2xkU2FuYXZhdF9tb250aCAtICRkYXRlX2RpZmZfYXJyYXlbJ21vbnRoJ10pOyB9ICRkYXRlX2RpZmZfYXJyYXlbJ3llYXInXSAtPSAkT2xkU2FuYXZhdF95ZWFyOyB9IH0gcmV0dXJuICRkYXRlX2RpZmZfYXJyYXk7IH07IGZ1bmN0aW9uIGRhdGVfZGlmZmVyZW5jZSAoJGVuZCwgJHN0YXJ0LCAkSW5EYXlzPWZhbHNlKSB7IGxpc3QoJGVuZF95ZWFyLCAkZW5kX21vbnRoLCAkZW5kX2RheSkgPSBleHBsb2RlKCIvIiwgJGVuZCk7IGxpc3QoJHN0YXJ0X3llYXIsICRzdGFydF9tb250aCwgJHN0YXJ0X2RheSkgPSBleHBsb2RlKCIvIiwgJHN0YXJ0KTsgaWYgKCAkSW5EYXlzPT10cnVlICkgeyAkZW5kID0gam1rdGltZSgwLDAsMCwkZW5kX21vbnRoLCRlbmRfZGF5LCRlbmRfeWVhcik7ICRzdGFydCA9IGpta3RpbWUoMCwwLDAsJHN0YXJ0X21vbnRoLCRzdGFydF9kYXksJHN0YXJ0X3llYXIpOyAkdGVtcCA9ICRlbmQgLSAkc3RhcnQ7ICRkaWZmID0gKGludCkoJHRlbXAgLyA4NjQwMCk7IH0gZWxzZSB7IGlmICgkZW5kIDwgJHN0YXJ0KSByZXR1cm4gZmFsc2U7IGlmICgkZW5kX2RheSA+PSAkc3RhcnRfZGF5KSB7ICRkaWZmWydkYXknXSA9ICRlbmRfZGF5IC0gJHN0YXJ0X2RheTsgfSBlbHNlIHsgJGVuZF9tb250aC0tOyAkdGVtcCA9IGpta3RpbWUoMCwwLDAsJHN0YXJ0X21vbnRoLCRzdGFydF9kYXksJHN0YXJ0X3llYXIpOyAkZGlmZlsnZGF5J10gPSBqZGF0ZSgidCIsJHRlbXAsJycsJycsJ2VuJykgLSAkc3RhcnRfZGF5ICsgJGVuZF9kYXk7IH0gaWYgKCRlbmRfbW9udGggPj0gJHN0YXJ0X21vbnRoKSB7ICRkaWZmWydtb250aCddID0gJGVuZF9tb250aCAtICRzdGFydF9tb250aDsgfSBlbHNlIHsgJGVuZF95ZWFyLS07ICRkaWZmWydtb250aCddID0gMTIgLSAkc3RhcnRfbW9udGggKyAkZW5kX21vbnRoOyB9ICRkaWZmWyd5ZWFyJ10gPSAkZW5kX3llYXIgLSAkc3RhcnRfeWVhcjsgfSByZXR1cm4gJGRpZmY7IH0gZnVuY3Rpb24gTGFzdERlZ3JlZSAoJFBJRCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJTSUQiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnYmFzZV9zdHVkeXNwZWNzJywgIlBJRD0kUElEIiwgJ0RhdGVPZmYgREVTQywgU0lEIERFU0MnKTsgcmV0dXJuICRyb3dbJ1NJRCddOyB9OyBmdW5jdGlvbiBQcmludF9EZWdyZWUgKCRzaWQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiRGVncmVlIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2Vfc3R1ZHlzcGVjcycsICJTSUQ9JHNpZCIpOyByZXR1cm4gJHJvd1snRGVncmVlJ107IH07IGZ1bmN0aW9uIEVxdWFsX0RlZ3JlZSAoJGRlZ3JlZSkgeyAkb3V0ID0gZmFsc2U7IGlmICggJGRlZ3JlZT09MSApICRvdXQgPSAzOyBpZiAoICRkZWdyZWU9PTIgKSAkb3V0ID0gNDsgaWYgKCAkZGVncmVlPT0zICkgJG91dCA9IDU7IGlmICggJGRlZ3JlZT09NCApICRvdXQgPSA2OyBpZiAoICRkZWdyZWU9PTUgKSAkb3V0ID0gMTsgaWYgKCAkZGVncmVlPT02ICkgJG91dCA9IDI7IGlmICggJGRlZ3JlZT09NyApICRvdXQgPSAzOyBpZiAoICRkZWdyZWU9PTggKSAkb3V0ID0gNDsgaWYgKCAkZGVncmVlPT05ICkgJG91dCA9IDU7IGlmICggJGRlZ3JlZT09MTAgKSAkb3V0ID0gNjsgcmV0dXJuICRvdXQ7IH07IGZ1bmN0aW9uIE9uZUhvdXIgKCRCYXNlU2FsYXJ5LCAkU3BlY2lhbCkgeyByZXR1cm4gT3V0cHV0X051bWJlciggcm91bmQoICgkQmFzZVNhbGFyeSskU3BlY2lhbCkvNTAgKSApOyB9IGZ1bmN0aW9uIFN0YXRlX1R5cGVFc3Rla2hkYW0gKCRQSUQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiVHlwZUVzdGVraGRhbSIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX29yZ2Fuc3BlY3MnLCAiUElEPSRQSUQiKTsgcmV0dXJuIFR5cGVFc3Rla2hkYW0oJHJvd1snVHlwZUVzdGVraGRhbSddKTsgfTsgZnVuY3Rpb24gU3RhdGVfVHlwZUVzdGVraGRhbV9lbG1pICgkUElEKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIlR5cGVFc3Rla2hkYW0iKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnYmFzZV9vcmdhbnNwZWNzX2VsbWknLCAiUElEPSRQSUQiKTsgcmV0dXJuIFR5cGVFc3Rla2hkYW1fZWxtaSgkcm93WydUeXBlRXN0ZWtoZGFtJ10pOyB9OyBmdW5jdGlvbiBHZXRfQ29udHJhY3RvciAoJHRjaWQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiQWphbnNOYW1lIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ3RyYW5zX2NvbnRyYWN0b3InLCAiVENJRD0kdGNpZCIpOyByZXR1cm4gJHJvd1snQWphbnNOYW1lJ107IH07IGZ1bmN0aW9uIFNldF9BY3RpdmVZZWFyc19TdXBwbGllciAoKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIllJRCIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX3llYXInLCAiQWN0aXZlWWVhcnNfU3VwcGxpZXI9MSIpOyAkX1NFU1NJT05bJ0FjdGl2ZVllYXJzX1N1cHBsaWVyJ10gPSAkcm93WydZSUQnXTsgJGFycjEgPSBhcnJheSgiUklEIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ3N1cF9yZXZvbHZpbmdmdW5kJywgIlVJRD0kX1NFU1NJT05bYWRtaW5pZF0iKTsgJF9TRVNTSU9OWydSSUQnXSA9ICRyb3dbJ1JJRCddOyB9OyBmdW5jdGlvbiBTZXRfUmV2b2x2aW5nRnVuZCAoJFJJRD0nREInKSB7IGlmICgkUklEPT0nREInKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIlJJRCIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdzdXBfcmV2b2x2aW5nZnVuZCcsICJVSUQ9JF9TRVNTSU9OW2FkbWluaWRdIik7ICRfU0VTU0lPTlsnUklEJ10gPSAkcm93WydSSUQnXTsgfSBlbHNlICRfU0VTU0lPTlsnUklEJ10gPSAkUklEOyB9OyBmdW5jdGlvbiBHZXRfUmV2b2x2aW5nRnVuZCAoKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIk5hbWUiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnc3VwX3Jldm9sdmluZ2Z1bmQnLCAiUklEPSRfU0VTU0lPTltSSURdIik7IHJldHVybiAkcm93WydOYW1lJ107IH07IGZ1bmN0aW9uIEdldF9UaXRsZVllYXIgKCRZSUQ9JycpIHsgaWYgKGVtcHR5KCRZSUQpKSAkWUlEID0gJF9TRVNTSU9OWydBY3RpdmVZZWFyc19TdXBwbGllciddOyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJZZWFyVGl0bGUiKTsgJHJvdzEgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2VfeWVhcicsICJZSUQ9JFlJRCIpOyByZXR1cm4gJHJvdzFbJ1llYXJUaXRsZSddOyB9OyBmdW5jdGlvbiBHZXRfQ29tcGFueU5hbWUgKCRzaWQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiQ29tcGFueU5hbWUiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnc3VwX3NhbGVzbWFuJywgIlJJRD0kX1NFU1NJT05bUklEXSBBTkQgU0lEPSRzaWQiKTsgcmV0dXJuICRyb3dbJ0NvbXBhbnlOYW1lJ107IH07IGZ1bmN0aW9uIEdldF9OdW1MaXN0ICgkSUlEKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIllJRCIsICJTdGF0dXNMaXN0IiwgIk51bUxpc3QiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnc3VwX2ludm9pY2UnLCAiUklEPSRfU0VTU0lPTltSSURdIEFORCBJSUQ9JElJRCIpOyBpZiAoICRyb3dbJ1N0YXR1c0xpc3QnXT09MSApIHsgJGFycjIgPSBhcnJheSgiTnVtIik7ICRyb3cyID0gJGRiLT5zZWxlY3RPbmUoJGFycjIsICdzdXBfc3VtbWFyeV9mdW5kJywgIlJJRD0kX1NFU1NJT05bUklEXSBBTkQgWUlEPSRyb3dbWUlEXSBBTkQgU0ZJRD0kcm93W051bUxpc3RdIik7ICRvdXQgPSAkcm93MlsnTnVtJ107IH0gZWxzZSBpZiAoICRyb3dbJ1N0YXR1c0xpc3QnXT09MiApIHsgJGFycjIgPSBhcnJheSgiTnVtIik7ICRyb3cyID0gJGRiLT5zZWxlY3RPbmUoJGFycjIsICdzdXBfc3VtbWFyeV9wYXlhYmxlJywgIlJJRD0kX1NFU1NJT05bUklEXSBBTkQgWUlEPSRyb3dbWUlEXSBBTkQgU1BJRD0kcm93W051bUxpc3RdIik7ICRvdXQgPSAkcm93MlsnTnVtJ107IH0gZWxzZSAkb3V0ID0gMDsgcmV0dXJuICRvdXQ7IH07IGZ1bmN0aW9uIEdldF9MaW5rSW52b2ljZSAoJElJRCkgeyByZXR1cm4gJzxhIGhyZWY9IicuIFBBVEhfUk9PVCAuJ3N1cHBsaWVyL3N1cF9pbnZvaWNlX2VkaXQucGhwP0lJRD0nLiAkSUlEIC4nIj7ZhNuM2YbaqTwvYT4nOyB9OyBmdW5jdGlvbiBHZXRfQm9va09mQWNjb3VudF9NZW1iZXJOYW1lICgkYm1pZCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJNZW1iZXJOYW1lIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ3N1cF9ib29rb2ZhY2NvdW50X21lbWJlcicsICJSSUQ9JF9TRVNTSU9OW1JJRF0gQU5EIEJNSUQ9JGJtaWQiKTsgcmV0dXJuICRyb3dbJ01lbWJlck5hbWUnXTsgfTsgZnVuY3Rpb24gU2V0X0FjdGl2ZVllYXJzX0luc3VyYW5jZSAoJFlJRD0nJykgeyBpZiAoQCRZSUQpICRTdHJXaGVyZSA9ICdZSUQ9Jy4kWUlEOyBlbHNlICRTdHJXaGVyZSA9ICdBY3RpdmVZZWFyc19JbnN1cmFuY2U9MSc7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIllJRCIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX3llYXInLCAkU3RyV2hlcmUpOyAkX1NFU1NJT05bJ0FjdGl2ZVllYXJzX0luc3VyYW5jZSddID0gJHJvd1snWUlEJ107IH07IGZ1bmN0aW9uIENoZWNrQm94X01lbWJlckluc3VyYW5jZSAoJHZhbHVlLCAkUElELCAkRElEKSB7ICRVbmlxID0gdW5pcWlkKCk7ICRvdXQgPSAnPGNlbnRlcj48ZGl2IGNsYXNzPSJSb3VuZGVkQ2hlY2tib3giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iTWVtYmVySW5zdXJhbmNlW10iIGlkPSJNZW1iZXJJbnN1cmFuY2UnLiRVbmlxLiciIHZhbHVlPSInLiAkUElEIC4nIiBkYXRhLURJRD0iJy4gJERJRCAuJyIgJy4gKCR2YWx1ZT09MSA/ICdjaGVja2VkJyA6ICcnICkgLicgY2xhc3M9IkZpZWxkX0NoZWNrQm94Ij48bGFiZWwgZm9yPSJNZW1iZXJJbnN1cmFuY2UnLiRVbmlxLiciPjwvbGFiZWw+PGRpdj48L2Rpdj48L2Rpdj48L2NlbnRlcj4nOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBHZXRfRGVwZW5kZW50TmFtZSAoJERJRCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJGaXJzdE5hbWUiLCAiTGFzdE5hbWUiLCAiRGVwZW5kZW5jZSIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX2RlcGVuZGVudCcsICJESUQ9JERJRCIpOyBpZiAoICRkYi0+Y291bnRSb3dzKCkhPTAgKSByZXR1cm4gJHJvd1snRmlyc3ROYW1lJ10uJyAnLiRyb3dbJ0xhc3ROYW1lJ10uJyAtICcuIERlcGVuZGVuY2UoJHJvd1snRGVwZW5kZW5jZSddKTsgZWxzZSByZXR1cm4gJ9io24zZhdmHINi02K/ZhyDYp9i12YTbjCc7IH07IGZ1bmN0aW9uIENvbW1pdG1lbnRSZW1haW5lZCAoJFlJRCwgJFBJRCwgJERJRCwgJENNSUQpIHsgZ2xvYmFsICRkYjsgJHF1ZXJ5X3N0cjUgPSBzcHJpbnRmKCIgU0VMRUNUIHQxLkNNSUQsIElGKHQxLlN0YXR1c0NNPTMsIChTRUxFQ1QgQ09VTlQoRElEKSsxIEZST00gYmFzZV9kZXBlbmRlbnQgV0hFUkUgTWVtYmVySW5zdXJhbmNlPScxJyBBTkQgUElEPSVzKSp0MS5BbW91bnRDTSwgdDEuQW1vdW50Q00pIEFTIEFtb3VudENNLCB0MS5TdGF0dXNDTSBGUk9NIGluc19jb21taXRtZW50cyBBUyB0MSBXSEVSRSBDTUlEPShTRUxFQ1QgSUYodGIxLlBhcmVudENNSUQgSVMgTlVMTCwgdGIxLkNNSUQsIChTRUxFQ1QgSUYodGIyLlBhcmVudENNSUQgSVMgTlVMTCwgdGIyLkNNSUQsIChTRUxFQ1QgdGIzLkNNSUQgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIzIFdIRVJFIHRiMi5QYXJlbnRDTUlEPXRiMy5DTUlEKSkgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIyIFdIRVJFIHRiMS5QYXJlbnRDTUlEPXRiMi5DTUlEKSkgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIxIFdIRVJFIHRiMS5DTUlEPSVzKSAiLCAkUElELCAkQ01JRCApOyBAJHJlc3VsdF9zdHI1ID0gJGRiLT5xdWVyeSgkcXVlcnlfc3RyNSk7ICRyb3dfc3RyNSA9ICRkYi0+ZmV0Y2hBc3NvYygkcmVzdWx0X3N0cjUpOyAkQ01JRF9TID0gaW1wbG9kZSgnLCcsIGFycmF5X21lcmdlKGFycmF5KCRyb3dfc3RyNVsnQ01JRCddKSwgRmluZENoaWxkcmVuKCdDTUlEJywgYXJyYXkoKSwgJHJvd19zdHI1WydDTUlEJ10pKSk7IGlmICggJHJvd19zdHI1WydTdGF0dXNDTSddPT0yICkgJFN0ckRJRCA9ICdBTkQgdDEuRElEICcuICggJERJRD09MCA/ICdJUyBOVUxMJyA6ICc9ICcuJERJRCApOyBlbHNlICRTdHJESUQgPSAnJzsgJHF1ZXJ5X3N0cjYgPSBzcHJpbnRmKCIgU0VMRUNUIFNVTSh0Mi5BbW91bnRQYWlkKSBBUyBDb25zdW1lZCBGUk9NIGluc19wcmVzY3JpcHRpb24gQVMgdDEsIGluc19wcmVzY3JpcHRpb25faXRlbXMgQVMgdDIgV0hFUkUgdDEuUFNJRCA9IHQyLlBTSUQgICRTdHJESUQgQU5EIHQxLllJRCA9ICVzIEFORCB0MS5QSUQgPSAlcyBBTkQgKFN0YXR1c1BheT0xIE9SIFN0YXR1c1BheT0yKSBBTkQgdDIuQ01JRCBJTiAoJXMpIiwgJFlJRCwgJFBJRCwgJENNSURfUyApOyBAJHJlc3VsdF9zdHI2ID0gJGRiLT5xdWVyeSgkcXVlcnlfc3RyNik7IEAkcm93X3N0cjYgPSAkZGItPmZldGNoQXNzb2MoJHJlc3VsdF9zdHI2KTsgJFJlbWFpbmluZyA9ICRyb3dfc3RyNVsnQW1vdW50Q00nXSAtICRyb3dfc3RyNlsnQ29uc3VtZWQnXTsgcmV0dXJuICRSZW1haW5pbmc7IH07IGZ1bmN0aW9uIENvbW1pdG1lbnRTdGF0dXNfV2FpdGluZ1BlcmlvZCAoJFlJRCwgJFBJRCwgJERJRCwgJENNSUQsICREYXRlQ3VycmVudCkgeyBnbG9iYWwgJGRiOyAkcXVlcnlfc3RyNSA9IHNwcmludGYoIiBTRUxFQ1QgdDEuQ01JRCwgdDEuU3RhdHVzQ00sIHQxLldhaXRpbmdQZXJpb2RDTSBGUk9NIGluc19jb21taXRtZW50cyBBUyB0MSBXSEVSRSBDTUlEPShTRUxFQ1QgSUYodGIxLlBhcmVudENNSUQgSVMgTlVMTCwgdGIxLkNNSUQsIChTRUxFQ1QgSUYodGIyLlBhcmVudENNSUQgSVMgTlVMTCwgdGIyLkNNSUQsIChTRUxFQ1QgdGIzLkNNSUQgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIzIFdIRVJFIHRiMi5QYXJlbnRDTUlEPXRiMy5DTUlEKSkgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIyIFdIRVJFIHRiMS5QYXJlbnRDTUlEPXRiMi5DTUlEKSkgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIxIFdIRVJFIHRiMS5DTUlEPSVzKSAiLCAkQ01JRCApOyBAJHJlc3VsdF9zdHI1ID0gJGRiLT5xdWVyeSgkcXVlcnlfc3RyNSk7ICRyb3dfc3RyNSA9ICRkYi0+ZmV0Y2hBc3NvYygkcmVzdWx0X3N0cjUpOyBpZiAoJHJvd19zdHI1WydXYWl0aW5nUGVyaW9kQ00nXSkgeyAkQ01JRF9TID0gaW1wbG9kZSgnLCcsIGFycmF5X21lcmdlKGFycmF5KCRyb3dfc3RyNVsnQ01JRCddKSwgRmluZENoaWxkcmVuKCdDTUlEJywgYXJyYXkoKSwgJHJvd19zdHI1WydDTUlEJ10pKSk7IGlmICggJHJvd19zdHI1WydTdGF0dXNDTSddPT0yICkgJFN0ckRJRCA9ICdBTkQgdDEuRElEICcuICggJERJRD09MCA/ICdJUyBOVUxMJyA6ICc9ICcuJERJRCApOyBlbHNlICRTdHJESUQgPSAnJzsgJHF1ZXJ5X3N0cjYgPSBzcHJpbnRmKCIgU0VMRUNUIERhdGUgRlJPTSBpbnNfcHJlc2NyaXB0aW9uIEFTIHQxLCBpbnNfcHJlc2NyaXB0aW9uX2l0ZW1zIEFTIHQyIFdIRVJFIHQxLlBTSUQgPSB0Mi5QU0lEICAkU3RyRElEIEFORCB0MS5ZSUQgPSAlcyBBTkQgdDEuUElEID0gJXMgQU5EIChTdGF0dXNQYXk9MSBPUiBTdGF0dXNQYXk9MikgQU5EIHQyLkNNSUQgSU4gKCVzKSIsICRZSUQsICRQSUQsICRDTUlEX1MgKTsgQCRyZXN1bHRfc3RyNiA9ICRkYi0+cXVlcnkoJHF1ZXJ5X3N0cjYpOyAkcm93X3N0cjYgPSAkZGItPmZldGNoQXNzb2MoJHJlc3VsdF9zdHI2KTsgaWYgKCAkZGItPmNvdW50Um93cygkcmVzdWx0X3N0cjYpPjAgKSB7IEAkRGF0ZUN1cnJlbnQgPSBDaGVja0NvbnZEYXRlKCREYXRlQ3VycmVudCk7IGlmICggQCRyb3dfc3RyNlsnRGF0ZSddICYmIEAkRGF0ZUN1cnJlbnQgKSB7ICRkYXlfZGlmZiA9IGFicyhkYXRlX2RpZmZlcmVuY2UoJERhdGVDdXJyZW50LCAkcm93X3N0cjZbJ0RhdGUnXSwgdHJ1ZSkpOyBpZiAoICRkYXlfZGlmZjw9JHJvd19zdHI1WydXYWl0aW5nUGVyaW9kQ00nXSApIHJldHVybiB0cnVlOyBlbHNlIHJldHVybiBmYWxzZTsgfSBlbHNlIHJldHVybiB0cnVlOyB9IGVsc2UgcmV0dXJuIGZhbHNlOyB9IGVsc2UgcmV0dXJuIGZhbHNlOyB9OyBmdW5jdGlvbiBBZ2VfQ2FsY3VsYXRlICgkRGF0ZUJpcnRoLCAkRGF0ZUN1cnJlbnQsICR0eXBlPTEpIHsgQCREYXRlQmlydGggPSBDaGVja0NvbnZEYXRlKCREYXRlQmlydGgpOyBAJERhdGVDdXJyZW50ID0gQ2hlY2tDb252RGF0ZSgkRGF0ZUN1cnJlbnQpOyBpZiAoIEAkRGF0ZUJpcnRoICYmIEAkRGF0ZUN1cnJlbnQgKSB7ICRkYXRlX2RpZmYgPSBkYXRlX2RpZmZlcmVuY2UoJERhdGVDdXJyZW50LCAkRGF0ZUJpcnRoKTsgaWYgKCAkdHlwZT09MSApIHJldHVybiAkZGF0ZV9kaWZmOyBlbHNlIHJldHVybiAkZGF0ZV9kaWZmWyd5ZWFyJ10uJyDYs9in2YQg2YggJy4kZGF0ZV9kaWZmWydtb250aCddLicg2YXYp9mHINmIICcuJGRhdGVfZGlmZlsnZGF5J10uJyDYsdmI2LInOyB9IGVsc2UgeyBpZiAoICR0eXBlPT0xICkgcmV0dXJuIGZhbHNlOyBlbHNlIHJldHVybiAn2KrYp9ix24zYriDYqtmI2YTYryDYrtin2YTbjCDYp9iz2KouJzsgfSB9OyBmdW5jdGlvbiBDaGVja0JveF9QU0lEICgkdmFsdWUsICRQU0lEKSB7ICRvdXQgPSAnPGNlbnRlcj48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlBTSURbXSIgdmFsdWU9IicuICRQU0lEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjwvY2VudGVyPic7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIFNldF9BY3RpdmVZZWFyc19GYWN1bHR5RXZhbCAoKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIllJRCIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX3llYXInLCAiQWN0aXZlWWVhcnNfRmFjdWx0eUV2YWw9MSIpOyAkX1NFU1NJT05bJ0FjdGl2ZVllYXJzX0ZhY3VsdHlFdmFsJ10gPSAkcm93WydZSUQnXTsgfTsgZnVuY3Rpb24gQ2hlY2tCb3hfTWVtYmVyRXZhbHVhdGlvbiAoJHZhbHVlLCAkUElEKSB7ICRvdXQgPSAnIDxjZW50ZXI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJNZW1iZXJFdmFsdWF0aW9uW10iIHZhbHVlPSInLiAkUElEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjwvY2VudGVyPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQSURbXSIgdmFsdWU9IicuICRQSUQgLiciPiAnOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBDaGVja0JveF9NZW1iZXJMb2FuICgkdmFsdWUsICRQSUQpIHsgJG91dCA9ICcgPGNlbnRlcj48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Ik1lbWJlckxvYW5bXSIgdmFsdWU9IicuICRQSUQgLiciICcuICgkdmFsdWU9PTEgPyAnY2hlY2tlZCcgOiAnJyApIC4nIGNsYXNzPSJGaWVsZF9DaGVja0JveCI+PC9jZW50ZXI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlBJRFtdIiB2YWx1ZT0iJy4gJFBJRCAuJyI+ICc7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIEdldExvYW5QZXJzb25uZWxTdGF0dXMgKCRQSUQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiTWVtYmVyUGVyc29ubmVsIiwgIk1lbWJlckZhY3VsdHkiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnYmFzZV9wZXJzb24nLCAiUElEPSRQSUQiKTsgJHJlc3VsdDIgPSAkZGItPnF1ZXJ5KCJTRUxFQ1QgSUYoTWVtYmVyUGVyc29ubmVsPTEsIDEsIDIpIEFTIFBlcnNvbm5lbFR5cGUsIE1heEludHJvZHVjdGlvbiwgTWF4V2FycmFudHkgLCAoTWF4SW50cm9kdWN0aW9uIC0gKFNFTEVDVCBJRk5VTEwoU1VNKHQzLkxvYW5BbW91bnQpLDApIEZST00gbG9hbl9pbnRyb2R1Y3Rpb24gQVMgdDMgV0hFUkUgdDMuU3RhdHVzPTEgQU5EIHQxLlBJRD10My5QSUQpKSBBUyBSZW1haW5lZEludHJvZHVjdGlvbiAsIChNYXhXYXJyYW50eSAtIChTRUxFQ1QgSUZOVUxMKFNVTSh0NC5Mb2FuQW1vdW50KSwwKSBGUk9NIGxvYW5fd2FycmFudHkgQVMgdDQgV0hFUkUgdDQuU3RhdHVzPTEgQU5EIHQxLlBJRD10NC5QSUQpKSBBUyBSZW1haW5lZFdhcnJhbnR5IEZST00gYmFzZV9wZXJzb24gQVMgdDEgTEVGVCBKT0lOIGxvYW5fbWF4aW11bSBBUyB0MiBPTiAoTWF4VHlwZT1JRihNZW1iZXJQZXJzb25uZWw9MSwgMSwgMikpIFdIRVJFIHQxLlBJRD0kUElEIik7ICRhcnJheSA9IGFycmF5KCk7IHdoaWxlICgkcm93ID0gJGRiLT5mZXRjaEFzc29jKCRyZXN1bHQyKSkgeyAkYXJyYXlbJ1BlcnNvbm5lbFR5cGUnXSA9ICRyb3dbJ1BlcnNvbm5lbFR5cGUnXTsgJGFycmF5WydNYXhJbnRyb2R1Y3Rpb24nXSA9ICRyb3dbJ01heEludHJvZHVjdGlvbiddOyAkYXJyYXlbJ01heFdhcnJhbnR5J10gPSAkcm93WydNYXhXYXJyYW50eSddOyAkYXJyYXlbJ1JlbWFpbmVkSW50cm9kdWN0aW9uJ10gPSAkcm93WydSZW1haW5lZEludHJvZHVjdGlvbiddOyAkYXJyYXlbJ1JlbWFpbmVkV2FycmFudHknXSA9ICRyb3dbJ1JlbWFpbmVkV2FycmFudHknXTsgfSAkZGItPmZyZWVSZXN1bHQoJHJlc3VsdDIpOyByZXR1cm4gJGFycmF5OyB9IGZ1bmN0aW9uIFNldF9BY3RpdmVZZWFyc19GaXNoICgpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiWUlEIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2VfeWVhcicsICJBY3RpdmVZZWFyc19GaXNoPTEiKTsgJF9TRVNTSU9OWydBY3RpdmVZZWFyc19GaXNoJ10gPSAkcm93WydZSUQnXTsgfTsgZnVuY3Rpb24gQ2hlY2tCb3hfTWVtYmVyRmlzaCAoJHZhbHVlLCAkUElEKSB7ICRvdXQgPSAnIDxjZW50ZXI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJNZW1iZXJGaXNoW10iIHZhbHVlPSInLiAkUElEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjwvY2VudGVyPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQSURbXSIgdmFsdWU9IicuICRQSUQgLiciPiAnOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBDaGVja0JveF9NZW1iZXJGb29kICgkdmFsdWUsICRQSUQpIHsgJFVuaXEgPSB1bmlxaWQoKTsgJG91dCA9ICc8Y2VudGVyPjxkaXYgY2xhc3M9IlJvdW5kZWRDaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJNZW1iZXJGb29kW10iIGlkPSJNZW1iZXJGb29kJy4kVW5pcS4nIiB2YWx1ZT0iJy4gJFBJRCAuJyIgJy4gKCR2YWx1ZT09MSA/ICdjaGVja2VkJyA6ICcnICkgLicgY2xhc3M9IkZpZWxkX0NoZWNrQm94Ij48bGFiZWwgZm9yPSJNZW1iZXJGb29kJy4kVW5pcS4nIj48L2xhYmVsPjxkaXY+PC9kaXY+PC9kaXY+PC9jZW50ZXI+JzsgcmV0dXJuICRvdXQ7IH0gZnVuY3Rpb24gU2VsZWN0Qm94X0ZHcnBJRCAoJHZhbHVlLCAkUElEKSB7ICRvdXQgPSAnIDxjZW50ZXI+IDxzZWxlY3QgbmFtZT0iRkdycElEW10iIGNsYXNzPSJGaWVsZF9TaXplMSIgZGF0YS1waWQ9IicuICRQSUQgLiciPiA8b3B0aW9uIHZhbHVlPSIwIj4tLS08L29wdGlvbj4gJy4gU2VsZWN0X0Zyb21EQignRnJvbURCJywgJ2Zvb2RfZ3JvdXAnLCAnRkdycElEJywgJ0ZHcnBUaXRsZScsICcnLCAnRkdycElEIEFTQycsIEAkdmFsdWUpIC4nIDwvc2VsZWN0PiA8L2NlbnRlcj4gJzsgcmV0dXJuICRvdXQ7IH0gZnVuY3Rpb24gU2VsZWN0Qm94X1Jlc2VydmVDb3VudCAoJHZhbHVlLCAkUElELCAkRk1QbGFuSUQsICRGb29kSUQsICRTdGF0dXNEZWxpdmVyeSkgeyBpZiAoICRTdGF0dXNEZWxpdmVyeT09MSApICRvdXQgPSAnPGNlbnRlcj5b2KrYrdmI24zZhCDYtNiv2YddICZ0aW1lczsgJy5AJHZhbHVlLic8L2NlbnRlcj4nOyBlbHNlIHsgZ2xvYmFsICRkYjsgJFN0clF1ZXJ5ID0gIlNFTEVDVCBGR3JwQ291bnRQZXJzb24rRkdycENvdW50U3Vic2lkeSBBUyBGb29kQ291bnQgRlJPTSBiYXNlX3BlcnNvbiBBUyB0YjEsIGZvb2RfZ3JvdXAgQVMgdGIyIFdIRVJFIHRiMS5GR3JwSUQ9dGIyLkZHcnBJRCBBTkQgUElEPSRQSUQiOyAkcmVzdWx0ID0gJGRiLT5xdWVyeSgkU3RyUXVlcnkpOyAkcm93ID0gJGRiLT5mZXRjaEFzc29jKCRyZXN1bHQpOyAkb3V0ID0gJyA8Y2VudGVyPiA8c2VsZWN0IG5hbWU9IlJlc2VydmVDb3VudFtdIiBjbGFzcz0iRmllbGRfU2l6ZTEiIGRhdGEtdmFsdWU9IicuIEAkdmFsdWUgLiciIGRhdGEtcGlkPSInLiAkUElEIC4nIiBkYXRhLWZtcGxhbmlkPSInLiAkRk1QbGFuSUQgLiciIGRhdGEtZm9vZGlkPSInLiAkRm9vZElEIC4nIj4gPG9wdGlvbiB2YWx1ZT0iMCI+LS0tPC9vcHRpb24+ICc7IGZvcigkaT0xOyAkaTw9JHJvd1snRm9vZENvdW50J107ICRpKyspIHsgJG91dCAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4kaS4nIiAnLigkaT09JHZhbHVlPydzZWxlY3RlZCc6JycpLic+Jy4kaS4nPC9vcHRpb24+JzsgfSAkb3V0IC49ICcgPC9zZWxlY3Q+IDwvY2VudGVyPiAnOyB9IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIENoZWNrQm94X1N0YXR1c0RlbGl2ZXJ5ICgkdmFsdWUsICRQSUQsICRSZXNlcnZlSUQsICRGb29kSUQpIHsgJFVuaXEgPSB1bmlxaWQoKTsgJG91dCA9ICc8Y2VudGVyPjxkaXYgY2xhc3M9IlJvdW5kZWRDaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJTdGF0dXNEZWxpdmVyeVtdIiBpZD0iU3RhdHVzRGVsaXZlcnknLiRVbmlxLiciIHZhbHVlPSInLiAkUElEIC4nIiBkYXRhLXJlc2VydmVpZD0iJy4gJFJlc2VydmVJRCAuJyIgZGF0YS1mb29kaWQ9IicuICRGb29kSUQgLiciICcuICgkdmFsdWU9PTEgPyAnY2hlY2tlZCcgOiAnJyApIC4nIGNsYXNzPSJGaWVsZF9DaGVja0JveCI+PGxhYmVsIGZvcj0iU3RhdHVzRGVsaXZlcnknLiRVbmlxLiciPjwvbGFiZWw+PGRpdj48L2Rpdj48L2Rpdj48L2NlbnRlcj4nOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBSZXNlcnZlQ2FuY2VsICgkUmVzZXJ2ZUlELCAkRk1QbGFuSUQsICRQSUQsICRGb29kSUQsICRSZXNlcnZlRGF0ZSwgJE1lYWxJRCwgJFJlc2VydmVDb3VudCwgJFJlc2VydmVDb3VudF9CZWZvcmVDaGFuZ2UpIHsgZ2xvYmFsICRkYjsgaWYgKCAkUmVzZXJ2ZUNvdW50PT0wICYmICRSZXNlcnZlSUQhPTAgKSB7ICRTdHJRdWVyeSA9ICJERUxFVEUgRlJPTSBmb29kX3Jlc2VydmUgV0hFUkUgUmVzZXJ2ZUlEPSRSZXNlcnZlSUQiOyBpZiAoICRkYi0+cXVlcnkoJFN0clF1ZXJ5KSApICRmbmNfU3RhdHVzID0gdHJ1ZTsgZWxzZSAkZm5jX1N0YXR1cyA9IGZhbHNlOyB9IGlmICggJFJlc2VydmVJRCE9MCApICRTdHJfbm90X1Jlc2VydmVJRCA9ICcgQU5EIFJlc2VydmVJRCE9Jy4kUmVzZXJ2ZUlEOyBlbHNlICRTdHJfbm90X1Jlc2VydmVJRCA9ICcnOyAkU3RyUXVlcnkgPSAiIFNFTEVDVCAoRkdycENvdW50UGVyc29uLShTRUxFQ1QgSUZOVUxMKFNVTShDb3VudFBlcnNvbiksMCkgRlJPTSBmb29kX3Jlc2VydmUgV0hFUkUgUElEPSRQSUQgQU5EIFJlc2VydmVEYXRlPSckUmVzZXJ2ZURhdGUnIEFORCBNZWFsSUQ9JE1lYWxJRCAgJFN0cl9ub3RfUmVzZXJ2ZUlEKSkgQVMgUmVtYWluZWRfQ291bnRQZXJzb24gLCAoRkdycENvdW50U3Vic2lkeS0oU0VMRUNUIElGTlVMTChTVU0oQ291bnRTdWJzaWR5KSwwKSBGUk9NIGZvb2RfcmVzZXJ2ZSBXSEVSRSBQSUQ9JFBJRCBBTkQgUmVzZXJ2ZURhdGU9JyRSZXNlcnZlRGF0ZScgQU5EIE1lYWxJRD0kTWVhbElEICAkU3RyX25vdF9SZXNlcnZlSUQpKSBBUyBSZW1haW5lZF9Db3VudFN1YnNpZHkgLCBJbmNsdWRlU3Vic2lkeSAsIElGKEluY2x1ZGVTdWJzaWR5PScyJywgMCwgSUYoRk1QbGFuU2hhcmVUeXBlPScwJyAsIElGKEZHcnBTaGFyZVR5cGU9JzEnLCBJRihGR3JwU2hhcmVFbXBsb3k+Rk1QbGFuUHJpY2UsRk1QbGFuUHJpY2UsRkdycFNoYXJlRW1wbG95KSwgRk1QbGFuUHJpY2UqKEZHcnBTaGFyZUVtcGxveS8xMDApKSAsIElGKEZNUGxhblNoYXJlVHlwZT0nMScsIElGKEZNUGxhblNoYXJlRW1wbG95PkZNUGxhblByaWNlLEZNUGxhblByaWNlLEZNUGxhblNoYXJlRW1wbG95KSwgRk1QbGFuUHJpY2UqKEZNUGxhblNoYXJlRW1wbG95LzEwMCkpICkpIEFTIFNoYXJlRW1wbG95X09uZSBGUk9NIGJhc2VfcGVyc29uIEFTIHQxLCBmb29kX2dyb3VwIEFTIHQyIExFRlQgSk9JTiBmb29kX21lYWxwbGFuIEFTIHQzIE9OIChGTVBsYW5JRD0kRk1QbGFuSUQgQU5EIEZNUGxhblN0YXR1cz0nMScpIFdIRVJFIHQxLkZHcnBJRD10Mi5GR3JwSUQgQU5EIEZHcnBTdGF0dXM9JzEnIEFORCBQSUQ9JFBJRCAiOyAkcmVzdWx0ID0gJGRiLT5xdWVyeSgkU3RyUXVlcnkpOyAkcm93ID0gJGRiLT5mZXRjaEFzc29jKCRyZXN1bHQpOyAkQ291bnRTdWJzaWR5ID0gKCRyb3dbJ0luY2x1ZGVTdWJzaWR5J109PScyJyA/IDAgOiAoJFJlc2VydmVDb3VudDw9JHJvd1snUmVtYWluZWRfQ291bnRTdWJzaWR5J10gPyAkUmVzZXJ2ZUNvdW50IDogJHJvd1snUmVtYWluZWRfQ291bnRTdWJzaWR5J10pKTsgJENvdW50UGVyc29uID0gKCgkUmVzZXJ2ZUNvdW50LSRDb3VudFN1YnNpZHkpPD0kcm93WydSZW1haW5lZF9Db3VudFBlcnNvbiddID8gKCRSZXNlcnZlQ291bnQtJENvdW50U3Vic2lkeSkgOiAkcm93WydSZW1haW5lZF9Db3VudFBlcnNvbiddKTsgJFJlc2VydmVDb3VudCA9ICRDb3VudFN1YnNpZHkgKyAkQ291bnRQZXJzb247ICRSZW1haW5lZF9Db3VudFN1YnNpZHkgPSAkcm93WydSZW1haW5lZF9Db3VudFN1YnNpZHknXSAtICRDb3VudFN1YnNpZHk7ICRSZW1haW5lZF9Db3VudFBlcnNvbiA9ICRyb3dbJ1JlbWFpbmVkX0NvdW50UGVyc29uJ10gLSAkQ291bnRQZXJzb247IGlmICggJFJlc2VydmVDb3VudD4wICkgeyBpZiAoICRSZXNlcnZlSUQ9PTAgKSB7ICRTdHJRdWVyeSA9ICJJTlNFUlQgSU5UTyBmb29kX3Jlc2VydmUoUElELCBSZXNlcnZlQ291bnQsIFN0YXR1c0RlbGl2ZXJ5LCBSZXNlcnZlRGF0ZSwgQ291bnRTdWJzaWR5LCBDb3VudFBlcnNvbiwgSW5jbHVkZVN1YnNpZHksIFByaWNlX09uZSwgU2hhcmVFbXBsb3lfT25lLCBTdW1QcmljZUVtcGxveSwgU3VtUHJpY2VNZW1iZXIsIE1lYWxJRCwgRlR5cGVJRCwgRm9vZElELCBGQ29udElEKSBTRUxFQ1QgJFBJRCwgJFJlc2VydmVDb3VudCBBUyBSZXNlcnZlQ291bnQsICcyJywgJyRSZXNlcnZlRGF0ZScgLCAkQ291bnRTdWJzaWR5ICwgJENvdW50UGVyc29uICwgSW5jbHVkZVN1YnNpZHkgLCBGTVBsYW5QcmljZSAsICIuJHJvd1snU2hhcmVFbXBsb3lfT25lJ10uIiAsICgkQ291bnRTdWJzaWR5KiIuJHJvd1snU2hhcmVFbXBsb3lfT25lJ10uIikgQVMgU3VtUHJpY2VFbXBsb3kgLCAoJFJlc2VydmVDb3VudCpGTVBsYW5QcmljZS0oJENvdW50U3Vic2lkeSoiLiRyb3dbJ1NoYXJlRW1wbG95X09uZSddLiIpKSBBUyBTdW1QcmljZU1lbWJlciAsICRNZWFsSUQsIEZUeXBlSUQsIEZvb2RJRCwgRkNvbnRJRCBGUk9NIGZvb2RfbWVhbHBsYW4gV0hFUkUgRk1QbGFuSUQ9JEZNUGxhbklEIEFORCBGTVBsYW5TdGF0dXM9JzEnIjsgfSBlbHNlIHsgJFN0clF1ZXJ5ID0gIlVQREFURSBmb29kX3Jlc2VydmUgU0VUIFJlc2VydmVDb3VudD0kUmVzZXJ2ZUNvdW50LCBDb3VudFN1YnNpZHk9JENvdW50U3Vic2lkeSwgQ291bnRQZXJzb249JENvdW50UGVyc29uICwgU3VtUHJpY2VFbXBsb3k9KCRDb3VudFN1YnNpZHkqU2hhcmVFbXBsb3lfT25lKSAsIFN1bVByaWNlTWVtYmVyPSgkUmVzZXJ2ZUNvdW50KlByaWNlX09uZS0oJENvdW50U3Vic2lkeSpTaGFyZUVtcGxveV9PbmUpKSBXSEVSRSBSZXNlcnZlSUQ9JFJlc2VydmVJRCI7IH0gaWYgKCAkZGItPnF1ZXJ5KCRTdHJRdWVyeSkgKSAkZm5jX1N0YXR1cyA9IHRydWU7IGVsc2UgJGZuY19TdGF0dXMgPSBmYWxzZTsgfSBpZiAoICRSZXNlcnZlQ291bnRfQmVmb3JlQ2hhbmdlPiRSZXNlcnZlQ291bnQgJiYgJFJlbWFpbmVkX0NvdW50U3Vic2lkeT4wICkgeyAkU3RyUXVlcnkgPSAiU0VMRUNUIFJlc2VydmVJRCwgQ291bnRQZXJzb24gRlJPTSBmb29kX3Jlc2VydmUgV0hFUkUgSW5jbHVkZVN1YnNpZHk9JzEnIEFORCBDb3VudFBlcnNvbj4wIEFORCBQSUQ9JFBJRCBBTkQgUmVzZXJ2ZURhdGU9JyRSZXNlcnZlRGF0ZScgQU5EIE1lYWxJRD0kTWVhbElEICAkU3RyX25vdF9SZXNlcnZlSUQiOyAkcmVzdWx0ID0gJGRiLT5xdWVyeSgkU3RyUXVlcnkpOyB3aGlsZSAoJHJvdyA9ICRkYi0+ZmV0Y2hBc3NvYygkcmVzdWx0KSkgeyBpZiAoJFJlbWFpbmVkX0NvdW50U3Vic2lkeT4wKSB7ICRfX0NvdW50U3Vic2lkeSA9ICgkcm93WydDb3VudFBlcnNvbiddPiRSZW1haW5lZF9Db3VudFN1YnNpZHkgPyAkUmVtYWluZWRfQ291bnRTdWJzaWR5IDogJHJvd1snQ291bnRQZXJzb24nXSk7ICRSZW1haW5lZF9Db3VudFN1YnNpZHkgLT0gJF9fQ291bnRTdWJzaWR5OyB9ICRTdHJRdWVyeSA9ICJVUERBVEUgZm9vZF9yZXNlcnZlIFNFVCAgQ291bnRTdWJzaWR5PUNvdW50U3Vic2lkeSskX19Db3VudFN1YnNpZHkgLCBDb3VudFBlcnNvbj1Db3VudFBlcnNvbi0kX19Db3VudFN1YnNpZHkgLCBTdW1QcmljZUVtcGxveT0oQ291bnRTdWJzaWR5KlNoYXJlRW1wbG95X09uZSkgLCBTdW1QcmljZU1lbWJlcj0oUmVzZXJ2ZUNvdW50KlByaWNlX09uZS0oQ291bnRTdWJzaWR5KlNoYXJlRW1wbG95X09uZSkpIFdIRVJFIFJlc2VydmVJRD0iLiRyb3dbJ1Jlc2VydmVJRCddOyAkZGItPnF1ZXJ5KCRTdHJRdWVyeSk7IH0gJGRiLT5mcmVlUmVzdWx0KCRyZXN1bHQpOyB9IGlmICggJGZuY19TdGF0dXMgKSByZXR1cm4gdHJ1ZTsgZWxzZSByZXR1cm4gZmFsc2U7IH0gZnVuY3Rpb24gQ2hlY2tCb3hfU2NoTXNnU3RhdHVzICgkdmFsdWUsICRTY2hNc2dJRCkgeyAkVW5pcSA9IHVuaXFpZCgpOyAkb3V0ID0gJzxjZW50ZXI+PGRpdiBjbGFzcz0iUm91bmRlZENoZWNrYm94Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNjaE1zZ1N0YXR1c1tdIiBpZD0iU2NoTXNnU3RhdHVzJy4kVW5pcS4nIiB2YWx1ZT0iJy4gJFNjaE1zZ0lEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjxsYWJlbCBmb3I9IlNjaE1zZ1N0YXR1cycuJFVuaXEuJyI+PC9sYWJlbD48ZGl2PjwvZGl2PjwvZGl2PjwvY2VudGVyPic7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIENoZWNrQm94X1N0YXR1cyAoJHZhbHVlLCAkSUQpIHsgJFVuaXEgPSB1bmlxaWQoKTsgJG91dCA9ICc8Y2VudGVyPjxkaXYgY2xhc3M9IlJvdW5kZWRDaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJTdGF0dXNbXSIgaWQ9IlN0YXR1cycuJFVuaXEuJyIgdmFsdWU9IicuICRJRCAuJyIgJy4gKCR2YWx1ZT09MSA/ICdjaGVja2VkJyA6ICcnICkgLicgY2xhc3M9IkZpZWxkX0NoZWNrQm94Ij48bGFiZWwgZm9yPSJTdGF0dXMnLiRVbmlxLiciPjwvbGFiZWw+PGRpdj48L2Rpdj48L2Rpdj48L2NlbnRlcj4nOyByZXR1cm4gJG91dDsgfSA/Pg== ?>

Did this file decode correctly?

Original Code

$h1304092368("PD9waHAgZGVmaW5lZCggJ19FWEVDJyApIG9yIGRpZSggJ1Jlc3RyaWN0ZWQgYWNjZXNzJyApOyBmdW5jdGlvbiBteUZvcm0gKCR0eXBlLCAkcmVxdWlyZWQsICRsYWJlbCwgJG5hbWUsICRpZCwgJHZhbHVlLCAkcGFyYW09JycsICRpdGVtcz0nJywgJGluZm89JycsICRwYXJhbTE9JycpIHsgaWYgKCRyZXF1aXJlZD09dHJ1ZSkgJHJlcXVpcmVkID0gJ2RhdGEtcmVxdWlyZWQ9InRydWUiJzsgZWxzZSAkcmVxdWlyZWQgPSAnJzsgaWYgKCAkdHlwZT09J3RleHQnICkgeyBAJG91dCAuPSAnIDxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPiA8bGFiZWwgZm9yPSInLiRpZC4nIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSd0ZXh0X2dyaWQnICkgeyBAJG91dCAuPSAnPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+PC9kaXY+JzsgfSBlbHNlIGlmICggJHR5cGU9PSdlbWFpbCcgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9ImVtYWlsIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSdlbWFpbF9ncmlkJyApIHsgQCRvdXQgLj0gJzxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPjxpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuJHZhbHVlLiciICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz48L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfbnVtYmVyJyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGxhYmVsIGZvcj0iJy4kaWQuJyI+Jy4kbGFiZWwuJyAnLigkaW5mbz9Qb3B1cCgkaW5mbyk6JycpLic8L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9Ik1hc2tOdW1iZXIiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfbnVtYmVyX2dyaWQnICkgeyBAJG91dCAuPSAnPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJNYXNrTnVtYmVyIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPjwvZGl2Pic7IH0gZWxzZSBpZiAoICR0eXBlPT0ndGV4dF9tb25leScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJNYXNrTW9uZXkiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLk91dHB1dF9OdW1iZXIoJHZhbHVlKS4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfbW9uZXlfZ3JpZCcgKSB7IEAkb3V0IC49ICc8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9Ik1hc2tNb25leSIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuT3V0cHV0X051bWJlcigkdmFsdWUpLiciICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz48L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J3Bhc3N3b3JkJyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGxhYmVsIGZvcj0iJy4kaWQuJyI+Jy4kbGFiZWwuJyAnLigkaW5mbz9Qb3B1cCgkaW5mbyk6JycpLic8L2xhYmVsPiA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfZGF0ZScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWVsZF9DYWxlbmRhciBNYXNrRGF0ZSAnLihlbXB0eSgkaXRlbXMpPycnOidOb0J1dHRvbnMnKS4nIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiBtYXhsZW5ndGg9IjEwIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4gJHBhcmFtIC4nICcuJHJlcXVpcmVkLic+ICc7IGlmICggZW1wdHkoJGl0ZW1zKSApIEAkb3V0IC49ICc8aSBpZD0iJy4kaWQuJ19idG4iIGNsYXNzPSJteUljb24gQ2FsZW5kYXIiIHRpdGxlPSLYqtmC2YjbjNmFIj48L2k+JzsgQCRvdXQgLj0gJyA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSd0ZXh0X2RhdGVfZ3JpZCcgKSB7IEAkb3V0IC49ICc8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IkZpZWxkX0NhbGVuZGFyIE1hc2tEYXRlICcuKGVtcHR5KCRpdGVtcyk/Jyc6J05vQnV0dG9ucycpLiciIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIG1heGxlbmd0aD0iMTAiIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiAkcGFyYW0gLicgJy4kcmVxdWlyZWQuJz4nOyBpZiAoIGVtcHR5KCRpdGVtcykgKSBAJG91dCAuPSAnPGkgaWQ9IicuJGlkLidfYnRuIiBjbGFzcz0ibXlJY29uIENhbGVuZGFyIiB0aXRsZT0i2KrZgtmI24zZhSI+PC9pPic7IEAkb3V0IC49ICc8L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfdGltZScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWVsZF9UaW1lIE1hc2tUaW1lIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiBtYXhsZW5ndGg9IjUiIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiAkcGFyYW0gLicgJy4kcmVxdWlyZWQuJz4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0ndGV4dF90aW1lX2dyaWQnICkgeyBAJG91dCAuPSAnPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWVsZF9UaW1lIE1hc2tUaW1lIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiBtYXhsZW5ndGg9IjUiIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiAkcGFyYW0gLicgJy4kcmVxdWlyZWQuJz48L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfZmlsZScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWVsZF9Ccm93c2UiIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLiAkcGFyYW0gLicgJy4kcmVxdWlyZWQuJz4gPGkgY2xhc3M9Im15SWNvbiBCcm93c2UiIHRpdGxlPSLZhdiv24zYsduM2Kog2YHYp9uM2YQiIG9uY2xpY2s9IkJyb3dzZVNlcnZlcihcJ0ZpbGVzOi8nLiRpdGVtcy4nXCcsICQodGhpcykucHJldigpLmF0dHIoXCdpZFwnKSk7Ij48L2k+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3RleHRfZmlsZV9ncmlkJyApIHsgQCRvdXQgLj0gJzxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iRmllbGRfQnJvd3NlIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4gJHBhcmFtIC4nICcuJHJlcXVpcmVkLic+PGkgY2xhc3M9Im15SWNvbiBCcm93c2UiIHRpdGxlPSLZhdiv24zYsduM2Kog2YHYp9uM2YQiIG9uY2xpY2s9IkJyb3dzZVNlcnZlcihcXFwnRmlsZXM6LycuJGl0ZW1zLidcXFwnLCAkKHRoaXMpLnByZXYoKS5hdHRyKFxcXCdpZFxcXCcpKTsiPjwvaT48L2Rpdj4nOyB9IGVsc2UgaWYgKCAkdHlwZT09J2ZpbGUnICkgeyBAJG91dCAuPSAnIDxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPiA8bGFiZWwgZm9yPSInLiRpZC4nIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSd0ZXh0YXJlYScgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbCBmb3I9IicuJGlkLiciPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPHRleHRhcmVhIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz4nLiR2YWx1ZS4nPC90ZXh0YXJlYT4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0ndGV4dGFyZWFfZWRpdG9yJyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGxhYmVsIGZvcj0iJy4kaWQuJyI+Jy4kbGFiZWwuJyAnLigkaW5mbz9Qb3B1cCgkaW5mbyk6JycpLic8L2xhYmVsPiA8dGV4dGFyZWEgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPicuJHZhbHVlLic8L3RleHRhcmVhPiA8c2NyaXB0PiBDS0VESVRPUi5yZXBsYWNlKCAiJy4kaWQuJyIsIHsgZmlsZWJyb3dzZXJCcm93c2VVcmw6ICInLlBBVEhfUk9PVC4naW5jbHVkZXMvX290aGVycy9ja2ZpbmRlci9ja2ZpbmRlci5odG1sP3N0YXJ0dXBQYXRoPUZpbGVzOi8nLiRpdGVtcy4nIiB9ICk7IDwvc2NyaXB0PiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSdzZWxlY3QnIHx8ICR0eXBlPT0nc2VsZWN0X3JlcG9ydCcgfHwgJHR5cGU9PSdzZWxlY3RfZ3JpZCcgfHwgJHR5cGU9PSdzZWxlY3Rfc2VhcmNoJyApIHsgZm9yZWFjaCAoJGl0ZW1zIGFzICRrZXkgPT4gJHZhbCkgeyAkc2VsZWN0ZWQgPSAnJzsgaWYgKCBpc19hcnJheSgkdmFsdWUpICkgeyBpZiAoIGluX2FycmF5KCRrZXksICR2YWx1ZSkgKSAkc2VsZWN0ZWQgPSAnc2VsZWN0ZWQnOyB9IGVsc2UgaWYgKCR2YWx1ZT09JGtleSkgJHNlbGVjdGVkID0gJ3NlbGVjdGVkJzsgQCRfaXRlbXMgLj0gJzxvcHRpb24gdmFsdWU9IicuJGtleS4nIiAnLiRzZWxlY3RlZC4nPicuJHZhbC4nPC9vcHRpb24+JzsgfSBpZiAoICR0eXBlPT0nc2VsZWN0JyB8fCAkdHlwZT09J3NlbGVjdF9yZXBvcnQnIHx8ICR0eXBlPT0nc2VsZWN0X3NlYXJjaCcgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCAnLigkdHlwZT09J3NlbGVjdF9yZXBvcnQnPydGaWVsZEdyb3VwX1JlcG9ydCc6JycpLiciPiA8bGFiZWwgZm9yPSInLiRpZC4nIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxzZWxlY3QgY2xhc3M9IicuKCFlbXB0eSgkcGFyYW0xKT8nRmllbGRfU2VhcmNoJzonJykuJyIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiAnLiBAJF9pdGVtcyAuJyA8L3NlbGVjdD4gJzsgaWYgKCAhZW1wdHkoJHBhcmFtMSkgKSBAJG91dCAuPSAnPGkgY2xhc3M9Im15SWNvbiBTZWFyY2giIHRpdGxlPSLYrNiz2KrYrNmIIm9uY2xpY2s9IiQuY29sb3Jib3goe2hyZWY6XCc/YWN0aW9uPScuJHBhcmFtMS4nJldpdGhvdXRNZW51PVllc1wnLCBpZnJhbWU6dHJ1ZSwgd2lkdGg6XCc5MCVcJywgaGVpZ2h0OlwnOTAlXCd9KTsgcmV0dXJuIGZhbHNlOyI+PC9pPiAnOyBAJG91dCAuPSAnIDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J3NlbGVjdF9ncmlkJyApIEAkb3V0IC49ICc8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj48c2VsZWN0IG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz4nLiBAJF9pdGVtcyAuJzwvc2VsZWN0PjwvZGl2Pic7IH0gZWxzZSBpZiAoICR0eXBlPT0nc2VsZWN0MicgKSB7IGZvcmVhY2ggKCRpdGVtcyBhcyAka2V5ID0+ICR2YWwpIHsgJHNlbGVjdGVkID0gJyc7IGlmICggaXNfYXJyYXkoJHZhbHVlKSApIHsgaWYgKCBpbl9hcnJheSgka2V5LCAkdmFsdWUpICkgJHNlbGVjdGVkID0gJ3NlbGVjdGVkJzsgfSBlbHNlIGlmICgkdmFsdWU9PSRrZXkpICRzZWxlY3RlZCA9ICdzZWxlY3RlZCc7IEAkX2l0ZW1zIC49ICc8b3B0aW9uIHZhbHVlPSInLiRrZXkuJyIgJy4kc2VsZWN0ZWQuJz4nLiR2YWwuJzwvb3B0aW9uPic7IH0gQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGxhYmVsIGZvcj0iJy4kaWQuJyI+Jy4kbGFiZWwuJyAnLigkaW5mbz9Qb3B1cCgkaW5mbyk6JycpLic8L2xhYmVsPiA8c2VsZWN0IGNsYXNzPSJzZWxlY3QyIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+ICcuIEAkX2l0ZW1zIC4nIDwvc2VsZWN0PiA8L2Rpdj4gJzsgfSBlbHNlIGlmICggJHR5cGU9PSdyYWRpbycgfHwgJHR5cGU9PSdyYWRpb19yZXBvcnQnICkgeyBAJG91dCAuPSAnIDxkaXYgY2xhc3M9IkZpZWxkR3JvdXAgRmllbGRHcm91cF9DaGVja0JveCAnLigkdHlwZT09J3JhZGlvX3JlcG9ydCc/J0ZpZWxkR3JvdXBfUmVwb3J0JzonJykuJyI+IDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuJHZhbHVlLiciICcuKEAkaXRlbXM9PSR2YWx1ZT8nY2hlY2tlZCc6JycpLicgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nPiA8bGFiZWwgZm9yPSInLiRpZC4nIiBjbGFzcz0ibXlJY29uIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J2NoZWNrYm94JyB8fCAkdHlwZT09J2NoZWNrYm94X3JlcG9ydCcgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCBGaWVsZEdyb3VwX0NoZWNrQm94ICcuKCR0eXBlPT0nY2hlY2tib3hfcmVwb3J0Jz8nRmllbGRHcm91cF9SZXBvcnQnOicnKS4nIj4gPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4oQCRpdGVtcz09JHZhbHVlPydjaGVja2VkJzonJykuJyAnLiRwYXJhbS4nICcuJHJlcXVpcmVkLic+IDxsYWJlbCBmb3I9IicuJGlkLiciIGNsYXNzPSJteUljb24iPicuJGxhYmVsLicgJy4oJGluZm8/UG9wdXAoJGluZm8pOicnKS4nPC9sYWJlbD4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0nY2hlY2tib3hfcm91bmRlZCcgKSB7IEAkb3V0IC49ICcgPGRpdiBjbGFzcz0iRmllbGRHcm91cCI+IDxsYWJlbD4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxkaXYgY2xhc3M9IlJvdW5kZWRDaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iRmllbGRfQ2hlY2tCb3giIG5hbWU9IicuJG5hbWUuJyIgaWQ9IicuJGlkLiciIHZhbHVlPSInLiR2YWx1ZS4nIiAnLihAJGl0ZW1zPT0kdmFsdWU/J2NoZWNrZWQnOicnKS4nICcuJHBhcmFtLicgJy4kcmVxdWlyZWQuJz48bGFiZWwgZm9yPSInLiRpZC4nIj48L2xhYmVsPjxkaXY+PC9kaXY+PC9kaXY+IDwvZGl2PiAnOyB9IGVsc2UgaWYgKCAkdHlwZT09J2NhcHRjaGEnICkgeyBAJG91dCAuPSAnIDxkaXYgY2xhc3M9IkZpZWxkR3JvdXAiPiA8bGFiZWwgZm9yPSInLiRpZC4nIj4nLiRsYWJlbC4nICcuKCRpbmZvP1BvcHVwKCRpbmZvKTonJykuJzwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iRmllbGRfQ2FwdGNoYSBNYXNrTnVtYmVyIiBuYW1lPSInLiRuYW1lLiciIGlkPSInLiRpZC4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgJy4kcGFyYW0uJyAnLiRyZXF1aXJlZC4nIG1heGxlbmd0aD0iMyIgYXV0b2NvbXBsZXRlPSJvZmYiPiA8aW1nIHNyYz0iJy4gUEFUSF9ST09UIC4naW5jbHVkZXMvY2FwdGNoYS5waHA/aW1hZ2UiIGNsYXNzPSJDYXB0Y2hhSW1hZ2UiIG9uY2xpY2s9InJlZnJlc2hDYXB0Y2hhKCkiIC8+IDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0nc3VibWl0JyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0bl9PSyIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuJHZhbHVlLiciICcuJHBhcmFtLic+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im15U3VibWl0IiB2YWx1ZT0iJy4gbXlUb2tlbigpIC4nIj4gPC9kaXY+ICc7IH0gZWxzZSBpZiAoICR0eXBlPT0nYnV0dG9uJyApIHsgQCRvdXQgLj0gJyA8ZGl2IGNsYXNzPSJGaWVsZEdyb3VwIj4gPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0bl9PSyIgbmFtZT0iJy4kbmFtZS4nIiBpZD0iJy4kaWQuJyIgdmFsdWU9IicuJHZhbHVlLiciICcuJHBhcmFtLic+IDwvZGl2PiAnOyB9IHJldHVybiBAJG91dDsgfSBmdW5jdGlvbiBDaGVja2JveFRyZWVWaWV3ICgkYXJyYXksICYkcmVzdWx0LCAkbGV2ZWw9MCwgJHBhcmVudD0wKSB7ICRmaXJzdF9jaGlsZCA9IGZhbHNlOyBmb3JlYWNoKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkgeyBpZiAoJHZhbHVlWydwYXJlbnRfaWQnXSA9PSAkcGFyZW50KSB7ICRVbmlxID0gdW5pcWlkKCk7IGlmICgkZmlyc3RfY2hpbGQgPT09IGZhbHNlKSB7ICRmaXJzdF9jaGlsZCA9IHRydWU7ICRyZXN1bHQgLj0gJzx1bD4nOyB9ICRyZXN1bHQgLj0gJzxsaSBpZD0iQ2hlY2tfJy4kVW5pcS4nIj4nOyAkcmVzdWx0IC49IG15Rm9ybSgnY2hlY2tib3hfcmVwb3J0JywgZmFsc2UsICR2YWx1ZVsndGl0bGUnXSwgJHZhbHVlWydlbG1fbmFtZSddLCAkdmFsdWVbJ2VsbV9pZCddLiRVbmlxLCAkdmFsdWVbJ2lkJ10sICdvbmNsaWNrPSJqYXZhc2NyaXB0OlRvZ2dsZUNoZWNrYm94ZXMoXCcjQ2hlY2tfJy4kVW5pcS4nXCcsIHRoaXMpOyInLCAkdmFsdWVbJ2VsbV9DaGVja2VkJ10pOyBDaGVja2JveFRyZWVWaWV3KCRhcnJheSwgJHJlc3VsdCwgJGxldmVsKzMsICR2YWx1ZVsnaWQnXSk7ICRyZXN1bHQgLj0gJzwvbGk+JzsgfSB9IGlmICgkZmlyc3RfY2hpbGQgPT09IHRydWUpICRyZXN1bHQgLj0gJzwvdWw+JzsgfSBmdW5jdGlvbiBDaGVja2VkX0FkbWluKCkgeyBnbG9iYWwgJENyZWF0ZUJhY2ssICRiYWNrOyBpZiggQCRfU0VTU0lPTlsnYWRtaW4nXT09TlVMTCApeyAkb3V0ID0gJyDYrNmH2Kog2KfYs9iq2YHYp9iv2YfYjCDYqNin24zYryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjbjNivLjxicj48YnI+IDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4gPGEgaHJlZj0iJy4gUEFUSF9ST09UIC4nP2JhY2s9Jy4gQCRDcmVhdGVCYWNrIC4nIiBjbGFzcz0iQm94TXNnT0siPtmI2LHZiNivINio2Ycg2LPbjNiz2KrZhTwvYT4gJzsgT3V0cHV0RXJyb3IoJG91dCk7IGV4aXQoKTsgfTsgaWYgKCBAJF9TRVNTSU9OWydhZG1pbiddIT0nc3lzdGVtJyApIHsgQCRBY3Rpb24gPSAkX0dFVFsnYWN0aW9uJ107IGlmICggJEFjdGlvbiE9J1Byb2ZpbGUnICYmICRBY3Rpb24hPSdMb2dvdXQnICkgeyBpZiAoIFNlbGVjdFBhZ2VNYW5hZ2UoJEFjdGlvbikgKSB7IGlmICggJEFjdGlvbiE9J2hvbWUnICkgeyBnbG9iYWwgJGRiOyAkU3RyUXVlcnkgPSBzcHJpbnRmKCJTRUxFQ1QgVUlEIEZST00gc3lzdGVtX3VzZXJncm91cF9hY2Nlc3MgV0hFUkUgKCBVSUQ9KFNFTEVDVCBVSUQgRlJPTSBzeXN0ZW1fdXNlciBXSEVSRSBTdGF0dXM9JzEnIEFORCBVSUQ9JyVzJykgT1IgR0lEIGluIChTRUxFQ1QgZ3JwLkdJRCAgRlJPTSBzeXN0ZW1fZ3JvdXAgQVMgZ3JwICBMRUZUIEpPSU4gc3lzdGVtX3VzZXJfZ3JvdXAgQVMgQWNjIE9OIChncnAuR0lEPUFjYy5HSUQpICBXSEVSRSBVSUQ9JyVzJykgICkgQU5EICBNSUQ9KFNFTEVDVCBNSUQgRlJPTSBzeXN0ZW1fbWVudSBXSEVSRSBTdGF0dXM9JzEnIEFORCBBY3Rpb249JyVzJykgIiwgJF9TRVNTSU9OWydhZG1pbmlkJ10sICRfU0VTU0lPTlsnYWRtaW5pZCddLCAkQWN0aW9uICk7ICRyZXN1bHQgPSAkZGItPnF1ZXJ5KCRTdHJRdWVyeSk7IGlmICggJGRiLT5jb3VudFJvd3MoJHJlc3VsdCk9PTAgKXsgJG91dCA9ICcg2YXYrNmI2LIg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYp9uM2YYg2KjYrti0INio2LHYp9uMINi02YXYpyDYtdin2K/YsSDZhti02K/ZhyDYp9iz2KouPGJyPjxicj4gPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2PiA8YSBocmVmPSInLiAoQCRiYWNrP0AkYmFjazpQQVRIX1JPT1QpIC4nIiBjbGFzcz0iQm94TXNnT0siPtio2KfYstqv2LTYqjwvYT4gJzsgT3V0cHV0RXJyb3IoJG91dCk7IGV4aXQoKTsgfTsgJGRiLT5mcmVlUmVzdWx0KCk7IH0gfSBlbHNlIHsgJG91dCA9ICcg2LXZgdit2Ycg2YXZiNix2K8g2YbYuNixINuM2KfZgdiqINmG2LTYry48YnI+PGJyPiA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+IDxhIGhyZWY9IicuIChAJGJhY2s/QCRiYWNrOlBBVEhfUk9PVCkgLiciIGNsYXNzPSJCb3hNc2dPSyI+2KjYp9iy2q/YtNiqPC9hPiAnOyBPdXRwdXRFcnJvcigkb3V0KTsgZXhpdCgpOyB9IH0gfSB9OyBmdW5jdGlvbiBTZWxlY3RQYWdlTWFuYWdlICgkYWN0aW9uKSB7IGlmICgkYWN0aW9uID09ICdob21lJykgcmV0dXJuICdob21lJzsgZ2xvYmFsICRkYjsgJGFyciA9IGFycmF5KCJVcmwiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIsICdzeXN0ZW1fbWVudScsICJTdGF0dXM9JzEnIEFORCBBY3Rpb249JyIuICRhY3Rpb24gLiInIik7IGlmICggQCRfU0VTU0lPTlsnYWRtaW4nXT09J3N5c3RlbScgJiYgJGFjdGlvbj09J1NZU1lURU1fRW1wdHlEQicgKSAkcm93WydVcmwnXSA9ICdvcHRpb24vU1lTVEVNX0VtcHR5REIucGhwJzsgaWYgKCBAJF9TRVNTSU9OWydhZG1pbiddPT0nc3lzdGVtJyAmJiAkYWN0aW9uPT0nU1lTWVRFTV9JbXBvcnRYTFMnICkgJHJvd1snVXJsJ10gPSAnb3B0aW9uL1NZU1RFTV9JbXBvcnRYTFMucGhwJzsgcmV0dXJuICRyb3dbJ1VybCddOyB9OyBmdW5jdGlvbiBTZWxlY3RUaXRsZU1hbmFnZSAoJGFjdGlvbikgeyBnbG9iYWwgJGRiOyAkYXJyID0gYXJyYXkoIlRpdGxlIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyLCAnc3lzdGVtX21lbnUnLCAiU3RhdHVzPScxJyBBTkQgQWN0aW9uPSciLiAkYWN0aW9uIC4iJyIpOyBpZiAoIEAkX1NFU1NJT05bJ2FkbWluJ109PSdzeXN0ZW0nICYmICRhY3Rpb249PSdTWVNZVEVNX0VtcHR5REInICkgJHJvd1snVGl0bGUnXSA9ICfYrtin2YTbjCDaqdix2K/ZhiDYqNin2YbaqSDYp9i32YTYp9i52KfYqtuMJzsgaWYgKCBAJF9TRVNTSU9OWydhZG1pbiddPT0nc3lzdGVtJyAmJiAkYWN0aW9uPT0nU1lTWVRFTV9JbXBvcnRYTFMnICkgJHJvd1snVGl0bGUnXSA9ICfYr9ix24zYp9mB2Kog2KfYsiDYp9qp2LPZhCc7IHJldHVybiAkcm93WydUaXRsZSddOyB9OyBmdW5jdGlvbiBPdXRwdXRFcnJvcigkb3V0KSB7ICRwYWdlMSA9IG5ldyBQYWdlKCk7ICRjb250ID0gJzxicj4nLiAkcGFnZTEtPkFkbWluQm94KCfYrti32KcnLCAkb3V0LCAnJywgJycsICcnLCAnJywgJ0NvcHlyaWdodCcpOyAkcGFnZTEtPkRpc3BsYXlBZG1pbignY2xhc3M9IkJvZHkzIicsICRjb250LCAnWWVzJyk7IGV4aXQoKTsgfSBmdW5jdGlvbiBteVRva2VuKCR2YWx1ZT0nbXlUb2tlbicpIHsgaWYgKCFAJF9TRVNTSU9OWyR2YWx1ZV0pIEAkX1NFU1NJT05bJHZhbHVlXSA9IG1kNSh1bmlxaWQoKSk7IHJldHVybiBAJF9TRVNTSU9OWyR2YWx1ZV07IH0gZnVuY3Rpb24gQ29udkFyYTJQZXIgKCR2YWx1ZSkgeyAkYXJhYmljID0gYXJyYXkoItmKIiwgItmDIiwgItipIiwgIuKAjCIpOyAkcGVyc2lhbiA9IGFycmF5KCLbjCIsICLaqSIsICLZhyIsICIgIik7IGlmICggaXNfYXJyYXkoQCR2YWx1ZSkgKSBmb3JlYWNoKCR2YWx1ZSBhcyAka2V5PT4kdmFsKSBAJHZhbHVlWyRrZXldID0gc3RyX3JlcGxhY2UoJGFyYWJpYywgJHBlcnNpYW4sICR2YWwpOyBlbHNlICR2YWx1ZSA9IHN0cl9yZXBsYWNlKCRhcmFiaWMsICRwZXJzaWFuLCAkdmFsdWUpOyByZXR1cm4gJHZhbHVlOyB9IGZ1bmN0aW9uIENvbnZQZXIyQXJhICgkdmFsdWUpIHsgJGFyYWJpYyA9IGFycmF5KCLZiiIsICLZgyIsICLYqSIsICLigIwiKTsgJHBlcnNpYW4gPSBhcnJheSgi24wiLCAi2qkiLCAi2YciLCAiICIpOyBpZiAoIGlzX2FycmF5KEAkdmFsdWUpICkgZm9yZWFjaCgkdmFsdWUgYXMgJGtleT0+JHZhbCkgQCR2YWx1ZVska2V5XSA9IHN0cl9yZXBsYWNlKCRwZXJzaWFuLCAkYXJhYmljLCAkdmFsKTsgZWxzZSAkdmFsdWUgPSBzdHJfcmVwbGFjZSgkcGVyc2lhbiwgJGFyYWJpYywgJHZhbHVlKTsgcmV0dXJuICR2YWx1ZTsgfSBmdW5jdGlvbiBUZXh0Ym94Q2FsZW5kYXIgKCRQYXJhbU5hbWUsICRQYXJhbVZhbHVlPScnLCAkU3Rhcj0nJywgJE90aGVyPScnLCAkVHlwZT0xKSB7ICRjYWwgPSAnPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicuICRQYXJhbU5hbWUgLiciIGlkPSInLiAkUGFyYW1OYW1lIC4nIiBtYXhsZW5ndGg9IjEwIiB2YWx1ZT0iJy4gJFBhcmFtVmFsdWUgLiciIGNsYXNzPSJGaWVsZF9DYWxlbmRhciBNYXNrRGF0ZSIgJy4gJE90aGVyIC4nPic7IGlmICggJFN0YXIgKSAkY2FsIC49ICc8c3BhbiBjbGFzcz0iVGV4dF9BbGVydCI+ICo8L3NwYW4+JzsgaWYgKCAkVHlwZT09MSApIHsgJGNhbCAuPSAnPGltZyBpZD0iJy4gJFBhcmFtTmFtZSAuJ19idG4iIHNyYz0iJy4gUEFUSF9ST09UIC4naW5jbHVkZXMvX290aGVycy9jYWxlbmRhci9za2lucy9jYWxlbmRhci5wbmciIGNsYXNzPSJDYWxlbmRhciIgYWx0PSLYqtmC2YjbjNmFIiB0aXRsZT0i2KrZgtmI24zZhSI+JzsgJGNhbCAuPSAnPGkgaWQ9IicuJFBhcmFtTmFtZS4nX2J0biIgY2xhc3M9Im15SWNvbiBDYWxlbmRhciIgdGl0bGU9Itiq2YLZiNuM2YUiPjwvaT4nOyB9IHJldHVybiAkY2FsOyB9IGZ1bmN0aW9uIENoZWNrQ29udkRhdGUgKCREYXRlVmFsdWUpIHsgaWYgKCBlbXB0eSgkRGF0ZVZhbHVlKSApIHJldHVybiBmYWxzZTsgQGxpc3QoJFllYXIsICRNb250aCwgJERheSkgPSBleHBsb2RlKCIvIiwgJERhdGVWYWx1ZSk7IGlmICggJFllYXI8MTAgKSAkWWVhciA9ICcwJy4oaW50KSRZZWFyOyBpZiAoICRZZWFyPDEwMCApICRZZWFyID0gJzEzJy4kWWVhcjsgaWYgKCAkWWVhcjwxMDAwICkgJFllYXIgPSAkWWVhci4nMCc7IGlmICggJE1vbnRoPDEwICkgJE1vbnRoID0gJzAnLihpbnQpJE1vbnRoOyBpZiAoICRNb250aD4xMiApICRNb250aCA9IDEyOyBpZiAoICREYXk8MTAgKSAkRGF5ID0gJzAnLihpbnQpJERheTsgaWYgKCAkRGF5PjMxICkgJERheSA9IDMxOyBpZiAoICRNb250aD09JzAwJyApICRNb250aCA9ICcwMSc7IGlmICggJERheT09JzAwJyApICREYXkgPSAnMDEnOyByZXR1cm4gJFllYXIuJy8nLiRNb250aC4nLycuJERheTsgfSBmdW5jdGlvbiBDaGVja0NvbnZUaW1lICgkVGltZVZhbHVlKSB7IGlmICggZW1wdHkoJFRpbWVWYWx1ZSkgKSByZXR1cm4gZmFsc2U7IEBsaXN0KCRIb3VyLCAkTWludXRlKSA9IGV4cGxvZGUoIjoiLCAkVGltZVZhbHVlKTsgaWYgKCAkSG91cjwxMCApICRIb3VyID0gJzAnLihpbnQpJEhvdXI7IGlmICggJEhvdXI+PTI0ICkgJEhvdXIgPSAyMzsgaWYgKCAkTWludXRlPDEwICkgJE1pbnV0ZSA9ICcwJy4oaW50KSRNaW51dGU7IGlmICggJE1pbnV0ZT49NjAgKSAkTWludXRlID0gNTk7IHJldHVybiAkSG91ci4nOicuJE1pbnV0ZTsgfSBmdW5jdGlvbiBJbWFnZV9TdGF0dXNBY3RpdmUgKCR2YWx1ZSkgeyBpZiAoJHZhbHVlPT0xKSAkb3V0ID0gJzxjZW50ZXI+PGkgdGl0bGU9ItmB2LnYp9mEIiBjbGFzcz0ibXlJY29uIGljb0FjY2VwdCI+PC9pPjwvY2VudGVyPic7IGVsc2UgJG91dCA9ICc8Y2VudGVyPjxpIHRpdGxlPSLYutuM2LHZgdi52KfZhCIgY2xhc3M9Im15SWNvbiBpY29EZWNsaW5lIj48L2k+PC9jZW50ZXI+JzsgcmV0dXJuICRvdXQ7IH0gZnVuY3Rpb24gSW1hZ2VfU3RhdHVzQWN0aXZlMiAoJHZhbHVlKSB7IGlmICgkdmFsdWU9PTEpICRvdXQgPSAnPGNlbnRlcj48aSB0aXRsZT0i2YHYudin2YQiIGNsYXNzPSJteUljb24gaWNvQWNjZXB0Ij48L2k+PC9jZW50ZXI+JzsgZWxzZSAkb3V0ID0gJyc7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIEltYWdlX1N0YXR1c0FjdGl2ZV9QcmludCAoJHZhbHVlKSB7IGlmICgkdmFsdWU9PTEpICRvdXQgPSAnPGltZyBzcmM9IicuIFBBVEhfUk9PVCAuJ2ltYWdlcy9jaGVjay5wbmciIGNsYXNzPSJ0aWNrIj4nOyBlbHNlICRvdXQgPSAnLSc7IHJldHVybiBAJG91dDsgfSBmdW5jdGlvbiBQb3B1cCAoJFZhbHVlPScnKSB7ICRwb3AgPSAnPGkgY2xhc3M9Im15SWNvbiBpY29JbmZvIiBvbk1vdXNlT3Zlcj0iamF2YXNjcmlwdDpTaG93X1BvcHVwKFwnJy4gJFZhbHVlIC4nXCcsIHRoaXMpIiBvbk1vdXNlT3V0PSJqYXZhc2NyaXB0OkhpZGVfUG9wdXAoKSI+PC9pPic7IHJldHVybiAkcG9wOyB9IGZ1bmN0aW9uIE91dHB1dF9OdW1iZXIgKCRudW0pIHsgaWYgKGlzX251bGwoJG51bSkpIHJldHVybiAnJzsgcmV0dXJuIEBudW1iZXJfZm9ybWF0KENsZWFyX051bWJlcigkbnVtKSk7IH07IGZ1bmN0aW9uIENsZWFyX051bWJlciAoJG51bSkgeyBpZiAoaXNfbnVsbCgkbnVtKSkgcmV0dXJuICcnOyByZXR1cm4gQHN0cl9yZXBsYWNlKCcsJywgJycsICRudW0pOyB9OyBmdW5jdGlvbiBHZXRfUGVyc29ubmVsTmFtZSAoJFBJRCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJGaXJzdE5hbWUiLCAiTGFzdE5hbWUiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnYmFzZV9wZXJzb24nLCAiUElEPSRQSUQiKTsgcmV0dXJuICRyb3dbJ0ZpcnN0TmFtZSddLicgJy4kcm93WydMYXN0TmFtZSddOyB9OyBmdW5jdGlvbiBGaW5kQ2hpbGRyZW4oJHR5cGUsICRhcnJheSwgJHBhcmVudD0wLCAmJHJlc3VsdD1hcnJheSgpKSB7IGdsb2JhbCAkZGI7IGlmICggJHR5cGU9PSdDTUlEJyApIHsgJHJlc3VsdDIgPSAkZGItPnF1ZXJ5KCJTRUxFQ1QgQ01JRCBBUyBpZCwgUGFyZW50Q01JRCBBUyBwYXJlbnRfaWQgRlJPTSBpbnNfY29tbWl0bWVudHMgT1JERVIgQlkgQ29kZUNNIik7ICRhcnJheSA9IGFycmF5KCk7IHdoaWxlICgkcm93ID0gJGRiLT5mZXRjaEFzc29jKCRyZXN1bHQyKSkgeyAkYXJyYXlbXSA9ICRyb3c7IH0gJGRiLT5mcmVlUmVzdWx0KCRyZXN1bHQyKTsgfSBmb3JlYWNoKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkgeyBpZiAoaXNfbnVsbCgkdmFsdWVbJ3BhcmVudF9pZCddKSkgJHZhbHVlWydwYXJlbnRfaWQnXSA9IDA7IGlmICgkdmFsdWVbJ3BhcmVudF9pZCddID09ICRwYXJlbnQpIHsgJHJlc3VsdFtdID0gJHZhbHVlWydpZCddOyBGaW5kQ2hpbGRyZW4oJycsICRhcnJheSwgJHZhbHVlWydpZCddLCAkcmVzdWx0KTsgfSB9IHJldHVybiBAJHJlc3VsdDsgfSBmdW5jdGlvbiBPcmdhbiAoKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIk9yZ2FuTmFtZSIsICJPcmdhbkxvZ28iLCAiT3JnYW5BZGRyZXNzIiwgIk9yZ2FuVGVsIiwgIk9yZ2FuRmF4Iik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ29yZ2FuJyk7IGRlZmluZSggJ09yZ2FuTmFtZScsICRyb3dbJ09yZ2FuTmFtZSddICk7IGRlZmluZSggJ09yZ2FuTG9nbycsICRyb3dbJ09yZ2FuTG9nbyddICk7IGRlZmluZSggJ09yZ2FuQWRkcmVzcycsICRyb3dbJ09yZ2FuQWRkcmVzcyddICk7IGRlZmluZSggJ09yZ2FuVGVsJywgJHJvd1snT3JnYW5UZWwnXSApOyBkZWZpbmUoICdPcmdhbkZheCcsICRyb3dbJ09yZ2FuRmF4J10gKTsgfTsgZnVuY3Rpb24gT3JnYW5fUG9zdCAoJFBvc3RJRCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJGdWxsTmFtZSIsICJQb3N0IiwgIlNpZ25hdHVyZSIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdvcmdhbnBvc3QnLCAiT1BJRD0kUG9zdElEIik7ICRhcnIxID0gYXJyYXkoIkZ1bGxOYW1lIiA9PiAkcm93WydGdWxsTmFtZSddLCAiUG9zdCIgPT4gJHJvd1snUG9zdCddLCAiU2lnbmF0dXJlIiA9PiAkcm93WydTaWduYXR1cmUnXSk7IHJldHVybiAkYXJyMTsgfTsgZnVuY3Rpb24gQ2hlY2tCb3hfVXNlclN0YXR1cyAoJHZhbHVlLCAkVUlEKSB7ICRVbmlxID0gdW5pcWlkKCk7ICRvdXQgPSAnPGNlbnRlcj48ZGl2IGNsYXNzPSJSb3VuZGVkQ2hlY2tib3giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iU3RhdHVzW10iIGlkPSJTdGF0dXMnLiRVbmlxLiciIHZhbHVlPSInLiAkVUlEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjxsYWJlbCBmb3I9IlN0YXR1cycuJFVuaXEuJyI+PC9sYWJlbD48ZGl2PjwvZGl2PjwvZGl2PjwvY2VudGVyPic7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIFRhYmxlX2Jhc2VfcGVyc29uICgkdmFsdWUsICRVSUQpIHsgJG91dCA9ICIgKCBTRUxFQ1QgKiBGUk9NIGJhc2VfcGVyc29uIFdIRVJFIFBJRCBJTiAoU0VMRUNUIFBJRCBGUk9NIGJhc2VfcGVyc29uY2VudGVyX2FjY2VzcyBXSEVSRSBVSUQ9JF9TRVNTSU9OW2FkbWluaWRdKSBPUiBDZW50ZXJJRCBJTiAoU0VMRUNUIENlbnRlcklEIEZST00gYmFzZV9wZXJzb25jZW50ZXJfYWNjZXNzIFdIRVJFIFVJRD0kX1NFU1NJT05bYWRtaW5pZF0pIE9SIChTRUxFQ1QgSUYoKFNFTEVDVCBQQ0lEIEZST00gYmFzZV9wZXJzb25jZW50ZXJfYWNjZXNzIFdIRVJFIFBJRCBJUyBOVUxMIEFORCBDZW50ZXJJRCBJUyBOVUxMIEFORCBVSUQ9JF9TRVNTSU9OW2FkbWluaWRdKSwgMSwgMCkpICkgQVMgdGJCYXNlUGVyc29uICI7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIENoZWNrZWRfVXNlckFjY2VzcygkUGVySUQ9JycpIHsgZ2xvYmFsICRkYiwgJGJhY2s7IGlmICggIUAkUGVySUQgKSBAJFBlcklEID0gJF9SRVFVRVNUWydQSUQnXTsgaWYgKGlzX2FycmF5KCRQZXJJRCkpICRTdHJfUElEID0gJ1BJRCBJTiAoJy4gaW1wbG9kZSgnLCcsICRQZXJJRCkgLicpJzsgZWxzZSAkU3RyX1BJRCA9ICJQSUQ9JFBlcklEIjsgaWYgKCBAJFBlcklEICYmIEAkX0dFVFsnYWN0aW9uJ10hPSdVc2VyQWNjZXNzUGVyc29uQ2VudGVyJyApIHsgJHJvdzUwID0gJGRiLT5zZWxlY3RPbmUoYXJyYXkoIlBJRCIpLCAnYmFzZV9wZXJzb24nLCAkU3RyX1BJRC4iIEFORCAoIFBJRCBJTiAoU0VMRUNUIFBJRCBGUk9NIGJhc2VfcGVyc29uY2VudGVyX2FjY2VzcyBXSEVSRSBVSUQ9JF9TRVNTSU9OW2FkbWluaWRdKSBPUiBDZW50ZXJJRCBJTiAoU0VMRUNUIENlbnRlcklEIEZST00gYmFzZV9wZXJzb25jZW50ZXJfYWNjZXNzIFdIRVJFIFVJRD0kX1NFU1NJT05bYWRtaW5pZF0pIE9SIChTRUxFQ1QgSUYoKFNFTEVDVCBQQ0lEIEZST00gYmFzZV9wZXJzb25jZW50ZXJfYWNjZXNzIFdIRVJFIFBJRCBJUyBOVUxMIEFORCBDZW50ZXJJRCBJUyBOVUxMIEFORCBVSUQ9JF9TRVNTSU9OW2FkbWluaWRdKSwgMSwgMCkpICkiKTsgaWYgKCAhQCRyb3c1MFsnUElEJ10gKSB7ICRvdXQgPSAnINmF2KzZiNiyINiv2LPYqtix2LPbjCDYqNmHINin24zZhiDYudi22Ygg2KjYsdin24wg2LTZhdinINi12KfYr9ixINmG2LTYr9mHINin2LPYqi48YnI+PGJyPiA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+IDxhIGhyZWY9IicuIChAJGJhY2s/QCRiYWNrOlBBVEhfUk9PVCkgLiciIGNsYXNzPSJCb3hNc2dPSyI+2KjYp9iy2q/YtNiqPC9hPiAnOyBPdXRwdXRFcnJvcigkb3V0KTsgZXhpdCgpOyB9IH0gfSBmdW5jdGlvbiBTZXRfQWN0aXZlWWVhcnNfUGVyc29ubmVsICgpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiWUlEIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2VfeWVhcicsICJBY3RpdmVZZWFyc19QZXJzb25uZWw9MSIpOyAkX1NFU1NJT05bJ0FjdGl2ZVllYXJzX1BlcnNvbm5lbCddID0gJHJvd1snWUlEJ107IH07IGZ1bmN0aW9uIFNldF9BY3RpdmVZZWFyc19GYWN1bHR5ICgpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiWUlEIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2VfeWVhcicsICJBY3RpdmVZZWFyc19GYWN1bHR5PTEiKTsgJF9TRVNTSU9OWydBY3RpdmVZZWFyc19GYWN1bHR5J10gPSAkcm93WydZSUQnXTsgfTsgZnVuY3Rpb24gQ2hlY2tlZF9TZXRJdGVtWWVhciAoJFllYXJJRCwgJFR5cGVQZXJzb24pIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiWUlEIiwgIlllYXJUaXRsZSIpOyBpZiAoICEkZGItPnNlbGVjdE9uZVZhbHVlKCdEb21haW4nLCAnaG9rbV9jb25maWcnLCAiWUlEPSRZZWFySUQgQU5EIFR5cGVQZXJzb249JFR5cGVQZXJzb24iKSApIHJldHVybiAnPGJyPtii24zYqtmFINmH2KfbjCDYp9uM2YYg2LPYp9mEINiu2KfZhNuMINmF24wg2KjYp9i02K8uICjYrNmH2Kog2KraqdmF24zZhCDZhtmF2YjYr9mGINii24zYqtmFINmH2KfYjCDYp9iyINmF2YbZiNuMINiq2YbYuNuM2YXYp9iqINiz2KfZhNuM2KfZhtmHINin2LPYqtmB2KfYr9mHINmG2YXYp9uM24zYryknOyB9OyBmdW5jdGlvbiBDaGVja0JveF9NZW1iZXJQZXJzb25uZWwgKCR2YWx1ZSwgJFBJRCkgeyAkb3V0ID0gJyA8Y2VudGVyPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iTWVtYmVyUGVyc29ubmVsW10iIHZhbHVlPSInLiAkUElEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjwvY2VudGVyPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQSURbXSIgdmFsdWU9IicuICRQSUQgLiciPiAnOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBDaGVja0JveF9NZW1iZXJGYWN1bHR5ICgkdmFsdWUsICRQSUQpIHsgJG91dCA9ICcgPGNlbnRlcj48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Ik1lbWJlckZhY3VsdHlbXSIgdmFsdWU9IicuICRQSUQgLiciICcuICgkdmFsdWU9PTEgPyAnY2hlY2tlZCcgOiAnJyApIC4nIGNsYXNzPSJGaWVsZF9DaGVja0JveCI+PC9jZW50ZXI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlBJRFtdIiB2YWx1ZT0iJy4gJFBJRCAuJyI+ICc7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIFNhbmF2YXRfS2hlZG1hdCAoJERhdGVFc3Rla2hkYW0sICRPbGRTYW5hdmF0LCAkT2xkU2FuYXZhdFR5cGUsICREYXRlRXhlKSB7IEBsaXN0KCRzdGFydF95ZWFyLCAkc3RhcnRfbW9udGgsICRzdGFydF9kYXkpID0gZXhwbG9kZSgiLyIsICREYXRlRXN0ZWtoZGFtKTsgbGlzdCgkT2xkU2FuYXZhdF95ZWFyLCAkT2xkU2FuYXZhdF9tb250aCwgJE9sZFNhbmF2YXRfZGF5KSA9IGV4cGxvZGUoIi0iLCAkT2xkU2FuYXZhdCk7IEBsaXN0KCRlbmRfeWVhciwgJGVuZF9tb250aCwgJGVuZF9kYXkpID0gZXhwbG9kZSgiLyIsICREYXRlRXhlKTsgJHN0YXJ0ID0gJHN0YXJ0X3llYXIuJy8nLiRzdGFydF9tb250aC4nLycuJHN0YXJ0X2RheTsgJGVuZCA9ICRlbmRfeWVhci4nLycuJGVuZF9tb250aC4nLycuJGVuZF9kYXk7ICRkYXRlX2RpZmZfYXJyYXkgPSBkYXRlX2RpZmZlcmVuY2UoJGVuZCwgJHN0YXJ0KTsgaWYgKCAkT2xkU2FuYXZhdF95ZWFyIHx8ICRPbGRTYW5hdmF0X21vbnRoIHx8ICRPbGRTYW5hdmF0X2RheSApIHsgaWYgKCAkT2xkU2FuYXZhdFR5cGU9PTEgKSB7IGlmICggKCRkYXRlX2RpZmZfYXJyYXlbJ2RheSddKyRPbGRTYW5hdmF0X2RheSk8PTI5ICkgeyAkZGF0ZV9kaWZmX2FycmF5WydkYXknXSArPSAkT2xkU2FuYXZhdF9kYXk7IH0gZWxzZSB7ICRkYXRlX2RpZmZfYXJyYXlbJ21vbnRoJ10rKzsgJGRhdGVfZGlmZl9hcnJheVsnZGF5J10gPSAoJE9sZFNhbmF2YXRfZGF5ICsgJGRhdGVfZGlmZl9hcnJheVsnZGF5J10pIC0gMzA7IH0gaWYgKCAoJGRhdGVfZGlmZl9hcnJheVsnbW9udGgnXSskT2xkU2FuYXZhdF9tb250aCk8PTExICkgeyAkZGF0ZV9kaWZmX2FycmF5Wydtb250aCddICs9ICRPbGRTYW5hdmF0X21vbnRoOyB9IGVsc2UgeyAkZGF0ZV9kaWZmX2FycmF5Wyd5ZWFyJ10rKzsgJGRhdGVfZGlmZl9hcnJheVsnbW9udGgnXSA9ICgkT2xkU2FuYXZhdF9tb250aCArICRkYXRlX2RpZmZfYXJyYXlbJ21vbnRoJ10pIC0gMTI7IH0gJGRhdGVfZGlmZl9hcnJheVsneWVhciddICs9ICRPbGRTYW5hdmF0X3llYXI7IH0gaWYgKCAkT2xkU2FuYXZhdFR5cGU9PTIgKSB7IGlmICggKCRkYXRlX2RpZmZfYXJyYXlbJ2RheSddLSRPbGRTYW5hdmF0X2RheSk+PTAgKSB7ICRkYXRlX2RpZmZfYXJyYXlbJ2RheSddIC09ICRPbGRTYW5hdmF0X2RheTsgfSBlbHNlIHsgJGRhdGVfZGlmZl9hcnJheVsnbW9udGgnXS0tOyAkZGF0ZV9kaWZmX2FycmF5WydkYXknXSA9IDMwIC0gKCRPbGRTYW5hdmF0X2RheSAtICRkYXRlX2RpZmZfYXJyYXlbJ2RheSddKTsgfSBpZiAoICgkZGF0ZV9kaWZmX2FycmF5Wydtb250aCddLSRPbGRTYW5hdmF0X21vbnRoKT49MCApIHsgJGRhdGVfZGlmZl9hcnJheVsnbW9udGgnXSAtPSAkT2xkU2FuYXZhdF9tb250aDsgfSBlbHNlIHsgJGRhdGVfZGlmZl9hcnJheVsneWVhciddLS07ICRkYXRlX2RpZmZfYXJyYXlbJ21vbnRoJ10gPSAxMiAtICgkT2xkU2FuYXZhdF9tb250aCAtICRkYXRlX2RpZmZfYXJyYXlbJ21vbnRoJ10pOyB9ICRkYXRlX2RpZmZfYXJyYXlbJ3llYXInXSAtPSAkT2xkU2FuYXZhdF95ZWFyOyB9IH0gcmV0dXJuICRkYXRlX2RpZmZfYXJyYXk7IH07IGZ1bmN0aW9uIGRhdGVfZGlmZmVyZW5jZSAoJGVuZCwgJHN0YXJ0LCAkSW5EYXlzPWZhbHNlKSB7IGxpc3QoJGVuZF95ZWFyLCAkZW5kX21vbnRoLCAkZW5kX2RheSkgPSBleHBsb2RlKCIvIiwgJGVuZCk7IGxpc3QoJHN0YXJ0X3llYXIsICRzdGFydF9tb250aCwgJHN0YXJ0X2RheSkgPSBleHBsb2RlKCIvIiwgJHN0YXJ0KTsgaWYgKCAkSW5EYXlzPT10cnVlICkgeyAkZW5kID0gam1rdGltZSgwLDAsMCwkZW5kX21vbnRoLCRlbmRfZGF5LCRlbmRfeWVhcik7ICRzdGFydCA9IGpta3RpbWUoMCwwLDAsJHN0YXJ0X21vbnRoLCRzdGFydF9kYXksJHN0YXJ0X3llYXIpOyAkdGVtcCA9ICRlbmQgLSAkc3RhcnQ7ICRkaWZmID0gKGludCkoJHRlbXAgLyA4NjQwMCk7IH0gZWxzZSB7IGlmICgkZW5kIDwgJHN0YXJ0KSByZXR1cm4gZmFsc2U7IGlmICgkZW5kX2RheSA+PSAkc3RhcnRfZGF5KSB7ICRkaWZmWydkYXknXSA9ICRlbmRfZGF5IC0gJHN0YXJ0X2RheTsgfSBlbHNlIHsgJGVuZF9tb250aC0tOyAkdGVtcCA9IGpta3RpbWUoMCwwLDAsJHN0YXJ0X21vbnRoLCRzdGFydF9kYXksJHN0YXJ0X3llYXIpOyAkZGlmZlsnZGF5J10gPSBqZGF0ZSgidCIsJHRlbXAsJycsJycsJ2VuJykgLSAkc3RhcnRfZGF5ICsgJGVuZF9kYXk7IH0gaWYgKCRlbmRfbW9udGggPj0gJHN0YXJ0X21vbnRoKSB7ICRkaWZmWydtb250aCddID0gJGVuZF9tb250aCAtICRzdGFydF9tb250aDsgfSBlbHNlIHsgJGVuZF95ZWFyLS07ICRkaWZmWydtb250aCddID0gMTIgLSAkc3RhcnRfbW9udGggKyAkZW5kX21vbnRoOyB9ICRkaWZmWyd5ZWFyJ10gPSAkZW5kX3llYXIgLSAkc3RhcnRfeWVhcjsgfSByZXR1cm4gJGRpZmY7IH0gZnVuY3Rpb24gTGFzdERlZ3JlZSAoJFBJRCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJTSUQiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnYmFzZV9zdHVkeXNwZWNzJywgIlBJRD0kUElEIiwgJ0RhdGVPZmYgREVTQywgU0lEIERFU0MnKTsgcmV0dXJuICRyb3dbJ1NJRCddOyB9OyBmdW5jdGlvbiBQcmludF9EZWdyZWUgKCRzaWQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiRGVncmVlIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2Vfc3R1ZHlzcGVjcycsICJTSUQ9JHNpZCIpOyByZXR1cm4gJHJvd1snRGVncmVlJ107IH07IGZ1bmN0aW9uIEVxdWFsX0RlZ3JlZSAoJGRlZ3JlZSkgeyAkb3V0ID0gZmFsc2U7IGlmICggJGRlZ3JlZT09MSApICRvdXQgPSAzOyBpZiAoICRkZWdyZWU9PTIgKSAkb3V0ID0gNDsgaWYgKCAkZGVncmVlPT0zICkgJG91dCA9IDU7IGlmICggJGRlZ3JlZT09NCApICRvdXQgPSA2OyBpZiAoICRkZWdyZWU9PTUgKSAkb3V0ID0gMTsgaWYgKCAkZGVncmVlPT02ICkgJG91dCA9IDI7IGlmICggJGRlZ3JlZT09NyApICRvdXQgPSAzOyBpZiAoICRkZWdyZWU9PTggKSAkb3V0ID0gNDsgaWYgKCAkZGVncmVlPT05ICkgJG91dCA9IDU7IGlmICggJGRlZ3JlZT09MTAgKSAkb3V0ID0gNjsgcmV0dXJuICRvdXQ7IH07IGZ1bmN0aW9uIE9uZUhvdXIgKCRCYXNlU2FsYXJ5LCAkU3BlY2lhbCkgeyByZXR1cm4gT3V0cHV0X051bWJlciggcm91bmQoICgkQmFzZVNhbGFyeSskU3BlY2lhbCkvNTAgKSApOyB9IGZ1bmN0aW9uIFN0YXRlX1R5cGVFc3Rla2hkYW0gKCRQSUQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiVHlwZUVzdGVraGRhbSIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX29yZ2Fuc3BlY3MnLCAiUElEPSRQSUQiKTsgcmV0dXJuIFR5cGVFc3Rla2hkYW0oJHJvd1snVHlwZUVzdGVraGRhbSddKTsgfTsgZnVuY3Rpb24gU3RhdGVfVHlwZUVzdGVraGRhbV9lbG1pICgkUElEKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIlR5cGVFc3Rla2hkYW0iKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnYmFzZV9vcmdhbnNwZWNzX2VsbWknLCAiUElEPSRQSUQiKTsgcmV0dXJuIFR5cGVFc3Rla2hkYW1fZWxtaSgkcm93WydUeXBlRXN0ZWtoZGFtJ10pOyB9OyBmdW5jdGlvbiBHZXRfQ29udHJhY3RvciAoJHRjaWQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiQWphbnNOYW1lIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ3RyYW5zX2NvbnRyYWN0b3InLCAiVENJRD0kdGNpZCIpOyByZXR1cm4gJHJvd1snQWphbnNOYW1lJ107IH07IGZ1bmN0aW9uIFNldF9BY3RpdmVZZWFyc19TdXBwbGllciAoKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIllJRCIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX3llYXInLCAiQWN0aXZlWWVhcnNfU3VwcGxpZXI9MSIpOyAkX1NFU1NJT05bJ0FjdGl2ZVllYXJzX1N1cHBsaWVyJ10gPSAkcm93WydZSUQnXTsgJGFycjEgPSBhcnJheSgiUklEIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ3N1cF9yZXZvbHZpbmdmdW5kJywgIlVJRD0kX1NFU1NJT05bYWRtaW5pZF0iKTsgJF9TRVNTSU9OWydSSUQnXSA9ICRyb3dbJ1JJRCddOyB9OyBmdW5jdGlvbiBTZXRfUmV2b2x2aW5nRnVuZCAoJFJJRD0nREInKSB7IGlmICgkUklEPT0nREInKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIlJJRCIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdzdXBfcmV2b2x2aW5nZnVuZCcsICJVSUQ9JF9TRVNTSU9OW2FkbWluaWRdIik7ICRfU0VTU0lPTlsnUklEJ10gPSAkcm93WydSSUQnXTsgfSBlbHNlICRfU0VTU0lPTlsnUklEJ10gPSAkUklEOyB9OyBmdW5jdGlvbiBHZXRfUmV2b2x2aW5nRnVuZCAoKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIk5hbWUiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnc3VwX3Jldm9sdmluZ2Z1bmQnLCAiUklEPSRfU0VTU0lPTltSSURdIik7IHJldHVybiAkcm93WydOYW1lJ107IH07IGZ1bmN0aW9uIEdldF9UaXRsZVllYXIgKCRZSUQ9JycpIHsgaWYgKGVtcHR5KCRZSUQpKSAkWUlEID0gJF9TRVNTSU9OWydBY3RpdmVZZWFyc19TdXBwbGllciddOyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJZZWFyVGl0bGUiKTsgJHJvdzEgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2VfeWVhcicsICJZSUQ9JFlJRCIpOyByZXR1cm4gJHJvdzFbJ1llYXJUaXRsZSddOyB9OyBmdW5jdGlvbiBHZXRfQ29tcGFueU5hbWUgKCRzaWQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiQ29tcGFueU5hbWUiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnc3VwX3NhbGVzbWFuJywgIlJJRD0kX1NFU1NJT05bUklEXSBBTkQgU0lEPSRzaWQiKTsgcmV0dXJuICRyb3dbJ0NvbXBhbnlOYW1lJ107IH07IGZ1bmN0aW9uIEdldF9OdW1MaXN0ICgkSUlEKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIllJRCIsICJTdGF0dXNMaXN0IiwgIk51bUxpc3QiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnc3VwX2ludm9pY2UnLCAiUklEPSRfU0VTU0lPTltSSURdIEFORCBJSUQ9JElJRCIpOyBpZiAoICRyb3dbJ1N0YXR1c0xpc3QnXT09MSApIHsgJGFycjIgPSBhcnJheSgiTnVtIik7ICRyb3cyID0gJGRiLT5zZWxlY3RPbmUoJGFycjIsICdzdXBfc3VtbWFyeV9mdW5kJywgIlJJRD0kX1NFU1NJT05bUklEXSBBTkQgWUlEPSRyb3dbWUlEXSBBTkQgU0ZJRD0kcm93W051bUxpc3RdIik7ICRvdXQgPSAkcm93MlsnTnVtJ107IH0gZWxzZSBpZiAoICRyb3dbJ1N0YXR1c0xpc3QnXT09MiApIHsgJGFycjIgPSBhcnJheSgiTnVtIik7ICRyb3cyID0gJGRiLT5zZWxlY3RPbmUoJGFycjIsICdzdXBfc3VtbWFyeV9wYXlhYmxlJywgIlJJRD0kX1NFU1NJT05bUklEXSBBTkQgWUlEPSRyb3dbWUlEXSBBTkQgU1BJRD0kcm93W051bUxpc3RdIik7ICRvdXQgPSAkcm93MlsnTnVtJ107IH0gZWxzZSAkb3V0ID0gMDsgcmV0dXJuICRvdXQ7IH07IGZ1bmN0aW9uIEdldF9MaW5rSW52b2ljZSAoJElJRCkgeyByZXR1cm4gJzxhIGhyZWY9IicuIFBBVEhfUk9PVCAuJ3N1cHBsaWVyL3N1cF9pbnZvaWNlX2VkaXQucGhwP0lJRD0nLiAkSUlEIC4nIj7ZhNuM2YbaqTwvYT4nOyB9OyBmdW5jdGlvbiBHZXRfQm9va09mQWNjb3VudF9NZW1iZXJOYW1lICgkYm1pZCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJNZW1iZXJOYW1lIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ3N1cF9ib29rb2ZhY2NvdW50X21lbWJlcicsICJSSUQ9JF9TRVNTSU9OW1JJRF0gQU5EIEJNSUQ9JGJtaWQiKTsgcmV0dXJuICRyb3dbJ01lbWJlck5hbWUnXTsgfTsgZnVuY3Rpb24gU2V0X0FjdGl2ZVllYXJzX0luc3VyYW5jZSAoJFlJRD0nJykgeyBpZiAoQCRZSUQpICRTdHJXaGVyZSA9ICdZSUQ9Jy4kWUlEOyBlbHNlICRTdHJXaGVyZSA9ICdBY3RpdmVZZWFyc19JbnN1cmFuY2U9MSc7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIllJRCIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX3llYXInLCAkU3RyV2hlcmUpOyAkX1NFU1NJT05bJ0FjdGl2ZVllYXJzX0luc3VyYW5jZSddID0gJHJvd1snWUlEJ107IH07IGZ1bmN0aW9uIENoZWNrQm94X01lbWJlckluc3VyYW5jZSAoJHZhbHVlLCAkUElELCAkRElEKSB7ICRVbmlxID0gdW5pcWlkKCk7ICRvdXQgPSAnPGNlbnRlcj48ZGl2IGNsYXNzPSJSb3VuZGVkQ2hlY2tib3giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iTWVtYmVySW5zdXJhbmNlW10iIGlkPSJNZW1iZXJJbnN1cmFuY2UnLiRVbmlxLiciIHZhbHVlPSInLiAkUElEIC4nIiBkYXRhLURJRD0iJy4gJERJRCAuJyIgJy4gKCR2YWx1ZT09MSA/ICdjaGVja2VkJyA6ICcnICkgLicgY2xhc3M9IkZpZWxkX0NoZWNrQm94Ij48bGFiZWwgZm9yPSJNZW1iZXJJbnN1cmFuY2UnLiRVbmlxLiciPjwvbGFiZWw+PGRpdj48L2Rpdj48L2Rpdj48L2NlbnRlcj4nOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBHZXRfRGVwZW5kZW50TmFtZSAoJERJRCkgeyBnbG9iYWwgJGRiOyAkYXJyMSA9IGFycmF5KCJGaXJzdE5hbWUiLCAiTGFzdE5hbWUiLCAiRGVwZW5kZW5jZSIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX2RlcGVuZGVudCcsICJESUQ9JERJRCIpOyBpZiAoICRkYi0+Y291bnRSb3dzKCkhPTAgKSByZXR1cm4gJHJvd1snRmlyc3ROYW1lJ10uJyAnLiRyb3dbJ0xhc3ROYW1lJ10uJyAtICcuIERlcGVuZGVuY2UoJHJvd1snRGVwZW5kZW5jZSddKTsgZWxzZSByZXR1cm4gJ9io24zZhdmHINi02K/ZhyDYp9i12YTbjCc7IH07IGZ1bmN0aW9uIENvbW1pdG1lbnRSZW1haW5lZCAoJFlJRCwgJFBJRCwgJERJRCwgJENNSUQpIHsgZ2xvYmFsICRkYjsgJHF1ZXJ5X3N0cjUgPSBzcHJpbnRmKCIgU0VMRUNUIHQxLkNNSUQsIElGKHQxLlN0YXR1c0NNPTMsIChTRUxFQ1QgQ09VTlQoRElEKSsxIEZST00gYmFzZV9kZXBlbmRlbnQgV0hFUkUgTWVtYmVySW5zdXJhbmNlPScxJyBBTkQgUElEPSVzKSp0MS5BbW91bnRDTSwgdDEuQW1vdW50Q00pIEFTIEFtb3VudENNLCB0MS5TdGF0dXNDTSBGUk9NIGluc19jb21taXRtZW50cyBBUyB0MSBXSEVSRSBDTUlEPShTRUxFQ1QgSUYodGIxLlBhcmVudENNSUQgSVMgTlVMTCwgdGIxLkNNSUQsIChTRUxFQ1QgSUYodGIyLlBhcmVudENNSUQgSVMgTlVMTCwgdGIyLkNNSUQsIChTRUxFQ1QgdGIzLkNNSUQgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIzIFdIRVJFIHRiMi5QYXJlbnRDTUlEPXRiMy5DTUlEKSkgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIyIFdIRVJFIHRiMS5QYXJlbnRDTUlEPXRiMi5DTUlEKSkgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIxIFdIRVJFIHRiMS5DTUlEPSVzKSAiLCAkUElELCAkQ01JRCApOyBAJHJlc3VsdF9zdHI1ID0gJGRiLT5xdWVyeSgkcXVlcnlfc3RyNSk7ICRyb3dfc3RyNSA9ICRkYi0+ZmV0Y2hBc3NvYygkcmVzdWx0X3N0cjUpOyAkQ01JRF9TID0gaW1wbG9kZSgnLCcsIGFycmF5X21lcmdlKGFycmF5KCRyb3dfc3RyNVsnQ01JRCddKSwgRmluZENoaWxkcmVuKCdDTUlEJywgYXJyYXkoKSwgJHJvd19zdHI1WydDTUlEJ10pKSk7IGlmICggJHJvd19zdHI1WydTdGF0dXNDTSddPT0yICkgJFN0ckRJRCA9ICdBTkQgdDEuRElEICcuICggJERJRD09MCA/ICdJUyBOVUxMJyA6ICc9ICcuJERJRCApOyBlbHNlICRTdHJESUQgPSAnJzsgJHF1ZXJ5X3N0cjYgPSBzcHJpbnRmKCIgU0VMRUNUIFNVTSh0Mi5BbW91bnRQYWlkKSBBUyBDb25zdW1lZCBGUk9NIGluc19wcmVzY3JpcHRpb24gQVMgdDEsIGluc19wcmVzY3JpcHRpb25faXRlbXMgQVMgdDIgV0hFUkUgdDEuUFNJRCA9IHQyLlBTSUQgICRTdHJESUQgQU5EIHQxLllJRCA9ICVzIEFORCB0MS5QSUQgPSAlcyBBTkQgKFN0YXR1c1BheT0xIE9SIFN0YXR1c1BheT0yKSBBTkQgdDIuQ01JRCBJTiAoJXMpIiwgJFlJRCwgJFBJRCwgJENNSURfUyApOyBAJHJlc3VsdF9zdHI2ID0gJGRiLT5xdWVyeSgkcXVlcnlfc3RyNik7IEAkcm93X3N0cjYgPSAkZGItPmZldGNoQXNzb2MoJHJlc3VsdF9zdHI2KTsgJFJlbWFpbmluZyA9ICRyb3dfc3RyNVsnQW1vdW50Q00nXSAtICRyb3dfc3RyNlsnQ29uc3VtZWQnXTsgcmV0dXJuICRSZW1haW5pbmc7IH07IGZ1bmN0aW9uIENvbW1pdG1lbnRTdGF0dXNfV2FpdGluZ1BlcmlvZCAoJFlJRCwgJFBJRCwgJERJRCwgJENNSUQsICREYXRlQ3VycmVudCkgeyBnbG9iYWwgJGRiOyAkcXVlcnlfc3RyNSA9IHNwcmludGYoIiBTRUxFQ1QgdDEuQ01JRCwgdDEuU3RhdHVzQ00sIHQxLldhaXRpbmdQZXJpb2RDTSBGUk9NIGluc19jb21taXRtZW50cyBBUyB0MSBXSEVSRSBDTUlEPShTRUxFQ1QgSUYodGIxLlBhcmVudENNSUQgSVMgTlVMTCwgdGIxLkNNSUQsIChTRUxFQ1QgSUYodGIyLlBhcmVudENNSUQgSVMgTlVMTCwgdGIyLkNNSUQsIChTRUxFQ1QgdGIzLkNNSUQgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIzIFdIRVJFIHRiMi5QYXJlbnRDTUlEPXRiMy5DTUlEKSkgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIyIFdIRVJFIHRiMS5QYXJlbnRDTUlEPXRiMi5DTUlEKSkgRlJPTSBpbnNfY29tbWl0bWVudHMgQVMgdGIxIFdIRVJFIHRiMS5DTUlEPSVzKSAiLCAkQ01JRCApOyBAJHJlc3VsdF9zdHI1ID0gJGRiLT5xdWVyeSgkcXVlcnlfc3RyNSk7ICRyb3dfc3RyNSA9ICRkYi0+ZmV0Y2hBc3NvYygkcmVzdWx0X3N0cjUpOyBpZiAoJHJvd19zdHI1WydXYWl0aW5nUGVyaW9kQ00nXSkgeyAkQ01JRF9TID0gaW1wbG9kZSgnLCcsIGFycmF5X21lcmdlKGFycmF5KCRyb3dfc3RyNVsnQ01JRCddKSwgRmluZENoaWxkcmVuKCdDTUlEJywgYXJyYXkoKSwgJHJvd19zdHI1WydDTUlEJ10pKSk7IGlmICggJHJvd19zdHI1WydTdGF0dXNDTSddPT0yICkgJFN0ckRJRCA9ICdBTkQgdDEuRElEICcuICggJERJRD09MCA/ICdJUyBOVUxMJyA6ICc9ICcuJERJRCApOyBlbHNlICRTdHJESUQgPSAnJzsgJHF1ZXJ5X3N0cjYgPSBzcHJpbnRmKCIgU0VMRUNUIERhdGUgRlJPTSBpbnNfcHJlc2NyaXB0aW9uIEFTIHQxLCBpbnNfcHJlc2NyaXB0aW9uX2l0ZW1zIEFTIHQyIFdIRVJFIHQxLlBTSUQgPSB0Mi5QU0lEICAkU3RyRElEIEFORCB0MS5ZSUQgPSAlcyBBTkQgdDEuUElEID0gJXMgQU5EIChTdGF0dXNQYXk9MSBPUiBTdGF0dXNQYXk9MikgQU5EIHQyLkNNSUQgSU4gKCVzKSIsICRZSUQsICRQSUQsICRDTUlEX1MgKTsgQCRyZXN1bHRfc3RyNiA9ICRkYi0+cXVlcnkoJHF1ZXJ5X3N0cjYpOyAkcm93X3N0cjYgPSAkZGItPmZldGNoQXNzb2MoJHJlc3VsdF9zdHI2KTsgaWYgKCAkZGItPmNvdW50Um93cygkcmVzdWx0X3N0cjYpPjAgKSB7IEAkRGF0ZUN1cnJlbnQgPSBDaGVja0NvbnZEYXRlKCREYXRlQ3VycmVudCk7IGlmICggQCRyb3dfc3RyNlsnRGF0ZSddICYmIEAkRGF0ZUN1cnJlbnQgKSB7ICRkYXlfZGlmZiA9IGFicyhkYXRlX2RpZmZlcmVuY2UoJERhdGVDdXJyZW50LCAkcm93X3N0cjZbJ0RhdGUnXSwgdHJ1ZSkpOyBpZiAoICRkYXlfZGlmZjw9JHJvd19zdHI1WydXYWl0aW5nUGVyaW9kQ00nXSApIHJldHVybiB0cnVlOyBlbHNlIHJldHVybiBmYWxzZTsgfSBlbHNlIHJldHVybiB0cnVlOyB9IGVsc2UgcmV0dXJuIGZhbHNlOyB9IGVsc2UgcmV0dXJuIGZhbHNlOyB9OyBmdW5jdGlvbiBBZ2VfQ2FsY3VsYXRlICgkRGF0ZUJpcnRoLCAkRGF0ZUN1cnJlbnQsICR0eXBlPTEpIHsgQCREYXRlQmlydGggPSBDaGVja0NvbnZEYXRlKCREYXRlQmlydGgpOyBAJERhdGVDdXJyZW50ID0gQ2hlY2tDb252RGF0ZSgkRGF0ZUN1cnJlbnQpOyBpZiAoIEAkRGF0ZUJpcnRoICYmIEAkRGF0ZUN1cnJlbnQgKSB7ICRkYXRlX2RpZmYgPSBkYXRlX2RpZmZlcmVuY2UoJERhdGVDdXJyZW50LCAkRGF0ZUJpcnRoKTsgaWYgKCAkdHlwZT09MSApIHJldHVybiAkZGF0ZV9kaWZmOyBlbHNlIHJldHVybiAkZGF0ZV9kaWZmWyd5ZWFyJ10uJyDYs9in2YQg2YggJy4kZGF0ZV9kaWZmWydtb250aCddLicg2YXYp9mHINmIICcuJGRhdGVfZGlmZlsnZGF5J10uJyDYsdmI2LInOyB9IGVsc2UgeyBpZiAoICR0eXBlPT0xICkgcmV0dXJuIGZhbHNlOyBlbHNlIHJldHVybiAn2KrYp9ix24zYriDYqtmI2YTYryDYrtin2YTbjCDYp9iz2KouJzsgfSB9OyBmdW5jdGlvbiBDaGVja0JveF9QU0lEICgkdmFsdWUsICRQU0lEKSB7ICRvdXQgPSAnPGNlbnRlcj48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlBTSURbXSIgdmFsdWU9IicuICRQU0lEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjwvY2VudGVyPic7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIFNldF9BY3RpdmVZZWFyc19GYWN1bHR5RXZhbCAoKSB7IGdsb2JhbCAkZGI7ICRhcnIxID0gYXJyYXkoIllJRCIpOyAkcm93ID0gJGRiLT5zZWxlY3RPbmUoJGFycjEsICdiYXNlX3llYXInLCAiQWN0aXZlWWVhcnNfRmFjdWx0eUV2YWw9MSIpOyAkX1NFU1NJT05bJ0FjdGl2ZVllYXJzX0ZhY3VsdHlFdmFsJ10gPSAkcm93WydZSUQnXTsgfTsgZnVuY3Rpb24gQ2hlY2tCb3hfTWVtYmVyRXZhbHVhdGlvbiAoJHZhbHVlLCAkUElEKSB7ICRvdXQgPSAnIDxjZW50ZXI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJNZW1iZXJFdmFsdWF0aW9uW10iIHZhbHVlPSInLiAkUElEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjwvY2VudGVyPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQSURbXSIgdmFsdWU9IicuICRQSUQgLiciPiAnOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBDaGVja0JveF9NZW1iZXJMb2FuICgkdmFsdWUsICRQSUQpIHsgJG91dCA9ICcgPGNlbnRlcj48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Ik1lbWJlckxvYW5bXSIgdmFsdWU9IicuICRQSUQgLiciICcuICgkdmFsdWU9PTEgPyAnY2hlY2tlZCcgOiAnJyApIC4nIGNsYXNzPSJGaWVsZF9DaGVja0JveCI+PC9jZW50ZXI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlBJRFtdIiB2YWx1ZT0iJy4gJFBJRCAuJyI+ICc7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIEdldExvYW5QZXJzb25uZWxTdGF0dXMgKCRQSUQpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiTWVtYmVyUGVyc29ubmVsIiwgIk1lbWJlckZhY3VsdHkiKTsgJHJvdyA9ICRkYi0+c2VsZWN0T25lKCRhcnIxLCAnYmFzZV9wZXJzb24nLCAiUElEPSRQSUQiKTsgJHJlc3VsdDIgPSAkZGItPnF1ZXJ5KCJTRUxFQ1QgSUYoTWVtYmVyUGVyc29ubmVsPTEsIDEsIDIpIEFTIFBlcnNvbm5lbFR5cGUsIE1heEludHJvZHVjdGlvbiwgTWF4V2FycmFudHkgLCAoTWF4SW50cm9kdWN0aW9uIC0gKFNFTEVDVCBJRk5VTEwoU1VNKHQzLkxvYW5BbW91bnQpLDApIEZST00gbG9hbl9pbnRyb2R1Y3Rpb24gQVMgdDMgV0hFUkUgdDMuU3RhdHVzPTEgQU5EIHQxLlBJRD10My5QSUQpKSBBUyBSZW1haW5lZEludHJvZHVjdGlvbiAsIChNYXhXYXJyYW50eSAtIChTRUxFQ1QgSUZOVUxMKFNVTSh0NC5Mb2FuQW1vdW50KSwwKSBGUk9NIGxvYW5fd2FycmFudHkgQVMgdDQgV0hFUkUgdDQuU3RhdHVzPTEgQU5EIHQxLlBJRD10NC5QSUQpKSBBUyBSZW1haW5lZFdhcnJhbnR5IEZST00gYmFzZV9wZXJzb24gQVMgdDEgTEVGVCBKT0lOIGxvYW5fbWF4aW11bSBBUyB0MiBPTiAoTWF4VHlwZT1JRihNZW1iZXJQZXJzb25uZWw9MSwgMSwgMikpIFdIRVJFIHQxLlBJRD0kUElEIik7ICRhcnJheSA9IGFycmF5KCk7IHdoaWxlICgkcm93ID0gJGRiLT5mZXRjaEFzc29jKCRyZXN1bHQyKSkgeyAkYXJyYXlbJ1BlcnNvbm5lbFR5cGUnXSA9ICRyb3dbJ1BlcnNvbm5lbFR5cGUnXTsgJGFycmF5WydNYXhJbnRyb2R1Y3Rpb24nXSA9ICRyb3dbJ01heEludHJvZHVjdGlvbiddOyAkYXJyYXlbJ01heFdhcnJhbnR5J10gPSAkcm93WydNYXhXYXJyYW50eSddOyAkYXJyYXlbJ1JlbWFpbmVkSW50cm9kdWN0aW9uJ10gPSAkcm93WydSZW1haW5lZEludHJvZHVjdGlvbiddOyAkYXJyYXlbJ1JlbWFpbmVkV2FycmFudHknXSA9ICRyb3dbJ1JlbWFpbmVkV2FycmFudHknXTsgfSAkZGItPmZyZWVSZXN1bHQoJHJlc3VsdDIpOyByZXR1cm4gJGFycmF5OyB9IGZ1bmN0aW9uIFNldF9BY3RpdmVZZWFyc19GaXNoICgpIHsgZ2xvYmFsICRkYjsgJGFycjEgPSBhcnJheSgiWUlEIik7ICRyb3cgPSAkZGItPnNlbGVjdE9uZSgkYXJyMSwgJ2Jhc2VfeWVhcicsICJBY3RpdmVZZWFyc19GaXNoPTEiKTsgJF9TRVNTSU9OWydBY3RpdmVZZWFyc19GaXNoJ10gPSAkcm93WydZSUQnXTsgfTsgZnVuY3Rpb24gQ2hlY2tCb3hfTWVtYmVyRmlzaCAoJHZhbHVlLCAkUElEKSB7ICRvdXQgPSAnIDxjZW50ZXI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJNZW1iZXJGaXNoW10iIHZhbHVlPSInLiAkUElEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjwvY2VudGVyPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQSURbXSIgdmFsdWU9IicuICRQSUQgLiciPiAnOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBDaGVja0JveF9NZW1iZXJGb29kICgkdmFsdWUsICRQSUQpIHsgJFVuaXEgPSB1bmlxaWQoKTsgJG91dCA9ICc8Y2VudGVyPjxkaXYgY2xhc3M9IlJvdW5kZWRDaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJNZW1iZXJGb29kW10iIGlkPSJNZW1iZXJGb29kJy4kVW5pcS4nIiB2YWx1ZT0iJy4gJFBJRCAuJyIgJy4gKCR2YWx1ZT09MSA/ICdjaGVja2VkJyA6ICcnICkgLicgY2xhc3M9IkZpZWxkX0NoZWNrQm94Ij48bGFiZWwgZm9yPSJNZW1iZXJGb29kJy4kVW5pcS4nIj48L2xhYmVsPjxkaXY+PC9kaXY+PC9kaXY+PC9jZW50ZXI+JzsgcmV0dXJuICRvdXQ7IH0gZnVuY3Rpb24gU2VsZWN0Qm94X0ZHcnBJRCAoJHZhbHVlLCAkUElEKSB7ICRvdXQgPSAnIDxjZW50ZXI+IDxzZWxlY3QgbmFtZT0iRkdycElEW10iIGNsYXNzPSJGaWVsZF9TaXplMSIgZGF0YS1waWQ9IicuICRQSUQgLiciPiA8b3B0aW9uIHZhbHVlPSIwIj4tLS08L29wdGlvbj4gJy4gU2VsZWN0X0Zyb21EQignRnJvbURCJywgJ2Zvb2RfZ3JvdXAnLCAnRkdycElEJywgJ0ZHcnBUaXRsZScsICcnLCAnRkdycElEIEFTQycsIEAkdmFsdWUpIC4nIDwvc2VsZWN0PiA8L2NlbnRlcj4gJzsgcmV0dXJuICRvdXQ7IH0gZnVuY3Rpb24gU2VsZWN0Qm94X1Jlc2VydmVDb3VudCAoJHZhbHVlLCAkUElELCAkRk1QbGFuSUQsICRGb29kSUQsICRTdGF0dXNEZWxpdmVyeSkgeyBpZiAoICRTdGF0dXNEZWxpdmVyeT09MSApICRvdXQgPSAnPGNlbnRlcj5b2KrYrdmI24zZhCDYtNiv2YddICZ0aW1lczsgJy5AJHZhbHVlLic8L2NlbnRlcj4nOyBlbHNlIHsgZ2xvYmFsICRkYjsgJFN0clF1ZXJ5ID0gIlNFTEVDVCBGR3JwQ291bnRQZXJzb24rRkdycENvdW50U3Vic2lkeSBBUyBGb29kQ291bnQgRlJPTSBiYXNlX3BlcnNvbiBBUyB0YjEsIGZvb2RfZ3JvdXAgQVMgdGIyIFdIRVJFIHRiMS5GR3JwSUQ9dGIyLkZHcnBJRCBBTkQgUElEPSRQSUQiOyAkcmVzdWx0ID0gJGRiLT5xdWVyeSgkU3RyUXVlcnkpOyAkcm93ID0gJGRiLT5mZXRjaEFzc29jKCRyZXN1bHQpOyAkb3V0ID0gJyA8Y2VudGVyPiA8c2VsZWN0IG5hbWU9IlJlc2VydmVDb3VudFtdIiBjbGFzcz0iRmllbGRfU2l6ZTEiIGRhdGEtdmFsdWU9IicuIEAkdmFsdWUgLiciIGRhdGEtcGlkPSInLiAkUElEIC4nIiBkYXRhLWZtcGxhbmlkPSInLiAkRk1QbGFuSUQgLiciIGRhdGEtZm9vZGlkPSInLiAkRm9vZElEIC4nIj4gPG9wdGlvbiB2YWx1ZT0iMCI+LS0tPC9vcHRpb24+ICc7IGZvcigkaT0xOyAkaTw9JHJvd1snRm9vZENvdW50J107ICRpKyspIHsgJG91dCAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4kaS4nIiAnLigkaT09JHZhbHVlPydzZWxlY3RlZCc6JycpLic+Jy4kaS4nPC9vcHRpb24+JzsgfSAkb3V0IC49ICcgPC9zZWxlY3Q+IDwvY2VudGVyPiAnOyB9IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIENoZWNrQm94X1N0YXR1c0RlbGl2ZXJ5ICgkdmFsdWUsICRQSUQsICRSZXNlcnZlSUQsICRGb29kSUQpIHsgJFVuaXEgPSB1bmlxaWQoKTsgJG91dCA9ICc8Y2VudGVyPjxkaXYgY2xhc3M9IlJvdW5kZWRDaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJTdGF0dXNEZWxpdmVyeVtdIiBpZD0iU3RhdHVzRGVsaXZlcnknLiRVbmlxLiciIHZhbHVlPSInLiAkUElEIC4nIiBkYXRhLXJlc2VydmVpZD0iJy4gJFJlc2VydmVJRCAuJyIgZGF0YS1mb29kaWQ9IicuICRGb29kSUQgLiciICcuICgkdmFsdWU9PTEgPyAnY2hlY2tlZCcgOiAnJyApIC4nIGNsYXNzPSJGaWVsZF9DaGVja0JveCI+PGxhYmVsIGZvcj0iU3RhdHVzRGVsaXZlcnknLiRVbmlxLiciPjwvbGFiZWw+PGRpdj48L2Rpdj48L2Rpdj48L2NlbnRlcj4nOyByZXR1cm4gJG91dDsgfSBmdW5jdGlvbiBSZXNlcnZlQ2FuY2VsICgkUmVzZXJ2ZUlELCAkRk1QbGFuSUQsICRQSUQsICRGb29kSUQsICRSZXNlcnZlRGF0ZSwgJE1lYWxJRCwgJFJlc2VydmVDb3VudCwgJFJlc2VydmVDb3VudF9CZWZvcmVDaGFuZ2UpIHsgZ2xvYmFsICRkYjsgaWYgKCAkUmVzZXJ2ZUNvdW50PT0wICYmICRSZXNlcnZlSUQhPTAgKSB7ICRTdHJRdWVyeSA9ICJERUxFVEUgRlJPTSBmb29kX3Jlc2VydmUgV0hFUkUgUmVzZXJ2ZUlEPSRSZXNlcnZlSUQiOyBpZiAoICRkYi0+cXVlcnkoJFN0clF1ZXJ5KSApICRmbmNfU3RhdHVzID0gdHJ1ZTsgZWxzZSAkZm5jX1N0YXR1cyA9IGZhbHNlOyB9IGlmICggJFJlc2VydmVJRCE9MCApICRTdHJfbm90X1Jlc2VydmVJRCA9ICcgQU5EIFJlc2VydmVJRCE9Jy4kUmVzZXJ2ZUlEOyBlbHNlICRTdHJfbm90X1Jlc2VydmVJRCA9ICcnOyAkU3RyUXVlcnkgPSAiIFNFTEVDVCAoRkdycENvdW50UGVyc29uLShTRUxFQ1QgSUZOVUxMKFNVTShDb3VudFBlcnNvbiksMCkgRlJPTSBmb29kX3Jlc2VydmUgV0hFUkUgUElEPSRQSUQgQU5EIFJlc2VydmVEYXRlPSckUmVzZXJ2ZURhdGUnIEFORCBNZWFsSUQ9JE1lYWxJRCAgJFN0cl9ub3RfUmVzZXJ2ZUlEKSkgQVMgUmVtYWluZWRfQ291bnRQZXJzb24gLCAoRkdycENvdW50U3Vic2lkeS0oU0VMRUNUIElGTlVMTChTVU0oQ291bnRTdWJzaWR5KSwwKSBGUk9NIGZvb2RfcmVzZXJ2ZSBXSEVSRSBQSUQ9JFBJRCBBTkQgUmVzZXJ2ZURhdGU9JyRSZXNlcnZlRGF0ZScgQU5EIE1lYWxJRD0kTWVhbElEICAkU3RyX25vdF9SZXNlcnZlSUQpKSBBUyBSZW1haW5lZF9Db3VudFN1YnNpZHkgLCBJbmNsdWRlU3Vic2lkeSAsIElGKEluY2x1ZGVTdWJzaWR5PScyJywgMCwgSUYoRk1QbGFuU2hhcmVUeXBlPScwJyAsIElGKEZHcnBTaGFyZVR5cGU9JzEnLCBJRihGR3JwU2hhcmVFbXBsb3k+Rk1QbGFuUHJpY2UsRk1QbGFuUHJpY2UsRkdycFNoYXJlRW1wbG95KSwgRk1QbGFuUHJpY2UqKEZHcnBTaGFyZUVtcGxveS8xMDApKSAsIElGKEZNUGxhblNoYXJlVHlwZT0nMScsIElGKEZNUGxhblNoYXJlRW1wbG95PkZNUGxhblByaWNlLEZNUGxhblByaWNlLEZNUGxhblNoYXJlRW1wbG95KSwgRk1QbGFuUHJpY2UqKEZNUGxhblNoYXJlRW1wbG95LzEwMCkpICkpIEFTIFNoYXJlRW1wbG95X09uZSBGUk9NIGJhc2VfcGVyc29uIEFTIHQxLCBmb29kX2dyb3VwIEFTIHQyIExFRlQgSk9JTiBmb29kX21lYWxwbGFuIEFTIHQzIE9OIChGTVBsYW5JRD0kRk1QbGFuSUQgQU5EIEZNUGxhblN0YXR1cz0nMScpIFdIRVJFIHQxLkZHcnBJRD10Mi5GR3JwSUQgQU5EIEZHcnBTdGF0dXM9JzEnIEFORCBQSUQ9JFBJRCAiOyAkcmVzdWx0ID0gJGRiLT5xdWVyeSgkU3RyUXVlcnkpOyAkcm93ID0gJGRiLT5mZXRjaEFzc29jKCRyZXN1bHQpOyAkQ291bnRTdWJzaWR5ID0gKCRyb3dbJ0luY2x1ZGVTdWJzaWR5J109PScyJyA/IDAgOiAoJFJlc2VydmVDb3VudDw9JHJvd1snUmVtYWluZWRfQ291bnRTdWJzaWR5J10gPyAkUmVzZXJ2ZUNvdW50IDogJHJvd1snUmVtYWluZWRfQ291bnRTdWJzaWR5J10pKTsgJENvdW50UGVyc29uID0gKCgkUmVzZXJ2ZUNvdW50LSRDb3VudFN1YnNpZHkpPD0kcm93WydSZW1haW5lZF9Db3VudFBlcnNvbiddID8gKCRSZXNlcnZlQ291bnQtJENvdW50U3Vic2lkeSkgOiAkcm93WydSZW1haW5lZF9Db3VudFBlcnNvbiddKTsgJFJlc2VydmVDb3VudCA9ICRDb3VudFN1YnNpZHkgKyAkQ291bnRQZXJzb247ICRSZW1haW5lZF9Db3VudFN1YnNpZHkgPSAkcm93WydSZW1haW5lZF9Db3VudFN1YnNpZHknXSAtICRDb3VudFN1YnNpZHk7ICRSZW1haW5lZF9Db3VudFBlcnNvbiA9ICRyb3dbJ1JlbWFpbmVkX0NvdW50UGVyc29uJ10gLSAkQ291bnRQZXJzb247IGlmICggJFJlc2VydmVDb3VudD4wICkgeyBpZiAoICRSZXNlcnZlSUQ9PTAgKSB7ICRTdHJRdWVyeSA9ICJJTlNFUlQgSU5UTyBmb29kX3Jlc2VydmUoUElELCBSZXNlcnZlQ291bnQsIFN0YXR1c0RlbGl2ZXJ5LCBSZXNlcnZlRGF0ZSwgQ291bnRTdWJzaWR5LCBDb3VudFBlcnNvbiwgSW5jbHVkZVN1YnNpZHksIFByaWNlX09uZSwgU2hhcmVFbXBsb3lfT25lLCBTdW1QcmljZUVtcGxveSwgU3VtUHJpY2VNZW1iZXIsIE1lYWxJRCwgRlR5cGVJRCwgRm9vZElELCBGQ29udElEKSBTRUxFQ1QgJFBJRCwgJFJlc2VydmVDb3VudCBBUyBSZXNlcnZlQ291bnQsICcyJywgJyRSZXNlcnZlRGF0ZScgLCAkQ291bnRTdWJzaWR5ICwgJENvdW50UGVyc29uICwgSW5jbHVkZVN1YnNpZHkgLCBGTVBsYW5QcmljZSAsICIuJHJvd1snU2hhcmVFbXBsb3lfT25lJ10uIiAsICgkQ291bnRTdWJzaWR5KiIuJHJvd1snU2hhcmVFbXBsb3lfT25lJ10uIikgQVMgU3VtUHJpY2VFbXBsb3kgLCAoJFJlc2VydmVDb3VudCpGTVBsYW5QcmljZS0oJENvdW50U3Vic2lkeSoiLiRyb3dbJ1NoYXJlRW1wbG95X09uZSddLiIpKSBBUyBTdW1QcmljZU1lbWJlciAsICRNZWFsSUQsIEZUeXBlSUQsIEZvb2RJRCwgRkNvbnRJRCBGUk9NIGZvb2RfbWVhbHBsYW4gV0hFUkUgRk1QbGFuSUQ9JEZNUGxhbklEIEFORCBGTVBsYW5TdGF0dXM9JzEnIjsgfSBlbHNlIHsgJFN0clF1ZXJ5ID0gIlVQREFURSBmb29kX3Jlc2VydmUgU0VUIFJlc2VydmVDb3VudD0kUmVzZXJ2ZUNvdW50LCBDb3VudFN1YnNpZHk9JENvdW50U3Vic2lkeSwgQ291bnRQZXJzb249JENvdW50UGVyc29uICwgU3VtUHJpY2VFbXBsb3k9KCRDb3VudFN1YnNpZHkqU2hhcmVFbXBsb3lfT25lKSAsIFN1bVByaWNlTWVtYmVyPSgkUmVzZXJ2ZUNvdW50KlByaWNlX09uZS0oJENvdW50U3Vic2lkeSpTaGFyZUVtcGxveV9PbmUpKSBXSEVSRSBSZXNlcnZlSUQ9JFJlc2VydmVJRCI7IH0gaWYgKCAkZGItPnF1ZXJ5KCRTdHJRdWVyeSkgKSAkZm5jX1N0YXR1cyA9IHRydWU7IGVsc2UgJGZuY19TdGF0dXMgPSBmYWxzZTsgfSBpZiAoICRSZXNlcnZlQ291bnRfQmVmb3JlQ2hhbmdlPiRSZXNlcnZlQ291bnQgJiYgJFJlbWFpbmVkX0NvdW50U3Vic2lkeT4wICkgeyAkU3RyUXVlcnkgPSAiU0VMRUNUIFJlc2VydmVJRCwgQ291bnRQZXJzb24gRlJPTSBmb29kX3Jlc2VydmUgV0hFUkUgSW5jbHVkZVN1YnNpZHk9JzEnIEFORCBDb3VudFBlcnNvbj4wIEFORCBQSUQ9JFBJRCBBTkQgUmVzZXJ2ZURhdGU9JyRSZXNlcnZlRGF0ZScgQU5EIE1lYWxJRD0kTWVhbElEICAkU3RyX25vdF9SZXNlcnZlSUQiOyAkcmVzdWx0ID0gJGRiLT5xdWVyeSgkU3RyUXVlcnkpOyB3aGlsZSAoJHJvdyA9ICRkYi0+ZmV0Y2hBc3NvYygkcmVzdWx0KSkgeyBpZiAoJFJlbWFpbmVkX0NvdW50U3Vic2lkeT4wKSB7ICRfX0NvdW50U3Vic2lkeSA9ICgkcm93WydDb3VudFBlcnNvbiddPiRSZW1haW5lZF9Db3VudFN1YnNpZHkgPyAkUmVtYWluZWRfQ291bnRTdWJzaWR5IDogJHJvd1snQ291bnRQZXJzb24nXSk7ICRSZW1haW5lZF9Db3VudFN1YnNpZHkgLT0gJF9fQ291bnRTdWJzaWR5OyB9ICRTdHJRdWVyeSA9ICJVUERBVEUgZm9vZF9yZXNlcnZlIFNFVCAgQ291bnRTdWJzaWR5PUNvdW50U3Vic2lkeSskX19Db3VudFN1YnNpZHkgLCBDb3VudFBlcnNvbj1Db3VudFBlcnNvbi0kX19Db3VudFN1YnNpZHkgLCBTdW1QcmljZUVtcGxveT0oQ291bnRTdWJzaWR5KlNoYXJlRW1wbG95X09uZSkgLCBTdW1QcmljZU1lbWJlcj0oUmVzZXJ2ZUNvdW50KlByaWNlX09uZS0oQ291bnRTdWJzaWR5KlNoYXJlRW1wbG95X09uZSkpIFdIRVJFIFJlc2VydmVJRD0iLiRyb3dbJ1Jlc2VydmVJRCddOyAkZGItPnF1ZXJ5KCRTdHJRdWVyeSk7IH0gJGRiLT5mcmVlUmVzdWx0KCRyZXN1bHQpOyB9IGlmICggJGZuY19TdGF0dXMgKSByZXR1cm4gdHJ1ZTsgZWxzZSByZXR1cm4gZmFsc2U7IH0gZnVuY3Rpb24gQ2hlY2tCb3hfU2NoTXNnU3RhdHVzICgkdmFsdWUsICRTY2hNc2dJRCkgeyAkVW5pcSA9IHVuaXFpZCgpOyAkb3V0ID0gJzxjZW50ZXI+PGRpdiBjbGFzcz0iUm91bmRlZENoZWNrYm94Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNjaE1zZ1N0YXR1c1tdIiBpZD0iU2NoTXNnU3RhdHVzJy4kVW5pcS4nIiB2YWx1ZT0iJy4gJFNjaE1zZ0lEIC4nIiAnLiAoJHZhbHVlPT0xID8gJ2NoZWNrZWQnIDogJycgKSAuJyBjbGFzcz0iRmllbGRfQ2hlY2tCb3giPjxsYWJlbCBmb3I9IlNjaE1zZ1N0YXR1cycuJFVuaXEuJyI+PC9sYWJlbD48ZGl2PjwvZGl2PjwvZGl2PjwvY2VudGVyPic7IHJldHVybiAkb3V0OyB9IGZ1bmN0aW9uIENoZWNrQm94X1N0YXR1cyAoJHZhbHVlLCAkSUQpIHsgJFVuaXEgPSB1bmlxaWQoKTsgJG91dCA9ICc8Y2VudGVyPjxkaXYgY2xhc3M9IlJvdW5kZWRDaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJTdGF0dXNbXSIgaWQ9IlN0YXR1cycuJFVuaXEuJyIgdmFsdWU9IicuICRJRCAuJyIgJy4gKCR2YWx1ZT09MSA/ICdjaGVja2VkJyA6ICcnICkgLicgY2xhc3M9IkZpZWxkX0NoZWNrQm94Ij48bGFiZWwgZm9yPSJTdGF0dXMnLiRVbmlxLiciPjwvbGFiZWw+PGRpdj48L2Rpdj48L2Rpdj48L2NlbnRlcj4nOyByZXR1cm4gJG91dDsgfSA/Pg==

Function Calls

None

Variables

None

Stats

MD5 aafae71af13d54ab3bbe95134b84f164
Eval Count 0
Decode Time 1467 ms