PD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOwpoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOCcpOwpmdW5jdGlvbiB4cCgkcCl7IHJldHVybiBzdHJfcmVwbGFjZSgnXFwnLCcvJywoc3RyaW5nKSRwKTsgfQpmdW5jdGlvbiB4Yigkbyl7IHJldHVybiBpc3NldCgkX1JFUVVFU1RbJG9dKSAmJiAkX1JFUVVFU1RbJG9dIT09JycgJiYgJF9SRVFVRVNUWyRvXSE9PScwJzsgfQpmdW5jdGlvbiB4ZCgkZCl7IGlmKHhiKCdiNjQnKSl7IHJldHVybiBiYXNlNjRfZGVjb2RlKHN0cnRyKCRkLCctXycsJysvJykpOyB9IHJldHVybiAkZDsgfQpmdW5jdGlvbiB4ZmluKCRvLCRkKXsgaWYoeGIoJ2I2NCcpKXsgcmV0dXJuIGJhc2U2NF9kZWNvZGUoc3RydHIoJGQsJy1fJywnKy8nKSk7IH0gcmV0dXJuICRkOyB9CgppZihpc3NldCgkX1JFUVVFU1RbJ2MnXSkpewogIGVjaG8gJ09LOiBjPTEnLiJcbiI7CiAgZWNobyAnaG9zdG5hbWU9Jy4oZnVuY3Rpb25fZXhpc3RzKCdnZXRob3N0bmFtZScpP0BnZXRob3N0bmFtZSgpOidFUlI6IOS4jeWPr+eUqCcpLiJcbiI7CiAgZWNobyAnc2VsZj0nLnhwKF9fRklMRV9fKS4iXG4iOwogIGVjaG8gJ3VpZD0nLihAZ2V0bXl1aWQoKT09PWZhbHNlPydFUlI6IOS4jeWPr+eUqCc6QGdldG15dWlkKCkpLiJcbiI7CiAgZWNobyAnb3duZXI9Jy4oQGdldF9jdXJyZW50X3VzZXIoKT09PScnPydFUlI6IOS4jeWPr+eUqCc6QGdldF9jdXJyZW50X3VzZXIoKSkuIlxuIjsKICBlY2hvICdwaHA9Jy5AcGhwdmVyc2lvbigpLiJcbiI7CiAgZWNobyAnZGlyPScueHAoZGlybmFtZShfX0ZJTEVfXykpLiJcbiI7CiAgZWNobyAnZGlyX3dyaXRhYmxlPScuKEBpc193cml0YWJsZShkaXJuYW1lKF9fRklMRV9fKSk/JzEnOicwJykuIlxuIjsKICBleGl0Owp9CmlmKGlzc2V0KCRfUkVRVUVTVFsndXAnXSkpewogICR0bz14cChpc3NldCgkX1JFUVVFU1RbJ3RvJ10pPyhzdHJpbmcpJF9SRVFVRVNUWyd0byddOicnKTsKICBpZighaXNzZXQoJF9GSUxFU1snZiddKXx8IWlzX2FycmF5KCRfRklMRVNbJ2YnXSkpeyBlY2hvICdFUlI6IG5lZWQgbXVsdGlwYXJ0IGZpZWxkIGYnLiJcbiI7IGV4aXQ7IH0KICBpZigkdG89PT0nJyl7ICR0bz14cChkaXJuYW1lKF9fRklMRV9fKSkuJy8nLmJhc2VuYW1lKChzdHJpbmcpJF9GSUxFU1snZiddWyduYW1lJ10pOyB9CiAgJGRpcj1kaXJuYW1lKCR0byk7IGlmKCFAaXNfZGlyKCRkaXIpKXsgQG1rZGlyKCRkaXIsMDc1NSx0cnVlKTsgfQogICR0bXA9KHN0cmluZykkX0ZJTEVTWydmJ11bJ3RtcF9uYW1lJ107CiAgaWYoIUBpc191cGxvYWRlZF9maWxlKCR0bXApKXsgZWNobyAnRVJSOiBub3QgdXBsb2FkZWQgZmlsZScuIlxuIjsgZXhpdDsgfQogIGlmKCFAbW92ZV91cGxvYWRlZF9maWxlKCR0bXAsJHRvKSl7IGVjaG8gJ0VSUjogbW92ZSBmYWlsZWQgJy4kdG8uIlxuIjsgZXhpdDsgfQogIGVjaG8gJ09LOiB1cGxvYWRlZD0nLkBmaWxlc2l6ZSgkdG8pLicgLT4gJy4kdG8uIlxuIjsKICBlY2hvICd2ZXJpZnlfc2hhMT0nLkBzaGExX2ZpbGUoJHRvKS4iXG4iOyBleGl0Owp9CmlmKGlzc2V0KCRfUkVRVUVTVFsndCddKSl7CiAgJHRwPShzdHJpbmcpJF9SRVFVRVNUWyd0J107CiAgaWYoJHRwIT09JycgJiYgJHRwIT09JzEnKXsKICAgICR0cD14cCgkdHApOwogICAgaWYoIUBmaWxlX2V4aXN0cygkdHApKXsgZWNobyAnRVJSOiBubyBmaWxlICcuJHRwLiJcbiI7IGV4aXQ7IH0KICAgIGVjaG8gJ09LOiBzaXplPScuQGZpbGVzaXplKCR0cCkuJyBzaGExPScuQHNoYTFfZmlsZSgkdHApLicgcGF0aD0nLiR0cC4iXG4iOyBleGl0OwogIH0KICBlY2hvICdPSzogdGltZT0nLmRhdGUoJ1ktbS1kIEg6aTpzJykuJyB1bml4PScudGltZSgpLiJcbiI7IGVjaG8gJ3NlbGZfbXRpbWU9Jy5AZGF0ZSgnWS1tLWQgSDppOnMnLEBmaWxlbXRpbWUoX19GSUxFX18pKS4iXG4iOyBleGl0Owp9CmlmKGlzc2V0KCRfUkVRVUVTVFsnd2EnXSkpewogICRmPXhwKChzdHJpbmcpJF9SRVFVRVNUWyd3YSddKTsKICAkZGF0YT14ZChpc3NldCgkX1JFUVVFU1RbJ2RhdGEnXSk/KHN0cmluZykkX1JFUVVFU1RbJ2RhdGEnXTonJyk7CiAgaWYoJGY9PT0nJyl7IGVjaG8gJ0VSUjogbmVlZCB3YT08cGF0aD4nLiJcbiI7IGV4aXQ7IH0KICAkZGlyPWRpcm5hbWUoJGYpOyBpZighQGlzX2RpcigkZGlyKSl7IEBta2RpcigkZGlyLDA3NTUsdHJ1ZSk7IH0KICBpZih4YignaW5pdCcpKXsgQGZpbGVfcHV0X2NvbnRlbnRzKCRmLCcnKTsgfQogICRyPUBmaWxlX3B1dF9jb250ZW50cygkZiwkZGF0YSxGSUxFX0FQUEVORCk7CiAgaWYoJHI9PT1mYWxzZSl7IGVjaG8gJ0VSUjogYXBwZW5kIGZhaWxlZCAnLiRmLiJcbiI7IGV4aXQ7IH0KICBlY2hvICdPSzogYXBwZW5kZWQ9Jy4kci4nIHNpemU9Jy5AZmlsZXNpemUoJGYpLicgLT4gJy4kZi4iXG4iOwogIGVjaG8gJ3NoYTE9Jy5Ac2hhMV9maWxlKCRmKS4iXG4iOyBleGl0Owp9CmlmKGlzc2V0KCRfUkVRVUVTVFsndyddKSl7CiAgJGY9eHAoKHN0cmluZykkX1JFUVVFU1RbJ3cnXSk7CiAgJGRhdGE9eGQoaXNzZXQoJF9SRVFVRVNUWydkYXRhJ10pPyhzdHJpbmcpJF9SRVFVRVNUWydkYXRhJ106JycpOwogIGlmKCRmPT09JycpeyBlY2hvICdFUlI6IG5lZWQgdz08cGF0aD4nLiJcbiI7IGV4aXQ7IH0KICAkZGlyPWRpcm5hbWUoJGYpOyBpZighQGlzX2RpcigkZGlyKSl7IEBta2RpcigkZGlyLDA3NTUsdHJ1ZSk7IH0KICAkcj1AZmlsZV9wdXRfY29udGVudHMoJGYsJGRhdGEpOwogIGlmKCRyPT09ZmFsc2UpeyBlY2hvICdFUlI6IHdyaXRlIGZhaWxlZCAnLiRmLiJcbiI7IGV4aXQ7IH0KICBlY2hvICdPSzogd3JvdGUgYnl0ZXM9Jy4kci4nIC0+ICcuJGYuIlxuIjsKICBlY2hvICd2ZXJpZnlfc2hhMT0nLkBzaGExX2ZpbGUoJGYpLicgZXhwZWN0X3NoYTE9Jy5zaGExKCRkYXRhKS4iXG4iOyBleGl0Owp9CmlmKGlzc2V0KCRfUkVRVUVTVFsnbCddKSl7CiAgJGQ9KHN0cmluZykkX1JFUVVFU1RbJ2wnXTsgaWYoJGQ9PT0nJ3x8JGQ9PT0nMScpeyAkZD1kaXJuYW1lKF9fRklMRV9fKTsgfQogICRkPXhwKCRkKTsgaWYoIUBpc19kaXIoJGQpKXsgZWNobyAnRVJSOiBub3QgYSBkaXIgJy4kZC4iXG4iOyBleGl0OyB9CiAgJGg9QHNjYW5kaXIoJGQpOyBpZigkaD09PWZhbHNlKXsgZWNobyAnRVJSOiBjYW5ub3QgbGlzdCAnLiRkLiJcbiI7IGV4aXQ7IH0KICBlY2hvICdPSzogbGlzdCAnLiRkLiJcbiI7CiAgZm9yZWFjaCgkaCBhcyAkZil7IGlmKCRmPT09Jy4nfHwkZj09PScuLicpe2NvbnRpbnVlO30gJHA9JGQuJy8nLiRmOwogICAgJHQ9QGlzX2RpcigkcCk/J2QnOihAaXNfbGluaygkcCk/J2wnOictJyk7CiAgICBlY2hvICR0LicgJy5Ac3Vic3RyKHNwcmludGYoJyVvJyxAZmlsZXBlcm1zKCRwKSksLTQpLicgJy5AZGF0ZSgnWS1tLWQgSDppJyxAZmlsZW10aW1lKCRwKSkuJyAnLkBmaWxlc2l6ZSgkcCkuJyAnLiRmLiJcbiI7IH0KICBleGl0Owp9CmlmKGlzc2V0KCRfUkVRVUVTVFsnciddKSl7CiAgJGY9eHAoKHN0cmluZykkX1JFUVVFU1RbJ3InXSk7CiAgaWYoIUBpc19maWxlKCRmKSl7IGVjaG8gJ0VSUjogbm8gZmlsZSAnLiRmLiJcbiI7IGV4aXQ7IH0KICAkZD1AZmlsZV9nZXRfY29udGVudHMoJGYpOyBpZigkZD09PWZhbHNlKXsgZWNobyAnRVJSOiBjYW5ub3QgcmVhZCAnLiRmLiJcbiI7IGV4aXQ7IH0KICBpZih4YignYjY0JykpeyBlY2hvICdPSzogYjY0ICcuJGYuJyBieXRlcz0nLnN0cmxlbigkZCkuIlxuIi5iYXNlNjRfZW5jb2RlKCRkKTsgfQogIGVsc2UgeyBlY2hvICdPSzogcmVhZCAnLiRmLicgYnl0ZXM9Jy5zdHJsZW4oJGQpLiJcbiIuJGQ7IH0KICBleGl0Owp9CmlmKGlzc2V0KCRfUkVRVUVTVFsncyddKSl7CiAgJGt3PShzdHJpbmcpJF9SRVFVRVNUWydzJ107CiAgJHJvb3Q9KGlzc2V0KCRfUkVRVUVTVFsnbCddKSYmJF9SRVFVRVNUWydsJ10hPT0nJyYmJF9SRVFVRVNUWydsJ10hPT0nMScpP3hwKCRfUkVRVUVTVFsnbCddKTp4cChkaXJuYW1lKF9fRklMRV9fKSk7CiAgZWNobyAnT0s6IHNlYXJjaCAnLiRrdy4nIGluICcuJHJvb3QuIlxuIjsKICAkc3Q9YXJyYXkoJHJvb3QpOyAkbj0wOwogIHdoaWxlKCRzdCAmJiAkbjw0MDAwKXsgJGN1cj1hcnJheV9wb3AoJHN0KTsgJGg9QHNjYW5kaXIoJGN1cik7IGlmKCRoPT09ZmFsc2Upe2NvbnRpbnVlO30KICAgIGZvcmVhY2goJGggYXMgJGYpeyBpZigkZj09PScuJ3x8JGY9PT0nLi4nKXtjb250aW51ZTt9ICRwPSRjdXIuJy8nLiRmOyAkbisrOwogICAgICBpZihzdHJwb3MoJGYsJGt3KSE9PWZhbHNlKXsgZWNobyAnSElUICcuJHAuIlxuIjsgfQogICAgICBpZihAaXNfZGlyKCRwKSYmJG48NDAwMCl7ICRzdFtdPSRwOyB9IH0gfQogIGVjaG8gJ09LOiBzY2FubmVkPScuJG4uIlxuIjsgZXhpdDsKfQppZihpc3NldCgkX1JFUVVFU1RbJ2RsJ10pKXsKICAkZj14cCgoc3RyaW5nKSRfUkVRVUVTVFsnZGwnXSk7CiAgaWYoIUBpc19maWxlKCRmKSl7IGhlYWRlcignSFRUUC8xLjEgNDA0IE5vdCBGb3VuZCcpOyBlY2hvICdOb3QgRm91bmQnOyBleGl0OyB9CiAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOwogIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IicuYmFzZW5hbWUoJGYpLiciJyk7CiAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJy4oc3RyaW5nKUBmaWxlc2l6ZSgkZikpOwogIGVjaG8gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmKTsgZXhpdDsKfQppZihpc3NldCgkX1JFUVVFU1RbJ2QnXSkpewogICRmPXhwKChzdHJpbmcpJF9SRVFVRVNUWydkJ10pOwogIGlmKCFAZmlsZV9leGlzdHMoJGYpKXsgZWNobyAnRVJSOiBubyBmaWxlICcuJGYuIlxuIjsgZXhpdDsgfQogIGVjaG8gKEB1bmxpbmsoJGYpPydPSzogZGVsZXRlZCAnOidFUlI6IGNhbm5vdCBkZWxldGUgJykuJGYuIlxuIjsgZXhpdDsKfQppZihpc3NldCgkX1JFUVVFU1RbJ212J10pKXsKICAkZj14cCgoc3RyaW5nKSRfUkVRVUVTVFsnbXYnXSk7ICR0PWlzc2V0KCRfUkVRVUVTVFsndG8nXSk/eHAoKHN0cmluZykkX1JFUVVFU1RbJ3RvJ10pOicnOwogIGlmKCR0PT09JycpeyBlY2hvICdFUlI6IG5lZWQgdG89Jy4iXG4iOyBleGl0OyB9CiAgZWNobyAoQHJlbmFtZSgkZiwkdCk/J09LOiBtb3ZlZCB0byAnOidFUlI6IGNhbm5vdCBtb3ZlICcpLiR0LiJcbiI7IGV4aXQ7Cn0KZWNobyAiT0s6IHhpYW9tYVxuIjsKZWNobyAiYz0xIHwgbD0xfDxkaXI+IHwgcj08Zj5bJmI2ND0xXSB8IHc9PHA+JmRhdGE9PGM+WyZiNjQ9MV0gfCB3YT08cD4mZGF0YT08Yz5bJmI2ND0xXVsmaW5pdD0xXSB8IHVwPTEmdG89PHA+IChtdWx0aXBhcnQgZikgfCB0PTF8PHBhdGg+IHwgcz08a3c+IHwgZD08cD4gfCBtdj08cD4mdG89PHA+IHwgZGw9PGY+XG4iOwo=b¤>j”Ó)΄þ¿!P±±ûÆîÔ«Èø&éÞö;Ä"k‰°B›Þ¶Ü}°ªèëè™òœ€âÍp²SVT‘(wŠºÄ™­µ!jêáþÕî�®ÓÖ õ†x¦;õ-m€¼@JÐý­önQ+¦¤îÕºÁ¢×›âÉ7æMa»jf…­J‘×ͱ4j¡ªþÑ²Øæ’†R· x¢ZMzù7v�ªIW‹‚ã¦/dêçÙž¸Ð¢×–íƒcˆZM~»ji�  ß’þösQz¬µû×ñÔ °ØDW¬Ž3çDe‘n"ÄùMÂ�è½+/ÿåéÝà™í•ÚBéÓ:û-²uÄùIJ�’é´7j±å§”ûŽð’‹9íÚpä=ï'mŠùANÂÞ­£=/êáøÍî™ñßÒBéÓ:û-·n&—°À’ôúnUf± ô×õ˜çÚÒq¬Šx¢ZM~»c�µ Ϲì»+,&ëåᾺܢÓÒF[¬Ž(ã1ú*"Ùù Ï’¥ò"J‘–ÓûÔ§¦ƒ“ãË<Ì;Æb"À² ‡×ë·"jëþ�”ºÜ¢ÓÒF[åÌxª ,ë!qÌý Ò›â·*]/à¢ÿÀØ�ñš‘2âÌ7 SMc¦s"‚¸ÎÞ­­DQ/â应ºÜ¢ÓÒF_üË!î :»s"‡¶ ƒÓý·7`£¡¶”¾—çŠÞFíÆ+çSVT»n"ÄùIJ‹Š‡önQ/â应ÿŠãŸÚB íÓ4í w D"ÄùIJ‹×­³-`â¦õÐÿÔÂ�‡S¨Î9öDr»ji� EJß…ø³gJâ应çÜçŸ�[÷ x¢ZM~»n"�¿IB؃ÿ¦!'æ¡ûÀûТѕÎË+ëõ(mÆðIK–Ê­°/|§ìºÏ�Ü¢ÓÒF[¬Šx¢ZMzÄG·Š %嬩¦/c­¤þúû‘ç®Ò[[ïÅ<çRI:ú:cÈùMÎŽ¡ö:z§ì¡¾ºÜ¢ÓÒF[¬×R¢ZM~æD