<?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>GCharts</name>
	<version>1.3</version>
  <mincmsversion>1.11</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93cyBmb3IgdGhlIGFkZGl0aW9uIG9mIEdvb2dsZSBDaGFydHMgdG8geW91ciB3ZWJzaXRlLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPlNpbXBseSBwbGFjZSB0aGUgbW9kdWxlIGNhbGwgYmVmb3JlIHlvdXIgY2xvc2luZyBib2R5IHRhZyB3aXRoIHRoZSBJRCBvZiB0aGUgY2hhcnQgeW91IHdhbnQgdG8gZGlzcGxheSA8Y29kZT57R0NoYXJ0cyBnY2hhcnRzX2lkPScxJ308L2NvZGU+LCBkYXRhIGZpZWxkIGFjY2VwdHMgc21hcnR5IHZhcmlhYmxlcy48L3A+CjxwPkZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhcyB0byB3aGF0IHZhbHVlcyBlYWNoIHBhcmFtZXRlciB0YWtlcyBsb29rIGF0IHRoZSBHb29nbGUgQ2hhcnRzIGRvY3VtZW50YXRpb24gPGEgaHJlZj0iaHR0cHM6Ly9nb29nbGUtZGV2ZWxvcGVycy5hcHBzcG90LmNvbS9jaGFydC8iPmh0dHBzOi8vZ29vZ2xlLWRldmVsb3BlcnMuYXBwc3BvdC5jb20vY2hhcnQvPC9hPjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIE1vZHVsZSBGb3JnZQo8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2djaGFydHMvIj5HQ2hhcnRzIFBhZ2U8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIG9saXZlcnNlZGRvbiwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTMsIE9saXZlciBTZWRkb24gPGEgaHJlZj0ibWFpbHRvOm9saXZlckB0aHJlZWZvbGQuY28udWsiPiZsdDtvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZ2NoYXJ0c19pZD0iMSIgLSBJRCBvZiB0aGUgY2hhcnQgeW91IHdhbnQgdG8gZGlzcGxheS48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBvbGl2ZXJzZWRkb24gJmx0O29saXZlckB0aHJlZWZvbGQuY28udWsmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4zPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgo8bGk+VmVyc2lvbiAxLjAgOCBKdWx5IDIwMTMuIEluaXRpYWwgUmVsZWFzZS48L2xpPgo8bGk+VmVyc2lvbiAxLjEgMTUgSnVseSAyMDEzLiBNdWx0aXBsZSBidWcgZml4ZXMuPC9saT4KPGxpPlZlcnNpb24gMS4yIDE0IE5vdmVtYmVyIDIwMTMuIEFkZGVkIGNvbHVtbiBjaGFydHMgb3B0aW9uIHBsdXMgbWFueSBidWcgZml4ZXMuPC9saT4KPGxpPlZlcnNpb24gMS4zIDUgRGVjZW1iZXIgMjAxMy4gQWRkZWQgSGlzdG9ncmFtIGFuZCBUaW1lbGluZSBjaGFydCBvcHRpb25zIHBsdXMgbWlub3IgYnVnIGZpeGVzIGFuZCBjb2RlIHRpZHlpbmcgdXAuPC9saT4KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[This module add Google Charts to your website.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addchart.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgkkZGV0YWlscGFnZSA9ICcnOwoKCWlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEdDaGFydHMnKSkKCXsKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgR0NoYXJ0cycpKSk7CgkJcmV0dXJuOwoJfQoKCWlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCgl7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7Cgl9CgovLyBHaXZlIHRoZSBmb3JtIGlkIHRvIHNtYXJ0eQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1pZCcsJGlkKTsKCgkkZGF0YSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2RhdGEnXSkpCgl7CgkJJGRhdGEgPSAkcGFyYW1zWydkYXRhJ107Cgl9CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQXBwcm92ZSBHQ2hhcnRzJykgKQogIHsKICAgICRzdGF0dXMgPSAncHVibGlzaGVkJzsKICB9CglpZiAoaXNzZXQoJHBhcmFtc1snc3RhdHVzJ10pKQoJewoJCSRzdGF0dXMgPSAkcGFyYW1zWydzdGF0dXMnXTsKCX0KCgkkdXNlZGNhdGVnb3J5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfY2F0ZWdvcnknLCAnJyk7CglpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkpCgl7CgkJJHVzZWRjYXRlZ29yeSA9ICRwYXJhbXNbJ2NhdGVnb3J5J107Cgl9CgoJJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKCgkkbmFtZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkpCgl7CgkgICRuYW1lID0gJHBhcmFtc1snbmFtZSddOwoJfQoKCSRlbGVtZW50ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZWxlbWVudCddKSkKCXsKCSAgJGVsZW1lbnQgPSAkcGFyYW1zWydlbGVtZW50J107Cgl9CgoJJGF4aXNUaXRsZXNQb3NpdGlvbiA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2F4aXNUaXRsZXNQb3NpdGlvbiddKSkKCXsKCSAgJGF4aXNUaXRsZXNQb3NpdGlvbiA9ICRwYXJhbXNbJ2F4aXNUaXRsZXNQb3NpdGlvbiddOwoJfQoKCSRiYWNrZ3JvdW5kQ29sb3IgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydiYWNrZ3JvdW5kQ29sb3InXSkpCgl7CgkgICRiYWNrZ3JvdW5kQ29sb3IgPSAkcGFyYW1zWydiYWNrZ3JvdW5kQ29sb3InXTsKCX0KCgkkY2hhcnRBcmVhID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snY2hhcnRBcmVhJ10pKQoJewoJICAkY2hhcnRBcmVhID0gJHBhcmFtc1snY2hhcnRBcmVhJ107Cgl9CgoJJGNvbG9ycyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbG9ycyddKSkKCXsKCSAgJGNvbG9ycyA9ICRwYXJhbXNbJ2NvbG9ycyddOwoJfQoKCSRjdXJ2ZVR5cGUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydjdXJ2ZVR5cGUnXSkpCgl7CgkgICRjdXJ2ZVR5cGUgPSAkcGFyYW1zWydjdXJ2ZVR5cGUnXTsKCX0KCgkkZW5hYmxlSW50ZXJhY3Rpdml0eSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2VuYWJsZUludGVyYWN0aXZpdHknXSkpCgl7CgkgICRlbmFibGVJbnRlcmFjdGl2aXR5ID0gJHBhcmFtc1snZW5hYmxlSW50ZXJhY3Rpdml0eSddOwoJfQoKCSRmb2N1c1RhcmdldCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZvY3VzVGFyZ2V0J10pKQoJewoJICAkZm9jdXNUYXJnZXQgPSAkcGFyYW1zWydmb2N1c1RhcmdldCddOwoJfQoKCSRmb250U2l6ZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZvbnRTaXplJ10pKQoJewoJICAkZm9udFNpemUgPSAkcGFyYW1zWydmb250U2l6ZSddOwoJfQoKCSRmb250TmFtZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZvbnROYW1lJ10pKQoJewoJICAkZm9udE5hbWUgPSAkcGFyYW1zWydmb250TmFtZSddOwoJfQoKCSRoQXhlcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2hBeGVzJ10pKQoJewoJICAkaEF4ZXMgPSAkcGFyYW1zWydoQXhlcyddOwoJfQoKCSRoQXhpcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2hBeGlzJ10pKQoJewoJICAkaEF4aXMgPSAkcGFyYW1zWydoQXhpcyddOwoJfQoKCSRoZWlnaHQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydoZWlnaHQnXSkpCgl7CgkgICRoZWlnaHQgPSAkcGFyYW1zWydoZWlnaHQnXTsKCX0KCgkkaXNIdG1sID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaXNIdG1sJ10pKQoJewoJICAkaXNIdG1sID0gJHBhcmFtc1snaXNIdG1sJ107Cgl9CgoJJGlzU3RhY2tlZCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2lzU3RhY2tlZCddKSkKCXsKCSAgJGlzU3RhY2tlZCA9ICRwYXJhbXNbJ2lzU3RhY2tlZCddOwoJfQoKCSRpczNEID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaXMzRCddKSkKCXsKCSAgJGlzM0QgPSAkcGFyYW1zWydpczNEJ107Cgl9CgoJJGludGVycG9sYXRlZE51bGxzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaW50ZXJwb2xhdGVkTnVsbHMnXSkpCgl7CgkgICRpbnRlcnBvbGF0ZWROdWxscyA9ICRwYXJhbXNbJ2ludGVycG9sYXRlZE51bGxzJ107Cgl9CgoJJGxlZ2VuZCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2xlZ2VuZCddKSkKCXsKCSAgJGxlZ2VuZCA9ICRwYXJhbXNbJ2xlZ2VuZCddOwoJfQoKCSRsaW5lV2lkdGggPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydsaW5lV2lkdGgnXSkpCgl7CgkgICRsaW5lV2lkdGggPSAkcGFyYW1zWydsaW5lV2lkdGgnXTsKCX0KCgkkcG9pbnRTaXplID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncG9pbnRTaXplJ10pKQoJewoJICAkcG9pbnRTaXplID0gJHBhcmFtc1sncG9pbnRTaXplJ107Cgl9CgoJJHBpZVJlc2lkdWVTbGljZUNvbG9yID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncGllUmVzaWR1ZVNsaWNlQ29sb3InXSkpCgl7CgkgICRwaWVSZXNpZHVlU2xpY2VDb2xvciA9ICRwYXJhbXNbJ3BpZVJlc2lkdWVTbGljZUNvbG9yJ107Cgl9CgoJJHBpZVJlc2lkdWVTbGljZUxhYmVsID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncGllUmVzaWR1ZVNsaWNlTGFiZWwnXSkpCgl7CgkgICRwaWVSZXNpZHVlU2xpY2VMYWJlbCA9ICRwYXJhbXNbJ3BpZVJlc2lkdWVTbGljZUxhYmVsJ107Cgl9CgoJJHBpZVNsaWNlQm9yZGVyQ29sb3IgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVTbGljZUJvcmRlckNvbG9yJ10pKQoJewoJICAkcGllU2xpY2VCb3JkZXJDb2xvciA9ICRwYXJhbXNbJ3BpZVNsaWNlQm9yZGVyQ29sb3InXTsKCX0KCgkkcGllU2xpY2VUZXh0ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncGllU2xpY2VUZXh0J10pKQoJewoJICAkcGllU2xpY2VUZXh0ID0gJHBhcmFtc1sncGllU2xpY2VUZXh0J107Cgl9CgoJJHBpZVNsaWNlVGV4dFN0eWxlID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncGllU2xpY2VUZXh0U3R5bGUnXSkpCgl7CgkgICRwaWVTbGljZVRleHRTdHlsZSA9ICRwYXJhbXNbJ3BpZVNsaWNlVGV4dFN0eWxlJ107Cgl9CgoJJHJldmVyc2VDYXRlZ29yaWVzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncmV2ZXJzZUNhdGVnb3JpZXMnXSkpCgl7CgkgICRyZXZlcnNlQ2F0ZWdvcmllcyA9ICRwYXJhbXNbJ3JldmVyc2VDYXRlZ29yaWVzJ107Cgl9CgoJJHNsaWNlcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3NsaWNlcyddKSkKCXsKCSAgJHNsaWNlcyA9ICRwYXJhbXNbJ3NsaWNlcyddOwoJfQoKCSRzZXJpZXMgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydzZXJpZXMnXSkpCgl7CgkgICRzZXJpZXMgPSAkcGFyYW1zWydzZXJpZXMnXTsKCX0KCgkkc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJ10pKQoJewoJICAkc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkID0gJHBhcmFtc1snc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJ107Cgl9CgoJJHRoZW1lID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndGhlbWUnXSkpCgl7CgkgICR0aGVtZSA9ICRwYXJhbXNbJ3RoZW1lJ107Cgl9CgoJJHRpdGxlID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndGl0bGUnXSkpCgl7CgkgICR0aXRsZSA9ICRwYXJhbXNbJ3RpdGxlJ107Cgl9CgoJJHRpdGxlUG9zaXRpb24gPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aXRsZVBvc2l0aW9uJ10pKQoJewoJICAkdGl0bGVQb3NpdGlvbiA9ICRwYXJhbXNbJ3RpdGxlUG9zaXRpb24nXTsKCX0KCgkkdGl0bGVUZXh0U3R5bGUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aXRsZVRleHRTdHlsZSddKSkKCXsKCSAgJHRpdGxlVGV4dFN0eWxlID0gJHBhcmFtc1sndGl0bGVUZXh0U3R5bGUnXTsKCX0KCgkkdG9vbHRpcCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Rvb2x0aXAnXSkpCgl7CgkgICR0b29sdGlwID0gJHBhcmFtc1sndG9vbHRpcCddOwoJfQoKCSR2QXhlcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZBeGVzJ10pKQoJewoJICAkdkF4ZXMgPSAkcGFyYW1zWyd2QXhlcyddOwoJfQoKCSR2QXhpcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZBeGlzJ10pKQoJewoJICAkdkF4aXMgPSAkcGFyYW1zWyd2QXhpcyddOwoJfQoKCSR3aWR0aCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3dpZHRoJ10pKQoJewoJICAkd2lkdGggPSAkcGFyYW1zWyd3aWR0aCddOwoJfQoKCSRhZ2dyZWdhdGlvblRhcmdldCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2FnZ3JlZ2F0aW9uVGFyZ2V0J10pKQoJewoJICAkYWdncmVnYXRpb25UYXJnZXQgPSAkcGFyYW1zWydhZ2dyZWdhdGlvblRhcmdldCddOwoJfQoKCSRncm91cFdpZHRoID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZ3JvdXBXaWR0aCddKSkKCXsKCSAgJGdyb3VwV2lkdGggPSAkcGFyYW1zWydncm91cFdpZHRoJ107Cgl9CgoJJGRhdGFPcGFjaXR5ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZGF0YU9wYWNpdHknXSkpCgl7CgkgICRkYXRhT3BhY2l0eSA9ICRwYXJhbXNbJ2RhdGFPcGFjaXR5J107Cgl9CgoJJGF2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzJ10pKQoJewoJICAkYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcyA9ICRwYXJhbXNbJ2F2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMnXTsKCX0KCgkkdGltZWxpbmUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aW1lbGluZSddKSkKCXsKCSAgJHRpbWVsaW5lID0gJHBhcmFtc1sndGltZWxpbmUnXTsKCX0KCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgICRlcnJvciA9IEZBTFNFOwogICAgaWYoIGVtcHR5KCRuYW1lKSApCiAgICAgIHsKCSRlcnJvciA9ICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub25hbWVnaXZlbicpKTsKICAgICAgfQogICAgZWxzZSBpZiggZW1wdHkoJGRhdGEpICkKICAgICAgewoJJGVycm9yID0gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vZGF0YWdpdmVuJykpOwogICAgICB9CgogICAgLy8KICAgIC8vIGRhdGFiYXNlIHdvcmsKICAgIC8vCiAgICBpZiggJGVycm9yICE9PSBGQUxTRSApCiAgICAgIHsKCWVjaG8gJGVycm9yOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRjaGFydGlkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX3NlcSIpOwoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0cyAoZ2NoYXJ0c19pZCwgZ2NoYXJ0c19jYXRlZ29yeV9pZCwgZ2NoYXJ0c19lbGVtZW50X2lkLCBnY2hhcnRzX25hbWUsIGdjaGFydHNfZGF0YSwgYXhpc1RpdGxlc1Bvc2l0aW9uLCBiYWNrZ3JvdW5kQ29sb3IsIGN1cnZlVHlwZSwgY2hhcnRBcmVhLCBjb2xvcnMsIGVuYWJsZUludGVyYWN0aXZpdHksIGZvY3VzVGFyZ2V0LCBmb250U2l6ZSwgZm9udE5hbWUsIGhBeGVzLCBoQXhpcywgaGVpZ2h0LCBpbnRlcnBvbGF0ZWROdWxscywgaXNIdG1sLCBpc1N0YWNrZWQsIGlzM0QsIGxlZ2VuZCwgbGluZVdpZHRoLCBzbGljZXMsIHBpZVNsaWNlQm9yZGVyQ29sb3IsIHBpZVNsaWNlVGV4dCwgcGllU2xpY2VUZXh0U3R5bGUsIHBvaW50U2l6ZSwgcmV2ZXJzZUNhdGVnb3JpZXMsIHNlcmllcywgc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkLCBwaWVSZXNpZHVlU2xpY2VDb2xvciwgcGllUmVzaWR1ZVNsaWNlTGFiZWwsIHRoZW1lLCB0aXRsZSwgdGl0bGVQb3NpdGlvbiwgdGl0bGVUZXh0U3R5bGUsIHRvb2x0aXAsIHZBeGVzLCB2QXhpcywgd2lkdGgsIHN0YXR1cywgYWdncmVnYXRpb25UYXJnZXQsIGdyb3VwV2lkdGgsIGRhdGFPcGFjaXR5LCBhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzLCB0aW1lbGluZSkgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8pJzsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2hhcnRpZCwgJHVzZWRjYXRlZ29yeSwgJGVsZW1lbnQsICRuYW1lLCAkZGF0YSwgJGF4aXNUaXRsZXNQb3NpdGlvbiwgJGJhY2tncm91bmRDb2xvciwgJGN1cnZlVHlwZSwgJGNoYXJ0QXJlYSwgJGNvbG9ycywgJGVuYWJsZUludGVyYWN0aXZpdHksICRmb2N1c1RhcmdldCwgJGZvbnRTaXplLCAkZm9udE5hbWUsICRoQXhlcywgJGhBeGlzLCAkaGVpZ2h0LCAkaW50ZXJwb2xhdGVkTnVsbHMsICRpc1N0YWNrZWQsICRpc0h0bWwsICRpczNELCAkbGVnZW5kLCAkbGluZVdpZHRoLCAkc2xpY2VzLCAkcGllU2xpY2VCb3JkZXJDb2xvciwgJHBpZVNsaWNlVGV4dCwgJHBpZVNsaWNlVGV4dFN0eWxlLCAkcG9pbnRTaXplLCAkcmV2ZXJzZUNhdGVnb3JpZXMsICRzZXJpZXMsICRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQsICRwaWVSZXNpZHVlU2xpY2VDb2xvciwgJHBpZVJlc2lkdWVTbGljZUxhYmVsLCAkdGhlbWUsICR0aXRsZSwgJHRpdGxlUG9zaXRpb24sICR0aXRsZVRleHRTdHlsZSwgJHRvb2x0aXAsICR2QXhlcywgJHZBeGlzLCAkd2lkdGgsICRzdGF0dXMsICRhZ2dyZWdhdGlvblRhcmdldCwgJGdyb3VwV2lkdGgsICRkYXRhT3BhY2l0eSwgJGF2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMsICR0aW1lbGluZSkpOwogICAgCglpZiggISRkYnIgKQoJICB7CgkgICAgZWNobyAiREVCVUc6IFNRTCA9ICIuJGRiLT5zcWwuIjxici8+IjsKCSAgICBkaWUoJGRiLT5FcnJvck1zZygpKTsKCSAgfQoKCWlmKCAhJGVycm9yICYmICRzdGF0dXMgPT0gJ3B1Ymxpc2hlZCcgKQoJICB7CgkgICAgLy9VcGRhdGUgc2VhcmNoIGluZGV4CgkgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKCSAgICBpZiAoaXNfb2JqZWN0KCRtb2R1bGUpICkKCSAgICAgIHsKCQkkdGV4dCA9ICcnOwoJICAgIAoJCSR0ZXh0ID0gJGRhdGEuJyAnLiRuYW1lOwoJCSRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRjaGFydGlkLCAnY2hhcnQnLCAkdGV4dCk7CgkgICAgICB9CgkgIH0KCQoJaWYoICEkZXJyb3IgKQoJICB7CgkgICAgQCR0aGlzLT5TZW5kRXZlbnQoJ0NoYXJ0QWRkZWQnLCBhcnJheSgnZ2NoYXJ0c19pZCcgPT4gJGNoYXJ0aWQsICdjYXRlZ29yeV9pZCcgPT4gJHVzZWRjYXRlZ29yeSwgJ2djaGFydHNfbmFtZScgPT4gJG5hbWUsICdnY2hhcnRzX2RhdGEnID0+ICRkYXRhLCAnc3RhdHVzJyA9PiAkc3RhdHVzKSk7CgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJYXVkaXQoJGNoYXJ0aWQsICdHQ2hhcnRzOiAnLiRjaGFydGlkLCAnQ2hhcnQgYWRkZWQnKTsKCSAgICAkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdjaGFydGFkZGVkJywgJ2FjdGl2ZV90YWInID0+ICdjaGFydHMnKTsKCSAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCSAgfSAvLyBpZiAhJGVycm9yCiAgICAgIH0gLy8gb3V0ZXIgaWYgISRlcnJvcgogIH0gLy8gc3VibWl0CgoKLy8KLy8gYnVpbGQgdGhlIGZvcm0KLy8gICAgCiRzdGF0dXNkcm9wZG93biA9IGFycmF5KCk7CiRzdGF0dXNkcm9wZG93blskdGhpcy0+TGFuZygnZHJhZnQnKV0gPSAnZHJhZnQnOwokc3RhdHVzZHJvcGRvd25bJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpXSA9ICdwdWJsaXNoZWQnOwogICAgCiAgICAkY2F0ZWdvcnlsaXN0ID0gYXJyYXkoKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIAogICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICB7CgkJJGNhdGVnb3J5bGlzdFskcm93WydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXV0gPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ107Cgl9Cgokb25jaGFuZ2V0ZXh0PSdvbmNoYW5nZT0iZG9jdW1lbnQnLiRpZC4nbW9kdWxlZm9ybV8xLnN1Ym1pdCgpIiBpZD0iY2hhcnRDYXRlZ29yeSInOwoJI0Rpc3BsYXkgdGVtcGxhdGUKCSRzbWFydHktPmFzc2lnbignY3VycmNhdCcsICcxJyk7Cgkkc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZGNoYXJ0JywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKCSRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVsZW1lbnQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2VsZW1lbnQnLCAkZWxlbWVudCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGRhdGEnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwgJGRhdGEsICdkYXRhJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGF4aXNUaXRsZXNQb3NpdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYXhpc1RpdGxlc1Bvc2l0aW9uJywgJGF4aXNUaXRsZXNQb3NpdGlvbiwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGJhY2tncm91bmRDb2xvcicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYmFja2dyb3VuZENvbG9yJywgJGJhY2tncm91bmRDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNoYXJ0QXJlYScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY2hhcnRBcmVhJywgJGNoYXJ0QXJlYSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNvbG9ycycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY29sb3JzJywgJGNvbG9ycywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGN1cnZlVHlwZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3VydmVUeXBlJywgJGN1cnZlVHlwZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVuYWJsZUludGVyYWN0aXZpdHknLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2VuYWJsZUludGVyYWN0aXZpdHknLCAkZW5hYmxlSW50ZXJhY3Rpdml0eSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvY3VzVGFyZ2V0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb2N1c1RhcmdldCcsICRmb2N1c1RhcmdldCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvbnRTaXplJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb250U2l6ZScsICRmb250U2l6ZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvbnROYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb250TmFtZScsICRmb250TmFtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhBeGVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdoQXhlcycsICRoQXhlcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhBeGlzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdoQXhpcycsICRoQXhpcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhlaWdodCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaGVpZ2h0JywgJGhlaWdodCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGludGVycG9sYXRlZE51bGxzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpbnRlcnBvbGF0ZWROdWxscycsICRpbnRlcnBvbGF0ZWROdWxscywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzSHRtbCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXNIdG1sJywgJGlzSHRtbCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzU3RhY2tlZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXNTdGFja2VkJywgJGlzU3RhY2tlZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzM0QnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lzM0QnLCAkaXMzRCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxlZ2VuZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbGVnZW5kJywgJGxlZ2VuZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxpbmVXaWR0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbGluZVdpZHRoJywgJGxpbmVXaWR0aCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNsaWNlcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2xpY2VzJywgJHNsaWNlcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlQm9yZGVyQ29sb3InLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3BpZVNsaWNlQm9yZGVyQ29sb3InLCAkcGllU2xpY2VCb3JkZXJDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlVGV4dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncGllU2xpY2VUZXh0JywgJHBpZVNsaWNlVGV4dCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlVGV4dFN0eWxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVTbGljZVRleHRTdHlsZScsICRwaWVTbGljZVRleHRTdHlsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBvaW50U2l6ZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncG9pbnRTaXplJywgJHBvaW50U2l6ZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHJldmVyc2VDYXRlZ29yaWVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdyZXZlcnNlQ2F0ZWdvcmllcycsICRyZXZlcnNlQ2F0ZWdvcmllcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNlcmllcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2VyaWVzJywgJHNlcmllcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJywgJHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVJlc2lkdWVTbGljZUNvbG9yJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVSZXNpZHVlU2xpY2VDb2xvcicsICRwaWVSZXNpZHVlU2xpY2VDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVJlc2lkdWVTbGljZUxhYmVsJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVSZXNpZHVlU2xpY2VMYWJlbCcsICRwaWVSZXNpZHVlU2xpY2VMYWJlbCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRoZW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aGVtZScsICR0aGVtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZScsICR0aXRsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlUG9zaXRpb24nLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlUG9zaXRpb24nLCAkdGl0bGVQb3NpdGlvbiwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlVGV4dFN0eWxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZVRleHRTdHlsZScsICR0aXRsZVRleHRTdHlsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRvb2x0aXAnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3Rvb2x0aXAnLCAkdG9vbHRpcCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHZBeGVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0b29sdGlwJywgJHZBeGVzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dkF4aXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ZBeGlzJywgJHZBeGlzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0d2lkdGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3dpZHRoJywgJHdpZHRoLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0YWdncmVnYXRpb25UYXJnZXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2FnZ3JlZ2F0aW9uVGFyZ2V0JywgJGFnZ3JlZ2F0aW9uVGFyZ2V0LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Z3JvdXBXaWR0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZ3JvdXBXaWR0aCcsICRncm91cFdpZHRoLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0ZGF0YU9wYWNpdHknLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2RhdGFPcGFjaXR5JywgJGRhdGFPcGFjaXR5LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0YXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcycsICRhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dGltZWxpbmUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpbWVsaW5lJywgJHRpbWVsaW5lLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignYWN0aW9uaWQnLCRpZCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBcHByb3ZlIEdDaGFydHMnKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXN0ZXh0JywgbGFuZygnc3RhdHVzJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdzdGF0dXMnLCAkc3RhdHVzZHJvcGRvd24sIC0xLCAkc3RhdHVzKSk7CiAgfQogZWxzZQogICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1cycsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnc3RhdHVzJywkc3RhdHVzKSk7CiAgIH0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNhdGVnb3J5JywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnY2F0ZWdvcnknLCAkY2F0ZWdvcnlsaXN0LCAtMSwgJHVzZWRjYXRlZ29yeSwgJG9uY2hhbmdldGV4dCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKCSRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CgoJJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdlbGVtZW50dGV4dCcsICR0aGlzLT5MYW5nKCdlbGVtZW50JykpOwoJJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCAkdGhpcy0+TGFuZygnY2F0ZWdvcnknKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2RhdGF0ZXh0JywgJHRoaXMtPkxhbmcoJ2RhdGEnKSk7CiRzbWFydHktPmFzc2lnbignYXhpc1RpdGxlc1Bvc2l0aW9udGV4dCcsICR0aGlzLT5MYW5nKCdheGlzVGl0bGVzUG9zaXRpb24nKSk7CiRzbWFydHktPmFzc2lnbignYmFja2dyb3VuZENvbG9ydGV4dCcsICR0aGlzLT5MYW5nKCdiYWNrZ3JvdW5kQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbignY2hhcnRBcmVhdGV4dCcsICR0aGlzLT5MYW5nKCdjaGFydEFyZWEnKSk7CiRzbWFydHktPmFzc2lnbignY29sb3JzdGV4dCcsICR0aGlzLT5MYW5nKCdjb2xvcnMnKSk7CiRzbWFydHktPmFzc2lnbignY3VydmVUeXBldGV4dCcsICR0aGlzLT5MYW5nKCdjdXJ2ZVR5cGUnKSk7CiRzbWFydHktPmFzc2lnbignZW5hYmxlSW50ZXJhY3Rpdml0eXRleHQnLCAkdGhpcy0+TGFuZygnZW5hYmxlSW50ZXJhY3Rpdml0eScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb2N1c1RhcmdldHRleHQnLCAkdGhpcy0+TGFuZygnZm9jdXNUYXJnZXQnKSk7CiRzbWFydHktPmFzc2lnbignZm9udFNpemV0ZXh0JywgJHRoaXMtPkxhbmcoJ2ZvbnRTaXplJykpOwokc21hcnR5LT5hc3NpZ24oJ2ZvbnROYW1ldGV4dCcsICR0aGlzLT5MYW5nKCdmb250TmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdoQXhlc3RleHQnLCAkdGhpcy0+TGFuZygnaEF4ZXMnKSk7CiRzbWFydHktPmFzc2lnbignaEF4aXN0ZXh0JywgJHRoaXMtPkxhbmcoJ2hBeGlzJykpOwokc21hcnR5LT5hc3NpZ24oJ2hlaWdodHRleHQnLCAkdGhpcy0+TGFuZygnaGVpZ2h0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ludGVycG9sYXRlZE51bGxzdGV4dCcsICR0aGlzLT5MYW5nKCdpbnRlcnBvbGF0ZWROdWxscycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpc0h0bWx0ZXh0JywgJHRoaXMtPkxhbmcoJ2lzSHRtbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpc1N0YWNrZWR0ZXh0JywgJHRoaXMtPkxhbmcoJ2lzU3RhY2tlZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpczNEdGV4dCcsICR0aGlzLT5MYW5nKCdpczNEJykpOwokc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZHRleHQnLCAkdGhpcy0+TGFuZygnbGVnZW5kJykpOwokc21hcnR5LT5hc3NpZ24oJ2xpbmVXaWR0aHRleHQnLCAkdGhpcy0+TGFuZygnbGluZVdpZHRoJykpOwokc21hcnR5LT5hc3NpZ24oJ3NsaWNlc3RleHQnLCAkdGhpcy0+TGFuZygnc2xpY2VzJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlQm9yZGVyQ29sb3J0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVNsaWNlQm9yZGVyQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbigncGllU2xpY2VUZXh0dGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZVRleHQnKSk7CiRzbWFydHktPmFzc2lnbigncGllU2xpY2VUZXh0U3R5bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVNsaWNlVGV4dFN0eWxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3BvaW50U2l6ZXRleHQnLCAkdGhpcy0+TGFuZygncG9pbnRTaXplJykpOwokc21hcnR5LT5hc3NpZ24oJ3JldmVyc2VDYXRlZ29yaWVzdGV4dCcsICR0aGlzLT5MYW5nKCdyZXZlcnNlQ2F0ZWdvcmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzZXJpZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3NlcmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGR0ZXh0JywgJHRoaXMtPkxhbmcoJ3NsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdwaWVSZXNpZHVlU2xpY2VDb2xvcnRleHQnLCAkdGhpcy0+TGFuZygncGllUmVzaWR1ZVNsaWNlQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbigncGllUmVzaWR1ZVNsaWNlTGFiZWx0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVJlc2lkdWVTbGljZUxhYmVsJykpOwokc21hcnR5LT5hc3NpZ24oJ3RoZW1ldGV4dCcsICR0aGlzLT5MYW5nKCd0aGVtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZXRleHQnLCAkdGhpcy0+TGFuZygndGl0bGUnKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVQb3NpdGlvbnRleHQnLCAkdGhpcy0+TGFuZygndGl0bGVQb3NpdGlvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZVRleHRTdHlsZXRleHQnLCAkdGhpcy0+TGFuZygndGl0bGVUZXh0U3R5bGUnKSk7CiRzbWFydHktPmFzc2lnbigndG9vbHRpcHRleHQnLCAkdGhpcy0+TGFuZygndG9vbHRpcCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd2QXhlc3RleHQnLCAkdGhpcy0+TGFuZygndkF4ZXMnKSk7CiRzbWFydHktPmFzc2lnbigndkF4aXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3ZBeGlzJykpOwokc21hcnR5LT5hc3NpZ24oJ3dpZHRodGV4dCcsICR0aGlzLT5MYW5nKCd3aWR0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdhZ2dyZWdhdGlvblRhcmdldHRleHQnLCAkdGhpcy0+TGFuZygnYWdncmVnYXRpb25UYXJnZXQnKSk7CiRzbWFydHktPmFzc2lnbignZ3JvdXBXaWR0aHRleHQnLCAkdGhpcy0+TGFuZygnZ3JvdXBXaWR0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXRhT3BhY2l0eXRleHQnLCAkdGhpcy0+TGFuZygnZGF0YU9wYWNpdHknKSk7CiRzbWFydHktPmFzc2lnbignYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lc3RleHQnLCAkdGhpcy0+TGFuZygnYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aW1lbGluZXRleHQnLCAkdGhpcy0+TGFuZygndGltZWxpbmUnKSk7CgovLyB0YWIgc3R1ZmYuCiRzbWFydHktPmFzc2lnbignc3RhcnRfdGFiX2hlYWRlcnMnLCR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSk7CiRzbWFydHktPmFzc2lnbigndGFiaGVhZGVyX2NoYXJ0JywkdGhpcy0+U2V0VGFiSGVhZGVyKCdjaGFydCcsJHRoaXMtPkxhbmcoJ2NoYXJ0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiX2hlYWRlcnMnLCR0aGlzLT5FbmRUYWJIZWFkZXJzKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfY29udGVudCcsJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfY2hhcnQnLCR0aGlzLT5TdGFydFRhYignY2hhcnQnLCRwYXJhbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiX2NoYXJ0JywkdGhpcy0+RW5kVGFiKCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZF90YWJfY29udGVudCcsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3dhcm5pbmdfcHJldmlldycsJHRoaXMtPkxhbmcoJ3dhcm5pbmdfcHJldmlldycpKTsKJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwokc21hcnR5LT5hc3NpZ24oJ3ByZXZpZXdfcmV0dXJuaWQnLAoJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlsX3JldHVybmlkJywtMSksCgkJCQkJCSAgICAgJ3ByZXZpZXdfcmV0dXJuaWQnKSk7CnsKICAkdG1wID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsKICAkdG1wMiA9IGFycmF5KCk7CiAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKQogICAgewogICAgICBpZiggc3RhcnRzd2l0aCgkdG1wWyRpXSwnZGV0YWlsJykgKQoJewoJICAkeCA9IHN1YnN0cigkdG1wWyRpXSw2KTsKCSAgJHRtcDJbJHhdID0gJHg7Cgl9CiAgICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlsX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnZGV0YWlsX3RlbXBsYXRlJykpOwogICRzbWFydHktPmFzc2lnbigncHJvbXB0X2RldGFpbF9wYWdlJywkdGhpcy0+TGFuZygnZGV0YWlsX3BhZ2UnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxfdGVtcGxhdGVzJywkdG1wMik7CiAgJHNtYXJ0eS0+YXNzaWduKCdjdXJfZGV0YWlsX3RlbXBsYXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VycmVudF9kZXRhaWxfdGVtcGxhdGUnKSk7Cn0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y2hhcnQudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovLy8vLyBHTE9CQUxTIC8vLy8vCgokZ0NtcyA9IGNtc21zKCk7CiRzbWFydHkgPSAmJGdDbXMtPkdldFNtYXJ0eSgpOwokZGIgPSAkZ0Ntcy0+R2V0RGIoKTsKCiRxdWVyeSA9ICdTRUxFQ1QgZ2NoYXJ0c19pZCwgZ2NoYXJ0c19jYXRlZ29yeV9pZCwgZ2NoYXJ0c19lbGVtZW50X2lkLCBnY2hhcnRzX25hbWUsIGdjaGFydHNfZGF0YSwgYXhpc1RpdGxlc1Bvc2l0aW9uLCBiYWNrZ3JvdW5kQ29sb3IsIGNoYXJ0QXJlYSwgY3VydmVUeXBlLCBjb2xvcnMsIGVuYWJsZUludGVyYWN0aXZpdHksIGZvY3VzVGFyZ2V0LCBmb250U2l6ZSwgZm9udE5hbWUsIGhBeGVzLCBoQXhpcywgaGVpZ2h0LCBpbnRlcnBvbGF0ZWROdWxscywgaXNIdG1sLCBpc1N0YWNrZWQsIGlzM0QsIGxlZ2VuZCwgbGluZVdpZHRoLCBzbGljZXMsIHBpZVNsaWNlQm9yZGVyQ29sb3IsIHBpZVNsaWNlVGV4dCwgcGllU2xpY2VUZXh0U3R5bGUsIHBvaW50U2l6ZSwgcmV2ZXJzZUNhdGVnb3JpZXMsIHNlcmllcywgc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkLCBwaWVSZXNpZHVlU2xpY2VDb2xvciwgcGllUmVzaWR1ZVNsaWNlTGFiZWwsIHRoZW1lLCB0aXRsZSwgdGl0bGVQb3NpdGlvbiwgdGl0bGVUZXh0U3R5bGUsIHRvb2x0aXAsIHZBeGVzLCB2QXhpcywgd2lkdGgsIHN0YXR1cywgYWdncmVnYXRpb25UYXJnZXQsIGdyb3VwV2lkdGgsIGRhdGFPcGFjaXR5LCBhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzLCB0aW1lbGluZSBmcm9tICcuY21zX2RiX3ByZWZpeCgpLgogICAnbW9kdWxlX2djaGFydHMnOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2djaGFydHNfaWQnXSkpCiAgIHsKICAgJHF1ZXJ5IC49ICcgd2hlcmUgZ2NoYXJ0c19pZCA9ID8nOwogICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWydnY2hhcnRzX2lkJ10pKTsKICAgJG1vZGUgPSAnZGV0YWlsJzsgLy8gd2UncmUgdmlld2luZyBhIHNpbmdsZSByZWNvcmQKICAgfQogICAKJHJlY29yZHMgPSBhcnJheSgpOwp3aGlsZSAoJHJlc3VsdCAhPT0gZmFsc2UgJiYgJHJvdz0kcmVzdWx0LT5GZXRjaFJvdygpKQogICB7CiAgIC8vIGNyZWF0ZSBhIG5ldyBvYmplY3QgZm9yIGV2ZXJ5IHJlY29yZCB0aGF0IHdlIHJldHJpZXZlCiAgICRyZWMgPSBuZXcgc3RkQ2xhc3MoKTsKICAgJHJlYy0+aWQgPSAkcm93WydnY2hhcnRzX2lkJ107CiAgICRyZWMtPmNhdGVnb3J5ID0gJHJvd1snZ2NoYXJ0c19jYXRlZ29yeV9pZCddOwogICAkcmVjLT5uYW1lID0gJHJvd1snZ2NoYXJ0c19uYW1lJ107CiAgICRyZWMtPmVsZW1lbnQgPSAkcm93WydnY2hhcnRzX2VsZW1lbnRfaWQnXTsKICAgJHJlYy0+ZGF0YSA9ICRyb3dbJ2djaGFydHNfZGF0YSddOwogICAkcmVjLT5iYWNrZ3JvdW5kQ29sb3IgPSAkcm93WydiYWNrZ3JvdW5kQ29sb3InXTsKICAgJHJlYy0+Y2hhcnRBcmVhID0gJHJvd1snY2hhcnRBcmVhJ107CiAgICRyZWMtPmNvbG9ycyA9ICRyb3dbJ2NvbG9ycyddOwogICAkcmVjLT5mb250U2l6ZSA9ICRyb3dbJ2ZvbnRTaXplJ107CiAgICRyZWMtPmZvbnROYW1lID0gJHJvd1snZm9udE5hbWUnXTsKICAgJHJlYy0+aGVpZ2h0ID0gJHJvd1snaGVpZ2h0J107CiAgICRyZWMtPmxlZ2VuZCA9ICRyb3dbJ2xlZ2VuZCddOwogICAkcmVjLT5yZXZlcnNlQ2F0ZWdvcmllcyA9ICRyb3dbJ3JldmVyc2VDYXRlZ29yaWVzJ107CiAgICRyZWMtPnRpdGxlVGV4dFN0eWxlID0gJHJvd1sndGl0bGVUZXh0U3R5bGUnXTsKICAgJHJlYy0+dG9vbHRpcCA9ICRyb3dbJ3Rvb2x0aXAnXTsKICAgJHJlYy0+d2lkdGggPSAkcm93Wyd3aWR0aCddOwoKICAgJHJlYy0+aXMzRCA9ICRyb3dbJ2lzM0QnXTsKICAgJHJlYy0+c2xpY2VzID0gJHJvd1snc2xpY2VzJ107CiAgICRyZWMtPnBpZVNsaWNlQm9yZGVyQ29sb3IgPSAkcm93WydwaWVTbGljZUJvcmRlckNvbG9yJ107CiAgICRyZWMtPnBpZVNsaWNlVGV4dCA9ICRyb3dbJ3BpZVNsaWNlVGV4dCddOwogICAkcmVjLT5waWVTbGljZVRleHRTdHlsZSA9ICRyb3dbJ3BpZVNsaWNlVGV4dFN0eWxlJ107CiAgICRyZWMtPnNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCA9ICRyb3dbJ3NsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCddOwogICAkcmVjLT5waWVSZXNpZHVlU2xpY2VDb2xvciA9ICRyb3dbJ3BpZVJlc2lkdWVTbGljZUNvbG9yJ107CiAgICRyZWMtPnBpZVJlc2lkdWVTbGljZUxhYmVsID0gJHJvd1sncGllUmVzaWR1ZVNsaWNlTGFiZWwnXTsKCiAgICRyZWMtPmF4aXNUaXRsZXNQb3NpdGlvbiA9ICRyb3dbJ2F4aXNUaXRsZXNQb3NpdGlvbiddOwogICAkcmVjLT5lbmFibGVJbnRlcmFjdGl2aXR5ID0gJHJvd1snZW5hYmxlSW50ZXJhY3Rpdml0eSddOwogICAkcmVjLT5mb2N1c1RhcmdldCA9ICRyb3dbJ2ZvY3VzVGFyZ2V0J107CiAgICRyZWMtPmhBeGlzID0gJHJvd1snaEF4aXMnXTsKICAgJHJlYy0+aXNIdG1sID0gJHJvd1snaXNIdG1sJ107CiAgICRyZWMtPnNlcmllcyA9ICRyb3dbJ3NlcmllcyddOwogICAkcmVjLT50aGVtZSA9ICRyb3dbJ3RoZW1lJ107CiAgICRyZWMtPnRpdGxlUG9zaXRpb24gPSAkcm93Wyd0aXRsZVBvc2l0aW9uJ107CgogICAkcmVjLT52QXhlcyA9ICRyb3dbJ3ZBeGVzJ107CiAgICRyZWMtPmFnZ3JlZ2F0aW9uVGFyZ2V0ID0gJHJvd1snYWdncmVnYXRpb25UYXJnZXQnXTsKCiAgICRyZWMtPmN1cnZlVHlwZSA9ICRyb3dbJ2N1cnZlVHlwZSddOwogICAkcmVjLT5pbnRlcnBvbGF0ZWROdWxscyA9ICRyb3dbJ2ludGVycG9sYXRlZE51bGxzJ107CiAgICRyZWMtPnZBeGlzID0gJHJvd1sndkF4aXMnXTsKICAgJHJlYy0+bGluZVdpZHRoID0gJHJvd1snbGluZVdpZHRoJ107CiAgICRyZWMtPnBvaW50U2l6ZSA9ICRyb3dbJ3BvaW50U2l6ZSddOwoKICAgJHJlYy0+aXNTdGFja2VkID0gJHJvd1snaXNTdGFja2VkJ107CgogICAkcmVjLT5ncm91cFdpZHRoID0gJHJvd1snZ3JvdXBXaWR0aCddOwogICAkcmVjLT5kYXRhT3BhY2l0eSA9ICRyb3dbJ2RhdGFPcGFjaXR5J107CiAgICRyZWMtPmF2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMgPSAkcm93Wydhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzJ107CiAgICRyZWMtPnRpbWVsaW5lID0gJHJvd1sndGltZWxpbmUnXTsKCiAgICRyZWMtPnRpdGxlID0gJHJvd1sndGl0bGUnXTsKICAgYXJyYXlfcHVzaCgkcmVjb3JkcywkcmVjKTsKICAgfQoKLy8gRXhwb3NlIHRoZSBsaXN0IHRvIHNtYXJ0eS4KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZWNvcmRzJywkcmVjb3Jkcyk7CgppZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSkpCiAgIHsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfbWVzc2FnZScsJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSk7CiAgIH0KZWxzZQogICB7CiAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kdWxlX21lc3NhZ2UnLCcnKTsKICAgfQoKLy8vLy8gUFJPQ0VTUyBBTkQgRElTUExBWSBURU1QTEFURSAvLy8vLwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdnY2hhcnRzLnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgojCiNUaGUgdGFiIGhlYWRlcnMKIwplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKaWYgKEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCiAgewogICAgJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKICB9IGVsc2UgewogICR0YWIgPSAnJzsKIH0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBHQ2hhcnRzJykgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQXBwcm92ZSBHQ2hhcnRzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignY2hhcnRzJywkdGhpcy0+TGFuZygnY2hhcnRzJyksICgnY2hhcnRzJyA9PSAkdGFiKT90cnVlOmZhbHNlKTsKICB9CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCiMKI1RoZSBjb250ZW50IG9mIHRoZSB0YWJzCiMKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgR0NoYXJ0cycpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FwcHJvdmUgR0NoYXJ0cycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignY2hhcnRzJywgJHBhcmFtcyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fY2hhcnRzdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.editchart.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEdDaGFydHMnKSApIGV4aXQ7CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQogIHsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOwogIH0KCiRjaGFydGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjaGFydGlkJ10pKQogIHsKCSRjaGFydGlkID0gJHBhcmFtc1snY2hhcnRpZCddOwogIH0KCiRkYXRhID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydkYXRhJ10pKQogIHsKCSRkYXRhID0gJHBhcmFtc1snZGF0YSddOwogIH0KCiRzdGF0dXMgPSAnZHJhZnQnOwppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQXBwcm92ZSBHQ2hhcnRzJykgKQogIHsKICAgICRzdGF0dXMgPSAncHVibGlzaGVkJzsKICB9CmlmIChpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkpCiAgewoJJHN0YXR1cyA9ICRwYXJhbXNbJ3N0YXR1cyddOwogIH0KCgkkdXNlZGNhdGVnb3J5ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkpCgl7CgkgICR1c2VkY2F0ZWdvcnkgPSAkcGFyYW1zWydjYXRlZ29yeSddOwoJfQoKCSRuYW1lID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snbmFtZSddKSkKCXsKCSAgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107Cgl9CgoJJGVsZW1lbnQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydlbGVtZW50J10pKQoJewoJICAkZWxlbWVudCA9ICRwYXJhbXNbJ2VsZW1lbnQnXTsKCX0KCgkkYXhpc1RpdGxlc1Bvc2l0aW9uID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snYXhpc1RpdGxlc1Bvc2l0aW9uJ10pKQoJewoJICAkYXhpc1RpdGxlc1Bvc2l0aW9uID0gJHBhcmFtc1snYXhpc1RpdGxlc1Bvc2l0aW9uJ107Cgl9CgoJJGJhY2tncm91bmRDb2xvciA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2JhY2tncm91bmRDb2xvciddKSkKCXsKCSAgJGJhY2tncm91bmRDb2xvciA9ICRwYXJhbXNbJ2JhY2tncm91bmRDb2xvciddOwoJfQoKCSRjaGFydEFyZWEgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydjaGFydEFyZWEnXSkpCgl7CgkgICRjaGFydEFyZWEgPSAkcGFyYW1zWydjaGFydEFyZWEnXTsKCX0KCgkkY29sb3JzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snY29sb3JzJ10pKQoJewoJICAkY29sb3JzID0gJHBhcmFtc1snY29sb3JzJ107Cgl9CgoJJGN1cnZlVHlwZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2N1cnZlVHlwZSddKSkKCXsKCSAgJGN1cnZlVHlwZSA9ICRwYXJhbXNbJ2N1cnZlVHlwZSddOwoJfQoKCSRlbmFibGVJbnRlcmFjdGl2aXR5ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZW5hYmxlSW50ZXJhY3Rpdml0eSddKSkKCXsKCSAgJGVuYWJsZUludGVyYWN0aXZpdHkgPSAkcGFyYW1zWydlbmFibGVJbnRlcmFjdGl2aXR5J107Cgl9CgoJJGZvY3VzVGFyZ2V0ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZm9jdXNUYXJnZXQnXSkpCgl7CgkgICRmb2N1c1RhcmdldCA9ICRwYXJhbXNbJ2ZvY3VzVGFyZ2V0J107Cgl9CgoJJGZvbnRTaXplID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZm9udFNpemUnXSkpCgl7CgkgICRmb250U2l6ZSA9ICRwYXJhbXNbJ2ZvbnRTaXplJ107Cgl9CgoJJGZvbnROYW1lID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZm9udE5hbWUnXSkpCgl7CgkgICRmb250TmFtZSA9ICRwYXJhbXNbJ2ZvbnROYW1lJ107Cgl9CgoJJGhBeGVzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaEF4ZXMnXSkpCgl7CgkgICRoQXhlcyA9ICRwYXJhbXNbJ2hBeGVzJ107Cgl9CgoJJGhBeGlzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaEF4aXMnXSkpCgl7CgkgICRoQXhpcyA9ICRwYXJhbXNbJ2hBeGlzJ107Cgl9CgoJJGhlaWdodCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2hlaWdodCddKSkKCXsKCSAgJGhlaWdodCA9ICRwYXJhbXNbJ2hlaWdodCddOwoJfQoKCSRpc0h0bWwgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydpc0h0bWwnXSkpCgl7CgkgICRpc0h0bWwgPSAkcGFyYW1zWydpc0h0bWwnXTsKCX0KCgkkaXNTdGFja2VkID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaXNTdGFja2VkJ10pKQoJewoJICAkaXNTdGFja2VkID0gJHBhcmFtc1snaXNTdGFja2VkJ107Cgl9CgoJJGlzM0QgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydpczNEJ10pKQoJewoJICAkaXMzRCA9ICRwYXJhbXNbJ2lzM0QnXTsKCX0KCgkkaW50ZXJwb2xhdGVkTnVsbHMgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydpbnRlcnBvbGF0ZWROdWxscyddKSkKCXsKCSAgJGludGVycG9sYXRlZE51bGxzID0gJHBhcmFtc1snaW50ZXJwb2xhdGVkTnVsbHMnXTsKCX0KCgkkbGVnZW5kID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snbGVnZW5kJ10pKQoJewoJICAkbGVnZW5kID0gJHBhcmFtc1snbGVnZW5kJ107Cgl9CgoJJGxpbmVXaWR0aCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2xpbmVXaWR0aCddKSkKCXsKCSAgJGxpbmVXaWR0aCA9ICRwYXJhbXNbJ2xpbmVXaWR0aCddOwoJfQoKCSRwb2ludFNpemUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwb2ludFNpemUnXSkpCgl7CgkgICRwb2ludFNpemUgPSAkcGFyYW1zWydwb2ludFNpemUnXTsKCX0KCgkkcGllUmVzaWR1ZVNsaWNlQ29sb3IgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVSZXNpZHVlU2xpY2VDb2xvciddKSkKCXsKCSAgJHBpZVJlc2lkdWVTbGljZUNvbG9yID0gJHBhcmFtc1sncGllUmVzaWR1ZVNsaWNlQ29sb3InXTsKCX0KCgkkcGllUmVzaWR1ZVNsaWNlTGFiZWwgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVSZXNpZHVlU2xpY2VMYWJlbCddKSkKCXsKCSAgJHBpZVJlc2lkdWVTbGljZUxhYmVsID0gJHBhcmFtc1sncGllUmVzaWR1ZVNsaWNlTGFiZWwnXTsKCX0KCgkkcGllU2xpY2VCb3JkZXJDb2xvciA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3BpZVNsaWNlQm9yZGVyQ29sb3InXSkpCgl7CgkgICRwaWVTbGljZUJvcmRlckNvbG9yID0gJHBhcmFtc1sncGllU2xpY2VCb3JkZXJDb2xvciddOwoJfQoKCSRwaWVTbGljZVRleHQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVTbGljZVRleHQnXSkpCgl7CgkgICRwaWVTbGljZVRleHQgPSAkcGFyYW1zWydwaWVTbGljZVRleHQnXTsKCX0KCgkkcGllU2xpY2VUZXh0U3R5bGUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVTbGljZVRleHRTdHlsZSddKSkKCXsKCSAgJHBpZVNsaWNlVGV4dFN0eWxlID0gJHBhcmFtc1sncGllU2xpY2VUZXh0U3R5bGUnXTsKCX0KCgkkcmV2ZXJzZUNhdGVnb3JpZXMgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydyZXZlcnNlQ2F0ZWdvcmllcyddKSkKCXsKCSAgJHJldmVyc2VDYXRlZ29yaWVzID0gJHBhcmFtc1sncmV2ZXJzZUNhdGVnb3JpZXMnXTsKCX0KCgkkc2xpY2VzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snc2xpY2VzJ10pKQoJewoJICAkc2xpY2VzID0gJHBhcmFtc1snc2xpY2VzJ107Cgl9CgoJJHNlcmllcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3NlcmllcyddKSkKCXsKCSAgJHNlcmllcyA9ICRwYXJhbXNbJ3NlcmllcyddOwoJfQoKCSRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnXSkpCgl7CgkgICRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQgPSAkcGFyYW1zWydzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnXTsKCX0KCgkkdGhlbWUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aGVtZSddKSkKCXsKCSAgJHRoZW1lID0gJHBhcmFtc1sndGhlbWUnXTsKCX0KCgkkdGl0bGUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aXRsZSddKSkKCXsKCSAgJHRpdGxlID0gJHBhcmFtc1sndGl0bGUnXTsKCX0KCgkkdGl0bGVQb3NpdGlvbiA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3RpdGxlUG9zaXRpb24nXSkpCgl7CgkgICR0aXRsZVBvc2l0aW9uID0gJHBhcmFtc1sndGl0bGVQb3NpdGlvbiddOwoJfQoKCSR0aXRsZVRleHRTdHlsZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3RpdGxlVGV4dFN0eWxlJ10pKQoJewoJICAkdGl0bGVUZXh0U3R5bGUgPSAkcGFyYW1zWyd0aXRsZVRleHRTdHlsZSddOwoJfQoKCSR0b29sdGlwID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndG9vbHRpcCddKSkKCXsKCSAgJHRvb2x0aXAgPSAkcGFyYW1zWyd0b29sdGlwJ107Cgl9CgoJJHZBeGVzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndkF4ZXMnXSkpCgl7CgkgICR2QXhlcyA9ICRwYXJhbXNbJ3ZBeGVzJ107Cgl9CgoJJHZBeGlzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndkF4aXMnXSkpCgl7CgkgICR2QXhpcyA9ICRwYXJhbXNbJ3ZBeGlzJ107Cgl9CgoJJHdpZHRoID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snd2lkdGgnXSkpCgl7CgkgICR3aWR0aCA9ICRwYXJhbXNbJ3dpZHRoJ107Cgl9CgoJJGFnZ3JlZ2F0aW9uVGFyZ2V0ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snYWdncmVnYXRpb25UYXJnZXQnXSkpCgl7CgkgICRhZ2dyZWdhdGlvblRhcmdldCA9ICRwYXJhbXNbJ2FnZ3JlZ2F0aW9uVGFyZ2V0J107Cgl9CgoJJGdyb3VwV2lkdGggPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydncm91cFdpZHRoJ10pKQoJewoJICAkZ3JvdXBXaWR0aCA9ICRwYXJhbXNbJ2dyb3VwV2lkdGgnXTsKCX0KCgkkZGF0YU9wYWNpdHkgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydkYXRhT3BhY2l0eSddKSkKCXsKCSAgJGRhdGFPcGFjaXR5ID0gJHBhcmFtc1snZGF0YU9wYWNpdHknXTsKCX0KCgkkYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2F2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMnXSkpCgl7CgkgICRhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzID0gJHBhcmFtc1snYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcyddOwoJfQoKCSR0aW1lbGluZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3RpbWVsaW5lJ10pKQoJewoJICAkdGltZWxpbmUgPSAkcGFyYW1zWyd0aW1lbGluZSddOwoJfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSApCiAgewogICAgJGVycm9yID0gRkFMU0U7CiAgICBpZiggZW1wdHkoJG5hbWUpICkKICAgICAgewoJJGVycm9yID0gJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJyk7CiAgICAgIH0KICAgIGVsc2UgaWYoIGVtcHR5KCRkYXRhKSApCiAgICAgIHsKCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdub2RhdGFnaXZlbicpOwogICAgICB9CgogICAgaWYoICEkZXJyb3IgKQogICAgICB7CgoJLy8gCgkvLyBkYXRhYmFzZSB3b3JrCgkvLwoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2djaGFydHMgU0VUIGdjaGFydHNfY2F0ZWdvcnlfaWQgPSA/LCBnY2hhcnRzX2VsZW1lbnRfaWQgPSA/LCBnY2hhcnRzX25hbWUgPSA/LCBnY2hhcnRzX2RhdGEgPSA/LCBheGlzVGl0bGVzUG9zaXRpb24gPSA/LCBiYWNrZ3JvdW5kQ29sb3IgPSA/LCBjdXJ2ZVR5cGUgPSA/LCBjaGFydEFyZWEgPSA/LCBjb2xvcnMgPSA/LCBlbmFibGVJbnRlcmFjdGl2aXR5ID0gPywgZm9jdXNUYXJnZXQgPSA/LCBmb250U2l6ZSA9ID8sIGZvbnROYW1lID0gPywgaEF4ZXMgPSA/LCBoQXhpcyA9ID8sIGhlaWdodCA9ID8sIGludGVycG9sYXRlZE51bGxzID0gPywgaXNIdG1sID0gPywgaXNTdGFja2VkID0gPywgaXMzRCA9ID8sIGxlZ2VuZCA9ID8sIGxpbmVXaWR0aCA9ID8sIHNsaWNlcyA9ID8sIHBpZVNsaWNlQm9yZGVyQ29sb3IgPSA/LCBwaWVTbGljZVRleHQgPSA/LCBwaWVTbGljZVRleHRTdHlsZSA9ID8sIHBvaW50U2l6ZSA9ID8sIHJldmVyc2VDYXRlZ29yaWVzID0gPywgc2VyaWVzID0gPywgc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkID0gPywgcGllUmVzaWR1ZVNsaWNlQ29sb3IgPSA/LCBwaWVSZXNpZHVlU2xpY2VMYWJlbCA9ID8sIHRoZW1lID0gPywgdGl0bGUgPSA/LCB0aXRsZVBvc2l0aW9uID0gPywgdGl0bGVUZXh0U3R5bGUgPSA/LCB0b29sdGlwID0gPywgdkF4ZXMgPSA/LCB2QXhpcyA9ID8sIHdpZHRoID0gPywgYWdncmVnYXRpb25UYXJnZXQgPSA/LCBncm91cFdpZHRoID0gPywgZGF0YU9wYWNpdHkgPSA/LCBhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzID0gPywgdGltZWxpbmUgPSA/IFdIRVJFIGdjaGFydHNfaWQgPSA/JzsKCSAgIAkJCQkKCSAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAKCQkJIGFycmF5KCR1c2VkY2F0ZWdvcnksICRlbGVtZW50LCAkbmFtZSwgJGRhdGEsICRheGlzVGl0bGVzUG9zaXRpb24sICRiYWNrZ3JvdW5kQ29sb3IsICRjdXJ2ZVR5cGUsICRjaGFydEFyZWEsICRjb2xvcnMsICRlbmFibGVJbnRlcmFjdGl2aXR5LCAkZm9jdXNUYXJnZXQsICRmb250U2l6ZSwgJGZvbnROYW1lLCAkaEF4ZXMsICRoQXhpcywgJGhlaWdodCwgJGludGVycG9sYXRlZE51bGxzLCAkaXNIdG1sLCAkaXNTdGFja2VkLCAkaXMzRCwgJGxlZ2VuZCwgJGxpbmVXaWR0aCwgJHNsaWNlcywgJHBpZVNsaWNlQm9yZGVyQ29sb3IsICRwaWVTbGljZVRleHQsICRwaWVTbGljZVRleHRTdHlsZSwgJHBvaW50U2l6ZSwgJHJldmVyc2VDYXRlZ29yaWVzLCAkc2VyaWVzLCAkc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkLCAkcGllUmVzaWR1ZVNsaWNlQ29sb3IsICRwaWVSZXNpZHVlU2xpY2VMYWJlbCwgJHRoZW1lLCAkdGl0bGUsICR0aXRsZVBvc2l0aW9uLCAkdGl0bGVUZXh0U3R5bGUsICR0b29sdGlwLCAkdkF4ZXMsICR2QXhpcywgJHdpZHRoLCAkYWdncmVnYXRpb25UYXJnZXQsICRncm91cFdpZHRoLCAkZGF0YU9wYWNpdHksICRhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzLCAkdGltZWxpbmUsICRjaGFydGlkKSk7CgoJLy9VcGRhdGUgc2VhcmNoIGluZGV4CglpZiggISRlcnJvciApCgkgIHsKCSAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwoJICAgIGlmIChpc19vYmplY3QoJG1vZHVsZSkgKQoJICAgICAgewoJCWlmKCAkc3RhdHVzID09ICdkcmFmdCcgKQoJCSAgewoJCSAgICAkbW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCRjaGFydGlkLCdjaGFydCcpOwoJCSAgfQoJCWVsc2UKCQkgIHsKCQkgICAgJHRleHQgPSAnJzsKCQkgICAgJHRleHQgLj0gJGRhdGEuJyAnLiRuYW1lLicgJy4kbmFtZTsKCQkgICAgJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGNoYXJ0aWQsICdjaGFydCcsICR0ZXh0KTsKCQkgIH0KCSAgICAgIH0KCQoJICAgIEAkdGhpcy0+U2VuZEV2ZW50KCdHQ2hhcnRDaGFydEVkaXRlZCcsIGFycmF5KCdnY2hhcnRzX2lkJyA9PiAkY2hhcnRpZCwgJ2djaGFydHNfY2F0ZWdvcnlfaWQnID0+ICR1c2VkY2F0ZWdvcnksICduYW1lJyA9PiAkbmFtZSwgJ2RhdGEnID0+ICRkYXRhLCAnYXhpc1RpdGxlc1Bvc2l0aW9uJyA9PiAkYXhpc1RpdGxlc1Bvc2l0aW9uLCAnYmFja2dyb3VuZENvbG9yJyA9PiAkYmFja2dyb3VuZENvbG9yLCAnY3VydmVUeXBlJyA9PiAkY3VydmVUeXBlLCAnY2hhcnRBcmVhJyA9PiAkY2hhcnRBcmVhLCAnY29sb3JzJyA9PiAkY29sb3JzLCAnZW5hYmxlSW50ZXJhY3Rpdml0eScgPT4gJGVuYWJsZUludGVyYWN0aXZpdHksICdmb2N1c1RhcmdldCcgPT4gJGZvY3VzVGFyZ2V0LCAnZm9udFNpemUnID0+ICRmb250U2l6ZSwgJ2ZvbnROYW1lJyA9PiAkZm9udE5hbWUsICdoQXhlcycgPT4gJGhBeGVzLCAnaEF4aXMnID0+ICRoQXhpcywgJ2hlaWdodCcgPT4gJGhlaWdodCwgJ2ludGVycG9sYXRlZE51bGxzJyA9PiAkaW50ZXJwb2xhdGVkTnVsbHMsICdpc0h0bWwnID0+ICRpc0h0bWwsICdpc1N0YWNrZWQnID0+ICRpc1N0YWNrZWQsICdpczNEJyA9PiAkaXMzRCwgJ2xlZ2VuZCcgPT4gJGxlZ2VuZCwgJ2xpbmVXaWR0aCcgPT4gJGxpbmVXaWR0aCwgJ3NsaWNlcycgPT4gJHNsaWNlcywgJ3BpZVNsaWNlQm9yZGVyQ29sb3InID0+ICRwaWVTbGljZUJvcmRlckNvbG9yLCAncGllU2xpY2VUZXh0JyA9PiAkcGllU2xpY2VUZXh0LCAncGllU2xpY2VUZXh0U3R5bGUnID0+ICRwaWVTbGljZVRleHRTdHlsZSwgJ3BvaW50U2l6ZScgPT4gJHBvaW50U2l6ZSwgJ3JldmVyc2VDYXRlZ29yaWVzJyA9PiAkcmV2ZXJzZUNhdGVnb3JpZXMsICdzZXJpZXMnID0+ICRzZXJpZXMsICdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnID0+ICRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQsICdwaWVSZXNpZHVlU2xpY2VDb2xvcicgPT4gJHBpZVJlc2lkdWVTbGljZUNvbG9yLCAncGllUmVzaWR1ZVNsaWNlTGFiZWwnID0+ICRwaWVSZXNpZHVlU2xpY2VMYWJlbCwgJ3RoZW1lJyA9PiAkdGhlbWUsICd0aXRsZScgPT4gJHRpdGxlLCAndGl0bGVQb3NpdGlvbicgPT4gJHRpdGxlUG9zaXRpb24sICd0aXRsZVRleHRTdHlsZScgPT4gJHRpdGxlVGV4dFN0eWxlLCAndG9vbHRpcCcgPT4gJHRvb2x0aXAsICd2QXhlcycgPT4gJHZBeGVzLCAndkF4aXMnID0+ICR2QXhpcywgJ3dpZHRoJyA9PiAkd2lkdGgsICdhZ2dyZWdhdGlvblRhcmdldCcgPT4gJGFnZ3JlZ2F0aW9uVGFyZ2V0LCAnZ3JvdXBXaWR0aCcgPT4gJGdyb3VwV2lkdGgsICdkYXRhT3BhY2l0eScgPT4gJGRhdGFPcGFjaXR5LCAnYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcycgPT4gJGF2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMsICd0aW1lbGluZScgPT4gJHRpbWVsaW5lLCAnc3RhdHVzJyA9PiAkc3RhdHVzKSk7CgkJCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQlhdWRpdCgkY2hhcnRpZCwgJ0dDaGFydHM6ICcuJGNoYXJ0aWQsICdDaGFydCBlZGl0ZWQnKTsKCSAgfQoKICAgICAgfSAvLyBlbHNlIGlmIG5vIGVycm9yCgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICYmIGlzc2V0KCRwYXJhbXNbJ2FqYXgnXSkgKQogICAgICB7CgkkcmVzcG9uc2UgPSAnPEVkaXRDaGFydD4nOwoJaWYoICRlcnJvciAhPSAnJyApCgkgIHsKCSAgICAkcmVzcG9uc2UgLj0gJzxSZXNwb25zZT5FcnJvcjwvUmVzcG9uc2U+JzsKCSAgICAkcmVzcG9uc2UgLj0gJzxEZXRhaWxzPjwhW0NEQVRBWycuJGVycm9yLiddXT48L0RldGFpbHM+JzsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJlc3BvbnNlIC49ICc8UmVzcG9uc2U+U3VjY2VzczwvUmVzcG9uc2U+JzsKICAgICAgICAgICAgJHJlc3BvbnNlIC49ICc8RGV0YWlscz48IVtDREFUQVsnLiR0aGlzLT5MYW5nKCdjaGFydHVwZGF0ZWQnKS4nXV0+PC9EZXRhaWxzPic7CgkgIH0KCSRyZXNwb25zZSAuPSAnPC9FZGl0Q2hhcnQ+JzsKCWVjaG8gJHJlc3BvbnNlOwoJcmV0dXJuOwogICAgICB9CgogICAgaWYoICFpc3NldCgkcGFyYW1zWydhcHBseSddKSAmJiAhJGVycm9yICkKICAgICAgewoJLy8gcmVkaXJlY3Qgb3V0IG8gaGVyZS4KCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ2NoYXJ0dXBkYXRlZCcsICdhY3RpdmVfdGFiJyA9PiAnY2hhcnRzJyk7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCXJldHVybjsKICAgICAgfQoKICAgIGlmKCAkZXJyb3IgKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcik7CiAgICAgIH0KICB9IC8vIHN1Ym1pdCBvciBhcHBseQplbHNlCiAgewogICAgLy8gCiAgICAvLyBMb2FkIGRhdGEgZnJvbSBkYXRhYmFzZQogICAgLy8KICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0cyBXSEVSRSBnY2hhcnRzX2lkID0gPyc7CiAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY2hhcnRpZCkpOwogICAgCiAgICBpZiAoJHJvdykKICAgICAgewoJJG5hbWUgPSAkcm93WydnY2hhcnRzX25hbWUnXTsKCSRlbGVtZW50ID0gJHJvd1snZ2NoYXJ0c19lbGVtZW50X2lkJ107CgkkZGF0YSA9ICRyb3dbJ2djaGFydHNfZGF0YSddOwokYXhpc1RpdGxlc1Bvc2l0aW9uID0gJHJvd1snYXhpc1RpdGxlc1Bvc2l0aW9uJ107CiRiYWNrZ3JvdW5kQ29sb3IgPSAkcm93WydiYWNrZ3JvdW5kQ29sb3InXTsKJGN1cnZlVHlwZSA9ICRyb3dbJ2N1cnZlVHlwZSddOwokY2hhcnRBcmVhID0gJHJvd1snY2hhcnRBcmVhJ107CiRjb2xvcnMgPSAkcm93Wydjb2xvcnMnXTsKJGVuYWJsZUludGVyYWN0aXZpdHkgPSAkcm93WydlbmFibGVJbnRlcmFjdGl2aXR5J107CiRmb2N1c1RhcmdldCA9ICRyb3dbJ2ZvY3VzVGFyZ2V0J107CiRmb250U2l6ZSA9ICRyb3dbJ2ZvbnRTaXplJ107CiRmb250TmFtZSA9ICRyb3dbJ2ZvbnROYW1lJ107CiRoQXhlcyA9ICRyb3dbJ2hBeGVzJ107CiRoQXhpcyA9ICRyb3dbJ2hBeGlzJ107CiRoZWlnaHQgPSAkcm93WydoZWlnaHQnXTsKJGludGVycG9sYXRlZE51bGxzID0gJHJvd1snaW50ZXJwb2xhdGVkTnVsbHMnXTsKJGlzSHRtbCA9ICRyb3dbJ2lzSHRtbCddOwokaXNTdGFja2VkID0gJHJvd1snaXNTdGFja2VkJ107CiRpczNEID0gJHJvd1snaXMzRCddOwokbGVnZW5kID0gJHJvd1snbGVnZW5kJ107CiRsaW5lV2lkdGggPSAkcm93WydsaW5lV2lkdGgnXTsKJHNsaWNlcyA9ICRyb3dbJ3NsaWNlcyddOwokcGllU2xpY2VCb3JkZXJDb2xvciA9ICRyb3dbJ3BpZVNsaWNlQm9yZGVyQ29sb3InXTsKJHBpZVNsaWNlVGV4dCA9ICRyb3dbJ3BpZVNsaWNlVGV4dCddOwokcGllU2xpY2VUZXh0U3R5bGUgPSAkcm93WydwaWVTbGljZVRleHRTdHlsZSddOwokcG9pbnRTaXplID0gJHJvd1sncG9pbnRTaXplJ107CiRyZXZlcnNlQ2F0ZWdvcmllcyA9ICRyb3dbJ3JldmVyc2VDYXRlZ29yaWVzJ107CiRzZXJpZXMgPSAkcm93WydzZXJpZXMnXTsKJHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCA9ICRyb3dbJ3NsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCddOwokcGllUmVzaWR1ZVNsaWNlQ29sb3IgPSAkcm93WydwaWVSZXNpZHVlU2xpY2VDb2xvciddOwokcGllUmVzaWR1ZVNsaWNlTGFiZWwgPSAkcm93WydwaWVSZXNpZHVlU2xpY2VMYWJlbCddOwokdGhlbWUgPSAkcm93Wyd0aGVtZSddOwokdGl0bGUgPSAkcm93Wyd0aXRsZSddOwokdGl0bGVQb3NpdGlvbiA9ICRyb3dbJ3RpdGxlUG9zaXRpb24nXTsKJHRpdGxlVGV4dFN0eWxlID0gJHJvd1sndGl0bGVUZXh0U3R5bGUnXTsKJHRvb2x0aXAgPSAkcm93Wyd0b29sdGlwJ107CiR2QXhlcyA9ICRyb3dbJ3ZBeGVzJ107CiR2QXhpcyA9ICRyb3dbJ3ZBeGlzJ107CiR3aWR0aCA9ICRyb3dbJ3dpZHRoJ107CiRhZ2dyZWdhdGlvblRhcmdldCA9ICRyb3dbJ2FnZ3JlZ2F0aW9uVGFyZ2V0J107CiRncm91cFdpZHRoID0gJHJvd1snZ3JvdXBXaWR0aCddOwokZGF0YU9wYWNpdHkgPSAkcm93WydkYXRhT3BhY2l0eSddOwokYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcyA9ICRyb3dbJ2F2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMnXTsKJHRpbWVsaW5lID0gJHJvd1sndGltZWxpbmUnXTsKCSRzdGF0dXMgPSAkcm93WydzdGF0dXMnXTsKCSR1c2VkY2F0ZWdvcnkgPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ107CiAgICAgIH0KICB9Cgokc3RhdHVzZHJvcGRvd24gPSBhcnJheSgpOwokc3RhdHVzZHJvcGRvd25bJHRoaXMtPkxhbmcoJ2RyYWZ0JyldID0gJ2RyYWZ0JzsKJHN0YXR1c2Ryb3Bkb3duWyR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKV0gPSAncHVibGlzaGVkJzsKCiRjYXRlZ29yeWxpc3QgPSBhcnJheSgpOwokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyBPUkRFUiBCWSBoaWVyYXJjaHkiOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICB7CgkkY2F0ZWdvcnlsaXN0WyRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddXSA9ICRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfaWQnXTsKICB9CgojRGlzcGxheSB0ZW1wbGF0ZQoJJHNtYXJ0eS0+YXNzaWduKCdjdXJyY2F0JywgJHVzZWRjYXRlZ29yeSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2Zvcm1pZCcsJGlkKTsKCSRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdlZGl0Y2hhcnQnLCAkcmV0dXJuaWQsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0ZWxlbWVudCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZWxlbWVudCcsICRlbGVtZW50LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0ZGF0YScsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAkZGF0YSwgJ2RhdGEnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0YXhpc1RpdGxlc1Bvc2l0aW9uJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdheGlzVGl0bGVzUG9zaXRpb24nLCAkYXhpc1RpdGxlc1Bvc2l0aW9uLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0YmFja2dyb3VuZENvbG9yJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdiYWNrZ3JvdW5kQ29sb3InLCAkYmFja2dyb3VuZENvbG9yLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Y2hhcnRBcmVhJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjaGFydEFyZWEnLCAkY2hhcnRBcmVhLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Y29sb3JzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjb2xvcnMnLCAkY29sb3JzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Y3VydmVUeXBlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXJ2ZVR5cGUnLCAkY3VydmVUeXBlLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0ZW5hYmxlSW50ZXJhY3Rpdml0eScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZW5hYmxlSW50ZXJhY3Rpdml0eScsICRlbmFibGVJbnRlcmFjdGl2aXR5LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Zm9jdXNUYXJnZXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZvY3VzVGFyZ2V0JywgJGZvY3VzVGFyZ2V0LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Zm9udFNpemUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZvbnRTaXplJywgJGZvbnRTaXplLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Zm9udE5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZvbnROYW1lJywgJGZvbnROYW1lLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0aEF4ZXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2hBeGVzJywgJGhBeGVzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0aEF4aXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2hBeGlzJywgJGhBeGlzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0aGVpZ2h0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdoZWlnaHQnLCAkaGVpZ2h0LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0aW50ZXJwb2xhdGVkTnVsbHMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ludGVycG9sYXRlZE51bGxzJywgJGludGVycG9sYXRlZE51bGxzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0aXNIdG1sJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpc0h0bWwnLCAkaXNIdG1sLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0aXNTdGFja2VkJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpc1N0YWNrZWQnLCAkaXNTdGFja2VkLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0aXMzRCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXMzRCcsICRpczNELCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0bGVnZW5kJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsZWdlbmQnLCAkbGVnZW5kLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0bGluZVdpZHRoJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsaW5lV2lkdGgnLCAkbGluZVdpZHRoLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0c2xpY2VzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdzbGljZXMnLCAkc2xpY2VzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0cGllU2xpY2VCb3JkZXJDb2xvcicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncGllU2xpY2VCb3JkZXJDb2xvcicsICRwaWVTbGljZUJvcmRlckNvbG9yLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0cGllU2xpY2VUZXh0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVTbGljZVRleHQnLCAkcGllU2xpY2VUZXh0LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0cGllU2xpY2VUZXh0U3R5bGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3BpZVNsaWNlVGV4dFN0eWxlJywgJHBpZVNsaWNlVGV4dFN0eWxlLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0cG9pbnRTaXplJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwb2ludFNpemUnLCAkcG9pbnRTaXplLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0cmV2ZXJzZUNhdGVnb3JpZXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3JldmVyc2VDYXRlZ29yaWVzJywgJHJldmVyc2VDYXRlZ29yaWVzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0c2VyaWVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdzZXJpZXMnLCAkc2VyaWVzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0c2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnLCAkc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0cGllUmVzaWR1ZVNsaWNlQ29sb3InLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3BpZVJlc2lkdWVTbGljZUNvbG9yJywgJHBpZVJlc2lkdWVTbGljZUNvbG9yLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0cGllUmVzaWR1ZVNsaWNlTGFiZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3BpZVJlc2lkdWVTbGljZUxhYmVsJywgJHBpZVJlc2lkdWVTbGljZUxhYmVsLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dGhlbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RoZW1lJywgJHRoZW1lLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dGl0bGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlJywgJHRpdGxlLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dGl0bGVQb3NpdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndGl0bGVQb3NpdGlvbicsICR0aXRsZVBvc2l0aW9uLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dGl0bGVUZXh0U3R5bGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlVGV4dFN0eWxlJywgJHRpdGxlVGV4dFN0eWxlLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dG9vbHRpcCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndG9vbHRpcCcsICR0b29sdGlwLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dkF4ZXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ZBeGVzJywgJHZBeGVzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dkF4aXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ZBeGlzJywgJHZBeGlzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0d2lkdGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3dpZHRoJywgJHdpZHRoLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0YWdncmVnYXRpb25UYXJnZXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2FnZ3JlZ2F0aW9uVGFyZ2V0JywgJGFnZ3JlZ2F0aW9uVGFyZ2V0LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Z3JvdXBXaWR0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZ3JvdXBXaWR0aCcsICRncm91cFdpZHRoLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0ZGF0YU9wYWNpdHknLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2RhdGFPcGFjaXR5JywgJGRhdGFPcGFjaXR5LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0YXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcycsICRhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dGltZWxpbmUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpbWVsaW5lJywgJHRpbWVsaW5lLCAzMCwgMjU1KSk7CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQXBwcm92ZSBHQ2hhcnRzJykgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignc3RhdHVzdGV4dCcsIGxhbmcoJ3N0YXR1cycpKTsKICAgICRzbWFydHktPmFzc2lnbignc3RhdHVzJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnc3RhdHVzJywgJHN0YXR1c2Ryb3Bkb3duLCAtMSwgJHN0YXR1cykpOwogIH0KIGVsc2UKICAgewoJICRzbWFydHktPmFzc2lnbignc3RhdHVzJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdzdGF0dXMnLCRzdGF0dXMpKTsKICAgfQoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNhdGVnb3J5JywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnY2F0ZWdvcnknLCAkY2F0ZWdvcnlsaXN0LCAtMSwgJHVzZWRjYXRlZ29yeSwgJ2lkPSJjaGFydENhdGVnb3J5IicpKTsKCSRzbWFydHktPmFzc2lnbignaGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NoYXJ0aWQnLCAkY2hhcnRpZCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKCSRzbWFydHktPmFzc2lnbignYXBwbHknLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnYXBwbHknLCBsYW5nKCdhcHBseScpKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwoJJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdlbGVtZW50dGV4dCcsICR0aGlzLT5MYW5nKCdlbGVtZW50JykpOwoJJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCAkdGhpcy0+TGFuZygnY2F0ZWdvcnknKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2RhdGF0ZXh0JywgJHRoaXMtPkxhbmcoJ2RhdGEnKSk7CiRzbWFydHktPmFzc2lnbignYXhpc1RpdGxlc1Bvc2l0aW9udGV4dCcsICR0aGlzLT5MYW5nKCdheGlzVGl0bGVzUG9zaXRpb24nKSk7CiRzbWFydHktPmFzc2lnbignYmFja2dyb3VuZENvbG9ydGV4dCcsICR0aGlzLT5MYW5nKCdiYWNrZ3JvdW5kQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbignY2hhcnRBcmVhdGV4dCcsICR0aGlzLT5MYW5nKCdjaGFydEFyZWEnKSk7CiRzbWFydHktPmFzc2lnbignY29sb3JzdGV4dCcsICR0aGlzLT5MYW5nKCdjb2xvcnMnKSk7CiRzbWFydHktPmFzc2lnbignY3VydmVUeXBldGV4dCcsICR0aGlzLT5MYW5nKCdjdXJ2ZVR5cGUnKSk7CiRzbWFydHktPmFzc2lnbignZW5hYmxlSW50ZXJhY3Rpdml0eXRleHQnLCAkdGhpcy0+TGFuZygnZW5hYmxlSW50ZXJhY3Rpdml0eScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb2N1c1RhcmdldHRleHQnLCAkdGhpcy0+TGFuZygnZm9jdXNUYXJnZXQnKSk7CiRzbWFydHktPmFzc2lnbignZm9udFNpemV0ZXh0JywgJHRoaXMtPkxhbmcoJ2ZvbnRTaXplJykpOwokc21hcnR5LT5hc3NpZ24oJ2ZvbnROYW1ldGV4dCcsICR0aGlzLT5MYW5nKCdmb250TmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdoQXhlc3RleHQnLCAkdGhpcy0+TGFuZygnaEF4ZXMnKSk7CiRzbWFydHktPmFzc2lnbignaEF4aXN0ZXh0JywgJHRoaXMtPkxhbmcoJ2hBeGlzJykpOwokc21hcnR5LT5hc3NpZ24oJ2hlaWdodHRleHQnLCAkdGhpcy0+TGFuZygnaGVpZ2h0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ludGVycG9sYXRlZE51bGxzdGV4dCcsICR0aGlzLT5MYW5nKCdpbnRlcnBvbGF0ZWROdWxscycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpc0h0bWx0ZXh0JywgJHRoaXMtPkxhbmcoJ2lzSHRtbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpc1N0YWNrZWR0ZXh0JywgJHRoaXMtPkxhbmcoJ2lzU3RhY2tlZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpczNEdGV4dCcsICR0aGlzLT5MYW5nKCdpczNEJykpOwokc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZHRleHQnLCAkdGhpcy0+TGFuZygnbGVnZW5kJykpOwokc21hcnR5LT5hc3NpZ24oJ2xpbmVXaWR0aHRleHQnLCAkdGhpcy0+TGFuZygnbGluZVdpZHRoJykpOwokc21hcnR5LT5hc3NpZ24oJ3NsaWNlc3RleHQnLCAkdGhpcy0+TGFuZygnc2xpY2VzJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlQm9yZGVyQ29sb3J0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVNsaWNlQm9yZGVyQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbigncGllU2xpY2VUZXh0dGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZVRleHQnKSk7CiRzbWFydHktPmFzc2lnbigncGllU2xpY2VUZXh0U3R5bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVNsaWNlVGV4dFN0eWxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3BvaW50U2l6ZXRleHQnLCAkdGhpcy0+TGFuZygncG9pbnRTaXplJykpOwokc21hcnR5LT5hc3NpZ24oJ3JldmVyc2VDYXRlZ29yaWVzdGV4dCcsICR0aGlzLT5MYW5nKCdyZXZlcnNlQ2F0ZWdvcmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzZXJpZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3NlcmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGR0ZXh0JywgJHRoaXMtPkxhbmcoJ3NsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdwaWVSZXNpZHVlU2xpY2VDb2xvcnRleHQnLCAkdGhpcy0+TGFuZygncGllUmVzaWR1ZVNsaWNlQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbigncGllUmVzaWR1ZVNsaWNlTGFiZWx0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVJlc2lkdWVTbGljZUxhYmVsJykpOwokc21hcnR5LT5hc3NpZ24oJ3RoZW1ldGV4dCcsICR0aGlzLT5MYW5nKCd0aGVtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZXRleHQnLCAkdGhpcy0+TGFuZygndGl0bGUnKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVQb3NpdGlvbnRleHQnLCAkdGhpcy0+TGFuZygndGl0bGVQb3NpdGlvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZVRleHRTdHlsZXRleHQnLCAkdGhpcy0+TGFuZygndGl0bGVUZXh0U3R5bGUnKSk7CiRzbWFydHktPmFzc2lnbigndG9vbHRpcHRleHQnLCAkdGhpcy0+TGFuZygndG9vbHRpcCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd2QXhlc3RleHQnLCAkdGhpcy0+TGFuZygndkF4ZXMnKSk7CiRzbWFydHktPmFzc2lnbigndkF4aXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3ZBeGlzJykpOwokc21hcnR5LT5hc3NpZ24oJ3dpZHRodGV4dCcsICR0aGlzLT5MYW5nKCd3aWR0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdhZ2dyZWdhdGlvblRhcmdldHRleHQnLCAkdGhpcy0+TGFuZygnYWdncmVnYXRpb25UYXJnZXQnKSk7CiRzbWFydHktPmFzc2lnbignZ3JvdXBXaWR0aHRleHQnLCAkdGhpcy0+TGFuZygnZ3JvdXBXaWR0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXRhT3BhY2l0eXRleHQnLCAkdGhpcy0+TGFuZygnZGF0YU9wYWNpdHknKSk7CiRzbWFydHktPmFzc2lnbignYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lc3RleHQnLCAkdGhpcy0+TGFuZygnYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aW1lbGluZXRleHQnLCAkdGhpcy0+TGFuZygndGltZWxpbmUnKSk7CgoKLy8gdGFiIHN0dWZmLgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X3RhYl9oZWFkZXJzJywkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCkpOwokc21hcnR5LT5hc3NpZ24oJ3RhYmhlYWRlcl9jaGFydCcsJHRoaXMtPlNldFRhYkhlYWRlcignY2hhcnQnLCR0aGlzLT5MYW5nKCdjaGFydCcpKSk7CiRzbWFydHktPmFzc2lnbigndGFiaGVhZGVyX3ByZXZpZXcnLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ3ByZXZpZXcnLCR0aGlzLT5MYW5nKCdwcmV2aWV3JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiX2hlYWRlcnMnLCR0aGlzLT5FbmRUYWJIZWFkZXJzKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfZGF0YScsJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfY2hhcnQnLCR0aGlzLT5TdGFydFRhYignY2hhcnQnLCRwYXJhbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiX2NoYXJ0JywkdGhpcy0+RW5kVGFiKCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZF90YWJfZGF0YScsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3dhcm5pbmdfcHJldmlldycsJHRoaXMtPkxhbmcoJ3dhcm5pbmdfcHJldmlldycpKTsKJGRhdGFvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwokc21hcnR5LT5hc3NpZ24oJ3ByZXZpZXdfcmV0dXJuaWQnLAoJCSRkYXRhb3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlsX3JldHVybmlkJywtMSksCgkJCQkJCSAgICAgJ3ByZXZpZXdfcmV0dXJuaWQnKSk7CnsKICAkdG1wID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsKICAkdG1wMiA9IGFycmF5KCk7CiAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKQogICAgewogICAgICBpZiggc3RhcnRzd2l0aCgkdG1wWyRpXSwnZGV0YWlsJykgKQoJewoJICAkeCA9IHN1YnN0cigkdG1wWyRpXSw2KTsKCSAgJHRtcDJbJHhdID0gJHg7Cgl9CiAgICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlsX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnZGV0YWlsX3RlbXBsYXRlJykpOwogICRzbWFydHktPmFzc2lnbigncHJvbXB0X2RldGFpbF9wYWdlJywkdGhpcy0+TGFuZygnZGV0YWlsX3BhZ2UnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxfdGVtcGxhdGVzJywkdG1wMik7CiAgJHNtYXJ0eS0+YXNzaWduKCdjdXJfZGV0YWlsX3RlbXBsYXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VycmVudF9kZXRhaWxfdGVtcGxhdGUnKSk7Cn0KCi8vIGFuZCBkaXNwbGF5IHRoZSB0ZW1wbGF0ZS4KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y2hhcnQudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_chartstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdkZWZhdWx0YWRtaW4nKSk7ICAKCQokYWxsY2F0ZWdvcmllcyA9IChpc3NldCgkcGFyYW1zWydhbGxjYXRlZ29yaWVzJ10pPyRwYXJhbXNbJ2FsbGNhdGVnb3JpZXMnXTonbm8nKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXRfbWFzc2RlbGV0ZSddKSApCiAgewogICAgaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdEZWxldGUgR0NoYXJ0cycpKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgR0NoYXJ0cycpKSk7CiAgICAgIH0KICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3NlbCddKSAmJiBpc19hcnJheSgkcGFyYW1zWydzZWwnXSkgJiYKCWNvdW50KCRwYXJhbXNbJ3NlbCddKSA+IDAgKQogICAgICB7CiAgICAgICAgZm9yZWFjaCggJHBhcmFtc1snc2VsJ10gYXMgJGdjaGFydHNfaWQgKQoJICB7CgkgICAgZ2NoYXJ0c19hZG1pbl9vcHM6OmRlbGV0ZV9jaGFydCggJGdjaGFydHNfaWQgKTsKCSAgfQogICAgICB9CiAgfQplbHNlIGlmIChpc3NldCgkcGFyYW1zWydzdWJtaXRfcmVhc3NpZ24nXSkgKQogIHsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydzZWwnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snc2VsJ10pICYmCgljb3VudCgkcGFyYW1zWydzZWwnXSkgPiAwICkKICAgICAgewoJJHRtcCA9IHN0cl9yZXBlYXQoJz8sJyxjb3VudCgkcGFyYW1zWydzZWwnXSkpOwoJJHRtcCA9IHN1YnN0cigkdG1wLDAsc3RybGVuKCR0bXApLTEpOwoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2djaGFydHMgU0VUIGdjaGFydHNfY2F0ZWdvcnlfaWQgPSA/IFdIRVJFIGdjaGFydHNfaWQgSU4gKCcuJHRtcC4nKSc7CgkkcGFybXMgPSBhcnJheSgkcGFyYW1zWydjYXRlZ29yeSddKTsKCWZvcmVhY2goICRwYXJhbXNbJ3NlbCddICBhcyAkcCApICRwYXJtc1tdID0gJHA7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCRwYXJtcyk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfbm9jaGFydHNzZWxlY3RlZCcpKTsKICAgICAgfQogIH0KCiRjYXRlZ29yeWxpc3QgPSBhcnJheSgpOwokY2F0ZWdvcnlsaXN0WyR0aGlzLT5MYW5nKCdhbGxjYXRlZ29yaWVzJyldID0gJyc7CiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeSI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKJGN1cmNhdGVnb3J5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NoYXJ0X2NhdGVnb3J5Jyk7CiRwYWdlbGltaXQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2hhcnRfcGFnZWxpbWl0JywyNSk7CiRwYWdlbnVtYmVyID0gMTsKaWYoIGlzc2V0KCAkcGFyYW1zWydwYWdlbnVtYmVyJ10gKSApCiAgewogICAgJHBhZ2VudW1iZXIgPSAkcGFyYW1zWydwYWdlbnVtYmVyJ107CiAgfQokc3RhcnRlbGVtZW50ID0gKCRwYWdlbnVtYmVyLTEpICogJHBhZ2VsaW1pdDsKJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjaGFydF9zb3J0YnknLCdnY2hhcnRzX25hbWUgREVTQycpOwokc29ydGxpc3QgPSBhcnJheSgpOwokc29ydGxpc3RbJHRoaXMtPkxhbmcoJ25hbWVfYXNjJyldID0gJ2djaGFydHNfbmFtZSBBU0MnOwokc29ydGxpc3RbJHRoaXMtPkxhbmcoJ25hbWVfZGVzYycpXSA9ICdnY2hhcnRzX25hbWUgREVTQyc7CiRzb3J0bGlzdFskdGhpcy0+TGFuZygnc3RhdHVzX2FzYycpXSA9ICdzdGF0dXMgQVNDJzsKJHNvcnRsaXN0WyR0aGlzLT5MYW5nKCdzdGF0dXNfZGVzYycpXSA9ICdzdGF0dXMgREVTQyc7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9jYXRlZ29yeScsJHRoaXMtPkxhbmcoJ2NhdGVnb3J5JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2NhdGVnb3J5JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2NhdGVnb3J5JywkY2F0ZWdvcnlsaXN0LC0xLCRjdXJjYXRlZ29yeSkpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9zaG93Y2hpbGRjYXRlZ29yaWVzJywKCQkkdGhpcy0+TGFuZygnc2hvd2NoaWxkY2F0ZWdvcmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGxjYXRlZ29yaWVzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2FsbGNhdGVnb3JpZXMnLCd5ZXMnLCRhbGxjYXRlZ29yaWVzKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X3NvcnRpbmcnLAoJCSR0aGlzLT5MYW5nKCdwcm9tcHRfc29ydGluZycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zb3J0aW5nJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3NvcnRieScsJHNvcnRsaXN0LC0xLCRzb3J0YnkpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcGFnZWxpbWl0JywKCQkkdGhpcy0+TGFuZygncHJvbXB0X3BhZ2VsaW1pdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9wYWdlbGltaXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwncGFnZWxpbWl0JywKCQkJCQkgICBhcnJheSgnNSc9PjUsJzI1Jz0+MjUsJzUwJz0+NTAsCgkJCQkJCSAnMTAwJz0+MTAwLCc1MDAnPT41MDAsJzEwMDAnPT4xMDAwLCR0aGlzLT5MYW5nKCd1bmxpbWl0ZWQnKT0+OTk5OTk5OTk5KSwtMSwkcGFnZWxpbWl0KSk7CgkKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCQovL0xvYWQgdGhlIGN1cnJlbnQgY2hhcnRzCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCiRkYnJlc3VsdCA9ICcnOwoKJHF1ZXJ5MSA9ICJTRUxFQ1Qgbi4qLCBuYy5nY2hhcnRzX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHMgbiBMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgbmMgT04gbi5nY2hhcnRzX2NhdGVnb3J5X2lkID0gbmMuZ2NoYXJ0c19jYXRlZ29yeV9pZCAiOwokcXVlcnkyID0gIlNFTEVDVCBjb3VudChuLmdjaGFydHNfaWQpIEFTIGNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzIG4gTEVGVCBPVVRFUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIG5jIE9OIG4uZ2NoYXJ0c19jYXRlZ29yeV9pZCA9IG5jLmdjaGFydHNfY2F0ZWdvcnlfaWQgIjsKJHBhcm1zID0gYXJyYXkoKTsKaWYgKCRjdXJjYXRlZ29yeSAhPSAnJykKICB7CiAgICAkcXVlcnkxIC49ICIgV0hFUkUgbmMuZ2NoYXJ0c19jYXRlZ29yeV9uYW1lIExJS0UgPyI7CiAgICAkcXVlcnkyIC49ICIgV0hFUkUgbmMuZ2NoYXJ0c19jYXRlZ29yeV9uYW1lIExJS0UgPyI7CiAgICBpZiggJGFsbGNhdGVnb3JpZXMgPT0gJ3llcycgKQogICAgICB7CgkkcGFybXNbXSA9ICRjdXJjYXRlZ29yeS4nJSc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHBhcm1zW10gPSAkY3VyY2F0ZWdvcnk7CiAgICAgIH0KICB9CiRxdWVyeTEgLj0gJyBPUkRFUiBieSAnLiRzb3J0Ynk7Ci8vJHF1ZXJ5MSAuPSAiIExJTUlUICRwYWdlbGltaXQgT0ZGU0VUICRzdGFydGVsZW1lbnQiOwoKLy8gaWYgaXMgZG9uZSB0byBoZWxwIGFkb2RiLgokbnVtcm93cyA9IC0xOwppZiggY291bnQoJHBhcm1zKSApCiAgewogICAgJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCggJHF1ZXJ5MSwgJHBhZ2VsaW1pdCwgJHN0YXJ0ZWxlbWVudCwgJHBhcm1zKTsKICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnkyLCRwYXJtcyk7CiAgICAkbnVtcm93cyA9ICRyb3dbJ2NvdW50J107CiAgfQplbHNlCiAgewogICAgJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCggJHF1ZXJ5MSwgJHBhZ2VsaW1pdCwgJHN0YXJ0ZWxlbWVudCk7CiAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5Mik7CiAgICAkbnVtcm93cyA9ICRyb3dbJ2NvdW50J107CiAgfQoKJHBhZ2Vjb3VudCA9IChpbnQpKCRudW1yb3dzLyRwYWdlbGltaXQpOwppZiggKCRudW1yb3dzICUgJHBhZ2VsaW1pdCkgIT0gMCApICRwYWdlY291bnQrKzsKLy8gc29tZSBwYWdpbmF0aW9uIHZhcmlhYmxlcyB0byBzbWFydHkuCmlmKCAkcGFnZW51bWJlciA9PSAxICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlJywnPCcpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2UnLCc8PCcpOwogIH0KZWxzZQogIHsKICAgICRzbWFydHktPmFzc2lnbigncHJldnBhZ2UnLAoJCSAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsCgkJCQkgICAgICAkcmV0dXJuaWQsJzwnLAoJCQkJICAgICAgYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZW51bWJlci0xLAoJCQkJCSAgICAnYWN0aXZlX3RhYic9PidjaGFydHMnKSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2UnLAoJCSAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsCgkJCQkgICAgICAkcmV0dXJuaWQsJzw8JywKCQkJCSAgICAgIGFycmF5KCdwYWdlbnVtYmVyJz0+MSwKCQkJCQkgICAgJ2FjdGl2ZV90YWInPT4nY2hhcnRzJykpKTsKICB9CmlmKCAkcGFnZW51bWJlciA+PSAkcGFnZWNvdW50ICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRwYWdlJywnPicpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0cGFnZScsJz4+Jyk7CiAgfQplbHNlCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsCgkJICAgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywKCQkJCSAgICAgICRyZXR1cm5pZCwnPicsCgkJCQkgICAgICBhcnJheSgncGFnZW51bWJlcic9PiRwYWdlbnVtYmVyKzEsCgkJCQkJICAgICdhY3RpdmVfdGFiJz0+J2NoYXJ0cycpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RwYWdlJywKCQkgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLAoJCQkJICAgICAgJHJldHVybmlkLCc+PicsCgkJCQkgICAgICBhcnJheSgncGFnZW51bWJlcic9PiRwYWdlY291bnQsCgkJCQkJICAgICdhY3RpdmVfdGFiJz0+J2NoYXJ0cycpKSk7CiAgfQokc21hcnR5LT5hc3NpZ24oJ3BhZ2VudW1iZXInLCRwYWdlbnVtYmVyKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRwYWdlY291bnQpOwokc21hcnR5LT5hc3NpZ24oJ29mdGV4dCcsJHRoaXMtPkxhbmcoJ3Byb21wdF9vZicpKTsKCiRyb3djbGFzcyA9ICdyb3cxJzsKCiRhZG1pbnRoZW1lID0mICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXTsKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogIHsKICAgICRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKICAgIAogICAgJG9uZXJvdy0+aWQgPSAkcm93WydnY2hhcnRzX2lkJ107CiAgICAkb25lcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGNoYXJ0JywgJHJldHVybmlkLCAkcm93WydnY2hhcnRzX25hbWUnXSwgYXJyYXkoJ2NoYXJ0aWQnPT4kcm93WydnY2hhcnRzX2lkJ10pKTsKICAgICRvbmVyb3ctPmRhdGEgPSAkcm93WydnY2hhcnRzX2RhdGEnXTsKICAgICRvbmVyb3ctPnN0YXR1cyA9ICR0aGlzLT5MYW5nKCRyb3dbJ3N0YXR1cyddKTsKICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBcHByb3ZlIEdDaGFydHMnKSApCiAgICAgIHsKCWlmKCAkcm93WydzdGF0dXMnXSA9PSAncHVibGlzaGVkJyApCgkgIHsKCSAgICAkb25lcm93LT5hcHByb3ZlX2xpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FwcHJvdmVjaGFydCcsCgkJCQkJCSAgICAkcmV0dXJuaWQsCgkJCQkJCSAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCR0aGlzLT5MYW5nKCdyZXZlcnQnKSwnJywnJywnc3lzdGVtaWNvbicpLGFycmF5KCdhcHByb3ZlJz0+MCwnY2hhcnRpZCc9PiRyb3dbJ2djaGFydHNfaWQnXSkpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkb25lcm93LT5hcHByb3ZlX2xpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FwcHJvdmVjaGFydCcsCgkJCQkJCSAgICAkcmV0dXJuaWQsCgkJCQkJCSAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywkdGhpcy0+TGFuZygnYXBwcm92ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ2FwcHJvdmUnPT4xLCdjaGFydGlkJz0+JHJvd1snZ2NoYXJ0c19pZCddKSk7CgkgIH0KICAgICAgfQogICAgJG9uZXJvdy0+Y2F0ZWdvcnkgPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXTsKCiAgICAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKICAgIAogICAgJG9uZXJvdy0+c2VsZWN0ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdzZWxbXScsJHJvd1snZ2NoYXJ0c19pZCddKTsKICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgR0NoYXJ0cycpICkgewogICAgICAkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRjaGFydCcsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NoYXJ0aWQnPT4kcm93WydnY2hhcnRzX2lkJ10pKTsKICAgIH0KICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdEZWxldGUgR0NoYXJ0cycpICkKICAgICAgewoJJG9uZXJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZWNoYXJ0JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NoYXJ0aWQnPT4kcm93WydnY2hhcnRzX2lkJ10pLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKICAgICAgfQogICAgCiAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKICAgIAogICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgfQoKJHNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZW50cnlhcnJheSk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgR0NoYXJ0cycpICkgewogICRzbWFydHktPmFzc2lnbignYWRkbGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNoYXJ0JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygnYWRkY2hhcnQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykgLicgJy4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkY2hhcnQnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhZGRjaGFydCcpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKfQoKJHNtYXJ0eS0+YXNzaWduKCdmb3JtMnN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtMmVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0X3JlYXNzaWduJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXRfcmVhc3NpZ24nLCR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwokY2F0ZWdvcnlsaXN0ID0gZ2NoYXJ0c19vcHM6OmdldF9jYXRlZ29yeV9saXN0KCk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcnlpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjYXRlZ29yeScsJGNhdGVnb3J5bGlzdCkpOwppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRGVsZXRlIEdDaGFydHMnKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfbWFzc2RlbGV0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9tYXNzZGVsZXRlJywkdGhpcy0+TGFuZygnZGVsZXRlX3NlbGVjdGVkJyksCgkJCQkJICAgICAnJywnJywkdGhpcy0+TGFuZygnYXJleW91c3VyZV9kZWxldGVtdWx0aXBsZScpKSk7CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCdyZWFzc2lnbnRleHQnLCR0aGlzLT5MYW5nKCdyZWFzc2lnbl9jYXRlZ29yeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdzZWxlY3R0ZXh0JywkdGhpcy0+TGFuZygnc2VsZWN0JykpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignc3RhdGV0ZXh0JywkdGhpcy0+TGFuZygnc3RhdGUnKSk7CiRzbWFydHktPmFzc2lnbignY2hhcnRpZHRleHQnLCAkdGhpcy0+TGFuZygnaWQnKSk7CiRzbWFydHktPmFzc2lnbignZWxlbWVudHRleHQnLCAkdGhpcy0+TGFuZygnZWxlbWVudCcpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5dGV4dCcsICR0aGlzLT5MYW5nKCdjYXRlZ29yeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXRhdGV4dCcsICR0aGlzLT5MYW5nKCdkYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2F4aXNUaXRsZXNQb3NpdGlvbnRleHQnLCAkdGhpcy0+TGFuZygnYXhpc1RpdGxlc1Bvc2l0aW9uJykpOwokc21hcnR5LT5hc3NpZ24oJ2JhY2tncm91bmRDb2xvcnRleHQnLCAkdGhpcy0+TGFuZygnYmFja2dyb3VuZENvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ2NoYXJ0QXJlYXRleHQnLCAkdGhpcy0+TGFuZygnY2hhcnRBcmVhJykpOwokc21hcnR5LT5hc3NpZ24oJ2NvbG9yc3RleHQnLCAkdGhpcy0+TGFuZygnY29sb3JzJykpOwokc21hcnR5LT5hc3NpZ24oJ2N1cnZlVHlwZXRleHQnLCAkdGhpcy0+TGFuZygnY3VydmVUeXBlJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuYWJsZUludGVyYWN0aXZpdHl0ZXh0JywgJHRoaXMtPkxhbmcoJ2VuYWJsZUludGVyYWN0aXZpdHknKSk7CiRzbWFydHktPmFzc2lnbignZm9jdXNUYXJnZXR0ZXh0JywgJHRoaXMtPkxhbmcoJ2ZvY3VzVGFyZ2V0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ZvbnRTaXpldGV4dCcsICR0aGlzLT5MYW5nKCdmb250U2l6ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb250TmFtZXRleHQnLCAkdGhpcy0+TGFuZygnZm9udE5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaEF4ZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ2hBeGVzJykpOwokc21hcnR5LT5hc3NpZ24oJ2hBeGlzdGV4dCcsICR0aGlzLT5MYW5nKCdoQXhpcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdoZWlnaHR0ZXh0JywgJHRoaXMtPkxhbmcoJ2hlaWdodCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnRlcnBvbGF0ZWROdWxsc3RleHQnLCAkdGhpcy0+TGFuZygnaW50ZXJwb2xhdGVkTnVsbHMnKSk7CiRzbWFydHktPmFzc2lnbignaXNIdG1sdGV4dCcsICR0aGlzLT5MYW5nKCdpc0h0bWwnKSk7CiRzbWFydHktPmFzc2lnbignaXNTdGFja2VkdGV4dCcsICR0aGlzLT5MYW5nKCdpc1N0YWNrZWQnKSk7CiRzbWFydHktPmFzc2lnbignaXMzRHRleHQnLCAkdGhpcy0+TGFuZygnaXMzRCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmR0ZXh0JywgJHRoaXMtPkxhbmcoJ2xlZ2VuZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdsaW5lV2lkdGh0ZXh0JywgJHRoaXMtPkxhbmcoJ2xpbmVXaWR0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdzbGljZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3NsaWNlcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdwaWVTbGljZUJvcmRlckNvbG9ydGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZUJvcmRlckNvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlVGV4dHRleHQnLCAkdGhpcy0+TGFuZygncGllU2xpY2VUZXh0JykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlVGV4dFN0eWxldGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZVRleHRTdHlsZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwb2ludFNpemV0ZXh0JywgJHRoaXMtPkxhbmcoJ3BvaW50U2l6ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXZlcnNlQ2F0ZWdvcmllc3RleHQnLCAkdGhpcy0+TGFuZygncmV2ZXJzZUNhdGVnb3JpZXMnKSk7CiRzbWFydHktPmFzc2lnbignc2VyaWVzdGV4dCcsICR0aGlzLT5MYW5nKCdzZXJpZXMnKSk7CiRzbWFydHktPmFzc2lnbignc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkdGV4dCcsICR0aGlzLT5MYW5nKCdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnKSk7CiRzbWFydHktPmFzc2lnbigncGllUmVzaWR1ZVNsaWNlQ29sb3J0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVJlc2lkdWVTbGljZUNvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVJlc2lkdWVTbGljZUxhYmVsdGV4dCcsICR0aGlzLT5MYW5nKCdwaWVSZXNpZHVlU2xpY2VMYWJlbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aGVtZXRleHQnLCAkdGhpcy0+TGFuZygndGhlbWUnKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3RpdGxlUG9zaXRpb250ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlUG9zaXRpb24nKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVUZXh0U3R5bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlVGV4dFN0eWxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3Rvb2x0aXB0ZXh0JywgJHRoaXMtPkxhbmcoJ3Rvb2x0aXAnKSk7CiRzbWFydHktPmFzc2lnbigndkF4ZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3ZBeGVzJykpOwokc21hcnR5LT5hc3NpZ24oJ3ZBeGlzdGV4dCcsICR0aGlzLT5MYW5nKCd2QXhpcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd3aWR0aHRleHQnLCAkdGhpcy0+TGFuZygnd2lkdGgnKSk7CiRzbWFydHktPmFzc2lnbignYWdncmVnYXRpb25UYXJnZXR0ZXh0JywgJHRoaXMtPkxhbmcoJ2FnZ3JlZ2F0aW9uVGFyZ2V0JykpOwokc21hcnR5LT5hc3NpZ24oJ2dyb3VwV2lkdGh0ZXh0JywgJHRoaXMtPkxhbmcoJ2dyb3VwV2lkdGgnKSk7CiRzbWFydHktPmFzc2lnbignZGF0YU9wYWNpdHl0ZXh0JywgJHRoaXMtPkxhbmcoJ2RhdGFPcGFjaXR5JykpOwokc21hcnR5LT5hc3NpZ24oJ2F2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ2F2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMnKSk7CiRzbWFydHktPmFzc2lnbigndGltZWxpbmV0ZXh0JywgJHRoaXMtPkxhbmcoJ3RpbWVsaW5lJykpOwoKJGdDbXMgPSBjbXNtcygpOwokdGhlbWUgPSYgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOwokY29uZmlnID0gJHRoaXMtPkdldENvbmZpZygpOwokdGhlbWVkaXIgPSAkY29uZmlnWydhZG1pbl91cmwnXS4nL3RoZW1lcy8nLiR0aGVtZS0+dGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbSc7Cgokc21hcnR5LT5hc3NpZ24oJ2ljb251cmwnLCR0aGVtZWRpcik7CgojRGlzcGxheSB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2NoYXJ0bGlzdC50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/GCharts.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEdDaGFydHMgKGMpIDIwMTMgYnkgT2xpdmVyIFNlZGRvbiAKIyAgICAgICAgIChvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhZGQgR29vZ2xlIENoYXJ0cyB0byB5b3VyIHBhZ2VzCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBHQ2hhcnRzIGV4dGVuZHMgQ01TTW9kdWxlCnsKCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICdHQ2hhcnRzJzsKICB9CgogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKICB9CgogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKICAgIHJldHVybiAnMS4zJzsKICB9CgogIGZ1bmN0aW9uIEdldEhlbHAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwogIH0KCiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkKICB7CiAgICByZXR1cm4gJ29saXZlcnNlZGRvbic7CiAgfQoKICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCiAgewogICAgcmV0dXJuICdvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrJzsKICB9CgogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKICB9CgogIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIEhhc0FkbWluKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewogICAgcmV0dXJuICdjb250ZW50JzsKICB9CgogIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsKICB9CgogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBHQ2hhcnRzJyk7CiAgfQoKICBmdW5jdGlvbiBHZXREYXNoYm9hcmRPdXRwdXQoKSAKICB7CgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKCSRyY291bnQgPSAkZGItPkdldE9uZSgnc2VsZWN0IGNvdW50KCopIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzJyk7CgkKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZGFzaF9yZWNvcmRfY291bnQnLCRyY291bnQpOwogIH0KCiAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKICAgIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CiAgICB9CgogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIGFycmF5KCk7CiAgfQoKICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCiAgewogICAgcmV0dXJuICIxLjExIjsKICB9CgogIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gIjEuMTUiOwogIH0KCiAgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkKCXsKCSAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZ2NoYXJ0c19pZCcsICcxJywgJHRoaXMtPkxhbmcoJ2hlbHBfZ2NoYXJ0c19pZCcpKTsKCX0KCiAgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKICB7CiAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgIAoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9nY2hhcnRzXC92aWV3XC8oP1A8Z2NoYXJ0c19pZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2RlZmF1bHQnKSk7ICAKCQoJJGdDbXMgPSBjbXNtcygpOwoJJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSRyZXR1cm5pZCA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwoJLy8gVGhlIHByZXZpb3VzIHRocmVlIGxpbmVzIGFyZSB0byBnZXQgYSByZXR1cm5pZDsgbWFueSBtb2R1bGVzLCBsaWtlIE5ld3MsIGhhdmUgYSBkZWZhdWx0CgkvLyBwYWdlIGluIHdoaWNoIHRvIGRpc3BsYXkgZGV0YWlsIHZpZXdzLiBJbiB0aGF0IGNhc2UsIHRoZSBwYWdlX2lkIHdvdWxkIGJlIHVzZWQgZm9yIHJldHVybmlkLgoJCgkvLyBUaGUgbmV4dCB0aHJlZSBsaW5lcyBhcmUgd2hlcmUgd2UgbWFwIHRoZSBVUkwgdG8gb3VyIGRldGFpbCBwYWdlLgoJJHBhcm1zID0gYXJyYXkoJ2FjdGlvbic9PidkZWZhdWx0JywnZ2NoYXJ0c19pZCc9PjEsJ3JldHVybmlkJz0+JHJldHVybmlkKTsKCSRyb3V0ZSA9IG5ldyBDbXNSb3V0ZSgndGhpcy9pcy9pbnNhbmVseS9ncmVhdC9zdHVmZicsJHRoaXMtPkdldE5hbWUoKSwkcGFybXMsVFJVRSk7CgljbXNfcm91dGVfbWFuYWdlcjo6cmVnaXN0ZXIoJHJvdXRlKTsKCQogIAogICAvLyBEb24ndCBhbGxvdyBwYXJhbWV0ZXJzIG90aGVyIHRoYW4gdGhlIG9uZXMgeW91J3ZlIGV4cGxpY2l0bHkgZGVmaW5lZAogICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgCiAgIC8vIHN5bnRheCBmb3IgY3JlYXRpbmcgYSBwYXJhbWV0ZXIgaXMgcGFyYW1ldGVyIG5hbWUsIGRlZmF1bHQgdmFsdWUsIGRlc2NyaXB0aW9uCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2djaGFydHNfaWQnLCAtMSwgJHRoaXMtPkxhbmcoJ2hlbHBfZ2NoYXJ0c19pZCcpKTsKCiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdnY2hhcnRzX2lkJyxDTEVBTl9JTlQpOwoKICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbW9kdWxlX21lc3NhZ2UnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX21vZHVsZV9tZXNzYWdlJykpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbW9kdWxlX21lc3NhZ2UnLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCduYW1lJywnJywkdGhpcy0+TGFuZygnaGVscF9kZXNjcmlwdGlvbicpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25hbWUnLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjb250ZW50JywnJywkdGhpcy0+TGFuZygnaGVscF9leHBsYW5hdGlvbicpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NvbnRlbnQnLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdsb2NhdGlvbicsJycsJHRoaXMtPkxhbmcoJ2hlbHBfZXhwbGFuYXRpb24nKSk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdsb2NhdGlvbicsQ0xFQU5fU1RSSU5HKTsKCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2F1dGhvcicsJycsJHRoaXMtPkxhbmcoJ2hlbHBfYXV0aG9yJykpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYXV0aG9yJyxDTEVBTl9TVFJJTkcpOwoKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhbmNlbCcsQ0xFQU5fU1RSSU5HKTsKCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRieScsICdkb2N1bWVudF9kYXRlJywgJHRoaXMtPmxhbmcoJ2hlbHBzb3J0YnknKSk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0YnknLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzb3J0ZGVzYycsICd0cnVlJywgJHRoaXMtPmxhbmcoJ2hlbHBzb3J0ZGVzYycpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnRkZXNjJyxDTEVBTl9TVFJJTkcpOwoKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Bvc3RkYXRlJyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfSG91cicsQ0xFQU5fU1RSSU5HKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Bvc3RkYXRlX01pbnV0ZScsQ0xFQU5fU1RSSU5HKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Bvc3RkYXRlX1NlY29uZCcsQ0xFQU5fU1RSSU5HKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Bvc3RkYXRlX01vbnRoJyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfRGF5JyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfWWVhcicsQ0xFQU5fU1RSSU5HKTsKCiAgCiAgfQoKICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uICggJGV2ZW50bmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycuJGV2ZW50bmFtZSApOwogIH0KCiAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwICggJGV2ZW50bmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycuJGV2ZW50bmFtZSApOwogIH0KCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgfQoKICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CiAgfQoKICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICB9CgoKCWZ1bmN0aW9uIFNlYXJjaFJlc3VsdCgkcmV0dXJuaWQsICRhcnRpY2xlaWQsICRhdHRyID0gJycpIHsKCQkkZG9jdW1lbnRpZCA9ICRwYXJhbXNbJ2djaGFydHNfaWQnXTsNCgkJaWYgKCFlbXB0eSgkY2hhcnRpZCkpICRyZXR1cm5pZCA9ICRjaGFydGlkOw0KCQkkcmVzdWx0ID0gYXJyYXkoKTsNCgkJaWYgKCRhdHRyID09ICdnY2hhcnRzJykgew0KCQkJJGRiICA9IGNtc21zKCktPkdldERiKCk7DQoJCQkkcSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2djaGFydHMgV0hFUkUgZ2NoYXJ0c19pZCA9ID8nOw0KCQkJJHJvdyA9ICRkYi0+R2V0Um93KCRxLCBhcnJheSgkYXJ0aWNsZWlkKSApOw0KCQkJaWYgKCRyb3cpIHsNCgkJCQkkcmVzdWx0WzBdID0gdXRmOF9lbmNvZGUoaHRtbF9lbnRpdHlfZGVjb2RlKCR0aGlzLT5HZXRGcmllbmRseU5hbWUoKSkpOw0KCQkJCSRyZXN1bHRbMV0gPSAkcm93WyduYW1lJ107CgkJCQkkcHJldHR5dXJsID0gJ3VwbG9hZHMvZ2NoYXJ0cy9pZCcuJHJvd1snZ2NoYXJ0c19pZCddLicvJy4kcm93Wydsb2NhdGlvbiddOwoJCQkJJHJlc3VsdFsyXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCdjbnRudDAxJywgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRyb3dbJ25hbWUnXSwgDQoJCQkJICAgICAgIGFycmF5KCdnY2hhcnRzX2lkJyA9PiAkcm93WydnY2hhcnRzX2lkJ10pLA0KCQkJCSAgICAgICAnJywgdHJ1ZSwgdHJ1ZSwgJycsIHRydWUsICRwcmV0dHl1cmwpOw0KCQkJfQ0KCQl9DQoJCXJldHVybiAkcmVzdWx0Ow0KCX0KCgoJZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkgewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0cyBPUkRFUiBCWSBnY2hhcnRzX2lkJzsKCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoJCXdoaWxlICgkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0YpIHsKCQkJJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldG5hbWUoKSwgJHJlc3VsdC0+ZmllbGRzWydnY2hhcnRzX2lkJ10sICdnY2hhcnRzJywgJHJlc3VsdC0+ZmllbGRzWydjb250ZW50J10sIE5VTEwpOwoJCQkkcmVzdWx0LT5Nb3ZlTmV4dCgpOwoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gRG9BY3Rpb24gKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybl9pZCA9IC0xKSB7CgkJc3dpdGNoICgkYWN0aW9uKSB7CQoJCQljYXNlICd1cGRhdGV0ZW1wbGF0ZSc6IHsKCQkJCS8vIGNoZWNrIHBlcm1pc3Npb25zIGFnYWluCgkJCQlpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01vZGlmeSBUZW1wbGF0ZXMnKSkgewoJCQkJCWlmIChpc3NldCAoJHBhcmFtc1snZGVmYXVsdGJ1dHRvbiddKSkgewoJCQkJCQkkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9nY2hhcnRzX2xpc3QudHBsJzsKCQkJCQkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CgkJCQkJCQkkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCQkJCQkJCSR0aGlzLT5TZXRUZW1wbGF0ZSggJ2RldGFpbFNhbXBsZScsICR0ZW1wbGF0ZSk7CgkJCQkJCX0KCQkJCQl9IGVsc2UgewoJCQkJCQkkdGhpcy0+U2V0VGVtcGxhdGUgKCdkZXRhaWxTYW1wbGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CgkJCQkJfQoJICAJCQkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAndGVtcGxhdGV1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsKCSAgCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJCQkJfQoJCQl9CgoJCQlkZWZhdWx0OgoJCQkJcGFyZW50OjpEb0FjdGlvbiggJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkICk7CgkJCQlicmVhazsKCQl9Cgl9CgoKCgp9IC8vZW5kIGNsYXNzCj8+]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPcAAOmemESG9vnGPoTQr0GE+UKC8oLLp+Pt/0WF8v3txOXo7803Lcja+YLLqk+N+ESG+d5IPvvIQeyinoPOremenP75+eeem4HIpf3081CL8Pzx8N7z6UGE9+fo7/nh3tfw5drv5sgmGwymXrDdxlCM9FCM8lGL7f3OU/zNUfvMT/3KRv3KRfzJQ/fIR0aD6kKC7/fHQ0OC7O6im+ygmYPOq+qel4LJpsoqHwCcT0CE+0WE7wCSRtIyJwCQRM0tIgCeUdk4Ldc2KwCXSgCVSACPQwCLP/T4/vT3/vf//1GL60OB6v7////58v+aK/+bLf+ZK06J6//38PfGQePv//+TH++jnP778+jw/f/46Pb//0+N9//y5PbCNP745//69VGL7v3+/9hCOAaYUv/89EKC8ACPSInLqgaXUOrx/fjFO8zd+eXu/txGO/no6e2joA+QSv2YLPDy5souI/D480+K69rx5/348ez59f746O/x5gCQSQOSS/D59QieV0+M9oTPrv3///2ZLITQrEOB6wCJPgOTTASUTvzy8VyS7Prm5fz19tM9MvDAvf+ZLNjx6OXw//bBMffISEeE6vvo59pEOf3uyPzz8kB/6vfKTwmUT8wzKddBNtE7MdBDOtU/NH/Ho8wrIAukXAWMQ885L7TfygCHO/f8+sw1K/HEwUGD9PX3/s48Mu348xKYVgmgWEGA6vnm5+H06gCIPPfDOPbDOvjJSfnj4fD49AebUwqiWgCMQVWO6wCbToPNqdo5Lvj17AecVUaD7eqjnPrHQUOH/YTJp4TPq/+UIIDHpIDIp+abls8vJP7LR//NTPz9/9AvJEOH+91HPf/y5fvIRPfEO/bEPACYS//46eabmP/46v7LStg3LO2hmumblITKqkKD8+ihnOqgneuhnoXRrv3NUvvLTdXw5dXw5tM0KPbDN/rLTPfHROmclemdlvji4fni4NEwJdEwJtU0KdY1Kk+N9kqG6kSC6kGE9eWZlACZTACaTPyYLA2oX//48f+aLP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowODc5OTI1RjQ0N0UxMUUzQjk2NERGOTIyRERFQURCMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowODc5OTI2MDQ0N0UxMUUzQjk2NERGOTIyRERFQURCMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4Nzk5MjVENDQ3RTExRTNCOTY0REY5MjJEREVBREIzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA4Nzk5MjVFNDQ3RTExRTNCOTY0REY5MjJEREVBREIzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAAAAAAAsAAAAACAAIAAACP8Ajz3xR7CgwYMIEz6h0mRLv4cQI0qcSFFaE39e/mncyLGjx49eCPb7SLIkx34iTar8iNLfyCVGjsg0smQlyZYjVSGCkgQKIlU2WaY8AuWSkktQjgT1iPPfkSRKXChJonSlqTm3bs0x9a/p00EuBpmoqtLMm1at3pjpmtLIlxg6XnwxUuGQJUuHKnz8VKpMmVKf2Lr8ZyQDGQRkMiARdqpTp1PgPl4gtGcPoQuCRxoh8Q3BNxJIuoXQpCkEvo82dBkypMtGZsIkUgW45wdJuxsLFtxQ9tFADzFidhh4bYQehwcctCCp4YMTJx8A/o2xQn3Mv15DgAEb0ou4AwLQcjj/QDIDnidP8cL9wyRlnRRM//5Yc+UqHw3vBIiJRyIDXZgw8ojzjxSQcAGJFP8MwEsooeAgCHFaEPAAAQ5kUcU2bLCxjRv/tDALNbO08M84OIjAzw/jEOcHBwEkZyEQEEDgC4fqCDCMAOqMWKIIPzzY1GaypULCi9HIyGEKLKjAAgrx6ZNLLrwYQ1wJnRVQAn/zUEJJEBL8Q44KzTBzwj8TCNFHH0Lc92MGL8SlGDc8bLIJOuqhsII2K4w5wQ644CLca0eYEEMwMZhA3jKLLPIMBf+UE8E0EaTwTwNEnHEGEcN5BZVUSSwHyiijgGLBP7WkIUAatUxaRCGFFIGZV3S87GLPK3QgwU4Ip5wSAjb/wMBFOlzA8E8ysuihhyzIALqLJPVIsgsSAMixyipyjBoJLdXQEsk/3oiSSSaiFPOaM2owYK4agLzDCCqoMOLOP5UkIG8l/4AwAimkjADCa2CgccW/aCyBQSKTTJIIBv9cg8XC2fzDxwaxxLIBH/yuccDFayyhgQe22OKBBv/g0cXIePzDygd11PEBK4JlBMgjU8T8yBKKwNJGG7Ao8tEd5jjiyDl3/BNSQ/3Y0YECSCtgRz9RNB3FQ0xEHXU/v+QRRxx5/NLPFk1QMVAjgcABxz6BNJJQQk6k7QRBCwUEADs=]]></data>
	</file>
	<file>
	  <filename>/images/icon@2x.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQABAAPcAAPbDOOPt/OPt/kSF9USG+OPt/QqhWUSF9ESG99rx5kWE8ESG9kaD60WF8kSG+UWE7/nj4UaD7NA6MNrw5c44LttFOv+THwmfV9lDOAaZUvfEOkOG+vzJRdxGO/rIQtI8MkWF80WE7tdBN/jh4PjFPQidVtU/NQebVAmgWEWE7aPXvtrv5LzS9/746EWE8f724vji4OLy6kWF8fno59nv5O22s/zpt//35NpEOQqiWtQ+M/734/zKRwSTTUaE7drw5gaYUQSUTdM9M/nHQPnGPwWVT/vJRM85LwOSTPvIQwWWT/7MStE7MddBNgaXUffEO/rj4vjFPN5IPd1HPPni4f734gulXQicVf3LSdZANQeaU//349pEOgukXNQ+NPrk4v3LSAukWwieVvzKRtvy59lDOdhCOPji4QSUTvrHQQulXESF9v6THwecVAWWUAebU9ZANkOH/AujW9hCN0OH+wqjWv3KRwynXtxGPPnHP/nj4v3KSAWXUNU/NP+UHwWVTvvJRQmfWPjGPQaXUNvx5+Pt/wymXgqjWwOSSwymXQidVdI8MQeaUt9JPvrHQASTTP7MTNA6L0aE7AynX/2TIPnGPtM9Mtrx5885LkOH/f6TIAmeVwicVP2TIffEOdrv5Q2pYASVTgmhWeBKP9E7MPrIQf7MSwSSTP/NTfbEOQmgWd1HPQieV844Lc03LQORS0aD6v+THv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowODc5OTI1QjQ0N0UxMUUzQjk2NERGOTIyRERFQURCMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowODc5OTI1QzQ0N0UxMUUzQjk2NERGOTIyRERFQURCMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4Nzk5MjU5NDQ3RTExRTNCOTY0REY5MjJEREVBREIzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA4Nzk5MjVBNDQ3RTExRTNCOTY0REY5MjJEREVBREIzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAAAAAAAsAAAAAEAAQAAACP8A/cQaSLCgwYMIEypcmFAgw4cQIz60EEuWxYsYM2rcyLGjx4wOK34cSbJkR4oDTapcORKlSJYwY8pyKbPmyoI2c5LEqbMnR54+g14EKjQo0aI9j8qCxbSpU6Q7CWp0ShUW1JFKqz696jGrVqZcu0rN+BVs2J9jMZa1enajV1gM4jJoKvSV3bt4MyqNG6Gv37h18QrWm/ZiBEk+fKRYnFhSYMF3CafMmCKE5QeYLYd4DPmV5JcXQ2BWQJo05ouuUqterbJzZIxKSbtwIaP2bAWoV+tufRcREkSvhxa2SLuB8eMNZOTWrVolkkc9egSZHv3RZ43GQYA4wF17g+XMXan/RIPmT5EiSs7/QXM94/YDA+LH5w6euUolbvgMcsJ/EB83hFGkEXwDLGCggfGhRsGCDDKokhNAZCDhhBkA0R5GA6yxAAIEdIjAAmtcdMQREpRoogRHqJSBFm+c4KKLWmhx4UUDIMChAzgS8OFFpDDBxAdAAumjSm+0cYUiJSSpyBVtzGjRhgQ4sMGUDuh40QeWCCGEDlxqaclFAIQp5pgXXVGCGBekmaYYJTgpywJRbkBHHHRsUOVFOnjRhwl88tmHF2COKehFaKIgigGIqoLCBW7euEEcmcRhJwEXmZAFHE2IoGkTcGQRqKBiXnQBCgbkcIgch+RgAApuwinlnHXe/2kRHCLMYQYGuJoxhwifggrARaTW0YUaVqgRRh0GtOoolVZaNAcGZeBQQQVc4FAGBhelosG2GjzBrQYXlRqGFYbcYYgVYeTgZo0d4ljljhZhIG0HHeBBbwU4XBRFFCT06y8JUYQrbCKTgDJJIl2oC9twsmRoY4c6IhCiRWVU0MEUUmQ8RQdcXFQJEUTkMcTIeYAcbg7j3mEuugoLNxlGBBr44QIJWjTvKo2M0sjGFVzkSBoeBC10KWkAa8AhwxbbBbJuvifffAdcVPHFGUuxcccWeZCEEYBw4LURRiQhKqk5yGG2qqwu/PJFDWjH3dsgfBfvvHhMYS++FxnBwRg82P+xhx08jMEBoaMiaviiAYJGnAzZeZfcRc/iwMW01OKArUUc8AAGFkt0jgUYPJRZwiYXBGL6Bay0qbbisshGm20u4GZRprdCmyuvFo1hB+eQoALJEliEbtEJnJh5ZpJMJq7RaKWZ9kClmGq6aROeYq4556YAD/pFK7Z4QhsuviHj6hpVJhpmD2iGpxd8ZuG+CX/mvTcPe4CxR+CDWwREhBkwogUjErIQ+TISgcQs5oCJuZKWuOSFLgnhIlrjmtc4AIiwXQQ/+9kfEJzwH+VlhC9++ctFfLSIIAFpEUzwGdC0loQkBK1oFikPepRAw/OEwk1NkUtczCKLI0TiRCaKhMf/QjayIprMIqeIznSWGB0cluUirVgQJkZ0BAdZZF/9EoQW+xUwi9wFCWAEo12c+JX67MYintjWE9a4xm1dxDVjHKBanmiR8DTHIr4KlRfhSEatmJE1eMzjr/bomj5W5Y93lIUgBykLOHpGjhdhgSQnScmL1OCSmMzkRWzAyU568iIqCKUoR+mmAJjylKi8yAhWycpWXuQFsIylLC9Cg1ra8palRKUuLwKDM5yBCsAEpi8vsoNibuGYxyzmRT4xgWY605kexEgBpknNal4EAtjUAxS2qQdsXmQLNwinOMV5kR/8IAHoTGcCfhDNiwjgnfCM5zW3+YV61hMKerhIFfZZgMxi7rMKF0EnIchAUIISIgHttEg8C8FQeF6ECtiMqEQv0oKKWvSiAU3nJQhxiXQmVBbxDKkAVAmDkprUpCpxpjlX2kw3VfOlBbjIDGZK05qqZAU4zalOc6nLUwolBkANqlB52tMAtMUtC7EAG5bKBk1QghKdkIhUp0rVqlrVIAEBADs=]]></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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dDaGFydHMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdCZSBzdXJlIHRvIHNldCAiVXNlIEdDaGFydHMiIHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1NvcnJ5LCBpdFwncyBub3QgeW91LCBpdFwncyBtZS4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1JlYWxseT8gWW91XCdyZSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIHN1cGVyIGZpbmUgbW9kdWxlPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2FwcHJvdmUnXSA9ICdTZXQgU3RhdHVzIHRvIFwnRW5hYmxlZFwnJzsKJGxhbmdbJ3JldmVydCddID0gJ1NldCBTdGF0dXMgdG8gXCdEaXNhYmxlZFwnJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NhdmUnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2FkZGNoYXJ0J10gPSAnQWRkIGNoYXJ0JzsKJGxhbmdbJ2NoYXJ0cyddID0gJ0NoYXJ0cyc7CiRsYW5nWydjaGFydCddID0gJ0NoYXJ0JzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpc2hlZCc7CiRsYW5nWydkcmFmdCddID0gJ0RyYWZ0JzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzZWxlY3QnXSA9ICdTZWxlY3QnOwokbGFuZ1sncmVhc3NpZ25fY2F0ZWdvcnknXSA9ICdSZS1hc3NpZ24gY2F0ZWdvcnknOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRGVsZXRlIHNlbGVjdGVkJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gbmFtZSBnaXZlbic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZW11bHRpcGxlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgY2hhcnRzPyc7CiRsYW5nWydjaGFydGFkZGVkJ10gPSAnQ2hhcnQgYWRkZWQnOwokbGFuZ1snY2hhcnR1cGRhdGVkJ10gPSAnQ2hhcnQgdXBkYXRlZCc7CiRsYW5nWydpZCddID0gJ0NoYXJ0IElEJzsKJGxhbmdbJ25hbWUnXSA9ICdDaGFydCBUaXRsZSc7CiRsYW5nWydlbGVtZW50J10gPSAnQ29udGFpbmluZyBlbGVtZW50IElEJzsKJGxhbmdbJ2VuYWJsZUludGVyYWN0aXZpdHknXSA9ICdFbmFibGUgaW50ZXJhY3Rpdml0eSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NoYXJ0IGNhdGVnb3J5JzsKJGxhbmdbJ2djaGFydHNfZGF0YSddID0gJ0NoYXJ0IERhdGEnOwokbGFuZ1snYXhpc1RpdGxlc1Bvc2l0aW9uJ10gPSAnQXhpcyB0aXRsZXMgcG9zaXRpb24nOwokbGFuZ1snYmFja2dyb3VuZENvbG9yJ10gPSAnQmFja2dyb3VuZCBDb2xvcic7CiRsYW5nWydjdXJ2ZVR5cGUnXSA9ICdDdXJ2ZSB0eXBlJzsKJGxhbmdbJ2NoYXJ0QXJlYSddID0gJ0NoYXJ0IEFyZWEnOwokbGFuZ1snY29sb3JzJ10gPSAnQ29sb3JzJzsKJGxhbmdbJ2ZvY3VzVGFyZ2V0J10gPSAnRm9udCB0YXJnZXQnOwokbGFuZ1snZm9udFNpemUnXSA9ICdGb250IFNpemUnOwokbGFuZ1snZm9udE5hbWUnXSA9ICdGb250IE5hbWUnOwokbGFuZ1snaEF4ZXMnXSA9ICdoQXhlcyc7CiRsYW5nWydoQXhpcyddID0gJ2hBeGlzJzsKJGxhbmdbJ2hlaWdodCddID0gJ0hlaWdodCc7CiRsYW5nWydpbnRlcnBvbGF0ZWROdWxscyddID0gJ0ludGVycG9sYXRlZCBudWxscyc7CiRsYW5nWydpc1N0YWNrZWQnXSA9ICdJcyBzdGFja2VkJzsKJGxhbmdbJ2lzSHRtbCddID0gJ0lzIEhUTUwnOwokbGFuZ1snaXMzRCddID0gJ0lzIDNEJzsKJGxhbmdbJ2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWydsaW5lV2lkdGgnXSA9ICdMaW5lIHdpZHRoJzsKJGxhbmdbJ3NsaWNlcyddID0gJ1NsaWNlcyc7CiRsYW5nWydwaWVTbGljZUJvcmRlckNvbG9yJ10gPSAnUGllIFNsaWNlIEJvYXJkZXIgQ29sb3InOwokbGFuZ1sncGllU2xpY2VUZXh0J10gPSAnUGllIFNsaWNlIFRleHQnOwokbGFuZ1sncGllU2xpY2VUZXh0U3R5bGUnXSA9ICdQaWUgU2xpY2UgVGV4dCBTdHlsZSc7CiRsYW5nWydwb2ludFNpemUnXSA9ICdQb2ludCBzaXplJzsKJGxhbmdbJ3JldmVyc2VDYXRlZ29yaWVzJ10gPSAnUmV2ZXJzZSBDYXRlZ29yaWVzJzsKJGxhbmdbJ3NsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCddID0gJ1NsaWNlIFZpc2liaWxpdHkgVGhyZXNob2xkJzsKJGxhbmdbJ3BpZVJlc2lkdWVTbGljZUNvbG9yJ10gPSAnUGllIFJlc2lkdWUgU2xpY2UgQ29sb3InOwokbGFuZ1sncGllUmVzaWR1ZVNsaWNlTGFiZWwnXSA9ICdQaWUgUmVzaWR1ZSBTbGljZSBMYWJlbCc7CiRsYW5nWyd0aXRsZVBvc2l0aW9uJ10gPSAnVGl0bGUgcG9zaXRpb24nOwokbGFuZ1sndGl0bGUnXSA9ICdUaXRsZSc7CiRsYW5nWyd0aGVtZSddID0gJ1RoZW1lJzsKJGxhbmdbJ3NlcmllcyddID0gJ1Nlcmllcyc7CiRsYW5nWyd0aXRsZVRleHRTdHlsZSddID0gJ1RpdGxlIFRleHQgU3R5bGUnOwokbGFuZ1sndG9vbHRpcCddID0gJ1Rvb2x0aXAnOwokbGFuZ1sndkF4ZXMnXSA9ICd2QXhlcyc7CiRsYW5nWyd2QXhpcyddID0gJ3ZBeGlzJzsKJGxhbmdbJ3dpZHRoJ10gPSAnV2lkdGgnOwokbGFuZ1snYWdncmVnYXRpb25UYXJnZXQnXSA9ICdBZ2dyZWdhdGlvbiBUYXJnZXQnOwokbGFuZ1snZ3JvdXBXaWR0aCddID0gJ0dyb3VwIFdpZHRoJzsKJGxhbmdbJ2RhdGFPcGFjaXR5J10gPSAnRGF0YSBPcGFjaXR5JzsKJGxhbmdbJ2F2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMnXSA9ICdBdm9pZCBPdmVybGFwcGluZyBHcmlkIExpbmVzJzsKJGxhbmdbJ3RpbWVsaW5lJ10gPSAnVGltZWxpbmUnOwokbGFuZ1snZXJyb3Jfbm9jaGFydHNzZWxlY3RlZCddID0gJ05vIENoYXJ0cyBXZXJlIFNlbGVjdGVkJzsKCiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZT8nOwokbGFuZ1snZGFzaF9yZWNvcmRfY291bnQnXSA9ICdUaGlzIG1vZHVsZSBoYW5kbGVzICVzIGRvY3VtZW50cyc7CiRsYW5nWydhbGVydF9ub19yZWNvcmRzJ10gPSAnVGhlcmUgaGF2ZSBub3QgYmVlbiBhbnkgZG9jdW1lbnRzIGFkZGVkIGluIHRoZSBHQ2hhcnRzIG1vZHVsZSEnOwokbGFuZ1snaGVscF9nY2hhcnRzX2lkJ10gPSAnSW50ZXJuYWxseSBpZGVudGlmaWVyIGZvciBzZWxlY3RpbmcgZG9jdW1lbnRzJzsKJGxhbmdbJ2hlbHBfZGVzY3JpcHRpb24nXSA9ICdJbnRlcm5hbCBwYXJhbWV0ZXIgdXNlZCB0byBwYXNzIGRlc2NyaXB0aW9uIGluZm8gd2hlbiBjcmVhdGluZyBvciBlZGl0aW5nIGEgZG9jdW1lbnQnOwokbGFuZ1snaGVscF9leHBsYW5hdGlvbiddID0gJ0ludGVybmFsIHBhcmFtZXRlciB1c2VkIHRvIHBhc3MgZXhwbGFuYXRpb24gaW5mbyB3aGVuIGNyZWF0aW5nIG9yIGVkaXRpbmcgYSBkb2N1bWVudCc7CiRsYW5nWydoZWxwX21vZHVsZV9tZXNzYWdlJ10gPSAnSW50ZXJuYWxseSB1c2VkIHBhcmFtZXRlciBmb3IgcGFzc2luZyBtZXNzYWdlcyB0byB1c2VyJzsKJGxhbmdbJ2hlbHBfZ2NoYXJ0c19pZCddID0gJ0lEIG9mIHRoZSBjaGFydCB5b3Ugd2FudCB0byBkaXNwbGF5Lic7CgokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdUaGlzIG1vZHVsZSBhZGQgR29vZ2xlIENoYXJ0cyB0byB5b3VyIHdlYnNpdGUuJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpb24gMS4wIDggSnVseSAyMDEzLiBJbml0aWFsIFJlbGVhc2UuPC9saT4KPGxpPlZlcnNpb24gMS4xIDE1IEp1bHkgMjAxMy4gTXVsdGlwbGUgYnVnIGZpeGVzLjwvbGk+CjxsaT5WZXJzaW9uIDEuMiAxNCBOb3ZlbWJlciAyMDEzLiBBZGRlZCBjb2x1bW4gY2hhcnRzIG9wdGlvbiBwbHVzIG1hbnkgYnVnIGZpeGVzLjwvbGk+CjxsaT5WZXJzaW9uIDEuMyA1IERlY2VtYmVyIDIwMTMuIEFkZGVkIEhpc3RvZ3JhbSBhbmQgVGltZWxpbmUgY2hhcnQgb3B0aW9ucyBwbHVzIG1pbm9yIGJ1ZyBmaXhlcyBhbmQgY29kZSB0aWR5aW5nIHVwLjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxsb3dzIGZvciB0aGUgYWRkaXRpb24gb2YgR29vZ2xlIENoYXJ0cyB0byB5b3VyIHdlYnNpdGUuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+U2ltcGx5IHBsYWNlIHRoZSBtb2R1bGUgY2FsbCBiZWZvcmUgeW91ciBjbG9zaW5nIGJvZHkgdGFnIHdpdGggdGhlIElEIG9mIHRoZSBjaGFydCB5b3Ugd2FudCB0byBkaXNwbGF5IDxjb2RlPntHQ2hhcnRzIGdjaGFydHNfaWQ9XCcxXCd9PC9jb2RlPiwgZGF0YSBmaWVsZCBhY2NlcHRzIHNtYXJ0eSB2YXJpYWJsZXMuPC9wPgo8cD5Gb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYXMgdG8gd2hhdCB2YWx1ZXMgZWFjaCBwYXJhbWV0ZXIgdGFrZXMgbG9vayBhdCB0aGUgR29vZ2xlIENoYXJ0cyBkb2N1bWVudGF0aW9uIDxhIGhyZWY9Imh0dHBzOi8vZ29vZ2xlLWRldmVsb3BlcnMuYXBwc3BvdC5jb20vY2hhcnQvIj5odHRwczovL2dvb2dsZS1kZXZlbG9wZXJzLmFwcHNwb3QuY29tL2NoYXJ0LzwvYT48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBNb2R1bGUgRm9yZ2UKPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nY2hhcnRzLyI+R0NoYXJ0cyBQYWdlPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBvbGl2ZXJzZWRkb24sIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgCjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEzLCBPbGl2ZXIgU2VkZG9uIDxhIGhyZWY9Im1haWx0bzpvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrIj4mbHQ7b2xpdmVyQHRocmVlZm9sZC5jby51ayZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+Cic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.gcharts_admin_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNCBieSBUZWQgS3VscCAod2lzaHlAdXNlcnMuc2YubmV0KQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKI2l0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiN0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiNidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KI1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiNhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQojCiMkSWQ6IEdDaGFydHMubW9kdWxlLnBocCAyMTE0IDIwMDUtMTEtMDQgMjE6NTE6MTNaIHdpc2h5ICQKCmNsYXNzIGdjaGFydHNfYWRtaW5fb3BzCnsKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZV9jaGFydCgkY2hhcnRpZCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIC8vTm93IHJlbW92ZSB0aGUgY2hhcnQKICAgICRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHMgV0hFUkUgZ2NoYXJ0c19pZCA9ID8iOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNoYXJ0aWQpKTsKCiAgICAvLyBkZWxldGUgYW55IGZpbGVzLi4uCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnOwogICAgJHAgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdnY2hhcnRzJywnaWQnLiRjaGFydGlkKTsKICAgIGlmKCBpc19kaXIoJHApICkKICAgICAgewoJcmVjdXJzaXZlX2RlbGV0ZSgkcCk7CiAgICAgIH0KCiAgICBnY2hhcnRzX2FkbWluX29wczo6ZGVsZXRlX3N0YXRpY19yb3V0ZSgkY2hhcnRpZCk7CiAgICAKICAgIC8vVXBkYXRlIHNlYXJjaCBpbmRleAogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnR0NoYXJ0cycpOwogICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU2VhcmNoJyk7CiAgICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkKICAgICAgewoJJG1vZHVsZS0+RGVsZXRlV29yZHMoJG1vZC0+R2V0TmFtZSgpLCAkY2hhcnRpZCwgJ2NoYXJ0Jyk7CiAgICAgIH0KICAgIAogICAgQCRtb2QtPlNlbmRFdmVudCgnR0NoYXJ0c0NoYXJ0RGVsZXRlZCcsIGFycmF5KCdnY2hhcnRzX2lkJyA9PiAkY2hhcnRpZCkpOwoJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCglhdWRpdCgkY2hhcnRpZCwgJ0dDaGFydHM6ICcuJGNoYXJ0aWQsICdDaGFydCBkZWxldGVkJyk7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBoYW5kbGVfdXBsb2FkKCRpdGVtaWQsJGZpZWxkbmFtZSwmJGVycm9yKQogIHsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCSAgCiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdHQ2hhcnRzJyk7CiAgICAkcCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2djaGFydHMnKTsKICAgIGlmICghaXNfZGlyKCRwKSkgewogICAgICAkcmVzID0gQG1rZGlyKCRwKTsKICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkKCXsKCSAgJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfbWtkaXInLCRwKTsKCSAgcmV0dXJuIEZBTFNFOwoJfQogICAgfQoKICAgICRwID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnZ2NoYXJ0cycsJ2lkJy4kaXRlbWlkKTsKICAgIGlmICghaXNfZGlyKCRwKSkgewogICAgICBpZiggQG1rZGlyKCRwKSA9PT0gRkFMU0UgKQoJewoJICAkZXJyb3IgPSAkbW9kLT5MYW5nKCdlcnJvcl9ta2RpcicsJHApOwoJICByZXR1cm4gRkFMU0U7Cgl9CiAgICB9CgogICAgaWYoICRfRklMRVNbJGZpZWxkbmFtZV1bJ3NpemUnXSA+ICRjb25maWdbJ21heF91cGxvYWRfc2l6ZSddICkKICAgICAgewoJJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfZmlsZXNpemUnKTsKCXJldHVybiBGQUxTRTsKICAgICAgfQoKICAgICRmaWxlbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbJGZpZWxkbmFtZV1bJ25hbWUnXSk7CiAgICAkZGVzdCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2djaGFydHMnLCdpZCcuJGl0ZW1pZCwkZmlsZW5hbWUpOwoKICAgIC8vIEdldCB0aGUgZmlsZXMgZXh0ZW5zaW9uCiAgICAkZXh0ID0gc3Vic3RyKHN0cnJjaHIoJGZpbGVuYW1lLCAnLicpLCAxKTsKCiAgICAvLyBjb21wYXJlIGl0IGFnYWluc3QgdGhlICdhbGxvd2VkIGV4dGVudGlvbnMnCiAgICAkZXh0cyA9IGV4cGxvZGUoJywnLCRtb2QtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfdXBsb2FkX3R5cGVzJywnJykpOwogICAgaWYoICFpbl9hcnJheSggJGV4dCwgJGV4dHMgKSApIAogICAgICB7CgkkZXJyb3IgPSAkbW9kLT5MYW5nKCdlcnJvcl9pbnZhbGlkZmlsZXR5cGUnKTsKCXJldHVybiBGQUxTRTsKICAgICAgfQoKICAgIGlmKCBAY21zX21vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyRmaWVsZG5hbWVdWyd0bXBfbmFtZSddLCAkZGVzdCkgPT09IEZBTFNFICkKICAgICAgewoJJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfbW92ZWZpbGUnLCRkZXN0KTsKCXJldHVybiBGQUxTRTsKICAgICAgfQoKICAgIHJldHVybiAkZmlsZW5hbWU7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBBZG1pbkNyZWF0ZVRlbXBsYXRlTGlzdCggJGlkLCAkcmV0dXJuaWQsICRwcmVmaXgsICRkZWZhdWx0dGVtcGxhdGVwcmVmLCAKCQkJCQkJICAkYWN0aXZlX3RhYiwgJGRlZmF1bHRwcmVmbmFtZSwgJG5hbWUgKQogIHsKICAgIC8vIHdlJ3JlIGdvbm5hIGFsbG93IG11bHRpcGxlIHRlbXBsYXRlcyBoZXJlCiAgICAvLyBidXQgd2UncmUgZ29ubmEgcHJlZml4IHRoZW0gYWxsIHdpdGggc29tZXRoaW5nCiAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdHQ2hhcnRzJyk7CiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAKICAgICRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOwogICAgJHRydWVpbWFnZTEgPSAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywnZGVmYXVsdCcsJycsJycsJ3N5c3RlbWljb24nKTsKICAgICRhbGx0ZW1wbGF0ZXMgPSAkbW9kLT5MaXN0VGVtcGxhdGVzKCk7CiAgICAkcm93YXJyYXkgPSBhcnJheSgpOwogICAgJHJvd2NsYXNzID0gJ3JvdzEnOwogICAgZm9yZWFjaCggJGFsbHRlbXBsYXRlcyBhcyAkb25ldGVtcGxhdGUgKQogICAgICB7CglpZiggIXByZWdfbWF0Y2goIi9eJHByZWZpeC8iLCAkb25ldGVtcGxhdGUgKSApCgkgIHsKCSAgICBjb250aW51ZTsKCSAgfQoJCgkkdG1wID0gc3Vic3RyKCRvbmV0ZW1wbGF0ZSxzdHJsZW4oJHByZWZpeCkpOwoJJHJvdyA9IG5ldyBTdGRDbGFzcygpOwoJJHJvdy0+bmFtZSA9ICRtb2QtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwKCQkJCSAgICAgICAkdG1wLCBhcnJheSgndGVtcGxhdGUnID0+ICR0bXAsCgkJCQkJCSAgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJICAgJ25hbWUnPT4kbmFtZSwKCQkJCQkJICAgJ3ByZWZpeCc9PiRwcmVmaXgsCgkJCQkJCSAgICdtb2RlJz0+J2VkaXQnKSk7Cgkkcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCgkkZGVmYXVsdCA9ICgkbW9kLT5HZXRQcmVmZXJlbmNlKCRkZWZhdWx0cHJlZm5hbWUpID09ICR0bXApID8gdHJ1ZSA6IGZhbHNlOwoJaWYoICRkZWZhdWx0ICkKCSAgewoJICAgICRyb3ctPmRlZmF1bHQgPSAkdHJ1ZWltYWdlMTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJvdy0+ZGVmYXVsdCA9ICRtb2QtPkNyZWF0ZUxpbmsoICRpZCwgJ21ha2VkZWZhdWx0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkJICAgICAgJGZhbHNlaW1hZ2UxLAoJCQkJCSAgICAgIGFycmF5KCd0ZW1wbGF0ZSc9PiR0bXAsCgkJCQkJCSAgICAnZGVmYXVsdHByZWZuYW1lJz0+JGRlZmF1bHRwcmVmbmFtZSwKCQkJCQkJICAgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYikpOwoJICB9CgoJJHJvdy0+ZWRpdGxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkJICAgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT4KCQkJCQkgICBEaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLAoJCQkJCQkJICRtb2QtPkxhbmcgKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkgICBhcnJheSAoJ3RlbXBsYXRlJyA9PiAkdG1wLAoJCQkJCQkgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJICAncHJlZml4Jz0+JHByZWZpeCwKCQkJCQkJICAnbmFtZSc9PiRuYW1lLAoJCQkJCQkgICdtb2RlJz0+J2VkaXQnKSk7CgkKCSR0bXAgPSAkcHJlZml4LiJkZWZhdWx0IjsKCWlmKCAoJG9uZXRlbXBsYXRlID09ICR0bXApIHx8ICRkZWZhdWx0ICkKCSAgewoJICAgICRyb3ctPmRlbGV0ZWxpbmsgPSAnJm5ic3A7JzsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJvdy0+ZGVsZXRlbGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoICRpZCwgJ2RlbGV0ZXRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCQkgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT4KCQkJCQkJIERpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJCSAgICAgICAkbW9kLT5MYW5nICgnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkJIGFycmF5ICgndGVtcGxhdGUnID0+ICRvbmV0ZW1wbGF0ZSksCgkJCQkJCSAkbW9kLT5MYW5nICgnYXJleW91c3VyZScpKTsKCSAgfQoJCglhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOwoJKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOwogICAgICB9CiAgICAKICAgICRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkgKTsKICAgICRzbWFydHktPmFzc2lnbignbmFtZXByb21wdCcsICRtb2QtPkxhbmcoJ3Byb21wdF9uYW1lJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0cHJvbXB0JywgJG1vZC0+TGFuZygncHJvbXB0X2RlZmF1bHQnKSk7CgogICAgJHNtYXJ0eS0+YXNzaWduKCduZXd0ZW1wbGF0ZWxpbmsnLAoJCSAgICAkbW9kLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkgICAgICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkbW9kLT5MYW5nKCdwcm9tcHRfbmV3dGVtcGxhdGUnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJICAgICAgYXJyYXkoJ3ByZWZpeCcgPT4gJHByZWZpeCwKCQkJCQkgICAgJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLAoJCQkJCSAgICAnbmFtZSc9PiRuYW1lLAoJCQkJCSAgICAnbW9kZScgPT4gJ2FkZCcsCgkJCQkJICAgICdkZWZhdWx0dGVtcGxhdGVwcmVmJyA9PiAkZGVmYXVsdHRlbXBsYXRlcHJlZiksCgkJCQkgICAgICAnJywgZmFsc2UsIGZhbHNlLCAnJykuJyAnLgoKCQkgICAgJG1vZC0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJICAgICAgJG1vZC0+TGFuZygncHJvbXB0X25ld3RlbXBsYXRlJyksCgkJCQkgICAgICBhcnJheSgncHJlZml4JyA9PiAkcHJlZml4LAoJCQkJCSAgICAnYWN0aXZlX3RhYicgPT4gJGFjdGl2ZV90YWIsCgkJCQkJICAgICduYW1lJz0+JG5hbWUsCgkJCQkJICAgICdtb2RlJyA9PiAnYWRkJywKCQkJCQkgICAgJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnID0+ICRkZWZhdWx0dGVtcGxhdGVwcmVmCgkJCQkJICAgICkpKTsKICAgICRzbWFydHktPmFzc2lnbigkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgZWNobyAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXR0ZW1wbGF0ZXMudHBsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0FkbWluRWRpdERlZmF1bHRUZW1wbGF0ZUZvcm0KICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIEEgZnVuY3Rpb24gdGhhdCBwcm92aWRlcyBhIGZvcm0gZm9yIGVkaXRpbmcgYSBkZWZhdWx0IHRlbXBsYXRlCiAgIGFuZC9vciByZXR1cm5pbmcgaXQgdG8gc3lzdGVtIGRlZmF1bHRzLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQWRtaW5FZGl0RGVmYXVsdFRlbXBsYXRlRm9ybSgkaWQsJHJldHVybmlkLCRwcmVmbmFtZSwkYWN0aXZlX3RhYiwkbmFtZSwKCQkJCQkJICAgICAgJGZpbGVuYW1lLCRpbmZvKQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0dDaGFydHMnKTsKICAgICRzbWFydHkgPSBjbXNfdXRpbHM6OmdldF9zbWFydHkoKTsKICAgICRzbWFydHktPmFzc2lnbignZGVmYXVsdHRlbXBsYXRlZm9ybV9uYW1lJywkbmFtZSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2luZm9fbmFtZScsJGluZm8pOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLAoJCSAgICAkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRkZWZhdWx0dGVtcGxhdGUnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsCgkJCQkJICAgYXJyYXkoJ3ByZWZuYW1lJz0+JHByZWZuYW1lLAoJCQkJCQkgJ2FjdGl2ZV90YWInPT4kYWN0aXZlX3RhYiwKCQkJCQkJICdmaWxlbmFtZSc9PiRmaWxlbmFtZSkpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlJywkbW9kLT5MYW5nKCd0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfdGVtcGxhdGUnLCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwKCQkJCQkJCSAgICRtb2QtPkdldFByZWZlcmVuY2UoJHByZWZuYW1lKSwKCQkJCQkJCSAgICdpbnB1dF90ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJG1vZC0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXR0b2RlZmF1bHQnLAoJCQkJCQkgICAgICRtb2QtPkxhbmcoJ3Jlc2V0dG9kZWZhdWx0JykpKTsKICAgICRzbWFydHktPmFzc2lnbignZW5kZm9ybScsCgkJICAgICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICBlY2hvICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGRlZmF1bHR0ZW1wbGF0ZS50cGwnKTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIENyZWF0ZVBhcmVudERyb3Bkb3duKCRpZCwgJGNhdGlkID0gLTEsICRzZWxlY3RlZHZhbHVlID0gLTEpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0dDaGFydHMnKTsKCiAgICAkbG9uZ25hbWUgPSAnJzsgICAgICAKICAgICRpdGVtc1snKCcuJG1vZC0+TGFuZygnbm9uZScpLicpJ10gPSAnLTEnOwogICAgICAKICAgICRxdWVyeSA9ICJTRUxFQ1QgaGllcmFyY2h5LCBnY2hhcnRzX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyBXSEVSRSBnY2hhcnRzX2NhdGVnb3J5X2lkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgewoJJGxvbmduYW1lID0gJHJvd1snaGllcmFyY2h5J10gLiAnJSc7CiAgICAgIH0KICAgICAgCiAgICAkcXVlcnkgPSAiU0VMRUNUIGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgaGllcmFyY2h5LCBnY2hhcnRzX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyBXSEVSRSBoaWVyYXJjaHkgbm90IGxpa2UgPyBPUkRFUiBieSBoaWVyYXJjaHkiOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxvbmduYW1lKSk7CiAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgIHsKCSRpdGVtc1skcm93WydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXV0gPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ107CiAgICAgIH0KCiAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdwYXJlbnQnLCAkaXRlbXMsIC0xLCAkc2VsZWN0ZWR2YWx1ZSk7CiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBVcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgJHF1ZXJ5ID0gIlNFTEVDVCBnY2hhcnRzX2NhdGVnb3J5X2lkLCBnY2hhcnRzX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgewoJJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gIiI7CgkkY3VycmVudF9nY2hhcnRzX2NhdGVnb3J5X25hbWUgPSAiIjsKCSRjb250ZW50X2lkID0gJHJvd1snZ2NoYXJ0c19jYXRlZ29yeV9pZCddOwoJJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvd1snZ2NoYXJ0c19jYXRlZ29yeV9pZCddOwoJJGNvdW50ID0gMDsKCSAgCgl3aGlsZSAoJGN1cnJlbnRfcGFyZW50X2lkID4gLTEpCgkgIHsKCSAgICAkcXVlcnkgPSAiU0VMRUNUIGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgcGFyZW50X2lkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgV0hFUkUgZ2NoYXJ0c19jYXRlZ29yeV9pZCA9ID8iOwoJICAgICRyb3cyID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9wYXJlbnRfaWQpKTsKCSAgICBpZiAoJHJvdzIpCgkgICAgICB7CgkJJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gc3RyX3BhZCgkcm93MlsnZ2NoYXJ0c19jYXRlZ29yeV9pZCddLCA1LCAnMCcsIFNUUl9QQURfTEVGVCkgLiAiLiIgLiAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb247CgkJJGN1cnJlbnRfZ2NoYXJ0c19jYXRlZ29yeV9uYW1lID0gJHJvdzJbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddIC4gJyB8ICcgLiAkY3VycmVudF9nY2hhcnRzX2NhdGVnb3J5X25hbWU7CgkJJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvdzJbJ3BhcmVudF9pZCddOwoJCSRjb3VudCsrOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkY3VycmVudF9wYXJlbnRfaWQgPSAwOwoJICAgICAgfQoJICB9CgkgIAoJaWYgKHN0cmxlbigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24pID4gMCkKCSAgewoJICAgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9IHN1YnN0cigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24sIDAsIHN0cmxlbigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24pIC0gMSk7CgkgIH0KCSAgCglpZiAoc3RybGVuKCRjdXJyZW50X2djaGFydHNfY2F0ZWdvcnlfbmFtZSkgPiAwKQoJICB7CgkgICAgJGN1cnJlbnRfZ2NoYXJ0c19jYXRlZ29yeV9uYW1lID0gc3Vic3RyKCRjdXJyZW50X2djaGFydHNfY2F0ZWdvcnlfbmFtZSwgMCwgc3RybGVuKCRjdXJyZW50X2djaGFydHNfY2F0ZWdvcnlfbmFtZSkgLSAzKTsKCSAgfQoJICAKCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgU0VUIGhpZXJhcmNoeSA9ID8sIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSA9ID8gV0hFUkUgZ2NoYXJ0c19jYXRlZ29yeV9pZCA9ID8iOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAkY3VycmVudF9nY2hhcnRzX2NhdGVnb3J5X25hbWUsICRjb250ZW50X2lkKSk7CiAgICAgIH0KICB9CiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfc3RhdGljX3JvdXRlKCRnY2hhcnRzX2NoYXJ0X2lkKQogIHsKICAgIHJldHVybiBjbXNfcm91dGVfbWFuYWdlcjo6ZGVsX3N0YXRpYygnJywnR0NoYXJ0cycsJGdjaGFydHNfY2hhcnRfaWQpOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.gcharts_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNCBieSBUZWQgS3VscCAod2lzaHlAdXNlcnMuc2YubmV0KQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKI2l0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiN0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiNidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KI1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiNhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQojCiMkSWQ6IEdDaGFydHMubW9kdWxlLnBocCAyMTE0IDIwMDUtMTEtMDQgMjE6NTE6MTNaIHdpc2h5ICQKCmZpbmFsIGNsYXNzIGdjaGFydHNfb3BzCnsKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICBwcml2YXRlIHN0YXRpYyAkX2NhdGVnb3JpZXNfbG9hZGVkOwogIHByaXZhdGUgc3RhdGljICRfY2FjaGVkX2NhdGVnb3JpZXM7CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3JpZXMoJGlkLCRwYXJhbXMsJHJldHVybmlkPS0xKQogIHsKICAgICR0bXAgPSBzZWxmOjpnZXRfYWxsX2NhdGVnb3JpZXMoKTsKICAgIGlmKCAhY291bnQoJHRtcCkgKSByZXR1cm47CgogICAgJGNhdGluZm8gPSBhcnJheSgpOwogICAgaWYoICFpc3NldCgkcGFyYW1zWydjYXRlZ29yeSddKSB8fCAkcGFyYW1zWydjYXRlZ29yeSddID09ICcnICkgewogICAgICAkY2F0aW5mbyA9ICR0bXA7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJGNhdGVnb3JpZXMgPSBleHBsb2RlKCcsJywgJHBhcmFtc1snY2F0ZWdvcnknXSk7CiAgICAgIGZvcmVhY2goICRjYXRlZ29yaWVzIGFzICRvbmVjYXQgKSB7CglpZiggc3RycG9zKCRvbmVjYXQsJyonKSAhPT0gRkFMU0UgKSB7CgkgIGZvcmVhY2goICR0bXAgYXMgJHJlYyApIHsKIAkgICAgaWYoIGZubWF0Y2goJG9uZWNhdCwkcmVjWydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXSkgKSB7CgkgICAgICAkY2F0aW5mb1tdID0gJHJlYzsKCSAgICB9CgkgIH0KCX0KCWVsc2UgewoJICBmb3JlYWNoKCAkdG1wIGFzICRyZWMgKSB7CgkgICAgaWYoICRyZWNbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddID09ICRvbmVjYXQgKSB7CgkgICAgICAkY2F0aW5mb1tdID0gJHJlYzsKCSAgICB9CgkgIH0KCX0KICAgICAgfQogICAgfQogICAgdW5zZXQoJHRtcCk7CiAgICBpZiggIWNvdW50KCRjYXRpbmZvKSApIHJldHVybjsKCiAgICAkY2F0X2lkcyA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkY2F0aW5mbyk7ICRpKysgKSB7CiAgICAgICRjYXRfaWRzW10gPSAkY2F0aW5mb1skaV1bJ2djaGFydHNfY2F0ZWdvcnlfaWQnXTsKICAgIH0KICAgIHNvcnQoJGNhdF9pZHMpOwogICAgJGNhdF9pZHMgPSBhcnJheV91bmlxdWUoJGNhdF9pZHMpOwoKICAgIC8vIGdldCBjb3VudHMuCiAgICAkZGVwdGggPSAxOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRjb3VudHMgPSBhcnJheSgpOwoKICAgIHsKICAgICAgJHEyID0gJ1NFTEVDVCBnY2hhcnRzX2NhdGVnb3J5X2lkLENPVU5UKGdjaGFydHNfaWQpIEFTIGNudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0cyBXSEVSRSBnY2hhcnRzX2NhdGVnb3J5X2lkIElOICgnOwogICAgICAkcTIgLj0gaW1wbG9kZSgnLCcsJGNhdF9pZHMpLicpJzsKICAgICAgJHEyIC49ICcgQU5EIHN0YXR1cyA9IFwncHVibGlzaGVkXCcgR1JPVVAgQlkgZ2NoYXJ0c19jYXRlZ29yeV9pZCc7CiAgICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxMik7CiAgICAgIGlmKCBjb3VudCgkdG1wKSApIHsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJICAkY291bnRzWyR0bXBbJGldWydnY2hhcnRzX2NhdGVnb3J5X2lkJ11dID0gJHRtcFskaV1bJ2NudCddOwoJfQogICAgICB9CiAgICB9CgogICAgJHJvd2NvdW50ZXI9MDsKICAgICRpdGVtcyA9IGFycmF5KCk7CiAgICAkZGVwdGggPSAxOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGNhdGluZm8pOyAkaSsrICkgewogICAgICAkcm93ID0mICRjYXRpbmZvWyRpXTsKICAgICAgJHJvd1snaW5kZXgnXSA9ICRyb3djb3VudGVyKys7CiAgICAgICRyb3dbJ2NvdW50J10gPSAoaXNzZXQoJGNvdW50c1skcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ11dKSk/JGNvdW50c1skcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ11dOjA7CiAgICAgICRyb3dbJ3ByZXZkZXB0aCddID0gJGRlcHRoOwogICAgICAkZGVwdGggPSBjb3VudChleHBsb2RlKCcuJywgJHJvd1snaGllcmFyY2h5J10pKTsKICAgICAgJHJvd1snZGVwdGgnXT0kZGVwdGg7CgogICAgICAvLyBjaGFuZ2VzIHNvIHRoYXQgcGFyYW1ldGVycyBzdXBwbGllZCB0byB0aGUgdGFnCiAgICAgIC8vIGdldHMgY2FycmllZCBkb3duIHRocm91Z2ggdGhlIGxpbmtzCiAgICAgIC8vIHNjcmV3IHByZXR0eSB1cmxzCiAgICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAgIHVuc2V0KCRwYXJtc1snYnJvd3NlY2F0J10pOwogICAgICB1bnNldCgkcGFybXNbJ2NhdGVnb3J5J10pOwogICAgICAkcGFybXNbJ2NhdGVnb3J5X2lkJ10gPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ107CgogICAgICAkcGFnZWlkID0gKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgJiYgJHBhcmFtc1snZGV0YWlscGFnZSddIT0nJyk/JHBhcmFtc1snZGV0YWlscGFnZSddOiRyZXR1cm5pZDsKICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnR0NoYXJ0cycpOwogICAgICAkcm93Wyd1cmwnXSA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcGFnZWlkLCRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddLCRwYXJtcywnJyx0cnVlKTsKICAgICAgJGl0ZW1zW10gPSAkcm93OwogICAgfQogICAgcmV0dXJuICRpdGVtczsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9hbGxfY2F0ZWdvcmllcygpCiAgewogICAgaWYoICFzZWxmOjokX2NhdGVnb3JpZXNfbG9hZGVkICkgewogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyBPUkRFUiBCWSBoaWVyYXJjaHkiOwogICAgICAkZGJyZXN1bHQgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgIGlmKCAkZGJyZXN1bHQgKSBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzID0gJGRicmVzdWx0OwogICAgICBzZWxmOjokX2NhdGVnb3JpZXNfbG9hZGVkID0gVFJVRTsKICAgIH0KICAgIHJldHVybiBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X2xpc3QoKQogIHsKICAgIHNlbGY6OmdldF9hbGxfY2F0ZWdvcmllcygpOwogICAgJGNhdGVnb3J5bGlzdCA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzKTsgJGkrKyApIHsKICAgICAgJHJvdyA9IHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXNbJGldOwogICAgICAkY2F0ZWdvcnlsaXN0WyRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddXSA9ICRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfaWQnXTsKICAgIH0KCiAgICByZXR1cm4gJGNhdGVnb3J5bGlzdDsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9uYW1lc19ieV9pZCgpCiAgewogICAgc2VsZjo6Z2V0X2FsbF9jYXRlZ29yaWVzKCk7CiAgICAkbGlzdCA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzKTsgJGkrKyApIHsKICAgICAgJGxpc3Rbc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllc1skaV1bJ2djaGFydHNfY2F0ZWdvcnlfaWQnXV0gPSBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXVsnZ2NoYXJ0c19jYXRlZ29yeV9uYW1lJ107CiAgICB9CiAgICByZXR1cm4gJGxpc3Q7CiAgfQoKICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9uYW1lX2Zyb21faWQoJGlkKQogIHsKICAgIHNlbGY6OmdldF9hbGxfY2F0ZWdvcmllcygpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllcyk7ICRpKysgKSB7CiAgICAgIGlmKCAkaWQgPT0gc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllc1skaV1bJ2djaGFydHNfY2F0ZWdvcnlfaWQnXSApIHsKCXJldHVybiBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXVsnZ2NoYXJ0c19jYXRlZ29yeV9uYW1lJ107CiAgICAgIH0KICAgIH0KICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbGxfY2hhcnRfZnJvbV9mb3JtcGFyYW1zKGdjaGFydHNfY2hhcnQgJiRnY2hhcnRzLCRwYXJhbXMsJGhhbmRsZV91cGxvYWRzID0gRkFMU0UsJGhhbmRsZV9kZWxldGVzID0gRkFMU0UpCiAgewogICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICBjYXNlICdjaGFydGlkJzoKCSRnY2hhcnRzLT5pZCA9ICR2YWx1ZTsKCWJyZWFrOwoKICAgICAgY2FzZSAnbmFtZSc6CiAgICAgIGNhc2UgJ2RhdGEnOgogICAgICBjYXNlICdzdGF0dXMnOgoJJGdjaGFydHMtPiRrZXkgPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGNhc2UgJ2NhdGVnb3J5JzoKCSRsaXN0ID0gc2VsZjo6Z2V0X2NhdGVnb3J5X25hbWVzX2J5X2lkKCk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzKTsgJGkrKyApIHsKCSAgaWYoICR2YWx1ZSA9PSBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXVsnZ2NoYXJ0c19jYXRlZ29yeV9uYW1lJ10gKQoJICAgICRnY2hhcnRzLT5jYXRlZ29yeV9pZCA9IHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXNbJGldWydnY2hhcnRzX2NhdGVnb3J5X2lkJ107Cgl9CglicmVhazsKICAgIH0KCX0KCiAgICByZXR1cm4gJGdjaGFydHM7CiAgfQoKCiAgc3RhdGljIHByaXZhdGUgZnVuY3Rpb24gJmdldF9jaGFydF9mcm9tX3Jvdygkcm93KQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHJvdykgKSByZXR1cm47CiAgICAkY2hhcnQgPSBuZXcgZ2NoYXJ0c19jaGFydDsKICAgIGZvcmVhY2goICRyb3cgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgY2FzZSAnZ2NoYXJ0c19pZCc6CgkkY2hhcnQtPmlkID0gJHZhbHVlOwoJYnJlYWs7CgogICAgICBjYXNlICdnY2hhcnRzX2NhdGVnb3J5X2lkJzoKCSRjaGFydC0+Y2F0ZWdvcnlfaWQgPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGNhc2UgJ2djaGFydHNfbmFtZSc6CgkkY2hhcnQtPm5hbWUgPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGNhc2UgJ2djaGFydHNfZGF0YSc6CgkkY2hhcnQtPmRhdGEgPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGNhc2UgJ3N0YXR1cyc6CgkkY2hhcnQtPnN0YXR1cyA9ICR2YWx1ZTsKCWJyZWFrOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuICRjaGFydDsKICB9CgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gJmdldF9sYXRlc3RfY2hhcnQoJGZvcl9kaXNwbGF5ID0gVFJVRSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgbW4uKiwgbW5jLmdjaGFydHNfY2F0ZWdvcnlfbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0cyBtbiBMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgbW5jIE9OIG1uYy5nY2hhcnRzX2NhdGVnb3J5X2lkID0gbW4uZ2NoYXJ0c19jYXRlZ29yeV9pZCBXSEVSRSBzdGF0dXMgPSAncHVibGlzaGVkJyBBTkQgIjsKICAgICRxdWVyeSAuPSAnT1JERVIgQlkgZ2NoYXJ0c19pZCBERVNDIExJTUlUIDEnOwogICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSk7CgogICAgcmV0dXJuIHNlbGY6OmdldF9jaGFydF9mcm9tX3Jvdygkcm93LCgkZm9yX2Rpc3BsYXkpPydQVUJMSUMnOidBTEwnKTsgICAgCiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiAmZ2V0X2NoYXJ0X2J5X2lkKCRjaGFydF9pZCwkZm9yX2Rpc3BsYXkgPSBUUlVFLCRhbGxvd19leHBpcmVkID0gRkFMU0UpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgbW4uKiwgbW5jLmdjaGFydHNfY2F0ZWdvcnlfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0cyBtbiAKICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgbW5jIE9OIG1uYy5nY2hhcnRzX2NhdGVnb3J5X2lkID0gbW4uZ2NoYXJ0c19jYXRlZ29yeV9pZCAKICAgICAgICAgICAgICBXSEVSRSBzdGF0dXMgPSBcJ3B1Ymxpc2hlZFwnIEFORCBnY2hhcnRzX2lkID0gPyc7CiAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY2hhcnRfaWQpKTsKCiAgICAkcmVzID0gbnVsbDsKICAgIGlmKCAhJHJvdyApIHJldHVybiAkcmVzOwogICAgCiAgICByZXR1cm4gc2VsZjo6Z2V0X2NoYXJ0X2Zyb21fcm93KCRyb3csKCRmb3JfZGlzcGxheSk/J1BVQkxJQyc6J0FMTCcpOyAgICAKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEdDaGFydHMgKGMpIDIwMTMgYnkgT2xpdmVyIFNlZGRvbiAKIyAgICAgICAgIChvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhZGQgR29vZ2xlIENoYXJ0cyB0byB5b3VyIHBhZ2VzCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmKCAhY2xhc3NfZXhpc3RzKCdnY2hhcnRzX2FkbWluX29wcycpICkKICB7CiAgICAvLyB0aGlzIGlzIHJlcXVpcmVkIGlmIGNhbGxlZCBmcm9tIHRoZSBpbnN0YWxsZXIKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvbGliL2NsYXNzLmdjaGFydHNfYWRtaW5fb3BzLnBocCc7CiAgICByZXF1aXJlX29uY2UoJGZuKTsKICB9CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiRmbGRzID0gIgogICAgIGdjaGFydHNfaWQgSSBLRVksCgkgZ2NoYXJ0c19jYXRlZ29yeV9pZCBJLAoJIGdjaGFydHNfZWxlbWVudF9pZCBDKDI1NSksCgkgZ2NoYXJ0c19jYXRlZ29yeV9uYW1lIEMoMjU1KSwKCSBnY2hhcnRzX25hbWUgQygyNTUpLAoJIGdjaGFydHNfZGF0YSBYLAoJIGF4aXNUaXRsZXNQb3NpdGlvbiBDKDI1NSksCgkgYmFja2dyb3VuZENvbG9yIEMoMjU1KSwKCSBjaGFydEFyZWEgQygyNTUpLAoJIGN1cnZlVHlwZSBDKDI1NSksCgkgY29sb3JzIEMoMjU1KSwKCSBlbmFibGVJbnRlcmFjdGl2aXR5IEMoMjU1KSwKCSBmb2N1c1RhcmdldCBDKDI1NSksCgkgZm9udFNpemUgQygyNTUpLAoJIGZvbnROYW1lIEMoMjU1KSwKCSBoQXhlcyBDKDI1NSksCgkgaEF4aXMgQygyNTUpLAoJIGhlaWdodCBDKDI1NSksCgkgaW50ZXJwb2xhdGVkTnVsbHMgQygyNTUpLAoJIGlzSHRtbCBDKDI1NSksCgkgaXNTdGFja2VkIEMoMjU1KSwKCSBpczNEIEMoMjU1KSwKCSBsZWdlbmQgQygyNTUpLAoJIGxpbmVXaWR0aCBDKDI1NSksCgkgc2xpY2VzIEMoMjU1KSwKCSBwaWVTbGljZUJvcmRlckNvbG9yIEMoMjU1KSwKCSBwaWVTbGljZVRleHQgQygyNTUpLAoJIHBpZVNsaWNlVGV4dFN0eWxlIEMoMjU1KSwKCSBwb2ludFNpemUgQygyNTUpLAoJIHJldmVyc2VDYXRlZ29yaWVzIEMoMjU1KSwKCSBzZXJpZXMgQygyNTUpLAoJIHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCBDKDI1NSksCgkgcGllUmVzaWR1ZVNsaWNlQ29sb3IgQygyNTUpLAoJIHBpZVJlc2lkdWVTbGljZUxhYmVsIEMoMjU1KSwKCSB0aGVtZSBDKDI1NSksCgkgdGl0bGUgQygyNTUpLAoJIHRpdGxlUG9zaXRpb24gQygyNTUpLAoJIHRpdGxlVGV4dFN0eWxlIEMoMjU1KSwKCSB0b29sdGlwIEMoMjU1KSwKCSB2QXhlcyBDKDI1NSksCgkgdkF4aXMgQygyNTUpLAoJIHdpZHRoIEMoMjU1KSwKCSBhZ2dyZWdhdGlvblRhcmdldCBDKDI1NSksCgkgZ3JvdXBXaWR0aCBDKDI1NSksCgkgZGF0YU9wYWNpdHkgQygyNTUpLAoJIGF2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXMgQygyNTUpLAoJIHRpbWVsaW5lIEMoMjU1KSwKCSBzdGF0dXMgQygyNSkKIjsKCiR0YWJvcHRhcnJheSA9IGFycmF5KCAnbXlzcWwnID0+ICdUWVBFPU15SVNBTScgKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzIiwKCQkJCSAgICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19zZXEiKTsKCiRmbGRzID0gIgoJZ2NoYXJ0c19jYXRlZ29yeV9pZCBJIEtFWSwKCWdjaGFydHNfY2F0ZWdvcnlfbmFtZSBDKDI1NSksCglwYXJlbnRfaWQgSSwKCWhpZXJhcmNoeSBDKDI1NSksCgljcmVhdGVfZGF0ZSAiLkNNU19BRE9EQl9EVC4iLAoJbW9kaWZpZWRfZGF0ZSAiLkNNU19BRE9EQl9EVC4iCiI7CgokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIiwgCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXNfc2VxIik7CgovLyBjcmVhdGUgYSBwZXJtaXNzaW9uCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdVc2UgR0NoYXJ0cycsICdVc2UgR0NoYXJ0cycpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignQXBwcm92ZSBHQ2hhcnRzJywgJ0FwcHJvdmUgR0NoYXJ0cyBGb3IgRnJvbnRlbmQgRGlzcGxheScpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRGVsZXRlIEdDaGFydHMnLCAnRGVsZXRlIEdDaGFydHMgQ2hhcnRzJyk7CgovLyBjcmVhdGUgYSBwcmVmZXJlbmNlCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJhbGxvd19hZGQiLCB0cnVlKTsKCiMgU2V0dXAgY2F0ZWdvcmllcwokcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgKGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgcGFyZW50X2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nLCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicpJzsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJzEnLCAnUGllIENoYXJ0JywgLTEpKTsKCiRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyAoZ2NoYXJ0c19jYXRlZ29yeV9pZCwgZ2NoYXJ0c19jYXRlZ29yeV9uYW1lLCBwYXJlbnRfaWQsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicsJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJyknOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnMicsICdMaW5lIENoYXJ0JywgLTEpKTsKCiRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyAoZ2NoYXJ0c19jYXRlZ29yeV9pZCwgZ2NoYXJ0c19jYXRlZ29yeV9uYW1lLCBwYXJlbnRfaWQsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicsJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJyknOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnMycsICdCYXIgQ2hhcnQnLCAtMSkpOwoKJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIChnY2hhcnRzX2NhdGVnb3J5X2lkLCBnY2hhcnRzX2NhdGVnb3J5X25hbWUsIHBhcmVudF9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nKSc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCc0JywgJ0NvbHVtbiBDaGFydCcsIC0xKSk7CgokcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgKGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgcGFyZW50X2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nLCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicpJzsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJzUnLCAnSGlzdG9ncmFtJywgLTEpKTsKCiRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyAoZ2NoYXJ0c19jYXRlZ29yeV9pZCwgZ2NoYXJ0c19jYXRlZ29yeV9uYW1lLCBwYXJlbnRfaWQsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicsJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJyknOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnNicsICdUaW1lbGluZScsIC0xKSk7Cg0KIyBTZXR1cCBkZXRhaWwgdGVtcGxhdGUNCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuDQogICd0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ2djaGFydHNfbGlzdC50cGwnOw0KaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsNCiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9kZXRhaWxfdGVtcGxhdGVfY29udGVudHMnLCR0ZW1wbGF0ZSk7DQogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxTYW1wbGUnLCR0ZW1wbGF0ZSk7DQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2N1cnJlbnRfZGV0YWlsX3RlbXBsYXRlJywnRGVmYXVsdCcpOw0KfQoKIyBTZXR1cCBwZXJtaXNzaW9ucwokcGVybV9pZCA9ICRkYi0+R2V0T25lKCJTRUxFQ1QgcGVybWlzc2lvbl9pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJwZXJtaXNzaW9ucyBXSEVSRSBwZXJtaXNzaW9uX25hbWUgPSAnTW9kaWZ5IEdDaGFydHMnIik7CiRncm91cF9pZCA9ICRkYi0+R2V0T25lKCJTRUxFQ1QgZ3JvdXBfaWQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iZ3JvdXBzIFdIRVJFIGdyb3VwX25hbWUgPSAnQWRtaW4nIik7CgokY291bnQgPSAkZGItPkdldE9uZSgiU0VMRUNUIGNvdW50KCopIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJncm91cF9wZXJtcyBXSEVSRSBncm91cF9pZCA9ID8gQU5EIHBlcm1pc3Npb25faWQgPSA/IiwgYXJyYXkoJGdyb3VwX2lkLCAkcGVybV9pZCkpOwppZiAoaXNzZXQoJGNvdW50KSAmJiBpbnR2YWwoJGNvdW50KSA9PSAwKQp7CgkkbmV3X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuImdyb3VwX3Blcm1zX3NlcSIpOwoJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAiZ3JvdXBfcGVybXMgKGdyb3VwX3Blcm1faWQsIGdyb3VwX2lkLCBwZXJtaXNzaW9uX2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICgiLiRuZXdfaWQuIiwgIi4kZ3JvdXBfaWQuIiwgIi4kcGVybV9pZC4iLCAiLiAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkgLiAiLCAiIC4gJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpIC4gIikiOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSk7Cn0KCiRncm91cF9pZCA9ICRkYi0+R2V0T25lKCJTRUxFQ1QgZ3JvdXBfaWQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iZ3JvdXBzIFdIRVJFIGdyb3VwX25hbWUgPSAnRWRpdG9yJyIpOwoKJGNvdW50ID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAiZ3JvdXBfcGVybXMgV0hFUkUgZ3JvdXBfaWQgPSA/IEFORCBwZXJtaXNzaW9uX2lkID0gPyIsIGFycmF5KCRncm91cF9pZCwgJHBlcm1faWQpKTsKaWYgKGlzc2V0KCRjb3VudCkgJiYgaW50dmFsKCRjb3VudCkgPT0gMCkKewoJJG5ld19pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJncm91cF9wZXJtc19zZXEiKTsKCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gImdyb3VwX3Blcm1zIChncm91cF9wZXJtX2lkLCBncm91cF9pZCwgcGVybWlzc2lvbl9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoIi4kbmV3X2lkLiIsICIuJGdyb3VwX2lkLiIsICIuJHBlcm1faWQuIiwgIi4gJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpIC4gIiwgIiAuICRkYi0+REJUaW1lU3RhbXAodGltZSgpKSAuICIpIjsKCSRkYi0+RXhlY3V0ZSgkcXVlcnkpOwp9CgojU2V0dXAgZXZlbnRzCiR0aGlzLT5DcmVhdGVFdmVudCgnR0NoYXJ0c0NoYXJ0QWRkZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdHQ2hhcnRzQ2hhcnRFZGl0ZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdHQ2hhcnRzQ2hhcnREZWxldGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnR0NoYXJ0c0NhdGVnb3J5QWRkZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdHQ2hhcnRzQ2F0ZWdvcnlFZGl0ZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdHQ2hhcnRzQ2F0ZWdvcnlEZWxldGVkJyk7CgokdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oVFJVRSk7CiR0aGlzLT5SZWdpc3RlclNtYXJ0eVBsdWdpbignZ2NoYXJ0cycsJ2Z1bmN0aW9uJywnZnVuY3Rpb25fcGx1Z2luJyk7CgovLyBhbmQgcm91dGVzLi4uCiRyb3V0ZSA9IG5ldyBDbXNSb3V0ZSgnL1tnR11jaGFydHNcLyg/UDxjaGFydGlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8anVuaz4uKj8pXC9kLCg/UDxkZXRhaWx0ZW1wbGF0ZT4uKj8pJC8nLAoJCSAgICAgICR0aGlzLT5HZXROYW1lKCkpOwpjbXNfcm91dGVfbWFuYWdlcjo6YWRkX3N0YXRpYygkcm91dGUpOwokcm91dGUgPSBuZXcgQ21zUm91dGUoJy9bZ0ddY2hhcnRzXC8oP1A8Y2hhcnRpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJywkdGhpcy0+R2V0TmFtZSgpKTsKY21zX3JvdXRlX21hbmFnZXI6OmFkZF9zdGF0aWMoJHJvdXRlKTsKJHJvdXRlID0gbmV3IENtc1JvdXRlKCcvW2dHXWNoYXJ0c1wvKD9QPGNoYXJ0aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycsJHRoaXMtPkdldE5hbWUoKSk7CmNtc19yb3V0ZV9tYW5hZ2VyOjphZGRfc3RhdGljKCRyb3V0ZSk7CiRyb3V0ZSA9IG5ldyBDbXNSb3V0ZSgnL1tnR11jaGFydHNcLyg/UDxjaGFydGlkPlswLTldKykkLycsJHRoaXMtPkdldE5hbWUoKSk7CmNtc19yb3V0ZV9tYW5hZ2VyOjphZGRfc3RhdGljKCRyb3V0ZSk7CgovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKJHRoaXMtPkF1ZGl0KCAwLCAKCSAgICAgICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgCgkgICAgICAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkgKTsKCgkgICAgICAKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0cyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19zZXEiICk7CiRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXNfc2VxIiApOwoKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBHQ2hhcnRzJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdBcHByb3ZlIEdDaGFydHMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0RlbGV0ZSBHQ2hhcnRzJyk7CgovLyBSZW1vdmUgYWxsIHByZWZlcmVuY2VzIGZvciB0aGlzIG1vZHVsZQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKLy8gQW5kIGFsbCBUZW1wbGF0ZXMKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CgojU2V0dXAgZXZlbnRzCiR0aGlzLT5SZW1vdmVFdmVudCgnR0NoYXJ0c0NoYXJ0QWRkZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdHQ2hhcnRzQ2hhcnRFZGl0ZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdHQ2hhcnRzQ2hhcnREZWxldGVkJyk7CgokdGhpcy0+UmVtb3ZlU21hcnR5UGx1Z2luKCk7CgpjbXNfcm91dGVfbWFuYWdlcjo6ZGVsX3N0YXRpYygnJywkdGhpcy0+R2V0TmFtZSgpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEdDaGFydHMgKGMpIDIwMTMgYnkgT2xpdmVyIFNlZGRvbiAKIyAgICAgICAgIChvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhZGQgR29vZ2xlIENoYXJ0cyB0byB5b3VyIHBhZ2VzCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsKJGRiID0mICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7Cgpzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikgewogIC8vIHdlIGFyZSBub3cgMS4wIGFuZCB3YW50IHRvIHVwZ3JhZGUgdG8gbGF0ZXN0CiBjYXNlICIxLjAiOgogY2FzZSAiMS4xIjoKIGNhc2UgIjEuMiI6CgkkZmllbGRzID0gJwoJCWFnZ3JlZ2F0aW9uVGFyZ2V0IEMoMjU1KSwKCQlncm91cFdpZHRoIEMoMjU1KQoJJzsKCgkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZ2NoYXJ0cycsICRmaWVsZHMsICR0YWJvcHRhcnJheSk7CgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIChnY2hhcnRzX2NhdGVnb3J5X2lkLCBnY2hhcnRzX2NhdGVnb3J5X25hbWUsIHBhcmVudF9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nKSc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnNCcsICdDb2x1bW4gQ2hhcnQnLCAtMSkpOwogY2FzZSAiMS4zIjoKCSRmaWVsZHMgPSAnCgkJZGF0YU9wYWNpdHkgQygyNTUpLAoJIAlhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzIEMoMjU1KSwKCSAJdGltZWxpbmUgQygyNTUpCgknOwoKCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9nY2hhcnRzJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgKGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgcGFyZW50X2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nLCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicpJzsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCc1JywgJ0hpc3RvZ3JhbScsIC0xKSk7CgoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIChnY2hhcnRzX2NhdGVnb3J5X2lkLCBnY2hhcnRzX2NhdGVnb3J5X25hbWUsIHBhcmVudF9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nKSc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnNicsICdUaW1lbGluZScsIC0xKSk7Cgp9CgovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKJHRoaXMtPkF1ZGl0KCAwLCAKCSAgICAgICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgCgkgICAgICAkdGhpcy0+TGFuZygndXBncmFkZWQnLCAkdGhpcy0+R2V0VmVyc2lvbigpKSk7CgovL25vdGU6IG1vZHVsZSBhcGkgaGFuZGxlcyBzZW5kaW5nIGdlbmVyaWMgZXZlbnQgb2YgbW9kdWxlIHVwZ3JhZGVkIGhlcmUKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/chartlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKZnVuY3Rpb24gc2VsZWN0QWxsKCkKewogIGNoZWNrYm94ZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKTsKICBmb3IgKGk9MDsgaTxjaGVja2JveGVzLmxlbmd0aCA7IGkrKykKICAgIHsKICAgICAgaWYgKGNoZWNrYm94ZXNbaV0udHlwZSA9PSAiY2hlY2tib3giKSBjaGVja2JveGVzW2ldLmNoZWNrZWQ9IWNoZWNrYm94ZXNbaV0uY2hlY2tlZDsKICAgIH0KfQovL11dPgo8L3NjcmlwdD4Key9saXRlcmFsfQoKCntpZiAkaXRlbWNvdW50ID4gMH0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgp7aWYgaXNzZXQoJGFkZGxpbmspfTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD57L2lmfQo8L2Rpdj4KCntpZiAkcGFnZWNvdW50ID4gMX0KICA8cD4Ke2lmICRwYWdlbnVtYmVyID4gMX0KeyRmaXJzdHBhZ2V9Jm5ic3A7eyRwcmV2cGFnZX0mbmJzcDsKey9pZn0KeyRwYWdlbnVtYmVyfSZuYnNwO3skb2Z0ZXh0fSZuYnNwO3skcGFnZWNvdW50fQp7aWYgJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50fQombmJzcDt7JG5leHRwYWdlfSZuYnNwO3skbGFzdHBhZ2V9CnsvaWZ9CjwvcD4Key9pZn0KCnskZm9ybTJzdGFydH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPnskY2hhcnRpZHRleHR9PC90aD4KCQkJPHRoPnskbmFtZXRleHR9PC90aD4KCQkJPHRoPnskY2F0ZWdvcnl0ZXh0fTwvdGg+CgkJCTwhLS08dGggY2xhc3M9InBhZ2VpY29uIj57JHN0YXR1c3RleHR9PC90aD4tLT4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+PGEgaHJlZj0iamF2YXNjcmlwdDpzZWxlY3RBbGwoKTsiPnskc2VsZWN0dGV4dH08L2E+PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgoJCQk8dGQ+eyRlbnRyeS0+aWR9PC90ZD4KCQkJPHRkPnskZW50cnktPm5hbWV9PC90ZD4KCQkJPHRkPnskZW50cnktPmNhdGVnb3J5fTwvdGQ+CgkJCTwhLS08dGQ+e2lmIGlzc2V0KCRlbnRyeS0+YXBwcm92ZV9saW5rKX17JGVudHJ5LT5hcHByb3ZlX2xpbmt9ey9pZn08L3RkPi0tPgoJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt8ZGVmYXVsdDonJ308L3RkPgoJCQk8dGQ+e2lmIGlzc2V0KCRlbnRyeS0+ZGVsZXRlbGluayl9eyRlbnRyeS0+ZGVsZXRlbGlua317L2lmfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5zZWxlY3R9PC90ZD4KCQk8L3RyPgoJey9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Key9pZn0KCjxkaXYgc3R5bGU9IndpZHRoOiA5NyU7Ij4KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiIHN0eWxlPSJmbG9hdDogbGVmdDsiPgp7aWYgaXNzZXQoJGFkZGxpbmspfTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD57L2lmfQo8L2Rpdj4Ke2lmICRpdGVtY291bnQgPiAwfQogIDxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+CiAgICB7JHJlYXNzaWdudGV4dH06Jm5ic3A7eyRjYXRlZ29yeWlucHV0fXskc3VibWl0X3JlYXNzaWdufXtpZiBpc3NldCgkc3VibWl0X21hc3NkZWxldGUpfTxici8+eyRzdWJtaXRfbWFzc2RlbGV0ZX17L2lmfQogIDwvZGl2Pgp7L2lmfQo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgo8L2Rpdj4KeyRmb3JtMmVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/editchart.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKJChmdW5jdGlvbigpIHsKCWlmICgkKCcjY2hhcnRDYXRlZ29yeScpLnZhbCgpID09IDEpIHsKCQkkKCcjZWRpdF9jaGFydCAucGFnZW92ZXJmbG93JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQkkKCcjZWRpdF9jaGFydCAucGllJykuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7Cgl9IGVsc2UgaWYgKCQoJyNjaGFydENhdGVnb3J5JykudmFsKCkgPT0gMikgewoJCSQoJyNlZGl0X2NoYXJ0IC5wYWdlb3ZlcmZsb3cnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwoJCSQoJyNlZGl0X2NoYXJ0IC5saW5lJykuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7Cgl9IGVsc2UgaWYgKCQoJyNjaGFydENhdGVnb3J5JykudmFsKCkgPT0gMykgewoJCSQoJyNlZGl0X2NoYXJ0IC5wYWdlb3ZlcmZsb3cnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwoJCSQoJyNlZGl0X2NoYXJ0IC5iYXInKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTsKCX0gZWxzZSBpZiAoJCgnI2NoYXJ0Q2F0ZWdvcnknKS52YWwoKSA9PSA0KSB7CgkJJCgnI2VkaXRfY2hhcnQgLnBhZ2VvdmVyZmxvdycpLmNzcygnZGlzcGxheScsICdub25lJyk7CgkJJCgnI2VkaXRfY2hhcnQgLmNvbCcpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJfSBlbHNlIGlmICgkKCcjY2hhcnRDYXRlZ29yeScpLnZhbCgpID09IDUpIHsKCQkkKCcjZWRpdF9jaGFydCAucGFnZW92ZXJmbG93JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQkkKCcjZWRpdF9jaGFydCAuaGlzdCcpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJfSBlbHNlIGlmICgkKCcjY2hhcnRDYXRlZ29yeScpLnZhbCgpID09IDYpIHsKCQkkKCcjZWRpdF9jaGFydCAucGFnZW92ZXJmbG93JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQkkKCcjZWRpdF9jaGFydCAudGltZScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJfSBlbHNlIHsKCQkkKCcjZWRpdF9jaGFydCAucGFnZW92ZXJmbG93JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCX07CgkkKCcjY2hhcnRDYXRlZ29yeScpLmNoYW5nZShmdW5jdGlvbiAoKSB7CgkJaWYgKCQodGhpcykudmFsKCkgPT0gMSkgewoJCQkkKCcjZWRpdF9jaGFydCAucGFnZW92ZXJmbG93JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQkJJCgnI2VkaXRfY2hhcnQgLnBpZScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCQlpZiAoJCgnLnBhZ2VvdmVyZmxvdzpub3QoLnBpZSknKSkgewoJCQkJJCgnI2VkaXRfY2hhcnQgLnBhZ2VvdmVyZmxvdyAucGFnZWlucHV0IGlucHV0JykudmFsKCcnKTsKCQkJfQoJCX0gZWxzZSBpZiAoJCh0aGlzKS52YWwoKSA9PSAyKSB7CgkJCSQoJyNlZGl0X2NoYXJ0IC5wYWdlb3ZlcmZsb3cnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwoJCQkkKCcjZWRpdF9jaGFydCAubGluZScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCQlpZiAoJCgnLnBhZ2VvdmVyZmxvdzpub3QoLmxpbmUpJykpIHsKCQkJCSQoJyNlZGl0X2NoYXJ0IC5wYWdlb3ZlcmZsb3cgLnBhZ2VpbnB1dCBpbnB1dCcpLnZhbCgnJyk7CgkJCX0KCQl9IGVsc2UgaWYgKCQodGhpcykudmFsKCkgPT0gMykgewoJCQkkKCcjZWRpdF9jaGFydCAucGFnZW92ZXJmbG93JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQkJJCgnI2VkaXRfY2hhcnQgLmJhcicpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCQlpZiAoJCgnLnBhZ2VvdmVyZmxvdzpub3QoLmJhciknKSkgewoJCQkJJCgnI2VkaXRfY2hhcnQgLnBhZ2VvdmVyZmxvdyAucGFnZWlucHV0IGlucHV0JykudmFsKCcnKTsKCQkJfQoJCX0gZWxzZSBpZiAoJCh0aGlzKS52YWwoKSA9PSA0KSB7CgkJCSQoJyNlZGl0X2NoYXJ0IC5wYWdlb3ZlcmZsb3cnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwoJCQkkKCcjZWRpdF9jaGFydCAuY29sJykuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7CgkJCWlmICgkKCcucGFnZW92ZXJmbG93Om5vdCguY29sKScpKSB7CgkJCQkkKCcjZWRpdF9jaGFydCAucGFnZW92ZXJmbG93IC5wYWdlaW5wdXQgaW5wdXQnKS52YWwoJycpOwoJCQl9CgkJfSBlbHNlIGlmICgkKHRoaXMpLnZhbCgpID09IDUpIHsKCQkJJCgnI2VkaXRfY2hhcnQgLnBhZ2VvdmVyZmxvdycpLmNzcygnZGlzcGxheScsICdub25lJyk7CgkJCSQoJyNlZGl0X2NoYXJ0IC5oaXN0JykuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7CgkJCWlmICgkKCcucGFnZW92ZXJmbG93Om5vdCguaGlzdCknKSkgewoJCQkJJCgnI2VkaXRfY2hhcnQgLnBhZ2VvdmVyZmxvdyAucGFnZWlucHV0IGlucHV0JykudmFsKCcnKTsKCQkJfQoJCX0gZWxzZSBpZiAoJCh0aGlzKS52YWwoKSA9PSA2KSB7CgkJCSQoJyNlZGl0X2NoYXJ0IC5wYWdlb3ZlcmZsb3cnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwoJCQkkKCcjZWRpdF9jaGFydCAudGltZScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCQlpZiAoJCgnLnBhZ2VvdmVyZmxvdzpub3QoLnRpbWUpJykpIHsKCQkJCSQoJyNlZGl0X2NoYXJ0IC5wYWdlb3ZlcmZsb3cgLnBhZ2VpbnB1dCBpbnB1dCcpLnZhbCgnJyk7CgkJCX0KCQl9IGVsc2UgewoJCQkkKCcjZWRpdF9jaGFydCAucGFnZW92ZXJmbG93JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQl9OwoJfSk7Cn0pOwovL11dPgo8L3NjcmlwdD4Key9saXRlcmFsfQoKPGRpdiBpZD0iZWRpdGNoYXJ0X3Jlc3VsdCI+PC9kaXY+Cgp7JHN0YXJ0Zm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJzaG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGRlbn17JHN1Ym1pdH17JGNhbmNlbH17aWYgaXNzZXQoJGFwcGx5KX17JGFwcGx5fXsvaWZ9PC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkc3RhcnRfdGFiX2hlYWRlcnMpfQp7JHN0YXJ0X3RhYl9oZWFkZXJzfQp7JHRhYmhlYWRlcl9jaGFydH0KeyRlbmRfdGFiX2hlYWRlcnN9Cgp7JHN0YXJ0X3RhYl9jb250ZW50fQp7JHN0YXJ0X3RhYl9jaGFydH0Key9pZn0KPGRpdiBpZD0iZWRpdF9jaGFydCI+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcnNob3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskY2F0ZWdvcnl0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGNhdGVnb3J5fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJzaG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPip7JG5hbWV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG5hbWV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcnNob3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskZGF0YXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0ZGF0YX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyc2hvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGVsZW1lbnR0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGVsZW1lbnR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgcGllIGxpbmUgYmFyIGNvbCBoaXN0IHRpbWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRiYWNrZ3JvdW5kQ29sb3J0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGJhY2tncm91bmRDb2xvcn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUgbGluZSBiYXIgY29sIGhpc3QiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjaGFydEFyZWF0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGNoYXJ0QXJlYX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUgbGluZSBiYXIgY29sIGhpc3QgdGltZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNvbG9yc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0Y29sb3JzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHBpZSBsaW5lIGJhciBjb2wgaGlzdCI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZvbnRTaXpldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRmb250U2l6ZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUgbGluZSBiYXIgY29sIGhpc3QiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmb250TmFtZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0Zm9udE5hbWV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgcGllIGxpbmUgYmFyIGNvbCBoaXN0IHRpbWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRoZWlnaHR0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGhlaWdodH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUgbGluZSBiYXIgY29sIGhpc3QiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsZWdlbmR0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGxlZ2VuZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUgbGluZSBiYXIgY29sIGhpc3QiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRyZXZlcnNlQ2F0ZWdvcmllc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0cmV2ZXJzZUNhdGVnb3JpZXN9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgcGllIGxpbmUgYmFyIGNvbCBoaXN0Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVUZXh0U3R5bGV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHRpdGxlVGV4dFN0eWxlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHBpZSBsaW5lIGJhciBjb2wgaGlzdCI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRvb2x0aXB0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHRvb2x0aXB9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgcGllIGxpbmUgYmFyIGNvbCBoaXN0IHRpbWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR3aWR0aHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0d2lkdGh9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgcGllIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaXMzRHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0aXMzRH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRzbGljZXN0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHNsaWNlc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwaWVTbGljZUJvcmRlckNvbG9ydGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRwaWVTbGljZUJvcmRlckNvbG9yfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHBpZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHBpZVNsaWNlVGV4dHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0cGllU2xpY2VUZXh0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHBpZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHBpZVNsaWNlVGV4dFN0eWxldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRwaWVTbGljZVRleHRTdHlsZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGR0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwaWVSZXNpZHVlU2xpY2VDb2xvcnRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0cGllUmVzaWR1ZVNsaWNlQ29sb3J9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgcGllIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcGllUmVzaWR1ZVNsaWNlTGFiZWx0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHBpZVJlc2lkdWVTbGljZUxhYmVsfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGxpbmUgYmFyIGNvbCBoaXN0Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYXhpc1RpdGxlc1Bvc2l0aW9udGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRheGlzVGl0bGVzUG9zaXRpb259PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbGluZSBiYXIgY29sIGhpc3QgdGltZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGVuYWJsZUludGVyYWN0aXZpdHl0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGVuYWJsZUludGVyYWN0aXZpdHl9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbGluZSBiYXIgY29sIGhpc3QiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmb2N1c1RhcmdldHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0Zm9jdXNUYXJnZXR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbGluZSBiYXIgY29sIGhpc3QiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRoQXhpc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0aEF4aXN9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbGluZSBiYXIgY29sIGhpc3QiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpc0h0bWx0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGlzSHRtbH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBsaW5lIGJhciBjb2wgaGlzdCI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNlcmllc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0c2VyaWVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGxpbmUgYmFyIGNvbCBoaXN0Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGhlbWV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHRoZW1lfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGxpbmUgYmFyIGNvbCBoaXN0Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVQb3NpdGlvbnRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0dGl0bGVQb3NpdGlvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBsaW5lIGNvbCBoaXN0Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdkF4ZXN0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHZBeGVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGxpbmUgYmFyIGNvbCBoaXN0Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdkF4aXN0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHZBeGlzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGxpbmUgY29sIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYWdncmVnYXRpb25UYXJnZXR0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGFnZ3JlZ2F0aW9uVGFyZ2V0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGxpbmUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjdXJ2ZVR5cGV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGN1cnZlVHlwZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBsaW5lIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaW50ZXJwb2xhdGVkTnVsbHN0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGludGVycG9sYXRlZE51bGxzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGxpbmUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsaW5lV2lkdGh0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGxpbmVXaWR0aH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBsaW5lIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcG9pbnRTaXpldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRwb2ludFNpemV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgYmFyIGNvbCBoaXN0Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaXNTdGFja2VkdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRpc1N0YWNrZWR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgY29sIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZ3JvdXBXaWR0aHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0Z3JvdXBXaWR0aH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBoaXN0Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZGF0YU9wYWNpdHl0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGRhdGFPcGFjaXR5fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHRpbWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHRpbWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aW1lbGluZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0dGltZWxpbmV9PC9wPgoJPC9kaXY+CjwvZGl2Pgp7aWYgaXNzZXQoJGVuZF90YWJfY2hhcnQpfXskZW5kX3RhYl9jaGFydH17L2lmfQoKCjxkaXYgY2xhc3M9InBhZ2VvdmVyc2hvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59eyRzdWJtaXR9eyRjYW5jZWx9e2lmIGlzc2V0KCRhcHBseSl9eyRhcHBseX17L2lmfTwvcD4KPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/gcharts.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtb2R1bGVfbWVzc2FnZSl9PGgyPnskbW9kdWxlX21lc3NhZ2V8ZXNjYXBlfTwvaDI+ey9pZn0Ke2Fzc2lnbiB2YXI9J2NvdW50JyB2YWx1ZT0nMCd9Cntmb3JlYWNoIGZyb209JHJlY29yZHMgaXRlbT1lbnRyeX0KCXthc3NpZ24gdmFyPSdjaGFydGlkJyB2YWx1ZT0kZW50cnktPmlkfQoJe2Fzc2lnbiB2YXI9J2NhdGVnb3J5JyB2YWx1ZT0kZW50cnktPmNhdGVnb3J5fQoJe2Fzc2lnbiB2YXI9J25hbWUnIHZhbHVlPSRlbnRyeS0+bmFtZX0KCXthc3NpZ24gdmFyPSdlbGVtZW50JyB2YWx1ZT0kZW50cnktPmVsZW1lbnR9Cgl7YXNzaWduIHZhcj0ndGl0bGUnIHZhbHVlPSRlbnRyeS0+dGl0bGV9Cgl7YXNzaWduIHZhcj0nZGF0YScgdmFsdWU9JGVudHJ5LT5kYXRhfQoJe2Fzc2lnbiB2YXI9J2JhY2tncm91bmRDb2xvcicgdmFsdWU9JGVudHJ5LT5iYWNrZ3JvdW5kQ29sb3J9Cgl7YXNzaWduIHZhcj0nY2hhcnRBcmVhJyB2YWx1ZT0kZW50cnktPmNoYXJ0QXJlYX0KCXthc3NpZ24gdmFyPSdjb2xvcnMnIHZhbHVlPSRlbnRyeS0+Y29sb3JzfQoJe2Fzc2lnbiB2YXI9J2ZvbnRTaXplJyB2YWx1ZT0kZW50cnktPmZvbnRTaXplfQoJe2Fzc2lnbiB2YXI9J2ZvbnROYW1lJyB2YWx1ZT0kZW50cnktPmZvbnROYW1lfQoJe2Fzc2lnbiB2YXI9J2hlaWdodCcgdmFsdWU9JGVudHJ5LT5oZWlnaHR9Cgl7YXNzaWduIHZhcj0nbGVnZW5kJyB2YWx1ZT0kZW50cnktPmxlZ2VuZH0KCXthc3NpZ24gdmFyPSdyZXZlcnNlQ2F0ZWdvcmllcycgdmFsdWU9JGVudHJ5LT5yZXZlcnNlQ2F0ZWdvcmllc30KCXthc3NpZ24gdmFyPSd0aXRsZVRleHRTdHlsZScgdmFsdWU9JGVudHJ5LT50aXRsZVRleHRTdHlsZX0KCXthc3NpZ24gdmFyPSd0b29sdGlwJyB2YWx1ZT0kZW50cnktPnRvb2x0aXB9Cgl7YXNzaWduIHZhcj0nd2lkdGgnIHZhbHVlPSRlbnRyeS0+d2lkdGh9CgoJe2Fzc2lnbiB2YXI9J2lzM0QnIHZhbHVlPSRlbnRyeS0+aXMzRH0KCXthc3NpZ24gdmFyPSdzbGljZXMnIHZhbHVlPSRlbnRyeS0+c2xpY2VzfQoJe2Fzc2lnbiB2YXI9J3BpZVNsaWNlQm9yZGVyQ29sb3InIHZhbHVlPSRlbnRyeS0+cGllU2xpY2VCb3JkZXJDb2xvcn0KCXthc3NpZ24gdmFyPSdwaWVTbGljZVRleHQnIHZhbHVlPSRlbnRyeS0+cGllU2xpY2VUZXh0fQoJe2Fzc2lnbiB2YXI9J3BpZVNsaWNlVGV4dFN0eWxlJyB2YWx1ZT0kZW50cnktPnBpZVNsaWNlVGV4dFN0eWxlfQoJe2Fzc2lnbiB2YXI9J3NsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCcgdmFsdWU9JGVudHJ5LT5zbGljZVZpc2liaWxpdHlUaHJlc2hvbGR9Cgl7YXNzaWduIHZhcj0ncGllUmVzaWR1ZVNsaWNlQ29sb3InIHZhbHVlPSRlbnRyeS0+cGllUmVzaWR1ZVNsaWNlQ29sb3J9Cgl7YXNzaWduIHZhcj0ncGllUmVzaWR1ZVNsaWNlTGFiZWwnIHZhbHVlPSRlbnRyeS0+cGllUmVzaWR1ZVNsaWNlTGFiZWx9CgoJe2Fzc2lnbiB2YXI9J2F4aXNUaXRsZXNQb3NpdGlvbicgdmFsdWU9JGVudHJ5LT5heGlzVGl0bGVzUG9zaXRpb259Cgl7YXNzaWduIHZhcj0nZW5hYmxlSW50ZXJhY3Rpdml0eScgdmFsdWU9JGVudHJ5LT5lbmFibGVJbnRlcmFjdGl2aXR5fQoJe2Fzc2lnbiB2YXI9J2ZvY3VzVGFyZ2V0JyB2YWx1ZT0kZW50cnktPmZvY3VzVGFyZ2V0fQoJe2Fzc2lnbiB2YXI9J2hBeGlzJyB2YWx1ZT0kZW50cnktPmhBeGlzfQoJe2Fzc2lnbiB2YXI9J2lzSHRtbCcgdmFsdWU9JGVudHJ5LT5pc0h0bWx9Cgl7YXNzaWduIHZhcj0nc2VyaWVzJyB2YWx1ZT0kZW50cnktPnNlcmllc30KCXthc3NpZ24gdmFyPSd0aGVtZScgdmFsdWU9JGVudHJ5LT50aGVtZX0KCXthc3NpZ24gdmFyPSd0aXRsZVBvc2l0aW9uJyB2YWx1ZT0kZW50cnktPnRpdGxlUG9zaXRpb259CgoJe2Fzc2lnbiB2YXI9J3ZBeGlzJyB2YWx1ZT0kZW50cnktPnZBeGlzfQoJe2Fzc2lnbiB2YXI9J2FnZ3JlZ2F0aW9uVGFyZ2V0JyB2YWx1ZT0kZW50cnktPmFnZ3JlZ2F0aW9uVGFyZ2V0fQoKCXthc3NpZ24gdmFyPSdjdXJ2ZVR5cGUnIHZhbHVlPSRlbnRyeS0+Y3VydmVUeXBlfQoJe2Fzc2lnbiB2YXI9J2ludGVycG9sYXRlZE51bGxzJyB2YWx1ZT0kZW50cnktPmludGVycG9sYXRlZE51bGxzfQoJe2Fzc2lnbiB2YXI9J3ZBeGlzJyB2YWx1ZT0kZW50cnktPnZBeGlzfQoJe2Fzc2lnbiB2YXI9J2xpbmVXaWR0aCcgdmFsdWU9JGVudHJ5LT5saW5lV2lkdGh9Cgl7YXNzaWduIHZhcj0ncG9pbnRTaXplJyB2YWx1ZT0kZW50cnktPnBvaW50U2l6ZX0KCgl7YXNzaWduIHZhcj0naXNTdGFja2VkJyB2YWx1ZT0kZW50cnktPmlzU3RhY2tlZH0KCgl7YXNzaWduIHZhcj0nZ3JvdXBXaWR0aCcgdmFsdWU9JGVudHJ5LT5ncm91cFdpZHRofQoKCXthc3NpZ24gdmFyPSdkYXRhT3BhY2l0eScgdmFsdWU9JGVudHJ5LT5kYXRhT3BhY2l0eX0KCXthc3NpZ24gdmFyPSdhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzJyB2YWx1ZT0kZW50cnktPmF2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXN9Cgl7YXNzaWduIHZhcj0ndGltZWxpbmUnIHZhbHVlPSRlbnRyeS0+dGltZWxpbmV9CgoJeyRjb3VudCsrIGFzc2lnbj0nanVuayd9CnsvZm9yZWFjaH0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+CntsaXRlcmFsfQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICBnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKICAgICAgZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydCk7CiAgICAgIGZ1bmN0aW9uIGRyYXdDaGFydCgpIHsKCS8vIENyZWF0ZSBhbmQgcG9wdWxhdGUgdGhlIGRhdGEgdGFibGUuCgkJdmFyIGRhdGEgPSBnb29nbGUudmlzdWFsaXphdGlvbi5hcnJheVRvRGF0YVRhYmxlKFsKCQl7L2xpdGVyYWx9CgkJe2V2YWwgdmFyPSRkYXRhfQoJCXtsaXRlcmFsfQoJCV0pOwoJCXZhciBvcHRpb25zID0gewoJCXsvbGl0ZXJhbH0KCQkJe2lmICRiYWNrZ3JvdW5kQ29sb3IgbmUgJyd9YmFja2dyb3VuZENvbG9yOiB7JGJhY2tncm91bmRDb2xvcn0sey9pZn0KCQkJe2lmICRjaGFydEFyZWEgbmUgJyd9Y2hhcnRBcmVhOiB7JGNoYXJ0QXJlYX0sey9pZn0KCQkJe2lmICRjb2xvcnMgbmUgJyd9Y29sb3JzOiB7JGNvbG9yc30sey9pZn0KCQkJe2lmICRmb250U2l6ZSBuZSAnJ31mb250U2l6ZTogeyRmb250U2l6ZX0sey9pZn0KCQkJe2lmICRmb250TmFtZSBuZSAnJ31mb250TmFtZTogeyRmb250TmFtZX0sey9pZn0KCQkJe2lmICRoZWlnaHQgbmUgJyd9aGVpZ2h0OiB7JGhlaWdodH0sey9pZn0KCQkJe2lmICRsZWdlbmQgbmUgJyd9bGVnZW5kOiB7JGxlZ2VuZH0sey9pZn0KCQkJe2lmICRyZXZlcnNlQ2F0ZWdvcmllcyBuZSAnJ31yZXZlcnNlQ2F0ZWdvcmllczogeyRyZXZlcnNlQ2F0ZWdvcmllc30sey9pZn0KCQkJe2lmICR0aXRsZVRleHRTdHlsZSBuZSAnJ310aXRsZVRleHRTdHlsZTogeyR0aXRsZVRleHRTdHlsZX0sey9pZn0KCQkJe2lmICR0b29sdGlwIG5lICcnfXRvb2x0aXA6IHskdG9vbHRpcH0sey9pZn0KCQkJe2lmICR3aWR0aCBuZSAnJ313aWR0aDogeyR3aWR0aH0sey9pZn0KCQkJe2lmICRpczNEIG5lICcnfWlzM0Q6IHskaXMzRH0sey9pZn0KCQkJe2lmICRzbGljZXMgbmUgJyd9c2xpY2VzOiB7JHNsaWNlc30sey9pZn0KCQkJe2lmICRwaWVTbGljZUJvcmRlckNvbG9yIG5lICcnfXBpZVNsaWNlQm9yZGVyQ29sb3I6IHskcGllU2xpY2VCb3JkZXJDb2xvcn0sey9pZn0KCQkJe2lmICRwaWVTbGljZVRleHQgbmUgJyd9cGllU2xpY2VUZXh0OiB7JHBpZVNsaWNlVGV4dH0sey9pZn0KCQkJe2lmICRwaWVTbGljZVRleHRTdHlsZSBuZSAnJ31waWVTbGljZVRleHRTdHlsZTogeyRwaWVTbGljZVRleHRTdHlsZX0sey9pZn0KCQkJe2lmICRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQgbmUgJyd9c2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkOiB7JHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZH0sey9pZn0KCQkJe2lmICRwaWVSZXNpZHVlU2xpY2VDb2xvciBuZSAnJ31waWVSZXNpZHVlU2xpY2VDb2xvcjogeyRwaWVSZXNpZHVlU2xpY2VDb2xvcn0sey9pZn0KCQkJe2lmICRwaWVSZXNpZHVlU2xpY2VMYWJlbCBuZSAnJ31waWVSZXNpZHVlU2xpY2VMYWJlbDogeyRwaWVSZXNpZHVlU2xpY2VMYWJlbH0sey9pZn0KCQkJe2lmICRheGlzVGl0bGVzUG9zaXRpb24gbmUgJyd9YXhpc1RpdGxlc1Bvc2l0aW9uOiB7JGF4aXNUaXRsZXNQb3NpdGlvbn0sey9pZn0KCQkJe2lmICRlbmFibGVJbnRlcmFjdGl2aXR5IG5lICcnfWVuYWJsZUludGVyYWN0aXZpdHk6IHskZW5hYmxlSW50ZXJhY3Rpdml0eX0sey9pZn0KCQkJe2lmICRmb2N1c1RhcmdldCBuZSAnJ31mb2N1c1RhcmdldDogeyRmb2N1c1RhcmdldH0sey9pZn0KCQkJe2lmICRoQXhpcyBuZSAnJ31oQXhpczogeyRoQXhpc30sey9pZn0KCQkJe2lmICRpc0h0bWwgbmUgJyd9aXNIdG1sOiB7JGlzSHRtbH0sey9pZn0KCQkJe2lmICRzZXJpZXMgbmUgJyd9c2VyaWVzOiB7JHNlcmllc30sey9pZn0KCQkJe2lmICR0aGVtZSBuZSAnJ310aGVtZTogeyR0aGVtZX0sey9pZn0KCQkJe2lmICR0aXRsZVBvc2l0aW9uIG5lICcnfXRpdGxlUG9zaXRpb246IHskdGl0bGVQb3NpdGlvbn0sey9pZn0KCQkJe2lmICR2QXhlcyBuZSAnJ312QXhlczogeyR2QXhlc30sey9pZn0KCQkJe2lmICRhZ2dyZWdhdGlvblRhcmdldCBuZSAnJ31hZ2dyZWdhdGlvblRhcmdldDogeyRhZ2dyZWdhdGlvblRhcmdldH0sey9pZn0KCQkJe2lmICRjdXJ2ZVR5cGUgbmUgJyd9Y3VydmVUeXBlOiB7JGN1cnZlVHlwZX0sey9pZn0KCQkJe2lmICRpbnRlcnBvbGF0ZWROdWxscyBuZSAnJ31pbnRlcnBvbGF0ZWROdWxsczogeyRpbnRlcnBvbGF0ZWROdWxsc30sey9pZn0KCQkJe2lmICR2QXhpcyBuZSAnJ312QXhpczogeyR2QXhpc30sey9pZn0KCQkJe2lmICRsaW5lV2lkdGggbmUgJyd9bGluZVdpZHRoOiB7JGxpbmVXaWR0aH0sey9pZn0KCQkJe2lmICRwb2ludFNpemUgbmUgJyd9cG9pbnRTaXplOiB7JHBvaW50U2l6ZX0sey9pZn0KCQkJe2lmICRpc1N0YWNrZWQgbmUgJyd9aXNTdGFja2VkOiB7JGlzU3RhY2tlZH0sey9pZn0KCQkJe2lmICRncm91cFdpZHRoIG5lICcnfWdyb3VwV2lkdGg6IHskZ3JvdXBXaWR0aH0sey9pZn0KCQkJe2lmICRkYXRhT3BhY2l0eSBuZSAnJ31kYXRhT3BhY2l0eTogeyRkYXRhT3BhY2l0eX0sey9pZn0KCQkJe2lmICRhdm9pZE92ZXJsYXBwaW5nR3JpZExpbmVzIG5lICcnfWF2b2lkT3ZlcmxhcHBpbmdHcmlkTGluZXM6IHskYXZvaWRPdmVybGFwcGluZ0dyaWRMaW5lc30sey9pZn0KCQkJe2lmICR0aW1lbGluZSBuZSAnJ310aW1lbGluZTogeyR0aW1lbGluZX0sey9pZn0KCQkJe2lmICR0aXRsZSBuZSAnJ310aXRsZTogJ3skdGl0bGV9J3tlbHNlIGlmICRuYW1lIG5lICcnfXRpdGxlOiAneyRuYW1lfSd7L2lmfQoJCXtsaXRlcmFsfQoJCX07CgkJLy8gQ3JlYXRlIGFuZCBkcmF3IHRoZSB2aXN1YWxpemF0aW9uLgoJCXZhciBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi57L2xpdGVyYWx9e2lmICRjYXRlZ29yeSA9PSAnMSd9UGllQ2hhcnR7ZWxzZWlmICRjYXRlZ29yeSA9PSAnMid9TGluZUNoYXJ0e2Vsc2VpZiAkY2F0ZWdvcnkgPT0gJzMnfUJhckNoYXJ0e2Vsc2VpZiAkY2F0ZWdvcnkgPT0gJzQnfUNvbHVtbkNoYXJ0e2Vsc2VpZiAkY2F0ZWdvcnkgPT0gJzUnfUhpc3RvZ3JhbXtlbHNlaWYgJGNhdGVnb3J5ID09ICc2J31UaW1lbGluZXsvaWZ9e2xpdGVyYWx9KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd7L2xpdGVyYWx9e2lmICRlbGVtZW50ID09ICcnfWNoYXJ0LXskY2hhcnRpZH17ZWxzZX17JGVsZW1lbnR9ey9pZn17bGl0ZXJhbH0nKSk7CiAgICAgICAgY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCX0KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0Ke2lmICRlbGVtZW50ID09ICcnfTxkaXYgaWQ9ImNoYXJ0LXskY2hhcnRpZH0iPjwvZGl2PnsvaWZ9]]></data>
	</file>
</module>
