<?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>SEOTools</name>
	<version>1.1</version>
  <mincmsversion>1.6.0</mincmsversion>
	<help><![CDATA[PGgzPldhcyB0dXQgZGllc2VzIE1vZHVsPzwvaDM+CjxwPkRpZSBTRU8gVG9vbHMgaGVsZmVuIElobmVuLCBJaHJlIFNFTyAoU2VhcmNoIEVuZ2luZSBPcHRpbWl6YXRpb24sIFN1Y2htYXNjaGluZW5vcHRpbWllcnVuZykgaW4gZGVuIEdyaWZmIHp1IGJla29tbWVuLiBEYXMgTW9kdWwgZiZ1dW1sO2d0IHZlcnNjaGllZGVuZSBTRU8tRiZhdW1sO2hpZ2tlaXRlbiB6dSBDTVNNUyBoaW56dSB1bmQgd2FybnQgU2llLCBmYWxscyBTaWUgaXJnZW5kZXR3YXMgU0VPLWJlem9nZW5lcyAmdXVtbDtiZXJzZWhlbiBoYWJlbi4gQWt0dWVsbCB3ZXJkZW4gZGllIGZvbGdlbmRlbiBGZWF0dXJlcyB1bnRlcnN0JnV1bWw7dHp0OjwvcD4KPHVsPgo8bGk+LSBhdXRvbWF0aXNjaGUgRXJ6ZXVndW5nIHZvbiBNZXRhLVRhZ3MgaW0gU3RhbmRhcmQtSFRNTC1Gb3JtYXQsIG5hY2ggZGVyIER1YmxpbiBDb3JlLVNwZXppZmlrYXRpb24gdW5kIE9wZW5HcmFwaDwvbGk+CjxsaT4tIGF1dG9tYXRpc2NoZSBFeHRyYWt0aW9uIHZvbiBLZXl3b3JkcyBhdXMgSWhyZW4gU2VpdGVuLCBkaWUgenVtIFNlaXRlbnRpdGVsIHVuZCBkZW4gTWV0YS1UYWdzIGhpbnp1Z2VmJnV1bWw7Z3Qgd2VyZGVuPC9saT4KPGxpPi0gRmVzdGxlZ2VuIG1pdCBlaW5lbSBLbGljaywgb2IgYmVzdGltbXRlIFNlaXRlbiB2b24gU3VjaG1hc2NoaW5lbiBpbmRpemllcnQgd2VyZGVuIHNvbGxlbiBvZGVyIG5pY2h0PC9saT4KPGxpPi0gRXJ6ZXVndW5nIGVpbmVyIHNpdGVtYXAueG1sLURhdGVpIG1pdCBJaHJlbiBTZWl0ZW4gdyZhdW1sO2hyZW5kIFNpZSBkaWUgdm9sbGUgS29udHJvbGxlIGRhciZ1dW1sO2JlciBoYWJlbiwgd2llIGRpZSBQcmlvcml0JmF1bWw7dCBlaW56ZWxuZXIgU2VpdGVuIGJld2VydGV0IHdlcmRlbiBzb2xsPC9saT4KPGxpPi0gRXJ6ZXVndW5nIGVpbmVyIHJvYm90cy50eHQtRGF0ZWkgbWl0IGRlciBNJm91bWw7Z2xpY2hrZWl0LCBleHBsaXppdCBkZW4gWnVncmlmZiBhdWYgU2VpdGVuLCBkaWUgbmljaHQgaW5kaXppZXJ0IHdlcmRlbiBzb2xsZW4sIHp1IHZlcmJpZXRlbjwvbGk+CjxsaT4tIEF1c2dhYmUgdm9uIFdhcm51bmdlbiwgd2VubiBtZWhyZXJlIFNlaXRlbiBkZW4gZ2xlaWNoZW4gVGl0ZWwgb2RlciBkaWUgZ2xlaWNoZSBCZXNjaHJlaWJ1bmcgaGFiZW48L2xpPgo8bGk+LSBBdXNnYWJlIHZvbiBXYXJudW5nZW4gd2VubiBzZWhyIGt1cnplIFNlaXRlbmJlc2NocmVpYnVuZ2VuIGdlZnVuZGVuIHd1cmRlbjwvbGk+CjxsaT4tIEF1dG9tYXRpc2NoZXMgRWluc2VuZGVuIGRlciBha3R1YWxpc2llcnRlbiBTaXRlbWFwLURhdGVpIHp1IEdvb2dsZSwgd2VubiBJbmhhbHRlIGdlJmF1bWw7bmRlcnQgd2VyZGVuPC9saT4gCjwvdWw+CjxoMz5XaWUgd2lyZCBkYXMgTW9kdWwgdmVyd2VuZGV0PzwvaDM+CjxwPiZPdW1sO2ZmbmVuIFNpZSB6dW4mYXVtbDtjaHN0IGFsbGUgVGVtcGxhdGVzLCBhdWYgZGVuZW4gU2llIFNFTyBUb29scyB2ZXJ3ZW5kZW4gbSZvdW1sO2NodGVuLiBFbnRmZXJuZW4gU2llIGRhcyBrb21wbGV0dGUgJmx0O3RpdGxlJmd0Oy1UYWcgdW5kIGRhcyB7bWV0YWRhdGF9LVRhZyAoYXVjaCB3ZW5uIGRhIHN0ZWh0LCBkYSZzemxpZzsgU2llIGxldHp0ZXJlcyBuaWUgZW50ZmVybmVuIHNvbGx0ZW4pIHVuZCBlcnNldHplbiBTaWUgYmVpZGUgZHVyY2ggZGFzIFRhZzwvcD4KPHByZT4Ke1NFT1Rvb2xzfQo8L3ByZT48YnIgLz4KPHA+RiZ1dW1sO2dlbiBTaWUgYWxzIG4mYXVtbDtjaHN0ZXMgYW0gRW5kZSBJaHJlcyBUZW1wbGF0ZXMgKG5hY2ggZGVtIHNjaGxpZSZzemxpZztlbmRlbiAmbHQ7L2JvZHkmZ3Q7LVRhZykgZGVuIGZvbGdlbmRlbiBDb2RlIGVpbjo8L3A+CjxwcmU+CntjYXB0dXJlfXtjb250ZW50IGJsb2NrPSJTZWl0ZW5iZXNjaHJlaWJ1bmciIG9uZWxpbmU9InRydWUifXsvY2FwdHVyZX0KPC9wcmU+PGJyIC8+CjxwPkluIGRpZXNlcyBGZWxkIHdlcmRlbiBTaWUgc3AmYXVtbDt0ZXIgZWluZSBrdXJ6ZSBTZWl0ZW5iZXNjaHJlaWJ1bmcgKGVpbiBvZGVyIHp3ZWkgUyZhdW1sO3R6ZSkgZWluZ2ViZW4sIGRpZSBpbiBkZW4gRXJnZWJuaXNzZW4gZGVyIFN1Y2htYXNjaGluZW4gYW5nZXplaWd0IHdpcmQgdW5kIHdlbm4gei5CLiBqZW1hbmQgZGVuIExpbmsgenUgSWhyZXIgU2VpdGUgYmVpIEZhY2Vib29rIHRlaWx0LjwvcD4KPHA+UnVmZW4gU2llIG51biBkaWUgTW9kdWwtQWRtaW5pc3RyYXRpb24gYXVmIHVuZCBmJnV1bWw7bGxlbiBTaWUgYXVmIGRlbiBFaW5zdGVsbHVuZ3MtVGFicyBhbGxlIEluZm9ybWF0aW9uZW4gZWluLCBkaWUgZiZ1dW1sO3IgSWhyZSBTZWl0ZSByZWxldmFudCBzaW5kLiBVbnRlciAiTmFtZSBkZXMgU2VpdGVuYmVzY2hyZWlidW5ncy1Db250ZW50YmxvY2siIHRyYWdlbiBTaWUgZGVuIE5hbWVuIGRlcyBzb2ViZW4gaW0gVGVtcGxhdGUgYW5nZWxlZ3RlbiBDb250ZW50LUJsb2NrcyAoIlNlaXRlbmJlc2NocmVpYnVuZyIgaW4gdW5zZXJlbSBCZWlzcGllbCkgZWluLiBEZXIgVGFiICJTRU8tV2FybnVuZ2VuIiBiZW5hY2hpY2h0aWd0IFNpZSBhdXRvbWF0aXNjaCwgd2VubiBpcmdlbmRlaW5lIEVpbnN0ZWxsdW5nIGdlZnVuZGVuIHd1cmRlLCBkaWUgbmljaHQgb3B0aW1hbCBpc3QuCkF1JnN6bGlnO2VyZGVtIHNvbGx0ZW4gU2llIGluIEVydyZhdW1sO2d1bmcgemllaGVuLCBJaHJlIFNlaXRlIGJlaSBHb29nbGUgV2VibWFzdGVyIFRvb2xzIGFuenVtZWxkZW4uIFcmYXVtbDtobGVuIFNpZSBkb3J0ICJNZXRhIHRhZyB2YWxpZGF0aW9uIiB1bmQgZiZ1dW1sO2dlbiBTaWUgZGVuIEJlc3QmYXVtbDt0aWd1bmdzY29kZSwgZGVuIFNpZSBkb3J0IGVyaGFsdGVuLCBpbiBkYXMgRmVsZCAiQmVzdCZhdW1sO3RpZ3VuZ3Njb2RlIGYmdXVtbDtyIGRpZSBTZWl0ZW52ZXJpZml6aWVydW5nIiBlaW4gKG51ciBkZW4gbGFuZ2VuIENvZGUgYXVzIFphaGxlbiB1bmQgQnVjaHN0YWJlbiwgbmljaHQgZGFzIGtvbXBsZXR0ZSBNZXRhLVRhZykgdW0gYXV0b21hdGlzY2ggenUgYmVzdCZhdW1sO3RpZ2VuLCBkYSZzemxpZzsgU2llIHRhdHMmYXVtbDtjaGxpY2ggZGVyIEluaGFiZXIgSWhyZXIgU2VpdGUgc2luZC48L3A+CjxwPlNvYmFsZCBhbGxlcyBlaW5nZXJpY2h0ZXQgaXN0LCBzY2hhdWVuIFNpZSBhdWYgZGFzICJTRU8tV2FybnVuZ2VuIi1UYWIgdW5kIGJlaGViZW4gU2llIGFsbGUgUHJvYmxlbWUsIGRpZSBJaG5lbiBkb3J0IGFuZ2V6ZWlndCB3ZXJkZW4uIERlbmtlbiBTaWUgdW5iZWRpbmd0IGRhcmFuLCBhdWYgamVkZXIgU2VpdGUsIGRpZSBTaWUgdW50ZXIgIkluaGFsdGUvU2VpdGVuIiBiZWFyYmVpdGVuLCBlaW5lIGt1cnplICh1bmQgZWluZGV1dGlnZSkgQmVzY2hyZWlidW5nIGlucyBGZWxkICJTZWl0ZW5iZXNjaHJlaWJ1bmciIHVudGVuIGF1ZiBkZW0gU2VpdGVuYmVhcmJlaXR1bmdzLUZvcm11bGFyIGVpbnp1Z2ViZW4uPC9wPgo8cD5XZW5uIFNpZSBJaHJlIGVpZ2VuZW4gS2V5d29yZHMgZmVzdGxlZ2VuIChhbnN0ZWxsZSBkZXIgYXV0b21hdGlzY2ggZ2VuZXJpZXJ0ZW4gS2V5d29yZHMpIG9kZXIgZGVuIE9wZW5HcmFwaC1UeXAgYmVzdGltbXRlciBTZWl0ZW4gJmF1bWw7bmRlcm4gbSZvdW1sO2NodGVuLCBiZXN1Y2hlbiBTaWUgZGVuIFRhYiAiU2VpdGVuZWluc3RlbGx1bmdlbiIgYXVmIGRlbSBTaWUgZWluZSBMaXN0ZSBhbGxlciBpbSBTeXN0ZW0gdm9yaGFuZGVuZW4gU2VpdGVuIHNlaGVuLiBEb3J0IGsmb3VtbDtubmVuIFNpZSBhdWNoIGRpZSBQcmlvcml0JmF1bWw7dGVuIGRlciBTZWl0ZW4gZiZ1dW1sO3IgZGllIFhNTC1TaXRlbWFwICZhdW1sO25kZXJuIChkaWUgYW5kZXJuZmFsbHMgYXV0b21hdGlzY2ggYmVyZWNobmV0IHdpcmQpIHVtIGZlc3R6dWxlZ2VuLCBkYSZzemxpZzsgYmVzdGltbXRlIFNlaXRlbiBhbHMgd2ljaHRpZ2VyCmVpbmdlc3R1ZnQgd2VyZGVuIHNvbGxlbiBhbHMgYW5kZXJlIGJlaSBTdWNobWFzY2hpbmVuLVRyZWZmZXJuLCBvZGVyIHdlbm4gU2llIGVpbnplbG5lIFNlaXRlbiB2b24gZGVyIEluZGl6aWVydW5nIGR1cmNoIFN1Y2htYXNjaGluZW4gYXVzc2NobGllJnN6bGlnO2VuIG0mb3VtbDtjaHRlbi48L3A+CjxwPlNFTyBUb29scyBmJnV1bWw7Z3QgYXUmc3psaWc7ZXJkZW0gZWluZW4gVmVyd2VpcyBhdWYgZGFzIEJpbGQsIGRhcyBhbHMgSGF1cHRiaWxkIGYmdXVtbDtyIElocmUgU2VpdGUgdmVyd2VuZGV0IHdlcmRlbiBzb2xsICh3aWNodGlnIGYmdXVtbDtyIExpbmtzLCBkaWUgYmVpIEZhY2Vib29rIGdldGVpbHQgd2VyZGVuKSB3ZW5uIFNpZSBlaW4gIkJpbGQiIGYmdXVtbDtyIGRpZSBTZWl0ZSBhdWYgZGVtIE9wdGlvbnMtVGFiIElocmVyIFNlaXRlIGZlc3RsZWdlbi4gV2VubiBTaWUgT3BlbkdyYXBoIHZlcndlbmRlbiwgZXJzZXR6dCBkaWVzZXMgQmlsZCBhdSZzemxpZztlcmRlbSBkYXMgU3RhbmRhcmQtQmlsZApmJnV1bWw7ciBPcGVuR3JhcGgtU2VpdGVuIGRhcyBTaWUgaW4gZGVuIEVpbnN0ZWxsdW5nZW4gdm9uIFNFTyBUb29scyBmZXN0Z2VsZWd0IGhhYmVuLiBBY2h0ZW4gU2llIGRhcmF1ZiwgZGEmc3psaWc7IFNpZSBkaWVzZSBCaWxkZXIgaW4gSWhyIC91cGxvYWRzL2ltYWdlcyAtIFZlcnplaWNobmlzIGhvY2hsYWRlbiwgZGFtaXQgc2llIHZvbiBDTVNNUyBlcmthbm50IHdlcmRlbi48L3A+IjsgCjxoMz5XZWxjaGUgUGFyYW1ldGVyIHNpbmQgZXJmb3JkZXJsaWNoPzwvaDM+CjxwPkRhcyBNb2R1bCBiZW4mb3VtbDt0aWd0IGtlaW5lIFBhcmFtZXRlcjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEwLCBIZW5uaW5nIFNjaGFlZmVyIDxhIGhyZWY9Im1haWx0bzpoZW5uaW5nLnNjaGFlZmVyQGdtYWlsLmNvbSI+Jmx0O2hlbm5pbmcuc2NoYWVmZXJAZ21haWwuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD48aDM+UGFyYW1ldGVyPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gRGllc2VyIFBhcmFtZXRlciBsZWd0IGRpZSBTcHJhY2hlIGZlc3QsIGRpZSB2b20gTW9kdWwgZiZ1dW1sO3IgZGllIEF1c2dhYmUgYXVmIGRlciBXZWJzZWl0ZSB2ZXJ3ZW5kZXQgd2lyZC4gRGllcyB3aXJkIGplZG9jaCBuaWNodCB2b24gYWxsZW4gTW9kdWxlbiB1bnRlcnN0JnV1bWw7dHp0IGJ6dy4gYmVuJm91bWw7dGlndC48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0b3I6IEhlbm5pbmcgU2NoYWVmZXIgJmx0O2hlbm5pbmcuc2NoYWVmZXJAZ21haWwuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb24gOiAxLjE8YnIgLz48YnIgLz4mQXVtbDtuZGVydW5nc3ZlcmxhdWY6PGJyIC8+PHVsPgo8bGk+VmVyc2lvbiAxLjEgLSAwMi4gTm92ZW1iZXIgMjAxMC4gVmVyc2NoaWVkZW5lIEJ1Z2ZpeGVzLjwvbGk+CjxsaT5WZXJzaW9uIDEuMCAtIDI0LiBBdWd1c3QgMjAxMC4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[Hilft bei der allgemeinen SEO, erzeugt XML-Sitemaps und umfangreiche Meta-Beschreibungen]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.changesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIkVkaXQgU0VPIFNldHRpbmdzIikpCgl7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKCX0KCi8qIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCgogICBDb2RlIGZvciBTRU9Ub29scyAiY2hhbmdlc2V0dGluZ3MiIGFkbWluIGFjdGlvbgogICAKICAgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KICAgCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQogICBvciBkbyBzb21lIG90aGVyIHRhc2suCiAgIAoqLwoKLy8gUmVnZW5lcmF0ZSBTaXRlbWFwIGFuZCByb2JvdHMudHh0CmlmIChpc3NldCgkX1BPU1RbJ2RvX3JlZ2VuZXJhdGUnXSkpIHsKCSR0aGlzLT5jcmVhdGVTaXRlbWFwKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLCd0cnVlJykgPT0gdHJ1ZSk7CiAgICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ2NyZWF0ZV9yb2JvdHMnLCd0cnVlJykgPT0gJ3RydWUnKSB7CiAgICAgICAgJHRoaXMtPmNyZWF0ZVJvYm90c1RYVCgpOwogICAgfQoJJHRoaXMtPmF1ZGl0KCJUZXN0IiwiU0VPIFRvb2xzIiwiTWFudWFsbHkgcmVnZW5lcmF0ZWQgc2l0ZW1hcC54bWwgYW5kIHJvYm90cy50eHQiKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkdGhpcy0+aWQsICdkZWZhdWx0YWRtaW4nLCAnJywgQXJyYXkoJ21lc3NhZ2UnPT4nc2l0ZW1hcF9yZWdlbmVyYXRlZCcsJ3RhYic9PidzaXRlbWFwc2V0dGluZ3MnKSk7Cn0JCgkKaWYgKGlzc2V0KCRfUE9TVFsnc2F2ZV9tZXRhX3NldHRpbmdzJ10pKSB7CQoJCiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdtZXRhX3N0YW5kYXJkJywkX1BPU1RbJ21ldGFfc3RhbmRhcmQnXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdtZXRhX2R1YmxpbmNvcmUnLCRfUE9TVFsnbWV0YV9kdWJsaW5jb3JlJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGgnLCRfUE9TVFsnbWV0YV9vcGVuZ3JhcGgnXSk7CgokdGhpcy0+c2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCRfUE9TVFsnbWV0YV9wdWJsaXNoZXInXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdtZXRhX2NvbnRyaWJ1dG9yJywkX1BPU1RbJ21ldGFfY29udHJpYnV0b3InXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdtZXRhX2NvcHlyaWdodCcsJF9QT1NUWydtZXRhX2NvcHlyaWdodCddKTsKCiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdtZXRhX2xvY2F0aW9uJywkX1BPU1RbJ21ldGFfbG9jYXRpb24nXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdtZXRhX3JlZ2lvbicsJF9QT1NUWydtZXRhX3JlZ2lvbiddKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnLCRfUE9TVFsnbWV0YV9sYXRpdHVkZSddKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ21ldGFfbG9uZ2l0dWRlJywkX1BPU1RbJ21ldGFfbG9uZ2l0dWRlJ10pOwoKJHRoaXMtPnNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3RpdGxlJywkX1BPU1RbJ21ldGFfb3BlbmdyYXBoX3RpdGxlJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdHlwZScsJF9QT1NUWydtZXRhX29wZW5ncmFwaF90eXBlJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnLCRfUE9TVFsnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9pbWFnZScsJF9QT1NUWydtZXRhX29wZW5ncmFwaF9pbWFnZSddKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FkbWlucycsJF9QT1NUWydtZXRhX29wZW5ncmFwaF9hZG1pbnMnXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicsJF9QT1NUWydtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbiddKTsKCiR0aGlzLT5zZXRQcmVmZXJlbmNlKCd0aXRsZScsJF9QT1NUWyd0aXRsZSddKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ3RpdGxlX21ldGEnLCRfUE9TVFsndGl0bGVfbWV0YSddKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywkX1BPU1RbJ2Rlc2NyaXB0aW9uX2Jsb2NrJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsJF9QT1NUWydkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0bycsJF9QT1NUWydkZXNjcmlwdGlvbl9hdXRvJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9rZXl3b3JkcycsJF9QT1NUWydkZWZhdWx0X2tleXdvcmRzJ10pOwoKJHRoaXMtPmF1ZGl0KCJUZXN0IiwiU0VPIFRvb2xzIiwiRWRpdGVkIE1ldGEgc2V0dGluZ3MiKTsKJHRoaXMtPlJlZGlyZWN0KCR0aGlzLT5pZCwgJ2RlZmF1bHRhZG1pbicsICcnLCBBcnJheSgnbWVzc2FnZSc9PidzZXR0aW5nc191cGRhdGVkJywndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKfQoKaWYgKGlzc2V0KCRfUE9TVFsnc2F2ZV9zaXRlbWFwX3NldHRpbmdzJ10pKSB7CgokdGhpcy0+c2V0UHJlZmVyZW5jZSgnY3JlYXRlX3NpdGVtYXAnLCRfUE9TVFsnY3JlYXRlX3NpdGVtYXAnXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLCRfUE9TVFsncHVzaF9zaXRlbWFwJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgnY3JlYXRlX3JvYm90cycsJF9QT1NUWydjcmVhdGVfcm9ib3RzJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgndmVyaWZpY2F0aW9uJywkX1BPU1RbJ3ZlcmlmaWNhdGlvbiddKTsKCiR0aGlzLT5hdWRpdCgiVGVzdCIsIlNFTyBUb29scyIsIkVkaXRlZCBTaXRlbWFwIHNldHRpbmdzIik7CiR0aGlzLT5SZWRpcmVjdCgkdGhpcy0+aWQsICdkZWZhdWx0YWRtaW4nLCAnJywgQXJyYXkoJ21lc3NhZ2UnPT4nc2V0dGluZ3NfdXBkYXRlZCcsJ3RhYic9PidzaXRlbWFwc2V0dGluZ3MnKSk7Cn0KCmlmIChpc3NldCgkX1BPU1RbJ3NhdmVfa2V5d29yZF9zZXR0aW5ncyddKSkgewoKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywkX1BPU1RbJ2tleXdvcmRfbWlubGVuZ3RoJ10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgna2V5d29yZF90aXRsZV93ZWlnaHQnLCRfUE9TVFsna2V5d29yZF90aXRsZV93ZWlnaHQnXSk7CiR0aGlzLT5zZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodCcsJF9QT1NUWydrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodCddKTsKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0JywkX1BPU1RbJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0J10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgna2V5d29yZF9jb250ZW50X3dlaWdodCcsJF9QT1NUWydrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0J10pOwokdGhpcy0+c2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5pbXVtX3dlaWdodCcsJF9QT1NUWydrZXl3b3JkX21pbmltdW1fd2VpZ2h0J10pOwoKJHRoaXMtPnNldFByZWZlcmVuY2UoJ2tleXdvcmRfZXhjbHVkZScsJF9QT1NUWydrZXl3b3JkX2V4Y2x1ZGUnXSk7CgoKJHRoaXMtPmF1ZGl0KCJUZXN0IiwiU0VPIFRvb2xzIiwiRWRpdGVkIEtleXdvcmQgc2V0dGluZ3MiKTsKJHRoaXMtPlJlZGlyZWN0KCR0aGlzLT5pZCwgJ2RlZmF1bHRhZG1pbicsICcnLCBBcnJheSgnbWVzc2FnZSc9PidzZXR0aW5nc191cGRhdGVkJywndGFiJz0+J2tleXdvcmRzZXR0aW5ncycpKTsKfQoKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQoKICAgQ29kZSBmb3IgU0VPVG9vbHMgImRlZmF1bHQiIGFjdGlvbgoKICAgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KICAgCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQogICBvciBkbyBzb21lIG90aGVyIHRhc2suCiAgIAoqLwoKLy8gR2V0IHBhZ2UgZGF0YQpnbG9iYWwgJGdDbXM7CiRwYWdlX2lkID0gJGdDbXMtPnZhcmlhYmxlc1snY29udGVudF9pZCddOwokaG0gPSYgJGdDbXMtPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKJGN1cm5vZGUgPSYgJGhtLT5nZXROb2RlQnlJZCgkcGFnZV9pZCk7CiRjdXJjb250ZW50ID0mICRjdXJub2RlLT5HZXRDb250ZW50KCk7CiRwYWdlX3VybCA9ICRjdXJjb250ZW50LT5HZXRVUkwoKTsKCiRtb2RpZmllZF9kYXRlID0gJGN1cmNvbnRlbnQtPm1Nb2RpZmllZERhdGU7CiRtb2RpZmllZF9kYXRlID0gZGF0ZSgnWS1tLWRcVEg6aTpzUCcsc3RydG90aW1lKCRtb2RpZmllZF9kYXRlKSk7CgovLyBLZXl3b3JkIGdlbmVyYXRvcgoKJGtleXdvcmRzID0gZXhwbG9kZSgnICcsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZmF1bHRfa2V5d29yZHMnLCcnKSk7CgokZGIgPSYgJGdDbXMtPmRiOwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRwYWdlX2lkOwokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiRwYWdlX2luZm8gPSAkcmVzdWx0LT5mZXRjaFJvdygpOwoKaWYgKCRwYWdlX2luZm9bJ2tleXdvcmRzJ10gIT0gIiIpIHsKCSRvdGhlcl9rZXl3b3JkcyA9IGFycmF5X2ZsaXAoZXhwbG9kZSgnICcsJHBhZ2VfaW5mb1sna2V5d29yZHMnXSkpOwp9ZWxzZXsKCSRvdGhlcl9rZXl3b3JkcyA9ICR0aGlzLT5nZXRLZXl3b3JkU3VnZ2VzdGlvbnMoJHBhZ2VfaWQpOwp9Cgokc2VvX2tleXdvcmRzID0gaW1wbG9kZSgnICcsYXJyYXlfbWVyZ2UoJGtleXdvcmRzLCBhcnJheV9mbGlwKCRvdGhlcl9rZXl3b3JkcykpKTsKCi8vIFBhZ2UgZGVzY3JpcHRpb24KCiRkZXNjcmlwdGlvbl9pZCA9IHN0cl9yZXBsYWNlKCcgJywnXycsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywnJykpOwokZGVzY3JpcHRpb24gPSBzdHJpcF90YWdzKCRjdXJjb250ZW50LT5tUHJvcGVydGllcy0+bVByb3BlcnR5VmFsdWVzWyRkZXNjcmlwdGlvbl9pZF0pOwoKaWYgKCgkZGVzY3JpcHRpb24gPT0gIiIpICYmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsJ2ZhbHNlJykgPT0gJ3RydWUnKSkgewogICRrdyA9IGFycmF5X2ZsaXAoJG90aGVyX2tleXdvcmRzKTsKICAkbGFzdF9rZXl3b3JkID0gYXJyYXlfcG9wKCRrdyk7CiAgJGtleXdvcmRzID0gaW1wbG9kZSgnLCAnLCRrdykgLiAiICIgLiAkdGhpcy0+bGFuZygnYW5kJykgLiAiICIgLiAkbGFzdF9rZXl3b3JkOwogICRkZXNjcmlwdGlvbiA9IHN0cl9yZXBsYWNlKCd7a2V5d29yZHN9Jywka2V5d29yZHMsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG8nLCcnKSk7CiAgJGRlc2NyaXB0aW9uID0gc3RyX3JlcGxhY2UoJ3t0aXRsZX0nLCRjdXJjb250ZW50LT5tTmFtZSwkZGVzY3JpcHRpb24pOwp9CgovLyBTaG93IGJhc2U/CmlmICgkcGFyYW1zWydzaG93YmFzZSddICE9ICdmYWxzZScpIHsKCWVjaG8gIjxiYXNlIGhyZWY9JyIuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4iLyc+PC9iYXNlPlxuIjsKfQoKLy8gUGFnZSB0aXRsZQokdGl0bGUgPSAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgndGl0bGUnLCd7dGl0bGV9IHwge3NpdGVuYW1lfSAtIHtzZW9fa2V5d29yZHN9Jyk7CiR0aXRsZSA9IHN0cl9yZXBsYWNlKCd7dGl0bGV9JywkY3VyY29udGVudC0+bU5hbWUsJHRpdGxlKTsKJHRpdGxlID0gc3RyX3JlcGxhY2UoJ3tzaXRlbmFtZX0nLCRnQ21zLT5zaXRlcHJlZnNbJ3NpdGVuYW1lJ10sJHRpdGxlKTsKJHRpdGxlID0gc3RyX3JlcGxhY2UoJ3tzZW9fa2V5d29yZHN9Jywkc2VvX2tleXdvcmRzLCR0aXRsZSk7CgokbWV0YV90aXRsZSA9ICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX3RpdGxlJywne3RpdGxlfSB8IHtzaXRlbmFtZX0nKTsKJG1ldGFfdGl0bGUgPSBzdHJfcmVwbGFjZSgne3RpdGxlfScsJGN1cmNvbnRlbnQtPm1OYW1lLCRtZXRhX3RpdGxlKTsKJG1ldGFfdGl0bGUgPSBzdHJfcmVwbGFjZSgne3NpdGVuYW1lfScsJGdDbXMtPnNpdGVwcmVmc1snc2l0ZW5hbWUnXSwkbWV0YV90aXRsZSk7CiRtZXRhX3RpdGxlID0gc3RyX3JlcGxhY2UoJ3tzZW9fa2V5d29yZHN9Jywkc2VvX2tleXdvcmRzLCRtZXRhX3RpdGxlKTsKCiRvcGVuZ3JhcGhfdGl0bGUgPSAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnLCd7dGl0bGV9Jyk7CiRvcGVuZ3JhcGhfdGl0bGUgPSBzdHJfcmVwbGFjZSgne3RpdGxlfScsJGN1cmNvbnRlbnQtPm1OYW1lLCRvcGVuZ3JhcGhfdGl0bGUpOwoKZWNobyAiPHRpdGxlPiIuJHRpdGxlLiI8L3RpdGxlPlxuIjsKCi8vIE1FVEEgdGFncyBmb3IgY29udGVudCB0eXBlIGV0Yy4KZWNobyAiPG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9Ii4kZ0Ntcy0+Y29uZmlnWydkZWZhdWx0X2VuY29kaW5nJ10uIicgLz5cbiI7CmlmICgoJHBhZ2VfaW5mb1snaW5kZXhhYmxlJ10gPT0gIiIpIHx8ICgkcGFnZV9pbmZvWydpbmRleGFibGUnXSA9PSAiMSIpKSB7CgllY2hvICI8bWV0YSBuYW1lPSdyb2JvdHMnIGNvbnRlbnQ9J2luZGV4JyAvPlxuIjsKfWVsc2V7CgllY2hvICI8bWV0YSBuYW1lPSdyb2JvdHMnIGNvbnRlbnQ9J25vaW5kZXgnIC8+XG4iOwp9CgppZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ3ZlcmlmaWNhdGlvbicsJycpICE9ICcnKSB7CgllY2hvICI8bWV0YSBuYW1lPSdnb29nbGUtc2l0ZS12ZXJpZmljYXRpb24nIGNvbnRlbnQ9JyIuJHRoaXMtPmdldFByZWZlcmVuY2UoJ3ZlcmlmaWNhdGlvbicsJycpLiInIC8+XG4iOwp9CgovLyBTdGFuZGFyZCBNRVRBIHRhZ3MKaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX3N0YW5kYXJkJywndHJ1ZScpID09ICd0cnVlJykgewoJZWNobyAiPG1ldGEgbmFtZT0nZGVzY3JpcHRpb24nIGNvbnRlbnQ9JyRkZXNjcmlwdGlvbicgLz5cbiI7CiAgICBlY2hvICI8bWV0YSBuYW1lPSdrZXl3b3JkcycgY29udGVudD0nJHNlb19rZXl3b3JkcycgLz5cbiI7CiAgICBlY2hvICI8bWV0YSBuYW1lPSdkYXRlJyBjb250ZW50PSckbW9kaWZpZWRfZGF0ZScgLz5cbiI7CiAgICBlY2hvICI8bWV0YSBuYW1lPSdhdXRob3InIGNvbnRlbnQ9JyIuJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfcHVibGlzaGVyJywnJykuIicgLz5cbiI7CiAgICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKSAhPSAiIikgewogICAgICBlY2hvICI8bWV0YSBuYW1lPSdnZW8ucGxhY2VuYW1lJyBjb250ZW50PSciLiR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2xvY2F0aW9uJywnJykuIicgLz5cbiI7CiAgICB9CiAgICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfcmVnaW9uJywnJykgIT0gIiIpIHsKICAgICAgZWNobyAiPG1ldGEgbmFtZT0nZ2VvLnJlZ2lvbicgY29udGVudD0nIi4kdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKS4iJyAvPlxuIjsKICAgIH0KICAgIGlmICgoJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnLCcnKSAhPSAiIikgJiYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpICE9ICIiKSkgewogICAgICBlY2hvICI8bWV0YSBuYW1lPSdnZW8ucG9zaXRpb24nIGNvbnRlbnQ9JyIuJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnLCcnKS4iOyIuJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfbG9uZ2l0dWRlJywnJykuIicgLz5cbiI7CiAgICAgIGVjaG8gIjxtZXRhIG5hbWU9J0lDQk0nIGNvbnRlbnQ9JyIuJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnLCcnKS4iLCAiLiR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLiInIC8+XG4iOwogICAgfSAgICAKfQoKLy8gRHVibGluQ29yZSBNRVRBIHRhZ3MKaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2R1YmxpbmNvcmUnLCdmYWxzZScpID09ICd0cnVlJykgewogICAgZWNobyAiPGxpbmsgcmVsPSdzY2hlbWEuREMnIGhyZWY9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJyAvPlxuIjsKICAgIGVjaG8gIjxsaW5rIHJlbD0nc2NoZW1hLkRDVEVSTVMnIGhyZWY9J2h0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8nIC8+XG4iOwogICAgZWNobyAiPG1ldGEgbmFtZT0nREMudHlwZScgY29udGVudD0nVGV4dCcgc2NoZW1lPSdEQ1RFUk1TLkRDTUlUeXBlJyAvPlxuIjsKICAgIGVjaG8gIjxtZXRhIG5hbWU9J0RDLmZvcm1hdCcgY29udGVudD0ndGV4dC9odG1sJyBzY2hlbWU9J0RDVEVSTVMuSU1UJyAvPlxuIjsKICAgIGVjaG8gIjxtZXRhIG5hbWU9J0RDLnJlbGF0aW9uJyBjb250ZW50PSdodHRwOi8vZHVibGluY29yZS5vcmcvJyBzY2hlbWU9J0RDVEVSTVMuVVJJJyAvPlxuIjsKICAgIGVjaG8gIjxtZXRhIG5hbWU9J0RDLnB1Ymxpc2hlcicgY29udGVudD0nIi4kdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCcnKS4iJyAvPlxuIjsKICAgIGVjaG8gIjxtZXRhIG5hbWU9J0RDLmNvbnRyaWJ1dG9yJyBjb250ZW50PSciLiR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2NvbnRyaWJ1dG9yJywnJykuIicgLz5cbiI7ICAgIAogICAgZWNobyAiPG1ldGEgbmFtZT0nREMubGFuZ3VhZ2UnIGNvbnRlbnQ9JyIuJGdDbXMtPnNpdGVwcmVmc1snZnJvbnRlbmRsYW5nJ10uIicgc2NoZW1lPSdEQ1RFUk1TLlJGQzMwNjYnIC8+XG4iOyAgICAKICAgIGVjaG8gIjxtZXRhIG5hbWU9J0RDLnJpZ2h0cycgY29udGVudD0nIi4kdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9jb3B5cmlnaHQnLCcnKS4iJyAvPlxuIjsKICAgIGVjaG8gIjxtZXRhIG5hbWU9J0RDLnRpdGxlJyBjb250ZW50PSckbWV0YV90aXRsZScgLz5cbiI7CiAgICBlY2hvICI8bWV0YSBuYW1lPSdEQy5kZXNjcmlwdGlvbicgY29udGVudD0nJGRlc2NyaXB0aW9uJyAvPlxuIjsKICAgIGVjaG8gIjxtZXRhIG5hbWU9J0RDLmRhdGUnIGNvbnRlbnQ9JyRtb2RpZmllZF9kYXRlJyBzY2hlbWU9J0RDVEVSTVMuVzNDRFRGJyAvPlxuIjsKICAgIGVjaG8gIjxtZXRhIG5hbWU9J0RDLmlkZW50aWZpZXInIGNvbnRlbnQ9JyRwYWdlX3VybCcgc2NoZW1lPSdEQ1RFUk1TLlVSSScgLz5cbiI7CQp9CgovLyBPcGVuR3JhcGggTUVUQSB0YWdzCmlmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGgnLCdmYWxzZScpID09ICd0cnVlJykgewogICAgZWNobyAiPG1ldGEgcHJvcGVydHk9J29nOnRpdGxlJyBjb250ZW50PSckb3BlbmdyYXBoX3RpdGxlJyAvPlxuIjsKICAgIGlmICgkcGFnZV9pbmZvWydvZ3R5cGUnXSA9PSAiIikgewogICAgICBlY2hvICI8bWV0YSBwcm9wZXJ0eT0nb2c6dHlwZScgY29udGVudD0nIi4kdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdHlwZScsJycpLiInIC8+XG4iOwogICAgfWVsc2V7CiAgICAgIGVjaG8gIjxtZXRhIHByb3BlcnR5PSdvZzp0eXBlJyBjb250ZW50PSciLiRwYWdlX2luZm9bJ29ndHlwZSddLiInIC8+XG4iOwogICAgfQogICAgZWNobyAiPG1ldGEgcHJvcGVydHk9J29nOnVybCcgY29udGVudD0nJHBhZ2VfdXJsJyAvPlxuIjsKICAgIAogICAgaWYgKCgkY3VyY29udGVudC0+bVByb3BlcnRpZXMtPm1Qcm9wZXJ0eVZhbHVlc1snaW1hZ2UnXSAhPSAtMSkgJiYgKCRjdXJjb250ZW50LT5tUHJvcGVydGllcy0+bVByb3BlcnR5VmFsdWVzWydpbWFnZSddICE9ICIiKSkgIHsKICAgIAkkaW1hZ2UgPSAkY3VyY29udGVudC0+bVByb3BlcnRpZXMtPm1Qcm9wZXJ0eVZhbHVlc1snaW1hZ2UnXTsKICAgIH1lbHNlewogICAgCSRpbWFnZSA9ICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9pbWFnZScsJycpOwogICAgfQogICAgCiAgICBlY2hvICI8bWV0YSBwcm9wZXJ0eT0nb2c6aW1hZ2UnIGNvbnRlbnQ9JyIuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4iL3VwbG9hZHMvaW1hZ2VzLyRpbWFnZScgLz5cbiI7CiAgICBlY2hvICI8bWV0YSBwcm9wZXJ0eT0nb2c6c2l0ZV9uYW1lJyBjb250ZW50PSciLiR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9zaXRlbmFtZScsJGdDbXMtPnNpdGVwcmVmc1snc2l0ZW5hbWUnXSkuIicgLz5cbiI7ICAgIAogICAgZWNobyAiPG1ldGEgcHJvcGVydHk9J29nOmRlc2NyaXB0aW9uJyBjb250ZW50PSckZGVzY3JpcHRpb24nIC8+XG4iOwogICAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicsJycpICE9ICIiKSB7CiAgICAgIGVjaG8gIjxtZXRhIHByb3BlcnR5PSdmYjphZG1pbnMnIGNvbnRlbnQ9JyIuJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJywnJykuIicgLz5cbiI7CiAgICB9ZWxzZXsKICAgICAgZWNobyAiPG1ldGEgcHJvcGVydHk9J2ZiOmFwcF9pZCcgY29udGVudD0nIi4kdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zJywnJykuIicgLz5cbiI7CiAgICB9CiAgICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKSAhPSAiIikgewogICAgICBlY2hvICI8bWV0YSBwcm9wZXJ0eT0nb2c6bG9jYWxpdHknIGNvbnRlbnQ9JyIuJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKS4iJyAvPlxuIjsKICAgIH0KICAgIGlmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKSAhPSAiIikgewogICAgICBlY2hvICI8bWV0YSBwcm9wZXJ0eT0nb2c6cmVnaW9uJyBjb250ZW50PSciLiR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX3JlZ2lvbicsJycpLiInIC8+XG4iOwogICAgfQogICAgaWYgKCgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9sYXRpdHVkZScsJycpICE9ICIiKSAmJiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfbG9uZ2l0dWRlJywnJykgIT0gIiIpKSB7CiAgICAgIGVjaG8gIjxtZXRhIHByb3BlcnR5PSdvZzpsYXRpdHVkZScgY29udGVudD0nIi4kdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9sYXRpdHVkZScsJycpLiInIC8+XG4iOwogICAgICBlY2hvICI8bWV0YSBwcm9wZXJ0eT0nb2c6bG9uZ2l0dWRlJyBjb250ZW50PSciLiR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLiInIC8+XG4iOwogICAgfSAgICAgICAgICAgCn0KCi8vIEltYWdlLUxpbmsKCmlmICgoJGN1cmNvbnRlbnQtPm1Qcm9wZXJ0aWVzLT5tUHJvcGVydHlWYWx1ZXNbJ2ltYWdlJ10gIT0gLTEpICYmICgkY3VyY29udGVudC0+bVByb3BlcnRpZXMtPm1Qcm9wZXJ0eVZhbHVlc1snaW1hZ2UnXSAhPSAiIikpICB7CgllY2hvICI8bGluayByZWw9J2ltYWdlX3NyYycgaHJlZj0nIi4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLiIvdXBsb2Fkcy9pbWFnZXMvIi4kY3VyY29udGVudC0+bVByb3BlcnRpZXMtPm1Qcm9wZXJ0eVZhbHVlc1snaW1hZ2UnXS4iJyAvPiI7Cn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKICAgIHsKICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgfQoKLyogLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIENvZGUgZm9yIFNFT1Rvb2xzICJkZWZhdWx0YWRtaW4iIGFkbWluIGFjdGlvbgogICAKICAgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KICAgCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQogICBvciBkbyBzb21lIG90aGVyIHRhc2suCiAgIAoqLwoKLy8gRG8gdGhlIGFjdGlvbgppZiAoaXNzZXQoJF9HRVRbJ3doYXQnXSkgJiYgJF9HRVRbJ3doYXQnXSA9PSAndG9nZ2xlX2luZGV4JykgewogICAgJGRiID0mICRnQ21zLT5kYjsKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMgV0hFUkUgY29udGVudF9pZCA9ICcuJF9HRVRbJ2NvbnRlbnRfaWQnXTsKICAgICRyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkaW5mbyA9ICRyZXN1bHQtPmZldGNoUm93KCk7CiAgICBpZiAoJGluZm9bJ2luZGV4YWJsZSddID09ICIxIikgewogICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29scyBTRVQgaW5kZXhhYmxlID0gMCBXSEVSRSBjb250ZW50X2lkID0gJy4kX0dFVFsnY29udGVudF9pZCddOwogICAgfWVsc2V7CiAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMgU0VUIGNvbnRlbnRfaWQgPSAnLiRfR0VUWydjb250ZW50X2lkJ10uJywgaW5kZXhhYmxlID0gMCBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBpbmRleGFibGUgPSAxJzsKICAgIH0KICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdjcmVhdGVfcm9ib3RzJywndHJ1ZScpID09ICd0cnVlJykgewogICAgICAgICR0aGlzLT5jcmVhdGVSb2JvdHNUWFQoKTsKICAgIH0KICAgIGlmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnY3JlYXRlX3NpdGVtYXAnLCd0cnVlJykgPT0gJ3RydWUnKSB7CiAgICAgICAgJHRoaXMtPmNyZWF0ZVNpdGVtYXAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ3B1c2hfc2l0ZW1hcCcsJ3RydWUnKSA9PSB0cnVlKTsKICAgIH0KICAgICRfR0VUWyd0YWInXSA9ICdwYWdlZGVzY3JpcHRpb25zJzsKfSAgIAoKaWYgKGlzc2V0KCRfR0VUWyd3aGF0J10pICYmICRfR0VUWyd3aGF0J10gPT0gJ3NldF9wcmlvcml0eScpIHsKICAgICRkYiA9JiAkZ0Ntcy0+ZGI7ICAgIAogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMgU0VUIGNvbnRlbnRfaWQgPSAnLiRfR0VUWydjb250ZW50X2lkJ10uJywgcHJpb3JpdHkgPSAnLiRfR0VUWydwcmlvcml0eSddLicgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgcHJpb3JpdHkgPSAnLiRfR0VUWydwcmlvcml0eSddOyAgICAKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgJF9HRVRbJ3RhYiddID0gJ3BhZ2VkZXNjcmlwdGlvbnMnOwogICAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcsJ3RydWUnKSA9PSAndHJ1ZScpIHsKICAgICAgICAkdGhpcy0+Y3JlYXRlU2l0ZW1hcCgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJywndHJ1ZScpID09IHRydWUpOwogICAgfQp9CgppZiAoaXNzZXQoJF9HRVRbJ3doYXQnXSkgJiYgJF9HRVRbJ3doYXQnXSA9PSAncmVzZXRfcHJpb3JpdHknKSB7CiAgICAkZGIgPSYgJGdDbXMtPmRiOyAgICAKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29scyBTRVQgcHJpb3JpdHkgPSBOVUxMIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRfR0VUWydjb250ZW50X2lkJ107ICAgIAogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkX0dFVFsndGFiJ10gPSAncGFnZWRlc2NyaXB0aW9ucyc7CiAgICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywndHJ1ZScpID09ICd0cnVlJykgewogICAgICAgICR0aGlzLT5jcmVhdGVTaXRlbWFwKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLCd0cnVlJykgPT0gdHJ1ZSk7CiAgICB9Cn0KCmlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICdyZXNldF9vZ3R5cGUnKSB7CiAgICAkZGIgPSYgJGdDbXMtPmRiOyAgICAKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29scyBTRVQgb2d0eXBlID0gTlVMTCBXSEVSRSBjb250ZW50X2lkID0gJy4kX0dFVFsnY29udGVudF9pZCddOyAgICAKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgJF9HRVRbJ3RhYiddID0gJ3BhZ2VkZXNjcmlwdGlvbnMnOwp9CgppZiAoaXNzZXQoJF9HRVRbJ3doYXQnXSkgJiYgJF9HRVRbJ3doYXQnXSA9PSAncmVzZXRfa2V5d29yZHMnKSB7CiAgICAkZGIgPSYgJGdDbXMtPmRiOyAgICAKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29scyBTRVQga2V5d29yZHMgPSBOVUxMIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRfR0VUWydjb250ZW50X2lkJ107ICAgIAogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkX0dFVFsndGFiJ10gPSAncGFnZWRlc2NyaXB0aW9ucyc7Cn0KCmlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICdlZGl0X29ndHlwZScpIHsKICAgIGVjaG8gJHRoaXMtPlJlZGlyZWN0KG51bGwsICdlZGl0X29ndHlwZScsICR0aGlzLT5yZXR1cm5pZCwgQXJyYXkoJ2NvbnRlbnRfaWQnPT4kX0dFVFsnY29udGVudF9pZCddKSk7Cn0KCmlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICdlZGl0X2tleXdvcmRzJykgewogICAgZWNobyAkdGhpcy0+UmVkaXJlY3QobnVsbCwgJ2VkaXRfa2V5d29yZHMnLCAkdGhpcy0+cmV0dXJuaWQsIEFycmF5KCdjb250ZW50X2lkJz0+JF9HRVRbJ2NvbnRlbnRfaWQnXSkpOwp9CiAgICAKICAgIAokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RhYl9oZWFkZXJzJywkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCkuCiAgICAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZW9hbGVydHMnLCR0aGlzLT5MYW5nKCd0aXRsZV9zZW9hbGVydHMnKSkuCiAgICAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwYWdlZGVzY3JpcHRpb25zJywkdGhpcy0+TGFuZygndGl0bGVfcGFnZWRlc2NyaXB0aW9ucycpLCAoaXNzZXQoJF9HRVRbJ3RhYiddKSAmJiAkX0dFVFsndGFiJ10gPT0gJ3BhZ2VkZXNjcmlwdGlvbnMnKSkuICAKICAgICR0aGlzLT5TZXRUYWJIZWFkZXIoJ21ldGFzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RpdGxlX21ldGFzZXR0aW5ncycpLCAoaXNzZXQoJF9HRVRbJ3RhYiddKSAmJiAkX0dFVFsndGFiJ10gPT0gJ21ldGFzZXR0aW5ncycpKS4KICAgICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NpdGVtYXBzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RpdGxlX3NpdGVtYXBzZXR0aW5ncycpLCAoaXNzZXQoJF9HRVRbJ3RhYiddKSAmJiAkX0dFVFsndGFiJ10gPT0gJ3NpdGVtYXBzZXR0aW5ncycpKS4KICAgICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2tleXdvcmRzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RpdGxlX2tleXdvcmRzZXR0aW5ncycpLCAoaXNzZXQoJF9HRVRbJ3RhYiddKSAmJiAkX0dFVFsndGFiJ10gPT0gJ2tleXdvcmRzZXR0aW5ncycpKS4KICAgICR0aGlzLT5FbmRUYWJIZWFkZXJzKCkuJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiJywkdGhpcy0+RW5kVGFiKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RhYl9mb290ZXJzJywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9zZW9hbGVydHNfdGFiJywkdGhpcy0+U3RhcnRUYWIoJ3Nlb2FsZXJ0cycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9wYWdlZGVzY3JpcHRpb25zX3RhYicsJHRoaXMtPlN0YXJ0VGFiKCdwYWdlZGVzY3JpcHRpb25zJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X21ldGFzZXR0aW5nc190YWInLCR0aGlzLT5TdGFydFRhYignbWV0YXNldHRpbmdzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X3NpdGVtYXBzZXR0aW5nc190YWInLCR0aGlzLT5TdGFydFRhYignc2l0ZW1hcHNldHRpbmdzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2tleXdvcmRzZXR0aW5nc190YWInLCR0aGlzLT5TdGFydFRhYigna2V5d29yZHNldHRpbmdzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3NlY3Rpb24nLCdkZWZhdWx0YWRtaW4nKTsKCmlmIChpc3NldCgkX0dFVFsnbWVzc2FnZSddKSkgewogICR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsJHRoaXMtPnNob3dNZXNzYWdlKCR0aGlzLT5sYW5nKCRfR0VUWydtZXNzYWdlJ10pKSk7Cn0KCi8qIFNFTyBBbGVydHMgVGFiICovCgokYWxlcnRzICA9ICR0aGlzLT5jcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdhbGVydHNfdXJnZW50JywgJHRoaXMtPkxhbmcoJ3RpdGxlX2FsZXJ0c191cmdlbnQnKSk7CgokdXJnZW50X2FsZXJ0cyA9ICR0aGlzLT5nZXRVcmdlbnRBbGVydHMoKTsKCmlmIChjb3VudCgkdXJnZW50X2FsZXJ0cykgPT0gMCkgewogICRhbGVydHMgLj0gJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9hZG1pbi90aGVtZXMvTkNsZWFuR3JleS9pbWFnZXMvaWNvbnMvc3lzdGVtL3RydWUuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiAnLiR0aGlzLT5sYW5nKCdub3RoaW5nX3RvX2JlX2ZpeGVkJykuJzxiciAvPjxiciAvPic7Cn1lbHNlewogICRncm91cHMgPSBBcnJheSgpOwogIGZvcmVhY2ggKCR1cmdlbnRfYWxlcnRzIGFzICRhbGVydCkgeyAgICAgICAgICAKICAgICRncm91cHNbJGFsZXJ0Wydncm91cCddXVtdID0gJGFsZXJ0OyAgICAKICB9ICAgIAogIGZvcmVhY2goJGdyb3VwcyBhcyAkZ3JvdXAgPT4gJGdhbGVydHMpIHsKICAJJGNvdW50ID0gY291bnQoJGdhbGVydHMpOyAKICAgIGlmIChjb3VudCgkZ2FsZXJ0cykgPiAyMCkgewogICAgICAgICRwYXJ0cyA9IGFycmF5X2NodW5rKCRnYWxlcnRzLCAyMCk7CiAgICAgICAgJGdhbGVydHMgPSAkcGFydHNbMF07CiAgICAgICAgJGNvdW50ID0gIj4gMjAiOwogICAgfQogICAgaWYgKGNvdW50KCRnYWxlcnRzKSA9PSAxKSB7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzEuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRnYWxlcnRzWzBdWydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkZ2FsZXJ0c1swXVsnbGlua3MnXSkuJ108YnIgLz48YnIgLz4nOwogICAgfWVsc2V7CiAgICAgICRncm91cF90aXRsZSA9ICR0aGlzLT5sYW5nKCdncm91cHRpdGxlXycuJGdyb3VwLCBBcnJheSgkY291bnQpKTsKICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzEuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRncm91cF90aXRsZS4nPC9iPiBbPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKG51bGwpIiBvbkNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ3VyZ2VudF9ncm91cF8nLiRncm91cC4nXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ2Jsb2NrXCciPicuJHRoaXMtPmxhbmcoJ3ZpZXdfYWxsJykuJzwvYT5dPGJyIC8+PGJyIC8+JzsKICAgICAgJGFsZXJ0cyAuPSAnPGRpdiBpZD0idXJnZW50X2dyb3VwXycuJGdyb3VwLiciIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMwcHg7IGRpc3BsYXk6IG5vbmU7Ij4nOwogICAgICBmb3JlYWNoICgkZ2FsZXJ0cyBhcyAkYWxlcnQpIHsKICAgICAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvYWRtaW4vdGhlbWVzL05DbGVhbkdyZXkvaW1hZ2VzL2ljb25zL05vdGlmaWNhdGlvbnMvMS5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+IDxiPicuJGFsZXJ0WydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkYWxlcnRbJ2xpbmtzJ10pLiddPGJyIC8+PGJyIC8+JzsKICAgICAgfQogICAgICAkYWxlcnRzIC49ICc8L2Rpdj4nOwogICAgfQogIH0KfQoKJGFsZXJ0cyAuPSAkdGhpcy0+Y3JlYXRlRmllbGRzZXRFbmQoKTsgCgokYWxlcnRzIC49ICR0aGlzLT5jcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdhbGVydHNfaW1wb3J0YW50JywgJHRoaXMtPkxhbmcoJ3RpdGxlX2FsZXJ0c19pbXBvcnRhbnQnKSk7CgokaW1wb3J0YW50X2FsZXJ0cyA9ICR0aGlzLT5nZXRJbXBvcnRhbnRBbGVydHMoKTsKaWYgKGNvdW50KCRpbXBvcnRhbnRfYWxlcnRzKSA9PSAwKSB7CiAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vdHJ1ZS5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+ICcuJHRoaXMtPmxhbmcoJ25vdGhpbmdfdG9fYmVfZml4ZWQnKS4nPGJyIC8+PGJyIC8+JzsKfWVsc2V7CiAgJGdyb3VwcyA9IEFycmF5KCk7CiAgZm9yZWFjaCAoJGltcG9ydGFudF9hbGVydHMgYXMgJGFsZXJ0KSB7ICAgICAgICAgIAogICAgJGdyb3Vwc1skYWxlcnRbJ2dyb3VwJ11dW10gPSAkYWxlcnQ7ICAgIAogIH0gICAgCiAgZm9yZWFjaCgkZ3JvdXBzIGFzICRncm91cCA9PiAkZ2FsZXJ0cykgewogICAgJGNvdW50ID0gY291bnQoJGdhbGVydHMpOyAKICAgIGlmIChjb3VudCgkZ2FsZXJ0cykgPiAyMCkgewogICAgICAgICRwYXJ0cyA9IGFycmF5X2NodW5rKCRnYWxlcnRzLCAyMCk7CiAgICAgICAgJGdhbGVydHMgPSAkcGFydHNbMF07CiAgICAgICAgJGNvdW50ID0gIj4gMjAiOwogICAgfQogICAgaWYgKGNvdW50KCRnYWxlcnRzKSA9PSAxKSB7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzIuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRnYWxlcnRzWzBdWydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkZ2FsZXJ0c1swXVsnbGlua3MnXSkuJ108YnIgLz48YnIgLz4nOwogICAgfWVsc2V7CiAgICAgICRncm91cF90aXRsZSA9ICR0aGlzLT5sYW5nKCdncm91cHRpdGxlXycuJGdyb3VwLCBBcnJheSgkY291bnQpKTsKICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzIuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRncm91cF90aXRsZS4nPC9iPiBbPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKG51bGwpIiBvbkNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ2ltcG9ydGFudF9ncm91cF8nLiRncm91cC4nXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ2Jsb2NrXCciPicuJHRoaXMtPmxhbmcoJ3ZpZXdfYWxsJykuJzwvYT5dPGJyIC8+PGJyIC8+JzsKICAgICAgJGFsZXJ0cyAuPSAnPGRpdiBpZD0iaW1wb3J0YW50X2dyb3VwXycuJGdyb3VwLiciIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMwcHg7IGRpc3BsYXk6IG5vbmU7Ij4nOwogICAgICBmb3JlYWNoICgkZ2FsZXJ0cyBhcyAkYWxlcnQpIHsKICAgICAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvYWRtaW4vdGhlbWVzL05DbGVhbkdyZXkvaW1hZ2VzL2ljb25zL05vdGlmaWNhdGlvbnMvMi5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+IDxiPicuJGFsZXJ0WydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkYWxlcnRbJ2xpbmtzJ10pLiddPGJyIC8+PGJyIC8+JzsKICAgICAgfQogICAgICAkYWxlcnRzIC49ICc8L2Rpdj4nOwogICAgfQogIH0KfQoKJGFsZXJ0cyAuPSAkdGhpcy0+Y3JlYXRlRmllbGRzZXRFbmQoKTsKCiRhbGVydHMgLj0gJHRoaXMtPmNyZWF0ZUZpZWxkc2V0U3RhcnQobnVsbCwgJ2FsZXJ0c19ub3RpY2VzJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2FsZXJ0c19ub3RpY2VzJykpOwoKJG5vdGljZV9hbGVydHMgPSAkdGhpcy0+Z2V0Tm90aWNlQWxlcnRzKCk7CmlmIChjb3VudCgkbm90aWNlX2FsZXJ0cykgPT0gMCkgewogICRhbGVydHMgLj0gJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9hZG1pbi90aGVtZXMvTkNsZWFuR3JleS9pbWFnZXMvaWNvbnMvc3lzdGVtL3RydWUuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiAnLiR0aGlzLT5sYW5nKCdub3RoaW5nX3RvX2JlX2ZpeGVkJykuJzxiciAvPjxiciAvPic7Cn1lbHNlewogIGZvcmVhY2ggKCRub3RpY2VfYWxlcnRzIGFzICRhbGVydCkgewogICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzMuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRhbGVydFsnbWVzc2FnZSddLic8L2I+IFsnLmltcGxvZGUoJyB8ICcsJGFsZXJ0WydsaW5rcyddKS4nXTxiciAvPjxiciAvPic7CiAgfSAgCn0KCiRhbGVydHMgLj0gJHRoaXMtPmNyZWF0ZUZpZWxkc2V0RW5kKCk7CgoKCi8qIFBhZ2Ugc2V0dGluZ3MgVGFiICovCgokcGFnZXNldHRpbmdzICA9ICc8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+JzsKJHBhZ2VzZXR0aW5ncyAuPSAnPHRyPic7CiRwYWdlc2V0dGluZ3MgLj0gJzx0aD4nLiR0aGlzLT5sYW5nKCdwYWdlX2lkJykuJzwvdGg+JzsKJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ3BhZ2VfbmFtZScpLic8L3RoPic7CiRwYWdlc2V0dGluZ3MgLj0gJzx0aD4nLiR0aGlzLT5sYW5nKCdwcmlvcml0eScpLic8L3RoPic7CiRwYWdlc2V0dGluZ3MgLj0gJzx0aD4nLiR0aGlzLT5sYW5nKCdvZ190eXBlJykuJzwvdGg+JzsKJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ2tleXdvcmRzJykuJzwvdGg+JzsKJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ2Rlc2NyaXB0aW9uJykuJzwvdGg+JzsKJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ2luZGV4JykuJzwvdGg+JzsKJHBhZ2VzZXR0aW5ncyAuPSAnPC90cj4nOwoKJGRiID0mICRnQ21zLT5kYjsKCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IE9SREVSIEJZIGhpZXJhcmNoeSBBU0MnOwokcmVzdWx0ID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKJGogPSAwOwp3aGlsZSAoJHBhZ2UgPSAkcmVzdWx0LT5mZXRjaFJvdygpKSB7CQkJCQoJCiAgICAkcHJlZml4ID0gIiI7CiAgICAkYXV0b19wcmlvcml0eSA9IDgwOwogICAgZm9yICgkaSA9IDA7ICRpIDwgc3Vic3RyX2NvdW50KCRwYWdlWydoaWVyYXJjaHknXSwnLicpOyAkaSsrKSB7CiAgICAgICAgJHByZWZpeCAuPSAnJnJhcXVvOyAnOwogICAgICAgICRhdXRvX3ByaW9yaXR5ICA9ICRhdXRvX3ByaW9yaXR5IC8gMjsKICAgIH0KICAgIGlmICgkcGFnZVsnZGVmYXVsdF9jb250ZW50J10gPT0gMSkgewogICAgICAgICRhdXRvX3ByaW9yaXR5ID0gMTAwOwogICAgfQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NvbnRlbnRfcHJvcHMgV0hFUkUgY29udGVudF9pZCA9ICcuJHBhZ2VbJ2NvbnRlbnRfaWQnXS4nIEFORCBwcm9wX25hbWUgPSAiJy5zdHJfcmVwbGFjZSgnICcsJ18nLCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpKS4nIic7ICAgICAgICAgCiAgICAkcmVzdWx0MSA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICRkZXNjID0gJHJlc3VsdDEtPmZldGNoUm93KCk7ICAgCiAgICAkZGVzY3JpcHRpb24gPSAkZGVzY1snY29udGVudCddOwoKICAgICRrdyA9IGFycmF5X2ZsaXAoJHRoaXMtPmdldEtleXdvcmRTdWdnZXN0aW9ucygkcGFnZVsnY29udGVudF9pZCddKSk7CiAgICAKICAgICRkZXNjcmlwdGlvbl9hdXRvID0gZmFsc2U7CiAgICBpZiAoKCRkZXNjcmlwdGlvbiA9PSAiIikgJiYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlJywnZmFsc2UnKSA9PSAndHJ1ZScpKSB7CiAgICAJJGxhc3Rfa2V5d29yZCA9IGFycmF5X3BvcCgka3cpOwogICAgCSRrZXl3b3JkcyA9IGltcGxvZGUoJywgJywka3cpIC4gIiAiIC4gJHRoaXMtPmxhbmcoJ2FuZCcpIC4gIiAiIC4gJGxhc3Rfa2V5d29yZDsKICAgIAkkZGVzY3JpcHRpb24gPSAkdGhpcy0+bGFuZygnYXV0b19nZW5lcmF0ZWQnKS4iOiAiLnN0cl9yZXBsYWNlKCd7a2V5d29yZHN9Jywka2V5d29yZHMsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG8nLCcnKSk7CiAgICAJJGRlc2NyaXB0aW9uID0gc3RyX3JlcGxhY2UoJ3t0aXRsZX0nLCRwYWdlWydjb250ZW50X25hbWUnXSwkZGVzY3JpcHRpb24pOwogICAgCSRkZXNjcmlwdGlvbl9hdXRvID0gdHJ1ZTsKICAgIH0KICAgIAogICAgJGRlZmF1bHRfb2d0eXBlID0gJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3R5cGUnLCcnKTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRwYWdlWydjb250ZW50X2lkJ107CiAgICAkcmVzdWx0MiA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICRpbmZvID0gJHJlc3VsdDItPmZldGNoUm93KCk7ICAgICAgIAogICAgICAgIAogICAgJHByaW9yaXR5ID0gJyhhdXRvKSAnLiRhdXRvX3ByaW9yaXR5LiclICc7CiAgICAkb2d0eXBlID0gJyhkZWZhdWx0KSAnLiRkZWZhdWx0X29ndHlwZS4nICcuJHRoaXMtPmNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL1NFT1Rvb2xzL2ltZy9lZGl0LnBuZyIgYWxpZ249ImFic21pZGRsZSIgLz4nLCAkdGhpcy0+bGFuZygnZWRpdF92YWx1ZScpLCBBcnJheSgid2hhdCI9PiJlZGl0X29ndHlwZSIsImNvbnRlbnRfaWQiPT4kcGFnZVsnY29udGVudF9pZCddKSk7ICAgIAogICAgJGtleXdvcmRzID0gJyhhdXRvKSAnLmNvdW50KCRrdykuJyAnLiR0aGlzLT5jcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy9TRU9Ub29scy9pbWcvZWRpdC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgaW1wbG9kZSgnLCAnLCRrdykuJzsgJy4kdGhpcy0+bGFuZygnZWRpdF92YWx1ZScpLCBBcnJheSgid2hhdCI9PiJlZGl0X2tleXdvcmRzIiwiY29udGVudF9pZCI9PiRwYWdlWydjb250ZW50X2lkJ10pKTsKICAgICRpbmRleGFibGUgPSAndHJ1ZSc7CiAgICBpZiAoJGluZm9bJ2NvbnRlbnRfaWQnXSAhPSAiIikgewogICAgICAgIGlmICgkaW5mb1sncHJpb3JpdHknXSAhPSAwKSB7CiAgICAgICAgICAkcHJpb3JpdHkgPSAnPGI+Jy4kaW5mb1sncHJpb3JpdHknXSAuICclICcuJHRoaXMtPmNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL1NFT1Rvb2xzL2ltZy9yZXNldC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgJHRoaXMtPmxhbmcoJ3Jlc2V0X3RvX2RlZmF1bHQnKSwgQXJyYXkoIndoYXQiPT4icmVzZXRfcHJpb3JpdHkiLCJjb250ZW50X2lkIj0+JHBhZ2VbJ2NvbnRlbnRfaWQnXSkpIC4gJzwvYj4nOwogICAgICAgICAgJGF1dG9fcHJpb3JpdHkgPSAkaW5mb1sncHJpb3JpdHknXTsKICAgICAgICB9CiAgICAgICAgaWYgKCRpbmZvWydvZ3R5cGUnXSAhPSAiIikgewogICAgICAgICAgJG9ndHlwZSA9ICc8Yj4nLiRpbmZvWydvZ3R5cGUnXSAuICcgJyAuICR0aGlzLT5jcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy9TRU9Ub29scy9pbWcvcmVzZXQucG5nIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsICR0aGlzLT5sYW5nKCdyZXNldF90b19kZWZhdWx0JyksIEFycmF5KCJ3aGF0Ij0+InJlc2V0X29ndHlwZSIsImNvbnRlbnRfaWQiPT4kcGFnZVsnY29udGVudF9pZCddKSkgLiAkdGhpcy0+Y3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvU0VPVG9vbHMvaW1nL2VkaXQucG5nIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsICR0aGlzLT5sYW5nKCdlZGl0X3ZhbHVlJyksIEFycmF5KCJ3aGF0Ij0+ImVkaXRfb2d0eXBlIiwiY29udGVudF9pZCI9PiRwYWdlWydjb250ZW50X2lkJ10pKS4nPC9iPic7CiAgICAgICAgfQogICAgICAgIGlmICgkaW5mb1sna2V5d29yZHMnXSAhPSAiIikgewogICAgICAgICAgICAka2V5d29yZHMgPSAnPGI+Jy5jb3VudChleHBsb2RlKCcgJywkaW5mb1sna2V5d29yZHMnXSkpIC4gJHRoaXMtPmNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL1NFT1Rvb2xzL2ltZy9yZXNldC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgJHRoaXMtPmxhbmcoJ3Jlc2V0X3RvX2RlZmF1bHQnKSwgQXJyYXkoIndoYXQiPT4icmVzZXRfa2V5d29yZHMiLCJjb250ZW50X2lkIj0+JHBhZ2VbJ2NvbnRlbnRfaWQnXSkpIC4gJHRoaXMtPmNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL1NFT1Rvb2xzL2ltZy9lZGl0LnBuZyIgYWxpZ249ImFic21pZGRsZSIgLz4nLCAkdGhpcy0+bGFuZygnZWRpdF92YWx1ZScpLCBBcnJheSgid2hhdCI9PiJlZGl0X2tleXdvcmRzIiwiY29udGVudF9pZCI9PiRwYWdlWydjb250ZW50X2lkJ10pKS4nPC9iPic7CiAgICAgICAgfQogICAgICAgIGlmICgkaW5mb1snaW5kZXhhYmxlJ10gPT0gMCkgeyAgICAgICAgCiAgICAgICAgICAkaW5kZXhhYmxlID0gJ2ZhbHNlJzsKICAgICAgICB9CiAgICB9CiAgICAKICAgICR1cGRvd24gID0gJHRoaXMtPmNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9hZG1pbi90aGVtZXMvTkNsZWFuR3JleS9pbWFnZXMvaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmIiBib3JkZXI9IjAiIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgJHRoaXMtPmxhbmcoJ2RlY3JlYXNlX3ByaW9yaXR5JyksIEFycmF5KCd3aGF0Jz0+J3NldF9wcmlvcml0eScsJ3ByaW9yaXR5Jz0+JGF1dG9fcHJpb3JpdHktMTAsJ2NvbnRlbnRfaWQnPT4kcGFnZVsnY29udGVudF9pZCddKSk7CiAgICAkdXBkb3duIC49ICR0aGlzLT5jcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvYWRtaW4vdGhlbWVzL05DbGVhbkdyZXkvaW1hZ2VzL2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZiIgYm9yZGVyPSIwIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsICR0aGlzLT5sYW5nKCdpbmNyZWFzZV9wcmlvcml0eScpLCBBcnJheSgnd2hhdCc9PidzZXRfcHJpb3JpdHknLCdwcmlvcml0eSc9PiRhdXRvX3ByaW9yaXR5KzEwLCdjb250ZW50X2lkJz0+JHBhZ2VbJ2NvbnRlbnRfaWQnXSkpOwogICAgCiAgICAkcGFnZXNldHRpbmdzIC49ICc8dHIgY2xhc3M9InJvdycuKCRqICUgMiArIDEpLiciPic7CiAgICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+Jy4kcGFnZVsnY29udGVudF9pZCddLic8L3RkPic7CiAgICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+Jy4kcHJlZml4IC4nICcuJHBhZ2VbJ2NvbnRlbnRfbmFtZSddLic8L3RkPic7CiAgICBpZiAoJHBhZ2VbJ3R5cGUnXSA9PSAnY29udGVudCcpIHsKICAgICAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPicuJHVwZG93bi4nICcuJHByaW9yaXR5Lic8L3RkPic7CiAgICAgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4nLiRvZ3R5cGUuJzwvdGQ+JzsKICAgICAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPicuJGtleXdvcmRzLic8L3RkPic7CiAgICAgIGlmICgkZGVzY3JpcHRpb24gIT0gIiIpIHsKICAgICAgICBpZiAoJGRlc2NyaXB0aW9uX2F1dG8pIHsKICAgICAgCSAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPjxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9hZG1pbi90aGVtZXMvTkNsZWFuR3JleS9pbWFnZXMvaWNvbnMvc3lzdGVtL3dhcm5pbmcuZ2lmIiB0aXRsZT0iJy5zdHJpcF90YWdzKCRkZXNjcmlwdGlvbikuJyIgLz48L3RkPic7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+PGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vdHJ1ZS5naWYiIHRpdGxlPSInLnN0cmlwX3RhZ3MoJGRlc2NyaXB0aW9uKS4nIiAvPjwvdGQ+JzsKICAgICAgICB9CiAgICAgIH1lbHNlewogICAgICAgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZD48YSBocmVmPSJlZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRwYWdlWydjb250ZW50X2lkJ10uJyI+PGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vZmFsc2UuZ2lmIiBib3JkZXI9IjAiIHRpdGxlPSInLiR0aGlzLT5sYW5nKCdjbGlja190b19hZGRfZGVzY3JpcHRpb24nKS4nIiAvPjwvYT48L3RkPic7CiAgICAgIH0KICAgICAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPicuJHRoaXMtPmNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9hZG1pbi90aGVtZXMvTkNsZWFuR3JleS9pbWFnZXMvaWNvbnMvc3lzdGVtLycuJGluZGV4YWJsZS4nLmdpZiIgLz4nLCAkdGhpcy0+bGFuZygndG9nZ2xlJyksIEFycmF5KCd3aGF0Jz0+J3RvZ2dsZV9pbmRleCcsJ2NvbnRlbnRfaWQnPT4kcGFnZVsnY29udGVudF9pZCddKSkuJzwvdGQ+JzsKICAgIH1lbHNlewogICAgCSRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4tLS08L3RkPic7CiAgICAJJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPi0tLTwvdGQ+JzsKICAgIAkkcGFnZXNldHRpbmdzIC49ICc8dGQ+LS0tPC90ZD4nOwogICAgCSRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4tLS08L3RkPic7CiAgICAJJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPi0tLTwvdGQ+JzsKICAgIH0KICAgICRwYWdlc2V0dGluZ3MgLj0gJzwvdHI+JzsKICAgICRqKys7CiAgICAKfQoKJHBhZ2VzZXR0aW5ncyAuPSAnPC90YWJsZT4nOwoKLyogU0VPIFNldHRpbmdzIFRhYiAqLwoKLy8gR2V0IGltYWdlIGZpbGVzIGZyb20gL3VwbG9hZHMvaW1hZ2VzCiRmaWxlc19saXN0ID0gQXJyYXkoJHRoaXMtPmxhbmcoJ25vbmUnKT0+IiIpOwokZHAgPSBvcGVuZGlyKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddLicvdXBsb2Fkcy9pbWFnZXMnKTsKd2hpbGUgKCRmaWxlID0gcmVhZGRpcigkZHApKSB7ICAKICAgIGlmIChzdHJwb3Moc3Vic3RyKCRmaWxlLCAtNSksJy5naWYnKSAhPT0gZmFsc2UpIHsKICAgICAgICAkZmlsZXNfbGlzdFskZmlsZV0gPSAkZmlsZTsKICAgIH0KICAgIGlmIChzdHJwb3Moc3Vic3RyKCRmaWxlLCAtNSksJy5wbmcnKSAhPT0gZmFsc2UpIHsKICAgICAgICAkZmlsZXNfbGlzdFskZmlsZV0gPSAkZmlsZTsKICAgIH0KICAgIGlmIChzdHJwb3Moc3Vic3RyKCRmaWxlLCAtNSksJy5qcGcnKSAhPT0gZmFsc2UpIHsKICAgICAgICAkZmlsZXNfbGlzdFskZmlsZV0gPSAkZmlsZTsKICAgIH0KICAgIGlmIChzdHJwb3Moc3Vic3RyKCRmaWxlLCAtNSksJy5qcGVnJykgIT09IGZhbHNlKSB7CiAgICAgICAgJGZpbGVzX2xpc3RbJGZpbGVdID0gJGZpbGU7CiAgICB9Cn0KY2xvc2VkaXIoJGRwKTsKCiRzZXR0aW5ncyAgPSAkdGhpcy0+Y3JlYXRlRm9ybVN0YXJ0KG51bGwsICdjaGFuZ2VzZXR0aW5ncycpOwoKLyogUGFnZSBUaXRsZSAqLwokc2V0dGluZ3MgLj0gJHRoaXMtPmNyZWF0ZUZpZWxkc2V0U3RhcnQobnVsbCwgJ3RpdGxlX2Rlc2NyaXB0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX3RpdGxlX2Rlc2NyaXB0aW9uJykpOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygndGl0bGVfdGl0bGUnKS4nOjwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0VGV4dChudWxsLCAndGl0bGUnLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgndGl0bGUnLCd7dGl0bGV9IHwge3NpdGVuYW1lfSAtIHtzZW9fa2V5d29yZHN9JyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ3RpdGxlX3RpdGxlX2hlbHAnKS4nPC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCd0aXRsZV9tZXRhX3RpdGxlJykuJzo8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ3RpdGxlX21ldGEnLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgndGl0bGVfbWV0YScsJ3t0aXRsZX0gfCB7c2l0ZW5hbWV9JyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ3RpdGxlX21ldGFfaGVscCcpLic8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2Rlc2NyaXB0aW9uX2Jsb2NrX3RpdGxlJykuJzo8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ2Rlc2NyaXB0aW9uX2Jsb2NrJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ2Rlc2NyaXB0aW9uX2Jsb2NrX2hlbHAnKS4nPC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nIC4gJHRoaXMtPkxhbmcoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnKSAuICc6ICcgLiAkdGhpcy0+Y3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsICd0cnVlJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnLCdmYWxzZScpKSAuICc8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2Rlc2NyaXB0aW9uX2F1dG9fdGl0bGUnKS4nOjwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0VGV4dChudWxsLCAnZGVzY3JpcHRpb25fYXV0bycsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvJywnVGhpcyBwYWdlIGNvdmVycyB0aGUgdG9waWNzIHtrZXl3b3Jkc30nKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnZGVzY3JpcHRpb25fYXV0b19oZWxwJykuJzwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZGVmYXVsdF9rZXl3b3Jkc190aXRsZScpLic6PC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRUZXh0KG51bGwsICdkZWZhdWx0X2tleXdvcmRzJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2RlZmF1bHRfa2V5d29yZHMnLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnZGVmYXVsdF9rZXl3b3Jkc19oZWxwJykuJzwvcD4nOwokc2V0dGluZ3MgLj0gJHRoaXMtPmNyZWF0ZUZpZWxkc2V0RW5kKCk7CgovKiBNRVRBIFR5cGVzICovCiRzZXR0aW5ncyAuPSAkdGhpcy0+Y3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAnbWV0YV90eXBlJywgJHRoaXMtPkxhbmcoJ3RpdGxlX21ldGFfdHlwZScpKTsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicgLiAkdGhpcy0+TGFuZygnbWV0YV9jcmVhdGVfc3RhbmRhcmQnKSAuICc6ICcgLiAkdGhpcy0+Y3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnbWV0YV9zdGFuZGFyZCcsICd0cnVlJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfc3RhbmRhcmQnLCd0cnVlJykpIC4gJzwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdtZXRhX2NyZWF0ZV9kdWJsaW5jb3JlJykgLiAnOiAnIC4gJHRoaXMtPmNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ21ldGFfZHVibGluY29yZScsICd0cnVlJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfZHVibGluY29yZScsJ2ZhbHNlJykpIC4gJzwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdtZXRhX2NyZWF0ZV9vcGVuZ3JhcGgnKSAuICc6ICcgLiAkdGhpcy0+Y3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnbWV0YV9vcGVuZ3JhcGgnLCAndHJ1ZScsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaCcsJ2ZhbHNlJykpIC4gJzwvcD4nOwokc2V0dGluZ3MgLj0gJHRoaXMtPmNyZWF0ZUZpZWxkc2V0RW5kKCk7CgovKiBNRVRBIERlZmF1bHRzICovCiRzZXR0aW5ncyAuPSAkdGhpcy0+Y3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAnbWV0YV9kZWZhdWx0cycsICR0aGlzLT5MYW5nKCd0aXRsZV9tZXRhX2RlZmF1bHRzJykpOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9wdWJsaXNoZXInKS4nOjwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9wdWJsaXNoZXInLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9wdWJsaXNoZXJfaGVscCcpLic8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfY29udHJpYnV0b3InKS4nOjwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9jb250cmlidXRvcicsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2NvbnRyaWJ1dG9yJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfY29udHJpYnV0b3JfaGVscCcpLic8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfY29weXJpZ2h0JykuJzo8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfY29weXJpZ2h0JywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JywnKEMpICcuZGF0ZSgnWScpLicuIEFsbCByaWdodHMgcmVzZXJ2ZWQuJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfY29weXJpZ2h0X2hlbHAnKS4nPC9wPjxiciAvPic7Cgokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGI+Jy4kdGhpcy0+bGFuZygnbWV0YV9sb2NhdGlvbl9kZXNjcmlwdGlvbicpLic8L2I+PC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX2xvY2F0aW9uJykuJzo8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfbG9jYXRpb24nLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9sb2NhdGlvbicsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2xvY2F0aW9uX2hlbHAnKS4nPC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX3JlZ2lvbicpLic6PC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX3JlZ2lvbicsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX3JlZ2lvbicsJycpLCA1LCA1KS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfcmVnaW9uX2hlbHAnKS4nPC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX2xhdGl0dWRlJykuJzo8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfbGF0aXR1ZGUnLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9sYXRpdHVkZScsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2xhdGl0dWRlX2hlbHAnKS4nPC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX2xvbmdpdHVkZScpLic6PC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX2xvbmdpdHVkZScsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2xvbmdpdHVkZV9oZWxwJykuJzwvcD48YnIgLz4nOwoKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPjxiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2Rlc2NyaXB0aW9uJykuJzwvYj48L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3RpdGxlJykuJzo8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfb3BlbmdyYXBoX3RpdGxlJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3RpdGxlJywne3RpdGxlfScpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX29wZW5ncmFwaF90aXRsZV9oZWxwJykuJzwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfdHlwZScpLic6PC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX29wZW5ncmFwaF90eXBlJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3R5cGUnLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfdHlwZV9oZWxwJykuJzwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnKS4nOjwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWVfaGVscCcpLic8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2ltYWdlJykuJzo8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dERyb3Bkb3duKG51bGwsICdtZXRhX29wZW5ncmFwaF9pbWFnZScsICRmaWxlc19saXN0LCBudWxsLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnLCcnKSkuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX29wZW5ncmFwaF9pbWFnZV9oZWxwJykuJzwvcD4nOwokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zJykuJzo8L3A+JzsKJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfb3BlbmdyYXBoX2FkbWlucycsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zX2hlbHAnKS4nPC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicpLic6PC9wPic7CiRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbl9oZWxwJykuJzwvcD4nOwokc2V0dGluZ3MgLj0gJHRoaXMtPmNyZWF0ZUZpZWxkc2V0RW5kKCk7Cgokc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0U3VibWl0KG51bGwsICdzYXZlX21ldGFfc2V0dGluZ3MnLCAkdGhpcy0+bGFuZygnc2F2ZScpKS4nPC9wPic7CiRzZXR0aW5ncyAuPSAkdGhpcy0+Y3JlYXRlRm9ybUVuZCgpOyAKCiRzZXR0aW5ncyAuPSAnPGJyIC8+PGJyIC8+Jy4kdGhpcy0+bGFuZygnaGVscF9kZXNjcmlwdGlvbl9jb250ZW50Jyk7CgovKiBTSVRFTUFQIFNldHRpbmdzICovCgokc3NldHRpbmdzICA9ICR0aGlzLT5jcmVhdGVGb3JtU3RhcnQobnVsbCwgJ2NoYW5nZXNldHRpbmdzJyk7Cgokc3NldHRpbmdzIC49ICR0aGlzLT5jcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdzaXRlbWFwX2Rlc2NyaXB0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX3NpdGVtYXBfZGVzY3JpcHRpb24nKSk7CiRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdjcmVhdGVfc2l0ZW1hcF90aXRsZScpIC4gJzogJyAuICR0aGlzLT5jcmVhdGVJbnB1dENoZWNrYm94KG51bGwsICdjcmVhdGVfc2l0ZW1hcCcsICd0cnVlJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywnZmFsc2UnKSkgLiAnPC9wPic7CiRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdwdXNoX3NpdGVtYXBfdGl0bGUnKSAuICc6ICcgLiAkdGhpcy0+Y3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAncHVzaF9zaXRlbWFwJywgJ3RydWUnLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJywnZmFsc2UnKSkgLiAnPC9wPic7CiRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdjcmVhdGVfcm9ib3RzX3RpdGxlJykgLiAnOiAnIC4gJHRoaXMtPmNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ2NyZWF0ZV9yb2JvdHMnLCAndHJ1ZScsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdjcmVhdGVfcm9ib3RzJywnZmFsc2UnKSkgLiAnPC9wPic7CiRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygndmVyaWZpY2F0aW9uX3RpdGxlJykuJzo8L3A+JzsKJHNzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRUZXh0KG51bGwsICd2ZXJpZmljYXRpb24nLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgndmVyaWZpY2F0aW9uJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ3ZlcmlmaWNhdGlvbl9oZWxwJykuJzwvcD4nOwokc3NldHRpbmdzIC49ICR0aGlzLT5jcmVhdGVGaWVsZHNldEVuZCgpOwoKJHNzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRTdWJtaXQobnVsbCwgJ3NhdmVfc2l0ZW1hcF9zZXR0aW5ncycsICR0aGlzLT5sYW5nKCdzYXZlJykpLic8L3A+JzsKCiRzc2V0dGluZ3MgLj0gJHRoaXMtPmNyZWF0ZUZvcm1FbmQoKTsgCgokc3NldHRpbmdzIC49ICR0aGlzLT5jcmVhdGVGb3JtU3RhcnQobnVsbCwgJ2NoYW5nZXNldHRpbmdzJyk7CiRzc2V0dGluZ3MgLj0gJHRoaXMtPmNyZWF0ZUZpZWxkc2V0U3RhcnQobnVsbCwgJ3JlZ2VuZXJhdGVfc2l0ZW1hcCcsICR0aGlzLT5MYW5nKCd0aXRsZV9yZWdlbmVyYXRlX3NpdGVtYXAnKSk7CiRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPic7CiRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0U3VibWl0KG51bGwsICdkb19yZWdlbmVyYXRlJywgJHRoaXMtPmxhbmcoJ2J1dHRvbl9yZWdlbmVyYXRlX3NpdGVtYXAnKSkuJzwvcD4nOwokc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4nOwokc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5sYW5nKCd0ZXh0X3JlZ2VuZXJhdGVfc2l0ZW1hcCcpLic8L3A+JzsKJHNzZXR0aW5ncyAuPSAkdGhpcy0+Y3JlYXRlRmllbGRzZXRFbmQoKTsKJHNzZXR0aW5ncyAuPSAkdGhpcy0+Y3JlYXRlRm9ybUVuZCgpOwoKJHNzZXR0aW5ncyAuPSAnPGJyIC8+PGJyIC8+Jy4kdGhpcy0+bGFuZygnaGVscF9zaXRlbWFwX3JvYm90cycpOwoKLyogS0VZV09SRCBTZXR0aW5ncyAqLwoKJGtzZXR0aW5ncyAgPSAkdGhpcy0+Y3JlYXRlRm9ybVN0YXJ0KG51bGwsICdjaGFuZ2VzZXR0aW5ncycpOwoKJGtzZXR0aW5ncyAuPSAkdGhpcy0+Y3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAna2V5d29yZF93ZWlnaHRfZGVzY3JpcHRpb24nLCAkdGhpcy0+TGFuZygndGl0bGVfa2V5d29yZF93ZWlnaHQnKSk7CiRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygna2V5d29yZF9taW5sZW5ndGhfdGl0bGUnKS4nOjwvcD4nOwoka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfbWlubGVuZ3RoJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfbWlubGVuZ3RoX2hlbHAnKS4nPC9wPic7CiRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygna2V5d29yZF90aXRsZV93ZWlnaHRfdGl0bGUnKS4nOjwvcD4nOwoka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfdGl0bGVfd2VpZ2h0JywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfdGl0bGVfd2VpZ2h0JywnNicpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfdGl0bGVfd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHRfdGl0bGUnKS4nOjwvcD4nOwoka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0JywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0JywnNCcpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygna2V5d29yZF9oZWFkbGluZV93ZWlnaHRfdGl0bGUnKS4nOjwvcD4nOwoka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0JywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0JywnMicpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygna2V5d29yZF9jb250ZW50X3dlaWdodF90aXRsZScpLic6PC9wPic7CiRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0VGV4dChudWxsLCAna2V5d29yZF9jb250ZW50X3dlaWdodCcsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0JywnMScpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfY29udGVudF93ZWlnaHRfaGVscCcpLic8L3A+JzsKJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkX21pbmltdW1fd2VpZ2h0X3RpdGxlJykuJzo8L3A+JzsKJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRUZXh0KG51bGwsICdrZXl3b3JkX21pbmltdW1fd2VpZ2h0JywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWluaW11bV93ZWlnaHQnLCc3JyksIDIpLicgJy4kdGhpcy0+bGFuZygna2V5d29yZF9taW5pbXVtX3dlaWdodF9oZWxwJykuJzwvcD4nOwoka3NldHRpbmdzIC49ICR0aGlzLT5jcmVhdGVGaWVsZHNldEVuZCgpOwoKJGtzZXR0aW5ncyAuPSAkdGhpcy0+Y3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAna2V5d29yZF9leGNsdWRlX2Rlc2NyaXB0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2tleXdvcmRfZXhjbHVkZScpKTsKJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkX2V4Y2x1ZGVfdGl0bGUnKS4nOjwvcD4nOwoka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVUZXh0QXJlYShmYWxzZSwgbnVsbCwgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfZXhjbHVkZScsJycpLCAna2V5d29yZF9leGNsdWRlJykuJyAnLiR0aGlzLT5sYW5nKCdrZXl3b3JkX2V4Y2x1ZGVfaGVscCcpLic8L3A+JzsKJGtzZXR0aW5ncyAuPSAkdGhpcy0+Y3JlYXRlRmllbGRzZXRFbmQoKTsKCiRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0U3VibWl0KG51bGwsICdzYXZlX2tleXdvcmRfc2V0dGluZ3MnLCAkdGhpcy0+bGFuZygnc2F2ZScpKS4nPC9wPic7CiRrc2V0dGluZ3MgLj0gJHRoaXMtPmNyZWF0ZUZvcm1FbmQoKTsKCiRrc2V0dGluZ3MgLj0gJzxiciAvPjxiciAvPicuJHRoaXMtPmxhbmcoJ2hlbHBfa2V5d29yZF9nZW5lcmF0b3InKTsKCgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FsZXJ0cycsJGFsZXJ0cyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncGFnZXNldHRpbmdzJywkcGFnZXNldHRpbmdzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXRhX2Zvcm0nLCRzZXR0aW5ncyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc2l0ZW1hcF9mb3JtJywkc3NldHRpbmdzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdrZXl3b3JkX2Zvcm0nLCRrc2V0dGluZ3MpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbnBhbmVsLnRwbCcpOwoKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.edit_keywords.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoKLyogLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIENvZGUgZm9yIFNFT1Rvb2xzICJlZGl0bWV0YSIgYWRtaW4gYWN0aW9uCiAgIAogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogICAKICAgVHlwaWNhbGx5LCB0aGlzIHdpbGwgZGlzcGxheSBzb21ldGhpbmcgZnJvbSBhIHRlbXBsYXRlCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4KICAgCiovCgokZGIgPSYgJGdDbXMtPmRiOwoKaWYgKGlzc2V0KCRfUE9TVFsnc2V0X2tleXdvcmRzJ10pKSB7CglpZiAoJF9QT1NUWydrZXl3b3JkcyddICE9ICIiKSB7CgkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VvdG9vbHMgU0VUIGNvbnRlbnRfaWQgPSAiLiRfUE9TVFsnY29udGVudF9pZCddLiIsIGtleXdvcmRzID0gJyIuJF9QT1NUWydrZXl3b3JkcyddLiInLCBpbmRleGFibGUgPSAxIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFIGtleXdvcmRzID0gJyIuJF9QT1NUWydrZXl3b3JkcyddLiInIjsKCX1lbHNlewoJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZW90b29scyBTRVQga2V5d29yZHMgPSBOVUxMIFdIRVJFIGNvbnRlbnRfaWQgPSAiLiRfUE9TVFsnY29udGVudF9pZCddOwoJfQkJCgkkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsJCgkkdGhpcy0+cmVkaXJlY3QobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsIEFycmF5KCd0YWInPT4ncGFnZWRlc2NyaXB0aW9ucycpKTsKfQoKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29scyBXSEVSRSBjb250ZW50X2lkID0gJy4kX0dFVFsnY29udGVudF9pZCddOwokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiRpbmZvID0gJHJlc3VsdC0+ZmV0Y2hSb3coKTsKCmlmICgkaW5mb1sna2V5d29yZHMnXSA9PSAiIikgewoJJGluZm9bJ2tleXdvcmRzJ10gPSBzdHJ0b2xvd2VyKGltcGxvZGUoJyAnLGFycmF5X2ZsaXAoJHRoaXMtPmdldEtleXdvcmRTdWdnZXN0aW9ucygkX0dFVFsnY29udGVudF9pZCddKSkpKTsKfQoKJG91dHB1dCAgPSAkdGhpcy0+Y3JlYXRlRm9ybVN0YXJ0KG51bGwsICdlZGl0X2tleXdvcmRzJyk7CiRvdXRwdXQgLj0gJHRoaXMtPmNyZWF0ZUlucHV0SGlkZGVuKG51bGwsICdjb250ZW50X2lkJywgJF9HRVRbJ2NvbnRlbnRfaWQnXSk7CiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZW50ZXJfbmV3X2tleXdvcmRzJykuJzo8L3A+JzsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRUZXh0KG51bGwsICdrZXl3b3JkcycsICRpbmZvWydrZXl3b3JkcyddLCA1MCwgMjU1KS4nICcuJHRoaXMtPmxhbmcoJ2hlbHBfbmV3X2tleXdvcmRzJykuJzwvcD4nOwokb3V0cHV0IC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5jcmVhdGVJbnB1dFN1Ym1pdChudWxsLCAnc2V0X2tleXdvcmRzJywkdGhpcy0+bGFuZygnc2F2ZScpKS4nPC9wPic7Cgokb3V0cHV0IC49ICR0aGlzLT5jcmVhdGVGb3JtRW5kKCk7CgplY2hvICRvdXRwdXQ7CgoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.edit_ogtype.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoKLyogLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIENvZGUgZm9yIFNFT1Rvb2xzICJlZGl0bWV0YSIgYWRtaW4gYWN0aW9uCiAgIAogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogICAKICAgVHlwaWNhbGx5LCB0aGlzIHdpbGwgZGlzcGxheSBzb21ldGhpbmcgZnJvbSBhIHRlbXBsYXRlCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4KICAgCiovCgokZGIgPSYgJGdDbXMtPmRiOwoKaWYgKGlzc2V0KCRfUE9TVFsnc2V0X29ndHlwZSddKSkgewoJaWYgKCRfUE9TVFsnb2dfdHlwZSddICE9ICIiKSB7CgkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VvdG9vbHMgU0VUIGNvbnRlbnRfaWQgPSAiLiRfUE9TVFsnY29udGVudF9pZCddLiIsIG9ndHlwZSA9ICciLiRfUE9TVFsnb2dfdHlwZSddLiInLCBpbmRleGFibGUgPSAxIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFIG9ndHlwZSA9ICciLiRfUE9TVFsnb2dfdHlwZSddLiInIjsKCX1lbHNlewoJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZW90b29scyBTRVQgb2d0eXBlID0gTlVMTCBXSEVSRSBjb250ZW50X2lkID0gIi4kX1BPU1RbJ2NvbnRlbnRfaWQnXTsKCX0KCQoJZWNobyAkcXVlcnk7CgkKCSRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJJHRoaXMtPnJlZGlyZWN0KG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCBBcnJheSgndGFiJz0+J3BhZ2VkZXNjcmlwdGlvbnMnKSk7Cn0KCiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMgV0hFUkUgY29udGVudF9pZCA9ICcuJF9HRVRbJ2NvbnRlbnRfaWQnXTsKJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwokaW5mbyA9ICRyZXN1bHQtPmZldGNoUm93KCk7Cgokb3V0cHV0ICA9ICR0aGlzLT5jcmVhdGVGb3JtU3RhcnQobnVsbCwgJ2VkaXRfb2d0eXBlJyk7CiRvdXRwdXQgLj0gJHRoaXMtPmNyZWF0ZUlucHV0SGlkZGVuKG51bGwsICdjb250ZW50X2lkJywgJF9HRVRbJ2NvbnRlbnRfaWQnXSk7CiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZW50ZXJfbmV3X29ndHlwZScpLic6PC9wPic7CiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmNyZWF0ZUlucHV0VGV4dChudWxsLCAnb2dfdHlwZScsICRpbmZvWydvZ3R5cGUnXSwgMzAsIDMwKS4nICcuJHRoaXMtPmxhbmcoJ2hlbHBfbmV3X29ndHlwZScpLic8L3A+JzsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGJyIC8+Jy4kdGhpcy0+bGFuZygnaGVscF9vcGVuZ3JhcGgnKS4nPGJyIC8+PGJyIC8+JzsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Y3JlYXRlSW5wdXRTdWJtaXQobnVsbCwgJ3NldF9vZ3R5cGUnLCR0aGlzLT5sYW5nKCdzYXZlJykpLic8L3A+JzsKCiRvdXRwdXQgLj0gJHRoaXMtPmNyZWF0ZUZvcm1FbmQoKTsKCmVjaG8gJG91dHB1dDsKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/img/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/img/edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAB3RJTUUH2ggQDQAHiaSPRwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAARnQU1BAACxjwv8YQUAAAImSURBVHjajZPPaxNBFMe/O9tuaJMY7NbUqrVNVeoPVESqB+2pBxFBD3r3Ip78Lzx48aA0WpGi4EnBg0UptIeK0Jh6UKIhmKRG0f5MqjFNm7o7uzvrzJoNqUm0A495zLzPd95j3pNs24YkSbsAdHCT8e+V4/aNM6xyIgT4Oq5pWsEwDMs0Tbue8Xs7HA7f5rE93IjgnMfLGZzgcFTXdcL9ijgHwRgDpRSqqmIp9QxrsaeQfYdR+v4KkjZ/WUQL6+fBb7gICCEO5ApYluUItNAI1tLTaGkfQCB0DIUvUSQnRrJN1QUK2N2FiCzLTprs5yQMK4W2faeQz3yEIlH4t2yHT90dqBFwSxC+eJ2tTEMxEgj0noG++BhKq4SvsSS0dX2lVFo9uUGgun7h0x8RsMJLBPaehzZ/D0Qx0ezrhteeQ3j0w7U7Y5k0afRf2eRzlBYmyvAwSLMBWuzB8tR7qIPXIWAn07pwagzFhSiCh86BLo1AVmzoxW4Ov8O2C0PwdOyvxDb9Dc9En4CtJmBKO7AYH8LWoAIt34XC2yQ6L96F7O/cEF+TQfz1Axw8fRWe2SmkRyOIjeeRnowhePZGDVxXYObzMmjiBUJHB+D19iEbz6Dv0k142nudn3G/umEJiU853Lo/jP4DIfj3HMHglYdobdvZcDiqBcRQSI/G57CJ5bQqbzJbDIUAGW+aX+7F/2Aeu853y+mX8jB14c84k00IoAznODv7G84tFQol4BT4AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/img/reset.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAB3RJTUUH2ggQDDghTfTcdgAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAARnQU1BAACxjwv8YQUAAAJ5SURBVHjapVNdSBRRGD1zZ8bZHcfFn1VWDSNMpYSUBCGCMivJHgyMkiAwfCroIZBSiFAixLeIChaiIlAhf4IoKkhEgh4KJetF1/xF3XSUTVubcdydud1xZRmjJOiDw8yd+53zffd8c4H/DM65uHq/sv9QiXxYN1S2IYDCYk8RinAAS/qidaff3zFwC7WAaHFihKMRUOIU8KXKGUnJERD3OHh5DoIcZJiFKX1GuneZtNZcOd/SWfUFpZHdlPE5EZzgFFglAWUpIYyQFARx9CZgBGaUtWsC5QfrC/0ptQMX654U0hlpjt9ynkx1x0xwhXwdwdjYKKYYJsdGuen5OU/IpaRmpGbKZFLrtYpyy92iQnIG30x1xcmia4svv0NhqLjxLG+hfcZDu4NltGOgTkcOTsU7sKLbmr3OMB5YCekVZcUn1+h7eN1FQvuHoXnhrxTbXsvREwUWVAxRIwkcsRVXbHM2p0Bi+XZkncOF9Hw+LU5GjGzHsePuao+L1TQSoWnf7U/6pssxy083pjTce33UTi9jcDOkMXhRifwjjdLNro81tHOwhHYN7aTNTwu+sb09G0eIshIn6pMbzlbvb/Up+XjUp/Ym8ImUbpQWOdlVzCcpOsL6KMJrgxCEAnS/CDxgm8Ox0lVofnx9b5OUoOGnMQVF9oJadLN35jPng2FOgxd+wIxko6dn8dXLlvUzjKzFphDgZ9P2qSVZecs5dv6qqWGd02HAhoYor8KgFiYmpLW2tpD/3V3zMmOFN7Sdf/Klh3i+qxCl1xpxO1tCkPDsItgeExCdKalv0c+Wn5yTib2LcZHsyib0eXKRu+14/3gtxS0pAsfjn+IXjhPiCXMAIGsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NFTyBUb29scyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1NFTyBUb29scyB3dXJkZSBpbnN0YWxsaWVydC4gQml0dGUgbGVzZW4gU2llIGRpZSBNb2R1bGhpbGZlIHVtIHp1IGVyZmFocmVuLCB3aWUgZGFzIE1vZHVsIGJlbnV0enQgd2lyZC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1NFTyBUb29scyB3dXJkZSBkZWluc3RhbGxpZXJ0LiBEZW5rZW4gU2llIGRhcmFuLCBkYSZzemxpZzsgYXVmIElocmVuIFNlaXRlbiBudW4ga2VpbmUgTWV0YS1JbmZvcm1hdGlvbmVuIG1laHIgYW5nZXplaWd0IHdlcmRlbiEnOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ00mb3VtbDtjaHRlbiBTaWUgU0VPIFRvb2xzIHdpcmtsaWNoIGRlaW5zdGFsbGllcmVuPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBkZWluc3RhbGxpZXJ0Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgYXVmIFZlcnNpb24gJXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VpbmlnZSBUb29scyBkaWUgYmVpIGRlciBTdWNobWFzY2hpbmVub3B0aW1pZXJ1bmcgaGVsZmVuIHVuZCBTaWUgYXVmIHN1Ym9wdGltYWxlIEVpbnN0ZWxsdW5nZW4gaGlud2Vpc2VuLic7CgokbGFuZ1snZXJyb3InXSA9ICdGZWhsZXIhJzsKJGxhbmRbJ2FkbWluX3RpdGxlJ10gPSAnU0VPIFRvb2xzIEFkbWluc3RyYXRpb24nOwokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJ0hpbGZ0IGJlaSBkZXIgYWxsZ2VtZWluZW4gU0VPLCBlcnpldWd0IFhNTC1TaXRlbWFwcyB1bmQgdW1mYW5ncmVpY2hlIE1ldGEtQmVzY2hyZWlidW5nZW4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnWnVncmlmZiB2ZXJ3ZWlnZXJ0LiBCaXR0ZSBwciZ1dW1sO2ZlbiBTaWUgSWhyZSBCZXJlY2h0aWd1bmdlbi4nOwokbGFuZ1snU0VPQWxlcnRzJ10gPSAnU0VPLVdhcm51bmdlbic7CiRsYW5nWydQYWdlZGVzY3JpcHRpb25zJ10gPSAnU2VpdGVuZWluc3RlbGx1bmdlbic7CiRsYW5nWydTaXRlbWFwJ10gPSAnU2l0ZW1hcCc7CiRsYW5nWydTRU9TZXR0aW5ncyddID0gJ1NFTy1FaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nlb2FsZXJ0cyddID0gJ1NFTy1XYXJudW5nZW4nOwokbGFuZ1sndGl0bGVfcGFnZWRlc2NyaXB0aW9ucyddID0gJ1NlaXRlbmVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGl0bGVfc2l0ZW1hcCddID0gJ1NpdGVtYXAnOwokbGFuZ1sndGl0bGVfc2Vvc2V0dGluZ3MnXSA9ICdTRU8tRWluc3RlbGx1bmdlbic7CgokbGFuZ1sndGl0bGVfbWV0YV90eXBlJ10gPSAnTWV0YS1UYWctR2VuZXJhdG9yJzsKJGxhbmdbJ21ldGFfY3JlYXRlX3N0YW5kYXJkJ10gPSAnU3RhbmRhcmQtTWV0YXRhZ3MgZXJ6ZXVnZW4nOwokbGFuZ1snbWV0YV9jcmVhdGVfZHVibGluY29yZSddID0gJ0R1YmxpbiBDb3JlLU1ldGF0YWdzIGVyemV1Z2VuJzsKJGxhbmdbJ21ldGFfY3JlYXRlX29wZW5ncmFwaCddID0gJ09wZW5HcmFwaC1NZXRhdGFncyBlcnpldWdlbiAoei5CLiBmJnV1bWw7ciBkZW4gRmFjZWJvb2stR2VmJmF1bWw7bGx0LW1pci1CdXR0b24pJzsKCiRsYW5nWyd0aXRsZV9tZXRhX2RlZmF1bHRzJ10gPSAnTUVUQS1UYWctV2VydGUnOwokbGFuZ1snbWV0YV9wdWJsaXNoZXInXSA9ICdIZXJhdXNnZWJlciBkZXIgU2VpdGUnOwokbGFuZ1snbWV0YV9wdWJsaXNoZXJfaGVscCddID0gJygmVXVtbDtibGljaGVyd2Vpc2UgaGFuZGVsdCBlcyBzaWNoIHVtIGRpZSBGaXJtYSBmJnV1bWw7ciBkaWUgU2llIGRpZSBTZWl0ZSBlcnN0ZWxsZW4pJzsKJGxhbmdbJ21ldGFfY29udHJpYnV0b3InXSA9ICdNaXR3aXJrZW5kZSBkZXIgU2VpdGUnOwokbGFuZ1snbWV0YV9jb250cmlidXRvcl9oZWxwJ10gPSAnKCZVdW1sO2JsaWNoZXJ3ZWlzZSBzaW5kIFNpZSBkYXMsIG9kZXIgYmVsaWViaWdlIGFuZGVyZSBJbmhhbHRzLUF1dG9yZW4pJzsKJGxhbmdbJ21ldGFfY29weXJpZ2h0J10gPSAnQ29weXJpZ2h0IGRlciBTZWl0ZSc7CiRsYW5nWydtZXRhX2NvcHlyaWdodF9oZWxwJ10gPSAnKElyZ2VuZHdhcyBpbiBkZXIgRm9ybSAiKEMpIElocmUgRmlybWEuIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuIiknOwokbGFuZ1snbWV0YV9sb2NhdGlvbl9kZXNjcmlwdGlvbiddID0gJ1dlbm4gSWhyZSBXZWJzZWl0ZSBlaW5lIEVudGl0JmF1bWw7dCBiZWhhbmRlbHQgZGllIGF1ZiBlaW5lciBLYXJ0ZSBsb2thbGlzaWVydCB3ZXJkZW4ga2Fubiwgc29sbHRlbiBTaWUgb3B0aW9uYWwgZGllIGZvbGdlbmRlbiBXZXJ0ZSBlaW50cmFnZW46JzsKJGxhbmdbJ21ldGFfbG9jYXRpb24nXSA9ICdPcnQgSWhyZXIgRW50aXQmYXVtbDt0JzsKJGxhbmdbJ21ldGFfbG9jYXRpb25faGVscCddID0gJyhOb3JtYWxlcndlaXNlIGlzdCBkaWVzIGRlciBOYW1lIGRlcyBPcnRzLCBhbiBkZW0gSWhyZSBGaXJtYSBzaXR6dCknOwokbGFuZ1snbWV0YV9yZWdpb24nXSA9ICdSZWdpb24gSWhyZXIgRW50aXQmYXVtbDt0JzsKJGxhbmdbJ21ldGFfcmVnaW9uX2hlbHAnXSA9ICcoR2ViZW4gU2llIHouQi4gIkRFLUJXIiBlaW4gZiZ1dW1sO3IgZWluZSBFbnRpdCZhdW1sO3QsIGRpZSBpbiBCYWRlbi1XJnV1bWw7cnR0ZW1iZXJnLCBEZXV0c2NobGFuZCwgc2l0enQuKSc7CiRsYW5nWydtZXRhX2xhdGl0dWRlJ10gPSAnQnJlaXRlbmdyYWQgSWhyZXIgRW50aXQmYXVtbDt0JzsKJGxhbmdbJ21ldGFfbGF0aXR1ZGVfaGVscCddID0gJyhHZWJlbiBTaWUgZGllIERlemltYWxrb29yZGluYXRlIGRlcyBCcmVpdGVuZ3JhZHMgSWhyZXIgRW50aXQmYXVtbDt0IGVpbiknOwokbGFuZ1snbWV0YV9sb25naXR1ZGUnXSA9ICdMJmF1bWw7bmdlbmdyYWQgSWhyZXIgRW50aXQmYXVtbDt0JzsKJGxhbmdbJ21ldGFfbG9uZ2l0dWRlX2hlbHAnXSA9ICcoR2ViZW4gU2llIGRpZSBEZXppbWFsa29vcmRpbmF0ZSBkZXMgTCZhdW1sO25nZW5ncmFkcyBJaHJlciBFbnRpdCZhdW1sO3QgZWluKSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9kZXNjcmlwdGlvbiddID0gJ1dlbm4gU2llIE9wZW5HcmFwaC1NZXRhdGFncyBlcnpldWdlbiBsYXNzZW4sIGYmdXVtbDtsbGVuIFNpZSBiaXR0ZSBkaWUgZm9sZ2VuZGVuIFdlcnRlIGF1czonOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfdGl0bGUnXSA9ICdPcGVuR3JhcGgtU2VpdGVudGl0ZWwnOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfdGl0bGVfaGVscCddID0gJyhTaWUgayZvdW1sO25uZW4gaGllciBkYXMge3RpdGxlfS1UYWcgdmVyd2VuZGVuLCB1bSBkZW4gdGF0cyZhdW1sO2NobGljaGVuIFNlaXRlbnRpdGVsIGFuemVpZ2VuIHp1IGxhc3NlbiknOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfdHlwZSddID0gJ1N0YW5kYXJkIE9wZW5HcmFwaC1TZWl0ZW50eXAnOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfdHlwZV9oZWxwJ10gPSAnKERlciBTdGFuZGFyZC1TZWl0ZW50eXAgZiZ1dW1sO3IgT3BlbkdyYXBoLCBrYW5uIGYmdXVtbDtyIGplZGUgU2VpdGUgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbi4gPGEgaHJlZj0iaHR0cDovL2RldmVsb3BlcnMuZmFjZWJvb2suY29tL2RvY3Mvb3BlbmdyYXBoI3R5cGVzIiB0YWdldD0iX2JsYW5rIj5IaWVyPC9hPiBmaW5kZW4gU2llIGVpbmUgTGlzdGUgZXJsYXVidGVyIFdlcnRlKSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9zaXRlbmFtZSddID0gJ09wZW5HcmFwaC1TZWl0ZW5uYW1lJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lX2hlbHAnXSA9ICcoRWluZSBrdXJ6ZSBWZXJzaW9uIElocmVzIFNlaXRlbm5hbWVucywgei5CLiAiSWhyZSBGaXJtYSIsIG1heC4gMjUgWmVpY2hlbiknOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnXSA9ICdTdGFuZGFyZC1PcGVuR3JhcGgtQmlsZCc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9pbWFnZV9oZWxwJ10gPSAnKFcmYXVtbDtobGVuIFNpZSBlaW4gQmlsZCBhdXMgSWhyZW0gL3VwbG9hZHMvaW1hZ2VzIFZlcnplaWNobmlzIGF1cyB1bSBlcyBhbHMgU3RhbmRhcmQgZiZ1dW1sO3IgT3BlbkdyYXBoLVNlaXRlbiB6dSB2ZXJ3ZW5kZW4pJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX2FkbWlucyddID0gJ0ZhY2Vib29rLVNlaXRlbmFkbWluaXN0cmF0b3Jlbic7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9hZG1pbnNfaGVscCddID0gJyhFaW5lIGtvbW1hZ2V0cmVubnRlIExpc3RlIHZvbiBGYWNlYm9vay1Lb250by1JRHMgZGllIGluIGRlciBMYWdlIHNpbmQsIGRpZSBTdHJlYW1zIElocmVyIFNlaXRlbiB6dSBiZWFyYmVpdGVuKSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbiddID0gJ0ZhY2Vib29rLUFud2VuZHVuZyc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbl9oZWxwJ10gPSAnKERpZSBJRCBlaW5lciBGYWNlYm9vay1BbndlbmR1bmcsIGRpZSBpbiBkZXIgTGFnZSBpc3QsIGRpZSBTdHJlYW1zIElocmVyIFNlaXRlbiB6dSBiZWFyYmVpdGVuKSc7CgokbGFuZ1sndGl0bGVfdGl0bGVfZGVzY3JpcHRpb24nXSA9ICdTZWl0ZW50aXRlbCwgQmVzY2hyZWlidW5nIHVuZCBLZXl3b3Jkcyc7CiRsYW5nWyd0aXRsZV90aXRsZSddID0gJ1NlaXRlbnRpdGVsJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX2hlbHAnXSA9ICcoRGVyIFNlaXRlbnRpdGVsIHdpZSBlciBpbiBkZXIgQnJvd3Nlci1UaXRlbHplaWxlIGVyc2NoZWluZW4gc29sbC4gU2llIGsmb3VtbDtubmVuIGRpZSBUYWdzIHt0aXRsZX0sIHtwYWdldGl0bGV9IHVuZCB7c2VvX2tleXdvcmRzfSBiZW51dHplbiknOwokbGFuZ1sndGl0bGVfbWV0YV90aXRsZSddID0gJ1NlaXRlbnRpdGVsIGYmdXVtbDtyIGRpZSBNZXRhLURhdGVuJzsKJGxhbmdbJ3RpdGxlX21ldGFfaGVscCddID0gJyhEZXIgU2VpdGVudGl0ZWwsIHdpZSBlciBpbiBkZW4gTWV0YS1UaXRlbC1UYWdzIGVyc2NoZWluZW4gc29sbC4gU2llIGsmb3VtbDtubmVuIGRpZSBUYWdzIHt0aXRsZX0sIHtwYWdldGl0bGV9IHVuZCB7c2VvX2tleXdvcmRzfSBiZW51dHplbiknOwokbGFuZ1snZGVzY3JpcHRpb25fYmxvY2tfdGl0bGUnXSA9ICdOYW1lIGRlcyBTZWl0ZW5iZXNjaHJlaWJ1bmdzLUNvbnRlbnRibG9ja3MnOwokbGFuZ1snZGVzY3JpcHRpb25fYmxvY2tfaGVscCddID0gJyhEZXIgTmFtZSBJaHJlcyBTZWl0ZW5iZXNjaHJlaWJ1bmdzLUNvbnRlbnRibG9ja3MuIFVudGVuIGZpbmRlbiBTaWUgZWluZSBFcmtsJmF1bWw7cnVuZyBoaWVyenUpJzsKJGxhbmdbJ2RlZmF1bHRfa2V5d29yZHNfdGl0bGUnXSA9ICdLZXl3b3JkcywgZGllIGF1ZiBqZWRlciBTZWl0ZSBlcnNjaGVpbmVuIHNvbGxlbic7CiRsYW5nWydkZWZhdWx0X2tleXdvcmRzX2hlbHAnXSA9ICcoRWluZSBMZWVyemVpY2hlbi1nZXRyZW5udGUgTGlzdGUgdm9uIEtleXdvcmRzIGRpZSBTaWUgYXVmIGplZGVyIFNlaXRlIGVpbmJpbmRlbiBsYXNzZW4gbSZvdW1sO2NodGVuKSc7CgokbGFuZ1sndGl0bGVfc2l0ZW1hcF9kZXNjcmlwdGlvbiddID0gJ0dvb2dsZS1TaXRlbWFwIHVuZCBDcmF3bGVyLUVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snY3JlYXRlX3NpdGVtYXBfdGl0bGUnXSA9ICdFaW5lIEdvb2dsZS1TaXRlbWFwIGltIFhNTC1Gb3JtYXQgZXJ6ZXVnZW4qJzsKJGxhbmdbJ3B1c2hfc2l0ZW1hcF90aXRsZSddID0gJ0RpZSBTaXRlbWFwIGF1dG9tYXRpc2NoIGJlaSAmYXVtbDtuZGVydW5nZW4gYW0gU2VpdGVuaW5oYWx0IHp1IEdvb2dsZSBzZW5kZW4nOwokbGFuZ1snY3JlYXRlX3JvYm90c190aXRsZSddID0gJ0VpbmUgcm9ib3RzLnR4dCAtIERhdGVpIGVyemV1Z2VuKic7CiRsYW5nWyd2ZXJpZmljYXRpb25fdGl0bGUnXSA9ICdCZXN0JmF1bWw7dGlndW5nc2NvZGUgZiZ1dW1sO3IgZGllIFNlaXRlbnZlcmlmaXppZXJ1bmcnOwokbGFuZ1sndmVyaWZpY2F0aW9uX2hlbHAnXSA9ICcoRGVyIEJlc3QmYXVtbDt0aWd1bmdzY29kZSwgZGVuIFNpZSB2b24gZGVuIEdvb2dsZSBXZWJtYXN0ZXIgVG9vbHMgZXJoYWx0ZW4uIE51ciBkZW4gSGFzaCwgbmljaHQgZGFzIGtvbXBsZXR0ZSBNZXRhLVRhZyknOwoKJGxhbmdbJ3RpdGxlX2FsZXJ0c191cmdlbnQnXSA9ICdNdXNzIHNvZm9ydCBiZWhvYmVuIHdlcmRlbic7CiRsYW5nWyd0aXRsZV9hbGVydHNfaW1wb3J0YW50J10gPSB1dGY4X2VuY29kZSgnU29sbHRlIHNjaG5lbGxzdG32Z2xpY2ggYmVob2JlbiB3ZXJkZW4nKTsKJGxhbmdbJ3RpdGxlX2FsZXJ0c19ub3RpY2VzJ10gPSB1dGY4X2VuY29kZSgnS2FubiB1bnRlciBVbXN05G5kZW4gYmVob2JlbiB3ZXJkZW4nKTsKJGxhbmdbJ25vdGhpbmdfdG9fYmVfZml4ZWQnXSA9IHV0ZjhfZW5jb2RlKCdJbiBkaWVzZXIgS2F0ZWdvcmllIG38c3NlbiBTaWUga2VpbmUgQWt0aW9uZW4gdm9ybmVobWVuJyk7CgokbGFuZ1snc2F2ZSddID0gJ0VpbnN0ZWxsdW5nZW4gc3BlaWNoZXJuJzsKJGxhbmdbJ25vbmUnXSA9ICcobmljaHQgYXVzZ2V3JmF1bWw7aGx0KSc7CiRsYW5nWydzZXR0aW5nc191cGRhdGVkJ10gPSAnRGllIFNFTy1FaW5zdGVsbHVuZ2VuIHd1cmRlbiBlcmZvbGdyZWljaCBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ3Byb2JsZW1fYWxlcnQnXSA9ICdoYXQgZXJoZWJsaWNoZSBQcm9ibGVtZSBtaXQgSWhyZXIgU0VPIGZlc3RnZXN0ZWxsdC4gJXMnOwokbGFuZ1sncHJvYmxlbV9saW5rX3RpdGxlJ10gPSAnWnVtIEJlaGViZW4gaGllciBrbGlja2VuJzsKCiRsYW5nWydoZWxwX2Rlc2NyaXB0aW9uX2NvbnRlbnQnXSA9ICc8Yj5BbmxlaXR1bmcgZiZ1dW1sO3IgZGVuICJTZWl0ZW5iZXNjaHJlaWJ1bmdzLUNvbnRlbnRibG9jayI6PC9iPjxiciAvPlVtIGRpcmVrdCBiZWltIEJlYXJiZWl0ZW4gZWluZXIgU2VpdGUgZWluZSBTZWl0ZW5iZXNjaHJlaWJ1bmcgZWluZ2ViZW4genUgayZvdW1sO25uZW4gbSZ1dW1sO3NzZW4gU2llIGRlbiBmb2xnZW5kZW4gQ29kZSBpcmdlbmR3byBpbiBhbGwgSWhyZSBUZW1wbGF0ZXMgZWluYmluZGVuOjxiciAvPjxiciAvPjxwcmU+e2NhcHR1cmV9e2NvbnRlbnQgYmxvY2s9Ik1ldGEtQmVzY2hyZWlidW5nIiBvbmVsaW5lPSJ0cnVlIn17L2NhcHR1cmV9PC9wcmU+PGJyIC8+U2V0emVuIFNpZSBkYW5uIGRlbiBXZXJ0IGYmdXVtbDtyIGRlbiAiTmFtZW4gZGVzIFNlaXRlbmJlc2NocmVpYnVuZ3MtQ29udGVudGJsb2NrcyIgYXVmICJNZXRhLUJlc2NocmVpYnVuZyIuIEFsdGVybmF0aXYgayZvdW1sO25uZW4gU2llIGF1Y2ggZGllIE9wdGlvbiAiQXV0b21hdGlzY2hlIFNlaXRlbmJlc2NocmVpYnVuZyBlcnpldWdlbiIgYWt0aXZpZXJlbi4gRGllc2UgT3B0aW9uIGxlaXN0ZXQgendhciBuaWNodCBzbyB2aWVsLCBpc3QgYWJlciBiZXNzZXIgYWxzIGdhciBuaWNodHMuJzsKJGxhbmdbJ2hlbHBfc2l0ZW1hcF9yb2JvdHMnXSA9ICcqKSBVbSBkaWUgYXV0b21hdGlzY2hlIEVyemV1Z3VuZyBlaW5lciBTaXRlbWFwLSB1bmQgUm9ib3RzLURhdGVpIHp1IHZlcndlbmRlbiBtdSZzemxpZzsgZGFzIFN0YW1tdmVyemVpY2huaXMgSWhyZXIgQ01TTVMtSW5zdGFsbGF0aW9uIGYmdXVtbDtyIGRlbiBXZWJzZXJ2ZXIgYmVzY2hyZWliYmFyIHNlaW4uIEZhbGxzIFNpZSBiZXJlaXRzIGVpbmUgc2l0ZW1hcC54bWwgdW5kL29kZXIgcm9ib3RzLnR4dC1EYXRlaSBoYWJlbiBtJnV1bWw7c3NlbiBiZWlkZSBmJnV1bWw7ciBkZW4gV2Vic2VydmVyIGJlc2NocmVpYmJhciBzZWluLic7CgokbGFuZ1sndXNlX3N0YW5kYXJkX29yX2R1YmxpbmNvcmVfbWV0YSddID0gJ1ZlcndlbmRlbiBTaWUgbWluZGVzdGVucyBlbnR3ZWRlciBkaWUgU3RhbmRhcmQtTWV0YS1UYWdzIG9kZXIgRHVibGluIENvcmUgTWV0YS1UYWdzJzsKJGxhbmdbJ3VzZV9zdGFuZGFyZF9tZXRhJ10gPSAnU2llIHNvbGx0ZW4gZGVuIFN0YW5kYXJkLU1ldGEtR2VuZXJhdG9yIGltbWVyIGFrdGl2aWVyZW4nOwokbGFuZ1snbWV0YV9kZXNjcmlwdGlvbl9taXNzaW5nJ10gPSAnRGllIFNlaXRlIDxpPiVzPC9pPiBiZXNpdHp0IGtlaW5lIE1ldGEtQmVzY2hyZWlidW5nJzsKJGxhbmdbJ21ldGFfZGVzY3JpcHRpb25fc2hvcnQnXSA9ICdEaWUgTWV0YS1CZXNjaHJlaWJ1bmcgZGVyIFNlaXRlIDxpPiVzPC9pPiBpc3Qgc2VociBrdXJ6ICggPCA3NSBaZWljaGVuKSc7CiRsYW5nWydkdXBsaWNhdGVfdGl0bGVzJ10gPSAnRGllIFNlaXRlbiA8aT4lczwvaT4gdW5kIDxpPiVzPC9pPiBoYWJlbiBkZW4gZ2xlaWNoZW4gVGl0ZWwnOwokbGFuZ1snZHVwbGljYXRlX2Rlc2NyaXB0aW9ucyddID0gJ0RpZSBTZWl0ZW4gPGk+JXM8L2k+IHVuZCA8aT4lczwvaT4gaGFiZW4gZGllIGdsZWljaGUgTWV0YS1CZXNjaHJlaWJ1bmcnOwokbGFuZ1sncHJvdmlkZV9hbl9hdXRob3InXSA9ICdTaWUgc29sbHRlbiBkZW4gTmFtZW4gZGVzIFNlaXRlbmhlcmF1c2dlYmVycyBlaW50cmFnZW4nOwokbGFuZ1snc2V0X3VwX2Rlc2NyaXB0aW9uX2Jsb2NrJ10gPSAnU2V0emVuIFNpZSBlaW5lbiBDb250ZW50LUJsb2NrIGYmdXVtbDtyIE1ldGEtQmVzY2hyZWlidW5nZW4gYXVmJzsKJGxhbmdbJ2FjdGl2YXRlX3ByZXR0eV91cmxzJ10gPSAnQWt0aXZpZXJlbiBTaWUgZGFzICJQcmV0dHkgVVJMcyItRmVhdHVyZSB2b24gQ01TTVMnOwokbGFuZ1sncHJldHR5X3VybHNfaGVscCddID0gJzxhIGhyZWY9Imh0dHA6Ly93aWtpLmNtc21hZGVzaW1wbGUub3JnL2luZGV4LnBocC9Vc2VyX0hhbmRib29rL0luc3RhbGxhdGlvbi9PcHRpb25hbF9TZXR0aW5ncyIgdGFyZ2V0PSJfYmxhbmsiPkhpbGZlIGVyaGFsdGVuPC9hPic7CiRsYW5nWydjcmVhdGVfYV9zaXRlbWFwJ10gPSAnTGFzc2VuIFNpZSBhdXRvbWF0aXNjaCBlaW5lIEdvb2dsZS1YTUwtU2l0ZW1hcCBlcnN0ZWxsZW4nOwokbGFuZ1snYXV0b21hdGljYWxseV91cGxvYWRfc2l0ZW1hcCddID0gJ0xhc3NlbiBTaWUgSWhyZSBYTUwtU2l0ZW1hcCBhdXRvbWF0aXNjaCB6dSBHb29nbGUgaG9jaGxhZGVuJzsKJGxhbmdbJ2NyZWF0ZV9yb2JvdHMnXSA9ICdMYXNzZW4gU2llIGF1dG9tYXRpc2NoIGVpbmUgcm9ib3RzLnR4dC1EYXRlaSBlcnN0ZWxsZW4nOwokbGFuZ1snc2l0ZW1hcF9ub3Rfd3JpdGVhYmxlJ10gPSAnSWhyZSBzaXRlbWFwLnhtbCAtIERhdGVpIGlzdCBuaWNodCBiZXNjaHJlaWJiYXInOwokbGFuZ1snY2htb2Rfc2l0ZW1hcCddID0gJ1NldHplbiBTaWUgSWhyZSAvc2l0ZW1hcC54bWwgLSBEYXRlaSBhdWYgYmVzY2hyZWliYmFyIGYmdXVtbDtyIGRlbiBXZWJzZXJ2ZXInOwokbGFuZ1sncm9ib3RzX25vdF93cml0ZWFibGUnXSA9ICdJaHJlIHJvYm90cy50eHQgLSBEYXRlaSBpc3QgbmljaHQgYmVzY2hyZWliYmFyJzsKJGxhbmdbJ25vX29wZW5ncmFwaF9hZG1pbnMnXSA9ICdTaWUgaGFiZW4ga2VpbmUgT3BlbkdyYXBoLUFkbWluaXN0cmF0aW9uc2Fud2VuZHVuZyBiencuIEFkbWluaXN0cmF0b3Jlbi1MaXN0ZSBmZXN0Z2VsZWd0Lic7CiRsYW5nWydub19vcGVuZ3JhcGhfdHlwZSddID0gJ1NpZSBoYWJlbiBkZW4gU3RhbmRhcmQtT3BlbkdyYXBoLVNlaXRlbnR5cCBuaWNodCBmZXN0Z2VsZWd0Lic7CiRsYW5nWydub19vcGVuZ3JhcGhfc2l0ZW5hbWUnXSA9ICdTaWUgaGFiZW4gZGVuIE9wZW5HcmFwaC1TZWl0ZW5uYW1lbiBuaWNodCBmZXN0Z2VsZWd0JzsKJGxhbmdbJ25vX29wZW5ncmFwaF9pbWFnZSddID0gJ1NpZSBoYWJlbiBrZWluIE9wZW5HcmFwaC1TdGFuZGFyZGJpbGQgZmVzdGdlbGVndCc7CiRsYW5nWydjaG1vZF9yb2JvdHMnXSA9ICdTZXR6ZW4gU2llIElocmUgL3JvYm90cy50eHQgLSBEYXRlaSBhdWYgYmVzY2hyZWliYmFyIGYmdXVtbDtyIGRlbiBXZWJzZXJ2ZXInOwokbGFuZ1snZWRpdF9wYWdlJ10gPSAnJXMgYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X3BhZ2VfdG9fZml4J10gPSAnS2xpY2tlbiBTaWUgaGllciB6dW0gQmVhcmJlaXRlbiBkZXIgU2VpdGUgdW5kIEJlaGViZW4gZGVzIFByb2JsZW1zJzsKJGxhbmdbJ3Zpc2l0X3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuJzsKCiRsYW5nWydwYWdlX2lkJ10gPSAnSUQnOwokbGFuZ1sncGFnZV9uYW1lJ10gPSAnU2VpdGVubmFtZSc7CiRsYW5nWydwcmlvcml0eSddID0gJ1NpdGVtYXAtUHJpb3JpdCZhdW1sO3QnOwokbGFuZ1snb2dfdHlwZSddID0gJ09wZW5HcmFwaC1UeXAnOwokbGFuZ1sna2V5d29yZHMnXSA9ICcjIEtleXdvcmRzJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVzY2hyZWlidW5nJzsKJGxhbmdbJ2luZGV4J10gPSAnSW5kaXppZXJiYXInOwoKJGxhbmdbJ2NsaWNrX3RvX2FkZF9kZXNjcmlwdGlvbiddID0gJ0hpZXIga2xpY2tlbiB1bSBlaW5lIFNlaXRlbmJlc2NocmVpYnVuZyBoaW56dXp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0b2dnbGUnXSA9ICd1bXNjaGFsdGVuJzsKJGxhbmdbJ3Jlc2V0J10gPSAnenVyJnV1bWw7Y2tzZXR6ZW4nOwokbGFuZ1sncmVzZXRfdG9fZGVmYXVsdCddID0gJ0RpZXNlbiBXZXJ0IGF1ZiBkZW4gU3RhbmRhcmQgenVyJnV1bWw7Y2tzZXR6ZW4nOwokbGFuZ1snZWRpdF92YWx1ZSddID0gJ0RpZXNlbiBXZXJ0IGJlYXJiZWl0ZW4nOwoKJGxhbmdbJ2hlbHBfb3BlbmdyYXBoJ10gPSAnPGEgaHJlZj0iaHR0cDovL2RldmVsb3BlcnMuZmFjZWJvb2suY29tL2RvY3Mvb3BlbmdyYXBoI3R5cGVzIiB0YWdldD0iX2JsYW5rIj5IaWVyPC9hPiBmaW5kZW4gU2llIGVpbmUgTGlzdGUgZXJsYXVidGVyIFdlcnRlJzsKJGxhbmdbJ2VudGVyX25ld19vZ3R5cGUnXSA9ICdHZWJlbiBTaWUgZGVuIG5ldWVuIFdlcnQgZiZ1dW1sO3IgZGVuIE9wZW5HcmFwaC1UeXAgZGllc2VyIFNlaXRlIGVpbic7CiRsYW5nWydoZWxwX25ld19vZ3R5cGUnXSA9ICdMYXNzZW4gU2llIGRhcyBGZWxkIGxlZXIsIHVtIHp1ciBTdGFuZGFyZC1FaW5zdGVsbHVuZyB6dXImdXVtbDtja3p1a2VocmVuJzsKCiRsYW5nWydlbnRlcl9uZXdfa2V5d29yZHMnXSA9ICdHZWJlbiBTaWUgZGllIG5ldWVuIEtleXdvcmRzIGYmdXVtbDtyIGRpZXNlIFNlaXRlIGVpbic7CiRsYW5nWydoZWxwX25ld19rZXl3b3JkcyddID0gJ0xlZXJ6ZWljaGVuLWdldHJlbm50ZSBMaXN0ZSB2b24gS2V5d29yZHMuIExhc3NlbiBTaWUgZGFzIEZlbGQgbGVlciwgdW0genVyIFN0YW5kYXJkLUVpbnN0ZWxsdW5nIHp1ciZ1dW1sO2NrenVrZWhyZW4nOwoKJGxhbmdbJ2dyb3VwdGl0bGVfb3BlbmdyYXBoJ10gPSAnV2lyIGhhYmVuICVzIE9wZW5HcmFwaC1iZXpvZ2VuZSBQcm9ibGVtZSBmZXN0Z2VzdGVsbHQnOwokbGFuZ1snZ3JvdXB0aXRsZV9zeXN0ZW0nXSA9ICdXaXIgaGFiZW4gJXMgUHJvYmxlbWUgbWl0IElocmVyIFN5c3RlbWtvbmZpZ3VyYXRpb24gZmVzdGdlc3RlbGx0JzsKJGxhbmdbJ2dyb3VwdGl0bGVfcGFnZXMnXSA9ICdXaXIgaGFiZW4gJXMgUHJvYmxlbWUgYXVmIElocmVuIEluaGFsdHNzZWl0ZW4gZmVzdGdlc3RlbGx0JzsKJGxhbmdbJ2dyb3VwdGl0bGVfc2V0dGluZ3MnXSA9ICdXaXIgaGFiZW4gJXMgUHJvYmxlbWUgbWl0IElocmVuIFNFTy1FaW5zdGVsbHVuZ2VuIGZlc3RnZXN0ZWxsdCc7CiRsYW5nWydncm91cHRpdGxlX2Rlc2NyaXB0aW9ucyddID0gJ1dpciBoYWJlbiAlcyBQcm9ibGVtZSBtaXQgSWhyZW4gU2VpdGVuYmVzY2hyZWlidW5nZW4gZmVzdGdlc3RlbGx0JzsKJGxhbmdbJ2dyb3VwdGl0bGVfdGl0bGVzJ10gPSAnV2lyIGhhYmVuICVzIFByb2JsZW1lIG1pdCBJaHJlbiBTZWl0ZW50aXRlbG4gZmVzdGdlc3RlbGx0JzsKCiRsYW5nWyd2aWV3X2FsbCddID0gJ0FsbGUgYW56ZWlnZW4nOwoKJGxhbmdbJ3RpdGxlX21ldGFzZXR0aW5ncyddID0gJ1NlaXRlbnRpdGVsIHVuZCBNZXRhLUluZm9ybWF0aW9uZW4nOwokbGFuZ1sndGl0bGVfc2l0ZW1hcHNldHRpbmdzJ10gPSAnU2l0ZW1hcCAmIENyYXdsZXItRWluc3RlbGx1bmdlbic7CiRsYW5nWyd0aXRsZV9rZXl3b3Jkc2V0dGluZ3MnXSA9ICdLZXl3b3JkLUdlbmVyYXRvcic7CgokbGFuZ1snZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZSddID0gJ0VpbmUgYXV0b21hdGlzY2hlIFNlaXRlbmJlc2NocmVpYnVuZyBlcnpldWdlbiB3byBrZWluZSB2b3JnZWdlYmVuIGlzdCc7CiRsYW5nWydkZXNjcmlwdGlvbl9hdXRvX3RpdGxlJ10gPSAnVGV4dCBmJnV1bWw7ciBhdXRvbWF0aXNjaCBnZW5lcmllcnRlIEJlc2NocmVpYnVuZ2VuJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uX2F1dG9faGVscCddID0gJyhTaWUgPGI+bSZ1dW1sO3NzZW48L2I+IGRhcyB7a2V5d29yZHN9LVRhZyBoaWVyIHZlcndlbmRlbiwgb3B0aW9uYWwgaXN0IGRhcyB7dGl0bGV9LVRhZyknOwoKJGxhbmdbJ3NldF91cF9hdXRvX2Rlc2NyaXB0aW9uJ10gPSAnU2V0emVuIFNpZSBkZW4gR2VuZXJhdG9yIGb8ciBhdXRvbWF0aXNjaGUgQmVzY2hyZWlidW5nZW4gYXVmIHVuZCBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhJnN6bGlnOyBkZXIgVGV4dCBkYXMgVGFnIHtrZXl3b3Jkc30gZW50aCZhdW1sO2x0JzsKJGxhbmdbJ2F1dG9fZ2VuZXJhdGVkJ10gPSAnQXV0b21hdGlzY2ggZXJ6ZXVndCc7CiRsYW5nWydhbmQnXSA9ICd1bmQnOwoKJGxhbmdbJ3RpdGxlX2tleXdvcmRfd2VpZ2h0J10gPSAnS2V5d29yZC1HZXdpY2h0c2VpbnN0ZWxsdW5nZW4nOwokbGFuZ1sna2V5d29yZF9taW5sZW5ndGhfdGl0bGUnXSA9ICdNaW5kZXN0bCZhdW1sO25nZSBmJnV1bWw7ciBLZXl3b3Jkcyc7CiRsYW5nWydrZXl3b3JkX21pbmxlbmd0aF9oZWxwJ10gPSAnKERpZSBNaW5kZXN0bCZhdW1sO25nZSBmJnV1bWw7ciBlaW4gV29ydCwgZGFtaXQgZXMgYWxzIEtleXdvcmQgaW4gRnJhZ2Uga29tbXQpJzsKJGxhbmdbJ2tleXdvcmRfdGl0bGVfd2VpZ2h0X3RpdGxlJ10gPSAnR2V3aWNodCBkZXIgV29ydGUgaW0gU2VpdGVudGl0ZWwnOwokbGFuZ1sna2V5d29yZF90aXRsZV93ZWlnaHRfaGVscCddID0gJyhEYXMgR2V3aWNodCBkZXIgV29ydGUgaW0gU2VpdGVudGl0ZWwuIEplIGgmb3VtbDtoZXIgZGFzIEdld2ljaHQgZWluZXMgV29ydGVzLCBkZXN0byBoJnVtbDtoZXIgZGllIFdhaHJzY2hlaW5saWNoa2VpdCwgZGEmc3psaWc7IGVzIHp1bSBLZXl3b3JkIHdpcmQpJzsKJGxhbmdbJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0X3RpdGxlJ10gPSAnR2V3aWNodCBkZXIgV29ydGUgaW4gZGVyIFNlaXRlbmJlc2NocmVpYnVuZyc7CiRsYW5nWydrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodF9oZWxwJ10gPSAnKERhcyBHZXdpY2h0IGRlciBXb3J0ZSBpbiBkZXIgU2VpdGVuYmVzY2hyZWlidW5nLiBKZSBoJm91bWw7aGVyIGRhcyBHZXdpY2h0IGVpbmVzIFdvcnRlcywgZGVzdG8gaCZ1bWw7aGVyIGRpZSBXYWhyc2NoZWlubGljaGtlaXQsIGRhJnN6bGlnOyBlcyB6dW0gS2V5d29yZCB3aXJkKSc7CiRsYW5nWydrZXl3b3JkX2hlYWRsaW5lX3dlaWdodF90aXRsZSddID0gJ0dld2ljaHQgZGVyIFdvcnRlIGluIEluaGFsdHMtJlV1bWw7YmVyc2NocmlmdGVuJzsKJGxhbmdbJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0X2hlbHAnXSA9ICcoRGFzIEdld2ljaHQgZGVyIFdvcnRlIHp3aXNjaGVuIGRlbiBUYWdzICZsdDtoMSZndDsgYmlzICZsdDtoNiZndDsuIEplIGgmb3VtbDtoZXIgZGFzIEdld2ljaHQgZWluZXMgV29ydGVzLCBkZXN0byBoJnVtbDtoZXIgZGllIFdhaHJzY2hlaW5saWNoa2VpdCwgZGEmc3psaWc7IGVzIHp1bSBLZXl3b3JkIHdpcmQpJzsKJGxhbmdbJ2tleXdvcmRfY29udGVudF93ZWlnaHRfdGl0bGUnXSA9ICdHZXdpY2h0IHZvbiBXb3J0ZW4gaW0gcmVpbmVuIEluaGFsdCc7CiRsYW5nWydrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0X2hlbHAnXSA9ICcoRGFzIEdld2ljaHQgZGVyIFdvcnRlIGlubmVyaGFsYiBkZXMgcmVpbmVuIEluaGFsdHMuIEplIGgmb3VtbDtoZXIgZGFzIEdld2ljaHQgZWluZXMgV29ydGVzLCBkZXN0byBoJnVtbDtoZXIgZGllIFdhaHJzY2hlaW5saWNoa2VpdCwgZGEmc3psaWc7IGVzIHp1bSBLZXl3b3JkIHdpcmQpJzsKCiRsYW5nWydrZXl3b3JkX21pbmltdW1fd2VpZ2h0X3RpdGxlJ10gPSAnTWluZGVzdC1HZXNhbXRnZXdpY2h0IGYmdXVtbDtyIGVpbiBLZXl3b3JkJzsKJGxhbmdbJ2tleXdvcmRfbWluaW11bV93ZWlnaHRfaGVscCddID0gJyhEYXMgTWluZGVzdC1HZXNhbXRnZXdpY2h0IGVpbmVzIFdvcnRlcywgZGFtaXQgZXMgenVtIEtleXdvcmQgd2lyZC4gRGllc2VyIFdlcnQgc29sbHRlIGdyJm91bWw7JnN6bGlnO2VyIGFscyBkZXIgaCZvdW1sO2Noc3RlIFdlcnQgdm9uIG9iZW4gc2Vpbi4gSmUga2xlaW5lciBkaWVzZSBaYWhsLCBkZXN0byBtZWhyIEtleXdvcmRzIGVyaGFsdGVuIFNpZSknOwoKJGxhbmdbJ2hlbHBfa2V5d29yZF9nZW5lcmF0b3InXSA9ICdEaWUgRWluc3RlbGx1bmdlbiBhdWYgZGllc2VyIFNlaXRlIGJlZWluZmx1c3NlbiBrZWluZSBLZXl3b3JkcywgZGllIFNpZSBtYW51ZWxsIHZvcmdlYmVuLiBFeHBlcmltZW50aWVyZW4gU2llIG1pdCB2ZXJzY2hpZWRlbmVuIFdlcnRlbiwgdW0gZGFzIE9wdGltdW0gZiZ1dW1sO3IgSWhyZSBTZWl0ZSB6dSBlcnJlaWNoZW4uJzsKCiRsYW5nWyd0aXRsZV9rZXl3b3JkX2V4Y2x1ZGUnXSA9ICdLZXl3b3JkLUF1c3NjaGx1JnN6bGlnO2xpc3RlJzsKJGxhbmdbJ2tleXdvcmRfZXhjbHVkZV90aXRsZSddID0gJ1dvcnRlLCBkaWUgbmllIGFscyBLZXl3b3JkIGluIEZyYWdlIGtvbW1lbic7CiRsYW5nWydrZXl3b3JkX2V4Y2x1ZGVfaGVscCddID0gJyhHZWJlbiBTaWUgZWluZSBMZWVyemVpY2hlbi1nZXRyZW5udGUgTGlzdGUgdm9uIFdvcnRlbiBhbiwgZGllIG5pZSBpbiBkZW4gS2V5d29yZC1MaXN0ZW4gYXVmdGF1Y2hlbiBzb2xsdGVuKSc7CgokbGFuZ1snaW5jcmVhc2VfcHJpb3JpdHknXSA9ICdQcmlvcml05HQgdW0gMTAlIGVyaPZoZW4nOwokbGFuZ1snZGVjcmVhc2VfcHJpb3JpdHknXSA9ICdQcmlvcml05HQgdW0gMTAlIHZlcnJpbmdlcm4nOwoKJGxhbmdbJ3RpdGxlX3JlZ2VuZXJhdGVfc2l0ZW1hcCddID0gIlNpdGVtYXAgdW5kIHJvYm90cy50eHQgbmV1IGVyemV1Z2VuIjsKJGxhbmdbJ2J1dHRvbl9yZWdlbmVyYXRlX3NpdGVtYXAnXSA9ICJTaXRlbWFwIHVuZCByb2JvdHMudHh0IGpldHp0IG5ldSBlcnpldWdlbiI7CiRsYW5nWyd0ZXh0X3JlZ2VuZXJhdGVfc2l0ZW1hcCddID0gdXRmOF9lbmNvZGUoIkluc2Jlc29uZGVyZSBuYWNoIGdy9t9lcmVuIMRuZGVydW5nZW4gZGVyIFNlaXRlbnN0cnVrdHVyIGthbm4gZXMgc2lubnZvbGwgc2VpbiwgZGllIFNpdGVtYXAgdW5kIGRpZSByb2JvdHMudHh0IERhdGVpIG5ldSB6dSBlcnpldWdlbi4iKTsKJGxhbmdbJ3NpdGVtYXBfcmVnZW5lcmF0ZWQnXSA9ICJEaWUgU2l0ZW1hcCB1bmQgZGllIHJvYm90cy50eHQgLSBEYXRlaSB3dXJkZW4gZXJmb2xncmVpY2ggbmV1IGVyc3RlbGx0LiI7CgokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPgo8bGk+VmVyc2lvbiAxLjEgLSAwMi4gTm92ZW1iZXIgMjAxMC4gVmVyc2NoaWVkZW5lIEJ1Z2ZpeGVzLjwvbGk+CjxsaT5WZXJzaW9uIDEuMCAtIDI0LiBBdWd1c3QgMjAxMC4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjwvdWw+JzsKCiRsYW5nWydoZWxwJ10gPSAnPGgzPldhcyB0dXQgZGllc2VzIE1vZHVsPzwvaDM+CjxwPkRpZSBTRU8gVG9vbHMgaGVsZmVuIElobmVuLCBJaHJlIFNFTyAoU2VhcmNoIEVuZ2luZSBPcHRpbWl6YXRpb24sIFN1Y2htYXNjaGluZW5vcHRpbWllcnVuZykgaW4gZGVuIEdyaWZmIHp1IGJla29tbWVuLiBEYXMgTW9kdWwgZiZ1dW1sO2d0IHZlcnNjaGllZGVuZSBTRU8tRiZhdW1sO2hpZ2tlaXRlbiB6dSBDTVNNUyBoaW56dSB1bmQgd2FybnQgU2llLCBmYWxscyBTaWUgaXJnZW5kZXR3YXMgU0VPLWJlem9nZW5lcyAmdXVtbDtiZXJzZWhlbiBoYWJlbi4gQWt0dWVsbCB3ZXJkZW4gZGllIGZvbGdlbmRlbiBGZWF0dXJlcyB1bnRlcnN0JnV1bWw7dHp0OjwvcD4KPHVsPgo8bGk+LSBhdXRvbWF0aXNjaGUgRXJ6ZXVndW5nIHZvbiBNZXRhLVRhZ3MgaW0gU3RhbmRhcmQtSFRNTC1Gb3JtYXQsIG5hY2ggZGVyIER1YmxpbiBDb3JlLVNwZXppZmlrYXRpb24gdW5kIE9wZW5HcmFwaDwvbGk+CjxsaT4tIGF1dG9tYXRpc2NoZSBFeHRyYWt0aW9uIHZvbiBLZXl3b3JkcyBhdXMgSWhyZW4gU2VpdGVuLCBkaWUgenVtIFNlaXRlbnRpdGVsIHVuZCBkZW4gTWV0YS1UYWdzIGhpbnp1Z2VmJnV1bWw7Z3Qgd2VyZGVuPC9saT4KPGxpPi0gRmVzdGxlZ2VuIG1pdCBlaW5lbSBLbGljaywgb2IgYmVzdGltbXRlIFNlaXRlbiB2b24gU3VjaG1hc2NoaW5lbiBpbmRpemllcnQgd2VyZGVuIHNvbGxlbiBvZGVyIG5pY2h0PC9saT4KPGxpPi0gRXJ6ZXVndW5nIGVpbmVyIHNpdGVtYXAueG1sLURhdGVpIG1pdCBJaHJlbiBTZWl0ZW4gdyZhdW1sO2hyZW5kIFNpZSBkaWUgdm9sbGUgS29udHJvbGxlIGRhciZ1dW1sO2JlciBoYWJlbiwgd2llIGRpZSBQcmlvcml0JmF1bWw7dCBlaW56ZWxuZXIgU2VpdGVuIGJld2VydGV0IHdlcmRlbiBzb2xsPC9saT4KPGxpPi0gRXJ6ZXVndW5nIGVpbmVyIHJvYm90cy50eHQtRGF0ZWkgbWl0IGRlciBNJm91bWw7Z2xpY2hrZWl0LCBleHBsaXppdCBkZW4gWnVncmlmZiBhdWYgU2VpdGVuLCBkaWUgbmljaHQgaW5kaXppZXJ0IHdlcmRlbiBzb2xsZW4sIHp1IHZlcmJpZXRlbjwvbGk+CjxsaT4tIEF1c2dhYmUgdm9uIFdhcm51bmdlbiwgd2VubiBtZWhyZXJlIFNlaXRlbiBkZW4gZ2xlaWNoZW4gVGl0ZWwgb2RlciBkaWUgZ2xlaWNoZSBCZXNjaHJlaWJ1bmcgaGFiZW48L2xpPgo8bGk+LSBBdXNnYWJlIHZvbiBXYXJudW5nZW4gd2VubiBzZWhyIGt1cnplIFNlaXRlbmJlc2NocmVpYnVuZ2VuIGdlZnVuZGVuIHd1cmRlbjwvbGk+CjxsaT4tIEF1dG9tYXRpc2NoZXMgRWluc2VuZGVuIGRlciBha3R1YWxpc2llcnRlbiBTaXRlbWFwLURhdGVpIHp1IEdvb2dsZSwgd2VubiBJbmhhbHRlIGdlJmF1bWw7bmRlcnQgd2VyZGVuPC9saT4gCjwvdWw+CjxoMz5XaWUgd2lyZCBkYXMgTW9kdWwgdmVyd2VuZGV0PzwvaDM+CjxwPiZPdW1sO2ZmbmVuIFNpZSB6dW4mYXVtbDtjaHN0IGFsbGUgVGVtcGxhdGVzLCBhdWYgZGVuZW4gU2llIFNFTyBUb29scyB2ZXJ3ZW5kZW4gbSZvdW1sO2NodGVuLiBFbnRmZXJuZW4gU2llIGRhcyBrb21wbGV0dGUgJmx0O3RpdGxlJmd0Oy1UYWcgdW5kIGRhcyB7bWV0YWRhdGF9LVRhZyAoYXVjaCB3ZW5uIGRhIHN0ZWh0LCBkYSZzemxpZzsgU2llIGxldHp0ZXJlcyBuaWUgZW50ZmVybmVuIHNvbGx0ZW4pIHVuZCBlcnNldHplbiBTaWUgYmVpZGUgZHVyY2ggZGFzIFRhZzwvcD4KPHByZT4Ke1NFT1Rvb2xzfQo8L3ByZT48YnIgLz4KPHA+RiZ1dW1sO2dlbiBTaWUgYWxzIG4mYXVtbDtjaHN0ZXMgYW0gRW5kZSBJaHJlcyBUZW1wbGF0ZXMgKG5hY2ggZGVtIHNjaGxpZSZzemxpZztlbmRlbiAmbHQ7L2JvZHkmZ3Q7LVRhZykgZGVuIGZvbGdlbmRlbiBDb2RlIGVpbjo8L3A+CjxwcmU+CntjYXB0dXJlfXtjb250ZW50IGJsb2NrPSJTZWl0ZW5iZXNjaHJlaWJ1bmciIG9uZWxpbmU9InRydWUifXsvY2FwdHVyZX0KPC9wcmU+PGJyIC8+CjxwPkluIGRpZXNlcyBGZWxkIHdlcmRlbiBTaWUgc3AmYXVtbDt0ZXIgZWluZSBrdXJ6ZSBTZWl0ZW5iZXNjaHJlaWJ1bmcgKGVpbiBvZGVyIHp3ZWkgUyZhdW1sO3R6ZSkgZWluZ2ViZW4sIGRpZSBpbiBkZW4gRXJnZWJuaXNzZW4gZGVyIFN1Y2htYXNjaGluZW4gYW5nZXplaWd0IHdpcmQgdW5kIHdlbm4gei5CLiBqZW1hbmQgZGVuIExpbmsgenUgSWhyZXIgU2VpdGUgYmVpIEZhY2Vib29rIHRlaWx0LjwvcD4KPHA+UnVmZW4gU2llIG51biBkaWUgTW9kdWwtQWRtaW5pc3RyYXRpb24gYXVmIHVuZCBmJnV1bWw7bGxlbiBTaWUgYXVmIGRlbiBFaW5zdGVsbHVuZ3MtVGFicyBhbGxlIEluZm9ybWF0aW9uZW4gZWluLCBkaWUgZiZ1dW1sO3IgSWhyZSBTZWl0ZSByZWxldmFudCBzaW5kLiBVbnRlciAiTmFtZSBkZXMgU2VpdGVuYmVzY2hyZWlidW5ncy1Db250ZW50YmxvY2siIHRyYWdlbiBTaWUgZGVuIE5hbWVuIGRlcyBzb2ViZW4gaW0gVGVtcGxhdGUgYW5nZWxlZ3RlbiBDb250ZW50LUJsb2NrcyAoIlNlaXRlbmJlc2NocmVpYnVuZyIgaW4gdW5zZXJlbSBCZWlzcGllbCkgZWluLiBEZXIgVGFiICJTRU8tV2FybnVuZ2VuIiBiZW5hY2hpY2h0aWd0IFNpZSBhdXRvbWF0aXNjaCwgd2VubiBpcmdlbmRlaW5lIEVpbnN0ZWxsdW5nIGdlZnVuZGVuIHd1cmRlLCBkaWUgbmljaHQgb3B0aW1hbCBpc3QuCkF1JnN6bGlnO2VyZGVtIHNvbGx0ZW4gU2llIGluIEVydyZhdW1sO2d1bmcgemllaGVuLCBJaHJlIFNlaXRlIGJlaSBHb29nbGUgV2VibWFzdGVyIFRvb2xzIGFuenVtZWxkZW4uIFcmYXVtbDtobGVuIFNpZSBkb3J0ICJNZXRhIHRhZyB2YWxpZGF0aW9uIiB1bmQgZiZ1dW1sO2dlbiBTaWUgZGVuIEJlc3QmYXVtbDt0aWd1bmdzY29kZSwgZGVuIFNpZSBkb3J0IGVyaGFsdGVuLCBpbiBkYXMgRmVsZCAiQmVzdCZhdW1sO3RpZ3VuZ3Njb2RlIGYmdXVtbDtyIGRpZSBTZWl0ZW52ZXJpZml6aWVydW5nIiBlaW4gKG51ciBkZW4gbGFuZ2VuIENvZGUgYXVzIFphaGxlbiB1bmQgQnVjaHN0YWJlbiwgbmljaHQgZGFzIGtvbXBsZXR0ZSBNZXRhLVRhZykgdW0gYXV0b21hdGlzY2ggenUgYmVzdCZhdW1sO3RpZ2VuLCBkYSZzemxpZzsgU2llIHRhdHMmYXVtbDtjaGxpY2ggZGVyIEluaGFiZXIgSWhyZXIgU2VpdGUgc2luZC48L3A+CjxwPlNvYmFsZCBhbGxlcyBlaW5nZXJpY2h0ZXQgaXN0LCBzY2hhdWVuIFNpZSBhdWYgZGFzICJTRU8tV2FybnVuZ2VuIi1UYWIgdW5kIGJlaGViZW4gU2llIGFsbGUgUHJvYmxlbWUsIGRpZSBJaG5lbiBkb3J0IGFuZ2V6ZWlndCB3ZXJkZW4uIERlbmtlbiBTaWUgdW5iZWRpbmd0IGRhcmFuLCBhdWYgamVkZXIgU2VpdGUsIGRpZSBTaWUgdW50ZXIgIkluaGFsdGUvU2VpdGVuIiBiZWFyYmVpdGVuLCBlaW5lIGt1cnplICh1bmQgZWluZGV1dGlnZSkgQmVzY2hyZWlidW5nIGlucyBGZWxkICJTZWl0ZW5iZXNjaHJlaWJ1bmciIHVudGVuIGF1ZiBkZW0gU2VpdGVuYmVhcmJlaXR1bmdzLUZvcm11bGFyIGVpbnp1Z2ViZW4uPC9wPgo8cD5XZW5uIFNpZSBJaHJlIGVpZ2VuZW4gS2V5d29yZHMgZmVzdGxlZ2VuIChhbnN0ZWxsZSBkZXIgYXV0b21hdGlzY2ggZ2VuZXJpZXJ0ZW4gS2V5d29yZHMpIG9kZXIgZGVuIE9wZW5HcmFwaC1UeXAgYmVzdGltbXRlciBTZWl0ZW4gJmF1bWw7bmRlcm4gbSZvdW1sO2NodGVuLCBiZXN1Y2hlbiBTaWUgZGVuIFRhYiAiU2VpdGVuZWluc3RlbGx1bmdlbiIgYXVmIGRlbSBTaWUgZWluZSBMaXN0ZSBhbGxlciBpbSBTeXN0ZW0gdm9yaGFuZGVuZW4gU2VpdGVuIHNlaGVuLiBEb3J0IGsmb3VtbDtubmVuIFNpZSBhdWNoIGRpZSBQcmlvcml0JmF1bWw7dGVuIGRlciBTZWl0ZW4gZiZ1dW1sO3IgZGllIFhNTC1TaXRlbWFwICZhdW1sO25kZXJuIChkaWUgYW5kZXJuZmFsbHMgYXV0b21hdGlzY2ggYmVyZWNobmV0IHdpcmQpIHVtIGZlc3R6dWxlZ2VuLCBkYSZzemxpZzsgYmVzdGltbXRlIFNlaXRlbiBhbHMgd2ljaHRpZ2VyCmVpbmdlc3R1ZnQgd2VyZGVuIHNvbGxlbiBhbHMgYW5kZXJlIGJlaSBTdWNobWFzY2hpbmVuLVRyZWZmZXJuLCBvZGVyIHdlbm4gU2llIGVpbnplbG5lIFNlaXRlbiB2b24gZGVyIEluZGl6aWVydW5nIGR1cmNoIFN1Y2htYXNjaGluZW4gYXVzc2NobGllJnN6bGlnO2VuIG0mb3VtbDtjaHRlbi48L3A+CjxwPlNFTyBUb29scyBmJnV1bWw7Z3QgYXUmc3psaWc7ZXJkZW0gZWluZW4gVmVyd2VpcyBhdWYgZGFzIEJpbGQsIGRhcyBhbHMgSGF1cHRiaWxkIGYmdXVtbDtyIElocmUgU2VpdGUgdmVyd2VuZGV0IHdlcmRlbiBzb2xsICh3aWNodGlnIGYmdXVtbDtyIExpbmtzLCBkaWUgYmVpIEZhY2Vib29rIGdldGVpbHQgd2VyZGVuKSB3ZW5uIFNpZSBlaW4gIkJpbGQiIGYmdXVtbDtyIGRpZSBTZWl0ZSBhdWYgZGVtIE9wdGlvbnMtVGFiIElocmVyIFNlaXRlIGZlc3RsZWdlbi4gV2VubiBTaWUgT3BlbkdyYXBoIHZlcndlbmRlbiwgZXJzZXR6dCBkaWVzZXMgQmlsZCBhdSZzemxpZztlcmRlbSBkYXMgU3RhbmRhcmQtQmlsZApmJnV1bWw7ciBPcGVuR3JhcGgtU2VpdGVuIGRhcyBTaWUgaW4gZGVuIEVpbnN0ZWxsdW5nZW4gdm9uIFNFTyBUb29scyBmZXN0Z2VsZWd0IGhhYmVuLiBBY2h0ZW4gU2llIGRhcmF1ZiwgZGEmc3psaWc7IFNpZSBkaWVzZSBCaWxkZXIgaW4gSWhyIC91cGxvYWRzL2ltYWdlcyAtIFZlcnplaWNobmlzIGhvY2hsYWRlbiwgZGFtaXQgc2llIHZvbiBDTVNNUyBlcmthbm50IHdlcmRlbi48L3A+IjsgCjxoMz5XZWxjaGUgUGFyYW1ldGVyIHNpbmQgZXJmb3JkZXJsaWNoPzwvaDM+CjxwPkRhcyBNb2R1bCBiZW4mb3VtbDt0aWd0IGtlaW5lIFBhcmFtZXRlcjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEwLCBIZW5uaW5nIFNjaGFlZmVyIDxhIGhyZWY9Im1haWx0bzpoZW5uaW5nLnNjaGFlZmVyQGdtYWlsLmNvbSI+Jmx0O2hlbm5pbmcuc2NoYWVmZXJAZ21haWwuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NFTyBUb29scyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1NFTyBUb29scyBoYXZlIGJlZW4gaW5zdGFsbGVkLiBCZSBzdXJlIHRvIHJlYWQgdGhlIG1vZHVsZSBoZWxwIHRvIGxlYXJuIGhvdyB0byB1c2UgdGhlbS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1NFTyBUb29scyBoYXZlIGJlZW4gdW5pbnN0YWxsZWQuIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHlvdSBoYXZlIGp1c3QgbG9zdCBhbGwgbWV0YSBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgcGFnZXMhJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdW5pbnN0YWxsIFNFTyBUb29scz8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdTZXZlcmFsIHRvb2xzIHRvIGhlbHAgd2l0aCBTZWFyY2ggRW5naW5lIE9wdGltaXphdGlvbiBhbmQgY2hlY2sgZm9yIHN1Ym9wdGltYWwgU0VPLXJlbGF0ZWQgdGhpbmdzLic7CgokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZFsnYWRtaW5fdGl0bGUnXSA9ICdTRU8gVG9vbHMgQWRtaW4gUGFuZWwnOwokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJ0hlbHBzIHdpdGggU0VPIGluIGdlbmVyYWwsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyBYTUwgc2l0ZW1hcHMgYW5kIGNvbXByZWhlbnNpdmUgbWV0YSBkZXNjcmlwdGlvbnMnOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ1NFT0FsZXJ0cyddID0gJ1NFTyBBbGVydHMnOwokbGFuZ1snUGFnZWRlc2NyaXB0aW9ucyddID0gJ1BhZ2Ugc2V0dGluZ3MnOwokbGFuZ1snU2l0ZW1hcCddID0gJ1NpdGVtYXAnOwokbGFuZ1snU0VPU2V0dGluZ3MnXSA9ICdTRU8gU2V0dGluZ3MnOwokbGFuZ1sndGl0bGVfc2VvYWxlcnRzJ10gPSAnU0VPIEFsZXJ0cyc7CiRsYW5nWyd0aXRsZV9wYWdlZGVzY3JpcHRpb25zJ10gPSAnUGFnZSBzZXR0aW5ncyc7CiRsYW5nWyd0aXRsZV9zaXRlbWFwJ10gPSAnU2l0ZW1hcCc7CiRsYW5nWyd0aXRsZV9zZW9zZXR0aW5ncyddID0gJ1NFTyBTZXR0aW5ncyc7CgokbGFuZ1sndGl0bGVfbWV0YV90eXBlJ10gPSAnTWV0YSBUYWcgR2VuZXJhdG9yJzsKJGxhbmdbJ21ldGFfY3JlYXRlX3N0YW5kYXJkJ10gPSAnR2VuZXJhdGUgc3RhbmRhcmQgTWV0YSBUYWdzJzsKJGxhbmdbJ21ldGFfY3JlYXRlX2R1YmxpbmNvcmUnXSA9ICdHZW5lcmF0ZSBEdWJsaW4gQ29yZSBNZXRhIFRhZ3MnOwokbGFuZ1snbWV0YV9jcmVhdGVfb3BlbmdyYXBoJ10gPSAnR2VuZXJhdGUgT3BlbkdyYXBoIE1ldGEgVGFncyAoZS5nLiBmb3IgRmFjZWJvb2sgTGlrZSBCdXR0b24pJzsKCiRsYW5nWyd0aXRsZV9tZXRhX2RlZmF1bHRzJ10gPSAnTUVUQSBUYWcgVmFsdWVzJzsKJGxhbmdbJ21ldGFfcHVibGlzaGVyJ10gPSAnU2l0ZSBwdWJsaXNoZXInOwokbGFuZ1snbWV0YV9wdWJsaXNoZXJfaGVscCddID0gJyhUaGlzIGlzIHVzdWFsbHkgdGhlIG9yZ2FuaXphdGlvbiB5b3UgYXJlIGJ1aWxkaW5nIHRoZSB3ZWJzaXRlIGZvciknOwokbGFuZ1snbWV0YV9jb250cmlidXRvciddID0gJ1NpdGUgY29udHJpYnV0b3InOwokbGFuZ1snbWV0YV9jb250cmlidXRvcl9oZWxwJ10gPSAnKFVzdWFsbHksIHRoaXMgd291bGQgYmUgeW91IG9yIGFueSBvdGhlciBjb250ZW50IGF1dGhvciknOwokbGFuZ1snbWV0YV9jb3B5cmlnaHQnXSA9ICdTaXRlIGNvcHlyaWdodCc7CiRsYW5nWydtZXRhX2NvcHlyaWdodF9oZWxwJ10gPSAnKFNvbWV0aGluZyBsaWtlICIoQykgWW91ciBDb21wYW55LiBBbGwgUmlnaHRzIFJlc2VydmVkIiknOwokbGFuZ1snbWV0YV9sb2NhdGlvbl9kZXNjcmlwdGlvbiddID0gJ0lmIHlvdXIgd2Vic2l0ZSBpcyBhYm91dCBhbiBlbnRpdGl5IHRoYXQgY2FuIGJlIGxvY2F0ZWQgb24gYSBtYXAsIHlvdSBzaG91bGQgb3B0aW9uYWxseSBmaWxsIGluIHRoZSBmb2xsb3dpbmcgdmFsdWVzOic7CiRsYW5nWydtZXRhX2xvY2F0aW9uJ10gPSAnTG9jYXRpb24gb2YgeW91ciBlbnRpdHknOwokbGFuZ1snbWV0YV9sb2NhdGlvbl9oZWxwJ10gPSAnKFVzdWFsbHksIHRoaXMgd291bGQgYmUgdGhlIHRvd24gbmFtZSBvZiB5b3VyIGNvbXBhbnkpJzsKJGxhbmdbJ21ldGFfcmVnaW9uJ10gPSAnUmVnaW9uIG9mIHlvdXIgZW50aXR5JzsKJGxhbmdbJ21ldGFfcmVnaW9uX2hlbHAnXSA9ICcoRW50ZXIgc29tZXRoaW5nIGxpa2UgIlVTLUlMIiBmb3IgYW4gZW50aXR5IGxvY2F0ZWQgaW4gSWxsaW5vaXMsIFVTKSc7CiRsYW5nWydtZXRhX2xhdGl0dWRlJ10gPSAnTGF0aXR1ZGUgb2YgeW91ciBlbnRpdHknOwokbGFuZ1snbWV0YV9sYXRpdHVkZV9oZWxwJ10gPSAnKEVudGVyIHRoZSBkZWNpbWFsIGxhdGl0dWRlIGdlbyBjb29kaW5hdGUgb2YgeW91ciBlbnRpdGl5KSc7CiRsYW5nWydtZXRhX2xvbmdpdHVkZSddID0gJ0xvbmdpdHVkZSBvZiB5b3VyIGVudGl0eSc7CiRsYW5nWydtZXRhX2xvbmdpdHVkZV9oZWxwJ10gPSAnKEVudGVyIHRoZSBkZWNpbWFsIGxvbmdpdHVkZSBnZW8gY29vZGluYXRlIG9mIHlvdXIgZW50aXRpeSknOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfZGVzY3JpcHRpb24nXSA9ICdJZiB5b3UgYXJlIGNyZWF0aW5nIE9wZW5HcmFwaCBNRVRBIFRhZ3MsIHBsZWFzZSBmaWxsIGluIHRoZSBmb2xsb3dpbmcgdmFsdWVzOic7CiRsYW5nWydtZXRhX29wZW5ncmFwaF90aXRsZSddID0gJ09wZW5HcmFwaCBwYWdlIHRpdGxlJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX3RpdGxlX2hlbHAnXSA9ICcoWW91IGNhbiB1c2UgdGhlIHt0aXRsZX0gdGFnIGhlcmUgdG8gcmVwbGFjZSB3aXRoIHRoZSBhY3R1YWwgcGFnZSB0aXRsZSknOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfdHlwZSddID0gJ09wZW5HcmFwaCBkZWZhdWx0IHBhZ2UgdHlwZSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF90eXBlX2hlbHAnXSA9ICcoVGhlIGRlZmF1bHQgcGFnZSB0eXBlIGZvciBPcGVuR3JhcGgsIGNhbiBiZSBvdmVycmlkZGVuIGZvciBlYWNoIHBhZ2UuIExvb2sgPGEgaHJlZj0iaHR0cDovL2RldmVsb3BlcnMuZmFjZWJvb2suY29tL2RvY3Mvb3BlbmdyYXBoI3R5cGVzIiB0YWdldD0iX2JsYW5rIj5oZXJlPC9hPiBmb3IgYSBsaXN0IG9mIGFsbG93ZWQgdmFsdWVzKSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9zaXRlbmFtZSddID0gJ09wZW5HcmFwaCBzaXRlIG5hbWUnOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWVfaGVscCddID0gJyhBIHNob3J0IHZlcnNpb24gb2YgeW91ciBzaXRlIG5hbWUsIGUuZy4gIllvdXIgQ29tcGFueSIsIG1heC4gMjUgY2hhcnMpJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX2ltYWdlJ10gPSAnT3BlbkdyYXBoIGRlZmF1bHQgaW1hZ2UnOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfaW1hZ2VfaGVscCddID0gJyhTZWxlY3QgYW4gaW1hZ2UgZnJvbSB5b3VyIC91cGxvYWRzL2ltYWdlcyBkaXJlY3RvcnkgdG8gYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBmb3IgT3BlbkdyYXBoIHBhZ2VzKSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9hZG1pbnMnXSA9ICdGYWNlYm9vayBzaXRlIGFkbWluaXN0cmF0b3JzJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX2FkbWluc19oZWxwJ10gPSAnKEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmFjZWJvb2sgYWNjb3VudCBJRHMgd2hvIGFyZSBhYmxlIHRvIGFkbWluaXN0cmF0ZSB0aGUgc3RyZWFtcyBvZiB5b3VyIHBhZ2VzKSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbiddID0gJ0ZhY2Vib29rIGFwcGxpY2F0aW9uJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uX2hlbHAnXSA9ICcoVGhlIElEIG9mIGEgZmFjZWJvb2sgYXBwbGljYXRpb24gYWJsZSB0byBhZG1pbmlzdHJhdGUgdGhlIHN0cmVhbXMgb2YgeW91ciBwYWdlcyknOwoKJGxhbmdbJ3RpdGxlX3RpdGxlX2Rlc2NyaXB0aW9uJ10gPSAnUGFnZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIGtleXdvcmRzJzsKJGxhbmdbJ3RpdGxlX3RpdGxlJ10gPSAnUGFnZSB0aXRsZSc7CiRsYW5nWyd0aXRsZV90aXRsZV9oZWxwJ10gPSAnKFRoZSBwYWdlIHRpdGxlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgYnJvd3NlclwncyB0aXRsZSBiYXIuIFlvdSBjYW4gdXNlIHRoZSB0YWdzIHt0aXRsZX0sIHtwYWdldGl0bGV9IGFuZCB7c2VvX2tleXdvcmRzfSBoZXJlKSc7CiRsYW5nWyd0aXRsZV9tZXRhX3RpdGxlJ10gPSAnUGFnZSBNZXRhIHRpdGxlJzsKJGxhbmdbJ3RpdGxlX21ldGFfaGVscCddID0gJyhUaGUgcGFnZSB0aXRsZSB0byBiZSB1c2VkIGluIHRoZSBNZXRhIHRpdGxlIHRhZ3MuIFlvdSBjYW4gdXNlIHRoZSB0YWdzIHt0aXRsZX0sIHtwYWdldGl0bGV9IGFuZCB7c2VvX2tleXdvcmRzfSBoZXJlKSc7CiRsYW5nWydkZXNjcmlwdGlvbl9ibG9ja190aXRsZSddID0gJ05hbWUgb2YgcGFnZSBkZXNjcmlwdGlvbiBjb250ZW50IGJsb2NrJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uX2Jsb2NrX2hlbHAnXSA9ICcoVGhlIG5hbWUgb2YgeW91ciBwYWdlIGRlc2NyaXB0aW9uIGNvbnRlbnQgYmxvY2suIFBsZWFzZSBzZWUgYmVsb3cgZm9yIGFuIGV4cGxhbmF0aW9uKSc7CiRsYW5nWydkZWZhdWx0X2tleXdvcmRzX3RpdGxlJ10gPSAnS2V5d29yZHMgdG8gYWx3YXlzIGluY2x1ZGUnOwokbGFuZ1snZGVmYXVsdF9rZXl3b3Jkc19oZWxwJ10gPSAnKEEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2Yga2V5d29yZHMgeW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBvbiBldmVyeSBwYWdlKSc7CgokbGFuZ1sndGl0bGVfc2l0ZW1hcF9kZXNjcmlwdGlvbiddID0gJ0dvb2dsZSBTaXRlbWFwIGFuZCBDcmF3bGVyIFNldHRpbmdzJzsKJGxhbmdbJ2NyZWF0ZV9zaXRlbWFwX3RpdGxlJ10gPSAnQ3JlYXRlIGFuIFhNTCBHb29nbGUgU2l0ZW1hcConOwokbGFuZ1sncHVzaF9zaXRlbWFwX3RpdGxlJ10gPSAnQXV0b21hdGljYWxseSBwdXNoIHRoZSBzaXRlbWFwIHRvIEdvb2dsZSBhZnRlciBjb250ZW50IGNoYW5nZXMnOwokbGFuZ1snY3JlYXRlX3JvYm90c190aXRsZSddID0gJ0NyZWF0ZSBhIHJvYm90cy50eHQgZmlsZSonOwokbGFuZ1sndmVyaWZpY2F0aW9uX3RpdGxlJ10gPSAnU2l0ZSB2ZXJpZmljYXRpb24gY29kZSc7CiRsYW5nWyd2ZXJpZmljYXRpb25faGVscCddID0gJyhUaGUgc2l0ZSB2ZXJpZmljYXRpb24gY29kZSB5b3Ugb2J0YWluIGZyb20gR29vZ2xlIFdlYm1hc3RlciBUb29scywganVzdCB0aGUgaGFzaCwgbm90IHRoZSBjb21wbGV0ZSBtZXRhIHRhZyknOwoKJGxhbmdbJ3RpdGxlX2FsZXJ0c191cmdlbnQnXSA9ICdUbyBiZSBmaXhlZCBpbW1lZGlhdGVseSc7CiRsYW5nWyd0aXRsZV9hbGVydHNfaW1wb3J0YW50J10gPSAnVG8gYmUgZml4ZWQgYXMgc29vbiBhcyBwb3NzaWJsZSc7CiRsYW5nWyd0aXRsZV9hbGVydHNfbm90aWNlcyddID0gJ1RoaW5ncyB5b3Ugc2hvdWxkIGNvbnNpZGVyIGZpeGluZyc7CiRsYW5nWydub3RoaW5nX3RvX2JlX2ZpeGVkJ10gPSAnVGhlcmUgYXJlIG5vIGFjdGlvbnMgeW91IG5lZWQgdG8gdGFrZSBpbiB0aGlzIGNhdGVnb3J5JzsKCiRsYW5nWydzYXZlJ10gPSAnU2F2ZSBzZXR0aW5ncyc7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ3NldHRpbmdzX3VwZGF0ZWQnXSA9ICdUaGUgU0VPIHNldHRpbmdzIHdlcmUgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQuJzsKJGxhbmdbJ3Byb2JsZW1fYWxlcnQnXSA9ICdoYXMgZGV0ZWN0ZWQgc2V2ZXJlIHByb2JsZW1zIHdpdGggeW91ciBTRU8uICVzJzsKJGxhbmdbJ3Byb2JsZW1fbGlua190aXRsZSddID0gJ0NsaWNrIGhlcmUgdG8gZml4IHRoZW0nOwoKJGxhbmdbJ2hlbHBfZGVzY3JpcHRpb25fY29udGVudCddID0gJzxiPkhvdyB0byB1c2UgdGhlICJkZXNjcmlwdGlvbiBjb250ZW50IGJsb2NrIjo8L2I+PGJyIC8+VG8gYmUgYWJsZSB0byBlbnRlciBhIHBhZ2UgZGVzY3JpcHRpb24gd2hlbiBlZGl0aW5nIGEgcGFnZSwgeW91IG11c3QgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGNvZGUgYW55d2hlcmUgb24gZXZlcnkgdGVtcGxhdGU6PGJyIC8+PGJyIC8+PHByZT57Y2FwdHVyZX17Y29udGVudCBibG9jaz0iTUVUQSBEZXNjcmlwdGlvbiIgb25lbGluZT0idHJ1ZSJ9ey9jYXB0dXJlfTwvcHJlPjxiciAvPlRoZW4sIHB1dCAiTUVUQSBEZXNjcmlwdGlvbiIgaW50byB0aGUgZmllbGQgIk5hbWUgb2YgcGFnZSBkZXNjcmlwdGlvbiBjb250ZW50IGJsb2NrPGJyIC8+PGJyIC8+QWx0ZXJuYXRpdmVseSwgZW5hYmxlIHRoZSBvcHRpb24gJnF1b3Q7QXV0b21hdGljYWxseSBnZW5lcmF0ZSBkZXNjcmlwdGlvbnMgd2hlcmUgbm9uZSBpcyBnaXZlbiZxdW90Oy4gVGhpcyBpcyBub3QgYXMgZ29vZCBidXQgc3RpbGwgYmV0dGVyIHRoYW4gbm90aGluZy4nOwokbGFuZ1snaGVscF9zaXRlbWFwX3JvYm90cyddID0gJyopIFRvIHVzZSB0aGUgYXV0b21hdGljIGdlbmVyYXRpb24gb2YgYSBzaXRlbWFwLSBhbmQgcm9ib3RzLWZpbGUsIHRoZSByb290IGRpcmVjdG9yeSBvZiB5b3VyIENNU01TIGluc3RhbGxhdGlvbiBtdXN0IGJlIHdyaXRlYWJsZSB0byB0aGUgd2ViIHNlcnZlci4gSWYgeW91ciBhbHJlYWR5IGhhdmUgYSBzaXRlbWFwLnhtbCBhbmQvcHIgcm9ib3RzLnR4dCBmaWxlLCBib3RoIG9mIHRoZW0gbXVzdCBiZSB3cml0ZWFibGUgdG8gdGhlIHdlYiBzZXJ2ZXIuJzsKCiRsYW5nWyd1c2Vfc3RhbmRhcmRfb3JfZHVibGluY29yZV9tZXRhJ10gPSAnVXNlIGF0IGxlYXN0IG9uZSBvZiB0aGUgc3RhbmRhcmQgb3IgRHVibGluIENvcmUgTWV0YSBUYWcgZ2VuZXJhdG9ycyc7CiRsYW5nWyd1c2Vfc3RhbmRhcmRfbWV0YSddID0gJ1lvdSBzaG91bGQgYWx3YXlzIGVuYWJsZSB0aGUgc3RhbmRhcmQgTWV0YSBnZW5lcmF0b3InOwokbGFuZ1snbWV0YV9kZXNjcmlwdGlvbl9taXNzaW5nJ10gPSAnVGhlIHBhZ2UgPGk+JXM8L2k+IGlzIGxhY2tpbmcgYSBNZXRhIGRlc2NyaXB0aW9uJzsKJGxhbmdbJ21ldGFfZGVzY3JpcHRpb25fc2hvcnQnXSA9ICdUaGUgTWV0YSBkZXNjcmlwdGlvbiBvZiA8aT4lczwvaT4gaXMgcmF0aGVyIHNob3J0ICggPCA3NSBjaGFycyknOwokbGFuZ1snZHVwbGljYXRlX3RpdGxlcyddID0gJ1RoZSBwYWdlcyA8aT4lczwvaT4gYW5kIDxpPiVzPC9pPiBoYXZlIHRoZSBzYW1lIHRpdGxlJzsKJGxhbmdbJ2R1cGxpY2F0ZV9kZXNjcmlwdGlvbnMnXSA9ICdUaGUgcGFnZXMgPGk+JXM8L2k+IGFuZCA8aT4lczwvaT4gaGF2ZSB0aGUgc2FtZSBNZXRhIGRlc2NyaXB0aW9uJzsKJGxhbmdbJ3Byb3ZpZGVfYW5fYXV0aG9yJ10gPSAnWW91IHNob3VsZCBwcm92aWRlIHRoZSBuYW1lIG9mIHRoZSBwYWdlIHB1Ymxpc2hlcic7CiRsYW5nWydzZXRfdXBfZGVzY3JpcHRpb25fYmxvY2snXSA9ICdTZXQgdXAgYSBjb250ZW50IGJsb2NrIGZvciBNZXRhIGRlc2NyaXB0aW9ucyc7CiRsYW5nWydhY3RpdmF0ZV9wcmV0dHlfdXJscyddID0gJ0FjdGl2YXRlIHRoZSBwcmV0dHkgVVJMcyBmZWF0dXJlIG9mIENNU01TJzsKJGxhbmdbJ3ByZXR0eV91cmxzX2hlbHAnXSA9ICc8YSBocmVmPSJodHRwOi8vd2lraS5jbXNtYWRlc2ltcGxlLm9yZy9pbmRleC5waHAvVXNlcl9IYW5kYm9vay9JbnN0YWxsYXRpb24vT3B0aW9uYWxfU2V0dGluZ3MiIHRhcmdldD0iX2JsYW5rIj5HZXQgaGVscDwvYT4nOwokbGFuZ1snY3JlYXRlX2Ffc2l0ZW1hcCddID0gJ0hhdmUgYSBHb29nbGUgWE1MIFNpdGVtYXAgYXV0b21hdGljYWxseSBjcmVhdGVkIGZvciB5b3UnOwokbGFuZ1snYXV0b21hdGljYWxseV91cGxvYWRfc2l0ZW1hcCddID0gJ0hhdmUgeW91ciBYTUwgU2l0ZW1hcCBhdXRvbWF0aWNhbGx5IHVwbG9hZGVkIHRvIEdvb2dsZSc7CiRsYW5nWydjcmVhdGVfcm9ib3RzJ10gPSAnSGF2ZSBhIHJvYm90cy50eHQgZmlsZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgZm9yIHlvdSc7CiRsYW5nWydzaXRlbWFwX25vdF93cml0ZWFibGUnXSA9ICdZb3VyIHNpdGVtYXAueG1sIGZpbGUgaXMgbm90IHdyaXRlYWJsZSc7CiRsYW5nWydjaG1vZF9zaXRlbWFwJ10gPSAnU2V0IHlvdXIgL3NpdGVtYXAueG1sIGZpbGUgdG8gYmUgd3JpdGVhYmxlIGJ5IHRoZSB3ZWIgc2VydmVyJzsKJGxhbmdbJ3JvYm90c19ub3Rfd3JpdGVhYmxlJ10gPSAnWW91ciByb2JvdHMudHh0IGZpbGUgaXMgbm90IHdyaXRlYWJsZSc7CiRsYW5nWydub19vcGVuZ3JhcGhfYWRtaW5zJ10gPSAnWW91IGhhdmUgbm90IHNldCBhbiBPcGVuR3JhcGggYWRtaW4gYXBwbGljYXRpb24gcmVzcC4gYWRtaW4gbGlzdCc7CiRsYW5nWydub19vcGVuZ3JhcGhfdHlwZSddID0gJ1lvdSBoYXZlIG5vdCBzZXQgdGhlIGRlZmF1bHQgT3BlbkdyYXBoIHBhZ2UgdHlwZSc7CiRsYW5nWydub19vcGVuZ3JhcGhfc2l0ZW5hbWUnXSA9ICdZb3UgaGF2ZSBub3Qgc2V0IHRoZSBPcGVuR3JhcGggc2l0ZSBuYW1lJzsKJGxhbmdbJ25vX29wZW5ncmFwaF9pbWFnZSddID0gJ1lvdSBoYXZlIG5vdCBzZXQgYW4gT3BlbkdyYXBoIGRlZmF1bHQgaW1hZ2UnOwokbGFuZ1snY2htb2Rfcm9ib3RzJ10gPSAnU2V0IHlvdXIgL3JvYm90cy50eHQgZmlsZSB0byBiZSB3cml0ZWFibGUgYnkgdGhlIHdlYiBzZXJ2ZXInOwokbGFuZ1snZWRpdF9wYWdlJ10gPSAnRWRpdCAlcyc7CiRsYW5nWydlZGl0X3BhZ2VfdG9fZml4J10gPSAnQ2xpY2sgaGVyZSB0byBlZGl0IHRoZSBwYWdlIGFuZCBmaXggdGhlIHByb2JsZW0nOwokbGFuZ1sndmlzaXRfc2V0dGluZ3MnXSA9ICdDaGFuZ2Ugc2V0dGluZ3MnOwoKJGxhbmdbJ3BhZ2VfaWQnXSA9ICdJRCc7CiRsYW5nWydwYWdlX25hbWUnXSA9ICdQYWdlIG5hbWUnOwokbGFuZ1sncHJpb3JpdHknXSA9ICdTaXRlbWFwIFByaW9yaXR5JzsKJGxhbmdbJ29nX3R5cGUnXSA9ICdPcGVuR3JhcGggdHlwZSc7CiRsYW5nWydrZXl3b3JkcyddID0gJyMgS2V5d29yZHMnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydpbmRleCddID0gJ0luZGV4YWJsZSc7CgokbGFuZ1snY2xpY2tfdG9fYWRkX2Rlc2NyaXB0aW9uJ10gPSAnQ2xpY2sgaGVyZSB0byBhZGQgYSBwYWdlIGRlc2NyaXB0aW9uJzsKJGxhbmdbJ3RvZ2dsZSddID0gJ3RvZ2dsZSc7CiRsYW5nWydyZXNldCddID0gJ3Jlc2V0JzsKJGxhbmdbJ3Jlc2V0X3RvX2RlZmF1bHQnXSA9ICdSZXNldCB0aGlzIHRvIHRoZSBkZWZhdWx0IHZhbHVlJzsKJGxhbmdbJ2VkaXRfdmFsdWUnXSA9ICdFZGl0IHRoaXMgdmFsdWUnOwoKJGxhbmdbJ2hlbHBfb3BlbmdyYXBoJ10gPSAnTG9vayA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVycy5mYWNlYm9vay5jb20vZG9jcy9vcGVuZ3JhcGgjdHlwZXMiIHRhZ2V0PSJfYmxhbmsiPmhlcmU8L2E+IGZvciBhIGxpc3Qgb2YgYWxsb3dlZCB2YWx1ZXMnOwokbGFuZ1snZW50ZXJfbmV3X29ndHlwZSddID0gJ0VudGVyIHRoZSBuZXcgdmFsdWUgZm9yIHRoaXMgcGFnZVwncyBPcGVuR3JhcGggdHlwZSc7CiRsYW5nWydoZWxwX25ld19vZ3R5cGUnXSA9ICdMZWF2ZSBibGFuayB0byByZXZlcnQgdG8gdGhlIGRlZmF1bHQgc2V0dGluZyc7CgokbGFuZ1snZW50ZXJfbmV3X2tleXdvcmRzJ10gPSAnRW50ZXIgdGhlIG5ldyBrZXl3b3JkcyBmb3IgdGhpcyBwYWdlJzsKJGxhbmdbJ2hlbHBfbmV3X2tleXdvcmRzJ10gPSAnV2hpdGVzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBrZXl3b3Jkcy4gTGVhdmUgYmxhbmsgdG8gcmV2ZXJ0IHRvIGF1dG8gZ2VuZXJhdGVkIGtleXdvcmRzJzsKCiRsYW5nWydncm91cHRpdGxlX29wZW5ncmFwaCddID0gJ1dlIGhhdmUgZGV0ZWN0ZWQgJXMgT3BlbkdyYXBoIHJlbGF0ZWQgcHJvYmxlbShzKSc7CiRsYW5nWydncm91cHRpdGxlX3N5c3RlbSddID0gJ1dlIGhhdmUgZGV0ZWN0ZWQgJXMgcHJvYmxlbShzKSB3aXRoIHlvdXIgc3lzdGVtIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1snZ3JvdXB0aXRsZV9wYWdlcyddID0gJ1dlIGhhdmUgZGV0ZWN0ZWQgJXMgcHJvYmxlbShzKSBvbiB5b3VyIGNvbnRlbnQgcGFnZXMnOwokbGFuZ1snZ3JvdXB0aXRsZV9zZXR0aW5ncyddID0gJ1dlIGhhdmUgZGV0ZWN0ZWQgJXMgcHJvYmxlbShzKSB3aXRoIHlvdXIgU0VPIFNldHRpbmdzJzsKJGxhbmdbJ2dyb3VwdGl0bGVfZGVzY3JpcHRpb25zJ10gPSAnV2UgaGF2ZSBkZXRlY3RlZCAlcyBwcm9ibGVtKHMpIHdpdGggeW91ciBwYWdlIGRlc2NyaXB0aW9ucyc7CiRsYW5nWydncm91cHRpdGxlX3RpdGxlcyddID0gJ1dlIGhhdmUgZGV0ZWN0ZWQgJXMgcHJvYmxlbShzKSB3aXRoIHlvdXIgcGFnZSB0aXRsZXMnOwoKJGxhbmdbJ3ZpZXdfYWxsJ10gPSAnVmlldyBhbGwnOwoKJGxhbmdbJ3RpdGxlX21ldGFzZXR0aW5ncyddID0gJ1BhZ2UgdGl0bGUgJiBNZXRhIGluZm9ybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3NpdGVtYXBzZXR0aW5ncyddID0gJ1NpdGVtYXAgJiBDcmF3bGVyIHNldHRpbmdzJzsKJGxhbmdbJ3RpdGxlX2tleXdvcmRzZXR0aW5ncyddID0gJ0tleXdvcmQgZ2VuZXJhdG9yIHNldHRpbmdzJzsKCiRsYW5nWydkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlJ10gPSAnQXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIHBhZ2UgZGVzY3JpcHRpb24gd2hlcmUgbm9uZSBpcyBwcm92aWRlZCc7CiRsYW5nWydkZXNjcmlwdGlvbl9hdXRvX3RpdGxlJ10gPSAnVGV4dCBmb3IgYXV0by1nZW5lcmF0ZWQgZGVzY3JpcHRpb25zJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uX2F1dG9faGVscCddID0gJyhZb3UgPGI+bXVzdDwvYj4gaW5jbHVkZSB0aGUgdGFnIHtrZXl3b3Jkc30gaGVyZSknOwoKJGxhbmdbJ3NldF91cF9hdXRvX2Rlc2NyaXB0aW9uJ10gPSAnU2V0IHVwIHRoZSBkZXNjcmlwdGlvbiBhdXRvLWdlbmVyYXRvciBhbmQgZW5zdXJlIHRoZSB0ZXh0IGNvbnRhaW5zIHRoZSB0YWcge2tleXdvcmRzfSc7CiRsYW5nWydhdXRvX2dlbmVyYXRlZCddID0gJ0F1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkJzsKJGxhbmdbJ2FuZCddID0gJ2FuZCc7CgokbGFuZ1sndGl0bGVfa2V5d29yZF93ZWlnaHQnXSA9ICdLZXl3b3JkIHdlaWdodCBzZXR0aW5ncyc7CiRsYW5nWydrZXl3b3JkX21pbmxlbmd0aF90aXRsZSddID0gJ01pbmltdW0ga2V5d29yZCBsZW5ndGgnOwokbGFuZ1sna2V5d29yZF9taW5sZW5ndGhfaGVscCddID0gJyhUaGUgbWluaW11bSBsZW5ndGggb2YgYSB3b3JkIHRvIGJlIGNvbnNpZGVyZWQgYXMgYSBrZXl3b3JkKSc7CiRsYW5nWydrZXl3b3JkX3RpdGxlX3dlaWdodF90aXRsZSddID0gJ1dlaWdodCBvZiB3b3JkcyBpbiB0aGUgcGFnZSB0aXRsZSc7CiRsYW5nWydrZXl3b3JkX3RpdGxlX3dlaWdodF9oZWxwJ10gPSAnKFRoZSB3ZWlnaHQgb2Ygd29yZHMgaW4gdGhlIHBhZ2UgdGl0bGUuIFRoZSBoaWdoZXIgYSB3b3JkXCdzIHdlaWdodCwgdGhlIG1vcmUgbGlrZWx5IGl0IGlzIHRvIGJlY29tZSBhIGtleXdvcmQpJzsKJGxhbmdbJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0X3RpdGxlJ10gPSAnV2VpZ2h0IG9mIHdvcmRzIGluIHRoZSBwYWdlIGRlc2NyaXB0aW9uJzsKJGxhbmdbJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0X2hlbHAnXSA9ICcoVGhlIHdlaWdodCBvZiB3b3JkcyBpbiB0aGUgcGFnZSBkZXNjcmlwdGlvbi4gVGhlIGhpZ2hlciBhIHdvcmRcJ3Mgd2VpZ2h0LCB0aGUgbW9yZSBsaWtlbHkgaXQgaXMgdG8gYmVjb21lIGEga2V5d29yZCknOwokbGFuZ1sna2V5d29yZF9oZWFkbGluZV93ZWlnaHRfdGl0bGUnXSA9ICdXZWlnaHQgb2Ygd29yZHMgaW4gY29udGVudCBoZWFkbGluZXMnOwokbGFuZ1sna2V5d29yZF9oZWFkbGluZV93ZWlnaHRfaGVscCddID0gJyhUaGUgd2VpZ2h0IG9mIHdvcmRzIGJldHdlZW4gJmx0O2gxJmd0OyB0byAmbHQ7aDYmZ3Q7IHRhZ3MuIFRoZSBoaWdoZXIgYSB3b3JkXCdzIHdlaWdodCwgdGhlIG1vcmUgbGlrZWx5IGl0IGlzIHRvIGJlY29tZSBhIGtleXdvcmQpJzsKJGxhbmdbJ2tleXdvcmRfY29udGVudF93ZWlnaHRfdGl0bGUnXSA9ICdXZWlnaHQgb2Ygd29yZHMgaW4gcGxhaW4gY29udGVudCc7CiRsYW5nWydrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0X2hlbHAnXSA9ICcoVGhlIHdlaWdodCBvZiB3b3JkcyBpbnNpZGUgdGhlIHBsYWluIGNvbnRlbnQuIFRoZSBoaWdoZXIgYSB3b3JkXCdzIHdlaWdodCwgdGhlIG1vcmUgbGlrZWx5IGl0IGlzIHRvIGJlY29tZSBhIGtleXdvcmQpJzsKCiRsYW5nWydrZXl3b3JkX21pbmltdW1fd2VpZ2h0X3RpdGxlJ10gPSAnTWluaW11bSB0b3RhbCB3ZWlnaHQgb2YgYSBrZXl3b3JkJzsKJGxhbmdbJ2tleXdvcmRfbWluaW11bV93ZWlnaHRfaGVscCddID0gJyhUaGUgbWluaW11bSB0b3RhbCB3ZWlnaHQgb2YgYSB3b3JkIHRvIGJlY29tZSBhIGtleXdvcmQuIFNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIGhpZ2hlc3Qgd2VpZ2h0IGZyb20gYWJvdmUuIFRoZSBzbWFsbGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIGtleXdvcmRzIHlvdSBnZXQpJzsKCiRsYW5nWydoZWxwX2tleXdvcmRfZ2VuZXJhdG9yJ10gPSAnVGhlIHNldHRpbmdzIHlvdSBjaGFuZ2Ugb24gdGhpcyBwYWdlIHdpbGwgbm90IGFmZmVjdCBhbnkga2V5d29yZHMgeW91IGVudGVyIG1hbnVhbGx5LiBGZWVsIGZyZWUgdG8gcGxheSB3aXRoIGFsbCB2YWx1ZXMgdW50aWwgeW91IGdldCB0aGUgYmVzdCByZXN1bHRzIGZvciB5b3VyIHBhZ2UuJzsKCiRsYW5nWyd0aXRsZV9rZXl3b3JkX2V4Y2x1ZGUnXSA9ICdLZXl3b3JkIGV4Y2x1c2lvbiBsaXN0JzsKJGxhbmdbJ2tleXdvcmRfZXhjbHVkZV90aXRsZSddID0gJ1dvcmRzIHRvIG5ldmVyIGNvbnNpZGVyIGFzIGtleXdvcmRzJzsKJGxhbmdbJ2tleXdvcmRfZXhjbHVkZV9oZWxwJ10gPSAnKFByb3ZpZGUgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiB3b3JkcyB0aGF0IHNob3VsZCBuZXZlciBhcHBlYXIgaW4ga2V5d29yZCBsaXN0cyknOwoKJGxhbmdbJ2luY3JlYXNlX3ByaW9yaXR5J10gPSAnSW5jcmVhc2UgcHJpb3JpdHkgYnkgMTAlJzsKJGxhbmdbJ2RlY3JlYXNlX3ByaW9yaXR5J10gPSAnSW5jcmVhc2UgcHJpb3JpdHkgYnkgMTAlJzsKCiRsYW5nWyd0aXRsZV9yZWdlbmVyYXRlX3NpdGVtYXAnXSA9ICJSZWdlbmVyYXRlIHNpdGVtYXAgYW5kIHJvYm90cy50eHQiOwokbGFuZ1snYnV0dG9uX3JlZ2VuZXJhdGVfc2l0ZW1hcCddID0gIlJlZ2VuZXJhdGUgc2l0ZW1hcCBhbmQgcm9ib3RzLnR4dCBub3ciOwokbGFuZ1sndGV4dF9yZWdlbmVyYXRlX3NpdGVtYXAnXSA9ICJJdCBjYW4gYmUgbmVjZXNzYXJ5IHRvIHJlZ2VuZXJhdGUgdGhlIHNpdGVtYXAgYW5kIHJvYm90cy50eHQgZmlsZSBhZnRlciBleHRlbnNpdmUgY2hhbmdlcyB0byB0aGUgcGFnZSBzdHJ1Y3R1cmUiOwokbGFuZ1snc2l0ZW1hcF9yZWdlbmVyYXRlZCddID0gIkJvdGggdGhlIHNpdGVtYXAgYW5kIHRoZSByb2JvdHMudHh0IGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgcmVnZW5lcmF0ZWQuIjsKCiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+CjxsaT5WZXJzaW9uIDEuMSAtIDAyLiBOb3ZlbWJlciAyMDEwLiBTZXZlcmFsIGJ1Z2ZpeGVzLjwvbGk+CjxsaT5WZXJzaW9uIDEuMCAtIDI0IEF1Z3VzdCAyMDEwLiBJbml0aWFsIFJlbGVhc2UuPC9saT4KPC91bD4nOwoKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+U0VPIFRvb2xzIGhlbHAgeW91IGluIGdldHRpbmcgeW91ciBTRU8gKFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uKSByaWdodC4gVGhlIG1vZHVsZSBhZGRzIHNldmVyYWwgU0VPIGNhcGFiaWxpdGllcyB0byB5b3VyIENNU01TIGluc3RhbGxhdGlvbiBhbmQgYWxlcnRzIHlvdSBpZiB5b3UgbWlzc2VkIG91dCBvbiBzb21ldGhpbmcgU0VPIHJlbGF0ZWQuIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOjwvcD4KPHVsPgo8bGk+LSBnZW5lcmF0ZXMgTWV0YSB0YWdzIGluIHN0YW5kYXJkIGh0bWwsIER1YmxpbiBDb3JlIGFuZCBPcGVuR3JhcGggZm9ybWF0czwvbGk+CjxsaT4tIGF1dG9tYXRpY2FsbHkgZXh0cmFjdHMga2V5d29yZHMgZnJvbSB5b3VyIHBhZ2VzIGFuZCBhZGRzIHRoZW0gdG8gdGhlIG1ldGEgdGFncyBhbmQgcGFnZSB0aXRsZTwvbGk+CjxsaT4tIGxldHMgeW91IGRldGVybWluZSB3aXRoIGEgc2luZ2xlIGNsaWNrIHdoZXRoZXIgY2VydGFpbiBwYWdlcyBzaG91bGQgYmUgaW5kZXhlZCBieSBzZWFyY2ggZW5naW5lcyBvciBub3Q8L2xpPgo8bGk+LSBnZW5lcmF0ZXMgYSBzaXRlbWFwLnhtbCBmaWxlIHdpdGggeW91ciBwYWdlcyB3aGlsZSBnaXZpbmcgeW91IGZ1bGwgY29udHJvbCBvdmVyIHRoZSBwcmlvcml0aWVzIG9mIHlvdXIgcGFnZXM8L2xpPgo8bGk+LSBnZW5lcmF0ZXMgYSByb2JvdHMudHh0IGZpbGUgZXhwbGljaXRseSBkaXNhbGxvd2luZyBhY2Nlc3MgdG8gcGFnZXMgeW91IGRvblwndCB3YW50IHRvIGJlIGluZGV4ZWQ8L2xpPgo8bGk+LSBhbGVydHMgeW91IHdoZW4gdGhlcmUgYXJlIHNldmVyYWwgcGFnZXMgZmVhdHVyaW5nIHRoZSBzYW1lIHBhZ2UgdGl0bGVzIGFuZCBkZXNjcmlwdGlvbnM8L2xpPgo8bGk+LSBhbGVydHMgeW91IHdoZW4gdmVyeSBzaG9ydCBwYWdlIG1ldGEgZGVzY3JpcHRpb25zIGFyZSBkZXRlY3RlZDwvbGk+CjxsaT4tIGF1dG9tYXRpY2FsbHkgc3VibWl0cyB5b3VyIHNpdGVtYXAgZmlsZSB0byBHb29nbGUgd2hlbiB5b3UgY2hhbmdlIHlvdXIgY29udGVudDwvbGk+IAo8L3VsPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+Rmlyc3QsIG9wZW4gYWxsIHRlbXBsYXRlcyB3aGVyZSB5b3Ugd2FudCBkbyB1c2UgU0VPIFRvb2xzLiBSZW1vdmUgdGhlIGNvbXBsZXRlICZsdDt0aXRsZSZndDsgdGFnIGFuZCB0aGUge21ldGFkYXRhfSB0YWcgKGV2ZW4gaWYgaXQgc2F5cyB0byBuZXZlciByZW1vdmUgaXQpIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgdGFnPC9wPgo8cHJlPgp7U0VPVG9vbHN9CjwvcHJlPjxiciAvPgo8cD5OZXh0LCBhdCB0aGUgYm90dG9tIG9mIHlvdXIgdGVtcGxhdGUgKGFmdGVyIHRoZSBjbG9zaW5nICZsdDsvYm9keSZndDsgdGFnKSwgaW5zZXJ0IHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+CjxwcmU+CntjYXB0dXJlfXtjb250ZW50IGJsb2NrPSJQYWdlIERlc2NyaXB0aW9uIiBvbmVsaW5lPSJ0cnVlIn17L2NhcHR1cmV9CjwvcHJlPjxiciAvPgo8cD5UaGlzIGlzIHdoZXJlIHlvdVwnbGwgZW50ZXIgYSBzaG9ydCBwYWdlIGRlc2NyaXB0aW9uIChvbmUgb3IgdHdvIHNlbnRlbmNlcykgdGhhdCB3aWxsIGFwcGVhciBpbiB0aGUgc2VhcmNoIGVuZ2luZVwncyByZXN1bHRzIGFuZCBpZiwgZm9yIGV4YW1wbGUsIHNvbWVvbmUgc2hhcmVzIGEgbGluayB0byB5b3VyIHBhZ2Ugb24gZmFjZWJvb2suPC9wPgo8cD5Ob3csIHZpc2l0IHRoZSBzZXR0aW5ncyB0YWJzIGZvciBwYWdlIHRpdGxlICYgbWV0YSBpbmZvcm1hdGlvbiwgdGhlIHNpdGVtYXAgJiBjcmF3bGVyIHNldHRpbmdzIGFuZCB0aGUga2V5d29yZCBnZW5lcmF0b3Igc2V0dGluZ3MgYW5kIGZpbGwgaW4gYWxsIHJlcXVpcmVkIGluZm9ybWF0aW9uIGZvciB5b3VyIHBhZ2UuIFVuZGVyICJOYW1lIG9mIHBhZ2UgZGVzY3JpcHRpb24gY29udGVudCBibG9jayIgeW91IG5lZWQgdG8gZW50ZXIgdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2sgeW91IGp1c3QgYWRkZWQgdG8geW91ciB0ZW1wbGF0ZXMgKCJQYWdlIERlc2NyaXB0aW9uIiBpbiBvdXIgZXhhbXBsZSkuIFRoZSB0YWIgIlNFTyBBbGVydHMiIHdpbGwgYWxlcnQgeW91IGlmIGl0IGRldGVjdHMgYW55dGhpbmcgdGhhdCBpcyByZXF1aXJlZCBidXQgbm90IGFjdGl2YXRlZCBvciBmaWxsZWQgaW4uIFlvdSBzaG91bGQgYWxzbyBjb25zaWRlciBzaWduaW5nIHVwIHlvdXIKc2l0ZSB3aXRoIEdvb2dsZSBXZWJtYXN0ZXIgdG9vbHMuIFRoZXJlLCBzZWxlY3QgIk1ldGEgdGFnIHZhbGlkYXRpb24iIGFuZCBwYXN0ZSB0aGUgdmVyaWZpY2F0aW9uIGNvZGUgKHF1aXRlIGEgbG9uZyBzdHJpbmcgb2YgY2hhcmFjdGVycyBhbmQgbnVtYmVycykgaW50byB0aGUgYm94ICJWZXJpZmljYXRpb24gQ29kZSIgaW4gIlNFTyBTZXR0aW5ncyIgdG8gYXV0b21hdGljYWxseSB2ZXJpZnkgdGhhdCB5b3UgYXJlIHJlYWxseQp0aGUgb3duZXIgb2YgeW91ciBwYWdlIChubyBuZWVkIHRvIHBhc3RlIHRoZSBHb29nbGUgTWV0YS1jb2RlIGludG8geW91ciB0ZW1wbGF0ZSkuPC9wPgo8cD5BcyBzb29uIGFzIGV2ZXJ5dGhpbmcgaXMgc2V0IHVwLCBsb29rIGF0IHRoZSAiU0VPIEFsZXJ0cyIgdGFiIGFuZCBmaXggYWxsIHByb2JsZW1zIGRldGVjdGVkIGhlcmUuIFRha2UgY2FyZSB0byBpbnNlcnQgYSAodW5pcXVlKSBwYWdlIGRlc2NyaXB0aW9uIG9uIGV2ZXJ5IHBhZ2UgeW91IGVkaXQgaW4gdGhlIGZpZWxkICJQYWdlIERlc2NyaXB0aW9uIiBhdCB0aGUgYm90dG9tIG9mIHlvdXIgIkVkaXQgUGFnZSIgZm9ybS48L3A+CjxwPlRvIHNldCB5b3VyIG93biBrZXl3b3JkcyAoaW5zdGVhZCBvZiB0aGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgb25lcykgb3IgT3BlbkdyYXBoIHR5cGUgZm9yIGNlcnRhaW4gcGFnZXMsIHZpc2l0IHRoZSAiUGFnZSBzZXR0aW5ncyIgdGFiIHdoZXJlIHlvdVwnbGwgZmluZCBhIGxpc3Qgb2YgYWxsIHBhZ2VzIHlvdSBoYXZlIGluIHlvdXIgc3lzdGVtLiBUaGVyZSwgeW91IGNhbiBhbHNvIGNoYW5nZSB0aGUgc2l0ZW1hcCBwcmlvcml0eSAod2hpY2ggaXMgYXV0by1jYWxjdWxhdGVkIGJ5IGRlZmF1bHQpIG9mIGEgcGFnZSB0byBpbmRpY2F0ZSB0aGF0IGl0IHNob3VsZApiZSBjb25zaWRlcmVkIG1vcmUgaW1wb3J0YW50IGZvciBzZWFyY2ggZW5naW5lIG1hdGNoZXMgb24geW91ciBwYWdlIG9yIGV4Y2x1ZGUgY2VydGFpbiBwYWdlcyBmcm9tIHRoZSBzZWFyY2ggaW5kZXguPC9wPgo8cD5TRU8gVG9vbHMgd2lsbCBhbHNvIGF1dG9tYXRpY2FsbHkgaW5zZXJ0IGEgbGluayB0byB0aGUgaW1hZ2UgdG8gYmUgdXNlZCBhcyB0aGUgbWFpbiBpbWFnZSBvZiB5b3VyIHBhZ2UgaWYgeW91IHNlbGVjdCBhbiAiSW1hZ2UiIGZvciB0aGUgcGFnZSBmcm9tIHdpdGhpbiB5b3VyIHBhZ2VcJ3MgIk9wdGlvbnMiIHRhYiAodGhpcyBpcyBpbXBvcnRhbnQgZm9yIHBlb3BsZSBzdWJtaXR0aW5nIGEgbGluayB0byB5b3VyIHBhZ2UgZS5nLiBvbiBmYWNlYm9vaykuIEFsc28sIGlmIHlvdSBhcmUgdXNpbmcgT3BlbkdyYXBoLCB0aGUgaW1hZ2Ugc2VsZWN0ZWQgaGVyZQp3aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0IE9wZW5HcmFwaCBpbWFnZSB5b3Ugc3BlY2lmaWVkIGZyb20gd2l0aGluICJTRU8gU2V0dGluZ3MiLiBQbGVhc2UgYmUgYXdhcmUgdGhhdCB5b3UgbmVlZCB0byB1cGxvYWQgdGhvc2UgaW1hZ2VzIHRvIHlvdXIgL3VwbG9hZHMvaW1hZ2VzIGRpcmVjdG9yeS48L3A+IAo8aDM+V2hhdCBQYXJhbWV0ZXJzIERvZXMgSXQgVGFrZTwvaDM+CjxwPlRoZSBtb2R1bGUgZG9lcyBub3QgbmVlZCBhbnkgcGFyYW1ldGVyczwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEwLCBIZW5uaW5nIFNjaGFlZmVyIDxhIGhyZWY9Im1haWx0bzpoZW5uaW5nLnNjaGFlZmVyQGdtYWlsLmNvbSI+Jmx0O2hlbm5pbmcuc2NoYWVmZXJAZ21haWwuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoJICAgCSAgIAoJICAgRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBjcmVhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsCgkgICBjaGVjayBvdXQgdGhlIEFET0RCIERhdGEgRGljdGlvbmFyeSBwYWdlIGF0CgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQoJICAgCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJCQoJCS8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24KCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJCgkJLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCiAgICAgICAgLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiAgICAgICAgJGZsZHMgPSAiCgkJCWNvbnRlbnRfaWQgSSBLRVksCgkJCWluZGV4YWJsZSBJKDEpLAoJCQlrZXl3b3JkcyBDKDI1NSksCgkJCXByaW9yaXR5IEkoMyksCgkJCW9ndHlwZSBDKDMyKQoJCQkiOwoKCQkvLyBjcmVhdGUgaXQuIFRoaXMgc2hvdWxkIGRvIGVycm9yIGNoZWNraW5nLCBidXQgSSdtIGEgbGF6eSBzb2QuCgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Nlb3Rvb2xzIiwKCQkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkKCQkvLyBwZXJtaXNzaW9ucwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdFZGl0IFNFTyBTZXR0aW5ncycsJ0VkaXQgU0VPIFNldHRpbmdzJyk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0VkaXQgcGFnZSBkZXNjcmlwdGlvbnMnLCdFZGl0IHBhZ2UgZGVzY3JpcHRpb25zJyk7CgoKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoJCQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCS8vIFR5cGljYWwgRGF0YWJhc2UgUmVtb3ZhbAoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkKCQkvLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlCgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VvdG9vbHMiICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkJCgkJCgkJLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdFZGl0IFNFTyBTZXR0aW5ncycpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignRWRpdCBwYWdlIGRlc2NyaXB0aW9ucycpOwoKCQkKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMS4wIjoKCQkJICAgICBicmVhazsKCQkJY2FzZSAiMS4xIjoKCQkJICAgICBicmVhazsKCQl9CgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/SEOTools.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzIC0gU2V2ZXJhbCB0b29scyB0byBoZWxwIHdpdGggU2VhcmNoIEVuZ2luZSBPcHRpbWl6YXRpb24gYW5kIGNoZWNrIGZvciBzdWJvcHRpbWFsIFNFTy1yZWxhdGVkIHRoaW5ncy4KIyBWZXJzaW9uOiAwLjksIEhlbm5pbmcgU2NoYWVmZXIKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojIFRoaXMgZmlsZSBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgTW9kdWxlTWFrZXIgbW9kdWxlLCB2ZXJzaW9uIDAuMy4yCiMgQ29weXJpZ2h0IChjKSAyMDEwIGJ5IFNhbXVlbCBHb2xkc3RlaW4gKHNqZ0BjbXNtYWRlc2ltcGxlLm9yZykgCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBGb3IgSGVscCBidWlsZGluZyBtb2R1bGVzOgojIC0gUmVhZCB0aGUgRG9jdW1lbnRhdGlvbiBhcyBpdCBiZWNvbWVzIGF2YWlsYWJsZSBhdAojICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy8KIyAtIENoZWNrIG91dCB0aGUgU2tlbGV0b24gTW9kdWxlIGZvciBhIGNvbW1lbnRlZCBleGFtcGxlCiMgLSBMb29rIGF0IG90aGVyIG1vZHVsZXMsIGFuZCBsZWFybiBmcm9tIHRoZSBzb3VyY2UKIyAtIENoZWNrIG91dCB0aGUgZm9ydW1zIGF0IGh0dHA6Ly9mb3J1bXMuY21zbWFkZXNpbXBsZS5vcmcKIyAtIENoYXQgd2l0aCBkZXZlbG9wZXJzIG9uIHRoZSAjY21zIElSQyBjaGFubmVsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgplcnJvcl9yZXBvcnRpbmcoRV9BTEwpOwoKY2xhc3MgU0VPVG9vbHMgZXh0ZW5kcyBDTVNNb2R1bGUKewoJCglmdW5jdGlvbiBHZXROYW1lKCkKCXsKCQlyZXR1cm4gJ1NFT1Rvb2xzJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0RnJpZW5kbHlOYW1lKCkKCSAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbG9jYWxpemVkIG5hbWUKCSAgIG9mIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIG5hbWUgdGhhdCdzIHNob3duIGluIHRoZQoJICAgQWRtaW4gTWVudXMgYW5kIHNlY3Rpb24gcGFnZXMgKGlmIHRoZSBtb2R1bGUgaGFzIGFuIGFkbWluCgkgICBjb21wb25lbnQpLgoJICAgCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwoJfQoKCQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldFZlcnNpb24oKQoJICAgVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBudW1iZXIgb3IKCSAgIHNvbWV0aGluZyB0aGF0IG1ha2VzIHNlbnNlIGZvciBkZXNpZ25hdGluZyBhIHZlcnNpb24uCgkgICBUaGUgQ01TIHdpbGwgdXNlIHRoaXMgdG8gaWRlbnRpZnkgd2hldGhlciBvciBub3QKCSAgIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgbW9kdWxlIGlzIGN1cnJlbnQsIGFuZAoJICAgdGhlIG1vZHVsZSB3aWxsIHVzZSBpdCB0byBmaWd1cmUgb3V0IGhvdyB0byB1cGdyYWRlCgkgICBpdHNlbGYgaWYgcmVxdWVzdGVkLgkgICAKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldFZlcnNpb24oKQoJewoJCXJldHVybiAnMS4xJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0SGVscCgpCgkgICBUaGlzIHJldHVybnMgSFRNTCBpbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLgoJICAgVHlwaWNhbGx5LCB5b3UnbGwgd2FudCB0byBpbmNsdWRlIGluZm9ybWF0aW9uIG9uIGhvdyB0bwoJICAgdXNlIHRoZSBtb2R1bGUuCgkgICAKCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRIZWxwKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QXV0aG9yKCkKCSAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCgkgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEF1dGhvcigpCgl7CgkJcmV0dXJuICdIZW5uaW5nIFNjaGFlZmVyJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QXV0aG9yRW1haWwoKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLiBJdCBoZWxwcyB1c2VycwoJICAgb2YgeW91ciBtb2R1bGUgZ2V0IGluIHRvdWNoIHdpdGggeW91IHRvIHNlbmQgYnVnIHJlcG9ydHMsCgkgICBxdWVzdGlvbnMsIGNhc2VzIG9mIGJlZXIsIGFuZC9vciBsYXJnZSBzdW1zIG9mIG1vbmV5LgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJewoJCXJldHVybiAnaGVubmluZy5zY2hhZWZlckBnbWFpbC5jb20nOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRDaGFuZ2VMb2coKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBtb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgQWJvdXQgbGluay4gSXQgaGVscHMgdXNlcnMKCSAgIGZpZ3VyZSBvdXQgd2hhdCdzIGNoYW5nZWQgYmV0d2VlbiByZWxlYXNlcy4KCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIElzUGx1Z2luTW9kdWxlKCkKCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlLCBkZXBlbmRpbmcgdXBvbgoJICAgd2hldGhlciB1c2VycyBjYW4gaW5jbHVkZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvcgoJICAgdGVtcGxhdGUgdXNpbmcgYSBzbWFydHkgdGFnIG9mIHRoZSBmb3JtCgkgICB7Y21zX21vZHVsZSBtb2R1bGU9J1NFT1Rvb2xzJyBwYXJhbTE9dmFsIHBhcmFtMj12YWwuLi59CgkgICAKCSAgIElmIHlvdXIgbW9kdWxlIGRvZXMgbm90IGdldCBpbmNsdWRlZCBpbiBwYWdlcyBvcgoJICAgdGVtcGxhdGVzLCByZXR1cm4gImZhbHNlIiBoZXJlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBIYXNBZG1pbigpCgkgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIHZhbHVlLCBkZXBlbmRpbmcgb24KCSAgIHdoZXRoZXIgeW91ciBtb2R1bGUgYWRkcyBhbnl0aGluZyB0byB0aGUgQWRtaW4gYXJlYSBvZgoJICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSdsbCBiZSBjYWxsaW5nCgkgICB0aGUgYWRtaW4gcGFydCBvZiB5b3VyIG1vZHVsZSB0aGUgIkFkbWluIFBhbmVsIiBmb3IKCSAgIHdhbnQgb2YgYSBiZXR0ZXIgdGVybS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEhhc0FkbWluKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEFkbWluU2VjdGlvbigpCgkgICBJZiB5b3VyIG1vZHVsZSBoYXMgYW4gQWRtaW4gUGFuZWwsIHlvdSBjYW4gc3BlY2lmeQoJICAgd2hpY2ggQWRtaW4gU2VjdGlvbiAob3IgdG9wLWxldmVsIEFkbWluIE1lbnUpIGl0IHNob3dzCgkgICB1cCBpbi4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyB0byBzcGVjaWZ5IHRoYXQKCSAgIHNlY3Rpb24uIFZhbGlkIHJldHVybiB2YWx1ZXMgYXJlOgoKCSAgIG1haW4gICAgICAgIC0gdGhlIE1haW4gbWVudSB0YWIuCgkgICBjb250ZW50ICAgICAtIHRoZSBDb250ZW50IG1lbnUKCSAgIGxheW91dCAgICAgIC0gdGhlIExheW91dCBtZW51CgkgICB1c2Vyc2dyb3VwcyAtIHRoZSBVc2VycyBhbmQgR3JvdXBzIG1lbnUKCSAgIGV4dGVuc2lvbnMgIC0gdGhlIEV4dGVuc2lvbnMgbWVudSAodGhpcyBpcyB0aGUgZGVmYXVsdCkKCSAgIHNpdGVhZG1pbiAgIC0gdGhlIFNpdGUgQWRtaW4gbWVudQoJICAgdmlld3NpdGUgICAgLSB0aGUgVmlldyBTaXRlIG1lbnUgdGFiCgkgICBsb2dvdXQgICAgICAtIHRoZSBMb2dvdXQgbWVudSB0YWIKCSAgIAoJICAgTm90ZSB0aGF0IGlmIHlvdSBwbGFjZSB5b3VyIG1vZHVsZSBpbiB0aGUgbWFpbiwKCSAgIHZpZXdzaXRlLCBvciBsb2dvdXQgc2VjdGlvbnMsIGl0IHdpbGwgc2hvdyB1cCBpbiB0aGUKCSAgIG1lbnVzLCBidXQgd2lsbCBub3QgYmUgdmlzaWJsZSBpbiBhbnkgdG9wLWxldmVsCgkgICBzZWN0aW9uIHBhZ2VzLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkKCXsKCQlyZXR1cm4gJ2NvbnRlbnQnOwoJfQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QWRtaW5EZXNjcmlwdGlvbigpCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQoJICAgY2FuIGhhdmUgaXQgcmV0dXJuIGEgZGVzY3JpcHRpb24gc3RyaW5nIHRoYXQgZ2V0cyBzaG93bgoJICAgaW4gdGhlIEFkbWluIFNlY3Rpb24gcGFnZSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFZpc2libGVUb0FkbWluVXNlcigpCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQoJICAgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3QgaXQncyBkaXNwbGF5ZWQgYnkgdGhlIGJvb2xlYW4KCSAgIHRoYXQgaXMgcmV0dXJuZWQgYnkgdGhpcyBtZXRob2QuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQKCSAgIHRvIGhpZGUgbW9kdWxlcyBmcm9tIGFkbWlucyB3aG8gbGFjayBwZXJtaXNzaW9uIHRvIHVzZQoJICAgdGhlbS4KCSAgIAoJICAgVHlwaWNhbGx5LCB5b3UnbGwgdXNlIHNvbWUgcGVybWlzc2lvbiB0byBzZXQgdGhpcwoJICAgKGUuZy4sICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1NvbWUgUGVybWlzc2lvbicpOyApCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewogICAgICAgIHJldHVybiB0cnVlOwoJfQoJCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIENoZWNrQWNjZXNzKCkKCSAgIFRoaXMgd3JhcHBlciBmdW5jdGlvbiB3aWxsIGNoZWNrIGFnYWluc3QgdGhlIHNwZWNpZmllZCBwZXJtaXNzaW9uLAoJICAgYW5kIGRpc3BsYXkgYW4gZXJyb3IgcGFnZSBpZiB0aGUgdXNlciBkb2Vzbid0IGhhdmUgYWRlcXVhdGUgcGVybWlzc2lvbnMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBDaGVja0FjY2VzcygkcGVybSA9ICdFZGl0IFNFTyBTZXR0aW5ncycpCgkJewoJCXJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCRwZXJtKTsKCQl9CgkKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBEaXNwbGF5RXJyb3JQYWdlKCkKCSAgIFRoaXMgaXMgYSBzaW1wbGUgZnVuY3Rpb24gZm9yIGdlbmVyYXRpbmcgZXJyb3IgcGFnZXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgICBmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlPScnKQogICAgewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignbWVzc2FnZScsICRtZXNzYWdlKTsKCiAgICAgICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKICAgIH0KCQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0RGVwZW5kZW5jaWVzKCkKCSAgIFlvdXIgbW9kdWxlIG1heSBuZWVkIGFub3RoZXIgbW9kdWxlIHRvIGFscmVhZHkgYmUgaW5zdGFsbGVkCgkgICBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIGl0LgoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIGxpc3Qgb2YgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZAoJICAgbWluaW11bSB2ZXJzaW9uIG51bWJlcnMgdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KCSAgIAoJICAgSXQgc2hvdWxkIHJldHVybiBhbiBoYXNoLCBlZy4KCSAgIHJldHVybiBhcnJheSgnc29tZW1vZHVsZSc9PicxLjAnLCAnb3RoZXJtb2R1bGUnPT4nMS4xJyk7CgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQoJewoJCXJldHVybiBhcnJheSgpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBNaW5pbXVtQ01TVmVyc2lvbigpCgkgICBZb3VyIG1vZHVsZSBtYXkgcmVxdWlyZSBmdW5jdGlvbnMgb3Igb2JqZWN0cyBmcm9tCgkgICBhIHNwZWNpZmljIHZlcnNpb24gb2YgQ01TIE1hZGUgU2ltcGxlLgoJICAgRXZlciBzaW5jZSB2ZXJzaW9uIDAuMTEsIHlvdSBjYW4gc3BlY2lmeSB3aGljaCBtaW5pbXVtCgkgICBDTVMgTVMgdmVyc2lvbiBpcyByZXF1aXJlZCBmb3IgeW91ciBtb2R1bGUsIHdoaWNoIHdpbGwKCSAgIHByZXZlbnQgaXQgZnJvbSBiZWluZyBpbnN0YWxsZWQgYnkgYSB2ZXJzaW9uIG9mIENNUyB0aGF0CgkgICBjYW4ndCBydW4gaXQuCgkgICAKCSAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZQoJICAgbWluaW11bSB2ZXJzaW9uIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAiMS42LjAiOwoJfQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgTWF4aW11bUNNU1ZlcnNpb24oKQoJICAgWW91IG1heSB3YW50IHRvIHByZXZlbnQgcGVvcGxlIGZyb20gdXNpbmcgeW91ciBtb2R1bGUgaW4KCSAgIGZ1dHVyZSB2ZXJzaW9ucyBvZiBDTVMgTWFkZSBTaW1wbGUsIGVzcGVjaWFsbHkgaWYgeW91CgkgICB0aGluayBBUEkgZmVhdHVyZXMgeW91IHVzZSBtYXkgY2hhbmdlIC0tIGFmdGVyIGFsbCwgeW91CgkgICBuZXZlciByZWFsbHkga25vdyBob3cgdGhlIENNUyBNUyBBUEkgY291bGQgZXZvbHZlLgoJICAgCgkgICBTbywgdG8gcHJldmVudCBwZW9wbGUgZnJvbSBmbG9vZGluZyB5b3Ugd2l0aCBidWcgcmVwb3J0cwoJICAgd2hlbiBhIG5ldyB2ZXJzaW9uIG9mIENNUyBNUyBpcyByZWxlYXNlZCwgeW91IGNhbiBzaW1wbHkKCSAgIHJlc3RyaWN0IHRoZSB2ZXJzaW9uLiBUaGVuLCBvZiBjb3Vyc2UsIHRoZSBvbnVzIGlzIG9uIHlvdQoJICAgdG8gcmVsZWFzZSBhIG5ldyB2ZXJzaW9uIG9mIHlvdXIgbW9kdWxlIHdoZW4gYSBuZXcgdmVyc2lvbgoJICAgb2YgdGhlIENNUyBpcyByZWxlYXNlZC4uLgoJICAgCgkgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKCSAgIG1heGltdW0gdmVyc2lvbiB0aGF0IHRoaXMgbW9kdWxlIHN1cHBvcnRzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gIjEuOS45IjsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICBBZnRlciBpbnN0YWxsYXRpb24sIHRoZXJlIG1heSBiZSB0aGluZ3MgeW91IHdhbnQgdG8KCSAgIGNvbW11bmljYXRlIHRvIHlvdXIgYWRtaW4uIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhCgkgICBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJICAgQWZ0ZXIgcmVtb3ZpbmcgYSBtb2R1bGUsIHRoZXJlIG1heSBiZSB0aGluZ3MgeW91IHdhbnQgdG8KCSAgIGNvbW11bmljYXRlIHRvIHlvdXIgYWRtaW4uIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhCgkgICBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7Cgl9CgoKCS8qKgoJICogVW5pbnN0YWxsUHJlTWVzc2FnZSgpCgkgKiBUaGlzIGFsbG93cyB5b3UgdG8gZGlzcGxheSBhIG1lc3NhZ2UgYWxvbmcgd2l0aCBhIFllcy9ObyBkaWFsb2cgYm94LiBJZiB0aGUgdXNlciByZXNwb25kcwoJICogaW4gdGhlIGFmZmlybWF0aXZlIHRvIHlvdXIgbWVzc2FnZSwgdGhlIHVuaW5zdGFsbCB3aWxsIHByb2NlZWQuIElmIHRoZXkgcmVzcG9uZCBpbiB0aGUKCSAqIG5lZ2F0aXZlLCB0aGUgdW5pbnN0YWxsIHdpbGwgYmUgY2FuY2VsZWQuIFRodXMsIHlvdXIgbWVzc2FnZSBzaG91bGQgYmUgb2YgdGhlIGZvcm0KCSAqICJBbGwgbW9kdWxlIGRhdGEgd2lsbCBiZSBkZWxldGVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgbW9kdWxlPyIKCSAqCgkgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgZGlhbG9nLCBoYXZlIHRoaXMgbWV0aG9kIHJldHVybiBhIEZBTFNFLCB3aGljaCB3aWxsIGNhdXNlIHRoZQoJICogbW9kdWxlIHRvIHVuaW5zdGFsbCBpbW1lZGlhdGVseSBpZiB0aGUgdXNlciBjbGlja3MgdGhlICJ1bmluc3RhbGwiIGxpbmsuCgkgKi8KCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwoJfQoJCglmdW5jdGlvbiBHZXROb3RpZmljYXRpb25PdXRwdXQoKSB7CgkJaWYgKGNvdW50KCR0aGlzLT5nZXRVcmdlbnRBbGVydHMoKSkgPiAwKSB7CgkJICAkdGV4dCA9ICR0aGlzLT5sYW5nKCdwcm9ibGVtX2FsZXJ0JyxBcnJheSgkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICR0aGlzLT5sYW5nKCdwcm9ibGVtX2xpbmtfdGl0bGUnKSkpKTsKCQkgIHJldHVybiAob2JqZWN0KSBBcnJheSgncHJpb3JpdHknPT4yLCAnaHRtbCc9PiR0ZXh0KTsKCQl9Cgl9CgkKCQoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpIHsKCQkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKCQkkdGhpcy0+YWRkRXZlbnRIYW5kbGVyKCdDb3JlJywnQ29udGVudEVkaXRQb3N0JyxmYWxzZSk7CgkJJHRoaXMtPmFkZEV2ZW50SGFuZGxlcignQ29yZScsJ0NvbnRlbnREZWxldGVQb3N0JyxmYWxzZSk7CQkKCX0KCQoJZnVuY3Rpb24gRG9FdmVudCgkb3JpZ2luLCAkbmFtZSwgJHBhcmFtcykgewoJICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywndHJ1ZScpID09ICd0cnVlJykgewogICAgICAgICR0aGlzLT5jcmVhdGVTaXRlbWFwKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLCd0cnVlJykgPT0gdHJ1ZSk7CiAgICAgIH0KCX0KCQoJZnVuY3Rpb24gZ2V0VXJnZW50QWxlcnRzKCkgewoJCWdsb2JhbCAkZ0NtczsKCQkkYWxlcnRzID0gQXJyYXkoKTsKCQkvLyBFbmFibGUgUHJldHR5IFVSTHMKICAgICAgICBpZiAoKCRnQ21zLT5jb25maWdbJ2Fzc3VtZV9tb2RfcmV3cml0ZSddICE9IDEpICYmICgkZ0Ntcy0+Y29uZmlnWydpbnRlcm5hbF9wcmV0dHlfdXJscyddICE9IDEpKSB7CiAgICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ3N5c3RlbSc7CiAgICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5sYW5nKCdhY3RpdmF0ZV9wcmV0dHlfdXJscycpOwogICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+bGFuZygncHJldHR5X3VybHNfaGVscCcpOwogICAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICAgIH0gICAgICAgCgkJLy8gTm8gTWV0YSB0YWdzIGFyZSBpbnNlcnRlZAoJCWlmICgoJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfc3RhbmRhcmQnLCdmYWxzZScpICE9ICd0cnVlJykgJiYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX2R1YmxpbmNvcmUnLCdmYWxzZScpICE9ICd0cnVlJykpIHsJCQkKCQkJJGFsZXJ0ID0gQXJyYXkoKTsKCQkJJGFsZXJ0Wydncm91cCddID0gJ3NldHRpbmdzJzsKCQkJJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+bGFuZygndXNlX3N0YW5kYXJkX29yX2R1YmxpbmNvcmVfbWV0YScpOwoJCQkkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+bGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CgkJCSRhbGVydHNbXSA9ICRhbGVydDsKCQl9CgkJJGRiID0mICRnQ21zLT5kYjsJCQkJCQkKCQlpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnLCdmYWxzZScpICE9ICd0cnVlJykgewoJCQlpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywnJykgIT0gJycpIHsKCQkJICAvLyBQYWdlcyB3aXRob3V0IGRlc2NyaXB0aW9uCgkJCSAgJHF1ZXJ5ID0gJ1NFTEVDVCAqLGMuY29udGVudF9pZCBBUyBjaWQsIGMudHlwZSBBUyBjdHlwZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IGMgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50X3Byb3BzIHAgT04gKGMuY29udGVudF9pZCA9IHAuY29udGVudF9pZCBBTkQgcC5wcm9wX25hbWUgPSAiJy5zdHJfcmVwbGFjZSgnICcsJ18nLCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpKS4nIikgV0hFUkUgKHAuY29udGVudCBJUyBOVUxMIE9SIHAuY29udGVudCA9ICIiKSBBTkQgYy50eXBlID0gImNvbnRlbnQiIExJTUlUIDAsMjEnOwkJCgkJCSAgJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsJCQkJCgkJCSAgd2hpbGUgKCRwcm9ibGVtID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgewogICAJCSAgCSAgaWYgKCRwcm9ibGVtWydjdHlwZSddID09ICdjb250ZW50JykgewkJCQoJCQkJICAkYWxlcnQgPSBBcnJheSgpOwoJCQkJICAkYWxlcnRbJ2dyb3VwJ10gPSAncGFnZXMnOwoJCQkJICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5sYW5nKCdtZXRhX2Rlc2NyaXB0aW9uX21pc3NpbmcnLEFycmF5KCRwcm9ibGVtWydjb250ZW50X25hbWUnXSkpOwoJCQkJICBpZiAoaXNzZXQoJF9HRVRbJ3NwXyddKSkgewoJCQkJICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9Ii9hZG1pbi9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRwcm9ibGVtWydjaWQnXS4nIj4nLiR0aGlzLT5sYW5nKCdlZGl0X3BhZ2VfdG9fZml4JykuJzwvYT4nOwoJCQkJICB9ZWxzZXsKCQkJCSAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICcnOwoJCQkJICB9CgkJCQkgICRhbGVydHNbXSA9ICRhbGVydDsKCQkJICAJfQoJCQkgIH0KCQkJfWVsc2V7CgkJCSAgJGFsZXJ0ID0gQXJyYXkoKTsKCQkJICAkYWxlcnRbJ2dyb3VwJ10gPSAnc2V0dGluZ3MnOwoJICAgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ3NldF91cF9kZXNjcmlwdGlvbl9ibG9jaycpOwoJICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5sYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKCSAgICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CQoJCQl9CQkKCQl9ZWxzZWlmKHN0cnBvcygkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0bycsJycpLCd7a2V5d29yZHN9JykgPT09IGZhbHNlKSB7CgkJCSRhbGVydCA9IEFycmF5KCk7CgkJCSRhbGVydFsnZ3JvdXAnXSA9ICdzZXR0aW5ncyc7CgkgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ3NldF91cF9hdXRvX2Rlc2NyaXB0aW9uJyk7CgkgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5sYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKCSAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwoJCX0KCQkKICAgICAgICAvLyBzaXRlbWFwLnhtbCBub3Qgd3JpdGVhYmxlCiAgICAgICAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcsJ3RydWUnKSA9PSAndHJ1ZScpIHsKCQkgIGlmICghaXNfd3JpdGVhYmxlKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddIC4gJy9zaXRlbWFwLnhtbCcpKSB7CgkJICAJJGFsZXJ0ID0gQXJyYXkoKTsKCQkgIAkkYWxlcnRbJ2dyb3VwJ10gPSAnc3lzdGVtJzsKICAgICAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+bGFuZygnc2l0ZW1hcF9ub3Rfd3JpdGVhYmxlJyk7CiAgICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmxhbmcoJ2NobW9kX3NpdGVtYXAnKTsKICAgICAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwoJCSAgfQkJCQoJCX0KCQkKICAgICAgICAvLyByb2JvdHMudHh0IG5vdCB3cml0ZWFibGUKCSAgIGlmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnY3JlYXRlX3JvYm90cycsJ3RydWUnKSA9PSAndHJ1ZScpIHsKICAgICAgICAgIGlmICghaXNfd3JpdGVhYmxlKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddIC4gJy9yb2JvdHMudHh0JykpIHsKICAgICAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ3N5c3RlbSc7CiAgICAgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ3JvYm90c19ub3Rfd3JpdGVhYmxlJyk7CiAgICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmxhbmcoJ2NobW9kX3JvYm90cycpOwogICAgICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgICAgICB9ICAgICAgICAgCiAgICAgICAgfQoJCQkJCiAgICAgICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoJywnZmFsc2UnKSA9PSAndHJ1ZScpIHsKICAgICAgICAvLyBObyBPcGVuR3JhcGggYWRtaW4gc2V0CiAgICAgICAgaWYgKCgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zJywnJykgPT0gJycpICYmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb24nLCcnKSA9PSAnJykpIHsKICAgICAgICAJJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAJJGFsZXJ0Wydncm91cCddID0gJ29wZW5ncmFwaCc7CiAgICAgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ25vX29wZW5ncmFwaF9hZG1pbnMnKTsKICAgICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPmxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgICAgfQogICAgICAgIC8vIE5vIE9wZW5HcmFwaCBwYWdlIHR5cGUgc2V0CiAgICAgICAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF90eXBlJywnJykgPT0gJycpIHsKICAgICAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ29wZW5ncmFwaCc7CiAgICAgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ25vX29wZW5ncmFwaF90eXBlJyk7CiAgICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5sYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKICAgICAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICAgIH0KICAgICAgICAvLyBObyBPcGVuR3JhcGggc2l0ZW5hbWUgc2V0CiAgICAgICAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9zaXRlbmFtZScsJycpID09ICcnKSB7CiAgICAgICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdvcGVuZ3JhcGgnOwogICAgICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5sYW5nKCdub19vcGVuZ3JhcGhfc2l0ZW5hbWUnKTsKICAgICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPmxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgICAgfQogICAgICAgIC8vIE5vIE9wZW5HcmFwaCBpbWFnZSBzZXQKICAgICAgICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2ltYWdlJywnJykgPT0gJycpIHsgICAgICAgIAkKICAgICAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ29wZW5ncmFwaCc7CiAgICAgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ25vX29wZW5ncmFwaF9pbWFnZScpOwogICAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+bGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CiAgICAgICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgICB9CiAgICAgICB9CgkJCgkJcmV0dXJuICRhbGVydHM7Cgl9CgkKCWZ1bmN0aW9uIGdldEltcG9ydGFudEFsZXJ0cygpIHsKCQlnbG9iYWwgJGdDbXM7CiAgICAgICAgJGFsZXJ0cyA9IEFycmF5KCk7ICAgICAgICAKICAgICAgICAkZGIgPSYgJGdDbXMtPmRiOwogICAgICAgIC8vIFBhZ2VzIHdpdGggc2hvcnQgZGVzY3JpcHRpb24KICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICosYy5jb250ZW50X2lkIEFTIGNpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IGMgSU5ORVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudF9wcm9wcyBwIE9OIChjLmNvbnRlbnRfaWQgPSBwLmNvbnRlbnRfaWQgQU5EIHAucHJvcF9uYW1lID0gIicuc3RyX3JlcGxhY2UoJyAnLCdfJywkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKSkuJyIpIFdIRVJFIENIQVJfTEVOR1RIKHAuY29udGVudCkgPCA3NSBBTkQgYy50eXBlID0gImNvbnRlbnQiIEFORCBwLmNvbnRlbnQgPD4gIiIgTElNSVQgMCwyMSc7ICAgICAgICAKICAgICAgICAkcmVzdWx0ID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOyAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgd2hpbGUgKCRwcm9ibGVtID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgeyAgICAgICAgICAgIAogICAgICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnZGVzY3JpcHRpb25zJzsKICAgICAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+bGFuZygnbWV0YV9kZXNjcmlwdGlvbl9zaG9ydCcsQXJyYXkoJHByb2JsZW1bJ2NvbnRlbnRfbmFtZSddKSk7CiAgICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9Ii9hZG1pbi9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRwcm9ibGVtWydjaWQnXS4nIj4nLiR0aGlzLT5sYW5nKCdlZGl0X3BhZ2VfdG9fZml4JykuJzwvYT4nOwogICAgICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgICAgfQoKICAgICAgICAvLyBQYWdlcyB3aXRoIGR1cGxpY2F0ZSB0aXRsZQogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgYzEuY29udGVudF9hbGlhcyBBUyBjMW5hbWUsIGMxLmNvbnRlbnRfaWQgQVMgYzFpZCwgYzIuY29udGVudF9hbGlhcyBBUyBjMm5hbWUsIGMyLmNvbnRlbnRfaWQgQVMgYzJpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IGMxIElOTkVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ2NvbnRlbnQgYzIgT04gKGMxLmNvbnRlbnRfbmFtZSA9IGMyLmNvbnRlbnRfbmFtZSBBTkQgYzEuY29udGVudF9pZCA8IGMyLmNvbnRlbnRfaWQpIFdIRVJFIGMxLnR5cGUgPSAiY29udGVudCIgQU5EIGMyLnR5cGUgPSAiY29udGVudCIgTElNSVQgMCwyMSc7CgkgICAgJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIHdoaWxlICgkcHJvYmxlbSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsgICAgICAgICAgICAKICAgICAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ3RpdGxlcyc7CiAgICAgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ2R1cGxpY2F0ZV90aXRsZXMnLEFycmF5KCRwcm9ibGVtWydjMW5hbWUnXSwkcHJvYmxlbVsnYzJuYW1lJ10pKTsKICAgICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iL2FkbWluL2VkaXRjb250ZW50LnBocD9zcF89Jy4kX0dFVFsnc3BfJ10uJyZjb250ZW50X2lkPScuJHByb2JsZW1bJ2MxaWQnXS4nIj4nLiR0aGlzLT5sYW5nKCdlZGl0X3BhZ2UnLEFycmF5KCRwcm9ibGVtWydjMW5hbWUnXSkpLic8L2E+JzsKICAgICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iL2FkbWluL2VkaXRjb250ZW50LnBocD9zcF89Jy4kX0dFVFsnc3BfJ10uJyZjb250ZW50X2lkPScuJHByb2JsZW1bJ2MyaWQnXS4nIj4nLiR0aGlzLT5sYW5nKCdlZGl0X3BhZ2UnLEFycmF5KCRwcm9ibGVtWydjMm5hbWUnXSkpLic8L2E+JzsKICAgICAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBQYWdlcyB3aXRoIGR1cGxpY2F0ZSBkZXNjcmlwdGlvbgoJICAgICRxdWVyeSA9ICdTRUxFQ1QgcDEuY29udGVudF9pZCBBUyBjMWlkLCBwMi5jb250ZW50X2lkIEFTIGMyaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudF9wcm9wcyBwMSBJTk5FUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50X3Byb3BzIHAyIE9OIChwMS5wcm9wX25hbWUgPSBwMi5wcm9wX25hbWUgQU5EIHAxLnByb3BfbmFtZSA9ICInLnN0cl9yZXBsYWNlKCcgJywnXycsJHRoaXMtPmdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywnJykpLiciIEFORCBwMS5jb250ZW50X2lkIDwgcDIuY29udGVudF9pZCBBTkQgcDEuY29udGVudCA8PiAiIiBBTkQgcDIuY29udGVudCA8PiAiIikgV0hFUkUgcDEuY29udGVudCA9IHAyLmNvbnRlbnQgTElNSVQgMCwyMSc7CiAgICAgICAgJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIHdoaWxlICgkcHJvYmxlbSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKICAgICAgICAJJHF1ZXJ5ID0gJ1NFTEVDVCBjb250ZW50X2lkLCBjb250ZW50X25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudCBXSEVSRSBjb250ZW50X2lkID0gJy4kcHJvYmxlbVsnYzFpZCddLicgT1IgY29udGVudF9pZCA9ICcuJHByb2JsZW1bJ2MyaWQnXTsKICAgICAgICAJJHJlc3VsdDEgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgICAgCSRmaXJzdCA9ICRyZXN1bHQxLT5mZXRjaFJvdygpOwogICAgICAgIAkkc2Vjb25kID0gJHJlc3VsdDEtPmZldGNoUm93KCk7ICAgICAgICAgICAgCiAgICAgICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdkZXNjcmlwdGlvbnMnOwogICAgICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5sYW5nKCdkdXBsaWNhdGVfZGVzY3JpcHRpb25zJyxBcnJheSgkZmlyc3RbJ2NvbnRlbnRfbmFtZSddLCRzZWNvbmRbJ2NvbnRlbnRfbmFtZSddKSk7CiAgICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9Ii9hZG1pbi9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRmaXJzdFsnY29udGVudF9pZCddLiciPicuJHRoaXMtPmxhbmcoJ2VkaXRfcGFnZScsQXJyYXkoJGZpcnN0Wydjb250ZW50X25hbWUnXSkpLic8L2E+JzsKICAgICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iL2FkbWluL2VkaXRjb250ZW50LnBocD9zcF89Jy4kX0dFVFsnc3BfJ10uJyZjb250ZW50X2lkPScuJHNlY29uZFsnY29udGVudF9pZCddLiciPicuJHRoaXMtPmxhbmcoJ2VkaXRfcGFnZScsQXJyYXkoJHNlY29uZFsnY29udGVudF9uYW1lJ10pKS4nPC9hPic7CiAgICAgICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgICB9CiAgICAgICAgLy8gTm8gYXV0aG9yIHByb3ZpZGVkCiAgICAgICAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdtZXRhX3B1Ymxpc2hlcicsJycpID09ICcnKSB7CiAgICAgICAgCSRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgCSRhbGVydFsnZ3JvdXAnXSA9ICdzZXR0aW5ncyc7CiAgICAgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ3Byb3ZpZGVfYW5fYXV0aG9yJyk7CiAgICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5sYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKICAgICAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGFsZXJ0czsJCQoJfQoJCglmdW5jdGlvbiBnZXROb3RpY2VBbGVydHMoKSB7CgkJJGFsZXJ0cyA9IEFycmF5KCk7CgkJLy8gTm8gc3RhbmRhcmQgbWV0YQogICAgICAgIGlmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnbWV0YV9zdGFuZGFyZCcsJ2ZhbHNlJykgIT0gJ3RydWUnKSB7CiAgICAgICAgCSRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgCSRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ3VzZV9zdGFuZGFyZF9tZXRhJyk7CiAgICAgICAgCSRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5sYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsgICAgICAgIAkKICAgICAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICAgIH0KICAgICAgICAvLyBTdWJtaXQgYSBzaXRlbWFwCiAgICAgICAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcsJ3RydWUnKSAhPSAndHJ1ZScpIHsKICAgICAgICAJJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+bGFuZygnY3JlYXRlX2Ffc2l0ZW1hcCcpOwogICAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+bGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidzaXRlbWFwc2V0dGluZ3MnKSk7CiAgICAgICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgICB9ZWxzZWlmKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLCd0cnVlJykgIT0gJ3RydWUnKSB7CiAgICAgICAgICAvLyBBdXRvbWF0aWNhbGx5IHN1Ym1pdCB0aGUgc2l0ZW1hcAogICAgICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5sYW5nKCdhdXRvbWF0aWNhbGx5X3VwbG9hZF9zaXRlbWFwJyk7CiAgICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5sYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J3NpdGVtYXBzZXR0aW5ncycpKTsKICAgICAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwkKICAgICAgICB9ICAgICAgICAKICAgICAgICAvLyBDcmVhdGUgYSByb2JvdHMudHh0IGZpbGUKICAgICAgICBpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ2NyZWF0ZV9yb2JvdHMnLCd0cnVlJykgIT0gJ3RydWUnKSB7CiAgICAgICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPmxhbmcoJ2NyZWF0ZV9yb2JvdHMnKTsKICAgICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPmxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nc2l0ZW1hcHNldHRpbmdzJykpOwogICAgICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgICAgfQogICAgICAgIC8vIFNldCBhIGRlZmF1bHQgaW1hZ2UKICAgICAgICByZXR1cm4gJGFsZXJ0czsKCX0KCQpmdW5jdGlvbiBnZXRfa2V5d29yZHMoJHNvdXJjZSwgJG1pbmxlbmd0aCA9IDYpIHsKICAgICRzb3VyY2UgPSBwcmVnX3JlcGxhY2UoJy9ce1teXH1dK1x9L2lzVScsICcnLCB1dGY4X2RlY29kZSgkc291cmNlKSk7CiAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoIlxuIiwiICIsc3RyaXBfdGFncygkc291cmNlKSk7CiAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoJy0nLCcgJywkc291cmNlKTsKICAgICRzb3VyY2UgPSBzdHJfcmVwbGFjZSgnLicsJyAnLCRzb3VyY2UpOwogICAgJHNvdXJjZSA9IHN0cl9yZXBsYWNlKCcsJywnICcsJHNvdXJjZSk7CiAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoJyEnLCcgJywkc291cmNlKTsKICAgICRzb3VyY2UgPSBzdHJfcmVwbGFjZSgnPycsJyAnLCRzb3VyY2UpOwogICAgJHNvdXJjZSA9IHN0cl9yZXBsYWNlKCc6JywnICcsJHNvdXJjZSk7CiAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoJyAgJywnICcsJHNvdXJjZSk7CiAgICAka2V5d29yZHMgPSBleHBsb2RlKCcgJywkc291cmNlKTsKICAgIGZvcmVhY2ggKCRrZXl3b3JkcyBhcyAka2V5PT4kdmFsdWUpIHsKICAgICAgICBpZiAoc3RybGVuKCR2YWx1ZSkgPCAkbWlubGVuZ3RoKSB7CiAgICAgICAgICAgIHVuc2V0KCRrZXl3b3Jkc1ska2V5XSk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgCSRrZXl3b3Jkc1ska2V5XSA9IGh0bWxlbnRpdGllcyh0cmltKCR2YWx1ZSkpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAka2V5d29yZHM7ICAgIAp9CgpmdW5jdGlvbiBnZXRfaGVhZGxpbmVzKCRmaWxlKXsKICAgICAgJGgxdGFncyA9IHByZWdfbWF0Y2hfYWxsKCIvKDxoMS4qPikoXHcuKikoPFwvaDE+KS9pc3htVSIsJGZpbGUsJHBhdHRlcm5zKTsgICAgICAgICAgIAogICAgICAkY29udGVudCA9ICIiOwogICAgICBmb3JlYWNoKCRwYXR0ZXJuc1syXSBhcyAkdGFnKSB7CiAgICAgIAkkY29udGVudCAuPSAiICIuJHRhZzsKICAgICAgfQogICAgICAkaDJ0YWdzID0gcHJlZ19tYXRjaF9hbGwoIi8oPGgyLio+KShcdy4qKSg8XC9oMj4pL2lzeG1VIiwkZmlsZSwkcGF0dGVybnMpOyAgICAgICAgICAgCiAgICAgIGZvcmVhY2goJHBhdHRlcm5zWzJdIGFzICR0YWcpIHsKICAgICAgCSRjb250ZW50IC49ICIgIi4kdGFnOwogICAgICB9CiAgICAgICRoM3RhZ3MgPSBwcmVnX21hdGNoX2FsbCgiLyg8aDMuKj4pKFx3LiopKDxcL2gzPikvaXN4bVUiLCRmaWxlLCRwYXR0ZXJucyk7ICAgICAgICAgICAKICAgICAgZm9yZWFjaCgkcGF0dGVybnNbMl0gYXMgJHRhZykgewogICAgICAJJGNvbnRlbnQgLj0gIiAiLiR0YWc7CiAgICAgIH0KICAgICAgJGg0dGFncyA9IHByZWdfbWF0Y2hfYWxsKCIvKDxoNC4qPikoXHcuKikoPFwvaDQ+KS9pc3htVSIsJGZpbGUsJHBhdHRlcm5zKTsgICAgICAgICAgIAogICAgICBmb3JlYWNoKCRwYXR0ZXJuc1syXSBhcyAkdGFnKSB7CiAgICAgIAkkY29udGVudCAuPSAiICIuJHRhZzsKICAgICAgfQogICAgICAkaDV0YWdzID0gcHJlZ19tYXRjaF9hbGwoIi8oPGg1Lio+KShcdy4qKSg8XC9oNT4pL2lzeG1VIiwkZmlsZSwkcGF0dGVybnMpOyAgICAgICAgICAgCiAgICAgIGZvcmVhY2goJHBhdHRlcm5zWzJdIGFzICR0YWcpIHsKICAgICAgCSRjb250ZW50IC49ICIgIi4kdGFnOwogICAgICB9CiAgICAgICRoNnRhZ3MgPSBwcmVnX21hdGNoX2FsbCgiLyg8aDYuKj4pKFx3LiopKDxcL2g2PikvaXN4bVUiLCRmaWxlLCRwYXR0ZXJucyk7ICAgICAgICAgICAKICAgICAgZm9yZWFjaCgkcGF0dGVybnNbMl0gYXMgJHRhZykgewogICAgICAJJGNvbnRlbnQgLj0gIiAiLiR0YWc7CiAgICAgIH0KICAgICAgcmV0dXJuICRjb250ZW50OyAgICAgICAgICAgCiAgICB9CgpmdW5jdGlvbiBnZXRLZXl3b3JkU3VnZ2VzdGlvbnMoJGNvbnRlbnRfaWQpIHsKCWdsb2JhbCAkZ0NtczsKCSRobSA9ICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CiAgICAkY3Vybm9kZSA9JiAkaG0tPmdldE5vZGVCeUlkKCRjb250ZW50X2lkKTsKICAgICRjdXJjb250ZW50ID0mICRjdXJub2RlLT5HZXRDb250ZW50KCk7CiAgICAkZGVzY3JpcHRpb25faWQgPSBzdHJfcmVwbGFjZSgnICcsJ18nLCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpKTsJICAgIAogICAgCiAgICAkZGIgPSYkZ0Ntcy0+ZGI7CiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iY29udGVudF9wcm9wcyBXSEVSRSBjb250ZW50X2lkID0gJGNvbnRlbnRfaWQgQU5EIHByb3BfbmFtZSA9ICdjb250ZW50X2VuJyI7CiAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkY29udGVudCA9ICRyZXN1bHQtPmZldGNoUm93KCk7CiAgICAKICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJjb250ZW50X3Byb3BzIFdIRVJFIGNvbnRlbnRfaWQgPSAkY29udGVudF9pZCBBTkQgcHJvcF9uYW1lID0gJyRkZXNjcmlwdGlvbl9pZCciOwogICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgJGRlc2NyaXB0aW9uID0gJHJlc3VsdC0+ZmV0Y2hSb3coKTsKICAgIAoJLyogR2VuZXJhdGUga2V5d29yZHMgZnJvbSBwYWdlIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgY29udGVudCAqLwoJJHRpdGxlX2tleXdvcmRzID0gJHRoaXMtPmdldF9rZXl3b3JkcygkY3VyY29udGVudC0+bU5hbWUsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdrZXl3b3JkX21pbmxlbmd0aCcsJzYnKSk7CgkkZGVzY3JpcHRpb25fa2V5d29yZHMgPSAkdGhpcy0+Z2V0X2tleXdvcmRzKCRkZXNjcmlwdGlvblsnY29udGVudCddLCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5sZW5ndGgnLCc2JykpOwkJCQogICAgJGhlYWRsaW5lX2tleXdvcmRzID0gJHRoaXMtPmdldF9rZXl3b3JkcygkdGhpcy0+Z2V0X2hlYWRsaW5lcygkY29udGVudFsnY29udGVudCddKSwgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpKTsgICAgCgkkY29udGVudF9rZXl3b3JkcyA9ICR0aGlzLT5nZXRfa2V5d29yZHMoJGNvbnRlbnRbJ2NvbnRlbnQnXSwgJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpKTsKCQoJJG90aGVyX2tleXdvcmRzID0gQXJyYXkoKTsKCQoJZm9yZWFjaCgkdGl0bGVfa2V5d29yZHMgYXMgJGtleXdvcmQpIHsKCQlpZiAoIWlzc2V0KCRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0pKSB7CgkJCSRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gPSAwOwoJCX0KCSAgICAkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdID0gJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfdGl0bGVfd2VpZ2h0JywnNicpOwoJfQoJZm9yZWFjaCgkZGVzY3JpcHRpb25fa2V5d29yZHMgYXMgJGtleXdvcmQpIHsKCQlpZiAoIWlzc2V0KCRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0pKSB7CgkJCSRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gPSAwOwoJCX0KCSAgICAkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdICs9ICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodCcsJzQnKTsKCX0KCWZvcmVhY2goJGhlYWRsaW5lX2tleXdvcmRzIGFzICRrZXl3b3JkKSB7CgkJaWYgKCFpc3NldCgkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdKSkgewoJCQkkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdID0gMDsKCQl9CgkgICAgJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSArPSAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgna2V5d29yZF9oZWFkbGluZV93ZWlnaHQnLCcyJyk7Cgl9CQoJZm9yZWFjaCgkY29udGVudF9rZXl3b3JkcyBhcyAka2V5d29yZCkgewoJCWlmICghaXNzZXQoJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSkpIHsKCQkJJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSA9IDA7CgkJfQoJICAgICRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gKz0gJHRoaXMtPmdldFByZWZlcmVuY2UoJ2tleXdvcmRfY29udGVudF93ZWlnaHQnLCcxJyk7Cgl9CgkKCWFyc29ydCgkb3RoZXJfa2V5d29yZHMpOwoJCgkkZXhjbHVkZV9saXN0ID0gZXhwbG9kZSgnICcsc3RydG91cHBlcih1dGY4X2RlY29kZSgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgna2V5d29yZF9leGNsdWRlJywnJykpKSk7CQkKCQoJZm9yZWFjaCAoJG90aGVyX2tleXdvcmRzIGFzICRrZXk9PiR2YWx1ZSkgewoJICAgIGlmICgkdmFsdWUgPCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5pbXVtX3dlaWdodCcsJzcnKSkgewoJICAgICAgICB1bnNldCgkb3RoZXJfa2V5d29yZHNbJGtleV0pOwoJICAgIH1lbHNlaWYgKGluX2FycmF5KHN0cnRvdXBwZXIoJGtleSksJGV4Y2x1ZGVfbGlzdCkpIHsKCSAgICAJdW5zZXQoJG90aGVyX2tleXdvcmRzWyRrZXldKTsKCSAgICB9Cgl9CglyZXR1cm4gJG90aGVyX2tleXdvcmRzOwkKfQoKZnVuY3Rpb24gY3JlYXRlUm9ib3RzVFhUKCkgewkKCWdsb2JhbCAkZ0NtczsJCQoJJGZwID0gQGZvcGVuKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddLicvcm9ib3RzLnR4dCcsJ3cnKTsKCS8vIENyZWF0ZSByb2JvdHMudHh0CglpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywndHJ1ZScpID09ICd0cnVlJykgewoJCUBmd3JpdGUoJGZwLCAiU2l0ZW1hcDogIi4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLiIvc2l0ZW1hcC54bWxcblxuIik7Cgl9CglAZndyaXRlKCRmcCwgIlVzZXItYWdlbnQ6ICpcbiIpOyAKICAgIEBmd3JpdGUoJGZwLCAiRGlzYWxsb3c6ICIuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4iL2FkbWluL1xuIik7CglAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uIi9jb250cmliL1xuIik7IAoJQGZ3cml0ZSgkZnAsICJEaXNhbGxvdzogIi4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLiIvZG9jL1xuIik7CglAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uIi9saWIvXG4iKTsKCUBmd3JpdGUoJGZwLCAiRGlzYWxsb3c6ICIuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4iL21vZHVsZXMvXG4iKTsgCglAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uIi9wbHVnaW5zL1xuIik7CglAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uIi9zY3JpcHRzL1xuIik7CglAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uIi90bXAvXG4iKTsKCQoJJGhtID0mICRnQ21zLT5nZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CgkkZGIgPSYgJGdDbXMtPmRiOwoJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZW90b29scyBXSEVSRSBpbmRleGFibGUgPSAwIjsKCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCXdoaWxlICgkcGFnZSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKCQkkY3Vybm9kZSA9JiAkaG0tPmdldE5vZGVCeUlkKCRwYWdlWydjb250ZW50X2lkJ10pOwogICAgICAgICRjdXJjb250ZW50ID0mICRjdXJub2RlLT5HZXRDb250ZW50KCk7CiAgICAgICAgJHVybCA9ICRjdXJjb250ZW50LT5HZXRVUkwoKTsKICAgICAgICBAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiR1cmwuIlxuIik7CQkKCX0KCQoJQGZjbG9zZSgkZnApOwp9CgpmdW5jdGlvbiBjcmVhdGVTaXRlbWFwKCRwdXNoID0gZmFsc2UpIHsKCWdsb2JhbCAkZ0NtczsKICAgICRmcCA9IEBmb3BlbigkZ0Ntcy0+Y29uZmlnWydyb290X3BhdGgnXS4nL3NpdGVtYXAueG1sJywndycpOwogICAgICAgIC8vIENyZWF0ZSBzaXRlbWFwCgogICAgZndyaXRlKCRmcCwgIjw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+XG4iKTsKICAgIGZ3cml0ZSgkZnAsICI8dXJsc2V0IHhtbG5zPSdodHRwOi8vd3d3LnNpdGVtYXBzLm9yZy9zY2hlbWFzL3NpdGVtYXAvMC45Jz5cblxuIik7CiAgICAKICAgICRkYiA9ICRnQ21zLT5kYjsKICAgICRobSA9JiAkZ0Ntcy0+Z2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudCBXSEVSRSBhY3RpdmUgPSAxIE9SREVSIEJZIGhpZXJhcmNoeSBBU0MnOwogICAgJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIAogICAgd2hpbGUgKCRwYWdlID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgeyAgICAJICAgICAgICAgIAkKICAgICAgJGN1cm5vZGUgPSYgJGhtLT5nZXROb2RlQnlJZCgkcGFnZVsnY29udGVudF9pZCddKTsgICAgICAgICAgIAogICAgICAKICAgICAgaWYgKCFpc19vYmplY3QoJGN1cm5vZGUpKSB7CiAgICAgIAljb250aW51ZTsKICAgICAgfQogICAgICAgICAgICAKICAgICAgJGN1cmNvbnRlbnQgPSYgJGN1cm5vZGUtPkdldENvbnRlbnQoKTsKICAgICAgaWYgKG1ldGhvZF9leGlzdHMoJGN1cmNvbnRlbnQsICdHZXRVUkwnKSkgewogICAgICAgICR1cmwgPSAkY3VyY29udGVudC0+R2V0VVJMKCk7CiAgICAgICAgaWYgKCR1cmwgPT0gIiMiKSB7CiAgICAgICAgCWNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgaWYgKHN0cnBvcygkdXJsLCAkZ0Ntcy0+Y29uZmlnWydyb290X3VybCddKSA9PT0gZmFsc2UpIHsKICAgICAgICAJY29udGludWU7CiAgICAgICAgfQogICAgICAKICAgICAgICAkcHJpb3JpdHkgPSA4MDsKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBzdWJzdHJfY291bnQoJHBhZ2VbJ2hpZXJhcmNoeSddLCcuJyk7ICRpKyspIHsgICAgICAKICAgICAgICAgICRwcmlvcml0eSAgPSAkcHJpb3JpdHkgLyAyOwogICAgICAgIH0KICAgICAgICBpZiAoJHBhZ2VbJ2RlZmF1bHRfY29udGVudCddID09IDEpIHsKICAgICAgICAgICRwcmlvcml0eSA9IDEwMDsKICAgICAgICB9CiAgICAgIAogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMgV0hFUkUgY29udGVudF9pZCA9ICcuJHBhZ2VbJ2NvbnRlbnRfaWQnXTsKICAgICAgICAkcmVzdWx0MiA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICAgICAkaWZvID0gJHJlc3VsdDItPmZldGNoUm93KCk7CiAgICAgICAgaWYgKGlzc2V0KCRpbmZvWydwcmlvcml0eSddKSAmJiAoJGluZm9bJ3ByaW9yaXR5J10gIT0gMCkgJiYgKCRpbmZvWydwcmlvcml0eSddICE9ICIiKSkgewogICAgICAJICAkcHJpb3JpdHkgPSAkaW5mb1sncHJpb3JpdHknXTsKICAgICAgICB9CiAgICAgICAgaWYgKCFpc3NldCgkaW5mb1snaW5kZXhhYmxlJ10pIHx8ICgkaW5mb1snaW5kZXhhYmxlJ10gPT0gIiIpIHx8ICgkaW5mb1snaW5kZXhhYmxlJ10gPT0gMSkpIHsgICAgICAKICAgICAgICAgIGZ3cml0ZSgkZnAsICI8dXJsPlxuIik7CiAgICAgICAgICBmd3JpdGUoJGZwLCAiPGxvYz4iLiR1cmwuIjwvbG9jPlxuIik7CiAgICAgICAgICBmd3JpdGUoJGZwLCAiPGxhc3Rtb2Q+Ii5kYXRlKCJZLW0tZCIsIHN0cnRvdGltZSgkcGFnZVsnbW9kaWZpZWRfZGF0ZSddKSkuIjwvbGFzdG1vZD5cbiIpOwogICAgICAgICAgZndyaXRlKCRmcCwgIjxjaGFuZ2VmcmVxPmFsd2F5czwvY2hhbmdlZnJlcT5cbiIpOwogICAgICAgICAgZndyaXRlKCRmcCwgIjxwcmlvcml0eT4iLm51bWJlcl9mb3JtYXQoJHByaW9yaXR5IC8gMTAwLCAxKS4iPC9wcmlvcml0eT5cbiIpOwogICAgICAgICAgZndyaXRlKCRmcCwgIjwvdXJsPlxuXG4iKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGZ3cml0ZSgkZnAsICI8L3VybHNldD4iKTsgICAgICAgICAgICAKICAgIGZjbG9zZSgkZnApOwogICAgaWYgKCRwdXNoKSB7CiAgICAJLy8gUHVzaCBzaXRlbWFwIHRvIGdvb2dsZQogICAgCSRmcCA9IGZvcGVuKCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vd2VibWFzdGVycy90b29scy9waW5nP3NpdGVtYXA9Ii51cmxlbmNvZGUoJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4iL3NpdGVtYXAueG1sIiksInIiKTsKICAgICAgICBmY2xvc2UoJGZwKTsKICAgIH0KfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9J3RleHQvY3NzJz4Ke2xpdGVyYWx9CnAucGFnZXRleHQgewogIGNsZWFyOiBib3RoOwp9CmEgaW1nIHsKICBib3JkZXItc3R5bGU6IG5vbmUgIWltcG9ydGFudDsKfQp7L2xpdGVyYWx9Cjwvc3R5bGU+CgoKeyRtZXNzYWdlfQoKeyR0YWJfaGVhZGVyc30KCnskc3RhcnRfc2VvYWxlcnRzX3RhYn0KeyRhbGVydHN9CnskZW5kX3RhYn0KCnskc3RhcnRfcGFnZWRlc2NyaXB0aW9uc190YWJ9CnskcGFnZXNldHRpbmdzfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X21ldGFzZXR0aW5nc190YWJ9CnskbWV0YV9mb3JtfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X3NpdGVtYXBzZXR0aW5nc190YWJ9Cnskc2l0ZW1hcF9mb3JtfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X2tleXdvcmRzZXR0aW5nc190YWJ9Cnska2V5d29yZF9mb3JtfQp7JGVuZF90YWJ9Cgp7JHRhYl9mb290ZXJzfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
</module>
