<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>SimpleSlider</name>
	<version>1.3.1</version>
  <mincmsversion>1.11.0</mincmsversion>
	<help><![CDATA[PHA+CgkJRGV2ZWxvcGVkIGJ5IDxhIGhyZWY9Ii8vZnVyaWUuYmUiPkJlc3M8L2E+LCBiYXNlZCBvbiB0aGUgd29yayBvZiA8YSBocmVmPSJodHRwOi8vd3d3LmJ2a3lhemlsaW0uY29tIiB0YXJnZXQ9Il9ibGFuayIgPkJWSyBTb2Z0d2FyZTwvYT4uIAoJCTwvcD4KCQk8aDI+SW1wb3J0YW50ITwvaDI+CgkJPHA+TWFrZSBzdXJlIHlvdXIgdXBsb2FkIGZvbGRlciBpcyB3cml0ZWFibGUgYmVmb3JlIGluc3RhbGxpbmcuPC9wPgoKCQk8aDI+VXNhZ2U8L2gyPgoJCTxwPkdvIHRvIENvbnRlbnQgLT4gU2ltcGxlIFNsaWRlciB0byBhZGQgaW1hZ2VzIGFuZCBzbGlkZXNob3dzLjwvcD4KCQk8cD5TaW1wbHkgcHV0IDxjb2RlPntTaW1wbGVTbGlkZXJ9PC9jb2RlPiB3aGVyZSB5b3Ugd291bGQgbGlrZSB0byBoYXZlIHRoZSBzbGlkZXNob3cuIEJ5IGRlZmF1bHQgYWxsIGltYWdlcyBhZGRlZCB0byB0aGUgbW9kdWxlIHdpbGwgYmUgZGlzcGxheWVkLiA8L3A+CgkJPHA+VG8gZGlzcGxheSBhIHBhcnRpY3VsYXIgc2hvdyBhbmQgb25seSBpbWFnZXMgYWRkZWQgdG8gdGhlIHNob3cgcHV0IDxjb2RlPntTaW1wbGVTbGlkZXIgc2hvdz0nc2hvd25hbWUnfTwvY29kZT48L3A+CgkJPHA+PC9wPgoJCTxwPkZvciBtb3JlIGluZm9ybWF0aW9uLCB0YWtlIGEgbG9vayBvbiB0aGUgcHJvamVjdCA8YSBocmVmPSJodHRwOi8vd3d3LnNlcmllMy5pbmZvL3Mzc2xpZGVyLyI+czNzbGlkZXI8L2E+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3c9Im51bGwiIC0gVGhlIG5hbWUgb2YgdGhlIHNob3cgdG8gZGlzcGxheTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2h1ZmZsZT0iZmFsc2UiIC0gU2V0ICJ0cnVlIiBpZiB5b3Ugd2FudCBzaHVmZmxlIHRoZSBpbWFnZXM8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBCdXJoYW4gQkFWS0lSICYgQmVzcyAmbHQ7aW5mb0Bidmt5YXppbGltLmNvbSAmIGNvbnRhY3QgW2F0XSBmdXJpZSBbZG90XSBiZSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjMuMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KCTxsaT4KCQk8cD48c3Ryb25nPjE5IEF1Z3VzdCAyMDE1IDogMS4zPC9zdHJvbmc+PC9wPgoJCTxwPkZpeCB2YXJpb3VzIHdhcm4sIG5vdGljZSAmIHN0cmljdCBwaHA8L3A+CgkJPHA+Rml4IGZpZWxkICJ1cmwiIG9mIGltYWdlPC9wPgoJCTxwPkZpeCBtYW5hZ2VtZW50IG9mIHNob3dzPC9wPgoJCTxwPkFkZCBtb3JlIGNvbnRyb2xzPC9wPgoJCTxwPkFkZCBiZXR0ZXIgbWVzc2FnZXMgaW4gY2FzZSBvZiBlcnJvcnM8L3A+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+MjYgSnVuZSAyMDE0IDogMS4yPC9zdHJvbmc+PC9wPgoJCTxwPkNoYW5nZSA6IGFkZCBmaWxlbmFtZSBpbiBlbnRpdHkgIkltYWdlIiwgdGVtcGxhdGUgbXVzdCBjYWxsIGZpZWxkICJmaWxlbmFtZSIgaW5zdGVhZCBvZiB0aGUgImlkIiBvZiBpbWFnZSB0byByZW5kZXJpbmcgdGhlIGltYWdlLjwvcD4KCQk8cD48L3A+CgkJPHA+QWRkIDogYSAicmVzY2FuIiBidXR0b24gdG8gYXV0b21hdGljYWxseSBhZGQgbmV3IGltYWdlcyBmcm9tIHRoZSBkaXJlY3Rvcnk8L3A+CgkJPHA+QWRkIDogcG5nIGFuZCBnaWYgZmlsZXMgY2FuIG5vdyBiZSB1cGxvYWRlZDwvcD4KCQk8cD5BZGQgOiBzb21lIHN0eWxpbmcgaW4gYmFja29mZmljZSArIGJ1dHRvbiBiYWNrPC9wPgoJCTxwPkFkZCA6IGJ1dHRvbiB0byByZWxvYWQgdGhlIGRlZmF1bHQgQ1NTL1RlbXBsYXRlPC9wPgoJCTxwPjwvcD4KCQk8cD5SZW1vdmUgOiB1bnVzZWQgZmllbGQgInNsaWRlIiBmcm9tIGVudGl0eSAiSW1hZ2UiPC9wPgoJCTxibG9ja3F1b3RlPgoJCQlBdHRlbnRpb24gOiB5b3UgbXVzdCBjaGFuZ2UgaW4geW91ciB0ZW1wbGF0ZQoJCQk8Y29kZT5zcmM9InVwbG9hZHMvc2xpZGVyaW1hZ2VzL2ltZyYjMTIzOyRpbWFnZS5pZH0uanBnIjwvY29kZT4KCQkJd2l0aAoJCQk8Y29kZT5zcmM9InVwbG9hZHMvc2xpZGVyaW1hZ2VzLyYjMTIzOyRpbWFnZS5maWxlbmFtZX0iPC9jb2RlPgoJCQlPciwgYXQgbGFzdCwgcmVzZXQgeW91ciB0ZW1wbGF0ZXMgd2l0aCB0aGUgZGVmYXVsdCBvbmVzLgoJCTwvYmxvY2txdW90ZT4KCTwvbGk+Cgk8bGk+CgkJPHA+PHN0cm9uZz4yNSBKdW5lIDIwMTQgOiAxLjE8L3N0cm9uZz48L3A+CgkJPHA+QWRkIENTUyBlZGl0aW9uIGluIGFkbWluIHBhbmVsPC9wPgoJCTxwPkFkZCB0ZW1wbGF0ZSBlZGl0aW9uIGluIGFkbWluIHBhbmVsPC9wPgoJCTxwPkFkZCBvcGFjaXR5IHNldHRpbmc8L3A+CgkJPHA+QWRkIHBvc2l0aW9uIHNldHRpbmc8L3A+CgkJPHA+QWRkIHNodWZmbGU9dHJ1ZSBvcHRpb248L3A+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+MjQgSnVuZSAyMDE0IDogMS4wPC9zdHJvbmc+PC9wPgoJCTxwPlJld3JpdGUgb2YgU2ltcGxlU2xpZGVyIGNvbXBhdGlibGUgQ21zTWFkZVNpbXBsZSAxLjExLng8L3A+Cgk8L2xpPgo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[Simple Slider]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.adminManageShow.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKaWYgKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKSB7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgibW9kdWxlX2Vycm9yIj0+JHRoaXMtPkxhbmcoImFjY2Vzc2RlbmllZCIpLCJhY3RpdmVfdGFiIj0+InNob3dzIikpOwp9CgppZihpc3NldCgkcGFyYW1zWydmb3JtQWN0aW9uJ10pICYmICRwYXJhbXNbJ2Zvcm1BY3Rpb24nXSA9PT0gJ2FkZEltYWdlJyl7CgoJJHNxbD1TaW1wbGVTbGlkZXJVdGlsczo6R2VuZXJhdGVJbnNlcnRTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX3Nob3dpbWFnZXMnLCAKCQkJYXJyYXkoJ3Nob3dpZCc9PiRwYXJhbXNbJ3Nob3cnXSwgJ2ltYWdlaWQnPT4kcGFyYW1zWydpbWFnZSddKSk7CgoJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCWlmICgkcmVzdWx0ID09PSBmYWxzZSB8fCAkZGItPkVycm9yTXNnKCkpIHsKCQllY2hvICIgT3VwcyAuLi4gTXlzcWwgc2FpZCA6ICIuJGRiLT5FcnJvck1zZygpOwoJCWV4aXQ7CQkKCX0KfSBlbHNlIGlmKGlzc2V0KCRwYXJhbXNbJ2Zvcm1BY3Rpb24nXSkgJiYgJHBhcmFtc1snZm9ybUFjdGlvbiddID09PSAncmVtb3ZlSW1hZ2UnKXsKCglTaW1wbGVTbGlkZXJEQU86OmRlbGV0ZVNob3dJbWFnZXNCeUltYWdlaWRBbmRTaG93SWQoJHBhcmFtc1snaW1hZ2UnXSwgJHBhcmFtc1snc2hvdyddKTsKfQoKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgibW9kdWxlX21lc3NhZ2UiPT4kdGhpcy0+TGFuZygic2hvd3NhdmVkIiksImFjdGl2ZV90YWIiPT4ic2hvd3MiLCAibWFuYWdlaW1hZ2UiPT4kcGFyYW1zWydzaG93J10pKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.adminRescan.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKaWYgKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKSB7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgibW9kdWxlX2Vycm9yIj0+JHRoaXMtPkxhbmcoImFjY2Vzc2RlbmllZCIpLCJhY3RpdmVfdGFiIj0+InNob3dzIikpOwp9CgokaW1hZ2VzID0gU2ltcGxlU2xpZGVyREFPOjpmaW5kQWxsSW1hZ2VzKCk7CiRmaWxlcyA9IHNjYW5kaXIgKCBTaW1wbGVTbGlkZXJVdGlsczo6Z2V0VXBsb2FkRGlyZWN0b3J5KCkgKTsKJHJlZ2V4ID0gJy9cLihnaWZ8anBlP2d8cG5nKSQvaSc7CgokaW1hZ2VzTmFtZSA9IGFycmF5KCk7CmZvcmVhY2goJGltYWdlcyBhcyAkaW1hZ2UpewoJJGltYWdlc05hbWVbXSA9ICRpbWFnZVsnZmlsZW5hbWUnXTsKfQoKZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpewoJaWYoIXByZWdfbWF0Y2goJHJlZ2V4LCAkZmlsZSkpewoJCWNvbnRpbnVlOwoJfQoKCWlmKGluX2FycmF5KCRmaWxlLCAkaW1hZ2VzTmFtZSkpewoJCWNvbnRpbnVlOwoJfQoKCSRmaWVsZHM9YXJyYXkoKTsKCSRmaWVsZHNbJ3RpdGxlJ109JGZpbGU7CgkkZmllbGRzWydmaWxlbmFtZSddPSRmaWxlOwoJCQoJJHNxbD1TaW1wbGVTbGlkZXJVdGlsczo6R2VuZXJhdGVJbnNlcnRTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX2ltYWdlcycsICRmaWVsZHMpOwoKCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CglpZiAoJHJlc3VsdCA9PT0gZmFsc2UgfHwgJGRiLT5FcnJvck1zZygpKSB7CgkJZWNobyAiIE91cHMgLi4uIE15c3FsIHNhaWQgOiAiLiRkYi0+RXJyb3JNc2coKTsKCQlleGl0OwkJCgl9Cn0KCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9tZXNzYWdlIj0+JHRoaXMtPkxhbmcoInJlc2NhbnN1Y2Nlc3MiKSwiYWN0aXZlX3RhYiI9PiJpbWFnZXMiKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.adminSaveDesignCss.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykpIGV4aXQ7CgppZiAoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpIHsKICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLGFycmF5KCJtb2R1bGVfZXJyb3IiPT4kdGhpcy0+TGFuZygiYWNjZXNzZGVuaWVkIiksImFjdGl2ZV90YWIiPT4ic2hvd3MiKSk7Cn0KCiR0aGlzLT5TZXRUZW1wbGF0ZSgnY3NzJywgJHBhcmFtc1snQXJlYUNzcyddKTsKCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9tZXNzYWdlIj0+JHRoaXMtPkxhbmcoImRlc2lnbnNhdmVkIiksImFjdGl2ZV90YWIiPT4iZGVzaWduIikpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.adminSaveDesignTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykpIGV4aXQ7CgppZiAoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpIHsKICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLGFycmF5KCJtb2R1bGVfZXJyb3IiPT4kdGhpcy0+TGFuZygiYWNjZXNzZGVuaWVkIiksImFjdGl2ZV90YWIiPT4ic2hvd3MiKSk7Cn0KCiR0aGlzLT5TZXRUZW1wbGF0ZSgnZGVmYXVsdCcsICRwYXJhbXNbJ0FyZWFUZW1wbGF0ZSddKTsKCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9tZXNzYWdlIj0+JHRoaXMtPkxhbmcoImRlc2lnbnNhdmVkIiksImFjdGl2ZV90YWIiPT4iZGVzaWduIikpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.adminSaveImage.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKaWYgKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKSB7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgibW9kdWxlX2Vycm9yIj0+JHRoaXMtPkxhbmcoImFjY2Vzc2RlbmllZCIpLCJhY3RpdmVfdGFiIj0+ImltYWdlcyIpKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snZm9ybUFjdGlvbiddKSAmJiAkcGFyYW1zWydmb3JtQWN0aW9uJ10gPT09ICdhZGRpbWFnZScpewoKCWlmKCFlbXB0eSgkX0ZJTEVTWyRpZC4ndXBsb2FkJ11bJ3RtcF9uYW1lJ10pKXsKCQoJCXZlcmlmeV9pbWFnZSgkdGhpcywgJGlkLCAkcmV0dXJuaWQsICRfRklMRVMpOwoJCQoJCWlmKCFpc3NldCgkcGFyYW1zWyd0aXRsZSddKSB8fCBlbXB0eSgkcGFyYW1zWyd0aXRsZSddKSl7CgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9lcnJvciI9PiR0aGlzLT5MYW5nKCJuYW1lUmVxdWlyZWQiKSwiYWN0aXZlX3RhYiI9PiJpbWFnZXMiKSk7CgkJfQoJCQoJCSRmaWVsZHM9YXJyYXkoKTsKCQkkZmllbGRzWyd0aXRsZSddPSRwYXJhbXNbJ3RpdGxlJ107CgkJJGZpZWxkc1snZGVzY3JpcHRpb24nXT0kcGFyYW1zWydkZXNjcmlwdGlvbiddOwoJCSRmaWVsZHNbJ2ltYWdlbGluayddPSRwYXJhbXNbJ2ltYWdlbGluayddOwoJCSRmaWVsZHNbJ2ZpbGVuYW1lJ109JF9GSUxFU1skaWQuJ3VwbG9hZCddWyduYW1lJ107CgkJCgkJJHNxbD1TaW1wbGVTbGlkZXJVdGlsczo6R2VuZXJhdGVJbnNlcnRTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX2ltYWdlcycsICRmaWVsZHMpOwoKCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoJCWlmICgkcmVzdWx0ID09PSBmYWxzZSB8fCAkZGItPkVycm9yTXNnKCkpIHsKCQkJZWNobyAiIE91cHMgLi4uIE15c3FsIHNhaWQgOiAiLiRkYi0+RXJyb3JNc2coKTsKCQkJZXhpdDsJCQoJCX0KCQljbXNfbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJGlkLid1cGxvYWQnXVsndG1wX25hbWUnXSwgU2ltcGxlU2xpZGVyVXRpbHM6OmdldFVwbG9hZERpcmVjdG9yeSgpLiRfRklMRVNbJGlkLid1cGxvYWQnXVsnbmFtZSddKTsKCgl9Cn0gZWxzZSBpZihpc3NldCgkcGFyYW1zWydmb3JtQWN0aW9uJ10pICYmICRwYXJhbXNbJ2Zvcm1BY3Rpb24nXSA9PT0gJ3VwZGF0ZWltYWdlJyl7CgoJJGZpZWxkcz1hcnJheSgpOwoJJGltZ2lkPSRwYXJhbXNbJ2ltYWdlaWQnXTsKCQoJaWYoIWlzc2V0KCRwYXJhbXNbJ3RpdGxlJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ3RpdGxlJ10pKXsKCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLGFycmF5KCJtb2R1bGVfZXJyb3IiPT4kdGhpcy0+TGFuZygibmFtZVJlcXVpcmVkIiksImFjdGl2ZV90YWIiPT4iaW1hZ2VzIikpOwoJfQoJCgkkZmllbGRzWyd0aXRsZSddPSRwYXJhbXNbJ3RpdGxlJ107CgkkZmllbGRzWydkZXNjcmlwdGlvbiddPSRwYXJhbXNbJ2Rlc2NyaXB0aW9uJ107CgkkZmllbGRzWydpbWFnZWxpbmsnXT0kcGFyYW1zWydpbWFnZWxpbmsnXTsKCglpZighZW1wdHkoJF9GSUxFU1skaWQuJ3VwbG9hZCddWyd0bXBfbmFtZSddKSl7CgkJCgkJdmVyaWZ5X2ltYWdlKCR0aGlzLCAkaWQsICRyZXR1cm5pZCwgJF9GSUxFUyk7CgkJCgkJJGZpZWxkc1snZmlsZW5hbWUnXT0kX0ZJTEVTWyRpZC4ndXBsb2FkJ11bJ25hbWUnXTsKCX0KCQoJJG9sZEltYWdlID0gU2ltcGxlU2xpZGVyREFPOjpmaW5kSW1hZ2VzQnlJbWFnZWlkKCRpbWdpZCk7Cgkkb2xkSW1hZ2UgPSAkb2xkSW1hZ2VbMF07CgoKCSRzcWw9U2ltcGxlU2xpZGVyVXRpbHM6OkdlbmVyYXRlVXBkYXRlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9pbWFnZXMnLCAkZmllbGRzLCAnYGlkYD0iJy4kaW1naWQuJyInKTsKCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CglpZiAoJHJlc3VsdCA9PT0gZmFsc2UgfHwgJGRiLT5FcnJvck1zZygpKSB7CgkJZWNobyAiIE91cHMgLi4uIE15c3FsIHNhaWQgOiAiLiRkYi0+RXJyb3JNc2coKTsKCQlleGl0OwkJCgl9CgkKCWlmKCFlbXB0eSgkX0ZJTEVTWyRpZC4ndXBsb2FkJ11bJ3RtcF9uYW1lJ10pKXsKCQl1bmxpbmsoU2ltcGxlU2xpZGVyVXRpbHM6OmdldFVwbG9hZERpcmVjdG9yeSgpLiRvbGRJbWFnZVsnZmlsZW5hbWUnXSk7CgkJY21zX21vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyRpZC4ndXBsb2FkJ11bJ3RtcF9uYW1lJ10sIFNpbXBsZVNsaWRlclV0aWxzOjpnZXRVcGxvYWREaXJlY3RvcnkoKS4kX0ZJTEVTWyRpZC4ndXBsb2FkJ11bJ25hbWUnXSk7Cgl9Cn0KCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9tZXNzYWdlIj0+JHRoaXMtPkxhbmcoImltYWdlc2F2ZWQiKSwiYWN0aXZlX3RhYiI9PiJpbWFnZXMiKSk7CgpmdW5jdGlvbiB2ZXJpZnlfaW1hZ2UoJHNsaWRlciwgJGlkLCAkcmV0dXJuaWQsICRmaWxlKXsKCS8vVmVyaWZ5IGV4dGVuc2lvbi4KCSRleHRlbnNpb25zID0gYXJyYXkoJy5wbmcnLCAnLmdpZicsICcuanBnJywgJy5qcGVnJyk7CgkkZXh0ZW5zaW9uID0gc3RycmNocigkX0ZJTEVTWyRpZC4ndXBsb2FkJ11bJ25hbWUnXSwgJy4nKTsKCWlmKCFpbl9hcnJheSgkZXh0ZW5zaW9uLCAkZXh0ZW5zaW9ucykpewoJCSRzbGlkZXItPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgibW9kdWxlX2Vycm9yIj0+JHNsaWRlci0+TGFuZygibm90QUltYWdlIiksImFjdGl2ZV90YWIiPT4iaW1hZ2VzIikpOwoJfQoJCgkvL1ZlcmlmeSBzaXplLgoJJGltZ19zaXplX21heCA9IDEwMjQqMTAyNCozOwoJJGltZ19zaXplID0gZmlsZXNpemUoJF9GSUxFU1skaWQuJ3VwbG9hZCddWyd0bXBfbmFtZSddKTsKCWlmKCRpbWdfc2l6ZT4kaW1nX3NpemVfbWF4KXsKCQkkc2xpZGVyLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9lcnJvciI9PiRzbGlkZXItPkxhbmcoImltYWdlVG9vSGVhdnkiKSwiYWN0aXZlX3RhYiI9PiJpbWFnZXMiKSk7Cgl9Cn0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.adminSaveSettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKaWYgKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKSB7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgibW9kdWxlX2Vycm9yIj0+JHRoaXMtPkxhbmcoImFjY2Vzc2RlbmllZCIpLCJhY3RpdmVfdGFiIj0+InNob3dzIikpOwp9CgokcGF0dGVybiA9ICcvXlswLTldKiQvJzsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2RlZndpZHRoJywgKHByZWdfbWF0Y2goJHBhdHRlcm4sJHBhcmFtc1snZGVmd2lkdGgnXSkgPyAkcGFyYW1zWydkZWZ3aWR0aCddIDogNDAwKSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdkZWZoZWlnaHQnLCAocHJlZ19tYXRjaCgkcGF0dGVybiwkcGFyYW1zWydkZWZoZWlnaHQnXSkgPyAkcGFyYW1zWydkZWZoZWlnaHQnXSA6IDMwMCkpOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVmZmFkZXRpbWUnLChwcmVnX21hdGNoKCRwYXR0ZXJuLCRwYXJhbXNbJ2RlZmZhZGV0aW1lJ10pID8gJHBhcmFtc1snZGVmZmFkZXRpbWUnXSA6IDQwMDApKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2RlZmpxdWVyeXBhdGgnLCRwYXJhbXNbJ2RlZmpxdWVyeXBhdGgnXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdkZWZzM3NsaWRlcnBhdGgnLCRwYXJhbXNbJ2RlZnMzc2xpZGVycGF0aCddKTsKCiRwb3NpdGlvbiA9IHByZWdfbWF0Y2goJHBhdHRlcm4sJHBhcmFtc1snZGVmcG9zaXRpb24nXSkgPyAkcGFyYW1zWydkZWZwb3NpdGlvbiddIDogMjsKJHBvc2l0aW9uID0gJHBvc2l0aW9uIDw9IDMgPyAkcG9zaXRpb24gOiAyOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVmcG9zaXRpb24nLCRwb3NpdGlvbik7CgoKCiRvcGFjaXR5ID0gcHJlZ19tYXRjaCgkcGF0dGVybiwkcGFyYW1zWydkZWZvcGFjaXR5J10pID8gJHBhcmFtc1snZGVmb3BhY2l0eSddIDogNjA7CiRvcGFjaXR5ID0gJG9wYWNpdHkgPD0gMTAwID8gJG9wYWNpdHkgOiA2MDsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2RlZm9wYWNpdHknLCRvcGFjaXR5KTsKCiAgCgokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLGFycmF5KCJtb2R1bGVfbWVzc2FnZSI9PiR0aGlzLT5MYW5nKCJzZXR0aW5nc3NhdmVkIiksImFjdGl2ZV90YWIiPT4ic2V0dGluZ3MiKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.adminSaveShow.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKaWYgKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKSB7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgibW9kdWxlX2Vycm9yIj0+JHRoaXMtPkxhbmcoImFjY2Vzc2RlbmllZCIpLCJhY3RpdmVfdGFiIj0+InNob3dzIikpOwp9CgppZihlbXB0eSgkcGFyYW1zWydzaG93bmFtZSddKSl7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgibW9kdWxlX2Vycm9yIj0+JHRoaXMtPkxhbmcoInNob3duYW1lUmVxdWlyZWQiKSwiYWN0aXZlX3RhYiI9PiJzaG93cyIpKTsKfQoKJGZpZWxkcz1hcnJheSgpOwokZmllbGRzWydzaG93bmFtZSddPSRwYXJhbXNbJ3Nob3duYW1lJ107CiRmaWVsZHNbJ3dpZHRoJ109JHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZndpZHRoJyk7CiRmaWVsZHNbJ2hlaWdodCddPSR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZWZoZWlnaHQnKTsKJGZpZWxkc1snZmFkZXRpbWUnXT0kdGhpcy0+Z2V0UHJlZmVyZW5jZSgnZGVmZmFkZXRpbWUnKTsKJGZpZWxkc1sncG9zaXRpb24nXT0kdGhpcy0+Z2V0UHJlZmVyZW5jZSgncG9zaXRpb24nKTsKJGZpZWxkc1snb3BhY2l0eSddPSR0aGlzLT5nZXRQcmVmZXJlbmNlKCdvcGFjaXR5Jyk7CgppZigkcGFyYW1zWyd3aWR0aCddPjApewoJJGZpZWxkc1snd2lkdGgnXT0kcGFyYW1zWyd3aWR0aCddOwp9CmlmKCRwYXJhbXNbJ2hlaWdodCddPjApewoJJGZpZWxkc1snaGVpZ2h0J109JHBhcmFtc1snaGVpZ2h0J107Cn0KaWYoJHBhcmFtc1snZmFkZXRpbWUnXT4wKXsKCSRmaWVsZHNbJ2ZhZGV0aW1lJ109JHBhcmFtc1snZmFkZXRpbWUnXTsKfQppZigkcGFyYW1zWydvcGFjaXR5J10+PTAgJiYgJHBhcmFtc1snb3BhY2l0eSddPD0xMDApewoJJGZpZWxkc1snb3BhY2l0eSddPSRwYXJhbXNbJ29wYWNpdHknXTsKfQppZigkcGFyYW1zWydwb3NpdGlvbiddPj0wICYmICRwYXJhbXNbJ3Bvc2l0aW9uJ108PTMpewoJJGZpZWxkc1sncG9zaXRpb24nXT0kcGFyYW1zWydwb3NpdGlvbiddOwp9CgppZihpc3NldCgkcGFyYW1zWydmb3JtQWN0aW9uJ10pICYmICRwYXJhbXNbJ2Zvcm1BY3Rpb24nXSA9PT0gJ2FkZHNob3cnKXsKCgkkc3FsPVNpbXBsZVNsaWRlclV0aWxzOjpHZW5lcmF0ZUluc2VydFNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfc2hvd3MnLCAkZmllbGRzKTsKCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CglpZiAoJHJlc3VsdCA9PT0gZmFsc2UgfHwgJGRiLT5FcnJvck1zZygpKSB7CgkJZWNobyAiIE91cHMgLi4uIE15c3FsIHNhaWQgOiAiLiRkYi0+RXJyb3JNc2coKTsKCQlleGl0OwkJCgl9Cn0gZWxzZSBpZihpc3NldCgkcGFyYW1zWydmb3JtQWN0aW9uJ10pICYmICRwYXJhbXNbJ2Zvcm1BY3Rpb24nXSA9PT0gJ3VwZGF0ZXNob3cnKXsKCgkkc2hvd2lkPSRwYXJhbXNbJ3Nob3dpZCddOwoKCSRzcWw9U2ltcGxlU2xpZGVyVXRpbHM6OkdlbmVyYXRlVXBkYXRlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9zaG93cycsICRmaWVsZHMsICdgc2hvd2lkYD0iJy4kc2hvd2lkLiciJyk7CgkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoJaWYgKCRyZXN1bHQgPT09IGZhbHNlIHx8ICRkYi0+RXJyb3JNc2coKSkgewoJCWVjaG8gIiBPdXBzIC4uLiBNeXNxbCBzYWlkIDogIi4kZGItPkVycm9yTXNnKCk7CgkJZXhpdDsJCQoJfQp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLGFycmF5KCJtb2R1bGVfbWVzc2FnZSI9PiR0aGlzLT5MYW5nKCJzaG93c2F2ZWQiKSwiYWN0aXZlX3RhYiI9PiJzaG93cyIpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignaW1hZ2VzJyxhcnJheSgpKTsKJHNtYXJ0eS0+YXNzaWduKCd3aWR0aCcsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZndpZHRoJykpOwokc21hcnR5LT5hc3NpZ24oJ2hlaWdodCcsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZmhlaWdodCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdmYWRldGltZScsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZmZhZGV0aW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ29wYWNpdHknLCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZWZvcGFjaXR5JykpOwokc21hcnR5LT5hc3NpZ24oJ3Bvc2l0aW9uJywkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnZGVmcG9zaXRpb24nKSk7CiRzbWFydHktPmFzc2lnbignanF1ZXJ5dXJsJywkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnZGVmanF1ZXJ5cGF0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdzM3NsaWRlcnVybCcsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZnMzc2xpZGVycGF0aCcpKTsKCgoKaWYoIWVtcHR5KCRwYXJhbXNbJ3Nob3cnXSkpewoJCgkkc2hvd3MgPSBTaW1wbGVTbGlkZXJEQU86OmZpbmRTaG93c0J5U2hvd25hbWUoJHBhcmFtc1snc2hvdyddKTsKCWlmKCFlbXB0eSgkc2hvd3MpKXsKCgkJJHNtYXJ0eS0+YXNzaWduKCd3aWR0aCcsJHNob3dzWzBdWyJ3aWR0aCJdKTsKCQkkc21hcnR5LT5hc3NpZ24oJ2hlaWdodCcsJHNob3dzWzBdWyJoZWlnaHQiXSk7CgkJJHNtYXJ0eS0+YXNzaWduKCdmYWRldGltZScsJHNob3dzWzBdWyJmYWRldGltZSJdKTsKCQkkc21hcnR5LT5hc3NpZ24oJ29wYWNpdHknLCRzaG93c1swXVsib3BhY2l0eSJdKTsKCQkkc21hcnR5LT5hc3NpZ24oJ3Bvc2l0aW9uJywkc2hvd3NbMF1bInBvc2l0aW9uIl0pOwoKCQkkaW1hZ2VzID0gU2ltcGxlU2xpZGVyREFPOjpmaW5kSW1hZ2VzQnlTaG93aWQoJHNob3dzWzBdWyJzaG93aWQiXSk7Cgl9Cgp9ZWxzZXsKCSRpbWFnZXMgPSBTaW1wbGVTbGlkZXJEQU86OmZpbmRBbGxJbWFnZXMoKTsKCQp9CgoKaWYoIWVtcHR5KCRwYXJhbXNbJ3NodWZmbGUnXSkgJiYgJHBhcmFtc1snc2h1ZmZsZSddID09ICd0cnVlJyl7CglzaHVmZmxlKCRpbWFnZXMpOwp9CiRzbWFydHktPmFzc2lnbignaW1hZ2VzJywkaW1hZ2VzKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnY3NzJyk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnZGVmYXVsdCcpOwovL2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY3NzLnRwbCcpOwovL2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZGVmYXVsdC50cGwnKTsK]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKaWYgKCEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpIHsKCSR0aGlzLT5TaG93RXJyb3IoJHRoaXMtPkxhbmcoImFjY2Vzc2RlbmllZCIpKTsKCXJldHVybjsKfQoKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCmlmKGlzc2V0KCRwYXJhbXNbJ2VkaXRzaG93J10pKXsKCSRzaG93cyA9IFNpbXBsZVNsaWRlckRBTzo6ZmluZFNob3dzQnlTaG93aWQoJHBhcmFtc1snZWRpdHNob3cnXSk7CgkkY3Vyc2hvdyA9IG51bGw7CglpZighZW1wdHkoJHNob3dzKSl7CgkJJGN1cnNob3cgPSAkc2hvd3NbMF07Cgl9Cn0gZWxzZSBpZihpc3NldCgkcGFyYW1zWydkZWxzaG93J10pKXsKCVNpbXBsZVNsaWRlckRBTzo6ZGVsZXRlU2hvd0ltYWdlc0J5U2hvd2lkKCRwYXJhbXNbJ2RlbHNob3cnXSk7CglTaW1wbGVTbGlkZXJEQU86OmRlbGV0ZVNob3dzQnlTaG93aWQoJHBhcmFtc1snZGVsc2hvdyddKTsKfQoKCmlmKGlzc2V0KCRwYXJhbXNbJ2RlbGltYWdlJ10pKXsKCVNpbXBsZVNsaWRlckRBTzo6ZGVsZXRlU2hvd0ltYWdlc0J5SW1hZ2VpZCgkcGFyYW1zWydkZWxpbWFnZSddKTsKCgkkb2xkaW1hZ2UgPSBTaW1wbGVTbGlkZXJEQU86OmZpbmRJbWFnZXNCeUltYWdlaWQoJHBhcmFtc1snZGVsaW1hZ2UnXSk7Cgkkb2xkaW1hZ2UgPSAkb2xkaW1hZ2VbMF07CgoJU2ltcGxlU2xpZGVyREFPOjpkZWxldGVJbWFnZXNCeUltYWdlaWQoJHBhcmFtc1snZGVsaW1hZ2UnXSk7Cgl1bmxpbmsoU2ltcGxlU2xpZGVyVXRpbHM6OmdldFVwbG9hZERpcmVjdG9yeSgpLiRvbGRpbWFnZVsnZmlsZW5hbWUnXSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2VkaXRpbWFnZSddKSl7CgkkaW1hZ2VzID0gU2ltcGxlU2xpZGVyREFPOjpmaW5kSW1hZ2VzQnlJbWFnZWlkKCRwYXJhbXNbJ2VkaXRpbWFnZSddKTsKCWlmKCFlbXB0eSgkaW1hZ2VzKSl7CgkJJGN1cmltYWdlPSRpbWFnZXNbMF07CQoJfQp9CgokdGFiID0gJ2ltYWdlcyc7CmlmICghZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkgewogICR0YWIgPSAkcGFyYW1zWydhY3RpdmVfdGFiJ107Cn0KCgokdGhlbWVPYmplY3QgPSBjbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXTsKCi8vIGFuZCBmaW5hbGx5LCBkaXNwbGF5IGFsbCB0aG9zZSB0YWJzLiBGaXJzdCwgc2V0dXAgdGhlIHRhYnMsIGFuZCB0aGFuIGluY2x1ZGUKLy8gdGhlIGZ1bmN0aW9uLnt0YWJ9LnBocCBmaWxlLCBpbiB3aGljaCB0aGUgdGFiJ3MgY29kZSBpcyBzdG9yZWQgdG8ga2VlcCB0aGlzCi8vIGZpbGUgYSBiaXQgdGlkaWVyLgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKCmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignaW1hZ2VzJywgJHRoaXMtPkxhbmcoJ2ltYWdlcycpLCAnaW1hZ2VzJyA9PSAkdGFiID8gdHJ1ZSA6IGZhbHNlKTsKCmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc2hvd3MnLCAkdGhpcy0+TGFuZygnc2hvd3MnKSwgJ3Nob3dzJyA9PSAkdGFiID8gdHJ1ZSA6IGZhbHNlKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdkZXNpZ24nLCAkdGhpcy0+TGFuZygnZGVzaWduJyksICdkZXNpZ24nID09ICR0YWIgPyB0cnVlIDogZmFsc2UpOwoKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZXR0aW5ncycsICR0aGlzLT5MYW5nKCdlZGl0c2V0dGluZ3MnKSwgJ3NldHRpbmdzJyA9PSAkdGFiID8gdHJ1ZSA6IGZhbHNlKTsKCmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCi8vIERpc3BsYXkgZWFjaCB0YWIncyBjb250ZW50CmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2ltYWdlcycpOwppbmNsdWRlICdmdW5jdGlvbi5pbWFnZXMucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignc2hvd3MnKTsKaWYoaXNzZXQoJHBhcmFtc1snbWFuYWdlaW1hZ2UnXSkpewoJaW5jbHVkZSAnZnVuY3Rpb24ubWFuYWdlaW1hZ2VzLnBocCc7Cn1lbHNlewoJaW5jbHVkZSAnZnVuY3Rpb24uc2hvd3MucGhwJzsKfQplY2hvICR0aGlzLT5FbmRUYWIoKTsKCgplY2hvICR0aGlzLT5TdGFydFRhYignZGVzaWduJyk7CglpbmNsdWRlICdmdW5jdGlvbi5kZXNpZ24ucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignc2V0dGluZ3MnKTsKaW5jbHVkZSAnZnVuY3Rpb24uc2V0dGluZ3MucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/function.design.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSkgZXhpdDsKCiRmb3JtUGFyYW1zID0gYXJyYXkoKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydEZvcm1Dc3MnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluU2F2ZURlc2lnbkNzcycsICRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsICRmb3JtUGFyYW1zKSk7CiRzbWFydHktPmFzc2lnbigncmVzZXRDc3MnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJycsIGFycmF5KCdhY3RpdmVfdGFiJz0+J2Rlc2lnbicsICdyZXNldCc9Pidjc3MnKSwnJyx0cnVlKSk7CgppZighZW1wdHkoJHBhcmFtc1sncmVzZXQnXSkgJiYgJHBhcmFtc1sncmVzZXQnXSA9PSAnY3NzJyl7Cgkkc21hcnR5LT5hc3NpZ24oJ3RleHRBcmVhQ3NzJywgJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ2NzcycpICk7Cn0gZWxzZSB7Cgkkc21hcnR5LT5hc3NpZ24oJ3RleHRBcmVhQ3NzJywgJHRoaXMtPkdldFRlbXBsYXRlKCdjc3MnKSApOwkKfQoKCiRmb3JtUGFyYW1zID0gYXJyYXkoKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydEZvcm1UZW1wbGF0ZScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5TYXZlRGVzaWduVGVtcGxhdGUnLCAkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCcnLCAkZm9ybVBhcmFtcykpOwokc21hcnR5LT5hc3NpZ24oJ3Jlc2V0VGVtcGxhdGUnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJycsIGFycmF5KCdhY3RpdmVfdGFiJz0+J2Rlc2lnbicsICdyZXNldCc9Pid0ZW1wbGF0ZScpLCcnLHRydWUpKTsKCmlmKCFlbXB0eSgkcGFyYW1zWydyZXNldCddKSAmJiAkcGFyYW1zWydyZXNldCddID09ICd0ZW1wbGF0ZScpewoJJHNtYXJ0eS0+YXNzaWduKCd0ZXh0QXJlYVRlbXBsYXRlJywgJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ2RlZmF1bHQnKSApOwp9IGVsc2UgewoJJHNtYXJ0eS0+YXNzaWduKCd0ZXh0QXJlYVRlbXBsYXRlJywgJHRoaXMtPkdldFRlbXBsYXRlKCdkZWZhdWx0JykgKTsKfQoKJHNtYXJ0eS0+YXNzaWduKCdtb2QnLCR0aGlzKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbkRlc2lnbi50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/function.images.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKCiRpbWFnZXMgPSBTaW1wbGVTbGlkZXJEQU86OmZpbmRBbGxJbWFnZXMoKTsKJGltYWdlc2NvdW50ID0gY291bnQoJGltYWdlcyk7CmZvcigkaSA9IDA7ICRpIDwgJGltYWdlc2NvdW50OyAkaSsrKXsKCiAgJGltYWdlc1skaV1bJ2VkaXRJbWFnZUxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCJlZGl0IiksJycsJycsJ3N5c3RlbWljb24nKSwgCiAgICBhcnJheSgnYWN0aXZlX3RhYic9PidpbWFnZXMnLCAnZWRpdGltYWdlJz0+JGltYWdlc1skaV1bJ2lkJ10pLCAnJyAsIGZhbHNlLCB0cnVlLCAnJyk7CiAgJGltYWdlc1skaV1bJ3JlbW92ZUltYWdlTGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygiZGVsIiksJycsJycsJ3N5c3RlbWljb24nKSwgCiAgICBhcnJheSgnYWN0aXZlX3RhYic9PidpbWFnZXMnLCAnZGVsaW1hZ2UnPT4kaW1hZ2VzWyRpXVsnaWQnXSksICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgZW50cnk/IE5hbWUgOicuJGltYWdlc1skaV1bJ3RpdGxlJ10gLCBmYWxzZSwgdHJ1ZSwgJycpOwoKfQoKJHJlc2NhbiA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluUmVzY2FuJywgJHJldHVybmlkLCAnJywgYXJyYXkoKSwnJyx0cnVlKTsKCiRzbWFydHktPmFzc2lnbignaW1hZ2VzJywgJGltYWdlcyk7CiRzbWFydHktPmFzc2lnbigndXJsSW1hZ2UnLCBTaW1wbGVTbGlkZXJVdGlsczo6Z2V0VXBsb2FkVXJsKCkpOwokc21hcnR5LT5hc3NpZ24oJ3Jlc2NhbicsICRyZXNjYW4pOwokc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluSW1hZ2VMaXN0LnRwbCcpOwoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiRpc0VkaXRpb25Nb2RlID0gaXNzZXQoJHBhcmFtc1snZWRpdGltYWdlJ10pOwokZm9ybVBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJz0+J2ltYWdlcycsICdmb3JtQWN0aW9uJyA9PiAnYWRkaW1hZ2UnKTsKJGN1cmltYWdlID0gYXJyYXkoJ3RpdGxlJyA9PiAnJywgJ2Rlc2NyaXB0aW9uJyA9PiAnJywgICdpbWFnZWxpbmsnID0+ICcnLCd1cmxJbWFnZScgPT4nJywgJ3VwbG9hZCc9PiR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQgKCRpZCwgJ3VwbG9hZCcpKTsKaWYoJGlzRWRpdGlvbk1vZGUpewogICRmb3JtUGFyYW1zWydpbWFnZWlkJ10gPSAkcGFyYW1zWydlZGl0aW1hZ2UnXTsKICAkZm9ybVBhcmFtc1snZm9ybUFjdGlvbiddID0gJ3VwZGF0ZWltYWdlJzsKICAkaW1hZ2VzID0gU2ltcGxlU2xpZGVyREFPOjpmaW5kSW1hZ2VzQnlJbWFnZWlkKCRwYXJhbXNbJ2VkaXRpbWFnZSddKTsKICBpZighZW1wdHkoJGltYWdlcykpewogICAgJGN1cmltYWdlID0gJGltYWdlc1swXTsKICAgIC8vJGN1cmltYWdlWyd1cGxvYWQnXSA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQgKCRpZCwgJ3VwbG9hZCcpOwogIH0KfSAKJHNtYXJ0eS0+YXNzaWduKCdiYWNrVXJsSW1hZ2UnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoImJhY2siKSwgYXJyYXkoJ2FjdGl2ZV90YWInPT4naW1hZ2VzJyksJycsdHJ1ZSkpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Rm9ybUltYWdlJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluU2F2ZUltYWdlJywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsdHJ1ZSwnJywgJGZvcm1QYXJhbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdjdXJpbWFnZScsICRjdXJpbWFnZSk7CiRzbWFydHktPmFzc2lnbignaXNFZGl0aW9uTW9kZScsICRpc0VkaXRpb25Nb2RlKTsKJHNtYXJ0eS0+YXNzaWduKCdtb2QnLCR0aGlzKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbkltYWdlRWRpdC50cGwnKTsK]]></data>
	</file>
	<file>
	  <filename>/function.manageimages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKCgokaW1hZ2VzRGVsZXRlYWJsZSA9IFNpbXBsZVNsaWRlckRBTzo6ZmluZEltYWdlc0J5U2hvd2lkKCRwYXJhbXNbJ21hbmFnZWltYWdlJ10pOwoKJGltYWdlc0NvdW50ID0gY291bnQoJGltYWdlc0RlbGV0ZWFibGUpOwpmb3IoJGkgPSAwIDsgJGkgPCAkaW1hZ2VzQ291bnQgOyAkaSsrKXsKCSRpbWFnZXNEZWxldGVhYmxlWyRpXVsncmVtb3ZlTGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5NYW5hZ2VTaG93JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkJyksIAoJCWFycmF5KCdhY3RpdmVfdGFiJz0+J3Nob3dzJywgCgkJCSdmb3JtQWN0aW9uJz0+J3JlbW92ZUltYWdlJywgCgkJCSdzaG93Jz0+JHBhcmFtc1snbWFuYWdlaW1hZ2UnXSwgCgkJCSdpbWFnZSc9PiRpbWFnZXNEZWxldGVhYmxlWyRpXVsnaWQnXQoJCSksICcnICwgdHJ1ZSwgdHJ1ZSwgJycpOwp9CiRzbWFydHktPmFzc2lnbignaW1hZ2VzRGVsZXRlYWJsZScsICRpbWFnZXNEZWxldGVhYmxlKTsKCgokaW1hZ2VzQWRkYWJsZWQgPSBTaW1wbGVTbGlkZXJEQU86OmZpbmRBZGRhYmxlZEltYWdlc0J5U2hvd2lkKCRwYXJhbXNbJ21hbmFnZWltYWdlJ10pOwokaW1hZ2VzQ291bnQgPSBjb3VudCgkaW1hZ2VzQWRkYWJsZWQpOwpmb3IoJGkgPSAwIDsgJGkgPCAkaW1hZ2VzQ291bnQgOyAkaSsrKXsKCSRpbWFnZXNBZGRhYmxlZFskaV1bJ2FkZExpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluTWFuYWdlU2hvdycsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FkZCcpLCAKCQlhcnJheSgnYWN0aXZlX3RhYic9PidzaG93cycsIAoJCQknZm9ybUFjdGlvbic9PidhZGRJbWFnZScsIAoJCQknc2hvdyc9PiRwYXJhbXNbJ21hbmFnZWltYWdlJ10sIAoJCQknaW1hZ2UnPT4kaW1hZ2VzQWRkYWJsZWRbJGldWydpZCddCgkJKSwgJycgLCB0cnVlLCB0cnVlLCAnJyk7Cn0KJHNtYXJ0eS0+YXNzaWduKCdpbWFnZXNBZGRhYmxlZCcsICRpbWFnZXNBZGRhYmxlZCk7CgoKCiRzbWFydHktPmFzc2lnbignYmFja1VybCcsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJycsIGFycmF5KCdhY3RpdmVfdGFiJz0+J3Nob3dzJyksICcnICwgdHJ1ZSkpOwokc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pblNob3dJbWFnZUVkaXQudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignc3RhcnRGb3JtU2V0dGluZ3MnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5TYXZlU2V0dGluZ3MnLCAkcmV0dXJuaWQpKTsKCgokc21hcnR5LT5hc3NpZ24oJ3NlbGVjdFBvc2l0aW9uJywgU2ltcGxlU2xpZGVyVXRpbHM6OmRpc3BsYXlTZWxlY3RBcnJheShhcnJheSgnMCcgPT4gJ3RvcCcsCgkJCQkJCQkJCQkJCQkJCQkJCScxJz0+J3JpZ2h0JywKCQkJCQkJCQkJCQkJCQkJCQkJJzInPT4nYm90dG9tJywKCQkJCQkJCQkJCQkJCQkJCQkJJzMnPT4nbGVmdCcpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmcG9zaXRpb24nKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdtb2QnLCR0aGlzKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pblNldHRpbmdzLnRwbCcpOw==]]></data>
	</file>
	<file>
	  <filename>/function.shows.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSkgZXhpdDsKCiRzaG93cyA9IFNpbXBsZVNsaWRlckRBTzo6ZmluZEFsbFNob3dzKCk7CiRzaG93c2NvdW50ID0gY291bnQoJHNob3dzKTsKZm9yKCRpID0gMDsgJGkgPCAkc2hvd3Njb3VudDsgJGkrKyl7CiAgJHNob3dzWyRpXVsnZWRpdFNob3dMaW5rJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygiZWRpdCIpLCcnLCcnLCdzeXN0ZW1pY29uJyksIAogICAgYXJyYXkoJ2FjdGl2ZV90YWInPT4nc2hvd3MnLCAnZWRpdHNob3cnPT4kc2hvd3NbJGldWydzaG93aWQnXSksICcnICwgZmFsc2UsIHRydWUsICcnKTsKICAkc2hvd3NbJGldWydyZW1vdmVTaG93TGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygiZGVsIiksJycsJycsJ3N5c3RlbWljb24nKSwKICAgIGFycmF5KCdhY3RpdmVfdGFiJz0+J3Nob3dzJywgJ2RlbHNob3cnPT4kc2hvd3NbJGldWydzaG93aWQnXSksICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgZW50cnk/IE5hbWUgOicuJHNob3dzWyRpXVsnc2hvd25hbWUnXSAsIGZhbHNlLCB0cnVlLCAnJyk7CgogICRzaG93c1skaV1bJ2FkZFNob3dJbWFnZUxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJ01hbmFnZSBJbWFnZXMnLCAKICAgIGFycmF5KCdhY3RpdmVfdGFiJz0+J3Nob3dzJywgJ21hbmFnZWltYWdlJz0+JHNob3dzWyRpXVsnc2hvd2lkJ10pLCAnJyAsIGZhbHNlLCB0cnVlLCAnJyk7CgogICRzaG93c1skaV1bJ2ltYWdlcyddID0gU2ltcGxlU2xpZGVyREFPOjpmaW5kSW1hZ2VzQnlTaG93aWQoJHNob3dzWyRpXVsnc2hvd2lkJ10pOwp9CiRzbWFydHktPmFzc2lnbignc2hvd3MnLCAkc2hvd3MpOwokc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluU2hvd0xpc3QudHBsJyk7CgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgokaXNFZGl0aW9uTW9kZSA9IGlzc2V0KCRwYXJhbXNbJ2VkaXRzaG93J10pOwokZm9ybVBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJz0+J3Nob3dzJywgJ2Zvcm1BY3Rpb24nID0+ICdhZGRzaG93Jyk7CiRjdXJzaG93ID0gYXJyYXkoJ3Nob3duYW1lJyA9PiAnJywgCiAgICAgICAgICAgICAgICAgICd3aWR0aCcgPT4gJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZndpZHRoJyksICAKICAgICAgICAgICAgICAgICAgJ2hlaWdodCcgPT4gJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZmhlaWdodCcpLCAgCiAgICAgICAgICAgICAgICAgICdmYWRldGltZScgPT4gJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZmZhZGV0aW1lJyksCiAgICAgICAgICAgICAgICAgICdvcGFjaXR5JyA9PiR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZWZvcGFjaXR5JyksCiAgICAgICAgICAgICAgICAgICdwb3NpdGlvbicgPT4kdGhpcy0+Z2V0UHJlZmVyZW5jZSgnZGVmcG9zaXRpb24nKSk7CgppZigkaXNFZGl0aW9uTW9kZSl7CiAgJGZvcm1QYXJhbXNbJ2Zvcm1BY3Rpb24nXSA9ICd1cGRhdGVzaG93JzsKICAkZm9ybVBhcmFtc1snc2hvd2lkJ10gPSAkcGFyYW1zWydlZGl0c2hvdyddOwogICRzaG93cyA9IFNpbXBsZVNsaWRlckRBTzo6ZmluZFNob3dzQnlTaG93aWQoJHBhcmFtc1snZWRpdHNob3cnXSk7CiAgaWYoIWVtcHR5KCRzaG93cykpewogICAgJGN1cnNob3cgPSAkc2hvd3NbMF07IAogIH0KfSAKJHNtYXJ0eS0+YXNzaWduKCdiYWNrVXJsU2hvdycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygiYmFjayIpLCBhcnJheSgnYWN0aXZlX3RhYic9PidzaG93cycpLCcnLHRydWUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzZWxlY3RQb3NpdGlvbicsU2ltcGxlU2xpZGVyVXRpbHM6OmRpc3BsYXlTZWxlY3RBcnJheShhcnJheSgnMCcgPT4gJ3RvcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxJz0+J3JpZ2h0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzInPT4nYm90dG9tJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzMnPT4nbGVmdCcpLCAkY3Vyc2hvd1sncG9zaXRpb24nXSkpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Rm9ybVNob3cnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5TYXZlU2hvdycsICRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsICRmb3JtUGFyYW1zKSk7CiRzbWFydHktPmFzc2lnbignY3Vyc2hvdycsICRjdXJzaG93KTsKJHNtYXJ0eS0+YXNzaWduKCdpc0VkaXRpb25Nb2RlJywgJGlzRWRpdGlvbk1vZGUpOwokc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluU2hvd0VkaXQudHBsJyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/jquery-1.11.1.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSB2MS4xMS4xIHwgKGMpIDIwMDUsIDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMSIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSk+PTB9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZighYXx8Im9iamVjdCIhPT1tLnR5cGUoYSl8fGEubm9kZVR5cGV8fG0uaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFqLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWouY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWlmKGsub3duTGFzdClmb3IoYiBpbiBhKXJldHVybiBqLmNhbGwoYSxiKTtmb3IoYiBpbiBhKTtyZXR1cm4gdm9pZCAwPT09Ynx8ai5jYWxsKGEsYil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/YSsiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP2hbaS5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmbS50cmltKGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2FsbChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKG8sIm1zLSIpLnJlcGxhY2UocCxxKX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPTAsZj1hLmxlbmd0aCxnPXIoYSk7aWYoYyl7aWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5hcHBseShhW2VdLGMpLGQ9PT0hMSlicmVha31lbHNlIGZvcihlIGluIGEpaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgaWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWt9ZWxzZSBmb3IoZSBpbiBhKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6KGErIiIpLnJlcGxhY2UobiwiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFtdO3JldHVybiBudWxsIT1hJiYocihPYmplY3QoYSkpP20ubWVyZ2UoYywic3RyaW5nIj09dHlwZW9mIGE/W2FdOmEpOmYuY2FsbChjLGEpKSxjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihiKXtpZihnKXJldHVybiBnLmNhbGwoYixhLGMpO2ZvcihkPWIubGVuZ3RoLGM9Yz8wPmM/TWF0aC5tYXgoMCxkK2MpOmM6MDtkPmM7YysrKWlmKGMgaW4gYiYmYltjXT09PWEpcmV0dXJuIGN9cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGEsYil7dmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO3doaWxlKGM+ZClhW2UrK109YltkKytdO2lmKGMhPT1jKXdoaWxlKHZvaWQgMCE9PWJbZF0pYVtlKytdPWJbZCsrXTtyZXR1cm4gYS5sZW5ndGg9ZSxhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQsZT1bXSxmPTAsZz1hLmxlbmd0aCxoPSFjO2c+ZjtmKyspZD0hYihhW2ZdLGYpLGQhPT1oJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj0wLGc9YS5sZW5ndGgsaD1yKGEpLGk9W107aWYoaClmb3IoO2c+ZjtmKyspZD1iKGFbZl0sZixjKSxudWxsIT1kJiZpLnB1c2goZCk7ZWxzZSBmb3IoZiBpbiBhKWQ9YihhW2ZdLGYsYyksbnVsbCE9ZCYmaS5wdXNoKGQpO3JldHVybiBlLmFwcGx5KFtdLGkpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiJiYoZj1hW2JdLGI9YSxhPWYpLG0uaXNGdW5jdGlvbihhKT8oYz1kLmNhbGwoYXJndW1lbnRzLDIpLGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShifHx0aGlzLGMuY29uY2F0KGQuY2FsbChhcmd1bWVudHMpKSl9LGUuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxtLmd1aWQrKyxlKTp2b2lkIDB9LG5vdzpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sc3VwcG9ydDprfSksbS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7aFsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTtmdW5jdGlvbiByKGEpe3ZhciBiPWEubGVuZ3RoLGM9bS50eXBlKGEpO3JldHVybiJmdW5jdGlvbiI9PT1jfHxtLmlzV2luZG93KGEpPyExOjE9PT1hLm5vZGVUeXBlJiZiPyEwOiJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiZiPjAmJmItMSBpbiBhfXZhciBzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9InNpenpsZSIrLW5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9Z2IoKSx6PWdiKCksQT1nYigpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPSJ1bmRlZmluZWQiLEQ9MTw8MzEsRT17fS5oYXNPd25Qcm9wZXJ0eSxGPVtdLEc9Ri5wb3AsSD1GLnB1c2gsST1GLnB1c2gsSj1GLnNsaWNlLEs9Ri5pbmRleE9mfHxmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2M+YjtiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9LEw9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixNPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixOPSIoPzpcXFxcLnxbXFx3LV18W15cXHgwMC1cXHhhMF0pKyIsTz1OLnJlcGxhY2UoInciLCJ3IyIpLFA9IlxcWyIrTSsiKigiK04rIikoPzoiK00rIiooWypeJHwhfl0/PSkiK00rIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitPKyIpKXwpIitNKyIqXFxdIixRPSI6KCIrTisiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrUCsiKSopfC4qKVxcKXwpIixSPW5ldyBSZWdFeHAoIl4iK00rIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTSsiKyQiLCJnIiksUz1uZXcgUmVnRXhwKCJeIitNKyIqLCIrTSsiKiIpLFQ9bmV3IFJlZ0V4cCgiXiIrTSsiKihbPit+XXwiK00rIikiK00rIioiKSxVPW5ldyBSZWdFeHAoIj0iK00rIiooW15cXF0nXCJdKj8pIitNKyIqXFxdIiwiZyIpLFY9bmV3IFJlZ0V4cChRKSxXPW5ldyBSZWdFeHAoIl4iK08rIiQiKSxYPXtJRDpuZXcgUmVnRXhwKCJeIygiK04rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTisiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTi5yZXBsYWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrUCksUFNFVURPOm5ldyBSZWdFeHAoIl4iK1EpLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrTSsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrTSsiKig/OihbKy1dfCkiK00rIiooXFxkKyl8KSkiK00rIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0wrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitNKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK00rIiooKD86LVxcZCk/XFxkKikiK00rIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFk9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxaPS9eaFxkJC9pLCQ9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLF89L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxhYj0vWyt+XS8sYmI9Lyd8XFwvZyxjYj1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK00rIj98KCIrTSsiKXwuKSIsImlnIiksZGI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9O3RyeXtJLmFwcGx5KEY9Si5jYWxsKHYuY2hpbGROb2Rlcyksdi5jaGlsZE5vZGVzKSxGW3YuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGViKXtJPXthcHBseTpGLmxlbmd0aD9mdW5jdGlvbihhLGIpe0guYXBwbHkoYSxKLmNhbGwoYikpfTpmdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoLGQ9MDt3aGlsZShhW2MrK109YltkKytdKTthLmxlbmd0aD1jLTF9fX1mdW5jdGlvbiBmYihhLGIsZCxlKXt2YXIgZixoLGosayxsLG8scixzLHcseDtpZigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixkPWR8fFtdLCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIGQ7aWYoMSE9PShrPWIubm9kZVR5cGUpJiY5IT09aylyZXR1cm5bXTtpZihwJiYhZSl7aWYoZj1fLmV4ZWMoYSkpaWYoaj1mWzFdKXtpZig5PT09ayl7aWYoaD1iLmdldEVsZW1lbnRCeUlkKGopLCFofHwhaC5wYXJlbnROb2RlKXJldHVybiBkO2lmKGguaWQ9PT1qKXJldHVybiBkLnB1c2goaCksZH1lbHNlIGlmKGIub3duZXJEb2N1bWVudCYmKGg9Yi5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGopKSYmdChiLGgpJiZoLmlkPT09ailyZXR1cm4gZC5wdXNoKGgpLGR9ZWxzZXtpZihmWzJdKXJldHVybiBJLmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksZDtpZigoaj1mWzNdKSYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEkuYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaikpLGR9aWYoYy5xc2EmJighcXx8IXEudGVzdChhKSkpe2lmKHM9cj11LHc9Yix4PTk9PT1rJiZhLDE9PT1rJiYib2JqZWN0IiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7bz1nKGEpLChyPWIuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPXIucmVwbGFjZShiYiwiXFwkJiIpOmIuc2V0QXR0cmlidXRlKCJpZCIscykscz0iW2lkPSciK3MrIiddICIsbD1vLmxlbmd0aDt3aGlsZShsLS0pb1tsXT1zK3FiKG9bbF0pO3c9YWIudGVzdChhKSYmb2IoYi5wYXJlbnROb2RlKXx8Yix4PW8uam9pbigiLCIpfWlmKHgpdHJ5e3JldHVybiBJLmFwcGx5KGQsdy5xdWVyeVNlbGVjdG9yQWxsKHgpKSxkfWNhdGNoKHkpe31maW5hbGx5e3J8fGIucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGkoYS5yZXBsYWNlKFIsIiQxIiksYixkLGUpfWZ1bmN0aW9uIGdiKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYysiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBiW2Euc2hpZnQoKV0sYltjKyIgIl09ZX1yZXR1cm4gYn1mdW5jdGlvbiBoYihhKXtyZXR1cm4gYVt1XT0hMCxhfWZ1bmN0aW9uIGliKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24gamIoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1hLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24ga2IoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiYofmIuc291cmNlSW5kZXh8fEQpLSh+YS5zb3VyY2VJbmRleHx8RCk7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIGxiKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG1iKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBuYihhKXtyZXR1cm4gaGIoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsaGIoZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pY1tlPWZbZ11dJiYoY1tlXT0hKGRbZV09Y1tlXSkpfSl9KX1mdW5jdGlvbiBvYihhKXtyZXR1cm4gYSYmdHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPT1DJiZhfWM9ZmIuc3VwcG9ydD17fSxmPWZiLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8iSFRNTCIhPT1iLm5vZGVOYW1lOiExfSxtPWZiLnNldERvY3VtZW50PWZ1bmN0aW9uKGEpe3ZhciBiLGU9YT9hLm93bmVyRG9jdW1lbnR8fGE6dixnPWUuZGVmYXVsdFZpZXc7cmV0dXJuIGUhPT1uJiY5PT09ZS5ub2RlVHlwZSYmZS5kb2N1bWVudEVsZW1lbnQ/KG49ZSxvPWUuZG9jdW1lbnRFbGVtZW50LHA9IWYoZSksZyYmZyE9PWcudG9wJiYoZy5hZGRFdmVudExpc3RlbmVyP2cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe20oKX0sITEpOmcuYXR0YWNoRXZlbnQmJmcuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixmdW5jdGlvbigpe20oKX0pKSxjLmF0dHJpYnV0ZXM9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhc3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksYy5nZXRFbGVtZW50c0J5VGFnTmFtZT1pYihmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlLmNyZWF0ZUNvbW1lbnQoIiIpKSwhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT0kLnRlc3QoZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSYmaWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSdhJz48L2Rpdj48ZGl2IGNsYXNzPSdhIGknPjwvZGl2PiIsYS5maXJzdENoaWxkLmNsYXNzTmFtZT0iaSIsMj09PWEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiaSIpLmxlbmd0aH0pLGMuZ2V0QnlJZD1pYihmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFlLmdldEVsZW1lbnRzQnlOYW1lfHwhZS5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRCeUlkIT09QyYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYyYmYy5wYXJlbnROb2RlP1tjXTpbXX19LGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYixkYik7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiaWQiKT09PWJ9fSk6KGRlbGV0ZSBkLmZpbmQuSUQsZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGNiLGRiKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGM9dHlwZW9mIGEuZ2V0QXR0cmlidXRlTm9kZSE9PUMmJmEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gYyYmYy52YWx1ZT09PWJ9fSksZC5maW5kLlRBRz1jLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Qz9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOnZvaWQgMH06ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9MCxmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7aWYoIioiPT09YSl7d2hpbGUoYz1mW2UrK10pMT09PWMubm9kZVR5cGUmJmQucHVzaChjKTtyZXR1cm4gZH1yZXR1cm4gZn0sZC5maW5kLkNMQVNTPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oYSxiKXtyZXR1cm4gdHlwZW9mIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PUMmJnA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT0kLnRlc3QoZS5xdWVyeVNlbGVjdG9yQWxsKSkmJihpYihmdW5jdGlvbihhKXthLmlubmVySFRNTD0iPHNlbGVjdCBtc2FsbG93Y2xpcD0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsYS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NsaXBePScnXSIpLmxlbmd0aCYmcS5wdXNoKCJbKl4kXT0iK00rIiooPzonJ3xcIlwiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8cS5wdXNoKCJcXFsiK00rIiooPzp2YWx1ZXwiK0wrIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIil9KSxpYihmdW5jdGlvbihhKXt2YXIgYj1lLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZxLnB1c2goIm5hbWUiK00rIipbKl4kfCF+XT89IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aHx8cS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHEucHVzaCgiLC4qOiIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj0kLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmliKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsImRpdiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixRKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9JC50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8JC50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09ZXx8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1lfHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA6NCZkPy0xOjEpfTpmdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBsPSEwLDA7dmFyIGMsZD0wLGY9YS5wYXJlbnROb2RlLGc9Yi5wYXJlbnROb2RlLGg9W2FdLGk9W2JdO2lmKCFmfHwhZylyZXR1cm4gYT09PWU/LTE6Yj09PWU/MTpmPy0xOmc/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA7aWYoZj09PWcpcmV0dXJuIGtiKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaS51bnNoaWZ0KGMpO3doaWxlKGhbZF09PT1pW2RdKWQrKztyZXR1cm4gZD9rYihoW2RdLGlbZF0pOmhbZF09PT12Py0xOmlbZF09PT12PzE6MH0sZSk6bn0sZmIubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBmYihhLG51bGwsbnVsbCxiKX0sZmIubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFUsIj0nJDEnXSIpLCEoIWMubWF0Y2hlc1NlbGVjdG9yfHwhcHx8ciYmci50ZXN0KGIpfHxxJiZxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBmYihiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxmYi5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGZiLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZFLmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxmYi5lcnJvcj1mdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYSl9LGZiLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZD1bXSxlPTAsZj0wO2lmKGw9IWMuZGV0ZWN0RHVwbGljYXRlcyxrPSFjLnNvcnRTdGFibGUmJmEuc2xpY2UoMCksYS5zb3J0KEIpLGwpe3doaWxlKGI9YVtmKytdKWI9PT1hW2ZdJiYoZT1kLnB1c2goZikpO3doaWxlKGUtLSlhLnNwbGljZShkW2VdLDEpfXJldHVybiBrPW51bGwsYX0sZT1mYi5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoInN0cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz1lKGEpfWVsc2UgaWYoMz09PWZ8fDQ9PT1mKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKGI9YVtkKytdKWMrPWUoYik7cmV0dXJuIGN9LGQ9ZmIuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86aGIsbWF0Y2g6WCxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKGNiLGRiKSxhWzNdPShhWzNdfHxhWzRdfHxhWzVdfHwiIikucmVwbGFjZShjYixkYiksIn49Ij09PWFbMl0mJihhWzNdPSIgIithWzNdKyIgIiksYS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1hWzFdLnNsaWNlKDAsMyk/KGFbM118fGZiLmVycm9yKGFbMF0pLGFbNF09KyhhWzRdP2FbNV0rKGFbNl18fDEpOjIqKCJldmVuIj09PWFbM118fCJvZGQiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fCJvZGQiPT09YVszXSkpOmFbM10mJmZiLmVycm9yKGFbMF0pLGF9LFBTRVVETzpmdW5jdGlvbihhKXt2YXIgYixjPSFhWzZdJiZhWzJdO3JldHVybiBYLkNISUxELnRlc3QoYVswXSk/bnVsbDooYVszXT9hWzJdPWFbNF18fGFbNV18fCIiOmMmJlYudGVzdChjKSYmKGI9ZyhjLCEwKSkmJihiPWMuaW5kZXhPZigiKSIsYy5sZW5ndGgtYiktYy5sZW5ndGgpJiYoYVswXT1hWzBdLnNsaWNlKDAsYiksYVsyXT1jLnNsaWNlKDAsYikpLGEuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoY2IsZGIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09YT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn19LENMQVNTOmZ1bmN0aW9uKGEpe3ZhciBiPXlbYSsiICJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKCIoXnwiK00rIikiK2ErIigiK00rInwkKSIpKSYmeShhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmluZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fHR5cGVvZiBhLmdldEF0dHJpYnV0ZSE9PUMmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWZiLmF0dHIoZCxhKTtyZXR1cm4gbnVsbD09ZT8iIT0iPT09YjpiPyhlKz0iIiwiPSI9PT1iP2U9PT1jOiIhPSI9PT1iP2UhPT1jOiJePSI9PT1iP2MmJjA9PT1lLmluZGV4T2YoYyk6Iio9Ij09PWI/YyYmZS5pbmRleE9mKGMpPi0xOiIkPSI9PT1iP2MmJmUuc2xpY2UoLWMubGVuZ3RoKT09PWM6In49Ij09PWI/KCIgIitlKyIgIikuaW5kZXhPZihjKT4tMToifD0iPT09Yj9lPT09Y3x8ZS5zbGljZSgwLGMubGVuZ3RoKzEpPT09YysiLSI6ITEpOiEwfX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0ibnRoIiE9PWEuc2xpY2UoMCwzKSxnPSJsYXN0IiE9PWEuc2xpY2UoLTQpLGg9Im9mLXR5cGUiPT09YjtyZXR1cm4gMT09PWQmJjA9PT1lP2Z1bmN0aW9uKGEpe3JldHVybiEhYS5wYXJlbnROb2RlfTpmdW5jdGlvbihiLGMsaSl7dmFyIGosayxsLG0sbixvLHA9ZiE9PWc/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixxPWIucGFyZW50Tm9kZSxyPWgmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzPSFpJiYhaDtpZihxKXtpZihmKXt3aGlsZShwKXtsPWI7d2hpbGUobD1sW3BdKWlmKGg/bC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09cjoxPT09bC5ub2RlVHlwZSlyZXR1cm4hMTtvPXA9Im9ubHkiPT09YSYmIW8mJiJuZXh0U2libGluZyJ9cmV0dXJuITB9aWYobz1bZz9xLmZpcnN0Q2hpbGQ6cS5sYXN0Q2hpbGRdLGcmJnMpe2s9cVt1XXx8KHFbdV09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSxtPWpbMF09PT13JiZqWzJdLGw9biYmcS5jaGlsZE5vZGVzW25dO3doaWxlKGw9KytuJiZsJiZsW3BdfHwobT1uPTApfHxvLnBvcCgpKWlmKDE9PT1sLm5vZGVUeXBlJiYrK20mJmw9PT1iKXtrW2FdPVt3LG4sbV07YnJlYWt9fWVsc2UgaWYocyYmKGo9KGJbdV18fChiW3VdPXt9KSlbYV0pJiZqWzBdPT09dyltPWpbMV07ZWxzZSB3aGlsZShsPSsrbiYmbCYmbFtwXXx8KG09bj0wKXx8by5wb3AoKSlpZigoaD9sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1sLm5vZGVUeXBlKSYmKyttJiYocyYmKChsW3VdfHwobFt1XT17fSkpW2FdPVt3LG1dKSxsPT09YikpYnJlYWs7cmV0dXJuIG0tPWUsbT09PWR8fG0lZD09PTAmJm0vZD49MH19fSxQU0VVRE86ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPWQucHNldWRvc1thXXx8ZC5zZXRGaWx0ZXJzW2EudG9Mb3dlckNhc2UoKV18fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrYSk7cmV0dXJuIGVbdV0/ZShiKTplLmxlbmd0aD4xPyhjPVthLGEsIiIsYl0sZC5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGEudG9Mb3dlckNhc2UoKSk/aGIoZnVuY3Rpb24oYSxjKXt2YXIgZCxmPWUoYSxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSlkPUsuY2FsbChhLGZbZ10pLGFbZF09IShjW2RdPWZbZ10pfSk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwwLGMpfSk6ZX19LHBzZXVkb3M6e25vdDpoYihmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGQ9aChhLnJlcGxhY2UoUiwiJDEiKSk7cmV0dXJuIGRbdV0/aGIoZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZz1kKGEsbnVsbCxlLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYlswXT1hLGQoYixudWxsLGYsYyksIWMucG9wKCl9fSksaGFzOmhiKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZmIoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczpoYihmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuKGIudGV4dENvbnRlbnR8fGIuaW5uZXJUZXh0fHxlKGIpKS5pbmRleE9mKGEpPi0xfX0pLGxhbmc6aGIoZnVuY3Rpb24oYSl7cmV0dXJuIFcudGVzdChhfHwiIil8fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2EpLGE9YS5yZXBsYWNlKGNiLGRiKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKGIpe3ZhciBjO2RvIGlmKGM9cD9iLmxhbmc6Yi5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fGIuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuIGM9Yy50b0xvd2VyQ2FzZSgpLGM9PT1hfHwwPT09Yy5pbmRleE9mKGErIi0iKTt3aGlsZSgoYj1iLnBhcmVudE5vZGUpJiYxPT09Yi5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGIpe3ZhciBjPWEubG9jYXRpb24mJmEubG9jYXRpb24uaGFzaDtyZXR1cm4gYyYmYy5zbGljZSgxKT09PWIuaWR9LHJvb3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1vfSxmb2N1czpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW4uYWN0aXZlRWxlbWVudCYmKCFuLmhhc0ZvY3VzfHxuLmhhc0ZvY3VzKCkpJiYhIShhLnR5cGV8fGEuaHJlZnx8fmEudGFiSW5kZXgpfSxlbmFibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITF9LGRpc2FibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITB9LGNoZWNrZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYhIWEuY2hlY2tlZHx8Im9wdGlvbiI9PT1iJiYhIWEuc2VsZWN0ZWR9LHNlbGVjdGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LGEuc2VsZWN0ZWQ9PT0hMH0sZW1wdHk6ZnVuY3Rpb24oYSl7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWlmKGEubm9kZVR5cGU8NilyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKGEpe3JldHVybiFkLnBzZXVkb3MuZW1wdHkoYSl9LGhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gWi50ZXN0KGEubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihhKXtyZXR1cm4gWS50ZXN0KGEubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYiYnV0dG9uIj09PWEudHlwZXx8ImJ1dHRvbiI9PT1ifSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiJpbnB1dCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJiJ0ZXh0Ij09PWEudHlwZSYmKG51bGw9PShiPWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1iLnRvTG93ZXJDYXNlKCkpfSxmaXJzdDpuYihmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bmIoZnVuY3Rpb24oYSxiKXtyZXR1cm5bYi0xXX0pLGVxOm5iKGZ1bmN0aW9uKGEsYixjKXtyZXR1cm5bMD5jP2MrYjpjXX0pLGV2ZW46bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxvZGQ6bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MTtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxsdDpuYihmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzstLWQ+PTA7KWEucHVzaChkKTtyZXR1cm4gYX0pLGd0Om5iKGZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MD5jP2MrYjpjOysrZDxiOylhLnB1c2goZCk7cmV0dXJuIGF9KX19LGQucHNldWRvcy5udGg9ZC5wc2V1ZG9zLmVxO2ZvcihiIGlue3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KWQucHNldWRvc1tiXT1sYihiKTtmb3IoYiBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KWQucHNldWRvc1tiXT1tYihiKTtmdW5jdGlvbiBwYigpe31wYi5wcm90b3R5cGU9ZC5maWx0ZXJzPWQucHNldWRvcyxkLnNldEZpbHRlcnM9bmV3IHBiLGc9ZmIudG9rZW5pemU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxoLGksaixrPXpbYSsiICJdO2lmKGspcmV0dXJuIGI/MDprLnNsaWNlKDApO2g9YSxpPVtdLGo9ZC5wcmVGaWx0ZXI7d2hpbGUoaCl7KCFjfHwoZT1TLmV4ZWMoaCkpKSYmKGUmJihoPWguc2xpY2UoZVswXS5sZW5ndGgpfHxoKSxpLnB1c2goZj1bXSkpLGM9ITEsKGU9VC5leGVjKGgpKSYmKGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmVbMF0ucmVwbGFjZShSLCIgIil9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtmb3IoZyBpbiBkLmZpbHRlcikhKGU9WFtnXS5leGVjKGgpKXx8altnXSYmIShlPWpbZ10oZSkpfHwoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZyxtYXRjaGVzOmV9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtpZighYylicmVha31yZXR1cm4gYj9oLmxlbmd0aDpoP2ZiLmVycm9yKGEpOnooYSxpKS5zbGljZSgwKX07ZnVuY3Rpb24gcWIoYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aCxkPSIiO2M+YjtiKyspZCs9YVtiXS52YWx1ZTtyZXR1cm4gZH1mdW5jdGlvbiByYihhLGIsYyl7dmFyIGQ9Yi5kaXIsZT1jJiYicGFyZW50Tm9kZSI9PT1kLGY9eCsrO3JldHVybiBiLmZpcnN0P2Z1bmN0aW9uKGIsYyxmKXt3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpcmV0dXJuIGEoYixjLGYpfTpmdW5jdGlvbihiLGMsZyl7dmFyIGgsaSxqPVt3LGZdO2lmKGcpe3doaWxlKGI9YltkXSlpZigoMT09PWIubm9kZVR5cGV8fGUpJiZhKGIsYyxnKSlyZXR1cm4hMH1lbHNlIHdoaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSl7aWYoaT1iW3VdfHwoYlt1XT17fSksKGg9aVtkXSkmJmhbMF09PT13JiZoWzFdPT09ZilyZXR1cm4galsyXT1oWzJdO2lmKGlbZF09aixqWzJdPWEoYixjLGcpKXJldHVybiEwfX19ZnVuY3Rpb24gc2IoYSl7cmV0dXJuIGEubGVuZ3RoPjE/ZnVuY3Rpb24oYixjLGQpe3ZhciBlPWEubGVuZ3RoO3doaWxlKGUtLSlpZighYVtlXShiLGMsZCkpcmV0dXJuITE7cmV0dXJuITB9OmFbMF19ZnVuY3Rpb24gdGIoYSxiLGMpe2Zvcih2YXIgZD0wLGU9Yi5sZW5ndGg7ZT5kO2QrKylmYihhLGJbZF0sYyk7cmV0dXJuIGN9ZnVuY3Rpb24gdWIoYSxiLGMsZCxlKXtmb3IodmFyIGYsZz1bXSxoPTAsaT1hLmxlbmd0aCxqPW51bGwhPWI7aT5oO2grKykoZj1hW2hdKSYmKCFjfHxjKGYsZCxlKSkmJihnLnB1c2goZiksaiYmYi5wdXNoKGgpKTtyZXR1cm4gZ31mdW5jdGlvbiB2YihhLGIsYyxkLGUsZil7cmV0dXJuIGQmJiFkW3VdJiYoZD12YihkKSksZSYmIWVbdV0mJihlPXZiKGUsZikpLGhiKGZ1bmN0aW9uKGYsZyxoLGkpe3ZhciBqLGssbCxtPVtdLG49W10sbz1nLmxlbmd0aCxwPWZ8fHRiKGJ8fCIqIixoLm5vZGVUeXBlP1toXTpoLFtdKSxxPSFhfHwhZiYmYj9wOnViKHAsbSxhLGgsaSkscj1jP2V8fChmP2E6b3x8ZCk/W106ZzpxO2lmKGMmJmMocSxyLGgsaSksZCl7aj11YihyLG4pLGQoaixbXSxoLGkpLGs9ai5sZW5ndGg7d2hpbGUoay0tKShsPWpba10pJiYocltuW2tdXT0hKHFbbltrXV09bCkpfWlmKGYpe2lmKGV8fGEpe2lmKGUpe2o9W10saz1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJmoucHVzaChxW2tdPWwpO2UobnVsbCxyPVtdLGosaSl9az1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJihqPWU/Sy5jYWxsKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj11YihyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6SS5hcHBseShnLHIpfSl9ZnVuY3Rpb24gd2IoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz1yYihmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9cmIoZnVuY3Rpb24oYSl7cmV0dXJuIEsuY2FsbChiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7cmV0dXJuIWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSl9XTtmPmk7aSsrKWlmKGM9ZC5yZWxhdGl2ZVthW2ldLnR5cGVdKW09W3JiKHNiKG0pLGMpXTtlbHNle2lmKGM9ZC5maWx0ZXJbYVtpXS50eXBlXS5hcHBseShudWxsLGFbaV0ubWF0Y2hlcyksY1t1XSl7Zm9yKGU9KytpO2Y+ZTtlKyspaWYoZC5yZWxhdGl2ZVthW2VdLnR5cGVdKWJyZWFrO3JldHVybiB2YihpPjEmJnNiKG0pLGk+MSYmcWIoYS5zbGljZSgwLGktMSkuY29uY2F0KHt2YWx1ZToiICI9PT1hW2ktMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZShSLCIkMSIpLGMsZT5pJiZ3YihhLnNsaWNlKGksZSkpLGY+ZSYmd2IoYT1hLnNsaWNlKGUpKSxmPmUmJnFiKGEpKX1tLnB1c2goYyl9cmV0dXJuIHNiKG0pfWZ1bmN0aW9uIHhiKGEsYil7dmFyIGM9Yi5sZW5ndGg+MCxlPWEubGVuZ3RoPjAsZj1mdW5jdGlvbihmLGcsaCxpLGspe3ZhciBsLG0sbyxwPTAscT0iMCIscj1mJiZbXSxzPVtdLHQ9aix1PWZ8fGUmJmQuZmluZC5UQUcoIioiLGspLHY9dys9bnVsbD09dD8xOk1hdGgucmFuZG9tKCl8fC4xLHg9dS5sZW5ndGg7Zm9yKGsmJihqPWchPT1uJiZnKTtxIT09eCYmbnVsbCE9KGw9dVtxXSk7cSsrKXtpZihlJiZsKXttPTA7d2hpbGUobz1hW20rK10paWYobyhsLGcsaCkpe2kucHVzaChsKTticmVha31rJiYodz12KX1jJiYoKGw9IW8mJmwpJiZwLS0sZiYmci5wdXNoKGwpKX1pZihwKz1xLGMmJnEhPT1wKXttPTA7d2hpbGUobz1iW20rK10pbyhyLHMsZyxoKTtpZihmKXtpZihwPjApd2hpbGUocS0tKXJbcV18fHNbcV18fChzW3FdPUcuY2FsbChpKSk7cz11YihzKX1JLmFwcGx5KGkscyksayYmIWYmJnMubGVuZ3RoPjAmJnArYi5sZW5ndGg+MSYmZmIudW5pcXVlU29ydChpKX1yZXR1cm4gayYmKHc9dixqPXQpLHJ9O3JldHVybiBjP2hiKGYpOmZ9cmV0dXJuIGg9ZmIuY29tcGlsZT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1bXSxmPUFbYSsiICJdO2lmKCFmKXtifHwoYj1nKGEpKSxjPWIubGVuZ3RoO3doaWxlKGMtLSlmPXdiKGJbY10pLGZbdV0/ZC5wdXNoKGYpOmUucHVzaChmKTtmPUEoYSx4YihlLGQpKSxmLnNlbGVjdG9yPWF9cmV0dXJuIGZ9LGk9ZmIuc2VsZWN0PWZ1bmN0aW9uKGEsYixlLGYpe3ZhciBpLGosayxsLG0sbj0iZnVuY3Rpb24iPT10eXBlb2YgYSYmYSxvPSFmJiZnKGE9bi5zZWxlY3Rvcnx8YSk7aWYoZT1lfHxbXSwxPT09by5sZW5ndGgpe2lmKGo9b1swXT1vWzBdLnNsaWNlKDApLGoubGVuZ3RoPjImJiJJRCI9PT0oaz1qWzBdKS50eXBlJiZjLmdldEJ5SWQmJjk9PT1iLm5vZGVUeXBlJiZwJiZkLnJlbGF0aXZlW2pbMV0udHlwZV0pe2lmKGI9KGQuZmluZC5JRChrLm1hdGNoZXNbMF0ucmVwbGFjZShjYixkYiksYil8fFtdKVswXSwhYilyZXR1cm4gZTtuJiYoYj1iLnBhcmVudE5vZGUpLGE9YS5zbGljZShqLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1pPVgubmVlZHNDb250ZXh0LnRlc3QoYSk/MDpqLmxlbmd0aDt3aGlsZShpLS0pe2lmKGs9altpXSxkLnJlbGF0aXZlW2w9ay50eXBlXSlicmVhaztpZigobT1kLmZpbmRbbF0pJiYoZj1tKGsubWF0Y2hlc1swXS5yZXBsYWNlKGNiLGRiKSxhYi50ZXN0KGpbMF0udHlwZSkmJm9iKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoai5zcGxpY2UoaSwxKSxhPWYubGVuZ3RoJiZxYihqKSwhYSlyZXR1cm4gSS5hcHBseShlLGYpLGU7YnJlYWt9fX1yZXR1cm4obnx8aChhLG8pKShmLGIsIXAsZSxhYi50ZXN0KGEpJiZvYihiLnBhcmVudE5vZGUpfHxiKSxlfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImRpdiIpKX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGpiKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGlucHV0Lz4iLGEuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGpiKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxqYihMLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6YVtiXT09PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZkLnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxmYn0oYSk7bS5maW5kPXMsbS5leHByPXMuc2VsZWN0b3JzLG0uZXhwclsiOiJdPW0uZXhwci5wc2V1ZG9zLG0udW5pcXVlPXMudW5pcXVlU29ydCxtLnRleHQ9cy5nZXRUZXh0LG0uaXNYTUxEb2M9cy5pc1hNTCxtLmNvbnRhaW5zPXMuY29udGFpbnM7dmFyIHQ9bS5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx1PS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPnwpJC8sdj0vXi5bXjojXFtcLixdKiQvO2Z1bmN0aW9uIHcoYSxiLGMpe2lmKG0uaXNGdW5jdGlvbihiKSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4hIWIuY2FsbChhLGQsYSkhPT1jfSk7aWYoYi5ub2RlVHlwZSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1iIT09Y30pO2lmKCJzdHJpbmciPT10eXBlb2YgYil7aWYodi50ZXN0KGIpKXJldHVybiBtLmZpbHRlcihiLGEsYyk7Yj1tLmZpbHRlcihiLGEpfXJldHVybiBtLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gbS5pbkFycmF5KGEsYik+PTAhPT1jfSl9bS5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWJbMF07cmV0dXJuIGMmJihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmMT09PWQubm9kZVR5cGU/bS5maW5kLm1hdGNoZXNTZWxlY3RvcihkLGEpP1tkXTpbXTptLmZpbmQubWF0Y2hlcyhhLG0uZ3JlcChiLGZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZX0pKX0sbS5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXSxkPXRoaXMsZT1kLmxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKG0oYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtlPmI7YisrKWlmKG0uY29udGFpbnMoZFtiXSx0aGlzKSlyZXR1cm4hMH0pKTtmb3IoYj0wO2U+YjtiKyspbS5maW5kKGEsZFtiXSxjKTtyZXR1cm4gYz10aGlzLnB1c2hTdGFjayhlPjE/bS51bmlxdWUoYyk6YyksYy5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3IrIiAiK2E6YSxjfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIXcodGhpcywic3RyaW5nIj09dHlwZW9mIGEmJnQudGVzdChhKT9tKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIHgseT1hLmRvY3VtZW50LHo9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0qKSkkLyxBPW0uZm4uaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYoIWEpcmV0dXJuIHRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBhKXtpZihjPSI8Ij09PWEuY2hhckF0KDApJiYiPiI9PT1hLmNoYXJBdChhLmxlbmd0aC0xKSYmYS5sZW5ndGg+PTM/W251bGwsYSxudWxsXTp6LmV4ZWMoYSksIWN8fCFjWzFdJiZiKXJldHVybiFifHxiLmpxdWVyeT8oYnx8eCkuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGIpLmZpbmQoYSk7aWYoY1sxXSl7aWYoYj1iIGluc3RhbmNlb2YgbT9iWzBdOmIsbS5tZXJnZSh0aGlzLG0ucGFyc2VIVE1MKGNbMV0sYiYmYi5ub2RlVHlwZT9iLm93bmVyRG9jdW1lbnR8fGI6eSwhMCkpLHUudGVzdChjWzFdKSYmbS5pc1BsYWluT2JqZWN0KGIpKWZvcihjIGluIGIpbS5pc0Z1bmN0aW9uKHRoaXNbY10pP3RoaXNbY10oYltjXSk6dGhpcy5hdHRyKGMsYltjXSk7cmV0dXJuIHRoaXN9aWYoZD15LmdldEVsZW1lbnRCeUlkKGNbMl0pLGQmJmQucGFyZW50Tm9kZSl7aWYoZC5pZCE9PWNbMl0pcmV0dXJuIHguZmluZChhKTt0aGlzLmxlbmd0aD0xLHRoaXNbMF09ZH1yZXR1cm4gdGhpcy5jb250ZXh0PXksdGhpcy5zZWxlY3Rvcj1hLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU/KHRoaXMuY29udGV4dD10aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzKTptLmlzRnVuY3Rpb24oYSk/InVuZGVmaW5lZCIhPXR5cGVvZiB4LnJlYWR5P3gucmVhZHkoYSk6YShtKToodm9pZCAwIT09YS5zZWxlY3RvciYmKHRoaXMuc2VsZWN0b3I9YS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9YS5jb250ZXh0KSxtLm1ha2VBcnJheShhLHRoaXMpKX07QS5wcm90b3R5cGU9bS5mbix4PW0oeSk7dmFyIEI9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sQz17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTttLmV4dGVuZCh7ZGlyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPWFbYl07d2hpbGUoZSYmOSE9PWUubm9kZVR5cGUmJih2b2lkIDA9PT1jfHwxIT09ZS5ub2RlVHlwZXx8IW0oZSkuaXMoYykpKTE9PT1lLm5vZGVUeXBlJiZkLnB1c2goZSksZT1lW2JdO3JldHVybiBkfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfX0pLG0uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGIsYz1tKGEsdGhpcyksZD1jLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2Q+YjtiKyspaWYobS5jb250YWlucyh0aGlzLGNbYl0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9dGhpcy5sZW5ndGgsZj1bXSxnPXQudGVzdChhKXx8InN0cmluZyIhPXR5cGVvZiBhP20oYSxifHx0aGlzLmNvbnRleHQpOjA7ZT5kO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUmJm0uZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5ndGg+MT9tLnVuaXF1ZShmKTpmKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP20uaW5BcnJheSh0aGlzWzBdLG0oYSkpOm0uaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS51bmlxdWUobS5tZXJnZSh0aGlzLmdldCgpLG0oYSxiKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09YT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihhKSl9fSk7ZnVuY3Rpb24gRChhLGIpe2RvIGE9YVtiXTt3aGlsZShhJiYxIT09YS5ub2RlVHlwZSk7cmV0dXJuIGF9bS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO3JldHVybiBiJiYxMSE9PWIubm9kZVR5cGU/YjpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBtLmRpcihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBEKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEQoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBtLmRpcihhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDptLm1lcmdlKFtdLGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe20uZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1tLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlwZW9mIGQmJihlPW0uZmlsdGVyKGQsZSkpLHRoaXMubGVuZ3RoPjEmJihDW2FdfHwoZT1tLnVuaXF1ZShlKSksQi50ZXN0KGEpJiYoZT1lLnJldmVyc2UoKSkpLHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBFPS9cUysvZyxGPXt9O2Z1bmN0aW9uIEcoYSl7dmFyIGI9RlthXT17fTtyZXR1cm4gbS5lYWNoKGEubWF0Y2goRSl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9bS5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/RlthXXx8RyhhKTptLmV4dGVuZCh7fSxhKTt2YXIgYixjLGQsZSxmLGcsaD1bXSxpPSFhLm9uY2UmJltdLGo9ZnVuY3Rpb24obCl7Zm9yKGM9YS5tZW1vcnkmJmwsZD0hMCxmPWd8fDAsZz0wLGU9aC5sZW5ndGgsYj0hMDtoJiZlPmY7ZisrKWlmKGhbZl0uYXBwbHkobFswXSxsWzFdKT09PSExJiZhLnN0b3BPbkZhbHNlKXtjPSExO2JyZWFrfWI9ITEsaCYmKGk/aS5sZW5ndGgmJmooaS5zaGlmdCgpKTpjP2g9W106ay5kaXNhYmxlKCkpfSxrPXthZGQ6ZnVuY3Rpb24oKXtpZihoKXt2YXIgZD1oLmxlbmd0aDshZnVuY3Rpb24gZihiKXttLmVhY2goYixmdW5jdGlvbihiLGMpe3ZhciBkPW0udHlwZShjKTsiZnVuY3Rpb24iPT09ZD9hLnVuaXF1ZSYmay5oYXMoYyl8fGgucHVzaChjKTpjJiZjLmxlbmd0aCYmInN0cmluZyIhPT1kJiZmKGMpfSl9KGFyZ3VtZW50cyksYj9lPWgubGVuZ3RoOmMmJihnPWQsaihjKSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBoJiZtLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGEsYyl7dmFyIGQ7d2hpbGUoKGQ9bS5pbkFycmF5KGMsaCxkKSk+LTEpaC5zcGxpY2UoZCwxKSxiJiYoZT49ZCYmZS0tLGY+PWQmJmYtLSl9KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bS5pbkFycmF5KGEsaCk+LTE6ISghaHx8IWgubGVuZ3RoKX0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gaD1bXSxlPTAsdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBoPWk9Yz12b2lkIDAsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haH0sbG9jazpmdW5jdGlvbigpe3JldHVybiBpPXZvaWQgMCxjfHxrLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haX0sZmlyZVdpdGg6ZnVuY3Rpb24oYSxjKXtyZXR1cm4haHx8ZCYmIWl8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sYj9pLnB1c2goYyk6aihjKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBrLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBrfSxtLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRvbmUiLG0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsbS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbS5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBtLkRlZmVycmVkKGZ1bmN0aW9uKGMpe20uZWFjaChiLGZ1bmN0aW9uKGIsZil7dmFyIGc9bS5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1nJiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZtLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5kb25lKGMucmVzb2x2ZSkuZmFpbChjLnJlamVjdCkucHJvZ3Jlc3MoYy5ub3RpZnkpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJvbWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP20uZXh0ZW5kKGEsZCk6ZH19LGU9e307cmV0dXJuIGQucGlwZT1kLnRoZW4sbS5lYWNoKGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNhbGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1kLmNhbGwoYXJndW1lbnRzKSxlPWMubGVuZ3RoLGY9MSE9PWV8fGEmJm0uaXNGdW5jdGlvbihhLnByb21pc2UpP2U6MCxnPTE9PT1mP2E6bS5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihlKXtiW2FdPXRoaXMsY1thXT1hcmd1bWVudHMubGVuZ3RoPjE/ZC5jYWxsKGFyZ3VtZW50cyk6ZSxjPT09aT9nLm5vdGlmeVdpdGgoYixjKTotLWZ8fGcucmVzb2x2ZVdpdGgoYixjKX19LGksaixrO2lmKGU+MSlmb3IoaT1uZXcgQXJyYXkoZSksaj1uZXcgQXJyYXkoZSksaz1uZXcgQXJyYXkoZSk7ZT5iO2IrKyljW2JdJiZtLmlzRnVuY3Rpb24oY1tiXS5wcm9taXNlKT9jW2JdLnByb21pc2UoKS5kb25lKGgoYixrLGMpKS5mYWlsKGcucmVqZWN0KS5wcm9ncmVzcyhoKGIsaixpKSk6LS1mO3JldHVybiBmfHxnLnJlc29sdmVXaXRoKGssYyksZy5wcm9taXNlKCl9fSk7dmFyIEg7bS5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gbS5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxtLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9tLnJlYWR5V2FpdCsrOm0ucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXtpZihhPT09ITA/IS0tbS5yZWFkeVdhaXQ6IW0uaXNSZWFkeSl7aWYoIXkuYm9keSlyZXR1cm4gc2V0VGltZW91dChtLnJlYWR5KTttLmlzUmVhZHk9ITAsYSE9PSEwJiYtLW0ucmVhZHlXYWl0PjB8fChILnJlc29sdmVXaXRoKHksW21dKSxtLmZuLnRyaWdnZXJIYW5kbGVyJiYobSh5KS50cmlnZ2VySGFuZGxlcigicmVhZHkiKSxtKHkpLm9mZigicmVhZHkiKSkpfX19KTtmdW5jdGlvbiBJKCl7eS5hZGRFdmVudExpc3RlbmVyPyh5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEosITEpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsSiwhMSkpOih5LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEopLGEuZGV0YWNoRXZlbnQoIm9ubG9hZCIsSikpfWZ1bmN0aW9uIEooKXsoeS5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1ldmVudC50eXBlfHwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKSYmKEkoKSxtLnJlYWR5KCkpfW0ucmVhZHkucHJvbWlzZT1mdW5jdGlvbihiKXtpZighSClpZihIPW0uRGVmZXJyZWQoKSwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKXNldFRpbWVvdXQobS5yZWFkeSk7ZWxzZSBpZih5LmFkZEV2ZW50TGlzdGVuZXIpeS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixKLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEosITEpO2Vsc2V7eS5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixKKSxhLmF0dGFjaEV2ZW50KCJvbmxvYWQiLEopO3ZhciBjPSExO3RyeXtjPW51bGw9PWEuZnJhbWVFbGVtZW50JiZ5LmRvY3VtZW50RWxlbWVudH1jYXRjaChkKXt9YyYmYy5kb1Njcm9sbCYmIWZ1bmN0aW9uIGUoKXtpZighbS5pc1JlYWR5KXt0cnl7Yy5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKGEpe3JldHVybiBzZXRUaW1lb3V0KGUsNTApfUkoKSxtLnJlYWR5KCl9fSgpfXJldHVybiBILnByb21pc2UoYil9O3ZhciBLPSJ1bmRlZmluZWQiLEw7Zm9yKEwgaW4gbShrKSlicmVhaztrLm93bkxhc3Q9IjAiIT09TCxrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsbShmdW5jdGlvbigpe3ZhciBhLGIsYyxkO2M9eS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGUmJihiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6aW5saW5lO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGsuaW5saW5lQmxvY2tOZWVkc0xheW91dD1hPTM9PT1iLm9mZnNldFdpZHRoLGEmJihjLnN0eWxlLnpvb209MSkpLGMucmVtb3ZlQ2hpbGQoZCkpfSksZnVuY3Rpb24oKXt2YXIgYT15LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG51bGw9PWsuZGVsZXRlRXhwYW5kbyl7ay5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2suZGVsZXRlRXhwYW5kbz0hMX19YT1udWxsfSgpLG0uYWNjZXB0RGF0YT1mdW5jdGlvbihhKXt2YXIgYj1tLm5vRGF0YVsoYS5ub2RlTmFtZSsiICIpLnRvTG93ZXJDYXNlKCldLGM9K2Eubm9kZVR5cGV8fDE7cmV0dXJuIDEhPT1jJiY5IT09Yz8hMTohYnx8YiE9PSEwJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpPT09Yn07dmFyIE09L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxOPS8oW0EtWl0pL2c7ZnVuY3Rpb24gTyhhLGIsYyl7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpe3ZhciBkPSJkYXRhLSIrYi5yZXBsYWNlKE4sIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpNLnRlc3QoYyk/bS5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9bS5kYXRhKGEsYixjKX1lbHNlIGM9dm9pZCAwfXJldHVybiBjfWZ1bmN0aW9uIFAoYSl7dmFyIGI7Zm9yKGIgaW4gYSlpZigoImRhdGEiIT09Ynx8IW0uaXNFbXB0eU9iamVjdChhW2JdKSkmJiJ0b0pTT04iIT09YilyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBRKGEsYixkLGUpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGYsZyxoPW0uZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP20uY2FjaGU6YSxrPWk/YVtoXTphW2hdJiZoOwppZihrJiZqW2tdJiYoZXx8altrXS5kYXRhKXx8dm9pZCAwIT09ZHx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBrfHwoaz1pP2FbaF09Yy5wb3AoKXx8bS5ndWlkKys6aCksaltrXXx8KGpba109aT97fTp7dG9KU09OOm0ubm9vcH0pLCgib2JqZWN0Ij09dHlwZW9mIGJ8fCJmdW5jdGlvbiI9PXR5cGVvZiBiKSYmKGU/altrXT1tLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1tLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbS5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbS5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFIoYSxiLGMpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGQsZSxmPWEubm9kZVR5cGUsZz1mP20uY2FjaGU6YSxoPWY/YVttLmV4cGFuZG9dOm0uZXhwYW5kbztpZihnW2hdKXtpZihiJiYoZD1jP2dbaF06Z1toXS5kYXRhKSl7bS5pc0FycmF5KGIpP2I9Yi5jb25jYXQobS5tYXAoYixtLmNhbWVsQ2FzZSkpOmIgaW4gZD9iPVtiXTooYj1tLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgiICIpKSxlPWIubGVuZ3RoO3doaWxlKGUtLSlkZWxldGUgZFtiW2VdXTtpZihjPyFQKGQpOiFtLmlzRW1wdHlPYmplY3QoZCkpcmV0dXJufShjfHwoZGVsZXRlIGdbaF0uZGF0YSxQKGdbaF0pKSkmJihmP20uY2xlYW5EYXRhKFthXSwhMCk6ay5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxldGUgZ1toXTpnW2hdPW51bGwpfX19bS5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP20uY2FjaGVbYVttLmV4cGFuZG9dXTphW20uZXhwYW5kb10sISFhJiYhUChhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFIoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBRKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUihhLGIsITApfX0pLG0uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bS5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbS5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW0uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLE8oZixkLGVbZF0pKSk7bS5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhLGIpfSk6Zj9PKGYsYSxtLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG0uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1tLl9kYXRhKGEsYiksYyYmKCFkfHxtLmlzQXJyYXkoYyk/ZD1tLl9kYXRhKGEsYixtLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW0ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bS5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXttLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbS5fZGF0YShhLGMpfHxtLl9kYXRhKGEsYyx7ZW1wdHk6bS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bS5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbS5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxtLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bS5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1tLnF1ZXVlKHRoaXMsYSxiKTttLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm0uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1tLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW0uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFyIFM9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVD1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW0uY3NzKGEsImRpc3BsYXkiKXx8IW0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxWPW0uYWNjZXNzPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1tLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYyltLmFjY2VzcyhhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxtLmlzRnVuY3Rpb24oZCl8fChnPSEwKSxqJiYoZz8oYi5jYWxsKGEsZCksYj1udWxsKTooaj1iLGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwobShhKSxjKX0pKSxiKSlmb3IoO2k+aDtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hdLGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfSxXPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pOyFmdW5jdGlvbigpe3ZhciBhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYz15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixrLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1iLmZpcnN0Q2hpbGQubm9kZVR5cGUsay50Ym9keT0hYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsay5odG1sU2VyaWFsaXplPSEhYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxrLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09eS5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxhLnR5cGU9ImNoZWNrYm94IixhLmNoZWNrZWQ9ITAsYy5hcHBlbmRDaGlsZChhKSxrLmFwcGVuZENoZWNrZWQ9YS5jaGVja2VkLGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixrLm5vQ2xvbmVDaGVja2VkPSEhYi5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYy5hcHBlbmRDaGlsZChiKSxiLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J3JhZGlvJyBjaGVja2VkPSdjaGVja2VkJyBuYW1lPSd0Jy8+IixrLmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsay5ub0Nsb25lRXZlbnQ9ITAsYi5hdHRhY2hFdmVudCYmKGIuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uKCl7ay5ub0Nsb25lRXZlbnQ9ITF9KSxiLmNsb25lTm9kZSghMCkuY2xpY2soKSksbnVsbD09ay5kZWxldGVFeHBhbmRvKXtrLmRlbGV0ZUV4cGFuZG89ITA7dHJ5e2RlbGV0ZSBiLnRlc3R9Y2F0Y2goZCl7ay5kZWxldGVFeHBhbmRvPSExfX19KCksZnVuY3Rpb24oKXt2YXIgYixjLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChrW2IrIkJ1YmJsZXMiXT1jIGluIGEpfHwoZC5zZXRBdHRyaWJ1dGUoYywidCIpLGtbYisiQnViYmxlcyJdPWQuYXR0cmlidXRlc1tjXS5leHBhbmRvPT09ITEpO2Q9bnVsbH0oKTt2YXIgWD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksWT0vXmtleS8sWj0vXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLywkPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxfPS9eKFteLl0qKSg/OlwuKC4rKXwpJC87ZnVuY3Rpb24gYWIoKXtyZXR1cm4hMH1mdW5jdGlvbiBiYigpe3JldHVybiExfWZ1bmN0aW9uIGNiKCl7dHJ5e3JldHVybiB5LmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1tLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbixvLHAscSxyPW0uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW0uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgbT09PUt8fGEmJm0uZXZlbnQudHJpZ2dlcmVkPT09YS50eXBlP3ZvaWQgMDptLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGsuZWxlbSxhcmd1bWVudHMpfSxrLmVsZW09YSksYj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGg9Yi5sZW5ndGg7d2hpbGUoaC0tKWY9Xy5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW0uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm0uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChuPWdbb10pfHwobj1nW29dPVtdLG4uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP24uc3BsaWNlKG4uZGVsZWdhdGVDb3VudCsrLDAsbCk6bi5wdXNoKGwpLG0uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLG8scCxxLHI9bS5oYXNEYXRhKGEpJiZtLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9Xy5leGVjKGJbal0pfHxbXSxvPXE9aFsxXSxwPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyl7bD1tLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGQ/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbj1rW29dfHxbXSxoPWhbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Auam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksaT1mPW4ubGVuZ3RoO3doaWxlKGYtLSlnPW5bZl0sIWUmJnEhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1lc3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChuLnNwbGljZShmLDEpLGcuc2VsZWN0b3ImJm4uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsZykpO2kmJiFuLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLHAsci5oYW5kbGUpIT09ITF8fG0ucmVtb3ZlRXZlbnQoYSxvLHIuaGFuZGxlKSxkZWxldGUga1tvXSl9ZWxzZSBmb3IobyBpbiBrKW0uZXZlbnQucmVtb3ZlKGEsbytiW2pdLGMsZCwhMCk7bS5pc0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHIuaGFuZGxlLG0uX3JlbW92ZURhdGEoYSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihiLGMsZCxlKXt2YXIgZixnLGgsaSxrLGwsbixvPVtkfHx5XSxwPWouY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscT1qLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihoPWw9ZD1kfHx5LDMhPT1kLm5vZGVUeXBlJiY4IT09ZC5ub2RlVHlwZSYmISQudGVzdChwK20uZXZlbnQudHJpZ2dlcmVkKSYmKHAuaW5kZXhPZigiLiIpPj0wJiYocT1wLnNwbGl0KCIuIikscD1xLnNoaWZ0KCkscS5zb3J0KCkpLGc9cC5pbmRleE9mKCI6Iik8MCYmIm9uIitwLGI9YlttLmV4cGFuZG9dP2I6bmV3IG0uRXZlbnQocCwib2JqZWN0Ij09dHlwZW9mIGImJmIpLGIuaXNUcmlnZ2VyPWU/MjozLGIubmFtZXNwYWNlPXEuam9pbigiLiIpLGIubmFtZXNwYWNlX3JlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Euam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1kKSxjPW51bGw9PWM/W2JdOm0ubWFrZUFycmF5KGMsW2JdKSxrPW0uZXZlbnQuc3BlY2lhbFtwXXx8e30sZXx8IWsudHJpZ2dlcnx8ay50cmlnZ2VyLmFwcGx5KGQsYykhPT0hMSkpe2lmKCFlJiYhay5ub0J1YmJsZSYmIW0uaXNXaW5kb3coZCkpe2ZvcihpPWsuZGVsZWdhdGVUeXBlfHxwLCQudGVzdChpK3ApfHwoaD1oLnBhcmVudE5vZGUpO2g7aD1oLnBhcmVudE5vZGUpby5wdXNoKGgpLGw9aDtsPT09KGQub3duZXJEb2N1bWVudHx8eSkmJm8ucHVzaChsLmRlZmF1bHRWaWV3fHxsLnBhcmVudFdpbmRvd3x8YSl9bj0wO3doaWxlKChoPW9bbisrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPW4+MT9pOmsuYmluZFR5cGV8fHAsZj0obS5fZGF0YShoLCJldmVudHMiKXx8e30pW2IudHlwZV0mJm0uX2RhdGEoaCwiaGFuZGxlIiksZiYmZi5hcHBseShoLGMpLGY9ZyYmaFtnXSxmJiZmLmFwcGx5JiZtLmFjY2VwdERhdGEoaCkmJihiLnJlc3VsdD1mLmFwcGx5KGgsYyksYi5yZXN1bHQ9PT0hMSYmYi5wcmV2ZW50RGVmYXVsdCgpKTtpZihiLnR5cGU9cCwhZSYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJighay5fZGVmYXVsdHx8ay5fZGVmYXVsdC5hcHBseShvLnBvcCgpLGMpPT09ITEpJiZtLmFjY2VwdERhdGEoZCkmJmcmJmRbcF0mJiFtLmlzV2luZG93KGQpKXtsPWRbZ10sbCYmKGRbZ109bnVsbCksbS5ldmVudC50cmlnZ2VyZWQ9cDt0cnl7ZFtwXSgpfWNhdGNoKHIpe31tLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbCYmKGRbZ109bCl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1tLmV2ZW50LmZpeChhKTt2YXIgYixjLGUsZixnLGg9W10saT1kLmNhbGwoYXJndW1lbnRzKSxqPShtLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1tLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1tLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGc9MDt3aGlsZSgoZT1mLmhhbmRsZXJzW2crK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKSghYS5uYW1lc3BhY2VfcmV8fGEubmFtZXNwYWNlX3JlLnRlc3QoZS5uYW1lc3BhY2UpKSYmKGEuaGFuZGxlT2JqPWUsYS5kYXRhPWUuZGF0YSxjPSgobS5ldmVudC5zcGVjaWFsW2Uub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxlLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1jJiYoYS5yZXN1bHQ9Yyk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoIWEuYnV0dG9ufHwiY2xpY2siIT09YS50eXBlKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZT1bXSxmPTA7aD5mO2YrKylkPWJbZl0sYz1kLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1lW2NdJiYoZVtjXT1kLm5lZWRzQ29udGV4dD9tKGMsdGhpcykuaW5kZXgoaSk+PTA6bS5maW5kKGMsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxlW2NdJiZlLnB1c2goZCk7ZS5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmV9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW20uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxkLGU9YS50eXBlLGY9YSxnPXRoaXMuZml4SG9va3NbZV07Z3x8KHRoaXMuZml4SG9va3NbZV09Zz1aLnRlc3QoZSk/dGhpcy5tb3VzZUhvb2tzOlkudGVzdChlKT90aGlzLmtleUhvb2tzOnt9KSxkPWcucHJvcHM/dGhpcy5wcm9wcy5jb25jYXQoZy5wcm9wcyk6dGhpcy5wcm9wcyxhPW5ldyBtLkV2ZW50KGYpLGI9ZC5sZW5ndGg7d2hpbGUoYi0tKWM9ZFtiXSxhW2NdPWZbY107cmV0dXJuIGEudGFyZ2V0fHwoYS50YXJnZXQ9Zi5zcmNFbGVtZW50fHx5KSwzPT09YS50YXJnZXQubm9kZVR5cGUmJihhLnRhcmdldD1hLnRhcmdldC5wYXJlbnROb2RlKSxhLm1ldGFLZXk9ISFhLm1ldGFLZXksZy5maWx0ZXI/Zy5maWx0ZXIoYSxmKTphfSxwcm9wczoiYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9Yi5idXR0b24sZz1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihkPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fHksZT1kLmRvY3VtZW50RWxlbWVudCxjPWQuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZSYmZS5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShlJiZlLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGUmJmUuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGUmJmUuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmcmJihhLnJlbGF0ZWRUYXJnZXQ9Zz09PWEudGFyZ2V0P2IudG9FbGVtZW50OmcpLGEud2hpY2h8fHZvaWQgMD09PWZ8fChhLndoaWNoPTEmZj8xOjImZj8zOjQmZj8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09Y2IoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1jYigpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbS5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5leHRlbmQobmV3IG0uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwLG9yaWdpbmFsRXZlbnQ6e319KTtkP20uZXZlbnQudHJpZ2dlcihlLG51bGwsYik6bS5ldmVudC5kaXNwYXRjaC5jYWxsKGIsZSksZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbS5yZW1vdmVFdmVudD15LnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKHR5cGVvZiBhW2RdPT09SyYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbS5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgbS5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/YWI6YmIpOnRoaXMudHlwZT1hLGImJm0uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG0ubm93KCksdm9pZCh0aGlzW20uZXhwYW5kb109ITApKTpuZXcgbS5FdmVudChhLGIpfSxtLkV2ZW50LnByb3RvdHlwZT17aXNEZWZhdWx0UHJldmVudGVkOmJiLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJiLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFiLGEmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG0uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXttLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybighZXx8ZSE9PWQmJiFtLmNvbnRhaW5zKGQsZSkpJiYoYS50eXBlPWYub3JpZ1R5cGUsYz1mLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEudHlwZT1iKSxjfX19KSxrLnN1Ym1pdEJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIG0uZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1tLm5vZGVOYW1lKGIsImlucHV0Iil8fG0ubm9kZU5hbWUoYiwiYnV0dG9uIik/Yi5mb3JtOnZvaWQgMDtjJiYhbS5fZGF0YShjLCJzdWJtaXRCdWJibGVzIikmJihtLmV2ZW50LmFkZChjLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZT0hMH0pLG0uX2RhdGEoYywic3VibWl0QnViYmxlcyIsITApKX0pfSxwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZSYmKGRlbGV0ZSBhLl9zdWJtaXRfYnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZtLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhLCEwKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG0ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbS5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxrLmNoYW5nZUJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBYLnRlc3QodGhpcy5ub2RlTmFtZSk/KCgiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlKSYmKG0uZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyJjaGVja2VkIj09PWEub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITApfSksbS5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdF9jaGFuZ2VkJiYhYS5pc1RyaWdnZXImJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITEpLG0uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKX0pKSwhMSk6dm9pZCBtLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtYLnRlc3QoYi5ub2RlTmFtZSkmJiFtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiKSYmKG0uZXZlbnQuYWRkKGIsImNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXshdGhpcy5wYXJlbnROb2RlfHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8bS5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsYSwhMCl9KSxtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBtLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFYLnRlc3QodGhpcy5ub2RlTmFtZSl9fSksay5mb2N1c2luQnViYmxlc3x8bS5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe20uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxtLmV2ZW50LmZpeChhKSwhMCl9O20uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1tLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbS5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW0uX2RhdGEoZCxiKS0xO2U/bS5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG0uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGc7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWN8fGIsYj12b2lkIDApO2ZvcihmIGluIGEpdGhpcy5vbihmLGIsYyxhW2ZdLGUpO3JldHVybiB0aGlzfWlmKG51bGw9PWMmJm51bGw9PWQ/KGQ9YixjPWI9dm9pZCAwKTpudWxsPT1kJiYoInN0cmluZyI9PXR5cGVvZiBiPyhkPWMsYz12b2lkIDApOihkPWMsYz1iLGI9dm9pZCAwKSksZD09PSExKWQ9YmI7ZWxzZSBpZighZClyZXR1cm4gdGhpcztyZXR1cm4gMT09PWUmJihnPWQsZD1mdW5jdGlvbihhKXtyZXR1cm4gbSgpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZC5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1tLmd1aWQrKykpLHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQuYWRkKHRoaXMsYSxkLGMsYil9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixtKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGI9PT0hMXx8ImZ1bmN0aW9uIj09dHlwZW9mIGIpJiYoYz1iLGI9dm9pZCAwKSxjPT09ITEmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXttLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfSx0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzWzBdO3JldHVybiBjP20uZXZlbnQudHJpZ2dlcihhLGIsYywhMCk6dm9pZCAwfX0pO2Z1bmN0aW9uIGRiKGEpe3ZhciBiPWViLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfXZhciBlYj0iYWJicnxhcnRpY2xlfGFzaWRlfGF1ZGlvfGJkaXxjYW52YXN8ZGF0YXxkYXRhbGlzdHxkZXRhaWxzfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1hcmt8bWV0ZXJ8bmF2fG91dHB1dHxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGltZXx2aWRlbyIsZmI9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyxnYj1uZXcgUmVnRXhwKCI8KD86IitlYisiKVtcXHMvPl0iLCJpIiksaGI9L15ccysvLGliPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vZ2ksamI9LzwoW1x3Ol0rKS8sa2I9Lzx0Ym9keS9pLGxiPS88fCYjP1x3KzsvLG1iPS88KD86c2NyaXB0fHN0eWxlfGxpbmspL2ksbmI9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksb2I9L14kfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHBiPS9edHJ1ZVwvKC4qKS8scWI9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLHJiPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0scGFyYW06WzEsIjxvYmplY3Q+IiwiPC9vYmplY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDprLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX0sc2I9ZGIoeSksdGI9c2IuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSk7cmIub3B0Z3JvdXA9cmIub3B0aW9uLHJiLnRib2R5PXJiLnRmb290PXJiLmNvbGdyb3VwPXJiLmNhcHRpb249cmIudGhlYWQscmIudGg9cmIudGQ7ZnVuY3Rpb24gdWIoYSxiKXt2YXIgYyxkLGU9MCxmPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Sz9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbCE9PUs/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0pO2UrKykhYnx8bS5ub2RlTmFtZShkLGIpP2YucHVzaChkKTptLm1lcmdlKGYsdWIoZCxiKSk7cmV0dXJuIHZvaWQgMD09PWJ8fGImJm0ubm9kZU5hbWUoYSxiKT9tLm1lcmdlKFthXSxmKTpmfWZ1bmN0aW9uIHZiKGEpe1cudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIHdiKGEsYil7cmV0dXJuIG0ubm9kZU5hbWUoYSwidGFibGUiKSYmbS5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiB4YihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bS5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24geWIoYSl7dmFyIGI9cGIuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiB6YihhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW0uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG0uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX1mdW5jdGlvbiBBYihhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZtLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW0uX2RhdGEoYSksZz1tLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyltLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW0uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBCYihhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWsubm9DbG9uZUV2ZW50JiZiW20uZXhwYW5kb10pe2U9bS5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyltLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobS5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oeGIoYikudGV4dD1hLnRleHQseWIoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGsuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFtLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmVy50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOigiaW5wdXQiPT09Y3x8InRleHRhcmVhIj09PWMpJiYoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfX1tLmV4dGVuZCh7Y2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1tLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihrLmh0bWw1Q2xvbmV8fG0uaXNYTUxEb2MoYSl8fCFnYi50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KHRiLmlubmVySFRNTD1hLm91dGVySFRNTCx0Yi5yZW1vdmVDaGlsZChmPXRiLmZpcnN0Q2hpbGQpKSwhKGsubm9DbG9uZUV2ZW50JiZrLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxtLmlzWE1MRG9jKGEpKSlmb3IoZD11YihmKSxoPXViKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmQmIoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8dWIoYSksZD1kfHx1YihmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUFiKGUsZFtnXSk7ZWxzZSBBYihhLGYpO3JldHVybiBkPXViKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJnpiKGQsIWkmJnViKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGJ1aWxkRnJhZ21lbnQ6ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlLGYsZyxoLGksaixsLG49YS5sZW5ndGgsbz1kYihiKSxwPVtdLHE9MDtuPnE7cSsrKWlmKGY9YVtxXSxmfHwwPT09ZilpZigib2JqZWN0Ij09PW0udHlwZShmKSltLm1lcmdlKHAsZi5ub2RlVHlwZT9bZl06Zik7ZWxzZSBpZihsYi50ZXN0KGYpKXtoPWh8fG8uYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaT0oamIuZXhlYyhmKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSxsPXJiW2ldfHxyYi5fZGVmYXVsdCxoLmlubmVySFRNTD1sWzFdK2YucmVwbGFjZShpYiwiPCQxPjwvJDI+IikrbFsyXSxlPWxbMF07d2hpbGUoZS0tKWg9aC5sYXN0Q2hpbGQ7aWYoIWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoZikmJnAucHVzaChiLmNyZWF0ZVRleHROb2RlKGhiLmV4ZWMoZilbMF0pKSwhay50Ym9keSl7Zj0idGFibGUiIT09aXx8a2IudGVzdChmKT8iPHRhYmxlPiIhPT1sWzFdfHxrYi50ZXN0KGYpPzA6aDpoLmZpcnN0Q2hpbGQsZT1mJiZmLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGUtLSltLm5vZGVOYW1lKGo9Zi5jaGlsZE5vZGVzW2VdLCJ0Ym9keSIpJiYhai5jaGlsZE5vZGVzLmxlbmd0aCYmZi5yZW1vdmVDaGlsZChqKX1tLm1lcmdlKHAsaC5jaGlsZE5vZGVzKSxoLnRleHRDb250ZW50PSIiO3doaWxlKGguZmlyc3RDaGlsZCloLnJlbW92ZUNoaWxkKGguZmlyc3RDaGlsZCk7aD1vLmxhc3RDaGlsZH1lbHNlIHAucHVzaChiLmNyZWF0ZVRleHROb2RlKGYpKTtoJiZvLnJlbW92ZUNoaWxkKGgpLGsuYXBwZW5kQ2hlY2tlZHx8bS5ncmVwKHViKHAsImlucHV0IiksdmIpLHE9MDt3aGlsZShmPXBbcSsrXSlpZigoIWR8fC0xPT09bS5pbkFycmF5KGYsZCkpJiYoZz1tLmNvbnRhaW5zKGYub3duZXJEb2N1bWVudCxmKSxoPXViKG8uYXBwZW5kQ2hpbGQoZiksInNjcmlwdCIpLGcmJnpiKGgpLGMpKXtlPTA7d2hpbGUoZj1oW2UrK10pb2IudGVzdChmLnR5cGV8fCIiKSYmYy5wdXNoKGYpfXJldHVybiBoPW51bGwsb30sY2xlYW5EYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkLGUsZixnLGg9MCxpPW0uZXhwYW5kbyxqPW0uY2FjaGUsbD1rLmRlbGV0ZUV4cGFuZG8sbj1tLmV2ZW50LnNwZWNpYWw7bnVsbCE9KGQ9YVtoXSk7aCsrKWlmKChifHxtLmFjY2VwdERhdGEoZCkpJiYoZj1kW2ldLGc9ZiYmaltmXSkpe2lmKGcuZXZlbnRzKWZvcihlIGluIGcuZXZlbnRzKW5bZV0/bS5ldmVudC5yZW1vdmUoZCxlKTptLnJlbW92ZUV2ZW50KGQsZSxnLmhhbmRsZSk7altmXSYmKGRlbGV0ZSBqW2ZdLGw/ZGVsZXRlIGRbaV06dHlwZW9mIGQucmVtb3ZlQXR0cmlidXRlIT09Sz9kLnJlbW92ZUF0dHJpYnV0ZShpKTpkW2ldPW51bGwsYy5wdXNoKGYpKX19fSksbS5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9tLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHx5KS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj13Yih0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPXdiKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9YT9tLmZpbHRlcihhLHRoaXMpOnRoaXMsZT0wO251bGwhPShjPWRbZV0pO2UrKylifHwxIT09Yy5ub2RlVHlwZXx8bS5jbGVhbkRhdGEodWIoYykpLGMucGFyZW50Tm9kZSYmKGImJm0uY29udGFpbnMoYy5vd25lckRvY3VtZW50LGMpJiZ6Yih1YihjLCJzY3JpcHQiKSksYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpKTtyZXR1cm4gdGhpc30sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm0uY2xlYW5EYXRhKHViKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbS5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbS5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UoZmIsIiIpOnZvaWQgMDtpZighKCJzdHJpbmciIT10eXBlb2YgYXx8bWIudGVzdChhKXx8IWsuaHRtbFNlcmlhbGl6ZSYmZ2IudGVzdChhKXx8IWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoYSl8fHJiWyhqYi5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSkpe2E9YS5yZXBsYWNlKGliLCI8JDE+PC8kMj4iKTt0cnl7Zm9yKDtkPmM7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihtLmNsZWFuRGF0YSh1YihiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50c1swXTtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYil7YT10aGlzLnBhcmVudE5vZGUsbS5jbGVhbkRhdGEodWIodGhpcykpLGEmJmEucmVwbGFjZUNoaWxkKGIsdGhpcyl9KSxhJiYoYS5sZW5ndGh8fGEubm9kZVR5cGUpP3RoaXM6dGhpcy5yZW1vdmUoKX0sZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShhLCEwKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiKXthPWUuYXBwbHkoW10sYSk7dmFyIGMsZCxmLGcsaCxpLGo9MCxsPXRoaXMubGVuZ3RoLG49dGhpcyxvPWwtMSxwPWFbMF0scT1tLmlzRnVuY3Rpb24ocCk7aWYocXx8bD4xJiYic3RyaW5nIj09dHlwZW9mIHAmJiFrLmNoZWNrQ2xvbmUmJm5iLnRlc3QocCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZD1uLmVxKGMpO3EmJihhWzBdPXAuY2FsbCh0aGlzLGMsZC5odG1sKCkpKSxkLmRvbU1hbmlwKGEsYil9KTtpZihsJiYoaT1tLmJ1aWxkRnJhZ21lbnQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQsITEsdGhpcyksYz1pLmZpcnN0Q2hpbGQsMT09PWkuY2hpbGROb2Rlcy5sZW5ndGgmJihpPWMpLGMpKXtmb3IoZz1tLm1hcCh1YihpLCJzY3JpcHQiKSx4YiksZj1nLmxlbmd0aDtsPmo7aisrKWQ9aSxqIT09byYmKGQ9bS5jbG9uZShkLCEwLCEwKSxmJiZtLm1lcmdlKGcsdWIoZCwic2NyaXB0IikpKSxiLmNhbGwodGhpc1tqXSxkLGopO2lmKGYpZm9yKGg9Z1tnLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG0ubWFwKGcseWIpLGo9MDtmPmo7aisrKWQ9Z1tqXSxvYi50ZXN0KGQudHlwZXx8IiIpJiYhbS5fZGF0YShkLCJnbG9iYWxFdmFsIikmJm0uY29udGFpbnMoaCxkKSYmKGQuc3JjP20uX2V2YWxVcmwmJm0uX2V2YWxVcmwoZC5zcmMpOm0uZ2xvYmFsRXZhbCgoZC50ZXh0fHxkLnRleHRDb250ZW50fHxkLmlubmVySFRNTHx8IiIpLnJlcGxhY2UocWIsIiIpKSk7aT1jPW51bGx9cmV0dXJuIHRoaXN9fSksbS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXttLmZuW2FdPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyxkPTAsZT1bXSxnPW0oYSksaD1nLmxlbmd0aC0xO2g+PWQ7ZCsrKWM9ZD09PWg/dGhpczp0aGlzLmNsb25lKCEwKSxtKGdbZF0pW2JdKGMpLGYuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIENiLERiPXt9O2Z1bmN0aW9uIEViKGIsYyl7dmFyIGQsZT1tKGMuY3JlYXRlRWxlbWVudChiKSkuYXBwZW5kVG8oYy5ib2R5KSxmPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUmJihkPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUoZVswXSkpP2QuZGlzcGxheTptLmNzcyhlWzBdLCJkaXNwbGF5Iik7cmV0dXJuIGUuZGV0YWNoKCksZn1mdW5jdGlvbiBGYihhKXt2YXIgYj15LGM9RGJbYV07cmV0dXJuIGN8fChjPUViKGEsYiksIm5vbmUiIT09YyYmY3x8KENiPShDYnx8bSgiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPiIpKS5hcHBlbmRUbyhiLmRvY3VtZW50RWxlbWVudCksYj0oQ2JbMF0uY29udGVudFdpbmRvd3x8Q2JbMF0uY29udGVudERvY3VtZW50KS5kb2N1bWVudCxiLndyaXRlKCksYi5jbG9zZSgpLGM9RWIoYSxiKSxDYi5kZXRhY2goKSksRGJbYV09YyksY30hZnVuY3Rpb24oKXt2YXIgYTtrLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxkO3JldHVybiBjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChkKSxhKTp2b2lkIDB9fSgpO3ZhciBHYj0vXm1hcmdpbi8sSGI9bmV3IFJlZ0V4cCgiXigiK1MrIikoPyFweClbYS16JV0rJCIsImkiKSxJYixKYixLYj0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhJYj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdOnZvaWQgMCxjJiYoIiIhPT1nfHxtLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8KGc9bS5zdHlsZShhLGIpKSxIYi50ZXN0KGcpJiZHYi50ZXN0KGIpJiYoZD1oLndpZHRoLGU9aC5taW5XaWR0aCxmPWgubWF4V2lkdGgsaC5taW5XaWR0aD1oLm1heFdpZHRoPWgud2lkdGg9ZyxnPWMud2lkdGgsaC53aWR0aD1kLGgubWluV2lkdGg9ZSxoLm1heFdpZHRoPWYpKSx2b2lkIDA9PT1nP2c6ZysiIn0pOnkuZG9jdW1lbnRFbGVtZW50LmN1cnJlbnRTdHlsZSYmKEliPWZ1bmN0aW9uKGEpe3JldHVybiBhLmN1cnJlbnRTdHlsZX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Y1tiXTp2b2lkIDAsbnVsbD09ZyYmaCYmaFtiXSYmKGc9aFtiXSksSGIudGVzdChnKSYmIUtiLnRlc3QoYikmJihkPWgubGVmdCxlPWEucnVudGltZVN0eWxlLGY9ZSYmZS5sZWZ0LGYmJihlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdCksaC5sZWZ0PSJmb250U2l6ZSI9PT1iPyIxZW0iOmcsZz1oLnBpeGVsTGVmdCsicHgiLGgubGVmdD1kLGYmJihlLmxlZnQ9ZikpLHZvaWQgMD09PWc/ZzpnKyIifHwiYXV0byJ9KTtmdW5jdGlvbiBMYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXt2YXIgYz1hKCk7aWYobnVsbCE9YylyZXR1cm4gYz92b2lkIGRlbGV0ZSB0aGlzLmdldDoodGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19IWZ1bmN0aW9uKCl7dmFyIGIsYyxkLGUsZixnLGg7aWYoYj15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGIuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGQ9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLGM9ZCYmZC5zdHlsZSl7Yy5jc3NUZXh0PSJmbG9hdDpsZWZ0O29wYWNpdHk6LjUiLGsub3BhY2l0eT0iMC41Ij09PWMub3BhY2l0eSxrLmNzc0Zsb2F0PSEhYy5jc3NGbG9hdCxiLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsYi5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGsuY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1iLnN0eWxlLmJhY2tncm91bmRDbGlwLGsuYm94U2l6aW5nPSIiPT09Yy5ib3hTaXppbmd8fCIiPT09Yy5Nb3pCb3hTaXppbmd8fCIiPT09Yy5XZWJraXRCb3hTaXppbmcsbS5leHRlbmQoayx7cmVsaWFibGVIaWRkZW5PZmZzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWcmJmkoKSxnfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT1mJiZpKCksZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBudWxsPT1lJiZpKCksZX0scmVsaWFibGVNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1oJiZpKCksaH19KTtmdW5jdGlvbiBpKCl7dmFyIGIsYyxkLGk7Yz15LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChkKS5hcHBlbmRDaGlsZChiKSxiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MSU7dG9wOjElO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NHB4O3Bvc2l0aW9uOmFic29sdXRlIixlPWY9ITEsaD0hMCxhLmdldENvbXB1dGVkU3R5bGUmJihlPSIxJSIhPT0oYS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCl8fHt9KS50b3AsZj0iNHB4Ij09PShhLmdldENvbXB1dGVkU3R5bGUoYixudWxsKXx8e3dpZHRoOiI0cHgifSkud2lkdGgsaT1iLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgiZGl2IikpLGkuc3R5bGUuY3NzVGV4dD1iLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsaS5zdHlsZS5tYXJnaW5SaWdodD1pLnN0eWxlLndpZHRoPSIwIixiLnN0eWxlLndpZHRoPSIxcHgiLGg9IXBhcnNlRmxvYXQoKGEuZ2V0Q29tcHV0ZWRTdHlsZShpLG51bGwpfHx7fSkubWFyZ2luUmlnaHQpKSxiLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQ+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiIsaT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpLGlbMF0uc3R5bGUuY3NzVGV4dD0ibWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowO2Rpc3BsYXk6bm9uZSIsZz0wPT09aVswXS5vZmZzZXRIZWlnaHQsZyYmKGlbMF0uc3R5bGUuZGlzcGxheT0iIixpWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGc9MD09PWlbMF0ub2Zmc2V0SGVpZ2h0KSxjLnJlbW92ZUNoaWxkKGQpKX19fSgpLG0uc3dhcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX07dmFyIE1iPS9hbHBoYVwoW14pXSpcKS9pLE5iPS9vcGFjaXR5XHMqPVxzKihbXildKikvLE9iPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxQYj1uZXcgUmVnRXhwKCJeKCIrUysiKSguKikkIiwiaSIpLFFiPW5ldyBSZWdFeHAoIl4oWystXSk9KCIrUysiKSIsImkiKSxSYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sU2I9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LFRiPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZnVuY3Rpb24gVWIoYSxiKXtpZihiIGluIGEpcmV0dXJuIGI7dmFyIGM9Yi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStiLnNsaWNlKDEpLGQ9YixlPVRiLmxlbmd0aDt3aGlsZShlLS0paWYoYj1UYltlXStjLGIgaW4gYSlyZXR1cm4gYjtyZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYyxkLGUsZj1bXSxnPTAsaD1hLmxlbmd0aDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoZltnXT1tLl9kYXRhKGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmVShkKSYmKGZbZ109bS5fZGF0YShkLCJvbGRkaXNwbGF5IixGYihkLm5vZGVOYW1lKSkpKTooZT1VKGQpLChjJiYibm9uZSIhPT1jfHwhZSkmJm0uX2RhdGEoZCwib2xkZGlzcGxheSIsZT9jOm0uY3NzKGQsImRpc3BsYXkiKSkpKTtmb3IoZz0wO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihiJiYibm9uZSIhPT1kLnN0eWxlLmRpc3BsYXkmJiIiIT09ZC5zdHlsZS5kaXNwbGF5fHwoZC5zdHlsZS5kaXNwbGF5PWI/ZltnXXx8IiI6Im5vbmUiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkPVBiLmV4ZWMoYik7cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzFdLShjfHwwKSkrKGRbMl18fCJweCIpOmJ9ZnVuY3Rpb24gWGIoYSxiLGMsZCxlKXtmb3IodmFyIGY9Yz09PShkPyJib3JkZXIiOiJjb250ZW50Iik/NDoid2lkdGgiPT09Yj8xOjAsZz0wOzQ+ZjtmKz0yKSJtYXJnaW4iPT09YyYmKGcrPW0uY3NzKGEsYytUW2ZdLCEwLGUpKSxkPygiY29udGVudCI9PT1jJiYoZy09bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSksIm1hcmdpbiIhPT1jJiYoZy09bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTooZys9bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSwicGFkZGluZyIhPT1jJiYoZys9bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiBZYihhLGIsYyl7dmFyIGQ9ITAsZT0id2lkdGgiPT09Yj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGY9SWIoYSksZz1rLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bS5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKTtpZigwPj1lfHxudWxsPT1lKXtpZihlPUpiKGEsYixmKSwoMD5lfHxudWxsPT1lKSYmKGU9YS5zdHlsZVtiXSksSGIudGVzdChlKSlyZXR1cm4gZTtkPWcmJihrLmJveFNpemluZ1JlbGlhYmxlKCl8fGU9PT1hLnN0eWxlW2JdKSxlPXBhcnNlRmxvYXQoZSl8fDB9cmV0dXJuIGUrWGIoYSxiLGN8fChnPyJib3JkZXIiOiJjb250ZW50IiksZCxmKSsicHgifW0uZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9SmIoYSwib3BhY2l0eSIpO3JldHVybiIiPT09Yz8iMSI6Y319fX0sY3NzTnVtYmVyOntjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0IjprLmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGIsYyxkKXtpZihhJiYzIT09YS5ub2RlVHlwZSYmOCE9PWEubm9kZVR5cGUmJmEuc3R5bGUpe3ZhciBlLGYsZyxoPW0uY2FtZWxDYXNlKGIpLGk9YS5zdHlsZTtpZihiPW0uY3NzUHJvcHNbaF18fChtLmNzc1Byb3BzW2hdPVViKGksaCkpLGc9bS5jc3NIb29rc1tiXXx8bS5jc3NIb29rc1toXSx2b2lkIDA9PT1jKXJldHVybiBnJiYiZ2V0ImluIGcmJnZvaWQgMCE9PShlPWcuZ2V0KGEsITEsZCkpP2U6aVtiXTtpZihmPXR5cGVvZiBjLCJzdHJpbmciPT09ZiYmKGU9UWIuZXhlYyhjKSkmJihjPShlWzFdKzEpKmVbMl0rcGFyc2VGbG9hdChtLmNzcyhhLGIpKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiIT09Znx8bS5jc3NOdW1iZXJbaF18fChjKz0icHgiKSxrLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fChpW2JdPSJpbmhlcml0IiksIShnJiYic2V0ImluIGcmJnZvaWQgMD09PShjPWcuc2V0KGEsYyxkKSkpKSl0cnl7aVtiXT1jfWNhdGNoKGope319fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnLGg9bS5jYW1lbENhc2UoYik7cmV0dXJuIGI9bS5jc3NQcm9wc1toXXx8KG0uY3NzUHJvcHNbaF09VWIoYS5zdHlsZSxoKSksZz1tLmNzc0hvb2tzW2JdfHxtLmNzc0hvb2tzW2hdLGcmJiJnZXQiaW4gZyYmKGY9Zy5nZXQoYSwhMCxjKSksdm9pZCAwPT09ZiYmKGY9SmIoYSxiLGQpKSwibm9ybWFsIj09PWYmJmIgaW4gU2ImJihmPVNiW2JdKSwiIj09PWN8fGM/KGU9cGFyc2VGbG9hdChmKSxjPT09ITB8fG0uaXNOdW1lcmljKGUpP2V8fDA6Zik6Zn19KSxtLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gYz9PYi50ZXN0KG0uY3NzKGEsImRpc3BsYXkiKSkmJjA9PT1hLm9mZnNldFdpZHRoP20uc3dhcChhLFJiLGZ1bmN0aW9uKCl7cmV0dXJuIFliKGEsYixkKX0pOlliKGEsYixkKTp2b2lkIDB9LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGU9ZCYmSWIoYSk7cmV0dXJuIFdiKGEsYyxkP1hiKGEsYixkLGsuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT1tLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGUpOjApfX19KSxrLm9wYWNpdHl8fChtLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBOYi50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/LjAxKnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9bS5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IisxMDAqYisiKSI6IiIsZj1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xLChiPj0xfHwiIj09PWIpJiYiIj09PW0udHJpbShmLnJlcGxhY2UoTWIsIiIpKSYmYy5yZW1vdmVBdHRyaWJ1dGUmJihjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIiksIiI9PT1ifHxkJiYhZC5maWx0ZXIpfHwoYy5maWx0ZXI9TWIudGVzdChmKT9mLnJlcGxhY2UoTWIsZSk6ZisiICIrZSl9fSksbS5jc3NIb29rcy5tYXJnaW5SaWdodD1MYihrLnJlbGlhYmxlTWFyZ2luUmlnaHQsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9tLnN3YXAoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sSmIsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLG0uZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPTAsZT17fSxmPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+ZDtkKyspZVthK1RbZF0rYl09ZltkXXx8ZltkLTJdfHxmWzBdO3JldHVybiBlfX0sR2IudGVzdChhKXx8KG0uY3NzSG9va3NbYStiXS5zZXQ9V2IpfSksbS5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBWKHRoaXMsZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj17fSxnPTA7aWYobS5pc0FycmF5KGIpKXtmb3IoZD1JYihhKSxlPWIubGVuZ3RoO2U+ZztnKyspZltiW2ddXT1tLmNzcyhhLGJbZ10sITEsZCk7cmV0dXJuIGZ9cmV0dXJuIHZvaWQgMCE9PWM/bS5zdHlsZShhLGIsYyk6bS5jc3MoYSxiKX0sYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhP2E/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7VSh0aGlzKT9tKHRoaXMpLnNob3coKTptKHRoaXMpLmhpZGUoKX0pfX0pO2Z1bmN0aW9uIFpiKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBaYi5wcm90b3R5cGUuaW5pdChhLGIsYyxkLGUpfW0uVHdlZW49WmIsWmIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpaYixpbml0OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt0aGlzLmVsZW09YSx0aGlzLnByb3A9Yyx0aGlzLmVhc2luZz1lfHwic3dpbmciLHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobS5jc3NOdW1iZXJbY10/IiI6InB4IikKfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT1aYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ/YS5nZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9WmIucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMucG9zPWI9dGhpcy5vcHRpb25zLmR1cmF0aW9uP20uZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOmEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ/Yy5zZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0sWmIucHJvdG90eXBlLmluaXQucHJvdG90eXBlPVpiLnByb3RvdHlwZSxaYi5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIG51bGw9PWEuZWxlbVthLnByb3BdfHxhLmVsZW0uc3R5bGUmJm51bGwhPWEuZWxlbS5zdHlsZVthLnByb3BdPyhiPW0uY3NzKGEuZWxlbSxhLnByb3AsIiIpLGImJiJhdXRvIiE9PWI/YjowKTphLmVsZW1bYS5wcm9wXX0sc2V0OmZ1bmN0aW9uKGEpe20uZnguc3RlcFthLnByb3BdP20uZnguc3RlcFthLnByb3BdKGEpOmEuZWxlbS5zdHlsZSYmKG51bGwhPWEuZWxlbS5zdHlsZVttLmNzc1Byb3BzW2EucHJvcF1dfHxtLmNzc0hvb2tzW2EucHJvcF0pP20uc3R5bGUoYS5lbGVtLGEucHJvcCxhLm5vdythLnVuaXQpOmEuZWxlbVthLnByb3BdPWEubm93fX19LFpiLnByb3BIb29rcy5zY3JvbGxUb3A9WmIucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihhKXthLmVsZW0ubm9kZVR5cGUmJmEuZWxlbS5wYXJlbnROb2RlJiYoYS5lbGVtW2EucHJvcF09YS5ub3cpfX0sbS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfX0sbS5meD1aYi5wcm90b3R5cGUuaW5pdCxtLmZ4LnN0ZXA9e307dmFyICRiLF9iLGFjPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxiYz1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrUysiKShbYS16JV0qKSQiLCJpIiksY2M9L3F1ZXVlSG9va3MkLyxkYz1baWNdLGVjPXsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpLGQ9Yy5jdXIoKSxlPWJjLmV4ZWMoYiksZj1lJiZlWzNdfHwobS5jc3NOdW1iZXJbYV0/IiI6InB4IiksZz0obS5jc3NOdW1iZXJbYV18fCJweCIhPT1mJiYrZCkmJmJjLmV4ZWMobS5jc3MoYy5lbGVtLGEpKSxoPTEsaT0yMDtpZihnJiZnWzNdIT09Zil7Zj1mfHxnWzNdLGU9ZXx8W10sZz0rZHx8MTtkbyBoPWh8fCIuNSIsZy89aCxtLnN0eWxlKGMuZWxlbSxhLGcrZik7d2hpbGUoaCE9PShoPWMuY3VyKCkvZCkmJjEhPT1oJiYtLWkpfXJldHVybiBlJiYoZz1jLnN0YXJ0PStnfHwrZHx8MCxjLnVuaXQ9ZixjLmVuZD1lWzFdP2crKGVbMV0rMSkqZVsyXTorZVsyXSksY31dfTtmdW5jdGlvbiBmYygpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JGI9dm9pZCAwfSksJGI9bS5ub3coKX1mdW5jdGlvbiBnYyhhLGIpe3ZhciBjLGQ9e2hlaWdodDphfSxlPTA7Zm9yKGI9Yj8xOjA7ND5lO2UrPTItYiljPVRbZV0sZFsibWFyZ2luIitjXT1kWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZC5vcGFjaXR5PWQud2lkdGg9YSksZH1mdW5jdGlvbiBoYyhhLGIsYyl7Zm9yKHZhciBkLGU9KGVjW2JdfHxbXSkuY29uY2F0KGVjWyIqIl0pLGY9MCxnPWUubGVuZ3RoO2c+ZjtmKyspaWYoZD1lW2ZdLmNhbGwoYyxiLGEpKXJldHVybiBkfWZ1bmN0aW9uIGljKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixsLG49dGhpcyxvPXt9LHA9YS5zdHlsZSxxPWEubm9kZVR5cGUmJlUoYSkscj1tLl9kYXRhKGEsImZ4c2hvdyIpO2MucXVldWV8fChoPW0uX3F1ZXVlSG9va3MoYSwiZngiKSxudWxsPT1oLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLGk9aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fGkoKX0pLGgudW5xdWV1ZWQrKyxuLmFsd2F5cyhmdW5jdGlvbigpe24uYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tLG0ucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksMT09PWEubm9kZVR5cGUmJigiaGVpZ2h0ImluIGJ8fCJ3aWR0aCJpbiBiKSYmKGMub3ZlcmZsb3c9W3Aub3ZlcmZsb3cscC5vdmVyZmxvd1gscC5vdmVyZmxvd1ldLGo9bS5jc3MoYSwiZGlzcGxheSIpLGw9Im5vbmUiPT09aj9tLl9kYXRhKGEsIm9sZGRpc3BsYXkiKXx8RmIoYS5ub2RlTmFtZSk6aiwiaW5saW5lIj09PWwmJiJub25lIj09PW0uY3NzKGEsImZsb2F0IikmJihrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQmJiJpbmxpbmUiIT09RmIoYS5ub2RlTmFtZSk/cC56b29tPTE6cC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKHAub3ZlcmZsb3c9ImhpZGRlbiIsay5zaHJpbmtXcmFwQmxvY2tzKCl8fG4uYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1jLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxhYy5leGVjKGUpKXtpZihkZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KHE/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWV8fCFyfHx2b2lkIDA9PT1yW2RdKWNvbnRpbnVlO3E9ITB9b1tkXT1yJiZyW2RdfHxtLnN0eWxlKGEsZCl9ZWxzZSBqPXZvaWQgMDtpZihtLmlzRW1wdHlPYmplY3QobykpImlubGluZSI9PT0oIm5vbmUiPT09aj9GYihhLm5vZGVOYW1lKTpqKSYmKHAuZGlzcGxheT1qKTtlbHNle3I/ImhpZGRlbiJpbiByJiYocT1yLmhpZGRlbik6cj1tLl9kYXRhKGEsImZ4c2hvdyIse30pLGYmJihyLmhpZGRlbj0hcSkscT9tKGEpLnNob3coKTpuLmRvbmUoZnVuY3Rpb24oKXttKGEpLmhpZGUoKX0pLG4uZG9uZShmdW5jdGlvbigpe3ZhciBiO20uX3JlbW92ZURhdGEoYSwiZnhzaG93Iik7Zm9yKGIgaW4gbyltLnN0eWxlKGEsYixvW2JdKX0pO2ZvcihkIGluIG8pZz1oYyhxP3JbZF06MCxkLG4pLGQgaW4gcnx8KHJbZF09Zy5zdGFydCxxJiYoZy5lbmQ9Zy5zdGFydCxnLnN0YXJ0PSJ3aWR0aCI9PT1kfHwiaGVpZ2h0Ij09PWQ/MTowKSl9fWZ1bmN0aW9uIGpjKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoYyBpbiBhKWlmKGQ9bS5jYW1lbENhc2UoYyksZT1iW2RdLGY9YVtjXSxtLmlzQXJyYXkoZikmJihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPW0uY3NzSG9va3NbZF0sZyYmImV4cGFuZCJpbiBnKXtmPWcuZXhwYW5kKGYpLGRlbGV0ZSBhW2RdO2ZvcihjIGluIGYpYyBpbiBhfHwoYVtjXT1mW2NdLGJbY109ZSl9ZWxzZSBiW2RdPWV9ZnVuY3Rpb24ga2MoYSxiLGMpe3ZhciBkLGUsZj0wLGc9ZGMubGVuZ3RoLGg9bS5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBpLmVsZW19KSxpPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTtmb3IodmFyIGI9JGJ8fGZjKCksYz1NYXRoLm1heCgwLGouc3RhcnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ouZHVyYXRpb258fDAsZj0xLWQsZz0wLGk9ai50d2VlbnMubGVuZ3RoO2k+ZztnKyspai50d2VlbnNbZ10ucnVuKGYpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSwxPmYmJmk/YzooaC5yZXNvbHZlV2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOm0uZXh0ZW5kKHt9LGIpLG9wdHM6bS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e319LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTokYnx8ZmMoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbihiLGMpe3ZhciBkPW0uVHdlZW4oYSxqLm9wdHMsYixjLGoub3B0cy5zcGVjaWFsRWFzaW5nW2JdfHxqLm9wdHMuZWFzaW5nKTtyZXR1cm4gai50d2VlbnMucHVzaChkKSxkfSxzdG9wOmZ1bmN0aW9uKGIpe3ZhciBjPTAsZD1iP2oudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7ZD5jO2MrKylqLnR3ZWVuc1tjXS5ydW4oMSk7cmV0dXJuIGI/aC5yZXNvbHZlV2l0aChhLFtqLGJdKTpoLnJlamVjdFdpdGgoYSxbaixiXSksdGhpc319KSxrPWoucHJvcHM7Zm9yKGpjKGssai5vcHRzLnNwZWNpYWxFYXNpbmcpO2c+ZjtmKyspaWYoZD1kY1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIGQ7cmV0dXJuIG0ubWFwKGssaGMsaiksbS5pc0Z1bmN0aW9uKGoub3B0cy5zdGFydCkmJmoub3B0cy5zdGFydC5jYWxsKGEsaiksbS5meC50aW1lcihtLmV4dGVuZChpLHtlbGVtOmEsYW5pbTpqLHF1ZXVlOmoub3B0cy5xdWV1ZX0pKSxqLnByb2dyZXNzKGoub3B0cy5wcm9ncmVzcykuZG9uZShqLm9wdHMuZG9uZSxqLm9wdHMuY29tcGxldGUpLmZhaWwoai5vcHRzLmZhaWwpLmFsd2F5cyhqLm9wdHMuYWx3YXlzKX1tLkFuaW1hdGlvbj1tLmV4dGVuZChrYyx7dHdlZW5lcjpmdW5jdGlvbihhLGIpe20uaXNGdW5jdGlvbihhKT8oYj1hLGE9WyIqIl0pOmE9YS5zcGxpdCgiICIpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtlPmQ7ZCsrKWM9YVtkXSxlY1tjXT1lY1tjXXx8W10sZWNbY10udW5zaGlmdChiKX0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9kYy51bnNoaWZ0KGEpOmRjLnB1c2goYSl9fSksbS5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSYmIm9iamVjdCI9PXR5cGVvZiBhP20uZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8bS5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJmJ8fGImJiFtLmlzRnVuY3Rpb24oYikmJmJ9O3JldHVybiBkLmR1cmF0aW9uPW0uZngub2ZmPzA6Im51bWJlciI9PXR5cGVvZiBkLmR1cmF0aW9uP2QuZHVyYXRpb246ZC5kdXJhdGlvbiBpbiBtLmZ4LnNwZWVkcz9tLmZ4LnNwZWVkc1tkLmR1cmF0aW9uXTptLmZ4LnNwZWVkcy5fZGVmYXVsdCwobnVsbD09ZC5xdWV1ZXx8ZC5xdWV1ZT09PSEwKSYmKGQucXVldWU9ImZ4IiksZC5vbGQ9ZC5jb21wbGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bS5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlJiZtLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sbS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoVSkuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5pc0VtcHR5T2JqZWN0KGEpLGY9bS5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPWtjKHRoaXMsbS5leHRlbmQoe30sYSksZik7KGV8fG0uX2RhdGEodGhpcywiZmluaXNoIikpJiZiLnN0b3AoITApfTtyZXR1cm4gZy5maW5pc2g9ZyxlfHxmLnF1ZXVlPT09ITE/dGhpcy5lYWNoKGcpOnRoaXMucXVldWUoZi5xdWV1ZSxnKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdG9wO2RlbGV0ZSBhLnN0b3AsYihjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmYSE9PSExJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPSEwLGU9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsZj1tLnRpbWVycyxnPW0uX2RhdGEodGhpcyk7aWYoZSlnW2VdJiZnW2VdLnN0b3AmJmQoZ1tlXSk7ZWxzZSBmb3IoZSBpbiBnKWdbZV0mJmdbZV0uc3RvcCYmY2MudGVzdChlKSYmZChnW2VdKTtmb3IoZT1mLmxlbmd0aDtlLS07KWZbZV0uZWxlbSE9PXRoaXN8fG51bGwhPWEmJmZbZV0ucXVldWUhPT1hfHwoZltlXS5hbmltLnN0b3AoYyksYj0hMSxmLnNwbGljZShlLDEpKTsoYnx8IWMpJiZtLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1tLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1tLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbS5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxtLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bS5mbltiXTttLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoZ2MoYiwhMCksYSxkLGUpfX0pLG0uZWFjaCh7c2xpZGVEb3duOmdjKCJzaG93Iiksc2xpZGVVcDpnYygiaGlkZSIpLHNsaWRlVG9nZ2xlOmdjKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bS5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxtLnRpbWVycz1bXSxtLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW0udGltZXJzLGM9MDtmb3IoJGI9bS5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxtLmZ4LnN0b3AoKSwkYj12b2lkIDB9LG0uZngudGltZXI9ZnVuY3Rpb24oYSl7bS50aW1lcnMucHVzaChhKSxhKCk/bS5meC5zdGFydCgpOm0udGltZXJzLnBvcCgpfSxtLmZ4LmludGVydmFsPTEzLG0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtfYnx8KF9iPXNldEludGVydmFsKG0uZngudGljayxtLmZ4LmludGVydmFsKSl9LG0uZnguc3RvcD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoX2IpLF9iPW51bGx9LG0uZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LG0uZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1tLmZ4P20uZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihiLGMpe3ZhciBkPXNldFRpbWVvdXQoYixhKTtjLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZCl9fSl9LGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZTtiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYi5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixkPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxjPXkuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksZT1jLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLGE9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxkLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGsuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWIuY2xhc3NOYW1lLGsuc3R5bGU9L3RvcC8udGVzdChkLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksay5ocmVmTm9ybWFsaXplZD0iL2EiPT09ZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSxrLmNoZWNrT249ISFhLnZhbHVlLGsub3B0U2VsZWN0ZWQ9ZS5zZWxlY3RlZCxrLmVuY3R5cGU9ISF5LmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGMuZGlzYWJsZWQ9ITAsay5vcHREaXNhYmxlZD0hZS5kaXNhYmxlZCxhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxhLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxrLmlucHV0PSIiPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYS52YWx1ZT0idCIsYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGsucmFkaW9WYWx1ZT0idCI9PT1hLnZhbHVlfSgpO3ZhciBsYz0vXHIvZzttLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPXRoaXNbMF07e2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGQ9bS5pc0Z1bmN0aW9uKGEpLHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZTsxPT09dGhpcy5ub2RlVHlwZSYmKGU9ZD9hLmNhbGwodGhpcyxjLG0odGhpcykudmFsKCkpOmEsbnVsbD09ZT9lPSIiOiJudW1iZXIiPT10eXBlb2YgZT9lKz0iIjptLmlzQXJyYXkoZSkmJihlPW0ubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6YSsiIn0pKSxiPW0udmFsSG9va3NbdGhpcy50eXBlXXx8bS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxlLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT1lKSl9KTtpZihlKXJldHVybiBiPW0udmFsSG9va3NbZS50eXBlXXx8bS52YWxIb29rc1tlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSwidmFsdWUiKSk/YzooYz1lLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgYz9jLnJlcGxhY2UobGMsIiIpOm51bGw9PWM/IiI6Yyl9fX0pLG0uZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bS5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOm0udHJpbShtLnRleHQoYSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZD1hLm9wdGlvbnMsZT1hLnNlbGVjdGVkSW5kZXgsZj0ic2VsZWN0LW9uZSI9PT1hLnR5cGV8fDA+ZSxnPWY/bnVsbDpbXSxoPWY/ZSsxOmQubGVuZ3RoLGk9MD5lP2g6Zj9lOjA7aD5pO2krKylpZihjPWRbaV0sISghYy5zZWxlY3RlZCYmaSE9PWV8fChrLm9wdERpc2FibGVkP2MuZGlzYWJsZWQ6bnVsbCE9PWMuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKXx8Yy5wYXJlbnROb2RlLmRpc2FibGVkJiZtLm5vZGVOYW1lKGMucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKGI9bShjKS52YWwoKSxmKXJldHVybiBiO2cucHVzaChiKX1yZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPWEub3B0aW9ucyxmPW0ubWFrZUFycmF5KGIpLGc9ZS5sZW5ndGg7d2hpbGUoZy0tKWlmKGQ9ZVtnXSxtLmluQXJyYXkobS52YWxIb29rcy5vcHRpb24uZ2V0KGQpLGYpPj0wKXRyeXtkLnNlbGVjdGVkPWM9ITB9Y2F0Y2goaCl7ZC5zY3JvbGxIZWlnaHR9ZWxzZSBkLnNlbGVjdGVkPSExO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxlfX19fSksbS5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7bS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uaXNBcnJheShiKT9hLmNoZWNrZWQ9bS5pbkFycmF5KG0oYSkudmFsKCksYik+PTA6dm9pZCAwfX0say5jaGVja09ufHwobS52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBtYyxuYyxvYz1tLmV4cHIuYXR0ckhhbmRsZSxwYz0vXig/OmNoZWNrZWR8c2VsZWN0ZWQpJC9pLHFjPWsuZ2V0U2V0QXR0cmlidXRlLHJjPWsuaW5wdXQ7bS5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0uYXR0cixhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KSxtLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoYSYmMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm4gdHlwZW9mIGEuZ2V0QXR0cmlidXRlPT09Sz9tLnByb3AoYSxiLGMpOigxPT09ZiYmbS5pc1hNTERvYyhhKXx8KGI9Yi50b0xvd2VyQ2FzZSgpLGQ9bS5hdHRySG9va3NbYl18fChtLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP25jOm1jKSksdm9pZCAwPT09Yz9kJiYiZ2V0ImluIGQmJm51bGwhPT0oZT1kLmdldChhLGIpKT9lOihlPW0uZmluZC5hdHRyKGEsYiksbnVsbD09ZT92b2lkIDA6ZSk6bnVsbCE9PWM/ZCYmInNldCJpbiBkJiZ2b2lkIDAhPT0oZT1kLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6dm9pZCBtLnJlbW92ZUF0dHIoYSxiKSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9MCxmPWImJmIubWF0Y2goRSk7aWYoZiYmMT09PWEubm9kZVR5cGUpd2hpbGUoYz1mW2UrK10pZD1tLnByb3BGaXhbY118fGMsbS5leHByLm1hdGNoLmJvb2wudGVzdChjKT9yYyYmcWN8fCFwYy50ZXN0KGMpP2FbZF09ITE6YVttLmNhbWVsQ2FzZSgiZGVmYXVsdC0iK2MpXT1hW2RdPSExOm0uYXR0cihhLGMsIiIpLGEucmVtb3ZlQXR0cmlidXRlKHFjP2M6ZCl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIWsucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJm0ubm9kZU5hbWUoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19fSksbmM9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI9PT0hMT9tLnJlbW92ZUF0dHIoYSxjKTpyYyYmcWN8fCFwYy50ZXN0KGMpP2Euc2V0QXR0cmlidXRlKCFxYyYmbS5wcm9wRml4W2NdfHxjLGMpOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtjXT0hMCxjfX0sbS5lYWNoKG0uZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9b2NbYl18fG0uZmluZC5hdHRyO29jW2JdPXJjJiZxY3x8IXBjLnRlc3QoYik/ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGY7cmV0dXJuIGR8fChmPW9jW2JdLG9jW2JdPWUsZT1udWxsIT1jKGEsYixkKT9iLnRvTG93ZXJDYXNlKCk6bnVsbCxvY1tiXT1mKSxlfTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitiKV0/Yi50b0xvd2VyQ2FzZSgpOm51bGx9fSkscmMmJnFjfHwobS5hdHRySG9va3MudmFsdWU9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaW5wdXQiKT92b2lkKGEuZGVmYXVsdFZhbHVlPWIpOm1jJiZtYy5zZXQoYSxiLGMpfX0pLHFjfHwobWM9e3NldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGMpO3JldHVybiBkfHxhLnNldEF0dHJpYnV0ZU5vZGUoZD1hLm93bmVyRG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKGMpKSxkLnZhbHVlPWIrPSIiLCJ2YWx1ZSI9PT1jfHxiPT09YS5nZXRBdHRyaWJ1dGUoYyk/Yjp2b2lkIDB9fSxvYy5pZD1vYy5uYW1lPW9jLmNvb3Jkcz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJiIiIT09ZC52YWx1ZT9kLnZhbHVlOm51bGx9LG0udmFsSG9va3MuYnV0dG9uPXtnZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoYik7cmV0dXJuIGMmJmMuc3BlY2lmaWVkP2MudmFsdWU6dm9pZCAwfSxzZXQ6bWMuc2V0fSxtLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e3NldDpmdW5jdGlvbihhLGIsYyl7bWMuc2V0KGEsIiI9PT1iPyExOmIsYyl9fSxtLmVhY2goWyJ3aWR0aCIsImhlaWdodCJdLGZ1bmN0aW9uKGEsYil7bS5hdHRySG9va3NbYl09e3NldDpmdW5jdGlvbihhLGMpe3JldHVybiIiPT09Yz8oYS5zZXRBdHRyaWJ1dGUoYiwiYXV0byIpLGMpOnZvaWQgMH19fSkpLGsuc3R5bGV8fChtLmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlLmNzc1RleHR8fHZvaWQgMH0sc2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dD1iKyIifX0pO3ZhciBzYz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvaSx0Yz0vXig/OmF8YXJlYSkkL2k7bS5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0ucHJvcCxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gYT1tLnByb3BGaXhbYV18fGEsdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbYV09dm9pZCAwLGRlbGV0ZSB0aGlzW2FdfWNhdGNoKGIpe319KX19KSxtLmV4dGVuZCh7cHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9LHByb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnPWEubm9kZVR5cGU7aWYoYSYmMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gZj0xIT09Z3x8IW0uaXNYTUxEb2MoYSksZiYmKGI9bS5wcm9wRml4W2JdfHxiLGU9bS5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM/ZSYmInNldCJpbiBlJiZ2b2lkIDAhPT0oZD1lLnNldChhLGMsYikpP2Q6YVtiXT1jOmUmJiJnZXQiaW4gZSYmbnVsbCE9PShkPWUuZ2V0KGEsYikpP2Q6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW0uZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI/cGFyc2VJbnQoYiwxMCk6c2MudGVzdChhLm5vZGVOYW1lKXx8dGMudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX19KSxrLmhyZWZOb3JtYWxpemVkfHxtLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXttLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxrLm9wdFNlbGVjdGVkfHwobS5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH19KSxtLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe20ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxrLmVuY3R5cGV8fChtLnByb3BGaXguZW5jdHlwZT0iZW5jb2RpbmciKTt2YXIgdWM9L1tcdFxyXG5cZl0vZzttLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9InN0cmluZyI9PXR5cGVvZiBhJiZhO2lmKG0uaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20odGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoailmb3IoYj0oYXx8IiIpLm1hdGNoKEUpfHxbXTtpPmg7aCsrKWlmKGM9dGhpc1toXSxkPTE9PT1jLm5vZGVUeXBlJiYoYy5jbGFzc05hbWU/KCIgIitjLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKToiICIpKXtmPTA7d2hpbGUoZT1iW2YrK10pZC5pbmRleE9mKCIgIitlKyIgIik8MCYmKGQrPWUrIiAiKTtnPW0udHJpbShkKSxjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9MD09PWFyZ3VtZW50cy5sZW5ndGh8fCJzdHJpbmciPT10eXBlb2YgYSYmYTtpZihtLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXttKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGIsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGopZm9yKGI9KGF8fCIiKS5tYXRjaChFKXx8W107aT5oO2grKylpZihjPXRoaXNbaF0sZD0xPT09Yy5ub2RlVHlwZSYmKGMuY2xhc3NOYW1lPygiICIrYy5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKHVjLCIgIik6IiIpKXtmPTA7d2hpbGUoZT1iW2YrK10pd2hpbGUoZC5pbmRleE9mKCIgIitlKyIgIik+PTApZD1kLnJlcGxhY2UoIiAiK2UrIiAiLCIgIik7Zz1hP20udHJpbShkKToiIixjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6dGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihjKXttKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsdGhpcy5jbGFzc05hbWUsYiksYil9OmZ1bmN0aW9uKCl7aWYoInN0cmluZyI9PT1jKXt2YXIgYixkPTAsZT1tKHRoaXMpLGY9YS5tYXRjaChFKXx8W107d2hpbGUoYj1mW2QrK10pZS5oYXNDbGFzcyhiKT9lLnJlbW92ZUNsYXNzKGIpOmUuYWRkQ2xhc3MoYil9ZWxzZShjPT09S3x8ImJvb2xlYW4iPT09YykmJih0aGlzLmNsYXNzTmFtZSYmbS5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSksdGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT0hMT8iIjptLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7ZD5jO2MrKylpZigxPT09dGhpc1tjXS5ub2RlVHlwZSYmKCIgIit0aGlzW2NdLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKS5pbmRleE9mKGIpPj0wKXJldHVybiEwO3JldHVybiExfX0pLG0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe20uZm5bYl09ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfX0pLG0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX0sYmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGIsYSxjLGQpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9fSk7dmFyIHZjPW0ubm93KCksd2M9L1w/Lyx4Yz0vKCwpfChcW3x7KXwofXxdKXwiKD86W14iXFxcclxuXXxcXFsiXFxcL2JmbnJ0XXxcXHVbXGRhLWZBLUZdezR9KSoiXHMqOj98dHJ1ZXxmYWxzZXxudWxsfC0/KD8hMFxkKVxkKyg/OlwuXGQrfCkoPzpbZUVdWystXT9cZCt8KS9nO20ucGFyc2VKU09OPWZ1bmN0aW9uKGIpe2lmKGEuSlNPTiYmYS5KU09OLnBhcnNlKXJldHVybiBhLkpTT04ucGFyc2UoYisiIik7dmFyIGMsZD1udWxsLGU9bS50cmltKGIrIiIpO3JldHVybiBlJiYhbS50cmltKGUucmVwbGFjZSh4YyxmdW5jdGlvbihhLGIsZSxmKXtyZXR1cm4gYyYmYiYmKGQ9MCksMD09PWQ/YTooYz1lfHxiLGQrPSFmLSFlLCIiKX0pKT9GdW5jdGlvbigicmV0dXJuICIrZSkoKTptLmVycm9yKCJJbnZhbGlkIEpTT046ICIrYil9LG0ucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGMsZDtpZighYnx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBudWxsO3RyeXthLkRPTVBhcnNlcj8oZD1uZXcgRE9NUGFyc2VyLGM9ZC5wYXJzZUZyb21TdHJpbmcoYiwidGV4dC94bWwiKSk6KGM9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bS5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIHljLHpjLEFjPS8jLiokLyxCYz0vKFs/Jl0pXz1bXiZdKi8sQ2M9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxEYz0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxFYz0vXig/OkdFVHxIRUFEKSQvLEZjPS9eXC9cLy8sR2M9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sSGM9e30sSWM9e30sSmM9IiovIi5jb25jYXQoIioiKTt0cnl7emM9bG9jYXRpb24uaHJlZn1jYXRjaChLYyl7emM9eS5jcmVhdGVFbGVtZW50KCJhIiksemMuaHJlZj0iIix6Yz16Yy5ocmVmfXljPUdjLmV4ZWMoemMudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIExjKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbXTtpZihtLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gTWMoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09SWM7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxtLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBOYyhhLGIpe3ZhciBjLGQsZT1tLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZtLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gT2MoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gUGMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1tLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6emMsdHlwZToiR0VUIixpc0xvY2FsOkRjLnRlc3QoeWNbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SmMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L3htbC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjptLnBhcnNlSlNPTiwidGV4dCB4bWwiOm0ucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP05jKE5jKGEsbS5hamF4U2V0dGluZ3MpLGIpOk5jKG0uYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOkxjKEhjKSxhamF4VHJhbnNwb3J0OkxjKEljKSxhamF4OmZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxiPWJ8fHt9O3ZhciBjLGQsZSxmLGcsaCxpLGosaz1tLmFqYXhTZXR1cCh7fSxiKSxsPWsuY29udGV4dHx8ayxuPWsuY29udGV4dCYmKGwubm9kZVR5cGV8fGwuanF1ZXJ5KT9tKGwpOm0uZXZlbnQsbz1tLkRlZmVycmVkKCkscD1tLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxxPWsuc3RhdHVzQ29kZXx8e30scj17fSxzPXt9LHQ9MCx1PSJjYW5jZWxlZCIsdj17cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKDI9PT10KXtpZighail7aj17fTt3aGlsZShiPUNjLmV4ZWMoZikpaltiWzFdLnRvTG93ZXJDYXNlKCldPWJbMl19Yj1qW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PWI/bnVsbDpifSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXQ/ZjpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b0xvd2VyQ2FzZSgpO3JldHVybiB0fHwoYT1zW2NdPXNbY118fGEsclthXT1iKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiB0fHwoay5taW1lVHlwZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYoMj50KWZvcihiIGluIGEpcVtiXT1bcVtiXSxhW2JdXTtlbHNlIHYuYWx3YXlzKGFbdi5zdGF0dXNdKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YXx8dTtyZXR1cm4gaSYmaS5hYm9ydChiKSx4KDAsYiksdGhpc319O2lmKG8ucHJvbWlzZSh2KS5jb21wbGV0ZT1wLmFkZCx2LnN1Y2Nlc3M9di5kb25lLHYuZXJyb3I9di5mYWlsLGsudXJsPSgoYXx8ay51cmx8fHpjKSsiIikucmVwbGFjZShBYywiIikucmVwbGFjZShGYyx5Y1sxXSsiLy8iKSxrLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ay5tZXRob2R8fGsudHlwZSxrLmRhdGFUeXBlcz1tLnRyaW0oay5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbIiJdLG51bGw9PWsuY3Jvc3NEb21haW4mJihjPUdjLmV4ZWMoay51cmwudG9Mb3dlckNhc2UoKSksay5jcm9zc0RvbWFpbj0hKCFjfHxjWzFdPT09eWNbMV0mJmNbMl09PT15Y1syXSYmKGNbM118fCgiaHR0cDoiPT09Y1sxXT8iODAiOiI0NDMiKSk9PT0oeWNbM118fCgiaHR0cDoiPT09eWNbMV0/IjgwIjoiNDQzIikpKSksay5kYXRhJiZrLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIGsuZGF0YSYmKGsuZGF0YT1tLnBhcmFtKGsuZGF0YSxrLnRyYWRpdGlvbmFsKSksTWMoSGMsayxiLHYpLDI9PT10KXJldHVybiB2O2g9ay5nbG9iYWwsaCYmMD09PW0uYWN0aXZlKysmJm0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksay50eXBlPWsudHlwZS50b1VwcGVyQ2FzZSgpLGsuaGFzQ29udGVudD0hRWMudGVzdChrLnR5cGUpLGU9ay51cmwsay5oYXNDb250ZW50fHwoay5kYXRhJiYoZT1rLnVybCs9KHdjLnRlc3QoZSk/IiYiOiI/Iikray5kYXRhLGRlbGV0ZSBrLmRhdGEpLGsuY2FjaGU9PT0hMSYmKGsudXJsPUJjLnRlc3QoZSk/ZS5yZXBsYWNlKEJjLCIkMV89Iit2YysrKTplKyh3Yy50ZXN0KGUpPyImIjoiPyIpKyJfPSIrdmMrKykpLGsuaWZNb2RpZmllZCYmKG0ubGFzdE1vZGlmaWVkW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixtLmxhc3RNb2RpZmllZFtlXSksbS5ldGFnW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLG0uZXRhZ1tlXSkpLChrLmRhdGEmJmsuaGFzQ29udGVudCYmay5jb250ZW50VHlwZSE9PSExfHxiLmNvbnRlbnRUeXBlKSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGsuY29udGVudFR5cGUpLHYuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixrLmRhdGFUeXBlc1swXSYmay5hY2NlcHRzW2suZGF0YVR5cGVzWzBdXT9rLmFjY2VwdHNbay5kYXRhVHlwZXNbMF1dKygiKiIhPT1rLmRhdGFUeXBlc1swXT8iLCAiK0pjKyI7IHE9MC4wMSI6IiIpOmsuYWNjZXB0c1siKiJdKTtmb3IoZCBpbiBrLmhlYWRlcnMpdi5zZXRSZXF1ZXN0SGVhZGVyKGQsay5oZWFkZXJzW2RdKTtpZihrLmJlZm9yZVNlbmQmJihrLmJlZm9yZVNlbmQuY2FsbChsLHYsayk9PT0hMXx8Mj09PXQpKXJldHVybiB2LmFib3J0KCk7dT0iYWJvcnQiO2ZvcihkIGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbZF0oa1tkXSk7aWYoaT1NYyhJYyxrLGIsdikpe3YucmVhZHlTdGF0ZT0xLGgmJm4udHJpZ2dlcigiYWpheFNlbmQiLFt2LGtdKSxrLmFzeW5jJiZrLnRpbWVvdXQ+MCYmKGc9c2V0VGltZW91dChmdW5jdGlvbigpe3YuYWJvcnQoInRpbWVvdXQiKX0say50aW1lb3V0KSk7dHJ5e3Q9MSxpLnNlbmQocix4KX1jYXRjaCh3KXtpZighKDI+dCkpdGhyb3cgdzt4KC0xLHcpfX1lbHNlIHgoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGoscixzLHUsdyx4PWI7MiE9PXQmJih0PTIsZyYmY2xlYXJUaW1lb3V0KGcpLGk9dm9pZCAwLGY9ZHx8IiIsdi5yZWFkeVN0YXRlPWE+MD80OjAsaj1hPj0yMDAmJjMwMD5hfHwzMDQ9PT1hLGMmJih1PU9jKGssdixjKSksdT1QYyhrLHUsdixqKSxqPyhrLmlmTW9kaWZpZWQmJih3PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSx3JiYobS5sYXN0TW9kaWZpZWRbZV09dyksdz12LmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIiksdyYmKG0uZXRhZ1tlXT13KSksMjA0PT09YXx8IkhFQUQiPT09ay50eXBlP3g9Im5vY29udGVudCI6MzA0PT09YT94PSJub3Rtb2RpZmllZCI6KHg9dS5zdGF0ZSxyPXUuZGF0YSxzPXUuZXJyb3Isaj0hcykpOihzPXgsKGF8fCF4KSYmKHg9ImVycm9yIiwwPmEmJihhPTApKSksdi5zdGF0dXM9YSx2LnN0YXR1c1RleHQ9KGJ8fHgpKyIiLGo/by5yZXNvbHZlV2l0aChsLFtyLHgsdl0pOm8ucmVqZWN0V2l0aChsLFt2LHgsc10pLHYuc3RhdHVzQ29kZShxKSxxPXZvaWQgMCxoJiZuLnRyaWdnZXIoaj8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt2LGssaj9yOnNdKSxwLmZpcmVXaXRoKGwsW3YseF0pLGgmJihuLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3Ysa10pLC0tbS5hY3RpdmV8fG0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB2fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe21bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG0uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG0uYWpheCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0pfX0pLG0uZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGEsYil7bS5mbltiXT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5vbihiLGEpfX0pLG0uX2V2YWxVcmw9ZnVuY3Rpb24oYSl7cmV0dXJuIG0uYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0Iixhc3luYzohMSxnbG9iYWw6ITEsInRocm93cyI6ITB9KX0sbS5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7aWYobS5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bSh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGIpKX0pO2lmKHRoaXNbMF0pe3ZhciBiPW0oYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0Q2hpbGQmJjE9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUpYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihiKXttKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9OmZ1bmN0aW9uKCl7dmFyIGI9bSh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1tLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXttKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcyxjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7bS5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fG0odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pLG0uZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXRXaWR0aDw9MCYmYS5vZmZzZXRIZWlnaHQ8PTB8fCFrLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpJiYibm9uZSI9PT0oYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxtLmNzcyhhLCJkaXNwbGF5IikpfSxtLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFtLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9O3ZhciBRYz0vJTIwL2csUmM9L1xbXF0kLyxTYz0vXHI/XG4vZyxUYz0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksVWM9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIFZjKGEsYixjLGQpe3ZhciBlO2lmKG0uaXNBcnJheShiKSltLmVhY2goYixmdW5jdGlvbihiLGUpe2N8fFJjLnRlc3QoYSk/ZChhLGUpOlZjKGErIlsiKygib2JqZWN0Ij09dHlwZW9mIGU/YjoiIikrIl0iLGUsYyxkKX0pO2Vsc2UgaWYoY3x8Im9iamVjdCIhPT1tLnR5cGUoYikpZChhLGIpO2Vsc2UgZm9yKGUgaW4gYilWYyhhKyJbIitlKyJdIixiW2VdLGMsZCl9bS5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1mdW5jdGlvbihhLGIpe2I9bS5pc0Z1bmN0aW9uKGIpP2IoKTpudWxsPT1iPyIiOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYil9O2lmKHZvaWQgMD09PWImJihiPW0uYWpheFNldHRpbmdzJiZtLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCksbS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIW0uaXNQbGFpbk9iamVjdChhKSltLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKVZjKGMsYVtjXSxiLGUpO3JldHVybiBkLmpvaW4oIiYiKS5yZXBsYWNlKFFjLCIrIil9LG0uZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gbS5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPW0ucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP20ubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIW0odGhpcykuaXMoIjpkaXNhYmxlZCIpJiZVYy50ZXN0KHRoaXMubm9kZU5hbWUpJiYhVGMudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IVcudGVzdChhKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1tKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1jP251bGw6bS5pc0FycmF5KGMpP20ubWFwKGMsZnVuY3Rpb24oYSl7cmV0dXJue25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShTYywiXHJcbiIpfX0pOntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoU2MsIlxyXG4iKX19KS5nZXQoKX19KSxtLmFqYXhTZXR0aW5ncy54aHI9dm9pZCAwIT09YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmL14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmWmMoKXx8JGMoKX06WmM7dmFyIFdjPTAsWGM9e30sWWM9bS5hamF4U2V0dGluZ3MueGhyKCk7YS5BY3RpdmVYT2JqZWN0JiZtKGEpLm9uKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIFhjKVhjW2FdKHZvaWQgMCwhMCl9KSxrLmNvcnM9ISFZYyYmIndpdGhDcmVkZW50aWFscyJpbiBZYyxZYz1rLmFqYXg9ISFZYyxZYyYmbS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe2lmKCFhLmNyb3NzRG9tYWlufHxrLmNvcnMpe3ZhciBiO3JldHVybntzZW5kOmZ1bmN0aW9uKGMsZCl7dmFyIGUsZj1hLnhocigpLGc9KytXYztpZihmLm9wZW4oYS50eXBlLGEudXJsLGEuYXN5bmMsYS51c2VybmFtZSxhLnBhc3N3b3JkKSxhLnhockZpZWxkcylmb3IoZSBpbiBhLnhockZpZWxkcylmW2VdPWEueGhyRmllbGRzW2VdO2EubWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSYmZi5vdmVycmlkZU1pbWVUeXBlKGEubWltZVR5cGUpLGEuY3Jvc3NEb21haW58fGNbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGNbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZSBpbiBjKXZvaWQgMCE9PWNbZV0mJmYuc2V0UmVxdWVzdEhlYWRlcihlLGNbZV0rIiIpO2Yuc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCksYj1mdW5jdGlvbihjLGUpe3ZhciBoLGksajtpZihiJiYoZXx8ND09PWYucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIFhjW2ddLGI9dm9pZCAwLGYub25yZWFkeXN0YXRlY2hhbmdlPW0ubm9vcCxlKTQhPT1mLnJlYWR5U3RhdGUmJmYuYWJvcnQoKTtlbHNle2o9e30saD1mLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGYucmVzcG9uc2VUZXh0JiYoai50ZXh0PWYucmVzcG9uc2VUZXh0KTt0cnl7aT1mLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1ofHwhYS5pc0xvY2FsfHxhLmNyb3NzRG9tYWluPzEyMjM9PT1oJiYoaD0yMDQpOmg9ai50ZXh0PzIwMDo0MDR9aiYmZChoLGksaixmLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYS5hc3luYz80PT09Zi5yZWFkeVN0YXRlP3NldFRpbWVvdXQoYik6Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9WGNbZ109YjpiKCl9LGFib3J0OmZ1bmN0aW9uKCl7YiYmYih2b2lkIDAsITApfX19fSk7ZnVuY3Rpb24gWmMoKXt0cnl7cmV0dXJuIG5ldyBhLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGIpe319ZnVuY3Rpb24gJGMoKXt0cnl7cmV0dXJuIG5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX1tLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6Lyg/OmphdmF8ZWNtYSlzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBtLmdsb2JhbEV2YWwoYSksYX19fSksbS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPXkuaGVhZHx8bSgiaGVhZCIpWzBdfHx5LmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihkLGUpe2I9eS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxlKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgX2M9W10sYWQ9Lyg9KVw/KD89JnwkKXxcP1w/LzttLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9X2MucG9wKCl8fG0uZXhwYW5kbysiXyIrdmMrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG0uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGFkLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYhKGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmYWQudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW0uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGFkLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPSh3Yy50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bS5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXthW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssX2MucHVzaChlKSksZyYmbS5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbS5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fHk7dmFyIGQ9dS5leGVjKGEpLGU9IWMmJltdO3JldHVybiBkP1tiLmNyZWF0ZUVsZW1lbnQoZFsxXSldOihkPW0uYnVpbGRGcmFnbWVudChbYV0sYixlKSxlJiZlLmxlbmd0aCYmbShlKS5yZW1vdmUoKSxtLm1lcmdlKFtdLGQuY2hpbGROb2RlcykpfTt2YXIgYmQ9bS5mbi5sb2FkO20uZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7aWYoInN0cmluZyIhPXR5cGVvZiBhJiZiZClyZXR1cm4gYmQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBkLGUsZixnPXRoaXMsaD1hLmluZGV4T2YoIiAiKTtyZXR1cm4gaD49MCYmKGQ9bS50cmltKGEuc2xpY2UoaCxhLmxlbmd0aCkpLGE9YS5zbGljZSgwLGgpKSxtLmlzRnVuY3Rpb24oYik/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLGcubGVuZ3RoPjAmJm0uYWpheCh7dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2U9YXJndW1lbnRzLGcuaHRtbChkP20oIjxkaXY+IikuYXBwZW5kKG0ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuY29tcGxldGUoYyYmZnVuY3Rpb24oYSxiKXtnLmVhY2goYyxlfHxbYS5yZXNwb25zZVRleHQsYixhXSl9KSx0aGlzfSxtLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gbS5ncmVwKG0udGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofTt2YXIgY2Q9YS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gZGQoYSl7cmV0dXJuIG0uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1tLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW0uY3NzKGEsInBvc2l0aW9uIiksbD1tKGEpLG49e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1tLmNzcyhhLCJ0b3AiKSxpPW0uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZtLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbS5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLGgpKSxudWxsIT1iLnRvcCYmKG4udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG4ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLG4pOmwuY3NzKG4pfX0sbS5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20ub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTt2YXIgYixjLGQ9e3RvcDowLGxlZnQ6MH0sZT10aGlzWzBdLGY9ZSYmZS5vd25lckRvY3VtZW50O2lmKGYpcmV0dXJuIGI9Zi5kb2N1bWVudEVsZW1lbnQsbS5jb250YWlucyhiLGUpPyh0eXBlb2YgZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QhPT1LJiYoZD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjPWRkKGYpLHt0b3A6ZC50b3ArKGMucGFnZVlPZmZzZXR8fGIuc2Nyb2xsVG9wKS0oYi5jbGllbnRUb3B8fDApLGxlZnQ6ZC5sZWZ0KyhjLnBhZ2VYT2Zmc2V0fHxiLnNjcm9sbExlZnQpLShiLmNsaWVudExlZnR8fDApfSk6ZH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiLGM9e3RvcDowLGxlZnQ6MH0sZD10aGlzWzBdO3JldHVybiJmaXhlZCI9PT1tLmNzcyhkLCJwb3NpdGlvbiIpP2I9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTooYT10aGlzLm9mZnNldFBhcmVudCgpLGI9dGhpcy5vZmZzZXQoKSxtLm5vZGVOYW1lKGFbMF0sImh0bWwiKXx8KGM9YS5vZmZzZXQoKSksYy50b3ArPW0uY3NzKGFbMF0sImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1tLmNzcyhhWzBdLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSkse3RvcDpiLnRvcC1jLnRvcC1tLmNzcyhkLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmIubGVmdC1jLmxlZnQtbS5jc3MoZCwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPXRoaXMub2Zmc2V0UGFyZW50fHxjZDt3aGlsZShhJiYhbS5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bS5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxjZH0pfX0pLG0uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO20uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9ZGQoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bShmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bShmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbS5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT1MYihrLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1KYihhLGIpLEhiLnRlc3QoYyk/bShhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxtLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe20uZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpiLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24oYyxkKXttLmZuW2RdPWZ1bmN0aW9uKGQsZSl7dmFyIGY9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGQpLGc9Y3x8KGQ9PT0hMHx8ZT09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gbS5pc1dpbmRvdyhiKT9iLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IithXTo5PT09Yi5ub2RlVHlwZT8oZT1iLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChiLmJvZHlbInNjcm9sbCIrYV0sZVsic2Nyb2xsIithXSxiLmJvZHlbIm9mZnNldCIrYV0sZVsib2Zmc2V0IithXSxlWyJjbGllbnQiK2FdKSk6dm9pZCAwPT09ZD9tLmNzcyhiLGMsZyk6bS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9KSxtLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG0uZm4uYW5kU2VsZj1tLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG19KTt2YXIgZWQ9YS5qUXVlcnksZmQ9YS4kO3JldHVybiBtLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW0mJihhLiQ9ZmQpLGImJmEualF1ZXJ5PT09bSYmKGEualF1ZXJ5PWVkKSxtfSx0eXBlb2YgYj09PUsmJihhLmpRdWVyeT1hLiQ9bSksbX0pOw==]]></data>
	</file>
	<file>
	  <filename>/js/s3Slider.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCglzM1NsaWRlcgoJCglEZXZlbG9wcGVkIEJ5OiBCb2JhbiBLYXJpw4XCoWlrIC0+IGh0dHA6Ly93d3cuc2VyaWUzLmluZm8vCiAgICAgICAgQ1NTIEhlbHA6IE3Dg8Kpc3rDg8Khcm9zIFLDg8KzYmVydCAtPiBodHRwOi8vd3d3LnBlcnNwZWN0aXZlZC5jb20vCglWZXJzaW9uOiAxLjAKCQoJQ29weXJpZ2h0OiBGZWVsIGZyZWUgdG8gcmVkaXN0cmlidXRlIHRoZSBzY3JpcHQvbW9kaWZ5IGl0LCBhcwoJCQkgICBsb25nIGFzIHlvdSBsZWF2ZSBteSBpbmZvcyBhdCB0aGUgdG9wLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgoKKGZ1bmN0aW9uKCQpeyAgCgogICAgJC5mbi5zM1NsaWRlciA9IGZ1bmN0aW9uKHZhcnMpIHsgICAgICAgCiAgICAgICAgCiAgICAgICAgdmFyIGVsZW1lbnQgICAgID0gdGhpczsKICAgICAgICB2YXIgdGltZU91dCAgICAgPSAodmFycy50aW1lT3V0ICE9IHVuZGVmaW5lZCkgPyB2YXJzLnRpbWVPdXQgOiA0MDAwOwogICAgICAgIHZhciBjdXJyZW50ICAgICA9IG51bGw7CiAgICAgICAgdmFyIHRpbWVPdXRGbiAgID0gbnVsbDsKICAgICAgICB2YXIgZmFkZXJTdGF0ICAgPSB0cnVlOwogICAgICAgIHZhciBtT3ZlciAgICAgICA9IGZhbHNlOwogICAgICAgIHZhciBpdGVtcyAgICAgICA9ICQoIiMiICsgZWxlbWVudFswXS5pZCArICJDb250ZW50IC4iICsgZWxlbWVudFswXS5pZCArICJJbWFnZSIpOwogICAgICAgIHZhciBpdGVtc1NwYW4gICA9ICQoIiMiICsgZWxlbWVudFswXS5pZCArICJDb250ZW50IC4iICsgZWxlbWVudFswXS5pZCArICJJbWFnZSBzcGFuIik7CiAgICAgICAgICAgIAogICAgICAgIGl0ZW1zLmVhY2goZnVuY3Rpb24oaSkgewogICAgCiAgICAgICAgICAgICQoaXRlbXNbaV0pLm1vdXNlb3ZlcihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgbU92ZXIgPSB0cnVlOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgICAgICQoaXRlbXNbaV0pLm1vdXNlb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgbU92ZXIgICA9IGZhbHNlOwogICAgICAgICAgICAgICAgZmFkZUVsZW1lbnQodHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAKICAgICAgICB9KTsKICAgICAgICAKICAgICAgICB2YXIgZmFkZUVsZW1lbnQgPSBmdW5jdGlvbihpc01vdXNlT3V0KSB7CiAgICAgICAgICAgIHZhciB0aGlzVGltZU91dCA9IChpc01vdXNlT3V0KSA/ICh0aW1lT3V0LzIpIDogdGltZU91dDsKICAgICAgICAgICAgdGhpc1RpbWVPdXQgPSAoZmFkZXJTdGF0KSA/IDEwIDogdGhpc1RpbWVPdXQ7CiAgICAgICAgICAgIGlmKGl0ZW1zLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgIHRpbWVPdXRGbiA9IHNldFRpbWVvdXQobWFrZVNsaWRlciwgdGhpc1RpbWVPdXQpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlBvb2YuLiIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHZhciBtYWtlU2xpZGVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGN1cnJlbnQgPSAoY3VycmVudCAhPSBudWxsKSA/IGN1cnJlbnQgOiBpdGVtc1soaXRlbXMubGVuZ3RoLTEpXTsKICAgICAgICAgICAgdmFyIGN1cnJObyAgICAgID0galF1ZXJ5LmluQXJyYXkoY3VycmVudCwgaXRlbXMpICsgMQogICAgICAgICAgICBjdXJyTm8gPSAoY3Vyck5vID09IGl0ZW1zLmxlbmd0aCkgPyAwIDogKGN1cnJObyAtIDEpOwogICAgICAgICAgICB2YXIgbmV3TWFyZ2luICAgPSAkKGVsZW1lbnQpLndpZHRoKCkgKiBjdXJyTm87CiAgICAgICAgICAgIGlmKGZhZGVyU3RhdCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpZighbU92ZXIpIHsKICAgICAgICAgICAgICAgICAgICAkKGl0ZW1zW2N1cnJOb10pLmZhZGVJbigodGltZU91dC82KSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCQoaXRlbXNTcGFuW2N1cnJOb10pLmNzcygnYm90dG9tJykgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChpdGVtc1NwYW5bY3Vyck5vXSkuc2xpZGVVcCgodGltZU91dC82KSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFkZXJTdGF0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGl0ZW1zW2N1cnJOb107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIW1PdmVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhZGVFbGVtZW50KGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaXRlbXNTcGFuW2N1cnJOb10pLnNsaWRlRG93bigodGltZU91dC82KSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFkZXJTdGF0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGl0ZW1zW2N1cnJOb107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIW1PdmVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhZGVFbGVtZW50KGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYoIW1PdmVyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoJChpdGVtc1NwYW5bY3Vyck5vXSkuY3NzKCdib3R0b20nKSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoaXRlbXNTcGFuW2N1cnJOb10pLnNsaWRlRG93bigodGltZU91dC82KSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGl0ZW1zW2N1cnJOb10pLmZhZGVPdXQoKHRpbWVPdXQvNiksIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhZGVyU3RhdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGl0ZW1zWyhjdXJyTm8rMSldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFtT3ZlcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWRlRWxlbWVudChmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoaXRlbXNTcGFuW2N1cnJOb10pLnNsaWRlVXAoKHRpbWVPdXQvNiksIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKGl0ZW1zW2N1cnJOb10pLmZhZGVPdXQoKHRpbWVPdXQvNiksIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhZGVyU3RhdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGl0ZW1zWyhjdXJyTm8rMSldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFtT3ZlcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWRlRWxlbWVudChmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBtYWtlU2xpZGVyKCk7CgogICAgfTsgIAoKfSkoalF1ZXJ5KTsgIA==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NpbXBsZSBTbGlkZXInOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdTaW1wbGUgU2xpZGVyJzsKJGxhbmdbJ2ltYWdlcyddID0gJ0ltYWdlcyc7CiRsYW5nWydzaG93cyddID0gJ1Nob3dzJzsKJGxhbmdbJ2VkaXRzZXR0aW5ncyddID0gJ0VkaXQgU2V0dGluZ3MnOwokbGFuZ1snYWRkJ10gPSAnQWRkJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbCddID0gJ0RlbCc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2xpbmsnXSA9ICdMaW5rJzsKJGxhbmdbJ29wYWNpdHknXSA9ICdPcGFjaXR5ICgwLTEwMCknOwokbGFuZ1sncG9zaXRpb24nXSA9ICdQb3NpdGlvbiBvZiBkZXNjcmlwdGlvbic7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1snYmFjayddID0gJ0JhY2snOwokbGFuZ1sncmVtb3ZlJ10gPSAnUmVtb3ZlJzsKJGxhbmdbJ2Rlc2lnbiddID0gJ0Rlc2lnbic7CiRsYW5nWydkZWZ3aWR0aCddID0gJ0RlZmF1bHQgV2lkdGgnOwokbGFuZ1snZGVmaGVpZ2h0J10gPSAnRGVmYXVsdCBIZWlnaHQnOwokbGFuZ1snZGVmZmFkZXRpbWUnXSA9ICdEZWZhdWx0IEZhZGUgVGltZSAobXMpJzsKJGxhbmdbJ2ZhZGV0aW1lJ10gPSAnRmFkZW91dCBUaW1lIChtcyknOwokbGFuZ1snZGVmanF1ZXJ5cGF0aCddID0gJ1VSTCBmb3IgSnF1ZXJ5IGpzIGxpYiAobm90IGluY2x1ZGVkIGlmIG51bGwpJzsKJGxhbmdbJ2RlZnMzc2xpZGVycGF0aCddID0gJ1VSTCBmb3IgczNzbGlkZXIganMgbGliIChub3QgaW5jbHVkZWQgaWYgbnVsbCknOwokbGFuZ1snZGVmb3BhY2l0eSddID0gJ0RlZmF1bHQgT3BhY2l0eSAoMC0xMDApJzsKJGxhbmdbJ2RlZnBvc2l0aW9uJ10gPSAnRGVmYXVsdCBwb3NpdGlvbiBvZiBkZXNjcmlwdGlvbic7CiRsYW5nWydsb2FkZGVmYXVsdCddID0gJ0xvYWQgZGVmYXVsdCB2YWx1ZSc7CiRsYW5nWydyZXNjYW4nXSA9ICdSZXNjYW4gZm9yIG5ldyBJbWFnZXMnOwokbGFuZ1sncmVzY2Fuc3VjY2VzcyddID0gJ1RoZSByZXNjYW4gb2YgZGlyZWN0b3J5IGlzIG92ZXInOwokbGFuZ1snbm90QUltYWdlJ10gPSAnVGhlIGZpbGUgaXMgbm90IGFuIGltYWdlIChqcGcvanBlZy9naWYvcG5nIGV4cGVjdGVkKSc7CiRsYW5nWydpbWFnZVRvb0hlYXZ5J10gPSAnVGhlIGZpbGUgaXMgdG9vIGhlYXZ5ICgzTW8gbWF4KSc7CiRsYW5nWyduYW1lUmVxdWlyZWQnXSA9ICdUaGUgbmFtZSBpcyByZXF1aXJlZCc7CgoKJGxhbmdbJ2hlaWdodCddID0gJ0hlaWdodCc7CiRsYW5nWyd3aWR0aCddID0gJ1dpZHRoJzsKJGxhbmdbJ2ltYWdlcyBhZGRhYmxlJ10gPSAnaW1hZ2VzIGNhbiBiZSBhZGRlZCc7CiRsYW5nWydpbWFnZXMgZGVsZXRlYWJsZSddID0gJ2ltYWdlcyBhbHJlYWR5IGluIHRoZSBzaG93JzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdzZXR0aW5ncyBzYXZlZCc7CiRsYW5nWydzaG93c2F2ZWQnXSA9ICdzaG93IHNhdmVkJzsKJGxhbmdbJ2ltYWdlc2F2ZWQnXSA9ICdpbWFnZSBzYXZlZCc7CiRsYW5nWydkZXNpZ25zYXZlZCddID0gJ2Rlc2lnbiBzYXZlZCc7CiRsYW5nWydzYXZlJ10gPSAnc2F2ZSc7CiRsYW5nWydzaG93bmFtZVJlcXVpcmVkJ10gPSAnVGhlIG5hbWUgb2YgdGhlIHNob3cgaXMgcmVxdWlyZWQnOwoKJGxhbmdbJ2hlbHBfc2hvdyddID0gJ1RoZSBuYW1lIG9mIHRoZSBzaG93IHRvIGRpc3BsYXknOwokbGFuZ1snaGVscF9zaHVmZmxlJ10gPSAnU2V0ICJ0cnVlIiBpZiB5b3Ugd2FudCBzaHVmZmxlIHRoZSBpbWFnZXMnOwoKCiRsYW5nWydoZWxwJ10gPSAnPHA+CgkJRGV2ZWxvcGVkIGJ5IDxhIGhyZWY9Ii8vZnVyaWUuYmUiPkJlc3M8L2E+LCBiYXNlZCBvbiB0aGUgd29yayBvZiA8YSBocmVmPSJodHRwOi8vd3d3LmJ2a3lhemlsaW0uY29tIiB0YXJnZXQ9Il9ibGFuayIgPkJWSyBTb2Z0d2FyZTwvYT4uIAoJCTwvcD4KCQk8aDI+SW1wb3J0YW50ITwvaDI+CgkJPHA+TWFrZSBzdXJlIHlvdXIgdXBsb2FkIGZvbGRlciBpcyB3cml0ZWFibGUgYmVmb3JlIGluc3RhbGxpbmcuPC9wPgoKCQk8aDI+VXNhZ2U8L2gyPgoJCTxwPkdvIHRvIENvbnRlbnQgLT4gU2ltcGxlIFNsaWRlciB0byBhZGQgaW1hZ2VzIGFuZCBzbGlkZXNob3dzLjwvcD4KCQk8cD5TaW1wbHkgcHV0IDxjb2RlPntTaW1wbGVTbGlkZXJ9PC9jb2RlPiB3aGVyZSB5b3Ugd291bGQgbGlrZSB0byBoYXZlIHRoZSBzbGlkZXNob3cuIEJ5IGRlZmF1bHQgYWxsIGltYWdlcyBhZGRlZCB0byB0aGUgbW9kdWxlIHdpbGwgYmUgZGlzcGxheWVkLiA8L3A+CgkJPHA+VG8gZGlzcGxheSBhIHBhcnRpY3VsYXIgc2hvdyBhbmQgb25seSBpbWFnZXMgYWRkZWQgdG8gdGhlIHNob3cgcHV0IDxjb2RlPntTaW1wbGVTbGlkZXIgc2hvdz1cJ3Nob3duYW1lXCd9PC9jb2RlPjwvcD4KCQk8cD48L3A+CgkJPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHRha2UgYSBsb29rIG9uIHRoZSBwcm9qZWN0IDxhIGhyZWY9Imh0dHA6Ly93d3cuc2VyaWUzLmluZm8vczNzbGlkZXIvIj5zM3NsaWRlcjwvYT48L3A+JwoJCTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[YDwhLS0gZHVtbXkgaW5kZXguaHRtbCAtLT4K]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[YDwhLS0gZHVtbXkgaW5kZXguaHRtbCAtLT4K]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.SimpleSliderDAO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgpjbGFzcyBTaW1wbGVTbGlkZXJEQU97CgoKIAlzdGF0aWMgZnVuY3Rpb24gZmluZEFsbFNob3dzKCl7CiAJCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9zaG93cyc7CiAgICAJJHJlc3VsdCA9IGNtc21zKCktPkdldERiKCktPkV4ZWN1dGUoJHNxbCk7CiAgICAJaWYoJHJlc3VsdCA9PT0gRkFMU0UpewoJCQllY2hvIGNtc21zKCktPkdldERiKCktPkVycm9yTXNnKCk7CgkJCXJldHVybjsKCQl9CgkJcmV0dXJuICRyZXN1bHQtPkdldEFycmF5KCk7CiAJfQogCXN0YXRpYyBmdW5jdGlvbiBmaW5kU2hvd3NCeVNob3duYW1lKCRzaG93bmFtZSl7CiAJCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9zaG93cyB3aGVyZSBzaG93bmFtZSA9ID8nOwogICAgCSRyZXN1bHQgPSBjbXNtcygpLT5HZXREYigpLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRzaG93bmFtZSkpOwogICAgCWlmKCRyZXN1bHQgPT09IEZBTFNFKXsKCQkJZWNobyBjbXNtcygpLT5HZXREYigpLT5FcnJvck1zZygpOwoJCQlyZXR1cm47CgkJfQoJCXJldHVybiAkcmVzdWx0LT5HZXRBcnJheSgpOwogCX0KCiAJc3RhdGljIGZ1bmN0aW9uIGZpbmRTaG93c0J5U2hvd2lkKCRzaG93bmlkKXsKIAkJJHNxbD0nU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9zaG93cyBXSEVSRSBzaG93aWQ9Pyc7CgkJJHJlc3VsdD1jbXNtcygpLT5HZXREYigpLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRzaG93bmlkKSk7CiAgICAJaWYoJHJlc3VsdCA9PT0gRkFMU0UpewoJCQllY2hvIGNtc21zKCktPkdldERiKCktPkVycm9yTXNnKCk7CgkJCXJldHVybjsKCQl9CgkJcmV0dXJuICRyZXN1bHQtPkdldEFycmF5KCk7CiAJfQogCXN0YXRpYyBmdW5jdGlvbiBkZWxldGVTaG93c0J5U2hvd2lkKCRzaG93bmlkKXsKIAkJJHNxbD0nREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfc2hvd3MgV0hFUkUgc2hvd2lkPT8nOwoJCSRyZXN1bHQ9Y21zbXMoKS0+R2V0RGIoKS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkc2hvd25pZCkpOwogICAgCWlmKCRyZXN1bHQgPT09IEZBTFNFKXsKCQkJZWNobyBjbXNtcygpLT5HZXREYigpLT5FcnJvck1zZygpOwoJCQlyZXR1cm47CgkJfQoJCXJldHVybjsKIAl9CgogCS8qKioqKioqKioqKioqKioqKioqKioqKiovCgoKCiAJc3RhdGljIGZ1bmN0aW9uIGZpbmRBbGxJbWFnZXMoKXsKCQkkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfaW1hZ2VzJzsKICAgIAkkcmVzdWx0ID0gY21zbXMoKS0+R2V0RGIoKS0+RXhlY3V0ZSgkc3FsKTsKICAgIAlpZigkcmVzdWx0ID09PSBGQUxTRSl7CgkJCWVjaG8gY21zbXMoKS0+R2V0RGIoKS0+RXJyb3JNc2coKTsKCQkJcmV0dXJuOwoJCX0KCQlyZXR1cm4gJHJlc3VsdC0+R2V0QXJyYXkoKTsKIAl9CgogCXN0YXRpYyBmdW5jdGlvbiBmaW5kSW1hZ2VzQnlJbWFnZWlkKCRpbWFnZWlkKXsKIAkJJHNxbD0nU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9pbWFnZXMgV0hFUkUgaWQ9Pyc7CiAJCSRyZXN1bHQ9Y21zbXMoKS0+R2V0RGIoKS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkaW1hZ2VpZCkpOwogICAgCWlmKCRyZXN1bHQgPT09IEZBTFNFKXsKCQkJZWNobyBjbXNtcygpLT5HZXREYigpLT5FcnJvck1zZygpOwoJCQlyZXR1cm47CgkJfQoJCXJldHVybiAkcmVzdWx0LT5HZXRBcnJheSgpOwogCX0KCiAJc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZUltYWdlc0J5SW1hZ2VpZCgkaW1hZ2VpZCl7CiAJCSRzcWw9J0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX2ltYWdlcyBXSEVSRSBpZD0/JzsKCQkkcmVzdWx0PWNtc21zKCktPkdldERiKCktPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGltYWdlaWQpKTsKICAgIAlpZigkcmVzdWx0ID09PSBGQUxTRSl7CgkJCWVjaG8gY21zbXMoKS0+R2V0RGIoKS0+RXJyb3JNc2coKTsKCQkJcmV0dXJuOwoJCX0KCQlyZXR1cm47CiAJfQoKIAlzdGF0aWMgZnVuY3Rpb24gZmluZEltYWdlc0J5U2hvd2lkKCRzaG93aWQpewogCQkkc3FsPSdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX2ltYWdlcyBpbWcsICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX3Nob3dpbWFnZXMgc2hvd2ltZyAKIAkJCQlXSEVSRSBzaG93aW1nLnNob3dpZCA9ID8gYW5kIGltZy5pZCA9IHNob3dpbWcuaW1hZ2VpZCc7CiAJCSRyZXN1bHQ9Y21zbXMoKS0+R2V0RGIoKS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkc2hvd2lkKSk7CiAgICAJaWYoJHJlc3VsdCA9PT0gRkFMU0UpewoJCQllY2hvIGNtc21zKCktPkdldERiKCktPkVycm9yTXNnKCk7CgkJCXJldHVybjsKCQl9CgkJcmV0dXJuICRyZXN1bHQtPkdldEFycmF5KCk7CiAJfQoKIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgogCXN0YXRpYyBmdW5jdGlvbiBkZWxldGVTaG93SW1hZ2VzQnlTaG93aWQoJHNob3dpZCl7CiAJCSRzcWw9J0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX3Nob3dpbWFnZXMgV0hFUkUgc2hvd2lkPT8nOwoJCSRyZXN1bHQ9Y21zbXMoKS0+R2V0RGIoKS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkc2hvd2lkKSk7CiAgICAJaWYoJHJlc3VsdCA9PT0gRkFMU0UpewoJCQllY2hvIGNtc21zKCktPkdldERiKCktPkVycm9yTXNnKCk7CgkJCXJldHVybjsKCQl9CgkJcmV0dXJuOwogCX0KCiAJc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZVNob3dJbWFnZXNCeUltYWdlaWQoJGltYWdlaWQpewogCQkkc3FsPSdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9zaG93aW1hZ2VzIFdIRVJFIGltYWdlaWQ9Pyc7CgkJJHJlc3VsdD1jbXNtcygpLT5HZXREYigpLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRpbWFnZWlkKSk7CiAgICAJaWYoJHJlc3VsdCA9PT0gRkFMU0UpewoJCQllY2hvIGNtc21zKCktPkdldERiKCktPkVycm9yTXNnKCk7CgkJCXJldHVybjsKCQl9CgkJcmV0dXJuOwogCX0KCiAJc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZVNob3dJbWFnZXNCeUltYWdlaWRBbmRTaG93SWQoJGltYWdlaWQsICRzaG93aWQpewogCQkkc3FsPSdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9zaG93aW1hZ2VzIFdIRVJFIGltYWdlaWQ9PyBhbmQgc2hvd2lkPT8gJzsKCQkkcmVzdWx0PWNtc21zKCktPkdldERiKCktPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGltYWdlaWQsICRzaG93aWQpKTsKICAgIAlpZigkcmVzdWx0ID09PSBGQUxTRSl7CgkJCWVjaG8gY21zbXMoKS0+R2V0RGIoKS0+RXJyb3JNc2coKTsKCQkJcmV0dXJuOwoJCX0KCQlyZXR1cm47CiAJfQoKIAlzdGF0aWMgZnVuY3Rpb24gZmluZEFkZGFibGVkSW1hZ2VzQnlTaG93aWQoJHNob3dpZCl7CiAJCSRzcWw9J1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfaW1hZ2VzIGltZyBXSEVSRSBpbWcuaWQgbm90IGluIAogCQkJKHNlbGVjdCBkaXN0aW5jdCBzaG8uaW1hZ2VpZCBmcm9tICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX3Nob3dpbWFnZXMgc2hvIHdoZXJlIHNoby5zaG93aWQgPSA/KTsnOwogCQkkcmVzdWx0PWNtc21zKCktPkdldERiKCktPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHNob3dpZCkpOwogICAgCWlmKCRyZXN1bHQgPT09IEZBTFNFKXsKCQkJZWNobyBjbXNtcygpLT5HZXREYigpLT5FcnJvck1zZygpOwoJCQlyZXR1cm47CgkJfQoJCXJldHVybiAkcmVzdWx0LT5HZXRBcnJheSgpOwogCX0KCgkvKnN0YXRpYyBmdW5jdGlvbiBmaW5kU2hvd0ltYWdlc0J5U2hvd2lkKCRzaG93aWQpewogCQkkc3FsPSdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX3Nob3dpbWFnZXMgV0hFUkUgc2hvd2lkPT8nOwoJCSRyZXN1bHQ9Y21zbXMoKS0+R2V0RGIoKS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkc2hvd2lkKSk7CiAgICAJaWYoJHJlc3VsdCA9PT0gRkFMU0UpewoJCQllY2hvIGNtc21zKCktPkdldERiKCktPkVycm9yTXNnKCk7CgkJCXJldHVybjsKCQl9CgkJcmV0dXJuICRyZXN1bHQtPkdldEFycmF5KCk7CiAJfSovCn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.SimpleSliderUtils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNpbXBsZVNsaWRlclV0aWxzewoKCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRpc3BsYXlTZWxlY3RBcnJheSgkc2VsZWN0bGlzdCwgJGlkPTApewoJCSRzdHJpbmcgPSAnJzsKCQkkc2VsZWN0ZWQgPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCIgJzsKCgkJZm9yZWFjaCgkc2VsZWN0bGlzdCBhcyAka2V5ID0+ICR2YWwpewoJCQkkc3RyaW5nIC49IjxvcHRpb24gdmFsdWU9JyIuJGtleS4iJyI7CgkJCWlmKCRrZXk9PSRpZCl7CgkJCQkkc3RyaW5nIC49ICRzZWxlY3RlZDsKCQkJfQoJCQkkc3RyaW5nIC49ICI+Ii4kdmFsLiI8L29wdGlvbj4iOwogICAgCX0KCiAgICAJcmV0dXJuICRzdHJpbmc7Cgl9CgoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0VXBsb2FkRGlyZWN0b3J5KCl7CgkJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoJCSRkaXJlY3RvcnkgPSAkY29uZmlnWydyb290X3BhdGgnXS4nL3VwbG9hZHMvc2xpZGVyaW1hZ2VzLyc7CgkJcmV0dXJuICRkaXJlY3Rvcnk7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRVcGxvYWRVcmwoKXsKCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJJGRpcmVjdG9yeSA9ICRjb25maWdbJ3Jvb3RfdXJsJ10uJy91cGxvYWRzL3NsaWRlcmltYWdlcy8nOwoJCXJldHVybiAkZGlyZWN0b3J5OwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2VuZXJhdGVJbnNlcnRTUUwoJHRhYmxlLCAkZmllbGRzKXsKCQkkc3FsPSdJTlNFUlQgSU5UTyAnLiR0YWJsZS4nICgnOwoJCSRrZXlzPWFycmF5X2tleXMoJGZpZWxkcyk7CgkJJHZhbHVlcz0nIFZBTFVFUyAoJzsKCQlmb3IoJGk9MDsgJGk8KHNpemVvZigkZmllbGRzKS0xKTsgJGkrKyl7CgkJCSR2YWx1ZXMuPSciJy4kZmllbGRzWyRrZXlzWyRpXV0uJyIsICc7CgkJCSRzcWwuPSRrZXlzWyRpXS4nLCAnOwoJCX0KCQkkdmFsdWVzLj0nIicuJGZpZWxkc1ska2V5c1skaV1dLiciKTsgJzsKCQkkc3FsLj0ka2V5c1skaV0uJykgJy4kdmFsdWVzOwoJCQoJCXJldHVybiAkc3FsOwoJfQoJCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdlbmVyYXRlVXBkYXRlU1FMKCR0YWJsZSwgJGZpZWxkcywgJHdoZXJlKXsKCQkkc3FsPSdVUERBVEUgJy4kdGFibGUuJyBTRVQgJzsKCQkka2V5cz1hcnJheV9rZXlzKCRmaWVsZHMpOwoJCWZvcigkaT0wOyAkaTwoc2l6ZW9mKCRmaWVsZHMpLTEpOyAkaSsrKXsKCQkJJHNxbC49JGtleXNbJGldLic9IicuJGZpZWxkc1ska2V5c1skaV1dLiciLCAnOwoJCX0KCQkkc3FsLj0ka2V5c1skaV0uJz0iJy4kZmllbGRzWyRrZXlzWyRpXV0uJyIgV0hFUkUgJy4kd2hlcmUuJzsnOwoJCQoJCXJldHVybiAkc3FsOwoJfQp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoKLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgovL01ha2UgYSBuZXcgImRpY3Rpb25hcnkiIChBRE9EQi1zcGVhayBmb3IgYSB0YWJsZSkKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKLy9BZGQgdGhlIGZpZWxkcyBhcyBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcuCiRmaWVsZHMgPSAiaWQgSSBBVVRPIEtFWSwKdGl0bGUgQyg1MCksCmltYWdlbGluayBDKDI1NSksCmZpbGVuYW1lIEMoMjU1KSwKZGVzY3JpcHRpb24gWCAiOwoKLy9Ob3RlIHRoZSBuYW1pbmcgc2NoZW1lIHRoYXQgc2hvdWxkIGJlIGZvbGxvd2VkIHdoZW4gYWRkaW5nIHRhYmxlcyB0byB0aGUgZGF0YWJhc2UsCi8vIHNvIGFzIHRvIG1ha2UgaXQgZWFzeSB0byByZWNvZ25pemUgd2hvIHRoZSB0YWJsZSBiZWxvbmdzIHRvLCBhbmQgdG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBvdGhlciBtb2R1bGVzLgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX2ltYWdlcycsICRmaWVsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vQWRkIHRoZSBmaWVsZHMgYXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLgokZmllbGRzID0gInNob3dpZCBJIEFVVE8gS0VZLApzaG93bmFtZSBDKDUwKSwKd2lkdGggSSwKaGVpZ2h0IEksCmZhZGV0aW1lIEksCm9wYWNpdHkgSSwKcG9zaXRpb24gSSI7CgovL05vdGUgdGhlIG5hbWluZyBzY2hlbWUgdGhhdCBzaG91bGQgYmUgZm9sbG93ZWQgd2hlbiBhZGRpbmcgdGFibGVzIHRvIHRoZSBkYXRhYmFzZSwKLy8gc28gYXMgdG8gbWFrZSBpdCBlYXN5IHRvIHJlY29nbml6ZSB3aG8gdGhlIHRhYmxlIGJlbG9uZ3MgdG8sIGFuZCB0byBhdm9pZCBjb25mbGljdCB3aXRoIG90aGVyIG1vZHVsZXMuCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfc2hvd3MnLCAkZmllbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdzaG93bmFtZScsIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9zaG93cycsICdzaG93bmFtZScsIGFycmF5KCdVTklRVUUnKSk7CQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCi8vQWRkIHRoZSBmaWVsZHMgYXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLgokZmllbGRzID0gInNob3dpZCBJLAppbWFnZWlkIEkKIjsKCi8vIHNvIGFzIHRvIG1ha2UgaXQgZWFzeSB0byByZWNvZ25pemUgd2hvIHRoZSB0YWJsZSBiZWxvbmdzIHRvLCBhbmQgdG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBvdGhlciBtb2R1bGVzLgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX3Nob3dpbWFnZXMnLCAkZmllbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdzaG93aWQnLCBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfc2hvd2ltYWdlcycsICdzaG93aWQnKTsJCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCQkKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnc2hvd2ltYWdlJywgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX3Nob3dpbWFnZXMnLCBhcnJheSgnc2hvd2lkJywgJ2ltYWdlaWQnKSwgYXJyYXkoJ1VOSVFVRScpKTsJCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCgokdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVmd2lkdGgnLCA0MDApOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVmaGVpZ2h0JywgMzAwKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2RlZmZhZGV0aW1lJywgNDAwMCk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdkZWZvcGFjaXR5JywgNjApOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVmcG9zaXRpb24nLCAyKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2RlZmpxdWVyeXBhdGgnLCAkY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy9TaW1wbGVTbGlkZXIvanMvanF1ZXJ5LTEuMTEuMS5taW4uanMnKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2RlZnMzc2xpZGVycGF0aCcsICRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL1NpbXBsZVNsaWRlci9qcy9zM1NsaWRlci5qcycpOwokdGhpcy0+U2V0VGVtcGxhdGUoJ2NzcycsICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCdjc3MnKSk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnZGVmYXVsdCcsICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCdkZWZhdWx0JykpOwoKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1NpbXBsZVNsaWRlciBBZG1pbicsICdTaW1wbGVTbGlkZXIgQWRtaW4nKTsKCiRkaXJlY3RvcnkgPSBTaW1wbGVTbGlkZXJVdGlsczo6Z2V0VXBsb2FkRGlyZWN0b3J5KCk7CmlmKCFmaWxlX2V4aXN0cygkZGlyZWN0b3J5KSl7Cglta2RpcigkZGlyZWN0b3J5LCAwNzU1LCB0cnVlKTsKfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSkgZXhpdDsKCiRkYiA9IGNtc21zKCktPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX2ltYWdlcycgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfc2hvd3MnICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX3Nob3dpbWFnZXMnICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKLy9SZW1vdmUgdGhlIHNlcXVlbmNlCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdTaW1wbGVTbGlkZXIgQWRtaW4nKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKSBleGl0OwoKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKc3dpdGNoKCRvbGR2ZXJzaW9uKXsKICAgIAoJY2FzZSAnMC4yLjEnOgoJY2FzZSAnMC4yJzoKCWNhc2UgJzAuMSc6CgkJJHNxbGFycmF5PWFycmF5KDA9PidBTFRFUiBUQUJMRSBgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfc2hvd3NgIEFERCBgd2lkdGhgIElOVCBOT1QgTlVMTCAsIEFERCBgaGVpZ2h0YCBJTlQgTk9UIE5VTEwgLCBBREQgYGZhZGV0aW1lYCBJTlQgTk9UIE5VTEwgJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCWJyZWFrOwoJY2FzZSAnMC4zJzoKCQkkdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVmanF1ZXJ5cGF0aCcsICRjb25maWdbJ3Jvb3RfdXJsJ10uJy9saWIvanF1ZXJ5LmpzJyk7CgkJJHRoaXMtPnNldFByZWZlcmVuY2UoJ2RlZnMzc2xpZGVycGF0aCcsICRjb25maWdbJ3Jvb3RfdXJsJ10uJy9saWIvczNTbGlkZXIuanMnKTsKCWNhc2UgJzEuMCc6CgkJJHRoaXMtPlNldFRlbXBsYXRlKCdjc3MnLCAkdGhpcy0+R2V0VGVtcGxhdGVGcm9tRmlsZSgnY3NzJykpOwoJCSR0aGlzLT5TZXRUZW1wbGF0ZSgnZGVmYXVsdCcsICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCdkZWZhdWx0JykpOwoJCSR0aGlzLT5zZXRQcmVmZXJlbmNlKCdkZWZwb3NpdGlvbicsIDIpOwoJCSR0aGlzLT5zZXRQcmVmZXJlbmNlKCdkZWZvcGFjaXR5JywgNjApOwoKCQkkc3FsYXJyYXk9YXJyYXkoMD0+J0FMVEVSIFRBQkxFIGAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9zaG93c2AgQUREIGBvcGFjaXR5YCBJTlQgTk9UIE5VTEwgLCBBREQgYHBvc2l0aW9uYCBJTlQgTk9UIE5VTEwgJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkc3FsPSdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfc2hvd3MgU0VUIG9wYWNpdHk9NjAsIHBvc2l0aW9uPTInOwoJCSRyZXN1bHQ9Y21zbXMoKS0+R2V0RGIoKS0+RXhlY3V0ZSgkc3FsKTsKCgljYXNlICcxLjEnOgoJCSRzcWxhcnJheT1hcnJheSgwPT4nQUxURVIgVEFCTEUgYCcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX2ltYWdlc2AgRFJPUCBgc2xpZGVgJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheT1hcnJheSgwPT4nQUxURVIgVEFCTEUgYCcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2ltcGxlc2xpZGVyX2ltYWdlc2AgQUREIGBmaWxlbmFtZWAgdmFyY2hhcigyNTUpIE5PVCBOVUxMJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWw9J1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NpbXBsZXNsaWRlcl9pbWFnZXMgU0VUIGZpbGVuYW1lPWNvbmNhdCgiaW1nIiwgQ0FTVChpZCBBUyBDSEFSKSwgIi5qcGciKSc7CgkJJHJlc3VsdD1jbXNtcygpLT5HZXREYigpLT5FeGVjdXRlKCRzcWwpOwoKCWNhc2UgJzEuMic6CgkJJHNxbGFycmF5PWFycmF5KDA9PidBTFRFUiBUQUJMRSBgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zaW1wbGVzbGlkZXJfc2hvd3NgIEFERCBgd2lkdGhgIElOVCBOVUxMIERFRkFVTFQgTlVMTCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQoJY2FzZSAnMS4zJzoKCWNhc2UgJzEuMy4xJzoKfQkJCj8+]]></data>
	</file>
	<file>
	  <filename>/SimpleSlider.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgpjbGFzcyBTaW1wbGVTbGlkZXIgZXh0ZW5kcyBDTVNNb2R1bGV7CgoJZnVuY3Rpb24gR2V0TmFtZSgpewoJCXJldHVybiAnU2ltcGxlU2xpZGVyJzsKCX0KCQkKCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogICAgfQoKICAgIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7CiAgICAgICAgcmV0dXJuICcxLjMuMSc7CiAgICB9CgoJZnVuY3Rpb24gR2V0SGVscCgpIHsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCSAgICAgICAgIAogICAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgfQoJCglmdW5jdGlvbiBIYXNBZG1pbigpCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7CgkJcmV0dXJuICdjb250ZW50JzsKCX0KCQoJZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkgewoJCXJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaW1wbGVTbGlkZXIgQWRtaW4nKTsKCX0KCglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgewoJCXJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsKCX0KCQoJZnVuY3Rpb24gR2V0QXV0aG9yKCkgewoJCXJldHVybiAnQnVyaGFuIEJBVktJUiAmIEJlc3MnOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgewoJCXJldHVybiAnaW5mb0Bidmt5YXppbGltLmNvbSAmIGNvbnRhY3QgW2F0XSBmdXJpZSBbZG90XSBiZSc7Cgl9CgkKCWZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsKCQlyZXR1cm4gIjEuMTEuMCI7Cgl9CQoKCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsKCQlyZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY2hhbmdlbG9nLnRwbCcpOwoJfQoKCWZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpIHsKCSAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4odHJ1ZSwgZmFsc2UpOyAKCgkgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoJICAgIAoJICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93JyxDTEVBTl9TVFJJTkcpOwoJICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaHVmZmxlJyxDTEVBTl9TVFJJTkcpOwoJICB9CgoJICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKSB7CgkgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2hvdycsICdudWxsJywgJHRoaXMtPkxhbmcoJ2hlbHBfc2hvdycpKTsKCSAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaHVmZmxlJywgJ2ZhbHNlJywgJHRoaXMtPkxhbmcoJ2hlbHBfc2h1ZmZsZScpKTsKCSAgfQoKCSAgZnVuY3Rpb24gUmVnaXN0ZXJFdmVudHMoKSB7CgoJICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminDesign.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CjxoMz5DU1MgRWRpdGlvbjwvaDM+Cnskc3RhcnRGb3JtQ3NzfQoJPHRleHRhcmVhIGlkPSd7JGFjdGlvbmlkfUFyZWFDc3MnIG5hbWU9J3skYWN0aW9uaWR9QXJlYUNzcycgY29scz0iODAiIHJvd3M9IjE1IiBjbGFzcz0iY21zX3RleHRhcmVhIj57JHRleHRBcmVhQ3NzfGVzY2FwZTonaHRtbCd9PC90ZXh0YXJlYT4KCTxidXR0b24gdHlwZT0nc3VibWl0JyA+eyRtb2QtPkxhbmcoJ3NhdmUnKX08L2J1dHRvbj4KCTxidXR0b24gdHlwZT0nYnV0dG9uJyBvbmNsaWNrPSJsb2NhdGlvbi5ocmVmPSd7JHJlc2V0Q3NzfSc7Ij57JG1vZC0+TGFuZygnbG9hZGRlZmF1bHQnKX08L2J1dHRvbj4KCTxibG9ja3F1b3RlPgoJCTxwPjxiPlNvbWUgdmFyaWFibGVzIGF2YWlsYWJsZXMgOiA8L2I+PC9wPgoJCTx1bD4KCQkJPGxpPntsZGVsaW19JHdpZHRoe3JkZWxpbX08L2xpPgoJCQk8bGk+e2xkZWxpbX0kaGVpZ2h0e3JkZWxpbX08L2xpPgoJCQk8bGk+e2xkZWxpbX0kb3BhY2l0eXtyZGVsaW19PC9saT4KCQk8L3VsPgoJPC9ibG9ja3F1b3RlPgo8L2Zvcm0+Cgo8aDM+VGVtcGxhdGUgRWRpdGlvbjwvaDM+Cnskc3RhcnRGb3JtVGVtcGxhdGV9Cgk8dGV4dGFyZWEgbmFtZT0neyRhY3Rpb25pZH1BcmVhVGVtcGxhdGUnIGNvbHM9IjgwIiByb3dzPSIxNSIgY2xhc3M9ImNtc190ZXh0YXJlYSI+eyR0ZXh0QXJlYVRlbXBsYXRlfGVzY2FwZTonaHRtbCd9PC90ZXh0YXJlYT4KCTxidXR0b24gdHlwZT0nc3VibWl0JyA+eyRtb2QtPkxhbmcoJ3NhdmUnKX08L2J1dHRvbj4KCTxidXR0b24gdHlwZT0nYnV0dG9uJyBvbmNsaWNrPSJsb2NhdGlvbi5ocmVmPSd7JHJlc2V0VGVtcGxhdGV9JzsiPnskbW9kLT5MYW5nKCdsb2FkZGVmYXVsdCcpfTwvYnV0dG9uPgoJPGJsb2NrcXVvdGU+CgkJPHA+PGI+U29tZSB2YXJpYWJsZXMgYXZhaWxhYmxlcyA6IDwvYj48L3A+CgkJPHVsPgoJCQk8bGk+e2xkZWxpbX0kd2lkdGh7cmRlbGltfTwvbGk+CgkJCTxsaT57bGRlbGltfSRoZWlnaHR7cmRlbGltfTwvbGk+CgkJCTxsaT57bGRlbGltfSRqcXVlcnl1cmx7cmRlbGltfTwvbGk+CgkJCTxsaT57bGRlbGltfSRzM3NsaWRlcnVybHtyZGVsaW19PC9saT4KCQkJPGxpPntsZGVsaW19JGZhZGV0aW1le3JkZWxpbX08L2xpPgoJCQk8bGk+e2xkZWxpbX0kcG9zaXRpb257cmRlbGltfSA6IDAgLT4zIGZvciB0b3AvcmlnaHQvYm90dG9tL2xlZnQ8L2xpPgoJCQk8bGk+e2xkZWxpbX0kaW1hZ2Vze3JkZWxpbX0gYXMgYW4gYXJyYXkgb2YgZWFjaCAkaW1hZ2UgOgoJCQkJPHVsPgoJCQkJCTxsaT57bGRlbGltfSRpbWFnZS5pbWFnZWxpbmt7cmRlbGltfTwvbGk+CgkJCQkJPGxpPntsZGVsaW19JGltYWdlLmRlc2NyaXB0aW9ue3JkZWxpbX08L2xpPgoJCQkJCTxsaT57bGRlbGltfSRpbWFnZS5pZHtyZGVsaW19PC9saT4KCQkJCQk8bGk+e2xkZWxpbX0kaW1hZ2UudGl0bGV7cmRlbGltfTwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2Jsb2NrcXVvdGU+CjwvZm9ybT4=]]></data>
	</file>
	<file>
	  <filename>/templates/adminImageEdit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCXRkLnc4MHsKCQl2YWxpZ246dG9wOwoJCXdpZHRoOjgwcHg7Cgl9Cgl0ZC53NDAwewoJCXdpZHRoOjQwMHB4OwoJfQoKCXRhYmxlLmZvcm1TbGlkZXIgdGV4dGFyZWF7CgkJd2lkdGg6NDAwcHg7CgkJaGVpZ2h0OjgwcHg7Cgl9Cjwvc3R5bGU+CgoKPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pgp7aWYgJGlzRWRpdGlvbk1vZGV9CjxoMz5FZGl0IGltYWdlPC9oMz4Ke2Vsc2V9CjxoMz5BZGQgaW1hZ2U8L2gzPgp7L2lmfQp7JHN0YXJ0Rm9ybUltYWdlfQogIDx0YWJsZSBjbGFzcz0nZm9ybVNsaWRlcic+CiAgICA8dHI+CiAgICAgIDx0ZCBjbGFzcz0ndzgwJz57JG1vZC0+TGFuZygnbmFtZScpfSA6PC90ZD4KICAgICAgPHRkIGNsYXNzPSd3NDAwJz48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH10aXRsZSIgaWQ9InRpdGxlIiB2YWx1ZT0ieyRjdXJpbWFnZS50aXRsZX0iIC8+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBjbGFzcz0ndzgwJz57JG1vZC0+TGFuZygnZGVzY3JpcHRpb24nKX0gOjwvdGQ+CiAgICAgIDx0ZD48dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1kZXNjcmlwdGlvbiI+eyRjdXJpbWFnZS5kZXNjcmlwdGlvbn08L3RleHRhcmVhPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgY2xhc3M9J3c4MCc+eyRtb2QtPkxhbmcoJ2xpbmsnKX0gOjwvdGQ+CiAgICAgIDx0ZCBjbGFzcz0ndzQwMCc+e2lmIGlzc2V0KCRjdXJpbWFnZSkgJiYgaXNzZXQoJGN1cmltYWdlLmltYWdlbGluayl9PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9aW1hZ2VsaW5rIiBpZD0iaW1hZ2VsaW5rIiB2YWx1ZT0ieyRjdXJpbWFnZS5pbWFnZWxpbmt9IiAvPnsvaWZ9PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBjbGFzcz0ndzgwJz48L3RkPgogICAgICA8dGQ+PGlucHV0IGlkPSdmaWxldXBsb2FkJyB0eXBlPSJmaWxlIiBjbGFzcz0iY21zX2Jyb3dzZSIgbmFtZT0ieyRhY3Rpb25pZH11cGxvYWQiLz48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPiZuYnNwOzwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJ7aWYgJGlzRWRpdGlvbk1vZGV9eyRtb2QtPkxhbmcoJ3VwZGF0ZScpfXtlbHNlfXskbW9kLT5MYW5nKCdhZGQnKX17L2lmfSIgLz4KICAgICAge2lmICRpc0VkaXRpb25Nb2RlfQogICAgICAgIDxhIGNsYXNzPSJwYWdlYmFjayB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiIGhyZWY9J3skYmFja1VybEltYWdlfSc+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWFycm93cmV0dXJudGhpY2stMS13Ij48L3NwYW4+eyRtb2QtPkxhbmcoImJhY2siKX0KICAgICAgICA8L2E+CiAgICAgIHsvaWZ9PC90ZD4KICAgIDwvdHI+CiAgPC90YWJsZT4KPC9mb3JtPgoKPGgzPlJlc2NhbiBEaXJlY3RvcnkgdXBsb2Fkcy9zbGlkZXJpbWFnZXM8L2gzPgoKPGEgY2xhc3M9InBhZ2ViYWNrIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIgaHJlZj0neyRyZXNjYW59Jz4KICA8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLXJlZnJlc2giPjwvc3Bhbj57JG1vZC0+TGFuZygicmVzY2FuIil9CjwvYT4KCgo=]]></data>
	</file>
	<file>
	  <filename>/templates/adminImageList.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuaW1nX3dyYXBwZXJ7CgkJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJCWJhY2tncm91bmQtY29sb3I6ICNFRUU7CgkJYm9yZGVyOiAxcHggc29saWQgI0RERDsKCQlib3JkZXItcmFkaXVzOiA1cHg7CgkJcGFkZGluZzozcHggN3B4OwoJCW1hcmdpbjo1cHg7Cgl9Cgo8L3N0eWxlPgoKe2ZvcmVhY2ggJGltYWdlcyBhcyAkaW1hZ2V9CgogIDxkaXYgY2xhc3M9J2ltZ193cmFwcGVyJz4KICAJPHA+eyRpbWFnZS50aXRsZX0gPC9wPgogIAk8ZGl2PjxpbWcgc3JjPSJ7JHVybEltYWdlfS97JGltYWdlLmZpbGVuYW1lfSIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI5MCIgYWx0PSIiIC8+PC9kaXY+CiAgCTxkaXY+CiAgCQl7JGltYWdlLmVkaXRJbWFnZUxpbmt9IHskaW1hZ2UucmVtb3ZlSW1hZ2VMaW5rfQogIAk8L2Rpdj4KICA8L2Rpdj4Key9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/templates/adminSettings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydEZvcm1TZXR0aW5nc30KICA8dGFibGU+CiAgICA8dHI+CiAgICAgIDx0ZD57JG1vZC0+TGFuZygnZGVmd2lkdGgnKX06PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWRlZndpZHRoIiBpZD0iZGVmd2lkdGgiIHZhbHVlPSJ7JG1vZC0+Z2V0UHJlZmVyZW5jZSgnZGVmd2lkdGgnKX0iIHNpemU9JzgnLz48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPnskbW9kLT5MYW5nKCdkZWZoZWlnaHQnKX0gOjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1kZWZoZWlnaHQiIGlkPSJkZWZoZWlnaHQiIHZhbHVlPSJ7JG1vZC0+Z2V0UHJlZmVyZW5jZSgnZGVmaGVpZ2h0Jyl9IiAgc2l6ZT0nOCcvPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+eyRtb2QtPkxhbmcoJ2RlZmZhZGV0aW1lJyl9IDo8L3RkPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZGVmZmFkZXRpbWUiIGlkPSJkZWZmYWRldGltZSIgdmFsdWU9InskbW9kLT5nZXRQcmVmZXJlbmNlKCdkZWZmYWRldGltZScpfSIgIHNpemU9JzgnLz48L3RkPgogICAgPC90cj4KICAgIAogICAgPHRyPgogICAgICA8dGQ+eyRtb2QtPkxhbmcoJ2RlZm9wYWNpdHknKX0gOjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1kZWZvcGFjaXR5IiBpZD0iZGVmb3BhY2l0eSIgdmFsdWU9InskbW9kLT5nZXRQcmVmZXJlbmNlKCdkZWZvcGFjaXR5Jyl9IiAgc2l6ZT0nOCcvPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+eyRtb2QtPkxhbmcoJ2RlZnBvc2l0aW9uJyl9IDo8L3RkPgogICAgICA8dGQ+PHNlbGVjdCBuYW1lPSd7JGFjdGlvbmlkfWRlZnBvc2l0aW9uJz57JHNlbGVjdFBvc2l0aW9ufTwvc2VsZWN0PjwvdGQ+CiAgICA8L3RyPgoKICAgIDx0cj4KICAgICAgPHRkPnskbW9kLT5MYW5nKCdkZWZqcXVlcnlwYXRoJyl9IDo8L3RkPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZGVmanF1ZXJ5cGF0aCIgaWQ9ImRlZmpxdWVyeXBhdGgiIHZhbHVlPSJ7JG1vZC0+Z2V0UHJlZmVyZW5jZSgnZGVmanF1ZXJ5cGF0aCcpfSIgc2l6ZT0nNTAnLz48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPnskbW9kLT5MYW5nKCdkZWZzM3NsaWRlcnBhdGgnKX0gOjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1kZWZzM3NsaWRlcnBhdGgiIGlkPSJkZWZzM3NsaWRlcnBhdGgiIHZhbHVlPSJ7JG1vZC0+Z2V0UHJlZmVyZW5jZSgnZGVmczNzbGlkZXJwYXRoJyl9IiBzaXplPSc1MCcvPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+Jm5ic3A7PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9dXBkYXRlc2V0dGluZ3MiIGlkPSJ1cGRhdGVzZXR0aW5ncyIgdmFsdWU9InskbW9kLT5MYW5nKCd1cGRhdGUnKX0iIC8+PC90ZD4KICAgIDwvdHI+CgogIDwvdGFibGU+CjwvZm9ybT4K]]></data>
	</file>
	<file>
	  <filename>/templates/adminShowEdit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pgp7aWYgJGlzRWRpdGlvbk1vZGV9CjxoMz5FZGl0IHNob3c8L2gzPgp7ZWxzZX0KPGgzPkFkZCBzaG93PC9oMz4Key9pZn0KCnskc3RhcnRGb3JtU2hvd30KICA8dGFibGU+CiAgICA8dHI+CiAgICAgIDx0ZD57JG1vZC0+TGFuZygnbmFtZScpfSA6PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXNob3duYW1lIiBpZD0ic2hvd25hbWUiIHZhbHVlPSJ7JGN1cnNob3cuc2hvd25hbWV9IiAvPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+eyRtb2QtPkxhbmcoJ3dpZHRoJyl9IDo8L3RkPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9d2lkdGgiIGlkPSJ3aWR0aCIgdmFsdWU9InskY3Vyc2hvdy53aWR0aH0iIHNpemU9JzgnLz48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPnskbW9kLT5MYW5nKCdoZWlnaHQnKX0gOjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1oZWlnaHQiIGlkPSJoZWlnaHQiIHZhbHVlPSJ7JGN1cnNob3cuaGVpZ2h0fSIgc2l6ZT0nOCcvPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+eyRtb2QtPkxhbmcoJ2ZhZGV0aW1lJyl9IDo8L3RkPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZmFkZXRpbWUiIGlkPSJmYWRldGltZSIgdmFsdWU9InskY3Vyc2hvdy5mYWRldGltZX0iIHNpemU9JzgnLz48L3RkPgogICAgPC90cj4KCiAgICA8dHI+CiAgICAgIDx0ZD57JG1vZC0+TGFuZygnb3BhY2l0eScpfSA6PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW9wYWNpdHkiIGlkPSJvcGFjaXR5IiB2YWx1ZT0ieyRjdXJzaG93Lm9wYWNpdHl9IiBzaXplPSc4Jy8+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD57JG1vZC0+TGFuZygncG9zaXRpb24nKX0gOjwvdGQ+CiAgICAgIDx0ZD48c2VsZWN0IG5hbWU9J3skYWN0aW9uaWR9cG9zaXRpb24nPnskc2VsZWN0UG9zaXRpb259PC9zZWxlY3Q+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+Jm5ic3A7PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IntpZiAkaXNFZGl0aW9uTW9kZX17JG1vZC0+TGFuZygndXBkYXRlJyl9e2Vsc2V9eyRtb2QtPkxhbmcoJ2FkZCcpfXsvaWZ9IiAvPgogICAgICB7aWYgJGlzRWRpdGlvbk1vZGV9CiAgICAgICAgPGEgY2xhc3M9InBhZ2ViYWNrIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIgaHJlZj0neyRiYWNrVXJsU2hvd30nPgogICAgICAgICAgPHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtdyI+PC9zcGFuPnskbW9kLT5MYW5nKCJiYWNrIil9CiAgICAgICAgPC9hPgogICAgICB7L2lmfTwvdGQ+CiAgICA8L3RyPgogIDwvdGFibGU+CjwvZm9ybT4=]]></data>
	</file>
	<file>
	  <filename>/templates/adminShowImageEdit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbWFnZXMgZGVsZXRlYWJsZScpfTwvaDM+Cgp7Zm9yZWFjaCAkaW1hZ2VzRGVsZXRlYWJsZSBhcyAkaW1hZ2V9Cgk8ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0OyB3aWR0aDoxNjBweDsiPgoJCTxhIGhyZWY9InskaW1hZ2UucmVtb3ZlTGlua30iPkNsaWNrIHRvIFJlbW92ZTwvYT4KCQk8ZGl2PnskaW1hZ2UudGl0bGV9PC9kaXY+CgkJPGRpdj4KCQkJPGEgaHJlZj0ieyRpbWFnZS5yZW1vdmVMaW5rfSI+CgkJCQk8aW1nIHNyYz0iLi4vdXBsb2Fkcy9zbGlkZXJpbWFnZXMveyRpbWFnZS5maWxlbmFtZX0iIHdpZHRoPSIxMjAiIGhlaWdodD0iOTAiIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCTwvZGl2Pgp7L2ZvcmVhY2h9Cgo8ZGl2IHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kaXY+Cgo8aDM+eyRtb2QtPkxhbmcoJ2ltYWdlcyBhZGRhYmxlJyl9PC9oMz4Ke2ZvcmVhY2ggJGltYWdlc0FkZGFibGVkIGFzICRpbWFnZX0KCTxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7IHdpZHRoOjE2MHB4OyI+CgkJPGEgaHJlZj0ieyRpbWFnZS5hZGRMaW5rfSI+Q2xpY2sgdG8gQWRkPC9hPgoJCTxkaXY+eyRpbWFnZS50aXRsZX08L2Rpdj4KCQk8ZGl2PgoJCQk8YSBocmVmPSJ7JGltYWdlLmFkZExpbmt9Ij4KCQkJCTxpbWcgc3JjPSIuLi91cGxvYWRzL3NsaWRlcmltYWdlcy97JGltYWdlLmZpbGVuYW1lfSIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI5MCIgLz4KCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+CnsvZm9yZWFjaH0KCgoKCjxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4KCjxhIGNsYXNzPSJwYWdlYmFjayB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiIGhyZWY9J3skYmFja1VybH0nPgogIDxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXciPjwvc3Bhbj57JG1vZC0+TGFuZygiYmFjayIpfQo8L2E+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/adminShowList.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj48dGhlYWQ+PHRyPgo8dGggY2xhc3M9InBhZ2V3MjAiPklkPC90aD4KPHRoIGNsYXNzPSJwYWdldzIwIj5OYW1lPC90aD4KPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KPHRoIGNsYXNzPSJwYWdldzcwIj4mbmJzcDs8L3RoPgo8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgo8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgo8L3RyPgo8L3RoZWFkPjx0Ym9keT4KCgl7Zm9yZWFjaCAkc2hvd3MgYXMgJHNob3d9Cgk8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9Ij4KCQk8dGQ+eyRzaG93LnNob3dpZH08L3RkPgoJCTx0ZD57JHNob3cuc2hvd25hbWV9PC90ZD4KCQk8dGQ+eyRzaG93LmFkZFNob3dJbWFnZUxpbmt9PC90ZD4gCgkJPHRkPntmb3JlYWNoICRzaG93LmltYWdlcyBhcyAkaW1hZ2V9PGltZyBzcmM9InskdXJsSW1hZ2V9L3skaW1hZ2UuZmlsZW5hbWV9IiB3aWR0aD0iNTAiIGhlaWdodD0iMzAiIC8+ey9mb3JlYWNofTwvdGQ+CgkJPHRkPnskc2hvdy5lZGl0U2hvd0xpbmt9PC90ZD4KCQk8dGQ+eyRzaG93LnJlbW92ZVNob3dMaW5rfTwvdGQ+Cgk8L3RyPgoJey9mb3JlYWNofQoKPC90Ym9keT4KPC90YWJsZT4KCgo=]]></data>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgoJPGxpPgoJCTxwPjxzdHJvbmc+MTkgQXVndXN0IDIwMTUgOiAxLjM8L3N0cm9uZz48L3A+CgkJPHA+Rml4IHZhcmlvdXMgd2Fybiwgbm90aWNlICYgc3RyaWN0IHBocDwvcD4KCQk8cD5GaXggZmllbGQgInVybCIgb2YgaW1hZ2U8L3A+CgkJPHA+Rml4IG1hbmFnZW1lbnQgb2Ygc2hvd3M8L3A+CgkJPHA+QWRkIG1vcmUgY29udHJvbHM8L3A+CgkJPHA+QWRkIGJldHRlciBtZXNzYWdlcyBpbiBjYXNlIG9mIGVycm9yczwvcD4KCTwvbGk+Cgk8bGk+CgkJPHA+PHN0cm9uZz4yNiBKdW5lIDIwMTQgOiAxLjI8L3N0cm9uZz48L3A+CgkJPHA+Q2hhbmdlIDogYWRkIGZpbGVuYW1lIGluIGVudGl0eSAiSW1hZ2UiLCB0ZW1wbGF0ZSBtdXN0IGNhbGwgZmllbGQgImZpbGVuYW1lIiBpbnN0ZWFkIG9mIHRoZSAiaWQiIG9mIGltYWdlIHRvIHJlbmRlcmluZyB0aGUgaW1hZ2UuPC9wPgoJCTxwPjwvcD4KCQk8cD5BZGQgOiBhICJyZXNjYW4iIGJ1dHRvbiB0byBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgaW1hZ2VzIGZyb20gdGhlIGRpcmVjdG9yeTwvcD4KCQk8cD5BZGQgOiBwbmcgYW5kIGdpZiBmaWxlcyBjYW4gbm93IGJlIHVwbG9hZGVkPC9wPgoJCTxwPkFkZCA6IHNvbWUgc3R5bGluZyBpbiBiYWNrb2ZmaWNlICsgYnV0dG9uIGJhY2s8L3A+CgkJPHA+QWRkIDogYnV0dG9uIHRvIHJlbG9hZCB0aGUgZGVmYXVsdCBDU1MvVGVtcGxhdGU8L3A+CgkJPHA+PC9wPgoJCTxwPlJlbW92ZSA6IHVudXNlZCBmaWVsZCAic2xpZGUiIGZyb20gZW50aXR5ICJJbWFnZSI8L3A+CgkJPGJsb2NrcXVvdGU+CgkJCUF0dGVudGlvbiA6IHlvdSBtdXN0IGNoYW5nZSBpbiB5b3VyIHRlbXBsYXRlCgkJCTxjb2RlPnNyYz0idXBsb2Fkcy9zbGlkZXJpbWFnZXMvaW1nJiMxMjM7JGltYWdlLmlkfS5qcGciPC9jb2RlPgoJCQl3aXRoCgkJCTxjb2RlPnNyYz0idXBsb2Fkcy9zbGlkZXJpbWFnZXMvJiMxMjM7JGltYWdlLmZpbGVuYW1lfSI8L2NvZGU+CgkJCU9yLCBhdCBsYXN0LCByZXNldCB5b3VyIHRlbXBsYXRlcyB3aXRoIHRoZSBkZWZhdWx0IG9uZXMuCgkJPC9ibG9ja3F1b3RlPgoJPC9saT4KCTxsaT4KCQk8cD48c3Ryb25nPjI1IEp1bmUgMjAxNCA6IDEuMTwvc3Ryb25nPjwvcD4KCQk8cD5BZGQgQ1NTIGVkaXRpb24gaW4gYWRtaW4gcGFuZWw8L3A+CgkJPHA+QWRkIHRlbXBsYXRlIGVkaXRpb24gaW4gYWRtaW4gcGFuZWw8L3A+CgkJPHA+QWRkIG9wYWNpdHkgc2V0dGluZzwvcD4KCQk8cD5BZGQgcG9zaXRpb24gc2V0dGluZzwvcD4KCQk8cD5BZGQgc2h1ZmZsZT10cnVlIG9wdGlvbjwvcD4KCTwvbGk+Cgk8bGk+CgkJPHA+PHN0cm9uZz4yNCBKdW5lIDIwMTQgOiAxLjA8L3N0cm9uZz48L3A+CgkJPHA+UmV3cml0ZSBvZiBTaW1wbGVTbGlkZXIgY29tcGF0aWJsZSBDbXNNYWRlU2ltcGxlIDEuMTEueDwvcD4KCTwvbGk+CjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/templates/css.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3Mzc2xpZGVyIHsKICAgIHdpZHRoOiB7JHdpZHRofXB4OyAvKiBpbXBvcnRhbnQgdG8gYmUgc2FtZSBhcyBpbWFnZSB3aWR0aCAqLwogICAgaGVpZ2h0OiB7JGhlaWdodH1weDsgIC8qIGltcG9ydGFudCB0byBiZSBzYW1lIGFzIGltYWdlIGhlaWdodCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBpbXBvcnRhbnQgKi8KICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIGltcG9ydGFudCAqLwp9CiAKI3Mzc2xpZGVyQ29udGVudCB7CiAgICB3aWR0aDogNDAwcHg7IC8qIGltcG9ydGFudCB0byBiZSBzYW1lIGFzIGltYWdlIHdpZHRoIG9yIHdpZGVyICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIGltcG9ydGFudCAqLwogICAgdG9wOiAwOyAvKiBpbXBvcnRhbnQgKi8KICAgIG1hcmdpbi1sZWZ0OiAwOyAvKiBpbXBvcnRhbnQgKi8KfQogCi5zM3NsaWRlckltYWdlIHsKICAgIGZsb2F0OiBsZWZ0OyAvKiBpbXBvcnRhbnQgKi8KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogaW1wb3J0YW50ICovCiAgICBkaXNwbGF5OiBub25lOyAvKiBpbXBvcnRhbnQgKi8KCWxpc3Qtc3R5bGU6IG5vbmU7Cn0KIAouczNzbGlkZXJJbWFnZSBzcGFuICB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIGltcG9ydGFudCAqLwogICAgbGVmdDogMDsKICAgIGZvbnQ6IDEwcHgvMTVweCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwogICAgcGFkZGluZzogMTBweCAxM3B4OwogICAgd2lkdGg6IHskd2lkdGggLSAxNn1weDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9eyRvcGFjaXR5fSk7IC8qIGhlcmUgeW91IGNhbiBzZXQgdGhlIG9wYWNpdHkgb2YgYm94IHdpdGggdGV4dCAqLwogICAgLW1vei1vcGFjaXR5OiB7JG9wYWNpdHkgLyAxMDB9OyAvKiBoZXJlIHlvdSBjYW4gc2V0IHRoZSBvcGFjaXR5IG9mIGJveCB3aXRoIHRleHQgKi8KICAgIC1raHRtbC1vcGFjaXR5OiB7JG9wYWNpdHkgLyAxMDB9OyAvKiBoZXJlIHlvdSBjYW4gc2V0IHRoZSBvcGFjaXR5IG9mIGJveCB3aXRoIHRleHQgKi8KICAgIG9wYWNpdHk6IHskb3BhY2l0eSAvIDEwMH07IC8qIGhlcmUgeW91IGNhbiBzZXQgdGhlIG9wYWNpdHkgb2YgYm94IHdpdGggdGV4dCAqLwogICAgY29sb3I6ICNmZmY7CiAgICBkaXNwbGF5OiBub25lOyAvKiBpbXBvcnRhbnQgKi8KICAvKiAgdG9wOiAwOyovIC8qCiAgICAgICAgaWYgeW91IHB1dCB0b3A6IDA7ICAtPiB0aGUgYm94IHdpdGggdGV4dCB3aWxsIGJlIHNob3duIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IHRoZSB0b3Agb2YgdGhlIGltYWdlCiAgICAgICAgaWYgeW91IHB1dCBib3R0b206IDA7ICAtPiB0aGUgYm94IHdpdGggdGV4dCB3aWxsIGJlIHNob3duIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IHRoZSBib3R0b20gb2YgdGhlIGltYWdlCiAgICAqLwp9CiAKLmNsZWFyIHsKICAgIGNsZWFyOiBib3RoOwp9CgoudG9wIHsKCXRvcDogMDsKCWxlZnQ6IDA7Cn0KLmJvdHRvbSB7Cglib3R0b206IDA7CiAgICBsZWZ0OiAwOwp9Ci5sZWZ0IHsKCXRvcDogMDsKICAgIGxlZnQ6IDA7Cgl3aWR0aDogMTEwcHggIWltcG9ydGFudDsKCWhlaWdodDogMjgwcHg7Cn0KLnJpZ2h0IHsKCXJpZ2h0OiAwOwoJYm90dG9tOiAwOwoJd2lkdGg6IDkwcHggIWltcG9ydGFudDsKCWhlaWdodDogMjkwcHg7Cn0KCjwvc3R5bGU+IAo=]]></data>
	</file>
	<file>
	  <filename>/templates/default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFlbXB0eSgkanF1ZXJ5dXJsKX0KCTxzY3JpcHQgc3JjPSJ7JGpxdWVyeXVybH0iIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CnsvaWZ9CntpZiAhZW1wdHkoJHMzc2xpZGVydXJsKX0KCTxzY3JpcHQgc3JjPSJ7JHMzc2xpZGVydXJsfSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4Key9pZn0KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCSQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJICAgJCgnI3Mzc2xpZGVyJykuczNTbGlkZXIoewoJICAgICAgdGltZU91dDogeyRmYWRldGltZX0KCSAgIH0pOwoJfSk7Cjwvc2NyaXB0PgoKCiB7aWYgJHBvc2l0aW9uID09IDB9CiAJe2Fzc2lnbiAnY2xhc3MnICd0b3AnfQoge2Vsc2VpZiAkcG9zaXRpb24gPT0gMX0KIAl7YXNzaWduICdjbGFzcycgJ3JpZ2h0J30KIHtlbHNlaWYgJHBvc2l0aW9uID09IDJ9CiAgICB7YXNzaWduICdjbGFzcycgJ2JvdHRvbSd9CiB7ZWxzZWlmICRwb3NpdGlvbiA9PSAzfQogICAge2Fzc2lnbiAnY2xhc3MnICdsZWZ0J30KIHsvaWZ9Cgo8ZGl2IGlkPSJzM3NsaWRlciI+CiAgICA8dWwgaWQ9InMzc2xpZGVyQ29udGVudCI+Cntmb3JlYWNoICRpbWFnZXMgYXMgJGltYWdlfQoKICAgICAgICA8bGkgY2xhc3M9InMzc2xpZGVySW1hZ2UiPgogICAgICAgICAgICA8aW1nIHNyYz0idXBsb2Fkcy9zbGlkZXJpbWFnZXMveyRpbWFnZS5maWxlbmFtZX0iIHdpZHRoPSJ7JHdpZHRofSIgaGVpZ2h0PSJ7JGhlaWdodH0iIHtpZiAhZW1wdHkoJGltYWdlLmltYWdlbGluayl9IG9uQ2xpY2s9ImphdmFzY3JpcHQ6bG9jYXRpb24uaHJlZj0neyRpbWFnZS5pbWFnZWxpbmt9JzsiIHN0eWxlPSJjdXJzb3I6cG9pbnRlcjsiIHsvaWZ9IC8+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ7JGNsYXNzfSI+CgkJCQl7JGltYWdlLnRpdGxlfQoJICAgICAgICAgICAge2lmICFlbXB0eSgkaW1hZ2UuaW1hZ2VsaW5rKX08YSBocmVmPSJ7JGltYWdlLmltYWdlbGlua30iIGNsYXNzPSJzbGlkZWxpbmsiPnsvaWZ9CgkgICAgICAgICAgICAgICAgeyRpbWFnZS5kZXNjcmlwdGlvbn0KCQkJCXtpZiAhZW1wdHkoJGltYWdlLmltYWdlbGluayl9PC9hPnsvaWZ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2xpPgp7L2ZvcmVhY2h9CiAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXIgczNzbGlkZXJJbWFnZSI+PC9kaXY+CiAgICA8L3VsPgo8L2Rpdj4=]]></data>
	</file>
</module>
