<?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>Twitter</name>
	<version>0.0.5</version>
  <mincmsversion>1.5.0</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93IHlvdSB0byBtYW5hZ2UgeW91ciBUd2l0dGVyIGZyb20gQ01TTVMuIEJvdGggc2VuZCBhbmQgcmVjZWl2ZSBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZS48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5Db25maWd1cmUgeW91ciBUd2l0dGVyIGNyZWRlbnRpYWxzIGluIHRoZSBiYWNrZW5kLiBVc2Uge2Ntc19tb2R1bGUgbW9kdWxlPSJUd2l0dGVyIn0gaW4geW91ciBwYWdlcy90ZW1wbGF0ZXMuPC9wPgo8cD5Zb3UgY2FuIGFsc28gc2hvdyBUd2l0dGVyIHNlYXJjaCByZXN1bHRzIHVzaW5nIHtjbXNfbW9kdWxlIG1vZHVsZT0iVHdpdHRlciIgYWN0aW9uPSJzZWFyY2giIHF1ZXJ5PSJ5b3VyIHNlYXJjaCAjdGVybXMifS48L3A+CjxwPk90aGVyIG1vZHVsZXMgY2FuIGNhbGwgdGhlIHB1YmxpYyBmdW5jdGlvbiB1cGRhdGVTdGF0dXMoJG1lc3NhZ2UsICRzaG9ydGVuKSAod2l0aCBhIDE0MCBtYXggbWVzc2FnZSkgdG8gc2VuZCBtZXNzYWdlIHRvIFR3aXR0ZXIuPC9wPgo8cD5UaGV5IGNhbiBhbHNvIHVzZSB0aGUgcHVibGljIGZ1bmN0aW9uIHNob3J0ZW5VcmxzKCRtZXNzYWdlKSB0byBvbmx5IHNob3J0ZW4gdGhlIHVybHMgY29udGFpbmVkIGludG8gdGhlIG1lc3NhZ2UuPC9wPgo8aDM+V2hhdCBQYXJhbWV0ZXJzIERvZXMgSXQgVGFrZTwvaDM+CjxwPgo8dWw+CiAgPGxpPjxiPmxpbWl0PC9iPiAtIElmIHlvdSBzZXQgdGhhdCwgaXQgd2lsbCBsaW1pdCB0aGUgbnVtYmVyIG9mIGxhdGVzdCB0d2l0dGVyIHVwZGF0ZXMgdG8gdGhpcyB2YWx1ZS48L2xpPgogIDxsaT48Yj50ZW1wbGF0ZTwvYj4gLSBTZWxlY3QgYSBjdXN0b20gdGVtcGxhdGUgc2V0IGluIHRoZSBhZG1pbiBwYW5uZWwuPC9saT4KICA8bGk+PGI+dXNlcl9pZDwvYj4gLSBTcGVjaWZ5IGFuIHVzZXIgaWQ8L2xpPgogIDxsaT48Yj5zY3JlZW5fbmFtZTwvYj4gLSBTcGVjaWZ5IGFuIHVzZXIgc2NyZWVuIG5hbWU8L2xpPgogPC91bD4KIDwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBKZWFuLUNocmlzdG9waGUgQ3V2ZWxpZXIgPGEgaHJlZj0ibWFpbHRvOmpjY0Btb3JyaXMtY2hhcG1hbi5jb20iPiZsdDtqY2NAbW9ycmlzLWNoYXBtYW4uY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48L3VsPg==</help>
	<about>PGJyIC8+QXV0aG9yOiBKZWFuLUNocmlzdG9waGUgQ3V2ZWxpZXIgJmx0O2pjY0Btb3JyaXMtY2hhcG1hbi5jb20mZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMC4wLjU8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CjxsaT5WZXJzaW9uIDAuMC4xIC0gMjkgSnVuZSAyMDA5LiBJbml0aWFsIFJlbGVhc2UuPC9saT4KPC91bD48YnIgLz4=</about>
	<description>This module allow you to manage your Twitter from CMSMS.</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQoKICAgQ29kZSBmb3IgVHdpdHRlciAiZGVmYXVsdCIgYWN0aW9uCgogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogICAKICAgVHlwaWNhbGx5LCB0aGlzIHdpbGwgZGlzcGxheSBzb21ldGhpbmcgZnJvbSBhIHRlbXBsYXRlCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4KICAgCiovCgogIAogICRwdWJsaWNfdGltZWxpbmUgPSAkdGhpcy0+Z2V0VGltZWxpbmUoJ3VzZXInLCAkcGFyYW1zKTsKICAKICAkdGltZWxpbmUgPSBUd2VldDo6cGFyc2VUaW1lbGluZSgkcHVibGljX3RpbWVsaW5lLT5zdGF0dXMpOwogIAogIGlmIChpc3NldCgkcGFyYW1zWydsaW1pdCddKSkKICB7CiAgCSR0aW1lbGluZSA9IGFycmF5X3NsaWNlKCR0aW1lbGluZSwgMCwgJHBhcmFtc1snbGltaXQnXSk7CiAgfQogIAogICR0aGlzLT5zbWFydHktPmFzc2lnbigndGltZWxpbmUnLCAkdGltZWxpbmUpOwogIAogIGlmICghaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgfHwgISR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKSkKICB7CiAgICAvLyAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2RlZmF1bHQnKTsKICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3RpbWVsaW5lLnRwbCcpOwogIH0KICBlbHNlIAogIHsKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKICB9IAo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKCXsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJfQoKLyogLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIENvZGUgZm9yIFR3aXR0ZXIgImRlZmF1bHRhZG1pbiIgYWRtaW4gYWN0aW9uCiAgIAogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogICAKICAgVHlwaWNhbGx5LCB0aGlzIHdpbGwgZGlzcGxheSBzb21ldGhpbmcgZnJvbSBhIHRlbXBsYXRlCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4KICAgCiovCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiX2hlYWRlcnMnLCR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKS4KCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ3R3aXR0ZXInLCR0aGlzLT5MYW5nKCd0aXRsZV90d2l0dGVyJykpLgoJJHRoaXMtPlNldFRhYkhlYWRlcigndGVtcGxhdGVzJywkdGhpcy0+TGFuZygndGl0bGVfdGVtcGxhdGVzJykpLgoJJHRoaXMtPlNldFRhYkhlYWRlcignb3B0aW9ucycsJHRoaXMtPkxhbmcoJ3RpdGxlX29wdGlvbnMnKSkuCgkkdGhpcy0+RW5kVGFiSGVhZGVycygpLiR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3RhYicsJHRoaXMtPkVuZFRhYigpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZm9vdGVycycsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfdHdpdHRlcl90YWInLCR0aGlzLT5TdGFydFRhYigndHdpdHRlcicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF90ZW1wbGF0ZXNfdGFiJywkdGhpcy0+U3RhcnRUYWIoJ3RlbXBsYXRlcycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9vcHRpb25zX3RhYicsJHRoaXMtPlN0YXJ0VGFiKCdvcHRpb25zJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3NlY3Rpb24nLCdkZWZhdWx0YWRtaW4nKTsKCi8vIEdlbmVyYWwKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwovLyBUd2l0dGVyIFRhYgoKaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbicpID09ICcnIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZCcpID09ICcnKQp7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3R3aXR0ZXJfdGFiJywgJzxwPicgLiAkdGhpcy0+TGFuZygnbm9fdHdpdHRlcl9jcmVkZW50aWFsX3NldCcpIC4gJzwvcD4nKTsKfQplbHNlIAp7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXR1c190aXRsZScsICR0aGlzLT5MYW5nKCdzdGF0dXNfdGl0bGUnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXR1cycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAnJywgJ3N0YXR1cycsICcnLCAnJywgJycsICcnLCAnNzAnLCczJywgJycsICcnLCAnc3R5bGU9ImhlaWdodDogYXV0bzsgd2lkdGg6IGF1dG87IicpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndXBkYXRlJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAndXBkYXRlJywgJHRoaXMtPkxhbmcoJ3VwZGF0ZScpKSk7IAoJCglpZiAoaXNzZXQoJHBhcmFtc1snc3RhdHVzJ10pKQoJewoJCS8vZWNobyAndGVzdCc7CgkJJHRoaXMtPnVwZGF0ZVN0YXR1cygkcGFyYW1zWydzdGF0dXMnXSk7Cgl9CgkKICAkcHVibGljX3RpbWVsaW5lID0gJHRoaXMtPmdldFRpbWVsaW5lKCdmcmllbmRzJyk7CiAgJHRpbWVsaW5lID0gVHdlZXQ6OnBhcnNlVGltZWxpbmUoJHB1YmxpY190aW1lbGluZS0+c3RhdHVzKTsKICAkdGltZWxpbmUgPSBhcnJheV9zbGljZSgkdGltZWxpbmUsIDAsIDEwKTsKICAKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGltZWxpbmUnLCAkdGltZWxpbmUpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aW1lbGluZV9zdGF0dXMnLCAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCd0aW1lbGluZS50cGwnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3R3aXR0ZXJfdGFiJywgJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW4udHdpdHRlci50YWIudHBsJykpOwp9CgovLyBUZW1wbGF0ZXMgVGFicwovLyoqKioqKioqKioqKioqKioKCiAgICAkdGVtcGxhdGVfbGlzdCA9ICR0aGlzLT5MaXN0VGVtcGxhdGVzKCk7CiAgICAKICAgICRyb3djbGFzcyA9ICdyb3cxJzsKICAgIAogICAgJHRlbXBsYXRlcyA9IGFycmF5KCk7CiAgICAKICAgIGZvcmVhY2ggKCR0ZW1wbGF0ZV9saXN0IGFzICR0ZW1wbGF0ZSkKICAgIHsKICAgICAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CiAgICAKICAgICAgICAkb25lcm93LT5uYW1lID0gJHRlbXBsYXRlOwogICAgICAgICRvbmVyb3ctPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGVUZW1wbGF0ZScsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPkxhbmcoJ2RlbGV0ZVRlbXBsYXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ3RlbXBsYXRlJz0+JHRlbXBsYXRlKSwgJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKSk7CiAgICAgICAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtYW5hZ2VUZW1wbGF0ZScsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0VGVtcGxhdGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgndGVtcGxhdGUnPT4kdGVtcGxhdGUpKTsKICAgICAgICAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKICAgICAgICAkdGVtcGxhdGVzW10gPSAkb25lcm93OwogICAgCiAgICAgICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgICB9CiAgICAKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVzJywgJHRlbXBsYXRlcyk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3RlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ3RpdGxlX3RlbXBsYXRlJykpOyAgICAKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkdGVtcGxhdGVsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtYW5hZ2VUZW1wbGF0ZScsICcnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX3RlbXBsYXRlJyksYXJyYXkoKSkpOyAgICAKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkdGVtcGxhdGVpY29uJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtYW5hZ2VUZW1wbGF0ZScsICcnLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX3RlbXBsYXRlJyksJycsICcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCkpKTsKICAgIAogICAgCgovLyBPcHRpb24gVGFiCi8vKioqKioqKioqKioqCiR0aGlzLT5zbWFydHktPmFzc2lnbignb3B0aW9uc190aXRsZScsICR0aGlzLT5MYW5nKCdzZXRfdHdpdHRlcl9jcmVkZW50aWFsJykpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3R3aXR0ZXJfbG9naW4nXSkgJiYgaXNzZXQoJHBhcmFtc1snc3VibWl0X29wdGlvbnMnXSkpCnsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsb2dpbicsICRwYXJhbXNbJ3R3aXR0ZXJfbG9naW4nXSk7Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbignbG9naW5fdGl0bGUnLCAkdGhpcy0+TGFuZygnbG9naW4nKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbG9naW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3R3aXR0ZXJfbG9naW4nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW4nKSkpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3R3aXR0ZXJfcGFzc3dvcmQnXSkgJiYgaXNzZXQoJHBhcmFtc1snc3VibWl0X29wdGlvbnMnXSkgJiYgJHBhcmFtc1sndHdpdHRlcl9wYXNzd29yZCddICE9ICcnKQp7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgncGFzc3dvcmQnLCAkcGFyYW1zWyd0d2l0dGVyX3Bhc3N3b3JkJ10pOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Bhc3N3b3JkX3RpdGxlJywgJHRoaXMtPkxhbmcoJ3Bhc3N3b3JkJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Bhc3N3b3JkJywgJHRoaXMtPkNyZWF0ZUlucHV0UGFzc3dvcmQoJGlkLCAndHdpdHRlcl9wYXNzd29yZCcsICcnLCA2MCkpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdF9vcHRpb25zJ10pICYmIGlzc2V0KCRwYXJhbXNbJ3RpbWVvdXQnXSkgJiYgaXNfbnVtZXJpYygkcGFyYW1zWyd0aW1lb3V0J10pICYmICRwYXJhbXNbJ3RpbWVvdXQnXSA+IDAgKQp7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgndGltZW91dCcsICRwYXJhbXNbJ3RpbWVvdXQnXSk7Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGltZW91dF90aXRsZScsICR0aGlzLT5MYW5nKCd0aW1lb3V0JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpbWVvdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpbWVvdXQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGltZW91dCcpKSk7CgoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfb3B0aW9ucycsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdF9vcHRpb25zJywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7IAokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCAkdGhpcy0+TGFuZygnY2FuY2VsJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignb3B0aW9uc190YWInLCAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbi5vcHRpb25zLnRhYi50cGwnKSk7CiAKLy9lY2hvICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbicpIC4gJyAtLS0gJyAuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZCcpICAuICc8YnIgLz4nOyAKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5wYW5lbC50cGwnKTsKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deleteTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIiIpKQ0KCXsNCglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsNCgl9DQoNCi8qIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tDQoNCiAgIENvZGUgZm9yIERvY3VtZW50c0xpYnJhcnkgIm1hbmFnZUNhdGVnb3JpZXMiIGFkbWluIGFjdGlvbg0KICAgDQogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQ0KICAgDQogICBUeXBpY2FsbHksIHRoaXMgd2lsbCBkaXNwbGF5IHNvbWV0aGluZyBmcm9tIGEgdGVtcGxhdGUNCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4NCiAgIA0KKi8NCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pKQ0Kew0KCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsNCgkNCgkkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCg0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.manageTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQ0KDQogICBDb2RlIGZvciBEb2N1bWVudHNMaWJyYXJ5ICJtYW5hZ2VUZW1wbGF0ZSIgYWRtaW4gYWN0aW9uDQogICANCiAgIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tDQogICANCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQ0KICAgb3IgZG8gc29tZSBvdGhlciB0YXNrLg0KICAgDQoqLw0KDQovLyBST0NLIEFORCBMT0FEDQoNCmlmIChpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSAmJiAkcGFyYW1zWyd0ZW1wbGF0ZSddICE9ICcnKQ0Kew0KCSR0aXRsZSA9ICRwYXJhbXNbJ3RlbXBsYXRlJ107DQoJDQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdGJ1dHRvbiddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseWJ1dHRvbiddKSkNCgl7DQoJCSR0aGlzLT5TZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddLCAkcGFyYW1zWyd0ZW1wbGF0ZWRldGFpbHMnXSk7DQoJCQ0KCQlpZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0YnV0dG9uJ10pKQ0KCQl7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRlcycpKTsNCgkJfQ0KCX0NCn0NCmVsc2UgDQp7DQoJJHRpdGxlID0gJyc7DQp9DQoNCi8vIERFVEFJTFMNCg0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnbWFuYWdlVGVtcGxhdGUnLCAkcmV0dXJuaWQpKTsNCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3RlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ3RpdGxlX3RlbXBsYXRlJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfdGVtcGxhdGUnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndGVtcGxhdGUnLCAkdGl0bGUsIDUwKSk7DQoJDQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3RvcmUnXSkpDQoJew0KCQkkdGVtcGxhdGVjb2RlID0gJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ3RpbWVsaW5lJyk7DQoJfQkNCgllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pICYmICRwYXJhbXNbJ3RlbXBsYXRlJ10gIT0gJycpDQoJew0KCQkkdGVtcGxhdGVjb2RlID0gJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOw0KCX0NCgllbHNlIA0KCXsNCgkJJHRlbXBsYXRlY29kZSA9ICcnOw0KCX0NCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvZGVfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygnY29kZScpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RleHRhcmVhX3RlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJHRlbXBsYXRlY29kZSwgJ3RlbXBsYXRlZGV0YWlscycsICdwYWdlYmlndGV4dGFyZWEnLCAnJywnJywgJycsIDkwLCAxNSwgJ0VkaXRBcmVhJykpOw0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9kZXRhaWxzX3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXRidXR0b24nLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZGV0YWlsc19hcHBseScsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdhcHBseWJ1dHRvbicsICR0aGlzLT5MYW5nKCdhcHBseScpKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2RldGFpbHNfcmVzdG9yZScsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdyZXN0b3JlJywgJHRoaXMtPkxhbmcoJ3Jlc3RvcmUnKSkpOw0KDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ21hbmFnZXRlbXBsYXRlLnRwbCcpOw0KCQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQoKICAgQ29kZSBmb3IgVHdpdHRlciAiZGVmYXVsdCIgYWN0aW9uCgogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogICAKICAgVHlwaWNhbGx5LCB0aGlzIHdpbGwgZGlzcGxheSBzb21ldGhpbmcgZnJvbSBhIHRlbXBsYXRlCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4KICAgCiovCgogIGlmKGlzc2V0KCRwYXJhbXNbJ3F1ZXJ5J10pKQogIHsKCSAgJHJlc3VsdHMgPSBUd2VldDo6ZG9TZWFyY2goJHBhcmFtc1sncXVlcnknXSk7CgkgIAoJICAkdGltZWxpbmUgPSBUd2VldDo6cGFyc2VTZWFyY2goJHJlc3VsdHMpOwoJICAKCSAgaWYgKGlzc2V0KCRwYXJhbXNbJ2xpbWl0J10pKQoJICB7CgkgIAkkdGltZWxpbmUgPSBhcnJheV9zbGljZSgkdGltZWxpbmUsIDAsICRwYXJhbXNbJ2xpbWl0J10pOwoJICB9CgkgIAoJICAvL2VjaG8gJzxwcmU+JzsgdmFyX2R1bXAoVHdlZXQ6OnBhcnNlU2VhcmNoKCRyZXN1bHRzKSk7IGVjaG8gJzwvcHJlPic7IAoJICAKCSAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXN1bHRzJywgJHJlc3VsdHMpOwoJICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpbWVsaW5lJywgJHRpbWVsaW5lKTsKCSAgCgkgIGlmICghaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgfHwgISR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKSkKCSAgewoJICAgIC8vICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnZGVmYXVsdCcpOwoJICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3RpbWVsaW5lLnRwbCcpOwoJICB9CgkgIGVsc2UgCgkgIHsKCSAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHBhcmFtc1sndGVtcGxhdGUnXSk7CgkgIH0gCiAgfQ==]]></data>
	</file>
	<file>
	  <filename>/action.send.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIk1hbmFnZSBUd2l0dGVyIikpCgl7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKCX0KCi8qIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCgogICBDb2RlIGZvciBUd2l0dGVyICJzZW5kIiBhZG1pbiBhY3Rpb24KICAgCiAgIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCiAgIAogICBUeXBpY2FsbHksIHRoaXMgd2lsbCBkaXNwbGF5IHNvbWV0aGluZyBmcm9tIGEgdGVtcGxhdGUKICAgb3IgZG8gc29tZSBvdGhlciB0YXNrLgogICAKKi8KCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/classes/Tweet.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKICAKICAvKgogICAqIFJlbGF0aW9uIGNsYXNzCiAgICogCiAgICogVGhpcyBjbGFzcyBhbGxvdyBtYW5hZ2VtZW50IG9mIGEgVHdlZXQgb2JqZWN0CiAgICogCiAgICogCiAgICogQ29weXJpZ2h0czogTW9ycmlzICYgQ2hhcG1hbiBCZWxnaXVtIC0gSmVhbi1DaHJpc3RvcGhlIEN1dmVsaWVyIC0gMjAwOQogICAqIAogICAqLwoKY2xhc3MgVHdlZXQgZXh0ZW5kcyBDbXNPYmplY3QgCnsKICB2YXIgJGNyZWF0ZWRfYXQ7CiAgdmFyICRpZDsKICB2YXIgJHRleHQ7CiAgdmFyICRzb3VyY2U7CiAgCiAgdmFyICRhdXRob3JfbmFtZTsKICB2YXIgJHBpY3R1cmU7CiAgdmFyICR4bWw7CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldFdoZW4oKQogIHsKICAgIHJldHVybiBzZWxmOjpkaXN0YW5jZV9vZl90aW1lX2luX3dvcmRzKHN0cnRvdGltZSgkdGhpcy0+Y3JlYXRlZF9hdCkpIC4gJyBhZ28nOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gZ2V0VGV4dCgpCiAgewogICAgJHRleHQgPSAkdGhpcy0+dGV4dDsKICAgIAogICAgaWYoKHN0cnBvcygkdGV4dCwnaHR0cCcpICE9PSBmYWxzZSkgfHwgKHN0cnBvcygkdGV4dCwnQCcpICE9PSBmYWxzZSl8fCAoc3RycG9zKCR0ZXh0LCcjJykgIT09IGZhbHNlKSkKICAgIHsKICAgICAgJHdvcmRzID0gYXJyYXlfdW5pcXVlKGV4cGxvZGUoJyAnLCAkdGhpcy0+dGV4dCkpOwogICAgICBmb3JlYWNoICgkd29yZHMgYXMgJHdvcmQpCiAgICAgIHsKICAgICAgICBpZiAoc3RycG9zKCR3b3JkLCdodHRwJykgIT09IGZhbHNlKQogICAgICAgIHsKICAgICAgICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoJHdvcmQsICc8YSBocmVmPSInIC4gJHdvcmQgLiAnIiB0YXJnZXQ9Il9uZXciPicgLiAkd29yZCAuICc8L2E+JywgJHRleHQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZiAoc3RycG9zKCR3b3JkLCdAJykgPT09IDApCiAgICAgICAgewogICAgICAgICAgJGxpbmsgPSBzdHJfcmVwbGFjZSgnQCcsICcnLCAkd29yZCk7CiAgICAgICAgICAkbGluayA9IHN0cl9yZXBsYWNlKCc6JywgJycsICRsaW5rKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoJHdvcmQsICdAPGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tLycgLiAkbGluayAuICciIHRhcmdldD0iX25ldyI+JyAuIHN0cl9yZXBsYWNlKCdAJywgJycsICR3b3JkKSAuICc8L2E+JywgJHRleHQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZiAoc3RycG9zKCR3b3JkLCcjJykgPT09IDApCiAgICAgICAgewogICAgICAgICAgJHRleHQgPSBzdHJfcmVwbGFjZSgkd29yZCwgJzxhIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9zZWFyY2g/cT0nIC4gcmF3dXJsZW5jb2RlKCR3b3JkKSAuICciIHRhcmdldD0iX25ldyI+JyAuICR3b3JkIC4gJzwvYT4nLCAkdGV4dCk7CiAgICAgICAgfQogICAgICAgIAogICAgICB9ICAgICAKICAgIH0KICAgIHJldHVybiAkdGV4dDsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzaG9ydGVuVXJscygkbWVzc2FnZSkKICB7CiAgICAgJHdvcmRzID0gYXJyYXlfdW5pcXVlKGV4cGxvZGUoJyAnLCAkbWVzc2FnZSkpOwogICAgIAogICAgICRuZXdfd29yZHMgPSBhcnJheSgpOwogICAgICAgICAKICAgICBmb3JlYWNoKCR3b3JkcyBhcyAkd29yZCkKICAgICB7CiAgICAgICAgaWYgKHN0cnBvcygkd29yZCwnaHR0cCcpICE9PSBmYWxzZSkKICAgICAgewogICAgICAgICAgIC8vJHRleHQgPSBzdHJfcmVwbGFjZSgkd29yZCwgJzxhIGhyZWY9IicgLiAkd29yZCAuICciIHRhcmdldD0iX25ldyI+JyAuICR3b3JkIC4gJzwvYT4nLCAkdGV4dCk7CiAgICAgICAgICAgJG5ld193b3Jkc1tdID0gc2VsZjo6c2hvcnRlblVybCgkd29yZCk7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgICRuZXdfd29yZHNbXSA9ICR3b3JkOwogICAgICB9CiAgICAgfQogICAgIAogICAgIHJldHVybiBpbXBsb2RlKCcgJywgJG5ld193b3Jkcyk7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2hvcnRlblVybCgkdXJsKQogIHsKICAgICAvLyBNYWRlIHdpdGggYml0Lmx5IChmb3IgdGhlIG1vbWVudCwgdG90b3BoZSBhY2NvdW50OiBhcGkga2V5OiBSX2M1YjA0NzQzNzMxZTg2YWJlMzFkYTQ5NGY0MGQ0Y2I0KQogICAgIAogICAgICRtYWluX3VybCA9ICdodHRwOi8vYXBpLmJpdC5seS9zaG9ydGVuJzsKICAgICAKICAgICAkcGFyYW1zID0gYXJyYXkoCiAgICAgICAgJ3ZlcnNpb24nID0+ICcyLjAuMScsCiAgICAgICAgJ2Zvcm1hdCcgPT4gJ3htbCcsCiAgICAgICAgJ2xvZ2luJyA9PiAndG90b3BoZScsCiAgICAgICAgJ2FwaUtleScgPT4gJ1JfYzViMDQ3NDM3MzFlODZhYmUzMWRhNDk0ZjQwZDRjYjQnLAogICAgICAgICdsb25nVXJsJyA9PiAkdXJsLAogICAgICAgICk7CiAgICAgLy92YXJfZHVtcCgkcGFyYW1zKTsKICAgICAKICAgICAkeG1sID0gc2ltcGxleG1sX2xvYWRfc3RyaW5nKGZpbGVfZ2V0X2NvbnRlbnRzKCRtYWluX3VybCAuICc/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJHBhcmFtcykpKTsKICAgICAKICAgICBpZiAoJHhtbC0+c3RhdHVzQ29kZSA9PSAnT0snICYmICFpc3NldCgkeG1sLT5yZXN1bHRzLT5ub2RlS2V5VmFsLT5zdGF0dXNDb2RlKSkKICAgICB7CiAgICAgICAgLy92YXJfZHVtcCgkeG1sLT5yZXN1bHRzLT5ub2RlS2V5VmFsKTsKICAgICAgICByZXR1cm4gJHhtbC0+cmVzdWx0cy0+bm9kZUtleVZhbC0+c2hvcnRVcmw7CiAgICAgfQogICAgIGVsc2UKICAgICB7CiAgICAgICAgcmV0dXJuICR1cmw7CiAgICAgfQogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZUZyb21YbWwoJHhtbCkKICB7CiAgICAkdHdlZXQgPSBuZXcgc2VsZjsgICAgCiAgICAkdHdlZXQtPnhtbCA9ICR4bWw7CgogICAgJGNvbnRlbnQgPSBzaW1wbGV4bWxfbG9hZF9zdHJpbmcoJHR3ZWV0LT54bWwpOwogICAgCiAgICAvL2VjaG8gJzxwcmU+JzsgdmFyX2R1bXAoJGNvbnRlbnQpOyBlY2hvICc8L3ByZT4nOyAKICAgIAogICAgJGRhdGFzWydjcmVhdGVkX2F0J10gPSAgJGNvbnRlbnQtPmNyZWF0ZWRfYXQ7CiAgICAkZGF0YXNbJ2lkJ10gPSAgJGNvbnRlbnQtPmlkOwogICAgJGRhdGFzWyd0ZXh0J10gPSAgJGNvbnRlbnQtPnRleHQ7CiAgICAkZGF0YXNbJ3NvdXJjZSddID0gICRjb250ZW50LT5zb3VyY2U7CiAgICAkZGF0YXNbJ2F1dGhvcl9uYW1lJ10gPSAgJGNvbnRlbnQtPnVzZXItPnNjcmVlbl9uYW1lOwogICAgJGRhdGFzWydwaWN0dXJlJ10gPSAgJGNvbnRlbnQtPnVzZXItPnByb2ZpbGVfaW1hZ2VfdXJsOyAgCiAgICAKICAgICR0d2VldC0+cG9wdWxhdGUoJGRhdGFzKTsKICAgIAogICAgLy9lY2hvICc8cHJlPic7IHZhcl9kdW1wKCR0d2VldCk7IGVjaG8gJzwvcHJlPic7IAogICAgCiAgICByZXR1cm4gJHR3ZWV0OwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gcG9wdWxhdGUoJGRhdGFzKQogIHsKICAgICR0aGlzLT5jcmVhdGVkX2F0ID0gJGRhdGFzWydjcmVhdGVkX2F0J107CiAgICAkdGhpcy0+aWQgPSAkZGF0YXNbJ2lkJ107CiAgICAkdGhpcy0+dGV4dCA9ICRkYXRhc1sndGV4dCddOwogICAgJHRoaXMtPnNvdXJjZSA9ICRkYXRhc1snc291cmNlJ107CiAgICAkdGhpcy0+YXV0aG9yX25hbWUgPSAkZGF0YXNbJ2F1dGhvcl9uYW1lJ107CiAgICAkdGhpcy0+cGljdHVyZSA9ICRkYXRhc1sncGljdHVyZSddOwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHBhcnNlVGltZWxpbmUoJHRpbWVsaW5lX3htbCkKICB7CiAgICAkdGltZWxpbmUgPSBhcnJheSgpOwogICAgCiAgICBmb3JlYWNoICgkdGltZWxpbmVfeG1sIGFzICRzdGF0dXMpCiAgICB7CiAgICAgICR0aW1lbGluZVtdID0gc2VsZjo6Y3JlYXRlRnJvbVhtbCgkc3RhdHVzLT5hc1htbCgpKTsKICAgIH0KICAgIAogICAgcmV0dXJuICR0aW1lbGluZTsgICAKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkaXN0YW5jZV9vZl90aW1lX2luX3dvcmRzKCRmcm9tX3RpbWUsICR0b190aW1lID0gbnVsbCwgJGluY2x1ZGVfc2Vjb25kcyA9IGZhbHNlKQogIHsKICAgICR0b190aW1lID0gJHRvX3RpbWU/ICR0b190aW1lOiB0aW1lKCk7CiAgCiAgICAkZGlzdGFuY2VfaW5fbWludXRlcyA9IGZsb29yKGFicygkdG9fdGltZSAtICRmcm9tX3RpbWUpIC8gNjApOwogICAgJGRpc3RhbmNlX2luX3NlY29uZHMgPSBmbG9vcihhYnMoJHRvX3RpbWUgLSAkZnJvbV90aW1lKSk7CiAgCiAgICAkc3RyaW5nID0gJyc7CiAgICAkcGFyYW1ldGVycyA9IGFycmF5KCk7CiAgCiAgICBpZiAoJGRpc3RhbmNlX2luX21pbnV0ZXMgPD0gMSkKICAgIHsKICAgICAgaWYgKCEkaW5jbHVkZV9zZWNvbmRzKQogICAgICB7CiAgICAgICAgJHN0cmluZyA9ICRkaXN0YW5jZV9pbl9taW51dGVzID09IDAgPyAnbGVzcyB0aGFuIGEgbWludXRlJyA6ICcxIG1pbnV0ZSc7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgaWYgKCRkaXN0YW5jZV9pbl9zZWNvbmRzIDw9IDUpCiAgICAgICAgewogICAgICAgICAgJHN0cmluZyA9ICdsZXNzIHRoYW4gNSBzZWNvbmRzJzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX3NlY29uZHMgPj0gNiAmJiAkZGlzdGFuY2VfaW5fc2Vjb25kcyA8PSAxMCkKICAgICAgICB7CiAgICAgICAgICAkc3RyaW5nID0gJ2xlc3MgdGhhbiAxMCBzZWNvbmRzJzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX3NlY29uZHMgPj0gMTEgJiYgJGRpc3RhbmNlX2luX3NlY29uZHMgPD0gMjApCiAgICAgICAgewogICAgICAgICAgJHN0cmluZyA9ICdsZXNzIHRoYW4gMjAgc2Vjb25kcyc7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKCRkaXN0YW5jZV9pbl9zZWNvbmRzID49IDIxICYmICRkaXN0YW5jZV9pbl9zZWNvbmRzIDw9IDQwKQogICAgICAgIHsKICAgICAgICAgICAkc3RyaW5nID0gJ2hhbGYgYSBtaW51dGUnOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCRkaXN0YW5jZV9pbl9zZWNvbmRzID49IDQxICYmICRkaXN0YW5jZV9pbl9zZWNvbmRzIDw9IDU5KQogICAgICAgICB7CiAgICAgICAgICAgJHN0cmluZyA9ICdsZXNzIHRoYW4gYSBtaW51dGUnOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICRzdHJpbmcgPSAnMSBtaW51dGUnOwogICAgICAgICB9CiAgICAgICB9CiAgICAgfQogICAgIGVsc2UgaWYgKCRkaXN0YW5jZV9pbl9taW51dGVzID49IDIgJiYgJGRpc3RhbmNlX2luX21pbnV0ZXMgPD0gNDQpCiAgICAgewogICAgICAgJHN0cmluZyA9ICclbWludXRlcyUgbWludXRlcyc7CiAgICAgICAkcGFyYW1ldGVyc1snJW1pbnV0ZXMlJ10gPSAkZGlzdGFuY2VfaW5fbWludXRlczsKICAgICB9CiAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX21pbnV0ZXMgPj0gNDUgJiYgJGRpc3RhbmNlX2luX21pbnV0ZXMgPD0gODkpCiAgICAgewogICAgICAgJHN0cmluZyA9ICdhYm91dCAxIGhvdXInOwogICAgIH0KICAgICBlbHNlIGlmICgkZGlzdGFuY2VfaW5fbWludXRlcyA+PSA5MCAmJiAkZGlzdGFuY2VfaW5fbWludXRlcyA8PSAxNDM5KQogICAgIHsKICAgICAgICRzdHJpbmcgPSAnYWJvdXQgJWhvdXJzJSBob3Vycyc7CiAgICAgICAkcGFyYW1ldGVyc1snJWhvdXJzJSddID0gcm91bmQoJGRpc3RhbmNlX2luX21pbnV0ZXMgLyA2MCk7CiAgICAgfQogICAgIGVsc2UgaWYgKCRkaXN0YW5jZV9pbl9taW51dGVzID49IDE0NDAgJiYgJGRpc3RhbmNlX2luX21pbnV0ZXMgPD0gMjg3OSkKICAgICB7CiAgICAgICAkc3RyaW5nID0gJzEgZGF5JzsKICAgICB9CiAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX21pbnV0ZXMgPj0gMjg4MCAmJiAkZGlzdGFuY2VfaW5fbWludXRlcyA8PSA0MzE5OSkKICAgICB7CiAgICAgICAkc3RyaW5nID0gJyVkYXlzJSBkYXlzJzsKICAgICAgICRwYXJhbWV0ZXJzWyclZGF5cyUnXSA9IHJvdW5kKCRkaXN0YW5jZV9pbl9taW51dGVzIC8gMTQ0MCk7CiAgICAgfQogICAgIGVsc2UgaWYgKCRkaXN0YW5jZV9pbl9taW51dGVzID49IDQzMjAwICYmICRkaXN0YW5jZV9pbl9taW51dGVzIDw9IDg2Mzk5KQogICAgIHsKICAgICAgICRzdHJpbmcgPSAnYWJvdXQgMSBtb250aCc7CiAgICAgfQogICAgIGVsc2UgaWYgKCRkaXN0YW5jZV9pbl9taW51dGVzID49IDg2NDAwICYmICRkaXN0YW5jZV9pbl9taW51dGVzIDw9IDUyNTk1OSkKICAgICB7CiAgICAgICAkc3RyaW5nID0gJyVtb250aHMlIG1vbnRocyc7CiAgICAgICAkcGFyYW1ldGVyc1snJW1vbnRocyUnXSA9IHJvdW5kKCRkaXN0YW5jZV9pbl9taW51dGVzIC8gNDMyMDApOwogICAgIH0KICAgICBlbHNlIGlmICgkZGlzdGFuY2VfaW5fbWludXRlcyA+PSA1MjU5NjAgJiYgJGRpc3RhbmNlX2luX21pbnV0ZXMgPD0gMTA1MTkxOSkKICAgICB7CiAgICAgICAkc3RyaW5nID0gJ2Fib3V0IDEgeWVhcic7CiAgICAgfQogICAgIGVsc2UKICAgICB7CiAgICAgICAkc3RyaW5nID0gJ292ZXIgJXllYXJzJSB5ZWFycyc7CiAgICAgICAkcGFyYW1ldGVyc1snJXllYXJzJSddID0gZmxvb3IoJGRpc3RhbmNlX2luX21pbnV0ZXMgLyA1MjU5NjApOwogICAgIH0KICAgCiAgICAgICByZXR1cm4gc3RydHIoJHN0cmluZywgJHBhcmFtZXRlcnMpOwogICAgIAogICB9CiAgIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0Q3VybCgkdXJsLCAkY3JlZGVudGlhbHMgPSBudWxsLCAkZGF0YSA9IGFycmF5KCkpCiAgewogICAgICAvLyBjcmVhdGUgYSBuZXcgY1VSTCByZXNvdXJjZQogICAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgICAgCiAgICAgIGlmIChjb3VudCgkZGF0YSkgIT0gMCkKICAgICAgewogICAgICAgICAkdXJsIC49ICc/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJGRhdGEpOwogICAgICB9CiAgICAgIAogICAgICAvLyBzZXQgVVJMIGFuZCBvdGhlciBhcHByb3ByaWF0ZSBvcHRpb25zCiAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOwogICAgICAKICAgICAgaWYgKCRjcmVkZW50aWFscykKICAgICAgewogICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUlBXRCwgJycgLiAkY3JlZGVudGlhbHNbJ2xvZ2luJ10gLiAnOicgLiAkY3JlZGVudGlhbHNbJ3Bhc3N3b3JkJ10gLiAnJyk7CiAgICAgIH0gICAgIAogICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsKICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgICAgY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCBhcnJheSgnRXhwZWN0OicpICk7CiAgICAgIAogICAgICAvKgogICAgICBpZiAoY291bnQoJGRhdGEpICE9IDApCiAgICAgIHsKICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkZGF0YSk7CiAgICAgIH0KICAgICAgKi8KICAgICAgCiAgICAgIC8vIGdyYWIgVVJMIGFuZCBwYXNzIGl0IHRvIHRoZSBicm93c2VyCiAgICAgICRvdXRwdXQgPSBjdXJsX2V4ZWMoJGNoKTsKICAgICAgCiAgICAgIC8vIGNsb3NlIGNVUkwgcmVzb3VyY2UsIGFuZCBmcmVlIHVwIHN5c3RlbSByZXNvdXJjZXMKICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgICAKICAgICAgcmV0dXJuICRvdXRwdXQ7CiAgfQogIAogIC8qKgogICAqIGRvU2VhcmNoIHBlcmZvcm1zIGEgc2VhcmNoIHF1ZXJ5CiAgICogQHBhcmFtICRxdWVyeSBUaGUgcXVlcnkgc3RyaW5nLCBsaW1pdGVkIHRvIDE0MCBjaGFycwogICAqIEBwYXJhbSAkcGFyYW1zIFBhcmFtZXRlcnMgZm9yIHRoZSBxdWVyeQogICAqIEByZXR1cm4gc2ltcGxleG1sCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkb1NlYXJjaCgkcXVlcnksICRwYXJhbXMgPSBhcnJheSgpKQogIHsKICAgICR1cmwgPSAnaHR0cDovL3NlYXJjaC50d2l0dGVyLmNvbS9zZWFyY2guYXRvbSc7CiAgICAKICAgICRwYXJhbXNbJ3EnXSA9ICRxdWVyeTsKICAgIAogICAgcmV0dXJuIHNpbXBsZXhtbF9sb2FkX3N0cmluZyhUd2VldDo6Z2V0Q3VybCgkdXJsLCBudWxsLCAkcGFyYW1zKSk7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcGFyc2VTZWFyY2goJHJlc3VsdHMsICRsaW1pdCA9IG51bGwpCiAgewogICAgJGVudHJpZXMgPSBhcnJheSgpOwogICAgCiAgICBmb3JlYWNoICgkcmVzdWx0cy0+ZW50cnkgYXMgJGVudHJ5KQogICAgewogICAgICAkdHdlZXQgPSBuZXcgc2VsZjsKICAgICAgJHR3ZWV0LT54bWwgPSAkZW50cnk7CiAgICAgIAogICAgICAkZGF0YXNbJ2NyZWF0ZWRfYXQnXSA9ICAkZW50cnktPnB1Ymxpc2hlZDsKICAgICAgJGRhdGFzWydpZCddID0gICRlbnRyeS0+aWQ7CiAgICAgICRkYXRhc1sndGV4dCddID0gICRlbnRyeS0+dGl0bGU7CiAgICAgICRkYXRhc1snc291cmNlJ10gPSAgbnVsbDsKICAgICAgJGRhdGFzWydhdXRob3JfbmFtZSddID0gICRlbnRyeS0+YXV0aG9yLT5uYW1lOwogICAgICAvLyRkYXRhc1snYXV0aG9yX3VyaSddID0gICRlbnRyeS0+YXV0aG9yLT51cmk7CiAgICAgICRkYXRhc1sncGljdHVyZSddID0gICcnOyAgCiAgICAgIAogICAgICBmb3JlYWNoICgkZW50cnktPmxpbmsgYXMgJGluZm8pCiAgICAgIHsKICAgICAgICBpZiAoJGluZm8tPmF0dHJpYnV0ZXMoKS0+cmVsID09ICdpbWFnZScpCiAgICAgICAgewogICAgICAgICAgJGRhdGFzWydwaWN0dXJlJ10gPSAgJGluZm8tPmF0dHJpYnV0ZXMoKS0+aHJlZjsgIAogICAgICAgIH0KICAgICAgfQogICAgCiAgICAgICR0d2VldC0+cG9wdWxhdGUoJGRhdGFzKTsKICAgICAgCiAgICAgICRlbnRyaWVzW10gPSAkdHdlZXQ7CiAgICB9CiAgICAKICAgIHJldHVybiAkZW50cmllczsKICB9Cn0=]]></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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1R3aXR0ZXInOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUd2l0dGVyIGluc3RhbGxlZC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1R3aXR0ZXIgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdSZWFsbHk/IEFyZSB5b3Ugc3VyZQp5b3Ugd2FudCB0byB1bnNpbnN0YWxsIHRoaXMgZmluZSBtb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVGhpcyBtb2R1bGUgYWxsb3cgeW91IHRvIG1hbmFnZSB5b3VyIFR3aXR0ZXIgZnJvbSBDTVNNUy4gQm90aCBzZW5kIGFuZCByZWNlaXZlIGZ1bmN0aW9ucyBhcmUgYXZhaWxhYmxlLic7CgokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZFsnYWRtaW5fdGl0bGUnXSA9ICdUd2l0dGVyIEFkbWluIFBhbmVsJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICdUaGlzIG1vZHVsZSBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgVHdpdHRlciBmcm9tIENNU01TLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZSwgKGUuZy4sIEJlIHN1cmUgdG8gc2V0ICJNYW5hZ2UgVHdpdHRlciIgcGVybWlzc2lvbnMgdG8gdXNlIHRoaXMgbW9kdWxlISknOwokbGFuZ1snVHdpdHRlciddID0gJ1R3aXR0ZXInOwokbGFuZ1snT3B0aW9ucyddID0gJ09wdGlvbnMnOwokbGFuZ1sndGl0bGVfdHdpdHRlciddID0gJ1R3aXR0ZXInOwokbGFuZ1sndGl0bGVfb3B0aW9ucyddID0gJ09wdGlvbnMnOwoKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydhcHBseSddID0gJ0FwcGx5JzsKJGxhbmdbJ2NhbmNlbCddID0gJ2NhbmNlbCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1sncmVzdG9yZSddID0gJ1Jlc3RvcmUnOwoKLy8gQWRtaW4KCiRsYW5nWydzdGF0dXNfdGl0bGUnXSA9ICdXaGF0IGFyZSB5b3UgZG9pbmc/JzsKCiRsYW5nWydub190d2l0dGVyX2NyZWRlbnRpYWxfc2V0J10gPSAnUGxlYXNlIGNvbmZpZ3VyZSB5b3VyIFR3aXR0ZXIgYWNjb3VudCBpbnRvIHRoZSAiT3B0aW9ucyIgdGFiLic7CiRsYW5nWydzZXRfdHdpdHRlcl9jcmVkZW50aWFsJ10gPSAnUGxlYXNlIGVudGVyIHlvdXIgVHdpdHRlciBjcmVkZW50aWFsLic7CiRsYW5nWydsb2dpbiddID0gJ0xvZ2luJzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1sndGltZW91dCddID0gJ1RpbWVvdXQnOwoKLy8gVGVtcGxhdGVzCgokbGFuZ1sndGl0bGVfdGVtcGxhdGVzJ10gPSAnVGVtcGxhdGVzJzsKJGxhbmdbJ3RpdGxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1snY29kZSddID0gJ0NvZGUnOwokbGFuZ1sndGl0bGVfYWRkX3RlbXBsYXRlJ10gPSAnQWRkIHRlbXBsYXRlJzsKCiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+CjxsaT5WZXJzaW9uIDAuMC4xIC0gMjkgSnVuZSAyMDA5LiBJbml0aWFsIFJlbGVhc2UuPC9saT4KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgVHdpdHRlciBmcm9tIENNU01TLiBCb3RoIHNlbmQgYW5kIHJlY2VpdmUgZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+Q29uZmlndXJlIHlvdXIgVHdpdHRlciBjcmVkZW50aWFscyBpbiB0aGUgYmFja2VuZC4gVXNlIHtjbXNfbW9kdWxlIG1vZHVsZT0iVHdpdHRlciJ9IGluIHlvdXIgcGFnZXMvdGVtcGxhdGVzLjwvcD4KPHA+WW91IGNhbiBhbHNvIHNob3cgVHdpdHRlciBzZWFyY2ggcmVzdWx0cyB1c2luZyB7Y21zX21vZHVsZSBtb2R1bGU9IlR3aXR0ZXIiIGFjdGlvbj0ic2VhcmNoIiBxdWVyeT0ieW91ciBzZWFyY2ggI3Rlcm1zIn0uPC9wPgo8cD5PdGhlciBtb2R1bGVzIGNhbiBjYWxsIHRoZSBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlU3RhdHVzKCRtZXNzYWdlLCAkc2hvcnRlbikgKHdpdGggYSAxNDAgbWF4IG1lc3NhZ2UpIHRvIHNlbmQgbWVzc2FnZSB0byBUd2l0dGVyLjwvcD4KPHA+VGhleSBjYW4gYWxzbyB1c2UgdGhlIHB1YmxpYyBmdW5jdGlvbiBzaG9ydGVuVXJscygkbWVzc2FnZSkgdG8gb25seSBzaG9ydGVuIHRoZSB1cmxzIGNvbnRhaW5lZCBpbnRvIHRoZSBtZXNzYWdlLjwvcD4KPGgzPldoYXQgUGFyYW1ldGVycyBEb2VzIEl0IFRha2U8L2gzPgo8cD4KPHVsPgogIDxsaT48Yj5saW1pdDwvYj4gLSBJZiB5b3Ugc2V0IHRoYXQsIGl0IHdpbGwgbGltaXQgdGhlIG51bWJlciBvZiBsYXRlc3QgdHdpdHRlciB1cGRhdGVzIHRvIHRoaXMgdmFsdWUuPC9saT4KICA8bGk+PGI+dGVtcGxhdGU8L2I+IC0gU2VsZWN0IGEgY3VzdG9tIHRlbXBsYXRlIHNldCBpbiB0aGUgYWRtaW4gcGFubmVsLjwvbGk+CiAgPGxpPjxiPnVzZXJfaWQ8L2I+IC0gU3BlY2lmeSBhbiB1c2VyIGlkPC9saT4KICA8bGk+PGI+c2NyZWVuX25hbWU8L2I+IC0gU3BlY2lmeSBhbiB1c2VyIHNjcmVlbiBuYW1lPC9saT4KIDwvdWw+CiA8L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgSmVhbi1DaHJpc3RvcGhlIEN1dmVsaWVyIDxhIGhyZWY9Im1haWx0bzpqY2NAbW9ycmlzLWNoYXBtYW4uY29tIj4mbHQ7amNjQG1vcnJpcy1jaGFwbWFuLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoJICAgCSAgIAoJICAgRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBjcmVhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsCgkgICBjaGVjayBvdXQgdGhlIEFET0RCIERhdGEgRGljdGlvbmFyeSBwYWdlIGF0CgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQoJICAgCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBJbml0aWFsaXphdGlvbgoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkKCQkvLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkKICAgICAgICAvLyB0YWJsZSBzY2hlbWEgZGVzY3JpcHRpb24KICAgICAgICAkZmxkcyA9ICIKCQkJaWQgSSBLRVksCgkJCWRlc2NyaXB0aW9uIEMoODApCgkJCSI7CgoJCS8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4KCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdHdpdHRlciIsCgkJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIGNyZWF0ZSBhIHNlcXVlbmNlCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV90d2l0dGVyX3NlcSIpOwoJCSovCgkJCgkJLy8gcGVybWlzc2lvbnMKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTWFuYWdlIFR3aXR0ZXInLCdNYW5hZ2UgVHdpdHRlcicpOwoKCQkvLyBQcmVmZXJlbmNlcwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsb2dpbicsJycpOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYXNzd29yZCcsJycpOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aW1lb3V0JywnNjAwJyk7CgoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7CgkJCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBSZW1vdmFsCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCQoJCS8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV90d2l0dGVyIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJLy8gcmVtb3ZlIHRoZSBzZXF1ZW5jZQoJCSRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV90d2l0dGVyX3NlcSIgKTsKCQkqLwoJCQoJCS8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTWFuYWdlIFR3aXR0ZXInKTsKCgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMS4wIjoKCQkJICAgICBicmVhazsKCQkJY2FzZSAiMS4xIjoKCQkJICAgICBicmVhazsKCQl9CgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin.options.tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskb3B0aW9uc190aXRsZX08L2gzPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRsb2dpbl90aXRsZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRsb2dpbn08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwYXNzd29yZF90aXRsZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwYXNzd29yZH08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aW1lb3V0X3RpdGxlfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpbWVvdXR9PC9wPgo8L2Rpdj4KCgoKeyRzdWJtaXRfb3B0aW9uc317JGNhbmNlbH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin.twitter.tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0ic3RhdHVzX3VwZGF0ZSI+CjxoMz57JHN0YXR1c190aXRsZX08L2gzPgp7JHN0YXR1c30KPHNwYW4gY2xhc3M9ImZsb2F0OiByaWdodDsiPnskdXBkYXRlfTwvc3Bhbj4KPC9kaXY+Cgo8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNXB4OyI+CnskdGltZWxpbmVfc3RhdHVzfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD5UaGlzIGlzIGNvbnRlbnQgdGhhdCBpcyBzaG93biBpbiB0aGUgQWRtaW4gUGFuZWwsIGFib3ZlIHRoZSB0YWJiZWQgaW50ZXJmYWNlIGFyZWEuPC9wPgp7JGZvcm1fc3RhcnR9CnskdGFiX2hlYWRlcnN9Cgp7JHN0YXJ0X3R3aXR0ZXJfdGFifQp7JHR3aXR0ZXJfdGFifQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X3RlbXBsYXRlc190YWJ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZHRlbXBsYXRlaWNvbn0geyRhZGR0ZW1wbGF0ZWxpbmt9PC9wPgo8L2Rpdj4Ke2lmICR0ZW1wbGF0ZXN8Y291bnQgPiAwfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPjx0aGVhZD48dHI+PHRoPnskdGl0bGVfdGVtcGxhdGV9PC90aD48dGggY2xhc3M9InBhZ2VpY29uIj7CoDwvdGg+PHRoIGNsYXNzPSJwYWdlaWNvbiI+wqA8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+Cntmb3JlYWNoIGZyb209JHRlbXBsYXRlcyBpdGVtPWVudHJ5fQogICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+PHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+PHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD48L3RyPgp7L2ZvcmVhY2h9CiAgPC90Ym9keT48L3RhYmxlPgoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGR0ZW1wbGF0ZWljb259IHskYWRkdGVtcGxhdGVsaW5rfTwvcD4KPC9kaXY+CnsvaWZ9CnskZW5kX3RhYn0KCnskc3RhcnRfb3B0aW9uc190YWJ9Cnskb3B0aW9uc190YWJ9CnskZW5kX3RhYn0KCnskdGFiX2Zvb3RlcnN9CnskZm9ybV9lbmR9CjxwPlRoaXMgY29udGVudCBzaG93cyB1cCBhcyBhIGZvb3RlciBmb3IgYWxsIHRhYnMgaW4gdGhlIGFkbWluIHBhbmVsLjwvcD4K]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/managetemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV90ZW1wbGF0ZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGVtcGxhdGV9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNvZGVfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRleHRhcmVhX3RlbXBsYXRlfTwvcD4KPC9kaXY+CgoJeyRmb3JtX2RldGFpbHNfc3VibWl0fQoJeyRmb3JtX2RldGFpbHNfYXBwbHl9Cgl7JGZvcm1fZGV0YWlsc19yZXN0b3JlfQp7JGZvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/timeline.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ZvcmVhY2ggZnJvbT0kdGltZWxpbmUgaXRlbT10d2VldH0gIAogICAgPGRpdiBpZD0ic3RhdHVzX3skdHdlZXQtPmlkfSIgc3R5bGU9ImJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgZ3JheTsiPgogICAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OiAyMHB4OyAiPjxpbWcgc3JjPSJ7JHR3ZWV0LT5waWN0dXJlfSIgYWx0PSJ7JHR3ZWV0LT5hdXRob3JfbmFtZX0iIC8+PC9kaXY+CiAgICAgIDxwPjxzdHJvbmc+eyR0d2VldC0+YXV0aG9yX25hbWV9PC9zdHJvbmc+IAogICAgICB7JHR3ZWV0LT5nZXRUZXh0KCl9PC9wPgogICAgICA8cD57JHR3ZWV0LT5nZXRXaGVuKCl9IGZyb20geyR0d2VldC0+c291cmNlfTwvcD4KICAgICAgPGRpdiBzdHlsZT0iY2xlYXI6IHJpZ2h0Ij48L2Rpdj4gIAogICAgPC9kaXY+ICAKey9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/Twitter.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFR3aXR0ZXIgLSBUaGlzIG1vZHVsZSBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgVHdpdHRlciBmcm9tIENNU01TLiBCb3RoIHNlbmQgYW5kIHJlY2VpdmUgZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUuCiMgVmVyc2lvbjogMC4wLjEsIEplYW4tQ2hyaXN0b3BoZSBDdXZlbGllcgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMgVGhpcyBmaWxlIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBNb2R1bGVNYWtlciBtb2R1bGUsIHZlcnNpb24gMC4zLjEKIyBDb3B5cmlnaHQgKGMpIDIwMDkgYnkgU2FtdWVsIEdvbGRzdGVpbiAoc2pnQGNtc21hZGVzaW1wbGUub3JnKSAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEZvciBIZWxwIGJ1aWxkaW5nIG1vZHVsZXM6CiMgLSBSZWFkIHRoZSBEb2N1bWVudGF0aW9uIGFzIGl0IGJlY29tZXMgYXZhaWxhYmxlIGF0CiMgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnLwojIC0gQ2hlY2sgb3V0IHRoZSBTa2VsZXRvbiBNb2R1bGUgZm9yIGEgY29tbWVudGVkIGV4YW1wbGUKIyAtIExvb2sgYXQgb3RoZXIgbW9kdWxlcywgYW5kIGxlYXJuIGZyb20gdGhlIHNvdXJjZQojIC0gQ2hlY2sgb3V0IHRoZSBmb3J1bXMgYXQgaHR0cDovL2ZvcnVtcy5jbXNtYWRlc2ltcGxlLm9yZwojIC0gQ2hhdCB3aXRoIGRldmVsb3BlcnMgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KcmVxdWlyZV9vbmNlICdjbGFzc2VzL1R3ZWV0LmNsYXNzLnBocCc7CgpjbGFzcyBUd2l0dGVyIGV4dGVuZHMgQ01TTW9kdWxlCnsKCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICdUd2l0dGVyJzsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgR2V0RnJpZW5kbHlOYW1lKCkKICAgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIGxvY2FsaXplZCBuYW1lCiAgICAgb2YgdGhlIG1vZHVsZS4gVGhpcyBpcyB0aGUgbmFtZSB0aGF0J3Mgc2hvd24gaW4gdGhlCiAgICAgQWRtaW4gTWVudXMgYW5kIHNlY3Rpb24gcGFnZXMgKGlmIHRoZSBtb2R1bGUgaGFzIGFuIGFkbWluCiAgICAgY29tcG9uZW50KS4KICAgICAKICAgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7CiAgfQoKICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIEdldFZlcnNpb24oKQogICAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbnVtYmVyIG9yCiAgICAgc29tZXRoaW5nIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIGRlc2lnbmF0aW5nIGEgdmVyc2lvbi4KICAgICBUaGUgQ01TIHdpbGwgdXNlIHRoaXMgdG8gaWRlbnRpZnkgd2hldGhlciBvciBub3QKICAgICB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIG1vZHVsZSBpcyBjdXJyZW50LCBhbmQKICAgICB0aGUgbW9kdWxlIHdpbGwgdXNlIGl0IHRvIGZpZ3VyZSBvdXQgaG93IHRvIHVwZ3JhZGUKICAgICBpdHNlbGYgaWYgcmVxdWVzdGVkLiAgICAKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpCiAgewogICAgcmV0dXJuICcwLjAuNSc7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIEdldEhlbHAoKQogICAgIFRoaXMgcmV0dXJucyBIVE1MIGluZm9ybWF0aW9uIG9uIHRoZSBtb2R1bGUuCiAgICAgVHlwaWNhbGx5LCB5b3UnbGwgd2FudCB0byBpbmNsdWRlIGluZm9ybWF0aW9uIG9uIGhvdyB0bwogICAgIHVzZSB0aGUgbW9kdWxlLgogICAgIAogICAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEhlbHAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBHZXRBdXRob3IoKQogICAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCiAgICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEF1dGhvcigpCiAgewogICAgcmV0dXJuICdKZWFuLUNocmlzdG9waGUgQ3V2ZWxpZXInOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBHZXRBdXRob3JFbWFpbCgpCiAgICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKICAgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4gSXQgaGVscHMgdXNlcnMKICAgICBvZiB5b3VyIG1vZHVsZSBnZXQgaW4gdG91Y2ggd2l0aCB5b3UgdG8gc2VuZCBidWcgcmVwb3J0cywKICAgICBxdWVzdGlvbnMsIGNhc2VzIG9mIGJlZXIsIGFuZC9vciBsYXJnZSBzdW1zIG9mIG1vbmV5LgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCiAgewogICAgcmV0dXJuICdqY2NAbW9ycmlzLWNoYXBtYW4uY29tJzsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgR2V0Q2hhbmdlTG9nKCkKICAgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIG1vZHVsZQogICAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgQWJvdXQgbGluay4gSXQgaGVscHMgdXNlcnMKICAgICBmaWd1cmUgb3V0IHdoYXQncyBjaGFuZ2VkIGJldHdlZW4gcmVsZWFzZXMuCiAgICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBJc1BsdWdpbk1vZHVsZSgpCiAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgZmFsc2UsIGRlcGVuZGluZyB1cG9uCiAgICAgd2hldGhlciB1c2VycyBjYW4gaW5jbHVkZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvcgogICAgIHRlbXBsYXRlIHVzaW5nIGEgc21hcnR5IHRhZyBvZiB0aGUgZm9ybQogICAgIHtjbXNfbW9kdWxlIG1vZHVsZT0nVHdpdHRlcicgcGFyYW0xPXZhbCBwYXJhbTI9dmFsLi4ufQogICAgIAogICAgIElmIHlvdXIgbW9kdWxlIGRvZXMgbm90IGdldCBpbmNsdWRlZCBpbiBwYWdlcyBvcgogICAgIHRlbXBsYXRlcywgcmV0dXJuICJmYWxzZSIgaGVyZS4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBIYXNBZG1pbigpCiAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSwgZGVwZW5kaW5nIG9uCiAgICAgd2hldGhlciB5b3VyIG1vZHVsZSBhZGRzIGFueXRoaW5nIHRvIHRoZSBBZG1pbiBhcmVhIG9mCiAgICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSdsbCBiZSBjYWxsaW5nCiAgICAgdGhlIGFkbWluIHBhcnQgb2YgeW91ciBtb2R1bGUgdGhlICJBZG1pbiBQYW5lbCIgZm9yCiAgICAgd2FudCBvZiBhIGJldHRlciB0ZXJtLgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBIYXNBZG1pbigpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBHZXRBZG1pblNlY3Rpb24oKQogICAgIElmIHlvdXIgbW9kdWxlIGhhcyBhbiBBZG1pbiBQYW5lbCwgeW91IGNhbiBzcGVjaWZ5CiAgICAgd2hpY2ggQWRtaW4gU2VjdGlvbiAob3IgdG9wLWxldmVsIEFkbWluIE1lbnUpIGl0IHNob3dzCiAgICAgdXAgaW4uIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgdG8gc3BlY2lmeSB0aGF0CiAgICAgc2VjdGlvbi4gVmFsaWQgcmV0dXJuIHZhbHVlcyBhcmU6CgogICAgIG1haW4gICAgICAgIC0gdGhlIE1haW4gbWVudSB0YWIuCiAgICAgY29udGVudCAgICAgLSB0aGUgQ29udGVudCBtZW51CiAgICAgbGF5b3V0ICAgICAgLSB0aGUgTGF5b3V0IG1lbnUKICAgICB1c2Vyc2dyb3VwcyAtIHRoZSBVc2VycyBhbmQgR3JvdXBzIG1lbnUKICAgICBleHRlbnNpb25zICAtIHRoZSBFeHRlbnNpb25zIG1lbnUgKHRoaXMgaXMgdGhlIGRlZmF1bHQpCiAgICAgc2l0ZWFkbWluICAgLSB0aGUgU2l0ZSBBZG1pbiBtZW51CiAgICAgdmlld3NpdGUgICAgLSB0aGUgVmlldyBTaXRlIG1lbnUgdGFiCiAgICAgbG9nb3V0ICAgICAgLSB0aGUgTG9nb3V0IG1lbnUgdGFiCiAgICAgCiAgICAgTm90ZSB0aGF0IGlmIHlvdSBwbGFjZSB5b3VyIG1vZHVsZSBpbiB0aGUgbWFpbiwKICAgICB2aWV3c2l0ZSwgb3IgbG9nb3V0IHNlY3Rpb25zLCBpdCB3aWxsIHNob3cgdXAgaW4gdGhlCiAgICAgbWVudXMsIGJ1dCB3aWxsIG5vdCBiZSB2aXNpYmxlIGluIGFueSB0b3AtbGV2ZWwKICAgICBzZWN0aW9uIHBhZ2VzLgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQogIHsKICAgIHJldHVybiAnY29udGVudCc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQogICAgIGNhbiBoYXZlIGl0IHJldHVybiBhIGRlc2NyaXB0aW9uIHN0cmluZyB0aGF0IGdldHMgc2hvd24KICAgICBpbiB0aGUgQWRtaW4gU2VjdGlvbiBwYWdlIHRoYXQgY29udGFpbnMgdGhlIG1vZHVsZS4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBWaXNpYmxlVG9BZG1pblVzZXIoKQogICAgIElmIHlvdXIgbW9kdWxlIGRvZXMgaGF2ZSBhbiBBZG1pbiBQYW5lbCwgeW91CiAgICAgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3QgaXQncyBkaXNwbGF5ZWQgYnkgdGhlIGJvb2xlYW4KICAgICB0aGF0IGlzIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkCiAgICAgdG8gaGlkZSBtb2R1bGVzIGZyb20gYWRtaW5zIHdobyBsYWNrIHBlcm1pc3Npb24gdG8gdXNlCiAgICAgdGhlbS4KICAgICAKICAgICBUeXBpY2FsbHksIHlvdSdsbCB1c2Ugc29tZSBwZXJtaXNzaW9uIHRvIHNldCB0aGlzCiAgICAgKGUuZy4sICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1NvbWUgUGVybWlzc2lvbicpOyApCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCiAgewogICAgICAgIHJldHVybiB0cnVlOwogIH0KICAKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBDaGVja0FjY2VzcygpCiAgICAgVGhpcyB3cmFwcGVyIGZ1bmN0aW9uIHdpbGwgY2hlY2sgYWdhaW5zdCB0aGUgc3BlY2lmaWVkIHBlcm1pc3Npb24sCiAgICAgYW5kIGRpc3BsYXkgYW4gZXJyb3IgcGFnZSBpZiB0aGUgdXNlciBkb2Vzbid0IGhhdmUgYWRlcXVhdGUgcGVybWlzc2lvbnMuCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIENoZWNrQWNjZXNzKCRwZXJtID0gJ01hbmFnZSBUd2l0dGVyJykKICAgIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCRwZXJtKTsKICAgIH0KICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIERpc3BsYXlFcnJvclBhZ2UoKQogICAgIFRoaXMgaXMgYSBzaW1wbGUgZnVuY3Rpb24gZm9yIGdlbmVyYXRpbmcgZXJyb3IgcGFnZXMuCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKICAgIHsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtZXNzYWdlJywgJG1lc3NhZ2UpOwoKICAgICAgICAvLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKICAgICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwogICAgfQogIAoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBHZXREZXBlbmRlbmNpZXMoKQogICAgIFlvdXIgbW9kdWxlIG1heSBuZWVkIGFub3RoZXIgbW9kdWxlIHRvIGFscmVhZHkgYmUgaW5zdGFsbGVkCiAgICAgYmVmb3JlIHlvdSBjYW4gaW5zdGFsbCBpdC4KICAgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbGlzdCBvZiB0aG9zZSBkZXBlbmRlbmNpZXMgYW5kCiAgICAgbWluaW11bSB2ZXJzaW9uIG51bWJlcnMgdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KICAgICAKICAgICBJdCBzaG91bGQgcmV0dXJuIGFuIGhhc2gsIGVnLgogICAgIHJldHVybiBhcnJheSgnc29tZW1vZHVsZSc9PicxLjAnLCAnb3RoZXJtb2R1bGUnPT4nMS4xJyk7CiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIGFycmF5KCk7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIE1pbmltdW1DTVNWZXJzaW9uKCkKICAgICBZb3VyIG1vZHVsZSBtYXkgcmVxdWlyZSBmdW5jdGlvbnMgb3Igb2JqZWN0cyBmcm9tCiAgICAgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIENNUyBNYWRlIFNpbXBsZS4KICAgICBFdmVyIHNpbmNlIHZlcnNpb24gMC4xMSwgeW91IGNhbiBzcGVjaWZ5IHdoaWNoIG1pbmltdW0KICAgICBDTVMgTVMgdmVyc2lvbiBpcyByZXF1aXJlZCBmb3IgeW91ciBtb2R1bGUsIHdoaWNoIHdpbGwKICAgICBwcmV2ZW50IGl0IGZyb20gYmVpbmcgaW5zdGFsbGVkIGJ5IGEgdmVyc2lvbiBvZiBDTVMgdGhhdAogICAgIGNhbid0IHJ1biBpdC4KICAgICAKICAgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKICAgICBtaW5pbXVtIHZlcnNpb24gdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gIjEuNS4wIjsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIE1heGltdW1DTVNWZXJzaW9uKCkKICAgICBZb3UgbWF5IHdhbnQgdG8gcHJldmVudCBwZW9wbGUgZnJvbSB1c2luZyB5b3VyIG1vZHVsZSBpbgogICAgIGZ1dHVyZSB2ZXJzaW9ucyBvZiBDTVMgTWFkZSBTaW1wbGUsIGVzcGVjaWFsbHkgaWYgeW91CiAgICAgdGhpbmsgQVBJIGZlYXR1cmVzIHlvdSB1c2UgbWF5IGNoYW5nZSAtLSBhZnRlciBhbGwsIHlvdQogICAgIG5ldmVyIHJlYWxseSBrbm93IGhvdyB0aGUgQ01TIE1TIEFQSSBjb3VsZCBldm9sdmUuCiAgICAgCiAgICAgU28sIHRvIHByZXZlbnQgcGVvcGxlIGZyb20gZmxvb2RpbmcgeW91IHdpdGggYnVnIHJlcG9ydHMKICAgICB3aGVuIGEgbmV3IHZlcnNpb24gb2YgQ01TIE1TIGlzIHJlbGVhc2VkLCB5b3UgY2FuIHNpbXBseQogICAgIHJlc3RyaWN0IHRoZSB2ZXJzaW9uLiBUaGVuLCBvZiBjb3Vyc2UsIHRoZSBvbnVzIGlzIG9uIHlvdQogICAgIHRvIHJlbGVhc2UgYSBuZXcgdmVyc2lvbiBvZiB5b3VyIG1vZHVsZSB3aGVuIGEgbmV3IHZlcnNpb24KICAgICBvZiB0aGUgQ01TIGlzIHJlbGVhc2VkLi4uCiAgICAgCiAgICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlCiAgICAgbWF4aW11bSB2ZXJzaW9uIHRoYXQgdGhpcyBtb2R1bGUgc3VwcG9ydHMuCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAvKgogICBmdW5jdGlvbiBNYXhpbXVtQ01TVmVyc2lvbigpCiAgewogICAgcmV0dXJuICIiOwogIH0KKi8KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAgIEFmdGVyIGluc3RhbGxhdGlvbiwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwogICAgIGNvbW11bmljYXRlIHRvIHlvdXIgYWRtaW4uIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhCiAgICAgc3RyaW5nIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkLgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAgIEFmdGVyIHJlbW92aW5nIGEgbW9kdWxlLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCiAgICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKICAgICBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgoKCgogIC8qKgogICAqIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogICAqIFRoaXMgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGEgbWVzc2FnZSBhbG9uZyB3aXRoIGEgWWVzL05vIGRpYWxvZyBib3guIElmIHRoZSB1c2VyIHJlc3BvbmRzCiAgICogaW4gdGhlIGFmZmlybWF0aXZlIHRvIHlvdXIgbWVzc2FnZSwgdGhlIHVuaW5zdGFsbCB3aWxsIHByb2NlZWQuIElmIHRoZXkgcmVzcG9uZCBpbiB0aGUKICAgKiBuZWdhdGl2ZSwgdGhlIHVuaW5zdGFsbCB3aWxsIGJlIGNhbmNlbGVkLiBUaHVzLCB5b3VyIG1lc3NhZ2Ugc2hvdWxkIGJlIG9mIHRoZSBmb3JtCiAgICogIkFsbCBtb2R1bGUgZGF0YSB3aWxsIGJlIGRlbGV0ZWQuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/IgogICAqCiAgICogSWYgeW91IGRvbid0IHdhbnQgdGhlIGRpYWxvZywgaGF2ZSB0aGlzIG1ldGhvZCByZXR1cm4gYSBGQUxTRSwgd2hpY2ggd2lsbCBjYXVzZSB0aGUKICAgKiBtb2R1bGUgdG8gdW5pbnN0YWxsIGltbWVkaWF0ZWx5IGlmIHRoZSB1c2VyIGNsaWNrcyB0aGUgInVuaW5zdGFsbCIgbGluay4KICAgKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICB9CiAgCiAgCiAgLy8gVHdpdHRlciBmdW5jdGlvbnMKICAKICBmdW5jdGlvbiBnZXRUaW1lbGluZSgkdHlwZSA9ICdwdWJsaWMnLCAkcGFyYW1zID0gYXJyYXkoKSkKICB7CiAgICBzd2l0Y2ggKCR0eXBlKQogICAgewogICAgICBjYXNlICdmcmllbmRzJzoKICAgICAgICByZXR1cm4gJHRoaXMtPmdldEZyaWVuZHNUaW1lbGluZSgpOwogICAgICAKICAgICAgY2FzZSAncHVibGljJzoKICAgICAgICByZXR1cm4gJHRoaXMtPmdldFB1YmxpY1RpbWVsaW5lKCk7CiAgICAgIAogICAgICBjYXNlICd1c2VyJzoKICAgICAgICByZXR1cm4gJHRoaXMtPmdldFVzZXJUaW1lbGluZSgkcGFyYW1zKTsKICAgICAgCiAgICB9CiAgfQogIAogIGZ1bmN0aW9uIGdldEZyaWVuZHNUaW1lbGluZSgpCiAgewogICAgLy8gY3VybCAtdSB1c2VyOnBhc3N3b3JkIGh0dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy9mcmllbmRzX3RpbWVsaW5lLnhtbAogICAgCiAgICAkdXJsID0gJ2h0dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy9mcmllbmRzX3RpbWVsaW5lLnhtbCc7CiAgICAKICAgICRjb250ZW50ID0gVHdlZXQ6OmdldEN1cmwoJHVybCwgYXJyYXkoJ2xvZ2luJyA9PiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW4nKSAsICdwYXNzd29yZCcgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkJykpKTsKICAgICAgICAKICAgICR4bWwgPSBzaW1wbGV4bWxfbG9hZF9zdHJpbmcoJGNvbnRlbnQpOwogICAgCiAgICByZXR1cm4gJHhtbDsKICB9CiAgCiAgZnVuY3Rpb24gZ2V0UHVibGljVGltZWxpbmUoKQogIHsKICAgIC8vIGN1cmwgLXUgdXNlcjpwYXNzd29yZCBodHRwOi8vdHdpdHRlci5jb20vc3RhdHVzZXMvZnJpZW5kc190aW1lbGluZS54bWwKICAgIAogICAgJHVybCA9ICdodHRwOi8vdHdpdHRlci5jb20vc3RhdHVzZXMvcHVibGljX3RpbWVsaW5lLnhtbCc7CiAgICAKICAgICRjb250ZW50ID0gVHdlZXQ6OmdldEN1cmwoJHVybCwgYXJyYXkoJ2xvZ2luJyA9PiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW4nKSAsICdwYXNzd29yZCcgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkJykpKTsKICAgICAgICAKICAgICR4bWwgPSBzaW1wbGV4bWxfbG9hZF9zdHJpbmcoJGNvbnRlbnQpOwogICAgCiAgICByZXR1cm4gJHhtbDsKICB9CiAgCiAgZnVuY3Rpb24gZ2V0VXNlclRpbWVsaW5lKCRwYXJhbXMgPSBhcnJheSgpKQogIHsKICAgIC8vIGN1cmwgLXUgdXNlcjpwYXNzd29yZCBodHRwOi8vdHdpdHRlci5jb20vc3RhdHVzZXMvZnJpZW5kc190aW1lbGluZS54bWwKICAgIAogICAgJHVybCA9ICdodHRwOi8vdHdpdHRlci5jb20vc3RhdHVzZXMvdXNlcl90aW1lbGluZS54bWwnOwogICAgCiAgICBpZiAoaXNzZXQoJHBhcmFtc1sndXNlcl9pZCddKSkKICAgIHsKICAgICAgJGNvbnRlbnQgPSBUd2VldDo6Z2V0Q3VybCgkdXJsLCBudWxsLCBhcnJheSgndXNlcl9pZCcgPT4gJHBhcmFtc1sndXNlcl9pZCddKSk7CiAgICB9CiAgICBlbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ3NjcmVlbl9uYW1lJ10pKQogICAgewogICAgICAkY29udGVudCA9IFR3ZWV0OjpnZXRDdXJsKCR1cmwsIG51bGwsIGFycmF5KCdzY3JlZW5fbmFtZScgPT4gJHBhcmFtc1snc2NyZWVuX25hbWUnXSkpOwogICAgfQogICAgZWxzZWlmKGlzc2V0KCRwYXJhbXNbJ25vX2F1dGgnXSkgJiYgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbicpICE9ICcnKQogICAgewogICAgICAgICRjb250ZW50ID0gVHdlZXQ6OmdldEN1cmwoJHVybCwgbnVsbCwgYXJyYXkoJ3NjcmVlbl9uYW1lJyA9PiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW4nKSkpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAkY29udGVudCA9IFR3ZWV0OjpnZXRDdXJsKCR1cmwsIGFycmF5KCdsb2dpbicgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luJykgLCAncGFzc3dvcmQnID0+ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZCcpKSk7CiAgICB9CiAgICAgICAgCiAgICAkeG1sID0gc2ltcGxleG1sX2xvYWRfc3RyaW5nKCRjb250ZW50KTsKICAgIAogICAgcmV0dXJuICR4bWw7CiAgfQoKICAvKioKICAgKiBUaGlzIGZ1bmN0aW9uIHNlbmQgYSBtZXNzYWdlIHRvIHR3aXR0ZXIgd2l0aCBUd2l0dGVyIGFjY291bnQKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgVGhlIDE0MCBjaGFycyBtZXNzYWdlIHRvIGJlIHNlbnQKICAgKiBAcGFyYW0gYm9vbGVhbiAkc2hvcnRlbiBUZWxsIGlmIHRoZSB1cmxzIGhhcyB0byBiZSBzaG9ydGVuZWQgKHRydWUgYnkgZGVmYXVsdCkKICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgKi8KICAKICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlU3RhdHVzKCRtZXNzYWdlLCAkc2hvcnRlbiA9IHRydWUpCiAgewogICAgIGlmICgkc2hvcnRlbikKICAgICB7CiAgICAgICAgJG1lc3NhZ2UgPSBUd2VldDo6c2hvcnRlblVybHMoJG1lc3NhZ2UpOwogICAgIH0KICAgIGlmICgkbWVzc2FnZSAhPSAnJyAmJiBzdHJsZW4oJG1lc3NhZ2UpIDwgMTQwKQogICAgewogICAgICAkdXJsID0gJ2h0dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy91cGRhdGUueG1sJzsKICAgICAgJGNvbnRlbnQgPSBUd2VldDo6Z2V0Q3VybCgkdXJsLCAKICAgICAgYXJyYXkoJ2xvZ2luJyA9PiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW4nKSAsICdwYXNzd29yZCcgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkJykpLAogICAgICBhcnJheSgnc3RhdHVzJyA9PiAkbWVzc2FnZSkpOwogICAgfQogICAgZWxzZSAKICAgIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogIH0gCiAgCiAgcHVibGljIGZ1bmN0aW9uIHNob3J0ZW5VcmxzKCRtZXNzYWdlKQogIHsKICAgICByZXR1cm4gVHdlZXQ6OnNob3J0ZW5VcmxzKCRtZXNzYWdlKTsKICB9CiAgCiAgZnVuY3Rpb24gZ2V0Q3VybCgkdXJsLCAkd2l0aF9jcmVkZW50aWFsID0gZmFsc2UsICRkYXRhID0gYXJyYXkoKSkKICB7CiAgICBpZiAoJHdpdGhfY3JlZGVudGlhbCkKICAgIHsgICAKICAgICAgcmV0dXJuIFR3ZWV0OjpnZXRDdXJsKCR1cmwsIGFycmF5KCdsb2dpbicgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luJykgLCAncGFzc3dvcmQnID0+ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZCcpKSwgJGRhdGEpOwogICAgfQogICAgZWxzZQogICAgewogICAgICByZXR1cm4gVHdlZXQ6OmdldEN1cmwoJHVybCwgbnVsbCwgJGRhdGEpOwogICAgfQogIH0KfQoKPz4K]]></data>
	</file>
</module>
