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

Signing you up...

Thank you for signing up!

PHP Decode

IGlmICghZGVmaW5lZCgnTlhTQVBJVkVSJykpIGRlZmluZSgnTlhTQVBJVkVSJywnNC41LjE5IFtJRDoyMTMzM10nKT..

Decoded Output download

<?  IGlmICghZGVmaW5lZCgnTlhTQVBJVkVSJykpIGRlZmluZSgnTlhTQVBJVkVSJywnNC41LjE5IFtJRDoyMTMzM10nKTsgaWYgKCFkZWZpbmVkKCdOWFNXUE1VRicpKSBkZWZpbmUoJ05YU1dQTVVGJywnMScpOyBpZiAoIWRlZmluZWQoJ05YU0FQSUNPREUnKSkgZGVmaW5lKCdOWFNBUElDT0RFJywnMScpOyBpZiAoIWRlZmluZWQoJ05YU1dQTElDJykpIGRlZmluZSgnTlhTV1BMSUMnLCcxJyk7IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHN2NFNNQVMnKSl7ZnVuY3Rpb24gbnhzdjRTTUFTKCl7fX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ254c19kb1NNQVM0Jykpe2Z1bmN0aW9uIG54c19kb1NNQVM0KCl7fX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ25zX1NNQVNWNDEnKSl7ZnVuY3Rpb24gbnNfU01BU1Y0MSgpe319IGlmICghZnVuY3Rpb25fZXhpc3RzKCJybmRTdHJpbmciKSkge2Z1bmN0aW9uIHJuZFN0cmluZygkbG5ndGgpeyRzdHI9Jyc7JGNoYXJzPSJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSI7JHNpemU9c3RybGVuKCRjaGFycyk7Zm9yKCRpPTA7JGk8JGxuZ3RoOyRpKyspeyRzdHIgLj0gJGNoYXJzW3JhbmQoMCwkc2l6ZS0xKV07fSByZXR1cm4gJHN0cjt9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibnhzX21rSW1nTm0iKSl7ZnVuY3Rpb24gbnhzX21rSW1nTm0oJGZuLCAkY1R5cGUpeyAkaWV4ID0gYXJyYXkoIi5wbmciLCAiLmpwZyIsICIuZ2lmIiwgIi5qcGVnIik7ICRtYXAgPSBhcnJheSgnaW1hZ2UvZ2lmJz0+Jy5naWYnLCdpbWFnZS9qcGVnJz0+Jy5qcGcnLCdpbWFnZS9wbmcnPT4nLnBuZycpOyAkZm4gPSBzdHJfcmVwbGFjZSgkaWV4LCAnJywgJGZuKTsgaWYgKGlzc2V0KCRtYXBbJGNUeXBlXSkpe3JldHVybiAkZm4uJG1hcFskY1R5cGVdO30gZWxzZSByZXR1cm4gJGZuLiIuanBnIjsgfX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoIm54c19jbEZOIikpeyBmdW5jdGlvbiBueHNfY2xGTigkZm4peyRzY2ggPSBhcnJheSgiPyIsICJbIiwgIl0iLCAiLyIsICJcXCIsICI9IiwgIjwiLCAiPiIsICI6IiwgIjsiLCAiLCIsICInIiwgIlwiIiwgIiYiLCAiJCIsICIjIiwgIioiLCAiKCIsICIpIiwgInwiLCAifiIsICJgIiwgIiEiLCAieyIsICJ9Iik7IHJldHVybiB0cmltKHByZWdfcmVwbGFjZSgnL1tccy1dKy8nLCAnLScsIHN0cl9yZXBsYWNlKCRzY2gsICcnLCAkZm4pKSwgJy4tXycpOyB9fSBpZiAoIWNsYXNzX2V4aXN0cygibnhzX0lQVEMiKSkgeyBjbGFzcyBueHNfSVBUQyB7IGNvbnN0IENSRUFURURfREFURSA9ICcwNTUnOyBjb25zdCBDUkVBVEVEX1RJTUUgPSAnMDYwJzsgY29uc3QgQ09QWVJJR0hUX1NUUklORyA9ICcxMTYnOyBjb25zdCBDQVBUSU9OID0gJzEyMCc7IHByaXZhdGUgJF9tZXRhID0gYXJyYXkoKTsgcHJpdmF0ZSAkX2hhc01ldGEgPSBmYWxzZTsgcHJpdmF0ZSAkX2FsbG93ZWRFeHQgPSBhcnJheSgnanBnJywgJ2pwZWcnLCAncGpwZWcnKTsgcHJpdmF0ZSAkX2ZpbGVuYW1lOyBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGZpbGVuYW1lKSB7IGlmICghZmlsZV9leGlzdHMoJGZpbGVuYW1lKSkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCAnSW1hZ2Ugbm90IGZvdW5kIScgKTsgfSBpZiAoIWlzX3dyaXRhYmxlKCRmaWxlbmFtZSkpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbiggIkZpbGUgXCJ7JGZpbGVuYW1lfVwiIGlzIG5vdCB3cml0YWJsZSEiICk7IH0gJHBhcnRzID0gZXhwbG9kZSgnLicsIHN0cnRvbG93ZXIoJGZpbGVuYW1lKSk7IGlmICghaW5fYXJyYXkoZW5kKCRwYXJ0cyksICR0aGlzLT5fYWxsb3dlZEV4dCkpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJ1N1cHBvcnQgb25seSBmb3IgdGhlIGZvbGxvd2luZyBleHRlbnNpb25zOiAnIC4gaW1wbG9kZSgnLCcsICR0aGlzLT5fYWxsb3dlZEV4dCkgKTsgfSAkc2l6ZSA9IGdldGltYWdlc2l6ZSgkZmlsZW5hbWUsICRpbWFnZWluZm8pOyBpZiAoZW1wdHkoJHNpemVbJ21pbWUnXSkgfHwgJHNpemVbJ21pbWUnXSAhPSAnaW1hZ2UvanBlZycpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJ1N1cHBvcnQgb25seSBKUEVHIGltYWdlcycgKTsgfSAkdGhpcy0+X2hhc01ldGEgPSBpc3NldCgkaW1hZ2VpbmZvWyJBUFAxMyJdKTsgaWYgKCR0aGlzLT5faGFzTWV0YSkgeyAkdGhpcy0+X21ldGEgPSBpcHRjcGFyc2UoJGltYWdlaW5mb1siQVBQMTMiXSk7IH0gJHRoaXMtPl9maWxlbmFtZSA9ICRmaWxlbmFtZTsgfSBwdWJsaWMgZnVuY3Rpb24gc2V0KCR0YWcsICRkYXRhKSB7ICRkYXRhID0gJHRoaXMtPl9jaGFyc2V0X2RlY29kZSgkZGF0YSk7ICR0aGlzLT5fbWV0YVsiMiN7JHRhZ30iXSA9IGFycmF5KCRkYXRhKTsgJHRoaXMtPl9oYXNNZXRhID0gdHJ1ZTsgcmV0dXJuICR0aGlzOyB9IHB1YmxpYyBmdW5jdGlvbiBiaW5hcnkoKSB7ICRpcHRjID0gJyc7IGZvcmVhY2ggKGFycmF5X2tleXMoJHRoaXMtPl9tZXRhKSBhcyAka2V5KSB7ICR0YWcgPSBzdHJfcmVwbGFjZSgiMiMiLCAiIiwgJGtleSk7IGZvcmVhY2ggKCR0aGlzLT5fbWV0YVska2V5XSBhcyAkdmFsdWUpICRpcHRjIC49ICR0aGlzLT5pcHRjTWFrZVRhZygyLCAkdGFnLCAkdmFsdWUpOyB9IHJldHVybiAkaXB0YzsgfSBwdWJsaWMgZnVuY3Rpb24gaXB0Y01ha2VUYWcoJHJlYywgJGRhdCwgJHZhbCl7ICRpcHRjVGFnID0gY2hyKDB4MWMpIC4gY2hyKCRyZWMpIC4gY2hyKCRkYXQpOyBpZiAoaXNfYXJyYXkoJHZhbCkpIHsgJHNyYyA9ICcnOyBmb3JlYWNoICgkdmFsIGFzICRpdGVtKSB7ICRsZW4gPSBzdHJsZW4oJGl0ZW0pOyAkc3JjIC49ICRpcHRjVGFnIC4gJHRoaXMtPl90ZXN0Qml0U2l6ZSgkbGVuKSAuICRpdGVtOyB9IHJldHVybiAkc3JjOyB9ICRsZW4gPSBzdHJsZW4oJHZhbCk7ICRzcmMgPSAkaXB0Y1RhZyAuICR0aGlzLT5fdGVzdEJpdFNpemUoJGxlbikgLiAkdmFsOyByZXR1cm4gJHNyYzsgfSBwdWJsaWMgZnVuY3Rpb24gd3JpdGUoKSB7ICRjb250ZW50ID0gaXB0Y2VtYmVkKCR0aGlzLT5iaW5hcnkoKSwgJHRoaXMtPl9maWxlbmFtZSwgMCk7IGlmICgkY29udGVudCA9PT0gZmFsc2UpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJ0ZhaWxlZCB0byBzYXZlIElQVEMgZGF0YSBpbnRvIGZpbGUnICk7IH0gdW5saW5rKCR0aGlzLT5fZmlsZW5hbWUpOyBpZiAoJGZpbGUgPSBmb3BlbigkdGhpcy0+X2ZpbGVuYW1lLCAidyIpKSB7IGZ3cml0ZSgkZmlsZSwgJGNvbnRlbnQpOyBmY2xvc2UoJGZpbGUpOyByZXR1cm4gdHJ1ZTsgfSByZXR1cm4gZmFsc2U7IH0gcHJpdmF0ZSBmdW5jdGlvbiBfdGVzdEJpdFNpemUoJGxlbikgeyBpZiAoJGxlbiA8IDB4ODAwMCkgcmV0dXJuIGNocigkbGVuID4+IDgpIC4gY2hyKCRsZW4gJiAweGZmKTsgcmV0dXJuIGNocigweDFjKSAuIGNocigweDA0KSAuIGNocigoJGxlbiA+PiAyNCkgJiAweGZmKSAuIGNocigoJGxlbiA+PiAxNikgJiAweGZmKSAuIGNocigoJGxlbiA+PiA4KSAmIDB4ZmYpIC4gY2hyKCgkbGVuKSAmIDB4ZmYpOyB9IHByaXZhdGUgZnVuY3Rpb24gX2NoYXJzZXRfZGVjb2RlKCRkYXRhKSB7ICRyZXN1bHQgPSBhcnJheSgpOyBpZiAoaXNfYXJyYXkoJGRhdGEpKSB7ICRpdGVyYXRvciA9IG5ldyBcUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcihuZXcgXFJlY3Vyc2l2ZUFycmF5SXRlcmF0b3IoJGRhdGEpKTsgZm9yZWFjaCAoJGl0ZXJhdG9yIGFzICRrZXkgPT4gJHZhbHVlKSAkcmVzdWx0W10gPSB1dGY4X2RlY29kZSgkdmFsdWUpOyB9IGVsc2UgcmV0dXJuIHV0ZjhfZGVjb2RlKCRkYXRhKTsgcmV0dXJuICRyZXN1bHQ7IH0gcHJpdmF0ZSBmdW5jdGlvbiBfY2hhcnNldF9lbmNvZGUoJGRhdGEpIHsgJHJlc3VsdCA9IGFycmF5KCk7IGlmIChpc19hcnJheSgkZGF0YSkpIHsgJGl0ZXJhdG9yID0gbmV3IFxSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKG5ldyBcUmVjdXJzaXZlQXJyYXlJdGVyYXRvcigkZGF0YSkpOyBmb3JlYWNoICgkaXRlcmF0b3IgYXMgJGtleSA9PiAkdmFsdWUpICRyZXN1bHRbXSA9IHV0ZjhfZW5jb2RlKCR2YWx1ZSk7IH0gZWxzZSByZXR1cm4gdXRmOF9lbmNvZGUoJGRhdGEpOyByZXR1cm4gJHJlc3VsdDsgfSB9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibnhzX2RvU01BUzEiKSkgeyBmdW5jdGlvbiBueHNfZG9TTUFTMSgkb2JqLCAkdmFyKXsgaWYgKG1ldGhvZF9leGlzdHMoJG9iaiwnc2hvd05ld05UU2V0dGluZ3MnKSkgJG9iai0+c2hvd05ld05UU2V0dGluZ3MoJHZhcik7IH19IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHNfdjRkb1NNQVM1Jykpe2Z1bmN0aW9uIG54c192NGRvU01BUzUoJG50LCAkaWksICRudE9wdCl7ICRudFUgPSBzdHJ0b3VwcGVyKCRudCk7IGlmICggaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgJiYgJF9HRVRbJ3BhZ2UnXT09J05leHRTY3JpcHRzX1NOQVAucGhwJykgcmV0dXJuOyBnbG9iYWwgJG54c19TTkFQLCAkbnhzX3BsdXJsOyAkZGVsYXk9J3QyMzR5MnkyMDMnOyBpZiAoIWlzc2V0KCRueHNfU05BUCkpIHJldHVybjsgJG9wdGlvbnMgPSAkbnhzX1NOQVAtPm54c19vcHRpb25zOyBpZiAoJG9wdGlvbnNbJ254c0hURFAnXT09J0knKSByZXR1cm4gJyc7IGlmIChlbXB0eSgkbnRPcHRbJ3RpbWVUb1J1biddKSkgJG50T3B0Wyd0aW1lVG9SdW4nXSA9ICcnOyA/PgogIDxkaXYgY2xhc3M9Im54c1Bvc3RFZF9FbGVtV3JhcCI+PGRpdiBjbGFzcz0ibnhzdGJsZG8gbnhzdGJsZG88P3BocCBlY2hvIHN0cnRvdXBwZXIoJG50KS4kaWk7ID8+Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48P3BocCBfZSgnVGltZSB0byBwb3N0OicsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz48L3NwYW4+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyAkbnQ7ID8+Wzw/cGhwIGVjaG8gJGlpOyA/Pl1bdGltZVRvUnVuXSIgaWQ9Ijw/cGhwIGVjaG8gJG50OyA/Pjw/cGhwIGVjaG8gJGlpOyA/PnRpbWVUb1J1biIgIHZhbHVlPSI8P3BocCBlY2hvICRudE9wdFsndGltZVRvUnVuJ107Pz4iIC8+CiAgPGEgaHJlZj0iIyIgb25jbGljaz0idmFyIGRkID0galF1ZXJ5KCcjPD9waHAgZWNobyAkbnQ7ID8+PD9waHAgZWNobyAkaWk7ID8+dGltZVRvUnVuJykudmFsKCk7IGlmIChkZCE9JycpIG54c19maWxsVGltZShkZCoxMDAwKTsgalF1ZXJ5KCcjbnhzX3RpbWVJRCcpLnZhbCgnPD9waHAgZWNobyAkbnQ7ID8+PD9waHAgZWNobyAkaWk7ID8+Jyk7IGpRdWVyeS5wZ3dNb2RhbCh7IHRhcmdldDogJyNzaG93U2V0VGltZUludCcsIHRpdGxlOiAnUG9zdCcsIG1heFdpZHRoOiA4MDAsIGNsb3NlT25CYWNrZ3JvdW5kQ2xpY2sgOiB0cnVlfSk7ICByZXR1cm4gZmFsc2U7Ij5bPD9waHAgX2UoJ1NldCB0aW1lJywgJ3NvY2lhbC1uZXR3b3Jrcy1hdXRvLXBvc3Rlci1mYWNlYm9vay10d2l0dGVyLWcnKSA/Pl08L2E+IAogIDxzcGFuIGlkPSI8P3BocCBlY2hvICRudDsgPz48P3BocCBlY2hvICRpaTsgPz50aW1lVG9SdW5UeHQiPjw/cGhwICBpZiAoIWlzc2V0KCRudE9wdFsndGltZVRvUnVuJ10pIHx8IChpbnQpJG50T3B0Wyd0aW1lVG9SdW4nXTwoIWVtcHR5KCRudE9wdFsncG9zdFRpbWUnXSk/JG50T3B0Wydwb3N0VGltZSddOnRpbWUoKSkpIHsgaWYgKCFpc3NldCgkbnRPcHRbJ25NaW4nXSkpICRudE9wdFsnbk1pbiddID0gMDsgaWYgKCFpc3NldCgkbnRPcHRbJ25IcnMnXSkpICRudE9wdFsnbkhycyddID0gMDsgaWYgKCFpc3NldCgkbnRPcHRbJ25EYXlzJ10pKSAkbnRPcHRbJ25EYXlzJ10gPSAwOyAkZGVsYXkgPSAoaW50KSRudE9wdFsnbkRheXMnXSo4NjQwMCsoaW50KSRudE9wdFsnbkhycyddKjM2MDArKGludCkkbnRPcHRbJ25NaW4nXSo2MDsgaWYgKCRkZWxheT4wKSB7ICRudE9wdFsndGltZVRvUnVuJ10gPSAoIWVtcHR5KCRudE9wdFsncG9zdFRpbWUnXSk/JG50T3B0Wydwb3N0VGltZSddOnRpbWUoKSkrKGludCkkZGVsYXk7IGVjaG8gZGF0ZV9pMThuKCdGIGosIFksIEc6aScsICRudE9wdFsndGltZVRvUnVuJ10rKCBlbXB0eSgkbnRPcHRbJ3Bvc3RUaW1lJ10pPyhnZXRfb3B0aW9uKCAnZ210X29mZnNldCcgKSAqIEhPVVJfSU5fU0VDT05EUyApOjApKTsgZWNobyAiIChEZWxheTogIi4oKGludCkkbnRPcHRbJ25EYXlzJ10+MD8kbnRPcHRbJ25EYXlzJ10uJyBEYXknLigoaW50KSRudE9wdFsnbkRheXMnXSE9MT8ncywgJzonLCAnKTonJykuKChpbnQpJG50T3B0WyduSHJzJ10+MD8kbnRPcHRbJ25IcnMnXS4nIEhvdXInLigoaW50KSRudE9wdFsnbkhycyddIT0xPydzLCAnOicsICcpOicnKS4oaW50KSRudE9wdFsnbk1pbiddLicgTWludXRlJy4oKGludCkkbnRPcHRbJ25NaW4nXSE9MT8ncy4gJzonLiAnKS4iKSI7IH0gZWxzZWlmICgoaW50KSRudE9wdFsndGltZVRvUnVuJ10+MCkgZWNobyBkYXRlX2kxOG4oJ0YgaiwgWSwgRzppJywgJG50T3B0Wyd0aW1lVG9SdW4nXSsoIGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICkpOyBlbHNlIHsgX2UoJ0ltbWVkaWF0ZWx5Jyk7IH0gfSBlbHNlIGVjaG8gZGF0ZV9pMThuKCdGIGosIFksIEc6aScsICRudE9wdFsndGltZVRvUnVuJ10rKCBnZXRfb3B0aW9uKCAnZ210X29mZnNldCcgKSAqIEhPVVJfSU5fU0VDT05EUyApKTsgPz4gPC9zcGFuPgogIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsiIGlkPSJkbzw/cGhwIGVjaG8gJG50VTsgPz5fVDw/cGhwIGVjaG8gJGlpOyA/PiI+PC9kaXY+PC9kaXY+IDwvZGl2PiA8P3BocAp9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnbnhzX3Y0ZG9TTUFTNVgnKSl7ZnVuY3Rpb24gbnhzX3Y0ZG9TTUFTNVgoJG50LCAkaWksICRudE9wdCl7ICRudFUgPSBzdHJ0b3VwcGVyKCRudCk7IGlmICggaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgJiYgJF9HRVRbJ3BhZ2UnXT09J05leHRTY3JpcHRzX1NOQVAucGhwJykgcmV0dXJuOyBnbG9iYWwgJG54c19TTkFQLCAkbnhzX3BsdXJsOyAkZGVsYXk9J3QyMzR5MnkyMDMnOyBpZiAoIWlzc2V0KCRueHNfU05BUCkpIHJldHVybjsgJG9wdGlvbnMgPSAkbnhzX1NOQVAtPm54c19vcHRpb25zOyBpZiAoJG9wdGlvbnNbJ254c0hURFAnXT09J0knKSByZXR1cm4gJyc7IGlmIChlbXB0eSgkbnRPcHRbJ3RpbWVUb1J1biddKSkgJG50T3B0Wyd0aW1lVG9SdW4nXSA9ICdpJzsgJG50dEQgPSAkbnRPcHRbJ3RpbWVUb1J1biddOyBpZiAoIWVtcHR5KCRudHREKSkgeyAkbnR0QSA9IGV4cGxvZGUoJ3wnLCRudHREKTsgaWYgKCFlbXB0eSgkbnRPcHRbJ3Bvc3RUaW1lJ10pICYmICRudE9wdFsncG9zdFRpbWUnXT50aW1lKCkpIHsgJG50dEFYID0gYXJyYXkoKTsgJGltbWlkID0gZmFsc2U7IGZvcmVhY2ggKCRudHRBIGFzICRqaj0+JG50dCkgaWYgKCRudHQ9PSdpJyB8fCAkbnR0PCRudE9wdFsncG9zdFRpbWUnXSkgJGltbWlkID0gdHJ1ZTsgZWxzZSAkbnR0QVhbXSA9ICRudHQ7IGlmICgkaW1taWQpIGFycmF5X3Vuc2hpZnQoJG50dEFYICwgJ2knKTsgJG50dEEgPSAkbnR0QVg7IH0gJG50dEQgPSBpbXBsb2RlKCd8JywkbnR0QSk7ICRudE9wdFsndGltZVRvUnVuJ10gPSAkbnR0RDsgfSA/PgogIDxkaXYgY2xhc3M9Im54c1Bvc3RFZF9FbGVtV3JhcCI+PGRpdiBjbGFzcz0ibnhzdGJsZG8gbnhzdGJsZG88P3BocCBlY2hvIHN0cnRvdXBwZXIoJG50KS4kaWk7ID8+Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48P3BocCBfZSgnVGltZSB0byBwb3N0OicsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz48L3NwYW4+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyAkbnQ7ID8+Wzw/cGhwIGVjaG8gJGlpOyA/Pl1bdGltZVRvUnVuXSIgaWQ9Ijw/cGhwIGVjaG8gJG50OyA/Pjw/cGhwIGVjaG8gJGlpOyA/PnRpbWVUb1J1biIgIHZhbHVlPSI8P3BocCBlY2hvICRudE9wdFsndGltZVRvUnVuJ107Pz4iIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Ijw/cGhwIGVjaG8gJG50OyA/Pjw/cGhwIGVjaG8gJGlpOyA/PnRpbWVUb1J1bldNIiAgdmFsdWU9IkEiIC8+CiAgPGEgaHJlZj0iIyIgb25jbGljaz0ibnhzX3Nob3dUaW1lRGlhbG9nKCc8P3BocCBlY2hvICRudC4kaWk7ID8+JywnQScpOyByZXR1cm4gZmFsc2U7Ij5bPD9waHAgX2UoJ0FkZCcsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz5dPC9hPiAKICA8c3BhbiBpZD0iPD9waHAgZWNobyAkbnQ7ID8+PD9waHAgZWNobyAkaWk7ID8+dGltZVRvUnVuVHh0Ij48P3BocCBpZiAoIWVtcHR5KCRudHREKSkgeyAkbnR0QSA9IGV4cGxvZGUoJ3wnLCRudHREKTsgZm9yZWFjaCAoJG50dEEgYXMgJGpqPT4kbnR0KSB7IGlmICghaXNzZXQoJG50dCkgfHwgKGludCkkbnR0PCghZW1wdHkoJG50T3B0Wydwb3N0VGltZSddKT8kbnRPcHRbJ3Bvc3RUaW1lJ106dGltZSgpKSkgeyBpZiAoIWlzc2V0KCRudE9wdFsnbk1pbiddKSkgJG50T3B0WyduTWluJ10gPSAwOyBpZiAoIWlzc2V0KCRudE9wdFsnbkhycyddKSkgJG50T3B0WyduSHJzJ10gPSAwOyBpZiAoIWlzc2V0KCRudE9wdFsnbkRheXMnXSkpICRudE9wdFsnbkRheXMnXSA9IDA7ICRkZWxheSA9IChpbnQpJG50T3B0WyduRGF5cyddKjg2NDAwKyhpbnQpJG50T3B0WyduSHJzJ10qMzYwMCsoaW50KSRudE9wdFsnbk1pbiddKjYwOyBpZiAoJGRlbGF5PjApIHsgJG50dCA9ICghZW1wdHkoJG50T3B0Wydwb3N0VGltZSddKT8kbnRPcHRbJ3Bvc3RUaW1lJ106dGltZSgpKSsoaW50KSRkZWxheTsgZWNobyBkYXRlX2kxOG4oJ0YgaiwgWSwgRzppJywgJG50dCsoIGVtcHR5KCRudE9wdFsncG9zdFRpbWUnXSk/KGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICk6MCkpOyBlY2hvICIgKERlbGF5OiAiLigoaW50KSRudE9wdFsnbkRheXMnXT4wPyRudE9wdFsnbkRheXMnXS4nIERheScuKChpbnQpJG50T3B0WyduRGF5cyddIT0xPydzLCAnOicsICcpOicnKS4oKGludCkkbnRPcHRbJ25IcnMnXT4wPyRudE9wdFsnbkhycyddLicgSG91cicuKChpbnQpJG50T3B0WyduSHJzJ10hPTE/J3MsICc6JywgJyk6JycpLihpbnQpJG50T3B0WyduTWluJ10uJyBNaW51dGUnLigoaW50KSRudE9wdFsnbk1pbiddIT0xPydzLiAnOicuICcpLiIpIjsgfSBlbHNlaWYgKChpbnQpJG50dD4wICYmIChpbnQpJG50dD4oIWVtcHR5KCRudE9wdFsncG9zdFRpbWUnXSk/JG50T3B0Wydwb3N0VGltZSddOnRpbWUoKSkpIGVjaG8gZGF0ZV9pMThuKCdGIGosIFksIEc6aScsICRudHQrKCBnZXRfb3B0aW9uKCAnZ210X29mZnNldCcgKSAqIEhPVVJfSU5fU0VDT05EUyApKTsgZWxzZSB7IF9lKCdJbW1lZGlhdGVseScpOyA/PgogICAgICAgIDxhIGhyZWY9IiMiIG9uY2xpY2s9Im54c19zaG93VGltZURpYWxvZygnPD9waHAgZWNobyAkbnQuJGlpOyA/PicsJ0MnKTsgcmV0dXJuIGZhbHNlOyI+Wzw/cGhwIF9lKCdDaGFuZ2UnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpID8+XTwvYT4gPD9waHAgIH0gfSBlbHNlIHsgZWNobyBkYXRlX2kxOG4oJ0YgaiwgWSwgRzppJywgJG50dCsoIGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICkpLiIgIjsgPz4KICAgICAgIDxhIGhyZWY9IiMiIG9uY2xpY2s9Im54c19zaG93VGltZURpYWxvZygnPD9waHAgZWNobyAkbnQuJGlpOyA/PicsJzw/cGhwIGVjaG8gJGpqOyA/PicpOyByZXR1cm4gZmFsc2U7Ij5bPD9waHAgX2UoJ0NoYW5nZScsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz5dPC9hPiZuYnNwO3wmbmJzcDsgPD9waHAgIH0gfX0gPz4gPC9zcGFuPgogIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsiIGlkPSJkbzw/cGhwIGVjaG8gJG50VTsgPz5fVDw/cGhwIGVjaG8gJGlpOyA/PiI+PC9kaXY+PC9kaXY+IDwvZGl2PiAgPD9waHAKfX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ254c192NGRvU01BUzQxJykpe2Z1bmN0aW9uIG54c192NGRvU01BUzQxKCRvcHRpb25zKXsgPz48YnIvPgo8Yj48P3BocCBfZSgnUG9zdDonLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpOyA/PiA8L2I+IDw/cGhwIF9lKCdZb3UgY2FuIGxpbWl0IHJlcG9zdGluZyB0byBvbmx5IHNwZWNpZmljIGRheXMgYW5kIGhvdXJzLicsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJyk7ID8+Jm5ic3A7KDw/cGhwIF9lKCdDdXJyZW50IHNlcnZlciB0aW1lIGlzOiAnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpOyBlY2hvIGRhdGVfaTE4bignWS1tLWQgSDppJyk7ID8+KSAgICAgCiAgICAgPGJyLz4KPGRpdiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxNXB4OyI+CiAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJueHNfcnBzdHJbcnBzdEJ0d0hyc1R5cGVdIiB2YWx1ZT0iQSIgPD9waHAgaWYgKCFpc3NldCgkb3B0aW9uc1sncnBzdEJ0d0hyc1R5cGUnXSkgfHwgJG9wdGlvbnNbJ3Jwc3RCdHdIcnNUeXBlJ109PSdBJykgZWNobyAnY2hlY2tlZD0iY2hlY2tlZCInOyA/PiAvPiAgICAgCiAgICAgPD9waHAgX2UoJ0FsbCB0aGUgdGltZScsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJyk7ID8+CiAgICAgPGJyLz4KICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im54c19ycHN0cltycHN0QnR3SHJzVHlwZV0iIHZhbHVlPSJEIiA8P3BocCBpZiAoaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdIcnNUeXBlJ10pICYmICRvcHRpb25zWydycHN0QnR3SHJzVHlwZSddPT0nRCcpIGVjaG8gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsgPz4gLz4KICAgICA8P3BocCBfZSgnT25seSBiZXR3ZWVuIGhvdXJzJywgJ3NvY2lhbC1uZXR3b3Jrcy1hdXRvLXBvc3Rlci1mYWNlYm9vay10d2l0dGVyLWcnKTsgPz4mbmJzcDs8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibnhzX3Jwc3RyW3Jwc3RCdHdIcnNGXSIgc3R5bGU9IndpZHRoOiAzNXB4OyIgdmFsdWU9Ijw/cGhwIGVjaG8gaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdIcnNGJ10pPyRvcHRpb25zWydycHN0QnR3SHJzRiddOic4JzsgPz4iIC8+CiAgICAgJm5ic3A7PD9waHAgX2UoJ2FuZCcsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJyk7ID8+Jm5ic3A7CiAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im54c19ycHN0cltycHN0QnR3SHJzVF0iIHN0eWxlPSJ3aWR0aDogMzVweDsiIHZhbHVlPSI8P3BocCBlY2hvIGlzc2V0KCRvcHRpb25zWydycHN0QnR3SHJzVCddKT8kb3B0aW9uc1sncnBzdEJ0d0hyc1QnXTonMjEnOyA/PiIgLz4KICAgICAmbmJzcDs8P3BocCBfZSgnb24nLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpOz8+Jm5ic3A7CiAgICAgPGlucHV0IHZhbHVlPSI3IiA8P3BocCBpZiAoaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pICYmIGluX2FycmF5KCc3JywgJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pKSBlY2hvICJjaGVja2VkIjsgPz4gdHlwZT0iY2hlY2tib3giIG5hbWU9Im54c19ycHN0cltycHN0QnR3RGF5c11bXSIvPiZuYnNwO1N1biZuYnNwOyZuYnNwOwogICAgIDxpbnB1dCB2YWx1ZT0iMSIgPD9waHAgaWYgKCFpc3NldCgkb3B0aW9uc1sncnBzdEJ0d0RheXMnXSkgfHwgaW5fYXJyYXkoJzEnLCAkb3B0aW9uc1sncnBzdEJ0d0RheXMnXSkpIGVjaG8gImNoZWNrZWQiOyA/PiB0eXBlPSJjaGVja2JveCIgbmFtZT0ibnhzX3Jwc3RyW3Jwc3RCdHdEYXlzXVtdIi8+Jm5ic3A7TW9uJm5ic3A7Jm5ic3A7CiAgICAgPGlucHV0IHZhbHVlPSIyIiA8P3BocCBpZiAoIWlzc2V0KCRvcHRpb25zWydycHN0QnR3RGF5cyddKSB8fCBpbl9hcnJheSgnMicsICRvcHRpb25zWydycHN0QnR3RGF5cyddKSkgZWNobyAiY2hlY2tlZCI7ID8+IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJueHNfcnBzdHJbcnBzdEJ0d0RheXNdW10iLz4mbmJzcDtUdWUmbmJzcDsmbmJzcDsKICAgICA8aW5wdXQgdmFsdWU9IjMiIDw/cGhwIGlmICghaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pIHx8IGluX2FycmF5KCczJywgJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pKSBlY2hvICJjaGVja2VkIjsgPz4gdHlwZT0iY2hlY2tib3giIG5hbWU9Im54c19ycHN0cltycHN0QnR3RGF5c11bXSIvPiZuYnNwO1dlbiZuYnNwOyZuYnNwOwogICAgIDxpbnB1dCB2YWx1ZT0iNCIgPD9waHAgaWYgKCFpc3NldCgkb3B0aW9uc1sncnBzdEJ0d0RheXMnXSkgfHwgaW5fYXJyYXkoJzQnLCAkb3B0aW9uc1sncnBzdEJ0d0RheXMnXSkpIGVjaG8gImNoZWNrZWQiOyA/PiB0eXBlPSJjaGVja2JveCIgbmFtZT0ibnhzX3Jwc3RyW3Jwc3RCdHdEYXlzXVtdIi8+Jm5ic3A7VGgmbmJzcDsmbmJzcDsKICAgICA8aW5wdXQgdmFsdWU9IjUiIDw/cGhwIGlmICghaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pIHx8IGluX2FycmF5KCc1JywgJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pKSBlY2hvICJjaGVja2VkIjsgPz4gdHlwZT0iY2hlY2tib3giIG5hbWU9Im54c19ycHN0cltycHN0QnR3RGF5c11bXSIvPiZuYnNwO0ZyJm5ic3A7Jm5ic3A7CiAgICAgPGlucHV0IHZhbHVlPSI2IiA8P3BocCBpZiAoaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pICYmIGluX2FycmF5KCc2JywgJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pKSBlY2hvICJjaGVja2VkIjsgPz4gdHlwZT0iY2hlY2tib3giIG5hbWU9Im54c19ycHN0cltycHN0QnR3RGF5c11bXSIvPiZuYnNwO1NhdCZuYnNwOyZuYnNwOwogICAgIDwvZGl2PiA8P3BocAp9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnbnhzX3Y0ZG9TTUFTNDEyJykpe2Z1bmN0aW9uIG54c192NGRvU01BUzQxMigkb3B0aW9ucyl7ID8+PGJyLz4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJueHNfcnBzdHJbcnBzdFN0b3BdIiB2YWx1ZT0iTyIgPD9waHAgaWYgKGVtcHR5KCRvcHRpb25zWydycHN0U3RvcCddKSB8fCAkb3B0aW9uc1sncnBzdFN0b3AnXT09J08nKSBlY2hvICdjaGVja2VkPSJjaGVja2VkIic7ID8+IC8+PD9waHAgX2UoJ1R1cm4gUmVwb3N0aW5nIE9mZicsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz48YnIvPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im54c19ycHN0cltycHN0U3RvcF0iIHZhbHVlPSJXIiA8P3BocCBpZiAoIWVtcHR5KCRvcHRpb25zWydycHN0U3RvcCddKSAmJiAkb3B0aW9uc1sncnBzdFN0b3AnXT09J1cnKSBlY2hvICdjaGVja2VkPSJjaGVja2VkIic7ID8+IC8+PD9waHAgX2UoJ1dhaXQgZm9yIG5ldyBwb3N0cycsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz48YnIvPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im54c19ycHN0cltycHN0U3RvcF0iIHZhbHVlPSJSIiA8P3BocCBpZiAoIWVtcHR5KCRvcHRpb25zWydycHN0U3RvcCddKSAmJiAkb3B0aW9uc1sncnBzdFN0b3AnXT09J1InKSBlY2hvICdjaGVja2VkPSJjaGVja2VkIic7ID8+IC8+PD9waHAgX2UoJ0xvb3AgaXQuIFJlc2V0IGFuZCBTdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpID8+PGJyLz4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJueHNfcnBzdHJbcnBzdFN0b3BdIiB2YWx1ZT0iTiIgPD9waHAgaWYgKCFlbXB0eSgkb3B0aW9uc1sncnBzdFN0b3AnXSkgJiYgJG9wdGlvbnNbJ3Jwc3RTdG9wJ109PSdOJykgZWNobyAnY2hlY2tlZD0iY2hlY2tlZCInOyA/PiAvPjw/cGhwIF9lKCdSZXBlYXQnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpID8+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJueHNfcnBzdHJbcnBzdFN0b3BScHRdIiBzdHlsZT0id2lkdGg6IDM1cHg7IiB2YWx1ZT0iPD9waHAgZWNobyBpc3NldCgkb3B0aW9uc1sncnBzdFN0b3BScHQnXSk/JG9wdGlvbnNbJ3Jwc3RTdG9wUnB0J106JzUnOyA/PiIgLz4mbmJzcDs8P3BocCBfZSgnVGltZXMnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpID8+PGJyLz4KICAgICAgPD9waHAKfX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ254c192NGRvU01BUzQxMycpKXtmdW5jdGlvbiBueHNfdjRkb1NNQVM0MTMoJG9wdGlvbnMpeyAkY3VyclRpbWUgPSB0aW1lKCkgKyAoIGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICk7ID8+Cjxici8+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJueHNfcnBzdHJbcnBzdFRpbWVzXSIgdmFsdWU9IlMiIGNsYXNzPSJycHN0clRpbWVzIiA8P3BocCBpZiAoIWVtcHR5KCRvcHRpb25zWydycHN0VGltZXMnXSkgJiYgJG9wdGlvbnNbJ3Jwc3RUaW1lcyddPT0nUycpIGVjaG8gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsgPz4gLz4gPD9waHAgX2UoJ1Bvc3Qgb24gc3BlY2lmaWMgZGF0ZS90aW1lJywgJ3NvY2lhbC1uZXR3b3Jrcy1hdXRvLXBvc3Rlci1mYWNlYm9vay10d2l0dGVyLWcnKSA/Pgo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDoyMHB4O2Rpc3BsYXk6PD9waHAgZWNobyAoIWVtcHR5KCRvcHRpb25zWydycHN0VGltZXMnXSkgJiYgJG9wdGlvbnNbJ3Jwc3RUaW1lcyddPT0nUycpPydibG9jayc6J25vbmUnOz8+OyIgaWQ9InJwc3RQb3N0U3BUaW1lc09wdGlvbnMiPjw/cGhwCiBpZiAoIWVtcHR5KCRvcHRpb25zWydycHN0Q3VzdFREJ10pICYmIGlzX2FycmF5KCRvcHRpb25zWydycHN0Q3VzdFREJ10pKSBmb3JlYWNoICgkb3B0aW9uc1sncnBzdEN1c3RURCddIGFzICR0ZCkgeyBpZihzdHJ0b3RpbWUoJHRkKT4kY3VyclRpbWUpIGVjaG8gJzxkaXY+PGlucHV0IHR5cGU9XCd0ZXh0XCcgY2xhc3M9XCdycHN0UG9zdER0U3BUaW1lc09wdGlvbnMgc2VhcmNoXCcgbmFtZT1cJ254c19ycHN0cltycHN0Q3VzdFREXVtdXCcgdmFsdWU9IicuJHRkLiciIC8+PGEgaHJlZj0iIyIgb25jbGljaz0ialF1ZXJ5KHRoaXMpLnBhcmVudCgpLnJlbW92ZSgpO3JldHVybiBmYWxzZTsiPjxpbWcgc3JjPSInLk5YU19QTFVSTC4naW1nL2RlbEljb24ucG5nIi8+PC9hPjwvZGl2Pic7IH0gPz48YnIvPjxhIGhyZWY9IiMiIGlkPSJycHN0c0FkZFRpbWUiIG9uY2xpY2s9ImpRdWVyeSgnI3Jwc3RQb3N0U3BUaW1lc09wdGlvbnMnKS5hcHBlbmQoJzxkaXY+PGlucHV0IHR5cGU9XCd0ZXh0XCcgY2xhc3M9XCdycHN0UG9zdER0U3BUaW1lc09wdGlvbnNYIHNlYXJjaFwnIG5hbWU9XCdueHNfcnBzdHJbcnBzdEN1c3RURF1bXVwnIC8+PGEgaHJlZj1cJyNcJyBvbmNsaWNrPVwnalF1ZXJ5KHRoaXMpLnBhcmVudCgpLnJlbW92ZSgpO3JldHVybiBmYWxzZTtcJz48aW1nIHNyYz1cJzw/cGhwIGVjaG8gTlhTX1BMVVJMOz8+aW1nL2RlbEljb24ucG5nXCcvPjwvYT48L2Rpdj4nKTtqUXVlcnkoJy5ycHN0UG9zdER0U3BUaW1lc09wdGlvbnNYJykuYWRhdGVwaWNrZXIoe2xhbmd1YWdlOiAnZW4nLCBtaW5EYXRlOiBuZXcgRGF0ZSgpLCB0aW1lcGlja2VyOiB0cnVlfSk7IHJldHVybiBmYWxzZTsiPls8P3BocCBfZSgnQWRkIHBvc3QgZGF0ZS90aW1lJywgJ3NvY2lhbC1uZXR3b3Jrcy1hdXRvLXBvc3Rlci1mYWNlYm9vay10d2l0dGVyLWcnKSA/Pl08L2E+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmpRdWVyeSgnLnJwc3RQb3N0RHRTcFRpbWVzT3B0aW9ucycpLmFkYXRlcGlja2VyKHtsYW5ndWFnZTogJ2VuJyxtaW5EYXRlOiBuZXcgRGF0ZSgpLCB0aW1lcGlja2VyOiB0cnVlfSk7PC9zY3JpcHQ+Cjw/cGhwCn19IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHNfY2xlYW5TTkFQX3Bvc3RfbWV0YScpKXsgZnVuY3Rpb24gbnhzX2NsZWFuU05BUF9wb3N0X21ldGEoJHBvKXsgJHBvT3V0ID0gYXJyYXkoKTsgaWYgKCFlbXB0eSgkcG8pJiZpc19hcnJheSgkcG8pKSB7Zm9yZWFjaCAoJHBvIGFzICRpaT0+JHApIGlmICgoaXNzZXQoJGlpKSAmJiAoJGlpID09PSAiMCJ8fCRpaSA9PT0gMCkpIHx8ICFlbXB0eSgkaWkpKSAkcG9PdXRbJGlpXSA9ICRwOyByZXR1cm4gJHBvT3V0O30gZWxzZSByZXR1cm4gJHBvOyB9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibnhzX3Y0ZG9TTUFTMiIpKXsgZnVuY3Rpb24gbnhzX3Y0ZG9TTUFTMigkcG9zdE9iaiwgJE5YU19QT1NULCAkcHVibHR5cGUsICRhaj1mYWxzZSl7IGdsb2JhbCAkbnhzX1NOQVAsICRueHNfc25hcEF2TnRzLCAkYmxvZ19pZCwgJG54c190cFdNUFU7IGlmICghaXNzZXQoJG54c19TTkFQKSkgcmV0dXJuOyAkb3B0aW9ucyA9ICRueHNfU05BUC0+bnhzX29wdGlvbnM7ICRpc1Bvc3QgPSBpc3NldCgkTlhTX1BPU1RbInNuYXBFZElUIl0pOyAkcG9zdElEID0gJHBvc3RPYmotPklEOyAkdWlkID0gJHBvc3RPYmotPnBvc3RfYXV0aG9yOyAkaXNJdFVzZXJXaG9DYW4gPSAoIXVzZXJfY2FuKCR1aWQsICdtYW5hZ2Vfb3B0aW9ucycgKSAmJiB1c2VyX2NhbigkdWlkLCAnaGF2ZW93bl9zbmFwX2FjY3NzJykpOyBpZiAoJGlzSXRVc2VyV2hvQ2FuKSB7ICRueHNfU05BUCA9IG5ldyBueHNfU05BUCgkcG9zdFVzZXIpOyAkbmV0d29ya3MgPSAkbnhzX1NOQVAtPm54c19hY2N0c1U7ICR1aWQgPSAkcG9zdFVzZXI7IGdsb2JhbCAkbnhzX3VpZDsgJG54c191aWQgPSAkdWlkOyB9IGVsc2UgeyAkbmV0d29ya3MgPSAkbnhzX1NOQVAtPm54c19hY2N0czsgfSBmb3JlYWNoICgkbnhzX3NuYXBBdk50cyBhcyAkYXZOdCkgeyBpZiAoIWVtcHR5KCRuZXR3b3Jrc1skYXZOdFsnbGNvZGUnXV0pICYmIGNvdW50KCRuZXR3b3Jrc1skYXZOdFsnbGNvZGUnXV0pPjApIHsgJGNsTmFtZSA9ICdueHNfc25hcENsYXNzJy4kYXZOdFsnY29kZSddOyBpZiAoJGlzUG9zdCAmJiBpc3NldCgkTlhTX1BPU1RbJGF2TnRbJ2xjb2RlJ11dKSkgJHBvID0gJE5YU19QT1NUWyRhdk50WydsY29kZSddXTsgZWxzZSAkcG8gPSBtYXliZV91bnNlcmlhbGl6ZShnZXRfcG9zdF9tZXRhKCRwb3N0SUQsICdzbmFwJy4kYXZOdFsnY29kZSddLCB0cnVlKSk7ICRwbyA9IG54c19jbGVhblNOQVBfcG9zdF9tZXRhKCRwbyk7IGlmIChpc3NldCgkcG8pICYmIGlzX2FycmF5KCRwbykpICRpc1Bvc3RNZXRhID0gdHJ1ZTsgZWxzZSB7ICRpc1Bvc3RNZXRhID0gZmFsc2U7ICRwbyA9ICRuZXR3b3Jrc1skYXZOdFsnbGNvZGUnXV07IHVwZGF0ZV9wb3N0X21ldGEoJHBvc3RJRCwgJ3NuYXAnLiRhdk50Wydjb2RlJ10sICRwbyk7IH0gZGVsZXRlX3Bvc3RfbWV0YSgkcG9zdElELCAnc25hcF9pc0F1dG9Qb3N0ZWQnKTsgYWRkX3Bvc3RfbWV0YSgkcG9zdElELCAnc25hcF9pc0F1dG9Qb3N0ZWQnLCB0aW1lKCkpOyBmb3JlYWNoICgkcG8gYXMgJGlpPT4kcHApeyAkb3B0TXQgPSAkbmV0d29ya3NbJGF2TnRbJ2xjb2RlJ11dWyRpaV07ICRudENsSW5zdCA9IG5ldyAkY2xOYW1lKCk7IGlmICgkaXNQb3N0TWV0YSkgJG9wdE10ID0gJG50Q2xJbnN0LT5hZGpNZXRhT3B0KCRvcHRNdCwgJHBwKTsgaWYgKCEkbnRDbEluc3QtPmNoZWNrSWZTZXR1cEZpbmlzaGVkKCRvcHRNdCkpIGNvbnRpbnVlOyAkb3B0TXRbJ2lpJ10gPSAkaWk7ICRwdWJsVGVtcFR5cGUgPSAnJzsgaWYgKCRvcHRNdFsnZG8nXT09JzInKXsgJHJNc2c9bnhzX3NuYXBDaGVja0ZpbHRlcnMoJG9wdE10LCAkcG9zdE9iaik7IGlmKCRyTXNnIT09ZmFsc2UpeyBueHNfTG9nSXQoJ0knLCAnU2tpcHBlZCcsICRhdk50WyduYW1lJ10uJyAoJy4kb3B0TXRbJ25OYW1lJ10uJyknLCcnLCAnRmlsdGVyKE5ldHdvcmspIC0gRXhjbHVkZWQgLSBQb3N0IElEOignLiRwb3N0SUQuJyknLCRyTXNnLCAnc25hcCcsICR1aWQgKTsgY29udGludWU7IH0gZWxzZSAkb3B0TXRbJ2RvJ10gPSAxOyB9IGlmICgkb3B0TXRbJ2RvJ109PScxJykgeyAkcHVibFRlbXBUeXBlID0gJyc7IGlmICgkcHVibHR5cGU9PSdBJyAmJiAoIWVtcHR5KCRvcHRNdFsnbkRheXMnXSkgfHwgIWVtcHR5KCRvcHRNdFsnbk1pbiddKSB8fCAhZW1wdHkoJG9wdE10WyduSHJzJ10pIHx8ICFlbXB0eSgkb3B0TXRbJ3RpbWVUb1J1biddKSkpICRwdWJsVGVtcFR5cGU9J1MnOyBpZiAoJHB1Ymx0eXBlPT0nQScpIHsgJHB1YmxUZW1wVHlwZT0nUyc7IGlmICggZW1wdHkoJG9wdE10WyduRGF5cyddKSAmJiBlbXB0eSgkb3B0TXRbJ25NaW4nXSkgJiBlbXB0eSgkb3B0TXRbJ25IcnMnXSkgJiYgZW1wdHkoJG9wdE10Wyd0aW1lVG9SdW4nXSkpICRvcHRNdFsndGltZVRvUnVuJ10gPSAnaSc7IH0gaWYgKCRwdWJsdHlwZT09J1MnIHx8ICRwdWJsVGVtcFR5cGUgPT0nUycpIHsgJHB1YmxUZW1wVHlwZSA9ICcnOyBpZiAoIWlzc2V0KCRvcHRNdFsnbk1pbiddKSkgJG9wdE10WyduTWluJ10gPSAwOyBpZiAoIWlzc2V0KCRvcHRNdFsnbkhycyddKSkgJG9wdE10WyduSHJzJ10gPSAwOyBpZiAoIWlzc2V0KCRvcHRNdFsnbkRheXMnXSkpICRvcHRNdFsnbkRheXMnXSA9IDA7IGlmICgkb3B0TXRbJ25IcnMnXT4wIHx8ICRvcHRNdFsnbk1pbiddPjAgfHwgJG9wdE10WyduRGF5cyddPjApIHsgJGRlbGF5ID0gJG9wdE10WyduTWluJ10qNjArJG9wdE10WyduSHJzJ10qMzYwMCskb3B0TXRbJ25EYXlzJ10qODY0MDA7IG54c19Mb2dJdCgnSScsICdEZWxheWVkJywgJGF2TnRbJ25hbWUnXS4nICgnLiRvcHRNdFsnbk5hbWUnXS4nKScsICcnLCdQb3N0IGhhcyBiZWVuIGRlbGF5ZWQnLCcgZm9yICcuJGRlbGF5LicgU2Vjb25kcyAoJy4oJG9wdE10WyduRGF5cyddPjA/JG9wdE10WyduRGF5cyddLicgRGF5cyc6JycpLiIgIi4oJG9wdE10WyduSHJzJ10+MD8kb3B0TXRbJ25IcnMnXS4nIEhvdXJzJzonJykuIiAiLigkb3B0TXRbJ25NaW4nXT4wPyRvcHRNdFsnbk1pbiddLicgTWludXRlcyc6JycpLicpJywnc25hcCcsJHVpZCApOyB9IGVsc2UgJGRlbGF5ID0gcmFuZCg1LDMwKTsgZ2xvYmFsICR3cGRiOyBpZiAoZW1wdHkoJG9wdE10Wyd0aW1lVG9SdW4nXSkpICRvcHRNdFsndGltZVRvUnVuJ10gPSB0aW1lKCk7ICR0dHJzID0gZXhwbG9kZSgnfCcsJG9wdE10Wyd0aW1lVG9SdW4nXSk7IGZvcmVhY2ggKCR0dHJzIGFzICR0dHIpIHsgaWYgKCR0dHI9PSdpJykgJHR0ciA9IHRpbWUoKTsgJHR0ciA9ICR0dHIgKyAoIGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICkrJGRlbGF5OyAkZGJJdGVtID0gYXJyYXkoJ2RhdGVjcmVhdGVkJz0+ZGF0ZV9pMThuKCdZLW0tZCBIOmk6cycpLCAndHlwZSc9PidTJywgJ3Bvc3RpZCc9PiRwb3N0SUQsICdudHR5cGUnPT4kYXZOdFsnY29kZSddLCAncmVmaWQnPT4kaWksICd0aW1ldG9ydW4nPT4gZGF0ZV9pMThuKCdZLW0tZCBIOmk6cycsICR0dHIpLCAnZXh0SW5mbyc9PnNlcmlhbGl6ZSgkb3B0TXQpLCAnZGVzY3InPT4gKCFlbXB0eSgkb3B0TXRbJ25OYW1lJ10pPycoJy4kYXZOdFsnY29kZSddLicgLSAnLiRvcHRNdFsnbk5hbWUnXS4nKSAnOicnKS4nUG9zdCBJRDooJy4kcG9zdElELicpJywgJ3VpZCc9PiR1aWQpOyAkbnhEQiA9ICR3cGRiLT5pbnNlcnQoICR3cGRiLT5wcmVmaXggLiAibnhzX3F1ZXJ5IiwgJGRiSXRlbSApOyAkbGlkID0gJHdwZGItPmluc2VydF9pZDsgbnhzX0xvZ0l0KCdCSScsICdTY2hlZHVsZWQnLCAkYXZOdFsnbmFtZSddLicgKCcuJG9wdE10WyduTmFtZSddLicpJywnJywnU2NoZWR1bGVkIGZvciAnLmRhdGVfaTE4bignWS1tLWQgSDppOnMnLCAkdHRyKS4iKSIsICcgUG9zdElEOignLiRwb3N0SUQuJyknLCdzbmFwJywkdWlkICk7IH0gfSBlbHNlIHsgJGZuYW1lID0gJ254c19kb1B1Ymxpc2hUbycuJGF2TnRbJ2NvZGUnXTsgJGZuYW1lKCRwb3N0SUQsICRvcHRNdCk7IH0gfSBlbHNlIHsgbnhzX0xvZ0l0KCdHUicsICdTa2lwcGVkJywgJGF2TnRbJ25hbWUnXS4nICgnLiRvcHRNdFsnbk5hbWUnXS4nKScsJycsICctPVtVbmNoZWNrZWQgQWNjb3VudF09LScsICdQb3N0SUQ6ICcuJHBvc3RJRC4nJywnc25hcCcsJHVpZCApOyB9IH0gfSB9IH19IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHNfdjRkb1NNQVM0Jykpe2Z1bmN0aW9uIG54c192NGRvU01BUzQoJG50LCAkaWksICRvcHRzKXsgJGhycyA9IGlzc2V0KCRvcHRzWyduSHJzJ10pPyRvcHRzWyduSHJzJ106MDsgJG1pbiA9IGlzc2V0KCRvcHRzWyduTWluJ10pPyRvcHRzWyduTWluJ106MDsgJGRheXMgPSBpc3NldCgkb3B0c1snbkRheXMnXSk/JG9wdHNbJ25EYXlzJ106MDsgJG91dFRYdCA9ICc8ZGl2IHN0eWxlPSJ3aWR0aDoxMDAlOyI+PHN0cm9uZz5Qb3N0aW5nIERlbGF5Ojwvc3Ryb25nPiA8aT5Zb3UgY2FuIGRlbGF5IHBvc3RpbmcgdG8gdGhpcyBhY2NvdW50LiBXaWxsIHdvcmsgb25seSBpZiAiU2V0dGluZ3MgVGFiIi0+IkhvdyB0byBtYWtlIGF1dG8tcG9zdHM/IiBpcyBzZXQgdG8gIlNjaGVkdWxlIjwvaT4gPC9kaXY+IERlbGF5IGZvcjogJzsgJG91dEQgPSAnPGlucHV0ICBzdHlsZT0id2lkdGg6MzBweDsiIHZhbHVlPSInLiRkYXlzLiciIHR5cGU9InRleHQiIG5hbWU9IicuJG50LidbJy4kaWkuJ11bZGVsYXlEYXlzXSIvPiBEYXlzICZuYnNwOyZuYnNwOyZuYnNwOyc7ICRvdXRIID0gJzxzZWxlY3QgaWQ9IicuJG50LiRpaS4nZGVsYXlIcnMiIG5hbWU9IicuJG50LidbJy4kaWkuJ11bZGVsYXlIcnNdIj48b3B0aW9uIHZhbHVlPSIwIj4wPC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjEiPjE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyIj4yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMyI+Mzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjQiPjQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI1Ij41PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNiI+Njwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjciPjc8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iOCI+ODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjkiPjk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMSI+MTE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMiI+MTI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMyI+MTM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxNCI+MTQ8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTUiPjE1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTYiPjE2PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTciPjE3PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTgiPjE4PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTkiPjE5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMjAiPjIwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMjEiPjIxPC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjIyIj4yMjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjIzIj4yMzwvb3B0aW9uPjwvc2VsZWN0PiBIb3VycyAmbmJzcDsmbmJzcDsmbmJzcDsnOyAkb3V0TSA9ICc8c2VsZWN0IGlkPSInLiRudC4kaWkuJ2RlbGF5TWluIiBuYW1lPSInLiRudC4nWycuJGlpLiddW2RlbGF5TWluXSI+PG9wdGlvbiB2YWx1ZT0iMCI+MDwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSIxIj4xPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMiI+Mjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjMiPjM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0Ij40PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNSI+NTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjYiPjY8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI3Ij43PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjgiPjg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI5Ij45PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTAiPjEwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTEiPjExPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTIiPjEyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTMiPjEzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTQiPjE0PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjE1Ij4xNTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE2Ij4xNjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE3Ij4xNzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE4Ij4xODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE5Ij4xOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjIxIj4yMTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSIyMiI+MjI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyMyI+MjM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNCI+MjQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNSI+MjU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNiI+MjY8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNyI+Mjc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyOCI+Mjg8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMjkiPjI5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzAiPjMwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzEiPjMxPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzIiPjMyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzMiPjMzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzQiPjM0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzUiPjM1PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjM2Ij4zNjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjM3Ij4zNzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjM4Ij4zODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjM5Ij4zOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjQwIj40MDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjQxIj40MTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjQyIj40Mjwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSI0MyI+NDM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0NCI+NDQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0NSI+NDU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0NiI+NDY8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0NyI+NDc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0OCI+NDg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0OSI+NDk8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iNTAiPjUwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTEiPjUxPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTIiPjUyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTMiPjUzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTQiPjU0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTUiPjU1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTYiPjY2PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjU3Ij41Nzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjU4Ij41ODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjU5Ij41OTwvb3B0aW9uPjwvc2VsZWN0PiBNaW51dGVzIDxici8+PGJyLz4nOyAkb3V0SCA9IHN0cl9yZXBsYWNlKCd2YWx1ZT0iJy4kaHJzLiciJywnIHNlbGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9IicuJGhycy4nIicsICRvdXRIKTsgJG91dE0gPSBzdHJfcmVwbGFjZSgndmFsdWU9IicuJG1pbi4nIicsJyBzZWxlY3RlZD0ic2VsZWN0ZWQiIHZhbHVlPSInLiRtaW4uJyInLCAkb3V0TSk7IHJldHVybiAkb3V0VFh0LiRvdXRELiRvdXRILiRvdXRNOyB9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnbnhzX2RvU01BUzQyJykpe2Z1bmN0aW9uIG54c19kb1NNQVM0Migkb3B0aW9ucyl7ID8+PG9wdGlvbiB2YWx1ZT0iMSIgPD9waHAgaWYgKGlzc2V0KCRvcHRpb25zWydycHN0VHlwZSddKSAmJiAkb3B0aW9uc1sncnBzdFR5cGUnXT09JzEnKSBlY2hvICdzZWxlY3RlZD0ic2VsZWN0ZWQiJyA/Pj5SYW5kb21seTwvb3B0aW9uPjw/cGhwIH19IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHNfZG9TTUFTNycpKSB7ZnVuY3Rpb24gbnhzX2RvU01BUzcoJGFyZ3MsICRmaWx0ZXIpeyBpZiggIWVtcHR5KCAkZmlsdGVyWydueHNfdGF4X25hbWVzJ10gKSAmJiAhZW1wdHkoICRmaWx0ZXJbJ254c190ZXJtX25hbWVzJ10gKSB8fCAoICFlbXB0eSggJGZpbHRlclsnbnhzX2NvdW50X3Rlcm1fY29tcGFyZXMnXSApICYmICRmaWx0ZXJbJ254c19jb3VudF90ZXJtX2NvbXBhcmVzJ10gPiAxICkgKSB7ICR0ZXJtX2NvbXBhcmVzID0gYXJyYXkoKTsgJGNvdW50X3Rlcm1fY29tcGFyZXMgPSBlbXB0eSggJGZpbHRlclsnbnhzX2NvdW50X3Rlcm1fY29tcGFyZXMnXSApID8gMSA6ICRmaWx0ZXJbJ254c19jb3VudF90ZXJtX2NvbXBhcmVzJ107ICR0ZXJtX2NvbXBhcmVzWydyZWxhdGlvbiddID0gZW1wdHkoICRmaWx0ZXJbJ254c190ZXJtX3JlbGF0aW9uJ10gKSA/ICdBTkQnIDogJGZpbHRlclsnbnhzX3Rlcm1fcmVsYXRpb24nXTsgZm9yKCAkaSA9IDE7ICRpIDw9ICRjb3VudF90ZXJtX2NvbXBhcmVzOyAkaSsrICkgeyAkcG9zdGZpeCA9ICRpID4gMSA/ICdfJy4gJGkgOiAnJzsgaWYgKGVtcHR5KCRmaWx0ZXJbIm54c190YXhfbmFtZXMkcG9zdGZpeCJdKSkgY29udGludWU7ICRuZXdfdGVybV9jb21wYXJlID0gYXJyYXkoKTsgaWYoICFlbXB0eSggJGZpbHRlclsibnhzX3RheF9uYW1lcyRwb3N0Zml4Il0gKSApIHsgJG5ld190ZXJtX2NvbXBhcmVbJ3RheG9ub215J10gPSAkZmlsdGVyWyJueHNfdGF4X25hbWVzJHBvc3RmaXgiXTsgJG5ld190ZXJtX2NvbXBhcmVbJ2ZpZWxkJ10gPSAndGVybV9pZCc7IH0gaWYoICFlbXB0eSggJGZpbHRlclsibnhzX3Rlcm1fbmFtZXMkcG9zdGZpeCJdICkgKSAkbmV3X3Rlcm1fY29tcGFyZVsndGVybXMnXSA9IGFycmF5X21hcCggJ254c19nZXRfbm9ybWFsaXplX3BhcmFtZXRlcicsICRmaWx0ZXJbIm54c190ZXJtX25hbWVzJHBvc3RmaXgiXSApOyBpZiggIWVtcHR5KCAkZmlsdGVyWyJueHNfdGVybV9vcGVyYXRvciRwb3N0Zml4Il0gKSApICRuZXdfdGVybV9jb21wYXJlWydvcGVyYXRvciddID0gJGZpbHRlclsibnhzX3Rlcm1fb3BlcmF0b3IkcG9zdGZpeCJdOyAkbmV3X3Rlcm1fY29tcGFyZVsnaW5jbHVkZV9jaGlsZHJlbiddID0gZW1wdHkoICRmaWx0ZXJbIm54c190ZXJtX2NoaWxkcmVuJHBvc3RmaXgiXSApID8gdHJ1ZSA6ICRmaWx0ZXJbIm54c190ZXJtX2NoaWxkcmVuJHBvc3RmaXgiXTsgaWYoICFlbXB0eSggJG5ld190ZXJtX2NvbXBhcmUgKSApICR0ZXJtX2NvbXBhcmVzW10gPSAkbmV3X3Rlcm1fY29tcGFyZTsgfSAkYXJnc1sndGF4X3F1ZXJ5J10gPSAkdGVybV9jb21wYXJlczsgfSBpZiggIWVtcHR5KCAkZmlsdGVyWydwb3N0X21ldGEnXVswXVsna2V5J10gKSB8fCAhZW1wdHkoICRmaWx0ZXJbJ3Bvc3RfbWV0YSddWzBdWyd2YWx1ZSddICkgfHwgKCAhZW1wdHkoICRmaWx0ZXJbJ254c19jb3VudF9tZXRhX2NvbXBhcmVzJ10gKSAmJiAkZmlsdGVyWydueHNfY291bnRfbWV0YV9jb21wYXJlcyddID4gMSApICkgeyAkbWV0YV9jb21wYXJlcyA9IGFycmF5KCk7ICRjb3VudF9jb21wYXJlcyA9IGVtcHR5KCAkZmlsdGVyWydueHNfY291bnRfbWV0YV9jb21wYXJlcyddICkgPyAxIDogJGZpbHRlclsnbnhzX2NvdW50X21ldGFfY29tcGFyZXMnXTsgJGZpbHRlclsncG9zdF9tZXRhJ11bMF1bJ3JlbGF0aW9uJ10gPSBlbXB0eSggJGZpbHRlclsncG9zdF9tZXRhJ11bMF1bJ3JlbGF0aW9uJ10gKSA/ICdBTkQnIDogJGZpbHRlclsncG9zdF9tZXRhJ11bMF1bJ3JlbGF0aW9uJ107IGZvciggJGkgPSAwOyAkaSA8ICRjb3VudF9jb21wYXJlczsgJGkrKyApIHsgJG5ld19jb21wYXJlID0gYXJyYXkoKTsgaWYoICFlbXB0eSggJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWydrZXknXSApICkgJG5ld19jb21wYXJlWydrZXknXSA9ICRmaWx0ZXJbJ3Bvc3RfbWV0YSddWyRpXVsna2V5J107IGlmKCAhZW1wdHkoICRmaWx0ZXJbJ3Bvc3RfbWV0YSddWyRpXVsndmFsdWUnXSApICkgeyAkdmFsdWVzID0gJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWyd2YWx1ZSddOyBpZiAoY291bnQoJHZhbHVlcyk+MSl7ICRuZXdfY29tcGFyZVsndmFsdWUnXSA9IGFycmF5KCk7IGZvcmVhY2goICR2YWx1ZXMgYXMgJHZhbHVlICkgeyAkcG9zaXRpb25fZGVsaW1pdGVyID0gbWJfc3RycnBvcyggJHZhbHVlLCAnfHwnICk7IGlmICgkcG9zaXRpb25fZGVsaW1pdGVyPjApIHsgJG1ldGFfdmFsdWUgPSBnZXRfcG9zdF9tZXRhKCBpbnR2YWwoIG1iX3N1YnN0ciggJHZhbHVlLCAkcG9zaXRpb25fZGVsaW1pdGVyICsgMiApICksIG1iX3N1YnN0ciggJHZhbHVlLCAwLCAkcG9zaXRpb25fZGVsaW1pdGVyICksIHRydWUgKTsgfSBlbHNlICRtZXRhX3ZhbHVlID0gJHZhbHVlOyAkbmV3X2NvbXBhcmVbJ3ZhbHVlJ11bXSA9IGlzX2FycmF5KCAkbWV0YV92YWx1ZSApID8gc2VyaWFsaXplKCAkbWV0YV92YWx1ZSApIDogJG1ldGFfdmFsdWU7IH0gfSBlbHNlICRuZXdfY29tcGFyZVsndmFsdWUnXSA9ICR2YWx1ZXNbMF07IH0gaWYoICFlbXB0eSggJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWydvcGVyYXRvciddICkgKSB7IHN3aXRjaCggJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWydvcGVyYXRvciddICkgeyBjYXNlICdndCc6ICRuZXdfY29tcGFyZVsnY29tcGFyZSddID0gJz4nOyBicmVhazsgY2FzZSAnZ3Q9JzogJG5ld19jb21wYXJlWydjb21wYXJlJ10gPSAnPj0nOyBicmVhazsgY2FzZSAnbHQnOiAkbmV3X2NvbXBhcmVbJ2NvbXBhcmUnXSA9ICc8JzsgYnJlYWs7IGNhc2UgJ2x0PSc6ICRuZXdfY29tcGFyZVsnY29tcGFyZSddID0gJzw9JzsgYnJlYWs7IGRlZmF1bHQ6ICRuZXdfY29tcGFyZVsnY29tcGFyZSddID0gJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWydvcGVyYXRvciddOyB9fSBpZiggIWVtcHR5KCAkZmlsdGVyWydwb3N0X21ldGEnXVskaV1bJ3R5cGUnXSApICkgJG5ld19jb21wYXJlWyd0eXBlJ10gPSAkZmlsdGVyWydwb3N0X21ldGEnXVskaV1bJ3R5cGUnXTsgaWYoICFlbXB0eSggJG5ld19jb21wYXJlICkgKSAkbWV0YV9jb21wYXJlc1tdID0gJG5ld19jb21wYXJlOyB9IGlmICghZW1wdHkoJG1ldGFfY29tcGFyZXMpKSAkbWV0YV9jb21wYXJlc1sncmVsYXRpb24nXSA9ICRmaWx0ZXJbJ3Bvc3RfbWV0YSddWzBdWydyZWxhdGlvbiddOyAkYXJnc1snbWV0YV9xdWVyeSddID0gJG1ldGFfY29tcGFyZXM7IH0gcmV0dXJuICRhcmdzOyB9fSAgIGdsb2JhbCAkbnhzX2FwaUxJbmZvOyRueHNfYXBpTEluZm8gID0gYXJyYXkoIjEiPT4nU05BUCBQcm8gV29yZFByZXNzIFBsdWdpbiAoTGlmZXRpbWUgTGljZW5zZSk6IDxiIHN0eWxlPSJjb2xvcjojMDA1ODU4OyI+QWN0aXZlPC9iPjs8YnIvPlNOQVAgUHJlbWl1bSBBUEkgU2VydmljZSAoQWxsIE5ldHdvcmtzKTogPGIgc3R5bGU9ImNvbG9yOiNGRjAwMDA7Ij5JbmFjdGl2ZTs8L2I+Jm5ic3A7U3Vic2NyaXB0aW9uOiA8aSBzdHlsZT0iY29sb3I6cmVkOyI+Tm9uZTwvaT47IFNlcnZpY2UgZXhwaXJlZCBvbjogU2VwdGVtYmVyIDI1LCAyMDE5JywiMiI9PicnLCAibm9JRyI9PnRydWUpOyA= ?>

Did this file decode correctly?

Original Code

IGlmICghZGVmaW5lZCgnTlhTQVBJVkVSJykpIGRlZmluZSgnTlhTQVBJVkVSJywnNC41LjE5IFtJRDoyMTMzM10nKTsgaWYgKCFkZWZpbmVkKCdOWFNXUE1VRicpKSBkZWZpbmUoJ05YU1dQTVVGJywnMScpOyBpZiAoIWRlZmluZWQoJ05YU0FQSUNPREUnKSkgZGVmaW5lKCdOWFNBUElDT0RFJywnMScpOyBpZiAoIWRlZmluZWQoJ05YU1dQTElDJykpIGRlZmluZSgnTlhTV1BMSUMnLCcxJyk7IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHN2NFNNQVMnKSl7ZnVuY3Rpb24gbnhzdjRTTUFTKCl7fX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ254c19kb1NNQVM0Jykpe2Z1bmN0aW9uIG54c19kb1NNQVM0KCl7fX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ25zX1NNQVNWNDEnKSl7ZnVuY3Rpb24gbnNfU01BU1Y0MSgpe319IGlmICghZnVuY3Rpb25fZXhpc3RzKCJybmRTdHJpbmciKSkge2Z1bmN0aW9uIHJuZFN0cmluZygkbG5ndGgpeyRzdHI9Jyc7JGNoYXJzPSJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSI7JHNpemU9c3RybGVuKCRjaGFycyk7Zm9yKCRpPTA7JGk8JGxuZ3RoOyRpKyspeyRzdHIgLj0gJGNoYXJzW3JhbmQoMCwkc2l6ZS0xKV07fSByZXR1cm4gJHN0cjt9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibnhzX21rSW1nTm0iKSl7ZnVuY3Rpb24gbnhzX21rSW1nTm0oJGZuLCAkY1R5cGUpeyAkaWV4ID0gYXJyYXkoIi5wbmciLCAiLmpwZyIsICIuZ2lmIiwgIi5qcGVnIik7ICRtYXAgPSBhcnJheSgnaW1hZ2UvZ2lmJz0+Jy5naWYnLCdpbWFnZS9qcGVnJz0+Jy5qcGcnLCdpbWFnZS9wbmcnPT4nLnBuZycpOyAkZm4gPSBzdHJfcmVwbGFjZSgkaWV4LCAnJywgJGZuKTsgaWYgKGlzc2V0KCRtYXBbJGNUeXBlXSkpe3JldHVybiAkZm4uJG1hcFskY1R5cGVdO30gZWxzZSByZXR1cm4gJGZuLiIuanBnIjsgfX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoIm54c19jbEZOIikpeyBmdW5jdGlvbiBueHNfY2xGTigkZm4peyRzY2ggPSBhcnJheSgiPyIsICJbIiwgIl0iLCAiLyIsICJcXCIsICI9IiwgIjwiLCAiPiIsICI6IiwgIjsiLCAiLCIsICInIiwgIlwiIiwgIiYiLCAiJCIsICIjIiwgIioiLCAiKCIsICIpIiwgInwiLCAifiIsICJgIiwgIiEiLCAieyIsICJ9Iik7IHJldHVybiB0cmltKHByZWdfcmVwbGFjZSgnL1tccy1dKy8nLCAnLScsIHN0cl9yZXBsYWNlKCRzY2gsICcnLCAkZm4pKSwgJy4tXycpOyB9fSBpZiAoIWNsYXNzX2V4aXN0cygibnhzX0lQVEMiKSkgeyBjbGFzcyBueHNfSVBUQyB7IGNvbnN0IENSRUFURURfREFURSA9ICcwNTUnOyBjb25zdCBDUkVBVEVEX1RJTUUgPSAnMDYwJzsgY29uc3QgQ09QWVJJR0hUX1NUUklORyA9ICcxMTYnOyBjb25zdCBDQVBUSU9OID0gJzEyMCc7IHByaXZhdGUgJF9tZXRhID0gYXJyYXkoKTsgcHJpdmF0ZSAkX2hhc01ldGEgPSBmYWxzZTsgcHJpdmF0ZSAkX2FsbG93ZWRFeHQgPSBhcnJheSgnanBnJywgJ2pwZWcnLCAncGpwZWcnKTsgcHJpdmF0ZSAkX2ZpbGVuYW1lOyBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGZpbGVuYW1lKSB7IGlmICghZmlsZV9leGlzdHMoJGZpbGVuYW1lKSkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCAnSW1hZ2Ugbm90IGZvdW5kIScgKTsgfSBpZiAoIWlzX3dyaXRhYmxlKCRmaWxlbmFtZSkpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbiggIkZpbGUgXCJ7JGZpbGVuYW1lfVwiIGlzIG5vdCB3cml0YWJsZSEiICk7IH0gJHBhcnRzID0gZXhwbG9kZSgnLicsIHN0cnRvbG93ZXIoJGZpbGVuYW1lKSk7IGlmICghaW5fYXJyYXkoZW5kKCRwYXJ0cyksICR0aGlzLT5fYWxsb3dlZEV4dCkpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJ1N1cHBvcnQgb25seSBmb3IgdGhlIGZvbGxvd2luZyBleHRlbnNpb25zOiAnIC4gaW1wbG9kZSgnLCcsICR0aGlzLT5fYWxsb3dlZEV4dCkgKTsgfSAkc2l6ZSA9IGdldGltYWdlc2l6ZSgkZmlsZW5hbWUsICRpbWFnZWluZm8pOyBpZiAoZW1wdHkoJHNpemVbJ21pbWUnXSkgfHwgJHNpemVbJ21pbWUnXSAhPSAnaW1hZ2UvanBlZycpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJ1N1cHBvcnQgb25seSBKUEVHIGltYWdlcycgKTsgfSAkdGhpcy0+X2hhc01ldGEgPSBpc3NldCgkaW1hZ2VpbmZvWyJBUFAxMyJdKTsgaWYgKCR0aGlzLT5faGFzTWV0YSkgeyAkdGhpcy0+X21ldGEgPSBpcHRjcGFyc2UoJGltYWdlaW5mb1siQVBQMTMiXSk7IH0gJHRoaXMtPl9maWxlbmFtZSA9ICRmaWxlbmFtZTsgfSBwdWJsaWMgZnVuY3Rpb24gc2V0KCR0YWcsICRkYXRhKSB7ICRkYXRhID0gJHRoaXMtPl9jaGFyc2V0X2RlY29kZSgkZGF0YSk7ICR0aGlzLT5fbWV0YVsiMiN7JHRhZ30iXSA9IGFycmF5KCRkYXRhKTsgJHRoaXMtPl9oYXNNZXRhID0gdHJ1ZTsgcmV0dXJuICR0aGlzOyB9IHB1YmxpYyBmdW5jdGlvbiBiaW5hcnkoKSB7ICRpcHRjID0gJyc7IGZvcmVhY2ggKGFycmF5X2tleXMoJHRoaXMtPl9tZXRhKSBhcyAka2V5KSB7ICR0YWcgPSBzdHJfcmVwbGFjZSgiMiMiLCAiIiwgJGtleSk7IGZvcmVhY2ggKCR0aGlzLT5fbWV0YVska2V5XSBhcyAkdmFsdWUpICRpcHRjIC49ICR0aGlzLT5pcHRjTWFrZVRhZygyLCAkdGFnLCAkdmFsdWUpOyB9IHJldHVybiAkaXB0YzsgfSBwdWJsaWMgZnVuY3Rpb24gaXB0Y01ha2VUYWcoJHJlYywgJGRhdCwgJHZhbCl7ICRpcHRjVGFnID0gY2hyKDB4MWMpIC4gY2hyKCRyZWMpIC4gY2hyKCRkYXQpOyBpZiAoaXNfYXJyYXkoJHZhbCkpIHsgJHNyYyA9ICcnOyBmb3JlYWNoICgkdmFsIGFzICRpdGVtKSB7ICRsZW4gPSBzdHJsZW4oJGl0ZW0pOyAkc3JjIC49ICRpcHRjVGFnIC4gJHRoaXMtPl90ZXN0Qml0U2l6ZSgkbGVuKSAuICRpdGVtOyB9IHJldHVybiAkc3JjOyB9ICRsZW4gPSBzdHJsZW4oJHZhbCk7ICRzcmMgPSAkaXB0Y1RhZyAuICR0aGlzLT5fdGVzdEJpdFNpemUoJGxlbikgLiAkdmFsOyByZXR1cm4gJHNyYzsgfSBwdWJsaWMgZnVuY3Rpb24gd3JpdGUoKSB7ICRjb250ZW50ID0gaXB0Y2VtYmVkKCR0aGlzLT5iaW5hcnkoKSwgJHRoaXMtPl9maWxlbmFtZSwgMCk7IGlmICgkY29udGVudCA9PT0gZmFsc2UpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJ0ZhaWxlZCB0byBzYXZlIElQVEMgZGF0YSBpbnRvIGZpbGUnICk7IH0gdW5saW5rKCR0aGlzLT5fZmlsZW5hbWUpOyBpZiAoJGZpbGUgPSBmb3BlbigkdGhpcy0+X2ZpbGVuYW1lLCAidyIpKSB7IGZ3cml0ZSgkZmlsZSwgJGNvbnRlbnQpOyBmY2xvc2UoJGZpbGUpOyByZXR1cm4gdHJ1ZTsgfSByZXR1cm4gZmFsc2U7IH0gcHJpdmF0ZSBmdW5jdGlvbiBfdGVzdEJpdFNpemUoJGxlbikgeyBpZiAoJGxlbiA8IDB4ODAwMCkgcmV0dXJuIGNocigkbGVuID4+IDgpIC4gY2hyKCRsZW4gJiAweGZmKTsgcmV0dXJuIGNocigweDFjKSAuIGNocigweDA0KSAuIGNocigoJGxlbiA+PiAyNCkgJiAweGZmKSAuIGNocigoJGxlbiA+PiAxNikgJiAweGZmKSAuIGNocigoJGxlbiA+PiA4KSAmIDB4ZmYpIC4gY2hyKCgkbGVuKSAmIDB4ZmYpOyB9IHByaXZhdGUgZnVuY3Rpb24gX2NoYXJzZXRfZGVjb2RlKCRkYXRhKSB7ICRyZXN1bHQgPSBhcnJheSgpOyBpZiAoaXNfYXJyYXkoJGRhdGEpKSB7ICRpdGVyYXRvciA9IG5ldyBcUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcihuZXcgXFJlY3Vyc2l2ZUFycmF5SXRlcmF0b3IoJGRhdGEpKTsgZm9yZWFjaCAoJGl0ZXJhdG9yIGFzICRrZXkgPT4gJHZhbHVlKSAkcmVzdWx0W10gPSB1dGY4X2RlY29kZSgkdmFsdWUpOyB9IGVsc2UgcmV0dXJuIHV0ZjhfZGVjb2RlKCRkYXRhKTsgcmV0dXJuICRyZXN1bHQ7IH0gcHJpdmF0ZSBmdW5jdGlvbiBfY2hhcnNldF9lbmNvZGUoJGRhdGEpIHsgJHJlc3VsdCA9IGFycmF5KCk7IGlmIChpc19hcnJheSgkZGF0YSkpIHsgJGl0ZXJhdG9yID0gbmV3IFxSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKG5ldyBcUmVjdXJzaXZlQXJyYXlJdGVyYXRvcigkZGF0YSkpOyBmb3JlYWNoICgkaXRlcmF0b3IgYXMgJGtleSA9PiAkdmFsdWUpICRyZXN1bHRbXSA9IHV0ZjhfZW5jb2RlKCR2YWx1ZSk7IH0gZWxzZSByZXR1cm4gdXRmOF9lbmNvZGUoJGRhdGEpOyByZXR1cm4gJHJlc3VsdDsgfSB9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibnhzX2RvU01BUzEiKSkgeyBmdW5jdGlvbiBueHNfZG9TTUFTMSgkb2JqLCAkdmFyKXsgaWYgKG1ldGhvZF9leGlzdHMoJG9iaiwnc2hvd05ld05UU2V0dGluZ3MnKSkgJG9iai0+c2hvd05ld05UU2V0dGluZ3MoJHZhcik7IH19IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHNfdjRkb1NNQVM1Jykpe2Z1bmN0aW9uIG54c192NGRvU01BUzUoJG50LCAkaWksICRudE9wdCl7ICRudFUgPSBzdHJ0b3VwcGVyKCRudCk7IGlmICggaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgJiYgJF9HRVRbJ3BhZ2UnXT09J05leHRTY3JpcHRzX1NOQVAucGhwJykgcmV0dXJuOyBnbG9iYWwgJG54c19TTkFQLCAkbnhzX3BsdXJsOyAkZGVsYXk9J3QyMzR5MnkyMDMnOyBpZiAoIWlzc2V0KCRueHNfU05BUCkpIHJldHVybjsgJG9wdGlvbnMgPSAkbnhzX1NOQVAtPm54c19vcHRpb25zOyBpZiAoJG9wdGlvbnNbJ254c0hURFAnXT09J0knKSByZXR1cm4gJyc7IGlmIChlbXB0eSgkbnRPcHRbJ3RpbWVUb1J1biddKSkgJG50T3B0Wyd0aW1lVG9SdW4nXSA9ICcnOyA/PgogIDxkaXYgY2xhc3M9Im54c1Bvc3RFZF9FbGVtV3JhcCI+PGRpdiBjbGFzcz0ibnhzdGJsZG8gbnhzdGJsZG88P3BocCBlY2hvIHN0cnRvdXBwZXIoJG50KS4kaWk7ID8+Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48P3BocCBfZSgnVGltZSB0byBwb3N0OicsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz48L3NwYW4+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyAkbnQ7ID8+Wzw/cGhwIGVjaG8gJGlpOyA/Pl1bdGltZVRvUnVuXSIgaWQ9Ijw/cGhwIGVjaG8gJG50OyA/Pjw/cGhwIGVjaG8gJGlpOyA/PnRpbWVUb1J1biIgIHZhbHVlPSI8P3BocCBlY2hvICRudE9wdFsndGltZVRvUnVuJ107Pz4iIC8+CiAgPGEgaHJlZj0iIyIgb25jbGljaz0idmFyIGRkID0galF1ZXJ5KCcjPD9waHAgZWNobyAkbnQ7ID8+PD9waHAgZWNobyAkaWk7ID8+dGltZVRvUnVuJykudmFsKCk7IGlmIChkZCE9JycpIG54c19maWxsVGltZShkZCoxMDAwKTsgalF1ZXJ5KCcjbnhzX3RpbWVJRCcpLnZhbCgnPD9waHAgZWNobyAkbnQ7ID8+PD9waHAgZWNobyAkaWk7ID8+Jyk7IGpRdWVyeS5wZ3dNb2RhbCh7IHRhcmdldDogJyNzaG93U2V0VGltZUludCcsIHRpdGxlOiAnUG9zdCcsIG1heFdpZHRoOiA4MDAsIGNsb3NlT25CYWNrZ3JvdW5kQ2xpY2sgOiB0cnVlfSk7ICByZXR1cm4gZmFsc2U7Ij5bPD9waHAgX2UoJ1NldCB0aW1lJywgJ3NvY2lhbC1uZXR3b3Jrcy1hdXRvLXBvc3Rlci1mYWNlYm9vay10d2l0dGVyLWcnKSA/Pl08L2E+IAogIDxzcGFuIGlkPSI8P3BocCBlY2hvICRudDsgPz48P3BocCBlY2hvICRpaTsgPz50aW1lVG9SdW5UeHQiPjw/cGhwICBpZiAoIWlzc2V0KCRudE9wdFsndGltZVRvUnVuJ10pIHx8IChpbnQpJG50T3B0Wyd0aW1lVG9SdW4nXTwoIWVtcHR5KCRudE9wdFsncG9zdFRpbWUnXSk/JG50T3B0Wydwb3N0VGltZSddOnRpbWUoKSkpIHsgaWYgKCFpc3NldCgkbnRPcHRbJ25NaW4nXSkpICRudE9wdFsnbk1pbiddID0gMDsgaWYgKCFpc3NldCgkbnRPcHRbJ25IcnMnXSkpICRudE9wdFsnbkhycyddID0gMDsgaWYgKCFpc3NldCgkbnRPcHRbJ25EYXlzJ10pKSAkbnRPcHRbJ25EYXlzJ10gPSAwOyAkZGVsYXkgPSAoaW50KSRudE9wdFsnbkRheXMnXSo4NjQwMCsoaW50KSRudE9wdFsnbkhycyddKjM2MDArKGludCkkbnRPcHRbJ25NaW4nXSo2MDsgaWYgKCRkZWxheT4wKSB7ICRudE9wdFsndGltZVRvUnVuJ10gPSAoIWVtcHR5KCRudE9wdFsncG9zdFRpbWUnXSk/JG50T3B0Wydwb3N0VGltZSddOnRpbWUoKSkrKGludCkkZGVsYXk7IGVjaG8gZGF0ZV9pMThuKCdGIGosIFksIEc6aScsICRudE9wdFsndGltZVRvUnVuJ10rKCBlbXB0eSgkbnRPcHRbJ3Bvc3RUaW1lJ10pPyhnZXRfb3B0aW9uKCAnZ210X29mZnNldCcgKSAqIEhPVVJfSU5fU0VDT05EUyApOjApKTsgZWNobyAiIChEZWxheTogIi4oKGludCkkbnRPcHRbJ25EYXlzJ10+MD8kbnRPcHRbJ25EYXlzJ10uJyBEYXknLigoaW50KSRudE9wdFsnbkRheXMnXSE9MT8ncywgJzonLCAnKTonJykuKChpbnQpJG50T3B0WyduSHJzJ10+MD8kbnRPcHRbJ25IcnMnXS4nIEhvdXInLigoaW50KSRudE9wdFsnbkhycyddIT0xPydzLCAnOicsICcpOicnKS4oaW50KSRudE9wdFsnbk1pbiddLicgTWludXRlJy4oKGludCkkbnRPcHRbJ25NaW4nXSE9MT8ncy4gJzonLiAnKS4iKSI7IH0gZWxzZWlmICgoaW50KSRudE9wdFsndGltZVRvUnVuJ10+MCkgZWNobyBkYXRlX2kxOG4oJ0YgaiwgWSwgRzppJywgJG50T3B0Wyd0aW1lVG9SdW4nXSsoIGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICkpOyBlbHNlIHsgX2UoJ0ltbWVkaWF0ZWx5Jyk7IH0gfSBlbHNlIGVjaG8gZGF0ZV9pMThuKCdGIGosIFksIEc6aScsICRudE9wdFsndGltZVRvUnVuJ10rKCBnZXRfb3B0aW9uKCAnZ210X29mZnNldCcgKSAqIEhPVVJfSU5fU0VDT05EUyApKTsgPz4gPC9zcGFuPgogIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsiIGlkPSJkbzw/cGhwIGVjaG8gJG50VTsgPz5fVDw/cGhwIGVjaG8gJGlpOyA/PiI+PC9kaXY+PC9kaXY+IDwvZGl2PiA8P3BocAp9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnbnhzX3Y0ZG9TTUFTNVgnKSl7ZnVuY3Rpb24gbnhzX3Y0ZG9TTUFTNVgoJG50LCAkaWksICRudE9wdCl7ICRudFUgPSBzdHJ0b3VwcGVyKCRudCk7IGlmICggaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgJiYgJF9HRVRbJ3BhZ2UnXT09J05leHRTY3JpcHRzX1NOQVAucGhwJykgcmV0dXJuOyBnbG9iYWwgJG54c19TTkFQLCAkbnhzX3BsdXJsOyAkZGVsYXk9J3QyMzR5MnkyMDMnOyBpZiAoIWlzc2V0KCRueHNfU05BUCkpIHJldHVybjsgJG9wdGlvbnMgPSAkbnhzX1NOQVAtPm54c19vcHRpb25zOyBpZiAoJG9wdGlvbnNbJ254c0hURFAnXT09J0knKSByZXR1cm4gJyc7IGlmIChlbXB0eSgkbnRPcHRbJ3RpbWVUb1J1biddKSkgJG50T3B0Wyd0aW1lVG9SdW4nXSA9ICdpJzsgJG50dEQgPSAkbnRPcHRbJ3RpbWVUb1J1biddOyBpZiAoIWVtcHR5KCRudHREKSkgeyAkbnR0QSA9IGV4cGxvZGUoJ3wnLCRudHREKTsgaWYgKCFlbXB0eSgkbnRPcHRbJ3Bvc3RUaW1lJ10pICYmICRudE9wdFsncG9zdFRpbWUnXT50aW1lKCkpIHsgJG50dEFYID0gYXJyYXkoKTsgJGltbWlkID0gZmFsc2U7IGZvcmVhY2ggKCRudHRBIGFzICRqaj0+JG50dCkgaWYgKCRudHQ9PSdpJyB8fCAkbnR0PCRudE9wdFsncG9zdFRpbWUnXSkgJGltbWlkID0gdHJ1ZTsgZWxzZSAkbnR0QVhbXSA9ICRudHQ7IGlmICgkaW1taWQpIGFycmF5X3Vuc2hpZnQoJG50dEFYICwgJ2knKTsgJG50dEEgPSAkbnR0QVg7IH0gJG50dEQgPSBpbXBsb2RlKCd8JywkbnR0QSk7ICRudE9wdFsndGltZVRvUnVuJ10gPSAkbnR0RDsgfSA/PgogIDxkaXYgY2xhc3M9Im54c1Bvc3RFZF9FbGVtV3JhcCI+PGRpdiBjbGFzcz0ibnhzdGJsZG8gbnhzdGJsZG88P3BocCBlY2hvIHN0cnRvdXBwZXIoJG50KS4kaWk7ID8+Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48P3BocCBfZSgnVGltZSB0byBwb3N0OicsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz48L3NwYW4+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyAkbnQ7ID8+Wzw/cGhwIGVjaG8gJGlpOyA/Pl1bdGltZVRvUnVuXSIgaWQ9Ijw/cGhwIGVjaG8gJG50OyA/Pjw/cGhwIGVjaG8gJGlpOyA/PnRpbWVUb1J1biIgIHZhbHVlPSI8P3BocCBlY2hvICRudE9wdFsndGltZVRvUnVuJ107Pz4iIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Ijw/cGhwIGVjaG8gJG50OyA/Pjw/cGhwIGVjaG8gJGlpOyA/PnRpbWVUb1J1bldNIiAgdmFsdWU9IkEiIC8+CiAgPGEgaHJlZj0iIyIgb25jbGljaz0ibnhzX3Nob3dUaW1lRGlhbG9nKCc8P3BocCBlY2hvICRudC4kaWk7ID8+JywnQScpOyByZXR1cm4gZmFsc2U7Ij5bPD9waHAgX2UoJ0FkZCcsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz5dPC9hPiAKICA8c3BhbiBpZD0iPD9waHAgZWNobyAkbnQ7ID8+PD9waHAgZWNobyAkaWk7ID8+dGltZVRvUnVuVHh0Ij48P3BocCBpZiAoIWVtcHR5KCRudHREKSkgeyAkbnR0QSA9IGV4cGxvZGUoJ3wnLCRudHREKTsgZm9yZWFjaCAoJG50dEEgYXMgJGpqPT4kbnR0KSB7IGlmICghaXNzZXQoJG50dCkgfHwgKGludCkkbnR0PCghZW1wdHkoJG50T3B0Wydwb3N0VGltZSddKT8kbnRPcHRbJ3Bvc3RUaW1lJ106dGltZSgpKSkgeyBpZiAoIWlzc2V0KCRudE9wdFsnbk1pbiddKSkgJG50T3B0WyduTWluJ10gPSAwOyBpZiAoIWlzc2V0KCRudE9wdFsnbkhycyddKSkgJG50T3B0WyduSHJzJ10gPSAwOyBpZiAoIWlzc2V0KCRudE9wdFsnbkRheXMnXSkpICRudE9wdFsnbkRheXMnXSA9IDA7ICRkZWxheSA9IChpbnQpJG50T3B0WyduRGF5cyddKjg2NDAwKyhpbnQpJG50T3B0WyduSHJzJ10qMzYwMCsoaW50KSRudE9wdFsnbk1pbiddKjYwOyBpZiAoJGRlbGF5PjApIHsgJG50dCA9ICghZW1wdHkoJG50T3B0Wydwb3N0VGltZSddKT8kbnRPcHRbJ3Bvc3RUaW1lJ106dGltZSgpKSsoaW50KSRkZWxheTsgZWNobyBkYXRlX2kxOG4oJ0YgaiwgWSwgRzppJywgJG50dCsoIGVtcHR5KCRudE9wdFsncG9zdFRpbWUnXSk/KGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICk6MCkpOyBlY2hvICIgKERlbGF5OiAiLigoaW50KSRudE9wdFsnbkRheXMnXT4wPyRudE9wdFsnbkRheXMnXS4nIERheScuKChpbnQpJG50T3B0WyduRGF5cyddIT0xPydzLCAnOicsICcpOicnKS4oKGludCkkbnRPcHRbJ25IcnMnXT4wPyRudE9wdFsnbkhycyddLicgSG91cicuKChpbnQpJG50T3B0WyduSHJzJ10hPTE/J3MsICc6JywgJyk6JycpLihpbnQpJG50T3B0WyduTWluJ10uJyBNaW51dGUnLigoaW50KSRudE9wdFsnbk1pbiddIT0xPydzLiAnOicuICcpLiIpIjsgfSBlbHNlaWYgKChpbnQpJG50dD4wICYmIChpbnQpJG50dD4oIWVtcHR5KCRudE9wdFsncG9zdFRpbWUnXSk/JG50T3B0Wydwb3N0VGltZSddOnRpbWUoKSkpIGVjaG8gZGF0ZV9pMThuKCdGIGosIFksIEc6aScsICRudHQrKCBnZXRfb3B0aW9uKCAnZ210X29mZnNldCcgKSAqIEhPVVJfSU5fU0VDT05EUyApKTsgZWxzZSB7IF9lKCdJbW1lZGlhdGVseScpOyA/PgogICAgICAgIDxhIGhyZWY9IiMiIG9uY2xpY2s9Im54c19zaG93VGltZURpYWxvZygnPD9waHAgZWNobyAkbnQuJGlpOyA/PicsJ0MnKTsgcmV0dXJuIGZhbHNlOyI+Wzw/cGhwIF9lKCdDaGFuZ2UnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpID8+XTwvYT4gPD9waHAgIH0gfSBlbHNlIHsgZWNobyBkYXRlX2kxOG4oJ0YgaiwgWSwgRzppJywgJG50dCsoIGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICkpLiIgIjsgPz4KICAgICAgIDxhIGhyZWY9IiMiIG9uY2xpY2s9Im54c19zaG93VGltZURpYWxvZygnPD9waHAgZWNobyAkbnQuJGlpOyA/PicsJzw/cGhwIGVjaG8gJGpqOyA/PicpOyByZXR1cm4gZmFsc2U7Ij5bPD9waHAgX2UoJ0NoYW5nZScsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz5dPC9hPiZuYnNwO3wmbmJzcDsgPD9waHAgIH0gfX0gPz4gPC9zcGFuPgogIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsiIGlkPSJkbzw/cGhwIGVjaG8gJG50VTsgPz5fVDw/cGhwIGVjaG8gJGlpOyA/PiI+PC9kaXY+PC9kaXY+IDwvZGl2PiAgPD9waHAKfX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ254c192NGRvU01BUzQxJykpe2Z1bmN0aW9uIG54c192NGRvU01BUzQxKCRvcHRpb25zKXsgPz48YnIvPgo8Yj48P3BocCBfZSgnUG9zdDonLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpOyA/PiA8L2I+IDw/cGhwIF9lKCdZb3UgY2FuIGxpbWl0IHJlcG9zdGluZyB0byBvbmx5IHNwZWNpZmljIGRheXMgYW5kIGhvdXJzLicsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJyk7ID8+Jm5ic3A7KDw/cGhwIF9lKCdDdXJyZW50IHNlcnZlciB0aW1lIGlzOiAnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpOyBlY2hvIGRhdGVfaTE4bignWS1tLWQgSDppJyk7ID8+KSAgICAgCiAgICAgPGJyLz4KPGRpdiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxNXB4OyI+CiAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJueHNfcnBzdHJbcnBzdEJ0d0hyc1R5cGVdIiB2YWx1ZT0iQSIgPD9waHAgaWYgKCFpc3NldCgkb3B0aW9uc1sncnBzdEJ0d0hyc1R5cGUnXSkgfHwgJG9wdGlvbnNbJ3Jwc3RCdHdIcnNUeXBlJ109PSdBJykgZWNobyAnY2hlY2tlZD0iY2hlY2tlZCInOyA/PiAvPiAgICAgCiAgICAgPD9waHAgX2UoJ0FsbCB0aGUgdGltZScsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJyk7ID8+CiAgICAgPGJyLz4KICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im54c19ycHN0cltycHN0QnR3SHJzVHlwZV0iIHZhbHVlPSJEIiA8P3BocCBpZiAoaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdIcnNUeXBlJ10pICYmICRvcHRpb25zWydycHN0QnR3SHJzVHlwZSddPT0nRCcpIGVjaG8gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsgPz4gLz4KICAgICA8P3BocCBfZSgnT25seSBiZXR3ZWVuIGhvdXJzJywgJ3NvY2lhbC1uZXR3b3Jrcy1hdXRvLXBvc3Rlci1mYWNlYm9vay10d2l0dGVyLWcnKTsgPz4mbmJzcDs8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibnhzX3Jwc3RyW3Jwc3RCdHdIcnNGXSIgc3R5bGU9IndpZHRoOiAzNXB4OyIgdmFsdWU9Ijw/cGhwIGVjaG8gaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdIcnNGJ10pPyRvcHRpb25zWydycHN0QnR3SHJzRiddOic4JzsgPz4iIC8+CiAgICAgJm5ic3A7PD9waHAgX2UoJ2FuZCcsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJyk7ID8+Jm5ic3A7CiAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im54c19ycHN0cltycHN0QnR3SHJzVF0iIHN0eWxlPSJ3aWR0aDogMzVweDsiIHZhbHVlPSI8P3BocCBlY2hvIGlzc2V0KCRvcHRpb25zWydycHN0QnR3SHJzVCddKT8kb3B0aW9uc1sncnBzdEJ0d0hyc1QnXTonMjEnOyA/PiIgLz4KICAgICAmbmJzcDs8P3BocCBfZSgnb24nLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpOz8+Jm5ic3A7CiAgICAgPGlucHV0IHZhbHVlPSI3IiA8P3BocCBpZiAoaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pICYmIGluX2FycmF5KCc3JywgJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pKSBlY2hvICJjaGVja2VkIjsgPz4gdHlwZT0iY2hlY2tib3giIG5hbWU9Im54c19ycHN0cltycHN0QnR3RGF5c11bXSIvPiZuYnNwO1N1biZuYnNwOyZuYnNwOwogICAgIDxpbnB1dCB2YWx1ZT0iMSIgPD9waHAgaWYgKCFpc3NldCgkb3B0aW9uc1sncnBzdEJ0d0RheXMnXSkgfHwgaW5fYXJyYXkoJzEnLCAkb3B0aW9uc1sncnBzdEJ0d0RheXMnXSkpIGVjaG8gImNoZWNrZWQiOyA/PiB0eXBlPSJjaGVja2JveCIgbmFtZT0ibnhzX3Jwc3RyW3Jwc3RCdHdEYXlzXVtdIi8+Jm5ic3A7TW9uJm5ic3A7Jm5ic3A7CiAgICAgPGlucHV0IHZhbHVlPSIyIiA8P3BocCBpZiAoIWlzc2V0KCRvcHRpb25zWydycHN0QnR3RGF5cyddKSB8fCBpbl9hcnJheSgnMicsICRvcHRpb25zWydycHN0QnR3RGF5cyddKSkgZWNobyAiY2hlY2tlZCI7ID8+IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJueHNfcnBzdHJbcnBzdEJ0d0RheXNdW10iLz4mbmJzcDtUdWUmbmJzcDsmbmJzcDsKICAgICA8aW5wdXQgdmFsdWU9IjMiIDw/cGhwIGlmICghaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pIHx8IGluX2FycmF5KCczJywgJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pKSBlY2hvICJjaGVja2VkIjsgPz4gdHlwZT0iY2hlY2tib3giIG5hbWU9Im54c19ycHN0cltycHN0QnR3RGF5c11bXSIvPiZuYnNwO1dlbiZuYnNwOyZuYnNwOwogICAgIDxpbnB1dCB2YWx1ZT0iNCIgPD9waHAgaWYgKCFpc3NldCgkb3B0aW9uc1sncnBzdEJ0d0RheXMnXSkgfHwgaW5fYXJyYXkoJzQnLCAkb3B0aW9uc1sncnBzdEJ0d0RheXMnXSkpIGVjaG8gImNoZWNrZWQiOyA/PiB0eXBlPSJjaGVja2JveCIgbmFtZT0ibnhzX3Jwc3RyW3Jwc3RCdHdEYXlzXVtdIi8+Jm5ic3A7VGgmbmJzcDsmbmJzcDsKICAgICA8aW5wdXQgdmFsdWU9IjUiIDw/cGhwIGlmICghaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pIHx8IGluX2FycmF5KCc1JywgJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pKSBlY2hvICJjaGVja2VkIjsgPz4gdHlwZT0iY2hlY2tib3giIG5hbWU9Im54c19ycHN0cltycHN0QnR3RGF5c11bXSIvPiZuYnNwO0ZyJm5ic3A7Jm5ic3A7CiAgICAgPGlucHV0IHZhbHVlPSI2IiA8P3BocCBpZiAoaXNzZXQoJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pICYmIGluX2FycmF5KCc2JywgJG9wdGlvbnNbJ3Jwc3RCdHdEYXlzJ10pKSBlY2hvICJjaGVja2VkIjsgPz4gdHlwZT0iY2hlY2tib3giIG5hbWU9Im54c19ycHN0cltycHN0QnR3RGF5c11bXSIvPiZuYnNwO1NhdCZuYnNwOyZuYnNwOwogICAgIDwvZGl2PiA8P3BocAp9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnbnhzX3Y0ZG9TTUFTNDEyJykpe2Z1bmN0aW9uIG54c192NGRvU01BUzQxMigkb3B0aW9ucyl7ID8+PGJyLz4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJueHNfcnBzdHJbcnBzdFN0b3BdIiB2YWx1ZT0iTyIgPD9waHAgaWYgKGVtcHR5KCRvcHRpb25zWydycHN0U3RvcCddKSB8fCAkb3B0aW9uc1sncnBzdFN0b3AnXT09J08nKSBlY2hvICdjaGVja2VkPSJjaGVja2VkIic7ID8+IC8+PD9waHAgX2UoJ1R1cm4gUmVwb3N0aW5nIE9mZicsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz48YnIvPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im54c19ycHN0cltycHN0U3RvcF0iIHZhbHVlPSJXIiA8P3BocCBpZiAoIWVtcHR5KCRvcHRpb25zWydycHN0U3RvcCddKSAmJiAkb3B0aW9uc1sncnBzdFN0b3AnXT09J1cnKSBlY2hvICdjaGVja2VkPSJjaGVja2VkIic7ID8+IC8+PD9waHAgX2UoJ1dhaXQgZm9yIG5ldyBwb3N0cycsICdzb2NpYWwtbmV0d29ya3MtYXV0by1wb3N0ZXItZmFjZWJvb2stdHdpdHRlci1nJykgPz48YnIvPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im54c19ycHN0cltycHN0U3RvcF0iIHZhbHVlPSJSIiA8P3BocCBpZiAoIWVtcHR5KCRvcHRpb25zWydycHN0U3RvcCddKSAmJiAkb3B0aW9uc1sncnBzdFN0b3AnXT09J1InKSBlY2hvICdjaGVja2VkPSJjaGVja2VkIic7ID8+IC8+PD9waHAgX2UoJ0xvb3AgaXQuIFJlc2V0IGFuZCBTdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpID8+PGJyLz4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJueHNfcnBzdHJbcnBzdFN0b3BdIiB2YWx1ZT0iTiIgPD9waHAgaWYgKCFlbXB0eSgkb3B0aW9uc1sncnBzdFN0b3AnXSkgJiYgJG9wdGlvbnNbJ3Jwc3RTdG9wJ109PSdOJykgZWNobyAnY2hlY2tlZD0iY2hlY2tlZCInOyA/PiAvPjw/cGhwIF9lKCdSZXBlYXQnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpID8+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJueHNfcnBzdHJbcnBzdFN0b3BScHRdIiBzdHlsZT0id2lkdGg6IDM1cHg7IiB2YWx1ZT0iPD9waHAgZWNobyBpc3NldCgkb3B0aW9uc1sncnBzdFN0b3BScHQnXSk/JG9wdGlvbnNbJ3Jwc3RTdG9wUnB0J106JzUnOyA/PiIgLz4mbmJzcDs8P3BocCBfZSgnVGltZXMnLCAnc29jaWFsLW5ldHdvcmtzLWF1dG8tcG9zdGVyLWZhY2Vib29rLXR3aXR0ZXItZycpID8+PGJyLz4KICAgICAgPD9waHAKfX0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ254c192NGRvU01BUzQxMycpKXtmdW5jdGlvbiBueHNfdjRkb1NNQVM0MTMoJG9wdGlvbnMpeyAkY3VyclRpbWUgPSB0aW1lKCkgKyAoIGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICk7ID8+Cjxici8+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJueHNfcnBzdHJbcnBzdFRpbWVzXSIgdmFsdWU9IlMiIGNsYXNzPSJycHN0clRpbWVzIiA8P3BocCBpZiAoIWVtcHR5KCRvcHRpb25zWydycHN0VGltZXMnXSkgJiYgJG9wdGlvbnNbJ3Jwc3RUaW1lcyddPT0nUycpIGVjaG8gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsgPz4gLz4gPD9waHAgX2UoJ1Bvc3Qgb24gc3BlY2lmaWMgZGF0ZS90aW1lJywgJ3NvY2lhbC1uZXR3b3Jrcy1hdXRvLXBvc3Rlci1mYWNlYm9vay10d2l0dGVyLWcnKSA/Pgo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDoyMHB4O2Rpc3BsYXk6PD9waHAgZWNobyAoIWVtcHR5KCRvcHRpb25zWydycHN0VGltZXMnXSkgJiYgJG9wdGlvbnNbJ3Jwc3RUaW1lcyddPT0nUycpPydibG9jayc6J25vbmUnOz8+OyIgaWQ9InJwc3RQb3N0U3BUaW1lc09wdGlvbnMiPjw/cGhwCiBpZiAoIWVtcHR5KCRvcHRpb25zWydycHN0Q3VzdFREJ10pICYmIGlzX2FycmF5KCRvcHRpb25zWydycHN0Q3VzdFREJ10pKSBmb3JlYWNoICgkb3B0aW9uc1sncnBzdEN1c3RURCddIGFzICR0ZCkgeyBpZihzdHJ0b3RpbWUoJHRkKT4kY3VyclRpbWUpIGVjaG8gJzxkaXY+PGlucHV0IHR5cGU9XCd0ZXh0XCcgY2xhc3M9XCdycHN0UG9zdER0U3BUaW1lc09wdGlvbnMgc2VhcmNoXCcgbmFtZT1cJ254c19ycHN0cltycHN0Q3VzdFREXVtdXCcgdmFsdWU9IicuJHRkLiciIC8+PGEgaHJlZj0iIyIgb25jbGljaz0ialF1ZXJ5KHRoaXMpLnBhcmVudCgpLnJlbW92ZSgpO3JldHVybiBmYWxzZTsiPjxpbWcgc3JjPSInLk5YU19QTFVSTC4naW1nL2RlbEljb24ucG5nIi8+PC9hPjwvZGl2Pic7IH0gPz48YnIvPjxhIGhyZWY9IiMiIGlkPSJycHN0c0FkZFRpbWUiIG9uY2xpY2s9ImpRdWVyeSgnI3Jwc3RQb3N0U3BUaW1lc09wdGlvbnMnKS5hcHBlbmQoJzxkaXY+PGlucHV0IHR5cGU9XCd0ZXh0XCcgY2xhc3M9XCdycHN0UG9zdER0U3BUaW1lc09wdGlvbnNYIHNlYXJjaFwnIG5hbWU9XCdueHNfcnBzdHJbcnBzdEN1c3RURF1bXVwnIC8+PGEgaHJlZj1cJyNcJyBvbmNsaWNrPVwnalF1ZXJ5KHRoaXMpLnBhcmVudCgpLnJlbW92ZSgpO3JldHVybiBmYWxzZTtcJz48aW1nIHNyYz1cJzw/cGhwIGVjaG8gTlhTX1BMVVJMOz8+aW1nL2RlbEljb24ucG5nXCcvPjwvYT48L2Rpdj4nKTtqUXVlcnkoJy5ycHN0UG9zdER0U3BUaW1lc09wdGlvbnNYJykuYWRhdGVwaWNrZXIoe2xhbmd1YWdlOiAnZW4nLCBtaW5EYXRlOiBuZXcgRGF0ZSgpLCB0aW1lcGlja2VyOiB0cnVlfSk7IHJldHVybiBmYWxzZTsiPls8P3BocCBfZSgnQWRkIHBvc3QgZGF0ZS90aW1lJywgJ3NvY2lhbC1uZXR3b3Jrcy1hdXRvLXBvc3Rlci1mYWNlYm9vay10d2l0dGVyLWcnKSA/Pl08L2E+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmpRdWVyeSgnLnJwc3RQb3N0RHRTcFRpbWVzT3B0aW9ucycpLmFkYXRlcGlja2VyKHtsYW5ndWFnZTogJ2VuJyxtaW5EYXRlOiBuZXcgRGF0ZSgpLCB0aW1lcGlja2VyOiB0cnVlfSk7PC9zY3JpcHQ+Cjw/cGhwCn19IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHNfY2xlYW5TTkFQX3Bvc3RfbWV0YScpKXsgZnVuY3Rpb24gbnhzX2NsZWFuU05BUF9wb3N0X21ldGEoJHBvKXsgJHBvT3V0ID0gYXJyYXkoKTsgaWYgKCFlbXB0eSgkcG8pJiZpc19hcnJheSgkcG8pKSB7Zm9yZWFjaCAoJHBvIGFzICRpaT0+JHApIGlmICgoaXNzZXQoJGlpKSAmJiAoJGlpID09PSAiMCJ8fCRpaSA9PT0gMCkpIHx8ICFlbXB0eSgkaWkpKSAkcG9PdXRbJGlpXSA9ICRwOyByZXR1cm4gJHBvT3V0O30gZWxzZSByZXR1cm4gJHBvOyB9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibnhzX3Y0ZG9TTUFTMiIpKXsgZnVuY3Rpb24gbnhzX3Y0ZG9TTUFTMigkcG9zdE9iaiwgJE5YU19QT1NULCAkcHVibHR5cGUsICRhaj1mYWxzZSl7IGdsb2JhbCAkbnhzX1NOQVAsICRueHNfc25hcEF2TnRzLCAkYmxvZ19pZCwgJG54c190cFdNUFU7IGlmICghaXNzZXQoJG54c19TTkFQKSkgcmV0dXJuOyAkb3B0aW9ucyA9ICRueHNfU05BUC0+bnhzX29wdGlvbnM7ICRpc1Bvc3QgPSBpc3NldCgkTlhTX1BPU1RbInNuYXBFZElUIl0pOyAkcG9zdElEID0gJHBvc3RPYmotPklEOyAkdWlkID0gJHBvc3RPYmotPnBvc3RfYXV0aG9yOyAkaXNJdFVzZXJXaG9DYW4gPSAoIXVzZXJfY2FuKCR1aWQsICdtYW5hZ2Vfb3B0aW9ucycgKSAmJiB1c2VyX2NhbigkdWlkLCAnaGF2ZW93bl9zbmFwX2FjY3NzJykpOyBpZiAoJGlzSXRVc2VyV2hvQ2FuKSB7ICRueHNfU05BUCA9IG5ldyBueHNfU05BUCgkcG9zdFVzZXIpOyAkbmV0d29ya3MgPSAkbnhzX1NOQVAtPm54c19hY2N0c1U7ICR1aWQgPSAkcG9zdFVzZXI7IGdsb2JhbCAkbnhzX3VpZDsgJG54c191aWQgPSAkdWlkOyB9IGVsc2UgeyAkbmV0d29ya3MgPSAkbnhzX1NOQVAtPm54c19hY2N0czsgfSBmb3JlYWNoICgkbnhzX3NuYXBBdk50cyBhcyAkYXZOdCkgeyBpZiAoIWVtcHR5KCRuZXR3b3Jrc1skYXZOdFsnbGNvZGUnXV0pICYmIGNvdW50KCRuZXR3b3Jrc1skYXZOdFsnbGNvZGUnXV0pPjApIHsgJGNsTmFtZSA9ICdueHNfc25hcENsYXNzJy4kYXZOdFsnY29kZSddOyBpZiAoJGlzUG9zdCAmJiBpc3NldCgkTlhTX1BPU1RbJGF2TnRbJ2xjb2RlJ11dKSkgJHBvID0gJE5YU19QT1NUWyRhdk50WydsY29kZSddXTsgZWxzZSAkcG8gPSBtYXliZV91bnNlcmlhbGl6ZShnZXRfcG9zdF9tZXRhKCRwb3N0SUQsICdzbmFwJy4kYXZOdFsnY29kZSddLCB0cnVlKSk7ICRwbyA9IG54c19jbGVhblNOQVBfcG9zdF9tZXRhKCRwbyk7IGlmIChpc3NldCgkcG8pICYmIGlzX2FycmF5KCRwbykpICRpc1Bvc3RNZXRhID0gdHJ1ZTsgZWxzZSB7ICRpc1Bvc3RNZXRhID0gZmFsc2U7ICRwbyA9ICRuZXR3b3Jrc1skYXZOdFsnbGNvZGUnXV07IHVwZGF0ZV9wb3N0X21ldGEoJHBvc3RJRCwgJ3NuYXAnLiRhdk50Wydjb2RlJ10sICRwbyk7IH0gZGVsZXRlX3Bvc3RfbWV0YSgkcG9zdElELCAnc25hcF9pc0F1dG9Qb3N0ZWQnKTsgYWRkX3Bvc3RfbWV0YSgkcG9zdElELCAnc25hcF9pc0F1dG9Qb3N0ZWQnLCB0aW1lKCkpOyBmb3JlYWNoICgkcG8gYXMgJGlpPT4kcHApeyAkb3B0TXQgPSAkbmV0d29ya3NbJGF2TnRbJ2xjb2RlJ11dWyRpaV07ICRudENsSW5zdCA9IG5ldyAkY2xOYW1lKCk7IGlmICgkaXNQb3N0TWV0YSkgJG9wdE10ID0gJG50Q2xJbnN0LT5hZGpNZXRhT3B0KCRvcHRNdCwgJHBwKTsgaWYgKCEkbnRDbEluc3QtPmNoZWNrSWZTZXR1cEZpbmlzaGVkKCRvcHRNdCkpIGNvbnRpbnVlOyAkb3B0TXRbJ2lpJ10gPSAkaWk7ICRwdWJsVGVtcFR5cGUgPSAnJzsgaWYgKCRvcHRNdFsnZG8nXT09JzInKXsgJHJNc2c9bnhzX3NuYXBDaGVja0ZpbHRlcnMoJG9wdE10LCAkcG9zdE9iaik7IGlmKCRyTXNnIT09ZmFsc2UpeyBueHNfTG9nSXQoJ0knLCAnU2tpcHBlZCcsICRhdk50WyduYW1lJ10uJyAoJy4kb3B0TXRbJ25OYW1lJ10uJyknLCcnLCAnRmlsdGVyKE5ldHdvcmspIC0gRXhjbHVkZWQgLSBQb3N0IElEOignLiRwb3N0SUQuJyknLCRyTXNnLCAnc25hcCcsICR1aWQgKTsgY29udGludWU7IH0gZWxzZSAkb3B0TXRbJ2RvJ10gPSAxOyB9IGlmICgkb3B0TXRbJ2RvJ109PScxJykgeyAkcHVibFRlbXBUeXBlID0gJyc7IGlmICgkcHVibHR5cGU9PSdBJyAmJiAoIWVtcHR5KCRvcHRNdFsnbkRheXMnXSkgfHwgIWVtcHR5KCRvcHRNdFsnbk1pbiddKSB8fCAhZW1wdHkoJG9wdE10WyduSHJzJ10pIHx8ICFlbXB0eSgkb3B0TXRbJ3RpbWVUb1J1biddKSkpICRwdWJsVGVtcFR5cGU9J1MnOyBpZiAoJHB1Ymx0eXBlPT0nQScpIHsgJHB1YmxUZW1wVHlwZT0nUyc7IGlmICggZW1wdHkoJG9wdE10WyduRGF5cyddKSAmJiBlbXB0eSgkb3B0TXRbJ25NaW4nXSkgJiBlbXB0eSgkb3B0TXRbJ25IcnMnXSkgJiYgZW1wdHkoJG9wdE10Wyd0aW1lVG9SdW4nXSkpICRvcHRNdFsndGltZVRvUnVuJ10gPSAnaSc7IH0gaWYgKCRwdWJsdHlwZT09J1MnIHx8ICRwdWJsVGVtcFR5cGUgPT0nUycpIHsgJHB1YmxUZW1wVHlwZSA9ICcnOyBpZiAoIWlzc2V0KCRvcHRNdFsnbk1pbiddKSkgJG9wdE10WyduTWluJ10gPSAwOyBpZiAoIWlzc2V0KCRvcHRNdFsnbkhycyddKSkgJG9wdE10WyduSHJzJ10gPSAwOyBpZiAoIWlzc2V0KCRvcHRNdFsnbkRheXMnXSkpICRvcHRNdFsnbkRheXMnXSA9IDA7IGlmICgkb3B0TXRbJ25IcnMnXT4wIHx8ICRvcHRNdFsnbk1pbiddPjAgfHwgJG9wdE10WyduRGF5cyddPjApIHsgJGRlbGF5ID0gJG9wdE10WyduTWluJ10qNjArJG9wdE10WyduSHJzJ10qMzYwMCskb3B0TXRbJ25EYXlzJ10qODY0MDA7IG54c19Mb2dJdCgnSScsICdEZWxheWVkJywgJGF2TnRbJ25hbWUnXS4nICgnLiRvcHRNdFsnbk5hbWUnXS4nKScsICcnLCdQb3N0IGhhcyBiZWVuIGRlbGF5ZWQnLCcgZm9yICcuJGRlbGF5LicgU2Vjb25kcyAoJy4oJG9wdE10WyduRGF5cyddPjA/JG9wdE10WyduRGF5cyddLicgRGF5cyc6JycpLiIgIi4oJG9wdE10WyduSHJzJ10+MD8kb3B0TXRbJ25IcnMnXS4nIEhvdXJzJzonJykuIiAiLigkb3B0TXRbJ25NaW4nXT4wPyRvcHRNdFsnbk1pbiddLicgTWludXRlcyc6JycpLicpJywnc25hcCcsJHVpZCApOyB9IGVsc2UgJGRlbGF5ID0gcmFuZCg1LDMwKTsgZ2xvYmFsICR3cGRiOyBpZiAoZW1wdHkoJG9wdE10Wyd0aW1lVG9SdW4nXSkpICRvcHRNdFsndGltZVRvUnVuJ10gPSB0aW1lKCk7ICR0dHJzID0gZXhwbG9kZSgnfCcsJG9wdE10Wyd0aW1lVG9SdW4nXSk7IGZvcmVhY2ggKCR0dHJzIGFzICR0dHIpIHsgaWYgKCR0dHI9PSdpJykgJHR0ciA9IHRpbWUoKTsgJHR0ciA9ICR0dHIgKyAoIGdldF9vcHRpb24oICdnbXRfb2Zmc2V0JyApICogSE9VUl9JTl9TRUNPTkRTICkrJGRlbGF5OyAkZGJJdGVtID0gYXJyYXkoJ2RhdGVjcmVhdGVkJz0+ZGF0ZV9pMThuKCdZLW0tZCBIOmk6cycpLCAndHlwZSc9PidTJywgJ3Bvc3RpZCc9PiRwb3N0SUQsICdudHR5cGUnPT4kYXZOdFsnY29kZSddLCAncmVmaWQnPT4kaWksICd0aW1ldG9ydW4nPT4gZGF0ZV9pMThuKCdZLW0tZCBIOmk6cycsICR0dHIpLCAnZXh0SW5mbyc9PnNlcmlhbGl6ZSgkb3B0TXQpLCAnZGVzY3InPT4gKCFlbXB0eSgkb3B0TXRbJ25OYW1lJ10pPycoJy4kYXZOdFsnY29kZSddLicgLSAnLiRvcHRNdFsnbk5hbWUnXS4nKSAnOicnKS4nUG9zdCBJRDooJy4kcG9zdElELicpJywgJ3VpZCc9PiR1aWQpOyAkbnhEQiA9ICR3cGRiLT5pbnNlcnQoICR3cGRiLT5wcmVmaXggLiAibnhzX3F1ZXJ5IiwgJGRiSXRlbSApOyAkbGlkID0gJHdwZGItPmluc2VydF9pZDsgbnhzX0xvZ0l0KCdCSScsICdTY2hlZHVsZWQnLCAkYXZOdFsnbmFtZSddLicgKCcuJG9wdE10WyduTmFtZSddLicpJywnJywnU2NoZWR1bGVkIGZvciAnLmRhdGVfaTE4bignWS1tLWQgSDppOnMnLCAkdHRyKS4iKSIsICcgUG9zdElEOignLiRwb3N0SUQuJyknLCdzbmFwJywkdWlkICk7IH0gfSBlbHNlIHsgJGZuYW1lID0gJ254c19kb1B1Ymxpc2hUbycuJGF2TnRbJ2NvZGUnXTsgJGZuYW1lKCRwb3N0SUQsICRvcHRNdCk7IH0gfSBlbHNlIHsgbnhzX0xvZ0l0KCdHUicsICdTa2lwcGVkJywgJGF2TnRbJ25hbWUnXS4nICgnLiRvcHRNdFsnbk5hbWUnXS4nKScsJycsICctPVtVbmNoZWNrZWQgQWNjb3VudF09LScsICdQb3N0SUQ6ICcuJHBvc3RJRC4nJywnc25hcCcsJHVpZCApOyB9IH0gfSB9IH19IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHNfdjRkb1NNQVM0Jykpe2Z1bmN0aW9uIG54c192NGRvU01BUzQoJG50LCAkaWksICRvcHRzKXsgJGhycyA9IGlzc2V0KCRvcHRzWyduSHJzJ10pPyRvcHRzWyduSHJzJ106MDsgJG1pbiA9IGlzc2V0KCRvcHRzWyduTWluJ10pPyRvcHRzWyduTWluJ106MDsgJGRheXMgPSBpc3NldCgkb3B0c1snbkRheXMnXSk/JG9wdHNbJ25EYXlzJ106MDsgJG91dFRYdCA9ICc8ZGl2IHN0eWxlPSJ3aWR0aDoxMDAlOyI+PHN0cm9uZz5Qb3N0aW5nIERlbGF5Ojwvc3Ryb25nPiA8aT5Zb3UgY2FuIGRlbGF5IHBvc3RpbmcgdG8gdGhpcyBhY2NvdW50LiBXaWxsIHdvcmsgb25seSBpZiAiU2V0dGluZ3MgVGFiIi0+IkhvdyB0byBtYWtlIGF1dG8tcG9zdHM/IiBpcyBzZXQgdG8gIlNjaGVkdWxlIjwvaT4gPC9kaXY+IERlbGF5IGZvcjogJzsgJG91dEQgPSAnPGlucHV0ICBzdHlsZT0id2lkdGg6MzBweDsiIHZhbHVlPSInLiRkYXlzLiciIHR5cGU9InRleHQiIG5hbWU9IicuJG50LidbJy4kaWkuJ11bZGVsYXlEYXlzXSIvPiBEYXlzICZuYnNwOyZuYnNwOyZuYnNwOyc7ICRvdXRIID0gJzxzZWxlY3QgaWQ9IicuJG50LiRpaS4nZGVsYXlIcnMiIG5hbWU9IicuJG50LidbJy4kaWkuJ11bZGVsYXlIcnNdIj48b3B0aW9uIHZhbHVlPSIwIj4wPC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjEiPjE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyIj4yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMyI+Mzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjQiPjQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI1Ij41PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNiI+Njwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjciPjc8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iOCI+ODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjkiPjk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMSI+MTE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMiI+MTI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMyI+MTM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxNCI+MTQ8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTUiPjE1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTYiPjE2PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTciPjE3PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTgiPjE4PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTkiPjE5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMjAiPjIwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMjEiPjIxPC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjIyIj4yMjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjIzIj4yMzwvb3B0aW9uPjwvc2VsZWN0PiBIb3VycyAmbmJzcDsmbmJzcDsmbmJzcDsnOyAkb3V0TSA9ICc8c2VsZWN0IGlkPSInLiRudC4kaWkuJ2RlbGF5TWluIiBuYW1lPSInLiRudC4nWycuJGlpLiddW2RlbGF5TWluXSI+PG9wdGlvbiB2YWx1ZT0iMCI+MDwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSIxIj4xPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMiI+Mjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjMiPjM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0Ij40PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNSI+NTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjYiPjY8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI3Ij43PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjgiPjg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI5Ij45PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTAiPjEwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTEiPjExPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTIiPjEyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTMiPjEzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTQiPjE0PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjE1Ij4xNTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE2Ij4xNjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE3Ij4xNzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE4Ij4xODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE5Ij4xOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjIxIj4yMTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSIyMiI+MjI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyMyI+MjM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNCI+MjQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNSI+MjU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNiI+MjY8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNyI+Mjc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyOCI+Mjg8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMjkiPjI5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzAiPjMwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzEiPjMxPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzIiPjMyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzMiPjMzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzQiPjM0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzUiPjM1PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjM2Ij4zNjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjM3Ij4zNzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjM4Ij4zODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjM5Ij4zOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjQwIj40MDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjQxIj40MTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjQyIj40Mjwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSI0MyI+NDM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0NCI+NDQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0NSI+NDU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0NiI+NDY8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0NyI+NDc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0OCI+NDg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI0OSI+NDk8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iNTAiPjUwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTEiPjUxPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTIiPjUyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTMiPjUzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTQiPjU0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTUiPjU1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTYiPjY2PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjU3Ij41Nzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjU4Ij41ODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjU5Ij41OTwvb3B0aW9uPjwvc2VsZWN0PiBNaW51dGVzIDxici8+PGJyLz4nOyAkb3V0SCA9IHN0cl9yZXBsYWNlKCd2YWx1ZT0iJy4kaHJzLiciJywnIHNlbGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9IicuJGhycy4nIicsICRvdXRIKTsgJG91dE0gPSBzdHJfcmVwbGFjZSgndmFsdWU9IicuJG1pbi4nIicsJyBzZWxlY3RlZD0ic2VsZWN0ZWQiIHZhbHVlPSInLiRtaW4uJyInLCAkb3V0TSk7IHJldHVybiAkb3V0VFh0LiRvdXRELiRvdXRILiRvdXRNOyB9fSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnbnhzX2RvU01BUzQyJykpe2Z1bmN0aW9uIG54c19kb1NNQVM0Migkb3B0aW9ucyl7ID8+PG9wdGlvbiB2YWx1ZT0iMSIgPD9waHAgaWYgKGlzc2V0KCRvcHRpb25zWydycHN0VHlwZSddKSAmJiAkb3B0aW9uc1sncnBzdFR5cGUnXT09JzEnKSBlY2hvICdzZWxlY3RlZD0ic2VsZWN0ZWQiJyA/Pj5SYW5kb21seTwvb3B0aW9uPjw/cGhwIH19IGlmICghZnVuY3Rpb25fZXhpc3RzKCdueHNfZG9TTUFTNycpKSB7ZnVuY3Rpb24gbnhzX2RvU01BUzcoJGFyZ3MsICRmaWx0ZXIpeyBpZiggIWVtcHR5KCAkZmlsdGVyWydueHNfdGF4X25hbWVzJ10gKSAmJiAhZW1wdHkoICRmaWx0ZXJbJ254c190ZXJtX25hbWVzJ10gKSB8fCAoICFlbXB0eSggJGZpbHRlclsnbnhzX2NvdW50X3Rlcm1fY29tcGFyZXMnXSApICYmICRmaWx0ZXJbJ254c19jb3VudF90ZXJtX2NvbXBhcmVzJ10gPiAxICkgKSB7ICR0ZXJtX2NvbXBhcmVzID0gYXJyYXkoKTsgJGNvdW50X3Rlcm1fY29tcGFyZXMgPSBlbXB0eSggJGZpbHRlclsnbnhzX2NvdW50X3Rlcm1fY29tcGFyZXMnXSApID8gMSA6ICRmaWx0ZXJbJ254c19jb3VudF90ZXJtX2NvbXBhcmVzJ107ICR0ZXJtX2NvbXBhcmVzWydyZWxhdGlvbiddID0gZW1wdHkoICRmaWx0ZXJbJ254c190ZXJtX3JlbGF0aW9uJ10gKSA/ICdBTkQnIDogJGZpbHRlclsnbnhzX3Rlcm1fcmVsYXRpb24nXTsgZm9yKCAkaSA9IDE7ICRpIDw9ICRjb3VudF90ZXJtX2NvbXBhcmVzOyAkaSsrICkgeyAkcG9zdGZpeCA9ICRpID4gMSA/ICdfJy4gJGkgOiAnJzsgaWYgKGVtcHR5KCRmaWx0ZXJbIm54c190YXhfbmFtZXMkcG9zdGZpeCJdKSkgY29udGludWU7ICRuZXdfdGVybV9jb21wYXJlID0gYXJyYXkoKTsgaWYoICFlbXB0eSggJGZpbHRlclsibnhzX3RheF9uYW1lcyRwb3N0Zml4Il0gKSApIHsgJG5ld190ZXJtX2NvbXBhcmVbJ3RheG9ub215J10gPSAkZmlsdGVyWyJueHNfdGF4X25hbWVzJHBvc3RmaXgiXTsgJG5ld190ZXJtX2NvbXBhcmVbJ2ZpZWxkJ10gPSAndGVybV9pZCc7IH0gaWYoICFlbXB0eSggJGZpbHRlclsibnhzX3Rlcm1fbmFtZXMkcG9zdGZpeCJdICkgKSAkbmV3X3Rlcm1fY29tcGFyZVsndGVybXMnXSA9IGFycmF5X21hcCggJ254c19nZXRfbm9ybWFsaXplX3BhcmFtZXRlcicsICRmaWx0ZXJbIm54c190ZXJtX25hbWVzJHBvc3RmaXgiXSApOyBpZiggIWVtcHR5KCAkZmlsdGVyWyJueHNfdGVybV9vcGVyYXRvciRwb3N0Zml4Il0gKSApICRuZXdfdGVybV9jb21wYXJlWydvcGVyYXRvciddID0gJGZpbHRlclsibnhzX3Rlcm1fb3BlcmF0b3IkcG9zdGZpeCJdOyAkbmV3X3Rlcm1fY29tcGFyZVsnaW5jbHVkZV9jaGlsZHJlbiddID0gZW1wdHkoICRmaWx0ZXJbIm54c190ZXJtX2NoaWxkcmVuJHBvc3RmaXgiXSApID8gdHJ1ZSA6ICRmaWx0ZXJbIm54c190ZXJtX2NoaWxkcmVuJHBvc3RmaXgiXTsgaWYoICFlbXB0eSggJG5ld190ZXJtX2NvbXBhcmUgKSApICR0ZXJtX2NvbXBhcmVzW10gPSAkbmV3X3Rlcm1fY29tcGFyZTsgfSAkYXJnc1sndGF4X3F1ZXJ5J10gPSAkdGVybV9jb21wYXJlczsgfSBpZiggIWVtcHR5KCAkZmlsdGVyWydwb3N0X21ldGEnXVswXVsna2V5J10gKSB8fCAhZW1wdHkoICRmaWx0ZXJbJ3Bvc3RfbWV0YSddWzBdWyd2YWx1ZSddICkgfHwgKCAhZW1wdHkoICRmaWx0ZXJbJ254c19jb3VudF9tZXRhX2NvbXBhcmVzJ10gKSAmJiAkZmlsdGVyWydueHNfY291bnRfbWV0YV9jb21wYXJlcyddID4gMSApICkgeyAkbWV0YV9jb21wYXJlcyA9IGFycmF5KCk7ICRjb3VudF9jb21wYXJlcyA9IGVtcHR5KCAkZmlsdGVyWydueHNfY291bnRfbWV0YV9jb21wYXJlcyddICkgPyAxIDogJGZpbHRlclsnbnhzX2NvdW50X21ldGFfY29tcGFyZXMnXTsgJGZpbHRlclsncG9zdF9tZXRhJ11bMF1bJ3JlbGF0aW9uJ10gPSBlbXB0eSggJGZpbHRlclsncG9zdF9tZXRhJ11bMF1bJ3JlbGF0aW9uJ10gKSA/ICdBTkQnIDogJGZpbHRlclsncG9zdF9tZXRhJ11bMF1bJ3JlbGF0aW9uJ107IGZvciggJGkgPSAwOyAkaSA8ICRjb3VudF9jb21wYXJlczsgJGkrKyApIHsgJG5ld19jb21wYXJlID0gYXJyYXkoKTsgaWYoICFlbXB0eSggJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWydrZXknXSApICkgJG5ld19jb21wYXJlWydrZXknXSA9ICRmaWx0ZXJbJ3Bvc3RfbWV0YSddWyRpXVsna2V5J107IGlmKCAhZW1wdHkoICRmaWx0ZXJbJ3Bvc3RfbWV0YSddWyRpXVsndmFsdWUnXSApICkgeyAkdmFsdWVzID0gJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWyd2YWx1ZSddOyBpZiAoY291bnQoJHZhbHVlcyk+MSl7ICRuZXdfY29tcGFyZVsndmFsdWUnXSA9IGFycmF5KCk7IGZvcmVhY2goICR2YWx1ZXMgYXMgJHZhbHVlICkgeyAkcG9zaXRpb25fZGVsaW1pdGVyID0gbWJfc3RycnBvcyggJHZhbHVlLCAnfHwnICk7IGlmICgkcG9zaXRpb25fZGVsaW1pdGVyPjApIHsgJG1ldGFfdmFsdWUgPSBnZXRfcG9zdF9tZXRhKCBpbnR2YWwoIG1iX3N1YnN0ciggJHZhbHVlLCAkcG9zaXRpb25fZGVsaW1pdGVyICsgMiApICksIG1iX3N1YnN0ciggJHZhbHVlLCAwLCAkcG9zaXRpb25fZGVsaW1pdGVyICksIHRydWUgKTsgfSBlbHNlICRtZXRhX3ZhbHVlID0gJHZhbHVlOyAkbmV3X2NvbXBhcmVbJ3ZhbHVlJ11bXSA9IGlzX2FycmF5KCAkbWV0YV92YWx1ZSApID8gc2VyaWFsaXplKCAkbWV0YV92YWx1ZSApIDogJG1ldGFfdmFsdWU7IH0gfSBlbHNlICRuZXdfY29tcGFyZVsndmFsdWUnXSA9ICR2YWx1ZXNbMF07IH0gaWYoICFlbXB0eSggJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWydvcGVyYXRvciddICkgKSB7IHN3aXRjaCggJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWydvcGVyYXRvciddICkgeyBjYXNlICdndCc6ICRuZXdfY29tcGFyZVsnY29tcGFyZSddID0gJz4nOyBicmVhazsgY2FzZSAnZ3Q9JzogJG5ld19jb21wYXJlWydjb21wYXJlJ10gPSAnPj0nOyBicmVhazsgY2FzZSAnbHQnOiAkbmV3X2NvbXBhcmVbJ2NvbXBhcmUnXSA9ICc8JzsgYnJlYWs7IGNhc2UgJ2x0PSc6ICRuZXdfY29tcGFyZVsnY29tcGFyZSddID0gJzw9JzsgYnJlYWs7IGRlZmF1bHQ6ICRuZXdfY29tcGFyZVsnY29tcGFyZSddID0gJGZpbHRlclsncG9zdF9tZXRhJ11bJGldWydvcGVyYXRvciddOyB9fSBpZiggIWVtcHR5KCAkZmlsdGVyWydwb3N0X21ldGEnXVskaV1bJ3R5cGUnXSApICkgJG5ld19jb21wYXJlWyd0eXBlJ10gPSAkZmlsdGVyWydwb3N0X21ldGEnXVskaV1bJ3R5cGUnXTsgaWYoICFlbXB0eSggJG5ld19jb21wYXJlICkgKSAkbWV0YV9jb21wYXJlc1tdID0gJG5ld19jb21wYXJlOyB9IGlmICghZW1wdHkoJG1ldGFfY29tcGFyZXMpKSAkbWV0YV9jb21wYXJlc1sncmVsYXRpb24nXSA9ICRmaWx0ZXJbJ3Bvc3RfbWV0YSddWzBdWydyZWxhdGlvbiddOyAkYXJnc1snbWV0YV9xdWVyeSddID0gJG1ldGFfY29tcGFyZXM7IH0gcmV0dXJuICRhcmdzOyB9fSAgIGdsb2JhbCAkbnhzX2FwaUxJbmZvOyRueHNfYXBpTEluZm8gID0gYXJyYXkoIjEiPT4nU05BUCBQcm8gV29yZFByZXNzIFBsdWdpbiAoTGlmZXRpbWUgTGljZW5zZSk6IDxiIHN0eWxlPSJjb2xvcjojMDA1ODU4OyI+QWN0aXZlPC9iPjs8YnIvPlNOQVAgUHJlbWl1bSBBUEkgU2VydmljZSAoQWxsIE5ldHdvcmtzKTogPGIgc3R5bGU9ImNvbG9yOiNGRjAwMDA7Ij5JbmFjdGl2ZTs8L2I+Jm5ic3A7U3Vic2NyaXB0aW9uOiA8aSBzdHlsZT0iY29sb3I6cmVkOyI+Tm9uZTwvaT47IFNlcnZpY2UgZXhwaXJlZCBvbjogU2VwdGVtYmVyIDI1LCAyMDE5JywiMiI9PicnLCAibm9JRyI9PnRydWUpOyA=

Function Calls

None

Variables

None

Stats

MD5 8e170445164de940c70fbace98246948
Eval Count 0
Decode Time 899 ms