<?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>CGLoginSecurity</name>
	<version>1.0</version>
    <mincmsversion>2.1.5</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGV4dHJhIHNlY3VyaXR5IHRvIHNpdGVzIHRoYXQgYXJlIHVzaW5nIHRoZSBGcm9udEVuZFVzZXJzIGFuZCBTZWxmUmVnaXN0cmF0aW9uIG1vZHVsZS4gIFRoZSBhaW0gb2YgdGhpcyBtb2R1bGUgaXMgdG8gZnVydGhlciByZWR1Y2UgYXR0YWNrcywgdXNlbGVzcyBzaWdudXBzLCBhbmQgdG8gZ2V0IGluIHRoZSB3YXkgb2YgdXNlcnMgb3IgYm90cyB3aXRoIG1hbGljaW91cyBpbnRlbnQuPC9wPgoKPGgzPkZlYXR1cmVzOjwvaDM+Cjx1bD4KICA8bGk+V2hpdGVsaXN0IGFueSBJUCBhZGRyZXNzIG9yIElQIGFkZHJlc3Mgc3VibmV0LjwvbGk+CiAgPGxpPkJsYWNrbGlzdCBhbnkgSVAgYWRkcmVzcyBvciBJUCBhZGRyZXNzIHN1Ym5ldC48L2xpPgogIDxsaT5EZXRlY3QgcmVwZWF0ZWQgZmFpbGVkIGxvZ2luIGF0dGVtcHRzIHRvIEZFVSBieSB0aGUgc2FtZSBJUCBhZGRyZXNzLCBhbmQgc3VzcGVuZCB0aGF0IElQIGFkZHJlc3MgZnJvbSBhbnkgbG9naW4gb3IgcmVnaXN0cmF0aW9uIGZvciBhIHBlcmlvZCBvZiB0aW1lLjwvbGk+CiAgPGxpPkRldGVjdCBtdWx0aXBsZSBsb2dpbnMgdG8gdGhlIHNhbWUgRkVVIGFjY291bnQgZnJvbSBtdWx0aXBsZSBJUCBhZGRyZXNzZXMgaW4gYSBzcGVjaWZpYyB0aW1lIHBlcmlvZCwgYW5kIHJlcXVpcmUgdGhhdCB0aGUgYWNjb3VudCBvd25lciByZS12ZXJpZnkgaGltIG9yIGhlcnNlbGYuPC9saT4KICA8bGk+RGV0ZWN0IG11bHRpcGxlIHJlZ2lzdHJhdGlvbnMgdG8gU2VsZnJlZyBieSB0aGUgc2FtZSBJUCBhZGRyZXNzLCBhbmQgc3VzcGVuZCB0aGF0IElQIGFkZHJlc3MgZnJvbSBhbnkgbG9naW4gb3IgcmVnaXN0cmF0aW9uIGZvciBhIHBlcmlvZCBvZiB0aW1lLjwvbGk+CiAgPGxpPldoZW4gYW4gSVAgYWRkcmVzcyBpcyBzdXNwZW5kZWQsIG5vdGlmeSBhZG1pbmlzdHJhdG9ycyB2aWEgZW1haWwuPC9saT4KPC91bD4KCjxoMz5Ib3cgZG8gSSB1c2UgaXQ6PC9oMz4KPHVsPgogIDxsaT5JbnN0YWxsIGFuZCBjb25maWd1cmUgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIGFzIHBlciB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoYXQgbW9kdWxlLgogICAgIDxwPkluIGRldmVsb3BtZW50IG1vZGUgaXQgaXMgY3JpdGljYWwgdG8gdGVzdCB0aGF0IHlvdXIgRkVVIGZ1bmN0aW9uYWxpdHkgaXMgd29ya2luZyBhcyBkZXNpcmVkIGJlZm9yZSBjb250aW51aW5nLjwvcD4KICA8L2xpPgogIDxsaT5PcHRpb25hbGx5LCBpbnN0YWxsIGFuZCBjb25maWd1cmUgdGhlIFNlbGZSZWdpc3RyYXRpb24gbW9kdWxlLjwvbGk+CiAgPGxpPkluc3RhbGwgdGhpcyBtb2R1bGUsIGFuZCB1cGRhdGUgdGhlIHZhcmlvdXMgcHJlZmVyZW5jZXMgdG8geW91ciBsaWtpbmcuPC9saT4KPC91bD4KPHA+PGI+Tm90ZTo8L2I+IFRoaXMgbW9kdWxlIGhhcyBubyBmcm9udGVuZCBpbnRlcmZhY2Ugb2YgaXRzIG93bi4gIEl0IHVzZXMgdGhlIGV2ZW50cyBmcm9tIEZyb250RW5kVXNlcnMgYW5kIFNlbGZSZWdpc3RyYXRpb24gdG8gZG8gaXRzIHdvcmsuPC9wPgoKPGgzPldoaXRlbGlzdHMgYW5kIEJsYWNrbGlzdHM8L2gzPgo8cD5BcyB3aGl0ZWxpc3RlZCBlbnRyaWVzIGFyZSB0ZXN0ZWQgZmlyc3QsIGFueSBtYXRjaGluZyBlbnRyeSBpbiB0aGUgd2hpdGVsaXN0IHdpbGwgb3ZlcnJpZGUgYSBtYXRjaGluZyBlbnRyeSBpbiB0aGUgYmxhY2tsaXN0LjwvcD4KCjxoMz5Dcml0aWNhbCBFdmVudHM8L2gzPgo8cD5Dcml0aWNhbCBldmVudHMgYXJlIHJlcGVhdGVkIGF0dGFja3MgZnJvbSB0aGUgc2FtZSBJUCBhZGRyZXNzLiAgSW4gdGhpcyBjYXNlIHRoZSBhY2NvdW50IGlzIHN1c3BlbmRlZCwgYW5kIHRoZSBhZG1pbmlzdHJhdG9ycyBhcmUgbm90aWZpZWQgdmlhIGVtYWlsLjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zyb250ZW5kdXNlcnMiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDE2LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgo8aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjUzLjEzPC9saT48bGk+RnJvbnRFbmRVc2VycyA9Jmd0OyAyLjIuMC42PC9saT48bGk+U2VsZlJlZ2lzdHJhdGlvbiA9Jmd0OyAxLjEwPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMDxiciAvPg==]]></about>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.53.13</requiredversion>
	</requires>
	<requires>
	  <requiredname>FrontEndUsers</requiredname>
	  <requiredversion>2.2.0.6</requiredversion>
	</requires>
	<requires>
	  <requiredname>SelfRegistration</requiredname>
	  <requiredversion>1.10</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.#action.admin_suspensions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/action.admin_blacklist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdibGFja2xpc3QnKTsKCiR0ZXN0c3RvcmFnZSA9ICR0aGlzLT5fdGVzdF9zdG9yYWdlOwokdGVzdCA9ICR0ZXN0c3RvcmFnZS0+Z2V0X2JsYWNrbGlzdF90ZXN0KCk7CgppZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgJHRleHQgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3RleHQnKTsKICAgICR0ZXN0ID0gJHRlc3QtPndpdGhFbnRyeVRleHQoJHRleHQpOwogICAgJHRlc3RzdG9yYWdlLT5zYXZlX3Rlc3QoJHRlc3QpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fYmxhY2tsaXN0LnRwbCcpOwokdHBsLT5hc3NpZ24oJ3Rlc3QnLCR0ZXN0KTsKJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_criticalevents_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKTmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjcml0aWNhbGV2ZW50cycpOwokc3RvcmFnZSA9ICR0aGlzLT5fdGVzdF9zdG9yYWdlOwokcHJlZnMgPSBudWxsOwp0cnkgewogICAgJHByZWZzID0gJHN0b3JhZ2UtPmdldF9wcmVmX2Zvcigkc3RvcmFnZTo6Q1JJVElDQUxFVkVOVFNfUFJFRik7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAkcHJlZnMgPSBcQ0dMb2dpblNlY3VyaXR5XHV0aWxzOjpHZXRGYWN0b3J5Q3JpdGljYWxFdmVudHNQcmVmKCk7Cn0KCmlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAkcHJlZnNbJ2FkbWluX2dyb3VwJ10gPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2FkbWluX2dyb3VwJyk7CiAgICAkcHJlZnNbJ3N1YmpfdHBsJ10gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3N1YmpfdHBsJyk7CiAgICAkcHJlZnNbJ2JvZHlfdHBsJ10gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2JvZHlfdHBsJyk7CiAgICAkc3RvcmFnZS0+c2V0X3ByZWYoJHByZWZzKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7Cn0KZWxzZSBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3Jlc2V0JykgKSB7CiAgICAkcHJlZnMgPSBcQ0dMb2dpblNlY3VyaXR5XHV0aWxzOjpHZXRGYWN0b3J5Q3JpdGljYWxFdmVudHNQcmVmKCk7CiAgICAkdGhpcy0+X3Rlc3Rfc3RvcmFnZS0+c2V0X3ByZWYoJHByZWZzKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7Cn0KCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2NyaXRpY2FsZXZlbnRzX3RhYi50cGwnKTsKJHRwbC0+YXNzaWduKCdncm91cHMnLFxjZ2VfdXNlcm9wczo6Z2V0X2dyb3VwbGlzdChGQUxTRSkpOwokdHBsLT5hc3NpZ24oJ3ByZWZzJywkcHJlZnMpOwokdHBsLT5kaXNwbGF5KCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_failedfeulogins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKTmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdmYWlsZWRfZmV1X2xvZ2lucycpOwoKJHRlc3RzdG9yYWdlID0gJHRoaXMtPl90ZXN0X3N0b3JhZ2U7CiR0ZXN0ID0gJHRlc3RzdG9yYWdlLT5nZXRfZmV1ZmFpbGVkbG9naW5zX3Rlc3QoKTsKCmlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAkdGVzdCA9ICR0ZXN0LT53aXRoTnVtRmFpbGVkKCBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ251bV9mYWlsZWQnKSApOwogICAgJHRlc3QgPSAkdGVzdC0+d2l0aFRpbWVQZXJpb2QoIFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywndGltZV9wZXJpb2QnKSApOwogICAgJHRlc3RzdG9yYWdlLT5zYXZlX3Rlc3QoJHRlc3QpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZmFpbGVkZmV1bG9naW5zLnRwbCcpOwokdHBsLT5hc3NpZ24oJ3Rlc3QnLCR0ZXN0KTsKJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_feumultipleloginips.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKTmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdmZXVtdWx0aXBsZWxvZ2luaXBzJyk7CgokZmFjdG9yeSA9ICR0aGlzLT5fdGVzdF9zdG9yYWdlOwokdGVzdCA9ICRmYWN0b3J5LT5nZXRfZmV1bXVsdGlwbGVsb2dpbmlwc190ZXN0KCk7CgppZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgJHRlc3QgPSAkdGVzdC0+d2l0aE51bUlwcyggXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdudW1faXBzJykgKTsKICAgICR0ZXN0ID0gJHRlc3QtPndpdGhUaW1lUGVyaW9kKCBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3RpbWVfcGVyaW9kJykgKTsKICAgICRmYWN0b3J5LT5zYXZlX3Rlc3QoJHRlc3QpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZmV1bXVsdGlwbGVsb2dpbmlwcy50cGwnKTsKJHRwbC0+YXNzaWduKCd0ZXN0JywkdGVzdCk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.admin_selfreg_sameip.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKTmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdzZWxmcmVnX3NhbWVpcCcpOwoKJHRlc3RzdG9yYWdlID0gJHRoaXMtPl90ZXN0X3N0b3JhZ2U7CiR0ZXN0ID0gJHRlc3RzdG9yYWdlLT5nZXRfc2VsZnJlZ3NhbWVpcF90ZXN0KCk7CgppZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgJHRlc3QgPSAkdGVzdC0+d2l0aE51bVJlZ3MoXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdudW1fcmVncycpKTsKICAgICR0ZXN0ID0gJHRlc3QtPndpdGhUaW1lUGVyaW9kKFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywndGltZV9wZXJpb2QnKSk7CiAgICAkdGVzdHN0b3JhZ2UtPnNhdmVfdGVzdCgkdGVzdCk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwp9CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9zZWxmcmVnX3NhbWVpcC50cGwnKTsKJHRwbC0+YXNzaWduKCd0ZXN0JywkdGVzdCk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.admin_status_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKTmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdzdGF0dXMnKTsKCiRzdXNwZW5kZWRfdGVzdCA9ICR0aGlzLT5fdGVzdF9zdG9yYWdlLT5nZXRfaXBzdXNwZW5kZWRfdGVzdCgpOwokc3VzcGVuZGVkID0gJHRoaXMtPl9kYW8tPmdldF9zdXNwZW5kZWQoKTsKCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX3N0YXR1c190YWIudHBsJyk7CiR0cGwtPmFzc2lnbignc3VzcGVuZGVkJywkc3VzcGVuZGVkKTsKJHRwbC0+YXNzaWduKCd0aW1lX3BlcmlvZCcsJHN1c3BlbmRlZF90ZXN0LT50aW1lX3BlcmlvZCk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.admin_suspensions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKTmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdzdXNwZW5zaW9ucycpOwoKJHRlc3Rfc3RvcmFnZSA9ICR0aGlzLT5fdGVzdF9zdG9yYWdlOwokdGVzdCA9ICR0ZXN0X3N0b3JhZ2UtPmdldF9pcHN1c3BlbmRlZF90ZXN0KCk7CgppZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgJHNlY29uZHMgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3RpbWVfcGVyaW9kJyk7CiAgICAkdGVzdCA9ICR0ZXN0LT53aXRoVGltZVBlcmlvZCgkc2Vjb25kcyk7CiAgICAkdGVzdF9zdG9yYWdlLT5zYXZlX3Rlc3QoJHRlc3QpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fc3VzcGVuc2lvbnMudHBsJyk7CiR0cGwtPmFzc2lnbigndGVzdCcsJHRlc3QpOwokdHBsLT5kaXNwbGF5KCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_whitelist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCd3aGl0ZWxpc3QnKTsKCiR0ZXN0c3RvcmFnZSA9ICR0aGlzLT5fdGVzdF9zdG9yYWdlOwokdGVzdCA9ICR0ZXN0c3RvcmFnZS0+Z2V0X3doaXRlbGlzdF90ZXN0KCk7CgppZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgJHRleHQgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3RleHQnKTsKICAgICR0ZXN0ID0gJHRlc3QtPndpdGhFbnRyeVRleHQoJHRleHQpOwogICAgJHRlc3RzdG9yYWdlLT5zYXZlX3Rlc3QoJHRlc3QpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fd2hpdGVsaXN0LnRwbCcpOwokdHBsLT5hc3NpZ24oJ3Rlc3QnLCR0ZXN0KTsKJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIHJldHVybjsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3doaXRlbGlzdCcsJHRoaXMtPkxhbmcoJ3RhYl93aGl0ZWxpc3QnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYmxhY2tsaXN0JywkdGhpcy0+TGFuZygndGFiX2JsYWNrbGlzdCcpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdmYWlsZWRfZmV1X2xvZ2lucycsJHRoaXMtPkxhbmcoJ3RhYl9mYWlsZWRfZmV1X2xvZ2lucycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdmZXVtdWx0aXBsZWxvZ2luaXBzJywkdGhpcy0+TGFuZygndGFiX2ZldV9tdWx0aXBsZV9sb2dpbmlwcycpKTsKLy8gbm90ZTogY291bGQgaGF2ZSBhbiBldmVudHMgdGFiIHdpdGggYSBDUlVEIHRvIHNob3cgd2hhdCBoYXBwZW5lZCBhdCB2YXJpb3VzIHRpbWVzCi8vIGJ1dCBzaW5jZSBhbGwgZmFpbGVkIHN0dWZmIGdldHMgYXVkaXRlZC4uLiBpdCdzIG5vdCBjcml0aWNhbGx5IG5lY2Vzc2FyeQplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NlbGZyZWdfc2FtZWlwJywkdGhpcy0+TGFuZygndGFiX3NlbGZyZWdfc2FtZWlwJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3N1c3BlbnNpb25zJywkdGhpcy0+TGFuZygndGFiX3N1c3BlbnNpb25zJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NyaXRpY2FsZXZlbnRzJywkdGhpcy0+TGFuZygndGFiX2NyaXRpY2FsZXZlbnRzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3N0YXR1cycsJHRoaXMtPkxhbmcoJ3RhYl9zdGF0dXMnKSk7CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3doaXRlbGlzdCcsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2FjdGlvbi5hZG1pbl93aGl0ZWxpc3QucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2JsYWNrbGlzdCcsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2FjdGlvbi5hZG1pbl9ibGFja2xpc3QucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2ZhaWxlZF9mZXVfbG9naW5zJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvYWN0aW9uLmFkbWluX2ZhaWxlZGZldWxvZ2lucy5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignZmV1bXVsdGlwbGVsb2dpbmlwcycsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2FjdGlvbi5hZG1pbl9mZXVtdWx0aXBsZWxvZ2luaXBzLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzZWxmcmVnX3NhbWVpcCcsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2FjdGlvbi5hZG1pbl9zZWxmcmVnX3NhbWVpcC5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignc3VzcGVuc2lvbnMnLCRwYXJhbXMpOwppbmNsdWRlKF9fRElSX18uJy9hY3Rpb24uYWRtaW5fc3VzcGVuc2lvbnMucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2NyaXRpY2FsZXZlbnRzJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvYWN0aW9uLmFkbWluX2NyaXRpY2FsZXZlbnRzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignc3RhdHVzJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvYWN0aW9uLmFkbWluX3N0YXR1c190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOw==]]></data>
	</file>
	<file>
	  <filename>/CGLoginSecurity.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZpbmFsIGNsYXNzIENHTG9naW5TZWN1cml0eSBleHRlbmRzIFxDR0V4dGVuc2lvbnMKewogICAgY29uc3QgRVZFTlRfT05JUFNVU1BFTkRFRCA9ICdPbklQU3VzcGVuZGVkJzsKCiAgICBwcml2YXRlICRfaGFuZGxlZDsKICAgIHByb3RlY3RlZCAkX3Rlc3Rfc3RvcmFnZTsKICAgIHByb3RlY3RlZCAkX2RhbzsKICAgIHByb3RlY3RlZCAkX21hbmFnZXI7CgogICAgcHVibGljIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldERlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzEuMCc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBNaW5pbXVtQ21zVmVyc2lvbigpIHsgcmV0dXJuICcyLjEuNSc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKSB7IHJldHVybiBbICdDR0V4dGVuc2lvbnMnID0+ICcxLjUzLjEzJywgJ0Zyb250RW5kVXNlcnMnPT4nMi4yLjAuNicsICdTZWxmUmVnaXN0cmF0aW9uJz0+JzEuMTAnIF07IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEZyb250ZW5kKCkgeyByZXR1cm4gVFJVRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSGFuZGxlc0V2ZW50cygpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X2hhbmRsZWQoJGZsYWcgPSBUUlVFKQogICAgewogICAgICAgICR0aGlzLT5faGFuZGxlZCA9IChib29sKSAkZmxhZzsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2hhbmRsZWQoKQogICAgewogICAgICAgIHJldHVybiAoYm9vbCkgJHRoaXMtPl9oYW5kbGVkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogICAgewogICAgICAgIHJldHVybiB0cnVlOyAvLyB0ZW1wb3JhcnkKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkKICAgIHsKICAgICAgICAkdGhpcy0+X3Rlc3Rfc3RvcmFnZSA9IG5ldyBcQ0dMb2dpblNlY3VyaXR5XENNU01TVGVzdFN0b3JhZ2UoJHRoaXMsJHRoaXMtPkdldERiKCkpOwogICAgICAgICR0aGlzLT5fZGFvID0gbmV3IFxDR0xvZ2luU2VjdXJpdHlcRXZlbnREQU8oJHRoaXMtPkdldERiKCkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBJbml0aWFsaXplRnJvbnRlbmQoKQogICAgewogICAgICAgIGlmKCBpc19vYmplY3QoJHRoaXMtPl90ZXN0X3N0b3JhZ2UpICkgcmV0dXJuOwogICAgICAgICRzbWFydHkgPSBcY21zX3V0aWxzOjpnZXRfc21hcnR5KCk7CiAgICAgICAgaWYoICFpc19vYmplY3QoJHNtYXJ0eSkgKSByZXR1cm47CgogICAgICAgICR0aGlzLT5fdGVzdF9zdG9yYWdlID0gbmV3IFxDR0xvZ2luU2VjdXJpdHlcQ01TTVNUZXN0U3RvcmFnZSgkdGhpcywkdGhpcy0+R2V0RGIoKSk7CiAgICAgICAgJHRoaXMtPl9kYW8gPSBuZXcgXENHTG9naW5TZWN1cml0eVxFdmVudERBTygkdGhpcy0+R2V0RGIoKSk7CgogICAgICAgICR0aGlzLT5fbWFuYWdlciA9IG5ldyBcQ0dMb2dpblNlY3VyaXR5XEV2ZW50TWFuYWdlcigkdGhpcy0+X3Rlc3Rfc3RvcmFnZSk7CgogICAgICAgICRvYnNlcnZlciA9IG5ldyBcQ0dMb2dpblNlY3VyaXR5XEV2ZW50TG9nZ2VyKCk7CiAgICAgICAgJHRoaXMtPl9tYW5hZ2VyLT5hdHRhY2goICRvYnNlcnZlciApOwoKICAgICAgICAkb2JzZXJ2ZXIgPSBuZXcgXENHTG9naW5TZWN1cml0eVxFdmVudFNhdmVyKCR0aGlzLT5fZGFvKTsKICAgICAgICAkdGhpcy0+X21hbmFnZXItPmF0dGFjaCggJG9ic2VydmVyICk7CgogICAgICAgICRtYWlsZXIgPSBuZXcgXGNtc19tYWlsZXI7CiAgICAgICAgJHByZWZzID0gJHRoaXMtPl90ZXN0X3N0b3JhZ2UtPmdldF9wcmVmX2ZvcignQ3JpdGljYWxFdmVudHMnKTsKICAgICAgICAkb2JzZXJ2ZXIgPSBuZXcgXENHTG9naW5TZWN1cml0eVxDcml0aWNhbEV2ZW50RW1haWxOb3RpZmllcigkc21hcnR5LCRtYWlsZXIsJHByZWZzKTsKICAgICAgICAkdGhpcy0+X21hbmFnZXItPmF0dGFjaCggJG9ic2VydmVyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldEV2ZW50SGVscCgkbmFtZSkKICAgIHsKICAgICAgICBpZiggJG5hbWUgIT0gc2VsZjo6RVZFTlRfT05JUFNVU1BFTkRFRCApIHJldHVybjsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2aGVscF8nLiRuYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbigkbmFtZSkKICAgIHsKICAgICAgICBpZiggJG5hbWUgIT0gc2VsZjo6RVZFTlRfT05JUFNVU1BFTkRFRCApIHJldHVybjsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZGVzY18nLiRuYW1lKTsKICAgIH0KCiAgICBmdW5jdGlvbiBIYXNDYXBhYmlsaXR5KCRjYXBhYmlsaXR5LCRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgIHN3aXRjaCggJGNhcGFiaWxpdHkgKSB7CiAgICAgICAgY2FzZSAndGFza3MnOgogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0X3Rhc2tzKCkKICAgIHsKICAgICAgICAkb2JqID0gbmV3IFxDR0xvZ2luU2VjdXJpdHlcQ2xlYW51cEV2ZW50c1Rhc2soKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoKICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhpcyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFuY2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGV4dHJhIHNlY3VyaXR5IHRvIHNpdGVzIHRoYXQgYXJlIHVzaW5nIHRoZSBGcm9udEVuZFVzZXJzIGFuZCBTZWxmUmVnaXN0cmF0aW9uIG1vZHVsZS4gIFRoZSBhaW0gb2YgdGhpcyBtb2R1bGUgaXMgdG8gZnVydGhlciByZWR1Y2UgYXR0YWNrcywgdXNlbGVzcyBzaWdudXBzLCBhbmQgdG8gZ2V0IGluIHRoZSB3YXkgb2YgdXNlcnMgb3IgYm90cyB3aXRoIG1hbGljaW91cyBpbnRlbnQuPC9wPgoKPGgzPkZlYXR1cmVzOjwvaDM+Cjx1bD4KICA8bGk+V2hpdGVsaXN0IGFueSBJUCBhZGRyZXNzIG9yIElQIGFkZHJlc3Mgc3VibmV0LjwvbGk+CiAgPGxpPkJsYWNrbGlzdCBhbnkgSVAgYWRkcmVzcyBvciBJUCBhZGRyZXNzIHN1Ym5ldC48L2xpPgogIDxsaT5EZXRlY3QgcmVwZWF0ZWQgZmFpbGVkIGxvZ2luIGF0dGVtcHRzIHRvIEZFVSBieSB0aGUgc2FtZSBJUCBhZGRyZXNzLCBhbmQgc3VzcGVuZCB0aGF0IElQIGFkZHJlc3MgZnJvbSBhbnkgbG9naW4gb3IgcmVnaXN0cmF0aW9uIGZvciBhIHBlcmlvZCBvZiB0aW1lLjwvbGk+CiAgPGxpPkRldGVjdCBtdWx0aXBsZSBsb2dpbnMgdG8gdGhlIHNhbWUgRkVVIGFjY291bnQgZnJvbSBtdWx0aXBsZSBJUCBhZGRyZXNzZXMgaW4gYSBzcGVjaWZpYyB0aW1lIHBlcmlvZCwgYW5kIHJlcXVpcmUgdGhhdCB0aGUgYWNjb3VudCBvd25lciByZS12ZXJpZnkgaGltIG9yIGhlcnNlbGYuPC9saT4KICA8bGk+RGV0ZWN0IG11bHRpcGxlIHJlZ2lzdHJhdGlvbnMgdG8gU2VsZnJlZyBieSB0aGUgc2FtZSBJUCBhZGRyZXNzLCBhbmQgc3VzcGVuZCB0aGF0IElQIGFkZHJlc3MgZnJvbSBhbnkgbG9naW4gb3IgcmVnaXN0cmF0aW9uIGZvciBhIHBlcmlvZCBvZiB0aW1lLjwvbGk+CiAgPGxpPldoZW4gYW4gSVAgYWRkcmVzcyBpcyBzdXNwZW5kZWQsIG5vdGlmeSBhZG1pbmlzdHJhdG9ycyB2aWEgZW1haWwuPC9saT4KPC91bD4KCjxoMz5Ib3cgZG8gSSB1c2UgaXQ6PC9oMz4KPHVsPgogIDxsaT5JbnN0YWxsIGFuZCBjb25maWd1cmUgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIGFzIHBlciB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoYXQgbW9kdWxlLgogICAgIDxwPkluIGRldmVsb3BtZW50IG1vZGUgaXQgaXMgY3JpdGljYWwgdG8gdGVzdCB0aGF0IHlvdXIgRkVVIGZ1bmN0aW9uYWxpdHkgaXMgd29ya2luZyBhcyBkZXNpcmVkIGJlZm9yZSBjb250aW51aW5nLjwvcD4KICA8L2xpPgogIDxsaT5PcHRpb25hbGx5LCBpbnN0YWxsIGFuZCBjb25maWd1cmUgdGhlIFNlbGZSZWdpc3RyYXRpb24gbW9kdWxlLjwvbGk+CiAgPGxpPkluc3RhbGwgdGhpcyBtb2R1bGUsIGFuZCB1cGRhdGUgdGhlIHZhcmlvdXMgcHJlZmVyZW5jZXMgdG8geW91ciBsaWtpbmcuPC9saT4KPC91bD4KPHA+PGI+Tm90ZTo8L2I+IFRoaXMgbW9kdWxlIGhhcyBubyBmcm9udGVuZCBpbnRlcmZhY2Ugb2YgaXRzIG93bi4gIEl0IHVzZXMgdGhlIGV2ZW50cyBmcm9tIEZyb250RW5kVXNlcnMgYW5kIFNlbGZSZWdpc3RyYXRpb24gdG8gZG8gaXRzIHdvcmsuPC9wPgoKPGgzPldoaXRlbGlzdHMgYW5kIEJsYWNrbGlzdHM8L2gzPgo8cD5BcyB3aGl0ZWxpc3RlZCBlbnRyaWVzIGFyZSB0ZXN0ZWQgZmlyc3QsIGFueSBtYXRjaGluZyBlbnRyeSBpbiB0aGUgd2hpdGVsaXN0IHdpbGwgb3ZlcnJpZGUgYSBtYXRjaGluZyBlbnRyeSBpbiB0aGUgYmxhY2tsaXN0LjwvcD4KCjxoMz5Dcml0aWNhbCBFdmVudHM8L2gzPgo8cD5Dcml0aWNhbCBldmVudHMgYXJlIHJlcGVhdGVkIGF0dGFja3MgZnJvbSB0aGUgc2FtZSBJUCBhZGRyZXNzLiAgSW4gdGhpcyBjYXNlIHRoZSBhY2NvdW50IGlzIHN1c3BlbmRlZCwgYW5kIHRoZSBhZG1pbmlzdHJhdG9ycyBhcmUgbm90aWZpZWQgdmlhIGVtYWlsLjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zyb250ZW5kdXNlcnMiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDE2LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgo=]]></data>
	</file>
	<file>
	  <filename>/event.FrontEndUsers.AfterLoginAuth.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICR0aGlzLT5nZXRfaGFuZGxlZCgpICkgcmV0dXJuOwoKLy8gdXNlciBoYXMgYXV0aGVudGljYXRlZCwgYnV0IGxvZ2luIHByb2Nlc3MgaXMgbm90IGNvbXBsZXRlLgokaXBfYWRkciA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnaXAnLFxjZ2VfdXRpbHM6OmdldF9yZWFsX2lwKCkpOwokZmFjdG9yeSA9ICR0aGlzLT5fdGVzdF9zdG9yYWdlOwoKLy8gZmlyc3QsIGNoZWNrIHdoaXRlbGlzdHMKJHRlc3QgPSAkZmFjdG9yeS0+Z2V0X3doaXRlbGlzdF90ZXN0KCRpcF9hZGRyKTsKaWYoICR0ZXN0LT5wYXNzZXMoKSApIHsKICAgIC8vIGlwIGFkZHJlc3MgaXMgd2hpdGVsaXN0ZWQuLi4uIGRvIG5vdGhpbmcKICAgIHJldHVybjsKfQoKLy8gc2hvdWxkIG5vdCBnZXQgaGVyZSB3aXRoIHN1c3BlbmRlZCwgb3IgYmxhY2tsaXN0ZWQgaXAKCiR0ZXN0ID0gJGZhY3RvcnktPmdldF9mZXVtdWx0aXBsZWxvZ2luaXBzX3Rlc3QoJHBhcmFtc1snaWQnXSk7CmlmKCAkdGVzdC0+cGFzc2VzKCkgKSB7CiAgICAvLyBpcCBhZGRyZXNzIGlzIGNoYW5naW5nIHRvbyBmcmVxdWVudGx5CiAgICAvLyBmb3JjZSB0aGUgdXNlciB0byB2ZXJpZnkgYWdhaW4KICAgICRldiA9IG5ldyBNdWx0aXBsZUZFVUxvZ2luSVBzRXZlbnQoIFsgJ2lkJz0+JHBhcmFtc1snaWQnXSwgJ3JlYXNvbic9PidNdWx0aXBsZSBsb2dpbiBJUHMgRGV0ZWN0ZWQuICBVc2VyIG11c3QgcmV2YWxpZGF0ZSddICk7CiAgICAkdGhpcy0+X21hbmFnZXItPmhhbmRsZV9ldmVudCgkZXYpOwoKICAgICRmZXUgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICRmZXUtPkZvcmNlVmVyaWZ5KCRwYXJhbXNbJ2lkJ10pOwogICAgJGdlbmVyYXRvciA9IG5ldyBcRnJvbnRFbmRVc2Vyc1xlbWFpbF92ZXJpZnlfYXNzaXN0YW50KCRwYXJhbXNbJ2lkJ10pOwogICAgJGdlbmVyYXRvci0+c2VuZCgpOwoKICAgICRwYXJhbXNbJ2FsbG93J10gPSBGQUxTRTsKICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdtc2dfc3VzcGljaW91c192ZXJpZnknKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/event.FrontEndUsers.BeforeLogin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPkluaXRpYWxpemVGcm9udGVuZCgpOwokaXBfYWRkciA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnaXAnLFxjZ2VfdXRpbHM6OmdldF9yZWFsX2lwKCkpOwokZmFjdG9yeSA9ICR0aGlzLT5fdGVzdF9zdG9yYWdlOwoKLy8gZmlyc3QsIGNoZWNrIHdoaXRlbGlzdHMKJHRlc3QgPSAkZmFjdG9yeS0+Z2V0X3doaXRlbGlzdF90ZXN0KCRpcF9hZGRyKTsKaWYoICR0ZXN0LT5wYXNzZXMoKSApIHsKICAgIC8vIGlwIGFkZHJlc3MgaXMgd2hpdGVsaXN0ZWQuLi4uIGRvIG5vdGhpbmcKICAgIHJldHVybjsKfQoKLy8gc2Vjb25kLCBjaGVjayBibGFjayBsaXN0cwokdGVzdCA9ICRmYWN0b3J5LT5nZXRfYmxhY2tsaXN0X3Rlc3QoJGlwX2FkZHIpOwppZiggJHRlc3QtPnBhc3NlcygpICkgewogICAgLy8gdXNlciBpcyBibGFja2xpc3RlZC4KICAgICR0aGlzLT5zZXRfaGFuZGxlZCgpOwoKICAgICRldmVudCA9IG5ldyBCbGFja0xpc3RFdmVudCggWyAnaXBfYWRkcic9PiRpcF9hZGRyLCAncmVhc29uJz0+J0F0dGVtcHRlZCBsb2dpbiBmcm9tIGJsYWNrbGlzdGVkIElQIGFkZHJlc3MnIF0gKTsKICAgICR0aGlzLT5fbWFuYWdlci0+aGFuZGxlX2V2ZW50KCRldmVudCk7CgogICAgJHBhcmFtc1snYWxsb3cnXSA9ICdmYWxzZSc7CiAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbXNnX2JsYWNrbGlzdGVkJyk7CiAgICByZXR1cm47Cn0KCi8vIGFyZSB3ZSBzdXNwZW5kZWQ/CiR0ZXN0ID0gJGZhY3RvcnktPmdldF9pcHN1c3BlbmRlZF90ZXN0KCRpcF9hZGRyKTsKaWYoICR0ZXN0LT5wYXNzZXMoKSApIHsKICAgIC8vIHdvb3BzLi4udGhpcyBpcCBhZGRyZXNzIGlzIHN1c3BlbmRlZAogICAgJHRoaXMtPnNldF9oYW5kbGVkKCk7CgogICAgJGV2ZW50ID0gbmV3IElQU3VzcGVuc2lvbkV2ZW50KCBbICdpcF9hZGRyJz0+JGlwX2FkZHIsICdyZWFzb24nPT4nQXR0ZW1wdGVkIGxvZ2luIGZyb20gc3VzcGVuZGVkIElQIGFkZHJlc3MnIF0gKTsKICAgICR0aGlzLT5fbWFuYWdlci0+aGFuZGxlX2V2ZW50KCRldmVudCk7CgogICAgJHBhcmFtc1snYWxsb3cnXSA9ICdmYWxzZSc7CiAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbXNnX3N1c3BlbmRlZCcpOwogICAgcmV0dXJuOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/event.FrontEndUsers.OnLoginFailed.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmlmKCAkdGhpcy0+Z2V0X2hhbmRsZWQoKSApIHJldHVybjsKCi8vIG9uIGEgZmFpbGVkIGxvZ2luLCB3ZSByZWNvcmQgYSBuZXcgZXZlbnQuCiRpcF9hZGRyID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdpcCcsXGNnZV91dGlsczo6Z2V0X3JlYWxfaXAoKSk7CgovLyBpZiB0aGUgaXAgaXMgYWxyZWFkeSBzdXNwZW5kZWQsIGRvIG5vdGhpbmcKJGZhY3RvcnkgPSAkdGhpcy0+X3Rlc3Rfc3RvcmFnZTsKJHRlc3QgPSAkZmFjdG9yeS0+Z2V0X2lwc3VzcGVuZGVkX3Rlc3QoJGlwX2FkZHIpOwppZiggJHRlc3QtPnBhc3NlcygpICkgewogICAgcmV0dXJuOwp9CgokcGFybXMgPSBbICdpcF9hZGRyJz0+JGlwX2FkZHIsICd1c2VybmFtZSc9PlxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywndXNlcm5hbWUnKSBdOwokZXZlbnQgPSBuZXcgRmFpbGVkRkVVTG9naW5FdmVudCggJHBhcm1zICk7CiR0aGlzLT5fbWFuYWdlci0+aGFuZGxlX2V2ZW50KCAkZXZlbnQgKTsKCi8vIG5leHQsIHdlIHRlc3QgaWYgd2UgaGF2ZSB0b28gbWFueSBvZiB0aGVzZSBldmVudHMsCiR0ZXN0ID0gJGZhY3RvcnktPmdldF9mZXVmYWlsZWRsb2dpbnNfdGVzdCgkaXBfYWRkcik7CmlmKCAkdGVzdC0+cGFzc2VzKCkgKSB7CiAgICAvLyBvb3BzLCB0aGlzIGlwIGlzIG5vdyBzdXNwZW5kZWQuCiAgICAkcGFybXNbJ3JlYXNvbiddID0gJ1RvbyBtYW55IGZhaWxlZCBsb2dpbiBhdHRlbXB0cyBmcm9tIHRoZSBzYW1lIElQIGFkZHJlc3MnOwogICAgJGV2ZW50ID0gbmV3IElQU3VzcGVuc2lvbkNyZWF0ZWRFdmVudCggJHBhcm1zICk7CiAgICAkdGhpcy0+X21hbmFnZXItPmhhbmRsZV9ldmVudCgkZXZlbnQpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/event.SelfRegistration.beforeNewUser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGlwX2FkZHIgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2lwJyxcY2dlX3V0aWxzOjpnZXRfcmVhbF9pcCgpKTsKJGZhY3RvcnkgPSAkdGhpcy0+X3Rlc3Rfc3RvcmFnZTsKCi8vIGZpcnN0LCBjaGVjayB3aGl0ZWxpc3RzCiR0ZXN0ID0gJGZhY3RvcnktPmdldF93aGl0ZWxpc3RfdGVzdCgkaXBfYWRkcik7CmlmKCAkdGVzdC0+cGFzc2VzKCkgKSB7CiAgICAvLyBpcCBhZGRyZXNzIGlzIHdoaXRlbGlzdGVkLi4uLiBkbyBub3RoaW5nCiAgICByZXR1cm47Cn0KCi8vIHNlY29uZCwgY2hlY2sgYmxhY2sgbGlzdHMKJHRlc3QgPSAkZmFjdG9yeS0+Z2V0X2JsYWNrbGlzdF90ZXN0KCRpcF9hZGRyKTsKaWYoICR0ZXN0LT5wYXNzZXMoKSApIHsKICAgIC8vIHVzZXIgaXMgYmxhY2tsaXN0ZWQuCiAgICAkdGhpcy0+c2V0X2hhbmRsZWQoKTsKCiAgICAkZXZlbnQgPSBuZXcgQmxhY2tMaXN0RXZlbnQoIFsgJ2lwX2FkZHInPT4kaXBfYWRkciBdICk7CiAgICAkdGhpcy0+X21hbmFnZXItPmhhbmRsZV9ldmVudCgkZXZlbnQpOwoKICAgICRwYXJhbXNbJ3Bhc3MnXSA9ICdmYWxzZSc7CiAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbXNnX2JsYWNrbGlzdGVkJyk7CiAgICByZXR1cm47Cn0KCi8vIGFyZSB3ZSBzdXNwZW5kZWQ/CiR0ZXN0ID0gJGZhY3RvcnktPmdldF9pcHN1c3BlbmRlZF90ZXN0KCRpcF9hZGRyKTsKaWYoICR0ZXN0LT5wYXNzZXMoKSApIHsKICAgIC8vIHdvb3BzLi4udGhpcyBpcCBhZGRyZXNzIGlzIHN1c3BlbmRlZAogICAgJHRoaXMtPnNldF9oYW5kbGVkKCk7CgogICAgJGV2ZW50ID0gbmV3IElQU3VzcGVuc2lvbkV2ZW50KCBbJ2lwX2FkZHInPT4kaXBfYWRkciwgJ3JlYXNvbic9PidBdHRlbXB0ZWQgcmVnaXN0cmF0aW9uIGZyb20gc3VzcGVuZGVkIElQIGFkZHJlc3MnXSApOwogICAgJHRoaXMtPl9tYW5hZ2VyLT5oYW5kbGVfZXZlbnQoKTsKCiAgICAkcGFyYW1zWydwYXNzJ10gPSAnZmFsc2UnOwogICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ21zZ19zdXNwZW5kZWQnKTsKICAgIHJldHVybjsKfQoKLy8gbm93IHdlIHJlY29yZCBhIG5ldyBldmVudAokcGFybXMgPSBbICdpcF9hZGRyJz0+JGlwX2FkZHIsICd1c2VybmFtZSc9PlxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywndXNlcm5hbWUnKSBdOwokZXZlbnQgPSBuZXcgU2VsZnJlZ1JlZ2lzdHJhdGlvbkV2ZW50KCAkcGFybXMgKTsKJHRoaXMtPl9tYW5hZ2VyLT5oYW5kbGVfZXZlbnQoKTsKCi8vIG5leHQsIHdlIHRlc3QgaWYgd2UgaGF2ZSB0b28gbWFueSBvZiB0aGVzZSBldmVudHMKJHRlc3QgPSAkZmFjdG9yeS0+Z2V0X3NlbGZyZWdzYW1laXBfdGVzdCgkaXBfYWRkcik7CmlmKCAkdGVzdC0+cGFzc2VzKCkgKSB7CiAgICAvLyBvb3BzLCB0aGlzIGlwIGlzIG5vdyBzdXNwZW5kZWQuCiAgICAkcGFybXNbJ3JlYXNvbiddID0gJ1RvbyBtYW55IHJlZ2lzdHJhdGlvbnMgZnJvbSB0aGUgc2FtZSBJUCBhZGRyZXNzJzsKICAgICRldmVudCA9IG5ldyBJUFN1c3BlbnNpb25DcmVhdGVkRXZlbnQoICRwYXJtcyApOwogICAgJHRoaXMtPl9tYW5hZ2VyLT5oYW5kbGVfZXZlbnQoJGV2ZW50KTsKCiAgICAkcGFyYW1zWydwYXNzJ10gPSBGQUxTRTsKICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdtc2dfc3VzcGVuZGVkJyk7CiAgICByZXR1cm47Cn0K]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgTG9naW4gU2VjdXJpdHkgRXh0ZW5zaW9ucyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1sncmVzZXQnXSA9ICdSZXNldCc7CiRsYW5nWyd0YXNrX2NsZWFudXBldmVudHMnXSA9ICdSZW1vdmUgb2xkIENHTG9naW5TZWN1cml0eSBldmVudHMnOwokbGFuZ1snaW5mb19jdXJfc3VzcGVuZGVkX2lwcyddID0gJ1Nob3dpbmcgdGhlIGxhc3QgNTAgc3VzcHNlbnNpb25zLi4uIHRoZXJlIGFyZSBwcm9iYWJseSBtb3JlIGluIHRoZSBkYXRhYmFzZS4gIEFjdGl2ZSBzdXNwZW5zaW9ucyBhcmUgaGlsaWdodGVkJzsKJGxhbmdbJ3N1c3BlbmRlZF9pcHMnXSA9ICdTdXNwZW5kZWQgSVAgQWRkcmVzc2VzJzsKJGxhbmdbJ2lwX2FkZHInXSA9ICdJUCBBZGRyZXNzJzsKJGxhbmdbJ3doZW4nXSA9ICdXaGVuJzsKJGxhbmdbJ3VudGlsJ10gPSAnVW50aWwnOwokbGFuZ1sncmVhc29uJ10gPSAnUmVhc29uJzsKJGxhbmdbJ3RhYl9jcml0aWNhbGV2ZW50cyddID0gJ09uIENyaXRpY2FsIEV2ZW50cyc7CiRsYW5nWydpbmZvX2NyaXRpY2FsZXZlbnRzX3RhYiddID0gJ0luIHRoaXMgdGFiIHlvdSBjYW4gY29uZmlndXJlIHRoZSBub3RpZmljYXRpb25zIHRoYXQgd2lsbCBiZSBzZW50IHdoZW4gYSBjcml0aWNhbCBldmVudCBvY2N1cnMgaW4gdGhpcyBtb2R1bGUuJzsKJGxhbmdbJ2FkbWluX2dyb3VwJ10gPSAnQWRtaW4gR3JvdXAnOwokbGFuZ1snZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QnOwokbGFuZ1snZW1haWxfYm9keSddID0gJ0VtYWlsIEJvZHknOwokbGFuZ1snaW5mb19jcml0aWNhbGV2ZW50c19hZG1pbmdyb3VwJ10gPSAnTWVtYmVycyBvZiB0aGlzIGFkbWluaXN0cmF0b3IgZ3JvdXAgd2lsbCByZWNlaXZlIGFuIGVtYWlsJzsKJGxhbmdbJ2luZm9fY3JpdGljYWxldmVudHNfc3Vial90cGwnXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIHN1YmplY3QgcG9ydGlvbiBvZiB0aGUgZW1haWwuJzsKJGxhbmdbJ2luZm9fY3JpdGljYWxldmVudHNfYm9keV90cGwnXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGJvZHkgcG9ydGlvbiBvZiB0aGUgSFRNTCBlbWFpbC4nOwokbGFuZ1snaW5mb193aGl0ZWxpc3RpbmcnXSA9ICdXaGl0ZWxpc3RlZCBJUCBhZGRyZXNzZXMgYXJlIGV4Y2x1ZGVkIGZyb20gYWxsIHNlY3VyaXR5IHRlc3RpbmcuJzsKJGxhbmdbJ2luZm9fZmFpbGVkZmV1bG9naW5zJ10gPSAnVGhpcyBldmVudCBvY2N1cnMgd2hlbiBhIHVzZXIgZW50ZXJzIGludmFsaWQgY3JlZGVudGlhbHMgZm9yIHRoZSBGRVUgbG9naW4gc2NyZWVuIGZyb20gdGhlIHNhbWUgSVAgYWRkcmVzcyBvdmVyIGEgc3BlY2lmaWMgYW1vdW50IG9mIHRpbWUuICBXaGVuIHRoaXMgZXZlbnQgb2NjdXJzIHRoZSBJUCBhZGRyZXNzIGlzIHN1c3BlbmRlZCwgcHJldmVudGluZyBmdXJ0aGVyIGxvZ2luIGF0dGVtcHRzIGZvciBhIHBlcmlvZCBvZiB0aW1lLic7CiRsYW5nWydpbmZvX2ZldW11bHRpcGxlbG9naW5pcHMnXSA9ICdUaGlzIGV2ZW50IG9jY3VycyB3aGVuIG11bHRpcGxlIHVzZXJzIGZyb20gZGlmZmVyZW50IElQIGFkZHJlc3NlcyBsb2dpbiB0byB0aGUgc2FtZSBGRVUgYWNjb3VudCB3aXRoaW4gYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lLiAgV2hlbiB0aGlzIGV2ZW50IG9jY3VycywgdGhlIHVzZXIgY2Fubm90IGxvZ2luIGFnYWluIHVudGlsIHRoZXkgdmVyaWZ5IHRoZWlyIGFjY291bnQgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2luZm9fc3VzcGVuc2lvbnMnXSA9ICdXaGVuIHZhcmlvdXMgb3RoZXIgc2VjdXJpdHkgZXZlbnRzIG9jY3VyIChpLmU6IG11bHRpcGxlIGZhaWxlZCBsb2dpbnMpLCBhbiBJUCBhZGRyZXNzIHdpbGwgYmUgdGVtcG9yYXJpbHkgc3VzcGVuZGVkLiAgVGhpcyB0YWIgYWxsb3dzIGNvbmZpZ3VyaW5nIHRoZSBwYXJhbWV0ZXJzIG9mIHRoYXQgc3VzcGVuc2lvbi4nOwokbGFuZ1snaW5mb19zZWxmcmVnX3NhbWVpcCddID0gJ1RoaXMgZXZlbnQgb2NjdXJzIHdoZW4gYSB2aXNpdG9yIHJlcGVhdGVkbHkgcmVnaXN0ZXJzIGFjY291bnRzIHdpdGggU2VsZnJlZ2lzdHJhdGlvbiBmcm9tIHRoZSBzYW1lIElQIGFkZHJlc3MuICBXaGVuIGl0IG9jY3VycywgdGhlIElQIGFkZHJlc3MgaXMgYXV0b21hdGljYWxseSBzdXNwZW5kZWQuJzsKJGxhbmdbJ2luZm9fc2VsZnJlZ3NhbWVpcF9udW1yZWdzJ10gPSAnVGhlIG51bWJlciBvZiByZWdpc3RyYXRpb25zIHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBldmVudCc7CiRsYW5nWydpbmZvX3NlbGZyZWdzYW1laXBfdGltZXBlcmlvZCddID0gJ1RoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byB0ZXN0IGZvciByZXBlYXRlZCByZWVnaXN0cmF0aW9ucyc7CgokbGFuZ1snaW5mb19zdXNwZW5zaW9uc190aW1lcGVyaW9kJ10gPSAnVGhlIG51bWJlciBvZiBzZWNvbmRzIHRoYXQgYW4gSVAgYWRkcmVzcyB3aWxsIGJlIHN1c3BlbmRlZCBmcm9tIGxvZ2luIG9yIHJlZ2lzdHJhdGlvbic7CgokbGFuZ1snYmxhY2tsaXN0J10gPSAnQmxhY2tsaXN0ZWQgSVAgQWRkcmVzc2VzJzsKJGxhbmdbJ3doaXRlbGlzdCddID0gJ1doaXRlbGlzdGVkIElQIEFkZHJlc3Nlcyc7CiRsYW5nWydtc2dfYmxhY2tsaXN0ZWQnXSA9ICdXZSBhcmUgc29ycnksIGJ1dCB5b3UgY2Fubm90IGxvZ2luIChDR0xTX0JMMSknOwokbGFuZ1snbXNnX3N1c3BpY2lvdXNfdmVyaWZ5J10gPSAnSG1tbS4gIFNvbWV0aGluZyBpbnRlcmVzdGluZyBpcyBnb2luZyBvbiBoZXJlLiAgUGxlYXNlIHZlcmlmeSB5b3VyIGlkZW50aXR5LiAgV2UgaGF2ZSBzZW50IHlvdSBhIGNvZGUgdG8gYWlkZSBpbiB0aGlzIHByb2Nlc3MuJzsKJGxhbmdbJ21zZ19zdXNwZW5kZWQnXSA9ICdXZSBhcmUgc29ycnkuICBEdWUgdG8gc2VjdXJpdHkgY29uY2VybnMgdGhpcyBJUCBhZGRyZXNzIGhhcyBiZWVuIHRlbXBvcmFyaWx5IGJsb2NrZWQgZnJvbSBwZXJmb3JtaW5nIHRoaXMgYWN0aW9uLiAgUGxlYXNlIHRyeSBhZ2FpbiBhZnRlciBzb21lIHRpbWUgKENHTFNfU0lQMSknOwokbGFuZ1snZW5hYmxlZCddID0gJ0VuYWJsZWQnOwokbGFuZ1snbnVtYmVyX29mX2V2ZW50cyddID0gJ051bWJlciBvZiBFdmVudHMnOwokbGFuZ1sndGltZWxpbWl0J10gPSAnVGltZSBMaW1pdCc7CiRsYW5nWydtaW51dGVzJ10gPSAnbWludXRlcyc7CiRsYW5nWydzdXNwZW5kX3RpbWUnXSA9ICdJUCBTdXNwZW5zaW9uIHRpbWUnOwokbGFuZ1snaW5mb19zdXNwZW5kJ10gPSAnVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBtaW51dGVzIGluIHdoaWNoIHRoZSBpcCBhZGRyZXNzIGlzIHN1c3BlbmRlZCAoY2Fubm90IGxvZyBpbikuQSB2YWx1ZSBvZiAwIGRpc2FibGVzIHRoaXMgZmVhdHVyZSc7CiRsYW5nWydub3RpZnlfYWRtaW4nXSA9ICdOb3RpZnkgQWRtaW5pc3RyYXRvcnMnOwokbGFuZ1sndGFiX2JsYWNrbGlzdCddID0gJ0JsYWNrbGlzdGVkIElQIEFkZHJlc3Nlcyc7CiRsYW5nWyd0YWJfZmV1X211bHRpcGxlX2xvZ2luaXBzJ10gPSAnRkVVIExvZ2lucyBmcm9tIE11bHRpcGxlIElQcyc7CiRsYW5nWyd0YWJfZmFpbGVkX2ZldV9sb2dpbnMnXSA9ICdSZXBlYXRlZCBGYWlsZWQgRkVVIExvZ2lucyc7CiRsYW5nWyd0YWJfc2VsZnJlZ19zYW1laXAnXSA9ICdSZXBlYXRlZCBTZWxmcmVnIFJlZ2lzdHJhdGlvbnMnOwokbGFuZ1sndGFiX3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWyd0YWJfc3VzcGVuc2lvbnMnXSA9ICdTdXNwZW5zaW9ucyc7CiRsYW5nWyd0YWJfd2hpdGVsaXN0J10gPSAnV2hpdGVsaXN0ZWQgSVAgQWRkcmVzc2VzJzsKJGxhbmdbJ3NlY29uZHMnXSA9ICdTZWNvbmRzJzsKJGxhbmdbJ2luZm9fZmFpbGVkZmV1bG9naW5fbnVtZXZlbnRzJ10gPSAnVGhlIG51bWJlciBvZiBmYWlsZWQgbG9naW4gZXZlbnRzIHRvIHRlc3QgZm9yLiAgQSB2YWx1ZSBvZiAwIHdpbGwgZGlzYWJsZSB0aGUgdGVzdCBlbnRpcmVseS4nOwokbGFuZ1snaW5mb19mYWlsZWRmZXVsb2dpbl90aW1lcGVyaW9kJ10gPSAnVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHRlc3QgZm9yIHJlcGVhdGVkIGZhaWxlZCBsb2dpbnMgZnJvbSB0aGUgc2FtZSBJUCBhZGRyZXNzLiAgQSB2ZWx1ZSBvZiAwIHdpbGwgZGlzYWJsZSB0aGUgdGVzdCBlbnRpcmVseSc7CiRsYW5nWydpbmZvX2JsYWNrbGlzdGluZyddID0gJ0JsYWNrbGlzdGVkIElQIGFkZHJlc3NlcyBjYW5ub3QgcGFzcyBhbnkgb2YgdGhlIGFzc29jaWF0ZWQgdGVzdHMuICBJZiBhbiBJUCBhZGRyZXNzIGlzIGJvdGggYmxhY2tsaXN0ZWQgYW5kIHdoaXRlbGlzdGVkIHRoZSBhZGRyZXNzIHdpbGwgYmUgYXNzdW1lZCB0byBiZSB3aGl0ZWxpc3RlZC4nOwokbGFuZ1snaW5mb193aGl0ZWxpc3RfdGV4dCddID0gJ0VudGVyIG9uZSBlbnRyeSBwZXIgbGluZS4gIFN1Ym5ldCByYW5nZXMgYXJlIGFjY2VwdGVkLiAgaS5lOiAgMTkyLjE2OC41LjAvMjQnOwokbGFuZ1snaW5mb19ibGFja2xpc3RfdGV4dCddID0gJ0VudGVyIG9uZSBlbnRyeSBwZXIgbGluZS4gIFN1Ym5ldCByYW5nZXMgYXJlIGFjY2VwdGVkLiAgaS5lOiAgMTkyLjE2OC41LjAvMjQnOwokbGFuZ1snbnVtYmVyX29mX2lwcyddID0gJ051bWJlciBvZiBkaWZmZXJlbnQgSVAgYWRkcmVzc2VzJzsKJGxhbmdbJ2luZm9fZmV1bXVsdGlwbGVsb2dpbmlwc19udW1pcHMnXSA9ICdTcGVjaWZ5IHRoZSBudW1iZXIgb2YgZGlmZmVyZW50IElQIGFkZHJlc3NlcyB0aGF0IG5lZWQgdG8gYmUgZW50ZXJlZCB0byB0cmlnZ2VyIHRoZSBldmVudCc7CiRsYW5nWydpbmZvX2ZldW11bHRpcGxlbG9naW5pcHNfdGltZXBlcmlvZCddID0gJ1NwZWNpZnkgdGhlIHRpbWUgcGVyaW9kIChpbiBzZWNvbmRzKSB0byBkZXRlY3QgZGlmZmVyZW50IGlwIGFkZHJlc3Nlcyc7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.BlackListEvent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIEJsYWNrTGlzdEV2ZW50IGV4dGVuZHMgRXZlbnQKewogICAgY29uc3QgV0hBVCA9ICdJUF9CTEFDS0xJU1RFRCc7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRwYXJhbXMpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydyZWFzb24nXSkgKSAkcGFyYW1zWydyZWFzb24nXSA9ICdBY2Nlc3MgZnJvbSBibGFja2xpc3RlZCBJUCBhZGRyZXNzJzsKICAgICAgICAkcGFyYW1zWyd3aGF0J10gPSBzZWxmOjpXSEFUOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OnZhbGlkYXRlKCk7CiAgICAgICAgaWYoICR0aGlzLT53aGF0ICE9IHNlbGY6OldIQVQgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHdoYXQgdmFsdWUgZm9yIGEgJy5fX0NMQVNTX18pOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.BlacklistTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIEJsYWNrbGlzdFRlc3QgZXh0ZW5kcyBUZXN0CnsKICAgIHByaXZhdGUgJF9kYXRhID0gWyAnaXBfYWRkcic9Pm51bGwsICdlbnRyeXRleHQnPT5udWxsIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFByZWZlcmVuY2VzICRwYXJhbXMpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAnaXBfYWRkcic6CiAgICAgICAgICAgIGNhc2UgJ2VudHJ5dGV4dCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpcF9hZGRyJzoKICAgICAgICBjYXNlICdlbnRyeXRleHQnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2RhdGFbJGtleV0pOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgZ2V0dGFibGUgbWVtYmVyIG9mICIuX19DTEFTU19fKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGhFbnRyeVRleHQoJHRleHQpCiAgICB7CiAgICAgICAgJG9iaiA9IGNsb25lICR0aGlzOwogICAgICAgICRvYmotPl9kYXRhWydlbnRyeXRleHQnXSA9IHRyaW0oJHRleHQpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGVuYWJsZWQoKQogICAgewogICAgICAgIHJldHVybiAoJHRoaXMtPmVudHJ5dGV4dCAhPSAnJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHBhc3NlcygpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lwX2FkZHInXSkgfHwgISR0aGlzLT5fZGF0YVsnaXBfYWRkciddICkgewogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBpcCBhZGRyZXNzIHBhc3NlZCB0byAnLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgICAgIGlmKCAkdGhpcy0+ZW50cnl0ZXh0ICkgewogICAgICAgICAgICAkdGVzdGVyID0gbmV3IGlwQWRkcmVzc1Rlc3RlcigkdGhpcy0+ZW50cnl0ZXh0KTsKICAgICAgICAgICAgcmV0dXJuICR0ZXN0ZXItPm1hdGNoZXMoJHRoaXMtPmlwX2FkZHIpOwogICAgICAgIH0KICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CleanupEventsTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIENsZWFudXBFdmVudHNUYXNrIGltcGxlbWVudHMgXENtc1JlZ3VsYXJUYXNrCnsKICAgIGNvbnN0IFBSRUYgPSAnY2xlYW51cF9sYXN0cnVuJzsKCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rlc2NyaXB0aW9uKCkKICAgIHsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dMb2dpblNlY3VyaXR5Jyk7CiAgICAgICAgcmV0dXJuICRtb2QtPkxhbmcoJ3Rhc2tfY2xlYW51cGV2ZW50cycpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0KCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0xvZ2luU2VjdXJpdHknKTsKICAgICAgICAkbGFzdHJ1biA9IChpbnQpICRtb2QtPkdldFByZWZlcmVuY2Uoc2VsZjo6UFJFRik7CiAgICAgICAgJG9uZWRheWFnbyA9IHRpbWUoKSAtIDM2MDAgKiAyNDsKICAgICAgICBpZiggJGxhc3RydW4gPCAkb25lZGF5YWdvICkgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGV4ZWN1dGUoJHRpbWUgPSAnJykKICAgIHsKICAgICAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CgogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0xvZ2luU2VjdXJpdHknKTsKICAgICAgICAkZGFvID0gbmV3IEV2ZW50REFPKCRtb2QtPkdldERiKCkpOwogICAgICAgICRsYXN0cnVuID0gKGludCkgJG1vZC0+R2V0UHJlZmVyZW5jZShzZWxmOjpQUkVGKTsKICAgICAgICAkb25ld2Vla2FnbyA9IHRpbWUoKSAtIDM2MDAgKiAyNCAqIDc7CiAgICAgICAgJGRhby0+ZGVsZXRlX2V2ZW50c19iZWZvcmUoJG9uZXdlZWthZ28pOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvbl9zdWNjZXNzKCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0xvZ2luU2VjdXJpdHknKTsKICAgICAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKHNlbGY6OlBSRUYsJHRpbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvbl9mYWlsdXJlKCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwogICAgfQoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CMSMSTestStorage.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIENNU01TVGVzdFN0b3JhZ2UKewogICAgY29uc3QgRkFJTEVERkVVTE9HSU5URVNUX1BSRUYgPSAnRmFpbGVkRkVVTG9naW5UZXN0JzsKICAgIGNvbnN0IElQU1VTUEVOREVEVEVTVF9QUkVGID0gJ0lQU3VzcGVuZGVkVGVzdCc7CiAgICBjb25zdCBCTEFDS0xJU1RURVNUX1BSRUYgPSAnQmxhY2tMaXN0VGVzdCc7CiAgICBjb25zdCBXSElURUxJU1RURVNUX1BSRUYgPSAnV2hpdGVMaXN0VGVzdCc7CiAgICBjb25zdCBGRVVMT0dJTk1VTFRJUExFSVBTX1BSRUYgPSAnRkVVTXVsdGlwbGVMb2dpbklwc1Rlc3QnOwogICAgY29uc3QgU0VMRlJFR1NBTUVJUF9QUkVGID0gJ1NlbGZyZWdTYW1lSVBzVGVzdCc7CiAgICBjb25zdCBDUklUSUNBTEVWRU5UU19QUkVGID0gJ0NyaXRpY2FsRXZlbnRzJzsKCiAgICBwcml2YXRlICRfbW9kOwogICAgcHJpdmF0ZSAkX2RiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcQ0dMb2dpblNlY3VyaXR5ICRtb2QsJGRiKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2RiID0gJGRiOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYmxhY2tsaXN0X3Rlc3QoJGlwX2FkZHIgPSBudWxsKQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPmdldF9wcmVmX2ZvcihzZWxmOjpCTEFDS0xJU1RURVNUX1BSRUYpOwogICAgICAgIGlmKCAkaXBfYWRkciApICRkYXRhWydpcF9hZGRyJ10gPSAkaXBfYWRkcjsKICAgICAgICAkb2JqID0gbmV3IEJsYWNrbGlzdFRlc3QoJGRhdGEpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfd2hpdGVsaXN0X3Rlc3QoJGlwX2FkZHIgPSBudWxsKQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPmdldF9wcmVmX2ZvcihzZWxmOjpXSElURUxJU1RURVNUX1BSRUYpOwogICAgICAgIGlmKCAkaXBfYWRkciApICRkYXRhWydpcF9hZGRyJ10gPSAkaXBfYWRkcjsKICAgICAgICAkb2JqID0gbmV3IFdoaXRlbGlzdFRlc3QoJGRhdGEpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmV1ZmFpbGVkbG9naW5zX3Rlc3QoJGlwX2FkZHIgPSBudWxsKQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPmdldF9wcmVmX2ZvcihzZWxmOjpGQUlMRURGRVVMT0dJTlRFU1RfUFJFRik7CiAgICAgICAgaWYoICRpcF9hZGRyICkgJGRhdGFbJ2lwX2FkZHInXSA9ICRpcF9hZGRyOwogICAgICAgICRvYmogPSBuZXcgRmFpbGVkRkVVTG9naW5UZXN0KCR0aGlzLT5fZGIsJGRhdGEpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaXBzdXNwZW5kZWRfdGVzdCgkaXBfYWRkciA9IG51bGwpCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+Z2V0X3ByZWZfZm9yKHNlbGY6OklQU1VTUEVOREVEVEVTVF9QUkVGKTsKICAgICAgICBpZiggJGlwX2FkZHIgKSAkZGF0YVsnaXBfYWRkciddID0gJGlwX2FkZHI7CiAgICAgICAgJG9iaiA9IG5ldyBJUFN1c3BlbmRlZFRlc3QoJHRoaXMtPl9kYiwkZGF0YSk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9mZXVtdWx0aXBsZWxvZ2luaXBzX3Rlc3QoJHVpZCA9IG51bGwpCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+Z2V0X3ByZWZfZm9yKHNlbGY6OkZFVUxPR0lOTVVMVElQTEVJUFNfUFJFRik7CiAgICAgICAgaWYoICR1aWQgKSAkZGF0YVsndWlkJ10gPSAoaW50KSAkdWlkOwogICAgICAgICRvYmogPSBuZXcgRkVVTXVsdGlwbGVMb2dpbklwc1Rlc3QoJHRoaXMtPl9kYiwgJGRhdGEgKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NlbGZyZWdzYW1laXBfdGVzdCgkaXBfYWRkciA9IG51bGwpCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+Z2V0X3ByZWZfZm9yKHNlbGY6OlNFTEZSRUdTQU1FSVBfUFJFRik7CiAgICAgICAgaWYoICRpcF9hZGRyICkgJGRhdGFbJ2lwX2FkZHInXSA9ICRpcF9hZGRyOwogICAgICAgICRvYmogPSBuZXcgU2VsZnJlZ1NhbWVJUHNUZXN0KCR0aGlzLT5fZGIsICRkYXRhICk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVfd2hpdGVsaXN0X3Rlc3QoV2hpdGVsaXN0VGVzdCAkdGVzdCkKICAgIHsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5nZXRfcHJlZl9mb3Ioc2VsZjo6V0hJVEVMSVNUVEVTVF9QUkVGKTsKICAgICAgICAkZGF0YVsgJ2VudHJ5dGV4dCcgIF0gPSAkdGVzdC0+ZW50cnl0ZXh0OwogICAgICAgICR0aGlzLT5zZXRfcHJlZigkZGF0YSk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVfYmxhY2tsaXN0X3Rlc3QoQmxhY2tsaXN0VGVzdCAkdGVzdCkKICAgIHsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5nZXRfcHJlZl9mb3Ioc2VsZjo6QkxBQ0tMSVNUVEVTVF9QUkVGKTsKICAgICAgICAkZGF0YVsgJ2VudHJ5dGV4dCcgIF0gPSAkdGVzdC0+ZW50cnl0ZXh0OwogICAgICAgICR0aGlzLT5zZXRfcHJlZigkZGF0YSk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVfaXBzdXNwZW5kZWRfdGVzdChJUFN1c3BlbmRlZFRlc3QgJHRlc3QpCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+Z2V0X3ByZWZfZm9yKHNlbGY6OklQU1VTUEVOREVEVEVTVF9QUkVGKTsKICAgICAgICAkZGF0YVsgJ3RpbWVfcGVyaW9kJyBdID0gJHRlc3QtPnRpbWVfcGVyaW9kOwogICAgICAgICR0aGlzLT5zZXRfcHJlZigkZGF0YSk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVfZmV1ZmFpbGVkbG9naW5zX3Rlc3QoRmFpbGVkRkVVTG9naW5UZXN0ICR0ZXN0KQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPmdldF9wcmVmX2ZvcihzZWxmOjpGQUlMRURGRVVMT0dJTlRFU1RfUFJFRik7CiAgICAgICAgJGRhdGFbJ251bV9mYWlsZWQnIF0gPSAkdGVzdC0+bnVtX2ZhaWxlZDsKICAgICAgICAkZGF0YVsndGltZV9wZXJpb2QnIF0gPSAkdGVzdC0+dGltZV9wZXJpb2Q7CiAgICAgICAgJHRoaXMtPnNldF9wcmVmKCRkYXRhKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2F2ZV9mZXVtdWx0aXBsZWxvZ2luaXBzX3Rlc3QoRkVVTXVsdGlwbGVMb2dpbklwc1Rlc3QgJHRlc3QpCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+Z2V0X3ByZWZfZm9yKHNlbGY6OkZFVUxPR0lOTVVMVElQTEVJUFNfUFJFRik7CiAgICAgICAgJGRhdGFbJ251bV9pcHMnXSA9ICR0ZXN0LT5udW1faXBzOwogICAgICAgICRkYXRhWyd0aW1lX3BlcmlvZCddID0gJHRlc3QtPnRpbWVfcGVyaW9kOwogICAgICAgICR0aGlzLT5zZXRfcHJlZigkZGF0YSk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVfc2VsZnJlZ3NhbWVpcF90ZXN0KFNlbGZyZWdTYW1lSVBzVGVzdCAkdGVzdCkKICAgIHsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5nZXRfcHJlZl9mb3Ioc2VsZjo6U0VMRlJFR1NBTUVJUF9QUkVGKTsKICAgICAgICAkZGF0YVsnbnVtX3JlZ3MnXSA9ICR0ZXN0LT5udW1fcmVnczsKICAgICAgICAkZGF0YVsndGltZV9wZXJpb2QnXSA9ICR0ZXN0LT50aW1lX3BlcmlvZDsKICAgICAgICAkdGhpcy0+c2V0X3ByZWYoJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlX3Rlc3QoVGVzdCAkdGVzdCkKICAgIHsKICAgICAgICAkdGVzdC0+dmFsaWRhdGUoKTsKICAgICAgICAkdGVzdF9jbGFzcyA9IGdldF9jbGFzcygkdGVzdCk7CiAgICAgICAgc3dpdGNoKCAkdGVzdF9jbGFzcyApIHsKICAgICAgICBjYXNlICdDR0xvZ2luU2VjdXJpdHlcXFdoaXRlbGlzdFRlc3QnOgogICAgICAgICAgICAkdGhpcy0+c2F2ZV93aGl0ZWxpc3RfdGVzdCgkdGVzdCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0NHTG9naW5TZWN1cml0eVxcQmxhY2tsaXN0VGVzdCc6CiAgICAgICAgICAgICR0aGlzLT5zYXZlX2JsYWNrbGlzdF90ZXN0KCR0ZXN0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnQ0dMb2dpblNlY3VyaXR5XFxJUFN1c3BlbmRlZFRlc3QnOgogICAgICAgICAgICAkdGhpcy0+c2F2ZV9pcHN1c3BlbmRlZF90ZXN0KCR0ZXN0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnQ0dMb2dpblNlY3VyaXR5XFxGYWlsZWRGRVVMb2dpblRlc3QnOgogICAgICAgICAgICAkdGhpcy0+c2F2ZV9mZXVmYWlsZWRsb2dpbnNfdGVzdCgkdGVzdCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0NHTG9naW5TZWN1cml0eVxcRkVVTXVsdGlwbGVMb2dpbklQc1Rlc3QnOgogICAgICAgICAgICAkdGhpcy0+c2F2ZV9mZXVtdWx0aXBsZWxvZ2luaXBzX3Rlc3QoJHRlc3QpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdDR0xvZ2luU2VjdXJpdHlcXFNlbGZyZWdTYW1lSVBzVGVzdCc6CiAgICAgICAgICAgICR0aGlzLT5zYXZlX3NlbGZyZWdzYW1laXBfdGVzdCgkdGVzdCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0RvIG5vdCBrbm93IGhvdyB0byBzYXZlICcuJHRlc3RfY2xhc3MuJyBvYmplY3RzIGluICcuX19NRVRIT0RfXyk7CiAgICAgICAgfQoKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3ByZWZfb2JqKCRmdWxsa2V5KQogICAgewogICAgICAgICR0bXAgPSAkdGhpcy0+X21vZC0+R2V0UHJlZmVyZW5jZSgkZnVsbGtleSk7CiAgICAgICAgaWYoICR0bXAgKSAkdG1wID0gdW5zZXJpYWxpemUoJHRtcCk7CiAgICAgICAgaWYoICR0bXAgJiYgJHRtcCBpbnN0YW5jZW9mIFByZWZlcmVuY2VzICkgcmV0dXJuICR0bXA7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcmVmX2Zvcigka2V5KQogICAgewogICAgICAgICR0bXAgPSAkdGhpcy0+Z2V0X3ByZWZfb2JqKCdwcmVmc18nLiRrZXkpOwogICAgICAgIGlmKCAhJHRtcCApICR0bXAgPSAkdGhpcy0+Z2V0X3ByZWZfb2JqKCdtYXN0ZXJfJy4ka2V5KTsKICAgICAgICBpZiggISR0bXAgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ05vIHByZWZlcmVuY2UgZXhpc3RzIGZvciAnLiRrZXkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ByZWYoUHJlZmVyZW5jZXMgJHByZWZzKQogICAgewogICAgICAgICR0aGlzLT5fbW9kLT5TZXRQcmVmZXJlbmNlKCdwcmVmc18nLiRwcmVmcy0+Z2V0X25hbWUoKSxzZXJpYWxpemUoJHByZWZzKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXN0ZXJfcHJlZihQcmVmZXJlbmNlcyAkcHJlZnMpCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QtPlNldFByZWZlcmVuY2UoJ21hc3Rlcl8nLiRwcmVmcy0+Z2V0X25hbWUoKSxzZXJpYWxpemUoJHByZWZzKSk7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CriticalEventEmailNotifier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIENyaXRpY2FsRXZlbnRFbWFpbE5vdGlmaWVyIGV4dGVuZHMgRXZlbnRPYnNlcnZlcgp7CiAgICBwcml2YXRlICRfZGF0YSA9IFsgJ2FkbWluX2dyb3VwJz0+bnVsbCwgJ3N1YmplY3QnPT5udWxsLCAnc3Vial90cGwnPT5udWxsLCAnYm9keV90cGwnPT5udWxsIF07CiAgICBwcml2YXRlICRfc21hcnR5OwogICAgcHJpdmF0ZSAkX21haWxlcjsKICAgIHByaXZhdGUgJF9lbWFpbHM7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxTbWFydHlfQ01TICRzbWFydHksIFxjbXNfbWFpbGVyICRtYWlsZXIsIFByZWZlcmVuY2VzICRwYXJhbXMgKQogICAgewogICAgICAgICR0aGlzLT5fc21hcnR5ID0gJHNtYXJ0eTsKICAgICAgICAkdGhpcy0+X21haWxlciA9ICRtYWlsZXI7CgogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsICkKICAgICAgICB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAnYWRtaW5fZ3JvdXAnOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gKGludCkgJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnc3ViamVjdCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWydzdWJqX3RwbCddID0gbnVsbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBzZWNvbmQgcGFzcy4KICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbCApCiAgICAgICAgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2JvZHlfdHBsJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnc3Vial90cGwnOgogICAgICAgICAgICAgICAgaWYoICEkdGhpcy0+X2RhdGFbJ3N1YmplY3QnXSApICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gdmFsaWRhdGUKICAgICAgICBpZiggJHRoaXMtPl9kYXRhWydhZG1pbl9ncm91cCddIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0FuIGFkbWluIGdyb3VwIGlkIG11c3QgYmUgc3BlY2lmaWVkIGluIHRoZSBjb25zdHJ1Y3RvciBwYXJhbXMgdG8gYSAnLl9fQ0xBU1NfXyk7CiAgICAgICAgaWYoICEkdGhpcy0+X2RhdGFbJ3N1YmplY3QnXSAmJiAhJHRoaXMtPl9kYXRhWydzdWJqX3RwbCddICkgJHRoaXMtPl9kYXRhWydzdWJqZWN0J10gPSAnQSBjcml0aWNhbCBzZWN1cml0eSBldmVudCBoYXMgb2NjdXJyZWQgb24geW91ciB3ZWJzaXRlJzsKICAgICAgICBpZiggISR0aGlzLT5fZGF0YVsnYm9keV90cGwnXSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0EgYm9keSB0ZW1wbGF0ZSBtdXN0IGJlIHNwZWNpZmllZCBpbiB0aGUgY29uc3RydWN0b3IgcGFyYW1zIHRvIGEgJy5fX0NMQVNTX18pOwoKICAgICAgICAvLyByZXNvbHZlIHRoZSBhZG1pbiBncm91cCBpbnRvIGVtYWlscwogICAgICAgICR0aGlzLT5fZW1haWxzID0gXGNnZV91c2Vyb3BzOjpleHBhbmRfZ3JvdXBfZW1haWxzKCR0aGlzLT5fZGF0YVsnYWRtaW5fZ3JvdXAnXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZSggXFNwbFN1YmplY3QgJG1hbmFnZXIgKQogICAgewogICAgICAgIGlmKCAhICRtYW5hZ2VyIGluc3RhbmNlb2YgRXZlbnRNYW5hZ2VyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBtYW5hZ2VyIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRldiA9ICRtYW5hZ2VyLT5nZXRfZXZlbnQoKTsKICAgICAgICBpZiggISRldiApIHJldHVybjsKICAgICAgICBpZiggISAkZXYgaW5zdGFuY2VvZiBDcml0aWNhbEV2ZW50ICkgcmV0dXJuOyAvLyBub3QgYSBzdWl0YWJsZSBldmVudAogICAgICAgIGlmKCAhY291bnQoJHRoaXMtPl9lbWFpbHMpICkgewogICAgICAgICAgICBhdWRpdCgnJywnQ0dMb2dpblNlY3VyaXR5JywnQ3JpdGljYWxFdmVudEVtYWlsTm90aWZpZXIgLSBDb3VsZCBub3QgZmluZCBhbnkgZW1haWwgYWRkcmVzc2VzJyk7CiAgICAgICAgICAgIHJldHVybjsgIC8vIG5vYm9keSB0byBzZW5kIGFueXRoaW5nIHRvCiAgICAgICAgfQoKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBkbyB0aGUgc3ViamVjdAogICAgICAgICAgICAkc3ViamVjdCA9ICR0aGlzLT5fZGF0YVsnc3ViamVjdCddOwogICAgICAgICAgICBpZiggISRzdWJqZWN0ICYmICR0aGlzLT5fZGF0YVsnc3Vial90cGwnXSApIHsKICAgICAgICAgICAgICAgICR0cGwgPSAkdGhpcy0+X3NtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJ3N0cmluZzonLiR0aGlzLT5fZGF0YVsnc3Vial90cGwnXSk7CiAgICAgICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ2V2ZW50JywkZXYpOwogICAgICAgICAgICAgICAgJHN1YmplY3QgPSAkdHBsLT5mZXRjaCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJHN1YmplY3QgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBtZXNzYWdlIHN1YmplY3QgZGV0ZXJtaW5lZCBmb3IgZW1haWwgaW4gJy5fX0NMQVNTX18pOwoKICAgICAgICAgICAgLy8gZG8gdGhlIGJvZHkKICAgICAgICAgICAgJHRwbCA9ICR0aGlzLT5fc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgnc3RyaW5nOicuJHRoaXMtPl9kYXRhWydib2R5X3RwbCddKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdldmVudCcsJGV2KTsKICAgICAgICAgICAgJGJvZHkgPSAkdHBsLT5mZXRjaCgpOwogICAgICAgICAgICBpZiggISRib2R5ICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gbWVzc2FnZSBib2R5IGRldGVybWluZWQgZm9yIGVtYWlsIGluICcuX19DTEFTU19fKTsKCiAgICAgICAgICAgICRtYWlsZXIgPSAkdGhpcy0+X21haWxlcjsKICAgICAgICAgICAgJG1haWxlci0+cmVzZXQoKTsKICAgICAgICAgICAgJG1haWxlci0+SXNIVE1MKFRSVUUpOwogICAgICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2VtYWlscyBhcyAkZW1haWwgKSB7CiAgICAgICAgICAgICAgICAkbWFpbGVyLT5hZGRBZGRyZXNzKCRlbWFpbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG1haWxlci0+U2V0U3ViamVjdCgkc3ViamVjdCk7CiAgICAgICAgICAgICRtYWlsZXItPlNldEJvZHkoJGJvZHkpOwogICAgICAgICAgICBpZiggISRtYWlsZXItPlNlbmQoKSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCdQcm9ibGVtIHNlbmRpbmcgY3JpdGljYWwgZXZlbnQgZW1haWwgLSAnLiRtYWlsZXItPkdldEVycm9ySW5mbygpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgYXVkaXQoJycsJ0NHTG9naW5TZWN1cml0eScsJ0Nhbm5vdCBzZW5kIGVtYWlsOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgICAgICBcY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICAgICB9CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Event.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmFic3RyYWN0IGNsYXNzIEV2ZW50IGltcGxlbWVudHMgaUV2ZW50CnsKICAgIHByaXZhdGUgJF9kYXRhID0gIFsnaXBfYWRkcic9Pm51bGwsICd3aGF0Jz0+bnVsbCwgJ3VpZCc9Pm51bGwsICd0cyc9Pm51bGwsICd1c2VybmFtZSc9Pm51bGwsICdyZWFzb24nPT5udWxsIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRwYXJhbXMpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhWyd0cyddID0gdGltZSgpOwogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICAgICAgY2FzZSAnaXBfYWRkcic6CiAgICAgICAgICAgIGNhc2UgJ3doYXQnOgogICAgICAgICAgICBjYXNlICd1c2VybmFtZSc6CiAgICAgICAgICAgIGNhc2UgJ3JlYXNvbic6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3VpZCc6CiAgICAgICAgICAgIGNhc2UgJ3RzJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X25hbWUoKTsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnaXBfYWRkcic6CiAgICAgICAgY2FzZSAnd2hhdCc6CiAgICAgICAgY2FzZSAndXNlcm5hbWUnOgogICAgICAgIGNhc2UgJ3JlYXNvbic6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgY2FzZSAndWlkJzoKICAgICAgICBjYXNlICd0cyc6CiAgICAgICAgICAgIHJldHVybiAoaW50KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5nZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+aXBfYWRkciApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0VhY2ggZXZlbnQgbmVlZHMgYW4gSVAgYWRkcmVzcycpOwogICAgICAgIGlmKCAkdGhpcy0+dHMgPCB0aW1lKCkgLSAxMCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpbignRXZlbnQgaXMgdG9vIG9sZCwgY2Fubm90IHZhbGlkYXRlJyk7CiAgICAgICAgaWYoICR0aGlzLT50cyA+IHRpbWUoKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBzYXZlIGFuIGV2ZW50IGluIHRoZSBmdXR1cmUnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgICRjbGFzcyA9IGdldF9jbGFzcygkdGhpcyk7CiAgICAgICAgcmV0dXJuIGJhc2VuYW1lKHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRjbGFzcykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdGV4dCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yZWFzb247CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.EventDAO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIEV2ZW50REFPCnsKICAgIHByaXZhdGUgJF9kYjsKICAgIHByaXZhdGUgJF9tYXAgPSBbJ0lQX0JMQUNLTElTVEVEJz0+J0JsYWNrTGlzdEV2ZW50JywnRkFJTEVERkVVTE9HSU4nPT4nRmFpbGVkRkVVTG9naW5FdmVudCcsJ0ZFVU1VTFRJUExFTE9HSU5JUFMnPT4nTXVsdGlwbGVGRVVMb2dpbklQc0V2ZW50JywKICAgICAgICAgICAgICAgICAgICAgJ0lQU1VTUEVOREVEJz0+J0lQU3VzcGVuc2lvbkNyZWF0ZWRFdmVudCcsJ1NFTEZSRUdSRUdJU1RSQVRJT04nPT4nU2VsZnJlZ1JlZ2lzdHJhdGlvbkV2ZW50JwogICAgICAgIF07CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0YWJsZV9uYW1lKCkgeyByZXR1cm4gY21zX2RiX3ByZWZpeCgpLidtb2RfY2dsc19ldmVudCc7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGRiKQogICAgewogICAgICAgICR0aGlzLT5fZGIgPSAkZGI7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdlbmVyYXRlX3V1aWQoKQogICAgewogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2NvbV9jcmVhdGVfZ3VpZCcpID09PSB0cnVlKSAgewogICAgICAgICAgICByZXR1cm4gdHJpbShjb21fY3JlYXRlX2d1aWQoKSwgJ3t9Jyk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc3ByaW50ZignJTA0WCUwNFgtJTA0WC0lMDRYLSUwNFgtJTA0WCUwNFglMDRYJywgbXRfcmFuZCgwLCA2NTUzNSksIG10X3JhbmQoMCwgNjU1MzUpLCBtdF9yYW5kKDAsIDY1NTM1KSwgbXRfcmFuZCgxNjM4NCwgMjA0NzkpLCBtdF9yYW5kKDMyNzY4LCA0OTE1MSksIG10X3JhbmQoMCwgNjU1MzUpLCBtdF9yYW5kKDAsIDY1NTM1KSwgbXRfcmFuZCgwLCA2NTUzNSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlX2V2ZW50KEV2ZW50ICRldikKICAgIHsKICAgICAgICAkdXVpZCA9ICR0aGlzLT5nZW5lcmF0ZV91dWlkKCk7CiAgICAgICAgJGV2LT52YWxpZGF0ZSgpOwogICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy5zZWxmOjp0YWJsZV9uYW1lKCkuJyAoaWQsIGlwX2FkZHIsIHdoYXQsIHVpZCwgdHMsIHVzZXJuYW1lLCByZWFzb24pCiAgICAgICAgICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8pJzsKICAgICAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCAkc3FsLFsgJHV1aWQsICRldi0+aXBfYWRkciwgJGV2LT53aGF0LCAkZXYtPnVpZCwgJGV2LT50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2LT51c2VybmFtZSwgJGV2LT5yZWFzb24gXSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfZXZlbnRzX2JlZm9yZSgkdHMpCiAgICB7CiAgICAgICAgJHRzID0gKGludCkgJHRzOwogICAgICAgIGlmKCAkdHMgPCAxICkgcmV0dXJuOwoKICAgICAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuc2VsZjo6dGFibGVfbmFtZSgpLicgV0hFUkUgdHMgPCA/JzsKICAgICAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCAkc3FsLCBbICR0cyBdICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvdW50X2V2ZW50cygkaXBfYWRkciwgJHdoYXQsICRzaW5jZV9taW51dGVzID0gMCkKICAgIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBjb3VudChpcF9hZGRyKSBBUyBjbnQKICAgICAgICAgICAgICAgIEZST00gJy5zZWxmOjp0YWJsZV9uYW1lKCkuJwogICAgICAgICAgICAgICAgV0hFUkUgaXBfYWRkciA9ID8gQU5EIHdoYXQgPSA/JzsKICAgICAgICAkcGFybXMgPSBbICRpcF9hZGRyLCAkd2hhdCBdOwogICAgICAgIGlmKCAkc2luY2VfbWludXRlcyA+IDAgKSB7CiAgICAgICAgICAgICR0aW1lID0gdGltZSgpIC0gJHNpbmNlX21pbnV0ZXMgKiA2MDsKICAgICAgICAgICAgJHRpbWUgPSBtYXgoMCwkdGltZSk7CiAgICAgICAgICAgICRzcWwgLj0gJyBBTkQgdHMgPj0gPyc7CiAgICAgICAgICAgICRwYXJtc1tdID0gJHRpbWU7CiAgICAgICAgfQogICAgICAgICRjb3VudCA9ICR0aGlzLT5fZGItPkdldE9uZSgkc3FsLCRwYXJtcyk7CiAgICAgICAgcmV0dXJuICRjb3VudDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2NsYXNzX2Zyb21fd2hhdCgkd2hhdCkKICAgIHsKICAgICAgICBpZiggIWFycmF5X2tleV9leGlzdHMoJHdoYXQsJHRoaXMtPl9tYXApICkgcmV0dXJuOwogICAgICAgIHJldHVybiAkdGhpcy0+X21hcFskd2hhdF07CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNyZWF0ZV9ldmVudF9mcm9tX3JvdyhhcnJheSAkcm93KQogICAgewogICAgICAgIC8vIGdldCB0aGUgdHlwZSBmcm9tIHRoZSB3aGF0IGZpZWxkLgogICAgICAgICRjbGFzc25hbWUgPSAkdGhpcy0+Z2V0X2NsYXNzX2Zyb21fd2hhdCgkcm93Wyd3aGF0J10pOwogICAgICAgIGlmKCAhJGNsYXNzbmFtZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignQ2Fubm90IGNyZWF0ZSBhbiBldmVudCBvYmplY3QgZnJvbSB1bmtub3duIHdoYXQgdHlwZSAnLiRyb3dbJ3doYXQnXSk7CiAgICAgICAgJGNsYXNzbmFtZSA9IF9fTkFNRVNQQUNFX18uJ1xcJy4kY2xhc3NuYW1lOwogICAgICAgIGlmKCAhY2xhc3NfZXhpc3RzKCRjbGFzc25hbWUpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBjbGFzcyAnLiRjbGFzc25hbWUuJyBmb3IgZXZlbnQgb2YgdHlwZSAnLiRyb3dbJ3doYXQnXSk7CgogICAgICAgICRvYmogPSBuZXcgJGNsYXNzbmFtZSgkcm93KTsKICAgICAgICBpZiggISAkb2JqIGluc3RhbmNlb2YgRXZlbnQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIiRjbGFzc25hbWUgaXMgbm90IGV4dGVuZGVkIGZyb20gXFxDR0xvZ2luU2VjdXJpdHlcRXZlbnQiKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3N1c3BlbmRlZCgkbGltaXQgPSA1MCwgJG9mZnNldCA9IDApCiAgICB7CiAgICAgICAgJGxpbWl0ID0gbWF4KDEsKGludCkkbGltaXQpOwogICAgICAgICRvZmZzZXQgPSBtYXgoMCwoaW50KSRvZmZzZXQpOwoKICAgICAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5zZWxmOjp0YWJsZV9uYW1lKCkuJyBXSEVSRSB3aGF0ID0gPyBPUkRFUiBCWSB0cyBERVNDJzsKICAgICAgICAkZGJyID0gJHRoaXMtPl9kYi0+U2VsZWN0TGltaXQoJHNxbCwgJGxpbWl0LCAkb2Zmc2V0LCBbICdJUFNVU1BFTkRFRCcgXSApOwogICAgICAgIGlmKCAhJGRiciApIHJldHVybjsKCiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIHdoaWxlKCAhJGRici0+RU9GKCkgKSB7CiAgICAgICAgICAgICRvdXRbXSA9ICR0aGlzLT5jcmVhdGVfZXZlbnRfZnJvbV9yb3coJGRici0+ZmllbGRzKTsKICAgICAgICAgICAgJGRici0+TW92ZU5leHQoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.EventLogger.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIEV2ZW50TG9nZ2VyIGV4dGVuZHMgRXZlbnRPYnNlcnZlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlKCBcU3BsU3ViamVjdCAkbWFuYWdlciApCiAgICB7CiAgICAgICAgaWYoICEgJG1hbmFnZXIgaW5zdGFuY2VvZiBFdmVudE1hbmFnZXIgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIG1hbmFnZXIgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJGV2ID0gJG1hbmFnZXItPmdldF9ldmVudCgpOwogICAgICAgIGlmKCAhJGV2ICkgcmV0dXJuOwoKICAgICAgICAkc3RyID0gJGV2LT5nZXRfdGV4dCgpOwogICAgICAgIGlmKCAkZXYtPmlwX2FkZHIgKSAkc3RyIC49ICcgKCcuJGV2LT5pcF9hZGRyLicpJzsKICAgICAgICBhdWRpdCgnJywnQ0dMb2dpblNlY3VyaXR5Jywkc3RyKTsKICAgICAgICBkZWJ1Z190b19sb2coJGV2LT5nZXRfbmFtZSgpLic6ICcuJHN0ciwnQ0dMb2dpblNlY3VyaXR5Jyk7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.EventManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIEV2ZW50TWFuYWdlciBpbXBsZW1lbnRzIFxTcGxTdWJqZWN0CnsKICAgIHByaXZhdGUgJF90ZXN0X2ZhY3Rvcnk7CiAgICBwcml2YXRlICRfb2JzZXJ2ZXJzOwogICAgcHJpdmF0ZSAkX2N1cl9ldmVudDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoQ01TTVNUZXN0U3RvcmFnZSAkZmFjdG9yeSkKICAgIHsKICAgICAgICAkdGhpcy0+X3Rlc3RfZmFjdG9yeSA9ICRmYWN0b3J5OwogICAgICAgICR0aGlzLT5fb2JzZXJ2ZXJzID0gbmV3IFxTcGxPYmplY3RTdG9yYWdlKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9ldmVudCggRXZlbnQgJGV2ZW50ICkKICAgIHsKICAgICAgICAkdGhpcy0+X2N1cl9ldmVudCA9ICRldmVudDsKICAgICAgICAkdGhpcy0+bm90aWZ5KCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9ldmVudCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fY3VyX2V2ZW50OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmFjdG9yeSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdGVzdF9mYWN0b3J5OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhdHRhY2goIFxTcGxPYnNlcnZlciAkb2JzZXJ2ZXIgKQogICAgewogICAgICAgIGlmKCAhICRvYnNlcnZlciBpbnN0YW5jZW9mIEV2ZW50T2JzZXJ2ZXIgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIG9ic2VydmVyIHBhc3NlZCB0byAnLl9fTUVUSE9EX18uJyBvYmplY3QgbXVzdCBiZSBpbnN0YW5jZSBvZiB0eXBlIEV2ZW50T2JzZXJ2ZXInKTsKICAgICAgICAkdGhpcy0+X29ic2VydmVycy0+YXR0YWNoKCAkb2JzZXJ2ZXIgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGV0YWNoKCBcU3BsT2JzZXJ2ZXIgJG9ic2VydmVyICkKICAgIHsKICAgICAgICBpZiggISAkb2JzZXJ2ZXIgaW5zdGFuY2VvZiBFdmVudE9ic2VydmVyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBvYnNlcnZlciBwYXNzZWQgdG8gJy5fX01FVEhPRF9fLicgb2JqZWN0IG11c3QgYmUgaW5zdGFuY2Ugb2YgdHlwZSBFdmVudE9ic2VydmVyJyk7CiAgICAgICAgJHRoaXMtPl9vYnNlcnZlcnMtPmRldGFjaCggJG9ic2VydmVyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG5vdGlmeSgpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9vYnNlcnZlcnMgYXMgJG9iaiApIHsKICAgICAgICAgICAgJG9iai0+dXBkYXRlKCAkdGhpcyApOwogICAgICAgIH0KICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.EventObserver.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmFic3RyYWN0IGNsYXNzIEV2ZW50T2JzZXJ2ZXIgaW1wbGVtZW50cyBcU3BsT2JzZXJ2ZXIge30K]]></data>
	</file>
	<file>
	  <filename>/lib/class.EventSaver.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIEV2ZW50U2F2ZXIgZXh0ZW5kcyBFdmVudE9ic2VydmVyCnsKICAgIHByaXZhdGUgJF9zdG9yYWdlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChFdmVudERBTyAkZGFvKQogICAgewogICAgICAgICR0aGlzLT5fc3RvcmFnZSA9ICRkYW87CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZSggXFNwbFN1YmplY3QgJG1hbmFnZXIgKQogICAgewogICAgICAgIGlmKCAhICRtYW5hZ2VyIGluc3RhbmNlb2YgRXZlbnRNYW5hZ2VyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBtYW5hZ2VyIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRldiA9ICRtYW5hZ2VyLT5nZXRfZXZlbnQoKTsKICAgICAgICBpZiggJGV2ICkgJHRoaXMtPl9zdG9yYWdlLT5zYXZlX2V2ZW50KCRldik7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.FailedFEULoginEvent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIEZhaWxlZEZFVUxvZ2luRXZlbnQgZXh0ZW5kcyBFdmVudAp7CiAgICBjb25zdCBXSEFUID0gJ0ZBSUxFREZFVUxPR0lOJzsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoYXJyYXkgJHBhcmFtcykKICAgIHsKICAgICAgICAkcGFyYW1zWyd3aGF0J10gPSBzZWxmOjpXSEFUOwogICAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1sncmVhc29uJ10pICkgJHBhcmFtc1sncmVhc29uJ10gPSAnRmFpbGVkIGxvZ2luIHRvIEZyb250RW5kVXNlcnMnOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OnZhbGlkYXRlKCk7CiAgICAgICAgaWYoICR0aGlzLT53aGF0ICE9IHNlbGY6OldIQVQgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHdoYXQgdmFsdWUgZm9yIGEgJy5fX0NMQVNTX18pOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.FailedFEULoginTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCi8vIHRlc3QgdG8gc2VlIGlmIG1vcmUgdGhhbiBudW1fZmFpbGVkIGZhaWxlZCBsb2dpbiBldmVudHMgaGF2ZSBvY2N1cnJlZCBmb3IgdGhlIHNwZWNpZmllZCBJUCBhZGRyZXNzLCB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lIGxpbWl0LgpjbGFzcyBGYWlsZWRGRVVMb2dpblRlc3QgZXh0ZW5kcyBUZXN0CnsKICAgIHByaXZhdGUgJF9kYjsKICAgIHByaXZhdGUgJF9kYXRhID0gWyAnaXBfYWRkcic9Pm51bGwsICdudW1fZmFpbGVkJz0+NSwgJ3RpbWVfcGVyaW9kJz0+MzAwIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYixQcmVmZXJlbmNlcyAkcGFyYW1zKQogICAgewogICAgICAgIC8vIHRvZG86IHZhbGlkYXRlIGRiLgogICAgICAgICR0aGlzLT5fZGIgPSAkZGI7CgogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ251bV9mYWlsZWQnOgogICAgICAgICAgICBjYXNlICd0aW1lX3BlcmlvZCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSBtYXgoMCwoaW50KSR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2lwX2FkZHInOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdudW1fZmFpbGVkJzoKICAgICAgICBjYXNlICd0aW1lX3BlcmlvZCc6CiAgICAgICAgICAgIHJldHVybiAoaW50KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgY2FzZSAnaXBfYWRkcic6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5nZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGhOdW1GYWlsZWQoJHZhbCkKICAgIHsKICAgICAgICAkb2JqID0gY2xvbmUgJHRoaXM7CiAgICAgICAgJG9iai0+X2RhdGFbJ251bV9mYWlsZWQnXSA9IG1heCgwLChpbnQpJHZhbCk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGhUaW1lUGVyaW9kKCR2YWwpCiAgICB7CiAgICAgICAgJG9iaiA9IGNsb25lICR0aGlzOwogICAgICAgICRvYmotPl9kYXRhWyd0aW1lX3BlcmlvZCddID0gbWF4KDAsKGludCkkdmFsKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZW5hYmxlZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICgkdGhpcy0+bnVtX2ZhaWxlZCA+IDAgJiYgJHRoaXMtPnRpbWVfcGVyaW9kID4gMCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5lbmFibGVkKCkgKSByZXR1cm47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHBhc3NlcygpCiAgICB7CiAgICAgICAgLy8gcmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGZhaWxlZCBsb2dpbnMuCiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lwX2FkZHInXSkgfHwgISR0aGlzLT5fZGF0YVsnaXBfYWRkciddICkgewogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBpcCBhZGRyZXNzIHBhc3NlZCB0byAnLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgICAgIGlmKCAkdGhpcy0+bnVtX2ZhaWxlZCA9PSAwIHx8ICR0aGlzLT50aW1lX3BlcmlvZCA9PSAwICkgcmV0dXJuIFRSVUU7CgogICAgICAgICRzcWwgPSAnU0VMRUNUIGNvdW50KGlwX2FkZHIpIEZST00gJy5FdmVudERBTzo6dGFibGVfbmFtZSgpLicgV0hFUkUgaXBfYWRkciA9ID8gQU5EIHdoYXQgPSA/IEFORCB0cyA+PSA/JzsKICAgICAgICAkd2hlbiA9IHRpbWUoKSAtICR0aGlzLT50aW1lX3BlcmlvZDsKICAgICAgICAkbnVtID0gJHRoaXMtPl9kYi0+R2V0T25lKCRzcWwsWyAnaXBfYWRkcic9PiR0aGlzLT5pcF9hZGRyLCAnd2hhdCc9PkZhaWxlZEZFVUxvZ2luRXZlbnQ6OldIQVQsICd0cyc9PiR3aGVuIF0gKTsKICAgICAgICBpZiggJG51bSA+PSAkdGhpcy0+bnVtX2ZhaWxlZCApIHJldHVybiBUUlVFOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.FEUMultipleLoginIpsTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIEZFVU11bHRpcGxlTG9naW5JUHNUZXN0IGV4dGVuZHMgVGVzdAp7CiAgICBwcml2YXRlICRfZGI7CiAgICBwcml2YXRlICRfZGF0YSA9IFsgJ251bV9pcHMnPT4zLCAndGltZV9wZXJpb2QnPT4zMDAgXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGRiLFByZWZlcmVuY2VzICRwYXJhbXMpCiAgICB7CiAgICAgICAgLy8gdG9kbzogdmFsaWRhdGUgZGIuCiAgICAgICAgJHRoaXMtPl9kYiA9ICRkYjsKCiAgICAgICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAndWlkJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnbnVtX2lwcyc6CiAgICAgICAgICAgIGNhc2UgJ3RpbWVfcGVyaW9kJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IG1heCgwLChpbnQpJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAndWlkJzoKICAgICAgICBjYXNlICdudW1faXBzJzoKICAgICAgICBjYXNlICd0aW1lX3BlcmlvZCc6CiAgICAgICAgICAgIHJldHVybiAoaW50KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgY2FzZSAnaXBfYWRkcic6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5nZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGhOdW1JcHMoJHZhbCkKICAgIHsKICAgICAgICAkb2JqID0gY2xvbmUgJHRoaXM7CiAgICAgICAgJG9iai0+X2RhdGFbJ251bV9pcHMnXSA9IG1heCgwLChpbnQpJHZhbCk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGhUaW1lUGVyaW9kKCR2YWwpCiAgICB7CiAgICAgICAgJG9iaiA9IGNsb25lICR0aGlzOwogICAgICAgICRvYmotPl9kYXRhWyd0aW1lX3BlcmlvZCddID0gbWF4KDAsKGludCkkdmFsKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoKQogICAgewogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBlbmFibGVkKCkKICAgIHsKICAgICAgICByZXR1cm4gKCR0aGlzLT5udW1faXBzID4gMCAmJiAkdGhpcy0+dGltZV9wZXJpb2QgPiAwKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcGFzc2VzKCkKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsndWlkJ10pIHx8ICR0aGlzLT5fZGF0YVsndWlkJ10gPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gVUlEIHBhc3NlZCB0byAnLl9fQ0xBU1NfXyk7CgogICAgICAgIGlmKCAhJHRoaXMtPmVuYWJsZWQoKSApIHJldHVybiBUUlVFOwoKICAgICAgICAkc3FsID0gJ1NFTEVDVCBjb3VudChpcGFkZHJlc3MpCiAgICAgICAgICAgICAgICBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19oaXN0b3J5CiAgICAgICAgICAgICAgICBXSEVSRSBhY3Rpb24gPSA/IEFORCB1c2VyaWQgPSA/IEFORCByZWZkYXRlID49ID8nOwogICAgICAgICRyZWZkYXRlID0gJHRoaXMtPl9kYi0+RGJUaW1lc3RhbXAodGltZSgpIC0gJHRoaXMtPnRpbWVfcGVyaW9kKTsKICAgICAgICAkcmVmZGF0ZSA9IHRyaW0oJHJlZmRhdGUsIiciKTsKICAgICAgICAkbnVtID0gJHRoaXMtPl9kYi0+R2V0T25lKCRzcWwsWyAnbG9naW4nLCAkdGhpcy0+dWlkLCAkcmVmZGF0ZSBdICk7CiAgICAgICAgaWYoICRudW0gPj0gJHRoaXMtPm51bV9pcHMgKSB7CiAgICAgICAgICAgIC8vIG5vdyBjaGVjayB0aGF0IHdlIGhhdmUgbm90IHJlc2V0IGl0CiAgICAgICAgICAgICRzcWwgPSAnU0VMRUNUIGNvdW50KHVzZXJpZCkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfaGlzdG9yeQogICAgICAgICAgICAgICAgICAgIFdIRVJFIGFjdGlvbiA9ID8gQU5EIHVzZXJpZCA9ID8gQU5EIHJlZmRhdGUgPj0gPyc7CiAgICAgICAgICAgICRudW0gPSAkdGhpcy0+X2RiLT5HZXRPbmUoJHNxbCxbICd2ZXJpZnkgY29tcGxldGUnLCAkdGhpcy0+dWlkLCAkcmVmZGF0ZSBdICk7CiAgICAgICAgICAgIGlmKCAkbnVtID09IDAgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ipAddressTester.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIGlwQWRkcmVzc1Rlc3Rlcgp7CiAgICBwcml2YXRlICRfbGlzdDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHRleHQpCiAgICB7CiAgICAgICAgJHRleHQgPSB0cmltKCR0ZXh0KTsKICAgICAgICBpZiggJHRleHQgKSB7CiAgICAgICAgICAgICR0bXBfbGlzdCA9IGV4cGxvZGUoIlxuIiwkdGV4dCk7CiAgICAgICAgICAgICRsaXN0ID0gW107CiAgICAgICAgICAgIGZvcmVhY2goICR0bXBfbGlzdCBhcyAkbGluZSApIHsKICAgICAgICAgICAgICAgICRsaW5lID0gdHJpbSgkbGluZSk7CiAgICAgICAgICAgICAgICBpZiggJGxpbmUgKSAkbGlzdFtdID0gJGxpbmU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIGNvdW50KCRsaXN0KSApICR0aGlzLT5fbGlzdCA9ICRsaXN0OwogICAgICAgIH0KICAgIH0KCiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICBfdGVzdGlwKCRyYW5nZSwkaXApCiAgICAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICAgICBUaGlzIGlzIGEgZnVuY3Rpb24gdG8gbWF0Y2ggYW4gSVAgYWRkcmVzcyBhZ2FpbnN0IGFuCiAgICAgIGFkZHJlc3MgcmFuZ2Ugc3BlY2lmaWNhdGlvbi4KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfdGVzdGlwKCRyYW5nZSwkaXApCiAgICB7CiAgICAgICAgJHJlc3VsdCA9IDE7CgogICAgICAgICMgSVAgUGF0dGVybiBNYXRjaGVyCiAgICAgICAgIyBKLkFkYW1zIDxqbmFAcmV0aW5hLm5ldD4KICAgICAgICAjCiAgICAgICAgIyBNYXRjaGVzOgogICAgICAgICMKICAgICAgICAjIHh4eC54eHgueHh4Lnh4eCAgICAgICAgKGV4YWN0KQogICAgICAgICMgeHh4Lnh4eC54eHguW3l5eS16enpdICAocmFuZ2UpCiAgICAgICAgIyB4eHgueHh4Lnh4eC54eHgvbm4gICAgKG5uID0gIyBiaXRzLCBjaXNjbyBzdHlsZSAtLSBpLmUuIC8yNCA9IGNsYXNzIEMpCiAgICAgICAgIwogICAgICAgICMgRG9lcyBub3QgbWF0Y2g6CiAgICAgICAgIyB4eHgueHh4Lnh4eC54eFt5eXktenp6XSAgKHJhbmdlLCBwYXJ0aWFsIG9jdGV0cyBub3Qgc3VwcG9ydGVkKQoKICAgICAgICBpZiAocHJlZ19tYXRjaCgiLyhbMC05XSspXC4oWzAtOV0rKVwuKFswLTldKylcLihbMC05XSspXC8oWzAtOV0rKS8iLCRyYW5nZSwkcmVncykpIHsKCiAgICAgICAgICAgICMgcGVyZm9ybSBhIG1hc2sgbWF0Y2gKICAgICAgICAgICAgJGlwbCA9IGlwMmxvbmcoJGlwKTsKICAgICAgICAgICAgJHJhbmdlbCA9IGlwMmxvbmcoJHJlZ3NbMV0gLiAiLiIgLiAkcmVnc1syXSAuICIuIiAuICRyZWdzWzNdIC4gIi4iIC4gJHJlZ3NbNF0pOwoKICAgICAgICAgICAgJG1hc2tsID0gMDsKCiAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaTwgMzE7ICRpKyspIHsKICAgICAgICAgICAgICAgIGlmICgkaSA8ICRyZWdzWzVdLTEpICRtYXNrbCA9ICRtYXNrbCArIHBvdygyLCgzMC0kaSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoKCRtYXNrbCAmICRyYW5nZWwpID09ICgkbWFza2wgJiAkaXBsKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIyByYW5nZSBiYXNlZAogICAgICAgICAgICAkbWFza29jdHMgPSBzcGxpdCgiXC4iLCRyYW5nZSk7CiAgICAgICAgICAgICRpcG9jdHMgPSBzcGxpdCgiXC4iLCRpcCk7CgogICAgICAgICAgICAjIHBlcmZvcm0gYSByYW5nZSBtYXRjaAogICAgICAgICAgICBmb3IgKCRpPTA7ICRpPDQ7ICRpKyspIHsKICAgICAgICAgICAgICAgIGlmIChlcmVnKCJcWyhbMC05XSspXC0oWzAtOV0rKVxdIiwkbWFza29jdHNbJGldLCRyZWdzKSkgewogICAgICAgICAgICAgICAgICAgIGlmICggKCRpcG9jdHNbJGldID4gJHJlZ3NbMl0pIHx8ICgkaXBvY3RzWyRpXSA8ICRyZWdzWzFdKSkgJHJlc3VsdCA9IDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJG1hc2tvY3RzWyRpXSA8PiAkaXBvY3RzWyRpXSkgJHJlc3VsdCA9IDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG1hdGNoZXMoJGlwYWRkcikKICAgIHsKICAgICAgICAvLyByZXR1cm4gdHJ1ZSBpZiB3ZSBoYXZlIGEgdmFsaWQgbGlzdAogICAgICAgIC8vIGFuZCB0aGUgaXRlbSBtYXRjaGVzLgogICAgICAgICRpcGFkZHIgPSB0cmltKCRpcGFkZHIpOwogICAgICAgIGlmKCAhJGlwYWRkciApIHJldHVybjsKICAgICAgICBpZiggIWNvdW50KCR0aGlzLT5fbGlzdCkgKSByZXR1cm47CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9saXN0IGFzICRsaW5lICkgewogICAgICAgICAgICBpZiggJHRoaXMtPl90ZXN0aXAoICRsaW5lLCAkaXBhZGRyICkgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ipMaskList.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCi8vIHJlcHJlc2VudHMKY2xhc3MgaXBNYXNrTGlzdAp7Cgp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.IPSuspendedTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIElQU3VzcGVuZGVkVGVzdCBleHRlbmRzIFRlc3QKewogICAgcHJpdmF0ZSAkX2RiOwogICAgcHJpdmF0ZSAkX2RhdGEgPSBbICdpcF9hZGRyJz0+bnVsbCwgJ3RpbWVfcGVyaW9kJyA9PiAzNjAwIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYixQcmVmZXJlbmNlcyAkcGFyYW1zKQogICAgewogICAgICAgIC8vIHRvZG86IHZhbGlkYXRlIGRiLgogICAgICAgICR0aGlzLT5fZGIgPSAkZGI7CgogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ3RpbWVfcGVyaW9kJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IG1heCgzMCwoaW50KSR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3JlYXNvbic6CiAgICAgICAgICAgIGNhc2UgJ2lwX2FkZHInOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICd0aW1lX3BlcmlvZCc6CiAgICAgICAgICAgIHJldHVybiAoaW50KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgY2FzZSAncmVhc29uJzoKICAgICAgICBjYXNlICdpcF9hZGRyJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9kYXRhWyRrZXldKTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIGdldHRhYmxlIG1lbWJlciBvZiAiLmdldF9jbGFzcygkdGhpcykpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aHRpbWVQZXJpb2QoJHNlY29uZHMpCiAgICB7CiAgICAgICAgJHNlY29uZHMgPSBtYXgoMzAsKGludCkkc2Vjb25kcyk7CiAgICAgICAgJG9iaiA9IGNsb25lICR0aGlzOwogICAgICAgICRvYmotPl9kYXRhWyd0aW1lX3BlcmlvZCddID0gJHNlY29uZHM7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGVuYWJsZWQoKQogICAgewogICAgICAgIHJldHVybiAoJHRoaXMtPnRpbWVfcGVyaW9kID4gMCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcGFzc2VzKCkKICAgIHsKICAgICAgICAvLyByZXR1cm4gVFJVRSBpZiB0aGUgdXNlciBpcyBzdXNwZW5kZWQKICAgICAgICAkdGhpcy0+dmFsaWRhdGUoKTsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBjb3VudChpcF9hZGRyKSBGUk9NICcuRXZlbnREQU86OnRhYmxlX25hbWUoKS4nIFdIRVJFIGlwX2FkZHIgPSA/IEFORCB3aGF0ID0gPyBBTkQgdHMgPj0gPyc7CiAgICAgICAgJHdoZW4gPSB0aW1lKCkgLSAkdGhpcy0+dGltZV9wZXJpb2Q7CiAgICAgICAgJG51bSA9ICR0aGlzLT5fZGItPkdldE9uZSgkc3FsLFsgJ2lwX2FkZHInPT4kdGhpcy0+aXBfYWRkciwgJ3doYXQnPT5JUFN1c3BlbnNpb25DcmVhdGVkRXZlbnQ6OldIQVQsICd0cyc9PiR3aGVuIF0gKTsKICAgICAgICBpZiggJG51bSA+IDAgKSByZXR1cm4gVFJVRTsKICAgIH0KCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.IPSuspensionCreatedEvent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIElQU3VzcGVuc2lvbkNyZWF0ZWRFdmVudCBleHRlbmRzIENyaXRpY2FsRXZlbnQKewogICAgY29uc3QgV0hBVCA9ICdJUFNVU1BFTkRFRCc7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRwYXJhbXMpCiAgICB7CiAgICAgICAgJHBhcmFtc1snd2hhdCddID0gc2VsZjo6V0hBVDsKICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3JlYXNvbiddKSApICRwYXJhbXNbJ3JlYXNvbiddID0gJ0FjY2VzcyBmcm9tIElQIGFkZHJlc3MgdGVtcG9yYXJpbHkgc3VzcGVuZGVkJzsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgcGFyZW50Ojp2YWxpZGF0ZSgpOwogICAgICAgIGlmKCAkdGhpcy0+d2hhdCAhPSBzZWxmOjpXSEFUICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB3aGF0IHZhbHVlIGZvciBhICcuX19DTEFTU19fKTsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.IPSuspensionEvent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIElQU3VzcGVuc2lvbkV2ZW50IGV4dGVuZHMgRXZlbnQKewogICAgY29uc3QgV0hBVCA9ICdJUFNVU1BFTkRFREFDVElWSVRZJzsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoYXJyYXkgJHBhcmFtcykKICAgIHsKICAgICAgICAkcGFyYW1zWyd3aGF0J10gPSBzZWxmOjpXSEFUOwogICAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1sncmVhc29uJ10pICkgJHBhcmFtc1sncmVhc29uJ10gPSAnQWN0aXZpdHkgZnJvbSBzdXNwZW5kZWQgSVAgYWRkcmVzcy4nOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OnZhbGlkYXRlKCk7CiAgICAgICAgaWYoICR0aGlzLT53aGF0ICE9IHNlbGY6OldIQVQgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHdoYXQgdmFsdWUgZm9yIGEgJy5fX0NMQVNTX18pOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.MultipleFEULoginIPsEvent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIE11bHRpcGxlRkVVTG9naW5JUHNFdmVudCBleHRlbmRzIEV2ZW50CnsKICAgIGNvbnN0IFdIQVQgPSAnRkVVTVVMVElQTEVMT0dJTklQUyc7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRwYXJhbXMpCiAgICB7CiAgICAgICAgJHBhcmFtc1snd2hhdCddID0gc2VsZjo6V0hBVDsKICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3JlYXNvbiddKSApICRwYXJhbXNbJ3JlYXNvbiddID0gJ011bHRpcGxlIGxvZ2luIElQcyBEZXRlY3RlZC4nOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OnZhbGlkYXRlKCk7CiAgICAgICAgaWYoICR0aGlzLT53aGF0ICE9IHNlbGY6OldIQVQgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHdoYXQgdmFsdWUgZm9yIGEgJy5fX0NMQVNTX18pOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.Preferences.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIFByZWZlcmVuY2VzIGltcGxlbWVudHMgXEFycmF5QWNjZXNzLCBcQ291bnRhYmxlLCBcSXRlcmF0b3IKewogICAgcHJpdmF0ZSAkX25hbWU7CiAgICBwcml2YXRlICRfZGF0YSA9IFtdOwogICAgcHJpdmF0ZSAkX2N1cjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5hbWUsIGFycmF5ICRkYXRhKQogICAgewogICAgICAgICR0aGlzLT5fbmFtZSA9IHRyaW0oJG5hbWUpOwogICAgICAgICR0aGlzLT5fZGF0YSA9ICRkYXRhOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbmFtZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gT2Zmc2V0R2V0KCRrZXkpCiAgICB7CiAgICAgICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJGtleSwkdGhpcy0+X2RhdGEpICkgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gT2Zmc2V0U2V0KCRrZXksJHZhbCkKICAgIHsKICAgICAgICAka2V5ID0gdHJpbSgka2V5KTsKICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBPZmZzZXRFeGlzdHMoJGtleSkKICAgIHsKICAgICAgICAka2V5ID0gdHJpbSgka2V5KTsKICAgICAgICByZXR1cm4gYXJyYXlfa2V5X2V4aXN0cygka2V5LCR0aGlzLT5fZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIE9mZnNldFVuc2V0KCRrZXkpCiAgICB7CiAgICAgICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJGtleSwkdGhpcy0+X2RhdGEpICkgdW5zZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnQoKQogICAgewogICAgICAgIHJldHVybiBjb3VudCgkdGhpcy0+X2RhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjdXJyZW50KCkKICAgIHsKICAgICAgICByZXR1cm4gY3VycmVudCgkdGhpcy0+X2RhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBrZXkoKQogICAgewogICAgICAgIHJldHVybiBrZXkoJHRoaXMtPl9kYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbmV4dCgpCiAgICB7CiAgICAgICAgbmV4dCgkdGhpcy0+X2RhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXdpbmQoKQogICAgewogICAgICAgIHJlc2V0KCR0aGlzLT5fZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkKCkKICAgIHsKICAgICAgICByZXR1cm4gIWlzX251bGwoa2V5KCR0aGlzLT5fZGF0YSkpOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.SelfregRegistrationEvent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIFNlbGZyZWdSZWdpc3RyYXRpb25FdmVudCBleHRlbmRzIEV2ZW50CnsKICAgIGNvbnN0IFdIQVQgPSAnU0VMRlJFR1JFR0lTVFJBVElPTic7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRwYXJhbXMpCiAgICB7CiAgICAgICAgJHBhcmFtc1snd2hhdCddID0gc2VsZjo6V0hBVDsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgcGFyZW50Ojp2YWxpZGF0ZSgpOwogICAgICAgIGlmKCAkdGhpcy0+d2hhdCAhPSBzZWxmOjpXSEFUICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB3aGF0IHZhbHVlIGZvciBhICcuX19DTEFTU19fKTsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.SelfregSameIPsTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIFNlbGZyZWdTYW1lSVBzVGVzdCBleHRlbmRzIFRlc3QKewogICAgcHJpdmF0ZSAkX2RiOwogICAgcHJpdmF0ZSAkX2RhdGEgPSBbICdpcF9hZGRyJz0+bnVsbCwgJ251bV9yZWdzJz0+MywgJ3RpbWVfcGVyaW9kJz0+MzAwIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYixQcmVmZXJlbmNlcyAkcGFyYW1zKQogICAgewogICAgICAgIC8vIHRvZG86IHZhbGlkYXRlIGRiLgogICAgICAgICR0aGlzLT5fZGIgPSAkZGI7CgogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2lwX2FkZHInOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdudW1fcmVncyc6CiAgICAgICAgICAgIGNhc2UgJ3RpbWVfcGVyaW9kJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IG1heCgwLChpbnQpJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnbnVtX3JlZ3MnOgogICAgICAgIGNhc2UgJ3RpbWVfcGVyaW9kJzoKICAgICAgICAgICAgcmV0dXJuIChpbnQpICR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICBjYXNlICdpcF9hZGRyJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9kYXRhWyRrZXldKTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIGdldHRhYmxlIG1lbWJlciBvZiAiLmdldF9jbGFzcygkdGhpcykpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aE51bVJlZ3MoJHZhbCkKICAgIHsKICAgICAgICAkb2JqID0gY2xvbmUgJHRoaXM7CiAgICAgICAgJG9iai0+X2RhdGFbJ251bV9yZWdzJ10gPSBtYXgoMCwoaW50KSR2YWwpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB3aXRoVGltZVBlcmlvZCgkdmFsKQogICAgewogICAgICAgICRvYmogPSBjbG9uZSAkdGhpczsKICAgICAgICAkb2JqLT5fZGF0YVsndGltZV9wZXJpb2QnXSA9IG1heCgwLChpbnQpJHZhbCk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZW5hYmxlZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICgkdGhpcy0+bnVtX3JlZ3MgPiAwICYmICR0aGlzLT50aW1lX3BlcmlvZCA+IDApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBwYXNzZXMoKQogICAgewogICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydpcF9hZGRyJ10pIHx8ICR0aGlzLT5fZGF0YVsnaXBfYWRkciddIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ05vIElQIEFkZHJlc3MgcGFzc2VkIHRvICcuX19DTEFTU19fKTsKCiAgICAgICAgaWYoICEkdGhpcy0+ZW5hYmxlZCgpICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkc3FsID0gJ1NFTEVDVCBjb3VudChpcF9hZGRyKQogICAgICAgICAgICAgICAgRlJPTSAnLkV2ZW50REFPOjp0YWJsZV9uYW1lKCkuJwogICAgICAgICAgICAgICAgV0hFUkUgd2hhdCA9ID8gQU5EIGlwX2FkZHIgPSA/IEFORCB0cyA+PSA/JzsKICAgICAgICAkcmVmZGF0ZSA9ICR0aGlzLT5fZGItPkRiVGltZXN0YW1wKHRpbWUoKSAtICR0aGlzLT50aW1lX3BlcmlvZCk7CiAgICAgICAgJHJlZmRhdGUgPSB0cmltKCRyZWZkYXRlLCInIik7CiAgICAgICAgJG51bSA9ICR0aGlzLT5fZGItPkdldE9uZSgkc3FsLFsgU2VsZnJlZ1JlZ2lzdHJhdGlvbkV2ZW50OjpXSEFULCAkdGhpcy0+aXBfYWRkciwgJHJlZmRhdGUgXSApOwogICAgICAgIGlmKCAkbnVtID49ICR0aGlzLT5udW1fcmVncyApIHJldHVybiBUUlVFOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.Test.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmFic3RyYWN0IGNsYXNzIFRlc3QKewogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGVuYWJsZWQoKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHBhc3NlcygpOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBmYWlscygpCiAgICB7CiAgICAgICAgcmV0dXJuICEkdGhpcy0+cGFzc2VzKCk7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmZpbmFsIGNsYXNzIHV0aWxzCnsKICAgIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0RmFjdG9yeUNyaXRpY2FsRXZlbnRzUHJlZigpCiAgICB7CiAgICAgICAgJHByZWZzID0gbmV3IFByZWZlcmVuY2VzKENNU01TVGVzdFN0b3JhZ2U6OkNSSVRJQ0FMRVZFTlRTX1BSRUYsWydhZG1pbl9ncm91cCc9PjFdKTsKICAgICAgICAkcHJlZnNbJ3N1YmpfdHBsJ10gPSAne3NpdGVuYW1lfTogSW1wb3J0YW50IHNlY3VyaXR5IGV2ZW50IGRldGVjdGVkJzsKICAgICAgICAkcHJlZnNbJ2JvZHlfdHBsJ10gPSBmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRElSX18pLicvdGVtcGxhdGVzL29yaWdfY3JpdGljYWxldmVudF9lbWFpbC50cGwnKTsKICAgICAgICByZXR1cm4gJHByZWZzOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.WhitelistTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCmNsYXNzIFdoaXRlbGlzdFRlc3QgZXh0ZW5kcyBUZXN0CnsKICAgIHByaXZhdGUgJF9kYXRhID0gWyAnaXBfYWRkcic9Pm51bGwsICdlbnRyeXRleHQnPT5udWxsIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFByZWZlcmVuY2VzICRwYXJhbXMpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAnaXBfYWRkcic6CiAgICAgICAgICAgIGNhc2UgJ2VudHJ5dGV4dCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpcF9hZGRyJzoKICAgICAgICBjYXNlICdlbnRyeXRleHQnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2RhdGFbJGtleV0pOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgZ2V0dGFibGUgbWVtYmVyIG9mICIuX19DTEFTU19fKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGhFbnRyeVRleHQoJHRleHQpCiAgICB7CiAgICAgICAgJG9iaiA9IGNsb25lICR0aGlzOwogICAgICAgICRvYmotPl9kYXRhWydlbnRyeXRleHQnXSA9IHRyaW0oJHRleHQpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGVuYWJsZWQoKQogICAgewogICAgICAgIHJldHVybiAoJHRoaXMtPmVudHJ5dGV4dCAhPSAnJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHBhc3NlcygpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lwX2FkZHInXSkgfHwgISR0aGlzLT5fZGF0YVsnaXBfYWRkciddICkgewogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBpcCBhZGRyZXNzIHBhc3NlZCB0byAnLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgICAgIGlmKCAkdGhpcy0+ZW50cnl0ZXh0ICkgewogICAgICAgICAgICAkdGVzdGVyID0gbmV3IGlwQWRkcmVzc1Rlc3RlcigkdGhpcy0+ZW50cnl0ZXh0KTsKICAgICAgICAgICAgcmV0dXJuICR0ZXN0ZXItPm1hdGNoZXMoJHRoaXMtPmlwX2FkZHIpOwogICAgICAgIH0KICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/extraclasses.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCi8qKgogKiBBIHNwZWNpYWwgdHlwZSBvZiBldmVudCB0aGF0IG11c3QgYmUgaGFuZGxlZCBkaWZmZXJlbnRseS4KICovCmNsYXNzIENyaXRpY2FsRXZlbnQgZXh0ZW5kcyBFdmVudCB7fQo=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.iEvent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHTG9naW5TZWN1cml0eTsKCi8qCiAqIENvbnRyYWN0IGZvciBhbiBldmVudAogKi8KaW50ZXJmYWNlIGlFdmVudAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdGV4dCgpOwogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKdXNlIFxDR0xvZ2luU2VjdXJpdHlcUHJlZmVyZW5jZXM7CnVzZSBcQ0dMb2dpblNlY3VyaXR5XENNU01TVGVzdFN0b3JhZ2U7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vIGNyZWF0ZSBldmVudCBoYW5kbGVycy4KJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignU2VsZlJlZ2lzdHJhdGlvbicsJ2JlZm9yZU5ld1VzZXInLEZBTFNFKTsKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ0FmdGVyTG9naW5BdXRoJyxGQUxTRSk7CiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdCZWZvcmVMb2dpbicsRkFMU0UpOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dpbicsRkFMU0UpOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dpbkZhaWxlZCcsRkFMU0UpOwokdGhpcy0+Q3JlYXRlRXZlbnQoQ0dMb2dpblNlY3VyaXR5OjpFVkVOVF9PTklQU1VTUEVOREVEKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJGZsZHMgPSAiCiAgICAgaWQgICAgICAgIEMoMTI4KSBLRVkgTk9UTlVMTCwKICAgICBpcF9hZGRyICAgQyg2NCkgTk9UTlVMTCwKICAgICB3aGF0ICAgICAgQyg2NCkgTk9UTlVMTCwKICAgICB1aWQgICAgICAgSSwKICAgICB1c2VybmFtZSAgQygyNTUpLAogICAgIHRzICAgICAgICBJIE5PVE5VTEwsCiAgICAgcmVhc29uICAgIFgKIjsKJHNxbGFyciA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCggXENHTG9naW5TZWN1cml0eVxFdmVudERBTzo6dGFibGVfbmFtZSgpLCAkZmxkcywgJHRhYm9wdGFycmF5ICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycik7CiRzcWxhcnIgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidjZ2xzX2lkeDAnLFxDR0xvZ2luU2VjdXJpdHlcRXZlbnREQU86OnRhYmxlX25hbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXBfYWRkcicpOwokc3FsYXJyID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4nY2dsc19pZHgxJyxcQ0dMb2dpblNlY3VyaXR5XEV2ZW50REFPOjp0YWJsZV9uYW1lKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RzJyk7CiRzcWxhcnIgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidjZ2xzX2lkeDInLFxDR0xvZ2luU2VjdXJpdHlcRXZlbnREQU86OnRhYmxlX25hbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2hhdCx0cycpOwoKLy8gc2V0dXAgaW5pdGlhbCBwcmVmZXJlbmNlcwokcHJlZnMgPSBuZXcgUHJlZmVyZW5jZXMoQ01TTVNUZXN0U3RvcmFnZTo6V0hJVEVMSVNUVEVTVF9QUkVGLFsnZW50cnl0ZXh0Jz0+JyddKTsKJHRoaXMtPl90ZXN0X3N0b3JhZ2UtPnNldF9tYXN0ZXJfcHJlZigkcHJlZnMpOwokcHJlZnMgPSBuZXcgUHJlZmVyZW5jZXMoQ01TTVNUZXN0U3RvcmFnZTo6QkxBQ0tMSVNUVEVTVF9QUkVGLFsnZW50cnl0ZXh0Jz0+JyddKTsKJHRoaXMtPl90ZXN0X3N0b3JhZ2UtPnNldF9tYXN0ZXJfcHJlZigkcHJlZnMpOwokcHJlZnMgPSBuZXcgUHJlZmVyZW5jZXMoQ01TTVNUZXN0U3RvcmFnZTo6SVBTVVNQRU5ERURURVNUX1BSRUYsWyd0aW1lX3BlcmlvZCc9PjM2MDBdKTsKJHRoaXMtPl90ZXN0X3N0b3JhZ2UtPnNldF9tYXN0ZXJfcHJlZigkcHJlZnMpOwokcHJlZnMgPSBuZXcgUHJlZmVyZW5jZXMoQ01TTVNUZXN0U3RvcmFnZTo6RkVVTE9HSU5NVUxUSVBMRUlQU19QUkVGLFsnbnVtX2lwcyc9PjMsICd0aW1lX3BlcmlvZCc9PjMwMF0pOwokdGhpcy0+X3Rlc3Rfc3RvcmFnZS0+c2V0X21hc3Rlcl9wcmVmKCRwcmVmcyk7CiRwcmVmcyA9IG5ldyBQcmVmZXJlbmNlcyhDTVNNU1Rlc3RTdG9yYWdlOjpGQUlMRURGRVVMT0dJTlRFU1RfUFJFRixbJ251bV9mYWlsZWQnPT41LCAndGltZV9wZXJpb2QnPT4zMDBdKTsKJHRoaXMtPl90ZXN0X3N0b3JhZ2UtPnNldF9tYXN0ZXJfcHJlZigkcHJlZnMpOwokcHJlZnMgPSBuZXcgUHJlZmVyZW5jZXMoQ01TTVNUZXN0U3RvcmFnZTo6U0VMRlJFR1NBTUVJUF9QUkVGLFsnbnVtX3JlZ3MnPT4zLCAndGltZV9wZXJpb2QnPT4zMDBdKTsKJHRoaXMtPl90ZXN0X3N0b3JhZ2UtPnNldF9tYXN0ZXJfcHJlZigkcHJlZnMpOwokcHJlZnMgPSBcQ0dMb2dpblNlY3VyaXR5XHV0aWxzOjpHZXRGYWN0b3J5Q3JpdGljYWxFdmVudHNQcmVmKCk7CiR0aGlzLT5fdGVzdF9zdG9yYWdlLT5zZXRfbWFzdGVyX3ByZWYoJHByZWZzKTs=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8gcmVtb3ZlIGV2ZW50IGhhbmRsZXJzCiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ1NlbGZSZWdpc3RyYXRpb24nLCdiZWZvcmVOZXdVc2VyJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdCZWZvcmVMb2dpbicpOwokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dpbicpOwokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dpbkZhaWxlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnQoQ0dMb2dpblNlY3VyaXR5OjpFVkVOVF9PTklQU1VTUEVOREVEKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKJHNxbGFyciA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoXENHTG9naW5TZWN1cml0eVxFdmVudERBTzo6dGFibGVfbmFtZSgpKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyKTsK]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IENHTG9naW5TZWN1cml0eQp2ZXJzaW9uID0gMS4wCmRlc2NyaXB0aW9uID0gLS0gTWlzc2luZyBMYW5ndWFnZXN0cmluZzogbW9kZGVzY3JpcHRpb24gLS0KYXV0aG9yID0gY2FsZ3V5MTAwMAphdXRob3JlbWFpbCA9IGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcKbWluY21zdmVyc2lvbiA9IDIuMS41Cmxhenlsb2FkYWRtaW4gPSAxCmxhenlsb2FkZnJvbnRlbmQgPSAxCltkZXBlbmRzXQpDR0V4dGVuc2lvbnMgPSAxLjUzLjEzCkZyb250RW5kVXNlcnMgPSAyLjIuMC42ClNlbGZSZWdpc3RyYXRpb24gPSAxLjEwCg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_blacklist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPWFkbWluX2JsYWNrbGlzdH0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2JsYWNrbGlzdGluZycpfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnYmxhY2tsaXN0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH10ZXh0IiBjb2xzPTgwIHJvd3M9MTA+eyR0ZXN0LT5lbnRyeXRleHR9PC90ZXh0YXJlYT4KICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX2JsYWNrbGlzdF90ZXh0Jyl9CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_criticalevents_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2NyaXRpY2FsZXZlbnRzX3RhYicpfTwvZGl2PgoKe2Zvcm1fc3RhcnQgYWN0aW9uPWFkbWluX2NyaXRpY2FsZXZlbnRzX3RhYn0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgeyRtb2QtPkxhbmcoJ2FkbWluX2dyb3VwJyl9OgogICA8L3A+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9YWRtaW5fZ3JvdXAiPgogICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGdyb3VwcyBzZWxlY3RlZD0kcHJlZnMuYWRtaW5fZ3JvdXB9CiAgICAgIDwvc2VsZWN0PgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX2NyaXRpY2FsZXZlbnRzX2FkbWluZ3JvdXAnKX0KICAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgeyRtb2QtPkxhbmcoJ2VtYWlsX3N1YmplY3QnKX06CiAgIDwvcD4KICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfXN1YmpfdHBsIiByb3dzPSI0IiBjb2xzPSI4MCI+eyRwcmVmcy5zdWJqX3RwbH08L3RleHRhcmVhPgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX2NyaXRpY2FsZXZlbnRzX3N1YmpfdHBsJyl9CiAgIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgIDxwIGNsYXNzPSJwYWdldGV4dCI+CiAgICAgIHskbW9kLT5MYW5nKCdlbWFpbF9ib2R5Jyl9OgogICA8L3A+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1ib2R5X3RwbCIgcm93cz0iMTAiIGNvbHM9IjgwIj57JHByZWZzLmJvZHlfdHBsfTwvdGV4dGFyZWE+CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fY3JpdGljYWxldmVudHNfYm9keV90cGwnKX0KICAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_failedfeulogins.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2ZhaWxlZGZldWxvZ2lucycpfTwvZGl2PgoKe2Zvcm1fc3RhcnQgYWN0aW9uPWFkbWluX2ZhaWxlZGZldWxvZ2luc30KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICA8cCBjbGFzcz0icGFnZXRleHQiPgogICAgICB7JG1vZC0+TGFuZygnbnVtYmVyX29mX2V2ZW50cycpfToKICAgPC9wPgogICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgbWluPSIwIiBtYXg9IjEwMCIgbmFtZT0ieyRhY3Rpb25pZH1udW1fZmFpbGVkIiB2YWx1ZT0ieyR0ZXN0LT5udW1fZmFpbGVkfSIvPgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX2ZhaWxlZGZldWxvZ2luX251bWV2ZW50cycpfQogICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICA8cCBjbGFzcz0icGFnZXRleHQiPgogICAgICB7JG1vZC0+TGFuZygndGltZWxpbWl0Jyl9OgogICA8L3A+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBtaW49IjAiIG1heD0iMzYwMCIgbmFtZT0ieyRhY3Rpb25pZH10aW1lX3BlcmlvZCIgdmFsdWU9InskdGVzdC0+dGltZV9wZXJpb2R9Ii8+CiAgICAgIHskbW9kLT5MYW5nKCdzZWNvbmRzJyl9CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZmFpbGVkZmV1bG9naW5fdGltZXBlcmlvZCcpfQogICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_feumultipleloginips.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2ZldW11bHRpcGxlbG9naW5pcHMnKX08L2Rpdj4Ke2Zvcm1fc3RhcnQgYWN0aW9uPWFkbWluX2ZldW11bHRpcGxlbG9naW5pcHN9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgeyRtb2QtPkxhbmcoJ251bWJlcl9vZl9pcHMnKX06CiAgIDwvcD4KICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIG1pbj0iMCIgbWF4PSIxMDAiIG5hbWU9InskYWN0aW9uaWR9bnVtX2lwcyIgdmFsdWU9InskdGVzdC0+bnVtX2lwc30iLz4KICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19mZXVtdWx0aXBsZWxvZ2luaXBzX251bWlwcycpfQogICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICA8cCBjbGFzcz0icGFnZXRleHQiPgogICAgICB7JG1vZC0+TGFuZygndGltZWxpbWl0Jyl9OgogICA8L3A+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBtaW49IjAiIG1heD0iMzYwMCIgbmFtZT0ieyRhY3Rpb25pZH10aW1lX3BlcmlvZCIgdmFsdWU9InskdGVzdC0+dGltZV9wZXJpb2R9Ii8+CiAgICAgIHskbW9kLT5MYW5nKCdzZWNvbmRzJyl9CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZmV1bXVsdGlwbGVsb2dpbmlwc190aW1lcGVyaW9kJyl9CiAgIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_selfreg_sameip.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3NlbGZyZWdfc2FtZWlwJyl9PC9kaXY+Cgp7Zm9ybV9zdGFydCBhY3Rpb249YWRtaW5fc2VsZnJlZ19zYW1laXB9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgeyRtb2QtPkxhbmcoJ251bWJlcl9vZl9ldmVudHMnKX06CiAgIDwvcD4KICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIG1pbj0iMCIgbWF4PSIxMDAiIG5hbWU9InskYWN0aW9uaWR9bnVtX3JlZ3MiIHZhbHVlPSJ7JHRlc3QtPm51bV9yZWdzfSIvPgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3NlbGZyZWdzYW1laXBfbnVtcmVncycpfQogICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICA8cCBjbGFzcz0icGFnZXRleHQiPgogICAgICB7JG1vZC0+TGFuZygndGltZWxpbWl0Jyl9OgogICA8L3A+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBtaW49IjAiIG1heD0iMzYwMCIgbmFtZT0ieyRhY3Rpb25pZH10aW1lX3BlcmlvZCIgdmFsdWU9InskdGVzdC0+dGltZV9wZXJpb2R9Ii8+CiAgICAgIHskbW9kLT5MYW5nKCdzZWNvbmRzJyl9CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fc2VsZnJlZ3NhbWVpcF90aW1lcGVyaW9kJyl9CiAgIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_status_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KdHIuY2dsc19hY3RpdmUgdGQgewogICBjb2xvcjogcmVkOwp9Cjwvc3R5bGU+Cgo8ZmllbGRzZXQ+CiAgPGxhYmVsPnskbW9kLT5MYW5nKCdzdXNwZW5kZWRfaXBzJyl9PC9sYWJlbD4KICB7aWYgIWVtcHR5KCRzdXNwZW5kZWQpfQogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2N1cl9zdXNwZW5kZWRfaXBzJyl9PC9kaXY+CiAgICA8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+CiAgICAgIDx0aGVhZD4KICAgICAgICA8dHI+CgkgIDx0aD57JG1vZC0+TGFuZygnaXBfYWRkcicpfTwvdGg+CgkgIDx0aD57JG1vZC0+TGFuZygnd2hlbicpfTwvdGg+CgkgIDx0aD57JG1vZC0+TGFuZygndW50aWwnKX08L3RoPgoJICA8dGg+eyRtb2QtPkxhbmcoJ3JlYXNvbicpfTwvdGg+Cgk8L3RyPgogICAgICA8L3RoZWFkPgogICAgICA8dGJvZHk+CiAgICAgICAge2ZvcmVhY2ggJHN1c3BlbmRlZCBhcyAkb25lfQoJICB7JGFjdGl2ZT0wfXtpZiAkb25lLT50cyArICR0aW1lX3BlcmlvZCA+PSAkc21hcnR5Lm5vd317JGFjdGl2ZT0xfXsvaWZ9CgkgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30ge2lmICRhY3RpdmV9Y2dsc19hY3RpdmV7L2lmfSI+CgkgICAgPHRkPnskb25lLT5pcF9hZGRyfTwvdGQ+CgkgICAgPHRkPnskb25lLT50c3xkYXRlX2Zvcm1hdDonJXggJVgnfTwvdGQ+CgkgICAgPHRkPnskdG1wPSRvbmUtPnRzKyR0aW1lX3BlcmlvZH17JHRtcHxyZWxhdGl2ZV90aW1lfTwvdGQ+CgkgICAgPHRkPnskb25lLT5yZWFzb258c3VtbWFyaXplfTwvdGQ+CgkgIDwvdHI+Cgl7L2ZvcmVhY2h9CiAgICAgIDx0Ym9keT4KICAgIDwvdGFibGU+CiAgey9pZn0KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_suspensions.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3N1c3BlbnNpb25zJyl9PC9kaXY+Cgp7Zm9ybV9zdGFydCBhY3Rpb249YWRtaW5fc3VzcGVuc2lvbnN9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgeyRtb2QtPkxhbmcoJ3RpbWVsaW1pdCcpfToKICAgPC9wPgogICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgbWluPSIzMCIgbWF4PSI3MjAwIiBzdGVwPSIzMCIgbmFtZT0ieyRhY3Rpb25pZH10aW1lX3BlcmlvZCIgdmFsdWU9InskdGVzdC0+dGltZV9wZXJpb2R9Ii8+CiAgICAgIHskbW9kLT5MYW5nKCdzZWNvbmRzJyl9CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fc3VzcGVuc2lvbnNfdGltZXBlcmlvZCcpfQogICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_whitelist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPWFkbWluX3doaXRlbGlzdH0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3doaXRlbGlzdGluZycpfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnd2hpdGVsaXN0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH10ZXh0IiBjb2xzPTgwIHJvd3M9MTA+eyR0ZXN0LT5lbnRyeXRleHR9PC90ZXh0YXJlYT4KICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3doaXRlbGlzdF90ZXh0Jyl9CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_criticalevent_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogb3JpZ2luYWwgZW1haWwgYm9keSBmb3IgY3JpdGljYWwgZXZlbnRzICp9Cgo8cD5IZWxsbyBBZG1pbmlzdHJhdG9yLDwvcD4KPHA+VGhlIENHTG9naW5TZWN1cml0eSBtb2R1bGUgaGFzIGRldGVjdGVkIGEgY3JpdGljYWwgc2VjdXJpdHkgZXZlbnQgb24gPHN0cm9uZz57c2l0ZW5hbWV9PC9zdHJvbmc+LjwvcD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPkV2ZW50IERldGFpbHM6PC9sZWdlbmQ+CiAgPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiB7JGV2ZW50LT5uYW1lfTwvcD4KICA8cD48c3Ryb25nPldoYXQ6PC9zdHJvbmc+IHskZXZlbnQtPndoYXR9PC9wPgogIDxwPjxzdHJvbmc+V2hlbjo8L3N0cm9uZz4geyRldmVudC0+dHN8ZGF0ZV9mb3JtYXQ6JyV4ICVYJ308L3A+CiAgPHA+PHN0cm9uZz5SZWFzb246PC9zdHJvbmc+IHskZXZlbnQtPnJlYXNvbn08L3A+CiAgPHA+PHN0cm9uZz5JUCBBZGRyZXNzOjwvc3Ryb25nPiB7JGV2ZW50LT5pcF9hZGRyfTwvcD4KICA8cD48c3Ryb25nPlVzZXI6PC9zdHJvbmc+CiAge2lmICRldmVudC0+dWlkID4gMH0KICB7JGV2ZW50LT51c2VybmFtZXxkZWZhdWx0OiduL2EnfSA8ZW0+KHskZXZlbnQtPnVpZHxkZWZhdWx0OiduL2EnfSk8L2VtPjwvcD4KICB7ZWxzZX0KICBuL2EKICB7L2lmfQo8L2ZpZWxkc2V0PgoKPHA+VGhpcyBtZXNzYWdlIGlzIGp1c3QgZm9yIHlvdXIgYXR0ZW50aW9uLiAgVGhlIHNlY3VyaXR5IGV2ZW50IG1heSBoYXZlIGFscmVhZHkgYmVlbiBoYW5kbGVkIG9uIHlvdXIgd2Vic2l0ZS48L3A+]]></data>
	</file>
</module>
