<?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>SecureLogin</name>
	<version>1.1.1</version>
  <mincmsversion>1.11.5</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPk1vZHVsZSBzZWN1cmVzIGxvZ2luIHByb2Nlc3Mgd2l0aCBpcC13aGl0ZWxpc3QuIFdoZW4gdXNlciBpcyBsb2dnaW5nIGluIG1vZHVsZSB3aWxsIGNoZWNrIGlmIGhpcy9oZXJzIGlwIGlzIGluIHRoZSB3aGl0ZWxpc3QuIElmIG5vdCwgdXNlciB3aWxsIGdldCBhbiBlbWFpbCB3aXRoIGxpbmssIHdoaWNoIGFkZHMgdXNlcidzIGlwIGluIHRoZSBsaXN0IGFmdGVyIGNsaWNrLiAgICBIZWxwcyBlc3BlY2lhbGx5IGlmIHVzZXIgbG9zdCBoaXMgY3JlZGVudGlhbHMsIGF0dGFja2VyIHdpbGwgbm90IGJlIGFibGUgdG8gbG9naW4gYmVjYXVzZSBvZiBpcCBjaGVjay48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5BbGwgeW91IG5lZWQgdG8gZG8gaXMgdG8gaW5zdGFsbCBtb2R1bGUuIEFmdGVyIHNvbWVvbmUgaGFzIHRyaWVkIHRvIGxvZyBpbiBmcm9tIG5ldyBpcCwgeW91IGNhbiBhcHByb3ZlIGl0IG1hbnVhbGx5IGZyb20gbWFuYWdlbWVudCBwYWdlIHVuZGVyICJTaXRlIEFkbWluIi48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxNCwgSm9uaSBIYXNhbmVuIDxhIGhyZWY9Im1haWx0bzpqb25pLmhhc2FuZW5AcGllY2VvZmNvZGUubmV0Ij4mbHQ7am9uaS5oYXNhbmVuQHBpZWNlb2Zjb2RlLm5ldCZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DTVNNYWlsZXIgPSZndDsgNS4yLjE8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKb25pIEhhc2FuZW4gJmx0O2pvbmkuaGFzYW5lbkBwaWVjZW9mY29kZS5uZXQmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4xLjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CjxsaT5WZXJzaW9uIDEuMS4xIC0gMTggTWF5IDIwMTQuIFVwZGF0ZWQgdXBncmFkZSBwcm9jZXNzLjwvbGk+CjxsaT5WZXJzaW9uIDEuMSAtIDE4IE1heSAyMDE0LiBGaXhlZCBidWcgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9idWcvdmlldy85NjI5LiBBZGRlZCBwb3NzaWJpbGl0eSB0byByZWRpcmVjdCB1c2VyIGFmdGVyIGZpcnN0IGxvZ2luIGZyb20gdW5rb3duIGFkZHJlc3MuPC9saT4KPGxpPlZlcnNpb24gMS4wLzEuMC4xIC0gMjEgU2VwdGVtYmVyIDIwMTMuIEZpcnN0IHJlbGVhc2UuPC9saT4KPGxpPlZlcnNpb24gMS4wIGJldGE0IC0gMTAgTWF5IDIwMTMuIFJlbGVhc2luZyBmb3VydGggYmV0YS48L2xpPgo8bGk+VmVyc2lvbiAxLjAgYmV0YTMgLSAwOSBNYXkgMjAxMy4gUmVsZWFzaW5nIHRoaXJkIGJldGEuPC9saT4KPGxpPlZlcnNpb24gMS4wIGJldGEyIC0gMDkgTWF5IDIwMTMuIFJlbGVhc2luZyBzZWNvbmQgYmV0YS48L2xpPgo8bGk+VmVyc2lvbiAxLjAgYmV0YSAtIDI3IEFwcmlsIDIwMTMuIFJlbGVhc2luZyBmaXJzdCBiZXRhLjwvbGk+CjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[Module secures login process with ip-whitelist. When user is logging in module will check if his/hers ip is in the whitelist. If not, user will get an email with link, which adds user's ip in the list after click.    Helps especially if user lost his credentials, attacker will not be able to login because of ip check.]]></description>
	<requires>
	  <requiredname>CMSMailer</requiredname>
	  <requiredversion>5.2.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKCXsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJfQoKLyogLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIENvZGUgZm9yIFNlY3VyZUxvZ2luICJkZWZhdWx0YWRtaW4iIGFkbWluIGFjdGlvbgoKICAgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQogICBvciBkbyBzb21lIG90aGVyIHRhc2suCgoqLwoKJHVzZXJvcHMgPSBjbXNtcygpLT5HZXRVc2VyT3BlcmF0aW9ucygpOwokdXNlciA9ICR1c2Vyb3BzLT5Mb2FkVXNlckJ5SUQoZ2V0X3VzZXJpZCgpKTsKJHJlZGlyZWN0VXJsID0gJHRoaXMtPmdldFJlZGlyZWN0VXJsKCk7CiRjdXJyZW50X2lwID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107CiR0YWIgPSBpc3NldCgkcGFyYW1zWyd0YWInXSkgPyAkcGFyYW1zWyd0YWInXSA6ICdpcGxpc3QnOwoKJHZhbGlkYXRlX2lkID0gaXNzZXQoJHBhcmFtc1sndmFsaWRhdGVfaWQnXSkgPyAkcGFyYW1zWyd2YWxpZGF0ZV9pZCddIDogJyc7CmlmKCFlbXB0eSgkdmFsaWRhdGVfaWQpKXsKCSR0aGlzLT5zZWN1cmVMb2dpbigpLT51cGRhdGVWYWxpZGF0ZVN0YXR1cygkdmFsaWRhdGVfaWQsIHRydWUpOwp9CiRpbnZhbGlkYXRlX2lkID0gaXNzZXQoJHBhcmFtc1snaW52YWxpZGF0ZV9pZCddKSA/ICRwYXJhbXNbJ2ludmFsaWRhdGVfaWQnXSA6ICcnOwppZighZW1wdHkoJGludmFsaWRhdGVfaWQpKXsKCSR0aGlzLT5zZWN1cmVMb2dpbigpLT51cGRhdGVWYWxpZGF0ZVN0YXR1cygkaW52YWxpZGF0ZV9pZCwgZmFsc2UpOwp9CiRwYXJhbVJlZGlyZWN0VXJsID0gaXNzZXQoJHBhcmFtc1sncmVkaXJlY3RfdXJsJ10pID8gJHBhcmFtc1sncmVkaXJlY3RfdXJsJ10gOiAnJzsKaWYoaXNzZXQoJHBhcmFtc1sncmVkaXJlY3Rfc3VibWl0J10pKXsKCSR0aGlzLT5zZXRSZWRpcmVjdFVybCgkcGFyYW1SZWRpcmVjdFVybCk7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsJycsIEFycmF5KCd0YWInPT4nc2V0dGluZ3MnLCAnbW9kdWxlX21lc3NhZ2UnPT4kdGhpcy0+TGFuZygnc2F2ZS5zdWNjZWVkJykpKTsKfQoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCkuCgkkdGhpcy0+U2V0VGFiSGVhZGVyKCdpcGxpc3QnLCR0aGlzLT5MYW5nKCd0YWJ0aXRsZS5pcGxpc3QnKSwgJHRhYiA9PSAnaXBsaXN0JyA/IHRydWUgOiBmYWxzZSkuCgkkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RhYnRpdGxlLnNldHRpbmdzJyksICR0YWIgPT0gJ3NldHRpbmdzJyA/IHRydWUgOiBmYWxzZSkuCgkkdGhpcy0+RW5kVGFiSGVhZGVycygpLiR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCgplY2hvICR0aGlzLT5TdGFydFRhYignc2V0dGluZ3MnKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZW1haWx0ZW1wbGF0ZWxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlbWFpbHRlbXBsYXRlJywgJycsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS50aXRsZScpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCdwb3N0JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlZGlyZWN0X2xhYmVsJywgJHRoaXMtPkNyZWF0ZUxhYmVsRm9ySW5wdXQoJGlkLCdyZWRpcmVjdF91cmwnLCR0aGlzLT5MYW5nKCdyZWRpcmVjdC50aXRsZScpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncmVkaXJlY3RfZGVzYycsICR0aGlzLT5MYW5nKCdyZWRpcmVjdC5kZXNjcmlwdGlvbicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZWRpcmVjdF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdyZWRpcmVjdF91cmwnLCRyZWRpcmVjdFVybCAsMjAsMjUwKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncmVkaXJlY3Rfc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncmVkaXJlY3Rfc3VibWl0JywgJHRoaXMtPkxhbmcoJ3JlZGlyZWN0LnN1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnc2V0dGluZ3MudHBsJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwplY2hvICR0aGlzLT5TdGFydFRhYignaXBsaXN0Jyk7CgoKCiRyb3dzID0gJHRoaXMtPnNlY3VyZUxvZ2luKCktPmdldEFsbElwcygpOwokY3VycmVudCA9IG51bGw7CiRlbnRyaWVzID0gYXJyYXkoKTsKZm9yZWFjaCAoJHJvd3MgYXMgJGtleSA9PiAkcm93KSB7CgkkZW50cnkgPSBuZXcgc3RkQ2xhc3MoKTsKCSRlbnRyeS0+aWQgPSAkcm93WydpZCddOwoJJGVudHJ5LT51c2VybmFtZSA9ICRyb3dbJ3VzZXJuYW1lJ107CgkkZW50cnktPmlwID0gJHJvd1snaXAnXTsKCSRlbnRyeS0+Zm9yX2FsbCA9ICRyb3dbJ2Zvcl9hbGwnXTsKCSRlbnRyeS0+dmFsaWRhdGVkID0gJHJvd1sndmFsaWRhdGVkJ10gPT0gMSA/ICd2YWxpZCcgOiAnaW52YWxpZCc7CgkkZW50cnktPnZhbGlkYXRpb25BY3Rpb24gPSAkcm93Wyd2YWxpZGF0ZWQnXSA9PSAwID8KCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkdGhpcy0+TGFuZygndmFsaWRhdGUnKSwgYXJyYXkoJ3ZhbGlkYXRlX2lkJyA9PiAkcm93WydpZCddKSk6CgkkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHRoaXMtPkxhbmcoJ2ludmFsaWRhdGUnKSwgYXJyYXkoJ2ludmFsaWRhdGVfaWQnID0+ICRyb3dbJ2lkJ10pKTsKCglpZigkdXNlci0+dXNlcm5hbWUgPT0gJHJvd1sndXNlcm5hbWUnXSAmJgoJCSRjdXJyZW50X2lwID09ICRyb3dbJ2lwJ10pewoJCSRjdXJyZW50ID0gJGVudHJ5OwoJfSBlbHNlIHsKCQlhcnJheV9wdXNoKCRlbnRyaWVzLCAkZW50cnkpOwoJfQp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhcHRpb25fdXNlcm5hbWUnLCAkdGhpcy0+TGFuZygndXNlcm5hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FwdGlvbl9pcCcsICR0aGlzLT5MYW5nKCdpcCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXB0aW9uX2N1cnJlbnQnLCAkdGhpcy0+TGFuZygnY3VycmVudF91c2VyJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhcHRpb25fYWN0aW9ucycsICR0aGlzLT5MYW5nKCdhY3Rpb25zJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VudHJpZXMnLCAkZW50cmllcyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY3VycmVudCcsICRjdXJyZW50KTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZW50cmllcy50cGwnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.emailtemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKICB7CiAgcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgfQppZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkpewogICR0ZW1wbGF0ZSA9ICRwYXJhbXNbJ3RlbXBsYXRlJ107CiAgaWYoZW1wdHkoJHRlbXBsYXRlKSl7CiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuZGVmYXVsdCcpOwogIH0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1haWwudGVtcGxhdGUnLCAkdGVtcGxhdGUpOwp9CmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSB8fCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpewogICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nKTsKfQoKJHRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYWlsLnRlbXBsYXRlJyk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRoaXMtPkxhbmcoJ2VtYWlsLnRlbXBsYXRlLnRpdGxlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ZhcmlhYmxlcycsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS52YXJpYWJsZXMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGludCcsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS5oaW50JykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VtYWlsdGVtcGxhdGUnLCcnLCdwb3N0JywnJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGUnLCR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAkdGVtcGxhdGUsICd0ZW1wbGF0ZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCAkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuY2FuY2VsJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhcHBseScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuYXBwbHknKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlbWFpbC50ZW1wbGF0ZS50cGwnKTs=]]></data>
	</file>
	<file>
	  <filename>/event.Core.LoginPost.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwpnbG9iYWwgJGNvbmZpZzsKCiRzZWN1cmVMb2dpbiA9ICR0aGlzLT5zZWN1cmVMb2dpbigpOwokdXNlciA9ICRwYXJhbXNbJ3VzZXInXTsKJHVzZXJuYW1lID0gJHVzZXItPnVzZXJuYW1lOwoKJHBhcmFtc2Zvcl9tb2R1bGVbJ21vZHVsZSddID0gJ1NlY3VyZUxvZ2luJzsKY21zX21vZHVsZV9wbHVnaW4oJHBhcmFtc2Zvcl9tb2R1bGUsJHRoaXMtPnNtYXJ0eSk7CgokaXAgPSAkdGhpcy0+Z2V0VXNlcklEKCk7CiRjb250aW51ZUxvZ2luID0gJHNlY3VyZUxvZ2luLT51c2VySXNBbGxvd2VkVG9Mb2dpbigkdXNlcm5hbWUsICRpcCk7CmlmKCEkY29udGludWVMb2dpbil7CgogICR0aGlzLT5zZW5kRW1haWwoJGlwLCAkdXNlcik7CiAgc2Vzc2lvbl9kZXN0cm95KCk7CgogICRyZWRpcmVjdFVybCA9ICR0aGlzLT5nZXRSZWRpcmVjdFVybCgpOwogIGlmKCFlbXB0eSgkcmVkaXJlY3RVcmwpKXsKICAgIGhlYWRlcihzcHJpbnRmKCdMb2NhdGlvbjogJXMnLCAkcmVkaXJlY3RVcmwpKTsKICAgIGRpZSgpOwogIH0gZWxzZSB7CiAgICAkX1NFU1NJT05bInJlZGlyZWN0X3VybCJdID0gJGNvbmZpZ1snYWRtaW5fdXJsJ10gLiAnL2xvZ291dC5waHAnOwogIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NlY3VyZSBsb2dpbic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnUmVhbGx5PyBBcmUgeW91IHN1cmUKeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgZmluZSBtb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAkbGFuZ1sndW5pbnN0YWxsZWQnXTsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdNb2R1bGUgc2VjdXJlcyBsb2dpbiBwcm9jZXNzIHdpdGggaXAtd2hpdGVsaXN0LiBXaGVuIHVzZXIgaXMgbG9nZ2luZyBpbiBtb2R1bGUgd2lsbCBjaGVjayBpZiBoaXMvaGVycyBpcCBpcyBpbiB0aGUgd2hpdGVsaXN0LiBJZiBub3QsIHVzZXIgd2lsbCBnZXQgYW4gZW1haWwgd2l0aCBsaW5rLCB3aGljaCBhZGRzIHVzZXJcJ3MgaXAgaW4gdGhlIGxpc3QgYWZ0ZXIgY2xpY2suICAgIEhlbHBzIGVzcGVjaWFsbHkgaWYgdXNlciBsb3N0IGhpcyBjcmVkZW50aWFscywgYXR0YWNrZXIgd2lsbCBub3QgYmUgYWJsZSB0byBsb2dpbiBiZWNhdXNlIG9mIGlwIGNoZWNrLic7CgokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZFsnYWRtaW5fdGl0bGUnXSA9ICdTZWN1cmUgbG9naW4gQWRtaW4gUGFuZWwnOwokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ107CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdCZSBzdXJlIHRvIHNldCAiU2VjdXJlTG9naW4gbWFuYWdlbWVudCIgcGVybWlzc2lvbnMgdG8gdXNlIHRoaXMgbW9kdWxlISc7CgoKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpb24gMS4xLjEgLSAxOCBNYXkgMjAxNC4gVXBkYXRlZCB1cGdyYWRlIHByb2Nlc3MuPC9saT4KPGxpPlZlcnNpb24gMS4xIC0gMTggTWF5IDIwMTQuIEZpeGVkIGJ1ZyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy92aWV3Lzk2MjkuIEFkZGVkIHBvc3NpYmlsaXR5IHRvIHJlZGlyZWN0IHVzZXIgYWZ0ZXIgZmlyc3QgbG9naW4gZnJvbSB1bmtvd24gYWRkcmVzcy48L2xpPgo8bGk+VmVyc2lvbiAxLjAvMS4wLjEgLSAyMSBTZXB0ZW1iZXIgMjAxMy4gRmlyc3QgcmVsZWFzZS48L2xpPgo8bGk+VmVyc2lvbiAxLjAgYmV0YTQgLSAxMCBNYXkgMjAxMy4gUmVsZWFzaW5nIGZvdXJ0aCBiZXRhLjwvbGk+CjxsaT5WZXJzaW9uIDEuMCBiZXRhMyAtIDA5IE1heSAyMDEzLiBSZWxlYXNpbmcgdGhpcmQgYmV0YS48L2xpPgo8bGk+VmVyc2lvbiAxLjAgYmV0YTIgLSAwOSBNYXkgMjAxMy4gUmVsZWFzaW5nIHNlY29uZCBiZXRhLjwvbGk+CjxsaT5WZXJzaW9uIDEuMCBiZXRhIC0gMjcgQXByaWwgMjAxMy4gUmVsZWFzaW5nIGZpcnN0IGJldGEuPC9saT4KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5Nb2R1bGUgc2VjdXJlcyBsb2dpbiBwcm9jZXNzIHdpdGggaXAtd2hpdGVsaXN0LiBXaGVuIHVzZXIgaXMgbG9nZ2luZyBpbiBtb2R1bGUgd2lsbCBjaGVjayBpZiBoaXMvaGVycyBpcCBpcyBpbiB0aGUgd2hpdGVsaXN0LiBJZiBub3QsIHVzZXIgd2lsbCBnZXQgYW4gZW1haWwgd2l0aCBsaW5rLCB3aGljaCBhZGRzIHVzZXJcJ3MgaXAgaW4gdGhlIGxpc3QgYWZ0ZXIgY2xpY2suICAgIEhlbHBzIGVzcGVjaWFsbHkgaWYgdXNlciBsb3N0IGhpcyBjcmVkZW50aWFscywgYXR0YWNrZXIgd2lsbCBub3QgYmUgYWJsZSB0byBsb2dpbiBiZWNhdXNlIG9mIGlwIGNoZWNrLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPkFsbCB5b3UgbmVlZCB0byBkbyBpcyB0byBpbnN0YWxsIG1vZHVsZS4gQWZ0ZXIgc29tZW9uZSBoYXMgdHJpZWQgdG8gbG9nIGluIGZyb20gbmV3IGlwLCB5b3UgY2FuIGFwcHJvdmUgaXQgbWFudWFsbHkgZnJvbSBtYW5hZ2VtZW50IHBhZ2UgdW5kZXIgIlNpdGUgQWRtaW4iLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDE0LCBKb25pIEhhc2FuZW4gPGEgaHJlZj0ibWFpbHRvOmpvbmkuaGFzYW5lbkBwaWVjZW9mY29kZS5uZXQiPiZsdDtqb25pLmhhc2FuZW5AcGllY2VvZmNvZGUubmV0Jmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwoKJGxhbmdbJ2FjdGlvbnMnXSA9ICdBY3Rpb25zJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnVXNlcm5hbWUnOwokbGFuZ1snaXAnXSA9ICdJUCc7CiRsYW5nWydjdXJyZW50X3VzZXInXSA9ICdDdXJyZW50IHVzZXInOwokbGFuZ1sndmFsaWRhdGUnXSA9IHNwcmludGYoJ1ZhbGlkYXRlICVzJywgJGxhbmdbJ2lwJ10pOwokbGFuZ1snaW52YWxpZGF0ZSddID0gc3ByaW50ZignSW52YWxpZGF0ZSAlcycsICRsYW5nWydpcCddKTsKJGxhbmdbJ2VtYWlsLnN1YmplY3QnXSA9ICdMb2dpbiBmcm9tIHVuYXV0aG9yaXplZCBpcCc7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS50aXRsZSddID0gJ0VtYWlsLXRlbXBsYXRlJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLmRlZmF1bHQnXSA9ICdIaSEKCkl0IGxvb2tzIGxpa2UgeW91IGhhdmUgYmVlbiB0cnlpbmcgdG8gbG9naW4gZnJvbSB1bmF1dGhvcml6ZWQgaXAtYWRkcmVzcy4gUGxlYXNlIGNsaWNrIGZvbGxvd2luZyBsaW5rIHRvIGFwcHJvdmUgaXAtYWRkcmVzczogW3VybF0uCgpJZiB5b3UgaGF2ZW5cJ3QgdHJpZWQgdG8gbG9nIGluLCBpdCB3b3VsZCBiZSBnb29kIHRvIGNoYW5nZSB5b3VyIHBhc3N3b3JkIGltbWVkaWF0ZWx5IQoKVGhpcyBpcyBhdXRvbWF0aWMgbWVzc2FnZSBhbmQgaXQgbmVlZHMgbm8gcmVzcG9uc2UuJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLnZhcmlhYmxlcyddID0gJwpZb3UgY2FuIHVzZSBmb2xsb3dpbmcgdmFyaWFibGVzIGluIHRlbXBsYXRlOjxiciAvPgo8dWw+CjxsaT5bdXJsXSA9IFVybCBmb3IgYXBwcm92aW5nIElQLWFkZHJlc3M8L2xpPgo8L3VsPic7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS5zdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snZW1haWwudGVtcGxhdGUuY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLmFwcGx5J10gPSAnQXBwbHknOwokbGFuZ1snZW1haWwudGVtcGxhdGUuaGludCddID0gJyhGb3IgdGhlIGRlZmF1bHQgdGVtcGxhdGUsIHNhdmUgdGVtcGxhdGUgYXMgZW1wdHkpJzsKCiRsYW5nWydzYXZlLnN1Y2NlZWQnXSA9ICdTYXZlIHN1Y2NlZWQnOwoKJGxhbmdbJ3RhYnRpdGxlLmlwbGlzdCddID0gJ0xpc3Qgb2YgYWRkcmVzc2VzJzsKJGxhbmdbJ3RhYnRpdGxlLnNldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwokbGFuZ1sncmVkaXJlY3QudGl0bGUnXSA9ICdSZWRpcmVjdCc7CiRsYW5nWydyZWRpcmVjdC5zdWJtaXQnXSA9ICdTYXZlJzsKJGxhbmdbJ3JlZGlyZWN0LmRlc2NyaXB0aW9uJ10gPSAnV2hlcmUgdXNlciBzaG91bGQgYmUgcmVkaXJlY3QgYWZ0ZXIgbG9naW4gZnJvbSB1bmtub3duIGFkZHJlc3MuIExlYXZlIGVtcHR5IGZvciBkZWZhdWx0IGJlaGF2aW91ci4nOwo=]]></data>
	</file>
	<file>
	  <filename>/lang/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NlY3VyZSBsb2dpbic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnT2lrZWFzdGk/IE9sZXRrbyB2YXJtYSwgZXR0w6QgaGFsdWF0IHBvaXN0YWEgdMOkbcOkbiBtb2R1dWxpbj8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1dWxpIHBvaXN0ZXR0dS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJGxhbmdbJ3VuaW5zdGFsbGVkJ107CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1dWxpc3RhIGFzZW5uZXR0dSB2ZXJzaW8gJXMgLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHV1bGkgcMOkaXZpdGV0dHkgdmVyc2lvb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnTW9kdXVsaSBzdW9qYWEga2lyamF1dHVtaXNwcm9zZXNzaW4gdGFya2lzdGFtYWxsYSBpcC1vc29pdHRlZW4gaHl2w6Rrc3l0eWlzdMOkIG9zb2l0dGVpc3RhLiBLdW4ga8OkeXR0w6Rqw6Qgb24ga2lyamF1dHVtYXNzYSwgbW9kdWxpIHRhcmtpc3RhYSBvbmtvIGjDpG5lbiBpcC1vc29pdHRlZW5zYSBoeXbDpGtzeXR0eWplbiBpcC1vc290dGVpZGVuIGxpc3RhbGxhLiBKb3MgZWksIG5paW4ga8OkeXR0w6Rqw6RsbGUgbMOkaGV0w6TDpG4gc8OkaGvDtnBvc3RpbGxhIGxpbmtraSwgam90YSBrbGlra2FhbW1hbGxhIGlwLW9zb2l0ZSBoeXbDpGtzeXTDpMOkbi4gQXV0dGFhIGVyaXR5aXNlc3RpLCBqb3MgdHVubnVrc2V0IG92YXQgam91dHVuZWV0IHbDpMOkcmlpbiBrw6RzaWluLCBoecO2a2vDpMOkasOkIGVpIHB5c3R5IGtpcmphdXR1bWFhbiB0dW5udWtzaWxsYSwga29za2EgaXAtb3NvaXRlIHRhcmtpc3RldGFhbi4nOwoKJGxhbmdbJ2Vycm9yJ10gPSAnVmlyaGUhJzsKJGxhbmRbJ2FkbWluX3RpdGxlJ10gPSAnU2VjdXJlIGxvZ2luIEFkbWluIFBhbmVsJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICRsYW5nWydtb2RkZXNjcmlwdGlvbiddOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnUMOkw6RzeSBraWVsbGV0dHkuIFRhcmtpc3RhIGvDpHl0dMO2b2lrZXV0ZXNpLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0vDpHkgYXNldHRhbWFzc2EgIlNlY3VyZUxvZ2luIG1hbmFnZW1lbnQiIG9pa2V1ZGV0IHRhcnZpdHRhdmlsbGUgaGVua2lsw7ZpbGxlISc7CgoKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpbyAxLjEuMSAtIDE4IFRvdWtva3V1IDIwMTQuIFDDpGl2aXRldHR5IHDDpGl2aXR5c21la2FuaXNtaS48L2xpPgo8bGk+VmVyc2lvIDEuMSAtIDE4IFRvdWtva3V1IDIwMTQuIEtvcmphdHR1IGJ1Z2kgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9idWcvdmlldy85NjI5LiBMaXPDpHR0eSBtYWhkb2xsaXN1dXMga8OkeXR0w6Rqw6RuIHV1ZGVsbGVlbm9oamFhbWlzZWVuIGVuc2ltbcOkaXNlbiBraXJqYXV0dW1pc2VuIHlodGV5ZGVzc8OkLjwvbGk+CjxsaT5WZXJzaW8gMS4wLzEuMC4xIC0gMjEgU3l5c2t1dSAyMDEzLiBFbnNpbW3DpGlzZW4gdmVyc2lvbiBqdWxrYWlzdHUuPC9saT4KPGxpPlZlcnNpbyAxLjAgYmV0YTMgLSAyNyBUb3Vrb2t1dSAyMDEzLiBLb2xtYXMgYmV0YSBqdWxrYWlzdHUuPC9saT4KPGxpPlZlcnNpbyAxLjAgYmV0YTIgLSAyNyBUb3Vrb2t1dSAyMDEzLiBUb2luZW4gYmV0YSBqdWxrYWlzdHUuPC9saT4KPGxpPlZlcnNpbyAxLjAgYmV0YSAtIDI3IEh1aHRpa3V1IDIwMTMuIEVuc2ltbcOkaW5lbiBiZXRhIGp1bGthaXN0dS48L2xpPgo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPk1pdMOkIHTDpG3DpCB0ZWtlZT88L2gzPgo8cD5Nb2R1dWxpIHN1b2phYSBraXJqYXV0dW1pc3Byb3Nlc3NpbiB0YXJraXN0YW1hbGxhIGlwLW9zb2l0dGVlbiBoeXbDpGtzeXR5aXN0w6Qgb3NvaXR0ZWlzdGEuIEt1biBrw6R5dHTDpGrDpCBvbiBraXJqYXV0dW1hc3NhLCBtb2R1dWxpIHRhcmtpc3RhYSBvbmtvIGjDpG5lbiBpcC1vc29pdHRlZW5zYSBoeXbDpGtzeXR0eWplbiBpcC1vc290dGVpZGVuIGxpc3RhbGxhLiBKb3MgZWksIG5paW4ga8OkeXR0w6Rqw6RsbGUgbMOkaGV0w6TDpG4gc8OkaGvDtnBvc3RpbGxhIGxpbmtraSwgam90YSBrbGlra2FhbW1hbGxhIGlwLW9zb2l0ZSBoeXbDpGtzeXTDpMOkbi4gQXV0dGFhIGVyaXR5aXNlc3RpLCBqb3MgdHVubnVrc2V0IG92YXQgam91dHVuZWV0IHbDpMOkcmlpbiBrw6RzaWluLCBoecO2a2vDpMOkasOkIGVpIHB5c3R5IGtpcmphdXR1bWFhbiB0dW5udWtzaWxsYSwga29za2EgaXAtb3NvaXRlIHRhcmtpc3RldGFhbi48L3A+CjxoMz5NaXRlbiBrw6R5dMOkbiBzaXTDpD88L2gzPgo8cD5Bc2VudGFtaW5lbiByaWl0dMOkw6QuIFRhcnZpdHRhZXNzYSBpcDpuIHZvaSBrw6R5ZMOkIGh5dsOka3N5bcOkc3PDpCBoYWxsaW50YXNpdnVsdGEgIlNpdnVzdG9uIGhhbGxpbnRhIi1vc2lvc3RhLjwvcD4KPGgzPlR1a2k8L2gzPgo8cD5PaGplbG1hIHRhcmpvdGFhbiBzZWxsYWlzZW5hYW4gR1BMLWxpc2Vuc3NpbiBhbGFpc2VuYS4gTGlzw6R0aWV0b2phIGxpc2Vuc3Npc3TDpCB2b2l0IGx1a2VhIGFsbGEgb2xldmFzdGEgbGlua2lzdMOkLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMywgSm9uaSBIYXNhbmVuIDxhIGhyZWY9Im1haWx0bzpqb25pLmhhc2FuZW5AcGllY2VvZmNvZGUubmV0Ij4mbHQ7am9uaS5oYXNhbmVuQHBpZWNlb2Zjb2RlLm5ldCZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKCiRsYW5nWydhY3Rpb25zJ10gPSAnVG9pbWlubm90JzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnS8OkeXR0w6Rqw6R0dW5udXMnOwokbGFuZ1snaXAnXSA9ICdJUCc7CiRsYW5nWydjdXJyZW50X3VzZXInXSA9ICdTaXPDpMOkbmtpcmphdXR1bnV0IGvDpHl0dMOkasOkJzsKJGxhbmdbJ3ZhbGlkYXRlJ10gPSBzcHJpbnRmKCdIeXbDpGtzeSAlcycsICRsYW5nWydpcCddKTsKJGxhbmdbJ2ludmFsaWRhdGUnXSA9IHNwcmludGYoJ0VzdMOkICVzJywgJGxhbmdbJ2lwJ10pOwokbGFuZ1snZW1haWwuc3ViamVjdCddID0gJ0tpcmphdXR1bWluZW4gdHVudGVtYXR0b21hc3RhIGlwLW9zb2l0dGVlc3RhJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLnRpdGxlJ10gPSAnU8OkaGvDtnBvc3RpLXBvaGphJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLmRlZmF1bHQnXSA9ICdIZWkhCgpOw6R5dHTDpMOkIHNpbHTDpCwgZXR0w6Qgam9rdSBvbiB5cml0dMOkbnl0IGtpcmphdXR1YSB0dW50ZW1hdHRvbWFzdGEgaXAtb3NvaXR0ZWVzdGEuIFZhaHZpc3RhIGlwLW9zb2l0ZSBtZW5lbcOkbGzDpCBzZXVyYWF2YWFuIG9zb2l0dGVlc2VlbjogW3VybF0uCgpKb3MgZXQgeXJpdHTDpG55dCBraXJqYXV0dWEsIG9uIHN1b3NpdGVsdGF2YWEgdmFpaHRhYSBzYWxhc2FuYSBIRVRJIQoKVMOkbcOkIG9uIGF1dG9tYWF0dGluZW4gdmllc3RpIGVpa8OkIHTDpGjDpG4gdGFydml0c2UgdmFzdGF0YSc7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS52YXJpYWJsZXMnXSA9ICcKVm9pdCBrw6R5dHTDpMOkIHNldXJhYXZpYSBtdXV0dHVqaWEgcG9oamFzc2E6PGJyIC8+Cjx1bD4KPGxpPlt1cmxdID0gT3NvaXRlLCBqb2xsYSBJUC1vc29pdGUgaHl2w6Rrc3l0w6TDpG48L2xpPgo8L3VsPic7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS5zdWJtaXQnXSA9ICdMw6RoZXTDpCc7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS5jYW5jZWwnXSA9ICdQZXJ1dXRhJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLmFwcGx5J10gPSAnS8OkeXTDpCc7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS5oaW50J10gPSAnKFNhYWRha3Nlc2kgb2xldHVzIHBvaGphbiwgdGFsbGVubmEgcG9oamEgdHloasOkbsOkKSc7CgokbGFuZ1snc2F2ZS5zdWNjZWVkJ10gPSAnVGFsbGVubnVzIG9ubmlzdHVpJzsKCgokbGFuZ1sndGFidGl0bGUuaXBsaXN0J10gPSAnT3NvaXRlbGlzdGEnOwokbGFuZ1sndGFidGl0bGUuc2V0dGluZ3MnXSA9ICdBc2V0dWtzZXQnOwokbGFuZ1sncmVkaXJlY3QudGl0bGUnXSA9ICdVdWRlbGxlZW5vaGphdXMnOwokbGFuZ1sncmVkaXJlY3Quc3VibWl0J10gPSAnVGFsbGVubmEnOwokbGFuZ1sncmVkaXJlY3QuZGVzY3JpcHRpb24nXSA9ICdNaWhpbiBvc29pdHRlZXNlZW4ga8OkeXR0w6Rqw6Qgb2hqYXRhYW4gZW5zaW1tw6Rpc3TDpCBrZXJ0YWEgdHVudGVtYXR0b21hc3RhIG9zb2l0dGVlc3RhIGtpcmphdWR1dHRhZXNzYS4gSsOkdMOkIHR5aGrDpGtzaSBvbGV0dXN0b2ltaW50b2EgdmFydGVuLic7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/SecureLogin.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIHBpZWNlb2Zjb2RlOwpjbGFzcyBTZWN1cmVMb2dpbnsKCiAgcHJpdmF0ZSAkX2RiOwogIHByaXZhdGUgJF93aGl0ZWxpc3RUYWJsZTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYiwgJHRhYmxlUHJlZml4KXsKICAgICR0aGlzLT5fZGIgPSAkZGI7CiAgICAkdGhpcy0+X3doaXRlbGlzdFRhYmxlID0gJHRhYmxlUHJlZml4IC4gJ193aGl0ZWxpc3QnOwogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRSb3dCeVVzZXJuYW1lQW5kSXAoJHVzZXJuYW1lLCAkaXAsICR2YWxpZGF0ZWQgPSAxKXsKICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQsIHZhbGlkYXRlV2l0aEtleSwgdXNlcm5hbWUsIGlwIEZST00gJyAuICR0aGlzLT5fd2hpdGVsaXN0VGFibGUgLiAnIFdIRVJFIHVzZXJuYW1lID0gPyBBTkQgaXAgPSA/IEFORCB2YWxpZGF0ZWQgPSA/JzsKICAgICRyZXN1bHQgPSAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHVzZXJuYW1lLCAkaXAsICR2YWxpZGF0ZWQpKTsgIAoKICAgIAogICAgaWYoJHJlc3VsdCl7CiAgICAgIHJldHVybiAkcmVzdWx0LT5GZXRjaFJvdygpOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gdXNlcklzQWxsb3dlZFRvTG9naW4oJHVzZXJuYW1lLCAkaXApewogICAgaWYoJHRoaXMtPmdldFJvd0J5VXNlcm5hbWVBbmRJcCgkdXNlcm5hbWUsICRpcCkgIT0gbnVsbCl7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZVZhbGlkYXRpb25LZXkoJHVzZXJuYW1lLCAkaXApewogICAgJHJvdyA9ICR0aGlzLT5nZXRSb3dCeVVzZXJuYW1lQW5kSXAoJHVzZXJuYW1lLCAkaXAsIDApOwogICAgaWYoJHJvdyAhPSBudWxsKXsKICAgICAgJHZhbGlkYXRpb25LZXkgPSAkcm93Wyd2YWxpZGF0ZVdpdGhLZXknXTsKICAgIH0gZWxzZSB7CiAgICAgICR2YWxpZGF0aW9uS2V5ID0gbWQ1KHRpbWUoKSAuICR1c2VybmFtZSAuICRpcCAuIHJhbmQoKSk7CiAgICAgICRpZCA9ICR0aGlzLT5fZGItPkdlbklEKCR0aGlzLT5fd2hpdGVsaXN0VGFibGUgLiAnX3NlcScpOwoKICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiAkdGhpcy0+X3doaXRlbGlzdFRhYmxlIC4gJyAoaWQsIHVzZXJuYW1lLCBpcCwgdmFsaWRhdGVXaXRoS2V5KSBWQUxVRVMgKD8sID8sID8sID8pJzsKICAgICAgJHRoaXMtPl9kYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpZCwgJHVzZXJuYW1lLCAkaXAsICR2YWxpZGF0aW9uS2V5KSk7CiAgICB9CiAgICByZXR1cm4gJHZhbGlkYXRpb25LZXk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWxsSXBzKCl7CiAgICAkZW50cmllcyA9IGFycmF5KCk7CiAgICAgICAgCiAgICAkcXVlcnkgPSAnU0VMRUNUIGlkLCB1c2VybmFtZSwgaXAsIGZvcl9hbGwsIHZhbGlkYXRlZCAgRlJPTSAnLiAkdGhpcy0+X3doaXRlbGlzdFRhYmxlIC4gJyBPUkRFUiBCWSB1c2VybmFtZSBBU0MnOwogICAgJHJlc3VsdCA9ICR0aGlzLT5fZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIHdoaWxlKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpewogICAgICBhcnJheV9wdXNoKCRlbnRyaWVzLCAkcm93KTsKICAgIH0KICAgIHJldHVybiAkZW50cmllczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiB1cGRhdGVWYWxpZGF0ZVN0YXR1cygkaWQsICR2YWxpZCl7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcuICR0aGlzLT5fd2hpdGVsaXN0VGFibGUgLiAnIFNFVCB2YWxpZGF0ZWQgPSA/IFdIRVJFIGlkID0gPyc7CiAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHZhbGlkID8gMSA6IDAsICRpZCkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlS2V5KCRrZXksICRpcCwgJHVzZXJuYW1lKXsKICAgICRxdWVyeSA9ICdVUERBVEUgJy4gJHRoaXMtPl93aGl0ZWxpc3RUYWJsZSAuICcgU0VUIHZhbGlkYXRlZCA9IDEgV0hFUkUgCiAgICB2YWxpZGF0ZVdpdGhLZXkgPSA/IEFORCBpcCA9ID8gQU5EIHVzZXJuYW1lID0gPyc7CiAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGtleSwgJGlwLCAkdXNlcm5hbWUpKTsKICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoKCSAgIEZvciBpbmZvcm1hdGlvbiBvbiB0aGUgY3JlYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLAoJICAgY2hlY2sgb3V0IHRoZSBBRE9EQiBEYXRhIERpY3Rpb25hcnkgcGFnZSBhdAoJICAgaHR0cDovL3BocGxlbnMuY29tL2xlbnMvYWRvZGIvZG9jcy1kYXRhZGljdC5odG0KCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBJbml0aWFsaXphdGlvbgoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCgkJLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgogICAgICAgIC8vIHRhYmxlIHNjaGVtYSBkZXNjcmlwdGlvbgogICAgICAgICRmbGRzID0gIgoJCQlpZCBJIEtFWSwKCQkJZGVzY3JpcHRpb24gQyg4MCkKCQkJIjsKCgkJLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZWN1cmVsb2dpbiIsCgkJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIGNyZWF0ZSBhIHNlcXVlbmNlCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZWN1cmVsb2dpbl9zZXEiKTsKCQkqLwoJCSR0aGlzLT5hZGRFdmVudEhhbmRsZXIoJ0NvcmUnLCdMb2dpblBvc3QnLGZhbHNlKTsKCQkvLyBwZXJtaXNzaW9ucwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdTZWN1cmVMb2dpbiBtYW5hZ2VtZW50JywnU2VjdXJlTG9naW4gbWFuYWdlbWVudCcpOwoKLy9mdW5jdGlvbiBmb3IgbmljZXIgdGFibGUgYWRkaW5nCmZ1bmN0aW9uIGFkZFRhYmxlKCRkYiwgJHRhYmxlTmFtZSwgJGZsZHMpewoJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChzcHJpbnRmKCIlc21vZHVsZV9zZWN1cmVsb2dpbl8lcyIsY21zX2RiX3ByZWZpeCgpLCAkdGFibGVOYW1lKSwKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSRkYi0+Q3JlYXRlU2VxdWVuY2Uoc3ByaW50ZigiJXNtb2R1bGVfc2VjdXJlbG9naW5fJXNfc2VxIixjbXNfZGJfcHJlZml4KCksICR0YWJsZU5hbWUpKTsKfQoKJGRiID0gJHRoaXMtPkdldERiKCk7CgoKYWRkVGFibGUoJGRiLCAid2hpdGVsaXN0IiwgIgoJCWlkIEkgS0VZLAoJCXVzZXJuYW1lIEMoMjUpLAoJCWlwIEMoMTUpLAoJCWZvcl9hbGwgSSBERUZBVUxUIDAsCgkJdmFsaWRhdGVXaXRoS2V5IEMoMzIpLAoJCXZhbGlkYXRlZCBJIERFRkFVTFQgMCwKCQlhZGRlZCBUUyIpOwoKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKCQkkaXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCQkkdXNlcm9wcyA9IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7CgkJJHVzZXIgPSAkdXNlcm9wcy0+TG9hZFVzZXJCeUlEKGdldF91c2VyaWQoKSk7CgoJCSRrZXkgPSAkdGhpcy0+c2VjdXJlTG9naW4oKS0+Y3JlYXRlVmFsaWRhdGlvbktleSgkdXNlci0+dXNlcm5hbWUsICRpcCk7CgkJJHRoaXMtPnNlY3VyZUxvZ2luKCktPnZhbGlkYXRlS2V5KCRrZXksICRpcCwgJHVzZXItPnVzZXJuYW1lKTsKCiAgCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWFpbC50ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS5kZWZhdWx0JykpOwoKCgkJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoJCSRzcmMgPSBzcHJpbnRmKCclcy9tb2R1bGVzL1NlY3VyZUxvZ2luL3RlbXBsYXRlcy9zZWN1cmVMb2dpbkhhbmRsZXIucGhwJywgJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwoJCSRkZXN0ID0gc3ByaW50ZignJXMvdG1wL3NlY3VyZUxvZ2luSGFuZGxlci5waHAnLCAkY29uZmlnWydyb290X3BhdGgnXSk7CgkJY29weSgkc3JjLCAkZGVzdCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBSZW1vdmFsCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoKCQkvLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlCgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VjdXJlbG9naW4iICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkvLyByZW1vdmUgdGhlIHNlcXVlbmNlCgkJJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3NlY3VyZWxvZ2luX3NlcSIgKTsKCQkqLwoKCQkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywnTG9naW5Qb3N0Jyk7CgkJLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdTZWN1cmVMb2dpbiBtYW5hZ2VtZW50Jyk7CgoJCWZ1bmN0aW9uIGRyb3BUYWJsZSgkZGIsICR0YWJsZU5hbWUpewoJCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgkJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoc3ByaW50ZigiJXNtb2R1bGVfc2VjdXJlbG9naW5fJXMiLGNtc19kYl9wcmVmaXgoKSwgJHRhYmxlTmFtZSkpOwoJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCSRkYi0+RHJvcFNlcXVlbmNlKHNwcmludGYoIiVzbW9kdWxlX3NlY3VyZWxvZ2luXyVzX3NlcSIsY21zX2RiX3ByZWZpeCgpLCAkdGFibGVOYW1lKSk7CgkJfQoKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCgkJZHJvcFRhYmxlKCRkYiwgIndoaXRlbGlzdCIpOwoKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOwoKIAkJY21zX3NpdGVwcmVmczo6cmVtb3ZlKCdlbWFpbC50ZW1wbGF0ZScpOwoKCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJJHNsaCA9IHNwcmludGYoJyVzL3RtcC9zZWN1cmVMb2dpbkhhbmRsZXIucGhwJywgJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwoJCXVubGluaygkc2xoKTsK]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMS4wIjoKCQkJY2FzZSAiMS4wLjEiOgoJCQkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWFpbC50ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS5kZWZhdWx0JykpOwoJCQkJCWJyZWFrOwoJCQljYXNlICIxLjEiOgoJCQkJCWNtc19yb3V0ZV9tYW5hZ2VyOjpkZWxfc3RhdGljKCcnLCR0aGlzLT5HZXROYW1lKCkpOwoKCQkJCQkkdGVtcGxhdGVvcHMgPSYgJGdDbXMtPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpOwoJCQkJCSRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoJCQkJCSRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkdGhpcy0+Z2V0TGFuZGluZ1BhZ2VJZCgpKS0+RGVsZXRlKCk7CgkJCQkJY21zX3NpdGVwcmVmczo6cmVtb3ZlKCdTZWN1cmVMb2dpblRlbXBsYXRlSWQnKTsKCgkJCQkJLy9UaGVzZSBhcmUgc29tZSBvbGQgY29uZmlncywgcmVtb3ZpbmcganVzdCBpbiBjYXNlCgkJCQkJJHRlbXBsYXRlb3BzLT5EZWxldGVUZW1wbGF0ZUJ5SWQoY21zX3NpdGVwcmVmczo6Z2V0KCdTZWN1cmVMb2dpblRlbXBsYXRlSWQnKSk7CgkJCQkJY21zX3NpdGVwcmVmczo6cmVtb3ZlKCdTZWN1cmVMb2dpbkxhbmdpbmdQYWdlSWQnKTsKCQkJCQlicmVhazsKCQkJY2FzZSAiMS4xLjEiOgoJCQkJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCQkJCQkkc3JjID0gc3ByaW50ZignJXMvbW9kdWxlcy9TZWN1cmVMb2dpbi90ZW1wbGF0ZXMvc2VjdXJlTG9naW5IYW5kbGVyLnBocCcsICRjb25maWdbJ3Jvb3RfcGF0aCddKTsKCQkJCQkkZGVzdCA9IHNwcmludGYoJyVzL3RtcC9zZWN1cmVMb2dpbkhhbmRsZXIucGhwJywgJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwoJCQkJCWNvcHkoJHNyYywgJGRlc3QpOwoJCX0KCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[U2VjdXJlTG9naW4KPT09PT09PT09PT0KTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2VjdXJlbG9naW4KCk1vZHVsZSBzZWN1cmVzIGxvZ2luIHByb2Nlc3Mgd2l0aCBpcC13aGl0ZWxpc3QuIFdoZW4gdXNlciBpcyBsb2dnaW5nIGluIG1vZHVsZSB3aWxsIGNoZWNrIGlmIGhpcy9oZXJzIGlwIGlzIGluIHRoZSB3aGl0ZWxpc3QuIElmIG5vdCwgdXNlciB3aWxsIGdldCBhbiBlbWFpbCB3aXRoIGxpbmssIHdoaWNoIGFkZHMgdXNlclwncyBpcCBpbiB0aGUgbGlzdCBhZnRlciBjbGljay4gICAgSGVscHMgZXNwZWNpYWxseSBpZiB1c2VyIGxvc3QgaGlzIGNyZWRlbnRpYWxzLCBhdHRhY2tlciB3aWxsIG5vdCBiZSBhYmxlIHRvIGxvZ2luIGJlY2F1c2Ugb2YgaXAgY2hlY2suCgpQdWJsaXNoZWQgdW5kZXIgR1BMdjMuCg==]]></data>
	</file>
	<file>
	  <filename>/SecureLogin.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlY3VyZUxvZ2luIC0gTW9kdWxlIHNlY3VyZXMgbG9naW4gcHJvY2VzcyB3aXRoIGlwLXdoaXRlbGlzdC4gV2hlbiB1c2VyIGlzIGxvZ2dpbmcgaW4gbW9kdWxlIHdpbGwgY2hlY2sgaWYgaGlzL2hlcnMgaXAgaXMgaW4gdGhlIHdoaXRlbGlzdC4gSWYgbm90LCB1c2VyIHdpbGwgZ2V0IGFuIGVtYWlsIHdpdGggbGluaywgd2hpY2ggYWRkcyB1c2VyJ3MgaXAgaW4gdGhlIGxpc3QgYWZ0ZXIgY2xpY2suICAgIEhlbHBzIGVzcGVjaWFsbHkgaWYgdXNlciBsb3N0IGhpcyBjcmVkZW50aWFscywgYXR0YWNrZXIgd2lsbCBub3QgYmUgYWJsZSB0byBsb2dpbiBiZWNhdXNlIG9mIGlwIGNoZWNrLgojIFZlcnNpb246IDEuMCwgSm9uaSBIYXNhbmVuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMTMgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIyBUaGlzIGZpbGUgb3JpZ2luYWxseSBjcmVhdGVkIGJ5IE1vZHVsZU1ha2VyIG1vZHVsZSwgdmVyc2lvbiAwLjMuMgojIENvcHlyaWdodCAoYykgMjAxMyBieSBTYW11ZWwgR29sZHN0ZWluIChzamdAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBGb3IgSGVscCBidWlsZGluZyBtb2R1bGVzOgojIC0gUmVhZCB0aGUgRG9jdW1lbnRhdGlvbiBhcyBpdCBiZWNvbWVzIGF2YWlsYWJsZSBhdAojICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy8KIyAtIENoZWNrIG91dCB0aGUgU2tlbGV0b24gTW9kdWxlIGZvciBhIGNvbW1lbnRlZCBleGFtcGxlCiMgLSBMb29rIGF0IG90aGVyIG1vZHVsZXMsIGFuZCBsZWFybiBmcm9tIHRoZSBzb3VyY2UKIyAtIENoZWNrIG91dCB0aGUgZm9ydW1zIGF0IGh0dHA6Ly9mb3J1bXMuY21zbWFkZXNpbXBsZS5vcmcKIyAtIENoYXQgd2l0aCBkZXZlbG9wZXJzIG9uIHRoZSAjY21zIElSQyBjaGFubmVsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnJlcXVpcmVfb25jZSgnbGliL1NlY3VyZUxvZ2luLmNsYXNzLnBocCcpOwpjbGFzcyBTZWN1cmVMb2dpbiBleHRlbmRzIENNU01vZHVsZQp7CgoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXsKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7Cgl9CgoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdTZWN1cmVMb2dpbic7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEZyaWVuZGx5TmFtZSgpCgkgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIGxvY2FsaXplZCBuYW1lCgkgICBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQncyBzaG93biBpbiB0aGUKCSAgIEFkbWluIE1lbnVzIGFuZCBzZWN0aW9uIHBhZ2VzIChpZiB0aGUgbW9kdWxlIGhhcyBhbiBhZG1pbgoJICAgY29tcG9uZW50KS4KCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCSAgIH0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldFZlcnNpb24oKQoJICAgVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBudW1iZXIgb3IKCSAgIHNvbWV0aGluZyB0aGF0IG1ha2VzIHNlbnNlIGZvciBkZXNpZ25hdGluZyBhIHZlcnNpb24uCgkgICBUaGUgQ01TIHdpbGwgdXNlIHRoaXMgdG8gaWRlbnRpZnkgd2hldGhlciBvciBub3QKCSAgIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgbW9kdWxlIGlzIGN1cnJlbnQsIGFuZAoJICAgdGhlIG1vZHVsZSB3aWxsIHVzZSBpdCB0byBmaWd1cmUgb3V0IGhvdyB0byB1cGdyYWRlCgkgICBpdHNlbGYgaWYgcmVxdWVzdGVkLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldFZlcnNpb24oKQoJICAgewoJICAgCXJldHVybiAnMS4xLjEnOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRIZWxwKCkKCSAgIFRoaXMgcmV0dXJucyBIVE1MIGluZm9ybWF0aW9uIG9uIHRoZSBtb2R1bGUuCgkgICBUeXBpY2FsbHksIHlvdSdsbCB3YW50IHRvIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gaG93IHRvCgkgICB1c2UgdGhlIG1vZHVsZS4KCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldEhlbHAoKQoJICAgewoJICAgCXJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBdXRob3IoKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldEF1dGhvcigpCgkgICB7CgkgICAJcmV0dXJuICdKb25pIEhhc2FuZW4nOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBdXRob3JFbWFpbCgpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuIEl0IGhlbHBzIHVzZXJzCgkgICBvZiB5b3VyIG1vZHVsZSBnZXQgaW4gdG91Y2ggd2l0aCB5b3UgdG8gc2VuZCBidWcgcmVwb3J0cywKCSAgIHF1ZXN0aW9ucywgY2FzZXMgb2YgYmVlciwgYW5kL29yIGxhcmdlIHN1bXMgb2YgbW9uZXkuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJICAgewoJICAgCXJldHVybiAnam9uaS5oYXNhbmVuQHBpZWNlb2Zjb2RlLm5ldCc7CgkgICB9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldENoYW5nZUxvZygpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIG1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSBBYm91dCBsaW5rLiBJdCBoZWxwcyB1c2VycwoJICAgZmlndXJlIG91dCB3aGF0J3MgY2hhbmdlZCBiZXR3ZWVuIHJlbGVhc2VzLgoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkgICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJICAgewoJICAgCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7CgkgICB9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIElzUGx1Z2luTW9kdWxlKCkKCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlLCBkZXBlbmRpbmcgdXBvbgoJICAgd2hldGhlciB1c2VycyBjYW4gaW5jbHVkZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvcgoJICAgdGVtcGxhdGUgdXNpbmcgYSBzbWFydHkgdGFnIG9mIHRoZSBmb3JtCgkgICB7Y21zX21vZHVsZSBtb2R1bGU9J1NlY3VyZUxvZ2luJyBwYXJhbTE9dmFsIHBhcmFtMj12YWwuLi59CgoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBub3QgZ2V0IGluY2x1ZGVkIGluIHBhZ2VzIG9yCgkgICB0ZW1wbGF0ZXMsIHJldHVybiAiZmFsc2UiIGhlcmUuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJICAgewoJICAgCXJldHVybiB0cnVlOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBIYXNBZG1pbigpCgkgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIHZhbHVlLCBkZXBlbmRpbmcgb24KCSAgIHdoZXRoZXIgeW91ciBtb2R1bGUgYWRkcyBhbnl0aGluZyB0byB0aGUgQWRtaW4gYXJlYSBvZgoJICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSdsbCBiZSBjYWxsaW5nCgkgICB0aGUgYWRtaW4gcGFydCBvZiB5b3VyIG1vZHVsZSB0aGUgIkFkbWluIFBhbmVsIiBmb3IKCSAgIHdhbnQgb2YgYSBiZXR0ZXIgdGVybS4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkgICBmdW5jdGlvbiBIYXNBZG1pbigpCgkgICB7CgkgICAJcmV0dXJuIHRydWU7CgkgICB9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBZG1pblNlY3Rpb24oKQoJICAgSWYgeW91ciBtb2R1bGUgaGFzIGFuIEFkbWluIFBhbmVsLCB5b3UgY2FuIHNwZWNpZnkKCSAgIHdoaWNoIEFkbWluIFNlY3Rpb24gKG9yIHRvcC1sZXZlbCBBZG1pbiBNZW51KSBpdCBzaG93cwoJICAgdXAgaW4uIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgdG8gc3BlY2lmeSB0aGF0CgkgICBzZWN0aW9uLiBWYWxpZCByZXR1cm4gdmFsdWVzIGFyZToKCgkgICBtYWluICAgICAgICAtIHRoZSBNYWluIG1lbnUgdGFiLgoJICAgY29udGVudCAgICAgLSB0aGUgQ29udGVudCBtZW51CgkgICBsYXlvdXQgICAgICAtIHRoZSBMYXlvdXQgbWVudQoJICAgdXNlcnNncm91cHMgLSB0aGUgVXNlcnMgYW5kIEdyb3VwcyBtZW51CgkgICBleHRlbnNpb25zICAtIHRoZSBFeHRlbnNpb25zIG1lbnUgKHRoaXMgaXMgdGhlIGRlZmF1bHQpCgkgICBzaXRlYWRtaW4gICAtIHRoZSBTaXRlIEFkbWluIG1lbnUKCSAgIHZpZXdzaXRlICAgIC0gdGhlIFZpZXcgU2l0ZSBtZW51IHRhYgoJICAgbG9nb3V0ICAgICAgLSB0aGUgTG9nb3V0IG1lbnUgdGFiCgoJICAgTm90ZSB0aGF0IGlmIHlvdSBwbGFjZSB5b3VyIG1vZHVsZSBpbiB0aGUgbWFpbiwKCSAgIHZpZXdzaXRlLCBvciBsb2dvdXQgc2VjdGlvbnMsIGl0IHdpbGwgc2hvdyB1cCBpbiB0aGUKCSAgIG1lbnVzLCBidXQgd2lsbCBub3QgYmUgdmlzaWJsZSBpbiBhbnkgdG9wLWxldmVsCgkgICBzZWN0aW9uIHBhZ2VzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCgkgICB7CgkgICAJcmV0dXJuICdzaXRlYWRtaW4nOwoJICAgfQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QWRtaW5EZXNjcmlwdGlvbigpCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQoJICAgY2FuIGhhdmUgaXQgcmV0dXJuIGEgZGVzY3JpcHRpb24gc3RyaW5nIHRoYXQgZ2V0cyBzaG93bgoJICAgaW4gdGhlIEFkbWluIFNlY3Rpb24gcGFnZSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGUuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7CgkgICB9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBWaXNpYmxlVG9BZG1pblVzZXIoKQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKCSAgIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IGl0J3MgZGlzcGxheWVkIGJ5IHRoZSBib29sZWFuCgkgICB0aGF0IGlzIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkCgkgICB0byBoaWRlIG1vZHVsZXMgZnJvbSBhZG1pbnMgd2hvIGxhY2sgcGVybWlzc2lvbiB0byB1c2UKCSAgIHRoZW0uCgoJICAgVHlwaWNhbGx5LCB5b3UnbGwgdXNlIHNvbWUgcGVybWlzc2lvbiB0byBzZXQgdGhpcwoJICAgKGUuZy4sICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1NvbWUgUGVybWlzc2lvbicpOyApCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKCSAgIHsKCSAgIAlyZXR1cm4gdHJ1ZTsKCSAgIH0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIENoZWNrQWNjZXNzKCkKCSAgIFRoaXMgd3JhcHBlciBmdW5jdGlvbiB3aWxsIGNoZWNrIGFnYWluc3QgdGhlIHNwZWNpZmllZCBwZXJtaXNzaW9uLAoJICAgYW5kIGRpc3BsYXkgYW4gZXJyb3IgcGFnZSBpZiB0aGUgdXNlciBkb2Vzbid0IGhhdmUgYWRlcXVhdGUgcGVybWlzc2lvbnMuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoJHBlcm0gPSAnU2VjdXJlTG9naW4gbWFuYWdlbWVudCcpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm0pOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBEaXNwbGF5RXJyb3JQYWdlKCkKCSAgIFRoaXMgaXMgYSBzaW1wbGUgZnVuY3Rpb24gZm9yIGdlbmVyYXRpbmcgZXJyb3IgcGFnZXMuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKCSAgIHsKCSAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQoJICAgCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CgkgICB9CgoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0RGVwZW5kZW5jaWVzKCkKCSAgIFlvdXIgbW9kdWxlIG1heSBuZWVkIGFub3RoZXIgbW9kdWxlIHRvIGFscmVhZHkgYmUgaW5zdGFsbGVkCgkgICBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIGl0LgoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIGxpc3Qgb2YgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZAoJICAgbWluaW11bSB2ZXJzaW9uIG51bWJlcnMgdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KCgkgICBJdCBzaG91bGQgcmV0dXJuIGFuIGhhc2gsIGVnLgoJICAgcmV0dXJuIGFycmF5KCdzb21lbW9kdWxlJz0+JzEuMCcsICdvdGhlcm1vZHVsZSc9PicxLjEnKTsKCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkgICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQoJICAgewoJICAgCXJldHVybiBhcnJheSgnQ01TTWFpbGVyJz0+JzUuMi4xJyk7CgkgICB9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIE1pbmltdW1DTVNWZXJzaW9uKCkKCSAgIFlvdXIgbW9kdWxlIG1heSByZXF1aXJlIGZ1bmN0aW9ucyBvciBvYmplY3RzIGZyb20KCSAgIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBDTVMgTWFkZSBTaW1wbGUuCgkgICBFdmVyIHNpbmNlIHZlcnNpb24gMC4xMSwgeW91IGNhbiBzcGVjaWZ5IHdoaWNoIG1pbmltdW0KCSAgIENNUyBNUyB2ZXJzaW9uIGlzIHJlcXVpcmVkIGZvciB5b3VyIG1vZHVsZSwgd2hpY2ggd2lsbAoJICAgcHJldmVudCBpdCBmcm9tIGJlaW5nIGluc3RhbGxlZCBieSBhIHZlcnNpb24gb2YgQ01TIHRoYXQKCSAgIGNhbid0IHJ1biBpdC4KCgkgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKCSAgIG1pbmltdW0gdmVyc2lvbiB0aGF0IHRoaXMgbW9kdWxlIHJlcXVpcmVzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKCSAgIHsKCSAgIAlyZXR1cm4gIjEuMTEuNSI7CgkgICB9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBNYXhpbXVtQ01TVmVyc2lvbigpCgkgICBZb3UgbWF5IHdhbnQgdG8gcHJldmVudCBwZW9wbGUgZnJvbSB1c2luZyB5b3VyIG1vZHVsZSBpbgoJICAgZnV0dXJlIHZlcnNpb25zIG9mIENNUyBNYWRlIFNpbXBsZSwgZXNwZWNpYWxseSBpZiB5b3UKCSAgIHRoaW5rIEFQSSBmZWF0dXJlcyB5b3UgdXNlIG1heSBjaGFuZ2UgLS0gYWZ0ZXIgYWxsLCB5b3UKCSAgIG5ldmVyIHJlYWxseSBrbm93IGhvdyB0aGUgQ01TIE1TIEFQSSBjb3VsZCBldm9sdmUuCgoJICAgU28sIHRvIHByZXZlbnQgcGVvcGxlIGZyb20gZmxvb2RpbmcgeW91IHdpdGggYnVnIHJlcG9ydHMKCSAgIHdoZW4gYSBuZXcgdmVyc2lvbiBvZiBDTVMgTVMgaXMgcmVsZWFzZWQsIHlvdSBjYW4gc2ltcGx5CgkgICByZXN0cmljdCB0aGUgdmVyc2lvbi4gVGhlbiwgb2YgY291cnNlLCB0aGUgb251cyBpcyBvbiB5b3UKCSAgIHRvIHJlbGVhc2UgYSBuZXcgdmVyc2lvbiBvZiB5b3VyIG1vZHVsZSB3aGVuIGEgbmV3IHZlcnNpb24KCSAgIG9mIHRoZSBDTVMgaXMgcmVsZWFzZWQuLi4KCgkgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKCSAgIG1heGltdW0gdmVyc2lvbiB0aGF0IHRoaXMgbW9kdWxlIHN1cHBvcnRzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIC8vIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKCSAgIC8vIHsKCSAgIC8vIAlyZXR1cm4gIjEuMTEuNiI7CgkgICAvLyB9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJICAgQWZ0ZXIgaW5zdGFsbGF0aW9uLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCgkgICBjb21tdW5pY2F0ZSB0byB5b3VyIGFkbWluLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYQoJICAgc3RyaW5nIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICBBZnRlciByZW1vdmluZyBhIG1vZHVsZSwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwoJICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKCSAgIHN0cmluZyB3aGljaCB3aWxsIGJlIGRpc3BsYXllZC4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkgICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CgkgICB9CgoKCgoJLyoqCgkgKiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKCSAqIFRoaXMgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGEgbWVzc2FnZSBhbG9uZyB3aXRoIGEgWWVzL05vIGRpYWxvZyBib3guIElmIHRoZSB1c2VyIHJlc3BvbmRzCgkgKiBpbiB0aGUgYWZmaXJtYXRpdmUgdG8geW91ciBtZXNzYWdlLCB0aGUgdW5pbnN0YWxsIHdpbGwgcHJvY2VlZC4gSWYgdGhleSByZXNwb25kIGluIHRoZQoJICogbmVnYXRpdmUsIHRoZSB1bmluc3RhbGwgd2lsbCBiZSBjYW5jZWxlZC4gVGh1cywgeW91ciBtZXNzYWdlIHNob3VsZCBiZSBvZiB0aGUgZm9ybQoJICogIkFsbCBtb2R1bGUgZGF0YSB3aWxsIGJlIGRlbGV0ZWQuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/IgoJICoKCSAqIElmIHlvdSBkb24ndCB3YW50IHRoZSBkaWFsb2csIGhhdmUgdGhpcyBtZXRob2QgcmV0dXJuIGEgRkFMU0UsIHdoaWNoIHdpbGwgY2F1c2UgdGhlCgkgKiBtb2R1bGUgdG8gdW5pbnN0YWxsIGltbWVkaWF0ZWx5IGlmIHRoZSB1c2VyIGNsaWNrcyB0aGUgInVuaW5zdGFsbCIgbGluay4KCSAqLwoJZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7Cgl9CgoJZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKCXsKCQkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKLQkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaXAnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3VzZXJuYW1lJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdrZXknLENMRUFOX1NUUklORyk7Cgl9Cglwcml2YXRlICRfc2VjdXJlTG9naW47CgoJZnVuY3Rpb24gc2VjdXJlTG9naW4oKXsKCQlpZigkdGhpcy0+X3NlY3VyZUxvZ2luID09IG51bGwpewoJCQkkdGhpcy0+X3NlY3VyZUxvZ2luID0gbmV3IHBpZWNlb2Zjb2RlXFNlY3VyZUxvZ2luKCR0aGlzLT5HZXREYigpLCBjbXNfZGJfcHJlZml4KCkgLidtb2R1bGVfc2VjdXJlbG9naW4nKTsKCQl9CgkJcmV0dXJuICR0aGlzLT5fc2VjdXJlTG9naW47Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldFJlZGlyZWN0VXJsKCR1cmwpewoJCWNtc19zaXRlcHJlZnM6OnNldCgnU2VjdXJlTG9naW5fcmVkaXJjdFVybCcsICR1cmwpOwoJfQoJcHVibGljIGZ1bmN0aW9uIGdldFJlZGlyZWN0VXJsKCl7CgkJcmV0dXJuIGNtc19zaXRlcHJlZnM6OmdldCgnU2VjdXJlTG9naW5fcmVkaXJjdFVybCcpOwoJfQoJcHVibGljIGZ1bmN0aW9uIGdldFVzZXJJRCgpewoJCXJldHVybiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2VuZEVtYWlsKCRpcCwgJHVzZXIpewoJCWdsb2JhbCAkY29uZmlnOwoJCSRjb25maWdQYXJhbSA9IGVtcHR5KCRfU0VSVkVSWydIVFRQUyddKSA/ICAncm9vdF91cmwnIDogJ3NzbF91cmwnOwoJCSR2YWxpZGF0aW9uS2V5ID0gJHRoaXMtPnNlY3VyZUxvZ2luKCktPmNyZWF0ZVZhbGlkYXRpb25LZXkoJHVzZXItPnVzZXJuYW1lLCAkaXApOwoKCQkkY21zbWFpbGVyID0mIENNU01vZHVsZTo6R2V0TW9kdWxlSW5zdGFuY2UoJ0NNU01haWxlcicpOwoKCQkkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCR1c2VyLT5lbWFpbCwgaHRtbF9lbnRpdHlfZGVjb2RlKCR1c2VyLT5maXJzdG5hbWUgLiAnICcgLiAkdXNlci0+bGFzdG5hbWUpKTsKCQkkY21zbWFpbGVyLT5TZXRTdWJqZWN0KCR0aGlzLT5MYW5nKCdlbWFpbC5zdWJqZWN0JykpOwoKCQkkdXJsX3BhcmFtcyA9IGFycmF5KCdpcCcgPT4gJGlwLCAna2V5JyA9PiAkdmFsaWRhdGlvbktleSwgJ3VzZXJuYW1lJyA9PiAkdXNlci0+dXNlcm5hbWUpOwoJCSR1cmwgPSBzcHJpbnRmKCclcy90bXAvc2VjdXJlTG9naW5IYW5kbGVyLnBocD91c2VybmFtZT0lcyZpcD0lcyZrZXk9JXMnLCAkY29uZmlnWyRjb25maWdQYXJhbV0sICR1c2VyLT51c2VybmFtZSwgJGlwLCAkdmFsaWRhdGlvbktleSk7CgoJCSRlbWFpbF9ib2R5ID0gc3RyX3JlcGxhY2UoJ1t1cmxdJywgJHVybCwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYWlsLnRlbXBsYXRlJykpOwoKCQkkY21zbWFpbGVyLT5TZXRCb2R5KCRlbWFpbF9ib2R5KTsKCQkkY21zbWFpbGVyLT5TZW5kKCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldExhbmRpbmdwYWdlSWQoJGlkKXsKCQljbXNfc2l0ZXByZWZzOjpzZXQoJ1NlY3VyZUxvZ2luTGFuZGluZ1BhZ2VJZCcsICRpZCk7Cgl9CglwdWJsaWMgZnVuY3Rpb24gZ2V0TGFuZGluZ1BhZ2VJZCgpewoJCXJldHVybiBjbXNfc2l0ZXByZWZzOjpnZXQoJ1NlY3VyZUxvZ2luTGFuZGluZ1BhZ2VJZCcpOwoJfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD5QbGFjZSB0aGUgY29udGVudHMgb2YgeW91ciBhZG1pbiBwYW5lbCBoZXJlLjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/email.template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgxPnskdGl0bGV9PC9oMT4KeyRmb3JtX3N0YXJ0fQp7JHZhcmlhYmxlc30KPGVtPnskaGludH08L2VtPjxiciAvPgp7JHRlbXBsYXRlfQo8cD57JHN1Ym1pdH17JGNhbmNlbH17JGFwcGx5fTwvcD4KeyRmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/entries.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkucGFnZXRhYmxlIHRyLnZhbGlkIHsKCQliYWNrZ3JvdW5kLWNvbG9yOiAjNTZDOTFDOwoJfQoJLnBhZ2V0YWJsZSB0ci5pbnZhbGlkIHsKCQliYWNrZ3JvdW5kLWNvbG9yOiAjQjUxMjE1OwoJfQoJLnBhZ2V0YWJsZSB0aC5jdXJyZW50IHsKCQl3aWR0aDogMTAwcHg7CgkJZm9udC13ZWlnaHQ6Ym9sZDsKCX0KCS5wYWdldGFibGUgdGguYWN0aW9uIHsKCQl3aWR0aDogMTAwcHg7Cgl9Cgl0YWJsZS5wYWdldGFibGUgdGR7CgkJY29sb3I6YmxhY2s7Cgl9Cjwvc3R5bGU+CnsvbGl0ZXJhbH0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiICBzdHlsZT0id2lkdGg6MTAwJSIgPgogIDx0cj4KICAgIDx0aCBjbGFzcz0iY3VycmVudCI+PC90aD4KICAgIDx0aD57JGNhcHRpb25fdXNlcm5hbWV9PC90aD4KICAgIDx0aD57JGNhcHRpb25faXB9PC90aD4KICAgIDx0aCBjbGFzcz0iYWN0aW9uIj57JGNhcHRpb25fYWN0aW9uc308L3RoPgogIDwvdHI+CntpZiBpc3NldCgkY3VycmVudCl9Cjx0ciBjbGFzcyA9ICJjdXJyZW50IHskY3VycmVudC0+dmFsaWRhdGVkfSI+CiAgICA8dGQ+eyRjYXB0aW9uX2N1cnJlbnR9PC90ZD4KICAgIDx0ZD57JGN1cnJlbnQtPnVzZXJuYW1lfTwvdGQ+CiAgICA8dGQ+eyRjdXJyZW50LT5pcH08L3RkPgogICAgPHRkPjwvdGQ+CjwvdHI+CnsvaWZ9CntpZiAkZW50cmllc3xAY291bnQgPiAwfQp7Zm9yZWFjaCBmcm9tPSRlbnRyaWVzIGl0ZW09ZW50cnl9Cjx0ciBjbGFzcyA9ICJ7JGVudHJ5LT52YWxpZGF0ZWR9Ij4KICAgIDx0ZD48L3RkPgogICAgPHRkPnskZW50cnktPnVzZXJuYW1lfTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+aXB9PC90ZD4KICAgIDx0ZD57JGVudHJ5LT52YWxpZGF0aW9uQWN0aW9ufTwvdGQ+CjwvdHI+CiB7L2ZvcmVhY2h9CnsvaWZ9CjwvdGFibGU+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/secureLoginHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKcmVxdWlyZSgnLi4vaW5jbHVkZS5waHAnKTsKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokcmVnZXhwX3N0cmluZyA9ICIvXEFbXHddKlxaLyI7CiRyZWFsX2lwID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107CiRpcCA9ICRfR0VUWydpcCddOwokdXNlciA9ICRfR0VUWyd1c2VybmFtZSddOwoka2V5ID0gJF9HRVRbJ2tleSddOwppZigkcmVhbF9pcCA9PSAkaXAKICAmJiBwcmVnX21hdGNoKCRyZWdleHBfc3RyaW5nLCAkdXNlcikKICAmJiBwcmVnX21hdGNoKCRyZWdleHBfc3RyaW5nLCAka2V5KSl7CgogICRzZWN1cmVsb2dpbiA9JiBDTVNNb2R1bGU6OkdldE1vZHVsZUluc3RhbmNlKCdTZWN1cmVMb2dpbicpOwoKICAkc2VjdXJlbG9naW4tPnNlY3VyZUxvZ2luKCktPnZhbGlkYXRlS2V5KCRrZXksICRyZWFsX2lwLCAkdXNlcik7CiAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICRjb25maWdQYXJhbSA9IGVtcHR5KCRfU0VSVkVSWydIVFRQUyddKSA/ICAncm9vdF91cmwnIDogJ3NzbF91cmwnOwogICR1cmwgPSAgc3RyX3JlcGxhY2UoJy90bXAvJywgJy8nLCAkY29uZmlnWydhZG1pbl91cmwnXSk7CiAgaGVhZGVyKCBzcHJpbnRmKCdMb2NhdGlvbjogJXMnLCAkdXJsKSk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/templates/settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgbGFiZWwgewogICAgZm9udC1zaXplOiAxLjRlbTsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogIH0KICBwIHsKICAgIG1hcmdpbi1ib3R0b206IDFlbTsKICB9Cjwvc3R5bGU+CnsvbGl0ZXJhbH0KCjxwPnskZW1haWx0ZW1wbGF0ZWxpbmt9PC9wPgo8aHIgLz4KPHA+CnskZm9ybV9zdGFydH0KeyRyZWRpcmVjdF9sYWJlbH08YnIgLz4KPHNwYW4gY2xhc3M9InNtYWxsIj57JHJlZGlyZWN0X2Rlc2N9PC9zcGFuPjxiciAvPgp7JHJlZGlyZWN0X2lucHV0fQp7JHJlZGlyZWN0X3N1Ym1pdH0KeyRmb3JtX2VuZH0KPC9wPgo=]]></data>
	</file>
</module>
