<?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>TwoFactor</name>
	<version>1.0.0</version>
    <mincmsversion>2.1.6</mincmsversion>
	<help><![CDATA[PHA+VHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiAoMkZBKSBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSBieSBQaXhlbCBTb2x1dGlvbnMuPC9wPgoKPGgyPkZlYXR1cmVzPC9oMj4KCjx1bD4KICA8bGk+PHN0cm9uZz5NdWx0aXBsZSBBdXRoZW50aWNhdGlvbiBNZXRob2RzPC9zdHJvbmc+OgogICAgPHVsPgogICAgICA8bGk+VE9UUCAoVGltZS1iYXNlZCBPbmUtVGltZSBQYXNzd29yZCkgLSBHb29nbGUgQXV0aGVudGljYXRvciwgQXV0aHksIGV0Yy48L2xpPgogICAgICA8bGk+RW1haWwgVmVyaWZpY2F0aW9uIC0gUmVjZWl2ZSBjb2RlcyB2aWEgZW1haWw8L2xpPgogICAgICA8bGk+U01TIFZlcmlmaWNhdGlvbiAtIFJlY2VpdmUgY29kZXMgdmlhIFR3aWxpbyBTTVM8L2xpPgogICAgICA8bGk+QmFja3VwIENvZGVzIC0gT25lLXRpbWUgZW1lcmdlbmN5IGFjY2VzcyBjb2RlczwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+RmxleGlibGUgQ29uZmlndXJhdGlvbjwvc3Ryb25nPjoKICAgIDx1bD4KICAgICAgPGxpPlVzZXJzIGNhbiBlbmFibGUvZGlzYWJsZSBtZXRob2RzIGluZGl2aWR1YWxseTwvbGk+CiAgICAgIDxsaT5DaG9vc2UgcHJpbWFyeSBhdXRoZW50aWNhdGlvbiBtZXRob2Q8L2xpPgogICAgICA8bGk+TXVsdGlwbGUgbWV0aG9kcyBjYW4gYmUgZW5hYmxlZCBhcyBmYWxsYmFjayBvcHRpb25zPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5TZWN1cml0eSBGZWF0dXJlczwvc3Ryb25nPjoKICAgIDx1bD4KICAgICAgPGxpPkludGVyY2VwdHMgbG9naW4gYWZ0ZXIgdXNlcm5hbWUvcGFzc3dvcmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgIDxsaT5TZXNzaW9uLWJhc2VkIHZlcmlmaWNhdGlvbiBmbG93PC9saT4KICAgICAgPGxpPkF1ZGl0IGxvZ2dpbmcgZm9yIGFsbCAyRkEgZXZlbnRzPC9saT4KICAgICAgPGxpPlNlY3VyZSBjb2RlIGdlbmVyYXRpb24gYW5kIHZhbGlkYXRpb248L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGgyPkluc3RhbGxhdGlvbjwvaDI+Cgo8b2w+CiAgPGxpPlVwbG9hZCB0aGUgbW9kdWxlIGZpbGVzIHRvIDxjb2RlPm1vZHVsZXMvVHdvRmFjdG9yLzwvY29kZT48L2xpPgogIDxsaT5JbnN0YWxsIHRoZSBtb2R1bGUgZnJvbSBFeHRlbnNpb25zICZndDsgTW9kdWxlczwvbGk+CiAgPGxpPlRoZSBtb2R1bGUgd2lsbCBhdXRvbWF0aWNhbGx5OgogICAgPHVsPgogICAgICA8bGk+Q3JlYXRlIHRoZSBkYXRhYmFzZSB0YWJsZSA8Y29kZT5tb2RfdHdvZmFjdG9yX3VzZXJtZXRhPC9jb2RlPjwvbGk+CiAgICAgIDxsaT5Db3B5IDxjb2RlPmFkbWluL3R3b2ZhY3Rvci5waHA8L2NvZGU+IHZlcmlmaWNhdGlvbiBwYWdlPC9saT4KICAgICAgPGxpPlJlZ2lzdGVyIHRoZSBDb3JlOjpMb2dpblBvc3QgZXZlbnQgaGFuZGxlcjwvbGk+CiAgICA8L3VsPgogIDwvbGk+Cjwvb2w+Cgo8aDI+Q29uZmlndXJhdGlvbjwvaDI+Cgo8aDM+VE9UUCAoQXV0aGVudGljYXRvciBBcHApPC9oMz4KPG9sPgogIDxsaT5OYXZpZ2F0ZSB0byBFeHRlbnNpb25zICZndDsgVHdvRmFjdG9yPC9saT4KICA8bGk+Q2xpY2sgIkNvbmZpZ3VyZSIgZm9yIEF1dGhlbnRpY2F0b3IgQXBwPC9saT4KICA8bGk+U2NhbiB0aGUgUVIgY29kZSB3aXRoIHlvdXIgYXV0aGVudGljYXRvciBhcHA8L2xpPgogIDxsaT5FbnRlciB0aGUgNi1kaWdpdCBjb2RlIHRvIHZlcmlmeTwvbGk+Cjwvb2w+Cgo8aDM+RW1haWwgVmVyaWZpY2F0aW9uPC9oMz4KPG9sPgogIDxsaT5DbGljayAiQ29uZmlndXJlIiBmb3IgRW1haWwgVmVyaWZpY2F0aW9uPC9saT4KICA8bGk+Q2xpY2sgIkVuYWJsZSBFbWFpbCBWZXJpZmljYXRpb24iPC9saT4KICA8bGk+Q29kZXMgd2lsbCBiZSBzZW50IHRvIHlvdXIgYWRtaW4gYWNjb3VudCBlbWFpbDwvbGk+Cjwvb2w+Cgo8aDM+U01TIFZlcmlmaWNhdGlvbiAoVHdpbGlvKTwvaDM+CjxvbD4KICA8bGk+Q3JlYXRlIGEgVHdpbGlvIGFjY291bnQgYW5kIFZlcmlmeSBTZXJ2aWNlPC9saT4KICA8bGk+R2VuZXJhdGUgQVBJIEtleSBhbmQgU2VjcmV0IGluIFR3aWxpbyBDb25zb2xlPC9saT4KICA8bGk+RW50ZXIgY3JlZGVudGlhbHMgaW4gU01TIHNldHRpbmdzOgogICAgPHVsPgogICAgICA8bGk+QVBJIEtleSBTSUQ8L2xpPgogICAgICA8bGk+QVBJIFNlY3JldDwvbGk+CiAgICAgIDxsaT5WZXJpZnkgU2VydmljZSBTSUQ8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5FbnRlciBwaG9uZSBudW1iZXIgaW4gRS4xNjQgZm9ybWF0IChlLmcuLCArMTIzNDU2Nzg5MCk8L2xpPgogIDxsaT5WZXJpZnkgdGhlIGNvZGUgc2VudCB0byB5b3VyIHBob25lPC9saT4KPC9vbD4KCjxoMz5CYWNrdXAgQ29kZXM8L2gzPgo8b2w+CiAgPGxpPkNsaWNrICJDb25maWd1cmUiIGZvciBCYWNrdXAgQ29kZXM8L2xpPgogIDxsaT5DbGljayAiR2VuZXJhdGUgQmFja3VwIENvZGVzIjwvbGk+CiAgPGxpPlNhdmUgdGhlIGNvZGVzIGluIGEgc2VjdXJlIGxvY2F0aW9uPC9saT4KICA8bGk+RWFjaCBjb2RlIGNhbiBvbmx5IGJlIHVzZWQgb25jZTwvbGk+Cjwvb2w+Cgo8aDM+U2NyZWVuc2hvdHM8L2gzPgo8cD48aW1nIHNyYz0iaHR0cHM6Ly9jbXNtcy1kb3dubG9hZHMuczMuZXUtc291dGgtMS5hbWF6b25hd3MuY29tL1R3b0ZhY3Rvci90aHVtYm5haWwuanBnIiBhbHQ9IlR3b0ZhY3RvciBtb2R1bGUiIHdpZHRoPSI5MDAiPjwvcD4KCgo8aDI+VXNhZ2U8L2gyPgoKPGgzPkxvZ2luIEZsb3c8L2gzPgo8b2w+CiAgPGxpPkVudGVyIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcyBub3JtYWw8L2xpPgogIDxsaT5BZnRlciBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uLCB5b3UnbGwgYmUgcmVkaXJlY3RlZCB0byAyRkEgdmVyaWZpY2F0aW9uPC9saT4KICA8bGk+RW50ZXIgdGhlIGNvZGUgZnJvbSB5b3VyIHByaW1hcnkgYXV0aGVudGljYXRpb24gbWV0aG9kPC9saT4KICA8bGk+Q2xpY2sgIlVzZSBhIGJhY2t1cCBjb2RlIiBpZiB5b3UgbmVlZCB0byB1c2UgYW4gYWx0ZXJuYXRpdmUgbWV0aG9kPC9saT4KPC9vbD4KCjxoMz5Td2l0Y2hpbmcgTWV0aG9kczwvaDM+CjxwPkR1cmluZyB2ZXJpZmljYXRpb24sIHlvdSBjYW4gc3dpdGNoIGJldHdlZW4gZW5hYmxlZCBtZXRob2RzIHVzaW5nIHRoZSBwcm92aWRlciBkcm9wZG93bi48L3A+Cgo8aDI+VW5pbnN0YWxsYXRpb248L2gyPgoKPHA+VGhlIG1vZHVsZSB3aWxsOjwvcD4KPHVsPgogIDxsaT5SZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlPC9saT4KICA8bGk+RGVsZXRlIHRoZSA8Y29kZT5hZG1pbi90d29mYWN0b3IucGhwPC9jb2RlPiBmaWxlPC9saT4KICA8bGk+UmVtb3ZlIGFsbCB1c2VyIDJGQSBzZXR0aW5nczwvbGk+CjwvdWw+Cgo8aDI+UmVxdWlyZW1lbnRzPC9oMj4KCjx1bD4KICA8bGk+Q01TIE1hZGUgU2ltcGxlIDIueDwvbGk+CiAgPGxpPlBIUCA3LjQgb3IgaGlnaGVyPC9saT4KICA8bGk+Rm9yIFRPVFA6IFJvYlRocmVlL1R3b0ZhY3RvckF1dGggbGlicmFyeSAoaW5jbHVkZWQgdmlhIENvbXBvc2VyKTwvbGk+CiAgPGxpPkZvciBTTVM6IFR3aWxpbyBhY2NvdW50IHdpdGggVmVyaWZ5IEFQSSBhY2Nlc3M8L2xpPgo8L3VsPgoKPGgyPlN1cHBvcnQ8L2gyPgoKPHA+Rm9yIGlzc3VlcyBvciBxdWVzdGlvbnMsIHZpc2l0OiA8YSBocmVmPSJodHRwczovL3BpeGVsc29sdXRpb25zLmJpeiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vcGl4ZWxzb2x1dGlvbnMuYml6PC9hPjwvcD4K]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBNYWdhbCBIZXppICZsdDttYWdhbEBwaXhlbHNvbHV0aW9ucy5iaXomZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4wLjA8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48aDM+VmVyc2lvbiAxLjAuMDwvaDM+Cjx1bD4KICA8bGk+SW5pdGlhbCBzdGFibGUgcmVsZWFzZTwvbGk+CiAgPGxpPlRPVFAgKEF1dGhlbnRpY2F0b3IgQXBwKSBzdXBwb3J0IHdpdGggUVIgY29kZSBnZW5lcmF0aW9uPC9saT4KICA8bGk+RW1haWwgdmVyaWZpY2F0aW9uIHdpdGggNi1kaWdpdCBjb2RlczwvbGk+CiAgPGxpPlNNUyB2ZXJpZmljYXRpb24gdmlhIFR3aWxpbyBWZXJpZnkgQVBJPC9saT4KICA8bGk+QmFja3VwIGNvZGVzIGZvciBlbWVyZ2VuY3kgYWNjZXNzPC9saT4KICA8bGk+UGhvbmUgbnVtYmVyIHZlcmlmaWNhdGlvbiBmbG93IHdpdGggcmVzZW5kIGFuZCBjaGFuZ2Ugb3B0aW9uczwvbGk+CiAgPGxpPkZyaWVuZGx5IGVycm9yIG1lc3NhZ2VzIGZvciBUd2lsaW8gQVBJIGVycm9yczwvbGk+CiAgPGxpPkxvZ2luIGludGVyY2VwdGlvbiB2aWEgQ29yZTo6TG9naW5Qb3N0IGV2ZW50PC9saT4KICA8bGk+U3RhbmRhbG9uZSB2ZXJpZmljYXRpb24gcGFnZSAoYWRtaW4vdHdvZmFjdG9yLnBocCk8L2xpPgogIDxsaT5Vc2VyIG1ldGFkYXRhIHN0b3JhZ2Ugc3lzdGVtPC9saT4KICA8bGk+UHJvdmlkZXIgc3dpdGNoaW5nIGR1cmluZyB2ZXJpZmljYXRpb248L2xpPgogIDxsaT5QcmltYXJ5IG1ldGhvZCBzZWxlY3Rpb248L2xpPgogIDxsaT5BdWRpdCBsb2dnaW5nIGZvciBhbGwgMkZBIGV2ZW50czwvbGk+CjwvdWw+CjxiciAvPg==]]></about>
	<description><![CDATA[Secure CMS Made Simple login with Two Factor Authentication (2FA) - by Pixel Solutions]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMgU2VlIGRvYy9MSUNFTlNFLnR4dCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbihUd29GYWN0b3I6Ok1BTkFHRV9QRVJNKSApIHJldHVybjsNCg0KJHVpZCA9IGdldF91c2VyaWQoKTsNCg0KLy8gSGFuZGxlIHNldCBwcmltYXJ5DQppZiAoaXNzZXQoJHBhcmFtc1snc2V0X3ByaW1hcnknXSkpIHsNCiAgICBUd29GYWN0b3JDb3JlOjpzZXRfcHJpbWFyeV9wcm92aWRlcigkdWlkLCAkcGFyYW1zWydzZXRfcHJpbWFyeSddKTsNCiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygncHJpbWFyeV91cGRhdGVkJykpOw0KICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsNCiAgICByZXR1cm47DQp9DQoNCiRwcm92aWRlcnMgPSBUd29GYWN0b3JDb3JlOjpnZXRfcHJvdmlkZXJzKCk7DQokZW5hYmxlZF9wcm92aWRlcnMgPSBUd29GYWN0b3JVc2VyTWV0YTo6Z2V0X2VuYWJsZWRfcHJvdmlkZXJzKCR1aWQpOw0KJHByaW1hcnlfcHJvdmlkZXIgPSBUd29GYWN0b3JVc2VyTWV0YTo6Z2V0X3ByaW1hcnlfcHJvdmlkZXIoJHVpZCk7DQoNCiR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkdGhpcy0+R2V0VGVtcGxhdGVSZXNvdXJjZSgnZGVmYXVsdGFkbWluLnRwbCcpLCBudWxsLCBudWxsLCAkc21hcnR5KTsNCiR0cGwtPmFzc2lnbigncHJvdmlkZXJzJywgJHByb3ZpZGVycyk7DQokdHBsLT5hc3NpZ24oJ2VuYWJsZWRfcHJvdmlkZXJzJywgJGVuYWJsZWRfcHJvdmlkZXJzKTsNCiR0cGwtPmFzc2lnbigncHJpbWFyeV9wcm92aWRlcicsICRwcmltYXJ5X3Byb3ZpZGVyKTsNCiR0cGwtPmFzc2lnbigndXNlcl9pZCcsICR1aWQpOw0KJHRwbC0+ZGlzcGxheSgpOw==]]></data>
	</file>
	<file>
	  <filename>/action.setup_backup_codes.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKFR3b0ZhY3Rvcjo6TUFOQUdFX1BFUk0pKSByZXR1cm47CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICByZXR1cm47Cn0KCiR1aWQgPSBnZXRfdXNlcmlkKCk7CiRwcm92aWRlciA9IFR3b0ZhY3RvclByb3ZpZGVyQmFja3VwQ29kZXM6OmdldF9pbnN0YW5jZSgpOwoKLy8gSGFuZGxlIGdlbmVyYXRlCmlmIChpc3NldCgkcGFyYW1zWydnZW5lcmF0ZSddKSkgewogICAgJGNvZGVzID0gJHByb3ZpZGVyLT5nZW5lcmF0ZV9jb2RlcygxMCk7CiAgICAkcHJvdmlkZXItPnNldF9jb2RlcygkdWlkLCAkY29kZXMpOwogICAgVHdvRmFjdG9yQ29yZTo6ZW5hYmxlX3Byb3ZpZGVyX2Zvcl91c2VyKCR1aWQsICdUd29GYWN0b3JQcm92aWRlckJhY2t1cENvZGVzJyk7CiAgICAKICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkdGhpcy0+R2V0VGVtcGxhdGVSZXNvdXJjZSgnc2V0dXBfYmFja3VwX2NvZGVzLnRwbCcpLCBudWxsLCBudWxsLCAkc21hcnR5KTsKICAgICR0cGwtPmFzc2lnbignY29kZXMnLCAkY29kZXMpOwogICAgJHRwbC0+YXNzaWduKCduZXdfY29kZXMnLCB0cnVlKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIHJldHVybjsKfQoKLy8gSGFuZGxlIGRpc2FibGUKaWYgKGlzc2V0KCRwYXJhbXNbJ2Rpc2FibGUnXSkpIHsKICAgIFR3b0ZhY3RvckNvcmU6OmRpc2FibGVfcHJvdmlkZXJfZm9yX3VzZXIoJHVpZCwgJ1R3b0ZhY3RvclByb3ZpZGVyQmFja3VwQ29kZXMnKTsKICAgIFR3b0ZhY3RvclVzZXJNZXRhOjpkZWxldGUoJHVpZCwgJ2JhY2t1cF9jb2RlcycpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2JhY2t1cF9jb2Rlc19kaXNhYmxlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgIHJldHVybjsKfQoKJGNvZGVzID0gJHByb3ZpZGVyLT5nZXRfY29kZXMoJHVpZCk7CiRpc19lbmFibGVkID0gIWVtcHR5KCRjb2Rlcyk7CgokdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJ3NldHVwX2JhY2t1cF9jb2Rlcy50cGwnKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSk7CiR0cGwtPmFzc2lnbignY29kZXMnLCAkY29kZXMpOwokdHBsLT5hc3NpZ24oJ2lzX2VuYWJsZWQnLCAkaXNfZW5hYmxlZCk7CiR0cGwtPmFzc2lnbignbmV3X2NvZGVzJywgZmFsc2UpOwokdHBsLT5kaXNwbGF5KCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.setup_email.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKFR3b0ZhY3Rvcjo6TUFOQUdFX1BFUk0pKSByZXR1cm47CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICByZXR1cm47Cn0KCiR1aWQgPSBnZXRfdXNlcmlkKCk7CiRwcm92aWRlciA9IFR3b0ZhY3RvclByb3ZpZGVyRW1haWw6OmdldF9pbnN0YW5jZSgpOwoKLy8gSGFuZGxlIGVuYWJsZQppZiAoaXNzZXQoJHBhcmFtc1snZW5hYmxlJ10pKSB7CiAgICBUd29GYWN0b3JDb3JlOjplbmFibGVfcHJvdmlkZXJfZm9yX3VzZXIoJHVpZCwgJ1R3b0ZhY3RvclByb3ZpZGVyRW1haWwnKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdlbWFpbF9lbmFibGVkJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwogICAgcmV0dXJuOwp9CgovLyBIYW5kbGUgZGlzYWJsZQppZiAoaXNzZXQoJHBhcmFtc1snZGlzYWJsZSddKSkgewogICAgVHdvRmFjdG9yQ29yZTo6ZGlzYWJsZV9wcm92aWRlcl9mb3JfdXNlcigkdWlkLCAnVHdvRmFjdG9yUHJvdmlkZXJFbWFpbCcpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2VtYWlsX2Rpc2FibGVkJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwogICAgcmV0dXJuOwp9CgokdXNlciA9IFVzZXJPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+TG9hZFVzZXJCeUlEKCR1aWQpOwokaXNfZW5hYmxlZCA9IGluX2FycmF5KCdUd29GYWN0b3JQcm92aWRlckVtYWlsJywgVHdvRmFjdG9yVXNlck1ldGE6OmdldF9lbmFibGVkX3Byb3ZpZGVycygkdWlkKSk7CgokdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJ3NldHVwX2VtYWlsLnRwbCcpLCBudWxsLCBudWxsLCAkc21hcnR5KTsKJHRwbC0+YXNzaWduKCd1c2VyX2VtYWlsJywgJHVzZXItPmVtYWlsID8/ICcnKTsKJHRwbC0+YXNzaWduKCdpc19lbmFibGVkJywgJGlzX2VuYWJsZWQpOwokdHBsLT5kaXNwbGF5KCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.setup_sms.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKFR3b0ZhY3Rvcjo6TUFOQUdFX1BFUk0pKSByZXR1cm47CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICByZXR1cm47Cn0KCiR1aWQgPSBnZXRfdXNlcmlkKCk7CiRwcm92aWRlciA9IFR3b0ZhY3RvclByb3ZpZGVyU01TOjpnZXRfaW5zdGFuY2UoKTsKCiR2ZXJpZnlfcmVzdWx0ID0gbnVsbDsKJHZlcmlmeV9zdWNjZXNzID0gZmFsc2U7CiRlcnJvcl9tZXNzYWdlID0gJyc7CgpmdW5jdGlvbiBnZXRfZnJpZW5kbHlfdHdpbGlvX2Vycm9yKCRyZXNwb25zZSkgewogICAgJGNvZGUgPSAkcmVzcG9uc2VbJ2NvZGUnXSA/PyAwOwogICAgJGVycm9ycyA9IFsKICAgICAgICAyMDQwNCA9PiAnSW52YWxpZCBUd2lsaW8gU2VydmljZSBTSUQuIFBsZWFzZSBjaGVjayB5b3VyIFZlcmlmeSBTZXJ2aWNlIFNJRCBpbiBzZXR0aW5ncy4nLAogICAgICAgIDIwMDAzID0+ICdJbnZhbGlkIEFQSSBjcmVkZW50aWFscy4gUGxlYXNlIGNoZWNrIHlvdXIgQVBJIEtleSBTSUQgYW5kIFNlY3JldC4nLAogICAgICAgIDYwMjAwID0+ICdJbnZhbGlkIHBob25lIG51bWJlciBmb3JtYXQuIFVzZSBFLjE2NCBmb3JtYXQgKGUuZy4sICsxMjM0NTY3ODkwKS4nLAogICAgICAgIDYwMjAyID0+ICdNYXhpbXVtIHZlcmlmaWNhdGlvbiBhdHRlbXB0cyByZWFjaGVkLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsCiAgICAgICAgNjAyMDMgPT4gJ01heGltdW0gdmVyaWZpY2F0aW9uIGNoZWNrcyByZWFjaGVkLiBQbGVhc2UgcmVxdWVzdCBhIG5ldyBjb2RlLicsCiAgICAgICAgNjAyMDUgPT4gJ1NNUyBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHBob25lIG51bWJlci4nLAogICAgICAgIDYwMjEyID0+ICdUb28gbWFueSByZXF1ZXN0cy4gUGxlYXNlIHdhaXQgYmVmb3JlIHRyeWluZyBhZ2Fpbi4nLAogICAgXTsKICAgIHJldHVybiAkZXJyb3JzWyRjb2RlXSA/PyAoJHJlc3BvbnNlWydtZXNzYWdlJ10gPz8gJ1Vua25vd24gZXJyb3InKTsKfQoKLy8gSGFuZGxlIHJlc2VuZCBjb2RlCmlmIChpc3NldCgkcGFyYW1zWydyZXNlbmRfY29kZSddKSkgewogICAgJHBlbmRpbmcgPSBUd29GYWN0b3JVc2VyTWV0YTo6Z2V0KCR1aWQsICdzbXNfcGhvbmVfcGVuZGluZycpOwogICAgaWYgKCRwZW5kaW5nKSB7CiAgICAgICAgJGFwaV9rZXlfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfa2V5X3NpZCcpOwogICAgICAgICRhcGlfc2VjcmV0ID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfc2VjcmV0Jyk7CiAgICAgICAgJHNlcnZpY2Vfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19zZXJ2aWNlX3NpZCcpOwogICAgICAgIAogICAgICAgIGlmICgkYXBpX2tleV9zaWQgJiYgJGFwaV9zZWNyZXQgJiYgJHNlcnZpY2Vfc2lkKSB7CiAgICAgICAgICAgICR1cmwgPSAiaHR0cHM6Ly92ZXJpZnkudHdpbGlvLmNvbS92Mi9TZXJ2aWNlcy97JHNlcnZpY2Vfc2lkfS9WZXJpZmljYXRpb25zIjsKICAgICAgICAgICAgCiAgICAgICAgICAgICRkYXRhID0gWwogICAgICAgICAgICAgICAgJ1RvJyA9PiAkcGVuZGluZywKICAgICAgICAgICAgICAgICdDaGFubmVsJyA9PiAnc21zJwogICAgICAgICAgICBdOwogICAgICAgICAgICAKICAgICAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCBodHRwX2J1aWxkX3F1ZXJ5KCRkYXRhKSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSUFdELCAieyRhcGlfa2V5X3NpZH06eyRhcGlfc2VjcmV0fSIpOwogICAgICAgICAgICAKICAgICAgICAgICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgICAgICAgICAkaHR0cF9jb2RlID0gY3VybF9nZXRpbmZvKCRjaCwgQ1VSTElORk9fSFRUUF9DT0RFKTsKICAgICAgICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgICAgICAgICAKICAgICAgICAgICAgJHJlc3BvbnNlID0ganNvbl9kZWNvZGUoJHJlc3VsdCwgdHJ1ZSk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoJGh0dHBfY29kZSA+PSAyMDAgJiYgJGh0dHBfY29kZSA8IDMwMCkgewogICAgICAgICAgICAgICAgJHZlcmlmeV9yZXN1bHQgPSAkcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAkdmVyaWZ5X3N1Y2Nlc3MgPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHZlcmlmeV9yZXN1bHQgPSAkcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAkdmVyaWZ5X3N1Y2Nlc3MgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRlcnJvcl9tZXNzYWdlID0gZ2V0X2ZyaWVuZGx5X3R3aWxpb19lcnJvcigkcmVzcG9uc2UpOwogICAgICAgICAgICAgICAgYXVkaXQoJHVpZCwgJHRoaXMtPkdldE5hbWUoKSwgJ1NNUyByZXNlbmQgdmVyaWZpY2F0aW9uIGZhaWxlZDogJyAuICRlcnJvcl9tZXNzYWdlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKLy8gSGFuZGxlIGNoYW5nZSBwaG9uZQppZiAoaXNzZXQoJHBhcmFtc1snY2hhbmdlX3Bob25lJ10pKSB7CiAgICBUd29GYWN0b3JVc2VyTWV0YTo6ZGVsZXRlKCR1aWQsICdzbXNfcGhvbmVfcGVuZGluZycpOwp9CgovLyBIYW5kbGUgdmVyaWZ5IGNvZGUKaWYgKGlzc2V0KCRwYXJhbXNbJ3ZlcmlmeV9jb2RlJ10pKSB7CiAgICAkY29kZSA9IHRyaW0oJHBhcmFtc1snY29kZSddID8/ICcnKTsKICAgICRwZW5kaW5nID0gVHdvRmFjdG9yVXNlck1ldGE6OmdldCgkdWlkLCAnc21zX3Bob25lX3BlbmRpbmcnKTsKICAgIAogICAgaWYgKCRjb2RlICYmICRwZW5kaW5nKSB7CiAgICAgICAgJGFwaV9rZXlfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfa2V5X3NpZCcpOwogICAgICAgICRhcGlfc2VjcmV0ID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfc2VjcmV0Jyk7CiAgICAgICAgJHNlcnZpY2Vfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19zZXJ2aWNlX3NpZCcpOwogICAgICAgIAogICAgICAgICR1cmwgPSAiaHR0cHM6Ly92ZXJpZnkudHdpbGlvLmNvbS92Mi9TZXJ2aWNlcy97JHNlcnZpY2Vfc2lkfS9WZXJpZmljYXRpb25DaGVjayI7CiAgICAgICAgCiAgICAgICAgJGRhdGEgPSBbCiAgICAgICAgICAgICdUbycgPT4gJHBlbmRpbmcsCiAgICAgICAgICAgICdDb2RlJyA9PiAkY29kZQogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCB0cnVlKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgaHR0cF9idWlsZF9xdWVyeSgkZGF0YSkpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7CiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJQV0QsICJ7JGFwaV9rZXlfc2lkfTp7JGFwaV9zZWNyZXR9Iik7CiAgICAgICAgCiAgICAgICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgICAgICRodHRwX2NvZGUgPSBjdXJsX2dldGluZm8oJGNoLCBDVVJMSU5GT19IVFRQX0NPREUpOwogICAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICAKICAgICAgICAkcmVzcG9uc2UgPSBqc29uX2RlY29kZSgkcmVzdWx0LCB0cnVlKTsKICAgICAgICAKICAgICAgICBpZiAoJGh0dHBfY29kZSA+PSAyMDAgJiYgJGh0dHBfY29kZSA8IDMwMCAmJiAkcmVzcG9uc2VbJ3N0YXR1cyddID09PSAnYXBwcm92ZWQnKSB7CiAgICAgICAgICAgIFR3b0ZhY3RvclVzZXJNZXRhOjp1cGRhdGUoJHVpZCwgJ3Ntc19waG9uZScsICRwZW5kaW5nKTsKICAgICAgICAgICAgVHdvRmFjdG9yVXNlck1ldGE6OmRlbGV0ZSgkdWlkLCAnc21zX3Bob25lX3BlbmRpbmcnKTsKICAgICAgICAgICAgVHdvRmFjdG9yQ29yZTo6ZW5hYmxlX3Byb3ZpZGVyX2Zvcl91c2VyKCR1aWQsICdUd29GYWN0b3JQcm92aWRlclNNUycpOwogICAgICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnc21zX2VuYWJsZWQnKSk7CiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR2ZXJpZnlfcmVzdWx0ID0gJHJlc3BvbnNlOwogICAgICAgICAgICAkdmVyaWZ5X3N1Y2Nlc3MgPSBmYWxzZTsKICAgICAgICAgICAgJGVycm9yX21lc3NhZ2UgPSBnZXRfZnJpZW5kbHlfdHdpbGlvX2Vycm9yKCRyZXNwb25zZSk7CiAgICAgICAgICAgIGF1ZGl0KCR1aWQsICR0aGlzLT5HZXROYW1lKCksICdTTVMgdmVyaWZpY2F0aW9uIGZhaWxlZDogJyAuICRlcnJvcl9tZXNzYWdlKTsKICAgICAgICB9CiAgICB9Cn0KCi8vIEhhbmRsZSBzZW5kIHZlcmlmaWNhdGlvbgppZiAoaXNzZXQoJHBhcmFtc1snc2VuZF92ZXJpZmljYXRpb24nXSkpIHsKICAgICRwaG9uZSA9IHRyaW0oJHBhcmFtc1sncGhvbmUnXSA/PyAnJyk7CiAgICBpZiAoJHBob25lKSB7CiAgICAgICAgJGFwaV9rZXlfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfa2V5X3NpZCcpOwogICAgICAgICRhcGlfc2VjcmV0ID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfc2VjcmV0Jyk7CiAgICAgICAgJHNlcnZpY2Vfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19zZXJ2aWNlX3NpZCcpOwogICAgICAgIAogICAgICAgIGlmICgkYXBpX2tleV9zaWQgJiYgJGFwaV9zZWNyZXQgJiYgJHNlcnZpY2Vfc2lkKSB7CiAgICAgICAgICAgICR1cmwgPSAiaHR0cHM6Ly92ZXJpZnkudHdpbGlvLmNvbS92Mi9TZXJ2aWNlcy97JHNlcnZpY2Vfc2lkfS9WZXJpZmljYXRpb25zIjsKICAgICAgICAgICAgCiAgICAgICAgICAgICRkYXRhID0gWwogICAgICAgICAgICAgICAgJ1RvJyA9PiAkcGhvbmUsCiAgICAgICAgICAgICAgICAnQ2hhbm5lbCcgPT4gJ3NtcycKICAgICAgICAgICAgXTsKICAgICAgICAgICAgCiAgICAgICAgICAgICRjaCA9IGN1cmxfaW5pdCgkdXJsKTsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIHRydWUpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgaHR0cF9idWlsZF9xdWVyeSgkZGF0YSkpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUlBXRCwgInskYXBpX2tleV9zaWR9OnskYXBpX3NlY3JldH0iKTsKICAgICAgICAgICAgCiAgICAgICAgICAgICRyZXN1bHQgPSBjdXJsX2V4ZWMoJGNoKTsKICAgICAgICAgICAgJGh0dHBfY29kZSA9IGN1cmxfZ2V0aW5mbygkY2gsIENVUkxJTkZPX0hUVFBfQ09ERSk7CiAgICAgICAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgICRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXN1bHQsIHRydWUpOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKCRodHRwX2NvZGUgPj0gMjAwICYmICRodHRwX2NvZGUgPCAzMDApIHsKICAgICAgICAgICAgICAgIFR3b0ZhY3RvclVzZXJNZXRhOjp1cGRhdGUoJHVpZCwgJ3Ntc19waG9uZV9wZW5kaW5nJywgJHBob25lKTsKICAgICAgICAgICAgICAgICR2ZXJpZnlfcmVzdWx0ID0gJHJlc3BvbnNlOwogICAgICAgICAgICAgICAgJHZlcmlmeV9zdWNjZXNzID0gdHJ1ZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR2ZXJpZnlfcmVzdWx0ID0gJHJlc3BvbnNlOwogICAgICAgICAgICAgICAgJHZlcmlmeV9zdWNjZXNzID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkZXJyb3JfbWVzc2FnZSA9IGdldF9mcmllbmRseV90d2lsaW9fZXJyb3IoJHJlc3BvbnNlKTsKICAgICAgICAgICAgICAgIGF1ZGl0KCR1aWQsICR0aGlzLT5HZXROYW1lKCksICdTTVMgc2VuZCB2ZXJpZmljYXRpb24gZmFpbGVkOiAnIC4gJGVycm9yX21lc3NhZ2UpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgovLyBIYW5kbGUgc2F2ZSBzZXR0aW5ncwppZiAoaXNzZXQoJHBhcmFtc1snc2F2ZV9zZXR0aW5ncyddKSkgewogICAgc2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfa2V5X3NpZCcsIHRyaW0oJHBhcmFtc1sndHdpbGlvX2FwaV9rZXlfc2lkJ10gPz8gJycpKTsKICAgIHNldF9zaXRlX3ByZWZlcmVuY2UoJ3R3b2ZhY3Rvcl90d2lsaW9fYXBpX3NlY3JldCcsIHRyaW0oJHBhcmFtc1sndHdpbGlvX2FwaV9zZWNyZXQnXSA/PyAnJykpOwogICAgc2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19zZXJ2aWNlX3NpZCcsIHRyaW0oJHBhcmFtc1sndHdpbGlvX3NlcnZpY2Vfc2lkJ10gPz8gJycpKTsKICAgIAogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ3R3aWxpb19zZXR0aW5nc19zYXZlZCcpKTsKfQoKLy8gSGFuZGxlIGRpc2FibGUKaWYgKGlzc2V0KCRwYXJhbXNbJ2Rpc2FibGUnXSkpIHsKICAgIFR3b0ZhY3RvckNvcmU6OmRpc2FibGVfcHJvdmlkZXJfZm9yX3VzZXIoJHVpZCwgJ1R3b0ZhY3RvclByb3ZpZGVyU01TJyk7CiAgICBUd29GYWN0b3JVc2VyTWV0YTo6ZGVsZXRlKCR1aWQsICdzbXNfcGhvbmUnKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdzbXNfZGlzYWJsZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICByZXR1cm47Cn0KCiRwaG9uZSA9IFR3b0ZhY3RvclVzZXJNZXRhOjpnZXQoJHVpZCwgJ3Ntc19waG9uZScpOwokaXNfZW5hYmxlZCA9ICFlbXB0eSgkcGhvbmUpOwokcGVuZGluZ19waG9uZSA9IFR3b0ZhY3RvclVzZXJNZXRhOjpnZXQoJHVpZCwgJ3Ntc19waG9uZV9wZW5kaW5nJyk7CgokdHdpbGlvX2FwaV9rZXlfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfa2V5X3NpZCcsICcnKTsKJHR3aWxpb19hcGlfc2VjcmV0ID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfc2VjcmV0JywgJycpOwokdHdpbGlvX3NlcnZpY2Vfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19zZXJ2aWNlX3NpZCcsICcnKTsKCiR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkdGhpcy0+R2V0VGVtcGxhdGVSZXNvdXJjZSgnc2V0dXBfc21zLnRwbCcpLCBudWxsLCBudWxsLCAkc21hcnR5KTsKJHRwbC0+YXNzaWduKCdwaG9uZScsICRwaG9uZSk7CiR0cGwtPmFzc2lnbignaXNfZW5hYmxlZCcsICRpc19lbmFibGVkKTsKJHRwbC0+YXNzaWduKCdwZW5kaW5nX3Bob25lJywgJHBlbmRpbmdfcGhvbmUpOwokdHBsLT5hc3NpZ24oJ3R3aWxpb19hcGlfa2V5X3NpZCcsICR0d2lsaW9fYXBpX2tleV9zaWQpOwokdHBsLT5hc3NpZ24oJ3R3aWxpb19hcGlfc2VjcmV0JywgJHR3aWxpb19hcGlfc2VjcmV0KTsKJHRwbC0+YXNzaWduKCd0d2lsaW9fc2VydmljZV9zaWQnLCAkdHdpbGlvX3NlcnZpY2Vfc2lkKTsKJHRwbC0+YXNzaWduKCd2ZXJpZnlfcmVzdWx0JywgJHZlcmlmeV9yZXN1bHQpOwokdHBsLT5hc3NpZ24oJ3ZlcmlmeV9zdWNjZXNzJywgJHZlcmlmeV9zdWNjZXNzKTsKJHRwbC0+YXNzaWduKCdlcnJvcl9tZXNzYWdlJywgJGVycm9yX21lc3NhZ2UpOwokdHBsLT5kaXNwbGF5KCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.setup_totp.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKFR3b0ZhY3Rvcjo6TUFOQUdFX1BFUk0pKSByZXR1cm47CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICByZXR1cm47Cn0KCiR1aWQgPSBnZXRfdXNlcmlkKCk7CiRwcm92aWRlciA9IFR3b0ZhY3RvclByb3ZpZGVyVE9UUDo6Z2V0X2luc3RhbmNlKCk7CgovLyBIYW5kbGUgdmVyaWZpY2F0aW9uCmlmIChpc3NldCgkcGFyYW1zWyd2ZXJpZnknXSkpIHsKICAgICRrZXkgPSAkcGFyYW1zWyd0b3RwX2tleSddID8/ICcnOwogICAgJGNvZGUgPSBwcmVnX3JlcGxhY2UoJy9ccysvJywgJycsICRwYXJhbXNbJ2F1dGhjb2RlJ10gPz8gJycpOwogICAgCiAgICAkdGZhID0gbmV3IFxSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGgoKTsKICAgIGlmICgkdGZhLT52ZXJpZnlDb2RlKCRrZXksICRjb2RlLCAyKSkgewogICAgICAgICRwcm92aWRlci0+c2V0X3VzZXJfdG90cF9rZXkoJHVpZCwgJGtleSk7CiAgICAgICAgVHdvRmFjdG9yQ29yZTo6ZW5hYmxlX3Byb3ZpZGVyX2Zvcl91c2VyKCR1aWQsICdUd29GYWN0b3JQcm92aWRlclRPVFAnKTsKICAgICAgICAKICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygndG90cF9lbmFibGVkJykpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgICAgICByZXR1cm47CiAgICB9IGVsc2UgewogICAgICAgICRlcnJvciA9ICR0aGlzLT5MYW5nKCdpbnZhbGlkX2NvZGUnKTsKICAgIH0KfQoKLy8gSGFuZGxlIHJlc2V0CmlmIChpc3NldCgkcGFyYW1zWydyZXNldCddKSkgewogICAgJHByb3ZpZGVyLT5kZWxldGVfdXNlcl90b3RwX2tleSgkdWlkKTsKICAgIFR3b0ZhY3RvckNvcmU6OmRpc2FibGVfcHJvdmlkZXJfZm9yX3VzZXIoJHVpZCwgJ1R3b0ZhY3RvclByb3ZpZGVyVE9UUCcpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ3RvdHBfcmVzZXQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICByZXR1cm47Cn0KCiRrZXkgPSAkcHJvdmlkZXItPmdldF91c2VyX3RvdHBfa2V5KCR1aWQpOwokaXNfY29uZmlndXJlZCA9ICFlbXB0eSgka2V5KTsKCmlmICghJGlzX2NvbmZpZ3VyZWQpIHsKICAgICRrZXkgPSAkcHJvdmlkZXItPmdlbmVyYXRlX2tleSgpOwp9CgokcXJfY29kZSA9ICRwcm92aWRlci0+Z2V0X3FyX2NvZGVfdXJsKCR0aGlzLT5HZXRVc2VyTmFtZSgpLCAka2V5KTsKCiR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkdGhpcy0+R2V0VGVtcGxhdGVSZXNvdXJjZSgnc2V0dXBfdG90cC50cGwnKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSk7CiR0cGwtPmFzc2lnbignc2VjcmV0JywgJGtleSk7CiR0cGwtPmFzc2lnbigncXJfY29kZScsICRxcl9jb2RlKTsKJHRwbC0+YXNzaWduKCdpc19jb25maWd1cmVkJywgJGlzX2NvbmZpZ3VyZWQpOwokdHBsLT5hc3NpZ24oJ2Vycm9yJywgJGVycm9yID8/ICcnKTsKJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.verify_login.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCi8vIEZpcnN0LCBsb2dvdXQgdGhlIHVzZXIgaW1tZWRpYXRlbHkKJGxvZ2luX29wcyA9IFxDTVNNU1xMb2dpbk9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwokbG9naW5fb3BzLT5kZWF1dGhlbnRpY2F0ZSgpOwoKLy8gQ2hlY2sgaWYgd2UgaGF2ZSBzdG9yZWQgMkZBIGRhdGEKaWYgKCFpc3NldCgkX1NFU1NJT05bJ3R3b2ZhY3Rvcl91c2VyX2lkJ10pKSB7CiAgICBlcnJvcl9sb2coJ1R3b0ZhY3RvciB2ZXJpZnlfbG9naW46IE5vIDJGQSBzZXNzaW9uJyk7CiAgICAkY29uZmlnID0gY21zX3V0aWxzOjpnZXRfY29uZmlnKCk7CiAgICByZWRpcmVjdCgkY29uZmlnWydhZG1pbl91cmwnXSAuICcvbG9naW4ucGhwJyk7CiAgICBleGl0Owp9CgokdWlkID0gJF9TRVNTSU9OWyd0d29mYWN0b3JfdXNlcl9pZCddOwokcHJvdmlkZXIgPSBUd29GYWN0b3JDb3JlOjpnZXRfcHJpbWFyeV9wcm92aWRlcl9mb3JfdXNlcigkdWlkKTsKCmlmICghJHByb3ZpZGVyKSB7CiAgICBlcnJvcl9sb2coJ1R3b0ZhY3RvciB2ZXJpZnlfbG9naW46IE5vIHByb3ZpZGVyJyk7CiAgICB1bnNldCgkX1NFU1NJT05bJ3R3b2ZhY3Rvcl91c2VyX2lkJ10pOwogICAgJGNvbmZpZyA9IGNtc191dGlsczo6Z2V0X2NvbmZpZygpOwogICAgcmVkaXJlY3QoJGNvbmZpZ1snYWRtaW5fdXJsJ10gLiAnL2xvZ2luLnBocCcpOwogICAgZXhpdDsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogICAgZXJyb3JfbG9nKCdUd29GYWN0b3IgdmVyaWZ5X2xvZ2luOiBGb3JtIHN1Ym1pdHRlZCwgdmFsaWRhdGluZy4uLicpOwogICAgJHJlc3VsdCA9ICRwcm92aWRlci0+dmFsaWRhdGVfYXV0aGVudGljYXRpb24oJHVpZCk7CiAgICBlcnJvcl9sb2coJ1R3b0ZhY3RvciB2ZXJpZnlfbG9naW46IFZhbGlkYXRpb24gcmVzdWx0ID0gJyAuICgkcmVzdWx0ID8gJ1RSVUUnIDogJ0ZBTFNFJykpOwogICAgCiAgICBpZiAoJHJlc3VsdCkgewogICAgICAgIC8vIFZhbGlkIGNvZGUgLSBsb2cgdXNlciBiYWNrIGluCiAgICAgICAgJHVzZXIgPSBVc2VyT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPkxvYWRVc2VyQnlJRCgkdWlkKTsKICAgICAgICBpZiAoJHVzZXIpIHsKICAgICAgICAgICAgJHJlbWVtYmVybWUgPSAkX1NFU1NJT05bJ3R3b2ZhY3Rvcl9yZW1lbWJlcm1lJ10gPz8gMDsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIExvZyB1c2VyIGluCiAgICAgICAgICAgICRrZXkgPSAkbG9naW5fb3BzLT5zYXZlX2F1dGhlbnRpY2F0aW9uKCR1c2VyKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICgkcmVtZW1iZXJtZSkgewogICAgICAgICAgICAgICAgc2V0Y29va2llKENNU19VU0VSX0tFWSwgJGtleSwgdGltZSgpICsgMjU5MjAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENsZWFuIHVwIDJGQSBzZXNzaW9uCiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsndHdvZmFjdG9yX3VzZXJfaWQnXSk7CiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsndHdvZmFjdG9yX3JlbWVtYmVybWUnXSk7CiAgICAgICAgICAgIAogICAgICAgICAgICBhdWRpdCgkdWlkLCAnQWRtaW4gVXNlcm5hbWU6ICcgLiAkdXNlci0+dXNlcm5hbWUsICdMb2dnZWQgSW4gKDJGQSknKTsKICAgICAgICAgICAgCiAgICAgICAgICAgICRjb25maWcgPSBjbXNfdXRpbHM6OmdldF9jb25maWcoKTsKICAgICAgICAgICAgcmVkaXJlY3QoJGNvbmZpZ1snYWRtaW5fdXJsJ10gLiAnL2luZGV4LnBocCcpOwogICAgICAgICAgICBleGl0OwogICAgICAgIH0KICAgIH0KICAgICRlcnJvcl9tc2cgPSAkdGhpcy0+TGFuZygnaW52YWxpZF9jb2RlJyk7Cn0KCmNtc19hZG1pbl9zZW5kaGVhZGVycygpOwpoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6ICIgLiBcQ21zTmxzT3BlcmF0aW9uczo6Z2V0X2N1cnJlbnRfbGFuZ3VhZ2UoKSk7CgokdGhlbWVPYmplY3QgPSBcY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CiR2YXJzID0gYXJyYXkoJ2Vycm9yJz0+JGVycm9yKTsKaWYoIGlzc2V0KCR3YXJuaW5nTG9naW4pICkgJHZhcnNbJ3dhcm5pbmdMb2dpbiddID0gJHdhcm5pbmdMb2dpbjsKaWYoIGlzc2V0KCRhY2NlcHRMb2dpbikgKSAkdmFyc1snYWNjZXB0TG9naW4nXSA9ICRhY2NlcHRMb2dpbjsKaWYoIGlzc2V0KCRjaGFuZ2Vwd2hhc2gpICkgJHZhcnNbJ2NoYW5nZXB3aGFzaCddID0gJGNoYW5nZXB3aGFzaDsKCiRjb25maWcgPSBjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKJHNtYXJ0eSA9IFNtYXJ0eV9DTVM6OmdldF9pbnN0YW5jZSgpOwoKJHNtYXJ0eS0+dGVtcGxhdGVfZGlyID0gX19ESVJfXyAuICcvdGVtcGxhdGVzJzsKZ2xvYmFsICRlcnJvciwkd2FybmluZ0xvZ2luLCRhY2NlcHRMb2dpbiwkY2hhbmdlcHdoYXNoOwoKJHNtYXJ0eS0+YXNzaWduKCdsYW5nJywgZ2V0X3NpdGVfcHJlZmVyZW5jZSgnZnJvbnRlbmRsYW5nJykpOwokX2NvbnRlbnRzID0gJHNtYXJ0eS0+ZGlzcGxheSgndmVyaWZ5X3RvdHAudHBsJyk7CnJldHVybiAkX2NvbnRlbnRzOwo=]]></data>
	</file>
	<file>
	  <filename>/admin_files/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/admin_files/orig.twofactor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgbW9kdWxlcy9Ud29GYWN0b3IvZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCm5hbWVzcGFjZSBDTVNNUzsKCiRDTVNfQURNSU5fUEFHRT0xOwokQ01TX0xPR0lOX1BBR0U9MTsKCnJlcXVpcmVfb25jZSgiLi4vbGliL2luY2x1ZGUucGhwIik7CiRnQ21zID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCk7CgokbG9naW5fb3BzID0gXENNU01TXExvZ2luT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCk7CiRsb2dpbl9vcHMtPmRlYXV0aGVudGljYXRlKCk7CgovLyBDaGVjayBpZiB3ZSBoYXZlIHN0b3JlZCAyRkEgZGF0YQppZiAoIWlzc2V0KCRfU0VTU0lPTlsndHdvZmFjdG9yX3VzZXJfaWQnXSkpIHsKICAgICRjb25maWcgPSBcY21zX3V0aWxzOjpnZXRfY29uZmlnKCk7CiAgICByZWRpcmVjdCgkY29uZmlnWydhZG1pbl91cmwnXSAuICcvbG9naW4ucGhwJyk7CiAgICBleGl0Owp9CgokdWlkID0gJF9TRVNTSU9OWyd0d29mYWN0b3JfdXNlcl9pZCddOwokbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnVHdvRmFjdG9yJyk7CgovLyBIYW5kbGUgcHJvdmlkZXIgc3dpdGNoCmlmIChpc3NldCgkX0dFVFsncHJvdmlkZXInXSkpIHsKICAgIGlmICgkX0dFVFsncHJvdmlkZXInXSkgewogICAgICAgICRfU0VTU0lPTlsndHdvZmFjdG9yX292ZXJyaWRlX3Byb3ZpZGVyJ10gPSAkX0dFVFsncHJvdmlkZXInXTsKICAgIH0gZWxzZSB7CiAgICAgICAgdW5zZXQoJF9TRVNTSU9OWyd0d29mYWN0b3Jfb3ZlcnJpZGVfcHJvdmlkZXInXSk7CiAgICB9CiAgICB1bnNldCgkX1NFU1NJT05bJ3R3b2ZhY3Rvcl9lbWFpbF9zZW50J10pOwogICAgdW5zZXQoJF9TRVNTSU9OWyd0d29mYWN0b3Jfc21zX3NlbnQnXSk7Cn0KCi8vIEdldCBwcm92aWRlciAoY2hlY2sgZm9yIG92ZXJyaWRlIGZpcnN0KQppZiAoaXNzZXQoJF9TRVNTSU9OWyd0d29mYWN0b3Jfb3ZlcnJpZGVfcHJvdmlkZXInXSkpIHsKICAgICRwcm92aWRlcl9rZXkgPSAkX1NFU1NJT05bJ3R3b2ZhY3Rvcl9vdmVycmlkZV9wcm92aWRlciddOwogICAgJGF2YWlsYWJsZSA9IFxUd29GYWN0b3JDb3JlOjpnZXRfYXZhaWxhYmxlX3Byb3ZpZGVyc19mb3JfdXNlcigkdWlkKTsKICAgICRwcm92aWRlciA9ICRhdmFpbGFibGVbJHByb3ZpZGVyX2tleV0gPz8gbnVsbDsKfSBlbHNlIHsKICAgICRwcm92aWRlciA9IFxUd29GYWN0b3JDb3JlOjpnZXRfcHJpbWFyeV9wcm92aWRlcl9mb3JfdXNlcigkdWlkKTsKfQoKaWYgKCEkcHJvdmlkZXIpIHsKICAgIHVuc2V0KCRfU0VTU0lPTlsndHdvZmFjdG9yX3VzZXJfaWQnXSk7CiAgICAkY29uZmlnID0gXGNtc191dGlsczo6Z2V0X2NvbmZpZygpOwogICAgcmVkaXJlY3QoJGNvbmZpZ1snYWRtaW5fdXJsJ10gLiAnL2xvZ2luLnBocCcpOwogICAgZXhpdDsKfQoKJGVycm9yID0gJyc7CgppZiAoaXNzZXQoJF9QT1NUWydzdWJtaXQnXSkpIHsKICAgICRyZXN1bHQgPSAkcHJvdmlkZXItPnZhbGlkYXRlX2F1dGhlbnRpY2F0aW9uKCR1aWQpOwogICAgCiAgICBpZiAoJHJlc3VsdCkgewogICAgICAgICR1c2VyID0gXFVzZXJPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+TG9hZFVzZXJCeUlEKCR1aWQpOwogICAgICAgIGlmICgkdXNlcikgewogICAgICAgICAgICAkcmVtZW1iZXJtZSA9ICRfU0VTU0lPTlsndHdvZmFjdG9yX3JlbWVtYmVybWUnXSA/PyAwOwogICAgICAgICAgICAka2V5ID0gJGxvZ2luX29wcy0+c2F2ZV9hdXRoZW50aWNhdGlvbigkdXNlcik7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoJHJlbWVtYmVybWUpIHsKICAgICAgICAgICAgICAgIHNldGNvb2tpZShDTVNfVVNFUl9LRVksICRrZXksIHRpbWUoKSArIDI1OTIwMDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICB1bnNldCgkX1NFU1NJT05bJ3R3b2ZhY3Rvcl91c2VyX2lkJ10pOwogICAgICAgICAgICB1bnNldCgkX1NFU1NJT05bJ3R3b2ZhY3Rvcl9yZW1lbWJlcm1lJ10pOwogICAgICAgICAgICB1bnNldCgkX1NFU1NJT05bJ3R3b2ZhY3Rvcl9lbWFpbF9zZW50J10pOwogICAgICAgICAgICB1bnNldCgkX1NFU1NJT05bJ3R3b2ZhY3Rvcl9zbXNfc2VudCddKTsKICAgICAgICAgICAgdW5zZXQoJF9TRVNTSU9OWyd0d29mYWN0b3Jfb3ZlcnJpZGVfcHJvdmlkZXInXSk7CiAgICAgICAgICAgIAogICAgICAgICAgICBhdWRpdCgkdWlkLCAnQWRtaW4gVXNlcm5hbWU6ICcgLiAkdXNlci0+dXNlcm5hbWUsICdMb2dnZWQgSW4gKDJGQSknKTsKICAgICAgICAgICAgCiAgICAgICAgICAgICRjb25maWcgPSBcY21zX3V0aWxzOjpnZXRfY29uZmlnKCk7CiAgICAgICAgICAgIHJlZGlyZWN0KCRjb25maWdbJ2FkbWluX3VybCddIC4gJy9pbmRleC5waHAnKTsKICAgICAgICAgICAgZXhpdDsKICAgICAgICB9CiAgICB9CiAgICAkZXJyb3IgPSAkbW9kLT5MYW5nKCdpbnZhbGlkX2NvZGUnKTsKfQoKY21zX2FkbWluX3NlbmRoZWFkZXJzKCk7CmhlYWRlcigiQ29udGVudC1MYW5ndWFnZTogIiAuIFxDbXNObHNPcGVyYXRpb25zOjpnZXRfY3VycmVudF9sYW5ndWFnZSgpKTsKCiRjb25maWcgPSBcY21zX2NvbmZpZzo6Z2V0X2luc3RhbmNlKCk7CiRzbWFydHkgPSBcU21hcnR5X0NNUzo6Z2V0X2luc3RhbmNlKCk7CgokbW9kX3BhdGggPSAkbW9kLT5HZXRNb2R1bGVQYXRoKCk7CiRwcm92aWRlcl9jbGFzcyA9IGdldF9jbGFzcygkcHJvdmlkZXIpOwokdGVtcGxhdGUgPSAndmVyaWZ5X3RvdHAudHBsJzsgLy8gRGVmYXVsdAoKLy8gQ2hlY2sgaWYgYmFja3VwIGNvZGVzIGFyZSBhdmFpbGFibGUKJGJhY2t1cF9wcm92aWRlciA9IFxUd29GYWN0b3JQcm92aWRlckJhY2t1cENvZGVzOjpnZXRfaW5zdGFuY2UoKTsKJGhhc19iYWNrdXBfY29kZXMgPSAkYmFja3VwX3Byb3ZpZGVyLT5pc19hdmFpbGFibGVfZm9yX3VzZXIoJHVpZCk7CiR1c2luZ19iYWNrdXAgPSBzdHJwb3MoJHByb3ZpZGVyX2NsYXNzLCAnQmFja3VwQ29kZXMnKSAhPT0gZmFsc2U7CgovLyBTZWxlY3QgdGVtcGxhdGUgYmFzZWQgb24gcHJvdmlkZXIgdHlwZQppZiAoc3RycG9zKCRwcm92aWRlcl9jbGFzcywgJ1RPVFAnKSAhPT0gZmFsc2UpIHsKICAgICR0ZW1wbGF0ZSA9ICd2ZXJpZnlfdG90cC50cGwnOwp9IGVsc2VpZiAoc3RycG9zKCRwcm92aWRlcl9jbGFzcywgJ0VtYWlsJykgIT09IGZhbHNlKSB7CiAgICAkdGVtcGxhdGUgPSAndmVyaWZ5X2VtYWlsLnRwbCc7CiAgICAvLyBTZW5kIGVtYWlsIGNvZGUgaWYgbm90IGFscmVhZHkgc2VudAogICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ3R3b2ZhY3Rvcl9lbWFpbF9zZW50J10pKSB7CiAgICAgICAgJHByb3ZpZGVyLT5nZW5lcmF0ZV9hbmRfc2VuZF9jb2RlKCR1aWQpOwogICAgICAgICRfU0VTU0lPTlsndHdvZmFjdG9yX2VtYWlsX3NlbnQnXSA9IHRydWU7CiAgICB9Cn0gZWxzZWlmIChzdHJwb3MoJHByb3ZpZGVyX2NsYXNzLCAnU01TJykgIT09IGZhbHNlKSB7CiAgICAkdGVtcGxhdGUgPSAndmVyaWZ5X3Ntcy50cGwnOwogICAgLy8gU2VuZCBTTVMgY29kZSBpZiBub3QgYWxyZWFkeSBzZW50CiAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsndHdvZmFjdG9yX3Ntc19zZW50J10pKSB7CiAgICAgICAgJHByb3ZpZGVyLT5nZW5lcmF0ZV9hbmRfc2VuZF9jb2RlKCR1aWQpOwogICAgICAgICRfU0VTU0lPTlsndHdvZmFjdG9yX3Ntc19zZW50J10gPSB0cnVlOwogICAgfQp9IGVsc2VpZiAoc3RycG9zKCRwcm92aWRlcl9jbGFzcywgJ0JhY2t1cENvZGVzJykgIT09IGZhbHNlKSB7CiAgICAkdGVtcGxhdGUgPSAndmVyaWZ5X2JhY2t1cF9jb2Rlcy50cGwnOwp9Cgokc21hcnR5LT50ZW1wbGF0ZV9kaXIgPSAkbW9kX3BhdGggLiAnL3RlbXBsYXRlcyc7CiRzbWFydHktPmFzc2lnbignZW5jb2RpbmcnLCBnZXRfZW5jb2RpbmcoKSk7CiRzbWFydHktPmFzc2lnbignY29uZmlnJywgJGNvbmZpZyk7CiRzbWFydHktPmFzc2lnbignZXJyb3InLCAkZXJyb3IpOwokc21hcnR5LT5hc3NpZ24oJ2hhc19iYWNrdXBfY29kZXMnLCAkaGFzX2JhY2t1cF9jb2Rlcyk7CiRzbWFydHktPmFzc2lnbigndXNpbmdfYmFja3VwJywgJHVzaW5nX2JhY2t1cCk7CiRzbWFydHktPmRpc3BsYXkoJHRlbXBsYXRlKTsK]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPlZlcnNpb24gMS4wLjA8L2gzPgo8dWw+CiAgPGxpPkluaXRpYWwgc3RhYmxlIHJlbGVhc2U8L2xpPgogIDxsaT5UT1RQIChBdXRoZW50aWNhdG9yIEFwcCkgc3VwcG9ydCB3aXRoIFFSIGNvZGUgZ2VuZXJhdGlvbjwvbGk+CiAgPGxpPkVtYWlsIHZlcmlmaWNhdGlvbiB3aXRoIDYtZGlnaXQgY29kZXM8L2xpPgogIDxsaT5TTVMgdmVyaWZpY2F0aW9uIHZpYSBUd2lsaW8gVmVyaWZ5IEFQSTwvbGk+CiAgPGxpPkJhY2t1cCBjb2RlcyBmb3IgZW1lcmdlbmN5IGFjY2VzczwvbGk+CiAgPGxpPlBob25lIG51bWJlciB2ZXJpZmljYXRpb24gZmxvdyB3aXRoIHJlc2VuZCBhbmQgY2hhbmdlIG9wdGlvbnM8L2xpPgogIDxsaT5GcmllbmRseSBlcnJvciBtZXNzYWdlcyBmb3IgVHdpbGlvIEFQSSBlcnJvcnM8L2xpPgogIDxsaT5Mb2dpbiBpbnRlcmNlcHRpb24gdmlhIENvcmU6OkxvZ2luUG9zdCBldmVudDwvbGk+CiAgPGxpPlN0YW5kYWxvbmUgdmVyaWZpY2F0aW9uIHBhZ2UgKGFkbWluL3R3b2ZhY3Rvci5waHApPC9saT4KICA8bGk+VXNlciBtZXRhZGF0YSBzdG9yYWdlIHN5c3RlbTwvbGk+CiAgPGxpPlByb3ZpZGVyIHN3aXRjaGluZyBkdXJpbmcgdmVyaWZpY2F0aW9uPC9saT4KICA8bGk+UHJpbWFyeSBtZXRob2Qgc2VsZWN0aW9uPC9saT4KICA8bGk+QXVkaXQgbG9nZ2luZyBmb3IgYWxsIDJGQSBldmVudHM8L2xpPgo8L3VsPgo=]]></data>
	</file>
	<file>
	  <filename>/doc/help.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgxPlR3b0ZhY3RvciBNb2R1bGU8L2gxPgoKPHA+VHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiAoMkZBKSBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSBieSBQaXhlbCBTb2x1dGlvbnMuPC9wPgoKPGgyPkZlYXR1cmVzPC9oMj4KCjx1bD4KICA8bGk+PHN0cm9uZz5NdWx0aXBsZSBBdXRoZW50aWNhdGlvbiBNZXRob2RzPC9zdHJvbmc+OgogICAgPHVsPgogICAgICA8bGk+VE9UUCAoVGltZS1iYXNlZCBPbmUtVGltZSBQYXNzd29yZCkgLSBHb29nbGUgQXV0aGVudGljYXRvciwgQXV0aHksIGV0Yy48L2xpPgogICAgICA8bGk+RW1haWwgVmVyaWZpY2F0aW9uIC0gUmVjZWl2ZSBjb2RlcyB2aWEgZW1haWw8L2xpPgogICAgICA8bGk+U01TIFZlcmlmaWNhdGlvbiAtIFJlY2VpdmUgY29kZXMgdmlhIFR3aWxpbyBTTVM8L2xpPgogICAgICA8bGk+QmFja3VwIENvZGVzIC0gT25lLXRpbWUgZW1lcmdlbmN5IGFjY2VzcyBjb2RlczwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+RmxleGlibGUgQ29uZmlndXJhdGlvbjwvc3Ryb25nPjoKICAgIDx1bD4KICAgICAgPGxpPlVzZXJzIGNhbiBlbmFibGUvZGlzYWJsZSBtZXRob2RzIGluZGl2aWR1YWxseTwvbGk+CiAgICAgIDxsaT5DaG9vc2UgcHJpbWFyeSBhdXRoZW50aWNhdGlvbiBtZXRob2Q8L2xpPgogICAgICA8bGk+TXVsdGlwbGUgbWV0aG9kcyBjYW4gYmUgZW5hYmxlZCBhcyBmYWxsYmFjayBvcHRpb25zPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5TZWN1cml0eSBGZWF0dXJlczwvc3Ryb25nPjoKICAgIDx1bD4KICAgICAgPGxpPkludGVyY2VwdHMgbG9naW4gYWZ0ZXIgdXNlcm5hbWUvcGFzc3dvcmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgIDxsaT5TZXNzaW9uLWJhc2VkIHZlcmlmaWNhdGlvbiBmbG93PC9saT4KICAgICAgPGxpPkF1ZGl0IGxvZ2dpbmcgZm9yIGFsbCAyRkEgZXZlbnRzPC9saT4KICAgICAgPGxpPlNlY3VyZSBjb2RlIGdlbmVyYXRpb24gYW5kIHZhbGlkYXRpb248L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGgyPkluc3RhbGxhdGlvbjwvaDI+Cgo8b2w+CiAgPGxpPlVwbG9hZCB0aGUgbW9kdWxlIGZpbGVzIHRvIDxjb2RlPm1vZHVsZXMvVHdvRmFjdG9yLzwvY29kZT48L2xpPgogIDxsaT5JbnN0YWxsIHRoZSBtb2R1bGUgZnJvbSBFeHRlbnNpb25zICZndDsgTW9kdWxlczwvbGk+CiAgPGxpPlRoZSBtb2R1bGUgd2lsbCBhdXRvbWF0aWNhbGx5OgogICAgPHVsPgogICAgICA8bGk+Q3JlYXRlIHRoZSBkYXRhYmFzZSB0YWJsZSA8Y29kZT5tb2RfdHdvZmFjdG9yX3VzZXJtZXRhPC9jb2RlPjwvbGk+CiAgICAgIDxsaT5Db3B5IDxjb2RlPmFkbWluL3R3b2ZhY3Rvci5waHA8L2NvZGU+IHZlcmlmaWNhdGlvbiBwYWdlPC9saT4KICAgICAgPGxpPlJlZ2lzdGVyIHRoZSBDb3JlOjpMb2dpblBvc3QgZXZlbnQgaGFuZGxlcjwvbGk+CiAgICA8L3VsPgogIDwvbGk+Cjwvb2w+Cgo8aDI+Q29uZmlndXJhdGlvbjwvaDI+Cgo8aDM+VE9UUCAoQXV0aGVudGljYXRvciBBcHApPC9oMz4KPG9sPgogIDxsaT5OYXZpZ2F0ZSB0byBFeHRlbnNpb25zICZndDsgVHdvRmFjdG9yPC9saT4KICA8bGk+Q2xpY2sgIkNvbmZpZ3VyZSIgZm9yIEF1dGhlbnRpY2F0b3IgQXBwPC9saT4KICA8bGk+U2NhbiB0aGUgUVIgY29kZSB3aXRoIHlvdXIgYXV0aGVudGljYXRvciBhcHA8L2xpPgogIDxsaT5FbnRlciB0aGUgNi1kaWdpdCBjb2RlIHRvIHZlcmlmeTwvbGk+Cjwvb2w+Cgo8aDM+RW1haWwgVmVyaWZpY2F0aW9uPC9oMz4KPG9sPgogIDxsaT5DbGljayAiQ29uZmlndXJlIiBmb3IgRW1haWwgVmVyaWZpY2F0aW9uPC9saT4KICA8bGk+Q2xpY2sgIkVuYWJsZSBFbWFpbCBWZXJpZmljYXRpb24iPC9saT4KICA8bGk+Q29kZXMgd2lsbCBiZSBzZW50IHRvIHlvdXIgYWRtaW4gYWNjb3VudCBlbWFpbDwvbGk+Cjwvb2w+Cgo8aDM+U01TIFZlcmlmaWNhdGlvbiAoVHdpbGlvKTwvaDM+CjxvbD4KICA8bGk+Q3JlYXRlIGEgVHdpbGlvIGFjY291bnQgYW5kIFZlcmlmeSBTZXJ2aWNlPC9saT4KICA8bGk+R2VuZXJhdGUgQVBJIEtleSBhbmQgU2VjcmV0IGluIFR3aWxpbyBDb25zb2xlPC9saT4KICA8bGk+RW50ZXIgY3JlZGVudGlhbHMgaW4gU01TIHNldHRpbmdzOgogICAgPHVsPgogICAgICA8bGk+QVBJIEtleSBTSUQ8L2xpPgogICAgICA8bGk+QVBJIFNlY3JldDwvbGk+CiAgICAgIDxsaT5WZXJpZnkgU2VydmljZSBTSUQ8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5FbnRlciBwaG9uZSBudW1iZXIgaW4gRS4xNjQgZm9ybWF0IChlLmcuLCArMTIzNDU2Nzg5MCk8L2xpPgogIDxsaT5WZXJpZnkgdGhlIGNvZGUgc2VudCB0byB5b3VyIHBob25lPC9saT4KPC9vbD4KCjxoMz5CYWNrdXAgQ29kZXM8L2gzPgo8b2w+CiAgPGxpPkNsaWNrICJDb25maWd1cmUiIGZvciBCYWNrdXAgQ29kZXM8L2xpPgogIDxsaT5DbGljayAiR2VuZXJhdGUgQmFja3VwIENvZGVzIjwvbGk+CiAgPGxpPlNhdmUgdGhlIGNvZGVzIGluIGEgc2VjdXJlIGxvY2F0aW9uPC9saT4KICA8bGk+RWFjaCBjb2RlIGNhbiBvbmx5IGJlIHVzZWQgb25jZTwvbGk+Cjwvb2w+Cgo8aDI+VXNhZ2U8L2gyPgoKPGgzPkxvZ2luIEZsb3c8L2gzPgo8b2w+CiAgPGxpPkVudGVyIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcyBub3JtYWw8L2xpPgogIDxsaT5BZnRlciBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uLCB5b3UnbGwgYmUgcmVkaXJlY3RlZCB0byAyRkEgdmVyaWZpY2F0aW9uPC9saT4KICA8bGk+RW50ZXIgdGhlIGNvZGUgZnJvbSB5b3VyIHByaW1hcnkgYXV0aGVudGljYXRpb24gbWV0aG9kPC9saT4KICA8bGk+Q2xpY2sgIlVzZSBhIGJhY2t1cCBjb2RlIiBpZiB5b3UgbmVlZCB0byB1c2UgYW4gYWx0ZXJuYXRpdmUgbWV0aG9kPC9saT4KPC9vbD4KCjxoMz5Td2l0Y2hpbmcgTWV0aG9kczwvaDM+CjxwPkR1cmluZyB2ZXJpZmljYXRpb24sIHlvdSBjYW4gc3dpdGNoIGJldHdlZW4gZW5hYmxlZCBtZXRob2RzIHVzaW5nIHRoZSBwcm92aWRlciBkcm9wZG93bi48L3A+Cgo8aDI+VW5pbnN0YWxsYXRpb248L2gyPgoKPHA+VGhlIG1vZHVsZSB3aWxsOjwvcD4KPHVsPgogIDxsaT5SZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlPC9saT4KICA8bGk+RGVsZXRlIHRoZSA8Y29kZT5hZG1pbi90d29mYWN0b3IucGhwPC9jb2RlPiBmaWxlPC9saT4KICA8bGk+UmVtb3ZlIGFsbCB1c2VyIDJGQSBzZXR0aW5nczwvbGk+CjwvdWw+Cgo8aDI+UmVxdWlyZW1lbnRzPC9oMj4KCjx1bD4KICA8bGk+Q01TIE1hZGUgU2ltcGxlIDIueDwvbGk+CiAgPGxpPlBIUCA3LjQgb3IgaGlnaGVyPC9saT4KICA8bGk+Rm9yIFRPVFA6IFJvYlRocmVlL1R3b0ZhY3RvckF1dGggbGlicmFyeSAoaW5jbHVkZWQgdmlhIENvbXBvc2VyKTwvbGk+CiAgPGxpPkZvciBTTVM6IFR3aWxpbyBhY2NvdW50IHdpdGggVmVyaWZ5IEFQSSBhY2Nlc3M8L2xpPgo8L3VsPgoKPGgyPlN1cHBvcnQ8L2gyPgoKPHA+Rm9yIGlzc3VlcyBvciBxdWVzdGlvbnMsIGNvbnRhY3Q6IDxhIGhyZWY9Im1haWx0bzptYWdhbEBwaXhlbHNvbHV0aW9ucy5iaXoiPm1hZ2FsQHBpeGVsc29sdXRpb25zLmJpejwvYT48L3A+Cg==]]></data>
	</file>
	<file>
	  <filename>/doc/LICENSE.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFR3b0ZhY3RvciAoYykgMjAyNSBieSBQaXhlbCBTb2x1dGlvbnMKIyAgKG1hZ2FsQHBpeGVsc29sdXRpb25zLmJpeikKIyAgQSB0d28tZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVNNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNiAtIDIwMjUgYnkgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24KIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1R3byBGYWN0b3InOwokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJ1NlY3VyZSBDTVMgTWFkZSBTaW1wbGUgbG9naW4gd2l0aCBUd28gRmFjdG9yIEF1dGhlbnRpY2F0aW9uICgyRkEpIC0gYnkgUGl4ZWwgU29sdXRpb25zJzsKJGxhbmdbJ3BhcmFtX3VzZXInXSA9ICdVc2VyIHBhcmFtZXRlciBmb3IgZnJvbnRlbmQgaW50ZWdyYXRpb24nOwokbGFuZ1snYXNrX3VuaW5zdGFsbCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhlIFR3byBGYWN0b3IgbW9kdWxlPyBBbGwgc2V0dGluZ3Mgd2lsbCBiZSBsb3N0Lic7CgokbGFuZ1sndHdvX2ZhY3Rvcl9zZXR0aW5ncyddID0gJ1R3by1GYWN0b3IgQXV0aGVudGljYXRpb24gU2V0dGluZ3MnOwokbGFuZ1sndHdvX2ZhY3Rvcl9hY3RpdmUnXSA9ICdUd28tZmFjdG9yIGF1dGhlbnRpY2F0aW9uIGlzIGFjdGl2ZSBvbiB5b3VyIGFjY291bnQuJzsKJGxhbmdbJ2VuYWJsZWRfbWV0aG9kcyddID0gJ0VuYWJsZWQgTWV0aG9kcyc7CiRsYW5nWydhdmFpbGFibGVfbWV0aG9kcyddID0gJ0F2YWlsYWJsZSBBdXRoZW50aWNhdGlvbiBNZXRob2RzJzsKJGxhbmdbJ25vX21ldGhvZHNfZW5hYmxlZCddID0gJ05vIHR3by1mYWN0b3IgbWV0aG9kcyBhcmUgZW5hYmxlZCB5ZXQuIENob29zZSBhIG1ldGhvZCBiZWxvdyB0byBnZXQgc3RhcnRlZC4nOwokbGFuZ1sncHJpbWFyeSddID0gJ1ByaW1hcnknOwokbGFuZ1sncHJpbWFyeV9tZXRob2QnXSA9ICdQcmltYXJ5IE1ldGhvZCc7CiRsYW5nWydwcmltYXJ5X21ldGhvZF9pbmZvJ10gPSAnU2VsZWN0IHRoZSBwcmltYXJ5IG1ldGhvZCB0byB1c2UgZm9yIHR3by1mYWN0b3IgYXV0aGVudGljYXRpb24gd2hlbiBzaWduaW5nIGludG8gdGhpcyBzaXRlJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWydwcmltYXJ5X3VwZGF0ZWQnXSA9ICdQcmltYXJ5IGF1dGhlbnRpY2F0aW9uIG1ldGhvZCB1cGRhdGVkLic7CiRsYW5nWydtZXRob2QnXSA9ICdNZXRob2QnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ2FjdGlvbiddID0gJ0FjdGlvbic7CiRsYW5nWydlbmFibGVkJ10gPSAnRW5hYmxlZCc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rpc2FibGVkJzsKJGxhbmdbJ2NvbmZpZ3VyZSddID0gJ0NvbmZpZ3VyZSc7CiRsYW5nWydwcm92aWRlcl90b3RwJ10gPSAnQXV0aGVudGljYXRvciBBcHAgKFRPVFApJzsKJGxhbmdbJ3RvdHBfZGVzY3JpcHRpb24nXSA9ICdVc2UgR29vZ2xlIEF1dGhlbnRpY2F0b3IsIEF1dGh5LCBvciBzaW1pbGFyIGFwcHMnOwokbGFuZ1snZW1haWxfZGVzY3JpcHRpb24nXSA9ICdSZWNlaXZlIHZlcmlmaWNhdGlvbiBjb2RlcyB2aWEgZW1haWwnOwokbGFuZ1snYmFja3VwX2NvZGVzX2Rlc2NyaXB0aW9uJ10gPSAnT25lLXRpbWUgYmFja3VwIGNvZGVzIGZvciBlbWVyZ2VuY3kgYWNjZXNzJzsKCiRsYW5nWydwcm92aWRlcl9zbXMnXSA9ICdTTVMgVmVyaWZpY2F0aW9uJzsKJGxhbmdbJ3Ntc19kZXNjcmlwdGlvbiddID0gJ1JlY2VpdmUgdmVyaWZpY2F0aW9uIGNvZGVzIHZpYSB0ZXh0IG1lc3NhZ2UnOwokbGFuZ1snc2V0dXBfc21zJ10gPSAnU2V0dXAgU01TIFZlcmlmaWNhdGlvbic7CiRsYW5nWyd0d2lsaW9fc2V0dGluZ3MnXSA9ICdUd2lsaW8gQVBJIFNldHRpbmdzJzsKJGxhbmdbJ3R3aWxpb19hcGlfa2V5X3NpZCddID0gJ1R3aWxpbyBBUEkgS2V5IFNJRCc7CiRsYW5nWyd0d2lsaW9fYXBpX3NlY3JldCddID0gJ1R3aWxpbyBBUEkgU2VjcmV0JzsKJGxhbmdbJ3R3aWxpb19zZXJ2aWNlX3NpZCddID0gJ1R3aWxpbyBWZXJpZnkgU2VydmljZSBTSUQnOwokbGFuZ1sndHdpbGlvX3NlcnZpY2Vfc2lkX2hlbHAnXSA9ICdDcmVhdGUgYSBWZXJpZnkgU2VydmljZSBpbiB5b3VyIFR3aWxpbyBDb25zb2xlIGFuZCBlbnRlciB0aGUgU2VydmljZSBTSUQgaGVyZSc7CiRsYW5nWydzYXZlX3NldHRpbmdzJ10gPSAnU2F2ZSBTZXR0aW5ncyc7CiRsYW5nWyd0d2lsaW9fc2V0dGluZ3Nfc2F2ZWQnXSA9ICdUd2lsaW8gc2V0dGluZ3MgaGF2ZSBiZWVuIHNhdmVkLic7CiRsYW5nWyd0ZXN0X2NvbmZpZ3VyYXRpb24nXSA9ICdUZXN0IENvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGVzdF9jb25maWd1cmF0aW9uX2luZm8nXSA9ICdVc2UgVHdpbGlvIE1hZ2ljIE51bWJlcnMgdG8gdGVzdCB3aXRoIHRlc3QgY3JlZGVudGlhbHMuIFRoZSB0ZXN0IHVzZXMgUHJvZ3JhbW1hYmxlIFNNUyBBUEkgKG5vdCBWZXJpZnkgQVBJKS4nOwokbGFuZ1sndGVzdF9waG9uZV9udW1iZXInXSA9ICdUZXN0IFBob25lIE51bWJlcic7CiRsYW5nWydtYWdpY19udW1iZXJfaGVscCddID0gJ1VzZSArMTUwMDU1NTAwMDYgKHN1Y2Nlc3MpIG9yICsxNTAwNTU1MDAwMSAoaW52YWxpZCBudW1iZXIpIHRvIHRlc3QnOwokbGFuZ1snc2VuZF90ZXN0X3NtcyddID0gJ1NlbmQgVGVzdCBTTVMnOwokbGFuZ1sndGVzdF9zbXNfc2VudCddID0gJ1Rlc3QgU01TIHNlbnQgc3VjY2Vzc2Z1bGx5ISBOb3RlOiBUaGlzIHVzZXMgUHJvZ3JhbW1hYmxlIFNNUyBBUEkgZm9yIHRlc3RpbmcuJzsKJGxhbmdbJ3Rlc3Rfc21zX2ZhaWxlZCddID0gJ1Rlc3QgU01TIGZhaWxlZDogJXMnOwokbGFuZ1sndHdpbGlvX25vdF9jb25maWd1cmVkJ10gPSAnUGxlYXNlIGNvbmZpZ3VyZSBUd2lsaW8gQWNjb3VudCBTSUQgYW5kIEF1dGggVG9rZW4gZmlyc3QuJzsKJGxhbmdbJ3Ntc191c2VyX3NldHRpbmdzJ10gPSAnWW91ciBTTVMgU2V0dGluZ3MnOwokbGFuZ1sncGhvbmVfbnVtYmVyJ10gPSAnUGhvbmUgTnVtYmVyJzsKJGxhbmdbJ3Bob25lX2Zvcm1hdF9oZWxwJ10gPSAnRW50ZXIgaW4gRS4xNjQgZm9ybWF0IChlLmcuLCArMTIzNDU2Nzg5MCknOwokbGFuZ1snc21zX3NldHVwX2luZm8nXSA9ICdFbnRlciB5b3VyIHBob25lIG51bWJlciB0byByZWNlaXZlIHZlcmlmaWNhdGlvbiBjb2RlcyB2aWEgU01TLic7CiRsYW5nWyd2ZXJpZmljYXRpb25fc2VudCddID0gJ1ZlcmlmaWNhdGlvbiBjb2RlIHNlbnQhIENoZWNrIHlvdXIgcGhvbmUuJzsKJGxhbmdbJ3ZlcmlmaWNhdGlvbl9mYWlsZWQnXSA9ICdGYWlsZWQgdG8gc2VuZCB2ZXJpZmljYXRpb246ICVzJzsKJGxhbmdbJ3ZlcmlmaWNhdGlvbl9jb2RlX3NlbnQnXSA9ICdBIHZlcmlmaWNhdGlvbiBjb2RlIGhhcyBiZWVuIHNlbnQgdG8gJXMnOwokbGFuZ1sndmVyaWZpY2F0aW9uX2NvZGUnXSA9ICdWZXJpZmljYXRpb24gQ29kZSc7CiRsYW5nWyd2ZXJpZnlfcGhvbmUnXSA9ICdWZXJpZnkgUGhvbmUgTnVtYmVyJzsKJGxhbmdbJ3Jlc2VuZF9jb2RlJ10gPSAnUmVzZW5kIENvZGUnOwokbGFuZ1snY2hhbmdlX3Bob25lJ10gPSAnQ2hhbmdlIFBob25lIE51bWJlcic7CiRsYW5nWydzZW5kX3ZlcmlmaWNhdGlvbl9jb2RlJ10gPSAnU2VuZCBWZXJpZmljYXRpb24gQ29kZSc7CiRsYW5nWydzbXNfZW5hYmxlZCddID0gJ1NNUyB2ZXJpZmljYXRpb24gaGFzIGJlZW4gZW5hYmxlZCEnOwokbGFuZ1snc21zX2Rpc2FibGVkJ10gPSAnU01TIHZlcmlmaWNhdGlvbiBoYXMgYmVlbiBkaXNhYmxlZC4nOwokbGFuZ1snc21zX2VuYWJsZWRfaW5mbyddID0gJ1NNUyB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCBmb3I6ICVzJzsKJGxhbmdbJ2VuYWJsZV9zbXMnXSA9ICdFbmFibGUgU01TIFZlcmlmaWNhdGlvbic7CiRsYW5nWydkaXNhYmxlX3NtcyddID0gJ0Rpc2FibGUgU01TIFZlcmlmaWNhdGlvbic7CiRsYW5nWydzbXNfYm9keSddID0gJ1lvdXIgdmVyaWZpY2F0aW9uIGNvZGUgaXM6ICVzJzsKCiRsYW5nWydzZXR1cF90b3RwJ10gPSAnU2V0dXAgQXV0aGVudGljYXRvciBBcHAgKFRPVFApJzsKJGxhbmdbJ3NjYW5fcXInXSA9ICdTY2FuIHRoaXMgUVIgY29kZSB3aXRoIHlvdXIgYXV0aGVudGljYXRvciBhcHAgKEdvb2dsZSBBdXRoZW50aWNhdG9yLCBBdXRoeSwgZXRjLiknOwokbGFuZ1snbWFudWFsX2VudHJ5J10gPSAnT3IgZW50ZXIgdGhpcyBrZXkgbWFudWFsbHknOwokbGFuZ1snZW50ZXJfY29kZV92ZXJpZnknXSA9ICdFbnRlciB0aGUgNi1kaWdpdCBjb2RlIGZyb20geW91ciBhcHAgdG8gdmVyaWZ5JzsKJGxhbmdbJ3ZlcmlmeSddID0gJ1ZlcmlmeSc7CiRsYW5nWyd0b3RwX2VuYWJsZWQnXSA9ICdBdXRoZW50aWNhdG9yIGFwcCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZW5hYmxlZCEnOwokbGFuZ1sndG90cF9jb25maWd1cmVkJ10gPSAnQXV0aGVudGljYXRvciBhcHAgaXMgY29uZmlndXJlZCBhbmQgYWN0aXZlLic7CiRsYW5nWyd0b3RwX3Jlc2V0X3dhcm5pbmcnXSA9ICdJZiB5b3UgcmVzZXQsIHlvdSB3aWxsIG5lZWQgdG8gcmUtc2NhbiB0aGUgUVIgY29kZSBvbiBhbGwgeW91ciBkZXZpY2VzLic7CiRsYW5nWydyZXNldF90b3RwJ10gPSAnUmVzZXQgQXV0aGVudGljYXRvciBBcHAnOwokbGFuZ1snY29uZmlybV9yZXNldCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXNldD8gWW91IHdpbGwgbmVlZCB0byByZWNvbmZpZ3VyZSBhbGwgZGV2aWNlcy4nOwokbGFuZ1sndG90cF9yZXNldCddID0gJ0F1dGhlbnRpY2F0b3IgYXBwIGhhcyBiZWVuIHJlc2V0Lic7CiRsYW5nWydiYWNrJ10gPSAnQmFjayc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwoKJGxhbmdbJ3R3b19mYWN0b3JfcmVxdWlyZWQnXSA9ICdUd28tRmFjdG9yIEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkJzsKJGxhbmdbJ2VudGVyX2NvZGVfZnJvbV9hcHAnXSA9ICdFbnRlciB0aGUgNi1kaWdpdCBjb2RlIGZyb20geW91ciBhdXRoZW50aWNhdG9yIGFwcCc7CiRsYW5nWydhdXRoZW50aWNhdGlvbl9jb2RlJ10gPSAnQXV0aGVudGljYXRpb24gQ29kZSc7CiRsYW5nWydpbnZhbGlkX2NvZGUnXSA9ICdJbnZhbGlkIGNvZGUuIFBsZWFzZSB0cnkgYWdhaW4uJzsKJGxhbmdbJ3ZlcmlmeSddID0gJ1ZlcmlmeSc7CgokbGFuZ1sncHJvdmlkZXJfZW1haWwnXSA9ICdFbWFpbCBWZXJpZmljYXRpb24nOwokbGFuZ1snZW1haWxfc3ViamVjdCddID0gJ1lvdXIgdmVyaWZpY2F0aW9uIGNvZGUnOwokbGFuZ1snZW1haWxfYm9keSddID0gJ1lvdXIgdmVyaWZpY2F0aW9uIGNvZGUgaXM6ICVzXG5cblRoaXMgY29kZSB3aWxsIGV4cGlyZSBpbiAxMCBtaW51dGVzLic7CiRsYW5nWydlbWFpbF9ub19hZGRyZXNzJ10gPSAnTm8gZW1haWwgYWRkcmVzcyBjb25maWd1cmVkIGZvciB5b3VyIGFjY291bnQuJzsKJGxhbmdbJ2VtYWlsX3NldHVwX2luZm8nXSA9ICdWZXJpZmljYXRpb24gY29kZXMgd2lsbCBiZSBzZW50IHRvOiAlcyc7CiRsYW5nWydzZXR1cF9lbWFpbCddID0gJ1NldHVwIEVtYWlsIFZlcmlmaWNhdGlvbic7CiRsYW5nWydlbWFpbF9lbmFibGVkJ10gPSAnRW1haWwgdmVyaWZpY2F0aW9uIGhhcyBiZWVuIGVuYWJsZWQhJzsKJGxhbmdbJ2VtYWlsX2Rpc2FibGVkJ10gPSAnRW1haWwgdmVyaWZpY2F0aW9uIGhhcyBiZWVuIGRpc2FibGVkLic7CiRsYW5nWydlbWFpbF9lbmFibGVkX3N0YXR1cyddID0gJ0VtYWlsIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkIGFuZCBhY3RpdmUuJzsKJGxhbmdbJ2VuYWJsZV9lbWFpbCddID0gJ0VuYWJsZSBFbWFpbCBWZXJpZmljYXRpb24nOwokbGFuZ1snZGlzYWJsZV9lbWFpbCddID0gJ0Rpc2FibGUgRW1haWwgVmVyaWZpY2F0aW9uJzsKCiRsYW5nWydwcm92aWRlcl9iYWNrdXBfY29kZXMnXSA9ICdCYWNrdXAgQ29kZXMnOwokbGFuZ1snc2V0dXBfYmFja3VwX2NvZGVzJ10gPSAnU2V0dXAgQmFja3VwIENvZGVzJzsKJGxhbmdbJ2JhY2t1cF9jb2Rlc193YXJuaW5nJ10gPSAnU2F2ZSB0aGVzZSBjb2RlcyBpbiBhIHNhZmUgcGxhY2UhJzsKJGxhbmdbJ2JhY2t1cF9jb2Rlc19pbmZvJ10gPSAnRWFjaCBjb2RlIGNhbiBvbmx5IGJlIHVzZWQgb25jZS4gVXNlIHRoZW0gaWYgeW91IGxvc2UgYWNjZXNzIHRvIHlvdXIgcHJpbWFyeSBhdXRoZW50aWNhdGlvbiBtZXRob2QuJzsKJGxhbmdbJ2JhY2t1cF9jb2Rlc19lbmFibGVkX2luZm8nXSA9ICdCYWNrdXAgY29kZXMgYXJlIGVuYWJsZWQuIFlvdSBjYW4gdXNlIHRoZW0gaWYgeW91IGxvc2UgYWNjZXNzIHRvIHlvdXIgb3RoZXIgYXV0aGVudGljYXRpb24gbWV0aG9kcy4nOwokbGFuZ1snY29kZXNfcmVtYWluaW5nJ10gPSAnQ29kZXMgcmVtYWluaW5nJzsKJGxhbmdbJ3JlZ2VuZXJhdGVfY29kZXMnXSA9ICdSZWdlbmVyYXRlIENvZGVzJzsKJGxhbmdbJ2NvbmZpcm1fcmVnZW5lcmF0ZSddID0gJ1RoaXMgd2lsbCBpbnZhbGlkYXRlIGFsbCBleGlzdGluZyBjb2Rlcy4gQ29udGludWU/JzsKJGxhbmdbJ2Rpc2FibGVfYmFja3VwX2NvZGVzJ10gPSAnRGlzYWJsZSBCYWNrdXAgQ29kZXMnOwokbGFuZ1snY29uZmlybV9kaXNhYmxlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRpc2FibGUgYmFja3VwIGNvZGVzPyc7CiRsYW5nWydiYWNrdXBfY29kZXNfZGlzYWJsZWQnXSA9ICdCYWNrdXAgY29kZXMgaGF2ZSBiZWVuIGRpc2FibGVkLic7CiRsYW5nWydiYWNrdXBfY29kZXNfc2V0dXBfaW5mbyddID0gJ0dlbmVyYXRlIGJhY2t1cCBjb2RlcyB0byB1c2UgYXMgYSBmYWxsYmFjayBhdXRoZW50aWNhdGlvbiBtZXRob2QuJzsKJGxhbmdbJ2dlbmVyYXRlX2NvZGVzJ10gPSAnR2VuZXJhdGUgQmFja3VwIENvZGVzJzs=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.ModuleTracker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogR29vZ2xlQ29uc2VudFBsYXRmb3JtCiMgQXV0aG9yczogTWFnYWwgSGV6aSwgd2l0aCBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbi4KIyBDb3B5cmlnaHQ6IChDKSAyMDI1IFBpeGVsIFNvbHV0aW9ucywgaW5mb0BwaXhlbHNvbHV0aW9ucy5iaXoKIyBMaWNlbnNlOiBNSVQgTGljZW5zZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIE1hZGUgU2ltcGxlKFRNKSBpcyAoYykgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24gMjAwNC0yMDIwIChpbmZvQGNtc21hZGVzaW1wbGUub3JnKQojIFByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQojIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCiMgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwojIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKIyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKIyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgojCiMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCiMgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KIwojIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiMgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiMgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiMgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgojIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiMgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIyBTT0ZUV0FSRS4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgR29vZ2xlIGlzIGEgdHJhZGVtYXJrIG9mIEdvb2dsZSBMTEMuIG9yIGl0cyBhZmZpbGlhdGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNsYXNzIE1vZHVsZVRyYWNrZXIgewogICAgcHJpdmF0ZSBzdGF0aWMgJGFwaV91cmwgPSAnaHR0cHM6Ly9hcGkucGl4ZWxzb2x1dGlvbnMuYml6L2Ntc21zL21vZHVsZS1jb3VudGVyJzsKICAgIAogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0cmFjaygkbW9kdWxlLCAkYWN0aW9uKSB7CiAgICAgICAgJGRhdGEgPSBqc29uX2VuY29kZShbJ21vZHVsZScgPT4gJG1vZHVsZSwgJ2FjdGlvbicgPT4gJGFjdGlvbl0pOwogICAgICAgIAogICAgICAgICRjb250ZXh0ID0gc3RyZWFtX2NvbnRleHRfY3JlYXRlKFsKICAgICAgICAgICAgJ2h0dHAnID0+IFsKICAgICAgICAgICAgICAgICdtZXRob2QnID0+ICdQT1NUJywKICAgICAgICAgICAgICAgICdoZWFkZXInID0+ICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nLAogICAgICAgICAgICAgICAgJ2NvbnRlbnQnID0+ICRkYXRhLAogICAgICAgICAgICAgICAgJ3RpbWVvdXQnID0+IDUKICAgICAgICAgICAgXQogICAgICAgIF0pOwogICAgICAgIAogICAgICAgIEBmaWxlX2dldF9jb250ZW50cyhzZWxmOjokYXBpX3VybCwgZmFsc2UsICRjb250ZXh0KTsKICAgIH0KfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.TwoFactorCore.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmNsYXNzIFR3b0ZhY3RvckNvcmUKewogICAgcHJpdmF0ZSBzdGF0aWMgJHByb3ZpZGVycyA9IFtdOwoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVnaXN0ZXJfcHJvdmlkZXJzKCkKICAgIHsKICAgICAgICBzZWxmOjokcHJvdmlkZXJzID0gWwogICAgICAgICAgICAnVHdvRmFjdG9yUHJvdmlkZXJUT1RQJyA9PiBkaXJuYW1lKF9fRklMRV9fKSAuICcvY2xhc3MuVHdvRmFjdG9yUHJvdmlkZXJUT1RQLnBocCcsCiAgICAgICAgICAgICdUd29GYWN0b3JQcm92aWRlckVtYWlsJyA9PiBkaXJuYW1lKF9fRklMRV9fKSAuICcvY2xhc3MuVHdvRmFjdG9yUHJvdmlkZXJFbWFpbC5waHAnLAogICAgICAgICAgICAnVHdvRmFjdG9yUHJvdmlkZXJTTVMnID0+IGRpcm5hbWUoX19GSUxFX18pIC4gJy9jbGFzcy5Ud29GYWN0b3JQcm92aWRlclNNUy5waHAnLAogICAgICAgICAgICAnVHdvRmFjdG9yUHJvdmlkZXJCYWNrdXBDb2RlcycgPT4gZGlybmFtZShfX0ZJTEVfXykgLiAnL2NsYXNzLlR3b0ZhY3RvclByb3ZpZGVyQmFja3VwQ29kZXMucGhwJywKICAgICAgICBdOwogICAgICAgIAogICAgICAgIGZvcmVhY2ggKHNlbGY6OiRwcm92aWRlcnMgYXMgJGNsYXNzID0+ICRwYXRoKSB7CiAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkcGF0aCkpIHsKICAgICAgICAgICAgICAgIHJlcXVpcmVfb25jZSAkcGF0aDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm92aWRlcnMoKQogICAgewogICAgICAgIGlmIChlbXB0eShzZWxmOjokcHJvdmlkZXJzKSkgewogICAgICAgICAgICBzZWxmOjpyZWdpc3Rlcl9wcm92aWRlcnMoKTsKICAgICAgICB9CgogICAgICAgICRpbnN0YW5jZXMgPSBbXTsKICAgICAgICBmb3JlYWNoIChzZWxmOjokcHJvdmlkZXJzIGFzICRjbGFzcyA9PiAkcGF0aCkgewogICAgICAgICAgICBpZiAoY2xhc3NfZXhpc3RzKCRjbGFzcykpIHsKICAgICAgICAgICAgICAgICRpbnN0YW5jZXNbJGNsYXNzXSA9IGNhbGxfdXNlcl9mdW5jKFskY2xhc3MsICdnZXRfaW5zdGFuY2UnXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRpbnN0YW5jZXM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfYXZhaWxhYmxlX3Byb3ZpZGVyc19mb3JfdXNlcigkdXNlcl9pZCkKICAgIHsKICAgICAgICAkYWxsX3Byb3ZpZGVycyA9IHNlbGY6OmdldF9wcm92aWRlcnMoKTsKICAgICAgICAkZW5hYmxlZCA9IFR3b0ZhY3RvclVzZXJNZXRhOjpnZXRfZW5hYmxlZF9wcm92aWRlcnMoJHVzZXJfaWQpOwogICAgICAgICRhdmFpbGFibGUgPSBbXTsKCiAgICAgICAgZm9yZWFjaCAoJGFsbF9wcm92aWRlcnMgYXMgJGtleSA9PiAkcHJvdmlkZXIpIHsKICAgICAgICAgICAgaWYgKGluX2FycmF5KCRrZXksICRlbmFibGVkKSAmJiAkcHJvdmlkZXItPmlzX2F2YWlsYWJsZV9mb3JfdXNlcigkdXNlcl9pZCkpIHsKICAgICAgICAgICAgICAgICRhdmFpbGFibGVbJGtleV0gPSAkcHJvdmlkZXI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkYXZhaWxhYmxlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3ByaW1hcnlfcHJvdmlkZXJfZm9yX3VzZXIoJHVzZXJfaWQpCiAgICB7CiAgICAgICAgJHByaW1hcnlfa2V5ID0gVHdvRmFjdG9yVXNlck1ldGE6OmdldF9wcmltYXJ5X3Byb3ZpZGVyKCR1c2VyX2lkKTsKICAgICAgICAkYXZhaWxhYmxlID0gc2VsZjo6Z2V0X2F2YWlsYWJsZV9wcm92aWRlcnNfZm9yX3VzZXIoJHVzZXJfaWQpOwoKICAgICAgICBpZiAoJHByaW1hcnlfa2V5ICYmIGlzc2V0KCRhdmFpbGFibGVbJHByaW1hcnlfa2V5XSkpIHsKICAgICAgICAgICAgcmV0dXJuICRhdmFpbGFibGVbJHByaW1hcnlfa2V5XTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAhZW1wdHkoJGF2YWlsYWJsZSkgPyByZXNldCgkYXZhaWxhYmxlKSA6IG51bGw7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc191c2VyX3VzaW5nX3R3b19mYWN0b3IoJHVzZXJfaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIHNlbGY6OmdldF9wcmltYXJ5X3Byb3ZpZGVyX2Zvcl91c2VyKCR1c2VyX2lkKSAhPT0gbnVsbDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGVuYWJsZV9wcm92aWRlcl9mb3JfdXNlcigkdXNlcl9pZCwgJHByb3ZpZGVyX2tleSkKICAgIHsKICAgICAgICAkZW5hYmxlZCA9IFR3b0ZhY3RvclVzZXJNZXRhOjpnZXRfZW5hYmxlZF9wcm92aWRlcnMoJHVzZXJfaWQpOwogICAgICAgIGlmICghaW5fYXJyYXkoJHByb3ZpZGVyX2tleSwgJGVuYWJsZWQpKSB7CiAgICAgICAgICAgICRlbmFibGVkW10gPSAkcHJvdmlkZXJfa2V5OwogICAgICAgICAgICByZXR1cm4gVHdvRmFjdG9yVXNlck1ldGE6OnNldF9lbmFibGVkX3Byb3ZpZGVycygkdXNlcl9pZCwgJGVuYWJsZWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRpc2FibGVfcHJvdmlkZXJfZm9yX3VzZXIoJHVzZXJfaWQsICRwcm92aWRlcl9rZXkpCiAgICB7CiAgICAgICAgJGVuYWJsZWQgPSBUd29GYWN0b3JVc2VyTWV0YTo6Z2V0X2VuYWJsZWRfcHJvdmlkZXJzKCR1c2VyX2lkKTsKICAgICAgICAkZW5hYmxlZCA9IGFycmF5X2RpZmYoJGVuYWJsZWQsIFskcHJvdmlkZXJfa2V5XSk7CiAgICAgICAgcmV0dXJuIFR3b0ZhY3RvclVzZXJNZXRhOjpzZXRfZW5hYmxlZF9wcm92aWRlcnMoJHVzZXJfaWQsIGFycmF5X3ZhbHVlcygkZW5hYmxlZCkpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0X3ByaW1hcnlfcHJvdmlkZXIoJHVzZXJfaWQsICRwcm92aWRlcl9rZXkpCiAgICB7CiAgICAgICAgcmV0dXJuIFR3b0ZhY3RvclVzZXJNZXRhOjpzZXRfcHJpbWFyeV9wcm92aWRlcigkdXNlcl9pZCwgJHByb3ZpZGVyX2tleSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.TwoFactorProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmFic3RyYWN0IGNsYXNzIFR3b0ZhY3RvclByb3ZpZGVyCnsKICAgIHByb3RlY3RlZCBzdGF0aWMgJGluc3RhbmNlcyA9IFtdOwoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2luc3RhbmNlKCkKICAgIHsKICAgICAgICAkY2xhc3MgPSBnZXRfY2FsbGVkX2NsYXNzKCk7CiAgICAgICAgaWYgKCFpc3NldChzZWxmOjokaW5zdGFuY2VzWyRjbGFzc10pKSB7CiAgICAgICAgICAgIHNlbGY6OiRpbnN0YW5jZXNbJGNsYXNzXSA9IG5ldyAkY2xhc3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGY6OiRpbnN0YW5jZXNbJGNsYXNzXTsKICAgIH0KCiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X2tleSgpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9sYWJlbCgpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGF1dGhlbnRpY2F0aW9uX3BhZ2UoJHVzZXIpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlX2F1dGhlbnRpY2F0aW9uKCR1c2VyKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBpc19hdmFpbGFibGVfZm9yX3VzZXIoJHVzZXIpOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYWx0ZXJuYXRpdmVfbGFiZWwoKQogICAgewogICAgICAgIHJldHVybiBzcHJpbnRmKCdVc2UgJXMnLCAkdGhpcy0+Z2V0X2xhYmVsKCkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBwcmVfcHJvY2Vzc19hdXRoZW50aWNhdGlvbigkdXNlcikKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9jb2RlKCRsZW5ndGggPSA4LCAkY2hhcnMgPSAnMTIzNDU2Nzg5MCcpCiAgICB7CiAgICAgICAgJGNvZGUgPSAnJzsKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyAkaSsrKSB7CiAgICAgICAgICAgICRjb2RlIC49ICRjaGFyc1tyYW5kKDAsIHN0cmxlbigkY2hhcnMpIC0gMSldOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvZGU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNhbml0aXplX2NvZGVfZnJvbV9yZXF1ZXN0KCRmaWVsZCwgJGxlbmd0aCA9IDApCiAgICB7CiAgICAgICAgaWYgKGVtcHR5KCRfUkVRVUVTVFskZmllbGRdKSkgcmV0dXJuIGZhbHNlOwogICAgICAgICRjb2RlID0gcHJlZ19yZXBsYWNlKCcvXHMrLycsICcnLCAkX1JFUVVFU1RbJGZpZWxkXSk7CiAgICAgICAgaWYgKCRsZW5ndGggJiYgc3RybGVuKCRjb2RlKSAhPT0gJGxlbmd0aCkgcmV0dXJuIGZhbHNlOwogICAgICAgIHJldHVybiAkY29kZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.TwoFactorProviderBackupCodes.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiMgU2VlIGRvYy9MSUNFTlNFLnR4dCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLgpjbGFzcyBUd29GYWN0b3JQcm92aWRlckJhY2t1cENvZGVzIGV4dGVuZHMgVHdvRmFjdG9yUHJvdmlkZXIKewogICAgcHJpdmF0ZSBzdGF0aWMgJGluc3RhbmNlOwoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2luc3RhbmNlKCkKICAgIHsKICAgICAgICBpZiAoIXNlbGY6OiRpbnN0YW5jZSkgewogICAgICAgICAgICBzZWxmOjokaW5zdGFuY2UgPSBuZXcgc2VsZigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZjo6JGluc3RhbmNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfa2V5KCkKICAgIHsKICAgICAgICByZXR1cm4gJ1R3b0ZhY3RvclByb3ZpZGVyQmFja3VwQ29kZXMnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGFiZWwoKQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1R3b0ZhY3RvcicpOwogICAgICAgIHJldHVybiAkbW9kLT5MYW5nKCdwcm92aWRlcl9iYWNrdXBfY29kZXMnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfYXZhaWxhYmxlX2Zvcl91c2VyKCR1c2VyX2lkKQogICAgewogICAgICAgICRjb2RlcyA9ICR0aGlzLT5nZXRfY29kZXMoJHVzZXJfaWQpOwogICAgICAgIHJldHVybiAhZW1wdHkoJGNvZGVzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfY29kZXMoJGNvdW50ID0gMTApCiAgICB7CiAgICAgICAgJGNvZGVzID0gW107CiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7CiAgICAgICAgICAgICRjb2Rlc1tdID0gc3RydG9sb3dlcihiaW4yaGV4KHJhbmRvbV9ieXRlcyg0KSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvZGVzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29kZXMoJHVzZXJfaWQpCiAgICB7CiAgICAgICAgJGNvZGVzID0gVHdvRmFjdG9yVXNlck1ldGE6OmdldCgkdXNlcl9pZCwgJ2JhY2t1cF9jb2RlcycpOwogICAgICAgIHJldHVybiBpc19hcnJheSgkY29kZXMpID8gJGNvZGVzIDogW107CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9jb2RlcygkdXNlcl9pZCwgJGNvZGVzKQogICAgewogICAgICAgIHJldHVybiBUd29GYWN0b3JVc2VyTWV0YTo6dXBkYXRlKCR1c2VyX2lkLCAnYmFja3VwX2NvZGVzJywgJGNvZGVzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVfYXV0aGVudGljYXRpb24oJHVzZXJfaWQpCiAgICB7CiAgICAgICAgJHN1Ym1pdHRlZF9jb2RlID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywgJycsICRfUE9TVFsnYXV0aGNvZGUnXSA/PyAnJykpOwogICAgICAgICRjb2RlcyA9ICR0aGlzLT5nZXRfY29kZXMoJHVzZXJfaWQpOwogICAgICAgIAogICAgICAgIGlmIChpbl9hcnJheSgkc3VibWl0dGVkX2NvZGUsICRjb2RlcykpIHsKICAgICAgICAgICAgJGNvZGVzID0gYXJyYXlfZGlmZigkY29kZXMsIFskc3VibWl0dGVkX2NvZGVdKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9jb2RlcygkdXNlcl9pZCwgYXJyYXlfdmFsdWVzKCRjb2RlcykpOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB1c2VyX3NldHVwX2Zvcm0oJHVzZXJfaWQpCiAgICB7CiAgICAgICAgcmV0dXJuICcnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhdXRoZW50aWNhdGlvbl9wYWdlKCR1c2VyX2lkKQogICAgewogICAgICAgIHJldHVybiAnJzsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.TwoFactorProviderEmail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiMgU2VlIGRvYy9MSUNFTlNFLnR4dCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLgpjbGFzcyBUd29GYWN0b3JQcm92aWRlckVtYWlsIGV4dGVuZHMgVHdvRmFjdG9yUHJvdmlkZXIKewogICAgcHJpdmF0ZSBzdGF0aWMgJGluc3RhbmNlOwoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2luc3RhbmNlKCkKICAgIHsKICAgICAgICBpZiAoIXNlbGY6OiRpbnN0YW5jZSkgewogICAgICAgICAgICBzZWxmOjokaW5zdGFuY2UgPSBuZXcgc2VsZigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZjo6JGluc3RhbmNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfa2V5KCkKICAgIHsKICAgICAgICByZXR1cm4gJ1R3b0ZhY3RvclByb3ZpZGVyRW1haWwnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGFiZWwoKQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1R3b0ZhY3RvcicpOwogICAgICAgIHJldHVybiAkbW9kLT5MYW5nKCdwcm92aWRlcl9lbWFpbCcpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19hdmFpbGFibGVfZm9yX3VzZXIoJHVzZXJfaWQpCiAgICB7CiAgICAgICAgJHVzZXIgPSBVc2VyT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPkxvYWRVc2VyQnlJRCgkdXNlcl9pZCk7CiAgICAgICAgcmV0dXJuICR1c2VyICYmICFlbXB0eSgkdXNlci0+ZW1haWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5lcmF0ZV9hbmRfc2VuZF9jb2RlKCR1c2VyX2lkKQogICAgewogICAgICAgICRjb2RlID0gc3ByaW50ZignJTA2ZCcsIG10X3JhbmQoMCwgOTk5OTk5KSk7CiAgICAgICAgJGV4cGlyeSA9IHRpbWUoKSArIDYwMDsgLy8gMTAgbWludXRlcwogICAgICAgIAogICAgICAgIFR3b0ZhY3RvclVzZXJNZXRhOjp1cGRhdGUoJHVzZXJfaWQsICdlbWFpbF9jb2RlJywgJGNvZGUpOwogICAgICAgIFR3b0ZhY3RvclVzZXJNZXRhOjp1cGRhdGUoJHVzZXJfaWQsICdlbWFpbF9jb2RlX2V4cGlyeScsICRleHBpcnkpOwogICAgICAgIAogICAgICAgICR1c2VyID0gVXNlck9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5Mb2FkVXNlckJ5SUQoJHVzZXJfaWQpOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1R3b0ZhY3RvcicpOwogICAgICAgIAogICAgICAgICRtYWlsZXIgPSBuZXcgY21zX21haWxlcigpOwogICAgICAgICRtYWlsZXItPkFkZEFkZHJlc3MoJHVzZXItPmVtYWlsKTsKICAgICAgICAkbWFpbGVyLT5TZXRTdWJqZWN0KCRtb2QtPkxhbmcoJ2VtYWlsX3N1YmplY3QnKSk7CiAgICAgICAgJG1haWxlci0+U2V0Qm9keSgkbW9kLT5MYW5nKCdlbWFpbF9ib2R5JywgJGNvZGUpKTsKICAgICAgICAKICAgICAgICByZXR1cm4gJG1haWxlci0+U2VuZCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV9hdXRoZW50aWNhdGlvbigkdXNlcl9pZCkKICAgIHsKICAgICAgICAkc3VibWl0dGVkX2NvZGUgPSBwcmVnX3JlcGxhY2UoJy9ccysvJywgJycsICRfUE9TVFsnYXV0aGNvZGUnXSA/PyAnJyk7CiAgICAgICAgJHN0b3JlZF9jb2RlID0gVHdvRmFjdG9yVXNlck1ldGE6OmdldCgkdXNlcl9pZCwgJ2VtYWlsX2NvZGUnKTsKICAgICAgICAkZXhwaXJ5ID0gVHdvRmFjdG9yVXNlck1ldGE6OmdldCgkdXNlcl9pZCwgJ2VtYWlsX2NvZGVfZXhwaXJ5Jyk7CiAgICAgICAgCiAgICAgICAgaWYgKCEkc3RvcmVkX2NvZGUgfHwgISRleHBpcnkgfHwgdGltZSgpID4gJGV4cGlyeSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmICgkc3VibWl0dGVkX2NvZGUgPT09ICRzdG9yZWRfY29kZSkgewogICAgICAgICAgICBUd29GYWN0b3JVc2VyTWV0YTo6ZGVsZXRlKCR1c2VyX2lkLCAnZW1haWxfY29kZScpOwogICAgICAgICAgICBUd29GYWN0b3JVc2VyTWV0YTo6ZGVsZXRlKCR1c2VyX2lkLCAnZW1haWxfY29kZV9leHBpcnknKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXNlcl9zZXR1cF9mb3JtKCR1c2VyX2lkKQogICAgewogICAgICAgICR1c2VyID0gVXNlck9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5Mb2FkVXNlckJ5SUQoJHVzZXJfaWQpOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1R3b0ZhY3RvcicpOwogICAgICAgIAogICAgICAgIGlmICghJHVzZXIgfHwgISR1c2VyLT5lbWFpbCkgewogICAgICAgICAgICByZXR1cm4gJzxwPicgLiAkbW9kLT5MYW5nKCdlbWFpbF9ub19hZGRyZXNzJykgLiAnPC9wPic7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiAnPHA+JyAuICRtb2QtPkxhbmcoJ2VtYWlsX3NldHVwX2luZm8nLCAkdXNlci0+ZW1haWwpIC4gJzwvcD4nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhdXRoZW50aWNhdGlvbl9wYWdlKCR1c2VyX2lkKQogICAgewogICAgICAgIHJldHVybiAnJzsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.TwoFactorProviderSMS.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiMgU2VlIGRvYy9MSUNFTlNFLnR4dCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLgpjbGFzcyBUd29GYWN0b3JQcm92aWRlclNNUyBleHRlbmRzIFR3b0ZhY3RvclByb3ZpZGVyCnsKICAgIHByaXZhdGUgc3RhdGljICRpbnN0YW5jZTsKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9pbnN0YW5jZSgpCiAgICB7CiAgICAgICAgaWYgKCFzZWxmOjokaW5zdGFuY2UpIHsKICAgICAgICAgICAgc2VsZjo6JGluc3RhbmNlID0gbmV3IHNlbGYoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGY6OiRpbnN0YW5jZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2tleSgpCiAgICB7CiAgICAgICAgcmV0dXJuICdUd29GYWN0b3JQcm92aWRlclNNUyc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9sYWJlbCgpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnVHdvRmFjdG9yJyk7CiAgICAgICAgcmV0dXJuICRtb2QtPkxhbmcoJ3Byb3ZpZGVyX3NtcycpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19hdmFpbGFibGVfZm9yX3VzZXIoJHVzZXJfaWQpCiAgICB7CiAgICAgICAgJHBob25lID0gVHdvRmFjdG9yVXNlck1ldGE6OmdldCgkdXNlcl9pZCwgJ3Ntc19waG9uZScpOwogICAgICAgICRhcGlfa2V5X3NpZCA9IGdldF9zaXRlX3ByZWZlcmVuY2UoJ3R3b2ZhY3Rvcl90d2lsaW9fYXBpX2tleV9zaWQnKTsKICAgICAgICAkYXBpX3NlY3JldCA9IGdldF9zaXRlX3ByZWZlcmVuY2UoJ3R3b2ZhY3Rvcl90d2lsaW9fYXBpX3NlY3JldCcpOwogICAgICAgICRzZXJ2aWNlX3NpZCA9IGdldF9zaXRlX3ByZWZlcmVuY2UoJ3R3b2ZhY3Rvcl90d2lsaW9fc2VydmljZV9zaWQnKTsKICAgICAgICAKICAgICAgICByZXR1cm4gIWVtcHR5KCRwaG9uZSkgJiYgIWVtcHR5KCRhcGlfa2V5X3NpZCkgJiYgIWVtcHR5KCRhcGlfc2VjcmV0KSAmJiAhZW1wdHkoJHNlcnZpY2Vfc2lkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfYW5kX3NlbmRfY29kZSgkdXNlcl9pZCkKICAgIHsKICAgICAgICAkcGhvbmUgPSBUd29GYWN0b3JVc2VyTWV0YTo6Z2V0KCR1c2VyX2lkLCAnc21zX3Bob25lJyk7CiAgICAgICAgJGFwaV9rZXlfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfa2V5X3NpZCcpOwogICAgICAgICRhcGlfc2VjcmV0ID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19hcGlfc2VjcmV0Jyk7CiAgICAgICAgJHNlcnZpY2Vfc2lkID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgndHdvZmFjdG9yX3R3aWxpb19zZXJ2aWNlX3NpZCcpOwogICAgICAgIAogICAgICAgIC8vIFN0YXJ0IHZlcmlmaWNhdGlvbiB1c2luZyBUd2lsaW8gVmVyaWZ5IEFQSQogICAgICAgICR1cmwgPSAiaHR0cHM6Ly92ZXJpZnkudHdpbGlvLmNvbS92Mi9TZXJ2aWNlcy97JHNlcnZpY2Vfc2lkfS9WZXJpZmljYXRpb25zIjsKICAgICAgICAKICAgICAgICAkZGF0YSA9IFsKICAgICAgICAgICAgJ1RvJyA9PiAkcGhvbmUsCiAgICAgICAgICAgICdDaGFubmVsJyA9PiAnc21zJwogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCB0cnVlKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgaHR0cF9idWlsZF9xdWVyeSgkZGF0YSkpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7CiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJQV0QsICJ7JGFwaV9rZXlfc2lkfTp7JGFwaV9zZWNyZXR9Iik7CiAgICAgICAgCiAgICAgICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgICAgICRodHRwX2NvZGUgPSBjdXJsX2dldGluZm8oJGNoLCBDVVJMSU5GT19IVFRQX0NPREUpOwogICAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICAKICAgICAgICByZXR1cm4gJGh0dHBfY29kZSA+PSAyMDAgJiYgJGh0dHBfY29kZSA8IDMwMDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVfYXV0aGVudGljYXRpb24oJHVzZXJfaWQpCiAgICB7CiAgICAgICAgJHN1Ym1pdHRlZF9jb2RlID0gcHJlZ19yZXBsYWNlKCcvXHMrLycsICcnLCAkX1BPU1RbJ2F1dGhjb2RlJ10gPz8gJycpOwogICAgICAgICRwaG9uZSA9IFR3b0ZhY3RvclVzZXJNZXRhOjpnZXQoJHVzZXJfaWQsICdzbXNfcGhvbmUnKTsKICAgICAgICAkYXBpX2tleV9zaWQgPSBnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0d29mYWN0b3JfdHdpbGlvX2FwaV9rZXlfc2lkJyk7CiAgICAgICAgJGFwaV9zZWNyZXQgPSBnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0d29mYWN0b3JfdHdpbGlvX2FwaV9zZWNyZXQnKTsKICAgICAgICAkc2VydmljZV9zaWQgPSBnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0d29mYWN0b3JfdHdpbGlvX3NlcnZpY2Vfc2lkJyk7CiAgICAgICAgCiAgICAgICAgLy8gQ2hlY2sgdmVyaWZpY2F0aW9uIHVzaW5nIFR3aWxpbyBWZXJpZnkgQVBJCiAgICAgICAgJHVybCA9ICJodHRwczovL3ZlcmlmeS50d2lsaW8uY29tL3YyL1NlcnZpY2VzL3skc2VydmljZV9zaWR9L1ZlcmlmaWNhdGlvbkNoZWNrIjsKICAgICAgICAKICAgICAgICAkZGF0YSA9IFsKICAgICAgICAgICAgJ1RvJyA9PiAkcGhvbmUsCiAgICAgICAgICAgICdDb2RlJyA9PiAkc3VibWl0dGVkX2NvZGUKICAgICAgICBdOwogICAgICAgIAogICAgICAgICRjaCA9IGN1cmxfaW5pdCgkdXJsKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7CiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsIGh0dHBfYnVpbGRfcXVlcnkoJGRhdGEpKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSUFdELCAieyRhcGlfa2V5X3NpZH06eyRhcGlfc2VjcmV0fSIpOwogICAgICAgIAogICAgICAgICRyZXN1bHQgPSBjdXJsX2V4ZWMoJGNoKTsKICAgICAgICAkaHR0cF9jb2RlID0gY3VybF9nZXRpbmZvKCRjaCwgQ1VSTElORk9fSFRUUF9DT0RFKTsKICAgICAgICBjdXJsX2Nsb3NlKCRjaCk7CiAgICAgICAgCiAgICAgICAgaWYgKCRodHRwX2NvZGUgPj0gMjAwICYmICRodHRwX2NvZGUgPCAzMDApIHsKICAgICAgICAgICAgJHJlc3BvbnNlID0ganNvbl9kZWNvZGUoJHJlc3VsdCwgdHJ1ZSk7CiAgICAgICAgICAgIHJldHVybiBpc3NldCgkcmVzcG9uc2VbJ3N0YXR1cyddKSAmJiAkcmVzcG9uc2VbJ3N0YXR1cyddID09PSAnYXBwcm92ZWQnOwogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHVzZXJfc2V0dXBfZm9ybSgkdXNlcl9pZCkKICAgIHsKICAgICAgICByZXR1cm4gJyc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGF1dGhlbnRpY2F0aW9uX3BhZ2UoJHVzZXJfaWQpCiAgICB7CiAgICAgICAgcmV0dXJuICcnOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.TwoFactorProviderTOTP.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmNsYXNzIFR3b0ZhY3RvclByb3ZpZGVyVE9UUCBleHRlbmRzIFR3b0ZhY3RvclByb3ZpZGVyCnsKICAgIGNvbnN0IFNFQ1JFVF9NRVRBX0tFWSA9ICdfdHdvX2ZhY3Rvcl90b3RwX2tleSc7CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9rZXkoKQogICAgewogICAgICAgIHJldHVybiAnVHdvRmFjdG9yUHJvdmlkZXJUT1RQJzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xhYmVsKCkKICAgIHsKICAgICAgICByZXR1cm4gJ0F1dGhlbnRpY2F0b3IgQXBwJzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FsdGVybmF0aXZlX2xhYmVsKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1VzZSB5b3VyIGF1dGhlbnRpY2F0b3IgYXBwIChUT1RQKSc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzX2F2YWlsYWJsZV9mb3JfdXNlcigkdXNlcl9pZCkKICAgIHsKICAgICAgICAka2V5ID0gJHRoaXMtPmdldF91c2VyX3RvdHBfa2V5KCR1c2VyX2lkKTsKICAgICAgICByZXR1cm4gIWVtcHR5KCRrZXkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhdXRoZW50aWNhdGlvbl9wYWdlKCR1c2VyKQogICAgewogICAgICAgIGVjaG8gJzxwIGNsYXNzPSJwYWdldGV4dCI+RW50ZXIgdGhlIGNvZGUgZnJvbSB5b3VyIGF1dGhlbnRpY2F0b3IgYXBwOjwvcD4nOwogICAgICAgIGVjaG8gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPic7CiAgICAgICAgZWNobyAnPGxhYmVsIGZvcj0iYXV0aGNvZGUiPkF1dGhlbnRpY2F0aW9uIENvZGU6PC9sYWJlbD48YnIvPic7CiAgICAgICAgZWNobyAnPGlucHV0IHR5cGU9InRleHQiIGlucHV0bW9kZT0ibnVtZXJpYyIgbmFtZT0iYXV0aGNvZGUiIGlkPSJhdXRoY29kZSIgCiAgICAgICAgICAgICAgY2xhc3M9ImlucHV0IiB2YWx1ZT0iIiBzaXplPSIyMCIgcGF0dGVybj0iWzAtOSBdKiIgCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IjEyMyA0NTYiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPic7CiAgICAgICAgZWNobyAnPC9wPic7CiAgICAgICAgZWNobyAnPHNjcmlwdD5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhjb2RlIikuZm9jdXMoKTt9LCAyMDApOzwvc2NyaXB0Pic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlX2F1dGhlbnRpY2F0aW9uKCR1c2VyX2lkKQogICAgewogICAgICAgICRjb2RlID0gJHRoaXMtPnNhbml0aXplX2NvZGVfZnJvbV9yZXF1ZXN0KCdhdXRoY29kZScsIDYpOwogICAgICAgIGVycm9yX2xvZygnVHdvRmFjdG9yIFRPVFA6IFJlY2VpdmVkIGNvZGU6ICcgLiAoJGNvZGUgPyAkY29kZSA6ICdlbXB0eScpKTsKICAgICAgICAKICAgICAgICBpZiAoISRjb2RlKSByZXR1cm4gZmFsc2U7CgogICAgICAgICRrZXkgPSAkdGhpcy0+Z2V0X3VzZXJfdG90cF9rZXkoJHVzZXJfaWQpOwogICAgICAgIGVycm9yX2xvZygnVHdvRmFjdG9yIFRPVFA6IFNlY3JldCBrZXkgZXhpc3RzOiAnIC4gKCRrZXkgPyAneWVzJyA6ICdubycpKTsKICAgICAgICAKICAgICAgICBpZiAoISRrZXkpIHJldHVybiBmYWxzZTsKCiAgICAgICAgJHRmYSA9IG5ldyBcUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoKCk7CiAgICAgICAgJHJlc3VsdCA9ICR0ZmEtPnZlcmlmeUNvZGUoJGtleSwgJGNvZGUsIDIpOwogICAgICAgIGVycm9yX2xvZygnVHdvRmFjdG9yIFRPVFA6IFZlcmlmaWNhdGlvbiByZXN1bHQ6ICcgLiAoJHJlc3VsdCA/ICd0cnVlJyA6ICdmYWxzZScpKTsKICAgICAgICAKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VzZXJfdG90cF9rZXkoJHVzZXJfaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIFR3b0ZhY3RvclVzZXJNZXRhOjpnZXQoJHVzZXJfaWQsIHNlbGY6OlNFQ1JFVF9NRVRBX0tFWSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF91c2VyX3RvdHBfa2V5KCR1c2VyX2lkLCAka2V5KQogICAgewogICAgICAgIHJldHVybiBUd29GYWN0b3JVc2VyTWV0YTo6dXBkYXRlKCR1c2VyX2lkLCBzZWxmOjpTRUNSRVRfTUVUQV9LRVksICRrZXkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfdXNlcl90b3RwX2tleSgkdXNlcl9pZCkKICAgIHsKICAgICAgICByZXR1cm4gVHdvRmFjdG9yVXNlck1ldGE6OmRlbGV0ZSgkdXNlcl9pZCwgc2VsZjo6U0VDUkVUX01FVEFfS0VZKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfa2V5KCkKICAgIHsKICAgICAgICAkdGZhID0gbmV3IFxSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGgoKTsKICAgICAgICByZXR1cm4gJHRmYS0+Y3JlYXRlU2VjcmV0KCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9xcl9jb2RlX3VybCgkdXNlcm5hbWUsICRzZWNyZXQpCiAgICB7CiAgICAgICAgJHNpdGVuYW1lID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgnc2l0ZW5hbWUnLCAnQ01TTVMnKTsKICAgICAgICAkaXNzdWVyID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgnc2l0ZXVybCcsICRzaXRlbmFtZSk7CiAgICAgICAgJHRmYSA9IG5ldyBcUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoKCRpc3N1ZXIpOwogICAgICAgIHJldHVybiAkdGZhLT5nZXRRUkNvZGVJbWFnZUFzRGF0YVVyaSgkdXNlcm5hbWUsICRzZWNyZXQpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.TwoFactorUserMeta.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmNsYXNzIFR3b0ZhY3RvclVzZXJNZXRhCnsKICAgIGNvbnN0IEVOQUJMRURfUFJPVklERVJTX0tFWSA9ICdfdHdvX2ZhY3Rvcl9lbmFibGVkX3Byb3ZpZGVycyc7CiAgICBjb25zdCBQUklNQVJZX1BST1ZJREVSX0tFWSA9ICdfdHdvX2ZhY3Rvcl9wcmltYXJ5X3Byb3ZpZGVyJzsKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldCgkdXNlcl9pZCwgJGtleSwgJHNpbmdsZSA9IHRydWUpCiAgICB7CiAgICAgICAgJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBtZXRhX3ZhbHVlIEZST00gJy5DTVNfREJfUFJFRklYLidtb2RfdHdvZmFjdG9yX3VzZXJtZXRhIAogICAgICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8gQU5EIG1ldGFfa2V5ID0gPyc7CiAgICAgICAgCiAgICAgICAgaWYgKCRzaW5nbGUpIHsKICAgICAgICAgICAgJHZhbHVlID0gJGRiLT5HZXRPbmUoJHNxbCwgWyR1c2VyX2lkLCAka2V5XSk7CiAgICAgICAgICAgIHJldHVybiAkdmFsdWUgPyB1bnNlcmlhbGl6ZSgkdmFsdWUpIDogbnVsbDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJHJvd3MgPSAkZGItPkdldENvbCgkc3FsLCBbJHVzZXJfaWQsICRrZXldKTsKICAgICAgICByZXR1cm4gYXJyYXlfbWFwKCd1bnNlcmlhbGl6ZScsICRyb3dzKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZSgkdXNlcl9pZCwgJGtleSwgJHZhbHVlKQogICAgewogICAgICAgICRkYiA9IGNtc191dGlsczo6Z2V0X2RiKCk7CiAgICAgICAgJHNlcmlhbGl6ZWQgPSBzZXJpYWxpemUoJHZhbHVlKTsKICAgICAgICAKICAgICAgICAkZXhpc3RzID0gJGRiLT5HZXRPbmUoCiAgICAgICAgICAgICdTRUxFQ1QgaWQgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZF90d29mYWN0b3JfdXNlcm1ldGEgCiAgICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPyBBTkQgbWV0YV9rZXkgPSA/JywKICAgICAgICAgICAgWyR1c2VyX2lkLCAka2V5XQogICAgICAgICk7CgogICAgICAgIGlmICgkZXhpc3RzKSB7CiAgICAgICAgICAgIHJldHVybiAkZGItPkV4ZWN1dGUoCiAgICAgICAgICAgICAgICAnVVBEQVRFICcuQ01TX0RCX1BSRUZJWC4nbW9kX3R3b2ZhY3Rvcl91c2VybWV0YSAKICAgICAgICAgICAgICAgICBTRVQgbWV0YV92YWx1ZSA9ID8gV0hFUkUgdXNlcl9pZCA9ID8gQU5EIG1ldGFfa2V5ID0gPycsCiAgICAgICAgICAgICAgICBbJHNlcmlhbGl6ZWQsICR1c2VyX2lkLCAka2V5XQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRkYi0+RXhlY3V0ZSgKICAgICAgICAgICAgJ0lOU0VSVCBJTlRPICcuQ01TX0RCX1BSRUZJWC4nbW9kX3R3b2ZhY3Rvcl91c2VybWV0YSAKICAgICAgICAgICAgICh1c2VyX2lkLCBtZXRhX2tleSwgbWV0YV92YWx1ZSkgVkFMVUVTICg/LCA/LCA/KScsCiAgICAgICAgICAgIFskdXNlcl9pZCwgJGtleSwgJHNlcmlhbGl6ZWRdCiAgICAgICAgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZSgkdXNlcl9pZCwgJGtleSkKICAgIHsKICAgICAgICAkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwogICAgICAgIHJldHVybiAkZGItPkV4ZWN1dGUoCiAgICAgICAgICAgICdERUxFVEUgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZF90d29mYWN0b3JfdXNlcm1ldGEgCiAgICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPyBBTkQgbWV0YV9rZXkgPSA/JywKICAgICAgICAgICAgWyR1c2VyX2lkLCAka2V5XQogICAgICAgICk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZW5hYmxlZF9wcm92aWRlcnMoJHVzZXJfaWQpCiAgICB7CiAgICAgICAgJHByb3ZpZGVycyA9IHNlbGY6OmdldCgkdXNlcl9pZCwgc2VsZjo6RU5BQkxFRF9QUk9WSURFUlNfS0VZKTsKICAgICAgICByZXR1cm4gaXNfYXJyYXkoJHByb3ZpZGVycykgPyAkcHJvdmlkZXJzIDogW107CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXRfZW5hYmxlZF9wcm92aWRlcnMoJHVzZXJfaWQsIGFycmF5ICRwcm92aWRlcnMpCiAgICB7CiAgICAgICAgcmV0dXJuIHNlbGY6OnVwZGF0ZSgkdXNlcl9pZCwgc2VsZjo6RU5BQkxFRF9QUk9WSURFUlNfS0VZLCAkcHJvdmlkZXJzKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcmltYXJ5X3Byb3ZpZGVyKCR1c2VyX2lkKQogICAgewogICAgICAgIHJldHVybiBzZWxmOjpnZXQoJHVzZXJfaWQsIHNlbGY6OlBSSU1BUllfUFJPVklERVJfS0VZKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF9wcmltYXJ5X3Byb3ZpZGVyKCR1c2VyX2lkLCAkcHJvdmlkZXJfa2V5KQogICAgewogICAgICAgIHJldHVybiBzZWxmOjp1cGRhdGUoJHVzZXJfaWQsIHNlbGY6OlBSSU1BUllfUFJPVklERVJfS0VZLCAkcHJvdmlkZXJfa2V5KTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbihUd29GYWN0b3I6Ok1BTkFHRV9QRVJNLCAnTWFuYWdlIFR3b0ZhY3RvcicpOwoKJGRiID0gJHRoaXMtPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCi8vIFVzZXIgbWV0YSB0YWJsZSBmb3Igc3RvcmluZyBwcm92aWRlci1zcGVjaWZpYyBkYXRhCiRmbGRzID0gIgogICAgaWQgSSBLRVkgQVVUTywKICAgIHVzZXJfaWQgSSBOT1ROVUxMLAogICAgbWV0YV9rZXkgQygyNTUpIE5PVE5VTEwsCiAgICBtZXRhX3ZhbHVlIFgKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENNU19EQl9QUkVGSVguJ21vZF90d29mYWN0b3JfdXNlcm1ldGEnLCAkZmxkcyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIENyZWF0ZSBpbmRleCBmb3IgZmFzdGVyIGxvb2t1cHMKJGRiLT5FeGVjdXRlKCdDUkVBVEUgSU5ERVggaWR4X3VzZXJfa2V5IE9OICcuQ01TX0RCX1BSRUZJWC4nbW9kX3R3b2ZhY3Rvcl91c2VybWV0YSAodXNlcl9pZCwgbWV0YV9rZXkpJyk7CgovLyBSZWdpc3RlciBldmVudCBoYW5kbGVycwpcRXZlbnRzOjpDcmVhdGVFdmVudCgnQ29yZScsICdMb2dpblBvc3QnKTsKJHRoaXMtPlJlZ2lzdGVyRXZlbnRzKCk7CgovLyBDb3B5IHR3b2ZhY3Rvci5waHAgdG8gYWRtaW4gZGlyZWN0b3J5CiRjb25maWcgPSBjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKJHNvdXJjZSA9IGNtc19qb2luX3BhdGgoJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwgJ2FkbWluX2ZpbGVzJywgJ29yaWcudHdvZmFjdG9yLnBocCcpOwokZGVzdCA9IGNtc19qb2luX3BhdGgoQ01TX1JPT1RfUEFUSCwgJGNvbmZpZ1snYWRtaW5fZGlyJ10sICd0d29mYWN0b3IucGhwJyk7CmlmIChmaWxlX2V4aXN0cygkc291cmNlKSkgewogICAgY29weSgkc291cmNlLCAkZGVzdCk7Cn0KCi8vIFRyYWNrIGluc3RhbGxhdGlvbgppbmNsdWRlX29uY2UoZGlybmFtZShfX0ZJTEVfXykgLiAnL2xpYi9jbGFzcy5Nb2R1bGVUcmFja2VyLnBocCcpOwpNb2R1bGVUcmFja2VyOjp0cmFjaygnVHdvRmFjdG9yJywgJ2luc3RhbGwnKTs=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbihUd29GYWN0b3I6Ok1BTkFHRV9QRVJNKTsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoQ01TX0RCX1BSRUZJWC4nbW9kX3R3b2ZhY3Rvcl91c2VybWV0YScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywgJ0xvZ2luUG9zdCcpOwoKLy8gUmVtb3ZlIHR3b2ZhY3Rvci5waHAgZnJvbSBhZG1pbiBkaXJlY3RvcnkKJGNvbmZpZyA9IGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwokdHdvZmFjdG9yX2ZpbGUgPSBjbXNfam9pbl9wYXRoKENNU19ST09UX1BBVEgsICRjb25maWdbJ2FkbWluX2RpciddLCAndHdvZmFjdG9yLnBocCcpOwppZiAoZmlsZV9leGlzdHMoJHR3b2ZhY3Rvcl9maWxlKSkgewogICAgQHVubGluaygkdHdvZmFjdG9yX2ZpbGUpOwp9CgovLyBUcmFjayBpbnN0YWxsYXRpb24KaW5jbHVkZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pIC4gJy9saWIvY2xhc3MuTW9kdWxlVHJhY2tlci5waHAnKTsKTW9kdWxlVHJhY2tlcjo6dHJhY2soJ1R3b0ZhY3RvcicsICd1bmluc3RhbGwnKTs=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJUd29GYWN0b3IiCnZlcnNpb24gPSAiMS4wLjAiCmF1dGhvciA9ICJNYWdhbCBIZXppIgphdXRob3JlbWFpbCA9ICJtYWdhbEBwaXhlbHNvbHV0aW9ucy5iaXoiCm1pbmNtc3ZlcnNpb24gPSAiMi4xLjYiCmxhenlsb2FkYWRtaW4gPSAwCmxhenlsb2FkZnJvbnRlbmQgPSAwCg==]]></data>
	</file>
	<file>
	  <filename>/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+VHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiAoMkZBKSBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSBieSBQaXhlbCBTb2x1dGlvbnMuPC9wPgoKPGgyPkZlYXR1cmVzPC9oMj4KCjx1bD4KICA8bGk+PHN0cm9uZz5NdWx0aXBsZSBBdXRoZW50aWNhdGlvbiBNZXRob2RzPC9zdHJvbmc+OgogICAgPHVsPgogICAgICA8bGk+VE9UUCAoVGltZS1iYXNlZCBPbmUtVGltZSBQYXNzd29yZCkgLSBHb29nbGUgQXV0aGVudGljYXRvciwgQXV0aHksIGV0Yy48L2xpPgogICAgICA8bGk+RW1haWwgVmVyaWZpY2F0aW9uIC0gUmVjZWl2ZSBjb2RlcyB2aWEgZW1haWw8L2xpPgogICAgICA8bGk+U01TIFZlcmlmaWNhdGlvbiAtIFJlY2VpdmUgY29kZXMgdmlhIFR3aWxpbyBTTVM8L2xpPgogICAgICA8bGk+QmFja3VwIENvZGVzIC0gT25lLXRpbWUgZW1lcmdlbmN5IGFjY2VzcyBjb2RlczwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+RmxleGlibGUgQ29uZmlndXJhdGlvbjwvc3Ryb25nPjoKICAgIDx1bD4KICAgICAgPGxpPlVzZXJzIGNhbiBlbmFibGUvZGlzYWJsZSBtZXRob2RzIGluZGl2aWR1YWxseTwvbGk+CiAgICAgIDxsaT5DaG9vc2UgcHJpbWFyeSBhdXRoZW50aWNhdGlvbiBtZXRob2Q8L2xpPgogICAgICA8bGk+TXVsdGlwbGUgbWV0aG9kcyBjYW4gYmUgZW5hYmxlZCBhcyBmYWxsYmFjayBvcHRpb25zPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5TZWN1cml0eSBGZWF0dXJlczwvc3Ryb25nPjoKICAgIDx1bD4KICAgICAgPGxpPkludGVyY2VwdHMgbG9naW4gYWZ0ZXIgdXNlcm5hbWUvcGFzc3dvcmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgIDxsaT5TZXNzaW9uLWJhc2VkIHZlcmlmaWNhdGlvbiBmbG93PC9saT4KICAgICAgPGxpPkF1ZGl0IGxvZ2dpbmcgZm9yIGFsbCAyRkEgZXZlbnRzPC9saT4KICAgICAgPGxpPlNlY3VyZSBjb2RlIGdlbmVyYXRpb24gYW5kIHZhbGlkYXRpb248L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGgyPkluc3RhbGxhdGlvbjwvaDI+Cgo8b2w+CiAgPGxpPlVwbG9hZCB0aGUgbW9kdWxlIGZpbGVzIHRvIDxjb2RlPm1vZHVsZXMvVHdvRmFjdG9yLzwvY29kZT48L2xpPgogIDxsaT5JbnN0YWxsIHRoZSBtb2R1bGUgZnJvbSBFeHRlbnNpb25zICZndDsgTW9kdWxlczwvbGk+CiAgPGxpPlRoZSBtb2R1bGUgd2lsbCBhdXRvbWF0aWNhbGx5OgogICAgPHVsPgogICAgICA8bGk+Q3JlYXRlIHRoZSBkYXRhYmFzZSB0YWJsZSA8Y29kZT5tb2RfdHdvZmFjdG9yX3VzZXJtZXRhPC9jb2RlPjwvbGk+CiAgICAgIDxsaT5Db3B5IDxjb2RlPmFkbWluL3R3b2ZhY3Rvci5waHA8L2NvZGU+IHZlcmlmaWNhdGlvbiBwYWdlPC9saT4KICAgICAgPGxpPlJlZ2lzdGVyIHRoZSBDb3JlOjpMb2dpblBvc3QgZXZlbnQgaGFuZGxlcjwvbGk+CiAgICA8L3VsPgogIDwvbGk+Cjwvb2w+Cgo8aDI+Q29uZmlndXJhdGlvbjwvaDI+Cgo8aDM+VE9UUCAoQXV0aGVudGljYXRvciBBcHApPC9oMz4KPG9sPgogIDxsaT5OYXZpZ2F0ZSB0byBFeHRlbnNpb25zICZndDsgVHdvRmFjdG9yPC9saT4KICA8bGk+Q2xpY2sgIkNvbmZpZ3VyZSIgZm9yIEF1dGhlbnRpY2F0b3IgQXBwPC9saT4KICA8bGk+U2NhbiB0aGUgUVIgY29kZSB3aXRoIHlvdXIgYXV0aGVudGljYXRvciBhcHA8L2xpPgogIDxsaT5FbnRlciB0aGUgNi1kaWdpdCBjb2RlIHRvIHZlcmlmeTwvbGk+Cjwvb2w+Cgo8aDM+RW1haWwgVmVyaWZpY2F0aW9uPC9oMz4KPG9sPgogIDxsaT5DbGljayAiQ29uZmlndXJlIiBmb3IgRW1haWwgVmVyaWZpY2F0aW9uPC9saT4KICA8bGk+Q2xpY2sgIkVuYWJsZSBFbWFpbCBWZXJpZmljYXRpb24iPC9saT4KICA8bGk+Q29kZXMgd2lsbCBiZSBzZW50IHRvIHlvdXIgYWRtaW4gYWNjb3VudCBlbWFpbDwvbGk+Cjwvb2w+Cgo8aDM+U01TIFZlcmlmaWNhdGlvbiAoVHdpbGlvKTwvaDM+CjxvbD4KICA8bGk+Q3JlYXRlIGEgVHdpbGlvIGFjY291bnQgYW5kIFZlcmlmeSBTZXJ2aWNlPC9saT4KICA8bGk+R2VuZXJhdGUgQVBJIEtleSBhbmQgU2VjcmV0IGluIFR3aWxpbyBDb25zb2xlPC9saT4KICA8bGk+RW50ZXIgY3JlZGVudGlhbHMgaW4gU01TIHNldHRpbmdzOgogICAgPHVsPgogICAgICA8bGk+QVBJIEtleSBTSUQ8L2xpPgogICAgICA8bGk+QVBJIFNlY3JldDwvbGk+CiAgICAgIDxsaT5WZXJpZnkgU2VydmljZSBTSUQ8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5FbnRlciBwaG9uZSBudW1iZXIgaW4gRS4xNjQgZm9ybWF0IChlLmcuLCArMTIzNDU2Nzg5MCk8L2xpPgogIDxsaT5WZXJpZnkgdGhlIGNvZGUgc2VudCB0byB5b3VyIHBob25lPC9saT4KPC9vbD4KCjxoMz5CYWNrdXAgQ29kZXM8L2gzPgo8b2w+CiAgPGxpPkNsaWNrICJDb25maWd1cmUiIGZvciBCYWNrdXAgQ29kZXM8L2xpPgogIDxsaT5DbGljayAiR2VuZXJhdGUgQmFja3VwIENvZGVzIjwvbGk+CiAgPGxpPlNhdmUgdGhlIGNvZGVzIGluIGEgc2VjdXJlIGxvY2F0aW9uPC9saT4KICA8bGk+RWFjaCBjb2RlIGNhbiBvbmx5IGJlIHVzZWQgb25jZTwvbGk+Cjwvb2w+Cgo8aDM+U2NyZWVuc2hvdHM8L2gzPgo8cD48aW1nIHNyYz0iaHR0cHM6Ly9jbXNtcy1kb3dubG9hZHMuczMuZXUtc291dGgtMS5hbWF6b25hd3MuY29tL1R3b0ZhY3Rvci90aHVtYm5haWwuanBnIiBhbHQ9IlR3b0ZhY3RvciBtb2R1bGUiIHdpZHRoPSI5MDAiPjwvcD4KCgo8aDI+VXNhZ2U8L2gyPgoKPGgzPkxvZ2luIEZsb3c8L2gzPgo8b2w+CiAgPGxpPkVudGVyIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcyBub3JtYWw8L2xpPgogIDxsaT5BZnRlciBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uLCB5b3UnbGwgYmUgcmVkaXJlY3RlZCB0byAyRkEgdmVyaWZpY2F0aW9uPC9saT4KICA8bGk+RW50ZXIgdGhlIGNvZGUgZnJvbSB5b3VyIHByaW1hcnkgYXV0aGVudGljYXRpb24gbWV0aG9kPC9saT4KICA8bGk+Q2xpY2sgIlVzZSBhIGJhY2t1cCBjb2RlIiBpZiB5b3UgbmVlZCB0byB1c2UgYW4gYWx0ZXJuYXRpdmUgbWV0aG9kPC9saT4KPC9vbD4KCjxoMz5Td2l0Y2hpbmcgTWV0aG9kczwvaDM+CjxwPkR1cmluZyB2ZXJpZmljYXRpb24sIHlvdSBjYW4gc3dpdGNoIGJldHdlZW4gZW5hYmxlZCBtZXRob2RzIHVzaW5nIHRoZSBwcm92aWRlciBkcm9wZG93bi48L3A+Cgo8aDI+VW5pbnN0YWxsYXRpb248L2gyPgoKPHA+VGhlIG1vZHVsZSB3aWxsOjwvcD4KPHVsPgogIDxsaT5SZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlPC9saT4KICA8bGk+RGVsZXRlIHRoZSA8Y29kZT5hZG1pbi90d29mYWN0b3IucGhwPC9jb2RlPiBmaWxlPC9saT4KICA8bGk+UmVtb3ZlIGFsbCB1c2VyIDJGQSBzZXR0aW5nczwvbGk+CjwvdWw+Cgo8aDI+UmVxdWlyZW1lbnRzPC9oMj4KCjx1bD4KICA8bGk+Q01TIE1hZGUgU2ltcGxlIDIueDwvbGk+CiAgPGxpPlBIUCA3LjQgb3IgaGlnaGVyPC9saT4KICA8bGk+Rm9yIFRPVFA6IFJvYlRocmVlL1R3b0ZhY3RvckF1dGggbGlicmFyeSAoaW5jbHVkZWQgdmlhIENvbXBvc2VyKTwvbGk+CiAgPGxpPkZvciBTTVM6IFR3aWxpbyBhY2NvdW50IHdpdGggVmVyaWZ5IEFQSSBhY2Nlc3M8L2xpPgo8L3VsPgoKPGgyPlN1cHBvcnQ8L2gyPgoKPHA+Rm9yIGlzc3VlcyBvciBxdWVzdGlvbnMsIHZpc2l0OiA8YSBocmVmPSJodHRwczovL3BpeGVsc29sdXRpb25zLmJpeiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vcGl4ZWxzb2x1dGlvbnMuYml6PC9hPjwvcD4K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/defaultadmin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tYm90dG9tOjIwcHg7Ij4NCiAgPGgzIHN0eWxlPSJtYXJnaW46MDsiPnskbW9kLT5MYW5nKCd0d29fZmFjdG9yX3NldHRpbmdzJyl9PC9oMz4NCiAgPGEgaHJlZj0iaHR0cHM6Ly9waXhlbHNvbHV0aW9ucy5iaXoiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPg0KICAgIDxpbWcgc3JjPSJodHRwczovL3BpeGVsc29sdXRpb24uczMuZXUtc291dGgtMS5hbWF6b25hd3MuY29tL2xvZ29zL0xPR09fM19DT0xPUl8zMDAucG5nIiBhbHQ9IlBpeGVsIFNvbHV0aW9ucyIgc3R5bGU9ImhlaWdodDo0MHB4OyIgLz4NCiAgPC9hPg0KPC9kaXY+DQoNCntpZiAkZW5hYmxlZF9wcm92aWRlcnN9DQogIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj4NCiAgICA8cD57JG1vZC0+TGFuZygndHdvX2ZhY3Rvcl9hY3RpdmUnKX08L3A+DQogIDwvZGl2Pg0KICANCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJpbWFyeV9tZXRob2RfaW5mbycpfTo8L3A+DQogIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdkZWZhdWx0YWRtaW4nfSIgc3R5bGU9Im1hcmdpbi1ib3R0b206MjBweDsiPg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICANCiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c2V0X3ByaW1hcnkiIGlkPSJwcmltYXJ5X21ldGhvZCI+DQogICAgICAgICAge2ZvcmVhY2ggJHByb3ZpZGVycyBhcyAka2V5ID0+ICRwcm92aWRlcn0NCiAgICAgICAgICAgIHtpZiBpbl9hcnJheSgka2V5LCAkZW5hYmxlZF9wcm92aWRlcnMpfQ0KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ7JGtleX0ie2lmICRrZXkgPT0gJHByaW1hcnlfcHJvdmlkZXJ9IHNlbGVjdGVkey9pZn0+eyRwcm92aWRlci0+Z2V0X2xhYmVsKCl9PC9vcHRpb24+DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygndXBkYXRlJyl9IiBjbGFzcz0icGFnZWJ1dHRvbiIgLz4NCiAgICAgIDwvcD4NCiAgICA8L2Rpdj4NCiAgPC9mb3JtPg0Ke2Vsc2V9DQogIDxkaXYgY2xhc3M9Indhcm5pbmciPg0KICAgIDxwPnskbW9kLT5MYW5nKCdub19tZXRob2RzX2VuYWJsZWQnKX08L3A+DQogIDwvZGl2Pg0Key9pZn0NCg0KPGg0PnskbW9kLT5MYW5nKCdhdmFpbGFibGVfbWV0aG9kcycpfTwvaDQ+DQo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+DQogIDx0aGVhZD4NCiAgICA8dHI+DQogICAgICA8dGg+eyRtb2QtPkxhbmcoJ21ldGhvZCcpfTwvdGg+DQogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57KiBlZGl0IGljb24gKn08L3RoPg0KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyogZWRpdCBpY29uICp9PC90aD4NCiAgICA8L3RyPg0KICA8L3RoZWFkPg0KICA8dGJvZHk+DQogICAgPHRyID4NCiAgICAgIDx0ZCBjbGFzcz0icF90b3BfMTAgcF9ib3R0b21fMTAiPjxzdHJvbmc+eyRtb2QtPkxhbmcoJ3Byb3ZpZGVyX3RvdHAnKX08L3N0cm9uZz48YnIvPjxzbWFsbD57JG1vZC0+TGFuZygndG90cF9kZXNjcmlwdGlvbicpfTwvc21hbGw+PC90ZD4NCiAgICAgIDx0ZD4NCiAgICAgICAge2lmIGluX2FycmF5KCdUd29GYWN0b3JQcm92aWRlclRPVFAnLCAkZW5hYmxlZF9wcm92aWRlcnMpfQ0KICAgICAgICAgIHthZG1pbl9pY29uIHRpdGxlPSdFbmFibGVkJyBpY29uPSd0cnVlLmdpZid9DQogICAgICAgIHtlbHNlfQ0KICAgICAgICAgIHthZG1pbl9pY29uIHRpdGxlPSdEaXNhYmxlZCcgaWNvbj0nZmFsc2UuZ2lmJ30NCiAgICAgICAgey9pZn0NCiAgICAgIDwvdGQ+DQogICAgICA8dGQ+DQogICAgICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249J3NldHVwX3RvdHAnfSI+e2FkbWluX2ljb24gaWNvbj0nZWRpdC5naWYnfTwvYT4NCiAgICAgIDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHIgY2xhc3M9InJvdzIiPg0KICAgICAgPHRkIGNsYXNzPSJwX3RvcF8xMCBwX2JvdHRvbV8xMCI+PHN0cm9uZz57JG1vZC0+TGFuZygncHJvdmlkZXJfZW1haWwnKX08L3N0cm9uZz48YnIvPjxzbWFsbD57JG1vZC0+TGFuZygnZW1haWxfZGVzY3JpcHRpb24nKX08L3NtYWxsPjwvdGQ+DQogICAgICA8dGQ+DQogICAgICAgIHtpZiBpbl9hcnJheSgnVHdvRmFjdG9yUHJvdmlkZXJFbWFpbCcsICRlbmFibGVkX3Byb3ZpZGVycyl9DQogICAgICAgICAge2FkbWluX2ljb24gdGl0bGU9J0VuYWJsZWQnIGljb249J3RydWUuZ2lmJ30NCiAgICAgICAge2Vsc2V9DQogICAgICAgICAge2FkbWluX2ljb24gdGl0bGU9J0Rpc2FibGVkJyBpY29uPSdmYWxzZS5naWYnfQ0KICAgICAgICB7L2lmfQ0KICAgICAgPC90ZD4NCiAgICAgIDx0ZD4NCiAgICAgICAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj0nc2V0dXBfZW1haWwnfSI+e2FkbWluX2ljb24gaWNvbj0nZWRpdC5naWYnfTwvYT4NCiAgICAgIDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgY2xhc3M9InBfdG9wXzEwIHBfYm90dG9tXzEwIj48c3Ryb25nPnskbW9kLT5MYW5nKCdwcm92aWRlcl9zbXMnKX08L3N0cm9uZz48YnIvPjxzbWFsbD57JG1vZC0+TGFuZygnc21zX2Rlc2NyaXB0aW9uJyl9PC9zbWFsbD48L3RkPg0KICAgICAgPHRkPg0KICAgICAgICB7aWYgaW5fYXJyYXkoJ1R3b0ZhY3RvclByb3ZpZGVyU01TJywgJGVuYWJsZWRfcHJvdmlkZXJzKX0NCiAgICAgICAgICB7YWRtaW5faWNvbiB0aXRsZT0nRW5hYmxlZCcgaWNvbj0ndHJ1ZS5naWYnfQ0KICAgICAgICB7ZWxzZX0NCiAgICAgICAgICB7YWRtaW5faWNvbiB0aXRsZT0nRGlzYWJsZWQnIGljb249J2ZhbHNlLmdpZid9DQogICAgICAgIHsvaWZ9DQogICAgICA8L3RkPg0KICAgICAgPHRkPg0KICAgICAgICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdzZXR1cF9zbXMnfSI+e2FkbWluX2ljb24gaWNvbj0nZWRpdC5naWYnfTwvYT4NCiAgICAgIDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHIgY2xhc3M9InJvdzIiPg0KICAgICAgPHRkIGNsYXNzPSJwX3RvcF8xMCBwX2JvdHRvbV8xMCI+PHN0cm9uZz57JG1vZC0+TGFuZygncHJvdmlkZXJfYmFja3VwX2NvZGVzJyl9PC9zdHJvbmc+PGJyLz48c21hbGw+eyRtb2QtPkxhbmcoJ2JhY2t1cF9jb2Rlc19kZXNjcmlwdGlvbicpfTwvc21hbGw+PC90ZD4NCiAgICAgIDx0ZD4NCiAgICAgICAge2lmIGluX2FycmF5KCdUd29GYWN0b3JQcm92aWRlckJhY2t1cENvZGVzJywgJGVuYWJsZWRfcHJvdmlkZXJzKX0NCiAgICAgICAgICB7YWRtaW5faWNvbiB0aXRsZT0nRW5hYmxlZCcgaWNvbj0ndHJ1ZS5naWYnfQ0KICAgICAgICB7ZWxzZX0NCiAgICAgICAgICB7YWRtaW5faWNvbiB0aXRsZT0nRGlzYWJsZWQnIGljb249J2ZhbHNlLmdpZid9DQogICAgICAgIHsvaWZ9DQogICAgICA8L3RkPg0KICAgICAgPHRkPg0KICAgICAgICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdzZXR1cF9iYWNrdXBfY29kZXMnfSI+e2FkbWluX2ljb24gaWNvbj0nZWRpdC5naWYnfTwvYT4NCiAgICAgIDwvdGQ+DQogICAgPC90cj4NCiAgPC90Ym9keT4NCjwvdGFibGU+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/setup_backup_codes.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdzZXR1cF9iYWNrdXBfY29kZXMnKX08L2gzPgoKe2lmICRuZXdfY29kZXN9CiAgPGRpdiBjbGFzcz0icGFnZW1lc3NhZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kOiNmZmZmY2M7cGFkZGluZzoxNXB4O2JvcmRlcjoxcHggc29saWQgI2NjYzsiPgogICAgPHA+PHN0cm9uZz57JG1vZC0+TGFuZygnYmFja3VwX2NvZGVzX3dhcm5pbmcnKX08L3N0cm9uZz48L3A+CiAgICA8cD57JG1vZC0+TGFuZygnYmFja3VwX2NvZGVzX2luZm8nKX08L3A+CiAgPC9kaXY+CiAgCiAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDojZjVmNWY1O3BhZGRpbmc6MjBweDttYXJnaW46MjBweCAwO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MTRweDsiPgogICAge2ZvcmVhY2ggJGNvZGVzIGFzICRjb2RlfQogICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOjVweDsiPnskY29kZX08L2Rpdj4KICAgIHsvZm9yZWFjaH0KICA8L2Rpdj4KICAKICA8cD48YSBjbGFzcz0icGFnZWJhY2siIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249J2RlZmF1bHRhZG1pbid9Ij4mbGFxdW87IHskbW9kLT5MYW5nKCdiYWNrJyl9PC9hPjwvcD4Ke2Vsc2VpZiAkaXNfZW5hYmxlZH0KICA8cD57JG1vZC0+TGFuZygnYmFja3VwX2NvZGVzX2VuYWJsZWRfaW5mbycpfTwvcD4KICA8cD48c3Ryb25nPnskbW9kLT5MYW5nKCdjb2Rlc19yZW1haW5pbmcnKX06PC9zdHJvbmc+IHtjb3VudCgkY29kZXMpfTwvcD4KICAKICA8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj0nc2V0dXBfYmFja3VwX2NvZGVzJ30iPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1nZW5lcmF0ZSIgdmFsdWU9InskbW9kLT5MYW5nKCdyZWdlbmVyYXRlX2NvZGVzJyl9IiAKICAgICAgICAgICBvbmNsaWNrPSJyZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fcmVnZW5lcmF0ZScpfScpOyIgLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGlzYWJsZSIgdmFsdWU9InskbW9kLT5MYW5nKCdkaXNhYmxlX2JhY2t1cF9jb2RlcycpfSIgCiAgICAgICAgICAgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjb25maXJtX2Rpc2FibGUnKX0nKTsiIC8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIC8+CiAgPC9mb3JtPgogIAogIDxwPjxhIGNsYXNzPSJwYWdlYmFjayIgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj0nZGVmYXVsdGFkbWluJ30iPiZsYXF1bzsgeyRtb2QtPkxhbmcoJ2JhY2snKX08L2E+PC9wPgp7ZWxzZX0KICA8cD57JG1vZC0+TGFuZygnYmFja3VwX2NvZGVzX3NldHVwX2luZm8nKX08L3A+CiAgCiAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IntjbXNfYWN0aW9uX3VybCBhY3Rpb249J3NldHVwX2JhY2t1cF9jb2Rlcyd9Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Z2VuZXJhdGUiIHZhbHVlPSJ7JG1vZC0+TGFuZygnZ2VuZXJhdGVfY29kZXMnKX0iIC8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIC8+CiAgPC9mb3JtPgogIAogIDxwPjxhIGNsYXNzPSJwYWdlYmFjayIgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj0nZGVmYXVsdGFkbWluJ30iPiZsYXF1bzsgeyRtb2QtPkxhbmcoJ2JhY2snKX08L2E+PC9wPgp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/setup_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdzZXR1cF9lbWFpbCcpfTwvaDM+Cgp7aWYgJHVzZXJfZW1haWx9CiAgPHA+eyRtb2QtPkxhbmcoJ2VtYWlsX3NldHVwX2luZm8nLCAkdXNlcl9lbWFpbCl9PC9wPgogIAogIHtpZiAkaXNfZW5hYmxlZH0KICAgIDxwIHN0eWxlPSJjb2xvcjpncmVlbjsiPnskbW9kLT5MYW5nKCdlbWFpbF9lbmFibGVkX3N0YXR1cycpfTwvcD4KICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdzZXR1cF9lbWFpbCd9Ij4KICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1kaXNhYmxlIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2Rpc2FibGVfZW1haWwnKX0iIC8+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgLz4KICAgIDwvZm9ybT4KICB7ZWxzZX0KICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdzZXR1cF9lbWFpbCd9Ij4KICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1lbmFibGUiIHZhbHVlPSJ7JG1vZC0+TGFuZygnZW5hYmxlX2VtYWlsJyl9IiAvPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIC8+CiAgICA8L2Zvcm0+CiAgey9pZn0Ke2Vsc2V9CiAgPHAgc3R5bGU9ImNvbG9yOnJlZDsiPnskbW9kLT5MYW5nKCdlbWFpbF9ub19hZGRyZXNzJyl9PC9wPgogIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdzZXR1cF9lbWFpbCd9Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgLz4KICA8L2Zvcm0+CnsvaWZ9Cgo8cD48YSBjbGFzcz0icGFnZWJhY2siIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249J2RlZmF1bHRhZG1pbid9Ij4mbGFxdW87IHskbW9kLT5MYW5nKCdiYWNrJyl9PC9hPjwvcD4K]]></data>
	</file>
	<file>
	  <filename>/templates/setup_sms.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdzZXR1cF9zbXMnKX08L2gzPgoKe2lmICR2ZXJpZnlfcmVzdWx0fQogIHtpZiAkdmVyaWZ5X3N1Y2Nlc3N9CiAgICA8ZGl2IGNsYXNzPSJwYWdlbWVzc2FnZSIgc3R5bGU9ImJhY2tncm91bmQ6I2Q0ZWRkYTtjb2xvcjojMTU1NzI0O3BhZGRpbmc6MTVweDttYXJnaW46MTBweCAwO2JvcmRlcjoxcHggc29saWQgI2MzZTZjYjsiPgogICAgICA8c3Ryb25nPnskbW9kLT5MYW5nKCd2ZXJpZmljYXRpb25fc2VudCcpfTwvc3Ryb25nPgogICAgPC9kaXY+CiAge2Vsc2V9CiAgICA8ZGl2IGNsYXNzPSJwYWdlbWVzc2FnZSIgc3R5bGU9ImJhY2tncm91bmQ6I2Y4ZDdkYTtjb2xvcjojNzIxYzI0O3BhZGRpbmc6MTVweDttYXJnaW46MTBweCAwO2JvcmRlcjoxcHggc29saWQgI2Y1YzZjYjsiPgogICAgICA8c3Ryb25nPnskZXJyb3JfbWVzc2FnZXxkZWZhdWx0OiRtb2QtPkxhbmcoJ3ZlcmlmaWNhdGlvbl9mYWlsZWQnLCAnVW5rbm93biBlcnJvcicpfTwvc3Ryb25nPgogICAgPC9kaXY+CiAgey9pZn0Key9pZn0KCjxoND57JG1vZC0+TGFuZygndHdpbGlvX3NldHRpbmdzJyl9PC9oND4KPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IntjbXNfYWN0aW9uX3VybCBhY3Rpb249J3NldHVwX3Ntcyd9Ij4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndHdpbGlvX2FwaV9rZXlfc2lkJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH10d2lsaW9fYXBpX2tleV9zaWQiIHZhbHVlPSJ7JHR3aWxpb19hcGlfa2V5X3NpZH0iIHNpemU9IjUwIiAvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd0d2lsaW9fYXBpX3NlY3JldCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJ7JGFjdGlvbmlkfXR3aWxpb19hcGlfc2VjcmV0IiB2YWx1ZT0ieyR0d2lsaW9fYXBpX3NlY3JldH0iIHNpemU9IjUwIiAvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd0d2lsaW9fc2VydmljZV9zaWQnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXR3aWxpb19zZXJ2aWNlX3NpZCIgdmFsdWU9InskdHdpbGlvX3NlcnZpY2Vfc2lkfSIgc2l6ZT0iNTAiIC8+CiAgICAgIDxici8+PHNtYWxsPnskbW9kLT5MYW5nKCd0d2lsaW9fc2VydmljZV9zaWRfaGVscCcpfTwvc21hbGw+CiAgICA8L3A+CiAgPC9kaXY+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXNhdmVfc2V0dGluZ3MiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc2F2ZV9zZXR0aW5ncycpfSIgLz4KICA8L3A+CjwvZm9ybT4KCjxoci8+Cgo8aDQ+eyRtb2QtPkxhbmcoJ3Ntc191c2VyX3NldHRpbmdzJyl9PC9oND4Ke2lmICRwZW5kaW5nX3Bob25lfQogIDxwPnskbW9kLT5MYW5nKCd2ZXJpZmljYXRpb25fY29kZV9zZW50JywgJHBlbmRpbmdfcGhvbmUpfTwvcD4KICA8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj0nc2V0dXBfc21zJ30iPgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndmVyaWZpY2F0aW9uX2NvZGUnKX06PC9wPgogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jb2RlIiB2YWx1ZT0iIiBzaXplPSIxMCIgcGxhY2Vob2xkZXI9IjEyMzQ1NiIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+CiAgICAgIDwvcD4KICAgIDwvZGl2PgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9dmVyaWZ5X2NvZGUiIHZhbHVlPSJ7JG1vZC0+TGFuZygndmVyaWZ5X3Bob25lJyl9IiAvPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2VuZF9jb2RlIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2VuZF9jb2RlJyl9IiAvPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNoYW5nZV9waG9uZSIgdmFsdWU9InskbW9kLT5MYW5nKCdjaGFuZ2VfcGhvbmUnKX0iIC8+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgLz4KICAgIDwvcD4KICA8L2Zvcm0+CntlbHNlaWYgJGlzX2VuYWJsZWR9CiAgPHA+eyRtb2QtPkxhbmcoJ3Ntc19lbmFibGVkX2luZm8nLCAkcGhvbmUpfTwvcD4KICA8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj0nc2V0dXBfc21zJ30iPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1kaXNhYmxlIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2Rpc2FibGVfc21zJyl9IiAvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiAvPgogIDwvZm9ybT4Ke2Vsc2V9CiAgPHA+eyRtb2QtPkxhbmcoJ3Ntc19zZXR1cF9pbmZvJyl9PC9wPgogIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdzZXR1cF9zbXMnfSI+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwaG9uZV9udW1iZXInKX06PC9wPgogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICA8aW5wdXQgdHlwZT0idGVsIiBuYW1lPSJ7JGFjdGlvbmlkfXBob25lIiB2YWx1ZT0iIiBzaXplPSIyMCIgcGxhY2Vob2xkZXI9IisxMjM0NTY3ODkwIiAvPgogICAgICAgIDxici8+PHNtYWxsPnskbW9kLT5MYW5nKCdwaG9uZV9mb3JtYXRfaGVscCcpfTwvc21hbGw+CiAgICAgIDwvcD4KICAgIDwvZGl2PgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c2VuZF92ZXJpZmljYXRpb24iIHZhbHVlPSJ7JG1vZC0+TGFuZygnc2VuZF92ZXJpZmljYXRpb25fY29kZScpfSIgLz4KICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiAvPgogICAgPC9wPgogIDwvZm9ybT4Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/setup_totp.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdzZXR1cF90b3RwJyl9PC9oMz4KCntpZiAkZXJyb3J9CiAgPGRpdiBjbGFzcz0icGFnZW1lc3NhZ2UiIHN0eWxlPSJjb2xvcjpyZWQ7Ij57JGVycm9yfTwvZGl2Pgp7L2lmfQoKe2lmICRpc19jb25maWd1cmVkfQogIDxwIGNsYXNzPSJwYWdldGV4dCIgc3R5bGU9ImNvbG9yOmdyZWVuO2ZvbnQtd2VpZ2h0OmJvbGQ7Ij4KICAgIOKckyB7JG1vZC0+TGFuZygndG90cF9jb25maWd1cmVkJyl9CiAgPC9wPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3RvdHBfcmVzZXRfd2FybmluZycpfTwvcD4KICB7Zm9ybV9zdGFydCBhY3Rpb249J3NldHVwX3RvdHAnfQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygncmVzZXRfdG90cCcpfSIgCiAgICAgICAgICAgICBvbmNsaWNrPSJyZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fcmVzZXQnKX0nKTsiIC8+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgLz4KICAgIDwvcD4KICB7Zm9ybV9lbmR9CntlbHNlfQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NjYW5fcXInKX08L3A+CiAgPHA+PGltZyBzcmM9InskcXJfY29kZX0iIGFsdD0iUVIgQ29kZSIgLz48L3A+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbWFudWFsX2VudHJ5Jyl9OiA8Y29kZT57JHNlY3JldH08L2NvZGU+PC9wPgogIAogIDxoci8+CiAgCiAge2Zvcm1fc3RhcnQgYWN0aW9uPSdzZXR1cF90b3RwJ30KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9dG90cF9rZXkiIHZhbHVlPSJ7JHNlY3JldH0iIC8+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdlbnRlcl9jb2RlX3ZlcmlmeScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlucHV0bW9kZT0ibnVtZXJpYyIgbmFtZT0ieyRhY3Rpb25pZH1hdXRoY29kZSIgCiAgICAgICAgICAgICB2YWx1ZT0iIiBzaXplPSIxMCIgcGxhY2Vob2xkZXI9IjEyMzQ1NiIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH12ZXJpZnkiIHZhbHVlPSJ7JG1vZC0+TGFuZygndmVyaWZ5Jyl9IiAvPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIC8+CiAgICA8L3A+CiAge2Zvcm1fZW5kfQp7L2lmfQoKPHAgY2xhc3M9InBhZ2ViYWNrIj4KICA8YSBjbGFzcz0icGFnZWJhY2siIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249J2RlZmF1bHRhZG1pbid9Ij4mbGFxdW87IHskbW9kLT5MYW5nKCdiYWNrJyl9PC9hPgo8L3A+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/verify_backup_codes.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgY2hhcnNldD0ieyRlbmNvZGluZ30iIC8+CgkJPHRpdGxlPlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24gLSB7c2l0ZW5hbWV9PC90aXRsZT4KCQk8YmFzZSBocmVmPSJ7JGNvbmZpZy5hZG1pbl91cmx9LyIgLz4KCQk8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93IiAvPgoJCTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCBtYXhpbXVtLXNjYWxlPTEuMCB1c2VyLXNjYWxhYmxlPW5vIiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0ieyRjb25maWcuYWRtaW5fdXJsfS90aGVtZXMvT25lRWxldmVuL2ltYWdlcy9mYXZpY29uL2Ntc21zLWZhdmljb24uaWNvIi8+CgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJsb2dpbnN0eWxlLnBocCIgLz4KCQl7Y21zX2pxdWVyeX0KCTwvaGVhZD4KCTxib2R5IGlkPSJsb2dpbiI+CgkJPGRpdiBpZD0id3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImxvZ2luLWNvbnRhaW5lciI+CgkJCQk8ZGl2IGNsYXNzPSJsb2dpbi1ib3ggY2Yie2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfSBpZD0iZXJyb3Iiey9pZn0+CgkJCQkJPGRpdiBjbGFzcz0ibG9nbyI+CgkJCQkJCTxpbWcgc3JjPSJ7JGNvbmZpZy5hZG1pbl91cmx9L3RoZW1lcy9PbmVFbGV2ZW4vaW1hZ2VzL2xheW91dC9jbXNtc19sb2dpbl9sb2dvLnBuZyIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIzNiIgYWx0PSJDTVMgTWFkZSBTaW1wbGUmdHJhZGU7IiAvPgoJCQkJCTwvZGl2PgoJCQkJCTxoZWFkZXI+CgkJCQkJCTxoMT5CYWNrdXAgQ29kZTwvaDE+CgkJCQkJPC9oZWFkZXI+CgkJCQkJPHA+RW50ZXIgb25lIG9mIHlvdXIgYmFja3VwIGNvZGVzLjwvcD4KCQkJCQk8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0idHdvZmFjdG9yLnBocCI+CgkJCQkJCTxmaWVsZHNldD4KCQkJCQkJCTxsYWJlbCBmb3I9ImF1dGhjb2RlIj5CYWNrdXAgQ29kZTwvbGFiZWw+CgkJCQkJCQk8aW5wdXQgaWQ9ImF1dGhjb2RlIiBjbGFzcz0iZm9jdXMiIHBsYWNlaG9sZGVyPSJ4eHh4eHh4eCIgbmFtZT0iYXV0aGNvZGUiIHR5cGU9InRleHQiIHNpemU9IjE1IiB2YWx1ZT0iIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2ZvY3VzIC8+CgkJCQkJCQk8aW5wdXQgY2xhc3M9ImxvZ2luc3VibWl0IiBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlZlcmlmeSIgLz4KCQkJCQkJPC9maWVsZHNldD4KCQkJCQk8L2Zvcm0+CgkJCQkJe2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfQoJCQkJCQk8ZGl2IGNsYXNzPSJtZXNzYWdlIGVycm9yIj4KCQkJCQkJCXskZXJyb3J9CgkJCQkJCTwvZGl2PgoJCQkJCXsvaWZ9CgkJCQkJPHAgY2xhc3M9ImZvcmdvdHB3Ij4KCQkJCQkJPGEgaHJlZj0idHdvZmFjdG9yLnBocD9wcm92aWRlcj0iPkJhY2sgdG8gcHJpbWFyeSBtZXRob2Q8L2E+CgkJCQkJPC9wPgoJCQkJPC9kaXY+CgkJCQk8Zm9vdGVyPgoJCQkJCTxzbWFsbCBjbGFzcz0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgJmNvcHk7IDxhIHJlbD0iZXh0ZXJuYWwiIGhyZWY9Imh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSZ0cmFkZTs8L2E+PC9zbWFsbD4KCQkJCTwvZm9vdGVyPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/templates/verify_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgY2hhcnNldD0ieyRlbmNvZGluZ30iIC8+CgkJPHRpdGxlPlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24gLSB7c2l0ZW5hbWV9PC90aXRsZT4KCQk8YmFzZSBocmVmPSJ7JGNvbmZpZy5hZG1pbl91cmx9LyIgLz4KCQk8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93IiAvPgoJCTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCBtYXhpbXVtLXNjYWxlPTEuMCB1c2VyLXNjYWxhYmxlPW5vIiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0ieyRjb25maWcuYWRtaW5fdXJsfS90aGVtZXMvT25lRWxldmVuL2ltYWdlcy9mYXZpY29uL2Ntc21zLWZhdmljb24uaWNvIi8+CgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJsb2dpbnN0eWxlLnBocCIgLz4KCQl7Y21zX2pxdWVyeX0KCTwvaGVhZD4KCTxib2R5IGlkPSJsb2dpbiI+CgkJPGRpdiBpZD0id3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImxvZ2luLWNvbnRhaW5lciI+CgkJCQk8ZGl2IGNsYXNzPSJsb2dpbi1ib3ggY2Yie2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfSBpZD0iZXJyb3Iiey9pZn0+CgkJCQkJPGRpdiBjbGFzcz0ibG9nbyI+CgkJCQkJCTxpbWcgc3JjPSJ7JGNvbmZpZy5hZG1pbl91cmx9L3RoZW1lcy9PbmVFbGV2ZW4vaW1hZ2VzL2xheW91dC9jbXNtc19sb2dpbl9sb2dvLnBuZyIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIzNiIgYWx0PSJDTVMgTWFkZSBTaW1wbGUmdHJhZGU7IiAvPgoJCQkJCTwvZGl2PgoJCQkJCTxoZWFkZXI+CgkJCQkJCTxoMT5FbWFpbCBWZXJpZmljYXRpb248L2gxPgoJCQkJCTwvaGVhZGVyPgoJCQkJCTxwPkEgdmVyaWZpY2F0aW9uIGNvZGUgaGFzIGJlZW4gc2VudCB0byB5b3VyIGVtYWlsIGFkZHJlc3MuPC9wPgoJCQkJCTxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJ0d29mYWN0b3IucGhwIj4KCQkJCQkJPGZpZWxkc2V0PgoJCQkJCQkJPGxhYmVsIGZvcj0iYXV0aGNvZGUiPlZlcmlmaWNhdGlvbiBDb2RlPC9sYWJlbD4KCQkJCQkJCTxpbnB1dCBpZD0iYXV0aGNvZGUiIGNsYXNzPSJmb2N1cyIgcGxhY2Vob2xkZXI9IjEyMzQ1NiIgbmFtZT0iYXV0aGNvZGUiIHR5cGU9InRleHQiIGlucHV0bW9kZT0ibnVtZXJpYyIgcGF0dGVybj0iWzAtOV0qIiBzaXplPSIxNSIgdmFsdWU9IiIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9mb2N1cyAvPgoJCQkJCQkJPGlucHV0IGNsYXNzPSJsb2dpbnN1Ym1pdCIgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJWZXJpZnkiIC8+CgkJCQkJCTwvZmllbGRzZXQ+CgkJCQkJPC9mb3JtPgoJCQkJCXtpZiBpc3NldCgkZXJyb3IpICYmICRlcnJvciAhPSAnJ30KCQkJCQkJPGRpdiBjbGFzcz0ibWVzc2FnZSBlcnJvciI+CgkJCQkJCQl7JGVycm9yfQoJCQkJCQk8L2Rpdj4KCQkJCQl7L2lmfQoJCQkJCXtpZiAkaGFzX2JhY2t1cF9jb2RlcyAmJiAhJHVzaW5nX2JhY2t1cH0KCQkJCQkJPHAgY2xhc3M9ImZvcmdvdHB3Ij4KCQkJCQkJCTxhIGhyZWY9InR3b2ZhY3Rvci5waHA/cHJvdmlkZXI9VHdvRmFjdG9yUHJvdmlkZXJCYWNrdXBDb2RlcyI+VXNlIGEgYmFja3VwIGNvZGU8L2E+CgkJCQkJCTwvcD4KCQkJCQl7L2lmfQoJCQkJPC9kaXY+CgkJCQk8Zm9vdGVyPgoJCQkJCTxzbWFsbCBjbGFzcz0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgJmNvcHk7IDxhIHJlbD0iZXh0ZXJuYWwiIGhyZWY9Imh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSZ0cmFkZTs8L2E+PC9zbWFsbD4KCQkJCTwvZm9vdGVyPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/templates/verify_sms.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgY2hhcnNldD0ieyRlbmNvZGluZ30iIC8+CgkJPHRpdGxlPlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24gLSB7c2l0ZW5hbWV9PC90aXRsZT4KCQk8YmFzZSBocmVmPSJ7JGNvbmZpZy5hZG1pbl91cmx9LyIgLz4KCQk8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93IiAvPgoJCTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCBtYXhpbXVtLXNjYWxlPTEuMCB1c2VyLXNjYWxhYmxlPW5vIiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0ieyRjb25maWcuYWRtaW5fdXJsfS90aGVtZXMvT25lRWxldmVuL2ltYWdlcy9mYXZpY29uL2Ntc21zLWZhdmljb24uaWNvIi8+CgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJsb2dpbnN0eWxlLnBocCIgLz4KCQl7Y21zX2pxdWVyeX0KCTwvaGVhZD4KCTxib2R5IGlkPSJsb2dpbiI+CgkJPGRpdiBpZD0id3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImxvZ2luLWNvbnRhaW5lciI+CgkJCQk8ZGl2IGNsYXNzPSJsb2dpbi1ib3ggY2Yie2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfSBpZD0iZXJyb3Iiey9pZn0+CgkJCQkJPGRpdiBjbGFzcz0ibG9nbyI+CgkJCQkJCTxpbWcgc3JjPSJ7JGNvbmZpZy5hZG1pbl91cmx9L3RoZW1lcy9PbmVFbGV2ZW4vaW1hZ2VzL2xheW91dC9jbXNtc19sb2dpbl9sb2dvLnBuZyIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIzNiIgYWx0PSJDTVMgTWFkZSBTaW1wbGUmdHJhZGU7IiAvPgoJCQkJCTwvZGl2PgoJCQkJCTxoZWFkZXI+CgkJCQkJCTxoMT5TTVMgVmVyaWZpY2F0aW9uPC9oMT4KCQkJCQk8L2hlYWRlcj4KCQkJCQk8cD5BIHZlcmlmaWNhdGlvbiBjb2RlIGhhcyBiZWVuIHNlbnQgdG8geW91ciBwaG9uZS48L3A+CgkJCQkJPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249InR3b2ZhY3Rvci5waHAiPgoJCQkJCQk8ZmllbGRzZXQ+CgkJCQkJCQk8bGFiZWwgZm9yPSJhdXRoY29kZSI+VmVyaWZpY2F0aW9uIENvZGU8L2xhYmVsPgoJCQkJCQkJPGlucHV0IGlkPSJhdXRoY29kZSIgY2xhc3M9ImZvY3VzIiBwbGFjZWhvbGRlcj0iMTIzNDU2IiBuYW1lPSJhdXRoY29kZSIgdHlwZT0idGV4dCIgaW5wdXRtb2RlPSJudW1lcmljIiBwYXR0ZXJuPSJbMC05XSoiIHNpemU9IjE1IiB2YWx1ZT0iIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2ZvY3VzIC8+CgkJCQkJCQk8aW5wdXQgY2xhc3M9ImxvZ2luc3VibWl0IiBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlZlcmlmeSIgLz4KCQkJCQkJPC9maWVsZHNldD4KCQkJCQk8L2Zvcm0+CgkJCQkJe2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfQoJCQkJCQk8ZGl2IGNsYXNzPSJtZXNzYWdlIGVycm9yIj4KCQkJCQkJCXskZXJyb3J9CgkJCQkJCTwvZGl2PgoJCQkJCXsvaWZ9CgkJCQkJe2lmICRoYXNfYmFja3VwX2NvZGVzICYmICEkdXNpbmdfYmFja3VwfQoJCQkJCQk8cCBjbGFzcz0iZm9yZ290cHciPgoJCQkJCQkJPGEgaHJlZj0idHdvZmFjdG9yLnBocD9wcm92aWRlcj1Ud29GYWN0b3JQcm92aWRlckJhY2t1cENvZGVzIj5Vc2UgYSBiYWNrdXAgY29kZTwvYT4KCQkJCQkJPC9wPgoJCQkJCXsvaWZ9CgkJCQk8L2Rpdj4KCQkJCTxmb290ZXI+CgkJCQkJPHNtYWxsIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCAmY29weTsgPGEgcmVsPSJleHRlcm5hbCIgaHJlZj0iaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlJnRyYWRlOzwvYT48L3NtYWxsPgoJCQkJPC9mb290ZXI+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/verify_totp.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgY2hhcnNldD0ieyRlbmNvZGluZ30iIC8+CgkJPHRpdGxlPlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24gLSB7c2l0ZW5hbWV9PC90aXRsZT4KCQk8YmFzZSBocmVmPSJ7JGNvbmZpZy5hZG1pbl91cmx9LyIgLz4KCQk8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93IiAvPgoJCTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCBtYXhpbXVtLXNjYWxlPTEuMCB1c2VyLXNjYWxhYmxlPW5vIiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0ieyRjb25maWcuYWRtaW5fdXJsfS90aGVtZXMvT25lRWxldmVuL2ltYWdlcy9mYXZpY29uL2Ntc21zLWZhdmljb24uaWNvIi8+CgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJsb2dpbnN0eWxlLnBocCIgLz4KCQl7Y21zX2pxdWVyeX0KCTwvaGVhZD4KCTxib2R5IGlkPSJsb2dpbiI+CgkJPGRpdiBpZD0id3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImxvZ2luLWNvbnRhaW5lciI+CgkJCQk8ZGl2IGNsYXNzPSJsb2dpbi1ib3ggY2Yie2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfSBpZD0iZXJyb3Iiey9pZn0+CgkJCQkJPGRpdiBjbGFzcz0ibG9nbyI+CgkJCQkJCTxpbWcgc3JjPSJ7JGNvbmZpZy5hZG1pbl91cmx9L3RoZW1lcy9PbmVFbGV2ZW4vaW1hZ2VzL2xheW91dC9jbXNtc19sb2dpbl9sb2dvLnBuZyIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIzNiIgYWx0PSJDTVMgTWFkZSBTaW1wbGUmdHJhZGU7IiAvPgoJCQkJCTwvZGl2PgoJCQkJCTxoZWFkZXI+CgkJCQkJCTxoMT5Ud28tRmFjdG9yIEF1dGhlbnRpY2F0aW9uPC9oMT4KCQkJCQk8L2hlYWRlcj4KCQkJCQk8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0idHdvZmFjdG9yLnBocCI+CgkJCQkJCTxmaWVsZHNldD4KCQkJCQkJCTxsYWJlbCBmb3I9ImF1dGhjb2RlIj5BdXRoZW50aWNhdGlvbiBDb2RlPC9sYWJlbD4KCQkJCQkJCTxpbnB1dCBpZD0iYXV0aGNvZGUiIGNsYXNzPSJmb2N1cyIgcGxhY2Vob2xkZXI9IjEyMyA0NTYiIG5hbWU9ImF1dGhjb2RlIiB0eXBlPSJ0ZXh0IiBpbnB1dG1vZGU9Im51bWVyaWMiIHBhdHRlcm49IlswLTkgXSoiIHNpemU9IjE1IiB2YWx1ZT0iIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2ZvY3VzIC8+CgkJCQkJCQk8aW5wdXQgY2xhc3M9ImxvZ2luc3VibWl0IiBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlZlcmlmeSIgLz4KCQkJCQkJPC9maWVsZHNldD4KCQkJCQk8L2Zvcm0+CgkJCQkJe2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfQoJCQkJCQk8ZGl2IGNsYXNzPSJtZXNzYWdlIGVycm9yIj4KCQkJCQkJCXskZXJyb3J9CgkJCQkJCTwvZGl2PgoJCQkJCXsvaWZ9CgkJCQkJe2lmICRoYXNfYmFja3VwX2NvZGVzICYmICEkdXNpbmdfYmFja3VwfQoJCQkJCQk8cCBjbGFzcz0iZm9yZ290cHciPgoJCQkJCQkJPGEgaHJlZj0idHdvZmFjdG9yLnBocD9wcm92aWRlcj1Ud29GYWN0b3JQcm92aWRlckJhY2t1cENvZGVzIj5Vc2UgYSBiYWNrdXAgY29kZTwvYT4KCQkJCQkJPC9wPgoJCQkJCXsvaWZ9CgkJCQk8L2Rpdj4KCQkJCTxmb290ZXI+CgkJCQkJPHNtYWxsIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCAmY29weTsgPGEgcmVsPSJleHRlcm5hbCIgaHJlZj0iaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlJnRyYWRlOzwvYT48L3NtYWxsPgoJCQkJPC9mb290ZXI+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/TwoFactor.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTZWUgZG9jL0xJQ0VOU0UudHh0IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCmNsYXNzIFR3b0ZhY3RvciBleHRlbmRzIENNU01vZHVsZQp7CiAgICBjb25zdCBNQU5BR0VfUEVSTSA9ICdtYW5hZ2VfdHdvZmFjdG9yJzsKCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcxLjAuMCc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsKICAgICAgICByZXR1cm4gJzIuMS42JzsKICAgIH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gRkFMU0U7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKHNlbGY6Ok1BTkFHRV9QRVJNKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvcigpIHsgcmV0dXJuICdNYWdhbCBIZXppJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyByZXR1cm4gJ21hZ2FsQHBpeGVsc29sdXRpb25zLmJpeic7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogICAgewogICAgICAgICRhdXRvbG9hZF9maWxlID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+R2V0TW9kdWxlUGF0aCgpLCAndmVuZG9yJywgJ2F1dG9sb2FkLnBocCcpOwogICAgICAgIGlmIChmaWxlX2V4aXN0cygkYXV0b2xvYWRfZmlsZSkpIHsKICAgICAgICAgICAgcmVxdWlyZV9vbmNlICRhdXRvbG9hZF9maWxlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBzcGxfYXV0b2xvYWRfcmVnaXN0ZXIoWyR0aGlzLCAnX2F1dG9sb2FkZXInXSk7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2F1dG9sb2FkZXIoJGNsYXNzbmFtZSkKICAgIHsKICAgICAgICAkcGFydHMgPSBleHBsb2RlKCdcXCcsICRjbGFzc25hbWUpOwogICAgICAgICRjbGFzc25hbWUgPSBlbmQoJHBhcnRzKTsKICAgICAgICAKICAgICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKAogICAgICAgICAgICAkdGhpcy0+R2V0TW9kdWxlUGF0aCgpLAogICAgICAgICAgICAnbGliJywKICAgICAgICAgICAgJ2NsYXNzLicgLiAkY2xhc3NuYW1lIC4gJy5waHAnCiAgICAgICAgKTsKICAgICAgICAKICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZuKSkgewogICAgICAgICAgICByZXF1aXJlX29uY2UoJGZuKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVBZG1pbigpCiAgICB7CiAgICAgICAgVHdvRmFjdG9yQ29yZTo6cmVnaXN0ZXJfcHJvdmlkZXJzKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFJlZ2lzdGVyRXZlbnRzKCkKICAgIHsKICAgICAgICAkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywgJ0xvZ2luUG9zdCcsIGZhbHNlKTsKICAgIH0KCiAgICBmdW5jdGlvbiBEb0V2ZW50KCRvcmlnaW5hdG9yLCAkZXZlbnRuYW1lLCAmJHBhcmFtcykKICAgIHsKICAgICAgICBpZiAoJG9yaWdpbmF0b3IgPT0gJ0NvcmUnICYmICRldmVudG5hbWUgPT0gJ0xvZ2luUG9zdCcpIHsKICAgICAgICAgICAgJHRoaXMtPkludGVyY2VwdExvZ2luKCRwYXJhbXMpOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIEludGVyY2VwdExvZ2luKCRwYXJhbXMpCiAgICB7CiAgICAgICAgaWYgKCFpc3NldCgkcGFyYW1zWyd1c2VyJ10pKSByZXR1cm47CiAgICAgICAgCiAgICAgICAgJHVpZCA9ICRwYXJhbXNbJ3VzZXInXS0+aWQ7CgogICAgICAgIGlmICghVHdvRmFjdG9yQ29yZTo6aXNfdXNlcl91c2luZ190d29fZmFjdG9yKCR1aWQpKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gU3RvcmUgdXNlciBpbmZvCiAgICAgICAgJF9TRVNTSU9OWyd0d29mYWN0b3JfdXNlcl9pZCddID0gJHVpZDsKICAgICAgICAkX1NFU1NJT05bJ3R3b2ZhY3Rvcl9yZW1lbWJlcm1lJ10gPSBpc3NldCgkX1BPU1RbJ2xvZ2lucmVtZW1iZXInXSkgPyAxIDogMDsKICAgICAgICAKICAgICAgICAvLyBHZXQgdGhlIHNlc3Npb24ga2V5IHRoYXQgd2FzIGp1c3QgY3JlYXRlZAogICAgICAgICRrZXkgPSAkX1NFU1NJT05bQ01TX1VTRVJfS0VZXSA/PyAnJzsKICAgICAgICAKICAgICAgICAvLyBSZWRpcmVjdCB0byAyRkEgdmVyaWZpY2F0aW9uIHBhZ2UKICAgICAgICAkY29uZmlnID0gY21zX3V0aWxzOjpnZXRfY29uZmlnKCk7CiAgICAgICAgJHVybCA9ICRjb25maWdbJ2FkbWluX3VybCddIC4gJy90d29mYWN0b3IucGhwJzsKICAgICAgICBlcnJvcl9sb2coJ1R3b0ZhY3RvciBJbnRlcmNlcHRMb2dpbjogUmVkaXJlY3RpbmcgdG8gJyAuICR1cmwpOwogICAgICAgIHJlZGlyZWN0KCR1cmwpOwogICAgICAgIGV4aXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldEhlbHAoKSB7CiAgICAgICAgJGJhc2VfZGlyID0gcmVhbHBhdGgoX19ESVJfXyk7CiAgICAgICAgJGZpbGUgPSByZWFscGF0aChfX0RJUl9fLicvUkVBRE1FLm1kJyk7CiAgICAgICAgaWYgKCEkZmlsZSB8fCAhJGJhc2VfZGlyIHx8ICFpc19maWxlKCRmaWxlKSB8fCAhaXNfcmVhZGFibGUoJGZpbGUpKSByZXR1cm4gJyc7CiAgICAgICAgaWYgKHN0cnBvcygkZmlsZSwgJGJhc2VfZGlyKSAhPT0gMCkgcmV0dXJuICcnOwogICAgICAgIGlmIChiYXNlbmFtZSgkZmlsZSkgIT09ICdSRUFETUUubWQnKSByZXR1cm4gJyc7CiAgICAgICAgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cygkZmlsZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsKICAgICAgICAkYmFzZV9kaXIgPSByZWFscGF0aChfX0RJUl9fKTsKICAgICAgICAkZmlsZSA9IHJlYWxwYXRoKF9fRElSX18uJy9kb2MvY2hhbmdlbG9nLmluYycpOwogICAgICAgIGlmICghJGZpbGUgfHwgISRiYXNlX2RpciB8fCAhaXNfZmlsZSgkZmlsZSkgfHwgIWlzX3JlYWRhYmxlKCRmaWxlKSkgcmV0dXJuICcnOwogICAgICAgIGlmIChzdHJwb3MoJGZpbGUsICRiYXNlX2RpcikgIT09IDApIHJldHVybiAnJzsKICAgICAgICBpZiAoYmFzZW5hbWUoJGZpbGUpICE9PSAnY2hhbmdlbG9nLmluYycpIHJldHVybiAnJzsKICAgICAgICByZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKTsKICAgIH0KCgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/autoload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIGF1dG9sb2FkLnBocCBAZ2VuZXJhdGVkIGJ5IENvbXBvc2VyCgppZiAoUEhQX1ZFUlNJT05fSUQgPCA1MDYwMCkgewogICAgZWNobyAnQ29tcG9zZXIgMi4zLjAgZHJvcHBlZCBzdXBwb3J0IGZvciBhdXRvbG9hZGluZyBvbiBQSFAgPDUuNiBhbmQgeW91IGFyZSBydW5uaW5nICcuUEhQX1ZFUlNJT04uJywgcGxlYXNlIHVwZ3JhZGUgUEhQIG9yIHVzZSBDb21wb3NlciAyLjIgTFRTIHZpYSAiY29tcG9zZXIgc2VsZi11cGRhdGUgLS0yLjIiLiBBYm9ydGluZy4nLlBIUF9FT0w7CiAgICBleGl0KDEpOwp9CgpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29tcG9zZXIvYXV0b2xvYWRfcmVhbC5waHAnOwoKcmV0dXJuIENvbXBvc2VyQXV0b2xvYWRlckluaXRlMzM5ODhlZjVkYjdiMTdlYzY5ZTMxOWFlYzIxOTVkMjo6Z2V0TG9hZGVyKCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/composer/autoload_classmap.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIGF1dG9sb2FkX2NsYXNzbWFwLnBocCBAZ2VuZXJhdGVkIGJ5IENvbXBvc2VyCgokdmVuZG9yRGlyID0gZGlybmFtZShfX0RJUl9fKTsKJGJhc2VEaXIgPSBkaXJuYW1lKCR2ZW5kb3JEaXIpOwoKcmV0dXJuIGFycmF5KAogICAgJ0NvbXBvc2VyXFxJbnN0YWxsZWRWZXJzaW9ucycgPT4gJHZlbmRvckRpciAuICcvY29tcG9zZXIvSW5zdGFsbGVkVmVyc2lvbnMucGhwJywKICAgICdSb2JUaHJlZVxcQXV0aFxcQWxnb3JpdGhtJyA9PiAkdmVuZG9yRGlyIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9BbGdvcml0aG0ucGhwJywKICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxRclxcQmFjb25RckNvZGVQcm92aWRlcicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL0JhY29uUXJDb2RlUHJvdmlkZXIucGhwJywKICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxRclxcQmFzZUhUVFBRUkNvZGVQcm92aWRlcicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL0Jhc2VIVFRQUVJDb2RlUHJvdmlkZXIucGhwJywKICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxRclxcRW5kcm9pZFFyQ29kZVByb3ZpZGVyJyA9PiAkdmVuZG9yRGlyIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvRW5kcm9pZFFyQ29kZVByb3ZpZGVyLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUXJcXEVuZHJvaWRRckNvZGVXaXRoTG9nb1Byb3ZpZGVyJyA9PiAkdmVuZG9yRGlyIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvRW5kcm9pZFFyQ29kZVdpdGhMb2dvUHJvdmlkZXIucGhwJywKICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxRclxcR29vZ2xlQ2hhcnRzUXJDb2RlUHJvdmlkZXInID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9Hb29nbGVDaGFydHNRckNvZGVQcm92aWRlci5waHAnLAogICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFFyXFxIYW5kbGVzRGF0YVVyaScgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL0hhbmRsZXNEYXRhVXJpLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUXJcXElRUkNvZGVQcm92aWRlcicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL0lRUkNvZGVQcm92aWRlci5waHAnLAogICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFFyXFxJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyJyA9PiAkdmVuZG9yRGlyIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvSW1hZ2VDaGFydHNRUkNvZGVQcm92aWRlci5waHAnLAogICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFFyXFxRUkV4Y2VwdGlvbicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL1FSRXhjZXB0aW9uLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUXJcXFFSU2VydmVyUHJvdmlkZXInID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9RUlNlcnZlclByb3ZpZGVyLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUXJcXFFSaWNrZXRQcm92aWRlcicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL1FSaWNrZXRQcm92aWRlci5waHAnLAogICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFJuZ1xcQ1NSTkdQcm92aWRlcicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9DU1JOR1Byb3ZpZGVyLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUm5nXFxIYXNoUk5HUHJvdmlkZXInID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvSGFzaFJOR1Byb3ZpZGVyLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUm5nXFxJUk5HUHJvdmlkZXInID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvSVJOR1Byb3ZpZGVyLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUm5nXFxPcGVuU1NMUk5HUHJvdmlkZXInID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvT3BlblNTTFJOR1Byb3ZpZGVyLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUm5nXFxSTkdFeGNlcHRpb24nID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvUk5HRXhjZXB0aW9uLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcVGltZVxcSHR0cFRpbWVQcm92aWRlcicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1RpbWUvSHR0cFRpbWVQcm92aWRlci5waHAnLAogICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFRpbWVcXElUaW1lUHJvdmlkZXInID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9UaW1lL0lUaW1lUHJvdmlkZXIucGhwJywKICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxUaW1lXFxMb2NhbE1hY2hpbmVUaW1lUHJvdmlkZXInID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9UaW1lL0xvY2FsTWFjaGluZVRpbWVQcm92aWRlci5waHAnLAogICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFRpbWVcXE5UUFRpbWVQcm92aWRlcicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1RpbWUvTlRQVGltZVByb3ZpZGVyLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcVGltZVxcVGltZUV4Y2VwdGlvbicgPT4gJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1RpbWUvVGltZUV4Y2VwdGlvbi5waHAnLAogICAgJ1JvYlRocmVlXFxBdXRoXFxUd29GYWN0b3JBdXRoJyA9PiAkdmVuZG9yRGlyIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Ud29GYWN0b3JBdXRoLnBocCcsCiAgICAnUm9iVGhyZWVcXEF1dGhcXFR3b0ZhY3RvckF1dGhFeGNlcHRpb24nID0+ICR2ZW5kb3JEaXIgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1R3b0ZhY3RvckF1dGhFeGNlcHRpb24ucGhwJywKKTsK]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/autoload_namespaces.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIGF1dG9sb2FkX25hbWVzcGFjZXMucGhwIEBnZW5lcmF0ZWQgYnkgQ29tcG9zZXIKCiR2ZW5kb3JEaXIgPSBkaXJuYW1lKF9fRElSX18pOwokYmFzZURpciA9IGRpcm5hbWUoJHZlbmRvckRpcik7CgpyZXR1cm4gYXJyYXkoCik7Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/autoload_psr4.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIGF1dG9sb2FkX3BzcjQucGhwIEBnZW5lcmF0ZWQgYnkgQ29tcG9zZXIKCiR2ZW5kb3JEaXIgPSBkaXJuYW1lKF9fRElSX18pOwokYmFzZURpciA9IGRpcm5hbWUoJHZlbmRvckRpcik7CgpyZXR1cm4gYXJyYXkoCiAgICAnUm9iVGhyZWVcXEF1dGhcXCcgPT4gYXJyYXkoJHZlbmRvckRpciAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWInKSwKKTsK]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/autoload_real.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIGF1dG9sb2FkX3JlYWwucGhwIEBnZW5lcmF0ZWQgYnkgQ29tcG9zZXIKCmNsYXNzIENvbXBvc2VyQXV0b2xvYWRlckluaXRlMzM5ODhlZjVkYjdiMTdlYzY5ZTMxOWFlYzIxOTVkMgp7CiAgICBwcml2YXRlIHN0YXRpYyAkbG9hZGVyOwoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZENsYXNzTG9hZGVyKCRjbGFzcykKICAgIHsKICAgICAgICBpZiAoJ0NvbXBvc2VyXEF1dG9sb2FkXENsYXNzTG9hZGVyJyA9PT0gJGNsYXNzKSB7CiAgICAgICAgICAgIHJlcXVpcmUgX19ESVJfXyAuICcvQ2xhc3NMb2FkZXIucGhwJzsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIFxDb21wb3NlclxBdXRvbG9hZFxDbGFzc0xvYWRlcgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldExvYWRlcigpCiAgICB7CiAgICAgICAgaWYgKG51bGwgIT09IHNlbGY6OiRsb2FkZXIpIHsKICAgICAgICAgICAgcmV0dXJuIHNlbGY6OiRsb2FkZXI7CiAgICAgICAgfQoKICAgICAgICByZXF1aXJlIF9fRElSX18gLiAnL3BsYXRmb3JtX2NoZWNrLnBocCc7CgogICAgICAgIHNwbF9hdXRvbG9hZF9yZWdpc3RlcihhcnJheSgnQ29tcG9zZXJBdXRvbG9hZGVySW5pdGUzMzk4OGVmNWRiN2IxN2VjNjllMzE5YWVjMjE5NWQyJywgJ2xvYWRDbGFzc0xvYWRlcicpLCB0cnVlLCB0cnVlKTsKICAgICAgICBzZWxmOjokbG9hZGVyID0gJGxvYWRlciA9IG5ldyBcQ29tcG9zZXJcQXV0b2xvYWRcQ2xhc3NMb2FkZXIoXGRpcm5hbWUoX19ESVJfXykpOwogICAgICAgIHNwbF9hdXRvbG9hZF91bnJlZ2lzdGVyKGFycmF5KCdDb21wb3NlckF1dG9sb2FkZXJJbml0ZTMzOTg4ZWY1ZGI3YjE3ZWM2OWUzMTlhZWMyMTk1ZDInLCAnbG9hZENsYXNzTG9hZGVyJykpOwoKICAgICAgICByZXF1aXJlIF9fRElSX18gLiAnL2F1dG9sb2FkX3N0YXRpYy5waHAnOwogICAgICAgIGNhbGxfdXNlcl9mdW5jKFxDb21wb3NlclxBdXRvbG9hZFxDb21wb3NlclN0YXRpY0luaXRlMzM5ODhlZjVkYjdiMTdlYzY5ZTMxOWFlYzIxOTVkMjo6Z2V0SW5pdGlhbGl6ZXIoJGxvYWRlcikpOwoKICAgICAgICAkbG9hZGVyLT5yZWdpc3Rlcih0cnVlKTsKCiAgICAgICAgcmV0dXJuICRsb2FkZXI7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/autoload_static.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIGF1dG9sb2FkX3N0YXRpYy5waHAgQGdlbmVyYXRlZCBieSBDb21wb3NlcgoKbmFtZXNwYWNlIENvbXBvc2VyXEF1dG9sb2FkOwoKY2xhc3MgQ29tcG9zZXJTdGF0aWNJbml0ZTMzOTg4ZWY1ZGI3YjE3ZWM2OWUzMTlhZWMyMTk1ZDIKewogICAgcHVibGljIHN0YXRpYyAkcHJlZml4TGVuZ3Roc1BzcjQgPSBhcnJheSAoCiAgICAgICAgJ1InID0+IAogICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ1JvYlRocmVlXFxBdXRoXFwnID0+IDE0LAogICAgICAgICksCiAgICApOwoKICAgIHB1YmxpYyBzdGF0aWMgJHByZWZpeERpcnNQc3I0ID0gYXJyYXkgKAogICAgICAgICdSb2JUaHJlZVxcQXV0aFxcJyA9PiAKICAgICAgICBhcnJheSAoCiAgICAgICAgICAgIDAgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYicsCiAgICAgICAgKSwKICAgICk7CgogICAgcHVibGljIHN0YXRpYyAkY2xhc3NNYXAgPSBhcnJheSAoCiAgICAgICAgJ0NvbXBvc2VyXFxJbnN0YWxsZWRWZXJzaW9ucycgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9jb21wb3Nlci9JbnN0YWxsZWRWZXJzaW9ucy5waHAnLAogICAgICAgICdSb2JUaHJlZVxcQXV0aFxcQWxnb3JpdGhtJyA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL0FsZ29yaXRobS5waHAnLAogICAgICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxRclxcQmFjb25RckNvZGVQcm92aWRlcicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvQmFjb25RckNvZGVQcm92aWRlci5waHAnLAogICAgICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxRclxcQmFzZUhUVFBRUkNvZGVQcm92aWRlcicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvQmFzZUhUVFBRUkNvZGVQcm92aWRlci5waHAnLAogICAgICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxRclxcRW5kcm9pZFFyQ29kZVByb3ZpZGVyJyA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9FbmRyb2lkUXJDb2RlUHJvdmlkZXIucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUXJcXEVuZHJvaWRRckNvZGVXaXRoTG9nb1Byb3ZpZGVyJyA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9FbmRyb2lkUXJDb2RlV2l0aExvZ29Qcm92aWRlci5waHAnLAogICAgICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxRclxcR29vZ2xlQ2hhcnRzUXJDb2RlUHJvdmlkZXInID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL0dvb2dsZUNoYXJ0c1FyQ29kZVByb3ZpZGVyLnBocCcsCiAgICAgICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFFyXFxIYW5kbGVzRGF0YVVyaScgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvSGFuZGxlc0RhdGFVcmkucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUXJcXElRUkNvZGVQcm92aWRlcicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvSVFSQ29kZVByb3ZpZGVyLnBocCcsCiAgICAgICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFFyXFxJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyJyA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9JbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyLnBocCcsCiAgICAgICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFFyXFxRUkV4Y2VwdGlvbicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvUVJFeGNlcHRpb24ucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUXJcXFFSU2VydmVyUHJvdmlkZXInID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL1FSU2VydmVyUHJvdmlkZXIucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUXJcXFFSaWNrZXRQcm92aWRlcicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvUVJpY2tldFByb3ZpZGVyLnBocCcsCiAgICAgICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFJuZ1xcQ1NSTkdQcm92aWRlcicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUm5nL0NTUk5HUHJvdmlkZXIucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUm5nXFxIYXNoUk5HUHJvdmlkZXInID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9IYXNoUk5HUHJvdmlkZXIucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUm5nXFxJUk5HUHJvdmlkZXInID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9JUk5HUHJvdmlkZXIucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUm5nXFxPcGVuU1NMUk5HUHJvdmlkZXInID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9PcGVuU1NMUk5HUHJvdmlkZXIucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcUm5nXFxSTkdFeGNlcHRpb24nID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9STkdFeGNlcHRpb24ucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcVGltZVxcSHR0cFRpbWVQcm92aWRlcicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9IdHRwVGltZVByb3ZpZGVyLnBocCcsCiAgICAgICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFRpbWVcXElUaW1lUHJvdmlkZXInID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1RpbWUvSVRpbWVQcm92aWRlci5waHAnLAogICAgICAgICdSb2JUaHJlZVxcQXV0aFxcUHJvdmlkZXJzXFxUaW1lXFxMb2NhbE1hY2hpbmVUaW1lUHJvdmlkZXInID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1RpbWUvTG9jYWxNYWNoaW5lVGltZVByb3ZpZGVyLnBocCcsCiAgICAgICAgJ1JvYlRocmVlXFxBdXRoXFxQcm92aWRlcnNcXFRpbWVcXE5UUFRpbWVQcm92aWRlcicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9OVFBUaW1lUHJvdmlkZXIucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFByb3ZpZGVyc1xcVGltZVxcVGltZUV4Y2VwdGlvbicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9UaW1lRXhjZXB0aW9uLnBocCcsCiAgICAgICAgJ1JvYlRocmVlXFxBdXRoXFxUd29GYWN0b3JBdXRoJyA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1R3b0ZhY3RvckF1dGgucGhwJywKICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXFR3b0ZhY3RvckF1dGhFeGNlcHRpb24nID0+IF9fRElSX18gLiAnLy4uJyAuICcvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbi5waHAnLAogICAgKTsKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEluaXRpYWxpemVyKENsYXNzTG9hZGVyICRsb2FkZXIpCiAgICB7CiAgICAgICAgcmV0dXJuIFxDbG9zdXJlOjpiaW5kKGZ1bmN0aW9uICgpIHVzZSAoJGxvYWRlcikgewogICAgICAgICAgICAkbG9hZGVyLT5wcmVmaXhMZW5ndGhzUHNyNCA9IENvbXBvc2VyU3RhdGljSW5pdGUzMzk4OGVmNWRiN2IxN2VjNjllMzE5YWVjMjE5NWQyOjokcHJlZml4TGVuZ3Roc1BzcjQ7CiAgICAgICAgICAgICRsb2FkZXItPnByZWZpeERpcnNQc3I0ID0gQ29tcG9zZXJTdGF0aWNJbml0ZTMzOTg4ZWY1ZGI3YjE3ZWM2OWUzMTlhZWMyMTk1ZDI6OiRwcmVmaXhEaXJzUHNyNDsKICAgICAgICAgICAgJGxvYWRlci0+Y2xhc3NNYXAgPSBDb21wb3NlclN0YXRpY0luaXRlMzM5ODhlZjVkYjdiMTdlYzY5ZTMxOWFlYzIxOTVkMjo6JGNsYXNzTWFwOwoKICAgICAgICB9LCBudWxsLCBDbGFzc0xvYWRlcjo6Y2xhc3MpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/ClassLoader.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENvbXBvc2VyLgogKgogKiAoYykgTmlscyBBZGVybWFubiA8bmFkZXJtYW5AbmFkZXJtYW4uZGU+CiAqICAgICBKb3JkaSBCb2dnaWFubyA8ai5ib2dnaWFub0BzZWxkLmJlPgogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICovCgpuYW1lc3BhY2UgQ29tcG9zZXJcQXV0b2xvYWQ7CgovKioKICogQ2xhc3NMb2FkZXIgaW1wbGVtZW50cyBhIFBTUi0wLCBQU1ItNCBhbmQgY2xhc3NtYXAgY2xhc3MgbG9hZGVyLgogKgogKiAgICAgJGxvYWRlciA9IG5ldyBcQ29tcG9zZXJcQXV0b2xvYWRcQ2xhc3NMb2FkZXIoKTsKICoKICogICAgIC8vIHJlZ2lzdGVyIGNsYXNzZXMgd2l0aCBuYW1lc3BhY2VzCiAqICAgICAkbG9hZGVyLT5hZGQoJ1N5bWZvbnlcQ29tcG9uZW50JywgX19ESVJfXy4nL2NvbXBvbmVudCcpOwogKiAgICAgJGxvYWRlci0+YWRkKCdTeW1mb255JywgICAgICAgICAgIF9fRElSX18uJy9mcmFtZXdvcmsnKTsKICoKICogICAgIC8vIGFjdGl2YXRlIHRoZSBhdXRvbG9hZGVyCiAqICAgICAkbG9hZGVyLT5yZWdpc3RlcigpOwogKgogKiAgICAgLy8gdG8gZW5hYmxlIHNlYXJjaGluZyB0aGUgaW5jbHVkZSBwYXRoIChlZy4gZm9yIFBFQVIgcGFja2FnZXMpCiAqICAgICAkbG9hZGVyLT5zZXRVc2VJbmNsdWRlUGF0aCh0cnVlKTsKICoKICogSW4gdGhpcyBleGFtcGxlLCBpZiB5b3UgdHJ5IHRvIHVzZSBhIGNsYXNzIGluIHRoZSBTeW1mb255XENvbXBvbmVudAogKiBuYW1lc3BhY2Ugb3Igb25lIG9mIGl0cyBjaGlsZHJlbiAoU3ltZm9ueVxDb21wb25lbnRcQ29uc29sZSBmb3IgaW5zdGFuY2UpLAogKiB0aGUgYXV0b2xvYWRlciB3aWxsIGZpcnN0IGxvb2sgZm9yIHRoZSBjbGFzcyB1bmRlciB0aGUgY29tcG9uZW50LwogKiBkaXJlY3RvcnksIGFuZCBpdCB3aWxsIHRoZW4gZmFsbGJhY2sgdG8gdGhlIGZyYW1ld29yay8gZGlyZWN0b3J5IGlmIG5vdAogKiBmb3VuZCBiZWZvcmUgZ2l2aW5nIHVwLgogKgogKiBUaGlzIGNsYXNzIGlzIGxvb3NlbHkgYmFzZWQgb24gdGhlIFN5bWZvbnkgVW5pdmVyc2FsQ2xhc3NMb2FkZXIuCiAqCiAqIEBhdXRob3IgRmFiaWVuIFBvdGVuY2llciA8ZmFiaWVuQHN5bWZvbnkuY29tPgogKiBAYXV0aG9yIEpvcmRpIEJvZ2dpYW5vIDxqLmJvZ2dpYW5vQHNlbGQuYmU+CiAqIEBzZWUgICAgaHR0cHM6Ly93d3cucGhwLWZpZy5vcmcvcHNyL3Bzci0wLwogKiBAc2VlICAgIGh0dHBzOi8vd3d3LnBocC1maWcub3JnL3Bzci9wc3ItNC8KICovCmNsYXNzIENsYXNzTG9hZGVyCnsKICAgIC8qKiBAdmFyID9zdHJpbmcgKi8KICAgIHByaXZhdGUgJHZlbmRvckRpcjsKCiAgICAvLyBQU1ItNAogICAgLyoqCiAgICAgKiBAdmFyIGFycmF5W10KICAgICAqIEBwc2FsbS12YXIgYXJyYXk8c3RyaW5nLCBhcnJheTxzdHJpbmcsIGludD4+CiAgICAgKi8KICAgIHByaXZhdGUgJHByZWZpeExlbmd0aHNQc3I0ID0gYXJyYXkoKTsKICAgIC8qKgogICAgICogQHZhciBhcnJheVtdCiAgICAgKiBAcHNhbG0tdmFyIGFycmF5PHN0cmluZywgYXJyYXk8aW50LCBzdHJpbmc+PgogICAgICovCiAgICBwcml2YXRlICRwcmVmaXhEaXJzUHNyNCA9IGFycmF5KCk7CiAgICAvKioKICAgICAqIEB2YXIgYXJyYXlbXQogICAgICogQHBzYWxtLXZhciBhcnJheTxzdHJpbmcsIHN0cmluZz4KICAgICAqLwogICAgcHJpdmF0ZSAkZmFsbGJhY2tEaXJzUHNyNCA9IGFycmF5KCk7CgogICAgLy8gUFNSLTAKICAgIC8qKgogICAgICogQHZhciBhcnJheVtdCiAgICAgKiBAcHNhbG0tdmFyIGFycmF5PHN0cmluZywgYXJyYXk8c3RyaW5nLCBzdHJpbmdbXT4+CiAgICAgKi8KICAgIHByaXZhdGUgJHByZWZpeGVzUHNyMCA9IGFycmF5KCk7CiAgICAvKioKICAgICAqIEB2YXIgYXJyYXlbXQogICAgICogQHBzYWxtLXZhciBhcnJheTxzdHJpbmcsIHN0cmluZz4KICAgICAqLwogICAgcHJpdmF0ZSAkZmFsbGJhY2tEaXJzUHNyMCA9IGFycmF5KCk7CgogICAgLyoqIEB2YXIgYm9vbCAqLwogICAgcHJpdmF0ZSAkdXNlSW5jbHVkZVBhdGggPSBmYWxzZTsKCiAgICAvKioKICAgICAqIEB2YXIgc3RyaW5nW10KICAgICAqIEBwc2FsbS12YXIgYXJyYXk8c3RyaW5nLCBzdHJpbmc+CiAgICAgKi8KICAgIHByaXZhdGUgJGNsYXNzTWFwID0gYXJyYXkoKTsKCiAgICAvKiogQHZhciBib29sICovCiAgICBwcml2YXRlICRjbGFzc01hcEF1dGhvcml0YXRpdmUgPSBmYWxzZTsKCiAgICAvKioKICAgICAqIEB2YXIgYm9vbFtdCiAgICAgKiBAcHNhbG0tdmFyIGFycmF5PHN0cmluZywgYm9vbD4KICAgICAqLwogICAgcHJpdmF0ZSAkbWlzc2luZ0NsYXNzZXMgPSBhcnJheSgpOwoKICAgIC8qKiBAdmFyID9zdHJpbmcgKi8KICAgIHByaXZhdGUgJGFwY3VQcmVmaXg7CgogICAgLyoqCiAgICAgKiBAdmFyIHNlbGZbXQogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyAkcmVnaXN0ZXJlZExvYWRlcnMgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogQHBhcmFtID9zdHJpbmcgJHZlbmRvckRpcgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZlbmRvckRpciA9IG51bGwpCiAgICB7CiAgICAgICAgJHRoaXMtPnZlbmRvckRpciA9ICR2ZW5kb3JEaXI7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIHN0cmluZ1tdCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcmVmaXhlcygpCiAgICB7CiAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+cHJlZml4ZXNQc3IwKSkgewogICAgICAgICAgICByZXR1cm4gY2FsbF91c2VyX2Z1bmNfYXJyYXkoJ2FycmF5X21lcmdlJywgYXJyYXlfdmFsdWVzKCR0aGlzLT5wcmVmaXhlc1BzcjApKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBhcnJheSgpOwogICAgfQoKICAgIC8qKgogICAgICogQHJldHVybiBhcnJheVtdCiAgICAgKiBAcHNhbG0tcmV0dXJuIGFycmF5PHN0cmluZywgYXJyYXk8aW50LCBzdHJpbmc+PgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHJlZml4ZXNQc3I0KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnByZWZpeERpcnNQc3I0OwogICAgfQoKICAgIC8qKgogICAgICogQHJldHVybiBhcnJheVtdCiAgICAgKiBAcHNhbG0tcmV0dXJuIGFycmF5PHN0cmluZywgc3RyaW5nPgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RmFsbGJhY2tEaXJzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjA7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIGFycmF5W10KICAgICAqIEBwc2FsbS1yZXR1cm4gYXJyYXk8c3RyaW5nLCBzdHJpbmc+CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRGYWxsYmFja0RpcnNQc3I0KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIHN0cmluZ1tdIEFycmF5IG9mIGNsYXNzbmFtZSA9PiBwYXRoCiAgICAgKiBAcHNhbG0tcmV0dXJuIGFycmF5PHN0cmluZywgc3RyaW5nPgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2xhc3NNYXAoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Y2xhc3NNYXA7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nW10gJGNsYXNzTWFwIENsYXNzIHRvIGZpbGVuYW1lIG1hcAogICAgICogQHBzYWxtLXBhcmFtIGFycmF5PHN0cmluZywgc3RyaW5nPiAkY2xhc3NNYXAKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZENsYXNzTWFwKGFycmF5ICRjbGFzc01hcCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPmNsYXNzTWFwKSB7CiAgICAgICAgICAgICR0aGlzLT5jbGFzc01hcCA9IGFycmF5X21lcmdlKCR0aGlzLT5jbGFzc01hcCwgJGNsYXNzTWFwKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+Y2xhc3NNYXAgPSAkY2xhc3NNYXA7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUmVnaXN0ZXJzIGEgc2V0IG9mIFBTUi0wIGRpcmVjdG9yaWVzIGZvciBhIGdpdmVuIHByZWZpeCwgZWl0aGVyCiAgICAgKiBhcHBlbmRpbmcgb3IgcHJlcGVuZGluZyB0byB0aGUgb25lcyBwcmV2aW91c2x5IHNldCBmb3IgdGhpcyBwcmVmaXguCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAkcHJlZml4ICBUaGUgcHJlZml4CiAgICAgKiBAcGFyYW0gc3RyaW5nW118c3RyaW5nICRwYXRocyAgIFRoZSBQU1ItMCByb290IGRpcmVjdG9yaWVzCiAgICAgKiBAcGFyYW0gYm9vbCAgICAgICAgICAgICRwcmVwZW5kIFdoZXRoZXIgdG8gcHJlcGVuZCB0aGUgZGlyZWN0b3JpZXMKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZCgkcHJlZml4LCAkcGF0aHMsICRwcmVwZW5kID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCEkcHJlZml4KSB7CiAgICAgICAgICAgIGlmICgkcHJlcGVuZCkgewogICAgICAgICAgICAgICAgJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjAgPSBhcnJheV9tZXJnZSgKICAgICAgICAgICAgICAgICAgICAoYXJyYXkpICRwYXRocywKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGlzLT5mYWxsYmFja0RpcnNQc3IwID0gYXJyYXlfbWVyZ2UoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjAsCiAgICAgICAgICAgICAgICAgICAgKGFycmF5KSAkcGF0aHMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRmaXJzdCA9ICRwcmVmaXhbMF07CiAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+cHJlZml4ZXNQc3IwWyRmaXJzdF1bJHByZWZpeF0pKSB7CiAgICAgICAgICAgICR0aGlzLT5wcmVmaXhlc1BzcjBbJGZpcnN0XVskcHJlZml4XSA9IChhcnJheSkgJHBhdGhzOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoJHByZXBlbmQpIHsKICAgICAgICAgICAgJHRoaXMtPnByZWZpeGVzUHNyMFskZmlyc3RdWyRwcmVmaXhdID0gYXJyYXlfbWVyZ2UoCiAgICAgICAgICAgICAgICAoYXJyYXkpICRwYXRocywKICAgICAgICAgICAgICAgICR0aGlzLT5wcmVmaXhlc1BzcjBbJGZpcnN0XVskcHJlZml4XQogICAgICAgICAgICApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5wcmVmaXhlc1BzcjBbJGZpcnN0XVskcHJlZml4XSA9IGFycmF5X21lcmdlKAogICAgICAgICAgICAgICAgJHRoaXMtPnByZWZpeGVzUHNyMFskZmlyc3RdWyRwcmVmaXhdLAogICAgICAgICAgICAgICAgKGFycmF5KSAkcGF0aHMKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBSZWdpc3RlcnMgYSBzZXQgb2YgUFNSLTQgZGlyZWN0b3JpZXMgZm9yIGEgZ2l2ZW4gbmFtZXNwYWNlLCBlaXRoZXIKICAgICAqIGFwcGVuZGluZyBvciBwcmVwZW5kaW5nIHRvIHRoZSBvbmVzIHByZXZpb3VzbHkgc2V0IGZvciB0aGlzIG5hbWVzcGFjZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICRwcmVmaXggIFRoZSBwcmVmaXgvbmFtZXNwYWNlLCB3aXRoIHRyYWlsaW5nICdcXCcKICAgICAqIEBwYXJhbSBzdHJpbmdbXXxzdHJpbmcgJHBhdGhzICAgVGhlIFBTUi00IGJhc2UgZGlyZWN0b3JpZXMKICAgICAqIEBwYXJhbSBib29sICAgICAgICAgICAgJHByZXBlbmQgV2hldGhlciB0byBwcmVwZW5kIHRoZSBkaXJlY3RvcmllcwogICAgICoKICAgICAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUHNyNCgkcHJlZml4LCAkcGF0aHMsICRwcmVwZW5kID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCEkcHJlZml4KSB7CiAgICAgICAgICAgIC8vIFJlZ2lzdGVyIGRpcmVjdG9yaWVzIGZvciB0aGUgcm9vdCBuYW1lc3BhY2UuCiAgICAgICAgICAgIGlmICgkcHJlcGVuZCkgewogICAgICAgICAgICAgICAgJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjQgPSBhcnJheV9tZXJnZSgKICAgICAgICAgICAgICAgICAgICAoYXJyYXkpICRwYXRocywKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyNAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGlzLT5mYWxsYmFja0RpcnNQc3I0ID0gYXJyYXlfbWVyZ2UoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjQsCiAgICAgICAgICAgICAgICAgICAgKGFycmF5KSAkcGF0aHMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2VpZiAoIWlzc2V0KCR0aGlzLT5wcmVmaXhEaXJzUHNyNFskcHJlZml4XSkpIHsKICAgICAgICAgICAgLy8gUmVnaXN0ZXIgZGlyZWN0b3JpZXMgZm9yIGEgbmV3IG5hbWVzcGFjZS4KICAgICAgICAgICAgJGxlbmd0aCA9IHN0cmxlbigkcHJlZml4KTsKICAgICAgICAgICAgaWYgKCdcXCcgIT09ICRwcmVmaXhbJGxlbmd0aCAtIDFdKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiQSBub24tZW1wdHkgUFNSLTQgcHJlZml4IG11c3QgZW5kIHdpdGggYSBuYW1lc3BhY2Ugc2VwYXJhdG9yLiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT5wcmVmaXhMZW5ndGhzUHNyNFskcHJlZml4WzBdXVskcHJlZml4XSA9ICRsZW5ndGg7CiAgICAgICAgICAgICR0aGlzLT5wcmVmaXhEaXJzUHNyNFskcHJlZml4XSA9IChhcnJheSkgJHBhdGhzOwogICAgICAgIH0gZWxzZWlmICgkcHJlcGVuZCkgewogICAgICAgICAgICAvLyBQcmVwZW5kIGRpcmVjdG9yaWVzIGZvciBhbiBhbHJlYWR5IHJlZ2lzdGVyZWQgbmFtZXNwYWNlLgogICAgICAgICAgICAkdGhpcy0+cHJlZml4RGlyc1BzcjRbJHByZWZpeF0gPSBhcnJheV9tZXJnZSgKICAgICAgICAgICAgICAgIChhcnJheSkgJHBhdGhzLAogICAgICAgICAgICAgICAgJHRoaXMtPnByZWZpeERpcnNQc3I0WyRwcmVmaXhdCiAgICAgICAgICAgICk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gQXBwZW5kIGRpcmVjdG9yaWVzIGZvciBhbiBhbHJlYWR5IHJlZ2lzdGVyZWQgbmFtZXNwYWNlLgogICAgICAgICAgICAkdGhpcy0+cHJlZml4RGlyc1BzcjRbJHByZWZpeF0gPSBhcnJheV9tZXJnZSgKICAgICAgICAgICAgICAgICR0aGlzLT5wcmVmaXhEaXJzUHNyNFskcHJlZml4XSwKICAgICAgICAgICAgICAgIChhcnJheSkgJHBhdGhzCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUmVnaXN0ZXJzIGEgc2V0IG9mIFBTUi0wIGRpcmVjdG9yaWVzIGZvciBhIGdpdmVuIHByZWZpeCwKICAgICAqIHJlcGxhY2luZyBhbnkgb3RoZXJzIHByZXZpb3VzbHkgc2V0IGZvciB0aGlzIHByZWZpeC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICRwcmVmaXggVGhlIHByZWZpeAogICAgICogQHBhcmFtIHN0cmluZ1tdfHN0cmluZyAkcGF0aHMgIFRoZSBQU1ItMCBiYXNlIGRpcmVjdG9yaWVzCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXQoJHByZWZpeCwgJHBhdGhzKQogICAgewogICAgICAgIGlmICghJHByZWZpeCkgewogICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMCA9IChhcnJheSkgJHBhdGhzOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5wcmVmaXhlc1BzcjBbJHByZWZpeFswXV1bJHByZWZpeF0gPSAoYXJyYXkpICRwYXRoczsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBSZWdpc3RlcnMgYSBzZXQgb2YgUFNSLTQgZGlyZWN0b3JpZXMgZm9yIGEgZ2l2ZW4gbmFtZXNwYWNlLAogICAgICogcmVwbGFjaW5nIGFueSBvdGhlcnMgcHJldmlvdXNseSBzZXQgZm9yIHRoaXMgbmFtZXNwYWNlLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgJHByZWZpeCBUaGUgcHJlZml4L25hbWVzcGFjZSwgd2l0aCB0cmFpbGluZyAnXFwnCiAgICAgKiBAcGFyYW0gc3RyaW5nW118c3RyaW5nICRwYXRocyAgVGhlIFBTUi00IGJhc2UgZGlyZWN0b3JpZXMKICAgICAqCiAgICAgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldFBzcjQoJHByZWZpeCwgJHBhdGhzKQogICAgewogICAgICAgIGlmICghJHByZWZpeCkgewogICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyNCA9IChhcnJheSkgJHBhdGhzOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRsZW5ndGggPSBzdHJsZW4oJHByZWZpeCk7CiAgICAgICAgICAgIGlmICgnXFwnICE9PSAkcHJlZml4WyRsZW5ndGggLSAxXSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIkEgbm9uLWVtcHR5IFBTUi00IHByZWZpeCBtdXN0IGVuZCB3aXRoIGEgbmFtZXNwYWNlIHNlcGFyYXRvci4iKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+cHJlZml4TGVuZ3Roc1BzcjRbJHByZWZpeFswXV1bJHByZWZpeF0gPSAkbGVuZ3RoOwogICAgICAgICAgICAkdGhpcy0+cHJlZml4RGlyc1BzcjRbJHByZWZpeF0gPSAoYXJyYXkpICRwYXRoczsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBUdXJucyBvbiBzZWFyY2hpbmcgdGhlIGluY2x1ZGUgcGF0aCBmb3IgY2xhc3MgZmlsZXMuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2wgJHVzZUluY2x1ZGVQYXRoCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRVc2VJbmNsdWRlUGF0aCgkdXNlSW5jbHVkZVBhdGgpCiAgICB7CiAgICAgICAgJHRoaXMtPnVzZUluY2x1ZGVQYXRoID0gJHVzZUluY2x1ZGVQYXRoOwogICAgfQoKICAgIC8qKgogICAgICogQ2FuIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIGF1dG9sb2FkZXIgdXNlcyB0aGUgaW5jbHVkZSBwYXRoIHRvIGNoZWNrCiAgICAgKiBmb3IgY2xhc3Nlcy4KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZUluY2x1ZGVQYXRoKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZUluY2x1ZGVQYXRoOwogICAgfQoKICAgIC8qKgogICAgICogVHVybnMgb2ZmIHNlYXJjaGluZyB0aGUgcHJlZml4IGFuZCBmYWxsYmFjayBkaXJlY3RvcmllcyBmb3IgY2xhc3NlcwogICAgICogdGhhdCBoYXZlIG5vdCBiZWVuIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY2xhc3MgbWFwLgogICAgICoKICAgICAqIEBwYXJhbSBib29sICRjbGFzc01hcEF1dGhvcml0YXRpdmUKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldENsYXNzTWFwQXV0aG9yaXRhdGl2ZSgkY2xhc3NNYXBBdXRob3JpdGF0aXZlKQogICAgewogICAgICAgICR0aGlzLT5jbGFzc01hcEF1dGhvcml0YXRpdmUgPSAkY2xhc3NNYXBBdXRob3JpdGF0aXZlOwogICAgfQoKICAgIC8qKgogICAgICogU2hvdWxkIGNsYXNzIGxvb2t1cCBmYWlsIGlmIG5vdCBmb3VuZCBpbiB0aGUgY3VycmVudCBjbGFzcyBtYXA/CiAgICAgKgogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NsYXNzTWFwQXV0aG9yaXRhdGl2ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5jbGFzc01hcEF1dGhvcml0YXRpdmU7CiAgICB9CgogICAgLyoqCiAgICAgKiBBUEN1IHByZWZpeCB0byB1c2UgdG8gY2FjaGUgZm91bmQvbm90LWZvdW5kIGNsYXNzZXMsIGlmIHRoZSBleHRlbnNpb24gaXMgZW5hYmxlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJGFwY3VQcmVmaXgKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldEFwY3VQcmVmaXgoJGFwY3VQcmVmaXgpCiAgICB7CiAgICAgICAgJHRoaXMtPmFwY3VQcmVmaXggPSBmdW5jdGlvbl9leGlzdHMoJ2FwY3VfZmV0Y2gnKSAmJiBmaWx0ZXJfdmFyKGluaV9nZXQoJ2FwYy5lbmFibGVkJyksIEZJTFRFUl9WQUxJREFURV9CT09MRUFOKSA/ICRhcGN1UHJlZml4IDogbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBBUEN1IHByZWZpeCBpbiB1c2UsIG9yIG51bGwgaWYgQVBDdSBjYWNoaW5nIGlzIG5vdCBlbmFibGVkLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldEFwY3VQcmVmaXgoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+YXBjdVByZWZpeDsKICAgIH0KCiAgICAvKioKICAgICAqIFJlZ2lzdGVycyB0aGlzIGluc3RhbmNlIGFzIGFuIGF1dG9sb2FkZXIuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2wgJHByZXBlbmQgV2hldGhlciB0byBwcmVwZW5kIHRoZSBhdXRvbG9hZGVyIG9yIG5vdAogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXIoJHByZXBlbmQgPSBmYWxzZSkKICAgIHsKICAgICAgICBzcGxfYXV0b2xvYWRfcmVnaXN0ZXIoYXJyYXkoJHRoaXMsICdsb2FkQ2xhc3MnKSwgdHJ1ZSwgJHByZXBlbmQpOwoKICAgICAgICBpZiAobnVsbCA9PT0gJHRoaXMtPnZlbmRvckRpcikgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoJHByZXBlbmQpIHsKICAgICAgICAgICAgc2VsZjo6JHJlZ2lzdGVyZWRMb2FkZXJzID0gYXJyYXkoJHRoaXMtPnZlbmRvckRpciA9PiAkdGhpcykgKyBzZWxmOjokcmVnaXN0ZXJlZExvYWRlcnM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdW5zZXQoc2VsZjo6JHJlZ2lzdGVyZWRMb2FkZXJzWyR0aGlzLT52ZW5kb3JEaXJdKTsKICAgICAgICAgICAgc2VsZjo6JHJlZ2lzdGVyZWRMb2FkZXJzWyR0aGlzLT52ZW5kb3JEaXJdID0gJHRoaXM7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogVW5yZWdpc3RlcnMgdGhpcyBpbnN0YW5jZSBhcyBhbiBhdXRvbG9hZGVyLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdW5yZWdpc3RlcigpCiAgICB7CiAgICAgICAgc3BsX2F1dG9sb2FkX3VucmVnaXN0ZXIoYXJyYXkoJHRoaXMsICdsb2FkQ2xhc3MnKSk7CgogICAgICAgIGlmIChudWxsICE9PSAkdGhpcy0+dmVuZG9yRGlyKSB7CiAgICAgICAgICAgIHVuc2V0KHNlbGY6OiRyZWdpc3RlcmVkTG9hZGVyc1skdGhpcy0+dmVuZG9yRGlyXSk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogTG9hZHMgdGhlIGdpdmVuIGNsYXNzIG9yIGludGVyZmFjZS4KICAgICAqCiAgICAgKiBAcGFyYW0gIHN0cmluZyAgICAkY2xhc3MgVGhlIG5hbWUgb2YgdGhlIGNsYXNzCiAgICAgKiBAcmV0dXJuIHRydWV8bnVsbCBUcnVlIGlmIGxvYWRlZCwgbnVsbCBvdGhlcndpc2UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRDbGFzcygkY2xhc3MpCiAgICB7CiAgICAgICAgaWYgKCRmaWxlID0gJHRoaXMtPmZpbmRGaWxlKCRjbGFzcykpIHsKICAgICAgICAgICAgaW5jbHVkZUZpbGUoJGZpbGUpOwoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIEZpbmRzIHRoZSBwYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBjbGFzcyBpcyBkZWZpbmVkLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGNsYXNzIFRoZSBuYW1lIG9mIHRoZSBjbGFzcwogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nfGZhbHNlIFRoZSBwYXRoIGlmIGZvdW5kLCBmYWxzZSBvdGhlcndpc2UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGZpbmRGaWxlKCRjbGFzcykKICAgIHsKICAgICAgICAvLyBjbGFzcyBtYXAgbG9va3VwCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5jbGFzc01hcFskY2xhc3NdKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmNsYXNzTWFwWyRjbGFzc107CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+Y2xhc3NNYXBBdXRob3JpdGF0aXZlIHx8IGlzc2V0KCR0aGlzLT5taXNzaW5nQ2xhc3Nlc1skY2xhc3NdKSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmIChudWxsICE9PSAkdGhpcy0+YXBjdVByZWZpeCkgewogICAgICAgICAgICAkZmlsZSA9IGFwY3VfZmV0Y2goJHRoaXMtPmFwY3VQcmVmaXguJGNsYXNzLCAkaGl0KTsKICAgICAgICAgICAgaWYgKCRoaXQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkZmlsZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJGZpbGUgPSAkdGhpcy0+ZmluZEZpbGVXaXRoRXh0ZW5zaW9uKCRjbGFzcywgJy5waHAnKTsKCiAgICAgICAgLy8gU2VhcmNoIGZvciBIYWNrIGZpbGVzIGlmIHdlIGFyZSBydW5uaW5nIG9uIEhIVk0KICAgICAgICBpZiAoZmFsc2UgPT09ICRmaWxlICYmIGRlZmluZWQoJ0hIVk1fVkVSU0lPTicpKSB7CiAgICAgICAgICAgICRmaWxlID0gJHRoaXMtPmZpbmRGaWxlV2l0aEV4dGVuc2lvbigkY2xhc3MsICcuaGgnKTsKICAgICAgICB9CgogICAgICAgIGlmIChudWxsICE9PSAkdGhpcy0+YXBjdVByZWZpeCkgewogICAgICAgICAgICBhcGN1X2FkZCgkdGhpcy0+YXBjdVByZWZpeC4kY2xhc3MsICRmaWxlKTsKICAgICAgICB9CgogICAgICAgIGlmIChmYWxzZSA9PT0gJGZpbGUpIHsKICAgICAgICAgICAgLy8gUmVtZW1iZXIgdGhhdCB0aGlzIGNsYXNzIGRvZXMgbm90IGV4aXN0LgogICAgICAgICAgICAkdGhpcy0+bWlzc2luZ0NsYXNzZXNbJGNsYXNzXSA9IHRydWU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGZpbGU7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgcmVnaXN0ZXJlZCBsb2FkZXJzIGluZGV4ZWQgYnkgdGhlaXIgY29ycmVzcG9uZGluZyB2ZW5kb3IgZGlyZWN0b3JpZXMuCiAgICAgKgogICAgICogQHJldHVybiBzZWxmW10KICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRSZWdpc3RlcmVkTG9hZGVycygpCiAgICB7CiAgICAgICAgcmV0dXJuIHNlbGY6OiRyZWdpc3RlcmVkTG9hZGVyczsKICAgIH0KCiAgICAvKioKICAgICAqIEBwYXJhbSAgc3RyaW5nICAgICAgICRjbGFzcwogICAgICogQHBhcmFtICBzdHJpbmcgICAgICAgJGV4dAogICAgICogQHJldHVybiBzdHJpbmd8ZmFsc2UKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBmaW5kRmlsZVdpdGhFeHRlbnNpb24oJGNsYXNzLCAkZXh0KQogICAgewogICAgICAgIC8vIFBTUi00IGxvb2t1cAogICAgICAgICRsb2dpY2FsUGF0aFBzcjQgPSBzdHJ0cigkY2xhc3MsICdcXCcsIERJUkVDVE9SWV9TRVBBUkFUT1IpIC4gJGV4dDsKCiAgICAgICAgJGZpcnN0ID0gJGNsYXNzWzBdOwogICAgICAgIGlmIChpc3NldCgkdGhpcy0+cHJlZml4TGVuZ3Roc1BzcjRbJGZpcnN0XSkpIHsKICAgICAgICAgICAgJHN1YlBhdGggPSAkY2xhc3M7CiAgICAgICAgICAgIHdoaWxlIChmYWxzZSAhPT0gJGxhc3RQb3MgPSBzdHJycG9zKCRzdWJQYXRoLCAnXFwnKSkgewogICAgICAgICAgICAgICAgJHN1YlBhdGggPSBzdWJzdHIoJHN1YlBhdGgsIDAsICRsYXN0UG9zKTsKICAgICAgICAgICAgICAgICRzZWFyY2ggPSAkc3ViUGF0aCAuICdcXCc7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnByZWZpeERpcnNQc3I0WyRzZWFyY2hdKSkgewogICAgICAgICAgICAgICAgICAgICRwYXRoRW5kID0gRElSRUNUT1JZX1NFUEFSQVRPUiAuIHN1YnN0cigkbG9naWNhbFBhdGhQc3I0LCAkbGFzdFBvcyArIDEpOwogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5wcmVmaXhEaXJzUHNyNFskc2VhcmNoXSBhcyAkZGlyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZmlsZSA9ICRkaXIgLiAkcGF0aEVuZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkZmlsZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gUFNSLTQgZmFsbGJhY2sgZGlycwogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5mYWxsYmFja0RpcnNQc3I0IGFzICRkaXIpIHsKICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmaWxlID0gJGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkbG9naWNhbFBhdGhQc3I0KSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRmaWxlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBQU1ItMCBsb29rdXAKICAgICAgICBpZiAoZmFsc2UgIT09ICRwb3MgPSBzdHJycG9zKCRjbGFzcywgJ1xcJykpIHsKICAgICAgICAgICAgLy8gbmFtZXNwYWNlZCBjbGFzcyBuYW1lCiAgICAgICAgICAgICRsb2dpY2FsUGF0aFBzcjAgPSBzdWJzdHIoJGxvZ2ljYWxQYXRoUHNyNCwgMCwgJHBvcyArIDEpCiAgICAgICAgICAgICAgICAuIHN0cnRyKHN1YnN0cigkbG9naWNhbFBhdGhQc3I0LCAkcG9zICsgMSksICdfJywgRElSRUNUT1JZX1NFUEFSQVRPUik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gUEVBUi1saWtlIGNsYXNzIG5hbWUKICAgICAgICAgICAgJGxvZ2ljYWxQYXRoUHNyMCA9IHN0cnRyKCRjbGFzcywgJ18nLCBESVJFQ1RPUllfU0VQQVJBVE9SKSAuICRleHQ7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnByZWZpeGVzUHNyMFskZmlyc3RdKSkgewogICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+cHJlZml4ZXNQc3IwWyRmaXJzdF0gYXMgJHByZWZpeCA9PiAkZGlycykgewogICAgICAgICAgICAgICAgaWYgKDAgPT09IHN0cnBvcygkY2xhc3MsICRwcmVmaXgpKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGRpcnMgYXMgJGRpcikgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZpbGUgPSAkZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRsb2dpY2FsUGF0aFBzcjApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGZpbGU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIFBTUi0wIGZhbGxiYWNrIGRpcnMKICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMCBhcyAkZGlyKSB7CiAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZmlsZSA9ICRkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGxvZ2ljYWxQYXRoUHNyMCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkZmlsZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gUFNSLTAgaW5jbHVkZSBwYXRocy4KICAgICAgICBpZiAoJHRoaXMtPnVzZUluY2x1ZGVQYXRoICYmICRmaWxlID0gc3RyZWFtX3Jlc29sdmVfaW5jbHVkZV9wYXRoKCRsb2dpY2FsUGF0aFBzcjApKSB7CiAgICAgICAgICAgIHJldHVybiAkZmlsZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfQoKLyoqCiAqIFNjb3BlIGlzb2xhdGVkIGluY2x1ZGUuCiAqCiAqIFByZXZlbnRzIGFjY2VzcyB0byAkdGhpcy9zZWxmIGZyb20gaW5jbHVkZWQgZmlsZXMuCiAqCiAqIEBwYXJhbSAgc3RyaW5nICRmaWxlCiAqIEByZXR1cm4gdm9pZAogKiBAcHJpdmF0ZQogKi8KZnVuY3Rpb24gaW5jbHVkZUZpbGUoJGZpbGUpCnsKICAgIGluY2x1ZGUgJGZpbGU7Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/installed.json</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ewogICAgInBhY2thZ2VzIjogWwogICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAicm9idGhyZWUvdHdvZmFjdG9yYXV0aCIsCiAgICAgICAgICAgICJ2ZXJzaW9uIjogInYyLjEuMCIsCiAgICAgICAgICAgICJ2ZXJzaW9uX25vcm1hbGl6ZWQiOiAiMi4xLjAuMCIsCiAgICAgICAgICAgICJzb3VyY2UiOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAogICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9iVGhyZWUvVHdvRmFjdG9yQXV0aC5naXQiLAogICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJhYjkzZGQ0MWNlZDc4MThlY2RhODNhMzdjMjc0MWVlMzhiYjcyZmI3IgogICAgICAgICAgICB9LAogICAgICAgICAgICAiZGlzdCI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCiAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvUm9iVGhyZWUvVHdvRmFjdG9yQXV0aC96aXBiYWxsL2FiOTNkZDQxY2VkNzgxOGVjZGE4M2EzN2MyNzQxZWUzOGJiNzJmYjciLAogICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJhYjkzZGQ0MWNlZDc4MThlY2RhODNhMzdjMjc0MWVlMzhiYjcyZmI3IiwKICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVxdWlyZSI6IHsKICAgICAgICAgICAgICAgICJwaHAiOiAiPj04LjEuMCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogewogICAgICAgICAgICAgICAgImZyaWVuZHNvZnBocC9waHAtY3MtZml4ZXIiOiAiXjMuMTMiLAogICAgICAgICAgICAgICAgInBocHN0YW4vcGhwc3RhbiI6ICJeMS45IiwKICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAiXjkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdWdnZXN0IjogewogICAgICAgICAgICAgICAgImJhY29uL2JhY29uLXFyLWNvZGUiOiAiTmVlZGVkIGZvciBCYWNvblFyQ29kZVByb3ZpZGVyIHByb3ZpZGVyIiwKICAgICAgICAgICAgICAgICJlbmRyb2lkL3FyLWNvZGUiOiAiTmVlZGVkIGZvciBFbmRyb2lkUXJDb2RlUHJvdmlkZXIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ0aW1lIjogIjIwMjMtMTEtMTRUMTI6NTA6MjcrMDA6MDAiLAogICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgICAgICAgImluc3RhbGxhdGlvbi1zb3VyY2UiOiAiZGlzdCIsCiAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKICAgICAgICAgICAgICAgICJwc3ItNCI6IHsKICAgICAgICAgICAgICAgICAgICAiUm9iVGhyZWVcXEF1dGhcXCI6ICJsaWIiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKICAgICAgICAgICAgImxpY2Vuc2UiOiBbCiAgICAgICAgICAgICAgICAiTUlUIgogICAgICAgICAgICBdLAogICAgICAgICAgICAiYXV0aG9ycyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJSb2IgSmFuc3NlbiIsCiAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly9yb2JpaWkubWUiLAogICAgICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiTmljb2xhcyBDQVJQaSIsCiAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9OaWNvbGFzQ0FSUGkiLAogICAgICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiV2lsbCBQb3dlciIsCiAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aWxscG93ZXIyMzIiLAogICAgICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlR3byBGYWN0b3IgQXV0aGVudGljYXRpb24iLAogICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgiLAogICAgICAgICAgICAia2V5d29yZHMiOiBbCiAgICAgICAgICAgICAgICAiQXV0aGVudGljYXRpb24iLAogICAgICAgICAgICAgICAgIk1GQSIsCiAgICAgICAgICAgICAgICAiTXVsdGkgRmFjdG9yIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgICAgICAgICAgICJUd28gRmFjdG9yIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgICAgICAgICAgICJhdXRoZW50aWNhdG9yIiwKICAgICAgICAgICAgICAgICJhdXRoeSIsCiAgICAgICAgICAgICAgICAicGhwIiwKICAgICAgICAgICAgICAgICJ0ZmEiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzdXBwb3J0IjogewogICAgICAgICAgICAgICAgImlzc3VlcyI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9iVGhyZWUvVHdvRmFjdG9yQXV0aC9pc3N1ZXMiLAogICAgICAgICAgICAgICAgInNvdXJjZSI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9iVGhyZWUvVHdvRmFjdG9yQXV0aCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImZ1bmRpbmciOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3BheXBhbC5tZS9yb2JpaWkiLAogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImN1c3RvbSIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9iVGhyZWUiLAogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdGh1YiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImluc3RhbGwtcGF0aCI6ICIuLi9yb2J0aHJlZS90d29mYWN0b3JhdXRoIgogICAgICAgIH0KICAgIF0sCiAgICAiZGV2IjogZmFsc2UsCiAgICAiZGV2LXBhY2thZ2UtbmFtZXMiOiBbXQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/installed.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgcmV0dXJuIGFycmF5KAogICAgJ3Jvb3QnID0+IGFycmF5KAogICAgICAgICdwcmV0dHlfdmVyc2lvbicgPT4gJ2Rldi1tYWluJywKICAgICAgICAndmVyc2lvbicgPT4gJ2Rldi1tYWluJywKICAgICAgICAndHlwZScgPT4gJ2xpYnJhcnknLAogICAgICAgICdpbnN0YWxsX3BhdGgnID0+IF9fRElSX18gLiAnLy4uLy4uLycsCiAgICAgICAgJ2FsaWFzZXMnID0+IGFycmF5KCksCiAgICAgICAgJ3JlZmVyZW5jZScgPT4gJzU4NmE4NzdhZDhiYjQ1NDExZDAzZThmZmI3MDk5ZjQxNjJkM2M1ZjEnLAogICAgICAgICduYW1lJyA9PiAnX19yb290X18nLAogICAgICAgICdkZXYnID0+IGZhbHNlLAogICAgKSwKICAgICd2ZXJzaW9ucycgPT4gYXJyYXkoCiAgICAgICAgJ19fcm9vdF9fJyA9PiBhcnJheSgKICAgICAgICAgICAgJ3ByZXR0eV92ZXJzaW9uJyA9PiAnZGV2LW1haW4nLAogICAgICAgICAgICAndmVyc2lvbicgPT4gJ2Rldi1tYWluJywKICAgICAgICAgICAgJ3R5cGUnID0+ICdsaWJyYXJ5JywKICAgICAgICAgICAgJ2luc3RhbGxfcGF0aCcgPT4gX19ESVJfXyAuICcvLi4vLi4vJywKICAgICAgICAgICAgJ2FsaWFzZXMnID0+IGFycmF5KCksCiAgICAgICAgICAgICdyZWZlcmVuY2UnID0+ICc1ODZhODc3YWQ4YmI0NTQxMWQwM2U4ZmZiNzA5OWY0MTYyZDNjNWYxJywKICAgICAgICAgICAgJ2Rldl9yZXF1aXJlbWVudCcgPT4gZmFsc2UsCiAgICAgICAgKSwKICAgICAgICAncm9idGhyZWUvdHdvZmFjdG9yYXV0aCcgPT4gYXJyYXkoCiAgICAgICAgICAgICdwcmV0dHlfdmVyc2lvbicgPT4gJ3YyLjEuMCcsCiAgICAgICAgICAgICd2ZXJzaW9uJyA9PiAnMi4xLjAuMCcsCiAgICAgICAgICAgICd0eXBlJyA9PiAnbGlicmFyeScsCiAgICAgICAgICAgICdpbnN0YWxsX3BhdGgnID0+IF9fRElSX18gLiAnLy4uL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgnLAogICAgICAgICAgICAnYWxpYXNlcycgPT4gYXJyYXkoKSwKICAgICAgICAgICAgJ3JlZmVyZW5jZScgPT4gJ2FiOTNkZDQxY2VkNzgxOGVjZGE4M2EzN2MyNzQxZWUzOGJiNzJmYjcnLAogICAgICAgICAgICAnZGV2X3JlcXVpcmVtZW50JyA9PiBmYWxzZSwKICAgICAgICApLAogICAgKSwKKTsK]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/InstalledVersions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENvbXBvc2VyLgogKgogKiAoYykgTmlscyBBZGVybWFubiA8bmFkZXJtYW5AbmFkZXJtYW4uZGU+CiAqICAgICBKb3JkaSBCb2dnaWFubyA8ai5ib2dnaWFub0BzZWxkLmJlPgogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICovCgpuYW1lc3BhY2UgQ29tcG9zZXI7Cgp1c2UgQ29tcG9zZXJcQXV0b2xvYWRcQ2xhc3NMb2FkZXI7CnVzZSBDb21wb3NlclxTZW12ZXJcVmVyc2lvblBhcnNlcjsKCi8qKgogKiBUaGlzIGNsYXNzIGlzIGNvcGllZCBpbiBldmVyeSBDb21wb3NlciBpbnN0YWxsZWQgcHJvamVjdCBhbmQgYXZhaWxhYmxlIHRvIGFsbAogKgogKiBTZWUgYWxzbyBodHRwczovL2dldGNvbXBvc2VyLm9yZy9kb2MvMDctcnVudGltZS5tZCNpbnN0YWxsZWQtdmVyc2lvbnMKICoKICogVG8gcmVxdWlyZSBpdHMgcHJlc2VuY2UsIHlvdSBjYW4gcmVxdWlyZSBgY29tcG9zZXItcnVudGltZS1hcGkgXjIuMGAKICoKICogQGZpbmFsCiAqLwpjbGFzcyBJbnN0YWxsZWRWZXJzaW9ucwp7CiAgICAvKioKICAgICAqIEB2YXIgbWl4ZWRbXXxudWxsCiAgICAgKiBAcHNhbG0tdmFyIGFycmF5e3Jvb3Q6IGFycmF5e25hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCByZWZlcmVuY2U6IHN0cmluZywgcHJldHR5X3ZlcnNpb246IHN0cmluZywgYWxpYXNlczogc3RyaW5nW10sIGRldjogYm9vbCwgaW5zdGFsbF9wYXRoOiBzdHJpbmcsIHR5cGU6IHN0cmluZ30sIHZlcnNpb25zOiBhcnJheTxzdHJpbmcsIGFycmF5e2Rldl9yZXF1aXJlbWVudDogYm9vbCwgcHJldHR5X3ZlcnNpb24/OiBzdHJpbmcsIHZlcnNpb24/OiBzdHJpbmcsIGFsaWFzZXM/OiBzdHJpbmdbXSwgcmVmZXJlbmNlPzogc3RyaW5nLCByZXBsYWNlZD86IHN0cmluZ1tdLCBwcm92aWRlZD86IHN0cmluZ1tdLCBpbnN0YWxsX3BhdGg/OiBzdHJpbmcsIHR5cGU/OiBzdHJpbmd9Pn18YXJyYXl7fXxudWxsCiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljICRpbnN0YWxsZWQ7CgogICAgLyoqCiAgICAgKiBAdmFyIGJvb2x8bnVsbAogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyAkY2FuR2V0VmVuZG9yczsKCiAgICAvKioKICAgICAqIEB2YXIgYXJyYXlbXQogICAgICogQHBzYWxtLXZhciBhcnJheTxzdHJpbmcsIGFycmF5e3Jvb3Q6IGFycmF5e25hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCByZWZlcmVuY2U6IHN0cmluZywgcHJldHR5X3ZlcnNpb246IHN0cmluZywgYWxpYXNlczogc3RyaW5nW10sIGRldjogYm9vbCwgaW5zdGFsbF9wYXRoOiBzdHJpbmcsIHR5cGU6IHN0cmluZ30sIHZlcnNpb25zOiBhcnJheTxzdHJpbmcsIGFycmF5e2Rldl9yZXF1aXJlbWVudDogYm9vbCwgcHJldHR5X3ZlcnNpb24/OiBzdHJpbmcsIHZlcnNpb24/OiBzdHJpbmcsIGFsaWFzZXM/OiBzdHJpbmdbXSwgcmVmZXJlbmNlPzogc3RyaW5nLCByZXBsYWNlZD86IHN0cmluZ1tdLCBwcm92aWRlZD86IHN0cmluZ1tdLCBpbnN0YWxsX3BhdGg/OiBzdHJpbmcsIHR5cGU/OiBzdHJpbmd9Pn0+CiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljICRpbnN0YWxsZWRCeVZlbmRvciA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgcGFja2FnZSBuYW1lcyB3aGljaCBhcmUgcHJlc2VudCwgZWl0aGVyIGJ5IGJlaW5nIGluc3RhbGxlZCwgcmVwbGFjZWQgb3IgcHJvdmlkZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZ1tdCiAgICAgKiBAcHNhbG0tcmV0dXJuIGxpc3Q8c3RyaW5nPgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEluc3RhbGxlZFBhY2thZ2VzKCkKICAgIHsKICAgICAgICAkcGFja2FnZXMgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2ggKHNlbGY6OmdldEluc3RhbGxlZCgpIGFzICRpbnN0YWxsZWQpIHsKICAgICAgICAgICAgJHBhY2thZ2VzW10gPSBhcnJheV9rZXlzKCRpbnN0YWxsZWRbJ3ZlcnNpb25zJ10pOwogICAgICAgIH0KCiAgICAgICAgaWYgKDEgPT09IFxjb3VudCgkcGFja2FnZXMpKSB7CiAgICAgICAgICAgIHJldHVybiAkcGFja2FnZXNbMF07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gYXJyYXlfa2V5cyhhcnJheV9mbGlwKFxjYWxsX3VzZXJfZnVuY19hcnJheSgnYXJyYXlfbWVyZ2UnLCAkcGFja2FnZXMpKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgcGFja2FnZSBuYW1lcyB3aXRoIGEgc3BlY2lmaWMgdHlwZSBlLmcuICdsaWJyYXJ5JwogICAgICoKICAgICAqIEBwYXJhbSAgc3RyaW5nICAgJHR5cGUKICAgICAqIEByZXR1cm4gc3RyaW5nW10KICAgICAqIEBwc2FsbS1yZXR1cm4gbGlzdDxzdHJpbmc+CiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0SW5zdGFsbGVkUGFja2FnZXNCeVR5cGUoJHR5cGUpCiAgICB7CiAgICAgICAgJHBhY2thZ2VzQnlUeXBlID0gYXJyYXkoKTsKCiAgICAgICAgZm9yZWFjaCAoc2VsZjo6Z2V0SW5zdGFsbGVkKCkgYXMgJGluc3RhbGxlZCkgewogICAgICAgICAgICBmb3JlYWNoICgkaW5zdGFsbGVkWyd2ZXJzaW9ucyddIGFzICRuYW1lID0+ICRwYWNrYWdlKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHBhY2thZ2VbJ3R5cGUnXSkgJiYgJHBhY2thZ2VbJ3R5cGUnXSA9PT0gJHR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAkcGFja2FnZXNCeVR5cGVbXSA9ICRuYW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHBhY2thZ2VzQnlUeXBlOwogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHBhY2thZ2UgaXMgaW5zdGFsbGVkCiAgICAgKgogICAgICogVGhpcyBhbHNvIHJldHVybnMgdHJ1ZSBpZiB0aGUgcGFja2FnZSBuYW1lIGlzIHByb3ZpZGVkIG9yIHJlcGxhY2VkIGJ5IGFub3RoZXIgcGFja2FnZQogICAgICoKICAgICAqIEBwYXJhbSAgc3RyaW5nICRwYWNrYWdlTmFtZQogICAgICogQHBhcmFtICBib29sICAgJGluY2x1ZGVEZXZSZXF1aXJlbWVudHMKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzSW5zdGFsbGVkKCRwYWNrYWdlTmFtZSwgJGluY2x1ZGVEZXZSZXF1aXJlbWVudHMgPSB0cnVlKQogICAgewogICAgICAgIGZvcmVhY2ggKHNlbGY6OmdldEluc3RhbGxlZCgpIGFzICRpbnN0YWxsZWQpIHsKICAgICAgICAgICAgaWYgKGlzc2V0KCRpbnN0YWxsZWRbJ3ZlcnNpb25zJ11bJHBhY2thZ2VOYW1lXSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkaW5jbHVkZURldlJlcXVpcmVtZW50cyB8fCBlbXB0eSgkaW5zdGFsbGVkWyd2ZXJzaW9ucyddWyRwYWNrYWdlTmFtZV1bJ2Rldl9yZXF1aXJlbWVudCddKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHBhY2thZ2Ugc2F0aXNmaWVzIGEgdmVyc2lvbiBjb25zdHJhaW50CiAgICAgKgogICAgICogZS5nLiBJZiB5b3Ugd2FudCB0byBrbm93IHdoZXRoZXIgdmVyc2lvbiAyLjMrIG9mIHBhY2thZ2UgZm9vL2JhciBpcyBpbnN0YWxsZWQsIHlvdSB3b3VsZCBjYWxsOgogICAgICoKICAgICAqICAgQ29tcG9zZXJcSW5zdGFsbGVkVmVyc2lvbnM6OnNhdGlzZmllcyhuZXcgVmVyc2lvblBhcnNlciwgJ2Zvby9iYXInLCAnXjIuMycpCiAgICAgKgogICAgICogQHBhcmFtICBWZXJzaW9uUGFyc2VyICRwYXJzZXIgICAgICBJbnN0YWxsIGNvbXBvc2VyL3NlbXZlciB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGNsYXNzIGFuZCBmdW5jdGlvbmFsaXR5CiAgICAgKiBAcGFyYW0gIHN0cmluZyAgICAgICAgJHBhY2thZ2VOYW1lCiAgICAgKiBAcGFyYW0gIHN0cmluZ3xudWxsICAgJGNvbnN0cmFpbnQgIEEgdmVyc2lvbiBjb25zdHJhaW50IHRvIGNoZWNrIGZvciwgaWYgeW91IHBhc3Mgb25lIHlvdSBoYXZlIHRvIG1ha2Ugc3VyZSBjb21wb3Nlci9zZW12ZXIgaXMgcmVxdWlyZWQgYnkgeW91ciBwYWNrYWdlCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzYXRpc2ZpZXMoVmVyc2lvblBhcnNlciAkcGFyc2VyLCAkcGFja2FnZU5hbWUsICRjb25zdHJhaW50KQogICAgewogICAgICAgICRjb25zdHJhaW50ID0gJHBhcnNlci0+cGFyc2VDb25zdHJhaW50cygkY29uc3RyYWludCk7CiAgICAgICAgJHByb3ZpZGVkID0gJHBhcnNlci0+cGFyc2VDb25zdHJhaW50cyhzZWxmOjpnZXRWZXJzaW9uUmFuZ2VzKCRwYWNrYWdlTmFtZSkpOwoKICAgICAgICByZXR1cm4gJHByb3ZpZGVkLT5tYXRjaGVzKCRjb25zdHJhaW50KTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSB2ZXJzaW9uIGNvbnN0cmFpbnQgcmVwcmVzZW50aW5nIGFsbCB0aGUgcmFuZ2Uocykgd2hpY2ggYXJlIGluc3RhbGxlZCBmb3IgYSBnaXZlbiBwYWNrYWdlCiAgICAgKgogICAgICogSXQgaXMgZWFzaWVyIHRvIHVzZSB0aGlzIHZpYSBpc0luc3RhbGxlZCgpIHdpdGggdGhlICRjb25zdHJhaW50IGFyZ3VtZW50IGlmIHlvdSBuZWVkIHRvIGNoZWNrCiAgICAgKiB3aGV0aGVyIGEgZ2l2ZW4gdmVyc2lvbiBvZiBhIHBhY2thZ2UgaXMgaW5zdGFsbGVkLCBhbmQgbm90IGp1c3Qgd2hldGhlciBpdCBleGlzdHMKICAgICAqCiAgICAgKiBAcGFyYW0gIHN0cmluZyAkcGFja2FnZU5hbWUKICAgICAqIEByZXR1cm4gc3RyaW5nIFZlcnNpb24gY29uc3RyYWludCB1c2FibGUgd2l0aCBjb21wb3Nlci9zZW12ZXIKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRWZXJzaW9uUmFuZ2VzKCRwYWNrYWdlTmFtZSkKICAgIHsKICAgICAgICBmb3JlYWNoIChzZWxmOjpnZXRJbnN0YWxsZWQoKSBhcyAkaW5zdGFsbGVkKSB7CiAgICAgICAgICAgIGlmICghaXNzZXQoJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdKSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRyYW5nZXMgPSBhcnJheSgpOwogICAgICAgICAgICBpZiAoaXNzZXQoJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdWydwcmV0dHlfdmVyc2lvbiddKSkgewogICAgICAgICAgICAgICAgJHJhbmdlc1tdID0gJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdWydwcmV0dHlfdmVyc2lvbiddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdhbGlhc2VzJywgJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdKSkgewogICAgICAgICAgICAgICAgJHJhbmdlcyA9IGFycmF5X21lcmdlKCRyYW5nZXMsICRpbnN0YWxsZWRbJ3ZlcnNpb25zJ11bJHBhY2thZ2VOYW1lXVsnYWxpYXNlcyddKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmVwbGFjZWQnLCAkaW5zdGFsbGVkWyd2ZXJzaW9ucyddWyRwYWNrYWdlTmFtZV0pKSB7CiAgICAgICAgICAgICAgICAkcmFuZ2VzID0gYXJyYXlfbWVyZ2UoJHJhbmdlcywgJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdWydyZXBsYWNlZCddKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJvdmlkZWQnLCAkaW5zdGFsbGVkWyd2ZXJzaW9ucyddWyRwYWNrYWdlTmFtZV0pKSB7CiAgICAgICAgICAgICAgICAkcmFuZ2VzID0gYXJyYXlfbWVyZ2UoJHJhbmdlcywgJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdWydwcm92aWRlZCddKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIGltcGxvZGUoJyB8fCAnLCAkcmFuZ2VzKTsKICAgICAgICB9CgogICAgICAgIHRocm93IG5ldyBcT3V0T2ZCb3VuZHNFeGNlcHRpb24oJ1BhY2thZ2UgIicgLiAkcGFja2FnZU5hbWUgLiAnIiBpcyBub3QgaW5zdGFsbGVkJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcGFyYW0gIHN0cmluZyAgICAgICRwYWNrYWdlTmFtZQogICAgICogQHJldHVybiBzdHJpbmd8bnVsbCBJZiB0aGUgcGFja2FnZSBpcyBiZWluZyByZXBsYWNlZCBvciBwcm92aWRlZCBidXQgaXMgbm90IHJlYWxseSBpbnN0YWxsZWQsIG51bGwgd2lsbCBiZSByZXR1cm5lZCBhcyB2ZXJzaW9uLCB1c2Ugc2F0aXNmaWVzIG9yIGdldFZlcnNpb25SYW5nZXMgaWYgeW91IG5lZWQgdG8ga25vdyBpZiBhIGdpdmVuIHZlcnNpb24gaXMgcHJlc2VudAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldFZlcnNpb24oJHBhY2thZ2VOYW1lKQogICAgewogICAgICAgIGZvcmVhY2ggKHNlbGY6OmdldEluc3RhbGxlZCgpIGFzICRpbnN0YWxsZWQpIHsKICAgICAgICAgICAgaWYgKCFpc3NldCgkaW5zdGFsbGVkWyd2ZXJzaW9ucyddWyRwYWNrYWdlTmFtZV0pKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFpc3NldCgkaW5zdGFsbGVkWyd2ZXJzaW9ucyddWyRwYWNrYWdlTmFtZV1bJ3ZlcnNpb24nXSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdWyd2ZXJzaW9uJ107CiAgICAgICAgfQoKICAgICAgICB0aHJvdyBuZXcgXE91dE9mQm91bmRzRXhjZXB0aW9uKCdQYWNrYWdlICInIC4gJHBhY2thZ2VOYW1lIC4gJyIgaXMgbm90IGluc3RhbGxlZCcpOwogICAgfQoKICAgIC8qKgogICAgICogQHBhcmFtICBzdHJpbmcgICAgICAkcGFja2FnZU5hbWUKICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwgSWYgdGhlIHBhY2thZ2UgaXMgYmVpbmcgcmVwbGFjZWQgb3IgcHJvdmlkZWQgYnV0IGlzIG5vdCByZWFsbHkgaW5zdGFsbGVkLCBudWxsIHdpbGwgYmUgcmV0dXJuZWQgYXMgdmVyc2lvbiwgdXNlIHNhdGlzZmllcyBvciBnZXRWZXJzaW9uUmFuZ2VzIGlmIHlvdSBuZWVkIHRvIGtub3cgaWYgYSBnaXZlbiB2ZXJzaW9uIGlzIHByZXNlbnQKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRQcmV0dHlWZXJzaW9uKCRwYWNrYWdlTmFtZSkKICAgIHsKICAgICAgICBmb3JlYWNoIChzZWxmOjpnZXRJbnN0YWxsZWQoKSBhcyAkaW5zdGFsbGVkKSB7CiAgICAgICAgICAgIGlmICghaXNzZXQoJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdKSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghaXNzZXQoJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdWydwcmV0dHlfdmVyc2lvbiddKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAkaW5zdGFsbGVkWyd2ZXJzaW9ucyddWyRwYWNrYWdlTmFtZV1bJ3ByZXR0eV92ZXJzaW9uJ107CiAgICAgICAgfQoKICAgICAgICB0aHJvdyBuZXcgXE91dE9mQm91bmRzRXhjZXB0aW9uKCdQYWNrYWdlICInIC4gJHBhY2thZ2VOYW1lIC4gJyIgaXMgbm90IGluc3RhbGxlZCcpOwogICAgfQoKICAgIC8qKgogICAgICogQHBhcmFtICBzdHJpbmcgICAgICAkcGFja2FnZU5hbWUKICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwgSWYgdGhlIHBhY2thZ2UgaXMgYmVpbmcgcmVwbGFjZWQgb3IgcHJvdmlkZWQgYnV0IGlzIG5vdCByZWFsbHkgaW5zdGFsbGVkLCBudWxsIHdpbGwgYmUgcmV0dXJuZWQgYXMgcmVmZXJlbmNlCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0UmVmZXJlbmNlKCRwYWNrYWdlTmFtZSkKICAgIHsKICAgICAgICBmb3JlYWNoIChzZWxmOjpnZXRJbnN0YWxsZWQoKSBhcyAkaW5zdGFsbGVkKSB7CiAgICAgICAgICAgIGlmICghaXNzZXQoJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdKSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghaXNzZXQoJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdWydyZWZlcmVuY2UnXSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdWydyZWZlcmVuY2UnXTsKICAgICAgICB9CgogICAgICAgIHRocm93IG5ldyBcT3V0T2ZCb3VuZHNFeGNlcHRpb24oJ1BhY2thZ2UgIicgLiAkcGFja2FnZU5hbWUgLiAnIiBpcyBub3QgaW5zdGFsbGVkJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcGFyYW0gIHN0cmluZyAgICAgICRwYWNrYWdlTmFtZQogICAgICogQHJldHVybiBzdHJpbmd8bnVsbCBJZiB0aGUgcGFja2FnZSBpcyBiZWluZyByZXBsYWNlZCBvciBwcm92aWRlZCBidXQgaXMgbm90IHJlYWxseSBpbnN0YWxsZWQsIG51bGwgd2lsbCBiZSByZXR1cm5lZCBhcyBpbnN0YWxsIHBhdGguIFBhY2thZ2VzIG9mIHR5cGUgbWV0YXBhY2thZ2VzIGFsc28gaGF2ZSBhIG51bGwgaW5zdGFsbCBwYXRoLgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEluc3RhbGxQYXRoKCRwYWNrYWdlTmFtZSkKICAgIHsKICAgICAgICBmb3JlYWNoIChzZWxmOjpnZXRJbnN0YWxsZWQoKSBhcyAkaW5zdGFsbGVkKSB7CiAgICAgICAgICAgIGlmICghaXNzZXQoJGluc3RhbGxlZFsndmVyc2lvbnMnXVskcGFja2FnZU5hbWVdKSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBpc3NldCgkaW5zdGFsbGVkWyd2ZXJzaW9ucyddWyRwYWNrYWdlTmFtZV1bJ2luc3RhbGxfcGF0aCddKSA/ICRpbnN0YWxsZWRbJ3ZlcnNpb25zJ11bJHBhY2thZ2VOYW1lXVsnaW5zdGFsbF9wYXRoJ10gOiBudWxsOwogICAgICAgIH0KCiAgICAgICAgdGhyb3cgbmV3IFxPdXRPZkJvdW5kc0V4Y2VwdGlvbignUGFja2FnZSAiJyAuICRwYWNrYWdlTmFtZSAuICciIGlzIG5vdCBpbnN0YWxsZWQnKTsKICAgIH0KCiAgICAvKioKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqIEBwc2FsbS1yZXR1cm4gYXJyYXl7bmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIHJlZmVyZW5jZTogc3RyaW5nLCBwcmV0dHlfdmVyc2lvbjogc3RyaW5nLCBhbGlhc2VzOiBzdHJpbmdbXSwgZGV2OiBib29sLCBpbnN0YWxsX3BhdGg6IHN0cmluZywgdHlwZTogc3RyaW5nfQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldFJvb3RQYWNrYWdlKCkKICAgIHsKICAgICAgICAkaW5zdGFsbGVkID0gc2VsZjo6Z2V0SW5zdGFsbGVkKCk7CgogICAgICAgIHJldHVybiAkaW5zdGFsbGVkWzBdWydyb290J107CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSByYXcgaW5zdGFsbGVkLnBocCBkYXRhIGZvciBjdXN0b20gaW1wbGVtZW50YXRpb25zCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgVXNlIGdldEFsbFJhd0RhdGEoKSBpbnN0ZWFkIHdoaWNoIHJldHVybnMgYWxsIGRhdGFzZXRzIGZvciBhbGwgYXV0b2xvYWRlcnMgcHJlc2VudCBpbiB0aGUgcHJvY2Vzcy4gZ2V0UmF3RGF0YSBvbmx5IHJldHVybnMgdGhlIGZpcnN0IGRhdGFzZXQgbG9hZGVkLCB3aGljaCBtYXkgbm90IGJlIHdoYXQgeW91IGV4cGVjdC4KICAgICAqIEByZXR1cm4gYXJyYXlbXQogICAgICogQHBzYWxtLXJldHVybiBhcnJheXtyb290OiBhcnJheXtuYW1lOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgcmVmZXJlbmNlOiBzdHJpbmcsIHByZXR0eV92ZXJzaW9uOiBzdHJpbmcsIGFsaWFzZXM6IHN0cmluZ1tdLCBkZXY6IGJvb2wsIGluc3RhbGxfcGF0aDogc3RyaW5nLCB0eXBlOiBzdHJpbmd9LCB2ZXJzaW9uczogYXJyYXk8c3RyaW5nLCBhcnJheXtkZXZfcmVxdWlyZW1lbnQ6IGJvb2wsIHByZXR0eV92ZXJzaW9uPzogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nLCBhbGlhc2VzPzogc3RyaW5nW10sIHJlZmVyZW5jZT86IHN0cmluZywgcmVwbGFjZWQ/OiBzdHJpbmdbXSwgcHJvdmlkZWQ/OiBzdHJpbmdbXSwgaW5zdGFsbF9wYXRoPzogc3RyaW5nLCB0eXBlPzogc3RyaW5nfT59CiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0UmF3RGF0YSgpCiAgICB7CiAgICAgICAgQHRyaWdnZXJfZXJyb3IoJ2dldFJhd0RhdGEgb25seSByZXR1cm5zIHRoZSBmaXJzdCBkYXRhc2V0IGxvYWRlZCwgd2hpY2ggbWF5IG5vdCBiZSB3aGF0IHlvdSBleHBlY3QuIFVzZSBnZXRBbGxSYXdEYXRhKCkgaW5zdGVhZCB3aGljaCByZXR1cm5zIGFsbCBkYXRhc2V0cyBmb3IgYWxsIGF1dG9sb2FkZXJzIHByZXNlbnQgaW4gdGhlIHByb2Nlc3MuJywgRV9VU0VSX0RFUFJFQ0FURUQpOwoKICAgICAgICBpZiAobnVsbCA9PT0gc2VsZjo6JGluc3RhbGxlZCkgewogICAgICAgICAgICAvLyBvbmx5IHJlcXVpcmUgdGhlIGluc3RhbGxlZC5waHAgZmlsZSBpZiB0aGlzIGZpbGUgaXMgbG9hZGVkIGZyb20gaXRzIGR1bXBlZCBsb2NhdGlvbiwKICAgICAgICAgICAgLy8gYW5kIG5vdCBmcm9tIGl0cyBzb3VyY2UgbG9jYXRpb24gaW4gdGhlIGNvbXBvc2VyL2NvbXBvc2VyIHBhY2thZ2UsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vY29tcG9zZXIvY29tcG9zZXIvaXNzdWVzLzk5MzcKICAgICAgICAgICAgaWYgKHN1YnN0cihfX0RJUl9fLCAtOCwgMSkgIT09ICdDJykgewogICAgICAgICAgICAgICAgc2VsZjo6JGluc3RhbGxlZCA9IGluY2x1ZGUgX19ESVJfXyAuICcvaW5zdGFsbGVkLnBocCc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzZWxmOjokaW5zdGFsbGVkID0gYXJyYXkoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGY6OiRpbnN0YWxsZWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSByYXcgZGF0YSBvZiBhbGwgaW5zdGFsbGVkLnBocCB3aGljaCBhcmUgY3VycmVudGx5IGxvYWRlZCBmb3IgY3VzdG9tIGltcGxlbWVudGF0aW9ucwogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXlbXQogICAgICogQHBzYWxtLXJldHVybiBsaXN0PGFycmF5e3Jvb3Q6IGFycmF5e25hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCByZWZlcmVuY2U6IHN0cmluZywgcHJldHR5X3ZlcnNpb246IHN0cmluZywgYWxpYXNlczogc3RyaW5nW10sIGRldjogYm9vbCwgaW5zdGFsbF9wYXRoOiBzdHJpbmcsIHR5cGU6IHN0cmluZ30sIHZlcnNpb25zOiBhcnJheTxzdHJpbmcsIGFycmF5e2Rldl9yZXF1aXJlbWVudDogYm9vbCwgcHJldHR5X3ZlcnNpb24/OiBzdHJpbmcsIHZlcnNpb24/OiBzdHJpbmcsIGFsaWFzZXM/OiBzdHJpbmdbXSwgcmVmZXJlbmNlPzogc3RyaW5nLCByZXBsYWNlZD86IHN0cmluZ1tdLCBwcm92aWRlZD86IHN0cmluZ1tdLCBpbnN0YWxsX3BhdGg/OiBzdHJpbmcsIHR5cGU/OiBzdHJpbmd9Pn0+CiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0QWxsUmF3RGF0YSgpCiAgICB7CiAgICAgICAgcmV0dXJuIHNlbGY6OmdldEluc3RhbGxlZCgpOwogICAgfQoKICAgIC8qKgogICAgICogTGV0cyB5b3UgcmVsb2FkIHRoZSBzdGF0aWMgYXJyYXkgZnJvbSBhbm90aGVyIGZpbGUKICAgICAqCiAgICAgKiBUaGlzIGlzIG9ubHkgdXNlZnVsIGZvciBjb21wbGV4IGludGVncmF0aW9ucyBpbiB3aGljaCBhIHByb2plY3QgbmVlZHMgdG8gdXNlCiAgICAgKiB0aGlzIGNsYXNzIGJ1dCB0aGVuIGFsc28gbmVlZHMgdG8gZXhlY3V0ZSBhbm90aGVyIHByb2plY3QncyBhdXRvbG9hZGVyIGluIHByb2Nlc3MsCiAgICAgKiBhbmQgd2FudHMgdG8gZW5zdXJlIGJvdGggcHJvamVjdHMgaGF2ZSBhY2Nlc3MgdG8gdGhlaXIgdmVyc2lvbiBvZiBpbnN0YWxsZWQucGhwLgogICAgICoKICAgICAqIEEgdHlwaWNhbCBjYXNlIHdvdWxkIGJlIFBIUFVuaXQsIHdoZXJlIGl0IHdvdWxkIG5lZWQgdG8gbWFrZSBzdXJlIGl0IHJlYWRzIGFsbAogICAgICogdGhlIGRhdGEgaXQgbmVlZHMgZnJvbSB0aGlzIGNsYXNzLCB0aGVuIGNhbGwgcmVsb2FkKCkgd2l0aAogICAgICogYHJlcXVpcmUgJENXRC92ZW5kb3IvY29tcG9zZXIvaW5zdGFsbGVkLnBocGAgKG9yIHNpbWlsYXIpIGFzIGlucHV0IHRvIG1ha2Ugc3VyZQogICAgICogdGhlIHByb2plY3QgaW4gd2hpY2ggaXQgcnVucyBjYW4gdGhlbiBhbHNvIHVzZSB0aGlzIGNsYXNzIHNhZmVseSwgd2l0aG91dAogICAgICogaW50ZXJmZXJlbmNlIGJldHdlZW4gUEhQVW5pdCdzIGRlcGVuZGVuY2llcyBhbmQgdGhlIHByb2plY3QncyBkZXBlbmRlbmNpZXMuCiAgICAgKgogICAgICogQHBhcmFtICBhcnJheVtdICRkYXRhIEEgdmVuZG9yL2NvbXBvc2VyL2luc3RhbGxlZC5waHAgZGF0YSBzZXQKICAgICAqIEByZXR1cm4gdm9pZAogICAgICoKICAgICAqIEBwc2FsbS1wYXJhbSBhcnJheXtyb290OiBhcnJheXtuYW1lOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgcmVmZXJlbmNlOiBzdHJpbmcsIHByZXR0eV92ZXJzaW9uOiBzdHJpbmcsIGFsaWFzZXM6IHN0cmluZ1tdLCBkZXY6IGJvb2wsIGluc3RhbGxfcGF0aDogc3RyaW5nLCB0eXBlOiBzdHJpbmd9LCB2ZXJzaW9uczogYXJyYXk8c3RyaW5nLCBhcnJheXtkZXZfcmVxdWlyZW1lbnQ6IGJvb2wsIHByZXR0eV92ZXJzaW9uPzogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nLCBhbGlhc2VzPzogc3RyaW5nW10sIHJlZmVyZW5jZT86IHN0cmluZywgcmVwbGFjZWQ/OiBzdHJpbmdbXSwgcHJvdmlkZWQ/OiBzdHJpbmdbXSwgaW5zdGFsbF9wYXRoPzogc3RyaW5nLCB0eXBlPzogc3RyaW5nfT59ICRkYXRhCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVsb2FkKCRkYXRhKQogICAgewogICAgICAgIHNlbGY6OiRpbnN0YWxsZWQgPSAkZGF0YTsKICAgICAgICBzZWxmOjokaW5zdGFsbGVkQnlWZW5kb3IgPSBhcnJheSgpOwogICAgfQoKICAgIC8qKgogICAgICogQHJldHVybiBhcnJheVtdCiAgICAgKiBAcHNhbG0tcmV0dXJuIGxpc3Q8YXJyYXl7cm9vdDogYXJyYXl7bmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIHJlZmVyZW5jZTogc3RyaW5nLCBwcmV0dHlfdmVyc2lvbjogc3RyaW5nLCBhbGlhc2VzOiBzdHJpbmdbXSwgZGV2OiBib29sLCBpbnN0YWxsX3BhdGg6IHN0cmluZywgdHlwZTogc3RyaW5nfSwgdmVyc2lvbnM6IGFycmF5PHN0cmluZywgYXJyYXl7ZGV2X3JlcXVpcmVtZW50OiBib29sLCBwcmV0dHlfdmVyc2lvbj86IHN0cmluZywgdmVyc2lvbj86IHN0cmluZywgYWxpYXNlcz86IHN0cmluZ1tdLCByZWZlcmVuY2U/OiBzdHJpbmcsIHJlcGxhY2VkPzogc3RyaW5nW10sIHByb3ZpZGVkPzogc3RyaW5nW10sIGluc3RhbGxfcGF0aD86IHN0cmluZywgdHlwZT86IHN0cmluZ30+fT4KICAgICAqLwogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZ2V0SW5zdGFsbGVkKCkKICAgIHsKICAgICAgICBpZiAobnVsbCA9PT0gc2VsZjo6JGNhbkdldFZlbmRvcnMpIHsKICAgICAgICAgICAgc2VsZjo6JGNhbkdldFZlbmRvcnMgPSBtZXRob2RfZXhpc3RzKCdDb21wb3NlclxBdXRvbG9hZFxDbGFzc0xvYWRlcicsICdnZXRSZWdpc3RlcmVkTG9hZGVycycpOwogICAgICAgIH0KCiAgICAgICAgJGluc3RhbGxlZCA9IGFycmF5KCk7CgogICAgICAgIGlmIChzZWxmOjokY2FuR2V0VmVuZG9ycykgewogICAgICAgICAgICBmb3JlYWNoIChDbGFzc0xvYWRlcjo6Z2V0UmVnaXN0ZXJlZExvYWRlcnMoKSBhcyAkdmVuZG9yRGlyID0+ICRsb2FkZXIpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokaW5zdGFsbGVkQnlWZW5kb3JbJHZlbmRvckRpcl0pKSB7CiAgICAgICAgICAgICAgICAgICAgJGluc3RhbGxlZFtdID0gc2VsZjo6JGluc3RhbGxlZEJ5VmVuZG9yWyR2ZW5kb3JEaXJdOwogICAgICAgICAgICAgICAgfSBlbHNlaWYgKGlzX2ZpbGUoJHZlbmRvckRpci4nL2NvbXBvc2VyL2luc3RhbGxlZC5waHAnKSkgewogICAgICAgICAgICAgICAgICAgICRpbnN0YWxsZWRbXSA9IHNlbGY6OiRpbnN0YWxsZWRCeVZlbmRvclskdmVuZG9yRGlyXSA9IHJlcXVpcmUgJHZlbmRvckRpci4nL2NvbXBvc2VyL2luc3RhbGxlZC5waHAnOwogICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBzZWxmOjokaW5zdGFsbGVkICYmIHN0cnRyKCR2ZW5kb3JEaXIuJy9jb21wb3NlcicsICdcXCcsICcvJykgPT09IHN0cnRyKF9fRElSX18sICdcXCcsICcvJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZjo6JGluc3RhbGxlZCA9ICRpbnN0YWxsZWRbY291bnQoJGluc3RhbGxlZCkgLSAxXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChudWxsID09PSBzZWxmOjokaW5zdGFsbGVkKSB7CiAgICAgICAgICAgIC8vIG9ubHkgcmVxdWlyZSB0aGUgaW5zdGFsbGVkLnBocCBmaWxlIGlmIHRoaXMgZmlsZSBpcyBsb2FkZWQgZnJvbSBpdHMgZHVtcGVkIGxvY2F0aW9uLAogICAgICAgICAgICAvLyBhbmQgbm90IGZyb20gaXRzIHNvdXJjZSBsb2NhdGlvbiBpbiB0aGUgY29tcG9zZXIvY29tcG9zZXIgcGFja2FnZSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jb21wb3Nlci9jb21wb3Nlci9pc3N1ZXMvOTkzNwogICAgICAgICAgICBpZiAoc3Vic3RyKF9fRElSX18sIC04LCAxKSAhPT0gJ0MnKSB7CiAgICAgICAgICAgICAgICBzZWxmOjokaW5zdGFsbGVkID0gcmVxdWlyZSBfX0RJUl9fIC4gJy9pbnN0YWxsZWQucGhwJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHNlbGY6OiRpbnN0YWxsZWQgPSBhcnJheSgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRpbnN0YWxsZWRbXSA9IHNlbGY6OiRpbnN0YWxsZWQ7CgogICAgICAgIHJldHVybiAkaW5zdGFsbGVkOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CkNvcHlyaWdodCAoYykgTmlscyBBZGVybWFubiwgSm9yZGkgQm9nZ2lhbm8KClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQKdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdBUkUuCgo=]]></data>
	</file>
	<file>
	  <filename>/vendor/composer/platform_check.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIHBsYXRmb3JtX2NoZWNrLnBocCBAZ2VuZXJhdGVkIGJ5IENvbXBvc2VyCgokaXNzdWVzID0gYXJyYXkoKTsKCmlmICghKFBIUF9WRVJTSU9OX0lEID49IDgwMTAwKSkgewogICAgJGlzc3Vlc1tdID0gJ1lvdXIgQ29tcG9zZXIgZGVwZW5kZW5jaWVzIHJlcXVpcmUgYSBQSFAgdmVyc2lvbiAiPj0gOC4xLjAiLiBZb3UgYXJlIHJ1bm5pbmcgJyAuIFBIUF9WRVJTSU9OIC4gJy4nOwp9CgppZiAoJGlzc3VlcykgewogICAgaWYgKCFoZWFkZXJzX3NlbnQoKSkgewogICAgICAgIGhlYWRlcignSFRUUC8xLjEgNTAwIEludGVybmFsIFNlcnZlciBFcnJvcicpOwogICAgfQogICAgaWYgKCFpbmlfZ2V0KCdkaXNwbGF5X2Vycm9ycycpKSB7CiAgICAgICAgaWYgKFBIUF9TQVBJID09PSAnY2xpJyB8fCBQSFBfU0FQSSA9PT0gJ3BocGRiZycpIHsKICAgICAgICAgICAgZndyaXRlKFNUREVSUiwgJ0NvbXBvc2VyIGRldGVjdGVkIGlzc3VlcyBpbiB5b3VyIHBsYXRmb3JtOicgLiBQSFBfRU9MLlBIUF9FT0wgLiBpbXBsb2RlKFBIUF9FT0wsICRpc3N1ZXMpIC4gUEhQX0VPTC5QSFBfRU9MKTsKICAgICAgICB9IGVsc2VpZiAoIWhlYWRlcnNfc2VudCgpKSB7CiAgICAgICAgICAgIGVjaG8gJ0NvbXBvc2VyIGRldGVjdGVkIGlzc3VlcyBpbiB5b3VyIHBsYXRmb3JtOicgLiBQSFBfRU9MLlBIUF9FT0wgLiBzdHJfcmVwbGFjZSgnWW91IGFyZSBydW5uaW5nICcuUEhQX1ZFUlNJT04uJy4nLCAnJywgaW1wbG9kZShQSFBfRU9MLCAkaXNzdWVzKSkgLiBQSFBfRU9MLlBIUF9FT0w7CiAgICAgICAgfQogICAgfQogICAgdHJpZ2dlcl9lcnJvcigKICAgICAgICAnQ29tcG9zZXIgZGV0ZWN0ZWQgaXNzdWVzIGluIHlvdXIgcGxhdGZvcm06ICcgLiBpbXBsb2RlKCcgJywgJGlzc3VlcyksCiAgICAgICAgRV9VU0VSX0VSUk9SCiAgICApOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/.php-cs-fixer.dist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CgovKioKICogUEhQLUNTLUZpeGVyIGNvbmZpZyBmb3IgUm9iVGhyZWUvVHdvRmFjdG9yQXV0aAogKi8KJGZpbmRlciA9IFBocENzRml4ZXJcRmluZGVyOjpjcmVhdGUoKQogICAgLT5uYW1lKCcvXC5waHB8XC5waHAuZGlzdCQvJykKICAgIC0+ZXhjbHVkZSgnYnVpbGQnKQogICAgLT5leGNsdWRlKCdkZW1vJykKICAgIC0+ZXhjbHVkZSgnZG9jcycpCiAgICAtPmluKFsnbGliJywgJ3Rlc3RzJywgJ3Rlc3RzRGVwZW5kZW5jeSddKQo7CgokY29uZmlnID0gbmV3IFBocENzRml4ZXJcQ29uZmlnKCk7CgpyZXR1cm4gJGNvbmZpZy0+c2V0UnVsZXMoYXJyYXkoCiAgICAnQFBTUjInID0+IHRydWUsCiAgICAnQFBTUjEyJyA9PiB0cnVlLAogICAgJ0BQSFA4Mk1pZ3JhdGlvbicgPT4gdHJ1ZSwKICAgICdhcnJheV9zeW50YXgnID0+IFsnc3ludGF4JyA9PiAnbG9uZyddLAogICAgJ2NsYXNzX2F0dHJpYnV0ZXNfc2VwYXJhdGlvbicgPT4gdHJ1ZSwKICAgICdkZWNsYXJlX3N0cmljdF90eXBlcycgPT4gdHJ1ZSwKICAgICdkaXJfY29uc3RhbnQnID0+IHRydWUsCiAgICAnaXNfbnVsbCcgPT4gdHJ1ZSwKICAgICdub19ob21vZ2x5cGhfbmFtZXMnID0+IHRydWUsCiAgICAnbm9fbnVsbF9wcm9wZXJ0eV9pbml0aWFsaXphdGlvbicgPT4gdHJ1ZSwKICAgICdub19waHA0X2NvbnN0cnVjdG9yJyA9PiB0cnVlLAogICAgJ25vX3VudXNlZF9pbXBvcnRzJyA9PiB0cnVlLAogICAgJ25vX3VzZWxlc3NfZWxzZScgPT4gdHJ1ZSwKICAgICdub25fcHJpbnRhYmxlX2NoYXJhY3RlcicgPT4gdHJ1ZSwKICAgICdvcmRlcmVkX2ltcG9ydHMnID0+IHRydWUsCiAgICAnb3JkZXJlZF9jbGFzc19lbGVtZW50cycgPT4gdHJ1ZSwKICAgICdwaHBfdW5pdF9jb25zdHJ1Y3QnID0+IHRydWUsCiAgICAncG93X3RvX2V4cG9uZW50aWF0aW9uJyA9PiB0cnVlLAogICAgJ3Bzcl9hdXRvbG9hZGluZycgPT4gdHJ1ZSwKICAgICdyYW5kb21fYXBpX21pZ3JhdGlvbicgPT4gdHJ1ZSwKICAgICdyZXR1cm5fYXNzaWdubWVudCcgPT4gdHJ1ZSwKICAgICdzZWxmX2FjY2Vzc29yJyA9PiB0cnVlLAogICAgJ3NlbWljb2xvbl9hZnRlcl9pbnN0cnVjdGlvbicgPT4gdHJ1ZSwKICAgICdzaG9ydF9zY2FsYXJfY2FzdCcgPT4gdHJ1ZSwKICAgICdzaW1wbGlmaWVkX251bGxfcmV0dXJuJyA9PiB0cnVlLAogICAgJ3NpbmdsZV9jbGFzc19lbGVtZW50X3Blcl9zdGF0ZW1lbnQnID0+IHRydWUsCiAgICAnc2luZ2xlX2xpbmVfY29tbWVudF9zdHlsZScgPT4gdHJ1ZSwKICAgICdzaW5nbGVfcXVvdGUnID0+IHRydWUsCiAgICAnc3BhY2VfYWZ0ZXJfc2VtaWNvbG9uJyA9PiB0cnVlLAogICAgJ3N0YW5kYXJkaXplX25vdF9lcXVhbHMnID0+IHRydWUsCiAgICAnc3RyaWN0X3BhcmFtJyA9PiB0cnVlLAogICAgJ3Rlcm5hcnlfb3BlcmF0b3Jfc3BhY2VzJyA9PiB0cnVlLAogICAgJ3RyYWlsaW5nX2NvbW1hX2luX211bHRpbGluZScgPT4gdHJ1ZSwKICAgICd0cmltX2FycmF5X3NwYWNlcycgPT4gdHJ1ZSwKICAgICd1bmFyeV9vcGVyYXRvcl9zcGFjZXMnID0+IHRydWUsCiAgICAnZ2xvYmFsX25hbWVzcGFjZV9pbXBvcnQnID0+IFsKICAgICAgICAnaW1wb3J0X2NsYXNzZXMnID0+IHRydWUsCiAgICAgICAgJ2ltcG9ydF9mdW5jdGlvbnMnID0+IHRydWUsCiAgICAgICAgJ2ltcG9ydF9jb25zdGFudHMnID0+IHRydWUsCiAgICBdLAopKQogICAgLT5zZXRGaW5kZXIoJGZpbmRlcikKICAgIC0+c2V0Umlza3lBbGxvd2VkKHRydWUpCjsK]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/CHANGELOG.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyBSb2JUaHJlZVxUd29GYWN0b3JBdXRoIGNoYW5nZWxvZwoKIyBWZXJzaW9uIDIueAoKIyMgQnJlYWtpbmcgY2hhbmdlcwoKIyMjIFBIUCBWZXJzaW9uCgpWZXJzaW9uIDIueCByZXF1aXJlcyBhdCBsZWFzdCBQSFAgOC4xLgoKIyMjIENvbnN0cnVjdG9yIHNpZ25hdHVyZQoKV2l0aCB2ZXJzaW9uIDIueCwgdGhlIGBhbGdvcml0aG1gIHBhcmFtZXRlciBvZiBgUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoYCBjb25zdHJ1Y3RvciBpcyBub3cgYW4gYGVudW1gLgoKT24gdmVyc2lvbiAxLng6Cgp+fn5waHAKdXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aDsKCiRsaWIgPSBuZXcgVHdvRmFjdG9yQXV0aCgnaXNzdWVyLW5hbWUnLCA2LCAzMCwgJ3NoYTEnKTsKfn5+CgpPbiB2ZXJzaW9uIDIueCwgc2ltcGxlIGNoYW5nZSB0aGUgYWxnb3JpdGhtIGZyb20gYSBgc3RyaW5nYCB0byB0aGUgY29ycmVjdCBgZW51bWA6Cgp+fn5waHAKdXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aDsKdXNlIFJvYlRocmVlXEF1dGhcQWxnb3JpdGhtOwoKJGxpYiA9IG5ldyBUd29GYWN0b3JBdXRoKCdpc3N1ZXItbmFtZScsIDYsIDMwLCBBbGdvcml0aG06OlNoYTEpOwp+fn4KClNlZSB0aGUgW0FsZ29yaXRobS5waHBdKC4vbGliL0FsZ29yaXRobS5waHApIGZpbGUgdG8gc2VlIGF2YWlsYWJsZSBhbGdvcml0aG1zLgo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/composer.json</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ewogICAgIm5hbWUiOiAicm9idGhyZWUvdHdvZmFjdG9yYXV0aCIsCiAgICAiZGVzY3JpcHRpb24iOiAiVHdvIEZhY3RvciBBdXRoZW50aWNhdGlvbiIsCiAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICJrZXl3b3JkcyI6IFsgIkF1dGhlbnRpY2F0aW9uIiwgIlR3byBGYWN0b3IgQXV0aGVudGljYXRpb24iLCAiTXVsdGkgRmFjdG9yIEF1dGhlbnRpY2F0aW9uIiwgIlRGQSIsICJNRkEiLCAiUEhQIiwgIkF1dGhlbnRpY2F0b3IiLCAiQXV0aHkiIF0sCiAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgiLAogICAgImxpY2Vuc2UiOiAiTUlUIiwKICAgICJhdXRob3JzIjogWwogICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiUm9iIEphbnNzZW4iLAogICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3JvYmlpaS5tZSIsCiAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiTmljb2xhcyBDQVJQaSIsCiAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vTmljb2xhc0NBUlBpIiwKICAgICAgICAgICAgInJvbGUiOiAiRGV2ZWxvcGVyIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJXaWxsIFBvd2VyIiwKICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aWxscG93ZXIyMzIiLAogICAgICAgICAgICAicm9sZSI6ICJEZXZlbG9wZXIiCiAgICAgICAgfQogICAgXSwKICAgICJzdXBwb3J0IjogewogICAgICAgICJpc3N1ZXMiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvaXNzdWVzIiwKICAgICAgICAic291cmNlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoIgogICAgfSwKICAgICJyZXF1aXJlIjogewogICAgICAgICJwaHAiOiAiPj04LjEuMCIKICAgIH0sCiAgICAicmVxdWlyZS1kZXYiOiB7CiAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJeOSIsCiAgICAgICAgImZyaWVuZHNvZnBocC9waHAtY3MtZml4ZXIiOiAiXjMuMTMiLAogICAgICAgICJwaHBzdGFuL3BocHN0YW4iOiAiXjEuOSIKICAgIH0sCiAgICAic3VnZ2VzdCI6IHsKICAgICAgICAiYmFjb24vYmFjb24tcXItY29kZSI6ICJOZWVkZWQgZm9yIEJhY29uUXJDb2RlUHJvdmlkZXIgcHJvdmlkZXIiLAogICAgICAgICJlbmRyb2lkL3FyLWNvZGUiOiAiTmVlZGVkIGZvciBFbmRyb2lkUXJDb2RlUHJvdmlkZXIiCiAgICB9LAogICAgImF1dG9sb2FkIjogewogICAgICAgICJwc3ItNCI6IHsKICAgICAgICAgICAgIlJvYlRocmVlXFxBdXRoXFwiOiAibGliIgogICAgICAgIH0KICAgIH0sCiAgICAiYXV0b2xvYWQtZGV2IjogewogICAgICAgICJwc3ItNCI6IHsKICAgICAgICAgICAgIlRlc3RzXFwiOiAidGVzdHMvIgogICAgICAgIH0KICAgIH0sCiAgICAic2NyaXB0cyI6IHsKICAgICAgICAicGhwc3RhbiI6IFsKICAgICAgICAgICAgInBocHN0YW4gYW5hbHl6ZSAtLXhkZWJ1ZyBsaWIgdGVzdHMgdGVzdHNEZXBlbmRlbmN5IgogICAgICAgIF0sCiAgICAgICAgImxpbnQiOiBbCiAgICAgICAgICAgICJwaHAtY3MtZml4ZXIgZml4IC12IgogICAgICAgIF0sCiAgICAgICAgImxpbnQtY2kiOiBbCiAgICAgICAgICAgICJQSFBfQ1NfRklYRVJfSUdOT1JFX0VOVj0xIHBocC1jcy1maXhlciBmaXggLXYgLS1kcnktcnVuIC0tc3RvcC1vbi12aW9sYXRpb24iCiAgICAgICAgXSwKICAgICAgICAidGVzdCI6IFsKICAgICAgICAgICAgIlhERUJVR19NT0RFPWNvdmVyYWdlIHBocHVuaXQiCiAgICAgICAgXQogICAgfSwKICAgICJhcmNoaXZlIjogewogICAgICAgICJleGNsdWRlIjogWwogICAgICAgICAgICAiLy5naXRodWIvIiwKICAgICAgICAgICAgIi9kZW1vLyIsCiAgICAgICAgICAgICIvZG9jcy8iLAogICAgICAgICAgICAiL3Rlc3RzLyIsCiAgICAgICAgICAgICIvdGVzdHNEZXBlbmRlbmN5LyIsCiAgICAgICAgICAgICIvLmdpdGlnbm9yZSIsCiAgICAgICAgICAgICIvbG9nby5wbmciLAogICAgICAgICAgICAiL211bHRpZmFjdG9yYXV0aGZvcmV2ZXJ5b25lLnBuZyIsCiAgICAgICAgICAgICIvcGhwdW5pdC54bWwiLAogICAgICAgICAgICAiL1R3b0ZhY3RvckF1dGgucGhwcHJvaiIsCiAgICAgICAgICAgICIvVHdvRmFjdG9yQXV0aC5zbG4iCiAgICAgICAgXQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/demo/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/demo/demo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDx0aXRsZT5EZW1vPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxvbD4KICAgICAgICA8P3BocAogICAgICAgICAgICAvLyBpbiBwcmFjdGljZSB5b3Ugd291bGQgcmVxdWlyZSB0aGUgY29tcG9zZXIgbG9hZGVyIGlmIGl0IHdhcyBub3QgYWxyZWFkeSBwYXJ0IG9mIHlvdXIgZnJhbWV3b3JrIG9yIHByb2plY3QKICAgICAgICAgICAgc3BsX2F1dG9sb2FkX3JlZ2lzdGVyKGZ1bmN0aW9uICgkY2xhc3NOYW1lKSB7CiAgICAgICAgICAgICAgICBpbmNsdWRlX29uY2Ugc3RyX3JlcGxhY2UoYXJyYXkoJ1JvYlRocmVlXFxBdXRoJywgJ1xcJyksIGFycmF5KF9fRElSX18uJy8uLi9saWInLCAnLycpLCAkY2xhc3NOYW1lKSAuICcucGhwJzsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBzdWJzdGl0dXRlIHlvdXIgY29tcGFueSBvciBhcHAgbmFtZSBoZXJlCiAgICAgICAgICAgICR0ZmEgPSBuZXcgUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoKCdSb2JUaHJlZSBUd29GYWN0b3JBdXRoJyk7CiAgICAgICAgPz4KICAgICAgICA8bGk+Rmlyc3QgY3JlYXRlIGEgc2VjcmV0IGFuZCBhc3NvY2lhdGUgaXQgd2l0aCBhIHVzZXI8L2xpPgogICAgICAgIDw/cGhwCiAgICAgICAgICAgICRzZWNyZXQgPSAkdGZhLT5jcmVhdGVTZWNyZXQoKTsKICAgICAgICA/PgogICAgICAgIDxsaT4KICAgICAgICAgICAgTmV4dCBjcmVhdGUgYSBRUiBjb2RlIGFuZCBsZXQgdGhlIHVzZXIgc2NhbiBpdDo8YnI+CiAgICAgICAgICAgIDxpbWcgc3JjPSI8P3BocCBlY2hvICR0ZmEtPmdldFFSQ29kZUltYWdlQXNEYXRhVXJpKCdEZW1vJywgJHNlY3JldCk7ID8+Ij48YnI+CiAgICAgICAgICAgIC4uLm9yIGRpc3BsYXkgdGhlIHNlY3JldCB0byB0aGUgdXNlciBmb3IgbWFudWFsIGVudHJ5OgogICAgICAgICAgICA8P3BocCBlY2hvIGNodW5rX3NwbGl0KCRzZWNyZXQsIDQsICcgJyk7ID8+CiAgICAgICAgPC9saT4KICAgICAgICA8P3BocAogICAgICAgICAgICAkY29kZSA9ICR0ZmEtPmdldENvZGUoJHNlY3JldCk7CiAgICAgICAgPz4KICAgICAgICA8bGk+TmV4dCwgaGF2ZSB0aGUgdXNlciB2ZXJpZnkgdGhlIGNvZGU7IGF0IHRoaXMgdGltZSB0aGUgY29kZSBkaXNwbGF5ZWQgYnkgYSAyRkEtYXBwIHdvdWxkIGJlOiA8c3BhbiBzdHlsZT0iY29sb3I6IzAwYyI+PD9waHAgZWNobyAkY29kZTsgPz48L3NwYW4+IChidXQgdGhhdCBjaGFuZ2VzIHBlcmlvZGljYWxseSk8L2xpPgogICAgICAgIDxsaT5XaGVuIHRoZSBjb2RlIGNoZWNrcyBvdXQsIDJGQSBjYW4gYmUgLyBpcyBlbmFibGVkOyBzdG9yZSAoZW5jcnlwdGVkPykgc2VjcmV0IHdpdGggdXNlciBhbmQgaGF2ZSB0aGUgdXNlciB2ZXJpZnkgYSBjb2RlIGVhY2ggdGltZSBhIG5ldyBzZXNzaW9uIGlzIHN0YXJ0ZWQuPC9saT4KICAgICAgICA8bGk+CiAgICAgICAgICAgIFdoZW4gYWZvcmVtZW50aW9uZWQgY29kZSAoPD9waHAgZWNobyAkY29kZTsgPz4pIHdhcyBlbnRlcmVkLCB0aGUgcmVzdWx0IHdvdWxkIGJlOgogICAgICAgICAgICA8P3BocCBpZiAoJHRmYS0+dmVyaWZ5Q29kZSgkc2VjcmV0LCAkY29kZSkgPT09IHRydWUpIHsgPz4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjojMGMwIj5PSzwvc3Bhbj4KICAgICAgICAgICAgPD9waHAgfSBlbHNlIHsgPz4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjojYzAwIj5GQUlMPC9zcGFuPgogICAgICAgICAgICA8P3BocCB9ID8+CiAgICAgICAgPC9saT4KICAgIDwvb2w+CiAgICA8cD5Ob3RlOiBNYWtlIHN1cmUgeW91ciBzZXJ2ZXItdGltZSBpcyA8YSBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL05ldHdvcmtfVGltZV9Qcm90b2NvbCI+TlRQLXN5bmNlZDwvYT4hIERlcGVuZGluZyBvbiB0aGUgJGRpc2NyZXBhbmN5IGFsbG93ZWQgeW91ciB0aW1lIGNhbm5vdCBkcmlmdCB0b28gbXVjaCBmcm9tIHRoZSB1c2VycycgdGltZSE8L3A+CiAgICA8P3BocAogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR0ZmEtPmVuc3VyZUNvcnJlY3RUaW1lKCk7CiAgICAgICAgICAgIGVjaG8gJ1lvdXIgaG9zdHMgdGltZSBzZWVtcyB0byBiZSBjb3JyZWN0IC8gd2l0aGluIG1hcmdpbic7CiAgICAgICAgfSBjYXRjaCAoUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoRXhjZXB0aW9uICRleCkgewogICAgICAgICAgICBlY2hvICc8Yj5XYXJuaW5nOjwvYj4gWW91ciBob3N0cyB0aW1lIHNlZW1zIHRvIGJlIG9mZjogJyAuICRleC0+Z2V0TWVzc2FnZSgpOwogICAgICAgIH0KICAgID8+CjwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/assets/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/assets/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/assets/css/style.scss</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCi0tLQoKQGltcG9ydCAie3sgc2l0ZS50aGVtZSB9fSI7CgovLyB1bmRvIHNvbWUgb2YgdGhlIHRoZW1lIHRvIGFsbG93IGNvZGUgc2FtcGxlcyB0byBiZSB3aWRlcgpoZWFkZXIgewoJcGFkZGluZy1yaWdodDogMDsKfQpAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYxcHgpIHsKCWhlYWRlciB7CgkJYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTsKCQlib3JkZXItcmFkaXVzOiA1cHg7CgkJbWFyZ2luLWJvdHRvbTogMzBweDsKCQltYXJnaW4tcmlnaHQ6IDMwcHg7CgkJcGFkZGluZy10b3A6IDIwcHg7CgkJcG9zaXRpb246IHN0YXRpYzsKCQl0ZXh0LWFsaWduOiBjZW50ZXI7Cgl9CglzZWN0aW9uIHsKCQlmbG9hdDogbm9uZTsKCQl3aWR0aDogYXV0bzsKCX0KCWZvb3RlciB7CgkJZmxvYXQ6IG5vbmU7CgkJcG9zaXRpb246IHN0YXRpYzsKCX0KfQoKLy8gZW5zdXJlIGNvZGUgc2FtcGxlcyBjYW4gYmUgcmVhbGx5IHdpZGUKLmxhbmd1YWdlLXBocC5oaWdobGlnaHRlci1yb3VnZSB7CgljbGVhcjogYm90aDsKfQoKLy8gYWRkIG1pc3NpbmcgY29uc2lzdGVuY3kKaGVhZGVyIGltZyB7CgltYXJnaW4tYm90dG9tOiAyMHB4Owp9CgovLyBxdWljayBuYXZpZ2F0aW9uIGhhY2sgbmVlZHMgc29tZSBzcGFjaW5nCnNlY3Rpb24gPiBhOmZpcnN0LWNoaWxkIHsKCWRpc3BsYXk6IGJsb2NrOwoJbWFyZ2luLWJvdHRvbTo0NXB4Owp9CgovLyAxMDAlIHdpZHRoIGlzIHRyZWF0ZWQgbGlrZSBjbGVhciB3aGljaCBtYWtlcyBpdCBsb29rIGJhZAp0YWJsZSB7Cgl3aWR0aDogYXV0bzsKfQoKLy8gcmVzZXQgZG9jdW1lbnQgYmxvY2sgd2hhdGV2ZXIgc28gdGhlIGJ1bGxldHMgYXJlbid0IGRpc3R1cmJlZCBieSB0aGUgZmxvYXQKdWwgewoJb3ZlcmZsb3c6IGhpZGRlbjsKfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/getting-started.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogR2V0dGluZyBTdGFydGVkCi0tLQoKIyMgMS4gSW5zdGFsbGF0aW9uCgpUaGUgYmVzdCB3YXkgb2YgbWFraW5nIHVzZSBvZiB0aGlzIHByb2plY3QgaXMgYnkgaW5zdGFsbGluZyBpdCB3aXRoIFtjb21wb3Nlcl0oaHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcvZG9jLzAxLWJhc2ljLXVzYWdlLm1kKS4KCmBgYApwaHAgY29tcG9zZXIucGhhciByZXF1aXJlIHJvYnRocmVlL3R3b2ZhY3RvcmF1dGgKYGBgCgpvciBpZiB5b3UgaGF2ZSBjb21wb3NlciBpbnN0YWxsZWQgZ2xvYmFsbHkKCmBgYApjb21wb3NlciByZXF1aXJlIHJvYnRocmVlL3R3b2ZhY3RvcmF1dGgKYGBgCgojIyAyLiBDcmVhdGUgYW4gaW5zdGFuY2UKCk5vdyB5b3UgY2FuIGNyZWF0ZSBhbiBpbnN0YW5jZSBmb3IgdXNlIHdpdGggeW91ciBjb2RlCgpgYGBwaHAKdXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aDsKCiR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgpOwpgYGAKCioqTm90ZToqKiBpZiB5b3UgYXJlIG5vdCB1c2luZyBhIGZyYW1ld29yayB0aGF0IHVzZXMgY29tcG9zZXIsIHlvdSBzaG91bGQgW2luY2x1ZGUgdGhlIGNvbXBvc2VyIGxvYWRlciB5b3Vyc2VsZl0oaHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcvZG9jLzAxLWJhc2ljLXVzYWdlLm1kI2F1dG9sb2FkaW5nKQoKIyMgMy4gU2hhcmVkIHNlY3JldHMKCldoZW4geW91ciB1c2VyIGlzIHNldHRpbmcgdXAgdHdvLWZhY3Rvciwgb3IgbXVsdGktZmFjdG9yLCBhdXRoZW50aWNhdGlvbiBpbiB5b3VyIHByb2plY3QsIHlvdSBjYW4gY3JlYXRlIGEgc2VjcmV0IGZyb20gdGhlIGluc3RhbmNlLgoKYGBgcGhwCiRzZWNyZXQgPSAkdGZhLT5jcmVhdGVTZWNyZXQoKTsKYGBgCgpPbmNlIHlvdSBoYXZlIGEgc2VjcmV0LCBpdCBjYW4gYmUgY29tbXVuaWNhdGVkIHRvIHRoZSB1c2VyIGhvd2V2ZXIgeW91IHdpc2guCgpgYGBwaHAKPHA+UGxlYXNlIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZSBpbiB5b3VyIGFwcDogJzw/cGhwIGVjaG8gJHNlY3JldDsgPz4nPC9wPgpgYGAKCioqTm90ZToqKiB1bnRpbCB5b3UgaGF2ZSB2ZXJpZmllZCB0aGUgdXNlciBpcyBhYmxlIHRvIHVzZSB0aGUgc2VjcmV0IHByb3Blcmx5LCB5b3Ugc2hvdWxkIHN0b3JlIHRoZSBzZWNyZXQgYXMgcGFydCBvZiB0aGUgY3VycmVudCBzZXNzaW9uIGFuZCBub3Qgc2F2ZSB0aGUgc2VjcmV0IGFnYWluc3QgeW91ciB1c2VyIHJlY29yZC4KCiMjIDQuIFZlcmlmeWluZwoKSGF2aW5nIHByb3ZpZGVkIHRoZSB1c2VyIHdpdGggdGhlIHNlY3JldCwgdGhlIGJlc3QgcHJhY3RpY2UgaXMgdG8gdmVyaWZ5IHRoZWlyIGF1dGhlbnRpY2F0b3IgYXBwIGNhbiBjcmVhdGUgdGhlIGFwcHJvcHJpYXRlIGNvZGUuCgpgYGBwaHAKJHJlc3VsdCA9ICR0ZmEtPnZlcmlmeUNvZGUoJHNlY3JldCwgJF9QT1NUWyd2ZXJpZmljYXRpb24nXSk7CmBgYAoKSWYgYCRyZXN1bHRgIGlzIGB0cnVlYCB0aGVuIHlvdXIgdXNlciBoYXMgYmVlbiBhYmxlIHRvIHN1Y2Nlc3NmdWxseSByZWNvcmQgdGhlIGAkc2VjcmV0YCBpbiB0aGVpciBhdXRoZW50aWNhdG9yIGFwcCBhbmQgaXQgaGFzIGdlbmVyYXRlZCBhbiBhcHByb3ByaWF0ZSBjb2RlLgoKWW91IGNhbiBub3cgc2F2ZSB0aGUgYCRzZWNyZXRgIHRvIHlvdXIgdXNlciByZWNvcmQgYW5kIHVzZSB0aGUgc2FtZSBgdmVyaWZ5Q29kZWAgbWV0aG9kIGVhY2ggdGltZSB0aGV5IGxvZyBpbi4K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/improved-code-verification.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogSW1wcm92ZWQgQ29kZSBWZXJpZmljYXRpb24KLS0tCgpXaGVuIHZlcmlmeWluZyBjb2RlcyB0aGF0IGEgdXNlciBoYXMgZW50ZXJlZCwgdGhlcmUgYXJlIG90aGVyIG9wdGlvbmFsIGFyZ3VtZW50cyB3aGljaCBjYW4gaW1wcm92ZSB2ZXJpZmljYXRpb24gb2YgdGhlIGNvZGUuCgpgYGBwaHAKJHJlc3VsdCA9ICR0ZmEtPnZlcmlmeUNvZGUoJHNlY3JldCwgJF9QT1NUWyd2ZXJpZmljYXRpb24nXSwgJGRpc2NyZXBhbmN5LCAkdGltZSwgJiR0aW1lc2xpY2UpOwpgYGAKCiMjIERpc2NyZXBhbmN5IChkZWZhdWx0IDEpCgpBcyB0aGUgY29kZXMgdGhhdCBhcmUgZ2VuZXJhdGVkIGFuZCBhY2NlcHRlZCBhcmUgY29uc2lzdGVudCB3aXRoaW4gYSBjZXJ0YWluIHRpbWUgd2luZG93IChpLmUuIGEgdGltZXNsaWNlLCAzMCBzZWNvbmRzIGxvbmcgYnkgZGVmYXVsdCksIGl0IGlzIHZlcnkgaW1wb3J0YW50IHRoYXQgdGhlIHNlcnZlciAoYW5kIHRoZSB1c2VycyBhdXRoZW50aWNhdG9yIGFwcCkgaGF2ZSB0aGUgY29ycmVjdCB0aW1lIChhbmQgZGF0ZSkuCgpUaGUgdmFsdWUgb2YgYCRkaXNjcmVwYW5jeWAgaXMgdGhlIG51bWJlciBvZiB0aW1lc2xpY2VzIGNoZWNrZWQgaW4gKipib3RoKiogZGlyZWN0aW9ucyBvZiB0aGUgY3VycmVudCBvbmUuIFNvIHdoZW4gdGhlIGN1cnJlbnQgdGltZSBpcyBgMTQ6MzQ6MjFgLCB0aGUgJ2N1cnJlbnQgdGltZXNsaWNlJyBpcyBgMTQ6MzQ6MDBgIHRvIGAxNDozNDozMGAuIElmIHRoZSBkZWZhdWx0IGlzIGxlZnQgdW5jaGFuZ2VkLCB3ZSBhbHNvIHZlcmlmeSB0aGUgY29kZSBhZ2FpbnN0IHRoZSB0aW1lc2xpY2Ugb2YgYDE0OjMzOjMwYCB0byBgMTQ6MzQ6MDBgIGFuZCBmb3IgYDE0OjM0OjMwYCB0byBgMTQ6MzU6MDBgLgoKVGhpcyBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IgbW9zdCBjYXNlcyBob3dldmVyIHlvdSBjYW4gaW5jcmVhc2UgaXQgaWYgeW91IHdpc2guIEl0IHdvdWxkIGJlIHVud2lzZSBmb3IgdGhpcyB0byBiZSB0b28gaGlnaCBhcyBpdCBjb3VsZCBhbGxvdyBhIGNvZGUgdG8gYmUgdmFsaWQgZm9yIGxvbmcgZW5vdWdoIHRoYXQgaXQgY291bGQgYmUgdXNlZCBmcmF1ZHVsZW50bHkuCgojIyBUaW1lIChkZWZhdWx0IG51bGwpCgpUaGUgc2Vjb25kLCBgJHRpbWVgLCBhbGxvd3MgeW91IHRvIGNoZWNrIGEgY29kZSBmb3IgYSBzcGVjaWZpYyBwb2ludCBpbiB0aW1lLiBUaGlzIGFyZ3VtZW50IGhhcyBubyByZWFsIHByYWN0aWNhbCB1c2UgYnV0IGNhbiBiZSBoYW5keSBmb3IgdW5pdCB0ZXN0aW5nLiBUaGUgZGVmYXVsdCB2YWx1ZSwgYG51bGxgLCBtZWFuczogdXNlIHRoZSBjdXJyZW50IHRpbWUuCgojIyBUaW1lc2xpY2UKCmAkdGltZXNsaWNlYCByZXR1cm5zIGEgdmFsdWUgYnkgcmVmZXJlbmNlLiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgdGhlIHRpbWVzbGljZSB0aGF0IG1hdGNoZWQgdGhlIGNvZGUgKGlmIGFueSkgb3IgYDBgLgoKWW91IGNhbiBzdG9yZSBhIHRpbWVzbGljZSBhbG9uZ3NpZGUgdGhlIHNlY3JldCBhbmQgdmVyaWZ5IHRoYXQgYW55IG5ldyB0aW1lc2xpY2UgaXMgZ3JlYXRlciB0aGFuIHRoZSBleGlzdGluZyBvbmUuCgppLmUuIGlmIGB2ZXJpZnlDb2RlYCByZXR1cm5zIHRydWUgX2FuZF8gdGhlIHJldHVybmVkIHRpbWVzbGljZSBpcyBncmVhdGVyIHRoYW4gdGhlIGxhc3QgdXNlZCB0aW1lc2xpY2UgZm9yIHRoaXMgdXNlci9zZWNyZXQgdGhlbiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHRoZSBjb2RlIGhhcyBiZWVuIHVzZWQgYW5kIHlvdSBzaG91bGQgbm93IHN0b3JlIHRoZSBoaWdoZXIgdGltZXNsaWNlIHRvIHZlcmlmeSB0aGF0IHRoZSB1c2VyLgoKVGhpcyBpcyBhbiBlZmZlY3RpdmUgZGVmZW5zZSBhZ2FpbnN0IGEgW3JlcGxheSBhdHRhY2tdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1JlcGxheV9hdHRhY2spLgo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/index.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCnRpdGxlOiBDb250ZW50cwotLS0KCiMjIFtUaGUgQmFzaWNzIC0gR2V0dGluZyBTdGFydGVkXShnZXR0aW5nLXN0YXJ0ZWQuaHRtbCkKCiMjIEFkdmFuY2VkIFVzYWdlCgpbUVIgQ29kZXNdKHFyLWNvZGVzLmh0bWwpCi0gW1FSU2VydmVyUHJvdmlkZXJdKHFyLWNvZGVzL3FyLXNlcnZlci5odG1sKQotIFtJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyXShxci1jb2Rlcy9pbWFnZS1jaGFydHMuaHRtbCkKLSBbUVJpY2tldFByb3ZpZGVyXShxci1jb2Rlcy9xcmlja2l0Lmh0bWwpCi0gW0VuZHJvaWRRckNvZGVQcm92aWRlcl0ocXItY29kZXMvZW5kcm9pZC5odG1sKSAoYW5kIEVuZHJvaWRRckNvZGVXaXRoTG9nb1Byb3ZpZGVyKQotIFtCYWNvblFSQ29kZVByb3ZpZGVyXShxci1jb2Rlcy9iYWNvbi5odG1sKQoKW0ltcHJvdmVkIENvZGUgVmVyaWZpY2F0aW9uXShpbXByb3ZlZC1jb2RlLXZlcmlmaWNhdGlvbi5odG1sKQoKW090aGVyIE9wdGlvbmFsIENvbmZpZ3VyYXRpb25dKG9wdGlvbmFsLWNvbmZpZ3VyYXRpb24uaHRtbCkK]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/optional-configuration.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogT3B0aW9uYWwgQ29uZmlndXJhdGlvbgotLS0KCiMjIEluc3RhbmNlIENvbmZpZ3VyYXRpb24KClRoZSBpbnN0YW5jZSAoYG5ldyBUd29GYWN0b3JBdXRoKClgKSBjYW4gb25seSBiZSBjb25maWd1cmVkIGJ5IHRoZSBjb25zdHJ1Y3RvciB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uYWwgYXJndW1lbnRzCgpBcmd1bWVudCAgICAgICAgICB8IERlZmF1bHQgdmFsdWUgICAgIHwgVXNlCi0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tCmAkaXNzdWVyYCAgICAgICAgIHwgYG51bGxgICAgICAgICAgICAgfCBXaWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgdXNlcnMgYXBwIGFzIHRoZSBkZWZhdWx0IGlzc3VlciBuYW1lIHdoZW4gdXNpbmcgUVIgY29kZSB0byBpbXBvcnQgdGhlIHNlY3JldApgJGRpZ2l0c2AgICAgICAgICB8IGA2YCAgICAgICAgICAgICAgIHwgVGhlIG51bWJlciBvZiBkaWdpdHMgdGhlIHJlc3VsdGluZyBjb2RlcyB3aWxsIGJlCmAkcGVyaW9kYCAgICAgICAgIHwgYDMwYCAgICAgICAgICAgICAgfCBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYSBjb2RlIHdpbGwgYmUgdmFsaWQKYCRhbGdvcml0aG1gICAgICAgfCBgQWxnb3JpdGhtOjpTaGExYCB8IFRoZSBhbGdvcml0aG0gdXNlZCAob25lIG9mIGBBbGdvcml0aG06OlNoYTFgLCBgQWxnb3JpdGhtOjpTaGEyNTZgLCBgQWxnb3JpdGhtOjpTaGE1MTJgLCBgQWxnb3JpdGhtOjpNZDVgKQpgJHFyY29kZXByb3ZpZGVyYCB8IGBudWxsYCAgICAgICAgICAgIHwgUVItY29kZSBwcm92aWRlcgpgJHJuZ3Byb3ZpZGVyYCAgICB8IGBudWxsYCAgICAgICAgICAgIHwgUmFuZG9tIE51bWJlciBHZW5lcmF0b3IgcHJvdmlkZXIKYCR0aW1lcHJvdmlkZXJgICAgfCBgbnVsbGAgICAgICAgICAgICB8IFRpbWUgcHJvdmlkZXIKCioqTm90ZToqKiB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIGAkZGlnaXRzYCwgYCRwZXJpb2RgLCBhbmQgYCRhbGdvcml0aG1gIHByb3ZpZGUgdGhlIHdpZGVzdCB2YXJpZXR5IG9mIHN1cHBvcnQgYW1vbmdzdCBjb21tb24gYXV0aGVudGljYXRvciBhcHBzIHN1Y2ggYXMgR29vZ2xlIEF1dGhlbnRpY2F0b3IuIElmIHlvdSBjaG9vc2UgdG8gdXNlIGRpZmZlcmVudCB2YWx1ZXMgZm9yIHRoZXNlIGFyZ3VtZW50cyB5b3Ugd2lsbCBsaWtlbHkgaGF2ZSB0byBpbnN0cnVjdCB5b3VyIHVzZXJzIHRvIHVzZSBhIHNwZWNpZmljIGFwcCB3aGljaCBzdXBwb3J0cyB5b3VyIGNob3NlbiBjb25maWd1cmF0aW9uLgoKIyMjIFJORyBwcm92aWRlcnMKClRoaXMgbGlicmFyeSBhbHNvIGNvbWVzIHdpdGggc29tZSBbUmFuZG9tIE51bWJlciBHZW5lcmF0b3IgKFJORyldKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1JhbmRvbV9udW1iZXJfZ2VuZXJhdGlvbikgcHJvdmlkZXJzLiBUaGUgUk5HIHByb3ZpZGVyIGdlbmVyYXRlcyBhIG51bWJlciBvZiByYW5kb20gYnl0ZXMgYW5kIHJldHVybnMgdGhlc2UgYnl0ZXMgYXMgYSBzdHJpbmcuIFRoZXNlIHZhbHVlcyBhcmUgdGhlbiB1c2VkIHRvIGNyZWF0ZSB0aGUgc2VjcmV0LiBCeSBkZWZhdWx0IChubyBSTkcgcHJvdmlkZXIgc3BlY2lmaWVkKSBUd29GYWN0b3JBdXRoIHdpbGwgdHJ5IHRvIGRldGVybWluZSB0aGUgYmVzdCBhdmFpbGFibGUgUk5HIHByb3ZpZGVyIHRvIHVzZSBpbiB0aGlzIG9yZGVyLgoKMS4gW0NTUk5HUHJvdmlkZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoL2Jsb2IvbWFzdGVyL2xpYi9Qcm92aWRlcnMvUm5nL0NTUk5HUHJvdmlkZXIucGhwKSBmb3IgUEhQNysKMi4gW09wZW5TU0xSTkdQcm92aWRlcl0oaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvYmxvYi9tYXN0ZXIvbGliL1Byb3ZpZGVycy9SbmcvT3BlblNTTFJOR1Byb3ZpZGVyLnBocCkgd2hlcmUgb3BlbnNzbCBpcyBhdmFpbGFibGUKMy4gW0hhc2hSTkdQcm92aWRlcl0oaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvYmxvYi9tYXN0ZXIvbGliL1Byb3ZpZGVycy9SbmcvSGFzaFJOR1Byb3ZpZGVyLnBocCkgKipub24tY3J5cHRvZ3JhcGhpY2FsbHkgc2VjdXJlKiogZmFsbGJhY2sKCkVhY2ggb2YgdGhlc2UgUk5HIHByb3ZpZGVycyBoYXZlIHNvbWUgY29uc3RydWN0b3IgYXJndW1lbnRzIHRoYXQgYWxsb3cgeW91IHRvIHR3ZWFrIHNvbWUgb2YgdGhlIHNldHRpbmdzIHRvIHVzZSB3aGVuIGNyZWF0aW5nIHRoZSByYW5kb20gYnl0ZXMuCgpZb3UgY2FuIGFsc28gaW1wbGVtZW50IHlvdXIgb3duIGJ5IGltcGxlbWVudGluZyB0aGUgW2BJUk5HUHJvdmlkZXJgIGludGVyZmFjZV0oaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvYmxvYi9tYXN0ZXIvbGliL1Byb3ZpZGVycy9SbmcvSVJOR1Byb3ZpZGVyLnBocCkuCgojIyMgVGltZSBwcm92aWRlcnMKClRoZXNlIGFsbG93IHRoZSBUd29GYWN0b3JBdXRoIGxpYnJhcnkgdG8gZW5zdXJlIHRoZSBzZXJ2ZXJzIHRpbWUgaXMgY29ycmVjdCAob3IgYXQgbGVhc3Qgd2l0aGluIGEgbWFyZ2luKS4KCllvdSBjYW4gdXNlIHRoZSBgZW5zdXJlQ29ycmVjdFRpbWUoKWAgbWV0aG9kIHRvIGVuc3VyZSB0aGUgaG9zdHMgdGltZSBpcyBjb3JyZWN0LiBCeSBkZWZhdWx0IHRoaXMgbWV0aG9kIHdpbGwgY29tcGFyZSB0aGUgaG9zdHMgdGltZSAocmV0dXJuZWQgYnkgY2FsbGluZyBgdGltZSgpYCBvbiB0aGUgYExvY2FsTWFjaGluZVRpbWVQcm92aWRlcmApIHRvIHRoZSBkZWZhdWx0IGBOVFBUaW1lUHJvdmlkZXJgIGFuZCBgSHR0cFRpbWVQcm92aWRlcmAuCgoqKk5vdGU6KiogdGhlIGBOVFBUaW1lUHJvdmlkZXJgIHJlcXVpcmVzIHlvdXIgUEhQIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gY3JlYXRlIHNvY2tldHMuIElmIHlvdSBkbyBub3QgaGF2ZSB0aGF0IGFiaWxpdHkgYW5kIHdpc2ggdG8gdXNlIHRoaXMgZnVuY3Rpb24sIHlvdSBzaG91bGQgcGFzcyBhbiBhcnJheSB3aXRoIG9ubHkgYW4gaW5zdGFuY2Ugb2YgYEh0dHBUaW1lUHJvdmlkZXJgLgoKQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBwYXNzIGFuIGFycmF5IG9mIGNsYXNzZXMgdGhhdCBpbXBsZW1lbnQgdGhlIFtgSVRpbWVQcm92aWRlcmAgaW50ZXJmYWNlXShodHRwczovL2dpdGh1Yi5jb20vUm9iVGhyZWUvVHdvRmFjdG9yQXV0aC9ibG9iL21hc3Rlci9saWIvUHJvdmlkZXJzL1RpbWUvSVRpbWVQcm92aWRlci5waHApIHRvIGNoYW5nZSB0aGlzIGFuZCBzcGVjaWZ5IHRoZSBzZWNvbmQgYXJndW1lbnQsIGxlbmllbmN5IGluIHNlY29uZHMgKGRlZmF1bHQ6IDUpLiBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgdGhlIHRpbWUgZGlmZmVyZW5jZSBpcyBncmVhdGVyIHRoYW4gdGhlIGxlbmllbmN5LgoKT3JkaW5hcmlseSwgeW91IHNob3VsZCBub3QgbmVlZCB0byBtb25pdG9yIHRoYXQgdGhlIHRpbWUgb24gdGhlIHNlcnZlciBpcyBjb3JyZWN0IGluIHRoaXMgd2F5IGhvd2V2ZXIgaWYgeW91IGNob29zZSB0bywgd2UgYWR2aXNlIHRvIGNhbGwgdGhpcyBtZXRob2Qgc3BhcmluZ2x5IHdoZW4gcmVseWluZyBvbiAzcmQgcGFydGllcyAod2hpY2ggYm90aCB0aGUgYEh0dHBUaW1lUHJvdmlkZXJgIGFuZCBgTlRQVGltZVByb3ZpZGVyYCBkbykgb3IsIGlmIHlvdSBuZWVkIHRvIGVuc3VyZSB0aW1lIGlzIGNvcnJlY3Qgb24gYSAodmVyeSkgcmVndWxhciBiYXNpcyB0byBpbXBsZW1lbnQgYW4gYElUaW1lUHJvdmlkZXJgIHRoYXQgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiB0aGUgYnVpbHQtaW4gb25lcyAobWFraW5nIHVzZSBvZiBhIEdQUyBzaWduYWwgZm9yIGV4YW1wbGUpLgoKIyMgU2VjcmV0IENvbmZpZ3VyYXRpb24KClNlY3JldHMgY2FuIGJlIG9wdGlvbmFsbHkgY29uZmlndXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uYWwgYXJndW1lbnRzCgpBcmd1bWVudCAgICAgICAgICAgICAgIHwgRGVmYXVsdCB2YWx1ZSB8IFVzZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0KYCRiaXRzYCAgICAgICAgICAgICAgICB8IGA4MGAgICAgICAgICAgfCBUaGUgbnVtYmVyIG9mIGJpdHMgKHJlbGF0ZWQgdG8gdGhlIGxlbmd0aCBvZiB0aGUgc2VjcmV0KQpgJHJlcXVpcmVjcnlwdG9zZWN1cmVgIHwgYHRydWVgICAgICAgICB8IFdoZXRoZXIgeW91IHdhbnQgdG8gcmVxdWlyZSBhIGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBzb3VyY2Ugb2YgcmFuZG9tIG51bWJlcnMKCioqTm90ZToqKiBhcyBhYm92ZSwgdGhlc2UgdmFsdWVzIHByb3ZpZGUgdGhlIHdpZGVzdCB2YXJpZXR5IG9mIHN1cHBvcnQgYW1vbmdzdCBjb21tb24gYXV0aGVudGljYXRvciBhcHBzIGhvd2V2ZXIgeW91IG1heSBjaG9vc2UgdG8gaW5jcmVhc2UgdGhlIHZhbHVlIG9mIGAkYml0c2AgKDE2MCBvciBoaWdoZXIgaXMgcmVjb21tZW5kZWQsIHNlZSBbUkZDIDQyMjYgLSBBbGdvcml0aG0gUmVxdWlyZW1lbnRzXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDIyNiNzZWN0aW9uLTQpKSBhcyBsb25nIGFzIGl0IGlzIHNldCB0byBhIG11bHRpcGxlIG9mIDguCg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/qr-codes.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogUVIgQ29kZXMKLS0tCgpBbiBhbHRlcm5hdGl2ZSB3YXkgb2YgY29tbXVuaWNhdGluZyB0aGUgc2VjcmV0IHRvIHRoZSB1c2VyIGlzIHRocm91Z2ggdGhlIHVzZSBvZiBbUVIgQ29kZXNdKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUVJfY29kZSkgd2hpY2ggbW9zdCBpZiBub3QgYWxsIGF1dGhlbnRpY2F0b3IgbW9iaWxlIGFwcHMgY2FuIHNjYW4uCgpUaGlzIGNhbiBhdm9pZCBhY2NpZGVudGFsIHR5cGluZyBlcnJvcnMgYW5kIGFsc28gcHJlLXNldCBzb21lIHRleHQgdmFsdWVzIHdpdGhpbiB0aGUgdXNlcnMgYXBwLgoKWW91IGNhbiBkaXNwbGF5IHRoZSBRUiBDb2RlIGFzIGEgYmFzZTY0IGVuY29kZWQgaW1hZ2UgdXNpbmcgdGhlIGluc3RhbmNlIGFzIGZvbGxvd3MsIHN1cHBseWluZyB0aGUgdXNlcnMgbmFtZSBvciBvdGhlciBwdWJsaWMgaWRlbnRpZmllciBhcyB0aGUgZmlyc3QgYXJndW1lbnQKCmBgYGBwaHAKPHA+U2NhbiB0aGUgZm9sbG93aW5nIGltYWdlIHdpdGggeW91ciBhcHA6PC9wPgo8aW1nIHNyYz0iPD9waHAgZWNobyAkdGZhLT5nZXRRUkNvZGVJbWFnZUFzRGF0YVVyaSgnQm9iIFJvc3MnLCAkc2VjcmV0KTsgPz4iPgpgYGBgCgpZb3UgY2FuIGFsc28gc3BlY2lmeSBhIHNpemUgYXMgYSB0aGlyZCBhcmd1bWVudCB3aGljaCBpcyAyMDAgYnkgZGVmYXVsdC4KCioqTm90ZToqKiBieSBkZWZhdWx0LCB0aGUgUVIgY29kZSByZXR1cm5lZCBieSB0aGUgaW5zdGFuY2UgaXMgZ2VuZXJhdGVkIGZyb20gYSB0aGlyZCBwYXJ0eSBhY3Jvc3MgdGhlIGludGVybmV0LiBJZiB0aGUgdGhpcmQgcGFydHkgaXMgZW5jb3VudGVyaW5nIHByb2JsZW1zIG9yIGlzIG5vdCBhdmFpbGFibGUgZnJvbSB3aGVyZSB5b3UgaGF2ZSBob3N0ZWQgeW91ciBjb2RlLCB5b3VyIHVzZXIgd2lsbCBsaWtlbHkgZXhwZXJpZW5jZSBhIGRlbGF5IGluIHNlZWluZyB0aGUgUVIgY29kZSwgaWYgaXQgZXZlbiBsb2FkcyBhdCBhbGwuIFRoaXMgY2FuIGJlIG92ZXJjb21lIHdpdGggb2ZmbGluZSBwcm92aWRlcnMgY29uZmlndXJlZCB3aGVuIHlvdSBjcmVhdGUgdGhlIGluc3RhbmNlLgoKIyMgT25saW5lIFByb3ZpZGVycwoKW1FSU2VydmVyUHJvdmlkZXJdKHFyLWNvZGVzL3FyLXNlcnZlci5tZCkgKGRlZmF1bHQpCgoqKldhcm5pbmc6KiogV2hpbHN0IGl0IGlzIHRoZSBkZWZhdWx0LCB0aGlzIHByb3ZpZGVyIGlzIG5vdCBzdWdnZXN0ZWQgZm9yIGFwcGxpY2F0aW9ucyB3aGVyZSBhYnNvbHV0ZSBzZWN1cml0eSBpcyBuZWVkZWQsIGJlY2F1c2UgaXQgdXNlcyBhbiBleHRlcm5hbCBzZXJ2aWNlIGZvciB0aGUgUVIgY29kZSBnZW5lcmF0aW9uLiBZb3UgY2FuIG1ha2UgdXNlIG9mIHRoZSBpbmNsdWRlZCBvZmZsaW5lIHByb3ZpZGVycyBsaXN0ZWQgYmVsb3cgd2hpY2ggZ2VuZXJhdGUgbG9jYWxseS4KCltJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyXShxci1jb2Rlcy9pbWFnZS1jaGFydHMubWQpCgpbUVJpY2tldFByb3ZpZGVyXShxci1jb2Rlcy9xcmlja2l0Lm1kKQoKIyMgT2ZmbGluZSBQcm92aWRlcnMKCltFbmRyb2lkUXJDb2RlUHJvdmlkZXJdKHFyLWNvZGVzL2VuZHJvaWQubWQpIGFuZCBFbmRyb2lkUXJDb2RlV2l0aExvZ29Qcm92aWRlcgoKW0JhY29uUVJDb2RlUHJvdmlkZXJdKHFyLWNvZGVzL2JhY29uLm1kKQoKKipOb3RlOioqIG9mZmxpbmUgcHJvdmlkZXJzIG1heSBoYXZlIGFkZGl0aW9uYWwgUEhQIHJlcXVpcmVtZW50cyBpbiBvcmRlciB0byBmdW5jdGlvbiwgeW91IHNob3VsZCBzdHVkeSB3aGF0IGlzIHJlcXVpcmVkIGJlZm9yZSB0cnlpbmcgdG8gbWFrZSB1c2Ugb2YgdGhlbS4KCiMjIEN1c3RvbSBQcm92aWRlcgoKSWYgeW91IHdpc2ggdG8gbWFrZSB5b3VyIG93biBRUiBDb2RlIHByb3ZpZGVyIHRvIHJlZmVyZW5jZSBhbm90aGVyIHNlcnZpY2Ugb3IgbGlicmFyeSwgaXQgbXVzdCBpbXBsZW1lbnQgdGhlIFtJUVJDb2RlUHJvdmlkZXIgaW50ZXJmYWNlXShodHRwczovL2dpdGh1Yi5jb20vUm9iVGhyZWUvVHdvRmFjdG9yQXV0aC9ibG9iL21hc3Rlci9saWIvUHJvdmlkZXJzL1FyL0lRUkNvZGVQcm92aWRlci5waHApLgoKSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHNpbWlsYXIgY29uc3RydWN0b3IgYXJndW1lbnRzIGFzIHRoZSBpbmNsdWRlZCBwcm92aWRlcnMgdG8gYXZvaWQgYmlnIHNoaWZ0cyB3aGVuIHRyeWluZyBkaWZmZXJlbnQgcHJvdmlkZXJzLgoKIyMgVXNpbmcgYSBzcGVjaWZpYyBwcm92aWRlcgoKSWYgeW91IGRvIG5vdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdCBRUiBjb2RlIHByb3ZpZGVyLCB5b3UgY2FuIHNwZWNpZnkgdGhlIG9uZSB5b3Ugd2FudCB0byB1c2Ugd2hlbiB5b3UgY3JlYXRlIHlvdXIgaW5zdGFuY2UuCgpgYGBwaHAKdXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aDsKCiRxckNvZGVQcm92aWRlciA9IG5ldyBZb3VyQ2hvc2VuUHJvdmlkZXIoKTsKCiR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgKCWlzc3VlcjogIllvdXIgQ29tcGFueSBPciBBcHAgTmFtZSIsCiAJcXJjb2RlcHJvdmlkZXI6ICRxckNvZGVQcm92aWRlcgopOwpgYGAKCkFzIHlvdSBjcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgeW91ciBwcm92aWRlciwgeW91IGNhbiBzdXBwbHkgYW55IGV4dHJhIGNvbmZpZ3VyYXRpb24gdGhlcmUuCg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/qr-codes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/qr-codes/bacon.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogYmFjb24vYmFjb24tcXItY29kZQotLS0KCiMjIEluc3RhbGxhdGlvbgoKSW4gb3JkZXIgdG8gdXNlIHRoaXMgcHJvdmlkZXIsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCB0aGUgbGlicmFyeSBhdCB2ZXJzaW9uIDIgKG9yIGxhdGVyKSBhbmQgaXRzIGRlcGVuZGVuY2llcwoKYGBgCmNvbXBvc2VyIHJlcXVpcmUgYmFjb24vYmFjb24tcXItY29kZSBeMi4wCmBgYAoKWW91IHdpbGwgYWxzbyBuZWVkIHRoZSBQSFAgaW1hZ2ljayBleHRlbnNpb24gKippZioqIHlvdSBhcmVuJ3QgdXNpbmcgdGhlIFNWRyBmb3JtYXQuCgojIyBPcHRpb25hbCBDb25maWd1cmF0aW9uCgpBcmd1bWVudCAgICAgICAgICAgIHwgRGVmYXVsdCB2YWx1ZQotLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0KYCRib3JkZXJXaWR0aGAgICAgICB8IGA0YApgJGJhY2tncm91bmRDb2xvdXJgIHwgYCcjZmZmZmZmJ2AKYCRmb3JlZ3JvdW5kQ29sb3VyYCB8IGAnIzAwMDAwMCdgCmAkZm9ybWF0YCAgICAgICAgICAgfCBgJ3BuZydgCg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/qr-codes/endroid.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogZW5kcm9pZC9xci1jb2RlCi0tLQoKIyMgSW5zdGFsbGF0aW9uCgpJbiBvcmRlciB0byB1c2UgdGhpcyBwcm92aWRlciwgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIHRoZSBsaWJyYXJ5IGF0IHZlcnNpb24gMyBhbmQgaXRzIGRlcGVuZGVuY2llcwoKYGBgCmNvbXBvc2VyIHJlcXVpcmUgZW5kcm9pZC9xci1jb2RlIF4zLjAKYGBgCgpZb3Ugd2lsbCBhbHNvIG5lZWQgdGhlIFBIUCBnZCBleHRlbnNpb24gaW5zdGFsbGluZy4KCiMjIE9wdGlvbmFsIENvbmZpZ3VyYXRpb24KCkFyZ3VtZW50ICAgICAgICAgICAgICAgIHwgRGVmYXVsdCB2YWx1ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tCmAkYmdjb2xvcmAgICAgICAgICAgICAgIHwgYCdmZmZmZmYnYApgJGNvbG9yYCAgICAgICAgICAgICAgICB8IGAnMDAwMDAwJ2AKYCRtYXJnaW5gICAgICAgICAgICAgICAgfCBgMGAKYCRlcnJvcmNvcnJlY3Rpb25sZXZlbGAgfCBgJ0gnYAoKIyMgTG9nbwoKSWYgeW91IG1ha2UgdXNlIG9mIGBFbmRyb2lkUXJDb2RlV2l0aExvZ29Qcm92aWRlcmAgdGhlbiB5b3UgaGF2ZSBhY2Nlc3MgdG8gdGhlIGBzZXRMb2dvYCBmdW5jdGlvbiBvbiB0aGUgcHJvdmlkZXIgc28geW91IG1heSBhZGQgYSBsb2dvIHRvIHRoZSBjZW50cmUgb2YgeW91ciBRUiBjb2RlLgoKYGBgcGhwCnVzZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xRclxFbmRyb2lkUXJDb2RlV2l0aExvZ29Qcm92aWRlcjsKCiRxckNvZGVQcm92aWRlciA9IG5ldyBFbmRyb2lkUXJDb2RlV2l0aExvZ29Qcm92aWRlcigpOwoKJHFyQ29kZVByb3ZpZGVyLT5zZXRMb2dvKCcvcGF0aC90by95b3VyL2ltYWdlJyk7CmBgYAoKWW91IGNhbiBzZWUgaG93IHRvIGFsc28gc2V0IHRoZSBzaXplIG9mIHRoZSBsb2dvIGluIHRoZSBbc291cmNlIGNvZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoL2Jsb2IvbWFzdGVyL2xpYi9Qcm92aWRlcnMvUXIvRW5kcm9pZFFyQ29kZVdpdGhMb2dvUHJvdmlkZXIucGhwKS4K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/qr-codes/image-charts.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogSW1hZ2UtQ2hhcnRzCi0tLQoKIyMgT3B0aW9uYWwgQ29uZmlndXJhdGlvbgoKQXJndW1lbnQgICAgICAgICAgICAgICAgfCBEZWZhdWx0IHZhbHVlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0KYCR2ZXJpZnlzc2xgICAgICAgICAgICAgfCBgZmFsc2VgCmAkZXJyb3Jjb3JyZWN0aW9ubGV2ZWxgIHwgYCdMJ2AKYCRtYXJnaW5gICAgICAgICAgICAgICAgfCBgNGAKCmAkdmVyaWZ5c3NsYCBpcyB1c2VkIGludGVybmFsbHkgdG8gaGVscCBndWFyYW50ZWUgdGhlIHNlY3VyaXR5IG9mIHRoZSBjb25uZWN0aW9uLiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdoZXJlIHlvdSBhcmUgcnVubmluZyB0aGUgY29kZSBmcm9tIHdpbGwgaGF2ZSBwcm9ibGVtcyB2ZXJpZnlpbmcgYW4gU1NMIGNvbm5lY3Rpb24gc28gaWYgeW91IGtub3cgdGhpcyBpcyBub3QgdGhlIGNhc2UsIHlvdSBjYW4gc3VwcGx5IGB0cnVlYC4KClRoZSBvdGhlciBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgdG8gW0ltYWdlLUNoYXJ0c10oaHR0cHM6Ly9kb2N1bWVudGF0aW9uLmltYWdlLWNoYXJ0cy5jb20vcXItY29kZXMvKSBzbyB5b3UgY2FuIHJlZmVyIHRvIHRoZW0gZm9yIG1vcmUgZGV0YWlsIG9uIGhvdyB0aGUgdmFsdWVzIGFyZSB1c2VkLgo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/qr-codes/qr-server.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogUVIgU2VydmVyCi0tLQoKIyMgT3B0aW9uYWwgQ29uZmlndXJhdGlvbgoKQXJndW1lbnQgICAgICAgICAgICAgICAgfCBEZWZhdWx0IHZhbHVlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0KYCR2ZXJpZnlzc2xgICAgICAgICAgICAgfCBgZmFsc2VgCmAkZXJyb3Jjb3JyZWN0aW9ubGV2ZWxgIHwgYCdMJ2AKYCRtYXJnaW5gICAgICAgICAgICAgICAgfCBgNGAKYCRxem9uZWAgICAgICAgICAgICAgICAgfCBgMWAKYCRiZ2NvbG9yYCAgICAgICAgICAgICAgfCBgJ2ZmZmZmZidgCmAkY29sb3JgICAgICAgICAgICAgICAgIHwgYCcwMDAwMDAnYApgJGZvcm1hdGAgICAgICAgICAgICAgICB8IGAncG5nJ2AKCmAkdmVyaWZ5c3NsYCBpcyB1c2VkIGludGVybmFsbHkgdG8gaGVscCBndWFyYW50ZWUgdGhlIHNlY3VyaXR5IG9mIHRoZSBjb25uZWN0aW9uLiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdoZXJlIHlvdSBhcmUgcnVubmluZyB0aGUgY29kZSBmcm9tIHdpbGwgaGF2ZSBwcm9ibGVtcyB2ZXJpZnlpbmcgYW4gU1NMIGNvbm5lY3Rpb24gc28gaWYgeW91IGtub3cgdGhpcyBpcyBub3QgdGhlIGNhc2UsIHlvdSBjYW4gc3VwcGx5IGB0cnVlYC4KClRoZSBvdGhlciBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgdG8gW2dvcXIubWVdKGh0dHA6Ly9nb3FyLm1lL2FwaS9kb2MvY3JlYXRlLXFyLWNvZGUvKSBzbyB5b3UgY2FuIHJlZmVyIHRvIHRoZW0gZm9yIG1vcmUgZGV0YWlsIG9uIGhvdyB0aGUgdmFsdWVzIGFyZSB1c2VkLgo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/qr-codes/qrickit.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogcG9zdAp0aXRsZTogUVJpY2tpdAotLS0KCiMjIE9wdGlvbmFsIENvbmZpZ3VyYXRpb24KCkFyZ3VtZW50ICAgICAgICAgICAgICAgIHwgRGVmYXVsdCB2YWx1ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tCmAkZXJyb3Jjb3JyZWN0aW9ubGV2ZWxgIHwgYCdMJ2AKYCRiZ2NvbG9yYCAgICAgICAgICAgICAgfCBgJ2ZmZmZmZidgCmAkY29sb3JgICAgICAgICAgICAgICAgIHwgYCcwMDAwMDAnYApgJGZvcm1hdGAgICAgICAgICAgICAgICB8IGAncG5nJ2AKClRoZSBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgdG8gW1FSaWNraXRdKGh0dHA6Ly9xcmlja2l0LmNvbS9xcmlja2l0X2FwcHMvcXJpY2tpdF9hcGkucGhwKSBzbyB5b3UgY2FuIHJlZmVyIHRvIHRoZW0gZm9yIG1vcmUgZGV0YWlsIG9uIGhvdyB0aGUgdmFsdWVzIGFyZSB1c2VkLgo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/_config.yml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dGhlbWU6IGpla3lsbC10aGVtZS1taW5pbWFsCgpsb2dvOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vUm9iVGhyZWUvVHdvRmFjdG9yQXV0aC9tYXN0ZXIvbXVsdGlmYWN0b3JhdXRoZm9yZXZlcnlvbmUucG5nCg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/_layouts/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/docs/_layouts/post.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS0tCmxheW91dDogZGVmYXVsdAotLS0KCjxhIGhyZWY9Int7IHNpdGUuYmFzZXVybCB9fSI+4oaQIGNvbnRlbnRzPC9hPgoKPGgxPnt7IHBhZ2UudGl0bGUgfX08L2gxPgoKe3sgY29udGVudCB9fQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Algorithm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGg7CgovKioKICogTGlzdCBvZiBzdXBwb3J0ZWQgY3J5cHRvZ3JhcGhpYyBhbGdvcml0aG1zCiAqLwplbnVtIEFsZ29yaXRobTogc3RyaW5nCnsKICAgIGNhc2UgTWQ1ID0gJ21kNSc7CiAgICBjYXNlIFNoYTEgPSAnc2hhMSc7CiAgICBjYXNlIFNoYTI1NiA9ICdzaGEyNTYnOwogICAgY2FzZSBTaGE1MTIgPSAnc2hhNTEyJzsKfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/BaconQrCodeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKdXNlIEJhY29uUXJDb2RlXFJlbmRlcmVyXENvbG9yXFJnYjsKdXNlIEJhY29uUXJDb2RlXFJlbmRlcmVyXEltYWdlXEVwc0ltYWdlQmFja0VuZDsKdXNlIEJhY29uUXJDb2RlXFJlbmRlcmVyXEltYWdlXEltYWdlQmFja0VuZEludGVyZmFjZTsKdXNlIEJhY29uUXJDb2RlXFJlbmRlcmVyXEltYWdlXEltYWdpY2tJbWFnZUJhY2tFbmQ7CnVzZSBCYWNvblFyQ29kZVxSZW5kZXJlclxJbWFnZVxTdmdJbWFnZUJhY2tFbmQ7CnVzZSBCYWNvblFyQ29kZVxSZW5kZXJlclxJbWFnZVJlbmRlcmVyOwp1c2UgQmFjb25RckNvZGVcUmVuZGVyZXJcUmVuZGVyZXJTdHlsZVxFeWVGaWxsOwp1c2UgQmFjb25RckNvZGVcUmVuZGVyZXJcUmVuZGVyZXJTdHlsZVxGaWxsOwp1c2UgQmFjb25RckNvZGVcUmVuZGVyZXJcUmVuZGVyZXJTdHlsZVxSZW5kZXJlclN0eWxlOwp1c2UgQmFjb25RckNvZGVcV3JpdGVyOwp1c2UgUnVudGltZUV4Y2VwdGlvbjsKCmNsYXNzIEJhY29uUXJDb2RlUHJvdmlkZXIgaW1wbGVtZW50cyBJUVJDb2RlUHJvdmlkZXIKewogICAgLyoqCiAgICAgKiBFbnN1cmUgd2UgdXNpbmcgdGhlIGxhdGVzdCBCYWNvbiBRUiBDb2RlIGFuZCBzcGVjaWZ5IGRlZmF1bHQgb3B0aW9ucwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnQgJGJvcmRlcldpZHRoID0gNCwKICAgICAgICBwcml2YXRlIHN0cmluZ3xhcnJheSAkYmFja2dyb3VuZENvbG91ciA9ICcjZmZmZmZmJywKICAgICAgICBwcml2YXRlIHN0cmluZ3xhcnJheSAkZm9yZWdyb3VuZENvbG91ciA9ICcjMDAwMDAwJywKICAgICAgICBwcml2YXRlIHN0cmluZyAgICAgICAkZm9ybWF0ID0gJ3BuZycsCiAgICApIHsKICAgICAgICAkdGhpcy0+YmFja2dyb3VuZENvbG91ciA9ICR0aGlzLT5oYW5kbGVDb2xvdXIoJHRoaXMtPmJhY2tncm91bmRDb2xvdXIpOwogICAgICAgICR0aGlzLT5mb3JlZ3JvdW5kQ29sb3VyID0gJHRoaXMtPmhhbmRsZUNvbG91cigkdGhpcy0+Zm9yZWdyb3VuZENvbG91cik7CiAgICAgICAgJHRoaXMtPmZvcm1hdCA9IHN0cnRvbG93ZXIoJHRoaXMtPmZvcm1hdCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldE1pbWVUeXBlKCk6IHN0cmluZwogICAgewogICAgICAgIHN3aXRjaCAoJHRoaXMtPmZvcm1hdCkgewogICAgICAgICAgICBjYXNlICdwbmcnOgogICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9wbmcnOwogICAgICAgICAgICBjYXNlICdnaWYnOgogICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9naWYnOwogICAgICAgICAgICBjYXNlICdqcGcnOgogICAgICAgICAgICBjYXNlICdqcGVnJzoKICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvanBlZyc7CiAgICAgICAgICAgIGNhc2UgJ3N2Zyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL3N2Zyt4bWwnOwogICAgICAgICAgICBjYXNlICdlcHMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi9wb3N0c2NyaXB0JzsKICAgICAgICB9CgogICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKHNwcmludGYoJ1Vua25vd24gTUlNRS10eXBlOiAlcycsICR0aGlzLT5mb3JtYXQpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UVJDb2RlSW1hZ2Uoc3RyaW5nICRxclRleHQsIGludCAkc2l6ZSk6IHN0cmluZwogICAgewogICAgICAgICRiYWNrZW5kID0gbWF0Y2ggKCR0aGlzLT5mb3JtYXQpIHsKICAgICAgICAgICAgJ3N2ZycgPT4gbmV3IFN2Z0ltYWdlQmFja0VuZCgpLAogICAgICAgICAgICAnZXBzJyA9PiBuZXcgRXBzSW1hZ2VCYWNrRW5kKCksCiAgICAgICAgICAgIGRlZmF1bHQgPT4gbmV3IEltYWdpY2tJbWFnZUJhY2tFbmQoJHRoaXMtPmZvcm1hdCksCiAgICAgICAgfTsKCiAgICAgICAgJG91dHB1dCA9ICR0aGlzLT5nZXRRUkNvZGVCeUJhY2tlbmQoJHFyVGV4dCwgJHNpemUsICRiYWNrZW5kKTsKCiAgICAgICAgaWYgKCR0aGlzLT5mb3JtYXQgPT09ICdzdmcnKSB7CiAgICAgICAgICAgICRzdmcgPSBleHBsb2RlKCJcbiIsICRvdXRwdXQpOwogICAgICAgICAgICByZXR1cm4gJHN2Z1sxXTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkb3V0cHV0OwogICAgfQoKICAgIC8qKgogICAgICogQWJzdHJhY3QgUVIgY29kZSBnZW5lcmF0aW9uIGZ1bmN0aW9uCiAgICAgKiBwcm92aWRpbmcgY29sb3VyIGNoYW5naW5nIHN1cHBvcnQKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRRUkNvZGVCeUJhY2tlbmQoJHFyVGV4dCwgJHNpemUsIEltYWdlQmFja0VuZEludGVyZmFjZSAkYmFja2VuZCkKICAgIHsKICAgICAgICAkcmVuZGVyZXJTdHlsZUFyZ3MgPSBhcnJheSgkc2l6ZSwgJHRoaXMtPmJvcmRlcldpZHRoKTsKCiAgICAgICAgaWYgKGlzX2FycmF5KCR0aGlzLT5mb3JlZ3JvdW5kQ29sb3VyKSAmJiBpc19hcnJheSgkdGhpcy0+YmFja2dyb3VuZENvbG91cikpIHsKICAgICAgICAgICAgJHJlbmRlcmVyU3R5bGVBcmdzID0gYXJyYXkoLi4uJHJlbmRlcmVyU3R5bGVBcmdzLCAuLi5hcnJheSgKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgRmlsbDo6d2l0aEZvcmVncm91bmRDb2xvcigKICAgICAgICAgICAgICAgICAgICBuZXcgUmdiKC4uLiR0aGlzLT5iYWNrZ3JvdW5kQ29sb3VyKSwKICAgICAgICAgICAgICAgICAgICBuZXcgUmdiKC4uLiR0aGlzLT5mb3JlZ3JvdW5kQ29sb3VyKSwKICAgICAgICAgICAgICAgICAgICBuZXcgRXllRmlsbChudWxsLCBudWxsKSwKICAgICAgICAgICAgICAgICAgICBuZXcgRXllRmlsbChudWxsLCBudWxsKSwKICAgICAgICAgICAgICAgICAgICBuZXcgRXllRmlsbChudWxsLCBudWxsKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSk7CiAgICAgICAgfQoKICAgICAgICAkd3JpdGVyID0gbmV3IFdyaXRlcihuZXcgSW1hZ2VSZW5kZXJlcigKICAgICAgICAgICAgbmV3IFJlbmRlcmVyU3R5bGUoLi4uJHJlbmRlcmVyU3R5bGVBcmdzKSwKICAgICAgICAgICAgJGJhY2tlbmQKICAgICAgICApKTsKCiAgICAgICAgcmV0dXJuICR3cml0ZXItPndyaXRlU3RyaW5nKCRxclRleHQpOwogICAgfQoKICAgIC8qKgogICAgICogRW5zdXJlIGNvbG91ciBpcyBhbiBhcnJheSBvZiB0aHJlZSB2YWx1ZXMgYnV0IGFsc28KICAgICAqIGFjY2VwdCBhIHN0cmluZyBhbmQgYXNzdW1lIGl0cyBhIDMgb3IgNiBjaGFyYWN0ZXIgaGV4CiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gaGFuZGxlQ29sb3VyKGFycmF5fHN0cmluZyAkY29sb3VyKTogYXJyYXl8c3RyaW5nCiAgICB7CiAgICAgICAgaWYgKGlzX3N0cmluZygkY29sb3VyKSAmJiAkY29sb3VyWzBdID09ICcjJykgewogICAgICAgICAgICAkaGV4VG9SR0IgPSBzdGF0aWMgZnVuY3Rpb24gKCRpbnB1dCkgewogICAgICAgICAgICAgICAgLy8gZW5zdXJlIGlucHV0IG5vIGxvbmdlciBoYXMgYSAjIGZvciBtb3JlIHByZWRpY3RhYmxlIGRpdmlzaW9uCiAgICAgICAgICAgICAgICAvLyBQSFAgOC4xIGRvZXMgbm90IGxpa2UgaW1wbGljaXRseSBjYXN0aW5nIGEgZmxvYXQgdG8gYW4gaW50CiAgICAgICAgICAgICAgICAkaW5wdXQgPSB0cmltKCRpbnB1dCwgJyMnKTsKCiAgICAgICAgICAgICAgICBpZiAoc3RybGVuKCRpbnB1dCkgIT0gMyAmJiBzdHJsZW4oJGlucHV0KSAhPSA2KSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oJ0NvbG91ciBzaG91bGQgYmUgYSAzIG9yIDYgY2hhcmFjdGVyIHZhbHVlIGFmdGVyIHRoZSAjJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gc3BsaXQgdGhlIGFycmF5IGludG8gdGhyZWUgY2h1bmtzCiAgICAgICAgICAgICAgICAkc3BsaXQgPSBzdHJfc3BsaXQoJGlucHV0LCBzdHJsZW4oJGlucHV0KSAvIDMpOwoKICAgICAgICAgICAgICAgIC8vIGNvcGUgd2l0aCB0aHJlZSBjaGFyYWN0ZXIgaGV4IHJlZmVyZW5jZQogICAgICAgICAgICAgICAgaWYgKHN0cmxlbigkaW5wdXQpID09IDMpIHsKICAgICAgICAgICAgICAgICAgICBhcnJheV93YWxrKCRzcGxpdCwgc3RhdGljIGZ1bmN0aW9uICgmJGNoYXJhY3RlcikgewogICAgICAgICAgICAgICAgICAgICAgICAkY2hhcmFjdGVyID0gc3RyX3JlcGVhdCgkY2hhcmFjdGVyLCAyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBjb252ZXJ0IGhleCB0byByZ2IKICAgICAgICAgICAgICAgIHJldHVybiBhcnJheV9tYXAoJ2hleGRlYycsICRzcGxpdCk7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICByZXR1cm4gJGhleFRvUkdCKCRjb2xvdXIpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzX2FycmF5KCRjb2xvdXIpICYmIGNvdW50KCRjb2xvdXIpID09IDMpIHsKICAgICAgICAgICAgcmV0dXJuICRjb2xvdXI7CiAgICAgICAgfQoKICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbignSW52YWxpZCBjb2xvdXIgdmFsdWUnKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/BaseHTTPQRCodeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKYWJzdHJhY3QgY2xhc3MgQmFzZUhUVFBRUkNvZGVQcm92aWRlciBpbXBsZW1lbnRzIElRUkNvZGVQcm92aWRlcgp7CiAgICBwcm90ZWN0ZWQgYm9vbCAkdmVyaWZ5c3NsOwoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRDb250ZW50KHN0cmluZyAkdXJsKTogc3RyaW5nfGJvb2wKICAgIHsKICAgICAgICAkY3VybGhhbmRsZSA9IGN1cmxfaW5pdCgpOwoKICAgICAgICBjdXJsX3NldG9wdF9hcnJheSgkY3VybGhhbmRsZSwgYXJyYXkoCiAgICAgICAgICAgIENVUkxPUFRfVVJMID0+ICR1cmwsCiAgICAgICAgICAgIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIgPT4gdHJ1ZSwKICAgICAgICAgICAgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCA9PiAxMCwKICAgICAgICAgICAgQ1VSTE9QVF9ETlNfQ0FDSEVfVElNRU9VVCA9PiAxMCwKICAgICAgICAgICAgQ1VSTE9QVF9USU1FT1VUID0+IDEwLAogICAgICAgICAgICBDVVJMT1BUX1NTTF9WRVJJRllQRUVSID0+ICR0aGlzLT52ZXJpZnlzc2wsCiAgICAgICAgICAgIENVUkxPUFRfVVNFUkFHRU5UID0+ICdUd29GYWN0b3JBdXRoJywKICAgICAgICApKTsKICAgICAgICAkZGF0YSA9IGN1cmxfZXhlYygkY3VybGhhbmRsZSk7CgogICAgICAgIGN1cmxfY2xvc2UoJGN1cmxoYW5kbGUpOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKdXNlIEVuZHJvaWRcUXJDb2RlXENvbG9yXENvbG9yOwp1c2UgRW5kcm9pZFxRckNvZGVcRXJyb3JDb3JyZWN0aW9uTGV2ZWw7CnVzZSBFbmRyb2lkXFFyQ29kZVxFcnJvckNvcnJlY3Rpb25MZXZlbFxFcnJvckNvcnJlY3Rpb25MZXZlbEhpZ2g7CnVzZSBFbmRyb2lkXFFyQ29kZVxFcnJvckNvcnJlY3Rpb25MZXZlbFxFcnJvckNvcnJlY3Rpb25MZXZlbEludGVyZmFjZTsKdXNlIEVuZHJvaWRcUXJDb2RlXEVycm9yQ29ycmVjdGlvbkxldmVsXEVycm9yQ29ycmVjdGlvbkxldmVsTG93Owp1c2UgRW5kcm9pZFxRckNvZGVcRXJyb3JDb3JyZWN0aW9uTGV2ZWxcRXJyb3JDb3JyZWN0aW9uTGV2ZWxNZWRpdW07CnVzZSBFbmRyb2lkXFFyQ29kZVxFcnJvckNvcnJlY3Rpb25MZXZlbFxFcnJvckNvcnJlY3Rpb25MZXZlbFF1YXJ0aWxlOwp1c2UgRW5kcm9pZFxRckNvZGVcUXJDb2RlOwp1c2UgRW5kcm9pZFxRckNvZGVcV3JpdGVyXFBuZ1dyaXRlcjsKCmNsYXNzIEVuZHJvaWRRckNvZGVQcm92aWRlciBpbXBsZW1lbnRzIElRUkNvZGVQcm92aWRlcgp7CiAgICBwdWJsaWMgJGJnY29sb3I7CgogICAgcHVibGljICRjb2xvcjsKCiAgICBwdWJsaWMgJG1hcmdpbjsKCiAgICBwdWJsaWMgJGVycm9yY29ycmVjdGlvbmxldmVsOwoKICAgIHByb3RlY3RlZCAkZW5kcm9pZDQgPSBmYWxzZTsKCiAgICBwcm90ZWN0ZWQgJGVuZHJvaWQ1ID0gZmFsc2U7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRiZ2NvbG9yID0gJ2ZmZmZmZicsICRjb2xvciA9ICcwMDAwMDAnLCAkbWFyZ2luID0gMCwgJGVycm9yY29ycmVjdGlvbmxldmVsID0gJ0gnKQogICAgewogICAgICAgICR0aGlzLT5lbmRyb2lkNCA9IG1ldGhvZF9leGlzdHMoUXJDb2RlOjpjbGFzcywgJ2NyZWF0ZScpOwogICAgICAgICR0aGlzLT5lbmRyb2lkNSA9IGVudW1fZXhpc3RzKEVycm9yQ29ycmVjdGlvbkxldmVsOjpjbGFzcyk7CgogICAgICAgICR0aGlzLT5iZ2NvbG9yID0gJHRoaXMtPmhhbmRsZUNvbG9yKCRiZ2NvbG9yKTsKICAgICAgICAkdGhpcy0+Y29sb3IgPSAkdGhpcy0+aGFuZGxlQ29sb3IoJGNvbG9yKTsKICAgICAgICAkdGhpcy0+bWFyZ2luID0gJG1hcmdpbjsKICAgICAgICAkdGhpcy0+ZXJyb3Jjb3JyZWN0aW9ubGV2ZWwgPSAkdGhpcy0+aGFuZGxlRXJyb3JDb3JyZWN0aW9uTGV2ZWwoJGVycm9yY29ycmVjdGlvbmxldmVsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWltZVR5cGUoKTogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICdpbWFnZS9wbmcnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZShzdHJpbmcgJHFyVGV4dCwgaW50ICRzaXplKTogc3RyaW5nCiAgICB7CiAgICAgICAgaWYgKCEkdGhpcy0+ZW5kcm9pZDQpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5xckNvZGVJbnN0YW5jZSgkcXJUZXh0LCAkc2l6ZSktPndyaXRlU3RyaW5nKCk7CiAgICAgICAgfQoKICAgICAgICAkd3JpdGVyID0gbmV3IFBuZ1dyaXRlcigpOwogICAgICAgIHJldHVybiAkd3JpdGVyLT53cml0ZSgkdGhpcy0+cXJDb2RlSW5zdGFuY2UoJHFyVGV4dCwgJHNpemUpKS0+Z2V0U3RyaW5nKCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHFyQ29kZUluc3RhbmNlKHN0cmluZyAkcXJUZXh0LCBpbnQgJHNpemUpOiBRckNvZGUKICAgIHsKICAgICAgICAkcXJDb2RlID0gbmV3IFFyQ29kZSgkcXJUZXh0KTsKICAgICAgICAkcXJDb2RlLT5zZXRTaXplKCRzaXplKTsKCiAgICAgICAgJHFyQ29kZS0+c2V0RXJyb3JDb3JyZWN0aW9uTGV2ZWwoJHRoaXMtPmVycm9yY29ycmVjdGlvbmxldmVsKTsKICAgICAgICAkcXJDb2RlLT5zZXRNYXJnaW4oJHRoaXMtPm1hcmdpbik7CiAgICAgICAgJHFyQ29kZS0+c2V0QmFja2dyb3VuZENvbG9yKCR0aGlzLT5iZ2NvbG9yKTsKICAgICAgICAkcXJDb2RlLT5zZXRGb3JlZ3JvdW5kQ29sb3IoJHRoaXMtPmNvbG9yKTsKCiAgICAgICAgcmV0dXJuICRxckNvZGU7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBoYW5kbGVDb2xvcihzdHJpbmcgJGNvbG9yKTogQ29sb3J8YXJyYXkKICAgIHsKICAgICAgICAkc3BsaXQgPSBzdHJfc3BsaXQoJGNvbG9yLCAyKTsKICAgICAgICAkciA9IGhleGRlYygkc3BsaXRbMF0pOwogICAgICAgICRnID0gaGV4ZGVjKCRzcGxpdFsxXSk7CiAgICAgICAgJGIgPSBoZXhkZWMoJHNwbGl0WzJdKTsKCiAgICAgICAgcmV0dXJuICR0aGlzLT5lbmRyb2lkNCA/IG5ldyBDb2xvcigkciwgJGcsICRiLCAwKSA6IGFycmF5KCdyJyA9PiAkciwgJ2cnID0+ICRnLCAnYicgPT4gJGIsICdhJyA9PiAwKTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGhhbmRsZUVycm9yQ29ycmVjdGlvbkxldmVsKHN0cmluZyAkbGV2ZWwpOiBFcnJvckNvcnJlY3Rpb25MZXZlbEludGVyZmFjZXxFcnJvckNvcnJlY3Rpb25MZXZlbAogICAgewogICAgICAgIC8vIEZpcnN0IGNoZWNrIGZvciB2ZXJzaW9uIDUgKHVzaW5nIGVudW1zKQogICAgICAgIGlmICgkdGhpcy0+ZW5kcm9pZDUpIHsKICAgICAgICAgICAgcmV0dXJuIG1hdGNoICgkbGV2ZWwpIHsKICAgICAgICAgICAgICAgICdMJyA9PiBFcnJvckNvcnJlY3Rpb25MZXZlbDo6TG93LAogICAgICAgICAgICAgICAgJ00nID0+IEVycm9yQ29ycmVjdGlvbkxldmVsOjpNZWRpdW0sCiAgICAgICAgICAgICAgICAnUScgPT4gRXJyb3JDb3JyZWN0aW9uTGV2ZWw6OlF1YXJ0aWxlLAogICAgICAgICAgICAgICAgZGVmYXVsdCA9PiBFcnJvckNvcnJlY3Rpb25MZXZlbDo6SGlnaCwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIC8vIElmIG5vdCBjaGVjayBmb3IgdmVyc2lvbiA0ICh1c2luZyBjbGFzc2VzKQogICAgICAgIGlmICgkdGhpcy0+ZW5kcm9pZDQpIHsKICAgICAgICAgICAgcmV0dXJuIG1hdGNoICgkbGV2ZWwpIHsKICAgICAgICAgICAgICAgICdMJyA9PiBuZXcgRXJyb3JDb3JyZWN0aW9uTGV2ZWxMb3coKSwKICAgICAgICAgICAgICAgICdNJyA9PiBuZXcgRXJyb3JDb3JyZWN0aW9uTGV2ZWxNZWRpdW0oKSwKICAgICAgICAgICAgICAgICdRJyA9PiBuZXcgRXJyb3JDb3JyZWN0aW9uTGV2ZWxRdWFydGlsZSgpLAogICAgICAgICAgICAgICAgZGVmYXVsdCA9PiBuZXcgRXJyb3JDb3JyZWN0aW9uTGV2ZWxIaWdoKCksCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAvLyBBbnkgb3RoZXIgdmVyc2lvbiB3aWxsIGJlIHVzaW5nIHN0cmluZ3MKICAgICAgICByZXR1cm4gbWF0Y2ggKCRsZXZlbCkgewogICAgICAgICAgICAnTCcgPT4gRXJyb3JDb3JyZWN0aW9uTGV2ZWw6OkxPVygpLAogICAgICAgICAgICAnTScgPT4gRXJyb3JDb3JyZWN0aW9uTGV2ZWw6Ok1FRElVTSgpLAogICAgICAgICAgICAnUScgPT4gRXJyb3JDb3JyZWN0aW9uTGV2ZWw6OlFVQVJUSUxFKCksCiAgICAgICAgICAgIGRlZmF1bHQgPT4gRXJyb3JDb3JyZWN0aW9uTGV2ZWw6OkhJR0goKSwKICAgICAgICB9OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeWithLogoProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKdXNlIEVuZHJvaWRcUXJDb2RlXExvZ29cTG9nbzsKdXNlIEVuZHJvaWRcUXJDb2RlXFFyQ29kZTsKdXNlIEVuZHJvaWRcUXJDb2RlXFdyaXRlclxQbmdXcml0ZXI7CgpjbGFzcyBFbmRyb2lkUXJDb2RlV2l0aExvZ29Qcm92aWRlciBleHRlbmRzIEVuZHJvaWRRckNvZGVQcm92aWRlcgp7CiAgICBwcm90ZWN0ZWQgJGxvZ29QYXRoOwoKICAgIHByb3RlY3RlZCAkbG9nb1NpemU7CgogICAgLyoqCiAgICAgKiBBZGRzIGFuIGltYWdlIHRvIHRoZSBtaWRkbGUgb2YgdGhlIFFSIENvZGUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoIFBhdGggdG8gYW4gaW1hZ2UgZmlsZQogICAgICogQHBhcmFtIGFycmF5fGludCAkc2l6ZSBKdXN0IHRoZSB3aWR0aCwgb3IgW3dpZHRoLCBoZWlnaHRdCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRMb2dvKCRwYXRoLCAkc2l6ZSA9IG51bGwpCiAgICB7CiAgICAgICAgJHRoaXMtPmxvZ29QYXRoID0gJHBhdGg7CiAgICAgICAgJHRoaXMtPmxvZ29TaXplID0gKGFycmF5KSRzaXplOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZShzdHJpbmcgJHFyVGV4dCwgaW50ICRzaXplKTogc3RyaW5nCiAgICB7CiAgICAgICAgaWYgKCEkdGhpcy0+ZW5kcm9pZDQpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5xckNvZGVJbnN0YW5jZSgkcXJUZXh0LCAkc2l6ZSktPndyaXRlU3RyaW5nKCk7CiAgICAgICAgfQoKICAgICAgICAkbG9nbyA9IG51bGw7CiAgICAgICAgaWYgKCR0aGlzLT5sb2dvUGF0aCkgewogICAgICAgICAgICAkbG9nbyA9IExvZ286OmNyZWF0ZSgkdGhpcy0+bG9nb1BhdGgpOwogICAgICAgICAgICBpZiAoJHRoaXMtPmxvZ29TaXplKSB7CiAgICAgICAgICAgICAgICAkbG9nby0+c2V0UmVzaXplVG9XaWR0aCgkdGhpcy0+bG9nb1NpemVbMF0pOwogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5sb2dvU2l6ZVsxXSkpIHsKICAgICAgICAgICAgICAgICAgICAkbG9nby0+c2V0UmVzaXplVG9IZWlnaHQoJHRoaXMtPmxvZ29TaXplWzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkd3JpdGVyID0gbmV3IFBuZ1dyaXRlcigpOwogICAgICAgIHJldHVybiAkd3JpdGVyLT53cml0ZSgkdGhpcy0+cXJDb2RlSW5zdGFuY2UoJHFyVGV4dCwgJHNpemUpLCAkbG9nbyktPmdldFN0cmluZygpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBxckNvZGVJbnN0YW5jZShzdHJpbmcgJHFyVGV4dCwgaW50ICRzaXplKTogUXJDb2RlCiAgICB7CiAgICAgICAgJHFyQ29kZSA9IHBhcmVudDo6cXJDb2RlSW5zdGFuY2UoJHFyVGV4dCwgJHNpemUpOwoKICAgICAgICBpZiAoISR0aGlzLT5lbmRyb2lkNCAmJiAkdGhpcy0+bG9nb1BhdGgpIHsKICAgICAgICAgICAgJHFyQ29kZS0+c2V0TG9nb1BhdGgoJHRoaXMtPmxvZ29QYXRoKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5sb2dvU2l6ZSkgewogICAgICAgICAgICAgICAgJHFyQ29kZS0+c2V0TG9nb1NpemUoJHRoaXMtPmxvZ29TaXplWzBdLCAkdGhpcy0+bG9nb1NpemVbMV0gPz8gbnVsbCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkcXJDb2RlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/GoogleChartsQrCodeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vY2hhcnQvaW5mb2dyYXBoaWNzL2RvY3MvcXJfY29kZXMKY2xhc3MgR29vZ2xlQ2hhcnRzUXJDb2RlUHJvdmlkZXIgZXh0ZW5kcyBCYXNlSFRUUFFSQ29kZVByb3ZpZGVyCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChwcm90ZWN0ZWQgYm9vbCAkdmVyaWZ5c3NsID0gZmFsc2UsIHB1YmxpYyBzdHJpbmcgJGVycm9yY29ycmVjdGlvbmxldmVsID0gJ0wnLCBwdWJsaWMgaW50ICRtYXJnaW4gPSA0LCBwdWJsaWMgc3RyaW5nICRlbmNvZGluZyA9ICdVVEYtOCcpCiAgICB7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldE1pbWVUeXBlKCk6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAnaW1hZ2UvcG5nJzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UVJDb2RlSW1hZ2Uoc3RyaW5nICRxclRleHQsIGludCAkc2l6ZSk6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0Q29udGVudCgkdGhpcy0+Z2V0VXJsKCRxclRleHQsICRzaXplKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVybChzdHJpbmcgJHFyVGV4dCwgaW50ICRzaXplKTogc3RyaW5nCiAgICB7CiAgICAgICAgJHF1ZXJ5UGFyYW1ldGVycyA9IGFycmF5KAogICAgICAgICAgICAnY2hzJyA9PiAkc2l6ZSAuICd4JyAuICRzaXplLAogICAgICAgICAgICAnY2hsZCcgPT4gc3RydG91cHBlcigkdGhpcy0+ZXJyb3Jjb3JyZWN0aW9ubGV2ZWwpIC4gJ3wnIC4gJHRoaXMtPm1hcmdpbiwKICAgICAgICAgICAgJ2NodCcgPT4gJ3FyJywKICAgICAgICAgICAgJ2Nob2UnID0+ICR0aGlzLT5lbmNvZGluZywKICAgICAgICAgICAgJ2NobCcgPT4gJHFyVGV4dCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vY2hhcnQuZ29vZ2xlYXBpcy5jb20vY2hhcnQ/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJHF1ZXJ5UGFyYW1ldGVycyk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/HandlesDataUri.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKdXNlIGZ1bmN0aW9uIGJhc2U2NF9kZWNvZGU7CnVzZSBmdW5jdGlvbiBwcmVnX21hdGNoOwoKdHJhaXQgSGFuZGxlc0RhdGFVcmkKewogICAgLyoqCiAgICAgKiBAcmV0dXJuIGFycmF5PHN0cmluZywgc3RyaW5nPnxudWxsCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gRGVjb2RlRGF0YVVyaShzdHJpbmcgJGRhdGF1cmkpOiA/YXJyYXkKICAgIHsKICAgICAgICBpZiAocHJlZ19tYXRjaCgnL2RhdGE6KD9QPG1pbWV0eXBlPltcd1wuXC1cK1wvXSspOyg/UDxlbmNvZGluZz5cdyspLCg/UDxkYXRhPi4qKS8nLCAkZGF0YXVyaSwgJG0pID09PSAxKSB7CiAgICAgICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgICAgICdtaW1ldHlwZScgPT4gJG1bJ21pbWV0eXBlJ10sCiAgICAgICAgICAgICAgICAnZW5jb2RpbmcnID0+ICRtWydlbmNvZGluZyddLAogICAgICAgICAgICAgICAgJ2RhdGEnID0+IGJhc2U2NF9kZWNvZGUoJG1bJ2RhdGEnXSwgdHJ1ZSksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/ImageChartsQRCodeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKLyoqCiAqIFVzZSBodHRwczovL2ltYWdlLWNoYXJ0cy5jb20gdG8gcHJvdmlkZSBhIFFSIGNvZGUKICovCmNsYXNzIEltYWdlQ2hhcnRzUVJDb2RlUHJvdmlkZXIgZXh0ZW5kcyBCYXNlSFRUUFFSQ29kZVByb3ZpZGVyCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChwcm90ZWN0ZWQgYm9vbCAkdmVyaWZ5c3NsID0gZmFsc2UsIHB1YmxpYyBzdHJpbmcgJGVycm9yY29ycmVjdGlvbmxldmVsID0gJ0wnLCBwdWJsaWMgaW50ICRtYXJnaW4gPSAxKQogICAgewogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNaW1lVHlwZSgpOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJ2ltYWdlL3BuZyc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFFSQ29kZUltYWdlKHN0cmluZyAkcXJUZXh0LCBpbnQgJHNpemUpOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldENvbnRlbnQoJHRoaXMtPmdldFVybCgkcXJUZXh0LCAkc2l6ZSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVcmwoc3RyaW5nICRxclRleHQsIGludCAkc2l6ZSk6IHN0cmluZwogICAgewogICAgICAgICRxdWVyeVBhcmFtZXRlcnMgPSBhcnJheSgKICAgICAgICAgICAgJ2NodCcgPT4gJ3FyJywKICAgICAgICAgICAgJ2NocycgPT4gY2VpbCgkc2l6ZSAvIDIpIC4gJ3gnIC4gY2VpbCgkc2l6ZSAvIDIpLAogICAgICAgICAgICAnY2hsZCcgPT4gJHRoaXMtPmVycm9yY29ycmVjdGlvbmxldmVsIC4gJ3wnIC4gJHRoaXMtPm1hcmdpbiwKICAgICAgICAgICAgJ2NobCcgPT4gJHFyVGV4dCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vaW1hZ2UtY2hhcnRzLmNvbS9jaGFydD8nIC4gaHR0cF9idWlsZF9xdWVyeSgkcXVlcnlQYXJhbWV0ZXJzKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/IQRCodeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKaW50ZXJmYWNlIElRUkNvZGVQcm92aWRlcgp7CiAgICAvKioKICAgICAqIEdlbmVyYXRlIGFuZCByZXR1cm4gdGhlIFFSIGNvZGUgdG8gZW1iZWQgaW4gYSB3ZWIgcGFnZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHFyVGV4dCB0aGUgdmFsdWUgdG8gZW5jb2RlIGluIHRoZSBRUiBjb2RlCiAgICAgKiBAcGFyYW0gaW50ICRzaXplIHRoZSBkZXNpcmVkIHNpemUgb2YgdGhlIFFSIGNvZGUKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyBmaWxlIGNvbnRlbnRzIG9mIHRoZSBRUiBjb2RlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZShzdHJpbmcgJHFyVGV4dCwgaW50ICRzaXplKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgbWltZSB0eXBlIGZvciB0aGUgUVIgY29kZQogICAgICogdGhhdCB3aWxsIGJlIGdlbmVyYXRlZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWltZVR5cGUoKTogc3RyaW5nOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/QRException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKdXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjsKCmNsYXNzIFFSRXhjZXB0aW9uIGV4dGVuZHMgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbgp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/QRicketProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKLyoqCiAqIFVzZSBodHRwOi8vcXJpY2tpdC5jb20vcXJpY2tpdF9hcHBzL3FyaWNraXRfYXBpLnBocCB0byBwcm92aWRlIGEgUVIgY29kZQogKi8KY2xhc3MgUVJpY2tldFByb3ZpZGVyIGV4dGVuZHMgQmFzZUhUVFBRUkNvZGVQcm92aWRlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QocHVibGljIHN0cmluZyAkZXJyb3Jjb3JyZWN0aW9ubGV2ZWwgPSAnTCcsIHB1YmxpYyBzdHJpbmcgJGJnY29sb3IgPSAnZmZmZmZmJywgcHVibGljIHN0cmluZyAkY29sb3IgPSAnMDAwMDAwJywgcHVibGljIHN0cmluZyAkZm9ybWF0ID0gJ3AnKQogICAgewogICAgICAgICR0aGlzLT52ZXJpZnlzc2wgPSBmYWxzZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWltZVR5cGUoKTogc3RyaW5nCiAgICB7CiAgICAgICAgc3dpdGNoIChzdHJ0b2xvd2VyKCR0aGlzLT5mb3JtYXQpKSB7CiAgICAgICAgICAgIGNhc2UgJ3AnOgogICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9wbmcnOwogICAgICAgICAgICBjYXNlICdnJzoKICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvZ2lmJzsKICAgICAgICAgICAgY2FzZSAnaic6CiAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgUVJFeGNlcHRpb24oc3ByaW50ZignVW5rbm93biBNSU1FLXR5cGU6ICVzJywgJHRoaXMtPmZvcm1hdCkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZShzdHJpbmcgJHFyVGV4dCwgaW50ICRzaXplKTogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRDb250ZW50KCR0aGlzLT5nZXRVcmwoJHFyVGV4dCwgJHNpemUpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXJsKHN0cmluZyAkcXJUZXh0LCBpbnQgJHNpemUpOiBzdHJpbmcKICAgIHsKICAgICAgICAkcXVlcnlQYXJhbWV0ZXJzID0gYXJyYXkoCiAgICAgICAgICAgICdxcnNpemUnID0+ICRzaXplLAogICAgICAgICAgICAnZScgPT4gc3RydG9sb3dlcigkdGhpcy0+ZXJyb3Jjb3JyZWN0aW9ubGV2ZWwpLAogICAgICAgICAgICAnYmdkY29sb3InID0+ICR0aGlzLT5iZ2NvbG9yLAogICAgICAgICAgICAnZmdkY29sb3InID0+ICR0aGlzLT5jb2xvciwKICAgICAgICAgICAgJ3QnID0+IHN0cnRvbG93ZXIoJHRoaXMtPmZvcm1hdCksCiAgICAgICAgICAgICdkJyA9PiAkcXJUZXh0LAogICAgICAgICk7CgogICAgICAgIHJldHVybiAnaHR0cDovL3FyaWNraXQuY29tL2FwaS9xcj8nIC4gaHR0cF9idWlsZF9xdWVyeSgkcXVlcnlQYXJhbWV0ZXJzKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Qr/QRServerProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOwoKLyoqCiAqIFVzZSBodHRwOi8vZ29xci5tZS9hcGkvZG9jL2NyZWF0ZS1xci1jb2RlLyB0byBnZXQgUVIgY29kZQogKi8KY2xhc3MgUVJTZXJ2ZXJQcm92aWRlciBleHRlbmRzIEJhc2VIVFRQUVJDb2RlUHJvdmlkZXIKewogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KHByb3RlY3RlZCBib29sICR2ZXJpZnlzc2wgPSBmYWxzZSwgcHVibGljIHN0cmluZyAkZXJyb3Jjb3JyZWN0aW9ubGV2ZWwgPSAnTCcsIHB1YmxpYyBpbnQgJG1hcmdpbiA9IDQsIHB1YmxpYyBpbnQgJHF6b25lID0gMSwgcHVibGljIHN0cmluZyAkYmdjb2xvciA9ICdmZmZmZmYnLCBwdWJsaWMgc3RyaW5nICRjb2xvciA9ICcwMDAwMDAnLCBwdWJsaWMgc3RyaW5nICRmb3JtYXQgPSAncG5nJykKICAgIHsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWltZVR5cGUoKTogc3RyaW5nCiAgICB7CiAgICAgICAgc3dpdGNoIChzdHJ0b2xvd2VyKCR0aGlzLT5mb3JtYXQpKSB7CiAgICAgICAgICAgIGNhc2UgJ3BuZyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL3BuZyc7CiAgICAgICAgICAgIGNhc2UgJ2dpZic6CiAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2dpZic7CiAgICAgICAgICAgIGNhc2UgJ2pwZyc6CiAgICAgICAgICAgIGNhc2UgJ2pwZWcnOgogICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9qcGVnJzsKICAgICAgICAgICAgY2FzZSAnc3ZnJzoKICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2Uvc3ZnK3htbCc7CiAgICAgICAgICAgIGNhc2UgJ2Vwcyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3Bvc3RzY3JpcHQnOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgUVJFeGNlcHRpb24oc3ByaW50ZignVW5rbm93biBNSU1FLXR5cGU6ICVzJywgJHRoaXMtPmZvcm1hdCkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZShzdHJpbmcgJHFyVGV4dCwgaW50ICRzaXplKTogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRDb250ZW50KCR0aGlzLT5nZXRVcmwoJHFyVGV4dCwgJHNpemUpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXJsKHN0cmluZyAkcXJUZXh0LCBpbnQgJHNpemUpOiBzdHJpbmcKICAgIHsKICAgICAgICAkcXVlcnlQYXJhbWV0ZXJzID0gYXJyYXkoCiAgICAgICAgICAgICdzaXplJyA9PiAkc2l6ZSAuICd4JyAuICRzaXplLAogICAgICAgICAgICAnZWNjJyA9PiBzdHJ0b3VwcGVyKCR0aGlzLT5lcnJvcmNvcnJlY3Rpb25sZXZlbCksCiAgICAgICAgICAgICdtYXJnaW4nID0+ICR0aGlzLT5tYXJnaW4sCiAgICAgICAgICAgICdxem9uZScgPT4gJHRoaXMtPnF6b25lLAogICAgICAgICAgICAnYmdjb2xvcicgPT4gJHRoaXMtPmRlY29kZUNvbG9yKCR0aGlzLT5iZ2NvbG9yKSwKICAgICAgICAgICAgJ2NvbG9yJyA9PiAkdGhpcy0+ZGVjb2RlQ29sb3IoJHRoaXMtPmNvbG9yKSwKICAgICAgICAgICAgJ2Zvcm1hdCcgPT4gc3RydG9sb3dlcigkdGhpcy0+Zm9ybWF0KSwKICAgICAgICAgICAgJ2RhdGEnID0+ICRxclRleHQsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICdodHRwczovL2FwaS5xcnNlcnZlci5jb20vdjEvY3JlYXRlLXFyLWNvZGUvPycgLiBodHRwX2J1aWxkX3F1ZXJ5KCRxdWVyeVBhcmFtZXRlcnMpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gZGVjb2RlQ29sb3Ioc3RyaW5nICR2YWx1ZSk6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiB2c3ByaW50ZignJWQtJWQtJWQnLCBzc2NhbmYoJHZhbHVlLCAnJTAyeCUwMnglMDJ4JykpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Rng/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Rng/CSRNGProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZzsKCmNsYXNzIENTUk5HUHJvdmlkZXIgaW1wbGVtZW50cyBJUk5HUHJvdmlkZXIKewogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSYW5kb21CeXRlcyhpbnQgJGJ5dGVjb3VudCk6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiByYW5kb21fYnl0ZXMoJGJ5dGVjb3VudCk7ICAgIC8vIFBIUDcrCiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCk6IGJvb2wKICAgIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Rng/HashRNGProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZzsKCnVzZSBmdW5jdGlvbiBpbl9hcnJheTsKCmNsYXNzIEhhc2hSTkdQcm92aWRlciBpbXBsZW1lbnRzIElSTkdQcm92aWRlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QocHJpdmF0ZSByZWFkb25seSBzdHJpbmcgJGFsZ29yaXRobSA9ICdzaGEyNTYnKQogICAgewogICAgICAgICRhbGdvcyA9IGFycmF5X3ZhbHVlcyhoYXNoX2FsZ29zKCkpOwogICAgICAgIGlmICghaW5fYXJyYXkoJHRoaXMtPmFsZ29yaXRobSwgJGFsZ29zLCB0cnVlKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgUk5HRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBhbGdvcml0aG0gc3BlY2lmaWVkJyk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmFuZG9tQnl0ZXMoaW50ICRieXRlY291bnQpOiBzdHJpbmcKICAgIHsKICAgICAgICAkcmVzdWx0ID0gJyc7CiAgICAgICAgJGhhc2ggPSBtdF9yYW5kKCk7CiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGJ5dGVjb3VudDsgJGkrKykgewogICAgICAgICAgICAkaGFzaCA9IGhhc2goJHRoaXMtPmFsZ29yaXRobSwgJGhhc2ggLiBtdF9yYW5kKCksIHRydWUpOwogICAgICAgICAgICAkcmVzdWx0IC49ICRoYXNoW210X3JhbmQoMCwgc3RybGVuKCRoYXNoKSAtIDEpXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCk6IGJvb2wKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Rng/IRNGProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZzsKCmludGVyZmFjZSBJUk5HUHJvdmlkZXIKewogICAgcHVibGljIGZ1bmN0aW9uIGdldFJhbmRvbUJ5dGVzKGludCAkYnl0ZWNvdW50KTogc3RyaW5nOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCk6IGJvb2w7Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Rng/OpenSSLRNGProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZzsKCmNsYXNzIE9wZW5TU0xSTkdQcm92aWRlciBpbXBsZW1lbnRzIElSTkdQcm92aWRlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QocHJpdmF0ZSByZWFkb25seSBib29sICRyZXF1aXJlc3Ryb25nID0gdHJ1ZSkKICAgIHsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFJhbmRvbUJ5dGVzKGludCAkYnl0ZWNvdW50KTogc3RyaW5nCiAgICB7CiAgICAgICAgLy8gd2lsbCB0aHJvdyBhbiBFeGNlcHRpb24gb24gZmFpbHVyZQogICAgICAgIHJldHVybiBvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMoJGJ5dGVjb3VudCwgJGNyeXB0b19zdHJvbmcpOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNDcnlwdG9ncmFwaGljYWxseVNlY3VyZSgpOiBib29sCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yZXF1aXJlc3Ryb25nOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Rng/RNGException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZzsKCnVzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGhFeGNlcHRpb247CgpjbGFzcyBSTkdFeGNlcHRpb24gZXh0ZW5kcyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Time/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Time/HttpTimeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFRpbWU7Cgp1c2UgRGF0ZVRpbWU7CnVzZSBFeGNlcHRpb247CgovKioKICogVGFrZXMgdGhlIHRpbWUgZnJvbSBhbnkgd2Vic2VydmVyIGJ5IGRvaW5nIGEgSEVBRCByZXF1ZXN0IG9uIHRoZSBzcGVjaWZpZWQgVVJMIGFuZCBleHRyYWN0aW5nIHRoZSAnRGF0ZTonIGhlYWRlcgogKi8KY2xhc3MgSHR0cFRpbWVQcm92aWRlciBpbXBsZW1lbnRzIElUaW1lUHJvdmlkZXIKewogICAgLyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBtaXhlZD4gJG9wdGlvbnMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KAogICAgICAgIHB1YmxpYyBzdHJpbmcgJHVybCA9ICdodHRwczovL2dvb2dsZS5jb20nLAogICAgICAgIHB1YmxpYyBzdHJpbmcgJGV4cGVjdGVkdGltZWZvcm1hdCA9ICdELCBkIE0gWSBIOmk6cyBPKycsCiAgICAgICAgcHVibGljID9hcnJheSAkb3B0aW9ucyA9IG51bGwsCiAgICApIHsKICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnMgPT09IG51bGwpIHsKICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnMgPSBhcnJheSgKICAgICAgICAgICAgICAgICdodHRwJyA9PiBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnbWV0aG9kJyA9PiAnSEVBRCcsCiAgICAgICAgICAgICAgICAgICAgJ2ZvbGxvd19sb2NhdGlvbicgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgJ2lnbm9yZV9lcnJvcnMnID0+IHRydWUsCiAgICAgICAgICAgICAgICAgICAgJ21heF9yZWRpcmVjdHMnID0+IDAsCiAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3RfZnVsbHVyaScgPT4gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAnaGVhZGVyJyA9PiBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IGNsb3NlJywKICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItYWdlbnQ6IFR3b0ZhY3RvckF1dGggSHR0cFRpbWVQcm92aWRlciAoaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgpJywKICAgICAgICAgICAgICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlJywKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaW1lKCkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkY29udGV4dCA9IHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkdGhpcy0+b3B0aW9ucyk7CiAgICAgICAgICAgICRmZCA9IGZvcGVuKCR0aGlzLT51cmwsICdyYicsIGZhbHNlLCAkY29udGV4dCk7CiAgICAgICAgICAgICRoZWFkZXJzID0gc3RyZWFtX2dldF9tZXRhX2RhdGEoJGZkKTsKICAgICAgICAgICAgZmNsb3NlKCRmZCk7CgogICAgICAgICAgICBmb3JlYWNoICgkaGVhZGVyc1snd3JhcHBlcl9kYXRhJ10gYXMgJGgpIHsKICAgICAgICAgICAgICAgIGlmIChzdHJjYXNlY21wKHN1YnN0cigkaCwgMCwgNSksICdEYXRlOicpID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lOjpjcmVhdGVGcm9tRm9ybWF0KCR0aGlzLT5leHBlY3RlZHRpbWVmb3JtYXQsIHRyaW0oc3Vic3RyKCRoLCA1KSkpLT5nZXRUaW1lc3RhbXAoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIG9yIG5vICJEYXRlOiIgaGVhZGVyIGZvdW5kJyk7CiAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRleCkgewogICAgICAgICAgICB0aHJvdyBuZXcgVGltZUV4Y2VwdGlvbihzcHJpbnRmKCdVbmFibGUgdG8gcmV0cmlldmUgdGltZSBmcm9tICVzICglcyknLCAkdGhpcy0+dXJsLCAkZXgtPmdldE1lc3NhZ2UoKSkpOwogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Time/ITimeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFRpbWU7CgppbnRlcmZhY2UgSVRpbWVQcm92aWRlcgp7CiAgICAvKioKICAgICAqIEByZXR1cm4gaW50IHRoZSBjdXJyZW50IHRpbWVzdGFtcCBhY2NvcmRpbmcgdG8gdGhpcyBwcm92aWRlcgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VGltZSgpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Time/LocalMachineTimeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFRpbWU7CgpjbGFzcyBMb2NhbE1hY2hpbmVUaW1lUHJvdmlkZXIgaW1wbGVtZW50cyBJVGltZVByb3ZpZGVyCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gdGltZSgpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Time/NTPTimeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFRpbWU7Cgp1c2UgRXhjZXB0aW9uOwoKdXNlIGZ1bmN0aW9uIHNvY2tldF9jcmVhdGU7CgovKioKICogVGFrZXMgdGhlIHRpbWUgZnJvbSBhbnkgTlRQIHNlcnZlcgogKi8KY2xhc3MgTlRQVGltZVByb3ZpZGVyIGltcGxlbWVudHMgSVRpbWVQcm92aWRlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QocHVibGljIHN0cmluZyAkaG9zdCA9ICd0aW1lLmdvb2dsZS5jb20nLCBwdWJsaWMgaW50ICRwb3J0ID0gMTIzLCBwdWJsaWMgaW50ICR0aW1lb3V0ID0gMSkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnBvcnQgPD0gMCB8fCAkdGhpcy0+cG9ydCA+IDY1NTM1KSB7CiAgICAgICAgICAgIHRocm93IG5ldyBUaW1lRXhjZXB0aW9uKCdQb3J0IG11c3QgYmUgMCA8IHBvcnQgPCA2NTUzNScpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT50aW1lb3V0IDwgMCkgewogICAgICAgICAgICB0aHJvdyBuZXcgVGltZUV4Y2VwdGlvbignVGltZW91dCBtdXN0IGJlID49IDAnKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaW1lKCkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBDcmVhdGUgYSBzb2NrZXQgYW5kIGNvbm5lY3QgdG8gTlRQIHNlcnZlcgogICAgICAgICAgICAkc29jayA9IHNvY2tldF9jcmVhdGUoQUZfSU5FVCwgU09DS19ER1JBTSwgU09MX1VEUCk7CiAgICAgICAgICAgIHNvY2tldF9zZXRfb3B0aW9uKCRzb2NrLCBTT0xfU09DS0VULCBTT19SQ1ZUSU1FTywgYXJyYXkoJ3NlYycgPT4gJHRoaXMtPnRpbWVvdXQsICd1c2VjJyA9PiAwKSk7CiAgICAgICAgICAgIHNvY2tldF9jb25uZWN0KCRzb2NrLCAkdGhpcy0+aG9zdCwgJHRoaXMtPnBvcnQpOwoKICAgICAgICAgICAgLy8gU2VuZCByZXF1ZXN0CiAgICAgICAgICAgICRtc2cgPSAiXDAxMCIgLiBzdHJfcmVwZWF0KCJcMCIsIDQ3KTsKICAgICAgICAgICAgc29ja2V0X3NlbmQoJHNvY2ssICRtc2csIHN0cmxlbigkbXNnKSwgMCk7CgogICAgICAgICAgICAvLyBSZWNlaXZlIHJlc3BvbnNlIGFuZCBjbG9zZSBzb2NrZXQKICAgICAgICAgICAgaWYgKHNvY2tldF9yZWN2KCRzb2NrLCAkcmVjdiwgNDgsIE1TR19XQUlUQUxMKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oc29ja2V0X3N0cmVycm9yKHNvY2tldF9sYXN0X2Vycm9yKCRzb2NrKSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHNvY2tldF9jbG9zZSgkc29jayk7CgogICAgICAgICAgICAvLyBJbnRlcnByZXQgcmVzcG9uc2UKICAgICAgICAgICAgJGRhdGEgPSB1bnBhY2soJ04xMicsICRyZWN2KTsKICAgICAgICAgICAgJHRpbWVzdGFtcCA9IChpbnQpc3ByaW50ZignJXUnLCAkZGF0YVs5XSk7CgogICAgICAgICAgICAvLyBOVFAgaXMgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgMDAwMCBVVCBvbiAxIEphbnVhcnkgMTkwMCBVbml4IHRpbWUgaXMgc2Vjb25kcyBzaW5jZSAwMDAwIFVUIG9uIDEgSmFudWFyeSAxOTcwCiAgICAgICAgICAgIHJldHVybiAkdGltZXN0YW1wIC0gMjIwODk4ODgwMDsKICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gJGV4KSB7CiAgICAgICAgICAgIHRocm93IG5ldyBUaW1lRXhjZXB0aW9uKHNwcmludGYoJ1VuYWJsZSB0byByZXRyaWV2ZSB0aW1lIGZyb20gJXMgKCVzKScsICR0aGlzLT5ob3N0LCAkZXgtPmdldE1lc3NhZ2UoKSkpOwogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/Providers/Time/TimeException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFRpbWU7Cgp1c2UgUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoRXhjZXB0aW9uOwoKY2xhc3MgVGltZUV4Y2VwdGlvbiBleHRlbmRzIFR3b0ZhY3RvckF1dGhFeGNlcHRpb24Kewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/TwoFactorAuth.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGg7Cgp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcSVFSQ29kZVByb3ZpZGVyOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcUVJTZXJ2ZXJQcm92aWRlcjsKdXNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZ1xDU1JOR1Byb3ZpZGVyOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUm5nXEhhc2hSTkdQcm92aWRlcjsKdXNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZ1xJUk5HUHJvdmlkZXI7CnVzZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xSbmdcT3BlblNTTFJOR1Byb3ZpZGVyOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxIdHRwVGltZVByb3ZpZGVyOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxJVGltZVByb3ZpZGVyOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxMb2NhbE1hY2hpbmVUaW1lUHJvdmlkZXI7CnVzZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xUaW1lXE5UUFRpbWVQcm92aWRlcjsKCi8vIEJhc2VkIG9uIC8gaW5zcGlyZWQgYnk6IGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBHYW5nc3RhL0dvb2dsZUF1dGhlbnRpY2F0b3IKLy8gQWxnb3JpdGhtcywgZGlnaXRzLCBwZXJpb2QgZXRjLiBleHBsYWluZWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xlLWF1dGhlbnRpY2F0b3Ivd2lraS9LZXktVXJpLUZvcm1hdApjbGFzcyBUd29GYWN0b3JBdXRoCnsKICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyAkX2Jhc2UzMmRpY3QgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1Njc9JzsKCiAgICAvKiogQHZhciBhcnJheTxzdHJpbmc+ICovCiAgICBwcml2YXRlIHN0YXRpYyBhcnJheSAkX2Jhc2UzMjsKCiAgICAvKiogQHZhciBhcnJheTxzdHJpbmcsIGludD4gKi8KICAgIHByaXZhdGUgc3RhdGljIGFycmF5ICRfYmFzZTMybG9va3VwID0gYXJyYXkoKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSA/c3RyaW5nICAgJGlzc3VlciA9IG51bGwsCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnQgICAgICAgJGRpZ2l0cyA9IDYsCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnQgICAgICAgJHBlcmlvZCA9IDMwLAogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgQWxnb3JpdGhtICRhbGdvcml0aG0gPSBBbGdvcml0aG06OlNoYTEsCiAgICAgICAgcHJpdmF0ZSA/SVFSQ29kZVByb3ZpZGVyICAgJHFyY29kZXByb3ZpZGVyID0gbnVsbCwKICAgICAgICBwcml2YXRlID9JUk5HUHJvdmlkZXIgICAgICAkcm5ncHJvdmlkZXIgPSBudWxsLAogICAgICAgIHByaXZhdGUgP0lUaW1lUHJvdmlkZXIgICAgICR0aW1lcHJvdmlkZXIgPSBudWxsCiAgICApIHsKICAgICAgICBpZiAoJHRoaXMtPmRpZ2l0cyA8PSAwKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uKCdEaWdpdHMgbXVzdCBiZSA+IDAnKTsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+cGVyaW9kIDw9IDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFR3b0ZhY3RvckF1dGhFeGNlcHRpb24oJ1BlcmlvZCBtdXN0IGJlIGludCA+IDAnKTsKICAgICAgICB9CgogICAgICAgIHNlbGY6OiRfYmFzZTMyID0gc3RyX3NwbGl0KHNlbGY6OiRfYmFzZTMyZGljdCk7CiAgICAgICAgc2VsZjo6JF9iYXNlMzJsb29rdXAgPSBhcnJheV9mbGlwKHNlbGY6OiRfYmFzZTMyKTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIG5ldyBzZWNyZXQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZVNlY3JldChpbnQgJGJpdHMgPSA4MCwgYm9vbCAkcmVxdWlyZWNyeXB0b3NlY3VyZSA9IHRydWUpOiBzdHJpbmcKICAgIHsKICAgICAgICAkc2VjcmV0ID0gJyc7CiAgICAgICAgJGJ5dGVzID0gKGludCljZWlsKCRiaXRzIC8gNSk7ICAgLy8gV2UgdXNlIDUgYml0cyBvZiBlYWNoIGJ5dGUgKHNpbmNlIHdlIGhhdmUgYSAzMi1jaGFyYWN0ZXIgJ2FscGhhYmV0JyAvIEJBU0UzMikKICAgICAgICAkcm5ncHJvdmlkZXIgPSAkdGhpcy0+Z2V0Um5nUHJvdmlkZXIoKTsKICAgICAgICBpZiAoJHJlcXVpcmVjcnlwdG9zZWN1cmUgJiYgISRybmdwcm92aWRlci0+aXNDcnlwdG9ncmFwaGljYWxseVNlY3VyZSgpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uKCdSTkcgcHJvdmlkZXIgaXMgbm90IGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZScpOwogICAgICAgIH0KICAgICAgICAkcm5kID0gJHJuZ3Byb3ZpZGVyLT5nZXRSYW5kb21CeXRlcygkYnl0ZXMpOwogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRieXRlczsgJGkrKykgewogICAgICAgICAgICAkc2VjcmV0IC49IHNlbGY6OiRfYmFzZTMyW29yZCgkcm5kWyRpXSkgJiAzMV07ICAvL01hc2sgb3V0IGxlZnQgMyBiaXRzIGZvciAwLTMxIHZhbHVlcwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHNlY3JldDsKICAgIH0KCiAgICAvKioKICAgICAqIENhbGN1bGF0ZSB0aGUgY29kZSB3aXRoIGdpdmVuIHNlY3JldCBhbmQgcG9pbnQgaW4gdGltZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29kZShzdHJpbmcgJHNlY3JldCwgP2ludCAkdGltZSA9IG51bGwpOiBzdHJpbmcKICAgIHsKICAgICAgICAkc2VjcmV0a2V5ID0gJHRoaXMtPmJhc2UzMkRlY29kZSgkc2VjcmV0KTsKCiAgICAgICAgJHRpbWVzdGFtcCA9ICJcMFwwXDBcMCIgLiBwYWNrKCdOKicsICR0aGlzLT5nZXRUaW1lU2xpY2UoJHRoaXMtPmdldFRpbWUoJHRpbWUpKSk7ICAvLyBQYWNrIHRpbWUgaW50byBiaW5hcnkgc3RyaW5nCiAgICAgICAgJGhhc2hobWFjID0gaGFzaF9obWFjKCR0aGlzLT5hbGdvcml0aG0tPnZhbHVlLCAkdGltZXN0YW1wLCAkc2VjcmV0a2V5LCB0cnVlKTsgICAgICAgICAgICAgLy8gSGFzaCBpdCB3aXRoIHVzZXJzIHNlY3JldCBrZXkKICAgICAgICAkaGFzaHBhcnQgPSBzdWJzdHIoJGhhc2hobWFjLCBvcmQoc3Vic3RyKCRoYXNoaG1hYywgLTEpKSAmIDB4MEYsIDQpOyAgICAgICAgICAgICAgIC8vIFVzZSBsYXN0IG5pYmJsZSBvZiByZXN1bHQgYXMgaW5kZXgvb2Zmc2V0IGFuZCBncmFiIDQgYnl0ZXMgb2YgdGhlIHJlc3VsdAogICAgICAgICR2YWx1ZSA9IHVucGFjaygnTicsICRoYXNocGFydCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5wYWNrIGJpbmFyeSB2YWx1ZQogICAgICAgICR2YWx1ZSA9ICR2YWx1ZVsxXSAmIDB4N0ZGRkZGRkY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHJvcCBNU0IsIGtlZXAgb25seSAzMSBiaXRzCgogICAgICAgIHJldHVybiBzdHJfcGFkKChzdHJpbmcpKCR2YWx1ZSAlIDEwICoqICR0aGlzLT5kaWdpdHMpLCAkdGhpcy0+ZGlnaXRzLCAnMCcsIFNUUl9QQURfTEVGVCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDaGVjayBpZiB0aGUgY29kZSBpcyBjb3JyZWN0LiBUaGlzIHdpbGwgYWNjZXB0IGNvZGVzIHN0YXJ0aW5nIGZyb20gKCRkaXNjcmVwYW5jeSAqICRwZXJpb2QpIHNlYyBhZ28gdG8gKCRkaXNjcmVwYW5jeSAqIHBlcmlvZCkgc2VjIGZyb20gbm93CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB2ZXJpZnlDb2RlKHN0cmluZyAkc2VjcmV0LCBzdHJpbmcgJGNvZGUsIGludCAkZGlzY3JlcGFuY3kgPSAxLCA/aW50ICR0aW1lID0gbnVsbCwgP2ludCAmJHRpbWVzbGljZSA9IDApOiBib29sCiAgICB7CiAgICAgICAgJHRpbWVzdGFtcCA9ICR0aGlzLT5nZXRUaW1lKCR0aW1lKTsKCiAgICAgICAgJHRpbWVzbGljZSA9IDA7CgogICAgICAgIC8vIFRvIGtlZXAgc2FmZSBmcm9tIHRpbWluZy1hdHRhY2tzIHdlIGl0ZXJhdGUgKmFsbCogcG9zc2libGUgY29kZXMgZXZlbiB0aG91Z2ggd2UgYWxyZWFkeSBtYXkgaGF2ZQogICAgICAgIC8vIHZlcmlmaWVkIGEgY29kZSBpcyBjb3JyZWN0LiBXZSB1c2UgdGhlIHRpbWVzbGljZSB2YXJpYWJsZSB0byBob2xkIGVpdGhlciAwIChubyBtYXRjaCkgb3IgdGhlIHRpbWVzbGljZQogICAgICAgIC8vIG9mIHRoZSBtYXRjaC4gRWFjaCBpdGVyYXRpb24gd2UgZWl0aGVyIHNldCB0aGUgdGltZXNsaWNlIHZhcmlhYmxlIHRvIHRoZSB0aW1lc2xpY2Ugb2YgdGhlIG1hdGNoCiAgICAgICAgLy8gb3Igc2V0IHRoZSB2YWx1ZSB0byBpdHNlbGYuICBUaGlzIGlzIGFuIGVmZm9ydCB0byBtYWludGFpbiBjb25zdGFudCBleGVjdXRpb24gdGltZSBmb3IgdGhlIGNvZGUuCiAgICAgICAgZm9yICgkaSA9IC0kZGlzY3JlcGFuY3k7ICRpIDw9ICRkaXNjcmVwYW5jeTsgJGkrKykgewogICAgICAgICAgICAkdHMgPSAkdGltZXN0YW1wICsgKCRpICogJHRoaXMtPnBlcmlvZCk7CiAgICAgICAgICAgICRzbGljZSA9ICR0aGlzLT5nZXRUaW1lU2xpY2UoJHRzKTsKICAgICAgICAgICAgJHRpbWVzbGljZSA9ICR0aGlzLT5jb2RlRXF1YWxzKCR0aGlzLT5nZXRDb2RlKCRzZWNyZXQsICR0cyksICRjb2RlKSA/ICRzbGljZSA6ICR0aW1lc2xpY2U7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRpbWVzbGljZSA+IDA7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgZGF0YS11cmkgb2YgUVJDb2RlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZUFzRGF0YVVyaShzdHJpbmcgJGxhYmVsLCBzdHJpbmcgJHNlY3JldCwgaW50ICRzaXplID0gMjAwKTogc3RyaW5nCiAgICB7CiAgICAgICAgaWYgKCRzaXplIDw9IDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFR3b0ZhY3RvckF1dGhFeGNlcHRpb24oJ1NpemUgbXVzdCBiZSA+IDAnKTsKICAgICAgICB9CgogICAgICAgICRxcmNvZGVwcm92aWRlciA9ICR0aGlzLT5nZXRRckNvZGVQcm92aWRlcigpOwogICAgICAgIHJldHVybiAnZGF0YTonCiAgICAgICAgICAgIC4gJHFyY29kZXByb3ZpZGVyLT5nZXRNaW1lVHlwZSgpCiAgICAgICAgICAgIC4gJztiYXNlNjQsJwogICAgICAgICAgICAuIGJhc2U2NF9lbmNvZGUoJHFyY29kZXByb3ZpZGVyLT5nZXRRUkNvZGVJbWFnZSgkdGhpcy0+Z2V0UVJUZXh0KCRsYWJlbCwgJHNlY3JldCksICRzaXplKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDb21wYXJlIGRlZmF1bHQgdGltZXByb3ZpZGVyIHdpdGggc3BlY2lmaWVkIHRpbWVwcm92aWRlcnMgYW5kIGVuc3VyZSB0aGUgdGltZSBpcyB3aXRoaW4gdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc2Vjb25kcyAobGVuaWVuY3kpCiAgICAgKiBAcGFyYW0gYXJyYXk8SVRpbWVQcm92aWRlcj4gJHRpbWVwcm92aWRlcnMKICAgICAqIEB0aHJvd3MgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZW5zdXJlQ29ycmVjdFRpbWUoP2FycmF5ICR0aW1lcHJvdmlkZXJzID0gbnVsbCwgaW50ICRsZW5pZW5jeSA9IDUpOiB2b2lkCiAgICB7CiAgICAgICAgaWYgKCR0aW1lcHJvdmlkZXJzID09PSBudWxsKSB7CiAgICAgICAgICAgICR0aW1lcHJvdmlkZXJzID0gYXJyYXkoCiAgICAgICAgICAgICAgICBuZXcgTlRQVGltZVByb3ZpZGVyKCksCiAgICAgICAgICAgICAgICBuZXcgSHR0cFRpbWVQcm92aWRlcigpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgLy8gR2V0IGRlZmF1bHQgdGltZSBwcm92aWRlcgogICAgICAgICR0aW1lcHJvdmlkZXIgPSAkdGhpcy0+Z2V0VGltZVByb3ZpZGVyKCk7CgogICAgICAgIC8vIEl0ZXJhdGUgc3BlY2lmaWVkIHRpbWUgcHJvdmlkZXJzCiAgICAgICAgZm9yZWFjaCAoJHRpbWVwcm92aWRlcnMgYXMgJHQpIHsKICAgICAgICAgICAgaWYgKCEoJHQgaW5zdGFuY2VvZiBJVGltZVByb3ZpZGVyKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR3b0ZhY3RvckF1dGhFeGNlcHRpb24oJ09iamVjdCBkb2VzIG5vdCBpbXBsZW1lbnQgSVRpbWVQcm92aWRlcicpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBHZXQgdGltZSBmcm9tIGRlZmF1bHQgdGltZSBwcm92aWRlciBhbmQgY29tcGFyZSB0byBzcGVjaWZpYyB0aW1lIHByb3ZpZGVyIGFuZCB0aHJvdyBpZiB0aW1lIGRpZmZlcmVuY2UgaXMgbW9yZSB0aGFuIHNwZWNpZmllZCBudW1iZXIgb2Ygc2Vjb25kcyBsZW5pZW5jeQogICAgICAgICAgICBpZiAoYWJzKCR0aW1lcHJvdmlkZXItPmdldFRpbWUoKSAtICR0LT5nZXRUaW1lKCkpID4gJGxlbmllbmN5KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbihzcHJpbnRmKCdUaW1lIGZvciB0aW1lcHJvdmlkZXIgaXMgb2ZmIGJ5IG1vcmUgdGhhbiAlZCBzZWNvbmRzIHdoZW4gY29tcGFyZWQgdG8gJXMnLCAkbGVuaWVuY3ksIGdldF9jbGFzcygkdCkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEJ1aWxkcyBhIHN0cmluZyB0byBiZSBlbmNvZGVkIGluIGEgUVIgY29kZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UVJUZXh0KHN0cmluZyAkbGFiZWwsIHN0cmluZyAkc2VjcmV0KTogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICdvdHBhdXRoOi8vdG90cC8nIC4gcmF3dXJsZW5jb2RlKCRsYWJlbCkKICAgICAgICAgICAgLiAnP3NlY3JldD0nIC4gcmF3dXJsZW5jb2RlKCRzZWNyZXQpCiAgICAgICAgICAgIC4gJyZpc3N1ZXI9JyAuIHJhd3VybGVuY29kZSgoc3RyaW5nKSR0aGlzLT5pc3N1ZXIpCiAgICAgICAgICAgIC4gJyZwZXJpb2Q9JyAuICR0aGlzLT5wZXJpb2QKICAgICAgICAgICAgLiAnJmFsZ29yaXRobT0nIC4gcmF3dXJsZW5jb2RlKHN0cnRvdXBwZXIoJHRoaXMtPmFsZ29yaXRobS0+dmFsdWUpKQogICAgICAgICAgICAuICcmZGlnaXRzPScgLiAkdGhpcy0+ZGlnaXRzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRckNvZGVQcm92aWRlcigpOiBJUVJDb2RlUHJvdmlkZXIKICAgIHsKICAgICAgICAvLyBTZXQgZGVmYXVsdCBRUiBDb2RlIHByb3ZpZGVyIGlmIG5vbmUgd2FzIHNwZWNpZmllZAogICAgICAgIHJldHVybiAkdGhpcy0+cXJjb2RlcHJvdmlkZXIgPz89IG5ldyBRUlNlcnZlclByb3ZpZGVyKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAdGhyb3dzIFR3b0ZhY3RvckF1dGhFeGNlcHRpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFJuZ1Byb3ZpZGVyKCk6IElSTkdQcm92aWRlcgogICAgewogICAgICAgIGlmICgkdGhpcy0+cm5ncHJvdmlkZXIgIT09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5ybmdwcm92aWRlcjsKICAgICAgICB9CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncmFuZG9tX2J5dGVzJykpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5ybmdwcm92aWRlciA9IG5ldyBDU1JOR1Byb3ZpZGVyKCk7CiAgICAgICAgfQogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ29wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcycpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cm5ncHJvdmlkZXIgPSBuZXcgT3BlblNTTFJOR1Byb3ZpZGVyKCk7CiAgICAgICAgfQogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2hhc2gnKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJuZ3Byb3ZpZGVyID0gbmV3IEhhc2hSTkdQcm92aWRlcigpOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbignVW5hYmxlIHRvIGZpbmQgYSBzdWl0ZWQgUk5HUHJvdmlkZXInKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VGltZVByb3ZpZGVyKCk6IElUaW1lUHJvdmlkZXIKICAgIHsKICAgICAgICAvLyBTZXQgZGVmYXVsdCB0aW1lIHByb3ZpZGVyIGlmIG5vbmUgd2FzIHNwZWNpZmllZAogICAgICAgIHJldHVybiAkdGhpcy0+dGltZXByb3ZpZGVyID8/PSBuZXcgTG9jYWxNYWNoaW5lVGltZVByb3ZpZGVyKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaW1pbmctYXR0YWNrIHNhZmUgY29tcGFyaXNvbiBvZiAyIGNvZGVzIChzZWUgaHR0cDovL2Jsb2cuaXJjbWF4ZWxsLmNvbS8yMDE0LzExL2l0cy1hbGwtYWJvdXQtdGltZS5odG1sKQogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIGNvZGVFcXVhbHMoc3RyaW5nICRzYWZlLCBzdHJpbmcgJHVzZXIpOiBib29sCiAgICB7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaGFzaF9lcXVhbHMnKSkgewogICAgICAgICAgICByZXR1cm4gaGFzaF9lcXVhbHMoJHNhZmUsICR1c2VyKTsKICAgICAgICB9CiAgICAgICAgLy8gSW4gZ2VuZXJhbCwgaXQncyBub3QgcG9zc2libGUgdG8gcHJldmVudCBsZW5ndGggbGVha3MuIFNvIGl0J3MgT0sgdG8gbGVhayB0aGUgbGVuZ3RoLiBUaGUgaW1wb3J0YW50IHBhcnQgaXMgdGhhdAogICAgICAgIC8vIHdlIGRvbid0IGxlYWsgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRpZmZlcmVuY2Ugb2YgdGhlIHR3byBzdHJpbmdzLgogICAgICAgIGlmIChzdHJsZW4oJHNhZmUpID09PSBzdHJsZW4oJHVzZXIpKSB7CiAgICAgICAgICAgICRyZXN1bHQgPSAwOwogICAgICAgICAgICAkc3RybGVuID0gc3RybGVuKCRzYWZlKTsKICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJHN0cmxlbjsgJGkrKykgewogICAgICAgICAgICAgICAgJHJlc3VsdCB8PSAob3JkKCRzYWZlWyRpXSkgXiBvcmQoJHVzZXJbJGldKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQgPT09IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRpbWUoP2ludCAkdGltZSA9IG51bGwpOiBpbnQKICAgIHsKICAgICAgICByZXR1cm4gJHRpbWUgPz8gJHRoaXMtPmdldFRpbWVQcm92aWRlcigpLT5nZXRUaW1lKCk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRUaW1lU2xpY2UoP2ludCAkdGltZSA9IG51bGwsIGludCAkb2Zmc2V0ID0gMCk6IGludAogICAgewogICAgICAgIHJldHVybiAoaW50KWZsb29yKCR0aW1lIC8gJHRoaXMtPnBlcmlvZCkgKyAoJG9mZnNldCAqICR0aGlzLT5wZXJpb2QpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gYmFzZTMyRGVjb2RlKHN0cmluZyAkdmFsdWUpOiBzdHJpbmcKICAgIHsKICAgICAgICBpZiAoJHZhbHVlID09PSAnJykgewogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfQoKICAgICAgICBpZiAocHJlZ19tYXRjaCgnL1teJyAuIHByZWdfcXVvdGUoc2VsZjo6JF9iYXNlMzJkaWN0LCAnLycpIC4gJ10vJywgJHZhbHVlKSAhPT0gMCkgewogICAgICAgICAgICB0aHJvdyBuZXcgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbignSW52YWxpZCBiYXNlMzIgc3RyaW5nJyk7CiAgICAgICAgfQoKICAgICAgICAkYnVmZmVyID0gJyc7CiAgICAgICAgZm9yZWFjaCAoc3RyX3NwbGl0KCR2YWx1ZSkgYXMgJGNoYXIpIHsKICAgICAgICAgICAgaWYgKCRjaGFyICE9PSAnPScpIHsKICAgICAgICAgICAgICAgICRidWZmZXIgLj0gc3RyX3BhZChkZWNiaW4oc2VsZjo6JF9iYXNlMzJsb29rdXBbJGNoYXJdKSwgNSwgJzAnLCBTVFJfUEFEX0xFRlQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRsZW5ndGggPSBzdHJsZW4oJGJ1ZmZlcik7CiAgICAgICAgJGJsb2NrcyA9IHRyaW0oY2h1bmtfc3BsaXQoc3Vic3RyKCRidWZmZXIsIDAsICRsZW5ndGggLSAoJGxlbmd0aCAlIDgpKSwgOCwgJyAnKSk7CgogICAgICAgICRvdXRwdXQgPSAnJzsKICAgICAgICBmb3JlYWNoIChleHBsb2RlKCcgJywgJGJsb2NrcykgYXMgJGJsb2NrKSB7CiAgICAgICAgICAgICRvdXRwdXQgLj0gY2hyKGJpbmRlYyhzdHJfcGFkKCRibG9jaywgOCwgJzAnLCBTVFJfUEFEX1JJR0hUKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dHB1dDsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/lib/TwoFactorAuthException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFJvYlRocmVlXEF1dGg7Cgp1c2UgRXhjZXB0aW9uOwoKY2xhc3MgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbgp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAyMSBSb2IgSmFuc3NlbiBhbmQgY29udHJpYnV0b3JzCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbApjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbApjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFClNPRlRXQVJFLgoK]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/logo.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/multifactorauthforeveryone.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/phpstan.neon</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[cGFyYW1ldGVyczoKICBsZXZlbDogNgoKICBleGNsdWRlUGF0aHM6CiAgICAtICVjdXJyZW50V29ya2luZ0RpcmVjdG9yeSUvbGliL1Byb3ZpZGVycy9Rci9CYWNvblFyQ29kZVByb3ZpZGVyLnBocAogICAgLSAlY3VycmVudFdvcmtpbmdEaXJlY3RvcnklL2xpYi9Qcm92aWRlcnMvUXIvRW5kcm9pZFFyQ29kZVByb3ZpZGVyLnBocAogICAgLSAlY3VycmVudFdvcmtpbmdEaXJlY3RvcnklL2xpYi9Qcm92aWRlcnMvUXIvRW5kcm9pZFFyQ29kZVdpdGhMb2dvUHJvdmlkZXIucGhwCgogIHBhdGhzOgogICAgLSAlY3VycmVudFdvcmtpbmdEaXJlY3RvcnklL2xpYgogICAgLSAlY3VycmVudFdvcmtpbmdEaXJlY3RvcnklL3Rlc3RzCgo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/phpunit.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHBocHVuaXQgYmFja3VwR2xvYmFscz0iZmFsc2UiCiAgICAgICAgIGJhY2t1cFN0YXRpY0F0dHJpYnV0ZXM9ImZhbHNlIgogICAgICAgICBjb2xvcnM9InRydWUiCiAgICAgICAgIGNvbnZlcnREZXByZWNhdGlvbnNUb0V4Y2VwdGlvbnM9InRydWUiCiAgICAgICAgIGNvbnZlcnRFcnJvcnNUb0V4Y2VwdGlvbnM9InRydWUiCiAgICAgICAgIGNvbnZlcnROb3RpY2VzVG9FeGNlcHRpb25zPSJ0cnVlIgogICAgICAgICBjb252ZXJ0V2FybmluZ3NUb0V4Y2VwdGlvbnM9InRydWUiCiAgICAgICAgIHByb2Nlc3NJc29sYXRpb249ImZhbHNlIgogICAgICAgICB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cHM6Ly9zY2hlbWEucGhwdW5pdC5kZS85LjMvcGhwdW5pdC54c2QiCiAgICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCiAgICAgICAgIHN0b3BPbkZhaWx1cmU9ImZhbHNlIj4KICA8dGVzdHN1aXRlcz4KICAgIDx0ZXN0c3VpdGUgbmFtZT0iVW5pdCI+CiAgICAgIDxkaXJlY3Rvcnkgc3VmZml4PSJUZXN0LnBocCI+Li90ZXN0czwvZGlyZWN0b3J5PgogICAgPC90ZXN0c3VpdGU+CiAgPC90ZXN0c3VpdGVzPgogIDxjb3ZlcmFnZSBwcm9jZXNzVW5jb3ZlcmVkRmlsZXM9InRydWUiPgogICAgPGluY2x1ZGU+CiAgICAgIDxkaXJlY3Rvcnkgc3VmZml4PSIucGhwIj4uL2xpYjwvZGlyZWN0b3J5PgogICAgPC9pbmNsdWRlPgogICAgPHJlcG9ydD4KICAgICAgPGh0bWwgb3V0cHV0RGlyZWN0b3J5PSJidWlsZC9jb3ZlcmFnZSIvPgogICAgICA8dGV4dCBvdXRwdXRGaWxlPSJwaHA6Ly9zdGRvdXQiLz4KICAgIDwvcmVwb3J0PgogIDwvY292ZXJhZ2U+CjwvcGhwdW5pdD4K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyAhW0xvZ29dKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoL21hc3Rlci9sb2dvLnBuZykgUEhQIGxpYnJhcnkgZm9yIFR3byBGYWN0b3IgQXV0aGVudGljYXRpb24KClshW0J1aWxkIHN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC90ZXN0LnltbD9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvYWN0aW9ucz9xdWVyeT1icmFuY2glM0FtYXN0ZXIpIFshW0xhdGVzdCBTdGFibGUgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9wYWNrYWdpc3Qvdi9yb2J0aHJlZS90d29mYWN0b3JhdXRoLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9yb2J0aHJlZS90d29mYWN0b3JhdXRoKSBbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC9sL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGguc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oTElDRU5TRSkgWyFbRG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC9kdC9yb2J0aHJlZS90d29mYWN0b3JhdXRoLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9yb2J0aHJlZS90d29mYWN0b3JhdXRoKSBbIVtQYXlQYWwgZG9uYXRlIGJ1dHRvbl0oaHR0cDovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3BheXBhbC1kb25hdGUtb3JhbmdlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3I/Y21kPV9zLXhjbGljayZob3N0ZWRfYnV0dG9uX2lkPTZNQjVNMlNRTFA2MzYgIktlZXAgbWUgb2ZmIHRoZSBzdHJlZXRzIikKClBIUCBsaWJyYXJ5IGZvciBbdHdvLWZhY3RvciAob3IgbXVsdGktZmFjdG9yKSBhdXRoZW50aWNhdGlvbl0oaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NdWx0aS1mYWN0b3JfYXV0aGVudGljYXRpb24pIHVzaW5nIFtUT1RQXShodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1RpbWUtYmFzZWRfT25lLXRpbWVfUGFzc3dvcmRfQWxnb3JpdGhtKSBhbmQgW1FSLWNvZGVzXShodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1FSX2NvZGUpLiBJbnNwaXJlZCBieSwgYmFzZWQgb24gYnV0IG1vc3QgaW1wb3J0YW50bHkgYW4gKmltcHJvdmVtZW50KiBvbiAnW1BIUEdhbmdzdGEvR29vZ2xlQXV0aGVudGljYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL1BIUEdhbmdzdGEvR29vZ2xlQXV0aGVudGljYXRvciknLiBUaGVyZSdzIGEgWy5OZXQgaW1wbGVtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoLk5ldCkgb2YgdGhpcyBsaWJyYXJ5IGFzIHdlbGwuCgo8cCBhbGlnbj0iY2VudGVyIj4KPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoL21hc3Rlci9tdWx0aWZhY3RvcmF1dGhmb3JldmVyeW9uZS5wbmciPgo8L3A+CgojIyBXYXJuaW5nOgoKQnkgZGVmYXVsdCwgdGhpcyBwYWNrYWdlIHVzZXMgdGhlIGBsaWIvUHJvdmlkZXJzL1FSU2VydmVyUHJvdmlkZXIucGhwYCBhcyBRUiBjb2RlIGdlbmVyYXRvci4gVGhpcyBwcm92aWRlciBpcyBfX25vdF9fIHN1Z2dlc3RlZCBmb3IgYXBwbGljYXRpb25zIHdoZXJlIGFic29sdXRlIHNlY3VyaXR5IGlzIG5lZWRlZCwgYmVjYXVzZSBpdCB1c2VzIGFuIGV4dGVybmFsIHNlcnZpY2UgZm9yIHRoZSBRUiBjb2RlIGdlbmVyYXRpb24uCgoKWW91IGNhbiBtYWtlIHVzZSBvZiB0aGUgaW5jbHVkZWQgW0VuZHJvaWRdKGh0dHBzOi8vcm9idGhyZWUuZ2l0aHViLmlvL1R3b0ZhY3RvckF1dGgvcXItY29kZXMvZW5kcm9pZC5odG1sKSBvciBbQmFjb25dKGh0dHBzOi8vcm9idGhyZWUuZ2l0aHViLmlvL1R3b0ZhY3RvckF1dGgvcXItY29kZXMvYmFjb24uaHRtbCkgcHJvdmlkZXJzIHdoaWNoIGdlbmVyYXRlIGxvY2FsbHkuCgojIyBSZXF1aXJlbWVudHMKCiogUmVxdWlyZXMgUEhQIHZlcnNpb24gPj04LjEKKiBbY1VSTF0oaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHApIHdoZW4gdXNpbmcgdGhlIHByb3ZpZGVkIGBRUlNlcnZlclByb3ZpZGVyYCAoZGVmYXVsdCksIGBJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyYCBvciBgUVJpY2tldFByb3ZpZGVyYCBidXQgeW91IGNhbiBhbHNvIHByb3ZpZGUgeW91ciBvd24gUVItY29kZSBwcm92aWRlci4KKiBbcmFuZG9tX2J5dGVzKCldKGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5yYW5kb20tYnl0ZXMucGhwKSwgW09wZW5TU0xdKGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9ib29rLm9wZW5zc2wucGhwKSBvciBbSGFzaF0oaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Jvb2suaGFzaC5waHApIGRlcGVuZGluZyBvbiB3aGljaCBidWlsdC1pbiBSTkcgeW91IHVzZSAoVHdvRmFjdG9yQXV0aCB3aWxsIHRyeSB0byAnYXV0b2RldGVjdCcgYW5kIHVzZSB0aGUgYmVzdCBhdmFpbGFibGUpOyBob3dldmVyOiBmZWVsIGZyZWUgdG8gcHJvdmlkZSB5b3VyIG93biAoQ1MpUk5HLgoKT3B0aW9uYWxseSwgeW91IG1heSBuZWVkOgoKKiBbc29ja2V0c10oaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5zb2NrZXRzLnBocCkgaWYgeW91IGFyZSB1c2luZyBgTlRQVGltZVByb3ZpZGVyYAoqIFtlbmRyb2lkL3FyLWNvZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9lbmRyb2lkL3FyLWNvZGUpIGlmIHVzaW5nIGBFbmRyb2lkUXJDb2RlUHJvdmlkZXJgIG9yIGBFbmRyb2lkUXJDb2RlV2l0aExvZ29Qcm92aWRlcmAuCiogW2JhY29uL2JhY29uLXFyLWNvZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9CYWNvbi9CYWNvblFyQ29kZSkgaWYgdXNpbmcgYEJhY29uUXJDb2RlUHJvdmlkZXJgLgoKIyMgSW5zdGFsbGF0aW9uCgpUaGUgYmVzdCB3YXkgb2YgaW5zdGFsbGluZyB0aGlzIGxpYnJhcnkgaXMgd2l0aCBjb21wb3NlcjoKCmBwaHAgY29tcG9zZXIucGhhciByZXF1aXJlIHJvYnRocmVlL3R3b2ZhY3RvcmF1dGhgCgojIyBVc2FnZQoKRm9yIGEgcXVpY2sgc3RhcnQsIGhhdmUgYSBsb29rIGF0IHRoZSBbZ2V0dGluZyBzdGFydGVkXShodHRwczovL3JvYnRocmVlLmdpdGh1Yi5pby9Ud29GYWN0b3JBdXRoL2dldHRpbmctc3RhcnRlZC5odG1sKSBwYWdlIG9yIHRyeSBvdXQgdGhlIFtkZW1vXShkZW1vL2RlbW8ucGhwKS4KCklmIHlvdSBuZWVkIG1vcmUgaW4tZGVwdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbmZpZ3VyYXRpb24gYXZhaWxhYmxlIHRoZW4geW91IGNhbiByZWFkIHRocm91Z2ggdGhlIHJlc3Qgb2YgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vcm9idGhyZWUuZ2l0aHViLmlvL1R3b0ZhY3RvckF1dGgpLgoKIyMgSW50ZWdyYXRpb25zCgotIFtDYWtlUEhQIDNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyZWotZ3Jpbml1ay9jYWtlcGhwLXR3by1mYWN0b3ItYXV0aCkKCiMjIExpY2Vuc2UKCkxpY2Vuc2VkIHVuZGVyIE1JVCBsaWNlbnNlLiBTZWUgW0xJQ0VOU0VdKC4vTElDRU5TRSkgZm9yIGRldGFpbHMuCgpbTG9nbyAvIGljb25dKGh0dHA6Ly93d3cuaWNvbm1heS5jb20vU2ltcGxlL1RyYXZlbF9hbmRfVG91cmlzbV9QYXJ0XzIvbHVnZ2FnZV9sb2NrX3NhZmV0eV9iYWdnYWdlX2tleXNfY3lsaW5kZXJfbG9ja19ob3RlbF90cmF2ZWxfdG91cmlzbV9sdWdnYWdlX2xvY2tfaWNvbl80NjUpIHVuZGVyICBDQzAgMS4wIFVuaXZlcnNhbCAoQ0MwIDEuMCkgUHVibGljIERvbWFpbiBEZWRpY2F0aW9uICAoW0FyY2hpdmVkIHBhZ2VdKGh0dHA6Ly9yaWlpLm5sL3RtN2FwKSkK]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Qr/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Qr/IQRCodeProviderTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xRcjsKCnVzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKdXNlIFJvYlRocmVlXEF1dGhcQWxnb3JpdGhtOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcSGFuZGxlc0RhdGFVcmk7CnVzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGg7CnVzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGhFeGNlcHRpb247CgpjbGFzcyBJUVJDb2RlUHJvdmlkZXJUZXN0IGV4dGVuZHMgVGVzdENhc2UKewogICAgdXNlIEhhbmRsZXNEYXRhVXJpOwoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VG90cFVyaUlzQ29ycmVjdCgpOiB2b2lkCiAgICB7CiAgICAgICAgJHFyID0gbmV3IFRlc3RRclByb3ZpZGVyKCk7CgogICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCZJc3N1ZXInLCA2LCAzMCwgQWxnb3JpdGhtOjpTaGExLCAkcXIpOwogICAgICAgICRkYXRhID0gJHRoaXMtPkRlY29kZURhdGFVcmkoJHRmYS0+Z2V0UVJDb2RlSW1hZ2VBc0RhdGFVcmkoJ1Rlc3QmTGFiZWwnLCAnVk1SNDY2QUI2MlpCT0tIRScpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgndGVzdC90ZXN0JywgJGRhdGFbJ21pbWV0eXBlJ10pOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCdiYXNlNjQnLCAkZGF0YVsnZW5jb2RpbmcnXSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ290cGF1dGg6Ly90b3RwL1Rlc3QlMjZMYWJlbD9zZWNyZXQ9Vk1SNDY2QUI2MlpCT0tIRSZpc3N1ZXI9VGVzdCUyNklzc3VlciZwZXJpb2Q9MzAmYWxnb3JpdGhtPVNIQTEmZGlnaXRzPTZAMjAwJywgJGRhdGFbJ2RhdGEnXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RUb3RwVXJpSXNDb3JyZWN0Tm9Jc3N1ZXIoKTogdm9pZAogICAgewogICAgICAgICRxciA9IG5ldyBUZXN0UXJQcm92aWRlcigpOwoKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgbGlicmFyeSBzcGVjaWZpZXMgdGhlIGlzc3VlciBpcyBudWxsIGJ5IGRlZmF1bHQgaG93ZXZlciBpbiBQSFAgOC4xCiAgICAgICAgICogdGhlcmUgaXMgYSBkZXByZWNhdGlvbiB3YXJuaW5nIGZvciBwYXNzaW5nIG51bGwgYXMgYSBzdHJpbmcgYXJndW1lbnQgdG8gcmF3dXJsZW5jb2RlCiAgICAgICAgICovCgogICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aChudWxsLCA2LCAzMCwgQWxnb3JpdGhtOjpTaGExLCAkcXIpOwogICAgICAgICRkYXRhID0gJHRoaXMtPkRlY29kZURhdGFVcmkoJHRmYS0+Z2V0UVJDb2RlSW1hZ2VBc0RhdGFVcmkoJ1Rlc3QmTGFiZWwnLCAnVk1SNDY2QUI2MlpCT0tIRScpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgndGVzdC90ZXN0JywgJGRhdGFbJ21pbWV0eXBlJ10pOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCdiYXNlNjQnLCAkZGF0YVsnZW5jb2RpbmcnXSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ290cGF1dGg6Ly90b3RwL1Rlc3QlMjZMYWJlbD9zZWNyZXQ9Vk1SNDY2QUI2MlpCT0tIRSZpc3N1ZXI9JnBlcmlvZD0zMCZhbGdvcml0aG09U0hBMSZkaWdpdHM9NkAyMDAnLCAkZGF0YVsnZGF0YSddKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEdldFFSQ29kZUltYWdlQXNEYXRhVXJpVGhyb3dzT25JbnZhbGlkU2l6ZSgpOiB2b2lkCiAgICB7CiAgICAgICAgJHFyID0gbmV3IFRlc3RRclByb3ZpZGVyKCk7CgogICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDYsIDMwLCBBbGdvcml0aG06OlNoYTEsICRxcik7CgogICAgICAgICR0aGlzLT5leHBlY3RFeGNlcHRpb24oVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjo6Y2xhc3MpOwoKICAgICAgICAkdGZhLT5nZXRRUkNvZGVJbWFnZUFzRGF0YVVyaSgnVGVzdCcsICdWTVI0NjZBQjYyWkJPS0hFJywgMCk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Qr/TestQrProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xRcjsKCnVzZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xRclxJUVJDb2RlUHJvdmlkZXI7CgpjbGFzcyBUZXN0UXJQcm92aWRlciBpbXBsZW1lbnRzIElRUkNvZGVQcm92aWRlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UVJDb2RlSW1hZ2Uoc3RyaW5nICRxclRleHQsIGludCAkc2l6ZSk6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAkcXJUZXh0IC4gJ0AnIC4gJHNpemU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldE1pbWVUeXBlKCk6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAndGVzdC90ZXN0JzsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Rng/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Rng/CSRNGProviderTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xSbmc7Cgp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CnVzZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xSbmdcQ1NSTkdQcm92aWRlcjsKCmNsYXNzIENTUk5HUHJvdmlkZXJUZXN0IGV4dGVuZHMgVGVzdENhc2UKewogICAgdXNlIE5lZWRzUm5nTGVuZ3RoczsKCiAgICAvKioKICAgICAqIEByZXF1aXJlcyBmdW5jdGlvbiByYW5kb21fYnl0ZXMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDU1JOR1Byb3ZpZGVyc1JldHVybkV4cGVjdGVkTnVtYmVyT2ZCeXRlcygpOiB2b2lkCiAgICB7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncmFuZG9tX2J5dGVzJykpIHsKICAgICAgICAgICAgJHJuZyA9IG5ldyBDU1JOR1Byb3ZpZGVyKCk7CiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5ybmdUZXN0TGVuZ3RocyBhcyAkbCkgewogICAgICAgICAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJGwsIHN0cmxlbigkcm5nLT5nZXRSYW5kb21CeXRlcygkbCkpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkcm5nLT5pc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5leHBlY3ROb3RUb1BlcmZvcm1Bc3NlcnRpb25zKCk7CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Rng/HashRNGProviderTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xSbmc7Cgp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CnVzZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xSbmdcSGFzaFJOR1Byb3ZpZGVyOwoKY2xhc3MgSGFzaFJOR1Byb3ZpZGVyVGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKICAgIHVzZSBOZWVkc1JuZ0xlbmd0aHM7CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RIYXNoUk5HUHJvdmlkZXJzUmV0dXJuRXhwZWN0ZWROdW1iZXJPZkJ5dGVzKCkKICAgIHsKICAgICAgICAkcm5nID0gbmV3IEhhc2hSTkdQcm92aWRlcigpOwogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5ybmdUZXN0TGVuZ3RocyBhcyAkbCkgewogICAgICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgkbCwgc3RybGVuKCRybmctPmdldFJhbmRvbUJ5dGVzKCRsKSkpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRybmctPmlzQ3J5cHRvZ3JhcGhpY2FsbHlTZWN1cmUoKSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Rng/IRNGProviderTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xSbmc7Cgp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CnVzZSBSb2JUaHJlZVxBdXRoXEFsZ29yaXRobTsKdXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aDsKdXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjsKCmNsYXNzIElSTkdQcm92aWRlclRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZVNlY3JldFRocm93c09uSW5zZWN1cmVSTkdQcm92aWRlcigpOiB2b2lkCiAgICB7CiAgICAgICAgJHJuZyA9IG5ldyBUZXN0Uk5HUHJvdmlkZXIoKTsKCiAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgNiwgMzAsIEFsZ29yaXRobTo6U2hhMSwgbnVsbCwgJHJuZyk7CgogICAgICAgICR0aGlzLT5leHBlY3RFeGNlcHRpb24oVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjo6Y2xhc3MpOwogICAgICAgICR0ZmEtPmNyZWF0ZVNlY3JldCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q3JlYXRlU2VjcmV0T3ZlcnJpZGVTZWN1cmVEb2VzTm90VGhyb3dPbkluc2VjdXJlUk5HKCk6IHZvaWQKICAgIHsKICAgICAgICAkcm5nID0gbmV3IFRlc3RSTkdQcm92aWRlcigpOwoKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgQWxnb3JpdGhtOjpTaGExLCBudWxsLCAkcm5nKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnQUJDREVGR0hJSktMTU5PUCcsICR0ZmEtPmNyZWF0ZVNlY3JldCg4MCwgZmFsc2UpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZVNlY3JldERvZXNOb3RUaHJvd09uU2VjdXJlUk5HUHJvdmlkZXIoKTogdm9pZAogICAgewogICAgICAgICRybmcgPSBuZXcgVGVzdFJOR1Byb3ZpZGVyKHRydWUpOwoKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgQWxnb3JpdGhtOjpTaGExLCBudWxsLCAkcm5nKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnQUJDREVGR0hJSktMTU5PUCcsICR0ZmEtPmNyZWF0ZVNlY3JldCgpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZVNlY3JldEdlbmVyYXRlc0Rlc2lyZWRBbW91bnRPZkVudHJvcHkoKTogdm9pZAogICAgewogICAgICAgICRybmcgPSBuZXcgVGVzdFJOR1Byb3ZpZGVyKHRydWUpOwoKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgQWxnb3JpdGhtOjpTaGExLCBudWxsLCAkcm5nKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnQScsICR0ZmEtPmNyZWF0ZVNlY3JldCg1KSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ0FCJywgJHRmYS0+Y3JlYXRlU2VjcmV0KDYpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonLCAkdGZhLT5jcmVhdGVTZWNyZXQoMTI4KSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3JywgJHRmYS0+Y3JlYXRlU2VjcmV0KDE2MCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3JywgJHRmYS0+Y3JlYXRlU2VjcmV0KDMyMCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QScsICR0ZmEtPmNyZWF0ZVNlY3JldCgzMjEpKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Rng/NeedsRngLengths.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xSbmc7Cgp0cmFpdCBOZWVkc1JuZ0xlbmd0aHMKewogICAgLyoqIEB2YXIgYXJyYXk8aW50PiAqLwogICAgcHJvdGVjdGVkICRybmdUZXN0TGVuZ3RocyA9IGFycmF5KDEsIDE2LCAzMiwgMjU2KTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Rng/OpenSSLRNGProviderTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xSbmc7Cgp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CnVzZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xSbmdcT3BlblNTTFJOR1Byb3ZpZGVyOwoKY2xhc3MgT3BlblNTTFJOR1Byb3ZpZGVyVGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKICAgIHVzZSBOZWVkc1JuZ0xlbmd0aHM7CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTdHJvbmdPcGVuU1NMUk5HUHJvdmlkZXJzUmV0dXJuRXhwZWN0ZWROdW1iZXJPZkJ5dGVzKCkKICAgIHsKICAgICAgICAkcm5nID0gbmV3IE9wZW5TU0xSTkdQcm92aWRlcih0cnVlKTsKICAgICAgICBmb3JlYWNoICgkdGhpcy0+cm5nVGVzdExlbmd0aHMgYXMgJGwpIHsKICAgICAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJGwsIHN0cmxlbigkcm5nLT5nZXRSYW5kb21CeXRlcygkbCkpKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRybmctPmlzQ3J5cHRvZ3JhcGhpY2FsbHlTZWN1cmUoKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROb25TdHJvbmdPcGVuU1NMUk5HUHJvdmlkZXJzUmV0dXJuRXhwZWN0ZWROdW1iZXJPZkJ5dGVzKCkKICAgIHsKICAgICAgICAkcm5nID0gbmV3IE9wZW5TU0xSTkdQcm92aWRlcihmYWxzZSk7CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnJuZ1Rlc3RMZW5ndGhzIGFzICRsKSB7CiAgICAgICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCRsLCBzdHJsZW4oJHJuZy0+Z2V0UmFuZG9tQnl0ZXMoJGwpKSk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHJuZy0+aXNDcnlwdG9ncmFwaGljYWxseVNlY3VyZSgpKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Rng/TestRNGProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xSbmc7Cgp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUm5nXElSTkdQcm92aWRlcjsKCmNsYXNzIFRlc3RSTkdQcm92aWRlciBpbXBsZW1lbnRzIElSTkdQcm92aWRlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QocHJpdmF0ZSByZWFkb25seSBib29sICRpc1NlY3VyZSA9IGZhbHNlKQogICAgewogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmFuZG9tQnl0ZXMoaW50ICRieXRlY291bnQpOiBzdHJpbmcKICAgIHsKICAgICAgICAkcmVzdWx0ID0gJyc7CgogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRieXRlY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgJHJlc3VsdCAuPSBjaHIoJGkpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCk6IGJvb2wKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmlzU2VjdXJlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Time/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Time/ITimeProviderTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xUaW1lOwoKdXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOwp1c2UgUm9iVGhyZWVcQXV0aFxBbGdvcml0aG07CnVzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGg7CnVzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGhFeGNlcHRpb247CgpjbGFzcyBJVGltZVByb3ZpZGVyVGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RW5zdXJlQ29ycmVjdFRpbWVEb2VzTm90VGhyb3dGb3JDb3JyZWN0VGltZSgpOiB2b2lkCiAgICB7CiAgICAgICAgJHRoaXMtPmV4cGVjdE5vdFRvUGVyZm9ybUFzc2VydGlvbnMoKTsKICAgICAgICAkdHByMSA9IG5ldyBUZXN0VGltZVByb3ZpZGVyKDEyMyk7CiAgICAgICAgJHRwcjIgPSBuZXcgVGVzdFRpbWVQcm92aWRlcigxMjgpOwoKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgQWxnb3JpdGhtOjpTaGExLCBudWxsLCBudWxsLCAkdHByMSk7CiAgICAgICAgJHRmYS0+ZW5zdXJlQ29ycmVjdFRpbWUoYXJyYXkoJHRwcjIpKTsgICAvLyAxMjggLSAxMjMgPSA1ID0+IHdpdGhpbiBkZWZhdWx0IGxlbmllbmN5CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFbnN1cmVDb3JyZWN0VGltZVRocm93c09uSW5jb3JyZWN0VGltZSgpOiB2b2lkCiAgICB7CiAgICAgICAgJHRwcjEgPSBuZXcgVGVzdFRpbWVQcm92aWRlcigxMjMpOwogICAgICAgICR0cHIyID0gbmV3IFRlc3RUaW1lUHJvdmlkZXIoMTI0KTsKCiAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgNiwgMzAsIEFsZ29yaXRobTo6U2hhMSwgbnVsbCwgbnVsbCwgJHRwcjEpOwoKICAgICAgICAkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uKFR3b0ZhY3RvckF1dGhFeGNlcHRpb246OmNsYXNzKTsKCiAgICAgICAgJHRmYS0+ZW5zdXJlQ29ycmVjdFRpbWUoYXJyYXkoJHRwcjIpLCAwKTsgICAgLy8gV2UgZm9yY2UgYSBsZW5pZW5jeSBvZiAwLCAxMjQtMTIzID0gMSBzbyB0aGlzIHNob3VsZCB0aHJvdwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RW5zdXJlRGVmYXVsdFRpbWVQcm92aWRlclJldHVybnNDb3JyZWN0VGltZSgpOiB2b2lkCiAgICB7CiAgICAgICAgJHRoaXMtPmV4cGVjdE5vdFRvUGVyZm9ybUFzc2VydGlvbnMoKTsKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgQWxnb3JpdGhtOjpTaGExKTsKICAgICAgICAkdGZhLT5lbnN1cmVDb3JyZWN0VGltZShhcnJheShuZXcgVGVzdFRpbWVQcm92aWRlcih0aW1lKCkpKSwgMSk7ICAgIC8vIFVzZSBhIGxlbmllbmN5IG9mIDEsIHNob3VsZCB0aGUgdGltZSBjaGFuZ2UgYmV0d2VlbiBib3RoIHRpbWUoKSBjYWxscwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/Providers/Time/TestTimeProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzXFByb3ZpZGVyc1xUaW1lOwoKdXNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFRpbWVcSVRpbWVQcm92aWRlcjsKCmNsYXNzIFRlc3RUaW1lUHJvdmlkZXIgaW1wbGVtZW50cyBJVGltZVByb3ZpZGVyCnsKICAgIC8qKiBAdmFyIGludCAqLwogICAgcHJpdmF0ZSAkdGltZTsKCiAgICAvKioKICAgICAqIEBwYXJhbSBpbnQgJHRpbWUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR0aW1lKQogICAgewogICAgICAgICR0aGlzLT50aW1lID0gJHRpbWU7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnRpbWU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/tests/TwoFactorAuthTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzOwoKdXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOwp1c2UgUmVmbGVjdGlvbk1ldGhvZDsKdXNlIFJvYlRocmVlXEF1dGhcQWxnb3JpdGhtOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxIdHRwVGltZVByb3ZpZGVyOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxOVFBUaW1lUHJvdmlkZXI7CnVzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGg7CnVzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGhFeGNlcHRpb247CgpjbGFzcyBUd29GYWN0b3JBdXRoVGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3JUaHJvd3NPbkludmFsaWREaWdpdHMoKTogdm9pZAogICAgewogICAgICAgICR0aGlzLT5leHBlY3RFeGNlcHRpb24oVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjo6Y2xhc3MpOwoKICAgICAgICBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3JUaHJvd3NPbkludmFsaWRQZXJpb2QoKTogdm9pZAogICAgewogICAgICAgICR0aGlzLT5leHBlY3RFeGNlcHRpb24oVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjo6Y2xhc3MpOwoKICAgICAgICBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDYsIDApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0Q29kZVJldHVybnNDb3JyZWN0UmVzdWx0cygpOiB2b2lkCiAgICB7CiAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0Jyk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzU0MzE2MCcsICR0ZmEtPmdldENvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAxNDI2ODQ3MjE2KSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzUzODUzMicsICR0ZmEtPmdldENvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAwKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFbnN1cmVBbGxUaW1lUHJvdmlkZXJzUmV0dXJuQ29ycmVjdFRpbWUoKTogdm9pZAogICAgewogICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDYsIDMwLCBBbGdvcml0aG06OlNoYTEpOwogICAgICAgICR0ZmEtPmVuc3VyZUNvcnJlY3RUaW1lKGFycmF5KAogICAgICAgICAgICBuZXcgTlRQVGltZVByb3ZpZGVyKCksICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZXMgcG9vbC5udHAub3JnIGJ5IGRlZmF1bHQKICAgICAgICAgICAgLy9uZXcgXFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFRpbWVcTlRQVGltZVByb3ZpZGVyKCd0aW1lLmdvb2dsZS5jb20nKSwgICAgICAvLyBTb21laG93IHRpbWUuZ29vZ2xlLmNvbSBhbmQgdGltZS53aW5kb3dzLmNvbSBtYWtlIHRyYXZpcyB0aW1lb3V0Pz8KICAgICAgICAgICAgbmV3IEh0dHBUaW1lUHJvdmlkZXIoKSwgICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2VzIGdvb2dsZS5jb20gYnkgZGVmYXVsdAogICAgICAgICAgICAvL25ldyBcUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxIdHRwVGltZVByb3ZpZGVyKCdodHRwczovL2dpdGh1Yi5jb20nKSwgIC8vIGdpdGh1Yi5jb20gd2lsbCBwZXJpb2RpY2FsbHkgcmVwb3J0IHRpbWVzIHRoYXQgYXJlIG9mZiBieSBtb3JlIHRoYW4gNSBzZWMKICAgICAgICAgICAgbmV3IEh0dHBUaW1lUHJvdmlkZXIoJ2h0dHBzOi8veWFob28uY29tJyksCiAgICAgICAgKSk7CiAgICAgICAgJHRoaXMtPmV4cGVjdE5vdFRvUGVyZm9ybUFzc2VydGlvbnMoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZlcmlmeUNvZGVXb3Jrc0NvcnJlY3RseSgpOiB2b2lkCiAgICB7CiAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgNiwgMzApOwogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCR0ZmEtPnZlcmlmeUNvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAnNTQzMTYwJywgMSwgMTQyNjg0NzE5MCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCR0ZmEtPnZlcmlmeUNvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAnNTQzMTYwJywgMCwgMTQyNjg0NzE5MCArIDI5KSk7ICAgIC8vVGVzdCBkaXNjcmVwYW5jeQogICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkdGZhLT52ZXJpZnlDb2RlKCdWTVI0NjZBQjYyWkJPS0hFJywgJzU0MzE2MCcsIDAsIDE0MjY4NDcxOTAgKyAzMCkpOyAgICAvL1Rlc3QgZGlzY3JlcGFuY3kKICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAwLCAxNDI2ODQ3MTkwIC0gMSkpOyAgICAvL1Rlc3QgZGlzY3JlcGFuY3kKCiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAxLCAxNDI2ODQ3MjA1KSk7ICAgIC8vVGVzdCBkaXNjcmVwYW5jeQogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCR0ZmEtPnZlcmlmeUNvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAnNTQzMTYwJywgMSwgMTQyNjg0NzIwNSArIDM1KSk7ICAgIC8vVGVzdCBkaXNjcmVwYW5jeQogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCR0ZmEtPnZlcmlmeUNvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAnNTQzMTYwJywgMSwgMTQyNjg0NzIwNSAtIDM1KSk7ICAgIC8vVGVzdCBkaXNjcmVwYW5jeQoKICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAxLCAxNDI2ODQ3MjA1ICsgNjUpKTsgICAgLy9UZXN0IGRpc2NyZXBhbmN5CiAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCR0ZmEtPnZlcmlmeUNvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAnNTQzMTYwJywgMSwgMTQyNjg0NzIwNSAtIDY1KSk7ICAgIC8vVGVzdCBkaXNjcmVwYW5jeQoKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkdGZhLT52ZXJpZnlDb2RlKCdWTVI0NjZBQjYyWkJPS0hFJywgJzU0MzE2MCcsIDIsIDE0MjY4NDcyMDUgKyA2NSkpOyAgICAvL1Rlc3QgZGlzY3JlcGFuY3kKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkdGZhLT52ZXJpZnlDb2RlKCdWTVI0NjZBQjYyWkJPS0hFJywgJzU0MzE2MCcsIDIsIDE0MjY4NDcyMDUgLSA2NSkpOyAgICAvL1Rlc3QgZGlzY3JlcGFuY3kKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZlcmlmeUNvcnJlY3RUaW1lU2xpY2VJc1JldHVybmVkKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCk7CgogICAgICAgIC8vIFdlIHRlc3Qgd2l0aCBkaXNjcmVwYW5jeSAzIChzbyB0b3RhbCBvZiA3IGNvZGVzOiBjLTMsIGMtMiwgYy0xLCBjLCBjKzEsIGMrMiwgYyszCiAgICAgICAgLy8gRW5zdXJlIGVhY2ggY29ycmVzcG9uZGluZyB0aW1lc2xpY2UgaXMgcmV0dXJuZWQgY29ycmVjdGx5CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1MzQxMTMnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlMSkpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKDQ3NTYxNTcwLCAkdGltZXNsaWNlMSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc4MTk2NTInLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlMikpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKDQ3NTYxNTcxLCAkdGltZXNsaWNlMik7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc5MTU5NTQnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlMykpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKDQ3NTYxNTcyLCAkdGltZXNsaWNlMyk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlNCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKDQ3NTYxNTczLCAkdGltZXNsaWNlNCk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICczNDg0MDEnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlNSkpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKDQ3NTYxNTc0LCAkdGltZXNsaWNlNSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc2NDg1MjUnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlNikpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKDQ3NTYxNTc1LCAkdGltZXNsaWNlNik7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICcxNzA2NDUnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlNykpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKDQ3NTYxNTc2LCAkdGltZXNsaWNlNyk7CgogICAgICAgIC8vIEluY29ycmVjdCBjb2RlIHNob3VsZCByZXR1cm4gZmFsc2UgYW5kIGEgMCB0aW1lc2xpY2UKICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICcxMTExMTEnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlOCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKDAsICR0aW1lc2xpY2U4KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEdldENvZGVUaHJvd3NPbkludmFsaWRCYXNlMzJTdHJpbmcxKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnKTsKCiAgICAgICAgJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihUd29GYWN0b3JBdXRoRXhjZXB0aW9uOjpjbGFzcyk7CgogICAgICAgICR0ZmEtPmdldENvZGUoJ0ZPTzFCQVI4QkFaOScpOyAgICAvLzEsIDggJiA5IGFyZSBpbnZhbGlkIGNoYXJzCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRDb2RlVGhyb3dzT25JbnZhbGlkQmFzZTMyU3RyaW5nMigpOiB2b2lkCiAgICB7CiAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0Jyk7CgogICAgICAgICR0aGlzLT5leHBlY3RFeGNlcHRpb24oVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjo6Y2xhc3MpOwoKICAgICAgICAkdGZhLT5nZXRDb2RlKCdtenh3Nj09PScpOyAgICAgICAgLy9Mb3dlcmNhc2UKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEtub3duQmFzZTMyRGVjb2RlVGVzdFZlY3RvcnMoKTogdm9pZAogICAgewogICAgICAgIC8vIFdlIHVzdWFsbHkgZG9uJ3QgdGVzdCBpbnRlcm5hbHMgKGUuZy4gcHJpdmF0ZXMpIGJ1dCBzaW5jZSB3ZSByZWx5IGhlYXZpbHkgb24gYmFzZTMyIGRlY29kaW5nIGFuZCBkb24ndCB3YW50CiAgICAgICAgLy8gdG8gZXhwb3NlIHRoaXMgbWV0aG9kIG5vciBkbyB3ZSB3YW50IHRvIGdpdmUgcGVvcGxlIHRoZSBwb3NzaWJpbGl0eSBvZiBpbXBsZW1lbnRpbmcgLyBwcm92aWRpbmcgdGhlaXIgb3duIGJhc2UzMgogICAgICAgIC8vIGRlY29kaW5nL2RlY29kZXIgKGFzIHdlIGRvIHdpdGggUm5nL1FSIHByb3ZpZGVycyBmb3IgZXhhbXBsZSkgd2Ugc2ltcGx5IHRlc3QgdGhlIHByaXZhdGUgYmFzZTMyRGVjb2RlKCkgbWV0aG9kCiAgICAgICAgLy8gd2l0aCBzb21lIGtub3duIHRlc3R2ZWN0b3JzICoqb25seSoqIHRvIGVuc3VyZSBiYXNlMzIgZGVjb2Rpbmcgd29ya3MgY29ycmVjdGx5IGZvbGxvd2luZyBSRkMncyBzbyB0aGVyZSB3b24ndAogICAgICAgIC8vIGJlIGFueSBidWdzIGhpZGluZyBpbiB0aGVyZS4gV2UgKipjb3VsZCoqICdmb29sJyBvdXJzZWx2ZXMgYnkgY2FsbGluZyB0aGUgcHVibGljIGdldENvZGUoKSBtZXRob2QgKHdoaWNoIHVzZXMKICAgICAgICAvLyBiYXNlMzJkZWNvZGUgaW50ZXJuYWxseSkgYW5kIHRoZW4gbWFrZSBzdXJlIGdldENvZGUncyBvdXRwdXQgKGluIGRpZ2l0cykgZXF1YWxzIGV4cGVjdGVkIG91dHB1dCBzaW5jZSB0aGF0IHdvdWxkCiAgICAgICAgLy8gbWVhbiB0aGUgYmFzZTMyRGVjb2RlKCkgd29ya3MgYXMgZXhwZWN0ZWQgYnV0IHRoYXQgKipjb3VsZCoqIGhpZGUgc29tZSBzdWJ0bGUgYnVnKHMpIGluIGRlY29kaW5nIHRoZSBiYXNlMzIgc3RyaW5nLgoKICAgICAgICAvLyAiSW4gZ2VuZXJhbCwgeW91IGRvbid0IHdhbnQgdG8gYnJlYWsgYW55IGVuY2Fwc3VsYXRpb24gZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcgKG9yIGFzIE1vbSB1c2VkIHRvIHNheSwgImRvbid0CiAgICAgICAgLy8gZXhwb3NlIHlvdXIgcHJpdmF0ZXMhIikuIE1vc3Qgb2YgdGhlIHRpbWUsIHlvdSBzaG91bGQgYmUgYWJsZSB0byB0ZXN0IGEgY2xhc3MgYnkgZXhlcmNpc2luZyBpdHMgcHVibGljIG1ldGhvZHMuIgogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXZlIFRob21hcyBhbmQgQW5keSBIdW50IC0tICJQcmFnbWF0aWMgVW5pdCBUZXN0aW5nCiAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0Jyk7CgogICAgICAgICRtZXRob2QgPSBuZXcgUmVmbGVjdGlvbk1ldGhvZChUd29GYWN0b3JBdXRoOjpjbGFzcywgJ2Jhc2UzMkRlY29kZScpOwoKICAgICAgICAvLyBUZXN0IHZlY3RvcnMgZnJvbTogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2NDgjcGFnZS0xMgogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCcnLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJycpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnZicsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVk9PT09PT0nKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ2ZvJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICdNWlhRPT09PScpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnZm9vJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICdNWlhXNj09PScpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnZm9vYicsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYVzZZUT0nKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ2Zvb2JhJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICdNWlhXNllUQicpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnZm9vYmFyJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICdNWlhXNllUQk9JPT09PT09JykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0S25vd25CYXNlMzJEZWNvZGVVbnBhZGRlZFRlc3RWZWN0b3JzKCk6IHZvaWQKICAgIHsKICAgICAgICAvLyBTZWUgdGVzdEtub3duQmFzZTMyRGVjb2RlVGVzdFZlY3RvcnMoKSBmb3IgdGhlIHJhdGlvbmFsZSBiZWhpbmQgdGVzdGluZyB0aGUgcHJpdmF0ZSBiYXNlMzJEZWNvZGUoKSBtZXRob2QuCiAgICAgICAgLy8gVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBzdHJpbmdzIHdpdGhvdXQgdGhlIHBhZGRpbmctY2hhciAoJz0nKSBhcmUgYWxzbyBkZWNvZGVkIGNvcnJlY3RseS4KICAgICAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNwYWdlLTQ6CiAgICAgICAgLy8gICAiSW4gc29tZSBjaXJjdW1zdGFuY2VzLCB0aGUgdXNlIG9mIHBhZGRpbmcgKCI9IikgaW4gYmFzZS1lbmNvZGVkIGRhdGEgaXMgbm90IHJlcXVpcmVkIG9yIHVzZWQuIgogICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcpOwoKICAgICAgICAkbWV0aG9kID0gbmV3IFJlZmxlY3Rpb25NZXRob2QoVHdvRmFjdG9yQXV0aDo6Y2xhc3MsICdiYXNlMzJEZWNvZGUnKTsKCiAgICAgICAgLy8gVGVzdCB2ZWN0b3JzIGZyb206IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM0NjQ4I3BhZ2UtMTIKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICcnKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ2YnLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJ01ZJykpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCdmbycsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYUScpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnZm9vJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICdNWlhXNicpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnZm9vYicsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYVzZZUScpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnZm9vYmEnLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJ01aWFc2WVRCJykpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCdmb29iYXInLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJ01aWFc2WVRCT0knKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RLbm93blRlc3RWZWN0b3JzX3NoYTEoKTogdm9pZAogICAgewogICAgICAgIC8vS25vd24gdGVzdCB2ZWN0b3JzIGZvciBTSEExOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjIzOCNwYWdlLTE1CiAgICAgICAgJHNlY3JldCA9ICdHRVpER05CVkdZM1RRT0pRR0VaREdOQlZHWTNUUU9KUSc7ICAgLy89PSBiYXNlMzJlbmNvZGUoJzEyMzQ1Njc4OTAxMjM0NTY3ODkwJykKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA4LCAzMCwgQWxnb3JpdGhtOjpTaGExKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnOTQyODcwODInLCAkdGZhLT5nZXRDb2RlKCRzZWNyZXQsIDU5KSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzA3MDgxODA0JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMTExMTExMTA5KSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzE0MDUwNDcxJywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMTExMTExMTExKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzg5MDA1OTI0JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMjM0NTY3ODkwKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzY5Mjc5MDM3JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAyMDAwMDAwMDAwKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzY1MzUzMTMwJywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAyMDAwMDAwMDAwMCkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0S25vd25UZXN0VmVjdG9yc19zaGEyNTYoKTogdm9pZAogICAgewogICAgICAgIC8vS25vd24gdGVzdCB2ZWN0b3JzIGZvciBTSEEyNTY6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjM4I3BhZ2UtMTUKICAgICAgICAkc2VjcmV0ID0gJ0dFWkRHTkJWR1kzVFFPSlFHRVpER05CVkdZM1RRT0pRR0VaREdOQlZHWTNUUU9KUUdFWkEnOyAgIC8vPT0gYmFzZTMyZW5jb2RlKCcxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMicpCiAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgOCwgMzAsIEFsZ29yaXRobTo6U2hhMjU2KTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnNDYxMTkyNDYnLCAkdGZhLT5nZXRDb2RlKCRzZWNyZXQsIDU5KSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzY4MDg0Nzc0JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMTExMTExMTA5KSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzY3MDYyNjc0JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMTExMTExMTExKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzkxODE5NDI0JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMjM0NTY3ODkwKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzkwNjk4ODI1JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAyMDAwMDAwMDAwKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJzc3NzM3NzA2JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAyMDAwMDAwMDAwMCkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0S25vd25UZXN0VmVjdG9yc19zaGE1MTIoKTogdm9pZAogICAgewogICAgICAgIC8vS25vd24gdGVzdCB2ZWN0b3JzIGZvciBTSEE1MTI6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjM4I3BhZ2UtMTUKICAgICAgICAkc2VjcmV0ID0gJ0dFWkRHTkJWR1kzVFFPSlFHRVpER05CVkdZM1RRT0pRR0VaREdOQlZHWTNUUU9KUUdFWkRHTkJWR1kzVFFPSlFHRVpER05CVkdZM1RRT0pRR0VaREdOQlZHWTNUUU9KUUdFWkRHTkEnOyAgIC8vPT0gYmFzZTMyZW5jb2RlKCcxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0JykKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA4LCAzMCwgQWxnb3JpdGhtOjpTaGE1MTIpOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCc5MDY5MzkzNicsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgNTkpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnMjUwOTEyMDEnLCAkdGZhLT5nZXRDb2RlKCRzZWNyZXQsIDExMTExMTExMDkpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnOTk5NDMzMjYnLCAkdGZhLT5nZXRDb2RlKCRzZWNyZXQsIDExMTExMTExMTEpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnOTM0NDExMTYnLCAkdGZhLT5nZXRDb2RlKCRzZWNyZXQsIDEyMzQ1Njc4OTApKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnMzg2MTg5MDEnLCAkdGZhLT5nZXRDb2RlKCRzZWNyZXQsIDIwMDAwMDAwMDApKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnNDc4NjM4MjYnLCAkdGZhLT5nZXRDb2RlKCRzZWNyZXQsIDIwMDAwMDAwMDAwKSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/testsDependency/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/testsDependency/BaconQRCodeTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzRGVwZW5kZW5jeTsKCnVzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKdXNlIFJvYlRocmVlXEF1dGhcQWxnb3JpdGhtOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcQmFjb25RckNvZGVQcm92aWRlcjsKdXNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyXEhhbmRsZXNEYXRhVXJpOwp1c2UgUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoOwp1c2UgUnVudGltZUV4Y2VwdGlvbjsKCmNsYXNzIEJhY29uUVJDb2RlVGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKICAgIHVzZSBIYW5kbGVzRGF0YVVyaTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdERlcGVuZGVuY3koKTogdm9pZAogICAgewogICAgICAgICRxciA9IG5ldyBCYWNvblFyQ29kZVByb3ZpZGVyKDEsICcjMDAwJywgJyNGRkYnLCAnc3ZnJyk7CgogICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCZJc3N1ZXInLCA2LCAzMCwgQWxnb3JpdGhtOjpTaGExLCAkcXIpOwoKICAgICAgICAkZGF0YSA9ICR0aGlzLT5EZWNvZGVEYXRhVXJpKCR0ZmEtPmdldFFSQ29kZUltYWdlQXNEYXRhVXJpKCdUZXN0JkxhYmVsJywgJ1ZNUjQ2NkFCNjJaQk9LSEUnKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ2ltYWdlL3N2Zyt4bWwnLCAkZGF0YVsnbWltZXR5cGUnXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RCYWRUZXh0Q29sb3VyKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uKFJ1bnRpbWVFeGNlcHRpb246OmNsYXNzKTsKCiAgICAgICAgbmV3IEJhY29uUXJDb2RlUHJvdmlkZXIoMSwgJ25vdC1hLWNvbG91cicsICcjRkZGJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RCYWRCYWNrZ3JvdW5kQ29sb3VyKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uKFJ1bnRpbWVFeGNlcHRpb246OmNsYXNzKTsKCiAgICAgICAgbmV3IEJhY29uUXJDb2RlUHJvdmlkZXIoMSwgJyMwMDAnLCAnbm90LWEtY29sb3VyJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RCYWRUZXh0Q29sb3VySGV4UmVmKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uKFJ1bnRpbWVFeGNlcHRpb246OmNsYXNzKTsKCiAgICAgICAgbmV3IEJhY29uUXJDb2RlUHJvdmlkZXIoMSwgJyNBQUFBJywgJyNGRkYnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEJhZEJhY2tncm91bmRDb2xvdXJIZXhSZWYoKTogdm9pZAogICAgewogICAgICAgICR0aGlzLT5leHBlY3RFeGNlcHRpb24oUnVudGltZUV4Y2VwdGlvbjo6Y2xhc3MpOwoKICAgICAgICBuZXcgQmFjb25RckNvZGVQcm92aWRlcigxLCAnIzAwMCcsICcjQUFBQScpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/testsDependency/EndroidQRCodeTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKbmFtZXNwYWNlIFRlc3RzRGVwZW5kZW5jeTsKCnVzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKdXNlIFJvYlRocmVlXEF1dGhcQWxnb3JpdGhtOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcRW5kcm9pZFFyQ29kZVByb3ZpZGVyOwp1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcSGFuZGxlc0RhdGFVcmk7CnVzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGg7CgpjbGFzcyBFbmRyb2lkUVJDb2RlVGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKICAgIHVzZSBIYW5kbGVzRGF0YVVyaTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdERlcGVuZGVuY3koKTogdm9pZAogICAgewogICAgICAgICRxciA9IG5ldyBFbmRyb2lkUXJDb2RlUHJvdmlkZXIoKTsKICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QmSXNzdWVyJywgNiwgMzAsIEFsZ29yaXRobTo6U2hhMSwgJHFyKTsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5EZWNvZGVEYXRhVXJpKCR0ZmEtPmdldFFSQ29kZUltYWdlQXNEYXRhVXJpKCdUZXN0JkxhYmVsJywgJ1ZNUjQ2NkFCNjJaQk9LSEUnKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ2ltYWdlL3BuZycsICRkYXRhWydtaW1ldHlwZSddKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnYmFzZTY0JywgJGRhdGFbJ2VuY29kaW5nJ10pOwogICAgICAgICR0aGlzLT5hc3NlcnROb3RFbXB0eSgkZGF0YVsnZGF0YSddKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/TwoFactorAuth.phpproj</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KICA8UHJvcGVydHlHcm91cD4KICAgIDxDb25maWd1cmF0aW9uIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pJyA9PSAnJyAiPkRlYnVnPC9Db25maWd1cmF0aW9uPgogICAgPE5hbWU+VHdvRmFjdG9yQXV0aDwvTmFtZT4KICAgIDxQcm9qZWN0R3VpZD57ZTU2OWY1M2EtYTYwNC00NTc5LTkxY2UtNGUzNWIyN2RhNDdifTwvUHJvamVjdEd1aWQ+CiAgICA8Um9vdE5hbWVzcGFjZT5Ud29GYWN0b3JBdXRoPC9Sb290TmFtZXNwYWNlPgogICAgPE91dHB1dFR5cGU+TGlicmFyeTwvT3V0cHV0VHlwZT4KICAgIDxQcm9qZWN0VHlwZUd1aWRzPntBMDc4NkI4OC0yQURCLTRDMjEtQUJFOC1BQTJENzk3NjYyNjl9PC9Qcm9qZWN0VHlwZUd1aWRzPgogICAgPFNhdmVTZXJ2ZXJTZXR0aW5nc0luVXNlckZpbGU+RmFsc2U8L1NhdmVTZXJ2ZXJTZXR0aW5nc0luVXNlckZpbGU+CiAgICA8U2VydmVyPlBIUERldjwvU2VydmVyPgogICAgPFB1Ymxpc2hFdmVudD5Ob25lPC9QdWJsaXNoRXZlbnQ+CiAgICA8UEhQRGV2QXV0b1BvcnQ+VHJ1ZTwvUEhQRGV2QXV0b1BvcnQ+CiAgICA8UEhQRGV2UG9ydD40MTMxNTwvUEhQRGV2UG9ydD4KICAgIDxQSFBEZXZIb3N0TmFtZT5sb2NhbGhvc3Q8L1BIUERldkhvc3ROYW1lPgogICAgPElJU1Byb2plY3RVcmw+aHR0cDovL2xvY2FsaG9zdDo0MTMxNS88L0lJU1Byb2plY3RVcmw+CiAgICA8UnVudGltZT5QSFA8L1J1bnRpbWU+CiAgICA8UnVudGltZVZlcnNpb24+OC4xPC9SdW50aW1lVmVyc2lvbj4KICA8L1Byb3BlcnR5R3JvdXA+CiAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICdEZWJ1ZycgIj4KICAgIDxJbmNsdWRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9JbmNsdWRlRGVidWdJbmZvcm1hdGlvbj4KICA8L1Byb3BlcnR5R3JvdXA+CiAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICdSZWxlYXNlJyAiPgogICAgPEluY2x1ZGVEZWJ1Z0luZm9ybWF0aW9uPmZhbHNlPC9JbmNsdWRlRGVidWdJbmZvcm1hdGlvbj4KICA8L1Byb3BlcnR5R3JvdXA+CiAgPEl0ZW1Hcm91cD4KICAgIDxDb21waWxlIEluY2x1ZGU9ImRlbW9cZGVtby5waHAiIC8+CiAgICA8Q29tcGlsZSBJbmNsdWRlPSJkZW1vXGxvYWRlci5waHAiIC8+CiAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFFyXEJhc2VIVFRQUVJDb2RlUHJvdmlkZXIucGhwIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xRclxJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyLnBocCIgLz4KICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUXJcSVFSQ29kZVByb3ZpZGVyLnBocCIgLz4KICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUXJcUVJFeGNlcHRpb24ucGhwIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xRclxRUmlja2V0UHJvdmlkZXIucGhwIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xRclxRUlNlcnZlclByb3ZpZGVyLnBocCIgLz4KICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUm5nXENTUk5HUHJvdmlkZXIucGhwIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xSbmdcSVJOR1Byb3ZpZGVyLnBocCIgLz4KICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUm5nXE9wZW5TU0xSTkdQcm92aWRlci5waHAiIC8+CiAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFJuZ1xIYXNoUk5HUHJvdmlkZXIucGhwIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xSbmdcUk5HRXhjZXB0aW9uLnBocCIgLz4KICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcVGltZVxIdHRwVGltZVByb3ZpZGVyLnBocCIgLz4KICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcVGltZVxJVGltZVByb3ZpZGVyLnBocCIgLz4KICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcVGltZVxMb2NhbE1hY2hpbmVUaW1lUHJvdmlkZXIucGhwIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xUaW1lXE5UUFRpbWVQcm92aWRlci5waHAiIC8+CiAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFRpbWVcVGltZUV4Y2VwdGlvbi5waHAiIC8+CiAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcVHdvRmFjdG9yQXV0aC5waHAiIC8+CiAgICA8Q29tcGlsZSBJbmNsdWRlPSIuZ2l0aWdub3JlIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0iUkVBRE1FLm1kIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFR3b0ZhY3RvckF1dGhFeGNlcHRpb24ucGhwIiAvPgogICAgPENvbXBpbGUgSW5jbHVkZT0idGVzdHNcVHdvRmFjdG9yQXV0aFRlc3QucGhwIiAvPgogIDwvSXRlbUdyb3VwPgogIDxJdGVtR3JvdXA+CiAgICA8Rm9sZGVyIEluY2x1ZGU9ImxpYlwiIC8+CiAgICA8Rm9sZGVyIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcIiAvPgogICAgPEZvbGRlciBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFRpbWVcIiAvPgogICAgPEZvbGRlciBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFFyXCIgLz4KICAgIDxGb2xkZXIgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xSbmdcIiAvPgogICAgPEZvbGRlciBJbmNsdWRlPSJkZW1vXCIgLz4KICAgIDxGb2xkZXIgSW5jbHVkZT0idGVzdHNcIiAvPgogIDwvSXRlbUdyb3VwPgogIDxJdGVtR3JvdXA+CiAgICA8Q29udGVudCBJbmNsdWRlPSIudHJhdmlzLnltbCIgLz4KICAgIDxDb250ZW50IEluY2x1ZGU9ImNvbXBvc2VyLmpzb24iIC8+CiAgICA8Q29udGVudCBJbmNsdWRlPSJjb21wb3Nlci5sb2NrIiAvPgogICAgPENvbnRlbnQgSW5jbHVkZT0ibG9nby5wbmciIC8+CiAgICA8Q29udGVudCBJbmNsdWRlPSJtdWx0aWZhY3RvcmF1dGhmb3JldmVyeW9uZS5wbmciIC8+CiAgICA8Q29udGVudCBJbmNsdWRlPSJMSUNFTlNFIiAvPgogICAgPENvbnRlbnQgSW5jbHVkZT0icGhwdW5pdC54bWwiIC8+CiAgPC9JdGVtR3JvdXA+CjwvUHJvamVjdD4K]]></data>
	</file>
	<file>
	  <filename>/vendor/robthree/twofactorauth/TwoFactorAuth.sln</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/Ck1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDEyLjAwCiMgVmlzdWFsIFN0dWRpbyAyMDEzClZpc3VhbFN0dWRpb1ZlcnNpb24gPSAxMi4wLjMwNzIzLjAKTWluaW11bVZpc3VhbFN0dWRpb1ZlcnNpb24gPSAxMC4wLjQwMjE5LjEKUHJvamVjdCgie0EwNzg2Qjg4LTJBREItNEMyMS1BQkU4LUFBMkQ3OTc2NjI2OX0iKSA9ICJUd29GYWN0b3JBdXRoIiwgIlR3b0ZhY3RvckF1dGgucGhwcHJvaiIsICJ7RTU2OUY1M0EtQTYwNC00NTc5LTkxQ0UtNEUzNUIyN0RBNDdCfSIKRW5kUHJvamVjdApHbG9iYWwKCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uCgkJRGVidWd8QW55IENQVSA9IERlYnVnfEFueSBDUFUKCQlSZWxlYXNlfEFueSBDUFUgPSBSZWxlYXNlfEFueSBDUFUKCUVuZEdsb2JhbFNlY3Rpb24KCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCgkJe0U1NjlGNTNBLUE2MDQtNDU3OS05MUNFLTRFMzVCMjdEQTQ3Qn0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCgkJe0U1NjlGNTNBLUE2MDQtNDU3OS05MUNFLTRFMzVCMjdEQTQ3Qn0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQoJCXtFNTY5RjUzQS1BNjA0LTQ1NzktOTFDRS00RTM1QjI3REE0N0J9LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKCQl7RTU2OUY1M0EtQTYwNC00NTc5LTkxQ0UtNEUzNUIyN0RBNDdCfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQoJRW5kR2xvYmFsU2VjdGlvbgoJR2xvYmFsU2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJlU29sdXRpb24KCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UKCUVuZEdsb2JhbFNlY3Rpb24KRW5kR2xvYmFsCg==]]></data>
	</file>
</module>
