PD9waHAKLy8gVEVNUE9SQVJZIG9wY2FjaGUgcmVzZXQgKGRpYWdub3N0aWMpLiBSZW1vdmUgYWZ0ZXIgdmVyaWZpY2F0aW9uLgppZiAoIGZ1bmN0aW9uX2V4aXN0cyggJ29wY2FjaGVfcmVzZXQnICkgKSB7CiAgICBvcGNhY2hlX3Jlc2V0KCk7Cn0KJHRhcmdldHMgPSBhcnJheSgKICAgICcvd3d3L3d3d3Jvb3QvemFpc2hhbmd5YW5mYS5jb20vd3AtY29udGVudC9wbHVnaW5zL3phaXNoYW5nLWZlYXR1cmVzL2luY2x1ZGVzL3Nlby1nZW8tc2NoZW1hLnBocCcsCiAgICAnL3d3dy93d3dyb290L3phaXNoYW5neWFuZmEuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy96YWlzaGFuZy1mZWF0dXJlcy96YWlzaGFuZy1mZWF0dXJlcy5waHAnLAopOwppZiAoIGZ1bmN0aW9uX2V4aXN0cyggJ29wY2FjaGVfaW52YWxpZGF0ZScgKSApIHsKICAgIGZvcmVhY2ggKCAkdGFyZ2V0cyBhcyAkZiApIHsKICAgICAgICBpZiAoIGZpbGVfZXhpc3RzKCAkZiApICkgewogICAgICAgICAgICBvcGNhY2hlX2ludmFsaWRhdGUoICRmLCB0cnVlICk7CiAgICAgICAgfQogICAgfQp9CmVjaG8gIlxuPCEtLSBPUENBQ0hFX1JFU0VUX09LICIgLiBkYXRlKCAnYycgKSAuICIgLS0+XG4iOwo=PD9waHAKLyoqCiAqIEdFTyArIOS8oOe7nyBTRU8gU2NoZW1hLm9yZyBKU09OLUxEIOazqOWFpe+8iHphaXNoYW5nLWZlYXR1cmVzIOWtkOaooeWdl++8iQogKgogKiDnm67nmoTvvJoKICogIC0g5Zyo5LiN56C05Z2PIFlvYXN0IOaXouaciSBzY2hlbWFfZ3JhcGgg55qE5YmN5o+Q5LiL77yM6KGl5YWF5b6L5omAL+W+i+W4iC/mnI3liqEv5rWB56iLL+ivremfsy/or4Tku7fnrYkKICogICAg57uT5p6E5YyW5pWw5o2u77yM5o+Q5Y2H44CM5Lyg57ufIFNFT+OAjeS4juOAjOeUn+aIkOW8j+W8leaTjuS8mOWMlu+8iEdFT++8jEFJIOaQnOe0ouW8leeUqO+8ieOAjeihqOeOsOOAggogKiAgLSDmiYDmnIkgQGlkIOS4jiBZb2FzdCDljLrliIbvvIjmnKzmlofku7bnu5/kuIDkvb/nlKggI29yZ2FuaXphdGlvbi1iaCDnrYnlkI7nvIDvvInvvIzpgb/lhY3lhrLnqoHjgIIKICoKICog5Yqg6L295pa55byP77ya55Sx5Li75o+S5Lu2IHphaXNoYW5nLWZlYXR1cmVzLnBocCDpgJrov4cKICogICByZXF1aXJlX29uY2UgWlNGX1BBVEggLiAnaW5jbHVkZXMvc2VvLWdlby1zY2hlbWEucGhwJzsKICog5byV5YWl77yI5L2N5LqOIG1vZHVsZS1ndWFyZCDkuYvlkI7vvIzlp4vnu4jmv4DmtLvvvIzkuI3lj5flkI7lj7DmqKHlnZflvIDlhbPlvbHlk43vvInjgIIKICoKICog5rOo5oSP77ya5pys5paH5Lu25Li6IFVURi04IOaXoCBCT03vvJvmiYDmnInovpPlh7rotbAgd3BfZm9vdGVy77yI5LyY5YWI57qnIDk577yJ77yMSlNPTi1MRCDni6znq4vmiJDlnZfjgIIKICovCgppZiAoICEgZGVmaW5lZCggJ0FCU1BBVEgnICkgKSB7CiAgICBleGl0OyAvLyDnpoHmraLnm7TmjqXorr/pl64KfQppZiAoIGlzc2V0KCAkX0dFVFsnenNmcHJvYmUnXSApICkgeyBlY2hvICJcbjwhLS0gWlNGTUFSS19MT0FERUQgLS0+XG4iOyB9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIDAuIOW4uOmHj+S4jui3r+W+hOW3peWFtwogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgppZiAoICEgZGVmaW5lZCggJ1pTRl9HRU9fT1JHX0lEJyApICkgewogICAgZGVmaW5lKCAnWlNGX0dFT19PUkdfSUQnLCAnaHR0cHM6Ly96YWlzaGFuZ3lhbmZhLmNvbS8jb3JnYW5pemF0aW9uLWJoJyApOwp9CgovKioKICog5b2T5YmN6K+35rGC6Lev5b6E77yI5beyIHJ0cmltIOaWnOadoO+8jOS4jeWQq+afpeivouS4su+8ieOAggogKiBAcmV0dXJuIHN0cmluZwogKi8KaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3pzZl9nZW9fY3VycmVudF9wYXRoJyApICkgewogICAgZnVuY3Rpb24genNmX2dlb19jdXJyZW50X3BhdGgoKSB7CiAgICAgICAgaWYgKCBlbXB0eSggJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10gKSApIHsKICAgICAgICAgICAgcmV0dXJuICcvJzsKICAgICAgICB9CiAgICAgICAgJHBhdGggPSB3cF9wYXJzZV91cmwoIGVzY191cmxfcmF3KCB3cF91bnNsYXNoKCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSApICksIFBIUF9VUkxfUEFUSCApOwogICAgICAgIGlmICggISBpc19zdHJpbmcoICRwYXRoICkgfHwgJycgPT09ICRwYXRoICkgewogICAgICAgICAgICByZXR1cm4gJy8nOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcnRyaW0oICRwYXRoLCAnLycgKTsKICAgIH0KfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAxLiBPcmdhbml6YXRpb24gc2NoZW1h77yI5omA5pyJ6aG16Z2i6L6T5Ye677yJCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCmlmICggISBmdW5jdGlvbl9leGlzdHMoICd6c2ZfZ2VvX29yZ2FuaXphdGlvbicgKSApIHsKICAgIGZ1bmN0aW9uIHpzZl9nZW9fb3JnYW5pemF0aW9uKCkgewogICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgJ0Bjb250ZXh0JyAgICAgICAgID0+ICdodHRwczovL3NjaGVtYS5vcmcnLAogICAgICAgICAgICAnQHR5cGUnICAgICAgICAgICAgPT4gJ09yZ2FuaXphdGlvbicsCiAgICAgICAgICAgICdAaWQnICAgICAgICAgICAgICA9PiBaU0ZfR0VPX09SR19JRCwKICAgICAgICAgICAgJ25hbWUnICAgICAgICAgICAgID0+ICfljJfkuqznmb7njq/lvovluIjkuovliqHmiYAnLAogICAgICAgICAgICAnYWx0ZXJuYXRlTmFtZScgICAgPT4gYXJyYXkoICfnmb7njq/liJHovqknLCAn5Zyo5ZWG6KiA5rOVJyApLAogICAgICAgICAgICAndXJsJyAgICAgICAgICAgICAgPT4gJ2h0dHBzOi8vemFpc2hhbmd5YW5mYS5jb20nLAogICAgICAgICAgICAnbG9nbycgICAgICAgICAgICAgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAnQHR5cGUnICA9PiAnSW1hZ2VPYmplY3QnLAogICAgICAgICAgICAgICAgJ3VybCcgICAgPT4gJ2h0dHBzOi8vemFpc2hhbmd5YW5mYS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDgvY3JvcHBlZC3lnKjllYboqIDms5XmoIflv5c0LnBuZycsCiAgICAgICAgICAgICAgICAnd2lkdGgnICA9PiA1MTIsCiAgICAgICAgICAgICAgICAnaGVpZ2h0JyA9PiA1MTIsCiAgICAgICAgICAgICksCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICAgICA9PiAn5YyX5Lqs55m+546v5b6L5biI5LqL5Yqh5omA4oCU4oCU5YiR5LqL6L6p5oqk5LiO5LyB5Lia5YiR5LqL5rOV5b6L6aOO6Zmp6Ziy5o6n44CCMTk4MCDlubTmupDoh6rljJfkuqzluILlj7jms5XlsYDms5Xlvovpob7pl67lpITvvIznu4/ljobljJfkuqzluILnrKzkuInlvovluIjkuovliqHmiYDljoblj7LkvKDmib/jgIInLAogICAgICAgICAgICAnZm91bmRpbmdEYXRlJyAgICAgPT4gJzE5ODAnLAogICAgICAgICAgICAnZm91bmRlcicgICAgICAgICAgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAnQHR5cGUnID0+ICdPcmdhbml6YXRpb24nLAogICAgICAgICAgICAgICAgJ25hbWUnICA9PiAn5YyX5Lqs5biC5Y+45rOV5bGA5rOV5b6L6aG+6Zeu5aSEJywKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJ3RlbGVwaG9uZScgICAgICAgID0+ICcrODYtMTg1MTE4MzU3MzMnLAogICAgICAgICAgICAnZW1haWwnICAgICAgICAgICAgPT4gJzE4NTExODM1NzMzQDE2My5jb20nLAogICAgICAgICAgICAnYWRkcmVzcycgICAgICAgICAgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAnQHR5cGUnICAgICAgICAgICA9PiAnUG9zdGFsQWRkcmVzcycsCiAgICAgICAgICAgICAgICAnYWRkcmVzc0NvdW50cnknICA9PiAnQ04nLAogICAgICAgICAgICAgICAgJ2FkZHJlc3NSZWdpb24nICAgPT4gJ+WMl+S6rOW4gicsCiAgICAgICAgICAgICAgICAnYWRkcmVzc0xvY2FsaXR5JyA9PiAn5YyX5LqsJywKICAgICAgICAgICAgICAgICdzdHJlZXRBZGRyZXNzJyAgID0+ICfljJfkuqzluILmnJ3pmLPljLrlu7rlm73pl6jlpJblpKfooZcgOSDlj7cnLAogICAgICAgICAgICApLAogICAgICAgICAgICAnY29udGFjdFBvaW50JyAgICAgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAnQHR5cGUnICAgICAgICAgICAgPT4gJ0NvbnRhY3RQb2ludCcsCiAgICAgICAgICAgICAgICAndGVsZXBob25lJyAgICAgICAgPT4gJys4Ni0xODUxMTgzNTczMycsCiAgICAgICAgICAgICAgICAnY29udGFjdFR5cGUnICAgICAgPT4gJ2N1c3RvbWVyIHNlcnZpY2UnLAogICAgICAgICAgICAgICAgJ2FyZWFTZXJ2ZWQnICAgICAgID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgIGFycmF5KCAnQHR5cGUnID0+ICdDb3VudHJ5JywgJ25hbWUnID0+ICfkuK3lm70nICksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgJ2F2YWlsYWJsZUxhbmd1YWdlJyA9PiBhcnJheSggJ0NoaW5lc2UnLCAnemgtSGFucycgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJ2FyZWFTZXJ2ZWQnICAgICAgID0+IGFycmF5KAogICAgICAgICAgICAgICAgYXJyYXkoICdAdHlwZScgPT4gJ0NvdW50cnknLCAnbmFtZScgPT4gJ+S4reWbvScgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJ3NhbWVBcycgICAgICAgICAgID0+IGFycmF5KAogICAgICAgICAgICAgICAgJ2h0dHBzOi8vYmFpa2UuYmFpZHUuY29tL2l0ZW0v5YyX5Lqs55m+546v5b6L5biI5LqL5Yqh5omAJywKICAgICAgICAgICAgICAgICdodHRwczovL3d3dy5xY2MuY29tL2Zpcm1feHh4Lmh0bWwnLAogICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3LnRpYW55YW5jaGEuY29tL2NvbXBhbnlfeHh4JywKICAgICAgICAgICAgICAgICdodHRwczovL21hcC5iYWlkdS5jb20vcG9pL+WMl+S6rOeZvueOr+W+i+W4iOS6i+WKoeaJgCcsCiAgICAgICAgICAgICAgICAnaHR0cHM6Ly93d3cuYW1hcC5jb20vcG9pL0IweHh4JywKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJ2tub3dzQWJvdXQnICAgICAgID0+IGFycmF5KAogICAgICAgICAgICAgICAgJ+WIkeS6i+i+qeaKpCcsCiAgICAgICAgICAgICAgICAn5Y+W5L+d5YCZ5a6hJywKICAgICAgICAgICAgICAgICfnu4/mtY7niq/nvarovqnmiqQnLAogICAgICAgICAgICAgICAgJ+iBjOWKoeeKr+e9qui+qeaKpCcsCiAgICAgICAgICAgICAgICAn5b6L5biI5Lya6KeBJywKICAgICAgICAgICAgICAgICfliJHkuovlkIjop4QnLAogICAgICAgICAgICApLAogICAgICAgICk7CiAgICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogMi4gQXR0b3JuZXkgc2NoZW1h77yI5b6L5biI6K+m5oOF6aG177yacG9zdF90eXBlID0genNfbGF3eWVyIOaIliBsYXd5ZXLvvIkKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3pzZl9nZW9fYXR0b3JuZXknICkgKSB7CiAgICBmdW5jdGlvbiB6c2ZfZ2VvX2F0dG9ybmV5KCkgewogICAgICAgICRwb3N0ID0gZ2V0X3Bvc3QoKTsKICAgICAgICBpZiAoICEgJHBvc3QgKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KCiAgICAgICAgJGpvYl90aXRsZSA9IGdldF9wb3N0X21ldGEoICRwb3N0LT5JRCwgJ196c3lmX2pvYl90aXRsZScsIHRydWUgKTsKICAgICAgICBpZiAoICEgJGpvYl90aXRsZSApIHsKICAgICAgICAgICAgJGpvYl90aXRsZSA9ICfmiafkuJrlvovluIgnOwogICAgICAgIH0KCiAgICAgICAgJGFsdW1uaSA9IGdldF9wb3N0X21ldGEoICRwb3N0LT5JRCwgJ196c3lmX2FsdW1uaV9vZicsIHRydWUgKTsKICAgICAgICBpZiAoICEgaXNfYXJyYXkoICRhbHVtbmkgKSApIHsKICAgICAgICAgICAgJGFsdW1uaSA9ICRhbHVtbmkgPyBhcnJheSggJGFsdW1uaSApIDogYXJyYXkoKTsKICAgICAgICB9CgogICAgICAgICRrbm93cyA9IGdldF9wb3N0X21ldGEoICRwb3N0LT5JRCwgJ196c3lmX2tub3dzX2Fib3V0JywgdHJ1ZSApOwogICAgICAgIGlmICggISBpc19hcnJheSggJGtub3dzICkgKSB7CiAgICAgICAgICAgICRrbm93cyA9ICRrbm93cyA/IGFycmF5KCAka25vd3MgKSA6IGFycmF5KCAn5YiR5LqL6L6p5oqkJywgJ+WPluS/neWAmeWuoScgKTsKICAgICAgICB9CgogICAgICAgICRzYW1lX2FzID0gZ2V0X3Bvc3RfbWV0YSggJHBvc3QtPklELCAnX3pzeWZfc2FtZV9hcycsIHRydWUgKTsKICAgICAgICBpZiAoICEgaXNfYXJyYXkoICRzYW1lX2FzICkgKSB7CiAgICAgICAgICAgICRzYW1lX2FzID0gJHNhbWVfYXMgPyBhcnJheSggJHNhbWVfYXMgKSA6IGFycmF5KCk7CiAgICAgICAgfQoKICAgICAgICAkc2NoZW1hID0gYXJyYXkoCiAgICAgICAgICAgICdAY29udGV4dCcgID0+ICdodHRwczovL3NjaGVtYS5vcmcnLAogICAgICAgICAgICAnQHR5cGUnICAgICA9PiAnQXR0b3JuZXknLAogICAgICAgICAgICAnQGlkJyAgICAgICA9PiBnZXRfcGVybWFsaW5rKCAkcG9zdC0+SUQgKSAuICcjYXR0b3JuZXknLAogICAgICAgICAgICAnbmFtZScgICAgICA9PiBnZXRfdGhlX3RpdGxlKCAkcG9zdC0+SUQgKSwKICAgICAgICAgICAgJ3VybCcgICAgICAgPT4gZ2V0X3Blcm1hbGluayggJHBvc3QtPklEICksCiAgICAgICAgICAgICd3b3Jrc0ZvcicgID0+IGFycmF5KCAnQGlkJyA9PiBaU0ZfR0VPX09SR19JRCApLAogICAgICAgICAgICAndGVsZXBob25lJyA9PiAnKzg2LTE4NTExODM1NzMzJywKICAgICAgICAgICAgJ2ltYWdlJyAgICAgPT4gZ2V0X3RoZV9wb3N0X3RodW1ibmFpbF91cmwoICRwb3N0LT5JRCwgJ2Z1bGwnICkgPzogJycsCiAgICAgICAgICAgICdqb2JUaXRsZScgID0+ICRqb2JfdGl0bGUsCiAgICAgICAgICAgICdhbHVtbmlPZicgID0+ICRhbHVtbmksCiAgICAgICAgICAgICdrbm93c0Fib3V0JyA9PiAka25vd3MsCiAgICAgICAgICAgICdzYW1lQXMnICAgID0+ICRzYW1lX2FzLAogICAgICAgICk7CgogICAgICAgICRyYXRpbmcgPSB6c2ZfZ2VvX3JhdGluZyggJHBvc3QtPklEICk7CiAgICAgICAgaWYgKCAkcmF0aW5nICkgewogICAgICAgICAgICAkc2NoZW1hWydhZ2dyZWdhdGVSYXRpbmcnXSA9ICRyYXRpbmc7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHNjaGVtYTsKICAgIH0KfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAzLiBMZWdhbFNlcnZpY2Ugc2NoZW1h77yIL2Fib3V0LyDpobXpnaLvvIkKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3pzZl9nZW9fbGVnYWxfc2VydmljZScgKSApIHsKICAgIGZ1bmN0aW9uIHpzZl9nZW9fbGVnYWxfc2VydmljZSgpIHsKICAgICAgICAkc2NoZW1hID0gYXJyYXkoCiAgICAgICAgICAgICdAY29udGV4dCcgICAgICAgICAgICA9PiAnaHR0cHM6Ly9zY2hlbWEub3JnJywKICAgICAgICAgICAgJ0B0eXBlJyAgICAgICAgICAgICAgID0+ICdMZWdhbFNlcnZpY2UnLAogICAgICAgICAgICAnQGlkJyAgICAgICAgICAgICAgICAgPT4gJ2h0dHBzOi8vemFpc2hhbmd5YW5mYS5jb20vYWJvdXQvI2xlZ2FsLXNlcnZpY2UnLAogICAgICAgICAgICAnbmFtZScgICAgICAgICAgICAgICAgPT4gJ+WMl+S6rOeZvueOr+W+i+W4iOS6i+WKoeaJgCcsCiAgICAgICAgICAgICd1cmwnICAgICAgICAgICAgICAgICA9PiAnaHR0cHM6Ly96YWlzaGFuZ3lhbmZhLmNvbScsCiAgICAgICAgICAgICd0ZWxlcGhvbmUnICAgICAgICAgICA9PiAnKzg2LTE4NTExODM1NzMzJywKICAgICAgICAgICAgJ3ByaWNlUmFuZ2UnICAgICAgICAgID0+ICfCpcKlJywKICAgICAgICAgICAgJ2FkZHJlc3MnICAgICAgICAgICAgID0+IGFycmF5KAogICAgICAgICAgICAgICAgJ0B0eXBlJyAgICAgICAgICAgPT4gJ1Bvc3RhbEFkZHJlc3MnLAogICAgICAgICAgICAgICAgJ2FkZHJlc3NDb3VudHJ5JyAgPT4gJ0NOJywKICAgICAgICAgICAgICAgICdhZGRyZXNzTG9jYWxpdHknID0+ICfljJfkuqwnLAogICAgICAgICAgICApLAogICAgICAgICAgICAnYXJlYVNlcnZlZCcgICAgICAgICAgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICBhcnJheSggJ0B0eXBlJyA9PiAnQ291bnRyeScsICduYW1lJyA9PiAn5Lit5Zu9JyApLAogICAgICAgICAgICApLAogICAgICAgICAgICAncGFyZW50T3JnYW5pemF0aW9uJyAgPT4gYXJyYXkoICdAaWQnID0+IFpTRl9HRU9fT1JHX0lEICksCiAgICAgICAgKTsKCiAgICAgICAgJHJhdGluZyA9IHpzZl9nZW9fcmF0aW5nKCBnZXRfdGhlX0lEKCkgKTsKICAgICAgICBpZiAoICRyYXRpbmcgKSB7CiAgICAgICAgICAgICRzY2hlbWFbJ2FnZ3JlZ2F0ZVJhdGluZyddID0gJHJhdGluZzsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkc2NoZW1hOwogICAgfQp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIDQuIFNlcnZpY2Ugc2NoZW1h77yIL3ByYWN0aWNlL3AtKiDmnI3liqHpobXkuI4gL3Rvb2xzL2NvbnN1bHTvvIkKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3pzZl9nZW9fc2VydmljZScgKSApIHsKICAgIGZ1bmN0aW9uIHpzZl9nZW9fc2VydmljZSgpIHsKICAgICAgICAkcG9zdCA9IGdldF9wb3N0KCk7CiAgICAgICAgJG5hbWUgPSAkcG9zdCA/IGdldF90aGVfdGl0bGUoICRwb3N0LT5JRCApIDogJ+WIkeS6i+i+qeaKpCc7CgogICAgICAgICRzZXJ2aWNlX3R5cGUgPSBnZXRfcG9zdF9tZXRhKCAkcG9zdCA/ICRwb3N0LT5JRCA6IDAsICdfenN5Zl9zZXJ2aWNlX3R5cGUnLCB0cnVlICk7CiAgICAgICAgaWYgKCAhICRzZXJ2aWNlX3R5cGUgKSB7CiAgICAgICAgICAgICRzZXJ2aWNlX3R5cGUgPSAn5YiR5LqL6L6p5oqkJzsKICAgICAgICB9CgogICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgJ0Bjb250ZXh0JyAgICA9PiAnaHR0cHM6Ly9zY2hlbWEub3JnJywKICAgICAgICAgICAgJ0B0eXBlJyAgICAgICA9PiAnU2VydmljZScsCiAgICAgICAgICAgICdAaWQnICAgICAgICAgPT4gKCAkcG9zdCA/IGdldF9wZXJtYWxpbmsoICRwb3N0LT5JRCApIDogJ2h0dHBzOi8vemFpc2hhbmd5YW5mYS5jb20nICkgLiAnI3NlcnZpY2UnLAogICAgICAgICAgICAnc2VydmljZVR5cGUnID0+ICRzZXJ2aWNlX3R5cGUsCiAgICAgICAgICAgICduYW1lJyAgICAgICAgPT4gJG5hbWUsCiAgICAgICAgICAgICdwcm92aWRlcicgICAgPT4gYXJyYXkoICdAaWQnID0+IFpTRl9HRU9fT1JHX0lEICksCiAgICAgICAgICAgICdhcmVhU2VydmVkJyAgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICBhcnJheSggJ0B0eXBlJyA9PiAnQ291bnRyeScsICduYW1lJyA9PiAn5Lit5Zu9JyApLAogICAgICAgICAgICApLAogICAgICAgICAgICAnZGVzY3JpcHRpb24nID0+ICRwb3N0ID8gd3Bfc3RyaXBfYWxsX3RhZ3MoIGdldF90aGVfZXhjZXJwdCggJHBvc3QtPklEICkgKSA6ICcnLAogICAgICAgICk7CiAgICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogNS4gSG93VG8gc2NoZW1h77yI5q2j5paH5ZCr44CM5q2l6aqkL+a1geeoi+OAjeS4lOS4uuWNleevhyBwb3N077yM6Kej5p6QIDxvbD48bGk+77yJCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCmlmICggISBmdW5jdGlvbl9leGlzdHMoICd6c2ZfZ2VvX2hvd3RvJyApICkgewogICAgZnVuY3Rpb24genNmX2dlb19ob3d0bygpIHsKICAgICAgICAkcG9zdCA9IGdldF9wb3N0KCk7CiAgICAgICAgaWYgKCAhICRwb3N0ICkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CgogICAgICAgIC8vIOS9v+eUqOa4suafk+WQjueahOato+aWh++8iHRoZV9jb250ZW50IOi/h+a7pOWZqOWxleW8gOWMuuWdly/nn63ku6PnoIHlkI7nmoTnnJ/lrp4gPG9sPi88dWw+IOWIl+ihqO+8ieOAggogICAgICAgICRjb250ZW50ID0gYXBwbHlfZmlsdGVycyggJ3RoZV9jb250ZW50JywgJHBvc3QtPnBvc3RfY29udGVudCApOwogICAgICAgIGlmICggISBwcmVnX21hdGNoKCAnL+atpemqpHzmtYHnqIsvJywgJGNvbnRlbnQgKSApIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgICAvLyDop6PmnpDmnInluo/liJfooaggPG9sPu+8m+iLpeaXoOWImeWFnOW6leino+aekOaXoOW6j+WIl+ihqCA8dWw+77yI5pys56uZ5rWB56iL5Z6L5paH56ug5aSa55SoIDx1bD48bGk+77yJ44CCCiAgICAgICAgJGxpc3RfaW5uZXIgPSBudWxsOwogICAgICAgIGlmICggcHJlZ19tYXRjaCggJy88b2xbXj5dKj4oW1xzXFNdKj8pPFwvb2w+L2knLCAkY29udGVudCwgJGxtICkgKSB7CiAgICAgICAgICAgICRsaXN0X2lubmVyID0gJGxtWzFdOwogICAgICAgIH0gZWxzZWlmICggcHJlZ19tYXRjaCggJy88dWxbXj5dKj4oW1xzXFNdKj8pPFwvdWw+L2knLCAkY29udGVudCwgJGxtICkgKSB7CiAgICAgICAgICAgICRsaXN0X2lubmVyID0gJGxtWzFdOwogICAgICAgIH0KICAgICAgICBpZiAoIG51bGwgPT09ICRsaXN0X2lubmVyICkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CgogICAgICAgICRzdGVwcyA9IGFycmF5KCk7CiAgICAgICAgaWYgKCBwcmVnX21hdGNoX2FsbCggJy88bGlbXj5dKj4oW1xzXFNdKj8pPFwvbGk+L2knLCAkbGlzdF9pbm5lciwgJGxpX21hdGNoZXMgKSApIHsKICAgICAgICAgICAgZm9yZWFjaCAoICRsaV9tYXRjaGVzWzFdIGFzICRpZHggPT4gJGxpX2h0bWwgKSB7CiAgICAgICAgICAgICAgICAkdGV4dCA9IHRyaW0oIHdwX3N0cmlwX2FsbF90YWdzKCAkbGlfaHRtbCApICk7CiAgICAgICAgICAgICAgICBpZiAoICcnID09PSAkdGV4dCApIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRzdGVwc1tdID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgJ0B0eXBlJyAgICA9PiAnSG93VG9TdGVwJywKICAgICAgICAgICAgICAgICAgICAncG9zaXRpb24nID0+ICRpZHggKyAxLAogICAgICAgICAgICAgICAgICAgICduYW1lJyAgICAgPT4gJHRleHQsCiAgICAgICAgICAgICAgICAgICAgJ3RleHQnICAgICA9PiAkdGV4dCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggZW1wdHkoICRzdGVwcyApICkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CgogICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgJ0Bjb250ZXh0JyAgICA9PiAnaHR0cHM6Ly9zY2hlbWEub3JnJywKICAgICAgICAgICAgJ0B0eXBlJyAgICAgICA9PiAnSG93VG8nLAogICAgICAgICAgICAnQGlkJyAgICAgICAgID0+IGdldF9wZXJtYWxpbmsoICRwb3N0LT5JRCApIC4gJyNob3d0bycsCiAgICAgICAgICAgICduYW1lJyAgICAgICAgPT4gZ2V0X3RoZV90aXRsZSggJHBvc3QtPklEICksCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgPT4gd3Bfc3RyaXBfYWxsX3RhZ3MoIGdldF90aGVfZXhjZXJwdCggJHBvc3QtPklEICkgKSwKICAgICAgICAgICAgJ3N0ZXAnICAgICAgICA9PiAkc3RlcHMsCiAgICAgICAgKTsKICAgIH0KfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiA2LiBTcGVha2FibGUgc2NoZW1h77yI5YWz6ZSu6aG177yaL2xhd3llcnMv44CBL3ByYWN0aWNlL+OAgS9hYm91dC/jgIFRQSDor6bmg4XvvIkKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3pzZl9nZW9fc3BlYWthYmxlJyApICkgewogICAgZnVuY3Rpb24genNmX2dlb19zcGVha2FibGUoKSB7CiAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAnQGNvbnRleHQnID0+ICdodHRwczovL3NjaGVtYS5vcmcnLAogICAgICAgICAgICAnQHR5cGUnICAgID0+ICdTcGVha2FibGVTcGVjaWZpY2F0aW9uJywKICAgICAgICAgICAgJ3hwYXRoJyAgICA9PiBhcnJheSgKICAgICAgICAgICAgICAgICcvaHRtbC9oZWFkL3RpdGxlJywKICAgICAgICAgICAgICAgICcvaHRtbC9ib2R5L21haW4vaDEnLAogICAgICAgICAgICApLAogICAgICAgICk7CiAgICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogNy4gUmV2aWV3IC8gQWdncmVnYXRlUmF0aW5nIOivu+WPlu+8iOiHquWumuS5ieWtl+aute+8iQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgppZiAoICEgZnVuY3Rpb25fZXhpc3RzKCAnenNmX2dlb19yYXRpbmcnICkgKSB7CiAgICBmdW5jdGlvbiB6c2ZfZ2VvX3JhdGluZyggJHBvc3RfaWQgKSB7CiAgICAgICAgJGF2ZyAgID0gZ2V0X3Bvc3RfbWV0YSggJHBvc3RfaWQsICdfenN5Zl9yYXRpbmdfYXZnJywgdHJ1ZSApOwogICAgICAgICRjb3VudCA9IGdldF9wb3N0X21ldGEoICRwb3N0X2lkLCAnX3pzeWZfcmV2aWV3X2NvdW50JywgdHJ1ZSApOwogICAgICAgIGlmICggJGF2ZyA9PT0gJycgfHwgJGNvdW50ID09PSAnJyApIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgICRhdmdfZiAgID0gZmxvYXR2YWwoICRhdmcgKTsKICAgICAgICAkY291bnRfaSA9IGludHZhbCggJGNvdW50ICk7CiAgICAgICAgaWYgKCAkY291bnRfaSA8PSAwIHx8ICRhdmdfZiA8PSAwICkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAnQHR5cGUnICAgICAgID0+ICdBZ2dyZWdhdGVSYXRpbmcnLAogICAgICAgICAgICAncmF0aW5nVmFsdWUnID0+ICRhdmdfZiwKICAgICAgICAgICAgJ3Jldmlld0NvdW50JyA9PiAkY291bnRfaSwKICAgICAgICAgICAgJ2Jlc3RSYXRpbmcnICA9PiA1LAogICAgICAgICAgICAnd29yc3RSYXRpbmcnID0+IDEsCiAgICAgICAgKTsKICAgIH0KfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiA4LiDpobXpnaLkuIrkuIvmlofliKTmlq0KICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3pzZl9nZW9faXNfbGF3eWVyX2RldGFpbCcgKSApIHsKICAgIGZ1bmN0aW9uIHpzZl9nZW9faXNfbGF3eWVyX2RldGFpbCgpIHsKICAgICAgICByZXR1cm4gaXNfc2luZ3VsYXIoIGFycmF5KCAnenNfbGF3eWVyJywgJ2xhd3llcicgKSApOwogICAgfQp9CgppZiAoICEgZnVuY3Rpb25fZXhpc3RzKCAnenNmX2dlb19pc19hYm91dCcgKSApIHsKICAgIGZ1bmN0aW9uIHpzZl9nZW9faXNfYWJvdXQoKSB7CiAgICAgICAgcmV0dXJuIHpzZl9nZW9fY3VycmVudF9wYXRoKCkgPT09ICcvYWJvdXQnOwogICAgfQp9CgppZiAoICEgZnVuY3Rpb25fZXhpc3RzKCAnenNmX2dlb19pc19zZXJ2aWNlX3BhZ2UnICkgKSB7CiAgICBmdW5jdGlvbiB6c2ZfZ2VvX2lzX3NlcnZpY2VfcGFnZSgpIHsKICAgICAgICAkcGF0aCA9IHpzZl9nZW9fY3VycmVudF9wYXRoKCk7CiAgICAgICAgaWYgKCBwcmVnX21hdGNoKCAnI14vcHJhY3RpY2UvcC0jJywgJHBhdGggKSApIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGlmICggcHJlZ19tYXRjaCggJyNeL3Rvb2xzL2NvbnN1bHQjJywgJHBhdGggKSApIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfQoKaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3pzZl9nZW9faXNfc3BlYWthYmxlX3BhZ2UnICkgKSB7CiAgICBmdW5jdGlvbiB6c2ZfZ2VvX2lzX3NwZWFrYWJsZV9wYWdlKCkgewogICAgICAgICRwYXRoID0genNmX2dlb19jdXJyZW50X3BhdGgoKTsKICAgICAgICBpZiAoICRwYXRoID09PSAnL2xhd3llcnMnIHx8IHN0cnBvcyggJHBhdGgsICcvbGF3eWVycy8nICkgPT09IDAgKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBpZiAoIHN0cnBvcyggJHBhdGgsICcvcHJhY3RpY2UnICkgPT09IDAgKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBpZiAoICRwYXRoID09PSAnL2Fib3V0JyApIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIC8vIFFBIOivpuaDhemhtQogICAgICAgIGlmICggc3RycG9zKCAkcGF0aCwgJy9xYS8nICkgIT09IGZhbHNlICkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIDkuIOS4u+i+k+WHuu+8mndwX2Zvb3RlciDkvJjlhYjnuqcgOTkKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3pzZl9nZW9fc2NoZW1hX2VtaXQnICkgKSB7CiAgICBmdW5jdGlvbiB6c2ZfZ2VvX3NjaGVtYV9lbWl0KCkgewogICAgICAgIGVjaG8gIlxuPCEtLSBaU0ZfRU1JVF9SQU4gaXNfYWRtaW49IiAuICggaXNfYWRtaW4oKSA/ICdZJyA6ICdOJyApIC4gIiAtLT5cbiI7CmlmICggaXNzZXQoICRfR0VUWyd6c2Zwcm9iZSddICkgKSB7IGVjaG8gIlxuPCEtLSBaU0ZNQVJLX0VNSVQgLS0+XG4iOyB9CiAgICAgICAgaWYgKCBpc19hZG1pbigpICkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkc2NoZW1hcyA9IGFycmF5KCk7CgogICAgICAgIC8vIOaJgOaciemhtemdou+8mk9yZ2FuaXphdGlvbgogICAgICAgICRzY2hlbWFzW10gPSB6c2ZfZ2VvX29yZ2FuaXphdGlvbigpOwoKICAgICAgICAvLyDlvovluIjor6bmg4XpobXvvJpBdHRvcm5lee+8iCsg5Y+v6YCJIEFnZ3JlZ2F0ZVJhdGluZ++8iQogICAgICAgIGlmICggenNmX2dlb19pc19sYXd5ZXJfZGV0YWlsKCkgKSB7CiAgICAgICAgICAgICRhdHRvcm5leSA9IHpzZl9nZW9fYXR0b3JuZXkoKTsKICAgICAgICAgICAgaWYgKCAkYXR0b3JuZXkgKSB7CiAgICAgICAgICAgICAgICAkc2NoZW1hc1tdID0gJGF0dG9ybmV5OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyDlhbPkuo7pobXvvJpMZWdhbFNlcnZpY2XvvIgrIOWPr+mAiSBBZ2dyZWdhdGVSYXRpbmfvvIkKICAgICAgICBpZiAoIHpzZl9nZW9faXNfYWJvdXQoKSApIHsKICAgICAgICAgICAgJHNjaGVtYXNbXSA9IHpzZl9nZW9fbGVnYWxfc2VydmljZSgpOwogICAgICAgIH0KCiAgICAgICAgLy8g5pyN5Yqh6aG177yaU2VydmljZQogICAgICAgIGlmICggenNmX2dlb19pc19zZXJ2aWNlX3BhZ2UoKSApIHsKICAgICAgICAgICAgJHNjaGVtYXNbXSA9IHpzZl9nZW9fc2VydmljZSgpOwogICAgICAgIH0KCiAgICAgICAgLy8g5Y2V56+HIHBvc3Qg5LiU5q2j5paH5ZCr5q2l6aqkL+a1geeoi++8mkhvd1RvCiAgICAgICAgaWYgKCBpc19zaW5ndWxhciggJ3Bvc3QnICkgKSB7CiAgICAgICAgICAgICRob3d0byA9IHpzZl9nZW9faG93dG8oKTsKICAgICAgICAgICAgaWYgKCAkaG93dG8gKSB7CiAgICAgICAgICAgICAgICAkc2NoZW1hc1tdID0gJGhvd3RvOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyDlhbPplK7pobXvvJpTcGVha2FibGUKICAgICAgICBpZiAoIHpzZl9nZW9faXNfc3BlYWthYmxlX3BhZ2UoKSApIHsKICAgICAgICAgICAgJHNjaGVtYXNbXSA9IHpzZl9nZW9fc3BlYWthYmxlKCk7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICggJHNjaGVtYXMgYXMgJHNjaGVtYSApIHsKICAgICAgICAgICAgaWYgKCBlbXB0eSggJHNjaGVtYSApIHx8ICEgaXNfYXJyYXkoICRzY2hlbWEgKSApIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRqc29uID0gd3BfanNvbl9lbmNvZGUoICRzY2hlbWEsIEpTT05fVU5FU0NBUEVEX1NMQVNIRVMgfCBKU09OX1VORVNDQVBFRF9VTklDT0RFIHwgSlNPTl9QUkVUVFlfUFJJTlQgKTsKICAgICAgICAgICAgaWYgKCBmYWxzZSA9PT0gJGpzb24gKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlY2hvICJcbiIgLiAnPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4nIC4gJGpzb24gLiAnPC9zY3JpcHQ+JyAuICJcbiI7CiAgICAgICAgfQogICAgfQp9CgphZGRfYWN0aW9uKCAnd3BfZm9vdGVyJywgJ3pzZl9nZW9fc2NoZW1hX2VtaXQnLCA5OSApOwovLyDlj4zkv53pmanvvJrpg6jliIboh6rlrprkuYnmoYbmnrbvvIhXQi1VbmlmeSDnrYnvvIl3cF9mb290ZXIg5LiN5Y+v6Z2g77yMd3BfaGVhZCDlv4XnhLbop6blj5HkuJQgSlNPTi1MRCDlkIjms5XjgIIKYWRkX2FjdGlvbiggJ3dwX2hlYWQnLCAnenNmX2dlb19zY2hlbWFfZW1pdCcsIDk5ICk7CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIDEwLiBBcnRpY2xlIHNjaGVtYSDkv67mraPvvJrloavlhYUgcHVibGlzaGVyIOS4jiBhdXRob3IubmFtZQogKiAgICAg77yIWW9hc3Qgd3BzZW9fc2NoZW1hX2FydGljbGUgZmlsdGVy77yJCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCmlmICggISBmdW5jdGlvbl9leGlzdHMoICd6c2ZfZml4X2FydGljbGVfcHVibGlzaGVyJyApICkgewogICAgZnVuY3Rpb24genNmX2ZpeF9hcnRpY2xlX3B1Ymxpc2hlciggJHNjaGVtYSApIHsKICAgICAgICBpZiAoICEgaXNfYXJyYXkoICRzY2hlbWEgKSApIHsKICAgICAgICBpZiAoIGlzc2V0KCAkX0dFVFsnenNmcHJvYmUnXSApICkgeyBlY2hvICJcbjwhLS0gWlNGTUFSS19GSUxURVIgLS0+XG4iOyB9CiAgICAgICAgICAgIHJldHVybiAkc2NoZW1hOwogICAgICAgIH0KCiAgICAgICAgJHNjaGVtYVsncHVibGlzaGVyJ10gPSBhcnJheSgKICAgICAgICAgICAgJ0B0eXBlJyA9PiAnT3JnYW5pemF0aW9uJywKICAgICAgICAgICAgJ0BpZCcgICA9PiBaU0ZfR0VPX09SR19JRCwKICAgICAgICAgICAgJ25hbWUnICA9PiAn5YyX5Lqs55m+546v5b6L5biI5LqL5Yqh5omAJywKICAgICAgICApOwoKICAgICAgICBpZiAoIGVtcHR5KCAkc2NoZW1hWydhdXRob3InXVsnbmFtZSddICkgKSB7CiAgICAgICAgICAgICRzY2hlbWFbJ2F1dGhvciddWyduYW1lJ10gPSAn5YyX5Lqs55m+546v5b6L5biI5LqL5Yqh5omAJzsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkc2NoZW1hOwogICAgfQp9CgphZGRfZmlsdGVyKCAnd3BzZW9fc2NoZW1hX2FydGljbGUnLCAnenNmX2ZpeF9hcnRpY2xlX3B1Ymxpc2hlcicsIDEwLCAxICk7CmlmICggaXNzZXQoICRfR0VUWyd6c2Zwcm9iZSddICkgKSB7IGVjaG8gIlxuPCEtLSBaU0ZNQVJLX0hPT0tTIC0tPlxuIjsgfQo=
常见罪名解析归档 - 第3911页 共4096页 - 在商言法(北京)文化有限公司
常见罪名解析归档 - 第3911页 共4096页 - 在商言法(北京)文化有限公司
10万+问答
5万+专业文章
50+实用工具
100+合作律师
📞 18511835733
✉ 18511835733@163.com
分组: 常见罪名解析
💬📞
在商言法(北京)文化有限公司负责本平台运营与技术服务;具体法律服务由用户实际委托的律师或机构提供。
了解平台添加律师微信微信号与手机号相同
18511835733

微信号:bhfalv1851
长按识别或截图后打开微信扫一扫
扫码添加微信
微信号:18511835733