<?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 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.2</dtdversion>
	<name>VisitorStats</name>
	<version>0.1.1</version>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlNob3dzIHN0YXRpc3RpY3MgYWJvdXQgeW91ciB2aXNpdG9ycyBzdWNoIGFzIHRoZWlyIHVzZXJhZ2VudCwgdGhlIHBhZ2VzIHRoZXkgdmlzaXQsIGFuZCB3aGVyZSB0aGV5IGNhbWUgZnJvbS48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5QdXQgdGhpcyBpbiB5b3VyIHRlbXBsYXRlIHNvbWV3aGVyZTogPHByZT57Y21zX21vZHVsZSBtb2R1bGU9J1Zpc2l0b3JTdGF0cyd9PC9wcmU+PC9wPgo8aDQ+TG9nZ2luZyA0MDQgZXJyb3JzPC9oND4KPHA+SWYgeW91IHdvdWxkIGxpa2UgNDA0IGVycm9ycyB0byBiZSBsb2dnZWQgZ28gdG8gPGI+IlNpdGUgQWRtaW4gLT4gR2xvYmFsIFNldHRpbmdzIjwvYj4gYW5kIGNoZWNrIHRoZSBib3ggbmV4dCB0byA8Yj4iRW5hYmxlIEN1c3RvbSA0MDQgTWVzc2FnZToiPC9iPi4gQWxzbywgbWFrZSBzdXJlIHRoYXQgdGhlIDxiPiJUZW1wbGF0ZToiPC9iPiBzZWxlY3RlZCBpcyB0aGUgc2FtZSBvbmUgeW91IHB1dCB0aGUgZm9sbG93aW5nIGNvZGUgaW46PC9wPjxwcmU+e2Ntc19tb2R1bGUgbW9kdWxlPSdWaXNpdG9yU3RhdHMnfTwvcHJlPgo8aDM+V2hhdCBQYXJhbWV0ZXJzIERvZXMgSXQgVGFrZTwvaDM+CjxwPk5vIHBhcmFtZXRlcnMgeWV0LjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBFbGlqYWggTG9mZ3JlbiA8YSBocmVmPSJtYWlsdG86ZWxpamFobG9mZ3JlbkBlbGlqYWhsb2ZncmVuLmNvbSI+Jmx0O2VsaWphaGxvZmdyZW5AZWxpamFobG9mZ3Jlbi5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBFbGlqYWggTG9mZ3JlbiAmbHQ7ZWxpamFobG9mZ3JlbkBlbGlqYWhsb2ZncmVuLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjEuMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD48bGk+VmVyc2lvbiAwLjEuIDYgTWF5IDIwMDYuIEluaXRpYWwgUmVsZWFzZS48L2xpPjwvdWw+PGJyIC8+</about>
	<description>See where your visitors came from, what they use, and what pages they have visited.</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCQlnbG9iYWwgJGdDbXM7CgoJCSRwYWdlaW5mbyA9ICYkZ0Ntcy0+dmFyaWFibGVzWydwYWdlaW5mbyddOwoKICAgICAgICAvLyBJZiB0aGlzIHBhZ2UgZG9lcyBub3QgZXhpc3QKICAgICAgICBpZiAoLTEgPT0gJHBhZ2VpbmZvLT5jb250ZW50X2lkKSB7CiAgICAgICAgICAgICRzdGF0dXNfY29kZSA9ICc0MDQnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRzdGF0dXNfY29kZSA9ICcwJzsKICAgICAgICB9CiAgICAKICAgICAgICBpZiAoRkFMU0UgIT0gaXNzZXQoJF9TRVJWRVJbIkhUVFBfUkVGRVJFUiJdKSkgewogICAgICAgICAgICAkcmVmZXJyZXIgPSAkX1NFUlZFUlsiSFRUUF9SRUZFUkVSIl07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHJlZmVycmVyID0gJyc7CiAgICAgICAgfQogICAgICAgICRkYiA9ICR0aGlzLT5jbXMtPmRiOwoKICAgICAgICAvLyBDb252ZXJ0IElQIEFkZHJlc3MgaW50byBob3N0bmFtZQogICAgICAgICRob3N0bmFtZSA9IGdldGhvc3RieWFkZHIoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOwoKICAgICAgICAvLyB0aGVuIGFkZCBhbiBlbnRyeSBpbnRvIHRoZSBkYXRhYmFzZQogICAgICAgICRuZXdpZCA9ICRkYi0+R2VuSUQoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Zpc2l0b3JzdGF0c19zZXEiICk7CgogICAgICAgICRxID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdmlzaXRvcnN0YXRzIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/KSI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRuZXdpZCwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVmZXJyZXIsICRob3N0bmFtZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdLCAkc3RhdHVzX2NvZGUpKTsKCiAgICAgICAgaWYoICEkZGJyZXN1bHQgKQogICAgICAgIHsKCSAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwKCQkJICAgICAgICAgICAgICAgICAgICAgCSAkdGhpcy0+TGFuZyAoJ2Vycm9yX2RiZXJyb3InKSk7CiAgICAgICAgICAgLy8gZWNobyAkZGItPkVycm9yTXNnKCkuIjxici8+IjsKICAgICAgICAJcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRydWU7Cgo/PiAK]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgCgplY2hvICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ3Jlc2V0X3N0YXRzJywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygncmVzZXRfc3RhdHMnKSwnJywnJywnc3lzdGVtaWNvbicpLicgJy4kdGhpcy0+TGFuZygncmVzZXRfc3RhdHMnKSwgYXJyYXkoKSwgJHRoaXMtPkxhbmcoJ3JlYWxseV9yZXNldF9zdGF0cycpKTsKCSAgJGRiID0gJHRoaXMtPmNtcy0+ZGI7CgkgIC8vIEZpcnN0IHdlIGdldCB0aGUgdG90YWwgbnVtYmVyIG9mIHZpc2l0cyBldmVyCgkgICRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV92aXNpdG9yc3RhdHMgT1JERVIgQlkgaWQgQVNDIjsKCSAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxKTsKCSAgaWYgKCEkZGJyZXN1bHQpCiAgICAgICAgICAgIHsKCSAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkLCAkdGhpcy0+TGFuZyAoJ2Vycm9yX2RiZXJyb3InKSk7CgkgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KCSAgJG51bV9yb3dzID0gJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpOwoJICAKCSAgLy8gVGhlbiB3ZSBjYWxjdWxhdGUgdGhlIG9mZnNldCBuZWVkZWQgc28gd2Ugb25seSBzaG93IDEwMCB2aXNpdHMgcGVyIHBhZ2UuCgkgIGlmIChGQUxTRSA9PSBpc3NldCgkX0dFVFsnb2Zmc2V0J10pIHx8IDAgPT0gJF9HRVRbJ29mZnNldCddKQoJICAgIHsKCSAgICAgICRvZmZzZXQgPSAkbnVtX3Jvd3MgLSAxMDA7CiAgICAgICAgICAgIH0KCSAgZWxzZQoJICAgIHsKCSAgICAgICRnZXRfb2Zmc2V0ID0gKGludCkgJF9HRVRbJ29mZnNldCddOwoJICAgICAgJG9mZnNldCA9ICgkbnVtX3Jvd3MgLSAxMDApIC0gJGdldF9vZmZzZXQ7CgkgICAgICBlY2hvICd0cnVlIG9mZnNldDogJy4kb2Zmc2V0Lic8YnIgLz4nOwoJICAgICAgaWYgKDAgPiAkb2Zmc2V0KQoJCXsKCQkgICRvZmZzZXQgPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgkgIAoJICAvLyBJZiB0aGVyZSBoYXZlIGJlZW4gbW9yZSB0aGFuIDEwMCB0b3RhbCB2aXNpdHMgdGhlbiBvbmx5IHNlbGVjdCAxMDAgb2YgdGhlbQoJICBpZiAoJG51bV9yb3dzID4gMTAwKQoJICAgIHsKCSAgICAgICRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV92aXNpdG9yc3RhdHMgT1JERVIgQlkgaWQgQVNDIExJTUlUICcuJG9mZnNldC4nLCAxMDAnOwoJICAgIH0KCSAgZWxzZQoJICAgIHsKCSAgICAgICRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV92aXNpdG9yc3RhdHMgT1JERVIgQlkgaWQgQVNDIjsKCSAgICB9CgkgIAoJICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHEpOwoJICBpZighJGRicmVzdWx0KSAKICAgICAgICAgICAgewoJICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5faWQsCgkJCQkJJHRoaXMtPkxhbmcgKCdlcnJvcl9kYmVycm9yJykpOwoJICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgkgIAoJICAkcHJldl9uZXh0ID0gJHRoaXMtPl9zaG93UHJldk5leHRMaW5rcygkbnVtX3Jvd3MpOwoJICAkb3V0cHV0ID0gJHByZXZfbmV4dDsKCSAgJG91dHB1dCAuPSAiPHVsPlxuIjsKCSAgJGxpc3Rfb3BlbmVkID0gRkFMU0U7CgkgICRsYXN0X3Nlc3Npb25faWQ9Jyc7CgkgICRsYXN0aXA9Jyc7CgkgICRsYXN0ZGF0ZT0nJzsKCSAgLy8gTG9vcCB0aHJvdWdoIHNob3dpbmcgZGV0YWlscyBmb3IgMTAwIHZpc2l0cwoJICB3aGlsZSAoJGRicmVzdWx0ICYmICR2aXNpdG9yID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJICAgIHsKCSAgICAgIGlmICgkdmlzaXRvclsnaXAnXSAhPSAkbGFzdGlwKQoJCXsKCQkgIGlmIChGQUxTRSAhPSAkbGlzdF9vcGVuZWQpCgkJICAgIHsKCQkgICAgICAkb3V0cHV0IC49ICc8L3VsPic7CgkJICAgICAgJG91dHB1dCAuPSAiPC9saT5cbiI7CgkJICAgIH0KCQkgICRvdXRwdXQgLj0gJzxsaSBjbGFzcz0idmlzaXQiPicuIlxuIjsKCQkgICRsaXN0X29wZW5lZCA9IFRSVUU7CgkJICAkb3V0cHV0IC49ICR0aGlzLT5MYW5nKCd2aXNpdG9yZnJvbWhvc3QnLCAnPGI+Jy4kdmlzaXRvclsnaG9zdCddLic8L2I+Jyk7CgkJICAkb3V0cHV0IC49ICcgKCcuJHZpc2l0b3JbJ2lwJ10uJykgJzsKCQkgICRvdXRwdXQgLj0gJHRoaXMtPkxhbmcoJ2NhbWVvbicsICR2aXNpdG9yWydkYXRlJ10pOwoJCSAgJG91dHB1dCAuPSAnICcuJHRoaXMtPkxhbmcoJ3RoZWJyb3dzZXJ3YXMnLCAkdmlzaXRvclsndWEnXSk7CgkJICAkb3V0cHV0IC49ICI8dWw+XG4iOwoJCSAgJG91dHB1dCAuPSAnPGxpPic7CgkJICAKCQkgIGlmIChGQUxTRSA9PSBlbXB0eSgkdmlzaXRvclsncmVmZXJyZXInXSkpCgkJICAgIHsKCQkgICAgICAkcmVmZXJyZXIgPSBzdHJfcmVwbGFjZSgnaHR0cDovLycsICcnLCAkdmlzaXRvclsncmVmZXJyZXInXSk7CgkJICAgICAgJG91dHB1dCAuPSAkdGhpcy0+TGFuZygnZmlyc3RhcnJpdmVkZnJvbScsICc8YSBocmVmPSInLiR2aXNpdG9yWydyZWZlcnJlciddLiciPicuJHJlZmVycmVyLic8L2E+Jyk7CgkJICAgIH0KCQkgIGVsc2UKCQkgICAgewoJCSAgICAgICRvdXRwdXQgLj0gJHRoaXMtPkxhbmcoJ25vcmVmZXJyZXInKTsKCQkgICAgfQoJCSAgJG91dHB1dCAuPSAnPGJyIC8+Jy4kdGhpcy0+TGFuZygnYW5kdmlzaXRlZCcsICc8YSBocmVmPSInLiR2aXNpdG9yWyd1cmknXS4nIj4nLiR2aXNpdG9yWyd1cmknXS4nPC9hPicpOwoJCX0KCSAgICAgIGVsc2UKCQl7CgkJICAkdGltZV9hZnRlciA9ICR0aGlzLT5fQ2FsY1RpbWVEaWZmKHN0cnRvdGltZSgkbGFzdGRhdGUpLCBzdHJ0b3RpbWUoJHZpc2l0b3JbJ2RhdGUnXSkpOwoJCSAgJG91dHB1dCAuPSAnPGxpPic7CgkJICAkb3V0cHV0IC49ICR0aGlzLT5MYW5nKCdsYXRlcicsICR0aW1lX2FmdGVyKTsKCQkgIGlmIChGQUxTRSA9PSBlbXB0eSgkdmlzaXRvclsncmVmZXJyZXInXSkpCgkJICAgIHsKCQkgICAgICAkcmVmZXJyZXIgPSBzdHJfcmVwbGFjZSgnaHR0cDovLycsICcnLCAkdmlzaXRvclsncmVmZXJyZXInXSk7CgkJICAgICAgJG91dHB1dCAuPSAkdGhpcy0+bGFuZygnYXJyaXZlZGZyb20nLCAnPGEgaHJlZj0iJy4kdmlzaXRvclsncmVmZXJyZXInXS4nIj4nLiRyZWZlcnJlci4nPC9hPicpOwoJCSAgICB9CgkJICBlbHNlCgkJICAgIHsKCQkgICAgICAkb3V0cHV0IC49ICcgJy4kdGhpcy0+TGFuZygnYXJyaXZlZG5vcmVmZmVyZXInKTsKCQkgICAgfQoJCSAgCgkJICAkb3V0cHV0IC49ICc8YnIgLz4gJy4kdGhpcy0+TGFuZygnYW5kdmlzaXRlZCcsICc8YSBocmVmPSInLiR2aXNpdG9yWyd1cmknXS4nIj4nLiR2aXNpdG9yWyd1cmknXS4nPC9hPicpOwoJCSAgCgkJfQoJICAgICAgaWYgKDQwNCA9PSAkdmlzaXRvclsnc3RhdHVzX2NvZGUnXSkKCQl7CgkJICAkb3V0cHV0IC49ICc8c3BhbiBzdHlsZT0iY29sb3I6cmVkOyI+ICcuJHRoaXMtPkxhbmcoJ2dvdDQwNGVycm9yJykuJyA8L3NwYW4+JzsKCQl9CgkgICAgICAkb3V0cHV0IC49ICI8L2xpPlxuIjsKCSAgICAgICRsYXN0aXAgPSAkdmlzaXRvclsnaXAnXTsKCSAgICAgICRsYXN0ZGF0ZSA9ICR2aXNpdG9yWydkYXRlJ107CgkgICAgfQoJICAKCSAgJG91dHB1dCAuPSAnPC91bD4nOwoJICAkb3V0cHV0IC49ICc8L2xpPic7CgkgICRvdXRwdXQgLj0gJzwvdWw+JzsKCSAgJG91dHB1dCAuPSAkcHJldl9uZXh0OwoJICAKCSAgZWNobyAkb3V0cHV0Owo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.reset_stats.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJHRoaXMtPlVuaW5zdGFsbCgpOwokdGhpcy0+SW5zdGFsbCgpOwokdGhpcy0+UmVkaXJlY3QoJGlkLCJkZWZhdWx0YWRtaW4iLCRyZXR1cm5pZCxhcnJheSgibW9kdWxlX21lc3NhZ2UiPT4kdGhpcy0+TGFuZygnc3RhdHNfZXJhc2VkJykpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1Zpc2l0b3IgU3RhdHMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJyJUaGFua3MgZm9yIHVzaW5nIHRoZSBWaXNpdG9yU3RhdHMgbW9kdWxlLiInOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ0lmIHlvdSB1bmluc3RhbGwgYWxsIHN0YXRzIHdpbGwgYmUgZXJhc2VkLiBBcmUgeW91IHN1cmU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnU2hvd3Mgc3RhdGlzdGljcyBhYm91dCB5b3VyIHZpc2l0b3JzIHN1Y2ggYXMgdGhlaXIgdXNlcmFnZW50LCB0aGUgcGFnZXMgdGhleSB2aXNpdCwgYW5kIHdoZXJlIHRoZXkgY2FtZSBmcm9tLic7CgokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZFsnYWRtaW5fdGl0bGUnXSA9ICdWaXNpdG9yIFN0YXRzIEFkbWluIFBhbmVsJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICdTZWUgd2hlcmUgeW91ciB2aXNpdG9ycyBjYW1lIGZyb20sIHdoYXQgdGhleSB1c2UsIGFuZCB3aGF0IHBhZ2VzIHRoZXkgaGF2ZSB2aXNpdGVkLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZSwgKGUuZy4sIEJlIHN1cmUgdG8gc2V0ICIiIHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEpJzsKJGxhbmdbJ3Zpc2l0b3Jmcm9taG9zdCddID0gICdBIHZpc2l0b3IgZnJvbSAlcyc7CiRsYW5nWydjYW1lb24nXSA9ICdjYW1lIG9uICVzLic7CiRsYW5nWyd0aGVicm93c2Vyd2FzJ10gPSAnVGhlIGJyb3dzZXIgd2FzICVzJzsKJGxhbmdbJ2ZpcnN0YXJyaXZlZGZyb20nXSA9ICAnVGhpcyB2aXNpdG9yIGZpcnN0IGFycml2ZWQgZnJvbSAlcyc7CiRsYW5nWydub3JlZmVycmVyJ10gPSAnVGhpcyB2aXNpdG9yIGZpcnN0IGFycml2ZWQgd2l0aG91dCBhIHJlZmVycmluZyBVUkwnOwokbGFuZ1snYW5kdmlzaXRlZCddID0gJ2FuZCB2aXNpdGVkICVzJzsKJGxhbmdbJ2Fycml2ZWRmcm9tJ10gPSAnYXJyaXZlZCBmcm9tICVzJzsKJGxhbmdbJ2RheXMnXSA9ICdkYXlzJzsKJGxhbmdbJ2hvdXJzJ10gPSAnaG91cnMnOwokbGFuZ1snbWludXRlcyddID0gJ21pbnV0ZXMnOwokbGFuZ1snc2Vjb25kcyddID0gJ3NlY29uZHMnOwokbGFuZ1sncHJldmlvdXMnXSA9ICdQcmV2aW91cyc7CiRsYW5nWyduZXh0J10gPSAnTmV4dCc7CiRsYW5nWydsYXRlciddID0gJyVzIGxhdGVyLCAnOwokbGFuZ1snYXJyaXZlZG5vcmVmZmVyZXInXSA9ICdhcnJpdmVkIHdpdGhvdXQgYSByZWZlcnJpbmcgVVJMLCc7CiRsYW5nWydnb3Q0MDRlcnJvciddID0gJ2VuY291bnRlcmluZyBhIDQwNCBlcnJvcic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+PGxpPlZlcnNpb24gMC4xLiA2IE1heSAyMDA2LiBJbml0aWFsIFJlbGVhc2UuPC9saT48L3VsPic7CiRsYW5nWydyZXNldF9zdGF0cyddID0gJ1Jlc2V0IFN0YXRzJzsKJGxhbmdbJ3JlYWxseV9yZXNldF9zdGF0cyddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBlcmFzZSBhbGwgdGhlIHN0YXRzPyBUaGlzIGNhbm5vdCBiZSB1bmRvbmUuJzsKJGxhbmdbJ3N0YXRzX2VyYXNlZCddID0gJ0FsbCBzdGF0cyB3ZXJlIGVyYXNlZC4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5TaG93cyBzdGF0aXN0aWNzIGFib3V0IHlvdXIgdmlzaXRvcnMgc3VjaCBhcyB0aGVpciB1c2VyYWdlbnQsIHRoZSBwYWdlcyB0aGV5IHZpc2l0LCBhbmQgd2hlcmUgdGhleSBjYW1lIGZyb20uPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+UHV0IHRoaXMgaW4geW91ciB0ZW1wbGF0ZSBzb21ld2hlcmU6IDxwcmU+e2Ntc19tb2R1bGUgbW9kdWxlPVwnVmlzaXRvclN0YXRzXCd9PC9wcmU+PC9wPgo8aDQ+TG9nZ2luZyA0MDQgZXJyb3JzPC9oND4KPHA+SWYgeW91IHdvdWxkIGxpa2UgNDA0IGVycm9ycyB0byBiZSBsb2dnZWQgZ28gdG8gPGI+IlNpdGUgQWRtaW4gLT4gR2xvYmFsIFNldHRpbmdzIjwvYj4gYW5kIGNoZWNrIHRoZSBib3ggbmV4dCB0byA8Yj4iRW5hYmxlIEN1c3RvbSA0MDQgTWVzc2FnZToiPC9iPi4gQWxzbywgbWFrZSBzdXJlIHRoYXQgdGhlIDxiPiJUZW1wbGF0ZToiPC9iPiBzZWxlY3RlZCBpcyB0aGUgc2FtZSBvbmUgeW91IHB1dCB0aGUgZm9sbG93aW5nIGNvZGUgaW46PC9wPjxwcmU+e2Ntc19tb2R1bGUgbW9kdWxlPVwnVmlzaXRvclN0YXRzXCd9PC9wcmU+CjxoMz5XaGF0IFBhcmFtZXRlcnMgRG9lcyBJdCBUYWtlPC9oMz4KPHA+Tm8gcGFyYW1ldGVycyB5ZXQuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIEVsaWphaCBMb2ZncmVuIDxhIGhyZWY9Im1haWx0bzplbGlqYWhsb2ZncmVuQGVsaWphaGxvZmdyZW4uY29tIj4mbHQ7ZWxpamFobG9mZ3JlbkBlbGlqYWhsb2ZncmVuLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdFcnJvcjogVGhlIFZpc2l0b3JTdGF0cyBtb2R1bGUgZW5jb3VudGVyZWQgYSBEQiBlcnJvci4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1Zpc2l0b3IgU3RhdHMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb2luc3RhbGHEjW4maWFjdXRlOyB6cHImYWFjdXRlO3ZhLCAobmFwxZkuLCBOYXN0YXZ0ZSBwciZhYWN1dGU7dmEgJnF1b3Q7JnF1b3Q7IHBybyBwb3XFvml0JmlhY3V0ZTsgdG9ob3RvIG1vZHVsdSEpJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICcmcXVvdDtExJtrdWplbWUgemEgcG91xb4maWFjdXRlO3YmYWFjdXRlO24maWFjdXRlOyBtb2R1bHUgVmlzaXRvclN0YXRzLiZxdW90Oyc7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnUG9rdWQgcHJvdmVkZXRlIG9kaW5zdGFsYWNpLCB2ZSZzY2Fyb247a2VyJmVhY3V0ZTsgc3RhdGlzdGlreSBidWRvdSBzbWF6JmFhY3V0ZTtueS4gSnN0ZSBzaSBqaXN0JnlhY3V0ZTs/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgb2RpbnN0YWxvdiZhYWN1dGU7bi4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyemUgJXMgbmFpbnN0YWxvdiZhYWN1dGU7bi4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCB1cGdyYWRvdiZhYWN1dGU7biBuYSB2ZXJ6aSAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdab2JyYXomaWFjdXRlOyBzdGF0aXN0aWt5IG8gbiZhYWN1dGU7diZzY2Fyb247dMSbdm4maWFjdXRlO2MmaWFjdXRlO2NoLCBqYWtvIGplamljaCBrbGllbnRhLCBzdHImYWFjdXRlO25reSBrdGVyJmVhY3V0ZTsgbmF2JnNjYXJvbjt0JmlhY3V0ZTt2aWxpIGEgb2RrdWQgcMWZaSZzY2Fyb247bGkuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnQ2h5YmEhJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICdVdmlkJmlhY3V0ZTt0ZSBvZGt1ZCBuJmFhY3V0ZTt2JnNjYXJvbjt0xJt2biZpYWN1dGU7Y2kgcMWZaSZzY2Fyb247bGksIGNvIHBvdcW+JmlhY3V0ZTt2YWomaWFjdXRlOyBhIGphayZlYWN1dGU7IHN0ciZhYWN1dGU7bmt5IHNpIHByb2hsJmlhY3V0ZTvFvmVsaS4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnUMWZJmlhY3V0ZTtzdHVwIHphayZhYWN1dGU7eiZhYWN1dGU7bi4gWmtvbnRyb2x1anRlIHN2JmFhY3V0ZTsgb3ByJmFhY3V0ZTt2bsSbbiZpYWN1dGU7Lic7CiRsYW5nWyd2aXNpdG9yZnJvbWhvc3QnXSA9ICdOJmFhY3V0ZTt2JnNjYXJvbjt0xJt2biZpYWN1dGU7ayB6ICVzJzsKJGxhbmdbJ2NhbWVvbiddID0gJ3DFmSZpYWN1dGU7JnNjYXJvbjtlbCBuYSAlcy4nOwokbGFuZ1sndGhlYnJvd3NlcndhcyddID0gJ3Byb2hsJmlhY3V0ZTvFvmXEjSBieWwgJXMnOwokbGFuZ1snZmlyc3RhcnJpdmVkZnJvbSddID0gJ04mYWFjdXRlO3Ymc2Nhcm9uO3TEm3ZuJmlhY3V0ZTtrIHDFmWkmc2Nhcm9uO2VsIHBvcHJ2JmVhY3V0ZTsgeiAlcyc7CiRsYW5nWydub3JlZmVycmVyJ10gPSAnVGVudG8gbiZhYWN1dGU7diZzY2Fyb247dMSbdm4maWFjdXRlO2sgcG9wcnYmZWFjdXRlOyBwxZlpJnNjYXJvbjtlbCBiZXogb2RrYXp1aiZpYWN1dGU7YyZpYWN1dGU7aG8gVVJMJzsKJGxhbmdbJ2FuZHZpc2l0ZWQnXSA9ICdhIG5hdiZzY2Fyb247dCZpYWN1dGU7dmlsICVzJzsKJGxhbmdbJ2Fycml2ZWRmcm9tJ10gPSAncMWZJmlhY3V0ZTsmc2Nhcm9uO2VsIHogJXMnOwokbGFuZ1snZGF5cyddID0gJ2RueSc7CiRsYW5nWydob3VycyddID0gJ2hvZGlueSc7CiRsYW5nWydtaW51dGVzJ10gPSAnbWludXR5JzsKJGxhbmdbJ3NlY29uZHMnXSA9ICdzZWt1bmR5JzsKJGxhbmdbJ3ByZXZpb3VzJ10gPSAnUMWZZWRjaG96JmlhY3V0ZTsnOwokbGFuZ1snbmV4dCddID0gJ0RhbCZzY2Fyb247JmlhY3V0ZTsnOwokbGFuZ1snbGF0ZXInXSA9ICclcyBwb3pkxJtqaSwgJzsKJGxhbmdbJ2Fycml2ZWRub3JlZmZlcmVyJ10gPSAncMWZaSZzY2Fyb247ZWwgYmV6IG9ka2F6dWomaWFjdXRlO2MmaWFjdXRlO2hvIFVSTCwnOwokbGFuZ1snZ290NDA0ZXJyb3InXSA9ICdvYmRyxb5lbCBjaHlidSA0MDQnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPjxsaT5WZXJzaW9uIDAuMS4gNiBNYXkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+PC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+U2hvd3Mgc3RhdGlzdGljcyBhYm91dCB5b3VyIHZpc2l0b3JzIHN1Y2ggYXMgdGhlaXIgdXNlcmFnZW50LCB0aGUgcGFnZXMgdGhleSB2aXNpdCwgYW5kIHdoZXJlIHRoZXkgY2FtZSBmcm9tLjwvcD4NCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+UHV0IHRoaXMgaW4geW91ciB0ZW1wbGF0ZSBzb21ld2hlcmU6IDxwcmU+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O1Zpc2l0b3JTdGF0cyYjMDM5O308L3ByZT48L3A+DQo8aDQ+TG9nZ2luZyA0MDQgZXJyb3JzPC9oND4NCjxwPklmIHlvdSB3b3VsZCBsaWtlIDQwNCBlcnJvcnMgdG8gYmUgbG9nZ2VkIGdvIHRvIDxiPiZxdW90O1NpdGUgQWRtaW4gLT4gR2xvYmFsIFNldHRpbmdzJnF1b3Q7PC9iPiBhbmQgY2hlY2sgdGhlIGJveCBuZXh0IHRvIDxiPiZxdW90O0VuYWJsZSBDdXN0b20gNDA0IE1lc3NhZ2U6JnF1b3Q7PC9iPi4gQWxzbywgbWFrZSBzdXJlIHRoYXQgdGhlIDxiPiZxdW90O1RlbXBsYXRlOiZxdW90OzwvYj4gc2VsZWN0ZWQgaXMgdGhlIHNhbWUgb25lIHlvdSBwdXQgdGhlIGZvbGxvd2luZyBjb2RlIGluOjwvcD48cHJlPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtWaXNpdG9yU3RhdHMmIzAzOTt9PC9wcmU+DQo8aDM+V2hhdCBQYXJhbWV0ZXJzIERvZXMgSXQgVGFrZTwvaDM+DQo8cD5ObyBwYXJhbWV0ZXJzIHlldC48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIEVsaWphaCBMb2ZncmVuIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmVsaWphaGxvZmdyZW5AZWxpamFobG9mZ3Jlbi5jb20mcXVvdDs+PGVsaWphaGxvZmdyZW5AZWxpamFobG9mZ3Jlbi5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdDaHliYTogTW9kdWwgVmlzaXRvclN0YXRzIG5hcmF6aWwgbmEgY2h5YnUgREIuJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE0Nzg3MzQ3MC4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzg0MzYzOTg0LjExNDc4NzM0NzAuMTE0Nzg3MzQ3MC4xMTQ5Njg3OTU2LjInOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0JlcyZvc2xhc2g7ayBzdGF0aXN0aWtrJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRXR0ZXIgaW5zdGFsbGFzam9uc21lbGRpbmcsIChmLmVrcy4sIEh1c2sgJmFyaW5nOyBzZXR0ZSAmcXVvdDsgJnF1b3Q7IHJldHRpZ2hldGVyIGZvciAmYXJpbmc7IGJydWtlIGRlbm5lIG1vZHVsZW4hKSc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnJnF1b3Q7VGFrayBmb3IgYXQgZHUgYnJ1a2VyIEJlcyZvc2xhc2g7a1N0YXRpc3Rpa2sgbW9kdWxlbi4mcXVvdDsnOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ09tIGR1IGF2aW5zdGFsbGVyZXIsIHZpbCBhbGwgc3RhdGlzdGlrayBibGkgc2xldHRldC4gRXIgZHUgc2lra2VyPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGF2aW5zdGFsbGVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2pvbiAlcyBpbnN0YWxsZXJ0Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIG9wcGdyYWRlcnQgdGlsIHZlcnNqb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVmlzZXIgc3RhdGlzdGlrayBvbSBkaW5lIGJlcyZvc2xhc2g7a2VyZS4gU29tIGYuZWtzLiBkZXJlcyBuZXR0bGVzZXIsIHNpZGVyIGRlIGJlcyZvc2xhc2g7a3RlIG9nIGh2b3IgZGUga29tIGZyYS4nOwokbGFuZ1snZXJyb3InXSA9ICdGZWlsISc7CiRsYW5nWydhZG1pbmRlc2NyaXB0aW9uJ10gPSAnU2UgaHZvciBkaW5lIGJlcyZvc2xhc2g7a2VyZSBrb20gZnJhLCBodmEgZGUgYnJ1a2VyIG9nIGh2aWxrZSBzaWRlciBkZSBoYXIgYmVzJm9zbGFzaDtrdC4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWRnYW5nIG5la3RldC4gVmVubmxpZ3N0IHNqZWtrIGRpbmUgcmV0dGlnaGV0ZXIuJzsKJGxhbmdbJ3Zpc2l0b3Jmcm9taG9zdCddID0gJ0VuIGJlcyZvc2xhc2g7a2VyIGZyYSAlcyc7CiRsYW5nWydjYW1lb24nXSA9ICdrb20gdmlhICVzLic7CiRsYW5nWyd0aGVicm93c2Vyd2FzJ10gPSAnTmV0dGxlc2VyZW4gdmFyICVzJzsKJGxhbmdbJ2ZpcnN0YXJyaXZlZGZyb20nXSA9ICdEZW5uZSBiZXMmb3NsYXNoO2tlcmVuIGtvbSBmcmEgJXMnOwokbGFuZ1snbm9yZWZlcnJlciddID0gJ0Rlbm5lIGJlcyZvc2xhc2g7a2VyZW4ga29tIHV0ZW4gZW4gcmVmZXJlcmVuZGUgVVJMJzsKJGxhbmdbJ2FuZHZpc2l0ZWQnXSA9ICdvZyBiZXMmb3NsYXNoO2t0ZSAlcyc7CiRsYW5nWydhcnJpdmVkZnJvbSddID0gJ2tvbSBmcmEgJXMnOwokbGFuZ1snZGF5cyddID0gJ2RhZ2VyJzsKJGxhbmdbJ2hvdXJzJ10gPSAndGltZXInOwokbGFuZ1snbWludXRlcyddID0gJ21pbnV0dGVyJzsKJGxhbmdbJ3NlY29uZHMnXSA9ICdzZWt1bmRlcic7CiRsYW5nWydwcmV2aW91cyddID0gJ0ZvcnJpZ2UnOwokbGFuZ1snbmV4dCddID0gJ05lc3RlJzsKJGxhbmdbJ2xhdGVyJ10gPSAnJXMgc2VuZXJlLCAnOwokbGFuZ1snYXJyaXZlZG5vcmVmZmVyZXInXSA9ICdrb20gdXRlbiBlbiByZWZlcmVyZW5kZSBVUkwsJzsKJGxhbmdbJ2dvdDQwNGVycm9yJ10gPSAnc3Qmb3NsYXNoO3R0ZSBwJmFyaW5nOyBlbiA0MDQgZmVpbCc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+PGxpPlZlcnNpb24gMC4xLiA2IE1heSAyMDA2LiBJbml0aWFsIFJlbGVhc2UuIDwvbGk+PC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5IdmEgZ2omb3NsYXNoO3IgZGVubmU/PC9oMz4NCjxwPlZpc2VyIHN0YXRpc3Rpa2sgb20gZGluZSBiZXMmb3NsYXNoO2tlcmUuIFNvbSBmLmVrcy4gZGVyZXMgbmV0dGxlc2VyLCBzaWRlciBkZSBiZXMmb3NsYXNoO2tlciBvZyBodm9yIGRlIGtvbSBmcmEuPC9wPg0KPGgzPkh2b3JkYW4gYnJ1a2VyIGplZyBkZW5uZTwvaDM+DQo8cD5TZXR0IGRldHRlIGVuIHBsYXNzIGkgZGluIG1hbDogPHByZT57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7VmlzaXRvclN0YXRzJiMwMzk7fTwvcHJlPjwvcD4NCjxoND5Mb2dnaW5nIGF2IDQwNCBmZWlsPC9oND4NCjxwPk9tIGR1IHZpbCBhdCA0MDQgZmVpbCBza2FsIGxvZ2dlcyBnJmFyaW5nO3IgZHUgdGlsIDxiPiZxdW90O1N5c3RlbSAtPiBHbG9iYWxlIGlubnN0aWxpbGluZ2VyJnF1b3Q7IC8gJnF1b3Q7U2l0ZSBBZG1pbiAtPiBHbG9iYWwgU2V0dGluZ3MmcXVvdDs8L2I+IG9nIGtyeXNlciBhdiBib2tzZW4gdmVkIHNpZGVuIGF2IDxiPiZxdW90O0FrdGl2ZXIgZWdlbmRlZmluZXJ0IDQwNCBtZWxkaW5nOiZxdW90OzwvYj4uIE9nIHBhc3MgcCZhcmluZzsgYXQgPGI+JnF1b3Q7VGVtcGxhdGU6IC8gTWFsOiZxdW90OzwvYj4gdmFsZ3QgZXIgZGVuIHNhbW1lIGR1IHNhdHRlIGYmb3NsYXNoO2xnZW5kZSBrb2RlIGk6PC9wPjxwcmU+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O1Zpc2l0b3JTdGF0cyYjMDM5O308L3ByZT4NCjxoMz5Idmlsa2UgcGFyYW1ldHJlIHRhciBkZW5uZT88L2gzPg0KPHA+SW5nZW4gcGFyYW1ldHJlIGVubiZhcmluZzsuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBFbGlqYWggTG9mZ3JlbiA8YSBocmVmPSZxdW90O21haWx0bzplbGlqYWhsb2ZncmVuQGVsaWphaGxvZmdyZW4uY29tJnF1b3Q7PjxlbGlqYWhsb2ZncmVuQGVsaWphaGxvZmdyZW4uY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRmVpbDogQmVzJm9zbGFzaDtrU3RhdGlzdGlrayBtb2R1bGVuIHN0Jm9zbGFzaDt0dGUgcCZhcmluZzsgZW4gREIgZmVpbC4nOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTUwNzM2NjQ3LjEzLjkudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWhlbG1pbnNlbi5ub3x1dG1jY3Q9L29tX25ldHRzdGVkZXQvfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjQ2OTM0MjgwMi4xMTQ4MDc2NzUyLjExNTA4MzU5MjQuMTE1MDgzOTQxOS4xNSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD5QbGFjZSB0aGUgY29udGVudHMgb2YgeW91ciBhZG1pbiBwYW5lbCBoZXJlLjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/VisitorStats.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFZpc2l0b3JTdGF0cyAtIFNob3dzIHN0YXRpc3RpY3MgYWJvdXQgeW91ciB2aXNpdG9ycyBzdWNoIGFzIHRoZWlyIHVzZXJhZ2VudCwgdGhlIHBhZ2VzIHRoZXkgdmlzaXQsIGFuZCB3aGVyZSB0aGV5IGNhbWUgZnJvbS4KIyBWZXJzaW9uOiAwLjEsIEVsaWphaCBMb2ZncmVuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIyBUaGlzIGZpbGUgb3JpZ2luYWxseSBjcmVhdGVkIGJ5IE1vZHVsZU1ha2VyIG1vZHVsZSwgdmVyc2lvbiAwLjIKIyBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgU2FtdWVsIEdvbGRzdGVpbiAoc2pnQGNtc21hZGVzaW1wbGUub3JnKSAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEZvciBIZWxwIGJ1aWxkaW5nIG1vZHVsZXM6CiMgLSBSZWFkIHRoZSBEb2N1bWVudGF0aW9uIGFzIGl0IGJlY29tZXMgYXZhaWxhYmxlIGF0CiMgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnLwojIC0gQ2hlY2sgb3V0IHRoZSBTa2VsZXRvbiBNb2R1bGUgZm9yIGEgY29tbWVudGVkIGV4YW1wbGUKIyAtIExvb2sgYXQgb3RoZXIgbW9kdWxlcywgYW5kIGxlYXJuIGZyb20gdGhlIHNvdXJjZQojIC0gQ2hlY2sgb3V0IHRoZSBmb3J1bXMgYXQgaHR0cDovL2ZvcnVtcy5jbXNtYWRlc2ltcGxlLm9yZwojIC0gQ2hhdCB3aXRoIGRldmVsb3BlcnMgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KY2xhc3MgVmlzaXRvclN0YXRzIGV4dGVuZHMgQ01TTW9kdWxlCnsKCglmdW5jdGlvbiBHZXROYW1lKCkKCXsKCQlyZXR1cm4gJ1Zpc2l0b3JTdGF0cyc7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEZyaWVuZGx5TmFtZSgpCgkgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIGxvY2FsaXplZCBuYW1lCgkgICBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQncyBzaG93biBpbiB0aGUKCSAgIEFkbWluIE1lbnVzIGFuZCBzZWN0aW9uIHBhZ2VzIChpZiB0aGUgbW9kdWxlIGhhcyBhbiBhZG1pbgoJICAgY29tcG9uZW50KS4KCSAgIAoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCX0KCgkKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRWZXJzaW9uKCkKCSAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbnVtYmVyIG9yCgkgICBzb21ldGhpbmcgdGhhdCBtYWtlcyBzZW5zZSBmb3IgZGVzaWduYXRpbmcgYSB2ZXJzaW9uLgoJICAgVGhlIENNUyB3aWxsIHVzZSB0aGlzIHRvIGlkZW50aWZ5IHdoZXRoZXIgb3Igbm90CgkgICB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIG1vZHVsZSBpcyBjdXJyZW50LCBhbmQKCSAgIHRoZSBtb2R1bGUgd2lsbCB1c2UgaXQgdG8gZmlndXJlIG91dCBob3cgdG8gdXBncmFkZQoJICAgaXRzZWxmIGlmIHJlcXVlc3RlZC4JICAgCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRWZXJzaW9uKCkKCXsKCQlyZXR1cm4gJzAuMS4xJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0SGVscCgpCgkgICBUaGlzIHJldHVybnMgSFRNTCBpbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLgoJICAgVHlwaWNhbGx5LCB5b3UnbGwgd2FudCB0byBpbmNsdWRlIGluZm9ybWF0aW9uIG9uIGhvdyB0bwoJICAgdXNlIHRoZSBtb2R1bGUuCgkgICAKCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRIZWxwKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QXV0aG9yKCkKCSAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCgkgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEF1dGhvcigpCgl7CgkJcmV0dXJuICdFbGlqYWggTG9mZ3Jlbic7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEF1dGhvckVtYWlsKCkKCSAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCgkgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4gSXQgaGVscHMgdXNlcnMKCSAgIG9mIHlvdXIgbW9kdWxlIGdldCBpbiB0b3VjaCB3aXRoIHlvdSB0byBzZW5kIGJ1ZyByZXBvcnRzLAoJICAgcXVlc3Rpb25zLCBjYXNlcyBvZiBiZWVyLCBhbmQvb3IgbGFyZ2Ugc3VtcyBvZiBtb25leS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKCXsKCQlyZXR1cm4gJ2VsaWphaGxvZmdyZW5AZWxpamFobG9mZ3Jlbi5jb20nOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRDaGFuZ2VMb2coKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBtb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgQWJvdXQgbGluay4gSXQgaGVscHMgdXNlcnMKCSAgIGZpZ3VyZSBvdXQgd2hhdCdzIGNoYW5nZWQgYmV0d2VlbiByZWxlYXNlcy4KCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIElzUGx1Z2luTW9kdWxlKCkKCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlLCBkZXBlbmRpbmcgdXBvbgoJICAgd2hldGhlciB1c2VycyBjYW4gaW5jbHVkZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvcgoJICAgdGVtcGxhdGUgdXNpbmcgYSBzbWFydHkgdGFnIG9mIHRoZSBmb3JtCgkgICB7Y21zX21vZHVsZSBtb2R1bGU9J1Zpc2l0b3JTdGF0cycgcGFyYW0xPXZhbCBwYXJhbTI9dmFsLi4ufQoJICAgCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIG5vdCBnZXQgaW5jbHVkZWQgaW4gcGFnZXMgb3IKCSAgIHRlbXBsYXRlcywgcmV0dXJuICJmYWxzZSIgaGVyZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgSGFzQWRtaW4oKQoJICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSwgZGVwZW5kaW5nIG9uCgkgICB3aGV0aGVyIHlvdXIgbW9kdWxlIGFkZHMgYW55dGhpbmcgdG8gdGhlIEFkbWluIGFyZWEgb2YKCSAgIHRoZSBzaXRlLiBGb3IgdGhlIHJlc3Qgb2YgdGhlc2UgY29tbWVudHMsIEknbGwgYmUgY2FsbGluZwoJICAgdGhlIGFkbWluIHBhcnQgb2YgeW91ciBtb2R1bGUgdGhlICJBZG1pbiBQYW5lbCIgZm9yCgkgICB3YW50IG9mIGEgYmV0dGVyIHRlcm0uCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBIYXNBZG1pbigpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBZG1pblNlY3Rpb24oKQoJICAgSWYgeW91ciBtb2R1bGUgaGFzIGFuIEFkbWluIFBhbmVsLCB5b3UgY2FuIHNwZWNpZnkKCSAgIHdoaWNoIEFkbWluIFNlY3Rpb24gKG9yIHRvcC1sZXZlbCBBZG1pbiBNZW51KSBpdCBzaG93cwoJICAgdXAgaW4uIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgdG8gc3BlY2lmeSB0aGF0CgkgICBzZWN0aW9uLiBWYWxpZCByZXR1cm4gdmFsdWVzIGFyZToKCgkgICBtYWluICAgICAgICAtIHRoZSBNYWluIG1lbnUgdGFiLgoJICAgY29udGVudCAgICAgLSB0aGUgQ29udGVudCBtZW51CgkgICBsYXlvdXQgICAgICAtIHRoZSBMYXlvdXQgbWVudQoJICAgdXNlcnNncm91cHMgLSB0aGUgVXNlcnMgYW5kIEdyb3VwcyBtZW51CgkgICBleHRlbnNpb25zICAtIHRoZSBFeHRlbnNpb25zIG1lbnUgKHRoaXMgaXMgdGhlIGRlZmF1bHQpCgkgICBzaXRlYWRtaW4gICAtIHRoZSBTaXRlIEFkbWluIG1lbnUKCSAgIHZpZXdzaXRlICAgIC0gdGhlIFZpZXcgU2l0ZSBtZW51IHRhYgoJICAgbG9nb3V0ICAgICAgLSB0aGUgTG9nb3V0IG1lbnUgdGFiCgkgICAKCSAgIE5vdGUgdGhhdCBpZiB5b3UgcGxhY2UgeW91ciBtb2R1bGUgaW4gdGhlIG1haW4sCgkgICB2aWV3c2l0ZSwgb3IgbG9nb3V0IHNlY3Rpb25zLCBpdCB3aWxsIHNob3cgdXAgaW4gdGhlCgkgICBtZW51cywgYnV0IHdpbGwgbm90IGJlIHZpc2libGUgaW4gYW55IHRvcC1sZXZlbAoJICAgc2VjdGlvbiBwYWdlcy4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCgl7CgkJcmV0dXJuICdleHRlbnNpb25zJzsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEFkbWluRGVzY3JpcHRpb24oKQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKCSAgIGNhbiBoYXZlIGl0IHJldHVybiBhIGRlc2NyaXB0aW9uIHN0cmluZyB0aGF0IGdldHMgc2hvd24KCSAgIGluIHRoZSBBZG1pbiBTZWN0aW9uIHBhZ2UgdGhhdCBjb250YWlucyB0aGUgbW9kdWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBWaXNpYmxlVG9BZG1pblVzZXIoKQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKCSAgIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IGl0J3MgZGlzcGxheWVkIGJ5IHRoZSBib29sZWFuCgkgICB0aGF0IGlzIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkCgkgICB0byBoaWRlIG1vZHVsZXMgZnJvbSBhZG1pbnMgd2hvIGxhY2sgcGVybWlzc2lvbiB0byB1c2UKCSAgIHRoZW0uCgkgICAKCSAgIFR5cGljYWxseSwgeW91J2xsIHVzZSBzb21lIHBlcm1pc3Npb24gdG8gc2V0IHRoaXMKCSAgIChlLmcuLCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTb21lIFBlcm1pc3Npb24nKTsgKQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKCXsKICAgICAgICByZXR1cm4gdHJ1ZTsKCX0KCQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBDaGVja0FjY2VzcygpCgkgICBUaGlzIHdyYXBwZXIgZnVuY3Rpb24gd2lsbCBjaGVjayBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbiwKCSAgIGFuZCBkaXNwbGF5IGFuIGVycm9yIHBhZ2UgaWYgdGhlIHVzZXIgZG9lc24ndCBoYXZlIGFkZXF1YXRlIHBlcm1pc3Npb25zLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkLCRwZXJtID0gJycpCgkJewoJCWlmICghICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm0pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwKICAgICAgICAgICAgCQkJJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJcmV0dXJuIHRydWU7CgkJfQoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgX0Rpc3BsYXlFcnJvclBhZ2UoKQoJICAgVGhpcyBpcyBhIHNpbXBsZSBmdW5jdGlvbiBmb3IgZ2VuZXJhdGluZyBlcnJvciBwYWdlcy4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAgIGZ1bmN0aW9uIF9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlPScnKQogICAgewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignbWVzc2FnZScsICRtZXNzYWdlKTsKCiAgICAgICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKICAgIH0KCQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0RGVwZW5kZW5jaWVzKCkKCSAgIFlvdXIgbW9kdWxlIG1heSBuZWVkIGFub3RoZXIgbW9kdWxlIHRvIGFscmVhZHkgYmUgaW5zdGFsbGVkCgkgICBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIGl0LgoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIGxpc3Qgb2YgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZAoJICAgbWluaW11bSB2ZXJzaW9uIG51bWJlcnMgdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KCSAgIAoJICAgSXQgc2hvdWxkIHJldHVybiBhbiBoYXNoLCBlZy4KCSAgIHJldHVybiBhcnJheSgnc29tZW1vZHVsZSc9PicxLjAnLCAnb3RoZXJtb2R1bGUnPT4nMS4xJyk7CgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQoJewoJCXJldHVybiBhcnJheSgpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBNaW5pbXVtQ01TVmVyc2lvbigpCgkgICBZb3VyIG1vZHVsZSBtYXkgcmVxdWlyZSBmdW5jdGlvbnMgb3Igb2JqZWN0cyBmcm9tCgkgICBhIHNwZWNpZmljIHZlcnNpb24gb2YgQ01TIE1hZGUgU2ltcGxlLgoJICAgRXZlciBzaW5jZSB2ZXJzaW9uIDAuMTEsIHlvdSBjYW4gc3BlY2lmeSB3aGljaCBtaW5pbXVtCgkgICBDTVMgTVMgdmVyc2lvbiBpcyByZXF1aXJlZCBmb3IgeW91ciBtb2R1bGUsIHdoaWNoIHdpbGwKCSAgIHByZXZlbnQgaXQgZnJvbSBiZWluZyBpbnN0YWxsZWQgYnkgYSB2ZXJzaW9uIG9mIENNUyB0aGF0CgkgICBjYW4ndCBydW4gaXQuCgkgICAKCSAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZQoJICAgbWluaW11bSB2ZXJzaW9uIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAnMC4xMyc7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBJbnN0YWxsKCkKCSAgIFdoZW4geW91ciBtb2R1bGUgaXMgaW5zdGFsbGVkLCB5b3UgbWF5IG5lZWQgdG8gZG8gc29tZQoJICAgc2V0dXAuIFR5cGljYWwgdGhpbmdzIHRoYXQgaGFwcGVuIGhlcmUgYXJlIHRoZSBjcmVhdGlvbgoJICAgYW5kIHByZXBvcHVsYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLCBkYXRhYmFzZSBzZXF1ZW5jZXMsCgkgICBwZXJtaXNzaW9ucywgcHJlZmVyZW5jZXMsIGV0Yy4KCSAgIAkgICAKCSAgIEZvciBpbmZvcm1hdGlvbiBvbiB0aGUgY3JlYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLAoJICAgY2hlY2sgb3V0IHRoZSBBRE9EQiBEYXRhIERpY3Rpb25hcnkgcGFnZSBhdAoJICAgaHR0cDovL3BocGxlbnMuY29tL2xlbnMvYWRvZGIvZG9jcy1kYXRhZGljdC5odG0KCSAgIAoJICAgVGhpcyBmdW5jdGlvbiBjYW4gcmV0dXJuIGEgc3RyaW5nIGluIGNhc2Ugb2YgYW55IGVycm9yLAoJICAgYW5kIENNUyB3aWxsIG5vdCBjb25zaWRlciB0aGUgbW9kdWxlIGluc3RhbGxlZC4KCSAgIFN1Y2Nlc3NmdWwgaW5zdGFsbHMgc2hvdWxkIHJldHVybiBGQUxTRSBvciBub3RoaW5nIGF0IGFsbC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEluc3RhbGwoKQoJewoJCQoJCS8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24KCQkkZGIgPSAmJHRoaXMtPmNtcy0+ZGI7CgkJCgkJLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCiAgICAgICAgLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiAgICAgICAgJGZsZHMgPSAiaWQgSSBLRVksCiAgICAgICAgICAgICBkYXRlIEMoMTApLAogICAgICAgICAgICAgaXAgQygyNTUpLAogICAgICAgICAgICAgdXJpIEMoMjU1KSwKICAgICAgICAgICAgIHJlZmVycmVyIEMoMjU1KSwKICAgICAgICAgICAgIGlwIEMoMjU1KSwKICAgICAgICAgICAgIGhvc3QgQygyNTUpLAogICAgICAgICAgICAgdWEgQygyNTUpLAogICAgICAgICAgICAgaXAgQygyNTUpLAogICAgICAgICAgICAgZGF0ZSBEVCwKICAgICAgICAgICAgIHN0YXR1c19jb2RlIEMoMykKCQkJIjsKCgkJLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV92aXNpdG9yc3RhdHMiLAoJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkvLyBjcmVhdGUgYSBzZXF1ZW5jZQoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdmlzaXRvcnN0YXRzX3NlcSIpOwoJCQoJCQoJCS8vIHBlcm1pc3Npb25zCgkJCgoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICBBZnRlciBpbnN0YWxsYXRpb24sIHRoZXJlIG1heSBiZSB0aGluZ3MgeW91IHdhbnQgdG8KCSAgIGNvbW11bmljYXRlIHRvIHlvdXIgYWRtaW4uIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhCgkgICBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewovLwkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICBBZnRlciByZW1vdmluZyBhIG1vZHVsZSwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwoJICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKCSAgIHN0cmluZyB3aGljaCB3aWxsIGJlIGRpc3BsYXllZC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQkvLyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBVcGdyYWRlKCRvbGR2ZXJzaW9uLCAkbmV3dmVyc2lvbikKCXsKCQkkY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247CgkJc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pCgkJewoJCQljYXNlICIxLjAiOgoJCQkgICAgIGJyZWFrOwoJCQljYXNlICIxLjEiOgoJCQkgICAgIGJyZWFrOwoJCX0KCQkKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgl9CgoKCS8qKgoJICogVW5pbnN0YWxsUHJlTWVzc2FnZSgpCgkgKiBUaGlzIGFsbG93cyB5b3UgdG8gZGlzcGxheSBhIG1lc3NhZ2UgYWxvbmcgd2l0aCBhIFllcy9ObyBkaWFsb2cgYm94LiBJZiB0aGUgdXNlciByZXNwb25kcwoJICogaW4gdGhlIGFmZmlybWF0aXZlIHRvIHlvdXIgbWVzc2FnZSwgdGhlIHVuaW5zdGFsbCB3aWxsIHByb2NlZWQuIElmIHRoZXkgcmVzcG9uZCBpbiB0aGUKCSAqIG5lZ2F0aXZlLCB0aGUgdW5pbnN0YWxsIHdpbGwgYmUgY2FuY2VsZWQuIFRodXMsIHlvdXIgbWVzc2FnZSBzaG91bGQgYmUgb2YgdGhlIGZvcm0KCSAqICJBbGwgbW9kdWxlIGRhdGEgd2lsbCBiZSBkZWxldGVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgbW9kdWxlPyIKCSAqCgkgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgZGlhbG9nLCBoYXZlIHRoaXMgbWV0aG9kIHJldHVybiBhIEZBTFNFLCB3aGljaCB3aWxsIGNhdXNlIHRoZQoJICogbW9kdWxlIHRvIHVuaW5zdGFsbCBpbW1lZGlhdGVseSBpZiB0aGUgdXNlciBjbGlja3MgdGhlICJ1bmluc3RhbGwiIGxpbmsuCgkgKi8KCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwoJfQoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgVW5pbnN0YWxsKCkKCSAgIFNvbWV0aW1lcywgYW4gZXhjZXB0aW9uYWxseSB1bmVubGlnaHRlbmVkIG9yIGlnbm9yYW50CgkgICBhZG1pbiB3aWxsIHdpc2ggdG8gdW5pbnN0YWxsIHlvdXIgbW9kdWxlLiBXaGlsZSBpdAoJICAgd291bGQgYmUgYmVzdCB0byBsYXkgaW50byB0aGVzZSBpZGlvdHMgd2l0aCBhIGNsdWVzdGljaywKCSAgIHdlIHdpbGwgZG8gdGhlIG1hZ25hbmltb3VzIHRoaW5nIGFuZCByZW1vdmUgdGhlIG1vZHVsZQoJICAgYW5kIGNsZWFuIHVwIHRoZSBkYXRhYmFzZSwgcGVybWlzc2lvbnMsIGFuZCBwcmVmZXJlbmNlcwoJICAgdGhhdCBhcmUgc3BlY2lmaWMgdG8gaXQuCgkgICBUaGlzIGlzIHRoZSBtZXRob2Qgd2hlcmUgd2UgZG8gdGhpcy4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIFVuaW5zdGFsbCgpCgl7CgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBSZW1vdmFsCgkJJGRiID0gJiR0aGlzLT5jbXMtPmRiOwoJCQoJCS8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV92aXNpdG9yc3RhdHMiICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkvLyByZW1vdmUgdGhlIHNlcXVlbmNlCgkJJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Zpc2l0b3JzdGF0c19zZXEiICk7CgkJCgkJLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucwoJCQoJCQoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgX0NhbGNUaW1lRGlmZigkb2xkX3RpbWUsICRuZXdfdGltZSkKCSAgQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gcGhwIHRpbWVzdGFtcHMKCSBHaXZlIGl0IHR3byBwaHAgdGltZXN0YW1wcyBhbmQgaXQgd2lsbCByZXR1cm4gdGhlIGVsYXBzZWQgdGltZQoJIGFzIHNvbWV0aGluZyBsaWtlICIyIG1pbnV0ZXMgMyBzZWNvbmRzIgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICAgZnVuY3Rpb24gX0NhbGNUaW1lRGlmZigkb2xkX3RpbWUsICRuZXdfdGltZSkKICAgIHsKICAgICAgICAvLyBjYWxjdWxhdGUgZWxhcHNlZCB0aW1lIChpbiBzZWNvbmRzISkKCiAgICAgICAgJGRpZmYgPSAkbmV3X3RpbWUtJG9sZF90aW1lOwogICAgICAgICRkYXlzX2RpZmYgPSBmbG9vcigkZGlmZi82MC82MC8yNCk7CiAgICAgICAgJGRpZmYgLT0gJGRheXNfZGlmZio2MCo2MCoyNDsKICAgICAgICAkaHJzX2RpZmYgPSBmbG9vcigkZGlmZi82MC82MCk7CiAgICAgICAgJGRpZmYgLT0gJGhyc19kaWZmKjYwKjYwOwogICAgICAgICRtaW5zX2RpZmYgPSBmbG9vcigkZGlmZi82MCk7CiAgICAgICAgJGRpZmYgLT0gJG1pbnNfZGlmZio2MDsKICAgICAgICAkc2Vjc19kaWZmID0gJGRpZmY7CgoJCSRvdXRwdXQgPSAnJzsKCQlpZiAoJGRheXNfZGlmZikKCQkgIHsKCQkgICAgJG91dHB1dCAuPSAkZGF5c19kaWZmLicgJy4kdGhpcy0+TGFuZygnZGF5cycpLicgJzsKCQkgIH0KCQlpZiAoJGhyc19kaWZmKQoJCSAgewoJCSAgICAkb3V0cHV0IC49ICRocnNfZGlmZi4nICcuJHRoaXMtPkxhbmcoJ2hvdXJzJykuJyAnOwoJCSAgfQoJCWlmICgkbWluc19kaWZmKSB7ICRvdXRwdXQgLj0gJG1pbnNfZGlmZi4nICcuJHRoaXMtPkxhbmcoJ21pbnV0ZXMnKS4nICc7IH0KCQkkb3V0cHV0IC49ICRzZWNzX2RpZmYuJyAnLiR0aGlzLT5MYW5nKCdzZWNvbmRzJykuJyAnOwogICAgICAgIHJldHVybiAkb3V0cHV0OwogICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgIF9zaG93UHJldk5leHRMaW5rcygkbnVtUm93cykKCSAgT3V0cHV0cyBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBmb3IgbGlzdHMgb2Ygc3RhdHMKCSBUaGUgCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgICBmdW5jdGlvbiBfc2hvd1ByZXZOZXh0TGlua3MoJG51bVJvd3MpIHsKICAgICAgICAkcGFnZV91cmkgPSAnbW9kdWxlaW50ZXJmYWNlLnBocD9tb2R1bGU9VmlzaXRvclN0YXRzJic7CiAgICAgICAgaWYgKChGQUxTRSA9PSBpc3NldCgkX0dFVFsnb2Zmc2V0J10pIHx8IDAgPT0gJF9HRVRbJ29mZnNldCddKSAmJiAkbnVtUm93cyA+IDEwMCkgewoJICAkb3V0cHV0ID0gJzxhIGhyZWY9IicuJHBhZ2VfdXJpLidvZmZzZXQ9MTAwIj4mbHQ7Jmx0OyAnLiR0aGlzLT5MYW5nKCdwcmV2aW91cycpLic8L2E+JzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoRkFMU0UgIT0gaXNzZXQoJF9HRVRbJ29mZnNldCddKSkgewogICAgICAgICAgICAgICAgJHByZXZfb2Zmc2V0ID0gJF9HRVRbJ29mZnNldCddICsgMTAwOwogICAgICAgICAgICAgICAgLy9lY2hvICRudW1Sb3dzLic8YnIgLz4nOwogICAgICAgICAgICAgICAgLy9lY2hvICRwcmV2X29mZnNldDsKICAgICAgICAgICAgICAgIGlmICgkbnVtUm93cyA+ICRwcmV2X29mZnNldCkgewogICAgICAgICAgICAgICAgICAgICRvdXRwdXQgID0gJzxkaXYgY2xhc3M9ImJhY2siPic7CiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCAuPSAnPGEgaHJlZj0iJy4kcGFnZV91cmkuJ29mZnNldD0nLiRwcmV2X29mZnNldC4nIj4mbHQ7Jmx0OyBQcmV2aW91czwvYT4nOwogICAgICAgICAgICAgICAgICAgICRvdXRwdXQgLj0gJzwvZGl2Pic7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRvdXRwdXQgPSAnJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkbmV4dF9ldmVudHMgPSAkX0dFVFsnb2Zmc2V0J10gLSAxMDA7CiAgICAgICAgICAgICAgICAkb3V0cHV0IC49ICc8ZGl2IGNsYXNzPSJmb3J3YXJkIj4nOwogICAgICAgICAgICAgICAgJG91dHB1dCAuPSAnPGEgaHJlZj0iJy4kcGFnZV91cmkuJ29mZnNldD0nLiRuZXh0X2V2ZW50cy4nIj4nLiR0aGlzLT5MYW5nKCduZXh0JykuJyAmZ3Q7Jmd0OzwvYT4nOwogICAgICAgICAgICAgICAgJG91dHB1dCAuPSAnPC9kaXY+JzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dHB1dDsKICAgIH0KCn0KCj8+Cg==]]></data>
	</file>
</module>
