<?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>SEOTools2</name>
	<version>1.1.1</version>
  <mincmsversion>1.10</mincmsversion>
	<help><![CDATA[PHN0eWxlPmRpdi5zZW8yIHAsIGRpdi5zZW8yIGxpLCBkaXYuc2VvMiBkaXYge21hcmdpbi1ib3R0b206IDEuMmVtO31saXtsaXN0LXN0eWxlLXR5cGU6c3F1YXJlfTwvc3R5bGU+CjxkaXYgY2xhc3M9InNlbzIiPgo8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+U0VPVG9vbHMyIGhlbHBzIHlvdSB0byBnZXQgeW91ciBTRU8gKFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uKSByaWdodC4gVGhlIG1vZHVsZSBhZGRzIHNldmVyYWwgU0VPIGNhcGFiaWxpdGllcyB0byB5b3VyIENNU01TIGluc3RhbGxhdGlvbiBhbmQgYWxlcnRzIHlvdSBpZiB5b3UgbWlzc2VkIG91dCBvbiBzb21ldGhpbmcgU0VPIHJlbGF0ZWQuIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOjwvcD4KPHVsPgo8bGk+IGdlbmVyYXRlcyBNZXRhIHRhZ3MgaW4gc3RhbmRhcmQgaHRtbCwgRHVibGluIENvcmUgYW5kIE9wZW5HcmFwaCBmb3JtYXRzPC9saT4KPGxpPiBhdXRvbWF0aWNhbGx5IGV4dHJhY3RzIGtleXdvcmRzIGZyb20geW91ciBwYWdlcyBhbmQgYWRkcyB0aGVtIHRvIHRoZSBtZXRhIHRhZ3MgYW5kIHBhZ2UgdGl0bGU8L2xpPgo8bGk+IGxldHMgeW91IGRldGVybWluZSB3aXRoIGEgc2luZ2xlIGNsaWNrIHdoZXRoZXIgY2VydGFpbiBwYWdlcyBzaG91bGQgYmUgaW5kZXhlZCBieSBzZWFyY2ggZW5naW5lcyBvciBub3Q8L2xpPgo8bGk+IGdlbmVyYXRlcyBhIHNpdGVtYXAueG1sIGZpbGUgd2l0aCB5b3VyIHBhZ2VzIHdoaWxlIGdpdmluZyB5b3UgZnVsbCBjb250cm9sIG92ZXIgdGhlIHByaW9yaXRpZXMgb2YgeW91ciBwYWdlczwvbGk+CjxsaT4gZ2VuZXJhdGVzIGEgcm9ib3RzLnR4dCBmaWxlIGV4cGxpY2l0bHkgZGlzYWxsb3dpbmcgYWNjZXNzIHRvIHBhZ2VzIHlvdSBkb24ndCB3YW50IHRvIGJlIGluZGV4ZWQ8L2xpPgo8bGk+IGFsZXJ0cyB5b3Ugd2hlbiB0aGVyZSBhcmUgc2V2ZXJhbCBwYWdlcyBmZWF0dXJpbmcgdGhlIHNhbWUgcGFnZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9uczwvbGk+CjxsaT4gYWxlcnRzIHlvdSB3aGVuIHZlcnkgc2hvcnQgcGFnZSBtZXRhIGRlc2NyaXB0aW9ucyBhcmUgZGV0ZWN0ZWQ8L2xpPgo8bGk+IGF1dG9tYXRpY2FsbHkgc3VibWl0cyB5b3VyIHNpdGVtYXAgZmlsZSB0byBHb29nbGUgd2hlbiB5b3UgY2hhbmdlIHlvdXIgY29udGVudDwvbGk+CjwvdWw+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5GaXJzdCwgb3BlbiBhbGwgdGVtcGxhdGVzIHdoZXJlIHlvdSB3YW50IGRvIHVzZSBTRU9Ub29sczIuIFJlbW92ZSB0aGUgY29tcGxldGUgJmx0O3RpdGxlJmd0OyB0YWcgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgbW9kdWxlIHRhZy4gWW91IG1heSBhbHNvIHdpc2ggdG8gcmVtb3ZlIHRoZSB7bWV0YWRhdGF9IHRhZy4gU2hvdWxkIHlvdSBlbGVjdCB0byBsZWF2ZSBpdCB0aGVyZSwgZW5zdXJlIHRoYXQgbm8gbWV0YSB0YWdzIGFyZSBkdXBsaWNhdGVkLiBSZW1vdmUgYW55IGR1cGxpY2F0ZXMgZnJvbSBTaXRlIEFkbWluIC0gR2xvYmFsIFNldHRpbmdzIC0gR2xvYmFsIE1ldGFkYXRhLiA8L3A+CjxwcmU+CntTRU9Ub29sczJ9CjwvcHJlPjxiciAvPgoKPHA+SWYgeW91IGxlZnQgdGhlIHttZXRhZGF0YX0gdGFnIGluIHRoZSB0ZW1wbGF0ZSwgeW91IGNhbiBhbHRlcm5hdGl2ZWx5IHBsYWNlIHRoZSB7U0VPVG9vbHMyfSB0YWcgaW4gdGhlIEdsb2JhbCBNZXRhIHRleHRhcmVhLjwvcD4KPHA+PGVtPlRpcDwvZW0+OiBJZiB5b3UndmUgcmVtb3ZlZCB0aGUge21ldGFkYXRhfSB0YWcsIHJlbWVtYmVyIHRvIGFkZCB0aGUgPGVtPnNob3diYXNlID0gJ3RydWUnPC9lbT4gcGFyYW1ldGVyIHRvIG91dHB1dCB0aGUgJmx0O2Jhc2UmZ3Q7IHRhZy48L3A+CjxwPk5leHQsIGF0IHRoZSBib3R0b20gb2YgeW91ciB0ZW1wbGF0ZSAoYWZ0ZXIgdGhlIGNsb3NpbmcgJmx0Oy9ib2R5Jmd0OyB0YWcpLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBjb2RlOjwvcD4KPHByZT4Ke2NhcHR1cmUgYXNzaWduPSJtZXRhZGVzY3JpcHRpb24ifXtjb250ZW50IGJsb2NrPSJtZXRhZGVzY3JpcHRpb24iIGxhYmVsPSJQYWdlIERlc2NyaXB0aW9uIiBvbmVsaW5lPSJ0cnVlIn17L2NhcHR1cmV9CjwvcHJlPjxiciAvPgoKPHA+VGhpcyBpcyB3aGVyZSB5b3UnbGwgZW50ZXIgYSBzaG9ydCBwYWdlIGRlc2NyaXB0aW9uIChvbmUgb3IgdHdvIHNlbnRlbmNlcykgdGhhdCB3aWxsIGFwcGVhciBpbiB0aGUgc2VhcmNoIGVuZ2luZSdzIHJlc3VsdHMgYW5kIGlmLCBmb3IgZXhhbXBsZSwgc29tZW9uZSBzaGFyZXMgYSBsaW5rIHRvIHlvdXIgcGFnZSBvbiBmYWNlYm9vay48L3A+CjxwPlNlZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvdmlld3RvcGljLnBocD9mPTQmdD02MTUxNiZoaWxpdD1zZW90b29sczIiPlNFT1Rvb2xzMiB3aXRoIGRldGFpbCBwYWdlczwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy92aWV3dG9waWMucGhwP2Y9NCZ0PTYxNTE1JmhpbGl0PXNlb3Rvb2xzMiI+U0VPVG9vbHMyIHdpdGggZ3JvdXBzIG9mIGtleXdvcmRzPC9hPiBmb3Igc29tZSBtb3JlIGNyZWF0aXZlIHdheXMgb2YgdXNpbmcgdGhlIG1ldGFkZXNjcmlwdGlvbiBhbmQga2V5d29yZCB2YXJpYWJsZXMuPC9wPgo8cD5Ob3csIHZpc2l0IHRoZSBhZG1pbiB0YWJzIGZvciA8ZW0+UGFnZSBUaXRsZSAmIE1ldGEgSW5mb3JtYXRpb248L2VtPiwgdGhlIDxlbT5TaXRlbWFwICYgQ3Jhd2xlciBTZXR0aW5nczwvZW0+IGFuZCB0aGUgPGVtPktleXdvcmQgR2VuZXJhdG9yIFNldHRpbmdzPC9lbT4gYW5kIGZpbGwgaW4gYWxsIHJlcXVpcmVkIGluZm9ybWF0aW9uIGZvciB5b3VyIHNpdGUuIFVuZGVyICJOYW1lIG9mIHBhZ2UgZGVzY3JpcHRpb24gY29udGVudCBibG9jayIgeW91IG5lZWQgdG8gZW50ZXIgdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2sgeW91IGp1c3QgYWRkZWQgdG8geW91ciB0ZW1wbGF0ZXMgKCJtZXRhZGVzY3JpcHRpb24iIGluIG91ciBleGFtcGxlKS48L3A+CjxwPlRoZSB0YWIgIlNFTyBBbGVydHMiIHdpbGwgYWxlcnQgeW91IGlmIGl0IGRldGVjdHMgYW55dGhpbmcgdGhhdCBpcyByZXF1aXJlZCBidXQgbm90IGFjdGl2YXRlZCBvciBmaWxsZWQgaW4uIFlvdSBzaG91bGQgYWxzbyBjb25zaWRlciBzaWduaW5nIHVwIHlvdXIKc2l0ZSB3aXRoIEdvb2dsZSBXZWJtYXN0ZXIgdG9vbHMuIFRoZXJlLCBzZWxlY3QgIk1ldGEgdGFnIHZhbGlkYXRpb24iIGFuZCBwYXN0ZSB0aGUgdmVyaWZpY2F0aW9uIGNvZGUgKHF1aXRlIGEgbG9uZyBzdHJpbmcgb2YgY2hhcmFjdGVycyBhbmQgbnVtYmVycykgaW50byB0aGUgYm94ICJWZXJpZmljYXRpb24gQ29kZSIgaW4gIlNFTyBTZXR0aW5ncyIgdG8gYXV0b21hdGljYWxseSB2ZXJpZnkgdGhhdCB5b3UgYXJlIHJlYWxseQp0aGUgb3duZXIgb2YgeW91ciBwYWdlIChubyBuZWVkIHRvIHBhc3RlIHRoZSBHb29nbGUgTWV0YS1jb2RlIGludG8geW91ciB0ZW1wbGF0ZSkuPC9wPgo8cD5BcyBzb29uIGFzIGV2ZXJ5dGhpbmcgaXMgc2V0IHVwLCBsb29rIGF0IHRoZSAiU0VPIEFsZXJ0cyIgdGFiIGFuZCBmaXggYWxsIHByb2JsZW1zIGRldGVjdGVkIGhlcmUuIFRha2UgY2FyZSB0byBpbnNlcnQgYSAodW5pcXVlKSBwYWdlIGRlc2NyaXB0aW9uIG9uIGV2ZXJ5IHBhZ2UgeW91IGVkaXQgaW4gdGhlIGZpZWxkIGxhYmVsbGVkICJQYWdlIERlc2NyaXB0aW9uIiBhdCB0aGUgYm90dG9tIG9mIHlvdXIgIkVkaXQgUGFnZSIgZm9ybS48L3A+CjxwPkdvIHRvIHRoZSA8ZW0+UGFnZSBzZXR0aW5nczwvZW0+IHRhYiB3aGVyZSB5b3UnbGwgZmluZCBhIGxpc3Qgb2YgYWxsIHBhZ2VzIHlvdSBoYXZlIGluIHlvdXIgc3lzdGVtLiBIZXJlLCB5b3UgY2FuOjwvcD4KPHVsPgo8bGk+U2V0IHlvdXIgb3duIGtleXdvcmRzIChpbnN0ZWFkIG9mIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBvbmVzKSBvciBPcGVuR3JhcGggdHlwZSBmb3IgY2VydGFpbiBwYWdlczwvbGk+CjxsaT5BZGp1c3QgdGhlIHNpdGVtYXAgcHJpb3JpdHkgKHdoaWNoIGlzIGF1dG8tY2FsY3VsYXRlZCBieSBkZWZhdWx0KSBvZiBhIHBhZ2UgdG8gaW5kaWNhdGUgdGhhdCBpdCBzaG91bGQKYmUgY29uc2lkZXJlZCBtb3JlIGltcG9ydGFudCBmb3Igc2VhcmNoIGVuZ2luZSBtYXRjaGVzIG9uIHlvdXIgcGFnZS48L2xpPgo8bGk+UHJldmVudCBhY3RpdmUgcGFnZXMgZnJvbSBiZWluZyBsaXN0ZWQgaW4gdGhlIFNpdGUgTWFwPC9saT4KPGxpPlNwZWNpZnkgd2hldGhlciByb2JvdHMgc2hvdWxkIGluZGV4IG9yIGZvbGxvdyB0aGUgcGFnZSBhbmQgbGlua3M8L2xpPgo8L3VsPgo8cD5TRU9Ub29sczIgd2lsbCBhbHNvIGF1dG9tYXRpY2FsbHkgaW5zZXJ0IGEgbGluayB0byB0aGUgaW1hZ2UgdG8gYmUgdXNlZCBhcyB0aGUgbWFpbiBpbWFnZSBvZiB5b3VyIHBhZ2UgaWYgeW91IHNlbGVjdCBhbiAiSW1hZ2UiIGZvciB0aGUgcGFnZSBmcm9tIHdpdGhpbiB5b3VyIHBhZ2UncyAiT3B0aW9ucyIgdGFiICh0aGlzIGlzIGltcG9ydGFudCBmb3IgcGVvcGxlIHN1Ym1pdHRpbmcgYSBsaW5rIHRvIHlvdXIgcGFnZSBlLmcuIG9uIGZhY2Vib29rKS4gQWxzbywgaWYgeW91IGFyZSB1c2luZyBPcGVuR3JhcGgsIHRoZSBpbWFnZSBzZWxlY3RlZCBoZXJlCndpbGwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgT3BlbkdyYXBoIGltYWdlIHlvdSBzcGVjaWZpZWQgZnJvbSB3aXRoaW4gIlNFTyBTZXR0aW5ncyIuIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHlvdSBuZWVkIHRvIHVwbG9hZCB0aG9zZSBpbWFnZXMgdG8geW91ciAvdXBsb2Fkcy9pbWFnZXMgZGlyZWN0b3J5LjwvcD4KPGgzPkNhbiBJIHVzZSBzbWFydHkgdmFyaWFibGVzPzwvaDM+CjxwPllvdSBjYW4gdXNlIGFsbCBzbWFydHkgdmFyaWFibGVzIGFuZCBVRFRzIHdpdGhpbiB0aGUgc2V0dGluZ3MgZmllbGRzIDxpPlBhZ2UgdGl0bGU8L2k+LCA8aT5NZXRhIHBhZ2UgdGl0bGU8L2k+LCA8aT5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBkZXNjcmlwdGlvbnM8L2k+LCA8aT5NZXRhIGNvcHlyaWdodDwvaT4sIDxpPkFkZGl0aW9uYWwgbWV0YSB0YWdzPC9pPiBhbmQgeW91ciBjdXN0b20gcGFnZSBkZXNjcmlwdGlvbiBibG9jay4gRW50ZXIgPGNvZGU+e2RlYnVnfTwvY29kZT4gdG8gc2VlIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIHZhcmlhYmxlcy48L3A+CjxoMz5XaGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBleHBvcnRlZCBieSBTRU9Ub29sczI/PC9oMz4KPGNvZGU+eyRzZW9fa2V5d29yZHN9PC9jb2RlPjogQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBhbGwga2V5d29yZHMgc2V0IGZvciB0aGUgcGFnZSAoaW5jbHVkaW5nIHRoZSBkZWZhdWx0IGtleXdvcmRzKTxiciAvPgo8Y29kZT57JHRpdGxlX2tleXdvcmRzfTwvY29kZT46IEEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGtleXdvcmRzIHNldCBmb3IgdGhlIHBhZ2UgKGluY2x1ZGluZyB0aGUgZGVmYXVsdCBrZXl3b3Jkcyk8YnIgLz4KPGNvZGU+eyRkZWZhdWx0X2tleXdvcmRzfTwvY29kZT46IEEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGRlZmF1bHQga2V5d29yZHM8YnIgLz4KPGNvZGU+eyRwYWdlX2tleXdvcmRzfTwvY29kZT46IEEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGtleXdvcmRzIHNldCBmb3IgdGhlIHBhZ2UgKHdpdGhvdXQgdGhlIGRlZmF1bHQga2V5d29yZHMpPGJyIC8+CjxwPjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEyLCBDbGlwIE1hZ2ljIDxhIGhyZWY9Im1haWx0bzphZG1pbkBjbGlwbWFnaWMuY29tLmF1Ij4mbHQ7YWRtaW5AY2xpcG1hZ2ljLmNvbS5hdSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+CjwvZGl2PjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3diYXNlPSJ0cnVlIiAtIFNldCB0aGlzIHBhcmFtZXRlciB0byA8Y29kZT5mYWxzZTwvY29kZT4gdG8gc3VwcHJlc3MgdGhlIG91dHB1dCBvZiB0aGUgYmFzZSBocmVmIHRhZy48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBDbGlwIE1hZ2ljICZsdDthZG1pbkBjbGlwbWFnaWMuY29tLmF1Jmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMS4xPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgo8bGk+VmVyc2lvbiAxLjAgLSAyNSBKYW51YXJ5IDIwMTIuIEluaXRpYWwgcmVsZWFzZS4gVGhpcyBpcyBhIGZvcmsgb2YgdGhlIFNFT1Rvb2xzIG1vZHVsZSB3aXRoIENNU01TIDEuMTArIGNvbXBhdGliaWxpdHkuIENoYW5nZXMgaW5jbHVkZToKCTx1bD4KCQk8bGk+U2V0IHByZWZlcmVuY2VzIG9uIGluc3RhbGw8L2xpPgoJCTxsaT5SZW1vdmUgcHJlZmVyZW5jZXMgb24gdW5pbnN0YWxsPC9saT4KCQk8bGk+UmVwbGFjZSBhbGwgcmVmZXJlbmNlIHRvIEhpZXJhcmNoeU1hbmFnZXIgb2JqZWN0cyB3aXRoIENvbnRlbnRPcGVyYXRpb25zIG9iamVjdHM8L2xpPgoJCTxsaT5HZW5lcmF0ZSBhbGwga2V5d29yZHMsIGtleXdvcmQgc3VnZ2VzdGlvbnMsIGRlc2NyaXB0aW9ucyBhbmQgZGVmYXVsdCBkZXNjcmlwdGlvbnM8L2xpPgoJCTxsaT5HZW5lcmF0ZSBzaXRlbWFwLnhtbCBhbmQgcm9ib3RzLnR4dCBmaWxlczwvbGk+CgkJPGxpPlJldGFpbiBjaGVja2JveCBwcmVmZXJlbmNlIHNldHRpbmdzIGFmdGVyIHN1Ym1pdDwvbGk+CgkJPGxpPk9uIGZyb250ZW5kIHBhZ2UgbG9hZCwgZW5zdXJlIHRoYXQgYSBjb3JyZXNwb25kaW5nIHJlY29yZCBleGlzdHMgaW4gdGhlIHNlb3Rvb2xzMiBkYXRhYmFzZSB0YWJsZTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMSAtIDI1IEphbnVhcnkgMjAxMi4gTWlub3IgYnVnIGZpeDwvbGk+CjxsaT5WZXJzaW9uIDEuMC4yIC0gMSBGZWJydWFyeSAyMDEyLiBCdWcgZml4PC9saT4KPGxpPlZlcnNpb24gMS4wLjMgLSAxIEZlYnJ1YXJ5IDIwMTIuIEJ1ZyBmaXg8L2xpPgo8bGk+VmVyc2lvbiAxLjAuNCAtIDEgRmVicnVhcnkgMjAxMi4gQ29ycmVjdGlvbjwvbGk+CjxsaT5WZXJzaW9uIDEuMC41IC0gNiBGZWJydWFyeSAyMDEyLiBBZGQgZXZlbnQgaGFuZGxlcnMgdG8gcHVzaCBzaXRlbWFwIHRvIEdvb2dsZSB3ZWJtYXN0ZXJzPC9saT4KPGxpPlZlcnNpb24gMS4wLjYgLSA1IE1hcmNoIDIwMTIuIEltcHJvdmVkIGhhbmRsaW5nIG9mIHNzbCB1cmxzIGFuZCBidWcgZml4IHdoZW4gdGhlcmUgYXJlIG5vIHNob3J0IG1ldGEgZGVzY3JpcHRpb25zPC9saT4KPGxpPlZlcnNpb24gMS4wLjcgLSA5IEFwcmlsIDIwMTIuIEJ1ZyBmaXg8L2xpPgo8bGk+VmVyc2lvbiAxLjAuOCAtIDkgQXByaWwgMjAxMi4gQnVnIGZpeDwvbGk+CjxsaT5WZXJzaW9uIDEuMC45IC0gMTEgQXByaWwgMjAxMi4KICAgIDx1bD4KICAgICAgICA8bGk+TW9yZSBpbXByb3ZlbWVudHMgdG8gc3NsIGhhbmRsaW5nIGVzcGVjaWFsbHkgaW4gdGhlIHNpdGVtYXAueG1sICh0aGFua3MgYW5kcmllc2luZm9zZXJ2KTwvbGk+CiAgICAgICAgPGxpPkFiaWxpdHkgdG8gc2hvdyBhbnkgQWN0aXZlIHBhZ2UsIG5vdCBqdXN0IHBhZ2VzIHdpdGggQWN0aXZlIGFuZCBTaG93IEluIE1lbnUgaW4gdGhlIHNpdGVtYXAueG1sICh0aGFua3MgTWF0dCk8L2xpPgogICAgPC91bD4KPGxpPlZlcnNpb24gMS4wLjEwIC0gMjQgTWF5IDIwMTIgLSBtb3N0bHkgaW1wcm92ZW1lbnRzIGluIHRoZSBzaXRlbWFwIGFyZWEsIGllOgogICAgPHVsPgogICAgICAgIDxsaT5BbGxvd3Mgc2l0ZW1hcCBpbmRleGluZyBvZiBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgVVJMIGxpbmtzPC9saT4KICAgICAgICA8bGk+RmlsdGVycyBvdXQgRXJyb3IgUGFnZSBmcm9tIHNpdGVtYXAueG1sPC9saT4KICAgIDwvdWw+CjxsaT5WZXJzaW9uIDEuMC4xMSAtIDE0IEF1Z3VzdCAyMDEyLiBDTVNNUyAxLjExIGNvbXBhdGliaWxpdHkgKHRoYW5rcyBsZWVyb3licnVuIGFuZCBwb3N0aWZmbSk8L2xpPgo8bGk+VmVyc2lvbiAxLjEgLSA4IFNlcHRlbWJlciAyMDEyLiBCZXR0ZXIgZnV0dXJlLXByb29maW5nIGZvciBDTVNNUyAxLjExIGNvbXBhdGliaWxpdHksIGJ1ZyBmaXggYW5kIGEgZmV3IG1vcmUgZmVhdHVyZXMKCTx1bD4KCQk8bGk+T3B0aW9uIHRvIGluY2x1ZGUgZm9sbG93L25vZm9sbG93IGFzIHdlbGwgYXMgaW5kZXgvbm9pbmRleCB0byBtZXRhIHJvYm90cyB0YWc8L2xpPgoJCTxsaT5KcXVlcnkgYWpheCBzdXBwb3J0IGZvciBQcmlvcml0eSwgSW5kZXggYW5kIEZvbGxvdyB0b2dnbGluZy48L2xpPgoJCTxsaT5Qcm9jZXNzIHNtYXJ0eSB0YWdzIGluIHRoZSBtZXRhIGRlc2NyaXB0aW9uIGFuZCBtZXRhIGNvcHlyaWdodCBmaWVsZHM8L2xpPgoJCTxsaT5JbmNsdWRlIG1ldGEgdmlld3BvcnQgdGFnIGJ5IGRlZmF1bHQgdG8gdGhlIGFkZGl0aW9uYWwgbWV0YSB0YWdzPC9saT4KCQk8bGk+S2V5d29yZCBlZGl0IHNjcmVlbiBub3cgc2hvd3MgYSBwcmV2aWV3IG9mIHRoZSBwYWdlIGNvbnRlbnQgZm9yIHF1aWNrIHJlZmVyZW5jZSwgYXMgd2VsbCBhcyBsaW5rcyB0byBlZGl0IG9yIHZpZXcgdGhlIGZyb250ZW5kIHZlcnNpb24gb2YgdGhlIHBhZ2UuPC9saT4KCQk8bGk+UmVzdHJ1Y3R1cmVkIGRlZmF1bHRhZG1pbiB0YWIgZmlsZXMgdG8gYmUgYSBsaXR0bGUgbW9yZSBtYW5hZ2VhYmxlLjwvbGk+CgkJPGxpPk91dHB1dHMgb25seSBIVE1MNSByZWdpc3RlcmVkIG1ldGEgdGFncyB3aGVuIEhUTUw1IGlzIHNwZWNpZmllZC4gKFRoYW5rcyB1bmlxdTMpPC9saT4KCQk8bGk+VXNlcyBjYW5vbmljYWwgVVJMIHdoZW4gYXZhaWxhYmxlLiAoVGhhbmtzIGluZm9hbmRyaWVzKTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjEuMSAtIDE1IFNlcHRlbWJlciAyMDEyLiBCdWcgZml4PC9saT4KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[Helps with SEO in general, automatically generating XML sitemaps and comprehensive meta descriptions]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.changesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgQWN0aW9uOiBjaGFuZ2VzZXR0aW5ncwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmICghICR0aGlzLT5DaGVja0FjY2VzcygiRWRpdCBTRU8gU2V0dGluZ3MiKSkKewogIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgovLyBSZWdlbmVyYXRlIFNpdGVtYXAgYW5kIHJvYm90cy50eHQKaWYgKGlzc2V0KCRfUE9TVFsnZG9fcmVnZW5lcmF0ZSddKSkgewogICR0aGlzLT5jcmVhdGVTaXRlbWFwKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLDEpID09IDEpOwogIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3JvYm90cycsMSkgPT0gMSkgewogICAgJHRoaXMtPmNyZWF0ZVJvYm90c1RYVCgpOwogIH0KICAkdGhpcy0+YXVkaXQoIlRlc3QiLCJTRU8gVG9vbHMiLCJNYW51YWxseSByZWdlbmVyYXRlZCBzaXRlbWFwLnhtbCBhbmQgcm9ib3RzLnR4dCIpOwogICR0aGlzLT5SZWRpcmVjdCgkdGhpcy0+aWQsICdkZWZhdWx0YWRtaW4nLCAnJywgQXJyYXkoJ21lc3NhZ2UnPT4nc2l0ZW1hcF9yZWdlbmVyYXRlZCcsJ3RhYic9PidzaXRlbWFwc2V0dGluZ3MnKSk7Cn0KCmlmIChpc3NldCgkX1BPU1RbJ3NhdmVfbWV0YV9zZXR0aW5ncyddKSkgewogICAKICAkbWV0YV9zdGFuZGFyZCA9IGlzc2V0KCRfUE9TVFsnbWV0YV9zdGFuZGFyZCddKSA/IDEgOiAwOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX3N0YW5kYXJkJywkbWV0YV9zdGFuZGFyZCk7CgogICRtZXRhX2R1YmxpbmNvcmUgPSBpc3NldCgkX1BPU1RbJ21ldGFfZHVibGluY29yZSddKSA/IDEgOiAwOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2R1YmxpbmNvcmUnLCRtZXRhX2R1YmxpbmNvcmUpOwoKICAkbWV0YV9vcGVuZ3JhcGggPSBpc3NldCgkX1BPU1RbJ21ldGFfb3BlbmdyYXBoJ10pID8gMSA6IDA7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoJywkbWV0YV9vcGVuZ3JhcGgpOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnLCRfUE9TVFsnYWRkaXRpb25hbF9tZXRhX3RhZ3MnXSk7CgogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX3B1Ymxpc2hlcicsJF9QT1NUWydtZXRhX3B1Ymxpc2hlciddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9jb250cmlidXRvcicsJF9QT1NUWydtZXRhX2NvbnRyaWJ1dG9yJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2NvcHlyaWdodCcsJF9QT1NUWydtZXRhX2NvcHlyaWdodCddKTsKCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCRfUE9TVFsnbWV0YV9sb2NhdGlvbiddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCRfUE9TVFsnbWV0YV9yZWdpb24nXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnLCRfUE9TVFsnbWV0YV9sYXRpdHVkZSddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9sb25naXR1ZGUnLCRfUE9TVFsnbWV0YV9sb25naXR1ZGUnXSk7CgogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF90aXRsZScsJF9QT1NUWydtZXRhX29wZW5ncmFwaF90aXRsZSddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdHlwZScsJF9QT1NUWydtZXRhX29wZW5ncmFwaF90eXBlJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9zaXRlbmFtZScsJF9QT1NUWydtZXRhX29wZW5ncmFwaF9zaXRlbmFtZSddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnLCRfUE9TVFsnbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FkbWlucycsJF9QT1NUWydtZXRhX29wZW5ncmFwaF9hZG1pbnMnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJywkX1BPU1RbJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJ10pOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndGl0bGUnLCRfUE9TVFsndGl0bGUnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RpdGxlX21ldGEnLCRfUE9TVFsndGl0bGVfbWV0YSddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCRfUE9TVFsnZGVzY3JpcHRpb25fYmxvY2snXSk7CgoKICAkZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZSA9IGlzc2V0KCRfUE9TVFsnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZSddKSA/IDEgOiAwOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsJGRlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUpOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0bycsJF9QT1NUWydkZXNjcmlwdGlvbl9hdXRvJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2tleXdvcmRzJywkX1BPU1RbJ2RlZmF1bHRfa2V5d29yZHMnXSk7CgogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2RvY3R5cGUnLCRfUE9TVFsnbWV0YV9kb2N0eXBlJ10pOwogIAogICRjb21waWxlX3VkdHMgPSBpc3NldCgkX1BPU1RbJ2NvbXBpbGVfdWR0cyddKSA/IDEgOiAwOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjb21waWxlX3VkdHMnLCRjb21waWxlX3VkdHMpOwogICAgCiAgJHRoaXMtPmF1ZGl0KCJUZXN0IiwiU0VPIFRvb2xzIiwiRWRpdGVkIE1ldGEgc2V0dGluZ3MiKTsKICAkdGhpcy0+UmVkaXJlY3QoJHRoaXMtPmlkLCAnZGVmYXVsdGFkbWluJywgJycsIEFycmF5KCdtZXNzYWdlJz0+J3NldHRpbmdzX3VwZGF0ZWQnLCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwp9CgppZiAoaXNzZXQoJF9QT1NUWydzYXZlX3NpdGVtYXBfc2V0dGluZ3MnXSkpIHsKCiAgJGNyZWF0ZV9zaXRlbWFwID0gaXNzZXQoJF9QT1NUWydjcmVhdGVfc2l0ZW1hcCddKSA/IDEgOiAwOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcsJGNyZWF0ZV9zaXRlbWFwKTsKCiAgJHB1c2hfc2l0ZW1hcCA9IGlzc2V0KCRfUE9TVFsncHVzaF9zaXRlbWFwJ10pID8gMSA6IDA7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3B1c2hfc2l0ZW1hcCcsJHB1c2hfc2l0ZW1hcCk7CgogICRjcmVhdGVfcm9ib3RzID0gaXNzZXQoJF9QT1NUWydjcmVhdGVfcm9ib3RzJ10pID8gMSA6IDA7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NyZWF0ZV9yb2JvdHMnLCRjcmVhdGVfcm9ib3RzKTsKCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3ZlcmlmaWNhdGlvbicsJF9QT1NUWyd2ZXJpZmljYXRpb24nXSk7CgogICR0aGlzLT5hdWRpdCgiVGVzdCIsIlNFTyBUb29scyIsIkVkaXRlZCBTaXRlbWFwIHNldHRpbmdzIik7CiAgJHRoaXMtPlJlZGlyZWN0KCR0aGlzLT5pZCwgJ2RlZmF1bHRhZG1pbicsICcnLCBBcnJheSgnbWVzc2FnZSc9PidzZXR0aW5nc191cGRhdGVkJywndGFiJz0+J3NpdGVtYXBzZXR0aW5ncycpKTsKfQoKaWYgKGlzc2V0KCRfUE9TVFsnc2F2ZV9rZXl3b3JkX3NldHRpbmdzJ10pKSB7CgogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX21pbmxlbmd0aCcsJF9QT1NUWydrZXl3b3JkX21pbmxlbmd0aCddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF90aXRsZV93ZWlnaHQnLCRfUE9TVFsna2V5d29yZF90aXRsZV93ZWlnaHQnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0JywkX1BPU1RbJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0J10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2hlYWRsaW5lX3dlaWdodCcsJF9QT1NUWydrZXl3b3JkX2hlYWRsaW5lX3dlaWdodCddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9jb250ZW50X3dlaWdodCcsJF9QT1NUWydrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0J10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX21pbmltdW1fd2VpZ2h0JywkX1BPU1RbJ2tleXdvcmRfbWluaW11bV93ZWlnaHQnXSk7CgogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2V4Y2x1ZGUnLCRfUE9TVFsna2V5d29yZF9leGNsdWRlJ10pOwoKCgogICR0aGlzLT5hdWRpdCgiVGVzdCIsIlNFTyBUb29scyIsIkVkaXRlZCBLZXl3b3JkIHNldHRpbmdzIik7CiAgJHRoaXMtPlJlZGlyZWN0KCR0aGlzLT5pZCwgJ2RlZmF1bHRhZG1pbicsICcnLCBBcnJheSgnbWVzc2FnZSc9PidzZXR0aW5nc191cGRhdGVkJywndGFiJz0+J2tleXdvcmRzZXR0aW5ncycpKTsKfQoKLy8gRG8gZXZlbnRzCiR0aGlzLT5TZW5kRXZlbnQoJ1ByZWZzVXBkYXRlZCcsJF9QT1NUKTsKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgQWN0aW9uOiBkZWZhdWx0CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoKLy8gR2V0IHBhZ2UgZGF0YQokc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiRkYiA9JiBjbXNtcygpLT5HZXREYigpOwokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiRodG1sID0gIiI7CiRodG1sX3ZlcnNpb24gPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9kb2N0eXBlJyk7CiRjbG9zZV90YWcgPSAkaHRtbF92ZXJzaW9uIDwgMyA/ICIgLz5cbiIgOiAiPlxuIjsKCiRyb290X3VybCA9IGVtcHR5KCRfU0VSVkVSWydIVFRQUyddKSA/ICRjb25maWdbJ3Jvb3RfdXJsJ10gOiAkY29uZmlnWydzc2xfdXJsJ107CgovLyBGaXJzdCB1cCwgd2UgZG8gc29tZSBkYXRhYmFzZSBtYWludGVuYW5jZQovLyBFbnN1cmUgYWxsIHRoZSBhY3RpdmUgcGFnZXMgYXJlIGluIHRoZSBzZW90b29sczIgZGF0YWJhc2UKJHF1ZXJ5ID0gJ1NFTEVDVCBgY29udGVudF9pZGAgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudCBXSEVSRSAoYHR5cGVgIExJS0UgIiVjb250ZW50JSIgT1IgYHR5cGVgIExJS0UgIiVsaW5rJSIgT1IgYHR5cGVgIExJS0UgIiVjYXRhbG9nJSIgKUFORCBgY29udGVudF9pZGAgTk9UIElOIChTRUxFQ1QgYGNvbnRlbnRfaWRgIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4gJ21vZHVsZV9zZW90b29sczIpJzsKaWYgKCEkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSkpIHsKICAkaHRtbCAuPSAgIjxiciAvPlByb2JsZW0gd2l0aCB0aGUgZGF0YWJhc2UhIFBsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4iOwogIGRpZTsKfQoKaWYgKCRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwKSB7CiAgLy8gT0sgd2UgaGF2ZSBzb21lIG5ldyBwYWdlcwogICRxMiA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgY29udGVudF9pZCA9ID8sIGluZGV4YWJsZSA9ID8nOwogIHdoaWxlICgkb25lX3BhZ2UgPSAkcmVzdWx0LT5mZXRjaFJvdygpKSB7CiAgICAkZGItPkV4ZWN1dGUoJHEyLGFycmF5KCRvbmVfcGFnZVsnY29udGVudF9pZCddLDEpKTsKICB9Cn0KCi8vIE5vdyBjaGVjayB0aGF0IHdlIGhhdmUgcmVtb3ZlZCBmcm9tIHNlb3Rvb2xzMiBhbnkgcGFnZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZAokcXVlcnkgPSAnU0VMRUNUIGBjb250ZW50X2lkYCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFdIRVJFIGBjb250ZW50X2lkYCBOT1QgSU4gKFNFTEVDVCBgY29udGVudF9pZGAgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLiAnY29udGVudCknOwppZiAoISRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KSkgewogICRodG1sIC49ICAiPGJyIC8+UHJvYmxlbSB3aXRoIHRoZSBkYXRhYmFzZSEgUGxlYXNlIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yLiI7CiAgZGllOwp9CmlmICgkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCkgewogIC8vIE9LIHdlIGhhdmUgc29tZSBkZWxldGVkIHBhZ2VzCiAgJHEzID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFdIRVJFIGNvbnRlbnRfaWQgPSA/JzsKICB3aGlsZSAoJG9uZV9wYWdlID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgewogICAgJGRiLT5FeGVjdXRlKCRxMyxhcnJheSgkb25lX3BhZ2VbJ2NvbnRlbnRfaWQnXSwxKSk7CiAgfQp9CgovLyBMYXN0bHksIGVuc3VyZSB0aGF0IGFsbCBpbmFjdGl2ZSBwYWdlcyBhcmUgbWFya2VkIGFzIG5vdCBpbmRleGFibGUgaW4gc2VvdG9vbHMyCiRxdWVyeSA9ICdTRUxFQ1QgY29udGVudF9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnY29udGVudCBXSEVSRSBhY3RpdmUgPSAwJzsKaWYgKCEkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSkpIHsKICAkaHRtbCAuPSAgIjxiciAvPlByb2JsZW0gd2l0aCB0aGUgZGF0YWJhc2UhIFBsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4iOwogIGRpZTsKfQoKaWYgKCRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwKSB7CiAgLy8gT0sgd2UgaGF2ZSB0byBwcmV2ZW50IHRoZSBpbmFjdGl2ZSBwYWdlcyBmcm9tIGJlaW5nIGluZGV4ZWQuCiAgJHE0ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgaW5kZXhhYmxlID0gMCBXSEVSRSBjb250ZW50X2lkID0gPyc7CiAgd2hpbGUgKCRvbmVfcGFnZSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKICAgICRkYi0+RXhlY3V0ZSgkcTQsYXJyYXkoJG9uZV9wYWdlWydjb250ZW50X2lkJ10pKTsKICB9Cn0KCi8vIFBoZXcsIHRoYXQncyBhbGwgZG9uZSBzbyB3ZSBjYW4gbW92ZSBvbiB0byB0aGUgcmVhbCBidXNpbmVzcyBvZiB0aGUgZGF5CgokdHBsX3ZhcnMgPSAkc21hcnR5LT5nZXRfdGVtcGxhdGVfdmFycygpOwppZiAoISRjdXJjb250ZW50ID0gJHRwbF92YXJzWydjb250ZW50X29iaiddKQogIHJldHVybjsgIC8vIE5vIHBhZ2UKCiRwYWdlX3VybCA9ICFlbXB0eSgkdHBsX3ZhcnNbJ2Nhbm9uaWNhbCddKSA/ICR0cGxfdmFyc1snY2Fub25pY2FsJ10gOiAkY3VyY29udGVudC0+R2V0VVJMKCk7CiRwYWdlX2lkID0gJGN1cmNvbnRlbnQtPklkKCk7CgoKJG1vZGlmaWVkX2RhdGUgPSAkY3VyY29udGVudC0+Z2V0TW9kaWZpZWREYXRlKCk7CiRtb2RpZmllZF9kYXRlID0gZGF0ZSgnWS1tLWRcVEg6aTpzUCcsJG1vZGlmaWVkX2RhdGUpOwoKLy8gS2V5d29yZCBnZW5lcmF0b3IKJGtleXdvcmRzID0gZXhwbG9kZSgnICcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfa2V5d29yZHMnLCcnKSk7CgoKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgV0hFUkUgY29udGVudF9pZCA9ID8nOwppZiAoISRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwYWdlX2lkKSkpIHsKICAkaHRtbCAuPSAgIlByb2JsZW0gd2l0aCB0aGUgZGF0YWJhc2UhIFBsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4iOwogIGRpZTsKfQoKJHBhZ2VfaW5mbyA9ICRyZXN1bHQtPkZldGNoUm93KCk7CgoKaWYgKCRwYWdlX2luZm9bJ2tleXdvcmRzJ10gIT0gIiIpIHsKICAkb3RoZXJfa2V5d29yZHMgPSBhcnJheV9mbGlwKGV4cGxvZGUoJyAnLCRwYWdlX2luZm9bJ2tleXdvcmRzJ10pKTsKfWVsc2V7CiAgJG90aGVyX2tleXdvcmRzID0gJHRoaXMtPmdldEtleXdvcmRTdWdnZXN0aW9ucygkcGFnZV9pZCk7Cn0KCiRzZW9fa2V5d29yZHMgPSBpbXBsb2RlKCcsICcsYXJyYXlfdW5pcXVlKGFycmF5X21lcmdlKCRrZXl3b3JkcywgYXJyYXlfZmxpcCgkb3RoZXJfa2V5d29yZHMpKSkpOwokc21hcnR5LT5hc3NpZ24oJ3Nlb19rZXl3b3JkcycsICRzZW9fa2V5d29yZHMpOwokdGl0bGVfa2V5d29yZHMgPSBpbXBsb2RlKCcgJyxhcnJheV91bmlxdWUoYXJyYXlfbWVyZ2UoJGtleXdvcmRzLCBhcnJheV9mbGlwKCRvdGhlcl9rZXl3b3JkcykpKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVfa2V5d29yZHMnLCAkdGl0bGVfa2V5d29yZHMpOwokc21hcnR5LT5hc3NpZ24oJ2RlZmF1bHRfa2V5d29yZHMnLCBpbXBsb2RlKCcgJywgJGtleXdvcmRzKSk7CiRzbWFydHktPmFzc2lnbigncGFnZV9rZXl3b3JkcycsIGltcGxvZGUoJyAnLCBhcnJheV9mbGlwKCRvdGhlcl9rZXl3b3JkcykpKTsKCi8vIFBhZ2UgZGVzY3JpcHRpb24KJGRlc2NyaXB0aW9uX2lkID0gc3RyX3JlcGxhY2UoJyAnLCdfJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKSk7CmlmICgkY3VyY29udGVudCAhPT0gZmFsc2UpIHsKICAkZGVzY3JpcHRpb24gPSBzdHJpcF90YWdzKCRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kY3VyY29udGVudC0+R2V0UHJvcGVydHlWYWx1ZSgkZGVzY3JpcHRpb25faWQpKSk7Cn0KCmlmICgoJGRlc2NyaXB0aW9uID09ICIiKSAmJiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnLDEpID09IDEpICYmICRjdXJjb250ZW50ICE9PSBOVUxMKSB7CiAgJGt3ID0gYXJyYXlfZmxpcCgkb3RoZXJfa2V5d29yZHMpOwogICRsYXN0X2tleXdvcmQgPSBhcnJheV9wb3AoJGt3KTsKICAka2V5d29yZHMgPSBpbXBsb2RlKCcsICcsJGt3KSAuICIgIiAuICR0aGlzLT5sYW5nKCdhbmQnKSAuICIgIiAuICRsYXN0X2tleXdvcmQ7CiAgCiAgJGRlc2NyaXB0aW9uID0gc3RyX3JlcGxhY2UoJ3trZXl3b3Jkc30nLCRrZXl3b3JkcywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0bycsJycpKTsKICAkZGVzY3JpcHRpb24gPSBzdHJfcmVwbGFjZSgne3RpdGxlfScsJGN1cmNvbnRlbnQtPk5hbWUoKSwkZGVzY3JpcHRpb24pOwogICRkZXNjcmlwdGlvbiA9ICRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kZGVzY3JpcHRpb24pOwoKfQovLyBNRVRBIHRhZyBmb3IgY29udGVudCB0eXBlCmlmICgkaHRtbF92ZXJzaW9uIDwgMykgewogICRodG1sIC49ICAiPG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9Ii4kY29uZmlnWydkZWZhdWx0X2VuY29kaW5nJ10uIiciIC4kY2xvc2VfdGFnOwp9IGVsc2UgewogICRodG1sIC49ICc8bWV0YSBjaGFyc2V0PSInLnN0cnRvdXBwZXIoJGNvbmZpZ1snZGVmYXVsdF9lbmNvZGluZyddKS4nIicuICRjbG9zZV90YWc7Cn0KCi8vIFNob3cgYmFzZT8KaWYgKGlzc2V0KCRwYXJhbXNbJ3Nob3diYXNlJ10pICYmICRwYXJhbXNbJ3Nob3diYXNlJ10gIT0gZmFsc2UpIHsKICAkaHRtbCAuPSAgIjxiYXNlIGhyZWY9JyIuJHJvb3RfdXJsLiIvJyIgLiAkY2xvc2VfdGFnOwp9CgoKLy8gUGFnZSB0aXRsZQppZiAoJGN1cmNvbnRlbnQgIT09IE5VTEwpewogICR0aXRsZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aXRsZScsJ3t0aXRsZX0gfCB7c2l0ZW5hbWV9IC0ge3Nlb19rZXl3b3Jkc30nKTsKICAkdGl0bGUgPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRpdGxlKTsKCiAgJG1ldGFfdGl0bGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGl0bGVfbWV0YScsJ3t0aXRsZX0gfCB7c2l0ZW5hbWV9Jyk7CiAgJG1ldGFfdGl0bGUgPSBzdHJfcmVwbGFjZSgne3RpdGxlfScsJGN1cmNvbnRlbnQtPk5hbWUoKSwkbWV0YV90aXRsZSk7CiAgJG1ldGFfdGl0bGUgPSBzdHJfcmVwbGFjZSgne3NpdGVuYW1lfScsJHRwbF92YXJzWydzaXRlbmFtZSddLCRtZXRhX3RpdGxlKTsKICAkbWV0YV90aXRsZSA9IHN0cl9yZXBsYWNlKCd7c2VvX2tleXdvcmRzfScsJHRpdGxlX2tleXdvcmRzLCRtZXRhX3RpdGxlKTsKICAkbWV0YV90aXRsZSA9ICRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kbWV0YV90aXRsZSk7CgogICRvcGVuZ3JhcGhfdGl0bGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnLCd7dGl0bGV9Jyk7CiAgJG9wZW5ncmFwaF90aXRsZSA9IHN0cl9yZXBsYWNlKCd7dGl0bGV9JywkY3VyY29udGVudC0+TmFtZSgpLCRvcGVuZ3JhcGhfdGl0bGUpOwogICRvcGVuZ3JhcGhfdGl0bGUgPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJG9wZW5ncmFwaF90aXRsZSk7CgogICRodG1sIC49ICAiPHRpdGxlPiIuJHRpdGxlLiI8L3RpdGxlPlxuIjsKfQoKLy8gSW1hZ2UtTGluawokaW1nID0gJGN1cmNvbnRlbnQtPkdldFByb3BlcnR5VmFsdWUoJ2ltYWdlJyk7CmlmICgoJGltZyAhPSAtMSkgJiYgKCRpbWcgIT0gIiIpKSAgewogICRodG1sIC49ICAiPGxpbmsgcmVsPSdpbWFnZV9zcmMnIGhyZWY9JyIuJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc191cmwnXS4gRElSRUNUT1JZX1NFUEFSQVRPUi4kaW1nLiInIiAuICRjbG9zZV90YWc7Cn0KCgovLyBTdGFuZGFyZCBNRVRBIHRhZ3MKaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX3N0YW5kYXJkJywxKSA9PSAxKSB7CiAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdkZXNjcmlwdGlvbicgY29udGVudD0nJGRlc2NyaXB0aW9uJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0na2V5d29yZHMnIGNvbnRlbnQ9JyRzZW9fa2V5d29yZHMnIiAuICRjbG9zZV90YWc7CiAgCgogIGlmICgkaHRtbF92ZXJzaW9uIDwgMyl7CiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J3RpdGxlJyBjb250ZW50PSckbWV0YV90aXRsZSciIC4gJGNsb3NlX3RhZzsKICAgICRodG1sIC49ICAiPG1ldGEgbmFtZT0nZGF0ZScgY29udGVudD0nJG1vZGlmaWVkX2RhdGUnIiAuICRjbG9zZV90YWc7CiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J2xhc3R1cGRhdGUnIGNvbnRlbnQ9JyRtb2RpZmllZF9kYXRlJyIgLiAkY2xvc2VfdGFnOwogICAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdyZXZpc2VkJyBjb250ZW50PSckbW9kaWZpZWRfZGF0ZSciIC4gJGNsb3NlX3RhZzsKICB9CgoKLy8gU3RhcnQgb2YgTUVUQSByb2JvdHMgdGFnIGZvciBJTkRFWC9OT0lOREVYCmlmICgoJHBhZ2VfaW5mb1snaW5kZXhhYmxlJ10gPT0gMSB8fCAkcGFnZV9pbmZvWydpbmRleGFibGUnXSA9PSBudWxsKSAmJiAkcGFnZV9pbmZvWydpbmRleGFibGUnXSAhPT0wKSB7CiAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdyb2JvdHMnIGNvbnRlbnQ9J2luZGV4IjsKfWVsc2V7CiAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdyb2JvdHMnIGNvbnRlbnQ9J25vaW5kZXgiOwp9CgovLyBFbmQgb2YgTUVUQSByb2JvdHMgdGFnIGZvciBGT0xMT1cvTk9GT0xMT1cKaWYgKCRwYWdlX2luZm9bJ2ZvbGxvdyddID09IDEgKSAgewogICRodG1sIC49ICAiLCBub2ZvbGxvdyciIC4gJGNsb3NlX3RhZzsKfWVsc2V7CiAgJGh0bWwgLj0gICIsIGZvbGxvdyciIC4gJGNsb3NlX3RhZzsKfQoKCmlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgndmVyaWZpY2F0aW9uJywnJykgIT0gJycpIHsKICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J2dvb2dsZS1zaXRlLXZlcmlmaWNhdGlvbicgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgndmVyaWZpY2F0aW9uJywnJykuIiciIC4gJGNsb3NlX3RhZzsKfQogIAogIAogIAogIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCcnKSAhPSAiIil7CgkkaHRtbCAuPSAiPG1ldGEgbmFtZT0nYXV0aG9yJyBjb250ZW50PSciLiRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInKSkuIiciIC4gJGNsb3NlX3RhZzsKICB9IGVsc2UgewoJJGh0bWwgLj0gIjxtZXRhIG5hbWU9J2F1dGhvcicgY29udGVudD0nIi5jbXNfc2l0ZXByZWZzOjpnZXQoJ3NpdGVuYW1lJykuIiciLiAkY2xvc2VfdGFnOwogIH0KCQovLyAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2NvcHlyaWdodCcsJycpICE9ICIiKQovLyAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J2NvcHlyaWdodCcgY29udGVudD0nIi4kc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JykpIC4iJyAvPlxuIjsKCQogIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb2NhdGlvbicsJycpICE9ICIiKSB7CiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J2dlby5wbGFjZW5hbWUnIGNvbnRlbnQ9JyIuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfcmVnaW9uJywnJykgIT0gIiIpIHsKICAgICRodG1sIC49ICAiPG1ldGEgbmFtZT0nZ2VvLnJlZ2lvbicgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJykgIT0gIiIpICYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb25naXR1ZGUnLCcnKSAhPSAiIikpIHsKICAgICRodG1sIC49ICAiPG1ldGEgbmFtZT0nZ2VvLnBvc2l0aW9uJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJykuIjsiLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLiInIiAuICRjbG9zZV90YWc7CiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0lDQk0nIGNvbnRlbnQ9JyIuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnLCcnKS4iLCAiLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLiInIiAuICRjbG9zZV90YWc7CiAgfQogIAp9CgppZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkZGl0aW9uYWxfbWV0YV90YWdzJywnJykgIT0gJycpIHsKCSRodG1sIC49ICRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnKSk7Cn0KCi8vIER1YmxpbkNvcmUgTUVUQSB0YWdzCmlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9kdWJsaW5jb3JlJywwKSA9PSAxKSB7CiAgJGh0bWwgLj0gICI8bGluayByZWw9J3NjaGVtYS5EQycgaHJlZj0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nIiAuICRjbG9zZV90YWc7CiAgJGh0bWwgLj0gICI8bGluayByZWw9J3NjaGVtYS5EQ1RFUk1TJyBocmVmPSdodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMudHlwZScgY29udGVudD0nVGV4dCcgc2NoZW1lPSdEQ1RFUk1TLkRDTUlUeXBlJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMuZm9ybWF0JyBjb250ZW50PSd0ZXh0L2h0bWwnIHNjaGVtZT0nRENURVJNUy5JTVQnIiAuICRjbG9zZV90YWc7CiAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdEQy5yZWxhdGlvbicgY29udGVudD0naHR0cDovL2R1YmxpbmNvcmUub3JnLycgc2NoZW1lPSdEQ1RFUk1TLlVSSSciIC4gJGNsb3NlX3RhZzsKICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfcHVibGlzaGVyJywnJykgIT0gIiIpCgkkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLnB1Ymxpc2hlcicgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIGVsc2UKCSRodG1sIC49ICI8bWV0YSBuYW1lPSdEQy5wdWJsaXNoZXInIGNvbnRlbnQ9JyIuY21zX3NpdGVwcmVmczo6Z2V0KCdzaXRlbmFtZScpLiInIiAuICRjbG9zZV90YWc7CiAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2NvbnRyaWJ1dG9yJywnJykgIT0gIiIpCgkkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLmNvbnRyaWJ1dG9yJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2NvbnRyaWJ1dG9yJywnJykuIiciIC4gJGNsb3NlX3RhZzsKCiAgaWYoJGZlbGFuZyA9IGNtc19zaXRlcHJlZnM6OmdldCgnZnJvbnRlbmRsYW5nJykpCiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLmxhbmd1YWdlJyBjb250ZW50PSciLiRmZWxhbmcuIicgc2NoZW1lPSdEQ1RFUk1TLlJGQzMwNjYnIC8+XG4iOwoKICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JywnJykgIT0gIiIpCiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLnJpZ2h0cycgY29udGVudD0nIi4kc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JykpLiInIiAuICRjbG9zZV90YWc7CgogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMudGl0bGUnIGNvbnRlbnQ9JyRtZXRhX3RpdGxlJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMuZGVzY3JpcHRpb24nIGNvbnRlbnQ9JyRkZXNjcmlwdGlvbiciIC4gJGNsb3NlX3RhZzsKICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLmRhdGUnIGNvbnRlbnQ9JyRtb2RpZmllZF9kYXRlJyBzY2hlbWU9J0RDVEVSTVMuVzNDRFRGJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMuaWRlbnRpZmllcicgY29udGVudD0nJHBhZ2VfdXJsJyBzY2hlbWU9J0RDVEVSTVMuVVJJJyIgLiAkY2xvc2VfdGFnOwp9CgovLyBPcGVuR3JhcGggTUVUQSB0YWdzCmlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGgnLDApID09IDEpIHsKICAkaHRtbCAuPSAgIjxtZXRhIHByb3BlcnR5PSdvZzp0aXRsZScgY29udGVudD0nJG9wZW5ncmFwaF90aXRsZScgLz5cbiI7CiAgaWYgKCRwYWdlX2luZm9bJ29ndHlwZSddID09ICIiKSB7CiAgICAkaHRtbCAuPSAgIjxtZXRhIHByb3BlcnR5PSdvZzp0eXBlJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF90eXBlJywnJykuIicgIiAuICRjbG9zZV90YWc7CiAgfWVsc2V7CiAgICAkaHRtbCAuPSAgIjxtZXRhIHByb3BlcnR5PSdvZzp0eXBlJyBjb250ZW50PSciLiRwYWdlX2luZm9bJ29ndHlwZSddLiInIiAuICRjbG9zZV90YWc7CiAgfQogICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOnVybCcgY29udGVudD0nJHBhZ2VfdXJsJyIgLiAkY2xvc2VfdGFnOwoKICBpZigkY3VyY29udGVudCAhPSBOVUxMKSB7CiAgICAkaW1nID0gJGN1cmNvbnRlbnQtPkdldFByb3BlcnR5VmFsdWUoJ2ltYWdlJyk7OwogICAgaWYgKCgkaW1nICE9IC0xKSAmJiAoJGltZyAhPSAiIikpICB7CiAgICAgICRpbWFnZSA9ICRpbWc7CiAgICAgICAKICAgIH1lbHNlewogICAgICAkaW1hZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnLCcnKTsKICAgIH0KICB9CiAgJGh0bWwgLj0gICI8bWV0YSBwcm9wZXJ0eT0nb2c6aW1hZ2UnIGNvbnRlbnQ9JyIuJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc191cmwnXS5ESVJFQ1RPUllfU0VQQVJBVE9SLiRpbWFnZS4nIicgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOnNpdGVfbmFtZScgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnLGNtc19zaXRlcHJlZnM6OmdldCgnc2l0ZW5hbWUnKSkuIiciIC4gJGNsb3NlX3RhZzsKICAkaHRtbCAuPSAgIjxtZXRhIHByb3BlcnR5PSdvZzpkZXNjcmlwdGlvbicgY29udGVudD0nJGRlc2NyaXB0aW9uJyAvPlxuIjsKICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJywnJykgIT0gIiIpIHsKICAgICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J2ZiOmFwcF9pZCcgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH1lbHNlewogICAgJGh0bWwgLj0gICI8bWV0YSBwcm9wZXJ0eT0nZmI6YWRtaW5zJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKSAhPSAiIikgewogICAgJGh0bWwgLj0gICI8bWV0YSBwcm9wZXJ0eT0nb2c6bG9jYWxpdHknIGNvbnRlbnQ9JyIuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfcmVnaW9uJywnJykgIT0gIiIpIHsKICAgICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOnJlZ2lvbicgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJykgIT0gIiIpICYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb25naXR1ZGUnLCcnKSAhPSAiIikpIHsKICAgICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOmxhdGl0dWRlJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJykuIiciIC4gJGNsb3NlX3RhZzsKICAgICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOmxvbmdpdHVkZScgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb25naXR1ZGUnLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KfQokc21hcnR5LT5kaXNwbGF5KCdzdHJpbmc6Jy4kaHRtbCk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgQWN0aW9uOiBkZWZhdWx0YWRtaW4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmICghICR0aGlzLT5DaGVja0FjY2VzcygpKQp7CiAgcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cn0KCiRkYiA9IGNtc21zKCktPkdldERiKCk7CiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJGFkbWluX2RpciA9ICRjb25maWdbJ2FkbWluX2RpciddOwokZGVmYXVsdGFkbWludGhlbWUgPSBDbXNBZG1pblRoZW1lQmFzZTo6R2V0RGVmYXVsdFRoZW1lKCk7CiR1c2VyYWRtaW50aGVtZSA9IGNtc191c2VycHJlZnM6OmdldCgnYWRtaW50aGVtZScpOwokdGhlbWVOYW1lID0gZW1wdHkoJHVzZXJhZG1pbnRoZW1lKSA/ICAkZGVmYXVsdGFkbWludGhlbWUgIDogJHVzZXJhZG1pbnRoZW1lOwokcm9vdF91cmwgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAkY29uZmlnWydyb290X3VybCddIDogJGNvbmZpZ1snc3NsX3VybCddOwokY29udGVudF9pZCA9IGlzc2V0KCRfR0VUWydjb250ZW50X2lkJ10pID8gJF9HRVRbJ2NvbnRlbnRfaWQnXSA6ICcnOwokdGFiID0gaXNzZXQoJF9HRVRbJ3RhYiddKSA/ICRfR0VUWyd0YWInXSA6ICcnOwokaiA9IDA7CgokbWVzc2FnZSA9ICcnOwoKLy8gRG8gdGhlIGFjdGlvbgovLyBVcGRhdGUgdGhlIGluZGV4YWJsZSBkYiBmaWVsZAovLyBEbyB0aGUgYWN0aW9uCmlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICd0b2dnbGVfaW5kZXgnKSB7CiAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgV0hFUkUgY29udGVudF9pZCA9ICcuJF9HRVRbJ2NvbnRlbnRfaWQnXTsKICAkcmVzdWx0ID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICRpbmZvID0gJHJlc3VsdC0+ZmV0Y2hSb3coKTsKICBpZiAoJGluZm9bJ2luZGV4YWJsZSddID09ICIxIikgewogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgaW5kZXhhYmxlID0gMCBXSEVSRSBjb250ZW50X2lkID0gJy4kX0dFVFsnY29udGVudF9pZCddOwogIH1lbHNlewogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFNFVCBjb250ZW50X2lkID0gJy4kX0dFVFsnY29udGVudF9pZCddLicsIGluZGV4YWJsZSA9IDAgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgaW5kZXhhYmxlID0gMSc7CiAgfQogICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKCiAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfcm9ib3RzJywxKSA9PSAxKSB7CiAgICAkdGhpcy0+Y3JlYXRlUm9ib3RzVFhUKCk7CiAgfQogIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3NpdGVtYXAnLDEpID09IDEpIHsKICAgICR0aGlzLT5jcmVhdGVTaXRlbWFwKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLDEpID09IDEpOwogIH0KICAkX0dFVFsndGFiJ10gPSAncGFnZWRlc2NyaXB0aW9ucyc7Cn0KCi8vIFVwZGF0ZSB0aGUgZm9sbG93IGRiIGZpZWxkCmlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICd0b2dnbGVfZm9sbG93JykgewogICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRjb250ZW50X2lkOwogICRyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgJGluZm8gPSAkcmVzdWx0LT5mZXRjaFJvdygpOwogIGlmICgkaW5mb1snZm9sbG93J10gPT0gIjEiKSB7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFNFVCBmb2xsb3cgPSAwIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRjb250ZW50X2lkOwogIH1lbHNlewogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFNFVCBjb250ZW50X2lkID0gJy4kY29udGVudF9pZC4nLCBmb2xsb3cgPSAwIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFIGZvbGxvdyA9IDEnOwogIH0KICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCn0KICBpZiAoaXNzZXQoJF9HRVRbJ3doYXQnXSkgJiYgJF9HRVRbJ3doYXQnXSA9PSAnc2V0X3ByaW9yaXR5JykgewogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFNFVCBjb250ZW50X2lkID0gJy4kY29udGVudF9pZC4nLCBwcmlvcml0eSA9ICcuJF9HRVRbJ3ByaW9yaXR5J10uJyBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBwcmlvcml0eSA9ICcuJF9HRVRbJ3ByaW9yaXR5J107CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICR0YWIgPSAncGFnZWRlc2NyaXB0aW9ucyc7CiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywxKSA9PSAxKSB7CiAgICAgICR0aGlzLT5jcmVhdGVTaXRlbWFwKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLDEpID09IDEpOwogICAgfQogIH0KCiAgaWYgKGlzc2V0KCRfR0VUWyd3aGF0J10pICYmICRfR0VUWyd3aGF0J10gPT0gJ3Jlc2V0X3ByaW9yaXR5JykgewogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgcHJpb3JpdHkgPSBOVUxMIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRjb250ZW50X2lkOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkdGFiID0gJ3BhZ2VkZXNjcmlwdGlvbnMnOwogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcsMSkgPT0gMSkgewogICAgICAkdGhpcy0+Y3JlYXRlU2l0ZW1hcCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJywxKSA9PSAxKTsKICAgIH0KICB9CgogIGlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICdyZXNldF9vZ3R5cGUnKSB7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFNFVCBvZ3R5cGUgPSBOVUxMIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRjb250ZW50X2lkOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkdGFiID0gJ3BhZ2VkZXNjcmlwdGlvbnMnOwogIH0KCiAgaWYgKGlzc2V0KCRfR0VUWyd3aGF0J10pICYmICRfR0VUWyd3aGF0J10gPT0gJ3Jlc2V0X2tleXdvcmRzJykgewogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQga2V5d29yZHMgPSBOVUxMIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRjb250ZW50X2lkOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkdGFiID0gJ3BhZ2VkZXNjcmlwdGlvbnMnOwogIH0KCiAgaWYgKGlzc2V0KCRfR0VUWyd3aGF0J10pICYmICRfR0VUWyd3aGF0J10gPT0gJ2VkaXRfb2d0eXBlJykgewogICAgZWNobyAkdGhpcy0+UmVkaXJlY3QobnVsbCwgJ2VkaXRfb2d0eXBlJywgJHRoaXMtPnJldHVybmlkLCBBcnJheSgnY29udGVudF9pZCc9PiRjb250ZW50X2lkKSk7CiAgfQoKICBpZiAoaXNzZXQoJF9HRVRbJ3doYXQnXSkgJiYgJF9HRVRbJ3doYXQnXSA9PSAnZWRpdF9rZXl3b3JkcycpIHsKICAgIGVjaG8gJHRoaXMtPlJlZGlyZWN0KG51bGwsICdlZGl0X2tleXdvcmRzJywgJHRoaXMtPnJldHVybmlkLCBBcnJheSgnY29udGVudF9pZCc9PiRjb250ZW50X2lkKSk7CiAgfQoKLyogU3RhcnQgdGhlIEFkbWluIG91dHB1dCAqLwoKICBlY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3Nlb2FsZXJ0cycsJHRoaXMtPkxhbmcoJ3RpdGxlX3Nlb2FsZXJ0cycpKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3BhZ2VkZXNjcmlwdGlvbnMnLCR0aGlzLT5MYW5nKCd0aXRsZV9wYWdlZGVzY3JpcHRpb25zJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbWV0YXNldHRpbmdzJywkdGhpcy0+TGFuZygndGl0bGVfbWV0YXNldHRpbmdzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc2l0ZW1hcHNldHRpbmdzJywkdGhpcy0+TGFuZygndGl0bGVfc2l0ZW1hcHNldHRpbmdzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigna2V5d29yZHNldHRpbmdzJywkdGhpcy0+TGFuZygndGl0bGVfa2V5d29yZHNldHRpbmdzJykpOwogIGVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKICAKICBlY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCiAgaWYgKGlzc2V0KCRfR0VUWydtZXNzYWdlJ10pKSB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCR0aGlzLT5zaG93TWVzc2FnZSgkdGhpcy0+bGFuZygkX0dFVFsnbWVzc2FnZSddKSkpOwogIH0gZWxzZSB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCcnKTsKICB9CgogIC8qIFNFTyBBbGVydHMgVGFiICovCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignc2VvYWxlcnRzJyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fYWxlcnRzX3RhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCiAgLyogUGFnZSBzZXR0aW5ncyBUYWIgKi8KICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwYWdlZGVzY3JpcHRpb25zJyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fcGFnZXNldHRpbmdzX3RhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCiAgLyogU0VPIFNldHRpbmdzIFRhYiAqLwogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ21ldGFzZXR0aW5ncycpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3Nlb3NldHRpbmdzX3RhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKICAvKiBTSVRFTUFQIFNldHRpbmdzICovCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignc2l0ZW1hcHNldHRpbmdzJyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fc2l0ZW1hcHNldHRpbmdzX3RhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCiAgLyogS0VZV09SRCBTZXR0aW5ncyAqLwogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2tleXdvcmRzZXR0aW5ncycpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2tleXdvcmRzZXR0aW5nc190YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCQplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CgokanEgPSAnJzsKJGpxIC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgovKiA8IVtDREFUQVsgKi8KKGZ1bmN0aW9uICgkKSB7CiQuZm4uaGFzQiA9IGZ1bmN0aW9uKCkgewoJCXZhciBoYXNCID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCJiIikuZmluZCgiLnByaW9yaXR5OmZpcnN0Iikuc2l6ZSgpOwkJCgkJcmV0dXJuIGhhc0I7Cgl9CgkKCSQuZm4uYXV0b2RlcHRoID0gZnVuY3Rpb24oKSB7CgkJJCh0aGlzKS5wYXJlbnRzVW50aWwoInRib2R5IikucGFyZW50KCkuZmluZCgidHIiKS5uZXh0KCkuZmlyc3QoKS5hZGRDbGFzcygiaCIpOwoJCXZhciBwZyA9ICQodGhpcykucGFyZW50c1VudGlsKCJ0ciIpLnBhcmVudCgpLmZpbmQoInRkLnBnOmZpcnN0IikuaHRtbCgpOwoJCXZhciBhID0gQXJyYXkubWFwKHBnLCBmdW5jdGlvbih4KSB7IHJldHVybiBTdHJpbmcuY2hhckNvZGVBdCh4KSB9KTsKCQl2YXIgZGVwdGggPSAkLmdyZXAoIGEsIGZ1bmN0aW9uKG4saSl7IHJldHVybiBuID09IDE4Nzt9KTsKCQkKCQlzd2l0Y2goZGVwdGgubGVuZ3RoKSB7CgkJCWNhc2UgMDoJCQkJCgkJCSAgdmFyIGF1dG9kZXB0aCA9ICgkKHRoaXMpLnBhcmVudHNVbnRpbCgidHIiKS5wYXJlbnQoKS5oYXNDbGFzcygiaCIpKSA/IDEwMCA6IDgwOwoJCQkgIGJyZWFrOwoJCQljYXNlIDE6CgkJCSAgdmFyIGF1dG9kZXB0aCA9IDQwOwoJCQkgIGJyZWFrOwoJCQlkZWZhdWx0OgoJCQkgIHZhciBhdXRvZGVwdGggPSAyMDsKCQl9CgkJcmV0dXJuIGF1dG9kZXB0aDsKCX0KfSkoalF1ZXJ5KTsKCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7Cgl2YXIgc3Bpbm5lciA9ICI8aW1nIHNyYz1cIicuJHJvb3RfdXJsLicvbW9kdWxlcy9TRU9Ub29sczIvaW1nL2FqYXgtbG9hZGVyLmdpZlwiIGFsdD1cIkFqYXggbG9hZGluZy4uLlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGNsYXNzPVwic3Bpbm5lclwiIC8+IjsKCQoJJCgiLnNlbzJhamF4IGEiKS5jbGljayhmdW5jdGlvbihlKXsKCQllLnByZXZlbnREZWZhdWx0KCk7CgkJdmFyIGltZyA9ICQodGhpcykuZmluZCgiaW1nIik7CgkJdmFyIGltZ3NyYyA9IGltZy5hdHRyKCJzcmMiKTsKCQl2YXIgaW1nc3JjID0gKGltZ3NyYy5pbmRleE9mKCJ0cnVlIikgIT09IC0xKSA/IGltZ3NyYy5yZXBsYWNlKCJ0cnVlIiwiZmFsc2UiKSA6IGltZ3NyYy5yZXBsYWNlKCJmYWxzZSIsInRydWUiKTsKCQkkKGltZykuYXR0cigic3JjIixpbWdzcmMpOwkJCgkJdmFyIHggPSAkKHRoaXMpLmF0dHIoImhyZWYiKTsKCQkkKHRoaXMpLmFwcGVuZChzcGlubmVyKTsKCQkkLmdldCh4LCBmdW5jdGlvbihkYXRhKXsKCQkJJCgiLnNwaW5uZXI6Zmlyc3QiKS5yZW1vdmUoKTsKCQl9KTsKCX0pOwoJJCgiLnVwZG93biIpLmNsaWNrKGZ1bmN0aW9uKGUpewoJCWUucHJldmVudERlZmF1bHQoKTsKCQkkKHRoaXMpLmFwcGVuZChzcGlubmVyKTsKCQl2YXIgYXV0b2RlcHRoID0gJCh0aGlzKS5hdXRvZGVwdGgoKTsKCQl2YXIgcHJpb3JpdHkgID0gKCQodGhpcykuaGFzQigpID4gMCkgPyAkKHRoaXMpLnBhcmVudCgpLmZpbmQoImIiKS5maW5kKCIucHJpb3JpdHk6Zmlyc3QiKSA6ICQodGhpcykucGFyZW50KCkuZmluZCgiLnByaW9yaXR5OmZpcnN0Iik7CgkJdmFyIG1zZ1NwYW4gICA9ICQodGhpcykucGFyZW50KCkuZmluZCgiLnBtc2c6Zmlyc3QiKTsKCQl2YXIgaWQgICAgICAgID0gJCh0aGlzKS5wYXJlbnRzVW50aWwoInRyIikucGFyZW50KCkuZmluZCgidGQiKS5maXJzdCgpLnRleHQoKTsKCQkKCQl2YXIgYW10ID0gKCQodGhpcykuaGFzQ2xhc3MoInVwIikpID8gMTAgOiAtMTA7CgkJdmFyIG5ld3ZhbCA9IE51bWJlcihwcmlvcml0eS50ZXh0KCkpK2FtdDsKCQlpZiAobmV3dmFsICE9IGF1dG9kZXB0aCkgewoJCQl2YXIgcG1zZyA9ICI8YiBjbGFzcz1cInJlc2V0MTAwXCI+IjsKCQkJcG1zZwkrPSAiPHNwYW4gY2xhc3M9XCJwcmlvcml0eVwiPiI7CgkJCXBtc2cJKz0gbmV3dmFsOwoJCQlwbXNnCSs9ICI8L3NwYW4+JSI7CgkJCXBtc2cJKz0gIjxhIGhyZWY9XCInLiRyb290X3VybC4nL2FkbWluL21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TRU9Ub29sczIsLGRlZmF1bHRhZG1pbiwwJmFtcDsnLkNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9HRVRbQ01TX1NFQ1VSRV9QQVJBTV9OQU1FXS4nJmFtcDt3aGF0PXJlc2V0X3ByaW9yaXR5JmFtcDtjb250ZW50X2lkPSI7CgkJCXBtc2cJKz0gaWQ7CgkJCXBtc2cJKz0gIlwiIGNsYXNzPVwiYWRtaW4tdG9vbHRpcFwiPiI7CgkJCXBtc2cJKz0gIjxpbWcgYWxpZ249XCJhYnNtaWRkbGVcIiBzcmM9XCInLiRyb290X3VybC4nL21vZHVsZXMvU0VPVG9vbHMyL2ltZy9yZXNldC5wbmdcIiAvPiI7CgkJCXBtc2cJKz0gIjxzcGFuPiI7CgkJCXBtc2cJKz0gIicuJHRoaXMtPkxhbmcoJ3Jlc2V0X3RvX2RlZmF1bHQnKSAuJyI7CgkJCXBtc2cJKz0gIjwvc3Bhbj4iOwoJCQlwbXNnCSs9ICI8L2E+PC9iPiI7CQkJCQkJCQkJCQoJCX0gZWxzZSB7CgkJCXZhciBwbXNnID0gIihhdXRvKSA8c3BhbiBjbGFzcz1cInByaW9yaXR5XCI+IiArICQodGhpcykuYXV0b2RlcHRoKCkgKyAiPC9zcGFuPiUgIjsJCQkJCQoJCX0KCQkKCQl2YXIgeCA9ICQodGhpcykuYXR0cigiaHJlZiIpOwoJCSQuZ2V0KHgsIGZ1bmN0aW9uKGRhdGEpewoJCQkkKHByaW9yaXR5KS50ZXh0KG5ld3ZhbCk7CgkJCQkkKG1zZ1NwYW4pLmFkZENsYXNzKCJwbXNnIikuaHRtbChwbXNnKTsKLy8JCQkJJChtc2dTcGFuKS5odG1sKHBtc2cpOwoJCQkkKCIuc3Bpbm5lcjpmaXJzdCIpLnJlbW92ZSgpOwoJCX0pOwoJfSk7CgkKCQoJJCgic3Bhbi5wbXNnIGEiKS5jbGljayhmdW5jdGlvbihlKXsKCQllLnByZXZlbnREZWZhdWx0KCk7CgkJJCh0aGlzKS5hcHBlbmQoc3Bpbm5lcik7CgkJdmFyIHRkID0gJCh0aGlzKS5wYXJlbnRzVW50aWwoInRkIikucGFyZW50KCk7CgkJdmFyIG1zZ1NwYW4gPSAkKHRkKS5maW5kKCJzcGFuLnBtc2ciKTsKCQoJCQoJCXZhciBwbXNnID0gIihhdXRvKSA8c3BhbiBjbGFzcz1cInByaW9yaXR5XCI+IiArICQodGhpcykuYXV0b2RlcHRoKCkgKyAiPC9zcGFuPiUgIjsJCQoJCXZhciB4ID0gJCh0aGlzKS5hdHRyKCJocmVmIik7CgkJJC5nZXQoeCwgZnVuY3Rpb24oZGF0YSl7CQkJCgkJCSQodGQpLmZpbmQoIi5zcGlubmVyIikucmVtb3ZlKCk7CgkJCSQobXNnU3BhbikuaHRtbChwbXNnKTsJCgoJCX0pOwoJCQoJfSk7Cn0pOwovKiBdXT4gKi8KPC9zY3JpcHQ+JzsKZWNobyAkanE7CiAgPz4=]]></data>
	</file>
	<file>
	  <filename>/action.edit_keywords.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgQWN0aW9uOiBlZGl0X2tleXdvcmRzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoIWlzc2V0KCRfUkVRVUVTVFsnY29udGVudF9pZCddKSkKICByZXR1cm47CgokZGIgPSBjbXNtcygpLT5HZXREYigpOwokc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKJGNvbnRfaWQgPSAkX1JFUVVFU1RbJ2NvbnRlbnRfaWQnXSA7CiRjb250ZW50X29iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkY29udF9pZCk7CgppZiAoaXNzZXQoJF9QT1NUWydzZXRfa2V5d29yZHMnXSkpIHsKCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Nlb3Rvb2xzMiBTRVQgY29udGVudF9pZCA9ID8sIGtleXdvcmRzID0gPywgaW5kZXhhYmxlID0gMSBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBrZXl3b3JkcyA9ID8iOwoJaWYgKCEkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY29udF9pZCwgJF9QT1NUWydrZXl3b3JkcyddLCRfUE9TVFsna2V5d29yZHMnXSkpKXsKCSAgZWNobyAkZGItPnNxbDsKCSAgZGllOwoJfQoJJHRoaXMtPnJlZGlyZWN0KG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCBBcnJheSgndGFiJz0+J3BhZ2VkZXNjcmlwdGlvbnMnKSk7Cn0KCiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFdIRVJFIGNvbnRlbnRfaWQgPSA/JzsKaWYgKCEkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY29udF9pZCkpKSB7CiAgZWNobyAndGhpcyBpcyB0aGUgZmFpbDxiciAvPic7CiAgZWNobyAkZGItPnNxbDsKICBkaWU7Cn0KCiRpbmZvID0gJHJlc3VsdC0+ZmV0Y2hSb3coKTsKCmlmICghaXNzZXQoJGluZm9bJ2tleXdvcmRzJ10pIHx8ICRpbmZvWydrZXl3b3JkcyddID09ICcnKSB7CgkkaW5mb1sna2V5d29yZHMnXSA9IHN0cnRvbG93ZXIoaW1wbG9kZSgnICcsYXJyYXlfZmxpcCgkdGhpcy0+Z2V0S2V5d29yZFN1Z2dlc3Rpb25zKCRjb250X2lkKSkpKTsKfQoKCiRvdXRwdXQgID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydChudWxsLCAnZWRpdF9rZXl3b3JkcycpOwokb3V0cHV0IC49ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbihudWxsLCAnY29udGVudF9pZCcsICRjb250X2lkKTsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5MYW5nKCdlbnRlcl9uZXdfa2V5d29yZHMnKS4nOjwvcD4nOwoKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsIG51bGwsICRpbmZvWydrZXl3b3JkcyddLCAna2V5d29yZHMnKS4nICcuJHRoaXMtPkxhbmcoJ2hlbHBfbmV3X2tleXdvcmRzJykuJzwvcD4nOwoKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+JzsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQobnVsbCwgJ3NldF9rZXl3b3JkcycsJHRoaXMtPmxhbmcoJ3NhdmUnKSkuJzwvcD4nOwoKJG91dHB1dCAuPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKJG91dHB1dCAuPSAnPGJyIC8+PGJyIC8+JzsKCi8vIEdldCB0aGUgbWFpbiBjb250ZW50IGJsb2NrCiRjb250ZW50X2VuID0gJGNvbnRlbnRfb2JqLT5HZXRQcm9wZXJ0eVZhbHVlKCdjb250ZW50X2VuJyk7CgppZiAoaXNzZXQoJGNvbnRlbnRfZW4pKSB7CiAgJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5MYW5nKCdwYWdlX25hbWUnKS4nOjwvcD4nOwogIAogICRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHJvd1snbmFtZSddLic8L3A+JzsKICAkb3V0cHV0IC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPkxhbmcoJ2FkbWluX3ZpZXcnKS4nOjwvcD4nOwogICRvdXRwdXQgLj0gJzxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+Jy5zZW8yX3V0aWxzOjpjb21waWxlX3VkdHMoJGNvbnRlbnRfZW4sJHRoaXMpLic8L2Rpdj4nOwogICAgCiAgLy8gR2V0IHRoZSBtZXRhIGRlc2NyaXB0aW9uCiAgJG1ldGFkZXNjcmlwdGlvbiA9ICRjb250ZW50X29iai0+R2V0UHJvcGVydHlWYWx1ZSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snKSk7CiAgCiAgICAgICRvdXRwdXQgLj0gJzxiciAvPjxiciAvPjxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+TGFuZygnbWV0YWRlc2NyaXB0aW9uX2NvbnRlbnQnKS4nOjwvcD4nOwogIAogIGlmICghZW1wdHkoJG1ldGFkZXNjcmlwdGlvbikpIHsKICAgICAgJG91dHB1dCAuPSAnPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4nLnNlbzJfdXRpbHM6OmNvbXBpbGVfdWR0cygkbWV0YWRlc2NyaXB0aW9uLCR0aGlzKS4nPC9kaXY+JzsKICAgIAogIH0gZWxzZSB7CiAgICAkb3V0cHV0IC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5MYW5nKCdub19tZXRhZGVzY3JpcHRpb24nKS4nOjwvcD4nOwogIH0KICAKfQokb3V0cHV0IC49ICc8YnIgLz48YnIgLz48cD48YSBocmVmPSJlZGl0Y29udGVudC5waHA/Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfR0VUW0NNU19TRUNVUkVfUEFSQU1fTkFNRV0uJyZjb250ZW50X2lkPScuJGNvbnRfaWQuJyI+Jy4kdGhpcy0+TGFuZygnZWRpdF9wYWdlJykuJzwvYT4gJzsKJG91dHB1dCAuPSAnPGEgaHJlZj0iJy4kY29udGVudF9vYmotPkdldFVSTCgpLiciIHRhcmdldD0iX2JsYW5rIj4nLiR0aGlzLT5MYW5nKCd2aWV3X3BhZ2UnKS4nPC9hPjwvcD4nOwoKZWNobyAkb3V0cHV0Owo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.edit_ogtype.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBTRU9Ub29sczIgLSBUdXJiby1jaGFyZ2UgeW91ciBvbi1wYWdlIFNFTwojIFZlcnNpb246IDEuMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIEFjdGlvbjogZWRpdF9vZ3R5cGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9IGNtc21zKCktPkdldERiKCk7CgppZiAoaXNzZXQoJF9QT1NUWydzZXRfb2d0eXBlJ10pKSB7CglpZiAoJF9QT1NUWydvZ190eXBlJ10gIT0gIiIpIHsKCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZW90b29sczIgU0VUIGNvbnRlbnRfaWQgPSAiLiRfUE9TVFsnY29udGVudF9pZCddLiIsIG9ndHlwZSA9ICciLiRfUE9TVFsnb2dfdHlwZSddLiInLCBpbmRleGFibGUgPSAxIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFIG9ndHlwZSA9ICciLiRfUE9TVFsnb2dfdHlwZSddLiInIjsKCX1lbHNlewoJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZW90b29sczIgU0VUIG9ndHlwZSA9IE5VTEwgV0hFUkUgY29udGVudF9pZCA9ICIuJF9QT1NUWydjb250ZW50X2lkJ107Cgl9CgkKCWVjaG8gJHF1ZXJ5OwoJCgkkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCSR0aGlzLT5SZWRpcmVjdChudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgQXJyYXkoJ3RhYic9PidwYWdlZGVzY3JpcHRpb25zJykpOwp9CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBXSEVSRSBjb250ZW50X2lkID0gJy4kX0dFVFsnY29udGVudF9pZCddOwokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiRpbmZvID0gJHJlc3VsdC0+ZmV0Y2hSb3coKTsKCiRvdXRwdXQgID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydChudWxsLCAnZWRpdF9vZ3R5cGUnKTsKJG91dHB1dCAuPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4obnVsbCwgJ2NvbnRlbnRfaWQnLCAkX0dFVFsnY29udGVudF9pZCddKTsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5MYW5nKCdlbnRlcl9uZXdfb2d0eXBlJykuJzo8L3A+JzsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdvZ190eXBlJywgJGluZm9bJ29ndHlwZSddLCAzMCwgMzApLicgJy4kdGhpcy0+TGFuZygnaGVscF9uZXdfb2d0eXBlJykuJzwvcD4nOwokb3V0cHV0IC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij48YnIgLz4nLiR0aGlzLT5MYW5nKCdoZWxwX29wZW5ncmFwaCcpLic8YnIgLz48YnIgLz4nOwokb3V0cHV0IC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdChudWxsLCAnc2V0X29ndHlwZScsJHRoaXMtPkxhbmcoJ3NhdmUnKSkuJzwvcD4nOwoKJG91dHB1dCAuPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKZWNobyAkb3V0cHV0OwoKCj8+]]></data>
	</file>
	<file>
	  <filename>/delete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogPCFbQ0RBVEFbICovCihmdW5jdGlvbiAoJCkgewokLmZuLmhhc0IgPSBmdW5jdGlvbigpIHsKCQl2YXIgaGFzQiA9ICQodGhpcykucGFyZW50KCkuZmluZCgiYiIpLmZpbmQoIi5wcmlvcml0eTpmaXJzdCIpLnNpemUoKTsJCQoJCXJldHVybiBoYXNCOwoJfQoJCgkkLmZuLmF1dG9kZXB0aCA9IGZ1bmN0aW9uKCkgewoJCSQodGhpcykucGFyZW50c1VudGlsKCJ0Ym9keSIpLnBhcmVudCgpLmZpbmQoInRyIikubmV4dCgpLmZpcnN0KCkuYWRkQ2xhc3MoImgiKTsKCQl2YXIgcGcgPSAkKHRoaXMpLnBhcmVudHNVbnRpbCgidHIiKS5wYXJlbnQoKS5maW5kKCJ0ZC5wZzpmaXJzdCIpLmh0bWwoKTsKCQl2YXIgYSA9IEFycmF5Lm1hcChwZywgZnVuY3Rpb24oeCkgeyByZXR1cm4gU3RyaW5nLmNoYXJDb2RlQXQoeCkgfSk7CgkJdmFyIGRlcHRoID0gJC5ncmVwKCBhLCBmdW5jdGlvbihuLGkpeyByZXR1cm4gbiA9PSAxODc7fSk7CgkJCgkJc3dpdGNoKGRlcHRoLmxlbmd0aCkgewoJCQljYXNlIDA6CQkJCQoJCQkgIHZhciBhdXRvZGVwdGggPSAoJCh0aGlzKS5wYXJlbnRzVW50aWwoInRyIikucGFyZW50KCkuaGFzQ2xhc3MoImgiKSkgPyAxMDAgOiA4MDsKCQkJICBicmVhazsKCQkJY2FzZSAxOgoJCQkgIHZhciBhdXRvZGVwdGggPSA0MDsKCQkJICBicmVhazsKCQkJZGVmYXVsdDoKCQkJICB2YXIgYXV0b2RlcHRoID0gMjA7CgkJfQoJCXJldHVybiBhdXRvZGVwdGg7Cgl9Cn0pKGpRdWVyeSk7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewoJdmFyIHNwaW5uZXIgPSAiPGltZyBzcmM9XCInLiRyb290X3VybC4nL21vZHVsZXMvU0VPVG9vbHMyL2ltZy9hamF4LWxvYWRlci5naWZcIiBhbHQ9XCJBamF4IGxvYWRpbmcuLi5cIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBjbGFzcz1cInNwaW5uZXJcIiAvPiI7CgkKCSQoIi5zZW8yYWpheCBhIikuY2xpY2soZnVuY3Rpb24oZSl7CgkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCXZhciBpbWcgPSAkKHRoaXMpLmZpbmQoImltZyIpOwoJCXZhciBpbWdzcmMgPSBpbWcuYXR0cigic3JjIik7CgkJdmFyIGltZ3NyYyA9IChpbWdzcmMuaW5kZXhPZigidHJ1ZSIpICE9PSAtMSkgPyBpbWdzcmMucmVwbGFjZSgidHJ1ZSIsImZhbHNlIikgOiBpbWdzcmMucmVwbGFjZSgiZmFsc2UiLCJ0cnVlIik7CgkJJChpbWcpLmF0dHIoInNyYyIsaW1nc3JjKTsJCQoJCXZhciB4ID0gJCh0aGlzKS5hdHRyKCJocmVmIik7CgkJJCh0aGlzKS5hcHBlbmQoc3Bpbm5lcik7CgkJJC5nZXQoeCwgZnVuY3Rpb24oZGF0YSl7CgkJCSQoIi5zcGlubmVyOmZpcnN0IikuZGV0YWNoKCk7CgkJfSk7Cgl9KTsKCSQoIi51cGRvd24iKS5jbGljayhmdW5jdGlvbihlKXsKCQllLnByZXZlbnREZWZhdWx0KCk7CgkJJCh0aGlzKS5hcHBlbmQoc3Bpbm5lcik7CgkJdmFyIHByaW9yaXR5ID0gKCQodGhpcykuaGFzQigpID4gMCkgPyAkKHRoaXMpLnBhcmVudCgpLmZpbmQoImIiKS5maW5kKCIucHJpb3JpdHk6Zmlyc3QiKSA6ICQodGhpcykucGFyZW50KCkuZmluZCgiLnByaW9yaXR5OmZpcnN0Iik7CQkKCQl2YXIgYW10ID0gKCQodGhpcykuaGFzQ2xhc3MoInVwIikpID8gMTAgOiAtMTA7CgkJdmFyIG5ld3ZhbCA9IE51bWJlcihwcmlvcml0eS50ZXh0KCkpK2FtdDsKCQl2YXIgeCA9ICQodGhpcykuYXR0cigiaHJlZiIpOwoJCSQuZ2V0KHgsIGZ1bmN0aW9uKGRhdGEpewoJCQkkKHByaW9yaXR5KS50ZXh0KG5ld3ZhbCk7CgkJCSQoIi5zcGlubmVyOmZpcnN0IikuZGV0YWNoKCk7CgkJfSk7Cgl9KTsKCQoJCgkkKCIucmVzZXQxMDAgYSIpLmNsaWNrKGZ1bmN0aW9uKGUpewoJCWUucHJldmVudERlZmF1bHQoKTsKCQl2YXIgdGQgPSAkKHRoaXMpLnBhcmVudHNVbnRpbCgidGQiKS5wYXJlbnQoKTsKCQkkKHRkKS5hcHBlbmQoc3Bpbm5lcik7CgkJdmFyIGIgPSAkKHRoaXMpLnBhcmVudCgpOwoJCQoJCXZhciBkZWZhdWx0UHJpb3JpdHkgPSAiKGF1dG8pIDxzcGFuIGNsYXNzPVwicHJpb3JpdHlcIj4iICsgJCh0aGlzKS5hdXRvZGVwdGgoKSArICI8L3NwYW4+JSAiOwkJCgkJdmFyIHggPSAkKHRoaXMpLmF0dHIoImhyZWYiKTsKCQkkLmdldCh4LCBmdW5jdGlvbihkYXRhKXsJCQoJCQkkKHRkKS5hcHBlbmQoZGVmYXVsdFByaW9yaXR5KTsJCgkJCSQoYikucmVtb3ZlKCk7CgkJCSQoIi5zcGlubmVyOmZpcnN0IikuZGV0YWNoKCk7CgkJfSk7CgkJCgl9KTsKfSk7Ci8qIF1dPiAqLwo=]]></data>
	</file>
	<file>
	  <filename>/event.Core.ContentDeletePost.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgRXZlbnQ6IENvbnRlbnREZWxldGVQb3N0CiMgRnVuY3Rpb246IENvZGUgdG8gcHVzaCBzaXRlbWFwIHRvIEdvb2dsZSBXZWJtYXN0ZXJzIGlmIHJlcXVpcmVkCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3NpdGVtYXAnKSA9PSAxKSB7CiAgICAgICR0aGlzLT5jcmVhdGVTaXRlbWFwKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnKSA9PSAxKTsKICAgIH0K]]></data>
	</file>
	<file>
	  <filename>/event.Core.ContentEditPost.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgRXZlbnQ6IENvcmVDb250ZW50RWRpdFBvc3QKIyBGdW5jdGlvbjogQ29kZSB0byBwdXNoIHNpdGVtYXAgdG8gR29vZ2xlIFdlYm1hc3RlcnMgaWYgcmVxdWlyZWQKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJykgPT0gMSkgewogICAgICAkdGhpcy0+Y3JlYXRlU2l0ZW1hcCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJykgPT0gMSk7CiAgICB9Cg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_alerts_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4wLjEyLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogQWxlcnRzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGFsZXJ0cyAgPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAnYWxlcnRzX3VyZ2VudCcsICR0aGlzLT5MYW5nKCd0aXRsZV9hbGVydHNfdXJnZW50JykpOwoKICAkdXJnZW50X2FsZXJ0cyA9ICR0aGlzLT5nZXRVcmdlbnRBbGVydHMoKTsKCiAgaWYgKGNvdW50KCR1cmdlbnRfYWxlcnRzKSA9PSAwKSB7CiAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbS90cnVlLmdpZiIgYWxpZ249ImFic21pZGRsZSIgLz4gJy4kdGhpcy0+bGFuZygnbm90aGluZ190b19iZV9maXhlZCcpLic8YnIgLz48YnIgLz4nOwogIH1lbHNlewogICAgJGdyb3VwcyA9IEFycmF5KCk7CiAgICBmb3JlYWNoICgkdXJnZW50X2FsZXJ0cyBhcyAkYWxlcnQpIHsKICAgICAgJGdyb3Vwc1skYWxlcnRbJ2dyb3VwJ11dW10gPSAkYWxlcnQ7CiAgICB9CiAgICBmb3JlYWNoKCRncm91cHMgYXMgJGdyb3VwID0+ICRnYWxlcnRzKSB7CiAgICAgICRjb3VudCA9IGNvdW50KCRnYWxlcnRzKTsKICAgICAgaWYgKGNvdW50KCRnYWxlcnRzKSA+IDIwKSB7CiAgICAgICAgJHBhcnRzID0gYXJyYXlfY2h1bmsoJGdhbGVydHMsIDIwKTsKICAgICAgICAkZ2FsZXJ0cyA9ICRwYXJ0c1swXTsKICAgICAgICAkY291bnQgPSAiPiAyMCI7CiAgICAgIH0KICAgICAgaWYgKGNvdW50KCRnYWxlcnRzKSA9PSAxKSB7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9Ob3RpZmljYXRpb25zLzEuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRnYWxlcnRzWzBdWydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkZ2FsZXJ0c1swXVsnbGlua3MnXSkuJ108YnIgLz48YnIgLz4nOwogICAgICB9ZWxzZXsKICAgICAgICAkZ3JvdXBfdGl0bGUgPSAkdGhpcy0+bGFuZygnZ3JvdXB0aXRsZV8nLiRncm91cCwgQXJyYXkoJGNvdW50KSk7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzEuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRncm91cF90aXRsZS4nPC9iPiBbPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKG51bGwpIiBvbkNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ3VyZ2VudF9ncm91cF8nLiRncm91cC4nXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ2Jsb2NrXCciPicuJHRoaXMtPmxhbmcoJ3ZpZXdfYWxsJykuJzwvYT5dPGJyIC8+PGJyIC8+JzsKICAgICAgICAkYWxlcnRzIC49ICc8ZGl2IGlkPSJ1cmdlbnRfZ3JvdXBfJy4kZ3JvdXAuJyIgc3R5bGU9InBhZGRpbmctbGVmdDogMzBweDsgZGlzcGxheTogbm9uZTsiPic7CiAgICAgICAgZm9yZWFjaCAoJGdhbGVydHMgYXMgJGFsZXJ0KSB7CiAgICAgICAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL05vdGlmaWNhdGlvbnMvMS5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+IDxiPicuJGFsZXJ0WydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkYWxlcnRbJ2xpbmtzJ10pLiddPGJyIC8+PGJyIC8+JzsKICAgICAgICB9CiAgICAgICAgJGFsZXJ0cyAuPSAnPC9kaXY+JzsKICAgICAgfQogICAgfQogIH0KCiAgJGFsZXJ0cyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJGFsZXJ0cyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAnYWxlcnRzX2ltcG9ydGFudCcsICR0aGlzLT5MYW5nKCd0aXRsZV9hbGVydHNfaW1wb3J0YW50JykpOwoKCiAgJGltcG9ydGFudF9hbGVydHMgPSAkdGhpcy0+Z2V0SW1wb3J0YW50QWxlcnRzKCk7CiAgaWYgKGNvdW50KCRpbXBvcnRhbnRfYWxlcnRzKSA9PSAwKSB7CiAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbS90cnVlLmdpZiIgYWxpZ249ImFic21pZGRsZSIgLz4gJy4kdGhpcy0+bGFuZygnbm90aGluZ190b19iZV9maXhlZCcpLic8YnIgLz48YnIgLz4nOwogIH1lbHNlewogICAgJGdyb3VwcyA9IEFycmF5KCk7CiAgICBmb3JlYWNoICgkaW1wb3J0YW50X2FsZXJ0cyBhcyAkYWxlcnQpIHsKICAgICAgJGdyb3Vwc1skYWxlcnRbJ2dyb3VwJ11dW10gPSAkYWxlcnQ7CiAgICB9CiAgICBmb3JlYWNoKCRncm91cHMgYXMgJGdyb3VwID0+ICRnYWxlcnRzKSB7CiAgICAgICRjb3VudCA9IGNvdW50KCRnYWxlcnRzKTsKICAgICAgaWYgKGNvdW50KCRnYWxlcnRzKSA+IDIwKSB7CiAgICAgICAgJHBhcnRzID0gYXJyYXlfY2h1bmsoJGdhbGVydHMsIDIwKTsKICAgICAgICAkZ2FsZXJ0cyA9ICRwYXJ0c1swXTsKICAgICAgICAkY291bnQgPSAiPiAyMCI7CiAgICAgIH0KICAgICAgaWYgKGNvdW50KCRnYWxlcnRzKSA9PSAxKSB7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzIuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRnYWxlcnRzWzBdWydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkZ2FsZXJ0c1swXVsnbGlua3MnXSkuJ108YnIgLz48YnIgLz4nOwogICAgICB9ZWxzZXsKICAgICAgICAkZ3JvdXBfdGl0bGUgPSAkdGhpcy0+bGFuZygnZ3JvdXB0aXRsZV8nLiRncm91cCwgQXJyYXkoJGNvdW50KSk7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzIuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRncm91cF90aXRsZS4nPC9iPiBbPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKG51bGwpIiBvbkNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ2ltcG9ydGFudF9ncm91cF8nLiRncm91cC4nXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ2Jsb2NrXCciPicuJHRoaXMtPmxhbmcoJ3ZpZXdfYWxsJykuJzwvYT5dPGJyIC8+PGJyIC8+JzsKICAgICAgICAkYWxlcnRzIC49ICc8ZGl2IGlkPSJpbXBvcnRhbnRfZ3JvdXBfJy4kZ3JvdXAuJyIgc3R5bGU9InBhZGRpbmctbGVmdDogMzBweDsgZGlzcGxheTogbm9uZTsiPic7CiAgICAgICAgZm9yZWFjaCAoJGdhbGVydHMgYXMgJGFsZXJ0KSB7CiAgICAgICAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL05vdGlmaWNhdGlvbnMvMi5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+IDxiPicuJGFsZXJ0WydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkYWxlcnRbJ2xpbmtzJ10pLiddPGJyIC8+PGJyIC8+JzsKICAgICAgICB9CiAgICAgICAgJGFsZXJ0cyAuPSAnPC9kaXY+JzsKICAgICAgfQogICAgfQogIH0KCiAgJGFsZXJ0cyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJGFsZXJ0cyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAnYWxlcnRzX25vdGljZXMnLCAkdGhpcy0+TGFuZygndGl0bGVfYWxlcnRzX25vdGljZXMnKSk7CgogICRub3RpY2VfYWxlcnRzID0gJHRoaXMtPmdldE5vdGljZUFsZXJ0cygpOwogIGlmIChjb3VudCgkbm90aWNlX2FsZXJ0cykgPT0gMCkgewogICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9zeXN0ZW0vdHJ1ZS5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+ICcuJHRoaXMtPmxhbmcoJ25vdGhpbmdfdG9fYmVfZml4ZWQnKS4nPGJyIC8+PGJyIC8+JzsKICB9ZWxzZXsKICAgIGZvcmVhY2ggKCRub3RpY2VfYWxlcnRzIGFzICRhbGVydCkgewogICAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL05vdGlmaWNhdGlvbnMvMy5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+IDxiPicuJGFsZXJ0WydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkYWxlcnRbJ2xpbmtzJ10pLiddPGJyIC8+PGJyIC8+JzsKICAgIH0KICB9CgogICRhbGVydHMgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CiAgZWNobyAkYWxlcnRzOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_keywordsettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4wLjEyLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogS2V5d29yZCBTZXR0aW5ncwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiAgJGtzZXR0aW5ncyAgPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KG51bGwsICdjaGFuZ2VzZXR0aW5ncycpOwoKICAka3NldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdrZXl3b3JkX3dlaWdodF9kZXNjcmlwdGlvbicsICR0aGlzLT5MYW5nKCd0aXRsZV9rZXl3b3JkX3dlaWdodCcpKTsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2tleXdvcmRfbWlubGVuZ3RoX3RpdGxlJykuJzo8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfbWlubGVuZ3RoJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfbWlubGVuZ3RoX2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkX3RpdGxlX3dlaWdodF90aXRsZScpLic6PC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdrZXl3b3JkX3RpdGxlX3dlaWdodCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXl3b3JkX3RpdGxlX3dlaWdodCcsJzYnKSwgMikuJyAnLiR0aGlzLT5sYW5nKCdrZXl3b3JkX3RpdGxlX3dlaWdodF9oZWxwJykuJzwvcD4nOwogICRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHRfdGl0bGUnKS4nOjwvcD4nOwogICRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHQnLCc0JyksIDIpLicgJy4kdGhpcy0+bGFuZygna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHRfaGVscCcpLic8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0X3RpdGxlJykuJzo8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0JywnMicpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0X3RpdGxlJykuJzo8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfY29udGVudF93ZWlnaHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9jb250ZW50X3dlaWdodCcsJzEnKSwgMikuJyAnLiR0aGlzLT5sYW5nKCdrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkX21pbmltdW1fd2VpZ2h0X3RpdGxlJykuJzo8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfbWluaW11bV93ZWlnaHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5pbXVtX3dlaWdodCcsJzcnKSwgMikuJyAnLiR0aGlzLT5sYW5nKCdrZXl3b3JkX21pbmltdW1fd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJGtzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAna2V5d29yZF9leGNsdWRlX2Rlc2NyaXB0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2tleXdvcmRfZXhjbHVkZScpKTsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2tleXdvcmRfZXhjbHVkZV90aXRsZScpLic6PC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsIG51bGwsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2V4Y2x1ZGUnLCcnKSwgJ2tleXdvcmRfZXhjbHVkZScpLicgJy4kdGhpcy0+bGFuZygna2V5d29yZF9leGNsdWRlX2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQobnVsbCwgJ3NhdmVfa2V5d29yZF9zZXR0aW5ncycsICR0aGlzLT5sYW5nKCdzYXZlJykpLic8L3A+JzsKICAka3NldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgogICRrc2V0dGluZ3MgLj0gJzxiciAvPjxiciAvPicuJHRoaXMtPmxhbmcoJ2hlbHBfa2V5d29yZF9nZW5lcmF0b3InKTsKCWVjaG8gJGtzZXR0aW5nczsKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_pagesettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgVGFiOiBQYWdlIFNldHRpbmdzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKICAkcGFnZXNldHRpbmdzICA9ICc8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+JzsKICAkcGFnZXNldHRpbmdzIC49ICc8dHI+JzsKICAkcGFnZXNldHRpbmdzIC49ICc8dGg+Jy4kdGhpcy0+bGFuZygncGFnZV9pZCcpLic8L3RoPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ3BhZ2VfbmFtZScpLic8L3RoPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ3ByaW9yaXR5JykuJzwvdGg+JzsKICAkcGFnZXNldHRpbmdzIC49ICc8dGg+Jy4kdGhpcy0+bGFuZygnb2dfdHlwZScpLic8L3RoPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ2tleXdvcmRzJykuJzwvdGg+JzsKICAkcGFnZXNldHRpbmdzIC49ICc8dGg+Jy4kdGhpcy0+bGFuZygnZGVzY3JpcHRpb24nKS4nPC90aD4nOwogICRwYWdlc2V0dGluZ3MgLj0gJzx0aD4nLiR0aGlzLT5sYW5nKCdpbmRleCcpLic8L3RoPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ2ZvbGxvdycpLic8L3RoPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPC90cj4nOwoKCgkkYWxsX2NvbnRlbnQgPSBDb250ZW50T3BlcmF0aW9uczo6R2V0QWxsQ29udGVudCgpOwoJZm9yZWFjaCAoJGFsbF9jb250ZW50IGFzICRjb250ZW50X29iaikgewoJCWlmICgkY29udGVudF9vYmotPkFjdGl2ZSgpICE9PSB0cnVlKQoJCQljb250aW51ZTsKCQkkcHJlZml4ID0gIiI7CgkJJGF1dG9fcHJpb3JpdHkgPSA4MDsKCQlmb3IgKCRpID0gMDsgJGkgPCBzdWJzdHJfY291bnQoJGNvbnRlbnRfb2JqLT5IaWVyYXJjaHkoKSwnLicpOyAkaSsrKSB7CgkJICAkcHJlZml4IC49ICcmcmFxdW87ICc7CgkJICAkYXV0b19wcmlvcml0eSAgPSAkYXV0b19wcmlvcml0eSAvIDI7CgkJfQoJCWlmICgkY29udGVudF9vYmotPkRlZmF1bHRDb250ZW50KCkgPT0gMSkgewoJCSAgJGF1dG9fcHJpb3JpdHkgPSAxMDA7CgkJfQoKCQkkZGVzY3JpcHRpb24gPSAkY29udGVudF9vYmotPkdldFByb3BlcnR5VmFsdWUoc3RyX3JlcGxhY2UoJyAnLCdfJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKSkpOwoJCSRrdyA9IGFycmF5X2ZsaXAoJHRoaXMtPmdldEtleXdvcmRTdWdnZXN0aW9ucygkY29udGVudF9vYmotPklkKCkpKTsKCgkJJGRlc2NyaXB0aW9uX2F1dG8gPSBmYWxzZTsKCQlpZiAoKCRkZXNjcmlwdGlvbiA9PSAiIikgJiYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlJywnZmFsc2UnKSA9PSAndHJ1ZScpKSB7CgkJICAkbGFzdF9rZXl3b3JkID0gYXJyYXlfcG9wKCRrdyk7CgkJICAka2V5d29yZHMgPSBpbXBsb2RlKCcsICcsJGt3KSAuICIgIiAuICR0aGlzLT5sYW5nKCdhbmQnKSAuICIgIiAuICRsYXN0X2tleXdvcmQ7CgkJICAkZGVzY3JpcHRpb24gPSAkdGhpcy0+bGFuZygnYXV0b19nZW5lcmF0ZWQnKS4iOiAiLnN0cl9yZXBsYWNlKCd7a2V5d29yZHN9Jywka2V5d29yZHMsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG8nLCcnKSk7CgkJICAkZGVzY3JpcHRpb24gPSBzdHJfcmVwbGFjZSgne3RpdGxlfScsJGNvbnRlbnRfb2JqWydjb250ZW50X25hbWUnXSwkZGVzY3JpcHRpb24pOwoJCSAgJGRlc2NyaXB0aW9uX2F1dG8gPSB0cnVlOwoJCX0KCQkkZGVmYXVsdF9vZ3R5cGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdHlwZScsJycpOwoKCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBXSEVSRSBjb250ZW50X2lkID0gJy4kY29udGVudF9vYmotPklkKCk7CgkJJHJlc3VsdDIgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJJGluZm8gPSAkcmVzdWx0Mi0+ZmV0Y2hSb3coKTsKCgkJJHByaW9yaXR5ID0gJyhhdXRvKSA8c3BhbiBjbGFzcz0icHJpb3JpdHkiPicuJGF1dG9fcHJpb3JpdHkuJzwvc3Bhbj4lICc7CgkJJG9ndHlwZSA9ICcoZGVmYXVsdCkgJy4kZGVmYXVsdF9vZ3R5cGUuJyAnLiR0aGlzLT5DcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy9tb2R1bGVzL1NFT1Rvb2xzMi9pbWcvZWRpdC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgJHRoaXMtPmxhbmcoJ2VkaXRfdmFsdWUnKSwgQXJyYXkoIndoYXQiPT4iZWRpdF9vZ3R5cGUiLCJjb250ZW50X2lkIj0+JGNvbnRlbnRfb2JqLT5JZCgpKSk7CgkJJGtleXdvcmRzID0gJyhhdXRvKSAnLmNvdW50KCRrdykuJyAnLiR0aGlzLT5DcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy9tb2R1bGVzL1NFT1Rvb2xzMi9pbWcvZWRpdC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgaW1wbG9kZSgnLCAnLCRrdykuJzsgJy4kdGhpcy0+bGFuZygnZWRpdF92YWx1ZScpLCBBcnJheSgid2hhdCI9PiJlZGl0X2tleXdvcmRzIiwiY29udGVudF9pZCI9PiRjb250ZW50X29iai0+SWQoKSkpOwoKCQkkaW5kZXhhYmxlID0gJ3RydWUnOwoJCSRmb2xsb3cgPSAndHJ1ZSc7CgoJCWlmICgkaW5mb1snY29udGVudF9pZCddICE9ICIiKSB7CgkJICBpZiAoJGluZm9bJ3ByaW9yaXR5J10gIT0gMCkgewoJCQkkcHJpb3JpdHkgPSAnPGIgY2xhc3M9InJlc2V0MTAwIj48c3BhbiBjbGFzcz0icHJpb3JpdHkiPicuJGluZm9bJ3ByaW9yaXR5J10gLiAnPC9zcGFuPiUgJy4kdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvbW9kdWxlcy9TRU9Ub29sczIvaW1nL3Jlc2V0LnBuZyIgYWxpZ249ImFic21pZGRsZSIgLz4nLCAkdGhpcy0+bGFuZygncmVzZXRfdG9fZGVmYXVsdCcpLCBBcnJheSgid2hhdCI9PiJyZXNldF9wcmlvcml0eSIsImNvbnRlbnRfaWQiPT4kY29udGVudF9vYmotPklkKCkpKSAuICc8L2I+JzsKCQkJJGF1dG9fcHJpb3JpdHkgPSAkaW5mb1sncHJpb3JpdHknXTsKCQkgIH0KCQkgIGlmICgkaW5mb1snb2d0eXBlJ10gIT0gIiIpIHsKCQkJJG9ndHlwZSA9ICc8Yj4nLiRpbmZvWydvZ3R5cGUnXSAuICcgJyAuICR0aGlzLT5DcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy9tb2R1bGVzL1NFT1Rvb2xzMi9pbWcvcmVzZXQucG5nIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsICR0aGlzLT5sYW5nKCdyZXNldF90b19kZWZhdWx0JyksIEFycmF5KCJ3aGF0Ij0+InJlc2V0X29ndHlwZSIsImNvbnRlbnRfaWQiPT4kY29udGVudF9vYmotPklkKCkpKSAuICR0aGlzLT5DcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy9tb2R1bGVzL1NFT1Rvb2xzMi9pbWcvZWRpdC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgJHRoaXMtPmxhbmcoJ2VkaXRfdmFsdWUnKSwgQXJyYXkoIndoYXQiPT4iZWRpdF9vZ3R5cGUiLCJjb250ZW50X2lkIj0+JGNvbnRlbnRfb2JqLT5JZCgpKSkuJzwvYj4nOwoJCSAgfQoJCSAgaWYgKCRpbmZvWydrZXl3b3JkcyddICE9ICIiKSB7CgkJCSRrZXl3b3JkcyA9ICc8Yj4nLmNvdW50KGV4cGxvZGUoJyAnLCRpbmZvWydrZXl3b3JkcyddKSkgLiAkdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvbW9kdWxlcy9TRU9Ub29sczIvaW1nL3Jlc2V0LnBuZyIgYWxpZ249ImFic21pZGRsZSIgLz4nLCAkdGhpcy0+bGFuZygncmVzZXRfdG9fZGVmYXVsdCcpLCBBcnJheSgid2hhdCI9PiJyZXNldF9rZXl3b3JkcyIsImNvbnRlbnRfaWQiPT4kY29udGVudF9vYmotPklkKCkpKSAuICR0aGlzLT5DcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy9tb2R1bGVzL1NFT1Rvb2xzMi9pbWcvZWRpdC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgJHRoaXMtPmxhbmcoJ2VkaXRfdmFsdWUnKSwgQXJyYXkoIndoYXQiPT4iZWRpdF9rZXl3b3JkcyIsImNvbnRlbnRfaWQiPT4kY29udGVudF9vYmotPklkKCkpKS4nPC9iPic7CgkJICB9CgkJICBpZiAoJGluZm9bJ2luZGV4YWJsZSddID09IDApIHsKCQkJJGluZGV4YWJsZSA9ICdmYWxzZSc7CgkJICB9CgkJICBpZiAoIWVtcHR5KCRpbmZvWydmb2xsb3cnXSkgJiYgJGluZm9bJ2ZvbGxvdyddID09IDEgKSB7CgkJCSRmb2xsb3cgPSAnZmFsc2UnOwoJCSAgfQoJCX0KCgkJJHVwZG93biAgPSAkdGhpcy0+Q3JlYXRlTGluayAobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYiIGJvcmRlcj0iMCIgYWxpZ249ImFic21pZGRsZSIgLz4nLCBBcnJheSgnd2hhdCc9PidzZXRfcHJpb3JpdHknLCdwcmlvcml0eSc9PiRhdXRvX3ByaW9yaXR5LTEwLCdjb250ZW50X2lkJz0+JGNvbnRlbnRfb2JqLT5JZCgpKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJ1cGRvd24gZG93biInLCBmYWxzZSwgJycpOwoJCSR1cGRvd24gLj0gJHRoaXMtPkNyZWF0ZUxpbmsgKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRyb290X3VybC4nLycuJGFkbWluX2Rpci4nL3RoZW1lcy8nLiR0aGVtZU5hbWUuJy9pbWFnZXMvaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmIiBib3JkZXI9IjAiIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgQXJyYXkoJ3doYXQnPT4nc2V0X3ByaW9yaXR5JywncHJpb3JpdHknPT4kYXV0b19wcmlvcml0eSsxMCwnY29udGVudF9pZCc9PiRjb250ZW50X29iai0+SWQoKSksICcnLCBmYWxzZSwgZmFsc2UsICdjbGFzcz0idXBkb3duIHVwIicsIGZhbHNlLCAnJyk7CgkJJHVwZG93biAuPSAiICIgLiAkdGhpcy0+bGFuZygnZGVjcmVhc2VfcHJpb3JpdHknKTsKCQkKCQkKCQkkcGFnZXNldHRpbmdzIC49ICc8dHIgY2xhc3M9InJvdycuKCRqICUgMiArIDEpLiciPic7CgkJJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPicuJGNvbnRlbnRfb2JqLT5JZCgpLic8L3RkPic7CgkJJHBhZ2VzZXR0aW5ncyAuPSAnPHRkIGNsYXNzPSJwZyI+Jy4kcHJlZml4IC4nICcuJGNvbnRlbnRfb2JqLT5OYW1lKCkuJzwvdGQ+JzsKCgoJCWlmIChzdHJwb3MoJGNvbnRlbnRfb2JqLT5UeXBlKCksICdjb250ZW50JykgIT09IGZhbHNlIHx8IHN0cnBvcygkY29udGVudF9vYmotPlR5cGUoKSwgJ2xpbmsnKSAhPT0gZmFsc2UgKSB7CgkJICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+Jy4kdXBkb3duLicgPHNwYW4gY2xhc3M9InBtc2ciPicuJHByaW9yaXR5Lic8L3NwYW4+PC90ZD4nOwoJCSAgLy8gICAgICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+Jy4gJG9ndHlwZS4nPC90ZD4nOwoJCSAgJHBhZ2VzZXR0aW5ncyAuPSBzdHJwb3MoJGNvbnRlbnRfb2JqLT5UeXBlKCksICdsaW5rJykgIT09IGZhbHNlID8gJzx0ZD4tLS08L3RkPicgOiAnPHRkPicuICRvZ3R5cGUuJzwvdGQ+JzsKCQkgICRwYWdlc2V0dGluZ3MgLj0gc3RycG9zKCRjb250ZW50X29iai0+VHlwZSgpLCAnbGluaycpICE9PSBmYWxzZSA/ICc8dGQ+LS0tPC90ZD4nIDogJzx0ZD4nLiAka2V5d29yZHMuJzwvdGQ+JzsKCgkJICAvLyAgICAgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4nLiRrZXl3b3Jkcy4nPC90ZD4nOwoJCSAgaWYgKHN0cnBvcygkY29udGVudF9vYmotPlR5cGUoKSwgJ2NvbnRlbnQnKSAhPT0gZmFsc2UgKSB7CgoJCQlpZiAoJGRlc2NyaXB0aW9uICE9ICIiKSB7CgkJCSAgaWYgKCRkZXNjcmlwdGlvbl9hdXRvKSB7CgkJCQkkcGFnZXNldHRpbmdzIC49ICc8dGQ+PGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9zeXN0ZW0vd2FybmluZy5naWYiIHRpdGxlPSInLnN0cmlwX3RhZ3MoJGRlc2NyaXB0aW9uKS4nIGFsdD0iJy5zdHJpcF90YWdzKCRkZXNjcmlwdGlvbikuJyAvPjwvdGQ+JzsKCQkJICB9ZWxzZXsKCQkJCSRwYWdlc2V0dGluZ3MgLj0gJzx0ZD48YSBocmVmPSJlZGl0Y29udGVudC5waHA/Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfR0VUW0NNU19TRUNVUkVfUEFSQU1fTkFNRV0uJyZjb250ZW50X2lkPScuJGNvbnRlbnRfb2JqLT5JZCgpLiciPjxpbWcgc3JjPSInLiRyb290X3VybC4nLycuJGFkbWluX2Rpci4nL3RoZW1lcy8nLiR0aGVtZU5hbWUuJy9pbWFnZXMvaWNvbnMvc3lzdGVtL3RydWUuZ2lmIiB0aXRsZT0iJy5zdHJpcF90YWdzKCRkZXNjcmlwdGlvbikuJyBhbHQ9Iicuc3RyaXBfdGFncygkZGVzY3JpcHRpb24pLiciIC8+PC9hPjwvdGQ+JzsKCQkJICB9CgkJCX1lbHNlewoJCQkgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZD48YSBocmVmPSJlZGl0Y29udGVudC5waHA/Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfR0VUW0NNU19TRUNVUkVfUEFSQU1fTkFNRV0uJyZjb250ZW50X2lkPScuJGNvbnRlbnRfb2JqLT5JZCgpLiciPjxpbWcgc3JjPSInLiRyb290X3VybC4nLycuJGFkbWluX2Rpci4nL3RoZW1lcy8nLiR0aGVtZU5hbWUuJy9pbWFnZXMvaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZiIgYm9yZGVyPSIwIiB0aXRsZT0iJy4kdGhpcy0+bGFuZygnY2xpY2tfdG9fYWRkX2Rlc2NyaXB0aW9uJykuJyIgYWx0PSInLiR0aGlzLT5sYW5nKCdjbGlja190b19hZGRfZGVzY3JpcHRpb24nKS4nIi8+PC9hPjwvdGQ+JzsKCQkJfQoJCSAgfSBlbHNlIHsKCQkJJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPi0tLTwvdGQ+JzsKCQkgIH0KCQkgIC8vIEluZGV4L05vaW5kZXggRm9sbG93L05vZm9sbG93CgkJICAkcGFnZXNldHRpbmdzIC49ICc8dGQgY2xhc3M9InNlbzJhamF4Ij4nLiR0aGlzLT5DcmVhdGVUb29sdGlwTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbS8nLiRpbmRleGFibGUuJy5naWYiIC8+JywgJycsIEFycmF5KCd3aGF0Jz0+J3RvZ2dsZV9pbmRleCcsJ2NvbnRlbnRfaWQnPT4kY29udGVudF9vYmotPklkKCkpKS4nPC90ZD4nOwoJCSAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkIGNsYXNzPSJzZW8yYWpheCI+Jy4kdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9zeXN0ZW0vJy4kZm9sbG93LicuZ2lmIiAvPicsICcnLCBBcnJheSgnd2hhdCc9Pid0b2dnbGVfZm9sbG93JywnY29udGVudF9pZCc9PiRjb250ZW50X29iai0+SWQoKSkpLic8L3RkPic7CgkJfWVsc2V7CgkJICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+LS0tPC90ZD4nOwoJCSAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPi0tLTwvdGQ+JzsKCQkgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4tLS08L3RkPic7CgkJICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+LS0tPC90ZD4nOwoJCSAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPi0tLTwvdGQ+JzsKCQkgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4tLS08L3RkPic7CgkJfQoJCSRwYWdlc2V0dGluZ3MgLj0gJzwvdHI+JzsKCQkkaisrOwoKfQoKICAkcGFnZXNldHRpbmdzIC49ICc8L3RhYmxlPic7CiAgZWNobyAkcGFnZXNldHRpbmdzOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_seosettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4wLjEyLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogU0VPIFNldHRpbmdzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKICAvLyBHZXQgaW1hZ2UgZmlsZXMgZnJvbSAvdXBsb2Fkcy9pbWFnZXMKICAkZmlsZXNfbGlzdCA9IEFycmF5KCR0aGlzLT5sYW5nKCdub25lJyk9PiIiKTsKICAKICAKICAkZHAgPSBvcGVuZGlyKCRjb25maWdbJ3Jvb3RfcGF0aCddLicvdXBsb2Fkcy9pbWFnZXMnKTsKICB3aGlsZSAoJGZpbGUgPSByZWFkZGlyKCRkcCkpIHsKICAgIGlmIChzdHJwb3Moc3Vic3RyKCRmaWxlLCAtNSksJy5naWYnKSAhPT0gZmFsc2UpIHsKICAgICAgJGZpbGVzX2xpc3RbJGZpbGVdID0gJGZpbGU7CiAgICB9CiAgICBpZiAoc3RycG9zKHN1YnN0cigkZmlsZSwgLTUpLCcucG5nJykgIT09IGZhbHNlKSB7CiAgICAgICRmaWxlc19saXN0WyRmaWxlXSA9ICRmaWxlOwogICAgfQogICAgaWYgKHN0cnBvcyhzdWJzdHIoJGZpbGUsIC01KSwnLmpwZycpICE9PSBmYWxzZSkgewogICAgICAkZmlsZXNfbGlzdFskZmlsZV0gPSAkZmlsZTsKICAgIH0KICAgIGlmIChzdHJwb3Moc3Vic3RyKCRmaWxlLCAtNSksJy5qcGVnJykgIT09IGZhbHNlKSB7CiAgICAgICRmaWxlc19saXN0WyRmaWxlXSA9ICRmaWxlOwogICAgfQogIH0KICBjbG9zZWRpcigkZHApOwoKICAkc2V0dGluZ3MgID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydChudWxsLCAnY2hhbmdlc2V0dGluZ3MnKTsKCiAgLyogUGFnZSBUaXRsZSAqLwogICRzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAndGl0bGVfZGVzY3JpcHRpb24nLCAkdGhpcy0+TGFuZygndGl0bGVfdGl0bGVfZGVzY3JpcHRpb24nKSk7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ3RpdGxlX3RpdGxlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAndGl0bGUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGl0bGUnLCd7dGl0bGV9IHwgeyRzaXRlbmFtZX0gLSB7JHRpdGxlX2tleXdvcmRzfScpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCd0aXRsZV90aXRsZV9oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCd0aXRsZV9tZXRhX3RpdGxlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAndGl0bGVfbWV0YScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aXRsZV9tZXRhJywne3RpdGxlfSB8IHskc2l0ZW5hbWV9JyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ3RpdGxlX21ldGFfaGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZGVzY3JpcHRpb25fYmxvY2tfdGl0bGUnKS4nOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdkZXNjcmlwdGlvbl9ibG9jaycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdkZXNjcmlwdGlvbl9ibG9ja19oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nIC4gJHRoaXMtPkxhbmcoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnKSAuICc6ICcgLiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlJywxKSkgLiAnPC9wPic7CgoKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZGVzY3JpcHRpb25fYXV0b190aXRsZScpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2Rlc2NyaXB0aW9uX2F1dG8nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0bycsJ1RoaXMgcGFnZSBjb3ZlcnMgdGhlIHRvcGljcyB7a2V5d29yZHN9JyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ2Rlc2NyaXB0aW9uX2F1dG9faGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZGVmYXVsdF9rZXl3b3Jkc190aXRsZScpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2RlZmF1bHRfa2V5d29yZHMnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9rZXl3b3JkcycsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdkZWZhdWx0X2tleXdvcmRzX2hlbHAnKS4nPC9wPic7CgogIC8qIENvbXBpbGUgdGhlIFVEVHNzIG9uIHRoZSBLZXl3b3JkIFNldHRpbmdzIHRhYiAqLwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nIC4gJHRoaXMtPkxhbmcoJ2NvbXBpbGVfdWR0cycpIC4gJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicgLiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnY29tcGlsZV91ZHRzJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NvbXBpbGVfdWR0cycsMSkpLicgJy4kdGhpcy0+bGFuZygnY29tcGlsZV91ZHRzX2hlbHAnKS4nPC9wPic7CiAgCiAgCiAgCiAgCiAgJHNldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldEVuZCgpOwoKICAvKiBNRVRBIFR5cGVzICovCiAgJHNldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdtZXRhX3R5cGUnLCAkdGhpcy0+TGFuZygndGl0bGVfbWV0YV90eXBlJykpOwogIAogIC8qIENoZWNrIHRoZSBET0NUWVBFICovCiAgJGl0ZW1zID0gYXJyYXkoJ0hUTUw1JyA9PiAzLCdYSFRNTCcgPT4gMiwnSFRNTDQnID0+IDEpOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiAkdGhpcy0+TGFuZygnbWV0YV9kb2N0eXBlJykgLiAnOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24obnVsbCwgJ21ldGFfZG9jdHlwZScsICRpdGVtcywgJycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2RvY3R5cGUnLDMpLCAnJykuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2RvY3R5cGVfaGVscCcpLic8L3A+PGJyIC8+JzsKICAKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdtZXRhX2NyZWF0ZV9zdGFuZGFyZCcpIC4gJzogJyAuICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KG51bGwsICdtZXRhX3N0YW5kYXJkJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfc3RhbmRhcmQnLDEpKSAuICc8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdtZXRhX2NyZWF0ZV9kdWJsaW5jb3JlJykgLiAnOiAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ21ldGFfZHVibGluY29yZScsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2R1YmxpbmNvcmUnLDEpKSAuICc8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdtZXRhX2NyZWF0ZV9vcGVuZ3JhcGgnKSAuICc6ICcgLiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnbWV0YV9vcGVuZ3JhcGgnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGgnLDEpKSAuICc8L3A+JzsKICAkc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CgogIC8qIE1FVEEgRGVmYXVsdHMgKi8KICAkc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0U3RhcnQobnVsbCwgJ21ldGFfZGVmYXVsdHMnLCAkdGhpcy0+TGFuZygndGl0bGVfbWV0YV9kZWZhdWx0cycpKTsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9wdWJsaXNoZXInKS4nOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX3B1Ymxpc2hlcicsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX3B1Ymxpc2hlcicsJ3tzaXRlbmFtZX0nKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9wdWJsaXNoZXJfaGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9jb250cmlidXRvcicpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfY29udHJpYnV0b3InLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9jb250cmlidXRvcicsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2NvbnRyaWJ1dG9yX2hlbHAnKS4nPC9wPic7CgogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX2NvcHlyaWdodCcpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfY29weXJpZ2h0JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JywnKEMpIHtjdXN0b21fY29weXJpZ2h0fSB7c2l0ZW5hbWV9LiBBbGwgcmlnaHRzIHJlc2VydmVkLicpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2NvcHlyaWdodF9oZWxwJykuJzwvcD48YnIgLz4nOwoKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij48Yj4nLiR0aGlzLT5sYW5nKCdtZXRhX2xvY2F0aW9uX2Rlc2NyaXB0aW9uJykuJzwvYj48L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9sb2NhdGlvbicpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfbG9jYXRpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb2NhdGlvbicsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2xvY2F0aW9uX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfcmVnaW9uJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9yZWdpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKSwgNSwgNSkuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX3JlZ2lvbl9oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX2xhdGl0dWRlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9sYXRpdHVkZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfbGF0aXR1ZGVfaGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9sb25naXR1ZGUnKS4nOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX2xvbmdpdHVkZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2xvbmdpdHVkZV9oZWxwJykuJzwvcD48YnIgLz4nOwoKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij48Yj4nLiR0aGlzLT5sYW5nKCdtZXRhX29wZW5ncmFwaF9kZXNjcmlwdGlvbicpLic8L2I+PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3RpdGxlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnLCd7dGl0bGV9JyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3RpdGxlX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3R5cGUnKS4nOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX29wZW5ncmFwaF90eXBlJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3R5cGUnLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfdHlwZV9oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX29wZW5ncmFwaF9zaXRlbmFtZScpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2ltYWdlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24obnVsbCwgJ21ldGFfb3BlbmdyYXBoX2ltYWdlJywgJGZpbGVzX2xpc3QsIG51bGwsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9pbWFnZScsJycpKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2ltYWdlX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2FkbWlucycpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfb3BlbmdyYXBoX2FkbWlucycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb24nLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb25faGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CgogIC8qIEFkZGl0aW9uYWwgTWV0YSBUYWdzICovCiAgJHNldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdhZGRpdGlvbmFsX21ldGEnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkaXRpb25hbF9tZXRhX3RhZ3MnKSk7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2FkZGl0aW9uYWxfbWV0YV90YWdzX3RpdGxlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCBudWxsLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnLCcnKSwgJ2FkZGl0aW9uYWxfbWV0YV90YWdzJykuJyAnLiR0aGlzLT5sYW5nKCdhZGRpdGlvbmFsX21ldGFfdGFnc19oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdChudWxsLCAnc2F2ZV9tZXRhX3NldHRpbmdzJywgJHRoaXMtPmxhbmcoJ3NhdmUnKSkuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKICAkc2V0dGluZ3MgLj0gJzxiciAvPjxiciAvPicuJHRoaXMtPmxhbmcoJ2hlbHBfZGVzY3JpcHRpb25fY29udGVudCcpOwoJZWNobyAkc2V0dGluZ3M7CiAgPz4K]]></data>
	</file>
	<file>
	  <filename>/function.admin_sitemapsettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4wLjEyLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogU2l0ZW1hcCBTZXR0aW5ncwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiAgJHNzZXR0aW5ncyAgPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KG51bGwsICdjaGFuZ2VzZXR0aW5ncycpOwoKICAkc3NldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdzaXRlbWFwX2Rlc2NyaXB0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX3NpdGVtYXBfZGVzY3JpcHRpb24nKSk7CiAgJHNzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nIC4gJHRoaXMtPkxhbmcoJ2NyZWF0ZV9zaXRlbWFwX3RpdGxlJykgLiAnOiAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ2NyZWF0ZV9zaXRlbWFwJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywxKSkgLiAnPC9wPic7CiAgaWYgKGluaV9nZXQoJ2FsbG93X3VybF9mb3BlbicpKSB7CiAgICAkc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicgLiAkdGhpcy0+TGFuZygncHVzaF9zaXRlbWFwX3RpdGxlJykgLiAnOiAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ3B1c2hfc2l0ZW1hcCcsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLDApKSAuICc8L3A+JzsKICB9ZWxzZXsKICAgICRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdwdXNoX3NpdGVtYXBfdGl0bGUnKSAuICc6ICcgLiAkdGhpcy0+TGFuZygnbm9fdXJsX2ZvcGVuJykgLiAnPC9wPic7CiAgfQogICRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdjcmVhdGVfcm9ib3RzX3RpdGxlJykgLiAnOiAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ2NyZWF0ZV9yb2JvdHMnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3JvYm90cycsMSkpIC4gJzwvcD4nOwoKICAkc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ3ZlcmlmaWNhdGlvbl90aXRsZScpLic6PC9wPic7CiAgJHNzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICd2ZXJpZmljYXRpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndmVyaWZpY2F0aW9uJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ3ZlcmlmaWNhdGlvbl9oZWxwJykuJzwvcD4nOwogICRzc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CgogICRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KG51bGwsICdzYXZlX3NpdGVtYXBfc2V0dGluZ3MnLCAkdGhpcy0+bGFuZygnc2F2ZScpKS4nPC9wPic7CgogICRzc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKCiAgJHNzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KG51bGwsICdjaGFuZ2VzZXR0aW5ncycpOwogICRzc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0U3RhcnQobnVsbCwgJ3JlZ2VuZXJhdGVfc2l0ZW1hcCcsICR0aGlzLT5MYW5nKCd0aXRsZV9yZWdlbmVyYXRlX3NpdGVtYXAnKSk7CiAgJHNzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+JzsKICAkc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdChudWxsLCAnZG9fcmVnZW5lcmF0ZScsICR0aGlzLT5sYW5nKCdidXR0b25fcmVnZW5lcmF0ZV9zaXRlbWFwJykpLic8L3A+JzsKICAkc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4nOwogICRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmxhbmcoJ3RleHRfcmVnZW5lcmF0ZV9zaXRlbWFwJykuJzwvcD4nOwogICRzc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CiAgJHNzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKICAkc3NldHRpbmdzIC49ICc8YnIgLz48YnIgLz4nLiR0aGlzLT5sYW5nKCdoZWxwX3NpdGVtYXBfcm9ib3RzJyk7CiAgZWNobyAkc3NldHRpbmdzOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/img/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/img/ajax-loader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/img/edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAB3RJTUUH2ggQDQAHiaSPRwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAARnQU1BAACxjwv8YQUAAAImSURBVHjajZPPaxNBFMe/O9tuaJMY7NbUqrVNVeoPVESqB+2pBxFBD3r3Ip78Lzx48aA0WpGi4EnBg0UptIeK0Jh6UKIhmKRG0f5MqjFNm7o7uzvrzJoNqUm0A495zLzPd95j3pNs24YkSbsAdHCT8e+V4/aNM6xyIgT4Oq5pWsEwDMs0Tbue8Xs7HA7f5rE93IjgnMfLGZzgcFTXdcL9ijgHwRgDpRSqqmIp9QxrsaeQfYdR+v4KkjZ/WUQL6+fBb7gICCEO5ApYluUItNAI1tLTaGkfQCB0DIUvUSQnRrJN1QUK2N2FiCzLTprs5yQMK4W2faeQz3yEIlH4t2yHT90dqBFwSxC+eJ2tTEMxEgj0noG++BhKq4SvsSS0dX2lVFo9uUGgun7h0x8RsMJLBPaehzZ/D0Qx0ezrhteeQ3j0w7U7Y5k0afRf2eRzlBYmyvAwSLMBWuzB8tR7qIPXIWAn07pwagzFhSiCh86BLo1AVmzoxW4Ov8O2C0PwdOyvxDb9Dc9En4CtJmBKO7AYH8LWoAIt34XC2yQ6L96F7O/cEF+TQfz1Axw8fRWe2SmkRyOIjeeRnowhePZGDVxXYObzMmjiBUJHB+D19iEbz6Dv0k142nudn3G/umEJiU853Lo/jP4DIfj3HMHglYdobdvZcDiqBcRQSI/G57CJ5bQqbzJbDIUAGW+aX+7F/2Aeu853y+mX8jB14c84k00IoAznODv7G84tFQol4BT4AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/img/reset.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAB3RJTUUH2ggQDDghTfTcdgAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAARnQU1BAACxjwv8YQUAAAJ5SURBVHjapVNdSBRRGD1zZ8bZHcfFn1VWDSNMpYSUBCGCMivJHgyMkiAwfCroIZBSiFAixLeIChaiIlAhf4IoKkhEgh4KJetF1/xF3XSUTVubcdydud1xZRmjJOiDw8yd+53zffd8c4H/DM65uHq/sv9QiXxYN1S2IYDCYk8RinAAS/qidaff3zFwC7WAaHFihKMRUOIU8KXKGUnJERD3OHh5DoIcZJiFKX1GuneZtNZcOd/SWfUFpZHdlPE5EZzgFFglAWUpIYyQFARx9CZgBGaUtWsC5QfrC/0ptQMX654U0hlpjt9ynkx1x0xwhXwdwdjYKKYYJsdGuen5OU/IpaRmpGbKZFLrtYpyy92iQnIG30x1xcmia4svv0NhqLjxLG+hfcZDu4NltGOgTkcOTsU7sKLbmr3OMB5YCekVZcUn1+h7eN1FQvuHoXnhrxTbXsvREwUWVAxRIwkcsRVXbHM2p0Bi+XZkncOF9Hw+LU5GjGzHsePuao+L1TQSoWnf7U/6pssxy083pjTce33UTi9jcDOkMXhRifwjjdLNro81tHOwhHYN7aTNTwu+sb09G0eIshIn6pMbzlbvb/Up+XjUp/Ym8ImUbpQWOdlVzCcpOsL6KMJrgxCEAnS/CDxgm8Ox0lVofnx9b5OUoOGnMQVF9oJadLN35jPng2FOgxd+wIxko6dn8dXLlvUzjKzFphDgZ9P2qSVZecs5dv6qqWGd02HAhoYor8KgFiYmpLW2tpD/3V3zMmOFN7Sdf/Klh3i+qxCl1xpxO1tCkPDsItgeExCdKalv0c+Wn5yTib2LcZHsyib0eXKRu+14/3gtxS0pAsfjn+IXjhPiCXMAIGsAAAAASUVORK5CYII=]]></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[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgQWN0aW9uOiBlbl9VUyBIZWxwIHRleHQgYW5kIGNoYW5nZSBsb2cKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NFT1Rvb2xzMic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1NFT1Rvb2xzMiBoYXMgYmVlbiBpbnN0YWxsZWQuIEJlIHN1cmUgdG8gcmVhZCB0aGUgbW9kdWxlIGhlbHAgdG8gbGVhcm4gaG93IHRvIHVzZSBpdC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1NFT1Rvb2xzMiBoYXMgYmVlbiB1bmluc3RhbGxlZC4gUGxlYXNlIGJlIGF3YXJlIHRoYXQgeW91IGhhdmUganVzdCBsb3N0IGFsbCBtZXRhIGluZm9ybWF0aW9uIGZyb20geW91ciBwYWdlcyEnOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byB1bmluc3RhbGwgU0VPVG9vbHMyPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgY29sbGVjdGlvbiBvZiB0b29scyB0byBoZWxwIHdpdGggU2VhcmNoIEVuZ2luZSBPcHRpbWl6YXRpb24uJzsKCiRsYW5nWydldmVudGRlc2MtUHJlZnNVcGRhdGVkJ10gPSAnU2VudCB3aGVuIHRoZSBhZG1pbiBwcmVmZXJlbmNlcyBhcmUgdXBkYXRlZC4nOwokbGFuZ1snZXZlbnRoZWxwLVByZWZzVXBkYXRlZCddID0gJzxwPlNlbnQgd2hlbiB0aGUgYWRtaW4gcHJlZmVyZW5jZXMgYXJlIHVwZGF0ZWQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+CjxvbD4KPGxpPjwvbGk+Cjwvb2w+JzsKCgoKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmRbJ2FkbWluX3RpdGxlJ10gPSAnU0VPVG9vbHMyIEFkbWluIFBhbmVsJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICdIZWxwcyB3aXRoIFNFTyBpbiBnZW5lcmFsLCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgWE1MIHNpdGVtYXBzIGFuZCBjb21wcmVoZW5zaXZlIG1ldGEgZGVzY3JpcHRpb25zJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzcyBEZW5pZWQuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zLic7CiRsYW5nWydTRU9BbGVydHMnXSA9ICdTRU8gQWxlcnRzJzsKJGxhbmdbJ1BhZ2VkZXNjcmlwdGlvbnMnXSA9ICdQYWdlIHNldHRpbmdzJzsKJGxhbmdbJ1NpdGVtYXAnXSA9ICdTaXRlbWFwJzsKJGxhbmdbJ1NFT1NldHRpbmdzJ10gPSAnU0VPIFNldHRpbmdzJzsKJGxhbmdbJ3RpdGxlX3Nlb2FsZXJ0cyddID0gJ1NFTyBBbGVydHMnOwokbGFuZ1sndGl0bGVfcGFnZWRlc2NyaXB0aW9ucyddID0gJ1BhZ2Ugc2V0dGluZ3MnOwokbGFuZ1sndGl0bGVfc2l0ZW1hcCddID0gJ1NpdGVtYXAnOwokbGFuZ1sndGl0bGVfc2Vvc2V0dGluZ3MnXSA9ICdTRU8gU2V0dGluZ3MnOwoKJGxhbmdbJ3RpdGxlX21ldGFfdHlwZSddID0gJ01ldGEgVGFnIEdlbmVyYXRvcic7CiRsYW5nWydtZXRhX2NyZWF0ZV9zdGFuZGFyZCddID0gJ0dlbmVyYXRlIHN0YW5kYXJkIE1ldGEgVGFncyc7CiRsYW5nWydtZXRhX2RvY3R5cGUnXSA9ICdIVE1MIFZlcnNpb24nOwokbGFuZ1snbWV0YV9kb2N0eXBlX2hlbHAnXSA9ICcoU2VsZWN0IHRoZSB2ZXJzaW9uIG9mIEhUTUwgdXNlZCBpbiB0aGUgcGFnZSB0ZW1wbGF0ZXMpJzsKJGxhbmdbJ21ldGFfY3JlYXRlX2R1YmxpbmNvcmUnXSA9ICdHZW5lcmF0ZSBEdWJsaW4gQ29yZSBNZXRhIFRhZ3MnOwokbGFuZ1snbWV0YV9jcmVhdGVfb3BlbmdyYXBoJ10gPSAnR2VuZXJhdGUgT3BlbkdyYXBoIE1ldGEgVGFncyAoZS5nLiBmb3IgRmFjZWJvb2sgTGlrZSBCdXR0b24pJzsKCiRsYW5nWyd0aXRsZV9tZXRhX2RlZmF1bHRzJ10gPSAnTUVUQSBUYWcgVmFsdWVzJzsKJGxhbmdbJ21ldGFfcHVibGlzaGVyJ10gPSAnU2l0ZSBwdWJsaXNoZXInOwokbGFuZ1snbWV0YV9wdWJsaXNoZXJfaGVscCddID0gJyhUaGlzIGlzIHVzdWFsbHkgdGhlIG9yZ2FuaXphdGlvbiB5b3UgYXJlIGJ1aWxkaW5nIHRoZSB3ZWJzaXRlIGZvciknOwokbGFuZ1snbWV0YV9jb250cmlidXRvciddID0gJ1NpdGUgY29udHJpYnV0b3InOwokbGFuZ1snbWV0YV9jb250cmlidXRvcl9oZWxwJ10gPSAnKFVzdWFsbHksIHRoaXMgd291bGQgYmUgeW91IG9yIGFueSBvdGhlciBjb250ZW50IGF1dGhvciknOwokbGFuZ1snbWV0YV9jb3B5cmlnaHQnXSA9ICdTaXRlIGNvcHlyaWdodCc7CiRsYW5nWydtZXRhX2NvcHlyaWdodF9oZWxwJ10gPSAnKFNvbWV0aGluZyBsaWtlICJ7Y3VzdG9tX2NvcHlyaWdodH0ge3NpdGVuYW1lfS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCIuIFlvdSBjYW4gdXNlIHNtYXJ0eSB0YWdzIGFuZCBVRFRzIGhlcmUuKSc7CiRsYW5nWydtZXRhX2xvY2F0aW9uX2Rlc2NyaXB0aW9uJ10gPSAnSWYgeW91ciB3ZWJzaXRlIGlzIGFib3V0IGFuIGVudGl0eSB0aGF0IGNhbiBiZSBsb2NhdGVkIG9uIGEgbWFwLCB5b3Ugc2hvdWxkIG9wdGlvbmFsbHkgZmlsbCBpbiB0aGUgZm9sbG93aW5nIHZhbHVlczonOwokbGFuZ1snbWV0YV9sb2NhdGlvbiddID0gJ0xvY2F0aW9uIG9mIHlvdXIgZW50aXR5JzsKJGxhbmdbJ21ldGFfbG9jYXRpb25faGVscCddID0gJyhVc3VhbGx5LCB0aGlzIHdvdWxkIGJlIHRoZSB0b3duIG5hbWUgb2YgeW91ciBjb21wYW55KSc7CiRsYW5nWydtZXRhX3JlZ2lvbiddID0gJ1JlZ2lvbiBvZiB5b3VyIGVudGl0eSc7CiRsYW5nWydtZXRhX3JlZ2lvbl9oZWxwJ10gPSAnKEVudGVyIHNvbWV0aGluZyBsaWtlICJVUy1JTCIgZm9yIGFuIGVudGl0eSBsb2NhdGVkIGluIElsbGlub2lzLCBVUyknOwokbGFuZ1snbWV0YV9sYXRpdHVkZSddID0gJ0xhdGl0dWRlIG9mIHlvdXIgZW50aXR5JzsKJGxhbmdbJ21ldGFfbGF0aXR1ZGVfaGVscCddID0gJyhFbnRlciB0aGUgZGVjaW1hbCBsYXRpdHVkZSBnZW8gY29vZGluYXRlIG9mIHlvdXIgZW50aXRpeSknOwokbGFuZ1snbWV0YV9sb25naXR1ZGUnXSA9ICdMb25naXR1ZGUgb2YgeW91ciBlbnRpdHknOwokbGFuZ1snbWV0YV9sb25naXR1ZGVfaGVscCddID0gJyhFbnRlciB0aGUgZGVjaW1hbCBsb25naXR1ZGUgZ2VvIGNvb2RpbmF0ZSBvZiB5b3VyIGVudGl0aXkpJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX2Rlc2NyaXB0aW9uJ10gPSAnSWYgeW91IGFyZSBjcmVhdGluZyBPcGVuR3JhcGggTUVUQSBUYWdzLCBwbGVhc2UgZmlsbCBpbiB0aGUgZm9sbG93aW5nIHZhbHVlczonOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfdGl0bGUnXSA9ICdPcGVuR3JhcGggcGFnZSB0aXRsZSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF90aXRsZV9oZWxwJ10gPSAnKFlvdSBjYW4gdXNlIGFsbCBzbWFydHkgdGFncyBoZXJlLCBlLmcuIHRvIHJlcGxhY2Ugd2l0aCB0aGUgYWN0dWFsIHBhZ2UgdGl0bGUpJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX3R5cGUnXSA9ICdPcGVuR3JhcGggZGVmYXVsdCBwYWdlIHR5cGUnOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfdHlwZV9oZWxwJ10gPSAnKFRoZSBkZWZhdWx0IHBhZ2UgdHlwZSBmb3IgT3BlbkdyYXBoLCBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgZWFjaCBwYWdlLiBMb29rIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXJzLmZhY2Vib29rLmNvbS9kb2NzL29wZW5ncmFwaCN0eXBlcyIgdGFnZXQ9Il9ibGFuayI+aGVyZTwvYT4gZm9yIGEgbGlzdCBvZiBhbGxvd2VkIHZhbHVlcyknOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnXSA9ICdPcGVuR3JhcGggc2l0ZSBuYW1lJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lX2hlbHAnXSA9ICcoQSBzaG9ydCB2ZXJzaW9uIG9mIHlvdXIgc2l0ZSBuYW1lLCBlLmcuICJZb3VyIENvbXBhbnkiLCBtYXguIDI1IGNoYXJzKSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9pbWFnZSddID0gJ09wZW5HcmFwaCBkZWZhdWx0IGltYWdlJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX2ltYWdlX2hlbHAnXSA9ICcoU2VsZWN0IGFuIGltYWdlIGZyb20geW91ciBpbWFnZXMgZGlyZWN0b3J5IHRvIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgZm9yIE9wZW5HcmFwaCBwYWdlcyknOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfYWRtaW5zJ10gPSAnRmFjZWJvb2sgc2l0ZSBhZG1pbmlzdHJhdG9ycyc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9hZG1pbnNfaGVscCddID0gJyhBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZhY2Vib29rIGFjY291bnQgSURzIHdobyBhcmUgYWJsZSB0byBhZG1pbmlzdHJhdGUgdGhlIHN0cmVhbXMgb2YgeW91ciBwYWdlcyknOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb24nXSA9ICdGYWNlYm9vayBhcHBsaWNhdGlvbic7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbl9oZWxwJ10gPSAnKFRoZSBJRCBvZiBhIGZhY2Vib29rIGFwcGxpY2F0aW9uIGFibGUgdG8gYWRtaW5pc3RyYXRlIHRoZSBzdHJlYW1zIG9mIHlvdXIgcGFnZXMpJzsKCiRsYW5nWyd0aXRsZV90aXRsZV9kZXNjcmlwdGlvbiddID0gJ1BhZ2UgdGl0bGUsIGRlc2NyaXB0aW9uIGFuZCBrZXl3b3Jkcyc7CiRsYW5nWyd0aXRsZV90aXRsZSddID0gJ1BhZ2UgdGl0bGUnOwokbGFuZ1sndGl0bGVfdGl0bGVfaGVscCddID0gJyhUaGUgcGFnZSB0aXRsZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGJyb3dzZXJcJ3MgdGl0bGUgYmFyLiBZb3UgY2FuIHVzZSB0aGUgdGFncyB7dGl0bGV9LCB7JHBhZ2V0aXRsZX0sIHskc2VvX2tleXdvcmRzfSBhbmQgYWxsIHNtYXJ0eSB0YWdzIGFuZCBVRFRzIGhlcmUpJzsKJGxhbmdbJ3RpdGxlX21ldGFfdGl0bGUnXSA9ICdQYWdlIE1ldGEgdGl0bGUnOwokbGFuZ1sndGl0bGVfbWV0YV9oZWxwJ10gPSAnKFRoZSBwYWdlIHRpdGxlIHRvIGJlIHVzZWQgaW4gdGhlIE1ldGEgdGl0bGUgdGFncy4gWW91IGNhbiB1c2UgdGhlIHRhZ3Mge3RpdGxlfSwgeyRwYWdldGl0bGV9LCB7JHNlb19rZXl3b3Jkc30gYW5kIGFsbCBzbWFydHkgdGFncyBhbmQgVURUcyBoZXJlKSc7CiRsYW5nWydkZXNjcmlwdGlvbl9ibG9ja190aXRsZSddID0gJ05hbWUgb2YgcGFnZSBkZXNjcmlwdGlvbiBjb250ZW50IGJsb2NrJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uX2Jsb2NrX2hlbHAnXSA9ICcoVGhlIG5hbWUgb2YgeW91ciBwYWdlIGRlc2NyaXB0aW9uIGNvbnRlbnQgYmxvY2suIFBsZWFzZSBzZWUgYmVsb3cgZm9yIGFuIGV4cGxhbmF0aW9uKSc7CgoKCgokbGFuZ1snZGVmYXVsdF9rZXl3b3Jkc190aXRsZSddID0gJ0tleXdvcmRzIHRvIGFsd2F5cyBpbmNsdWRlJzsKJGxhbmdbJ2RlZmF1bHRfa2V5d29yZHNfaGVscCddID0gJyhBIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGtleXdvcmRzIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgb24gZXZlcnkgcGFnZSknOwoKJGxhbmdbJ3RpdGxlX3NpdGVtYXBfZGVzY3JpcHRpb24nXSA9ICdHb29nbGUgU2l0ZW1hcCBhbmQgQ3Jhd2xlciBTZXR0aW5ncyc7CiRsYW5nWydjcmVhdGVfc2l0ZW1hcF90aXRsZSddID0gJ0NyZWF0ZSBhbiBYTUwgR29vZ2xlIFNpdGVtYXAqJzsKJGxhbmdbJ3B1c2hfc2l0ZW1hcF90aXRsZSddID0gJ0F1dG9tYXRpY2FsbHkgcHVzaCB0aGUgc2l0ZW1hcCB0byBHb29nbGUgYWZ0ZXIgY29udGVudCBjaGFuZ2VzJzsKJGxhbmdbJ2NyZWF0ZV9yb2JvdHNfdGl0bGUnXSA9ICdDcmVhdGUgYSByb2JvdHMudHh0IGZpbGUqJzsKJGxhbmdbJ3ZlcmlmaWNhdGlvbl90aXRsZSddID0gJ1NpdGUgdmVyaWZpY2F0aW9uIGNvZGUnOwokbGFuZ1sndmVyaWZpY2F0aW9uX2hlbHAnXSA9ICcoVGhlIHNpdGUgdmVyaWZpY2F0aW9uIGNvZGUgeW91IG9idGFpbiBmcm9tIEdvb2dsZSBXZWJtYXN0ZXIgVG9vbHMsIGp1c3QgdGhlIGhhc2gsIG5vdCB0aGUgY29tcGxldGUgbWV0YSB0YWcpJzsKCiRsYW5nWyd0aXRsZV9hbGVydHNfdXJnZW50J10gPSAnVG8gYmUgZml4ZWQgaW1tZWRpYXRlbHknOwokbGFuZ1sndGl0bGVfYWxlcnRzX2ltcG9ydGFudCddID0gJ1RvIGJlIGZpeGVkIGFzIHNvb24gYXMgcG9zc2libGUnOwokbGFuZ1sndGl0bGVfYWxlcnRzX25vdGljZXMnXSA9ICdUaGluZ3MgeW91IHNob3VsZCBjb25zaWRlciBmaXhpbmcnOwokbGFuZ1snbm90aGluZ190b19iZV9maXhlZCddID0gJ1RoZXJlIGFyZSBubyBhY3Rpb25zIHlvdSBuZWVkIHRvIHRha2UgaW4gdGhpcyBjYXRlZ29yeSc7CgokbGFuZ1snc2F2ZSddID0gJ1NhdmUgc2V0dGluZ3MnOwokbGFuZ1snbm9uZSddID0gJyhub25lKSc7CiRsYW5nWydzZXR0aW5nc191cGRhdGVkJ10gPSAnVGhlIFNFTyBzZXR0aW5ncyB3ZXJlIHN1Y2Nlc3NmdWxseSB1cGRhdGVkLic7CiRsYW5nWydwcm9ibGVtX2FsZXJ0J10gPSAnaGFzIGRldGVjdGVkIHNldmVyZSBwcm9ibGVtcyB3aXRoIHlvdXIgU0VPLiAlcyc7CiRsYW5nWydwcm9ibGVtX2xpbmtfdGl0bGUnXSA9ICdDbGljayBoZXJlIHRvIGZpeCB0aGVtJzsKCiRsYW5nWydoZWxwX2Rlc2NyaXB0aW9uX2NvbnRlbnQnXSA9ICc8Yj5Ib3cgdG8gdXNlIHRoZSAiZGVzY3JpcHRpb24gY29udGVudCBibG9jayI6PC9iPjxiciAvPlRvIGJlIGFibGUgdG8gZW50ZXIgYSBwYWdlIGRlc2NyaXB0aW9uIHdoZW4gZWRpdGluZyBhIHBhZ2UsIHlvdSBtdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBjb2RlIGFueXdoZXJlIG9uIGV2ZXJ5IHRlbXBsYXRlOjxiciAvPjxiciAvPjxwcmU+e2NhcHR1cmUgYXNzaWduPW1ldGFkZXNjcmlwdGlvbn17Y29udGVudCBibG9jaz0ibWV0YWRlc2NyaXB0aW9uIiBsYWJlbD0iTUVUQSBEZXNjcmlwdGlvbiIgb25lbGluZT0idHJ1ZSJ9ey9jYXB0dXJlfTwvcHJlPjxiciAvPlRoZW4sIHB1dCAibWV0YWRlc2NyaXB0aW9uIiBpbnRvIHRoZSBmaWVsZCAiTmFtZSBvZiBwYWdlIGRlc2NyaXB0aW9uIGNvbnRlbnQgYmxvY2s8YnIgLz48YnIgLz5BbHRlcm5hdGl2ZWx5LCBlbmFibGUgdGhlIG9wdGlvbiAmcXVvdDtBdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGRlc2NyaXB0aW9ucyB3aGVyZSBub25lIGlzIGdpdmVuJnF1b3Q7LiBUaGlzIGlzIG5vdCBhcyBnb29kIGJ1dCBzdGlsbCBiZXR0ZXIgdGhhbiBub3RoaW5nLic7CiRsYW5nWydoZWxwX3NpdGVtYXBfcm9ib3RzJ10gPSAnKikgVG8gdXNlIHRoZSBhdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiBhIHNpdGVtYXAtIGFuZCByb2JvdHMtZmlsZSwgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHlvdXIgQ01TTVMgaW5zdGFsbGF0aW9uIG11c3QgYmUgd3JpdGVhYmxlIHRvIHRoZSB3ZWIgc2VydmVyLiBJZiB5b3VyIGFscmVhZHkgaGF2ZSBhIHNpdGVtYXAueG1sIGFuZC9wciByb2JvdHMudHh0IGZpbGUsIGJvdGggb2YgdGhlbSBtdXN0IGJlIHdyaXRlYWJsZSB0byB0aGUgd2ViIHNlcnZlci4nOwoKJGxhbmdbJ3VzZV9zdGFuZGFyZF9vcl9kdWJsaW5jb3JlX21ldGEnXSA9ICdVc2UgYXQgbGVhc3Qgb25lIG9mIHRoZSBzdGFuZGFyZCBvciBEdWJsaW4gQ29yZSBNZXRhIFRhZyBnZW5lcmF0b3JzJzsKJGxhbmdbJ3VzZV9zdGFuZGFyZF9tZXRhJ10gPSAnWW91IHNob3VsZCBhbHdheXMgZW5hYmxlIHRoZSBzdGFuZGFyZCBNZXRhIGdlbmVyYXRvcic7CiRsYW5nWydtZXRhX2Rlc2NyaXB0aW9uX21pc3NpbmcnXSA9ICdUaGUgcGFnZSA8aT4lczwvaT4gaXMgbGFja2luZyBhIE1ldGEgZGVzY3JpcHRpb24nOwokbGFuZ1snbWV0YV9kZXNjcmlwdGlvbl9zaG9ydCddID0gJ1RoZSBNZXRhIGRlc2NyaXB0aW9uIG9mIDxpPiVzPC9pPiBpcyByYXRoZXIgc2hvcnQgKCA8IDc1IGNoYXJzKSc7CiRsYW5nWydkdXBsaWNhdGVfdGl0bGVzJ10gPSAnVGhlIHBhZ2VzIDxpPiVzPC9pPiBhbmQgPGk+JXM8L2k+IGhhdmUgdGhlIHNhbWUgdGl0bGUnOwokbGFuZ1snZHVwbGljYXRlX2Rlc2NyaXB0aW9ucyddID0gJ1RoZSBwYWdlcyA8aT4lczwvaT4gYW5kIDxpPiVzPC9pPiBoYXZlIHRoZSBzYW1lIE1ldGEgZGVzY3JpcHRpb24nOwokbGFuZ1sncHJvdmlkZV9hbl9hdXRob3InXSA9ICdZb3Ugc2hvdWxkIHByb3ZpZGUgdGhlIG5hbWUgb2YgdGhlIHBhZ2UgcHVibGlzaGVyJzsKJGxhbmdbJ3NldF91cF9kZXNjcmlwdGlvbl9ibG9jayddID0gJ1NldCB1cCBhIGNvbnRlbnQgYmxvY2sgZm9yIE1ldGEgZGVzY3JpcHRpb25zJzsKJGxhbmdbJ2FjdGl2YXRlX3ByZXR0eV91cmxzJ10gPSAnQWN0aXZhdGUgdGhlIHByZXR0eSBVUkxzIGZlYXR1cmUgb2YgQ01TTVMnOwokbGFuZ1sncHJldHR5X3VybHNfaGVscCddID0gJzxhIGhyZWY9Imh0dHA6Ly93aWtpLmNtc21hZGVzaW1wbGUub3JnL2luZGV4LnBocC9Vc2VyX0hhbmRib29rL0luc3RhbGxhdGlvbi9PcHRpb25hbF9TZXR0aW5ncyIgdGFyZ2V0PSJfYmxhbmsiPkdldCBoZWxwPC9hPic7CiRsYW5nWydjcmVhdGVfYV9zaXRlbWFwJ10gPSAnSGF2ZSBhIEdvb2dsZSBYTUwgU2l0ZW1hcCBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgZm9yIHlvdSc7CiRsYW5nWydhdXRvbWF0aWNhbGx5X3VwbG9hZF9zaXRlbWFwJ10gPSAnSGF2ZSB5b3VyIFhNTCBTaXRlbWFwIGF1dG9tYXRpY2FsbHkgdXBsb2FkZWQgdG8gR29vZ2xlJzsKJGxhbmdbJ2NyZWF0ZV9yb2JvdHMnXSA9ICdIYXZlIGEgcm9ib3RzLnR4dCBmaWxlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3IgeW91JzsKJGxhbmdbJ3NpdGVtYXBfbm90X3dyaXRlYWJsZSddID0gJ1lvdXIgc2l0ZW1hcC54bWwgZmlsZSBpcyBub3Qgd3JpdGVhYmxlJzsKJGxhbmdbJ2NobW9kX3NpdGVtYXAnXSA9ICdTZXQgeW91ciAvc2l0ZW1hcC54bWwgZmlsZSB0byBiZSB3cml0ZWFibGUgYnkgdGhlIHdlYiBzZXJ2ZXInOwokbGFuZ1sncm9ib3RzX25vdF93cml0ZWFibGUnXSA9ICdZb3VyIHJvYm90cy50eHQgZmlsZSBpcyBub3Qgd3JpdGVhYmxlJzsKJGxhbmdbJ25vX29wZW5ncmFwaF9hZG1pbnMnXSA9ICdZb3UgaGF2ZSBub3Qgc2V0IGFuIE9wZW5HcmFwaCBhZG1pbiBhcHBsaWNhdGlvbiByZXNwLiBhZG1pbiBsaXN0JzsKJGxhbmdbJ25vX29wZW5ncmFwaF90eXBlJ10gPSAnWW91IGhhdmUgbm90IHNldCB0aGUgZGVmYXVsdCBPcGVuR3JhcGggcGFnZSB0eXBlJzsKJGxhbmdbJ25vX29wZW5ncmFwaF9zaXRlbmFtZSddID0gJ1lvdSBoYXZlIG5vdCBzZXQgdGhlIE9wZW5HcmFwaCBzaXRlIG5hbWUnOwokbGFuZ1snbm9fb3BlbmdyYXBoX2ltYWdlJ10gPSAnWW91IGhhdmUgbm90IHNldCBhbiBPcGVuR3JhcGggZGVmYXVsdCBpbWFnZSc7CiRsYW5nWydjaG1vZF9yb2JvdHMnXSA9ICdTZXQgeW91ciAvcm9ib3RzLnR4dCBmaWxlIHRvIGJlIHdyaXRlYWJsZSBieSB0aGUgd2ViIHNlcnZlcic7CiRsYW5nWydlZGl0X3BhZ2UnXSA9ICdFZGl0ICVzJzsKJGxhbmdbJ2VkaXRfcGFnZV90b19maXgnXSA9ICdDbGljayBoZXJlIHRvIGVkaXQgdGhlIHBhZ2UgYW5kIGZpeCB0aGUgcHJvYmxlbSc7CiRsYW5nWyd2aXNpdF9zZXR0aW5ncyddID0gJ0NoYW5nZSBzZXR0aW5ncyc7CgokbGFuZ1sncGFnZV9pZCddID0gJ0lEJzsKJGxhbmdbJ3BhZ2VfbmFtZSddID0gJ1BhZ2UgbmFtZSc7CiRsYW5nWydwYWdlX21lbnV0ZXh0J10gPSAnUGFnZSBtZW51IHRleHQnOwokbGFuZ1sncHJpb3JpdHknXSA9ICdTaXRlbWFwIFByaW9yaXR5JzsKJGxhbmdbJ29nX3R5cGUnXSA9ICdPcGVuR3JhcGggdHlwZSc7CiRsYW5nWydrZXl3b3JkcyddID0gJyMgS2V5d29yZHMnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydpbmRleCddID0gJ0luZGV4JzsKJGxhbmdbJ2ZvbGxvdyddID0gJ0ZvbGxvdyc7CgokbGFuZ1snY2xpY2tfdG9fYWRkX2Rlc2NyaXB0aW9uJ10gPSAnQ2xpY2sgaGVyZSB0byBhZGQgYSBwYWdlIGRlc2NyaXB0aW9uJzsKJGxhbmdbJ3RvZ2dsZSddID0gJ3RvZ2dsZSc7CiRsYW5nWydyZXNldCddID0gJ3Jlc2V0JzsKJGxhbmdbJ3Jlc2V0X3RvX2RlZmF1bHQnXSA9ICdSZXNldCB0aGlzIHRvIHRoZSBkZWZhdWx0IHZhbHVlJzsKJGxhbmdbJ2VkaXRfdmFsdWUnXSA9ICdbRWRpdF0nOwokbGFuZ1snYWRtaW5fdmlldyddID0gJ1F1aWNrIHVuZm9ybWF0dGVkIHZpZXcgb2YgeW91ciBtYWluIGNvbnRlbnQgYmxvY2snOwokbGFuZ1snZWRpdF9wYWdlJ10gPSAnW0VkaXQgUGFnZV0nOwokbGFuZ1sndmlld19wYWdlJ10gPSAnW1ZpZXcgaW4gQnJvd3Nlcl0nOwokbGFuZ1snY29tcGlsZV91ZHRzJ10gPSAnVXNlIFNtYXJ0eSB0byBjb21waWxlIFVEVHMgaW4gdGhlIGNvbnRlbnQgcHJldmlldyBvbiB0aGUgS2V5d29yZCBFZGl0IHNjcmVlbic7CiRsYW5nWydjb21waWxlX3VkdHNfaGVscCddID0gJyhVbmNoZWNrIHRoaXMgb3B0aW9uIGlmIGl0IGNhdXNlcyBwcm9ibGVtcy4gU21hcnR5IHRhZ3MgaW4gdGhlIHByZXZpZXcgd2lsbCB0aGVuIGFwcGVhciBhcyBub3JtYWwgdGV4dC4pJzsKCiRsYW5nWydoZWxwX29wZW5ncmFwaCddID0gJ0xvb2sgPGEgaHJlZj0iaHR0cDovL2RldmVsb3BlcnMuZmFjZWJvb2suY29tL2RvY3Mvb3BlbmdyYXBoI3R5cGVzIiB0YWdldD0iX2JsYW5rIj5oZXJlPC9hPiBmb3IgYSBsaXN0IG9mIGFsbG93ZWQgdmFsdWVzJzsKJGxhbmdbJ2VudGVyX25ld19vZ3R5cGUnXSA9ICdFbnRlciB0aGUgbmV3IHZhbHVlIGZvciB0aGlzIHBhZ2VcJ3MgT3BlbkdyYXBoIHR5cGUnOwokbGFuZ1snaGVscF9uZXdfb2d0eXBlJ10gPSAnTGVhdmUgYmxhbmsgdG8gcmV2ZXJ0IHRvIHRoZSBkZWZhdWx0IHNldHRpbmcnOwoKJGxhbmdbJ2VudGVyX25ld19rZXl3b3JkcyddID0gJ0VudGVyIHRoZSBuZXcga2V5d29yZHMgZm9yIHRoaXMgcGFnZSc7CiRsYW5nWydoZWxwX25ld19rZXl3b3JkcyddID0gJ1doaXRlc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2Yga2V5d29yZHMuIExlYXZlIGJsYW5rIHRvIHJldmVydCB0byBhdXRvIGdlbmVyYXRlZCBrZXl3b3Jkcyc7CiRsYW5nWydtZXRhZGVzY3JpcHRpb25fY29udGVudCddID0gJ01ldGEgRGVzY3JpcHRpb24gVGFnIENvbnRlbnQnOwokbGFuZ1snbm9fbWV0YWRlc2NyaXB0aW9uJ10gPSAnPGVtPjxzdHJvbmc+Tk8gTUVUQSBERVNDUklQVElPTiBTRVQgRk9SIFRISVMgUEFHRSE8L3N0cm9uZz48L2VtPic7CgokbGFuZ1snZ3JvdXB0aXRsZV9vcGVuZ3JhcGgnXSA9ICdXZSBoYXZlIGRldGVjdGVkICVzIE9wZW5HcmFwaCByZWxhdGVkIHByb2JsZW0ocyknOwokbGFuZ1snZ3JvdXB0aXRsZV9zeXN0ZW0nXSA9ICdXZSBoYXZlIGRldGVjdGVkICVzIHByb2JsZW0ocykgd2l0aCB5b3VyIHN5c3RlbSBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ2dyb3VwdGl0bGVfcGFnZXMnXSA9ICdXZSBoYXZlIGRldGVjdGVkICVzIHByb2JsZW0ocykgb24geW91ciBjb250ZW50IHBhZ2VzJzsKJGxhbmdbJ2dyb3VwdGl0bGVfc2V0dGluZ3MnXSA9ICdXZSBoYXZlIGRldGVjdGVkICVzIHByb2JsZW0ocykgd2l0aCB5b3VyIFNFTyBTZXR0aW5ncyc7CiRsYW5nWydncm91cHRpdGxlX2Rlc2NyaXB0aW9ucyddID0gJ1dlIGhhdmUgZGV0ZWN0ZWQgJXMgcHJvYmxlbShzKSB3aXRoIHlvdXIgcGFnZSBkZXNjcmlwdGlvbnMnOwokbGFuZ1snZ3JvdXB0aXRsZV90aXRsZXMnXSA9ICdXZSBoYXZlIGRldGVjdGVkICVzIHByb2JsZW0ocykgd2l0aCB5b3VyIHBhZ2UgdGl0bGVzJzsKCiRsYW5nWyd2aWV3X2FsbCddID0gJ1ZpZXcgYWxsJzsKCiRsYW5nWyd0aXRsZV9tZXRhc2V0dGluZ3MnXSA9ICdQYWdlIHRpdGxlICZhbXA7IE1ldGEgaW5mb3JtYXRpb24nOwokbGFuZ1sndGl0bGVfc2l0ZW1hcHNldHRpbmdzJ10gPSAnU2l0ZW1hcCAmYW1wOyBDcmF3bGVyIHNldHRpbmdzJzsKJGxhbmdbJ3RpdGxlX2tleXdvcmRzZXR0aW5ncyddID0gJ0tleXdvcmQgZ2VuZXJhdG9yIHNldHRpbmdzJzsKCiRsYW5nWydkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlJ10gPSAnQXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIHBhZ2UgZGVzY3JpcHRpb24gd2hlcmUgbm9uZSBpcyBwcm92aWRlZCc7CiRsYW5nWydkZXNjcmlwdGlvbl9hdXRvX3RpdGxlJ10gPSAnVGV4dCBmb3IgYXV0by1nZW5lcmF0ZWQgZGVzY3JpcHRpb25zJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uX2F1dG9faGVscCddID0gJyhZb3UgPGI+bXVzdDwvYj4gaW5jbHVkZSB0aGUgdGFnIHtrZXl3b3Jkc30gaGVyZSknOwoKJGxhbmdbJ3NldF91cF9hdXRvX2Rlc2NyaXB0aW9uJ10gPSAnU2V0IHVwIHRoZSBkZXNjcmlwdGlvbiBhdXRvLWdlbmVyYXRvciBhbmQgZW5zdXJlIHRoZSB0ZXh0IGNvbnRhaW5zIHRoZSB0YWcge2tleXdvcmRzfSc7CiRsYW5nWydhdXRvX2dlbmVyYXRlZCddID0gJ0F1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkJzsKJGxhbmdbJ2FuZCddID0gJ2FuZCc7CgokbGFuZ1sndGl0bGVfa2V5d29yZF93ZWlnaHQnXSA9ICdLZXl3b3JkIHdlaWdodCBzZXR0aW5ncyc7CiRsYW5nWydrZXl3b3JkX21pbmxlbmd0aF90aXRsZSddID0gJ01pbmltdW0ga2V5d29yZCBsZW5ndGgnOwokbGFuZ1sna2V5d29yZF9taW5sZW5ndGhfaGVscCddID0gJyhUaGUgbWluaW11bSBsZW5ndGggb2YgYSB3b3JkIHRvIGJlIGNvbnNpZGVyZWQgYXMgYSBrZXl3b3JkKSc7CiRsYW5nWydrZXl3b3JkX3RpdGxlX3dlaWdodF90aXRsZSddID0gJ1dlaWdodCBvZiB3b3JkcyBpbiB0aGUgcGFnZSB0aXRsZSc7CiRsYW5nWydrZXl3b3JkX3RpdGxlX3dlaWdodF9oZWxwJ10gPSAnKFRoZSB3ZWlnaHQgb2Ygd29yZHMgaW4gdGhlIHBhZ2UgdGl0bGUuIFRoZSBoaWdoZXIgYSB3b3JkXCdzIHdlaWdodCwgdGhlIG1vcmUgbGlrZWx5IGl0IGlzIHRvIGJlY29tZSBhIGtleXdvcmQpJzsKJGxhbmdbJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0X3RpdGxlJ10gPSAnV2VpZ2h0IG9mIHdvcmRzIGluIHRoZSBwYWdlIGRlc2NyaXB0aW9uJzsKJGxhbmdbJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0X2hlbHAnXSA9ICcoVGhlIHdlaWdodCBvZiB3b3JkcyBpbiB0aGUgcGFnZSBkZXNjcmlwdGlvbi4gVGhlIGhpZ2hlciBhIHdvcmRcJ3Mgd2VpZ2h0LCB0aGUgbW9yZSBsaWtlbHkgaXQgaXMgdG8gYmVjb21lIGEga2V5d29yZCknOwokbGFuZ1sna2V5d29yZF9oZWFkbGluZV93ZWlnaHRfdGl0bGUnXSA9ICdXZWlnaHQgb2Ygd29yZHMgaW4gY29udGVudCBoZWFkbGluZXMnOwokbGFuZ1sna2V5d29yZF9oZWFkbGluZV93ZWlnaHRfaGVscCddID0gJyhUaGUgd2VpZ2h0IG9mIHdvcmRzIGJldHdlZW4gJmx0O2gxJmd0OyB0byAmbHQ7aDYmZ3Q7IHRhZ3MuIFRoZSBoaWdoZXIgYSB3b3JkXCdzIHdlaWdodCwgdGhlIG1vcmUgbGlrZWx5IGl0IGlzIHRvIGJlY29tZSBhIGtleXdvcmQpJzsKJGxhbmdbJ2tleXdvcmRfY29udGVudF93ZWlnaHRfdGl0bGUnXSA9ICdXZWlnaHQgb2Ygd29yZHMgaW4gcGxhaW4gY29udGVudCc7CiRsYW5nWydrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0X2hlbHAnXSA9ICcoVGhlIHdlaWdodCBvZiB3b3JkcyBpbnNpZGUgdGhlIHBsYWluIGNvbnRlbnQuIFRoZSBoaWdoZXIgYSB3b3JkXCdzIHdlaWdodCwgdGhlIG1vcmUgbGlrZWx5IGl0IGlzIHRvIGJlY29tZSBhIGtleXdvcmQpJzsKCiRsYW5nWydrZXl3b3JkX21pbmltdW1fd2VpZ2h0X3RpdGxlJ10gPSAnTWluaW11bSB0b3RhbCB3ZWlnaHQgb2YgYSBrZXl3b3JkJzsKJGxhbmdbJ2tleXdvcmRfbWluaW11bV93ZWlnaHRfaGVscCddID0gJyhUaGUgbWluaW11bSB0b3RhbCB3ZWlnaHQgb2YgYSB3b3JkIHRvIGJlY29tZSBhIGtleXdvcmQuIFNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIGhpZ2hlc3Qgd2VpZ2h0IGZyb20gYWJvdmUuIFRoZSBzbWFsbGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIGtleXdvcmRzIHlvdSBnZXQpJzsKCiRsYW5nWydoZWxwX2tleXdvcmRfZ2VuZXJhdG9yJ10gPSAnVGhlIHNldHRpbmdzIHlvdSBjaGFuZ2Ugb24gdGhpcyBwYWdlIHdpbGwgbm90IGFmZmVjdCBhbnkga2V5d29yZHMgeW91IGVudGVyIG1hbnVhbGx5LiBGZWVsIGZyZWUgdG8gcGxheSB3aXRoIGFsbCB2YWx1ZXMgdW50aWwgeW91IGdldCB0aGUgYmVzdCByZXN1bHRzIGZvciB5b3VyIHBhZ2UuJzsKCiRsYW5nWyd0aXRsZV9rZXl3b3JkX2V4Y2x1ZGUnXSA9ICdLZXl3b3JkIGV4Y2x1c2lvbiBsaXN0JzsKJGxhbmdbJ2tleXdvcmRfZXhjbHVkZV90aXRsZSddID0gJ1dvcmRzIHRvIG5ldmVyIGNvbnNpZGVyIGFzIGtleXdvcmRzJzsKJGxhbmdbJ2tleXdvcmRfZXhjbHVkZV9oZWxwJ10gPSAnKFByb3ZpZGUgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiB3b3JkcyB0aGF0IHNob3VsZCBuZXZlciBhcHBlYXIgaW4ga2V5d29yZCBsaXN0cyknOwoKJGxhbmdbJ2luY3JlYXNlX3ByaW9yaXR5J10gPSAnYnkgMTAlJzsKJGxhbmdbJ2RlY3JlYXNlX3ByaW9yaXR5J10gPSAnYnkgMTAlJzsKCiRsYW5nWyd0aXRsZV9yZWdlbmVyYXRlX3NpdGVtYXAnXSA9ICJSZWdlbmVyYXRlIHNpdGVtYXAgYW5kIHJvYm90cy50eHQiOwokbGFuZ1snYnV0dG9uX3JlZ2VuZXJhdGVfc2l0ZW1hcCddID0gIlJlZ2VuZXJhdGUgc2l0ZW1hcCBhbmQgcm9ib3RzLnR4dCBub3ciOwokbGFuZ1sndGV4dF9yZWdlbmVyYXRlX3NpdGVtYXAnXSA9ICJJdCBjYW4gYmUgbmVjZXNzYXJ5IHRvIHJlZ2VuZXJhdGUgdGhlIHNpdGVtYXAgYW5kIHJvYm90cy50eHQgZmlsZSBhZnRlciBleHRlbnNpdmUgY2hhbmdlcyB0byB0aGUgcGFnZSBzdHJ1Y3R1cmUiOwokbGFuZ1snc2l0ZW1hcF9yZWdlbmVyYXRlZCddID0gIkJvdGggdGhlIHNpdGVtYXAgYW5kIHRoZSByb2JvdHMudHh0IGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgcmVnZW5lcmF0ZWQuIjsKCiRsYW5nWydpbnN0YWxsX2RhdGFiYXNlX2Vycm9yJ10gPSAiQW4gZXJyb3IgaGFzIG9jY3VyZWQgZHVyaW5nIGluc3RhbGxhdGlvbjogVGhlIGRhdGFiYXNlIHRhYmxlIGNvdWxkIG5vdCBiZSBjcmVhdGVkLiI7CiRsYW5nWydub191cmxfZm9wZW4nXSA9ICJOb3QgcG9zc2libGUgYXMgYWxsb3dfdXJsX2ZvcGVuIGhhcyBub3QgYmVlbiBzZXQgdG8gJnF1b3Q7b24mcXVvdDsgaW4geW91ciBwaHAgY29uZmlndXJhdGlvbi4iOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9tZXRhX3RhZ3MnXSA9ICJBZGRpdGlvbmFsIE1ldGEgdGFncyI7CiRsYW5nWydhZGRpdGlvbmFsX21ldGFfdGFnc190aXRsZSddID0gIkFkZGl0aW9uYWwgTWV0YSB0YWdzIHRvIGJlIGluc2VydGVkIjsKJGxhbmdbJ2FkZGl0aW9uYWxfbWV0YV90YWdzX2hlbHAnXSA9ICJTcGVjaWZ5IGFkZGl0aW9uYWwgTWV0YSB0YWdzIGhlcmUgdG8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgcGFnZSBoZWFkZXIuIFlvdSBjYW4gdXNlIGFsbCBzbWFydHkgdmFyaWFibGVzIGFuZCBVRFRzIGhlcmUuIjsKCiRsYW5nWydoZWxwX3Nob3diYXNlJ10gPSAiU2V0IHRoaXMgcGFyYW1ldGVyIHRvIDxjb2RlPmZhbHNlPC9jb2RlPiB0byBzdXBwcmVzcyB0aGUgb3V0cHV0IG9mIHRoZSBiYXNlIGhyZWYgdGFnLiI7CgokbGFuZ1snY2hhbmdlbG9nJ10gPSA8PDxFT1QKPHVsPgo8bGk+VmVyc2lvbiAxLjAgLSAyNSBKYW51YXJ5IDIwMTIuIEluaXRpYWwgcmVsZWFzZS4gVGhpcyBpcyBhIGZvcmsgb2YgdGhlIFNFT1Rvb2xzIG1vZHVsZSB3aXRoIENNU01TIDEuMTArIGNvbXBhdGliaWxpdHkuIENoYW5nZXMgaW5jbHVkZToKCTx1bD4KCQk8bGk+U2V0IHByZWZlcmVuY2VzIG9uIGluc3RhbGw8L2xpPgoJCTxsaT5SZW1vdmUgcHJlZmVyZW5jZXMgb24gdW5pbnN0YWxsPC9saT4KCQk8bGk+UmVwbGFjZSBhbGwgcmVmZXJlbmNlIHRvIEhpZXJhcmNoeU1hbmFnZXIgb2JqZWN0cyB3aXRoIENvbnRlbnRPcGVyYXRpb25zIG9iamVjdHM8L2xpPgoJCTxsaT5HZW5lcmF0ZSBhbGwga2V5d29yZHMsIGtleXdvcmQgc3VnZ2VzdGlvbnMsIGRlc2NyaXB0aW9ucyBhbmQgZGVmYXVsdCBkZXNjcmlwdGlvbnM8L2xpPgoJCTxsaT5HZW5lcmF0ZSBzaXRlbWFwLnhtbCBhbmQgcm9ib3RzLnR4dCBmaWxlczwvbGk+CgkJPGxpPlJldGFpbiBjaGVja2JveCBwcmVmZXJlbmNlIHNldHRpbmdzIGFmdGVyIHN1Ym1pdDwvbGk+CgkJPGxpPk9uIGZyb250ZW5kIHBhZ2UgbG9hZCwgZW5zdXJlIHRoYXQgYSBjb3JyZXNwb25kaW5nIHJlY29yZCBleGlzdHMgaW4gdGhlIHNlb3Rvb2xzMiBkYXRhYmFzZSB0YWJsZTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMSAtIDI1IEphbnVhcnkgMjAxMi4gTWlub3IgYnVnIGZpeDwvbGk+CjxsaT5WZXJzaW9uIDEuMC4yIC0gMSBGZWJydWFyeSAyMDEyLiBCdWcgZml4PC9saT4KPGxpPlZlcnNpb24gMS4wLjMgLSAxIEZlYnJ1YXJ5IDIwMTIuIEJ1ZyBmaXg8L2xpPgo8bGk+VmVyc2lvbiAxLjAuNCAtIDEgRmVicnVhcnkgMjAxMi4gQ29ycmVjdGlvbjwvbGk+CjxsaT5WZXJzaW9uIDEuMC41IC0gNiBGZWJydWFyeSAyMDEyLiBBZGQgZXZlbnQgaGFuZGxlcnMgdG8gcHVzaCBzaXRlbWFwIHRvIEdvb2dsZSB3ZWJtYXN0ZXJzPC9saT4KPGxpPlZlcnNpb24gMS4wLjYgLSA1IE1hcmNoIDIwMTIuIEltcHJvdmVkIGhhbmRsaW5nIG9mIHNzbCB1cmxzIGFuZCBidWcgZml4IHdoZW4gdGhlcmUgYXJlIG5vIHNob3J0IG1ldGEgZGVzY3JpcHRpb25zPC9saT4KPGxpPlZlcnNpb24gMS4wLjcgLSA5IEFwcmlsIDIwMTIuIEJ1ZyBmaXg8L2xpPgo8bGk+VmVyc2lvbiAxLjAuOCAtIDkgQXByaWwgMjAxMi4gQnVnIGZpeDwvbGk+CjxsaT5WZXJzaW9uIDEuMC45IC0gMTEgQXByaWwgMjAxMi4KICAgIDx1bD4KICAgICAgICA8bGk+TW9yZSBpbXByb3ZlbWVudHMgdG8gc3NsIGhhbmRsaW5nIGVzcGVjaWFsbHkgaW4gdGhlIHNpdGVtYXAueG1sICh0aGFua3MgYW5kcmllc2luZm9zZXJ2KTwvbGk+CiAgICAgICAgPGxpPkFiaWxpdHkgdG8gc2hvdyBhbnkgQWN0aXZlIHBhZ2UsIG5vdCBqdXN0IHBhZ2VzIHdpdGggQWN0aXZlIGFuZCBTaG93IEluIE1lbnUgaW4gdGhlIHNpdGVtYXAueG1sICh0aGFua3MgTWF0dCk8L2xpPgogICAgPC91bD4KPGxpPlZlcnNpb24gMS4wLjEwIC0gMjQgTWF5IDIwMTIgLSBtb3N0bHkgaW1wcm92ZW1lbnRzIGluIHRoZSBzaXRlbWFwIGFyZWEsIGllOgogICAgPHVsPgogICAgICAgIDxsaT5BbGxvd3Mgc2l0ZW1hcCBpbmRleGluZyBvZiBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgVVJMIGxpbmtzPC9saT4KICAgICAgICA8bGk+RmlsdGVycyBvdXQgRXJyb3IgUGFnZSBmcm9tIHNpdGVtYXAueG1sPC9saT4KICAgIDwvdWw+CjxsaT5WZXJzaW9uIDEuMC4xMSAtIDE0IEF1Z3VzdCAyMDEyLiBDTVNNUyAxLjExIGNvbXBhdGliaWxpdHkgKHRoYW5rcyBsZWVyb3licnVuIGFuZCBwb3N0aWZmbSk8L2xpPgo8bGk+VmVyc2lvbiAxLjEgLSA4IFNlcHRlbWJlciAyMDEyLiBCZXR0ZXIgZnV0dXJlLXByb29maW5nIGZvciBDTVNNUyAxLjExIGNvbXBhdGliaWxpdHksIGJ1ZyBmaXggYW5kIGEgZmV3IG1vcmUgZmVhdHVyZXMKCTx1bD4KCQk8bGk+T3B0aW9uIHRvIGluY2x1ZGUgZm9sbG93L25vZm9sbG93IGFzIHdlbGwgYXMgaW5kZXgvbm9pbmRleCB0byBtZXRhIHJvYm90cyB0YWc8L2xpPgoJCTxsaT5KcXVlcnkgYWpheCBzdXBwb3J0IGZvciBQcmlvcml0eSwgSW5kZXggYW5kIEZvbGxvdyB0b2dnbGluZy48L2xpPgoJCTxsaT5Qcm9jZXNzIHNtYXJ0eSB0YWdzIGluIHRoZSBtZXRhIGRlc2NyaXB0aW9uIGFuZCBtZXRhIGNvcHlyaWdodCBmaWVsZHM8L2xpPgoJCTxsaT5JbmNsdWRlIG1ldGEgdmlld3BvcnQgdGFnIGJ5IGRlZmF1bHQgdG8gdGhlIGFkZGl0aW9uYWwgbWV0YSB0YWdzPC9saT4KCQk8bGk+S2V5d29yZCBlZGl0IHNjcmVlbiBub3cgc2hvd3MgYSBwcmV2aWV3IG9mIHRoZSBwYWdlIGNvbnRlbnQgZm9yIHF1aWNrIHJlZmVyZW5jZSwgYXMgd2VsbCBhcyBsaW5rcyB0byBlZGl0IG9yIHZpZXcgdGhlIGZyb250ZW5kIHZlcnNpb24gb2YgdGhlIHBhZ2UuPC9saT4KCQk8bGk+UmVzdHJ1Y3R1cmVkIGRlZmF1bHRhZG1pbiB0YWIgZmlsZXMgdG8gYmUgYSBsaXR0bGUgbW9yZSBtYW5hZ2VhYmxlLjwvbGk+CgkJPGxpPk91dHB1dHMgb25seSBIVE1MNSByZWdpc3RlcmVkIG1ldGEgdGFncyB3aGVuIEhUTUw1IGlzIHNwZWNpZmllZC4gKFRoYW5rcyB1bmlxdTMpPC9saT4KCQk8bGk+VXNlcyBjYW5vbmljYWwgVVJMIHdoZW4gYXZhaWxhYmxlLiAoVGhhbmtzIGluZm9hbmRyaWVzKTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjEuMSAtIDE1IFNlcHRlbWJlciAyMDEyLiBCdWcgZml4PC9saT4KPC91bD4KRU9UOwoKJGxhbmdbJ2hlbHAnXSA9ICc8c3R5bGU+ZGl2LnNlbzIgcCwgZGl2LnNlbzIgbGksIGRpdi5zZW8yIGRpdiB7bWFyZ2luLWJvdHRvbTogMS4yZW07fWxpe2xpc3Qtc3R5bGUtdHlwZTpzcXVhcmV9PC9zdHlsZT4KPGRpdiBjbGFzcz0ic2VvMiI+CjxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5TRU9Ub29sczIgaGVscHMgeW91IHRvIGdldCB5b3VyIFNFTyAoU2VhcmNoIEVuZ2luZSBPcHRpbWl6YXRpb24pIHJpZ2h0LiBUaGUgbW9kdWxlIGFkZHMgc2V2ZXJhbCBTRU8gY2FwYWJpbGl0aWVzIHRvIHlvdXIgQ01TTVMgaW5zdGFsbGF0aW9uIGFuZCBhbGVydHMgeW91IGlmIHlvdSBtaXNzZWQgb3V0IG9uIHNvbWV0aGluZyBTRU8gcmVsYXRlZC4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6PC9wPgo8dWw+CjxsaT4gZ2VuZXJhdGVzIE1ldGEgdGFncyBpbiBzdGFuZGFyZCBodG1sLCBEdWJsaW4gQ29yZSBhbmQgT3BlbkdyYXBoIGZvcm1hdHM8L2xpPgo8bGk+IGF1dG9tYXRpY2FsbHkgZXh0cmFjdHMga2V5d29yZHMgZnJvbSB5b3VyIHBhZ2VzIGFuZCBhZGRzIHRoZW0gdG8gdGhlIG1ldGEgdGFncyBhbmQgcGFnZSB0aXRsZTwvbGk+CjxsaT4gbGV0cyB5b3UgZGV0ZXJtaW5lIHdpdGggYSBzaW5nbGUgY2xpY2sgd2hldGhlciBjZXJ0YWluIHBhZ2VzIHNob3VsZCBiZSBpbmRleGVkIGJ5IHNlYXJjaCBlbmdpbmVzIG9yIG5vdDwvbGk+CjxsaT4gZ2VuZXJhdGVzIGEgc2l0ZW1hcC54bWwgZmlsZSB3aXRoIHlvdXIgcGFnZXMgd2hpbGUgZ2l2aW5nIHlvdSBmdWxsIGNvbnRyb2wgb3ZlciB0aGUgcHJpb3JpdGllcyBvZiB5b3VyIHBhZ2VzPC9saT4KPGxpPiBnZW5lcmF0ZXMgYSByb2JvdHMudHh0IGZpbGUgZXhwbGljaXRseSBkaXNhbGxvd2luZyBhY2Nlc3MgdG8gcGFnZXMgeW91IGRvblwndCB3YW50IHRvIGJlIGluZGV4ZWQ8L2xpPgo8bGk+IGFsZXJ0cyB5b3Ugd2hlbiB0aGVyZSBhcmUgc2V2ZXJhbCBwYWdlcyBmZWF0dXJpbmcgdGhlIHNhbWUgcGFnZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9uczwvbGk+CjxsaT4gYWxlcnRzIHlvdSB3aGVuIHZlcnkgc2hvcnQgcGFnZSBtZXRhIGRlc2NyaXB0aW9ucyBhcmUgZGV0ZWN0ZWQ8L2xpPgo8bGk+IGF1dG9tYXRpY2FsbHkgc3VibWl0cyB5b3VyIHNpdGVtYXAgZmlsZSB0byBHb29nbGUgd2hlbiB5b3UgY2hhbmdlIHlvdXIgY29udGVudDwvbGk+CjwvdWw+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5GaXJzdCwgb3BlbiBhbGwgdGVtcGxhdGVzIHdoZXJlIHlvdSB3YW50IGRvIHVzZSBTRU9Ub29sczIuIFJlbW92ZSB0aGUgY29tcGxldGUgJmx0O3RpdGxlJmd0OyB0YWcgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgbW9kdWxlIHRhZy4gWW91IG1heSBhbHNvIHdpc2ggdG8gcmVtb3ZlIHRoZSB7bWV0YWRhdGF9IHRhZy4gU2hvdWxkIHlvdSBlbGVjdCB0byBsZWF2ZSBpdCB0aGVyZSwgZW5zdXJlIHRoYXQgbm8gbWV0YSB0YWdzIGFyZSBkdXBsaWNhdGVkLiBSZW1vdmUgYW55IGR1cGxpY2F0ZXMgZnJvbSBTaXRlIEFkbWluIC0gR2xvYmFsIFNldHRpbmdzIC0gR2xvYmFsIE1ldGFkYXRhLiA8L3A+CjxwcmU+CntTRU9Ub29sczJ9CjwvcHJlPjxiciAvPgoKPHA+SWYgeW91IGxlZnQgdGhlIHttZXRhZGF0YX0gdGFnIGluIHRoZSB0ZW1wbGF0ZSwgeW91IGNhbiBhbHRlcm5hdGl2ZWx5IHBsYWNlIHRoZSB7U0VPVG9vbHMyfSB0YWcgaW4gdGhlIEdsb2JhbCBNZXRhIHRleHRhcmVhLjwvcD4KPHA+PGVtPlRpcDwvZW0+OiBJZiB5b3VcJ3ZlIHJlbW92ZWQgdGhlIHttZXRhZGF0YX0gdGFnLCByZW1lbWJlciB0byBhZGQgdGhlIDxlbT5zaG93YmFzZSA9IFwndHJ1ZVwnPC9lbT4gcGFyYW1ldGVyIHRvIG91dHB1dCB0aGUgJmx0O2Jhc2UmZ3Q7IHRhZy48L3A+CjxwPk5leHQsIGF0IHRoZSBib3R0b20gb2YgeW91ciB0ZW1wbGF0ZSAoYWZ0ZXIgdGhlIGNsb3NpbmcgJmx0Oy9ib2R5Jmd0OyB0YWcpLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBjb2RlOjwvcD4KPHByZT4Ke2NhcHR1cmUgYXNzaWduPSJtZXRhZGVzY3JpcHRpb24ifXtjb250ZW50IGJsb2NrPSJtZXRhZGVzY3JpcHRpb24iIGxhYmVsPSJQYWdlIERlc2NyaXB0aW9uIiBvbmVsaW5lPSJ0cnVlIn17L2NhcHR1cmV9CjwvcHJlPjxiciAvPgoKPHA+VGhpcyBpcyB3aGVyZSB5b3VcJ2xsIGVudGVyIGEgc2hvcnQgcGFnZSBkZXNjcmlwdGlvbiAob25lIG9yIHR3byBzZW50ZW5jZXMpIHRoYXQgd2lsbCBhcHBlYXIgaW4gdGhlIHNlYXJjaCBlbmdpbmVcJ3MgcmVzdWx0cyBhbmQgaWYsIGZvciBleGFtcGxlLCBzb21lb25lIHNoYXJlcyBhIGxpbmsgdG8geW91ciBwYWdlIG9uIGZhY2Vib29rLjwvcD4KPHA+U2VlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy92aWV3dG9waWMucGhwP2Y9NCZ0PTYxNTE2JmhpbGl0PXNlb3Rvb2xzMiI+U0VPVG9vbHMyIHdpdGggZGV0YWlsIHBhZ2VzPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnL3ZpZXd0b3BpYy5waHA/Zj00JnQ9NjE1MTUmaGlsaXQ9c2VvdG9vbHMyIj5TRU9Ub29sczIgd2l0aCBncm91cHMgb2Yga2V5d29yZHM8L2E+IGZvciBzb21lIG1vcmUgY3JlYXRpdmUgd2F5cyBvZiB1c2luZyB0aGUgbWV0YWRlc2NyaXB0aW9uIGFuZCBrZXl3b3JkIHZhcmlhYmxlcy48L3A+CjxwPk5vdywgdmlzaXQgdGhlIGFkbWluIHRhYnMgZm9yIDxlbT5QYWdlIFRpdGxlICYgTWV0YSBJbmZvcm1hdGlvbjwvZW0+LCB0aGUgPGVtPlNpdGVtYXAgJiBDcmF3bGVyIFNldHRpbmdzPC9lbT4gYW5kIHRoZSA8ZW0+S2V5d29yZCBHZW5lcmF0b3IgU2V0dGluZ3M8L2VtPiBhbmQgZmlsbCBpbiBhbGwgcmVxdWlyZWQgaW5mb3JtYXRpb24gZm9yIHlvdXIgc2l0ZS4gVW5kZXIgIk5hbWUgb2YgcGFnZSBkZXNjcmlwdGlvbiBjb250ZW50IGJsb2NrIiB5b3UgbmVlZCB0byBlbnRlciB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jayB5b3UganVzdCBhZGRlZCB0byB5b3VyIHRlbXBsYXRlcyAoIm1ldGFkZXNjcmlwdGlvbiIgaW4gb3VyIGV4YW1wbGUpLjwvcD4KPHA+VGhlIHRhYiAiU0VPIEFsZXJ0cyIgd2lsbCBhbGVydCB5b3UgaWYgaXQgZGV0ZWN0cyBhbnl0aGluZyB0aGF0IGlzIHJlcXVpcmVkIGJ1dCBub3QgYWN0aXZhdGVkIG9yIGZpbGxlZCBpbi4gWW91IHNob3VsZCBhbHNvIGNvbnNpZGVyIHNpZ25pbmcgdXAgeW91cgpzaXRlIHdpdGggR29vZ2xlIFdlYm1hc3RlciB0b29scy4gVGhlcmUsIHNlbGVjdCAiTWV0YSB0YWcgdmFsaWRhdGlvbiIgYW5kIHBhc3RlIHRoZSB2ZXJpZmljYXRpb24gY29kZSAocXVpdGUgYSBsb25nIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGFuZCBudW1iZXJzKSBpbnRvIHRoZSBib3ggIlZlcmlmaWNhdGlvbiBDb2RlIiBpbiAiU0VPIFNldHRpbmdzIiB0byBhdXRvbWF0aWNhbGx5IHZlcmlmeSB0aGF0IHlvdSBhcmUgcmVhbGx5CnRoZSBvd25lciBvZiB5b3VyIHBhZ2UgKG5vIG5lZWQgdG8gcGFzdGUgdGhlIEdvb2dsZSBNZXRhLWNvZGUgaW50byB5b3VyIHRlbXBsYXRlKS48L3A+CjxwPkFzIHNvb24gYXMgZXZlcnl0aGluZyBpcyBzZXQgdXAsIGxvb2sgYXQgdGhlICJTRU8gQWxlcnRzIiB0YWIgYW5kIGZpeCBhbGwgcHJvYmxlbXMgZGV0ZWN0ZWQgaGVyZS4gVGFrZSBjYXJlIHRvIGluc2VydCBhICh1bmlxdWUpIHBhZ2UgZGVzY3JpcHRpb24gb24gZXZlcnkgcGFnZSB5b3UgZWRpdCBpbiB0aGUgZmllbGQgbGFiZWxsZWQgIlBhZ2UgRGVzY3JpcHRpb24iIGF0IHRoZSBib3R0b20gb2YgeW91ciAiRWRpdCBQYWdlIiBmb3JtLjwvcD4KPHA+R28gdG8gdGhlIDxlbT5QYWdlIHNldHRpbmdzPC9lbT4gdGFiIHdoZXJlIHlvdVwnbGwgZmluZCBhIGxpc3Qgb2YgYWxsIHBhZ2VzIHlvdSBoYXZlIGluIHlvdXIgc3lzdGVtLiBIZXJlLCB5b3UgY2FuOjwvcD4KPHVsPgo8bGk+U2V0IHlvdXIgb3duIGtleXdvcmRzIChpbnN0ZWFkIG9mIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBvbmVzKSBvciBPcGVuR3JhcGggdHlwZSBmb3IgY2VydGFpbiBwYWdlczwvbGk+CjxsaT5BZGp1c3QgdGhlIHNpdGVtYXAgcHJpb3JpdHkgKHdoaWNoIGlzIGF1dG8tY2FsY3VsYXRlZCBieSBkZWZhdWx0KSBvZiBhIHBhZ2UgdG8gaW5kaWNhdGUgdGhhdCBpdCBzaG91bGQKYmUgY29uc2lkZXJlZCBtb3JlIGltcG9ydGFudCBmb3Igc2VhcmNoIGVuZ2luZSBtYXRjaGVzIG9uIHlvdXIgcGFnZS48L2xpPgo8bGk+UHJldmVudCBhY3RpdmUgcGFnZXMgZnJvbSBiZWluZyBsaXN0ZWQgaW4gdGhlIFNpdGUgTWFwPC9saT4KPGxpPlNwZWNpZnkgd2hldGhlciByb2JvdHMgc2hvdWxkIGluZGV4IG9yIGZvbGxvdyB0aGUgcGFnZSBhbmQgbGlua3M8L2xpPgo8L3VsPgo8cD5TRU9Ub29sczIgd2lsbCBhbHNvIGF1dG9tYXRpY2FsbHkgaW5zZXJ0IGEgbGluayB0byB0aGUgaW1hZ2UgdG8gYmUgdXNlZCBhcyB0aGUgbWFpbiBpbWFnZSBvZiB5b3VyIHBhZ2UgaWYgeW91IHNlbGVjdCBhbiAiSW1hZ2UiIGZvciB0aGUgcGFnZSBmcm9tIHdpdGhpbiB5b3VyIHBhZ2VcJ3MgIk9wdGlvbnMiIHRhYiAodGhpcyBpcyBpbXBvcnRhbnQgZm9yIHBlb3BsZSBzdWJtaXR0aW5nIGEgbGluayB0byB5b3VyIHBhZ2UgZS5nLiBvbiBmYWNlYm9vaykuIEFsc28sIGlmIHlvdSBhcmUgdXNpbmcgT3BlbkdyYXBoLCB0aGUgaW1hZ2Ugc2VsZWN0ZWQgaGVyZQp3aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0IE9wZW5HcmFwaCBpbWFnZSB5b3Ugc3BlY2lmaWVkIGZyb20gd2l0aGluICJTRU8gU2V0dGluZ3MiLiBQbGVhc2UgYmUgYXdhcmUgdGhhdCB5b3UgbmVlZCB0byB1cGxvYWQgdGhvc2UgaW1hZ2VzIHRvIHlvdXIgL3VwbG9hZHMvaW1hZ2VzIGRpcmVjdG9yeS48L3A+CjxoMz5DYW4gSSB1c2Ugc21hcnR5IHZhcmlhYmxlcz88L2gzPgo8cD5Zb3UgY2FuIHVzZSBhbGwgc21hcnR5IHZhcmlhYmxlcyBhbmQgVURUcyB3aXRoaW4gdGhlIHNldHRpbmdzIGZpZWxkcyA8aT5QYWdlIHRpdGxlPC9pPiwgPGk+TWV0YSBwYWdlIHRpdGxlPC9pPiwgPGk+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZGVzY3JpcHRpb25zPC9pPiwgPGk+TWV0YSBjb3B5cmlnaHQ8L2k+LCA8aT5BZGRpdGlvbmFsIG1ldGEgdGFnczwvaT4gYW5kIHlvdXIgY3VzdG9tIHBhZ2UgZGVzY3JpcHRpb24gYmxvY2suIEVudGVyIDxjb2RlPntkZWJ1Z308L2NvZGU+IHRvIHNlZSBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSB2YXJpYWJsZXMuPC9wPgo8aDM+V2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgZXhwb3J0ZWQgYnkgU0VPVG9vbHMyPzwvaDM+Cjxjb2RlPnskc2VvX2tleXdvcmRzfTwvY29kZT46IEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGtleXdvcmRzIHNldCBmb3IgdGhlIHBhZ2UgKGluY2x1ZGluZyB0aGUgZGVmYXVsdCBrZXl3b3Jkcyk8YnIgLz4KPGNvZGU+eyR0aXRsZV9rZXl3b3Jkc308L2NvZGU+OiBBIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGFsbCBrZXl3b3JkcyBzZXQgZm9yIHRoZSBwYWdlIChpbmNsdWRpbmcgdGhlIGRlZmF1bHQga2V5d29yZHMpPGJyIC8+Cjxjb2RlPnskZGVmYXVsdF9rZXl3b3Jkc308L2NvZGU+OiBBIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGFsbCBkZWZhdWx0IGtleXdvcmRzPGJyIC8+Cjxjb2RlPnskcGFnZV9rZXl3b3Jkc308L2NvZGU+OiBBIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGFsbCBrZXl3b3JkcyBzZXQgZm9yIHRoZSBwYWdlICh3aXRob3V0IHRoZSBkZWZhdWx0IGtleXdvcmRzKTxiciAvPgo8cD48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMiwgQ2xpcCBNYWdpYyA8YSBocmVmPSJtYWlsdG86YWRtaW5AY2xpcG1hZ2ljLmNvbS5hdSI+Jmx0O2FkbWluQGNsaXBtYWdpYy5jb20uYXUmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgo8L2Rpdj4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.seo2_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIHNlbzJfdXRpbHMKewogIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKCiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb21waWxlX3VkdHMoJGRhdGEsICRtb2R1bGUpCiAgewogICAgJHVkdHMgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdjb21waWxlX3VkdHMnKTsKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRvdXRwdXQgPSAkZGF0YTsKICAgIGlmICgkdWR0cyA9PSAxKSB7CiAgICAgICAKICAgICAgLy8gTG9hZCBVc2VyIERlZmluZWQgVGFncwogICAgICAkdXRvcHMgPSBjbXNtcygpLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgICAkdXNlcnRhZ3MgPSAkdXRvcHMtPkxpc3RVc2VyVGFncygpOwogICAgICAgCiAgICAgIGZvcmVhY2goICR1c2VydGFncyBhcyAkaWQgPT4gJG5hbWUgKQogICAgICB7CiAgICAgICAgJGZ1bmN0aW9uID0gJHV0b3BzLT5DcmVhdGVUYWdGdW5jdGlvbigkbmFtZSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJQbHVnaW4oJ2Z1bmN0aW9uJywkbmFtZSwkZnVuY3Rpb24sJGNhY2hpbmcpOwogICAgICB9CiAgICAgICAKICAgICAgdHJ5IHsKICAgICAgICAkb3V0cHV0ID0gJHNtYXJ0eS0+ZmV0Y2goJ3N0cmluZzonLiRkYXRhKTsKICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CiAgICAgICAgCiAgICAgIH0KCiAgICB9CiAgICByZXR1cm4gJG91dHB1dDsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBTRU9Ub29sczIgLSBUdXJiby1jaGFyZ2UgeW91ciBvbi1wYWdlIFNFTwojIFZlcnNpb246IDEuMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIE1ldGhvZDogaW5zdGFsbAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluc3RhbGwoKQpXaGVuIHlvdXIgbW9kdWxlIGlzIGluc3RhbGxlZCwgeW91IG1heSBuZWVkIHRvIGRvIHNvbWUKc2V0dXAuIFR5cGljYWwgdGhpbmdzIHRoYXQgaGFwcGVuIGhlcmUgYXJlIHRoZSBjcmVhdGlvbgphbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKcGVybWlzc2lvbnMsIHByZWZlcmVuY2VzLCBldGMuCiAgIApGb3IgaW5mb3JtYXRpb24gb24gdGhlIGNyZWF0aW9uIG9mIGRhdGFiYXNlIHRhYmxlcywKY2hlY2sgb3V0IHRoZSBBRE9EQiBEYXRhIERpY3Rpb25hcnkgcGFnZSBhdApodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQoKVGhpcyBmdW5jdGlvbiBjYW4gcmV0dXJuIGEgc3RyaW5nIGluIGNhc2Ugb2YgYW55IGVycm9yLAphbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgpTdWNjZXNzZnVsIGluc3RhbGxzIHNob3VsZCByZXR1cm4gRkFMU0Ugb3Igbm90aGluZyBhdCBhbGwuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovLyBUeXBpY2FsIERhdGFiYXNlIEluaXRpYWxpemF0aW9uCiRkYiA9Y21zbXMoKS0+R2V0RGIoKTsKCQovLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiRmbGRzID0gIgoJY29udGVudF9pZCBJIEtFWSwKCWluZGV4YWJsZSBJKDEpLAoJZm9sbG93IEkoMSksCglrZXl3b3JkcyBDKDI1NSksCglwcmlvcml0eSBJKDMpLAoJb2d0eXBlIEMoMzIpCgkiOwoKLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VvdG9vbHMyIiwKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy8gVGVzdCBpZiBpbnN0YWxsYXRpb24gd29ya2VkOgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMic7CiRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKaWYgKCEkcmVzdWx0KSB7CglyZXR1cm4gJHRoaXMtPkxhbmcoJ2luc3RhbGxfZGF0YWJhc2VfZXJyb3InKTsKfQoKLy8gcGVybWlzc2lvbnMKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0VkaXQgU0VPIFNldHRpbmdzJywnRWRpdCBTRU8gU2V0dGluZ3MnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0VkaXQgcGFnZSBkZXNjcmlwdGlvbnMnLCdFZGl0IHBhZ2UgZGVzY3JpcHRpb25zJyk7CgovLyBhZGQgc2l0ZSBwcmVmZXJlbmNlcwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnLCc8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1heGltdW0tc2NhbGU9MSI+Jyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcmVhdGVfcm9ib3RzJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfa2V5d29yZHMnLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG8nLCdUaGlzIHBhZ2UgY292ZXJzIHRoZSB0b3BpY3Mge2tleXdvcmRzfScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9jb250ZW50X3dlaWdodCcsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodCcsNCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2V4Y2x1ZGUnLCdpLCBtZSwgbXksIG15c2VsZiwgd2UsIG91ciwgb3Vycywgb3Vyc2VsdmVzLCB5b3UsIHlvdXIsIHlvdXJzLCB5b3Vyc2VsZiwgeW91cnNlbHZlcywgaGUsIGhpbSwgaGlzLCBoaW1zZWxmLCBzaGUsIGhlciwgaGVycywgaGVyc2VsZiwgaXQsIGl0cywgaXRzZWxmLCB0aGV5LCB0aGVtLCB0aGVpciwgdGhlaXJzLCB0aGVtc2VsdmVzLCB3aGF0LCB3aGljaCwgd2hvLCB3aG9tLCB0aGlzLCB0aGF0LCB0aGVzZSwgdGhvc2UsIGFtLCBpcywgYXJlLCB3YXMsIHdlcmUsIGJlLCBiZWVuLCBiZWluZywgaGF2ZSwgaGFzLCBoYWQsIGhhdmluZywgZG8sIGRvZXMsIGRpZCwgZG9pbmcsIGEsIGFuLCB0aGUsIGFuZCwgYnV0LCBpZiwgb3IsIGJlY2F1c2UsIGFzLCB1bnRpbCwgd2hpbGUsIG9mLCBhdCwgYnksIGZvciwgd2l0aCwgYWJvdXQsIGFnYWluc3QsIGJldHdlZW4sIGludG8sIHRocm91Z2gsIGR1cmluZywgYmVmb3JlLCBhZnRlciwgYWJvdmUsIGJlbG93LCB0bywgZnJvbSwgdXAsIGRvd24sIGluLCBvdXQsIG9uLCBvZmYsIG92ZXIsIHVuZGVyLCBhZ2FpbiwgZnVydGhlciwgdGhlbiwgb25jZSwgaGVyZSwgdGhlcmUsIHdoZW4sIHdoZXJlLCB3aHksIGhvdywgYWxsLCBhbnksIGJvdGgsIGVhY2gsIGZldywgbW9yZSwgbW9zdCwgb3RoZXIsIHNvbWUsIHN1Y2gsIG5vLCBub3IsIG5vdCwgb25seSwgb3duLCBzYW1lLCBzbywgdGhhbiwgdG9vLCB2ZXJ5LCBsb3JlbSwgY29taW5nJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2hlYWRsaW5lX3dlaWdodCcsMik7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX21pbmltdW1fd2VpZ2h0Jyw3KTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJyw1KTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2tleXdvcmRfdGl0bGVfd2VpZ2h0Jyw2KTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfY29udHJpYnV0b3InLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JywnKGMpIHtjdXN0b21fY29weXJpZ2h0fSB7c2l0ZW5hbWV9LiBBbGwgcmlnaHRzIHJlc2VydmVkLicpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9kdWJsaW5jb3JlJywwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfbG9uZ2l0dWRlJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaCcsMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9pbWFnZScsJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3RpdGxlJywne3RpdGxlfScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdHlwZScsJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCd7c2l0ZW5hbWV9Jyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX3JlZ2lvbicsJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9zdGFuZGFyZCcsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgndGl0bGUnLCd7dGl0bGV9IHwgeyRzaXRlbmFtZX0gLSB7JHRpdGxlX2tleXdvcmRzfScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgndGl0bGVfbWV0YScsJ3t0aXRsZX0gfCB7JHNpdGVuYW1lfScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJlZl92ZXJpZmljYXRpb24nLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfZG9jdHlwZScsMyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjb21waWxlX3VkdHMnLDEpOwoKLy8gcmVnaXN0ZXIgZXZlbnRzIGFuZCBhZGQgZXZlbnQgaGFuZGxlcnMKJHRoaXMtPkNyZWF0ZUV2ZW50KCAnUHJlZnNVcGRhdGVkJyApOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywnQ29udGVudEVkaXRQb3N0JyxmYWxzZSk7CiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NvcmUnLCdDb250ZW50RGVsZXRlUG9zdCcsZmFsc2UpOwoKCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoJCQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMgPGFkbWluQGNsaXBtYWdpYy5jb20uYXU+CiMgTWV0aG9kOiB1bmluc3RhbGwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVW5pbnN0YWxsKCkKU29tZXRpbWVzLCBhbiBleGNlcHRpb25hbGx5IHVuZW5saWdodGVuZWQgb3IgaWdub3JhbnQKYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKd291bGQgYmUgYmVzdCB0byBsYXkgaW50byB0aGVzZSBpZGlvdHMgd2l0aCBhIGNsdWVzdGljaywKd2Ugd2lsbCBkbyB0aGUgbWFnbmFuaW1vdXMgdGhpbmcgYW5kIHJlbW92ZSB0aGUgbW9kdWxlCmFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKdGhhdCBhcmUgc3BlY2lmaWMgdG8gaXQuClRoaXMgaXMgdGhlIG1ldGhvZCB3aGVyZSB3ZSBkbyB0aGlzLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLy8gVHlwaWNhbCBEYXRhYmFzZSBSZW1vdmFsCiRkYiA9IGNtc21zKCktPkdldERiKCk7CgovLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZW90b29sczIiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0VkaXQgU0VPIFNldHRpbmdzJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdFZGl0IHBhZ2UgZGVzY3JpcHRpb25zJyk7CgovLyByZW1vdmUgc2l0ZSBwcmVmZXJlbmNlcwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2NyZWF0ZV9yb2JvdHMnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdkZWZhdWx0X2tleXdvcmRzJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgna2V5d29yZF9jb250ZW50X3dlaWdodCcpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHQnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2tleXdvcmRfZXhjbHVkZScpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgna2V5d29yZF9oZWFkbGluZV93ZWlnaHQnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2tleXdvcmRfbWluaW11bV93ZWlnaHQnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdrZXl3b3JkX3RpdGxlX3dlaWdodCcpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9jb250cmlidXRvcicpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9jb3B5cmlnaHQnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfZHVibGluY29yZScpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9sYXRpdHVkZScpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9sb2NhdGlvbicpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9sb25naXR1ZGUnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9pbWFnZScpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3RpdGxlJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF90eXBlJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX3B1Ymxpc2hlcicpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfc3RhbmRhcmQnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3B1c2hfc2l0ZW1hcCcpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgndGl0bGUnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3RpdGxlX21ldGEnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3ByZWZfdmVyaWZpY2F0aW9uJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX2RvY3R5cGUnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2NvbXBpbGVfdWR0cycpOwoKCi8vIHJlbW92ZSBldmVudHMgYW5kIGV2ZW50IGhhbmRsZXJzCiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoICdQcmVmc1VwZGF0ZWQnICk7CiR0aGlzLT5SZW1vdmVFdmVudCggJ1ByZWZzVXBkYXRlZCcgKTsKJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ29yZScsJ0NvbnRlbnRFZGl0UG9zdCcsZmFsc2UpOwokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywnQ29udGVudERlbGV0ZVBvc3QnLGZhbHNlKTsKCgovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogVXBncmFkZSgpCiBJZiB5b3VyIG1vZHVsZSB2ZXJzaW9uIG51bWJlciBkb2VzIG5vdCBtYXRjaCB0aGUgdmVyc2lvbgogbnVtYmVyIG9mIHRoZSBpbnN0YWxsZWQgbW9kdWxlLCB0aGUgQ01TIEFkbWluIHdpbGwgZ2l2ZQogeW91IGEgY2hhbmNlIHRvIHVwZ3JhZGUgdGhlIG1vZHVsZS4gVGhpcyBpcyB0aGUgZnVuY3Rpb24KIHRoYXQgYWN0dWFsbHkgaGFuZGxlcyB0aGUgdXBncmFkZS4KIElkZWFsbHksIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGhhbmRsZSB1cGdyYWRlcyBpbmNyZW1lbnRhbGx5LAogc28geW91IGNvdWxkIHVwZ3JhZGUgZnJvbSB2ZXJzaW9uIDAuMC4xIHRvIDEwLjUuNyB3aXRoCiBhIHNpbmdsZSBjYWxsLiBGb3IgYSBncmVhdCBleGFtcGxlIG9mIHRoaXMsIHNlZSB0aGUgTmV3cwogbW9kdWxlIGluIHRoZSBzdGFuZGFyZCBDTVMgaW5zdGFsbC4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247Cgpzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikKewogIGNhc2UgIjEuMCI6CiAgY2FzZSAiMS4wLjEiOgogIGNhc2UgIjEuMC4yIjoKICBjYXNlICIxLjAuMyI6CiAgY2FzZSAiMS4wLjQiOgogICAgLy8gcmVnaXN0ZXIgZXZlbnRzCiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoICdQcmVmc1VwZGF0ZWQnICk7CiAgICAKICAgIC8vIEFkZCAnZm9sbG93JyBmaWVsZCBmb3IgPG1ldGEgbmFtZT1yb2JvdHMgdGFnCiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMicsJ2ZvbGxvdyBJJyk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgZm9sbG93ID0gPyc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KDEpKTsKICAgIAogICAgLy8gU2V0IHRoZSB2aWV3cG9ydCBtZXRhIHRhZyBhcyBhIHN0ZCBhZGRpdGlvbmFsIHRhZwogICAgJG9sZHN0dWZmID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkZGl0aW9uYWxfbWV0YV90YWdzJyk7CiAgICAkdmlld3BvcnQgPSAnPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBtYXhpbXVtLXNjYWxlPTEiPic7CiAgICAkbmV3c3R1ZmYgPSAkb2xkc3R1ZmYgLiAkdmlld3BvcnQ7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnLCAkbmV3c3R1ZmYpOwogICAgCiAgICAvLyBOZXcgUGFnZSBNZXRhIGluZm8gcHJlZmVyZW5jZXMKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2RvY3R5cGUnLDMpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NvbXBpbGVfdWR0cycsMSk7CiAgICBicmVhazsKICAgIAogIGNhc2UgIjEuMC41IjoKICBjYXNlICIxLjAuNiI6CiAgY2FzZSAiMS4wLjciOgogIGNhc2UgIjEuMC44IjoKICBjYXNlICIxLjAuOSI6CiAgY2FzZSAiMS4wLjEwIjoKICBjYXNlICIxLjAuMTEiOgogICAgLy8gQWRkICdmb2xsb3cnIGZpZWxkIGZvciA8bWV0YSBuYW1lPXJvYm90cyB0YWcKICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyJywnZm9sbG93IEknKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFNFVCBmb2xsb3cgPSA/JzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoMSkpOwogICAgCiAgICAvLyBTZXQgdGhlIHZpZXdwb3J0IG1ldGEgdGFnIGFzIGEgc3RkIGFkZGl0aW9uYWwgdGFnCiAgICAkb2xkc3R1ZmYgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnKTsKICAgICR2aWV3cG9ydCA9ICc8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1heGltdW0tc2NhbGU9MSI+JzsKICAgICRuZXdzdHVmZiA9ICRvbGRzdHVmZiAuICR2aWV3cG9ydDsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZGRpdGlvbmFsX21ldGFfdGFncycsICRuZXdzdHVmZik7CiAgICAKICAgIC8vIE5ldyBQYWdlIE1ldGEgaW5mbyBwcmVmZXJlbmNlcwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfZG9jdHlwZScsMyk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY29tcGlsZV91ZHRzJywxKTsKICAgIGJyZWFrOwogICAgCiAgY2FzZSAiMS4xIjoKICBkZWZhdWx0OgogICAgYnJlYWs7Cn0KCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/SEOTools2.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFNldmVyYWwgdG9vbHMgdG8gaGVscCB3aXRoIFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uIGFuZCBjaGVjayBmb3Igc3Vib3B0aW1hbCBTRU8tcmVsYXRlZCB0aGluZ3MuCiMgVmVyc2lvbjogMS4xLjEsIENsaXAgTWFnaWMKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojIFRoaXMgZmlsZSBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgTW9kdWxlTWFrZXIgbW9kdWxlLCB2ZXJzaW9uIDAuMy4yCiMgQ29weXJpZ2h0IChjKSAyMDEwIGJ5IFNhbXVlbCBHb2xkc3RlaW4gKHNqZ0BjbXNtYWRlc2ltcGxlLm9yZykKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovL2Vycm9yX3JlcG9ydGluZyhFX0FMTCk7CgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiRyb290X3VybCA9IGVtcHR5KCRfU0VSVkVSWydIVFRQUyddKSA/ICRjb25maWdbJ3Jvb3RfdXJsJ10gOiAkY29uZmlnWydzc2xfdXJsJ107CgoKCmNsYXNzIFNFT1Rvb2xzMiBleHRlbmRzIENNU01vZHVsZQp7CgogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAnU0VPVG9vbHMyJzsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEZyaWVuZGx5TmFtZSgpCiAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbG9jYWxpemVkIG5hbWUKICAgb2YgdGhlIG1vZHVsZS4gVGhpcyBpcyB0aGUgbmFtZSB0aGF0J3Mgc2hvd24gaW4gdGhlCiAgIEFkbWluIE1lbnVzIGFuZCBzZWN0aW9uIHBhZ2VzIChpZiB0aGUgbW9kdWxlIGhhcyBhbiBhZG1pbgogICBjb21wb25lbnQpLgoKICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0VmVyc2lvbigpCiAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbnVtYmVyIG9yCiAgIHNvbWV0aGluZyB0aGF0IG1ha2VzIHNlbnNlIGZvciBkZXNpZ25hdGluZyBhIHZlcnNpb24uCiAgIFRoZSBDTVMgd2lsbCB1c2UgdGhpcyB0byBpZGVudGlmeSB3aGV0aGVyIG9yIG5vdAogICB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIG1vZHVsZSBpcyBjdXJyZW50LCBhbmQKICAgdGhlIG1vZHVsZSB3aWxsIHVzZSBpdCB0byBmaWd1cmUgb3V0IGhvdyB0byB1cGdyYWRlCiAgIGl0c2VsZiBpZiByZXF1ZXN0ZWQuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpCiAgewogICAgcmV0dXJuICcxLjEuMSc7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRIZWxwKCkKICAgVGhpcyByZXR1cm5zIEhUTUwgaW5mb3JtYXRpb24gb24gdGhlIG1vZHVsZS4KICAgVHlwaWNhbGx5LCB5b3UnbGwgd2FudCB0byBpbmNsdWRlIGluZm9ybWF0aW9uIG9uIGhvdyB0bwogICB1c2UgdGhlIG1vZHVsZS4KCiAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0SGVscCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3IoKQogICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQogICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBdXRob3IoKQogIHsKICAgIHJldHVybiAnQ2xpcCBNYWdpYyc7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3JFbWFpbCgpCiAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCiAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLiBJdCBoZWxwcyB1c2VycwogICBvZiB5b3VyIG1vZHVsZSBnZXQgaW4gdG91Y2ggd2l0aCB5b3UgdG8gc2VuZCBidWcgcmVwb3J0cywKICAgcXVlc3Rpb25zLCBjYXNlcyBvZiBiZWVyLCBhbmQvb3IgbGFyZ2Ugc3VtcyBvZiBtb25leS4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCiAgewogICAgcmV0dXJuICdhZG1pbkBjbGlwbWFnaWMuY29tLmF1JzsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldENoYW5nZUxvZygpCiAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgbW9kdWxlCiAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgQWJvdXQgbGluay4gSXQgaGVscHMgdXNlcnMKICAgZmlndXJlIG91dCB3aGF0J3MgY2hhbmdlZCBiZXR3ZWVuIHJlbGVhc2VzLgogICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIElzUGx1Z2luTW9kdWxlKCkKICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgZmFsc2UsIGRlcGVuZGluZyB1cG9uCiAgIHdoZXRoZXIgdXNlcnMgY2FuIGluY2x1ZGUgdGhlIG1vZHVsZSBpbiBhIHBhZ2Ugb3IKICAgdGVtcGxhdGUgdXNpbmcgYSBzbWFydHkgdGFnIG9mIHRoZSBmb3JtCiAgIHtjbXNfbW9kdWxlIG1vZHVsZT0nU0VPVG9vbHMyJyBwYXJhbTE9dmFsIHBhcmFtMj12YWwuLi59CgogICBJZiB5b3VyIG1vZHVsZSBkb2VzIG5vdCBnZXQgaW5jbHVkZWQgaW4gcGFnZXMgb3IKICAgdGVtcGxhdGVzLCByZXR1cm4gImZhbHNlIiBoZXJlLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgCgkvKioKCSAqIFJldHVybnMgd2hldGhlciB0aGlzIG1vZHVsZSBzaG91bGQgb25seSBiZSBsb2FkZWQgZnJvbSB0aGUgYWRtaW4KCSAqCgkgKiBAYWJzdHJhY3QKCSAqIEByZXR1cm4gYm9vbGVhbgoJICovCglmdW5jdGlvbiBJc0FkbWluT25seSgpCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoKICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBIYXNBZG1pbigpCiAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGJvb2xlYW4gdmFsdWUsIGRlcGVuZGluZyBvbgogICB3aGV0aGVyIHlvdXIgbW9kdWxlIGFkZHMgYW55dGhpbmcgdG8gdGhlIEFkbWluIGFyZWEgb2YKICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSdsbCBiZSBjYWxsaW5nCiAgIHRoZSBhZG1pbiBwYXJ0IG9mIHlvdXIgbW9kdWxlIHRoZSAiQWRtaW4gUGFuZWwiIGZvcgogICB3YW50IG9mIGEgYmV0dGVyIHRlcm0uCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSGFzQWRtaW4oKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEFkbWluU2VjdGlvbigpCiAgIElmIHlvdXIgbW9kdWxlIGhhcyBhbiBBZG1pbiBQYW5lbCwgeW91IGNhbiBzcGVjaWZ5CiAgIHdoaWNoIEFkbWluIFNlY3Rpb24gKG9yIHRvcC1sZXZlbCBBZG1pbiBNZW51KSBpdCBzaG93cwogICB1cCBpbi4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyB0byBzcGVjaWZ5IHRoYXQKICAgc2VjdGlvbi4gVmFsaWQgcmV0dXJuIHZhbHVlcyBhcmU6CgogICBtYWluICAgICAgICAtIHRoZSBNYWluIG1lbnUgdGFiLgogICBjb250ZW50ICAgICAtIHRoZSBDb250ZW50IG1lbnUKICAgbGF5b3V0ICAgICAgLSB0aGUgTGF5b3V0IG1lbnUKICAgdXNlcnNncm91cHMgLSB0aGUgVXNlcnMgYW5kIEdyb3VwcyBtZW51CiAgIGV4dGVuc2lvbnMgIC0gdGhlIEV4dGVuc2lvbnMgbWVudSAodGhpcyBpcyB0aGUgZGVmYXVsdCkKICAgc2l0ZWFkbWluICAgLSB0aGUgU2l0ZSBBZG1pbiBtZW51CiAgIHZpZXdzaXRlICAgIC0gdGhlIFZpZXcgU2l0ZSBtZW51IHRhYgogICBsb2dvdXQgICAgICAtIHRoZSBMb2dvdXQgbWVudSB0YWIKCiAgIE5vdGUgdGhhdCBpZiB5b3UgcGxhY2UgeW91ciBtb2R1bGUgaW4gdGhlIG1haW4sCiAgIHZpZXdzaXRlLCBvciBsb2dvdXQgc2VjdGlvbnMsIGl0IHdpbGwgc2hvdyB1cCBpbiB0aGUKICAgbWVudXMsIGJ1dCB3aWxsIG5vdCBiZSB2aXNpYmxlIGluIGFueSB0b3AtbGV2ZWwKICAgc2VjdGlvbiBwYWdlcy4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQogIHsKICAgIHJldHVybiAnY29udGVudCc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgIElmIHlvdXIgbW9kdWxlIGRvZXMgaGF2ZSBhbiBBZG1pbiBQYW5lbCwgeW91CiAgIGNhbiBoYXZlIGl0IHJldHVybiBhIGRlc2NyaXB0aW9uIHN0cmluZyB0aGF0IGdldHMgc2hvd24KICAgaW4gdGhlIEFkbWluIFNlY3Rpb24gcGFnZSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGUuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKICAgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3QgaXQncyBkaXNwbGF5ZWQgYnkgdGhlIGJvb2xlYW4KICAgdGhhdCBpcyByZXR1cm5lZCBieSB0aGlzIG1ldGhvZC4gVGhpcyBpcyBwcmltYXJpbHkgdXNlZAogICB0byBoaWRlIG1vZHVsZXMgZnJvbSBhZG1pbnMgd2hvIGxhY2sgcGVybWlzc2lvbiB0byB1c2UKICAgdGhlbS4KCiAgIFR5cGljYWxseSwgeW91J2xsIHVzZSBzb21lIHBlcm1pc3Npb24gdG8gc2V0IHRoaXMKICAgKGUuZy4sICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1NvbWUgUGVybWlzc2lvbicpOyApCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRWRpdCBTRU8gU2V0dGluZ3MnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBDaGVja0FjY2VzcygpCiAgIFRoaXMgd3JhcHBlciBmdW5jdGlvbiB3aWxsIGNoZWNrIGFnYWluc3QgdGhlIHNwZWNpZmllZCBwZXJtaXNzaW9uLAogICBhbmQgZGlzcGxheSBhbiBlcnJvciBwYWdlIGlmIHRoZSB1c2VyIGRvZXNuJ3QgaGF2ZSBhZGVxdWF0ZSBwZXJtaXNzaW9ucy4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBDaGVja0FjY2VzcygkcGVybSA9ICdFZGl0IFNFTyBTZXR0aW5ncycpCiAgewogICAgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm0pOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgRGlzcGxheUVycm9yUGFnZSgpCiAgIFRoaXMgaXMgYSBzaW1wbGUgZnVuY3Rpb24gZm9yIGdlbmVyYXRpbmcgZXJyb3IgcGFnZXMuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKICB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignbWVzc2FnZScsICRtZXNzYWdlKTsKCiAgICAvLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKICAgIC8vZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCSRzbWFydHktPmRpc3BsYXkoJ2Vycm9yLnRwbCcpOwogIH0KCgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXREZXBlbmRlbmNpZXMoKQogICBZb3VyIG1vZHVsZSBtYXkgbmVlZCBhbm90aGVyIG1vZHVsZSB0byBhbHJlYWR5IGJlIGluc3RhbGxlZAogICBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIGl0LgogICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbGlzdCBvZiB0aG9zZSBkZXBlbmRlbmNpZXMgYW5kCiAgIG1pbmltdW0gdmVyc2lvbiBudW1iZXJzIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCgogICBJdCBzaG91bGQgcmV0dXJuIGFuIGhhc2gsIGVnLgogICByZXR1cm4gYXJyYXkoJ3NvbWVtb2R1bGUnPT4nMS4wJywgJ290aGVybW9kdWxlJz0+JzEuMScpOwogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIGFycmF5KCk7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBNaW5pbXVtQ01TVmVyc2lvbigpCiAgIFlvdXIgbW9kdWxlIG1heSByZXF1aXJlIGZ1bmN0aW9ucyBvciBvYmplY3RzIGZyb20KICAgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIENNUyBNYWRlIFNpbXBsZS4KICAgRXZlciBzaW5jZSB2ZXJzaW9uIDAuMTEsIHlvdSBjYW4gc3BlY2lmeSB3aGljaCBtaW5pbXVtCiAgIENNUyBNUyB2ZXJzaW9uIGlzIHJlcXVpcmVkIGZvciB5b3VyIG1vZHVsZSwgd2hpY2ggd2lsbAogICBwcmV2ZW50IGl0IGZyb20gYmVpbmcgaW5zdGFsbGVkIGJ5IGEgdmVyc2lvbiBvZiBDTVMgdGhhdAogICBjYW4ndCBydW4gaXQuCgogICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKICAgbWluaW11bSB2ZXJzaW9uIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQogIHsKICAgIHJldHVybiAiMS4xMCI7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgTWF4aW11bUNNU1ZlcnNpb24oKQogICBZb3UgbWF5IHdhbnQgdG8gcHJldmVudCBwZW9wbGUgZnJvbSB1c2luZyB5b3VyIG1vZHVsZSBpbgogICBmdXR1cmUgdmVyc2lvbnMgb2YgQ01TIE1hZGUgU2ltcGxlLCBlc3BlY2lhbGx5IGlmIHlvdQogICB0aGluayBBUEkgZmVhdHVyZXMgeW91IHVzZSBtYXkgY2hhbmdlIC0tIGFmdGVyIGFsbCwgeW91CiAgIG5ldmVyIHJlYWxseSBrbm93IGhvdyB0aGUgQ01TIE1TIEFQSSBjb3VsZCBldm9sdmUuCgogICBTbywgdG8gcHJldmVudCBwZW9wbGUgZnJvbSBmbG9vZGluZyB5b3Ugd2l0aCBidWcgcmVwb3J0cwogICB3aGVuIGEgbmV3IHZlcnNpb24gb2YgQ01TIE1TIGlzIHJlbGVhc2VkLCB5b3UgY2FuIHNpbXBseQogICByZXN0cmljdCB0aGUgdmVyc2lvbi4gVGhlbiwgb2YgY291cnNlLCB0aGUgb251cyBpcyBvbiB5b3UKICAgdG8gcmVsZWFzZSBhIG5ldyB2ZXJzaW9uIG9mIHlvdXIgbW9kdWxlIHdoZW4gYSBuZXcgdmVyc2lvbgogICBvZiB0aGUgQ01TIGlzIHJlbGVhc2VkLi4uCgogICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKICAgbWF4aW11bSB2ZXJzaW9uIHRoYXQgdGhpcyBtb2R1bGUgc3VwcG9ydHMuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgLyogZnVuY3Rpb24gTWF4aW11bUNNU1ZlcnNpb24oKQogICB7CiAgIHJldHVybjsKICAgfQogICAqLwoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogICBBZnRlciBpbnN0YWxsYXRpb24sIHRoZXJlIG1heSBiZSB0aGluZ3MgeW91IHdhbnQgdG8KICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKICAgc3RyaW5nIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogICBBZnRlciByZW1vdmluZyBhIG1vZHVsZSwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwogICBjb21tdW5pY2F0ZSB0byB5b3VyIGFkbWluLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYQogICBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwogIH0KCgogIC8qKgogICAqIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogICAqIFRoaXMgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGEgbWVzc2FnZSBhbG9uZyB3aXRoIGEgWWVzL05vIGRpYWxvZyBib3guIElmIHRoZSB1c2VyIHJlc3BvbmRzCiAgICogaW4gdGhlIGFmZmlybWF0aXZlIHRvIHlvdXIgbWVzc2FnZSwgdGhlIHVuaW5zdGFsbCB3aWxsIHByb2NlZWQuIElmIHRoZXkgcmVzcG9uZCBpbiB0aGUKICAgKiBuZWdhdGl2ZSwgdGhlIHVuaW5zdGFsbCB3aWxsIGJlIGNhbmNlbGVkLiBUaHVzLCB5b3VyIG1lc3NhZ2Ugc2hvdWxkIGJlIG9mIHRoZSBmb3JtCiAgICogIkFsbCBtb2R1bGUgZGF0YSB3aWxsIGJlIGRlbGV0ZWQuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/IgogICAqCiAgICogSWYgeW91IGRvbid0IHdhbnQgdGhlIGRpYWxvZywgaGF2ZSB0aGlzIG1ldGhvZCByZXR1cm4gYSBGQUxTRSwgd2hpY2ggd2lsbCBjYXVzZSB0aGUKICAgKiBtb2R1bGUgdG8gdW5pbnN0YWxsIGltbWVkaWF0ZWx5IGlmIHRoZSB1c2VyIGNsaWNrcyB0aGUgInVuaW5zdGFsbCIgbGluay4KICAgKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIEdldE5vdGlmaWNhdGlvbk91dHB1dCgkcHJpb3JpdHkgPSAzKSB7CiAgICBpZiAoY291bnQoJHRoaXMtPmdldFVyZ2VudEFsZXJ0cygpKSA+IDApIHsKICAgICAgJHRleHQgPSAkdGhpcy0+TGFuZygncHJvYmxlbV9hbGVydCcsQXJyYXkoJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkdGhpcy0+TGFuZygncHJvYmxlbV9saW5rX3RpdGxlJykpKSk7CgogICAgICAkb2JqID0gbmV3IFN0ZENsYXNzOwogICAgICAkb2JqLT5wcmlvcml0eSA9IDM7CiAgICAgICRvYmotPmh0bWwgPSAkdGV4dDsKCiAgICAgIHJldHVybiAkb2JqOwogICAgfQogIH0KCgogIGZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKSB7CiAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKCiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaG93YmFzZScsICd0cnVlJywgJHRoaXMtPkxhbmcoJ2hlbHBfc2hvd2Jhc2UnKSk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvd2Jhc2UnLCBDTEVBTl9TVFJJTkcpOwogICAgCiAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKHRydWUpOwoKICB9CgoKICBmdW5jdGlvbiBnZXRVcmdlbnRBbGVydHMoKSB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHJvb3RfdXJsID0gZW1wdHkoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJGNvbmZpZ1sncm9vdF91cmwnXSA6ICRjb25maWdbJ3NzbF91cmwnXTsKCiAgICAkYWxlcnRzID0gQXJyYXkoKTsKICAgIC8vIEVuYWJsZSBQcmV0dHkgVVJMcwogICAgaWYgKCgkY29uZmlnWyd1cmxfcmV3cml0aW5nJ10gIT0gIm1vZF9yZXdyaXRlIikgJiYgKCRjb25maWdbJ3VybF9yZXdyaXRpbmcnXSAhPSAnaW50ZXJuYWwnKSkgewogICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnc3lzdGVtJzsKICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnYWN0aXZhdGVfcHJldHR5X3VybHMnKTsKICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+TGFuZygncHJldHR5X3VybHNfaGVscCcpOwogICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICB9CiAgICAvLyBObyBNZXRhIHRhZ3MgYXJlIGluc2VydGVkCiAgICBpZiAoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX3N0YW5kYXJkJywwKSAhPSAxKSAmJiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfZHVibGluY29yZScsMCkgIT0gMSkpIHsKICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgJGFsZXJ0Wydncm91cCddID0gJ3NldHRpbmdzJzsKICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygndXNlX3N0YW5kYXJkX29yX2R1YmxpbmNvcmVfbWV0YScpOwogICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CiAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgIH0KCiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnLDApICE9IDEpIHsKICAgICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpICE9ICcnKSB7CiAgICAgICAgLy8gUGFnZXMgd2l0aG91dCBkZXNjcmlwdGlvbgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKixjLmNvbnRlbnRfaWQgQVMgY2lkLCBjLnR5cGUgQVMgY3R5cGUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudCBjIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudF9wcm9wcyBwIE9OIChjLmNvbnRlbnRfaWQgPSBwLmNvbnRlbnRfaWQgQU5EIHAucHJvcF9uYW1lID0gIicuc3RyX3JlcGxhY2UoJyAnLCdfJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKSkuJyIpIFdIRVJFIChwLmNvbnRlbnQgSVMgTlVMTCBPUiBwLmNvbnRlbnQgPSAiIikgQU5EIGMudHlwZSA9ICJjb250ZW50IiBMSU1JVCAwLDIxJzsKICAgICAgICAkcmVzdWx0ID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgICAgIHdoaWxlICgkcHJvYmxlbSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKICAgCQkgIAkgIGlmICgkcHJvYmxlbVsnY3R5cGUnXSA9PSAnY29udGVudCcpIHsKICAgCQkgIAkgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgCQkgIAkgICAgJGFsZXJ0Wydncm91cCddID0gJ3BhZ2VzJzsKICAgCQkgIAkgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbWV0YV9kZXNjcmlwdGlvbl9taXNzaW5nJyxBcnJheSgkcHJvYmxlbVsnY29udGVudF9uYW1lJ10pKTsKICAgCQkgIAkgICAgaWYgKGlzc2V0KCRfR0VUWydzcF8nXSkpIHsKICAgCQkgIAkgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRwcm9ibGVtWydjaWQnXS4nIj4nLiR0aGlzLT5MYW5nKCdlZGl0X3BhZ2VfdG9fZml4JykuJzwvYT4nOwogICAJCSAgCSAgICB9ZWxzZXsKICAgCQkgIAkgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/X3N4Xz0nLiRfR0VUWydfc3hfJ10uJyZjb250ZW50X2lkPScuJHByb2JsZW1bJ2NpZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZV90b19maXgnKS4nPC9hPic7CiAgIAkJICAJICAgIH0KICAgCQkgIAkgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAJCSAgCSAgfQogICAgICAgIH0KICAgICAgfWVsc2V7CiAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnc2V0dGluZ3MnOwogICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3NldF91cF9kZXNjcmlwdGlvbl9ibG9jaycpOwogICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5MYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgIH0KICAgIH1lbHNlaWYoc3RycG9zKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvJywnJyksJ3trZXl3b3Jkc30nKSA9PT0gZmFsc2UpIHsKICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgJGFsZXJ0Wydncm91cCddID0gJ3NldHRpbmdzJzsKICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnc2V0X3VwX2F1dG9fZGVzY3JpcHRpb24nKTsKICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICB9CgogICAgLy8gc2l0ZW1hcC54bWwgbm90IHdyaXRlYWJsZQogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcsMSkgPT0gMSkgewogICAgICBpZiAoIWlzX3dyaXRlYWJsZSgkY29uZmlnWydyb290X3BhdGgnXSAuICcvc2l0ZW1hcC54bWwnKSkgewogICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ3N5c3RlbSc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnc2l0ZW1hcF9ub3Rfd3JpdGVhYmxlJyk7CiAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+TGFuZygnY2htb2Rfc2l0ZW1hcCcpOwogICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgfQogICAgfQoKICAgIC8vIHJvYm90cy50eHQgbm90IHdyaXRlYWJsZQogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfcm9ib3RzJywxKSA9PSAxKSB7CiAgICAgICRmcCA9IEBmb3BlbigkY29uZmlnWydyb290X3BhdGgnXSAuICcvcm9ib3RzLnR4dCcsImEiKTsKICAgICAgQGZjbG9zZSgkZnApOwogICAgICBpZiAoIWlzX3dyaXRlYWJsZSgkY29uZmlnWydyb290X3BhdGgnXSAuICcvcm9ib3RzLnR4dCcpKSB7CiAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnc3lzdGVtJzsKICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdyb2JvdHNfbm90X3dyaXRlYWJsZScpOwogICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPkxhbmcoJ2NobW9kX3JvYm90cycpOwogICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgfQogICAgfQoKICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGgnLDApID09IDEpIHsKICAgICAgLy8gTm8gT3BlbkdyYXBoIGFkbWluIHNldAogICAgICBpZiAoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnLCcnKSA9PSAnJykgJiYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicsJycpID09ICcnKSkgewogICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ29wZW5ncmFwaCc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbm9fb3BlbmdyYXBoX2FkbWlucycpOwogICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5MYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgIH0KICAgICAgLy8gTm8gT3BlbkdyYXBoIHBhZ2UgdHlwZSBzZXQKICAgICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF90eXBlJywnJykgPT0gJycpIHsKICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdvcGVuZ3JhcGgnOwogICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ25vX29wZW5ncmFwaF90eXBlJyk7CiAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgfQogICAgICAvLyBObyBPcGVuR3JhcGggc2l0ZW5hbWUgc2V0CiAgICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnLCcnKSA9PSAnJykgewogICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ29wZW5ncmFwaCc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbm9fb3BlbmdyYXBoX3NpdGVuYW1lJyk7CiAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgfQogICAgICAvLyBObyBPcGVuR3JhcGggaW1hZ2Ugc2V0CiAgICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnLCcnKSA9PSAnJykgewogICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ29wZW5ncmFwaCc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbm9fb3BlbmdyYXBoX2ltYWdlJyk7CiAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgfQogICAgfQoKICAgIHJldHVybiAkYWxlcnRzOwogIH0KCiAgZnVuY3Rpb24gZ2V0SW1wb3J0YW50QWxlcnRzKCkgewogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRhbGVydHMgPSBBcnJheSgpOwogICAgJHJvb3RfdXJsID0gZW1wdHkoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJGNvbmZpZ1sncm9vdF91cmwnXSA6ICRjb25maWdbJ3NzbF91cmwnXTsKCiAgICAvLyBQYWdlcyB3aXRoIHNob3J0IGRlc2NyaXB0aW9uCiAgICAkcXVlcnkgPSAnU0VMRUNUICosYy5jb250ZW50X2lkIEFTIGNpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IGMgSU5ORVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudF9wcm9wcyBwIE9OIChjLmNvbnRlbnRfaWQgPSBwLmNvbnRlbnRfaWQgQU5EIHAucHJvcF9uYW1lID0gIicuc3RyX3JlcGxhY2UoJyAnLCdfJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKSkuJyIpIFdIRVJFIENIQVJfTEVOR1RIKHAuY29udGVudCkgPCA3NSBBTkQgYy50eXBlID0gImNvbnRlbnQiIEFORCBwLmNvbnRlbnQgPD4gIiIgTElNSVQgMCwyMSc7CiAgICAkcmVzdWx0ID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgaWYgKCRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwKSB7CiAgICAgIHdoaWxlICgkcHJvYmxlbSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdkZXNjcmlwdGlvbnMnOwogICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ21ldGFfZGVzY3JpcHRpb25fc2hvcnQnLEFycmF5KCRwcm9ibGVtWydjb250ZW50X25hbWUnXSkpOwogICAgICAgIGlmIChpc3NldCgkX0dFVFsnc3BfJ10pKSB7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRwcm9ibGVtWydjaWQnXS4nIj4nLiR0aGlzLT5MYW5nKCdlZGl0X3BhZ2VfdG9fZml4JykuJzwvYT4nOwogICAgICAgIH1lbHNlewogICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iJy4kcm9vdF91cmwuJy8nLiRjb25maWdbJ2FkbWluX2RpciddLicvZWRpdGNvbnRlbnQucGhwP19zeF89Jy4kX0dFVFsnX3N4XyddLicmY29udGVudF9pZD0nLiRwcm9ibGVtWydjaWQnXS4nIj4nLiR0aGlzLT5MYW5nKCdlZGl0X3BhZ2VfdG9fZml4JykuJzwvYT4nOwogICAgICAgIH0KICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgIH0KICAgIH0KCiAgICAvLyBQYWdlcyB3aXRoIGR1cGxpY2F0ZSB0aXRsZQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBjMS5jb250ZW50X2FsaWFzIEFTIGMxbmFtZSwgYzEuY29udGVudF9pZCBBUyBjMWlkLCBjMi5jb250ZW50X2FsaWFzIEFTIGMybmFtZSwgYzIuY29udGVudF9pZCBBUyBjMmlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NvbnRlbnQgYzEgSU5ORVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudCBjMiBPTiAoYzEuY29udGVudF9uYW1lID0gYzIuY29udGVudF9uYW1lIEFORCBjMS5jb250ZW50X2lkIDwgYzIuY29udGVudF9pZCkgV0hFUkUgYzEudHlwZSA9ICJjb250ZW50IiBBTkQgYzIudHlwZSA9ICJjb250ZW50IiBMSU1JVCAwLDIxJzsKICAgICRyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICBpZiAoJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDApIHsKCiAgICAgIHdoaWxlICgkcHJvYmxlbSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICd0aXRsZXMnOwogICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2R1cGxpY2F0ZV90aXRsZXMnLEFycmF5KCRwcm9ibGVtWydjMW5hbWUnXSwkcHJvYmxlbVsnYzJuYW1lJ10pKTsKICAgICAgICBpZiAoaXNzZXQoJF9HRVRbJ3NwXyddKSkgewogICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iJy4kcm9vdF91cmwuJy8nLiRjb25maWdbJ2FkbWluX2RpciddLicvZWRpdGNvbnRlbnQucGhwP3NwXz0nLiRfR0VUWydzcF8nXS4nJmNvbnRlbnRfaWQ9Jy4kcHJvYmxlbVsnYzFpZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZScsQXJyYXkoJHByb2JsZW1bJ2MxbmFtZSddKSkuJzwvYT4nOwogICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iJy4kcm9vdF91cmwuJy8nLiRjb25maWdbJ2FkbWluX2RpciddLicvZWRpdGNvbnRlbnQucGhwP3NwXz0nLiRfR0VUWydzcF8nXS4nJmNvbnRlbnRfaWQ9Jy4kcHJvYmxlbVsnYzJpZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZScsQXJyYXkoJHByb2JsZW1bJ2MybmFtZSddKSkuJzwvYT4nOwogICAgICAgIH1lbHNlewogICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iJy4kcm9vdF91cmwuJy8nLiRjb25maWdbJ2FkbWluX2RpciddLicvZWRpdGNvbnRlbnQucGhwP19zeF89Jy4kX0dFVFsnX3N4XyddLicmY29udGVudF9pZD0nLiRwcm9ibGVtWydjMWlkJ10uJyI+Jy4kdGhpcy0+TGFuZygnZWRpdF9wYWdlJyxBcnJheSgkcHJvYmxlbVsnYzFuYW1lJ10pKS4nPC9hPic7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/X3N4Xz0nLiRfR0VUWydfc3hfJ10uJyZjb250ZW50X2lkPScuJHByb2JsZW1bJ2MyaWQnXS4nIj4nLiR0aGlzLT5MYW5nKCdlZGl0X3BhZ2UnLEFycmF5KCRwcm9ibGVtWydjMm5hbWUnXSkpLic8L2E+JzsKICAgICAgICB9CiAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICB9CiAgICB9CiAgICAvLyBQYWdlcyB3aXRoIGR1cGxpY2F0ZSBkZXNjcmlwdGlvbgogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwMS5jb250ZW50X2lkIEFTIGMxaWQsIHAyLmNvbnRlbnRfaWQgQVMgYzJpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50X3Byb3BzIHAxIElOTkVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ2NvbnRlbnRfcHJvcHMgcDIgT04gKHAxLnByb3BfbmFtZSA9IHAyLnByb3BfbmFtZSBBTkQgcDEucHJvcF9uYW1lID0gIicuc3RyX3JlcGxhY2UoJyAnLCdfJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKSkuJyIgQU5EIHAxLmNvbnRlbnRfaWQgPCBwMi5jb250ZW50X2lkIEFORCBwMS5jb250ZW50IDw+ICIiIEFORCBwMi5jb250ZW50IDw+ICIiKSBXSEVSRSBwMS5jb250ZW50ID0gcDIuY29udGVudCBMSU1JVCAwLDIxJzsKICAgICRyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICBpZiAoJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDApIHsKCiAgICAgIHdoaWxlICgkcHJvYmxlbSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGNvbnRlbnRfaWQsIGNvbnRlbnRfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRwcm9ibGVtWydjMWlkJ10uJyBPUiBjb250ZW50X2lkID0gJy4kcHJvYmxlbVsnYzJpZCddOwogICAgICAgICRyZXN1bHQxID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgICAgICRmaXJzdCA9ICRyZXN1bHQxLT5mZXRjaFJvdygpOwogICAgICAgICRzZWNvbmQgPSAkcmVzdWx0MS0+ZmV0Y2hSb3coKTsKICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdkZXNjcmlwdGlvbnMnOwogICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2R1cGxpY2F0ZV9kZXNjcmlwdGlvbnMnLEFycmF5KCRmaXJzdFsnY29udGVudF9uYW1lJ10sJHNlY29uZFsnY29udGVudF9uYW1lJ10pKTsKICAgICAgICBpZiAoaXNzZXQoJF9HRVRbJ3NwXyddKSkgewogICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iJy4kcm9vdF91cmwuJy8nLiRjb25maWdbJ2FkbWluX2RpciddLicvZWRpdGNvbnRlbnQucGhwP3NwXz0nLiRfR0VUWydzcF8nXS4nJmNvbnRlbnRfaWQ9Jy4kZmlyc3RbJ2NvbnRlbnRfaWQnXS4nIj4nLiR0aGlzLT5MYW5nKCdlZGl0X3BhZ2UnLEFycmF5KCRmaXJzdFsnY29udGVudF9uYW1lJ10pKS4nPC9hPic7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRzZWNvbmRbJ2NvbnRlbnRfaWQnXS4nIj4nLiR0aGlzLT5MYW5nKCdlZGl0X3BhZ2UnLEFycmF5KCRzZWNvbmRbJ2NvbnRlbnRfbmFtZSddKSkuJzwvYT4nOwogICAgICAgIH1lbHNlewogICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iJy4kcm9vdF91cmwuJy8nLiRjb25maWdbJ2FkbWluX2RpciddLicvZWRpdGNvbnRlbnQucGhwP19zeF89Jy4kX0dFVFsnX3N4XyddLicmY29udGVudF9pZD0nLiRmaXJzdFsnY29udGVudF9pZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZScsQXJyYXkoJGZpcnN0Wydjb250ZW50X25hbWUnXSkpLic8L2E+JzsKICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9IicuJHJvb3RfdXJsLicvJy4kY29uZmlnWydhZG1pbl9kaXInXS4nL2VkaXRjb250ZW50LnBocD9fc3hfPScuJF9HRVRbJ19zeF8nXS4nJmNvbnRlbnRfaWQ9Jy4kc2Vjb25kWydjb250ZW50X2lkJ10uJyI+Jy4kdGhpcy0+TGFuZygnZWRpdF9wYWdlJyxBcnJheSgkc2Vjb25kWydjb250ZW50X25hbWUnXSkpLic8L2E+JzsKICAgICAgICB9CiAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICB9CiAgICB9CiAgICAvLyBObyBhdXRob3IgcHJvdmlkZWQKICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCcnKSA9PSAnJykgewogICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnc2V0dGluZ3MnOwogICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcm92aWRlX2FuX2F1dGhvcicpOwogICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CiAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgIH0KICAgIHJldHVybiAkYWxlcnRzOwogIH0KCiAgZnVuY3Rpb24gZ2V0Tm90aWNlQWxlcnRzKCkgewogICAgJGFsZXJ0cyA9IEFycmF5KCk7CiAgICAvLyBObyBzdGFuZGFyZCBtZXRhCiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfc3RhbmRhcmQnLDEpICE9IDEpIHsKICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygndXNlX3N0YW5kYXJkX21ldGEnKTsKICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICB9CiAgICAvLyBTdWJtaXQgYSBzaXRlbWFwCiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywxKSAhPSAxKSB7CiAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2NyZWF0ZV9hX3NpdGVtYXAnKTsKICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nc2l0ZW1hcHNldHRpbmdzJykpOwogICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICB9ZWxzZWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLDEpICE9IDEpIHsKICAgICAgLy8gQXV0b21hdGljYWxseSBzdWJtaXQgdGhlIHNpdGVtYXAKICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnYXV0b21hdGljYWxseV91cGxvYWRfc2l0ZW1hcCcpOwogICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidzaXRlbWFwc2V0dGluZ3MnKSk7CiAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgIH0KICAgIC8vIENyZWF0ZSBhIHJvYm90cy50eHQgZmlsZQogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfcm9ib3RzJywxKSAhPSAxKSB7CiAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2NyZWF0ZV9yb2JvdHMnKTsKICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nc2l0ZW1hcHNldHRpbmdzJykpOwogICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICB9CiAgICAvLyBTZXQgYSBkZWZhdWx0IGltYWdlCiAgICByZXR1cm4gJGFsZXJ0czsKICB9CgogIGZ1bmN0aW9uIGdldF9rZXl3b3Jkcygkc291cmNlLCAkbWlubGVuZ3RoID0gNikgewogICAgJHNvdXJjZSA9IHByZWdfcmVwbGFjZSgnL1x7W15cfV0rXH0vaXNVJywgJycsIHV0ZjhfZGVjb2RlKCRzb3VyY2UpKTsKICAgICRzb3VyY2UgPSBzdHJfcmVwbGFjZSgiXG4iLCIgIixzdHJpcF90YWdzKCRzb3VyY2UpKTsKICAgICRzb3VyY2UgPSBzdHJfcmVwbGFjZSgnLScsJyAnLCRzb3VyY2UpOwogICAgJHNvdXJjZSA9IHN0cl9yZXBsYWNlKCcuJywnICcsJHNvdXJjZSk7CiAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoJywnLCcgJywkc291cmNlKTsKICAgICRzb3VyY2UgPSBzdHJfcmVwbGFjZSgnIScsJyAnLCRzb3VyY2UpOwogICAgJHNvdXJjZSA9IHN0cl9yZXBsYWNlKCc/JywnICcsJHNvdXJjZSk7CiAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoJzonLCcgJywkc291cmNlKTsKICAgICRzb3VyY2UgPSBzdHJfcmVwbGFjZSgnICAnLCcgJywkc291cmNlKTsKICAgICRrZXl3b3JkcyA9IGV4cGxvZGUoJyAnLCRzb3VyY2UpOwogICAgZm9yZWFjaCAoJGtleXdvcmRzIGFzICRrZXk9PiR2YWx1ZSkgewogICAgICBpZiAoc3RybGVuKCR2YWx1ZSkgPCAkbWlubGVuZ3RoKSB7CiAgICAgICAgdW5zZXQoJGtleXdvcmRzWyRrZXldKTsKICAgICAgfWVsc2V7CiAgICAgICAgJGtleXdvcmRzWyRrZXldID0gaHRtbGVudGl0aWVzKHRyaW0oJHZhbHVlKSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAka2V5d29yZHM7CiAgfQoKICBmdW5jdGlvbiBnZXRfaGVhZGxpbmVzKCRmaWxlKXsKICAgICRoMXRhZ3MgPSBwcmVnX21hdGNoX2FsbCgiLyg8aDEuKj4pKFx3LiopKDxcL2gxPikvaXN4bVUiLCRmaWxlLCRwYXR0ZXJucyk7CiAgICAkY29udGVudCA9ICIiOwogICAgZm9yZWFjaCgkcGF0dGVybnNbMl0gYXMgJHRhZykgewogICAgICAkY29udGVudCAuPSAiICIuJHRhZzsKICAgIH0KICAgICRoMnRhZ3MgPSBwcmVnX21hdGNoX2FsbCgiLyg8aDIuKj4pKFx3LiopKDxcL2gyPikvaXN4bVUiLCRmaWxlLCRwYXR0ZXJucyk7CiAgICBmb3JlYWNoKCRwYXR0ZXJuc1syXSBhcyAkdGFnKSB7CiAgICAgICRjb250ZW50IC49ICIgIi4kdGFnOwogICAgfQogICAgJGgzdGFncyA9IHByZWdfbWF0Y2hfYWxsKCIvKDxoMy4qPikoXHcuKikoPFwvaDM+KS9pc3htVSIsJGZpbGUsJHBhdHRlcm5zKTsKICAgIGZvcmVhY2goJHBhdHRlcm5zWzJdIGFzICR0YWcpIHsKICAgICAgJGNvbnRlbnQgLj0gIiAiLiR0YWc7CiAgICB9CiAgICAkaDR0YWdzID0gcHJlZ19tYXRjaF9hbGwoIi8oPGg0Lio+KShcdy4qKSg8XC9oND4pL2lzeG1VIiwkZmlsZSwkcGF0dGVybnMpOwogICAgZm9yZWFjaCgkcGF0dGVybnNbMl0gYXMgJHRhZykgewogICAgICAkY29udGVudCAuPSAiICIuJHRhZzsKICAgIH0KICAgICRoNXRhZ3MgPSBwcmVnX21hdGNoX2FsbCgiLyg8aDUuKj4pKFx3LiopKDxcL2g1PikvaXN4bVUiLCRmaWxlLCRwYXR0ZXJucyk7CiAgICBmb3JlYWNoKCRwYXR0ZXJuc1syXSBhcyAkdGFnKSB7CiAgICAgICRjb250ZW50IC49ICIgIi4kdGFnOwogICAgfQogICAgJGg2dGFncyA9IHByZWdfbWF0Y2hfYWxsKCIvKDxoNi4qPikoXHcuKikoPFwvaDY+KS9pc3htVSIsJGZpbGUsJHBhdHRlcm5zKTsKICAgIGZvcmVhY2goJHBhdHRlcm5zWzJdIGFzICR0YWcpIHsKICAgICAgJGNvbnRlbnQgLj0gIiAiLiR0YWc7CiAgICB9CiAgICByZXR1cm4gJGNvbnRlbnQ7CiAgfQoKICBmdW5jdGlvbiBnZXRLZXl3b3JkU3VnZ2VzdGlvbnMoJGNvbnRlbnRfaWQpIHsKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgaWYgKCEkY3VyY29udGVudCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCAoJGNvbnRlbnRfaWQpKSB7CiAgICAgIHJldHVybjsKICAgIH0KICAgICRkZXNjcmlwdGlvbl9pZCA9IHN0cl9yZXBsYWNlKCcgJywnXycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywnJykpOwoKICAgIC8qIEdlbmVyYXRlIGtleXdvcmRzIGZyb20gcGFnZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIGNvbnRlbnQgKi8KICAgICR0aXRsZV9rZXl3b3JkcyA9ICR0aGlzLT5nZXRfa2V5d29yZHMoJGN1cmNvbnRlbnQtPkdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnRfZW4nKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpKTsKCiAgICAkZGVzY3JpcHRpb25fa2V5d29yZHMgPSAkdGhpcy0+Z2V0X2tleXdvcmRzKCRjdXJjb250ZW50LT5HZXRQcm9wZXJ0eVZhbHVlKCRkZXNjcmlwdGlvbl9pZCksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXl3b3JkX21pbmxlbmd0aCcsJzYnKSk7CgogICAgJGhlYWRsaW5lX2tleXdvcmRzID0gJHRoaXMtPmdldF9rZXl3b3JkcygkdGhpcy0+Z2V0X2hlYWRsaW5lcygkY3VyY29udGVudC0+TmFtZSgpKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpKTsKCiAgICAkY29udGVudF9rZXl3b3JkcyA9ICR0aGlzLT5nZXRfa2V5d29yZHMoJGN1cmNvbnRlbnQtPkdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnRfZW4nKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpKTsKCiAgICAkb3RoZXJfa2V5d29yZHMgPSBBcnJheSgpOwoKICAgIGZvcmVhY2goJHRpdGxlX2tleXdvcmRzIGFzICRrZXl3b3JkKSB7CiAgICAgIGlmICghaXNzZXQoJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSkpIHsKICAgICAgICAkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdID0gMDsKICAgICAgfQogICAgICAkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfdGl0bGVfd2VpZ2h0JywnNicpOwogICAgfQogICAgZm9yZWFjaCgkZGVzY3JpcHRpb25fa2V5d29yZHMgYXMgJGtleXdvcmQpIHsKICAgICAgaWYgKCFpc3NldCgkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdKSkgewogICAgICAgICRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gPSAwOwogICAgICB9CiAgICAgICRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gKz0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0JywnNCcpOwogICAgfQogICAgZm9yZWFjaCgkaGVhZGxpbmVfa2V5d29yZHMgYXMgJGtleXdvcmQpIHsKICAgICAgaWYgKCFpc3NldCgkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdKSkgewogICAgICAgICRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gPSAwOwogICAgICB9CiAgICAgICRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gKz0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0JywnMicpOwogICAgfQogICAgZm9yZWFjaCgkY29udGVudF9rZXl3b3JkcyBhcyAka2V5d29yZCkgewogICAgICBpZiAoIWlzc2V0KCRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0pKSB7CiAgICAgICAgJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSA9IDA7CiAgICAgIH0KICAgICAgJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSArPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9jb250ZW50X3dlaWdodCcsJzEnKTsKICAgIH0KCiAgICBhcnNvcnQoJG90aGVyX2tleXdvcmRzKTsKCiAgICAkZXhjbHVkZV9saXN0ID0gZXhwbG9kZSgnICcsc3RydG91cHBlcih1dGY4X2RlY29kZSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9leGNsdWRlJywnJykpKSk7CgogICAgZm9yZWFjaCAoJG90aGVyX2tleXdvcmRzIGFzICRrZXk9PiR2YWx1ZSkgewogICAgICBpZiAoJHZhbHVlIDwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWluaW11bV93ZWlnaHQnLCc3JykpIHsKICAgICAgICB1bnNldCgkb3RoZXJfa2V5d29yZHNbJGtleV0pOwogICAgICB9ZWxzZWlmIChpbl9hcnJheShzdHJ0b3VwcGVyKCRrZXkpLCRleGNsdWRlX2xpc3QpKSB7CiAgICAgICAgdW5zZXQoJG90aGVyX2tleXdvcmRzWyRrZXldKTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiAkb3RoZXJfa2V5d29yZHM7CiAgfQoKICBmdW5jdGlvbiBjcmVhdGVSb2JvdHNUWFQoKSB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHJvb3RfdXJsID0gZW1wdHkoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJGNvbmZpZ1sncm9vdF91cmwnXSA6ICRjb25maWdbJ3NzbF91cmwnXTsKCiAgICAkZnAgPSBAZm9wZW4oJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy9yb2JvdHMudHh0JywndycpOwoKICAgIC8vIENyZWF0ZSByb2JvdHMudHh0CiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywxKSA9PSAxKSB7CiAgICAgIGZ3cml0ZSgkZnAsICJTaXRlbWFwOiAiLiRyb290X3VybC4iL3NpdGVtYXAueG1sXG4iKTsKICAgIH0KICAgIEBmd3JpdGUoJGZwLCAiVXNlci1hZ2VudDogKlxuIik7CiAgICBAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRyb290X3VybC4iL2NvbnRyaWIvXG4iKTsKICAgIEBmd3JpdGUoJGZwLCAiRGlzYWxsb3c6ICIuJHJvb3RfdXJsLiIvZG9jL1xuIik7CiAgICBAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRyb290X3VybC4iL2xpYi9cbiIpOwogICAgQGZ3cml0ZSgkZnAsICJEaXNhbGxvdzogIi4kcm9vdF91cmwuIi9tb2R1bGVzL1xuIik7CiAgICBAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRyb290X3VybC4iL3BsdWdpbnMvXG4iKTsKICAgIEBmd3JpdGUoJGZwLCAiRGlzYWxsb3c6ICIuJHJvb3RfdXJsLiIvc2NyaXB0cy9cbiIpOwogICAgQGZ3cml0ZSgkZnAsICJEaXNhbGxvdzogIi4kcm9vdF91cmwuIi90bXAvXG4iKTsKCiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Nlb3Rvb2xzMiBXSEVSRSBpbmRleGFibGUgPSAwIjsKICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCiAgICAkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICB3aGlsZSAoJHBhZ2UgPSAkcmVzdWx0LT5mZXRjaFJvdygpKSB7CgogICAgICBpZiAoJGN1cmNvbnRlbnQgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQgKCRwYWdlWydjb250ZW50X2lkJ10pKSB7CiAgICAgICAgJHVybCA9ICRjdXJjb250ZW50LT5HZXRVUkwoKTsKICAgICAgICBAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiR1cmwuIlxuIik7CiAgICAgIH0KICAgIH0KICAgIEBmY2xvc2UoJGZwKTsKICB9CgogIGZ1bmN0aW9uIGNyZWF0ZVNpdGVtYXAoJHB1c2ggPSBmYWxzZSkgewogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRyb290X3VybCA9IGVtcHR5KCRfU0VSVkVSWydIVFRQUyddKSA/ICRjb25maWdbJ3Jvb3RfdXJsJ10gOiAkY29uZmlnWydzc2xfdXJsJ107CiAgICAkcm9vdF9wYXRoID0gJGNvbmZpZ1sncm9vdF9wYXRoJ107CiAgICAkbWFwX3BhdGggPSAkcm9vdF9wYXRoLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3NpdGVtYXAueG1sJzsKICAgIAogICAgJGZwID0gZm9wZW4oJG1hcF9wYXRoLCd3Jyk7CiAgICAvLyBDcmVhdGUgc2l0ZW1hcAoKICAgIGZ3cml0ZSgkZnAsICI8P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSdVVEYtOCc/PlxuIik7CiAgICBmd3JpdGUoJGZwLCAiPHVybHNldCB4bWxucz0naHR0cDovL3d3dy5zaXRlbWFwcy5vcmcvc2NoZW1hcy9zaXRlbWFwLzAuOSc+XG5cbiIpOwoKICAgICRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudCBXSEVSRSBhY3RpdmUgPSAxIEFORCB0eXBlICE9ICJlcnJvcnBhZ2UiIE9SREVSIEJZIGhpZXJhcmNoeSBBU0MnOwogICAgJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIAogICAgaWYgKCRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkgewogICAgICB3aGlsZSAoJHBhZ2UgPSAkcmVzdWx0LT5mZXRjaFJvdygpKSB7CiAgICAgICAgCiAgICAgICAgaWYgKCRjdXJjb250ZW50ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkICgkcGFnZVsnY29udGVudF9pZCddKSkgewoKLy8gICAgICAgICAgaWYgKCRjdXJjb250ZW50LT5BY3RpdmUoKSAmJiAkY3VyY29udGVudC0+U2hvd0luTWVudSgpKSB7CiAgICAgICAgICBpZiAoJGN1cmNvbnRlbnQtPkFjdGl2ZSgpKSB7CiAgICAgICAgICAgICR1cmwgPSAkY3VyY29udGVudC0+R2V0VVJMKCk7CiAgICAgICAgICAgIGlmICgkdXJsID09ICIjIikgewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAoKLy8gICAgICAgICAgICBpZiAoc3RycG9zKCR1cmwsICRyb290X3VybCkgPT09IGZhbHNlKSB7Ci8vICAgICAgICAgICAgICBjb250aW51ZTsKLy8gICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzdHJwb3Moc3Ryc3RyKCR1cmwsJzonKSwgc3Ryc3RyKCRyb290X3VybCwnOicpKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgJHByaW9yaXR5ID0gODA7CiAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IHN1YnN0cl9jb3VudCgkcGFnZVsnaGllcmFyY2h5J10sJy4nKTsgJGkrKykgewogICAgICAgICAgICAgICRwcmlvcml0eSAgPSAkcHJpb3JpdHkgLyAyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkcGFnZVsnZGVmYXVsdF9jb250ZW50J10gPT0gMSkgewogICAgICAgICAgICAgICRwcmlvcml0eSA9IDEwMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgV0hFUkUgY29udGVudF9pZCA9ICcuJHBhZ2VbJ2NvbnRlbnRfaWQnXTsKICAgICAgICAgICAgJHJlc3VsdDIgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgICAgICAgICRpbmZvID0gJHJlc3VsdDItPmZldGNoUm93KCk7CiAgICAgICAgICAgIGlmIChpc3NldCgkaW5mb1sncHJpb3JpdHknXSkgJiYgKCRpbmZvWydwcmlvcml0eSddICE9IDApICYmICgkaW5mb1sncHJpb3JpdHknXSAhPSAiIikpIHsKICAgICAgICAgICAgICAkcHJpb3JpdHkgPSAkaW5mb1sncHJpb3JpdHknXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKCFpc3NldCgkaW5mb1snaW5kZXhhYmxlJ10pIHx8ICgkaW5mb1snaW5kZXhhYmxlJ10gPT0gIiIpIHx8ICgkaW5mb1snaW5kZXhhYmxlJ10gPT0gMSkpIHsKICAgICAgICAgICAgICBmd3JpdGUoJGZwLCAiPHVybD5cbiIpOwogICAgICAgICAgICAgIGZ3cml0ZSgkZnAsICI8bG9jPiIuJHVybC4iPC9sb2M+XG4iKTsKICAgICAgICAgICAgICBmd3JpdGUoJGZwLCAiPGxhc3Rtb2Q+Ii5kYXRlKCJZLW0tZCIsIHN0cnRvdGltZSgkcGFnZVsnbW9kaWZpZWRfZGF0ZSddKSkuIjwvbGFzdG1vZD5cbiIpOwogICAgICAgICAgICAgIGZ3cml0ZSgkZnAsICI8Y2hhbmdlZnJlcT5hbHdheXM8L2NoYW5nZWZyZXE+XG4iKTsKICAgICAgICAgICAgICBmd3JpdGUoJGZwLCAiPHByaW9yaXR5PiIubnVtYmVyX2Zvcm1hdCgkcHJpb3JpdHkgLyAxMDAsIDEpLiI8L3ByaW9yaXR5PlxuIik7CiAgICAgICAgICAgICAgZndyaXRlKCRmcCwgIjwvdXJsPlxuXG4iKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogICAgCiAgICBmd3JpdGUoJGZwLCAiPC91cmxzZXQ+Iik7CiAgICBmY2xvc2UoJGZwKTsKICAgIGlmICgkcHVzaCAhPSBmYWxzZSAmJiAkcHVzaCAhPT0wKSB7CiAgICAgIC8vIFB1c2ggc2l0ZW1hcCB0byBnb29nbGUKICAgICAgaWYgKGZpbGVfZXhpc3RzKCRtYXBfcGF0aCkpIHsKICAgICAgICAkZ29vZ2xlID0gImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS93ZWJtYXN0ZXJzL3Rvb2xzL3Bpbmc/c2l0ZW1hcD0iLnVybGVuY29kZSgkbWFwX3BhdGgpOwogICAgICAgICRmID0gQGZvcGVuKCRnb29nbGUsInIiKTsKICAgICAgICBpZiAoaXNfcmVzb3VyY2UoJGYpKQogICAgICAgIGZjbG9zZSgkZik7CiAgICAgIH0KCiAgICB9CiAgfQoKfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9J3RleHQvY3NzJz4Ke2xpdGVyYWx9CnAucGFnZXRleHQgewogIGNsZWFyOiBib3RoOwp9CmEgaW1nIHsKICBib3JkZXItc3R5bGU6IG5vbmUgIWltcG9ydGFudDsKfQp7L2xpdGVyYWx9Cjwvc3R5bGU+CgoKeyRtZXNzYWdlfQoKeyR0YWJfaGVhZGVyc30KCnskc3RhcnRfc2VvYWxlcnRzX3RhYn0KeyRhbGVydHN9CnskZW5kX3RhYn0KCnskc3RhcnRfcGFnZWRlc2NyaXB0aW9uc190YWJ9CnskcGFnZXNldHRpbmdzfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X21ldGFzZXR0aW5nc190YWJ9CnskbWV0YV9mb3JtfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X3NpdGVtYXBzZXR0aW5nc190YWJ9Cnskc2l0ZW1hcF9mb3JtfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X2tleXdvcmRzZXR0aW5nc190YWJ9Cnska2V5d29yZF9mb3JtfQp7JGVuZF90YWJ9Cgp7JHRhYl9mb290ZXJzfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
</module>
