<?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>CompanyDirectory</name>
	<version>1.23.3</version>
    <mincmsversion>1.12.1</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIHNlYXJjaCwgZmlsdGVyLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjb21wYW5pZXMuICBVc3VhbGx5IHRoaXMgaXMgdGhlIGNvbnRhY3QgaW5mb3JtYXRpb24gYW5kIGEgbG9nbywgYnV0IGl0IGlzIGZsZXhpYmlsZSBlbm91Z2ggdG8gYWxsb3cgZm9yIGV4dGVuZGFibGUgZmllbGRzLCBhbmQgZGlzY3JpbWluYXRpbmcgcHVibGljIGZyb20gcHJpdmF0ZSBkYXRhLjwvcD4KPHA+VGhpcyBtb2R1bGUgY291bGQgYmUgdXNlZCBmb3IgYSB2YXJpZXR5IG9mIHB1cnBvc2VzLiBJbmNsdWRpbmcgYSByZWdpb25hbCB0b3VyaXNtIHNpdGUsIGEgc3VwcGxpZXJzIGxpc3QsIG9yIGEgY29udGFjdCBsaXN0LiAgSXQgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgaXQgY291bGQgYmUgcmUtdXNlZCBmb3IgbWFueSBkaWZmZXJlbnQgcHVycG9zZXMuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+VGhlIGVhc2llc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyBieSBwbGFjaW5nIHRoZSA8Y29kZT57Q29tcGFueURpcmVjdG9yeX08L2NvZGU+IHRhZyBpbnRvIGVpdGhlciB5b3VyIHBhZ2UgdGVtcGxhdGUgb3IgcGFnZSBjb250ZW50LiAgWW91IHdvdWxkIHRoZW4gc3RhcnQgZWRpdGluZyByZWNvcmRzIGluIHRoZSAmcXVvdDtDb21wYW55IERpcmVjdG9yeSZxdW90OyBhZG1pbiBpbnRlcmZhY2UuICBFeHBsb3JlIHRoZSB2YXJpb3VzIHBhcmFtZXRlcnMgKGRlc2NyaWJlZCBiZWxvdykgZm9yIHdheXMgdG8gY3VzdG9taXplIHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPkN1c3RvbSBGaWVsZHMKICAgIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGV4dGVuZCB0aGUgYmFzaWMgZGF0YWJhc2UgbW9kZWwgYnkgYWRpbmcgY3VzdG9tIGZpZWxkcyB0byB0aGUgc3RydWN0dXJlLiAgVGhlcmUgYXJlIG51bWVyb3VzIGRpZmZlcmVudCB0eXBlcyBvZiBjdXN0b20gZmllbGRzLCBhbmQgc29tZSBtb2R1bGVzIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgdHlwZXMuICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIG1hcmsgY3VzdG9tZiBpZWxkcyBhcyBlZGl0YWJsZSBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlIG9ubHksIG9yIGFzIG5vbiBwdWJsaWMgKG5vdCBhdmFpbGFibGUgZm9yIGZyb250ZW5kIGRpc3BsYXkpLjwvcD4KICA8L2xpPgogIDxsaT5HZW9sb2NhdGluZwogICAgPHA+SWYgYSBzdWl0YWJsZSBtb2R1bGUgPGVtPihDR0dvb2dsZU1hcHMgb3IgQ0dHb29nbGVNYXBzMik8L2VtPiBpcyBpbnN0YWxsZWQsIHRoZW4gdGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBjb252ZXJ0aW5nIG1hbnkgYWRkcmVzcyBmb3JtYXRzIHRvIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgc28gdGhhdCBtYXBzIGNhbiBiZSBidWlsdCBmcm9tIHRoZSBDb21wYW55RGlyZWN0b3J5IGRhdGEuPC9wPgogIDwvbGk+CiAgPGxpPktNTCBJbXBvcnQKICAgIDxwPlRoaXMgbW9kdWxlIGNhbiBpbXBvcnQgYmFzaWMgY29tcGFueSBkYXRhIGZyb20gS01MIGZvcm1hdC48L3A+CiAgPC9saT4KICA8bGk+RmxleGlibGUgQVNDSUkgSW1wb3J0IGFuZCBFeHBvcnQKICAgIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGltcG9ydCBjb21wYW5pZXMsIGZpZWxkIGRlZmluaXRpb25zLCBhbmQgY2F0ZWdvcmllcyBmcm9tIGEgZmxleGlibGUgKHNlbWktdXNlci1kZWZpbmFibGUpIEFTQ0lJIGZvcm1hdC48L3A+CiAgPC9saT4KICA8bGk+RmxleGlibGUgQ2F0ZWdvcml6YXRpb24KICAgIDxwPlRoZSBzaXRlIGFkbWluaXN0cmF0b3IgY2FuIGNyZWF0ZSBhIGhpZXJhcmNoaWNhbCBkYXRhIHN0cnVjdHVyZS4gIEVhY2ggQ29tcGFueSByZWNvcmQgY2FuIGJlIGFzc29jaWF0ZWQgdG8gYSBwbGFjZSBpbnNpZGUgdGhhdCBoaWVyYXJjaGljYWwgZGF0YSBzdHJ1Y3R1cmUgdG8gYWxsb3cgZm9yIGZpbHRlcmluZywgb3IgZHJpbGwgZG93biBzZWFyY2VzLjwvcD4KICAgIDxwPkFkZGl0aW9uYWxseSwgdGhlIHNpdGUgYWRtaW5pc3RyYXRvciBjYW4gY3JlYXRlIGEgbGlzdCBvZiAmcXVvdDtjYXRlZ29yaWVzJnF1b3Q7LiAgRWFjaCBjb21wYW55IGxvY2F0aW9uIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUgY2F0ZWdvcmllcy4gIFRoaXMgaXMgdXNlZnVsIGZvciBzZWFyY2hpbmcgYW5kIGZpbHRlcmluZyBmdW5jdGlvbmFsaXR5LiAgRm9yIGRpc3BsYXkgcHVycG9zZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGVhY2ggY2F0ZWdvcnkgKHRocmVlIHVzZXIgZGVmaW5lZCBhcmVhcykuICBBbmQgd2hlbiBlZGl0aW5nIGEgY29tcGFueSByZWNvcmQsIGNhdGVnb3J5IGluZm9ybWF0aW9uIGNhbiBiZSBvdmVycmlkZW4gZm9yIGVhY2ggcmVjb3JkLjwvcD4KICA8L2xpPgogIDxsaT5GbGV4aWJsZSBVUkwgbWVjaGFuaXNtczwvbGk+CiAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgZm9yIHRoZSBzaXRlIGFkbWluaXN0cmF0b3IgdG8gc3BlY2lmeSBhIHVuaXF1ZSBTRU8gZnJpZW5kbHkgVVJMIGZvciB0aGUgZGV0YWlsIHZpZXcgb2YgZWFjaCBjb21wYW55IHJlY29yZC4gIFRoaXMgVVJMIHdvcmtzIGluIGFkZGl0aW9uIHRvIHRoZSBvdGhlciBTRU8gZnJpZW5kbHkgbWVjaGFuaXNtcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFjY2VzcyBhIGNvbXBhbnkgZGV0YWlsIHJlY29yZC48L3A+CiAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFdoZW4gdXNpbmcgU0VPIGZyaWVuZGx5IFVSTFMgaXQgaXMgaW1wb3J0YW50IHRvIHVzZSBjYW5vbmljYWwgVVJMUy48L3A+CiAgPGxpPkZyb250ZW5kIEVkaXRpbmcKICAgIDxwPlRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSBpcyBjYXBhYmxlIG9mIGFsbG93aW5nIGF1dGhvcml6ZWQgZnJvbnRlbmQgdXNlcnMgPGVtPihzZWUgdGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlKTwvZW0+IHRvIGFkZCBhbmQgbWFuYWdlIChldmVuIGltcG9ydCBmcm9tIENTVikgQ29tcGFueSByZWNvcmRzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGJ1aWxkaW5nIGEgZGlyZWN0b3J5IHNpdGUsIGZvciBleGFtcGxlIGZvciBhIHJlZ2lvbmFsIHRvdXJpc20gYm9hcmQgd2hlcmUgaW5kaXZpZHVhbCBzdWJzY3JpYmVycyBtYXkgbWFuYWdlIHRoZSB2aXNpYmxlIHB1YmxpYyBpbmZvcm1hdGlvbiBmb3Igb25lIG9yIG1vcmUgY29tcGFuaWVzLjwvcD4KICA8L2xpPgogIDxsaT5OdW1lcm91cyBkaXNwbGF5IG1lY2hhbmlzbXM8L2xpPgogIDxsaT5BZHZhbmNlZCBTZWFyY2ggYW5kIEZpbHRlcmluZyBDYXBhYmlsaXRpZXMKICAgIDxwPlNlYXJjaCBjYXBhYmlsdGllcyBjYW4gYmUgY3VzdG9taXplZCBpbiBudW1lcm91cyB3YXlzIGFuZCBhbHNvIGluY2x1ZGVzIHRoZSBwb3NzaWJsaXR5IGZvciBsb2NhdGlvbiBhd2FyZSBiYXNlZCBzZWFyY2hlcyBhbmQgcG9zdGNvZGUgYmFzZWQgc2VhcmNoZXMgPGVtPihSZXF1aXJlcyB0aGUgUG9zdENvZGUgbW9kdWxlKTwvZW0+PC9wPgogIDwvbGk+CiAgPGxpPkZsZXhpYmxlIFRlbXBsYXRpbmcgQ2FwYWJpbGl0aWVzPC9saT4KPC91bD4KCgo8aDM+U21hcnR5IFBsdWdpbnM8L2gzPgo8cD5UaGlzIG1vZHVsZSBzaGFyZXMgbnVtZXJvdXMgc21hcnR5IHBsdWdpbnMgdG8gbWFrZSB0ZW1wbGF0ZSBkZXNpZ24gYW5kIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IHNpbXBsZXI6PC9wPgo8dWw+CjxsaT48c3Ryb25nPntjZF9oaWVyYnJlYWRjcnVtYiBoaWVyPWludCBbb3B0aW9uc119PC9zdHJvbmc+IC0gQ3JlYXRlIGEgc2VyaWVzIG9mIGxpbmtzIHJlcHJlc2VudGluZyB0aGUgYnJlYWRjcnVtYiB0byBhIHBhcnRpY3VsYXIgaGllcmFyY2h5IGlkLiAgRWFjaCBsaW5rIHdpbGwgZ2VuZXJhdGUgYSBzdW1tYXJ5IHZpZXcgb2YgY29tcGFuaWVzIGluIHRoYXQgaGllcmFyY2h5Ljxici8+T3B0aW9uczoKICA8dWw+CiAgICA8bGk+aGllcj1pbnRlZ2VyIC0gPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPiAtIFRoZSBDb21wYW55RGlyZWN0b3J5IGhpZXJhcmNoeSBpZCB0byBidWlsZCBhIGJyZWFkY3J1bWIgdG8uPC9saT4KICAgIDxsaT5wYWdlPXN0cmluZyAtIEEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgZm9yIHRoZSBzdW1tYXJ5IHZpZXcuICBJZiBub25lIGlzIHNwZWNpZmllZCwgdGhlIGN1cnJlbnQgcGFnZSBpcyB1c2VkLjwvbGk+CiAgICA8bGk+ZGVsaW09c3RyaW5nIC0gVGhlIGRlbGltaXRlciBiZXR3ZWVuIGVhY2ggc3RyaW5nLiAgQnkgZGVmYXVsdCBhIHBpcGUgY2hhcmFjdGVyIHN1cnJvdW5kZWQgYnkgc3BhY2VzIGlzIHVzZWQuPC9saT4KICAgIDxsaT5jbGFzcz1zdHJpbmcgLSBBbiBvcHRpb25hbCBjbGFzcyAob3Igc2VyaWVzIG9mIGNsYXNzZXMpIHRvIGFzc2lnbiB0byBlYWNoIGxpbmsuPC9saT4KICAgIDxsaT5yYXc9Ym9vbGVhbiAtIElmIGVuYWJsZWQsIGFuIGFycmF5IG9mIGhpZXJhcmNoeSBkYXRhIHJlcHJlc2VudGluZyB0aGUgcGF0aCB0byB0aGUgaGllcmFyY2h5IHNwZWNpZmllZCB3aWxsIGJlIHJldHVybmVkLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBhbGxvdyBidWlsZGluZyB5b3VyIG93biBsaW5rcy4gIElmIHRoaXMgaXMgc3BlY2lmaWVkLCB0aGUgZGVsaW0gYW5kIGNsYXNzIGFyZ3VtZW50cyBhcmUgaWdub3JlZCBhcyBsaW5rcyB3aWxsIG5vdCBiZSByZXR1cm5lZC48L2xpPgogICAgPGxpPmFzc2lnbj1zdHJpbmcgLSBUaGUgbmFtZSBvZiBhIHNtYXJ0eSB2YXJpYWJsZSB0byBhc3NpZ24gdGhlIG91dHB1dCB0by48L2xpPgogIDwvdWw+CiAgPHA+QWRkaXRpb25hbGx5LCB0aGlzIHRhZyBhY2NlcHRzIGFueSBwYXJhbWV0ZXJzIHRoYXQgdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3IHdpbGwgYWNjZXB0IChpLmU6IHNvcnRpbmcgb3B0aW9ucywgcGFnZSBsaW1pdCkgYW5kIHRoZXkgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHVybCBidWlsZGluZyBwcm9jZXNzLjwvcD4KICA8cD5FeGFtcGxlIDxlbT4oc3VpdGFibGUgZm9yIGEgZGV0YWlsIHRlbXBsYXRlKTwvZW0+OiB7Y2RfaGllcmJyZWFkY3J1bWIgaGllcj0kZW50cnktPmhpZXJfaWQgaGllcl9jaGlsZHJlbj0xIHBhZ2VsaW1pdD01MH08L2NvZGU+PC9wPgo8L2xpPgo8bGk+PHN0cm9uZz57Y2Rfc2VsY2F0ZWdvcnkgW29wdGlvbnNdfTwvc3Ryb25nPiAtIENyZWF0ZSBhIGZvcm0gZHJvcGRvd24gb3IgbXVsdGktc2VsZWN0IGFyZWEgZm9yIENvbXBhbnlEaXJlY3RvcnkgY2F0ZWdvcmllcy48YnIvPk9wdGlvbnM6CiAgPHVsPgogICAgIDxsaT5wcmVmaXg9c3RyaW5nIC0gUHJvdmlkZSBhIHByZWZpeCB0byB0aGUgc2VsZWN0IGVsZW1lbnQgbmFtZS48L2xpPgogICAgIDxsaT5uYW1lPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBuYW1lLjwvbGk+CiAgICAgPGxpPmlkPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBpZC48L2xpPgogICAgIDxsaT5zZWxlY3RlZCAtIEFuIGFycmF5LCBvciBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yeSBpZHMgdG8gaW5kaWNhdGUgd2hpY2ggaXRlbXMgc2hvdWxkIGJlIHNlbGVjdGVkLjwvbGk+CiAgICAgPGxpPmNsYXNzPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBjbGFzcy48L2xpPgogICAgIDxsaT5tdWx0aXBsZT1hbnl0aGluZyAtIElmIHNldCwgaW5kaWNhdGVzIHRvIGFsbG93IHNlbGVjdGluZyBtdWx0aXBsZSB2YWx1ZXMgaW5zdGVhZCBvZiBhIHNpbmdsZSB2YWx1ZS48L2xpPgogICAgIDxsaT5zaXplPWludGVnZXIgLSBJZiBtdWx0aXBsZSBpcyBzZXQgaW5kaWNhdGVzIHRoZSBzaXplIG9mIHRoZSBtdWx0aS1zZWxlY3QgYXJlYS48L2xpPgogICAgIDxsaT5hc3NpZ249c3RyaW5nIC0gQXNzaWduIHRoZSBnZW5lcmF0ZWQgWEhUTUwgb3V0cHV0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4KICA8L3VsPgogIDxwPkV4YW1wbGU6IDxjb2RlPntjZF9zZWxjYXRlZ29yeSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2NkX2NhdGVnb3J5JyBzZWxlY3RlZD0kY2RfY2F0ZWdvcnl9PC9jb2RlPjwvcD4KPC9saT4KPGxpPjxzdHJvbmc+e2NkX3NlbGhpZXJhcmNoeSBbb3B0aW9uc119PC9zdHJvbmc+IC0gUHJvdmlkZSBhIGRyb3Bkb3duIGNvbnRyb2wgZm9yIHNlbGVjdGluZyBhIENvbXBhbnlEaXJlY3RvcnkgSGllcmFyY2h5Ljxici8+T3B0aW9uczoKICA8dWw+CiAgICA8bGk+cHJlZml4PXN0cmluZyAtIEEgcHJlZml4IGZvciB0aGUgc2VsZWN0IGVsZW1lbnRzIG5hbWUuPC9saT4KICAgIDxsaT5pZD1zdHJpbmcgLSBUaGUgc2VsZWN0IGVsZW1lbnQgaWQuPC9saT4KICAgIDxsaT5uYW1lPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBuYW1lLjwvbGk+CiAgICA8bGk+c2VsZWN0ZWQ9aW50ZWdlciAtIFRoZSBzZWxlY3RlZCBoaWVyYXJjaHkgaWQ8L2xpPgogICAgPGxpPm5vbmU9aW50ZWdlciAtIFdldGhlciAmcXVvdDtub25lJnF1b3Q7IGlzIGEgdmFsaWQgb3B0aW9uIGluIHRoZSBzZWxlY3QgZWxlbWVudC48L2xpPgogICAgPGxpPmFzc2lnbj1zdHJpbmcgLSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBYSFRNTCBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogIDwvdWw+CiAgPHA+RXhhbXBsZTogPGNvZGU+e2NkX3NlbGhpZXJhcmNoeSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2NkX2hpZXJhcmNoeScgc2VsZWN0ZWQ9JG15X2hpZXJ9PC9jb2RlPjwvcD4KPC9saT4KICA8bGk+PHN0cm9uZz57Y2RfaW5pdGpzIFthc3NpZ249c3RyaW5nXX08L3N0cm9uZz4gLSBSZXR1cm4gdGFncyB0byBpbmNsdWRlIG5lY2Vzc2FyeSBqYXZhc2NyaXB0IGZvciBhZHZhbmNlZCBmcm9udGVuZCBlZGl0aW5nIGZ1bmN0aW9uYWxpdHkuCiAgPHA+VGhpcyB0YWcgaXMgdHlwaWNhbGx5IHBsYXNlZCBpbiB0aGUgbWV0YWRhdGEgc2VjdGlvbiBvZiBwYWdlcyB3aGVyZSBhZHZhbmNlZCBjb21wYW55ZGlyZWN0b3J5IGZyb250ZW5kIGVkaXRpbmcgZnVuY3Rpb25hbGl0eSBpcyByZXF1aXJlZC4gIEl0IGdlbmVyYXRlcyB0aGUgJmx0O3NjcmlwdCZndDsgdGFncyBhbmQgb3RoZXIgamF2YXNjcmlwdCB0byBlbmFibGUgc29tZSBhamF4IGZ1bmN0aW9uYWxpdHkuPC9wPgogIDwvbGk+CjxsaT48c3Ryb25nPntjZF9nZXRjb21wYW55IGlkPWludGVnZXIgW2Fzc2lnbj1zdHJpbmddfTwvc3Ryb25nPiAtIFJldHVybiBhbiBvYmplY3QgZmlsbGVkIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgY29tcGFueTxici8+T3B0aW9uczoKICA8dWw+CiAgPGxpPjxzdHJvbmc+aWQ9aW50ZWdlcjwvc3Ryb25nPiAtIFRoZSBjb21wYW55IGlkIChyZXF1aXJlZCkuPC9saT4KICA8bGk+ZGV0YWlscGFnZT1zdHJpbmcgLSAob3B0aW9uYWwpIERldGFpbHBhZ2UgYWxpYXMgb3IgaWQuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgcHJlZmVyZW5jZSB2YWx1ZSB3aWxsIGJlIHVzZWQuPC9saT4KICA8bGk+YXNzaWduPXN0cmluZyAtIChvcHRpb25hbCkgQXNzaWduIHRoZSBnZW5lcmF0ZWQgWEhUTUwgb3V0cHV0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4KICA8L3VsPgogIDxwPkV4YW1wbGU6IHtjZF9nZXRjb21wYW55IGlkPSRjb21wYW55X2lkIGFzc2lnbj0ndG1wJ30mbHQ7cHJlJmd0O3skdG1wfEBwcmludF9yfSZsdDsvcHJlJmd0OzwvcD4KPC9saT4KPGxpPjxzdHJvbmc+e2NkX3NlYXJjaHN0YXRzIGxpc3Q9YXJyYXkgW2RheXM9aW50ZWdlcl0gW2Fzc2lnbj1zdHJpbmddfTwvc3Ryb25nPgogIDxwPkNvbGxlY3QgYSBjb3VudCBvZiBzZWFyY2hlcyBmb3IgZWFjaCBvZiB0aGUgY29tcGFuaWVzIHNwZWNpZmllZCBpbiB0aGUgbGlzdCBwYXJhbWV0ZXJzLiAgVGhpcyB0YWcgaXMgdHlwaWNhbGx5IHVzZWQgaW4gdGhlIGZyb250ZW5kbGlzdCB0ZW1wbGF0ZSB0byBzaG93IGEgY29tcGFueSBvd25lciBhIGNvdW50IG9mIHRoZSBudW1iZXIgb2Ygc2VhcmNoZXMgdGhhdCBoaXMgY29tcGFuaWVzIHdlcmUgbWF0Y2hlZCBmb3Igd2l0aGluIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMuPC9wPgogIE9wdGlvbnM6CiAgPHVsPgogIDxsaT48c3Ryb25nPmxpc3Q9YXJyYXk8L3N0cm9uZz4gLSBBbiBhcnJheSBvZiBpbnRlZ2VycyBjb250YWluaW5nIGNvbXBhbnkgaWRzLjwvbGk+CiAgPGxpPmRheXM9aW50ZWdlciAtIChvcHRpb25hbCxkZWZhdWx0ID0gMzY1KSBTcGVjaWZ5IHRoZSBudW1iZXIgb2YgZGF5cyB0aGF0IHNlYXJjaCBzdGFpc3RpY3Mgc2hvdWxkIGJlIGdhdGhlcmVkIGZvci48L2xpPgogIDxsaT5hc3NpZ249c3RyaW5nIC0gKG9wdGlvbmFsKSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBhcnJheSBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogIDwvdWw+CiAgPHA+RXhhbXBsZTogeyRsaXN0PVs1LDEwLDIwLDM1XX17Y2Rfc2VhcmNoc3RhdHMgbGlzdD0kbGlzdCBkYXlzPTkwIGFzc2lnbj0ndG1wJ30mbHQ7cHJlJmd0O3skdG1wfEBwcmludF9yfSZsdDsvcHJlJmd0OzwvcD4KPC9saT4KPGxpPjxzdHJvbmc+e2NkX2dldGNhdGVnb3J5IGNhdGVnb3J5PWludCBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgPHA+VGhpcyB0YWcgcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBjYXRlZ29yeSBpZC4gIFVzZWZ1bCBpbiBzdW1tYXJ5IHZpZXdzIGZvciBhIHNwZWNpZmljIGNhdGVnb3J5LjwvcD4KICA8cD5Vc2FnZTo8L3A+CiAgPHByZT48Y29kZT57aWYgaXNzZXQoJGZpbHRlci5jYXRlZ29yeWlkKX0Ke2NkX2dldGNhdGVnb3J5IGNhdGVnb3J5PSRjYXRlZ29yeWlkIGFzc2lnbj0nY2F0J30KJmx0O2g0Jmd0O1RoZSBjYXRlZ29yeSBuYW1lIGlzOiB7JGNhdC5uYW1lfSZsdDsvaDQmZ3Q7CnsvaWZ9PC9jb2RlPjwvcHJlPgo8L2xpPgo8L3VsPgoKPGgzPlRoZSBGaWx0ZXIgT2JqZWN0PC9oMz4KPHA+VGhlIHN1bW1hcnkgdmlldyBtYWtlcyB1c2Ugb2YgYW4gYWR2YW5jZWQgZmlsdGVyIG9iamVjdCB0aGF0IGNvbnRhaW5zIGFsbCBvZiB0aGUgY3JpdGVyaWEgdXNlZCB3aGVuIGJ1aWxkaW5nIHRoZSB2aWV3LiAgVGhpcyBmaWx0ZXIgb2JqZWN0IGlzIHByb3ZpZGVkIHRvIHNtYXJ0eSBvbiBkaXNwbGF5IHRvIGJlIHVzZWQgd2hlbiBidWlsZGluZyBhZHZhbmNlZCBkaXNwbGF5cy4gIEl0IGJlaGF2ZXMgbXVjaCBsaWtlIGEgc21hcnR5IGFycmF5LCBhbmQgY29udGFpbnMgbnVtZXJvdXMgZmllbGRzOjwvcD4KPHVsPgogIDxsaT48c3Ryb25nPm5hbWU8L3N0cm9uZz4KICAgIDxwPlRoZSBuYW1lIHN0cmluZyB1c2VkIGZvciBmaWx0ZXJpbmcgcmVzdWx0cy48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5waHJhc2U8L3N0cm9uZz4KICAgIDxwPlRoZSBwaHJhc2Ugc3RyaW5nIHVzZWQgZm9yIGZpbHRlcmluZyByZXN1bHRzLjwvcD4KICA8L2xpPgogIDxsaT48c3Ryb25nPnNvcnRieTwvc3Ryb25nPgogICAgPHA+VGhlIHNvcnRpbmcgdXNlZC48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5zb3J0b3JkZXI8L3N0cm9uZz4KICAgIDxwPlRoZSBzb3J0aW5nIHVzZWQuPC9wPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+Y2F0ZWdvcnk8L3N0cm9uZz4KICAgIDxwPkEgY2F0ZWdvcnkgbmFtZS48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5jYXRlZ29yeWlkPC9zdHJvbmc+CiAgICA8cD5BbiBpbnRlZ2VyIGNhdGVnb3J5IGlkIChpZiBhbnkpIHVzZWQgZm9yIGZpbHRlcmluZy48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5oaWVyPC9zdHJvbmc+CiAgICA8cD5UaGUgaGllcmFyY2h5IChpZiBhbnkpIHVzZWQgZm9yIGZpbHRlcmluZy48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5ub2NoaWxkcmVuPC9zdHJvbmc+CiAgICA8cD5XZXRoZXIgb3Igbm90IGNoaWxkIGNhdGVnb3JpZXMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIGZpbHRlcmluZy48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5hZGRyZXNzPC9zdHJvbmc+CiAgICA8cD5UaGUgYWRkcmVzcyAoaWYgYW55KSB1c2VkIGZvciBmaWx0ZXJpbmcuPC9wPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+bGF0PC9zdHJvbmc+CiAgICA8cD5UaGUgbGF0aXR1ZGUgKGlmIGFueSkgdXNlZCBmb3IgZmlsdGVyaW5nLjwvcD4KICA8L2xpPgogIDxsaT48c3Ryb25nPmxvbmc8L3N0cm9uZz4KICAgIDxwPlRoZSBsb25naXR1ZGUgKGlmIGFueSkgdXNlZCBmb3IgZmlsdGVyaW5nLjwvcD4KICA8L2xpPgogIDxsaT48c3Ryb25nPnJhZGl1czwvc3Ryb25nPgogICAgPHA+VGhlIHJhZGl1cyAoaWYgYW55KSB1c2VkIGZvciBmaWx0ZXJpbmcuPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+RmllbGRzPC9oMz4KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBkeW5hbWljYWxseSBleHRlbmQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgc3lzdGVtIGJ5IGFkZGluZyBmaWVsZHMgdG8gYXNzb2NpYXRlIHdpdGggZWFjaCBkYXRhIHJlY29yZC4gIFRoZXNlIGZpZWxkcyBjYW4gYmUgYWRkcmVzc2VkIGluIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MuICBUaGUgZmllbGRzIGNhbiBiZSBlZGl0ZWQgaW4gdGhlIHZhcmlvdXMgZm9ybXMgYW5kIHNlYXJjaGVkLjwvcD4KICA8cD5WYXJpb3VzIG1vZHVsZXMgY2FuIHByb3ZpZGUgZGlmZmVyZW50IGZpZWxkIHR5cGVzIHRvIHRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZS4gIGkuZTogV2hlbiB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCBhbmQgcHJvcGVybHkgY29uZmlndXJlZCwgYW4gJnF1b3Q7QWN0aXZpdHkmcXVvdDsgZmllbGQgdHlwZSBpcyBhdmFpbGFibGUuICBXaGVuIGVpdGhlciBDR0dvb2dsZU1hcHMgb3IgQ0dHb29nbGVNYXBzMiBhcmUgaW5zdGFsbGVkLCBhbiAmcXVvdDtpY29uJnF1b3Q7IGZpZWxkIHR5cGUgaXMgYXZhaWxhYmxlLiZxdW90OwogIDxwPkluIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzIHRoZSBmaWVsZHMgdGhhdCBhcmUgdmFsaWQgZm9yIGEgY29tcGFueSBhcmUgYXZhaWxhYmxlIHZpYSBzbWFydHkgaW4gdGhlIHskZW50cnktPmZpZWxkc30gYXNzb2NpYXRpdmUgYXJyYXkuICBUaGUga2V5cyB0byB0aGlzIGFycmF5IGFyZSB0aGUgZmllbGQgbmFtZXMsIGFuZCB0aGUgdmFsdWVzIGFyZSBvYmplY3RzIHRoYXQgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmllbGQsIGluY2x1ZGluZyBpdHMgdmFsdWUocykuPC9wPgogIDxwPlRvIHNlZSB3aGF0IGZpZWxkcyBhcmUgYXZhaWxhYmxlLCBhbmQgdGhlIHZhbHVlcyBvZiB0aGUgdmFyaW91cyBvYmplY3RzIHlvdSBjYW4gYWRkIHRoaXMgdG8geW91ciBzbWFydHkgdGVtcGxhdGU6PC9wPgogIDxwcmU+PGNvZGU+Jmx0O3ByZSZndDt7JGVudHJ5LT5maWVsZHN8QHByaW50X3J9Jmx0Oy9wcmUmZ3Q7PC9jb2RlPjwvcHJlPgogIDxwPlRvIHNlZSB0aGUgZGF0YSBhdmFpbGFibGUgZm9yIGEgc3BlY2lmaWMgZmllbGQgeW91IGNhbiBhZGQgdGhpcyA8ZW0+KHRlbXBvcmFyaWx5KTwvZW0+IHRvIHlvdXIgc21hcnR5IHRlbXBsYXRlOjwvcD4KICA8cHJlPjxjb2RlPiZsdDtwcmUmZ3Q7eyRlbnRyeS0+ZmllbGRzPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4uRklFTEROQU1FPC9zcGFuPnxAcHJpbnRfcn0mbHQ7L3ByZSZndDs8L2NvZGU+PC9wcmU+CiAgPHA+VG8gb3V0cHV0IHRoZSB2YWx1ZSBvZiBhIHNpbmdsZSBmaWVsZCB5b3UgY2FuIGFkZHRoaXMgdG8geW91ciBzbWFydHkgdGVtcGxhdGU6PC9wPgogIDxwcmU+PGNvZGU+Jmx0O3ByZSZndDt7JGVudHJ5LT5maWVsZHM8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPi5GSUVMRE5BTUU8L3NwYW4+LT52YWx1ZSZsdDsvcHJlJmd0OzwvY29kZT48L3ByZT4KCjxoMz5BbGJ1bXM8L2gzPgogIDxwPlRoZSBhbGJ1bSBmaWVsZCB0eXBlIGFsbG93cyBhc3NvY2lhdGluZyBtdWx0aXBsZSBpbWFnZXMgd2l0aCBhIHNpbmdsZSBjb21wYW55IGVudHJ5LiAgVGhleSBhcmUgcmVwcmVzZW50ZWQgaW4gdGhlIHN1bW1hcnkgYW5kIGRldGFpbCB0ZW1wbGF0ZXMgYXMgYSBzaW1wbGUgYXJyYXkgb2YgZmlsZW5hbWVzLiAgWW91IG1heSBidWlsZCB5b3VyIG93biBkaXNwbGF5IG1lY2hhbmlzbSBmcm9tIHRoaXMuPC9wPgogIDxwPlRoZSBhbGJ1bSBmaWVsZCB0eXBlIGRvZXMgbm90IHByb3ZpZGUgYW55IGltYWdlIHByb2Nlc3NpbmcgY2FwYWJpbGl0aWVzLiAgSW1hZ2UgcHJvY2Vzc2luZyBzdWNoIGFzIHdhdGVybWFya2luZyBvciB0aHVtYm5haWxpbmcgY2FuIGJlIGRvbmUgYXQgdGhlIHRpZW0gb2YgZGlzcGxheSB3aXRoIGFuIGFkZG9uIG1vZHVsZSBsaWtlIENHU21hcnRJbWFnZS48L3A+CjxoND5TYW1wbGUgR2FsbGVyeTwvaDQ+CiAgPHA+VGhlIGNvZGUgYmVsb3cgaWxsdXN0cmF0ZXMgaG93IGEgc2ltcGxlIGFsYnVtIGNhbiBiZSBjcmVhdGVkIGZyb20gd2l0aGluIHRoZSBDb21wYW55RGlyZWN0b3J5IHN1bW1hcnkgb3IgZGV0YWlsIHRlbXBsYXRlLiAgVGhpcyBleGFtcGxlIHVzZXMgQ0dTbWFydEltYWdlIHRvIHNpemUgdGhlIHRodW1ibmFpbHMsIGFuZCB0YXJnZXQgaW1hZ2VzLCBhbmQgZ2l2ZXMgZWFjaCBsaW5rIGEgY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBhIGphdmFzY3JpcHQgcG9wdXAgd2luZG93LjwvcD4KPHByZT48Y29kZT4Ke2lmIGlzc2V0KDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+JGVudHJ5LT5maWVsZHMuQWxidW08L3NwYW4+KX0KICA8c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+e0pRdWVyeVRvb2xzIGFjdGlvbj1yZXF1aXJlIGxpYj1mYW5jeWJveH08L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+eyogc2VlIHRoZSBoZWxwIGZvciB0aGUgSlF1ZXJ5VG9vbHMgbW9kdWxlIGZvciBtb3JlIGluZm9ybWF0aW9uICp9PC9zcGFuPgogICZsdDtoMyZndDtHYWxsZXJ5Jmx0Oy9oMyZndDsKICAmbHQ7ZGl2IGNsYXNzPSJnYWxsZXJ5IiZndDsKICB7Zm9yZWFjaCBmcm9tPTxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+JGVudHJ5LT5maWVsZHMuQWxidW0tPnZhbHVlPC9zcGFuPiBpdGVtPSdpbWcnfQombHQ7YSBjbGFzcz0iZmFuY3lib3giIHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDExMHB4OyIgaHJlZj0iPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPntDR1NtYXJ0SW1hZ2Ugc3JjMT0kZW50cnktPmZpZWxkcy5BbGJ1bS0+cGljdHVyZV9wYXRoIHNyYzI9JGltZyB3aWR0aD01MDAgaGVpZ2h0PTUwMCBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+Ii8mZ3Q7PHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPntDR1NtYXJ0SW1hZ2Ugc3JjMT0kZW50cnktPmZpZWxkcy5BbGJ1bS0+cGljdHVyZV9wYXRoIHNyYzI9JGltZyB3aWR0aD0xMDAgaGVpZ2h0PTEwMH08L3NwYW4+Jmx0Oy9hJmd0OwogIHsvZm9yZWFjaH0KICAmbHQ7ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsiJmd0OyZsdDsvZGl2Jmd0OwogICZsdDsvZGl2Jmd0Owp7L2lmfQo8L2NvZGU+PC9wcmU+Cgo8aDM+UHJldHR5IFVSTFM8L2gzPgo8cD5QcmV0dHkgVVJMUyBhcmUgaWRlYWwgZm9yIHdlYnNpdGVzIHdoZXJlIHNlYXJjaCBlbmdpbmUgb3B0aW1pemF0aW9uIGlzIGEgcmVhbCBjb25jZXJuLiAgSXQgcHJvdmlkZXMgYSBzaG9ydGVyLCBmcmllbmRsaWVyIFVSTCB0aGF0IHNlYXJjaCBlbmdpbmVzIHdpbGwgdHJlYXQgYmV0dGVyLCBhbmQgdGhhdCBhcmUgZWFzaWVyIHRvIHNoYXJlLiAgSG93ZXZlciB0aGV5IGNvbWUgYXQgYSBjb3N0LiAgUGFydGljdWxhcmx5LCBtYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHNwZWNpZmllZCBpbiB0aGUgY2FsbCB0byBDb21wYW55RGlyZWN0b3J5LCB0aGF0IHNob3VsZCBiZSBwYXNzZWQgZG93biB0byBhbm90aGVyIHZpZXcgdmlhIGEgbGluayBjYW5ub3QgYmUgcGFzc2VkIG9uIGEgcHJldHR5IHVybC48L3A+CjxwPkZvciBleGFtcGxlLCB3aGVuIHByZXR0eSB1cmxzIGFyZSBub3QgZW5hYmxlZCBpdCBpcyBwb3NzaWJsZSB0byBjYWxsIHRoZSBicm93c2VjYXQgYWN0aW9uIGxpa2UgdGhpczoge0NvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWNhdGVnb3J5bGlzdCBzdW1tYXJ5dGVtcGxhdGU9c29tZXN1bW1hcnkgZGV0YWlsdGVtcGxhdGU9c29tZWRldGFpbCBkZXRhaWxwYWdlPW15ZGV0YWlscGFnZSBwYWdlbGltaXQ9MjUgc29ydGJ5PWNnYmxvZ19leHRyYSBzb3J0b3JkZXI9YXNjfS4gIE5vdyB3aGVuIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uIGdlbmVyYXRlcyBpdHMgZGlzcGxheSwgaW5jbHVkaW5nIGxpbmtzIHRvIHN1bW1hcnkgdmlld3MgZm9yIGVhY2ggY2F0ZWdvcnksIGl0IHNob3VsZCBwYXNzIHRoZSBzdW1tYXJ5dGVtcGxhdGUsZGV0YWlsdGVtcGxhdGUsZGV0YWlscGFnZSxwYWdsaW1pdCxzb3J0YnksIGFuZCBzb3J0b3JkZXIgcGFyYW1ldGVycyBhbG9uZyBvbiB0aGUgVVJMIEZvciB0aGUgcmVzdWx0aW5nIHN1bW1hcnkgdmlldyB0byB1c2UuICAgSG93ZXZlciwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHBhc3MgdGhlc2UgcGFyYW1ldGVycyBvbiBhIHByZXR0eSBVUkwsIGFuZCB0byBrZWVwIHRoZW0gJnF1b3Q7cHJldHR5JnF1b3Q7PC9wPgo8cD5UbyB0aGF0IGVuZCwgaXQgaXMgcG9zc2libGUgdG8gcHJvdmlkZSBkZWZhdWx0IHZhbHVlcyBmb3IgbWFueSBvZiB0aGVzZSBwYXJhbWV0ZXJzIHZpYSBDb21wYW55RGlyZWN0b3J5IGFkbWluIGNvbnNvbGUuICBUaGlzIGhvd2V2ZXIsIGxpbWl0cyB0aGUgZmxleGliaWxpdHkgb2YgdGhlIG1vZHVsZSBpbiBzb21lIHdheXMuICBBbm90aGVyIHBvc3NpYmlsaXR5IGlzIHRvIHVzZSB0aGUge2NnZV9tb2R1bGVfaGludH0gdGFnIHRvIHByb3ZpZGUgYmVoYXZpb3JhbCBoaW50cyB0byB0aGUgbW9kdWxlIG9uIGRlc3RpbmF0aW9uIHBhZ2VzLjwvcD4KCjxoMz5TZWN1cml0eTwvaDM+CjxwPkluIG9yZGVyIHRvIG1hbmFnZSB0aGUgY29tcGFuaWVzIGluc2lkZSB0aGlzIG1vZHVsZSwgdGhlIGFkbWluaXN0cmF0b3IgbXVzdCBoYXZlIHRoZSAnPGVtPk1vZGlmeSBDb21wYW55IERpcmVjdG9yeTwvZW0+JyBwZXJtaXNzaW9uLjwvcD4KPHA+SW4gb3JkZXIgdG8gZWRpdCB0aGUgYnVpbHQgaW4gdGVtcGxhdGVzIHRoYXQgY29udHJvbCB0aGUgbGF5b3V0IG9mIHRoZSBjb21wYW55ZGlyZWN0b3J5IGluZm9ybWF0aW9uLCB0aGUgYWRtaW5pc3RyYXRvciBuZWVkcyB0aGUgJzxlbT5Nb2RpZnkgVGVtcGxhdGVzPC9lbT4nIHBlcm1pc3Npb24uPC9wPgo8cD5UbyBhZGp1c3QgdGhlIHZhcmlvdXMgc2V0dGluZ3MsIHRoZSAnPGVtPk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzPC9lbT4nIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQuPC9wPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29tcGFueWRpciI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcm92aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTIsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuNTMuMTwvbGk+PGxpPkNHU2ltcGxlU21hcnR5ID0mZ3Q7IDEuOTwvbGk+PGxpPkpRdWVyeVRvb2xzID0mZ3Q7IDEuMy45PC9saT48bGk+Q0dTbWFydEltYWdlID0mZ3Q7IDEuMjE8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gRGV0ZXJtaW5lIHRoZSBwcmltYXJ5IGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGZvciB0aGlzIHBhcmFtZXRlciBhcmU6Cjx1bD4KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIERpc3BsYXkgYSBsaXN0IG9mIGNhdGVnb3JpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUsIGFuZCB0aGVuIHRvIGRldGFpbCBtb2RlLjwvbGk+CiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBEaXNwbGF5IGNvbXBhbmllcyBpbiBhIHN1bW1hcnkgbW9kZS48L2xpPgogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+CiAgPGxpPmZlX2VkaXQgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuIDxlbSBzdHlsZT1cImNvbG9yOiByZWQ7XCI+KGRlcHJlY2F0ZWQpPC9lbT48L2xpPgogIDxsaT5mZV9lZGl0MiAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPgogIDxsaT5mZV9lZGl0X2FsYnVtIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgYWxidW0gaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LgogICA8cD5UaGlzIGFjdGlvbiBpcyBub3JtYWxseSB0cmlnZ2VyZWQgZnJvbSB0aGUgZmVfZWRpdDIgYWN0aW9uIG9yIHRoZSBmcm9udGVuZCBsaXN0IGFjdGlvbi4gICBJdCBhY2NlcHRzIHRoZSBjb21wYW55aWQsY2RfZmRpZCxhbmQgb3B0aW9uYWxseSBvdGhlciBwYXJhbWV0ZXJzIHRvIHBlcmZvcm0gbnVtZXJvdXMgYWpheCBhY3Rpb25zLiAgIFNlZSB0aGUgc2FtcGxlIGNvbnRlbnQgZm9yIHRoZSBmcm9udGVuZCBhbGJ1bSB0ZW1wbGF0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+CiAgPC9saT4KICA8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPgogIDxsaT5zZWFyY2hzdGF0cyAtLSBEaXNwbGF5IGEgYmFzaWMgc3VtbWFyeSByZXBvcnQgb2YgcmVjZW50IHNlYXJjaGVzIGZvciBhIGNvbXBhbnkuICBUaGlzIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzIGlzIGVuYWJsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQsIGFuZCB3aGVuIHRoZSBjb2xsZWN0aW9uIG9mIHNlYXJjaCBzdGF0aXN0aWNzIGlzIGVuYWJsZWQuIE9ubHkgdGhlIG93bmVyIG9mIGEgY29tcGFueSBjYW4gdmlldyB0aGUgc2VhcmNoIHN0YXRpc3RpY3MgZm9yIGhpcyBjb21wYW5pZShzKQogIDxsaT5zZWFyY2ggIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBmb3Igc3BlY2lmaWMgY29tcGFuaWVzLjwvbGk+CiAgPGxpPmJyb3dzZWhpZXIgLS0gRGlzcGxheSBhIGxpc3Qgb2YgaGllcmFyY2hpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUgYW5kIHRoZW4gdG8gZGV0YWlsIG1vZGUuPC9saT4KICA8bGk+YWJjbGlzdCAtLSBEaXNwbGF5IGFuIGFscGhhYmV0aWMgZGlyZWN0b3J5IG9mIGNvbXBhbmllcy4gIFVzZXJzIGNhbiBuYXZpZ2F0ZSB0byBkaWZmZXJlbnQgZGlyZWN0b3JpZXMgYnkgdGhlIGZpcnN0IGluaXRpYWwgb2YgdGhlIGNvbXBhbnkgbmFtZSAob3Igb3RoZXIgY3JpdGVyaWEpLCBhbmQgcGFnaW5hdGUKPC91bD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNvbXBhbnlpZD0iIiAtIFJlcXVpcmVkIGZvciB0aGUgZnJvbnRlbmQgZWRpdGluZyBhbmQgZGV0YWlsIG1vZGVzLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoaWNoIGNvbXBhbnkgcmVjb3JkIHRvIGVkaXQgb3Igdmlldy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHN1bW1hcnlwYWdlPSIiIC0gQXBwbGljYWJsZSB0byB0aGUgZGV0YWlsLCBicm93c2VoaWVyLCBhbmQgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBwYWdlIGlkIG9yIGFsaWFzIG9mIHRoZSBwYWdlIHRvIHVzZSBmb3IgbGlua3MgZ2VuZXJhdGluZyBzdW1tYXJ5IHZpZXdzIHRoYXQgYXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBkZXRhaWwgdmlldy4gIGkuZTogY2F0ZWdvcnkgbGlua3M8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGRldGFpbHBhZ2U9IiIgLSBTcGVjaWZ5IGEgcGFnZSBhbGlhcyAoYnkgbmFtZSkgdG8gdXNlIGZvciBkaXNwbGF5aW5nIGEgZGV0YWlsIHJlY29yZC4gPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHRhZyBwYXJhbWV0ZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5bGlzdHRlbXBsYXRlPSIiIC0gU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoaWVybGlzdHRlbXBsYXRlPSIiIC0gU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBoaWVyYXJjaHkgbGlzdCB2aWV3LjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWJjbGlzdHRlbXBsYXRlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+YWJjbGlzdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHJlbmRlcmluZyB0aGUgb3V0cHV0PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzZWFyY2hmb3JtdGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkZXRhaWx0ZW1wbGF0ZT0iIiAtIFNwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZGV0YWlsIHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZnJvbnRlbmRmb3JtdGVtcGxhdGU9IiIgLSBTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGZyb250IGVuZCBjb21wYW55IGVkaXQgZm9ybS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZyb250ZW5kYWxidW10ZW1wbGF0ZT0iIiAtIFNwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGFuIGFsYnVtIG9mIGltYWdlcyBhc3NvY2lhdGVkIHdpdGggYSBjb21wYW55LjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZnJvbnRlbmRsaXN0dGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5mcm9udGVuZGxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgZnJvbnRlbmQgbGlzdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHJlbmRlcmluZyB0aGUgb3V0cHV0PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdW1tYXJ5dGVtcGxhdGU9IiIgLSBTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIHN1bW1hcnkgdmlldy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzZWFyY2hzdGF0c3RlbXBsYXRlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+JnF1b3Q7c2VhcmNoc3RhdHMmcXVvdDs8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIHN0YXRpc3RpY3MgcmVwb3J0IHRlbXBsYXRlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzaG93YWxsPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQsIHRoZW4gYWxsIGNhdGVnb3JpZXMgYXJlIG91dHB1dCAodGhlIGhpZXIsIGFuZCBjYXRlZ29yeSBvcHRpb25zIGFyZSBpZ25vcmVkKSwgZXZlbiBjYXRlZ29yaWVzIHdpdGggbm8gbWF0Y2hpbmcgY29tcGFuaWVzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzb3J0Ynk9ImNvbXBhbnlfbmFtZSIgLSBBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgo8bGk+aWQgLS0gVGhlIGludGVybmFsIGNvbXBhbnkgaWQ8L2xpPgogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPjwvbGk+CiAgPGxpPnBob25lPC9saT4KICA8bGk+ZmF4PC9saT4KICA8bGk+ZW1haWw8L2xpPgogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+CiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPgogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPnN0YXR1czwvbGk+CiAgPGxpPnJhbmRvbSAtLSBTb3J0IHRoZSBpdGVtcyByYW5kb21seS48L2xpPgogIDxsaT5mOmZpZWxkIG5hbWUgLS0gU29ydCBieSBwdWJsaWMgY3VzdG9tIGZpZWxkcy4gVGhlIG91dHB1dCB3aWxsIGJlIHNvcnRlZCBieSB0aGUgbmFtZWQgY3VzdG9tIGZpZWxkLjxici8+CiAgPGxpPm1vc3RjaGVja2lucyAtLSA8ZW0+KE9ubHkgd2hlbiBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkKTwvZW0+IFNvcnQgb3V0cHV0IGJ5IHRoZSBjb21wYW5pZXMgKGxvY2F0aW9ucykgdGhhdCBoYXZlIHRoZSBtb3N0IGNoZWNraW5zLjwvbGk+CiAgPGxpPm1vc3RmYXZvcml0ZSAtLSA8ZW0+KE9ubHkgd2hlbiBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkKTwvZW0+IFNvcnQgb3V0cHV0IGJ5IHRoZSBjb21wYW5pZXMgKGxvY2F0aW9ucykgdGhhdCBoYXZlIHRoZSBtb3N0IGZhdm9yaXRlcy48L2xpPgogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFlvdSBtYXkgbmVlZCB0byB1c2UgcXVvdGVzIGlmIHRoZSBmaWVsZCBuYW1lIGhhcyBzcGFjZXMuPGJyLz4KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBUaGUgZmllbGQgc3BlY2lmaWVkIG11c3QgYmUgbWFya2VkIGFzIHB1YmxpYy4KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBXaGVuIHVzaW5nIGN1c3RvbSBmaWVsZCBzb3J0aW5nLCBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGZsYWcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgdG8gaW5kaWNhdGUgdGhhdCBpbnRlZ2VyIHNvcnRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4gIGkuZTogPGNvZGU+c29ydGJ5PWY6Y3VzdG9tX29yZGVyaW5nOmk8L2NvZGU+PGJyLz48L2xpPgo8L3VsPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydG9yZGVyPSJhc2MiIC0gU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+CiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzZWFyY2hhZGRyZXNzPSIwIiAtIFdoZW4gZG9pbmcgYSBwb3N0YWwgY29kZSBzZWFyY2gsIHVzaW5nIHRoZSBzZWFyY2ggYWN0aW9uLCBpZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUgYWRkcmVzcyBmaWVsZCB3aWxsIGFsc28gYmUgc2VhcmNoZWQgZm9yIHRoZSBtYXRjaGluZyBzdHJpbmc8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHBvc3RhbGNoYXJzPSIwIiAtIFdoZW4gZG9pbmcgYSBwb3N0YWwgY29kZSBzZWFyY2gsIHVzaW5nIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIG9wdGlvbiBhbGxvd3MgbGltaXRpbmcgdGhlIGVmZmVjdGl2ZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvbmYgdGhlIHBvc3RhbCBjb2RlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoaWVyPSIiIC0gQXBwbGljYWJsZSB0byB0aGUgPGVtPmRlZmF1bHQ8ZW0+LCA8ZW0+c2VhcmNoPC9lbT4sIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPiwgYW5kIDxlbT5icm93c2VoaWVyPC9lbT4gYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyB0aGUgb3V0cHV0IGluIHZhcmlvdXMgd2F5czo8YnIvPgo8dWw+CiAgPGxpPkluIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoZSB2YWx1ZSBmb3IgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncyBvciBpbnRlZ2Vycy4gIEludGVnZXIgdmFsdWVzLCBhbmQgV2lsZGNhcmQgc3Vic3RpdHV0aW9uIGlzIGFjY2VwdGVkIGlkZW50aWNhbGx5IHRvIHRoZSAmcXVvdDtjYXRlZ29yeSZxdW90OyBwYXJhbWV0ZXIuPC9saT4KICA8bGk+SW4gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoZSB2YWx1ZSBmb3IgdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBsaW1pdCB0aGUgZGlzcGxheSBvZiBjYXRlZ29yaWVzIGJ5IGNvbXBhbmllcyBpbiB0aGUgbmFtZWQgaGllcmFyY2hpZXMuICBJbnRlZ2VyIHZhbHVlcywgYW5kIHdpbGRjYXJkIHN1YnN0aXR1dGlvbiBpcyBhY2NlcHRlZCBpZGVudGljYWxseSB0byB0aGUgJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgcGFyYW1ldGVyLjwvbGk+CiAgPGxpPkluIHRoZSBicm93c2VoaWVyIGFjdGlvbiwgYSBzaW5nbGUgc3RyaW5nIG9yIGludGVnZXIgdmFsdWUgaXMgYWNjZXB0ZWQgdG8gc3VwcGx5IHRoZSBzdGFydGluZyBwb2ludCBhdCB3aGljaCB0byBkaXNwbGF5IHRoZSBoaWVyYXJjaHkuICBPbmx5IHRoZSBkZXNjZW5kZW50IGhpZXJhcmNoaWVzIG9mIHRoZSBuYW1lZCBoaWVyYXJjaHkgd2lsbCBiZSBkaXNwbGF5ZWQuICBJZiBhIHN0cmluZyBpcyBzcGVjaWZpZWQsIHRoZSBmaXJzdCBoaWVyYXJjaHkgd2l0aCBhIG1hdGNoaW5nIG5hbWUgaXMgdXNlZC4KICA8bGk+SW4gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gb3ZlcnJpZGUgYW55IGhpZXJhcmNoeSBjaG9zZW4gaW4gdGhlIHNlYXJjaCBmb3JtLiAgQXMgYWJvdmUsIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlcnMgYW5kIHN0cmluZ3MgKHdpdGggd2lsZGNhcmQgc3Vic3RpdHV0aW9uKSBpcyBhY2NlcHRlZC48L2xpPgo8L3VsPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaWRsaXN0PSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgY29tcGFueSBpZHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZC4gIE5vdGUsIG9ubHkgcHVibGlzaGVkIGNvbXBhbmllcyB3aWxsIGJlIGRpc3BsYXllZCB1bmxlc3Mgc3BlY2lmaWVkIGRpZmZlcmVudGx5IGJ5IGFub3RoZXIgcGFyYW1ldGVyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBuYW1lPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7LiAgQWRkaXRpb25hbGx5LCByZWd1bGFyIGV4cHJlc3Npb25zIGNhbiBiZSBzcGVjaWZpZWQgYnkgcHJlZml4aW5nIHRoZSB2YWx1ZSB3aXRoIDo6LiAgaS5lOiBuYW1lPSZxdW90Ozo6WzAtOV0uKiZxdW90OzwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGF0PSIiIC0gU3BlY2lmeSB0aGUgY2VudGVyIGxhdGl0dWRlIGNvb3JkaW5hdGUgZm9yIGEgcmFkaXVzIHNlYXJjaCwgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxvbmcgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbG9uZz0iIiAtIFNwZWNpZnkgdGhlIGNlbnRlciBsb25naXR1ZGUgY29vcmRpbmF0ZSBmb3IgYSByYWRpdXMgc2VhcmNoLCBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbGF0IGFuZCByYWRpdXMgcGFyYW1ldGVycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJhZGl1cz0iIiAtIFNwZWNpZnkgdGhlIHJhZGl1cyAoaW4gbWlsZXMpIGZvciBhIHJhZGl1cyBzZWFyY2guICBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbGF0IGFuZCBsb25nIHBhcmFtZXRlcnMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeWlkPSIiIC0gV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBvbiBhIHNpbmdsZSBjYXRlZ29yeSBieSBzcGVjaWZ5aW5nIGl0cyBpbnRlZ2VyIGlkLiAgVGhpcyBwYXJhbWV0ZXIgY2Fubm90IGJlIHVzZWQgd2l0aCB0aGUgY2F0ZWdvcnksY2F0ZWdvcnkyLCBvciBvdGhlciBjYXRlZ29yeSBmaWx0ZXJpbmcgcGFyYW1ldGVycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFjdGl2aXR5aWQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCBhbmQgb25seSB3aGVuIHRoZSBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkLCBjb25maWd1cmVkLCBhbmQgcG9wdWxhdGVkIHdpdGggZGF0YS4gIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRob3NlIHdobyBoYXZlIGNoZWNraW5zIHdpdGggdGhlIHNwZWNpZmllZCAoaW50ZWdlcikgYWN0aXZpdHkgaWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpdml0eWNoaWxkcmVuPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgYW5kIG9ubHkgd2hlbiB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIHBvcHVsYXRlZCB3aXRoIGRhdGEuICBUaGlzIHBhcmFtZXRlciB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBhY3Rpdml0eWlkIHBhcmFtZXRlciBhbGxvd3MgZmlsdGVyaW5nIGNvbXBhbmllcyBieSB0aG9zZSB3aG8gaGF2ZSBjaGVja2lucyB3aXRoIHRoZSBzcGVjaWZpZWQgKGludGVnZXIpIGFjdGl2aXR5IGlkIGFuZCB0aGVpciBjaGlsZCBhY3Rpdml0aWVzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2F0ZWdvcnk9IiIgLSBBcHBsaWNhYmxlIHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnksIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucy4gVGhpcyBwYXJhbWV0ZXIgY2FuIGNvbnRhaW4gbWFueSBjb21tYSBzZXBhcmF0ZWQgY2F0ZWdvcmllcyB0byBmaWx0ZXIgYnkuICBFYWNoIHZhbHVlIGNhbiBlaXRoZXIgYmUgYSBudW1lcmljIGlkLCBhIGNvbXBsZXRlIGNhdGVnb3J5IHBhdGgsIGEgY2F0ZWdvcnkgbmFtZSwgb3IgYSB3aWxkY2FyZCBwYXR0ZXJuLjxici8+CmkuZTogY2F0ZWdvcnk9JzUsVG91cmlzbSwqUmVudGFsKixEaW5pbmd8UGl6emFcLCpTcG9ydHN8UGFpbnQqJyB3b3VsZCBiZWhhdmUgYXMgZm9sbG93czoKPHVsPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIHRoZSBjYXRlZ29yeSB3aXRoIGlkIDUsIGFuZCBpdHMgY2hpbGRyZW4uPC9saT4KICAgIDxsaT5JbmNsdWRlIGFsbCBpdGVtcyBpbiB0aGUgY2F0ZWdvcnkgd2l0aCB0aGUgbmFtZSBcIlRvdXJpc21cIiwgYW5kIGl0cyBjaGlsZHJlbi48L2xpPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIHRoZSBjYXRlZ29yaWVzIG1hdGNoaW5nIHRoZSBwYXR0ZXJuICpSZW50YWwqIGFuZCB0aGVpciBjaGlsZHJlbi48L2xpPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIGEgY2F0ZWdvcnkgYmVnaW5uaW5nIHdpdGggRGluaW5nfFBpenphLCBhbmQgaXRzIGNoaWxkcmVuLjwvbGk+CiAgICA8bGk+SW5jbHVkZSBhbGwgaXRlbXMgaW4gYWxsIGNhdGVnb3JpZXMgdGhhdCBoYXZlIHRoZSBzdWJzdHJpbmcgU3BvcnRzfFBhaW50IGluIGl0cyBwYXRoLjwvbGk+CjwvdWw+CjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQ2F0ZWdvcnkgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiAgQWxzbywgZW50ZXJpbmcgYW4gaW52YWxpZCB2YWx1ZSBmb3Igb25lIGNhdGVnb3J5IHdpbGwgcmVzdWx0IGluIG5vIG1hdGNoZXMuICBpLmU6IGlmIHlvdSBzcGVjaWZ5IGNhdGVnb3J5PSdGb28sQmFyJyBhbmQgbmVpdGhlciB0aGUgZm9vIG9yIGJhciBjYXRlZ29yaWVzIGV4aXN0LCB0aGVuIHRoZSBxdWVyeSB3aWxsIGZpbmQgbm8gbWF0Y2hpbmcgY29tcGFuaWVzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2F0ZWdvcnkyPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgdmlldywgYW5kIG9ubHkgd2hlbiB0aGUgPGVtPmNhdGVnb3J5PC9lbT4gcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYW4gYWRkaXRpb25hbCBBTkQgZXhwcmVzc2lvbiB0byBpbmRpY2F0ZSBhZGRpdGlvbmFsIChjb21tYSBzZXBhcmF0ZWQpIGNhdGVnb3JpZXMgdGhhdCB0aGUgcmVzdWx0IHNob3VsZCBiZSBhIG1lbWJlciBvZi4gIGkuZToge0NvbXBhbnlEaXJlY3RvcnkgY2F0ZWdvcnk9J3JlZ2lvbl9ub3J0aCxyZWdpb25fc291dGgnIGNhdGVnb3J5Mj0nY2Fycyx0cnVja3MnfSB3b3VsZCByZXR1cm4gb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCB3ZXJlIGluIHRoZSBlaXRoZXIgb2YgdGhlIHJlZ2lvbiBub3J0aCBvciByZWdpb24gc291dGggY2F0ZWdvcmllcyBBTkQgQUxTTyBpbiBlaXRoZXIgb2YgdGhlIGNhcnMgb3IgdHJ1Y2tzIGNhdGVnb3JpZXM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5Mz0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTI8L2VtPiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB5ZXQgYW4gYWRkaXRpb25hbCBBTkQgZXhwcmVzc2lvbiB0byBpbmRpY2F0ZSBhZGRpdGlvbmFsIChjb21tYSBzZXBhcmF0ZWQpIGNhdGVnb3JpZXMgdGhhdCB0aGUgcmVzdWx0IHNob3VsZCBiZSBhIG1lbWJlciBvZi4gU2VlIHRoZSBoZWxwIGZvciB0aGUgY2F0ZWdvcnkyIHBhcmFtZXRlciBmb3IgbW9yZSBpbmZvcm1hdGlvbjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaW5saW5lPSIwIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5LCBhbmQgPGVtPnNlYXJjaDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHdldGhlciB0aGUgcmVzdWx0aW5nIGRhdGEgc2hvdWxkIHJlcGxhY2UgdGhlIGRlZmF1bHQgY29udGVudCBibG9jaywgb3Igc2hvdWxkIHJlcGxhY2UgdGhlIG9yaWdpbmFsIHRhZyAoaW5saW5lKS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHBhZ2VsaW1pdD0iIiAtIFdoZW4gdXNlZCB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgYWN0aW9uLCBvciB0aGUgPGVtPnNlYXJjaDwvZW0+IG1vZGUsIHRoaXMgd2lsbCBsaW1pdCB0aGUgcmVzdWx0cyB0byBhIHNwZWNpZmllZCBudW1iZXIuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiByZXN1bHRwYWdlPSIiIC0gQXBwbGljYWJsZSB0byB0aGUgPGVtPnNlYXJjaDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2hhdCBwYWdlIHNob3VsZCBiZSB1c2VkIGZvciBkaXNwbGF5aW5nIG1hdGNoaW5nIHJlc3VsdHMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3ByZXR0eT0iIiAtIEFwcGxpY2FibGUgdG8gYWxsIHZpZXdzICh0aG91Z2ggc3RpbGwgaW4gZWFybHkgZGV2ZWxvcG1lbnQpIHRoaXMgcGFyYW1ldGVyIHdpbGwgdHVybiBvZmYgcHJldHR5IHVybCBnZW5lcmF0aW9uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2NoaWxkcmVuPSIiIC0gQXBwbGljYWJsZSB0byB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpPC9lbT4sIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBwcm92aWRlcyBmaWx0ZXJpbmcgb2Ygb3V0cHV0IGFzIGZvbGxvd3M6PC9icj4KPHVsPgogIDxsaT5JbiB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpIGFjdGlvbiwgY29tcGFuaWVzIGluIGNoaWxkIGNhdGVnb3JpZXMgb3IgaGllcmFyY2hpZXMgKHdoZW4gdXNpbmcgYW55IG9mIHRoZSBjYXRlZ29yeWlkLGNhdGVnb3J5LGNhdGVnb3J5MixjYXRlZ29yeTMsIG9yIGhpZXIpIHBhcmFtZXRlcnMgd2lsbCBub3QgYmUgaW5jbHVkZWQuPC9saT4KICA8bGk+SW4gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIGNoaWxkIGNhdGVnb3JpZXMgKHdoZW4gdXNpbmcgdGhlIGNhdGVnb3J5IHBhcmFtZXRlcikgd2lsbCBub3QgYmUgcmV0dXJuZWQuCiAgICAgIFdoZW4gdXNpbmcgdGhlIGhpZXIgcGFyYW1ldGVyLCBvbmx5IHRoZSBjYXRlZ29yaWVzIHVzZWQgYnkgY29tcGFuaWVzIGluIHRoZSBuYW1lZCBoaWVyYXJjaGllcyB3aWxsIGJlIHJldHVybmVkLCBub3QgdGhlIGNhdGVnb3JpZXMgdXNlZCBieSBjb21wYW5pZXMgaW4gZGVzY2VuZGFudHMgb2YgdGhlIG5hbWVkIGhpZXJhcmNoaWVzLgogIDwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtYXN0ZXJzZWFyY2g9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O3NlYXJjaCZxdW90OyBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhpcyBhY3Rpb24gaXMgdXNlZCBhcyBhIG1hc3RlciBzZWFyY2guICBXaGVuIHRoaXMgaXMgZW5hYmxlZCwgc3VibWl0dGVkIGRhdGEgd2lsbCBiZSBzYXZlZCB0byB0aGUgc2Vzc2lvbiBmb3IgbGF0ZXIgdXNlIGluIHRoZSBzZWFyY2ggYWN0aW9uIDxlbT4odG8gYXV0byBmaWxsIGVsZW1lbnRzIGluIHRoZSBmb3JtIGFzIGlzIGlsbHVzdHJhdGVkIGluIHRoZSBkZWZhdWx0IHNlYXJjaGZvcm0gdGVtcGxhdGUpPGVtPi4gIEFzIHdlbGwsIG9uIHN1Ym1pdCBhbnkgc2F2ZWQgc3Vic2VhcmNoIGRhdGEgd2lsbCBiZSByZXNldDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc3Vic2VhcmNoPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSAmcXV1b3Q7c2VhcmNoJnF1b3Q7IGFjdGlvbiB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGlzIGFjdGlvbiB3aWxsIGJlIHVzZWQgYXMgYSBzdWIgc2VhcmNoIHRvIGFsbG93ICZxdW90O3JlZmluaW5nJnF1b3Q7IGFuIGFscmVhZHkgc3VibWl0dGVkIHNlYXJjaC4gIFdoZW4gZW5hYmxlZCwgZm9ybSBkYXRhIGZyb20gdGhlIHN1YnNlYXJjaCBpcyBtZXJnZWQgd2l0aCBmb3JtIGRhdGEgZnJvbSBhIG1hc3RlciBzZWFyY2ggYmVmb3JlIGRpc3BsYXksIGFuZCBiZWZvcmUgZm9ybSBzdWJtaXNzaW9uLiAgT24gc3VibWlzc2lvbiwgdGhlIG1lcmdlZCBkYXRhIGlzIHNhdmVkIHRvIHRoZSBzZXNzaW9uIHNlcGFyYXRlbHkgZnJvbSB0aGUgbWFzdGVyIHNlYXJjaCBkYXRhLiAgTm90ZSB0aGUgc3Vic2VhcmNoL3JlZmluZWQgc2VhcmNoIHN0dWZmIGRvZXMgbm90IGZ1cnRoZXIgc29ydCBhbmQgZmlsdGVyIHRoZSByZXN1bHRzIGZyb20gdGhlIG1hc3RlciBzZWFyY2gsIGluc3RlYWQgdGhlIHBhcmFtZXRlcnMgZnJvbSB0aGUgdHdvIHNlYXJjaGVzIGFyZSBtZXJnZWQgdG8gYmVjb21lIGEgc2luZ2xlIHNlYXJjaC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGRheXM9IjM2NSIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2hzdGF0czxlbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdXNlIHdoZW4gY29sbGVjdGluZyBzZWFyY2ggc3RhdGlzdGljcyBmb3IgYW4gaW5kaXZpZHVhbCBjb21wYW55LjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcGhyYXNlPSIiIC0gVGhpcyBwYXJhbWV0ZXIsIGFwcGxpY2FibGUgdG8gYm90aCB0aGUgJnF1b3Q7c2VhcmNoJnF1b3Q7IGFuZCBkZWZhdWx0ICZxdW90O3N1bW1hcnkmcXVvdDsgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhZHZhbmNlZCBib29sZWFuIGFuZC9vciBmdWxsIHRleHQgc2VhcmNoZXMuICBpLmUuOjxici8+Cjx1bD4KICA8bGk+d29yZDEgd29yZDIKICAgIDxwPkZpbmQgYWxsIGNvbXBhbmllcyB3aGVyZSB3b3JkMSBPUiB3b3JkMiBhcmUgbWVudGlvbmVkPC9wPgogIDwvbGk+CiAgPGxpPit3b3JkMSB3b3JkMgogICAgPHA+RmluZCBhbGwgY29tcGFuaWVzIHdoZXJlIHdvcmQxIGlzIG1lbnRpb25lZCBhbmQgcG9zc2libHkgd29yZDI8L3A+CiAgPC9pPgogIDxsaT4rd29yZDEgLXdvcmQyCiAgICA8cD5GaW5kIGFsbCBjb21wYW5pZXMgd2hlcmUgd29yZDEgaXMgbWVudGlvbmVkIGFuZCB3b3JkMiBpcyBleHBsaWNpdGx5IE5PVCBtZW50aW9uZWQ8L3A+CiAgPC9pPgogIDxsaT4rd29yZDEgK3dvcmQyCiAgICA8cD5GaW5kIGFsbCBjb21wYW5pZXMgd2hlcmUgYm90aCB3b3JkMSBhbmQgd29yZDIgYXJlIGV4cGxpY2l0bHkgbWVudGlvbmVkLjwvcD4KICA8L2k+CiAgPGxpPlwid29yZDEgd29yZDJcIgogICAgPHA+RmluZCBhbGwgY29tcGFuaWVzIHdoZXJlIHRoZSBwaHJhc2UgJnF1b3Q7d29yZDEgd29yZDImcXVvdDsgaXMgbWVudGlvbmVkPC9wPgogIDwvbGk+CjwvdWw+CiAgICA8cD5UaGUgcGhyYXNlIHNlYXJjaCBpbnRlcmFjdHMgd2l0aCBjdXN0b20gZmllbGQgdmFsdWVzLCBtYWtpbmcgaXQgcG9zc2libGUgdG8gc2VhcmNoIHRocm91Z2ggdGV4dCBmaWVsZHMsIHRleHQgYXJlYSBmaWVsZHMsIGFuZCBkcm9wZG93biBmaWVsZHMgZm9yIGNlcnRhaW4gd29yZHMgb3IgcGhyYXNlcy48L3A+CiAgICA8cD5UaGUgcGhyYXNlIHNlYXJjaCBpcyBzdWJqZWN0IHRvIHRoZSBjb250cmFpbnRzIG9mIHRoZSBNWVNRTCBmdWxsIHRleHQgZW5naW5lLCBpbmNsdWRpbmcgd29yZCBsZW5ndGgsIGxhbmd1YWdlLCBhbmQgc3RvcCB3b3JkcyAod29yZHMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBleGNsdWRlZCBmcm9tIHRoZSBzZWFyY2gpLiAgRm9yIGZ1cnRoZXIgcmVmZXJlbmNlIHBsZWFzZSByZWFkIHRoZSBkb2N1bWVudGF0aW9uIHJlZ2FyZGluZyBNeVNRTCBmdWxsIHRleHQgaW5kZXhlcy48L3A+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjZF9kZXN0cGFnZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgZmVfZWRpdDIgYWN0aW9uIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgdGhlIGZvcm0gaXMgc3VjY2Vzc2Z1bGx5IHN1Ym1pdHRlZC4gIElmIG5vdCBzcGVjaWZpZWQgdGhlIG9yaWdpbmFsIHJlZmVyZXIgaXMgdXNlZC48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBSb2JlcnQgQ2FtcGJlbGwsIFRlZCBLdWxwICZsdDtjYWxndXkxMDAwQGdtYWlsLmNvbSwgdGVkQHRlbjM5LmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjIzLjM8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CiAgPGxpPjEuMSAtIFNlcHRlbWJlciwgMjAwNyA8ZW0+KHJjYW1wYmVsbEBza2lubnlmaXNobWVkaWEuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBwcmV0dHkgdXJsczwvbGk+CiAgICAgIDxsaT5GaWxsZWQgb3V0IHRoZSBoZWxwPC9saT4KICAgICAgPGxpPkFkZGVkIGEgY2F0ZWdvcnkgbGlzdCBtb2RlPC9saT4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzPC9saT4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIHB1YmxpYyBhbmQgYWRtaW4gb25seSBmaWVsZHMgaW4gY29tcGFuaWVzPC9saT4KICAgICAgPGxpPkFkZGVkIGRpZmZlcmVudCBzb3J0aW5nIGNhcGFiaWxpdGllcyBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgICA8bGk+Q2hhbmdlZCBNaW5pbXVtIENNUyBWZXJzaW9uIGFuZCBhZGRlZCBzdXBwb3J0IGZvciB0aGUgMS4xIHNlcmllczwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS4xIC0gTm92ZW1iZXIsIDIwMDcgPGVtPihyY2FtcGJlbGxAc2tpbm55ZmlzaG1lZGlhLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggdGhlIGRldGFpbCBsaW5rcyBpbiBzdW1tYXJ5IG1vZGUgd2hlbiBwcmV0dHkgdXJscyB3ZXJlIGRpc2FibGVkLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS4yIC0gTm92ZW1iZXIsIDIwMDcgPGVtPihyY2FtcGJlbGxAc2tpbm55ZmlzaG1lZGlhLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Tm93IHVzZSBjbXNfbW92ZV91cGxvYWRlZF9maWxlIGluc3RlYWQgb2YgbW92ZV91cGxvYWRlZF9maWxlPC9saT4KICAgICAgPGxpPlJlcXVpcmUgQ01TIDEuMi4xIG9yIGxhdGVyPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xLjMgLSBGZWJydWFyeSwgMjAwOCA8ZW0+KHJjYW1wYmVsbEBza2lubnlmaXNobWVkaWEuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHBhZ2luYXRpb24gdG8gc3VtbWFyeSB2aWV3PC9saT4KICAgICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIHByZXR0eSB1cmxzIGluIHN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCB0aGUgc29ydCBvcmRlciBwcmVmZXJlbmNlczwvbGk+CiAgICAgIDxsaT4oX1NqRykgLSBJbXBsZW1lbnRzIHRzd1wncyBwYXRjaCBmb3IgY3VzdG9tIGZpZWxkcyBpbiB0aGUgc3VtbWFyeSB0ZW1wbGF0ZTwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS40IC0gSnVuZSwgMjAwOCA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeCB0byB0aGUgdGFiczwvbGk+CiAgICAgIDxsaT5NaW5vciBmaXggdG8gdGhlIHN0YXR1cyBmaWVsZCB3aGVuIGVkaXRpbmcgYSBjb21wYW55LjwvbGk+CiAgICAgIDxsaT5NaW5vciBmaXggdG8gdGhlIGNoZWNrYm94IGN1c3RvbSBmaWVsZHMgd2hlbiBlZGl0aW5nIGEgY29tcGFueS48L2xpPgogICAgICA8bGk+Rml4IHRvIENTViBFeHBvcnQuPC9saT4KICAgICAgPGxpPkZpeCB0byB0aGUgcHJlZmVyZW5jZXMgdGFiLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS41IC0gSnVuZSwgMjAwOCA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeCBhIG1pbm9yIGlzc3VlIHdpdGggcHJlZmVyZW5jZXM8L2xpPgogICAgICA8bGk+Rml4IHNvbWUgcXVlcmllcyB0aGF0IHdlcmUgbm90IHVzaW5nIGNtc19kYl9wcmVmaXg8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuNiAtIEp1bHksIDIwMDggPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGQgdGhlIHNob3dhbGwgcGFyYW1ldGVyIHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLjwvbGk+CiAgICAgIDxsaT5TcGxpdCBvdXQgYSBjb3VwbGUgb2YgbW9yZSBmaWxlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuNyAtIEZlYnJ1YXJ5LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Rml4ZWQgZGVsZXRlIGNvbXBhbnkgc3R1ZmYuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xLjggLSBBcHJpbCwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkFkZCBNb3JlIEluZGV4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4yIC0gTWF5LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkZWQgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBmaWVsZHMuPC9saT4KICAgICAgPGxpPkFkZGVkIGNhcGFiaWxpdHkgdG8gbG9va3VwIGxhdHRpdHVkZSBhbmQgbG9uZ2l0dWRlIGlmIENHR29vZ2xlTWFwIGlzIGluc3RhbGxlZC48L2xpPgogICAgICA8bGk+QWRkZWQgc2VhcmNoIGZ1bmN0aW9uYWxpdHksIHdpdGggemlwY29kZSBsb29rdXAgKHJlcXVpcmVzIHRoZSBwb3N0Y29kZSBtb2R1bGUpLjwvbGk+CiAgICAgIDxsaT5BZGRlZCBleHBvcnQgdG8gY3N2IGZ1bmN0aW9uYWxpdHkuPC9saT4KICAgICAgPGxpPlJld3JpdGUgaW1wb3J0IGZyb20gY3N2IGZ1bmN0aW9uYWxpdHkuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4zIC0gSnVseSwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAaG90bWFpbC5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIHByZXR0eSB1cmxzPC9saT4KICAgICAgPGxpPkZpbGxlZCBvdXQgdGhlIGhlbHA8L2xpPgogICAgICA8bGk+QWRkZWQgYSBjYXRlZ29yeSBsaXN0IG1vZGU8L2xpPgogICAgICA8bGk+QWRkZWQgc3VwcG9ydCBmb3IgZnJvbnRlbmQgZWRpdGluZyBvZiBjb21wYW5pZXM8L2xpPgogICAgICA8bGk+QWRkZWQgc3VwcG9ydCBmb3IgcHVibGljIGFuZCBhZG1pbiBvbmx5IGZpZWxkcyBpbiBjb21wYW5pZXM8L2xpPgogICAgICA8bGk+QWRkZWQgZGlmZmVyZW50IHNvcnRpbmcgY2FwYWJpbGl0aWVzIGluIHN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5DaGFuZ2VkIE1pbmltdW0gQ01TIFZlcnNpb24gYW5kIGFkZGVkIHN1cHBvcnQgZm9yIHRoZSAxLjEgc2VyaWVzPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4zLjIgLSBBdWd1c3QsIDIwMDkgPGVtPihjYWxndXkxMDAwQGhvdG1haWwuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5GaXggbWlub3IgZXJyb3IgaW4gdGhlIGluc3RhbGxlci48L2xpPgogICAgICA8bGk+SW4gc3VtbWFyeSBtb2RlLCBlbnN1cmUgdGhhdCBhIGNvbXBhbnkgaXMgb25seSBvdXRwdXQgb25jZS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjMuMyAtIEF1Z3VzdCwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAaG90bWFpbC5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeCBlcnJvcnMgd2l0aCBlbnRpdGllcyBpbiBmcm9udGVuZCB3eXNpd3lncy48L2xpPgogICAgICA8bGk+Rml4IGVycm9yIGluIGJvdW5kaW5nIGJveCBjYWxjdWxhdGlvbi48L2xpPgogICAgICA8bGk+TnVtZXJvdXMgb3RoZXIgc21hbGwgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMy40IC0gU2VwdGVtYmVyLCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Rml4IHNvbWUgbW9yZSBzbWFsbCBpc3N1ZXMgd2l0aCBmcm9udGVuZCBzdWJtaXQ8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjQgLSBPY3QsIDIwMDkgPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgPGxpPkFkZGVkIEtNTCBJbXBvcnQ8L2xpPgogICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS40LjEgLSBPY3RvYmVyLCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkcyBhYmlsaXR5IHRvIGltcG9ydCBmaWVsZHMgZnJvbSBLTUwuPC9saT4KICAgICAgPGxpPkFkZHMgZmllbGQgdHlwZSB0byB0aGUgb3V0cHV0IGZvciBjdXN0b20gZmllbGRzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNSAtIEphbnVhcnksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgZm9yIGZyb250ZW5kIHVzZXJzIHRvIGFkZC9lZGl0L2RlbGV0ZSB0aGVpciBvd24gY29tcGFueSBsaXN0aW5ncy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuMSAtIEphbnVhcnksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gYnJvd3NlIGJ5IGhpZXJhcmNoeS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuMiAtIEphbnVhcnksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPlJld3JpdGUgb2YgQ1NWIGltcG9ydCBzdHVmZi48L2xpPgogICAgICA8bGk+QWRkcyBmcm9udGVuZCBpbXBvcnRpbmcgZnJvbSBjc3YuPC9saT4KICAgICAgPGxpPkFkZHMgZnJvbnRlbmQgZGVsZXRlIGFjdGlvbi48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuMyAtIE1hcmNoLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5JbXByb3ZlbWVudHMgdG8gc2VhcmNoLjwvbGk+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjQgLSBNYXksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgc29ydGluZyBieSBwdWJsaWMgY3VzdG9tIGZpZWxkcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuNSAtIE1heSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNS43IC0gTWF5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjggLSBNYXksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgY2F0ZWdvcnkgaW5mb3JtYXRpb24gZm9yIGVhY2ggbWF0Y2hpbmcgcHJvZHVjdCBpbiBzdW1tYXJ5IHZpZXcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42IC0gSnVuZSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgYSBtaW5vciBpc3N1ZSB3aXRoIHRoZSBzZWFyY2ggZnVuY3Rpb24gKGNvcHkvcGFzdGUgZXJyb3IpPC9saT4KICAgICAgPGxpPkFkZHMgY29tcGFueSBuYW1lIGluZm9ybWF0aW9uIHRvIHRoZSBkZXRhaWwgdXJsLjwvbGk+CiAgICAgIDxsaT5BZGRzICZxdW90O2JhY2smcXVvdDsgbGluayB0byB0aGUgc2V0dGluZ3MgYW5kIHRlbXBsYXRlIHBhZ2VzLjwvbGk+CiAgICAgIDxsaT5BZGRzIGZ1bmN0aW9uYWxpdHkgdG8gYWxsb3cgZHVwbGljYXRpbmcgYSBjb21wYW55IHJlY29yZC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuMSAtIEp1bmUsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgZXh0cmEgZmllbGRzIHRvIGNhdGVnb3JpZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjIgLSBKdWx5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjMgLSBKdWx5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjQgLSBKdWx5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5Tb3J0IGZpZWxkIGRlZmluaXRpb25zIGJ5IG5hbWUuPC9saT4KICAgICAgPGxpPkFkZHMgY2F0ZWdvcnkgc3BlY2lmaWMgZXh0cmExLGV4dHJhMixleHRyYTMgZmllbGRzIGFzc29jaWF0ZWQgd2l0aCBDb21wYW5pZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjUgLSBBdWd1c3QsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgaWQgb3B0aW9uIHRvIHNvcnRieS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuNyAtIEF1Z3VzdCwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyBpbnRlZ2VyIHNvcnRpbmcgYnkgdGhlIHNvcnRieT1mOmZpZWxkX25hbWUgc3R1ZmYuPC9saT4KICAgICAgPGxpPk1pbm9yIGltcHJvdmVtZW50IHRvIHRoZSBzZWFyY2ggc3R1ZmYgd3J0IGNhdGVnb3JpZXMuPC9saT4KICAgICAgPGxpPlNvcnQgdGhlIGNhdGVnb3JpZXMgb3V0cHV0IHRvIHRoZSBzZWFyY2ggZm9ybS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuOCAtIFNlcHRlbWJlciwgMjAxMAogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgdG8gc2VhcmNoIGFjdGlvbi48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuOSAtIFNlcHRlbWJlciwgMjAxMAogICAgPHVsPgogICAgICA8bGk+Q1NWIEltcG9ydCBJbXByb3ZlbWVudHMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS43IC0gU2VwdGVtYmVyLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIGhpZXJhcmNoeSBjYXBhYmlsaXRpZXMgdG8gc2VhcmNoIGFjdGlvbi48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjcuMiAtIFNlcHRlbWJlciwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkbyBhIExJS0Ugc2VhcmNoIG9uIHRoZSBhZGRyZXNzIGZpZWxkIHdoZW4gZG9pbmcgYSBwb3N0Y29kZSBzZWFyY2guPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS43LjMgLSBKYW51YXJ5LCAyMDExCiAgIDx1bD4KICAgICA8bGk+TWFueSBtaW5vciBidWcgZml4ZXMsIGluY2x1ZGluZyBjaGFuZ2VzIHRvIHdvcmsgd2l0aCBuZXcgQ0dHTTwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS44IC0gSmFudWFyeSwgMjAxMQogICA8dWw+CiAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGNvbXBhbnkgVVJMUyAoYWxhIENNU01TIDEuOSkgd2hlbiBjb21wYW5pZXMgYXJlIHVwZGF0ZWQgZnJvbSB0aGUgYWRtaW4gaW50ZXJmYWNlLjwvbGk+CiAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGRvaW5nIGEgMzAxIHJlZGlyZWN0IHRvIHRoZSBuZXcgVVJMIGlmIGEgY29tcGFueSBpcyBhY2Nlc3NlZCB2aWEgdGhlIG9sZCBVUkwgYW5kIGEgbmV3IFVSTCBleGlzdHMuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcGFzcyB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBpbiB0byB0aGUgc2VhcmNoLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS44LjEgLSBNYXJjaCwgMjAxMQogICA8dWw+CiAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjguMiAtIE1hcmNoLCAyMDExCiAgIDx1bD4KICAgPGxpPkFkZHMgJGVudHJ5LT5maWVsZHMgdG8gdGhlIGRldGFpbCBhbmQgc3VtbWFyeSB2aWV3cy48L2xpPgogICA8bGk+T2ZmaWNpYWxseSBkZXByZWNhdGUgdGhlIGN1c3RvbWZpZWxkc2J5bmFtZSBzdHVmZi48L2xpPgogICA8bGk+QWRkICRlbnRyeS0+Y2Fub25pY2FsIHRvIHRoZSBkZXRhaWwgdmlldy48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuOSAtIEF1Z3VzdCwgMjAxMQogICA8dWw+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHVwZGF0ZSBjb21wYW55IHJlY29yZHMgdmlhIGNzdiBmaWxlcy48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMTAgLSBTZXB0ZW1iZXIsIDIwMTEKICAgPHVsPgogICA8bGk+QWRkcyBuZXcgZmlsdGVyLCBxdWVyeSwgYW5kIHBhZ2luYXRpb24gY2xhc3Nlcy48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBwcmVsb2FkIGZpZWxkIGFuZCBjYXRlZ29yeSBpbmZvcm1hdGlvbiBmb3Igc2VsZWN0ZWQgY29tcGFuaWVzLjwvbGk+CiAgIDxsaT5SZXdyaXRlIHN1bW1hcnkgdmlldyB0byB1c2UgbmV3IGNsYXNzZXMuPC9saT4KICAgPGxpPlJlbW92ZXMgdGhlIGNhdGVnb3J5IGZvcm0gZnJvbSB0aGUgc3VtbWFyeSB2aWV3Li4uIG1hbnkgYmV0dGVyIHdheXMgdG8gaGFuZGxlIHRoaXMuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEwLjEgLSBTZXB0ZW1iZXIsIDIwMTEKICAgPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xMC4xMCAtIE5vdmVtYmVyLCAyMDExCiAgIDx1bD4KICAgPGxpPkZpeGVzIGFuIGlzc3VlIHdpdGggaW1hZ2UgdXBsb2FkIGZpZWxkcyB3aGVuIGVkaXRpbmcgY29tcGFuaWVzLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xMC4xMSAtIE5vdmVtYmVyLCAyMDExCiAgIDx1bD4KICAgICA8bGk+Q2F0ZWdvcnkgbmFtZXMgbXVzdCBub3cgb25seSBoYXZlIHZhbGlkIGNoYXJzLjwvbGk+CiAgICAgPGxpPk1pbm9yIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiAgPGxpPgogIDxsaT4xLjExIC0gRGVjZW1iZXIsIDIwMTEKICAgPHVsPgogICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIHRoZSBkZXRhaWwgdmlldyAoc29tZSB0ZW1wbGF0ZXMgbWF5IG5lZWQgY2hhbmdpbmcpLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xMiAtIERlY2VtYmVyLCAyMDExCiAgIDx1bD4KICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICAgPGxpPkFkZHMgZmlsdGVyaW5nIHRvIHRoZSBjb21wYW55IGxpc3QgaW4gdGhlIGFkbWluIGludGVyZmFjZS48L2xpPgogICAgIDxsaT5BZGRzIHRoZSBjYXRlZ29yeTIgYW5kIGNhdGVnb3J5MyBwYXJhbWV0ZXJzLjwvbGk+CiAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBhIGNhdGVnb3J5IE9SIGEgaGllciBwYXJhbWV0ZXIgdG8gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KIDxsaT4xLjEzIC0gSmFudWFyeSwgMjAxMgogICA8dWw+CiAgICAgPGxpPkFkZHMgZmlsZSBmaWVsZCB0eXBlLjwvbGk+CiAgICAgPGxpPkZpeGVzIHByb2JsZW0gd2l0aCBsb2dvIGFuZCBwaWN0dXJlIGZpbGVzIGJlaW5nIGRlbGV0ZWQuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xMy4xIC0gTWFyY2gsIDIwMTIKICAgPHVsPgogICAgPGxpPk51bWVyb3VzIG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjEzLjIgLSBBcHJpbCwgMjAxMgogICA8dWw+CiAgICA8bGk+TW9yZSBhdWRpdCBsaW5lcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE0IC0gTWF5LCAyMDEyCiAgIDx1bD4KICAgPGxpPkltcHJvdmVtZW50cyB0byB0aGUgY2RfY29tcGFueSBjbGFzcy48L2xpPgogICA8bGk+QWRkIGNvbXBhbnkgKGFkbWluKSBpcyBub3cgZ2V0dGluZyBtb3JlIG9vcGlmaWVkLjwvbGk+CiAgIDxsaT5FZGl0IGNvbXBhbnkgKGFkbWluKSBpcyBub3cgZ2V0dGluZyBtb3JlIG9vcGlmaWVkLjwvbGk+CiAgIDxsaT5NaW5vciBmaXggdG8gdGhlIGhpZXJhcmNoeSB0YWIuPC9saT4KICAgPGxpPk5ldyBFdmVudHMgKE9uQWRkQ29tcGFueSwgT25FZGl0Q29tcGFueSwgT25EZWxldGVDb21wYW55KSAtLSBpbiBwcm9ncmVzczwvbGk+CiAgIDxsaT5FeHRyYSBmaWVsZHMgYXJlIG5vdyBhZGRlZCB0byB0aGUgc2VhcmNoIHRlcm1zICh0ZXh0IGFuZCB0ZXh0YXJlYSBmaWVsZHMgb25seSkuIC0tIGluIHByb2dyZXNzPC9saT4KICAgPGxpPlNlYXJjaCByZS1pbmRleCBub3cgb29waWZpZWQgYW5kIGZhc3Rlci48L2xpPgogICA8bGk+RnJvbnRlbmQgZWRpdGluZyBjb21wbGV0ZWx5IHJld3JpdHRlbgogICAgICA8dWw+CiAgICAgICAgPGxpPlVzZSB0aGUgbmV3IGFjdGlvbiAodGhlcmUgaXMgYW4gb3B0aW9uIGluIHRoZSBhZG1pbiBwYW5lbCk8L2xpPgogICAgICAgIDxsaT5TdXBwb3J0cyBlZGl0aW5nIGN1c3RvbSBmaWVsZHMgKHB1YmxpYyBvbmx5KS48L2xpPgogICAgICAgIDxsaT5TdXBwb3J0cyBmaWxlIHVwbG9hZHMsIGltYWdlIHByb2Nlc3NpbmcgYWxhIENHRXh0ZW5zaW9uczwvbGk+CiAgICAgICAgPGxpPkVuaGFuY2VkIHNlY3VyaXR5LjwvbGk+CiAgICAgICAgPGxpPkRlZmF1bHQgdGVtcGxhdGUgaW5jbHVkZXMgbG9va3VwIGZ1bmN0aW9uYWxpdHkgKGlmIENHR00gaXMgYXZhaWxhYmxlKTwvbGk+CiAgICAgICAgPGxpPlNlYXJjaGFibGUuPC9saT4KICAgICAgPC91bD4KICAgICAgPC9saT4KICAgPGxpPkZpeGVzIHRvIEtNTCBJbXBvcnQuPC9saT4KICAgPGxpPkFkZHMgdGhlIGhpZXJhcmNoeSBpbmZvIHRvIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MuPC9saT4KICAgPGxpPkFkZHMgcmFkaXVzIHNlYXJjaGluZyBjYXBhYmlsaXRpZXMsIGFuZCBzb3J0aW5nIGJ5IGRpc3RhbmNlLjwvbGk+CiAgIDxsaT5BZGRzIHJlZ2V4cCBzZWFyY2ggZm9yIG5hbWUgcGFyYW1ldGVyLjwvbGk+CiAgIDxsaT5GaXhlcyBhIGJ1ZyBpbiBDU1YgaW1wb3J0IHdydCBsYXQvbG9uZyB2YWx1ZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNC4xIC0gSnVuZSwgMjAxMgogICA8dWw+CiAgIDxsaT5FZGl0IENvbXBhbnkgKGFkbWluIHNpZGUpIEZpeGVzLjwvbGk+CiAgIDxsaT5Db21wYXkgQ29tcGFueSBGaXhlcy48L2xpPgogICA8bGk+TW92ZWQgaGVscCBvdXQgb2YgbGFuZyBmaWxlLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTQuMiAtIEp1bmUsIDIwMTIKICAgPHVsPgogICA8bGk+Rml4ZXMgaXNzdWUgd2l0aCBkcmFmdCBzdGF0dXMuPC9saT4KICAgPGxpPmZpeGVzIGlzc3VlIHdpdGggY2RfY29tcGFueV9xdWVyeSwgc3RhdHVzLCBhbmQgZnJvbnRlbmQgdmlld3MuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNC4zIC0gSnVseSwgMjAxMgogICA8dWw+CiAgIDxsaT5DYXRlZ29yaWVzIGFyZSBub3cgb3V0cHV0IGluIGFzY2VuZGluZyBvcmRlciBieSBuYW1lLCBldmVyeXdoZXJlLjwvbGk+CiAgIDxsaT5Nb3JlIGZ1bmN0aW9ucyBpbiBjZF91dGlscy48L2xpPgogICA8bGk+TWlub3IgYnVnZml4IHRvIGFjY2VwdGluZyBodG1sIGluIHRoZSBkZXRhaWwgdmlldy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE0LjQgLSBKdWx5LCAyMDEyCiAgIDx1bD4KICAgPGxpPkJ1Z2ZpeDogU2V0IG93bmVyIGlkIHRvIC0xIGZvciBpbXBvcnRlZCBpdGVtcy48L2xpPgogICA8L3VsPgogPC9paT4KIDxsaT4xLjE1LngKICAgPHVsPgogICA8bGk+QmVnaW4gd29yayBvbiBuZXcgc2VhcmNoIGFjdGlvbi48L2xpPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDxsaT5BZGRzIGFiaWxpdHkgdG8gb3V0cHV0IGNvbXBhbnkgc2VhcmNoZXMgYXMgYW4gYXJyYXkuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNi54CiAgIDx1bD4KICAgPGxpPkFkZCB0aGUge2NkX2dldGNvbXBhbnl9IHRhZy48L2xpPgogICA8bGk+Rml4ZXMgYSBidW5jaCBvZiBtaW5vciBidWdzLjwvbGk+CiAgIDxsaT5Pbmx5IGNsZWFuIHZhbHVlcyBpbiBjZF9jb21wYW55IGZvciBhZG1pbiByZXF1ZXN0cy4uLiBzZWUgaG93IHRoYXQgd29ya3Mgb3V0LjwvbGk+CiAgIDxsaT5DU1YgaW1wb3J0IGltcHJvdmVtZW50cy48bGxpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE3LngKICAgPHVsPgogICA8bGk+UmF0aW9uYWxpemF0aW9uIG9mIGFkbWluIGludGVyZmFjZSB0YWJzLjwvbGk+CiAgIDxsaT5NaW5vciBvcHRpbXphdGlvbnMuPC9saT4KICAgPGxpPkFkZHMgc3VwcG9ydCBmb3IgdGhlIGFsYnVtIGZpZWxkIHR5cGUgaW5jbHVkaW5nIGZvciBmcm9udGVuZCBlZGl0aW5nLgogICAgIDxwPlRoZSBhbGJ1bSBmaWVsZCB0eXBlIGFsbG93cyBhc3NvY2lhdGluZyBtdWx0aXBsZSBpbWFnZXMgd2l0aCBhIHNpbmdsZSBjb21wYW55IGVudHJ5LiAgVGhleSBhcmUgcmVwcmVzZW50ZWQgaW4gdGhlIHN1bW1hcnkgYW5kIGRldGFpbCB0ZW1wbGF0ZXMgYXMgYSBzaW1wbGUgYXJyYXkgb2YgZmlsZW5hbWVzLiAgWW91IG1heSBidWlsZCB5b3VyIG93biBkaXNwbGF5IG1lY2hhbmlzbSBmcm9tIHRoaXMuPC9wPgogICAgIDxwPlRoZSBhbGJ1bSBmaWVsZCB0eXBlIGRvZXMgbm90IHByb3ZpZGUgYW55IGltYWdlIHByb2Nlc3NpbmcgY2FwYWJpbGl0aWVzLiAgSW1hZ2UgcHJvY2Vzc2luZyBzdWNoIGFzIHdhdGVybWFya2luZyBvciB0aHVtYm5haWxpbmcgY2FuIGJlIGRvbmUgYXQgdGhlIHRpZW0gb2YgZGlzcGxheSB3aXRoIGFuIGFkZG9uIG1vZHVsZSBsaWtlIENHU21hcnRJbWFnZS48L3A+CiAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBJbiBvcmRlciB0byBzZWUgdGhlIGFsYnVtIGZpZWxkIHR5cGVzIHlvdSB3aWxsIG5lZWQgdG8gY3JlYXRlIGEgbmV3ICZxdW90O0Zyb250ZW5kIEVkaXQgQ29tcGFueSZxdW90OyB0ZW1wbGF0ZSBmcm9tIGRlZmF1bHRzIChhZnRlciByZXN0b3JpbmcgdGhlIGRlZmF1bHQgdGVtcGxhdGUgdG8gZmFjdG9yeSBkZWZhdWx0cyBpbiB0aGUgZGVmYXVsdCB0ZW1wbGF0ZXMgdGFiLjwvcD4KICAgICA8cD5BZGRpdGlvbmFsbHkgeW91IHdpbGwgbmVlZCB0byBjcmVhdGUgbmV3IGZyb250ZW5kIGFsYnVtIHRlbXBsYXRlcy48L3A+CiAgIDwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTgueAogICA8dWw+CiAgICAgPGxpPk1vZGlmaWVzIHRoZSBjZF9jb21wYW55X2ZpbHRlciBhbmQgY2RfY29tcGFueV9xdWVyeSBjbGFzc2VzIHRvIGFsbG93IHF1ZXJ5aW5nIGxvY2F0aW9ucyBieSBhY3Rpdml0eSwgbW9zdCBjaGVja2lucywgb3IgbW9zdCBmYXZvcml0ZXMgKHJlcXVpcmVzIHRoZSBDR1NvY2lhbEFwcCBtb2R1bGUpLjwvbGk+CiAgICAgPGxpPkNvZGUgY2xlYW51cHMsIGFuZCBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xOS54CiAgIDx1bD4KICAgICA8bGk+QWRkcyBhbiBJY29uIGZpZWxkIHR5cGUgKGZyb20gQ0dHb29nbGVNYXBzIG9yIENHR29vZ2xlTWFwczIpPC9saT4KICAgICA8bGk+QWRkcyBhbiBBY3Rpdml0eSBmaWVsZCB0eXBlIChmcm9tIENHU29jaWFsQXBwKTwvbGk+CiAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcmUtb3JkZXIgY2F0ZWdvcmllcyBhbmQgaGllcmFyY2h5IGl0ZW1zLjwvbGk+CiAgICAgPGxpPk1vcmUgY29kZSBjbGVhbnVwcy48L2xpPgogICAgIDxsaT5IaWVyYXJjaHkgb3B0aW1pemF0aW9ucy48L2xpPgogICAgIDxsaT5BZGRzIHRoZSB7Y2RfaGllcmJyZWFkY3J1bWJ9IHBsdWdpbi48L2xpPgogICAgIDxsaT5BZGRzIHRoZSBoaWVyX2NoaWxkcmVuIHBhcmFtZXRlci48L2xpPgogICAgIDxsaT5Nb3JlIGluZGV4ZXMgZm9yIHByZWZvcm1hbmNlIDxlbT4oMS4xOS43KTwvZW0+PC9saT4KICAgICA8bGk+SW1wcm92ZWQgSGllcmFyY2h5IExpc3QgVGVtcGxhdGUgPGVtPigxLjE5LjcpPC9lbT48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjIwLngKICAgPHVsPgogICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIHRoZSBuYW1lIHBhcmFtZXRlciBpbiB0aGUgY2F0ZWdvcnkgbGlzdCBhY3Rpb24uPC9saT4KICAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byByZW9yZGVyIGZpZWxkIGRlZmluaXRpb25zLjwvbGk+CiAgICAgPGxpPlJlbW92ZXMgb2xkIHNlYXJjaCBhY3Rpb24uCiAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+ICBTaXRlcyB1c2luZyBDb21wYW55RGlyZWN0b3J5IHNlYXJjaCBmcm9tIHByaW9yIHRvIHZlcnNpb24gMS4xNSB3aWxsIG5lZWQgdG8gcmUtY3JlYXRlIHNlYXJjaCB0ZW1wbGF0ZXMuPC9wPgogICAgIDwvbGk+CiAgICAgPGxpPlJlbW92ZXMgb2xkIGZlX2VkaXQgYWN0aW9uLgogICAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAgU2l0ZXMgdXNpbmcgQ29tcGFueURpcmVjdG9yeSBmZV9lZGl0IGZyb20gcHJpb3IgdG8gdmVyc2lvbiAxLjE1IHdpbGwgbmVlZCB0byByZS1jcmVhdGUgZmVfZWRpdCB0ZW1wbGF0ZXMuPC9wPgogICAgIDwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMjEueAogICA8dWw+CiAgICAgPGxpPkFkZHMgc2F2ZWQgc2VhcmNoIGZ1bmN0aW9uYWxpdHkuPC9saT4KICAgICA8bGk+U2VhcmNoIGZpeGVzIGFuZCBpbXByb3ZlbWVudHM8L2xpPgogICAgIDxsaT5BZGRzIGZ1bGwgdGV4dCBzZWFyY2hpbmcgKGluIGJvb2xlYW4gbW9kZSk8L2xpPgogICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIHJlZmluaW5nIHRoZSBzZWFyY2g8L2xpPgogICA8L3VsPgogPC9saT4KICA8bGk+MS4yMi54CiAgICA8cD48c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlcmUgd2lsbCBiZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpc3N1ZXMgd2l0aCB0aGlzIHZlcnNpb24uPC9zcGFuPiAgUGFydGljdWxhcmx5IHdpdGggdGhlIGJyb3dzZWhpZXIgYW5kIGNhdGVnb3J5bGlzdCBhY3Rpb25zLiAgWW91IHdpbGwgbmVlZCB0byByZXZpc2UgeW91ciB0ZW1wbGF0ZXMgZm9yIHRoZXNlIHZpZXdzIChwbGVhc2UgcmVzZXQgdGhlIHByb3RvdHlwZSB0ZW1wbGF0ZXMgYW5kIHJlZmVyIHRvIHRoZW0gd2hlbiByZS1zdHlsaW5nIHlvdXIgdGVtcGxhdGVzKS48L3A+CiAgICA8cD5BZGRpdGlvbmFsbHksIHNlYXJjaGluZyB0aHJvdWdoIGNoaWxkIGNhdGVnb3JpZXMgYW5kIGNoaWxkIGhpZXJhcmNoaWVzIGlzIG5vdyBlbmFibGVkIGJ5IGRlZmF1bHQgd2l0aCB0aGUgaGllcj0gYW5kIGNhdGVnb3J5PSBwYXJhbWV0ZXJzLCBhbmQgY2FuIG9ubHkgYmUgZGlzYWJsZWQgd2l0aCB0aGUgbm9jaGlsZHJlbiBwYXJhbWV0ZXIuPC9wPgogICAgPHA+PHN0cm9uZz5EZXRhaWxzOjwvc3Ryb25nPgogICAgPHVsPgogICAgICA8bGk+QWRkcyBuZXN0ZWQgY2F0ZWdvcmllcy48L2xpPgogICAgICA8bGk+QWRkcyB0aGUgc3VtbWFyeXBhZ2UgcGFyYW1ldGVyIGZvciBkZXRhaWwsIGNhdGVnb3J5bGlzdCBhbmQgYnJvd3NlaGllciB2aWV3cy48L2xpPgogICAgICA8bGk+Tm8gbG9uZ2VyIGRlbGV0ZSBoaWVyYXJjaGllcyB3aXRoIGNoaWxkcmVuLjwvbGk+CiAgICAgIDxsaT5SZXdyaXRlIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLjwvcD4KICAgICAgPGxpPlJld3JpdGUgdGhlIGJyb3dzZWhpZXIgYWN0aW9uLjwvbGk+CiAgICAgIDxsaT5ObyBsb25nZXIgc3VwcG9ydCB0aGUgbmFtZSBwYXJhbWV0ZXIgaW4gY2F0ZWdvcnlsaXN0IGFjdGlvbi48L2xpPgogICAgICA8bGk+Tm8gbG9uZ2VyIHN1cHBvcnQgdGhlIGhpZXJfY2hpbGRyZW4gcGFyYW1ldGVyLi4uLiBzZWUgbm9jaGlsZHJlbjwvbGk+CiAgICAgIDxsaT5BZGRzIHNpbXBsZSBwcmV0dHkgdXJscyBmb3IgaGllcmFyY2h5IGJhc2VkIHN1bW1hcnkgdmlld3MuPC9saT4KICAgICAgPGxpPmNhdGVnb3J5bGlzdCBhbmQgYnJvd3NlaGllciBhY3Rpb25zIG5vdyBzdXBwb3J0IHRoZSBub3ByZXR0eSBzdHVmZiB0byBlbnRpcmVseSBkaXNhYmxlIHByZXR0eSBVUkxTIGFuZCBhbGxvdyBjb21wb3VuZGluZyBwYXJhbWV0ZXJzLjwvbGk+CiAgICAgIDxsaT5SZXdyaXRlIEFTQ0lJIGV4cG9ydCBhbmQgaW1wb3J0LgoJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgaW1wb3J0IGZvcm1hdCBpcyBzaW1pbGFyIHRvLCBidXQgbm8gbG9uZ2VyIGlkZW50aWNhbCB0byB0aGUgb2xkIG9uZS4gIFlvdSBtYXkgbmVlZCB0byBjaGFuZ2UgeW91ciBmaWxlcy48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5BZGRzIGZpbHRlcmluZywgYW5kIGVudGl0eSBkZWNvZGluZyB0byBmcm9udGVuZCB0ZXh0IGFuZCB0ZXh0IGFyZWEgZmllbGRzIDxlbT4oMS4yMi4zKTwvZW0+PC9saT4KCTxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGRpc2FibGUgdGhlIFdZU0lXWUcgZW50aXJlbHkgPGVtPigxLjIyLjYpPC9lbT48L2xpPikKCTxsaT5Ob3cgcmVxdWlyZSBQSFAgNS40LnggPGVtPigxLjIyLjkpPC9lbT48L2xpPgogICAgICA8bGk+QWRkcyB0aGUgYWpheF9hdXRvY29tcGxldGVfY2F0ZWdvcmllcyBhY3Rpb24gZm9yIHVzZSBpbiB2YXJpb3VzIGZvcm1zLiAoMS4yMi4xMykKICAgICAgICAgIEFsc28gYWRkcyBhIG5ldyBqYXZhc2NyaXB0IGNsYXNzIHRvIHdvcmsgYWxvbmcgc2lkZSB0aGlzIChkb2N1bWVudGF0aW9uIGlzIG9uIHRoZSB0b2RvIGxpc3QpCiAgICAgIDwvbGk+CiAgICAgIDxsaT5NaW5vciBjbGVhbnVwcyB0byB0aGUgc2VhcmNoIGFuZCBmZXN1Ym1pdCBhY3Rpb25zLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CgogICAgPGxpPjEuMjMueAoJPHVsPgoJPGxpPkFkZHMgdGhlIGFiY2xpc3QgYWN0aW9uIHdoaWNoIHByb3ZpZGVzIGFuIGFscGhhYmV0aWMgZGlyZWN0b3J5IChieSBjb21wYW55IG5hbWUpIGFuZCBhIHBhZ2luYXRlZCBzdW1tYXJ5IHZpZXcuPC9saT4KCTxsaT5TZWFyY2ggbW9kdWxlIG5vdyBpbmRleGVzIHRoZSBoaWVyYXJjaHkgbG9uZyBuYW1lIGFuZCBjYXRlZ29yeSBsb25nIG5hbWUuPC9saT4KCTwvdWw+CiAgICA8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[A directory like module for companies.  Allows adding/editing/importing/exporting company definitions, and various ways of displaying the company entries including search.  This module integrates well with CGGoogleMaps.]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.53.1</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.9</requiredversion>
	</requires>
	<requires>
	  <requiredname>JQueryTools</requiredname>
	  <requiredversion>1.3.9</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSmartImage</requiredname>
	  <requiredversion>1.21</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.abclist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovLyBzZXR1cAokYWJjbGlzdCA9IG51bGw7CiRsZXR0ZXIgPSBudWxsOwoKJHRoZXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRBQkNMSVNUX1RFTVBMQVRFKTsKJHRoZXRlbXBsYXRlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2FiY2xpc3R0ZW1wbGF0ZScsJHRoZXRlbXBsYXRlKTsKaWYoICFlbmRzd2l0aCgkdGhldGVtcGxhdGUsJy50cGwnKSApICR0aGV0ZW1wbGF0ZSA9ICdhYmNsaXN0XycuJHRoZXRlbXBsYXRlOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7Cgp0cnkgewogICAgLy8gY2xlYW4gdXAgcGFyYW1zLCBhbmQgYnVpbGQgYW4gYWxwaGFiZXRpYyBsaXN0CiAgICAkdXJscGFybXMgPSBbXTsKICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdyZXR1cm5pZCc6CiAgICAgICAgY2FzZSAnYWN0aW9uJzoKICAgICAgICBjYXNlICdhYmNsaXN0dGVtcGxhdGUnOgogICAgICAgIGNhc2UgJ21vZHVsZSc6CiAgICAgICAgY2FzZSAnY2RfZW5jb2RlZCc6CiAgICAgICAgY2FzZSAnY2Rfc2lnJzoKICAgICAgICAgICAgLy8gaWdub3JlIHRoZXNlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkdXJscGFybXNbJGtleV0gPSAkdmFsOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgJG5hbWUgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ25hbWUnLCdBJyk7CiAgICAkYWxwaGEgPSAkbmFtZSA9ICRuYW1lWzBdOyAvLyBvbmUgY2hhcmFjdGVyIG9ubHkgZm9yIHRoaXMgYWN0aW9uLgogICAgJG5hbWUgLj0gJyonOwogICAgJHNxbCA9ICdTRUxFQ1QgVUNBU0UoU1VCU1RSKGNvbXBhbnlfbmFtZSwxLDEpKSBBUyBhbHBoYSwgQ09VTlQoaWQpIEFTIGNudAogICAgICAgICAgICBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgc3RhdHVzID0gPwogICAgICAgICAgICBHUk9VUCBCWSAgVUNBU0UoU1VCU1RSKGNvbXBhbnlfbmFtZSwxLDEpKSc7CiAgICAkbGlzdCA9ICRkYi0+R2V0QXJyYXkoJHNxbCwgWyAncHVibGlzaGVkJyBdKTsKICAgIGlmKCAhY291bnQoJGxpc3QpICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ05vIGRhdGEgdG8gZGlzcGxheScpOwogICAgJGFiY2xpc3QgPSBbXTsKICAgIGZvcmVhY2goIHJhbmdlKCdBJywnWicpIGFzICRjaGFyICkgewogICAgICAgICRhYmNsaXN0WyRjaGFyXSA9IFsgJ3VybCcgPT4gbnVsbCwgJ2NvdW50JyA9PiAwLCAnY3VycmVudCcgPT4gRkFMU0UgXTsKICAgIH0KICAgIGZvcmVhY2goICRsaXN0IGFzICRvbmUgKSB7CiAgICAgICAgJGFiY2xpc3RbJG9uZVsnYWxwaGEnXV1bJ2N1cnJlbnQnXSA9ICgkYWxwaGEgPT0gJG9uZVsnYWxwaGEnXSkgPyBUUlVFIDogRkFMU0U7CiAgICAgICAgJGFiY2xpc3RbJG9uZVsnYWxwaGEnXV1bJ2NvdW50J10gPSAkb25lWydjbnQnXTsKICAgICAgICAkdXJscGFybXNbJ25hbWUnXSA9ICRvbmVbJ2FscGhhJ107CiAgICAgICAgJHVybHBhcm1zWydwYWdlJ10gPSAxOwogICAgICAgICRhYmNsaXN0WyRvbmVbJ2FscGhhJ11dWyd1cmwnXSA9ICR0aGlzLT5jcmVhdGVfdXJsKCdjbnRudDAxJywnYWJjbGlzdCcsJHJldHVybmlkLCR1cmxwYXJtcyk7CiAgICB9CiAgICAkdHBsLT5hc3NpZ24oJ2FiY2xpc3QnLCRhYmNsaXN0KTsKCiAgICAvLyBmcm9tIGhlcmUsIHdlIGFyZSBqdXN0IGdlbmVyYXRpbmcgYSBzdW1tYXJ5IHZpZXcuCiAgICAkZmlsdGVyID0gbmV3IGNkX2NvbXBhbnlfZmlsdGVyKCRwYXJhbXMpOwogICAgJGZpbHRlclsnbmFtZSddID0gJG5hbWU7CiAgICAkZmlsdGVyWydpZCddPSAkaWQ7CiAgICAkZmlsdGVyWydyZXR1cm5pZCddID0gJHJldHVybmlkOwogICAgJHF1ZXJ5ID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGZpbHRlcik7CiAgICAkcGFnaW5hdGlvbiA9ICRxdWVyeS0+Z2V0X3BhZ2luYXRpb24oKTsKICAgICRwYWdpbmF0aW9uLT5zZXRfYWN0aW9uKCdhYmNsaXN0Jyk7CiAgICAkcGFnaW5hdGlvbi0+c2V0X2V4dHJhcGFyYW1zKCBbICduYW1lJyA9PiAkbmFtZV0gKTsKICAgICRwYWdlID0gJHBhZ2luYXRpb24tPmdldF9jdXJyZW50X3BhZ2UoKTsKICAgICR0cGwtPmFzc2lnbignaXRlbXMnLCRxdWVyeS0+Z2V0X3Jlc3VsdHMoJ2NudG50MDEnLCRyZXR1cm5pZCkpOwogICAgJHRwbC0+YXNzaWduKCdpdGVtY291bnQnLCRxdWVyeS0+Z2V0X3Jlc3VsdF9jb3VudCgpKTsKICAgICR0cGwtPmFzc2lnbigndG90YWxtYXRjaGVzJywkcXVlcnktPmdldF90b3RhbF9tYXRjaGVzKCkpOwogICAgJHRwbC0+YXNzaWduKCdwYWdpbmF0aW9uJywkcGFnaW5hdGlvbik7CiAgICAkdHBsLT5hc3NpZ24oJ2N1cnBhZ2UnLCRwYWdlKTsKICAgICR0cGwtPmFzc2lnbignZmlsdGVyJywkZmlsdGVyKTsKCSR0cGwtPmFzc2lnbignaGllcmFyY2h5X2xpc3QnLGFycmF5X2ZsaXAoY2RfdXRpbHM6OmdldF9oaWVyYXJjaHlfbGlzdCgpKSk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAkdHBsLT5hc3NpZ24oJ2Vycm9yJywkZS0+R2V0TWVzc2FnZSgpKTsKfQoKJHRwbC0+ZGlzcGxheSgpOw==]]></data>
	</file>
	<file>
	  <filename>/action.addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSBleGl0OwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX3NldHRpbmdzJywgJHJldHVybmlkKTsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKJGNhdGlkID0gJyc7CiR0bXBkaXIgPSAnJzsKJGRlc3RkaXIgPSAnJzsKJGltYWdlID0gJyc7CiRkZXNjcmlwdGlvbiA9ICcnOwokbmFtZSA9IHRyaW0oY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnbmFtZScpKTsKJGRlc2NyaXB0aW9uID0gY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZGVzY3JpcHRpb24nKTsKJGV4dHJhMSA9IGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2V4dHJhMScpOwokZXh0cmEyID0gY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZXh0cmEyJyk7CiRleHRyYTMgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdleHRyYTMnKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIHsKICAkZXJyb3IgPSAnJzsKICBpZiggJG5hbWUgPT0gJycgKSAkZXJyb3IgPSAkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKTsKICBpZiggJGVycm9yID09ICcnICYmIHByZWdfbWF0Y2goJy9bXlx3IF0vJywkbmFtZSkgKSAkZXJyb3IgPSAkdGhpcy0+TGFuZygnYmFkbmFtZWdpdmVuJyk7CgogIGlmKCAhJGVycm9yICkgewoJLy8gaGFuZGxlIGltYWdlIHVwbG9hZC4KCSR0bXBkaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdjb21wYW55ZGlyZWN0b3J5JywndScuJHVzZXJpZCk7CgkkdXBsb2FkZXIgPSBjZ2Vfc2V0dXA6OmdldF91cGxvYWRlcigkaWQsJHRtcGRpcik7CgkkdG1wID0gJHVwbG9hZGVyLT5jaGVja191cGxvYWQoJ2ltYWdlJyxGQUxTRSxGQUxTRSk7CglpZiggISR0bXAgJiYgJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CgkgICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSk7Cgl9CgllbHNlIHsKCSAgY2dlX2Rpcjo6bWtkaXJyKCR0bXBkaXIpOwoJICAkaW1hZ2UgPSAkdXBsb2FkZXItPmhhbmRsZV91cGxvYWQoJ2ltYWdlJyk7CgkgIGlmKCAhJGltYWdlICYmICR1cGxvYWRlci0+Z2V0X2Vycm9yKCkgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgJGVycm9yID0gJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkdXBsb2FkZXItPmdldF9lcnJvcigpKTsKCX0KCWlmKCAkaW1hZ2UgPT09IDAgKSAkaW1hZ2UgPSAnJzsKICB9CgogIGlmKCAhJGVycm9yICkgewoJJHF1ZXJ5ID0gJ1NFTEVDVCBDT0FMRVNDRShNQVgoaW9yZGVyKSwwKSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJzsKCSRpb3JkZXIgPSAoaW50KSRkYi0+R2V0T25lKCRxdWVyeSk7CgkkaW9yZGVyKys7CgkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMKICAgICAgICAgICAgICAobmFtZSwgaW1hZ2UsIGRlc2NyaXB0aW9uLCBleHRyYTEsIGV4dHJhMiwgZXh0cmEzLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgaW9yZGVyKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sTk9XKCksTk9XKCksPyknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkaW1hZ2UsICRkZXNjcmlwdGlvbiwgJGV4dHJhMSwgJGV4dHJhMiwgJGV4dHJhMywgJGlvcmRlcikgKTsKCglpZiggISRkYnIgKQoJICAkZXJyb3IgPSAkZGItPkVycm9yTXNnKCkuJyAtLSAnLiRkYi0+c3FsOwoJZWxzZQoJICAkY2F0aWQgPSAkZGItPkluc2VydF9JRCgpOwogIH0KCiAgLy8gbW92ZSBpbWFnZXMgaW50byBmaW5hbCBkZXN0aW5hdGlvbnMKICBpZiggISRlcnJvciAmJiAkY2F0aWQgJiYgJGltYWdlICYmICR0bXBkaXIgJiYgaXNfZGlyKCR0bXBkaXIpKSB7CgkkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdjYXQnLiRjYXRpZCk7CgljZ2VfZGlyOjpta2RpcnIoJGRlc3RkaXIpOwoKCSRmaWxlcyA9IGdsb2IoJHRtcGRpci4nLyouKicpOwoJZm9yZWFjaCggJGZpbGVzIGFzICRmaWxlICkgewoJICAkYm4gPSBiYXNlbmFtZSgkZmlsZSk7CgkgIEByZW5hbWUoJGZpbGUsY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkYm4pKTsKCX0KCWNnZV9kaXI6OnJlY3Vyc2l2ZV9ybWRpcigkdG1wZGlyKTsKCSR0bXBkaXIgPSAnJzsKICB9CgogIGlmKCAhJGVycm9yICkgewoJYXVkaXQoJGNhdGlkLCR0aGlzLT5HZXROYW1lKCksJ0FkZGVkIGNhdGVnb3J5ICcuJG5hbWUpOwoJLy8gbm8gZXJyb3JzLCBnZXQgb3V0YSBoZXJlLgoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnY2F0ZWdvcnlhZGRlZCcsICdhY3RpdmVfdGFiJyA9PiAnY2F0ZWdvcmllcycpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX3NldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICB9CgogIC8vIGRpc3BsYXkgZXJyb3JzCiAgaWYoICR0bXBkaXIgJiYgaXNfZGlyKCR0bXBkaXIpICkgY2dlX2Rpcjo6cmVjdXJzaXZlX3JtZGlyKCR0bXBkaXIpOwogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9yKTsKfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZScsJGltYWdlKTsKJHNtYXJ0eS0+YXNzaWduKCdkZXNjcmlwdGlvbicsJGRlc2NyaXB0aW9uKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZXh0cmExJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdleHRyYTEnLCAkZXh0cmExLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRleHRyYTInLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2V4dHJhMicsICRleHRyYTIsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGV4dHJhMycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZXh0cmEzJywgJGV4dHJhMywgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5fZ2VvY29kZScsY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjYXRlZ29yeS50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.addcompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSByZXR1cm47CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7Cn0KCiRjb21wYW55X25hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2V4X2NvbXBhbnlfbmFtZSddKSkgewogICRjb21wYW55X25hbWUgPSAkcGFyYW1zWydleF9jb21wYW55X25hbWUnXTsKfQoKJHVybCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1sndXJsJ10pKSB7CiAgJHVybCA9ICRwYXJhbXNbJ3VybCddOwp9CgokYWRkcmVzcyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWRkcmVzcyddKSkgewogICRhZGRyZXNzID0gJHBhcmFtc1snYWRkcmVzcyddOwp9CgokbGF0aXR1ZGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2xhdGl0dWRlJ10pKSB7CiAgJGxhdGl0dWRlID0gJHBhcmFtc1snbGF0aXR1ZGUnXTsKfQoKJGxvbmdpdHVkZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snbG9uZ2l0dWRlJ10pKSB7CiAgJGxvbmdpdHVkZSA9ICRwYXJhbXNbJ2xvbmdpdHVkZSddOwp9CgokaGllcnBvcyA9ICcnOwppZiggaXNzZXQoJHBhcmFtc1snaGllcnBvcyddKSApIHsKICAkaGllcnBvcyA9IChpbnQpJHBhcmFtc1snaGllcnBvcyddOwp9CgokdGVsZXBob25lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyd0ZWxlcGhvbmUnXSkpIHsKICAkdGVsZXBob25lID0gJHBhcmFtc1sndGVsZXBob25lJ107Cn0KCiRmYXggPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZheCddKSkgewogICRmYXggPSAkcGFyYW1zWydmYXgnXTsKfQoKJGNvbnRhY3RfZW1haWwgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbnRhY3RfZW1haWwnXSkpIHsKICAkY29udGFjdF9lbWFpbCA9ICRwYXJhbXNbJ2NvbnRhY3RfZW1haWwnXTsKfQoKJHdlYnNpdGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3dlYnNpdGUnXSkpIHsKICAkd2Vic2l0ZSA9ICRwYXJhbXNbJ3dlYnNpdGUnXTsKfQoKJGRldGFpbHMgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHMnXSkpIHsKICAkZGV0YWlscyA9ICRwYXJhbXNbJ2RldGFpbHMnXTsKfQoKJHN0YXR1cyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snc3RhdHVzJ10pKSB7CiAgJHN0YXR1cyA9ICRwYXJhbXNbJ3N0YXR1cyddOwp9Cgokb3duZXJfaWQgPSAtMTsKaWYgKGlzc2V0KCRwYXJhbXNbJ293bmVyX2lkJ10pKSB7CiAgJG93bmVyX2lkID0gJHBhcmFtc1snb3duZXJfaWQnXTsKfQoKJHVzZV93eXNpd3lnID0gKGJvb2wpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbnd5c2l3eWcnLDEpOwokZmllbGRkZWZzID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnModHJ1ZSk7CgpmdW5jdGlvbiBoYW5kbGVfaW5pdGlhbF91cGxvYWQoJGlkLCAkZmllbGRuYW1lKQp7CiAgJGdDbXMgPSBjbXNtcygpOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCglpZiAoIWlzX2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScpKSB7CgkJQG1rZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5Jyk7Cgl9CglpZiAoIWlzX2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcpKSB7CgkJQG1rZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndG1wJyk7Cgl9CgoJQGNtc19tb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1skaWQgLiAkZmllbGRuYW1lXVsndG1wX25hbWUnXSwgJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0bXAnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuIGJhc2VuYW1lKCRfRklMRVNbJGlkIC4gJGZpZWxkbmFtZV1bJ25hbWUnXSkpOwoKCXJldHVybiBiYXNlbmFtZSgkX0ZJTEVTWyRpZCAuICRmaWVsZG5hbWVdWyduYW1lJ10pOwp9CgpmdW5jdGlvbiBoYW5kbGVfdG1wX3VwbG9hZCgkaWQsICRpdGVtaWQsICRmaWxlbmFtZSkKewogICRnQ21zID0gY21zbXMoKTsKICAkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwoKICBpZiAoIWlzX2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQpKSB7CglAbWtkaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpZCcgLiAkaXRlbWlkKTsKICB9CiAgQHJlbmFtZSgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lLCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lKTsKfQoKJGltYWdlID0gJyc7CmlmIChpc3NldCgkX0ZJTEVTWyRpZCAuICdpbWFnZXVwbG9hZCddKSAmJiAkX0ZJTEVTWyRpZCAuICdpbWFnZXVwbG9hZCddWyd0bXBfbmFtZSddICE9ICcnKSB7CiAgJGltYWdlID0gaGFuZGxlX2luaXRpYWxfdXBsb2FkKCRpZCwgJ2ltYWdldXBsb2FkJyk7Cn0KIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ltYWdlY3VycmVudCddKSkgewogICAkaW1hZ2UgPSAkcGFyYW1zWydpbWFnZWN1cnJlbnQnXTsKfQoKJGxvZ28gPSAnJzsKaWYgKGlzc2V0KCRfRklMRVNbJGlkIC4gJ2xvZ291cGxvYWQnXSkgJiYgJF9GSUxFU1skaWQgLiAnbG9nb3VwbG9hZCddWyd0bXBfbmFtZSddICE9ICcnKSB7CiAgJGxvZ28gPSBoYW5kbGVfaW5pdGlhbF91cGxvYWQoJGlkLCAnbG9nb3VwbG9hZCcpOwp9CmVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2xvZ29jdXJyZW50J10pKSB7CiAgJGxvZ28gPSAkcGFyYW1zWydsb2dvY3VycmVudCddOwp9CgokdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogIC8vIHN1Ym1pdCBpcyBwcmVzc2VkLgogICRlcnJvciA9ICcnOwoKICBpZiggJGNvbXBhbnlfbmFtZSA9PSAnJyApIHsKCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdub2NvbXBhbnluYW1lZ2l2ZW4nKTsKICB9CgogIGlmKCAhJGVycm9yICYmICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcycpICYmIGNkX3V0aWxzOjpjb21wYW55X25hbWVfZXhpc3RzKCRjb21wYW55X25hbWUpICkgewoJJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2R1cGxpY2F0ZV9jb21wYW55JywkY29tcGFueV9uYW1lKTsKICB9CgogIGlmKCAhJGVycm9yICYmICR1cmwgPT0gJycgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkgKSB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfdXJscmVxdWlyZWQnKTsKICB9CgogIGlmKCAhJGVycm9yICYmICR1cmwgPT0gJycgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9hdXRvY3JlYXRlJywwKSApIHsKCSR1cmwgPSBjZF91dGlsczo6Z2VuZXJhdGVfdXJsKCRjb21wYW55X25hbWUpOwoJaWYoICEkdXJsICkgewoJICAkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZG5hbWUnKTsKCX0KICB9CgogIGlmKCAhJGVycm9yICYmICR1cmwgIT0gJycgKSB7CgkkcmVzID0gY2RfdXRpbHM6OnZhbGlkYXRlX3VybCgkdXJsKTsKCWlmKCAhJHJlcyApIHsKCSAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWR1cmwnKTsKCX0KICB9CgogIHRyeSB7CgkkdGhlX2NvbXBhbnkgPSBuZXcgY2RfY29tcGFueTsKCSR0aGVfY29tcGFueS0+Y29tcGFueV9uYW1lID0gJGNvbXBhbnlfbmFtZTsKCSR0aGVfY29tcGFueS0+dXJsID0gJHVybDsKCSR0aGVfY29tcGFueS0+YWRkcmVzcyA9ICRhZGRyZXNzOwoJJHRoZV9jb21wYW55LT50ZWxlcGhvbmUgPSAkdGVsZXBob25lOwoJJHRoZV9jb21wYW55LT5mYXggPSAkZmF4OwoJJHRoZV9jb21wYW55LT5jb250YWN0X2VtYWlsID0gJGNvbnRhY3RfZW1haWw7CgkkdGhlX2NvbXBhbnktPndlYnNpdGUgPSAkd2Vic2l0ZTsKCSR0aGVfY29tcGFueS0+ZGV0YWlscyA9ICRkZXRhaWxzOwoJJHRoZV9jb21wYW55LT5waWN0dXJlX2xvY2F0aW9uID0gJGltYWdlOwoJJHRoZV9jb21wYW55LT5sb2dvX2xvY2F0aW9uID0gJGxvZ287CgkkdGhlX2NvbXBhbnktPnN0YXR1cyA9ICRzdGF0dXM7CgkkdGhlX2NvbXBhbnktPmxhdGl0dWRlID0gJGxhdGl0dWRlOwoJJHRoZV9jb21wYW55LT5sb25naXR1ZGUgPSAkbG9uZ2l0dWRlOwoJJHRoZV9jb21wYW55LT5vd25lcl9pZCA9ICRvd25lcl9pZDsKCSR0aGVfY29tcGFueS0+aGllcl9pZCA9ICRoaWVycG9zOwogIH0KICBjYXRjaCggRXhjZXB0aW9uICRlICkgewoJJGVycm9yID0gJGUtPkdldE1lc3NhZ2UoKTsKICB9CgogIGlmICggJGVycm9yICkgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3IpOwogIH0KICBlbHNlIHsKCSR0aGVfY29tcGFueS0+c2F2ZShGQUxTRSk7IC8vIHNhdmUsIGJ1dCBubyBmaWVsZCBkYXRhIGV0Yy4gYW5kIGRvbid0IHNlbmQgZXZlbnRzCgkkY2lkID0gJHRoZV9jb21wYW55LT5pZDsKCgkkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNpZCk7CglpZiggY291bnQoJGZpZWxkZGVmcykgKSB7CgkgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJGZpZWxkZGVmICkgewoJCSRmaWVsZGRlZiA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRmaWVsZGRlZik7CgkJc3dpdGNoKCAkZmllbGRkZWYtPnR5cGUgKSB7CgkJY2FzZSAnZmlsZSc6CgkJY2FzZSAnaW1hZ2UnOgoJCSAgY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKCQkgICR1cGxvYWRlciA9IGNnZV9zZXR1cDo6Z2V0X3VwbG9hZGVyKCRpZCwkZGVzdGRpcik7CgkJICBpZiggaXNzZXQoJGZpZWxkZGVmLT5kYXRhKSAmJiAkZmllbGRkZWYtPmRhdGEgIT0gJycgKSB7CgkJCSR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkZmllbGRkZWYtPmRhdGEpOwoJCSAgfQoJCSAgJHRtcCA9ICR1cGxvYWRlci0+aGFuZGxlX3VwbG9hZCgnY3VzdG9tZmllbGQnLCcnLCdmaWVsZC0nLiRmaWVsZGRlZi0+aWQpOwoJCSAgaWYoICEkdG1wICkgewoJCQlpZiggJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CgkJCSAgJGVycm9yID0gJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkdXBsb2FkZXItPmdldF9lcnJvcigpKTsKCQkJICBicmVhazsKCQkJfQoJCSAgfQoJCSAgZWxzZSB7CgkJCSRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0gPSAkdG1wOwoJCSAgfQoJCSAgYnJlYWs7CgoJCWNhc2UgJ211bHRpc2VsZWN0JzoKCQkgIGlmKCBpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdKSAmJgoJCQkgIGlzX2FycmF5KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pICkgewoJCQkkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdID0gaW1wbG9kZSgnfn4nLCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pOwoJCSAgfQoJCSAgYnJlYWs7CgkJfQoJICB9CgkgIGlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddKSkgewoJCWZvcmVhY2ggKCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10gYXMgJGs9PiR2KSB7CgkJICBpZiAoc3RhcnRzd2l0aCgkaywgJ2ZpZWxkLScpKSB7CgkJCSRmaWQgPSBzdWJzdHIoJGssIDYpOwoJCQkkdGhlX2NvbXBhbnktPnNldF9maWVsZCgkZmlkLCR2KTsKCQkgIH0KCQl9CgkgIH0KCX0gLy8gaWYgY291bnQgZmllbGRkZWZzCgoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J10pKSB7CgkgIGZvcmVhY2ggKCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J10gYXMgJGs9PiR2KSB7CgkJaWYgKHN0YXJ0c3dpdGgoJGssICdpZC0nKSkgewoJCSAgJGZpZCA9IHN1YnN0cigkaywgMyk7CgkJICAkZXh0cmExID0gJyc7CgkJICAkZXh0cmEyID0gJyc7CgkJICAkZXh0cmEzID0gJyc7CgkJICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnlfZXh0cmExJ11bJGtdKSApIHsKCQkJJGV4dHJhMSA9ICRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5X2V4dHJhMSddWyRrXTsKCQkgIH0KCQkgIGlmKCBpc3NldCgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeV9leHRyYTInXVska10pICkgewoJCQkkZXh0cmEyID0gJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnlfZXh0cmEyJ11bJGtdOwoJCSAgfQoJCSAgaWYoIGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5X2V4dHJhMyddWyRrXSkgKSB7CgkJCSRleHRyYTMgPSAkX1JFUVVFU1RbJGlkLidjYXRlZ29yeV9leHRyYTMnXVska107CgkJICB9CgoJCSAgJHRoZV9jb21wYW55LT5zZXRfY2F0ZWdvcnkoJGZpZCwxLCRleHRyYTEsJGV4dHJhMiwkZXh0cmEzKTsKCQl9CgkgIH0KCX0KCgkkdGhlX2NvbXBhbnktPnNhdmUoKTsKCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kdGhlX2NvbXBhbnktPmlkKTsKCglpZiAoJGltYWdlICE9ICcnKSB7CgkgIC8vIGRlcHJlY2F0ZWQsIHVzZSB0aGUgdXBsb2FkZXIgc3R1ZmYuCgkgIGhhbmRsZV90bXBfdXBsb2FkKCRpZCwgJGNpZCwgJGltYWdlKTsKCX0KCglpZiAoJGxvZ28gIT0gJycpIHsKCSAgLy8gZGVwcmVjYXRlZCwgdXNlIHRoZSB1cGxvYWRlciBzdHVmZi4KCSAgaGFuZGxlX3RtcF91cGxvYWQoJGlkLCAkY2lkLCAkbG9nbyk7Cgl9CgoJLy9VcGRhdGUgc2VhcmNoIGluZGV4CglpZiggJHRoZV9jb21wYW55LT5zdGF0dXMgPT0gJ3B1Ymxpc2hlZCcgKSB7CgkgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9zZWFyY2hfbW9kdWxlKCk7CgkgIGlmICgkbW9kdWxlKSAkbW9kdWxlLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCR0aGVfY29tcGFueS0+aWQsJ2NvbXBhbnknLCR0aGVfY29tcGFueS0+Z2V0X3NlYXJjaF93b3JkcygpKTsKCX0KCglhdWRpdCgkY2lkLCR0aGlzLT5HZXROYW1lKCksJ0FkZGVkIENvbXBhbnkgJy4kY29tcGFueV9uYW1lKTsKCgkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdjb21wYW55YWRkZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2NvbXBhbmllcycpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7CiAgfQp9CgokZmllbGRhcnJheSA9IGFycmF5KCk7CgppZiAoY291bnQoJGZpZWxkZGVmcykgPiAwKSB7CiAgZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpIHsKCSRmaWVsZGRlZiA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRmaWVsZGRlZik7CgkkZmllbGQgPSBuZXcgc3RkQ2xhc3MoKTsKCgkkdmFsdWUgPSAnJzsKCWlmIChpc3NldCgkZmllbGRkZWYtPnZhbHVlKSkgewoJICAkdmFsdWUgPSAkZmllbGRkZWYtPnZhbHVlOwoJfQoKCWlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdKSkKCSAgJHZhbHVlID0gJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXTsKCSRmaWVsZC0+dHlwZSA9ICRmaWVsZGRlZi0+dHlwZTsKCSRmaWVsZC0+aWQgPSAkZmllbGRkZWYtPmlkOwoJJGZpZWxkLT5uYW1lID0gJGZpZWxkZGVmLT5uYW1lOwoJc3dpdGNoICgkZmllbGRkZWYtPnR5cGUpIHsKCWNhc2UgJ2Ryb3Bkb3duJzoKCSAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsYXJyYXlfZmxpcCgkZmllbGRkZWYtPm9wdGlvbnMpLC0xLCR2YWx1ZSk7CgkgIGJyZWFrOwoKCWNhc2UgJ211bHRpc2VsZWN0JzoKCSAgaWYoICFpc19hcnJheSgkdmFsdWUpICkgJHZhbHVlID0gZXhwbG9kZSgnfn4nLCR2YWx1ZSk7CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtdJywKCQkJCQkJCQkJCQkJCSAgIGFycmF5X2ZsaXAoJGZpZWxkZGVmLT5vcHRpb25zKSwKCQkJCQkJCQkJCQkJCSAgICR2YWx1ZSxtaW4oNSxjb3VudCgkdmFsdWUpKSk7CgkgIGJyZWFrOwoKCWNhc2UgJ2ZpbGUnOgoJY2FzZSAnaW1hZ2UnOgoJICAkZmllbGQtPmlucHV0X2JveCA9ICc8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iJy4kaWQuJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXSIgdmFsdWU9IiIgc2l6ZT0iODAiLz4nOwoJICBpZiggJHZhbHVlICkgewoJCSRmaWVsZC0+aW5wdXRfYm94IC49ICI8YnIvPnskdmFsdWV9OiZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwieyRpZH1kZWxldGVmaWxlW2ZpZWxkLXskZmllbGRkZWYtPmlkfV1cIiB2YWx1ZT1cIjFcIi8+KHskdGhpcy0+TGFuZygnZGVsZXRlJyl9KSI7CgkgIH0KCSAgYnJlYWs7CgoJY2FzZSAnY2hlY2tib3gnOgoJICAkZmllbGQtPmlucHV0X2JveCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInIC4gJGlkIC4gJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScgLiAnIiB2YWx1ZT0iZmFsc2UiIC8+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAndHJ1ZScsICR2YWx1ZSA9PSAndHJ1ZScpOwoJICBicmVhazsKCgljYXNlICd0ZXh0YXJlYSc6CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCR1c2Vfd3lzaXd5ZywgJGlkLCAkdmFsdWUsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nKTsKCSAgYnJlYWs7CgoJY2FzZSAnYWN0aXZpdHknOgoJICAkY2dzb2MgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHU29jaWFsQXBwJyk7CgkgIGlmKCBpc19vYmplY3QoJGNnc29jKSApIHsKCQkkb3B0aW9ucyA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYWxsX2FzX2Ryb3Bkb3duKEZBTFNFKTsKCQlpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBleHBsb2RlKCd+ficsJHZhbHVlKTsKCQkkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bXScsCgkJCQkJCQkJCQkJCQkJIGFycmF5X2ZsaXAoJG9wdGlvbnMpLAoJCQkJCQkJCQkJCQkJCSAkdmFsdWUsbWluKDUsY291bnQoJHZhbHVlKSkpOwoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ2ljb24nOgoJICBpZiggKCRpY29ucyA9IGNkX3V0aWxzOjpnZXRfaWNvbl9saXN0KCkpICkgewoJCSRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCRpY29ucywnJywkdmFsdWUpOwoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ3RleHRib3gnOgoJZGVmYXVsdDoKCSAgJG1heGxlbmd0aCA9ICRmaWVsZGRlZi0+bWF4X2xlbmd0aDsKCSAgJHNpemUgPSBtaW4oJG1heGxlbmd0aCw4MCk7CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsICRzaXplLCAkbWF4bGVuZ3RoKTsKCSAgYnJlYWs7Cgl9CgkkZmllbGRhcnJheVtdID0gJGZpZWxkOwogIH0KfQoKCi8vIGdldCB1c2VyIGluZm9ybWF0aW9uCiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoIGlzX29iamVjdCgkZmV1KSApIHsKICAkdG1wID0gJGZldS0+R2V0VXNlcnNJbkdyb3VwKCk7CiAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJJHVzZXJzID0gYXJyYXkoKTsKCSR1c2Vyc1stMV0gPSAkdGhpcy0+TGFuZygnbm9uZScpOwoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkgICR1c2Vyc1skdG1wWyRpXVsnaWQnXV0gPSAkdG1wWyRpXVsndXNlcm5hbWUnXTsKCX0KCSRzbWFydHktPmFzc2lnbignZmV1X3VzZXJzJywkdXNlcnMpOwogIH0KfQoKJGNhdGVnb3JpZXMgPSBjZF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoKTsKJGNhdGFycmF5ID0gYXJyYXkoKTsKaWYgKGNvdW50KCRjYXRlZ29yaWVzKSA+IDApIHsKICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAkb25lY2F0KSB7CgkkZmllbGQgPSBuZXcgc3RkQ2xhc3MoKTsKCgkkdmFsdWUgPSAnZmFsc2UnOwoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J11bJ2lkLScuJG9uZWNhdC0+aWRdKSkgJHZhbHVlID0gJ3RydWUnOwoKCSRmaWVsZC0+aWQgPSAkb25lY2F0LT5pZDsKICAgICAgICAkZmllbGQtPmRlcHRoID0gY291bnQoZXhwbG9kZSgnLicsJG9uZWNhdC0+aGllcmFyY2h5KSktMTsKCSRmaWVsZC0+bmFtZSA9ICRvbmVjYXQtPm5hbWU7CgkkZmllbGQtPmNoZWNrYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY2F0ZWdvcnlbaWQtJy4kb25lY2F0LT5pZC4nXScsICR2YWx1ZSwgJ3RydWUnKTsKCSRmaWVsZC0+ZXh0cmExID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2NhdGVnb3J5X2V4dHJhMVtpZC0nLiRvbmVjYXQtPmlkLiddJywgJycsNjAsMjU1KTsKCSRmaWVsZC0+ZXh0cmEyID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2NhdGVnb3J5X2V4dHJhMltpZC0nLiRvbmVjYXQtPmlkLiddJywgJycsNjAsMjU1KTsKCSRmaWVsZC0+ZXh0cmEzID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2NhdGVnb3J5X2V4dHJhM1tpZC0nLiRvbmVjYXQtPmlkLiddJywgJycsNjAsMjU1KTsKCgkkY2F0YXJyYXlbXSA9ICRmaWVsZDsKICB9Cn0KCiNEaXNwbGF5IHRlbXBsYXRlCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZGRjb21wYW55JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2NvbXBhbnlfbmFtZScsJGNvbXBhbnlfbmFtZSk7CiRzbWFydHktPmFzc2lnbigndXJsJywkdXJsKTsKCiRzbWFydHktPmFzc2lnbignb3duZXJfaWQnLCRvd25lcl9pZCk7CiRzbWFydHktPmFzc2lnbignYWRkcmVzc3RleHQnLCAkdGhpcy0+TGFuZygnYWRkcmVzcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdhZGRyZXNzJywkYWRkcmVzcyk7CiRzbWFydHktPmFzc2lnbignaW5wdXRhZGRyZXNzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdhZGRyZXNzJywgJGFkZHJlc3MsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxhdGl0dWRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsYXRpdHVkZScsICRsYXRpdHVkZSwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bG9uZ2l0dWRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsb25naXR1ZGUnLCAkbG9uZ2l0dWRlLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRoaWVycG9zJywkdGhpcy0+Q3JlYXRlUGFyZW50RHJvcGRvd24oJGlkLC0xLCRoaWVycG9zLCdoaWVycG9zJykpOwokc21hcnR5LT5hc3NpZ24oJ3RlbGVwaG9uZXRleHQnLCAkdGhpcy0+TGFuZygndGVsZXBob25lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0dGVsZXBob25lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0ZWxlcGhvbmUnLCAkdGVsZXBob25lLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignZmF4dGV4dCcsICR0aGlzLT5MYW5nKCdmYXgnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRmYXgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZheCcsICRmYXgsIDMwLCAyNTUpKTsKCiRzbWFydHktPmFzc2lnbignZW1haWx0ZXh0JywgJHRoaXMtPkxhbmcoJ2NvbnRhY3RlbWFpbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVtYWlsJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjb250YWN0X2VtYWlsJywgJGNvbnRhY3RfZW1haWwsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWJzaXRldGV4dCcsICR0aGlzLT5MYW5nKCd3ZWJzaXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0d2Vic2l0ZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnd2Vic2l0ZScsICR3ZWJzaXRlLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignZGV0YWlsc3RleHQnLCAkdGhpcy0+TGFuZygnZGV0YWlscycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGRldGFpbHMnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoJHVzZV93eXNpd3lnLCAkaWQsICRkZXRhaWxzLCAnZGV0YWlscycsICcnLCAnJywgJycsICcnLCAnODAnLCAnOCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZXVwbG9hZCcsICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCAnaW1hZ2V1cGxvYWQnLCAnJywgODApKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZWN1cnJlbnQnLCAkaW1hZ2UpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdldGV4dCcsICR0aGlzLT5MYW5nKCdpbWFnZXRleHQnKSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2VjdXJyZW50aGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ltYWdlY3VycmVudCcsICRyZXR1cm5pZCwgJGltYWdlKSk7CiRzbWFydHktPmFzc2lnbignbG9nb3VwbG9hZCcsICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCAnbG9nb3VwbG9hZCcsICcnLCA4MCkpOwokc21hcnR5LT5hc3NpZ24oJ2xvZ29jdXJyZW50JywgJGxvZ28pOwokc21hcnR5LT5hc3NpZ24oJ2xvZ29jdXJyZW50aGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2xvZ29jdXJyZW50JywgJHJldHVybmlkLCAkbG9nbykpOwokc21hcnR5LT5hc3NpZ24oJ2xvZ290ZXh0JywgJHRoaXMtPkxhbmcoJ2xvZ290ZXh0JykpOwoKJHN0YXR1c2VzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpPT4ncHVibGlzaGVkJywKCQkgICR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnLAoJCSAgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRzdGF0dXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc3RhdHVzJywKCQkJCQkgICAkc3RhdHVzZXMsLTEsJHN0YXR1cykpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCiRzbWFydHktPmFzc2lnbignY3VzdG9tZmllbGRzJywgJGZpZWxkYXJyYXkpOwokc21hcnR5LT5hc3NpZ24oJ2N1c3RvbWZpZWxkc2NvdW50JywgY291bnQoJGZpZWxkYXJyYXkpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywgJGNhdGFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzY291bnQnLCBjb3VudCgkY2F0YXJyYXkpKTsKCiRzbWFydHktPmFzc2lnbigndXJsX3JlcXVpcmVkJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJywwKSk7CiRzbWFydHktPmFzc2lnbigndXJsX2F1dG9jcmVhdGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfYXV0b2NyZWF0ZScsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2Nhbl9nZW9jb2RlJyxjZF91dGlsczo6Y2FuX2dlb2xvY2F0ZSgpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGNvbXBhbnkudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.addfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CgokbmFtZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnbmFtZScpOwokdHlwZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywndHlwZScpOwokbWF4X2xlbmd0aCA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnbWF4X2xlbmd0aCcsMjU1KTsKJGFkbWlub25seSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnYWRtaW5vbmx5JywwKTsKJHB1YmxpYyA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywncHVibGljJywxKTsKCiRkcm9wZG93bl9kYXRhID0gJyc7CmlmKCAoJHR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkdHlwZSA9PSAnbXVsdGlzZWxlY3QnKSAmJiBpc3NldCgkcGFyYW1zWydkcm9wZG93bl9vcHRpb25zJ10pICkgewogICRkcm9wZG93bl9kYXRhID0gdHJpbSgkcGFyYW1zWydkcm9wZG93bl9vcHRpb25zJ10pOwp9CiRkYXRhID0gJyc7CmlmKCAoJHR5cGUgPT0gJ2ZpbGUnIHx8ICR0eXBlID09ICdpbWFnZScgfHwgJHR5cGUgPT0gJ2FsYnVtJykgJiYgaXNzZXQoJHBhcmFtc1snZXh0ZW5zaW9ucyddKSApIHsKICAkZGF0YSA9IHRyaW0oJHBhcmFtc1snZXh0ZW5zaW9ucyddKTsKfQoKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKCiRzdGF0dXMgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogIGlmKCBlbXB0eSgkbmFtZSkgKSAkc3RhdHVzID0gJHRoaXMtPkxhbmcoJ25vbmFtZ2l2ZW4nKTsKICBpZiggZW1wdHkoJHN0YXR1cykgJiYgJHR5cGUgPT0gJ3RleHRib3gnICYmICFpc19udW1lcmljKCRtYXhfbGVuZ3RoKSApIHsKCSRzdGF0dXMgPSAkdGhpcy0+TGFuZygnZXJyb3Jfbm9sZW5ndGgnKTsKICB9CgogIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAoJHR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkdHlwZSA9PSAnbXVsdGlzZWxlY3QnKSAmJiBlbXB0eSgkZHJvcGRvd25fZGF0YSkgKSB7Cgkkc3RhdHVzID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJyk7CiAgfQoKICBpZiggZW1wdHkoJHN0YXR1cykgJiYgJHR5cGUgPT0gJ2FsYnVtJyApIHsKCSRmZCA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzX2J5X25hbWUoVFJVRSxUUlVFKTsKCSRmbmQgPSBmYWxzZTsKCWlmKGlzX2FycmF5KCRmZCkgJiYgY291bnQoJGZkKSApIHsKCSAgZm9yZWFjaCggJGZkIGFzICR0aGVfaWQgPT4gJHRoZV9yZWMgKSB7CgkJaWYoICR0aGVfcmVjWyd0eXBlJ10gPT0gJ2FsYnVtJyApIHsKCQkgICRmbmQgPSB0cnVlOwoJCSAgYnJlYWs7CgkJfQoJICB9Cgl9CglpZiggJGZuZCApIHsKICAgICAgJHN0YXR1cyA9ICR0aGlzLT5MYW5nKCdlcnJvcl9hbGJ1bWZpZWxkZXhpc3RzJyk7Cgl9CiAgfQoKICBpZiggZW1wdHkoJHN0YXR1cykgKSB7CgkkbWF4ID0gKGludCkkZGItPkdldE9uZSgnU0VMRUNUIE1BWChpdGVtX29yZGVyKSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJyk7CgkkbWF4Kys7CgkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyAKICAgICAgICAgICAgICAobmFtZSwgdHlwZSwgbWF4X2xlbmd0aCwgaXRlbV9vcmRlciwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUsIAogICAgICAgICAgICAgICBhZG1pbl9vbmx5LCBwdWJsaWMsIGRyb3Bkb3duX2RhdGEsIGRhdGEpIAogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyknOwoJJHBhcm1zID0gYXJyYXkoJG5hbWUsICR0eXBlLCAkbWF4X2xlbmd0aCwgJG1heCwgCgkJCQkJIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCAKCQkJCQkgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksCgkJCQkJICRhZG1pbm9ubHksICRwdWJsaWMsICRkcm9wZG93bl9kYXRhLCAkZGF0YSk7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBhcm1zICk7CglpZiggISRkYnIgKSBkaWUoJGRiLT5zcWwuJyAtICcuJGRiLT5FcnJvck1zZygpKTsKCglhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdBZGRlZCBmaWVsZCBkZWZpbml0aW9uICcuJG5hbWUuJyBvZiB0eXBlICcuJHR5cGUpOwoJJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2ZpZWxkZGVmYWRkZWQnKSk7CgkkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CiAgfQoKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRzdGF0dXMpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRkZmllbGRkZWYnLCAkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCd0eXBldGV4dCcsICR0aGlzLT5MYW5nKCd0eXBlJykpOwokc21hcnR5LT5hc3NpZ24oJ21heGxlbmd0aHRleHQnLCAkdGhpcy0+TGFuZygnbWF4bGVuZ3RoJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignZmllbGR0eXBlcycsJHRoaXMtPkdldEZpZWxkVHlwZXMoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRtYXhsZW5ndGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21heF9sZW5ndGgnLCAkbWF4X2xlbmd0aCwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ3VzZXJlZGl0dGV4dCcsJHRoaXMtPkxhbmcoJ2FkbWluX29ubHknKSk7CiRzbWFydHktPmFzc2lnbigndXNlcnZpZXd0ZXh0JywkdGhpcy0+TGFuZygncHVibGljJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZXJlZGl0JywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdhZG1pbm9ubHknLCAxLCAkYWRtaW5vbmx5KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlcnZpZXcnLCR0aGlzLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ3B1YmxpYycsIDEsICRwdWJsaWMpKTsKJHNtYXJ0eS0+YXNzaWduKCdmbGR0eXBlJywkdHlwZSk7CiRzbWFydHktPmFzc2lnbignZHJvcGRvd25fZGF0YScsJGRyb3Bkb3duX2RhdGEpOwokc21hcnR5LT5hc3NpZ24oJ3ZhbGlkX2V4dGVuc2lvbnMnLCRkYXRhKTsKCiRzbWFydHktPmFzc2lnbignaGlkZGVuJywgJycpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0ZmllbGRkZWYudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_addhier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyJyk7CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CiAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wX2NhbmNlbGxlZCcpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICcnLCAnJywgJ2FkbWluX3NldHRpbmdzJyk7Cn0KCiRwYXJlbnQgPSAoaW50KWNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ3BhcmVudCcsLTEpOwoKJG5hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogICRuYW1lID0gdHJpbShjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCduYW1lJykpOwogIGlmKCAkbmFtZSAhPSAnJyApIHsKICAgICRxdWVyeSA9ICdTRUxFQ1QgQ09BTEVTQ0UoTUFYKGlvcmRlciksMCkgKyAxIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgV0hFUkUgcGFyZW50X2lkID0gPyc7CiAgICAkbnVtID0gKGludCkgJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwYXJlbnQpKTsKCgkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgKG5hbWUsIHBhcmVudF9pZCwgaW9yZGVyKSBWQUxVRVMgKD8sPyw/KSc7CgkkcGFybXMgPSBhcnJheSgkbmFtZSxpbnR2YWwoJHBhcmVudCksJG51bSk7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBhcm1zKTsKCWlmKCAhJGRiciApIHsKCSAgZGllKCRkYi0+c3FsLic8YnIvPicuJGRiLT5FcnJvck1zZygpKTsKCX0KCgkkdGhpcy0+VXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCk7CgkkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2hpZXJhZGRlZCcpKTsKCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgJycsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTsKICB9CiAgZWxzZSB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub25hbWVnaXZlbicpKTsKICB9Cn0KCiNEaXNwbGF5IHRlbXBsYXRlCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9hZGRoaWVyJywgJHJldHVybmlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDIwLCAyNTUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYXJlbnRkcm9wZG93bicsICR0aGlzLT5DcmVhdGVQYXJlbnREcm9wZG93bigkaWQsIC0xLCAtMSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYXJlbnR0ZXh0JywgbGFuZygncGFyZW50JykpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRoaWVyLnRwbCcpOwoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_categoryorder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydjYXQnXSkgKSBleGl0OwoKLy8gZmlyc3QgcGFzcy4uLiBjaGFuZ2UgYWxsIHRoZSAncm9vdCcgdmFsdWVzIHRvIC0xIGFuZCBjb252ZXJ0IHZhbHVlcyB0byBhIGhhc2gKJGhpZXIgPSBhcnJheSgpOwp7CiAgJHRtcCA9ICRwYXJhbXNbJ2NhdCddOwogIGZvcmVhY2goICR0bXAgYXMgJHJpZCA9PiAkcGFyZW50X2lkICkgewoJaWYoICRwYXJlbnRfaWQgPCAxICkgJHBhcmVudF9pZCA9IC0xOwoJJGhpZXJbJHJpZF0gPSBhcnJheSgncGFyZW50X2lkJz0+JHBhcmVudF9pZCk7CiAgfQp9CgovLyBzZWNvbmQgcGFzcy4uLiBjYWxjdWxhdGUgaXRlbV9vcmRlciB2YWx1ZXMgZm9yIGFsbCBpdGVtcy4KJGNhbGNfaW9yZGVyID0gZnVuY3Rpb24oJiRoaWVyLCRwYXJlbnRfaWQgPSAtMSkgdXNlICgmJGNhbGNfaW9yZGVyKSB7CiAgJGlvcmRlciA9IDE7CiAgZm9yZWFjaCggJGhpZXIgYXMgJHJpZCA9PiAmJHJvdyApIHsKCWlmKCAkcm93WydwYXJlbnRfaWQnXSA9PSAkcGFyZW50X2lkICkgewoJICAkcm93WydpdGVtX29yZGVyJ10gPSAkaW9yZGVyKys7CgkgICRjYWxjX2lvcmRlcigkaGllciwkcmlkKTsKCX0KICB9Cn07CiRjYWxjX2lvcmRlcigkaGllcik7CgovLyB0aGlyZCBwYXNzLi4uIHVwZGF0ZSBwYXJlbnQgaWQsIGFuZCBpb3JkZXIgaWQKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBTRVQgcGFyZW50X2lkID0gPywgaXRlbV9vcmRlciA9ID8gV0hFUkUgaWQgPSA/JzsKZm9yZWFjaCggJGhpZXIgYXMgJHJpZCA9PiAkcm93ICkgewogICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRyb3dbJ3BhcmVudF9pZCddLCRyb3dbJ2l0ZW1fb3JkZXInXSwkcmlkKSk7Cn0KCi8vIDR0aC4uLiB1cGRhdGUgaGllcmFyY2h5IHBvc2l0aW9ucy4KY2RfY2F0ZWdvcnk6OmNhbGN1bGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CgpleGl0OwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_hierorder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydoaWVyJ10pICkgZXhpdDsKCi8vIGZpcnN0IHBhc3MuLi4gY2hhbmdlIGFsbCB0aGUgJ3Jvb3QnIHZhbHVlcyB0byAtMSBhbmQgY29udmVydCB2YWx1ZXMgdG8gYSBoYXNoCiRoaWVyID0gYXJyYXkoKTsKewogICR0bXAgPSAkcGFyYW1zWydoaWVyJ107CiAgZm9yZWFjaCggJHRtcCBhcyAkcmlkID0+ICRwYXJlbnRfaWQgKSB7CglpZiggJHBhcmVudF9pZCA8IDEgKSAkcGFyZW50X2lkID0gLTE7CgkkaGllclskcmlkXSA9IGFycmF5KCdwYXJlbnRfaWQnPT4kcGFyZW50X2lkKTsKICB9Cn0KCi8vIHNlY29uZCBwYXNzLi4uIGNhbGN1bGF0ZSBpb3JkZXIgdmFsdWVzIGZvciBhbGwgaXRlbXMuCiRjYWxjX2lvcmRlciA9IGZ1bmN0aW9uKCYkaGllciwkcGFyZW50X2lkID0gLTEpIHVzZSAoJiRjYWxjX2lvcmRlcikgewogICRpb3JkZXIgPSAxOwogIGZvcmVhY2goICRoaWVyIGFzICRyaWQgPT4gJiRyb3cgKSB7CglpZiggJHJvd1sncGFyZW50X2lkJ10gPT0gJHBhcmVudF9pZCApIHsKCSAgJHJvd1snaW9yZGVyJ10gPSAkaW9yZGVyKys7CgkgICRjYWxjX2lvcmRlcigkaGllciwkcmlkKTsKCX0KICB9Cn07CgokY2FsY19pb3JkZXIoJGhpZXIpOwoKLy8gdGhpcmQgcGFzcy4uLiB1cGRhdGUgcGFyZW50IGlkLCBhbmQgaW9yZGVyIGlkCiRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgU0VUIHBhcmVudF9pZCA9ID8sIGlvcmRlciA9ID8gV0hFUkUgaWQgPSA/JzsKZm9yZWFjaCggJGhpZXIgYXMgJHJpZCA9PiAkcm93ICkgewogICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRyb3dbJ3BhcmVudF9pZCddLCRyb3dbJ2lvcmRlciddLCRyaWQpKTsKfQoKLy8gNHRoLi4uIHVwZGF0ZSBoaWVyYXJjaHkgcG9zaXRpb25zLgpjZF91dGlsczo6dXBkYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKZXhpdDsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_bulk.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSApIHJldHVybjsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKCmlmKCBpc3NldCgkcGFyYW1zWydidWxrX3N1Ym1pdCddKSApIHsKICBpZiggIWlzc2V0KCRwYXJhbXNbJ2J1bGsnXSkgfHwgIWlzX2FycmF5KCRwYXJhbXNbJ2J1bGsnXSkgfHwgY291bnQoJHBhcmFtc1snYnVsayddKSA9PSAwICkgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KICBpZiggIWlzc2V0KCRwYXJhbXNbJ2J1bGthY3Rpb24nXSkgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQogIHN3aXRjaCgkcGFyYW1zWydidWxrYWN0aW9uJ10pIHsKICBjYXNlICdkZWxldGUnOgogICAgJG5kZWwgPSAwOwogICAgZm9yZWFjaCggJHBhcmFtc1snYnVsayddIGFzICRvbmUgKSB7CiAgICAgIHRyeSB7CgkJJHJlcyA9IGNkX2NvbXBhbnk6OmRlbGV0ZSgoaW50KSRvbmUpOwoJCWlmKCAkcmVzICkgJG5kZWwrKzsKICAgICAgfQogICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewoJCS8vIGlnbm9yZQogICAgICB9CiAgICB9CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2J1bGtkZWwnLCRuZGVsKSk7CiAgICBicmVhazsKCiAgY2FzZSAnZGlzYWJsZSc6CiAgICBmb3JlYWNoKCAkcGFyYW1zWydidWxrJ10gYXMgJiRvbmUgKSB7CiAgICAgICRvbmUgPSAoaW50KSRvbmU7CiAgICB9CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFNFVCBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgIFdIRVJFIGlkIElOICgnLmltcGxvZGUoJywnLCRwYXJhbXNbJ2J1bGsnXSkuJyknOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJ2Rpc2FibGVkJykpOwogICAgYnJlYWs7CgogIGNhc2UgJ3B1Ymxpc2gnOgogICAgZm9yZWFjaCggJHBhcmFtc1snYnVsayddIGFzICYkb25lICkgewogICAgICAkb25lID0gKGludCkkb25lOwogICAgfQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBTRVQgc3RhdHVzID0gPwogICAgICAgICAgICAgICBXSEVSRSBpZCBJTiAoJy5pbXBsb2RlKCcsJywkcGFyYW1zWydidWxrJ10pLicpJzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCdwdWJsaXNoZWQnKSk7CiAgICBicmVhazsKCiAgZGVmYXVsdDoKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgYnJlYWs7CiAgfQp9CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.admin_categories_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKJGFjdGlvbiA9ICRuYW1lOwovLyB0aGlzIHRhYiBjYW4gYmUgYWN0aXZhdGVkIGJ5IGFqYXguCgokY2F0ZWdvcmllcyA9IGNkX2NhdGVnb3J5OjpnZXRfdHJlZSgpOwokc21hcnR5LT5jbGVhcl9hc3NpZ24oJ2NhdGVnb3JpZXMnKTsKaWYoIGlzX2FycmF5KCRjYXRlZ29yaWVzKSAmJiBjb3VudCgkY2F0ZWdvcmllcykgKSAkc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3JpZXMnLCAkY2F0ZWdvcmllcyk7CiRzbWFydHktPmFzc2lnbigndXJsX2FkZF9jYXRlZ29yeScsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdlZGl0Y2F0ZWdvcnknLCRyZXR1cm5pZCkpOwoKLy8gRGlzcGxheSB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2NhdGVnb3J5bGlzdC50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_delhier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignaGllcicpOwoKdHJ5IHsKICAkY2F0aWQgPSAoaW50KSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdjYXRpZCcpOwogIGlmKCAkY2F0aWQgPCAxICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwoKICAkcXVlcnkgPSAnU0VMRUNUIGNvdW50KGlkKSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJGNhdGlkKSk7CiAgaWYoICR0bXAgPiAwICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZGVsZXRlcGFyZW50JykpOwoKICAvLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBXSEVSRSBpZCA9ID8nOwogICRyb3cgPSAkZGItPkdldFJvdyggJHF1ZXJ5LCBhcnJheSggJGNhdGlkICkgKTsKICBpZiggISRyb3cgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3Jlc3VsdHNmb3VuZCcpKTsKCiAgLy8gUmVzZXQgYWxsIGNhdGVnb3JpZXMgdXNpbmcgdGhpcyBwYXJlbnQgdG8gaGF2ZSBubyBwYXJlbnQgKC0xKQogICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgU0VUIHBhcmVudF9pZD0/IFdIRVJFIHBhcmVudF9pZD0/JzsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgtMSwgJGNhdGlkKSk7CgogIC8vIE5vdyByZW1vdmUgdGhlIGNhdGVnb3J5CiAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIFdIRVJFIGlkID0gPyI7CiAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgogIC8vIEFuZCByZW1vdmUgaXQgZnJvbSBhbnkgYXJ0aWNsZXMKICAkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUIGhpZXJfaWQgPSAtMSBXSEVSRSBoaWVyX2lkID0gPyI7CiAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgogICR0aGlzLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2hpZXJkZWxldGVkJykpOwp9CmNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwp9CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgJycsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_doimporttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApIGV4aXQoKTsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdmcm9udGVuZGltcG9ydF90ZW1wbGF0ZScpOwppZiggaXNzZXQoJHBhcmFtc1snZmVpbXBvcnRfc3VibWl0J10pICkKICB7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSwKCQkgICAgICAgdHJpbSgkcGFyYW1zWydmZWltcG9ydF90ZW1wbGF0ZSddKSk7CiAgfQogZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snZmVpbXBvcnRfcmVzZXQnXSkgKSB7CiAgIC8vIFNldHVwIGRlZmF1bHQgZnJvbnRlbmQgaW1wb3J0IHRlbXBsYXRlCiAgICRmbiA9IGNtc19qb2luX3BhdGgoX19ESVJfXywndGVtcGxhdGVzJywnb3JpZ19mcm9udGVuZGltcG9ydF90ZW1wbGF0ZS50cGwnKTsKICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKCSAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkgJHRoaXMtPlNldFRlbXBsYXRlKENPTVBBTllESVJfRlJPTlRFTkRJTVBPUlRfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgfQp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3RlbXBsYXRlcycpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_edithier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyJyk7CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKICAkdGhpcy0+U2V0Q3VycmVudFRhYigkdGhpcy0+TGFuZygnb3BfY2FuY2VsbGVkJykpOwogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgJycsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTsKfQoKJGNhdGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjYXRpZCddKSkgewogICRjYXRpZCA9ICRwYXJhbXNbJ2NhdGlkJ107Cn0KCiRwYXJlbnRpZCA9ICctMSc7CmlmIChpc3NldCgkcGFyYW1zWydwYXJlbnQnXSkpIHsKICAkcGFyZW50aWQgPSAkcGFyYW1zWydwYXJlbnQnXTsKfQoKJG9yaWduYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkgewogICRvcmlnbmFtZSA9ICRwYXJhbXNbJ29yaWduYW1lJ107Cn0KCiRuYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyduYW1lJ10pKSB7CiAgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107CiAgaWYgKCRuYW1lICE9ICcnKSB7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIFNFVCBuYW1lID0gPywgcGFyZW50X2lkID0gPyBXSEVSRSBpZCA9ID8nOwoJJHBhcm1zID0gYXJyYXkoJG5hbWUsJHBhcmVudGlkLCAkY2F0aWQpOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBhcm1zKTsKCSR0aGlzLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKCgkkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2hpZXJ1cGRhdGVkJykpOwoJJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAnJywgJycsICdhZG1pbl9zZXR0aW5ncycpOwogIH0KICBlbHNlIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJykpOwogIH0KfQplbHNlIHsKICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgV0hFUkUgaWQgPSA/JzsKICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgogICBpZiAoJHJvdykgewoJICRuYW1lID0gJHJvd1snbmFtZSddOwoJICRwYXJlbnRpZCA9ICRyb3dbJ3BhcmVudF9pZCddOwogICB9Cn0KCiNEaXNwbGF5IHRlbXBsYXRlCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9lZGl0aGllcicsICRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAyMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbigncGFyZW50ZHJvcGRvd24nLCAkdGhpcy0+Q3JlYXRlUGFyZW50RHJvcGRvd24oJGlkLCAkY2F0aWQsICRwYXJlbnRpZCkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsIAoJCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjYXRpZCcsICRjYXRpZCkuCgkJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnb3JpZ25hbWUnLCRuYW1lKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CiRzbWFydHktPmFzc2lnbigncGFyZW50dGV4dCcsIGxhbmcoJ3BhcmVudCcpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0aGllci50cGwnKTsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_hiertab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKJGFjdGlvbiA9ICRuYW1lOwovLyB0aGlzIHRhYiBjYW4gYmUgYWN0aXZhdGVkIGJ5IGFqYXguCgoKI1B1dCB0b2dldGhlciBhIGxpc3Qgb2YgY3VycmVudCBjYXRlZ29yaWVzLi4uCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCiRoaWVyID0gY2RfdXRpbHM6OmdldF9oaWVyYXJjaHkoVFJVRSk7CmlmKCBpc19hcnJheSgkaGllcikgJiYgY291bnQoJGhpZXIpICkgJHNtYXJ0eS0+YXNzaWduKCdoaWVyJywkaGllcik7CiRzbWFydHktPmFzc2lnbignaGllcicsJGhpZXIpOwoKI1NldHVwIGxpbmtzCiRzbWFydHktPmFzc2lnbignYWRkX3VybCcsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdhZG1pbl9hZGRoaWVyJywkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCd1cGRhdGVfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX3VwZGF0ZWhpZXInLCRyZXR1cm5pZCkpOwppZiggJGFjdGlvbiA9PSAnYWRtaW5faGllcnRhYicgKSAkc21hcnR5LT5hc3NpZ24oJ2FqYXgnLDEpOwoKI0Rpc3BsYXkgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdoaWVybGlzdC50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoICRnQ21zICkgKSByZXR1cm47CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKaWYoICFpc3NldCggJHBhcmFtc1snc3VibWl0J10gKSApICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwncHJlZnMnLCcnLCdhZG1pbl9zZXR0aW5ncycpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsJHBhcmFtc1snZGV0YWlscGFnZSddKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnRvcmRlciddKSApICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCRwYXJhbXNbJ3NvcnRvcmRlciddKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnRieSddKSApICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzb3J0YnknLCRwYXJhbXNbJ3NvcnRieSddKTsKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjb2xsZWN0c3RhdHMnLCRwYXJhbXNbJ2NvbGxlY3RzdGF0cyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMnLChpbnQpJHBhcmFtc1snYWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3ByZXBlbmRfd2Vic2l0ZV9odHRwJywoaW50KSRwYXJhbXNbJ3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW53eXNpd3lnJywoaW50KSRwYXJhbXNbJ2FkbWlud3lzaXd5ZyddKTsKCmlmKCBpc3NldCgkcGFyYW1zWydmcm9udGVuZGNyZWF0ZSddKSApIHsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfY3JlYXRlJywoaW50KSRwYXJhbXNbJ2Zyb250ZW5kY3JlYXRlJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9kZWxldGUnLChpbnQpJHBhcmFtc1snZnJvbnRlbmRkZWxldGUnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Zyb250ZW5kX251bXJlY29yZHMnLChpbnQpJHBhcmFtc1snZnJvbnRlbmRudW1yZWNvcmRzJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9uZXdzdGF0dXMnLCRwYXJhbXNbJ2Zyb250ZW5kbmV3c3RhdHVzJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jaGFuZ2VzdGF0dXMnLCRwYXJhbXNbJ2Zyb250ZW5kY2hhbmdlc3RhdHVzJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9pbXBvcnQnLCRwYXJhbXNbJ2Zyb250ZW5kaW1wb3J0J10pOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfc2hvd2V4cGlyZWQnLCRwYXJhbXNbJ2Zyb250ZW5kX3Nob3dleHBpcmVkJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbG9uYWRkJywkcGFyYW1zWydmcm9udGVuZF9lbWFpbG9uYWRkJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbG9uZWRpdCcsJHBhcmFtc1snZnJvbnRlbmRfZW1haWxvbmVkaXQnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2VtYWlsZ3JvdXAnLCRwYXJhbXNbJ2Zyb250ZW5kX2VtYWlsZ3JvdXAnXSk7Cn0KCiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfc2V0dGluZ3NfY2hhbmdlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCdwcmVmcycsJycsJ2FkbWluX3NldHRpbmdzJyk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_email_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdlbWFpbF90ZW1wbGF0ZScpOwppZiggaXNzZXQoJHBhcmFtc1sncmVzZXQnXSkgKSB7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX2ZlZWRpdF9lbWFpbF9zdWJqZWN0JywkdGhpcy0+TGFuZygnZmVlZGl0X2VtYWlsX3N1YmplY3QnKSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX2ZlZWRpdF9lbWFpbF9pc2h0bWwnLDEpOwoKICAkZm4gPSBfX0RJUl9fLicvdGVtcGxhdGVzL29yaWdfYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlLnRwbCc7CiAgaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CgkkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlJywkdGVtcGxhdGUpOwogIH0KfQplbHNlIGlmICggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfaXNodG1sJywoaW50KSRwYXJhbXNbJ2VtYWlsX2lzaHRtbCddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3N1YmplY3QnLHRyaW0oJHBhcmFtc1snZW1haWxfc3ViamVjdCddKSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdhZG1pbl9mZWVkaXRfZW1haWxfdGVtcGxhdGUnLHRyaW0oJHBhcmFtc1snZW1haWxfdGVtcGxhdGUnXSkpOwp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0YWIgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpIHsKICAkdGFiID0gJHBhcmFtc1snYWN0aXZlX3RhYiddOwogICR0aGlzLT5TZXRDdXJyZW50VGFiKCR0YWIpOwp9CgplY2hvICc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDgwJTsiPicuCiR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwKCQkJCQkgICAkdGhpcy0+TGFuZygnbGJsX2JhY2snKSwnaWNvbnMvc3lzdGVtL2JhY2suZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKS4nPC9kaXY+PGJyLz4nOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRkZWZzJywkdGhpcy0+TGFuZygnZmllbGRkZWZzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NhdGVnb3JpZXMnLCR0aGlzLT5MYW5nKCdjYXRlZ29yaWVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2hpZXInLCR0aGlzLT5MYW5nKCdoaWVyYXJjaHknKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZW1haWxfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdlbWFpbF90ZW1wbGF0ZScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCd1cmxzJywkdGhpcy0+TGFuZygndXJscycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcmVmcycsJHRoaXMtPkxhbmcoJ3ByZWZlcmVuY2VzJykpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmaWVsZGRlZnMnLCAkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fZmllbGRkZWZzdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjYXRlZ29yaWVzJywgJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2FjdGlvbi5hZG1pbl9jYXRlZ29yaWVzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgojIEhpZXJhcmNoeSBUYWIKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2hpZXInLCRwYXJhbXMpOwppbmNsdWRlKF9fRElSX18uJy9hY3Rpb24uYWRtaW5faGllcnRhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgojIEFkbWluIEVtYWlsIFRlbXBsYXRlIFRhYgplY2hvICR0aGlzLT5TdGFydFRhYignZW1haWxfdGVtcGxhdGUnLCRwYXJhbXMpOwppbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl9lbWFpbF90ZW1wbGF0ZV90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKIyBVUkxTIHRhYgplY2hvICR0aGlzLT5TdGFydFRhYigndXJscycsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3VybHN0YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKIyBQcmVmcyB0YWIKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3ByZWZzJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fcHJlZnN0YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_templates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0KCk7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ01vZGlmeSBUZW1wbGF0ZXMnICkgKSBleGl0KCk7CgokdGFiID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKQp7CgkkdGFiID0gJHBhcmFtc1snYWN0aXZlX3RhYiddOwoJJHRoaXMtPlNldEN1cnJlbnRUYWIoJHRhYik7Cn0KCmVjaG8gJzxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyB3aWR0aDogODAlOyI+Jy4KJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLAoJCSAgICAgICAkdGhpcy0+TGFuZygnbGJsX2JhY2snKSwnaWNvbnMvc3lzdGVtL2JhY2suZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKS4nPC9kaXY+PGJyLz4nOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc3VtbWFyeV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3N1bW1hcnl0ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZGV0YWlsX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnZGV0YWlsdGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NhdGVnb3J5bGlzdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdoaWVybGlzdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYWJjbGlzdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2FiY2xpc3R0ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbmV3c2VhcmNoX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnbmV3c2VhcmNodGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2Zyb250ZW5kbGlzdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2Zyb250ZW5kbGlzdHRlbXBsYXRlcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdmcm9udGVuZGZvcm1fdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdmcm9udGVuZGZvcm10ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZnJvbnRlbmRhbGJ1bV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZnJvbnRlbmRpbXBvcnRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdmcm9udGVuZGltcG9ydHRlbXBsYXRlJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3N0YXRzc3VtbWFyeV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3N0YXRzc3VtbWFyeXRlbXBsYXRlJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2RlZmF1bHRfdGVtcGxhdGVzJywkdGhpcy0+TGFuZygnZGVmYXVsdHRlbXBsYXRlcycpKTsKZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzdW1tYXJ5X3RlbXBsYXRlJywgJHBhcmFtcyk7CnsKICBlY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ3N1bW1hcnlfJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFLAoJCQkgICAgICAgJ3N1bW1hcnlfdGVtcGxhdGUnLAoJCQkgICAgICAgQ09NUEFOWURJUl9QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFLAoJCQkgICAgICAgJHRoaXMtPkxhbmcoJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0JyksCgkJCSAgICAgICAnJywnYWRtaW5fdGVtcGxhdGVzJyk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiKCk7CgoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2RldGFpbF90ZW1wbGF0ZScsICRwYXJhbXMpOwp7CiAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdkZXRhaWxfJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ORVdERVRBSUxfVEVNUExBVEUsCgkJCSAgICAgICAnZGV0YWlsX3RlbXBsYXRlJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLAoJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnKSwKCQkJICAgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKfQplY2hvICR0aGlzLT5FbmRUYWIoKTsKCgplY2hvICR0aGlzLT5TdGFydFRhYignY2F0ZWdvcnlsaXN0X3RlbXBsYXRlJywgJHBhcmFtcyk7CnsKICBlY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ2NhdGVnb3J5bGlzdF8nLAoJCQkgICAgICAgQ09NUEFOWURJUl9QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwKCQkJICAgICAgICdjYXRlZ29yeWxpc3RfdGVtcGxhdGUnLAoJCQkgICAgICAgQ09NUEFOWURJUl9QUkVGX0RGTFRDQVRFR09SWUxJU1RfVEVNUExBVEUsCgkJCSAgICAgICAkdGhpcy0+TGFuZygnY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2hpZXJsaXN0X3RlbXBsYXRlJywgJHBhcmFtcyk7CnsKICBlY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ2hpZXJsaXN0XycsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfTkVXSElFUkxJU1RfVEVNUExBVEUsCgkJCSAgICAgICAnaGllcmxpc3RfdGVtcGxhdGUnLAoJCQkgICAgICAgQ09NUEFOWURJUl9QUkVGX0RGTFRISUVSTElTVF9URU1QTEFURSwKCQkJICAgICAgICR0aGlzLT5MYW5nKCdoaWVybGlzdHRlbXBsYXRlX2FkZGVkaXQnKSwKCQkJICAgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKfQplY2hvICR0aGlzLT5FbmRUYWIoKTsKCgplY2hvICR0aGlzLT5TdGFydFRhYignYWJjbGlzdF90ZW1wbGF0ZScsICRwYXJhbXMpOwp7CiAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdhYmNsaXN0XycsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfTkVXQUJDTElTVF9URU1QTEFURSwKCQkJICAgICAgICdhYmNsaXN0X3RlbXBsYXRlJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ERkxUQUJDTElTVF9URU1QTEFURSwKCQkJICAgICAgICR0aGlzLT5MYW5nKCdhYmNsaXN0dGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ25ld3NlYXJjaF90ZW1wbGF0ZScsICRwYXJhbXMpOwp7CiAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCduZXdzZWFyY2hfJywKCQkJCQkJCSAgIENPTVBBTllESVJfUFJFRl9ORVdTRUFSQ0hGT1JNX1RFTVBMQVRFLAoJCQkJCQkJICAgJ25ld3NlYXJjaF90ZW1wbGF0ZScsCgkJCQkJCQkgICBDT01QQU5ZRElSX1BSRUZfREZMVFNFQVJDSEZPUk1fVEVNUExBVEUsCgkJCQkJCQkgICAkdGhpcy0+TGFuZygnbmV3c2VhcmNodGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkJCQkJICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmcm9udGVuZGxpc3RfdGVtcGxhdGUnLCAkcGFyYW1zKTsKewogIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnZnJvbnRlbmRsaXN0XycsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRMSVNUX1RFTVBMQVRFLAoJCQkgICAgICAgJ2Zyb250ZW5kbGlzdF90ZW1wbGF0ZScsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5ETElTVF9URU1QTEFURSwKCQkJICAgICAgICR0aGlzLT5MYW5nKCdmcm9udGVuZGxpc3R0ZW1wbGF0ZV9hZGRlZGl0JyksCgkJCSAgICAgICAnJywnYWRtaW5fdGVtcGxhdGVzJyk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiKCk7CgoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2Zyb250ZW5kZm9ybV90ZW1wbGF0ZScsICRwYXJhbXMpOwp7CiAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdmcm9udGVuZGZvcm1fJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVOREZPUk1fVEVNUExBVEUsCgkJCSAgICAgICAnZnJvbnRlbmRmb3JtX3RlbXBsYXRlJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRGT1JNX1RFTVBMQVRFLAoJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2Zyb250ZW5kZm9ybXRlbXBsYXRlX2FkZGVkaXQnKSwKCQkJICAgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKfQplY2hvICR0aGlzLT5FbmRUYWIoKTsKCgplY2hvICR0aGlzLT5TdGFydFRhYignZnJvbnRlbmRhbGJ1bV90ZW1wbGF0ZScsICRwYXJhbXMpOwp7CiAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdmcm9udGVuZGFsYnVtXycsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRBTEJVTV9URU1QTEFURSwKCQkJICAgICAgICdmcm9udGVuZGFsYnVtX3RlbXBsYXRlJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRBTEJVTV9URU1QTEFURSwKCQkJICAgICAgICR0aGlzLT5MYW5nKCdmcm9udGVuZGFsYnVtdGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmcm9udGVuZGltcG9ydF90ZW1wbGF0ZScsJHBhcmFtcyk7CiRzbWFydHktPmFzc2lnbignaWZvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZG9pbXBvcnR0ZW1wbGF0ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignZmVpbXBvcnRfdGVtcGxhdGUnLCR0aGlzLT5HZXRUZW1wbGF0ZShDT01QQU5ZRElSX0ZST05URU5ESU1QT1JUX1RFTVBMQVRFKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZnJvbnRlbmRpbXBvcnRfZm9ybS50cGwnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignc3RhdHNzdW1tYXJ5X3RlbXBsYXRlJyk7CnsKICBlY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ3N0YXRzc3VtbWFyeV8nLAoJCQkJCQkJICAgQ09NUEFOWURJUl9QUkVGX05FV1NUQVRTU1VNTUFSWV9URU1QTEFURSwKCQkJCQkJCSAgICdzdGF0c3N1bW1hcnlfdGVtcGxhdGUnLAoJCQkJCQkJICAgQ09NUEFOWURJUl9QUkVGX0RGTFRTVEFUU1NVTU1BUllfVEVNUExBVEUsCgkJCQkJCQkgICAkdGhpcy0+TGFuZygnc3RhdHNzdW1tYXJ5X2FkZGVkaXQnKSwKCQkJCQkJCSAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKfQplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdkZWZhdWx0X3RlbXBsYXRlcycpOwp7CiAgJHNtYXJ0eS0+YXNzaWduKCdpbmZvX2RmbHRfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygnZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnKSk7CgogICRwYXJ0cyA9IGFycmF5KCk7CiAgJHBhcnRzW10gPSBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zdGFydF90ZW1wbGF0ZV9mb3JtKCR0aGlzLCRpZCwnJywKCQkJCQkJCQkJCQkJICAgQ09NUEFOWURJUl9QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsJ2FkbWluX3RlbXBsYXRlcycsJ2RlZmF1bHRfdGVtcGxhdGVzJywKCQkJCQkJCQkJCQkJICAgJHRoaXMtPkxhbmcoJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJyksCgkJCQkJCQkJCQkJCSAgICdvcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsJyk7CgoKICAkcGFydHNbXSA9IGNnZV90ZW1wbGF0ZV9hZG1pbjo6Z2V0X3N0YXJ0X3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCcnLAoJCQkJCQkJCQkJCQkgICBDT01QQU5ZRElSX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJyksCgkJCQkJCQkJCQkJCSAgICdvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGwnKTsKCiAgJHBhcnRzW10gPSBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zdGFydF90ZW1wbGF0ZV9mb3JtKCR0aGlzLCRpZCwnJywKCQkJCQkJCQkJCQkJICAgQ09NUEFOWURJUl9QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwnYWRtaW5fdGVtcGxhdGVzJywnZGVmYXVsdF90ZW1wbGF0ZXMnLAoJCQkJCQkJCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZScpLAoJCQkJCQkJCQkJCQkgICAnb3JpZ19jYXRlZ29yeWxpc3RfdGVtcGxhdGUudHBsJyk7CgogICRwYXJ0c1tdID0gY2dlX3RlbXBsYXRlX2FkbWluOjpnZXRfc3RhcnRfdGVtcGxhdGVfZm9ybSgkdGhpcywkaWQsJycsCgkJCQkJCQkJCQkJCSAgIENPTVBBTllESVJfUFJFRl9ORVdISUVSTElTVF9URU1QTEFURSwnYWRtaW5fdGVtcGxhdGVzJywnZGVmYXVsdF90ZW1wbGF0ZXMnLAoJCQkJCQkJCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfaGllcmxpc3RfZGZsdHRlbXBsYXRlJyksCgkJCQkJCQkJCQkJCSAgICdvcmlnX2hpZXJsaXN0X3RlbXBsYXRlLnRwbCcpOwoKICAkcGFydHNbXSA9IGNnZV90ZW1wbGF0ZV9hZG1pbjo6Z2V0X3N0YXJ0X3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCcnLAoJCQkJCQkJCQkJCQkgICBDT01QQU5ZRElSX1BSRUZfTkVXQUJDTElTVF9URU1QTEFURSwnYWRtaW5fdGVtcGxhdGVzJywnZGVmYXVsdF90ZW1wbGF0ZXMnLAoJCQkJCQkJCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfYWJjbGlzdF9kZmx0dGVtcGxhdGUnKSwKCQkJCQkJCQkJCQkJICAgJ29yaWdfYWJjbGlzdF90ZW1wbGF0ZS50cGwnKTsKCiAgJHBhcnRzW10gPSBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zdGFydF90ZW1wbGF0ZV9mb3JtKCR0aGlzLCRpZCwnJywKCQkJCQkJCQkJCQkJICAgQ09NUEFOWURJUl9QUkVGX05FV1NFQVJDSEZPUk1fVEVNUExBVEUsJ2FkbWluX3RlbXBsYXRlcycsJ2RlZmF1bHRfdGVtcGxhdGVzJywKCQkJCQkJCQkJCQkJICAgJHRoaXMtPkxhbmcoJ3RpdGxlX25ld3NlYXJjaF9kZmx0dGVtcGxhdGUnKSwKCQkJCQkJCQkJCQkJICAgJ29yaWdfbmV3c2VhcmNoX3RlbXBsYXRlLnRwbCcpOwoKICAkcGFydHNbXSA9IGNnZV90ZW1wbGF0ZV9hZG1pbjo6Z2V0X3N0YXJ0X3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCcnLAoJCQkJCQkJCQkJCQkgICBDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRMSVNUX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9mcm9udGVuZGxpc3RfZGZsdHRlbXBsYXRlJyksCgkJCQkJCQkJCQkJCSAgICdvcmlnX2Zyb250ZW5kbGlzdF90ZW1wbGF0ZS50cGwnKTsKCiAgJHBhcnRzW10gPSBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zdGFydF90ZW1wbGF0ZV9mb3JtKCR0aGlzLCRpZCwnJywKCQkJCQkJCQkJCQkJICAgQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5ERk9STV9URU1QTEFURSwnYWRtaW5fdGVtcGxhdGVzJywnZGVmYXVsdF90ZW1wbGF0ZXMnLAoJCQkJCQkJCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZScpLAoJCQkJCQkJCQkJCQkgICAnb3JpZ19mcm9udGVuZGZvcm1fdGVtcGxhdGUudHBsJyk7CgogICRwYXJ0c1tdID0gY2dlX3RlbXBsYXRlX2FkbWluOjpnZXRfc3RhcnRfdGVtcGxhdGVfZm9ybSgkdGhpcywkaWQsJycsCgkJCQkJCQkJCQkJCSAgIENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVOREFMQlVNX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9mcm9udGVuZGFsYnVtX2RmbHR0ZW1wbGF0ZScpLAoJCQkJCQkJCQkJCQkgICAnb3JpZ19mcm9udGVuZGFsYnVtX3RlbXBsYXRlLnRwbCcpOwoKICAkcGFydHNbXSA9IGNnZV90ZW1wbGF0ZV9hZG1pbjo6Z2V0X3N0YXJ0X3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCcnLAoJCQkJCQkJCQkJCQkgICBDT01QQU5ZRElSX1BSRUZfTkVXU1RBVFNTVU1NQVJZX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9zdGF0c3N1bW1hcnlfZGZsdHRlbXBsYXRlJyksCgkJCQkJCQkJCQkJCSAgICdvcmlnX3NlYXJjaHN0YXRzX3N1bW1hcnlfdGVtcGxhdGUudHBsJyk7CgogICRzbWFydHktPmFzc2lnbignZGZsdF90cGxfcGFydHMnLCRwYXJ0cyk7CgogIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZGZsdF90ZW1wbGF0ZXMudHBsJyk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiKCk7CmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_updatehier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyJyk7CmNkX3V0aWxzOjp1cGRhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpOwokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2hpZXJhcmNoeV91cGRhdGVkJykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICcnLCAnJywgJ2FkbWluX3NldHRpbmdzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_urlstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cmxfcmVxdWlyZWQnLChpbnQpJHBhcmFtc1sndXJsX3JlcXVpcmVkJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VybF9hdXRvY3JlYXRlJywoaW50KSRwYXJhbXNbJ3VybF9hdXRvY3JlYXRlJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VybF9jcmVhdGVvbmNvcHknLChpbnQpJHBhcmFtc1sndXJsX2NyZWF0ZW9uY29weSddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cmxfcmVkaXJlY3RvbGQnLChpbnQpJHBhcmFtc1sndXJsX3JlZGlyZWN0b2xkJ10pOwp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2NyZWF0ZXVybHMnXSkgKSB7CgkkcXVlcnkgPSAnU0VMRUNUIGlkLGNvbXBhbnlfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgQ09BTEVTQ0UodXJsLFwnXCcpID0gXCdcJyc7CgkkbGlzdCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCSRudW1fdXBkYXRlZCA9IDA7CgkkbnVtX2Vycm9ycyA9IDA7CglpZiggaXNfYXJyYXkoJGxpc3QpICkgewoJCWZvcmVhY2goICRsaXN0IGFzICRvbmUgKSB7CiAgICAgICAgICAkdXJsID0gY2RfdXRpbHM6OmdlbmVyYXRlX3VybCgkb25lWydjb21wYW55X25hbWUnXSk7CiAgICAgICAgICBpZiggISR1cmwgKSB7CiAgICAgICAgICAgICAgJG51bV9lcnJvcnMrKzsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmKCAhY2RfdXRpbHM6OnZhbGlkYXRlX3VybCgkdXJsKSApIHsKICAgICAgICAgICAgICAkbnVtX2Vycm9ycysrOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQoKICAgICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBTRVQgdXJsID0gPyBXSEVSRSBpZCA9ID8nOwogICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHVybCwkb25lWydpZCddKSk7CiAgICAgICAgICBpZiggISRkYnIgKSB7CiAgICAgICAgICAgICAgJG51bV9lcnJvcnMrKzsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KCiAgICAgICAgICAkbnVtX3VwZGF0ZWQrKzsKICAgICAgICB9CiAgICB9CgoJaWYoICRudW1fdXBkYXRlZCApICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdpbmZvX2JhdGNodXJsY3JlYXRlJywkbnVtX3VwZGF0ZWQpKTsKCWlmKCAkbnVtX2Vycm9ycyApICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYmF0Y2h1cmxjcmVhdGUnLCRudW1fZXJyb3JzKSk7Cn0KCgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ3VybHMnLCcnLCdhZG1pbl9zZXR0aW5ncycpOwojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.ajax_category_autocomplete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovLyB0aGlzIG1heSBiZSB1c2VkIGZvciBmcm9udGVuZCBhbmQgYmFja2VuZC4KJG91dCA9IG51bGw7CiRhbGwgPSAwOwoKdHJ5IHsKICAgICRhbGwgPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkX0dFVCwnYWxsJyk7CiAgICAkY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CiAgICBpZiggIWlzX2FycmF5KCRjYXRlZ29yaWVzKSB8fCAhY291bnQoJGNhdGVnb3JpZXMpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gY2F0ZWdvcmllcyBmb3IgYWpheF9jYXRlZ29yeV9hdXRvY29tcGxldGUnKTsKICAgIGlmKCAkYWxsICkgewogICAgICAgICRvdXQgPSAkY2F0ZWdvcmllczsKICAgIH0gZWxzZSB7CiAgICAgICAgJHRlcm0gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfR0VULCd0ZXJtJyk7CiAgICAgICAgaWYoICEkdGVybSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignSW5wdXQgdGVybSBub3Qgc3BlY2lmaWVkJyk7CgogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkY2F0ICkgewogICAgICAgICAgICBpZiggc3RyaXBvcyggJGNhdC0+bG9uZ19uYW1lLCAkdGVybSApICE9PSBGQUxTRSApICRvdXRbXSA9IFsgJ2xhYmVsJyA9PiAkY2F0LT5sb25nX25hbWUsICd2YWx1ZScgPT4gJGNhdC0+aWQgXTsKICAgICAgICB9CiAgICAgICAgaWYoICFjb3VudCgkb3V0KSApICRvdXQgPSBudWxsOwogICAgfQp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgQHRyaWdnZXJfZXJyb3IoJ0NvbXBhbnlEaXJlY3RvcnkgLSBhamF4X2NhdGVnb3J5X2F1dG9jb21wbGV0ZTogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIFxjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwp9CgpcY2dlX3V0aWxzOjpzZW5kX2FqYXhfYW5kX2V4aXQoJG91dCk7CgojCiMgRU9GCiM=]]></data>
	</file>
	<file>
	  <filename>/action.ajax_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSBleGl0OwppZiggJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gIT0gJ1BPU1QnICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydjb21waWQnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZpbGVuYW1lJ10pICkgZXhpdDsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJGNvbXBpZCA9IChpbnQpJHBhcmFtc1snY29tcGlkJ107CiRmZGlkID0gKGludCkkcGFyYW1zWydmZGlkJ107CiRmaWxlbmFtZSA9IHRyaW0oJHBhcmFtc1snZmlsZW5hbWUnXSk7CgokdGhlX2NvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKCRjb21waWQpOwppZiggaXNfb2JqZWN0KCR0aGVfY29tcGFueSkgKSB7CiAgJGZpZWxkID0gJHRoZV9jb21wYW55LT5nZXRfZmllbGQoJGZkaWQpOwogIGlmKCBpc19vYmplY3QoJGZpZWxkKSAmJiAkZmllbGQtPnR5cGUgPT0gJ2FsYnVtJyApIHsKICAgIGlmKCAkZmllbGQtPnZhbHVlICkgewogICAgICAkZmlsZXMgPSB1bnNlcmlhbGl6ZSgkZmllbGQtPnZhbHVlKTsKICAgICAgaWYoIGlzX2FycmF5KCRmaWxlcykgJiYgY291bnQoJGZpbGVzKSApIHsKCS8vIHRoZXJlIGFyZSBmaWxlcyBpbiB0aGUgbGlzdC4uLiBzbyBsZXRzIGRlbGV0ZSBpdC4KCSRuZXdmaWxlcyA9IGFycmF5KCk7Cglmb3JlYWNoKCAkZmlsZXMgYXMgJG9uZSApIHsKCSAgaWYoICRvbmUgIT0gJGZpbGVuYW1lICkgewoJICAgICRuZXdmaWxlc1tdID0gJG9uZTsKCSAgfQoJfQoJJHZhbHVlID0gJyc7CglpZiggY291bnQoJG5ld2ZpbGVzKSA+IDAgKSB7CgkgICR2YWx1ZSA9IHNlcmlhbGl6ZSgkbmV3ZmlsZXMpOwoJfQoJLy8gYWN0dWFsbHkgdW5saW5rIHRoZSBmaWxlCgkkZnMgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdjb21wYW55ZGlyZWN0b3J5JywnaWQnLiRjb21waWQsJ2FsYnVtXycuJGZkaWQsJGZpbGVuYW1lKTsKCUB1bmxpbmsoJGZzKTsKCSR0aGVfY29tcGFueS0+c2V0X2ZpZWxkKCRmZGlkLCR2YWx1ZSk7CgkkdGhlX2NvbXBhbnktPnNhdmUoKTsKCWF1ZGl0KCRjb21waWQsJHRoaXMtPkdldE5hbWUoKSwnRGVsZXRlZCBmaWxlICcuJGZpbGVuYW1lLicgZnJvbSBhbGJ1bSBmaWVsZCAnLiRmZGlkLicgZm9yIGNvbXBhbnkgJy4kY29tcGlkKTsKICAgICAgfQogICAgfQogIH0KfQpleGl0OwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_gallery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSBleGl0OwppZiggIWlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSB8fCAhaXNzZXQoJHBhcmFtc1snZmRpZCddKSApIGV4aXQ7CgokY29tcGlkID0gKGludCkkcGFyYW1zWydjb21waWQnXTsKJGZkaWQgPSAoaW50KSRwYXJhbXNbJ2ZkaWQnXTsKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoKJGJhc2VfZGlyID0gY21zX2pvaW5fcGF0aCgnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkLCdhbGJ1bV8nLiRmZGlkKTsKJHVwbG9hZF9kaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCRiYXNlX2Rpcik7CiR1cGxvYWRfdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvaWR7JGNvbXBpZH0vYWxidW1fJGZkaWQiOwokc21hcnR5LT5hc3NpZ24oJ2Jhc2VfZGlyJywkYmFzZV9kaXIpOwokc21hcnR5LT5hc3NpZ24oJ3VwbG9hZF91cmwnLCR1cGxvYWRfdXJsKTsKCiRzbWFydHktPmFzc2lnbigndHJhc2hjYW4nLCR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkuJy9pY29ucy9kZWxldGUuZ2lmJyk7CgokdGhlX2NvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKCRjb21waWQpOwppZiggaXNfb2JqZWN0KCR0aGVfY29tcGFueSkgKSB7CiAgJGZpZWxkID0gJHRoZV9jb21wYW55LT5nZXRfZmllbGQoJGZkaWQpOwogIGlmKCBpc19vYmplY3QoJGZpZWxkKSApIHsKICAgICRmaWxlcyA9IGFycmF5KCk7CiAgICBpZiggaXNzZXQoJGZpZWxkLT52YWx1ZSkgJiYgJGZpZWxkLT52YWx1ZSApICRmaWxlcyA9IHVuc2VyaWFsaXplKCRmaWVsZC0+dmFsdWUpOwogICAgaWYoIGNvdW50KCRmaWxlcykgKSB7CiAgICAgICRzbWFydHktPmFzc2lnbignZmlsZXMnLCRmaWxlcyk7CiAgICB9CiAgfQp9CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjb21wYW55X2dhbGxlcnkudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_selcompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiggJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gIT0gJ1BPU1QnICkgZXhpdDsKCiRvdXQgPSAnJzsKaWYoIGlzc2V0KCRfUE9TVFsnY29tcGlkJ10pICkgewogICRjb21wYW55ID0gY2RfdXRpbHM6OmdldF9jb21wYW55KChpbnQpJF9QT1NUWydjb21waWQnXSk7CiAgaWYoIGlzX29iamVjdCgkY29tcGFueSkgKSB7Cgkkb3V0ID0gJGNvbXBhbnktPmNvbXBhbnlfbmFtZTsKICB9Cn0gLy8gaWYgaXNzZXQgY29tcGlkCmVsc2UgaWYoIGlzc2V0KCRfUE9TVFsndGVybSddKSApIHsKICAkYWRkaWQgPSBmYWxzZTsKICBpZiggaXNzZXQoJF9QT1NUWydhZGRpZCddKSApICRhZGRpZCA9IGNtc190b19ib29sKCRfUE9TVFsnYWRkaWQnXSk7CgogICRtb2RlID0gJ3N0YXJ0c3dpdGgnOwogIGlmKCBpc3NldCgkX1BPU1RbJ21vZGUnXSkgKSB7CgkkdG1vZGUgPSBzdHJ0b2xvd2VyKCRfUE9TVFsnbW9kZSddKTsKCXN3aXRjaCggJHRtb2RlICkgewoJY2FzZSAnZW5kc3dpdGgnOgoJY2FzZSAnYW55JzoKCWNhc2UgJ3N0YXJ0c3dpdGgnOgoJICAkbW9kZSA9ICR0bW9kZTsKCSAgYnJlYWs7Cgl9CiAgfQogICR0ZXJtID0gdHJpbSgkX1BPU1RbJ3Rlcm0nXSk7CiAgCiAgc3dpdGNoKCAkbW9kZSApIHsKICBjYXNlICdhbnknOgoJaWYoICFzdGFydHN3aXRoKCR0ZXJtLCcqJykgKSAkdGVybSA9ICcqJy4kdGVybTsKCWlmKCAhZW5kc3dpdGgoJHRlcm0sJyonKSApICR0ZXJtIC49ICcqJzsKCWJyZWFrOwogIGNhc2UgJ2VuZHN3aXRoJzoKCWlmKCAhc3RhcnRzd2l0aCgkdGVybSwnKicpICkgJHRlcm0gPSAnKicuJHRlcm07CglicmVhazsKICBjYXNlICdzdGFydHN3aXRoJzoKICBkZWZhdWx0OgoJaWYoICFlbmRzd2l0aCgkdGVybSwnKicpICkgJHRlcm0gLj0gJyonOwoJYnJlYWs7CiAgfQogIC8vJHRlcm0gPSAnOjonLiR0ZXJtOwogICRmaWx0ZXIgPSBuZXcgY2RfY29tcGFueV9maWx0ZXIoYXJyYXkoJ25hbWUnPT4kdGVybSwncGFnZWxpbWl0Jz0+MjUsJ2RlZXAnPT5mYWxzZSkpOwogICRxdWVyeSA9IG5ldyBjZF9jb21wYW55X3F1ZXJ5KCRmaWx0ZXIpOwoKICAkbiA9ICRxdWVyeS0+Z2V0X3Jlc3VsdF9jb3VudCgpOwogIGlmKCAkbiA9PSAwICkgZXhpdDsKICAkb3V0ID0gYXJyYXkoKTsKICB3aGlsZSggISRxdWVyeS0+RU9GICkgewoJJHJvdyA9ICRxdWVyeS0+ZmllbGRzOwoJJGxhYmVsID0gJHJvd1snY29tcGFueV9uYW1lJ107CglpZiggJGFkZGlkICkgJGxhYmVsIC49ICcgKCcuJHJvd1snaWQnXS4nKSc7Cgkkb3V0W10gPSBhcnJheSgnbGFiZWwnPT4kbGFiZWwsJ3ZhbHVlJz0+JHJvd1snaWQnXSwndGl0bGUnPT4ndGVzdCcpOwoJJHF1ZXJ5LT5Nb3ZlTmV4dCgpOwogIH0KfSAvLyBpZiBpc3NldCB0ZXJtCgplY2hvIGpzb25fZW5jb2RlKCRvdXQpOyAKZXhpdDsKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_sort.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSBleGl0OwppZiggJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gIT0gJ1BPU1QnICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydjb21waWQnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ29yZGVyJ10pICkgZXhpdDsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJGNvbXBpZCA9IChpbnQpJHBhcmFtc1snY29tcGlkJ107CiRmZGlkID0gKGludCkkcGFyYW1zWydmZGlkJ107CiRvcmRlciA9ICRwYXJhbXNbJ29yZGVyJ107CmlmKCAhaXNfYXJyYXkoJG9yZGVyKSB8fCAhY291bnQoJG9yZGVyKSApIHJldHVybjsKCiR0aGVfY29tcGFueSA9IGNkX2NvbXBhbnk6OmxvYWRfYnlfaWQoJGNvbXBpZCk7CmlmKCBpc19vYmplY3QoJHRoZV9jb21wYW55KSApIHsKICAkZmllbGQgPSAkdGhlX2NvbXBhbnktPmdldF9maWVsZCgkZmRpZCk7CiAgaWYoIGlzX29iamVjdCgkZmllbGQpICYmICRmaWVsZC0+dHlwZSA9PSAnYWxidW0nICkgewogICAgaWYoICRmaWVsZC0+dmFsdWUgKSB7CiAgICAgICRmaWxlcyA9IHVuc2VyaWFsaXplKCRmaWVsZC0+dmFsdWUpOwogICAgICBpZiggaXNfYXJyYXkoJGZpbGVzKSAmJiBjb3VudCgkZmlsZXMpID09IGNvdW50KCRvcmRlcikgKSB7CgkkbmV3ZmlsZXMgPSBhcnJheSgpOwoJZm9yZWFjaCggJG9yZGVyIGFzICRvbmUgKSB7CgkgICRuZXdmaWxlc1tdID0gJGZpbGVzWyRvbmVdOwoJfQoJJHRoZV9jb21wYW55LT5zZXRfZmllbGQoJGZkaWQsc2VyaWFsaXplKCRuZXdmaWxlcykpOwoJJHRoZV9jb21wYW55LT5zYXZlKCk7CglhdWRpdCgkY29tcGlkLCR0aGlzLT5HZXROYW1lKCksJ1NvcnRlZCBmaWxlcyBpbiBhbGJ1bSAnLiRmZGlkKTsKICAgICAgfQogICAgfQogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.ajax_upload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSBleGl0OwoKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwokY29tcGlkID0gKGludCkkcGFyYW1zWydjb21waWQnXTsKJGZkaWQgPSAoaW50KSRwYXJhbXNbJ2ZkaWQnXTsKCi8vIGdldCB0aGUgbmFtZSBvZiB0aGUgYWxidW0uLi4gYW5kIGNvbnZlcnQgaXQgdG8gYW4gYWxpYXMKJG9wdGlvbnMgPSBhcnJheSgncGFyYW1fbmFtZSc9PidpbWFnZV91cGxvYWQnKTsKJG9wdGlvbnNbJ2NvbXBpZCddID0gJGNvbXBpZDsKJG9wdGlvbnNbJ2ZkaWQnXSA9ICRmZGlkOwokb3B0aW9uc1sndXBsb2FkX2RpciddID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkLCdhbGJ1bV8nLiRmZGlkKS4nLyc7CiRvcHRpb25zWyd1cGxvYWRfdXJsJ10gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLiIvY29tcGFueWRpcmVjdG9yeS9pZHskY29tcGlkfS9hbGJ1bV8kZmRpZCI7CiR1cGxvYWRfaGFuZGxlciA9IG5ldyBDb21wYW55RGlyZWN0b3J5SlF1ZXJ5VXBsb2FkSGFuZGxlcigkb3B0aW9ucyk7CgpoZWFkZXIoJ1ByYWdtYTogbm8tY2FjaGUnKTsKaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlLCBuby1jYWNoZScpOwpoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9ImZpbGVzLmpzb24iJyk7CmhlYWRlcignWC1Db250ZW50LVR5cGUtT3B0aW9uczogbm9zbmlmZicpOwpoZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKicpOwpoZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHM6IE9QVElPTlMsIEhFQUQsIEdFVCwgUE9TVCwgUFVULCBERUxFVEUnKTsKaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzOiBYLUZpbGUtTmFtZSwgWC1GaWxlLVR5cGUsIFgtRmlsZS1TaXplJyk7Cgpzd2l0Y2ggKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddKSB7CiAgICBjYXNlICdPUFRJT05TJzoKICAgICAgICBicmVhazsKICAgIGNhc2UgJ0hFQUQnOgogICAgY2FzZSAnR0VUJzoKICAgICAgICAkdXBsb2FkX2hhbmRsZXItPmdldCgpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnUE9TVCc6CiAgICAgICAgJHVwbG9hZF9oYW5kbGVyLT5wb3N0KCk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdERUxFVEUnOgogICAgICAkdXBsb2FkX2hhbmRsZXItPmRlbGV0ZSgpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNSBNZXRob2QgTm90IEFsbG93ZWQnKTsKfQoKZXhpdDsKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.browsehier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vIGluaXRpYWxpemF0aW9uCiR0aGV0ZW1wbGF0ZSA9ICdoaWVybGlzdF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUSElFUkxJU1RfVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snaGllcmxpc3R0ZW1wbGF0ZSddICkgKSAkdGhldGVtcGxhdGUgPSAnaGllcmxpc3RfJy4kcGFyYW1zWydoaWVybGlzdHRlbXBsYXRlJ107CgokY2F0ZWdvcnkgPSAnJzsKJGNhdGVnb3J5X2luZm8gPSAnJzsKJHdoZXJlID0gYXJyYXkoKTsKJHBhcm1zID0gYXJyYXkoKTsKJHF1ZXJ5c3RhcnQgPSAnU0VMRUNUIGNoLiosY291bnQoY2MuaWQpIGFzIGNvdW50IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgY2ggTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgY2MgT04gY2guaWQgPSBjYy5oaWVyX2lkJzsKJHF1ZXJ5ZW5kID0gJ0dST1VQIEJZIGNoLmlkIE9SREVSIEJZIGhpZXJhcmNoeSc7CgokaGllciA9IHRyaW0oY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaGllcicsLTEpKTsKLy8gZmluZCB0aGUgaWQgb2YgdGhlIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiBpdCdzIG5hbWUKaWYoICRoaWVyICYmICFpc19udW1lcmljKCRoaWVyKSApIHsKICAkbGlzdCA9IGNkX3V0aWxzOjpnZXRfaGllcmFyY2h5KCk7CiAgZm9yZWFjaCggJGxpc3QgYXMgJHJvdyApIHsKICAgIGlmKCAkcm93WyduYW1lJ10gPT0gJGhpZXIgKSB7CiAgICAgICRoaWVyID0gKGludCkkcm93WydpZCddOwogICAgICBicmVhazsKICAgIH0KICB9Cn0KCi8vIGdldCB0aGUgY291bnQocykKJGNvdW50X2xpc3QgPSBhcnJheSgpOwp7CiAgJHF1ZXJ5ID0gJ1NFTEVDVCBoaWVyX2lkLENPVU5UKGlkKSBBUyBjb3VudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgR1JPVVAgQlkgaGllcl9pZCBPUkRFUiBCWSBoaWVyX2lkJzsKICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICRjb3VudF9saXN0ID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ2hpZXJfaWQnKTsKICB9Cn0KCi8vIGdldCB0aGUgaGllcmFyY2h5IHRyZWUKJHRyZWUgPSBjZF91dGlsczo6Z2V0X2hpZXJhcmNoeShUUlVFLCRoaWVyKTsKJG1vZCA9JiAkdGhpczsKJF9mdW5jID0gZnVuY3Rpb24oJiR0cmVlKSB1c2UoICYkX2Z1bmMsICYkbW9kLCAkY291bnRfbGlzdCwgJHBhcmFtcywgJGlkLCAkcmV0dXJuaWQgKSB7CiAgJHN1bSA9IDA7CiAgZm9yZWFjaCggJHRyZWUgYXMgJiRyb3cgKSB7CiAgICAkcm93WydkaXJlY3RfY291bnQnXSA9IDA7CiAgICAkc3VtYiA9IDA7CiAgICBpZiggaXNzZXQoJHJvd1snY2hpbGRyZW4nXSkgKSAkc3VtYiA9ICRfZnVuYyggJHJvd1snY2hpbGRyZW4nXSApOwogICAgaWYoIGlzc2V0KCRjb3VudF9saXN0WyRyb3dbJ2lkJ11dKSApICRyb3dbJ2RpcmVjdF9jb3VudCddID0gJGNvdW50X2xpc3RbJHJvd1snaWQnXV1bJ2NvdW50J107CiAgICAkc3VtYiArPSAkcm93WydkaXJlY3RfY291bnQnXTsKICAgICRyb3dbJ2NvdW50J10gPSAkc3VtYjsKICAgICRzdW0gKz0gJHN1bWI7CgogICAgJHBhcm1zID0gJHBhcmFtczsKICAgIHVuc2V0KCRwYXJtc1snYWN0aW9uJ10sJHBhcm1zWydtb2R1bGUnXSk7CiAgICAkcGFybXNbJ2hpZXInXSA9ICRyb3dbJ2lkJ107CiAgICAkc3VtbWFyeXBhZ2UgPSAkbW9kLT5yZXNvbHZlX2FsaWFzX29yX2lkKGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ3N1bW1hcnlwYWdlJyksJHJldHVybmlkKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSkgKSAkcGFybXNbJ3N1bW1hcnl0ZW1wbGF0ZSddID0gJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ107CiAgICAkcm93Wyd1cmwnXSA9ICRtb2QtPmNyZWF0ZV91cmwoJGlkLCdkZWZhdWx0Jywkc3VtbWFyeXBhZ2UsJHBhcm1zKTsKICB9CiAgcmV0dXJuICRzdW07Cn07CgokX2Z1bmMoJHRyZWUpOwoKLy8gYW5kIGdpdmUgaXQgdG8gc21hcnR5CiRzbWFydHktPmFzc2lnbignaGllcmRhdGEnLCR0cmVlKTsKCi8vIGFuZCBwcm9jZXNzIHRoZSB0ZW1wbGF0ZS4KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.categorylist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhldGVtcGxhdGUgPSAnY2F0ZWdvcnlsaXN0XycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRDQVRFR09SWUxJU1RfVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSApICkgewogICAgJHRoZXRlbXBsYXRlID0gJ2NhdGVnb3J5bGlzdF8nLiRwYXJhbXNbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJ107Cn0KCiRzaG93Y2hpbGRyZW4gPSAhY21zX3RvX2Jvb2woY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnbm9jaGlsZHJlbicsZmFsc2UpKTsKCiRxdWVyeSA9ICcnOwppZiggaXNzZXQoJHBhcmFtc1snc2hvd2FsbCddKSApIHsKICAgICRxdWVyeSA9ICdTRUxFQ1QgYS4qLCBiYi5jb3VudAogICAgICAgICAgICAgIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgYQogICAgICAgICAgICAgIExFRlQgT1VURVIgSk9JTgogICAgICAgICAgICAgICAoU0VMRUNUIGEuY2F0ZWdvcnlfaWQsY291bnQoYi5pZCkgQVMgY291bnQKICAgICAgICAgICAgICAgIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBhCiAgICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBiIE9OIGEuY29tcGFueV9pZCA9IGIuaWQKICAgICAgICAgICAgICAgIFdIRVJFIGIuc3RhdHVzID0gXCdwdWJsaXNoZWRcJwogICAgICAgICAgICAgICAgR1JPVVAgYnkgYS5jYXRlZ29yeV9pZCkgYmIKICAgICAgICAgICAgICBPTiBhLmlkID0gYmIuY2F0ZWdvcnlfaWQgT1JERVIgQlkgYS5oaWVyYXJjaHkgQVNDJzsKfQplbHNlIHsKICAgICRxdWVyeSA9ICdTRUxFQ1QgQ0FULiosQ09BTEVTQ0UoUzEuY291bnQsMCkgQVMgY291bnQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBDQVQKICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gKFNFTEVDVCBDQy5jYXRlZ29yeV9pZCxDT1VOVChDQy5jb21wYW55X2lkKSBBUyBjb3VudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQ0MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIENPCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTiBDQy5jb21wYW55X2lkID0gQ08uaWQgX19XSEVSRTFfXyBHUk9VUCBCWSBDQy5jYXRlZ29yeV9pZCkgQVMgUzEKICAgICAgICAgICAgICBPTiBDQVQuaWQgPSBTMS5jYXRlZ29yeV9pZCBfX1dIRVJFMl9fCiAgICAgICAgICAgICAgT1JERVIgQlkgQ0FULmhpZXJhcmNoeSc7CgogICAgJHdoZXJlMSA9ICR3aGVyZTIgPSBhcnJheSgpOwogICAgJHdoZXJlMVtdID0gJ0NPLnN0YXR1cyA9IFwncHVibGlzaGVkXCcnOwoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pICkgewogICAgICAgIC8vIHdlJ3JlIG9ubHkgc2hvd2luZyBpdGVtcyBpbiB0aGlzIGNhdGVnb3J5LCBhbmQgaXQncyBjaGlsZHJlbi4KICAgICAgICAkaWRzID0gKGludCkkcGFyYW1zWydjYXRlZ29yeWlkJ107CiAgICAgICAgJGlkcyA9IGFycmF5KCRpZHMpOwogICAgICAgIGlmKCAkc2hvd2NoaWxkcmVuICkgJGlkcyA9IGNkX3V0aWxzOjpleHBhbmRfY2F0ZWdvcmllcygkaWRzKTsKICAgICAgICAkd2hlcmUxW10gPSAnQ0MuY2F0ZWdvcnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkcykuJyknOwogICAgICAgICR3aGVyZTJbXSA9ICdDQVQuaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkcykuJyknOwogICAgfQogICAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkgKSB7CiAgICAgICAgLy8gbGltaXQgdGhlIGNvdW50aW5nIHRvIHRoZSBzcGVjaWZpZWQgY2F0ZWdvcmllKHMpLCBhbmQgbGltaXQgdGhlIG91dHB1dCB0byB0aGUgc3BlY2lmaWVkIGNhdGVnb3JpZShzKS4KICAgICAgICAkcGFyYW1zWydjYXRlZ29yeSddID0gaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ2NhdGVnb3J5J10pOwogICAgICAgICRpZHMgPSBjZF91dGlsczo6Z2V0X2NhdGVnb3J5X2lkcygkcGFyYW1zWydjYXRlZ29yeSddKTsKICAgICAgICBpZiggJHNob3djaGlsZHJlbiApICRpZHMgPSBjZF91dGlsczo6ZXhwYW5kX2NhdGVnb3JpZXMoJGlkcyk7CiAgICAgICAgaWYoICEkaWRzICkgJGlkcyA9IGFycmF5KCk7CiAgICAgICAgJHdoZXJlMVtdID0gJ0NDLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRpZHMpLicpJzsKICAgICAgICAkd2hlcmUyW10gPSAnQ0FULmlkIElOICgnLmltcGxvZGUoJywnLCRpZHMpLicpJzsKICAgIH0KCiAgICBpZiggaXNzZXQoJHBhcmFtc1snaGllciddKSApIHsKICAgICAgICAvLyBmdXJ0aGVyIGxpbWl0IHRoZSBvdXRwdXQgKGNvdW50IG9ubHkgY29tcGFuaWVzIGluIHRoZSBzZWxlY3RlZCBoaWVyYXJjaGllcykKICAgICAgICAkaGllcmFyY2h5ID0gaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJHBhcmFtc1snaGllciddKSk7CiAgICAgICAgJGxpc3QgPSBjZF91dGlsczo6Z2V0X2hpZXJhcmNoeV9pZHMoJGhpZXJhcmNoeSk7CiAgICAgICAgaWYoICRzaG93Y2hpbGRyZW4gKSAkbGlzdCA9IGNkX3V0aWxzOjpleHBhbmRfaGllcmFyY2hpZXMoJGxpc3QpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJGxpc3QpICkgJGxpc3QgPSBhcnJheSgpOwogICAgICAgICR3aGVyZTFbXSA9ICdDTy5oaWVyX2lkIElOICgnLmltcGxvZGUoJywnLCRsaXN0KS4nKSc7CiAgICB9CgogICAgJHdoZXJlMV9zID0gJyc7CiAgICBpZiggY291bnQoJHdoZXJlMSkgKSAkd2hlcmUxX3MgPSAnIFdIRVJFICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZTEpOwogICAgJHF1ZXJ5ID0gc3RyX3JlcGxhY2UoJ19fV0hFUkUxX18nLCR3aGVyZTFfcywkcXVlcnkpOwoKICAgICR3aGVyZTJfcyA9ICcnOwogICAgaWYoIGNvdW50KCR3aGVyZTIpICkgJHdoZXJlMl9zID0gJyBXSEVSRSAnLmltcGxvZGUoJyBBTkQgJywkd2hlcmUyKTsKICAgICRxdWVyeSA9IHN0cl9yZXBsYWNlKCdfX1dIRVJFMl9fJywkd2hlcmUyX3MsJHF1ZXJ5KTsKfQokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKJHJlc3VsdHMgPSBhcnJheSgpOwokc3VtbWFyeXBhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZChjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdzdW1tYXJ5cGFnZScpLCRyZXR1cm5pZCk7CgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CndoaWxlKCAkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSApIHsKICAgIC8vIHJvdyB0byBvYmplY3QKICAgICRvYmogPSBuZXcgU3RkQ2xhc3MoKTsKICAgIGZvcmVhY2goICRyb3cgYXMgJGsgPT4gJHYgKSB7CiAgICAgICAgJG9iai0+JGsgPSAkdjsKICAgIH0KICAgICRvYmotPmRpcmVjdF9jb3VudCA9ICRvYmotPmNvdW50OwoKICAgIGlmKCAkb2JqLT5wYXJlbnRfaWQgPCAxICkgJG9iai0+cGFyZW50X2lkID0gLTE7CiAgICAkb2JqLT5kZXB0aCA9IGNvdW50KGV4cGxvZGUoJy4nLCRvYmotPmhpZXJhcmNoeSkpOwogICAgaWYoIGlzX251bGwoJG9iai0+Y291bnQpICkgJG9iai0+Y291bnQgPSAwOwogICAgaWYoICRvYmotPmltYWdlICkgewogICAgICAgICRwYXRoID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2NhdCcuJG9iai0+aWQpOwogICAgICAgIGlmKCBmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRwYXRoLCRvYmotPmltYWdlKSkgKSB7CiAgICAgICAgICAgICRvYmotPmltYWdlX3VybCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uIi9jb21wYW55ZGlyZWN0b3J5L2NhdHskb2JqLT5pZH0veyRvYmotPmltYWdlfSI7CiAgICAgICAgICAgIGlmKCBmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRwYXRoLCd0aHVtYl8nLiRvYmotPmltYWdlKSkgKSB7CiAgICAgICAgICAgICAgICAkb2JqLT50aHVtYl91cmwgPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLiIvY29tcGFueWRpcmVjdG9yeS9jYXR7JG9iai0+aWR9L3RodW1iX3skb2JqLT5pbWFnZX0iOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHsKICAgICAgICAvLyB0aGUgb2xkLCBzdGFuZGFyZCwgcHJldHR5IHVybCAoYnkgY2F0ZWdvcnkpLgogICAgICAgICRwYXJtczIgPSAkcGFyYW1zOwogICAgICAgIGlmKCBpc3NldCgkcGFybXMyWydjYXRlZ29yeSddKSApIHVuc2V0KCRwYXJtczJbJ2NhdGVnb3J5J10pOwogICAgICAgIHVuc2V0KCRwYXJtczJbJ2hpZXInXSwkcGFybXMyWydhY3Rpb24nXSwkcGFybXMyWydtb2R1bGUnXSk7CiAgICAgICAgJHBhcm1zMlsnY2F0ZWdvcnlpZCddPSRyb3dbJ2lkJ107CiAgICAgICAgJG9iai0+c3VtbWFyeV91cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCRzdW1tYXJ5cGFnZSwkcGFybXMyKTsKICAgIH0KCiAgICAkcmVzdWx0c1skb2JqLT5pZF0gPSAkb2JqOwp9CmlmKCAkZGJyZXN1bHQgKSAkZGJyZXN1bHQtPkNsb3NlKCk7Ci8vIGNvbnZlcnQgaXQgdG8gdG8gYSB0cmVlIHN0cnVjdHVyZQokX3RvX3RyZWUgPSBmdW5jdGlvbigkcGFyZW50X2lkID0gLTEpIHVzZSAoJHJlc3VsdHMsJiRfdG9fdHJlZSkgewogICAgJHRyZWUgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHJlc3VsdHMgYXMgJGlkID0+ICRyb3cgKSB7CiAgICAgICAgaWYoICRwYXJlbnRfaWQgPT0gJHJvdy0+cGFyZW50X2lkICkgewogICAgICAgICAgICAkY2hpbGRyZW4gPSAkX3RvX3RyZWUoJGlkKTsKICAgICAgICAgICAgJHJvdy0+Y2hpbGRyZW4gPSAkY2hpbGRyZW47CiAgICAgICAgICAgICR0cmVlWyRpZF0gPSAkcm93OwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAkdHJlZTsKfTsKCi8vIGFkanVzdCB0aGUgY291bnRzCiRfY291bnRfY2hpbGRyZW4gPSBmdW5jdGlvbigmJHRyZWUpIHVzZSAoJiRfY291bnRfY2hpbGRyZW4pIHsKICAgICRzdW0gPSAwOwogICAgZm9yZWFjaCggJHRyZWUgYXMgJiRub2RlICkgewogICAgICAgICRjaGlsZHJlbiA9IDA7CiAgICAgICAgaWYoIGlzc2V0KCRub2RlLT5jaGlsZHJlbikgJiYgY291bnQoJG5vZGUtPmNoaWxkcmVuKSApIHsKICAgICAgICAgICAgJGNoaWxkcmVuID0gJF9jb3VudF9jaGlsZHJlbigkbm9kZS0+Y2hpbGRyZW4pOwogICAgICAgIH0KICAgICAgICAkbm9kZS0+Y291bnQgKz0gJGNoaWxkcmVuOwogICAgICAgICRzdW0gKz0gJG5vZGUtPmNvdW50OwogICAgfQogICAgcmV0dXJuICRzdW07Cn07CgokcmVzdWx0cyA9ICRfdG9fdHJlZSgpOwokX2NvdW50X2NoaWxkcmVuKCRyZXN1bHRzKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeWxpc3QnLCRyZXN1bHRzKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.checkurl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHR1cmwgPSAnJzsKJHRuYW1lID0gJyc7CiRvdXRwdXQgPSBuZXcgU3RkQ2xhc3MoKTsKCmlmKCBpc3NldCgkcGFyYW1zWydjZF9uYW1lJ10pICkgJHRuYW1lID0gdHJpbSgkcGFyYW1zWydjZF9uYW1lJ10pOwppZiggaXNzZXQoJHBhcmFtc1snY2RfdXJsJ10pICkgJHR1cmwgPSB0cmltKCRwYXJhbXNbJ2NkX3VybCddKTsKCmlmKCAkdG5hbWUgPT0gJycgKQogIHsKICAgICRvdXRwdXQtPnN0YXR1cyA9ICdFUlJPUic7CiAgICAkb3V0cHV0LT5lcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkbmFtZScpOwogICAgZWNobyBqc29uX2VuY29kZSgkb3V0cHV0KTsKICAgIGV4aXQoKTsKICB9CgokdG5hbWUgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCR0bmFtZSk7CiR0dXJsID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkdHVybCk7CgovLyBpZiB3ZSBoYXZlIGEgdXJsLCB3ZSBqdXN0IGNoZWNrIHRoZSBvbmUgcHJvdmlkZWQKLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhIHVybCwgd2UgY2FsY3VsYXRlIG9uZS4KaWYoICEkdHVybCApICR0dXJsID0gY2RfdXRpbHM6OmdlbmVyYXRlX3VybCgkdG5hbWUpOwppZiggISR0dXJsICkKICB7Cgkkb3V0cHV0LT5zdGF0dXMgPSAnRVJST1InOwoJJG91dHB1dC0+ZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZG5hbWUnKTsKCWVjaG8ganNvbl9lbmNvZGUoJG91dHB1dCk7CglleGl0KCk7CiAgfQoKJHJlcyA9IGNkX3V0aWxzOjp2YWxpZGF0ZV91cmwoJHR1cmwpOwppZiggISRyZXMgKQogIHsKCSRvdXRwdXQtPnN0YXR1cyA9ICdFUlJPUic7Cgkkb3V0cHV0LT5lcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJyk7CgllY2hvIGpzb25fZW5jb2RlKCRvdXRwdXQpOwoJZXhpdCgpOwogIH0KCiRvdXRwdXQtPnN0YXR1cyA9ICdPSyc7CiRvdXRwdXQtPnVybCA9ICR0dXJsOwplY2hvIGpzb25fZW5jb2RlKCRvdXRwdXQpOwpleGl0KCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.copycompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKQp7CiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpKTsKICByZXR1cm47Cn0KCi8vIGluaXRpYWxpemF0aW9uCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKJGNvbXBpZCA9ICcnOwokc3JjZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkKTsKCi8vIGdldCBwYXJhbXMKaWYoICFpc3NldCgkcGFyYW1zWydjb21waWQnXSkgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICAgIHJldHVybjsKICB9CiRjb21waWQgPSAoaW50KSRwYXJhbXNbJ2NvbXBpZCddOwoKLy8KLy8gZ2V0IGFsbCB0aGUgZGF0YQovLwoKLy8gZ2V0IHRoZSBjb21wYW55IGluZm8uCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/JzsKJGNvbXBhbnkgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNvbXBpZCkpOwppZiggISRjb21wYW55ICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3Jlc3VsdHNmb3VuZCcpKTsKICAgIHJldHVybjsKICB9CgovLyBnZXQgdGhlIGZpZWxkcy4KJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyBXSEVSRSBjb21wYW55X2lkID0gPyc7CiRmaWVsZHMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY29tcGlkKSk7CgovLyBnZXQgdGhlIGNhdGVnb3JpZXMuCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgV0hFUkUgY29tcGFueV9pZCA9ID8nOwokY2F0ZWdvcmllcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRjb21waWQpKTsKCi8vIGdldCB0aGUgZmlsZXMuCiRzcmNmaWxlcyA9IGdsb2IoJHNyY2Rpci4nLyouKicpOwoKLy8KLy8gZG8gdGhlIGNvcHkKLy8KaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcmVxdWlyZWQnLDApIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfY3JlYXRlb25jb3B5JykgKQogIHsKCS8vIEdvdHRhIEdlbmVyYXRlIGEgVVJMCgkkbmV3X3VybCA9IGNkX3V0aWxzOjpnZW5lcmF0ZV91cmwoJGNvbXBhbnlbJ2NvbXBhbnlfbmFtZSddKTsKCWlmKCAhJG5ld191cmwgKQoJICB7CgkJLy8gZXJyb3IKCQkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRuYW1lJykpOwoJCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgkgIH0KCWlmKCAhY2RfdXRpbHM6OnZhbGlkYXRlX3VybCgkbmV3X3VybCkgKQoJICB7CgkJLy8gZXJyb3IuCgkJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJykpOwoJCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgkgIH0KCSRjb21wYW55Wyd1cmwnXSA9ICRuZXdfdXJsOwogIH0KZWxzZQogIHsKCS8vIFdlIGRvbid0IG5lZWQgYSBVUkwsIHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGNyZWF0ZSBhIGNvcHkgb2YgYW4gZXhpc3Rpbmcgb25lLgoJJGNvbXBhbnlbJ3VybCddID0gJyc7CiAgfQoKJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgKGNvbXBhbnlfbmFtZSwgdXJsLCBhZGRyZXNzLCB0ZWxlcGhvbmUsCiAgICAgICAgICAgIGZheCwgY29udGFjdF9lbWFpbCwgd2Vic2l0ZSwgZGV0YWlscywgcGljdHVyZV9sb2NhdGlvbiwgbG9nb19sb2NhdGlvbiwgY3JlYXRlX2RhdGUsCiAgICAgICAgICAgIG1vZGlmaWVkX2RhdGUsIHN0YXR1cywgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgb3duZXJfaWQsaGllcl9pZCkKICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSw/LD8sPyw/LD8pJzsKJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksCgkJICAgIGFycmF5KCRjb21wYW55Wydjb21wYW55X25hbWUnXSwKCQkJCSAgJGNvbXBhbnlbJ3VybCddLAoJCQkJICAkY29tcGFueVsnYWRkcmVzcyddLAoJCQkJICAkY29tcGFueVsndGVsZXBob25lJ10sCgkJCQkgICRjb21wYW55WydmYXgnXSwKCQkJCSAgJGNvbXBhbnlbJ2NvbnRhY3RfZW1haWwnXSwKCQkJCSAgJGNvbXBhbnlbJ3dlYnNpdGUnXSwKCQkJCSAgJGNvbXBhbnlbJ2RldGFpbHMnXSwKCQkJCSAgJGNvbXBhbnlbJ3BpY3R1cmVfbG9jYXRpb24nXSwKCQkJCSAgJGNvbXBhbnlbJ2xvZ29fbG9jYXRpb24nXSwKCQkJCSAgJGNvbXBhbnlbJ3N0YXR1cyddLAoJCQkJICAkY29tcGFueVsnbGF0aXR1ZGUnXSwKCQkJCSAgJGNvbXBhbnlbJ2xvbmdpdHVkZSddLAoJCQkJICAkY29tcGFueVsnb3duZXJfaWQnXSwKCQkJCSAgJGNvbXBhbnlbJ2hpZXJfaWQnXSkpOwppZiggISRkYnIgKSBkaWUoJGRiLT5zcWwuJzxici8+Jy4kZGItPkVycm9yTXNnKCkpOwokbmV3X2NvbXBpZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgoKaWYoIGlzX2FycmF5KCRmaWVsZHMpICYmIGNvdW50KCRmaWVsZHMpICkgewogICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIChjb21wYW55X2lkLGZpZWxkZGVmX2lkLHZhbHVlLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sTk9XKCksTk9XKCkpJzsKICBmb3JlYWNoKCAkZmllbGRzIGFzICRmaWVsZCApIHsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbmV3X2NvbXBpZCwkZmllbGRbJ2ZpZWxkZGVmX2lkJ10sJGZpZWxkWyd2YWx1ZSddKSk7CglpZiggISRkYnIgKSBkaWUoJGRiLT5zcWwuJzxici8+Jy4kZGItPkVycm9yTXNnKCkpOwogIH0KfQoKaWYoIGlzX2FycmF5KCRjYXRlZ29yaWVzKSAmJiBjb3VudCgkY2F0ZWdvcmllcykgKSB7CiAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgKGNvbXBhbnlfaWQsY2F0ZWdvcnlfaWQsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgVkFMVUVTICg/LD8sTk9XKCksTk9XKCkpJzsKICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkY2F0ZWdvcnkgKSB7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmV3X2NvbXBpZCwkY2F0ZWdvcnlbJ2NhdGVnb3J5X2lkJ10pKTsKCWlmKCAhJGRiciApIGRpZSgkZGItPnNxbC4nPGJyLz4nLiRkYi0+RXJyb3JNc2coKSk7CiAgfQp9CgovLyBjb3B5IGZpbGVzCmlmKCBjb3VudCgkc3JjZmlsZXMpICkgewogICRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kbmV3X2NvbXBpZCk7CiAgY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKICBmb3JlYWNoKCAkc3JjZmlsZXMgYXMgJG9uZWZpbGUgKSB7CgkkYm4gPSBiYXNlbmFtZSgkb25lZmlsZSk7CglAY29weSgkc3JjZmlsZSxjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRibikpOwogIH0KfQoKLy8gdXBkYXRlIHNlYXJjaCBpbmRleC4KJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKaWYgKCRtb2R1bGUgIT0gRkFMU0UgJiYgJGNvbXBhbnlbJ3N0YXR1cyddID09ICdwdWJsaXNoZWQnICkgewogICRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRjaWQsICdjb21wYW55JywKCQkJCQlpbXBsb2RlKCcgJywgYXJyYXkoJGNvbXBhbnlbJ2NvbXBhbnlfbmFtZSddLAoJCQkJCQkJCQkgICAkY29tcGFueVsnY29tcGFueV9uYW1lJ10sCgkJCQkJCQkJCSAgICRjb21wYW55WydhZGRyZXNzJ10sCgkJCQkJCQkJCSAgICRjb21wYW55Wyd0ZWxlcGhvbmUnXSwKCQkJCQkJCQkJICAgJGNvbXBhbnlbJ2ZheCddLAoJCQkJCQkJCQkgICAkY29tcGFueVsnZGV0YWlscyddKSkpOwp9CgoKLy8gYW5kIHJlZGlyZWN0IHNvbWV3aGVyZS4KJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jb21wYW55Y29waWVkJykpOwokdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Y29tcGFueScsJycsYXJyYXkoJ2NvbXBpZCc9PiRuZXdfY29tcGlkLCdub2NhbmNlbCc9PjEpKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRwbCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURSk7CmlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSkgKQkkdHBsID0gdHJpbSgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSk7CmlmKCAhJHRwbCApIHJldHVybjsKJHRoZV90ZW1wbGF0ZSA9ICdzdW1tYXJ5XycuJHRwbDsKCiRjYWNoZV9pZCA9ICd8Y2dzJy5tZDUoc2VyaWFsaXplKCRwYXJhbXMpKTsKJGNvbXBpbGVfaWQgPSAnJzsKCnRyeSB7CiAgaWYoICEkc21hcnR5LT5pc0NhY2hlZCgkdGhpcy0+R2V0RGF0YWJhc2VSZXNvdXJjZSgkdGhlX3RlbXBsYXRlKSwkY2FjaGVfaWQsJGNvbXBpbGVfaWQpICkgewoJJGZpbHRlciA9IG5ldyBjZF9jb21wYW55X2ZpbHRlcigkcGFyYW1zKTsKCSRmaWx0ZXJbJ3JldHVybmlkJ10gPSAkcmV0dXJuaWQ7CgkkZmlsdGVyWydpZCddID0gJGlkOwoJJHF1ZXJ5ID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGZpbHRlcik7CgkkcGFnaW5hdGlvbiA9ICRxdWVyeS0+Z2V0X3BhZ2luYXRpb24oKTsKCSRwYWdlID0gJHBhZ2luYXRpb24tPmdldF9jdXJyZW50X3BhZ2UoKTsKCgkkc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywkcXVlcnktPmdldF9yZXN1bHRzKCRpZCwkcmV0dXJuaWQpKTsKCSRzbWFydHktPmFzc2lnbignaXRlbWNvdW50JywkcXVlcnktPmdldF9yZXN1bHRfY291bnQoKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ3RvdGFsbWF0Y2hlcycsJHF1ZXJ5LT5nZXRfdG90YWxfbWF0Y2hlcygpKTsKCSRzbWFydHktPmFzc2lnbigncGFnaW5hdGlvbicsJHBhZ2luYXRpb24pOwoKCSRzbWFydHktPmFzc2lnbigncGFnZXRleHQnLCR0aGlzLT5MYW5nKCdwYWdlJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdvZnRleHQnLCR0aGlzLT5MYW5nKCdvZicpKTsKCSRzbWFydHktPmFzc2lnbigncGFnZWNvdW50JywkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfY291bnQoKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2N1cnBhZ2UnLCRwYWdlKTsKICAgICRzbWFydHktPmFzc2lnbignZmlsdGVyJywkZmlsdGVyKTsKCSRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X2xpc3QnLGFycmF5X2ZsaXAoY2RfdXRpbHM6OmdldF9oaWVyYXJjaHlfbGlzdCgpKSk7CglpZiggJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCkgPiAxICkgewoJICBpZiggJHBhZ2UgPT0gMSApIHsKCQkkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKTsKCQkkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7CgkgIH0KCSAgZWxzZSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdmaXJzdGxpbmsnLCRwYWdpbmF0aW9uLT5nZXRfcGFnZV9saW5rKDEsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKSk7CgkJJHNtYXJ0eS0+YXNzaWduKCdwcmV2bGluaycsJHBhZ2luYXRpb24tPmdldF9wYWdlX2xpbmsoJHBhZ2luYXRpb24tPmdldF9jdXJyZW50X3BhZ2UoKS0xLCR0aGlzLT5MYW5nKCdwcmV2cGFnZScpKSk7CgkgIH0KCSAgaWYoICRwYWdlID09ICRwYWdpbmF0aW9uLT5nZXRfcGFnZV9jb3VudCgpICkgewoJCSRzbWFydHktPmFzc2lnbignbGFzdGxpbmsnLCR0aGlzLT5MYW5nKCdsYXN0cGFnZScpKTsKCQkkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSk7CgkgIH0KCSAgZWxzZSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHBhZ2luYXRpb24tPmdldF9wYWdlX2xpbmsoJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCksJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpKTsKCQkkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfbGluaygkcGFnaW5hdGlvbi0+Z2V0X2N1cnJlbnRfcGFnZSgpKzEsJHRoaXMtPkxhbmcoJ25leHRwYWdlJykpKTsKCSAgfQoJfQogIH0KCiAgZWNobyAkc21hcnR5LT5mZXRjaCgkdGhpcy0+R2V0RGF0YWJhc2VSZXNvdXJjZSgkdGhlX3RlbXBsYXRlKSwkY2FjaGVfaWQsJGNvbXBpbGVfaWQpOwp9CmNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgZWNobyAnPCEtLSAnLiR0aGlzLT5HZXROYW1lKCkuJyBFUlJPUjogJy4kZS0+R2V0bWVzc2FnZSgpLicgLS0+JzsKICB0aHJvdyAkZTsKfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpICkgcmV0dXJuOwoKJHRhYiA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkgewogICAgJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKICAgICR0aGlzLT5TZXRDdXJyZW50VGFiKCR0YWIpOwp9CgovLyB0aGUgdG9wIG5hdiBiYXIKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgewogICAgZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IHdpZHRoOiA4MCU7Ij4nOwogICAgaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSB7CiAgICAgICAgZWNobyAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fc2V0dGluZ3MnLCRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2xibF9zZXR0aW5ncycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbnMvdG9wZmlsZXMvcHJlZmVyZW5jZXMuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKTsKICAgIH0KICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKSB7CiAgICAgICAgZWNobyAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fdGVtcGxhdGVzJywkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdsYmxfdGVtcGxhdGVzJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29ucy90b3BmaWxlcy90ZW1wbGF0ZS5naWYnLGFycmF5KCksJycsJycsZmFsc2UpOwogICAgfQogICAgZWNobyAnPC9kaXY+JzsKfQoKJGNvbGxlY3RzdGF0cyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb2xsZWN0c3RhdHMnLDApOwoKaWYoICEkY29sbGVjdHN0YXRzICkgewogICAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fY29tcGFuaWVzdGFiLnBocCcpOwp9CmVsc2UgewogICAgZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CiAgICBpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIHsKICAgICAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NvbXBhbmllcycsJHRoaXMtPkxhbmcoJ2NvbXBhbmllcycpKTsKICAgICAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NlYXJjaGVzJywkdGhpcy0+TGFuZygnc2VhcmNoZXMnKSk7CiAgICB9CiAgICBlY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CiAgICBpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIHsKICAgICAgICBlY2hvICR0aGlzLT5TdGFydFRhYignY29tcGFuaWVzJywgJHBhcmFtcyk7CiAgICAgICAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fY29tcGFuaWVzdGFiLnBocCcpOwogICAgICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogICAgfQoKICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29sbGVjdHN0YXRzJywwKSApIHsKICAgICAgICBlY2hvICR0aGlzLT5TdGFydFRhYignc2VhcmNoZXMnLCAkcGFyYW1zKTsKICAgICAgICBpbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl9zZWFyY2hlc3RhYi5waHAnKTsKICAgICAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAgIH0KICAgIGVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/action.defaulturl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGFjdGlvbiA9ICdkZXRhaWxzJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgKQogIHsKICAgICRhY3Rpb24gPSAnZGVmYXVsdCc7CiAgfQoKJHRoaXMtPkRvQWN0aW9uKCRhY3Rpb24sJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKCiMgdmltOnRzPTQgc3c9NCBub2V0Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKdHJ5IHsKICAkY2F0aWQgPSAoaW50KWNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2NhdGlkJyk7CgogICRjYXRlZ29yeSA9IGNkX2NhdGVnb3J5Ojpsb2FkKCRjYXRpZCk7CiAgJGNhdGVnb3J5LT5kZWxldGUoKTsKCiAgJHRoaXMtPlNldG1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2NhdGVnb3J5ZGVsZXRlZCcpKTsKICBhdWRpdCgkY2F0aWQsJHRoaXMtPkdldE5hbWUoKSwnRGVsZXRlZCBDYXRlZ29yeScpOwp9CmNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwp9CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgJycsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTsKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.deletecompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NvbXBhbmllcycpOwokY29tcGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjb21waWQnXSkpICRjb21waWQgPSAoaW50KSRwYXJhbXNbJ2NvbXBpZCddOwoKJHJlcyA9IGNkX2NvbXBhbnk6OmRlbGV0ZSgkY29tcGlkKTsKaWYoICRyZXMgKSB7CiAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2NvbXBhbnlkZWxldGVkJykpOwp9CmVsc2UgewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfY29tcGFueW5vdGRlbGV0ZWQnKSk7Cn0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deletefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGZkaWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkpCnsKCSRmZGlkID0gJHBhcmFtc1snZmRpZCddOwp9CgovLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwoKLy9Ob3cgcmVtb3ZlIHRoZSBjYXRlZ29yeQokcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwoKLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGVudHJpZXMKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgV0hFUkUgZmllbGRkZWZfaWQgPSA/IjsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKCiRkYi0+RXhlY3V0ZSgnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgU0VUIGl0ZW1fb3JkZXIgPSAoaXRlbV9vcmRlciAtIDEpIFdIRVJFIGl0ZW1fb3JkZXIgPiA/JywgYXJyYXkoJHJvd1snaXRlbV9vcmRlciddKSk7CgphdWRpdCgkZmRpZCwkdGhpcy0+R2V0TmFtZSgpLCdEZWxldGVkIGZpZWxkIGRlZmluaXRpb24nKTsKJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnZmllbGRkZWZkZWxldGVkJywgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX3NldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.details.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRoZV90ZW1wbGF0ZSA9ICdkZXRhaWxfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVERFVEFJTF9URU1QTEFURSk7CmlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddICkgKSAkdGhlX3RlbXBsYXRlID0gJ2RldGFpbF8nLiRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CgokY2FjaGVfaWQgPSAnfGNncycubWQ1KHNlcmlhbGl6ZSgkcGFyYW1zKSk7CiRjb21waWxlX2lkID0gJyc7CgppZiggISRzbWFydHktPmlzQ2FjaGVkKCR0aGlzLT5HZXREYXRhYmFzZVJlc291cmNlKCR0aGVfdGVtcGxhdGUpLCRjYWNoZV9pZCwkY29tcGlsZV9pZCkgKSB7CiAgJHN1bW1hcnlwYWdlID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnc3VtbWFyeXBhZ2UnKSwkcmV0dXJuaWQpOwogICRjb21wYW55ID0gY2RfdXRpbHM6OmdldF9jb21wYW55KCRwYXJhbXNbJ2NvbXBhbnlpZCddLCRyZXR1cm5pZCxUUlVFLFRSVUUsJHN1bW1hcnlwYWdlKTsKICBpZiggaXNfb2JqZWN0KCRjb21wYW55KSApIHsKICAgICRzbWFydHktPmFzc2lnbignc3VtbWFyeXBhZ2UnLCRzdW1tYXJ5cGFnZSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9saXN0JyxhcnJheV9mbGlwKGNkX3V0aWxzOjpnZXRfaGllcmFyY2h5X2xpc3QoKSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdlbnRyeScsICRjb21wYW55KTsKCWlmKCBpc3NldCgkY29tcGFueS0+Y2F0ZWdvcmllcykgJiYgaXNfYXJyYXkoJGNvbXBhbnktPmNhdGVnb3JpZXMpICkgewoJICAkdG1wID0gYXJyYXlfa2V5cygkY29tcGFueS0+Y2F0ZWdvcmllcyk7CgkgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApICRzbWFydHktPmFzc2lnbignY2F0ZWdvcnl0ZXh0JywgaW1wbG9kZSgiLCAiLCR0bXApKTsKICAgICAgLy8gdWdseSwgYmFja3dhcmRzIGNvbXBhdCBzdHVmZi4KCSAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywgJGNvbXBhbnktPmNhdGVnb3JpZXMpOwoJICAkc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3JpZXNjb3VudCcsIGNvdW50KCRjb21wYW55LT5jYXRlZ29yaWVzKSk7Cgl9CiAgfQp9CmVjaG8gJHNtYXJ0eS0+ZmV0Y2goJHRoaXMtPkdldERhdGFiYXNlUmVzb3VyY2UoJHRoZV90ZW1wbGF0ZSksJGNhY2hlX2lkLCRjb21waWxlX2lkKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiMKIyBDYWNoZWQgZGF0YQojCiRfaGllcl9jYWNoZSA9IG51bGw7CiRfZmllbGRkZWZfY2FjaGUgPSBudWxsOwokX2NhdGVnb3J5X2NhY2hlID0gbnVsbDsKJF9lcnJvciA9ICcnOwokX251bV9oaWVyID0gMDsKc2V0X3RpbWVfbGltaXQoOTk5OSk7CgojCiMgSW5pdGlhbGl6YXRpb24KIwokZGVsaW1pdGVyID0gJ3wnOwokZW5jbG9zdXJlID0gJyInOwokZG9fZmllbGRkZWZzID0gMDsKJGRvX2ZpZWxkdmFscyA9IDA7CiRkb19jYXRlZ29yeWRlZnMgPSAwOwokZG9fY2F0ZWdvcnl2YWxzID0gMDsKJGRvX2hpZXJhcmNoeWRlZnMgPSAwOwokZG9faGllcmFyY2h5dmFscyA9IDA7CiRkb19sb29rdXAgPSAwOwokZG9fY3JlYXRlX3VybCA9IDA7CiRjaGVja19kdXBsaWNhdGVzID0gJ2Vycm9yJzsKCiMKIyBHZXQgRm9ybSBEYXRhCiMKJGltcG9ydGVyID0gbmV3IGNkX2FzY2lpX2ltcG9ydGVyKCR0aGlzKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApICR0aGlzLT5DR1JlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQpOwoKJGRlbGltaXRlciA9IGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2RlbGltZXRlcicsJGRlbGltaXRlcik7CiRpbXBvcnRlci0+c2V0X2RlbGltaXRlcigkZGVsaW1pdGVyKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9kZWxpbWl0ZXInLCRkZWxpbWl0ZXIpOwoKJGVuY2xvc3VyZSA9IGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2VuY2xvc3VyZScsJGVuY2xvc3VyZSk7CiRpbXBvcnRlci0+c2V0X2VuY2xvc3VyZSgkZW5jbG9zdXJlKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9lbmNsb3N1cmUnLCRlbmNsb3N1cmUpOwoKJGRvX2ZpZWxkZGVmcyA9IChpbnQpIGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2RvX2ZpZWxkZGVmcycsJGRvX2ZpZWxkZGVmcyk7CiRpbXBvcnRlci0+ZG9fZmllbGRkZWZzKCRkb19maWVsZGRlZnMpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2ZpZWxkZGVmcycsJGRvX2ZpZWxkZGVmcyk7CgokZG9fZmllbGR2YWxzID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZG9fZmllbGR2YWxzJywkZG9fZmllbGR2YWxzKTsKJGltcG9ydGVyLT5kb19maWVsZHZhbHMoJGRvX2ZpZWxkdmFscyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfZmllbGR2YWxzJywkZG9fZmllbGR2YWxzKTsKCiRkb19jYXRlZ29yeWRlZnMgPSAoaW50KSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdkb19jYXRlZ29yeWRlZnMnLCRkb19jYXRlZ29yeWRlZnMpOwokaW1wb3J0ZXItPmRvX2NhdGVnb3J5ZGVmcygkZG9fY2F0ZWdvcnlkZWZzKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jYXRlZ29yeWRlZnMnLCRkb19jYXRlZ29yeWRlZnMpOwoKJGRvX2NhdGVnb3J5dmFscyA9IChpbnQpIGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2RvX2NhdGVnb3J5dmFscycsJGRvX2NhdGVnb3J5dmFscyk7CiRpbXBvcnRlci0+ZG9fY2F0ZWdvcnl2YWxzKCRkb19jYXRlZ29yeXZhbHMpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NhdGVnb3J5dmFscycsJGRvX2NhdGVnb3J5dmFscyk7CgokZG9faGllcmFyY2h5ZGVmcyA9IChpbnQpIGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2RvX2hpZXJhcmNoeWRlZnMnLCRkb19oaWVyYXJjaHlkZWZzKTsKJGltcG9ydGVyLT5kb19oaWVyYXJjaHlkZWZzKCRkb19oaWVyYXJjaHlkZWZzKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9oaWVyYXJjaHlkZWZzJywkZG9faGllcmFyY2h5ZGVmcyk7CgokZG9faGllcmFyY2h5dmFscyA9IChpbnQpIGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2RvX2hpZXJhcmNoeXZhbHMnLCRkb19oaWVyYXJjaHl2YWxzKTsKJGltcG9ydGVyLT5kb19oaWVyYXJjaHl2YWxzKCRkb19oaWVyYXJjaHl2YWxzKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9oaWVyYXJjaHl2YWxzJywkZG9faGllcmFyY2h5dmFscyk7CgokZG9fbG9va3VwID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZG9fbG9va3VwJywkZG9fbG9va3VwKTsKJGltcG9ydGVyLT5kb19sYXRsb25nX2xvb2t1cCgkZG9fbG9va3VwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9sb29rdXBsYXRsb25nJywkZG9fbG9va3VwKTsKCiRkb19jcmVhdGVfdXJsID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZG9fY3JlYXRlX3VybCcsJGRvX2NyZWF0ZV91cmwpOwokaW1wb3J0ZXItPmNyZWF0ZV91cmwoJGRvX2NyZWF0ZV91cmwpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZV91cmwnLCRkb19jcmVhdGVfdXJsKTsKCiRjaGVja19kdXBsaWNhdGVzID0gdHJpbShjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdjaGVja19kdXBsaWNhdGVzJyksJGNoZWNrX2R1cGxpY2F0ZXMpOwokaW1wb3J0ZXItPmNoZWNrX2R1cGxpY2F0ZV9jb21wYW5pZXMoJGNoZWNrX2R1cGxpY2F0ZXMpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NoZWNrZHVwbGljYXRlcycsJGNoZWNrX2R1cGxpY2F0ZXMpOwoKaWYoICRkZWxpbWl0ZXIgPT0gJycgKSB7CiAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgJHRoaXMtPkNHUmVkaXJlY3QoJGlkLCdpbXBvcnRjc3YnLCRyZXR1cm5pZCk7Cn0KZWxzZSBpZiggIWlzc2V0KCRfRklMRVNbJGlkLidjc3ZmaWxlJ10pIHx8ICRfRklMRVNbJGlkLidjc3ZmaWxlJ11bJ3NpemUnXSA9PSAwICkgewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3VwbG9hZCcpKTsKICAkdGhpcy0+Q0dSZWRpcmVjdCgkaWQsJ2ltcG9ydGNzdicsJHJldHVybmlkKTsKfQplbHNlIGlmKCAkX0ZJTEVTWyRpZC4nY3N2ZmlsZSddWydlcnJvciddICE9IDAgKSB7CiAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9iYWR1cGxvYWQnKSk7CiAgJHRoaXMtPkNHUmVkaXJlY3QoJGlkLCdpbXBvcnRjc3YnLCRyZXR1cm5pZCk7Cn0KJGZpbGVuYW1lID0gJF9GSUxFU1skaWQuJ2NzdmZpbGUnXVsndG1wX25hbWUnXTsKCiRyZXMgPSAkaW1wb3J0ZXItPmltcG9ydF9maWxlKCRmaWxlbmFtZSk7CiRlcnJvcnMgPSAkaW1wb3J0ZXItPmdldF9lcnJvcnMoKTsKaWYoIGNvdW50KCRlcnJvcnMpICkgJHNtYXJ0eS0+YXNzaWduKCdlcnJvcnMnLCRlcnJvcnMpOwokcmVzdWx0cyA9ICRpbXBvcnRlci0+Z2V0X3Jlc3VsdHMoKTsKJHNtYXJ0eS0+YXNzaWduKCdudW1fY29tcGFuaWVzJywkcmVzdWx0c1snbnVtX2NvbXBhbmllcyddKTsKJHNtYXJ0eS0+YXNzaWduKCdudW1fY2F0ZWdvcmllcycsJHJlc3VsdHNbJ251bV9jYXRlZ29yaWVzJ10pOwokc21hcnR5LT5hc3NpZ24oJ251bV9maWVsZGRlZnMnLCRyZXN1bHRzWydudW1fZmllbGRkZWZzJ10pOwokc21hcnR5LT5hc3NpZ24oJ251bV9oaWVyJywkcmVzdWx0c1snbnVtX2hpZXInXSk7CiRzbWFydHktPmFzc2lnbigncmV0dXJuX3VybCcsJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkKSk7CgppZiggJHJlc3VsdHNbJ251bV9jb21wYW5pZXMnXSA+IDAgfHwgJHJlc3VsdHNbJ251bV9jYXRlZ29yaWVzJ10gPiAwIHx8CgkkcmVzdWx0c1snbnVtX2ZpZWxkZGVmcyddID4gMCB8fCAkcmVzdWx0c1snbnVtX2hpZXInXSA+IDAgKSB7CiAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwKICAgICAgICBzcHJpbnRmKCdJbXBvcnRlZCBkYXRhIGZyb20gQ1NWICglZCBjb21wYW5pZXMsICVkIGNhdGVnb3JpZXMsICVkIGZpZWxkIGRlZnMsICVkIGhpZXIpJywKICAgICAgICAgICAgICAgICRyZXN1bHRzWydudW1fY29tcGFuaWVzJ10sICRyZXN1bHRzWydudW1fY2F0ZWdvcmllcyddLAogICAgICAgICAgICAgICAgJHJlc3VsdHNbJ251bV9maWVsZGRlZnMnXSwgJHJlc3VsdHNbJ251bV9oaWVyJ10pKTsKfQoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdkb19pbXBvcnRjc3YudHBsJyk7CiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.do_search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIGR1bW15IGZpbGUgKi8gPz4KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UK]]></data>
	</file>
	<file>
	  <filename>/action.editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3NldHRpbmdzJyk7Cn0KCiRjYXRpZCA9ICRjYXRlZ29yeSA9IG51bGw7CnRyeSB7CiAgJGNhdGlkID0gKGludCljZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdjYXRpZCcpOwogICRjYXRlZ29yeSA9IG5ldyBjZF9jYXRlZ29yeSgpOwogIGlmKCAkY2F0aWQgPiAwICkgJGNhdGVnb3J5ID0gY2RfY2F0ZWdvcnk6OmxvYWQoJGNhdGlkKTsKCiAgaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgICAgJGNhdGVnb3J5WyduYW1lJ10gPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCduYW1lJyk7CiAgICAgICRjYXRlZ29yeVsncGFyZW50X2lkJ10gPSAoaW50KWNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ3BhcmVudF9pZCcpOwogICAgICAkY2F0ZWdvcnlbJ2Rlc2NyaXB0aW9uJ10gPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdkZXNjcmlwdGlvbicpOwogICAgICAkY2F0ZWdvcnlbJ2V4dHJhMSddID0gY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZXh0cmExJyk7CiAgICAgICRjYXRlZ29yeVsnZXh0cmEyJ10gPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdleHRyYTInKTsKICAgICAgJGNhdGVnb3J5WydleHRyYTMnXSA9IGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2V4dHJhMycpOwoKICAgICAgLy8gdG9kbzogaGFuZGxlIGNhdGVnb3J5IGltYWdlCiAgICAgICRjYXRlZ29yeS0+c2F2ZSgpOwoKICAgICAgLy8gYW5kIGRvbmUuLi4KICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jYXRlZ29yeXNhdmVkJykpOwogICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CiAgfQoKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKfQoKLy8gZ2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eQokcGFybXMgPSBhcnJheSgpOwppZiggaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkgKSAkcGFybXNbJ2NhdGlkJ10gPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRjYXRlZ29yeScsICRyZXR1cm5pZCwkcGFybXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcnknLCRjYXRlZ29yeSk7CgokY2F0ZWdvcmllcyA9IGFycmF5KC0xPT4kdGhpcy0+TGFuZygnbm9uZScpKTsKJHRtcCA9IGNkX2NhdGVnb3J5OjpnZXRfbGlzdCgpOwppZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CiAgICBmb3JlYWNoKCAkdG1wIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAkY2F0ZWdvcmllc1ska2V5XSA9ICR2YWw7CiAgICB9Cn0KJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywkY2F0ZWdvcmllcyk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGNhdGVnb3J5LnRwbCcpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.editcompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSByZXR1cm47CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsKCiRjb21waWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSkgJGNvbXBpZCA9IChpbnQpJHBhcmFtc1snY29tcGlkJ107CgokY29tcGFueV9uYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydleF9jb21wYW55X25hbWUnXSkpICRjb21wYW55X25hbWUgPSAkcGFyYW1zWydleF9jb21wYW55X25hbWUnXTsKCiRhZGRyZXNzID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydhZGRyZXNzJ10pKSAkYWRkcmVzcyA9ICRwYXJhbXNbJ2FkZHJlc3MnXTsKCiR1cmwgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3VybCddKSkgJHVybCA9ICRwYXJhbXNbJ3VybCddOwoKJGxhdGl0dWRlID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydsYXRpdHVkZSddKSkgJGxhdGl0dWRlID0gJHBhcmFtc1snbGF0aXR1ZGUnXTsKCiRsb25naXR1ZGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2xvbmdpdHVkZSddKSkgJGxvbmdpdHVkZSA9ICRwYXJhbXNbJ2xvbmdpdHVkZSddOwoKJGhpZXJwb3MgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2hpZXJwb3MnXSkpICRoaWVycG9zID0gJHBhcmFtc1snaGllcnBvcyddOwoKJHRlbGVwaG9uZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1sndGVsZXBob25lJ10pKSAkdGVsZXBob25lID0gJHBhcmFtc1sndGVsZXBob25lJ107CgokZmF4ID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydmYXgnXSkpICRmYXggPSAkcGFyYW1zWydmYXgnXTsKCiRjb250YWN0X2VtYWlsID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjb250YWN0X2VtYWlsJ10pKSAkY29udGFjdF9lbWFpbCA9ICRwYXJhbXNbJ2NvbnRhY3RfZW1haWwnXTsKCiR3ZWJzaXRlID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyd3ZWJzaXRlJ10pKSAkd2Vic2l0ZSA9ICRwYXJhbXNbJ3dlYnNpdGUnXTsKCiRkZXRhaWxzID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWxzJ10pKSAkZGV0YWlscyA9ICRwYXJhbXNbJ2RldGFpbHMnXTsKCiRzdGF0dXMgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3N0YXR1cyddKSkgJHN0YXR1cyA9ICRwYXJhbXNbJ3N0YXR1cyddOwoKJG93bmVyX2lkID0gLTE7CmlmIChpc3NldCgkcGFyYW1zWydvd25lcl9pZCddKSkgJG93bmVyX2lkID0gJHBhcmFtc1snb3duZXJfaWQnXTsKCiRvcmlnbmFtZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snb3JpZ25hbWUnXSkpICRvcmlnbmFtZSA9ICRwYXJhbXNbJ29yaWduYW1lJ107CgokY2FuX2NhbmNlbCA9IDE7CmlmKCBpc3NldCgkcGFyYW1zWydub2NhbmNlbCddKSApICRjYW5fY2FuY2VsID0gMDsKCgokZmllbGRkZWZzID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnNfZm9yX2NvbXBhbnkoJGNvbXBpZCxUUlVFKTsKJGRlc3RkaXIgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLCdjb21wYW55ZGlyZWN0b3J5JywnaWQnLiRjb21waWQpOwokdXNlX3d5c2l3eWcgPSAoaW50KSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbnd5c2l3eWcnLDEpOwoKZnVuY3Rpb24gaGFuZGxlX2luaXRpYWxfdXBsb2FkKCRpZCwgJGZpZWxkbmFtZSkKewogICRnQ21zID0gY21zbXMoKTsKCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJaWYgKCFpc19kaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknKSkgewoJCUBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScpOwoJfQoJaWYgKCFpc19kaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0bXAnKSkgewoJCUBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcpOwoJfQoKCUBjbXNfbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJGlkIC4gJGZpZWxkbmFtZV1bJ3RtcF9uYW1lJ10sICRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndG1wJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiBiYXNlbmFtZSgkX0ZJTEVTWyRpZCAuICRmaWVsZG5hbWVdWyduYW1lJ10pKTsKCglyZXR1cm4gYmFzZW5hbWUoJF9GSUxFU1skaWQgLiAkZmllbGRuYW1lXVsnbmFtZSddKTsKfQoKZnVuY3Rpb24gaGFuZGxlX3RtcF91cGxvYWQoJGlkLCAkaXRlbWlkLCAkZmlsZW5hbWUsICRmaWVsZG5hbWUsICYkZGIpCnsKCSRnQ21zID0gY21zbXMoKTsKCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJaWYgKCFpc19kaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpZCcgLiAkaXRlbWlkKSkgewoJICBAbWtkaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpZCcgLiAkaXRlbWlkKTsKCX0KCWlmICgkZmlsZW5hbWUgPT0gJ2RlbGV0ZW1lJykgewoJICAkb2xkZmlsZW5hbWUgPSAkZGItPkdldE9uZSgnU0VMRUNUICcgLiAkZmllbGRuYW1lIC4gJyBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/JywgYXJyYXkoJGl0ZW1pZCkpOwoJICBpZiAoaXNfZmlsZSgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJG9sZGZpbGVuYW1lKSkgewoJCXVubGluaygkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJG9sZGZpbGVuYW1lKTsKCSAgfQoJICAkZGItPkV4ZWN1dGUoJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFNFVCAnIC4gJGZpZWxkbmFtZSAuICcgPSA/IFdIRVJFIGlkID0gPycsIGFycmF5KCcnLCAkaXRlbWlkKSk7Cgl9CgllbHNlIGlmIChpc19maWxlKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndG1wJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZW5hbWUpKSB7CgkgICRvbGRmaWxlbmFtZSA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgJyAuICRmaWVsZG5hbWUgLiAnIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBpZCA9ID8nLCBhcnJheSgkaXRlbWlkKSk7CgkgIGlmIChpc19maWxlKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnaWQnIC4gJGl0ZW1pZCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkb2xkZmlsZW5hbWUpKSB7CgkJdW5saW5rKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnaWQnIC4gJGl0ZW1pZCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkb2xkZmlsZW5hbWUpOwoJICB9CgkgIEByZW5hbWUoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0bXAnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZSwgJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpZCcgLiAkaXRlbWlkIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZSk7CgkgICRkYi0+RXhlY3V0ZSgnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUICcgLiAkZmllbGRuYW1lIC4gJyA9ID8gV0hFUkUgaWQgPSA/JywgYXJyYXkoJGZpbGVuYW1lLCAkaXRlbWlkKSk7Cgl9Cn0KCiRpbWFnZSA9ICcnOwppZiAoaXNzZXQoJF9GSUxFU1skaWQgLiAnaW1hZ2V1cGxvYWQnXSkgJiYgJF9GSUxFU1skaWQgLiAnaW1hZ2V1cGxvYWQnXVsndG1wX25hbWUnXSAhPSAnJykgewogICRpbWFnZSA9IGhhbmRsZV9pbml0aWFsX3VwbG9hZCgkaWQsICdpbWFnZXVwbG9hZCcpOwp9CmVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWltYWdlJ10pKSB7CiAgJGltYWdlID0gJ2RlbGV0ZW1lJzsKfQplbHNlIGlmIChpc3NldCgkcGFyYW1zWydpbWFnZWN1cnJlbnQnXSkpIHsKICAkaW1hZ2UgPSAkcGFyYW1zWydpbWFnZWN1cnJlbnQnXTsKfQoKJGxvZ28gPSAnJzsKaWYgKGlzc2V0KCRfRklMRVNbJGlkIC4gJ2xvZ291cGxvYWQnXSkgJiYgJF9GSUxFU1skaWQgLiAnbG9nb3VwbG9hZCddWyd0bXBfbmFtZSddICE9ICcnKSB7CiAgJGxvZ28gPSBoYW5kbGVfaW5pdGlhbF91cGxvYWQoJGlkLCAnbG9nb3VwbG9hZCcpOwp9CmVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWxvZ28nXSkpIHsKICAkbG9nbyA9ICdkZWxldGVtZSc7Cn0KZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snbG9nb2N1cnJlbnQnXSkpIHsKICAkbG9nbyA9ICRwYXJhbXNbJ2xvZ29jdXJyZW50J107Cn0KCiRmaWVsZGFycmF5ID0gYXJyYXkoKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIHsKICAvLyBzdWJtaXQgaXMgcHJlc3NlZC4KICAkZXJyb3IgPSAnJzsKCiAgaWYoICRjb21wYW55X25hbWUgPT0gJycgKSAkZXJyb3IgPSAkdGhpcy0+TGFuZygnbm9jb21wYW55bmFtZWdpdmVuJyk7CgogIGlmKCAhJGVycm9yICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzJykgJiYgY2RfdXRpbHM6OmNvbXBhbnlfbmFtZV9leGlzdHMoJGNvbXBhbnlfbmFtZSwkY29tcGlkKSApIHsKCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9kdXBsaWNhdGVfY29tcGFueScsJGNvbXBhbnlfbmFtZSk7CiAgfQoKICBpZiggJGVycm9yID09ICcnICYmICR1cmwgPT0gJycgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkgKSB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfdXJscmVxdWlyZWQnKTsKICB9CgogIGlmKCAhJGVycm9yICYmICR1cmwgPT0gJycgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9hdXRvY3JlYXRlJywwKSApIHsKCSR1cmwgPSBjZF91dGlsczo6Z2VuZXJhdGVfdXJsKCRjb21wYW55X25hbWUpOwoJaWYoICEkdXJsICkgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRuYW1lJyk7CiAgfQoKICBpZiggISRlcnJvciAmJiAkdXJsICE9ICcnICkgewoJJHJlcyA9IGNkX3V0aWxzOjp2YWxpZGF0ZV91cmwoJHVybCk7CglpZiggISRyZXMgKSAkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHVybCcpOwogIH0KCiAgLy8gY2hlY2sgZmlsZSB1cGxvYWRzIGZyb20gZmllbGRkZWZzCiAgaWYoICEkZXJyb3IgJiYgY291bnQoJGZpZWxkZGVmcykgKSB7Cglmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmaWVsZGRlZiApIHsKCSAgJGZpZWxkZGVmID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJGZpZWxkZGVmKTsKCSAgc3dpdGNoKCAkZmllbGRkZWYtPnR5cGUgKSB7CgkgIGNhc2UgJ2ZpbGUnOgoJICBjYXNlICdpbWFnZSc6CgkJY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKCQkkdXBsb2FkZXIgPSBjZ2Vfc2V0dXA6OmdldF91cGxvYWRlcigkaWQsJGRlc3RkaXIpOwoJCWlmKCBpc3NldCgkZmllbGRkZWYtPmRhdGEpICYmICRmaWVsZGRlZi0+ZGF0YSAhPSAnJyApIHsKCQkgICR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkZmllbGRkZWYtPmRhdGEpOwoJCX0KCQkkdG1wID0gJHVwbG9hZGVyLT5jaGVja191cGxvYWQoJ2N1c3RvbWZpZWxkJywnZmllbGQtJy4kZmllbGRkZWYtPmlkKTsKCQlpZiggISR0bXAgJiYgJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CgkJICAkZXJyb3IgPSAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCR1cGxvYWRlci0+Z2V0X2Vycm9yKCkpOwoJCSAgYnJlYWs7CgkJfQoJCWJyZWFrOwoJICB9Cgl9CiAgfQoKICB0cnkgewoJLy8gZ2V0IHRoZSBjb21wYW55CgkkdGhlX2NvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKCRjb21waWQsVFJVRSk7CgkkdGhlX2NvbXBhbnktPmNvbXBhbnlfbmFtZSA9ICRjb21wYW55X25hbWU7CgkkdGhlX2NvbXBhbnktPnVybCA9ICR1cmw7CgkkdGhlX2NvbXBhbnktPmFkZHJlc3MgPSAkYWRkcmVzczsKCSR0aGVfY29tcGFueS0+dGVsZXBob25lID0gJHRlbGVwaG9uZTsKCSR0aGVfY29tcGFueS0+ZmF4ID0gJGZheDsKCSR0aGVfY29tcGFueS0+Y29udGFjdF9lbWFpbCA9ICRjb250YWN0X2VtYWlsOwoJJHRoZV9jb21wYW55LT53ZWJzaXRlID0gJHdlYnNpdGU7CgkkdGhlX2NvbXBhbnktPmRldGFpbHMgPSAkZGV0YWlsczsKCWlmKCAkaW1hZ2UgKSAkdGhlX2NvbXBhbnktPnBpY3R1cmVfbG9jYXRpb24gPSAkaW1hZ2U7CglpZiggJGxvZ28gKSAkdGhlX2NvbXBhbnktPmxvZ29fbG9jYXRpb24gPSAkbG9nbzsKCSR0aGVfY29tcGFueS0+c3RhdHVzID0gJHN0YXR1czsKCSR0aGVfY29tcGFueS0+bGF0aXR1ZGUgPSAkbGF0aXR1ZGU7CgkkdGhlX2NvbXBhbnktPmxvbmdpdHVkZSA9ICRsb25naXR1ZGU7CgkkdGhlX2NvbXBhbnktPm93bmVyX2lkID0gJG93bmVyX2lkOwoJJHRoZV9jb21wYW55LT5oaWVyX2lkID0gJGhpZXJwb3M7CiAgfQogIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CgkkZXJyb3IgPSAkZS0+R2V0TWVzc2FnZSgpOwogIH0KCiAgLy8gaGFuZGxlIGVycm9ycwogIGlmKCAkZXJyb3IgKSB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcik7CiAgfQogIGVsc2UgewoJLy8gaGFuZGxlIGZpbGUgdXBsb2FkIGN1c3RvbSBmaWVsZHMuCglpZiggY291bnQoJGZpZWxkZGVmcykgKSB7CgkgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJGZpZWxkZGVmICkgewoJCSRmaWVsZGRlZiA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRmaWVsZGRlZik7CgkJc3dpdGNoKCAkZmllbGRkZWYtPnR5cGUgKSB7CgkJY2FzZSAnZmlsZSc6CgkJICAvLyBoYW5kbGUgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHVzZXIgaGFzIGNob3NlbiB0byBkZWxldGUgdGhlIGZpbGUuCgkJICBpZiggaXNzZXQoJHBhcmFtc1snZGVsZXRlZmlsZSddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdKSAmJiAkZmllbGRkZWYtPnZhbHVlICE9ICcnICkgewoJCQkvLyB3ZSd2ZSBiZWVuIHRvbGQgdG8gZGVsZXRlIHRoZSBmaWxlLgoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQl1bnNldCgkcGFyYW1zWydjdXN0b21maWVsZCddWydmaWVsZF8nLiRmaWVsZGRlZi0+aWRdKTsKCQkJJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSA9ICdfX0RFTEVURV9fJzsKCQkgIH0KCQkgICR1cGxvYWRlciA9IGNnZV9zZXR1cDo6Z2V0X3VwbG9hZGVyKCRpZCwkZGVzdGRpcik7CgkJICAkdG1wID0gJHVwbG9hZGVyLT5oYW5kbGVfdXBsb2FkKCdjdXN0b21maWVsZCcsJycsJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZCk7CgkJICBpZiggISR0bXAgKSB7CgkJCWlmKCAkdXBsb2FkZXItPmdldF9lcnJvcigpICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApIHsKCQkJICAkZXJyb3IgPSAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCR1cGxvYWRlci0+Z2V0X2Vycm9yKCkpOwoJCQkgIGJyZWFrOwoJCQl9CgkJICB9CgkJICBlbHNlIHsKCQkJLy8gd2UncmUgdXBsb2FkaW5nIGEgbmV3IGZpbGUgc28gZGVsZXRlIHRoZSBvbGQgb25lLgoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3RodW1iXycuJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3ByZXZpZXdfJy4kZmllbGRkZWYtPnZhbHVlKSk7CgkJCSRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0gPSAkdG1wOwoJCSAgfQoJCSAgYnJlYWs7CgoJCWNhc2UgJ2ltYWdlJzoKCQkgIC8vIGhhbmRsZSB0aGUgcG9zc2liaWxpdHkgd2hlcmUgdGhlIHVzZXIgaGFzIGNob3NlbiB0byBkZWxldGUgYSBmaWxlLgoJCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWZpbGUnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSkgJiYgJGZpZWxkZGVmLT52YWx1ZSAhPSAnJyApIHsKCQkJLy8gd2UndmUgYmVlbiB0b2xkIHRvIGRlbGV0ZSB0aGUgZmlsZS4KCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRmaWVsZGRlZi0+dmFsdWUpKTsKCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiRmaWVsZGRlZi0+dmFsdWUpKTsKCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCdwcmV2aWV3XycuJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQkkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdID0gJ19fREVMRVRFX18nOwoJCSAgfQoJCSAgJHVwbG9hZGVyID0gY2dlX3NldHVwOjpnZXRfdXBsb2FkZXIoJGlkLCRkZXN0ZGlyKTsKCQkgICR0bXAgPSAkdXBsb2FkZXItPmhhbmRsZV91cGxvYWQoJ2N1c3RvbWZpZWxkJywnJywnZmllbGQtJy4kZmllbGRkZWYtPmlkKTsKCQkgIGlmKCAhJHRtcCApIHsKCQkJaWYoICR1cGxvYWRlci0+Z2V0X2Vycm9yKCkgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgewoJCQkgICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSk7CgkJCSAgYnJlYWs7CgkJCX0KCQkgIH0KCQkgIGVsc2UgewoJCQkvLyB3ZSdyZSB1cGxvYWRpbmcgYSBuZXcgZmlsZSBzbyBkZWxldGUgdGhlIG9sZCBvbmUuCgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkZmllbGRkZWYtPnZhbHVlKSk7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGVzdGRpciwndGh1bWJfJy4kZmllbGRkZWYtPnZhbHVlKSk7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGVzdGRpciwncHJldmlld18nLiRmaWVsZGRlZi0+dmFsdWUpKTsKCQkJJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSA9ICR0bXA7CgkJICB9CgkJICBicmVhazsKCgkJY2FzZSAnbXVsdGlzZWxlY3QnOgoJCSAgaWYoIGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pICkgewogICAgICAgICAgICBpZiggaXNfYXJyYXkoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSkgKSB7CiAgICAgICAgICAgICAgJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSA9IGltcGxvZGUoJ35+JywkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0gPSAnJzsKICAgICAgICAgIH0KCQkgIGJyZWFrOwoJCX0KCSAgfQoKCSAgaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10pKSB7CgkJZm9yZWFjaCAoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSBhcyAkaz0+JHYpIHsKCQkgIGlmIChzdGFydHN3aXRoKCRrLCAnZmllbGQtJykpIHsKCQkJaWYoICR2ID09ICdfX0RFTEVURV9fJyApICR2ID0gbnVsbDsKCQkJJGZpZCA9IHN1YnN0cigkaywgNik7CgkJCSR0aGVfY29tcGFueS0+c2V0X2ZpZWxkKCRmaWQsJHYpOwoJCSAgfQoJCX0KCSAgfQoJfSAvLyBpZiBjb3VudCBmaWVsZGRlZnMKCgkvLyByZXNldCBjYXRlZ29yaWVzIHRvIG5vbmUuCgkvLyBhbmQgZmlsbCB0aGVtIGJhY2sgaW4gYmFzZWQgb24gd2hhdCdzIGluIHRoZSBmb3JtLgoJJHRoZV9jb21wYW55LT5yZXNldF9jYXRlZ29yaWVzKCk7CgoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J10pKSB7CgkgIGZvcmVhY2ggKCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J10gYXMgJGs9PiR2KSB7CgkJaWYgKHN0YXJ0c3dpdGgoJGssICdpZC0nKSkgewoJCSAgJGZpZCA9IHN1YnN0cigkaywgMyk7CgoJCSAgJGV4dHJhMSA9ICcnOwoJCSAgJGV4dHJhMiA9ICcnOwoJCSAgJGV4dHJhMyA9ICcnOwoJCSAgaWYoIGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5X2V4dHJhMSddWyRrXSkgKSB7CgkJCSRleHRyYTEgPSAkX1JFUVVFU1RbJGlkLidjYXRlZ29yeV9leHRyYTEnXVska107CgkJICB9CgkJICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnlfZXh0cmEyJ11bJGtdKSApIHsKCQkJJGV4dHJhMiA9ICRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5X2V4dHJhMiddWyRrXTsKCQkgIH0KCQkgIGlmKCBpc3NldCgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeV9leHRyYTMnXVska10pICkgewoJCQkkZXh0cmEzID0gJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnlfZXh0cmEzJ11bJGtdOwoJCSAgfQoKCQkgICR0aGVfY29tcGFueS0+c2V0X2NhdGVnb3J5KCRmaWQsMSwkZXh0cmExLCRleHRyYTIsJGV4dHJhMyk7CgkJfQoJICB9Cgl9CgoJJHRoZV9jb21wYW55LT5zYXZlKCk7CgoJaWYgKCRpbWFnZSAhPSAnJykgaGFuZGxlX3RtcF91cGxvYWQoJGlkLCAkY29tcGlkLCAkaW1hZ2UsICdwaWN0dXJlX2xvY2F0aW9uJywgJGRiKTsKCSAgLy8gZGVwcmVjYXRlZCwgdXNlIHRoZSB1cGxvYWRlciBzdHVmZi4KCglpZiAoJGxvZ28gIT0gJycpIGhhbmRsZV90bXBfdXBsb2FkKCRpZCwgJGNvbXBpZCwgJGxvZ28sICdsb2dvX2xvY2F0aW9uJywgJGRiKTsKCSAgLy8gZGVwcmVjYXRlZCwgdXNlIHRoZSB1cGxvYWRlciBzdHVmZi4KCgkvL1VwZGF0ZSBzZWFyY2ggaW5kZXgKCWlmKCAkdGhlX2NvbXBhbnktPnN0YXR1cyA9PSAncHVibGlzaGVkJyApIHsKCSAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKCSAgaWYgKCRtb2R1bGUpICRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksJHRoZV9jb21wYW55LT5pZCwnY29tcGFueScsJHRoZV9jb21wYW55LT5nZXRfc2VhcmNoX3dvcmRzKCkpOwoJfSBlbHNlIHsKCSAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKCSAgaWYgKCRtb2R1bGUpICRtb2R1bGUtPkRlbGV0ZVdvcmRzKCR0aGlzLT5HZXROYW1lKCksJHRoZV9jb21wYW55LT5pZCwnY29tcGFueScpOwoJfQoKCWF1ZGl0KCRjb21waWQsJHRoaXMtPkdldE5hbWUoKSwnRWRpdGVkIGNvbXBhbnkgJy4kY29tcGFueV9uYW1lKTsKCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ2NvbXBhbnl1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdjb21wYW5pZXMnKTsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogIH0KfQplbHNlIHsKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPyc7CiAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGNvbXBpZCkpOwoKICBpZiAoJHJvdykgewoJJGNvbXBhbnlfbmFtZSA9ICRyb3dbJ2NvbXBhbnlfbmFtZSddOwoJJHVybCA9ICRyb3dbJ3VybCddOwoJJGFkZHJlc3MgPSAkcm93WydhZGRyZXNzJ107CgkkbGF0aXR1ZGUgPSAkcm93WydsYXRpdHVkZSddOwoJJGxvbmdpdHVkZSA9ICRyb3dbJ2xvbmdpdHVkZSddOwoJJGhpZXJwb3MgPSAkcm93WydoaWVyX2lkJ107CgkkdGVsZXBob25lID0gJHJvd1sndGVsZXBob25lJ107CgkkZmF4ID0gJHJvd1snZmF4J107Cgkkc3RhdHVzID0gJHJvd1snc3RhdHVzJ107CgkkY29udGFjdF9lbWFpbCA9ICRyb3dbJ2NvbnRhY3RfZW1haWwnXTsKCSR3ZWJzaXRlID0gJHJvd1snd2Vic2l0ZSddOwoJJGRldGFpbHMgPSAkcm93WydkZXRhaWxzJ107CgkkaW1hZ2UgPSAkcm93WydwaWN0dXJlX2xvY2F0aW9uJ107CgkkbG9nbyA9ICRyb3dbJ2xvZ29fbG9jYXRpb24nXTsKCSRvcmlnbmFtZSA9ICRyb3dbJ2NvbXBhbnlfbmFtZSddOwoJJG93bmVyX2lkID0gJHJvd1snb3duZXJfaWQnXTsKICB9CiAgZWxzZSB7CglkaWUoJ3JvdyBub3QgZm91bmQnKTsKICB9Cn0KCiRmaWVsZGFycmF5ID0gYXJyYXkoKTsKJGltYWdlZGlyID0gJyc7CiRpbWFnZXVybCA9ICcnOwppZiggJGNvbXBpZCA+IDAgKSB7CiAgJGltYWdlZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkKTsKICAkaW1hZ2V1cmwgPSAkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3VybCddLiIvY29tcGFueWRpcmVjdG9yeS9pZHskY29tcGlkfSI7Cn0KCiRuZWVkX2ljb25zID0gMDsKaWYgKGNvdW50KCRmaWVsZGRlZnMpID4gMCkgewogIGZvcmVhY2ggKCRmaWVsZGRlZnMgYXMgJGZpZWxkZGVmKSB7CgkkZmllbGRkZWYgPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkZmllbGRkZWYpOwoJJGZpZWxkID0gbmV3IHN0ZENsYXNzKCk7CgoJJHZhbHVlID0gJyc7CglpZiAoaXNzZXQoJGZpZWxkZGVmLT52YWx1ZSkpICR2YWx1ZSA9ICRmaWVsZGRlZi0+dmFsdWU7CgoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pKSB7CgkgICR2YWx1ZSA9ICRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF07Cgl9CgoJJGZpZWxkLT52YWx1ZSA9ICR2YWx1ZTsKCSRmaWVsZC0+aWQgPSAkZmllbGRkZWYtPmlkOwoJJGZpZWxkLT5uYW1lID0gJGZpZWxkZGVmLT5uYW1lOwoJJGZpZWxkLT50eXBlID0gJGZpZWxkZGVmLT50eXBlOwoKCXN3aXRjaCAoJGZpZWxkZGVmLT50eXBlKSB7CgljYXNlICdkcm9wZG93bic6CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLGFycmF5X2ZsaXAoJGZpZWxkZGVmLT5vcHRpb25zKSwtMSwkdmFsdWUpOwoJICBicmVhazsKCgljYXNlICdtdWx0aXNlbGVjdCc6CgkgIGlmKCAhaXNfYXJyYXkoJHZhbHVlKSApICR2YWx1ZSA9IGV4cGxvZGUoJ35+JywkdmFsdWUpOwoJICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bXScsCgkJCQkJCQkJCQkJCQkgICBhcnJheV9mbGlwKCRmaWVsZGRlZi0+b3B0aW9ucyksCgkJCQkJCQkJCQkJCQkgICAkdmFsdWUsbWF4KDMsbWluKDEwLGNvdW50KCR2YWx1ZSkpKSk7CgkgIGJyZWFrOwoKCWNhc2UgJ2ZpbGUnOgoJICAkZmllbGQtPmlucHV0X2JveCA9ICcnOwoJICBpZiggJHZhbHVlICkgewoJCSRmaWVsZC0+aW5wdXRfYm94IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLiRpZC4nY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddIiB2YWx1ZT0iJy4kdmFsdWUuJyIvPic7CgkJJGZpZWxkLT5pbnB1dF9ib3ggLj0gIjxici8+eyR2YWx1ZX06Jm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJ7JGlkfWRlbGV0ZWZpbGVbZmllbGQteyRmaWVsZGRlZi0+aWR9XVwiIHZhbHVlPVwiMVwiLz4oeyR0aGlzLT5MYW5nKCdkZWxldGUnKX0pIjsKCSAgfQoJICAkZmllbGQtPmlucHV0X2JveCAuPSAnPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9IicuJGlkLidjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10iIHZhbHVlPSIiIHNpemU9IjgwIi8+JzsKCSAgaWYoICRpbWFnZWRpciApIHsKCQkkZm4gPSBjbXNfam9pbl9wYXRoKCRpbWFnZWRpciwkdmFsdWUpOwoJCWlmKCBmaWxlX2V4aXN0cygkZm4pICkgewoJCSAgJGZpZWxkLT5maWxlX3VybCA9ICRpbWFnZXVybC4nLycuJHZhbHVlOwoJCX0KCSAgfQoJICBicmVhazsKCgljYXNlICdpbWFnZSc6CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJyc7CgkgIGlmKCAkdmFsdWUgKSB7CgkJJGZpZWxkLT5pbnB1dF9ib3ggLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicuJGlkLidjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10iIHZhbHVlPSInLiR2YWx1ZS4nIi8+JzsKCQkkZmllbGQtPmlucHV0X2JveCAuPSAiPGJyLz57JHZhbHVlfTombmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInskaWR9ZGVsZXRlZmlsZVtmaWVsZC17JGZpZWxkZGVmLT5pZH1dXCIgdmFsdWU9XCIxXCIvPih7JHRoaXMtPkxhbmcoJ2RlbGV0ZScpfSkiOwoJICB9CgkgICRmaWVsZC0+aW5wdXRfYm94IC49ICc8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iJy4kaWQuJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXSIgdmFsdWU9IiIgc2l6ZT0iODAiLz4nOwoJICBpZiggJGltYWdlZGlyICkgewoJCSRmbiA9IGNtc19qb2luX3BhdGgoJGltYWdlZGlyLCd0aHVtYl8nLiR2YWx1ZSk7CgkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSAkZmllbGQtPnRodW1iX3VybCA9ICRpbWFnZXVybC4nL3RodW1iXycuJHZhbHVlOwoJCSRmbiA9IGNtc19qb2luX3BhdGgoJGltYWdlZGlyLCdwcmV2aWV3Jy4kdmFsdWUpOwoJCWlmKCBmaWxlX2V4aXN0cygkZm4pICkgJGZpZWxkLT5wcmV2aWV3X3VybCA9ICRpbWFnZXVybC4nL3ByZXZpZXdfJy4kdmFsdWU7CgkJJGZuID0gY21zX2pvaW5fcGF0aCgkaW1hZ2VkaXIsJHZhbHVlKTsKCQlpZiggZmlsZV9leGlzdHMoJGZuKSApICRmaWVsZC0+aW1hZ2VfdXJsID0gJGltYWdldXJsLicvJy4kdmFsdWU7CgkgIH0KCSAgYnJlYWs7CgoJY2FzZSAnY2hlY2tib3gnOgoJICAkZmllbGQtPmlucHV0X2JveCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInIC4gJGlkIC4gJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScgLiAnIiB2YWx1ZT0iZmFsc2UiIC8+JyAuICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICd0cnVlJywgJHZhbHVlICk7CgkgIGJyZWFrOwoKCWNhc2UgJ3RleHRhcmVhJzoKCSAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoJHVzZV93eXNpd3lnLCAkaWQsICR2YWx1ZSwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScpOwoJICBicmVhazsKCgljYXNlICdhY3Rpdml0eSc6CgkgICRjZ3NvYyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dTb2NpYWxBcHAnKTsKCSAgaWYoIGlzX29iamVjdCgkY2dzb2MpICkgewoJCSRvcHRpb25zID0gY2dzYV9hY3Rpdml0eTo6bG9hZF9hbGxfYXNfZHJvcGRvd24oRkFMU0UpOwoJCWlmKCAhaXNfYXJyYXkoJHZhbHVlKSApICR2YWx1ZSA9IGV4cGxvZGUoJ35+JywkdmFsdWUpOwoJCSRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtdJywKCQkJCQkJCQkJCQkJCQkgYXJyYXlfZmxpcCgkb3B0aW9ucyksCgkJCQkJCQkJCQkJCQkJICR2YWx1ZSxtaW4oNSxjb3VudCgkdmFsdWUpKSk7CgkgIH0KCSAgYnJlYWs7CgoJY2FzZSAnaWNvbic6CgkgIGlmKCAoJGljb25zID0gY2RfdXRpbHM6OmdldF9pY29uX2xpc3QoKSkgKSB7CgkJJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJGljb25zLCcnLCR2YWx1ZSk7CgkJJG5lZWRfaWNvbnMgPSAxOwoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ3RleHRib3gnOgoJZGVmYXVsdDoKCSAgJG1heGxlbmd0aCA9ICRmaWVsZGRlZi0+bWF4X2xlbmd0aDsKCSAgJHNpemUgPSBtaW4oJG1heGxlbmd0aCw4MCk7CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsICRzaXplLCAkbWF4bGVuZ3RoKTsKCSAgYnJlYWs7Cgl9CgoJJGZpZWxkYXJyYXlbXSA9ICRmaWVsZDsKICB9Cn0KCi8vIGZpbmQgYWxsICdvcnBoYW5lZCcgZmlsZXMgaW4gdGhlIGRlc3RkaXIgKGZpbGVzIHRoYXQgZG9uJ3QgaGF2ZSBhIHZhbHVlIG1hdGNoaW5nIHRoZW0pLgokZmlsZXMgPSBnbG9iKCRkZXN0ZGlyLicvKicpOwppZiggaXNfYXJyYXkoJGZpbGVzKSAmJiBjb3VudCgkZmlsZXMpICkgewogICRkZWxmaWxlcyA9IGFycmF5KCk7CiAgZm9yKCAkaiA9IDA7ICRqIDwgY291bnQoJGZpbGVzKTsgJGorKyApIHsKCSRibiA9IGJhc2VuYW1lKCRmaWxlc1skal0pOwoJJG9ibiA9ICRibjsKCWlmKCBzdGFydHN3aXRoKCRibiwndGh1bWJfJykgKSAkYm4gPSBzdWJzdHIoJGJuLDYpOwoJaWYoIHN0YXJ0c3dpdGgoJGJuLCdwcmV2aWV3XycpICkgJGJuID0gc3Vic3RyKCRibiw4KTsKCgkkZm5kID0gMDsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRmaWVsZGFycmF5KTsgJGkrKyApIHsKCSAgJGZsZCA9ICRmaWVsZGFycmF5WyRpXTsKCSAgaWYoICRmbGQtPnR5cGUgIT0gJ2ltYWdlJyAmJiAkZmxkLT50eXBlICE9ICdmaWxlJyApIGNvbnRpbnVlOwoJICBpZiggJGZsZC0+dmFsdWUgPT0gJGJuICkgewoJCSRmbmQgPSAxOwoJCWJyZWFrOwoJICB9Cgl9CgoJaWYoICEkZm5kICkgewoJICAvLyBjaGVjayB0aGUgbG9nbyBhbmQgaW1hZ2Ugc3R1ZmYuCgkgIGlmKCAkYm4gPT0gJGxvZ28gfHwgJGJuID09ICRpbWFnZSApICRmbmQgPSAxOwoJfQoKCWlmKCAhJGZuZCApICRkZWxmaWxlc1tdID0gJG9ibjsKICB9CiAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRlbGZpbGVzKTsgJGkrKyApIHsKCUB1bmxpbmsoJGRlc3RkaXIuJy8nLiRkZWxmaWxlc1skaV0pOwogIH0KfQoKLy8gZ2V0IHVzZXIgaW5mb3JtYXRpb24KJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggaXNfb2JqZWN0KCRmZXUpICkgewogICR0bXAgPSAkZmV1LT5HZXRVc2Vyc0luR3JvdXAoKTsKICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CgkkdXNlcnMgPSBhcnJheSgpOwoJJHVzZXJzWy0xXSA9ICR0aGlzLT5MYW5nKCdub25lJyk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKCSAgJHVzZXJzWyR0bXBbJGldWydpZCddXSA9ICR0bXBbJGldWyd1c2VybmFtZSddOwoJfQoJJHNtYXJ0eS0+YXNzaWduKCdmZXVfdXNlcnMnLCR1c2Vycyk7CiAgfQp9CiRzbWFydHktPmFzc2lnbignb3duZXJfaWQnLCRvd25lcl9pZCk7CgokY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzRm9yQ29tcGFueSgkY29tcGlkKTsKJGNhdGFycmF5ID0gYXJyYXkoKTsKCmlmIChjb3VudCgkY2F0ZWdvcmllcykgPiAwKSB7CiAgZm9yZWFjaCAoJGNhdGVnb3JpZXMgYXMgJG9uZWNhdCkgewoJJGZpZWxkID0gbmV3IHN0ZENsYXNzKCk7CgoJJHZhbHVlID0gJyc7CglpZiAoaXNzZXQoJG9uZWNhdC0+dmFsdWUpKSAkdmFsdWUgPSAkb25lY2F0LT52YWx1ZTsKCglpZiAoaXNzZXQoJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnknXSkpIHsKCSAgaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J11bJ2lkLScuJG9uZWNhdC0+aWRdKSkKCQkkdmFsdWUgPSAndHJ1ZSc7CgkgIGVsc2UKCQkkdmFsdWUgPSAnZmFsc2UnOwoJfQoKCSRmaWVsZC0+dmFsdWUgPSAkdmFsdWU7CiAgICAkZmllbGQtPmRlcHRoID0gY291bnQoZXhwbG9kZSgnLicsJG9uZWNhdC0+aGllcmFyY2h5KSktMTsKCSRmaWVsZC0+aWQgPSAkb25lY2F0LT5pZDsKCSRmaWVsZC0+bmFtZSA9ICRvbmVjYXQtPm5hbWU7CiAgICAkZmllbGQtPmV4dHJhMV92YWwgPSAkb25lY2F0LT5leHRyYTE7CiAgICAkZmllbGQtPmV4dHJhMl92YWwgPSAkb25lY2F0LT5leHRyYTI7CiAgICAkZmllbGQtPmV4dHJhM192YWwgPSAkb25lY2F0LT5leHRyYTM7CgkkZmllbGQtPmNoZWNrYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY2F0ZWdvcnlbaWQtJy4kb25lY2F0LT5pZC4nXScsICR2YWx1ZSwgJ3RydWUnKTsKCSRmaWVsZC0+ZXh0cmExID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2NhdGVnb3J5X2V4dHJhMVtpZC0nLiRvbmVjYXQtPmlkLiddJywgJG9uZWNhdC0+ZXh0cmExLDYwLDI1NSk7CgkkZmllbGQtPmV4dHJhMiA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjYXRlZ29yeV9leHRyYTJbaWQtJy4kb25lY2F0LT5pZC4nXScsICRvbmVjYXQtPmV4dHJhMiw2MCwyNTUpOwoJJGZpZWxkLT5leHRyYTMgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY2F0ZWdvcnlfZXh0cmEzW2lkLScuJG9uZWNhdC0+aWQuJ10nLCAkb25lY2F0LT5leHRyYTMsNjAsMjU1KTsKCgkkY2F0YXJyYXlbXSA9ICRmaWVsZDsKICB9Cn0KCiNEaXNwbGF5IHRlbXBsYXRlCiRwb3N0X21heF9zaXplID0gY2dlX3N0cmluZzo6c3RyX3RvX2J5dGVzKGluaV9nZXQoJ3Bvc3RfbWF4X3NpemUnKSk7CiR1cGxvYWRfbWF4X2ZpbGVzaXplID0gY2dlX3N0cmluZzo6c3RyX3RvX2J5dGVzKGluaV9nZXQoJ3VwbG9hZF9tYXhfZmlsZXNpemUnKSk7CiRzbWFydHktPmFzc2lnbignbWF4X2NodW5rc2l6ZScsbWluKCR1cGxvYWRfbWF4X2ZpbGVzaXplLCRwb3N0X21heF9zaXplLTEwMjQpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRjb21wYW55JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2NvbXBhbnlfbmFtZScsJGNvbXBhbnlfbmFtZSk7CiRzbWFydHktPmFzc2lnbignYWRkcmVzc3RleHQnLCAkdGhpcy0+TGFuZygnYWRkcmVzcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd1cmwnLCR1cmwpOwokc21hcnR5LT5hc3NpZ24oJ2FkZHJlc3MnLCRhZGRyZXNzKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxhdGl0dWRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsYXRpdHVkZScsICRsYXRpdHVkZSwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bG9uZ2l0dWRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsb25naXR1ZGUnLCAkbG9uZ2l0dWRlLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRoaWVycG9zJywkdGhpcy0+Q3JlYXRlUGFyZW50RHJvcGRvd24oJGlkLC0xLCRoaWVycG9zLCdoaWVycG9zJykpOwokc21hcnR5LT5hc3NpZ24oJ3RlbGVwaG9uZXRleHQnLCAkdGhpcy0+TGFuZygndGVsZXBob25lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0dGVsZXBob25lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0ZWxlcGhvbmUnLCAkdGVsZXBob25lLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignZmF4dGV4dCcsICR0aGlzLT5MYW5nKCdmYXgnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRmYXgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZheCcsICRmYXgsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWFpbHRleHQnLCAkdGhpcy0+TGFuZygnY29udGFjdGVtYWlsJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZW1haWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2NvbnRhY3RfZW1haWwnLCAkY29udGFjdF9lbWFpbCwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ3dlYnNpdGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3dlYnNpdGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXR3ZWJzaXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd3ZWJzaXRlJywgJHdlYnNpdGUsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxzdGV4dCcsICR0aGlzLT5MYW5nKCdkZXRhaWxzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZGV0YWlscycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSgkdXNlX3d5c2l3eWcsICRpZCwgJGRldGFpbHMsICdkZXRhaWxzJywgJycsICcnLCAnJywgJycsICc4MCcsICc4JykpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlY3VycmVudCcsICRpbWFnZSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2VjdXJyZW50aGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ltYWdlY3VycmVudCcsICRyZXR1cm5pZCwgJGltYWdlKSAuICcgLS0gJyAuICR0aGlzLT5MYW5nKCdkZWxldGUnKSAuICc6JyAuICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2RlbGV0ZWltYWdlJywgJ2NoZWNrZWQnLCAnJykpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdldGV4dCcsICR0aGlzLT5MYW5nKCdpbWFnZXRleHQnKSk7CiRzbWFydHktPmFzc2lnbignbG9nb2N1cnJlbnQnLCAkbG9nbyk7CiRzbWFydHktPmFzc2lnbignbG9nb2N1cnJlbnRoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbG9nb2N1cnJlbnQnLCAkcmV0dXJuaWQsICRsb2dvKSAuICcgLS0gJyAuICR0aGlzLT5MYW5nKCdkZWxldGUnKSAuICc6JyAuICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2RlbGV0ZWxvZ28nLCAnY2hlY2tlZCcsICcnKSk7CiRzbWFydHktPmFzc2lnbignbG9nb3RleHQnLCAkdGhpcy0+TGFuZygnbG9nb3RleHQnKSk7CiRzbWFydHktPmFzc2lnbigndXJsX3JlcXVpcmVkJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJywwKSk7Cgokc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLAoJCQkJICAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0JywKCQkJCSAgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRzdGF0dXMnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc3RhdHVzJywkc3RhdHVzZXMsLTEsJHN0YXR1cykpOwoKJHNtYXJ0eS0+YXNzaWduKCdpZHRleHQnLCR0aGlzLT5MYW5nKCdpZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjb21waWQnLCRjb21waWQpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsCgkJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnY29tcGlkJywgJGNvbXBpZCkuCgkJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKCmlmKCAkY2FuX2NhbmNlbCApICRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CiRzbWFydHktPmFzc2lnbignY3VzdG9tZmllbGRzJywgJGZpZWxkYXJyYXkpOwokc21hcnR5LT5hc3NpZ24oJ2N1c3RvbWZpZWxkc2NvdW50JywgY291bnQoJGZpZWxkYXJyYXkpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywgJGNhdGFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzY291bnQnLCBjb3VudCgkY2F0YXJyYXkpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5fZ2VvY29kZScsY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKSk7CgokZnQgPSAkdGhpcy0+R2V0RmllbGRUeXBlcygpOwppZiggaXNzZXQoJGZ0WydhbGJ1bSddKSAmJiBpc19hcnJheSgkZmllbGRkZWZzKSAmJiBjb3VudCgkZmllbGRkZWZzKSApIHsKICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmZGlkID0+ICRyZWMgKSB7CglpZiggJHJlYy0+dHlwZSA9PSAnYWxidW0nICkgewoJICAkc21hcnR5LT5hc3NpZ24oJ2FsYnVtX2ZpZWxkX2V4aXN0cycsJGZkaWQpOwoJICBicmVhazsKCX0KICB9Cn0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y29tcGFueS50cGwnKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIHsKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkpOwogIHJldHVybjsKfQoKCi8vCi8vIEluaXRpYWxpemF0aW9uCi8vCiRuYW1lID0gJyc7CiR0eXBlID0gJyc7CiRtYXhfbGVuZ3RoID0gMjU1Owokb3JpZ25hbWUgPSAnJzsKJGFkbWluX29ubHkgPSAwOwokcHVibGljID0gMDsKJGRyb3Bkb3duX2RhdGEgPSAnJzsKJGRhdGEgPSAnJzsKCi8vCi8vIFNldHVwCi8vCiRmZGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkpICRmZGlkID0gJHBhcmFtc1snZmRpZCddOwoKCi8vCi8vIEdldCBEYXRhCi8vCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgV0hFUkUgaWQgPSA/JzsKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKaWYgKCRyb3cpIHsKICAkbmFtZSA9ICRyb3dbJ25hbWUnXTsKICAkdHlwZSA9ICRyb3dbJ3R5cGUnXTsKICAkbWF4X2xlbmd0aCA9ICRyb3dbJ21heF9sZW5ndGgnXTsKICAkb3JpZ25hbWUgPSAkcm93WyduYW1lJ107CiAgJGFkbWluX29ubHkgPSAkcm93WydhZG1pbl9vbmx5J107CiAgJHB1YmxpYyA9ICRyb3dbJ3B1YmxpYyddOwogICRkcm9wZG93bl9kYXRhID0gJHJvd1snZHJvcGRvd25fZGF0YSddOwogICRkYXRhID0gJHJvd1snZGF0YSddOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snbmFtZSddKSkgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107CmlmIChpc3NldCgkcGFyYW1zWyd0eXBlJ10pKSAkdHlwZSA9ICRwYXJhbXNbJ3R5cGUnXTsKaWYgKGlzc2V0KCRwYXJhbXNbJ21heF9sZW5ndGgnXSkpICRtYXhfbGVuZ3RoID0gKGludCkkcGFyYW1zWydtYXhfbGVuZ3RoJ107CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkgJG9yaWduYW1lID0gJHBhcmFtc1snb3JpZ25hbWUnXTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2FkbWluX29ubHknXSkgKSAkYWRtaW5fb25seSA9IChpbnQpJHBhcmFtc1snYWRtaW5fb25seSddOwppZiggaXNzZXQoJHBhcmFtc1sncHVibGljJ10pICkgJHB1YmxpYyA9IChpbnQpJHBhcmFtc1sncHVibGljJ107CmlmKCAoJHR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkdHlwZSA9PSAnbXVsdGlzZWxlY3QnKSAmJiBpc3NldCgkcGFyYW1zWydkcm9wZG93bl9vcHRpb25zJ10pICkgJGRyb3Bkb3duX2RhdGEgPSB0cmltKCRwYXJhbXNbJ2Ryb3Bkb3duX29wdGlvbnMnXSk7CmlmKCAoJHR5cGUgPT0gJ2ZpbGUnIHx8ICR0eXBlID09ICdpbWFnZScgfHwgJHR5cGUgPT0gJ2FsYnVtJykgJiYgaXNzZXQoJHBhcmFtc1snZXh0ZW5zaW9ucyddKSApICRkYXRhID0gdHJpbSgkcGFyYW1zWydleHRlbnNpb25zJ10pOwoKJHN0YXR1cyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7CiAgaWYoIGVtcHR5KCRuYW1lKSApICRzdGF0dXMgPSAkdGhpcy0+TGFuZygnbm9uYW1naXZlbicpOwogIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAkdHlwZSA9PSAndGV4dGJveCcgJiYgIWlzX251bWVyaWMoJG1heF9sZW5ndGgpICkgJHN0YXR1cyA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub2xlbmd0aCcpOwogIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAoJHR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkdHlwZSA9PSAnbXVsdGlzZWxlY3QnKSAmJiBlbXB0eSgkZHJvcGRvd25fZGF0YSkgKSB7Cgkkc3RhdHVzID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJyk7CiAgfQogIAogIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAkdHlwZSA9PSAnYWxidW0nICkgewoJJGZkID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnNfYnlfbmFtZShUUlVFLFRSVUUpOwoJJGZuZCA9IGZhbHNlOwoJaWYoaXNfYXJyYXkoJGZkKSAmJiBjb3VudCgkZmQpICkgewoJICBmb3JlYWNoKCAkZmQgYXMgJHRoZV9pZCA9PiAkdGhlX3JlYyApIHsKCQlpZiggJHRoZV9yZWNbJ3R5cGUnXSA9PSAnYWxidW0nICYmICR0aGVfcmVjWydpZCddICE9ICRmZGlkICkgewoJCSAgJGZuZCA9IHRydWU7CgkJICBicmVhazsKCQl9CgkgIH0KCX0KCWlmKCAkZm5kICkgewogICAgICAkc3RhdHVzID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnKTsKCX0KICB9CiAgaWYoIGVtcHR5KCRzdGF0dXMpICkgewoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIAogICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgdHlwZSA9ID8sIG1heF9sZW5ndGggPSA/LCBtb2RpZmllZF9kYXRlID0gJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJywgCiAgICAgICAgICAgICAgICAgIGFkbWluX29ubHkgPSA/LCBwdWJsaWMgPSA/LCBkcm9wZG93bl9kYXRhID0gPywgZGF0YSA9ID8KICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkdHlwZSwgJG1heF9sZW5ndGgsICRhZG1pbl9vbmx5LCAkcHVibGljLCAkZHJvcGRvd25fZGF0YSwgJGRhdGEsICRmZGlkKSk7CglpZiggISRyZXMgKSBkaWUoICRkYi0+RXJyb3JNc2coKSApOwoKCWF1ZGl0KCRmZGlkLCR0aGlzLT5HZXROYW1lKCksJ0VkaXRlZCBmaWVsZCBkZWZpbml0aW9uICcuJG5hbWUuJyBvZiB0eXBlICcuJHR5cGUpOwoJJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2ZpZWxkZGVmdXBkYXRlZCcpKTsKCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKICB9CiAgCiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkc3RhdHVzKTsKfQoKCiNEaXNwbGF5IHRlbXBsYXRlCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbmFtZXRleHQnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0eXBldGV4dCcsICR0aGlzLT5MYW5nKCd0eXBlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21heGxlbmd0aHRleHQnLCAkdGhpcy0+TGFuZygnbWF4X2xlbmd0aCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMjAsIDI1NSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0bWF4bGVuZ3RoJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtYXhfbGVuZ3RoJywgJG1heF9sZW5ndGgsIDIwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCd1c2VyZWRpdHRleHQnLCR0aGlzLT5MYW5nKCdhZG1pbl9vbmx5JykpOwokc21hcnR5LT5hc3NpZ24oJ3VzZXJ2aWV3dGV4dCcsJHRoaXMtPkxhbmcoJ3B1YmxpYycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF91c2VyZWRpdCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnYWRtaW5fb25seScsMCkuCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnYWRtaW5fb25seScsIDEsICRhZG1pbl9vbmx5KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlcnZpZXcnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3B1YmxpYycsMCkuCgkJJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAncHVibGljJywgMSwgJHB1YmxpYykpOwokc21hcnR5LT5hc3NpZ24oJ2ZpZWxkdHlwZXMnLCR0aGlzLT5HZXRGaWVsZFR5cGVzKCkpOwokc21hcnR5LT5hc3NpZ24oJ2ZsZHR5cGUnLCR0eXBlKTsKJHNtYXJ0eS0+YXNzaWduKCdkcm9wZG93bl9kYXRhJywkZHJvcGRvd25fZGF0YSk7CiRzbWFydHktPmFzc2lnbignZXh0ZW5zaW9ucycsJGRhdGEpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAKCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmRpZCcsICRmZGlkKS4KCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0ZmllbGRkZWYudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.exportcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmdW5jdGlvbiBwcm9jZXNzX2ZpZWxkKCR0eHQsJGRlbGltID0gJ3wnKQp7CiAgJHR4dCA9IHRyaW0oJHR4dCk7CiAgLy8kdHh0ID0gc3RyX3JlcGxhY2UoJGRlbGltLCctJSUtJywkdHh0KTsKICAkdHh0ID0gc3RyX3JlcGxhY2UoIlxyXG4iLCJcbiIsJHR4dCk7CiAgJHR4dCA9IHN0cl9yZXBsYWNlKCJcciIsIlxuIiwkdHh0KTsKICAvLyR0eHQgPSBzdHJfcmVwbGFjZSgiXG4iLCdeXicsJHR4dCk7CiAgaWYoIHN0cnN0cigkdHh0LCcgJykgIT09IEZBTFNFIHx8IHN0cnN0cigkdHh0LCJcbiIpICE9IEZBTFNFIHx8IHN0cnN0cigkdHh0LCRkZWxpbSkgIT0gRkFMU0UgKSAkdHh0ID0gJyInLiR0eHQuJyInOwogIHJldHVybiAkdHh0Owp9CgokZGVsaW0gPSAnfCc7CiRhbGxfY2F0cyA9IGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcyhUUlVFKTsKCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgT1JERVIgQlkgaXRlbV9vcmRlciBBU0MnOwokZmllbGRkZWZzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKLy8gMS4xIEdldCB0aGUgY29tcGFuaWVzIGhlYWRlci4KJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBPUkRFUiBCWSBjb21wYW55X25hbWUgTElNSVQgMSI7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnkpOwp1bnNldCgkcm93WydjcmVhdGVfZGF0ZSddKTsKdW5zZXQoJHJvd1snbW9kaWZpZWRfZGF0ZSddKTsKdW5zZXQoJHJvd1snaWQnXSk7CnVuc2V0KCRyb3dbJ293bmVyX2lkJ10pOwp1bnNldCgkcm93WydwaWN0dXJlX2xvY2F0aW9uJ10pOwp1bnNldCgkcm93Wydsb2dvX2xvY2F0aW9uJ10pOwp1bnNldCgkcm93WydoaWVyX2lkJ10pOwokcm93WydoaWVyYXJjaHknXSA9IDE7IC8vIGFkZCBhIG1ldGEgY29sdW1uCi8vJHJvd1snY2F0ZWdvcmllcyddID0gMTsgLy8gYWRkIGEgbWV0YSBjb2x1bW4KJGNvbXBhbnlfZmllbGRzID0gYXJyYXlfa2V5cygkcm93KTsKCiRfbWFrZV9maWVsZGhkciA9IGZ1bmN0aW9uKCRuYW1lKSB7CiAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAkb3V0ID0gJ0ZJRUxEOic7CiAgaWYoIHN0cnBvcygkbmFtZSwnICcpICE9PSBGQUxTRSApIHsKICAgICRvdXQgLj0gJyInLiRuYW1lLiciJzsKICB9CiAgZWxzZSB7CiAgICAkb3V0IC49ICRuYW1lOwogIH0KICByZXR1cm4gJG91dDsKfTsKCiRfbWFrZV9jYXRoZHIgPSBmdW5jdGlvbigkY2F0aWQpIHVzZSggJGFsbF9jYXRzLCAkZGVsaW0gKSB7CiAgJGNhdGlkID0gKGludCkkY2F0aWQ7CiAgaWYoICFpc3NldCgkYWxsX2NhdHNbJGNhdGlkXSkgKSByZXR1cm47CgogICRuYW1lID0gJGFsbF9jYXRzWyRjYXRpZF0tPmxvbmdfbmFtZTsKICAkb3V0ID0gJ0NBVDonOwogICRvdXQgLj0gJG5hbWU7CiAgaWYoIHN0cnBvcygkb3V0LCcgJykgIT09IEZBTFNFIHx8IHN0cnBvcygkb3V0LCRkZWxpbSkgIT09IEZBTFNFICkgJG91dCA9ICciJy4kb3V0LiciJzsKICByZXR1cm4gJG91dDsKfTsKCi8vIDEuMS4xIEdldCB0aGUgZmllbGQgZGVmaW5pdGlvbiBuYW1lcwppZiggJGZpZWxkZGVmcyAmJiBpc19hcnJheSgkZmllbGRkZWZzKSApIHsKICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRvbmUgKSB7CiAgICAkY29tcGFueV9maWVsZHNbXSA9ICRfbWFrZV9maWVsZGhkcigkb25lWyduYW1lJ10pOwogIH0KfQoKLy8gMS4xLjIgR2V0IHRoZSBjYXRlZ29yeSBuYW1lcwppZiggaXNfYXJyYXkoJGFsbF9jYXRzKSAmJiBjb3VudCgkYWxsX2NhdHMpICkgewogIGZvcmVhY2goICRhbGxfY2F0cyBhcyAkY2F0aWQgPT4gJHJvdyApIHsKICAgICRjb21wYW55X2ZpZWxkc1tdID0gJF9tYWtlX2NhdGhkcigkY2F0aWQpOwogIH0KfQoKLy8gZ2V0IHRoZSBjb21wYW55IGhlYWRlcgovLyAxLjAgQnVpbGQgdGhlIGhlYWRlciBsaW5lCiRoZWFkZXIgPSAiI0NPTVBBTlk9QyIuJGRlbGltOwokaGVhZGVyIC49IGltcGxvZGUoJGRlbGltLCRjb21wYW55X2ZpZWxkcykuIlxuIjsKCi8vIDEuMiBHZXQgdGhlIGZpZWxkIGRlZmluaXRpb24gaGVhZGVyCmlmKCBpc19hcnJheSgkZmllbGRkZWZzKSAmJiBjb3VudCgkZmllbGRkZWZzKSApIHsKICAkcm93ID0gJGZpZWxkZGVmc1swXTsKICB1bnNldCgkcm93WydpZCddKTsKICB1bnNldCgkcm93WydpdGVtX29yZGVyJ10pOwogIHVuc2V0KCRyb3dbJ2NyZWF0ZV9kYXRlJ10pOwogIHVuc2V0KCRyb3dbJ21vZGlmaWVkX2RhdGUnXSk7CiAgJGZpZWxkZGVmX2ZpZWxkcyA9IGFycmF5X2tleXMoJHJvdyk7CiAgJGhlYWRlciAuPSAiI0ZJRUxEREVGPUYiLiRkZWxpbS5pbXBsb2RlKCRkZWxpbSwkZmllbGRkZWZfZmllbGRzKTsKfQoKLy8gMi4wIEdldCB0aGUgY2F0ZWdvcmllcyBkZWZpbml0aW9uIGhlYWRlcgokY2F0ZWdvcnlfbWFwID0gYXJyYXkoJ25hbWUnLCdkZXNjcmlwdGlvbicsJ2xvbmdfbmFtZScsJ2V4dHJhMScsJ2V4dHJhMicsJ2V4dHJhMycpOwokaGVhZGVyIC49ICJcbiNDQVRFR09SWT1UIi4kZGVsaW0uaW1wbG9kZSgkZGVsaW0sJGNhdGVnb3J5X21hcCkuIlxuIjsKCi8vIDMuMCBHZXQgdGhlIGhpZXJhcmNoeSBkZWZpbml0aW9uIGhlYWRlcgokaGllcmFyY2h5X21hcCA9IGFycmF5KCduYW1lJywnbG9uZ19uYW1lJyk7CiRoZWFkZXIgLj0gIiNISUVSQVJDSFk9SCIuJGRlbGltLmltcGxvZGUoJGRlbGltLCRoaWVyYXJjaHlfbWFwKS4iXG4iOwoKLy8gNC4wIGJlZ2luIG91dHB1dC4KJGNzdl9vdXRwdXQgPSAkaGVhZGVyLiJcbiI7CgovLyA0LjEgb3V0cHV0IHRoZSBmaWVsZCBkZWZpbml0aW9ucwppZiggaXNfYXJyYXkoJGZpZWxkZGVmcykgJiYgY291bnQoJGZpZWxkZGVmcykgKSB7CiAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkcm93ICkgewogICAgJHRtcCA9IGFycmF5KCdGJyk7CiAgICBmb3JlYWNoKCAkZmllbGRkZWZfZmllbGRzIGFzICRmbiApIHsKICAgICAgJGRhdGEgPSBwcm9jZXNzX2ZpZWxkKCRyb3dbJGZuXSwkZGVsaW0pOwogICAgICAkdG1wW10gPSAkZGF0YTsKICAgIH0KICAgICRsaW5lID0gaW1wbG9kZSgkZGVsaW0sJHRtcCkuIlxuIjsKICAgICRjc3Zfb3V0cHV0IC49ICRsaW5lOwogIH0KICAkY3N2X291dHB1dCAuPSAiXG4iOwp9CgovLyA0LjIgb3V0cHV0IHRoZSBjYXRlZ29yaWVzCmlmKCBpc19hcnJheSgkYWxsX2NhdHMpICYmIGNvdW50KCRhbGxfY2F0cykgKSB7CiAgZm9yZWFjaCggJGFsbF9jYXRzIGFzICRyb3cgKSB7CiAgICAkdG1wID0gYXJyYXkoJ1QnKTsKICAgIGZvcmVhY2goICRjYXRlZ29yeV9tYXAgYXMgJGNvbCApIHsKICAgICAgJHRtcFtdID0gcHJvY2Vzc19maWVsZCgkcm93LT4kY29sLCRkZWxpbSk7CiAgICB9CiAgICAkbGluZSA9IGltcGxvZGUoJGRlbGltLCR0bXApLiJcbiI7CiAgICAkY3N2X291dHB1dCAuPSAkbGluZTsKICB9CiAgJGNzdl9vdXRwdXQgLj0gIlxuIjsKfQoKLy8gNC4zIG91dHB1dCB0aGUgaGllcmFyY2hpZXMKJGhpZXJhcmNoaWVzID0gY2RfdXRpbHM6OmdldF9oaWVyYXJjaHkoKTsKZm9yZWFjaCggJGhpZXJhcmNoaWVzIGFzICRyb3cgKSB7CiAgJHRtcCA9IGFycmF5KCdIJyk7CiAgZm9yZWFjaCggJGhpZXJhcmNoeV9tYXAgYXMgJGNvbCApIHsKICAgICR0bXBbXSA9IHByb2Nlc3NfZmllbGQoJHJvd1skY29sXSwkZGVsaW0pOwogIH0KICAkbGluZSA9IGltcGxvZGUoJGRlbGltLCR0bXApLiJcbiI7CiAgJGNzdl9vdXRwdXQgLj0gJGxpbmU7Cn0KJGNzdl9vdXRwdXQgLj0gIlxuIjsKCi8vIDQuNCBvdXRwdXQgdGhlIGNvbXBhbmllcy4KJGNzdl9vdXRwdXQgLj0gIlxuIjsKJHF1ZXJ5ID0gIlNFTEVDVCBTUUxfQ0FMQ19GT1VORF9ST1dTIGMuKixoLmxvbmdfbmFtZSBhcyBoaWVyYXJjaHkKICAgICAgICAgICAgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIGMKICAgICAgICAgICAgTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIGgKICAgICAgICAgICAgICBPTiBjLmhpZXJfaWQgPSBoLmlkIE9SREVSIEJZIGMuY29tcGFueV9uYW1lIjsKJGZxdWVyeSA9ICdTRUxFQ1QgQi5jb21wYW55X2lkLEEubmFtZSxCLnZhbHVlCiAgICAgICAgICAgICBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgQQogICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgQgogICAgICAgICAgICAgICBPTiBBLmlkID0gQi5maWVsZGRlZl9pZAogICAgICAgICAgICBXSEVSRSBCLmNvbXBhbnlfaWQgSU4gKCVpZGxpc3QlKSBPUkRFUiBCWSBCLmNvbXBhbnlfaWQsIEEubmFtZSc7CiRjcXVlcnkgPSAnU0VMRUNUIENDLmNvbXBhbnlfaWQsQ0MuY2F0ZWdvcnlfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIENDCiAgICAgICAgICAgIFdIRVJFIENDLmNvbXBhbnlfaWQgSU4gKCVpZGxpc3QlKSBPUkRFUiBCWSBDQy5jb21wYW55X2lkLCBDQy5jYXRlZ29yeV9pZCc7CgoKJGJhdGNoc2l6ZSA9IDU7IC8vIGRlYnVnCiRvZmZzZXQgPSAwOwokdG90YWxfbWF0Y2hlcyA9IChpbnQpJGRiLT5HZXRPbmUoJ1NFTEVDVCBDT1VOVChpZCkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJyk7Cgp3aGlsZSggJG9mZnNldCA8ICR0b3RhbF9tYXRjaGVzICkgewogIC8vCiAgLy8gb3V0cHV0IHRoaXMgYmF0Y2ggb2YgY29tcGFuaWVzCiAgLy8KCiAgLy8gNC40LjEgLSBleHRyYWN0IHRoZSBsaXN0IG9mIGNvbXBhbnkgaWRzCiAgJGRiciA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LCAkYmF0Y2hzaXplLCAkb2Zmc2V0KTsKICBpZiggISRkYnIgKSBicmVhazsKICAkY29tcGFueV9pZHMgPSBhcnJheSgpOwogIHdoaWxlKCAhJGRici0+RU9GKCkgKSB7CiAgICBpZiggIWluX2FycmF5KCRkYnItPmZpZWxkc1snaWQnXSwgJGNvbXBhbnlfaWRzKSApICRjb21wYW55X2lkc1tdID0gJGRici0+ZmllbGRzWydpZCddOwogICAgJGRici0+TW92ZU5leHQoKTsKICB9CiAgJGRici0+TW92ZUZpcnN0KCk7CiAgaWYoICFjb3VudCgkY29tcGFueV9pZHMpICkgYnJlYWs7CgogIC8vIDQuNC4yIC0gZ2V0IHRoZSBmaWVsZHZhbHMgZm9yIHRoZXNlIGNvbXBhbmllcwogICRmaWVsZHZhbHMgPSAkZGItPkdldEFycmF5KHN0cl9yZXBsYWNlKCclaWRsaXN0JScsaW1wbG9kZSgnLCcsJGNvbXBhbnlfaWRzKSwkZnF1ZXJ5KSk7CgogIC8vIDQuNC4zIC0gZ2V0IHRoZSBhZmZlY3RlZCBjYXRlZ29yaWVzIGZvciB0aGVzZSBjb21wYW5pZXMKICAkY2F0dmFsdWVzID0gJGRiLT5HZXRBcnJheShzdHJfcmVwbGFjZSgnJWlkbGlzdCUnLGltcGxvZGUoJywnLCRjb21wYW55X2lkcyksJGNxdWVyeSkpOwoKICB3aGlsZSggISRkYnItPkVPRigpICkgewogICAgJHJvdyA9ICRkYnItPmZpZWxkczsKICAgICRjb21wYW55X2lkID0gJHJvd1snaWQnXTsKCiAgICAvLyBnZXQgdGhlIGZpZWxkdmFscyAoaWYgYW55KSBmb3IgdGhpcyBjb21wYW55LCBmcm9tIHRoZSBmaWVsZHZhbHMgYXJyYXkKICAgICRjX2ZpZWxkdmFscyA9IGFycmF5KCk7CiAgICBpZiggaXNfYXJyYXkoJGZpZWxkdmFscykgJiYgY291bnQoJGZpZWxkdmFscykgKSB7CiAgICAgIGZvcmVhY2goICRmaWVsZHZhbHMgYXMgJGZyb3cgKSB7CiAgICAgICAgaWYoICRmcm93Wydjb21wYW55X2lkJ10gPT0gJGNvbXBhbnlfaWQgKSAkcm93WyRfbWFrZV9maWVsZGhkcigkZnJvd1snbmFtZSddKV0gPSAkZnJvd1sndmFsdWUnXTsKICAgICAgfQogICAgfQoKICAgIC8vIGdldCB0aGUgY2F0ZWdvcmllcyAoaWYgYW55KSBmb3IgdGhpcyBjb21wYW55LCBmcm9tIHRoZSBjYXR2YWx1ZXMgYXJyYXkKICAgICRjX2NhdHZhbHMgPSBhcnJheSgpOwogICAgaWYoIGlzX2FycmF5KCRjYXR2YWx1ZXMpICYmIGNvdW50KCRjYXR2YWx1ZXMpICkgewogICAgICBmb3JlYWNoKCAkY2F0dmFsdWVzIGFzICRjcm93ICkgewogICAgICAgIGlmKCAhaXNzZXQoJGFsbF9jYXRzWyRjcm93WydjYXRlZ29yeV9pZCddXSkgKSBjb250aW51ZTsKICAgICAgICAkY2F0ID0gJGFsbF9jYXRzWyRjcm93WydjYXRlZ29yeV9pZCddXTsKICAgICAgICBpZiggJGNyb3dbJ2NvbXBhbnlfaWQnXSA9PSAkY29tcGFueV9pZCApICRyb3dbJF9tYWtlX2NhdGhkcigkY3Jvd1snY2F0ZWdvcnlfaWQnXSldID0gMTsKICAgICAgfQogICAgfQoKICAgIC8vIG5vdyBvdXRwdXQgdGhlIGNvbXBhbnkgcmVjb3JkLgogICAgJHRtcCA9IGFycmF5KCdDJyk7CiAgICBmb3JlYWNoKCAkY29tcGFueV9maWVsZHMgYXMgJGZuICkgewogICAgICAkc3RyID0gJyc7CiAgICAgIGlmKCBpc3NldCgkcm93WyRmbl0pICkgJHN0ciA9IHByb2Nlc3NfZmllbGQoJHJvd1skZm5dLCRkZWxpbSk7CiAgICAgICR0bXBbXSA9ICRzdHI7CiAgICB9CiAgICAkbGluZSA9IGltcGxvZGUoJGRlbGltLCR0bXApLiJcbiI7CiAgICAkY3N2X291dHB1dCAuPSAkbGluZTsKCiAgICAkZGJyLT5Nb3ZlTmV4dCgpOwogIH0KCiAgLy8gNC40LjQgLSBub3cgZ2V0IHRoZSBuZXh0IGJhdGNoCiAgJG9mZnNldCArPSAkZGJyLT5SZWNvcmRDb3VudCgpOwp9CgoKLy9IYWNrIHRvIG1ha2Ugc3VyZSBhbGwgb2YgdGhlIENNUyBidWZmZXJzIGFyZSBvZmYKYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnRXhwb3J0ZWQgY29tcGFueSBkYXRhIHRvIGNzdicpOwokaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7CmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9Ci8vVGhlbiBmb3JjZSB0aGUgb3V0cHV0IG5vcm1hbGx5IGFuZCBleGl0IHNvIHdlIGRvbid0IGdldCBhIGZvb3RlcgpoZWFkZXIoIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWNvbXBhbnlfZGlyZWN0b3J5LiIgLiBkYXRlKCJZLW0tZCIpIC4gIi5jc3YiKTsKaGVhZGVyKCJDb250ZW50LXR5cGU6IHRleHQvY3N2Iik7CnByaW50ICRjc3Zfb3V0cHV0OwoKZXhpdDsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.fe_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggIWlzX29iamVjdCgkZmV1KSApIHJldHVybjsgLy8gbm8gZmV1IG1vZHVsZS4KJGZldV91aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CmlmKCAkZmV1X3VpZCA8PSAwICkgcmV0dXJuOyAvLyBub3QgbG9nZ2VkIGluCmlmKCAhJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2RlbGV0ZScsMSkgKSByZXR1cm47IC8vIG5vIHBlcm1pc3Npb24KCmlmKCAhaXNzZXQoJHBhcmFtc1snY29tcGFueWlkJ10pICkgcmV0dXJuOyAvLyBubyBjb21wYW55IGlkLgokY29tcGFueWlkID0gKGludCkkcGFyYW1zWydjb21wYW55aWQnXTsKCi8vIG9rYXksIGZpbmQgdGhlIHJlY29yZCBpZCBhbmQgbWFrZSBzdXJlIGl0IG1hdGNoZXMgdGhlIG93bmVyLgokcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBvd25lcl9pZCA9ID8gYW5kIGlkID0gPyc7CiR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJGZldV91aWQsJGNvbXBhbnlpZCkpOwppZiggISR0bXAgKSByZXR1cm47IC8vIHJlY29yZCBub3QgZm91bmQuCgokcmVzID0gY2RfY29tcGFueTo6ZGVsZXRlKCRjb21wYW55aWQpOwokdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXR1cm5pZCk7CiAgICAgICAgICAgICAgICAgCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaW5jbHVkZShfX0RJUl9fLicvYWN0aW9uLmZlX2VkaXQyLnBocCcpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_edit2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggISRmZXUgKSB7CiAgICBlY2hvICc8aDM+PGZvbnQgY29sb3I9InJlZCI+Jy4kdGhpcy0+TGFuZygnZXJyb3Jfbm9mZXUnKS4iPC9mb250PjwvaDM+XG4iOwogICAgcmV0dXJuOwp9CmVsc2UgaWYoICEkZmV1LT5Mb2dnZWRJbigpICkgewogICAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2ZldV9sb2dnZWRpbicpLiI8L2ZvbnQ+PC9oMz5cbiI7CiAgICByZXR1cm47Cn0KJGZldV91aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CgokdGhldGVtcGxhdGUgPSAnZnJvbnRlbmRmb3JtXycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVOREZPUk1fVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snZnJvbnRlbmRmb3JtdGVtcGxhdGUnXSApICkgewogICAgJHRoZXRlbXBsYXRlID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmcm9udGVuZGZvcm10ZW1wbGF0ZScpOwogICAgaWYoICFlbmRzd2l0aCgkdGhldGVtcGxhdGUsJy50cGwnKSApICR0aGV0ZW1wbGF0ZSA9ICdmcm9udGVuZF9mb3JtXycuJHRoZXRlbXBsYXRlOwp9CgovLwovLyBTdHJpcCBhbGwgcGFyYW1zIG9mIHRoZSBjZF8gcHJlZml4Ci8vCiRwMiA9IGFycmF5KCk7CmZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAkdCA9IHN1YnN0cigka2V5LDAsMyk7CiAgICBpZiggJHQgPT0gJ2NkXycgKSB7CiAgICAgICAgJG5ld2tleSA9IHN1YnN0cigka2V5LDMpOwogICAgICAgICRwMlskbmV3a2V5XSA9ICR2YWx1ZTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRwMlska2V5XSA9ICR2YWx1ZTsKICAgIH0KfQokcGFyYW1zID0gJHAyOwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJHRoZV9jb21wYW55ID0gJyc7CiRjb21wYW55aWQgPSAtMTsKJHVwbG9hZGVyID0gbnVsbDsKJHRtcCA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzKGZhbHNlLHRydWUpOwokZmllbGRkZWZzMiA9IGFycmF5KCk7CiRoYXZlX2FsYnVtID0gbnVsbDsKaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgJHJlYyA9ICR0bXBbJGldOwogICAgICAgIGlmKCAkcmVjWyd0eXBlJ10gPT0gJ2FsYnVtJyApICRoYXZlX2FsYnVtID0gJHJlY1snaWQnXTsKICAgICAgICAkZmllbGRkZWZzWyRyZWNbJ2lkJ11dID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJlYyk7CiAgICAgICAgJGZpZWxkZGVmczJbJHJlY1snbmFtZSddXSA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRyZWMpOwogICAgfQp9CiRjYXRlZ29yaWVzID0gJHRoaXMtPkdldENhdGVnb3JpZXMoKTsKJG9yaWduYW1lID0gJyc7CmlmKCBpc3NldCgkcGFyYW1zWydjb21wYW55aWQnXSkgJiYgKGludCkkcGFyYW1zWydjb21wYW55aWQnXSA+IDAgKSB7CiAgICAkY29tcGFueWlkID0gKGludCkkcGFyYW1zWydjb21wYW55aWQnXTsKICAgICR0aGVfY29tcGFueSA9IGNkX2NvbXBhbnk6OmxvYWRfYnlfaWQoJGNvbXBhbnlpZCk7CiAgICBpZiggJHRoZV9jb21wYW55LT5vd25lcl9pZCAhPSAkZmV1X3VpZCApIHsKICAgICAgICAvLyB0aGlzIHVzZXIgZG9lcyBub3QgaGF2ZSByaWdodHMgdG8gdGhpcyByZWNvcmQuLi4KICAgICAgICBlY2hvICc8aDM+PGZvbnQgY29sb3I9InJlZCI+Jy4kdGhpcy0+TGFuZygnZXJyb3JfZmV1X2xvZ2dlZGluJykuIjwvZm9udD48L2gzPlxuIjsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAkb3JpZ25hbWUgPSAkdGhlX2NvbXBhbnktPmNvbXBhbnlfbmFtZTsKfQplbHNlIHsKICAgICR0aGVfY29tcGFueSA9IG5ldyBjZF9jb21wYW55OwogICAgJHRoZV9jb21wYW55LT5zdGF0dXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfbmV3c3RhdHVzJywnZHJhZnQnKTsKfQoKCmlmKCBpc3NldCggJHBhcmFtc1snc3VibWl0J10gKSApIHsKICAgIC8vCiAgICAvLyBoYW5kbGUgZm9ybSBwYXJhbXMKICAgIC8vCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snb3JpZ25hbWUnXSkpICRvcmlnbmFtZSA9ICRwYXJhbXNbJ29yaWduYW1lJ107CgogICAgJGVycm9yID0gZmFsc2U7CiAgICB0cnkgewogICAgICAgIC8vCiAgICAgICAgLy8gY2hlY2sgZmlsZSB1cGxvYWRzIGZvciBlcnJvcnMuCiAgICAgICAgLy8KICAgICAgICBpZiggaXNfYXJyYXkoJF9GSUxFUykgJiYgY291bnQoJF9GSUxFUykgKSB7CiAgICAgICAgICAgICR1cGxvYWRlciA9IG5ldyBjZF91cGxvYWRfaGFuZGxlcigkaWQpOwogICAgICAgICAgICBmb3JlYWNoKCAkX0ZJTEVTIGFzICRrZXkgPT4gJGRhdGEgKSB7CiAgICAgICAgICAgICAgICAkbmFtZSA9IHN1YnN0cigka2V5LHN0cmxlbigkaWQpKTsKICAgICAgICAgICAgICAgICR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygpOyAvLyBzZXQgYmFjayB0byBkZWZhdWx0IGZpbGUgdHlwZXMuCiAgICAgICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkbmFtZSwnY2RfZmllbGRfJykgKSB7CiAgICAgICAgICAgICAgICAgICAgJGZpZCA9IChpbnQpc3Vic3RyKCRuYW1lLHN0cmxlbignY2RfZmllbGRfJykpOwogICAgICAgICAgICAgICAgICAgICRyZWMgPSAkZmllbGRkZWZzWyRmaWRdOyAvLyBpdCBoYWQgYmV0dGVyIGV4aXN0Li4KICAgICAgICAgICAgICAgICAgICBpZiggKCRyZWMtPnR5cGUgPT0gJ2ZpbGUnIHx8ICRyZWMtPnR5cGUgPT0gJ2ltYWdlJykgJiYgJHJlYy0+ZGF0YSApICR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkcmVjLT5kYXRhKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggISR1cGxvYWRlci0+Y2hlY2tfdXBsb2FkKCRuYW1lLEZBTFNFLEZBTFNFKSApIHsKICAgICAgICAgICAgICAgICAgICAkcmVzID0gJHVwbG9hZGVyLT5nZXRfZXJyb3IoKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHJlcyAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCRyZXMpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8KICAgICAgICAvLyBmaWxsIHRoZSBjb21wYW55IGZyb20gcGFyYW1zCiAgICAgICAgLy8KICAgICAgICBpZiggJGNvbXBhbnlpZCA9PSAtMSApIHsKICAgICAgICAgICAgLy8gaXQncyBhIG5ldyBjb21wYW55CiAgICAgICAgICAgICR0aGVfY29tcGFueS0+c2V0dXBfZmllbGRzX2FuZF9jYXRzKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAvLyBpdCdzIGFuIGVkaXQKICAgICAgICAgICAgJHRoZV9jb21wYW55LT5yZXNldF9jYXRlZ29yaWVzKCk7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICBpZiggY2RfY29tcGFueTo6aXNfdmFsaWRfa2V5KCRrZXksJ3J3JykgKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgICAgICBjYXNlICdzdGF0dXMnOgogICAgICAgICAgICAgICAgICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfY2hhbmdlc3RhdHVzJykgKSAkdGhlX2NvbXBhbnktPiRrZXkgPSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAkdGhlX2NvbXBhbnktPiRrZXkgPSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggJGtleSA9PSAnY2F0ZWdvcmllcycgJiYgaXNfYXJyYXkoJHZhbHVlKSAmJiBjb3VudCgkdmFsdWUpICkgewogICAgICAgICAgICAgICAgLy8gaGFuZGxlIHNlbGVjdGVkIGNhdGVnb3JpZXMuCiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdmFsdWUgYXMgJGNhdGlkICkgewogICAgICAgICAgICAgICAgICAgICR0aGVfY29tcGFueS0+c2V0X2NhdGVnb3J5KCRjYXRpZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggc3RhcnRzd2l0aCgka2V5LCdmaWVsZF8nKSApIHsKICAgICAgICAgICAgICAgICRrMiA9IHN1YnN0cigka2V5LHN0cmxlbignZmllbGRfJykpOwogICAgICAgICAgICAgICAgJHRoZV9jb21wYW55LT5zZXRfZmllbGQoJGsyLCR2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vCiAgICAgICAgLy8gZXJyb3IgY2hlY2tpbmcsIGZpbGwgaW4gbWlzc2luZyBkYXRhLgogICAgICAgIC8vCiAgICAgICAgJHRoZV9jb21wYW55LT52YWxpZGF0ZSgpOwoKICAgICAgICBpZiggJHRoZV9jb21wYW55LT5jb21wYW55X25hbWUgIT0gJG9yaWduYW1lICYmIGNkX3V0aWxzOjpjb21wYW55X25hbWVfZXhpc3RzKCR0aGVfY29tcGFueS0+Y29tcGFueV9uYW1lLCR0aGVfY29tcGFueS0+aWQpICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY29tcGFueW5hbWVfaW51c2UnKSk7CiAgICAgICAgfQoKICAgICAgICBpZiggISR0aGVfY29tcGFueS0+aWQgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkgKSB7CiAgICAgICAgICAgICR0aGVfY29tcGFueS0+dXJsID0gY2RfdXRpbHM6OmdlbmVyYXRlX3VybCgkY29tcGFueV9uYW1lKTsKICAgICAgICAgICAgaWYoICEkdGhlX2NvbXBhbnktPnVybCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9nZW5lcmF0ZXVybCcpKTsKICAgICAgICB9CgogICAgICAgIC8vIHRvZG86IG5lZWQgYSBjb21wYW55IGlkIGhlcmUuCiAgICAgICAgJHRoZV9jb21wYW55LT5zYXZlKCk7CiAgICAgICAgJGRlc3RkaXIgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLCdjb21wYW55ZGlyZWN0b3J5JywnaWQnLiR0aGVfY29tcGFueS0+aWQpOwoKICAgICAgICAvLwogICAgICAgIC8vIG1vdmUgbG9nbyBhbmQgaW1hZ2Ugbm93CiAgICAgICAgLy8KICAgICAgICBpZiggaXNfb2JqZWN0KCR1cGxvYWRlcikgKSB7CiAgICAgICAgICAgIGNnZV9kaXI6Om1rZGlycigkZGVzdGRpcik7CiAgICAgICAgICAgICR1cGxvYWRlci0+c2V0X2Rlc3RfZGlyKCRkZXN0ZGlyKTsKICAgICAgICAgICAgJHVwbG9hZGVyLT5zZXRfYWNjZXB0ZWRfZmlsZXR5cGVzKCk7IC8vIHNldCBiYWNrIHRvIGRlZmF1bHQgZmlsZSB0eXBlcy4KCiAgICAgICAgICAgICR1cGxvYWRlci0+c2V0X2N1cnJlbnRfdmFsdWUoJHRoZV9jb21wYW55LT5sb2dvX2xvY2F0aW9uKTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWxvZ28nXSkgKSB7CiAgICAgICAgICAgICAgICAkdXBsb2FkZXItPmRlbGV0ZV91cGxvYWRzKCk7CiAgICAgICAgICAgICAgICAkdGhlX2NvbXBhbnktPmxvZ29fbG9jYXRpb24gPSAnJzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzID0gJHVwbG9hZGVyLT5oYW5kbGVfdXBsb2FkKCdjZF9sb2dvJyk7CiAgICAgICAgICAgIGlmKCAhJHJlcyApIHsKICAgICAgICAgICAgICAgICRlcnIgPSAkdXBsb2FkZXItPmdldF9lcnJvcigpOwogICAgICAgICAgICAgICAgaWYoICRlcnIgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkZXJyKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhlX2NvbXBhbnktPmxvZ29fbG9jYXRpb24gPSAkcmVzOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR1cGxvYWRlci0+cmVzZXQoKTsKCiAgICAgICAgICAgICR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygpOyAvLyBzZXQgYmFjayB0byBkZWZhdWx0IGZpbGUgdHlwZXMuCiAgICAgICAgICAgICR1cGxvYWRlci0+c2V0X2N1cnJlbnRfdmFsdWUoJHRoZV9jb21wYW55LT5waWN0dXJlX2xvY2F0aW9uKTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWltYWdlJ10pICkgewogICAgICAgICAgICAgICAgJHVwbG9hZGVyLT5kZWxldGVfdXBsb2FkcygpOwogICAgICAgICAgICAgICAgJHRoZV9jb21wYW55LT5waWN0dXJlX2xvY2F0aW9uID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJlcyA9ICR1cGxvYWRlci0+aGFuZGxlX3VwbG9hZCgnY2RfaW1hZ2UnKTsKICAgICAgICAgICAgaWYoICEkcmVzICkgewogICAgICAgICAgICAgICAgJGVyciA9ICR1cGxvYWRlci0+Z2V0X2Vycm9yKCk7CiAgICAgICAgICAgICAgICBpZiggJGVyciAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCRlcnIpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGVfY29tcGFueS0+cGljdHVyZV9sb2NhdGlvbiA9ICRyZXM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHVwbG9hZGVyLT5yZXNldCgpOwogICAgICAgIH0KCgogICAgICAgIC8vCiAgICAgICAgLy8gbW92ZSBmaWxlcyBmcm9tIGN1c3RvbSBmaWVsZHMuCiAgICAgICAgLy8KICAgICAgICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmaWQgPT4gJGZpZWxkZGVmICkgewogICAgICAgICAgICBpZiggJGZpZWxkZGVmLT50eXBlICE9ICdmaWxlJyAmJiAkZmllbGRkZWYtPnR5cGUgIT0gJ2ltYWdlJyApIGNvbnRpbnVlOwogICAgICAgICAgICAkZmxkID0gJHRoZV9jb21wYW55LT5nZXRfZmllbGQoJGZpZWxkZGVmLT5pZCk7CiAgICAgICAgICAgIGlmKCBpc3NldCgkZmxkLT52YWx1ZSkgJiYgJGZsZC0+dmFsdWUgKSAkdXBsb2FkZXItPnNldF9jdXJyZW50X3ZhbHVlKCR0aGVfY29tcGFueS0+Z2V0X2ZpZWxkKCRmaWVsZGRlZi0+aWQpLT52YWx1ZSk7CiAgICAgICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZWxldGVmaWVsZF8nLiRmaWVsZGRlZi0+aWRdKSApIHsKICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBkZWxldGlvbnMKICAgICAgICAgICAgICAgICR1cGxvYWRlci0+ZGVsZXRlX3VwbG9hZHMoKTsKICAgICAgICAgICAgICAgIC8vJHRoZV9jb21wYW55LT5kZWxldGVfZmllbGQoJGZpZWxkZGVmLT5pZCk7CiAgICAgICAgICAgICAgICAkdGhlX2NvbXBhbnktPnNldF9maWVsZCgkZmllbGRkZWYtPmlkLCcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJGZpZWxkZGVmLT5kYXRhICkgewogICAgICAgICAgICAgICAgJHVwbG9hZGVyLT5zZXRfYWNjZXB0ZWRfZmlsZXR5cGVzKCRmaWVsZGRlZi0+ZGF0YSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkdXBsb2FkZXItPnNldF9hY2NlcHRlZF9maWxldHlwZXMoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzID0gJHVwbG9hZGVyLT5oYW5kbGVfdXBsb2FkKCdjZF9maWVsZF8nLiRmaWVsZGRlZi0+aWQpOwogICAgICAgICAgICBpZiggJHJlcyApICR0aGVfY29tcGFueS0+c2V0X2ZpZWxkKCRmaWVsZGRlZi0+aWQsJHJlcyk7CiAgICAgICAgICAgICR1cGxvYWRlci0+cmVzZXQoKTsKICAgICAgICB9CgogICAgICAgIC8vCiAgICAgICAgLy8gc2F2ZSBpdC4uCiAgICAgICAgLy8KICAgICAgICAkdGhlX2NvbXBhbnktPnNhdmUoKTsKCiAgICAgICAgLy8KICAgICAgICAvLyB1cGRhdGUgc2VhcmNoIHN0dWZmCiAgICAgICAgLy8KICAgICAgICBpZiggJHRoZV9jb21wYW55LT5zdGF0dXMgPT0gJ3B1Ymxpc2hlZCcgKSB7CiAgICAgICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9zZWFyY2hfbW9kdWxlKCk7CiAgICAgICAgICAgIGlmKCAkbW9kdWxlICkgJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJHRoZV9jb21wYW55LT5pZCwgJ2NvbXBhbnknLCAkdGhlX2NvbXBhbnktPmdldF9zZWFyY2hfd29yZHMoKSApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKICAgICAgICAgICAgaWYoICRtb2R1bGUgKSAkbW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkdGhlX2NvbXBhbnktPmlkLCAnY29tcGFueScpOwogICAgICAgIH0KCiAgICAgICAgLy8KICAgICAgICAvLyBkbyBlbWFpbCBzdHVmZgogICAgICAgIC8vCiAgICAgICAgaWYoICgkZ3JvdXBpZCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbGdyb3VwJywtMSkpID4gMCApIHsKICAgICAgICAgICAgJGFkZHJlc3NlcyA9IGFycmF5KCk7CiAgICAgICAgICAgICR1c2Vyb3BzID0gJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CiAgICAgICAgICAgICR1c2VycyA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnNJbkdyb3VwKCRncm91cGlkKTsKICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHVzZXJzKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICR1c2VyID0gJHVzZXJzWyRpXTsKICAgICAgICAgICAgICAgIGlmKCAhZW1wdHkoJHVzZXItPmVtYWlsKSApICRhZGRyZXNzZXNbXSA9ICR1c2VyLT5lbWFpbDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoIGNvdW50KCRhZGRyZXNzZXMpICkgewogICAgICAgICAgICAgICAgaWYoICgkYmVoYXZpb3VyID09ICdpbnNlcnQnICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbG9uYWRkJykpIHx8CiAgICAgICAgICAgICAgICAgICAgKCRiZWhhdmlvdXIgPT0gJ3VwZGF0ZScgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2VtYWlsb25lZGl0JykpICkgewogICAgICAgICAgICAgICAgICAgIC8vIHdlIGNhbiBzZW5kIHNvbWV0aGluZyB0byBzb21lYm9keS4KICAgICAgICAgICAgICAgICAgICAkdmFycyA9IGFycmF5KCdjb21wYW55X25hbWUnLCdhZGRyZXNzJywndGVsZXBob25lJywnbGF0aXR1ZGUnLCdsb25naXR1ZGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZheCcsJ2NvbnRhY3RfZW1haWwnLCd3ZWJzaXRlJywnZGV0YWlscycsJ2ZldV91aWQnKTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdmFycyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJG9uZSwkJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkZmllbGRkZWZzKSApICRzbWFydHktPmFzc2lnbignZmllbGRzJywkZmllbGRkZWZzKTsKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2NhdGVnb3JpZXMnXSApICYmIGNvdW50KCRjYXRlZ29yaWVzKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNhdHMgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcGFyYW1zWydjYXRlZ29yaWVzJ10gYXMgJGsgPT4gJHYgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2F0c1tdID0gJHY7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRjYXRuYW1lcyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICRjYXRlZ29yaWVzIGFzICRvbmVjYXQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggaW5fYXJyYXkoJG9uZWNhdC0+aWQsJGNhdHMpICkgJGNhdG5hbWVzW10gPSAkb25lY2F0LT5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdG5hbWVzKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgICAgICAgICAgICAgICAkcmVzID0gJGZldS0+R2V0VXNlckluZm8oJGZldV91aWQpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkcmVzWzBdID09IFRSVUUgKSAkc21hcnR5LT5hc3NpZ24oJ3VzZXJpbmZvJywkcmVzWzFdKTsKCiAgICAgICAgICAgICAgICAgICAgJGJvZHkgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdhZG1pbl9mZWVkaXRfZW1haWxfdGVtcGxhdGUnKTsKICAgICAgICAgICAgICAgICAgICAkc3ViamVjdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfc3ViamVjdCcpOwoKICAgICAgICAgICAgICAgICAgICAkbWFpbGVyID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDTVNNYWlsZXInKTsKICAgICAgICAgICAgICAgICAgICAkbWFpbGVyLT5yZXNldCgpOwogICAgICAgICAgICAgICAgICAgICRtYWlsZXItPlNldFN1YmplY3QoJHN1YmplY3QpOwogICAgICAgICAgICAgICAgICAgICRtYWlsZXItPklzSFRNTCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX2lzaHRtbCcpKTsKICAgICAgICAgICAgICAgICAgICAkbWFpbGVyLT5TZXRCb2R5KCRib2R5KTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkYWRkcmVzc2VzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRtYWlsZXItPkFkZEFkZHJlc3MoJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRtYWlsZXItPnNlbmQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gLy8gZW5kIG9mIGVtYWlsIHN0dWZmCgogICAgICAgIC8vCiAgICAgICAgLy8gc2VuZCB0aGUgZXZlbnQKICAgICAgICAvLwogICAgICAgICR0aGVfY29tcGFueS0+c2V0X3JlYWRvbmx5KCk7CiAgICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25FZGl0Q29tcGFueScsYXJyYXkoJ2Zyb250ZW5kdXNlcic9PiRmZXVfdWlkLCdvYmplY3QnPT4kdGhlX2NvbXBhbnkpKTsKCiAgICAgICAgYXVkaXQoJHRoZV9jb21wYW55LT5pZCwkdGhpcy0+R2V0TmFtZSgpLCdFZGl0ZWQgY29tcGFueSAnLiR0aGVfY29tcGFueS0+Y29tcGFueV9uYW1lLicgdmlhIHRoZSBmcm9udGVuZCAoRkVVIGlkID0gJy4kZmV1X3VpZC4nKScpOwoKICAgICAgICAvLwogICAgICAgIC8vIHJlZGlyZWN0IG91dGEgaGVyZQogICAgICAgIC8vCiAgICAgICAgaWYoICFlbXB0eSgkcGFyYW1zWydkZXN0cGFnZSddKSApIHsKICAgICAgICAgICAgLy8gYXNzdW1lIGl0J3MgYSBwYWdlIGFsaWFzIG9yIHBhZ2UgaWQuCiAgICAgICAgICAgICRwYWdlX2lkID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1snZGVzdHBhZ2UnXSk7CiAgICAgICAgICAgIGlmKCAkcGFnZV9pZCApICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHBhZ2VfaWQpOwogICAgICAgIH0KICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1sncmVmZXJlciddKSApIHsKICAgICAgICAgICAgcmVkaXJlY3QoJHBhcmFtc1sncmVmZXJlciddKTsKICAgICAgICB9CgogICAgfQogICAgY2F0Y2goQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbiAkZSkgewogICAgICAgIGlmKCAkY29tcGFueWlkID09IC0xICkgewogICAgICAgICAgICAvLyBkbyB3ZSByZWFsbHkgd2FubmEgZGVsZXRlIHRoZSBjb21wYW55PyBvciBnbyBiYWNrIGludG8gZWRpdCBtb2RlPwogICAgICAgIH0KICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRlLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICRlcnJvciA9IHRydWU7CiAgICB9Cn0gLy8gc3VibWl0CgovLwovLyBQb3B1bGF0ZSBUaGUgVGVtcGxhdGUKLy8KJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdGhldGVtcGxhdGUpOwokcGFybXMgPSBhcnJheSgpOwppZiggaXNzZXQoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSAmJiAhaXNzZXQoJHBhcmFtc1snY2RfcmVmZXJlciddKSkgJHBhcm1zWydjZF9yZWZlcmVyJ10gPSAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ107CiRwYXJtc1snY29tcGFueWlkJ10gPSAkY29tcGFueWlkOwokcGFybXNbJ2NkX293bmVyX2lkJ10gPSAkZmV1X3VpZDsKJHBhcm1zWydjZF9vcmlnbmFtZSddID0gJG9yaWduYW1lOwppZiggaXNzZXQoJHBhcmFtc1snZGVzdHBhZ2UnXSkgKSAkcGFybXNbJ2NkX2Rlc3RwYWdlJ10gPSAkcGFyYW1zWydkZXN0cGFnZSddOwokdHBsLT5hc3NpZ24oJ3N0YXJ0Zm9ybScsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZmVfZWRpdDInLCRyZXR1cm5pZCwgJHBhcm1zLGZhbHNlLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHRwbC0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCd0aGVfY29tcGFueScsJHRoZV9jb21wYW55KTsKaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jaGFuZ2VzdGF0dXMnKSApIHsKICAgICRzdGF0dXNlcyA9IGFycmF5KCR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKT0+J3B1Ymxpc2hlZCcsJHRoaXMtPkxhbmcoJ2RyYWZ0Jyk9PidkcmFmdCcpOwogICAgJHRwbC0+YXNzaWduKCdzdGF0dXNlcycsYXJyYXlfZmxpcCgkc3RhdHVzZXMpKTsKfQokdHBsLT5hc3NpZ24oJ2hpZXJhcmNoeV9saXN0JyxhcnJheV9mbGlwKGNkX3V0aWxzOjpnZXRfaGllcmFyY2h5X2xpc3QoKSkpOwppZiggaXNfYXJyYXkoJGNhdGVnb3JpZXMpICYmIGNvdW50KCRjYXRlZ29yaWVzKSApIHsKICAgICR0cGwtPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdGVnb3JpZXMpOwogICAgJGNhdG5hbWVzID0gJGF1dG9jb21wbGV0ZV9saXN0ID0gW107CiAgICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkb25lY2F0ICkgewogICAgICAgICRkZXB0aCA9IGNvdW50KGV4cGxvZGUoJy4nLCRvbmVjYXQtPmhpZXJhcmNoeSkpLTE7CiAgICAgICAgJGNhdG5hbWVzWyRvbmVjYXQtPmlkXSA9IHN0cl9yZXBlYXQoJyZuYnNwOyZuYnNwOycsJGRlcHRoKS4kb25lY2F0LT5uYW1lOwogICAgICAgICRhdXRvY29tcGxldGVfbGlzdFskb25lY2F0LT5pZF0gPSAkb25lY2F0LT5sb25nX25hbWU7CiAgICB9CiAgICAkdHBsLT5hc3NpZ24oJ2NhdGVnb3J5X2xvbmduYW1lcycsJGF1dG9jb21wbGV0ZV9saXN0KTsKICAgICR0cGwtPmFzc2lnbignY2F0bmFtZXMnLCRjYXRuYW1lcyk7CiAgICAkdG1wID0gJHRoZV9jb21wYW55LT5saXN0X2NhdGVnb3JpZXMoKTsKICAgICRzZWxfY2F0ZWdvcmllcyA9IGFycmF5KCk7CiAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CiAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkdCApIHsKICAgICAgICAgICAgJHQyID0gJHRoZV9jb21wYW55LT5nZXRfY2F0ZWdvcnkoJHQpOwogICAgICAgICAgICAkc2VsX2NhdGVnb3JpZXNbXSA9ICR0Mi0+aWQ7CiAgICAgICAgfQogICAgfQogICAgJHRwbC0+YXNzaWduKCdzZWxfY2F0ZWdvcmllcycsJHNlbF9jYXRlZ29yaWVzKTsKfQoKaWYoIGlzX2FycmF5KCRmaWVsZGRlZnMyKSAmJiBjb3VudCgkZmllbGRkZWZzMikgKSAkdHBsLT5hc3NpZ24oJ2ZpZWxkZGVmcycsJGZpZWxkZGVmczIpOwppZiggJGhhdmVfYWxidW0gKSAkdHBsLT5hc3NpZ24oJ2FsYnVtX2lkJywkaGF2ZV9hbGJ1bSk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.fe_edit_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoICEkZmV1ICkgewogIGVjaG8gJzxoMz48Zm9udCBjb2xvcj0icmVkIj4nLiR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZldScpLiI8L2ZvbnQ+PC9oMz5cbiI7CiAgcmV0dXJuOwp9CmVsc2UgaWYoICEkZmV1LT5Mb2dnZWRJbigpICkgewogIGVjaG8gJzxoMz48Zm9udCBjb2xvcj0icmVkIj4nLiR0aGlzLT5MYW5nKCdlcnJvcl9mZXVfbG9nZ2VkaW4nKS4iPC9mb250PjwvaDM+XG4iOwogIHJldHVybjsKfQokZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKCiRzdWJhY3Rpb24gPSAnZnVsbHRlbXBsYXRlJzsKCi8vCi8vIFN0cmlwIGFsbCBwYXJhbXMgb2YgdGhlIGNkXyBwcmVmaXgKLy8KJHAyID0gYXJyYXkoKTsKZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAkdCA9IHN1YnN0cigka2V5LDAsMyk7CiAgaWYoICR0ID09ICdjZF8nICkgewogICAgJG5ld2tleSA9IHN1YnN0cigka2V5LDMpOwogICAgJHAyWyRuZXdrZXldID0gJHZhbHVlOwogIH0KICBlbHNlIHsKICAgICRwMlska2V5XSA9ICR2YWx1ZTsKICB9Cn0KJHBhcmFtcyA9ICRwMjsKCi8vCi8vIGluaXRpYWxpemF0aW9uCi8vCmlmKCAhaXNzZXQoJHBhcmFtc1snY29tcGFueWlkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmbGRpZCddKSApIHsKICBlY2hvICc8aDM+PGZvbnQgY29sb3I9InJlZCI+Jy4kdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykuIjwvZm9udD48L2gzPlxuIjsKICByZXR1cm47Cn0KJGZsZGlkID0gKGludCkkcGFyYW1zWydmbGRpZCddOwokY29tcGlkID0gKGludCkkcGFyYW1zWydjb21wYW55aWQnXTsKaWYoICRjb21waWQgPD0gMCApIHsKICBlY2hvICc8aDM+PGZvbnQgY29sb3I9InJlZCI+Jy4kdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJGNvbXBpZCkuIjwvZm9udD48L2gzPlxuIjsKICByZXR1cm47Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1YmFjdGlvbiddKSApIHsKICAkc3ViYWN0aW9uID0gdHJpbSgkcGFyYW1zWydzdWJhY3Rpb24nXSk7Cn0KJHRtcCA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzKGZhbHNlLHRydWUpOwppZiggIWlzX2FycmF5KCR0bXApIHx8IGNvdW50KCR0bXApID09IDAgKSB7CiAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpZWxkZGVmX25vdGZvdW5kJywkcGFyYW1zWydmbGRpZCddKS4iPC9mb250PjwvaDM+XG4iOwogIHJldHVybjsKfQokZm5kID0gZmFsc2U7CmZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICBpZiggJG9uZVsnaWQnXSA9PSAkZmxkaWQgJiYgJG9uZVsndHlwZSddID09ICdhbGJ1bScgKSB7CiAgICAkZm5kID0gdHJ1ZTsKICAgIGJyZWFrOwogIH0KfQppZiggISRmbmQgKSB7CiAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpZWxkZGVmX25vdGZvdW5kJywkcGFyYW1zWydmbGRpZCddKS4iPC9mb250PjwvaDM+XG4iOwogIHJldHVybjsKfQoKJHNtYXJ0eS0+YXNzaWduKCdjb21wYW55aWQnLCRjb21waWQpOwokc21hcnR5LT5hc3NpZ24oJ2ZsZGlkJywkZmxkaWQpOwokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiRiYXNlZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkLCdhbGJ1bV8nLiRmbGRpZCk7CiRiYXNldXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvaWR7JGNvbXBpZH0vYWxidW1feyRmbGRpZH0iOwokc21hcnR5LT5hc3NpZ24oJ2Jhc2VfZGlyJywkYmFzZWRpcik7CiRzbWFydHktPmFzc2lnbignYmFzZV91cmwnLCRiYXNldXJsKTsKCiRzbWFydHktPmFzc2lnbignc3ViYWN0aW9uJywkc3ViYWN0aW9uKTsKc3dpdGNoKCAkc3ViYWN0aW9uICkgewogY2FzZSAnZ2FsbGVyeSc6CiAgICR0aGVfY29tcGFueSA9IGNkX2NvbXBhbnk6OmxvYWRfYnlfaWQoJGNvbXBpZCxUUlVFKTsKICAgJGZpZWxkID0gJHRoZV9jb21wYW55LT5nZXRfZmllbGQoJGZsZGlkKTsKICAgaWYoIGlzX29iamVjdCgkZmllbGQpICYmIGlzc2V0KCRmaWVsZC0+dmFsdWUpICYmICRmaWVsZC0+dmFsdWUgKSB7CgkgJGZpbGVzID0gdW5zZXJpYWxpemUoJGZpZWxkLT52YWx1ZSk7CgkgJHNtYXJ0eS0+YXNzaWduKCdmaWxlcycsJGZpbGVzKTsKICAgfQogICAvLyBmYWxsIHRocm91Z2gKIGNhc2UgJ2Z1bGx0ZW1wbGF0ZSc6CiAgICR0aGV0ZW1wbGF0ZSA9ICdmcm9udGVuZGFsYnVtXycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVOREFMQlVNX1RFTVBMQVRFKTsKICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Zyb250ZW5kYWxidW0nXSApICkgewoJICR0aGV0ZW1wbGF0ZSA9ICdmcm9udGVuZGFsYnVtXycuJHBhcmFtc1snZnJvbnRlbmRhbGJ1bSddOwogICB9CiAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGhldGVtcGxhdGUpOwogICBicmVhazsKCiBjYXNlICdzb3J0JzoKICAgaWYoIGlzc2V0KCRwYXJhbXNbJ29yZGVyJ10pICYmIGNvdW50KCRwYXJhbXNbJ29yZGVyJ10pICkgewoJICR0aGVfY29tcGFueSA9IGNkX2NvbXBhbnk6OmxvYWRfYnlfaWQoJGNvbXBpZCxUUlVFKTsKCSAkZmllbGQgPSAkdGhlX2NvbXBhbnktPmdldF9maWVsZCgkZmxkaWQpOwoJIGlmKCBpc19vYmplY3QoJGZpZWxkKSAmJiBpc3NldCgkZmllbGQtPnZhbHVlKSAmJiAkZmllbGQtPnZhbHVlICkgewoJICAgJGZpbGVzID0gdW5zZXJpYWxpemUoJGZpZWxkLT52YWx1ZSk7CgkgICBpZiggY291bnQoJGZpbGVzKSA9PSBjb3VudCgkcGFyYW1zWydvcmRlciddKSApIHsKCQkgJG5ld19maWxlcyA9IGFycmF5KCk7CgkJIGZvcmVhY2goICRwYXJhbXNbJ29yZGVyJ10gYXMgJGlkeCApIHsKCQkgICAkbmV3X2ZpbGVzW10gPSAkZmlsZXNbJGlkeF07CgkJIH0KCQkgJHRoZV9jb21wYW55LT5zZXRfZmllbGQoJGZsZGlkLHNlcmlhbGl6ZSgkbmV3X2ZpbGVzKSk7CgkJICR0aGVfY29tcGFueS0+c2F2ZSgpOwoJICAgfQoJIH0KICAgfQogICBleGl0OwoKIGNhc2UgJ2RlbGV0ZSc6CiAgICRpZHggPSAoaW50KSRwYXJhbXNbJ2lkeCddOwogICAkdGhlX2NvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKCRjb21waWQsVFJVRSk7CiAgICRmaWVsZCA9ICR0aGVfY29tcGFueS0+Z2V0X2ZpZWxkKCRmbGRpZCk7CiAgIGlmKCBpc19vYmplY3QoJGZpZWxkKSAmJiBpc3NldCgkZmllbGQtPnZhbHVlKSAmJiAkZmllbGQtPnZhbHVlICkgewoJICRmaWxlcyA9IHVuc2VyaWFsaXplKCRmaWVsZC0+dmFsdWUpOwoJIGlmKCAkaWR4ID49IDAgJiYgJGlkeCA8IGNvdW50KCRmaWxlcykgKSB7CgkgICAkZmlsZW5hbWUgPSAkZmlsZXNbJGlkeF07CgkgICAkYmFzZWRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBpZCwnYWxidW1fJy4kZmxkaWQpOwoJICAgQHVubGluayhjbXNfam9pbl9wYXRoKCRiYXNlZGlyLCRmaWxlbmFtZSkpOwoJICAgYXJyYXlfc3BsaWNlKCRmaWxlcywkaWR4LDEpOwoJICAgJHRoZV9jb21wYW55LT5zZXRfZmllbGQoJGZsZGlkLHNlcmlhbGl6ZSgkZmlsZXMpKTsKCSAgICR0aGVfY29tcGFueS0+c2F2ZSgpOwoJIH0KICAgfQogICBleGl0OwoKIGNhc2UgJ3VwbG9hZCc6CiAgIC8vIGFqYXggdXBsb2FkCiAgICRvcHRpb25zID0gYXJyYXkoJ3BhcmFtX25hbWUnPT4naW1hZ2VfdXBsb2FkJyk7CiAgICRvcHRpb25zWydjb21waWQnXSA9ICRjb21waWQ7CiAgICRvcHRpb25zWydmZGlkJ109ICRmbGRpZDsKICAgJG9wdGlvbnNbJ3VwbG9hZF9kaXInXSA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBpZCwnYWxidW1fJy4kZmxkaWQpLicvJzsKICAgJG9wdGlvbnNbJ3VwbG9hZF91cmwnXSA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uIi9jb21wYW55ZGlyZWN0b3J5L2lkeyRjb21waWR9L2FsYnVtX3skZmxkaWR9IjsKICAgJHVwbG9hZF9oYW5kbGVyID0gbmV3IENvbXBhbnlEaXJlY3RvcnlKUXVlcnlVcGxvYWRIYW5kbGVyKCRvcHRpb25zKTsKCiAgIHRyeSB7CgkgaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7CgkgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlLCBuby1jYWNoZScpOwoJIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0iZmlsZXMuanNvbiInKTsKCSBoZWFkZXIoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmYnKTsKCSBoZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKicpOwoJIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kczogT1BUSU9OUywgSEVBRCwgR0VULCBQT1NULCBQVVQsIERFTEVURScpOwoJIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyczogWC1GaWxlLU5hbWUsIFgtRmlsZS1UeXBlLCBYLUZpbGUtU2l6ZScpOwoKCSBzd2l0Y2ggKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddKSB7CgkgY2FzZSAnT1BUSU9OUyc6CgkgICBicmVhazsKCSBjYXNlICdIRUFEJzoKCSBjYXNlICdHRVQnOgoJICAgJHVwbG9hZF9oYW5kbGVyLT5nZXQoKTsKCSAgIGJyZWFrOwoJIGNhc2UgJ1BPU1QnOgoJICAgJHVwbG9hZF9oYW5kbGVyLT5wb3N0KCk7CgkgICBicmVhazsKCSBjYXNlICdERUxFVEUnOgoJICAgJHVwbG9hZF9oYW5kbGVyLT5kZWxldGUoKTsKCSAgIGJyZWFrOwoJIGRlZmF1bHQ6CgkgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNSBNZXRob2QgTm90IEFsbG93ZWQnKTsKCSB9CiAgIH0KICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKCSBkZWJ1Z190b19sb2coJGUtPkdldE1lc3NhZ2UoKSk7CiAgIH0KICAgZXhpdDsKfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.fe_importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9pbXBvcnQnLDApICkgcmV0dXJuOwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJGZpbGVzdHIgPSAkaWQuJ2NkX2NzdmZpbGUnOwokbWVzc2FnZSA9ICcnOwokZXJyb3JzID0gYXJyYXkoKTsKJGRlbGltaXRlciA9ICcnOwokZnJvbnRlbmR1c2VycyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggISRmcm9udGVuZHVzZXJzICkgZXhpdCgpOwokZmV1X3VpZCA9ICRmcm9udGVuZHVzZXJzLT5Mb2dnZWRJbklkKCk7CmlmKCAkZmV1X3VpZCA8PSAwICkgZXhpdCgpOyAvLyBub3QgbG9nZ2VkIGluLgoKJG1heHJlY29yZHMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfbnVtcmVjb3JkcycsMCk7CiRxdWVyeSA9ICdTRUxFQ1QgQ09VTlQoaWQpIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcwogICAgICAgICAgIFdIRVJFIG93bmVyX2lkID0gPyc7CiRudW1yZWNvcmRzID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRmZXVfdWlkKSk7CgppZiggJG1heHJlY29yZHMgLSAkbnVtcmVjb3JkcyA8PSAwICkKICB7CiAgICAkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub3Nwb3RzbGVmdCcpOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2Rfc3VibWl0J10pICkKICB7CiAgICAkZGVsaW1pdGVyID0gdHJpbSgkcGFyYW1zWydjZF9kZWxpbWl0ZXInXSk7CiAgICBpZiggJGRlbGltaXRlciA9PSAnJyApCiAgICAgIHsKCSRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9kZWxpbWl0ZXInKTsKICAgICAgfQogICAgZWxzZSBpZiggIWlzc2V0KCRfRklMRVMpIHx8CgkgICAgICFpc3NldCgkX0ZJTEVTWyRmaWxlc3RyXSkgIHx8CgkgICAgICRfRklMRVNbJGZpbGVzdHJdWydlcnJvciddICE9IDAgfHwKCSAgICAgJF9GSUxFU1skZmlsZXN0cl1bJ3NpemUnXSA9PSAwICkKICAgICAgewoJJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VwbG9hZCcpOwogICAgICB9CgogICAgaWYoIGNvdW50KCRlcnJvcnMpID09IDAgKQogICAgICB7CgkkaW1wb3J0ZXIgPSBuZXcgY2RfYXNjaWlfaW1wb3J0ZXIoJHRoaXMpOwoJJGltcG9ydGVyLT5zZXRfZGVsaW1pdGVyKCRkZWxpbWl0ZXIpOwoJJGltcG9ydGVyLT5zZXRfbWF4X2NvbXBhbmllcygkbWF4cmVjb3JkcyAtICRudW1yZWNvcmRzKTsKCSRpbXBvcnRlci0+ZG9fZmllbGRkZWZzKGZhbHNlKTsKCSRpbXBvcnRlci0+ZG9fZmllbGR2YWxzKHRydWUpOwoJJGltcG9ydGVyLT5kb19jYXRlZ29yeWRlZnMoZmFsc2UpOwoJJGltcG9ydGVyLT5kb19jYXRlZ29yeXZhbHModHJ1ZSk7CgkkaW1wb3J0ZXItPmRvX2xhdGxvbmdfbG9va3VwKGZhbHNlKTsKCSRpbXBvcnRlci0+Y2hlY2tfZHVwbGljYXRlX2NvbXBhbmllcyh0cnVlKTsKCSRpbXBvcnRlci0+ZG9faGllcmFyY2h5ZGVmcyhmYWxzZSk7CgkkaW1wb3J0ZXItPmRvX2hpZXJhcmNoeXZhbHModHJ1ZSk7CgkkaW1wb3J0ZXItPnNldF91c2VyKCRmZXVfdWlkKTsKCSRpbXBvcnRlci0+Y3JlYXRlX3VybCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJywwKSk7CgoJJHJlcyA9ICRpbXBvcnRlci0+aW1wb3J0X2ZpbGUoJF9GSUxFU1skZmlsZXN0cl1bJ3RtcF9uYW1lJ10pOwoJJGVycm9ycyA9ICRpbXBvcnRlci0+Z2V0X2Vycm9ycygpOwoKCSRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ21zZ19pbXBvcnRfY29tcGxldGUnKTsKCgkkcXVlcnkgPSAnU0VMRUNUIENPVU5UKGlkKSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMKICAgICAgICAgICAgICAgICAgV0hFUkUgb3duZXJfaWQgPSA/JzsKCSRudW1yZWNvcmRzID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRmZXVfdWlkKSk7CgoJaWYoICRudW1yZWNvcmRzID4gMCApCgkgIHsKCQlhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdJbXBvcnRlZCAnLiRudW1yZWNvcmRzLicgZnJvbSBjc3YgdmlhIHRoZSBmcm9udGVuZCcpOwoJICB9CgogICAgICB9CiAgfQoKCi8vCi8vIGdpdmUgZXZlcnl0aGluZyB0byBzbWFydHkKLy8KaWYoIGNvdW50KCRlcnJvcnMpICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Vycm9ycycsJGVycm9ycyk7CiAgfQppZiggJG1lc3NhZ2UgIT0gJycgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwogIH0KJHNtYXJ0eS0+YXNzaWduKCdtYXhyZWNvcmRzJywkbWF4cmVjb3Jkcyk7CiRzbWFydHktPmFzc2lnbignbnVtcmVjb3JkcycsJG51bXJlY29yZHMpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZmVfaW1wb3J0Y3N2JywkcmV0dXJuaWQsYXJyYXkoKSxmYWxzZSwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.frontendlist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLwovLyBJbml0aWFsaXphdGlvbgovLwokdGhldGVtcGxhdGUgPSAnZnJvbnRlbmRsaXN0XycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVORExJU1RfVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snZnJvbnRlbmRsaXN0dGVtcGxhdGUnXSApICkgJHRoZXRlbXBsYXRlID0gJ2Zyb250ZW5kbGlzdF8nLiRwYXJhbXNbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlJ107CiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoICFpc19vYmplY3QoJGZldSkgKSByZXR1cm47IC8vIG5vIGZldSBtb2R1bGUuCiRtYXhfcmVjb3JkcyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9udW1yZWNvcmRzJywwKTsKaWYoICRtYXhfcmVjb3JkcyA8IDEgKSAkbWF4X3JlY29yZHMgPSAxMDAwMDA7CiRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwppZiggJGZldV91aWQgPD0gMCApIHJldHVybjsgLy8gbm90IGxvZ2dlZCBpbgoKLy8KLy8gR2V0IGRhdGEKLy8KJHRtcCA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzKGZhbHNlLHRydWUpOwokaGF2ZV9hbGJ1bSA9IG51bGw7CmlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CglpZiggJG9uZVsndHlwZSddID09ICdhbGJ1bScgKSB7CgkgIC8vIHdlIGhhdmUgYSBwdWJsaWMgYWxidW0uCgkgICRoYXZlX2FsYnVtID0gJG9uZVsnaWQnXTsKCSAgYnJlYWs7Cgl9CiAgfQp9CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIG93bmVyX2lkID0gPyBPUkRFUiBCWSBtb2RpZmllZF9kYXRlIExJTUlUICcuJG1heF9yZWNvcmRzOwokZGF0YSA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRmZXVfdWlkKSk7CiRudW1fbGlzdGluZ3MgPSAwOwppZiggaXNfYXJyYXkoJGRhdGEpICkgJG51bV9saXN0aW5ncyA9IGNvdW50KCRkYXRhKTsKCi8vCi8vIEdpdmUgZGF0YSB0byBzbWFydHkKLy8KJHNtYXJ0eS0+Y2xlYXJfYXNzaWduKCdyZWNvcmRzJyk7CmlmKCAkbnVtX2xpc3RpbmdzID4gMCApIHsKICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGF0YSk7ICRpKysgKSB7CgkkcmVjID0mICRkYXRhWyRpXTsKCSRwYXJtcyA9IGFycmF5KCk7CgkkcGFybXNbJ2NvbXBhbnlpZCddID0gJHJlY1snaWQnXTsKCSRyZWNbJ2VkaXRfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZmVfZWRpdDInLCRyZXR1cm5pZCwkcGFybXMpOwoKCWlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZGVsZXRlJywxKSApICRyZWNbJ2RlbGV0ZV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdmZV9kZWxldGUnLCRyZXR1cm5pZCwkcGFybXMpOwoKCSRwYXJtc1snY2RfZmxkaWQnXSA9ICRoYXZlX2FsYnVtOwoJJHJlY1snZ2FsbGVyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdmZV9lZGl0X2FsYnVtJywkcmV0dXJuaWQsJHBhcm1zKTsKICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdyZWNvcmRzJywkZGF0YSk7Cn0KCmlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfY3JlYXRlJywwKSAmJiAoJG51bV9saXN0aW5ncyA8ICRtYXhfcmVjb3JkcykgKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdmZV9hZGRfdXJsJywkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZmVfZWRpdDInLCRyZXR1cm5pZCkpOwogIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfaW1wb3J0JywwKSApICRzbWFydHktPmFzc2lnbignZmVfaW1wb3J0X3VybCcsJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2ZlX2ltcG9ydGNzdicsJHJldHVybmlkKSk7Cn0KJHNtYXJ0eS0+YXNzaWduKCdmcm9udGVuZF9kZWxldGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9kZWxldGUnLDEpKTsKCi8vCi8vIFByb2Nlc3MgdGhlIHRlbXBsYXRlLgovLwokc21hcnR5LT5hc3NpZ24oJ2hhdmVfYWxidW0nLCRoYXZlX2FsYnVtKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CgojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.geolocate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKaWYoICFjZF91dGlsczo6Y2FuX2dlb2xvY2F0ZSgpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydhZGRyZXNzJ10pICkgZXhpdDsKJGFkZHJlc3MgPSB0cmltKCRwYXJhbXNbJ2FkZHJlc3MnXSk7CmlmKCAhJGFkZHJlc3MgKSBleGl0OwoKJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyAKZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KJGNvb3JkcyA9IGNkX3V0aWxzOjpnZW9sb2NhdGUoJGFkZHJlc3MpOwppZiggaXNfYXJyYXkoJGNvb3JkcykgJiYgY291bnQoJGNvb3JkcykgKSB7CiAgJGNvb3Jkc1snc3RhdHVzJ10gPSAnc3VjY2Vzcyc7Cn0KZWxzZSB7CiAgJGNvb3JkcyA9IGFycmF5KCdzdGF0dXMnPT4nZXJyb3InKTsKfQoKaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOwpoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsKaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlJyxmYWxzZSk7CmhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7CmVjaG8ganNvbl9lbmNvZGUoJGNvb3Jkcyk7CmV4aXQ7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.handle_oldroute.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkcGFyYW1zWydhY3Rpb24nXSkgKSB7CiAgICAvLyBkbyBhIDQwNAogICAgY2dlX3JlZGlyZWN0OjpyZWRpcmVjdDQwNCgpOwp9CgppZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcmVkaXJlY3RvbGQnLDApIHx8ICFpc3NldCgkcGFyYW1zWydjb21wYW55aWQnXSkgKSB7CiAgICAvLyBzb21laG93IHdlIGdvdCBoZXJlLCBldmVuIHRob3VnaCB0aGUgcHJlZmVyZW5jZSBpcyBvZmYuCiAgICAvLyBnb3R0YSByZWRpcmVjdCA0MDQsIGN1eiB3ZSBkb24ndCBrbm93IHdoZXJlIHdlJ3JlIHN1cHBvc2VkIHRvIGdvLgogICAgY2dlX3JlZGlyZWN0OjpyZWRpcmVjdDQwNCgpOwp9CgovLyB3ZSdyZSByZWRpcmVjdGluZyB0byBhbiBpdGVtIHRoYXQgc2hvdWxkIGhhdmUgYSBVUkwuCiRkYiA9IGNtc21zKCktPkdldERiKCk7CiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/IEFORCB1cmwgIT0gPyc7CiRyZWMgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJHBhcmFtc1snY29tcGFueWlkJ10sJycpKTsKCmlmKCAhJHJlYyApIHsKICAgIC8vIGNvdWxkbid0IGZpbmQgdGhlIHJlY29yZCwgb3IgaXQgZXhpc3RzIGhhcyBhbiBlbXB0eSBVUkwuCiAgICAvLyBkbyB0aGUgb3JpZ2luYWwgYWN0aW9uLgogICAgaWYoICFpc3NldCgkcGFyYW1zWydvcmlnYWN0aW9uJ10pICkgY2dlX3JlZGlyZWN0OjpyZWRpcmVjdDQwNCgpOwoKICAgICRwYXJhbXNbJ2FjdGlvbiddID0gJHBhcmFtc1snb3JpZ2FjdGlvbiddOwogICAgdW5zZXQoJHBhcmFtc1snb3JpZ2FjdGlvbiddKTsKICAgIHJldHVybiAkdGhpcy0+RG9BY3Rpb24oJHBhcmFtc1snYWN0aW9uJ10sJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKfQoKY2dlX3RtcGRhdGE6OnNldCgnY29tcGFueWRpcl8nLiRyZWNbJ2lkJ10sJHJlYyk7CiRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLC0xKTsKaWYoICRkZXRhaWxwYWdlID09IC0xICkgewogICAgJGNvbnRlbnRvcHMgPSBDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCk7CiAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwp9CgokdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdkZXRhaWxzJywkZGV0YWlscGFnZSwkcGFyYW1zKTsKY2dlX3JlZGlyZWN0OjpyZWRpcmVjdF9hYnMzMDEoJHVybCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdkb19pbXBvcnRjc3YnLCRyZXR1cm5pZCxhcnJheSgpLAoJCQkJCQkgICAgIGZhbHNlLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJG9wdHMgPSBhcnJheSgpOwokb3B0c1swXSA9ICR0aGlzLT5MYW5nKCdubycpOwokb3B0c1sxXSA9ICR0aGlzLT5MYW5nKCd5ZXMnKTsKJHNtYXJ0eS0+YXNzaWduKCd5ZXNub29wdHMnLCRvcHRzKTsKCiRjYW5fbG9va3VwID0gY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5fbG9va3VwJywkY2FuX2xvb2t1cCk7Cgokb3B0cyA9IGFycmF5KCk7CiRvcHRzWydlcnJvciddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2R1cGxpY2F0ZScpOwokb3B0c1snaW5zZXJ0J10gPSAkdGhpcy0+TGFuZygnaW1wb3J0X2luc2VydCcpOwokb3B0c1snaWdub3JlJ10gPSAkdGhpcy0+TGFuZygnaWdub3JlJyk7CiRvcHRzWyd1cGRhdGUnXSA9ICR0aGlzLT5MYW5nKCdvdmVyd3JpdGUnKTsKaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfY29tcGFueV9uYW1lcycpICkgJG9wdHNbJ2luc2VydCddID0gJHRoaXMtPkxhbmcoJ2luc2VydF9kdXBsaWNhdGUnKTsKJHNtYXJ0eS0+YXNzaWduKCdkdXBsaWNhdGVfb3B0cycsJG9wdHMpOwoKJHNtYXJ0eS0+YXNzaWduKCd1cmxfb3B0aW9uYWwnLCEkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJywwKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ltcG9ydGNzdi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.importkml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCi8vCi8vIGZ1bmN0aW9ucwovLwpmdW5jdGlvbiBfZ2V0X2NoaWxkbm9kZSgmJHBhcmVudCwkbm9kZW5hbWUpCnsKICAkY2hpbGRyZW4gPSAkcGFyZW50LT5jaGlsZE5vZGVzOwogIGZvcmVhY2goICRjaGlsZHJlbiBhcyAkY2hpbGRub2RlICkgewoJaWYoICRjaGlsZG5vZGUtPm5vZGVOYW1lID09ICRub2RlbmFtZSApIHsKCSAgcmV0dXJuICRjaGlsZG5vZGU7Cgl9CiAgfQogIHJldHVybiBOVUxMOwp9CgpmdW5jdGlvbiBfZ2V0X2NoaWxkbm9kZV92YWx1ZSgmJHBhcmVudCwkbm9kZW5hbWUpCnsKICAkb2IgPSBfZ2V0X2NoaWxkbm9kZSgkcGFyZW50LCRub2RlbmFtZSk7CiAgaWYoIGlzX29iamVjdCgkb2IpICkgcmV0dXJuICRvYi0+bm9kZVZhbHVlOwp9CgovLwovLyBpbml0aWFsaXplCi8vCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKJGlnbm9yZV9hZGRyZXNzID0gMDsKJGRvX2NvbnZlcnRfYWRkcmVzcyA9IDA7CiRzdGF0dXMgPSAnZHJhZnQnOwokaW1wb3J0ZWQgPSAwOwokY2F0ZWdvcnkgPSAtMTsKJGhpZXJhcmNoeSA9IC0xOwokY2hlY2tfZHVwbGljYXRlX25hbWUgPSAwOwokZXJyb3JzID0gYXJyYXkoKTsKJGNhbl9kb19sb29rdXBzID0gY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKTsKCi8vCi8vIGhhbmRsZSBmb3JtIGRhdGEKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApIHsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICBzZXRfdGltZV9saW1pdCgwKTsKCiAgaWYoIGlzc2V0KCRwYXJhbXNbJ3N0YXR1cyddKSApICRzdGF0dXMgPSB0cmltKCRwYXJhbXNbJ3N0YXR1cyddKTsKICBpZiggaXNzZXQoJHBhcmFtc1snaWdub3JlX2FkZHJlc3MnXSkgKSAkaWdub3JlX2FkZHJlc3MgPSAoaW50KSRwYXJhbXNbJ2lnbm9yZV9hZGRyZXNzJ107CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RvX2NvbnZlcnRfYWRkcmVzcyddKSApICRkb19jb252ZXJ0X2FkZHJlc3MgPSAoaW50KSRwYXJhbXNbJ2RvX2NvbnZlcnRfYWRkcmVzcyddOwogIGlmKCBpc3NldCgkcGFyYW1zWydjaGVja19kdXBsaWNhdGVfbmFtZSddKSApICRjaGVja19kdXBsaWNhdGVfbmFtZSA9IChpbnQpJHBhcmFtc1snY2hlY2tfZHVwbGljYXRlX25hbWUnXTsKICBpZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkgKSAkY2F0ZWdvcnkgPSAoaW50KSRwYXJhbXNbJ2NhdGVnb3J5J107CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeSddKSApICRoaWVyYXJjaHkgPSAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeSddOwoKICAkbmFtZSA9ICRpZC4na21sZmlsZSc7CiAgaWYoICFpc3NldCgkX0ZJTEVTKSB8fAoJICAhaXNzZXQoJF9GSUxFU1skbmFtZV0pIHx8IAoJICAkX0ZJTEVTWyRuYW1lXVsnZXJyb3InXSA+IDAgfHwKCSAgJF9GSUxFU1skbmFtZV1bJ3NpemUnXSA9PSAwICkgewogICAgLy9iYWQgdXBsb2FkCiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3VwbG9hZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7CiAgfQoKICAkZG9jID0gbmV3IERvbURvY3VtZW50KCk7CiAgJGRvYy0+bG9hZCgkX0ZJTEVTWyRuYW1lXVsndG1wX25hbWUnXSk7CiAgJHBsYWNlcyA9ICRkb2MtPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdQbGFjZW1hcmsnKTsKICBpZiggJHBsYWNlcy0+bGVuZ3RoID09IDAgKSB7CgkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ttbF9ub3BsYWNlbWFya3MnKSk7CgkkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwogIH0KCiAgZm9yKCAkaWR4ID0gMDsgJGlkeCA8ICRwbGFjZXMtPmxlbmd0aDsgJGlkeCsrICkgewoJJG5vZGUgPSAkcGxhY2VzLT5pdGVtKCRpZHgpOwoJaWYoICEkbm9kZSApIGNvbnRpbnVlOwoKCSRhZGRyZXNzID0gJyc7CgkkbmFtZSA9ICcnOwoJJGRlc2NyaXB0aW9uID0gJyc7CgkkbGF0aXR1ZGUgPSAnJzsKCSRsb25naXR1ZGUgPSAnJzsKCSRwaG9uZSA9ICcnOwoKCSRuYW1lICAgID0gX2dldF9jaGlsZG5vZGVfdmFsdWUoJG5vZGUsJ25hbWUnKTsKCSRkZXNjICAgID0gX2dldF9jaGlsZG5vZGVfdmFsdWUoJG5vZGUsJ2Rlc2NyaXB0aW9uJyk7CgkkcGhvbmUgICA9IF9nZXRfY2hpbGRub2RlX3ZhbHVlKCRub2RlLCdwaG9uZW51bWJlcicpOwoKCS8vIGdldCB0aGUgYWRkcmVzcy4KCWlmKCAhJGlnbm9yZV9hZGRyZXNzICkgewoJICAkX2FkZHJlc3NfTiA9IF9nZXRfY2hpbGRub2RlKCRub2RlLCdhZGRyZXNzJyk7CgkgIGlmKCAhJF9hZGRyZXNzX04gKSB7CgkJJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ttbGltcG9ydF9ub2FkZHJlc3MnLCRpZHgpOwoJCWNvbnRpbnVlOwoJICB9CgkJCgkgICRhZGRyZXNzID0gJF9hZGRyZXNzX04tPm5vZGVWYWx1ZTsKCX0KCgkvLyBnZXQgdGhlIGNvb3JkaW5hdGVzLgoJewoJICAkX3BvaW50X04gID0gX2dldF9jaGlsZG5vZGUoJG5vZGUsJ1BvaW50Jyk7CgkgIGlmKCAhJF9wb2ludF9OICkgewoJCSRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9rbWxpbXBvcnRfbm9wb2ludCcsJGlkeCk7CgkJY29udGludWU7CgkgIH0KCSAgJF9jb29yZHNfTiAgPSBfZ2V0X2NoaWxkbm9kZSgkX3BvaW50X04sJ2Nvb3JkaW5hdGVzJyk7CgkgIGlmKCAhJF9jb29yZHNfTiApIHsKCQkkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3Jfa21saW1wb3J0X25vcG9pbnQnLCRpZHgpOwoJCWNvbnRpbnVlOwoJICB9CgkgICRjb29yZHMgPSAkX2Nvb3Jkc19OLT5ub2RlVmFsdWU7CgkgIGxpc3QoJGxvbmdpdHVkZSwkbGF0aXR1ZGUpID0gZXhwbG9kZSgnLCcsJGNvb3Jkcyk7Cgl9CgoJaWYoICRhZGRyZXNzICE9ICcnICYmICgkbGF0aXR1ZGUgPT0gJycgfHwgJGxvbmdpdHVkZSA9PSAnJykgJiYgJGRvX2NvbnZlcnRfYWRkcmVzcyA9PSAxICkgewoJICAkY29vcmRzID0gY2RfdXRpbHM6Omdlb2xvY2F0ZSgkYWRkcmVzcyk7CgkgIGlmKCBpc19hcnJheSgkY29vcmRzKSApIHsKCQkkbGF0aXR1ZGUgPSAkY29vcmRzWydsYXQnXTsKCQkkbG9uZ2l0dWRlID0gJGNvb3Jkc1snbG9uJ107CgkgIH0KCX0KCgkvLyBnb3QgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGFkZCBhIG5vZGUuCglpZiggJG5hbWUgIT0gJycgJiYgKCRhZGRyZXNzICE9ICcnIHx8ICgkbGF0aXR1ZGUgIT0gJycgJiYgJGxvbmdpdHVkZSAhPSAnJykpICkgewoJICBpZiggJGNoZWNrX2R1cGxpY2F0ZV9uYW1lICkgewoJCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgICAgICAgIFdIRVJFIGNvbXBhbnlfbmFtZSA9ID8nOwoJCSR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJG5hbWUpKTsKCQlpZiggJHRtcCApIHsKCQkgIC8vIGl0J3MgYSBkdXBsaWNhdGUKCQkgIC8vIGNvbnRpbnVlIHdpdGhvdXQgZXJyb3IKCQkgIGNvbnRpbnVlOwoJCX0KCSAgfQoKCSAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMKICAgICAgICAgICAgICAgIChjb21wYW55X25hbWUsIGFkZHJlc3MsIHRlbGVwaG9uZSwgZGV0YWlscywgc3RhdHVzLCBoaWVyX2lkLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LE5PVygpLE5PVygpKSc7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lLCRhZGRyZXNzLCRwaG9uZSwkZGVzYywkc3RhdHVzLCRoaWVyYXJjaHksJGxhdGl0dWRlLCRsb25naXR1ZGUpKTsKCSAgaWYoICEkZGJyICkgewoJCSRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9rbWxpbXBvcnRfZGJlcnJvcicsJGlkeCk7CgkJY29udGludWU7CgkgIH0KCSAgJG5ld19pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgoJICBpZiggJGNhdGVnb3J5ID4gMCApIHsKCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcwogICAgICAgICAgICAgICAgICAoY29tcGFueV9pZCxjYXRlZ29yeV9pZCxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyxOT1coKSxOT1coKSknOwoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuZXdfaWQsJGNhdGVnb3J5KSk7CgkgIH0KCgkgICRpbXBvcnRlZCsrOwoJfQogIH0KCiAgLy8gd29vdCwgZG9uZQogIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0ltcG9ydGVkICcuJGltcG9ydGVkLicgY29tcGFuaWVzIGZyb20gS01MJyk7CiAgJHNtYXJ0eS0+YXNzaWduKCdmaW5pc2hlZCcsMSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdpbXBvcnRlZCcsJGltcG9ydGVkKTsKICBpZiggY291bnQoJGVycm9ycykgKSB7Cgkkc21hcnR5LT5hc3NpZ24oJ2Vycm9yY291bnQnLGNvdW50KCRlcnJvcnMpKTsKCSRzbWFydHktPmFzc2lnbignZXJyb3JzJywkZXJyb3JzKTsKICB9Cn0KCi8vCi8vIGJ1aWxkIHRoZSBmb3JtCi8vCiRzdGF0dXNlcyA9IGFycmF5KCR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKT0+J3B1Ymxpc2hlZCcsCgkJICAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0JywKCQkgICR0aGlzLT5MYW5nKCdkaXNhYmxlZCcpPT4nZGlzYWJsZWQnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXN0ZXh0JywkdGhpcy0+TGFuZygnc3RhdHVzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0c3RhdHVzJywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3N0YXR1cycsICRzdGF0dXNlcywtMSwnZHJhZnQnKSk7CiRzbWFydHktPmFzc2lnbignY2FuX2RvX2xvb2t1cHMnLCRjYW5fZG9fbG9va3Vwcyk7CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkJCSR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2ltcG9ydGttbCcsJycsYXJyYXkoKSwKCQkJCQkJCQkJCSBmYWxzZSwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiR0bXAgPSBjZF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoVFJVRSk7CmlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAkY2F0bGlzdCA9IGFycmF5KC0xPT4kdGhpcy0+TGFuZygnbm9uZScpKTsKICBmb3JlYWNoKCAkdG1wIGFzICRpZCA9PiAkb25lICkgewoJJGNhdGxpc3RbJGlkXSA9ICRvbmUtPm5hbWU7CiAgfQogICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdGxpc3QpOwp9CiR0bXAgPSBjZF91dGlsczo6Z2V0X2hpZXJhcmNoeV9saXN0KCk7CmlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoaWVzJyxhcnJheV9mbGlwKCR0bXApKTsKfQoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdpbXBvcnRrbWwudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.movefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJG9yZGVyID0gMTsKJGZkaWQgPSAkcGFyYW1zWydmZGlkJ107CgojR3JhYiBuZWNlc3NhcnkgaW5mbyBmb3IgZml4aW5nIHRoZSBpdGVtX29yZGVyCiRvcmRlciA9ICRkYi0+R2V0T25lKCJTRUxFQ1QgaXRlbV9vcmRlciBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgV0hFUkUgaWQgPSA/IiwgYXJyYXkoJGZkaWQpKTsKJHRpbWUgPSAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSk7CgppZiAoJHBhcmFtc1snZGlyJ10gPT0gImRvd24iKQp7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgU0VUIGl0ZW1fb3JkZXIgPSAoaXRlbV9vcmRlciAtIDEpLCBtb2RpZmllZF9kYXRlID0gJy4kdGltZS4nIFdIRVJFIGl0ZW1fb3JkZXIgPSA/JzsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRvcmRlciArIDEpKTsKCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBTRVQgaXRlbV9vcmRlciA9IChpdGVtX29yZGVyICsgMSksIG1vZGlmaWVkX2RhdGUgPSAnLiR0aW1lLicgV0hFUkUgaWQgPSA/JzsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmZGlkKSk7Cn0KZWxzZSBpZiAoJHBhcmFtc1snZGlyJ10gPT0gInVwIikKewoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgKyAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpdGVtX29yZGVyID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIgLSAxKSk7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgU0VUIGl0ZW1fb3JkZXIgPSAoaXRlbV9vcmRlciAtIDEpLCBtb2RpZmllZF9kYXRlID0gJy4kdGltZS4nIFdIRVJFIGlkID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwp9CgokcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX3NldHRpbmdzJywgJycsICRwYXJhbXMpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgojCiMgSW5pdGlhbGl6YXRpb24KIwokcG9zdGFscGFybXMgPSBhcnJheSgpOwokbmV3cGFybXMgPSBhcnJheSgpOwokcmVzdWx0cGFnZSA9ICRyZXR1cm5pZDsKJGVycm9ycyA9IGFycmF5KCk7CiRmaWVsZGRlZnMgPSBudWxsOwokbWFzdGVyc2VhcmNoID0gKGludClnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ21hc3RlcnNlYXJjaCcpOwokc3Vic2VhcmNoID0gKGludClnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ3N1YnNlYXJjaCcpOwppZiggJG1hc3RlcnNlYXJjaCAmJiAkc3Vic2VhcmNoICkgJHN1YnNlYXJjaCA9IEZBTFNFOyAvLyBvbmx5IG9uZSB0eXBlIG9mIHNlYXJjaCBzYXZpbmcsIHRoYW5rIHlvdS4KJHNlc3MgPSBuZXcgY2dlX3Nlc3Npb24oJ0NEX1NFQVJDSCcpOwokdG1wID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnMoKTsKaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICRmaWVsZGRlZnMgPSBhcnJheSgpOwogIGZvcmVhY2goICR0bXAgYXMgJGZpZWxkICkgewoJJGZpZWxkZGVmc1skZmllbGRbJ25hbWUnXV0gPSAkZmllbGQ7CiAgfQp9CgojCiMgR2V0IHBhcmFtZXRlcnMKIwppZiggaXNzZXQoJHBhcmFtc1sncmVzdWx0cGFnZSddKSApIHsKICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1sncmVzdWx0cGFnZSddKTsKICBpZiggJHRtcCApICRyZXN1bHRwYWdlID0gJHRtcDsKICB1bnNldCgkcGFyYW1zWydyZXN1bHRwYWdlJ10pOwp9CgppZiggJG1hc3RlcnNlYXJjaCAmJiAkc2Vzcy0+ZXhpc3RzKCdtYXN0ZXInKSApIHsKICAkbmV3cGFybXMgPSAkc2Vzcy0+Z2V0KCdtYXN0ZXInKTsKfQppZiggJHN1YnNlYXJjaCAmJiAkc2Vzcy0+ZXhpc3RzKCdzdWInKSApIHsKICAkdG1wID0gJHNlc3MtPmdldCgnc3ViJyk7CiAgJG5ld3Bhcm1zID0gYXJyYXlfbWVyZ2UoJG5ld3Bhcm1zLCR0bXApOwp9CgojCiMgSGFuZGxlIGZvcm0gc3VibWlzc2lvbgojCmlmKCBpc3NldCgkcGFyYW1zWydjZF9yZXNldGFsbCddKSApIHsKICAkc2Vzcy0+Y2xlYXIoKTsKICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewoJaWYoIHN0YXJ0c3dpdGgoJGtleSwnY2RfJykgfHwgc3RhcnRzd2l0aCgka2V5LCdjZHhfJykgKSB1bnNldCgkcGFyYW1zWyRrZXldKTsKICB9Cn0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2RfcmVzZXQnXSkgKSB7CiAgJHNlc3MtPmNsZWFyKCdtYXN0ZXInKTsKICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewoJaWYoIHN0YXJ0c3dpdGgoJGtleSwnY2RfJykgfHwgc3RhcnRzd2l0aCgka2V5LCdjZHhfJykgKSB1bnNldCgkcGFyYW1zWyRrZXldKTsKICB9Cn0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2Rfc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJ2Rvc2VhcmNoJ10pICkgewogIHRyeSB7CgkvLwoJLy8gZmlyc3QgcGFyc2Ugb2YgcGFyYW1ldGVycwoJLy8gY2xlYW4gdGhlbSB1cCBhbmQgZG8gYmFzaWMgdmFsaWRhdGlvbi4KCS8vCglmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewoJICAkb3JpZ2tleSA9ICRrZXk7CgkgIGlmKCBzdGFydHN3aXRoKCRrZXksJ2NkXycpICkgJGtleSA9IHN1YnN0cigka2V5LDMpOwoJICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSB0cmltKCR2YWx1ZSk7CgkgIGlmKCBpbl9hcnJheSgka2V5LGFycmF5KCdzdWJtaXQnLCdkb3NlYXJjaCcsJ2FjdGlvbicsJ3NlYXJjaGtleScsJ3NyY3NlYXJjaGtleScsJ3NlYXJjaGZvcm10ZW1wbGF0ZScpKSApIGNvbnRpbnVlOwoJICBpZiggZW1wdHkoJHZhbHVlKSApIGNvbnRpbnVlOwoKCSAgc3dpdGNoKCAka2V5ICkgewoJICBjYXNlICduYW1lJzoKCSAgY2FzZSAncGhyYXNlJzoKCQkkbmV3cGFybXNbJGtleV0gPSBodG1sc3BlY2lhbGNoYXJzX2RlY29kZSgkdmFsdWUpOwoJCWJyZWFrOwoKCSAgY2FzZSAnYWRkcmVzcyc6CgkgIGNhc2UgJ2NhdGVnb3J5JzoKCQkkbmV3cGFybXNbJGtleV0gPSAkdmFsdWU7CgkJYnJlYWs7CgoJICBjYXNlICdsYXQnOgoJICBjYXNlICdsYXRpdHVkZSc6CgkJLy8gdmFsaWRhdGUgZmxvYXQKCQlpZiggJHZhbHVlICE9ICcnICYmIChmbG9hdCkkdmFsdWUgPT0gMC4wICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfcGFyYW0nLCRrZXkpKTsKCQkka2V5ID0gJ2xhdCc7CgkJJG5ld3Bhcm1zWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwoKCSAgY2FzZSAnbG9uZyc6CgkgIGNhc2UgJ2xvbmdpdHVkZSc6CgkJLy8gdmFsaWRhdGUgZmxvYXQKCQlpZiggJHZhbHVlICE9ICcnICYmIChmbG9hdCkkdmFsdWUgPT0gMC4wICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfcGFyYW0nLCRrZXkpKTsKCQkka2V5ID0gJ2xvbmcnOwoJCSRuZXdwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKCgkgIGNhc2UgJ25hbWVfdHlwZSc6CgkJJHZhbHVlID0gc3RydG9sb3dlcigkdmFsdWUpOwoJCWlmKCAhaW5fYXJyYXkoJHZhbHVlLGFycmF5KCdleGFjdCcsJ2xpa2UnKSkgKSB7CgkJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJGtleSkuJzogJy4kdmFsdWUpOwoJCX0KCQkkbmV3cGFybXNbJGtleV0gPSAkdmFsdWU7CgkJYnJlYWs7CgoJICBjYXNlICdhZGRyX3R5cGUnOgoJICBjYXNlICdhZGRyZXNzX3R5cGUnOgoJCSR2YWx1ZSA9IHN0cnRvbG93ZXIoJHZhbHVlKTsKCQlpZiggIWluX2FycmF5KCR2YWx1ZSxhcnJheSgnc3Vic3RyJywnbG9va3VwJykpICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfcGFyYW0nLCRrZXkpKTsKCQkka2V5ID0gJ2FkZHJfdHlwZSc7CgkJJG5ld3Bhcm1zWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwoKCSAgY2FzZSAncmFkaXVzJzoKCQkvLyB2YWxpZGF0ZSBmbG9hdC4KCQlpZiggKGZsb2F0KSR2YWx1ZSA9PSAwLjAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJGtleSkuJzogJy4kdmFsdWUpOwoJCSRuZXdwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKCgkgIGNhc2UgJ3VuaXRzJzoKCQkvLyB2YWxpZGF0ZSBtaWxlcyBvciBraWxvbWV0ZXJzCgkJJHZhbHVlID0gc3RydG9sb3dlcigkdmFsdWUpOwoJCWlmKCAhaW5fYXJyYXkoJHZhbHVlLGFycmF5KCdtaScsJ21pbGUnLCdtaWxlcycsJ2ttJywnaycpKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfaW52YWxpZHVuaXRzJykpOwoJCSRuZXdwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKCgkgIGNhc2UgJ29yaWdwYWdlJzoKCSAgY2FzZSAnc3VibWl0JzoKCSAgY2FzZSAnY2FuY2VsJzoKCSAgY2FzZSAncmVzdWx0cGFnZSc6CgkgIGNhc2UgJ3N1bW1hcnl0ZW1wbGF0ZSc6CgkgIGNhc2UgJ2RldGFpbHBhZ2UnOgoJICBjYXNlICdkZXRhaWx0ZW1wbGF0ZSc6CgkgIGNhc2UgJ2FjdGlvbic6CgkgIGNhc2UgJ21vZHVsZSc6CgkgIGNhc2UgJ2Rvc2VhcmNoJzoKCSAgY2FzZSAnY2R4X2ZpZWxkJzoKCQkvLyBkbyBub3RoaW5nLgoJCWJyZWFrOwoKCSAgY2FzZSAncG9zdGFsJzoKCSAgY2FzZSAncG9zdGFsY2hhcnMnOgoJICBjYXNlICdjb3VudHJ5JzoKCSAgY2FzZSAnc2VhcmNoYWRkcmVzcyc6CgkJLy8gZG9pbmcgYSBwb3N0YWwgc2VhcmNoICh1bmxlc3MgbGF0L2xvbmcgYXJlIGFsc28gc3BlY2lmaWVkKQoJCSRwb3N0YWxwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKCgkgIGRlZmF1bHQ6CgkJJG5ld3Bhcm1zWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwoJICB9Cgl9CgoJaWYoIGlzc2V0KCRwYXJhbXNbJ2NkeF9maWVsZCddKSAmJiBpc19hcnJheSgkcGFyYW1zWydjZHhfZmllbGQnXSkgJiYgY291bnQoJHBhcmFtc1snY2R4X2ZpZWxkJ10pICkgewoJICAkdmFsdWUgPSAkcGFyYW1zWydjZHhfZmllbGQnXTsKCSAgJHRtcCA9IGFycmF5KCk7CgkgIGZvcmVhY2goICR2YWx1ZSBhcyAkb25lICkgewoJCWlmKCAhaXNfYXJyYXkoJG9uZSkgKSBjb250aW51ZTsKCQlpZiggIWlzc2V0KCRvbmVbJ2ZsZG5hbWUnXSkgfHwgZW1wdHkoJG9uZVsnZmxkbmFtZSddKSApIGNvbnRpbnVlOwoJCWlmKCAhaXNzZXQoJG9uZVsnZmxkdmFsJ10pIHx8IGVtcHR5KCRvbmVbJ2ZsZHZhbCddKSB8fCAkb25lWydmbGR2YWwnXSA9PSAnKipJR05PUkUqKicgKSBjb250aW51ZTsKCQlpZiggIWlzc2V0KCRmaWVsZGRlZnNbJG9uZVsnZmxkbmFtZSddXSkgKSBjb250aW51ZTsKCQlpZiggIWlzc2V0KCRvbmVbJ2V4cHInXSkgfHwgZW1wdHkoJG9uZVsnZXhwciddKSApICRvbmVbJ2V4cHInXSA9ICdBVVRPJzsKCQlpZiggIWlzc2V0KCRvbmVbJ3R5cGUnXSkgfHwgZW1wdHkoJG9uZVsndHlwZSddKSApICRvbmVbJ3R5cGUnXSA9IG51bGw7CgkJJHRtcFtdID0gJG9uZTsKCSAgfQoJICAkbmV3cGFybXNbJ2ZpZWxkcyddID0gJHRtcDsKCX0KCgkvLyBkb25lIHZhbGlkYXRpbmcgaW5wdXQgcGFyYW1zLi4uIHNhdmUgdGhlbQoJJHNhdmVkc2VhcmNoID0gJG5ld3Bhcm1zOwoKCS8vIGRvIGFuIGFkZHJlc3MgbG9va3VwIGlmIHdlIG5lZWQgdG8uCgkvLyBhbmQgd2UgZG9uJ3QgYWxyZWR5IGhhdmUgbGF0aXR1ZGUvbG9uZ2l0dWRlCglpZiggaXNzZXQoJG5ld3Bhcm1zWydhZGRyZXNzJ10pICYmIGdldF9wYXJhbWV0ZXJfdmFsdWUoJG5ld3Bhcm1zLCdhZGRyX3R5cGUnLCdleGFjdCcpID09ICdsb29rdXAnICkgewoJICBpZiggIWlzc2V0KCRuZXdwYXJtc1snbGF0J10pICYmICFpc3NldCgkbmV3cGFybXNbJ2xvbmcnXSkgKSB7CgkJJGNvb3JkcyA9IGNkX3V0aWxzOjpnZW9sb2NhdGUoJG5ld3Bhcm1zWydhZGRyZXNzJ10pOwoJCWlmKCAkY29vcmRzICE9PSBmYWxzZSApIHsKCQkgICRuZXdwYXJtc1snbGF0J10gPSAkY29vcmRzWydsYXQnXTsKCQkgICRuZXdwYXJtc1snbG9uZyddID0gJGNvb3Jkc1snbG9uJ107CgkJICB1bnNldCgkbmV3cGFybXNbJ2FkZHJlc3MnXSk7IC8vIGRvbid0IHdhbm5hIHVzZSB0aGUgYWRkcmVzcyBhZ2FpbiBmb3IgZmlsdGVyaW5nLgoJCX0KCQllbHNlIHsKCQkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9hZGRyZXNzX2xvb2t1cCcsJGFkZHJlc3MpKTsKCQl9CgkgIH0KCX0KCgkvLyBkbyBwb3N0Y29kZSBzZWFyY2ggaWYgbmVjZXNzYXJ5IChpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSkKCWlmKCBjb3VudCgkcG9zdGFscGFybXMpICYmIGlzc2V0KCRwb3N0YWxwYXJtc1sncG9zdGFsJ10pICYmICRwb3N0YWxwYXJtc1sncG9zdGFsJ10gIT0gJycgKSB7CgkgICRzZWFyY2hhZGRyZXNzID0gMDsKCSAgaWYoIGlzc2V0KCRwb3N0YWxwYXJtc1snc2VhcmNoYWRkcmVzcyddKSApICRzZWFyY2hhZGRyZXNzID0gKGludCkkcG9zdGFscGFybXNbJ3NlYXJjaGFkZHJlc3MnXTsKCSAgaWYoICFpc3NldCgkbmV3cGFybXNbJ2xhdCddKSAmJiAhaXNzZXQoJG5ld3Bhcm1zWydsb25nJ10pICkgewoJCS8vIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBhIGxhdGl0dWRlL2xvbmdpdHVkZQoJCSRwb3N0YWwgPSAkcG9zdGFscGFybXNbJ3Bvc3RhbCddOwoJCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Bvc3Rjb2RlJyk7CgkJaWYoICRtb2QgKSB7CgkJICAvLyBmb3VuZCB0aGUgcG9zdGNvZGUgbW9kdWxlLgoJCSAgJGNvdW50cnkgPSAnVVMnOwoJCSAgJHBvc3RjaGFycyA9ICcnOwoJCSAgaWYoIGlzc2V0KCRwb3N0YWxwYXJtc1snY291bnRyeSddKSAmJiBzdHJsZW4oJHBvc3RhbHBhcm1zWydjb3VudHJ5J10pID09IDIgKSAkY291bnRyeSA9IHN0cnRvdXBwZXIoJHBvc3RhbHBhcm1zWydjb3VudHJ5J10pOwoJCSAgaWYoIGlzc2V0KCRwb3N0YWxwYXJtc1sncG9zdGNoYXJzJ10pICYmIGlzX2ludCgkcG9zdGFscGFybXNbJ3Bvc3RjaGFycyddKSApICRwb3N0Y2hhcnMgPSAoaW50KSRwb3N0YWxwYXJtc1sncG9zdGNoYXJzJ107CgoJCSAgJHBvc3RhbF9kYXRhID0gJG1vZC0+TG9va3VwX1ppcCgkY291bnRyeSwkcG9zdGFsLCRwb3N0Y2hhcnMpOwoJCSAgaWYoICFpc19hcnJheSgkcG9zdGFsX2RhdGEpICkgewoJCQkvLyBpdCBkaWRuJ3Qgd29yawoJCQl0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcG9zdGNvZGVfbG9va3VwJywkcG9zdGFsKSk7CgkJICB9CgkJICBlbHNlIHsKCQkJJG5ld3Bhcm1zWydsYXQnXSA9ICRwb3N0YWxfZGF0YVsnbGF0aXR1ZGUnXTsKCQkJJG5ld3Bhcm1zWydsb25nJ10gPSAkcG9zdGFsX2RhdGFbJ2xvbmdpdHVkZSddOwoJCSAgfQoJCX0KCSAgfQoJICBpZiggJHNlYXJjaGFkZHJlc3MgJiYgaXNzZXQoJHBvc3RhbHBhcm1zWydwb3N0YWwnXSkgKSAkbmV3cGFybXNbJ2FkZHJlc3MyJ10gPSAkcG9zdGFscGFybXNbJ3Bvc3RhbCddOwoJfQoKCS8vIHZhbGlkYXRlIG5ld3Bhcm1zCglpZiggaXNzZXQoJG5ld3Bhcm1zWyduYW1lJ10pICkgewoJICBpZiggZ2V0X3BhcmFtZXRlcl92YWx1ZSgkbmV3cGFybXMsJ25hbWVfdHlwZScsJ2V4YWN0JykgPT0gJ2xpa2UnICkgJG5ld3Bhcm1zWyduYW1lJ10gPSAnKicuJG5ld3Bhcm1zWyduYW1lJ10uJyonOwoJfQoJaWYoIGlzc2V0KCRuZXdwYXJtc1snYWRkcmVzcyddKSApIHsKCSAgaWYoIGdldF9wYXJhbWV0ZXJfdmFsdWUoJG5ld3Bhcm1zLCdhZGRyX3R5cGUnLCdzdWJzdHInKSA9PSAnc3Vic3RyJyApICRuZXdwYXJtc1snYWRkcmVzcyddID0gJyonLiRuZXdwYXJtc1snYWRkcmVzcyddLicqJzsKCX0KCWlmKCBpc3NldCgkbmV3cGFybXNbJ25hbWVfdHlwZSddKSApIHVuc2V0KCRuZXdwYXJtc1snbmFtZV90eXBlJ10pOwoJaWYoIGlzc2V0KCRuZXdwYXJtc1snYWRkcl90eXBlJ10pICkgdW5zZXQoJG5ld3Bhcm1zWydhZGRyX3R5cGUnXSk7CglpZiggZW1wdHkoJG5ld3Bhcm1zWydsYXQnXSkgfHwgZW1wdHkoJG5ld3Bhcm1zWydsb25nJ10pICkgewoJICB1bnNldCgkbmV3cGFybXNbJ2xhdCddKTsKCSAgdW5zZXQoJG5ld3Bhcm1zWydsb25nJ10pOwoJICB1bnNldCgkbmV3cGFybXNbJ3JhZGl1cyddKTsKCSAgdW5zZXQoJG5ld3Bhcm1zWyd1bml0cyddKTsKCX0KCWVsc2UgaWYoICFpc3NldCgkbmV3cGFybXNbJ3JhZGl1cyddKSApIHsKCSAgdW5zZXQoJG5ld3Bhcm1zWydsYXQnXSk7CgkgIHVuc2V0KCRuZXdwYXJtc1snbG9uZyddKTsKCSAgdW5zZXQoJG5ld3Bhcm1zWydyYWRpdXMnXSk7CgkgIHVuc2V0KCRuZXdwYXJtc1sndW5pdHMnXSk7Cgl9CgoJLy8KCS8vIGNyZWF0ZSB0aGUgZmlsdGVyIG9iamVjdCBhbmQgcXVlcnkuCgkvLwoJaWYoIGlzc2V0KCRuZXdwYXJtc1sncmFkaXVzJ10pICYmIGlzc2V0KCRuZXdwYXJtc1sndW5pdHMnXSkgKSB7CgkgIC8vIGZ1cnRoZXIgcHJvY2Vzc2luZwoJICAkbmV3cGFybXNbJ3JhZGl1cyddIC49ICRuZXdwYXJtc1sndW5pdHMnXTsKCSAgdW5zZXQoJG5ld3Bhcm1zWyd1bml0cyddKTsKCX0KCgkkZmlsdGVyID0gbmV3IGNkX2NvbXBhbnlfZmlsdGVyKCRuZXdwYXJtcyk7CgoJLy8gcXVlcnkgMSAuLi4gZ2V0IGFsbCB0aGUgY29tcGFueSBpZCdzCglpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NvbGxlY3RzdGF0cycpICkgewoJICAkdG1wZmlsdGVyID0gY2xvbmUgJGZpbHRlcjsgLy8gJGZpbHRlciBpcyBhbiBvYmplY3QsIG5vdCBhbiBhcnJheQoJICAkdG1wZmlsdGVyWydwYWdlbGltaXQnXSA9IDEwMDAwMDA7CgkgICR0bXBfcXVlcnkgPSBuZXcgY2RfY29tcGFueV9xdWVyeSgkdG1wZmlsdGVyKTsKCSAgJGl0ZW1fbGlzdCA9IGFycmF5KCk7CgkgIHdoaWxlKCAhJHRtcF9xdWVyeS0+RU9GKCkgKSB7CgkJJGl0ZW1fbGlzdFtdID0gJHRtcF9xdWVyeS0+ZmllbGRzWydpZCddOwoJCSR0bXBfcXVlcnktPk1vdmVOZXh0KCk7CgkgIH0KCSAgaWYoIGNvdW50KCRpdGVtX2xpc3QpICkgY2RfdXRpbHM6OnNhdmVfc2VhcmNoX3RvX3N0YXRzKCRmaWx0ZXIsJGl0ZW1fbGlzdCk7Cgl9CgoJLy8gcXVlcnkgMiAuLi4gZ2V0IGRhdGEgZm9yIHBhZ2luYXRpb24uCgkkcXVlcnkgPSBuZXcgY2RfY29tcGFueV9xdWVyeSgkZmlsdGVyKTsKCSRwYWdpbmF0aW9uID0gJHF1ZXJ5LT5nZXRfcGFnaW5hdGlvbigpOwoJJHBhZ2luYXRpb24tPnNldF9leHRyYXBhcmFtcyhhcnJheSgnY2RfZG9zZWFyY2gnPT4xKSk7CgkkcGFnZSA9ICRwYWdpbmF0aW9uLT5nZXRfY3VycmVudF9wYWdlKCk7CgoJLy8gZ2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eS4KCSRzbWFydHktPmFzc2lnbignZmlsdGVyJywkZmlsdGVyKTsKCSRzbWFydHktPmFzc2lnbignaXRlbXMnLCRxdWVyeS0+Z2V0X3Jlc3VsdHMoJGlkLCRyZXR1cm5pZCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCRxdWVyeS0+Z2V0X3Jlc3VsdF9jb3VudCgpKTsKCSRzbWFydHktPmFzc2lnbigndG90YWxtYXRjaGVzJywkcXVlcnktPmdldF90b3RhbF9tYXRjaGVzKCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdwYWdpbmF0aW9uJywkcGFnaW5hdGlvbik7Cgkkc21hcnR5LT5hc3NpZ24oJ3BhZ2V0ZXh0JywkdGhpcy0+TGFuZygncGFnZScpKTsKCSRzbWFydHktPmFzc2lnbignb2Z0ZXh0JywkdGhpcy0+TGFuZygnb2YnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ3BhZ2Vjb3VudCcsJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdjdXJwYWdlJywkcGFnZSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9saXN0JyxhcnJheV9mbGlwKGNkX3V0aWxzOjpnZXRfaGllcmFyY2h5X2xpc3QoKSkpOwoKCWlmKCAkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfY291bnQoKSA+IDEgKSB7CgkgIGlmKCAkcGFnZSA9PSAxICkgewoJCSRzbWFydHktPmFzc2lnbignZmlyc3RsaW5rJywkdGhpcy0+TGFuZygnZmlyc3RwYWdlJykpOwoJCSRzbWFydHktPmFzc2lnbigncHJldmxpbmsnLCR0aGlzLT5MYW5nKCdwcmV2cGFnZScpKTsKCSAgfQoJICBlbHNlIHsKCQkkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHBhZ2luYXRpb24tPmdldF9wYWdlX2xpbmsoMSwkdGhpcy0+TGFuZygnZmlyc3RwYWdlJykpKTsKCQkkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfbGluaygkcGFnaW5hdGlvbi0+Z2V0X2N1cnJlbnRfcGFnZSgpLTEsJHRoaXMtPkxhbmcoJ3ByZXZwYWdlJykpKTsKCSAgfQoJICBpZiggJHBhZ2UgPT0gJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCkgKSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpOwoJCSRzbWFydHktPmFzc2lnbignbmV4dGxpbmsnLCR0aGlzLT5MYW5nKCduZXh0cGFnZScpKTsKCSAgfQoJICBlbHNlIHsKCQkkc21hcnR5LT5hc3NpZ24oJ2xhc3RsaW5rJywkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfbGluaygkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfY291bnQoKSwkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSkpOwoJCSRzbWFydHktPmFzc2lnbignbmV4dGxpbmsnLCRwYWdpbmF0aW9uLT5nZXRfcGFnZV9saW5rKCRwYWdpbmF0aW9uLT5nZXRfY3VycmVudF9wYWdlKCkrMSwkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSkpOwoJICB9Cgl9CgoJLy8gY2xlYXIgYW55IHN1YnNlYXJjaCBpZiB0aGlzIGlzIGEgbWFzdGVyIHNlYXJjaAoJaWYoICRtYXN0ZXJzZWFyY2ggKSAkc2Vzcy0+Y2xlYXIoJ3N1YicpOwoKCS8vIHNhdmUgdGhlIHNlYXJjaCBwYXJhbWV0ZXJzIHRvIHRoZSBzZXNzaW9uLgoJaWYoIGlzX2FycmF5KCRzYXZlZHNlYXJjaCkgJiYgY291bnQoJHNhdmVkc2VhcmNoKSApIHsKCSAgLy8gZml4IHVwIHNhdmVkIHNlYXJjaCBzbyBpdCdzIGVhc2llciB0byBwcmVwb3B1bGF0ZSBzdHVmZiBpbiB0aGUgZm9ybS4KCSAgJGZpZWxkc19vID0gJHNhdmVkc2VhcmNoWydmaWVsZHMnXTsKCSAgJGZpZWxkcyA9IGFycmF5KCk7CgkgIGZvcmVhY2goICRmaWVsZHNfbyBhcyAkcmVjICkgewoJCSRmaWVsZHNbJHJlY1snZmxkbmFtZSddXSA9ICRyZWM7CgkgIH0KCSAgJHNhdmVkc2VhcmNoWydmaWVsZHMnXSA9ICRmaWVsZHM7CgkgIGlmKCAkbWFzdGVyc2VhcmNoICkgJHNlc3MtPnB1dCgnbWFzdGVyJywkc2F2ZWRzZWFyY2gpOwoJICBpZiggJHN1YnNlYXJjaCApICRzZXNzLT5wdXQoJ3N1YicsJHNhdmVkc2VhcmNoKTsKCX0KCgoJJHRoZXRlbXBsYXRlID0gJ3N1bW1hcnlfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUpOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddKSApICR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5XycudHJpbSgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSk7CgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCXJldHVybjsKICB9CiAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKCSRlcnJvcnNbXSA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgfQp9IC8vIHN1Ym1pdCBvciBkb19zZWFyY2gKCiMKIyBHaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5CiMKJHRoZXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRTRUFSQ0hGT1JNX1RFTVBMQVRFKTsKJHRoZXRlbXBsYXRlID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzZWFyY2hmb3JtdGVtcGxhdGUnLCR0aGV0ZW1wbGF0ZSk7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlLCduZXdzZWFyY2hfJyk7CgovLyBpZiBpdCdzIGEgc3Vic2VhcmNoLCBvciBhIG1hc3RlciBzZWFyY2gsIGdpdmUgc3R1ZmYgdG8gc21hcnR5LgppZiggJG1hc3RlcnNlYXJjaCAmJiAkc2Vzcy0+ZXhpc3RzKCdtYXN0ZXInKSApICR0cGwtPmFzc2lnbignc2F2ZWQnLCRuZXdwYXJtcyk7CmlmKCAkc3Vic2VhcmNoICYmICRzZXNzLT5leGlzdHMoJ3N1YicpICkgJHRwbC0+YXNzaWduKCdzYXZlZCcsJG5ld3Bhcm1zKTsKCmlmKCBjb3VudCgkZXJyb3JzKSApICR0cGwtPmFzc2lnbignZXJyb3JzJywkZXJyb3JzKTsKJHRwbC0+YXNzaWduKCdmaWVsZGRlZnMnLCRmaWVsZGRlZnMpOwokdG1wID0gY2RfdXRpbHM6OmdldF9oaWVyYXJjaHlfbGlzdCgtMSxGQUxTRSk7CmlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAkdG1wMiA9IGFycmF5KCcnPT4kdGhpcy0+TGFuZygnYW55JykpOwogIGZvcmVhY2goICR0bXAgYXMgJGsgPT4gJHYgKSAkdG1wMlskdl0gPSAkazsgLy8gYmFja3dhcmRzIGludGVudGlvbmFsbHkuCiAgJHRwbC0+YXNzaWduKCdoaWVyYXJjaGllcycsJHRtcDIpOwp9CgokdG1wID0gY2RfY2F0ZWdvcnk6OmdldF9saXN0KCk7CmlmKCBpc19hcnJheSgkdG1wKSApICR0cGwtPmFzc2lnbignY2F0ZWdvcmllcycsJHRtcCk7CgppZiggIWlzc2V0KCRwYXJhbXNbJ2NkX29yaWdwYWdlJ10pICkgJHBhcmFtc1snY2Rfb3JpZ3BhZ2UnXSA9ICRyZXR1cm5pZDsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ3NlYXJjaCcsJHJlc3VsdHBhZ2UsJHBhcmFtcykpOwokdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKLy8gUHJvY2VzcyB0aGUgdGVtcGxhdGUKJHRwbC0+ZGlzcGxheSgpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.searchstats.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CmlmKCAhaXNfb2JqZWN0KCRmZXUpICkgcmV0dXJuOyAvLyBubyBmZXUgbW9kdWxlLgokZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKaWYoICRmZXVfdWlkIDw9IDAgKSByZXR1cm47IC8vIG5vdCBsb2dnZWQgaW4KaWYoICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZGVsZXRlJywxKSApIHJldHVybjsgLy8gbm8gcGVybWlzc2lvbgoKaWYoICFpc3NldCgkcGFyYW1zWydjb21wYW55aWQnXSkgKSByZXR1cm47IC8vIG5vIGNvbXBhbnkgaWQuCiRjb21wYW55aWQgPSAoaW50KSRwYXJhbXNbJ2NvbXBhbnlpZCddOwoKJGNvbXBhbnkgPSBjZF91dGlsczo6Z2V0X2NvbXBhbnkoJGNvbXBhbnlpZCwkcmV0dXJuaWQsVFJVRSk7CmlmKCAhaXNfb2JqZWN0KCRjb21wYW55KSApIHJldHVybjsgLy8gaW52YWxpZCBjb21wYW55CmlmKCAkY29tcGFueS0+b3duZXJfaWQgIT0gJGZldV91aWQgKSByZXR1cm47IC8vIGludmFsaWQgb3duZXIuCgokZGF5cyA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdkYXlzJywzNjUpOwppZiggJGRheXMgPCAxICkgcmV0dXJuOyAvLyBubyBkYXlzLgoKJHBhZ2VsaW1pdCA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdwYWdlbGltaXQnLDEwMCk7CiRwYWdlbGltaXQgPSBtYXgoMSxtaW4oMTAwMDAsJHBhZ2VsaW1pdCkpOwokcGFnZSA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdwYWdlJywxKTsKJHBhZ2UgPSBtYXgoMSwkcGFnZSk7CiRvZmZzZXQgPSAoJHBhZ2UgLSAxKSAqICRwYWdlbGltaXQ7CgovLyBzYXZlIG9yaWdpbmFsIHBhcmFtcyBmb3IgdXNlIGluIGZ1cnRoZXIgcGFnaW5hdGlvbiwgb25jZSB3ZSBhZGQgaXQuCiRvcmlncGFyYW1zID0gYXJyYXkoJ2NvbXBhbnlpZCc9PiRjb21wYW55aWQsJ2RheXMnPT4kZGF5cywncGFnZWxpbWl0Jz0+JHBhZ2VsaW1pdCk7Cgokc3RhcnRfdXQgPSB0aW1lKCkgLSAkZGF5cyAqIDI0ICogMzYwMDsKJHN0YXJ0X3V0ID0gbWt0aW1lKDAsMCwwLGRhdGUoJ24nLCRzdGFydF91dCksZGF0ZSgnaicsJHN0YXJ0X3V0KSxkYXRlKCdZJywkc3RhcnRfdXQpKTsKJHN0YXJ0X2R0ID0gdHJpbSgkZGItPkRiVGltZVN0YW1wKCRzdGFydF91dCksIiciKTsKCiRxdWVyeSA9ICdTRUxFQ1QgUy4qIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzIFMgCiAgICAgICAgICBMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzX3JlcyBSCiAgICAgICAgICBPTiBTLmlkID0gUi5zZWFyY2hfaWQgV0hFUkUgUi5jb21wYW55X2lkID0gPyBBTkQgUy5kYXRlX3NlYXJjaGVkID4gPyBPUkRFUiBCWSBkYXRlX3NlYXJjaGVkIERFU0MnOwokZGJyID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksJHBhZ2VsaW1pdCwkb2Zmc2V0LGFycmF5KCRjb21wYW55aWQsJHN0YXJ0X2R0KSk7CiRzZWFyY2hlcyA9IGFycmF5KCk7CiRzZWFyY2hfaWRzID0gYXJyYXkoKTsKd2hpbGUoICEkZGJyLT5FT0YoKSApIHsKICAkc2VhcmNoZXNbJGRici0+ZmllbGRzWydpZCddXSA9ICRkYnItPmZpZWxkczsKICAkc2VhcmNoX2lkc1tdID0gKGludCkkZGJyLT5maWVsZHNbJ2lkJ107CiAgJGRici0+TW92ZU5leHQoKTsKfQokc2VhcmNoX2lkcyA9IGFycmF5X3VuaXF1ZSgkc2VhcmNoX2lkcyk7CgovLyBub3cgZ2V0IHRoZSBrZXkvdmFsdWUgcGFpcnMgZm9yIGVhY2ggc2VhcmNoCmlmKCBpc19hcnJheSgkc2VhcmNoZXMpICYmIGlzX2FycmF5KCRzZWFyY2hfaWRzKSAmJiBjb3VudCgkc2VhcmNoX2lkcykgKSB7CiAgJHF1ZXJ5ID0gJ1NFTEVDVCBWLiogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHNfdmFycyBWIFdIRVJFIHNlYXJjaF9pZCBJTiAoJyAuIGltcGxvZGUoJywnLCRzZWFyY2hfaWRzKS4nKSc7CiAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogIGlmKCAkZGJyICkgewogICAgd2hpbGUoICEkZGJyLT5FT0YoKSApIHsKICAgICAgJHJlYyA9ICRkYnItPmZpZWxkczsKICAgICAgaWYoIHN0cnBvcygkcmVjWyd2YWwnXSwnXl4nKSAhPT0gRkFMU0UgKSAkcmVjWyd2YWwnXSA9IGV4cGxvZGUoJ15eJywkcmVjWyd2YWwnXSk7CiAgICAgICRzZWFyY2hfaWQgPSAkcmVjWydzZWFyY2hfaWQnXTsKICAgICAgaWYoICFpc3NldCgkc2VhcmNoZXNbJHNlYXJjaF9pZF0pICkgY29udGludWU7CiAgICAgIGlmKCAhaXNzZXQoJHNlYXJjaGVzWyRzZWFyY2hfaWRdWyd2YWxzJ10pICkgJHNlYXJjaGVzWyRzZWFyY2hfaWRdWyd2YWxzJ10gPSBhcnJheSgpOwogICAgICAkc2VhcmNoZXNbJHNlYXJjaF9pZF1bJ3ZhbHMnXVskcmVjWyduYW1lJ11dID0gJHJlY1sndmFsJ107CiAgICAgICRkYnItPk1vdmVOZXh0KCk7CiAgICB9CiAgfQoKICAkc21hcnR5LT5hc3NpZ24oJ3NlYXJjaGVzJywkc2VhcmNoZXMpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ2ZpZWxkcycsY2RfdXRpbHM6OmdldF9maWVsZGRlZnNfYnlfbmFtZShGQUxTRSkpOwokc21hcnR5LT5hc3NpZ24oJ2NvbXBhbnlpZCcsJGNvbXBhbnlpZCk7CiRzbWFydHktPmFzc2lnbignY29tcGFueScsJGNvbXBhbnkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoaWVzJyxjZF91dGlsczo6Z2V0X2hpZXJhcmNoeV9saXN0KC0xLEZBTFNFKSk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsY2RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKFRSVUUpKTsKJHRlbXBsYXRlID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdzZWFyY2hzdGF0c3RlbXBsYXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVFNUQVRTU1VNTUFSWV9URU1QTEFURSkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ3N0YXRzc3VtbWFyeV8nLiR0ZW1wbGF0ZSk7CgojCiMgRU9GCiMKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT4xLjEgLSBTZXB0ZW1iZXIsIDIwMDcgPGVtPihyY2FtcGJlbGxAc2tpbm55ZmlzaG1lZGlhLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkZWQgc3VwcG9ydCBmb3IgcHJldHR5IHVybHM8L2xpPgogICAgICA8bGk+RmlsbGVkIG91dCB0aGUgaGVscDwvbGk+CiAgICAgIDxsaT5BZGRlZCBhIGNhdGVnb3J5IGxpc3QgbW9kZTwvbGk+CiAgICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBmcm9udGVuZCBlZGl0aW5nIG9mIGNvbXBhbmllczwvbGk+CiAgICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBwdWJsaWMgYW5kIGFkbWluIG9ubHkgZmllbGRzIGluIGNvbXBhbmllczwvbGk+CiAgICAgIDxsaT5BZGRlZCBkaWZmZXJlbnQgc29ydGluZyBjYXBhYmlsaXRpZXMgaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgICAgPGxpPkNoYW5nZWQgTWluaW11bSBDTVMgVmVyc2lvbiBhbmQgYWRkZWQgc3VwcG9ydCBmb3IgdGhlIDEuMSBzZXJpZXM8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuMSAtIE5vdmVtYmVyLCAyMDA3IDxlbT4ocmNhbXBiZWxsQHNraW5ueWZpc2htZWRpYS5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIHRoZSBkZXRhaWwgbGlua3MgaW4gc3VtbWFyeSBtb2RlIHdoZW4gcHJldHR5IHVybHMgd2VyZSBkaXNhYmxlZC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuMiAtIE5vdmVtYmVyLCAyMDA3IDxlbT4ocmNhbXBiZWxsQHNraW5ueWZpc2htZWRpYS5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPk5vdyB1c2UgY21zX21vdmVfdXBsb2FkZWRfZmlsZSBpbnN0ZWFkIG9mIG1vdmVfdXBsb2FkZWRfZmlsZTwvbGk+CiAgICAgIDxsaT5SZXF1aXJlIENNUyAxLjIuMSBvciBsYXRlcjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS4zIC0gRmVicnVhcnksIDIwMDggPGVtPihyY2FtcGJlbGxAc2tpbm55ZmlzaG1lZGlhLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkcyBwYWdpbmF0aW9uIHRvIHN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBwcmV0dHkgdXJscyBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIHNvcnQgb3JkZXIgcHJlZmVyZW5jZXM8L2xpPgogICAgICA8bGk+KF9TakcpIC0gSW1wbGVtZW50cyB0c3dcJ3MgcGF0Y2ggZm9yIGN1c3RvbSBmaWVsZHMgaW4gdGhlIHN1bW1hcnkgdGVtcGxhdGU8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuNCAtIEp1bmUsIDIwMDggPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5GaXggdG8gdGhlIHRhYnM8L2xpPgogICAgICA8bGk+TWlub3IgZml4IHRvIHRoZSBzdGF0dXMgZmllbGQgd2hlbiBlZGl0aW5nIGEgY29tcGFueS48L2xpPgogICAgICA8bGk+TWlub3IgZml4IHRvIHRoZSBjaGVja2JveCBjdXN0b20gZmllbGRzIHdoZW4gZWRpdGluZyBhIGNvbXBhbnkuPC9saT4KICAgICAgPGxpPkZpeCB0byBDU1YgRXhwb3J0LjwvbGk+CiAgICAgIDxsaT5GaXggdG8gdGhlIHByZWZlcmVuY2VzIHRhYi48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuNSAtIEp1bmUsIDIwMDggPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5GaXggYSBtaW5vciBpc3N1ZSB3aXRoIHByZWZlcmVuY2VzPC9saT4KICAgICAgPGxpPkZpeCBzb21lIHF1ZXJpZXMgdGhhdCB3ZXJlIG5vdCB1c2luZyBjbXNfZGJfcHJlZml4PC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xLjYgLSBKdWx5LCAyMDA4IDxlbT4oY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkIHRoZSBzaG93YWxsIHBhcmFtZXRlciB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbi48L2xpPgogICAgICA8bGk+U3BsaXQgb3V0IGEgY291cGxlIG9mIG1vcmUgZmlsZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xLjcgLSBGZWJydWFyeSwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeGVkIGRlbGV0ZSBjb21wYW55IHN0dWZmLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS44IC0gQXByaWwsIDIwMDkgPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGQgTW9yZSBJbmRleGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMiAtIE1heSwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkFkZGVkIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgZmllbGRzLjwvbGk+CiAgICAgIDxsaT5BZGRlZCBjYXBhYmlsaXR5IHRvIGxvb2t1cCBsYXR0aXR1ZGUgYW5kIGxvbmdpdHVkZSBpZiBDR0dvb2dsZU1hcCBpcyBpbnN0YWxsZWQuPC9saT4KICAgICAgPGxpPkFkZGVkIHNlYXJjaCBmdW5jdGlvbmFsaXR5LCB3aXRoIHppcGNvZGUgbG9va3VwIChyZXF1aXJlcyB0aGUgcG9zdGNvZGUgbW9kdWxlKS48L2xpPgogICAgICA8bGk+QWRkZWQgZXhwb3J0IHRvIGNzdiBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICAgIDxsaT5SZXdyaXRlIGltcG9ydCBmcm9tIGNzdiBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMyAtIEp1bHksIDIwMDkgPGVtPihjYWxndXkxMDAwQGhvdG1haWwuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBwcmV0dHkgdXJsczwvbGk+CiAgICAgIDxsaT5GaWxsZWQgb3V0IHRoZSBoZWxwPC9saT4KICAgICAgPGxpPkFkZGVkIGEgY2F0ZWdvcnkgbGlzdCBtb2RlPC9saT4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzPC9saT4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIHB1YmxpYyBhbmQgYWRtaW4gb25seSBmaWVsZHMgaW4gY29tcGFuaWVzPC9saT4KICAgICAgPGxpPkFkZGVkIGRpZmZlcmVudCBzb3J0aW5nIGNhcGFiaWxpdGllcyBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgICA8bGk+Q2hhbmdlZCBNaW5pbXVtIENNUyBWZXJzaW9uIGFuZCBhZGRlZCBzdXBwb3J0IGZvciB0aGUgMS4xIHNlcmllczwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMy4yIC0gQXVndXN0LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Rml4IG1pbm9yIGVycm9yIGluIHRoZSBpbnN0YWxsZXIuPC9saT4KICAgICAgPGxpPkluIHN1bW1hcnkgbW9kZSwgZW5zdXJlIHRoYXQgYSBjb21wYW55IGlzIG9ubHkgb3V0cHV0IG9uY2UuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4zLjMgLSBBdWd1c3QsIDIwMDkgPGVtPihjYWxndXkxMDAwQGhvdG1haWwuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5GaXggZXJyb3JzIHdpdGggZW50aXRpZXMgaW4gZnJvbnRlbmQgd3lzaXd5Z3MuPC9saT4KICAgICAgPGxpPkZpeCBlcnJvciBpbiBib3VuZGluZyBib3ggY2FsY3VsYXRpb24uPC9saT4KICAgICAgPGxpPk51bWVyb3VzIG90aGVyIHNtYWxsIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjMuNCAtIFNlcHRlbWJlciwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAaG90bWFpbC5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeCBzb21lIG1vcmUgc21hbGwgaXNzdWVzIHdpdGggZnJvbnRlbmQgc3VibWl0PC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS40IC0gT2N0LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyk8L2VtPgogICAgPHVsPgogICAgIDxsaT5BZGRlZCBLTUwgSW1wb3J0PC9saT4KICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNC4xIC0gT2N0b2JlciwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAaG90bWFpbC5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkFkZHMgYWJpbGl0eSB0byBpbXBvcnQgZmllbGRzIGZyb20gS01MLjwvbGk+CiAgICAgIDxsaT5BZGRzIGZpZWxkIHR5cGUgdG8gdGhlIG91dHB1dCBmb3IgY3VzdG9tIGZpZWxkcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUgLSBKYW51YXJ5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IGZvciBmcm9udGVuZCB1c2VycyB0byBhZGQvZWRpdC9kZWxldGUgdGhlaXIgb3duIGNvbXBhbnkgbGlzdGluZ3MuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjEgLSBKYW51YXJ5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGJyb3dzZSBieSBoaWVyYXJjaHkuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjIgLSBKYW51YXJ5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5SZXdyaXRlIG9mIENTViBpbXBvcnQgc3R1ZmYuPC9saT4KICAgICAgPGxpPkFkZHMgZnJvbnRlbmQgaW1wb3J0aW5nIGZyb20gY3N2LjwvbGk+CiAgICAgIDxsaT5BZGRzIGZyb250ZW5kIGRlbGV0ZSBhY3Rpb24uPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjMgLSBNYXJjaCwgMjAxMAogICAgPHVsPgogICAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIHNlYXJjaC48L2xpPgogICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNS40IC0gTWF5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHNvcnRpbmcgYnkgcHVibGljIGN1c3RvbSBmaWVsZHMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjUgLSBNYXksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuNyAtIE1heSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNS44IC0gTWF5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIGNhdGVnb3J5IGluZm9ybWF0aW9uIGZvciBlYWNoIG1hdGNoaW5nIHByb2R1Y3QgaW4gc3VtbWFyeSB2aWV3LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNiAtIEp1bmUsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIGEgbWlub3IgaXNzdWUgd2l0aCB0aGUgc2VhcmNoIGZ1bmN0aW9uIChjb3B5L3Bhc3RlIGVycm9yKTwvbGk+CiAgICAgIDxsaT5BZGRzIGNvbXBhbnkgbmFtZSBpbmZvcm1hdGlvbiB0byB0aGUgZGV0YWlsIHVybC48L2xpPgogICAgICA8bGk+QWRkcyAmcXVvdDtiYWNrJnF1b3Q7IGxpbmsgdG8gdGhlIHNldHRpbmdzIGFuZCB0ZW1wbGF0ZSBwYWdlcy48L2xpPgogICAgICA8bGk+QWRkcyBmdW5jdGlvbmFsaXR5IHRvIGFsbG93IGR1cGxpY2F0aW5nIGEgY29tcGFueSByZWNvcmQuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjEgLSBKdW5lLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIGV4dHJhIGZpZWxkcyB0byBjYXRlZ29yaWVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNi4yIC0gSnVseSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNi4zIC0gSnVseSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNi40IC0gSnVseSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+U29ydCBmaWVsZCBkZWZpbml0aW9ucyBieSBuYW1lLjwvbGk+CiAgICAgIDxsaT5BZGRzIGNhdGVnb3J5IHNwZWNpZmljIGV4dHJhMSxleHRyYTIsZXh0cmEzIGZpZWxkcyBhc3NvY2lhdGVkIHdpdGggQ29tcGFuaWVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNi41IC0gQXVndXN0LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIGlkIG9wdGlvbiB0byBzb3J0YnkuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjcgLSBBdWd1c3QsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgaW50ZWdlciBzb3J0aW5nIGJ5IHRoZSBzb3J0Ynk9ZjpmaWVsZF9uYW1lIHN0dWZmLjwvbGk+CiAgICAgIDxsaT5NaW5vciBpbXByb3ZlbWVudCB0byB0aGUgc2VhcmNoIHN0dWZmIHdydCBjYXRlZ29yaWVzLjwvbGk+CiAgICAgIDxsaT5Tb3J0IHRoZSBjYXRlZ29yaWVzIG91dHB1dCB0byB0aGUgc2VhcmNoIGZvcm0uPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjggLSBTZXB0ZW1iZXIsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIHNlYXJjaCBhY3Rpb24uPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjkgLSBTZXB0ZW1iZXIsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkNTViBJbXBvcnQgSW1wcm92ZW1lbnRzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNyAtIFNlcHRlbWJlciwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyBoaWVyYXJjaHkgY2FwYWJpbGl0aWVzIHRvIHNlYXJjaCBhY3Rpb24uPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS43LjIgLSBTZXB0ZW1iZXIsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZG8gYSBMSUtFIHNlYXJjaCBvbiB0aGUgYWRkcmVzcyBmaWVsZCB3aGVuIGRvaW5nIGEgcG9zdGNvZGUgc2VhcmNoLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNy4zIC0gSmFudWFyeSwgMjAxMQogICA8dWw+CiAgICAgPGxpPk1hbnkgbWlub3IgYnVnIGZpeGVzLCBpbmNsdWRpbmcgY2hhbmdlcyB0byB3b3JrIHdpdGggbmV3IENHR008L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuOCAtIEphbnVhcnksIDIwMTEKICAgPHVsPgogICA8bGk+QWRkcyBzdXBwb3J0IGZvciBjb21wYW55IFVSTFMgKGFsYSBDTVNNUyAxLjkpIHdoZW4gY29tcGFuaWVzIGFyZSB1cGRhdGVkIGZyb20gdGhlIGFkbWluIGludGVyZmFjZS48L2xpPgogICA8bGk+QWRkcyBzdXBwb3J0IGZvciBkb2luZyBhIDMwMSByZWRpcmVjdCB0byB0aGUgbmV3IFVSTCBpZiBhIGNvbXBhbnkgaXMgYWNjZXNzZWQgdmlhIHRoZSBvbGQgVVJMIGFuZCBhIG5ldyBVUkwgZXhpc3RzLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHBhc3MgdGhlIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgaW4gdG8gdGhlIHNlYXJjaC48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuOC4xIC0gTWFyY2gsIDIwMTEKICAgPHVsPgogICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS44LjIgLSBNYXJjaCwgMjAxMQogICA8dWw+CiAgIDxsaT5BZGRzICRlbnRyeS0+ZmllbGRzIHRvIHRoZSBkZXRhaWwgYW5kIHN1bW1hcnkgdmlld3MuPC9saT4KICAgPGxpPk9mZmljaWFsbHkgZGVwcmVjYXRlIHRoZSBjdXN0b21maWVsZHNieW5hbWUgc3R1ZmYuPC9saT4KICAgPGxpPkFkZCAkZW50cnktPmNhbm9uaWNhbCB0byB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjkgLSBBdWd1c3QsIDIwMTEKICAgPHVsPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byB1cGRhdGUgY29tcGFueSByZWNvcmRzIHZpYSBjc3YgZmlsZXMuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEwIC0gU2VwdGVtYmVyLCAyMDExCiAgIDx1bD4KICAgPGxpPkFkZHMgbmV3IGZpbHRlciwgcXVlcnksIGFuZCBwYWdpbmF0aW9uIGNsYXNzZXMuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcHJlbG9hZCBmaWVsZCBhbmQgY2F0ZWdvcnkgaW5mb3JtYXRpb24gZm9yIHNlbGVjdGVkIGNvbXBhbmllcy48L2xpPgogICA8bGk+UmV3cml0ZSBzdW1tYXJ5IHZpZXcgdG8gdXNlIG5ldyBjbGFzc2VzLjwvbGk+CiAgIDxsaT5SZW1vdmVzIHRoZSBjYXRlZ29yeSBmb3JtIGZyb20gdGhlIHN1bW1hcnkgdmlldy4uLiBtYW55IGJldHRlciB3YXlzIHRvIGhhbmRsZSB0aGlzLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xMC4xIC0gU2VwdGVtYmVyLCAyMDExCiAgIDx1bD4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMTAuMTAgLSBOb3ZlbWJlciwgMjAxMQogICA8dWw+CiAgIDxsaT5GaXhlcyBhbiBpc3N1ZSB3aXRoIGltYWdlIHVwbG9hZCBmaWVsZHMgd2hlbiBlZGl0aW5nIGNvbXBhbmllcy48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMTAuMTEgLSBOb3ZlbWJlciwgMjAxMQogICA8dWw+CiAgICAgPGxpPkNhdGVnb3J5IG5hbWVzIG11c3Qgbm93IG9ubHkgaGF2ZSB2YWxpZCBjaGFycy48L2xpPgogICAgIDxsaT5NaW5vciBmaXhlcy48L2xpPgogICA8L3VsPgogIDxsaT4KICA8bGk+MS4xMSAtIERlY2VtYmVyLCAyMDExCiAgIDx1bD4KICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICAgPGxpPkltcHJvdmVtZW50cyB0byB0aGUgZGV0YWlsIHZpZXcgKHNvbWUgdGVtcGxhdGVzIG1heSBuZWVkIGNoYW5naW5nKS48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMTIgLSBEZWNlbWJlciwgMjAxMQogICA8dWw+CiAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgIDxsaT5BZGRzIGZpbHRlcmluZyB0byB0aGUgY29tcGFueSBsaXN0IGluIHRoZSBhZG1pbiBpbnRlcmZhY2UuPC9saT4KICAgICA8bGk+QWRkcyB0aGUgY2F0ZWdvcnkyIGFuZCBjYXRlZ29yeTMgcGFyYW1ldGVycy48L2xpPgogICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgYSBjYXRlZ29yeSBPUiBhIGhpZXIgcGFyYW1ldGVyIHRvIHRoZSBjYXRlZ29yeWxpc3Qgdmlldy48L2xpPgogICA8L3VsPgogIDwvbGk+CiA8bGk+MS4xMyAtIEphbnVhcnksIDIwMTIKICAgPHVsPgogICAgIDxsaT5BZGRzIGZpbGUgZmllbGQgdHlwZS48L2xpPgogICAgIDxsaT5GaXhlcyBwcm9ibGVtIHdpdGggbG9nbyBhbmQgcGljdHVyZSBmaWxlcyBiZWluZyBkZWxldGVkLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTMuMSAtIE1hcmNoLCAyMDEyCiAgIDx1bD4KICAgIDxsaT5OdW1lcm91cyBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xMy4yIC0gQXByaWwsIDIwMTIKICAgPHVsPgogICAgPGxpPk1vcmUgYXVkaXQgbGluZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNCAtIE1heSwgMjAxMgogICA8dWw+CiAgIDxsaT5JbXByb3ZlbWVudHMgdG8gdGhlIGNkX2NvbXBhbnkgY2xhc3MuPC9saT4KICAgPGxpPkFkZCBjb21wYW55IChhZG1pbikgaXMgbm93IGdldHRpbmcgbW9yZSBvb3BpZmllZC48L2xpPgogICA8bGk+RWRpdCBjb21wYW55IChhZG1pbikgaXMgbm93IGdldHRpbmcgbW9yZSBvb3BpZmllZC48L2xpPgogICA8bGk+TWlub3IgZml4IHRvIHRoZSBoaWVyYXJjaHkgdGFiLjwvbGk+CiAgIDxsaT5OZXcgRXZlbnRzIChPbkFkZENvbXBhbnksIE9uRWRpdENvbXBhbnksIE9uRGVsZXRlQ29tcGFueSkgLS0gaW4gcHJvZ3Jlc3M8L2xpPgogICA8bGk+RXh0cmEgZmllbGRzIGFyZSBub3cgYWRkZWQgdG8gdGhlIHNlYXJjaCB0ZXJtcyAodGV4dCBhbmQgdGV4dGFyZWEgZmllbGRzIG9ubHkpLiAtLSBpbiBwcm9ncmVzczwvbGk+CiAgIDxsaT5TZWFyY2ggcmUtaW5kZXggbm93IG9vcGlmaWVkIGFuZCBmYXN0ZXIuPC9saT4KICAgPGxpPkZyb250ZW5kIGVkaXRpbmcgY29tcGxldGVseSByZXdyaXR0ZW4KICAgICAgPHVsPgogICAgICAgIDxsaT5Vc2UgdGhlIG5ldyBhY3Rpb24gKHRoZXJlIGlzIGFuIG9wdGlvbiBpbiB0aGUgYWRtaW4gcGFuZWwpPC9saT4KICAgICAgICA8bGk+U3VwcG9ydHMgZWRpdGluZyBjdXN0b20gZmllbGRzIChwdWJsaWMgb25seSkuPC9saT4KICAgICAgICA8bGk+U3VwcG9ydHMgZmlsZSB1cGxvYWRzLCBpbWFnZSBwcm9jZXNzaW5nIGFsYSBDR0V4dGVuc2lvbnM8L2xpPgogICAgICAgIDxsaT5FbmhhbmNlZCBzZWN1cml0eS48L2xpPgogICAgICAgIDxsaT5EZWZhdWx0IHRlbXBsYXRlIGluY2x1ZGVzIGxvb2t1cCBmdW5jdGlvbmFsaXR5IChpZiBDR0dNIGlzIGF2YWlsYWJsZSk8L2xpPgogICAgICAgIDxsaT5TZWFyY2hhYmxlLjwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDwvbGk+CiAgIDxsaT5GaXhlcyB0byBLTUwgSW1wb3J0LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBoaWVyYXJjaHkgaW5mbyB0byB0aGUgc3VtbWFyeSBhbmQgZGV0YWlsIHZpZXdzLjwvbGk+CiAgIDxsaT5BZGRzIHJhZGl1cyBzZWFyY2hpbmcgY2FwYWJpbGl0aWVzLCBhbmQgc29ydGluZyBieSBkaXN0YW5jZS48L2xpPgogICA8bGk+QWRkcyByZWdleHAgc2VhcmNoIGZvciBuYW1lIHBhcmFtZXRlci48L2xpPgogICA8bGk+Rml4ZXMgYSBidWcgaW4gQ1NWIGltcG9ydCB3cnQgbGF0L2xvbmcgdmFsdWVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTQuMSAtIEp1bmUsIDIwMTIKICAgPHVsPgogICA8bGk+RWRpdCBDb21wYW55IChhZG1pbiBzaWRlKSBGaXhlcy48L2xpPgogICA8bGk+Q29tcGF5IENvbXBhbnkgRml4ZXMuPC9saT4KICAgPGxpPk1vdmVkIGhlbHAgb3V0IG9mIGxhbmcgZmlsZS48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE0LjIgLSBKdW5lLCAyMDEyCiAgIDx1bD4KICAgPGxpPkZpeGVzIGlzc3VlIHdpdGggZHJhZnQgc3RhdHVzLjwvbGk+CiAgIDxsaT5maXhlcyBpc3N1ZSB3aXRoIGNkX2NvbXBhbnlfcXVlcnksIHN0YXR1cywgYW5kIGZyb250ZW5kIHZpZXdzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTQuMyAtIEp1bHksIDIwMTIKICAgPHVsPgogICA8bGk+Q2F0ZWdvcmllcyBhcmUgbm93IG91dHB1dCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgbmFtZSwgZXZlcnl3aGVyZS48L2xpPgogICA8bGk+TW9yZSBmdW5jdGlvbnMgaW4gY2RfdXRpbHMuPC9saT4KICAgPGxpPk1pbm9yIGJ1Z2ZpeCB0byBhY2NlcHRpbmcgaHRtbCBpbiB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNC40IC0gSnVseSwgMjAxMgogICA8dWw+CiAgIDxsaT5CdWdmaXg6IFNldCBvd25lciBpZCB0byAtMSBmb3IgaW1wb3J0ZWQgaXRlbXMuPC9saT4KICAgPC91bD4KIDwvaWk+CiA8bGk+MS4xNS54CiAgIDx1bD4KICAgPGxpPkJlZ2luIHdvcmsgb24gbmV3IHNlYXJjaCBhY3Rpb24uPC9saT4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8bGk+QWRkcyBhYmlsaXR5IHRvIG91dHB1dCBjb21wYW55IHNlYXJjaGVzIGFzIGFuIGFycmF5LjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTYueAogICA8dWw+CiAgIDxsaT5BZGQgdGhlIHtjZF9nZXRjb21wYW55fSB0YWcuPC9saT4KICAgPGxpPkZpeGVzIGEgYnVuY2ggb2YgbWlub3IgYnVncy48L2xpPgogICA8bGk+T25seSBjbGVhbiB2YWx1ZXMgaW4gY2RfY29tcGFueSBmb3IgYWRtaW4gcmVxdWVzdHMuLi4gc2VlIGhvdyB0aGF0IHdvcmtzIG91dC48L2xpPgogICA8bGk+Q1NWIGltcG9ydCBpbXByb3ZlbWVudHMuPGxsaT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNy54CiAgIDx1bD4KICAgPGxpPlJhdGlvbmFsaXphdGlvbiBvZiBhZG1pbiBpbnRlcmZhY2UgdGFicy48L2xpPgogICA8bGk+TWlub3Igb3B0aW16YXRpb25zLjwvbGk+CiAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIHRoZSBhbGJ1bSBmaWVsZCB0eXBlIGluY2x1ZGluZyBmb3IgZnJvbnRlbmQgZWRpdGluZy4KICAgICA8cD5UaGUgYWxidW0gZmllbGQgdHlwZSBhbGxvd3MgYXNzb2NpYXRpbmcgbXVsdGlwbGUgaW1hZ2VzIHdpdGggYSBzaW5nbGUgY29tcGFueSBlbnRyeS4gIFRoZXkgYXJlIHJlcHJlc2VudGVkIGluIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzIGFzIGEgc2ltcGxlIGFycmF5IG9mIGZpbGVuYW1lcy4gIFlvdSBtYXkgYnVpbGQgeW91ciBvd24gZGlzcGxheSBtZWNoYW5pc20gZnJvbSB0aGlzLjwvcD4KICAgICA8cD5UaGUgYWxidW0gZmllbGQgdHlwZSBkb2VzIG5vdCBwcm92aWRlIGFueSBpbWFnZSBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy4gIEltYWdlIHByb2Nlc3Npbmcgc3VjaCBhcyB3YXRlcm1hcmtpbmcgb3IgdGh1bWJuYWlsaW5nIGNhbiBiZSBkb25lIGF0IHRoZSB0aWVtIG9mIGRpc3BsYXkgd2l0aCBhbiBhZGRvbiBtb2R1bGUgbGlrZSBDR1NtYXJ0SW1hZ2UuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gSW4gb3JkZXIgdG8gc2VlIHRoZSBhbGJ1bSBmaWVsZCB0eXBlcyB5b3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSBhIG5ldyAmcXVvdDtGcm9udGVuZCBFZGl0IENvbXBhbnkmcXVvdDsgdGVtcGxhdGUgZnJvbSBkZWZhdWx0cyAoYWZ0ZXIgcmVzdG9yaW5nIHRoZSBkZWZhdWx0IHRlbXBsYXRlIHRvIGZhY3RvcnkgZGVmYXVsdHMgaW4gdGhlIGRlZmF1bHQgdGVtcGxhdGVzIHRhYi48L3A+CiAgICAgPHA+QWRkaXRpb25hbGx5IHlvdSB3aWxsIG5lZWQgdG8gY3JlYXRlIG5ldyBmcm9udGVuZCBhbGJ1bSB0ZW1wbGF0ZXMuPC9wPgogICA8L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE4LngKICAgPHVsPgogICAgIDxsaT5Nb2RpZmllcyB0aGUgY2RfY29tcGFueV9maWx0ZXIgYW5kIGNkX2NvbXBhbnlfcXVlcnkgY2xhc3NlcyB0byBhbGxvdyBxdWVyeWluZyBsb2NhdGlvbnMgYnkgYWN0aXZpdHksIG1vc3QgY2hlY2tpbnMsIG9yIG1vc3QgZmF2b3JpdGVzIChyZXF1aXJlcyB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlKS48L2xpPgogICAgIDxsaT5Db2RlIGNsZWFudXBzLCBhbmQgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTkueAogICA8dWw+CiAgICAgPGxpPkFkZHMgYW4gSWNvbiBmaWVsZCB0eXBlIChmcm9tIENHR29vZ2xlTWFwcyBvciBDR0dvb2dsZU1hcHMyKTwvbGk+CiAgICAgPGxpPkFkZHMgYW4gQWN0aXZpdHkgZmllbGQgdHlwZSAoZnJvbSBDR1NvY2lhbEFwcCk8L2xpPgogICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHJlLW9yZGVyIGNhdGVnb3JpZXMgYW5kIGhpZXJhcmNoeSBpdGVtcy48L2xpPgogICAgIDxsaT5Nb3JlIGNvZGUgY2xlYW51cHMuPC9saT4KICAgICA8bGk+SGllcmFyY2h5IG9wdGltaXphdGlvbnMuPC9saT4KICAgICA8bGk+QWRkcyB0aGUge2NkX2hpZXJicmVhZGNydW1ifSBwbHVnaW4uPC9saT4KICAgICA8bGk+QWRkcyB0aGUgaGllcl9jaGlsZHJlbiBwYXJhbWV0ZXIuPC9saT4KICAgICA8bGk+TW9yZSBpbmRleGVzIGZvciBwcmVmb3JtYW5jZSA8ZW0+KDEuMTkuNyk8L2VtPjwvbGk+CiAgICAgPGxpPkltcHJvdmVkIEhpZXJhcmNoeSBMaXN0IFRlbXBsYXRlIDxlbT4oMS4xOS43KTwvZW0+PC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4yMC54CiAgIDx1bD4KICAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciB0aGUgbmFtZSBwYXJhbWV0ZXIgaW4gdGhlIGNhdGVnb3J5IGxpc3QgYWN0aW9uLjwvbGk+CiAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcmVvcmRlciBmaWVsZCBkZWZpbml0aW9ucy48L2xpPgogICAgIDxsaT5SZW1vdmVzIG9sZCBzZWFyY2ggYWN0aW9uLgogICAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAgU2l0ZXMgdXNpbmcgQ29tcGFueURpcmVjdG9yeSBzZWFyY2ggZnJvbSBwcmlvciB0byB2ZXJzaW9uIDEuMTUgd2lsbCBuZWVkIHRvIHJlLWNyZWF0ZSBzZWFyY2ggdGVtcGxhdGVzLjwvcD4KICAgICA8L2xpPgogICAgIDxsaT5SZW1vdmVzIG9sZCBmZV9lZGl0IGFjdGlvbi4KICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gIFNpdGVzIHVzaW5nIENvbXBhbnlEaXJlY3RvcnkgZmVfZWRpdCBmcm9tIHByaW9yIHRvIHZlcnNpb24gMS4xNSB3aWxsIG5lZWQgdG8gcmUtY3JlYXRlIGZlX2VkaXQgdGVtcGxhdGVzLjwvcD4KICAgICA8L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjIxLngKICAgPHVsPgogICAgIDxsaT5BZGRzIHNhdmVkIHNlYXJjaCBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICAgPGxpPlNlYXJjaCBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzPC9saT4KICAgICA8bGk+QWRkcyBmdWxsIHRleHQgc2VhcmNoaW5nIChpbiBib29sZWFuIG1vZGUpPC9saT4KICAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciByZWZpbmluZyB0aGUgc2VhcmNoPC9saT4KICAgPC91bD4KIDwvbGk+CiAgPGxpPjEuMjIueAogICAgPHA+PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZXJlIHdpbGwgYmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaXNzdWVzIHdpdGggdGhpcyB2ZXJzaW9uLjwvc3Bhbj4gIFBhcnRpY3VsYXJseSB3aXRoIHRoZSBicm93c2VoaWVyIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucy4gIFlvdSB3aWxsIG5lZWQgdG8gcmV2aXNlIHlvdXIgdGVtcGxhdGVzIGZvciB0aGVzZSB2aWV3cyAocGxlYXNlIHJlc2V0IHRoZSBwcm90b3R5cGUgdGVtcGxhdGVzIGFuZCByZWZlciB0byB0aGVtIHdoZW4gcmUtc3R5bGluZyB5b3VyIHRlbXBsYXRlcykuPC9wPgogICAgPHA+QWRkaXRpb25hbGx5LCBzZWFyY2hpbmcgdGhyb3VnaCBjaGlsZCBjYXRlZ29yaWVzIGFuZCBjaGlsZCBoaWVyYXJjaGllcyBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0IHdpdGggdGhlIGhpZXI9IGFuZCBjYXRlZ29yeT0gcGFyYW1ldGVycywgYW5kIGNhbiBvbmx5IGJlIGRpc2FibGVkIHdpdGggdGhlIG5vY2hpbGRyZW4gcGFyYW1ldGVyLjwvcD4KICAgIDxwPjxzdHJvbmc+RGV0YWlsczo8L3N0cm9uZz4KICAgIDx1bD4KICAgICAgPGxpPkFkZHMgbmVzdGVkIGNhdGVnb3JpZXMuPC9saT4KICAgICAgPGxpPkFkZHMgdGhlIHN1bW1hcnlwYWdlIHBhcmFtZXRlciBmb3IgZGV0YWlsLCBjYXRlZ29yeWxpc3QgYW5kIGJyb3dzZWhpZXIgdmlld3MuPC9saT4KICAgICAgPGxpPk5vIGxvbmdlciBkZWxldGUgaGllcmFyY2hpZXMgd2l0aCBjaGlsZHJlbi48L2xpPgogICAgICA8bGk+UmV3cml0ZSB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbi48L3A+CiAgICAgIDxsaT5SZXdyaXRlIHRoZSBicm93c2VoaWVyIGFjdGlvbi48L2xpPgogICAgICA8bGk+Tm8gbG9uZ2VyIHN1cHBvcnQgdGhlIG5hbWUgcGFyYW1ldGVyIGluIGNhdGVnb3J5bGlzdCBhY3Rpb24uPC9saT4KICAgICAgPGxpPk5vIGxvbmdlciBzdXBwb3J0IHRoZSBoaWVyX2NoaWxkcmVuIHBhcmFtZXRlci4uLi4gc2VlIG5vY2hpbGRyZW48L2xpPgogICAgICA8bGk+QWRkcyBzaW1wbGUgcHJldHR5IHVybHMgZm9yIGhpZXJhcmNoeSBiYXNlZCBzdW1tYXJ5IHZpZXdzLjwvbGk+CiAgICAgIDxsaT5jYXRlZ29yeWxpc3QgYW5kIGJyb3dzZWhpZXIgYWN0aW9ucyBub3cgc3VwcG9ydCB0aGUgbm9wcmV0dHkgc3R1ZmYgdG8gZW50aXJlbHkgZGlzYWJsZSBwcmV0dHkgVVJMUyBhbmQgYWxsb3cgY29tcG91bmRpbmcgcGFyYW1ldGVycy48L2xpPgogICAgICA8bGk+UmV3cml0ZSBBU0NJSSBleHBvcnQgYW5kIGltcG9ydC4KCTxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIGltcG9ydCBmb3JtYXQgaXMgc2ltaWxhciB0bywgYnV0IG5vIGxvbmdlciBpZGVudGljYWwgdG8gdGhlIG9sZCBvbmUuICBZb3UgbWF5IG5lZWQgdG8gY2hhbmdlIHlvdXIgZmlsZXMuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+QWRkcyBmaWx0ZXJpbmcsIGFuZCBlbnRpdHkgZGVjb2RpbmcgdG8gZnJvbnRlbmQgdGV4dCBhbmQgdGV4dCBhcmVhIGZpZWxkcyA8ZW0+KDEuMjIuMyk8L2VtPjwvbGk+Cgk8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkaXNhYmxlIHRoZSBXWVNJV1lHIGVudGlyZWx5IDxlbT4oMS4yMi42KTwvZW0+PC9saT4pCgk8bGk+Tm93IHJlcXVpcmUgUEhQIDUuNC54IDxlbT4oMS4yMi45KTwvZW0+PC9saT4KICAgICAgPGxpPkFkZHMgdGhlIGFqYXhfYXV0b2NvbXBsZXRlX2NhdGVnb3JpZXMgYWN0aW9uIGZvciB1c2UgaW4gdmFyaW91cyBmb3Jtcy4gKDEuMjIuMTMpCiAgICAgICAgICBBbHNvIGFkZHMgYSBuZXcgamF2YXNjcmlwdCBjbGFzcyB0byB3b3JrIGFsb25nIHNpZGUgdGhpcyAoZG9jdW1lbnRhdGlvbiBpcyBvbiB0aGUgdG9kbyBsaXN0KQogICAgICA8L2xpPgogICAgICA8bGk+TWlub3IgY2xlYW51cHMgdG8gdGhlIHNlYXJjaCBhbmQgZmVzdWJtaXQgYWN0aW9ucy48L2xpPgogICAgPC91bD4KICA8L2xpPgoKICAgIDxsaT4xLjIzLngKCTx1bD4KCTxsaT5BZGRzIHRoZSBhYmNsaXN0IGFjdGlvbiB3aGljaCBwcm92aWRlcyBhbiBhbHBoYWJldGljIGRpcmVjdG9yeSAoYnkgY29tcGFueSBuYW1lKSBhbmQgYSBwYWdpbmF0ZWQgc3VtbWFyeSB2aWV3LjwvbGk+Cgk8bGk+U2VhcmNoIG1vZHVsZSBub3cgaW5kZXhlcyB0aGUgaGllcmFyY2h5IGxvbmcgbmFtZSBhbmQgY2F0ZWdvcnkgbG9uZyBuYW1lLjwvbGk+Cgk8L3VsPgogICAgPC9saT4KPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/CompanyDirectory.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX25ld3N1bW1hcnlfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfZGZsdHN1bW1hcnlfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX25ld2RldGFpbF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX2RmbHRkZXRhaWxfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfTkVXQ0FURUdPUllMSVNUX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX25ld2NhdGVnb3J5bGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX2RmbHRjYXRlZ29yeWxpc3RfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfTkVXSElFUkxJU1RfVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfbmV3aGllcmxpc3RfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfREZMVEhJRVJMSVNUX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX2RmbHRoaWVybGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ORVdTRUFSQ0hGT1JNX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX25ld3NlYXJjaGZvcm1fdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfREZMVFNFQVJDSEZPUk1fVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfZGZsdHNlYXJjaGZvcm1fdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRGT1JNX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX25ld2Zyb250ZW5kZm9ybV90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRGT1JNX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX2RmbHRmcm9udGVuZGZvcm1fdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRBTEJVTV9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9uZXdmcm9udGVuZGFsYnVtX3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVOREFMQlVNX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX2RmbHRmcm9udGVuZGFsYnVtX3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5ETElTVF9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9uZXdmcm9udGVuZGxpc3RfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5ETElTVF9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9kZmx0ZnJvbnRlbmRsaXN0X3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX05FV0FCQ0xJU1RfVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfbmV3YWJjbGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ERkxUQUJDTElTVF9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9kZmx0YWJjbGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ORVdTVEFUU1NVTU1BUllfVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfbmV3c3RhdHNzdW1tYXJ5X3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX0RGTFRTVEFUU1NVTU1BUllfVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfZGZsdHN0YXRzc3VtbWFyeV90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfRlJPTlRFTkRJTVBPUlRfVEVNUExBVEUnLCdjb21wYW55ZGlyX2Zyb250ZW5kaW1wb3J0X3RlbXBsYXRlJyk7CgpjbGFzcyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIHt9CgpmaW5hbCBjbGFzcyBDb21wYW55RGlyZWN0b3J5IGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKICB2YXIgJF9jb21wYW55X25hbWVfY2FjaGU7CiAgcHJpdmF0ZSAkX2NhdGVnb3J5X3ByZWxvYWQ7CgogIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CgkkdGhpcy0+X2NvbXBhbnlfbmFtZV9jYWNoZSA9IGFycmF5KCk7CgkkdGhpcy0+QWRkSW1hZ2VEaXIoJ2ljb25zJyk7CgoJJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgaWYoICEkc21hcnR5ICkgcmV0dXJuOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NvbXBkaXJfaW5pdGpzJyxhcnJheSgnY2RfdXRpbHMnLCdzbWFydHlfaW5pdGpzJykpOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX3NlbGNhdGVnb3J5JyxhcnJheSgnY2RfdXRpbHMnLCdzbWFydHlfc2VsY2F0ZWdvcnknKSk7Cgkkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2Rfc2VsaGllcmFyY2h5JyxhcnJheSgnY2RfdXRpbHMnLCdzbWFydHlfc2VsaGllcmFyY2h5JykpOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX2dldGNvbXBhbnknLGFycmF5KCdjZF91dGlscycsJ3NtYXJ0eV9nZXRjb21wYW55JykpOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX3NlYXJjaHN0YXRzJyxhcnJheSgnY2RfdXRpbHMnLCdzbWFydHlfY2RzZWFyY2hzdGF0cycpKTsKICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9nZXRjYXRlZ29yeScsYXJyYXkoJ2NkX3V0aWxzJywnc21hcnR5X2dldGNhdGVnb3J5JykpOwogIH0KCiAgZnVuY3Rpb24gR2V0TmFtZSgpIHsgcmV0dXJuICdDb21wYW55RGlyZWN0b3J5JzsgfQogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdjb21wYW55ZGlyZWN0b3J5Jyk7IH0KICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIFRSVUU7IH0KICBmdW5jdGlvbiBMYXp5TG9hZEFkbWluKCkgeyByZXR1cm4gVFJVRTsgfQogIGZ1bmN0aW9uIEhhc0FkbWluKCkgewlyZXR1cm4gVFJVRTsgfQogIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiAnMS4yMy4zJzsgfQogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgeyByZXR1cm4gJzEuMTIuMSc7IH0KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7IH0KICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncHJldW5pbnN0YWxsJyk7IH0KICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7IHJldHVybiAnY29udGVudCc7IH0KICBmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCkgeyByZXR1cm4gRkFMU0U7IH0KICBmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkgeyByZXR1cm4gRkFMU0U7IH0KICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnUm9iZXJ0IENhbXBiZWxsLCBUZWQgS3VscCc7IH0KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCXsgcmV0dXJuICdjYWxndXkxMDAwQGdtYWlsLmNvbSwgdGVkQHRlbjM5LmNvbSc7IH0KICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uKCAkZXZlbnRuYW1lICkgeyByZXR1cm4gJHRoaXMtPmxhbmcoJ2V2ZW50ZGVzYy0nIC4gJGV2ZW50bmFtZSk7IH0KICBmdW5jdGlvbiBHZXRFdmVudEhlbHAoICRldmVudG5hbWUgKSB7CXJldHVybiAkdGhpcy0+bGFuZygnZXZlbnRoZWxwLScgLiAkZXZlbnRuYW1lKTsgIH0KCiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKICB7CglyZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjUzLjEnLCdDR1NpbXBsZVNtYXJ0eSc9PicxLjknLCdKUXVlcnlUb29scyc9PicxLjMuOScsJ0NHU21hcnRJbWFnZSc9PicxLjIxJyk7CiAgfQoKICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKCXJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSB8fAoJICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgfHwKCSAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKTsKICB9CgogIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgewoJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CgkkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgoJJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwoJaWYoICRkZXRhaWxwYWdlID09IC0xICkgewoJICAkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgkgICRkZXRhaWxwYWdlID0gJGNvbnRlbnRvcHMtPkdldERlZmF1bHRDb250ZW50KCk7Cgl9CgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJJHBhcm1zID0gYXJyYXkoJ3B1Ymxpc2hlZCcsJycpOwoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCx1cmwgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIHN0YXR1cyA9ID8gQU5EIHVybCAhPSA/JzsKCgkvLyB0b2RvOiBkb24ndCBhZGQgcm91dGVzIGZvciByZWNvcmRzIG93bmVkIGJ5IGV4cGlyZWQgRkVVJ3MuLi4gYnV0IHdlJ2xsIGxldCBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MgaGFuZGxlIHRoaXMgYXRtLgoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksJHBhcm1zKTsKCWlmKCAkZGJyICkgewoJICB3aGlsZSggISRkYnItPkVPRigpICkgewoJCSRvbmUgPSAkZGJyLT5maWVsZHM7CgkJJHBhcm1zID0gYXJyYXkoJ2FjdGlvbic9PidkZXRhaWxzJywncmV0dXJuaWQnPT4kZGV0YWlscGFnZSwnY29tcGFueWlkJz0+JG9uZVsnaWQnXSk7CgkJJHJvdXRlID0gbmV3IENtc1JvdXRlKCRvbmVbJ3VybCddLCR0aGlzLT5HZXROYW1lKCksJHBhcm1zLFRSVUUpOwoJCSRyZXMgPSBjbXNfcm91dGVfbWFuYWdlcjo6cmVnaXN0ZXIoJHJvdXRlLEZBTFNFKTsKCQkkZGJyLT5Nb3ZlTmV4dCgpOwoJICB9CgkgICRkYnItPkNsb3NlKCk7Cgl9CgoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NvbXBhbnlpZCcsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZXRhaWxwYWdlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1bW1hcnlwYWdlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJsaXN0dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2VhcmNoZm9ybXRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Zyb250ZW5kZm9ybXRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmcm9udGVuZGxpc3R0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhYmNsaXN0dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc3VtbWFyeXRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaHN0YXRzdGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvd2FsbCcsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0YnknLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc29ydG9yZGVyJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaGFkZHJlc3MnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGFsY2hhcnMnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaGllcicsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwaHJhc2UnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbmFtZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpZGxpc3QnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnknLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnkyJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5MycsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbmxpbmUnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZWxpbWl0JyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5aWQnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYWN0aXZpdHlpZCcsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhY3Rpdml0eWNoaWxkcmVuJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvY2R4Xy4qLycsQ0xFQU5fTk9ORSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9jZF8uKi8nLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZScsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXN1bHRwYWdlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2p1bmsnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnb3JpZ2FjdGlvbicsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdsYXQnLENMRUFOX1NUUklORyk7IC8vIGZsb2F0CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbG9uZycsQ0xFQU5fU1RSSU5HKTsgLy8gZmxvYXQKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyYWRpdXMnLENMRUFOX1NUUklORyk7IC8vIGZsb2F0CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9wcmV0dHknLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9jaGlsZHJlbicsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXN0ZXJzZWFyY2gnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc3Vic2VhcmNoJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RheXMnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGhyYXNlJyxDTEVBTl9TVFJJTkcpOwoKCS8vIEZyaWVuZGx5IFVSTCBzdHVmZgoJLy8gdG9kbywgYWRkIGRlZmF1bHRzIGhlcmUKCWlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlZGlyZWN0b2xkJywwKSApIHsKCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcLyg/UDxjb21wYW55aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcL2QsKD9QPGRldGFpbHRlbXBsYXRlPi4qPykkLycsCgkJCQkJCSAgIGFycmF5KCdhY3Rpb24nPT4naGFuZGxlX29sZHJvdXRlJywnb3JpZ2FjdGlvbic9PidkZXRhaWxzJykpOwoJICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tjQ11vbXBhbmllc1wvKD9QPGNvbXBhbnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJywKCQkJCQkJICAgYXJyYXkoJ2FjdGlvbic9PidoYW5kbGVfb2xkcm91dGUnLCdvcmlnYWN0aW9uJz0+J2RldGFpbHMnKSk7CgkgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2NDXW9tcGFuaWVzXC8oP1A8Y29tcGFueWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLAoJCQkJCQkgICBhcnJheSgnYWN0aW9uJz0+J2hhbmRsZV9vbGRyb3V0ZScsJ29yaWdhY3Rpb24nPT4nZGV0YWlscycpKTsKCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcLyg/UDxjb21wYW55aWQ+WzAtOV0rKSQvJywKCQkJCQkJICAgYXJyYXkoJ2FjdGlvbic9PidoYW5kbGVfb2xkcm91dGUnLCdvcmlnYWN0aW9uJz0+J2RldGFpbHMnLCdyZXR1cm5pZCc9PiRkZXRhaWxwYWdlKSk7Cgl9CgllbHNlIHsKCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcLyg/UDxjb21wYW55aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcL2QsKD9QPGRldGFpbHRlbXBsYXRlPi4qPykkLycpOyAvLyBkZXByZWNhdGVkLgoJICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tjQ11vbXBhbmllc1wvKD9QPGNvbXBhbnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyk7CgkgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2NDXW9tcGFuaWVzXC8oP1A8Y29tcGFueWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcLyg/UDxjb21wYW55aWQ+WzAtOV0rKSQvJyk7Cgl9CgkvLyBzdW1tYXJ5IHZpZXdzLgoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcL2J5aGllcmFyY2h5XC8oP1A8aGllcj5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJywKICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdhY3Rpb24nPT4nZGVmYXVsdCcpKTsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2NDXW9tcGFuaWVzXC9ieWNhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspJC8nKTsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2NDXW9tcGFuaWVzXC9ieWNhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tjQ11vbXBhbmllc1wvYnljYXRlZ29yeVwvKD9QPGNhdGVnb3J5aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycpOwoKCSRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKCSRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9oaWVyYnJlYWRjcnVtYicsYXJyYXkoJ2NkX3V0aWxzJywnc21hcnR5X2hpZXJicmVhZGNydW1iJykpOwogIH0KCiAgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkKICB7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhY3Rpb24nLCdkZWZhdWx0JywkdGhpcy0+TGFuZygncGFyYW1fYWN0aW9uJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY29tcGFueWlkJywnJywkdGhpcy0+TGFuZygncGFyYW1fY29tcGFueWlkJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3VtbWFyeXBhZ2UnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zdW1tYXJ5cGFnZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2RldGFpbHBhZ2UnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9kZXRhaWxwYWdlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2hpZXJsaXN0dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9oaWVybGlzdHRlbXBsYXRlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWJjbGlzdHRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fYWJjbGlzdHRlbXBsYXRlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2VhcmNoZm9ybXRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZGV0YWlsdGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9kZXRhaWx0ZW1wbGF0ZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2Zyb250ZW5kZm9ybXRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZnJvbnRlbmRmb3JtdGVtcGxhdGUnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmcm9udGVuZGFsYnVtdGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9mcm9udGVuZGFsYnVtdGVtcGxhdGUnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmcm9udGVuZGxpc3R0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2Zyb250ZW5kbGlzdHRlbXBsYXRlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3VtbWFyeXRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fc3VtbWFyeXRlbXBsYXRlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2VhcmNoc3RhdHN0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NlYXJjaHN0YXRzdGVtcGxhdGUnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaG93YWxsJywnJywkdGhpcy0+TGFuZygncGFyYW1fc2hvd2FsbCcpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRieScsJ2NvbXBhbnlfbmFtZScsJHRoaXMtPkxhbmcoJ3BhcmFtX3NvcnRieScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRvcmRlcicsJ2FzYycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NvcnRvcmRlcicpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NlYXJjaGFkZHJlc3MnLCcwJywkdGhpcy0+TGFuZygncGFyYW1fc2VhcmNoYWRkcmVzcycpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Bvc3RhbGNoYXJzJywnMCcsJHRoaXMtPkxhbmcoJ3BhcmFtX3Bvc3RhbGNoYXJzJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGllcicsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2hpZXInKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdpZGxpc3QnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9pZGxpc3QnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCduYW1lJywnJywkdGhpcy0+TGFuZygncGFyYW1fbmFtZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2xhdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2xhdCcpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2xvbmcnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9sb25nJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncmFkaXVzJywnJywkdGhpcy0+TGFuZygncGFyYW1fcmFkaXVzJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY2F0ZWdvcnlpZCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2NhdGVnb3J5aWQnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhY3Rpdml0eWlkJywnJywkdGhpcy0+TGFuZygncGFyYW1fYWN0aXZpdHlpZCcpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FjdGl2aXR5Y2hpbGRyZW4nLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9hY3Rpdml0eWNoaWxkcmVuJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY2F0ZWdvcnknLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5MicsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2NhdGVnb3J5MicpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5MycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2NhdGVnb3J5MycpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2lubGluZScsMCwkdGhpcy0+TGFuZygncGFyYW1faW5saW5lJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncGFnZWxpbWl0JywnJywkdGhpcy0+TGFuZygncGFyYW1fcGFnZWxpbWl0JykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncmVzdWx0cGFnZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3Jlc3VsdHBhZ2UnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub3ByZXR0eScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vcHJldHR5JykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9jaGlsZHJlbicsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vY2hpbGRyZW4nKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdtYXN0ZXJzZWFyY2gnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9tYXN0ZXJzZWFyY2gnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzdWJzZWFyY2gnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zdWJzZWFyY2gnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkYXlzJywzNjUsJHRoaXMtPkxhbmcoJ3BhcmFtX2RheXMnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwaHJhc2UnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9waHJhc2UnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjZF9kZXN0cGFnZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2NkX2Rlc3RwYWdlJykpOwogIH0KCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICB7CgkkZm4gPSBfX0RJUl9fLicvY2hhbmdlbG9nLmluYyc7CglpZiggZmlsZV9leGlzdHMoJGZuKSApIHsKCSAgJHQgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJICByZXR1cm4gJHQ7Cgl9CiAgfQoKICBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKICB7Cgkkb2JqID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdKUXVlcnlUb29scycsJzEuMicpOwogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwoJJHR4dCA9ICc8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IicuJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKS4nL2Nzcy9hZG1pbi5jc3MiLz4nOwogICAgaWYoIGlzX29iamVjdCgkb2JqKSApewogICAgICAkdG1wbCAgPSAie0pRdWVyeVRvb2xzIGFjdGlvbj0ncmVxdWlyZScgbGliPSd0YWJsZXNvcnRlcixqcXVlcnl0b29scyxmYW5jeWJveCxmaWxldXBsb2FkJ30iOwogICAgICAkdG1wbCAuPSAie0pRdWVyeVRvb2xzIGFjdGlvbj0ncGxhY2VtYXJrZXInIG5vX3JlYWR5PTF9IjsKICAgIH0KICAgICR0eHQgLj0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0bXBsKTsKICAgIHJldHVybiAkdHh0OwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRUeXBlcygpCiAgewoJJGFyciA9IGFycmF5KCd0ZXh0Ym94JyAgPT4gJHRoaXMtPkxhbmcoJ2ZpZWxkX3RleHRib3gnKSwgJ2NoZWNrYm94JyA9PiAkdGhpcy0+TGFuZygnZmllbGRfY2hlY2tib3gnKSwgJ3RleHRhcmVhJyA9PiAkdGhpcy0+TGFuZygnZmllbGRfdGV4dGFyZWEnKSwKCQkJCSAnZHJvcGRvd24nID0+ICR0aGlzLT5MYW5nKCdmaWVsZF9kcm9wZG93bicpLCdtdWx0aXNlbGVjdCcgPT4gJHRoaXMtPkxhbmcoJ2ZpZWxkX211bHRpc2VsZWN0JyksICdpbWFnZScgPT4gJHRoaXMtPkxhbmcoJ2ZpZWxkX2ltYWdlJyksCgkJCQkgJ2ZpbGUnID0+ICR0aGlzLT5MYW5nKCdmaWVsZF9maWxlJykpOwoJJGFyclsnYWxidW0nXSA9ICR0aGlzLT5MYW5nKCdmaWVsZF9hbGJ1bScpOwoJJGNnc29jID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDR1NvY2lhbEFwcCcpOwoJaWYoIGlzX29iamVjdCgkY2dzb2MpICkgJGFyclsnYWN0aXZpdHknXSA9ICR0aGlzLT5MYW5nKCdmaWVsZF9hY3Rpdml0eScpOwoJaWYoIGNkX3V0aWxzOjpjYW5fZ2VvbG9jYXRlKCkgKQkkYXJyWydpY29uJ10gPSAkdGhpcy0+TGFuZygnZmllbGRfaWNvbicpOwoJcmV0dXJuICRhcnI7CiAgfQoKICBmdW5jdGlvbiBHZXRDYXRlZ29yaWVzKCRhc0hhc2ggPSBGQUxTRSwkYnlOYW1lID0gRkFMU0UpCiAgewoJcmV0dXJuIGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcygkYXNIYXNoLCRieU5hbWUpOwogIH0KCiAgZnVuY3Rpb24gcHJlbG9hZENhdGVnb3J5RGF0YSgkaWRzKQogIHsKCWlmKCAhaXNfYXJyYXkoJGlkcykgJiYgaXNfbnVtZXJpYygkaWRzKSApICRpZHMgPSBhcnJheSgkaWRzKTsKCgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoJJHRtcCA9IGFycmF5KCk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkaWRzKTsgJGkrKyApIHsKCSAgJG4gPSAoaW50KSRpZHNbJGldOwoJICBpZiggJG4gPCAwICkgY29udGludWU7CgkgIGlmKCBpc19hcnJheSgkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWQpICYmIGlzc2V0KCR0aGlzLT5fY2F0ZWdvcnlfcHJlbG9hZFskbl0pICkgY29udGludWU7CgkgICR0bXBbXSA9ICRuOwoJfQoJaWYoICFpc19hcnJheSgkdG1wKSB8fCAhY291bnQoJHRtcCkgKSByZXR1cm47Cglzb3J0KCR0bXApOyAvLyBkZWJ1Zy4uLiBidXQgbmljZS4KCSRpZGxpc3QgPSBhcnJheV91bmlxdWUoJHRtcCk7CgoJLy8gaW5pdGlhbGl6ZSB0aGUgc3R1ZmYgd2UgZG9uJ3QgaGF2ZSB0byBlbXB0eS4KCWlmKCAhaXNfYXJyYXkoJHRoaXMtPl9jYXRlZ29yeV9wcmVsb2FkKSApICR0aGlzLT5fY2F0ZWdvcnlfcHJlbG9hZCA9IGFycmF5KCk7CgkkY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKFRSVUUpOwoJZm9yZWFjaCggJGlkbGlzdCBhcyAkY29tcGlkICkgewoJICBpZiggaXNzZXQoJHRoaXMtPl9jYXRlZ29yeV9wcmVsb2FkWyRjb21waWRdKSApIGNvbnRpbnVlOwoKCSAgJHRoaXMtPl9jYXRlZ29yeV9wcmVsb2FkWyRjb21waWRdID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJGNhdGVnb3JpZXMgYXMgJG9uZWNhdCApIHsKCQkkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWRbJGNvbXBpZF1bJG9uZWNhdC0+aWRdID0gY2xvbmUgJG9uZWNhdDsKCSAgfQoJfQoKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQyB3aGVyZSBDLmNvbXBhbnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkbGlzdCkuJykgT1JERVIgQlkgQy5jb21wYW55X2lkJzsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCWlmKCAhJGRiciApIHJldHVybjsKCgl3aGlsZSggISRkYnItPkVPRiApIHsKCSAgJGNvbXBpZCA9ICRkYnItPmZpZWxkc1snY29tcGFueV9pZCddOwoJICAkY2F0aWQgPSAkZGJyLT5maWVsZHNbJ2NhdGVnb3J5X2lkJ107CgkgIGlmKCAhaXNzZXQoJGNhdGVnb3JpZXNbJGNhdGlkXSkgKSB7CgkJJGRici0+TW92ZU5leHQoKTsKCQljb250aW51ZTsKCSAgfQoKCSAgJG9iaiA9JiAkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWRbJGNvbXBpZF1bJGNhdGlkXTsKCSAgJG9iai0+dmFsdWUgPSB0cnVlOwoJICAkb2JqLT5leHRyYTEgPSAkZGJyLT5maWVsZHNbJ2V4dHJhMSddOwoJICAkb2JqLT5leHRyYTIgPSAkZGJyLT5maWVsZHNbJ2V4dHJhMiddOwoJICAkb2JqLT5leHRyYTMgPSAkZGJyLT5maWVsZHNbJ2V4dHJhMyddOwoJICBpZiggJG9iai0+aW1hZ2UgKSB7CgkJJHBhdGggPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdjb21wYW55ZGlyZWN0b3J5JywnY2F0Jy4kY2F0aWQpOwoJCWlmKCBmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRwYXRoLCRvYmotPmltYWdlKSkgKSB7CgkJICAkb2JqLT5pbWFnZV91cmwgPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLiIvY29tcGFueWRpcmVjdG9yeS9jYXR7JGNhdGlkfS8iLiRvYmotPmltYWdlOwoJCX0KCQlpZiggZmlsZV9leGlzdHMoY21zX2pvaW5fcGF0aCgkcGF0aCwndGh1bWJfJy4kb2JqLT5pbWFnZSkpICkgewoJCSAgJG9iai0+dGh1bWJfdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvY2F0eyRjYXRpZH0vdGh1bWJfIi4kb2JqLT5pbWFnZTsKCQl9CgkgIH0KCSAgJGRici0+TW92ZU5leHQoKTsKCX0KICB9CgogIGZ1bmN0aW9uIEdldENhdGVnb3JpZXNGb3JDb21wYW55KCRpZCkKICB7CgkkdGhpcy0+cHJlbG9hZENhdGVnb3J5RGF0YSgkaWQpOwoJaWYoIGlzX2FycmF5KCR0aGlzLT5fY2F0ZWdvcnlfcHJlbG9hZCkgJiYgaXNzZXQoJHRoaXMtPl9jYXRlZ29yeV9wcmVsb2FkWyRpZF0pICkgcmV0dXJuICR0aGlzLT5fY2F0ZWdvcnlfcHJlbG9hZFskaWRdOwoKCWRpZSgnSW50ZXJuYWwgRXJyb3I6IEdldENhdGVnb3JpZXNGb3JDb21wYW55IHdhcyBub3QgcHJlbG9hZGVkJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZERlZnNGb3JDb21wYW55KCRpZCwkYWRtaW4gPSBmYWxzZSwkcHVibGljID0gdHJ1ZSkKICB7CglyZXR1cm4gY2RfdXRpbHM6OmdldF9maWVsZGRlZnNfZm9yX2NvbXBhbnkoJGlkLCRhZG1pbiwkcHVibGljKTsKICB9CgogIGZ1bmN0aW9uIFNlYXJjaFJlc3VsdFdpdGhQYXJhbXMoJHJldHVybmlkLCAkY29tcGFueWlkLCAkYXR0ciA9ICcnLCAkcGFyYW1zID0gYXJyYXkoKSkKICB7CgkkZ0NtcyA9IGNtc21zKCk7CgkkcmVzdWx0ID0gYXJyYXkoKTsKCglpZiAoJGF0dHIgIT0gJ2NvbXBhbnknKSByZXR1cm4gJHJlc3VsdDsKCgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCSRxID0gIlNFTEVDVCBjb21wYW55X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPyBBTkQgc3RhdHVzID0gPyI7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJGNvbXBhbnlpZCwgJ3B1Ymxpc2hlZCcgKSApOwoJaWYgKCRkYnJlc3VsdCkgewoJICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoKCSAgJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwoJICBpZiggJGRldGFpbHBhZ2UgPiAxICkgJHJldHVybmlkID0gJGRldGFpbHBhZ2U7CgkgIGlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pICkgewoJCSR0bXAgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCh0cmltKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpOwoJCWlmKCAkdG1wID4gMCApICRyZXR1cm5pZCA9ICR0bXA7CgkgIH0KCgkgIC8vMCBwb3NpdGlvbiBpcyB0aGUgcHJlZml4IGRpc3BsYXllZCBpbiB0aGUgbGlzdCByZXN1bHRzLgoJICAkcmVzdWx0WzBdID0gJHRoaXMtPkdldEZyaWVuZGx5TmFtZSgpOwoKCSAgLy8xIHBvc2l0aW9uIGlzIHRoZSB0aXRsZQoJICAkcmVzdWx0WzFdID0gJHJvd1snY29tcGFueV9uYW1lJ107CgoJICAvLzIgcG9zaXRpb24gaXMgdGhlIFVSTCB0byB0aGUgdGl0bGUuCgkgICR1cmwgPSAiY29tcGFuaWVzLyRjb21wYW55aWQvJHJldHVybmlkLyIubXVuZ2Vfc3RyaW5nX3RvX3VybCgkcm93Wydjb21wYW55X25hbWUnXSk7CgoJICBpZiggaXNzZXQoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSkgKSAkdXJsIC49ICcvZCwnLnRyaW0oJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSk7CgoJICAkcmVzdWx0WzJdID0gJHRoaXMtPkNyZWF0ZVVSTCgnY250bnQwMScsJ2RldGFpbHMnLCRyZXR1cm5pZCxhcnJheSgnY29tcGFueWlkJz0+JGNvbXBhbnlpZCksZmFsc2UsCgkJCQkJCQkJCSR1cmwpOwoJfQoKCXJldHVybiAkcmVzdWx0OwogIH0KCiAgZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkKICB7CgkkcGFnZSA9IDE7CgkkZG9uZSA9IEZBTFNFOwoJd2hpbGUoICEkZG9uZSApIHsKCSAgJHBhcm1zID0gYXJyYXkoJ3N0YXR1cyc9PidwdWJsaXNoZWQnLCdwYWdlbGltaXQnPT4yNTAsJ3BhZ2UnPT4kcGFnZSk7CgkgICRmaWx0ZXIgPSBuZXcgY2RfY29tcGFueV9maWx0ZXIoJHBhcm1zKTsKCSAgY2RfY29tcGFueV9xdWVyeTo6c2V0X3Jlc3VsdF9tb2RlKGNkX2NvbXBhbnlfcXVlcnk6OlJFU1VMVFNfQ0RfQ09NUEFOWSk7CgkgICRxdWVyeSA9IG5ldyBjZF9jb21wYW55X3F1ZXJ5KCRmaWx0ZXIpOwoJICAkaXRlbXMgPSAkcXVlcnktPmdldF9yZXN1bHRzKCk7CgkgIGlmKCBpc19hcnJheSgkaXRlbXMpICYmIGNvdW50KCRpdGVtcykgKSB7CgkJZm9yZWFjaCggJGl0ZW1zIGFzICRpdGVtICkgewoJCSAgJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwkaXRlbS0+aWQsJ2NvbXBhbnknLCRpdGVtLT5nZXRfc2VhcmNoX3dvcmRzKCkpOwoJCX0KCSAgfQoJICAkcGFnaW5hdGlvbiA9ICRxdWVyeS0+Z2V0X3BhZ2luYXRpb24oKTsKCSAgJG5wYWdlcyA9ICRwYWdpbmF0aW9uLT5nZXRfcGFnZV9jb3VudCgpOwoJICBpZiggJHBhZ2UgPT0gJG5wYWdlcyApIHsKCQkkZG9uZSA9IFRSVUU7CgkJYnJlYWs7CgkgIH0KCSAgJHBhZ2UrKzsKCX0KICB9CgogIGZ1bmN0aW9uIENyZWF0ZUNvbXBhbnlQdWxsZG93bigkaWQsJG5hbWUsJHNlbGVjdGVkID0gJycpCiAgewoJJGRiID0gJHRoaXMtPkdldERiKCk7CgkkcXVlcnkgPSAnU0VMRUNUIGlkLGNvbXBhbnlfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgc3RhdHVzID0gXCdwdWJsaXNoZWRcJyc7CgoJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICk7CgkkY29tcGFuaWVzID0gYXJyYXkoKTsKCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKSB7CgkgICRjb21wYW5pZXNbJHJvd1snY29tcGFueV9uYW1lJ11dID0gJHJvd1snaWQnXTsKCX0KCgkkYWRkdGV4dCA9ICcnOwoJaWYoY291bnQoJGNvbXBhbmllcykgPT0gMCApICRhZGR0ZXh0PSdkaXNhYmxlZCc7CgkkZmxkID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oICRpZCwgJG5hbWUsICRjb21wYW5pZXMsIC0xLCAkc2VsZWN0ZWQsICRhZGR0ZXh0ICk7CglyZXR1cm4gJGZsZDsKICB9CgogIGZ1bmN0aW9uIEdldENvbXBhbnlOYW1lRnJvbUlkKCAkaWQgKQogIHsKCWlmKCAhaXNzZXQoICR0aGlzLT5fY29tcGFueV9uYW1lX2NhY2hlWyRpZF0gKSApIHsKCSAgJGRiID0gJHRoaXMtPkdldERiKCk7CgkgICRxdWVyeSA9ICJTRUxFQ1QgY29tcGFueV9uYW1lIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBpZCA9ID8iOwoJICAkbmFtZSA9ICRkYi0+R2V0T25lKCAkcXVlcnksIGFycmF5KCAkaWQgKSApOwoJICBpZighJG5hbWUpIHJldHVybiBGQUxTRTsKCSAgJHRoaXMtPl9jb21wYW55X25hbWVfY2FjaGVbJGlkXSA9ICRuYW1lOwoJfQoKCXJldHVybiAkdGhpcy0+X2NvbXBhbnlfbmFtZV9jYWNoZVskaWRdOwogIH0KCiAgLy8gcmFkaXVzIGluIG1pbGVzLgogIGZ1bmN0aW9uIEdldEJvdW5kaW5nQm94KCRsYXRpdHVkZSwkbG9uZ2l0dWRlLCRyYWRpdXMpCiAgewoJJGxuZ19taW4gPSAkbG9uZ2l0dWRlIC0gJHJhZGl1cyAvIGFicyhjb3MoZGVnMnJhZCgkbGF0aXR1ZGUpKSAqIDY5KTsKCSRsbmdfbWF4ID0gJGxvbmdpdHVkZSArICRyYWRpdXMgLyBhYnMoY29zKGRlZzJyYWQoJGxhdGl0dWRlKSkgKiA2OSk7CgkkbGF0X21pbiA9ICRsYXRpdHVkZSAtICgkcmFkaXVzIC8gNjkpOwoJJGxhdF9tYXggPSAkbGF0aXR1ZGUgKyAoJHJhZGl1cyAvIDY5KTsKCgkkdG1wID0gYXJyYXkoJGxhdF9taW4sJGxhdF9tYXgsJGxuZ19taW4sJGxuZ19tYXgpOwoJcmV0dXJuICR0bXA7CiAgfQoKICBmdW5jdGlvbiBVcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKQogIHsKCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJJHF1ZXJ5ID0gIlNFTEVDVCBpZCwgbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIjsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9ICIiOwoJICAkY3VycmVudF9sb25nX25hbWUgPSAiIjsKCSAgJGNvbnRlbnRfaWQgPSAkcm93WydpZCddOwoJICAkY3VycmVudF9wYXJlbnRfaWQgPSAkcm93WydpZCddOwoJICAkY291bnQgPSAwOwoKCSAgd2hpbGUgKCRjdXJyZW50X3BhcmVudF9pZCA+IC0xKSB7CgkJJHF1ZXJ5ID0gIlNFTEVDVCBpZCwgbmFtZSwgcGFyZW50X2lkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2hpZXIgV0hFUkUgaWQgPSA/IjsKCQkkcm93MiA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfcGFyZW50X2lkKSk7CgkJaWYgKCRyb3cyKSB7CgkJICAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdHJfcGFkKCRyb3cyWydpZCddLCA1LCAnMCcsIFNUUl9QQURfTEVGVCkgLiAiLiIgLiAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb247CgkJICAkY3VycmVudF9sb25nX25hbWUgPSAkcm93MlsnbmFtZSddIC4gJyB8ICcgLiAkY3VycmVudF9sb25nX25hbWU7CgkJICAkY3VycmVudF9wYXJlbnRfaWQgPSAkcm93MlsncGFyZW50X2lkJ107CgkJICAkY291bnQrKzsKCQl9CgkJZWxzZSB7CgkJICAkY3VycmVudF9wYXJlbnRfaWQgPSAwOwoJCX0KCSAgfQoKCSAgaWYgKHN0cmxlbigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24pID4gMCkgewoJCSRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9IHN1YnN0cigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24sIDAsIHN0cmxlbigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24pIC0gMSk7CgkgIH0KCgkgIGlmIChzdHJsZW4oJGN1cnJlbnRfbG9uZ19uYW1lKSA+IDApICRjdXJyZW50X2xvbmdfbmFtZSA9IHN1YnN0cigkY3VycmVudF9sb25nX25hbWUsIDAsIHN0cmxlbigkY3VycmVudF9sb25nX25hbWUpIC0gMyk7CgkgICRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2hpZXIgU0VUIGhpZXJhcmNoeSA9ID8sIGxvbmdfbmFtZSA9ID8gV0hFUkUgaWQgPSA/IjsKCSAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAkY3VycmVudF9sb25nX25hbWUsICRjb250ZW50X2lkKSk7Cgl9CiAgfQoKICBmdW5jdGlvbiBDcmVhdGVQYXJlbnREcm9wZG93bigkaWQsICRjYXRpZCA9IC0xLCAkc2VsZWN0ZWR2YWx1ZSA9IC0xLCAkbmFtZSA9ICdwYXJlbnQnKQogIHsKCSRpdGVtcyA9IGNkX3V0aWxzOjpnZXRfaGllcmFyY2h5X2xpc3QoJGNhdGlkKTsKCXJldHVybiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICRuYW1lLCAkaXRlbXMsIC0xLCAkc2VsZWN0ZWR2YWx1ZSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ByZXR0eV91cmwoJGlkLCRhY3Rpb24sJHJldHVybmlkPScnLCRwYXJhbXM9YXJyYXkoKSwkaW5saW5lPWZhbHNlKQogIHsKCWdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CglpZiggaXNzZXQoJHBhcmFtc1snbm9wcmV0dHknXSkgKSByZXR1cm4gJyc7CglpZiggaXNzZXQoJHBhcmFtc1snanVuayddKSApIHVuc2V0KCRwYXJhbXNbJ2p1bmsnXSk7CgoJJHVybCA9ICcnOwoJc3dpdGNoKCAkYWN0aW9uICkgewoJY2FzZSAnZGV0YWlsJzogLy8gc3lub255bQoJY2FzZSAnZGV0YWlscyc6CgkgICR0aGVfY29tcGFueSA9IG51bGw7CgkgIGlmKCBpc3NldCgkcGFyYW1zWydjb21waWQnXSkgKSAkdGhlX2NvbXBhbnkgPSAoaW50KSRwYXJhbXNbJ2NvbXBpZCddOwoJICBpZiggaXNzZXQoJHBhcmFtc1snY29tcGFueWlkJ10pICkgJHRoZV9jb21wYW55ID0gKGludCkkcGFyYW1zWydjb21wYW55aWQnXTsKCSAgaWYoICEkdGhlX2NvbXBhbnkgKSByZXR1cm47CgoJICAvLyBnZXQgcmF3IGRhdGFiYXNlIGRhdGEgb3V0IG9mIGNhY2hlLCBpZiB3ZSBjYW5ub3QgZmluZCB0aGlzIGRhdGEgaW4gdGhlIGNhY2hlLCB3ZSBjYW5ub3QgYnVpbGQgYSBwcmV0dHkgdXJsLgoJICBpZiggIWNnZV90bXBkYXRhOjpleGlzdHMoJ2NvbXBhbnlkaXJfJy4kdGhlX2NvbXBhbnkpICkgcmV0dXJuOwoJICAkcmVjID0gY2dlX3RtcGRhdGE6OmdldCgnY29tcGFueWRpcl8nLiR0aGVfY29tcGFueSk7CgkgIGlmKCBpc19hcnJheSgkcmVjKSAmJiBpc3NldCgkcmVjWydpZCddKSApICRyZWMgPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkcmVjKTsKCSAgaWYoICFpc19vYmplY3QoJHJlYykgfHwgIWlzc2V0KCRyZWMtPmlkKSB8fCAkcmVjLT5pZCAhPSAkdGhlX2NvbXBhbnkgKSByZXR1cm47CgoJICBpZiggaXNzZXQoJHJlYy0+dXJsKSAmJiAkcmVjLT51cmwgIT0gJycgKSB7CgkJLy8gd29vdCwgd2UgaGF2ZSBhIHVybC4KCQkkdXJsID0gJHJlYy0+dXJsOwoJICB9CgkgIGVsc2UgewoJCS8vIG9sZCB1Z2xpZXIgdXJscwoJCSR1cmwgPSAiY29tcGFuaWVzL3skcmVjLT5pZH0vJHJldHVybmlkLyIubXVuZ2Vfc3RyaW5nX3RvX3VybCgkcmVjLT5jb21wYW55X25hbWUpOwoJCWlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSApICR1cmwgLj0gJy9kLCcuJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXTsKCSAgfQoJICBicmVhazsKCgljYXNlICdkZWZhdWx0JzoKICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydyYWRpdXMnXSkgKSB7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgJiYgIWlzc2V0KCRwYXJhbXNbJ2hpZXInXSkgKSB7CiAgICAgICAgICAkdXJsID0gImNvbXBhbmllcy9ieWNhdGVnb3J5LyIuKGludCkkcGFyYW1zWydjYXRlZ29yeWlkJ10uIi97JHJldHVybmlkfSI7CiAgICAgICAgICAkY2F0cyA9IGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcyhUUlVFKTsKICAgICAgICAgIGlmKCBpc3NldCgkY2F0c1soaW50KSRwYXJhbXNbJ2NhdGVnb3J5aWQnXV0pICkgewogICAgICAgICAgICAkc3RyID0gJGNhdHNbKGludCkkcGFyYW1zWydjYXRlZ29yeWlkJ11dLT5sb25nX25hbWU7CiAgICAgICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnIHwgJywnLScsJHN0cik7CiAgICAgICAgICAgICR1cmwgLj0gJy8nLm11bmdlX3N0cmluZ190b191cmwoJHN0cik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXInXSkgJiYgIWlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgKSB7CiAgICAgICAgICAkdXJsID0gImNvbXBhbmllcy9ieWhpZXJhcmNoeS8iLihpbnQpJHBhcmFtc1snaGllciddLiIveyRyZXR1cm5pZH0iOwogICAgICAgICAgJGhpZXJsaXN0ID0gY2RfdXRpbHM6OmdldF9oaWVyYXJjaHkoKTsKICAgICAgICAgIGZvcmVhY2goICRoaWVybGlzdCBhcyAkcm93ICkgewogICAgICAgICAgICBpZiggJHJvd1snaWQnXSA9PSAoaW50KSRwYXJhbXNbJ2hpZXInXSApIHsKICAgICAgICAgICAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCcgfCAnLCctJywkcm93Wydsb25nX25hbWUnXSk7CiAgICAgICAgICAgICAgJHVybCAuPSAnLycubXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CgkgIH0KCSAgYnJlYWs7Cgl9CgoJcmV0dXJuICR1cmw7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4K]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LnBhZ2VvcHRpb25zIHsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7Cn0KLnJvdzEgewogIGJhY2tncm91bmQ6ICNmMmYyZjI7Cn0KLnJvdzIgewogIGJhY2tncm91bmQ6ICNmYWZhZmE7Cn0KLnJvdzFob3ZlciwgLnJvdzJob3ZlciwgLnJvdzE6aG92ZXIsIC5yb3cyOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjZGRkOwp9CgoKZGl2LmhpZXJsaXN0IHVsIHsKICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZSAhaW1wb3J0YW50Owp9CmRpdi5oaWVybGlzdCB1bC5ub2luZGVudCB7CiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKfQpkaXYuaGllcmxpc3QgZGl2LmhpZXJub2RlIHsKICBoZWlnaHQ6IDM2cHg7CiAgbGluZS1oZWlnaHQ6IDM2cHg7CiAgZm9udC1zaXplOiAxMnB4OwogIHdpZHRoOiAxMDAlOwp9CmRpdi5oaWVybm9kZSBzcGFuIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQpkaXYuaGllcmxpc3QgZGl2LmhpZXJuYW1lIHsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7CiAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgcGFkZGluZy1yaWdodDogNXB4Owp9CmRpdi5oaWVybGlzdCBkaXYuaGllcmljb24gewogIGhlaWdodDogaW5oZXJpdDsKICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICBmbG9hdDogcmlnaHQ7CiAgbWluLXdpZHRoOiAxNnB4OwogIHBhZGRpbmctbGVmdDogNXB4OwogIHBhZGRpbmctcmlnaHQ6IDVweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KZGl2LmhpZXJsaXN0IGRpdi5oaWVyaWNvbiBpbWcgewogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cn0KZGl2LmhpZXJsaXN0ID4gZGl2LmhlYWRlciB7CiAgbWFyZ2luLXRvcDogNXB4OwogIGJhY2tncm91bmQtY29sb3I6ICMyMzIzMjM7CiAgY29sb3I6ICNmYTgwMDQ7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgcGFkZGluZy1yaWdodDogNXB4OwogIGhlaWdodDogNDVweDsKICBsaW5lLWhlaWdodDogNDVweDsKICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7CiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsKfQpkaXYuaGllcmxpc3QgYSB7CiAgY29sb3I6ICMyMzIzMjM7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CmRpdi5oaWVybGlzdCBhOmhvdmVyIHsKICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoKICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhpcyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFuY2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/doc/refined_search_notes.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[MS4gIFNldCB0aGUgc2VhcmNoa2V5IHBhcmFtZXRlciBpbiB0aGUgcGFnZSwgYmVmb3JlIHtjb250ZW50fSBpcyBjYWxsZWQuCiAgICAqIG5vdGUgaWYgc3VtbWFyeSB2aWV3IGlzIG9uIGRpZmZlcmVudCBwYWdlIHRoYW4gc2VhcmNoIGZvcm0sIHNldCB0aGlzIHZhcmlhYmxlIG9uIGJvdGggcGFnZXMKICAgIHtjZ2VfbW9kdWxlX2hpbnQgbW9kdWxlPUNvbXBhbnlEaXJlY3Rvcnkgc2VhcmNoa2V5PSdzb21ldGhpbmcnfQoKMi4gIFNldCB0aGUgc3VtbWFyeXRlbXBsYXRlIHBhcmFtZXRlciBpbiB0aGUgcGFnZSwgYmVmb3JlIHtjb250ZW50fSBpcyBjYWxsZWQuCiAgICB7Y2dlX21vZHVsZV9oaW50IG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IHN1bW1hcnl0ZW1wbGF0ZT0nc29tZXRoaW5nJ30KCjMuICBDYWxsIHtDb21wYW55RGlyZWN0b3J5IGFjdGlvbj1zZWFyY2h9IHRvIGRpc3BsYXkgdGhlIHNlYXJjaCBmb3JtCgo0LiAgSW4gc3VtbWFyeSB0ZW1wbGF0ZSwgY3JlYXRlIGEgbmV3IGZvcm0KICAgIDxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSJ7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1kZWZhdWx0IHVybG9ubHk9MX0iPgogICAgLi4uCiAgICA8L2Zvcm0+CiAgICBhOiBhc3N1bWUgY250bnQwMSBmb3IgdGhlICdpZCcuLi4gc28gcHJlZml4IGFsbCBlbGVtZW50IG5hbWVzIHRoYXQgcmVwcmVzZW50IENEIHBhcmFtZXRlcnMgd2l0aCAnY25udDAxJwogICAgYjogYnVpbGQgdGhlIGZvcm0sIG5hbWUgb2YgYWxsIGVsZW1lbnRzIHNob3VsZCBtYXRjaCBDRCBwYXJhbWV0ZXIgbmFtZXMgKHdpdGggdGhlIHByZWZpeCkuCiAgICAgICBpLmU6ICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY250bnQwMW5hbWUiLz4KCiAgICAK]]></data>
	</file>
	<file>
	  <filename>/function.admin_companiestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR0aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwokdWlkID0gZ2V0X3VzZXJpZCgpOwokZmlsdGVyID0gYXJyYXkoKTsKJGZpbHRlclsnbmFtZSddID0gJyc7CiRmaWx0ZXJbJ2FkZHJlc3MnXSA9ICcnOwokZmlsdGVyWydwYWdlbGltaXQnXSA9IDUwOwokZmlsdGVyWydwYWdlJ10gPSAxOwokZmlsdGVyWydzb3J0YnknXSA9ICdjb21wYW55X25hbWUnOwokZmlsdGVyWydzb3J0b3JkZXInXSA9ICdhc2MnOwokZmlsdGVyWydzdGF0dXMnXSA9IC0xOwokZmlsdGVyWydoaWVyJ10gPSAnJzsKJGZpbHRlclsnY2F0ZWdvcnlpZCddID0gLTE7CgppZiggaXNzZXQoJHBhcmFtc1snZmlsdGVyX3N1Ym1pdCddKSApIHsKICAkZmlsdGVyWyduYW1lJ10gPSB0cmltKCRwYXJhbXNbJ2ZpbHRlcl9uYW1lJ10pOwogICRmaWx0ZXJbJ2FkZHJlc3MnXSA9IHRyaW0oJHBhcmFtc1snZmlsdGVyX2FkZHJlc3MnXSk7CiAgJGZpbHRlclsncGFnZWxpbWl0J10gPSAoaW50KSRwYXJhbXNbJ2ZpbHRlcl9wYWdlbGltaXQnXTsKICAkZmlsdGVyWydzb3J0YnknXSA9IHRyaW0oJHBhcmFtc1snZmlsdGVyX3NvcnRieSddKTsKICAkZmlsdGVyWydzb3J0b3JkZXInXSA9IHRyaW0oJHBhcmFtc1snZmlsdGVyX3NvcnRvcmRlciddKTsKICBpZiggaXNzZXQoJHBhcmFtc1snZmlsdGVyX2NhdGVnb3J5aWQnXSkgKSAkZmlsdGVyWydjYXRlZ29yeWlkJ10gPSAoaW50KSRwYXJhbXNbJ2ZpbHRlcl9jYXRlZ29yeWlkJ107CiAgJGZpbHRlclsnc3RhdHVzJ10gPSB0cmltKCRwYXJhbXNbJ2ZpbHRlcl9zdGF0dXMnXSk7CiAgJGZpbHRlclsnaGllciddID0gdHJpbSgkcGFyYW1zWydmaWx0ZXJfaGllcmFyY2h5J10pOwogIGlmKCAkZmlsdGVyWyduYW1lJ10gIT0gJycgfHwgJGZpbHRlclsnYWRkcmVzcyddICE9ICcnIHx8CgkgICRmaWx0ZXJbJ2NhdGVnb3J5aWQnXSA+IDAgfHwgJGZpbHRlclsnaGllciddID4gMCApIHsKCSRmaWx0ZXJbJ2FwcGxpZWQnXSA9IDE7CiAgfQogIGVsc2UgewoJdW5zZXQoJGZpbHRlclsnYXBwbGllZCddKTsKICB9CiAgJGZpbHRlclsncGFnZSddID0gMTsKICBzZXRfcHJlZmVyZW5jZSgkdWlkLCdjb21wYW55ZF9maWx0ZXInLHNlcmlhbGl6ZSgkZmlsdGVyKSk7Cn0KZWxzZWlmKCBpc3NldCgkcGFyYW1zWydmaWx0ZXJfcmVzZXQnXSkgKSB7CiAgdW5zZXQoJGZpbHRlclsnYXBwbGllZCddKTsKICBzZXRfcHJlZmVyZW5jZSgkdWlkLCdjb21wYW55ZF9maWx0ZXInLHNlcmlhbGl6ZSgkZmlsdGVyKSk7Cn0KZWxzZSB7CiAgLy8gZ2V0IGl0IGZyb20gdGhlIHByZWZlcmVuY2UuCiAgJHRtcCA9IGdldF9wcmVmZXJlbmNlKCR1aWQsJ2NvbXBhbnlkX2ZpbHRlcicpOwogIGlmKCAkdG1wICkgJGZpbHRlciA9IHVuc2VyaWFsaXplKCR0bXApOwogIGlmKCBpc3NldCgkcGFyYW1zWydwYWdlJ10pICkgJGZpbHRlclsncGFnZSddID0gKGludCkkcGFyYW1zWydwYWdlJ107CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3BhZ2UnXSkgKSAkZmlsdGVyWydwYWdlJ10gPSAoaW50KSRwYXJhbXNbJ2NkX3BhZ2UnXTsKfQoKJGZpbHRlcl9vYiA9IG5ldyBjZF9jb21wYW55X2ZpbHRlcigkZmlsdGVyKTsKJGZpbHRlcl9vYlsnZGVlcCddID0gMDsKJGZpbHRlcl9vYlsnZXhwaXJlZG93bmVycyddID0gMTsKJHF1ZXJ5ID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGZpbHRlcl9vYik7CiRwYWdpbmF0aW9uID0gJHF1ZXJ5LT5nZXRfcGFnaW5hdGlvbigpOwokcGFnaW5hdGlvbi0+c2V0X2FjdGlvbignZGVmYXVsdGFkbWluJyk7CiR0aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwokZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiRlbnRyeWFycmF5ID0gJHF1ZXJ5LT5nZXRfcmVzdWx0cygkaWQsJHJldHVybmlkKTsKaWYoIGlzX2FycmF5KCRlbnRyeWFycmF5KSAmJiBjb3VudCgkZW50cnlhcnJheSkgKSB7CiAgJGtleXMgPSBhcnJheV9rZXlzKCRlbnRyeWFycmF5KTsKICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgka2V5cyk7ICRpKysgKSB7Cgkkcm93ID0mICRlbnRyeWFycmF5WyRrZXlzWyRpXV07Cgkkcm93LT5wbGFpbl9jb21wYW55X25hbWUgPSAkcm93LT5jb21wYW55X25hbWU7Cgkkcm93LT5jb21wYW55X25hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0Y29tcGFueScsICRyZXR1cm5pZCwgJHJvdy0+cGxhaW5fY29tcGFueV9uYW1lLCBhcnJheSgnY29tcGlkJz0+JHJvdy0+aWQpKTsKCWlmKCBpc19vYmplY3QoJGZldSkgJiYgJHJvdy0+b3duZXJfaWQgPiAwICkgJHJvdy0+b3duZXIgPSAkZmV1LT5HZXRVc2VyTmFtZSgkcm93LT5vd25lcl9pZCk7Cgkkcm93LT5jb3B5bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnY29weWNvbXBhbnknLCRyZXR1cm5pZCwkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2NvcHkuZ2lmJywkdGhpcy0+TGFuZygnY29weScpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ2NvbXBpZCc9PiRyb3ctPmlkKSk7Cgkkcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRjb21wYW55JywgJHJldHVybmlkLCAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnY29tcGlkJz0+JHJvdy0+aWQpKTsKCgkkcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVsZXRlY29tcGFueScsICRyZXR1cm5pZCwKCQkJCQkJCQkJCSAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwKCQkJCQkJCQkJCSBhcnJheSgnY29tcGlkJz0+JHJvdy0+aWQpLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKICB9Cn0KCgokc21hcnR5LT5hc3NpZ25fYnlfcmVmKCdpdGVtcycsICRlbnRyeWFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpOwokc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRjb21wYW55JywgJHJldHVybmlkLCAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygnYWRkY29tcGFueScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCksICcnLCBmYWxzZSwgZmFsc2UsICcnKSAuJyAnLiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRjb21wYW55JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkY29tcGFueScpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKaWYoIGNvdW50KCRlbnRyeWFycmF5KSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2V4cG9ydGNzdicsICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdleHBvcnRjc3YnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnZXhwb3J0Y3N2JyksJ2ljb25zL3N5c3RlbS9leHBvcnQuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKSk7Cn0KJHNtYXJ0eS0+YXNzaWduKCdpbXBvcnRjc3YnLCAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2ltcG9ydGNzdicpLCdpY29ucy9zeXN0ZW0vaW1wb3J0LmdpZicsYXJyYXkoKSwnJywnJyxmYWxzZSkpOwokc21hcnR5LT5hc3NpZ24oJ2ltcG9ydGttbCcsICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdpbXBvcnRrbWwnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnaW1wb3J0a21sJyksJ2ljb25zL3N5c3RlbS9pbXBvcnQuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKSk7CiRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7CiRzbWFydHktPmFzc2lnbignY29tcGFueXRleHQnLCAkdGhpcy0+TGFuZygnY29tcGFueScpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWJzaXRldGV4dCcsICR0aGlzLT5MYW5nKCd3ZWJzaXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ2ZpbHRlcl9mb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2RlZmF1bHRhZG1pbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJfZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignYnVsa19mb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2J1bGsnKSk7CiRzbWFydHktPmFzc2lnbignYnVsa19mb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXInLCRmaWx0ZXIpOwoKJHNvcnRieSA9IGFycmF5KCk7CiRzb3J0YnlbJ2lkJ10gPSAkdGhpcy0+TGFuZygnaWQnKTsKJHNvcnRieVsnY29tcGFueV9uYW1lJ10gPSAkdGhpcy0+TGFuZygnY29tcGFueW5hbWUnKTsKJHNvcnRieVsncGhvbmUnXSA9ICR0aGlzLT5MYW5nKCd0ZWxlcGhvbmUnKTsKJHNvcnRieVsnZmF4J10gPSAkdGhpcy0+TGFuZygnZmF4Jyk7CiRzb3J0YnlbJ2VtYWlsJ10gPSAkdGhpcy0+TGFuZygnY29udGFjdGVtYWlsJyk7CiRzb3J0YnlbJ3dlYnNpdGUnXSA9ICR0aGlzLT5MYW5nKCd3ZWJzaXRlJyk7CiRzb3J0YnlbJ2FkZHJlc3MnXSA9ICR0aGlzLT5MYW5nKCdhZGRyZXNzJyk7CiRzb3J0YnlbJ2NyZWF0ZWQnXSA9ICR0aGlzLT5MYW5nKCdjcmVhdGVkZGF0ZScpOwokc29ydGJ5Wydtb2RpZmllZCddID0gJHRoaXMtPkxhbmcoJ21vZGlmaWVkZGF0ZScpOwokc21hcnR5LT5hc3NpZ24oJ3NvcnRpbmdzJywkc29ydGJ5KTsKJHNvcnRvcmRlcnMgPSBhcnJheSgpOwokc29ydG9yZGVyc1snYXNjJ10gPSAkdGhpcy0+TGFuZygnYXNjZW5kaW5nJyk7CiRzb3J0b3JkZXJzWydkZXNjJ10gPSAkdGhpcy0+TGFuZygnZGVzY2VuZGluZycpOwokc21hcnR5LT5hc3NpZ24oJ3NvcnRvcmRlcnMnLCRzb3J0b3JkZXJzKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlbGltaXRzJyxhcnJheSg1PT41LDI1PT4yNSw1MD0+NTAsMTAwPT4xMDAsMjUwPT4yNTAsMTAwMD0+MTAwMCkpOwokc3RhdHVzZXMgPSBhcnJheSgpOwokc3RhdHVzZXNbJy0xJ10gPSAkdGhpcy0+TGFuZygnYW55Jyk7CiRzdGF0dXNlc1snZHJhZnQnXSA9ICR0aGlzLT5MYW5nKCdkcmFmdCcpOwokc3RhdHVzZXNbJ3B1Ymxpc2hlZCddID0gJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpOwokc3RhdHVzZXNbJ2Rpc2FibGVkJ10gPSAkdGhpcy0+TGFuZygnZGlzYWJsZWQnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXNlcycsJHN0YXR1c2VzKTsKewogICR0bXAgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwogIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCSRjYXRzID0gYXJyYXkoKTsKCSRjYXRzWy0xXSA9ICR0aGlzLT5MYW5nKCdhbnknKTsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJICAkcm93ID0mICR0bXBbJGldOwoJICAkY2F0c1skcm93LT5pZF0gPSAkcm93LT5uYW1lOwoJfQoJJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywkY2F0cyk7CiAgfQp9CgppZiggJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCkgPiAxICkgJHNtYXJ0eS0+YXNzaWduKCduYXYnLCRwYWdpbmF0aW9uKTsKCiNEaXNwbGF5IHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY29tcGFueWxpc3QudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_email_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlX2VtYWlsX3RlbXBsYXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2VtYWlsX3N1YmplY3QnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfc3ViamVjdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWFpbF90ZW1wbGF0ZScsJHRoaXMtPkdldFRlbXBsYXRlKCdhZG1pbl9mZWVkaXRfZW1haWxfdGVtcGxhdGUnKSk7CiRzbWFydHktPmFzc2lnbignZW1haWxfaXNodG1sJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX2lzaHRtbCcpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZW1haWxfdGVtcGxhdGVfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKJHRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CgokbWF4ID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBtYXgoaXRlbV9vcmRlcikgYXMgbWF4X2l0ZW1fb3JkZXIgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIik7CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIE9SREVSIEJZIGl0ZW1fb3JkZXIiOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewogICRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCiAgJG9uZXJvdy0+aWQgPSAkcm93WydpZCddOwogICRvbmVyb3ctPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRyb3dbJ25hbWUnXSwgYXJyYXkoJ2ZkaWQnPT4kcm93WydpZCddKSk7CiAgJG9uZXJvdy0+dHlwZSA9ICRyb3dbJ3R5cGUnXTsKICAkb25lcm93LT5tYXhfbGVuZ3RoID0gJHJvd1snbWF4X2xlbmd0aCddOwogICRvbmVyb3ctPml0ZW1fb3JkZXIgPSAkcm93WydpdGVtX29yZGVyJ107CgogIGlmICgkb25lcm93LT5pdGVtX29yZGVyID4gMSkgewoJJG9uZXJvdy0+dXBsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbW92ZWZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywgJHRoaXMtPkxhbmcoJ3VwJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZkaWQnPT4kcm93WydpZCddLCAnZGlyJz0+J3VwJykpOwogIH0KICBlbHNlIHsKCSRvbmVyb3ctPnVwbGluayA9ICcnOwogIH0KICBpZiAoJG1heCA+ICRvbmVyb3ctPml0ZW1fb3JkZXIpIHsKCSRvbmVyb3ctPmRvd25saW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbW92ZWZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmJywgJHRoaXMtPkxhbmcoJ2Rvd24nKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10sICdkaXInPT4nZG93bicpKTsKICB9CiAgZWxzZSB7Cgkkb25lcm93LT5kb3dubGluayA9ICcnOwogIH0KCiAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSkpOwoKICAkb25lcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVsZXRlZmllbGRkZWYnLCAkcmV0dXJuaWQsICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10pLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKCiAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7Cn0KCiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkZW50cnlhcnJheSk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKCiRzbWFydHktPmFzc2lnbignZmllbGRkZWZ0ZXh0JywgJHRoaXMtPkxhbmcoJ2ZpZWxkZGVmJykpOwokc21hcnR5LT5hc3NpZ24oJ3R5cGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3R5cGUnKSk7CgojRGlzcGxheSB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ZpZWxkZGVmbGlzdC50cGwnKTsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJGdDbXMgPSBjbXNtcygpOwokY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwokc29ydG9yZGVyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NvcnRvcmRlcicsJ2FzYycpOwokc29ydGJ5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NvcnRieScsJ2NvbXBhbnlfbmFtZScpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlcHJlZnMnLCRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlscGFnZScsJHRoaXMtPkxhbmcoJ3Byb21wdF9kZXRhaWxwYWdlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2RldGFpbHBhZ2UnLAkkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnKSwkaWQuJ2RldGFpbHBhZ2UnKSk7Cgokc29ydG9yZGVycyA9IGFycmF5KCR0aGlzLT5MYW5nKCdhc2NlbmRpbmcnKT0+J2FzYycsJHRoaXMtPkxhbmcoJ2Rlc2NlbmRpbmcnKT0+J2Rlc2MnKTsKJHNtYXJ0eS0+YXNzaWduKCdzb3J0b3JkZXJzJyxhcnJheV9mbGlwKCRzb3J0b3JkZXJzKSk7CiRzbWFydHktPmFzc2lnbignc29ydG9yZGVyJywkc29ydG9yZGVyKTsKCiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoIGlzX29iamVjdCgkZmV1KSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2Zyb250ZW5kY3JlYXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfY3JlYXRlJywwKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdmcm9udGVuZGRlbGV0ZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2RlbGV0ZScsMSkpOwogICRzbWFydHktPmFzc2lnbignZnJvbnRlbmRjaGFuZ2VzdGF0dXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jaGFuZ2VzdGF0dXMnLDApKTsKCiAgJG51bXMgPSBhcnJheSgpOwogICRudW1zWycwJ10gPSAnMCc7CiAgJG51bXNbJzEnXSA9ICcxJzsKICAkbnVtc1snNSddID0gJzUnOwogICRudW1zWycxMCddID0gJzEwJzsKICAkbnVtc1snMjUnXSA9ICcyNSc7CiAgJG51bXNbJzUwJ10gPSAnNTAnOwogICRudW1zWycxMDAnXSA9ICcxMDAnOwogICRudW1zWycxNTAnXSA9ICcxNTAnOwogICRudW1zWycyMDAnXSA9ICcyMDAnOwogICRudW1zWycyNTAnXSA9ICcyNTAnOwogICRudW1zWyc1MDAnXSA9ICc1MDAnOwogICRudW1zWycxMDAwJ10gPSAnMTAwMCc7CiAgJG51bXNbJzEwMDAwJ10gPSAnMTAwMDAnOwogICRzbWFydHktPmFzc2lnbignbnVtcycsJG51bXMpOwogICRzbWFydHktPmFzc2lnbignZnJvbnRlbmRudW1yZWNvcmRzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfbnVtcmVjb3JkcycsMCkpOwoKICAkc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLCR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnKTsKICAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1c2VzJyxhcnJheV9mbGlwKCRzdGF0dXNlcykpOwogICRzbWFydHktPmFzc2lnbignZnJvbnRlbmRuZXdzdGF0dXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9uZXdzdGF0dXMnLCdkcmFmdCcpKTsKfQoKJHNvcnRpbmdzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2NvbXBhbnluYW1lJyk9Pidjb21wYW55X25hbWUnLAoJCQkJICAkdGhpcy0+TGFuZygnYWRkcmVzcycpPT4nYWRkcmVzcycsCgkJCQkgICR0aGlzLT5MYW5nKCd0ZWxlcGhvbmUnKT0+J3RlbGVwaG9uZScsCgkJCQkgICR0aGlzLT5MYW5nKCdmYXgnKT0+J2ZheCcsCgkJCQkgICR0aGlzLT5MYW5nKCdjb250YWN0ZW1haWwnKT0+J2NvbnRhY3RfZW1haWwnLAoJCQkJICAkdGhpcy0+TGFuZygnd2Vic2l0ZScpPT4nd2Vic2l0ZScsCgkJCQkgICR0aGlzLT5MYW5nKCdjcmVhdGVkZGF0ZScpPT4nY3JlYXRlX2RhdGUnLAoJCQkJICAkdGhpcy0+TGFuZygnbW9kaWZpZWRkYXRlJyk9Pidtb2RpZmllZF9kYXRlJywKCQkJCSAgJHRoaXMtPkxhbmcoJ3JhbmRvbScpPT4ncmFuZG9tJyk7CiRxdWVyeSA9ICdTRUxFQ1QgbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgT1JERVIgQlkgbmFtZSBBU0MnOwokdG1wID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKaWYoIGlzX2FycmF5KCR0bXApICkgewogIGZvcmVhY2goJHRtcCBhcyAkb25lKSB7Cgkkc29ydGluZ3NbJG9uZV0gPSAnZjonLiRvbmU7CiAgfQp9CiRzbWFydHktPmFzc2lnbignc29ydGluZ3MnLGFycmF5X2ZsaXAoJHNvcnRpbmdzKSk7CiRzbWFydHktPmFzc2lnbignc29ydGJ5Jywkc29ydGJ5KTsKCiRzbWFydHktPmFzc2lnbignY29sbGVjdHN0YXRzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29sbGVjdHN0YXRzJywwKSk7CiRzbWFydHktPmFzc2lnbignZnJvbnRlbmRpbXBvcnQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9pbXBvcnQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdmcm9udGVuZF9zaG93ZXhwaXJlZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX3Nob3dleHBpcmVkJywwKSk7CiRzbWFydHktPmFzc2lnbignZnJvbnRlbmRfZW1haWxvbmFkZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2VtYWlsb25hZGQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdmcm9udGVuZF9lbWFpbG9uZWRpdCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2VtYWlsb25lZGl0JywwKSk7CiRzbWFydHktPmFzc2lnbignYWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMnLDEpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcmVwZW5kX3dlYnNpdGVfaHR0cCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXBlbmRfd2Vic2l0ZV9odHRwJywwKSk7CiRzbWFydHktPmFzc2lnbignYWRtaW53eXNpd3lnJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW53eXNpd3lnJywxKSk7CgokZ3JvdXBvcHMgPSAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7CiRhbGxncm91cHMgPSAkZ3JvdXBvcHMtPkxvYWRHcm91cHMoKTsKJGdyb3VwbGlzdCA9IGFycmF5KCk7CiRncm91cGxpc3RbLTFdID0gJHRoaXMtPkxhbmcoJ25vbmUnKTsKZm9yZWFjaCggJGFsbGdyb3VwcyBhcyAkb25lZ3JvdXAgKSB7CiAgJGdyb3VwbGlzdFskb25lZ3JvdXAtPmlkXSA9ICRvbmVncm91cC0+bmFtZTsKfQokc21hcnR5LT5hc3NpZ24oJ2dyb3VwbGlzdCcsJGdyb3VwbGlzdCk7CiRzbWFydHktPmFzc2lnbignZnJvbnRlbmRfZW1haWxncm91cCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2VtYWlsZ3JvdXAnLC0xKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3ByZWZzLnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_searchestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKZWNobyAnVE9ETyc7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_urlstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl91cmxzdGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ3VybF9yZXF1aXJlZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkpOwokc21hcnR5LT5hc3NpZ24oJ3VybF9hdXRvY3JlYXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX2F1dG9jcmVhdGUnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCd1cmxfcmVkaXJlY3RvbGQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcmVkaXJlY3RvbGQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCd1cmxfY3JlYXRlb25jb3B5JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX2NyZWF0ZW9uY29weScsMCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl91cmxzdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIHNlYXJjaCwgZmlsdGVyLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjb21wYW5pZXMuICBVc3VhbGx5IHRoaXMgaXMgdGhlIGNvbnRhY3QgaW5mb3JtYXRpb24gYW5kIGEgbG9nbywgYnV0IGl0IGlzIGZsZXhpYmlsZSBlbm91Z2ggdG8gYWxsb3cgZm9yIGV4dGVuZGFibGUgZmllbGRzLCBhbmQgZGlzY3JpbWluYXRpbmcgcHVibGljIGZyb20gcHJpdmF0ZSBkYXRhLjwvcD4KPHA+VGhpcyBtb2R1bGUgY291bGQgYmUgdXNlZCBmb3IgYSB2YXJpZXR5IG9mIHB1cnBvc2VzLiBJbmNsdWRpbmcgYSByZWdpb25hbCB0b3VyaXNtIHNpdGUsIGEgc3VwcGxpZXJzIGxpc3QsIG9yIGEgY29udGFjdCBsaXN0LiAgSXQgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgaXQgY291bGQgYmUgcmUtdXNlZCBmb3IgbWFueSBkaWZmZXJlbnQgcHVycG9zZXMuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+VGhlIGVhc2llc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyBieSBwbGFjaW5nIHRoZSA8Y29kZT57Q29tcGFueURpcmVjdG9yeX08L2NvZGU+IHRhZyBpbnRvIGVpdGhlciB5b3VyIHBhZ2UgdGVtcGxhdGUgb3IgcGFnZSBjb250ZW50LiAgWW91IHdvdWxkIHRoZW4gc3RhcnQgZWRpdGluZyByZWNvcmRzIGluIHRoZSAmcXVvdDtDb21wYW55IERpcmVjdG9yeSZxdW90OyBhZG1pbiBpbnRlcmZhY2UuICBFeHBsb3JlIHRoZSB2YXJpb3VzIHBhcmFtZXRlcnMgKGRlc2NyaWJlZCBiZWxvdykgZm9yIHdheXMgdG8gY3VzdG9taXplIHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPkN1c3RvbSBGaWVsZHMKICAgIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGV4dGVuZCB0aGUgYmFzaWMgZGF0YWJhc2UgbW9kZWwgYnkgYWRpbmcgY3VzdG9tIGZpZWxkcyB0byB0aGUgc3RydWN0dXJlLiAgVGhlcmUgYXJlIG51bWVyb3VzIGRpZmZlcmVudCB0eXBlcyBvZiBjdXN0b20gZmllbGRzLCBhbmQgc29tZSBtb2R1bGVzIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgdHlwZXMuICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIG1hcmsgY3VzdG9tZiBpZWxkcyBhcyBlZGl0YWJsZSBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlIG9ubHksIG9yIGFzIG5vbiBwdWJsaWMgKG5vdCBhdmFpbGFibGUgZm9yIGZyb250ZW5kIGRpc3BsYXkpLjwvcD4KICA8L2xpPgogIDxsaT5HZW9sb2NhdGluZwogICAgPHA+SWYgYSBzdWl0YWJsZSBtb2R1bGUgPGVtPihDR0dvb2dsZU1hcHMgb3IgQ0dHb29nbGVNYXBzMik8L2VtPiBpcyBpbnN0YWxsZWQsIHRoZW4gdGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBjb252ZXJ0aW5nIG1hbnkgYWRkcmVzcyBmb3JtYXRzIHRvIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgc28gdGhhdCBtYXBzIGNhbiBiZSBidWlsdCBmcm9tIHRoZSBDb21wYW55RGlyZWN0b3J5IGRhdGEuPC9wPgogIDwvbGk+CiAgPGxpPktNTCBJbXBvcnQKICAgIDxwPlRoaXMgbW9kdWxlIGNhbiBpbXBvcnQgYmFzaWMgY29tcGFueSBkYXRhIGZyb20gS01MIGZvcm1hdC48L3A+CiAgPC9saT4KICA8bGk+RmxleGlibGUgQVNDSUkgSW1wb3J0IGFuZCBFeHBvcnQKICAgIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGltcG9ydCBjb21wYW5pZXMsIGZpZWxkIGRlZmluaXRpb25zLCBhbmQgY2F0ZWdvcmllcyBmcm9tIGEgZmxleGlibGUgKHNlbWktdXNlci1kZWZpbmFibGUpIEFTQ0lJIGZvcm1hdC48L3A+CiAgPC9saT4KICA8bGk+RmxleGlibGUgQ2F0ZWdvcml6YXRpb24KICAgIDxwPlRoZSBzaXRlIGFkbWluaXN0cmF0b3IgY2FuIGNyZWF0ZSBhIGhpZXJhcmNoaWNhbCBkYXRhIHN0cnVjdHVyZS4gIEVhY2ggQ29tcGFueSByZWNvcmQgY2FuIGJlIGFzc29jaWF0ZWQgdG8gYSBwbGFjZSBpbnNpZGUgdGhhdCBoaWVyYXJjaGljYWwgZGF0YSBzdHJ1Y3R1cmUgdG8gYWxsb3cgZm9yIGZpbHRlcmluZywgb3IgZHJpbGwgZG93biBzZWFyY2VzLjwvcD4KICAgIDxwPkFkZGl0aW9uYWxseSwgdGhlIHNpdGUgYWRtaW5pc3RyYXRvciBjYW4gY3JlYXRlIGEgbGlzdCBvZiAmcXVvdDtjYXRlZ29yaWVzJnF1b3Q7LiAgRWFjaCBjb21wYW55IGxvY2F0aW9uIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUgY2F0ZWdvcmllcy4gIFRoaXMgaXMgdXNlZnVsIGZvciBzZWFyY2hpbmcgYW5kIGZpbHRlcmluZyBmdW5jdGlvbmFsaXR5LiAgRm9yIGRpc3BsYXkgcHVycG9zZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGVhY2ggY2F0ZWdvcnkgKHRocmVlIHVzZXIgZGVmaW5lZCBhcmVhcykuICBBbmQgd2hlbiBlZGl0aW5nIGEgY29tcGFueSByZWNvcmQsIGNhdGVnb3J5IGluZm9ybWF0aW9uIGNhbiBiZSBvdmVycmlkZW4gZm9yIGVhY2ggcmVjb3JkLjwvcD4KICA8L2xpPgogIDxsaT5GbGV4aWJsZSBVUkwgbWVjaGFuaXNtczwvbGk+CiAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgZm9yIHRoZSBzaXRlIGFkbWluaXN0cmF0b3IgdG8gc3BlY2lmeSBhIHVuaXF1ZSBTRU8gZnJpZW5kbHkgVVJMIGZvciB0aGUgZGV0YWlsIHZpZXcgb2YgZWFjaCBjb21wYW55IHJlY29yZC4gIFRoaXMgVVJMIHdvcmtzIGluIGFkZGl0aW9uIHRvIHRoZSBvdGhlciBTRU8gZnJpZW5kbHkgbWVjaGFuaXNtcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFjY2VzcyBhIGNvbXBhbnkgZGV0YWlsIHJlY29yZC48L3A+CiAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFdoZW4gdXNpbmcgU0VPIGZyaWVuZGx5IFVSTFMgaXQgaXMgaW1wb3J0YW50IHRvIHVzZSBjYW5vbmljYWwgVVJMUy48L3A+CiAgPGxpPkZyb250ZW5kIEVkaXRpbmcKICAgIDxwPlRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSBpcyBjYXBhYmxlIG9mIGFsbG93aW5nIGF1dGhvcml6ZWQgZnJvbnRlbmQgdXNlcnMgPGVtPihzZWUgdGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlKTwvZW0+IHRvIGFkZCBhbmQgbWFuYWdlIChldmVuIGltcG9ydCBmcm9tIENTVikgQ29tcGFueSByZWNvcmRzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGJ1aWxkaW5nIGEgZGlyZWN0b3J5IHNpdGUsIGZvciBleGFtcGxlIGZvciBhIHJlZ2lvbmFsIHRvdXJpc20gYm9hcmQgd2hlcmUgaW5kaXZpZHVhbCBzdWJzY3JpYmVycyBtYXkgbWFuYWdlIHRoZSB2aXNpYmxlIHB1YmxpYyBpbmZvcm1hdGlvbiBmb3Igb25lIG9yIG1vcmUgY29tcGFuaWVzLjwvcD4KICA8L2xpPgogIDxsaT5OdW1lcm91cyBkaXNwbGF5IG1lY2hhbmlzbXM8L2xpPgogIDxsaT5BZHZhbmNlZCBTZWFyY2ggYW5kIEZpbHRlcmluZyBDYXBhYmlsaXRpZXMKICAgIDxwPlNlYXJjaCBjYXBhYmlsdGllcyBjYW4gYmUgY3VzdG9taXplZCBpbiBudW1lcm91cyB3YXlzIGFuZCBhbHNvIGluY2x1ZGVzIHRoZSBwb3NzaWJsaXR5IGZvciBsb2NhdGlvbiBhd2FyZSBiYXNlZCBzZWFyY2hlcyBhbmQgcG9zdGNvZGUgYmFzZWQgc2VhcmNoZXMgPGVtPihSZXF1aXJlcyB0aGUgUG9zdENvZGUgbW9kdWxlKTwvZW0+PC9wPgogIDwvbGk+CiAgPGxpPkZsZXhpYmxlIFRlbXBsYXRpbmcgQ2FwYWJpbGl0aWVzPC9saT4KPC91bD4KCgo8aDM+U21hcnR5IFBsdWdpbnM8L2gzPgo8cD5UaGlzIG1vZHVsZSBzaGFyZXMgbnVtZXJvdXMgc21hcnR5IHBsdWdpbnMgdG8gbWFrZSB0ZW1wbGF0ZSBkZXNpZ24gYW5kIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IHNpbXBsZXI6PC9wPgo8dWw+CjxsaT48c3Ryb25nPntjZF9oaWVyYnJlYWRjcnVtYiBoaWVyPWludCBbb3B0aW9uc119PC9zdHJvbmc+IC0gQ3JlYXRlIGEgc2VyaWVzIG9mIGxpbmtzIHJlcHJlc2VudGluZyB0aGUgYnJlYWRjcnVtYiB0byBhIHBhcnRpY3VsYXIgaGllcmFyY2h5IGlkLiAgRWFjaCBsaW5rIHdpbGwgZ2VuZXJhdGUgYSBzdW1tYXJ5IHZpZXcgb2YgY29tcGFuaWVzIGluIHRoYXQgaGllcmFyY2h5Ljxici8+T3B0aW9uczoKICA8dWw+CiAgICA8bGk+aGllcj1pbnRlZ2VyIC0gPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPiAtIFRoZSBDb21wYW55RGlyZWN0b3J5IGhpZXJhcmNoeSBpZCB0byBidWlsZCBhIGJyZWFkY3J1bWIgdG8uPC9saT4KICAgIDxsaT5wYWdlPXN0cmluZyAtIEEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgZm9yIHRoZSBzdW1tYXJ5IHZpZXcuICBJZiBub25lIGlzIHNwZWNpZmllZCwgdGhlIGN1cnJlbnQgcGFnZSBpcyB1c2VkLjwvbGk+CiAgICA8bGk+ZGVsaW09c3RyaW5nIC0gVGhlIGRlbGltaXRlciBiZXR3ZWVuIGVhY2ggc3RyaW5nLiAgQnkgZGVmYXVsdCBhIHBpcGUgY2hhcmFjdGVyIHN1cnJvdW5kZWQgYnkgc3BhY2VzIGlzIHVzZWQuPC9saT4KICAgIDxsaT5jbGFzcz1zdHJpbmcgLSBBbiBvcHRpb25hbCBjbGFzcyAob3Igc2VyaWVzIG9mIGNsYXNzZXMpIHRvIGFzc2lnbiB0byBlYWNoIGxpbmsuPC9saT4KICAgIDxsaT5yYXc9Ym9vbGVhbiAtIElmIGVuYWJsZWQsIGFuIGFycmF5IG9mIGhpZXJhcmNoeSBkYXRhIHJlcHJlc2VudGluZyB0aGUgcGF0aCB0byB0aGUgaGllcmFyY2h5IHNwZWNpZmllZCB3aWxsIGJlIHJldHVybmVkLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBhbGxvdyBidWlsZGluZyB5b3VyIG93biBsaW5rcy4gIElmIHRoaXMgaXMgc3BlY2lmaWVkLCB0aGUgZGVsaW0gYW5kIGNsYXNzIGFyZ3VtZW50cyBhcmUgaWdub3JlZCBhcyBsaW5rcyB3aWxsIG5vdCBiZSByZXR1cm5lZC48L2xpPgogICAgPGxpPmFzc2lnbj1zdHJpbmcgLSBUaGUgbmFtZSBvZiBhIHNtYXJ0eSB2YXJpYWJsZSB0byBhc3NpZ24gdGhlIG91dHB1dCB0by48L2xpPgogIDwvdWw+CiAgPHA+QWRkaXRpb25hbGx5LCB0aGlzIHRhZyBhY2NlcHRzIGFueSBwYXJhbWV0ZXJzIHRoYXQgdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3IHdpbGwgYWNjZXB0IChpLmU6IHNvcnRpbmcgb3B0aW9ucywgcGFnZSBsaW1pdCkgYW5kIHRoZXkgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHVybCBidWlsZGluZyBwcm9jZXNzLjwvcD4KICA8cD5FeGFtcGxlIDxlbT4oc3VpdGFibGUgZm9yIGEgZGV0YWlsIHRlbXBsYXRlKTwvZW0+OiB7Y2RfaGllcmJyZWFkY3J1bWIgaGllcj0kZW50cnktPmhpZXJfaWQgaGllcl9jaGlsZHJlbj0xIHBhZ2VsaW1pdD01MH08L2NvZGU+PC9wPgo8L2xpPgo8bGk+PHN0cm9uZz57Y2Rfc2VsY2F0ZWdvcnkgW29wdGlvbnNdfTwvc3Ryb25nPiAtIENyZWF0ZSBhIGZvcm0gZHJvcGRvd24gb3IgbXVsdGktc2VsZWN0IGFyZWEgZm9yIENvbXBhbnlEaXJlY3RvcnkgY2F0ZWdvcmllcy48YnIvPk9wdGlvbnM6CiAgPHVsPgogICAgIDxsaT5wcmVmaXg9c3RyaW5nIC0gUHJvdmlkZSBhIHByZWZpeCB0byB0aGUgc2VsZWN0IGVsZW1lbnQgbmFtZS48L2xpPgogICAgIDxsaT5uYW1lPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBuYW1lLjwvbGk+CiAgICAgPGxpPmlkPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBpZC48L2xpPgogICAgIDxsaT5zZWxlY3RlZCAtIEFuIGFycmF5LCBvciBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yeSBpZHMgdG8gaW5kaWNhdGUgd2hpY2ggaXRlbXMgc2hvdWxkIGJlIHNlbGVjdGVkLjwvbGk+CiAgICAgPGxpPmNsYXNzPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBjbGFzcy48L2xpPgogICAgIDxsaT5tdWx0aXBsZT1hbnl0aGluZyAtIElmIHNldCwgaW5kaWNhdGVzIHRvIGFsbG93IHNlbGVjdGluZyBtdWx0aXBsZSB2YWx1ZXMgaW5zdGVhZCBvZiBhIHNpbmdsZSB2YWx1ZS48L2xpPgogICAgIDxsaT5zaXplPWludGVnZXIgLSBJZiBtdWx0aXBsZSBpcyBzZXQgaW5kaWNhdGVzIHRoZSBzaXplIG9mIHRoZSBtdWx0aS1zZWxlY3QgYXJlYS48L2xpPgogICAgIDxsaT5hc3NpZ249c3RyaW5nIC0gQXNzaWduIHRoZSBnZW5lcmF0ZWQgWEhUTUwgb3V0cHV0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4KICA8L3VsPgogIDxwPkV4YW1wbGU6IDxjb2RlPntjZF9zZWxjYXRlZ29yeSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2NkX2NhdGVnb3J5JyBzZWxlY3RlZD0kY2RfY2F0ZWdvcnl9PC9jb2RlPjwvcD4KPC9saT4KPGxpPjxzdHJvbmc+e2NkX3NlbGhpZXJhcmNoeSBbb3B0aW9uc119PC9zdHJvbmc+IC0gUHJvdmlkZSBhIGRyb3Bkb3duIGNvbnRyb2wgZm9yIHNlbGVjdGluZyBhIENvbXBhbnlEaXJlY3RvcnkgSGllcmFyY2h5Ljxici8+T3B0aW9uczoKICA8dWw+CiAgICA8bGk+cHJlZml4PXN0cmluZyAtIEEgcHJlZml4IGZvciB0aGUgc2VsZWN0IGVsZW1lbnRzIG5hbWUuPC9saT4KICAgIDxsaT5pZD1zdHJpbmcgLSBUaGUgc2VsZWN0IGVsZW1lbnQgaWQuPC9saT4KICAgIDxsaT5uYW1lPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBuYW1lLjwvbGk+CiAgICA8bGk+c2VsZWN0ZWQ9aW50ZWdlciAtIFRoZSBzZWxlY3RlZCBoaWVyYXJjaHkgaWQ8L2xpPgogICAgPGxpPm5vbmU9aW50ZWdlciAtIFdldGhlciAmcXVvdDtub25lJnF1b3Q7IGlzIGEgdmFsaWQgb3B0aW9uIGluIHRoZSBzZWxlY3QgZWxlbWVudC48L2xpPgogICAgPGxpPmFzc2lnbj1zdHJpbmcgLSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBYSFRNTCBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogIDwvdWw+CiAgPHA+RXhhbXBsZTogPGNvZGU+e2NkX3NlbGhpZXJhcmNoeSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2NkX2hpZXJhcmNoeScgc2VsZWN0ZWQ9JG15X2hpZXJ9PC9jb2RlPjwvcD4KPC9saT4KICA8bGk+PHN0cm9uZz57Y2RfaW5pdGpzIFthc3NpZ249c3RyaW5nXX08L3N0cm9uZz4gLSBSZXR1cm4gdGFncyB0byBpbmNsdWRlIG5lY2Vzc2FyeSBqYXZhc2NyaXB0IGZvciBhZHZhbmNlZCBmcm9udGVuZCBlZGl0aW5nIGZ1bmN0aW9uYWxpdHkuCiAgPHA+VGhpcyB0YWcgaXMgdHlwaWNhbGx5IHBsYXNlZCBpbiB0aGUgbWV0YWRhdGEgc2VjdGlvbiBvZiBwYWdlcyB3aGVyZSBhZHZhbmNlZCBjb21wYW55ZGlyZWN0b3J5IGZyb250ZW5kIGVkaXRpbmcgZnVuY3Rpb25hbGl0eSBpcyByZXF1aXJlZC4gIEl0IGdlbmVyYXRlcyB0aGUgJmx0O3NjcmlwdCZndDsgdGFncyBhbmQgb3RoZXIgamF2YXNjcmlwdCB0byBlbmFibGUgc29tZSBhamF4IGZ1bmN0aW9uYWxpdHkuPC9wPgogIDwvbGk+CjxsaT48c3Ryb25nPntjZF9nZXRjb21wYW55IGlkPWludGVnZXIgW2Fzc2lnbj1zdHJpbmddfTwvc3Ryb25nPiAtIFJldHVybiBhbiBvYmplY3QgZmlsbGVkIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgY29tcGFueTxici8+T3B0aW9uczoKICA8dWw+CiAgPGxpPjxzdHJvbmc+aWQ9aW50ZWdlcjwvc3Ryb25nPiAtIFRoZSBjb21wYW55IGlkIChyZXF1aXJlZCkuPC9saT4KICA8bGk+ZGV0YWlscGFnZT1zdHJpbmcgLSAob3B0aW9uYWwpIERldGFpbHBhZ2UgYWxpYXMgb3IgaWQuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgcHJlZmVyZW5jZSB2YWx1ZSB3aWxsIGJlIHVzZWQuPC9saT4KICA8bGk+YXNzaWduPXN0cmluZyAtIChvcHRpb25hbCkgQXNzaWduIHRoZSBnZW5lcmF0ZWQgWEhUTUwgb3V0cHV0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4KICA8L3VsPgogIDxwPkV4YW1wbGU6IHtjZF9nZXRjb21wYW55IGlkPSRjb21wYW55X2lkIGFzc2lnbj0ndG1wJ30mbHQ7cHJlJmd0O3skdG1wfEBwcmludF9yfSZsdDsvcHJlJmd0OzwvcD4KPC9saT4KPGxpPjxzdHJvbmc+e2NkX3NlYXJjaHN0YXRzIGxpc3Q9YXJyYXkgW2RheXM9aW50ZWdlcl0gW2Fzc2lnbj1zdHJpbmddfTwvc3Ryb25nPgogIDxwPkNvbGxlY3QgYSBjb3VudCBvZiBzZWFyY2hlcyBmb3IgZWFjaCBvZiB0aGUgY29tcGFuaWVzIHNwZWNpZmllZCBpbiB0aGUgbGlzdCBwYXJhbWV0ZXJzLiAgVGhpcyB0YWcgaXMgdHlwaWNhbGx5IHVzZWQgaW4gdGhlIGZyb250ZW5kbGlzdCB0ZW1wbGF0ZSB0byBzaG93IGEgY29tcGFueSBvd25lciBhIGNvdW50IG9mIHRoZSBudW1iZXIgb2Ygc2VhcmNoZXMgdGhhdCBoaXMgY29tcGFuaWVzIHdlcmUgbWF0Y2hlZCBmb3Igd2l0aGluIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMuPC9wPgogIE9wdGlvbnM6CiAgPHVsPgogIDxsaT48c3Ryb25nPmxpc3Q9YXJyYXk8L3N0cm9uZz4gLSBBbiBhcnJheSBvZiBpbnRlZ2VycyBjb250YWluaW5nIGNvbXBhbnkgaWRzLjwvbGk+CiAgPGxpPmRheXM9aW50ZWdlciAtIChvcHRpb25hbCxkZWZhdWx0ID0gMzY1KSBTcGVjaWZ5IHRoZSBudW1iZXIgb2YgZGF5cyB0aGF0IHNlYXJjaCBzdGFpc3RpY3Mgc2hvdWxkIGJlIGdhdGhlcmVkIGZvci48L2xpPgogIDxsaT5hc3NpZ249c3RyaW5nIC0gKG9wdGlvbmFsKSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBhcnJheSBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogIDwvdWw+CiAgPHA+RXhhbXBsZTogeyRsaXN0PVs1LDEwLDIwLDM1XX17Y2Rfc2VhcmNoc3RhdHMgbGlzdD0kbGlzdCBkYXlzPTkwIGFzc2lnbj0ndG1wJ30mbHQ7cHJlJmd0O3skdG1wfEBwcmludF9yfSZsdDsvcHJlJmd0OzwvcD4KPC9saT4KPGxpPjxzdHJvbmc+e2NkX2dldGNhdGVnb3J5IGNhdGVnb3J5PWludCBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgPHA+VGhpcyB0YWcgcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBjYXRlZ29yeSBpZC4gIFVzZWZ1bCBpbiBzdW1tYXJ5IHZpZXdzIGZvciBhIHNwZWNpZmljIGNhdGVnb3J5LjwvcD4KICA8cD5Vc2FnZTo8L3A+CiAgPHByZT48Y29kZT57aWYgaXNzZXQoJGZpbHRlci5jYXRlZ29yeWlkKX0Ke2NkX2dldGNhdGVnb3J5IGNhdGVnb3J5PSRjYXRlZ29yeWlkIGFzc2lnbj0nY2F0J30KJmx0O2g0Jmd0O1RoZSBjYXRlZ29yeSBuYW1lIGlzOiB7JGNhdC5uYW1lfSZsdDsvaDQmZ3Q7CnsvaWZ9PC9jb2RlPjwvcHJlPgo8L2xpPgo8L3VsPgoKPGgzPlRoZSBGaWx0ZXIgT2JqZWN0PC9oMz4KPHA+VGhlIHN1bW1hcnkgdmlldyBtYWtlcyB1c2Ugb2YgYW4gYWR2YW5jZWQgZmlsdGVyIG9iamVjdCB0aGF0IGNvbnRhaW5zIGFsbCBvZiB0aGUgY3JpdGVyaWEgdXNlZCB3aGVuIGJ1aWxkaW5nIHRoZSB2aWV3LiAgVGhpcyBmaWx0ZXIgb2JqZWN0IGlzIHByb3ZpZGVkIHRvIHNtYXJ0eSBvbiBkaXNwbGF5IHRvIGJlIHVzZWQgd2hlbiBidWlsZGluZyBhZHZhbmNlZCBkaXNwbGF5cy4gIEl0IGJlaGF2ZXMgbXVjaCBsaWtlIGEgc21hcnR5IGFycmF5LCBhbmQgY29udGFpbnMgbnVtZXJvdXMgZmllbGRzOjwvcD4KPHVsPgogIDxsaT48c3Ryb25nPm5hbWU8L3N0cm9uZz4KICAgIDxwPlRoZSBuYW1lIHN0cmluZyB1c2VkIGZvciBmaWx0ZXJpbmcgcmVzdWx0cy48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5waHJhc2U8L3N0cm9uZz4KICAgIDxwPlRoZSBwaHJhc2Ugc3RyaW5nIHVzZWQgZm9yIGZpbHRlcmluZyByZXN1bHRzLjwvcD4KICA8L2xpPgogIDxsaT48c3Ryb25nPnNvcnRieTwvc3Ryb25nPgogICAgPHA+VGhlIHNvcnRpbmcgdXNlZC48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5zb3J0b3JkZXI8L3N0cm9uZz4KICAgIDxwPlRoZSBzb3J0aW5nIHVzZWQuPC9wPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+Y2F0ZWdvcnk8L3N0cm9uZz4KICAgIDxwPkEgY2F0ZWdvcnkgbmFtZS48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5jYXRlZ29yeWlkPC9zdHJvbmc+CiAgICA8cD5BbiBpbnRlZ2VyIGNhdGVnb3J5IGlkIChpZiBhbnkpIHVzZWQgZm9yIGZpbHRlcmluZy48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5oaWVyPC9zdHJvbmc+CiAgICA8cD5UaGUgaGllcmFyY2h5IChpZiBhbnkpIHVzZWQgZm9yIGZpbHRlcmluZy48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5ub2NoaWxkcmVuPC9zdHJvbmc+CiAgICA8cD5XZXRoZXIgb3Igbm90IGNoaWxkIGNhdGVnb3JpZXMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIGZpbHRlcmluZy48L3A+CiAgPC9saT4KICA8bGk+PHN0cm9uZz5hZGRyZXNzPC9zdHJvbmc+CiAgICA8cD5UaGUgYWRkcmVzcyAoaWYgYW55KSB1c2VkIGZvciBmaWx0ZXJpbmcuPC9wPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+bGF0PC9zdHJvbmc+CiAgICA8cD5UaGUgbGF0aXR1ZGUgKGlmIGFueSkgdXNlZCBmb3IgZmlsdGVyaW5nLjwvcD4KICA8L2xpPgogIDxsaT48c3Ryb25nPmxvbmc8L3N0cm9uZz4KICAgIDxwPlRoZSBsb25naXR1ZGUgKGlmIGFueSkgdXNlZCBmb3IgZmlsdGVyaW5nLjwvcD4KICA8L2xpPgogIDxsaT48c3Ryb25nPnJhZGl1czwvc3Ryb25nPgogICAgPHA+VGhlIHJhZGl1cyAoaWYgYW55KSB1c2VkIGZvciBmaWx0ZXJpbmcuPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+RmllbGRzPC9oMz4KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBkeW5hbWljYWxseSBleHRlbmQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgc3lzdGVtIGJ5IGFkZGluZyBmaWVsZHMgdG8gYXNzb2NpYXRlIHdpdGggZWFjaCBkYXRhIHJlY29yZC4gIFRoZXNlIGZpZWxkcyBjYW4gYmUgYWRkcmVzc2VkIGluIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MuICBUaGUgZmllbGRzIGNhbiBiZSBlZGl0ZWQgaW4gdGhlIHZhcmlvdXMgZm9ybXMgYW5kIHNlYXJjaGVkLjwvcD4KICA8cD5WYXJpb3VzIG1vZHVsZXMgY2FuIHByb3ZpZGUgZGlmZmVyZW50IGZpZWxkIHR5cGVzIHRvIHRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZS4gIGkuZTogV2hlbiB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCBhbmQgcHJvcGVybHkgY29uZmlndXJlZCwgYW4gJnF1b3Q7QWN0aXZpdHkmcXVvdDsgZmllbGQgdHlwZSBpcyBhdmFpbGFibGUuICBXaGVuIGVpdGhlciBDR0dvb2dsZU1hcHMgb3IgQ0dHb29nbGVNYXBzMiBhcmUgaW5zdGFsbGVkLCBhbiAmcXVvdDtpY29uJnF1b3Q7IGZpZWxkIHR5cGUgaXMgYXZhaWxhYmxlLiZxdW90OwogIDxwPkluIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzIHRoZSBmaWVsZHMgdGhhdCBhcmUgdmFsaWQgZm9yIGEgY29tcGFueSBhcmUgYXZhaWxhYmxlIHZpYSBzbWFydHkgaW4gdGhlIHskZW50cnktPmZpZWxkc30gYXNzb2NpYXRpdmUgYXJyYXkuICBUaGUga2V5cyB0byB0aGlzIGFycmF5IGFyZSB0aGUgZmllbGQgbmFtZXMsIGFuZCB0aGUgdmFsdWVzIGFyZSBvYmplY3RzIHRoYXQgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmllbGQsIGluY2x1ZGluZyBpdHMgdmFsdWUocykuPC9wPgogIDxwPlRvIHNlZSB3aGF0IGZpZWxkcyBhcmUgYXZhaWxhYmxlLCBhbmQgdGhlIHZhbHVlcyBvZiB0aGUgdmFyaW91cyBvYmplY3RzIHlvdSBjYW4gYWRkIHRoaXMgdG8geW91ciBzbWFydHkgdGVtcGxhdGU6PC9wPgogIDxwcmU+PGNvZGU+Jmx0O3ByZSZndDt7JGVudHJ5LT5maWVsZHN8QHByaW50X3J9Jmx0Oy9wcmUmZ3Q7PC9jb2RlPjwvcHJlPgogIDxwPlRvIHNlZSB0aGUgZGF0YSBhdmFpbGFibGUgZm9yIGEgc3BlY2lmaWMgZmllbGQgeW91IGNhbiBhZGQgdGhpcyA8ZW0+KHRlbXBvcmFyaWx5KTwvZW0+IHRvIHlvdXIgc21hcnR5IHRlbXBsYXRlOjwvcD4KICA8cHJlPjxjb2RlPiZsdDtwcmUmZ3Q7eyRlbnRyeS0+ZmllbGRzPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4uRklFTEROQU1FPC9zcGFuPnxAcHJpbnRfcn0mbHQ7L3ByZSZndDs8L2NvZGU+PC9wcmU+CiAgPHA+VG8gb3V0cHV0IHRoZSB2YWx1ZSBvZiBhIHNpbmdsZSBmaWVsZCB5b3UgY2FuIGFkZHRoaXMgdG8geW91ciBzbWFydHkgdGVtcGxhdGU6PC9wPgogIDxwcmU+PGNvZGU+Jmx0O3ByZSZndDt7JGVudHJ5LT5maWVsZHM8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPi5GSUVMRE5BTUU8L3NwYW4+LT52YWx1ZSZsdDsvcHJlJmd0OzwvY29kZT48L3ByZT4KCjxoMz5BbGJ1bXM8L2gzPgogIDxwPlRoZSBhbGJ1bSBmaWVsZCB0eXBlIGFsbG93cyBhc3NvY2lhdGluZyBtdWx0aXBsZSBpbWFnZXMgd2l0aCBhIHNpbmdsZSBjb21wYW55IGVudHJ5LiAgVGhleSBhcmUgcmVwcmVzZW50ZWQgaW4gdGhlIHN1bW1hcnkgYW5kIGRldGFpbCB0ZW1wbGF0ZXMgYXMgYSBzaW1wbGUgYXJyYXkgb2YgZmlsZW5hbWVzLiAgWW91IG1heSBidWlsZCB5b3VyIG93biBkaXNwbGF5IG1lY2hhbmlzbSBmcm9tIHRoaXMuPC9wPgogIDxwPlRoZSBhbGJ1bSBmaWVsZCB0eXBlIGRvZXMgbm90IHByb3ZpZGUgYW55IGltYWdlIHByb2Nlc3NpbmcgY2FwYWJpbGl0aWVzLiAgSW1hZ2UgcHJvY2Vzc2luZyBzdWNoIGFzIHdhdGVybWFya2luZyBvciB0aHVtYm5haWxpbmcgY2FuIGJlIGRvbmUgYXQgdGhlIHRpZW0gb2YgZGlzcGxheSB3aXRoIGFuIGFkZG9uIG1vZHVsZSBsaWtlIENHU21hcnRJbWFnZS48L3A+CjxoND5TYW1wbGUgR2FsbGVyeTwvaDQ+CiAgPHA+VGhlIGNvZGUgYmVsb3cgaWxsdXN0cmF0ZXMgaG93IGEgc2ltcGxlIGFsYnVtIGNhbiBiZSBjcmVhdGVkIGZyb20gd2l0aGluIHRoZSBDb21wYW55RGlyZWN0b3J5IHN1bW1hcnkgb3IgZGV0YWlsIHRlbXBsYXRlLiAgVGhpcyBleGFtcGxlIHVzZXMgQ0dTbWFydEltYWdlIHRvIHNpemUgdGhlIHRodW1ibmFpbHMsIGFuZCB0YXJnZXQgaW1hZ2VzLCBhbmQgZ2l2ZXMgZWFjaCBsaW5rIGEgY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBhIGphdmFzY3JpcHQgcG9wdXAgd2luZG93LjwvcD4KPHByZT48Y29kZT4Ke2lmIGlzc2V0KDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+JGVudHJ5LT5maWVsZHMuQWxidW08L3NwYW4+KX0KICA8c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+e0pRdWVyeVRvb2xzIGFjdGlvbj1yZXF1aXJlIGxpYj1mYW5jeWJveH08L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+eyogc2VlIHRoZSBoZWxwIGZvciB0aGUgSlF1ZXJ5VG9vbHMgbW9kdWxlIGZvciBtb3JlIGluZm9ybWF0aW9uICp9PC9zcGFuPgogICZsdDtoMyZndDtHYWxsZXJ5Jmx0Oy9oMyZndDsKICAmbHQ7ZGl2IGNsYXNzPSJnYWxsZXJ5IiZndDsKICB7Zm9yZWFjaCBmcm9tPTxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+JGVudHJ5LT5maWVsZHMuQWxidW0tPnZhbHVlPC9zcGFuPiBpdGVtPSdpbWcnfQombHQ7YSBjbGFzcz0iZmFuY3lib3giIHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDExMHB4OyIgaHJlZj0iPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPntDR1NtYXJ0SW1hZ2Ugc3JjMT0kZW50cnktPmZpZWxkcy5BbGJ1bS0+cGljdHVyZV9wYXRoIHNyYzI9JGltZyB3aWR0aD01MDAgaGVpZ2h0PTUwMCBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+Ii8mZ3Q7PHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPntDR1NtYXJ0SW1hZ2Ugc3JjMT0kZW50cnktPmZpZWxkcy5BbGJ1bS0+cGljdHVyZV9wYXRoIHNyYzI9JGltZyB3aWR0aD0xMDAgaGVpZ2h0PTEwMH08L3NwYW4+Jmx0Oy9hJmd0OwogIHsvZm9yZWFjaH0KICAmbHQ7ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsiJmd0OyZsdDsvZGl2Jmd0OwogICZsdDsvZGl2Jmd0Owp7L2lmfQo8L2NvZGU+PC9wcmU+Cgo8aDM+UHJldHR5IFVSTFM8L2gzPgo8cD5QcmV0dHkgVVJMUyBhcmUgaWRlYWwgZm9yIHdlYnNpdGVzIHdoZXJlIHNlYXJjaCBlbmdpbmUgb3B0aW1pemF0aW9uIGlzIGEgcmVhbCBjb25jZXJuLiAgSXQgcHJvdmlkZXMgYSBzaG9ydGVyLCBmcmllbmRsaWVyIFVSTCB0aGF0IHNlYXJjaCBlbmdpbmVzIHdpbGwgdHJlYXQgYmV0dGVyLCBhbmQgdGhhdCBhcmUgZWFzaWVyIHRvIHNoYXJlLiAgSG93ZXZlciB0aGV5IGNvbWUgYXQgYSBjb3N0LiAgUGFydGljdWxhcmx5LCBtYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHNwZWNpZmllZCBpbiB0aGUgY2FsbCB0byBDb21wYW55RGlyZWN0b3J5LCB0aGF0IHNob3VsZCBiZSBwYXNzZWQgZG93biB0byBhbm90aGVyIHZpZXcgdmlhIGEgbGluayBjYW5ub3QgYmUgcGFzc2VkIG9uIGEgcHJldHR5IHVybC48L3A+CjxwPkZvciBleGFtcGxlLCB3aGVuIHByZXR0eSB1cmxzIGFyZSBub3QgZW5hYmxlZCBpdCBpcyBwb3NzaWJsZSB0byBjYWxsIHRoZSBicm93c2VjYXQgYWN0aW9uIGxpa2UgdGhpczoge0NvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWNhdGVnb3J5bGlzdCBzdW1tYXJ5dGVtcGxhdGU9c29tZXN1bW1hcnkgZGV0YWlsdGVtcGxhdGU9c29tZWRldGFpbCBkZXRhaWxwYWdlPW15ZGV0YWlscGFnZSBwYWdlbGltaXQ9MjUgc29ydGJ5PWNnYmxvZ19leHRyYSBzb3J0b3JkZXI9YXNjfS4gIE5vdyB3aGVuIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uIGdlbmVyYXRlcyBpdHMgZGlzcGxheSwgaW5jbHVkaW5nIGxpbmtzIHRvIHN1bW1hcnkgdmlld3MgZm9yIGVhY2ggY2F0ZWdvcnksIGl0IHNob3VsZCBwYXNzIHRoZSBzdW1tYXJ5dGVtcGxhdGUsZGV0YWlsdGVtcGxhdGUsZGV0YWlscGFnZSxwYWdsaW1pdCxzb3J0YnksIGFuZCBzb3J0b3JkZXIgcGFyYW1ldGVycyBhbG9uZyBvbiB0aGUgVVJMIEZvciB0aGUgcmVzdWx0aW5nIHN1bW1hcnkgdmlldyB0byB1c2UuICAgSG93ZXZlciwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHBhc3MgdGhlc2UgcGFyYW1ldGVycyBvbiBhIHByZXR0eSBVUkwsIGFuZCB0byBrZWVwIHRoZW0gJnF1b3Q7cHJldHR5JnF1b3Q7PC9wPgo8cD5UbyB0aGF0IGVuZCwgaXQgaXMgcG9zc2libGUgdG8gcHJvdmlkZSBkZWZhdWx0IHZhbHVlcyBmb3IgbWFueSBvZiB0aGVzZSBwYXJhbWV0ZXJzIHZpYSBDb21wYW55RGlyZWN0b3J5IGFkbWluIGNvbnNvbGUuICBUaGlzIGhvd2V2ZXIsIGxpbWl0cyB0aGUgZmxleGliaWxpdHkgb2YgdGhlIG1vZHVsZSBpbiBzb21lIHdheXMuICBBbm90aGVyIHBvc3NpYmlsaXR5IGlzIHRvIHVzZSB0aGUge2NnZV9tb2R1bGVfaGludH0gdGFnIHRvIHByb3ZpZGUgYmVoYXZpb3JhbCBoaW50cyB0byB0aGUgbW9kdWxlIG9uIGRlc3RpbmF0aW9uIHBhZ2VzLjwvcD4KCjxoMz5TZWN1cml0eTwvaDM+CjxwPkluIG9yZGVyIHRvIG1hbmFnZSB0aGUgY29tcGFuaWVzIGluc2lkZSB0aGlzIG1vZHVsZSwgdGhlIGFkbWluaXN0cmF0b3IgbXVzdCBoYXZlIHRoZSAnPGVtPk1vZGlmeSBDb21wYW55IERpcmVjdG9yeTwvZW0+JyBwZXJtaXNzaW9uLjwvcD4KPHA+SW4gb3JkZXIgdG8gZWRpdCB0aGUgYnVpbHQgaW4gdGVtcGxhdGVzIHRoYXQgY29udHJvbCB0aGUgbGF5b3V0IG9mIHRoZSBjb21wYW55ZGlyZWN0b3J5IGluZm9ybWF0aW9uLCB0aGUgYWRtaW5pc3RyYXRvciBuZWVkcyB0aGUgJzxlbT5Nb2RpZnkgVGVtcGxhdGVzPC9lbT4nIHBlcm1pc3Npb24uPC9wPgo8cD5UbyBhZGp1c3QgdGhlIHZhcmlvdXMgc2V0dGluZ3MsIHRoZSAnPGVtPk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzPC9lbT4nIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQuPC9wPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29tcGFueWRpciI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcm92aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTIsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+Cg==]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/delete.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAN0AAP///9bW1szMzO/v7+bm5rW1taWlpa2trff398XFxd7e3nNzc4WFhZmZmWZmZoyMjGtra3t7e5SUlJOMjKicnLMhIcN1dbFDQ8wzM51HR+PAwMIgIJxERL+amr6+vpA6OqVQUKMbG7hhYcQsLM94eME2Nt66ut9MTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAAAALAAAAQAPAA8AAAaeQIBwiBgMhIjkcCk4NB6TxkGwFBYkAkVgK2AUqgyFUUsgCCLIAeFwEGsVBAkDMEgcDIYCfm9IMBAiJSRqegKGCQUFERYYJyMWRnoBhg2KFxodJhcEagyTARIFCxwVGxUgAQQICwkCARMHEBQZIR8Trqsehg+xAQ0JCVsBAxCGAg8FDgAHBWplV2VaFAtCeMIOCwsQDthHQmcMDwlVQkEAOw==]]></data>
	</file>
	<file>
	  <filename>/icons/false.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUANUAAP/U1P7S0v7MzP7Ly/7Dw/7CwvzBwf+9vf68vP25uf63t/23t/y1tfu0tPyzs/+ysvyysvutrf+srP2pqf+oqP+np/2mpv2jo/Sfn/+bm/SdnfyZmfScnPSamvSbm/Obm/Kbm/OZmfaZmfKamvOamvGZmfCZmfKZmeyZmeuZmeqZmeWZmeaZmeGZmeCZmeKZmd+Zmd2ZmdyZmduZmdmZmdiZmdeZmdqZmdaZmdWZmdSZmdOZmc+Zmc2ZmdGZmf///yH5BAEHAD8ALAAAAAAUABQAAAaXwJ9wSCwaj8jkDdlKyg4qIwuAOroei8SM6Ao4KqyiTAIBgRY04UyAAUUoTWJrVCqNFrAVu85xHVt1dgwDGnwxSS+BJR98aUk/MSeKJX6PPzIGig07ljcIHpMTOEk2BB11JCeqJxY8VgUhsSE5NKsnFzJFOgqys0IyqxsZo0SJda5DNSYiKT1HMiY+RjoqzkjSR9iW29xHQQA7]]></data>
	</file>
	<file>
	  <filename>/icons/recycle_sm.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAAEQlJREFUeNrlm3m03EWVxz/33up+S/Z9w2iAHCFEGUVwXJkjmBFGBA94FGZQcAMEQ8RBB8eZg7IJqDCKgiyi7DMQQZaIDowgqxBAjBrZhCSQDAmBJO+9vLzXXXXnj9+v+3V3+r3XL8s4x7nnVFf9fr/6Ld/vvXWr6lY1/D8X2dEPvP0XlxMssGnzxkJX76a2UiyZu6u74+44TvIUPLllx4nKteQJ3JPjJfdESll93MtAb7u1l0upzJeP++7/PQIO//K+AJRjuThxzKSJu07bba+xnePnFkJxLu5viilO9kySeyq6e8Fx3BOpQo4n3D26e19eJq+zJXlam9yXuaf/9JQeRaTvjIU//vMTUAEO7AocBvwN8DqgoKIb2gptL0wbP+OlmRNmzVbVA1NKkxvANRIwUKZiGTXX8A0pxSuTp9NF2PSNL9zw5yOgBvwC4AJgz2bPdPeNqnrvLpNmPzRj/IwFydP+7km9AXhqAO5NjlPWZErufpKpXVqOJb516uJtxhC2i75MZgBfA+YNyrLIOHf/0Mp1L7xl/aZ1P959+tz1Ah9OnmzAEmqsgebga84V3H1hf7nvboHntufjbVtvPPSUfVj7cjedncVFCEeLyLDWJCLj+mP/Wzf0vPbw2I6xryZPu8cUiR6JqUxMkZQiyfN86OOpMcXUV+67a78D5vrS/9o2Hra5CRyy6K2Av0VFbhGV2aKCirT0RMd7xrSPuX76uGnvd/fX1/YEtb1Fra9o8AOVeuvd00dB7k4e6S9HRCg67CKwCihddcavhvyWbWoCB5+4N+X+cruaLnJhtjqIg4ujKsgwRAgyqntL94FdxY6H2gvtM5OnQt7dDTjERlKqhJBfA3ef5PgXY0pLyzF2ichbcE4QYZWpnRE97XgLWHDcfMwUd/+wiFwlKqNFpApctFJmWCJM7bZpYydPdPd3DeX4Bgigxhqq5/rc03nJfQxwJHgR+BBw//VnPzQsnhFbQIyJGNNUVTlFVEarZ6Ddc+Cel0UQJUuDuIeY4pzN/b0XFjTs4Z4m1YGuAoXG81lO5Vyb46e5uzku7iwWkaWt4hkRAfsfswcTpo5i/ZruY9x5pzq4gLoj0kCCCupZWQRUt7KGMnA17leVY+nNCV84AJKtATdYQcNxBccW4Fp335JaMP8RE5Ci8/KqjW8SlePVRSuAszz3Aw4qFZ+Q5aoZoAb/cCdw6ZZSX6lg4bvJ/X3uPr+pth1SXoaMgEHkEeAegJvPe2zHEvCOI3ej1F8umsnJ4jon03wGbFDtNzQJz8kQ4UUROQvY4A69pb5nTfQCx7+f3NtqrWBIuA36AW4AXhuJUrWVSvseMYdsnuILYvKPpJhIKRFjIkUnRSdWUyLFRExZnhryGFM5Rb9w9zdOejgl57qzH8DdiZ7+oxTj7dm4IJEqjrB1LH8EbgdYfO6jLd/UkgXkHz5ZVU5Rl7EuAxpu5vzcc+to7h+WoHrFH5at5bYLHwegt9xP0UI3cD7w18CskWgxl8Vkff+IZFgL2PtDu2AW8JSOTjG9t6rhPN+qnOrPxeikVLWSFSn6GaVSeUMqx+o7bvvmE5Xir4FLYCSKB2A1cBOMTPstEZBiondz7xtjTJ+LKVkFXG2qM/mGc9V6KZVSTBc89/SLSz05d1z0ZPUdNZOqaXlqzYUPyBLg9yO8B2ihCXjWz/SReNDdp7rI2MyUterUqiavWS4150Sq5TtQfrTL66dx58XLGsEbsD/ZpOqdrSimRjYC1wNxpNpviYDfLVnD/INmvJCSf1aE6xA+n9wPEKW9vt1nfmEQ/7DCXc6KZTbWurUcvAIfAU4jiymU8u9qdaJ2H/Bw5WCvg2bg7kFF3ovIJtyXigrL7li9bQQA/O5na5j3t9P7RPXn7v6gIx+UmE4Slf3EJVS6PXepOjwZIKZfVc5/Zc2mpVOmj+e+q59q9op7gd8CY4CxwARgEjCxJk0CxuXXxwKjcpKuATav+tM63vzBWaSYZovqQhE+JSIPq9rHwDcOhm3Ec4F5C6ZRaCsQy3GKiHwU4TgRmSciuvV8QFCVm9T0k+7e9dD1I5uy1vgGycG2AR1Ae05WB/D0a690d69dvaEDOExEThWRvxIVUZV+EfmcJ79CTHj85pXbT0BF9jpoJht7E+M7dbbAMQjHisgb6kgQfV5UDgeeEHEeufGFbX1d82/4wHRiTBKCzReRUxEOV5FOUaUyPReVJ1XlUGDFIzc+v20E1Ggi5KyPze99afXKV33ja72iyp4Cx4vIx0SZIqL9onJKb1fv90aN6+Sxn6zYYcDnLZiOBgX3CYgcLcIiEZnTQP6AJaqc2dFZ/Ne+LSV/8LpntybgsC/tQ3SXgmpBkE4y85oITCULec3K00wGuqp1wFHA84vPfZT5B8/EnSDCviIsFJFeVTnZna4nb3txh4HP32MivEvgNBE5QFQKgzQ/RBUVeUlUDgNfev81z9QTcPRX33Nw9LRfjHFm9DjTYQowOdfyaKDI4N3SV4BzIBuAzNl/KqNHBTyzkoIIm/o29vD0/YP6oNa1ftBMgkJyZgmciPBpFZnSYO4VjdcfZ+VrTPUz7r7lnh/9sfrcAKwWmKOqH/HkHa1EUWrkKOBaYCXA8/eurZzvzdMO0zpQcOcQEf5JRPYRFa2ClFzTg4NHVQ4VkZtwfnrgZ/birsuycZM6/htVPU5FPm6qj5roSBiYBxwBdX5ih4tkaayo/KOq7qumaqqoKdXcBDXBVPJjRavXFFUZYyaLisUw2WzA9ek1Z95PqT9uAW4S0S+Y6qsqLQ/EFPg42zZ5aVlUhWJ7Yb2q3qCm0WqB1eb5ebVM+2oyQExW5z2qclSKzsEn7V0FQEd7kb3f8EaC2gJTmxxUGQEJ84EPw86zgidvf6kSULnRVJ4cGnytVTQcq5qantDWWZyrqgMEBDWeWb3iTcHsE6aGiTECEgw4hqy32GliqrS1F9ao6ZVmEmvNvTYNaLy2SQzkarqHqZzQ1hHssC++DTvx7INpL3Za8vQVyZa48hlMNWslLDEVeBZ4bN67Z7H8gdXD1R+xrF6+gdfNn4iqrFLT95nqzIq5W625axOr0AaCVHdH5EERVqqJ4Z72DRo+qhowNUwVM8PUCNKSJQTgkzkRO01UlWJbWGOml6lpuam5N2sSVucMUZUpIpwsKqO1va2z3TQcbxqmBs1AmxgmmuVWIWHYQeM+wN/BzvMFD1z3DCCoys1q+tjw5t5oHVmXmI9/3w3soSL6HrNwiGnANBA0VLVvqhkRagSx4UioWMGknWoFJhTbwloz+aGqloc095qybB2WD0BBg9iepmHcAOhGEjIiNLeMJiQsB34B9ABv39lW8MsfLq8Mc28x06WN4OubwsAqVRPpAtarang1aCibBsxCExJ0wBpyEmpWevqBc8k2RhwB3AwcQjaf32kiKhSLYa2aXKoqJW1sClubezNZ5u6r1NSeNLWXQ8UBVknIiMiSEqokKGGAhAeAW8mGvXeSDYrOYTuW3VuRn1+8LB/e6q1m+uvGQdAwwAG2BAs3/+SSpb0hqD2VXH4F/MPQwdhy/dXElki8VNHXyh4r0dg+4PEdCbYmbKZAuRL3E1UKJuuTc7mKvF2UwnCLsRUJFn6+39x3rDniuiODIvSr2tVmYWPV9KuWUF8O1eZgmNo9JrZEVUYcih4heMg89n6112678HFEBTO5XU0ebkHrAC4id+89Z58/jOkYu3l91ytlVTFU7V5TuzlUQQ80gwFCrIYE7Qmql7QX2jaZ7lRrB5gOfJ1syF0nkrXz9QiXkFnf4MjxTaZ27T677ffU+M4JU6Knx9wd/crxFyPQp6LfMQ2rglWsIHOKWusLKoMjtbtM7S5T5Zoz798pqGtM/0SykPmkmvNA3SLIEjJ/1Az4BuDOKWOmnv/2ue9oG90+5jAnXZ9i3IxIFhVWVcaMGvXEpu7uyyB8zR0Zwhtsip6uXb95Y0dQKx7+5X373SmlcooxppRickS447u/2V7wAAcAx+flKc3qJk+Y2AbHLyKLZAVBIsKGghVWTRg1ccWMCTOmdxQ7jzUNuwJXqNh9ySMnHPn1gVZz3uWfB2SWe7olxvi2cixTTuV881KZcsw2MZVi/53/vXFtt7vvRdb3b/ZEb4ypO8XUHWPqSjF1l2PqjuXUnaJ3xex8d4xxcyyn3hTT5hhTjyd/CehbtmR1MwJmAv9O1v4B7ibbitcJdAa1zqChs2A2KljoCBrGqNr0YGF0wQptxdAmhdA2vhgKrw9WGBesKCEU1pjaoY4/uvDobwB16wIK+EsidqGZXJaHtSp2BAoCr7za0/OKux9O7XW85jcTqb+YyJb4S1BNrwFHk60HNoI3YCHwrppL7wPeC+Q9vOROX7KAiQih4rMsZEFRyUIpkpcFrikW2x7r7x9wF9VZzpc+/W9kDlFvUbUlwbIHhZpewOHXPX09e9aDbwq69rgS0y/k2htHFnOcDYytvanG9N8PfKbhkZI/wyRHP5C0PpHlKlIlQkSeBi7v7d2cPn/0OVsTAFCwgCA9Kvpt0/ByLQnBwqsbN2/6U/K0ZzPk27DAoDmgRtkF+BeyqHRTEfKoLwMkqDQrV8BrAi7v6t34dOOH1hFw8jHno6IUrPCwql5pGghWyCzAwjNdW7pG5WHz1qT6Mm9mIkqNJeXaD8AisgXSwR/bFLzWlVU0r6MIslRErulsG82iT5w3OAEAXzj2myRPScV+kA2TAyFrU38qxdII5/tSk3sj+UIWcq81/Q8Anxr6ic20XQGvNVrPIsUi0gdcVCqX1jQb6TaNdKgGgBdU7UKz0GdaAJH17j5+eG3XSqNbrLis6olaa5oNfBUY/B259qVG+9XmUEdKrU+Qu0B+qqKccuy3WyNg4cfPwcxQ1cWmdkfuVRPN2+zWWIeUakUBiiEYZJZwCtl0ekipM31kK8dX3xRkA/CdmEqbfNDnDSJmBkiXqn7L1NaFUBiNDLFzQwY5KY2X6yp2dI4qQub4Pjgc+Gaa38of1JHCYhW9R0Q49VMXjIyAzx11JqpCsMJDqnZZW6F9ioltGOYLm/IwRA/R0dPdB7ACuIJsfDD442WgCWjT7k+q3Z+IrAK+Vyr393/p098Z9JlDRjtP/PuzSCm5ql5cCMW1nW2jBgn3yjDHg14qppgAInARcOPQ/A7V5dX0+RmsK0d1TvjNcB30sOHefMz1YsHCdTMmznzO8bVb1WkRe5NqnSLCU799EbIQ1enAE4Pe0+gAm6SMBB4HuWJT1yt+2nHf2z4CTjjy66gIpvbArEmv+4WJ3doaxJakaFr3Cc8A/ww0Ible49rg7Wu6wA3AWeVy/8pWtlm2tPRz3Me+Rkyx77MLTnwc4Szgl4PoKNsdOeyLq2bSsW5dtnReM7W9EziPLN44cEeDsxOaNoPNwDkqdquI8tUTfjAstpajGbfddA/L9T7cfQPZ3Hs6sBv5hKqyqdlTvsU1eeVPDXm5WeL3ZnKrmvraZ7tZ/sBq5r17FsAy4A3A3lVNiWKqbmopiLppiKYhBg1bzKzfxJ5X1TNU7JJyKpdOP+mKlnCNeAhfM2obQzZf3xWv/I/ASeV8g2Q51u8dLjduroyaoi+PpbhEg/rvfram8R27kW1+fpsgmOrzQcO3C2brgoUULPQUrBCDFbYEK8SgYWUhFFellPzMk69qGc8O/+fojpAakg8ErlaR6SZ2n6ke7E73dWc/sB1Pr5eR7Mj8X5OKP0iku4HzBIkqEkUkDb9C9xdAQIWEgDnOpSp6g4j0qWi5hX/n/WUQAHDjuY/QVij2qOrpIvIrd0R2cKvdEf8c3amSL80/J8j3BUo72m39D1IGeyVTr7s8AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEzLTAxLTAzVDE5OjE5OjEzLTA3OjAwLOYYFgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMy0wMS0wM1QxOToxOToxMy0wNzowMF27oKoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/true.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgASAOYAAPb68vT58fD56PD17+L5y935wdz5wdz5wNz4wNjn09nn09Phz7HOpofTR4bSR4bSRoTRRoXRRnnFP3jEPnjFPnfDPXfDPo+0hnS8Q3K6QIaufYaufHC6Pm+5Pm+5PHW2TnC5PnC5P3S1S3W1TXO1THO1S3S1TXS1TGy4OWy3OnO0THS0TW23On+pdXGuUX2ocnCuT3GtUHCtT2+tTm2sSnajam2oUmSsOW2nUnOhZ3ShaGaoQmqiVm+eY2agUWmdWWqeWWqbXmmbXWSXV1ucPWOWVleOSU+MPFCJQiqVKiaTJiWTJRaLFheLFxOKExKJEg+IDwuFCwqFCgiECAKBAgCAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFYALAAAAAAWABIAAAfDgFaCg4SFggpVAYaLhQpRO1QAjIwJUTQlGVUCk4UJTDQiGBINVZyDnjOhFKQFgwsDi6gnHBQOVa2CC1JPsISeMicgtVUGgwNSLRpNvVYJTTMjIBO2xYIDVT0XGzVOC81LMCYhEw/EhFVG2i85Q1AMSjAfHeRVB4ZTRS86QkA+STEkPFgoZ29RFSRBfvCwEUMFCgsR6nGqcoQHDhcqUkCsgsCUlSpEXKxIUSFiR48fb7CoAIEjykFVWLp8CXMmzUEEUAYCADs=]]></data>
	</file>
	<file>
	  <filename>/icons/upload_sm.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAADblJREFUeNrtWltsJNlZ/s6lu9rubtttj+2Z9Uwm7EzYoEgLD4lgtVGAIBFQyBKFCKREEImXINASKYlQeEAClIe8EKRlJRQEPCzkDQEPJEA2UdAGgTYBBcRlxjPR7syOZ7K+xTtjd1V1V/3/z8Opy6lL2x4uGon4SG1Xnzr1n/N///dfzqkGztpZO2tn7aydtbP23drUrBvvfudV3Lp1G89+7FfM+vqahlIPI9cJVgIhwe7eHv3qxz/LP/XjT+ILL/7bo9b5ZAD+8s8+i5RobjRa+lAQdN+jtRk4/VXl0TomIgAg7hriOgQqJdqJ4+hPNze/9ZW11XP8cx/+9Uetd9FsW+e51RVM4sl7B4P+c9ba+YcV6pQvv3XQgbXm3VevPP4znY79+qNW2m+63vHCH/8Wnn7XM+h0u08ZYx5KeYFApKp8TgprzcVu0HlqYXH4qHU+HoD+oI/Pv/D8nDH6beqUft+uuDiXcH8AAMaYt/32b35Gff6FTz9qvYtW0fCDz7wDv/zsR5FMk7cvjRb/ylq7fpLipdJFD1CJBTkIQJKkWw/uP/iFrbt3/77Xm89mFyhvvBLlrpQnL5unnE8qciGAgspgB5QSMANQLg4xCw6+c0Cf+NTv83t++K340kubTQB+73c/iWd++idw/drNtw+Gg88EQffHZjHAX1RTcW+E3ymAiCBN0y0m+g8BeLbsemcbEFLIF8kYmDMR8L4DgKg0pZ04jv/oAz/7qZc+9/wn8UvP/o4D4F3vfBIA8ImP/yKYeOPc6spfBEHwjoruma714JZPVLFGMTnKBfiMaLGgL7dp5SYTGuOkup7qOkrQppPpvx8c3H+f0vrWH/zhn2eME8HffOG5ueGgfzGK0x/V2j6ntQ4KJHMLCCro5nO6aymu/UWUlvEUP2HRNY5l9JYaM9rHVx5quc/MUwAfG40WvnJ4eLT1/g/+WqS++uLnLqyurnw66AU/Cag+syyUD6pKlFCFKOX1HRcoy3si4guordezWt21GtdScYmyz3ONBrvyPobW+gGA8SSe/PXu7t5v2KXR4kf7g/5HtNYG/yctX1zVp9qMXoBbKKhqzwuQB8mi/5jrGoszQywAWNBafWRxafGOtdY8+b+tfJPSzb7Kd/EoLjW6t91rU+yU9725jdHqSQtgIiI4bc6f1YgIRAxAoLXO+jif2usj5CvSRgMCEFNBYaM1BAATFe7sxkkmD9BaQRuT1R5ykqLtfSJgkYlVUEf/EysTEe7c2cLO9g6YGCKCjYsbUErhzp0tKIWiDwJsbW1BKQXhrA9enwg2NjYgAO7WxjEz7t27B0BBa4XV1VVsXHysAOxUQPixhgUAjqxSavywSvvttdt3cHfrLjYuXsLi4iKUVuh2OwCA/mBYFCh532C4UDCgG3QAkaJPpBw3HAyR69DtWgiA4cIimBn337iPu1tbYGZcvnypmX1alK8DkbFnbIlo7Mqn0yns9yVJgr29Pbzp8mVcetNFoBaF53pBmcGz53q9bi6oSKe9XrdMq5mMXtAplMmp3gu6AARLi0NoDexs7+DChfOw1pxs8VofMyNNyQEgEMk3t6cJYPDo76w6gAhXfdLxrBLAGtbxqHtqGme2Ggz62NkGUkphjG4q7a2jtY9Z0jQdW2IeiwiLSCUTnBS1nXMDzAJh9mnVHtFbrvOyIH/uOKUrfUqBmcHCZTHmFV2tLKiByyJMTGMLYCzZqJmpqe07M5TWWF5ehrX29AB4c0TxBIAgCIJGSX0cpUUExlgsLY2gMjCOtbhfueZ1ArEIy9gqpXIGnC4He9+1UhgOhzDWOBacRGOPPVEY4tp/bkIgeOv3PYG5uTkIsyd+th8DgDEag0HfsahScs9W3u9jEVYKYw2RUETIt4Cc9Mkon6YpXnnlFRw+OHTyPVeofzh7DgDCcYhr1zYRxSHiKML1a5sIx2GhAGdy2JNX7zs8PMKtV28jTdNyXu9/Pp9z0WpfJodEJLTTaRIxc5oXKqf14RxUF4E9ZY+hsVIK43GI69dvII5CWGsBCKIwxPXrm3jiibeg1+s1XKnVj0VgrIbAgVvdHhd8b7Ayl8nM6XSaRDpJ01hYklNZvvaBOHSZuN36OdqZAmGmaBSNHXBZ5rDWZCDcQBhGJWN8FvhWFQEzOcsKPEuX/4WlMr58jvNPkqZppJkoYuH01Ir7SilgtLyMbtCt0NxXIAcqDB3Vo3AMa4xbqBfBHQhjbF6/gSiMMnDrypdzdDpdjEaj1kzkr6VQuulSKRHFVkQiEUkqMeCkIJbTUoBOpwPlKNWatgAgimJsbt5AFIZFxmgGOMAYiygaY3PzJt7yvVecOxTBtVxb/pS11tUauYfMyBhtwVREEggiq7WOhSVlL4r7SswGw5213bt3F+fPr2NurufSUc1v4zjG5uZNT3ku01ElpEgW3R0TbmzexNWrV4oU6c+roHD44BDbOztYWlpozHmaqpCZU6VVbJMknRLRxBjTehw184hK8nzs6MyZ/+X3FIAojnFj8yaiKIS1xgOoNFlbYNXGIByPcWPzW7hy9fEShFy2chQ3xoA4PymYkf5m9BHRJE3SqY3jKCGiCRdUqkbPQnUp0ctX7xR329QchLxNkwSvvnIb02SaRXa3xWWmGbWFm0NrA6U1jDGYJlPcuvUa3vw9l2GtKao+pRSIqPR9VZXVLH2bOjHzZDKZJDYK44SIYt+HKxY5prwUEayuriIIuk6xWvq6dOkilNZFAb/9+uvY3d0uzx58VxCARbC0vIL1tfViDiJyFvZjjABz8/PQ2pQu5d0rFZ7dR0RxPJkkdjKZJsw8qU9QUr7W5/mriCBJpjBaFWcBuQwlQNDtlOzJrMQs0AoVy+QSJStprdVFnW+MC5r5YUguP5lOkUynYBJP0Zaq0WNBSV4Bk0ySaZJYojRhlrg+QUNYPR5kqO/t7mM4HGDQ7xepr12OArGrF1jrVnpKlqNTomaw9OdXwOHhIY6OjrA0Wqy4UNXqM2IBABGOiSixRJQwc8UF/Ndc9SPvOqJaa7AIKM/VLQDm9X+enzXXwPaALvM+N9fgASAi2dxcGKVJ95ri3nzMEhNzare2vi1Xrj4eEnVKmpzg93VgmNhZd8amJG9FPV9bTEHLrFghYscAX6EaqM7lAMld4KQSvpYiU0rD3Z1dtl/68lf56ad/MOIuNa3SKI5q1gCwsnIO2mgQkcccry73GJBnCq2Ut8BSVp5VHFDsYVet7wF3tDbfJ5DwTCVbXTm7R0TRyy//E9uv/cNtfvGLz4dEXFD7uE1EPRA+eHAfxhgEwUrGgJo/FmNVUftzY0G5XIEItwJQL56Ojg6Rpil6QbdhlBOvBWDi8MsvvcoWuAdiDonJX0vVip7CVV9UiKIYxmi3aJ71zs8BkOdtKF2pLQqK+wzg8jitHn+UUoiiKKsFuNyFVgzku07t2mWjcPfbfwf7zW+8BAhCJs5fyjR8Zxa9gOxkLNsR5tvSNhcqjrFYoFRZEXqhsgiixL47NWms3Fm7Ow3yd6ae3zdcwWeSCAQS/vM3vgn7xhv3kRJFlAFQpcwx5WSmlMr8mTLaNqvIcqw70zdQZSFQAyF7Jgdzxhrc+0gFrcr6oyKnJcBWrl3gjg6PxrBpmiJJkpCCbvFyog3FehDMxS8uLjmrpdRwl9LF3TOLS0sYDhd9e1QzDlyRRPWUXNHLfR8uuE1Q7rpt+5XqZfldWJCmFFJKsGmSIk3TiIigK74pDQXqwURBYX9/H2ma4rGNC5Us0AaeAmBMBd+GYs46gllBLG97e3swWmN17VwlmNbHtj3LwiCmiIhgkzQFE4fMzKKg6xFcqtIqYCioXFh5MnvaoiRfXtv4Y67zQoiJyhjAReA6UXmBQFiYmUMici4gIiETi6tQa4VOnaYeNZVSUFCYxFNQysV7QP/5Ki3r8UGqi62lvQqXvNvCgul0ivlOxxVC4p1D1OmFVh0EgAMgSRIIxDEAMM2oL9U11QLK3Nw8dnd3sLOzg9HyCFrVfhRRBK6cflVL5grlM+XvEv15cmCdOMbBwX1EcYyVc+fAUtvFNljWbO5IXIVEDJtME4jIhIhSDXROSnv1HWMQdLG2dh7b269jf38fSmkE3S6WV5ax/fq2y9MQ9PsD9Pt97OxsF3JGoxFEgIOD7xRvmtbWVnE0HmN8NAYUoJXG+voa9vf3MZ1OszQKrK2tIwiCzPUqtj6xiUhKKU1YsYsBwjwh4kQpNXdc9G2WpgDAWFgYot/vY5okYGYoKNiOwfkLjxWytFbQWuPChY3ilZgx7ih+bm4+s7I7Zu92AiwtLhVzdzoGq+fWiiKo07FZCqRTKdwAgCVJiSZKKVhyMSBm5pRZVWv4FspXKsUCHeeD3U7+y1uXa3tBp1rNicD0uiW7sv/WlL/XzI/ZAFMAIMLoBrbyneR01m4FAJIyc+wAcIVESMxTxaqmZJUJs46dSkxqBUgtAM4uU+tPVf4g30c8dFPVn3PljVkmzDJWClAihA+8/0fO/8D3P/En83PBDykoEQ+E6nF5bV9QB6iikAeBVHsaXc0OtIcxVY5v+8mZNyb/cbvyUFBQEBEVRvHX/+Vfb/z8F//25XsKjmvLK8sLTw2H8282WqtqNqor+N+nXrH25uXsQQ/dVKF8AxZXOsuDo/C1g4PDfwSwp7J7AYAeWn48/f+0MYBJ9jlrZ+2snbWz9l3b/gt22O/HSV3GsgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMy0wMS0wM1QxOToxNzoyOS0wNzowMBjQcAgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTMtMDEtMDNUMTk6MTc6MjktMDc6MDBpjci0AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/jquery.category_autocomplete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogdGhpcyBpcyBhIHV0aWxpdHkgY2xhc3MgdG8gYWxsb3cgYXV0b2NvbXBsZXRpbmcgY2F0ZWdvcmllcyB1c2luZyB0aGUganF1ZXJ5LXVpIGF1dG9jb21wbGV0ZSBwbHVnaW4gKi8KdmFyIGNhdGVnb3J5X2F1dG9jb21wbGV0ZSA9IG5ldyBmdW5jdGlvbigpIHsKICAgIHZhciBlbGVtLCBjb250LCBlbGVtX25hbWU7CiAgICB0aGlzLmFkZF9jaGlsZCA9IGZ1bmN0aW9uKGhlbHBlcixpZCxsYWJlbCkgewoJdmFyIF9idG4gPSAkKCc8YnV0dG9uLz4nKS5hZGRDbGFzcygnYXV0b2NhdC1jaGlsZC1yZW1vdmUnKS50ZXh0KG9wdHMuc3RyX2RlbGV0ZSk7Cgl2YXIgX2hkbiA9ICQoJzxpbnB1dC8+JykucHJvcCgndHlwZScsJ2hpZGRlbicpLnByb3AoJ25hbWUnLGVsZW1fbmFtZSkudmFsKGlkKTsKCXZhciBfbGJsID0gJCgnPGxhYmVsLz4nKS5hZGRDbGFzcygnYXV0b2NhbC1jaGlsZC1sYWJlbCcpLnRleHQobGFiZWwpOwoJdmFyIF9jaGlsZCA9ICQoJzxkaXYvPicpLmFkZENsYXNzKCdhdXRvY2F0LWNoaWxkJyk7CglfY2hpbGQuYXBwZW5kKF9oZG4pLmFwcGVuZChfbGJsKS5hcHBlbmQoX2J0bik7Cgljb250LmFwcGVuZChfY2hpbGQpOwogICAgfQoKICAgIHRoaXMuaW5pdCA9IGZ1bmN0aW9uKGluX29wdHMpIHsKCW9wdHMgPSAkLmV4dGVuZCh7fSwgb3B0cywgaW5fb3B0cyk7CgllbGVtID0gb3B0cy5lbGVtZW50OwoJZWxlbV9uYW1lID0gZWxlbS5hdHRyKCduYW1lJyk7CgllbGVtLnJlbW92ZUF0dHIoJ25hbWUnKS5hZGRDbGFzcygnYXV0b2NhdC1pbnAnKTsKCWNvbnQgPSAkKCc8ZGl2Lz4nKS5hZGRDbGFzcygnYXV0b2NhdC1jb250Jyk7CgllbGVtLmFmdGVyKGNvbnQpOwoKCWlmKCBvcHRzLmNhdGVnb3JpZXMgKSB7CgkgICAgdmFyIF9jYXRlZ29yaWVzID0gW107CgkgICAgJC5nZXRKU09OKG9wdHMudXJsLHsKCQlhbGw6IDEsCgkgICAgfSwgZnVuY3Rpb24oYWxsX2NhdHMpIHsKICAJICAgICAgICBmb3IoIHZhciBfaWQgaW4gb3B0cy5jYXRlZ29yaWVzICkgewoJCSAgICBvcHRzLm9uQWRkQ2hpbGQoc2VsZixfaWQsYWxsX2NhdHNbX2lkXS5sb25nX25hbWUpOwoJCX0KCSAgICB9KQoJfQoKCWNvbnQub24oJ2NsaWNrJywnLmF1dG9jYXQtY2hpbGQtcmVtb3ZlJyxmdW5jdGlvbihldil7CiAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIHZhciBfY2hpbGQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5hdXRvY2F0LWNoaWxkJyk7CgkgICAgX2NoaWxkLnJlbW92ZSgpOwoJfSk7CgoJZWxlbS5hdXRvY29tcGxldGUoewogICAgICAgICAgICBtaW5MZW5ndGg6IDIsCiAgICAgICAgICAgIHNvdXJjZTogZnVuY3Rpb24ocmVxdWVzdCxyZXNwb25zZSkgewoJCSQuZ2V0SlNPTihvcHRzLnVybCx7CgkgICAgICAgICAgICB0ZXJtOiByZXF1ZXN0LnRlcm0KCQl9LCBmdW5jdGlvbihkYXRhKSB7CgkJICAgIHJlc3BvbnNlKGRhdGEpOwoJCX0pOwogICAgICAgICAgICB9LAoJICAgIGNoYW5nZTogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQkvLyBwcmV2ZW50IGZyZWUgdGV4dCBpbiB0aGUgdGV4dCBhcmVhCgkJaWYoIHVpLml0ZW0gPT0gbnVsbCApIGVsZW0udmFsKCcnKS5mb2N1cygpOwoJICAgIH0sCgkgICAgc2VsZWN0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCW9wdHMub25BZGRDaGlsZChzZWxmLHVpLml0ZW0udmFsdWUsdWkuaXRlbS5sYWJlbCk7CgkJZWxlbS52YWwoJycpOwoJCXJldHVybiBmYWxzZTsKCSAgICB9Cgl9KTsKICAgIH0KCiAgICAvLyBjb25zdHJ1Y3Rvci4KICAgIHZhciBzZWxmID0gdGhpczsKICAgIHZhciBvcHRzID0geyBlbGVtZW50OiBudWxsLAoJICAgICAgICAgc3RyX2RlbGV0ZTogJ0RlbGV0ZScsCgkJIHVybDogbnVsbCwKCSAgICAgICAgIG9uQWRkQ2hpbGQ6IHRoaXNbJ2FkZF9jaGlsZCddIH07Cn07Cg==]]></data>
	</file>
	<file>
	  <filename>/js/jquery.fileupload.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEZpbGUgVXBsb2FkIFBsdWdpbiA1LjUuNAogKiBodHRwczovL2dpdGh1Yi5jb20vYmx1ZWltcC9qUXVlcnktRmlsZS1VcGxvYWQKICoKICogQ29weXJpZ2h0IDIwMTAsIFNlYmFzdGlhbiBUc2NoYW4KICogaHR0cHM6Ly9ibHVlaW1wLm5ldAogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6CiAqIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUCiAqLwoKLypqc2xpbnQgbm9tZW46IHRydWUsIHVucGFyYW06IHRydWUsIHJlZ2V4cDogdHJ1ZSAqLwovKmdsb2JhbCBkb2N1bWVudCwgWE1MSHR0cFJlcXVlc3RVcGxvYWQsIEJsb2IsIEZpbGUsIEZvcm1EYXRhLCBsb2NhdGlvbiwgalF1ZXJ5ICovCgooZnVuY3Rpb24gKCQpIHsKICAgICd1c2Ugc3RyaWN0JzsKCiAgICAvLyBUaGUgZmlsZXVwbG9hZCB3aWRnZXQgbGlzdGVucyBmb3IgY2hhbmdlIGV2ZW50cyBvbiBmaWxlIGlucHV0IGZpZWxkcyBkZWZpbmVkCiAgICAvLyB2aWEgZmlsZUlucHV0IHNldHRpbmcgYW5kIHBhc3RlIG9yIGRyb3AgZXZlbnRzIG9mIHRoZSBnaXZlbiBkcm9wWm9uZS4KICAgIC8vIEluIGFkZGl0aW9uIHRvIHRoZSBkZWZhdWx0IGpRdWVyeSBXaWRnZXQgbWV0aG9kcywgdGhlIGZpbGV1cGxvYWQgd2lkZ2V0CiAgICAvLyBleHBvc2VzIHRoZSAiYWRkIiBhbmQgInNlbmQiIG1ldGhvZHMsIHRvIGFkZCBvciBkaXJlY3RseSBzZW5kIGZpbGVzIHVzaW5nCiAgICAvLyB0aGUgZmlsZXVwbG9hZCBBUEkuCiAgICAvLyBCeSBkZWZhdWx0LCBmaWxlcyBhZGRlZCB2aWEgZmlsZSBpbnB1dCBzZWxlY3Rpb24sIHBhc3RlLCBkcmFnICYgZHJvcCBvcgogICAgLy8gImFkZCIgbWV0aG9kIGFyZSB1cGxvYWRlZCBpbW1lZGlhdGVseSwgYnV0IGl0IGlzIHBvc3NpYmxlIHRvIG92ZXJyaWRlCiAgICAvLyB0aGUgImFkZCIgY2FsbGJhY2sgb3B0aW9uIHRvIHF1ZXVlIGZpbGUgdXBsb2Fkcy4KICAgICQud2lkZ2V0KCdibHVlaW1wLmZpbGV1cGxvYWQnLCB7CgogICAgICAgIG9wdGlvbnM6IHsKICAgICAgICAgICAgLy8gVGhlIG5hbWVzcGFjZSB1c2VkIGZvciBldmVudCBoYW5kbGVyIGJpbmRpbmcgb24gdGhlIGRyb3Bab25lIGFuZAogICAgICAgICAgICAvLyBmaWxlSW5wdXQgY29sbGVjdGlvbnMuCiAgICAgICAgICAgIC8vIElmIG5vdCBzZXQsIHRoZSBuYW1lIG9mIHRoZSB3aWRnZXQgKCJmaWxldXBsb2FkIikgaXMgdXNlZC4KICAgICAgICAgICAgbmFtZXNwYWNlOiB1bmRlZmluZWQsCiAgICAgICAgICAgIC8vIFRoZSBkcm9wIHRhcmdldCBjb2xsZWN0aW9uLCBieSB0aGUgZGVmYXVsdCB0aGUgY29tcGxldGUgZG9jdW1lbnQuCiAgICAgICAgICAgIC8vIFNldCB0byBudWxsIG9yIGFuIGVtcHR5IGNvbGxlY3Rpb24gdG8gZGlzYWJsZSBkcmFnICYgZHJvcCBzdXBwb3J0OgogICAgICAgICAgICBkcm9wWm9uZTogJChkb2N1bWVudCksCiAgICAgICAgICAgIC8vIFRoZSBmaWxlIGlucHV0IGZpZWxkIGNvbGxlY3Rpb24sIHRoYXQgaXMgbGlzdGVuZWQgZm9yIGNoYW5nZSBldmVudHMuCiAgICAgICAgICAgIC8vIElmIHVuZGVmaW5lZCwgaXQgaXMgc2V0IHRvIHRoZSBmaWxlIGlucHV0IGZpZWxkcyBpbnNpZGUKICAgICAgICAgICAgLy8gb2YgdGhlIHdpZGdldCBlbGVtZW50IG9uIHBsdWdpbiBpbml0aWFsaXphdGlvbi4KICAgICAgICAgICAgLy8gU2V0IHRvIG51bGwgb3IgYW4gZW1wdHkgY29sbGVjdGlvbiB0byBkaXNhYmxlIHRoZSBjaGFuZ2UgbGlzdGVuZXIuCiAgICAgICAgICAgIGZpbGVJbnB1dDogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCB0aGUgZmlsZSBpbnB1dCBmaWVsZCBpcyByZXBsYWNlZCB3aXRoIGEgY2xvbmUgYWZ0ZXIKICAgICAgICAgICAgLy8gZWFjaCBpbnB1dCBmaWVsZCBjaGFuZ2UgZXZlbnQuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGlmcmFtZSB0cmFuc3BvcnQKICAgICAgICAgICAgLy8gcXVldWVzIGFuZCBhbGxvd3MgY2hhbmdlIGV2ZW50cyB0byBiZSBmaXJlZCBmb3IgdGhlIHNhbWUgZmlsZQogICAgICAgICAgICAvLyBzZWxlY3Rpb24sIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyB0aGUgZm9sbG93aW5nIG9wdGlvbiB0byBmYWxzZToKICAgICAgICAgICAgcmVwbGFjZUZpbGVJbnB1dDogdHJ1ZSwKICAgICAgICAgICAgLy8gVGhlIHBhcmFtZXRlciBuYW1lIGZvciB0aGUgZmlsZSBmb3JtIGRhdGEgKHRoZSByZXF1ZXN0IGFyZ3VtZW50IG5hbWUpLgogICAgICAgICAgICAvLyBJZiB1bmRlZmluZWQgb3IgZW1wdHksIHRoZSBuYW1lIHByb3BlcnR5IG9mIHRoZSBmaWxlIGlucHV0IGZpZWxkIGlzCiAgICAgICAgICAgIC8vIHVzZWQsIG9yICJmaWxlc1tdIiBpZiB0aGUgZmlsZSBpbnB1dCBuYW1lIHByb3BlcnR5IGlzIGFsc28gZW1wdHk6CiAgICAgICAgICAgIHBhcmFtTmFtZTogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCBlYWNoIGZpbGUgb2YgYSBzZWxlY3Rpb24gaXMgdXBsb2FkZWQgdXNpbmcgYW4gaW5kaXZpZHVhbAogICAgICAgICAgICAvLyByZXF1ZXN0IGZvciBYSFIgdHlwZSB1cGxvYWRzLiBTZXQgdG8gZmFsc2UgdG8gdXBsb2FkIGZpbGUKICAgICAgICAgICAgLy8gc2VsZWN0aW9ucyBpbiBvbmUgcmVxdWVzdCBlYWNoOgogICAgICAgICAgICBzaW5nbGVGaWxlVXBsb2FkczogdHJ1ZSwKICAgICAgICAgICAgLy8gVG8gbGltaXQgdGhlIG51bWJlciBvZiBmaWxlcyB1cGxvYWRlZCB3aXRoIG9uZSBYSFIgcmVxdWVzdCwKICAgICAgICAgICAgLy8gc2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uIHRvIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIDA6CiAgICAgICAgICAgIGxpbWl0TXVsdGlGaWxlVXBsb2FkczogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBTZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gdHJ1ZSB0byBpc3N1ZSBhbGwgZmlsZSB1cGxvYWQgcmVxdWVzdHMKICAgICAgICAgICAgLy8gaW4gYSBzZXF1ZW50aWFsIG9yZGVyOgogICAgICAgICAgICBzZXF1ZW50aWFsVXBsb2FkczogZmFsc2UsCiAgICAgICAgICAgIC8vIFRvIGxpbWl0IHRoZSBudW1iZXIgb2YgY29uY3VycmVudCB1cGxvYWRzLAogICAgICAgICAgICAvLyBzZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gMDoKICAgICAgICAgICAgbGltaXRDb25jdXJyZW50VXBsb2FkczogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBTZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gdHJ1ZSB0byBmb3JjZSBpZnJhbWUgdHJhbnNwb3J0IHVwbG9hZHM6CiAgICAgICAgICAgIGZvcmNlSWZyYW1lVHJhbnNwb3J0OiBmYWxzZSwKICAgICAgICAgICAgLy8gU2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uIHRvIHRoZSBsb2NhdGlvbiBvZiBhIHBvc3RNZXNzYWdlIHdpbmRvdywKICAgICAgICAgICAgLy8gdG8gZW5hYmxlIHBvc3RNZXNzYWdlIHRyYW5zcG9ydCB1cGxvYWRzOgogICAgICAgICAgICBwb3N0TWVzc2FnZTogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCBYSFIgZmlsZSB1cGxvYWRzIGFyZSBzZW50IGFzIG11bHRpcGFydC9mb3JtLWRhdGEuCiAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgdHJhbnNwb3J0IGlzIGFsd2F5cyB1c2luZyBtdWx0aXBhcnQvZm9ybS1kYXRhLgogICAgICAgICAgICAvLyBTZXQgdG8gZmFsc2UgdG8gZW5hYmxlIG5vbi1tdWx0aXBhcnQgWEhSIHVwbG9hZHM6CiAgICAgICAgICAgIG11bHRpcGFydDogdHJ1ZSwKICAgICAgICAgICAgLy8gVG8gdXBsb2FkIGxhcmdlIGZpbGVzIGluIHNtYWxsZXIgY2h1bmtzLCBzZXQgdGhlIGZvbGxvd2luZyBvcHRpb24KICAgICAgICAgICAgLy8gdG8gYSBwcmVmZXJyZWQgbWF4aW11bSBjaHVuayBzaXplLiBJZiBzZXQgdG8gMCwgbnVsbCBvciB1bmRlZmluZWQsCiAgICAgICAgICAgIC8vIG9yIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVpcmVkIEJsb2IgQVBJLCBmaWxlcyB3aWxsCiAgICAgICAgICAgIC8vIGJlIHVwbG9hZGVkIGFzIGEgd2hvbGUuCiAgICAgICAgICAgIG1heENodW5rU2l6ZTogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBXaGVuIGEgbm9uLW11bHRpcGFydCB1cGxvYWQgb3IgYSBjaHVua2VkIG11bHRpcGFydCB1cGxvYWQgaGFzIGJlZW4KICAgICAgICAgICAgLy8gYWJvcnRlZCwgdGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSB1cGxvYWQgYnkgc2V0dGluZwogICAgICAgICAgICAvLyBpdCB0byB0aGUgc2l6ZSBvZiB0aGUgYWxyZWFkeSB1cGxvYWRlZCBieXRlcy4gVGhpcyBvcHRpb24gaXMgbW9zdAogICAgICAgICAgICAvLyB1c2VmdWwgd2hlbiBtb2RpZnlpbmcgdGhlIG9wdGlvbnMgb2JqZWN0IGluc2lkZSBvZiB0aGUgImFkZCIgb3IKICAgICAgICAgICAgLy8gInNlbmQiIGNhbGxiYWNrcywgYXMgdGhlIG9wdGlvbnMgYXJlIGNsb25lZCBmb3IgZWFjaCBmaWxlIHVwbG9hZC4KICAgICAgICAgICAgdXBsb2FkZWRCeXRlczogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCBmYWlsZWQgKGFib3J0IG9yIGVycm9yKSBmaWxlIHVwbG9hZHMgYXJlIHJlbW92ZWQgZnJvbSB0aGUKICAgICAgICAgICAgLy8gZ2xvYmFsIHByb2dyZXNzIGNhbGN1bGF0aW9uLiBTZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gZmFsc2UgdG8KICAgICAgICAgICAgLy8gcHJldmVudCByZWNhbGN1bGF0aW5nIHRoZSBnbG9iYWwgcHJvZ3Jlc3MgZGF0YToKICAgICAgICAgICAgcmVjYWxjdWxhdGVQcm9ncmVzczogdHJ1ZSwKCiAgICAgICAgICAgIC8vIEFkZGl0aW9uYWwgZm9ybSBkYXRhIHRvIGJlIHNlbnQgYWxvbmcgd2l0aCB0aGUgZmlsZSB1cGxvYWRzIGNhbiBiZSBzZXQKICAgICAgICAgICAgLy8gdXNpbmcgdGhpcyBvcHRpb24sIHdoaWNoIGFjY2VwdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIG5hbWUgYW5kCiAgICAgICAgICAgIC8vIHZhbHVlIHByb3BlcnRpZXMsIGEgZnVuY3Rpb24gcmV0dXJuaW5nIHN1Y2ggYW4gYXJyYXksIGEgRm9ybURhdGEKICAgICAgICAgICAgLy8gb2JqZWN0IChmb3IgWEhSIGZpbGUgdXBsb2FkcyksIG9yIGEgc2ltcGxlIG9iamVjdC4KICAgICAgICAgICAgLy8gVGhlIGZvcm0gb2YgdGhlIGZpcnN0IGZpbGVJbnB1dCBpcyBnaXZlbiBhcyBwYXJhbWV0ZXIgdG8gdGhlIGZ1bmN0aW9uOgogICAgICAgICAgICBmb3JtRGF0YTogZnVuY3Rpb24gKGZvcm0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBmb3JtLnNlcmlhbGl6ZUFycmF5KCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvLyBUaGUgYWRkIGNhbGxiYWNrIGlzIGludm9rZWQgYXMgc29vbiBhcyBmaWxlcyBhcmUgYWRkZWQgdG8gdGhlIGZpbGV1cGxvYWQKICAgICAgICAgICAgLy8gd2lkZ2V0ICh2aWEgZmlsZSBpbnB1dCBzZWxlY3Rpb24sIGRyYWcgJiBkcm9wLCBwYXN0ZSBvciBhZGQgQVBJIGNhbGwpLgogICAgICAgICAgICAvLyBJZiB0aGUgc2luZ2xlRmlsZVVwbG9hZHMgb3B0aW9uIGlzIGVuYWJsZWQsIHRoaXMgY2FsbGJhY2sgd2lsbCBiZQogICAgICAgICAgICAvLyBjYWxsZWQgb25jZSBmb3IgZWFjaCBmaWxlIGluIHRoZSBzZWxlY3Rpb24gZm9yIFhIUiBmaWxlIHVwbGFvZHMsIGVsc2UKICAgICAgICAgICAgLy8gb25jZSBmb3IgZWFjaCBmaWxlIHNlbGVjdGlvbi4KICAgICAgICAgICAgLy8gVGhlIHVwbG9hZCBzdGFydHMgd2hlbiB0aGUgc3VibWl0IG1ldGhvZCBpcyBpbnZva2VkIG9uIHRoZSBkYXRhIHBhcmFtZXRlci4KICAgICAgICAgICAgLy8gVGhlIGRhdGEgb2JqZWN0IGNvbnRhaW5zIGEgZmlsZXMgcHJvcGVydHkgaG9sZGluZyB0aGUgYWRkZWQgZmlsZXMKICAgICAgICAgICAgLy8gYW5kIGFsbG93cyB0byBvdmVycmlkZSBwbHVnaW4gb3B0aW9ucyBhcyB3ZWxsIGFzIGRlZmluZSBhamF4IHNldHRpbmdzLgogICAgICAgICAgICAvLyBMaXN0ZW5lcnMgZm9yIHRoaXMgY2FsbGJhY2sgY2FuIGFsc28gYmUgYm91bmQgdGhlIGZvbGxvd2luZyB3YXk6CiAgICAgICAgICAgIC8vIC5iaW5kKCdmaWxldXBsb2FkYWRkJywgZnVuYyk7CiAgICAgICAgICAgIC8vIGRhdGEuc3VibWl0KCkgcmV0dXJucyBhIFByb21pc2Ugb2JqZWN0IGFuZCBhbGxvd3MgdG8gYXR0YWNoIGFkZGl0aW9uYWwKICAgICAgICAgICAgLy8gaGFuZGxlcnMgdXNpbmcgalF1ZXJ5J3MgRGVmZXJyZWQgY2FsbGJhY2tzOgogICAgICAgICAgICAvLyBkYXRhLnN1Ym1pdCgpLmRvbmUoZnVuYykuZmFpbChmdW5jKS5hbHdheXMoZnVuYyk7CiAgICAgICAgICAgIGFkZDogZnVuY3Rpb24gKGUsIGRhdGEpIHsKICAgICAgICAgICAgICAgIGRhdGEuc3VibWl0KCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvLyBPdGhlciBjYWxsYmFja3M6CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciB0aGUgc3VibWl0IGV2ZW50IG9mIGVhY2ggZmlsZSB1cGxvYWQ6CiAgICAgICAgICAgIC8vIHN1Ym1pdDogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZHN1Ym1pdCcsIGZ1bmMpOwogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgdGhlIHN0YXJ0IG9mIGVhY2ggZmlsZSB1cGxvYWQgcmVxdWVzdDoKICAgICAgICAgICAgLy8gc2VuZDogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZHNlbmQnLCBmdW5jKTsKICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIHN1Y2Nlc3NmdWwgdXBsb2FkczoKICAgICAgICAgICAgLy8gZG9uZTogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGRvbmUnLCBmdW5jKTsKICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIGZhaWxlZCAoYWJvcnQgb3IgZXJyb3IpIHVwbG9hZHM6CiAgICAgICAgICAgIC8vIGZhaWw6IGZ1bmN0aW9uIChlLCBkYXRhKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRmYWlsJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBjb21wbGV0ZWQgKHN1Y2Nlc3MsIGFib3J0IG9yIGVycm9yKSByZXF1ZXN0czoKICAgICAgICAgICAgLy8gYWx3YXlzOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkYWx3YXlzJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciB1cGxvYWQgcHJvZ3Jlc3MgZXZlbnRzOgogICAgICAgICAgICAvLyBwcm9ncmVzczogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZHByb2dyZXNzJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBnbG9iYWwgdXBsb2FkIHByb2dyZXNzIGV2ZW50czoKICAgICAgICAgICAgLy8gcHJvZ3Jlc3NhbGw6IGZ1bmN0aW9uIChlLCBkYXRhKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRwcm9ncmVzc2FsbCcsIGZ1bmMpOwogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgdXBsb2FkcyBzdGFydCwgZXF1aXZhbGVudCB0byB0aGUgZ2xvYmFsIGFqYXhTdGFydCBldmVudDoKICAgICAgICAgICAgLy8gc3RhcnQ6IGZ1bmN0aW9uIChlKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRzdGFydCcsIGZ1bmMpOwogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgdXBsb2FkcyBzdG9wLCBlcXVpdmFsZW50IHRvIHRoZSBnbG9iYWwgYWpheFN0b3AgZXZlbnQ6CiAgICAgICAgICAgIC8vIHN0b3A6IGZ1bmN0aW9uIChlKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRzdG9wJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBjaGFuZ2UgZXZlbnRzIG9mIHRoZSBmaWxlSW5wdXQgY29sbGVjdGlvbjoKICAgICAgICAgICAgLy8gY2hhbmdlOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkY2hhbmdlJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBwYXN0ZSBldmVudHMgdG8gdGhlIGRyb3Bab25lIGNvbGxlY3Rpb246CiAgICAgICAgICAgIC8vIHBhc3RlOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkcGFzdGUnLCBmdW5jKTsKICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIGRyb3AgZXZlbnRzIG9mIHRoZSBkcm9wWm9uZSBjb2xsZWN0aW9uOgogICAgICAgICAgICAvLyBkcm9wOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkZHJvcCcsIGZ1bmMpOwogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgZHJhZ292ZXIgZXZlbnRzIG9mIHRoZSBkcm9wWm9uZSBjb2xsZWN0aW9uOgogICAgICAgICAgICAvLyBkcmFnb3ZlcjogZnVuY3Rpb24gKGUpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGRyYWdvdmVyJywgZnVuYyk7CgogICAgICAgICAgICAvLyBUaGUgcGx1Z2luIG9wdGlvbnMgYXJlIHVzZWQgYXMgc2V0dGluZ3Mgb2JqZWN0IGZvciB0aGUgYWpheCBjYWxscy4KICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgalF1ZXJ5IGFqYXggc2V0dGluZ3MgcmVxdWlyZWQgZm9yIHRoZSBmaWxlIHVwbG9hZHM6CiAgICAgICAgICAgIHByb2Nlc3NEYXRhOiBmYWxzZSwKICAgICAgICAgICAgY29udGVudFR5cGU6IGZhbHNlLAogICAgICAgICAgICBjYWNoZTogZmFsc2UKICAgICAgICB9LAoKICAgICAgICAvLyBBIGxpc3Qgb2Ygb3B0aW9ucyB0aGF0IHJlcXVpcmUgYSByZWZyZXNoIGFmdGVyIGFzc2lnbmluZyBhIG5ldyB2YWx1ZToKICAgICAgICBfcmVmcmVzaE9wdGlvbnNMaXN0OiBbJ25hbWVzcGFjZScsICdkcm9wWm9uZScsICdmaWxlSW5wdXQnXSwKCiAgICAgICAgX2lzWEhSVXBsb2FkOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICB2YXIgdW5kZWYgPSAndW5kZWZpbmVkJzsKICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmZvcmNlSWZyYW1lVHJhbnNwb3J0ICYmCiAgICAgICAgICAgICAgICB0eXBlb2YgWE1MSHR0cFJlcXVlc3RVcGxvYWQgIT09IHVuZGVmICYmIHR5cGVvZiBGaWxlICE9PSB1bmRlZiAmJgogICAgICAgICAgICAgICAgKCFvcHRpb25zLm11bHRpcGFydCB8fCB0eXBlb2YgRm9ybURhdGEgIT09IHVuZGVmKTsKICAgICAgICB9LAoKICAgICAgICBfZ2V0Rm9ybURhdGE6IGZ1bmN0aW9uIChvcHRpb25zKSB7CiAgICAgICAgICAgIHZhciBmb3JtRGF0YTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmZvcm1EYXRhID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5mb3JtRGF0YShvcHRpb25zLmZvcm0pOwogICAgICAgICAgICB9IGVsc2UgaWYgKCQuaXNBcnJheShvcHRpb25zLmZvcm1EYXRhKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZm9ybURhdGE7CiAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5mb3JtRGF0YSkgewogICAgICAgICAgICAgICAgZm9ybURhdGEgPSBbXTsKICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZvcm1EYXRhLCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YS5wdXNoKHtuYW1lOiBuYW1lLCB2YWx1ZTogdmFsdWV9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1EYXRhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9LAoKICAgICAgICBfZ2V0VG90YWw6IGZ1bmN0aW9uIChmaWxlcykgewogICAgICAgICAgICB2YXIgdG90YWwgPSAwOwogICAgICAgICAgICAkLmVhY2goZmlsZXMsIGZ1bmN0aW9uIChpbmRleCwgZmlsZSkgewogICAgICAgICAgICAgICAgdG90YWwgKz0gZmlsZS5zaXplIHx8IDE7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gdG90YWw7CiAgICAgICAgfSwKCiAgICAgICAgX29uUHJvZ3Jlc3M6IGZ1bmN0aW9uIChlLCBkYXRhKSB7CiAgICAgICAgICAgIGlmIChlLmxlbmd0aENvbXB1dGFibGUpIHsKICAgICAgICAgICAgICAgIHZhciB0b3RhbCA9IGRhdGEudG90YWwgfHwgdGhpcy5fZ2V0VG90YWwoZGF0YS5maWxlcyksCiAgICAgICAgICAgICAgICAgICAgbG9hZGVkID0gcGFyc2VJbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGUubG9hZGVkIC8gZS50b3RhbCAqIChkYXRhLmNodW5rU2l6ZSB8fCB0b3RhbCksCiAgICAgICAgICAgICAgICAgICAgICAgIDEwCiAgICAgICAgICAgICAgICAgICAgKSArIChkYXRhLnVwbG9hZGVkQnl0ZXMgfHwgMCk7CiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkZWQgKz0gbG9hZGVkIC0gKGRhdGEubG9hZGVkIHx8IGRhdGEudXBsb2FkZWRCeXRlcyB8fCAwKTsKICAgICAgICAgICAgICAgIGRhdGEubGVuZ3RoQ29tcHV0YWJsZSA9IHRydWU7CiAgICAgICAgICAgICAgICBkYXRhLmxvYWRlZCA9IGxvYWRlZDsKICAgICAgICAgICAgICAgIGRhdGEudG90YWwgPSB0b3RhbDsKICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgYSBjdXN0b20gcHJvZ3Jlc3MgZXZlbnQgd2l0aCBhIHRvdGFsIGRhdGEgcHJvcGVydHkgc2V0CiAgICAgICAgICAgICAgICAvLyB0byB0aGUgZmlsZSBzaXplKHMpIG9mIHRoZSBjdXJyZW50IHVwbG9hZCBhbmQgYSBsb2FkZWQgZGF0YQogICAgICAgICAgICAgICAgLy8gcHJvcGVydHkgY2FsY3VsYXRlZCBhY2NvcmRpbmdseToKICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ3Byb2dyZXNzJywgZSwgZGF0YSk7CiAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIGEgZ2xvYmFsIHByb2dyZXNzIGV2ZW50IGZvciBhbGwgY3VycmVudCBmaWxlIHVwbG9hZHMsCiAgICAgICAgICAgICAgICAvLyBpbmNsdWRpbmcgYWpheCBjYWxscyBxdWV1ZWQgZm9yIHNlcXVlbnRpYWwgZmlsZSB1cGxvYWRzOgogICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcigncHJvZ3Jlc3NhbGwnLCBlLCB7CiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoQ29tcHV0YWJsZTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRoaXMuX2xvYWRlZCwKICAgICAgICAgICAgICAgICAgICB0b3RhbDogdGhpcy5fdG90YWwKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX2luaXRQcm9ncmVzc0xpc3RlbmVyOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICAgICAgICB4aHIgPSBvcHRpb25zLnhociA/IG9wdGlvbnMueGhyKCkgOiAkLmFqYXhTZXR0aW5ncy54aHIoKTsKICAgICAgICAgICAgLy8gQWNjZXNzcyB0byB0aGUgbmF0aXZlIFhIUiBvYmplY3QgaXMgcmVxdWlyZWQgdG8gYWRkIGV2ZW50IGxpc3RlbmVycwogICAgICAgICAgICAvLyBmb3IgdGhlIHVwbG9hZCBwcm9ncmVzcyBldmVudDoKICAgICAgICAgICAgaWYgKHhoci51cGxvYWQpIHsKICAgICAgICAgICAgICAgICQoeGhyLnVwbG9hZCkuYmluZCgncHJvZ3Jlc3MnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgIHZhciBvZSA9IGUub3JpZ2luYWxFdmVudDsKICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHByb2dyZXNzIGV2ZW50IHByb3BlcnRpZXMgZ2V0IGNvcGllZCBvdmVyOgogICAgICAgICAgICAgICAgICAgIGUubGVuZ3RoQ29tcHV0YWJsZSA9IG9lLmxlbmd0aENvbXB1dGFibGU7CiAgICAgICAgICAgICAgICAgICAgZS5sb2FkZWQgPSBvZS5sb2FkZWQ7CiAgICAgICAgICAgICAgICAgICAgZS50b3RhbCA9IG9lLnRvdGFsOwogICAgICAgICAgICAgICAgICAgIHRoYXQuX29uUHJvZ3Jlc3MoZSwgb3B0aW9ucyk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIG9wdGlvbnMueGhyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB4aHI7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX2luaXRYSFJEYXRhOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICB2YXIgZm9ybURhdGEsCiAgICAgICAgICAgICAgICBmaWxlID0gb3B0aW9ucy5maWxlc1swXTsKICAgICAgICAgICAgaWYgKCFvcHRpb25zLm11bHRpcGFydCB8fCBvcHRpb25zLmJsb2IpIHsKICAgICAgICAgICAgICAgIC8vIEZvciBub24tbXVsdGlwYXJ0IHVwbG9hZHMgYW5kIGNodW5rZWQgdXBsb2FkcywKICAgICAgICAgICAgICAgIC8vIGZpbGUgbWV0YSBkYXRhIGlzIG5vdCBwYXJ0IG9mIHRoZSByZXF1ZXN0IGJvZHksCiAgICAgICAgICAgICAgICAvLyBzbyB3ZSB0cmFuc21pdCB0aGlzIGRhdGEgYXMgcGFydCBvZiB0aGUgSFRUUCBoZWFkZXJzLgogICAgICAgICAgICAgICAgLy8gRm9yIGNyb3NzIGRvbWFpbiByZXF1ZXN0cywgdGhlc2UgaGVhZGVycyBtdXN0IGJlIGFsbG93ZWQKICAgICAgICAgICAgICAgIC8vIHZpYSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIG9yIHJlbW92ZWQgdXNpbmcKICAgICAgICAgICAgICAgIC8vIHRoZSBiZWZvcmVTZW5kIGNhbGxiYWNrOgogICAgICAgICAgICAgICAgb3B0aW9ucy5oZWFkZXJzID0gJC5leHRlbmQob3B0aW9ucy5oZWFkZXJzLCB7CiAgICAgICAgICAgICAgICAgICAgJ1gtRmlsZS1OYW1lJzogZmlsZS5uYW1lLAogICAgICAgICAgICAgICAgICAgICdYLUZpbGUtVHlwZSc6IGZpbGUudHlwZSwKICAgICAgICAgICAgICAgICAgICAnWC1GaWxlLVNpemUnOiBmaWxlLnNpemUKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmJsb2IpIHsKICAgICAgICAgICAgICAgICAgICAvLyBOb24tY2h1bmtlZCBub24tbXVsdGlwYXJ0IHVwbG9hZDoKICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmNvbnRlbnRUeXBlID0gZmlsZS50eXBlOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZGF0YSA9IGZpbGU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLm11bHRpcGFydCkgewogICAgICAgICAgICAgICAgICAgIC8vIENodW5rZWQgbm9uLW11bHRpcGFydCB1cGxvYWQ6CiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5jb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZGF0YSA9IG9wdGlvbnMuYmxvYjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAob3B0aW9ucy5tdWx0aXBhcnQgJiYgdHlwZW9mIEZvcm1EYXRhICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucG9zdE1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAvLyB3aW5kb3cucG9zdE1lc3NhZ2UgZG9lcyBub3QgYWxsb3cgc2VuZGluZyBGb3JtRGF0YQogICAgICAgICAgICAgICAgICAgIC8vIG9iamVjdHMsIHNvIHdlIGp1c3QgYWRkIHRoZSBGaWxlL0Jsb2Igb2JqZWN0cyB0bwogICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmb3JtRGF0YSBhcnJheSBhbmQgbGV0IHRoZSBwb3N0TWVzc2FnZSB3aW5kb3cKICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIEZvcm1EYXRhIG9iamVjdCBvdXQgb2YgdGhpcyBhcnJheToKICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YSA9IHRoaXMuX2dldEZvcm1EYXRhKG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmJsb2IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBvcHRpb25zLnBhcmFtTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb25zLmJsb2IKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJC5lYWNoKG9wdGlvbnMuZmlsZXMsIGZ1bmN0aW9uIChpbmRleCwgZmlsZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogb3B0aW9ucy5wYXJhbU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcm1EYXRhIGluc3RhbmNlb2YgRm9ybURhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEgPSBvcHRpb25zLmZvcm1EYXRhOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaCh0aGlzLl9nZXRGb3JtRGF0YShvcHRpb25zKSwgZnVuY3Rpb24gKGluZGV4LCBmaWVsZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpZWxkLm5hbWUsIGZpZWxkLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmJsb2IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG9wdGlvbnMucGFyYW1OYW1lLCBvcHRpb25zLmJsb2IpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZpbGVzLCBmdW5jdGlvbiAoaW5kZXgsIGZpbGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpbGUgb2JqZWN0cyBhcmUgYWxzbyBCbG9iIGluc3RhbmNlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgYWxsb3dzIHRoZSB0ZXN0cyB0byBydW4gd2l0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVtbXkgb2JqZWN0czoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWxlIGluc3RhbmNlb2YgQmxvYikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChvcHRpb25zLnBhcmFtTmFtZSwgZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG9wdGlvbnMuZGF0YSA9IGZvcm1EYXRhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEJsb2IgcmVmZXJlbmNlIGlzIG5vdCBuZWVkZWQgYW55bW9yZSwgZnJlZSBtZW1vcnk6CiAgICAgICAgICAgIG9wdGlvbnMuYmxvYiA9IG51bGw7CiAgICAgICAgfSwKCiAgICAgICAgX2luaXRJZnJhbWVTZXR0aW5nczogZnVuY3Rpb24gKG9wdGlvbnMpIHsKICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgZGF0YVR5cGUgdG8gaWZyYW1lIGVuYWJsZXMgdGhlIGlmcmFtZSB0cmFuc3BvcnQ6CiAgICAgICAgICAgIG9wdGlvbnMuZGF0YVR5cGUgPSAnaWZyYW1lICcgKyAob3B0aW9ucy5kYXRhVHlwZSB8fCAnJyk7CiAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgdHJhbnNwb3J0IGFjY2VwdHMgYSBzZXJpYWxpemVkIGFycmF5IGFzIGZvcm0gZGF0YToKICAgICAgICAgICAgb3B0aW9ucy5mb3JtRGF0YSA9IHRoaXMuX2dldEZvcm1EYXRhKG9wdGlvbnMpOwogICAgICAgIH0sCgogICAgICAgIF9pbml0RGF0YVNldHRpbmdzOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICBpZiAodGhpcy5faXNYSFJVcGxvYWQob3B0aW9ucykpIHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5fY2h1bmtlZFVwbG9hZChvcHRpb25zLCB0cnVlKSkgewogICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5kYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXRYSFJEYXRhKG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0UHJvZ3Jlc3NMaXN0ZW5lcihvcHRpb25zKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnBvc3RNZXNzYWdlKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgZGF0YVR5cGUgdG8gcG9zdG1lc3NhZ2UgZW5hYmxlcyB0aGUKICAgICAgICAgICAgICAgICAgICAvLyBwb3N0TWVzc2FnZSB0cmFuc3BvcnQ6CiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5kYXRhVHlwZSA9ICdwb3N0bWVzc2FnZSAnICsgKG9wdGlvbnMuZGF0YVR5cGUgfHwgJycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5faW5pdElmcmFtZVNldHRpbmdzKG9wdGlvbnMsICdpZnJhbWUnKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIF9pbml0Rm9ybVNldHRpbmdzOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICAvLyBSZXRyaWV2ZSBtaXNzaW5nIG9wdGlvbnMgZnJvbSB0aGUgaW5wdXQgZmllbGQgYW5kIHRoZQogICAgICAgICAgICAvLyBhc3NvY2lhdGVkIGZvcm0sIGlmIGF2YWlsYWJsZToKICAgICAgICAgICAgaWYgKCFvcHRpb25zLmZvcm0gfHwgIW9wdGlvbnMuZm9ybS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIG9wdGlvbnMuZm9ybSA9ICQob3B0aW9ucy5maWxlSW5wdXQucHJvcCgnZm9ybScpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW9wdGlvbnMucGFyYW1OYW1lKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLnBhcmFtTmFtZSA9IG9wdGlvbnMuZmlsZUlucHV0LnByb3AoJ25hbWUnKSB8fAogICAgICAgICAgICAgICAgICAgICdmaWxlc1tdJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW9wdGlvbnMudXJsKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLnVybCA9IG9wdGlvbnMuZm9ybS5wcm9wKCdhY3Rpb24nKSB8fCBsb2NhdGlvbi5ocmVmOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFRoZSBIVFRQIHJlcXVlc3QgbWV0aG9kIG11c3QgYmUgIlBPU1QiIG9yICJQVVQiOgogICAgICAgICAgICBvcHRpb25zLnR5cGUgPSAob3B0aW9ucy50eXBlIHx8IG9wdGlvbnMuZm9ybS5wcm9wKCdtZXRob2QnKSB8fCAnJykKICAgICAgICAgICAgICAgIC50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICBpZiAob3B0aW9ucy50eXBlICE9PSAnUE9TVCcgJiYgb3B0aW9ucy50eXBlICE9PSAnUFVUJykgewogICAgICAgICAgICAgICAgb3B0aW9ucy50eXBlID0gJ1BPU1QnOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX2dldEFKQVhTZXR0aW5nczogZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgdGhpcy5vcHRpb25zLCBkYXRhKTsKICAgICAgICAgICAgdGhpcy5faW5pdEZvcm1TZXR0aW5ncyhvcHRpb25zKTsKICAgICAgICAgICAgdGhpcy5faW5pdERhdGFTZXR0aW5ncyhvcHRpb25zKTsKICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7CiAgICAgICAgfSwKCiAgICAgICAgLy8gTWFwcyBqcVhIUiBjYWxsYmFja3MgdG8gdGhlIGVxdWl2YWxlbnQKICAgICAgICAvLyBtZXRob2RzIG9mIHRoZSBnaXZlbiBQcm9taXNlIG9iamVjdDoKICAgICAgICBfZW5oYW5jZVByb21pc2U6IGZ1bmN0aW9uIChwcm9taXNlKSB7CiAgICAgICAgICAgIHByb21pc2Uuc3VjY2VzcyA9IHByb21pc2UuZG9uZTsKICAgICAgICAgICAgcHJvbWlzZS5lcnJvciA9IHByb21pc2UuZmFpbDsKICAgICAgICAgICAgcHJvbWlzZS5jb21wbGV0ZSA9IHByb21pc2UuYWx3YXlzOwogICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICB9LAoKICAgICAgICAvLyBDcmVhdGVzIGFuZCByZXR1cm5zIGEgUHJvbWlzZSBvYmplY3QgZW5oYW5jZWQgd2l0aAogICAgICAgIC8vIHRoZSBqcVhIUiBtZXRob2RzIGFib3J0LCBzdWNjZXNzLCBlcnJvciBhbmQgY29tcGxldGU6CiAgICAgICAgX2dldFhIUlByb21pc2U6IGZ1bmN0aW9uIChyZXNvbHZlT3JSZWplY3QsIGNvbnRleHQsIGFyZ3MpIHsKICAgICAgICAgICAgdmFyIGRmZCA9ICQuRGVmZXJyZWQoKSwKICAgICAgICAgICAgICAgIHByb21pc2UgPSBkZmQucHJvbWlzZSgpOwogICAgICAgICAgICBjb250ZXh0ID0gY29udGV4dCB8fCB0aGlzLm9wdGlvbnMuY29udGV4dCB8fCBwcm9taXNlOwogICAgICAgICAgICBpZiAocmVzb2x2ZU9yUmVqZWN0ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBkZmQucmVzb2x2ZVdpdGgoY29udGV4dCwgYXJncyk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb2x2ZU9yUmVqZWN0ID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgZGZkLnJlamVjdFdpdGgoY29udGV4dCwgYXJncyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHJvbWlzZS5hYm9ydCA9IGRmZC5wcm9taXNlOwogICAgICAgICAgICByZXR1cm4gdGhpcy5fZW5oYW5jZVByb21pc2UocHJvbWlzZSk7CiAgICAgICAgfSwKCiAgICAgICAgLy8gVXBsb2FkcyBhIGZpbGUgaW4gbXVsdGlwbGUsIHNlcXVlbnRpYWwgcmVxdWVzdHMKICAgICAgICAvLyBieSBzcGxpdHRpbmcgdGhlIGZpbGUgdXAgaW4gbXVsdGlwbGUgYmxvYiBjaHVua3MuCiAgICAgICAgLy8gSWYgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgdHJ1ZSwgb25seSB0ZXN0cyBpZiB0aGUgZmlsZQogICAgICAgIC8vIHNob3VsZCBiZSB1cGxvYWRlZCBpbiBjaHVua3MsIGJ1dCBkb2VzIG5vdCBpbnZva2UgYW55CiAgICAgICAgLy8gdXBsb2FkIHJlcXVlc3RzOgogICAgICAgIF9jaHVua2VkVXBsb2FkOiBmdW5jdGlvbiAob3B0aW9ucywgdGVzdE9ubHkpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLAogICAgICAgICAgICAgICAgZmlsZSA9IG9wdGlvbnMuZmlsZXNbMF0sCiAgICAgICAgICAgICAgICBmcyA9IGZpbGUuc2l6ZSwKICAgICAgICAgICAgICAgIHViID0gb3B0aW9ucy51cGxvYWRlZEJ5dGVzID0gb3B0aW9ucy51cGxvYWRlZEJ5dGVzIHx8IDAsCiAgICAgICAgICAgICAgICBtY3MgPSBvcHRpb25zLm1heENodW5rU2l6ZSB8fCBmcywKICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgQmxvYiBtZXRob2RzIHdpdGggdGhlIHNsaWNlIGltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAvLyBhY2NvcmRpbmcgdG8gdGhlIFczQyBCbG9iIEFQSSBzcGVjaWZpY2F0aW9uOgogICAgICAgICAgICAgICAgc2xpY2UgPSBmaWxlLndlYmtpdFNsaWNlIHx8IGZpbGUubW96U2xpY2UgfHwgZmlsZS5zbGljZSwKICAgICAgICAgICAgICAgIHVwbG9hZCwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBqcVhIUiwKICAgICAgICAgICAgICAgIHBpcGU7CiAgICAgICAgICAgIGlmICghKHRoaXMuX2lzWEhSVXBsb2FkKG9wdGlvbnMpICYmIHNsaWNlICYmICh1YiB8fCBtY3MgPCBmcykpIHx8CiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5kYXRhKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHRlc3RPbmx5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAodWIgPj0gZnMpIHsKICAgICAgICAgICAgICAgIGZpbGUuZXJyb3IgPSAndXBsb2FkZWRCeXRlcyc7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0WEhSUHJvbWlzZSgKICAgICAgICAgICAgICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgW251bGwsICdlcnJvcicsIGZpbGUuZXJyb3JdCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIG4gaXMgdGhlIG51bWJlciBvZiBibG9icyB0byB1cGxvYWQsCiAgICAgICAgICAgIC8vIGNhbGN1bGF0ZWQgdmlhIGZpbGVzaXplLCB1cGxvYWRlZCBieXRlcyBhbmQgbWF4IGNodW5rIHNpemU6CiAgICAgICAgICAgIG4gPSBNYXRoLmNlaWwoKGZzIC0gdWIpIC8gbWNzKTsKICAgICAgICAgICAgLy8gVGhlIGNodW5rIHVwbG9hZCBtZXRob2QgYWNjZXB0aW5nIHRoZSBjaHVuayBudW1iZXIgYXMgcGFyYW1ldGVyOgogICAgICAgICAgICB1cGxvYWQgPSBmdW5jdGlvbiAoaSkgewogICAgICAgICAgICAgICAgaWYgKCFpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX2dldFhIUlByb21pc2UodHJ1ZSwgb3B0aW9ucy5jb250ZXh0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vIFVwbG9hZCB0aGUgYmxvYnMgaW4gc2VxdWVudGlhbCBvcmRlcjoKICAgICAgICAgICAgICAgIHJldHVybiB1cGxvYWQoaSAtPSAxKS5waXBlKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAvLyBDbG9uZSB0aGUgb3B0aW9ucyBvYmplY3QgZm9yIGVhY2ggY2h1bmsgdXBsb2FkOgogICAgICAgICAgICAgICAgICAgIHZhciBvID0gJC5leHRlbmQoe30sIG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIG8uYmxvYiA9IHNsaWNlLmNhbGwoCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHViICsgaSAqIG1jcywKICAgICAgICAgICAgICAgICAgICAgICAgdWIgKyAoaSArIDEpICogbWNzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUgY3VycmVudCBjaHVuayBzaXplLCBhcyB0aGUgYmxvYiBpdHNlbGYKICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGJlIGRlcmVmZXJlbmNlZCBhZnRlciBkYXRhIHByb2Nlc3Npbmc6CiAgICAgICAgICAgICAgICAgICAgby5jaHVua1NpemUgPSBvLmJsb2Iuc2l6ZTsKICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHRoZSB1cGxvYWQgZGF0YSAodGhlIGJsb2IgYW5kIHBvdGVudGlhbCBmb3JtIGRhdGEpOgogICAgICAgICAgICAgICAgICAgIHRoYXQuX2luaXRYSFJEYXRhKG8pOwogICAgICAgICAgICAgICAgICAgIC8vIEFkZCBwcm9ncmVzcyBsaXN0ZW5lcnMgZm9yIHRoaXMgY2h1bmsgdXBsb2FkOgogICAgICAgICAgICAgICAgICAgIHRoYXQuX2luaXRQcm9ncmVzc0xpc3RlbmVyKG8pOwogICAgICAgICAgICAgICAgICAgIGpxWEhSID0gKCQuYWpheChvKSB8fCB0aGF0Ll9nZXRYSFJQcm9taXNlKGZhbHNlLCBvLmNvbnRleHQpKQogICAgICAgICAgICAgICAgICAgICAgICAuZG9uZShmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBwcm9ncmVzcyBldmVudCBpZiB1cGxvYWQgaXMgZG9uZSBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIHByb2dyZXNzIGV2ZW50IGhhcyBiZWVuIGludm9rZWQgZm9yIHRoaXMgY2h1bms6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW8ubG9hZGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fb25Qcm9ncmVzcygkLkV2ZW50KCdwcm9ncmVzcycsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoQ29tcHV0YWJsZTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiBvLmNodW5rU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWw6IG8uY2h1bmtTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIG8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51cGxvYWRlZEJ5dGVzID0gby51cGxvYWRlZEJ5dGVzICs9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgby5jaHVua1NpemU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBqcVhIUjsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBSZXR1cm4gdGhlIHBpcGVkIFByb21pc2Ugb2JqZWN0LCBlbmhhbmNlZCB3aXRoIGFuIGFib3J0IG1ldGhvZCwKICAgICAgICAgICAgLy8gd2hpY2ggaXMgZGVsZWdhdGVkIHRvIHRoZSBqcVhIUiBvYmplY3Qgb2YgdGhlIGN1cnJlbnQgdXBsb2FkLAogICAgICAgICAgICAvLyBhbmQganFYSFIgY2FsbGJhY2tzIG1hcHBlZCB0byB0aGUgZXF1aXZhbGVudCBQcm9taXNlIG1ldGhvZHM6CiAgICAgICAgICAgIHBpcGUgPSB1cGxvYWQobik7CiAgICAgICAgICAgIHBpcGUuYWJvcnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4ganFYSFIuYWJvcnQoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VuaGFuY2VQcm9taXNlKHBpcGUpOwogICAgICAgIH0sCgogICAgICAgIF9iZWZvcmVTZW5kOiBmdW5jdGlvbiAoZSwgZGF0YSkgewogICAgICAgICAgICBpZiAodGhpcy5fYWN0aXZlID09PSAwKSB7CiAgICAgICAgICAgICAgICAvLyB0aGUgc3RhcnQgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gdXBsb2FkIHN0YXJ0cwogICAgICAgICAgICAgICAgLy8gYW5kIG5vIG90aGVyIHVwbG9hZHMgYXJlIGN1cnJlbnRseSBydW5uaW5nLAogICAgICAgICAgICAgICAgLy8gZXF1aXZhbGVudCB0byB0aGUgZ2xvYmFsIGFqYXhTdGFydCBldmVudDoKICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ3N0YXJ0Jyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5fYWN0aXZlICs9IDE7CiAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCBwcm9ncmVzcyB2YWx1ZXM6CiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCArPSBkYXRhLnVwbG9hZGVkQnl0ZXMgfHwgMDsKICAgICAgICAgICAgdGhpcy5fdG90YWwgKz0gdGhpcy5fZ2V0VG90YWwoZGF0YS5maWxlcyk7CiAgICAgICAgfSwKCiAgICAgICAgX29uRG9uZTogZnVuY3Rpb24gKHJlc3VsdCwgdGV4dFN0YXR1cywganFYSFIsIG9wdGlvbnMpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLl9pc1hIUlVwbG9hZChvcHRpb25zKSkgewogICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgcHJvZ3Jlc3MgZXZlbnQgZm9yIGVhY2ggaWZyYW1lIGxvYWQ6CiAgICAgICAgICAgICAgICB0aGlzLl9vblByb2dyZXNzKCQuRXZlbnQoJ3Byb2dyZXNzJywgewogICAgICAgICAgICAgICAgICAgIGxlbmd0aENvbXB1dGFibGU6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiAxLAogICAgICAgICAgICAgICAgICAgIHRvdGFsOiAxCiAgICAgICAgICAgICAgICB9KSwgb3B0aW9ucyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgb3B0aW9ucy5yZXN1bHQgPSByZXN1bHQ7CiAgICAgICAgICAgIG9wdGlvbnMudGV4dFN0YXR1cyA9IHRleHRTdGF0dXM7CiAgICAgICAgICAgIG9wdGlvbnMuanFYSFIgPSBqcVhIUjsKICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcignZG9uZScsIG51bGwsIG9wdGlvbnMpOwogICAgICAgIH0sCgogICAgICAgIF9vbkZhaWw6IGZ1bmN0aW9uIChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24sIG9wdGlvbnMpIHsKICAgICAgICAgICAgb3B0aW9ucy5qcVhIUiA9IGpxWEhSOwogICAgICAgICAgICBvcHRpb25zLnRleHRTdGF0dXMgPSB0ZXh0U3RhdHVzOwogICAgICAgICAgICBvcHRpb25zLmVycm9yVGhyb3duID0gZXJyb3JUaHJvd247CiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ2ZhaWwnLCBudWxsLCBvcHRpb25zKTsKICAgICAgICAgICAgaWYgKG9wdGlvbnMucmVjYWxjdWxhdGVQcm9ncmVzcykgewogICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBmYWlsZWQgKGVycm9yIG9yIGFib3J0KSBmaWxlIHVwbG9hZCBmcm9tCiAgICAgICAgICAgICAgICAvLyB0aGUgZ2xvYmFsIHByb2dyZXNzIGNhbGN1bGF0aW9uOgogICAgICAgICAgICAgICAgdGhpcy5fbG9hZGVkIC09IG9wdGlvbnMubG9hZGVkIHx8IG9wdGlvbnMudXBsb2FkZWRCeXRlcyB8fCAwOwogICAgICAgICAgICAgICAgdGhpcy5fdG90YWwgLT0gb3B0aW9ucy50b3RhbCB8fCB0aGlzLl9nZXRUb3RhbChvcHRpb25zLmZpbGVzKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIF9vbkFsd2F5czogZnVuY3Rpb24gKGpxWEhSb3JSZXN1bHQsIHRleHRTdGF0dXMsIGpxWEhSb3JFcnJvciwgb3B0aW9ucykgewogICAgICAgICAgICB0aGlzLl9hY3RpdmUgLT0gMTsKICAgICAgICAgICAgb3B0aW9ucy50ZXh0U3RhdHVzID0gdGV4dFN0YXR1czsKICAgICAgICAgICAgaWYgKGpxWEhSb3JFcnJvciAmJiBqcVhIUm9yRXJyb3IuYWx3YXlzKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLmpxWEhSID0ganFYSFJvckVycm9yOwogICAgICAgICAgICAgICAgb3B0aW9ucy5yZXN1bHQgPSBqcVhIUm9yUmVzdWx0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgb3B0aW9ucy5qcVhIUiA9IGpxWEhSb3JSZXN1bHQ7CiAgICAgICAgICAgICAgICBvcHRpb25zLmVycm9yVGhyb3duID0ganFYSFJvckVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ2Fsd2F5cycsIG51bGwsIG9wdGlvbnMpOwogICAgICAgICAgICBpZiAodGhpcy5fYWN0aXZlID09PSAwKSB7CiAgICAgICAgICAgICAgICAvLyBUaGUgc3RvcCBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBhbGwgdXBsb2FkcyBoYXZlCiAgICAgICAgICAgICAgICAvLyBiZWVuIGNvbXBsZXRlZCwgZXF1aXZhbGVudCB0byB0aGUgZ2xvYmFsIGFqYXhTdG9wIGV2ZW50OgogICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcignc3RvcCcpOwogICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGdsb2JhbCBwcm9ncmVzcyB2YWx1ZXM6CiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkZWQgPSB0aGlzLl90b3RhbCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfb25TZW5kOiBmdW5jdGlvbiAoZSwgZGF0YSkgewogICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICAgICAgICBqcVhIUiwKICAgICAgICAgICAgICAgIHNsb3QsCiAgICAgICAgICAgICAgICBwaXBlLAogICAgICAgICAgICAgICAgb3B0aW9ucyA9IHRoYXQuX2dldEFKQVhTZXR0aW5ncyhkYXRhKSwKICAgICAgICAgICAgICAgIHNlbmQgPSBmdW5jdGlvbiAocmVzb2x2ZSwgYXJncykgewogICAgICAgICAgICAgICAgICAgIHRoYXQuX3NlbmRpbmcgKz0gMTsKICAgICAgICAgICAgICAgICAgICBqcVhIUiA9IGpxWEhSIHx8ICgKICAgICAgICAgICAgICAgICAgICAgICAgKHJlc29sdmUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3RyaWdnZXIoJ3NlbmQnLCBlLCBvcHRpb25zKSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKHRoYXQuX2NodW5rZWRVcGxvYWQob3B0aW9ucykgfHwgJC5hamF4KG9wdGlvbnMpKSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fZ2V0WEhSUHJvbWlzZShmYWxzZSwgb3B0aW9ucy5jb250ZXh0LCBhcmdzKQogICAgICAgICAgICAgICAgICAgICkuZG9uZShmdW5jdGlvbiAocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9vbkRvbmUocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUiwgb3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgfSkuZmFpbChmdW5jdGlvbiAoanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX29uRmFpbChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24sIG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIH0pLmFsd2F5cyhmdW5jdGlvbiAoanFYSFJvclJlc3VsdCwgdGV4dFN0YXR1cywganFYSFJvckVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3NlbmRpbmcgLT0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fb25BbHdheXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqcVhIUm9yUmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpxWEhSb3JFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyA+IHRoYXQuX3NlbmRpbmcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHRoZSBuZXh0IHF1ZXVlZCB1cGxvYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGhhcyBub3QgYmVlbiBhYm9ydGVkOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRTbG90ID0gdGhhdC5fc2xvdHMuc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0U2xvdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmV4dFNsb3QuaXNSZWplY3RlZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTbG90LnJlc29sdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTbG90ID0gdGhhdC5fc2xvdHMuc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBqcVhIUjsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIHRoaXMuX2JlZm9yZVNlbmQoZSwgb3B0aW9ucyk7CiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2VxdWVudGlhbFVwbG9hZHMgfHwKICAgICAgICAgICAgICAgICAgICAodGhpcy5vcHRpb25zLmxpbWl0Q29uY3VycmVudFVwbG9hZHMgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyA8PSB0aGlzLl9zZW5kaW5nKSkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5saW1pdENvbmN1cnJlbnRVcGxvYWRzID4gMSkgewogICAgICAgICAgICAgICAgICAgIHNsb3QgPSAkLkRlZmVycmVkKCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2xvdHMucHVzaChzbG90KTsKICAgICAgICAgICAgICAgICAgICBwaXBlID0gc2xvdC5waXBlKHNlbmQpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBwaXBlID0gKHRoaXMuX3NlcXVlbmNlID0gdGhpcy5fc2VxdWVuY2UucGlwZShzZW5kLCBzZW5kKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBSZXR1cm4gdGhlIHBpcGVkIFByb21pc2Ugb2JqZWN0LCBlbmhhbmNlZCB3aXRoIGFuIGFib3J0IG1ldGhvZCwKICAgICAgICAgICAgICAgIC8vIHdoaWNoIGlzIGRlbGVnYXRlZCB0byB0aGUganFYSFIgb2JqZWN0IG9mIHRoZSBjdXJyZW50IHVwbG9hZCwKICAgICAgICAgICAgICAgIC8vIGFuZCBqcVhIUiBjYWxsYmFja3MgbWFwcGVkIHRvIHRoZSBlcXVpdmFsZW50IFByb21pc2UgbWV0aG9kczoKICAgICAgICAgICAgICAgIHBpcGUuYWJvcnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbdW5kZWZpbmVkLCAnYWJvcnQnLCAnYWJvcnQnXTsKICAgICAgICAgICAgICAgICAgICBpZiAoIWpxWEhSKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbG90KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LnJlamVjdFdpdGgoYXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbmQoZmFsc2UsIGFyZ3MpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4ganFYSFIuYWJvcnQoKTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZW5oYW5jZVByb21pc2UocGlwZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHNlbmQoKTsKICAgICAgICB9LAoKICAgICAgICBfb25BZGQ6IGZ1bmN0aW9uIChlLCBkYXRhKSB7CiAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcywKICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWUsCiAgICAgICAgICAgICAgICBvcHRpb25zID0gJC5leHRlbmQoe30sIHRoaXMub3B0aW9ucywgZGF0YSksCiAgICAgICAgICAgICAgICBsaW1pdCA9IG9wdGlvbnMubGltaXRNdWx0aUZpbGVVcGxvYWRzLAogICAgICAgICAgICAgICAgZmlsZVNldCwKICAgICAgICAgICAgICAgIGk7CiAgICAgICAgICAgIGlmICghKG9wdGlvbnMuc2luZ2xlRmlsZVVwbG9hZHMgfHwgbGltaXQpIHx8CiAgICAgICAgICAgICAgICAgICAgIXRoaXMuX2lzWEhSVXBsb2FkKG9wdGlvbnMpKSB7CiAgICAgICAgICAgICAgICBmaWxlU2V0ID0gW2RhdGEuZmlsZXNdOwogICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLnNpbmdsZUZpbGVVcGxvYWRzICYmIGxpbWl0KSB7CiAgICAgICAgICAgICAgICBmaWxlU2V0ID0gW107CiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YS5maWxlcy5sZW5ndGg7IGkgKz0gbGltaXQpIHsKICAgICAgICAgICAgICAgICAgICBmaWxlU2V0LnB1c2goZGF0YS5maWxlcy5zbGljZShpLCBpICsgbGltaXQpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhLm9yaWdpbmFsRmlsZXMgPSBkYXRhLmZpbGVzOwogICAgICAgICAgICAkLmVhY2goZmlsZVNldCB8fCBkYXRhLmZpbGVzLCBmdW5jdGlvbiAoaW5kZXgsIGVsZW1lbnQpIHsKICAgICAgICAgICAgICAgIHZhciBmaWxlcyA9IGZpbGVTZXQgPyBlbGVtZW50IDogW2VsZW1lbnRdLAogICAgICAgICAgICAgICAgICAgIG5ld0RhdGEgPSAkLmV4dGVuZCh7fSwgZGF0YSwge2ZpbGVzOiBmaWxlc30pOwogICAgICAgICAgICAgICAgbmV3RGF0YS5zdWJtaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgbmV3RGF0YS5qcVhIUiA9IHRoaXMuanFYSFIgPQogICAgICAgICAgICAgICAgICAgICAgICAodGhhdC5fdHJpZ2dlcignc3VibWl0JywgZSwgdGhpcykgIT09IGZhbHNlKSAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9vblNlbmQoZSwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuanFYSFI7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgcmV0dXJuIChyZXN1bHQgPSB0aGF0Ll90cmlnZ2VyKCdhZGQnLCBlLCBuZXdEYXRhKSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgIH0sCgogICAgICAgIC8vIEZpbGUgTm9ybWFsaXphdGlvbiBmb3IgR2Vja28gMS45LjEgKEZpcmVmb3ggMy41KSBzdXBwb3J0OgogICAgICAgIF9ub3JtYWxpemVGaWxlOiBmdW5jdGlvbiAoaW5kZXgsIGZpbGUpIHsKICAgICAgICAgICAgaWYgKGZpbGUubmFtZSA9PT0gdW5kZWZpbmVkICYmIGZpbGUuc2l6ZSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBmaWxlLm5hbWUgPSBmaWxlLmZpbGVOYW1lOwogICAgICAgICAgICAgICAgZmlsZS5zaXplID0gZmlsZS5maWxlU2l6ZTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIF9yZXBsYWNlRmlsZUlucHV0OiBmdW5jdGlvbiAoaW5wdXQpIHsKICAgICAgICAgICAgdmFyIGlucHV0Q2xvbmUgPSBpbnB1dC5jbG9uZSh0cnVlKTsKICAgICAgICAgICAgJCgnPGZvcm0+PC9mb3JtPicpLmFwcGVuZChpbnB1dENsb25lKVswXS5yZXNldCgpOwogICAgICAgICAgICAvLyBEZXRhY2hpbmcgYWxsb3dzIHRvIGluc2VydCB0aGUgZmlsZUlucHV0IG9uIGFub3RoZXIgZm9ybQogICAgICAgICAgICAvLyB3aXRob3V0IGxvb3NpbmcgdGhlIGZpbGUgaW5wdXQgdmFsdWU6CiAgICAgICAgICAgIGlucHV0LmFmdGVyKGlucHV0Q2xvbmUpLmRldGFjaCgpOwogICAgICAgICAgICAvLyBBdm9pZCBtZW1vcnkgbGVha3Mgd2l0aCB0aGUgZGV0YWNoZWQgZmlsZSBpbnB1dDoKICAgICAgICAgICAgJC5jbGVhbkRhdGEoaW5wdXQudW5iaW5kKCdyZW1vdmUnKSk7CiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIG9yaWdpbmFsIGZpbGUgaW5wdXQgZWxlbWVudCBpbiB0aGUgZmlsZUlucHV0CiAgICAgICAgICAgIC8vIGNvbGxlY3Rpb24gd2l0aCB0aGUgY2xvbmUsIHdoaWNoIGhhcyBiZWVuIGNvcGllZCBpbmNsdWRpbmcKICAgICAgICAgICAgLy8gZXZlbnQgaGFuZGxlcnM6CiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5maWxlSW5wdXQgPSB0aGlzLm9wdGlvbnMuZmlsZUlucHV0Lm1hcChmdW5jdGlvbiAoaSwgZWwpIHsKICAgICAgICAgICAgICAgIGlmIChlbCA9PT0gaW5wdXRbMF0pIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5wdXRDbG9uZVswXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBlbDsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIC8vIElmIHRoZSB3aWRnZXQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgb24gdGhlIGZpbGUgaW5wdXQgaXRzZWxmLAogICAgICAgICAgICAvLyBvdmVycmlkZSB0aGlzLmVsZW1lbnQgd2l0aCB0aGUgZmlsZSBpbnB1dCBjbG9uZToKICAgICAgICAgICAgaWYgKGlucHV0WzBdID09PSB0aGlzLmVsZW1lbnRbMF0pIHsKICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCA9IGlucHV0Q2xvbmU7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfb25DaGFuZ2U6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0aGF0ID0gZS5kYXRhLmZpbGV1cGxvYWQsCiAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgIGZpbGVzOiAkLmVhY2goJC5tYWtlQXJyYXkoZS50YXJnZXQuZmlsZXMpLCB0aGF0Ll9ub3JtYWxpemVGaWxlKSwKICAgICAgICAgICAgICAgICAgICBmaWxlSW5wdXQ6ICQoZS50YXJnZXQpLAogICAgICAgICAgICAgICAgICAgIGZvcm06ICQoZS50YXJnZXQuZm9ybSkKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIGlmICghZGF0YS5maWxlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmaWxlcyBwcm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlLCB0aGUgYnJvd3NlciBkb2VzIG5vdAogICAgICAgICAgICAgICAgLy8gc3VwcG9ydCB0aGUgRmlsZSBBUEkgYW5kIHdlIGFkZCBhIHBzZXVkbyBGaWxlIG9iamVjdCB3aXRoCiAgICAgICAgICAgICAgICAvLyB0aGUgaW5wdXQgdmFsdWUgYXMgbmFtZSB3aXRoIHBhdGggaW5mb3JtYXRpb24gcmVtb3ZlZDoKICAgICAgICAgICAgICAgIGRhdGEuZmlsZXMgPSBbe25hbWU6IGUudGFyZ2V0LnZhbHVlLnJlcGxhY2UoL14uKlxcLywgJycpfV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5yZXBsYWNlRmlsZUlucHV0KSB7CiAgICAgICAgICAgICAgICB0aGF0Ll9yZXBsYWNlRmlsZUlucHV0KGRhdGEuZmlsZUlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAodGhhdC5fdHJpZ2dlcignY2hhbmdlJywgZSwgZGF0YSkgPT09IGZhbHNlIHx8CiAgICAgICAgICAgICAgICAgICAgdGhhdC5fb25BZGQoZSwgZGF0YSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfb25QYXN0ZTogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSBlLmRhdGEuZmlsZXVwbG9hZCwKICAgICAgICAgICAgICAgIGNiZCA9IGUub3JpZ2luYWxFdmVudC5jbGlwYm9hcmREYXRhLAogICAgICAgICAgICAgICAgaXRlbXMgPSAoY2JkICYmIGNiZC5pdGVtcykgfHwgW10sCiAgICAgICAgICAgICAgICBkYXRhID0ge2ZpbGVzOiBbXX07CiAgICAgICAgICAgICQuZWFjaChpdGVtcywgZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7CiAgICAgICAgICAgICAgICB2YXIgZmlsZSA9IGl0ZW0uZ2V0QXNGaWxlICYmIGl0ZW0uZ2V0QXNGaWxlKCk7CiAgICAgICAgICAgICAgICBpZiAoZmlsZSkgewogICAgICAgICAgICAgICAgICAgIGRhdGEuZmlsZXMucHVzaChmaWxlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlmICh0aGF0Ll90cmlnZ2VyKCdwYXN0ZScsIGUsIGRhdGEpID09PSBmYWxzZSB8fAogICAgICAgICAgICAgICAgICAgIHRoYXQuX29uQWRkKGUsIGRhdGEpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX29uRHJvcDogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSBlLmRhdGEuZmlsZXVwbG9hZCwKICAgICAgICAgICAgICAgIGRhdGFUcmFuc2ZlciA9IGUuZGF0YVRyYW5zZmVyID0gZS5vcmlnaW5hbEV2ZW50LmRhdGFUcmFuc2ZlciwKICAgICAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgZmlsZXM6ICQuZWFjaCgKICAgICAgICAgICAgICAgICAgICAgICAgJC5tYWtlQXJyYXkoZGF0YVRyYW5zZmVyICYmIGRhdGFUcmFuc2Zlci5maWxlcyksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX25vcm1hbGl6ZUZpbGUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAodGhhdC5fdHJpZ2dlcignZHJvcCcsIGUsIGRhdGEpID09PSBmYWxzZSB8fAogICAgICAgICAgICAgICAgICAgIHRoYXQuX29uQWRkKGUsIGRhdGEpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB9LAoKICAgICAgICBfb25EcmFnT3ZlcjogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSBlLmRhdGEuZmlsZXVwbG9hZCwKICAgICAgICAgICAgICAgIGRhdGFUcmFuc2ZlciA9IGUuZGF0YVRyYW5zZmVyID0gZS5vcmlnaW5hbEV2ZW50LmRhdGFUcmFuc2ZlcjsKICAgICAgICAgICAgaWYgKHRoYXQuX3RyaWdnZXIoJ2RyYWdvdmVyJywgZSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhdGFUcmFuc2ZlcikgewogICAgICAgICAgICAgICAgZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSBkYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdjb3B5JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgfSwKCiAgICAgICAgX2luaXRFdmVudEhhbmRsZXJzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBucyA9IHRoaXMub3B0aW9ucy5uYW1lc3BhY2U7CiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5kcm9wWm9uZQogICAgICAgICAgICAgICAgLmJpbmQoJ2RyYWdvdmVyLicgKyBucywge2ZpbGV1cGxvYWQ6IHRoaXN9LCB0aGlzLl9vbkRyYWdPdmVyKQogICAgICAgICAgICAgICAgLmJpbmQoJ2Ryb3AuJyArIG5zLCB7ZmlsZXVwbG9hZDogdGhpc30sIHRoaXMuX29uRHJvcCkKICAgICAgICAgICAgICAgIC5iaW5kKCdwYXN0ZS4nICsgbnMsIHtmaWxldXBsb2FkOiB0aGlzfSwgdGhpcy5fb25QYXN0ZSk7CiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5maWxlSW5wdXQKICAgICAgICAgICAgICAgIC5iaW5kKCdjaGFuZ2UuJyArIG5zLCB7ZmlsZXVwbG9hZDogdGhpc30sIHRoaXMuX29uQ2hhbmdlKTsKICAgICAgICB9LAoKICAgICAgICBfZGVzdHJveUV2ZW50SGFuZGxlcnM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIG5zID0gdGhpcy5vcHRpb25zLm5hbWVzcGFjZTsKICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyb3Bab25lCiAgICAgICAgICAgICAgICAudW5iaW5kKCdkcmFnb3Zlci4nICsgbnMsIHRoaXMuX29uRHJhZ092ZXIpCiAgICAgICAgICAgICAgICAudW5iaW5kKCdkcm9wLicgKyBucywgdGhpcy5fb25Ecm9wKQogICAgICAgICAgICAgICAgLnVuYmluZCgncGFzdGUuJyArIG5zLCB0aGlzLl9vblBhc3RlKTsKICAgICAgICAgICAgdGhpcy5vcHRpb25zLmZpbGVJbnB1dAogICAgICAgICAgICAgICAgLnVuYmluZCgnY2hhbmdlLicgKyBucywgdGhpcy5fb25DaGFuZ2UpOwogICAgICAgIH0sCgogICAgICAgIF9iZWZvcmVTZXRPcHRpb246IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7CiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lFdmVudEhhbmRsZXJzKCk7CiAgICAgICAgfSwKCiAgICAgICAgX2FmdGVyU2V0T3B0aW9uOiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkgewogICAgICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsKICAgICAgICAgICAgaWYgKCFvcHRpb25zLmZpbGVJbnB1dCkgewogICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlSW5wdXQgPSAkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFvcHRpb25zLmRyb3Bab25lKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLmRyb3Bab25lID0gJCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuX2luaXRFdmVudEhhbmRsZXJzKCk7CiAgICAgICAgfSwKCiAgICAgICAgX3NldE9wdGlvbjogZnVuY3Rpb24gKGtleSwgdmFsdWUpIHsKICAgICAgICAgICAgdmFyIHJlZnJlc2ggPSAkLmluQXJyYXkoa2V5LCB0aGlzLl9yZWZyZXNoT3B0aW9uc0xpc3QpICE9PSAtMTsKICAgICAgICAgICAgaWYgKHJlZnJlc2gpIHsKICAgICAgICAgICAgICAgIHRoaXMuX2JlZm9yZVNldE9wdGlvbihrZXksIHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkLldpZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5jYWxsKHRoaXMsIGtleSwgdmFsdWUpOwogICAgICAgICAgICBpZiAocmVmcmVzaCkgewogICAgICAgICAgICAgICAgdGhpcy5fYWZ0ZXJTZXRPcHRpb24oa2V5LCB2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfY3JlYXRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zOwogICAgICAgICAgICBvcHRpb25zLm5hbWVzcGFjZSA9IG9wdGlvbnMubmFtZXNwYWNlIHx8IHRoaXMud2lkZ2V0TmFtZTsKICAgICAgICAgICAgaWYgKG9wdGlvbnMuZmlsZUlucHV0ID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlsZUlucHV0ID0gdGhpcy5lbGVtZW50LmlzKCdpbnB1dDpmaWxlJykgPwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQgOiB0aGlzLmVsZW1lbnQuZmluZCgnaW5wdXQ6ZmlsZScpOwogICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLmZpbGVJbnB1dCkgewogICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlSW5wdXQgPSAkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFvcHRpb25zLmRyb3Bab25lKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLmRyb3Bab25lID0gJCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuX3Nsb3RzID0gW107CiAgICAgICAgICAgIHRoaXMuX3NlcXVlbmNlID0gdGhpcy5fZ2V0WEhSUHJvbWlzZSh0cnVlKTsKICAgICAgICAgICAgdGhpcy5fc2VuZGluZyA9IHRoaXMuX2FjdGl2ZSA9IHRoaXMuX2xvYWRlZCA9IHRoaXMuX3RvdGFsID0gMDsKICAgICAgICAgICAgdGhpcy5faW5pdEV2ZW50SGFuZGxlcnMoKTsKICAgICAgICB9LAoKICAgICAgICBkZXN0cm95OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lFdmVudEhhbmRsZXJzKCk7CiAgICAgICAgICAgICQuV2lkZ2V0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyk7CiAgICAgICAgfSwKCiAgICAgICAgZW5hYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICQuV2lkZ2V0LnByb3RvdHlwZS5lbmFibGUuY2FsbCh0aGlzKTsKICAgICAgICAgICAgdGhpcy5faW5pdEV2ZW50SGFuZGxlcnMoKTsKICAgICAgICB9LAoKICAgICAgICBkaXNhYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lFdmVudEhhbmRsZXJzKCk7CiAgICAgICAgICAgICQuV2lkZ2V0LnByb3RvdHlwZS5kaXNhYmxlLmNhbGwodGhpcyk7CiAgICAgICAgfSwKCiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgZXhwb3NlZCB0byB0aGUgd2lkZ2V0IEFQSSBhbmQgYWxsb3dzIGFkZGluZyBmaWxlcwogICAgICAgIC8vIHVzaW5nIHRoZSBmaWxldXBsb2FkIEFQSS4gVGhlIGRhdGEgcGFyYW1ldGVyIGFjY2VwdHMgYW4gb2JqZWN0IHdoaWNoCiAgICAgICAgLy8gbXVzdCBoYXZlIGEgZmlsZXMgcHJvcGVydHkgYW5kIGNhbiBjb250YWluIGFkZGl0aW9uYWwgb3B0aW9uczoKICAgICAgICAvLyAuZmlsZXVwbG9hZCgnYWRkJywge2ZpbGVzOiBmaWxlc0xpc3R9KTsKICAgICAgICBhZGQ6IGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICAgIGlmICghZGF0YSB8fCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhLmZpbGVzID0gJC5lYWNoKCQubWFrZUFycmF5KGRhdGEuZmlsZXMpLCB0aGlzLl9ub3JtYWxpemVGaWxlKTsKICAgICAgICAgICAgdGhpcy5fb25BZGQobnVsbCwgZGF0YSk7CiAgICAgICAgfSwKCiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgZXhwb3NlZCB0byB0aGUgd2lkZ2V0IEFQSSBhbmQgYWxsb3dzIHNlbmRpbmcgZmlsZXMKICAgICAgICAvLyB1c2luZyB0aGUgZmlsZXVwbG9hZCBBUEkuIFRoZSBkYXRhIHBhcmFtZXRlciBhY2NlcHRzIGFuIG9iamVjdCB3aGljaAogICAgICAgIC8vIG11c3QgaGF2ZSBhIGZpbGVzIHByb3BlcnR5IGFuZCBjYW4gY29udGFpbiBhZGRpdGlvbmFsIG9wdGlvbnM6CiAgICAgICAgLy8gLmZpbGV1cGxvYWQoJ3NlbmQnLCB7ZmlsZXM6IGZpbGVzTGlzdH0pOwogICAgICAgIC8vIFRoZSBtZXRob2QgcmV0dXJucyBhIFByb21pc2Ugb2JqZWN0IGZvciB0aGUgZmlsZSB1cGxvYWQgY2FsbC4KICAgICAgICBzZW5kOiBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICBpZiAoZGF0YSAmJiAhdGhpcy5vcHRpb25zLmRpc2FibGVkKSB7CiAgICAgICAgICAgICAgICBkYXRhLmZpbGVzID0gJC5lYWNoKCQubWFrZUFycmF5KGRhdGEuZmlsZXMpLCB0aGlzLl9ub3JtYWxpemVGaWxlKTsKICAgICAgICAgICAgICAgIGlmIChkYXRhLmZpbGVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vblNlbmQobnVsbCwgZGF0YSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dldFhIUlByb21pc2UoZmFsc2UsIGRhdGEgJiYgZGF0YS5jb250ZXh0KTsKICAgICAgICB9CgogICAgfSk7Cgp9KGpRdWVyeSkpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/jquery.iframe-transport.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IElmcmFtZSBUcmFuc3BvcnQgUGx1Z2luIDEuMi41CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlaW1wL2pRdWVyeS1GaWxlLVVwbG9hZAogKgogKiBDb3B5cmlnaHQgMjAxMSwgU2ViYXN0aWFuIFRzY2hhbgogKiBodHRwczovL2JsdWVpbXAubmV0CiAqCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZToKICogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKICovCgovKmpzbGludCB1bnBhcmFtOiB0cnVlLCBub21lbjogdHJ1ZSAqLwovKmdsb2JhbCBqUXVlcnksIGRvY3VtZW50ICovCgooZnVuY3Rpb24gKCQpIHsKICAgICd1c2Ugc3RyaWN0JzsKCiAgICAvLyBIZWxwZXIgdmFyaWFibGUgdG8gY3JlYXRlIHVuaXF1ZSBuYW1lcyBmb3IgdGhlIHRyYW5zcG9ydCBpZnJhbWVzOgogICAgdmFyIGNvdW50ZXIgPSAwOwoKICAgIC8vIFRoZSBpZnJhbWUgdHJhbnNwb3J0IGFjY2VwdHMgdGhyZWUgYWRkaXRpb25hbCBvcHRpb25zOgogICAgLy8gb3B0aW9ucy5maWxlSW5wdXQ6IGEgalF1ZXJ5IGNvbGxlY3Rpb24gb2YgZmlsZSBpbnB1dCBmaWVsZHMKICAgIC8vIG9wdGlvbnMucGFyYW1OYW1lOiB0aGUgcGFyYW1ldGVyIG5hbWUgZm9yIHRoZSBmaWxlIGZvcm0gZGF0YSwKICAgIC8vICBvdmVycmlkZXMgdGhlIG5hbWUgcHJvcGVydHkgb2YgdGhlIGZpbGUgaW5wdXQgZmllbGQocykKICAgIC8vIG9wdGlvbnMuZm9ybURhdGE6IGFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBuYW1lIGFuZCB2YWx1ZSBwcm9wZXJ0aWVzLAogICAgLy8gIGVxdWl2YWxlbnQgdG8gdGhlIHJldHVybiBkYXRhIG9mIC5zZXJpYWxpemVBcnJheSgpLCBlLmcuOgogICAgLy8gIFt7bmFtZTogJ2EnLCB2YWx1ZTogMX0sIHtuYW1lOiAnYicsIHZhbHVlOiAyfV0KICAgICQuYWpheFRyYW5zcG9ydCgnaWZyYW1lJywgZnVuY3Rpb24gKG9wdGlvbnMpIHsKICAgICAgICBpZiAob3B0aW9ucy5hc3luYyAmJiAob3B0aW9ucy50eXBlID09PSAnUE9TVCcgfHwgb3B0aW9ucy50eXBlID09PSAnR0VUJykpIHsKICAgICAgICAgICAgdmFyIGZvcm0sCiAgICAgICAgICAgICAgICBpZnJhbWU7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBzZW5kOiBmdW5jdGlvbiAoXywgY29tcGxldGVDYWxsYmFjaykgewogICAgICAgICAgICAgICAgICAgIGZvcm0gPSAkKCc8Zm9ybSBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9mb3JtPicpOwogICAgICAgICAgICAgICAgICAgIC8vIGphdmFzY3JpcHQ6ZmFsc2UgYXMgaW5pdGlhbCBpZnJhbWUgc3JjCiAgICAgICAgICAgICAgICAgICAgLy8gcHJldmVudHMgd2FybmluZyBwb3B1cHMgb24gSFRUUFMgaW4gSUU2LgogICAgICAgICAgICAgICAgICAgIC8vIElFIHZlcnNpb25zIGJlbG93IElFOCBjYW5ub3Qgc2V0IHRoZSBuYW1lIHByb3BlcnR5IG9mCiAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgRE9NLAogICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIHNldCB0aGUgbmFtZSBhbG9uZyB3aXRoIHRoZSBpZnJhbWUgSFRNTCBtYXJrdXA6CiAgICAgICAgICAgICAgICAgICAgaWZyYW1lID0gJCgKICAgICAgICAgICAgICAgICAgICAgICAgJzxpZnJhbWUgc3JjPSJqYXZhc2NyaXB0OmZhbHNlOyIgbmFtZT0iaWZyYW1lLXRyYW5zcG9ydC0nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3VudGVyICs9IDEpICsgJyI+PC9pZnJhbWU+JwogICAgICAgICAgICAgICAgICAgICkuYmluZCgnbG9hZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGVJbnB1dENsb25lczsKICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudW5iaW5kKCdsb2FkJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5iaW5kKCdsb2FkJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXcmFwIGluIGEgdHJ5L2NhdGNoIGJsb2NrIHRvIGNhdGNoIGV4Y2VwdGlvbnMgdGhyb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0cnlpbmcgdG8gYWNjZXNzIGNyb3NzLWRvbWFpbiBpZnJhbWUgY29udGVudHM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBpZnJhbWUuY29udGVudHMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR29vZ2xlIENocm9tZSBhbmQgRmlyZWZveCBkbyBub3QgdGhyb3cgYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhjZXB0aW9uIHdoZW4gY2FsbGluZyBpZnJhbWUuY29udGVudHMoKSBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcm9zcy1kb21haW4gcmVxdWVzdHMsIHNvIHdlIHVuaWZ5IHRoZSByZXNwb25zZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5sZW5ndGggfHwgIXJlc3BvbnNlWzBdLmZpcnN0Q2hpbGQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHVuZGVmaW5lZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGNvbXBsZXRlIGNhbGxiYWNrIHJldHVybnMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWZyYW1lIGNvbnRlbnQgZG9jdW1lbnQgYXMgcmVzcG9uc2Ugb2JqZWN0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlQ2FsbGJhY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2lmcmFtZSc6IHJlc3BvbnNlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRml4IGZvciBJRSBlbmRsZXNzIHByb2dyZXNzIGJhciBhY3Rpdml0eSBidWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoaGFwcGVucyBvbiBmb3JtIHN1Ym1pdHMgdG8gaWZyYW1lIHRhcmdldHMpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJzxpZnJhbWUgc3JjPSJqYXZhc2NyaXB0OmZhbHNlOyI+PC9pZnJhbWU+JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGZvcm0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0ucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ3RhcmdldCcsIGlmcmFtZS5wcm9wKCduYW1lJykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcCgnYWN0aW9uJywgb3B0aW9ucy51cmwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcCgnbWV0aG9kJywgb3B0aW9ucy50eXBlKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZm9ybURhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZvcm1EYXRhLCBmdW5jdGlvbiAoaW5kZXgsIGZpZWxkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9ImhpZGRlbiIvPicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9wKCduYW1lJywgZmllbGQubmFtZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChmaWVsZC52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGZvcm0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZmlsZUlucHV0ICYmIG9wdGlvbnMuZmlsZUlucHV0Lmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudHlwZSA9PT0gJ1BPU1QnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlSW5wdXRDbG9uZXMgPSBvcHRpb25zLmZpbGVJbnB1dC5jbG9uZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5zZXJ0IGEgY2xvbmUgZm9yIGVhY2ggZmlsZSBpbnB1dCBmaWVsZDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlsZUlucHV0LmFmdGVyKGZ1bmN0aW9uIChpbmRleCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWxlSW5wdXRDbG9uZXNbaW5kZXhdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5wYXJhbU5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmZpbGVJbnB1dC5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5wcm9wKCduYW1lJywgb3B0aW9ucy5wYXJhbU5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kaW5nIHRoZSBmaWxlIGlucHV0IGZpZWxkcyB0byB0aGUgaGlkZGVuIGZvcm0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZXMgdGhlbSBmcm9tIHRoZWlyIG9yaWdpbmFsIGxvY2F0aW9uOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQob3B0aW9ucy5maWxlSW5wdXQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ2VuY3R5cGUnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW5jdHlwZSBtdXN0IGJlIHNldCBhcyBlbmNvZGluZyBmb3IgSUU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ2VuY29kaW5nJywgJ211bHRpcGFydC9mb3JtLWRhdGEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIGZpbGUgaW5wdXQgZmllbGRzIGF0IHRoZWlyIG9yaWdpbmFsIGxvY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5IHJlcGxhY2luZyB0aGUgY2xvbmVzIHdpdGggdGhlIG9yaWdpbmFsczoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVJbnB1dENsb25lcyAmJiBmaWxlSW5wdXRDbG9uZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmZpbGVJbnB1dC5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaW5wdXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2xvbmUgPSAkKGZpbGVJbnB1dENsb25lc1tpbmRleF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaW5wdXQpLnByb3AoJ25hbWUnLCBjbG9uZS5wcm9wKCduYW1lJykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb25lLnJlcGxhY2VXaXRoKGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgZm9ybS5hcHBlbmQoaWZyYW1lKS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBhYm9ydDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGlmIChpZnJhbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gamF2YXNjcmlwdDpmYWxzZSBhcyBpZnJhbWUgc3JjIGFib3J0cyB0aGUgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgcHJldmVudHMgd2FybmluZyBwb3B1cHMgb24gSFRUUFMgaW4gSUU2LgogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25jYXQgaXMgdXNlZCB0byBhdm9pZCB0aGUgIlNjcmlwdCBVUkwiIEpTTGludCBlcnJvcjoKICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudW5iaW5kKCdsb2FkJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9wKCdzcmMnLCAnamF2YXNjcmlwdCcuY29uY2F0KCc6ZmFsc2U7JykpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybSkgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9KTsKCiAgICAvLyBUaGUgaWZyYW1lIHRyYW5zcG9ydCByZXR1cm5zIHRoZSBpZnJhbWUgY29udGVudCBkb2N1bWVudCBhcyByZXNwb25zZS4KICAgIC8vIFRoZSBmb2xsb3dpbmcgYWRkcyBjb252ZXJ0ZXJzIGZyb20gaWZyYW1lIHRvIHRleHQsIGpzb24sIGh0bWwsIGFuZCBzY3JpcHQ6CiAgICAkLmFqYXhTZXR1cCh7CiAgICAgICAgY29udmVydGVyczogewogICAgICAgICAgICAnaWZyYW1lIHRleHQnOiBmdW5jdGlvbiAoaWZyYW1lKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJChpZnJhbWVbMF0uYm9keSkudGV4dCgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICAnaWZyYW1lIGpzb24nOiBmdW5jdGlvbiAoaWZyYW1lKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5wYXJzZUpTT04oJChpZnJhbWVbMF0uYm9keSkudGV4dCgpKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ2lmcmFtZSBodG1sJzogZnVuY3Rpb24gKGlmcmFtZSkgewogICAgICAgICAgICAgICAgcmV0dXJuICQoaWZyYW1lWzBdLmJvZHkpLmh0bWwoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ2lmcmFtZSBzY3JpcHQnOiBmdW5jdGlvbiAoaWZyYW1lKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5nbG9iYWxFdmFsKCQoaWZyYW1lWzBdLmJvZHkpLnRleHQoKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KTsKCn0oalF1ZXJ5KSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMjIEEKJGxhbmdbJ2FiY2xpc3R0ZW1wbGF0ZXMnXSA9ICdBQkMgRGlyZWN0b3J5IFRlbXBsYXRlcyc7CiRsYW5nWydhYmNsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIEFCQyBEaXJlY3RvcnkgVGVtcGxhdGUnOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWRkIENhdGVnb3J5JzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdBZGQgQ29tcGFueSc7CiRsYW5nWydhZGRlZGl0X2hpZXJhcmNoeSddID0gJ0FkZCBvciBFZGl0IGEgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBZGQgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydhZGRoaWVyJ10gPSAnQWRkIEhpZXJhcmNoeSc7CiRsYW5nWydhZGRsaW5rJ10gPSAnQWRkIExpbmsnOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkZHJlc3MnOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdBZGRyZXNzJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeSddID0gJ0FkZCBDYXRlZ29yeSc7CiRsYW5nWydhZGRfZWRpdF9jYXRlZ29yeSddID0gJ0FkZC9FZGl0IENhdGVnb3J5JzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaXNpYmxlIFRvIEFkbWluIE9ubHknOwokbGFuZ1snYWxidW0nXSA9ICdBbGJ1bSc7CiRsYW5nWydhbnknXSA9ICdBbnknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgdGhpcz8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaW5nJzsKCiMjIEIKJGxhbmdbJ2JhZG5hbWVnaXZlbiddID0gJ1RoZSBuYW1lIHNwZWNpZmllZCBpcyBpbnZhbGlkIChnZW5lcmFsbHkgbmFtZXMgc2hvdWxkIGJlIHVybCBmcmllbmRseSknOwoKIyMgQwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAnQ2FuIGZyb250ZW5kIHVzZXJzIGVkaXQgdGhpcyBmaWVsZD8nOwokbGFuZ1snY2FudXNlcnZpZXcnXSA9ICdDYW4gZnJvbnRlbmQgdXNlcnMgdmlldyB0aGlzIGZpZWxkPyc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yeSBBZGRlZCc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXRlZ29yeSBEZWxldGVkJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5IExpc3QgVGVtcGxhdGVzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0NhdGVnb3J5IExpc3QgVXBkYXRlZCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBDYXRlZ29yeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3J5IFVwZGF0ZWQnOwokbGFuZ1snY2F0X2V4dHJhaW5mbyddID0gJ0NhdGVnb3J5IEV4dHJhIEluZm8nOwokbGFuZ1snY2hlY2snXSA9ICdDaGVjayc7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdDb21wYW5pZXMnOwokbGFuZ1snY29tcGFueSddID0gJ0NvbXBhbnknOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnQ29tcGFueSBBZGRlZCc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0NvbXBhbnkgRGVsZXRlZCc7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnQ29tcGFueSBEaXJlY3RvcnknOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdDb21wYW55IG5hbWUnOwokbGFuZ1snY29tcGFueXRleHQnXSA9ICdDb21wYW55JzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnQ29tcGFueSBVcGRhdGVkJzsKJGxhbmdbJ2NvbmZpcm1fYXV0b2NyZWF0ZV91cmwnXSA9ICdBdXRvbWF0aWNhbGx5IENyZWF0ZSBVUkxTIEZvciBleGlzdGluZyByZWNvcmRzIHdpdGggbm8gVVJMJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdF9hbGJ1bSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBlZGl0IHRoZSBhbGJ1bS4gIEFueSBlZGl0cyB0byB0aGUgY29tcGFueSBwcm9wZXJ0aWVzIHdpbGwgbm90IGJlIHNhdmVkISc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdDb250YWN0IEVtYWlsJzsKJGxhbmdbJ2Nvb3JkaW5hdGVzJ10gPSAnQ29vcmRpbmF0ZXMnOwokbGFuZ1snY29weSddID0gJ0NvcHknOwokbGFuZ1snY3JlYXRlZCddID0gJ0NyZWF0ZWQnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRlIEVudGVyZWQnOwokbGFuZ1snY3JlYXRldXJscyddID0gJ0NyZWF0ZSBVUkxTJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdDdXJyZW50IFZhbHVlJzsKCiMjIEQKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdQcm90b3R5cGUgVGVtcGxhdGVzJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgY29udGVudHMgb2YgdGhlc2UgdGV4dCBhcmVhcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgY29udGVudCBvZiB0ZW1wbGF0ZXMgd2hlbiB5b3UgY2xpY2sgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7IGluIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSB0YWIuICBFZGl0aW5nIG9uZSBvZiB0aGVzZSB0ZXh0IGFyZWFzIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnRGVsZXRlIENhdGVnb3J5JzsKJGxhbmdbJ2RlbGV0ZWNvbXBhbnknXSA9ICdEZWxldGUgQ29tcGFueSc7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ0RlbGV0ZSBGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2RlbGltaXRlciddID0gJ0ZpZWxkIERlbGltaXRlcic7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnRGVzY2VuZGluZyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhaWxzJzsKJGxhbmdbJ2RldGFpbHN0ZXh0J10gPSAnRGV0YWlscyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhaWwgVGVtcGxhdGVzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJ0RldGFpbCBUZW1wbGF0ZSBVcGRhdGVkJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWydkaXNhYmxlJ10gPSAnRGlzYWJsZSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rpc2FibGVkJzsKJGxhbmdbJ2Rvd24nXSA9ICdEb3duJzsKJGxhbmdbJ2RyYWZ0J10gPSAnRHJhZnQnOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ0RyYWcgYW5kIERyb3AgVXBsb2FkJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ0Ryb3AgZmlsZXMgaGVyZSc7CiRsYW5nWydkcm9wX2hlcmVfdG9fZGVsZXRlJ10gPSAnRHJvcHBpbmcgZmlsZXMgaGVyZSB3aWxsIHJlbW92ZSB0aGVtIGZyb20gdGhlIGdhbGxlcnknOwoKIyMgRQokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnRWRpdCBDYXRlZ29yeSc7CiRsYW5nWydlZGl0Y29tcGFueSddID0gJ0VkaXQgQ29tcGFueSc7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdFZGl0IEZpZWxkIERlZmluaXRpb24nOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ0VkaXQgUGhvdG8gQWxidW0nOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ0VkaXQgQ2F0ZWdvcnknOwokbGFuZ1snZWRpdF9maWx0ZXInXSA9ICdFZGl0IEZpbHRlcic7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFbWFpbCc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX2FkZHJlc3NfbG9va3VwJ10gPSAnUHJvYmxlbSBsb29raW5nIHVwIGFkZHJlc3M6ICVzJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdBbiBhbGJ1bSBmaWVsZCBhbHJlYWR5IGV4aXN0cy4gIE9ubHkgb25lIGlzIGFsbG93ZWQnOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIHdpdGggdGhlIHVwbG9hZGVkIGZpbGUnOwokbGFuZ1snZXJyb3JfYmF0Y2h1cmxjcmVhdGUnXSA9ICdCYXRjaCBVUkwgQ3JlYXRpb24gZW5jb3VudGVyZWQgJWQgZXJyb3JzJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5Y29sdW1uX25vdGZvdW5kJ10gPSAnQ2F0ZWdvcnkgY29sdW1uICVzIG5vdCBmb3VuZCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ0NvbXBhbnkgTmFtZSBpcyBJbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnQSBDb21wYW55IGJ5IHRoYXQgbmFtZSBpcyBhbHJlYWR5IGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9jb21wYW55bm90ZGVsZXRlZCddID0gJ1RoZSBpdGVtIGNvdWxkIG5vdCBiZSBkZWxldGVkLi4uIHBlcmhhcHMgYW5vdGhlciBtb2R1bGUgaXMgZGVwZW5kYW50IHVwb24gdGhlIGRhdGEnOwokbGFuZ1snZXJyb3JfZGVsZXRlcGFyZW50J10gPSAnVGhpcyBpdGVtIGNhbm5vdCBiZSBkZWxldGVkIGJlY2F1c2UgaXQgaGFzIGNoaWxkIGl0ZW1zJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1lvdSBtdXN0IHNwZWNpZnkgYSBmaWVsZCBkZWxpbWl0ZXInOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlJ10gPSAnR2VuZXJhdGUgZXJyb3IgKGJ1dCBjb250aW51ZSknOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnQSBjYXRlZ29yeSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdBIGNvbXBhbnkgd2l0aCB0aGF0IG5hbWUgKCVzKSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdBIGZpZWxkIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfaGllcmFyY2h5J10gPSAnSGllcmFyY2h5IHdpdGggbG9uZyBuYW1lICZxdW90OyVzJnF1b3Q7IGFscmVhZHkgZXhpc3RzLic7CiRsYW5nWydlcnJvcl9mZXVfbG9nZ2VkaW4nXSA9ICdUbyB1c2UgdGhpcyBmdW5jdGlvbiB5b3UgbXVzdCBiZSBsb2dnZWQgaW4gdG8gdGhlIGZyb250ZW5kIG9mIHRoZSB3ZWJzaXRlJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkZGVmX25vdGZvdW5kJ10gPSAnRmllbGQgZGVmaW5pdGlvbiB3aXRoIGlkICVkIG5vdCBmb3VuZCc7CiRsYW5nWydlcnJvcl9nZW5lcmF0ZXVybCddID0gJ1Byb2JsZW0gb2NjdXJyZWQgZ2VuZXJhdGluZyBhIFVSTCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkbGluZSddID0gJ0JhZCByZWNvcmQgZm91bmQgYXQgbGluZSAlZC4gIElzIHRoZXJlIGEgcnVsZSBtaXNzaW5nPyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkdmFsdWUnXSA9ICdBIGJhZCB2YWx1ZSB3YXMgZm91bmQgZm9yIHRoZSAlcyBmaWVsZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1cGxpY2F0ZSAlcyBydWxlIGF0IGxpbmUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpY2F0ZSBydWxlIGlkZW50aWZpZXIgYXQgbGluZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfbm9oYW5kbGVyJ10gPSAnQmFkIHJlY29yZCBmb3VuZCBhdCBsaW5lICVkLiAgQ291bGQgbm90IGZpbmQgYSBoYW5kbGVyIGZvciByZWNvcmRzIG9mIHR5cGUgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0X3Vua25vd25yb3cnXSA9ICdEb250IGtub3cgaG93IHRvIGhhbmRsZSBsaW5lICVkIHdpdGggdGhlIHJ1bGUgaWRlbnRpZmllciAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJ1bGUnXSA9ICdVbmtub3duIHJ1bGUgYXQgbGluZSAlZCc7CiRsYW5nWydlcnJvcl9pbnNlcnRfY2F0ZWdvcnknXSA9ICdBIGRhdGFiYXNlIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byBpbnNlcnQgdGhlIGNhdGVnb3J5IGRlZmluaXRpb24nOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2NvbXBhbnknXSA9ICdBIGRhdGFiYXNlIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byBpbnNlcnQgdGhlIGNvbXBhbnkgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfZmllbGRkZWYnXSA9ICdBIGRhdGFiYXNlIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byBpbnNlcnQgdGhlIGZpZWxkIGRlZmluaXRpb24nOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeSddID0gJ0Vycm9yIGNyZWF0aW5nIGhpZXJhcmNoeSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkbmFtZSddID0gJ1RoZSBDb21wYW55IE5hbWUgaXMgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXJsJ10gPSAnVGhlIFVSTCBzcGVjaWZpZWQgKG9yIGNhbGN1bGF0ZWQpIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9wYXJhbSddID0gJ1RoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yICVzIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3Jfa21saW1wb3J0X25vYWRkcmVzcyddID0gJ05vIGFkZHJlc3MgZm91bmQgaW4gcmVjb3JkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0EgcmVxdWlyZWQgdmFsdWUgd2FzIG1pc3Npbmcgb3IgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnTm8gZmlsZSB3YXMgdXBsb2FkZWQnOwokbGFuZ1snZXJyb3Jfbm9jb21wYW5pZXNtYXRjaCddID0gJ1dlIGFyZSBzb3JyeSwgbm8gY29tcGFuaWVzIG1hdGNoZWQgeW91ciBjcml0ZXJpYS4nOwokbGFuZ1snZXJyb3Jfbm9kcm9wZG93bm9wdGlvbnMnXSA9ICdObyBEcm9wZG93bi9NdWx0aXNlbGVjdCBvcHRpb25zIHN1cHBsaWVkJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnQ291bGQgbm90IGZpbmQgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlJzsKJGxhbmdbJ2Vycm9yX25vZmlsdGVybWF0Y2hlcyddID0gJ05vIGRhdGFiYXNlIGVudHJpZXMgbWF0Y2hlZCB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkJzsKJGxhbmdbJ2Vycm9yX25vbGVuZ3RoJ10gPSAnTm8gbWF4aW11bSBsZW5ndGggZmllbGQgc3VwcGxpZWQnOwokbGFuZ1snZXJyb3Jfbm9vd25lciddID0gJ093bmVyIGlkIGlzIG5vdCBzZXQgb3IgaXMgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ05vIHJlY29yZHMgbWF0Y2hpbmcgeW91ciBjcml0ZXJpYSBjb3VsZCBiZSBmb3VuZCBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZXJyb3Jfbm9zcG90c2xlZnQnXSA9ICdZb3UgaGF2ZSBubyByZW1haW5pbmcgY29tcGFueSBzbG90cyc7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdOb3RoaW5nIFNlbGVjdGVkJzsKJGxhbmdbJ2Vycm9yX3Bvc3Rjb2RlX2xvb2t1cCddID0gJ0NvdWxkIG5vdCBmaW5kIGFueSBpbmZvcm1hdGlvbiBmb3IgcG9zdGFsL3ppcCBjb2RlICVzJzsKJGxhbmdbJ2Vycm9yX3ByZWZpeF9tc2cnXSA9ICdBbiBlcnJvciBvY2N1cnJlZCBhdCBsaW5lICVkOiAlcyc7CiRsYW5nWydlcnJvcl91cGRhdGVfY29tcGFueSddID0gJ0Vycm9yIG9jY3VycmVkIHVwZGF0aW5nIGNvbXBhbnkgcmVjb3JkJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0Vycm9yIHVwbG9hZGluZyBmaWxlJzsKJGxhbmdbJ2Vycm9yX3VybG5vdGVtcHR5J10gPSAnVGhlIFVSTCBmaWVsZCBpcyBub3QgZW1wdHkuLi4gY2Fubm90IG92ZXJ3cml0ZSBhbiBleGlzdGluZyB2YWx1ZSc7CiRsYW5nWydlcnJvcl91cmxyZXF1aXJlZCddID0gJ0EgVVJMIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ2Vycl9pbnZhbGlkdW5pdHMnXSA9ICdVbml0cyBzcGVjaWZpZWQgYXJlIGludmFsaWQuICB2YWxpZCB2YWx1ZXMgYXJlIG1pLG1pbGUsbWlsZXMsa20sayc7CiRsYW5nWydldmVudGRlc2MtT25BZGRDb21wYW55J10gPSAnRXZlbnQgc2VudCBhZnRlciBhIG5ldyBjb21wYW55IGlzIGFkZGVkIHRvIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydldmVudGRlc2MtT25EZWxldGVDb21wYW55J10gPSAnRXZlbnQgc2VudCBiZWZvcmUgYSBjb21wYW55IHJlY29yZCBpcyBkZWxldGVkLic7CiRsYW5nWydldmVudGRlc2MtT25FZGl0Q29tcGFueSddID0gJ0V2ZW50IHNlbnQgYWZ0ZXIgYW4gZXhpc3RpbmcgY29tcGFueSByZWNvcmQgaXMgdXBkYXRlZCBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZXZlbnRoZWxwLU9uQWRkQ29tcGFueSddID0gJzxwPlNlbnQgYWZ0ZXIgYSBjb21wYW55IGlzIGFkZGVkIHRvIHRoZSBkYXRhYmFzZS48L3A+CjxoND5QYXJhbWV0ZXJzOjwvaDQ+Cjx1bD4KICA8bGk+XCJ3aG9cIiAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPgogIDxsaT5cIm9iamVjdFwiIC0gVGhlIGNkX2NvbXBhbnkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZGF0YSB0aGF0IHdhcyBzYXZlZC48L2xpPgo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25EZWxldGVDb21wYW55J10gPSAnPHA+U2VudCBiZWZvcmUgYSBjb21wYW55IGlzIGRlbGV0ZWQgZnJvbSB0aGUgIGRhdGFiYXNlLjwvcD4KPGg0PlBhcmFtZXRlcnM6PC9oND4KPHVsPgogIDxsaT5cIndob1wiIC0gSWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyIGluc3RhbnRpYXRpbmcgdGhlIGV2ZW50LjwvbGk+CiAgPGxpPlwiY2lkXCIgLSBJZCBvZiB0aGUgY29tcGFueSByZWNvcmQgdG8gYmUgZGVsZXRlZC48L2xpPgo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25FZGl0Q29tcGFueSddID0gJzxwPlNlbnQgYWZ0ZXIgYSBjb21wYW55IGlzIHVwZGF0ZWQgaW4gdGhlIGRhdGFiYXNlLjwvcD4KPGg0PlBhcmFtZXRlcnM6PC9oND4KPHVsPgogIDxsaT5cIndob1wiIC0gSWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyIGluc3RhbnRpYXRpbmcgdGhlIGV2ZW50LjwvbGk+CiAgPGxpPlwib2JqZWN0XCIgLSBUaGUgY2RfY29tcGFueSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBkYXRhIHRoYXQgd2FzIHNhdmVkLjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdFeHBpcmVzJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydCBDU1YnOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEgRGF0YSAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhIERhdGEgMic7CiRsYW5nWydleHRyYTMnXSA9ICdFeHRyYSBEYXRhIDMnOwoKIyMgRgokbGFuZ1snZmF4J10gPSAnRmF4JzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXgnOwokbGFuZ1snZmVlZGl0X2VtYWlsX3N1YmplY3QnXSA9ICdBIGNoYW5nZSBoYXMgb2NjdXJyZWQgdG8gYSBDb21wYW55RGlyZWN0b3J5IGVudHJ5JzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbiBBZGRlZCc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdGaWVsZCBEZWZpbml0aW9uIERlbGV0ZWQnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRmllbGQgRGVmaW5pdGlvbnMnOwokbGFuZ1snZmllbGRkZWZ0ZXh0J10gPSAnRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnVwZGF0ZWQnXSA9ICdGaWVsZCBEZWZpbml0aW9uIFVwZGF0ZWQnOwokbGFuZ1snZmllbGRzJ10gPSAnRmllbGRzJzsKJGxhbmdbJ2ZpZWxkX2FjdGl2aXR5J10gPSAnQWN0aXZpdGllcyAoQ0dTb2NpYWxBcHApJzsKJGxhbmdbJ2ZpZWxkX2FsYnVtJ10gPSAnQWxidW0gKGdyb3VwIG9mIHBpY3R1cmVzKSc7CiRsYW5nWydmaWVsZF9jaGVja2JveCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ2ZpZWxkX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snZmllbGRfZmlsZSddID0gJ0ZpbGUnOwokbGFuZ1snZmllbGRfaWNvbiddID0gJ0ljb24gKENHR29vZ2xlTWFwcyknOwokbGFuZ1snZmllbGRfaW1hZ2UnXSA9ICdJbWFnZSc7CiRsYW5nWydmaWVsZF9tdWx0aXNlbGVjdCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3RleHRhcmVhJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ2ZpZWxkX3RleHRib3gnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmbHQ7Jmx0Oyc7CiRsYW5nWydmcm9udGVuZGFsYnVtdGVtcGxhdGVzJ10gPSAnRnJvbnRlbmQgRWRpdCBBbGJ1bSBUZW1wbGF0ZXMnOwokbGFuZ1snZnJvbnRlbmRhbGJ1bXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIEZyb250ZW5kIEVkaXQgQWxidW0gVGVtcGxhdGUnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnRnJvbnRlbmQgRWRpdCBDb21wYW55IFRlbXBsYXRlcyc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdFZGl0IENvbXBhbnkgVGVtcGxhdGUgVXBkYXRlZCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBGcm9udGVuZCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ2Zyb250ZW5kaW1wb3J0dGVtcGxhdGUnXSA9ICdGcm9udGVuZCBDU1YgSW1wb3J0IFRlbXBsYXRlJzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIExpc3QgVGVtcGxhdGVzJzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQgb3IgRWRpdCBhIEZyb250ZW5kIExpc3QgVGVtcGxhdGUnOwoKIyMgRwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlcyddID0gJ0dhbGxlcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ2dhbGxlcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBHYWxsZXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ2dldHVybCddID0gJ0NhbGN1bGF0ZSBVUkwnOwoKIyMgSAokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snaGllcmxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgSGllcmFyY2h5IExpc3QgVGVtcGxhdGUnOwoKIyMgSQokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpZ25vcmUnXSA9ICdJZ25vcmUnOwokbGFuZ1snaW1hZ2VjdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0ltYWdlJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydCBDU1YnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0IEtNTCc7CiRsYW5nWydpbXBvcnRfZmlsZW5hbWUnXSA9ICdTZWxlY3QgQ1NWIEZpbGUnOwokbGFuZ1snaW1wb3J0X2luc2VydCddID0gJ0luc2VydCBkdXBsaWNhdGUnOwokbGFuZ1snaW1wb3J0X2ttbCddID0gJ0ltcG9ydCBLTUwgRmlsZSc7CiRsYW5nWydpbmZvX2FkbWlud3lzaXd5ZyddID0gJ0lmIGRpc2FibGVkLCB0aGUgV1lTSVdZRyB3aWxsIG5vdCBiZSBlbmFibGVkIGZvciBlZGl0aW5nIGNvbXBhbnkgaW5mb3JtYXRpb24sIGluZGVwZW5kZW50IG9mIGFueSB1c2VyIG9yIGdsb2JhbCBzZXR0aW5ncy4nOwokbGFuZ1snaW5mb19hbGJ1bV9maWVsZHR5cGUnXSA9ICdPbmx5IG9uZSBhbGJ1bSBmaWVsZCB0eXBlIGlzIHBlcm1pdHRlZC4gIEFsbG93aW5nIHVwbG9hZGluZyBvZiBudW1lcm91cyBpbWFnZXMgdG8gYXNzb2NpYXRlIHdpdGggYSBzcGVjaWZpYyBkYXRhYmFzZSBlbnRyeS4gIEltYWdlcyBjYW4gb25seSBiZSB1cGxvYWRlZCB0byBhbiBhbGJ1bSBmaWVsZCBmb3IgYW4gZXhpc3RpbmcgZW50cnkgKHdoZW4gZWRpdGluZyBhbiBlbnRyeSkgbm90IHdoZW4gaW5pdGlhbGx5IGFkZGluZyB0aGUgZW50cnkuJzsKJGxhbmdbJ2luZm9fYmF0Y2h1cmxjcmVhdGUnXSA9ICdCYXRjaCBVUkwgQ3JlYXRpb24gdXBkYXRlZCAlZCByZWNvcmRzJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnljb2x1bW4nXSA9ICdTcGVjaWZ5IHRoZSBuYW1lIG9mIGEgY29sdW1uIHRoYXQgc3BlY2lmaWVzIG9uZSBvciBtb3JlIGNhdGVnb3J5IG5hbWVzIChzZXBhcmF0ZWQgYnkgYSBjb21tYSA8ZW0+KCwpPGVtPiBUaGF0IGNhbiBiZSB1c2VkIHRvIHF1aWNrbHkgcG9wdWxhdGUgdGhlIGNhdGVnb3JpZXMgZm9yIGVhY2ggcmVjb3JkLic7CiRsYW5nWydpbmZvX2NhdGVnb3J5X2V4dHJhaW5mbyddID0gJ1RoaXMgZGlhbG9nIGFsbG93cyBhc3NvY2lhdGluZyBleHRyYSBpbmZvcm1hdGlvbiByZWxhdGl2ZSB0byBlYWNoIGl0ZW0gZm9yIGEgY2F0ZWdvcnkuICBUaGlzIGluZm9ybWF0aW9uIHdpbGwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZXh0cmEgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBjYXRlZ29yeSBpdHNlbGYnOwokbGFuZ1snaW5mb19jb2xsZWN0c3RhdHMnXSA9ICdBcHBsaWNhYmxlIG9ubHkgd2hlbiB1c2luZyB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyB3aWxsIGVuYWJsZSB0aGUgY29sbGVjdGlvbiBvZiBpbmZvcm1hdGlvbiBmb3IgZWFjaCBzZWFyY2gsIGFuZCB0aGVyZWZvcmUgdGhlIHBvdGVudGlhbCBkaXNwbGF5IG9mIHNlYXJjaCBzdGF0aXN0aWNzLiAgSG93ZXZlciwgdGhpcyBvcHRpb24gbWF5IGhhdmUgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zLic7CiRsYW5nWydpbmZvX2NyZWF0ZV91cmwnXSA9ICdJZiBubyBVUkwgaXMgc3BlY2lmaWVkIGZvciBhIHJlY29yZCwgdGhpcyBvcHRpb24gd2lsbCBlbnN1cmUgdGhhdCB0aGV5IGFyZSBnZW5lcmF0ZWQuIElmIHRoZSAmcXVvdDtSZXF1aXJlIFVSTFMmcXVvdDsgcHJlZmVyZW5jZSBpcyBzZXQsIFVSTFMgd2lsbCBiZSBlbnN1cmVkIHJlZ2FyZGxlc3Mgb2YgdGhpcyBzZXR0aW5nJzsKJGxhbmdbJ2luZm9fY3N2ZmlsZSddID0gJ0l0IGlzIHBvc3NpYmxlIHRvIGltcG9ydCBjb21wYW55IGluZm9ybWF0aW9uIGRpcmVjdGx5IGZyb20gYW4gQVNDSUkgZmlsZS4nOwokbGFuZ1snaW5mb19kcmFnX2Ryb3AnXSA9ICdXaXRoIG1vc3QgbW9kZXJuIGJyb3dzZXJzIChleGNlcHQgSUUpIHlvdSBjYW4gZHJhZyBtdWx0aXBsZSBmaWxlcyBpbnRvIHRoZSBhZGphY2VudCBkcm9wIHpvbmUuICBUaGV5IHdpbGwgYmUgYXV0b21hdGljYWxseSB1cGxvYWRlZCBhbmQgYWRkZWQgdG8gdGhlIGFsYnVtJzsKJGxhbmdbJ2luZm9fZHJvcGRvd25fb3B0aW9ucyddID0gJ1NwZWNpZnkgdGhlIG9wdGlvbnMgZm9yIHRoZSBkcm9wZG93biBvciBtdWx0aXNlbGVjdCBjb250cm9sLiAgT25lIGxpbmUgcGVyIGVudHJ5LiAgU2VwZXJhdGUga2V5cyBmcm9tIHZhbHVlcyB3aXRoIHRoZSA9LiAgaS5lOiBrZXk9bGFiZWwnOwokbGFuZ1snaW5mb19lZGl0b3IyJ10gPSAnVXNlIHRoZSBuZXcgZnJvbnRlbmQgZWRpdG9yIDxlbT4ocmVmZXJyZWQgdG8gYXMgZmVlZGl0Mik8L2VtPiBOb3RlOiBUaGUgb2xkIGVkaXRvciB3aWxsIGJlIHJlbW92ZWQgaW4gQ29tcGFueURpcmVjdG9yeSAxLjE1IG9yIGJleW9uZC4nOwokbGFuZ1snaW5mb19leHRlbnNpb25zJ10gPSAnUHJvdmlkZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpbGUgZXh0ZW5zaW9ucyAoY2FzZSBpbnNlbnNpdGl2ZSkuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBDR0V4dGVuc2lvbnMgZGVmYXVsdCB2YWx1ZXMgd2lsbCBiZSB1c2VkLic7CiRsYW5nWydpbmZvX2ZpbHRlcl9hZGRyZXNzJ10gPSAnU3BlY2lmeSBhbiBhZGRyZXNzIHN0cmluZyB0byBzZWFyY2ggb24uICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhY2NlcHRlZC4gIGkuZTogJnF1b3Q7KlRleGFzKiZxdW90Oy4gVGhpcyBmaWVsZCBpcyBub3QgY2FzZSBzZW5zaXRpdmUnOwokbGFuZ1snaW5mb19maWx0ZXJfaGllcmFyY2h5J10gPSAnU3BlY2lmeSBhIGhpZXJhcmNoeSBzdHJpbmcgKG9yIHBvcnRpb24pIHRvIHNlYXJjaCBvbi4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFjY2VwdGVkLCBhbmQgbWF5IGluY2x1ZGUgY2hpbGQgaGllcmFyY2hpZXMuICBpLmU6ICZxdW90O0NhcnMqJnF1b3Q7LiBUaGlzIGZpZWxkIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSc7CiRsYW5nWydpbmZvX2ZpbHRlcl9uYW1lJ10gPSAnU3BlY2lmeSBhIGNvbXBhbnkgbmFtZSAob3IgcGFydGlhbCBjb21wYW55IG5hbWUgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQuICBpLmU6ICZxdW90OypyZXN0YXJhdW50JnF1b3Q7IFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2luZm9faW1wb3J0Zm9ybWF0J10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUbyBkZXRlcm1pbmUgYSBzYW1wbGUgQ1NWIGZvcm1hdCBpdCBpcyBiZXN0IHRvIGNyZWF0ZSBhIGZldyByZWNvcmRzIGFuZCB0aGVuIGV4cG9ydCB0aGUgZGF0YSB0byBDU1YuICBVc2UgdGhlIGV4cG9ydGVkIENTViBhcyBhIHJlZmVyZW5jZQo8YnIvPjxici8+CjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4KICBDYXRlZ29yeSwgRmllbGQsIGFuZCBIaWVyYXJjaHkgcmVjb3JkcyB3aWxsIG9ubHkgYmUgaW5zZXJ0ZWQgKHVwZGF0ZXMgdG8gZXhpc3RpbmcgcmVjb3JkcyB3aWxsIGJlIGlnbm9yZWQpLiAgV2hlbiB1cGRhdGluZyBhbiBleGlzdGluZyBjb21wYW55IGZpZWxkIHZhbHVlcyBhbmQgY2F0ZWdvcnkgbWVtYmVyc2hpcCBpcyBkZWxldGVkIGJlZm9yZSBuZXcgdmFsdWVzIGFyZSBpbXBvcnRlZC4nOwokbGFuZ1snaW5mb19pbXBvcnRfY2F0ZWdvcnlkZWZzJ10gPSAnT25seSBhcHBsaWNhYmxlIHRvIGNvbXBhbnkgcmVjb3JkcywgdGhpcyBpbmRpY2F0ZXMgdGhhdCBhbnkgY2F0ZWdvcnkgY29sdW1uIHRoYXQgaXMgdW5rbm93biB3aWxsIGJlIGNyZWF0ZWQuJzsKJGxhbmdbJ2luZm9faW1wb3J0X2NhdGVnb3J5dmFscyddID0gJ0lmIGRpc2FibGVkLCBubyBjYXRlZ29yeSBtZW1iZXJzaGlwIGluZm9ybWF0aW9uIHdpbGwgYmUgaW1wb3J0ZWQuICBUaGUgaW1wb3J0ZWQgY29tcGFuaWVzIHdpbGwgbm90IGJlbG9uZyB0byBhbnkgY2F0ZWdvcmllcy4nOwokbGFuZ1snaW5mb19pbXBvcnRfZmllbGRkZWZzJ10gPSAnT25seSBhcHBsaWNhYmxlIHRvIGNvbXBhbnkgcmVjb3JkcywgdGhpcyBpbmRpY2F0ZXMgdGhhdCBhbnkgY3VzdG9tIGZpZWxkIGRlZmluaXRpb24gdGhhdCBpcyBub3Qga25vd24gd2lsbCBiZSBjcmVhdGVkIDxlbT4oYXMgYSB0ZXh0IGJveCk8L2VtPic7CiRsYW5nWydpbmZvX2ltcG9ydF9maWVsZHZhbHMnXSA9ICdJZiBkaXNhYmxlZCwgbm8gY3VzdG9tIGZpZWxkIHZhbHVlcyB3aWxsIGJlIGltcG9ydGVkLic7CiRsYW5nWydpbmZvX2ltcG9ydF9oaWVyYXJjaHlkZWZzJ10gPSAnT25seSBhcHBsaWNhYmxlIHRvIGNvbXBhbnkgcmVjb3JkcywgdGhpcyBpbmRpY2F0ZXMgdGhhdCBhbnkgaGllcmFyY2h5IHBvc2l0aW9ucyB0aGF0IGFyZSB1bmtub3duIHdpbGwgYmUgY3JlYXRlZCc7CiRsYW5nWydpbmZvX2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSWYgZGlzYWJsZWQsIG5vIGhpZXJhcmNoeSBpbmZvcm1hdGlvbiB3aWxsIGJlIGltcG9ydGVkICh0aGUgaW1wb3J0ZWQgY29tcGFuaWVzIHdpbGwgbm90IGhhdmUgYSBoaWVyYXJjaHkgcG9zaXRpb24gc2V0KSc7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnTm8gY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCc7CiRsYW5nWydpbmZvX3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnSWYgYSB3ZWJzaXRlIHZhbHVlIGlzIHNwZWNpZmllZCwgYW5kIGRvZXMgbm90IGJlZ2luIHdpdGggYSB1cmxwcmVmaXggKGh0dHAsIGh0dHBzLCBmdHApLi4gIGh0dHA6Ly8gd2lsbCBiZSBwcmVwZW5kZWQgdG8gaXRzIHZhbHVlIG9uIHNhdmUnOwokbGFuZ1snaW5mb191cmxfYXV0b2NyZWF0ZSddID0gJ1doZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBjb21wYW55IGRlZmluaXRpb24sIGlmIHRoZSBVUkwgZmllbGQgaXMgYmxhbmsgb25lIHdpbGwgYmUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIGNvbXBhbnkgbmFtZS4gIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gZnJvbnRlbmQgZWRpdGluZyc7CiRsYW5nWydpbmZvX3VybF9jcmVhdGVvbmNvcHknXSA9ICdXaGVuIGNvcHlpbmcgY29tcGFuaWVzLCBzaG91bGQgYSBVUkwgYmUgY3JlYXRlZCBmb3IgdGhlIGRlc3RpbmF0aW9uIHJlY29yZC4gIFRoaXMgb25seSBhcHBsaWVzIGlmIFVSTFMgYXJlIG5vdCByZXF1aXJlZC4nOwokbGFuZ1snaW5mb191cmxfcmVkaXJlY3RvbGQnXSA9ICdPbiBhbiBpbmNvbWluZyByZXF1ZXN0IGZvciBhIGNvbXBhbnkgdXNpbmcgdGhlIG9sZCBVUkwgcGF0dGVybnMsIHBlcmZvcm0gYSAzMDEgcmVkaXJlY3QgdG8gdGhlIG5ldyBVUkwuICBUaGlzIHdpbGwgb25seSB3b3JrIGZvciBlbnRyaWVzIHRoYXQgaGF2ZSBVUkxTIGNyZWF0ZWQuJzsKJGxhbmdbJ2luZm9fdXJsX3JlcXVpcmVkJ10gPSAnU2hvdWxkIHRoZSBVUkwgZmllbGQgYmUgcmVxdWlyZWQgdG8gYmUgdmFsaWQgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGNvbXBhbnk/JzsKJGxhbmdbJ2luZm9fdXNlcmVkaXQnXSA9ICdJZiBlbmFibGVkLCBvbmx5IGFkbWluaXN0cmF0b3JzIGNhbiBlZGl0IHRoaXMgZmllbGQgZm9yIGVhY2ggZW50cnkuICBUaGlzIGlzIHVzZWZ1bCBpZiBhbGxvd2luZyBmcm9udGVuZCBhZGRpbmcvZWRpdGluZyBvZiBjb21wYW55IHJlY29yZHMgdG8gcHJvdmlkZSBmaWVsZHMgdGhhdCB0aGUgb3duZXIvZWRpdG9yIGNhbm5vdCBlZGl0Lic7CiRsYW5nWydpbmZvX3VzZXJ2aWV3J10gPSAnSWYgZW5hYmxlZCwgYWxsIHVzZXJzIGNhbiB2aWV3IHRoaXMgZmllbGQgZm9yIGVhY2ggZW50cnkuICBJZiBkaXNhYmxlZCBvbmx5IHRoZSBvd25lciBhbmQgYWRtaW5pc3RyYXRvcnMgY2FuIHZpZXcgdGhlIGZpZWxkJzsKJGxhbmdbJ2ludXNlJ10gPSAnaW4gdXNlJzsKCiMjIEwKJGxhbmdbJ2xhYmVsX2luY2x1ZGVjaGlsZHJlbiddID0gJ0luY2x1ZGUgQ2hpbGQgSGllcmFyY2hpZXMnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICcmZ3Q7Jmd0Oyc7CiRsYW5nWydsYXRpdHVkZSddID0gJ0xhdGl0dWRlJzsKJGxhbmdbJ2xibF9iYWNrJ10gPSAnQmFjayc7CiRsYW5nWydsYmxfc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnVGVtcGxhdGVzJzsKJGxhbmdbJ2xvZ29jdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnTG9nbyc7CiRsYW5nWydsb25naXR1ZGUnXSA9ICdMb25naXR1ZGUnOwokbGFuZ1snbG9va3VwJ10gPSAnTG9va3VwIENvb3JkaW5hdGVzJzsKCiMjIE0KJGxhbmdbJ21heGxlbmd0aCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIGRpcmVjdG9yeSBsaWtlIG1vZHVsZSBmb3IgY29tcGFuaWVzLiAgQWxsb3dzIGFkZGluZy9lZGl0aW5nL2ltcG9ydGluZy9leHBvcnRpbmcgY29tcGFueSBkZWZpbml0aW9ucywgYW5kIHZhcmlvdXMgd2F5cyBvZiBkaXNwbGF5aW5nIHRoZSBjb21wYW55IGVudHJpZXMgaW5jbHVkaW5nIHNlYXJjaC4gIFRoaXMgbW9kdWxlIGludGVncmF0ZXMgd2VsbCB3aXRoIENHR29vZ2xlTWFwcy4nOwokbGFuZ1snbW9kaWZpZWQnXSA9ICdNb2RpZmllZCc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRlIExhc3QgTW9kaWZpZWQnOwokbGFuZ1snbXNnX2J1bGtkZWwnXSA9ICclZCBjb21wYW5pZXMgZGVsZXRlZCc7CiRsYW5nWydtc2dfY2F0ZWdvcnlzYXZlZCddID0gJ0NhdGVnb3J5IHNhdmVkJzsKJGxhbmdbJ21zZ19jb21wYW55Y29waWVkJ10gPSAnQ29tcGFueSBjb3BpZWQuLi4gcGxlYXNlIGVkaXQgdGhlIGRldGFpbHMgZm9yIHRoZSBuZXcgY29tcGFueSByZWNvcmQnOwokbGFuZ1snbXNnX2hpZXJhZGRlZCddID0gJ0hpZXJhcmNoeSBwb3NpdGlvbiBhZGRlZCc7CiRsYW5nWydtc2dfaGllcmFyY2h5X3VwZGF0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb25zIHVwZGF0ZWQnOwokbGFuZ1snbXNnX2hpZXJkZWxldGVkJ10gPSAnSGllcmFyY2h5IHBvc2l0aW9uIGRlbGV0ZWQnOwokbGFuZ1snbXNnX2hpZXJ1cGRhdGVkJ10gPSAnSGllcmFyY2h5IHBvc2l0aW9uIHVwZGF0ZWQnOwokbGFuZ1snbXNnX2ltcG9ydF9jb21wbGV0ZSddID0gJ0ltcG9ydCBvcGVyYXRpb24gc3VjY2Vzc2Z1bCc7CiRsYW5nWydtc2dfc2V0dGluZ3NfY2hhbmdlZCddID0gJ1NldHRpbmdzIENoYW5nZWQnOwokbGFuZ1snbXNnX3Nsb3RzdXNlZCddID0gJ1lvdSBoYXZlIHVzZWQgJWQgb2YgJWQgY29tcGFueSBzbG90cyc7CgojIyBOCiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgXCclc1wnIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IGZ1bmN0aW9uLic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTZWFyY2ggRm9ybSBUZW1wbGF0ZXMnOwokbGFuZ1snbmV3c2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snbmV3c2VhcmNoX3RlbXBsYXRlJ10gPSAnU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICcmZ3Q7JzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnTm8gQ29tcGFueSBOYW1lIEdpdmVuJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gTmFtZSBHaXZlbic7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydub3RhbnVtYmVyJ10gPSAnTm90IGEgTnVtYmVyJzsKCiMjIE8KJGxhbmdbJ29mJ10gPSAnT2YnOwokbGFuZ1snb3BfY2FuY2VsbGVkJ10gPSAnQ2FuY2VsbGVkJzsKJGxhbmdbJ29yZ2FuaXphdGlvbiddID0gJ09yZ2FuaXphdGlvbic7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdPdmVyd3JpdGUnOwokbGFuZ1snb3duZXInXSA9ICdPd25lcic7CgojIyBQCiRsYW5nWydwYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdJdGVtcyBQZXIgUGFnZSc7CiRsYW5nWydwYXJhbV9hYmNsaXN0dGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5hYmNsaXN0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIHRvIHVzZSBmb3IgcmVuZGVyaW5nIHRoZSBvdXRwdXQnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnRGV0ZXJtaW5lIHRoZSBwcmltYXJ5IGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGZvciB0aGlzIHBhcmFtZXRlciBhcmU6Cjx1bD4KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIERpc3BsYXkgYSBsaXN0IG9mIGNhdGVnb3JpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUsIGFuZCB0aGVuIHRvIGRldGFpbCBtb2RlLjwvbGk+CiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBEaXNwbGF5IGNvbXBhbmllcyBpbiBhIHN1bW1hcnkgbW9kZS48L2xpPgogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+CiAgPGxpPmZlX2VkaXQgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuIDxlbSBzdHlsZT1cImNvbG9yOiByZWQ7XCI+KGRlcHJlY2F0ZWQpPC9lbT48L2xpPgogIDxsaT5mZV9lZGl0MiAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPgogIDxsaT5mZV9lZGl0X2FsYnVtIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgYWxidW0gaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LgogICA8cD5UaGlzIGFjdGlvbiBpcyBub3JtYWxseSB0cmlnZ2VyZWQgZnJvbSB0aGUgZmVfZWRpdDIgYWN0aW9uIG9yIHRoZSBmcm9udGVuZCBsaXN0IGFjdGlvbi4gICBJdCBhY2NlcHRzIHRoZSBjb21wYW55aWQsY2RfZmRpZCxhbmQgb3B0aW9uYWxseSBvdGhlciBwYXJhbWV0ZXJzIHRvIHBlcmZvcm0gbnVtZXJvdXMgYWpheCBhY3Rpb25zLiAgIFNlZSB0aGUgc2FtcGxlIGNvbnRlbnQgZm9yIHRoZSBmcm9udGVuZCBhbGJ1bSB0ZW1wbGF0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+CiAgPC9saT4KICA8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPgogIDxsaT5zZWFyY2hzdGF0cyAtLSBEaXNwbGF5IGEgYmFzaWMgc3VtbWFyeSByZXBvcnQgb2YgcmVjZW50IHNlYXJjaGVzIGZvciBhIGNvbXBhbnkuICBUaGlzIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzIGlzIGVuYWJsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQsIGFuZCB3aGVuIHRoZSBjb2xsZWN0aW9uIG9mIHNlYXJjaCBzdGF0aXN0aWNzIGlzIGVuYWJsZWQuIE9ubHkgdGhlIG93bmVyIG9mIGEgY29tcGFueSBjYW4gdmlldyB0aGUgc2VhcmNoIHN0YXRpc3RpY3MgZm9yIGhpcyBjb21wYW5pZShzKQogIDxsaT5zZWFyY2ggIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBmb3Igc3BlY2lmaWMgY29tcGFuaWVzLjwvbGk+CiAgPGxpPmJyb3dzZWhpZXIgLS0gRGlzcGxheSBhIGxpc3Qgb2YgaGllcmFyY2hpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUgYW5kIHRoZW4gdG8gZGV0YWlsIG1vZGUuPC9saT4KICA8bGk+YWJjbGlzdCAtLSBEaXNwbGF5IGFuIGFscGhhYmV0aWMgZGlyZWN0b3J5IG9mIGNvbXBhbmllcy4gIFVzZXJzIGNhbiBuYXZpZ2F0ZSB0byBkaWZmZXJlbnQgZGlyZWN0b3JpZXMgYnkgdGhlIGZpcnN0IGluaXRpYWwgb2YgdGhlIGNvbXBhbnkgbmFtZSAob3Igb3RoZXIgY3JpdGVyaWEpLCBhbmQgcGFnaW5hdGUKPC91bD4nOwokbGFuZ1sncGFyYW1fYWN0aXZpdHljaGlsZHJlbiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIGFuZCBvbmx5IHdoZW4gdGhlIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQsIGNvbmZpZ3VyZWQsIGFuZCBwb3B1bGF0ZWQgd2l0aCBkYXRhLiAgVGhpcyBwYXJhbWV0ZXIgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgYWN0aXZpdHlpZCBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBjb21wYW5pZXMgYnkgdGhvc2Ugd2hvIGhhdmUgY2hlY2tpbnMgd2l0aCB0aGUgc3BlY2lmaWVkIChpbnRlZ2VyKSBhY3Rpdml0eSBpZCBhbmQgdGhlaXIgY2hpbGQgYWN0aXZpdGllcy4nOwokbGFuZ1sncGFyYW1fYWN0aXZpdHlpZCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIGFuZCBvbmx5IHdoZW4gdGhlIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQsIGNvbmZpZ3VyZWQsIGFuZCBwb3B1bGF0ZWQgd2l0aCBkYXRhLiAgVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBjb21wYW5pZXMgYnkgdGhvc2Ugd2hvIGhhdmUgY2hlY2tpbnMgd2l0aCB0aGUgc3BlY2lmaWVkIChpbnRlZ2VyKSBhY3Rpdml0eSBpZC4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdBcHBsaWNhYmxlIHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnksIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucy4gVGhpcyBwYXJhbWV0ZXIgY2FuIGNvbnRhaW4gbWFueSBjb21tYSBzZXBhcmF0ZWQgY2F0ZWdvcmllcyB0byBmaWx0ZXIgYnkuICBFYWNoIHZhbHVlIGNhbiBlaXRoZXIgYmUgYSBudW1lcmljIGlkLCBhIGNvbXBsZXRlIGNhdGVnb3J5IHBhdGgsIGEgY2F0ZWdvcnkgbmFtZSwgb3IgYSB3aWxkY2FyZCBwYXR0ZXJuLjxici8+CmkuZTogY2F0ZWdvcnk9XCc1LFRvdXJpc20sKlJlbnRhbCosRGluaW5nfFBpenphXFwsKlNwb3J0c3xQYWludCpcJyB3b3VsZCBiZWhhdmUgYXMgZm9sbG93czoKPHVsPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIHRoZSBjYXRlZ29yeSB3aXRoIGlkIDUsIGFuZCBpdHMgY2hpbGRyZW4uPC9saT4KICAgIDxsaT5JbmNsdWRlIGFsbCBpdGVtcyBpbiB0aGUgY2F0ZWdvcnkgd2l0aCB0aGUgbmFtZSBcIlRvdXJpc21cIiwgYW5kIGl0cyBjaGlsZHJlbi48L2xpPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIHRoZSBjYXRlZ29yaWVzIG1hdGNoaW5nIHRoZSBwYXR0ZXJuICpSZW50YWwqIGFuZCB0aGVpciBjaGlsZHJlbi48L2xpPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIGEgY2F0ZWdvcnkgYmVnaW5uaW5nIHdpdGggRGluaW5nfFBpenphLCBhbmQgaXRzIGNoaWxkcmVuLjwvbGk+CiAgICA8bGk+SW5jbHVkZSBhbGwgaXRlbXMgaW4gYWxsIGNhdGVnb3JpZXMgdGhhdCBoYXZlIHRoZSBzdWJzdHJpbmcgU3BvcnRzfFBhaW50IGluIGl0cyBwYXRoLjwvbGk+CjwvdWw+CjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQ2F0ZWdvcnkgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiAgQWxzbywgZW50ZXJpbmcgYW4gaW52YWxpZCB2YWx1ZSBmb3Igb25lIGNhdGVnb3J5IHdpbGwgcmVzdWx0IGluIG5vIG1hdGNoZXMuICBpLmU6IGlmIHlvdSBzcGVjaWZ5IGNhdGVnb3J5PVwnRm9vLEJhclwnIGFuZCBuZWl0aGVyIHRoZSBmb28gb3IgYmFyIGNhdGVnb3JpZXMgZXhpc3QsIHRoZW4gdGhlIHF1ZXJ5IHdpbGwgZmluZCBubyBtYXRjaGluZyBjb21wYW5pZXMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuICBpLmU6IHtDb21wYW55RGlyZWN0b3J5IGNhdGVnb3J5PVwncmVnaW9uX25vcnRoLHJlZ2lvbl9zb3V0aFwnIGNhdGVnb3J5Mj1cJ2NhcnMsdHJ1Y2tzXCd9IHdvdWxkIHJldHVybiBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IHdlcmUgaW4gdGhlIGVpdGhlciBvZiB0aGUgcmVnaW9uIG5vcnRoIG9yIHJlZ2lvbiBzb3V0aCBjYXRlZ29yaWVzIEFORCBBTFNPIGluIGVpdGhlciBvZiB0aGUgY2FycyBvciB0cnVja3MgY2F0ZWdvcmllcyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTMnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnkyPC9lbT4gcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgeWV0IGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuIFNlZSB0aGUgaGVscCBmb3IgdGhlIGNhdGVnb3J5MiBwYXJhbWV0ZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlpZCddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgb24gYSBzaW5nbGUgY2F0ZWdvcnkgYnkgc3BlY2lmeWluZyBpdHMgaW50ZWdlciBpZC4gIFRoaXMgcGFyYW1ldGVyIGNhbm5vdCBiZSB1c2VkIHdpdGggdGhlIGNhdGVnb3J5LGNhdGVnb3J5Miwgb3Igb3RoZXIgY2F0ZWdvcnkgZmlsdGVyaW5nIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2NkX2Rlc3RwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBmZV9lZGl0MiBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byByZWRpcmVjdCB0byBhZnRlciB0aGUgZm9ybSBpcyBzdWNjZXNzZnVsbHkgc3VibWl0dGVkLiAgSWYgbm90IHNwZWNpZmllZCB0aGUgb3JpZ2luYWwgcmVmZXJlciBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9jb21wYW55aWQnXSA9ICdSZXF1aXJlZCBmb3IgdGhlIGZyb250ZW5kIGVkaXRpbmcgYW5kIGRldGFpbCBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB3aGljaCBjb21wYW55IHJlY29yZCB0byBlZGl0IG9yIHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2RheXMnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2hzdGF0czxlbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdXNlIHdoZW4gY29sbGVjdGluZyBzZWFyY2ggc3RhdGlzdGljcyBmb3IgYW4gaW5kaXZpZHVhbCBjb21wYW55Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnU3BlY2lmeSBhIHBhZ2UgYWxpYXMgKGJ5IG5hbWUpIHRvIHVzZSBmb3IgZGlzcGxheWluZyBhIGRldGFpbCByZWNvcmQuIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBkZXRhaWwgdmlldy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kYWxidW10ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGFuIGFsYnVtIG9mIGltYWdlcyBhc3NvY2lhdGVkIHdpdGggYSBjb21wYW55Lic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZnJvbnQgZW5kIGNvbXBhbnkgZWRpdCBmb3JtLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGxpc3R0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmZyb250ZW5kbGlzdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBmcm9udGVuZCBsaXN0IHRlbXBsYXRlIHRvIHVzZSBmb3IgcmVuZGVyaW5nIHRoZSBvdXRwdXQnOwokbGFuZ1sncGFyYW1faGllciddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PGVtPiwgPGVtPnNlYXJjaDwvZW0+LCA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sIGFuZCA8ZW0+YnJvd3NlaGllcjwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgdGhlIG91dHB1dCBpbiB2YXJpb3VzIHdheXM6PGJyLz4KPHVsPgogIDxsaT5JbiB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpPC9lbT4gYWN0aW9uLCB0aGUgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZ3Mgb3IgaW50ZWdlcnMuICBJbnRlZ2VyIHZhbHVlcywgYW5kIFdpbGRjYXJkIHN1YnN0aXR1dGlvbiBpcyBhY2NlcHRlZCBpZGVudGljYWxseSB0byB0aGUgJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgcGFyYW1ldGVyLjwvbGk+CiAgPGxpPkluIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGUgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gbGltaXQgdGhlIGRpc3BsYXkgb2YgY2F0ZWdvcmllcyBieSBjb21wYW5pZXMgaW4gdGhlIG5hbWVkIGhpZXJhcmNoaWVzLiAgSW50ZWdlciB2YWx1ZXMsIGFuZCB3aWxkY2FyZCBzdWJzdGl0dXRpb24gaXMgYWNjZXB0ZWQgaWRlbnRpY2FsbHkgdG8gdGhlICZxdW90O2NhdGVnb3J5JnF1b3Q7IHBhcmFtZXRlci48L2xpPgogIDxsaT5JbiB0aGUgYnJvd3NlaGllciBhY3Rpb24sIGEgc2luZ2xlIHN0cmluZyBvciBpbnRlZ2VyIHZhbHVlIGlzIGFjY2VwdGVkIHRvIHN1cHBseSB0aGUgc3RhcnRpbmcgcG9pbnQgYXQgd2hpY2ggdG8gZGlzcGxheSB0aGUgaGllcmFyY2h5LiAgT25seSB0aGUgZGVzY2VuZGVudCBoaWVyYXJjaGllcyBvZiB0aGUgbmFtZWQgaGllcmFyY2h5IHdpbGwgYmUgZGlzcGxheWVkLiAgSWYgYSBzdHJpbmcgaXMgc3BlY2lmaWVkLCB0aGUgZmlyc3QgaGllcmFyY2h5IHdpdGggYSBtYXRjaGluZyBuYW1lIGlzIHVzZWQuCiAgPGxpPkluIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIG92ZXJyaWRlIGFueSBoaWVyYXJjaHkgY2hvc2VuIGluIHRoZSBzZWFyY2ggZm9ybS4gIEFzIGFib3ZlLCBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXJzIGFuZCBzdHJpbmdzICh3aXRoIHdpbGRjYXJkIHN1YnN0aXR1dGlvbikgaXMgYWNjZXB0ZWQuPC9saT4KPC91bD4nOwokbGFuZ1sncGFyYW1faGllcmxpc3R0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgaGllcmFyY2h5IGxpc3Qgdmlldy4nOwokbGFuZ1sncGFyYW1faWRsaXN0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgY29tcGFueSBpZHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZC4gIE5vdGUsIG9ubHkgcHVibGlzaGVkIGNvbXBhbmllcyB3aWxsIGJlIGRpc3BsYXllZCB1bmxlc3Mgc3BlY2lmaWVkIGRpZmZlcmVudGx5IGJ5IGFub3RoZXIgcGFyYW1ldGVyJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5LCBhbmQgPGVtPnNlYXJjaDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHdldGhlciB0aGUgcmVzdWx0aW5nIGRhdGEgc2hvdWxkIHJlcGxhY2UgdGhlIGRlZmF1bHQgY29udGVudCBibG9jaywgb3Igc2hvdWxkIHJlcGxhY2UgdGhlIG9yaWdpbmFsIHRhZyAoaW5saW5lKS4nOwokbGFuZ1sncGFyYW1fbGF0J10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxhdGl0dWRlIGNvb3JkaW5hdGUgZm9yIGEgcmFkaXVzIHNlYXJjaCwgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxvbmcgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sb25nJ10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxvbmdpdHVkZSBjb29yZGluYXRlIGZvciBhIHJhZGl1cyBzZWFyY2gsIG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsYXQgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9tYXN0ZXJzZWFyY2gnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O3NlYXJjaCZxdW90OyBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhpcyBhY3Rpb24gaXMgdXNlZCBhcyBhIG1hc3RlciBzZWFyY2guICBXaGVuIHRoaXMgaXMgZW5hYmxlZCwgc3VibWl0dGVkIGRhdGEgd2lsbCBiZSBzYXZlZCB0byB0aGUgc2Vzc2lvbiBmb3IgbGF0ZXIgdXNlIGluIHRoZSBzZWFyY2ggYWN0aW9uIDxlbT4odG8gYXV0byBmaWxsIGVsZW1lbnRzIGluIHRoZSBmb3JtIGFzIGlzIGlsbHVzdHJhdGVkIGluIHRoZSBkZWZhdWx0IHNlYXJjaGZvcm0gdGVtcGxhdGUpPGVtPi4gIEFzIHdlbGwsIG9uIHN1Ym1pdCBhbnkgc2F2ZWQgc3Vic2VhcmNoIGRhdGEgd2lsbCBiZSByZXNldCc7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7LiAgQWRkaXRpb25hbGx5LCByZWd1bGFyIGV4cHJlc3Npb25zIGNhbiBiZSBzcGVjaWZpZWQgYnkgcHJlZml4aW5nIHRoZSB2YWx1ZSB3aXRoIDo6LiAgaS5lOiBuYW1lPSZxdW90Ozo6WzAtOV0uKiZxdW90Oyc7CiRsYW5nWydwYXJhbV9ub2NoaWxkcmVuJ10gPSAnQXBwbGljYWJsZSB0byB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpPC9lbT4sIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBwcm92aWRlcyBmaWx0ZXJpbmcgb2Ygb3V0cHV0IGFzIGZvbGxvd3M6PC9icj4KPHVsPgogIDxsaT5JbiB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpIGFjdGlvbiwgY29tcGFuaWVzIGluIGNoaWxkIGNhdGVnb3JpZXMgb3IgaGllcmFyY2hpZXMgKHdoZW4gdXNpbmcgYW55IG9mIHRoZSBjYXRlZ29yeWlkLGNhdGVnb3J5LGNhdGVnb3J5MixjYXRlZ29yeTMsIG9yIGhpZXIpIHBhcmFtZXRlcnMgd2lsbCBub3QgYmUgaW5jbHVkZWQuPC9saT4KICA8bGk+SW4gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIGNoaWxkIGNhdGVnb3JpZXMgKHdoZW4gdXNpbmcgdGhlIGNhdGVnb3J5IHBhcmFtZXRlcikgd2lsbCBub3QgYmUgcmV0dXJuZWQuCiAgICAgIFdoZW4gdXNpbmcgdGhlIGhpZXIgcGFyYW1ldGVyLCBvbmx5IHRoZSBjYXRlZ29yaWVzIHVzZWQgYnkgY29tcGFuaWVzIGluIHRoZSBuYW1lZCBoaWVyYXJjaGllcyB3aWxsIGJlIHJldHVybmVkLCBub3QgdGhlIGNhdGVnb3JpZXMgdXNlZCBieSBjb21wYW5pZXMgaW4gZGVzY2VuZGFudHMgb2YgdGhlIG5hbWVkIGhpZXJhcmNoaWVzLgogIDwvbGk+CjwvdWw+JzsKJGxhbmdbJ3BhcmFtX25vcHJldHR5J10gPSAnQXBwbGljYWJsZSB0byBhbGwgdmlld3MgKHRob3VnaCBzdGlsbCBpbiBlYXJseSBkZXZlbG9wbWVudCkgdGhpcyBwYXJhbWV0ZXIgd2lsbCB0dXJuIG9mZiBwcmV0dHkgdXJsIGdlbmVyYXRpb24nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnV2hlbiB1c2VkIHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBhY3Rpb24sIG9yIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyB3aWxsIGxpbWl0IHRoZSByZXN1bHRzIHRvIGEgc3BlY2lmaWVkIG51bWJlci4nOwokbGFuZ1sncGFyYW1fcGhyYXNlJ10gPSAnVGhpcyBwYXJhbWV0ZXIsIGFwcGxpY2FibGUgdG8gYm90aCB0aGUgJnF1b3Q7c2VhcmNoJnF1b3Q7IGFuZCBkZWZhdWx0ICZxdW90O3N1bW1hcnkmcXVvdDsgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhZHZhbmNlZCBib29sZWFuIGFuZC9vciBmdWxsIHRleHQgc2VhcmNoZXMuICBpLmUuOjxici8+Cjx1bD4KICA8bGk+d29yZDEgd29yZDIKICAgIDxwPkZpbmQgYWxsIGNvbXBhbmllcyB3aGVyZSB3b3JkMSBPUiB3b3JkMiBhcmUgbWVudGlvbmVkPC9wPgogIDwvbGk+CiAgPGxpPit3b3JkMSB3b3JkMgogICAgPHA+RmluZCBhbGwgY29tcGFuaWVzIHdoZXJlIHdvcmQxIGlzIG1lbnRpb25lZCBhbmQgcG9zc2libHkgd29yZDI8L3A+CiAgPC9pPgogIDxsaT4rd29yZDEgLXdvcmQyCiAgICA8cD5GaW5kIGFsbCBjb21wYW5pZXMgd2hlcmUgd29yZDEgaXMgbWVudGlvbmVkIGFuZCB3b3JkMiBpcyBleHBsaWNpdGx5IE5PVCBtZW50aW9uZWQ8L3A+CiAgPC9pPgogIDxsaT4rd29yZDEgK3dvcmQyCiAgICA8cD5GaW5kIGFsbCBjb21wYW5pZXMgd2hlcmUgYm90aCB3b3JkMSBhbmQgd29yZDIgYXJlIGV4cGxpY2l0bHkgbWVudGlvbmVkLjwvcD4KICA8L2k+CiAgPGxpPlwid29yZDEgd29yZDJcIgogICAgPHA+RmluZCBhbGwgY29tcGFuaWVzIHdoZXJlIHRoZSBwaHJhc2UgJnF1b3Q7d29yZDEgd29yZDImcXVvdDsgaXMgbWVudGlvbmVkPC9wPgogIDwvbGk+CjwvdWw+CiAgICA8cD5UaGUgcGhyYXNlIHNlYXJjaCBpbnRlcmFjdHMgd2l0aCBjdXN0b20gZmllbGQgdmFsdWVzLCBtYWtpbmcgaXQgcG9zc2libGUgdG8gc2VhcmNoIHRocm91Z2ggdGV4dCBmaWVsZHMsIHRleHQgYXJlYSBmaWVsZHMsIGFuZCBkcm9wZG93biBmaWVsZHMgZm9yIGNlcnRhaW4gd29yZHMgb3IgcGhyYXNlcy48L3A+CiAgICA8cD5UaGUgcGhyYXNlIHNlYXJjaCBpcyBzdWJqZWN0IHRvIHRoZSBjb250cmFpbnRzIG9mIHRoZSBNWVNRTCBmdWxsIHRleHQgZW5naW5lLCBpbmNsdWRpbmcgd29yZCBsZW5ndGgsIGxhbmd1YWdlLCBhbmQgc3RvcCB3b3JkcyAod29yZHMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBleGNsdWRlZCBmcm9tIHRoZSBzZWFyY2gpLiAgRm9yIGZ1cnRoZXIgcmVmZXJlbmNlIHBsZWFzZSByZWFkIHRoZSBkb2N1bWVudGF0aW9uIHJlZ2FyZGluZyBNeVNRTCBmdWxsIHRleHQgaW5kZXhlcy48L3A+JzsKJGxhbmdbJ3BhcmFtX3Bvc3RhbGNoYXJzJ10gPSAnV2hlbiBkb2luZyBhIHBvc3RhbCBjb2RlIHNlYXJjaCwgdXNpbmcgdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgb3B0aW9uIGFsbG93cyBsaW1pdGluZyB0aGUgZWZmZWN0aXZlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9uZiB0aGUgcG9zdGFsIGNvZGUnOwokbGFuZ1sncGFyYW1fcmFkaXVzJ10gPSAnU3BlY2lmeSB0aGUgcmFkaXVzIChpbiBtaWxlcykgZm9yIGEgcmFkaXVzIHNlYXJjaC4gIG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsYXQgYW5kIGxvbmcgcGFyYW1ldGVycy4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHdoYXQgcGFnZSBzaG91bGQgYmUgdXNlZCBmb3IgZGlzcGxheWluZyBtYXRjaGluZyByZXN1bHRzLic7CiRsYW5nWydwYXJhbV9zZWFyY2hhZGRyZXNzJ10gPSAnV2hlbiBkb2luZyBhIHBvc3RhbCBjb2RlIHNlYXJjaCwgdXNpbmcgdGhlIHNlYXJjaCBhY3Rpb24sIGlmIHRoaXMgb3B0aW9uIGlzIGVuYWJsZWQsIHRoZSBhZGRyZXNzIGZpZWxkIHdpbGwgYWxzbyBiZSBzZWFyY2hlZCBmb3IgdGhlIG1hdGNoaW5nIHN0cmluZyc7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUuJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaHN0YXRzdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT4mcXVvdDtzZWFyY2hzdGF0cyZxdW90OzwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggc3RhdGlzdGljcyByZXBvcnQgdGVtcGxhdGUnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGFsbCBjYXRlZ29yaWVzIGFyZSBvdXRwdXQgKHRoZSBoaWVyLCBhbmQgY2F0ZWdvcnkgb3B0aW9ucyBhcmUgaWdub3JlZCksIGV2ZW4gY2F0ZWdvcmllcyB3aXRoIG5vIG1hdGNoaW5nIGNvbXBhbmllcyc7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgo8bGk+aWQgLS0gVGhlIGludGVybmFsIGNvbXBhbnkgaWQ8L2xpPgogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPjwvbGk+CiAgPGxpPnBob25lPC9saT4KICA8bGk+ZmF4PC9saT4KICA8bGk+ZW1haWw8L2xpPgogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+CiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPgogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPnN0YXR1czwvbGk+CiAgPGxpPnJhbmRvbSAtLSBTb3J0IHRoZSBpdGVtcyByYW5kb21seS48L2xpPgogIDxsaT5mOmZpZWxkIG5hbWUgLS0gU29ydCBieSBwdWJsaWMgY3VzdG9tIGZpZWxkcy4gVGhlIG91dHB1dCB3aWxsIGJlIHNvcnRlZCBieSB0aGUgbmFtZWQgY3VzdG9tIGZpZWxkLjxici8+CiAgPGxpPm1vc3RjaGVja2lucyAtLSA8ZW0+KE9ubHkgd2hlbiBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkKTwvZW0+IFNvcnQgb3V0cHV0IGJ5IHRoZSBjb21wYW5pZXMgKGxvY2F0aW9ucykgdGhhdCBoYXZlIHRoZSBtb3N0IGNoZWNraW5zLjwvbGk+CiAgPGxpPm1vc3RmYXZvcml0ZSAtLSA8ZW0+KE9ubHkgd2hlbiBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkKTwvZW0+IFNvcnQgb3V0cHV0IGJ5IHRoZSBjb21wYW5pZXMgKGxvY2F0aW9ucykgdGhhdCBoYXZlIHRoZSBtb3N0IGZhdm9yaXRlcy48L2xpPgogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFlvdSBtYXkgbmVlZCB0byB1c2UgcXVvdGVzIGlmIHRoZSBmaWVsZCBuYW1lIGhhcyBzcGFjZXMuPGJyLz4KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBUaGUgZmllbGQgc3BlY2lmaWVkIG11c3QgYmUgbWFya2VkIGFzIHB1YmxpYy4KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBXaGVuIHVzaW5nIGN1c3RvbSBmaWVsZCBzb3J0aW5nLCBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGZsYWcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgdG8gaW5kaWNhdGUgdGhhdCBpbnRlZ2VyIHNvcnRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4gIGkuZTogPGNvZGU+c29ydGJ5PWY6Y3VzdG9tX29yZGVyaW5nOmk8L2NvZGU+PGJyLz48L2xpPgo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4KPC91bD4nOwokbGFuZ1sncGFyYW1fc3Vic2VhcmNoJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSAmcXV1b3Q7c2VhcmNoJnF1b3Q7IGFjdGlvbiB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGlzIGFjdGlvbiB3aWxsIGJlIHVzZWQgYXMgYSBzdWIgc2VhcmNoIHRvIGFsbG93ICZxdW90O3JlZmluaW5nJnF1b3Q7IGFuIGFscmVhZHkgc3VibWl0dGVkIHNlYXJjaC4gIFdoZW4gZW5hYmxlZCwgZm9ybSBkYXRhIGZyb20gdGhlIHN1YnNlYXJjaCBpcyBtZXJnZWQgd2l0aCBmb3JtIGRhdGEgZnJvbSBhIG1hc3RlciBzZWFyY2ggYmVmb3JlIGRpc3BsYXksIGFuZCBiZWZvcmUgZm9ybSBzdWJtaXNzaW9uLiAgT24gc3VibWlzc2lvbiwgdGhlIG1lcmdlZCBkYXRhIGlzIHNhdmVkIHRvIHRoZSBzZXNzaW9uIHNlcGFyYXRlbHkgZnJvbSB0aGUgbWFzdGVyIHNlYXJjaCBkYXRhLiAgTm90ZSB0aGUgc3Vic2VhcmNoL3JlZmluZWQgc2VhcmNoIHN0dWZmIGRvZXMgbm90IGZ1cnRoZXIgc29ydCBhbmQgZmlsdGVyIHRoZSByZXN1bHRzIGZyb20gdGhlIG1hc3RlciBzZWFyY2gsIGluc3RlYWQgdGhlIHBhcmFtZXRlcnMgZnJvbSB0aGUgdHdvIHNlYXJjaGVzIGFyZSBtZXJnZWQgdG8gYmVjb21lIGEgc2luZ2xlIHNlYXJjaC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIHRvIHRoZSBkZXRhaWwsIGJyb3dzZWhpZXIsIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIHBhZ2UgaWQgb3IgYWxpYXMgb2YgdGhlIHBhZ2UgdG8gdXNlIGZvciBsaW5rcyBnZW5lcmF0aW5nIHN1bW1hcnkgdmlld3MgdGhhdCBhcmUgZ2VuZXJhdGVkIGZyb20gdGhlIGRldGFpbCB2aWV3LiAgaS5lOiBjYXRlZ29yeSBsaW5rcyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIHN1bW1hcnkgdmlldy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwaHJhc2UnXSA9ICdQaHJhc2UnOwokbGFuZ1sncG9zdGFsX2NvZGUnXSA9ICdQb3N0YWwvWmlwIGNvZGUnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBzdWNjZXNzZnVsbHkgdW5pbnN0YWxsZWQuICBBbGwgYXNzb2NpYXRlZCBjb21wYW55IGRhdGEgaGFzIGJlZW4gZXJhc2VkJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIG1vZHVsZT8gVW5pbnN0YWxsaW5nIHRoaXMgbW9kdWxlIHdpbGwgcGVybWFuZW50bHkgZXJhc2UgYWxsIGFzc29jaWF0ZWQgY29tcGFueSBkYXRhLic7CiRsYW5nWydwcmV2cGFnZSddID0gJyZsdDsnOwokbGFuZ1sncHJvbXB0X2FkZGNvbXBhbnknXSA9ICdBZGRpbmcgYSBuZXcgY29tcGFueSc7CiRsYW5nWydwcm9tcHRfYWRkZWRpdGZpZWxkJ10gPSAnQWRkL0VkaXQgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydwcm9tcHRfYWRtaW53eXNpd3lnJ10gPSAnVXNlIHRoZSBXWVNJV1lHIGVkaXRvciBmb3IgY29tcGFueSBlZGl0aW5nJzsKJGxhbmdbJ3Byb21wdF9hZG1pbl9lZGl0X3NldHRpbmdzJ10gPSAnQWRtaW4gRWRpdGluZyBTZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfYWxsb3dkdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgY29tcGFueSBuYW1lcz8nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3JpZXNfaW1wb3J0ZWQnXSA9ICdDYXRlZ29yaWVzIEltcG9ydGVkJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWNvbHVtbiddID0gJ0NhdGVnb3JpZXMgQ29sdW1uJzsKJGxhbmdbJ3Byb21wdF9jaGVja19kdXBsaWNhdGVzJ10gPSAnQ2hlY2sgZm9yIGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzPyc7CiRsYW5nWydwcm9tcHRfY29sbGVjdHN0YXRzJ10gPSAnQ29sbGVjdCBTZWFyY2ggU3RhdGlzdGljcyc7CiRsYW5nWydwcm9tcHRfY29tcGFuaWVzX2ltcG9ydGVkJ10gPSAnQ29tcGFuaWVzIEltcG9ydGVkJzsKJGxhbmdbJ3Byb21wdF9jb252ZXJ0X2FkZHJlc3MnXSA9ICdDb252ZXJ0IEFkZHJlc3NlcyB0byBjb29yZGluYXRlcyAoaWYgdGhlcmUgYXJlIG5vIGNvb3JkaW5hdGVzKSc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ0NyZWF0ZSBVUkxTIGZvciByZWNvcmRzIHdpdGhvdXQgVVJMUyc7CiRsYW5nWydwcm9tcHRfZGVsaW1ldGVyJ10gPSAnRmllbGQgRGVsaW1ldGVyJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnVGhlIGRlZmF1bHQgcGFnZSB0byB1c2UgZm9yIGRldGFpbCB2aWV3cy4gIElmIHNldCB0byAmcXVvdDtOb25lJnF1b3Q7IHRoZSBjYWxsaW5nIHBhZ2Ugd2lsbCBiZSB1c2VkLic7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duL011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnQ2hlY2sgZm9yIGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzJzsKJGxhbmdbJ3Byb21wdF9lZGl0Y29tcGFueSddID0gJ0VkaXRpbmcgQ29tcGFueSc7CiRsYW5nWydwcm9tcHRfZWRpdG9yMiddID0gJ1VzZSBuZXcgRnJvbnRlbmQgRWRpdG9yJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9pc2h0bWwnXSA9ICdFbWFpbCBpcyBpbiBIVE1MIGZvcm1hdCc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2VuY2xvc3VyZSddID0gJ0ZpZWxkIEVuY2xvc3VyZSc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRXJyb3JzJzsKJGxhbmdbJ3Byb21wdF9leHRlbnNpb25zJ10gPSAnVmFsaWQgRmlsZSBFeHRlbnNpb25zJzsKJGxhbmdbJ3Byb21wdF9mZXVfY2hhbmdlX3N0YXR1cyddID0gJ0NhbiBmcm9udGVuZCB1c2VycyBjaGFuZ2UgYSBjb21wYW55IHN0YXR1cz8nOwokbGFuZ1sncHJvbXB0X2ZldV9jcmVhdGUnXSA9ICdDYW4gRnJvbnRFbmRVc2VycyBDcmVhdGUgbmV3IFJlY29yZHM/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZGVsZXRlJ10gPSAnQWxsb3cgRnJvbnRlbmQgdXNlcnMgdG8gZGVsZXRlIHJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ZldV9kaXNwbGF5X3NldHRpbmdzJ10gPSAnRnJvbnRlbmQgRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfZmV1X2VkaXRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBFZGl0aW5nIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ0FkbWluaXN0cmF0aXZlIGdyb3VwIHRvIHJlY2VpdmUgbm90aWZpY2F0aW9uIGVtYWlscz8nOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uYWRkJ10gPSAnU2VuZCBhbiBlbWFpbCB3aGVuIGEgZnJvbnRlbmQgdXNlciBhZGRzIGEgbmV3IGNvbXBhbnkgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmVkaXQnXSA9ICdTZW5kIGFuIGVtYWlsIHdoZW4gYSBmcm9udGVuZCB1c2VyIG1vZGlmaWVzIGFuIGV4aXN0aW5nIGNvbXBhbnkgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmdyb3VwJ10gPSAnQWRtaW4gZ3JvdXAgdG8gc2VuZCBlbWFpbHMgdG8nOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdBbGxvdyBGcm9udGVuZFVzZXJzIHRvIGltcG9ydCByZWNvcmRzIGZyb20gQ1NWPyc7CiRsYW5nWydwcm9tcHRfZmV1X25ld19zdGF0dXMnXSA9ICdEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHJlY29yZHMgY3JlYXRlZCBvbiB0aGUgZnJvbnRlbmQnOwokbGFuZ1sncHJvbXB0X2ZldV9udW1yZWNvcmRzJ10gPSAnTWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggYSBGRVUgYWNjb3VudCc7CiRsYW5nWydwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbnMgSW1wb3J0ZWQnOwokbGFuZ1sncHJvbXB0X2Zyb250ZW5kX3Nob3dleHBpcmVkJ10gPSAnU2hvdyByZWNvcmRzIG93bmVkIGJ5IGV4cGlyZWQgRnJvbnRlbmQgVXNlcnMnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9oaWVyYXJjaGllc19pbXBvcnRlZCddID0gJ0hpZXJhcmNoeSBQb3NpdGlvbnMgQ3JlYXRlZCc7CiRsYW5nWydwcm9tcHRfaWNvbiddID0gJ0ljb24nOwokbGFuZ1sncHJvbXB0X2lnbm9yZV9hZGRyZXNzJ10gPSAnSWdub3JlIGFkZHJlc3MgZmllbGQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeWRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyBjYXRlZ29yaWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5dmFscyddID0gJ1BvcHVwbGF0ZSBjYXRlZ29yeSB2YWx1ZXMgb24gaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY3N2ZmlsZSddID0gJ1VwbG9hZCBDU1YgRmlsZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkZGVmcyddID0gJ0NyZWF0ZSBtaXNzaW5nICZxdW90O2N1c3RvbSBmaWVsZCZxdW90OyBkZWZpbml0aW9ucyBvbiBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZHZhbHMnXSA9ICdQb3B1bGF0ZSAmcXVvdDtjdXN0b20gZmllbGQmcXVvdDsgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeWRlZnMnXSA9ICdJbXBvcnQgSGllcmFyY2h5IFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSW1wb3J0IEhpZXJhcmNoeSBWYWx1ZXMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9sb29rdXBsYXRsb25nJ10gPSAnTG9va3VwIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgdmFsdWVzIGlmIG1pc3NpbmcnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF90ZW1wbGF0ZSddID0gJ1RoaXMgdGVtcGxhdGUgZGVzY3JpYmVzIGEgZm9ybSB0aGF0IGlzIHVzZWQgdG8gYWxsb3cgYXV0aG9yaXplZCBmcm9udGVuZCB1c2VycyB0byBpbXBvcnQgZGF0YSBmcm9tIGEgcHJvcGVybHkgZm9ybWF0dGVkIENTViBmaWxlJzsKJGxhbmdbJ3Byb21wdF9rbWxmaWxlJ10gPSAnS01MIEZpbGUgdG8gSW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9udW1lcnJvcnMnXSA9ICdOdW1iZXIgb2YgZXJyb3JzIGZvdW5kJzsKJGxhbmdbJ3Byb21wdF9udW1pbXBvcnRlZCddID0gJ051bWJlciBvZiBJbXBvcnRlZCBSZWNvcmRzJzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdUaGUgbnVtYmVyIG9mIHJlY29yZHMgdG8gdmlldyBwZXIgcGFnZSBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnUHJlcGVuZCB3ZWJzaXRlIHZhbHVlcyB3aXRoIGh0dHA6Ly8nOwokbGFuZ1sncHJvbXB0X3N0YXR1cyddID0gJ1N0YXR1cyBmb3IgaW1wb3J0ZWQgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0RlZmF1bHQgc29ydGluZyBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdUaGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHN1bW1hcnkgbW9kZSA8ZW0+KGRvZXMgbm90IGFwcGx5IHdoZW4gc29ydGluZyBpcyBcJ3JhbmRvbVwnPC9lbT4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X3VzZV9vbGRzZWFyY2gnXSA9ICdVc2Ugb2xkIHNlYXJjaCBhY3Rpb24gKGRvZXMgbm90IHN1cHBvcnQgcXVlcnlpbmcgb24gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBkb2VzIG5vdCByZXR1cm4gY2F0ZWdvcnkgaW5mb3JtYXRpb24gaW4gcmVzdWx0cyc7CiRsYW5nWydwdWJsaWMnXSA9ICdQdWJsaWMnOwokbGFuZ1sncHVibGlzaCddID0gJ1B1Ymxpc2gnOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlzaGVkJzsKCiMjIFIKJGxhbmdbJ3JhZGl1cyddID0gJ1JhZGl1cyc7CiRsYW5nWydyYW5kb20nXSA9ICdSYW5kb20nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXInOwokbGFuZ1sncmVvcmRlcl9tb2RlJ10gPSAnUmVvcmRlciBtb2RlIGhhcyBiZWVuIGFjdGl2YXRlZC4gIERyYWcgdGhlIGl0ZW1zIGludG8gdGhlaXIgZGVzaXJlZCBvcmRlci4gIFRvIGFib3J0IHRoZSBvcGVyYXRpb24gY2xpY2sgJnF1b3Q7Y2FuY2VsJnF1b3Q7LiAgVG8gc2F2ZSB0aGUgY2hhbmdlcyBjbGljayAmcXVvdDtzdWJtaXQmcXVvdDsnOwokbGFuZ1sncmVzZXQnXSA9ICdSZXNldCc7CiRsYW5nWydyZXNldGFsbCddID0gJ1Jlc2V0IEFsbCc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IHRvIERlZmF1bHRzJzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdSZXNldCB0byBGYWN0b3J5IERlZmF1bHRzJzsKJGxhbmdbJ3Jlc3RvcmV0b2RlZmF1bHRzbXNnJ10gPSAnVGhpcyBvcGVyYXRpb24gd2lsbCByZXN0b3JlIHRoZSB0ZW1wbGF0ZSBjb250ZW50cyB0byB0aGVpciBzeXN0ZW0gZGVmYXVsdHMuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VkZT8nOwokbGFuZ1sncmV0dXJuJ10gPSAnUmV0dXJuJzsKCiMjIFMKJGxhbmdbJ3NlYXJjaCddID0gJ1NlYXJjaCc7CiRsYW5nWydzZWFyY2hlcyddID0gJ1NlYXJjaGVzJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZXMnXSA9ICdPbGQgU2VhcmNoIEZvcm0gVGVtcGxhdGVzJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYW4gT2xkIFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaF9hZGRyZXNzJ10gPSAnQWRkcmVzcyBFeHByZXNzaW9uJzsKJGxhbmdbJ3NlYXJjaF9jYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllcyc7CiRsYW5nWydzZWFyY2hfZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1snc2VhcmNoX2hpZXInXSA9ICdIaWVyYXJjaHknOwokbGFuZ1snc2VhcmNoX2lwJ10gPSAnSVAgQWRkcmVzcyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ05hbWUgRXhwcmVzc2lvbic7CiRsYW5nWydzZWFyY2hfcG9zdGFsJ10gPSAnUG9zdGFsJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1NlbGVjdCBBbGwnOwokbGFuZ1snc29ydGJ5J10gPSAnU29ydCBCeSc7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3N0YXRzc3VtbWFyeXRlbXBsYXRlJ10gPSAnU3RhdGlzdGljcyBTdW1tYXJ5IFRlbXBsYXRlcyc7CiRsYW5nWydzdGF0c3N1bW1hcnlfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU3RhdGlzdGljcyBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bW1hcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdTdW1tYXJ5IFRlbXBsYXRlIFVwZGF0ZWQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdSZXN0b3JlIHRvIGRlZmF1bHRzJzsKCiMjIFQKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVwaG9uZSc7CiRsYW5nWyd0ZWxlcGhvbmV0ZXh0J10gPSAnVGVsZXBob25lJzsKJGxhbmdbJ3RodW1ibmFpbCddID0gJ1RodW1ibmFpbCc7CiRsYW5nWyd0aXRsZV9hYmNsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBBQkMgRGlyZWN0b3J5IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgQ2F0ZWdvcnkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnUHJvdG90eXBlIERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGFsYnVtX2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBGcm9udGVuZCBFZGl0IEFsYnVtIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgRnJvbnRlbmQgRWRpdCBDb21wYW55IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kbGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9nYWxsZXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBHYWxsZXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfcmVwb3J0J10gPSAnQ1NWIEltcG9ydCBSZXBvcnQnOwokbGFuZ1sndGl0bGVfbmV3c2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBTZWFyY2ggVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgKG9sZCkgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3RhdHNzdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBTdGF0aXN0aWNzIFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1R5cGUnOwoKIyMgVQokbGFuZ1sndXAnXSA9ICdVcCc7CiRsYW5nWyd1cGRhdGVoaWVyJ10gPSAnVXBkYXRlIEhpZXJhcmNoeSBQb3NpdGlvbnMnOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ3VybCddID0gJ1VSTCc7CiRsYW5nWyd1cmxzJ10gPSAnVVJMUyc7CiRsYW5nWyd1cmxfYXV0b2NyZWF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHVuaXF1ZSBVUkxTJzsKJGxhbmdbJ3VybF9jcmVhdGVvbmNvcHknXSA9ICdDcmVhdGUgVVJMUyBPbiBDb3B5JzsKJGxhbmdbJ3VybF9yZWRpcmVjdG9sZCddID0gJ0RvIDMwMSBSZWRpcmVjdCB0byBuZXcgVVJMUyc7CiRsYW5nWyd1cmxfcmVxdWlyZWQnXSA9ICdBIFVSTCBpcyByZXF1aXJlZCc7CgojIyBWCiRsYW5nWyd2aWV3X3dlYnNpdGUnXSA9ICdHbyB0byB0aGUgd2Vic2l0ZSc7CgojIyBXCiRsYW5nWyd3ZWJzaXRlJ10gPSAnV2Vic2l0ZSc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1dlYnNpdGUnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ1dpdGggU2VsZWN0ZWQnOwoKIyMgWQokbGFuZ1sneWVzJ10gPSAnWWVzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2biZpYWN1dGU7JzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICdQxZlpZGF0IG9ka2F6JzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdBZHJlc2EnOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdBZHJlc2EnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdQxZlpZGF0IGthdGVnb3JpaSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnUMWZaWRhdCBzcG9sZcSNbm9zdCc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1DFmWlkYXQgZGVmaW5pY2kgZm9ybXVsJmFhY3V0ZTvFmW92JmVhY3V0ZTtobyBwb2xlJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaWRpdGVsbiZlYWN1dGU7IHBvdXplIHBybyBhZG1pbmlzdHImYWFjdXRlO3RvcnknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0pzdGUgc2kgamlzdGkgb2RlYnImYWFjdXRlO24maWFjdXRlO20gdCZlYWN1dGU7dG8gcG9sb8W+a3k/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Z6ZXN0dXBuxJsnOwokbGFuZ1snY2FuY2VsJ10gPSAnU3Rvcm5vJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAnTW9ob3UgdcW+aXZhdGVsJmVhY3V0ZTsgc3RyJmFhY3V0ZTtuZWsgZWRpdG92YXQgdG90byBwb2xlPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ01vaG91IHXFvml2YXRlbCZlYWN1dGU7IHN0ciZhYWN1dGU7bmVrIHByb2hsJmlhY3V0ZTvFvmV0IHRvdG8gcG9sZT8nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICdLYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpZSBwxZlpZCZhYWN1dGU7bmEnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmllIGFrdHVhbGl6b3YmYWFjdXRlO25hJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQxZlpZGF0L1VwcmF2aXQgJnNjYXJvbjthYmxvbnUgc2V6bmFtdSBrYXRlZ29yaSZpYWN1dGU7JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb255IHNlem5hbXUga2F0ZWdvcmkmaWFjdXRlOyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdTZXpuYW0ga2F0ZWdvcmkmaWFjdXRlOyB1cHJhdmVuJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdTcG9sZcSNbm9zdCc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdTcG9sZcSNbm9zdCBwxZlpZCZhYWN1dGU7bmEnOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdKbSZlYWN1dGU7bm8gc3BvbGXEjW5vc3RpJzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnU3BvbGXEjW5vc3QgYWt0dWFsaXpvdiZhYWN1dGU7bmEnOwokbGFuZ1snY29tcGFuaWVzJ10gPSAnU3BvbGXEjW5vc3RpJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnU3BvbGXEjW5vc3QnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0FkcmVzJmFhY3V0ZTvFmSBzcG9sZcSNbm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2NvbnRhY3RlbWFpbCddID0gJ0tvbnRha3RuJmlhY3V0ZTsgZS1tYWlsJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdmxvxb5lbiZpYWN1dGU7JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdWJnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbnknOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlBvem4mYWFjdXRlO21rYTo8L3N0cm9uZz4gT2JzYWggdMSbY2h0byBmb3JtbCZhYWN1dGU7xZlvdiZ5YWN1dGU7Y2ggcG9sJmlhY3V0ZTsgamUgcG91xb4maWFjdXRlO3YmYWFjdXRlO24gayB1csSNZW4maWFjdXRlOyB2JnlhY3V0ZTtjaG96JmlhY3V0ZTtobyBvYnNhaHUgJnNjYXJvbjthYmxvbiwga2R5xb4ga2xpa25ldGUgbmEgJmFtcDtxdW90O1DFmWlkYXQgJnNjYXJvbjthYmxvbnUmYW1wO3F1b3Q7IHYgeiZhYWN1dGU7bG/FvmNlIHDFmSZpYWN1dGU7c2x1JnNjYXJvbjtuJmVhY3V0ZTtobyB0eXB1ICZzY2Fyb247YWJsb255LiAmVWFjdXRlO3ByYXZhIHTEm2NodG8gcG9sJmlhY3V0ZTsgbmVidWRlIG0maWFjdXRlO3Qgxb4mYWFjdXRlO2RuJnlhY3V0ZTsgb2thbcW+aXQmeWFjdXRlOyAmdWFjdXRlO8SNaW5layBuYSB2YSZzY2Fyb247aSBzdHImYWFjdXRlO25rdS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU21hemF0JzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnU21hemF0IGthdGVnb3JpaSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnU21hemF0IHNwb2xlxI1ub3N0JzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnU21hemF0IGRlZmluaWNpIHBvbGUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1Nlc3R1cG7Emyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ1BvcGlzZWsnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHknOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEZXRhaWx5JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQxZlpZGF0L1VwcmF2aXQgJnNjYXJvbjthYmxvbnUgZGV0YWlsdSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICcmU2Nhcm9uO2FibG9ueSBkZXRhaWx1JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJyZTY2Fyb247YWJsb25hIGRldGFpbHUgYnlsYSBha3R1YWxpem92JmFhY3V0ZTtuYSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0RlYWt0aXZvdiZhYWN1dGU7bm8nOwokbGFuZ1snZG93biddID0gJ0RvbMWvJzsKJGxhbmdbJ2RyYWZ0J10gPSAnTiZhYWN1dGU7dnJoJzsKJGxhbmdbJ2VkaXQnXSA9ICdVcHJhdml0JzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ1VwcmF2aXQga2F0ZWdvcmlpJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnVXByYXZpdCBrYXRlZ29yaWknOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnVXByYXZpdCBkZWZpbmljaSBwb2xlJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtbWFpbCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ0ptJmVhY3V0ZTtubyBzcG9sZcSNbm9zdGkgamUgbmVwbGF0biZlYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnU3BvbGXEjW5vc3QgdG9ob3RvIGptJmVhY3V0ZTtuYSBqZSBqaSZ5YWN1dGU7IHYgZGF0YWImYWFjdXRlO3ppJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTW9kdWwgRnJvbnRFbmRVc2VycyBuZWJ5bCBuYWxlemVuJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydG92YXQgamFrbyBDU1YnOwokbGFuZ1snZmF4J10gPSAnRmF4JzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXgnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbmljZSBwb2xlJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaWNlIHBvbCZpYWN1dGU7xI1layc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEZWZpbmljZSBwb2xlJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdEZWZpbmljZSBwb2xlIGJ5bGEgcMWZaWQmYWFjdXRlO25hJzsKJGxhbmdbJ2ZpZWxkZGVmdXBkYXRlZCddID0gJ0RlZmluaWNlIHBvbGUgYnlsYSBha3R1YWxpem92JmFhY3V0ZTtuYSc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdEZWZpbmljZSBwb2xlIGJ5bGEgc21heiZhYWN1dGU7bmEnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ1DFmWlkYXQvVXByYXZpdCAmc2Nhcm9uO2FibG9udSBmb3JtdWwmYWFjdXRlO8WZZSBuYSBzdHImYWFjdXRlO25jZSc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdVcHJhdml0ICZzY2Fyb247YWJsb255IHNwb2xlxI1ub3N0aSc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICcmU2Nhcm9uO2FibG9ueSBwcm8gJnVhY3V0ZTtwcmF2dSBzcG9sZcSNbm9zdGkgYWt0dWFsaXpvdiZhYWN1dGU7bnknOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZWN1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnT2JyJmFhY3V0ZTt6ZWsnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW0mYWFjdXRlO2xuJmlhY3V0ZTsgZCZlYWN1dGU7bGthJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdNYXhpbSZhYWN1dGU7bG4maWFjdXRlOyBkJmVhY3V0ZTtsa2EnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ01heGltJmFhY3V0ZTtsbiZpYWN1dGU7IGQmZWFjdXRlO2xrYSc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdTbWF6YXQgZGF0dW0gcG9zbGVkbiZpYWN1dGU7IG1vZGlmaWthY2UnOwokbGFuZ1snbmFtZSddID0gJ0ptJmVhY3V0ZTtubyc7CiRsYW5nWyduYW1ldGV4dCddID0gJ0ptJmVhY3V0ZTtubyc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmIzAzOTslcyYjMDM5OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBmdW5jdGlvbi4nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnTmVieWxvIHphZCZhYWN1dGU7bm8gxb4mYWFjdXRlO2RuJmVhY3V0ZTsgam0mZWFjdXRlO25vIHNwb2xlxI1ub3N0aSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0ptJmVhY3V0ZTtubyBuZWJ5bG8gemFkJmFhY3V0ZTtubyc7CiRsYW5nWydub3RhbnVtYmVyJ10gPSAnVG90byBuZW4maWFjdXRlOyDEjSZpYWN1dGU7c2xvJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1sncGFnZSddID0gJ1N0ciZhYWN1dGU7bmthJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0RldGVybWluZSB0aGUgcHJpbWFyeSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBwYXJhbWV0ZXIgYXJlOg0KPHVsPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIERpc3BsYXkgYSBsaXN0IG9mIGNhdGVnb3JpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUsIGFuZGQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogICANCjwvdWw+DQonOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgY29tcGFuaWVzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ1JlcXVpcmVkIGZvciB0aGUgZnJvbnRlbmQgZWRpdGluZyBhbmQgZGV0YWlsIG1vZGVzLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoaWNoIGNvbXBhbnkgcmVjb3JkIHRvIGVkaXQgb3Igdmlldy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZWNpZnkgYSBwYWdlIGFsaWFzIChieSBuYW1lKSB0byB1c2UgZm9yIGRpc3BsYXlpbmcgYSBkZXRhaWwgcmVjb3JkLiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZGV0YWlsIHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ1VyxI1pdCAmc2Nhcm9uO2FibG9udSAocG9kbGUgam0mZWFjdXRlO25hKSwga3RlciZhYWN1dGU7IHNlIHBvdcW+aWplLCBrZHnFviBzZSB6b2JyYXp1amUgZWRpdGHEjW4maWFjdXRlOyBwb2xlIHZlIGZyb250LWVuZHUuJzsKJGxhbmdbJ3BhcmFtX3NlbGVjdGNhdGVnb3J5J10gPSAnSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGEgZm9ybSB3aWxsIGJlIGdlbmVyYXRlZCBhbGxvd2luZyB1c2VycyB0byBpbnRlcmFjdGl2ZWx5IGZpbHRlciBjb21wYW55IHJlY29yZHMgb24gYSBzaW5nbGUgY2F0ZWdvcnkuICBUaGlzIGZsYWcgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICYjMDM5O2NhdGVnb3J5JiMwMzk7IHBhcmFtZXRlci4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgc3VtbWFyeSB2aWV3LiAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHRhZyBwYXJhbWV0ZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bCAmcXVvdDtBZHJlcyZhYWN1dGU7xZkgc3BvbGXEjW5vc3QmaWFjdXRlOyZxdW90OyBieWwgJnVhY3V0ZTtzcMSbJnNjYXJvbjtuxJsgbmFpbnN0YWxvdiZhYWN1dGU7bic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWwgJnF1b3Q7QWRyZXMmYWFjdXRlO8WZIHNwb2xlxI1ub3N0JmlhY3V0ZTsmcXVvdDsgYnlsICZ1YWN1dGU7c3DEmyZzY2Fyb247bsSbIG9kaW5zdGFsb3YmYWFjdXRlO24uIFYmc2Nhcm9uO2VjaG5hIHMgbiZpYWN1dGU7bSBzdiZhYWN1dGU7emFuJmFhY3V0ZTsgZGF0YSBvIHNwb2xlxI1ub3N0ZWNoIGJ5bGEgc21heiZhYWN1dGU7bmEuJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ09wcmF2ZHUgY2hjZXRlIG9kaW5zdGFsb3ZhdCB0ZW50byBtb2R1bD8gUMWZaSBvZGluc3RhbGFjaSBtb2R1bHUgZG9qZGUgayB2eW1heiZhYWN1dGU7biZpYWN1dGU7IHYmc2Nhcm9uO2VjaCB1bG/FvmVuJnlhY3V0ZTtjaCBkYXQgbyBzcG9sZcSNbm9zdGVjaC4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7IHN0ciZhYWN1dGU7bmthLCBwb3XFvml0JmFhY3V0ZTsgcHJvIHpvYnJhemVuJmlhY3V0ZTsgbSZvYWN1dGU7ZHUgcG9kcm9ibm9zdCZpYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdQb8SNZXQgeiZhYWN1dGU7em5hbcWvIG5hIHN0ciZhYWN1dGU7bmt1IHYgbSZvYWN1dGU7ZHUgc2hybnV0JmlhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7IHTFmSZpYWN1dGU7ZMSbbiZpYWN1dGU7IHYgbSZvYWN1dGU7ZHUgc2hybnV0JmlhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdUaGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHN1bW1hcnkgbW9kZSA8ZW0+KGRvZXMgbm90IGFwcGx5IHdoZW4gc29ydGluZyBpcyAmIzAzOTtyYW5kb20mIzAzOTs8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYSc7CiRsYW5nWydwdWJsaWMnXSA9ICdWZcWZZWpuJmVhY3V0ZTsnOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlrb3YmYWFjdXRlO25vJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydyYW5kb20nXSA9ICdOJmFhY3V0ZTtob2RuJnlhY3V0ZTsnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdOYXN0YXZpdCBuYSB2JnlhY3V0ZTtjaG96JmlhY3V0ZTsgaG9kbm90eSc7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ1RhdG8gb3BlcmFjZSB2ciZhYWN1dGU7dCZpYWN1dGU7IG9ic2FoICZzY2Fyb247YWJsb24gZG8gcMWvdm9kbiZpYWN1dGU7IHBvb2J5LiBPcHJhdmR1IGNoY2V0ZSBwb2tyYcSNb3ZhdD8nOwokbGFuZ1snc2VhcmNoJ10gPSAnSGxlZGF0JzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXYnOwokbGFuZ1snc3VibWl0J10gPSAnVmxvxb5pdCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1DFmWlkYXQvVXByYXZpdCAmc2Nhcm9uO2FibG9udSBzaHJudXQmaWFjdXRlOy4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb255IHNocm51dCZpYWN1dGU7JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICcmU2Nhcm9uO2FibG9uYSBzaHJudXQmaWFjdXRlOyBieWxhIGFrdHVhbGl6b3YmYWFjdXRlO25hJzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAnT2Jub3ZpdCBwxa92b2RuJmlhY3V0ZTsgaG9kbm90eSc7CiRsYW5nWyd0ZWxlcGhvbmUnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdWJnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbmEgc2V6bmFtdSBrYXRlZ29yaSZpYWN1dGU7JzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdWJnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbmEgZGV0YWlsdSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7ICZzY2Fyb247YWJsb25hIGZvcm11bCZhYWN1dGU7xZllIGZyb250ZW5kdSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1YmeWFjdXRlO2Nob3omaWFjdXRlOyAmc2Nhcm9uO2FibG9uYSBzaHJudXQmaWFjdXRlOyc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1R5cGUnOwokbGFuZ1sndXAnXSA9ICdOYWhvcnUnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1dlYic7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1dlYic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMDMwMjQ2MTQuMzAxLjY4LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L3x1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My44ODAyNjc4MzcuMTE4MDk5MTY2OS4xMjAzMDY3ODU2LjEyMDMwNzEwMDIuMzA1JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2JzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdVbnRlcm5laG1lbiBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRlZGl0X2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWVlaW50cmFnIGhpbnp1ZsO8Z2VuIG9kZXIgYmVhcmJlaXRlbic7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0ZlbGRkZWZpbml0aW9uIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdIaWVyYXJjaGllIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICdMaW5rIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdBZHJlc3NlJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXNzZSc7CiRsYW5nWydhZGRfY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgaGluenVmw7xnZW4nOwokbGFuZ1snYWRkX2VkaXRfY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnTnVyIGbDvHIgZGVuIEFkbWluaXN0cmF0b3Igc2ljaHRiYXInOwokbGFuZ1snYWxidW0nXSA9ICdBbGJ1bSc7CiRsYW5nWydhbnknXSA9ICdpcmdlbmR3YXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1dvbGxlbiBTaWUgZGllcyB3aXJrbGljaCBsw7ZzY2hlbj8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXVmc3RlaWdlbmQnOwokbGFuZ1snYmFkbmFtZWdpdmVuJ10gPSAnRGVyIGFuZ2VnZWJlbmUgTmFtZSBpc3QgdW5nw7xsdGlnIChzb2xsdGUgZ3J1bmRzw6R0emxpY2ggVVJMLWZyZXVuZGxpY2ggc2VpbiknOwokbGFuZ1snY2FuY2VsJ10gPSAnQWJicmVjaGVuJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAnRMO8cmZlbiBXZWJzZWl0ZW5iZXN1Y2hlciBkaWVzZXMgRmVsZCBiZWFyYmVpdGVuIGvDtm5uZW4/JzsKJGxhbmdbJ2NhbnVzZXJ2aWV3J10gPSAnU29sbCBkaWVzZXMgRmVsZCBkZW4gV2Vic2VpdGVuYmVzdWNoZXJuIGFuZ2V6ZWlndCB3ZXJkZW4/JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdLYXRlZ29yaWUgaGluenVnZWbDvGd0JzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0thdGVnb3JpZSBnZWzDtnNjaHQnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnS2F0ZWdvcmllbGlzdGVudm9ybGFnZW4nOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnS2F0ZWdvcmllbGlzdGVuIGFrdHVhbGlzaWVydCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnS2F0ZWdvcmllbGlzdGVudm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdLYXRlZ29yaWUgYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ2NoZWNrJ10gPSAnUHLDvGZlbic7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdVbnRlcm5laG1lbic7CiRsYW5nWydjb21wYW55J10gPSAnVW50ZXJuZWhtZW4nOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRGFzIFVudGVybmVobWVuIHd1cmRlIGhpbnp1Z2Vmw7xndCc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0RhcyBVbnRlcm5laG1lbiB3dXJkZSBnZWzDtnNjaHQnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ1VudGVybmVobWVuc3ZlcnplaWNobmlzJzsKJGxhbmdbJ2NvbXBhbnluYW1lJ10gPSAnTmFtZSBkZXMgVW50ZXJuZWhtZW5zJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnVW50ZXJuZWhtZW4nOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdEaWUgVW50ZXJuZWhtZW5zZGF0ZW4gd3VyZGUgYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ2NvbmZpcm1fYXV0b2NyZWF0ZV91cmwnXSA9ICdVUkxzIGbDvHIgZXhpc3RpZXJlbmRlIEVpbnRyw6RnZSBvaG5lIFVSTCBhdXRvbWF0aXNjaCBnZW5lcmllcmVuJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdF9hbGJ1bSddID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZGFzIEFsYnVtIGJlYXJiZWl0ZW4gbcO2Y2h0ZW4uIEFsbGUgw4RuZGVydW5nZW4gZGVyIFVudGVybmVobWVuLUVpZ2Vuc2NoYWZ0ZW4gd2VyZGVuIG5pY2h0IGdlc3BlaWNoZXJ0ISc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdLb250YWt0LUUtTWFpbCc7CiRsYW5nWydjb29yZGluYXRlcyddID0gJ0tvb3JkaW5hdGVuJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BpZXJlbic7CiRsYW5nWydjcmVhdGVkJ10gPSAnRXJzdGVsbHQnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdFaW5nYWJlZGF0dW0nOwokbGFuZ1snY3JlYXRldXJscyddID0gJ1VSTFMgZXJzdGVsbGVuJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdNb21lbnRhbmVyIFdlcnQnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkdm9ybGFnZW4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZSBJbmhhbHRlIGRpZXNlciBUZXh0YmVyZWljaGUgd2VyZGVuIHZlcndlbmRldCwgdW0gZGVuIFN0YW5kYXJkaW5oYWx0IGZlc3R6dWxlZ2VuLCBkZXIgYXV0b21hdGlzY2ggZWluZ2Vmw7xndCB3aXJkLCB3ZW5uIFNpZSBpbiBkZXIgamV3ZWlsaWdlbiBSZWdpc3RlcmthcnRlIOKAnlZvcmxhZ2UgaGluenVmw7xnZW7igJwga2xpY2tlbi4gRGllIEJlYXJiZWl0dW5nIGRpZXNlciBUZXh0YmVyZWljaGUgaGF0IGtlaW5lIEF1c3dpcmt1bmdlbiBhdWYgSWhyZSBXZWJzZWl0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnTMO2c2NoZW4nOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgbMO2c2NoZW4nOwokbGFuZ1snZGVsZXRlY29tcGFueSddID0gJ1VudGVybmVobWVuIGzDtnNjaGVuJzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24gbMO2c2NoZW4nOwokbGFuZ1snZGVsaW1pdGVyJ10gPSAnRmVsZHRyZW5uZXInOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Fic3RlaWdlbmQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdCZXNjaHJlaWJ1bmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEZXRhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFpbHZvcmxhZ2VuJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJ0RpZSBEZXRhaWx2b3JsYWdlIHd1cmRlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRGV0YWlsdm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2Rpc2FibGUnXSA9ICdEZWFrdGl2aWVyZW4nOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEZWFrdGl2aWVydCc7CiRsYW5nWydkb3duJ10gPSAnTmFjaCB1bnRlbic7CiRsYW5nWydkcmFmdCddID0gJ0VudHd1cmYnOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ0RyYWctdW5kLURyb3AtVXBsb2FkJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ0RhdGVpZW4gaGllciBhYmxlZ2VuJzsKJGxhbmdbJ2Ryb3BfaGVyZV90b19kZWxldGUnXSA9ICdIaWVyIGFiZ2VsZWd0ZSBEYXRlaWVuIHdlcmRlbiBhdXMgZGVyIEdhbGVyaWUgZW50ZmVybnQnOwokbGFuZ1snZWRpdCddID0gJ0JlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICdVbnRlcm5laG1lbiBiZWFyYmVpdGVuJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ0ZlbGRkZWZpbml0aW9uIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ0ZvdG8gQWxidW0gYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIEJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9maWx0ZXInXSA9ICdGaWx0ZXIgYmVhcmJlaXRlbic7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFLU1haWwtQWRyZXNzZSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0UtTWFpbC1Wb3JsYWdlJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdFaW4gQWxidW0tRmVsZCBleGlzdGllcnQgYmVyZWl0czsgbnVyIGVpbiBGZWxkIGlzdCBlcmxhdWJ0Lic7CiRsYW5nWydlcnJvcl9iYWR1cGxvYWQnXSA9ICdNaXQgZGVyIGhvY2hnZWxhZGVuZW4gRGF0ZWkgaXN0IGVpbiBQcm9ibGVtIGF1ZmdldHJldGVuJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5Y29sdW1uX25vdGZvdW5kJ10gPSAnS2F0ZWdvcmllc3BhbHRlICVzIHd1cmRlIG5pY2h0IGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRGVyIFVudGVybmVobWVuc25hbWUgaXN0IHVuZ8O8bHRpZyc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ0VpbiBVbnRlcm5laG1lbiBtaXQgZGllc2VtIE5hbWVuIGlzdCBiZXJlaXRzIGluIGRlciBEYXRlbmJhbmsgdm9yaGFuZGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnlub3RkZWxldGVkJ10gPSAnRGVyIEVpbnRyYWcga29ubnRlIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW47IHZlcm11dGxpY2ggdmVyd2VuZGV0IGVpbiBhbmRlcmVzIE1vZHVsIGRpZSBEYXRlbic7CiRsYW5nWydlcnJvcl9kZWxldGVwYXJlbnQnXSA9ICdEaWVzZXIgRWludHJhZyBrYW5uIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4sIHdlaWwgZXIgdW50ZXJnZW9yZG5ldGUgRWludHLDpGdlIGVudGjDpGx0JzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1NpZSBtw7xzc2VuIGVpbmVuIEZlbGR0cmVubmVyIGFuZ2ViZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlJ10gPSAnRmVobGVyIGVyemV1Z2VuLCBhYmVyIGZvcnRmYWhyZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnRWluZSBLYXRlZ29yaWUgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdFaW4gVW50ZXJuZWhtZW4gbWl0IGRlbSBOYW1lbiDigJ4lc+KAnCBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2ZpZWxkZGVmJ10gPSAnRWluIEZlbGQgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2hpZXJhcmNoeSddID0gJ0VpbmUgSGllcmFyY2hpZSBtaXQgZGVtIExhbmduYW1lbiDigJ4lc+KAnCBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnVW0gZGllc2UgRnVua3Rpb24gdmVyd2VuZGVuIHp1IGvDtm5uZW4sIG3DvHNzZW4gU2llIGF1ZiBkaWVzZXIgV2Vic2VpdGUgYW5nZW1lbGRldCBzZWluLic7CiRsYW5nWydlcnJvcl9maWVsZGRlZl9ub3Rmb3VuZCddID0gJ0ZlbGRkZWZpbml0aW9uIG1pdCBpZCAlZCB3dXJkZSBuaWNodCBnZWZ1bmRlbic7CiRsYW5nWydlcnJvcl9nZW5lcmF0ZXVybCddID0gJ0JlaW0gZXJzdGVsbGVuIGVpbmVyIFVSTCB0cmF0IGVpbiBQcm9ibGVtIGF1Zi4nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZGxpbmUnXSA9ICdTY2hsZWNodGVyIERhdGVuc2F0eiBpbiBaZWlsZSAlZCBnZWZ1bmRlbi4gRmVobHQgZWluZSBSZWdlbD8nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnRWluIHNjaGxlY2h0ZXIgV2VydCB3dXJkZSBmw7xyICVzIEZlbGQgZ2VmdW5kZW4nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGUnXSA9ICdEdXBsaWthdCAlcyBSZWdlbCBpbiBaZWlsZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZV9pZGVudGlmaWVyJ10gPSAnRHVwbGlrYXQtUmVnZWwgaW4gWmVpbGUgJWQgaWRlbnRpZml6aWVydCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ0VzIGlzdCBuaWNodCBiZWthbm50LCB3aWUgWmVpbGUgJWQgbWl0IGRlciBSZWdlbCAlcyB2ZXJhcmJlaXRldCB3ZXJkZW4gc29sbCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJ1bGUnXSA9ICdVbmJla2FubnRlIFJlZ2VsIGluIFplaWxlICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0JlaW0gRWluZsO8Z2VuIGRlciBLYXRlZ29yaWViZXNjaHJlaWJ1bmcgaXN0IGVpbiBEYXRlbmJhbmtmZWhsZXIgYXVmZ2V0cmV0ZW4nOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2NvbXBhbnknXSA9ICdCZWltIEVpbmbDvGdlbiBkZXIgVW50ZXJuZWhtZW5zYmVzY2hyZWlidW5nIGlzdCBlaW4gRGF0ZW5iYW5rZmVobGVyIGF1ZmdldHJldGVuJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9maWVsZGRlZiddID0gJ0JlaW0gRWluZsO8Z2VuIGRlciBGZWxkZGVmaW5pdGlvbiBpc3QgZWluIERhdGVuYmFua2ZlaGxlciBhdWZnZXRyZXRlbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfaGllcmFyY2h5J10gPSAnRmVobGVyIGJlaW0gRXJzdGVsbGVuIGRlciBIaWVyYXJjaGllICIlcyInOwokbGFuZ1snZXJyb3JfaW52YWxpZG5hbWUnXSA9ICdEZXIgVW50ZXJuZWhtZW5zbmFtZSBpc3QgdW5nw7xsdGlnJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cmwnXSA9ICdEaWUgYW5nZWdlYmVuZSBvZGVyIGJlcmVjaG5ldGUgVVJMIGlzdCB1bmfDvGx0aWcnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9wYXJhbSddID0gJ0RlciBmw7xyICVzIGVpbmdlZ2ViZW5lIFdlcnQgaXN0IHVuZ8O8bHRpZyc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnRXMgd3VyZCBrZWluZSBBZHJlc3NlIGbDvHIgZGllc2VuIEVpbnRyYWcgZ2VmdW5kZW4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnSW0gRm9ybXVsYXIgd3VyZGUgZWluIFBmbGljaHRmZWxkIG5pY2h0IGF1c2dlZsO8bGx0JzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdFcyB3dXJkZSBrZWluZSBEYXRlaSBob2NoZ2VsYWRlbic7CiRsYW5nWydlcnJvcl9ub2NvbXBhbmllc21hdGNoJ10gPSAnS2VpbmUgVW50ZXJuZWhtZW4gZW50c3ByYWNoZW4gZGVuIGFuZ2VnZWJlbmVuIEtyaXRlcmllbic7CiRsYW5nWydlcnJvcl9ub2Ryb3Bkb3dub3B0aW9ucyddID0gJ0VzIHd1cmRlIGtlaW5lIExpc3RlbmZlbGQtT3B0aW9uIGF1c2dld8OkaGx0JzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnS29ubnRlIGRhcyBGcm9udEVuZFVzZXJzLU1vZHVsIG5pY2h0IGZpbmRlbic7CiRsYW5nWydlcnJvcl9ub2ZpbHRlcm1hdGNoZXMnXSA9ICdFcyBnaWJ0IGtlaW5lIEVpbnRyw6RnZSwgZGllIGRlbiBhbmdlZ2ViZW5lbiBLcml0ZXJpZW4gZW50c3ByZWNoZW4nOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdFcyB3dXJkZSBrZWluZSBtYXhpbWFsZSBGZWxkbMOkbmdlIGFuZ2VnZWJlbic7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ0luIGRlciBEYXRlbmJhbmsgd3VyZGVuIGtlaW5lIERhdGVuIGdlZnVuZGVuLCBkaWUgbWl0IElocmVuIEtyaXRlcmllbiDDvGJlcmVpbnN0aW1tZW4nOwokbGFuZ1snZXJyb3Jfbm9zcG90c2xlZnQnXSA9ICdTaWUgaGFiZW4ga2VpbmUgdmVyYmxlaWJlbmRlbiBVbnRlcm5laG1lbnNmZWxkZXInOwokbGFuZ1snZXJyb3Jfbm90aGluZ3NlbGVjdGVkJ10gPSAnTmljaHRzIGF1c2dld8OkaGx0JzsKJGxhbmdbJ2Vycm9yX3Bvc3Rjb2RlX2xvb2t1cCddID0gJ0tvbm50ZSBrZWluZSBJbmZvcm1hdGlvbmVuIGbDvHIgZGllIFBvc3RsZWl0emFobCAlcyBmaW5kZW4nOwokbGFuZ1snZXJyb3JfcHJlZml4X21zZyddID0gJ0luIFplaWxlICVkIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuOiAlcyc7CiRsYW5nWydlcnJvcl91cGRhdGVfY29tcGFueSddID0gJ0JlaW0gQWt0dWFsaXNpZXJlbiBkZXMgRWludHJhZ3MgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0ZlaGxlciBiZWltIEhvY2hsYWRlbiBkZXIgRGF0ZWknOwokbGFuZ1snZXJyb3JfdXJsbm90ZW1wdHknXSA9ICdEYXMgVVJMLUZlbGQgaXN0IG5pY2h0IGxlZXI7IGV4aXN0aWVyZW5kZXIgV2VydCBrYW5uIG5pY2h0IMO8YmVyc2NocmllYmVuIHdlcmRlbic7CiRsYW5nWydlcnJvcl91cmxyZXF1aXJlZCddID0gJ0VpbiBVUkwgd2lyZCBiZW7DtnRpZ3QnOwokbGFuZ1snZXJyX2ludmFsaWR1bml0cyddID0gJ0RpZSBhbmdlZ2ViZW5lbiBFaW5oZWl0ZW4gc2luZCB1bmfDvGx0aWcuJzsKJGxhbmdbJ2V2ZW50ZGVzYy1PbkFkZENvbXBhbnknXSA9ICdFcmVpZ25pcyBnZXNlbmRldCBuYWNoIGRlbSBlaW4gVW50ZXJuZWhtZW4gaW4gZGllIERhdGVuYmFuayBoaW56dWdlZsO8Z3Qgd3VyZGUnOwokbGFuZ1snZXZlbnRkZXNjLU9uRGVsZXRlQ29tcGFueSddID0gJ0VyZWlnbmlzIGdlc2VuZGV0IGJldm9yIGVpbiBVbnRlcm5laG1lbiBnZWzDtnNjaHQgd3VyZGUnOwokbGFuZ1snZXZlbnRkZXNjLU9uRWRpdENvbXBhbnknXSA9ICdFcmVpZ25pcyBnZXNlbmRldCBuYWNoIGRlbSBlaW4gYmVyZWl0IHZvcmhhbmRlbmVzIFVudGVybmVobWVuIGJlYXJiZWl0ZXQgd3VyZGUnOwokbGFuZ1snZXZlbnRoZWxwLU9uQWRkQ29tcGFueSddID0gJzxwPkdlc2VuZGV0IG5hY2ggZGVtIGVpbiBVbnRlcm5laG1lbiBpbiBkaWUgRGF0ZW5iYW5rIGhpbnp1Z2Vmw7xndCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyOjwvaDQ+DQo8dWw+DQogIDxsaT4id2hvIiAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPg0KICA8bGk+Im9iamVjdCIgLSBUaGUgY2RfY29tcGFueSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBkYXRhIHRoYXQgd2FzIHNhdmVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25EZWxldGVDb21wYW55J10gPSAnPHA+R2VzZW5kZXQgYmV2b3IgZWluIFVudGVybmVobWVuIGdlbMO2c2NodCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyOjwvaDQ+DQo8dWw+DQogIDxsaT4id2hvIiAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPg0KICA8bGk+ImNpZCIgLSBJZCBvZiB0aGUgY29tcGFueSByZWNvcmQgdG8gYmUgZGVsZXRlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLU9uRWRpdENvbXBhbnknXSA9ICc8cD5HZXNlbmRldCBuYWNoIGRlbSBlaW4gYmVyZWl0IHZvcmhhbmRlbmVzIFVudGVybmVobWVuIGJlYXJiZWl0ZXQgd3VyZGUuPC9wPg0KPGg0PlBhcmFtZXRlcjo8L2g0Pg0KPHVsPg0KICA8bGk+IndobyIgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiJvYmplY3QiIC0gVGhlIGNkX2NvbXBhbnkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZGF0YSB0aGF0IHdhcyBzYXZlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXhwaXJlcyddID0gJ0fDvGx0aWcgYmlzJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0FscyBDU1YtRGF0ZWkgZXhwb3J0aWVyZW4nOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEtRGF0ZW4gMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYS1EYXRlbiAyJzsKJGxhbmdbJ2V4dHJhMyddID0gJ0V4dHJhLURhdGVuIDMnOwokbGFuZ1snZmF4J10gPSAnRmF4JzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXgnOwokbGFuZ1snZmVlZGl0X2VtYWlsX3N1YmplY3QnXSA9ICdCZWkgZWluZW0gQ29tcGFueURpcmVjdG9yeS1FaW50cmFnIHd1cmRlIGVpbmUgw4RuZGVydW5nIHZvcmdlbm9tbWVuJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0RpZSBGZWxkZGVmaW5pdGlvbiB3dXJkZSBoaW56dWdlZsO8Z3QnOwokbGFuZ1snZmllbGRkZWZkZWxldGVkJ10gPSAnRGllIEZlbGRkZWZpbml0aW9uIHd1cmRlIGdlbMO2c2NodCc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGZWxkZGVmaW5pdGlvbmVuJzsKJGxhbmdbJ2ZpZWxkZGVmdGV4dCddID0gJ0ZlbGRkZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmdXBkYXRlZCddID0gJ0RpZSBGZWxkZGVmaW5pdGlvbiB3dXJkZSBha3R1YWxpc2llcnQnOwokbGFuZ1snZmllbGRzJ10gPSAnWnVzw6R0emxpY2hlIEZlbGRlcic7CiRsYW5nWydmaWVsZF9hY3Rpdml0eSddID0gJ0FrdGl2aXTDpHRlbiAoQ0dTb2NpYWxBcHApJzsKJGxhbmdbJ2ZpZWxkX2FsYnVtJ10gPSAnQWxidW0gKEJpbGRlcmdydXBwZSknOwokbGFuZ1snZmllbGRfY2hlY2tib3gnXSA9ICdLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydmaWVsZF9kcm9wZG93biddID0gJ0xpc3RlbmZlbGQnOwokbGFuZ1snZmllbGRfZmlsZSddID0gJ0RhdGVpJzsKJGxhbmdbJ2ZpZWxkX2ljb24nXSA9ICdQaWt0b2dyYW1tIChDR0dvb2dsZU1hcHMpJzsKJGxhbmdbJ2ZpZWxkX2ltYWdlJ10gPSAnQmlsZCc7CiRsYW5nWydmaWVsZF9tdWx0aXNlbGVjdCddID0gJ01laHJmYWNoYXVzd2FobCc7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1RleHRiZXJlaWNoIChtZWhyemVpbGlnKSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGV4dGVpbmdhYmUgKGVpbnplaWxpZyknOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJ8KrJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZXMnXSA9ICdWb3JsYWdlbiDigJ5Gcm9udGVuZC1BbGJ1bSBiZWFyYmVpdGVu4oCcJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRnJvbnRlbmQgQWxidW0gYmVhcmJlaXRlbiBUZW1wbGF0ZSBoaW56dWbDvGdlbiBvZGVyIGJlYXJiZWl0ZW4nOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnVW50ZXJuZWhtZW5zdm9ybGFnZW4gYmVhcmJlaXRlbic7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdVbnRlcm5laG1lbnN2b3JsYWdlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRnJvbnRlbmQtRm9ybXVsYXJ2b3JsYWdlbiBmw7xyIGRpZSBXZWJzZWl0ZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2Zyb250ZW5kaW1wb3J0dGVtcGxhdGUnXSA9ICdWb3JsYWdlbiBXZWJzZWl0ZW4tQ1NWLUltcG9ydCc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdXZWJzZWl0ZW4tTGlzdGVudm9ybGFnZW4nOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1dlYnNlaXRlbi1MaXN0ZW52b3JsYWdlIGhpbnp1ZsO8Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlcyddID0gJ0dhbGVyaWV2b3JsYWdlbic7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0dhbGxlcmlldm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2dldHVybCddID0gJ1VSTCBlcnpldWdlbic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaGllbGlzdGVudm9ybGFnZW4nOwokbGFuZ1snaGllcmxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnSGllcmFyY2hpZWxpc3RlbnZvcmxhZ2UgaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2lnbm9yZSddID0gJ0lnbm9yaWVyZW4nOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnQmlsZCc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdDU1YgaW1wb3J0aWVyZW4nOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnS01MIGltcG9ydGllcmVuJzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ0NTVi1EYXRlaSBhdXN3w6RobGVuJzsKJGxhbmdbJ2ltcG9ydF9pbnNlcnQnXSA9ICdEdXBsaWthdCBlaW5mw7xnZW4nOwokbGFuZ1snaW1wb3J0X2ttbCddID0gJ0tNTC1EYXRlaSBpbXBvcnRpZXJlbic7CiRsYW5nWydpbmZvX2NzdmZpbGUnXSA9ICdVbnRlcm5laG1lbnNpbmZvcm1hdGlvbmVuIGvDtm5uZW4gZGlyZWt0IGF1cyBlaW5lciBBU0NJSS1EYXRlaSBpbXBvcnRpZXJ0IHdlcmRlbi4nOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnSGllciBrw7ZubmVuIFNpZSBkaWUgT3B0aW9uZW4gZsO8ciBkaWUgTGlzdGVuZmVsZC1Lb250cm9sbGUgZWluZ2ViZW4sIGpld2VpbHMgZWluZSBaZWlsZSBwcm8gRWludHJhZy4gVHJlbm5lbiBTaWUgU2NobMO8c3NlbCB1bmQgV2VydGUgbWl0IGVpbmVtID0uIEJlaXNwaWVsOiBTY2hsw7xzc2VsPVdlcnQnOwokbGFuZ1snaW51c2UnXSA9ICdpbiBWZXJ3ZW5kdW5nJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnwrsnOwokbGFuZ1snbGF0aXR1ZGUnXSA9ICdCcmVpdGVuZ3JhZCc7CiRsYW5nWydsYmxfYmFjayddID0gJ1p1csO8Y2snOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnVm9ybGFnZW4nOwokbGFuZ1snbG9nb3RleHQnXSA9ICdVbnRlcm5laG1lbnNsb2dvJzsKJGxhbmdbJ2xvbmdpdHVkZSddID0gJ0zDpG5nZW5ncmFkJzsKJGxhbmdbJ2xvb2t1cCddID0gJ0tvb3JkaW5hdGVuIHN1Y2hlbic7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbWFsZSBMw6RuZ2UnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ01heGltYWxlIEzDpG5nZSc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTWF4aW1hbGUgTMOkbmdlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWluIHZlcnplaWNobmlzw6RobmxpY2hlcyBNb2R1bCBmw7xyIFVudGVybmVobWVuLiBFcyBrw7ZubmVuIERhdGVuc8OkdHplIGbDvHIgVW50ZXJuZWhtZW4gaGluenVnZWbDvGd0L2JlYXJiZWl0ZXQvaW1wb3J0aWVydC9leHBvcnRpZXJ0IHVuZCBhdWYgdmVyc2NoaWVkZW5lbiBXZWdlbiBhbmdlemVpZ3Qgd2VyZGVuIChlaW5zY2hsaWXDn2xpY2ggZWluZXIgU3VjaGUpLiBEaWVzZXMgTW9kdWwga2FubiBpbiBWZXJiaW5kdW5nIG1pdCBkZW0gQ0dHb29nbGVNYXBzLU1vZHVsIHZlcndlbmRldCB3ZXJkZW4uJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnR2XDpG5kZXJ0JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdHVtIGRlciBsZXR6dGVuIEJlYXJiZWl0dW5nJzsKJGxhbmdbJ21zZ19idWxrZGVsJ10gPSAnJWQgVW50ZXJuZWhtZW4gZ2Vsw7ZzY2h0JzsKJGxhbmdbJ21zZ19jYXRlZ29yeXNhdmVkJ10gPSAnS2F0ZWdvcmllIGdlc3BlaWNoZXJ0JzsKJGxhbmdbJ21zZ19jb21wYW55Y29waWVkJ10gPSAnRGllIFVudGVybmVobWVuc2RhdGVuIHd1cmRlbiBrb3BpZXJ0IOKApiBTaWUga8O2bm5lbiBqZXR6dCBkaWUgRGV0YWlscyBmw7xyIGRlbiBuZXVlbiBVbnRlcm5laG1lbnNlaW50cmFnIGJlYXJiZWl0ZW4nOwokbGFuZ1snbXNnX2hpZXJhZGRlZCddID0gJ0hpZXJhcmNoaWVwb3NpdGlvbiBoaW56dWdlZsO8Z3QnOwokbGFuZ1snbXNnX2hpZXJhcmNoeV91cGRhdGVkJ10gPSAnSGllcmFyY2hpZXBvc2l0aW9uZW4gYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ21zZ19oaWVyZGVsZXRlZCddID0gJ0hpZXJhcmNoaWVwb3NpdGlvbiBnZWzDtnNjaHQnOwokbGFuZ1snbXNnX2hpZXJ1cGRhdGVkJ10gPSAnSGllcmFyY2hpZXBvc2l0aW9uIGFrdHVhbGlzaWVydCc7CiRsYW5nWydtc2dfaW1wb3J0X2NvbXBsZXRlJ10gPSAnRGVyIERhdGVuaW1wb3J0IHdhciBlcmZvbGdyZWljaCc7CiRsYW5nWydtc2dfc2V0dGluZ3NfY2hhbmdlZCddID0gJ0VpbnN0ZWxsdW5nZW4gZ2XDpG5kZXJ0JzsKJGxhbmdbJ21zZ19zbG90c3VzZWQnXSA9ICdTaWUgaGFiZW4gJWQgdm9uICVkIFVudGVybmVobWVucy1GZWxkZXJuIHZlcndlbmRldCc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdVbSBkaWVzZSBGdW5rdGlvbiBhdXNmw7xocmVuIHp1IGvDtm5uZW4sIGJlbsO2dGlnZW4gU2llIGRpZSBCZXJlY2h0aWd1bmcgXCclc1wnLic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTdWNoZm9ybXVsYXJ2b3JsYWdlbic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnU3VjaGZvcm11bGFydm9ybGFnZSBoaW56dWbDvGdlbi/DpG5kZXJuJzsKJGxhbmdbJ25ld3NlYXJjaF90ZW1wbGF0ZSddID0gJ1N1Y2hmb3JtdWxhcnZvcmxhZ2UnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICfigLonOwokbGFuZ1snbm8nXSA9ICdOZWluJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ0VzIHd1cmRlIGtlaW4gRmlybWVubmFtZSBlaW5nZWdlYmVuJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnRXMgd3VyZGUga2VpbiBOYW1lIGVpbmdlZ2ViZW4nOwokbGFuZ1snbm9uZSddID0gJ0tlaW5lJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdFcyB3dXJkZSBrZWluZSBaYWhsIGVpbmdlZ2ViZW4nOwokbGFuZ1snb2YnXSA9ICd2b24nOwokbGFuZ1snb3BfY2FuY2VsbGVkJ10gPSAnQWJnZWJyb2NoZW4nOwokbGFuZ1snb3JnYW5pemF0aW9uJ10gPSAnT3JnYW5pc2F0aW9uJzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ8OcYmVyc2NocmVpYmVuJzsKJGxhbmdbJ293bmVyJ10gPSAnRWlnZW50w7xtZXInOwokbGFuZ1sncGFnZSddID0gJ1NlaXRlJzsKJGxhbmdbJ3BhZ2VsaW1pdCddID0gJ0VpbnRyw6RnZSBwcm8gU2VpdGUnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnTWl0IGRpZXNlbSBQYXJhbWV0ZXIgd2lyZCBkYXMgcHJpbcOkcmUgVmVyaGFsdGVuIGRlcyBNb2R1bHMgZmVzdGdlbGVndC4gRm9sZ2VuZGUgV2VydGUgc2luZCBtw7ZnbGljaDoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBaZWlndCBlaW5lIExpc3RlIGRlciBLYXRlZ29yaWVuLiBEaWUgQmVzdWNoZXIga8O2bm5lbiBkYW5uIGluIGRlbiBadXNhbW1lbmZhc3N1bmdzLUFuc2ljaHQgdW5kIHdlaXRlciBpbiBkaWUgRGV0YWlsLUFuc2ljaHQgd2VjaHNlbG4uPC9saT4NCiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBEaWUgVW50ZXJuZWhtZW4gd2VyZGVuIGluIGVpbmVtIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgYW5nZXplaWd0LjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIFplaWd0IGRldGFpbGllcnRlIEluZm9ybWF0aW9uZW4gw7xiZXIgZWluIGJlc3RpbW10ZXMgVW50ZXJuZWhtZW4gYW4uPC9saT4NCiAgPGxpPmZlX2VkaXQgLS0gWmVpZ3QgYXVmIGRlciBXZWJzZWl0ZSBlaW4gRm9ybXVsYXIgYW4sIMO8YmVyIGRhcyBkaWUgSW5mb3JtYXRpb25lbiBlaW5lcyBiZXN0aW1tdGVuIFVudGVybmVobWVucyBiZWFyYmVpdGV0IHdlcmRlbiBrw7ZubmVuLjwvbGk+DQogICA8bGk+ZnJvbnRlbmRsaXN0IC0tIFplaWd0IGF1ZiBkZXIgV2Vic2VpdGUgZWluZSBMaXN0ZSBhbGxlciBVbnRlcm5laG1lbnNkYXRlbiBhbiwgbWl0IGRlciBvcHRpb25hbGVuIE3DtmdsaWNoa2VpdCwgRGF0ZW4gaGluenV6dWbDvGdlbi48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBaZWlndCBlaW4gRm9ybXVsYXIgZsO8ciBkaWUgU3VjaGUgbmFjaCBlaW5lbSBiZXN0aW1tdGVuIFVudGVybmVobWVuIGFuLjwvbGk+DQogIDxsaT5icm93c2VoaWVyIC0tIFplaWd0IGVpbmUgTGlzdGUgZGVyIEhpZXJhcmNoaWVuIGFuLiBEaWUgQmVzdWNoZXIga8O2bm5lbiBkYW5uIGluIGRlbiBadXNhbW1lbmZhc3N1bmdzLUFuc2ljaHQgdW5kIHdlaXRlciBpbiBkaWUgRGV0YWlsLUFuc2ljaHQgd2VjaHNlbG4uPC9saT4NCg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdCZWkgVmVyd2VuZHVuZyBpbSA8ZW0+ZGVmYXVsdDwvZW0+IFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgd2VyZGVuIG1pdCBkaWVzZW0gUGFyYW1ldGVyIGRpZSBLYXRlZ29yaWVuIChkZXIgbWl0IGRlbiBleGlzdGllcmVuZGVuIEthdGVnb3JpZSDDvGJlcmVpbnN0aW1tZW4gc29sbHRlbikgZmVzdGdlbGVndCwgZGVzc2VuIFVudGVybmVobWVuIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbGVuLiBEaWUgS2F0ZWdvcmllbiBzaW5kIGR1cmNoIEtvbW1hdGEgdm9uZWluYW5kZXIgZ2V0cmVubnQgYW56dWdlYmVuLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTInXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnk8L2VtPiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhbiBhZGRpdGlvbmFsIEFORCBleHByZXNzaW9uIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgKGNvbW1hIHNlcGFyYXRlZCkgY2F0ZWdvcmllcyB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGEgbWVtYmVyIG9mLiAgaS5lOiB7Q29tcGFueURpcmVjdG9yeSBjYXRlZ29yeT1cJ3JlZ2lvbl9ub3J0aCxyZWdpb25fc291dGhcJyBjYXRlZ29yeTI9XCdjYXJzLHRydWNrc1wnfSB3b3VsZCByZXR1cm4gb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCB3ZXJlIGluIHRoZSBlaXRoZXIgb2YgdGhlIHJlZ2lvbiBub3J0aCBvciByZWdpb24gc291dGggY2F0ZWdvcmllcyBBTkQgQUxTTyBpbiBlaXRoZXIgb2YgdGhlIGNhcnMgb3IgdHJ1Y2tzIGNhdGVnb3JpZXMnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdMZWd0IGRhcyBUZW1wbGF0ZSBmZXN0IChhbHMgTmFtZSksIG1pdCBkZW0gZGllIEthdGVnb3JpZW5saXN0ZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ0RpZXNlciBQYXJhbWV0ZXIgbGVndCBmZXN0LCB3ZWxjaGVyIEZpcm1lbi1EYXRlbnNhdHogYmVhcmJlaXRldCBvZGVyIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbC4gSXN0IGbDvHIgZGllIEJlYXJiZWl0dW5nIHZvbiBEYXRlbiBpbSBGcm9udGVuZCB1bmQgaW0gRGV0YWlsLU1vZHVzIGVyZm9yZGVybGljaC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ0xlZ3QgZWluZW4gU2VpdGVuLUFsaWFzIGZlc3QgKGFscyBOYW1lKSwgYXVmIGRlc3NlbiBTZWl0ZSBkaWUgRGV0YWlsZGF0ZW4gYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4uIDxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gRGllc2VyIFBhcmFtZXRlciBpc3QgbWl0IFByZXR0eSBVUkxzIG5pY2h0IGtvbXBhdGliZWwuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnTGVndCBkYXMgVGVtcGxhdGUgZmVzdCAoYWxzIE5hbWUpLCB3ZWxjaGVzIGbDvHIgZGllIERldGFpbGFuc2ljaHQgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLiA8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZXNlciBQYXJhbWV0ZXIgaXN0IG1pdCBQcmV0dHkgVVJMcyBuaWNodCBrb21wYXRpYmVsLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ0xlZ3QgZGFzIFRlbXBsYXRlIGZlc3QgKGFscyBOYW1lKSwgd2VsY2hlcyBmw7xyIGRpZSBBbnplaWdlIGRlcyBCZWFyYmVpdHVuZ3Nmb3JtdWxhcnMgYXVmIGRlciBXZWJzZWl0ZSB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuJzsKJGxhbmdbJ3BhcmFtX2hpZXInXSA9ICdLYW5uIGbDvHIgZGllIDxlbT5kZWZhdWx0PC9lbT4gdW5kIGRpZSA8ZW0+aGllcmxpc3Q8L2VtPiBBa3Rpb24gdmVyd2VuZGV0IHdlcmRlbi4gw5xiZXIgZGllc2VuIFBhcmFtZXRlciBrYW5uIGRlciBOYW1lIGRlciBIaWVyYXJjaGllIHZvcmdlZ2ViZW4gd2VyZGVuLCBkZXNzZW4gVW50ZXJuZWhtZW4gYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4uIERpZSA8ZW0+ZGVmYXVsdDwvZW0+IEFrdGlvbiBrYW5uIGluIFZlcmJpbmR1bmcgbWl0IEpva2VyemVpY2hlbiB2ZXJ3ZW5kZXQgd2VyZGVuLCB6LkJzcC4gIiplaW5oaWVyYXJjaGllbmFtZSoiLiBNaXQgZGVyIDxlbT5oaWVybGlzdDwvZW0+IEFrdGlvbiBtdXNzIGRpZXNlciBQYXJhbWV0ZXIgZGVuIGVpbmRldXRpZ2VuIE5hbWVuIGVpbmVyIEhpZXJhcmNoaWUgZW50aGFsdGVuLCBkZXIgZGVuIFN0YXJ0cHVua3QgZsO8ciBkaWUgSGllcmFyY2hpZS1BbnplaWdlIGZlc3RsZWd0Lic7CiRsYW5nWydwYXJhbV9oaWVybGlzdHRlbXBsYXRlJ10gPSAnR2ViZW4gU2llIGVpbmVuIFRlbXBsYXRlLU5hbWVuIGFuLCBkZXIgZsO8ciBkaWUgQW56ZWlnZSBkZXIgSGllcmFyY2hpZS1MaXN0ZW4tQW5zaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ0thbm4gbnVyIG1pdCBkZW0gPGVtPmRlZmF1bHQ8L2VtPiBadXNhbW1lbmZhc3N1bmdzLSB1bmQgZGVtIDxlbT5zZWFyY2g8L2VtPiBNb2R1cyB2ZXJ3ZW5kZXQgd2VyZGVuLiBNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIGZlc3RnZWxlZ3Qgd2VyZGVuLCBvYiBkaWUgRXJnZWJuaXNzZSBkZW4gU3RhbmRhcmQtSW5oYWx0c2Jsb2NrIG9kZXIgZGVuIE1vZHVsLVRhZyAoaW5saW5lKSBlcnNldHplbiBzb2xsZW4uJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgPGVtPihzdW1tYXJ5KTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBjb21wYW5pZXMgYnkgdGhlaXIgbmFtZS4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQuICBpLmU6IG5hbWU9ImEqIi4gIEFkZGl0aW9uYWxseSwgcmVndWxhciBleHByZXNzaW9ucyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHByZWZpeGluZyB0aGUgdmFsdWUgd2l0aCA6Oi4gIGkuZTogbmFtZT0iOjpbMC05XS4qIic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdXaXJkIGRpZXMgbWl0IGRlbSA8ZW0+ZGVmYXVsdDwvZW0+IFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgb2RlciBkZW0gPGVtPnNlYXJjaDwvZW0+IE1vZHVzIHZlcndlbmRldCwga2FubiBtaXQgZGllc2VtIFdlcnQgZGllIEFuemFobCBkZXIgYXVzZ2VnZWJlbmVuIEVyZ2Vibmlzc2UgZmVzdGdlbGVndCB3ZXJkZW4uJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0thbm4gbnVyIGltIDxlbT5zZWFyY2g8L2VtPiBNb2R1cyB2ZXJ3ZW5kZXQgd2VyZGVuLiBNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIGVpbiB2b24gZGVyIFZvcmVpbnN0ZWxsdW5nIGFid2VpY2hlbmRlcyBUZW1wbGF0ZSBmw7xyIGRhcyBTdWNoZm9ybXVsYXIgZmVzdGdlbGVndCB3ZXJkZW4uJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdLYW5uIG51ciBtaXQgZGVyIGNhdGVnb3J5bGlzdCBBa3Rpb24gdmVyd2VuZGV0IHdlcmRlbi4gV2VubiBkaWVzZXIgUGFyYW1ldGVyIGdlc2V0enQgd3VyZGUsIHdlcmRlbiBhbGxlIEthdGVnb3JpZW4gbWl0IG5pY2h0IMO8YmVyZWluc3RpbW1lbmRlbiBGaXJtZW4gYXVzZ2VnZWJlbi4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnTnVyIGltIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgYW53ZW5kYmFyLiBEaWVzZXIgUGFyYW1ldGVyIGxlZ3QgZmVzdCwgd29uYWNoIGRpZSBVbnRlcm5laG1lbiBzb3J0aWVydCB3ZXJkZW4gc29sbGVuLiBFcyBzaW5kIGZvbGdlbmRlIFdlcnRlIG3DtmdsaWNoOg0KPHVsPg0KPGxpPmlkIC0tIERpZSBpbnRlcm5lIFVudGVybmVobWVucy1JRDwvbGk+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPiAtLSBEZXIgVW50ZXJuZWhtZW5zbmFtZTwvbGk+DQogIDxsaT5waG9uZSAtLSBkaWUgVGVsZWZvbm51bW1lcjwvbGk+DQogIDxsaT5mYXggLS0gZGllIEZheG51bW1lcjwvbGk+DQogIDxsaT5lbWFpbCAtLSBkaWUgRW1haWwtQWRyZXNzZTwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIERpZSBXZWJzZWl0ZW4tVVJMPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gRGFzIEVyc3RlbGx1bmdzZGF0dW0gZGVzIFVudGVybmVobWVuc2RhdGVuc2F0emVzPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIERhcyBCZWFyYmVpdHVuZ3NkYXR1bSBkZXMgVW50ZXJuZWhtZW5zZGF0ZW5zYXR6ZXM8L2xpPg0KICA8bGk+c3RhdHVzIC0tIGRlciBTdGF0dXMgZGVzIFVudGVybmVobWVuc2RhdGVuc2F0emVzPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBkaWUgRWludHLDpGdlIHp1ZsOkbGxpZyBzb3J0aWVyZW4uPC9saT4NCiAgPGxpPmY6RmVsZG5hbWUgLS0gbmFjaCDDtmZmZW50bGljaGVuIHp1c8OkdHpsaWNoZW4gRmVsZGVybiBzb3J0aWVyZW4uIERpZSBBdXNnYWJlIGVyZm9sZ3Qgc29ydGllcnQgbmFjaCBkZW0gYmVuYW5udGVuIHp1c8OkdHpsaWNoZW4gRmVsZC48YnIgLz4NCiAgPHN0cm9uZz5IaW53ZWlzIDE6PC9zdHJvbmc+IFdlbm4gZGllIEZlbGRuYW1lbiBMZWVyemVpY2hlbiBlbnRoYWx0ZW4sIG3DvHNzZW4gU2llIEFuZsO8aHJ1bmdzemVpY2hlbiB2ZXJ3ZW5kZW4uPGJyIC8+DQogIDxzdHJvbmc+SGlud2VpcyAyOjwvc3Ryb25nPiBUaGUgZmllbGQgc3BlY2lmaWVkIG11c3QgYmUgbWFya2VkIGFzIHB1YmxpYy48L2xpPg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBXaGVuIHVzaW5nIGN1c3RvbSBmaWVsZCBzb3J0aW5nLCBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGZsYWcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgdG8gaW5kaWNhdGUgdGhhdCBpbnRlZ2VyIHNvcnRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4gIGkuZTogPGNvZGU+c29ydGJ5PWY6Y3VzdG9tX29yZGVyaW5nOmk8L2NvZGU+PGJyLz4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ0xlZ3QgZGllIFNvcnRpZXJ1bmcgZGVyIEZlbGRlciBpbiBkZXIgWnVzYW1tZW5mYXNzdW5nc2Fuc2ljaHQgZmVzdC4gTcO2Z2xpY2hlIFdlcnRlIHNpbmQ6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBdWZzdGVpZ2VuZDwvbGk+DQogIDxsaT5kZXNjIC0tIEFic3RlaWdlbmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnTGVndCBmZXN0LCB3ZWxjaGVzIFRlbXBsYXRlIGbDvHIgZGllIEFuemVpZ2UgZGVyIFp1c2FtbWVuZmFzc3VuZyB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwgKE5hbWUgZGVzIFRlbXBsYXRlcykuIDxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gRGllc2VyIFBhcmFtZXRlciBmdW5rdGlvbmllcnQgbmljaHQgbWl0IFByZXR0eSBVUkxzLic7CiRsYW5nWydwaHJhc2UnXSA9ICdBdXNkcnVjayc7CiRsYW5nWydwb3N0YWxfY29kZSddID0gJ1Bvc3RsZWl0emFobCAoUExaKSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RhcyBDb21wYW55RGlyZWN0b3J5LU1vZHVsIChVbnRlcm5laG1lbnN2ZXJ6ZWljaG5pcykgd3VyZGUgaW5zdGFsbGllcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RhcyBDb21wYW55RGlyZWN0b3J5LU1vZHVsIChVbnRlcm5laG1lbnN2ZXJ6ZWljaG5pcykgd3VyZGUgZGVpbnN0YWxsaWVydC4gU8OkbXRsaWNoZSBVbnRlcm5laG1lbnNkYXRlbiB3dXJkZW4gZ2Vsw7ZzY2h0Lic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0VpbnN0ZWxsdW5nZW4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnV29sbGVuIFNpZSBkaWVzZXMgTW9kdWwgd2lya2xpY2ggZGVpbnN0YWxsaWVyZW4/IE1pdCBkZXIgRGVpbnN0YWxsYXRpb24gZGVzIE1vZHVscyB3ZXJkZW4gc8OkbXRsaWNoZSBVbnRlcm5laG1lbnNkYXRlbiBnZWzDtnNjaHQuJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAn4oC5JzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdGZWxkZGVmaW5pdGlvbiBoaW56dWbDvGdlbiBvZGVyIGJlYXJiZWl0ZW4nOwokbGFuZ1sncHJvbXB0X2FkbWlud3lzaXd5ZyddID0gJ1dZU0lXWUctRWRpdG9yIGbDvHIgZGllIEJlYXJiZWl0dW5nIHZlcndlbmRlbic7CiRsYW5nWydwcm9tcHRfYWRtaW5fZWRpdF9zZXR0aW5ncyddID0gJ0FkbWluLUJlYXJiZWl0dW5nc2VpbnN0ZWxsdW5nZW4nOwokbGFuZ1sncHJvbXB0X2FsbG93ZHVwbGljYXRlY29tcGFueW5hbWVzJ10gPSAnTmFtZW5zZHVwbGlrYXRlIGVybGF1YmVuPyc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcmllc19pbXBvcnRlZCddID0gJ0thdGVnb3JpZW4gaW1wb3J0aWVydCc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnljb2x1bW4nXSA9ICdLYXRlZ29yaWUgc3BhbHRlJzsKJGxhbmdbJ3Byb21wdF9jaGVja19kdXBsaWNhdGVzJ10gPSAnQXVmIER1cGxpa2F0ZSB2b24gVW50ZXJuZWhtZW5zbmFtZW4gcHLDvGZlbj8nOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ1N1Y2gtU3RhdGlzdGlrZW4gZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdGaXJtZW4gaW1wb3J0aWVydCc7CiRsYW5nWydwcm9tcHRfY29udmVydF9hZGRyZXNzJ10gPSAnQWRyZXNzZW4gaW4gS29vcmRpbmF0ZW4gdW13YW5kZWxuIChmYWxscyBub2NoIGtlaW5lIEtvb3JkaW5hdGVuIGVpbmdlZ2ViZW4gd3VyZGVuKSc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ1VSTHMgZsO8ciBFaW50csOkZ2Ugb2huZSBVUkwgZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9kZWxpbWV0ZXInXSA9ICdGZWxkdHJlbm5lcic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0RpZSB2b3JlaW5nZXN0ZWxsdGUgU2VpdGUsIGF1ZiBkZXIgZGllIEF1c2dhYmUgZGVyIERldGFpbHMgZXJmb2xnZW4gc29sbCc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0xpc3RlbmZlbGQtT3B0aW9uZW4nOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnTmFtZW4gZGVyIFVudGVybmVobWVuIGF1ZiBEdXBsaWthdGUgcHLDvGZlbic7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdVbnRlcm5laG1lbiBiZWFyYmVpdGVuJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9pc2h0bWwnXSA9ICdFLU1haWwgaXN0IGltIEhUTUwtRm9ybWF0JzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9zdWJqZWN0J10gPSAnRS1NYWlsLUJldHJlZmYnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1NYWlsLVZvcmxhZ2UnOwokbGFuZ1sncHJvbXB0X2VuY2xvc3VyZSddID0gJ0ZlbGRiZWdyZW56ZXInOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0ZlaGxlcic7CiRsYW5nWydwcm9tcHRfZXh0ZW5zaW9ucyddID0gJ0VybGF1YnRlIERhdGVpZW5kdW5nZW4nOwokbGFuZ1sncHJvbXB0X2ZldV9jaGFuZ2Vfc3RhdHVzJ10gPSAnRMO8cmZlbiBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW5iZW51dHplciBkZW4gRmlybWVuc3RhdHVzIMOkbmRlcm4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfY3JlYXRlJ10gPSAnRMO8cmZlbiBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW5iZXN1Y2hlciAoRnJvbnRlbmRVc2VycykgbmV1ZSBEYXRlbnPDpHR6ZSBlcnN0ZWxsZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZGlzcGxheV9zZXR0aW5ncyddID0gJ0VpbnN0ZWxsdW5nZW4gZsO8ciBkaWUgQW56ZWlnZSBhdWYgZGVyIFdlYnNlaXRlJzsKJGxhbmdbJ3Byb21wdF9mZXVfZWRpdF9zZXR0aW5ncyddID0gJ0VpbnN0ZWxsdW5nZW4gZsO8ciBkaWUgQmVhcmJlaXR1bmcgdmlhIFdlYnNlaXRlJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ0FkbWluaXN0cmF0b3ItR3J1cHBlLCBkaWUgZGllIEJlbmFjaHJpY2h0aWd1bmdzLUUtTWFpbHMgZW1wZmFuZ2VuIHNvbGw/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmFkZCddID0gJ0VpbmUgRS1NYWlsIHZlcnNlbmRlbiwgd2VubiDDvGJlciBkaWUgV2Vic2VpdGUgZWluIG5ldWVzIFVudGVybmVobWVuIGVpbmdlZ2ViZW4gd3VyZGUnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ0VpbmUgRS1NYWlsIHZlcnNlbmRlbiwgd2VubiDDvGJlciBkaWUgV2Vic2VpdGUgZWluIFVudGVybmVobWVuc2RhdGVuc2F0eiBnZcOkbmRlcnQgd3VyZGUnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZ3JvdXAnXSA9ICdBZG1pbmlzdHJhdG9yLUdydXBwZSwgYW4gZGllIGRpZSBFLU1haWxzIGdlc2FuZHQgd2VyZGVuIHNvbGxlbic7CiRsYW5nWydwcm9tcHRfZmV1X2ltcG9ydCddID0gJ0JlcmVjaHRpZ3RlbiBXZWJzZWl0ZW5iZXN1Y2hlcm4gZXJsYXViZW4sIERhdGVuc8OkdHplIHZpYSBDU1YgaW1wb3J0aWVyZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbmV3X3N0YXR1cyddID0gJ1ZvcmVpbmdlc3RlbGx0ZXIgU3RhdHVzIGbDvHIgbmV1ZSwgdmlhIFdlYnNlaXRlIGVyc3RlbGx0ZSBEYXRlbnPDpHR6ZSc7CiRsYW5nWydwcm9tcHRfZmV1X251bXJlY29yZHMnXSA9ICdNYXhpbWFsZSBBbnphaGwgZGVyIERhdGVuc8OkdHplLCBkaWUgZWluZW0gRkVVLUtvbnRvIHp1Z2VvcmRuZXQgd2VyZGVuIGvDtm5uZW4nOwokbGFuZ1sncHJvbXB0X2ZpZWxkZGVmc19pbXBvcnRlZCddID0gJ0ZlbGRkZWZpbml0aW9uZW4gaW1wb3J0aWVydCc7CiRsYW5nWydwcm9tcHRfZnJvbnRlbmRfc2hvd2V4cGlyZWQnXSA9ICdEYXRlbnPDpHR6ZSBkZXIgYWJnZWxhdWZlbmVuIEZyb250ZW5kLUJlbnV0emVyIGFuemVpZ2VuJzsKJGxhbmdbJ3Byb21wdF9nZW5lcmFsX3NldHRpbmdzJ10gPSAnQWxsZ2VtZWluZSBFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3Byb21wdF9oaWVyYXJjaGllc19pbXBvcnRlZCddID0gJ0hpZXJhcmNoaWVwb3NpdGlvbmVuIGVyc3RlbGx0JzsKJGxhbmdbJ3Byb21wdF9pY29uJ10gPSAnUGlrdG9ncmFtbSc7CiRsYW5nWydwcm9tcHRfaWdub3JlX2FkZHJlc3MnXSA9ICdBZHJlc3NmZWxkIGlnbm9yaWVyZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeWRlZnMnXSA9ICdGZWhsZW5kZSBLYXRlZ29yaWVuIGJlaW0gSW1wb3J0IGVyc3RlbGxlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5dmFscyddID0gJ0thdGVnb3JpZXdlcnRlIGJlaW0gSW1wb3J0IGbDvGxsZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jc3ZmaWxlJ10gPSAnQ1NWLURhdGVpIGhvY2hsYWRlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkZGVmcyddID0gJ0ZlaGxlbmRlIERlZmluaXRpb25lbiBmw7xyIHp1c8OkdHpsaWNoZSBGZWxkZXIgYmVpbSBJbXBvcnQgZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGR2YWxzJ10gPSAnV2VydGUgZsO8ciB6dXPDpHR6bGljaGUgRmVsZGVyIGJlaW0gSW1wb3J0IGbDvGxsZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHlkZWZzJ10gPSAnSGllcmFyY2hpZS1EYXRlbnPDpHR6ZSBpbXBvcnRpZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeXZhbHMnXSA9ICdIaWVyYXJjaGlld2VydGUgaW1wb3J0aWVyZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9sb29rdXBsYXRsb25nJ10gPSAnQnJlaXRlbi0gdW5kIEzDpG5nZW5ncmFkIGVybWl0dGVsbiwgZmFsbHMgbmljaHQgYW5nZWdlYmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfdGVtcGxhdGUnXSA9ICdNaXQgZGllc2VyIFZvcmxhZ2Ugd2lyZCBkYXMgRm9ybXVsYXIgZXJzdGVsbHQsIMO8YmVyIGRhcyBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW5iZXN1Y2hlciBEYXRlbiDDvGJlciBlaW5lIGVudHNwcmVjaGVuZCBmb3JtYXRpZXJ0ZSBDU1YtRGF0ZWkgaW1wb3J0aWVyZW4ga8O2bm5lbic7CiRsYW5nWydwcm9tcHRfa21sZmlsZSddID0gJ1p1IGltcG9ydGllcmVuZGUgS01MLURhdGVpJzsKJGxhbmdbJ3Byb21wdF9udW1lcnJvcnMnXSA9ICdBbnphaGwgZ2VmdW5kZW5lciBGZWhsZXInOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnQW56YWhsIGRlciBpbXBvcnRpZXJ0ZW4gRGF0ZW5zw6R0emUnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0RpZSBBbnphaGwgZGVyIERhdGVuc8OkdHplLCBkaWUgaW0gWnVzYW1tZW5mYXNzdW5ncy1Nb2R1cyBwcm8gU2VpdGUgYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4nOwokbGFuZ1sncHJvbXB0X3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnV2Vic2VpdGVuLUFkcmVzc2VuIOKAnmh0dHA6Ly/igJwgdm9yYW5zdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZsO8ciBpbXBvcnRpZXJ0ZSBEYXRlbnPDpHR6ZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdTdGFuZGFyZC1Tb3J0aWVydW5nIGltIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEaWUgU3RhbmRhcmQtU29ydGllcnJlaWhlbmZvbGdlIGltIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgPGVtPihmdW5rdGlvbmllcnQgbmljaHQsIHdlbm4gZGllIFNvcnRpZXJ1bmcgYXVmIFwncmFuZG9tXCcgZ2VzZXR6dCB3dXJkZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdWb3JsYWdlJzsKJGxhbmdbJ3B1YmxpYyddID0gJ8OWZmZlbnRsaWNoJzsKJGxhbmdbJ3B1Ymxpc2gnXSA9ICdWZXLDtmZmZW50bGljaGVuJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1ZlcsO2ZmZlbnRsaWNodCc7CiRsYW5nWydyYWRpdXMnXSA9ICdSYWRpdXMnOwokbGFuZ1sncmFuZG9tJ10gPSAnWnVmw6RsbGlnJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdOZXUgb3JkbmVuJzsKJGxhbmdbJ3Jlc2V0J10gPSAnWnVyw7xja3NldHplbic7CiRsYW5nWydyZXNldGFsbCddID0gJ0FsbGVzIHp1csO8Y2tzZXR6ZW4nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmdlbiB6dXLDvGNrc2V0emVuJzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmcgenVyw7xja3NldHplbic7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ01pdCBkaWVzZXIgRnVua3Rpb24ga8O2bm5lbiBTaWUgZGllIEluaGFsdGUgZGVyIFZvcmxhZ2VuIGF1ZiBkaWUgcHJvZ3JhbW1zZWl0aWdlbiBWb3JlaW5zdGVsbHVuZ2VuIHp1csO8Y2tzZXR6ZW4uIFdvbGxlbiBTaWUgZGllcyB3aXJrbGljaD8nOwokbGFuZ1sncmV0dXJuJ10gPSAnWnVyw7xjayc7CiRsYW5nWydzZWFyY2gnXSA9ICdTdWNoZSc7CiRsYW5nWydzZWFyY2hlcyddID0gJ1N1Y2hlbic7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVzJ10gPSAnU3VjaGZvcm11bGFydm9ybGFnZW4nOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdFaW5lIFN1Y2hmb3JtdWxhcnZvcmxhZ2UgaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydzZWFyY2hfY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZW4nOwokbGFuZ1snc2VhcmNoX2RhdGUnXSA9ICdEYXR1bSc7CiRsYW5nWydzZWFyY2hfaGllciddID0gJ0hpZXJhcmNoaWUnOwokbGFuZ1snc2VhcmNoX2lwJ10gPSAnSVAtQWRyZXNzZSc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdJaHJlIEF1c3dhaGwnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ0FsbGUgYXVzd8OkaGxlbic7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0aWVydW5nJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ1NvcnRpZXItUmVpaGVuZm9sZ2UnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Fic2VuZGVuJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdadXNhbW1lbmZhc3N1bmdzdm9ybGFnZW4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1p1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1p1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlIGhpbnp1ZsO8Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdBdWYgZGllIFZvcmVpbnN0ZWxsdW5nZW4genVyw7xja3NldHplbic7CiRsYW5nWyd0ZWxlcGhvbmUnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RodW1ibmFpbCddID0gJ1ZvcnNjaGF1YmlsZCc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIEthdGVnb3JpZWxpc3RlbnZvcmxhZ2UnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBEZXRhaWx2b3JsYWdlJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kYWxidW1fZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFZvcmxhZ2Ug4oCeRnJvbnRlbmQgQWxidW0gYmVhcmJlaXRlbuKAnCc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFdlYnNlaXRlbi1Gb3JtdWxhcnZvcmxhZ2UnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBXZWJzZWl0ZW4tTGlzdGVudm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9nYWxsZXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBHYWxlcmlldm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZC1IaWVyYXJjaGllbGlzdGVudm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfcmVwb3J0J10gPSAnQ1NWLUltcG9ydGJlcmljaHQnOwokbGFuZ1sndGl0bGVfbmV3c2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBTdWNodm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBTdWNoZm9ybXVsYXJ2b3JsYWdlJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFp1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUeXAnOwokbGFuZ1sndXAnXSA9ICdOYWNoIG9iZW4nOwokbGFuZ1sndXJsJ10gPSAnVVJMJzsKJGxhbmdbJ3VybHMnXSA9ICdVUkxzJzsKJGxhbmdbJ3ZpZXdfd2Vic2l0ZSddID0gJ1p1ciBXZWJzaXRlIGdlaGVuJzsKJGxhbmdbJ3dlYnNpdGUnXSA9ICdXZWJzZWl0ZSc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1dlYnNlaXRlJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdBdXNnZXfDpGhsdGUnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGl2YSc7CiRsYW5nWydhZGRsaW5rJ10gPSAnQWdyZWdhciBFbmxhY2UnOwokbGFuZ1snYWRkcmVzcyddID0gJ0RpcmVjY2kmb2FjdXRlO24nOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWdyZWdhciBDYXRlZ29yJmlhY3V0ZTthJzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdBZ3JlZ2FyIENvbXBhJm50aWxkZTsmaWFjdXRlO2EnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBZ3JlZ2FyIERlZmluaWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaXNpYmxlIHNvbG8gcGFyYSBBZG1pbmlzdHJhZG9yZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJyZpcXVlc3Q7RXN0JmFhY3V0ZTsgc2VndXJvIGRlIHF1ZXJlciBib3JyYXIgZXN0bz8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaWVudGUnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsYXInOwokbGFuZ1snY2FudXNlcmVkaXQnXSA9ICcmaXF1ZXN0O1B1ZWRlbiBsb3MgdXN1YXJpb3MgZGVsIG0mb2FjdXRlO2R1bG8gRkVVIGVkaXRhciBlc3RlIGNhbXBvPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJyZpcXVlc3Q7UHVlZGVuIGxvcyB1c3VhcmlvcyBkZWwgbSZvYWN1dGU7ZHVsbyBGRVUgdmVyIGVzdGUgY2FtcG8/JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmlhcyc7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICdDYXRlZ29yJmlhY3V0ZTthJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yJmlhY3V0ZTthIEFncmVnYWRhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3J5IEFjdHVhbGl6YWRhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ3JlZ2FyL0JvcnJhciBQbGFudGlsbGEgZGUgTGlzdGFkbyBwb3IgQ2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdQbGFudGlsbGFzIGRlIExpc3RhZG8gcG9yIENhdGVnb3ImaWFjdXRlO2EnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnTGlzdGFkbyBwb3IgQ2F0ZWdvciZpYWN1dGU7YSBBY3R1YWxpemFkbyc7CiRsYW5nWydjb21wYW55J10gPSAnQ29tcGEmbnRpbGRlOyZpYWN1dGU7YSc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdDb21wYSZudGlsZGU7JmlhY3V0ZTthIEFncmVnYWRhJzsKJGxhbmdbJ2NvbXBhbnluYW1lJ10gPSAnTm9tYnJlIGRlIGxhIENvbXBhJm50aWxkZTsmaWFjdXRlO2EnOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdDb21wYSZudGlsZGU7JmlhY3V0ZTthIEFjdHVhbGl6YWRhJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0NvbXBhJm50aWxkZTsmaWFjdXRlO2FzJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnQ29tcGEmbnRpbGRlOyZpYWN1dGU7YSc7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnRGlyZWN0b3JpbyBkZSBDb21wYSZudGlsZGU7JmlhY3V0ZTthcyc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdDb3JyZW8gZGUgQ29udGFjdG8nOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdGZWNoYSBkZSBJbmdyZXNvJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdQbGFudGlsbGFzIHBvciBkZWZlY3RvJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBFbCBjb250ZW5pZG8gZGUgZXN0b3MgY2FtcG9yIGRlIHRleHRvIHNvbiB1dGlsaXphZG9zIHBhcmEgZGV0ZXJtaW5hciBlbCBjb250ZW5pZG8gcG9yIGRlZmVjdG8gZGUgbGFzIHBsYW50aWxsYXMgY3VhbmRvIHByZXNpb25hcyBlbCBib3Qmb2FjdXRlO24gJnF1b3Q7QWdyZWdhciBQbGFudGlsbGEmcXVvdDsgZW4gbGEgcGVzdGEmbnRpbGRlO2EgYXByb3BpYWRhLiAgRWRpdGFyIHVubyBkZSBlc3RvcyBjYW1wb3MgZGUgdGV4dG8gbm8gdGllbmVuIG5pbmcmdWFjdXRlO24gZWZlY3RvIGlubWVkaWF0byBlbiB0dSBzaXRpby4nOwokbGFuZ1snZGVsZXRlJ10gPSAnQm9ycmFyJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnQm9ycmFyIENhdGVnb3ImaWFjdXRlO2EnOwokbGFuZ1snZGVsZXRlY29tcGFueSddID0gJ0JvcnJhciBDb21wYSZudGlsZGU7JmlhY3V0ZTthJzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnQm9ycmFyIERlZmluaWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kaWVudGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwY2kmb2FjdXRlO24nOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsbGVzJzsKJGxhbmdbJ2RldGFpbHN0ZXh0J10gPSAnRGV0YWxsZXMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvQm9ycmFyIFBsYW50aWxsYSBkZSBEZXRhbGxlJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1BsYW50aWxsYXMgZGUgRGV0YWxsZSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdQbGFudGlsbGEgZGUgRGV0YWxsZSBBY3R1YWxpemFkYSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rlc2FiaWxpdGFkbyc7CiRsYW5nWydkb3duJ10gPSAnQWJham8nOwokbGFuZ1snZHJhZnQnXSA9ICdCb3NxdWVqbyc7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ0VkaXRhciBDYXRlZ29yJmlhY3V0ZTthJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnRWRpdGFyIENvbXBhJm50aWxkZTsmaWFjdXRlO2EnOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnRWRpdGFyIERlZmluaWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0NvcnJlby1FJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRWwgbm9tYnJlIGRlIGxhIENvbXBhJm50aWxkZTsmaWFjdXRlO2Egbm8gZXMgdiZhYWN1dGU7bGlkbyc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ1lhIGV4aXN0ZSB1bmEgQ29tcGEmbnRpbGRlOyZpYWN1dGU7YSBjb24gZXNlIG5vbWJyZSBlbiBsYSBiYXNlIGRlIGRhdG9zJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTm8gc2UgZW5jb250ciZvYWN1dGU7IGVsIG0mb2FjdXRlO2R1bG8gRnJvbnRFbmRVc2Vycyc7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnRhciBDU1YnOwokbGFuZ1snZmF4J10gPSAnRmF4ICc7CiRsYW5nWydmYXh0ZXh0J10gPSAnRmF4ICc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0RlZmluaWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaWNpb25lcyBkZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEZWZpbmljaSZvYWN1dGU7biBkZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRGVmaW5pY2kmb2FjdXRlO24gZGUgQ2FtcG8gQWdyZWdhZGEnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRGVmaW5pY2kmb2FjdXRlO24gZGUgQ2FtcG8gQWN0dWFsaXphZGEnOwokbGFuZ1snZmllbGRkZWZkZWxldGVkJ10gPSAnRGVmaW5pY2kmb2FjdXRlO24gZGUgQ2FtcG8gQm9ycmFkYSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCAnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvQm9ycmFyIFBsYW50aWxsYSBkZSBsYSBmb3JtYSBGcm9udGVuZCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdFZGl0YXIgUGxhbnRpbGxhcyBkZSBDb21wYSZudGlsZGU7JmlhY3V0ZTthJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ1BsYW50aWxsYSBkZSBDb21wYSZudGlsZGU7JmlhY3V0ZTthIEFjdHVhbGl6YWRhJzsKJGxhbmdbJ2lkJ10gPSAnSWQgJzsKJGxhbmdbJ2ltYWdlY3VycmVudGhpZGRlbiddID0gJyAnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2VuJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4gJzsKJGxhbmdbJ2xvZ29jdXJyZW50aGlkZGVuJ10gPSAnICc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ290aXBvJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ00mYWFjdXRlO3hpbWEgTG9uZ2l0dWQnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ00mYWFjdXRlO3hpbWEgTG9uZ2l0dWQnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ00mYWFjdXRlO3hpbWEgTG9uZ2l0dWQnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRmVjaGEgZGUgJlVhY3V0ZTtsdGltYSBNb2RpZmljYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ25hbWUnXSA9ICdOb21icmUnOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOb21icmUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdOZWNlc2l0YSBlbCBwZXJtaXNvICYjMDM5OyVzJiMwMzk7IHBhcmEgZWplY3V0YXIgZXNhIGZ1bmNpJm9hY3V0ZTtuJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ05vIHNlIGluZ3JlcyZvYWN1dGU7IE5vbWJyZSBkZSBDb21wYSZudGlsZGU7JmlhY3V0ZTthJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gc2UgaW5ncmVzJm9hY3V0ZTsgTm9tYnJlJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdObyBlcyB1biBOJnVhY3V0ZTttZXJvJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPiAnOwokbGFuZ1snb2YnXSA9ICdEZSAnOwokbGFuZ1sncGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0RldGVybWluZSB0aGUgcHJpbWFyeSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBwYXJhbWV0ZXIgYXJlOg0KPHVsPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIERpc3BsYXkgYSBsaXN0IG9mIGNhdGVnb3JpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUsIGFuZGQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogICANCjwvdWw+DQonOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdDdWFuZG8gc2UgdXNhIGNvbiBlbCBtb2RvIHN1bWFyaW8gKGVzdGFibGVjaWRvIHBvciBkZWZlY3RvKSwgZXN0ZSBwYXJhbWV0cm8gKHF1ZSBkZWJlIHNlciBpZ3VhbCBhbCBub21icmUgZGUgdW5hIGNhdGVnb3JpYSBleGlzdGVudGUpIHNlciZhYWN1dGU7IHVzYWRvIHBhcmEgbW9zdHJhciBzb2xvIGFxdWVsbGFzIGNvbXBhJm50aWxkZTsmaWFjdXRlO2FzIHF1ZSBwZXJ0ZW5lY2VuIGEgZGljaGEgY2F0ZWdvcmlhLiAoU2UgcHVlZGUgcHJvdmVlciB1bmEgbGlzdGEgc2VwYXJhZGEgcG9yIGNvbWFzKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ0VzcGVjaWZpY2FyIHVuYSBwbGFudGlsbGEgKHBvciBub21icmUpIHBhcmEgdXNhciBjdWFuZG8gc2UgbXVlc3RyYSBlbCBsaXN0YWRvIGRlIGNhdGVnb3JpYXMuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ1JlcXVlcmlkbyBwYXJhIGVsIG0mb2FjdXRlO2R1bG8gRkVVIHkgbW9kb3MgZGUgZGV0YWxsZS4gRXN0ZSBwYXImYWFjdXRlO21ldHJvIGRldGVybWluYSBxdWUgcmVnaXN0cm8gZGUgY29tcGEmbnRpbGRlOyZpYWN1dGU7YSBlZGl0YXIgbyB2ZXIuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdFc3BlY2lmaWNhciB1biBhbGlhcyBkZSBwJmFhY3V0ZTtnaW5hIChwb3Igbm9tYnJlKSBwYXJhIHVzYXIgYWwgbW9zdHJhciB1biByZWdpc3RybyBkZSBkZXRhbGxlLiA8c3Ryb25nPk5vdGE6PC9zdHJvbmc+IEVzdGUgcGFyJmFhY3V0ZTttZXRybyBubyBlcyBjb21wYXRpYmxlIGNvbiBVUkxzIGFtaWdhYmxlcy4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdFcGVjaWZpY2FyIHVuYSBwbGFudGlsbGEgKHBvciBub21icmUpIHBhcmEgdXNhciBjdWFuZG8gc2UgZGVzcGxpZWdhIGxhIHZpc3RhIGRldGFsbGFkYS4gPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBFc3RlIHBhciZhYWN1dGU7bWV0cm8gbm8gZXMgY29tcGF0aWJsZSBjb24gVVJMcyBhbWlnYWJsZXMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnRXNwZWNpZmljYXIgdW5hIHBsYW50aWxsYSAocG9yIG5vbWJyZSkgcGFyYSB1c2FyIGN1YW5kbyBzZSBkZXNwbGllZ2EgbGEgZm9ybWEgZGUgZWRpY2kmb2FjdXRlO24gZGUgY29tcGEmbnRpbGRlO2lhcyBkZSBGRVUuJzsKJGxhbmdbJ3BhcmFtX3NlbGVjdGNhdGVnb3J5J10gPSAnSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGEgZm9ybSB3aWxsIGJlIGdlbmVyYXRlZCBhbGxvd2luZyB1c2VycyB0byBpbnRlcmFjdGl2ZWx5IGZpbHRlciBjb21wYW55IHJlY29yZHMgb24gYSBzaW5nbGUgY2F0ZWdvcnkuICBUaGlzIGZsYWcgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICYjMDM5O2NhdGVnb3J5JiMwMzk7IHBhcmFtZXRlci4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ0VzcGVjaWZpcXVlIHVuYSBwbGFudGlsbGEgKHBvciBub21icmUpICBwYXJhIHVzYXIgY3VhbmRvIHNlIGRlc3BsaWVnZSBsYSB2aXN0YSBTdW1hcmlhLiA8c3Ryb25nPk5vdGE6PC9zdHJvbmc+IEVzdCZlYWN1dGU7IHBhcmFtZXRybyBubyBlcyBjb21wYXRpYmxlIGNvbiBVUkxzIEFtaXN0b3Nhcy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdFbCBNJm9hY3V0ZTtkdWxvICYjMDM5O0NvbXBhbnkgRGlyZWN0b3J5JiMwMzk7IGhhIHNpZG8gaW5zdGFsYWRvIGV4aXRvc2FtZW50ZSc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRWwgTSZvYWN1dGU7ZHVsbyAmIzAzOTtDb21wYW55IERpcmVjdG9yeSYjMDM5OyBoYSBzaWRvIGRlc2luc3RhbGFkbyBleGl0b3NhbWVudGUuIFRvZGEgbGEgaW5mb3JtYWNpJm9hY3V0ZTtuIGFzb2NpYWRhIGEgZXN0ZSBoYSBzaWRvIGJvcnJhZGEuJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ0VzdCZhYWN1dGU7IHNlZ3VybyBkZSBxdWVyZXIgZGVzaW5zdGFsYXIgZXN0ZSBtJm9hY3V0ZTtkdWxvPyBTaSBsbyBoYWNlIGJvcnJhciZhYWN1dGU7IHBlcm1hbmVudGVtZW50ZSB0b2RhIGxhIGluZm9ybWFjaSZvYWN1dGU7biBhc29jaWFkYSBhIGVzdGUgbSZvYWN1dGU7ZHVsby4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8ICc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0xhIHAmYWFjdXRlO2dpbmEgYSBsYSBxdWUgc2UgcmVkaXJlY2Npb25hIGVuIG1vZG8gRGV0YWxsZSc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnRWwgbiZ1YWN1dGU7bWVybyBkZSByZWdpc3Ryb3MgYSB2ZXIgcG9yIHAmYWFjdXRlO2dpbmEgZW4gbW9kbyBTdW1hcmlvJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ09yZGVuIHBvciBkZWZlY3RvIGVuIGVsIG1vZG8gU3VtYXJpbyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1RoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gc3VtbWFyeSBtb2RlIDxlbT4oZG9lcyBub3QgYXBwbHkgd2hlbiBzb3J0aW5nIGlzICYjMDM5O3JhbmRvbSYjMDM5OzwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSc7CiRsYW5nWydwdWJsaWMnXSA9ICdQJnVhY3V0ZTtibGljYSc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaWNhZG8nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbmNpYXMnOwokbGFuZ1sncmFuZG9tJ10gPSAnQWwgQXphcic7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1JlYWp1c3RhciBhIHZhbG9yZXMgcG9yIGRlZmVjdG8nOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdTZSByZXN0YXVyYXImYWFjdXRlOyBlbCBjb250ZW5pZG8gZGUgbGEgUGxhbnRpbGxhIGEgc3UgdmFsb3IgcG9yIGRlZmVjdG8uIEVzdCZhYWN1dGU7IHNlZ3VybyBxdWUgZGVzZWEgY29udGludWFyPyc7CiRsYW5nWydzZWFyY2gnXSA9ICdCdXNjYXInOwokbGFuZ1snc3RhdHVzJ10gPSAnRXN0YWRvJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Vudmlhcic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvQm9ycmFyIFBsYW50aWxsYSBTdW1hcmlhJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdQbGFudGlsbGEgU3VtYXJpYXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1BsYW50aWxsYSBTdW1hcmlhIEFjdHVhbGl6YWRhJzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAnUmVzdGF1cmFyIHZhbG9yZXMgcG9yIGRlZmVjdG8nOwokbGFuZ1sndGVsZXBob25lJ10gPSAnVGVsJmVhY3V0ZTtmb25vJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWwmZWFjdXRlO2Zvbm8nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBwb3IgZGVmZWN0byBkZSBMaXN0YWRvcyBwb3IgQ2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBvciBkZWZlY3RvIGRlIERldGFsbGVzJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgbGEgRm9ybWEgZGVsIG1vZHVsbyBGRVUgcG9yIGRlZmVjdG8nOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgcG9yIGRlZmVjdG8gZGUgU3VtYXJpbyc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwbyc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1RpcG8nOwokbGFuZ1sndXAnXSA9ICdBcnJpYmEnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1NpdGlvIFdlYic7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1NpdGlvIFdlYic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMDE4MjgzOTcuMjk5LjgyLnV0bWNjbj0ob3JnYW5pYyl8dXRtY3NyPWdvb2dsZXx1dG1jdHI9Y21zbXMgcHJldHR5IHVybHN8dXRtY21kPW9yZ2FuaWMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMjgzMTkwMTc3LjExOTI1NzI4MDkuMTIwMTgyODM5Ny4xMjAzNjMyMzI5LjMwMCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGlmJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWpvdXRlciB1bmUgQ2F0w6lnb3JpZSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnQWpvdXRlciB1bmUgRW50cmVwcmlzZSc7CiRsYW5nWydhZGRlZGl0X2hpZXJhcmNoeSddID0gJ0Fqb3V0ZXIgb3UgbW9kaWZpZXIgdW4gw6lsw6ltZW50IGRlIGhpZXJhcmNoaWUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBam91dGVyIHVuZSBkw6lmaW5pdGlvbiBkZSBjaGFtcCc7CiRsYW5nWydhZGRoaWVyJ10gPSAnQWpvdXRlciB1biDDqWzDqW1lbnQgZGUgaGllcmFyY2hpZSc7CiRsYW5nWydhZGRsaW5rJ10gPSAnQWpvdXRlciB1biBMaWVuJzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdBZHJlc3NlJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXNzZSc7CiRsYW5nWydhZGRfY2F0ZWdvcnknXSA9ICdBam91dGVyIHVuZSBjYXTDqWdvcmllJzsKJGxhbmdbJ2FkZF9lZGl0X2NhdGVnb3J5J10gPSAnQWpvdXRlci9Nb2RpZmllciB1bmUgY2F0w6lnb3JpZSc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnVmlzaWJsZSB1bmlxdWVtZW50IHBhciBsXCdhZG1pbmlzdHJhdGV1cic7CiRsYW5nWydhbGJ1bSddID0gJ1Bob3Rvcyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnw4p0ZXMtdm91cyBzw7tyIGRlIHN1cHByaW1lciBjZXQgw6lsw6ltZW50ID8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kYW50JzsKJGxhbmdbJ2JhZG5hbWVnaXZlbiddID0gJ0xlIG5vbSBlbnRyw6llIG5cJ2VzdCBwYXMgdmFsaWRlIChsZXMgbm9tcyBkb2l2ZW50IHJlc3BlY3RlciBsZXMgY29udHJhaW50ZXMgZFwnVVJMKSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAnTGVzIHV0aWxpc2F0ZXVycyBGRVVzZXJzIHBldXZlbnQtaWxzIMOpZGl0ZXIgY2UgY2hhbXAgPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0xlcyB1dGlsaXNhdGV1cnMgRkVVc2VycyBwZXV2ZW50LWlscyB2b2lyIGNlIGNoYW1wID8nOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0NhdMOpZ29yaWVzJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0w6lnb3JpZSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0w6lnb3JpZSBBam91dMOpZSc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXTDqWdvcmllIHN1cHByaW3DqWUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgTGlzdGUgZGUgQ2F0w6lnb3JpZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdMaXN0ZSBkZSBDYXTDqWdvcmllIE1pc2Ugw6Agam91cic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9Nb2RpZmllciBMZXMgR2FiYXJpdHMgZGUgTGlzdGUgZGUgQ2F0w6lnb3JpZSc7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICdDYXTDqWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdMOpZ29yaWUgTWlzZSDDoCBqb3VyJzsKJGxhbmdbJ2NoZWNrJ10gPSAnVsOpcmlmaWVyJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0VudHJlcHJpc2VzJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdFbnRyZXByaXNlJzsKJGxhbmdbJ2NvbXBhbnlhZGRlZCddID0gJ0VudHJlcHJpc2UgYWpvdXTDqWUnOwokbGFuZ1snY29tcGFueWRlbGV0ZWQnXSA9ICdDb21wYW5pZSBlZmZhY8OpZSc7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnQW5udWFpcmUgZFwnZW50cmVwcmlzZXMnOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdOb20gZGUgbFwnZW50cmVwcmlzZSc7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ0VudHJlcHJpc2UnOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdFbnRyZXByaXNlIG1pc2Ugw6Agam91cic7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdDb3VycmllbCc7CiRsYW5nWydjb29yZGluYXRlcyddID0gJ0Nvb3Jkb25uw6llcyc7CiRsYW5nWydjb3B5J10gPSAnQ29waWVyJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdDcsOpw6knOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRlIGRlIENyw6lhdGlvbic7CiRsYW5nWydjcmVhdGV1cmxzJ10gPSAnQ3LDqWVyIGxlcyBVUkxzJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdWYWxldXIgY291cmFudGUnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIHBhciBkw6lmYXV0JzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBMZXMgY29udGVudXMgZGUgY2VzIHpvbmVzIGRlIHRleHRlIHNvbnQgdXRpbGlzw6lzIHBvdXIgZMOpdGVybWluZXIgbGUgY29udGVudSBwYXIgZMOpZmF1dCBkZXMgZ2FiYXJpdHMgbG9yc3F1ZSBsXCdvbiBjbGlxdWUgc3VyICJBam91dGVyIHVuIEdhYmFyaXQiIGRhbnMgbGEgdGFidWxhdGlvbiBkZSBnYWJhcml0IGFwcHJvcHJpw6llLiBNb2RpZmllciBsZSBjb250ZW51IGRlIGNlcyB6b25lcyBuXCdhIHBhcyBkXCdlZmZldCBpbW3DqWRpYXQgc3VyIGxlIHNpdGUuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1N1cHByaW1lcic7CiRsYW5nWydkZWxldGVjYXRlZ29yeSddID0gJ1N1cHByaW1lciB1bmUgQ2F0w6lnb3JpZSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnU3VwcHJpbWVyIHVuZSBFbnRyZXByaXNlJzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnU3VwcHJpbWVyIHVuZSBkw6lmaW5pdGlvbiBkZSBjaGFtcCc7CiRsYW5nWydkZWxpbWl0ZXInXSA9ICdEw6lsaW1pdGV1ciBkZSBjaGFtcHMnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Rlc2NlbmRhbnQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbiZuYnNwOyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRMOpdGFpbHMnOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEw6l0YWlscyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkZSBEw6l0YWlsJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJ0dhYmFyaXQgZGUgRMOpdGFpbCBNaXMgw6Agam91cic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9Nb2RpZmllciBsZSBHYWJhcml0IGRlIETDqXRhaWwnOwokbGFuZ1snZGlzYWJsZSddID0gJ0TDqXNhY3RpdmVyJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRMOpc2FjdGl2w6knOwokbGFuZ1snZG93biddID0gJ0Jhcyc7CiRsYW5nWydkcmFmdCddID0gJ0Jyb3VpbGxvbic7CiRsYW5nWydkcmFnX2Ryb3BfdXBsb2FkJ10gPSAnRW52b2kgcGFyIGdsaXNzZXIvZMOpcG9zZXInOwokbGFuZ1snZHJvcF9oZXJlJ10gPSAnRMOpcG9zZXogbGVzIGZpY2hpZXJzIGljaSc7CiRsYW5nWydkcm9wX2hlcmVfdG9fZGVsZXRlJ10gPSAnRMOpcG9zZXIgbGVzIGZpY2hpZXJzIGljaSBsZXMgc3VwcHJpbWVyYSBkZSBsYSBnYWxlcmllJzsKJGxhbmdbJ2VkaXQnXSA9ICdNb2RpZmllcic7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICdNb2RpZmllciB1bmUgQ2F0w6lnb3JpZSc7CiRsYW5nWydlZGl0Y29tcGFueSddID0gJ01vZGlmaWVyIHVuZSBFTnRyZXByaXNlJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ01vZGlmaWVyIGxhIGTDqWZpbml0aW9uIGRcJ3VuIGNoYW1wJzsKJGxhbmdbJ2VkaXRfYWxidW0nXSA9ICdNb2RpZmllciBsXCdhbGJ1bSBwaG90byc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnTW9kaWZpZXIgbGEgY2F0w6lnb3JpZSc7CiRsYW5nWydlZGl0X2ZpbHRlciddID0gJ0ZpbHRyZSBkXCdhZmZpY2hhZ2UnOwokbGFuZ1snZW1haWx0ZXh0J10gPSAnQ291cnJpZWwnOwokbGFuZ1snZW1haWxfdGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIGNvdXJyaWVsJzsKJGxhbmdbJ2Vycm9yX2FkZHJlc3NfbG9va3VwJ10gPSAnUHJvYmzDqG1lIGxvcnMgZGUgbGEgcmVjaGVyY2hlIGRlIGxcJ2FkcmVzc2UgOiAlcyc7CiRsYW5nWydlcnJvcl9hbGJ1bWZpZWxkZXhpc3RzJ10gPSAnVW4gY2hhbXAgQWxidW0gZXhpc3RlIGTDqWrDoC4gVm91cyBuZSBwb3V2ZXogZW4gdXRpbGlzZXIgcXVcJ3VuIHNldWwnOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnVW4gcHJvYmzDqG1lIGVzdCBzdXJ2ZW51IGF2ZWMgbGUgZmljaGllciBpbXBvcnTDqSc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ0xlIE5vbSBkZSBsXCdlbnRyZXByaXNlIGVzdCBpbmNvcnJlY3QnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICdVbmUgZW50cmVwcmlzZSBwb3J0YW50IGTDqWrDoCBjZSBub20gZXN0IGRhbnMgbGEgYmFzZSBkZSBkb25uw6llLic7CiRsYW5nWydlcnJvcl9jb21wYW55bm90ZGVsZXRlZCddID0gJ0NldCBpdGVtIG5cJ2EgcGFzIHB1IMOqdHJlIHN1cHByaW3DqS4uLiBwZXV0LcOqdHJlIHF1XCd1biBhdXRyZSBtb2R1bGUgZMOpcGVuZCBkZSBjZXR0ZSBkb25uw6llJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZXBhcmVudCddID0gJ0NldCDDqWzDqW1lbnQgbmUgcGV1dCBwYXMgw6p0cmUgc3VwcHJpbcOpIGNhciBpbCBjb21wb3J0ZSBkZXMgw6lsw6ltZW50cyBlbmZhbnRzJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1ZvdXMgZGV2ZXogc3DDqWNpZmllciB1biBkw6lsaW1pdGV1ciBkZSBjaGFtcHMnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlJ10gPSAnR8OpbsOpcmVyIHVuZSBlcnJldXIgKG1haXMgY29udGludWVyKSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY2F0ZWdvcnknXSA9ICdVbiBjYXTDqWdvcmllIMOpcG9ueW1lIGV4aXN0ZSBkw6lqw6AnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdVbmUgZW50cmVwcmlzZSBwb3J0YW50IGNlIG5vbSAoJXMpIGV4aXN0ZSBkw6lqw6AnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2ZpZWxkZGVmJ10gPSAnVW4gY2hhbXAgYXZlYyBjZSBub20gZXhpc3RlIGTDqWrDoCc7CiRsYW5nWydlcnJvcl9mZXVfbG9nZ2VkaW4nXSA9ICdQb3VyIHV0aWxpc2VyIGNldHRlIGZvbmN0aW9uLCB2b3VzIGRldmV6IMOqdHJlIGNvbm5lY3TDqShlKSBkZXB1aXMgZnJvbnRlbmQgZHUgc2l0ZSc7CiRsYW5nWydlcnJvcl9nZW5lcmF0ZXVybCddID0gJ1VuIHByb2Jsw6htZSBlc3Qgc3VydmVudSBsb3JzIGRlIGxhIGfDqW7DqXJhdGlvbiBkZSBsXCdVUkwnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnVW5lIG1hdXZhaXNlIHZhbGV1ciBhIMOpdMOpIHRyb3V2w6llIGRhbnMgbGUgY2hhbXAgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0X3Vua25vd25ydWxlJ10gPSAnUsOoZ2xlIGluY29ubnVlIMOgIGxhIGxpZ25lICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfcGFyYW0nXSA9ICdMYSB2YWxldXIgc3DDqWNpZmnDqWUgJXMgZXN0IGludmFsaWRlJzsKJGxhbmdbJ2Vycm9yX2ttbGltcG9ydF9ub2FkZHJlc3MnXSA9ICdBdWN1bmUgYWRyZXNzZSB0cm91dsOpZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHZhbHVlIHdhcyBtaXNzaW5nIGZyb20gdGhlIGZvcm0gaW5wdXQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VwbG9hZCddID0gJ0F1Y3VuIGZpY2hpZXIgblwnYSDDqXTDqSBpbXBvcnTDqSc7CiRsYW5nWydlcnJvcl9ub2NvbXBhbmllc21hdGNoJ10gPSAnRMOpc29sw6ksIGF1Y3VuZSBlbnRyZXByaXNlIG5lIGNvcnJlc3BvbmQgYXV4IGNyaXTDqHJlcyBkZSByZWNoZXJjaGUnOwokbGFuZ1snZXJyb3Jfbm9kcm9wZG93bm9wdGlvbnMnXSA9ICdBdWN1bmUgb3B0aW9uIGRlIG1lbnUgZMOpcm91bGFudCBmb3VybmllJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTmUgcGV1dCBwYXMgdHJvdXZlciBsZSBtb2R1bGUgRnJvbnRFbmRVc2Vycyc7CiRsYW5nWydlcnJvcl9ub2ZpbHRlcm1hdGNoZXMnXSA9ICdBdWN1bmUgZW50cmVwcmlzZSBuZSBjb3JyZXNwb25kIGF1eCBjcml0w6hyZXMgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ2Vycm9yX25vbGVuZ3RoJ10gPSAnQXVjdW5lIGxvbmd1ZXVyIG1heGltdW0gZm91cm5pZSc7CiRsYW5nWydlcnJvcl9wcmVmaXhfbXNnJ10gPSAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgw6AgbGEgbGlnbmUgOiAlZDogJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkJ10gPSAnRXJyZXVyIGRcJ3VwbG9hZCBkdSBmaWNoaWVyJzsKJGxhbmdbJ2Vycl9pbnZhbGlkdW5pdHMnXSA9ICdMXCd1bml0w6kgc3DDqWNpZmnDqWUgZXN0IGludmFsaWRlLiBWYWxldXJzIHZhbGlkZXMgOiBtaSxtaWxlLG1pbGVzLGttLGsnOwokbGFuZ1snZXhwaXJlcyddID0gJ0V4cGlyZSc7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnQgYXUgZm9ybWF0IENTVic7CiRsYW5nWydleHRyYTEnXSA9ICdJbmZvIGV4dHJhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnSW5mbyBleHRyYSAyJzsKJGxhbmdbJ2V4dHJhMyddID0gJ0luZm8gZXh0cmEgMyc7CiRsYW5nWydmYXgnXSA9ICdUw6lsw6ljb3BpZSc7CiRsYW5nWydmYXh0ZXh0J10gPSAnVMOpbMOpY29waWUnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEw6lmaW5pdGlvbiBkdSBDaGFtcCc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRMOpZmluaXRpb24gZHUgQ2hhbXAgQWpvdXTDqSc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdEw6lmaW5pdGlvbiBkdSBDaGFtcCBTdXBwcmltw6knOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRMOpZmluaXRpb24gZGVzIENoYW1wcyc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEw6lmaW5pdGlvbiBkdSBDaGFtcCc7CiRsYW5nWydmaWVsZGRlZnVwZGF0ZWQnXSA9ICdEw6lmaW5pdGlvbiBkdSBDaGFtcCBNaXNlIMOgIGpvdXInOwokbGFuZ1snZmllbGRzJ10gPSAnQ2hhbXBzJzsKJGxhbmdbJ2ZpZWxkX2FjdGl2aXR5J10gPSAnQWN0aXZpdMOpcyB7Q0dHb29nbGVNYXBzKSc7CiRsYW5nWydmaWVsZF9hbGJ1bSddID0gJ0FsYnVtIChncm91cGUgZFwnaW1hZ2VzKSc7CiRsYW5nWydmaWVsZF9jaGVja2JveCddID0gJ0Jvw650ZSDDoCBjb2NoZXInOwokbGFuZ1snZmllbGRfZHJvcGRvd24nXSA9ICdNZW51IGTDqXJvdWxhbnQnOwokbGFuZ1snZmllbGRfZmlsZSddID0gJ0ZpY2hpZXInOwokbGFuZ1snZmllbGRfaWNvbiddID0gJ0ljw7RuZSAoQ0dHb29nbGVNYXBzKSc7CiRsYW5nWydmaWVsZF9tdWx0aXNlbGVjdCddID0gJ1PDqWxlY3Rpb24gbXVsdGlwbGUnOwokbGFuZ1snZmllbGRfdGV4dGFyZWEnXSA9ICdab25lIGRlIFRleHRlJzsKJGxhbmdbJ2ZpZWxkX3RleHRib3gnXSA9ICdCb2l0ZSBkZSBUZXh0ZSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0cmUnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnR2FiYXJpdCBkXCfDqWRpdGlvbiBkXCd1bmUgZW50cmVwcmlzZSc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdHYWJhcml0IGRlIGxcJ0VudHJlcHJpc2UgTWlzIMOgIGpvdXInOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0Fqb3V0ZXIvTW9kaWZpZXIgbGUgR2FiYXJpdCBkZSBGb3JtdWxhaXJlIGRlIGxhIHBhcnRpZSBwdWJsaXF1ZSAoRnJvbnRFbmQpJzsKJGxhbmdbJ2dldHVybCddID0gJ0NhbGN1bGVyIGxcJ1VSTCc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaWdub3JlJ10gPSAnSWdub3Jlcic7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdJbWFnZSZuYnNwOyc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnRlciBDU1YnOwokbGFuZ1snaW1wb3J0X2ZpbGVuYW1lJ10gPSAnU8OpbGVjdGlvbm5lciBsZSBmaWNoaWVyIENTVic7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1wb3J0ZXIgdW4gZmljaGllciBLTUwnOwokbGFuZ1snaW5mb19kcmFnX2Ryb3AnXSA9ICdBdmVjIGxhIHBsdXBhcnQgZGVzIG5hdmlnYXRldXJzIG1vZGVybmVzICjDoCBsXCdleGNlcHRpb24gZFwnSUUpLCB2b3VzIHBvdXZleiBnbGlzc2VyIHBsdXNpZXVycyBmaWNoaWVycyBkYW5zIGxhIHpvbmUgZGUgZMOpcMO0dC4gSWxzIHNlcm9udCBhdXRvbWF0aXF1ZW1lbnQgZW52b3nDqXMgZXQgYWpvdXTDqXMgw6AgbFwnYWxidW0gcGhvdG9zJzsKJGxhbmdbJ2luZm9fZHJvcGRvd25fb3B0aW9ucyddID0gJ1Nww6ljaWZpZSBsZXMgb3B0aW9ucyBwb3VyIGxlIG1lbnUgZMOpcm91bGFudC4gVW5lIGxpZ25lIHBhciBlbnRyw6llLiBTw6lwYXJlciBsZXMgY2xlZnMgZGVzIHZhbGV1cnMgYXZlYyBsZSAiPSIuIEV4IDogY2xlZj12YWxldXInOwokbGFuZ1snaW5mb19ub2ZpZWxkcyddID0gJ0F1Y3VuIGNoYW1wIG5cJ2VzdCBkw6lmaW5pJzsKJGxhbmdbJ2luZm9fcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdTaSB1bmUgYWRyZXNzZSBkZSBzaXRlIGVzdCBzcMOpY2lmacOpZSwgZXQgcXVcJ2VsbGUgbmUgY29tbWVuY2UgcGFzIHBhciBodHRwLCBodHRwcywgZnRwLi4uIGh0dHA6Ly8gc2VyYSBham91dMOpIGxvcnMgZGUgbGEgc2F1dmVnYXJkZSc7CiRsYW5nWydpbmZvX3VzZXJlZGl0J10gPSAnU2kgYWN0aXbDqSwgc2V1bHMgbGVzIGFkbWlucyBwZXV2ZW50IMOpZGl0ZXIgY2UgY2hhbXAgcG91ciBjaGFxdWUgZW50csOpZSc7CiRsYW5nWydpbmZvX3VzZXJ2aWV3J10gPSAnU2kgYWN0aXbDqSwgdG91cyBsZXMgdXRpbGlzYXRldXJzIHBldXZlbnQgdm9pciBjZSBjaGFtcC4gU2kgZMOpc2FjdGl2w6ksIHNldWxzIGxcJ2FkbWluIGV0IGxlIHByb3ByacOpdGFpcmUgcGV1dmVudCBsZSB2b2lyJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGJsX2JhY2snXSA9ICdSZXRvdXInOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnUHLDqWbDqXJlbmNlcyc7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdMb2dvwqAnOwokbGFuZ1snbG9va3VwJ10gPSAnUmVjaGVyY2hlciBsZXMgY29vcmRvbm7DqWVzJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ0xvbmdldXIgTWF4JzsKJGxhbmdbJ21heGxlbmd0aHRleHQnXSA9ICdMb25nZXVyIE1heCc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTG9uZ2V1ciBNYXgnOwokbGFuZ1snbW9kaWZpZWQnXSA9ICdNb2RpZmnDqSc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEZXJuacOocmUgbW9kaWZpY2F0aW9uIGxlJzsKJGxhbmdbJ21zZ19idWxrZGVsJ10gPSAnJWQgZW50cmVwcmlzZXMgc3VwcHJpbcOpZXMnOwokbGFuZ1snbXNnX2NhdGVnb3J5c2F2ZWQnXSA9ICdDYXTDqWdvcmllIGVucmVnaXN0csOpZSc7CiRsYW5nWydtc2dfY29tcGFueWNvcGllZCddID0gJ0NvbXBhZ25pZSBjb3Bpw6llLCB2ZXVpbGxleiDDqWRpdGVyIGxlcyBkw6l0YWlscyBkXCdlbnJlZ2lzdHJlbWVudCBwb3VyIGxhIG5vdXZlbGxlIGNvbXBhZ25pZSc7CiRsYW5nWydtc2dfaW1wb3J0X2NvbXBsZXRlJ10gPSAnT3DDqXJhdGlvbiBkXCdpbXBvcnRhdGlvbiByw6lhbGlzw6llIGF2ZWMgc3VjY8Oocyc7CiRsYW5nWydtc2dfc2V0dGluZ3NfY2hhbmdlZCddID0gJ1BhcmFtw6h0cmVzIG1vZGlmacOpcyc7CiRsYW5nWyduYW1lJ10gPSAnTm9tJzsKJGxhbmdbJ25hbWV0ZXh0J10gPSAnTm9tJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnVm91cyBkZXZleiBhdm9pciBsYSBwZXJtaXNzaW9uIFwnJXNcJyBwb3VyIGVmZmVjdHVlciBjZXR0ZSBhY3Rpb24uJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIGZvcm11bGFpcmUgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL01vZGlmaWVyIHVuIGdhYmFyaXQgZGUgZm9ybXVsYWlyZSByZWNoZXJjaGUnOwokbGFuZ1snbmV3c2VhcmNoX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOb24nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnQXVjdW4gTm9tIGRcJ0VudHJlcHJpc2UgZm91cm5pJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnQXVjdW4gTm9tIGZvdXJuaSc7CiRsYW5nWydub25lJ10gPSAnQXVjdW4nOwokbGFuZ1snbm90YW51bWJlciddID0gJ0NlIG5cJ2VzdCBwYXMgdW4gbm9tYnJlJzsKJGxhbmdbJ29mJ10gPSAnRGUnOwokbGFuZ1snb3JnYW5pemF0aW9uJ10gPSAnT3JnYW5pc2F0aW9uJzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ1JlbXBsYWNlcic7CiRsYW5nWydvd25lciddID0gJ1Byb3ByacOpdGFpcmUnOwokbGFuZ1sncGFnZWxpbWl0J10gPSAnRW50cmVwcmlzZXMgcGFyIHBhZ2UnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnRGV0ZXJtaW5lIGxlIGNvbXBvcnRlbWVudCBwcmltYWlyZSBkZSBjZSBtb2R1bGUuIExlcyB2YWxldXJzIHBvc3NpYmxlcyBzb250IDoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBBZmZpY2hlIGxhIGxpc3RlIGRlcyBjYXTDqWdvcmllcy4gTGVzIHV0aWxpc2F0ZXVycyBwZXV2ZW50IHBhc3NlciBhdSBtb2RlIFNvbW1haXJlIHB1aXMgYXUgbW9kZSBEw6l0YWlsLjwvbGk+DQogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLS0gQWZmaWNoZSBsZXMgZW50cmVwcmlzZXMgZW4gbW9kZSBTb21tYWlyZS48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBBZmZpY2hlIGxlcyBpbmZvcm1hdGlvbnMgRMOpdGFpbGzDqWVzIGRcJ3VuZSBlbnRyZXByaXNlIChtb2RlIETDqXRhaWwpLjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIEFmZmljaGUgdW4gZm9ybXVsYWlyZSBwZXJtZXR0YW50IGRlIG1ldHRyZSDDoCBqb3VyIGxlcyBpbmZvcm1hdGlvbnMgZFwndW5lIGVudHJlcHJpc2UuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnTG9yc3F1XCd1dGlsaXPDqSBhdmVjIGxlIG1vZGUgU29tbWFpcmUgPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW3DqHRyZSwgcXVpIGRvaXQgY29ycmVzcG9uZHJlIGF1IG5vbSBkXCd1bmUgY2F0w6lnb3JpZSBleGlzdGFudGUsIHNlcmEgdXRpbGlzw6kgcG91ciBhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGVudHJlcHJpc2VzIGRlIGNldHRlIGNhdMOpZ29yaWUuIChVbmUgbGlzdGUgc8OpcGFyw6llIHBhciBkZXMgdmlyZ3VsZXMgcGV1dCDDqnRyZSBzcMOpY2lmacOpZSkuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuICBpLmU6IHtDb21wYW55RGlyZWN0b3J5IGNhdGVnb3J5PVwncmVnaW9uX25vcnRoLHJlZ2lvbl9zb3V0aFwnIGNhdGVnb3J5Mj1cJ2NhcnMsdHJ1Y2tzXCd9IHdvdWxkIHJldHVybiBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IHdlcmUgaW4gdGhlIGVpdGhlciBvZiB0aGUgcmVnaW9uIG5vcnRoIG9yIHJlZ2lvbiBzb3V0aCBjYXRlZ29yaWVzIEFORCBBTFNPIGluIGVpdGhlciBvZiB0aGUgY2FycyBvciB0cnVja3MgY2F0ZWdvcmllcyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1Nww6ljaWZpZSB1biBnYWJhcml0IChwYXIgbm9tKSDDoCB1dGlsaXNlciBsb3JzIGRlIGxcJ2FmZmljaGFnZSBkZSBsYSBWdWUgZW4gTGlzdGUgZGUgbGEgQ2F0w6lnb3JpZS4nOwokbGFuZ1sncGFyYW1fY29tcGFueWlkJ10gPSAnUmVxdWlzIHBvdXIgbGVzIG1vZGVzIGTDqXRhaWwgZXQgw6lkaXRpb24gZHUgRnJvbnRFbmQsIGNlIHBhcmFtw6h0cmUgZMOpdGVybWluZSBxdWVsIGVucmVnaXN0cmVtZW50IGRcJ2VudHJlcHJpc2UgZG9pdCDDqnRyZSDDqWRpdMOpIG91IHZ1Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnU3DDqWNpZmllIHVuIGFsaWFzIGRlIHBhZ2UgKHBhciBub20pIMOgIHV0aWxpc2VyIHBvdXIgYWZmaWNoZXIgbGUgZMOpdGFpbCBkXCd1biBlbnJlZ2lzdHJlbWVudC4gPHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2UgcGFyYW3DqHRyZSBuXCdlc3QgcGFzIGNvbXBhdGlibGUgYXZlYyBsZXMgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnU3DDqWNpZmllIHVuIGdhYmFyaXQgKHBhciBub20pIMOgIHV0aWxpc2VyIGxvcnMgZGUgbFwnYWZmaWNoYWdlIGRlIGxhIHZ1ZSBkZSBEw6l0YWlsLiAgPHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2UgcGFyYW3DqHRyZSBuXCdlc3QgcGFzIGNvbXBhdGlibGUgYXZlYyBsZXMgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3DDqWNpZmllIHVuIGdhYmFyaXQgKHBhciBub20pIMOgIHV0aWxpc2VyIGxvcnMgZGUgbFwnYWZmaWNoYWdlIGR1IGZvcm11bGFpcmUgZFwnw6lkaXRpb24gZFwnZW50cmVwcmlzZSBzdXIgbGUgRnJvbnRFbmQuJzsKJGxhbmdbJ3BhcmFtX2hpZXInXSA9ICdBcHBsaWNhYmxlIHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFuZCA8ZW0+aGllcmxpc3Q8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGhpZXJhcmNoeSBuYW1lIG9mIGNvbXBhbmllcyB0byBkaXNwbGF5LiAgSW4gdGhlIGRlZmF1bHQgYWN0aW9uLCBXaWxkY2FyZHMgYXJlIGFjY2VwdGVkLCBpLmU6ICIqc29tZWhpZXJhcmNoeW5hbWUqIi4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSwgYW5kIDxlbT5zZWFyY2g8L2VtPiBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2V0aGVyIHRoZSByZXN1bHRpbmcgZGF0YSBzaG91bGQgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrLCBvciBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSJhKiInOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnV2hlbiB1c2VkIHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCBvciB0aGUgPGVtPnNlYXJjaDwvZW0+IG1vZGUsIHRoaXMgd2lsbCBsaW1pdCB0aGUgcmVzdWx0cyB0byBhIHNwZWNpZmllZCBudW1iZXIuJzsKJGxhbmdbJ3BhcmFtX3JhZGl1cyddID0gJ1Nww6ljaWZpZXogbGUgcmF5b24gKGVuIG1pbGVzKSBwb3VyIGxhIHJlY2hlcmNoZSBwYXIgcmF5b24uIERvaXQgw6p0cmUgdXRpbGlzw6kgZW4gY29uam9uY3Rpb24gYXZlYyBsZXMgcGFyYW3DqHRyZXMgbGF0aXR1ZGUvbG9uZ2l0dWRlLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBtb2RlLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlLic7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJsZSBzZXVsZW1lbnQgw6AgbFwnYWN0aW9uIFwnY2F0ZWdvcnlsaXN0XCcsIHNpIGNlIHBhcmFtw6h0cmUgZXN0IHNww6ljaWZpw6ksIHRvdXRlcyBsZXMgY2F0w6lnb3JpZXMgc2Vyb250IGFmZmljaMOpZXMsIG3Dqm1lIGNlbGxlcyBzYW5zIGVudHJlcHJpc2UuJzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgc2V1bGVtZW50IGVuIG1vZGUgU29tbWFpcmUsIGNlIHBhcmFtw6h0cmUgZMOpdGVybWluZSBsZSB0cmkgcG91ciBsXCdhZmZpY2hhZ2UgZGVzIGVudHJlcHJpc2VzLiBWYWxldXJzIHBvc3NpYmxlcyA6DQo8dWw+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPiAtLSBOb20gZGUgbFwnZW50cmVwcmlzZTwvbGk+DQogIDxsaT5waG9uZSAtLSBUw6lsw6lwaG9uZTwvbGk+DQogIDxsaT5mYXggLS0gVMOpbMOpY29waWU8L2xpPg0KICA8bGk+ZW1haWwgLS0gQ291cnJpZWw8L2xpPg0KICA8bGk+d2Vic2l0ZSAtLSBBZHJlc3NlIGR1IHNpdGUgaW50ZXJuZXQ8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBEYXRlIGRlIGNyw6lhdGlvbjwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBEYXRlIGRlIG1vZGlmaWNhdGlvbjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZpZSBsXCdvcmRyZSBkZSB0cmkgZGVzIGNoYW1wcyBkYW5zIGxhIHZ1ZSBTb21tYWlyZS4gVmFsZXVycyBwb3NzaWJsZXMgOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gT3JkcmUgQXNjZW5kYW50PC9saT4NCiAgPGxpPmRlc2MgLS0gT3JkcmUgRGVzY2VuZGFudDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdTcGVjaWZpZSB1biBnYWJhcml0IChwYXIgbm9tKSDDoCB1dGlsaXNlciBwb3VyIGFmZmljaGVyIGxhIHZ1ZSBTb21tYWlyZS4gPHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2UgcGFyYW3DqHRyZSBuXCdlc3QgcGFzIGNvbXBhdGlibGUgYXZlYyBsZXMgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3Bvc3RhbF9jb2RlJ10gPSAnQ29kZSBQb3N0YWwnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdMZSBtb2R1bGUgXCdBbm51YWlyZSBkXCdlbnRyZXByaXNlXCcgYSDDqXTDqSBpbnN0YWxsw6kuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdMZSBtb2R1bGUgXCdBbm51YWlyZSBkXCdlbnRyZXByaXNlXCcgYSDDqXTDqSBkw6lzaW5zdGFsbMOpLiBUb3V0ZXMgbGVzIGVudHJlcHJpc2VzIG9udCDDqXTDqSBlZmZhY8OpZXMuJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHLDqWbDqXJlbmNlcyc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBkw6lzaW5zdGFsbGVyIGNlIG1vZHVsZSA/IExhIGTDqXNpbnN0YWxsYXRpb24gZWZmYWNlcmEgdG91dGVzIGxlcyBlbnRyZXByaXNlcyBjcsOpZXMgZXQgbGV1cnMgaW5mb3JtYXRpb25zIGFzc29jacOpZXMuJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9tcHRfYWRkY29tcGFueSddID0gJ0Fqb3V0IGRcJ3VuZSBub3V2ZWxsZSBlbnRyZXByaXNlJzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdBam91dC9FZGl0aW9uIGRcJ3VuZSBkw6lmaW5pdGlvbiBkZSBjaGFtcCc7CiRsYW5nWydwcm9tcHRfYWxsb3dkdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdBdXRvcmlzZXIgbGVzIG5vbXMgZFwnZW50cmVwcmlzZSBlbiBkb3VibGUgPyc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcmllc19pbXBvcnRlZCddID0gJ0NhdMOpZ29yaWVzIGltcG9ydMOpZXMnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5Y29sdW1uJ10gPSAnQ29sb25uZSBkZXMgY2F0w6lnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NoZWNrX2R1cGxpY2F0ZXMnXSA9ICdSZWNoZXJjaGVyIGRlcyBub21zIGRlIGNvbXBhZ25pZSBlbiBkb3VibG9uID8nOwokbGFuZ1sncHJvbXB0X2NvbXBhbmllc19pbXBvcnRlZCddID0gJ0VudHJlcHJpc2VzIGltcG9ydMOpZXMnOwokbGFuZ1sncHJvbXB0X2RlbGltZXRlciddID0gJ0TDqWxpbWl0YXRldXIgZGUgY2hhbXAnOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdMYSBwYWdlIHBhciBkw6lmYXV0IHN1ciBsYXF1ZWxsZSBsYSByZWRpcmVjdGlvbiBzZXJhIHBhcmFtw6l0csOpZSBlbiBtb2RlIETDqXRhaWwnOwokbGFuZ1sncHJvbXB0X2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdPcHRpb25zIGR1IG1lbnUgZMOpcm91bGFudCc7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdFZGl0aW9uIGRlIGxcJ2VudHJlcHJpc2UnOwokbGFuZ1sncHJvbXB0X2VkaXRvcjInXSA9ICdVdGlsaXNlciBsZSBub3V2ZWwgw6lkaXRldXIgc3VyIGxlIHNpdGUnOwokbGFuZ1sncHJvbXB0X2VtYWlsX2lzaHRtbCddID0gJ0NvdXJyaWVsIGF1IGZvcm1hdCBIVE1MJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9zdWJqZWN0J10gPSAnU3VqZXQgZHUgY291cnJpZWwnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSBjb3VycmllbCc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRXJyZXVycyc7CiRsYW5nWydwcm9tcHRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMgZGUgZmljaGllcnMgdmFsaWRlcyc7CiRsYW5nWydwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJ10gPSAnRMOpZmluaXRpb25zIGRlIGNoYW1wcyBpbXBvcnTDqWVzJzsKJGxhbmdbJ3Byb21wdF9nZW5lcmFsX3NldHRpbmdzJ10gPSAnUHLDqWbDqXJlbmNlcyBnw6luw6lyYWxlcyc7CiRsYW5nWydwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnXSA9ICdQb3NpdGlvbnMgaGnDqXJhcmNoaXF1ZXMgY3LDqWVzJzsKJGxhbmdbJ3Byb21wdF9pY29uJ10gPSAnSWPDtG5lJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY3N2ZmlsZSddID0gJ0ltcG9ydGVyIHVuIGZpY2hpZXIgQ1NWJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGRkZWZzJ10gPSAnQ3JlYXRlIG1pc3NpbmcgImFkZGl0aW9uYWwgZmllbGQiIGRlZmluaXRpb25zIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1BvcHVsYXRlICJhZGRpdGlvbmFsIGZpZWxkIiB2YWx1ZXMgb24gaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9udW1lcnJvcnMnXSA9ICdOb21icmUgZFwnZXJyZXVycyByZW5jb250csOpZXMnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xlIG5vbWJyZSBkXCdlbnJlZ2lzdHJlbWVudHMgw6AgYWZmaWNoZXIgZW4gbW9kZSBTb21tYWlyZSc7CiRsYW5nWydwcm9tcHRfcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdQcsOpZml4ZXIgbGVzIFVSTHMgZGUgc2l0ZXMgYXZlYyBodHRwOi8vJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ09yZHJlIGRlIHRyaSBwYXIgZMOpZmF1dCBlbiBtb2RlIFNvbW1haXJlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnTFwnb3JkcmUgZGUgdHJpIHBhciBkw6lmYXV0IGVuIG1vZGUgU29tbWFpcmUgPGVtPihuZSBzXCdhcHBsaXF1ZSBwYXMgc2kgbFwnb3JkcmUgZXN0IFwncmFuZG9tXCcgb3UgXCdhbMOpYXRvaXJlXCc8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdHYWJhcml0JzsKJGxhbmdbJ3Byb21wdF91c2Vfb2xkc2VhcmNoJ10gPSAnVXRpbGlzZXIgbFwnYW5jaWVubmUgZm9uY3Rpb24gZGUgcmVjaGVyY2hlIChuZSBzdXBwb3J0ZSBwYXMgbGVzIHJlcXXDqnRlcyBzdXIgbGVzIGTDqWZpbml0aW9ucyBkZSBjaGFtcHMsIGV0IG5lIGRvbm5lIHBhcyBkXCdpbmZvcm1hdGlvbnMgZGUgY2F0w6lnb3JpZXMgZGFucyBsZXMgcsOpc3VsdGF0cyknOwokbGFuZ1sncHVibGljJ10gPSAnUHVibGlxdWUnOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGnDqSc7CiRsYW5nWydyYWRpdXMnXSA9ICdSYXlvbic7CiRsYW5nWydyYW5kb20nXSA9ICdBbMOpYXRvaXJlJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSw6lvcmRvbm5lcic7CiRsYW5nWydyZW9yZGVyX21vZGUnXSA9ICdMZSBtb2RlIHBvdXIgcsOpb3Jkb25uZXIgYSDDqXTDqSBhY3RpdsOpLiBHbGlzc2V6LWTDqXBvc2V6IGxlcyBpdGVtcyBkYW5zIGxcJ29yZHJlIGTDqXNpcsOpLiBQb3VyIGFubnVsZXIgbFwnb3DDqXJhdGlvbiwgY2xpcXVlciBzdXIgImFubnVsZXIiLiBQT3VyIHN1YXZlZ2FyZGVyIGxlcyBjaGFuZ2VtZW50cywgY2xpcXVlciBzdXIgImVudm95ZXIiJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUsOpaW5pdGlhbGlzZXInOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZXN0YXVyZXIgbGVzIFBhcmFtw6h0cmVzIHBhciBkw6lmYXV0JzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdSZW1ldHRyZSBhdXggdmFsZXVycyBwYXIgZMOpZmF1dCc7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ0NldHRlIG9ww6lyYXRpb24gdmEgcsOpaW5pdGlhbGlzZXIgbGUgY29udGVudSBkdSBnYWJhcml0IGF2ZWMgY2VsdWkgcGFyIGTDqWZhdXQuIFZvdWxlei12b3VzIGNvbnRpbnVlciA/JzsKJGxhbmdbJ3JldHVybiddID0gJ1JldG91cic7CiRsYW5nWydzZWFyY2gnXSA9ICdSZWNoZXJjaGVyJzsKJGxhbmdbJ3NlYXJjaGVzJ10gPSAnUmVjaGVyY2hlcyc7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVzJ10gPSAnR2FiYXJpdCBkZSBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZSc7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snc29ydGJ5J10gPSAnVHJpZXIgcGFyJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ09yZHJlIGRlIHRyaSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXQnOwokbGFuZ1snc3VibWl0J10gPSAnRW52b3llcic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgU29tbWFpcmUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ0dhYmFyaXQgZGUgU29tbWFpcmUgTWlzIMOgIGpvdXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL01vZGlmaWVyIEdhYmFyaXQgZGUgU29tbWFpcmUnOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdSZXN0YXVyZXIgbGVzIFBhcmFtw6h0cmVzIHBhciBkw6lmYXV0JzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1TDqWzDqXBob25lJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUw6lsw6lwaG9uZSc7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR1cmUnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGTDqWZhdXQgZGUgTGlzdGUgZGUgQ2F0w6lnb3JpZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZMOpZmF1dCBkZSBEw6l0YWlsJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkw6lmYXV0IGR1IGZvcm11bGFpcmUgRnJvbnRFbmQnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEhpZXJhcmNoeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9yZXBvcnQnXSA9ICdSYXBwb3J0IGRcJ2ltcG9ydGF0aW9uIENTVic7CiRsYW5nWyd0aXRsZV9uZXdzZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdHMgZGUgcmVjaGVyY2hlIHBhciBkw6lmYXV0JzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZMOpZmF1dCBkZSBsYSBSZWNoZXJjaGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkw6lmYXV0IGR1IFNvbW1haXJlJzsKJGxhbmdbJ3VwJ10gPSAnSGF1dCc7CiRsYW5nWyd1cmxfY3JlYXRlb25jb3B5J10gPSAnQ3LDqWVyIGxlcyBVUkxzIGxvcnMgZGUgbGEgY29waWUnOwokbGFuZ1sndXJsX3JlZGlyZWN0b2xkJ10gPSAnRmFpcmUgdW5lIHJlZGlyZWN0aW9uIDMwMSB2ZXJzIGxlcyBub3V2ZWxsZXMgVVJMcyc7CiRsYW5nWyd1cmxfcmVxdWlyZWQnXSA9ICdVbmUgVVJMIGVzdCByZXF1aXNlJzsKJGxhbmdbJ3ZpZXdfd2Vic2l0ZSddID0gJ0FsbGVyIGF1IHNpdGUgd2ViJzsKJGxhbmdbJ3dlYnNpdGUnXSA9ICdTaXRlIFdlYic7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1NpdGUgV2ViJzsKJGxhbmdbJ3llcyddID0gJ091aSc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0F0dGl2byc7CiRsYW5nWydhZGRsaW5rJ10gPSAnQWdnaXVuZ2kgQ29sbGVnYW1lbnRvJzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdJbmRpcml6em8nOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdJbmRpcml6em8nOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBZ2dpdW5naSBDYXRlZ29yaWEnOwokbGFuZ1snYWRkY29tcGFueSddID0gJ0FnZ2l1bmdpIENvbXBhZ25pYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FnZ2l1bmdpIERlZmluaXppb25lIENhbXBvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaXNpYmlsZSBTb2xvIGFnbGkgQW1taW5pc3RyYXRvcmknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpZXRlIGNlcnRpIGRpIHZvbGVyZSByaW11b3ZlcmUgcXVlc3RvIGVsZW1lbnRvPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsbGEnOwokbGFuZ1snY2FudXNlcmVkaXQnXSA9ICdDYW1wbyBtb2RpZmljYWJpbGUgZGFnbGkgdXRlbnRpIGZyb250ZW5kPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0NhbXBvIHZpc2liaWxlIGFnbGkgdXRlbnRpIGZyb250ZW5kPyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcmlhIEFnZ2l1bnRhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3JpYSBBZ2dpb3JuYXRhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5naS9Nb2RpZmljYSBNb2RlbGxvIExpc3RhIENhdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIExpc3RhIENhdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdMaXN0YSBDYXRlZ29yaWUgQWdnaW9ybmF0YSc7CiRsYW5nWydjb21wYW55J10gPSAnQ29tcGFnbmlhJzsKJGxhbmdbJ2NvbXBhbnlhZGRlZCddID0gJ0NvbXBhZ25pYSBBZ2dpdW50YSc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ05vbWUgQ29tcGFnbmlhJzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnQ29tcGFnbmlhIEFnZ2lvcm5hdGEnOwokbGFuZ1snY29tcGFuaWVzJ10gPSAnQ29tcGFnbmllJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnQ29tcGFnbmlhJzsKJGxhbmdbJ2NvbXBhbnlkaXJlY3RvcnknXSA9ICdDb21wYW55IERpcmVjdG9yeSc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdFbWFpbCBwZXIgQ29udGF0dGknOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRhIGRpIGluc2VyaW1lbnRvJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIFByZWRlZmluaXRpJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBJIGNvbnRlbnV0aSBkaSBxdWVzdGUgYXJlZSBkaSB0ZXN0byBzb25vIHV0aWxpenphdGkgcGVyIGRldGVybWluYXJlIGlsIGNvbnRlbnV0byBwcmVkZWZpbml0byBkZWkgbW9kZWxsaSBxdWFuZG8gc2kgc2VsZXppb25hICZxdW90O0FnZ2l1bmdpIE1vZGVsbG8mcXVvdDsgbmVsIHBhbm5lbGxvIGRlaSBtb2RlbGxpIGNvcnJpc3BvbmRlbnRlLiBNb2RpZmljYXJlIHVuYSBkaSBxdWVzdGUgYXJlZSBkaSB0ZXN0byBub24gY29tcG9ydGVyJmFncmF2ZTsgZWZmZXR0aSBpbW1lZGlhdGkgc3VsIHZvc3RybyBzaXRvJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0VsaW1pbmEnOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdFbGltaW5hIENhdGVnb3JpYSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnRWxpbWluYSBDb21wYWduaWEnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdFbGltaW5hIERlZmluaXppb25lIENhbXBvJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEaXNjZW5kZW50ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXppb25lJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXR0YWdsaSc7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ0RldHRhZ2xpJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5naS9Nb2RpZmljYSBNb2RlbGxvIERldHRhZ2xpJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ01vZGVsbGkgRGV0dGFnbGknOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnTW9kZWxsbyBEZXR0YWdsaSBBZ2dpb3JuYXRvJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGlzYWJpbGl0YXRvJzsKJGxhbmdbJ2Rvd24nXSA9ICdHaSZ1Z3JhdmU7JzsKJGxhbmdbJ2RyYWZ0J10gPSAnQm96emEnOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ01vZGlmaWNhIGNhdGVnb3JpYSc7CiRsYW5nWydlZGl0Y29tcGFueSddID0gJ01vZGlmaWNhIENvbXBhZ25pYSc7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdNb2RpZmljYSBEZWZpbml6aW9uZSBDYW1wbyc7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFLW1haWwnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWUnXSA9ICdJbCBOb21lIGRlbGxhIENvbXBhZ25pYSBub24gJmVncmF2ZTsgdmFsaWRvJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnRXNpc3RlIGdpJmFncmF2ZTsgdW5hIENvbXBhZ25pYSBjb24gcXVlc3RvIG5vbWUgbmVsIERhdGFiYXNlJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTm9uIHJpZXNjbyBhIHRyb3ZhcmUgaWwgbW9kdWxvIEZyb250RW5kVXNlcnMnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXNwb3J0YSBDU1YnOwokbGFuZ1snZmF4J10gPSAnRmF4JzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXgnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbml6aW9uZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbml6aW9uaSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEZWZpbml6aW9uZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRGVmaW5pemlvbmUgQ2FtcG8gQWdnaXVudGEnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRGVmaW5pemlvbmUgQ2FtcG8gQWdnaW9ybmF0YSc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdEZWZpbml6aW9uZSBDYW1wbyBFbGltaW5hdGEnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdpL01vZGlmaWNhIE1vZGVsbG8gZGVsIE1vZHVsbyBJbnRlcmZhY2NpYSBVdGVudGUgJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlcyddID0gJ01vZGlmaWNhIE1vZGVsbG8gQ29tcGFnbmlhJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ01vZGlmaWNhIE1vZGVsbG8gQWdnaW9ybmF0byBDb21wYWduaWEnOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZWN1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1tYWdpbmUnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTHVuZ2hlenphIE1heCc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTHVuZ2hlenphIE1heCc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAnTHVuZ2hlenphIE1heCc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRhIFVsdGltYSBNb2RpZmljYSc7CiRsYW5nWyduYW1lJ10gPSAnTm9tZSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05vbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdQZXIgYWNjZWRlcmUgYWxsYSBmdW56aW9uZSBzZXJ2b25vIGkgcGVybWVzc2kgJiMwMzk7JXMmIzAzOTsuJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ05lc3N1biBub21lIENvbXBhZ25pYSBpbnNlcml0byc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05lc3N1biBOb21lIGluc2VyaXRvJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdOb24gJmVncmF2ZTsgdW4gbnVtZXJvJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydvZiddID0gJ0RpJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdpbmEnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnRGV0ZXJtaW5hIGlsIGNvbXBvcnRhbWVudG8gcHJpbWFyaW8gZGVsIG1vZHVsby4gSSB2YWxvcmkgcG9zc2liaWxpIHBlciBxdWVzdG8gcGFyYW1ldHJvIHNvbm86DQo8dWw+DQogIDxsaT5jYXRlZ29yeWxpc3QgLS0gVmlzdWFsaXp6YSB1bmEgbGlzdGEgZGVsbGUgY2F0ZWdvcmllLiBHbGkgdXRlbnRpIHBvc3Nvbm8gc2NvcnJlcmUgdHJhIGxhIG1vZGFsaXQmYWdyYXZlOyBzb21tYXJpbyBlIGxhIG1vZGFsaXQmYWdyYXZlOyBkZXR0YWdsaS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIFZpc3VhbGl6emEgbGUgQ29tcGFnbmllIGluIG1vZGFsaXQmYWdyYXZlOyBzb21tYXJpby48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBWaXN1YWxpenphIGluZm9ybWF6aW9uaSBkZXR0YWdsaWF0ZSBzdSB1bmEgY29tcGFnbmlhIHNwZWNpZmljYS48L2xpPg0KICA8bGk+ZmVfZWRpdCAtLSBWaXN1YWxpenphIHVuIG1vZHVsbyBjaGUgcGVybWV0dGUgbGEgbW9kaWZpY2EgZGVsbGUgaW5mb3JtYXppb25pIHN1IHVuYSBjb21wYWduaWEgc3BlY2lmaWNhLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1F1YW5kbyBxdWVzdG8gcGFyYW1ldHJvIChjaGUgZG92cmViYmUgY29ycmlzcG9uZGVyZSBhbCBub21lIGRpIHVuYSBjYXRlZ29yaWEgZXNpc3RlbnRlKSB2aWVuZSB1dGlsaXp6YXRvIG5lbGxhIG1vZGFsaXQmYWdyYXZlOyBzb21tYXJpbyA8ZW0+ZGVmYXVsdDwvZW0+LCB2ZXJyYW5ubyB2aXN1YWxpenphdGUgc29sbyBsZSBjb21wYWduaWUgcHJlc2VudGkgaW4gcXVlbGxhIGNhdGVnb3JpYS4gKHB1Jm9ncmF2ZTsgZXNzZXJlIGRhdGEgdW5hIGxpc3RhIHNlcGFyYXRhIGRhIHZpcmdvbGUpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmaWNhIHVuIE1vZGVsbG8gKGlsIG5vbWUpIGRhIHV0aWxpenphcmUgcXVhbmRvIHNpIHVzYSBsYSB2aXN0YSBsaXN0YSBkaSBjYXRlZ29yaWEuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ05lY2Vzc2FyaW8gcGVyIGxlIG1vZGFsaXQmYWdyYXZlOyBkZXR0YWdsaW8gZSBtb2RpZmljYSBpbnRlcmZhY2NpYSwgcXVlc3RvIHBhcmFtZXRybyBkZXRlcm1pbmEgcXVhbGUgcmVjb3JkIGRpIGNvbXBhZ25pYSBtb2RpZmljYXJlIG8gdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdTcGVjaWZpY2EgdW4gYWxpYXMgZGkgcGFnaW5hIChpbCBub21lKSBkYSB1dGlsaXp6YXJlIHBlciB2aXN1YWxpenphcmUgaSBkZXR0YWdsaSBkaSB1biByZWNvcmQuIDxzdHJvbmc+Tm90YTo8L3N0cm9uZz4gUXVlc3RvIHBhcmFtZXRybyBkaSB0YWcgbm9uICZlZ3JhdmU7IGNvbXBhdGliaWxlIGNvbiBpIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZmljYSB1biBtb2RlbGxvIGRhIHVzYXJlIG5lbGxhIHZpc3RhIGRldHRhZ2xpLiAgPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBRdWVzdG8gcGFyYW1ldHJvIGRpIHRhZyBub24gJmVncmF2ZTsgY29tcGF0aWJpbGUgY29uIGkgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3BlY2lmaWNhIHVuIG1vZGVsbG8gKGlsIG5vbWUpIGRhIHV0aWxpenphcmUgcXVhbmRvIHNpIHZpc3VhbGl6emEgaWwgbW9kdWxvIGRpIG1vZGlmaWNhIGludGVyZmFjY2lhIGNvbXBhZ25pYSc7CiRsYW5nWydwYXJhbV9zZWxlY3RjYXRlZ29yeSddID0gJ1NlIHF1ZXN0byBwYXJhbWV0cm8gJmVncmF2ZTsgaW1wb3N0YXRvIHZlcnImYWdyYXZlOyBnZW5lcmF0byB1biBtb2R1bG8gY2hlIHBlcm1ldHRlIGFnbGkgdXRlbnRpIGRpIGZpbHRyYXJlIGludGVyYXR0aXZhbWVudGUgaSByZWNvcmQgZGVsbGUgY29tcGFnbmllIGluIHVuYSBzaW5nb2xhIGNhdGVnb3JpYS4gUXVlc3RvIGNvbnRyYXNzZWdubyBub24gZGV2ZSBlc3NlcmUgdXRpbGl6emF0byBpbiBjb250ZW1wb3JhbmVhbWVudGUgYWwgcGFyYW1ldHJvICZxdW90O2NhdGVnb3J5JnF1b3Q7Lic7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJpbGUgc29sbyBhbGwmIzAzOTthemlvbmUgY2F0ZWdvcnlsaXN0LCBzZSBxdWVzdG8gcGFyYW1ldHJvICZlZ3JhdmU7IGNvbmZpZ3VyYXRvLCBhbGxvcmEgYW5jaGUgbGUgY2F0ZWdvcmllIGNoZSBub24gY29pbmNpZG9ubyBjb24gbGUgY29tcGFnbmllIHNhcmFubm8gdmlzdWFsaXp6YXRlIG5lbGwmIzAzOTt1c2NpdGEnOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmaWNhIGwmIzAzOTtvcmRpbmUgZGVpIGNhbXBpIGluIHZpc3RhIHNvbW1hcmlvLiBJIHZhbG9yaSBwZXJtZXNzaSBzb25vOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gT3JkaW5lIGFzY2VuZGVudGU8L2xpPg0KICA8bGk+ZGVzYyAtLSBPcmRpbmUgZGlzY2VuZGVudGU8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJpbGUgc29sbyBpbiBtb2RhbGl0JmFncmF2ZTsgc29tbWFyaW8sIHF1ZXN0byBwYXJhbWV0cm8gZGV0ZXJtaW5hIGwmIzAzOTtvcmRpbmFtZW50byBkZWxsZSBjb21wYWduaWUgdmlzdWFsaXp6YXRlLiBJIHZhbG9yaSBwb3NzaWJpbGkgc29ubzoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIGwmIzAzOTtpbmRpcml6em8gZGVsIHNpdG8gd2ViPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gbGEgZGF0YSBkaSBjcmVhemlvbmUgZGVsIHJlY29yZCBkaSBxdWVzdGEgY29tcGFnbmlhPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIExhIGRhdGEgZGkgbW9kaWZpY2EgZGVsIHJlY29yZCBkaSBxdWVzdGEgY29tcGFnbmlhPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1NwZWNpZmljYSB1biBtb2RlbGxvIChpbCBub21lKSBkYSB1dGlsaXp6YXJlIHF1YW5kbyBzaSB1c2EgbGEgdmlzdGEgc29tbWFyaW8uIDxzdHJvbmc+Tm90YTo8L3N0cm9uZz4gUXVlc3RvIHBhcmFtZXRybyBkaSB0YWcgbm9uICZlZ3JhdmU7IGNvbXBhdGliaWxlIGNvbiBpIHByZXR0eSB1cmxzLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsbyBDb21wYW55IERpcmVjdG9yeSBpbnN0YWxsYXRvIGNvcnJldHRhbWVudGUnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsbyBDb21wYW55IERpcmVjdG9yeSBkaXNpbnN0YWxsYXRvIGNvcnJldHRhbWVudGUuIFR1dHRpIGkgZGF0aSBkZWxsZSBjb21wYWduaWUgY29sbGVnYXRlIHNvbm8gc3RhdGkgY2FuY2VsbGF0aSc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXJlIGRpc2luc3RhbGxhcmUgcXVlc3RvIG1vZHVsbz8gRmFjZW5kb2xvIGVsaW1pbmVyZXRlIHBlcm1hbmVudGVtZW50ZSB0dXR0aSBpIGRhdGkgZGVsbGUgY29tcGFnbmllIGNvbGxlZ2F0aS4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnTGEgcGFnaW5hIHByZWRlZmluaXRhIGEgY3VpIHJlaW5kaXJpenphcmUgaW4gbW9kYWxpdCZhZ3JhdmU7IGRldHRhZ2xpJzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdJbCBudW1lcm8gZGkgcmVjb3JkIGRhIHZpc3VhbGl6emFyZSBpbiBtb2RhbGl0JmFncmF2ZTsgc29tbWFyaW8nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnT3JkaW5hbWVudG8gcHJlZGVmaW5pdG8gaW4gbW9kYWxpdCZhZ3JhdmU7IHNvbW1hcmlvJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnTCYjMDM5O29yZGluYW1lbnRvIHByZWRlZmluaXRvIGluIG1vZGFsaXQmYWdyYXZlOyBzb21tYXJpbyA8ZW0+KG5vbiBhcHBsaWNhYmlsZSBxdWFuZG8gbCYjMDM5O29yZGluYW1lbnRvICZlZ3JhdmU7ICYjMDM5O3JhbmRvbSYjMDM5Oyk8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvJzsKJGxhbmdbJ3B1YmxpYyddID0gJ1B1YmJsaWNvJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1YmJsaWNhdG8nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbnplJzsKJGxhbmdbJ3JhbmRvbSddID0gJ0Nhc3VhbGUnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZWltcG9zdGEgaSB2YWxvcmkgcHJlZGVmaW5pdGknOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdRdWVzdGEgb3BlcmF6aW9uZSByaXBvcnRlciZhZ3JhdmU7IGkgY29udGVudXRpIGRlbCBtb2RlbGxvIGFpIHZhbG9yaSBwcmVkZWZpbml0aSBkaSBzaXN0ZW1hLiAgU2lldGUgY2VydGkgZGkgdm9sZXJlIHByb2NlZGVyZT8nOwokbGFuZ1snc2VhcmNoJ10gPSAnQ2VyY2EnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdG8nOwokbGFuZ1snc3VibWl0J10gPSAnSW52aWEnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5naS9Nb2RpZmljYSBNb2RlbGxvIFNvbW1hcmlvJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxvIFNvbW1hcmlvJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdNb2RlbGxvIFNvbW1hcmlvIEFnZ2lvcm5hdG8nOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdSZWltcG9zdGEgYWkgdmFsb3JpIHByZWRlZmluaXRpJzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVmb25vJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9ubyc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnTW9kZWxsbyBMaXN0YSBDYXRlZ29yaWEgcHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gRGV0dGFnbGkgUHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gTW9kdWxvIEludGVyZmFjY2lhIFByZWRlZmluaXRvJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnTW9kZWxsbyBTb21tYXJpbyBQcmVkZWZpbml0byc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwbyc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1RpcG8nOwokbGFuZ1sndXAnXSA9ICdTdSc7CiRsYW5nWyd3ZWJzaXRlJ10gPSAnU2l0byB3ZWInOwokbGFuZ1snd2Vic2l0ZXRleHQnXSA9ICdTaXRvIHdlYic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMjE0MTAyMDguNTYyLjkyLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywyNTcwNC4wLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTgwNzE1MTY0MC4xMTgyOTYwNDU2LjEyMjE5NDEyNjguMTIyMjExMTk0Ni41NjQnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2JzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTGVnZyB0aWwga2F0ZWdvcmknOwokbGFuZ1snYWRkY29tcGFueSddID0gJ0xlZ2cgdGlsIEZpcm1hJzsKJGxhbmdbJ2FkZGVkaXRfaGllcmFyY2h5J10gPSAnTGVnZyB0aWwgZWxlbHIgcmVkaWdlciBoaWVyYXJraSBlbmhldCc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0xlZ2cgdGlsIGZlbHRkZWZpbmlzam9uJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdMZWdnIHRpbCBoaWVyYXJraSc7CiRsYW5nWydhZGRsaW5rJ10gPSAnTGVnZyB0aWwgbGVua2UnOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzc2UnOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdBZHJlc3NlJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeSddID0gJ0xlZ2cgdGlsIGthdGVnb3JpJzsKJGxhbmdbJ2FkZF9lZGl0X2NhdGVnb3J5J10gPSAnTGVnZyB0aWwvcmVkaWdlciBrYXRlZ29yaSc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnU3lubGlnIGt1biBmb3IgQWRtaW4nOwokbGFuZ1snYW55J10gPSAnQWxsZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSB2aWwgc2xldHRlIGRldHRlPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnZW5kZSc7CiRsYW5nWydiYWRuYW1lZ2l2ZW4nXSA9ICdOYXZuZXQgZXIgdWd5bGRpZyAodmFubGlndmlzIGLDuHIgbmF2bmVuZSB2w6ZyZSB1cmwgdmVubmxpZ2UpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0thbiBmb3JudGVuZGJydWtlcmUgcmVkaWdlcmUgZGV0dGUgZmVsdGV0Pyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0thbiBmb3JudGVuZGJydWtlcmUgc2UgZGV0dGUgZmVsdGV0Pyc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllcic7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdLYXRlZ29yaSBsYWd0IHRpbCc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdLYXRlZ29yaSBzbGV0dGV0JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpbGlzdGUgbWFsJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0thdGVnb3JpbGlzdGUgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGthdGVnb3JpIExpc3RlbWFsJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0thdGVnb3JpJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0thdGVnb3JpIG9wcGRhdGVydCc7CiRsYW5nWydjYXRfZXh0cmFpbmZvJ10gPSAnS2F0ZWdvcmkgZWtzdHJhIGluZm8nOwokbGFuZ1snY2hlY2snXSA9ICdUZXN0JzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0Zpcm1hJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdGaXJtYSc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdGaXJtYSBsYWd0IHRpbCc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0Zpcm1hIHNsZXR0ZXQnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0Zpcm1ha2F0YWxvZyc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0Zpcm1hbmF2bic7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ0Zpcm1hJzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnRmlybWEgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2NvbmZpcm1fYXV0b2NyZWF0ZV91cmwnXSA9ICdPcHByZXR0IGF1dG9tYXRpc2sgVVJMZXIgZm9yIGVrc2lzdGVyZW5kZSBwb3N0ZXIgc29tIGlra2UgaGFyIFVSTCc7CiRsYW5nWydjb25maXJtX2VkaXRfYWxidW0nXSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCByZWRpZ2VyZSBhbGJ1bWV0LiBFbmh2ZXIgZW5kcmluZyBhdiBmaXJtYSBlZ2Vuc2thcGVuZSB2aWwgaWtrZSBibGkgbGFncmV0ISc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdLb250YWt0LWVwb3N0JzsKJGxhbmdbJ2Nvb3JkaW5hdGVzJ10gPSAnS29vcmRpbmF0ZXInOwokbGFuZ1snY29weSddID0gJ0tvcGllcic7CiRsYW5nWydjcmVhdGVkJ10gPSAnT3BwcmV0dGV0JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0byBvcHByZXR0ZXQnOwokbGFuZ1snY3JlYXRldXJscyddID0gJ09wcHJldHQgVVJMZXInOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ07DpXbDpnJlbmRlIHZlcmRpJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTdGFuZGFyZCBtYWwnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk1lcms6PC9zdHJvbmc+IElubmhvbGRldCBpIGRpc3NlIHRla3N0b21yw6VkZW5lIGJlbnl0dGVzIGZvciDDpSBiZXN0ZW1tZSBzdGFuZGFyZCBpbm5ob2xkIGkgbWFsZW5lIG7DpXIgZHUga2xpa2tlciAiTGVnZyB0aWwgbWFsIiBpIGRlbiBha3R1ZWxsZSBtYWwgZmxpa2VuLiBSZWRpZ2VyaW5nIGF2IGVuIGF2IGRpc3NlIHRla3N0b21yw6VkZW5lIHZpbCBpa2tlIGhhIG5vZW4gdW1pZGRlbGJhciBlZmZla3QgcMOlIGRpbiBuZXR0c2lkZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldHQnOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdTbGV0dCBrYXRlZ29yaSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnU2xldHQgZmlybWEnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdTbGV0dCBmZWx0ZGVmaW5pc2pvbic7CiRsYW5nWydkZWxpbWl0ZXInXSA9ICdGZWx0c2tpbGxldGVnbic7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnU3lua2VuZGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdCZXNrcml2ZWxzZSc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWxqZXInOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEZXRhbGplcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGptYWxlcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdEZXRhbGptYWwgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGRldGFsam1hbCc7CiRsYW5nWydkaXNhYmxlJ10gPSAnRGVha3RpdmVyJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnSW5ha3RpdmVydCc7CiRsYW5nWydkb3duJ10gPSAnTmVkJzsKJGxhbmdbJ2RyYWZ0J10gPSAnS2xhZGQnOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ0RyYSBnbyBzbGlwcCBvcHBsYXN0aW5nJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ1NsaXBwIGZpbGVyIGhlcic7CiRsYW5nWydkcm9wX2hlcmVfdG9fZGVsZXRlJ10gPSAnw4Ugc2xpcHBlIGZpbGVyIGhlciB2aWwgZmplcm5lIGRlbSBmcmEgZ2FsbGVyaWV0JzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ1JFZGlnZXIga2F0ZWdvcmknOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICdSZWRpZ2VyIGZpcm1hJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ1JlZGlnZXIgZmVsdGRlZmluaXNqb24nOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ1JlZGlnZXIgRm90byBBbGJ1bSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnUmVkaWdlciBrYXRlZ29yaSc7CiRsYW5nWydlZGl0X2ZpbHRlciddID0gJ1JlZGlnZXIgZmlsdGVyJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0Vwb3N0JzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1wb3N0IG1hbCc7CiRsYW5nWydlcnJvcl9hZGRyZXNzX2xvb2t1cCddID0gJ1Byb2JsZW0gbWVkIMOlIHNsw6Ugb3BwIGFkcmVzc2U6ICVzJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdFdCBhbGJ1bWZlbHQgZWtzaXN0ZXJlciBhbGxlcmVkZS4gS3VuIGV0IGVyIHRpbGxhdHQnOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnRXQgcHJvYmxlbSBvcHBzdG9kIG1lZCBkZW4gb3BwbGFzdGVkZSBmaWxlbic7CiRsYW5nWydlcnJvcl9iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBvcHByZXR0ZWxzZSBvcHBkYWdldCAlZCBmZWlsJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5Y29sdW1uX25vdGZvdW5kJ10gPSAnS2F0ZWdvcmkga29sb25uZSAlcyBpa2tlIGZ1bm5ldCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ0Zpcm1hbmF2bmV0IGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICdFdCBmaXJtYSBtZWQgZGV0IG5hdm5ldCBmaW5uZXMgYWxsZXJlZGUgaSBkYXRhYmFzZW4nOwokbGFuZ1snZXJyb3JfY29tcGFueW5vdGRlbGV0ZWQnXSA9ICdFbmhldGVuIGt1bm5lIGlra2Ugc2xldHRlcy4uLiBrYW5za2plIGVuIGFubmVuIG1vZHVsIGVyIGF2aGVuZ2lnIGF2IGRhdGFlbic7CiRsYW5nWydlcnJvcl9kZWxldGVwYXJlbnQnXSA9ICdEZXR0ZSBlbGVtZW50ZXQga2FuIGlra2Ugc2xldHRlcyBmb3JkaSBkZXQgaGFyIGJhcm4tZWxlbWVudGVyJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ0R1IG3DpSBzcGVzaWZpc2VyZSBldCBmZWx0c2tpbGxldGVnbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGUnXSA9ICdHZW5lcmVyIGZlaWwgKG1lbiBmb3J0c2V0dCknOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnRW4ga2F0ZWdvcmkgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY29tcGFueSddID0gJ0V0IGZpcm1hIG1lZCBkZXQgbmF2bmV0IGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2ZpZWxkZGVmJ10gPSAnRXQgZmVsdCBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9oaWVyYXJjaHknXSA9ICdIaWVyYXJraSBtZWQgZnVsbHQgbmF2biAiJXMiIGVrc2lzdGVyZXIgYWxsZXJlZGUuJzsKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ0ZvciDDpSBiZW55dHRlIGRlbm5lIGZ1bmtzam9uZW4gbcOlIGR1IHbDpnJlIGlubmxvZ2dldCBww6UgbmV0dHN0ZWRldHMgZnJvbnRlbmQnOwokbGFuZ1snZXJyb3JfZmllbGRkZWZfbm90Zm91bmQnXSA9ICdGZWx0IGRlZmluaXNqb24gbWVkIGlkICVkIGJsZSBpa2tlIGZ1bm5ldCc7CiRsYW5nWydlcnJvcl9nZW5lcmF0ZXVybCddID0gJ0V0IHByb2JsZW0gb3Bwc3RvZCB2ZWQgZ2VuZXJpbmcgYXYgZW4gVVJMJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9iYWRsaW5lJ10gPSAnVWd5bGRpZyBwb3N0IGZ1bm5ldCBww6UgbGluamUgJWQuIEVyIGRldCBlbiByZWdlbCBzb20gbWFuZ2xlcj8nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnRW4gdWd5bGRpZyByZWdlbCBibGUgZnVubmV0IGZvciBlbiBhdiBmZWx0ZW5lJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVydWxlJ10gPSAnRHVwbGlrYXRlICVzIHJlZ2xlciBww6UgbGluamUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpa2F0ZSByZWdlbGlkZW50aWZpa2F0b3JlciBww6UgbGluamUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X25vaGFuZGxlciddID0gJ0TDpXJsaWcgcG9zdCBmdW5uZXQgcMOlIGxpbmplICVkLiBLdW5uZSBpa2tlIGZpbm5lIGVuIGJlaGFuZGxlciBmb3IgcG9zdGVyIGF2IHR5cGVuICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF91bmtub3ducm93J10gPSAnRm9yc3TDpXIgaWtrZSBodm9yZGFuIGxpbmplICVkIG1lZCByZWdlbGlkZW50aWZpa2F0b3JlbiAlcyBza2FsIGJlaGFuZGxlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJ1bGUnXSA9ICdVa2plbnQgcmVnZWwgcMOlIGxpbmplICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0VuIGRhdGFiYXNlZmVpbCBvcHBzdG9kIHVuZGVyIGZvcnPDuGsgcMOlIMOlIHNldHRlIGlubiBrYXRlZ29yaWRlZmluaXNqb25lbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0VuIGRhdGFiYXNlZmVpbCBvcHBzdG9kIHVuZGVyIGZvcnPDuGsgcMOlIMOlIHNldHRlIGlubiBmaXJtYWRlZmluaXNqb25lbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfZmllbGRkZWYnXSA9ICdFbiBkYXRhYmFzZWZlaWwgb3Bwc3RvZCB1bmRlciBmb3Jzw7hrIHDDpSDDpSBzZXR0ZSBpbm4gZmVsdGRlZmluaXNqb25lbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfaGllcmFyY2h5J10gPSAnRmVpbCB2ZWQgb3BwcmV0dGVsc2UgYXYgaGllcmFya2kgIiVzIic7CiRsYW5nWydlcnJvcl9pbnZhbGlkbmFtZSddID0gJ0Zpcm1hbmF2bmV0IGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVybCddID0gJ1VSTC1hZHJlc3NlbiBhbmdpdHQgKGVsbGVyIGthbGt1bGVydCkgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3BhcmFtJ10gPSAnVmVyZGllbiBzcGVzaWZpc2VydCBmb3IgJXMgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnSW5nZW4gYWRyZXNzZSBibGUgZnVubmV0IGkgb3BwZsO4cmluZ2VuJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VuIHDDpWtyZXZkIHBhcmFtZXRlciBtYW5nbGV0IGZyYSBza2plbWF1dGZ5bGxpbmdlbic7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnSW5nZW4gZmlsIGJsZSBsYXN0ZXQgb3BwJzsKJGxhbmdbJ2Vycm9yX25vY29tcGFuaWVzbWF0Y2gnXSA9ICdCZWtsYWdlciwgaW5nZW4gZmlybWFlciBwYXNzZXQgZGluZSBrcml0ZXJpZXIuJzsKJGxhbmdbJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJ10gPSAnSW5nZW4gbmVkdHJla2tzb3Bzam9uZXIgZXIgb3BwZ2l0dCc7CiRsYW5nWydlcnJvcl9ub2ZldSddID0gJ0t1bm5lIGlra2UgZmlubmUgRnJvbnRFbmRVc2VyLW1vZHVsZW4nOwokbGFuZ1snZXJyb3Jfbm9maWx0ZXJtYXRjaGVzJ10gPSAnSW5nZW4gZGF0YWJhc2Ugb3BwZsO4cmluZ2VyIG1hdGNoZXQga3JpdGVyaWVuZSBzb20gZXIgc3Blc2lmaXNlcnQnOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdJbmdlbiBtYWtzaW1hbGxlbmdkZSBmb3IgZmVsdCBvcHBnaXR0JzsKJGxhbmdbJ2Vycm9yX25vb3duZXInXSA9ICdPd25lciBpZCBlciBpa2tlIHNhdHQgZWxsZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ0luZ2VuIHBvc3RlciBzb20gc2Ftc3ZhcnRlIG1lZCBrcml0ZXJpZW5lIGRpbmUgYmxlIGZ1bm5ldCBpIGRhdGFiYXNlbic7CiRsYW5nWydlcnJvcl9ub3Nwb3RzbGVmdCddID0gJ0R1IGhhciBpbmdlbiBnamVudsOmcmVuZGUgZmlybWEtw6VwbmluZ2VyJzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ0luZ2VudGluZyB2YWxndCc7CiRsYW5nWydlcnJvcl9wb3N0Y29kZV9sb29rdXAnXSA9ICdLdW5uZSBpa2tlIGZpbm5lIG5vZW4gZGF0YSBmb3IgcG9zdG51bW1lciAlcyc7CiRsYW5nWydlcnJvcl9wcmVmaXhfbXNnJ10gPSAnRW4gZmVpbCBvcHBzdG9kIHDDpSBsaW5qZSAlZDogJXMnOwokbGFuZ1snZXJyb3JfdXBkYXRlX2NvbXBhbnknXSA9ICdFbiBmZWlsIG9wcHN0b2QgdmVkIG9wcGRhdGVyaW5nIGF2IGZpcm1hcG9zdGVuJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0ZpbG9wcGxhc3RpbmcgZmVpbGV0JzsKJGxhbmdbJ2Vycm9yX3VybG5vdGVtcHR5J10gPSAnVVJMLWZlbHRldCBlciBpa2tlIHRvbXQgLi4uIGthbiBpa2tlIG92ZXJza3JpdmUgZW4gZWtzaXN0ZXJlbmRlIHZlcmRpJzsKJGxhbmdbJ2Vycm9yX3VybHJlcXVpcmVkJ10gPSAnRW4gVVJMIGVyIHDDpWtyZXZkJzsKJGxhbmdbJ2Vycl9pbnZhbGlkdW5pdHMnXSA9ICdFbmhldGVyIHNwZXNpZmlzZXJ0IGVyIHVneWxkaWdlLiBHeWxkaWdlIHZlcmRpZXIgZXI6IG1pLG1pbGUsbWlsZXMsa20sayc7CiRsYW5nWydldmVudGRlc2MtT25BZGRDb21wYW55J10gPSAnRW4gaGVuZGVsc2Ugc2VuZHQgZXR0ZXIgZXQgbnl0dCBmaXJtYSBlciBsYWd0IHRpbCBkYXRhYmFzZW4nOwokbGFuZ1snZXZlbnRkZXNjLU9uRGVsZXRlQ29tcGFueSddID0gJ0VuIGhlbmRlbHNlIHNlbmR0IGbDuHIgZW4gZmlybWFvcHBmw7hyaW5nIHNsZXR0ZXMnOwokbGFuZ1snZXZlbnRkZXNjLU9uRWRpdENvbXBhbnknXSA9ICdFbiBoZW5kZWxzZSBzZW5kdCBldHRlciBlbiBla3Npc3RlcmVuZGUgZmlybWFvcHBmw7hyaW5nIGVyIG9wcGRhdGVydCBpIGRhdGFiYXNlbic7CiRsYW5nWydleHBpcmVzJ10gPSAnVXRsw7hwZXInOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRWtzcG9ydGVyIENTVic7CiRsYW5nWydleHRyYTEnXSA9ICdFa3N0cmFkYXRhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRWtzdHJhZGF0YSAyJzsKJGxhbmdbJ2V4dHJhMyddID0gJ0Vrc3RyYWRhdGEgMyc7CiRsYW5nWydmYXgnXSA9ICdGYWtzJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYWtzJzsKJGxhbmdbJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0J10gPSAnRW4gZW5kcmluZyBoYXIgZnVubmV0IHN0ZWQgZm9yIGVuIENvbXBhbnlEaXJlY3RvcnkgcG9zdCc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0ZlbHRkZWZpbmlzam9uJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdGZWx0ZGVmaW5pc2pvbiBsYWd0IHRpbCc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdGZWx0ZGVmaW5pc2pvbiBzbGV0dGV0JzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZlbHRkZWZpbmlzam9uZXInOwokbGFuZ1snZmllbGRkZWZ0ZXh0J10gPSAnRmVsdGRlZmluaXNqb24nOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRmVsdGRlZmluaXNqb24gb3BwZGF0ZXJ0JzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0ZlbHRlcic7CiRsYW5nWydmaWVsZF9hY3Rpdml0eSddID0gJ0FrdGl2aXRldGVyIChDR1NvY2lhbEFwcCknOwokbGFuZ1snZmllbGRfYWxidW0nXSA9ICdBbGJ1bSAoZ3J1cHBlIG1lZCBiaWxkZXIpJzsKJGxhbmdbJ2ZpZWxkX2NoZWNrYm94J10gPSAnQXZrcnlzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX2Ryb3Bkb3duJ10gPSAnTmVkdHJla2snOwokbGFuZ1snZmllbGRfZmlsZSddID0gJ0ZpbCc7CiRsYW5nWydmaWVsZF9pY29uJ10gPSAnSWtvbiAoQ0dHb29nbGVNYXBzKSc7CiRsYW5nWydmaWVsZF9pbWFnZSddID0gJ0JpbGRlJzsKJGxhbmdbJ2ZpZWxkX211bHRpc2VsZWN0J10gPSAnRmxlcnZhbGcnOwokbGFuZ1snZmllbGRfdGV4dGFyZWEnXSA9ICdUZWtzdG9tcsOlZGUnOwokbGFuZ1snZmllbGRfdGV4dGJveCddID0gJ1Rla3N0aW5uc2tyaXZpbmcnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRhbGJ1bXRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIFJlZGlnZXJpbmdzIEFsYnVtIE1hbGVyJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBlbiBGcm9udGVuZCBSZWRpZ2VyaW5ncyBBbGJ1bSBNYWwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnUmVkaWdlciBmaXJtYW1hbGVyJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ1JlZGlnZXIgZmlybWFtYWwgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIEZyb250ZW5kc2tqZW1hIG1hbCc7CiRsYW5nWydmcm9udGVuZGltcG9ydHRlbXBsYXRlJ10gPSAnRnJvbnRlbmQgQ1NWIGltcG9ydG1hbCc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaXN0ZW1hbGVyJzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbCBlbGxlciByZWRpZ2VyIGVuIEZyb250ZW5kIExpc3RlbWFsJzsKJGxhbmdbJ2dhbGxlcnl0ZW1wbGF0ZXMnXSA9ICdHYWxsZXJpbWFsZXInOwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGVuIEdhbGxlcmltYWwnOwokbGFuZ1snZ2V0dXJsJ10gPSAnS2Fsa3VsZXIgVVJMJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmtpJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJraWxpc3RlbWFsZXInOwokbGFuZ1snaGllcmxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBoaWVyYXJraWxpc3RlbWFsJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaWdub3JlJ10gPSAnSWdub3Jlcic7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxkZSc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnRlciBDU1YnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0ZXIgS01MJzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ1ZlbGcgQ1NWLWZpbCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1wb3J0ZXIgS01MLWZpbCc7CiRsYW5nWydpbmZvX2FkbWlud3lzaXd5ZyddID0gJ0h2aXMgZGVha3RpdmVydCwgV1lTSVdZRyB2aWwgaWtrZSB2w6ZyZSBha3RpdmVydCBmb3IgcmVkaWdlcmluZyBhdiBzZWxza2Fwc2luZm9ybWFzam9uLCB1YXZoZW5naWcgYXYgaHZpbGtlbiBzb20gaGVsc3QgYnJ1a2VyIGVsbGVyIGdsb2JhbGUgaW5uc3RpbGxpbmcuJzsKJGxhbmdbJ2luZm9fYWxidW1fZmllbGR0eXBlJ10gPSAnQmFyZSBldHQgYWxidW0gZmVsdHR5cGUgZXIgdGlsbGF0dC4gVGlsYWx0ZXIgb3BwbGFzdGluZyBhdiBmbGVyZSBiaWxkZXIgc29tIHNrYWwga255dHRlcyB0aWwgZW4gYmVzdGVtdCBkYXRhYmFzZSBvcHBmw7hyaW5nLiBCaWxkZXIga2FuIGJhcmUgbGFzdGVzIG9wcCB0aWwgZXQgYWxidW1mZWx0IGZvciBlbiBla3Npc3RlcmVuZGUgb3BwZsO4cmluZyAobsOlciBkdSByZWRpZ2VyZXIgZW4gb3BwZsO4cmluZykgb2cgaWtrZSBuw6VyIGVuIGbDuHJzdCBvcHByZXR0ZXIgZW4gbnkgb3BwZsO4cmluZy4nOwokbGFuZ1snaW5mb19iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBvcHByZXR0ZWxzZSBvcHBkYXRlcnRlICVkIHBvc3Rlcic7CiRsYW5nWydpbmZvX2NhdGVnb3J5Y29sdW1uJ10gPSAnQW5naSBuYXZuZXQgcMOlIGVuIGtvbG9ubmUgc29tIGFuZ2lyIMOpbiBlbGxlciBmbGVyZSBrYXRlZ29yaW5hdm4gKGF0c2tpbHQgbWVkIGV0IGtvbW1hIDxlbT4oLCk8L2VtPiBzb20ga2FuIGJydWtlcyB0aWwgw6UgcmFza3QgZnlsbGUga2F0ZWdvcmllbmUgZm9yIGh2ZXIgcG9zdC4nOwokbGFuZ1snaW5mb19jcmVhdGVfdXJsJ10gPSAnSHZpcyBpbmdlbiBVUkwgZXIgYW5naXR0IGZvciBlbiBwb3N0LCB2aWwgZGV0dGUgYWx0ZXJuYXRpdmV0IHNpa3JlIGF0IGRlIGJsaXIgZ2VuZXJlcnQuIEh2aXMgIktyZXYgVVJMZXIiLWlubnN0aWxsaW5nZW4gZXIgc2F0dCwgdmlsIFVSTGVyIHNpa3JlcyB1YXZoZW5naWcgYXYgZGVubmUgaW5uc3RpbGxpbmdlbic7CiRsYW5nWydpbmZvX2NzdmZpbGUnXSA9ICdEZXQgZXIgbXVsaWcgw6UgaW1wb3J0ZXJlIGZpcm1haW5mb3JtYXNqb24gZGlyZWt0ZSBmcmEgZW4gQVNDSUktZmlsLic7CiRsYW5nWydpbmZvX2RyYWdfZHJvcCddID0gJ01lZCBkZSBmbGVzdGUgbW9kZXJuZSBuZXR0bGVzZXJlICh1bm50YXR0IElFKSBrYW4gZHUgZHJhIGZsZXJlIGZpbGVyIGlubiBpIHNsaXBwc29uZW4gaGVyLiBEZSB2aWwgYmxpIGF1dG9tYXRpc2sgbGFzdGV0IG9wcCBvZyBsYWd0IHRpbCBhbGJ1bWV0JzsKJGxhbmdbJ2luZm9fZHJvcGRvd25fb3B0aW9ucyddID0gJ1NwZXNpZmlzZXIgb3Bzam9uZW5lIGZvciBuZWR0cmVra3Nrb250cm9sbGVyZW4uICpFbiBsaW5qZSBwZXIgaW5ubGVnZy4gQWRza2lsbCBuw7hrbGVyIGZyYSB2ZXJkaWVyIG1lZCAgPSAgdGVnbi4gRi5la3MuIG7DuGtrZWw9dmVyZGknOwokbGFuZ1snaW5mb19lZGl0b3IyJ10gPSAnQnJ1ayBkZW4gbnllIGZyb250ZW5kIGVkaXRvciA8ZW0+KHJlZmVyZXJ0IHRpbCBzb20gZmVlZGl0Mik8L2VtPiBNZXJrOiBEZW4gZ2FtbGUgcmVkaWdlcmVyZW4gdmlsIGJsaSBmamVybmV0IGkgQ29tcGFueURpcmVjdG9yeSAxLDE1IGVsbGVyIHV0b3Zlci4nOwokbGFuZ1snaW5mb19leHRlbnNpb25zJ10gPSAnR2kgZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBvdmVyIGZpbHR5cGVyIChzbcOlIGVsbGVyIHN0b3JlIGJva3N0YXZlcikuIEh2aXMgaWtrZSBhbmdpdHQsIHZpbCBzdGFuZGFyZHZlcmRpZXIgaSBDR0V4dGVuc2lvbnMgYnJ1a2VzLic7CiRsYW5nWydpbmZvX2ZpbHRlcl9hZGRyZXNzJ10gPSAnU3Blc2lmaXNlcmUgZW4gYWRyZXNzZXN0cmVuZyDDpSBzw7hrZSBww6UuIEpva2VydGVnbiBlciB0aWxsYXR0LiBmLmVrcy46ICIqVGV4YXMqIi4gRGV0dGUgZmVsdGV0IGVyIGlra2UgZsO4bHNvbXQgZm9yIHN0b3JlIG9nIHNtw6UgYm9rc3RhdmVyJzsKJGxhbmdbJ2luZm9fZmlsdGVyX2hpZXJhcmNoeSddID0gJ0FuZ2kgZW4gaGllcmFya2lzdHJlbmcgKGVsbGVyIGVuIGRlbCkgw6Ugc8O4a2UgcMOlLiBKb2tlcnRlZ24gZXIgdGlsbGF0dCwgb2cga2FuIG9tZmF0dGUgYmFybiBoaWVyYXJraWVyLiBmLmVrcy46ICJCaWxlcioiLiBEZXR0ZSBmZWx0ZXQgZXIgaWtrZSBmw7hsc29tdCBmb3Igc3RvcmUgb2cgc23DpSBib2tzdGF2ZXInOwokbGFuZ1snaW5mb19maWx0ZXJfbmFtZSddID0gJ1NwZXNpZmlzZXJlIGV0IGZpcm1hbmF2biAoZWxsZXIgZGVsdmlzIGZpcm1hbmF2biDDpSBzw7hrZSBww6UuIEpva2VydGVnbiBlciB0aWxsYXR0IGYuZWtzLjouLiAiKnJlc3RhcmF1bnQiIERldHRlIGZlbHRldCBlciBpa2tlIGbDuGxzb210IGZvciBzdG9yZSBvZyBzbcOlIGJva3N0YXZlcic7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnSW5nZW4gZWdlbmRlZmluZXJ0ZSBmZWx0IGVyIGRlZmluZXJ0JzsKJGxhbmdbJ2luZm9fcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdIdmlzIGVuIG5ldHRzaWRlIHZlcmRpIGVyIHNwZXNpZmlzZXJ0LCBvZyBpa2tlIGJlZ3lubmVyIG1lZCBlbiB1cmxwcmVmaXggKGh0dHAsIGh0dHBzLCBmdHApIC4uIGRhIHZpbCBodHRwOi8vIHNldHRlcyBpbm4gZm9yYW4gdmVyZGllbiB2ZWQgbGFncmluZyc7CiRsYW5nWydpbmZvX3VybF9hdXRvY3JlYXRlJ10gPSAnTsOlciBkdSBsZWdnZXIgdGlsIGVsbGVyIHJlZGlnZXJlciBlbiBmaXJtYSBkZWZpbmlzam9uLCBodmlzIFVSTC1mZWx0ZXQgZXIgYmxhbmt0IHZpbCBkZXR0ZSBibGkgb3BwcmV0dGV0IGF1dG9tYXRpc2sgZnJhIHNlbHNrYXBldHMgbmF2bi4gRGV0dGUgZ2plbGRlciBpa2tlIGZyb250ZW5kIHJlZGlnZXJpbmcnOwokbGFuZ1snaW5mb191cmxfY3JlYXRlb25jb3B5J10gPSAnTsOlciBkdSBrb3BpZXJlciBmaXJtYWVyLCBiw7hyIGVuIG5ldHRhZHJlc3NlIG9wcHJldHRlcyBmb3IgZGVzdGluYXNqb25lbnMgcG9zdGVuLiBEZXR0ZSBnamVsZGVyIGJhcmUgaHZpcyBVUkxlciBpa2tlIGVyIHDDpWtyZXZkLic7CiRsYW5nWydpbmZvX3VybF9yZWRpcmVjdG9sZCddID0gJ1DDpSBlbiBpbm5rb21tZW5kZSBmb3Jlc3DDuHJzZWwgZm9yIGV0IGZpcm1hIG1lZCBkZSBnYW1sZSBuZXR0YWRyZXNzZW3DuG5zdHJlLCB1dGbDuHIgZW4gMzAxLXZpZGVyZWtvYmxpbmcgdGlsIGRlbiBueWUgbmV0dGFkcmVzc2VuLiBEZXR0ZSB2aWwgYmFyZSBmdW5nZXJlIGZvciBvcHBmw7hyaW5nZXIgc29tIGhhciBVUkwgb3BwcmV0dGV0Lic7CiRsYW5nWydpbmZvX3VybF9yZXF1aXJlZCddID0gJ1NrYWwgVVJMIGZlbHRldCB2w6ZyZSBww6VrcmV2ZCDDpSB2w6ZyZSBneWxkaWcgbsOlciBlbiBsZWdnZXIgdGlsIGVsbGVyIHJlZGlnZXJlciBldCBmaXJtYT8nOwokbGFuZ1snaW5mb191c2VyZWRpdCddID0gJ0h2aXMgYWt0aXZlcnQsIGthbiBiYXJlIGFkbWluaXN0cmF0b3JlciByZWRpZ2VyZSBkZXR0ZSBmZWx0ZXQgZm9yIGh2ZXIgb3BwZsO4cmluZy4gRGV0dGUgZXIgbnl0dGlnIGh2aXMgdGlsbGF0dCBmcm9udGVuZCBsZWdnZSB0aWwvcmVkaWdlcmluZyBhdiBmaXJtYXBvc3RlciBmb3Igw6UgZ2kgZmVsdCBzb20gZWllci9yZWRha3TDuHIgaWtrZSBrYW4gcmVkaWdlcmUuJzsKJGxhbmdbJ2luZm9fdXNlcnZpZXcnXSA9ICdIdmlzIGFrdGl2ZXJ0LCBrYW4gYWxsZSBicnVrZXJlIHNlIGRldHRlIGZlbHRldCBmb3IgaHZlciBvcHBmw7hyaW5nLiBIdmlzIGRldCBlciBkZWFrdGl2ZXJ0IGJhcmUgZWllcmVuIG9nIGFkbWluaXN0cmF0b3JlciBrYW4gc2UgZmVsdGV0JzsKJGxhbmdbJ2ludXNlJ10gPSAnaSBicnVrJzsKJGxhbmdbJ2xhYmVsX2luY2x1ZGVjaGlsZHJlbiddID0gJ0lua2x1ZGVyIGJhcm4gSGllcmFya2llcic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhdGl0dWRlJ10gPSAnQnJlZGVncmFkKExhdGl0dWRlKSc7CiRsYW5nWydsYmxfYmFjayddID0gJ1RpbGJha2UnOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnSW5uc3RpbGxpbmdlcic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnTWFsZXInOwokbGFuZ1snbG9uZ2l0dWRlJ10gPSAnTGVuZ2RlZ3JhZChMb25naXR1ZGUpJzsKJGxhbmdbJ2xvb2t1cCddID0gJ1Nsw6Ugb3BwIGtvb3JkaW5hdGVuZSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYWtzIGxlbmdkZSc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAnTWFrcyBsZW5nZGUnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ01ha3MgbGVuZ2RlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRW4gbW9kdWwgYXYga2F0YWxvZ3R5cGVuIGZvciBiZWRyaWZ0ZXIuIFRpbGFsdGVyIMOlIGxlZ2dlIHRpbC9yZWRpZ2VyZS9pbXBvcnRlcmUvZWtzcG9ydGVyZSBiZWRyaWZ0c2RlZmluaXNqb25lciwgb2cgZm9yc2tqZWxsaWdlIG3DpXRlciDDpSB2aXNlIGJlZHJmc29wcGbDuHJpbmdlbmUgaW5rbHVkZXJ0IHPDuGsuIERlbm5lIG1vZHVsZW4gaW50ZWdyZXJlciBzZWcgZ29kdCBtZWQgQ0dHb29nbGVNYXBzIG1vZHVsZW4uJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnRW5kcmV0JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdG8gc2lzdCBlbmRyZXQnOwokbGFuZ1snbXNnX2J1bGtkZWwnXSA9ICclZCBmaXJtYWVyIHNsZXR0ZXQnOwokbGFuZ1snbXNnX2NhdGVnb3J5c2F2ZWQnXSA9ICdLYXRlZ29yaSBsYWdyZXQnOwokbGFuZ1snbXNnX2NvbXBhbnljb3BpZWQnXSA9ICdGaXJtYSBrb3BpZXJ0Li4uIHZlbm5saWdzdCByZWRpZ2VyIGRldGFsamVuZSBmb3IgZGVuIG55ZSBmaXJtYW9wcGbDuHJpbmdlbic7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFya2kgcG9zaXNqb24gbGFndCB0aWwnOwokbGFuZ1snbXNnX2hpZXJhcmNoeV91cGRhdGVkJ10gPSAnSGllcmFya2kgcG9zaXNqb24gb3BwZGF0ZXJ0JzsKJGxhbmdbJ21zZ19oaWVyZGVsZXRlZCddID0gJ0hpZXJhcmtpIHBvc2lzam9uIHNsZXR0ZXQnOwokbGFuZ1snbXNnX2hpZXJ1cGRhdGVkJ10gPSAnSGllcmFya2kgcG9zaXNqb24gb3BwZGF0ZXJ0JzsKJGxhbmdbJ21zZ19pbXBvcnRfY29tcGxldGUnXSA9ICdJbXBvcnQgb3BlcmFzam9uIHZlbGx5a2tldCc7CiRsYW5nWydtc2dfc2V0dGluZ3NfY2hhbmdlZCddID0gJ0luc3RpbGxpbmdlciBlbmRyZXQnOwokbGFuZ1snbXNnX3Nsb3RzdXNlZCddID0gJ0R1IGFociBiZW55dHRldCAlZCBhdiAlZCBmaXJtYS3DpXBuaW5nZXInOwokbGFuZ1snbmFtZSddID0gJ05hdm4nOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOYXZuJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgdHJlbmdlciAiJXMiIHRpbGxhdGVsc2UgZm9yIMOlOyB1dGbDuHJlIGRlbiBmdW5rc2pvbmVuLic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTw7hrZXNramVtYW1hbGVyJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9SZWRpZ2VyIGVuIHPDuGtlc2tqZW1hbWFsJzsKJGxhbmdbJ25ld3NlYXJjaF90ZW1wbGF0ZSddID0gJ1PDuGtlc2tqZW1hbWFsJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ05laSc7CiRsYW5nWydub2NvbXBhbnluYW1lZ2l2ZW4nXSA9ICdJbmdlbiBmaXJtYW5hdm4gb3BwZ2l0dCc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0luZ2VuIG5hdm4gb3BwZ2l0dCc7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snbm90YW51bWJlciddID0gJ0VyIGlra2UgZXQgbnVtbWVyJzsKJGxhbmdbJ29mJ10gPSAnYXYnOwokbGFuZ1snb3BfY2FuY2VsbGVkJ10gPSAnQXZicnV0dCc7CiRsYW5nWydvcmdhbml6YXRpb24nXSA9ICdPcmdhbmlzYXNqb24nOwokbGFuZ1snb3ZlcndyaXRlJ10gPSAnT3ZlcnNrcml2JzsKJGxhbmdbJ293bmVyJ10gPSAnRWllcic7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdFbmhldGVyIHBlciBzaWRlJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0RlZmluZXJlciBkZW4gcHJpbcOmcmUgb3BwZsO4cnNlbGVuIGZvciBtb2R1bGVuLiBNdWxpZyB2ZXJkaWVyIGZvciBkZW5uZSBwYXJhbWV0ZXIgZXI6DQo8dWw+DQogIDxsaT5jYXRlZ29yeWxpc3QgLS0gVmlzIGVuIGxpc3RlIG1lZCBrYXRlZ29pZXIuIEJydWtlcmUga2FuIGRyaWxsZSBuZWQgdGlsIHNhbW1lbmRyYWdzbW9kdXMsIG9nIHPDpSB0aWwgZGV0YWxqbW9kdXMuPC9saT4NCiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBWaXMgYmVkcmlmdGVyIGkgc2FtbWVuZHJhZ3Ntb2R1cy48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBWaXMgZGV0YWxqZXJ0IGluZm9ybWFzam9uIG9tIGVuIHNwZXNpZmlrayBiZWRyaWZ0LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LiA8ZW0gc3R5bGU9ImNvbG9yOiByZWQ7Ij4oZGVwcmVjYXRlZCk8L2VtPjwvbGk+DQogIDxsaT5mZV9lZGl0MiAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPg0KICA8bGk+ZmVfZWRpdF9hbGJ1bSAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGFsYnVtIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS4NCiAgIDxwPlRoaXMgYWN0aW9uIGlzIG5vcm1hbGx5IHRyaWdnZXJlZCBmcm9tIHRoZSBmZV9lZGl0MiBhY3Rpb24gb3IgdGhlIGZyb250ZW5kIGxpc3QgYWN0aW9uLiAgIEl0IGFjY2VwdHMgdGhlIGNvbXBhbnlpZCxjZF9mZGlkLGFuZCBvcHRpb25hbGx5IG90aGVyIHBhcmFtZXRlcnMgdG8gcGVyZm9ybSBudW1lcm91cyBhamF4IGFjdGlvbnMuICAgU2VlIHRoZSBzYW1wbGUgY29udGVudCBmb3IgdGhlIGZyb250ZW5kIGFsYnVtIHRlbXBsYXRlIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4NCiAgPC9saT4NCjxsaT5mcm9udGVuZGxpc3QgLS0gVmkgbGlzdGUgbWVkIGFsbGUgYmVkcmZ0c29wcGbDuHJpbmdlciBmb3IgZW4gYnJ1a2VyIHDDpSBmcm9udGVuZGVuLCBtZWQgdmFsZ2ZyaSBtdWxpZ2hldCB0aWwgw6UgbGVnZ2UgdGlsIGZsZXJlLjwvbGk+DQogIDxsaT5zZWFyY2ggIC0tIFZpcyBldCBza2plbWEgZm9yIMOlIHRpbGxhdGUgc8O4ayBldHRlciBzcGVzaWZpa2tlIGJlZHJpZnRlci48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBWaXMgZW4gbGlzdGUgbWVkIGhpZXJhcmtpZXIuIEJydWtlcmUga2FuIGRyaWxsZSBuZWQgdGlsIHNhbW1lbmRyYWdzbW9kdXMgb2cgc8OlIHRpbCBkZXRhbGptb2R1cy48L2xpPg0KICAgDQo8L3VsPic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eWNoaWxkcmVuJ10gPSAnR2plbGRlciBiYXJlIHRpbCA8ZW0+c3RhbmRhcmQ8L2VtPiBvcHBzdW1tZXJpbmdzbW9kdXMsIG9nIGJhcmUgbsOlciBDR1NvY2lhbEFwcCBtb2R1bGVuIGVyIGluc3RhbGxlcnQsIGtvbmZpZ3VyZXJ0LCBvZyBmeWx0IG1lZCBkYXRhLiBEZW5uZSBwYXJhbWV0ZXJlbiBmdW5nZXJlciBzYW1tZW4gbWVkIGFjdGl2aXR5aWQgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgZmlsdHJlcmluZyBhdiBmaXJtYSBodm9yIGRlIHNvbSBoYXIgYXZrcnlzc2luZyBtZWQgZGVuIGFuZ2l0dGUgKGhlbHRhbGwpIGFrdGl2aXRldCBpZCBvZyBkZXJlcyBiYXJuLWFrdGl2aXRldGVyLic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eWlkJ10gPSAnR2plbGRlciBiYXJlIHRpbCA8ZW0+c3RhbmRhcmQ8L2VtPiBvcHBzdW1tZXJpbmcgbW9kdXMsIG9nIGJhcmUgbsOlciBDR1NvY2lhbEFwcCBtb2R1bGVuIGVyIGluc3RhbGxlcnQsIGtvbmZpZ3VyZXJ0LCBvZyBmeWx0IG1lZCBkYXRhLiBEZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciBmaWx0cmVyaW5nIGF2IHNlbHNrYXBlciBtZWQgZGUgc29tIGhhciBhdmtyeXNzaW5nIG1lZCBzcGVzaWZpc2VydCAoaGVsdGFsbCkgYWt0aXZpdGV0IGlkLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTInXSA9ICdHamVsZGVyIGJhcmUgdGlsIDxlbT5zdGFuZGFyZDwvZW0+IG9wcHN1bW1lcmluZyB2aXNuaW5nLCBvZyBiYXJlIG7DpXIgPGVtPmthdGVnb3JpPC9lbT4gcGFyYW1ldGVyZW4gb2dzw6UgZXIgb3BwZ2l0dC4gRGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgw6Ugc3Blc2lmaXNlcmUgZXQgZWtzdHJhIEFOZCB1dHRyeWtrIGZvciDDpSBpbmRpa2VyZSB5dHRlcmxpZ2VyZSAoa29tbWFzZXBhcmVydCkga2F0ZWdvcmllciBzb20gcmVzdWx0YXRldCBiw7hyIHbDpnJlIGV0IG1lZGxlbSBhdi4gRHZzLjoge0NvbXBhbnlEaXJlY3Rvcnkga2F0ZWdvcnk9XCdyZWdpb25fbm9ydGgscmVnaW9uX3NvdXRoXCcgQ2F0ZWdvcnkyPVwnYmlsZXIsIGxhc3RlYmlsZXJcJ30gdmlsIHJldHVybmVyZSBiYXJlIGRlIGZpcm1hZW5lIHNvbSB2YXIgaSBlbnRlbiByZWdpb24gbm9yZCBlbGxlciByZWdpb24gc8O4ciBrYXRlZ29yaWVuZSBPRyBPR1PDhSBpIGVudGVuIGJpbGVyIGVsbGVyIGxhc3RlYmlsZXIga2F0ZWdvcmllbmUnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnkzJ10gPSAnR2plbGRlciBiYXJlIGZvciA8ZW0+c3RhbmRhcmQ8L2VtPiBvcHBzdW1tZXJpbmcgdmlzbmluZywgb2cgYmFyZSBuw6VyIDxlbT5DYXRlZ29yeTI8L2VtPiBwYXJhbWV0ZXIgb2dzw6UgZXIgbGV2ZXJ0LiBEZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciDDpSBzcGVzaWZpc2VyZSBlbmRhIGVuIGVrc3RyYSBBTkQgdXR0cnlrayBmb3Igw6UgaW5kaWtlcmUgeXR0ZXJsaWdlcmUgKGtvbW1hc2VwYXJlcnRlKSBrYXRlZ29yaWVyIHNvbSByZXN1bHRhdGV0IHNrYWwgdsOmcmUgbWVkbGVtIGF2LiBTZSBoamVscGVuIGZvciBDYXRlZ29yeTIgcGFyYW1ldGVyIGZvciBtZXIgaW5mb3JtYXNqb24nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlpZCddID0gJ07DpXIgZGVuIGJydWtlcyBpIDxlbT5zdGFuZGFyZDwvZW0+IHNhbW1lbmRyYWdzbW9kdXMsIGthbiBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlIGZpbHRyZXJpbmcgcMOlIGVuIGVua2VsdCBrYXRlZ29yaSB2ZWQgw6UgYW5naSBkZW5zIGhlbHRhbGwgaWQuIERlbm5lIHBhcmFtZXRlcmVuIGthbiBpa2tlIGJydWtlcyBtZWQga2F0ZWdvcmksY2F0ZWdvcmkyLCBlbGxlciBlbiBhbm5lbiBrYXRlZ29yaSBmaWx0cmVyaW5nIHBhcmFtZXRlcmUuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnT3BwZ2kgZW4gbWFsICh2ZWQgbmF2bikgc29tIHNrYWwgYmVueXR0ZXMgdmVkIHZpc25pbmcgYXYga2F0ZWdvcmlsaXN0ZS4nOwokbGFuZ1sncGFyYW1fY29tcGFueWlkJ10gPSAnS3JldmVzIGZvciBmcm9udGVuZCByZWRpZ2VyaW5nIG9nIGRldGFsaiBtb2R1cywgaHZvciBkZW5uZSBwYXJhbWV0ZXIgYmVzdGVtbWVyIGh2aWxrZW4gZmlybWFwb3N0IHNvbSBza2FsIHJlZGlnZXJlcyBlbGxlciB2aXNlcy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZXNpZmlzZXIgZW4gc2lkZWFsaWFzICh2ZWQgbmF2bikgw6UgYmVueXR0ZSB0aWwgw6UgdmlzZSBkZXRhbGpwb3N0ZW4uIDxzdHJvbmc+TWVyazo8L3N0cm9uZz4gRGVubmUgdGFnZ3BhcmFtZXRlcmVuIGVyIGlra2Uga29tcGF0aWJlbCBtZWQgdmFrcmUgdXJsXCdlci4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdPcHBnaSBlbiBtYWwgKHZlZCBuYXZuKSBzb20gc2thbCBiZW55dHRlcyB2ZWQgdmlzbmluZyBhdiBkZXRhbGp2aXNuaW5nIDxzdHJvbmc+TWVyazo8L3N0cm9uZz4gRGVubmUgdGFnZ3BhcmFtZXRlcmVuIGVyIGlra2Uga29tcGF0aWJlbCBtZWQgdmFrcmUgdXJsXCdlci4nOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRhbGJ1bXRlbXBsYXRlJ10gPSAnU3Blc2lmaXNlciBlbiBtYWwgKHZlZCBuYXZuKSDDpSBiZW55dHRlIHZlZCB2aXNuaW5nIGF2IHNramVtYWV0IGZvciDDpSB0aWxsYXRlIHJlZGlnZXJpbmcgYXYgZXQgYWxidW0gbWVkIGJpbGRlciBhc3Nvc2llcnQgbWVkIGV0IGZpcm1hLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ09wcGdpIGVuIG1hbCAodmVkIG5hdm4pIHNvbSBza2FsIGJlbnl0dGVzIHZlZCB2aXNuaW5nICAgYXYgZnJvbnRlbmQgZmlybWFyZWRpZ2VyaW5ncyBza2plbWEuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kbGlzdHRlbXBsYXRlJ10gPSAnR2plbGRlciBiYXJlIHRpbCA8ZW0+ZnJvbnRlbmRsaXN0PC9lbT4gaGFuZGxpbmdlbiwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciBhdCBkdSBhbmdpciBlbiBpa2tlLXN0YW5kYXJkIGZyb250ZW5kIGxpc3RlIG1hbCBzb20gc2thbCBicnVrZXMgZm9yIMOlIGdqZW5naSB1dGRhdGEnOwokbGFuZ1sncGFyYW1faGllcmxpc3R0ZW1wbGF0ZSddID0gJ1NwZXNpZmlzZXIgZW4gbWFsIChldHRlciBuYXZuKSDDpSBiZW55dHRlIG7DpXIgZW4gaGllcmFya2lsaXN0ZSBza2FsIHZpc2VzJzsKJGxhbmdbJ3BhcmFtX2lkbGlzdCddID0gJ0dqZWxkZXIgYmFyZSB0aWwgPGVtPnN0YW5kYXJkPC9lbT4gb3Bwc3VtbWVyaW5nc2hhbmRsaW5nLCBvZyBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciDDpSBhbmdpIGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgYXYgaGVsdGFsbCBmaXJtYSBJRGVyIHNvbSBza2FsIHZpc2VzLiBNZXJrLCBrdW4gcHVibGlzZXJ0ZSBmaXJtYSB2aXNlcyBtZWQgbWluZHJlIGFubmV0IGVyIHNwZXNpZmlzZXJ0IGF2IGVuIGFubmVuIHBhcmFtZXRlcic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdHamVsZGVyIGJhcmUgZm9yIDxlbT5zdGFuZGFyZDwvZW0+IHNhbW1lbmRyYWcgb2cgPGVtPnPDuGtlIDwvZW0+IG1vZHVzZW5lLCBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gYW5naSBvbSBkZSByZXN1bHRlcmVuZGUgZGF0YWVuZSBza2FsIGVyc3RhdHRlIHN0YW5kYXJkaW5uaG9sZHNibG9rayBlbGxlciBvbSBkZSBza2FsIGVyc3RhdHRlIGRlbiBvcHByaW5uZWxpZ2Uga29kZW4gKGlubGluZSkuJzsKJGxhbmdbJ3BhcmFtX2xhdCddID0gJ1NwZXNpZmlzZXIgc2VudGVyIGJyZWRkZWdyYWQga29vcmRpbmF0ZW4gZm9yIGV0IHJhZGl1cyBzw7hrLCBtw6UgYnJ1a2VzIGkgZm9yYmluZGVsc2UgbWVkIGxvbmcgb2cgcmFkaXVzIHBhcmFtZXRlcmVuZS4nOwokbGFuZ1sncGFyYW1fbG9uZyddID0gJ1NwZXNpZmlzZXIgc2VudGVyIGxlbmdkZWdyYWRlbiBrb29yZGluYXRlbiBmb3IgZXQgcmFkaXVzIHPDuGssIG3DpSBicnVrZXMgaSBmb3JiaW5kZWxzZSBtZWQgbGF0IG9nIHJhZGl1cyBwYXJhbWV0ZXJlbmUuJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdHamVsZGVyIGJhcmUgdGlsIHN0YW5kYXJkIDxlbT4oc3VtbWFyeSk8L2VtPiBoYW5kbGluZ2VuLCBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciBmaWx0cmVyaW5nIGF2IGZpcm1hZXIgZXR0ZXIgZGVyZXMgbmF2bi4gSm9rZXJ0ZWduIGVyIHRpbGxhdHQuIGYuZWtzLjogbmFtZT0iYSoiLiBJIHRpbGxlZ2cga2FuIHJlZ3Vsw6ZyZSB1dHRyeWtrIGFuZ2lzIHZlZCDDpSBwcmVmaWtzZSB2ZXJkaWVuIG1lZCA6Oi4gZi5la3MuOiBuYW1lPSI6OlswLTldLioiJzsKJGxhbmdbJ3BhcmFtX25vcHJldHR5J10gPSAnR2plbGRlciBhbGxlIHZpc25pbmdlciAobWVuIGZvcnRzYXR0IGkgdGlkbGlnIHV0dmlrbGluZykgZGVubmUgcGFyYW1ldGVyZW4gdmlsIHNsw6UgYXYgdmFra2VyIHVybCBnZW5lcmVyaW5nJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ07DpXIgZGV0IGJydWtlcyBtZWQgPGVtPnN0YW5kYXJkPC9lbT4gc2FtbWVuZHJhZywgZWxsZXIgPGVtPnPDuGtlPC9lbT4tbW9kdXMsIHZpbCBkZXR0ZSBiZWdyZW5zZSByZXN1bHRhdGVuZSB0aWwgZXQgYW5naXR0IGFudGFsbC4nOwokbGFuZ1sncGFyYW1fcG9zdGFsY2hhcnMnXSA9ICdOw6VyIGR1IGdqw7hyIGV0IHBvc3RudW1tZXIgc8O4ayB2ZWQgaGplbHAgYXYgc8O4ayBoYW5kbGluZ2VuLCBsYXIgZGV0dGUgYWx0ZXJuYXRpdmV0IGJlZ3JlbnNlIGRldCBlZmZla3RpdmUgYW50YWxsIHRlZ24gcMOlIHBvc3RudW1tZXJldCc7CiRsYW5nWydwYXJhbV9yYWRpdXMnXSA9ICdBbmdpIHJhZGl1cyAoaSBtaWxlcykgZm9yIGV0IHJhZGl1cyBzw7hrLiBNw6UgYnJ1a2VzIGkgZm9yYmluZGVsc2UgbWVkIGxhdC4gb2cgbG9uZy4gcGFyYW1ldGVyZW5lLic7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnR2plbGRlciB0aWwgPGVtPnPDuGs8L2VtPiBoYW5kbGluZ2VuLCBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciDDpSBzcGVzaWZpc2VyZSBodmlsa2VuIHNpZGUgc29tIHNrYWwgYnJ1a2VzIGZvciDDpSB2aXNlIHNhbXN2YXJlbmRlIHJlc3VsdGF0ZXIuJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGFkZHJlc3MnXSA9ICdOw6VyIGR1IGdqw7hyIGV0IHBvc3RudW1tZXIgc8O4ayB2ZWQgaGplbHAgYXYgc8O4ayBoYW5kbGluZ2VuLCBodmlzIGRldHRlIGFsdGVybmF0aXZldCBlciBha3RpdmVydCwgdmlsIGRldCBvZ3PDpSBzw7hrZXMgaSBhZHJlc3NlZmVsdGV0IGV0dGVyIGRlbiBtYXRjaGVuZGUgc3RyZW5nZW4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnR2plbGRlciBiYXJlIGZvciA8ZW0+c8O4a2U8L2VtPiBtb2R1cywgZGVubmUgcGFyYW1ldGVyZW4ga2FuIGFuZ2kgZW4gc8O4a2plc2tqZW1hIG1hbCBzb20gaWtrZSBlciBzdGFuZGFyZC4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0t1biBneWxkaWcgZm9yIGNhdGVnb3J5bGlzdCBoYW5kbGluZ2VuLCBvbSBkZW5uZSBwYXJhbWV0ZXIgZXIgc2F0dCwgZGEgdmlsIG9nc8OlIGthdGVnb3JpZXIgdXRlbiBzYW1zdmFyZW5kZSBmaXJtYSBibGkgdmlzdCBpIHJlc3VsdGF0ZXQnOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnS3VuIGd5bGRpZyBmb3Igc2FtbWVuZHJhZ3Ntb2R1cywgaHZvciBkZW5uZSBwYXJhbWV0ZXIgYXZnasO4ciBzb3J0ZXJpbmdlbiBhdiB1dGRhdGEgZmlybWFlci4gRGUgbXVsaWdlIHZlcmRpZW5lIGVyOg0KPHVsPg0KPGxpPmlkIC0tIERlbiBpbnRlcm5lIGZpcm1hIElEPC9saT4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIE5ldHRzdGVkZXRzIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIE9wcHJldHRlbHNlc2RhdG8gZm9yIGRlbm5lIGZpcm1hIHBvc3RlbjwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBFbmRyaW5nc2RhdG8gZm9yIGRlbm5lIGZpcm1hIHBvc3RlbjwvbGk+DQogIDxsaT5zdGF0dXM8L2xpPg0KICA8bGk+cmFuZG9tIC0tIFNvcnRlciBwb3N0ZW5lIHRpbGZlbGRpZy48L2xpPg0KICA8bGk+ZjpmaWVsZCBuYW1lIC0tIFNvcnRlciBldHRlciBvZmZlbnRsaWdlIGVnZW5kZWZpbmVydGUgZmVsdGVyLiBVdGRhdGEgdmlsIGJsaSBzb3J0ZXJ0IGV0dGVyIGRldCBuYXZuZ2l0dGUgZWdlbmRlZmluZXJ0ZSBmZWx0ZXQuPGJyLz4NCiAgPGxpPm1vc3RjaGVja2lucyAtLSA8ZW0+KEt1biBuw6VyIENHU29jaWFsQXBwIG1vZHVsZW4gZXJpbnN0YWxsZXJ0KTwvZW0+IFNvcnRlciB1dGRhdGEgZXR0ZXIgZmlybWEgKGxvY2F0aW9ucykgc29tIGhhciBmbGVzdCBpbm5zamVra2luZ2VyLjwvbGk+DQogIDxsaT5tb3N0ZmF2b3JpdGUgLS0gPGVtPihLdW4gbsOlciBDR1NvY2lhbEFwcCBtb2R1bGVuIGVyaW5zdGFsbGVydCk8L2VtPiBTb3J0ZXIgdXRkYXRhIGV0dGVyIGZpcm1hIChsb2NhdGlvbnMpIHNvbSBoYXIgZmxlc3QgZmF2b3RpdHRlci48L2xpPg0KICAgPHN0cm9uZz4gTWVyazogPC8gc3Ryb25nPiBEdSBtw6Uga2Fuc2tqZSBicnVrZSBzaXRhdGVyIGRlcnNvbSBmZWx0bmF2bmV0IGVyIG1lbGxvbXJvbSA8YnIvPi4NCiAgIDxzdHJvbmc+IE1lcms6IDwvc3Ryb25nPiBEZXQgZmVsdGV0IHNvbSBlciBhbmdpdHQgbcOlIG1lcmtlcyBzb20gb2ZmZW50bGlnIDwvbGk+Lg0KICAgPHN0cm9uZz4gTWVyazogPC9zdHJvbmc+IE7DpXIgZHUgYnJ1a2VyIGVnZW5kZWZpbmVydCBmZWx0IHNvcnRlcmluZywga2FuIGR1IG9nc8OlIGFuZ2kgZXQgZmxhZ2cgZXR0ZXIgZmVsdG5hdm5ldCBmb3Igw6UgdmlzZSBhdCBoZWx0YWxsL2ludGVnZXIgc29ydGVyaW5nIHNrYWwgdXRmw7hyZXMuIGkuZTogPGNvZGU+IHNvcnRieT1mOmN1c3RvbV9vcmRlcmluZzppPC8gY29kZT4gPGJyLz4NCjwvIHVsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVzaWZpc2VyIHJla2tlZsO4bGdlbiBww6Ugc29ydGVydGUgZmVsdGVyIGkgc2FtbWVuZHJhZ3N2aXNuaW5nLiBNdWxpZ2UgdmVyZGllciBlcjoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIFN0aWdlbmRlIHJla2tlZsO4bGdlPC9saT4NCiAgPGxpPmRlc2MgLS0gU3lua2VuZGUgcmVra2Vmw7hsZ2U8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnT3BwZ2kgZW4gbWFsICh2ZWQgbmF2bikgw6UgYmVueXR0ZSBuw6VyIHNhbW1lbmRyYWcgc2thbCB2aXNlcy4gIDxzdHJvbmc+TWVyazo8L3N0cm9uZz4gRGVubmUgdGFnZ3BhcmFtZXRlcmVuIGVyIGlra2Uga29tcGF0aWJlbCBtZWQgdmFrcmUgdXJsXCdlci4nOwokbGFuZ1sncGFyZW50J10gPSAnRm9yZWxkcmUnOwokbGFuZ1sncGhyYXNlJ10gPSAnRnJhc2UvdXR0cnlrayc7CiRsYW5nWydwb3N0YWxfY29kZSddID0gJ1Bvc3RudW1tZXInOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdGaXJtYWthdGFsb2cgbW9kdWxlbiBibGUgdmVsbHlra2V0IGluc3RhbGxlcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZW4gYmxlIGF2aW5zdGFsbGVydC4gQWxsIGFzc29zaWVydCBmaXJtYWRhdGEgaGFyIGJsaXR0IHNsZXR0ZXQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ0VyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIGF2aW5zdGFsbGVyZSBkZW5uZSBtb2R1bGVuPyDDhSBhdmluc3RhbGxlcmUgZGVubmUgbW9kdWxlbiB2aWwgcGVybWFuZW50IHNsZXR0ZSBhbGwgYXNzb3NpZXJ0IGZpcm1hZGF0YSBpIGRlbm5lIG1vZHVsZW4uJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9tcHRfYWRkY29tcGFueSddID0gJ0xlZ2cgdGlsIGV0IG55dHQgZmlybWEnOwokbGFuZ1sncHJvbXB0X2FkZGVkaXRmaWVsZCddID0gJ0xlZ2cgdGlsL1JlZGlnZXIgZmVsdGRlZmluaXNqb24nOwokbGFuZ1sncHJvbXB0X2FkbWlud3lzaXd5ZyddID0gJ0Jlbnl0dCBXWVNJV1lHIHJlZGlnZXJlcmVuIGZvciBmaXJtYSByZWRpZ2VyaW5nJzsKJGxhbmdbJ3Byb21wdF9hZG1pbl9lZGl0X3NldHRpbmdzJ10gPSAnQWRtaW4gcmVkaWdlcmluZyBpbnN0aWxsaW5nZXInOwokbGFuZ1sncHJvbXB0X2FsbG93ZHVwbGljYXRlY29tcGFueW5hbWVzJ10gPSAnVGlsbGF0ZSBkdXBsaWthdGUgZmlybWFuYXZuPyc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcmllc19pbXBvcnRlZCddID0gJ0thdGVnb3JpZXIgaW1wb3J0ZXJ0JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWNvbHVtbiddID0gJ0thdGVnb3JpIGtvbG9ubmUnOwokbGFuZ1sncHJvbXB0X2NoZWNrX2R1cGxpY2F0ZXMnXSA9ICdUZXN0IGZvciBkdXBsaWthdGUgZmlybWFuYXZuPyc7CiRsYW5nWydwcm9tcHRfY29sbGVjdHN0YXRzJ10gPSAnU2FtbGUgc8O4a2VzdGF0aXN0aWtrJzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdGaXJtYWVyIGltcG9ydGVydCc7CiRsYW5nWydwcm9tcHRfY29udmVydF9hZGRyZXNzJ10gPSAnS29udmVydGVyIGFkcmVzc2VyIHRpbCBrb29yZGluYXRlciAob20gaW5nZW4ga29vcmRpbmF0ZXIgZXIgdGlsc3RlZGUpJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVfdXJsJ10gPSAnT3BwcmV0dCBVUkxlciBmb3IgcG9zdGVyIHNvbSBpa2tlIGhhciBVUkxlcic7CiRsYW5nWydwcm9tcHRfZGVsaW1ldGVyJ10gPSAnRmVsdCBza2lsbGV0ZWduJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnU3RhbmRhcmRzaWRlIMOlIHJldHVybmVyZSB0aWwgaSBkZXRhbGptb2R1cy4gSHZpcyBzYXR0IHRpbCAiTm9uZSIgdmlsIHNpZGVuIHNvbSBkZXQga2FsbGVzIGZyYSBibGkgYnJ1a3QuJzsKJGxhbmdbJ3Byb21wdF9kcm9wZG93bl9vcHRpb25zJ10gPSAnTmVkdHJla2tzb3Bzam9uZXInOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnVGVzdCBmb3IgZHVwbGlrYXRlIGZpcm1hbmF2bic7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdSZWRpZ2VyIGZpcm1hJzsKJGxhbmdbJ3Byb21wdF9lZGl0b3IyJ10gPSAnQnJ1ayBueSBmcm9udGVuZCBlZGl0b3InOwokbGFuZ1sncHJvbXB0X2VtYWlsX2lzaHRtbCddID0gJ0UtcG9zdCBlciBIVE1MLWZvcm1hdCc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdCddID0gJ0UtcG9zdCBlbW5lJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZSddID0gJ0UtcG9zdCBtYWwnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0ZlaWwnOwokbGFuZ1sncHJvbXB0X2V4dGVuc2lvbnMnXSA9ICdHeWxkaW5nZSBmaWxlbmRlbHNlcic7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdLYW4gZnJvbnRlbmQtYnJ1a2VyZSBlbmRyZSBldCBmaXJtYXMgc3RhdHVzPyc7CiRsYW5nWydwcm9tcHRfZmV1X2NyZWF0ZSddID0gJ0thbiBGcm9udEVuZFVzZXJzIG9wcHJldHRlIG55ZSBwb3N0ZXI/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZGVsZXRlJ10gPSAnVGlsbGF0IGZvcnNpZGVicnVrZXJlKEZyb250ZW5kIFVzZXJzKSDDpSBzbGV0dGUgcG9zdGVyJzsKJGxhbmdbJ3Byb21wdF9mZXVfZGlzcGxheV9zZXR0aW5ncyddID0gJ0Zyb250ZW5kIHZpc25pbmdzaW5uc3RpbGxpbmdlcic7CiRsYW5nWydwcm9tcHRfZmV1X2VkaXRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBSZWRpZ2VyaW5nc2lubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbGdyb3VwJ10gPSAnQWRtaW5pc3RyYXNqb25zZ3J1cHBlIHNvbSBza2FsIG1vdHRhIHZhcnNsaW5nIGUtcG9zdGVyPyc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25hZGQnXSA9ICdTZW5kIGVuIGUtcG9zdCBuw6VyIGVuIGZyb250ZW5kYnJ1a2VyIGxlZ2dlciB0aWwgZW4gbnkgZmlybXBvc3QoQ29tcGFueURpcmVjdG9yeSknOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ1NlbmQgZW4gZS1wb3N0IG7DpXIgZW4gZnJvbnRlbmRicnVrZXIgZW5kcmVyIGVuIGVrc2lzdGVyZW5kZSBmaXJtcG9zdChDb21wYW55RGlyZWN0b3J5KSBwb3N0JzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmdyb3VwJ10gPSAnQWRtaW5ncnVwcGUgw6Ugc2VuZGUgZS1wb3N0IHRpbCc7CiRsYW5nWydwcm9tcHRfZmV1X2ltcG9ydCddID0gJ1RpbGxhdCBGcm9udGVuZFVzZXJzIMOlIGltcG9ydGVyZSBwb3N0ZXIgZnJhIENTVj8nOwokbGFuZ1sncHJvbXB0X2ZldV9uZXdfc3RhdHVzJ10gPSAnU3RhbmRhcmQgc3RhdHVzIGZvciBueWUgcG9zdGVyIG9wcHJldHRldCBmcmEgZnJvbnRlbmRlbic7CiRsYW5nWydwcm9tcHRfZmV1X251bXJlY29yZHMnXSA9ICdNYWtzaW11bSBhbnRhbGwgcHNvdGVyIHNvbSBrYW4gYXNzb3NpZXJlcyBtZWQgZW4gRkVVLWtvbnRvJzsKJGxhbmdbJ3Byb21wdF9maWVsZGRlZnNfaW1wb3J0ZWQnXSA9ICdGZWx0ZGVmaW5pc2pvbmVyIGltcG9ydGVydCc7CiRsYW5nWydwcm9tcHRfZnJvbnRlbmRfc2hvd2V4cGlyZWQnXSA9ICdWaXMgcG9zdGVyIHNvbSBlciBlaWV0IGF2IHV0bMO4cHRlIEZyb250ZW5kIGJydWtlcmUnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmVsbGUgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnXSA9ICdIaWVyYXJraXBvc2lzam9uZXIgb3BwcmV0dGV0JzsKJGxhbmdbJ3Byb21wdF9pY29uJ10gPSAnSWtvbic7CiRsYW5nWydwcm9tcHRfaWdub3JlX2FkZHJlc3MnXSA9ICdJZ25vcmVyIGFkcmVzc2VmZWx0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnlkZWZzJ10gPSAnT3BwcmV0dCBtYW5nbGVuZGUga2F0ZWdvcmllciB2ZWQgaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnl2YWxzJ10gPSAnRnlsbCBrYXRlZ29yaXZlcmRpZXIgdmVkIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NzdmZpbGUnXSA9ICdMYXN0IG9wcCBDU1YgRmlsJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGRkZWZzJ10gPSAnT3BwcmV0dCBtYW5nbGVuZGUgImFkZGl0aW9uYWwgZmllbGQiIGRlZmluaXNqb25lciB2ZWQgaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGR2YWxzJ10gPSAnRnlsbCAiYWRkaXRpb25hbCBmaWVsZCIgdmVyZGllciB2ZWQgaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5ZGVmcyddID0gJ0ltcG9ydCBoaWVyYXJraXBvc3Rlcic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeXZhbHMnXSA9ICdJbXBvcnQgaGllcmFya2l2ZXJkaWVyJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfbG9va3VwbGF0bG9uZyddID0gJ1Nsw6Ugb3BwIGxhdGl0dWRlIG9nIGxvbmdpdHVkZSB2ZXJkaWVyIG9tIGRlIG1hbmdsZXInOwokbGFuZ1sncHJvbXB0X2ltcG9ydF90ZW1wbGF0ZSddID0gJ0Rlbm5lIG1hbGVuIGJlc2tyaXZlciBldCBza2plbWEgc29tIGJydWtlcyBmb3Igw6UgdGlsbGF0ZSBhdXRvcmlzZXJ0ZSBmcm9udGVuZCBicnVrZXJlIMOlIGltcG9ydGVyZSBkYXRhIGZyYSBlbiByaWt0aWcgZm9ybWF0ZXJ0IENTVi1maWwnOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdLTUwtZmlsIMOlIGltcG9ydGVyZSc7CiRsYW5nWydwcm9tcHRfbnVtZXJyb3JzJ10gPSAnQW50YWxsIGZlaWwgZnVubmV0JzsKJGxhbmdbJ3Byb21wdF9udW1pbXBvcnRlZCddID0gJ0FudGFsbCBpbXBvcnRlcnRlIHBvc3Rlcic7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnQW50YWxsIHBvc3RlciDDpSB2aXNlIHByLiBzaWRlIGkgc2FtbWVuZHJhZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdGb3JhbnN0aWxsZSBuZXR0c3RlZHN2ZXJkaWVyIG1lZCBodHRwOi8vJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZm9yIGltcG9ydGVydCBwb3N0JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYXJkIHNvcnRlcmluZyBpIHNhbW1lbmRyYWdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmcgaSBzYW1tZW5kcmFnc21vZHVzIDxlbT4oaGFyIGluZ2VuIGZ1bmtzam9uIG7DpXIgc29ydGVyaW5nIGVyIFwndGlsZmVsZGlnKHJhbmRvbSlcJzwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ01hbCc7CiRsYW5nWydwcm9tcHRfdXNlX29sZHNlYXJjaCddID0gJ0Jlbnl0dCBnYW1tZWwgc8O4a2VoYW5kbGluZyAoc3TDuHR0ZXIgaWtrZSBzcMO4cnJpbmcgcMOlIGZlbHRkZWZpbmlzam9uZXIsIG9nIHJldHVybmVyZXIgaWtrZSBrYXRlZ29yaWluZm9ybWFzam9uIGkgcmVzdWx0YXRlbmUpJzsKJGxhbmdbJ3B1YmxpYyddID0gJ09mZmVudGxpZyc7CiRsYW5nWydwdWJsaXNoJ10gPSAnUHVibGlzZXInOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlzZXJ0JzsKJGxhbmdbJ3JhbmRvbSddID0gJ1RpbGZlbGRpZyc7CiRsYW5nWydyZW9yZGVyJ10gPSAnT21zb3J0ZXInOwokbGFuZ1sncmVvcmRlcl9tb2RlJ10gPSAnT21zb3J0ZXIgbW9kdXMgaGFyIGJsaXR0IGFrdGl2ZXJ0LiBEcmEgZWxlbWVudGVuZSB0aWwgZGVuIMO4bnNrZXQgcmVra2Vmw7hsZ2UuIEZvciDDpSBhdmJyeXRlIG9wZXJhc2pvbmVuLCBrbGlrayAiYXZicnl0Ii4gRm9yIMOlIGxhZ3JlIGVuZHJpbmdlbmUga2xpa2sgInNlbmQiJzsKJGxhbmdbJ3Jlc2V0J10gPSAnTnVsbHN0aWxsJzsKJGxhbmdbJ3Jlc2V0YWxsJ10gPSAnTnVsbHN0aWxsIGFsbGUnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdTZXR0IHRpbGJha2UgdGlsIGZhYnJpa2tpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdUaWxiYWtlc3RpbGwgdGlsIHN0YW5kYXJkaW5uc3RpbGxpbmdlbmUnOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdEZW5uZSBvcGVyYXNqb24gdmlsIHNldHRlIG1hbGVucyBpbm5ob2xkIHRpbGJha2UgdGlsIHN5c3RlbSBzdGFuZGFyZC4gRXIgZHUgc2lra2VyIHDDpSBkdSB2aWwgZm9ydHNldHRlPyc7CiRsYW5nWydyZXR1cm4nXSA9ICdUaWxiYWtlJzsKJGxhbmdbJ3NlYXJjaCddID0gJ1PDuGsnOwokbGFuZ1snc2VhcmNoZXMnXSA9ICdTw7hrJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZXMnXSA9ICdTw7hrIHNramVtYW1hbGVyJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBzw7hrZXNramVtYSBtYWwnOwokbGFuZ1snc2VhcmNoX2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ3NlYXJjaF9kYXRlJ10gPSAnRGF0byc7CiRsYW5nWydzZWFyY2hfaGllciddID0gJ0hpZXJhcmtpJzsKJGxhbmdbJ3NlYXJjaF9pcCddID0gJ0lQIGFkcmVzc2UnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnVmVsZyBlbic7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnVmVsZyBhbGxlJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRlciBldHRlcic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0ZXJpbmdzcmVra2Vmw7hsZ2UnOwokbGFuZ1snc3VibWl0J10gPSAnVXRmw7hyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTYW1tZW5kcmFnc21hbCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGV1cGRhdGVkJ10gPSAnU2FtbWVuZHJhZ3NtYWwgb3BwZGF0ZXJ0JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBzYW1tZW5kcmFnc21hbCc7CiRsYW5nWydzeXNkZWZhdWx0cyddID0gJ1RpbGJha2VzdGlsbCB0aWwgc3RhbmRhcmQnOwokbGFuZ1sndGVsZXBob25lJ10gPSAnVGVsZWZvbic7CiRsYW5nWyd0ZWxlcGhvbmV0ZXh0J10gPSAnVGVsZWZvbic7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR5cmJpbGRlJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBrYXRlZ29yaWxpc3RlIG1hbCc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgZGV0YWxqbWFsJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kYWxidW1fZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhciBGcm9udGVuZCBSZWRpZ2VyaW5ncyBBbGJ1bSBNYWwnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIEZvcm50ZW5kc2tqZW1hIG1hbCc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgRnJvbnRlbmQgTGlzdGVtYWwnOwokbGFuZ1sndGl0bGVfZ2FsbGVyeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBHYWxsZXJpbWFsJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIGhpZXJhcmtpbGlzdGVtYWwnOwokbGFuZ1sndGl0bGVfaW1wb3J0X3JlcG9ydCddID0gJ0NTViBpbXBvcnQgcmFwcG9ydCc7CiRsYW5nWyd0aXRsZV9uZXdzZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgc8O4a2VtYWwnOwokbGFuZ1sndGl0bGVfc2VhcmNoZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBzw7hrZXNramVtYSBtYWwnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBzYW1tZW5kcmFnc21hbCc7CiRsYW5nWyd1cCddID0gJ09wcCc7CiRsYW5nWyd1cGRhdGVoaWVyJ10gPSAnT3BwZGF0ZXIgaGllcmFya2kgcG9zaXNqb25lcic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYXN0IG9wcCc7CiRsYW5nWyd1cmxzJ10gPSAnVVJMZXInOwokbGFuZ1sndXJsX2F1dG9jcmVhdGUnXSA9ICdBdXRvbWF0aXNrIG9wcHJldHRlIHVuaWtlIFVSTGVyJzsKJGxhbmdbJ3VybF9jcmVhdGVvbmNvcHknXSA9ICdPcHByZXR0IFVSTGVyIHZlZCBrb3BpZXJpbmcnOwokbGFuZ1sndXJsX3JlZGlyZWN0b2xkJ10gPSAnR2rDuHIgMzAxIFJlZGlyZWN0IHRpbCBueWUgVVJMZXInOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnRW4gVVJMIGVyIHDDpWtyZXZkJzsKJGxhbmdbJ3ZpZXdfd2Vic2l0ZSddID0gJ0fDpSB0aWwgbmV0dHNpZGVuJzsKJGxhbmdbJ3dlYnNpdGUnXSA9ICdOZXR0c3RlZCc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ05ldHRzdGVkJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdNZWQgdmFsZ3RlJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMjIEEKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGllZic7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0NhdGVnb3JpZSB0b2V2b2VnZW4nOwokbGFuZ1snYWRkY29tcGFueSddID0gJ0JlZHJpamYgdG9ldm9lZ2VuJzsKJGxhbmdbJ2FkZGVkaXRfaGllcmFyY2h5J10gPSAnVG9ldm9lZ2VuL1dpanppZ2VuIHZhbiBIaWVyYXJjaHkgYXJ0aWtlbCc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUgdG9ldm9lZ2VuJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdIaWVyYXJjaGllIHRvZXZvZWdlbic7CiRsYW5nWydhZGRsaW5rJ10gPSAnTGluayB0b2V2b2VnZW4nOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXMnOwokbGFuZ1snYWRkX2VkaXRfY2F0ZWdvcnknXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gQ2F0ZWdvcmllJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdBbGxlZW4gemljaHRiYWFyIHZvb3IgYmVoZWVyZGVyJzsKJGxhbmdbJ2FueSddID0gJ0FsbGUnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkaXQgd2lsdCB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnT3Bsb3BlbmQnOwoKIyMgQgokbGFuZ1snYmFkbmFtZWdpdmVuJ10gPSAnRGV6ZSBuYWFtIGlzIG9uZ2VsZGlnIChuYW1lbiBtb2V0ZW4gVVJMLXZyaWVuZGVsaWprIHppam4pJzsKCiMjIEMKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXJlbic7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0t1bm5lbiBmcm9udGVuZCBnZWJydWlrZXJzIGRpdCB2ZWxkIGJld2Vya2VuPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0t1bm5lbiBmcm9udGVuZCBnZWJydWlrZXJzIGRpdCB2ZWxkIHppZW4/JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUmZXVtbDtuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yaWUgdG9lZ2V2b2VnZCc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXRlZ29yaWUgdmVyd2lqZGVyZCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdDYXRlZ29yaWVsaWpzdHNqYWJsb29uJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0NhdGVnb3JpZWxpanN0IGJpamdld2Vya3QnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0NhdGVnb3JpZWxpanN0c2phYmxvb24gdG9ldm9lZ2VuL2Jld2Vya2VuJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdDYXRlZ29yaWUgYmlqZ2V3ZXJrdCc7CiRsYW5nWydjaGVjayddID0gJ0NvbnRyb2xlZXInOwokbGFuZ1snY29tcGFuaWVzJ10gPSAnQmVkcmlqdmVuJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdCZWRyaWpmJzsKJGxhbmdbJ2NvbXBhbnlhZGRlZCddID0gJ0JlZHJpamYgdG9lZ2V2b2VnZCc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0JlZHJpamYgdmVyd2lqZGVyZCc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0JlZHJpamZzbmFhbSc7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ0JlZHJpamYnOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdCZWRyaWpmIGJpamdld2Vya3QnOwokbGFuZ1snY29uZmlybV9hdXRvY3JlYXRlX3VybCddID0gJ0NyZSZldW1sO2VyIGF1dG9tYXRpc2NoIFVSTCYjMDM5O3Mgdm9vciBiZXN0YWFuZGUgcmVjb3JkcyB6b25kZXIgVVJMJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdF9hbGJ1bSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkaXQgYWxidW0gd2lsdCB3aWp6aWdlbi4gQW5kZXJlIHdpanppZ2luZ2VuIGFhbiBkZSBpbnN0ZWxsaW5nZW4gd29yZGVuIG5pZXQgb3BnZXNsYWdlbiEnOwokbGFuZ1snY29udGFjdGVtYWlsJ10gPSAnQ29udGFjdCBFLW1haWwnOwokbGFuZ1snY29vcmRpbmF0ZXMnXSA9ICdDbyZvdW1sO3JkaW5hdGVuJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BpZWVyJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdHZW1hYWt0JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdG9lZ2V2b2VnZCc7CiRsYW5nWydjcmVhdGV1cmxzJ10gPSAnTWFhayBVUkwmIzAzOTtzJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdIdWlkaWdlIHdhYXJkZSc7CgojIyBECiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnU3RhbmRhYXJkc2phYmxvbmVuJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5PcG1lcmtpbmc6PC9zdHJvbmc+IERlIGluaG91ZCB2YW4gZGV6ZSB0ZWtzdHZlbGRlbiB3b3JkZW4gZ2VicnVpa3Qgb20gZGUgc3RhbmRhYXJkIGluaG91ZCB2YW4gZGUgc2phYmxvbmVuIHRlIGJlcGFsZW4gYWxzIHUgJnF1b3Q7U2phYmxvb24gdG9ldm9lZ2VuJnF1b3Q7IGtsaWt0LCBpbiBoZXQganVpc3RlIHNqYWJsb29uIHRhYmJsYWQuIEJld2Vya2VuIHZhbiBlZW4gdmFuIGRlemUgdGVrc3RlbiB6YWwgZ2VlbiBkaXJlY3QgZWZmZWN0IGhlYmJlbiBvcCB1dyB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdWZXJ3aWpkZXJlbic7CiRsYW5nWydkZWxldGVjYXRlZ29yeSddID0gJ0NhdGVnb3JpZSB2ZXJ3aWpkZXJlbic7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnQmVkcmlqZiB2ZXJ3aWpkZXJlbic7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUgdmVyd2lqZGVyZW4nOwokbGFuZ1snZGVsaW1pdGVyJ10gPSAnU2NoZWlkaW5nc3Rla2VuIHZlbGRlbic7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnQWZsb3BlbmQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdCZXNjaHJpanZpbmcnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsc2phYmxvb24nOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnRGV0YWlsc2phYmxvb24gYmlqZ2V3ZXJrdCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRGV0YWlsc2phYmxvb24gdG9ldm9lZ2VuL2Jld2Vya2VuJzsKJGxhbmdbJ2Rpc2FibGUnXSA9ICdVaXRzY2hha2VsZW4nOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdVaXRnZXNjaGFrZWxkJzsKJGxhbmdbJ2Rvd24nXSA9ICdOZWVyJzsKJGxhbmdbJ2RyYWZ0J10gPSAnQ29uY2VwdCc7CiRsYW5nWydkcmFnX2Ryb3BfdXBsb2FkJ10gPSAnU2xlZXAgZW4gWmV0IE5lZXIgVXBsb2FkJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ1NsZWVwIHV3IGJlc3RhbmRlbiBoaWVyIG9tIHRlIHVwbG9hZGVuJzsKCiMjIEUKJGxhbmdbJ2VkaXQnXSA9ICdCZXdlcmtlbic7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICdDYXRlZ29yaWUgYmV3ZXJrZW4nOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICdCZWRyaWpmIGJld2Vya2VuJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUgYmV3ZXJrZW4nOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ1dpanppZyBGb3RvYWxidW0nOwokbGFuZ1snZWRpdF9maWx0ZXInXSA9ICdXaWp6aWcgRmlsdGVyJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtbWFpbCc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0UtbWFpbCBTamFibG9vbic7CiRsYW5nWydlcnJvcl9hZGRyZXNzX2xvb2t1cCddID0gJ1Byb2JsZWVtIGJpaiBvcHpvZWtlbiB2YW4gYWRyZXM6ICVzJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdFciBpcyBhbCBlZW4gQWxidW0gdmVsZC4gTWVlciBrYW4gaGVsYWFzIG5pZXQuLi4nOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnRXIgaXMgZWVuIHByb2JsZWVtIG9wZ2V0cmVkZW4gYmlqIGhldCB1cGxvYWRlbiB2YW4gaGV0IGJlc3RhbmQnOwokbGFuZ1snZXJyb3JfYmF0Y2h1cmxjcmVhdGUnXSA9ICdCYXRjaCBVUkwgQ3JlYXRpb24gdmVyb29yemFha3RlICVkIGZvdXRlbic7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWNvbHVtbl9ub3Rmb3VuZCddID0gJ0NhdGVnb3JpZSBrb2xvbSAlcyBuaWV0IGdldm9uZGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnQmVkcmlqZnNuYWFtIGlzIG9uZ2VsZGlnJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnRWVuIGJlZHJpamYgbWV0IGRlemUgbmFhbSBiZXN0YWF0IGFsIGluIGRlIGRhdGFiYXNlJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1UgbW9ldCBlZW4gdmVsZHNjaGVpZGluZ3N0ZWtlbiBiZW5vZW1lbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGUnXSA9ICdGb3V0IGJpaiBoZXQgYWFubWFrZW4gKG1hYXIgZ2FhdCBkb29yKSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY2F0ZWdvcnknXSA9ICdFciBiZXN0YWF0IGFsIGVlbiBjYXRlZ29yaWUgbWV0IGRlemUgbmFhbSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY29tcGFueSddID0gJ0VyIGJlc3RhYXQgYWwgZWVuIGJlZHJpamYgbWV0IGRlemUgbmFhbSAoJXMpJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9maWVsZGRlZiddID0gJ0VyIGJlc3RhYXQgYWwgZWVuIHZlbGQgbWV0IGRlemUgbmFhbSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfaGllcmFyY2h5J10gPSAnRWVuIGhpZXJhcmNoaWUgbWV0IGRlIG5hYW0gJnF1b3Q7JXMmcXVvdDsgYmVzdGFhdCBhbC4nOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnT20gZGV6ZSBmdW5jdGllIHRlIGdlYnJ1aWtlbiBtb2V0IHUgaW5nZWxvZ2QgemlqbiBvcCBkZSB3ZWJzaXRlJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkZGVmX25vdGZvdW5kJ10gPSAnVmVsZGRlZmluaXRlIG1ldCBpZCAlZCBuaWV0IGdldm9uZGVuJzsKJGxhbmdbJ2Vycm9yX2dlbmVyYXRldXJsJ10gPSAnUHJvYmxlZW0gb3BnZXRyZWRlbiBiaWogZ2VuZXJlcmVuIHZhbiBVUkwnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZGxpbmUnXSA9ICdGb3V0ZSByZWNvcmQgZ2V2b25kZW4gaW4gcmVnZWwgJWQuICBNaXN0IGVyIGVlbiByZWdlbD8nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnRXIgaXMgZWVuIHZlcmtlZXJkZSB3YWFyZGUgZ2V2b25kZW4gdm9vciBoZXQgJXMgdmVsZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1YmJlbGUgJXMgcmVnZWwgYmlqIHJlZ2VsICVkJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVydWxlX2lkZW50aWZpZXInXSA9ICdEdWJiZWxlIHJlZ2VsIGdldm9uZGVuIGJpaiByZWdlbCAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ09uZHVpZGVsaWprIGhvZSByZWdlbCAlZCBtZXQgcmVnZWwgc2xldXRlbCAlcyB2ZXJ3ZXJrdCBkaWVudCB0ZSB3b3JkZW4nOwokbGFuZ1snZXJyb3JfaW1wb3J0X3Vua25vd25ydWxlJ10gPSAnT25iZWtlbmRlIHJlZ2VsIGJpaiByZWdlbCAlZCc7CiRsYW5nWydlcnJvcl9pbnNlcnRfY2F0ZWdvcnknXSA9ICdFZW4gZGF0YWJhc2UgZm91dCBpcyBvcGdldHJlZGVuIHRpamRlbnMgaGV0IGFhbm1ha2VuIHZhbiBlZW4gY2F0ZWdvcmllIGRlZmluaXRpZSc7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0VlbiBkYXRhYmFzZSBmb3V0IGlzIG9wZ2V0cmVkZW4gdGlqZGVucyBoZXQgYWFubWFrZW4gdmFuIGVlbiBiZWRyaWpmIGRlZmluaXRpZSc7CiRsYW5nWydlcnJvcl9pbnNlcnRfZmllbGRkZWYnXSA9ICdFZW4gZGF0YWJhc2UgZm91dCBpcyBvcGdldHJlZGVuIHRpamRlbnMgaGV0IGFhbm1ha2VuIHZhbiBlZW4gdmVsZCBkZWZpbml0aWUnOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeSddID0gJ0ZvdXQgYmlqIGhldCBhYW5tYWtlbiB2YW4gaGllcmFyY2hpZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkbmFtZSddID0gJ0RlIGJlZHJpamZzbmFhbSBpcyBvbmdlbGRpZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXJsJ10gPSAnRGUgb3BnZWdldmVuIChvZiBiZXJla2VuZGUpIFVSTCBpcyBvbmdlbGRpZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3BhcmFtJ10gPSAnRGUgZ2VzcGVjaWZpY2VlcmRlIHdhYXJkZSB2b29yICVzIGlzIG5pZXQgY29ycmVjdCc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnR2VlbiBhZHJlcyBnZXZvbmRlbiBpbiBkaXQgcmVjb3JkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiB2ZXJwbGljaHRlIHdhYXJkZSBpcyBuaWV0IGFhbndlemlnIGJpaiBkZSBmb3JtdWxpZXJpbmdhdmUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VwbG9hZCddID0gJ0VyIGlzIGdlZW4gYmVzdGFuZCBnZSZ1dW1sO3Bsb2FkJzsKJGxhbmdbJ2Vycm9yX25vY29tcGFuaWVzbWF0Y2gnXSA9ICdTb3JyeSwgbWFhciBlciB6aWpuIGdlZW4gaXRlbXMgZ2V2b25kZW4gZGllIGFhbiB1dyBjcml0ZXJpYSB2b2xkb2VuJzsKJGxhbmdbJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJ10gPSAnR2VlbiBkcm9wZG93biBvcHRpZXMgaW5nZXZvZXJkJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnS2FuIGRlIEZyb250RW5kVXNlcnMtbW9kdWxlIG5pZXQgdmluZGVuJzsKJGxhbmdbJ2Vycm9yX25vZmlsdGVybWF0Y2hlcyddID0gJ0VyIHppam4gZ2VlbiBkYXRhYmFzZSByZWNvcmRzIGdldm9uZGVuIGRpZSB2b2xkb2VuIGFhbiBkZSBvcGdlZ2V2ZW4gY3JpdGVyZWEuJzsKJGxhbmdbJ2Vycm9yX25vbGVuZ3RoJ10gPSAnR2VlbiBtYXhpbXVtIHZlbGRsZW5ndGUgaW5nZXZvZXJkJzsKJGxhbmdbJ2Vycm9yX25vb3duZXInXSA9ICdHZWVuIG9mIGVlbiB2ZXJrZWVyZGUgZWlnZW5hYXIgSUQnOwokbGFuZ1snZXJyb3Jfbm9yZXN1bHRzZm91bmQnXSA9ICdFciBrYW4gZ2VlbiByZWNvcmQgd29yZGVuIGdldm9uZGVuIGluIGRlIGRhdGFiYXNlIGRpZSBhYW4gdXcgY3JpdGVyaWEgdm9sZG9ldCc7CiRsYW5nWydlcnJvcl9ub3Nwb3RzbGVmdCddID0gJ1UgaGVlZnQgZ2VlbiBsZWdlIGJlZHJpamZzcGxhYXRzZW4gbWVlcic7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdOaWV0cyBnZXNlbGVjdGVlcmQnOwokbGFuZ1snZXJyb3JfcG9zdGNvZGVfbG9va3VwJ10gPSAnS2FuIGdlZW4gaW5mb3JtYXRpZSB2aW5kZW4gYmlqIGRlIHBvc3Rjb2RlICVzJzsKJGxhbmdbJ2Vycm9yX3ByZWZpeF9tc2cnXSA9ICdFciBpcyBlZW4gZm91dCBvcGdldHJlZGVuIGJpaiByZWdlbCAlZDogJXMnOwokbGFuZ1snZXJyb3JfdXBkYXRlX2NvbXBhbnknXSA9ICdGb3V0IGJpaiBoZXQgYmlqd2Vya2VuIHZhbiBlZW4gYmVkcmlqZnNyZWNvcmQnOwokbGFuZ1snZXJyb3JfdXBsb2FkJ10gPSAnRm91dCBvcGdldHJlZGVuIGJpaiBoZXQgdXBsb2FkZW4gdmFuIGhldCBiZXN0YW5kJzsKJGxhbmdbJ2Vycm9yX3VybG5vdGVtcHR5J10gPSAnSGV0IFVSTCB2ZWxkIGlzIG5pZXQgbGVlZy4uLiBrYW4gZ2VlbiBiZXN0YWFuZGUgd2FhcmRlbiBvdmVyc2NocmlqdmVuJzsKJGxhbmdbJ2Vycm9yX3VybHJlcXVpcmVkJ10gPSAnRWVuIFVSTCBpbnZvZXJlbiBpcyB2ZXJwbGljaHQnOwokbGFuZ1snZXZlbnRkZXNjLU9uQWRkQ29tcGFueSddID0gJ0V2ZW50IHZlcnN0dXVyZCBuYWRhdCBlZW4gbmlldXcgYmVkcmlqZiBpcyB0b2VnZXZvZWdkIGFhbiBkZSBkYXRhYmFzZSc7CiRsYW5nWydldmVudGRlc2MtT25EZWxldGVDb21wYW55J10gPSAnRXZlbnQgdmVyc3R1dXJkIHZvb3JkYXQgZWVuIGJlZHJpamYgaXMgdmVyd2lqZGVyZCc7CiRsYW5nWydldmVudGRlc2MtT25FZGl0Q29tcGFueSddID0gJ0V2ZW50IHZlcnN0dXVyZCBuYWRhdCBlZW4gYmVkcmlqZiBpcyBnZXdpanppZ2QgaW4gZGUgZGF0YWJhc2UnOwokbGFuZ1snZXZlbnRoZWxwLU9uQWRkQ29tcGFueSddID0gJzxwPlNlbnQgYWZ0ZXIgYSBjb21wYW55IGlzIGFkZGVkIHRvIHRoZSBkYXRhYmFzZS48L3A+DQo8aDQ+UGFyYW1ldGVyczo8L2g0Pg0KPHVsPg0KICA8bGk+JnF1b3Q7d2hvJnF1b3Q7IC0gSWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyIGluc3RhbnRpYXRpbmcgdGhlIGV2ZW50LjwvbGk+DQogIDxsaT4mcXVvdDtvYmplY3QmcXVvdDsgLSBUaGUgY2RfY29tcGFueSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBkYXRhIHRoYXQgd2FzIHNhdmVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25EZWxldGVDb21wYW55J10gPSAnPHA+U2VudCBiZWZvcmUgYSBjb21wYW55IGlzIGRlbGV0ZWQgZnJvbSB0aGUgIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT4mcXVvdDt3aG8mcXVvdDsgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiZxdW90O2NpZCZxdW90OyAtIElkIG9mIHRoZSBjb21wYW55IHJlY29yZCB0byBiZSBkZWxldGVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25FZGl0Q29tcGFueSddID0gJzxwPlNlbnQgYWZ0ZXIgYSBjb21wYW55IGlzIHVwZGF0ZWQgaW4gdGhlIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT4mcXVvdDt3aG8mcXVvdDsgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiZxdW90O29iamVjdCZxdW90OyAtIFRoZSBjZF9jb21wYW55IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGRhdGEgdGhhdCB3YXMgc2F2ZWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdWZXJsb29wdCc7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnRlcmVuIG5hYXIgQ1NWJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIGRhdGEgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYSBkYXRhIDInOwokbGFuZ1snZXh0cmEzJ10gPSAnRXh0cmEgZGF0YSAzJzsKCiMjIEYKJGxhbmdbJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0J10gPSAnRXIgaXMgZWVuIHdpanppZ2luZyBhYW5nZWJyYWNodCBhYW4gZWVuIENvbXBhbnlEaXJlY3RvcnkgYmVkcmlqZic7CiRsYW5nWydmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUnOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ1ZlbGRkZWZpbml0aWUgdG9lZ2V2b2VnZCc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdWZWxkZGVmaW5pdGllIHZlcndpamRlcmQnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnVmVsZGRlZmluaXRpZXMnOwokbGFuZ1snZmllbGRkZWZ0ZXh0J10gPSAnVmVsZGRlZmluaXRpZSc7CiRsYW5nWydmaWVsZGRlZnVwZGF0ZWQnXSA9ICdWZWxkZGVmaW5pdGllIGJpamdld2Vya3QnOwokbGFuZ1snZmllbGRzJ10gPSAnVmVsZGVuJzsKJGxhbmdbJ2ZpZWxkX2FjdGl2aXR5J10gPSAnQWN0aXZpdGVpdGVuIChDR1NvY2lhbEFwcCknOwokbGFuZ1snZmllbGRfYWxidW0nXSA9ICdBbGJ1bSAoQWFudGFsIGFmYmVlbGRpbmdlbiknOwokbGFuZ1snZmllbGRfY2hlY2tib3gnXSA9ICdWaW5rdmFramUnOwokbGFuZ1snZmllbGRfZmlsZSddID0gJ0Jlc3RhbmQnOwokbGFuZ1snZmllbGRfaWNvbiddID0gJ1BpY3RvZ3JhbSAoQ0dHb29nbGVNYXBzKSc7CiRsYW5nWydmaWVsZF9pbWFnZSddID0gJ0FmYmVlbGRpbmcnOwokbGFuZ1snZmllbGRfbXVsdGlzZWxlY3QnXSA9ICdNZWVydm91ZGlnZSBzZWxlY3RpZSc7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1Rla3N0IHJ1aW10ZSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGVrc3QgSW52b2VyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCB3aWp6aWcgQWxidW0gc2phYmxvbmVuJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL1dpanppZ2VuIEZyb250ZW5kIHdpanppZyBBbGJ1bSBTamFibG9vbic7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdCZWRyaWpmc3NqYWJsb25lbiBiZXdlcmtlbic7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdCZWRyaWpmc3NqYWJsb29uIGJpamdld2Vya3QnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0Zyb250ZW5kLWZvcm11bGllcnNqYWJsb29uIHRvZWdldm9lZ2QvYmlqZ2V3ZXJrdCc7CiRsYW5nWydmcm9udGVuZGltcG9ydHRlbXBsYXRlJ10gPSAnRnJvbnRlbmQgQ1NWIEltcG9ydGVlciBTamFibG9vbic7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaWpzdCBTamFibG9uZW4nOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbiBvZiB3aWp6aWdlbiB2YW4gZWVuIEZyb250ZW5kIExpanN0IFNqYWJsb29uJzsKCiMjIEcKJGxhbmdbJ2dhbGxlcnl0ZW1wbGF0ZXMnXSA9ICdHYWxsZXJ5IFNqYWJsb25lbic7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbi9XaWp6aWdlbiB2YW4gR2FsbGVyeSBTamFibG9vbic7CiRsYW5nWydnZXR1cmwnXSA9ICdHZW5lcmVlciBVUkwnOwoKIyMgSAokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSc7CiRsYW5nWydoaWVyYXJjaHlsaXN0dGVtcGxhdGVzJ10gPSAnSGllcmFyY2hpZSBMaWpzdCBTamFibG9uZW4nOwokbGFuZ1snaGllcmxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIEhpZXJhcmNoaWUgTGlqc3QgU2phYmxvbmVuJzsKCiMjIEkKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaWdub3JlJ10gPSAnTmVnZWVyJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0FmYmVlbGRpbmcnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0ZWVyIENTVic7CiRsYW5nWydpbXBvcnRrbWwnXSA9ICdJbXBvcnRlZXIgS01MJzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ1NlbGVjdGVlciBDU1YgQmVzdGFuZCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1wb3J0ZWVyIEtNTCBCZXN0YW5kJzsKJGxhbmdbJ2luZm9fYmF0Y2h1cmxjcmVhdGUnXSA9ICdCYXRjaCBVUkwgQ3JlYXRpb24gaGVlZnQgJWQgcmVjb3JkcyBiaWpnZXdlcmt0JzsKJGxhbmdbJ2luZm9fY3JlYXRlX3VybCddID0gJ0FscyBlciBnZWVuIFVSTCBpcyBvcGdlZ2V2ZW4gdm9vciBlZW4gcmVjb3JkLCBkYW4gem9yZ3QgZGV6ZSBvcHRpZSBkYXQgZGUgVVJMIGFsc25vZyBhYW5nZW1hYWt0IHdvcmR0LiBJbmRpZW4gZGUgJiMwMzk7VmVyZWlzIFVSTCYjMDM5Oy1pbnN0ZWxsaW5nIGlzIGluZ2VzY2hha2VsZCwgZGFuIHp1bGxlbiBlciBVUkwmIzAzOTtzIHdvcmRlbiBhYW5nZW1hYWt0LCBvbmdlYWNodCBkZSB3YWFyZGUgdmFuIGRlemUgaW5zdGVsbGluZy4nOwokbGFuZ1snaW5mb19jc3ZmaWxlJ10gPSAnSGV0IGlzIG1vZ2VsaWprIG9tIGJlZHJpamZzaW5mb3JtYXRpZSByZWNodHN0cmVla3MgdGUgaW1wb3J0ZXJlbiB1aXQgZWVuIEFTQ0lJIGJlc3RhbmQuJzsKJGxhbmdbJ2luZm9fZHJvcGRvd25fb3B0aW9ucyddID0gJ1NwZWNpZmljZWVyIGRlIG9wdGllcyB2b29yIGRlIGRyb3Bkb3duIGNvbnRyb2xlLiAgRWVuIHJlZ2VsIHBlciBvcHRpZS4gIFNjaGVpZHQgZGUgdmFyaWFiZWxlbiB2YW4gZGUgd2FhcmRlcyBtZXQgZWVuID0uICBiaWp2LjogdmFyaWFiZWxlPXdhYXJkZSc7CiRsYW5nWydpbmZvX2V4dGVuc2lvbnMnXSA9ICdHZWVmIGVlbiBsaWpzdCBvcCBtZXQga29tbWFnZXNjaGVpZGVuIHdhYXJkZW4gbWV0IGJlc3RhbmRzZXh0ZW5zaWVzIChob29mZGxldHRlcmdldm9lbGlnKS4gSW5kaWVuIG5pZXQgb3BnZWdldmVuIHdvcmRlbiBkZSBzdGFuZGFhcmR3YWFyZGVuIHZhbiBDR0V4dGVuc2lvbnMgd29yZGVuIGdlYnJ1aWt0Lic7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnR2VlbiBleHRyYSB2ZWxkZW4gaW5nZXN0ZWxkJzsKJGxhbmdbJ2luZm9fdXJsX2NyZWF0ZW9uY29weSddID0gJ1dhbm5lZXIgdSBiZWRyaWp2ZW4ga29waWVlcnQsIGRhbiB6YWwgZXIgZWVuIFVSTCB3b3JkZW4gYWFuZ2VtYWFrdCB2b29yIGhldCBiZXN0ZW1taW5nc3JlY29yZC4gRGl0IGlzIGFsbGVlbiB2YW4gdG9lcGFzc2luZyBhbHMgVVJMJiMwMzk7cyBuaWV0IHZlcmVpc3Qgemlqbi4nOwokbGFuZ1snaW5mb191cmxfcmVxdWlyZWQnXSA9ICdNb2V0IGhldCBVUkwgdmVsZCB2b2xkb2VuIGFhbiBlZW4gZ2VsZGlnaGVpZHN2ZXJlaXN0ZSBiaWogaGV0IHRvZXZvZWdlbiBvZiBiZXdlcmtlbiB2YW4gZWVuIGJlZHJpamY/JzsKJGxhbmdbJ2luZm9fdXNlcmVkaXQnXSA9ICdJbmRpZW4gZ2VhY3RpdmVlcmQga3VubmVuIGVua2VsIGFkbWluaXN0cmF0b3JzIGRpdCB2ZWxkIHdpanppZ2VuJzsKJGxhbmdbJ2ludXNlJ10gPSAnaW4gZ2VicnVpayc7CgojIyBMCiRsYW5nWydsYWJlbF9pbmNsdWRlY2hpbGRyZW4nXSA9ICdWb2VnIGNoaWxkaGllcmFyY2hpZSZldW1sO24gdG9lJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGJsX2JhY2snXSA9ICdUZXJ1Zyc7CiRsYW5nWydsYmxfc2V0dGluZ3MnXSA9ICdJbnN0ZWxsaW5nZW4nOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ1NqYWJsb25lbic7CiRsYW5nWydsb29rdXAnXSA9ICdDbyZvdW1sO3JkaW5hdGVuIG9wem9la2VuJzsKCiMjIE0KJGxhbmdbJ21heGxlbmd0aCddID0gJ01heC4gbGVuZ3RlJzsKJGxhbmdbJ21heGxlbmd0aHRleHQnXSA9ICdNYXguIGxlbmd0ZSc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTWF4LiBsZW5ndGUnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFZW4gbW9kdWxlIHZvb3IgaGV0IGJpamhvdWRlbiB2YW4gYmVkcmlqZnNnZWdldmVucy4gSGllcm1lZSBrdW50IHUgYmVkcmlqZnNnZWdldmVucyBiaWpob3VkZW4sIGltcG9ydGVuLCBleHBvcnRlcmVuLCBkb29yem9la2VuLCBlbiBpbiB2ZXJzY2hpbGxlbmRlIG1hbmllcmVuIG9wIGRlIHdlYnNpdGUgdG9uZW4uIERlemUgbW9kdWxlIHdlcmt0IGdvZWQgc2FtZW4gbWV0IENHR29vZ2xlTWFwcy4nOwokbGFuZ1snbW9kaWZpZWQnXSA9ICdHZXdpanppZ2QnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0dW0gbGFhdHN0ZSBhYW5wYXNzaW5nJzsKJGxhbmdbJ21zZ19idWxrZGVsJ10gPSAnJWQgaXRlbXMgdmVyd2lqZGVyZCc7CiRsYW5nWydtc2dfY29tcGFueWNvcGllZCddID0gJ0JlZHJpamYgZ2Vrb3BpZWVyZC4uLiB3aWp6aWcgZGUgYmVkcmlqZnNnZWdldmVucyB2b29yIGRpdCBuaWV1d2UgYmVkcmlqZic7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFyY2hpZSBwb3NpdGllIHRvZWdldm9lZ2QnOwokbGFuZ1snbXNnX2hpZXJkZWxldGVkJ10gPSAnSGllcmFyY2hpZSBwb3NpdGllIHZlcndpamRlcmQnOwokbGFuZ1snbXNnX2hpZXJ1cGRhdGVkJ10gPSAnSGllcmFyY2hpZSBwb3NpdGllIGJpamdld2Vya3QnOwokbGFuZ1snbXNnX2ltcG9ydF9jb21wbGV0ZSddID0gJ0ltcG9ydGVyZW4gZ2VzbGFhZ2QnOwokbGFuZ1snbXNnX3NldHRpbmdzX2NoYW5nZWQnXSA9ICdJbnN0ZWxsaW5nZW4gZ2V3aWp6aWdkJzsKJGxhbmdbJ21zZ19zbG90c3VzZWQnXSA9ICdVIGhlZWZ0ICVkIHZhbiAlZCBiZWRyaWpmc3BsYWF0c2VuIGdlYnJ1aWt0JzsKCiMjIE4KJGxhbmdbJ25hbWUnXSA9ICdOYWFtJzsKJGxhbmdbJ25hbWV0ZXh0J10gPSAnTmFhbSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1UgaGVlZnQgJiMwMzk7JXMmIzAzOTsgcmVjaHRlbiBub2RpZyBvbSBkZXplIGZ1bmN0aWUgdWl0IHRlIHZvZXJlbi4nOwokbGFuZ1snbmV3c2VhcmNodGVtcGxhdGVzJ10gPSAnWm9layBGb3JtdWxpZXIgU2phYmxvbmVuJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vV2lqemlnZW4gWm9layBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1snbmV3c2VhcmNoX3RlbXBsYXRlJ10gPSAnWm9layBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vJ10gPSAnTmVlJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ0dlZW4gYmVkcmlqZnNuYWFtIG9wZ2VnZXZlbic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0dlZW4gbmFhbSBvcGdlZ2V2ZW4nOwokbGFuZ1snbm9uZSddID0gJ0dlZW4nOwokbGFuZ1snbm90YW51bWJlciddID0gJ0dlZW4gbnVtbWVyJzsKCiMjIE8KJGxhbmdbJ29mJ10gPSAnVmFuJzsKJGxhbmdbJ29wX2NhbmNlbGxlZCddID0gJ0dlYW5udWxlZXJkJzsKJGxhbmdbJ29yZ2FuaXphdGlvbiddID0gJ09yZ2FuaXNhdGllJzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ092ZXJzY2hyaWpmJzsKJGxhbmdbJ293bmVyJ10gPSAnRWlnZW5hYXInOwoKIyMgUAokbGFuZ1sncGFnZSddID0gJ1BhZ2luYSc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdJdGVtcyBQZXIgUGFnaW5hJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0JlcGFhbCBoZXQgaG9vZmRnZWRyYWcgdmFuIGRlemUgbW9kdWxlLiBNb2dlbGlqa2Ugd2FhcmRlbiB2b29yIGRlemUgcGFyYW1ldGVyIHppam46DQoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LiA8ZW0gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+KGRlcHJlY2F0ZWQpPC9lbT48L2xpPg0KICA8bGk+ZmVfZWRpdDIgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuPC9saT4NCiAgPGxpPmZlX2VkaXRfYWxidW0gLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBhbGJ1bSBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuDQogICA8cD5UaGlzIGFjdGlvbiBpcyBub3JtYWxseSB0cmlnZ2VyZWQgZnJvbSB0aGUgZmVfZWRpdDIgYWN0aW9uIG9yIHRoZSBmcm9udGVuZCBsaXN0IGFjdGlvbi4gICBJdCBhY2NlcHRzIHRoZSBjb21wYW55aWQsY2RfZmRpZCxhbmQgb3B0aW9uYWxseSBvdGhlciBwYXJhbWV0ZXJzIHRvIHBlcmZvcm0gbnVtZXJvdXMgYWpheCBhY3Rpb25zLiAgIFNlZSB0aGUgc2FtcGxlIGNvbnRlbnQgZm9yIHRoZSBmcm9udGVuZCBhbGJ1bSB0ZW1wbGF0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+DQogIDwvbGk+DQo8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgZm9yIHNwZWNpZmljIGNvbXBhbmllcy48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBEaXNwbGF5IGEgbGlzdCBvZiBoaWVyYXJjaGllcy4gIFVzZXJzIGNhbiBkcmlsbCBkb3duIHRvIHN1bW1hcnkgbW9kZSBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICAgDQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ0FscyBkZXplIHBhcmFtZXRlciwgd2FhcnZhbiBkZSBuYWFtIGdlbGlqayBtb2V0IHppam4gYWFuIGVlbiBiZXN0YWFuZGUgY2F0ZWdvcmllLCBpbiBkZSA8ZW0+c3RhbmRhYXJkPC9lbT5zYW1lbnZhdHRpbmdzbW9kdXMgd29yZHQgZ2VicnVpa3QsIGRhbiB3b3JkdCBkZXplIHBhcmFtZXRlciBhbGxlZW4gYmVudXQgb20gZGllIGJlZHJpanZlbiB0ZSB0b25lbiBkaWUgaW4gZGUgY2F0ZWdvcmllIHppdHRlbiAoZWVuIGtvbW1hZ2VzY2hlaWRlbiBsaWpzdCBrYW4gaGllciB3b3JkZW4gZ2VicnVpa3QpLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTInXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnk8L2VtPiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhbiBhZGRpdGlvbmFsIEFORCBleHByZXNzaW9uIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgKGNvbW1hIHNlcGFyYXRlZCkgY2F0ZWdvcmllcyB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGEgbWVtYmVyIG9mLiAgaS5lOiB7Q29tcGFueURpcmVjdG9yeSBjYXRlZ29yeT0mIzAzOTtyZWdpb25fbm9ydGgscmVnaW9uX3NvdXRoJiMwMzk7IGNhdGVnb3J5Mj0mIzAzOTtjYXJzLHRydWNrcyYjMDM5O30gd291bGQgcmV0dXJuIG9ubHkgdGhvc2UgY29tcGFuaWVzIHRoYXQgd2VyZSBpbiB0aGUgZWl0aGVyIG9mIHRoZSByZWdpb24gbm9ydGggb3IgcmVnaW9uIHNvdXRoIGNhdGVnb3JpZXMgQU5EIEFMU08gaW4gZWl0aGVyIG9mIHRoZSBjYXJzIG9yIHRydWNrcyBjYXRlZ29yaWVzJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnR2VlZiBlZW4gc2phYmxvb24gKGRlIG5hYW0pIG9wIGRpZSBnZWJydWlrdCB3b3JkdCBhbHMgZGUgY2F0ZWdvcmllbGlqc3R3ZWVyZ2F2ZSB3b3JkdCBnZXRvb25kLic7CiRsYW5nWydwYXJhbV9jb21wYW55aWQnXSA9ICdWZXJlaXN0IHZvb3IgZGUgZnJvbnQtZW5kIGJld2Vyay0gZW4gZGV0YWlsbW9kaS4gRGV6ZSBwYXJhbWV0ZXIgYmVwYWFsdCB3ZWxrIGJlZHJpanZlbnJlY29yZCBiZXdlcmt0IG9mIGJla2VrZW4gd29yZHQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdTcGVjaWZpY2VlciBlZW4gcGFnaW5hLWFsaWFzIChkZSBuYWFtKSBvbSB0ZSBnZWJydWlrZW4gdm9vciB3ZWVyZ2F2ZSB2YW4gZWVuIGRldGFpbHJlY29yZC4gPHN0cm9uZz5NZXJrIG9wOjwvc3Ryb25nPiBkZXplIHRhZy1wYXJhbWV0ZXIgaXMgbmlldCBjb21wYXRpYmxlIG1ldCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdTcGVjaWZpY2VlciBlZW4gc2phYmxvb24gKGRlIG5hYW0pIG9tIHRlIGdlYnJ1aWtlbiB2b29yIGRlIHdlZXJnYXZlIHZhbiBkZSBkZXRhaWx3ZWVyZ2F2ZS4gIDxzdHJvbmc+TWVyayBvcDo8L3N0cm9uZz4gZGV6ZSB0YWctcGFyYW1ldGVyIGlzIG5pZXQgY29tcGF0aWJsZSBtZXQgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3BlY2lmaWNlZXIgZWVuIHNqYWJsb29uIChkZSBuYWFtKSBvbSB0ZSBnZWJydWlrZW4gdm9vciBoZXQgZnJvbnQtZW5kIGJlZHJpanZlbmJld2Vya2Zvcm11bGllci4nOwokbGFuZ1sncGFyYW1faGllciddID0gJ1RvZXBhc2JhYXIgaW4gZGUgPGVtPmRlZmF1bHQ8L2VtPiBlbiA8ZW0+aGllcmxpc3Q8L2VtPiBhY3RpZXMsIGRlemUgcGFyYW1ldGVyIHN0YWF0IGhldCBiZW5vZW1lbiB2YW4gZWVuIGhpZXJhcmNoaWUgbmFhbSB2YW4gYmVkcmlqdmVuIHRvZS4gIEluIGRlIGRlZmF1bHQgYWN0aWUsIHdvcmRlbiB3aWxkY2FyZHMgZ2VhY2NlcHRlZXJkLCBiaWp2LjogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIEFsIGhvZXdlbCBpbiBkZSBoaWVybGlzdCBhY3RpZSwgZGV6ZSBwYXJhbWV0ZXIgZWVuIHVuaWVrZSBuYWFtIG9mIGhpZXJhcmNoeSBwb3NpdGllIG1vZXQgYmV2YXR0ZW4sIGVuIHphbCBkZSBzdGFydCBsb2NhdGllIHZhbiBoZXQgb3ZlcnppY2h0IGJlcGFsZW4uJzsKJGxhbmdbJ3BhcmFtX2hpZXJsaXN0dGVtcGxhdGUnXSA9ICdTcGVjaWZpY2VlciBlZW4gc2phYmxvb24gKG5hYW0pIG9tIHRlIGdlYnJ1aWtlbiBpbiBkZSBoaWVyYXJjaGllIGxpanN0IG92ZXJ6aWNodGVuLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBbGxlZW4gdG9lcGFzYmFhciBpbiBkZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnksIGVuIDxlbT5zZWFyY2g8L2VtPiBtb2R1cywgZGV6ZSBwYXJhbWV0ZXIgbWFha3QgaGV0IG1vZ2VsaWprIG9tIHRlIHNwZWNpZmljZXJlbiBvZiBkZSByZXN1bHRhYXQgZ2VnZXZlbnMgaGV0IHN0YW5kYWFyZCBpbmhvdWRzIGJsb2sgZGllbnQgdGUgb3ZlcnNjaHJpanZlbiBvciBkZSBvcmlnaW5lbGUgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ0luZGllbiBnZWJydWlrdCBpbiBkZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kdXMsIG9mIGluIGRlIDxlbT5zZWFyY2g8L2VtPiBtb2R1cywgemFsIGRpdCBoZXQgcmVzdWx0YWF0IGxpbWl0ZXJlbiB0b3QgZWVuIGdlc3BlY2lmaWNlZXJkIGFhbnRhbC4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQWxsZWVuIHRvZXBhc2JhYXIgaW4gZGUgPGVtPnNlYXJjaDwvZW0+IG1vZHVzLCBkZXplIHBhcmFtZXRlciBzdGFhdCBoZXQgc3BlY2lmaWNlcmVuIHZhbiBlZW4gbmlldC1zdGFuZGFhcmQgem9la2Zvcm11bGllciBzamFibG9vbiB0b2UuJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdFbmtlbCB0b2VwYXNiYWFyIG9wIGRlIGNhdGVnb3J5bGlzdCBha3RpZS4gQWxzIGRlemUgcGFyYW1ldGVyIHdvcmR0IGdlemV0LCB3b3JkZW4gb29rIGNhdGVnb3JpZW4gdmFuIG5pZXQgbWF0Y2hlbmRlIGJlZHJpanZlbiB3ZWVyZ2VnZXZlbic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZTogDQo8dWw+DQo8bGk+aWQgLS0gVGhlIGludGVybmFsIGNvbXBhbnkgaWQ8L2xpPg0KICA8bGk+PHN0cm9uZz5jb21wYW55X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cGhvbmU8L2xpPg0KICA8bGk+ZmF4PC9saT4NCiAgPGxpPmVtYWlsPC9saT4NCiAgPGxpPndlYnNpdGUgLS0gVGhlIHdlYnNpdGUgdXJsPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+c3RhdHVzPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBTb3J0IHRoZSBpdGVtcyByYW5kb21seS48L2xpPg0KICA8bGk+ZjpmaWVsZCBuYW1lIC0tIFNvcnQgYnkgcHVibGljIGN1c3RvbSBmaWVsZHMuIFRoZSBvdXRwdXQgd2lsbCBiZSBzb3J0ZWQgYnkgdGhlIG5hbWVkIGN1c3RvbSBmaWVsZC48YnIvPg0KICA8bGk+bW9zdGNoZWNraW5zIC0tIDxlbT4oT25seSB3aGVuIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQpPC9lbT4gU29ydCBvdXRwdXQgYnkgdGhlIGNvbXBhbmllcyAobG9jYXRpb25zKSB0aGF0IGhhdmUgdGhlIG1vc3QgY2hlY2tpbnMuPC9saT4NCiAgPGxpPm1vc3RmYXZvcml0ZSAtLSA8ZW0+KE9ubHkgd2hlbiBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkKTwvZW0+IFNvcnQgb3V0cHV0IGJ5IHRoZSBjb21wYW5pZXMgKGxvY2F0aW9ucykgdGhhdCBoYXZlIHRoZSBtb3N0IGZhdm9yaXRlcy48L2xpPg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBZb3UgbWF5IG5lZWQgdG8gdXNlIHF1b3RlcyBpZiB0aGUgZmllbGQgbmFtZSBoYXMgc3BhY2VzLjxici8+DQogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFRoZSBmaWVsZCBzcGVjaWZpZWQgbXVzdCBiZSBtYXJrZWQgYXMgcHVibGljLg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBXaGVuIHVzaW5nIGN1c3RvbSBmaWVsZCBzb3J0aW5nLCBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGZsYWcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgdG8gaW5kaWNhdGUgdGhhdCBpbnRlZ2VyIHNvcnRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4gIGkuZTogPGNvZGU+c29ydGJ5PWY6Y3VzdG9tX29yZGVyaW5nOmk8L2NvZGU+PGJyLz48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmaWNlZXIgZGUgdm9sZ29yZGUgdmFuIGRlIHNvcnRlZXJ2ZWxkZW4gaW4gZGUgc2FtZW52YXR0aW5nc3dlZXJnYXZlLiBNb2dlbGlqayB3YWFyZGVuIHppam46DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBvcGxvcGVuZGUgdm9sZ29yZGU8L2xpPg0KICA8bGk+ZGVzYyAtLSBhZmxvcGVuZGUgdm9sZ29yZGU8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnU3BlY2lmaWNlZXIgZWVuIHNqYWJsb29uIChkZSBuYWFtKSBvbSB0ZSBnZWJydWlrZW4gdm9vciBkZSB3ZWVyZ2F2ZSB2YW4gZGUgc2FtZW52YXR0aW5nc3dlZXJnYXZlLiAgPHN0cm9uZz5NZXJrIG9wOjwvc3Ryb25nPiBkZXplIHRhZy1wYXJhbWV0ZXIgaXMgbmlldCBjb21wYXRpYmxlIG1ldCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGFsX2NvZGUnXSA9ICdQb3N0Y29kZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBnZSZpdW1sO25zdGFsbGVlcmQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBnZWRlJml1bWw7bnN0YWxsZWVyZC4gQWxsZSBnZWtvcHBlbGRlIGJlZHJpamZzZ2VnZXZlbnMgemlqbiB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnVm9vcmtldXJlbic7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdXZWV0IHUgemVrZXIgZGF0IGRlemUgbW9kdWxlIGdlZGUmaXVtbDtuc3RhbGxlZXJkIG1vZXQgd29yZGVuPyBEZSZpdW1sO25zdGFsbGVyZW4gdmVyd2lqZGVydCBhbGxlIGdla29wcGVsZGUgYmVkcmlqZnNnZWdldmVucyBwZXJtYW5lbnQhJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9tcHRfYWRkY29tcGFueSddID0gJ0JlZHJpamYgdG9ldm9lZ2VuJzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdWZWxkZGVmZW5pdGllIHRvZXZvZWdlbiBvZiBiZXdlcmtlbic7CiRsYW5nWydwcm9tcHRfYWxsb3dkdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdEdWJiZWxlIGJlZHJpamZzbmFtZW4gdG9lc3RhYW4/JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnQ2F0ZWdvcmkmZXVtbDtuIEdlJml1bWw7bXBvcnRlZXJkJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWNvbHVtbiddID0gJ0NhdGVnb3JpZSBLb2xvbSc7CiRsYW5nWydwcm9tcHRfY2hlY2tfZHVwbGljYXRlcyddID0gJ0NvbnRyb2xlcmVuIG9wIGR1YmJlbGUgYmVkcmlqZnNuYW1lbj8nOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ1ZlcnphbWVsIFpvZWsgU3RhdGlzdGlla2VuJzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdCZWRyaWp2ZW4gZ2UmaXVtbDttcG9ydGVlcmQnOwokbGFuZ1sncHJvbXB0X2NvbnZlcnRfYWRkcmVzcyddID0gJ0NvbnZlcnRlZXIgYWRyZXNzZW4gbmFhciBjbyZvdW1sO3JkaW5hdGVuIChhbHMgZXIgZ2VlbiBjbyZvdW1sO3JkaW5hdGVuIHppam4gaW5nZXZvZXJkKSc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ01hYWsgVVJMIHZvb3IgcmVjb3JkcyB6b25kZXIgVVJMJzsKJGxhbmdbJ3Byb21wdF9kZWxpbWV0ZXInXSA9ICdWZWxkIFNjaGVpZGluZ3N0ZWtlbic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0RlIHN0YW5kYWFyZHBhZ2luYSB3YWFybmFhciB3b3JkdCB2ZXJ3ZXplbiBpbiBkZSBkZXRhaWxtb2R1cyc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGllcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlX25hbWUnXSA9ICdDb250cm9sZWVyIG9wIGR1YmJlbGUgYmVkcmlqZnNuYW1lbic7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdXaWp6aWdlbiBiZWRyaWpmJzsKJGxhbmdbJ3Byb21wdF9lZGl0b3IyJ10gPSAnR2VicnVpayBuaWV1d2UgRnJvbnRlbmQgRWRpdG9yJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9pc2h0bWwnXSA9ICdFLW1haWwgaXMgaW4gSFRNTCBvcGJvdXcnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3N1YmplY3QnXSA9ICdFLW1haWwgT25kZXJ3ZXJwJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZSddID0gJ0UtbWFpbCBTamFibG9vbic7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRm91dGVuJzsKJGxhbmdbJ3Byb21wdF9leHRlbnNpb25zJ10gPSAnVG9lZ2VzdGFuZSBiZXN0YW5kIGV4dGVudGllcyc7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdNYWcgZWVuIGZyb250ZW5kIGdlYnJ1aWtlciBkZSBzdGF0dXMgdmFuIGVlbiBiZWRyaWpmIHdpanppZ2VuPyc7CiRsYW5nWydwcm9tcHRfZmV1X2NyZWF0ZSddID0gJ01hZyBlZW4gRnJvbnRFbmRVc2VycyBuaWV1d2UgcmVjb3JkcyBhYW5tYWtlbj8nOwokbGFuZ1sncHJvbXB0X2ZldV9kZWxldGUnXSA9ICdTdGEgRnJvbnRlbmQgR2VicnVpa2VycyB0b2UgaXRlbXMgdGUgdmVyd2lqZGVyZW4nOwokbGFuZ1sncHJvbXB0X2ZldV9kaXNwbGF5X3NldHRpbmdzJ10gPSAnRnJvbnRlbmQgU2NoZXJtIEluc3RlbGxpbmdlbic7CiRsYW5nWydwcm9tcHRfZmV1X2VkaXRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBXaWp6aWdpbmdzaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ1dlbGtlIEJlaGVlcmdyb2VwIG1vZXQgbm90aWZpY2F0aWUgZS1tYWlscyBvbnR2YW5nZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmFkZCddID0gJ1ZlcnN0dXVyIGVlbiBFLW1haWwgYWxzIGVlbiBGcm9udGVuZCBnZWJydWlrZXIgZWVuIG5pZXV3IGJlZHJpamYgYWFubWFha3QnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ1ZlcnN0dXVyIGVlbiBFLW1haWwgYWxzIGVlbiBGcm9udGVuZCBnZWJydWlrZXIgZWVuIGJlc3RhYW5kIGJlZHJpamYgd2lqemlndCc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25ncm91cCddID0gJ0JlaGVlcmdyb2VwIG9tIEUtbWFpbHMgbmFhciB0ZSB2ZXJ6ZW5kZW4nOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdTdGEgRnJvbnRlbmRVc2VycyB0b2Ugb20gbWV0IENTViByZWNvcmRzIHRlIGltcG9ydGVyZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbmV3X3N0YXR1cyddID0gJ1N0YW5kYWFyZCBzdGF0dXMgdm9vciBuaWV1d2UgcmVjb3JkcyBhYW5nZW1hYWt0IHZpYSBkZSBmcm9udGVuZCc7CiRsYW5nWydwcm9tcHRfZmV1X251bXJlY29yZHMnXSA9ICdNYXhpbWFhbCBhYW50YWwgcmVjb3JkcyBkYXQga2FuIHdvcmRlbiBnZWFzc29jaWVlcmQgbWV0IGVlbiBGRVUgYWNjb3VudCc7CiRsYW5nWydwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJ10gPSAnVmVsZCBkZWZpbml0aWVzIGdlJml1bWw7bXBvcnRlZXJkJzsKJGxhbmdbJ3Byb21wdF9mcm9udGVuZF9zaG93ZXhwaXJlZCddID0gJ1Rvb24gYmVkcmlqdmVuIGRpZSBhYW5nZW1hYWt0IHppam4gZG9vciB2ZXJsb3BlbiBGcm9udGVuZCBVc2Vycyc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsZ2VtZW5lIGluc3RlbGxpbmdlbic7CiRsYW5nWydwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnXSA9ICdIaWVyYXJjaGllIFBvc2l0aWVzIEFhbmdlbWFha3QnOwokbGFuZ1sncHJvbXB0X2ljb24nXSA9ICdQaWN0b2dyYW0nOwokbGFuZ1sncHJvbXB0X2lnbm9yZV9hZGRyZXNzJ10gPSAnTmVnZWVyIGFkcmVzdmVsZCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5ZGVmcyddID0gJ05pZXQgYWFud2V6aWdlIGNhdGVnb3JpJmV1bWw7biBjcmUmZXVtbDtyZW4gYmlqIGhldCBpbXBvcnRlcmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnl2YWxzJ10gPSAnVnVsbGVuIHZhbiBjYXRlZ29yaWUgd2FhcmRlbiBiaWogaW1wb3J0ZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NzdmZpbGUnXSA9ICdVcGxvYWQgQ1NWIEJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdBYW5tYWtlbiBuaWV0IGFhbndlemlnZSAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpZXMgdGlqZGVucyBoZXQgaW1wb3J0ZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1Z1bGxlbiB2YW4gJnF1b3Q7YWRkaXRpb25hbCBmaWVsZCZxdW90OyB3YWFyZGVuIGJpaiBpbXBvcnRlcmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5ZGVmcyddID0gJ0ltcG9ydGVlciBIaWVyYXJjaGllIFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSW1wb3J0ZWVyIEhpZXJhcmNoaWUgV2FhcmRlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2xvb2t1cGxhdGxvbmcnXSA9ICdMYXRpdHVkZSBlbiBsb25naXR1ZGUgd2FhcmRlbiBvcHpvZWtlbiBpbmRpZW4gbmlldCBhYW53ZXppZyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnRGl0IHNqYWJsb29uIGlzIGVlbiBmb3JtdWxpZXIgZGllIGdlYnJ1aWt0IHdvcmR0IGRvb3IgZ2VhdXRvcmlzZWVyZGUgZnJvbnRlbmQgdXNlcnMgb20gZGF0YSB0ZSBpbXBvcnRlcmVuIHVpdCBlZW4gZ29lZCBvcGdlc3RlbGQgQ1NWIGJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdUZSBpbXBvcnRlcmVuIEtNTCBiZXN0YW5kJzsKJGxhbmdbJ3Byb21wdF9udW1lcnJvcnMnXSA9ICdNZWVyZGVyZSBmb3V0ZW4gZ2V2b25kZW4nOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnQWFudGFsIHRlIGltcG9ydGVyZW4gcmVjb3Jkcyc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnSGV0IGFhbnRhbCB3ZWVydGVnZXZlbiByZWNvcmRzIHBlciBwYWdpbmEgaW4gZGUgc2FtZW52YXR0aW5nc21vZHVzJzsKJGxhbmdbJ3Byb21wdF9wcmVwZW5kX3dlYnNpdGVfaHR0cCddID0gJ1dlYnNpdGVuYW1lbiB2b29yemllbiB2YW4gaHR0cDovLyc7CiRsYW5nWydwcm9tcHRfc3RhdHVzJ10gPSAnU3RhdHVzIHZhbiBkZSBnZSZpdW1sO21wb3J0ZWVyZGUgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYWFyZHNvcnRlcmluZyBpbiBkZSBzYW1lbnZhdHRpbmdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEZSBzdGFuZGFhcmRzb3J0ZWVydm9sZ29yZGUgaW4gZGUgc2FtZW52YXR0aW5nc21vZHVzIDxlbT4oZ2VsZHQgbmlldCBhbHMgaGV0IHNvcnRlcmVuICYjMDM5O3JhbmRvbSYjMDM5OyBpczwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NqYWJsb29uJzsKJGxhbmdbJ3B1YmxpYyddID0gJ1B1YmxpZWsnOwokbGFuZ1sncHVibGlzaCddID0gJ1B1YmxpY2VyZW4nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnR2VwdWJsaWNlZXJkJzsKCiMjIFIKJGxhbmdbJ3JhbmRvbSddID0gJ1dpbGxla2V1cmlnJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdIZXJzY2hpa2tlbic7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ0hlcnN0ZWwgbmFhciBzdGFuZGFhcmQnOwokbGFuZ1sncmVzZXRfdG9fZmFjdG9yeSddID0gJ1Jlc2V0IG5hYXIgc3lzdGVlbSBzdGFuZGFhcmQnOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdEZXplIGJld2Vya2luZyB6YWwgZGUgc2phYmxvb25pbmhvdWQgaGVyc3RlbGxlbiBuYWFyIGRlIHN5c3RlZW1zdGFuZGFhcmQuIFdlZXQgdSB6ZWtlciBkYXQgdSB2ZXJkZXIgd2lsdCBnYWFuPyc7CiRsYW5nWydyZXR1cm4nXSA9ICdUZXJ1Zyc7CgojIyBTCiRsYW5nWydzZWFyY2gnXSA9ICdab2VrJzsKJGxhbmdbJ3NlYXJjaGVzJ10gPSAnWm9la29wZHJhY2h0ZW4nOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlcyddID0gJ1pvZWsgRm9ybXVsaWVyIFNqYWJsb25lbic7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbiAvIHdpanppZ2VuIHZhbiBlZW4gWm9layBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnS2llcyAmZWFjdXRlOyZlYWN1dGU7bic7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnU2VsZWN0ZWVyIGFsbGVzJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRlZXIgb3AnOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydGVlciB2b2xnb3JkZSc7CiRsYW5nWydzdWJtaXQnXSA9ICdWZXJzdHVyZW4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1NhbWVudmF0dGluZ3NzYWJsb25lbic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGV1cGRhdGVkJ10gPSAnU2FtZW52YXR0aW5nc3NqYWJsb29uIGJpamdld2Vya3QnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdTYW1lbnZhdHRpbmdzc2phYmxvb24gdG9ldm9lZ2VuL2Jld2Vya2VuJzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAnU3RhbmRhYXJkd2FhcmRlbiBoZXJzdGVsbGVuJzsKCiMjIFQKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVmb29uJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9vbic7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR1dXInOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBDYXRlZ29yaWVsaWpzdHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgRGV0YWlsc2phYmxvb24nOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRhbGJ1bV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgRnJvbnRlbmQgd2lqemlnIEFsYnVtIFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgRnJvbnRlbmQgZm9ybXVsaWVyc2phYmxvb24nOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBGcm9udGVuZCBMaWpzdCBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9nYWxsZXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBHYWxsZXJ5IFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBIaWVyYXJjaGllIExpanN0IFNqYWJsb25lbic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfcmVwb3J0J10gPSAnQ1NWIEltcG9ydCBSYXBwb3J0JzsKJGxhbmdbJ3RpdGxlX25ld3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgWm9layBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9zZWFyY2hmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBab2VrIEZvcm11bGllciBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBTYW1lbnZhdHRpbmdzc2phYmxvb24nOwoKIyMgVQokbGFuZ1sndXAnXSA9ICdPcCc7CiRsYW5nWyd1cmxzJ10gPSAnVXJsJiMwMzk7cyc7CiRsYW5nWyd1cmxfYXV0b2NyZWF0ZSddID0gJ0NyZWUmZXVtbDtyIGF1dG9tYXRpc2NoIHVuaWVrZSBVUkwmIzAzOTtzJzsKJGxhbmdbJ3VybF9jcmVhdGVvbmNvcHknXSA9ICdDcmUmZXVtbDtlciBVUkwmIzAzOTtzIGJpaiBoZXQga29waWVyZW4nOwokbGFuZ1sndXJsX3JlZGlyZWN0b2xkJ10gPSAnVmVyem9yZyBlZW4gMzAxIHJlZGlyZWN0IG5hYXIgZGUgbmlldXdlIFVSTCYjMDM5O3MnOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnRWVuIFVSTCBpbnZvZXJlbiBpcyB2ZXJwbGljaHQnOwoKIyMgVgokbGFuZ1sndmlld193ZWJzaXRlJ10gPSAnR2EgbmFhciBkZSB3ZWJzaXRlJzsKCiMjIFcKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdtZXQgZ2VzZWxlY3RlZXJkJzsKCiMjIFkKJGxhbmdbJ3llcyddID0gJ0phJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdHl3bnknOwokbGFuZ1snYWRkbGluayddID0gJ0RvZGFqIGxpbmsnOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXMnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdEb2RhaiBrYXRlZ29yacSZJzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdEb2RhaiBmaXJtxJknOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdEb2RhaiBkZWZpbmljasSZIHBvbGEnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ1dpZG9jem5lIHR5bGtvIGRsYSBBZG1pbmEnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0N6eSBuYSBwZXdubyBjaGNlc3ogdG8gdXN1bsSFxIc/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Jvc27EhWNvJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1dyJm9hY3V0ZTvEhyc7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0N6eSBVxbx5dGtvd25pY3kgRkVVIG1vZ8SFIGVkeXRvd2HEhyB0byBwb2xlPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0N6eSBVxbx5dGtvd25pY3kgRkVVIG1vZ8SFIG9nbMSFZGHEhyB0byBwb2xlPyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0thdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWdvcmlhIHpvc3RhxYJhIGRvZGFuYSc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdLYXRlZ29yaWEgem9zdGHFgmEgemFrdHVhbGl6b3dhbmEnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL0VkeXR1aiBzemFibG9uIGxpc3R5IGthdGVnb3JpaSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBsaXN0eSBrYXRlZ29yaWknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnTGlzdGEga2F0ZWdvcmlpIHpvc3RhxYJhIHpha3R1YWxpem93YW5hJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdGaXJtYSc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdGaXJtYSBkb2RhbmEnOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdOYXp3YSBmaXJteSc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0Zpcm1hIHpha3R1YWxpem93YW5hJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0Zpcm15JzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnRmlybWEnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0thdGFsb2cgZmlybSc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdFbWFpbCBrb250YWt0b3d5JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnV3Bpc2FuYSBkYXRhJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBkb215xZtsbmUnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlV3YWdhOjwvc3Ryb25nPiBUcmXFm8SHIHR5Y2ggcCZvYWN1dGU7bCB0ZWtzdG93eWNoIGplc3QgdcW8eXdhbmEgYnkgb2tyZcWbbGnEhyBkb215xZtsbsSFIHRyZcWbxIcgc3phYmxvbnUgc3Ryb255LCBrdCZvYWN1dGU7cmEgcG9rYcW8ZSBzacSZLCBnZHkga2xpa25pZXN6ICZxdW90O0RvZGFqIHN6YWJsb24mcXVvdDsgdyBvZHBvd2llZG5pZWogemFrxYJhZGNlIHN6YWJsb24mb2FjdXRlO3cuIEVkeXRvd2FuaWUgamVkbmVnbyB6IHBvbmnFvHN6eWNoIHAmb2FjdXRlO2wgdGVrc3Rvd3ljaCBuaWUgYsSZZHppZSBtaWHFgm8gb2R6d2llcmNpZWRsZW5pYSBuYSBUd29qZWogc3Ryb25pZSBpbnRlcm5ldG93ZWogKGlubnltaSBzxYJvd3k6IGLEmWR6aWUgZG90eWN6ecWCbyBqZWR5bmllIHBhbmVsdSBhZG1pbmlzdHJhY3lqbmVnbykuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1VzdcWEJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnVXN1xYQga2F0ZWdvcmnEmSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnVXN1xYQgZmlybcSZJzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnVXN1xYQgZGVmaW5pY2rEmSBwb2xhJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdNYWxlasSFY28nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdPcGlzJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSc7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ1N6Y3plZyZvYWN1dGU7xYJ5JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai9lZHl0dWogc3phYmxvbiBzemN6ZWcmb2FjdXRlO8WCb3d5JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1N6YWJsb255IHN6Y3plZyZvYWN1dGU7xYJvd2UnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnU3phYmxvbiBzemN6ZWcmb2FjdXRlO8WCb3d5IHpha3R1YWxpem93YW55JzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnV3nFgsSFY3pvbmUnOwokbGFuZ1snZG93biddID0gJ0RvIGRvxYJ1JzsKJGxhbmdbJ2RyYWZ0J10gPSAnS29waWEgcm9ib2N6YSc7CiRsYW5nWydlZGl0J10gPSAnRWR5dHVqJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ0VkeXR1aiBrYXRlZ29yacSZJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnRWR5dHVqIGZpcm3EmSc7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdFZHl0dWogZGVmaW5pY2rEmSBwb2xhJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtbWFpbCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ05hendhIGZpcm15IGplc3QgbmllcHJhd2lkxYJvd2EnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICdGaXJtYSBvIHRha2llaiBuYXp3aWUganXFvCBpc3RuaWVqZSB3IGthdGFsb2d1JzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTmllIHpuYWxlemlvbm8gbW9kdcWCdSBVxbx5dGtvd25payZvYWN1dGU7dyBGRVUgLSBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0Vrc3BvcnQgQ1NWJzsKJGxhbmdbJ2ZheCddID0gJ0Zha3MnOwokbGFuZ1snZmF4dGV4dCddID0gJ0Zha3MnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbmljamEgcG9sYSc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbmljamUgcCZvYWN1dGU7bCc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEZWZpbmljamEgcG9sYSc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRGVmaW5pY2phIHBvbGEgZG9kYW5hJzsKJGxhbmdbJ2ZpZWxkZGVmdXBkYXRlZCddID0gJ0RlZmluaWNqYSBwb2xhIHpha3R1YWxpem93YW5hJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0RlZmluaWNqYSBwb2xhIHNrYXNrb3dhbmEnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL2VkeXR1aiBTemFibG9uIGZvcm11bGFyemEgdcW8eXRrb3duaWsmb2FjdXRlO3cnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnRWR5dHVqIHN6YWJsb255IGZpcm0nOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGV1cGRhdGVkJ10gPSAnU3phYmxvbiBmaXJtIHpha3R1YWxpem93YW55JzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW1hZ2VjdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ09icmF6ZWsnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4IGTFgnVnb8WbxIcnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ01heCBkxYJ1Z2/Fm8SHJzsKJGxhbmdbJ21heGxlbmd0aHRleHQnXSA9ICdNYXggZMWCdWdvxZvEhyc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRhIG9zdGF0bmllaiBtb2R5ZmlrYWNqaSc7CiRsYW5nWyduYW1lJ10gPSAnTmF6d2EnOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOYXp3YSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1BvdHJ6ZWJ1amVzeiB1cHJhd25pZW5pYSAmIzAzOTslcyYjMDM5OyBieSB3eWtvbmHEhyB0xJkgb3BlcmFjasSZJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ05pZSBwb2Rhbm8gbmF6d3kgZmlybXknOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdOaWUgcG9kYW5vIG5hend5JzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdUbyBuaWUgbnVtZXIhIChOYU4pJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1sncGFnZSddID0gJ1N0cm9uYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdEZXRlcm1pbmUgdGhlIHByaW1hcnkgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoaXMgcGFyYW1ldGVyIGFyZToNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmRkIHRoZW4gdG8gZGV0YWlsIG1vZGUuPC9saT4NCiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBEaXNwbGF5IGNvbXBhbmllcyBpbiBhIHN1bW1hcnkgbW9kZS48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBEaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPg0KICA8bGk+ZmVfZWRpdCAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPg0KICAgDQo8L3VsPg0KJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1d5Ymllcnogc3phYmxvbiAocG8gbmF6d2llKSwga3Qmb2FjdXRlO3J5IGLEmWR6aWUgdcW8eXdhbnkgcG9kY3phcyB3ecWbd2lldGxhbmlhIGxpc3R5a2F0ZWdvcmlpJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ1JlcXVpcmVkIGZvciB0aGUgZnJvbnRlbmQgZWRpdGluZyBhbmQgZGV0YWlsIG1vZGVzLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoaWNoIGNvbXBhbnkgcmVjb3JkIHRvIGVkaXQgb3Igdmlldy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZWNpZnkgYSBwYWdlIGFsaWFzIChieSBuYW1lKSB0byB1c2UgZm9yIGRpc3BsYXlpbmcgYSBkZXRhaWwgcmVjb3JkLiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZGV0YWlsIHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZnJvbnQgZW5kIGNvbXBhbnkgZWRpdCBmb3JtLic7CiRsYW5nWydwYXJhbV9zZWxlY3RjYXRlZ29yeSddID0gJ0lmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCwgdGhlbiBhIGZvcm0gd2lsbCBiZSBnZW5lcmF0ZWQgYWxsb3dpbmcgdXNlcnMgdG8gaW50ZXJhY3RpdmVseSBmaWx0ZXIgY29tcGFueSByZWNvcmRzIG9uIGEgc2luZ2xlIGNhdGVnb3J5LiAgVGhpcyBmbGFnIHNob3VsZCBub3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmIzAzOTtjYXRlZ29yeSYjMDM5OyBwYXJhbWV0ZXIuJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdSbyB1c3Rhd2llbmllIG1hIHR5bGtvIHpuYWN6ZW5pZSBkbGEgd2lkb2t1IGxpc3R5IGthdGVnb3JpaS4gR2R5IHRhIG9wY2phIGplc3Qgd8WCxIVjem9uYSwga2F0ZWdvcmllIGJleiBwYXN1asSFY3ljaCBmaXJtLCB0YWvFvGUgYsSZZMSFIHd5xZt3aWV0bGFuZS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgc3VtbWFyeSB2aWV3LiAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHRhZyBwYXJhbWV0ZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1xYIgS2F0YWxvZyBmaXJtIHpvc3RhxYIgcG9tecWbbG5pZSB6YWluc3RhbG93YW55JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNb2R1xYIgS2F0YWxvZyBmaXJtIHpvc3RhxYIgcG9tecWbbG5pZSBvZGluc3RhbG93YW55LiBXc3p5c3RraWUgZGFuZSB3cHJvd2Fkem9uZSBkbyBrYXRhbG9ndSB6b3N0YcWCeSBza2Fzb3dhbmUgeiBiYXp5IGRhbnljaC4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnQ3p5IG5hIHBld25vIGNoY2VzeiBvZGluc3RhbG93YcSHIHRlbiBtb2R1xYI/IE9kaW5zdGFsb3dhbmllIHRlZ28gbW9kdcWCdSB1c3VuaWUgYmV6cG93cm90bmllIHdzenlzdGtpZSBkYW5lLCBrdCZvYWN1dGU7cmUgem9zdGHFgnkganXFvCB3cHJvd2Fkem9uZSBkbyBLYXRhbG9ndSBmaXJtLic7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEb215xZtsbmEgc3Ryb25hIHByemVraWVyb3dhbmlhIHcgd2lkb2t1IHN6Y3plZyZvYWN1dGU7xYImb2FjdXRlO3cnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xpY3piYSByZWtvcmQmb2FjdXRlO3cgbmEgamVkbmVqIHN0cm9uaWUgdyB3aWRva3Ugb2cmb2FjdXRlO2xueW0nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRG9tecWbbG5lIHNvcnRvd2FuaWUgdyB3aWRva3Ugb2cmb2FjdXRlO2xueW0nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEb215xZtsbnkgcG9yesSFZGVrIHNvcnRvd2FuaWEgdyB3aWRva3Ugb2cmb2FjdXRlO2xueW0gPGVtPihuaWUgbWEgem5hY3plbmlhLCBnZHkgdXN0YXdpb25lIGplc3Qgc29ydG93YW5pZSB3IHRyeWJpZSAmIzAzOTtsb3Nvd28mIzAzOTspPC9lbT4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU3phYmxvbic7CiRsYW5nWydwdWJsaWMnXSA9ICdQdWJsaWN6bnknOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnT3B1Ymxpa293YW55JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnVXN0YXdpZW5pYSc7CiRsYW5nWydyYW5kb20nXSA9ICdMb3Nvd3knOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdQcnp5d3Imb2FjdXRlO8SHIHVzdGF3aWVuaWEgZG9tecWbbG5lJzsKJGxhbmdbJ3Jlc3RvcmV0b2RlZmF1bHRzbXNnJ10gPSAnVGEgb3BlcmFjamEgb2R0d29yenkgc3lzdGVtb3dlIHN6YWJsb255IGRvbXnFm2xuZSB0ZWdvIG1vZHXFgnUsIGthc3VqxIVjIGV3ZW50dWFsbmUgem1pYW55LiBDenkgbmEgcGV3bm8gY2hjZXN6IHd5a29uYcSHIHTEmSBvcGVyYWNqxJk/JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1N6dWthaic7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snc3VibWl0J10gPSAnV3nFm2xpaic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL2VkeXR1aiBzemFibG9uIG9nJm9hY3V0ZTtsbnknOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N6YWJsb255IG9nJm9hY3V0ZTtsbmUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1N6YWJsb24gb2cmb2FjdXRlO2xueSB6YWt0dWFsaXpvd2FueSc7CiRsYW5nWydzeXNkZWZhdWx0cyddID0gJ1Byenl3ciZvYWN1dGU7xIcgZG9tecWbbG5lJzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVmb24nOwokbGFuZ1sndGVsZXBob25ldGV4dCddID0gJ1RlbGVmb24nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RvbXnFm2xueSBzemFibG9uIGxpc3R5IGthdGVnb3JpaSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IHN6YWJsb24gc3pjemVnJm9hY3V0ZTvFgm93eSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IHN6YWJsb24gZm9ybXVsYXJ6YSB1xbx5dGtvd25pa2EnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEb215xZtsbnkgc3phYmxvbiBvZyZvYWN1dGU7bG55JzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUeXAnOwokbGFuZ1sndXAnXSA9ICdEbyBnJm9hY3V0ZTtyeSc7CiRsYW5nWyd3ZWJzaXRlJ10gPSAnU3Ryb25hIHd3dyc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1N0cm9uYSB3d3cnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yMzU5MTQ1NDk3ODc4Njc2NTAwLjEyMTMyMDAyNzguMTIxOTA1ODY1OS4xMjE5MDYyNzQxLjg4JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxOTA1ODY1OS44Ny4xNi51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ9CQ0LrRgtC40LLQvdC+JzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINGB0YHRi9C70LrRgyc7CiRsYW5nWydhZGRyZXNzJ10gPSAn0JDQtNGA0LXRgSc7CiRsYW5nWydhZGRyZXNzdGV4dCddID0gJ9CQ0LTRgNC10YEnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICfQlNC+0LHQsNCy0LjRgtGMINC60LDRgtC10LPQvtGA0LjRjic7CiRsYW5nWydhZGRjb21wYW55J10gPSAn0JTQvtCx0LDQstC40YLRjCDQutC+0LzQv9Cw0L3QuNGOJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQvtC/0YDQtdC00LXQu9C10L3QuNC1INC/0L7Qu9GPJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICfQktC40LTQuNGCINGC0L7Qu9GM0LrQviDQkNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgCc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtC+Pyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICfQn9C+INCy0L7Qt9GA0LDRgdGC0LDQvdC40Y4nOwokbGFuZ1snY2FuY2VsJ10gPSAn0J7RgtC80LXQvdCwJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9C4INGE0YDQvtC90YLQtdC90LTQsCDQvNC+0LPRg9GCINGA0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGN0YLQviDQv9C+0LvQtT8nOwokbGFuZ1snY2FudXNlcnZpZXcnXSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0YTRgNC+0L3RgtC10L3QtNCwINC80L7Qs9GD0YIg0LLQuNC00LXRgtGMINGN0YLQviDQv9C+0LvQtT8nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICfQmtCw0YLQtdCz0L7RgNC40Y8nOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ9Ca0LDRgtC10LPQvtGA0LjQuCc7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICfQmtCw0YLQtdCz0L7RgNC40Y8nOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ9Ca0LDRgtC10LPQvtGA0LjRjyDQtNC+0LHQsNCy0LvQtdC90LAnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINC+0LHQvdC+0LLQu9C10L3QsCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAn0JTQvtCx0LDQstC40YLRjC/QoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRgdC/0LjRgdC+0Log0YjQsNCx0LvQvtC90L7QsiDQutCw0YLQtdCz0L7RgNC40LgnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAn0KHQv9C40YHQvtC6INGI0LDQsdC70L7QvdC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ9Ch0L/QuNGB0L7QuiDQutCw0YLQtdCz0L7RgNC40Lkg0L7QsdC90L7QstC70ZHQvSc7CiRsYW5nWydjb21wYW55J10gPSAn0JrQvtC80L/QsNC90LjRjyc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICfQmtC+0LzQv9Cw0L3QuNGPINC00L7QsdCw0LLQu9C10L3QsCc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ9Cd0LDQt9Cy0LDQvdC40LUg0LrQvtC80L/QsNC90LjQuCc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ9Ca0L7QvNC/0LDQvdC40Y8g0L7QsdC90L7QstC70LXQvdCwJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ9Ca0L7QvNC/0LDQvdC40LgnOwokbGFuZ1snY29tcGFueXRleHQnXSA9ICfQmtC+0LzQv9Cw0L3QuNGPJzsKJGxhbmdbJ2NvbXBhbnlkaXJlY3RvcnknXSA9ICfQmtCw0YLQsNC70L7QsyDQutC+0LzQv9Cw0L3QuNC5JzsKJGxhbmdbJ2NvbnRhY3RlbWFpbCddID0gJ9Ca0L7QvdGC0LDQutGC0L3Ri9C5IEVtYWlsJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAn0JTQsNGC0LAg0LfQsNC/0LjRgdC4JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L0g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPtCf0YDQuNC80LXRh9Cw0L3QuNC1Ojwvc3Ryb25nPiDQodC+0LTQtdGA0LbQsNC90LjQtSDRjdGC0LjRhSDRgtC10LrRgdGC0L7QstGL0YUg0L7QsdC70LDRgdGC0LXQuSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0YHQvtC00LXRgNC20LDQvdC40Y8g0YjQsNCx0LvQvtC90LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINC90LDQttC80LjRgtC1INC60L3QvtC/0LrRgyAgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7INCyINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LXQvCDRiNCw0LHQu9C+0L0g0L3QsCDQstC60LvQsNC00LrQtS4g0JjQt9C80LXQvdC10L3QuNC1INGC0LXQutGB0YLQsCDQvtC00L3QvtC5INC40Lcg0Y3RgtC40YUg0L7QsdC70LDRgdGC0LXQuSDRgtC10LrRgdGCINC90LUg0LHRg9C00LXRgiDQuNC80LXRgtGMINC90LXQv9C+0YHRgNC10LTRgdGC0LLQtdC90L3QvtC1INCy0LvQuNGP0L3QuNC1INC90LAg0JLQsNGIINGB0LDQudGCLic7CiRsYW5nWydkZWxldGUnXSA9ICfQo9C00LDQu9C40YLRjCc7CiRsYW5nWydkZWxldGVjYXRlZ29yeSddID0gJ9Cj0LTQsNC70LjRgtGMINC60LDRgtC10LPQvtGA0LjRjic7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAn0KPQtNCw0LvQuNGC0Ywg0LrQvtC80L/QsNC90LjRjic7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ9Cj0LTQsNC70LjRgtGMINC+0L/RgNC10LTQtdC70LXQvdC40LUg0L/QvtC70Y8nOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ9Cf0L4g0YPQsdGL0LLQsNC90LjRjic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ9Ce0L/QuNGB0LDQvdC40LUnOwokbGFuZ1snZGV0YWlscyddID0gJ9Cf0L7QtNGA0L7QsdC90L7RgdGC0LgnOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICfQn9C+0LTRgNC+0LHQvdC+0YHRgtC4JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSBEZXRhaWwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC9IERldGFpbCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICfQqNCw0LHQu9C+0L0gRGV0YWlsINC+0LHQvdC+0LLQu9GR0L0nOwokbGFuZ1snZGlzYWJsZWQnXSA9ICfQntGC0LrQu9GO0YfQtdC90L4nOwokbGFuZ1snZG93biddID0gJ9CS0L3QuNC3JzsKJGxhbmdbJ2RyYWZ0J10gPSAn0KfQtdGA0L3QvtCy0LjQuic7CiRsYW5nWydlZGl0J10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSc7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQutCw0YLQtdCz0L7RgNC40Y4nOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQutC+0LzQv9Cw0L3QuNGOJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ0VkaXQgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFbWFpbCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ9Cd0LDQt9Cy0LDQvdC40LUg0LrQvtC80L/QsNC90LjQuCDQvdC1INCy0LXRgNC90L4nOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICfQmtC+0LzQv9Cw0L3QuNGPINGBINGC0LDQutC40Lwg0L3QsNC30LLQsNC90LjQtdC8INGD0LbQtSDQvdCw0YXQvtC00LjRgtGB0Y8g0LIg0LHQsNC30LUg0LTQsNC90L3Ri9GFJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvdCw0LnRgtC4INC80L7QtNGD0LvRjCBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ9Ct0LrRgdC/0L7RgNGCINCyIENTVic7CiRsYW5nWydmYXgnXSA9ICfQpNCw0LrRgSc7CiRsYW5nWydmYXh0ZXh0J10gPSAn0KTQsNC60YEnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsKJGxhbmdbJ2ZpZWxkZGVmdGV4dCddID0gJ0ZpZWxkIERlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0ZpZWxkIERlZmluaXRpb24gQWRkZWQnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbiBVcGRhdGVkJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0ZpZWxkIERlZmluaXRpb24gRGVsZXRlZCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgRnJvbnRlbmQgRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdFZGl0IENvbXBhbnkgVGVtcGxhdGVzJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ0VkaXQgQ29tcGFueSBUZW1wbGF0ZSBVcGRhdGVkJzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snaW1hZ2VjdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ9CY0LfQvtCx0YDQsNC20LXQvdC40LUnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ9Cb0L7Qs9C+JzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ9Cc0LDQutGBLiDQtNC70LjQvdCwJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICfQnNCw0LrRgS4g0LTQu9C40L3QsCc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAn0JzQsNC60YEuINC00LvQuNC90LAnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAn0JTQsNGC0LAg0L/QvtGB0LvQtdC00L3QtdCz0L4g0LjQt9C80LXQvdC10L3QuNGPJzsKJGxhbmdbJ25hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1JzsKJGxhbmdbJ25hbWV0ZXh0J10gPSAn0J3QsNC30LLQsNC90LjQtSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ9CS0LDQvCDQvdGD0LbQvdC+INC40LzQtdGC0Ywg0L/RgNCw0LLQsCBcJyVzXCcg0LTQu9GPINGN0YLQvtCz0L4g0LTQtdC50YHRgtCy0LjRjy4nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAn0J3QtSDQt9Cw0LTQsNC90L4g0L3QsNC30LLQsNC90LjQtSDQutC+0LzQv9Cw0L3QuNC4JzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAn0J3QtSDQt9Cw0LTQsNC90L4g0L3QsNC30LLQsNC90LjQtSc7CiRsYW5nWydub3RhbnVtYmVyJ10gPSAn0J3QtSDRh9C40YHQu9C+JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydvZiddID0gJ9CY0LcnOwokbGFuZ1sncGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnRGV0ZXJtaW5lIHRoZSBwcmltYXJ5IGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGZvciB0aGlzIHBhcmFtZXRlciBhcmU6DQo8dWw+DQogIDxsaT5jYXRlZ29yeWxpc3QgLS0gRGlzcGxheSBhIGxpc3Qgb2YgY2F0ZWdvcmllcy4gIFVzZXJzIGNhbiBkcmlsbCBkb3duIHRvIHN1bW1hcnkgbW9kZSwgYW5kZCB0aGVuIHRvIGRldGFpbCBtb2RlLjwvbGk+DQogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLS0gRGlzcGxheSBjb21wYW5pZXMgaW4gYSBzdW1tYXJ5IG1vZGUuPC9saT4NCiAgPGxpPmRldGFpbHMgLS0gRGlzcGxheSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuPC9saT4NCiAgPGxpPmZlX2VkaXQgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuPC9saT4NCiAgIA0KPC91bD4NCic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGNhdGVnb3J5IGxpc3Qgdmlldy4nOwokbGFuZ1sncGFyYW1fY29tcGFueWlkJ10gPSAnUmVxdWlyZWQgZm9yIHRoZSBmcm9udGVuZCBlZGl0aW5nIGFuZCBkZXRhaWwgbW9kZXMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgd2hpY2ggY29tcGFueSByZWNvcmQgdG8gZWRpdCBvciB2aWV3Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnU3BlY2lmeSBhIHBhZ2UgYWxpYXMgKGJ5IG5hbWUpIHRvIHVzZSBmb3IgZGlzcGxheWluZyBhIGRldGFpbCByZWNvcmQuIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBkZXRhaWwgdmlldy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBmcm9udCBlbmQgY29tcGFueSBlZGl0IGZvcm0uJzsKJGxhbmdbJ3BhcmFtX3NlbGVjdGNhdGVnb3J5J10gPSAnSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGEgZm9ybSB3aWxsIGJlIGdlbmVyYXRlZCBhbGxvd2luZyB1c2VycyB0byBpbnRlcmFjdGl2ZWx5IGZpbHRlciBjb21wYW55IHJlY29yZHMgb24gYSBzaW5nbGUgY2F0ZWdvcnkuICBUaGlzIGZsYWcgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIFwnY2F0ZWdvcnlcJyBwYXJhbWV0ZXIuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IGNvbXBhbmllcy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5waG9uZTwvbGk+DQogIDxsaT5mYXg8L2xpPg0KICA8bGk+ZW1haWw8L2xpPg0KICA8bGk+d2Vic2l0ZSAtLSBUaGUgd2Vic2l0ZSB1cmw8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICfQo9C60LDQttC40YLQtSDRiNCw0LHQu9C+0L0gKNC/0L4g0L3QsNC30LLQsNC90LjRjiksINGH0YLQvtCx0Ysg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0YDQuCDQvtGC0L7QsdGA0LDQttC10L3QuNC4INGA0LXQt9GO0LzQtS4gPHN0cm9uZz7Qn9GA0LjQvNC10YfQsNC90LjQtTo8L3N0cm9uZz4g0K3RgtC+0YIg0L/QsNGA0LDQvNC10YLRgCDRgtC10LPQsCDQvdC1INGB0L7QstC80LXRgdGC0LjQvCDRgSDQutGA0LDRgdC40LLRi9C80LggVVJMLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ9Cc0L7QtNGD0LvRjCBDb21wYW55IERpcmVjdG9yeSDRg9GB0L/QtdGI0L3QviDRg9GB0YLQsNC90L7QstC70LXQvSc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAn0JzQvtC00YPQu9GMIENvbXBhbnkgRGlyZWN0b3J5INGD0YHQv9C10YjQvdC+INGD0LTQsNC70ZHQvS4g0JLRgdC1INGB0LLRj9C30LDQvdC90YvQtSDQtNCw0L3QvdGL0LUg0LrQvtC80L/QsNC90LjQuSDQsdGL0LvQuCDRgdGC0ZHRgNGC0YsnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRjdGC0L7RgiDQvNC+0LTRg9C70Yw/INCj0LTQsNC70LXQvdC40LUg0Y3RgtC+0LPQviDQvNC+0LTRg9C70Y8g0L3QsNCy0YHQtdCz0LTQsCDRgdC+0YLRgNGR0YIg0LLRgdC1INGB0LLRj9C30LDQvdC90YvQtSDRgSDQvdC40Lwg0LTQsNC90L3Ri9C1INC60L7QvNC/0LDQvdC40LkuJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC/0LXRgNC10L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQsiDRgNC10LbQuNC8INC/0L7QtNGA0L7QsdC90L4nOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ9Cn0LjRgdC70L4g0LfQsNC/0LjRgdC10Lkg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0LIg0YDQtdC20LjQvNC1INGA0LXQt9GO0LzQtSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICfQodC+0YDRgtC40YDQvtCy0LrQsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDRgNC10LbQuNC80LUg0YDQtdC30Y7QvNC1JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnVGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiBzdW1tYXJ5IG1vZGUgPGVtPihkb2VzIG5vdCBhcHBseSB3aGVuIHNvcnRpbmcgaXMgXCdyYW5kb21cJzwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSc7CiRsYW5nWydwdWJsaWMnXSA9ICfQntCx0YnQuNC5JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ9Ce0L/Rg9Cx0LvQuNC60L7QstCw0L3Qvic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ9Cf0LDRgNCw0LzQtdGC0YDRiyc7CiRsYW5nWydyYW5kb20nXSA9ICfQodC70YPRh9Cw0LnQvdC+JzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAn0KHQsdGA0L7RgdC40YLRjCDQt9C90LDRh9C10L3QuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3Jlc3RvcmV0b2RlZmF1bHRzbXNnJ10gPSAn0K3RgtCwINC+0L/QtdGA0LDRhtC40Y8g0LLQvtGB0YHRgtCw0L3QvtCy0LjRgiDRgdC+0LTQtdGA0LbQsNC90LjQtSDRiNCw0LHQu9C+0L3QsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQuNC3INGB0LjRgdGC0LXQvNGLLiDQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INC/0YDQvtC00L7Qu9C20LjRgtGMPyc7CiRsYW5nWydzZWFyY2gnXSA9ICfQn9C+0LjRgdC6JzsKJGxhbmdbJ3N0YXR1cyddID0gJ9Ch0YLQsNGC0YPRgSc7CiRsYW5nWydzdWJtaXQnXSA9ICfQntGC0L/RgNCw0LLQuNGC0YwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSDRgNC10LfRjtC80LUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ9Co0LDQsdC70L7QvdGLINGA0LXQt9GO0LzQtSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGV1cGRhdGVkJ10gPSAn0KjQsNCx0LvQvtC9INGA0LXQt9GO0LzQtSDQvtCx0L3QvtCy0LvRkdC9JzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAn0JLQvtGB0YHRgtCw0L3QvtCy0LjRgtGMINC30L3QsNGH0LXQvdC40Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndGVsZXBob25lJ10gPSAn0KLQtdC70LXRhNC+0L0nOwokbGFuZ1sndGVsZXBob25ldGV4dCddID0gJ9Ci0LXQu9C10YTQvtC9JzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICfQmtCw0YLQtdCz0L7RgNC40Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0YHQv9C40YHQutCwINGI0LDQsdC70L7QvdC+0LInOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L/QvtC00YDQvtCx0L3Qvic7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAn0KTQvtGA0LzQsCDRiNCw0LHQu9C+0L3QsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YTRgNC+0L3RgtC10L3QtNCwJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDRgNC10LfRjtC80LUnOwokbGFuZ1sndHlwZSddID0gJ9Ci0LjQvyc7CiRsYW5nWyd0eXBldGV4dCddID0gJ9Ci0LjQvyc7CiRsYW5nWyd1cCddID0gJ9CS0LLQtdGA0YUnOwokbGFuZ1snd2Vic2l0ZSddID0gJ9CS0LXQsS3RgdCw0LnRgic7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ9CS0LXQsS3RgdCw0LnRgic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTkyNzM2OTEuMjAuNy51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vZm9ydW0vZm9ydW0ucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEwNDU1NjY2MDAuMTE5MzE2NDQ0MC4xMTk5Njc3MDU5LjExOTk2ODU1NDMuMzgnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBkaXJlY3RvcnkgbGlrZSBtb2R1bGUgZm9yIGNvbXBhbmllcy4gIEFsbG93cyBhZGRpbmcvZWRpdGluZy9pbXBvcnRpbmcvZXhwb3J0aW5nIGNvbXBhbnkgZGVmaW5pdGlvbnMsIGFuZCB2YXJpb3VzIHdheXMgb2YgZGlzcGxheWluZyB0aGUgY29tcGFueSBlbnRyaWVzIGluY2x1ZGluZyBzZWFyY2guICBUaGlzIG1vZHVsZSBpbnRlZ3JhdGVzIHdlbGwgd2l0aCBDR0dvb2dsZU1hcHMuJzsKJGxhbmdbJ21zZ19pbXBvcnRfY29tcGxldGUnXSA9ICdJbXBvcnRlcmluZ3Nwcm9jZXNzIGx5Y2thZGVzJzsKJGxhbmdbJ3Byb21wdF9oaWVyYXJjaGllc19pbXBvcnRlZCddID0gJ0hpZXJhcmtpIFBvc2l0aW9uZXIgU2thcGFkZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeWRlZnMnXSA9ICdJbXBvcnQgSGllcmFyY2h5IFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSW1wb3J0IEhpZXJhcmNoeSBWYWx1ZXMnOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeSddID0gJ0Vycm9yIGNyZWF0aW5nIGhpZXJhcmNoeSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfaGllcmFyY2h5J10gPSAnSGllcmFyY2h5IHdpdGggbG9uZyBuYW1lICZxdW90OyVzJnF1b3Q7IGFscmVhZHkgZXhpc3RzLic7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0Ymb3VtbDtyZXRhZyByYWRlcmF0JzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0ZlbCB2aWQgZmlsdXBwbGFkZG5pbmcnOwokbGFuZ1snZXJyb3JfZGVsaW1pdGVyJ10gPSAnRHUgbSZhcmluZztzdGUgc3BlY2lmaWNlcmEgZW4gZiZhdW1sO2x0YXZnciZhdW1sO25zYXJlJzsKJGxhbmdbJ2Vycm9yX25vc3BvdHNsZWZ0J10gPSAnWW91IGhhdmUgbm8gcmVtYWluaW5nIGNvbXBhbnkgc2xvdHMnOwokbGFuZ1snbXNnX3Nsb3RzdXNlZCddID0gJ1lvdSBoYXZlIHVzZWQgJWQgb2YgJWQgY29tcGFueSBzbG90cyc7CiRsYW5nWydpbXBvcnRfZmlsZW5hbWUnXSA9ICdWJmF1bWw7bGogQ1NWIGZpbCc7CiRsYW5nWydkZWxpbWl0ZXInXSA9ICdGJmF1bWw7bHRhdmdyJmF1bWw7bnNhcmUnOwokbGFuZ1snaW5mb19jc3ZmaWxlJ10gPSAnRGV0ICZhdW1sO3IgbSZvdW1sO2psaWd0IGF0dCBpbXBvcnRlcmEgZiZvdW1sO3JldGFnc2luZm9ybWF0aW9uIGZyJmFyaW5nO24gZW4gQVNDSUkgZmlsLic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBkZXNjcmliZXMgYSBmb3JtIHRoYXQgaXMgdXNlZCB0byBhbGxvdyBhdXRob3JpemVkIGZyb250ZW5kIHVzZXJzIHRvIGltcG9ydCBkYXRhIGZyb20gYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ1NWIGZpbGUnOwokbGFuZ1snZnJvbnRlbmRpbXBvcnR0ZW1wbGF0ZSddID0gJ0Zyb250ZW5kIENTViBJbXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdBbGxvdyBGcm9udGVuZFVzZXJzIHRvIGltcG9ydCByZWNvcmRzIGZyb20gQ1NWPyc7CiRsYW5nWydwYXJhbV9oaWVybGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBoaWVyYXJjaHkgbGlzdCB2aWV3Lic7CiRsYW5nWydoaWVybGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEhpZXJhcmNoeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1sncGFyYW1faGllciddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5oaWVybGlzdDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgaGllcmFyY2h5IG5hbWUgb2YgY29tcGFuaWVzIHRvIGRpc3BsYXkuICBJbiB0aGUgZGVmYXVsdCBhY3Rpb24sIFdpbGRjYXJkcyBhcmUgYWNjZXB0ZWQsIGkuZTogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydtc2dfaGllcmRlbGV0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gZGVsZXRlZCc7CiRsYW5nWydtc2dfaGllcnVwZGF0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gdXBkYXRlZCc7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFyY2h5IHBvc2l0aW9uIGFkZGVkJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdBZGQgSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoeSc7CiRsYW5nWydhZGRfZWRpdF9jYXRlZ29yeSddID0gJ0wmYXVtbDtnZyB0aWxsL1JlZGlnZXJhIGthdGVnb3JpJzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ0luc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnTWFsbGFyJzsKJGxhbmdbJ25vbmUnXSA9ICdJbmdhJzsKJGxhbmdbJ293bmVyJ10gPSAnJkF1bWw7Z2FyZSc7CiRsYW5nWydjcmVhdGVkJ10gPSAnU2thcGFkJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnJkF1bWw7bmRyYWQnOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZCBvciBFZGl0IGEgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdDYW4gZnJvbnRlbmQgdXNlcnMgY2hhbmdlIGEgY29tbXBhbnkgc3RhdHVzPyc7CiRsYW5nWydwcm9tcHRfZmV1X25ld19zdGF0dXMnXSA9ICdEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHJlY29yZHMgY3JlYXRlZCBvbiB0aGUgZnJvbnRlbmQnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaXN0IFRlbXBsYXRlcyc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsbG0mYXVtbDtubmEgSW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3Byb21wdF9mZXVfZWRpdF9zZXR0aW5ncyddID0gJ0Zyb250ZW5kIEVkaXRpbmcgU2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2ZldV9jcmVhdGUnXSA9ICdDYW4gRnJvbnRFbmRVc2VycyBDcmVhdGUgbmV3IFJlY29yZHM/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbnVtcmVjb3JkcyddID0gJ01heGltdW0gbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGEgRkVVIGFjY291bnQnOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnTnVtYmVyIG9mIEltcG9ydGVkIFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnQ2hlY2sgZm9yIGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZm9yIGltcG9ydGVkIHJlY29yZCc7CiRsYW5nWydwcm9tcHRfaWdub3JlX2FkZHJlc3MnXSA9ICdJZ25vcmUgYWRkcmVzcyBmaWVsZCc7CiRsYW5nWydwcm9tcHRfY29udmVydF9hZGRyZXNzJ10gPSAnQ29udmVydCBBZGRyZXNzZXMgdG8gY29vcmRpbmF0ZXMgKGlmIHRoZXJlIGFyZSBubyBjb29yZGluYXRlcyknOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdLTUwgRmlsZSB0byBJbXBvcnQnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0ZXJhIEtNTCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1vcHJ0ZXJhIEtNTCBmaWwnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnViZhdW1sO2xqIEVuJzsKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ1RvIHVzZSB0aGlzIGZ1bmN0aW9uIHlvdSBtdXN0IGJlIGxvZ2dlZCBpbiB0byB0aGUgZnJvbnRlbmQgb2YgdGhlIHdlYnNpdGUnOwokbGFuZ1snYWN0aXZlJ10gPSAnQWt0aXYnOwokbGFuZ1snYWRkbGluayddID0gJ0wmYXVtbDtnZyB0aWxsIGwmYXVtbDtuayc7CiRsYW5nWydhZGRyZXNzJ10gPSAnQWRyZXNzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXNzJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTCZhdW1sO2dnIHRpbGwga2F0ZWdvcmknOwokbGFuZ1snYWRkY29tcGFueSddID0gJ0wmYXVtbDtnZyB0aWxsIGYmb3VtbDtyZXRhZyc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0wmYXVtbDtnZyB0aWxsIGYmYXVtbDtsdGRlZmluaXRpb24nOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0VuZGFzdCBzeW5saWcgZiZvdW1sO3IgYWRtaW4nOwokbGFuZ1snYXJleW91c3VyZSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGRldHRhPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnYW5kZSc7CiRsYW5nWydjYW5jZWwnXSA9ICcmQXJpbmc7bmdyYSc7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0thbiBmcmFtc2lkZWFudiZhdW1sO25kYXJlICZhdW1sO25kcmEgZGV0dGEgZiZhdW1sO2x0ZXQ/JzsKJGxhbmdbJ2NhbnVzZXJ2aWV3J10gPSAnS2FuIGZyYW1zaWRlYW52JmF1bWw7bmRhcmUgc2UgZGV0dGEgZiZhdW1sO2x0ZXQ/JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2F0ZWdvcnl0ZXh0J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpIHRpbGxhZ2QnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmkgdXBwZGF0ZXJhZCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwvJmF1bWw7bmRyYSBtYWxsZW4gZiZvdW1sO3Iga2F0ZWdvcmlsaXN0YSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdNYWxsIGYmb3VtbDtyIGthdGVnb3JpbGlzdGEnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnS2F0ZWdvcmlsaXN0YSB1cHBkYXRlcmFkJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdGJm91bWw7cmV0YWcnOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRiZvdW1sO3JldGFnIHRpbGxhZ3QnOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdGJm91bWw7cmV0YWdzbmFtbic7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0Ymb3VtbDtyZXRhZyB1cHBkYXRlcmF0JzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0Ymb3VtbDtyZXRhZyc7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ0Ymb3VtbDtyZXRhZyc7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnRiZvdW1sO3JldGFnc2thdGFsb2cnOwokbGFuZ1snY29udGFjdGVtYWlsJ10gPSAnRS1wb3N0YWRyZXNzJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdGlsbGFnZCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnU3RhbmRhcmRtYWxsYXInOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IElubmVoJmFyaW5nO2xsZXQgaSBkZXNzYSB0ZXh0cnV0b3IgYW52JmF1bWw7bmRzIGYmb3VtbDtyIGF0dCBhbmdlIHN0YW5kYXJkaW5uZWgmYXJpbmc7bGxldCBmJm91bWw7ciBtYWxsYXJuYSBuJmF1bWw7ciBkdSBrbGlja2FyIHAmYXJpbmc7ICZhbXA7cXVvdDtMJmF1bWw7Z2cgdGlsbCBtYWxsJmFtcDtxdW90OyBpIHJlc3Bla3RpdmUgbWFsbGZsaWsuIEF0dCAmYXVtbDtuZHJhIGRlc3NhIHRleHRydXRvciBoYXIgZGV0IGludGUgbiZhcmluZztnb24gJm91bWw7Z29uYmxpY2tsaWcgcCZhcmluZzt2ZXJrYW4gcCZhcmluZzsgZGluIHdlYmJzaWRhLic7CiRsYW5nWydkZWxldGUnXSA9ICdUYSBib3J0JzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnVGEgYm9ydCBrYXRlZ29yaSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnVGEgYm9ydCBmJm91bWw7cmV0YWcnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdUYSBib3J0IGYmYXVtbDtsdGRlZmluaXRpb24nOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0ZhbGxhbmRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3Jpdm5pbmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2RldGFpbHN0ZXh0J10gPSAnRGV0YWxqZXInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3RhIGJvcnQgbWFsbCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGptYWxsYXInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnRGV0YWxqbWFsbCB1cHBkYXRlcmFkJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnQXZha3RpdmVyYWQnOwokbGFuZ1snZG93biddID0gJ05lZCc7CiRsYW5nWydkcmFmdCddID0gJ1V0a2FzdCc7CiRsYW5nWydlZGl0J10gPSAnJkF1bWw7bmRyYSc7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICcmQXVtbDtuZHJhIGthdGVnb3JpJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnJkF1bWw7bmRyYSBmJm91bWw7cmV0YWcnOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnJkF1bWw7bmRyYSBmJmF1bWw7bHRkZWZpbml0aW9uJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtcG9zdCc7CiRsYW5nWydlcnJvcl9iYWR1cGxvYWQnXSA9ICdFdHQgZmVsIHVwcHN0b2QgbWVkIGRlbiB1cHBsYWRkYWRlIGZpbGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRiZvdW1sO3JldGFnc25hbW5ldCAmYXVtbDtyIGludGUgZ2lsdGlndCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ0V0dCBmJm91bWw7cmV0YWcgbWVkIGRldCBuYW1uZXQgZmlubnMgcmVkYW4gaSBkYXRhYmFzZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnRW4ga2F0ZWdvcmkgbWVkIGRldCBuYW1uZXQgZXhpc3RlcmFyIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9jb21wYW55J10gPSAnRXR0IGYmb3VtbDtyZXRhZyBtZWQgZGV0IG5hbW5ldCAoJXMpIGV4aXN0ZXJhciByZWRhbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdFdHQgZiZhdW1sO2x0IG1lZCBkZXQgbmFtbmV0IGV4aXN0ZXJhciByZWRhbic7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkbGluZSddID0gJ0JhZCByZWNvcmQgZm91bmQgYXQgbGluZSAlZC4gIElzIHRoZXJlIGEgcnVsZSBtaXNzaW5nPyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkdmFsdWUnXSA9ICdBIGJhZCB2YWx1ZSB3YXMgZm91bmQgZm9yIHRoZSAlcyBmaWVsZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1cGxpY2F0ZSAlcyBydWxlIGF0IGxpbmUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpY2F0ZSBydWxlIGlkZW50aWZpZXIgYXQgbGluZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ0RvbnQga25vdyBob3cgdG8gaGFuZGxlIGxpbmUgJWQgd2l0aCB0aGUgcnVsZSBpZGVudGlmaWVyICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF91bmtub3ducnVsZSddID0gJ09rJmF1bWw7bmQgcmVnZWwgcCZhcmluZzsgcmFkICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY2F0ZWdvcnkgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY29tcGFueSBkZWZpbml0aW9uJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9maWVsZGRlZiddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgZmllbGQgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3BhcmFtJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnSW5nZW4gZmlsIGxhZGRhZGVzIHVwcCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHZhbHVlIHdhcyBtaXNzaW5nIGZyb20gdGhlIGZvcm0gaW5wdXQnOwokbGFuZ1snZXJyb3Jfbm9kcm9wZG93bm9wdGlvbnMnXSA9ICdObyBEcm9wZG93biBvcHRpb25zIHN1cHBsaWVkJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnS3VuZGUgaW50ZSBoaXR0YSBtb2R1bGVuIEZyb250RW5kVXNlcnMnOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdObyBtYXhpbXVtIGxlbmd0aCBmaWVsZCBzdXBwbGllZCc7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ05vIHJlY29yZHMgbWF0Y2hpbmcgeW91ciBjcml0ZXJpYSBjb3VsZCBiZSBmb3VuZCBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZXJyb3JfcG9zdGNvZGVfbG9va3VwJ10gPSAnS3VuZGUgaW50ZSBoaXR0YSBuJmFyaW5nO2dvbiBpbmZvcm1hdGlvbiBmJm91bWw7ciBwb3N0bnVtbWVyICVzJzsKJGxhbmdbJ2Vycm9yX3ByZWZpeF9tc2cnXSA9ICdFdHQgZmVsIHVwcHN0b2QgcCZhcmluZzsgcmVhZCAlZDogJXMnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0ZXJhIENTVi1maWwnOwokbGFuZ1snZmF4J10gPSAnRmF4bnVtbWVyJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXhudW1tZXInOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0YmYXVtbDtsdGRlZmluaXRpb25lcic7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uIHRpbGxhZ2QnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRiZhdW1sO2x0ZGVmaW5pdGlvbiB1cHBkYXRlcmFkJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0YmYXVtbDtsdGRlZmluaXRpb24gYm9ydHRhZ2VuJzsKJGxhbmdbJ2ZpZWxkX2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snZmllbGRfZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwvJmF1bWw7bmRyYSBtYWxsIGYmb3VtbDtyIGZyYW1zaWRlZm9ybXVsJmF1bWw7cic7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdNYWxsYXIgZiZvdW1sO3IgJmF1bWw7bmRyYSBmJm91bWw7cmV0YWcnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGV1cGRhdGVkJ10gPSAnTWFsbGFyIGYmb3VtbDtyICZhdW1sO25kcmEgZiZvdW1sO3JldGFnIHVwcGRhdGVyYWRlJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnU3BlY2lmeSB0aGUgb3B0aW9ucyBmb3IgdGhlIGRyb3Bkb3duIGNvbnRyb2wuICBPbmUgbGluZSBwZXIgZW50cnkuICBTZXBlcmF0ZSBrZXlzIGZyb20gdmFsdWVzIHdpdGggdGhlID0uICBpLmU6IGtleT12YWx1ZSc7CiRsYW5nWydpbWFnZWN1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnQmlsZCc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbW9wcnRlcmEgQ1NWJzsKJGxhbmdbJ2xhdGl0dWRlJ10gPSAnTGF0aXR1ZCc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xvZ29jdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnTG9nb3R5cCc7CiRsYW5nWydsb25naXR1ZGUnXSA9ICdMb25naXR1ZCc7CiRsYW5nWydsb29rdXAnXSA9ICdMb29rdXAgQ29vcmRpbmF0ZXMnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4bCZhdW1sO25nZCc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTWF4bCZhdW1sO25nZCc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAnTWF4bCZhdW1sO25nZCc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXR1bSBmJm91bWw7ciBzZW5hc3QgJmF1bWw7bmRyYWQnOwokbGFuZ1snbmFtZSddID0gJ05hbW4nOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOYW1uJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgYmVoJm91bWw7dmVyIHImYXVtbDt0dGlnaGV0ZW4gJiMwMzk7JXMmIzAzOTsgZiZvdW1sO3IgYXR0IHV0ZiZvdW1sO3JhIGRlbiBoJmF1bWw7ciBmdW5rdGlvbmVuJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnSW5nZXQgZiZvdW1sO3JldGFnc25hbW4gYW5nZXR0JzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnSW5nZXQgbmFtbiBhbmdldHQnOwokbGFuZ1snbm90YW51bWJlciddID0gJ0ludGUgZXR0IG51bW1lcic7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snb2YnXSA9ICdBdic7CiRsYW5nWydwYWdlJ10gPSAnU2lkYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdBbmdlciBtb2R1bGVucyBwcmltJmF1bWw7cmEgYmV0ZWVuZGUuIE0mb3VtbDtqbGlnYSB2JmF1bWw7cmRlbiBmJm91bWw7ciBkZW5uYSBwYXJhbWV0ZXIgJmF1bWw7cjoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBWaXNhciBlbiBsaXN0YSBtZWQga2F0ZWdvcmllci4gQW52JmF1bWw7bmRhcmUga2FuIGcmYXJpbmc7IHZpZGFyZSBuZXIgdGlsbCBzYW1tYW5mYXR0aW5nc2wmYXVtbDtnZXQgb2NoIHNlZGFuIHRpbGwgZGV0YWxqbCZhdW1sO2dldC48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIFZpc2FyIGYmb3VtbDtyZXRhZyBpIHNhbW1hbmZhdHRuaW5nc2wmYXVtbDtnZS48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBWaXNhciBkZXRhbGplcmFkIGluZm9ybWF0aW9uIG9tIGV0dCBzcGVjaWZpa3QgZiZvdW1sO3JldGFnLjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIFZpc2FyIGV0dCBmb3JtdWwmYXVtbDtyIGYmb3VtbDtyIGF0dCB0aWxsJmFyaW5nO3RhIHJlZGlnZXJpbmcgYXYgZXR0IHNwZWNpZmlrdCBmJm91bWw7cmV0YWcuPC9saT4NCiAgIA0KPC91bD4NCic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSwgYW5kIDxlbT5zZWFyY2g8L2VtPiBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2V0aGVyIHRoZSByZXN1bHRpbmcgZGF0YSBzaG91bGQgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrLCBvciBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBtb2RlLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdXaGVuIHVzZWQgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIG9yIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyB3aWxsIGxpbWl0IHRoZSByZXN1bHRzIHRvIGEgc3BlY2lmaWVkIG51bWJlci4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdOJmF1bWw7ciBkZW4gYW52JmF1bWw7bmRzIGkgZGV0IDxlbT51cnNwcnVuZ2xpZ2EgPC9lbT4gc2FtbWFuZmF0dG5pbmdzbCZhdW1sO2dldCwgYW52JmF1bWw7bmRzIGRlbm5hIHBhcmFtZXRlciwgdmlsa2VuIGImb3VtbDtyIG1hdGNoYSBuYW1uZXQgcCZhcmluZzsgZW4gYmVmaW50bGlnIGthdGVnb3JpLCBmJm91bWw7ciBhdHQgdmlzYSBlbmJhcnQgZGUgZiZvdW1sO3JldGFnIHNvbSBmaW5ucyBpIGRlbiBrYXRlZ29yaW4gKGVuIGtvbW1hc2VwYXJlcmFkIGxpc3RhIGthbiBza2lja2FzIG1lZCkuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnQW5nZSBlbiBtYWxsIChtZWQgbmFtbikgYXR0IGFudiZhdW1sO25kYSBuJmF1bWw7ciBrYXRlZ29yaWxpc3R2eW4gdmlzYXMuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ0tyJmF1bWw7dnMgZiZvdW1sO3IgZnJhbXNpZGVyZWRpZ2VyaW5nc2wmYXVtbDtnZXQgb2NoIGRldGFsamwmYXVtbDtnZXQuIERlbm5hIHBhcmFtZXRlciBhbmdlciB2aWxrZW4gZiZvdW1sO3JldGFnc3Bvc3Qgc29tIHNrYSByZWRpZ2VyYXMgZWxsZXIgdmlzYXMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdBbmdlIGV0dCBzaWRhbGlhcyAobWVkIG5hbW4pIGF0dCBhbnYmYXVtbDtuZGEgZiZvdW1sO3IgYXR0IHZpc2EgZW4gZGV0YWxqcG9zdC4gPHN0cm9uZz5PQlMhPC9zdHJvbmc+IERlbm5hIHBhcmFtZXRlciAmYXVtbDtyIGludGUga29tcGF0aWJlbCBtZWQgcHJldHR5IFVSTHMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnQW5nZSBlbiBtYWxsIChtZWQgbmFtbikgYXR0IGFudiZhdW1sO25kYSBuJmF1bWw7ciBkZXRhaWxqdnluIHZpc2FzLiA8c3Ryb25nPk9CUyE8L3N0cm9uZz4gRGVubmEgdGFnZ3BhcmFtZXRlciAmYXVtbDtyIGludGUga29tcGF0aWJlbCBtZWQgcHJldHR5IFVSTHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnQW5nZSBlbiBtYWxsIChtZWQgbmFtbikgYXR0IGFudiZhdW1sO25kYSBuJmF1bWw7ciBmb3JtdWwmYXVtbDtyZXQgZiZvdW1sO3IgJmF1bWw7bmRyaW5nIGF2IGYmb3VtbDtyZXRhZyBmciZhcmluZztuIGZyYW1zaWRhbiB2aXNhcy4nOwokbGFuZ1sncGFyYW1fc2VsZWN0Y2F0ZWdvcnknXSA9ICdPbSBkZW5uYSBwYXJhbWV0ZXIgYW52JmF1bWw7bmRzIGtvbW1lciBldHQgZm9ybXVsJmF1bWw7ciBhdHQgZ2VuZXJlcmFzIHNvbSBsJmFyaW5nO3RlciBhbnYmYXVtbDtuZGFyZSBpbnRlcmFrdGl2dCBmaWx0cmVyYSBmJm91bWw7cmV0YWdzcG9zdGVyIGVmdGVyIGVuIHZpc3Mga2F0ZWdvcmkuIERlbm5hIGZsYWdnYSBiJm91bWw7ciBpbnRlIGFudiZhdW1sO25kYXMgdGlsbHNhbW1hbnMgbWVkICYjMDM5O2thdGVnb3JpJiMwMzk7LXBhcmFtZXRlcm4uJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdHJmF1bWw7bGxlciBlbmRhc3QgZiZvdW1sO3IgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgb20gZGVubmEgcGFyYW1ldGVyICZhdW1sO3IgaW5zdCZhdW1sO2xsZCwgZCZhcmluZzsga29tbWVyICZhdW1sO3ZlbiBrYXRlZ29yaWVyIG1lZCBJbmdhIG1hdGNoYW5kZSBmJm91bWw7cmV0YWcgYXR0IHZpc2FzIGkgdXRkYXRhbic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdBbmdlIG9yZG5pbmdlbiBmJm91bWw7ciBzb3J0ZXJhZGUgZiZhdW1sO2x0IGkgc2FtbWFuZmF0dG5pbmdzdnluLiBNJm91bWw7amxpZ2EgdiZhdW1sO3JkZW4gJmF1bWw7cjoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIFN0aWdhbmRlPC9saT4NCiAgPGxpPmRlc2MgLS0gRmFsbGFuZGU8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnS2FuIGVuZGFzdCBhbnYmYXVtbDtuZGFzIGkgc2FtbWFuZmF0dG5pbmdzbCZhdW1sO2dldC4gRGVubmEgcGFyYW1ldGVyIGFuZ2VyIHNvcnRlcmluZ2VuIGF2IGYmb3VtbDtyZXRhZ2VuIHNvbSBsaXN0YXMuIE0mb3VtbDtqbGlnYSB2JmF1bWw7cmRlbiAmYXVtbDtyOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5jb21wYW55X25hbWU8L3N0cm9uZz4gLS0gRiZvdW1sO3JldGFnc25hbW48L2xpPg0KICA8bGk+cGhvbmUgLS0gVGVsZWZvbm51bWVyPC9saT4NCiAgPGxpPmZheCAtLSBGYXhudW1tZXI8L2xpPg0KICA8bGk+ZW1haWwgLS0gRS1wb3N0YWRyZXNzPC9saT4NCiAgPGxpPndlYnNpdGUgLS0gVVJMIGYmb3VtbDtyIHdlYmJzaWRhPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gRGF0dW1ldCBkJmFyaW5nOyBkZW5uYSBmJm91bWw7cmV0YWdzcG9zdCBza2FwYWRlczwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBEYXR1bWV0IGQmYXJpbmc7IGRlbm5hIGYmb3VtbDtyZXRhZ3Nwb3N0ICZhdW1sO25kcmFkZXM8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnQW5nZSBlbiBtYWxsIChtZWQgbmFtbikgYXR0IGFudiZhdW1sO25kYSBuJmF1bWw7ciBzYW1tYW5mYXR0bmluZ3N2eW4gdmlzYXMuIDxzdHJvbmc+T0JTITwvc3Ryb25nPiBEZW5uYSB0YWdncGFyYW1ldGVyICZhdW1sO3IgaW50ZSBrb21wYXRpYmVsIG1lZCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGFsX2NvZGUnXSA9ICdQb3N0bnVtbWVyJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRiZvdW1sO3JldGFnc2thdGFsb2dzbW9kdWxlbiBpbnN0YWxsZXJhZGVzIGZyYW1nJmFyaW5nO25nc3Jpa3QnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZW4gYXZpbnN0YWxsZXJhZC4gIEFsbGEgYm9sYWcgbWVkIGFzc29jaWVyYWRlIGRhdGEgaGFyIHJhZGVyYXRzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCBhdmluc3RhbGxlcmEgZGVubmEgbW9kdWw/IFZpZCBhdmluc3RhbGxhdGlvbiBhdiBkZW5uYSBtb2R1bCBzJmFyaW5nOyBrb21tZXIgZGVuIGF0dCBwZXJtYW5lbnQgcmFkZXJhIGFsbGEgbiZhdW1sO3JzdCZhcmluZztlbmRlIGJvbGFnIHVwcGdpZnRlci4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnS2F0ZWdvcmllciBJbXBvcnRlcmFkZSc7CiRsYW5nWydwcm9tcHRfY2hlY2tfZHVwbGljYXRlcyddID0gJ0NoZWNrIGZvciBkdXBsaWNhdGUgY29tcGFueSBuYW1lcz8nOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ1NhbWxhIFMmb3VtbDtrc3RhdGlzdGlrJzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdGJm91bWw7cmV0YWcgSW1wb3J0ZXJhZGUnOwokbGFuZ1sncHJvbXB0X2RlbGltZXRlciddID0gJ0YmYXVtbDtsdGF2Z3ImYXVtbDtuc2FyZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1N0YW5kYXJkc2lkYW4gc29tIHNrYSBvbWRpcmlnZXJhcyB0aWxsIGkgZGV0YWxqbCZhdW1sO2dldCc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMnOwokbGFuZ1sncHJvbXB0X2ZpZWxkZGVmc19pbXBvcnRlZCddID0gJ0YmYXVtbDtsdGRlZmluaXRpb25lciBJbXBvcnRlcmFkZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5ZGVmcyddID0gJ0NyZWF0ZSBtaXNzaW5nIGNhdGVnb3JpZXMgb24gaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnl2YWxzJ10gPSAnUG9wdXBsYXRlIGNhdGVnb3J5IHZhbHVlcyBvbiBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jc3ZmaWxlJ10gPSAnTGFkZGEgdXBwIENTViBmaWwnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpb25zIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1BvcHVsYXRlICZxdW90O2FkZGl0aW9uYWwgZmllbGQmcXVvdDsgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2xvb2t1cGxhdGxvbmcnXSA9ICdMb29rdXAgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB2YWx1ZXMgaWYgbWlzc2luZyc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnQW50YWxldCBwb3N0ZXIgYXR0IHZpc2EgcGVyIHNpZGEgaSBzYW1tYW5mYXR0bmluZ3NsJmF1bWw7Z2V0JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYXJkc29ydGVyaW5nIGkgc2FtbWFuZmF0dG5pbmdzbCZhdW1sO2dldCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1N0YW5kYXJkc29ydGVyaW5nc29yZG5pbmcgaSBzYW1tYW5mYXR0bmluZ3NsJmF1bWw7Z2V0IDxlbT4oZyZhdW1sO2xsZXIgaW50ZSBuJmF1bWw7ciBzb3J0ZXJpbmcgJmF1bWw7ciAmIzAzOTtzbHVtcHZpcyYjMDM5Oyk8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNYWxsJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0FsbG0mYXVtbDtuJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1YmxpY2VyYWQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sncmFkaXVzJ10gPSAnUmFkaWUnOwokbGFuZ1sncmFuZG9tJ10gPSAnU2x1bXB2aXMnOwokbGFuZ1sncmV0dXJuJ10gPSAnJkFyaW5nO3RlcnYmYXVtbDtuZCc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJyZBcmluZzt0ZXJzdCZhdW1sO2xsIHRpbGwgc3RhbmRhcmR2JmF1bWw7cmRlbic7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ0Rlbm5hICZhcmluZzt0ZyZhdW1sO3JkIGtvbW1lciBhdHQgJmFyaW5nO3RlcnN0JmF1bWw7bGxhIG1hbGxhcm5hcyBpbm5laCZhcmluZztsbCB0aWxsIHN5c3RlbXN0YW5kYXJkaW5zdCZhdW1sO2xsbmluZ2VuLiAmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgZm9ydHMmYXVtbDt0dGE/JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1Mmb3VtbDtrJzsKJGxhbmdbJ3NlYXJjaGVzJ10gPSAnUyZvdW1sO2tuaW5nYXInOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlcyddID0gJ1NlYXJjaCBGb3JtIFRlbXBsYXRlcyc7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NraWNrYSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3JlZGlnZXJhIG1hbGwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1NhbW1hbmZhdHRuaW5nc21hbGwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1NhbW1hbmZhdHRuaW5nc21hbGwgdXBwZGF0ZXJhZCc7CiRsYW5nWydzeXNkZWZhdWx0cyddID0gJyZBcmluZzt0ZXJzdCZhdW1sO2xsIHRpbGwgc3RhbmRhcmRpbnN0JmF1bWw7bGxuaW5nJzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVmb24nOwokbGFuZ1sndGVsZXBob25ldGV4dCddID0gJ1RlbGVmb24nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkbWFsbCBmJm91bWw7ciBrYXRlZ29yaWxpc3RhJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZG1hbGwgZiZvdW1sO3IgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkbWFsbCBmJm91bWw7ciBmcmFtc2lkZWZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfaW1wb3J0X3JlcG9ydCddID0gJ0NTViBJbXBvcnRlcmluZ3NyYXBwb3J0JzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkbWFsbCBmJm91bWw7ciBzYW1tYWZhdHRuaW5nJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUeXAnOwokbGFuZ1sndXAnXSA9ICdVcHAnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1dlYmJzaWRhJzsKJGxhbmdbJ3dlYnNpdGV0ZXh0J10gPSAnV2ViYnNpZGEnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTIzMTg3MjMyNS0xMjY5MzU5MzIxMTk1JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTI2OTc3NzYwMy4xMjY5MzU5MzQyLjEyNjk3Nzg1MjkuMTI3MDA1MTgxOS42JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI3MDA1MTgxOS42LjUudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI3MDA1MTgxOSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMjIEEKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGlmJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnS2F0ZWdvcmkgRWtsZSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnRmlybWEgRWtsZSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1llbmkgYWxhbiBla2xlJzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICdMaW5rIEVrbGUnOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXMnOwokbGFuZ1snYWxidW0nXSA9ICdBbGImdXVtbDttJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdLYWxkxLFybWFrIGlzdGVkacSfaW5pemUgZW1pbiBtaXNpbml6Pyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBcnRhbic7CgojIyBDCiRsYW5nWydjYW5jZWwnXSA9ICfEsHB0YWwnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpbGVyJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpIEVrbGVuZGknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnS2F0ZWdvcmkgTGlzdGVzaSDFnmFibG9udSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdLYXRlZ29yaSBMaXN0ZXNpIEcmdXVtbDtuY2VsbGVuZGknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0thdGVnb3JpIExpc3Rlc2kgxZ5hYmxvbnUgRWtsZS9EJnV1bWw7emVubGUnOwokbGFuZ1snY2F0ZWdvcnl0ZXh0J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmkgRyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdGaXJtYWxhcic7CiRsYW5nWydjb21wYW55J10gPSAnRmlybWEnOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRmlybWEgZWtsZW5kaSc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0Zpcm1hIHNpbGluZGknOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0Zpcm1hIERpemluaSc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0Zpcm1hIGFkxLEnOwokbGFuZ1snY29tcGFueXRleHQnXSA9ICdGaXJtYSc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0Zpcm1hIGcmdXVtbDtuY2VsbGVuZGknOwokbGFuZ1snY29udGFjdGVtYWlsJ10gPSAnRW1haWwnOwokbGFuZ1snY29vcmRpbmF0ZXMnXSA9ICdLb29yZGluYXRsYXInOwokbGFuZ1snY29weSddID0gJ0tvcHlhbGEnOwokbGFuZ1snY3JlYXRlZCddID0gJ09sdcWfdHVydWxkdSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0dpcmnFnyBUYXJpaGknOwoKIyMgRAokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1ZhcnNhecSxbGFuIMWeYWJsb25sYXInOwokbGFuZ1snZGVsZXRlJ10gPSAnU2lsJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnS2F0ZWdvcmkgU2lsJzsKJGxhbmdbJ2RlbGV0ZWNvbXBhbnknXSA9ICdGaXJtYSBTaWwnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdUYW7EsW1sxLEgQWxhbiBTaWwnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0F6YWxhbic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0EmY2NlZGlsO8Sxa2xhbWEnOwokbGFuZ1snZGV0YWlscyddID0gJ0F5csSxbnTEsWxhcic7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ0F5csSxbnTEsWxhcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdBeXLEsW50xLEgxZ5hYmxvbmxhcsSxJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJ0F5csSxbnTEsSDFnmFibG9udSBHJnV1bWw7bmNlbGxlbmRpJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnUGFzaWYnOwokbGFuZ1snZG93biddID0gJ0HFn2HEn8SxJzsKJGxhbmdbJ2RyYWdfZHJvcF91cGxvYWQnXSA9ICdTJnV1bWw7ciZ1dW1sO2tsZSBCxLFyYWsgWSZ1dW1sO2tsZW1lJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ0Rvc3lhbGFyxLEgYnVyYXlhIHMmdXVtbDtyJnV1bWw7a2xlJzsKCiMjIEUKJGxhbmdbJ2VkaXQnXSA9ICdEJnV1bWw7emVubGUnOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnS2F0ZWdvcmkgRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnRmlybWEgRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ0FsYW4gRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRmlybWEgQWTEsSBIYXRhbMSxJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnRmlybWEgYWTEsSB2ZXJpdGFiYW7EsW5kYSB6YXRlbiB2YXInOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnS2F0ZWdvcmkgemF0ZW4gdmFyJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0EgcmVxdWlyZWQgdmFsdWUgd2FzIG1pc3NpbmcgZnJvbSB0aGUgZm9ybSBpbnB1dCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnSGkmY2NlZGlsOyBkb3N5YSB5JnV1bWw7a2xlbm1lZGknOwokbGFuZ1snZXJyb3Jfbm9kcm9wZG93bm9wdGlvbnMnXSA9ICdObyBEcm9wZG93biBvcHRpb25zIHN1cHBsaWVkJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0Vrc3RyYSBEYXRhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRWtzdHJhIERhdGEgMic7CiRsYW5nWydleHRyYTMnXSA9ICdFa3N0cmEgRGF0YSAzJzsKCiMjIEYKJGxhbmdbJ2ZheCddID0gJ0Zha3MnOwokbGFuZ1snZmF4dGV4dCddID0gJ0Zha3MnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdBbGFuIFRhbsSxbWxhbWEnOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ1llbmkgYWxhbiBla2xlbmRpJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ1RhbsSxbWzEsSBBbGFuIHNpbGluZGknOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnQWxhbiBUYW7EsW1hbGFsYXLEsSc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdBbGFuIFRhbsSxbWxhbWEnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnVGFuxLFtbMSxIEFsYW4gZyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydmaWVsZHMnXSA9ICdBbGFubGFyJzsKJGxhbmdbJ2ZpZWxkX2ZpbGUnXSA9ICdEb3N5YSc7CiRsYW5nWydmaWVsZF9pbWFnZSddID0gJ1Jlc2ltJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlcyddID0gJ0VkaXQgQ29tcGFueSBUZW1wbGF0ZXMnOwoKIyMgSQokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnUmVzaW0nOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnU3BlY2lmeSB0aGUgb3B0aW9ucyBmb3IgdGhlIGRyb3Bkb3duIGNvbnRyb2wuICBPbmUgbGluZSBwZXIgZW50cnkuICBTZXBlcmF0ZSBrZXlzIGZyb20gdmFsdWVzIHdpdGggdGhlID0uICBpLmU6IGtleT12YWx1ZSc7CgojIyBMCiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xibF9iYWNrJ10gPSAnR2VyaSc7CiRsYW5nWydsYmxfc2V0dGluZ3MnXSA9ICdBeWFybGFyJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZXMnXSA9ICfFnmFibG9ubGFyJzsKCiMjIE0KJGxhbmdbJ21vZGlmaWVkJ10gPSAnRCZ1dW1sO3plbmxlbmRpJzsKJGxhbmdbJ21zZ19jb21wYW55Y29waWVkJ10gPSAnRmlybWEga29weWFsYW5kxLEuLi4gbCZ1dW1sO3RmZW4geWVuaSBmaXJtYSBrYXlkxLFuxLFuIGF5csSxbnTEsWxhcsSxbsSxIGQmdXVtbDt6ZW5sZXlpbml6JzsKJGxhbmdbJ21zZ19pbXBvcnRfY29tcGxldGUnXSA9ICdpJmNjZWRpbDtlIGFrdGFybWEgacWfbGVtaSBiYcWfYXLEsWzEsSc7CgojIyBOCiRsYW5nWyduYW1lJ10gPSAnQWTEsSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ0FkxLEnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgJiMwMzk7JXMmIzAzOTsgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgZnVuY3Rpb24uJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ0hhecSxcic7CiRsYW5nWydub2NvbXBhbnluYW1lZ2l2ZW4nXSA9ICdGaXJtYSBhZMSxIHZlcmlsbWVkaSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ8Swc2ltIHZlcmlsbWVkaSc7CiRsYW5nWydub25lJ10gPSAnWW9rJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdSYWthbSBvbGFtYXonOwoKIyMgTwokbGFuZ1snb2YnXSA9ICctJzsKJGxhbmdbJ29yZ2FuaXphdGlvbiddID0gJ09yZ2FuaXphc3lvbic7CiRsYW5nWydvd25lciddID0gJ1NhaGlwJzsKCiMjIFAKJGxhbmdbJ3BhZ2UnXSA9ICdTYXlmYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdEZXRlcm1pbmUgdGhlIHByaW1hcnkgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoaXMgcGFyYW1ldGVyIGFyZToNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQo8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgZm9yIHNwZWNpZmljIGNvbXBhbmllcy48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBEaXNwbGF5IGEgbGlzdCBvZiBoaWVyYXJjaGllcy4gIFVzZXJzIGNhbiBkcmlsbCBkb3duIHRvIHN1bW1hcnkgbW9kZSBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICAgDQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCkuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuICBpLmU6IHtDb21wYW55RGlyZWN0b3J5IGNhdGVnb3J5PSYjMDM5O3JlZ2lvbl9ub3J0aCxyZWdpb25fc291dGgmIzAzOTsgY2F0ZWdvcnkyPSYjMDM5O2NhcnMsdHJ1Y2tzJiMwMzk7fSB3b3VsZCByZXR1cm4gb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCB3ZXJlIGluIHRoZSBlaXRoZXIgb2YgdGhlIHJlZ2lvbiBub3J0aCBvciByZWdpb24gc291dGggY2F0ZWdvcmllcyBBTkQgQUxTTyBpbiBlaXRoZXIgb2YgdGhlIGNhcnMgb3IgdHJ1Y2tzIGNhdGVnb3JpZXMnOwokbGFuZ1sncGFyYW1faGllciddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5oaWVybGlzdDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgaGllcmFyY2h5IG5hbWUgb2YgY29tcGFuaWVzIHRvIGRpc3BsYXkuICBJbiB0aGUgZGVmYXVsdCBhY3Rpb24sIFdpbGRjYXJkcyBhcmUgYWNjZXB0ZWQsIGkuZTogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSwgYW5kIDxlbT5zZWFyY2g8L2VtPiBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2V0aGVyIHRoZSByZXN1bHRpbmcgZGF0YSBzaG91bGQgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrLCBvciBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7LiAgQWRkaXRpb25hbGx5LCByZWd1bGFyIGV4cHJlc3Npb25zIGNhbiBiZSBzcGVjaWZpZWQgYnkgcHJlZml4aW5nIHRoZSB2YWx1ZSB3aXRoIDo6LiAgaS5lOiBuYW1lPSZxdW90Ozo6WzAtOV0uKiZxdW90Oyc7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdXaGVuIHVzZWQgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIG9yIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyB3aWxsIGxpbWl0IHRoZSByZXN1bHRzIHRvIGEgc3BlY2lmaWVkIG51bWJlci4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZS4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGV2ZW4gY2F0ZWdvcmllcyB3aXRoIG5vIG1hdGNoaW5nIGNvbXBhbmllcyB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgb3V0cHV0JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBjb21wYW5pZXMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5jb21wYW55X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cGhvbmU8L2xpPg0KICA8bGk+ZmF4PC9saT4NCiAgPGxpPmVtYWlsPC9saT4NCiAgPGxpPndlYnNpdGUgLS0gVGhlIHdlYnNpdGUgdXJsPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+ZjpmaWVsZCBuYW1lIC0tIFNvcnQgYnkgcHVibGljIGN1c3RvbSBmaWVsZHMuIFRoZSBvdXRwdXQgd2lsbCBiZSBzb3J0ZWQgYnkgdGhlIG5hbWVkIGN1c3RvbSBmaWVsZC48YnIvPg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBZb3UgbWF5IG5lZWQgdG8gdXNlIHF1b3RlcyBpZiB0aGUgZmllbGQgbmFtZSBoYXMgc3BhY2VzLjxici8+DQogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFRoZSBmaWVsZCBzcGVjaWZpZWQgbXVzdCBiZSBtYXJrZWQgYXMgcHVibGljLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3Bvc3RhbF9jb2RlJ10gPSAnUG9zdGEgS29kdSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0F5YXJsYXInOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9hZGRjb21wYW55J10gPSAnWWVuaSBmaXJtYSBla2xlbWUnOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ0FyYW1hIGlzdGF0aXN0aWtsZXJpbmkga2F5ZGV0JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnVGhlIGRlZmF1bHQgcGFnZSB0byByZWRpcmVjdCB0byBpbiBkZXRhaWwgbW9kZSc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIFNlJmNjZWRpbDtlbmVrbGVyaSc7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdGaXJtYSBEJnV1bWw7emVubGVtZSc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnSGF0YWxhcic7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVsIEF5YXJsYXInOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpb25zIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1BvcHVsYXRlICZxdW90O2FkZGl0aW9uYWwgZmllbGQmcXVvdDsgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1RoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gc3VtbWFyeSBtb2RlIDxlbT4oZG9lcyBub3QgYXBwbHkgd2hlbiBzb3J0aW5nIGlzICYjMDM5O3JhbmRvbSYjMDM5OzwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ8WeYWJsb24nOwokbGFuZ1sncHVibGljJ10gPSAnR2VuZWwnOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnWWF5xLFubGFuZMSxJzsKCiMjIFIKJGxhbmdbJ3JhbmRvbSddID0gJ1Jhc3RnZWxlJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnVmFyc2F5xLFsYW5sYXJhIHPEsWbEsXJsYSc7CiRsYW5nWydyZXR1cm4nXSA9ICdHZXJpIGQmb3VtbDtuJzsKCiMjIFMKJGxhbmdbJ3NlYXJjaCddID0gJ0FyYW1hJzsKJGxhbmdbJ3NlYXJjaGVzJ10gPSAnQXJhbWFsYXInOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlcyddID0gJ0FyYW1hIEZvcm0gxZ5hYmxvbmxhcsSxJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQXJhbWEgRm9ybSDFnmFibG9udSBFa2xlL0QmdXVtbDt6ZW5sZSc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdTZSZjY2VkaWw7aW5peic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTxLFyYWxhbWEnOwokbGFuZ1snc3RhdHVzJ10gPSAnRHVydW0nOwokbGFuZ1snc3VibWl0J10gPSAnRyZvdW1sO25kZXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJyZPdW1sO3pldCDFnmFibG9ubGFyxLEnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJyZPdW1sO3pldCDFn2FibG9udSBHJnV1bWw7bmNlbGxlbmRpJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnJk91bWw7emV0IMWeYWJsb251IEVrbGUvRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAnVmFyc2F5xLFsYW5sYXJhIFPEsWbEsXJsYSc7CgojIyBUCiRsYW5nWyd0ZWxlcGhvbmUnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RodW1ibmFpbCddID0gJ0smdXVtbDsmY2NlZGlsOyZ1dW1sO2sgUmVzaW0nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgQ2F0ZWdvcnkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgRnJvbnRlbmQgRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBGcm9udGVuZCBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgSGllcmFyY2h5IExpc3QgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUaXAnOwoKIyMgVQokbGFuZ1sndXAnXSA9ICdZdWthcsSxJzsKCiMjIFkKJGxhbmdbJ3llcyddID0gJ0V2ZXQnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.cd_ascii_importer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNkX2FzY2lpX2ltcG9ydGVyCnsKICBwcml2YXRlICRfZXJyb3JzOwogIHByaXZhdGUgJF9kZWxpbWl0ZXI7CiAgcHJpdmF0ZSAkX2VuY2xvc3VyZTsKICBwcml2YXRlICRfbW9kOwogIHByaXZhdGUgJF9kb19maWVsZGRlZnM7CiAgcHJpdmF0ZSAkX2RvX2ZpZWxkdmFsczsKICBwcml2YXRlICRfZG9fY2F0ZWdvcnlkZWZzOwogIHByaXZhdGUgJF9kb19jYXRlZ29yeXZhbHM7CiAgcHJpdmF0ZSAkX2RvX2xhdGxvbmdfbG9va3VwOwogIHByaXZhdGUgJF9jcmVhdGVfdXJsID0gMDsKICBwcml2YXRlICRfY2hlY2tfZHVwbGljYXRlX2NvbXBhbmllczsKICBwcml2YXRlICRfbWF4X3JlY29yZHM7CiAgcHJpdmF0ZSAkX2RvX2hpZXJkZWZzOwogIHByaXZhdGUgJF9kb19oaWVydmFsczsKICBwcml2YXRlICRfdGhlX3VzZXI7CgogIHByaXZhdGUgJF9udW1fY29tcGFuaWVzOwogIHByaXZhdGUgJF9udW1faGllcjsKICBwcml2YXRlICRfbnVtX2NhdGVnb3JpZXM7CiAgcHJpdmF0ZSAkX251bV9maWVsZGRlZnM7CiAgcHJpdmF0ZSAkX251bV9saW5lczsKICBwcml2YXRlICRfbGluZW51bSA9IDA7CgogIHByaXZhdGUgJF9oaWVyX2NhY2hlOwogIHByaXZhdGUgJF9maWVsZGRlZl9jYWNoZTsKICBwcml2YXRlICRfY2F0ZWdvcnlfY2FjaGU7CiAgcHJpdmF0ZSAkX3J1bGVzID0gYXJyYXkoKTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkbW9kLCRkZWxpbWl0ZXIgPSAnfCcsJGVuY2xvc3VyZSA9ICciJykKICB7CiAgICAkdGhpcy0+X2Vycm9ycyA9IGFycmF5KCk7CgogICAgJHRoaXMtPl9kb19maWVsZGRlZnMgPSAwOwogICAgJHRoaXMtPl9kb19maWVsZHZhbHMgPSAwOwogICAgJHRoaXMtPl90aGVfdXNlciA9IC0xOwoKICAgICR0aGlzLT5fZG9fY2F0ZWdvcnlkZWZzID0gMDsKICAgICR0aGlzLT5fZG9fY2F0ZWdvcnl2YWxzID0gMDsKCiAgICAkdGhpcy0+X2RvX2hpZXJkZWZzID0gMDsKICAgICR0aGlzLT5fZG9faGllcnZhbHMgPSAwOwoKICAgICR0aGlzLT5fZG9fbGF0bG9uZ19sb29rdXAgPSAwOwogICAgJHRoaXMtPl9jaGVja19kdXBsaWNhdGVfY29tcGFuaWVzID0gJ2Vycm9yJzsKICAgICR0aGlzLT5fbW9kID0mICRtb2Q7CiAgICAkdGhpcy0+X2RlbGltaXRlciA9ICRkZWxpbWl0ZXI7CiAgICAkdGhpcy0+X2VuY2xvc3VyZSA9ICRlbmNsb3N1cmU7CiAgICAkdGhpcy0+X21heF9yZWNvcmRzID0gMDsKCiAgICAkdGhpcy0+X251bV9jb21wYW5pZXMgPSAwOwogICAgJHRoaXMtPl9udW1fY2F0ZWdvcmllcyA9IDA7CiAgICAkdGhpcy0+X251bV9maWVsZGRlZnMgPSAwOwogICAgJHRoaXMtPl9udW1faGllciA9IDA7CiAgICAkdGhpcy0+X251bV9saW5lcyA9IDA7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Jlc3VsdHMoKQogIHsKICAgIHJldHVybiBhcnJheSgnbnVtX2NvbXBhbmllcyc9PiR0aGlzLT5fbnVtX2NvbXBhbmllcywKCQkgJ251bV9jYXRlZ29yaWVzJz0+JHRoaXMtPl9udW1fY2F0ZWdvcmllcywKCQkgJ251bV9maWVsZGRlZnMnPT4kdGhpcy0+X251bV9maWVsZGRlZnMsCgkJICdudW1faGllcic9PiR0aGlzLT5fbnVtX2hpZXIsCgkJICdudW1fbGluZXMnPT4kdGhpcy0+X251bV9saW5lcyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3VzZXIoJHVpZCkKICB7CiAgICAkdGhpcy0+X3RoZV91c2VyID0gJHVpZDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGVsaW1pdGVyKCRjaGFyKQogIHsKICAgICR0aGlzLT5fZGVsaW1pdGVyID0gJGNoYXI7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2VuY2xvc3VyZSgkY2hhcikKICB7CiAgICAkdGhpcy0+X2VuY2xvc3VyZSA9ICRjaGFyOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXhfY29tcGFuaWVzKCRudW0pCiAgewogICAgJHRoaXMtPl9tYXhfcmVjb3JkcyA9ICRudW07CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZG9fZmllbGRkZWZzKCRmbGFnID0gdHJ1ZSkKICB7CiAgICAkdGhpcy0+X2RvX2ZpZWxkZGVmcyA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRvX2ZpZWxkdmFscygkZmxhZyA9IHRydWUpCiAgewogICAgJHRoaXMtPl9kb19maWVsZHZhbHMgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBkb19jYXRlZ29yeWRlZnMoJGZsYWcgPSB0cnVlKQogIHsKICAgICR0aGlzLT5fZG9fY2F0ZWdvcnlkZWZzID0gJGZsYWc7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZG9fY2F0ZWdvcnl2YWxzKCRmbGFnID0gdHJ1ZSkKICB7CiAgICAkdGhpcy0+X2RvX2NhdGVnb3J5dmFscyA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRvX2xhdGxvbmdfbG9va3VwKCRmbGFnID0gdHJ1ZSApCiAgewogICAgJHRoaXMtPl9kb19sYXRsb25nX2xvb2t1cCA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV91cmwoJGZsYWcgPSB0cnVlKQogIHsKCSR0aGlzLT5fY3JlYXRlX3VybCA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGNoZWNrX2R1cGxpY2F0ZV9jb21wYW5pZXMoJGZsYWcgPSB0cnVlKQogIHsKCSR0bXAgPSBzdHJ0b2xvd2VyKCRmbGFnKTsKCXN3aXRjaCggJHRtcCApIHsKCWNhc2UgJ2Vycm9yJzoKCSAgLy8gZ2VuZXJhdGUgYW4gZXJyb3Igb24gZHVwbGljYXRlIGNvbXBhbmllcwoJY2FzZSAnaW5zZXJ0JzoKICAgICAgLy8gaW5zZXJ0IGl0IGFueXdheXMKCWNhc2UgJ2lnbm9yZSc6CgkgIC8vIGp1c3QgaWdub3JlIHRoZSB3aG9sZSByZWNvcmQsIHNpbGVudGx5CgljYXNlICd1cGRhdGUnOgoJICAvLyB1cGRhdGUgdGhlIGNvbXBhbnkuCgkgICR0aGlzLT5fY2hlY2tfZHVwbGljYXRlX2NvbXBhbmllcyA9ICR0bXA7CgkgIGJyZWFrOwoJfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRvX2hpZXJhcmNoeXZhbHMoJGZsYWcgPSB0cnVlKQogIHsKICAgICR0aGlzLT5fZG9faGllcnZhbHMgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBkb19oaWVyYXJjaHlkZWZzKCRmbGFnID0gdHJ1ZSkKICB7CiAgICAkdGhpcy0+X2RvX2hpZXJkZWZzID0gJGZsYWc7CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X2Vycm9yKCRtc2cpCiAgewogICAgJHN0ciA9ICR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9wcmVmaXhfbXNnJywkdGhpcy0+X2xpbmVudW0sJG1zZyk7CiAgICAkdGhpcy0+X2Vycm9yc1tdID0gJHN0cjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZXJyb3JzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9lcnJvcnM7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJfZXJyb3JzKCkKICB7CiAgICAkdGhpcy0+X2Vycm9ycyA9IGFycmF5KCk7CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2ZpZWxkZGVmX2lkKCRuYW1lKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9maWVsZGRlZl9jYWNoZSkgKSB7CiAgICAgICR0aGlzLT5fZmllbGRkZWZfY2FjaGUgPSBhcnJheSgpOwogICAgICAkdG1wID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRSxUUlVFKTsKCSAgaWYoIGlzX2FycmF5KCR0bXApICkgJHRoaXMtPl9maWVsZGRlZl9jYWNoZSA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCduYW1lJyk7Cgl9CgogICAgaWYoIGlzc2V0KCR0aGlzLT5fZmllbGRkZWZfY2FjaGVbJG5hbWVdKSApIHJldHVybiAkdGhpcy0+X2ZpZWxkZGVmX2NhY2hlWyRuYW1lXVsnaWQnXTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9pbnNlcnRfZmllbGRkZWYoJGZpZWxkcykKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIC8vIGluc2VydCB0aGF0IHJlY29yZAogICAgaWYoICFpc3NldCgkZmllbGRzWyduYW1lJ10pICkgcmV0dXJuOwogICAgaWYoICFpc3NldCgkZmllbGRzWyd0eXBlJ10pICkgJGZpZWxkc1sndHlwZSddID0gJ3RleHRib3gnOwogICAgaWYoICFpc3NldCgkZmllbGRzWydtYXhfbGVuZ3RoJ10pICkgJGZpZWxkc1snbWF4X2xlbmd0aCddID0gMjU1OwogICAgaWYoICFpc3NldCgkZmllbGRzWydhZG1pbl9vbmx5J10pICkgJGZpZWxkc1snYWRtaW5fb25seSddID0gMDsKICAgIGlmKCAhaXNzZXQoJGZpZWxkc1sncHVibGljJ10pICkgJGZpZWxkc1sncHVibGljJ10gPSAxOwogICAgaWYoICFpc3NldCgkZmllbGRzWydkcm9wZG93bl9kYXRhJ10pICkgJGZpZWxkc1snZHJvcGRvd25fZGF0YSddID0gbnVsbDsKICAgIGlmKCAhaXNzZXQoJGZpZWxkc1snZGF0YSddKSApICRmaWVsZHNbJ2RhdGEnXSA9IG51bGw7CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRpdGVtX29yZGVyID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCBDT0FMRVNDRShtYXgoaXRlbV9vcmRlciksMCkgKyAxIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnKTsKICAgICRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzCiAgICAgICAgICAgICAgKG5hbWUsIHR5cGUsIG1heF9sZW5ndGgsIGFkbWluX29ubHksIHB1YmxpYywgaXRlbV9vcmRlciwgZHJvcGRvd25fZGF0YSwgZGF0YSwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sTk9XKCksTk9XKCkpIjsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZHNbJ25hbWUnXSwkZmllbGRzWyd0eXBlJ10sJGZpZWxkc1snbWF4X2xlbmd0aCddLCRmaWVsZHNbJ2FkbWluX29ubHknXSwkZmllbGRzWydwdWJsaWMnXSwkaXRlbV9vcmRlciwkZmllbGRzWydkcm9wZG93bl9kYXRhJ10sJGZpZWxkc1snZGF0YSddKSk7CiAgICBpZiggISRkYnIgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdTUUwgRXJyb3IgJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKICAgICRmZF9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgogICAgJHRoaXMtPl9maWVsZGRlZl9jYWNoZVskZmllbGRzWyduYW1lJ11dWydpZCddID0gJGZkX2lkOwogICAgJHRoaXMtPl9udW1fZmllbGRkZWZzKys7CiAgICByZXR1cm4gJGZkX2lkOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9oaWVyX2lkKCRsb25nX25hbWUpCiAgewogICAgaWYoICEkbG9uZ19uYW1lICkgcmV0dXJuIEZBTFNFOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5faGllcl9jYWNoZSkgKSB7CiAgICAgICR0aGlzLT5faGllcl9jYWNoZSA9IGFycmF5KCk7CiAgICAgICR0bXAgPSBjZF91dGlsczo6Z2V0X2hpZXJhcmNoeSgpOwogICAgICBpZiggaXNfYXJyYXkoJHRtcCkgKSAkdGhpcy0+X2hpZXJfY2FjaGUgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnbG9uZ19uYW1lJyk7CiAgICB9CgogICAgaWYoIGlzc2V0KCR0aGlzLT5faGllcl9jYWNoZVskbG9uZ19uYW1lXSkgKSByZXR1cm4gJHRoaXMtPl9oaWVyX2NhY2hlWyRsb25nX25hbWVdWydpZCddOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX2luc2VydF9oaWVyKCRyZWNvcmQpCiAgewogICAgaWYoICFpc3NldCgkcmVjb3JkWydsb25nX25hbWUnXSkgKSByZXR1cm47CiAgICAkbG9uZ19uYW1lID0gJHJlY29yZFsnbG9uZ19uYW1lJ107CiAgICBpZiggZW1wdHkoJGxvbmdfbmFtZSkgKSByZXR1cm47CgogICAgJHBhcnRzID0gZXhwbG9kZSgnIHwgJywkbG9uZ19uYW1lKTsKICAgICRzaG9ydGVyID0gaW1wbG9kZSgnIHwgJyxhcnJheV9zbGljZSgkcGFydHMsMCxjb3VudCgkcGFydHMpLTEpKTsKICAgICRuYW1lID0gJHBhcnRzW2NvdW50KCRwYXJ0cyktMV07CiAgICAkcGFyZW50X2lkID0gLTE7CiAgICBpZiggJHNob3J0ZXIgKSB7CiAgICAgICRwYXJlbnRfaWQgPSAkdGhpcy0+Z2V0X2hpZXJfaWQoJHNob3J0ZXIpOwogICAgICBpZiggISRwYXJlbnRfaWQgKSB7CiAgICAgICAgLy8gcGFyZW50IG5vdCBmb3VuZC4uLiBnb3R0YSBpbnNlcnQgdGhhdCB0b28uCiAgICAgICAgLy8gbWVhbnMgcmVjdXJzaW9uLgogICAgICAgICRyZWMgPSBhcnJheSgpOwogICAgICAgICRyZWNbJ2xvbmdfbmFtZSddID0gJHNob3J0ZXI7CiAgICAgICAgJHRoaXMtPl9pbnNlcnRfaGllcigkcmVjKTsKICAgICAgfQogICAgfQoKICAgIC8vIHdlIGhhdmUgYSBwYXJlbnQgaWQsIGFuZCBhIGxvbmcgbmFtZS4uLiBhbmQgbWF5YmUgc29tZSBleHRyYSBkYXRhCiAgICAvLyB3ZSBhcmUgY2xlYXIgdG8gaW5zZXJ0CiAgICAkcmVjb3JkWydwYXJlbnRfaWQnXSA9ICRwYXJlbnRfaWQ7CiAgICAkcmVjb3JkWyduYW1lJ10gPSAkbmFtZTsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIENPQUxFU0NFKE1BWChpb3JkZXIpLDApICsgMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgJGlvcmRlciA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkcGFyZW50X2lkKSk7CiAgICAkcmVjb3JkWydpb3JkZXInXSA9ICRpb3JkZXI7CgogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIChuYW1lLHBhcmVudF9pZCxpb3JkZXIsbG9uZ19uYW1lKSBWQUxVRVMgKD8sPyw/LD8pJzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRyZWNvcmRbJ25hbWUnXSwkcmVjb3JkWydwYXJlbnRfaWQnXSwkaW9yZGVyLCRyZWNvcmRbJ2xvbmdfbmFtZSddKSk7CiAgICAkbmV3X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKICAgICRyZWNvcmRbJ2lkJ10gPSAkbmV3X2lkOwogICAgJHRoaXMtPl9udW1faGllcisrOwoKICAgIC8vIGFkZCBpdCB0byB0aGUgY2FjaGUKICAgICR0aGlzLT5faGllcl9jYWNoZVskbG9uZ19uYW1lXSA9ICRyZWNvcmQ7CgogICAgLy8gcmV0dXJuIG5vdGhpbmcKICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X2lkKCRsb25nX25hbWUpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fY2F0ZWdvcnlfY2FjaGUpICkgewogICAgICAkdG1wID0gY2RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKFRSVUUpOwogICAgICAkdGhpcy0+X2NhdGVnb3J5X2NhY2hlID0gYXJyYXkoKTsKICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJHJlYyApIHsKICAgICAgICAgICR0aGlzLT5fY2F0ZWdvcnlfY2FjaGVbJHJlYy0+bG9uZ19uYW1lXSA9ICRyZWM7CiAgICAgICAgfQogICAgICB9Cgl9CgogICAgaWYoIGlzc2V0KCR0aGlzLT5fY2F0ZWdvcnlfY2FjaGVbJGxvbmdfbmFtZV0pICkgewogICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9jYXRlZ29yeV9jYWNoZVskbG9uZ19uYW1lXSkgKSByZXR1cm4gJHRoaXMtPl9jYXRlZ29yeV9jYWNoZVskbG9uZ19uYW1lXVsnaWQnXTsKICAgICAgcmV0dXJuICR0aGlzLT5fY2F0ZWdvcnlfY2FjaGVbJGxvbmdfbmFtZV0tPmlkOwogICAgfQogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBfaW5zZXJ0X2NhdGVnb3J5KCRyZWNvcmQpCiAgewogICAgaWYoICFpc3NldCgkcmVjb3JkWydsb25nX25hbWUnXSkgKSByZXR1cm47CiAgICAkbG9uZ19uYW1lID0gJHJlY29yZFsnbG9uZ19uYW1lJ107CiAgICBpZiggZW1wdHkoJGxvbmdfbmFtZSkgKSByZXR1cm47CgogICAgLy8gZ2V0IHRoaXMgcmVjb3JkcyBwYXJlbnQgaWQKICAgICRwYXJ0cyA9IGV4cGxvZGUoJyB8ICcsJGxvbmdfbmFtZSk7CiAgICAkc2hvcnRlciA9IGltcGxvZGUoJyB8ICcsYXJyYXlfc2xpY2UoJHBhcnRzLDAsY291bnQoJHBhcnRzKS0xKSk7CiAgICAkbmFtZSA9ICRwYXJ0c1tjb3VudCgkcGFydHMpLTFdOwogICAgJHBhcmVudF9pZCA9IC0xOwogICAgaWYoICRzaG9ydGVyICkgewogICAgICAkcGFyZW50X2lkID0gJHRoaXMtPmdldF9jYXRlZ29yeV9pZCgkc2hvcnRlcik7CiAgICAgIGlmKCAhJHBhcmVudF9pZCApIHsKICAgICAgICAvLyBwYXJlbnQgbm90IGZvdW5kLi4uIGdvdHRhIGluc2VydCB0aGF0IHRvby4KICAgICAgICAvLyBtZWFucyByZWN1cnNpb24uCiAgICAgICAgJHJlYyA9IGFycmF5KCk7CiAgICAgICAgJHJlY1snbG9uZ19uYW1lJ10gPSAkc2hvcnRlcjsKICAgICAgICAkdGhpcy0+X2luc2VydF9jYXRlZ29yeSgkcmVjKTsKICAgICAgfQogICAgfQoKICAgIC8vIHdlIGhhdmUgYSBwYXJlbnQgaWQsIGFuZCBhIGxvbmcgbmFtZS4uLiBhbmQgbWF5YmUgc29tZSBleHRyYSBkYXRhCiAgICAvLyB3ZSBhcmUgY2xlYXIgdG8gaW5zZXJ0CiAgICBpZiggIWlzc2V0KCRyZWNvcmRbJ2V4dHJhMSddKSApICRyZWNvcmRbJ2V4dHJhMSddID0gbnVsbDsKICAgIGlmKCAhaXNzZXQoJHJlY29yZFsnZXh0cmEyJ10pICkgJHJlY29yZFsnZXh0cmEyJ10gPSBudWxsOwogICAgaWYoICFpc3NldCgkcmVjb3JkWydleHRyYTMnXSkgKSAkcmVjb3JkWydleHRyYTMnXSA9IG51bGw7CiAgICAkcmVjb3JkWydwYXJlbnRfaWQnXSA9ICRwYXJlbnRfaWQ7CiAgICAkcmVjb3JkWyduYW1lJ10gPSAkbmFtZTsKICAgIC8vIHdlIGhhdmUgYW4gaWQgd2UgY2FuIHVzZSBpdCBhcyBhIHBhcmVudCBpZAogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgQ09BTEVTQ0UoTUFYKGl0ZW1fb3JkZXIpLDApICsgMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgJGl0ZW1fb3JkZXIgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHBhcmVudF9pZCkpOwoKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyAobmFtZSxwYXJlbnRfaWQsaXRlbV9vcmRlcixsb25nX25hbWUsZXh0cmExLGV4dHJhMixleHRyYTMpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyknOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJlY29yZFsnbmFtZSddLCRyZWNvcmRbJ3BhcmVudF9pZCddLCRpdGVtX29yZGVyLCRyZWNvcmRbJ2xvbmdfbmFtZSddLCRyZWNvcmRbJ2V4dHJhMSddLCRyZWNvcmRbJ2V4dHJhMiddLCRyZWNvcmRbJ2V4dHJhMyddKSk7CiAgICAkbmV3X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKICAgICR0aGlzLT5fbnVtX2NhdGVnb3JpZXMrKzsKCiAgICAvLyBub3cgaW5zZXJ0IGl0IGludG8gdGhlIGNhY2hlCiAgICAkdGhpcy0+X2NhdGVnb3J5X2NhY2hlWyRsb25nX25hbWVdID0gYXJyYXkoJ2lkJz0+JG5ld19pZCwnbmFtZSc9PiRuYW1lLCdwYXJlbnRfaWQnPT4kcGFyZW50X2lkLCdpdGVtX29yZGVyJz0+JGl0ZW1fb3JkZXIsJ2xvbmdfbmFtZSc9PiRsb25nX25hbWUpOwoKICAgIC8vIHJldHVybiBub3RoaW5nLAogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiB1bnByb2Nlc3NfZGF0YSgkZGF0YSkKICB7CiAgICAvLyBzdHJpcCBxdW90ZXMKICAgICRkYXRhID0gdHJpbSgkZGF0YSwnIicpOwoKICAgIC8vIG5ld2xpbmVzCiAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCJeXiIsIlxuIiwkZGF0YSk7CiAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCItJSUtIiwkdGhpcy0+X2RlbGltaXRlciwkZGF0YSk7CgogICAgcmV0dXJuICRkYXRhOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gcHJvY2Vzc19maWVsZGRlZigkZmllbGRzLCRydWxlKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgLy8gYnVpbGQgYSBuZXcgcmVjb3JkCiAgICAkcmVjb3JkID0gYXJyYXkoKTsKICAgICRyZWNvcmRbJ2Ryb3Bkb3duX2RhdGEnXSA9ICcnOwogICAgZm9yKCAkZmxkID0gMTsgJGZsZCA8IGNvdW50KCRydWxlWydmbGRzJ10pOyAkZmxkKysgKSB7CgkgIGlmKCAhaXNzZXQoJGZpZWxkc1skZmxkXSkgKSBjb250aW51ZTsKCSAgJGZuYW1lID0gJHJ1bGVbJ2ZsZHMnXVskZmxkXTsKCSAgJHJlY29yZFskZm5hbWVdID0gJHRoaXMtPnVucHJvY2Vzc19kYXRhKCRmaWVsZHNbJGZsZF0pOwoJfQoKICAgIC8vIGdldCB0aGUgZmllbGRkZWYgaWQsIG9yIHRyeSB0byBjcmVhdGUgaXQKICAgICR0bXAgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX2lkKCRyZWNvcmRbJ25hbWUnXSk7CiAgICBpZiggISR0bXAgKSAkdGhpcy0+X2luc2VydF9maWVsZGRlZigkcmVjb3JkKTsKICAgIHJldHVybiBUUlVFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gcHJvY2Vzc19oaWVyYXJjaHkoJGZpZWxkcywkcnVsZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICRyZWNvcmQgPSBhcnJheSgpOwogICAgZm9yKCAkZmxkID0gMTsgJGZsZCA8IGNvdW50KCRydWxlWydmbGRzJ10pOyAkZmxkKysgKSB7CgkgIGlmKCAhaXNzZXQoJGZpZWxkc1skZmxkXSkgKSBjb250aW51ZTsKCSAgJGZuYW1lID0gJHJ1bGVbJ2ZsZHMnXVskZmxkXTsKCSAgJHJlY29yZFskZm5hbWVdID0gJHRoaXMtPnVucHJvY2Vzc19kYXRhKCRmaWVsZHNbJGZsZF0pOwoJfQoKICAgIC8vIGlmIHRoZSBoaWVyYXJjaHkgcmVjb3JkIChieSBsb25nIG5hbWUpIGV4aXN0cywgd2UgYXJlIGdvbGRlbgogICAgLy8gaWYgaXQgZG9lcyBub3QuLi4uIGRlcGVuZGluZyBvbiBzZXR0aW5ncywgdHJ5IHRvIGNyZWF0ZSBpdC4KICAgICR0bXAgPSAkdGhpcy0+Z2V0X2hpZXJfaWQoJHJlY29yZFsnbG9uZ19uYW1lJ10pOwogICAgaWYoICEkdG1wICkgJHRoaXMtPl9pbnNlcnRfaGllcigkcmVjb3JkKTsKICAgIHJldHVybiBUUlVFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gcHJvY2Vzc19jYXRlZ29yeSgkZmllbGRzLCRydWxlKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgLy8gYnVpbGQgYSBuZXcgcmVjb3JkCiAgICAkcmVjb3JkID0gYXJyYXkoKTsKICAgIGZvciggJGZsZCA9IDE7ICRmbGQgPCBjb3VudCgkcnVsZVsnZmxkcyddKTsgJGZsZCsrICkgewoJICBpZiggIWlzc2V0KCRmaWVsZHNbJGZsZF0pICkgY29udGludWU7CgkgICRmbmFtZSA9ICRydWxlWydmbGRzJ11bJGZsZF07CgkgICRyZWNvcmRbJGZuYW1lXSA9ICR0aGlzLT51bnByb2Nlc3NfZGF0YSgkZmllbGRzWyRmbGRdKTsKCX0KCiAgICAkdG1wID0gJHRoaXMtPmdldF9jYXRlZ29yeV9pZCgkcmVjb3JkWydsb25nX25hbWUnXSxUUlVFKTsKICAgIGlmKCAhJHRtcCApICR0aGlzLT5faW5zZXJ0X2NhdGVnb3J5KCRyZWNvcmQpOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBwcm9jZXNzX2NvbXBhbnkoJGZpZWxkcywkcnVsZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHVzZXJpZCA9ICR0aGlzLT5fdGhlX3VzZXI7CgogICAgJHJlY29yZCA9IGFycmF5KCk7CiAgICBmb3IoICRmbGQgPSAxOyAkZmxkIDwgY291bnQoJHJ1bGVbJ2ZsZHMnXSk7ICRmbGQrKyApIHsKCSAgaWYoICFpc3NldCgkZmllbGRzWyRmbGRdKSApIGNvbnRpbnVlOwoJICAkZm5hbWUgPSAkcnVsZVsnZmxkcyddWyRmbGRdOwoJICAkcmVjb3JkWyRmbmFtZV0gPSAkdGhpcy0+dW5wcm9jZXNzX2RhdGEoJGZpZWxkc1skZmxkXSk7Cgl9CgogICAgLy8gY29udmVydCB0aGUgJ2hpZXJhcmNoeScgZmllbGQgdG8gYSAnaGllcl9pZCcgZmllbGQKICAgIGlmKCAhJHRoaXMtPl9kb19oaWVydmFscyApICRyZWNvcmRbJ2hpZXJfaWQnXSA9IG51bGw7CiAgICBpZiggIWlzc2V0KCRyZWNvcmRbJ2hpZXJfaWQnXSkgJiYgaXNzZXQoJHJlY29yZFsnaGllcmFyY2h5J10pICYmICRyZWNvcmRbJ2hpZXJhcmNoeSddICkgewogICAgICAkaGllcl9pZCA9ICR0aGlzLT5nZXRfaGllcl9pZCgkcmVjb3JkWydoaWVyYXJjaHknXSk7CiAgICAgIGlmKCAhJGhpZXJfaWQgJiYgJHRoaXMtPl9kb19oaWVyZGVmcyApIHsKICAgICAgICAkcmVjID0gYXJyYXkoJ2xvbmdfbmFtZSc9PiRyZWNvcmRbJ2hpZXJhcmNoeSddKTsKICAgICAgfQogICAgICAkaGllcl9pZCA9ICR0aGlzLT5nZXRfaGllcl9pZCgkcmVjb3JkWydoaWVyYXJjaHknXSk7CiAgICAgICRyZWNvcmRbJ2hpZXJfaWQnXSA9ICRoaWVyX2lkOwogICAgICB1bnNldCgkcmVjb3JkWydoaWVyYXJjaHknXSk7CiAgICB9CiAgICBpZiggIWlzc2V0KCRyZWNvcmRbJ2hpZXJfaWQnXSkgKSAkcmVjb3JkWydoaWVyX2lkJ10gPSBudWxsOwoKICAgIC8vIGNvbnZlcnQgdGhlICdDQVQ6JyBtZW1iZXJzIHdpdGggc3RyaW5ncyBjb250YWluaW5nIGxvbmdfbmFtZXMgdG8gY2F0XyMjIG1lbWJlcnMgd2l0aCBpbnRlZ2VycwogICAgLy8gaWYgaWdub3JpbmcgY2F0ZWdvcnkgdmFsdWVzIGRvIG5vdGhpbmcKICAgIC8vIGFsc28gY3JlYXRlcyBjYXRlZ29yaWVzIGlmIG5lZWRlZCAoc28gdGhhdCB3ZSBjYW4gZ2V0IHRoZSBpbnRlZ2VyIGlkKQogICAgaWYoICEkdGhpcy0+X2RvX2NhdGVnb3J5dmFscyApIHsKICAgICAgLy8gaWdub3JpbmcgY2F0ZWdvcnkgc3R1ZmYgYWxsLXRvZ2V0aGVyCiAgICAgIGZvcmVhY2goICRyZWNvcmQgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnQ0FUOicpICkgdW5zZXQoJHJlY29yZFska2V5XSk7CiAgICAgIH0KICAgIH0KICAgIGlmKCAkdGhpcy0+X2RvX2NhdGVnb3J5ZGVmcyApIHsKICAgICAgLy8gd2UgYXJlIGluc2VydGluZyBtaXNzaW5nIGNhdGVnb3J5IGRlZmluaXRpb25zCiAgICAgIGZvcmVhY2goICRyZWNvcmQgYXMgJG9rZXkgPT4gJHZhbHVlICkgewogICAgICAgIGlmKCBzdGFydHN3aXRoKCRva2V5LCdDQVQ6JykgKSB7CiAgICAgICAgICAka2V5ID0gdHJpbShzdWJzdHIoJG9rZXksNCkpOwogICAgICAgICAgJGNhdF9pZCA9ICR0aGlzLT5nZXRfY2F0ZWdvcnlfaWQoJGtleSk7CiAgICAgICAgICBpZiggISRjYXRfaWQgKSB7CiAgICAgICAgICAgICRyZWNbJ2xvbmdfbmFtZSddID0gJGtleTsKICAgICAgICAgICAgJHRoaXMtPl9pbnNlcnRfY2F0ZWdvcnkoJHJlYyk7CiAgICAgICAgICB9CiAgICAgICAgICAkY2F0X2lkID0gJHRoaXMtPmdldF9jYXRlZ29yeV9pZCgka2V5KTsKICAgICAgICAgIGlmKCAkY2F0X2lkICkgJHJlY29yZFsnY2F0XycuJGNhdF9pZF0gPSAkdmFsdWU7CiAgICAgICAgICB1bnNldCgkcmVjb3JkWyRva2V5XSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgLy8gZGF0YSB2YWxpZGF0aW9uCiAgICBpZiggIWlzc2V0KCRyZWNvcmRbJ2NvbXBhbnlfbmFtZSddKSB8fCBlbXB0eSgkcmVjb3JkWydjb21wYW55X25hbWUnXSkgKSB7CgkgICR0aGlzLT5zZXRfZXJyb3IoJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX2ltcG9ydF9iYWR2YWx1ZScsJ2NvbXBhbnlfbmFtZScpKTsKCSAgcmV0dXJuIEZBTFNFOwoJfQoKICAgIC8vIGRvIG9wdGlvbmFsIGxhdC9sb25nIGxvb2t1cAogICAgaWYoICR0aGlzLT5fZG9fbGF0bG9uZ19sb29rdXAgKSB7CgkgIGlmKCBlbXB0eSgkcmVjb3JkWydsYXRpdHVkZSddKSB8fCBlbXB0eSgkcmVjb3JkWydsb25naXR1ZGUnXSkgJiYKCQkgICFlbXB0eSgkcmVjb3JkWydhZGRyZXNzJ10pICkgewoJCSRkYXRhID0gY2RfdXRpbHM6Omdlb2xvY2F0ZSgkcmVjb3JkWydhZGRyZXNzJ10pOwoJCWlmKCAkZGF0YSAmJiAkZGF0YVsnbGF0J10gIT0gMCAmJiAkZGF0YVsnbG9uJ10gIT0gMCApIHsKCQkgICRyZWNvcmRbJ2xhdGl0dWRlJ10gPSAkZGF0YVsnbGF0J107CgkJICAkcmVjb3JkWydsb25naXR1ZGUnXSA9ICRkYXRhWydsb24nXTsKCQl9CgkgIH0KCX0KCgkvLyBoYW5kbGUgdXJsCglpZiggJHJlY29yZFsndXJsJ10gPT0gJycgJiYgJHRoaXMtPl9jcmVhdGVfdXJsICkgewoJICAkcmVjb3JkWyd1cmwnXSA9IGNkX3V0aWxzOjpnZW5lcmF0ZV91cmwoJHJlY29yZFsnY29tcGFueV9uYW1lJ10pOwoJfQoJaWYoICRyZWNvcmRbJ3VybCddICE9ICcnICkgewoJICB3aGlsZSggIWNkX3V0aWxzOjp2YWxpZGF0ZV91cmwoJHJlY29yZFsndXJsJ10sVFJVRSkgKSB7CgkJJHJlY29yZFsndXJsJ10gPSBjZF91dGlsczo6Z2VuZXJhdGVfdXJsKCRyZWNvcmRbJ2NvbXBhbnlfbmFtZSddKTsKCSAgfQoJfQoKICAgIC8vIGNoZWNrIGZvciBkdXBsaWNhdGU/CgkkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBjb21wYW55X25hbWUgPSA/JzsKCSRlaWQgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHJlY29yZFsnY29tcGFueV9uYW1lJ10pKTsKCWlmKCAkZWlkICkgewoJICBzd2l0Y2goICR0aGlzLT5fY2hlY2tfZHVwbGljYXRlX2NvbXBhbmllcyApIHsKCSAgY2FzZSAnZXJyb3InOgoJCSR0aGlzLT5zZXRfZXJyb3IoJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX2R1cGxpY2F0ZV9jb21wYW55JywkcmVjb3JkWydjb21wYW55X25hbWUnXSkpOwoJCXJldHVybiBGQUxTRTsKCSAgY2FzZSAnaWdub3JlJzoKCQlyZXR1cm4gRkFMU0U7CiAgICAgIGNhc2UgJ2luc2VydCc6CiAgICAgICAgLy8gd2UncmUgaW5zZXJ0aW5nIGFueXdheXMuCiAgICAgICAgJGVpZCA9IG51bGw7CgkgIGNhc2UgJ3VwZGF0ZSc6CgkJLy8gb3ZlcndyaXRpbmcuLi4ga2VlcCBnb2luZy4KCQlicmVhazsKCSAgfQoJfQoKICAgIC8vIGluc2VydCB0aGF0IHJlY29yZAogICAgJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKCSRkYnIgPSBUUlVFOwoJaWYoICRlaWQgKSB7CgkgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcwogICAgICAgICAgICAgICAgU0VUIHVybCA9ID8sIGFkZHJlc3MgPSA/LCB0ZWxlcGhvbmUgPSA/LCBmYXggPSA/LCBjb250YWN0X2VtYWlsID0gPywKICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlID0gPywgZGV0YWlscyA9ID8sIHN0YXR1cyA9ID8sIGxhdGl0dWRlID0gPywKICAgICAgICAgICAgICAgICAgICBsb25naXR1ZGUgPSA/LCBvd25lcl9pZCA9ID8sIGhpZXJfaWQgPSA/LCBtb2RpZmllZF9kYXRlID0gPyBXSEVSRSBpZCA9ID8iOwoJICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwKCQkJCQkJICBhcnJheSgkcmVjb3JkWyd1cmwnXSwkcmVjb3JkWydhZGRyZXNzJ10sJHJlY29yZFsndGVsZXBob25lJ10sCgkJCQkJCQkJJHJlY29yZFsnZmF4J10sJHJlY29yZFsnY29udGFjdF9lbWFpbCddLCRyZWNvcmRbJ3dlYnNpdGUnXSwKCQkJCQkJCQkkcmVjb3JkWydkZXRhaWxzJ10sJHJlY29yZFsnc3RhdHVzJ10sCgkJCQkJCQkJJHJlY29yZFsnbGF0aXR1ZGUnXSwkcmVjb3JkWydsb25naXR1ZGUnXSwKCQkJCQkJCQkkdXNlcmlkLCRyZWNvcmRbJ2hpZXJfaWQnXSwkbm93LCRlaWQpKTsKCgkgIGlmKCAhJGRiciApIHsKCQkkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl91cGRhdGVfY29tcGFueScpKTsKCQlyZXR1cm4gRkFMU0U7CgkgIH0KCgkgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGVpZCkpOwoKCSAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgV0hFUkUgY29tcGFueV9pZCA9ID8nOwoJICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZWlkKSk7CgoJICAkY29tcGFueV9pZCA9ICRlaWQ7CiAgICAgICR0aGlzLT5fbnVtX2NvbXBhbmllcysrOwoJfQoJZWxzZSB7CgkgICRxdWVyeSA9ICAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcwogICAgICAgICAgICAgICAgIChjb21wYW55X25hbWUsdXJsLGFkZHJlc3MsdGVsZXBob25lLGZheCxjb250YWN0X2VtYWlsLHdlYnNpdGUsZGV0YWlscyxzdGF0dXMsCiAgICAgICAgICAgICAgICAgIGxhdGl0dWRlLGxvbmdpdHVkZSxvd25lcl9pZCwgaGllcl9pZCxjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sJG5vdywkbm93KSI7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRyZWNvcmRbJ2NvbXBhbnlfbmFtZSddLCRyZWNvcmRbJ3VybCddLCRyZWNvcmRbJ2FkZHJlc3MnXSwKCQkJCQkJCQkJICAgJHJlY29yZFsndGVsZXBob25lJ10sJHJlY29yZFsnZmF4J10sCgkJCQkJCQkJCSAgICRyZWNvcmRbJ2NvbnRhY3RfZW1haWwnXSwkcmVjb3JkWyd3ZWJzaXRlJ10sCgkJCQkJCQkJCSAgICRyZWNvcmRbJ2RldGFpbHMnXSwkcmVjb3JkWydzdGF0dXMnXSwKCQkJCQkJCQkJICAgJHJlY29yZFsnbGF0aXR1ZGUnXSwkcmVjb3JkWydsb25naXR1ZGUnXSwKCQkJCQkJCQkJICAgJHVzZXJpZCwkcmVjb3JkWydoaWVyX2lkJ10pKTsKCSAgaWYoICEkZGJyICkgewoJCSR0aGlzLT5zZXRfZXJyb3IoJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX2luc2VydF9jb21wYW55JykpOwoJCXJldHVybiBGQUxTRTsKCSAgfQoJICAkY29tcGFueV9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CiAgICAgICR0aGlzLT5fbnVtX2NvbXBhbmllcysrOwoJfQoKCS8vIGluc2VydCBmaWVsZHZhbHMKICAgIGlmKCAkdGhpcy0+X2RvX2ZpZWxkdmFscyApIHsKICAgICAgZm9yZWFjaCggJHJlY29yZCBhcyAkb2tleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgJHByZWZpeCA9ICdGSUVMRDonOwogICAgICAgIGlmKCAhc3RhcnRzd2l0aCgkb2tleSwkcHJlZml4KSApIGNvbnRpbnVlOwogICAgICAgICRmbGRfbmFtZSA9IHRyaW0oc3Vic3RyKCRva2V5LHN0cmxlbigkcHJlZml4KSkpOwogICAgICAgIGlmKCAhJGZsZF9uYW1lIHx8IGVtcHR5KCR2YWx1ZSkgKSBjb250aW51ZTsKICAgICAgICAkZmxkX2lkID0gJHRoaXMtPmdldF9maWVsZGRlZl9pZCgkZmxkX25hbWUpOwogICAgICAgIGlmKCAhJGZsZF9pZCAmJiAkdGhpcy0+X2RvX2ZpZWxkZGVmcyApIHsKICAgICAgICAgICRyZWMgPSBhcnJheSgnbmFtZSc9PiRmbGRfbmFtZSk7CiAgICAgICAgICAkdGhpcy0+X2luc2VydF9maWVsZGRlZigkcmVjKTsKICAgICAgICB9CiAgICAgICAgJGZsZF9pZCA9ICR0aGlzLT5nZXRfZmllbGRkZWZfaWQoJGZsZF9uYW1lKTsKICAgICAgICBpZiggISRmbGRfaWQgKSBjb250aW51ZTsKCiAgICAgICAgLy8gaW5zZXJ0IHRoZSBmaWVsZCB2YWx1ZS4KICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2ZpZWxkdmFscwogICAgICAgICAgICAgICAgICAoY29tcGFueV9pZCwgZmllbGRkZWZfaWQsIHZhbHVlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPywkbm93LCRub3cpIjsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY29tcGFueV9pZCwkZmxkX2lkLCR2YWx1ZSkpOwogICAgICB9CiAgICB9CgoJLy8gaW5zZXJ0IGNhdGVnb3JpZXMKICAgIGlmKCAkdGhpcy0+X2RvX2NhdGVnb3J5dmFscyApIHsKICAgICAgJHByZWZpeCA9ICdjYXRfJzsKICAgICAgZm9yZWFjaCggJHJlY29yZCBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoJGtleSwkcHJlZml4KSApIGNvbnRpbnVlOwogICAgICAgIGlmKCAhJHZhbHVlICkgY29udGludWU7CiAgICAgICAgJGNhdF9pZCA9IChpbnQpc3Vic3RyKCRrZXksc3RybGVuKCRwcmVmaXgpKTsKICAgICAgICBpZiggJGNhdF9pZCA8IDEgKSBjb250aW51ZTsKCgkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgICAgKGNvbXBhbnlfaWQsY2F0ZWdvcnlfaWQsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sTk9XKCksTk9XKCkpIjsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjb21wYW55X2lkLCRjYXRfaWQpKTsKICAgICAgfQoJfQoKICAgIHJldHVybiBUUlVFOwogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBfaGFuZGxlX2hlYWRlcigkZmllbGRzKQogIHsKICAgIGlmKCAhc3RhcnRzd2l0aCggJGZpZWxkc1swXSwgJyMnKSApIGNvbnRpbnVlOwoKICAgICRwYXJ0cyA9IGV4cGxvZGUoJz0nLCRmaWVsZHNbMF0pOwogICAgJHR5cGUgPSB0cmltKHN1YnN0cigkcGFydHNbMF0sMSkpOwogICAgJGlkZW50aWZpZXIgPSB0cmltKCRwYXJ0c1sxXSk7CiAgICBpZiggIWlzc2V0KCR0aGlzLT5fcnVsZXNbJGlkZW50aWZpZXJdKSApIHsKICAgICAgJHRoaXMtPl9ydWxlc1skaWRlbnRpZmllcl0gPSBhcnJheSgndHlwZSc9PiR0eXBlLCdpZGVudGlmaWVyJz0+JGlkZW50aWZpZXIsJ2ZsZHMnPT4kZmllbGRzKTsKICAgIH0KICAgIHJldHVybjsKICB9CgogIHByaXZhdGUgZnVuY3Rpb24gX3Byb2Nlc3NfcmVjb3JkKCRmaWVsZHMpCiAgewogICAgJGlkZW50aWZpZXIgPSB0cmltKCRmaWVsZHNbMF0pOwogICAgaWYoICFpc3NldCgkdGhpcy0+X3J1bGVzWyRpZGVudGlmaWVyXSkgKSB7CiAgICAgICR0aGlzLT5zZXRfZXJyb3IoJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX2ltcG9ydF91bmtub3ducm93JywkdGhpcy0+X2xpbmVudW0sJGZpZWxkc1swXSkpOwogICAgICByZXR1cm47CiAgICB9CgogICAgJGhhbmRsZXIgPSBzdHJ0b2xvd2VyKCdwcm9jZXNzXycuJHRoaXMtPl9ydWxlc1skaWRlbnRpZmllcl1bJ3R5cGUnXSk7CiAgICBpZiggIW1ldGhvZF9leGlzdHMoJHRoaXMsJGhhbmRsZXIpICkgewogICAgICAkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9pbXBvcnRfbm9oYW5kbGVyJywkdGhpcy0+X2xpbmVudW0sJGZpZWxkc1swXSkpOwogICAgfQoKICAgIHJldHVybiAkdGhpcy0+JGhhbmRsZXIoJGZpZWxkcywkdGhpcy0+X3J1bGVzWyRpZGVudGlmaWVyXSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gaW1wb3J0X2ZpbGUoJGZpbGVuYW1lKQogIHsKICAgICR0aGlzLT5fbGluZW51bSA9IDA7CiAgICAkb3JpZ19saW5lX2VuZGluZ3MgPSBpbmlfZ2V0KCdhdXRvX2RldGVjdF9saW5lX2VuZGluZ3MnKTsKICAgIGluaV9zZXQoJ2F1dG9fZGV0ZWN0X2xpbmVfZW5kaW5ncycsVFJVRSk7CgogICAgJGZoID0gZm9wZW4oJGZpbGVuYW1lLCdyJyk7CiAgICBpZiggISRmaCApIHsKCSAgJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfYmFkdXBsb2FkJykpOwoJICByZXR1cm4gRkFMU0U7Cgl9CgogICAgdHJ5IHsKICAgICAgd2hpbGUoICFmZW9mKCRmaCkgKSB7CiAgICAgICAgICAkZmllbGRzID0gZmdldGNzdigkZmgsMCwkdGhpcy0+X2RlbGltaXRlciwkdGhpcy0+X2VuY2xvc3VyZSk7CiAgICAgICAgJHRoaXMtPl9saW5lbnVtKys7CgogICAgICAgIC8vIHNraXAgZW1wdHkgbGluZXMKICAgICAgICBpZiggIWlzX2FycmF5KCRmaWVsZHMpIHx8IGNvdW50KCRmaWVsZHMpID09IDAgfHwgJGZpZWxkc1swXSA9PSAnJyApIGNvbnRpbnVlOwoKICAgICAgICBpZiggc3RhcnRzd2l0aCgkZmllbGRzWzBdLCcjJykgKSB7CiAgICAgICAgICAkdGhpcy0+X2hhbmRsZV9oZWFkZXIoJGZpZWxkcyk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIC8vIGZpbmQgdGhlIHJvdyB0eXBlCiAgICAgICAgJHRoaXMtPl9wcm9jZXNzX3JlY29yZCgkZmllbGRzKTsKICAgICAgfQoKICAgICAgJHRoaXMtPl9udW1fbGluZXMgPSAkdGhpcy0+X2xpbmVudW07CiAgICAgIGZjbG9zZSgkZmgpOwoKICAgICAgaWYoICR0aGlzLT5fbnVtX2hpZXIgKSBjZF91dGlsczo6dXBkYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICAgICAgaWYoICR0aGlzLT5fbnVtX2NhdGVnb3JpZXMgKSBjZF9jYXRlZ29yeTo6Y2FsY3VsYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICAgIH0KICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgIGluaV9zZXQoJ2F1dG9fZGV0ZWN0X2xpbmVfZW5kaW5ncycsJG9yaWdfbGluZV9lbmRpbmdzKTsKICAgICAgZmNsb3NlKCRmaCk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBpbmlfc2V0KCdhdXRvX2RldGVjdF9saW5lX2VuZGluZ3MnLCRvcmlnX2xpbmVfZW5kaW5ncyk7CiAgICByZXR1cm4gVFJVRTsKICB9Cgp9CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNkX2NhdGVnb3J5IGltcGxlbWVudHMgQXJyYXlBY2Nlc3MKewogICAgLy8ga2V5cyBhcmU6IGlkIChybyksIGltYWdlX3VybCAocm8pLCBpbWFnZV9maWxlIChybyksIGRlc2NyaXB0aW9uLCBuYW1lLCBwYXJlbnRfaWQsIGl0ZW1fb3JkZXIsIGhpZXJhcmNoeSAocm8pLCBleHRyYTEsIGV4dHJhMiwgZXh0cmEzCiAgICBwcml2YXRlICRfb3JpZ19wYXJlbnQgPSAtMTAwOwogICAgcHJpdmF0ZSAkX2RhdGEgPSBudWxsOwogICAgcHJpdmF0ZSAkX2RpcnR5OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhID0gYXJyYXkoJ2lkJz0+bnVsbCwnaW1hZ2UnPT5udWxsLCdkZXNjcmlwdGlvbic9Pm51bGwsJ3BhcmVudF9pZCc9Pi0xLCdoaWVyYXJjaHknPT5udWxsLCdleHRyYTEnPT5udWxsLCdleHRyYTInPT5udWxsLCdleHRyYTMnPT5udWxsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gT2Zmc2V0R2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICBjYXNlICdpdGVtX29yZGVyJzoKICAgICAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgJiYgIWlzX251bGwoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAoaW50KSR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3BhcmVudF9pZCc6CiAgICAgICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICYmICFpc19udWxsKCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gKGludCkkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgICAgIHJldHVybiAtMTsKCiAgICAgICAgY2FzZSAnaW1hZ2VfdXJsJzoKICAgICAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgJiYgIWlzX251bGwoJHRoaXMtPl9kYXRhWydpbWFnZSddKSApIHsKICAgICAgICAgICAgICAgIGRpZSgnbm90IGRvbmUnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnaW1hZ2VfZmlsZSc6CiAgICAgICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICYmICFpc19udWxsKCR0aGlzLT5fZGF0YVsnaW1hZ2UnXSkgKSB7CiAgICAgICAgICAgICAgICBkaWUoJ25vdCBkb25lJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ltYWdlJzoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6CiAgICAgICAgY2FzZSAnaGllcmFyY2h5JzoKICAgICAgICBjYXNlICdleHRyYTEnOgogICAgICAgIGNhc2UgJ2V4dHJhMic6CiAgICAgICAgY2FzZSAnZXh0cmEzJzoKICAgICAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgJiYgIWlzX251bGwoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCRrZXkuJyBpcyBhbiBpbnZhbGlkIGtleSBmb3IgYSAnLl9fQ0xBU1NfXy4nIG9iamVjdCcpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gT2Zmc2V0U2V0KCRrZXksJHZhbHVlKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdwYXJlbnRfaWQnOgogICAgICAgICAgICAkdmFsdWUgPSAoaW50KSR2YWx1ZTsKICAgICAgICAgICAgaWYoICR2YWx1ZSA9PSAwIHx8ICR2YWx1ZSA8IC0xICkgdGhyb3cgbmV3IENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCJJbnZhbGlkIHZhbHVlICR2YWx1ZSBmb3Iga2V5ICRrZXkgaW4gY2xhc3MgIi5fX0NMQVNTX18pOwogICAgICAgICAgICAkdGhpcy0+X29yaWdfcGFyZW50ID0gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSR2YWx1ZTsKICAgICAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdpdGVtX29yZGVyJzoKICAgICAgICAgICAgJHZhbHVlID0gKGludCkkdmFsdWU7CiAgICAgICAgICAgIGlmKCAkdmFsdWUgPCAxICkgdGhyb3cgbmV3IENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCJJbnZhbGlkIHZhbHVlICR2YWx1ZSBmb3Iga2V5ICRrZXkgaW4gY2xhc3MgIi5fX0NMQVNTX18pOwogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSR2YWx1ZTsKICAgICAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgY2FzZSAnZGVzY3JpcHRpb24nOgogICAgICAgIGNhc2UgJ2hpZXJhcmNoeSc6CiAgICAgICAgY2FzZSAnZXh0cmExJzoKICAgICAgICBjYXNlICdleHRyYTInOgogICAgICAgIGNhc2UgJ2V4dHJhMyc6CiAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnaW1hZ2VfdXJsJzoKICAgICAgICBjYXNlICdpbWFnZV9maWxlJzoKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigka2V5LicgaXMgYSByZWFkb25seSBrZXkgZm9yIGEgJy5fX0NMQVNTX18uJyBvYmplY3QnKTsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigka2V5LicgaXMgYW4gaW52YWxpZCBrZXkgZm9yIGEgJy5fX0NMQVNTX18uJyBvYmplY3QnKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIE9mZnNldEV4aXN0cygka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAncGFyZW50X2lkJzoKICAgICAgICBjYXNlICdpdGVtX29yZGVyJzoKICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgY2FzZSAnZGVzY3JpcHRpb24nOgogICAgICAgIGNhc2UgJ2hpZXJhcmNoeSc6CiAgICAgICAgY2FzZSAnZXh0cmExJzoKICAgICAgICBjYXNlICdleHRyYTInOgogICAgICAgIGNhc2UgJ2V4dHJhMyc6CiAgICAgICAgY2FzZSAnaW1hZ2VfdXJsJzoKICAgICAgICBjYXNlICdpbWFnZV9maWxlJzoKICAgICAgICAgICAgcmV0dXJuIChpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICYmICFpc19udWxsKCR0aGlzLT5fZGF0YVska2V5XSkpP1RSVUU6RkFMU0U7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJGtleS4nIGlzIGFuIGludmFsaWQga2V5IGZvciBhICcuX19DTEFTU19fLicgb2JqZWN0Jyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBPZmZzZXRVbnNldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgICAgIC8vIHRvZG86IGhlcmUgd2Ugc2hvdWxkIGRlbGV0ZSB0aGUgaW1hZ2UgKG9yIG1hcmsgaXQgZm9yIGRlbGV0aW9uIG9uIHNhdmUpCiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgY2FzZSAnZGVzY3JpcHRpb24nOgogICAgICAgIGNhc2UgJ2hpZXJhcmNoeSc6CiAgICAgICAgY2FzZSAnZXh0cmExJzoKICAgICAgICBjYXNlICdleHRyYTInOgogICAgICAgIGNhc2UgJ2V4dHJhMyc6CiAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgICAgICR0aGlzLT5fZGlydHkgPSBUUlVFOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAncGFyZW50X2lkJzoKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnaXRlbV9vcmRlcic6CiAgICAgICAgY2FzZSAnaW1hZ2VfdXJsJzoKICAgICAgICBjYXNlICdpbWFnZV9maWxlJzoKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigka2V5LicgaXMgYSByZWFkb25seSBrZXkgZm9yIGEgJy5fX0NMQVNTX18uJyBvYmplY3QnKTsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigka2V5LicgaXMgYW4gaW52YWxpZCBrZXkgZm9yIGEgJy5fX0NMQVNTX18uJyBvYmplY3QnKTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfaW5zZXJ0KCkKICAgIHsKICAgICAgICBpZiggJHRoaXNbJ2lkJ10gPiAwICkgdGhyb3cgbmV3IENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCdDYW5ub3QgdXBkYXRlIGEgY2F0ZWdvcnkgcmVjb3JkIHdpdGggYSB2YWxpZCBpdGVtIGlkJyk7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAvLyBjYWxjdWxhdGUgYW4gaXRlbSBvcmRlcgogICAgICAgIGlmKCAkdGhpc1snaXRlbV9vcmRlciddIDwgMSApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBDT0FMRVNDRShNQVgoaXRlbV9vcmRlciksMCkrMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgICAgICAgICAkdGhpc1snaXRlbV9vcmRlciddID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGlzWydwYXJlbnRfaWQnXSkpOwogICAgICAgIH0KICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgKG5hbWUsaW1hZ2UsZGVzY3JpcHRpb24scGFyZW50X2lkLGl0ZW1fb3JkZXIsZXh0cmExLGV4dHJhMixleHRyYTMpCiAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/KSc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXNbJ25hbWUnXSwkdGhpc1snaW1hZ2UnXSwkdGhpc1snZGVzY3JpcHRpb24nXSwkdGhpc1sncGFyZW50X2lkJ10sJHRoaXNbJ2l0ZW1fb3JkZXInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpc1snZXh0cmExJ10sJHRoaXNbJ2V4dHJhMiddLCR0aGlzWydleHRyYTMnXSkpOwogICAgICAgIGlmKCAhJGRiciApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oIkRhdGFiYXNlIEVycm9yOiAiLiRkYi0+c3FsLicgLS0gJy4kZGItPkVycm9yTXNnKCkpOwogICAgICAgICR0aGlzLT5fZGF0YVsnaWQnXSA9ICRkYi0+SW5zZXJ0X0lEKCk7CiAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IEZBTFNFOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3VwZGF0ZSgpCiAgICB7CiAgICAgICAgLy8gYWRkaXRpb25hbCB2YWxpZGF0aW9uCiAgICAgICAgaWYoICR0aGlzWydpZCddIDwgMSApIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignQ2Fubm90IHVwZGF0ZSBhIGNhdGVnb3J5IHJlY29yZCB3aXRoIG5vIGl0ZW0gaWQnKTsKICAgICAgICBpZiggJHRoaXNbJ2l0ZW1fb3JkZXInXSA8IDEgKSB0aHJvdyBuZXcgQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJ0ludmFsaWQgaXRlbV9vcmRlciBmb3IgJy5fX0NMQVNTX18pOwogICAgICAgIGlmKCAkdGhpc1sncGFyZW50X2lkJ10gPT0gMCB8fCAkdGhpc1sncGFyZW50X2lkJ10gPCAtMSApIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignSW52YWxpZCBwYXJlbnRfaWQgZm9yICcuX19DTEFTU19fKTsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICBpZiggJHRoaXMtPl9vcmlnX3BhcmVudCA+IC0xMDAgJiYgJHRoaXMtPl9vcmlnX3BhcmVudCAhPSAkdGhpc1sncGFyZW50X2lkJ10gKSB7CiAgICAgICAgICAgIC8vIGNoYW5naW5nIHBhcmVudAogICAgICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIFNFVCBpdGVtX29yZGVyID0gaXRlbV9vcmRlciAtIDEgV0hFUkUgaXRlbV9vcmRlciA+ID8gQU5EIHBhcmVudF9pZCA9ID8nOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzWydpdGVtX29yZGVyJ10sJHRoaXMtPl9vcmlnX3BhcmVudCkpOwoKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBDT0FMRVNDRShNQVgoaXRlbV9vcmRlciksMCkrMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJ2l0ZW1fb3JkZXInXSA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpc1sncGFyZW50X2lkJ10pKTsKICAgICAgICB9CgogICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgU0VUIG5hbWUgPSA/LCBpbWFnZSA9ID8sIGRlc2NyaXB0aW9uID0gPywgcGFyZW50X2lkID0gPywgaXRlbV9vcmRlciA9ID8sCiAgICAgICAgICAgICAgICAgIGV4dHJhMSA9ID8sIGV4dHJhMiA9ID8sIGV4dHJhMyA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpc1snbmFtZSddLCR0aGlzWydpbWFnZSddLCR0aGlzWydkZXNjcmlwdGlvbiddLCR0aGlzWydwYXJlbnRfaWQnXSwkdGhpc1snaXRlbV9vcmRlciddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzWydleHRyYTEnXSwkdGhpc1snZXh0cmEyJ10sJHRoaXNbJ2V4dHJhMyddLCR0aGlzWydpZCddKSk7CiAgICAgICAgaWYoICEkZGJyICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigiRGF0YWJhc2UgRXJyb3I6ICIuJGRiLT5zcWwuJyAtLSAnLiRkYi0+RXJyb3JNc2coKSk7CiAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ09NUEFOWURJUkVDVE9SWSk7CiAgICAgICAgaWYoICR0aGlzWyduYW1lJ10gPT0gJycgKSB0aHJvdyBuZXcgQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJG1vZC0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICAgICAgaWYoIHByZWdfbWF0Y2goJy9bXlx3IFwmXS8nLCR0aGlzWyduYW1lJ10pICkgdGhyb3cgbmV3IENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2JhZG5hbWVnaXZlbicpKTsKICAgICAgICBpZiggc3RycG9zKCd8JywkdGhpc1snbmFtZSddKSAhPT0gRkFMU0UgKSB0aHJvdyBuZXcgQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJG1vZC0+TGFuZygnYmFkbmFtZWdpdmVuJykpOwoKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICR0bXAgPSAtMTsKICAgICAgICBpZiggJHRoaXNbJ2lkJ10gPiAwICkgewogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgbmFtZSA9ID8gQU5EIGlkICE9ID8nOwogICAgICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGlzWydwYXJlbnRfaWQnXSwkdGhpc1snbmFtZSddLCR0aGlzWydpZCddKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgbmFtZSA9ID8nOwogICAgICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGlzWydwYXJlbnRfaWQnXSwkdGhpc1snbmFtZSddKSk7CiAgICAgICAgfQogICAgICAgIGlmKCAkdG1wID4gMCApIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9kdXBsaWNhdGVfY2F0ZWdvcnknKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9kaXJ0eSApIHJldHVybjsKICAgICAgICAkdGhpcy0+dmFsaWRhdGUoKTsKICAgICAgICBpZiggJHRoaXNbJ2lkJ10gPiAwICkgewogICAgICAgICAgICAkdGhpcy0+X3VwZGF0ZSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5faW5zZXJ0KCk7CiAgICAgICAgfQogICAgICAgIHNlbGY6OmNhbGN1bGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmbG9hZCgkaWQpCiAgICB7CiAgICAgICAgJGlkID0gKGludCkkaWQ7CiAgICAgICAgaWYoICRpZCA8IDEgKSB0aHJvdyBuZXcgQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJ0Nhbm5vdCBJbnZhbGlkIGNhdGVnb3J5IGlkICcuJGlkKTsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8nOwogICAgICAgICRkYnIgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGlkKSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkZGJyKSApIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignQ2F0ZWdvcnkgJy4kaWQuJyBub3QgZm91bmQnKTsKCiAgICAgICAgJG9iaiA9IG5ldyBzZWxmKCk7CiAgICAgICAgJG9iai0+X2RhdGEgPSAkZGJyOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoKQogICAgewogICAgICAgIGlmKCAkdGhpc1snaWQnXSA8IDEgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdDYW5ub3QgZGVsZXRlIGNhdGVnb3J5IHRoYXQgaGFzIG5vdCBiZWVuIHNhdmVkJyk7CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgIC8vIGNoZWNrIGZvciBjaGlsZHJlbgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgY291bnQoaWQpIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgV0hFUkUgcGFyZW50X2lkID0gPyc7CiAgICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpc1snaWQnXSkpOwogICAgICAgIGlmKCAkdG1wID4gMCApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Nhbm5vdCBkZWxldGUgY2F0ZWdvcnkgdGhhdCBoYXMgY2hpbGRyZW4nKTsKCiAgICAgICAgLy8gZGVsZXRlIHRoZSB0aGluZwogICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXNbJ2lkJ10pKTsKICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIFNFVCBpdGVtX29yZGVyID0gaXRlbV9vcmRlciAtIDEgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgaXRlbV9vcmRlciA+ID8nOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzWydwYXJlbnRfaWQnXSwkdGhpc1snaXRlbV9vcmRlciddKSk7CiAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIFdIRVJFIHBhcmVudF9pZCA9ID8gQU5EIGlkID0gPyc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXNbJ3BhcmVudF9pZCddLCR0aGlzWydpZCddKSk7CiAgICAgICAgc2VsZjo6Y2FsY3VsYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9saXN0KCkKICAgIHsKICAgICAgICAkdG1wID0gY2RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKFRSVUUpOwogICAgICAgIGlmKCBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRfaCA9IGV4cGxvZGUoJy4nLCRvbmUtPmhpZXJhcmNoeSk7CiAgICAgICAgICAgICAgICAkZGVwdGggPSBjb3VudCgkX2gpLTE7CiAgICAgICAgICAgICAgICAkb3V0WyRvbmUtPmlkXSA9IHN0cl9yZXBlYXQoJyZuYnNwOyZuYnNwOycsJGRlcHRoKS4kb25lLT5uYW1lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF90cmVlKCkKICAgIHsKICAgICAgICAkbGlzdCA9IGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcyhUUlVFKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRsaXN0KSB8fCBjb3VudCgkbGlzdCkgPT0gMCApIHJldHVybjsKCiAgICAgICAgJGdldF90cmVlID0gZnVuY3Rpb24oJHBhcmVudF9pZCA9IC0xLCAkZGVwdGggPSAwKSB1c2UgKCRsaXN0LCYkZGF0YSwmJGdldF90cmVlKSB7CiAgICAgICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgaWYoICRvbmUtPnBhcmVudF9pZCAhPSAkcGFyZW50X2lkICkgY29udGludWU7CgogICAgICAgICAgICAgICAgJHRtcCA9ICRnZXRfdHJlZSgkb25lLT5pZCwkZGVwdGgrMSk7CiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJG9uZS0+Y2hpbGRyZW4gPSAkdG1wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG9uZS0+ZGVwdGggPSAkZGVwdGg7CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkb25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH07CgogICAgICAgICR0cmVlID0gJGdldF90cmVlKCk7CiAgICAgICAgcmV0dXJuICR0cmVlOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FsY3VsYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgICRxdWVyeSA9ICJTRUxFQ1QgaWQsIGl0ZW1fb3JkZXIsIG5hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgICAgaWYoICEkZGJyZXN1bHQgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdTUUwgRXJyb3I6ICcuJGRiLT5zcWwuJyAtLSAnLiRkYi0+RXJyb3JNc2coKSk7CiAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAgICAgICAgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9ICIiOwogICAgICAgICAgICAkY3VycmVudF9sb25nX25hbWUgPSAiIjsKICAgICAgICAgICAgJGNvbnRlbnRfaWQgPSAkcm93WydpZCddOwogICAgICAgICAgICAkY3VycmVudF9wYXJlbnRfaWQgPSAkcm93WydpZCddOwogICAgICAgICAgICAkY291bnQgPSAwOwoKICAgICAgICAgICAgd2hpbGUgKCRjdXJyZW50X3BhcmVudF9pZCA+IDApIHsKICAgICAgICAgICAgICAgICRxdWVyeSA9ICJTRUxFQ1QgaWQsIGl0ZW1fb3JkZXIsIG5hbWUsIHBhcmVudF9pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/IjsKICAgICAgICAgICAgICAgICRyb3cyID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9wYXJlbnRfaWQpKTsKICAgICAgICAgICAgICAgIGlmICgkcm93MikgewogICAgICAgICAgICAgICAgICAgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9IHN0cl9wYWQoJHJvdzJbJ2l0ZW1fb3JkZXInXSwgNSwgJzAnLCBTVFJfUEFEX0xFRlQpIC4gIi4iIC4gJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uOwogICAgICAgICAgICAgICAgICAgICRjdXJyZW50X2xvbmdfbmFtZSA9ICRyb3cyWyduYW1lJ10gLiAnIHwgJyAuICRjdXJyZW50X2xvbmdfbmFtZTsKICAgICAgICAgICAgICAgICAgICAkY3VycmVudF9wYXJlbnRfaWQgPSAkcm93MlsncGFyZW50X2lkJ107CiAgICAgICAgICAgICAgICAgICAgJGNvdW50Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkY3VycmVudF9wYXJlbnRfaWQgPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbikgPiAwKSB7CiAgICAgICAgICAgICAgICAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdWJzdHIoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAwLCBzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uKSAtIDEpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc3RybGVuKCRjdXJyZW50X2xvbmdfbmFtZSkgPiAwKSAkY3VycmVudF9sb25nX25hbWUgPSBzdWJzdHIoJGN1cnJlbnRfbG9uZ19uYW1lLCAwLCBzdHJsZW4oJGN1cnJlbnRfbG9uZ19uYW1lKSAtIDMpOwoKICAgICAgICAgICAgJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBTRVQgaGllcmFyY2h5ID0gPywgbG9uZ19uYW1lID0gPyBXSEVSRSBpZCA9ID8iOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24sICRjdXJyZW50X2xvbmdfbmFtZSwgJGNvbnRlbnRfaWQpKTsKICAgICAgICB9CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_company.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNkX2NvbXBhbnkKewogIHByaXZhdGUgc3RhdGljICRfcndrZXlzID0gYXJyYXkoJ2NvbXBhbnlfbmFtZScsJ2FkZHJlc3MnLCd0ZWxlcGhvbmUnLCdmYXgnLCdjb250YWN0X2VtYWlsJywnd2Vic2l0ZScsJ2RldGFpbHMnLCdwaWN0dXJlX2xvY2F0aW9uJywKCQkJCSAgJ2xvZ29fbG9jYXRpb24nLCdsYXRpdHVkZScsJ2xvbmdpdHVkZScsJ2hpZXJfaWQnLCdzdGF0dXMnLCd1cmwnLCdvd25lcl9pZCcpOwogIHByaXZhdGUgc3RhdGljICRfcm9rZXlzID0gYXJyYXkoJ2lkJywnbG9nb19wYXRoJywnb3duZXJfaWQnLCdjcmVhdGVfZGF0ZScsJ21vZGlmaWVkX2RhdGUnKTsKICBwcml2YXRlIHN0YXRpYyAkX21ldGFrZXlzID0gYXJyYXkoJ3BpY3R1cmVfcGF0aCcsJ3BpY3R1cmVfZGlyJywnbG9nb19wYXRoJywnbG9nb19kaXInLCdmaWVsZHMnLCdjYXRlZ29yaWVzJywnaW1hZ2VfbG9jYXRpb24nKTsKICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCdzdGF0dXMnPT4nZHJhZnQnKTsKICBwcml2YXRlICRfZmllbGRzID0gYXJyYXkoKTsKICBwcml2YXRlICRfY2F0cyA9IGFycmF5KCk7CiAgcHJpdmF0ZSAkX2RpcnR5OwogIHByaXZhdGUgJF9kZWVwOwogIHByaXZhdGUgJF9ybzsKCiAgcHVibGljIGZ1bmN0aW9uIHNldF9yZWFkb25seSgkZmxhZyA9IFRSVUUpCiAgewoJLy8gY2Fubm90IGJlIHVuZG9uZS4uLgoJJHRoaXMtPl9ybyA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgewoJJHJldCA9IG51bGw7CiAgICAka2V5ID0gc3RydG9sb3dlcigka2V5KTsKICAgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfcm9rZXlzKSApIHsKCSAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICkgcmV0dXJuICRyZXQ7CgkgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07Cgl9CiAgICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX3J3a2V5cykgKSB7CgkgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAkcmV0OwoJICByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwoJfQogICAgaWYoIGluX2FycmF5KCRrZXksc2VsZjo6JF9tZXRha2V5cykgKSB7CgkgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCSAgc3dpdGNoKCAka2V5ICkgewoJICBjYXNlICdmaWVsZHMnOgoJCWRpZSgnbm90IGRvbmUnKTsKCQlicmVhazsKCgkgIGNhc2UgJ2NhdGVnb3JpZXMnOgoJCWRpZSgnbm90IGRvbmUnKTsKCQlicmVhazsKCgkgIGNhc2UgJ2ltYWdlX2xvY2F0aW9uJzogLy8gYWxpYXMgZm9yIHBpY3R1cmUgbG9jYXRpb24KCQlpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsncGljdHVyZV9sb2NhdGlvbiddKSApIHJldHVybiAkcmV0OwoJCXJldHVybiAkdGhpcy0+X2RhdGFbJ3BpY3R1cmVfbG9jYXRpb24nXTsKCgkgIGNhc2UgJ3BpY3R1cmVfcGF0aCc6CgkJaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydwaWN0dXJlX2xvY2F0aW9uJ10pICYmICR0aGlzLT5fZGF0YVsncGljdHVyZV9sb2NhdGlvbiddICE9ICcnICkgewoJCSAgcmV0dXJuICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uJy91cGxvYWRzL2NvbXBhbnlkaXJlY3RvcnkvaWQnLiR0aGlzLT5fZGF0YVsnaWQnXS4nLycuJHRoaXMtPl9kYXRhWydwaWN0dXJlX2xvY2F0aW9uJ107CgkJfQoJCWJyZWFrOwoKCSAgY2FzZSAnbG9nb19wYXRoJzoKCQlpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiBpc3NldCgkdGhpcy0+X2RhdGFbJ2xvZ29fbG9jYXRpb24nXSkgJiYgJHRoaXMtPl9kYXRhWydsb2dvX2xvY2F0aW9uJ10gIT0gJycgKSB7CgkJICByZXR1cm4gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nL3VwbG9hZHMvY29tcGFueWRpcmVjdG9yeS9pZCcuJHRoaXMtPl9kYXRhWydpZCddLicvJy4kdGhpcy0+X2RhdGFbJ2xvZ29fbG9jYXRpb24nXTsKCQl9CgkJYnJlYWs7CgoJICBjYXNlICdwaWN0dXJlX2Rpcic6CgkgIGNhc2UgJ2xvZ29fZGlyJzoKCQlpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSApIHsKCQkgIHJldHVybiBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdjb21wYW55ZGlyZWN0b3J5L2lkJy4kdGhpcy0+X2RhdGFbJ2lkJ10pOwoJCX0KCQlicmVhazsKCSAgfQoJfQogICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gcmV0cmlldmUgaW52YWxpZCB2YWx1ZSBmcm9tIGEgQ29tcGFueSByZWNvcmQ6ICcuJGtleSk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksJHZhbHVlKQogIHsKCWlmKCAkdGhpcy0+X3JvICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gbW9kaWZ5IGEgY29tcGFueSByZWNvcmQgaW4gcmVhZG9ubHkgbW9kZS4nKTsKICAgICRrZXkgPSBzdHJ0b2xvd2VyKCRrZXkpOwogICAgaWYoIGluX2FycmF5KCRrZXksc2VsZjo6JF9yd2tleXMpICkgewoJICBzd2l0Y2goICRrZXkgKSB7CgkgIGNhc2UgJ2NvbXBhbnlfbmFtZSc6CgkgIGNhc2UgJ2FkZHJlc3MnOgoJICBjYXNlICd0ZWxlcGhvbmUnOgoJICBjYXNlICdmYXgnOgoJCWlmKCBlbXB0eSgkdmFsdWUpICkgewoJCSAgdW5zZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKCQl9CgkJZWxzZSB7CgkJICAkeCA9ICR2YWx1ZTsKCQkgIGlmKCBjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkgKSAkeCA9IGZpbHRlcl92YXIodHJpbSgkdmFsdWUpLEZJTFRFUl9TQU5JVElaRV9TVFJJTkcpOwoJCSAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHg7CgkJfQoJCSR0aGlzLT5fZGlydHkgPSBUUlVFOwoJCXJldHVybjsKCgkgIGNhc2UgJ2RldGFpbHMnOgogICAgICAgICR2YWx1ZSA9IHRyaW0oaHRtbF9lbnRpdHlfZGVjb2RlKCR2YWx1ZSkpOwogICAgICAgICR2YWx1ZSA9IGNnZV91dGlsczo6Y2xlYW5faW5wdXRfaHRtbCgkdmFsdWUpOwoJCSR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKCQkkdGhpcy0+X2RpcnR5ID0gVFJVRTsKCQlyZXR1cm47CgoJICBjYXNlICd1cmwnOgoJICBjYXNlICd3ZWJzaXRlJzoKCQlpZiggZW1wdHkoJHZhbHVlKSApIHsKCQkgIHVuc2V0KCR0aGlzLT5fZGF0YVska2V5XSk7CgkJfQoJCWVsc2UgewoJCSAgJHRoaXMtPl9kYXRhWyRrZXldID0gZmlsdGVyX3Zhcih0cmltKCR2YWx1ZSksRklMVEVSX1NBTklUSVpFX1NUUklORyk7CgkJfQoJCSR0aGlzLT5fZGlydHkgPSBUUlVFOwoJCXJldHVybjsKCgkgIGNhc2UgJ2NvbnRhY3RfZW1haWwnOgoJCWlmKCBlbXB0eSgkdmFsdWUpICkgewoJCSAgdW5zZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKCQl9CgkJZWxzZSB7CgkJICBpZiggIWlzX2VtYWlsKCR2YWx1ZSkgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigndmFsdWUgZm9yIGZpZWxkICcuJGtleS4nIGlzIGludmFsaWQnKTsKCQkgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKCQl9CgkJJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CgkJcmV0dXJuOwoKCSAgY2FzZSAncGljdHVyZV9sb2NhdGlvbic6CgkgIGNhc2UgJ2xvZ29fbG9jYXRpb24nOgoJCS8vIGdldCB0aGUgcGljdHVyZSBmaWxlIGxvY2F0aW9uCgkJLy8gc2VlIGlmIGl0IGlzIHRoZXJlLgoJCSR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKCQkkdGhpcy0+X2RpcnR5ID0gVFJVRTsKCQlyZXR1cm47CgoJICBjYXNlICdsYXRpdHVkZSc6CgkgIGNhc2UgJ2xvbmdpdHVkZSc6CgkJaWYoIGVtcHR5KCR2YWx1ZSkgKSB7CgkJICB1bnNldCgkdGhpcy0+X2RhdGFbJGtleV0pOwoJCX0KCQllbHNlIHsKCQkgIGlmKCAhaXNfbnVtZXJpYygkdmFsdWUpICkJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ3ZhbHVlIGZvciBmaWVsZCAnLiRrZXkuJyBpcyBpbnZhbGlkJyk7CgkJICBpZiggJHZhbHVlIDwgLTE4MCB8fCAkdmFsdWUgPiAxODAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigndmFsdWUgZm9yIGZpZWxkICcuJGtleS4nIGlzIGludmFsaWQnKTsKCQkgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKCQl9CgkJJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CgkJcmV0dXJuOwoKCSAgY2FzZSAnc3RhdHVzJzoKCQkkdmFsdWUgPSBzdHJ0b2xvd2VyKHRyaW0oJHZhbHVlKSk7CgkJaWYoICFpbl9hcnJheSgkdmFsdWUsYXJyYXkoJ2RyYWZ0JywncHVibGlzaGVkJywnZGlzYWJsZWQnKSkgKQoJCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ3ZhbHVlICcuJHZhbHVlLicgZm9yIGZpZWxkICcuJGtleS4nIGlzIGludmFsaWQnKTsKCQkkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CgkJJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CgkJcmV0dXJuOwoKCSAgY2FzZSAnaGllcl9pZCc6CgkgIGNhc2UgJ293bmVyX2lkJzoKCQlpZiggIWlzX251bWVyaWMoJHZhbHVlKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCd2YWx1ZTogJy4kdmFsdWUuJyBmb3IgZmllbGQgJy4ka2V5LicgaXMgaW52YWxpZCcpOwoJCSR2YWx1ZSA9IChpbnQpdHJpbSgkdmFsdWUpOwoJCSR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKCQkkdGhpcy0+X2RpcnR5ID0gVFJVRTsKCQlyZXR1cm47CgoJICBkZWZhdWx0OgoJCS8vIHNob3VsZCBuZXZlciBnZXQgaGVyZS4KCSAgfQoJfQoKICAgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCBpbnZhbGlkIHZhbHVlICcuJGtleS4nIGludG8gYSBjb21wYW55IHJlY29yZCcpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBzZXR1cF9maWVsZHNfYW5kX2NhdHMoKQogIHsKCWlmKCAkdGhpcy0+X2RlZXAgfHwgKGlzX2FycmF5KCR0aGlzLT5fZmllbGRzKSAmJiBjb3VudCgkdGhpcy0+X2ZpZWxkcykpICkgcmV0dXJuOwoKCSR0bXAgPSBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhUUlVFLFRSVUUpOwoJaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJICAkdGhpcy0+X2ZpZWxkcyA9IGFycmF5KCk7CgkgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJCSR0aGlzLT5fZmllbGRzW10gPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkdG1wWyRpXSk7CgkgIH0KCX0KCgkkY2F0cyA9IGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcygpOwoJaWYoIGlzX2FycmF5KCRjYXRzKSAmJiBjb3VudCgkY2F0cykgKSB7CgkgICR0aGlzLT5fY2F0cyA9IGFycmF5KCk7CgkgIGZvcmVhY2goICRjYXRzIGFzICRvbmUgKSB7CgkJJG9uZS0+dmFsdWUgPSBmYWxzZTsKCQkkdGhpcy0+X2NhdHNbXSA9ICRvbmU7CgkgIH0KCX0KCgkkdGhpcy0+X2RlZXAgPSB0cnVlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZCgka2V5KQogIHsKICAgIGlmKCAhJHRoaXMtPl9kZWVwICYmIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgJHRoaXMtPl9kYXRhWydpZCddID4gMCApICR0aGlzLT5fbG9hZF9kZWVwKCk7CgoJaWYoIGlzX2FycmF5KCR0aGlzLT5fZmllbGRzKSAmJiBjb3VudCgkdGhpcy0+X2ZpZWxkcykgKSB7CgkgIGlmKCBpc19udW1lcmljKCRrZXkpICkgewoJCWZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRyZWMgKSB7CgkJICBpZiggJHJlYy0+aWQgPT0gJGtleSApIHJldHVybiAkcmVjOwoJCX0KCSAgfQoJICBlbHNlIHsKCQlmb3JlYWNoKCAkdGhpcy0+X2ZpZWxkcyBhcyAkcmVjICkgewoJCSAgaWYoICRyZWMtPm5hbWUgPT0gJGtleSApIHJldHVybiAkcmVjOwoJCX0KCSAgfQoKCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gcmV0cmlldmUgdmFsdWUgZnJvbSB1bmtub3duIGZpZWxkICcuJGtleSk7Cgl9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX3ZhbHVlKCRrZXkpCiAgewogICAgJGZpZWxkID0gJHRoaXMtPmdldF9maWVsZCgka2V5KTsKICAgIGlmKCBpc3NldCgkZmllbGQtPnZhbHVlKSApIHJldHVybiAkZmllbGQtPnZhbHVlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGxpc3RfZmllbGRzKCkKICB7CiAgICBpZiggISR0aGlzLT5fZGVlcCAmJiBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA+IDAgKSAkdGhpcy0+X2xvYWRfZGVlcCgpOwoKCSRvdXQgPSBhcnJheSgpOwoJaWYoIGlzX2FycmF5KCR0aGlzLT5fZmllbGRzKSAmJiBjb3VudCgkdGhpcy0+X2ZpZWxkcykgKSB7CgkgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRyZWMgKSB7CgkJJG91dFtdID0gJHJlYy0+bmFtZTsKCSAgfQoJfQoJcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygpCiAgewogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCWlmKCBpc19hcnJheSgkdGhpcy0+X2ZpZWxkcykgJiYgY291bnQoJHRoaXMtPl9maWVsZHMpICkgcmV0dXJuICR0aGlzLT5fZmllbGRzOwogIH0KCiAgLyoKICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2ZpZWxkKCRrZXksJGRlbGV0ZV9maWxlcyA9IFRSVUUpCiAgewoJaWYoICR0aGlzLT5fcm8gKSB7CgkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7Cgl9CgogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgJHRoaXMtPl9kYXRhWydpZCddID4gMCApIHsKCSAgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCX0KCglpZiggY291bnQoJHRoaXMtPl9maWVsZHMpID09IDAgKQoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgdmFsdWUgZm9yIGEgZmllbGQgJy4ka2V5LicgdGhhdCBkb2VzIG5vdCBleGlzdCcpOwoKCWZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRma2V5ID0+ICYkZnJlYyApIHsKCSAgaWYoIGlzX251bWVyaWMoJGtleSkgKSB7CgkJaWYoICRmcmVjLT5pZCA9PSAka2V5ICkgewoJCSAgLy8gaWYgaXQncyBhIGZpbGUgZmllbGQgdW5saW5rIHRoZSBmaWxlKHMpCgkJICBpZiggJGZyZWMtPnR5cGUgPT0gJ2ZpbGUnIHx8ICRmcmVjLT50eXBlID09ICdpbWFnZScgKSB7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJ3ByZXZpZXdfJy4kZnJlYy0+dmFsdWUpKTsKCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCR0aGlzLT5sb2dvX2RpciwndGh1bWJfJy4kZnJlYy0+dmFsdWUpKTsKCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCR0aGlzLT5sb2dvX2RpciwkZnJlYy0+dmFsdWUpKTsKCQkgIH0KCQkgIC8vIGVyYXNlIHRoZSByZWNvcmQKCQkgIHVuc2V0KCR0aGlzLT5fZmllbGRzWyRma2V5XSk7CgkJICAkdGhpcy0+X2RpcnR5ID0gdHJ1ZTsKCQkgIHJldHVybjsKCQl9CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRmcmVjLT5uYW1lID09ICRrZXkgKSB7CgkJICAvLyBpZiBpdHMgYSBmaWxlIGZpZWxkIHVubGluayB0aGUgZmlsZShzKQoJCSAgaWYoICRmcmVjLT50eXBlID09ICdmaWxlJyB8fCAkZnJlYy0+dHlwZSA9PSAnaW1hZ2UnICkgewoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJHRoaXMtPmxvZ29fZGlyLCdwcmV2aWV3XycuJGZyZWMtPnZhbHVlKSk7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJ3RodW1iXycuJGZyZWMtPnZhbHVlKSk7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJGZyZWMtPnZhbHVlKSk7CgkJICB9CgkJICAvLyBlcmFzZSB0aGUgcmVjb3JkCgkJICB1bnNldCgkdGhpcy0+X2ZpZWxkc1skZmtleV0pOwoJCSAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CgkJICByZXR1cm47CgkJfQoJICB9Cgl9CgoJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IHZhbHVlIGZvciBhIGZpZWxkICcuJGtleS4nIHRoYXQgZG9lcyBub3QgZXhpc3QnKTsKICB9CiAgKi8KCgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmlsZV9maWVsZCgkZmxka2V5LCR2YWx1ZSwkdG1wX2ZzKQogIHsKCWlmKCAkdGhpcy0+X3JvICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gbW9kaWZ5IGEgY29tcGFueSByZWNvcmQgaW4gcmVhZG9ubHkgbW9kZS4nKTsKCWlmKCAhJHRoaXMtPmlkICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IGEgZmlsZSBmaWVsZCBpbiBhIGNvbXBhbnkgd2l0aG91dCBhbiBpZC4nKTsKCglpZiggIWZpbGVfZXhpc3RzKCR0bXBfZnMpICkgewoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgdmFsdWUgZm9yIGEgZmlsZSBmaWVsZCAnLiRrZXkuJyBhbmQgZmlsZSBkb2VzIG5vdCBleGlzdCcpOwoJfQoKICAgIGlmKCAhJHRoaXMtPl9kZWVwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCWlmKCBjb3VudCgkdGhpcy0+X2ZpZWxkcykgPT0gMCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCB2YWx1ZSBmb3IgYSBmaWVsZCAnLiRrZXkuJyB0aGF0IGRvZXMgbm90IGV4aXN0Jyk7CgoJZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJGZrZXkgPT4gJiRmcmVjICkgewoJICBpZiggaXNfbnVtZXJpYygka2V5KSApIHsKCQlpZiggJGZyZWMtPmlkID09ICRrZXkgKSB7CgkJICBpZiggZmlsZV9leGlzdHMoJHRtcF9mcykgKSB7CgkJCS8vIG1vdmUgdGhlIGZpbGUgdG8gaXRzIHBlcm0gbG9jYXRpb24KCQkJLy8gc2hvdWxkIHdlIHBsYXkgd2l0aCBleHRlbnNpb25zIGhlcmU/CgkJCUBjbXNfbW92ZV91cGxvYWRlZF9maWxlKCR0bXBfZnMsY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJHZhbHVlKSk7CgkJCS8vIGdlbmVyYXRlIHRodW1icyBhbmQgY3JhcD8KCQkJJGZyZWMtPnZhbHVlID0gJHZhbHVlOwoJCQkkdGhpcy0+X2RpcnR5ID0gdHJ1ZTsKCQkgIH0KCQkgIHJldHVybjsKCQl9CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRmcmVjLT5uYW1lID09ICRrZXkgKSB7CgkJICBpZiggZmlsZV9leGlzdHMoJHRtcF9mcykgKSB7CgkJCS8vIG1vdmUgdGhlIGZpbGUgdG8gaXRzIHBlcm0gbG9jYXRpb24KCQkJLy8gc2hvdWxkIHdlIHBsYXkgd2l0aCBleHRlbnNpb25zIGhlcmU/CgkJCUBjbXNfbW92ZV91cGxvYWRlZF9maWxlKCR0bXBfZnMsY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJHZhbHVlKSk7CgkJCS8vIGdlbmVyYXRlIHRodW1icyBhbmQgY3JhcD8KCQkJJGZyZWMtPnZhbHVlID0gJHZhbHVlOwoJCQkkdGhpcy0+X2RpcnR5ID0gdHJ1ZTsKCQkgIH0KCQkgIHJldHVybjsKCQl9CgkgIH0KCX0KCgl0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgdmFsdWUgZm9yIGEgZmllbGQgJy4ka2V5LicgdGhhdCBkb2VzIG5vdCBleGlzdCcpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZCgka2V5LCR2YWx1ZSkKICB7CglpZiggJHRoaXMtPl9ybyApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7CiAgICBpZiggISR0aGlzLT5fZGVlcCAmJiBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA+IDAgKSAkdGhpcy0+X2xvYWRfZGVlcCgpOwoJaWYoIGNvdW50KCR0aGlzLT5fZmllbGRzKSA9PSAwICkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCB2YWx1ZSBmb3IgYSBmaWVsZCAnLiRrZXkuJyB0aGF0IGRvZXMgbm90IGV4aXN0Jyk7CgoJZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJGZrZXkgPT4gJiRmcmVjICkgewoJICBpZiggaXNfbnVtZXJpYygka2V5KSApIHsKCQlpZiggJGZyZWMtPmlkID09ICRrZXkgKSB7CgkJICBpZiggaXNfYXJyYXkoJHZhbHVlKSApIHsKCQkJaWYoICRmcmVjLT50eXBlICE9ICdtdWx0aXNlbGVjdCcgJiYgJGZyZWMtPnR5cGUgIT0gJ2FjdGl2aXR5JyApIHsKCQkJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VjcHRpb24oJ0F0dGVtcHQgdG8gc2V0IGFuIGFycmF5IHZhbHVlIGludG8gYW4gaW1wcm9wZXIgZmllbGQnKTsKCQkJfQoJCQkkdmFsdWUgPSBpbXBsb2RlKCd+ficsJHZhbHVlKTsKCQkgIH0KICAgICAgICAgIGlmKCAkZnJlYy0+dHlwZSA9PSAndGV4dGJveCcgJiYgY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkgJHZhbHVlID0gZmlsdGVyX3Zhcih0cmltKCR2YWx1ZSksRklMVEVSX1NBTklUSVpFX1NUUklORyk7CiAgICAgICAgICBpZiggJGZyZWMtPnR5cGUgPT0gJ3RleHRhcmVhJyApIHsKICAgICAgICAgICAgJHZhbHVlID0gaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJHZhbHVlKSk7CiAgICAgICAgICAgICR2YWx1ZSA9IGNnZV91dGlsczo6Y2xlYW5faW5wdXRfaHRtbCgkdmFsdWUpOwogICAgICAgICAgfQoJCSAgJGZyZWMtPnZhbHVlID0gJHZhbHVlOwoJCSAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CgkJICByZXR1cm47CgkJfQoJICB9CgkgIGVsc2UgewoJCWlmKCAkZnJlYy0+bmFtZSA9PSAka2V5ICkgewoJCSAgaWYoIGlzX2FycmF5KCR2YWx1ZSkgKSB7CgkJCWlmKCAkZnJlYy0+dHlwZSAhPSAnbXVsdGlzZWxlY3QnICYmICRmcmVjLT50eXBlICE9ICdhY3Rpdml0eScgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VjcHRpb24oJ0F0dGVtcHQgdG8gc2V0IGFuIGFycmF5IHZhbHVlIGludG8gYW4gaW1wcm9wZXIgZmllbGQnKTsKCQkJJHZhbHVlID0gaW1wbG9kZSgnfn4nLCR2YWx1ZSk7CgkJICB9CiAgICAgICAgICBpZiggJGZyZWMtPnR5cGUgPT0gJ3RleHRhcmVhJyApIHsKICAgICAgICAgICAgJHZhbHVlID0gaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJHZhbHVlKSk7CiAgICAgICAgICAgICR2YWx1ZSA9IGNnZV91dGlsczo6Y2xlYW5faW5wdXRfaHRtbCgkdmFsdWUpOwogICAgICAgICAgfQoJCSAgJGZyZWMtPnZhbHVlID0gJHZhbHVlOwoJCSAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CgkJICByZXR1cm47CgkJfQoJICB9Cgl9CgoJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IHZhbHVlIGZvciBhIGZpZWxkICcuJGtleS4nIHRoYXQgZG9lcyBub3QgZXhpc3QnKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5KCRrZXkpCiAgewogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCWlmKCBjb3VudCgkdGhpcy0+X2NhdHMpID09IDAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdDEgdG8gZ2V0IHZhbHVlIGZvciBpbnZhbGlkIGNhdGVnb3J5ICcuJGtleSk7CgoJZm9yZWFjaCggJHRoaXMtPl9jYXRzIGFzICRvbmUgKSB7CgkgIGlmKCBpc19udW1lcmljKCRrZXkpICkgewoJCWlmKCAkb25lLT5pZCA9PSAka2V5ICkgcmV0dXJuICRvbmU7CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRvbmUtPm5hbWUgPT0gJGtleSApIHJldHVybiAkb25lOwoJICB9Cgl9CgoJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IHZhbHVlIGZvciBpbnZhbGlkIGNhdGVnb3J5ICcuJGtleSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gbGlzdF9jYXRlZ29yaWVzKCRuYW1lcyA9IFRSVUUpCiAgewogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCgkkb3V0ID0gYXJyYXkoKTsKCWlmKCBpc19hcnJheSgkdGhpcy0+X2NhdHMpICYmIGNvdW50KCR0aGlzLT5fY2F0cykgKSB7CgkgIGZvcmVhY2goICR0aGlzLT5fY2F0cyBhcyAkcmVjICkgewoJCWlmKCAhaXNzZXQoJHJlYy0+dmFsdWUpIHx8ICEkcmVjLT52YWx1ZSApIGNvbnRpbnVlOwoJCWlmKCAkbmFtZXMgKSB7CgkJICAkb3V0W10gPSAkcmVjLT5uYW1lOwoJCX0KCQllbHNlIHsKCQkgICRvdXRbXSA9ICRyZWMtPmlkOwoJCX0KCSAgfQoJfQoJcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gcmVzZXRfY2F0ZWdvcmllcygpCiAgewoJaWYoICR0aGlzLT5fcm8gKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBtb2RpZnkgYSBjb21wYW55IHJlY29yZCBpbiByZWFkb25seSBtb2RlLicpOwogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCWlmKCAhY291bnQoJHRoaXMtPl9jYXRzKSApIHJldHVybjsKCglmb3JlYWNoKCAkdGhpcy0+X2NhdHMgYXMgJiRvbmVjYXQgKSB7CgkgICRvbmVjYXQtPnZhbHVlID0gMDsKCX0KCSR0aGlzLT5fZGlydHkgPSBUUlVFOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfY2F0ZWdvcnkoJGtleSwkdmFsdWUgPSAxLCRleHRyYTEgPSAnJywkZXh0cmEyID0gJycsJGV4dHJhMyA9ICcnKQogIHsKCWlmKCAkdGhpcy0+X3JvICkgewoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBtb2RpZnkgYSBjb21wYW55IHJlY29yZCBpbiByZWFkb25seSBtb2RlLicpOwoJfQoKICAgIGlmKCAhJHRoaXMtPl9kZWVwICYmIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgJHRoaXMtPl9kYXRhWydpZCddID4gMCApICR0aGlzLT5fbG9hZF9kZWVwKCk7CglpZiggIWNvdW50KCR0aGlzLT5fY2F0cykgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgdmFsdWUgZm9yIGludmFsaWQgY2F0ZWdvcnkgJy4ka2V5KTsKCgkkdmFsdWUgPSAoJHZhbHVlKT8xOjA7Cglmb3JlYWNoKCAkdGhpcy0+X2NhdHMgYXMgJiRyZWMgKSB7CgkgIGlmKCBpc19udW1lcmljKCRrZXkpICkgewoJCWlmKCAkcmVjLT5pZCA9PSAka2V5ICkgewoJCSAgJHJlYy0+dmFsdWUgPSAkdmFsdWU7CgkJICAkcmVjLT5leHRyYTEgPSAkZXh0cmExOwoJCSAgJHJlYy0+ZXh0cmEyID0gJGV4dHJhMjsKCQkgICRyZWMtPmV4dHJhMyA9ICRleHRyYTM7CgkJICAkdGhpcy0+X2RpcnR5ID0gdHJ1ZTsKCQkgIHJldHVybjsKCQl9CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRyZWMtPmlkID09ICRrZXkgKSB7CgkJICAkcmVjLT52YWx1ZSA9ICR2YWx1ZTsKCQkgICRyZWMtPmV4dHJhMSA9ICRleHRyYTE7CgkJICAkcmVjLT5leHRyYTIgPSAkZXh0cmEyOwoJCSAgJHJlYy0+ZXh0cmEzID0gJGV4dHJhMzsKCQkgICR0aGlzLT5fZGlydHkgPSB0cnVlOwoJCSAgcmV0dXJuOwoJCX0KCSAgfQoJfQoKCXRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCB2YWx1ZSBmb3IgaW52YWxpZCBjYXRlZ29yeSAnLiRrZXkpOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfa2V5KCRrZXksJHR5cGUgPSAnYW55JykKICB7CiAgICAkdHlwZSA9IHN0cnRvbG93ZXIoJHR5cGUpOwogICAgaWYoICR0eXBlID09ICdhbnknICkgewoJICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX3J3a2V5cykgKSByZXR1cm4gVFJVRTsKCSAgaWYoIGluX2FycmF5KCRrZXksc2VsZjo6JF9yb2tleXMpICkgcmV0dXJuIFRSVUU7CgkgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfbWV0YWtleXMpICkgcmV0dXJuIFRSVUU7Cgl9CiAgICBlbHNlIGlmKCAkdHlwZSA9PSAncncnICkgewoJICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX3J3a2V5cykgKSByZXR1cm4gVFJVRTsKCX0KICAgIGVsc2UgaWYoICR0eXBlID09ICdybycgKSB7CgkgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfcm9rZXlzKSApIHJldHVybiBUUlVFOwoJfQogICAgZWxzZSBpZiggJHR5cGUgPT0gJ21ldGEnICkgewoJICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX21ldGFrZXlzKSApIHJldHVybiBUUlVFOwoJfQogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfZmllbGQoJGtleSkKICB7CgkkZmllbGRzID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRSxUUlVFKTsKCWlmKCAhaXNfYXJyYXkoJGZpZWxkcykgKSByZXR1cm4gRkFMU0U7CgoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkcyk7ICRpKysgKSB7CgkgIGlmKCBpc19udW1lcmljKCRrZXkpICkgewoJCWlmKCAkZmllbGRzWyRpaV0tPmlkID09ICRrZXkgKSByZXR1cm4gVFJVRTsKCSAgfQoJICBlbHNlIHsKCQlpZiggJGZpZWxkc1skaV0tPm5hbWUgPT0gJGtrZXkgKSByZXR1cm4gVFJVRTsKCSAgfQoJfQoJcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfY2F0ZWdvcnkoJGtleSkKICB7CgkkY2F0cyA9IGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcygpOwoJaWYoICFpc19hcnJheSgkY2F0cykgfHwgY291bnQoJGNhdHMpID09IDAgKSByZXR1cm4gRkFMU0U7CgoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGNhdHMpOyAkaSsrICkgewoJICBpZiggaXNfbnVtZXJpYygka2V5KSApIHsKCQlpZiggJGNhdHNbJGldLT5pZCA9PSAka2V5ICkgcmV0dXJuIFRSVUU7CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRjYXRzWyRpXS0+bmFtZSA9PSAka2V5ICkgcmV0dXJuIFRSVUU7CgkgIH0KCX0KCXJldHVybiBGQUxTRTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZSgkY29tcGlkKQogIHsKCWlmKCAkY29tcGlkIDw9IDAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignSW52YWxpZCBDb21wYW55IGlkIHNwZWNpZmllZCcpOwoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCgkvLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/JzsKCSRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCWlmKCAhaXNfYXJyYXkoJHJvdykgfHwgY291bnQoJHJvdykgPT0gMCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdJbnZhbGlkIENvbXBhbnkgaWQgc3BlY2lmaWVkJyk7CgoJLy8gc2VuZCBhbiBldmVudAoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkkY2FuZGVsZXRlID0gVFJVRTsKCSRjZG1vZC0+U2VuZEV2ZW50KCdPbkRlbGV0ZUNvbXBhbnknLGFycmF5KCd3aG8nPT5nZXRfdXNlcmlkKEZBTFNFKSwnY2lkJz0+JGNvbXBpZCwnY2FuZGVsZXRlJz0+JiRjYW5kZWxldGUpKTsKCWlmKCAkY2FuZGVsZXRlID09IEZBTFNFICkgcmV0dXJuIEZBTFNFOwoKCS8vTm93IHJlbW92ZSB0aGUgY29tcGFueQoJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/IjsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCgkvL0FuZCByZW1vdmUgaXQgZnJvbSBhbnkgZW50cmllcwoJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgV0hFUkUgY29tcGFueV9pZCA9ID8iOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNvbXBpZCkpOwoKCS8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBjYXRlZ29yaWVzCgkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBXSEVSRSBjb21wYW55X2lkID0gPyI7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY29tcGlkKSk7CgoJLy8gYW5kIGZyb20gYW55IHNlYXJjaHMKCSRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHNfcmVzIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCgkvLyBSZW1vdmUgdGhlIGZpbGVzCgkkZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkKTsKCWNnZV9kaXI6OnJlY3Vyc2l2ZV9yZW1vdmVfZGlyZWN0b3J5KCRkaXIpOwoKCS8vVXBkYXRlIHNlYXJjaCBpbmRleAoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwoJaWYoICRtb2R1bGUgKSAkbW9kdWxlLT5EZWxldGVXb3JkcygkY2Rtb2QtPkdldE5hbWUoKSwgJGNvbXBpZCwgJ2NvbXBhbnknKTsKCglhdWRpdCgkY29tcGlkLCRjZG1vZC0+R2V0TmFtZSgpLCdEZWxldGVkIENvbXBhbnknKTsKCXJldHVybiBUUlVFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWRfYnlfaWQoJGlkLCRkZWVwID0gRkFMU0UpCiAgewoJaWYoICRpZCA8PSAwICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0ludmFsaWQgQ29tcGFueSBpZCBzcGVjaWZpZWQnKTsKCgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBpZCA9ID8nOwoJJGRhdGEgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoKGludCkkaWQpKTsKCWlmKCAhaXNfYXJyYXkoJGRhdGEpICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0ludmFsaWQgQ29tcGFueSBpZCBzcGVjaWZpZWQnKTsKCglyZXR1cm4gc2VsZjo6bG9hZF9mcm9tX2RhdGEoJGRhdGEsJGRlZXApOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWRfZnJvbV9kYXRhKCRkYXRhLCRkZWVwID0gRkFMU0UpCiAgewoJJG9iaiA9IG5ldyBjZF9jb21wYW55OwoJZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUgKSB7CgkgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfcndrZXlzKSB8fCBpbl9hcnJheSgka2V5LHNlbGY6OiRfcm9rZXlzKSApICRvYmotPl9kYXRhWyRrZXldID0gJHZhbHVlOwoJfQoKCWlmKCAkZGVlcCApICRvYmotPl9sb2FkX2RlZXAoKTsKCXJldHVybiAkb2JqOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgkZGVlcCA9IFRSVUUpCiAgewoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgoJaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ293bmVyX2lkJ10pICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJGNkbW9kLT5MYW5nKCdlcnJvcl9ub293bmVyJykpOwoKCWlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSkgfHwgJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSA9PSAnJyApIHsKCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJGNkbW9kLT5MYW5nKCdub2NvbXBhbnluYW1lZ2l2ZW4nKSk7Cgl9CgoJaWYoICghaXNzZXQoJHRoaXMtPl9kYXRhWyd1cmwnXSkgfHwgJHRoaXMtPl9kYXRhWyd1cmwnXSA9PSAnJykgJiYgJGNkbW9kLT5HZXRQcmVmZXJlbmNlKCd1cmxfcmVxdWlyZWQnLDApICkgewoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkY2Rtb2QtPkxhbmcoJ2Vycm9yX3VybHJlcXVpcmVkJykpOwoJfQoKCWlmKCAoIWlzc2V0KCR0aGlzLT5fZGF0YVsndXJsJ10pIHx8ICR0aGlzLT5fZGF0YVsndXJsJ10gPT0gJycpICYmICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgndXJsX2F1dG9jcmVhdGUnLDApICkgewoJICAkdXJsID0gY2RfdXRpbHM6OmdlbmVyYXRlX3VybCgkdGhpcy0+X2RhdGFbJ2NvbXBhbnlfbmFtZSddKTsKCSAgaWYoICEkdXJsICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJGNkbW9kLT5MYW5nKCdlcnJvcl9pbnZhbGlkbmFtZScpKTsKCX0KCglpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyd3ZWJzaXRlJ10pICYmICR0aGlzLT5fZGF0YVsnd2Vic2l0ZSddICE9ICcnICYmICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgncHJlcGVuZF93ZWJzaXRlX2h0dHAnKSApIHsKCSAgaWYoICFzdGFydHN3aXRoKCR0aGlzLT5fZGF0YVsnd2Vic2l0ZSddLCdodHRwJykgJiYgIXN0YXJ0c3dpdGgoJHRoaXMtPl9kYXRhWyd3ZWJzaXRlJ10sJ2Z0cCcpICkgewoJCSR0aGlzLT5fZGF0YVsnd2Vic2l0ZSddID0gJ2h0dHA6Ly8nLiR0aGlzLT5fZGF0YVsnd2Vic2l0ZSddOwoJICB9Cgl9CgoJaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgJHRoaXMtPl9kYXRhWydpZCddID4gMCApIHsKCSAgLy8gdmFsaWRhdGUgZXhpc3RpbmcgcmVjb3JkLgoJICBpZiggJGNkbW9kLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzJykgJiYKCQkgIGNkX3V0aWxzOjpjb21wYW55X25hbWVfZXhpc3RzKCR0aGlzLT5fZGF0YVsnY29tcGFueV9uYW1lJ10sJHRoaXMtPl9kYXRhWydpZCddKSApIHsKCQl0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkY2Rtb2QtPkxhbmcoJ2Vycm9yX2R1cGxpY2F0ZV9jb21wYW55JywkdGhpcy0+X2RhdGFbJ2NvbXBhbnlfbmFtZSddKSk7CgkgIH0KCgkgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ3VybCddKSAmJiAkdGhpcy0+X2RhdGFbJ3VybCddICkgewoJCWlmKCAhY2RfdXRpbHM6OnZhbGlkYXRlX3VybCgkdGhpcy0+X2RhdGFbJ3VybCddLFRSVUUsJHRoaXMtPl9kYXRhWydpZCddKSApIHsKCQkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCRjZG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZHVybCcpKTsKCQl9CgkgIH0KCX0KCWVsc2UgewoJICAvLyB2YWxpZGF0ZSBuZXcgcmVjb3JkLgoJICBpZiggJGNkbW9kLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzJykgJiYgY2RfdXRpbHM6OmNvbXBhbnlfbmFtZV9leGlzdHMoJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSkgKSB7CgkJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJGNkbW9kLT5MYW5nKCdlcnJvcl9kdXBsaWNhdGVfY29tcGFueScsJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSkpOwoJICB9CgoJICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyd1cmwnXSkgJiYgJHRoaXMtPl9kYXRhWyd1cmwnXSApIHsKCQlpZiggIWNkX3V0aWxzOjp2YWxpZGF0ZV91cmwoJHRoaXMtPl9kYXRhWyd1cmwnXSxUUlVFKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCRjZG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZHVybCcpKTsKCSAgfQoJfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNhdmUoJGRlZXAgPSBUUlVFKQogIHsKCWlmKCAkdGhpcy0+X3JvICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gbW9kaWZ5IGEgY29tcGFueSByZWNvcmQgaW4gcmVhZG9ubHkgbW9kZS4nKTsKICAgIGlmKCAhJHRoaXMtPl9kaXJ0eSApIHJldHVybjsKCWlmKCAhJHRoaXMtPl9kZWVwICkgJGRlZXAgPSBGQUxTRTsKCSR0aGlzLT52YWxpZGF0ZSgkZGVlcCk7CgoJJGlzX2luc2VydCA9IEZBTFNFOwogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgJHRoaXMtPl9kYXRhWydpZCddID4gMCApIHsKCSAgJHRoaXMtPl91cGRhdGUoJGRlZXApOwoJfQoJZWxzZSB7CgkgICR0aGlzLT5faW5zZXJ0KCRkZWVwKTsKCSAgJGlzX2luc2VydCA9IFRSVUU7Cgl9CglpZiggJHRoaXMtPl9kZWVwICkgewoJICAkdGhpcy0+X3NhdmVfZGVlcCgpOwogICAgfQoKICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ09NUEFOWURJUkVDVE9SWSk7CiAgICAkdGhpcy0+c2V0X3JlYWRvbmx5KCk7CiAgICBpZiggJGlzX2luc2VydCApIHsKICAgICAgJGNkbW9kLT5TZW5kRXZlbnQoJ09uQWRkQ29tcGFueScsYXJyYXkoJ3dobyc9PmdldF91c2VyaWQoRkFMU0UpLCdvYmplY3QnPT4kdGhpcykpOwogICAgfQogICAgZWxzZSB7CiAgICAgICRjZG1vZC0+U2VuZEV2ZW50KCdPbkVkaXRDb21wYW55JyxhcnJheSgnd2hvJz0+Z2V0X3VzZXJpZChGQUxTRSksJ29iamVjdCc9PiR0aGlzKSk7CiAgICB9CiAgICAkdGhpcy0+c2V0X3JlYWRvbmx5KEZBTFNFKTsKCSR0aGlzLT5fZGlydHkgPSBGQUxTRTsKICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2luc2VydCgkZGVlcCA9IFRSVUUpCiAgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgICAgKGNvbXBhbnlfbmFtZSxhZGRyZXNzLHRlbGVwaG9uZSxmYXgsY29udGFjdF9lbWFpbCx3ZWJzaXRlLGRldGFpbHMscGljdHVyZV9sb2NhdGlvbiwKICAgICAgICAgICAgICAgbG9nb19sb2NhdGlvbixjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlLHN0YXR1cyxsYXRpdHVkZSxsb25naXR1ZGUsb3duZXJfaWQsaGllcl9pZCx1cmwpCiAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSw/LD8sPyw/LD8sPyknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2FkZHJlc3MnXSkpPyR0aGlzLT5fZGF0YVsnYWRkcmVzcyddOicnLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsndGVsZXBob25lJ10pKT8kdGhpcy0+X2RhdGFbJ3RlbGVwaG9uZSddOicnLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnZmF4J10pKT8kdGhpcy0+X2RhdGFbJ2ZheCddOicnLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnY29udGFjdF9lbWFpbCddKSk/JHRoaXMtPl9kYXRhWydjb250YWN0X2VtYWlsJ106JycsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWyd3ZWJzaXRlJ10pKT8kdGhpcy0+X2RhdGFbJ3dlYnNpdGUnXTonJywKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2RldGFpbHMnXSkpPyR0aGlzLT5fZGF0YVsnZGV0YWlscyddOicnLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsncGljdHVyZV9sb2NhdGlvbiddKSk/JHRoaXMtPl9kYXRhWydwaWN0dXJlX2xvY2F0aW9uJ106JycsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydsb2dvX2xvY2F0aW9uJ10pKT8kdGhpcy0+X2RhdGFbJ2xvZ29fbG9jYXRpb24nXTonJywKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ3N0YXR1cyddKSk/JHRoaXMtPl9kYXRhWydzdGF0dXMnXTonJywKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2xhdGl0dWRlJ10pKT8kdGhpcy0+X2RhdGFbJ2xhdGl0dWRlJ106bnVsbCwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2xvbmdpdHVkZSddKSk/JHRoaXMtPl9kYXRhWydsb25naXR1ZGUnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnb3duZXJfaWQnXSkpPyR0aGlzLT5fZGF0YVsnb3duZXJfaWQnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnaGllcl9pZCddKSk/JHRoaXMtPl9kYXRhWydoaWVyX2lkJ106bnVsbCwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ3VybCddKSk/JHRoaXMtPl9kYXRhWyd1cmwnXTonJykpOwoJaWYoICEkZGJyICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0Vycm9yIEluc2VydGluZyBjb21wYW55IGRhdGEgJy4kZGItPnNxbC4nIC0tLSAnLiRkYi0+RXJyb3JNc2coKSk7CgkkdGhpcy0+X2RhdGFbJ2lkJ10gPSAkZGItPkluc2VydF9JRCgpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF91cGRhdGUoJGRlZXAgPSBUUlVFKQogIHsKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgICAgU0VUIGNvbXBhbnlfbmFtZSA9ID8sIGFkZHJlc3MgPSA/LCB0ZWxlcGhvbmUgPSA/LCBmYXggPSA/LCBjb250YWN0X2VtYWlsID0gPywKICAgICAgICAgICAgICB3ZWJzaXRlID0gPywgZGV0YWlscyA9ID8sIHBpY3R1cmVfbG9jYXRpb24gPSA/LAogICAgICAgICAgICAgIGxvZ29fbG9jYXRpb24gPSA/LCBzdGF0dXMgPSA/LCBsYXRpdHVkZSA9ID8sIGxvbmdpdHVkZSA9ID8sIG93bmVyX2lkID0gPywKICAgICAgICAgICAgICBoaWVyX2lkID0gPywgdXJsID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpIFdIRVJFIGlkID0gPyc7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ2NvbXBhbnlfbmFtZSddLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnYWRkcmVzcyddKSk/JHRoaXMtPl9kYXRhWydhZGRyZXNzJ106bnVsbCwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ3RlbGVwaG9uZSddKSk/JHRoaXMtPl9kYXRhWyd0ZWxlcGhvbmUnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnZmF4J10pKT8kdGhpcy0+X2RhdGFbJ2ZheCddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydjb250YWN0X2VtYWlsJ10pKT8kdGhpcy0+X2RhdGFbJ2NvbnRhY3RfZW1haWwnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnd2Vic2l0ZSddKSk/JHRoaXMtPl9kYXRhWyd3ZWJzaXRlJ106bnVsbCwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2RldGFpbHMnXSkpPyR0aGlzLT5fZGF0YVsnZGV0YWlscyddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydwaWN0dXJlX2xvY2F0aW9uJ10pKT8kdGhpcy0+X2RhdGFbJ3BpY3R1cmVfbG9jYXRpb24nXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnbG9nb19sb2NhdGlvbiddKSk/JHRoaXMtPl9kYXRhWydsb2dvX2xvY2F0aW9uJ106bnVsbCwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ3N0YXR1cyddKSk/JHRoaXMtPl9kYXRhWydzdGF0dXMnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnbGF0aXR1ZGUnXSkpPyR0aGlzLT5fZGF0YVsnbGF0aXR1ZGUnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnbG9uZ2l0dWRlJ10pKT8kdGhpcy0+X2RhdGFbJ2xvbmdpdHVkZSddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydvd25lcl9pZCddKSk/JHRoaXMtPl9kYXRhWydvd25lcl9pZCddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydoaWVyX2lkJ10pKT8kdGhpcy0+X2RhdGFbJ2hpZXJfaWQnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsndXJsJ10pKT8kdGhpcy0+X2RhdGFbJ3VybCddOm51bGwsCgkJCQkJCQkJCSAkdGhpcy0+X2RhdGFbJ2lkJ10pKTsKCglpZiggISRkYnIgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignRXJyb3IgdXBkYXRpbmcgY29tcGFueSBkYXRhICcuJGRiLT5zcWwuJyAtLS0gJy4kZGItPkVycm9yTXNnKCkpOwogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBfbG9hZF9kZWVwKCkKICB7CglpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgfHwgJHRoaXMtPl9kYXRhWydpZCddIDw9IDAgKSByZXR1cm47CgoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkkdGhpcy0+X2ZpZWxkcyA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzX2Zvcl9jb21wYW55KCR0aGlzLT5fZGF0YVsnaWQnXSx0cnVlLHRydWUpOwoJJHRoaXMtPl9jYXRzID0gJGNkbW9kLT5HZXRDYXRlZ29yaWVzRm9yQ29tcGFueSgkdGhpcy0+X2RhdGFbJ2lkJ10pOwoJJHRoaXMtPl9kZWVwID0gVFJVRTsKICB9CgogIHByaXZhdGUgZnVuY3Rpb24gX3NhdmVfZGVlcCgpCiAgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCWlmKCBjb3VudCgkdGhpcy0+X2ZpZWxkcykgKSB7CgkgIC8vIGNsZWFyIGZpZWxkIGRhdGEKCSAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMKICAgICAgICAgICAgICAgIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydpZCddKSk7CgkgIC8vIGlnbm9yZSB0aGlzIGVycm9yLi4uIGFzIHRoZXJlIG1heSBiZSBubyBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlIHlldC4KCgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzCiAgICAgICAgICAgICAgICAoY29tcGFueV9pZCxmaWVsZGRlZl9pZCx2YWx1ZSxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyxOT1coKSxOT1coKSknOwoJICBmb3JlYWNoKCAkdGhpcy0+X2ZpZWxkcyBhcyAkcmVjICkgewoJCWlmKCAhaXNzZXQoJHJlYy0+dmFsdWUpIHx8IGVtcHR5KCRyZWMtPnZhbHVlKSApIGNvbnRpbnVlOwoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5fZGF0YVsnaWQnXSwkcmVjLT5pZCwkcmVjLT52YWx1ZSkpOwoJCWlmKCAhJGRiciApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdFcnJvciB3cml0aW5nIGN1c3RvbSBmaWVsZCBkYXRhJyk7CgkgIH0KCX0KCglpZiggY291bnQoJHRoaXMtPl9jYXRzKSApIHsKCSAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydpZCddKSk7CgkgIC8vIGlnbm9yZSB0aGlzIGVycm9yLi4uIGFzIHRoZXJlIG1heSBiZSBubyBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlIHlldC4KCgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgICAoY29tcGFueV9pZCxjYXRlZ29yeV9pZCxleHRyYTEsZXh0cmEyLGV4dHJhMyxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sTk9XKCksTk9XKCkpJzsKCSAgZm9yZWFjaCggJHRoaXMtPl9jYXRzIGFzICRyZWMgKSB7CgkJaWYoICEkcmVjLT52YWx1ZSApIGNvbnRpbnVlOwoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5fZGF0YVsnaWQnXSwKCQkJCQkJCQkJCSAkcmVjLT5pZCwKCQkJCQkJCQkJCSAkcmVjLT5leHRyYTEsCgkJCQkJCQkJCQkgJHJlYy0+ZXh0cmEyLAoJCQkJCQkJCQkJICRyZWMtPmV4dHJhMykpOwoJCWlmKCAhJGRiciApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdFcnJvciB3cml0aW5nIGN1c3RvbSBmaWVsZCBkYXRhJyk7CgkgIH0KCX0KICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfaGllcmFyY2h5KCRpZCkKICB7CiAgICAkYWxsX2hpZXJzID0gY2RfdXRpbHM6OmdldF9oaWVyYXJjaHkoRkFMU0UpOwogICAgaWYoICEkYWxsX2hpZXJzICkgcmV0dXJuOwoKICAgIGZvcmVhY2goICRhbGxfaGllcnMgYXMgJHJvdyApIHsKICAgICAgaWYoICRyb3dbJ2lkJ10gPT0gJGlkICkgcmV0dXJuICRyb3c7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NlYXJjaF93b3JkcygkcGFybXMgPSBhcnJheSgpKQogIHsKCSR0ZXJtcyA9IGFycmF5KCk7CgkkdGVybXNbXSA9ICR0aGlzLT5jb21wYW55X25hbWU7CgkkdGVybXNbXSA9ICR0aGlzLT5jb21wYW55X25hbWU7IC8vIHllcywgdHdpY2UgLi4uIGluY3JlYXNlZCBzY29yZS4KCSR0ZXJtc1tdID0gJHRoaXMtPmFkZHJlc3M7CgkkdGVybXNbXSA9ICR0aGlzLT50ZWxlcGhvbmU7CgkkdGVybXNbXSA9ICR0aGlzLT5mYXg7CgkkdGVybXNbXSA9ICR0aGlzLT5kZXRhaWxzOwoJJHRlcm1zW10gPSAkdGhpcy0+ZmF4OwoKICAgIGlmKCAkdGhpcy0+aGllcl9pZCA+IDAgKSB7CiAgICAgICRoaWVyID0gJHRoaXMtPmdldF9oaWVyYXJjaHkoJHRoaXMtPmhpZXJfaWQpOwogICAgICBpZiggJGhpZXIgKSB7CiAgICAgICAgJHRlcm1zW10gPSAkaGllclsnbG9uZ19uYW1lJ107CiAgICAgIH0KICAgIH0KCglpZiggIWlzc2V0KCRwYXJtc1snZXhjbHVkZV9maWVsZHMnXSkgKSB7CgkgICRmaWVsZHMgPSBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmc19ieV9uYW1lKFRSVUUsVFJVRSk7CgkgIGlmKCBpc19hcnJheSgkZmllbGRzKSAmJiBjb3VudCgkZmllbGRzKSApIHsKCQlmb3JlYWNoKCAkZmllbGRzIGFzICRrZXkgPT4gJGZsZCApIHsKCQkgIGlmKCAoJGZsZFsndHlwZSddID09ICd0ZXh0Ym94JyB8fCAkZmxkWyd0eXBlJ10gPT0gJ3RleHRhcmVhJykgJiYgJGZsZFsncHVibGljJ10gPT0gMSAmJiAkZmxkWydhZG1pbl9vbmx5J10gPT0gMCApIHsKCQkJJHRtcCA9ICR0aGlzLT5nZXRfZmllbGQoJGZsZFsnaWQnXSk7CgkJCWlmKCBpc19vYmplY3QoJHRtcCkgJiYgaXNzZXQoJHRtcC0+dmFsdWUpICYmICR0bXAtPnZhbHVlICkgJHRlcm1zW10gPSAkdG1wLT52YWx1ZTsKCQkgIH0KCQl9CgkgIH0KCX0KCglpZiggIWlzc2V0KCRwYXJtc1snZXhjbHVkZV9jYXRlZ29yeV9leHRyYSddKSApIHsKCSAgJGNhdHMgPSAkdGhpcy0+bGlzdF9jYXRlZ29yaWVzKCk7CgkgIGlmKCBpc19hcnJheSgkY2F0cykgJiYgY291bnQoJGNhdHMpICkgewoJCWZvcmVhY2goICRjYXRzIGFzICRvbmVjYXQgKSB7CgkJICAkb2JqID0gJHRoaXMtPmdldF9jYXRlZ29yeSgkb25lY2F0KTsKCQkgIGlmKCAhaXNfb2JqZWN0KCRvYmopICkgY29udGludWU7CiAgICAgICAgICAkdGVybXNbXSA9ICRvYmotPmxvbmdfbmFtZTsKCQkgICR0ZXJtc1tdID0gJG9iai0+ZXh0cmExOwoJCSAgJHRlcm1zW10gPSAkb2JqLT5leHRyYTI7CgkJICAkdGVybXNbXSA9ICRvYmotPmV4dHJhMzsKCQl9CgkgIH0KCX0KCgkkb3V0ID0gJyc7Cglmb3JlYWNoKCAkdGVybXMgYXMgJG9uZSApIHsKCSAgJG91dCAuPSAkb25lLicgJzsKCX0KCXJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9hbGJ1bV9maWxlKCRmZGlkLCRmaWxlbmFtZSkKICB7CglpZiggJHRoaXMtPl9ybyApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7CiAgICBpZiggISR0aGlzLT5fZGVlcCAmJiBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA+IDAgKSAkdGhpcy0+X2xvYWRfZGVlcCgpOwoJaWYoICFpc19hcnJheSgkdGhpcy0+X2ZpZWxkcykgfHwgY291bnQoJHRoaXMtPl9maWVsZHMpID09IDAgKSByZXR1cm4gRkFMU0U7CgoJZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJHJlYyApIHsKCSAgaWYoICRyZWMtPmlkID09ICRmZGlkICYmICRyZWMtPnR5cGUgPT0gJ2FsYnVtJyApIHsKCQlpZiggaXNzZXQoJHJlYy0+dmFsdWUpICYmICRyZWMtPnZhbHVlICkgewoJCSAgJGZpbGVzID0gdW5zZXJpYWxpemUoJHJlYy0+dmFsdWUpOwoJCSAgaWYoIGluX2FycmF5KCRmaWxlbmFtZSwkZmlsZXMpICkgewoJCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJCSRmbiA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJHRoaXMtPmlkLCdhbGJ1bV8nLiRmZGlkLCRmaWxlbmFtZSk7CgkJCWlmKCAhZmlsZV9leGlzdHMoJGZuKSApIGF1ZGl0KCR0aGlzLT5pZCwnQ29tcGFueURpcmVjdG9yeScsJ0ZpbGUgJy4kZmlsZW5hbWUuJyBkb2VzIG5vdCBleGlzdCBmb3IgYWxidW0nKTsKCQkJQHVubGluaygkZm4pOwoKCQkJJHQgPSBhcnJheSgpOwoJCQlmb3JlYWNoKCAkZmlsZXMgYXMgJG8gKSB7CgkJCSAgaWYoICRvICE9ICRmaWxlbmFtZSApICR0W10gPSAkbzsKCQkJfQoJCQkkcmVjLT52YWx1ZSA9ICcnOwoJCQlpZiggY291bnQoJHQpICkgJHJlYy0+dmFsdWUgPSBzZXJpYWxpemUoJHQpOwoJCQkkdGhpcy0+c2V0X2ZpZWxkKCRmZGlkLCRyZWMtPnZhbHVlKTsKCQkJcmV0dXJuIFRSVUU7CgkJICB9CgkJfQoJCWJyZWFrOwoJICB9Cgl9CglyZXR1cm4gRkFMU0U7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_company_filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZF9jb21wYW55X2ZpbHRlciBpbXBsZW1lbnRzIEFycmF5QWNjZXNzCnsKICBwcml2YXRlICRfb3JpZ3BhcmFtczsKICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCk7CiAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzID0gYXJyYXkoJ3JldHVybmlkJywnbmFtZScsJ3BocmFzZScsJ3NvcnRieScsJ3NvcnRvcmRlcicsJ2NhdGVnb3J5JywnY2F0ZWdvcnkyJywnY2F0ZWdvcnkzJywnY2F0ZWdvcnlpZCcsJ2hpZXInLCAncGFnZScsJ3BhZ2VsaW1pdCcsJ2V4cGlyZWRvd25lcnMnLCdkZWVwJywnb25seWNvdW50JywnaW5saW5lJywnZGV0YWlscGFnZScsJ2RldGFpbHRlbXBsYXRlJywnc2hvd2FsbCcsJ21hdGNoYWxsJywnYWRkcmVzcycsJ2FkZHJlc3MyJywnbGF0JywnbG9uZycsJ3JhZGl1cycsJ2lkJywnc3RhdHVzJywnc29ydGJvb2wnLCdvd25lcl9pZCcsJ21vZGlmaWVkX3NpbmNlJywnaWRsaXN0Jywnb3duZXJsaXN0JywnYWN0aXZpdHlpZCcsJ2FjdGl2aXR5Y2hpbGRyZW4nLCdub3ByZXR0eScsJ25vY2hpbGRyZW4nKTsKICBwcml2YXRlICRfc29ydGJ5X2ZsZCA9IG51bGw7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZGF0YSA9IGFycmF5KCkpCiAgewoJaWYoIGlzc2V0KCRkYXRhWydjZF9lbmNvZGVkJ10pICYmIGlzc2V0KCRkYXRhWydjZF9zaWcnXSkgKSB7CgkgIC8vIGdvdCBlbmNvZGVkIHBhcmFtZXRlcnMKCSAgaWYoIG1kNSgkZGF0YVsnY2RfZW5jb2RlZCddLl9fRklMRV9fKSAhPSAkZGF0YVsnY2Rfc2lnJ10gKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignSW52YWxpZCBkYXRhIHNpZ25hdHVyZScpOwoJICAkdG1wID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkZGF0YVsnY2RfZW5jb2RlZCddKSk7CgkgIHVuc2V0KCRkYXRhWydjZF9lbmNvZGVkJ10sJGRhdGFbJ2NkX3NpZyddKTsKCSAgJGRhdGEgPSBhcnJheV9tZXJnZSgkdG1wLCRkYXRhKTsKCX0KCWVsc2UgaWYoIGlzc2V0KCRkYXRhWydzZWFyY2hrZXknXSkgKSB7CgkgICR0bXAgPSAkX1NFU1NJT05bJ2NkXycuJGRhdGFbJ3NlYXJjaGtleSddXTsKCSAgJGRhdGEgPSBhcnJheV9tZXJnZSgkdG1wLCRkYXRhKTsKCX0KCiAgICB1bnNldCgkZGF0YVsnYWN0aW9uJ10sJGRhdGFbJ21vZHVsZSddKTsKCSR0aGlzLT5fb3JpZ3BhcmFtcyA9ICRkYXRhOwogICAgJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkkdGhpcy0+X2RhdGFbJ2lkJ10gPSAnY2QnOyAvLyB1c2VkIGluIGxpbmtzLgogICAgJHRoaXMtPl9kYXRhWydzb3J0YnknXSA9ICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5JywnY29tcGFueV9uYW1lJyk7CiAgICAkdGhpcy0+X2RhdGFbJ3NvcnRvcmRlciddID0gJGNkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCdhc2MnKTsKICAgICR0aGlzLT5fZGF0YVsncGFnZWxpbWl0J10gPSAyNTA7CiAgICAkdGhpcy0+X2RhdGFbJ3BhZ2UnXSA9IDE7CiAgICAkdGhpcy0+X2RhdGFbJ2V4cGlyZWRvd25lcnMnXSA9ICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfc2hvd2V4cGlyZWQnLDApOwogICAgJHRoaXMtPl9kYXRhWydkZWVwJ10gPSAxOwogICAgJHRoaXMtPl9kYXRhWydvbmx5Y291bnQnXSA9IDA7CgkkdGhpcy0+X2RhdGFbJ2lubGluZSddID0gMDsKCSR0aGlzLT5fZGF0YVsnc2hvd2FsbCddID0gMDsKCSR0aGlzLT5fZGF0YVsnbWF0Y2hhbGwnXSA9IDE7CgkkdGhpcy0+X2RhdGFbJ3N0YXR1cyddID0gLTE7CgogICAgZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUgKSB7CgkgIGlmKCBzdGFydHN3aXRoKCRrZXksJ2NkXycpICkgJGtleSA9IHN1YnN0cigka2V5LDMpOwoJICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgJHRoaXNbJGtleV0gPSAkdmFsdWU7CgkgIGlmKCAka2V5ID09ICdmaWVsZHMnICYmIGlzX2FycmF5KCR2YWx1ZSkgKSB7CgkJZm9yZWFjaCggJHZhbHVlIGFzICRyZWMgKSB7CgkJICBpZiggIWlzX2FycmF5KCRyZWMpICkgY29udGludWU7CgkJICBpZiggIWlzc2V0KCRyZWNbJ2ZsZG5hbWUnXSkgfHwgIWlzc2V0KCRyZWNbJ2ZsZHZhbCddKSApIGNvbnRpbnVlOwoJCSAgJHRoaXMtPmFkZF9maWVsZF9leHByKCRyZWNbJ2ZsZG5hbWUnXSwkcmVjWydmbGR2YWwnXSwoaXNzZXQoJHJlY1snZXhwciddKSk/JHJlY1snZXhwciddOidBVVRPJywoaXNzZXQoJHJlY1sndHlwZSddKSk/JHJlY1sndHlwZSddOm51bGwpOwoJCX0KCSAgfQoJfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRHZXQoJGtleSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdHZXQgaW52YWxpZCBrZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBjZF9jb21wYW55X2ZpbHRlcicpOwoKICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICkgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKCiAgICAkY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCXN3aXRjaCggJGtleSApIHsKCWNhc2UgJ2RldGFpbHBhZ2UnOgoJICAkeCA9ICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScpOwoJICBpZiggJHggPCAxICkgJHggPSBjbXNfdXRpbHM6OmdldF9jdXJyZW50X3BhZ2VpZCgpOwoJICByZXR1cm4gJHg7Cgl9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgka2V5LCR2YWx1ZSkKICB7CiAgICAkY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdTZXQ6IEludmFsaWQgS2V5ICcuJGtleS4nICBzcGVjaWZpZWQgZm9yIGNkX2NvbXBhbnlfZmlsdGVyJyk7CgogICAgLy8gdmFsaWRhdGUgZGF0YS4KICAgIHN3aXRjaCggJGtleSApIHsKCWNhc2UgJ3N0YXR1cyc6CgkgICR2YWx1ZSA9IHRyaW0oc3RydG9sb3dlcigkdmFsdWUpKTsKCSAgYnJlYWs7CgoJY2FzZSAnc29ydGJ5JzoKCSAgJHYyID0gc3RydG9sb3dlcih0cmltKCR2YWx1ZSkpOwoJICBzd2l0Y2goICR2MiApIHsKCSAgY2FzZSAnbmFtZSc6CgkJJHZhbHVlID0gJ2NvbXBhbnlfbmFtZSc7CgkJYnJlYWs7CgoJICBjYXNlICdkaXN0YW5jZSc6CgkJaWYoICEkdGhpcy0+aGF2ZV9jb29yZHMoKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdJbnZhbGlkIHNvcnRieSBmb3IgY2RfY29tcGFueV9maWx0ZXIgKG5vIGNvb3JkaW5hdGVzIHNldCknKTsKCQkkdmFsdWUgPSAnZGlzdGFuY2UnOwoJCWJyZWFrOwoKCSAgY2FzZSAnaWQnOgoJICBjYXNlICdhZGRyZXNzJzoKCSAgY2FzZSAnb3duZXInOgoJICBjYXNlICdjb21wYW55X25hbWUnOgoJICBjYXNlICdwaG9uZSc6CgkgIGNhc2UgJ2ZheCc6CgkgIGNhc2UgJ2VtYWlsJzoKCSAgY2FzZSAnd2Vic2l0ZSc6CgkgIGNhc2UgJ2NyZWF0ZWQnOgoJICBjYXNlICdtb2RpZmllZCc6CgkgIGNhc2UgJ3JhbmRvbSc6CgkgIGNhc2UgJ3BocmFzZSc6CgkJYnJlYWs7CgoJICBjYXNlICdtb3N0Y2hlY2tpbnMnOgoJICBjYXNlICdtb3N0ZmF2b3JpdGUnOgoJICBjYXNlICdtb3N0ZmF2b3JpdGVzJzoKCQkkY2dzb2MgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0NHU09DSUFMQVBQKTsKCQlpZiggIWlzX29iamVjdCgkY2dzb2MpICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0ludmFsaWQgc29ydGJ5IGZvciBjZF9jb21wYW55X2ZpbHRlciAobm8gY2dzb2NpYWxhcHAgbW9kdWxlKScpOwoJCWJyZWFrOwoKCSAgZGVmYXVsdDoKCQkkZ29vZCA9IGZhbHNlOwoJCWlmKCBzdGFydHN3aXRoKCR2YWx1ZSwnZjonKSApIHsKCQkgIGxpc3QoJGp1bmssJGZuYW1lLCRmdHlwZSkgPSBAZXhwbG9kZSgnOicsJHZhbHVlLic6Ojo6JywzKTsKCQkgICRmaWVsZGRlZnMgPSBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmcygpOwoJCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkZGVmcyk7ICRpKysgKSB7CgkJCWlmKCAkZmllbGRkZWZzWyRpXVsnbmFtZSddID09ICRmbmFtZSApIHsKCQkJICAkdGhpcy0+X3NvcnRieV9mbGQgPSAkZmllbGRkZWZzWyRpXTsKCQkJICBpZiggJGZpZWxkZGVmc1skaV1bJ3R5cGUnXSA9PSAnY2hlY2tib3gnICkgJHRoaXMtPl9kYXRhWydzb3J0Ym9vbCddID0gMTsKCQkJICAkZ29vZCA9IHRydWU7CgkJCSAgYnJlYWs7CgkJCX0KCQkgIH0KCQkgIGlmKCAkZnR5cGVbMF0gPT0gJzonICkgJGZ0eXBlID0gJyc7CgkJICBpZiggJGdvb2QgJiYgJGZ0eXBlICE9ICcnICYmICRmdHlwZSAhPSAnaScgJiYgJGZ0eXBlICE9ICdmJykgJGdvb2QgPSBmYWxzZTsKCQl9CgkJaWYoICEkZ29vZCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdJbnZhbGlkIFNvcnRieSBGaWVsZCcpOwoJCWJyZWFrOwoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ3NvcnRvcmRlcic6CgkgICR2YWx1ZSA9IHN0cnRvbG93ZXIodHJpbSgkdmFsdWUpKTsKCSAgaWYoICR2YWx1ZSA9PSAnJyApICR2YWx1ZSA9ICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnYXNjJyk7CgkgIGlmKCAkdmFsdWUgIT0gJ2FzYycgJiYgJHZhbHVlICE9ICdkZXNjJyApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdJbnZhbGlkIFNvcnRieSBWYWx1ZTogJy4kdmFsdWUpOwoJICBicmVhazsKCgljYXNlICdjYXRlZ29yeSc6CgljYXNlICdjYXRlZ29yeTInOgoJY2FzZSAnY2F0ZWdvcnkzJzoKCSAgLy8gdG9kbzogY2hlY2sgaWYgaXQncyBhIHZhbGlkIGNhdGVnb3J5LgoJICBicmVhazsKCgljYXNlICdjYXRlZ29yeWlkJzoKCSAgLy8gdG9kbzogY2hlY2sgaWYgaXRzIGEgdmFsaWQgY2F0ZWdvcnkgaWQuCgkgIGJyZWFrOwoKCWNhc2UgJ2FjdGl2aXR5aWQnOgoJY2FzZSAnYWN0aXZpdHljaGlsZHJlbic6CgkgICRjZ3NvYyA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dTT0NJQUxBUFApOwoJICBpZiggIWlzX29iamVjdCgkY2dzb2MpICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0ludmFsaWQgc29ydGJ5IGZvciBjZF9jb21wYW55X2ZpbHRlciAobm8gY2dzb2NpYWxhcHAgbW9kdWxlKScpOwoJICBicmVhazsKCgljYXNlICdoaWVyJzoKCSAgLy8gdG9kbzogY2hlY2sgaWYgaXQncyBhIHZhbGlkIGhpZXJhcmNoeQoJICBicmVhazsKCgljYXNlICdhZGRyZXNzJzoKCWNhc2UgJ2FkZHJlc3MyJzoKCWNhc2UgJ2lkJzoKCSAgJHZhbHVlID0gdHJpbSgkdmFsdWUpOwoJICBicmVhazsKCgljYXNlICduYW1lJzoKCSAgLy8gbmFtZS4uCgkgIGJyZWFrOwoKCWNhc2UgJ2xhdCc6CgljYXNlICdsb25nJzoKCWNhc2UgJ3JhZGl1cyc6CgkgIC8vIHZhbGlkYXRpb24gc2hvdWxkIGhhbmRsZSB0aGlzLgoJICAkdmFsdWUgPSAoZmxvYXQpJHZhbHVlOwoJICBicmVhazsKCgljYXNlICdkZXRhaWx0ZW1wbGF0ZSc6CgkgIC8vIGRvbid0IGJvdGhlciBjaGVja2luZyBpdAoJICBicmVhazsKCgljYXNlICdkZXRhaWxwYWdlJzoKCSAgaWYoICFpc19udW1lcmljKCR2YWx1ZSkgKSB7CgkJLy8gcmVzb2x2ZSB0aGUgdmFsdWUgdG8gYSBwYWdlIGlkLi4uIG9yIHVzZSAtMQoJCSR2YWx1ZSA9ICRjZG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdmFsdWUpOwoJCWlmKCAhJHZhbHVlICkgJHZhbHVlID0gLTE7CgkgIH0KCSAgYnJlYWs7CgoJY2FzZSAnc2hvd2FsbCc6CgljYXNlICdyZXR1cm5pZCc6CgljYXNlICdpbmxpbmUnOgoJY2FzZSAnb25seWNvdW50JzoKCWNhc2UgJ2RlZXAnOgoJY2FzZSAnZXhwaXJlZG93bmVycyc6CgljYXNlICdtYXRjaGFsbCc6CgljYXNlICdvd25lcl9pZCc6CgljYXNlICdtb2RpZmllZF9zaW5jZSc6CgkgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwoJICBicmVhazsKCgljYXNlICdwYWdlJzoKCWNhc2UgJ3BhZ2VsaW1pdCc6CgkgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwoJICAkdmFsdWUgPSBtYXgoMSwkdmFsdWUpOwoJICBicmVhazsKCgljYXNlICdpZGxpc3QnOgoJICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBleHBsb2RlKCcsJywkdmFsdWUpOwoJICAkdG1wID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJHZhbHVlIGFzICRvbmUgKSB7CgkJJHRtcDIgPSAoaW50KSRvbmU7CgkJaWYoICR0bXAyIDw9IDAgKSBjb250aW51ZTsKCQkkdG1wW10gPSAkdG1wMjsKCSAgfQoJICAkdmFsdWUgPSBhcnJheV91bmlxdWUoJHZhbHVlKTsKCSAgYnJlYWs7CgoJY2FzZSAnb3duZXJsaXN0JzoKCSAgaWYoICFpc19hcnJheSgkdmFsdWUpICkgJHZhbHVlID0gZXhwbG9kZSgnLCcsJHZhbHVlKTsKCSAgJHRtcCA9IGFycmF5KCk7CgkgIGZvcmVhY2goICR2YWx1ZSBhcyAkb25lICkgewoJCSR0bXAyID0gKGludCkkb25lOwoJCWlmKCAkdG1wMiA8PSAwICkgY29udGludWU7CgkJJHRtcFtdID0gJHRtcDI7CgkgIH0KCSAgJHZhbHVlID0gYXJyYXlfdW5pcXVlKCR2YWx1ZSk7CgkgIGJyZWFrOwoKICAgIGNhc2UgJ25vY2hpbGRyZW4nOgoJY2FzZSAnbm9wcmV0dHknOgoJICAkdmFsdWUgPSBjbXNfdG9fYm9vbCgkdmFsdWUpOwoJICBicmVhazsKCglkZWZhdWx0OgoJICBpZiggc3RhcnRzd2l0aCgka2V5LCdmOicpICkgewoJCWxpc3QoJGZuLCRmdiwkZXhwcikgPSBleHBsb2RlKCc6JyxzdWJzdHIoJGtleSwyKSk7CgkJJHRoaXMtPmFkZF9maWVsZF9leHByKCRmbiwkZnYsJGV4cHIpOwoJICB9CgkgIGJyZWFrOwoJfQoKICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrZXkpCiAgewogICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignRXhpc3RzOiBJbnZhbGlkIEtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIGNkX2NvbXBhbnlfZmlsdGVyJyk7CiAgICByZXR1cm4gaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJGtleSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdVbnNldDogSW52YWxpZCBLZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBjZF9jb21wYW55X2ZpbHRlcicpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgewoJLy8gY2hlY2sgc29ydGJ5IGFnYWluc3QgY29vcmRzCglpZiggJHRoaXMtPl9kYXRhWydzb3J0YnknXSA9PSAnZGlzdGFuY2UnICYmICEkdGhpcy0+aGF2ZV9jb29yZHMoKSApIHsKCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0Nhbm5vdCBzb3J0YnkgZGlzdGFuY2Ugd2l0aG91dCBzcGVjaWZ5aW5nIGNvb3JkaW5hdGVzJyk7Cgl9CgoJLy8gdG9kbzogaGVyZSB3ZSBzaG91bGQgdmFsaWRhdGUgaGllcmFyY2h5LCBhbmQgY2F0ZWdvcmllKHMpCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uICZnZXRfc29ydF9mbGQoKQogIHsKCSRyZXQgPSBudWxsOwoJJGRhdGEgPSAkdGhpcy0+Z2V0X3NvcnRieSgpOwoJaWYoIHN0YXJ0c3dpdGgoJGRhdGEsJ2Y6JykgKSB7CgkgIGxpc3QoJGp1bmssJGZuYW1lLCRmdHlwZSkgPSBAZXhwbG9kZSgnOicsJGRhdGEuJzo6OjonLDMpOwoJICAkZmllbGRkZWZzID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnMoKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkZGVmcyk7ICRpKysgKSB7CgkJaWYoICRmaWVsZGRlZnNbJGldWyduYW1lJ10gPT0gJGZuYW1lICkgewoJCSAgJHJldCA9ICRmaWVsZGRlZnNbJGldOwoJCSAgYnJlYWs7CgkJfQoJICB9Cgl9CglyZXR1cm4gJHJldDsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NvcnRieSgpCiAgewogICAgc3dpdGNoKCAkdGhpcy0+X2RhdGFbJ3NvcnRieSddICkgewoJY2FzZSAnZW1haWwnOgoJICByZXR1cm4gJ2NvbnRhY3RfZW1haWwnOwoJY2FzZSAncGhvbmUnOgoJICByZXR1cm4gJ3RlbGVwaG9uZSc7CgljYXNlICdjcmVhdGVkJzoKCSAgcmV0dXJuICdjcmVhdGVfZGF0ZSc7CgljYXNlICdtb2RpZmllZCc6CgkgIHJldHVybiAnbW9kaWZpZWRfZGF0ZSc7CgljYXNlICdyYW5kb20nOgoJICByZXR1cm4gJ1JBTkQoKSc7CgljYXNlICdpZCc6CgljYXNlICdjb21wYW55X25hbWUnOgoJY2FzZSAnZmF4JzoKCWNhc2UgJ3dlYnNpdGUnOgoJY2FzZSAnc3RhdHVzJzoKCWNhc2UgJ2Rpc3RhbmNlJzoKCWRlZmF1bHQ6CgkgIHJldHVybiAkdGhpcy0+X2RhdGFbJ3NvcnRieSddOwoJfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9zb3J0b3JkZXIoKQogIHsKICAgIGlmKCAkdGhpcy0+X2RhdGFbJ3NvcnRieSddID09ICdyYW5kb20nICkgcmV0dXJuICcnOwogICAgcmV0dXJuICR0aGlzLT5fZGF0YVsnc29ydG9yZGVyJ107CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhcmFtcygkc2VyaWFsaXplID0gVFJVRSkKICB7CglpZiggISRzZXJpYWxpemUgKSByZXR1cm4gJHRoaXMtPl9vcmlncGFyYW1zOwoKCSR0bXAgPSBiYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkdGhpcy0+X29yaWdwYXJhbXMpKTsKCSRvdXQgPSBhcnJheSgnY2RfZW5jb2RlZCc9PiR0bXAsJ2NkX3NpZyc9Pm1kNSgkdG1wLl9fRklMRV9fKSk7CglyZXR1cm4gJG91dDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBoYXZlX2Nvb3JkcygpCiAgewoJaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2xhdCddKSB8fCAhaXNzZXQoJHRoaXMtPl9kYXRhWydsb25nJ10pICkgcmV0dXJuIEZBTFNFOwoJaWYoICFpc19udW1lcmljKCR0aGlzLT5fZGF0YVsnbGF0J10pIHx8ICFpc19udW1lcmljKCR0aGlzLT5fZGF0YVsnbG9uZyddKSApIHJldHVybiBGQUxTRTsKCglyZXR1cm4gVFJVRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcmFkaXVzX21pbGVzKCkKICB7CgkkdG1wID0gJyc7CgkkdmFsID0gMTsKCSRzdWZmaXggPSAnbWknOwoJJHN0ciA9ICR0aGlzLT5fZGF0YVsncmFkaXVzJ107CgoJaWYoIHByZWdfbWF0Y2goJy9eKFswLTlcLlwsXSspKC4qKSQvJywkc3RyLCR0bXApICkgewoJICAkdmFsID0gKGZsb2F0KSR0bXBbMV07CgkgIGlmKCAkdG1wWzJdICkgJHN1ZmZpeCA9IHRyaW0oJHRtcFsyXSk7Cgl9CgoJJHN1ZmZpeCA9IHN0cnRvbG93ZXIoJHN1ZmZpeCk7Cglzd2l0Y2goICRzdWZmaXggKSB7CgljYXNlICdtaSc6CgljYXNlICdtaWxlJzoKCWNhc2UgJ21pbGVzJzoKCSAgYnJlYWs7CgoJY2FzZSAna20nOgoJY2FzZSAnayc6CgkgICR2YWwgPSAoZmxvYXQpJHZhbCAqIDAuNjIxMzcxMTkyOwoJICBicmVhazsKCglkZWZhdWx0OgoJICBpZiggJHN1ZmZpeCApIHsKCQl0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQgZm9yIGNvbXBhbnkgc2VhcmNoIHJhZGl1cyAnLiR0aGlzLT5fZGF0YVsncmFkaXVzJ10uIiA6ICRzdWZmaXgiKTsKCSAgfQoJfQoKCXJldHVybiAkdmFsOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jb29yZHMoKQogIHsKCSRyZXMgPSBhcnJheSgpOwoJJHJlc1snbGF0J10gPSBmbG9hdHZhbCgkdGhpcy0+X2RhdGFbJ2xhdCddKTsKCSRyZXNbJ2xvbmcnXSA9IGZsb2F0dmFsKCR0aGlzLT5fZGF0YVsnbG9uZyddKTsKCglyZXR1cm4gJHJlczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBhZGRfZmllbGRfZXhwcigkZmllbGRuYW1lLCRmaWVsZHZhbCwkZXhwciA9ICdBVVRPJywkdHlwZSA9IG51bGwpCiAgewoJaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ19fZmllbGRfZXhwcl9fJ10pICkgJHRoaXMtPl9kYXRhWydfX2ZpZWxkX2V4cHJfXyddID0gYXJyYXkoKTsKCglpZiggISRmaWVsZG5hbWUgfHwgISRmaWVsZHZhbCApIHJldHVybjsKCSR0aGlzLT5fZGF0YVsnX19maWVsZF9leHByX18nXVtdID0gYXJyYXkoJ2ZsZG5hbWUnPT4kZmllbGRuYW1lLCAnZmxkdmFsJz0+JGZpZWxkdmFsLCAnZXhwcic9PiRleHByLCAndHlwZSc9PiR0eXBlKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRfZXhwcnMoKQogIHsKCWlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydfX2ZpZWxkX2V4cHJfXyddKSApIHJldHVybjsKCXJldHVybiAkdGhpcy0+X2RhdGFbJ19fZmllbGRfZXhwcl9fJ107CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJfZmllbGRfZXhwcnMoKQogIHsKCWlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydfX2ZpZWxkX2V4cHJfXyddKSApIHJldHVybjsKCXVuc2V0KCR0aGlzLT5fZGF0YVsnX19maWVsZF9leHByX18nXSk7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_company_query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZF9jb21wYW55X3F1ZXJ5CnsKICBwcml2YXRlICRfZmlsdGVyOwogIHByaXZhdGUgJF9xdWVyaWVkOwogIHByaXZhdGUgJF9jb3VudDsKICBwcml2YXRlICRfcmVzdWx0c2V0OwoKICBjb25zdCBSRVNVTFRTX0NEX0NPTVBBTlkgPSAxOwogIGNvbnN0IFJFU1VMVFNfU1REQ0xBU1MgICA9IDI7CiAgY29uc3QgUkVTVUxUU19BUlJBWSAgICAgID0gMzsKCiAgcHJpdmF0ZSBzdGF0aWMgJF9ub3ByZXR0eSA9IDA7CiAgcHJpdmF0ZSBzdGF0aWMgJF9yZXN1bHRfbW9kZSA9IHNlbGY6OlJFU1VMVFNfU1REQ0xBU1M7CiAgcHJpdmF0ZSBzdGF0aWMgJF9jYXRlZ29yeW5hbWVzdG9pZHM7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChjZF9jb21wYW55X2ZpbHRlciAkZmlsdGVyKQogIHsKICAgICR0aGlzLT5fZmlsdGVyID0gJGZpbHRlcjsKCWlmKCAkZmlsdGVyWydub3ByZXR0eSddICkgc2VsZjo6JF9ub3ByZXR0eSA9IDE7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF9ub3ByZXR0eSgkZmxhZykKICB7CglzZWxmOjokX25vcHJldHR5ID0gJGZsYWc7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF9yZXN1bHRfbW9kZSgkbW9kZSkKICB7Cglzd2l0Y2goICRtb2RlICkgewoJY2FzZSBzZWxmOjpSRVNVTFRTX0NEX0NPTVBBTlk6CgljYXNlIHNlbGY6OlJFU1VMVFNfU1REQ0xBU1M6CgljYXNlIHNlbGY6OlJFU1VMVFNfQVJSQVk6CgkgIHNlbGY6OiRfcmVzdWx0X21vZGUgPSAkbW9kZTsKCX0KICB9CgogIHByaXZhdGUgZnVuY3Rpb24gX3F1ZXJ5KCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ0ZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBDJzsKICAgICRxdWVyeTIgPSAnRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIEMnOwoKCSR0aGlzLT5fZmlsdGVyLT52YWxpZGF0ZSgpOwoKCSRyZXFfd2hlcmUgPSBhcnJheSgpOwoJJGNvbHVtbnMgPSBhcnJheSgnQy4qJyk7CiAgICAkd2hlcmUgPSBhcnJheSgpOwoJJGhhdmluZyA9IGFycmF5KCk7CgkkaGNvbHVtbnMgPSBhcnJheSgpOwogICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICRzb3J0YnkgPSAkdGhpcy0+X2ZpbHRlci0+Z2V0X3NvcnRieSgpOwogICAgJHNvcnRvcmRlciA9ICR0aGlzLT5fZmlsdGVyLT5nZXRfc29ydG9yZGVyKCk7CglnbG9iYWwgJENNU19BRE1JTl9QQUdFOwoKCWlmKCAkdGhpcy0+X2ZpbHRlclsnc2hvd2FsbCddICkgewoJICBnbG9iYWwgJENNU19BRE1JTl9QQUdFOwoJICBpZiggIWlzc2V0KCRDTVNfQURNSU5fUEFHRSkgKSB7CgkJJHJlcV93aGVyZVtdID0gJ0Muc3RhdHVzICE9ID8nOwoJCSRwYXJtc1tdID0gJ2Rpc2FibGVkJzsKCSAgfQoJfQoJZWxzZSB7CgkgIGlmKCBpc3NldCgkQ01TX0FETUlOX1BBR0UpICkgewoJCS8vIGFkbWluIG9ubHksIHlvdSBjYW4gZmlsdGVyIGJ5IHdoYXRldmVyIHN0YXR1cy4KCQlpZiggJHRoaXMtPl9maWx0ZXJbJ3N0YXR1cyddICE9IC0xICkgewoJCSAgJHJlcV93aGVyZVtdID0gJ0Muc3RhdHVzID0gPyc7CgkJICAkcGFybXNbXSA9ICR0aGlzLT5fZmlsdGVyWydzdGF0dXMnXTsKCQl9CgkgIH0KCSAgZWxzZSB7CgkJLy8gZnJvbnRlbmQsIHlvdSBjYW4gb25seSBzaG93IGRyYWZ0LCBvciBhbnl0aGluZyBidXQgZGlzYWJsZWQuCgkJaWYoICR0aGlzLT5fZmlsdGVyWydzdGF0dXMnXSA9PSAnZHJhZnQnICkgewoJCSAgJHJlcV93aGVyZVtdID0gJ0Muc3RhdHVzID0gPyc7CgkJICAkcGFybXNbXSA9ICdkcmFmdCc7CgkJfQoJCWVsc2UgewoJCSAgJHJlcV93aGVyZVtdID0gJ0Muc3RhdHVzID0gPyc7CgkJICAkcGFybXNbXSA9ICdwdWJsaXNoZWQnOwoJCX0KCSAgfQoJfQoKCWlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnaWRsaXN0J10pICkgewoJICAkdG1wID0gJHRoaXMtPl9maWx0ZXJbJ2lkbGlzdCddOwoJICBpZiggIWlzX2FycmF5KCR0bXApICkgJHRtcCA9IGV4cGxvZGUoJywnLCR0bXApOwoJICAkb3V0ID0gYXJyYXkoKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkJJG4gPSAoaW50KSR0bXBbJGldOwoJCWlmKCAkbiA8IDEgKSBjb250aW51ZTsKCSAgICBpZiggIWluX2FycmF5KCRuLCRvdXQpICkgJG91dFtdID0gJG47CgkgIH0KCSAgJHJlcV93aGVyZVtdID0gJ0MuaWQgSU4gKCcuaW1wbG9kZSgnLCcsJG91dCkuJyknOwoJfQoKCWlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnb3duZXJsaXN0J10pICkgewoJICAkdG1wID0gJHRoaXMtPl9maWx0ZXJbJ293bmVybGlzdCddOwoJICBpZiggIWlzX2FycmF5KCR0bXApICkgJHRtcCA9IGV4cGxvZGUoJywnLCR0bXApOwoJICAkb3V0ID0gYXJyYXkoKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkJJG4gPSAoaW50KSR0bXBbJGldOwoJCWlmKCAkbiA8IDEgKSBjb250aW51ZTsKCSAgICBpZiggIWluX2FycmF5KCRuLCRvdXQpICkgJG91dFtdID0gJG47CgkgIH0KCSAgJHJlcV93aGVyZVtdID0gJ0Mub3duZXJfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJG91dCkuJyknOwoJfQoJZWxzZSBpZiggJHRoaXMtPl9maWx0ZXJbJ293bmVyX2lkJ10gKSB7CgkgICRyZXFfd2hlcmVbXSA9ICdDLm93bmVyX2lkID0gPyc7CgkgICRwYXJtc1tdID0gKGludCkkdGhpcy0+X2ZpbHRlclsnb3duZXJfaWQnXTsKCX0KCglpZiggJHRoaXMtPl9maWx0ZXJbJ21vZGlmaWVkX3NpbmNlJ10gKSAkcmVxX3doZXJlW10gPSAnQy5tb2RpZmllZF9kYXRlID49ICcuJGRiLT5EYlRpbWVTdGFtcCgkdGhpcy0+X2ZpbHRlclsnbW9kaWZpZWRfc2luY2UnXSk7CgogICAgaWYoICEkdGhpcy0+X2ZpbHRlclsnZXhwaXJlZG93bmVycyddICkgewoJICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CgkgIGlmKCAkZmV1ICkgewoJCSRzdHIgPSAnIExFRlQgT1VURVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgZnUgT04gZnUuaWQgPSBDLm93bmVyX2lkJzsKCQkkcXVlcnkgLj0gICRzdHI7CgkJJHF1ZXJ5MiAuPSAkc3RyOwoJCSRzdHIgPSAnJzsKCQkkcmVxX3doZXJlW10gPSAnKENPQUxFU0NFKEMub3duZXJfaWQsLTEpIDwgMCBPUiBmdS5leHBpcmVzID4gTk9XKCkpJzsKCSAgfQoJfQoKCWlmKCAkdGhpcy0+X2ZpbHRlci0+aGF2ZV9jb29yZHMoKSApIHsKCSAgJHJhZCA9ICR0aGlzLT5fZmlsdGVyLT5nZXRfcmFkaXVzX21pbGVzKCk7CgkgICRjb29yZHMgPSAkdGhpcy0+X2ZpbHRlci0+Z2V0X2Nvb3JkcygpOwoKCSAgJHN0ciA9ICcoU0VMRUNUIDM5NTkgKiBhY29zKGNvcyhyYWRpYW5zKCcuJGNvb3Jkc1snbGF0J10uJykpCiAgICAgICAgICAgICAgICAgKiBjb3MocmFkaWFucyhDLmxhdGl0dWRlKSkKICAgICAgICAgICAgICAgICAqIGNvcyhyYWRpYW5zKEMubG9uZ2l0dWRlKSAtIHJhZGlhbnMoJy4kY29vcmRzWydsb25nJ10uJykpCiAgICAgICAgICAgICAgICAgKyBzaW4ocmFkaWFucygnLiRjb29yZHNbJ2xhdCddLicpKQogICAgICAgICAgICAgICAgICogc2luKHJhZGlhbnMoQy5sYXRpdHVkZSkpKSkgQVMgZGlzdGFuY2UnOwoJICAkY29sdW1uc1tdID0gJHN0cjsKCSAgJGhjb2x1bW5zW10gPSAkc3RyOwoJICAkaGF2aW5nW10gPSAnZGlzdGFuY2UgPD0gJy4oaW50KSRyYWQ7Cgl9CgoJaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydwaHJhc2UnXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ3BocmFzZSddICE9ICcnICkgewoJICAkc3RyID0gJyBMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyBGVl9BIE9OIEMuaWQgPSBGVl9BLmNvbXBhbnlfaWQnOwoJICAkcXVlcnkgLj0gJHN0cjsKCSAgJHF1ZXJ5MiAuPSAkc3RyOwoJICAkd2hlcmVbXSA9ICcoTUFUQ0goQy5jb21wYW55X25hbWUsQy5hZGRyZXNzLEMud2Vic2l0ZSxDLmRldGFpbHMpIEFHQUlOU1QgKD8gSU4gQk9PTEVBTiBNT0RFKSBPUiBNQVRDSChGVl9BLnZhbHVlKSBBR0FJTlNUICg/IElOIEJPT0xFQU4gTU9ERSkpJzsKCSAgJHBhcm1zW10gPSB0cmltKCR0aGlzLT5fZmlsdGVyWydwaHJhc2UnXSk7CgkgICRwYXJtc1tdID0gdHJpbSgkdGhpcy0+X2ZpbHRlclsncGhyYXNlJ10pOwoJfQoKICAgIGlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnbmFtZSddKSAmJiAkdGhpcy0+X2ZpbHRlclsnbmFtZSddICE9ICcnKSB7CgkgICRzdHIgPSAkdGhpcy0+X2ZpbHRlclsnbmFtZSddOwoJICBpZiggc3RycG9zKCRzdHIsJyonKSAhPT0gRkFMU0UgKSB7CgkJJHN0ciA9IHRyaW0oc3RyX3JlcGxhY2UoJyonLCclJywkc3RyKSk7CgkJJHdoZXJlW10gPSAnQy5jb21wYW55X25hbWUgTElLRSA/JzsKCSAgfQoJICBlbHNlIGlmKCBzdGFydHN3aXRoKCRzdHIsJzo6JykgKSB7CgkJJHN0ciA9IHN1YnN0cigkc3RyLDIpOwoJCSR3aGVyZVtdID0gJ0MuY29tcGFueV9uYW1lIFJFR0VYUCA/JzsKCSAgfQoJICBlbHNlIHsKCQkvLyBlcnJvciBoZXJlPwoJCSRzdHIgPSBzdWJzdHIoJHN0ciwyKTsKCQkkd2hlcmVbXSA9ICdDLmNvbXBhbnlfbmFtZSBSRUdFWFAgPyc7CgkgIH0KCSAgJHBhcm1zW10gPSAkc3RyOwoJfQoKICAgIGlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnYWRkcmVzcyddKSAmJiAkdGhpcy0+X2ZpbHRlclsnYWRkcmVzcyddICE9ICcnKSB7CgkgICRzdHIgPSAkdGhpcy0+X2ZpbHRlclsnYWRkcmVzcyddOwoJICAkc3RyID0gc3RyX3JlcGxhY2UoJyonLCclJywkc3RyKTsKCSAgJHdoZXJlW10gPSAnQy5hZGRyZXNzIExJS0UgPyc7CgkgICRwYXJtc1tdID0gJHN0cjsKCX0KCiAgICBpZiggaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ2FkZHJlc3MyJ10pICYmICR0aGlzLT5fZmlsdGVyWydhZGRyZXNzMiddICE9ICcnKSB7CgkgICRzdHIgPSAkdGhpcy0+X2ZpbHRlclsnYWRkcmVzczInXTsKCSAgJHN0ciA9IHN0cl9yZXBsYWNlKCcqJywnJScsJHN0cik7CgkgICR3aGVyZVtdID0gJ0MuYWRkcmVzcyBMSUtFID8nOwoJICAkcGFybXNbXSA9ICRzdHI7Cgl9CgogICAgJHNvcnRfZmxkID0gJHRoaXMtPl9maWx0ZXItPmdldF9zb3J0X2ZsZCgpOwogICAgaWYoIGlzX2FycmF5KCRzb3J0X2ZsZCkgKSB7CgkgIC8vIHNvcnQgYnkgY3VzdG9tIGZpZWxkLgoJICAkc3RyID0gJyBMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyBGVkEgT04gQy5pZCA9IEZWQS5jb21wYW55X2lkIEFORCBGVkEuZmllbGRkZWZfaWQgPSAnLiRkYi0+cXN0cigkc29ydF9mbGRbJ2lkJ10pOwoJICAkcXVlcnkgLj0gJHN0cjsKCSAgJHF1ZXJ5MiAuPSAkc3RyOwoJICAkc29ydGJ5ID0gJ0ZWQS52YWx1ZSc7Cgl9CgogICAgaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydoaWVyJ10pICYmICR0aGlzLT5fZmlsdGVyWydoaWVyJ10gIT0gJycgKSB7CgkgICRoaWVyYXJjaHkgPSAkdGhpcy0+X2ZpbHRlclsnaGllciddOwoJICBpZiggKGlzX251bWVyaWMoJGhpZXJhcmNoeSkgJiYgJGhpZXJhcmNoeSA+IDApICkgewogICAgICAgIC8vIGl0J3MgbnVtZXJpYy4KICAgICAgICAkbGlzdCA9IGFycmF5KCRoaWVyYXJjaHkpOwogICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ25vY2hpbGRyZW4nXSkgJiYgISR0aGlzLT5fZmlsdGVyWydub2NoaWxkcmVuJ10gKSB7CiAgICAgICAgICAkbGlzdCA9IGNkX3V0aWxzOjpleHBhbmRfaGllcmFyY2hpZXMoJGxpc3QpOwogICAgICAgIH0KICAgICAgICBpZiggIWlzX2FycmF5KCRsaXN0KSApICRsaXN0ID0gYXJyYXkoKTsKICAgICAgICAkd2hlcmVbXSA9ICdDLmhpZXJfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGxpc3QpLicpJzsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICAvLyBpdCdzIGEgc3RyaW5nCiAgICAgICAgJGxpc3QgPSBjZF91dGlsczo6Z2V0X2hpZXJhcmNoeV9pZHMoJGhpZXJhcmNoeSk7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2ZpbHRlclsnbm9jaGlsZHJlbiddKSAmJiAkdGhpcy0+X2ZpbHRlclsnbm9jaGlsZHJlbiddICkgewogICAgICAgICAgJGxpc3QgPSBjZF91dGlsczo6ZXhwYW5kX2hpZXJhcmNoaWVzKCRsaXN0KTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc19hcnJheSgkbGlzdCkgKSAkbGlzdCA9IGFycmF5KCRsaXN0KTsKICAgICAgICAkd2hlcmVbXSA9ICdDLmhpZXJfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGxpc3QpLicpJzsKICAgICAgfQoJfQoKCWlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnYWN0aXZpdHlpZCddKSAmJiAkdGhpcy0+X2ZpbHRlclsnYWN0aXZpdHlpZCddID4gMCApIHsKCSAgJGNnc29jID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR1NPQ0lBTEFQUCk7CgkgIGlmKCBpc19vYmplY3QoJGNnc29jKSApIHsKCQkkc3RyID0gJyBMRUZUIEpPSU4gJy5DR1NPQ0lBTF9UQUJMRV9DSEVDS0lOUy4nIGNnYyBPTiBDLmlkID0gY2djLmxvY2F0aW9uJzsKCQkkcXVlcnkgLj0gJHN0cjsKCQkkcXVlcnkyIC49ICRzdHI7CgkJaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydhY3Rpdml0eWNoaWxkcmVuJ10pICYmICR0aGlzLT5fZmlsdGVyWydhY3Rpdml0eWNoaWxkcmVuJ10gKSB7CgkJICAkdG1wID0gJ1NFTEVDVCBoaWVyYXJjaHkgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FDVElWSVRJRVMuJyBXSEVSRSBpZCA9ID8nOwoJCSAgJHRtcCA9ICRkYi0+R2V0T25lKCR0bXAsYXJyYXkoKGludCkkdGhpcy0+X2ZpbHRlclsnYWN0aXZpdHlpZCddKSk7CgkJICBpZiggJHRtcCApIHsKCQkJJHRtcDIgPSAnU0VMRUNUIGlkIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9BQ1RJVklUSUVTLicgV0hFUkUgaGllcmFyY2h5IExJS0UgPyc7CgkJCSRjb2wgPSAkZGItPkdldENvbCgkdG1wMixhcnJheSgkdG1wLiclJykpOwoJCQlpZiggaXNfYXJyYXkoJGNvbCkgJiYgY291bnQoJGNvbCkgKSAkd2hlcmVbXSA9ICdjZ2MuYWN0aXZpdHkgSU4gKCcuaW1wbG9kZSgnLCcsJGNvbCkuJyknOwoJCSAgfQoJCX0KCQllbHNlIHsKCQkgICR3aGVyZVtdID0gJ2NnYy5hY3Rpdml0eSA9ID8nOwoJCSAgJHBhcm1zW10gPSAoaW50KSR0aGlzLT5fZmlsdGVyWydhY3Rpdml0eWlkJ107CgkJfQoJICB9Cgl9CgogICAgaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeWlkJ10pICYmICR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeWlkJ10gPiAwICkgewogICAgICAkY2F0ZWdvcnlfbGlzdCA9IGFycmF5KCR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeWlkJ10pOwogICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZmlsdGVyWydub2NoaWxkcmVuJ10pICYmICEkdGhpcy0+X2ZpbHRlclsnbm9jaGlsZHJlbiddICkgewogICAgICAgICRjYXRlZ29yeV9saXN0ID0gY2RfdXRpbHM6OmV4cGFuZF9jYXRlZ29yaWVzKCRjYXRlZ29yeV9saXN0KTsKICAgICAgfQoJICAkc3RyID0gJyBJTk5FUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQ0MgT04gQ0MuY29tcGFueV9pZCA9IEMuaWQnOwoJICAkcXVlcnkgLj0gJHN0cjsKCSAgJHF1ZXJ5MiAuPSAkc3RyOwogICAgICBpZiggIWlzX2FycmF5KCRjYXRlZ29yeV9saXN0KSApICRjYXRlZ29yeV9saXN0ID0gYXJyYXkoKTsKCSAgJHdoZXJlW10gPSAnQ0MuY2F0ZWdvcnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGNhdGVnb3J5X2xpc3QpLicpJzsKCX0KICAgIGVsc2UgaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeSddKSAmJiAkdGhpcy0+X2ZpbHRlclsnY2F0ZWdvcnknXSAhPSAnJyApIHsKCSAgLy8gZ2V0IHRoZSBsaXN0IG9mIGNhdGVnb3JpZXMuCgkgICRpZHMgPSBjZF91dGlsczo6Z2V0X2NhdGVnb3J5X2lkcygkdGhpcy0+X2ZpbHRlclsnY2F0ZWdvcnknXSk7CiAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ25vY2hpbGRyZW4nXSkgJiYgISR0aGlzLT5fZmlsdGVyWydub2NoaWxkcmVuJ10gKSB7CiAgICAgICAgJGlkcyA9IGNkX3V0aWxzOjpleHBhbmRfY2F0ZWdvcmllcygkaWRzKTsKICAgICAgfQogICAgICBpZiggIWlzX2FycmF5KCRpZHMpICkgJGlkcyA9IGFycmF5KCk7CiAgICAgICRzdHIgPSAnIElOTkVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBDQyBPTiBDQy5jb21wYW55X2lkID0gQy5pZCBBTkQgQ0MuY2F0ZWdvcnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkcykuJyknOwogICAgICAkcXVlcnkgLj0gJHN0cjsKICAgICAgJHF1ZXJ5MiAuPSAkc3RyOwoKICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeTInXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ2NhdGVnb3J5MiddICE9ICcnICkgewogICAgICAgIC8vIHNwZWNpZnkgYW4gYW5kIG9wZXJhdGlvbiBmb3IgY2F0ZWdvcmllcy4KICAgICAgICAkaWRzMiA9IGNkX3V0aWxzOjpnZXRfY2F0ZWdvcnlfaWRzKCR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeTInXSk7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2ZpbHRlclsnbm9jaGlsZHJlbiddKSAmJiAhJHRoaXMtPl9maWx0ZXJbJ25vY2hpbGRyZW4nXSApIHsKICAgICAgICAgICRpZHMyID0gY2RfdXRpbHM6OmV4cGFuZF9jYXRlZ29yaWVzKCRpZHMyKTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc19hcnJheSgkaWRzMikgKSAkaWRzMiA9IGFycmF5KCk7CiAgICAgICAgJHN0ciA9ICcgSU5ORVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIENDMiBPTiBDQzIuY29tcGFueV9pZCA9IEMuaWQgQU5EIENDMi5jYXRlZ29yeV9pZCBJTiAoJy5pbXBsb2RlKCcsJywkaWRzMikuJyknOwogICAgICAgICRxdWVyeSAuPSAkc3RyOwogICAgICAgICRxdWVyeTIgLj0gJHN0cjsKCiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeTMnXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ2NhdGVnb3J5MyddICE9ICcnICkgewogICAgICAgICAgLy8gYW4gYW5kIG9uIG1vcmUgY2F0ZWdvcmllcwogICAgICAgICAgJGlkczMgPSBjZF91dGlsczo6Z2V0X2NhdGVnb3J5X2lkcygkdGhpcy0+X2ZpbHRlclsnY2F0ZWdvcnkzJ10pOwogICAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2ZpbHRlclsnbm9jaGlsZHJlbiddKSAmJiAhJHRoaXMtPl9maWx0ZXJbJ25vY2hpbGRyZW4nXSApIHsKICAgICAgICAgICAgJGlkczMgPSBjZF91dGlsczo6ZXhwYW5kX2NhdGVnb3JpZXMoJGlkczMpOwogICAgICAgICAgfQogICAgICAgICAgaWYoICFpc19hcnJheSgkaWRzMykgKSAkaWRzMyA9IGFycmF5KCk7CiAgICAgICAgICAkc3RyID0gJyBJTk5FUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQ0MzIE9OIENDMy5jb21wYW55X2lkID0gQy5pZCBBTkQgQ0MzLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRpZHMzKS4nKSc7CiAgICAgICAgICAkcXVlcnkgLj0gJHN0cjsKICAgICAgICAgICRxdWVyeTIgLj0gJHN0cjsKCQl9CgkgIH0KCX0KCgkvLyBvdGhlciBzb3J0aW5ncyB0aGF0IHJlcXVpcmUgYWRkaXRpb25hbCBqb2lucy4KCWlmKCAkc29ydGJ5ID09ICdtb3N0Y2hlY2tpbnMnICkgewoJICAkY2dzb2MgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0NHU09DSUFMQVBQKTsKCSAgaWYoIGlzX29iamVjdCgkY2dzb2MpICkgewogIAkgICAgJHN0ciA9ICcgTEVGVCBKT0lOIChTRUxFQ1QgbG9jYXRpb24sQ09VTlQoaWQpIEFTIGNudCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQ0hFQ0tJTlMuJyBHUk9VUCBCWSBsb2NhdGlvbikgY2djIE9OIEMuaWQgPSBjZ2MubG9jYXRpb24nOwoJCSRxdWVyeSAuPSAkc3RyOwoJCSRxdWVyeTIgLj0gJHN0cjsKCQkkY29sdW1uc1tdID0gJ2NnYy5jbnQgQVMgY2hlY2tpbnMnOwoJCSRzb3J0YnkgPSAnY2djLmNudCc7CgkgIH0KCX0KCWVsc2UgaWYoICRzb3J0YnkgPT0gJ21vc3RmYXZvcml0ZScgfHwgJHNvcnRieSA9PSAnbW9zdGZhdm9yaXRlcycgKSB7CgkgICRjZ3NvYyA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dTT0NJQUxBUFApOwoJICBpZiggaXNfb2JqZWN0KCRjZ3NvYykgKSB7CiAgCSAgICAkc3RyID0gJyBMRUZUIEpPSU4gKFNFTEVDVCBsb2NhdGlvbixDT1VOVChmdWlkKSBBUyBjbnQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0ZBVk9SSVRFUy4nIEdST1VQIEJZIGxvY2F0aW9uKSBjZ2YgT04gQy5pZCA9IGNnZi5sb2NhdGlvbic7CgkJJHNvcnRieSA9ICdjZ2YuY250JzsKCQkkY29sdW1uc1tdID0gJ2NnZi5jbnQgQVMgZmF2b3JpdGVzJzsKCQkkcXVlcnkgLj0gJHN0cjsKCQkkcXVlcnkyIC49ICRzdHI7CgkgIH0KCX0KCgkvLyBmaWVsZCBleHByZXNzaW9ucyBzaG91bGQgZ28gYXMgbGF0ZSBhcyBwb3NzaWJsZS4uLiB0byBhbGxvdyBmb3IgYmV0dGVyIHVzZSBvZiBpbmRleGVzLgoJJGZpZWxkX2V4cHJzID0gJHRoaXMtPl9maWx0ZXItPmdldF9maWVsZF9leHBycygpOwoJaWYoIGlzX2FycmF5KCRmaWVsZF9leHBycykgJiYgY291bnQoJGZpZWxkX2V4cHJzKSApIHsKCSAgJGZpZWxkZGVmcyA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzKFRSVUUsVFJVRSk7CgkgIGlmKCBpc19hcnJheSgkZmllbGRkZWZzKSAmJiBjb3VudCgkZmllbGRkZWZzKSApIHsKCQkkZmllbGRkZWZzYnluYW1lID0gY2dlX2FycmF5Ojp0b19oYXNoKCRmaWVsZGRlZnMsJ25hbWUnKTsKCQkkc2Z4ID0gMTsKCgkJZm9yZWFjaCggJGZpZWxkX2V4cHJzIGFzICRvbmVfZXhwciApIHsKICAgICAgICAgICAgICAgICAgJHRuYW1lID0gJ0ZWJy4kc2Z4OwoKCQkgIC8vIGdldCB0aGUgZmllbGRkZWYgaWQuCgkJICBpZiggIWlzc2V0KCRmaWVsZGRlZnNieW5hbWVbJG9uZV9leHByWydmbGRuYW1lJ11dKSApIHsKCQkJdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCBjdXN0b20gZmllbGQgbmFtZSAnLiRvbmVfZXhwclsnZmxkbmFtZSddLicgc3BlY2lmaWVkIGluIHF1ZXJ5Jyk7CgkJCWNvbnRpbnVlOwoJCSAgfQoKCQkgICRmaWQgPSAoaW50KSRmaWVsZGRlZnNieW5hbWVbJG9uZV9leHByWydmbGRuYW1lJ11dWydpZCddOwoJCSAgJGZ0eXBlID0gJGZpZWxkZGVmc2J5bmFtZVskb25lX2V4cHJbJ2ZsZG5hbWUnXV1bJ3R5cGUnXTsKCgkJICAkZ29vZCA9IEZBTFNFOwoJCSAgaWYoIHN0cnRvdXBwZXIoJG9uZV9leHByWydleHByJ10pID09ICdBVVRPJyAmJiAhaXNfYXJyYXkoJG9uZV9leHByWydmbGR2YWwnXSkpIHsKCQkJc3dpdGNoKCAkZnR5cGUgKSB7CgkJCWNhc2UgJ2FjdGl2aXR5JzoKCQkJY2FzZSAnbXVsdGlzZWxlY3QnOgoJCQljYXNlICdpbWFnZSc6CgkJCWNhc2UgJ2ZpbGUnOgoJCQkgICRvbmVfZXhwclsnZmxkdmFsJ10gPSAnJScuJG9uZV9leHByWydmbGR2YWwnXS4nJSc7CgkJCSAgJG9uZV9leHByWydleHByJ10gPSAnTElLRSc7CgkJCSAgYnJlYWs7CgkJCWRlZmF1bHQ6CgkJCSAgJG9uZV9leHByWydleHByJ10gPSAnZXEnOwoJCQkgIGJyZWFrOwoJCQl9CgkJICB9CgoJCSAgaWYoICRvbmVfZXhwclsndHlwZSddICE9IG51bGwgKSB7CgkJCSRvbmVfZXhwclsndHlwZSddID0gc3RydG91cHBlcigkb25lX2V4cHJbJ3R5cGUnXSk7CgkJCXN3aXRjaCggJG9uZV9leHByWyd0eXBlJ10gKSB7CgkJCWNhc2UgJ0ZMT0FUJzoKICAgICAgICAgICAgY2FzZSAnUkVBTCc6CgkJCWNhc2UgJ0RFQ0lNQUwnOgoJCQkgICRvbmVfZXhwclsndHlwZSddID0gJ0RFQ0lNQUwnOwoJCQkgIGJyZWFrOwoKCQkJY2FzZSAnSU5UJzoKCQkJY2FzZSAnSU5URUdFUic6CgkJCWNhc2UgJ1VOU0lHTkVEJzoKCQkJICAkb25lX2V4cHJbJ3R5cGUnXSA9ICdVTlNJR05FRCc7CgkJCSAgYnJlYWs7CgoJCQljYXNlICdTSUdORUQnOgoJCQkgICRvbmVfZXhwclsndHlwZSddID0gJ1NJR05FRCc7CgkJCSAgYnJlYWs7CgoJCQlkZWZhdWx0OgoJCQkgIC8vIGludmFsaWQgdmFsdWUsIGlnbm9yZSBpdC4KCQkJICAkb25lX2V4cHJbJ3R5cGUnXSA9IG51bGw7CgkJCSAgYnJlYWs7CgkJCX0KCQkgIH0KCgkJICBpZiggaXNfYXJyYXkoJG9uZV9leHByWydmbGR2YWwnXSkgKSB7CgkJCS8vIGFuIGFycmF5Li4uIGhhdmUgdG8gdXNlIExJS0UgYmVjYXVzZSBvZiB0aGUgd2F5IG11bHRpc2VsZWN0cyBhcmUgZW5jb2RlZCBpbiB0aGUgZGF0YWJhc2UuCgkJCSR0bXAgPSBhcnJheSgpOwoJCQlmb3JlYWNoKCAkb25lX2V4cHJbJ2ZsZHZhbCddIGFzICRvbmUgKSB7CgkJCSAgJHRtcFtdID0gJHRuYW1lLicudmFsdWUgTElLRSAnLiRkYi0+cXN0cignJScuJG9uZS4nJScpOwoJCQl9CgkJCSR3aGVyZVtdID0gJygnLmltcGxvZGUoJyBPUiAnLCR0bXApLicpJzsKCQkJJGdvb2QgPSB0cnVlOwoJCSAgfQoJCSAgZWxzZSB7CgkJCXN3aXRjaCggc3RydG91cHBlcigkb25lX2V4cHJbJ2V4cHInXSkgKSB7CgkJCWNhc2UgJ0xJS0UnOgoJCQkgICRnb29kID0gVFJVRTsKCQkJICAkd2hlcmVbXSA9ICR0bmFtZS4nLnZhbHVlIExJS0UgPyc7CgkJCSAgJHBhcm1zW10gPSAnJScuJG9uZV9leHByWydmbGR2YWwnXS4nJSc7CgkJCSAgYnJlYWs7CgkJCWNhc2UgJ1NXJzoKCQkJY2FzZSAnU1RBUlRTV0lUSCc6CgkJCSAgJGdvb2QgPSBUUlVFOwoJCQkgICR3aGVyZVtdID0gJHRuYW1lLicudmFsdWUgTElLRSA/JzsKCQkJICAkcGFybXNbXSA9ICRvbmVfZXhwclsnZmxkdmFsJ10uJyUnOwoJCQkgIGJyZWFrOwoJCQljYXNlICdFVyc6CgkJCWNhc2UgJ0VORFNXSVRIJzoKCQkJICAkZ29vZCA9IFRSVUU7CgkJCSAgJHdoZXJlW10gPSAkdG5hbWUuJy52YWx1ZSBMSUtFID8nOwoJCQkgICRwYXJtc1tdID0gJyUnLiRvbmVfZXhwclsnZmxkdmFsJ107CgkJCSAgYnJlYWs7CgkJCWNhc2UgJzwnOgoJCQljYXNlICdMVCc6CgkJCSAgaWYoICRvbmVfZXhwclsndHlwZSddICkgewoJCQkJJHdoZXJlW10gPSAnQ0FTVCgnLiR0bmFtZS4nLnZhbHVlIEFTICcuJG9uZV9leHByWyd0eXBlJ10uJykgPCA/JzsKCQkJICB9CgkJCSAgZWxzZSB7CgkJCQkkd2hlcmVbXSA9ICR0bmFtZS4nLnZhbHVlIDwgPyc7CgkJCSAgfQoJCQkgICRwYXJtc1tdID0gJG9uZV9leHByWydmbGR2YWwnXTsKCQkJICAkZ29vZCA9IFRSVUU7CgkJCSAgYnJlYWs7CgkJCWNhc2UgJz4nOgoJCQljYXNlICdHVCc6CgkJCSAgaWYoICRvbmVfZXhwclsndHlwZSddICkgewoJCQkJJHdoZXJlW10gPSAnQ0FTVCgnLiR0bmFtZS4nLnZhbHVlIEFTICcuJG9uZV9leHByWyd0eXBlJ10uJykgPiA/JzsKCQkJICB9CgkJCSAgZWxzZSB7CgkJCQkkd2hlcmVbXSA9ICR0bmFtZS4nLnZhbHVlIDwgPyc7CgkJCSAgfQoJCQkgICRwYXJtc1tdID0gJG9uZV9leHByWydmbGR2YWwnXTsKCQkJICAkZ29vZCA9IFRSVUU7CgkJCSAgYnJlYWs7CgkJCWNhc2UgJzw9JzoKCQkJY2FzZSAnTFRFJzoKCQkJY2FzZSAnTEUnOgoJCQkgIGlmKCAkb25lX2V4cHJbJ3R5cGUnXSApIHsKCQkJCSR3aGVyZVtdID0gJ0NBU1QoJy4kdG5hbWUuJy52YWx1ZSBBUyAnLiRvbmVfZXhwclsndHlwZSddLicpIDw9ID8nOwoJCQkgIH0KCQkJICBlbHNlIHsKCQkJCSR3aGVyZVtdID0gJHRuYW1lLicudmFsdWUgPCA/JzsKCQkJICB9CgkJCSAgJHBhcm1zW10gPSAkb25lX2V4cHJbJ2ZsZHZhbCddOwoJCQkgICRnb29kID0gVFJVRTsKCQkJICBicmVhazsKCQkJY2FzZSAnPj0nOgoJCQljYXNlICdHVEUnOgoJCQljYXNlICdHRSc6CgkJCSAgaWYoICRvbmVfZXhwclsndHlwZSddICkgewoJCQkJJHdoZXJlW10gPSAnQ0FTVCgnLiR0bmFtZS4nLnZhbHVlIEFTICcuJG9uZV9leHByWyd0eXBlJ10uJykgPj0gPyc7CgkJCSAgfQoJCQkgIGVsc2UgewoJCQkJJHdoZXJlW10gPSAkdG5hbWUuJy52YWx1ZSA8ID8nOwoJCQkgIH0KCQkJICAkcGFybXNbXSA9ICRvbmVfZXhwclsnZmxkdmFsJ107CgkJCSAgJGdvb2QgPSBUUlVFOwoJCQkgIGJyZWFrOwoJCQljYXNlICc9JzoKCQkJY2FzZSAnRVEnOgoJCQkgIGlmKCAkb25lX2V4cHJbJ3R5cGUnXSApIHsKCQkJCSR3aGVyZVtdID0gJ0NBU1QoJy4kdG5hbWUuJy52YWx1ZSBBUyAnLiRvbmVfZXhwclsndHlwZSddLicpID0gPyc7CgkJCSAgfQoJCQkgIGVsc2UgewoJCQkJJHdoZXJlW10gPSAkdG5hbWUuJy52YWx1ZSA9ID8nOwoJCQkgIH0KCQkJICAkcGFybXNbXSA9ICRvbmVfZXhwclsnZmxkdmFsJ107CgkJCSAgJGdvb2QgPSBUUlVFOwoJCQkgIGJyZWFrOwoJCQljYXNlICchPSc6CgkJCWNhc2UgJ25lJzoKCQkJICBpZiggJG9uZV9leHByWyd0eXBlJ10gKSB7CgkJCQkkd2hlcmVbXSA9ICdDQVNUKCcuJHRuYW1lLicudmFsdWUgQVMgJy4kb25lX2V4cHJbJ3R5cGUnXS4nKSAhPSA/JzsKCQkJICB9CgkJCSAgZWxzZSB7CgkJCQkkd2hlcmVbXSA9ICR0bmFtZS4nLnZhbHVlIDwgPyc7CgkJCSAgfQoJCQkgICRwYXJtc1tdID0gJG9uZV9leHByWydmbGR2YWwnXTsKCQkJICAkZ29vZCA9IFRSVUU7CgkJCSAgYnJlYWs7CgkJCX0KCQkgIH0KCgkJICBpZiggJGdvb2QgKSB7CgkJCSRzdHIgPSAnIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzICcuJHRuYW1lLicgT04gQy5pZCA9ICcuJHRuYW1lLicuY29tcGFueV9pZAogICAgICAgICAgICAgICAgICAgQU5EICcuJHRuYW1lLicuZmllbGRkZWZfaWQgPSAnLiRkYi0+cXN0cigkZmlkKTsKCQkJJHF1ZXJ5IC49ICRzdHI7CgkJCSRxdWVyeTIgLj0gJHN0cjsKCQkgIH0KCQkgICRzZngrKzsKCQl9CgkgIH0KCX0KCgkvLyBidWlsZCB0aGUgcXVlcnkKCSRxdWVyeSA9ICdTRUxFQ1QgRElTVElOQ1QgJy5pbXBsb2RlKCcsJywkY29sdW1ucykuJyAnLiRxdWVyeTsKCSRxMiA9ICdTRUxFQ1QgQ09VTlQoRElTVElOQ1QgQy5pZCkgQVMgY291bnQnOwoJaWYoIGNvdW50KCRoY29sdW1ucykgPiAwICkgJHEyIC49ICcsJy5pbXBsb2RlKCcsJywkaGNvbHVtbnMpOwoJJHF1ZXJ5MiA9ICRxMi4nICcuJHF1ZXJ5MjsKCgkvLyBidWlsZCB0aGUgcG9zdCBmaWx0ZXIgY29uZGl0aW9ucy4KCWlmKCBjb3VudCgkcmVxX3doZXJlKSB8fCBjb3VudCgkd2hlcmUpICkgewoJICAkcXVlcnkgPSAkcXVlcnkgLiAnIFdIRVJFICc7CgkgICRxdWVyeTIgPSAkcXVlcnkyIC4gJyBXSEVSRSAnOwoKCSAgaWYoIGNvdW50KCRyZXFfd2hlcmUpICkgewoJCSRxdWVyeSA9ICRxdWVyeSAuICcoJy5pbXBsb2RlKCcgQU5EICcsJHJlcV93aGVyZSkuJyknOwoJCSRxdWVyeTIgPSAkcXVlcnkyIC4gJygnLiBpbXBsb2RlKCcgQU5EICcsJHJlcV93aGVyZSkuJyknOwoJICB9CgoJICBpZiggY291bnQoJHdoZXJlKSApIHsKCQlpZiggY291bnQoJHJlcV93aGVyZSkgKSB7CgkJICAkcXVlcnkgPSAkcXVlcnkgLiAnIEFORCAnOwoJCSAgJHF1ZXJ5MiA9ICRxdWVyeTIgLiAnIEFORCAnOwoJCX0KCQkkZXhwciA9ICcgQU5EICc7CgkJaWYoICEkdGhpcy0+X2ZpbHRlclsnbWF0Y2hhbGwnXSApICRleHByID0gJyBPUiAnOwoJCSRxdWVyeSA9ICRxdWVyeSAuICcoJy5pbXBsb2RlKCRleHByLCR3aGVyZSkuJyknOwoJCSRxdWVyeTIgPSAkcXVlcnkyIC4gJygnIC4gaW1wbG9kZSgkZXhwciwkd2hlcmUpLicpJzsKCSAgfQoJfQoKCS8vIG5vdyBkbyBoYXZpbmcgc3R1ZmYuLgoJaWYoIGNvdW50KCRoYXZpbmcpICkgewoJICAkcXVlcnkgLj0gJyBIQVZJTkcgJy5pbXBsb2RlKCcgQU5EICcsJGhhdmluZyk7CgkgICRxdWVyeTIgLj0gJyBIQVZJTkcgJy5pbXBsb2RlKCcgQU5EICcsJGhhdmluZyk7Cgl9CgogICAgLy8gbm93IGRvIHNvcnRpbmcgc3R1ZmYuCiAgICAkY2FzdCA9ICcnOwogICAgaWYoIGlzX29iamVjdCgkc29ydF9mbGQpICkgewoJICBsaXN0KCRqdW5rLCRmaWVsZCwkc29ydF90eXBlKSA9IGV4cGxvZGUoJzonLCRzb3J0YnkpOwoJICBpZiggJHNvcnRfdHlwZSA9PSAnaScgKSB7CgkJJGNhc3QgPSAnU0lHTkVEIElOVEVHRVInOwoJICB9CgkgIGVsc2UgaWYoICRzb3J0X3R5cGUgPT0gJ2YnICkgewoJCSRjYXN0ID0gJ0RFQ0lNQUwnOwoJICB9Cgl9CglpZiggc3RhcnRzd2l0aCgkc29ydGJ5LCdmOicpICkgJHNvcnRieSA9ICdjb21wYW55X25hbWUnOwoKICAgIGlmKCAkY2FzdCApIHsKCSAgJHF1ZXJ5IC49ICIgT1JERVIgQlkgQ0FTVCh7JHNvcnRieX0gQVMgeyRjYXN0fSAkc29ydG9yZGVyIjsKCX0KICAgIGVsc2UgewoJICAkc29ydGluZyA9ICIkc29ydGJ5ICRzb3J0b3JkZXIiOwoJICBpZiggJHNvcnRieSAhPSAnY29tcGFueV9uYW1lJyApIHsKCQlpZiggJHRoaXMtPl9maWx0ZXJbJ3NvcnRib29sJ10gKSB7CgkJICAkc29ydGluZyA9ICIkc29ydGJ5IERFU0MsY29tcGFueV9uYW1lIEFTQyI7CgkJfQoJCWVsc2UgewoJCSAgJHNvcnRpbmcgPSAiJHNvcnRieSAkc29ydG9yZGVyLGNvbXBhbnlfbmFtZSBBU0MiOwoJCX0KCSAgfQoJICAkcXVlcnkgLj0gIiBPUkRFUiBCWSAkc29ydGluZyI7Cgl9CgoJJHRtcCA9ICRkYi0+R2V0Um93KCRxdWVyeTIsJHBhcm1zKTsKCWlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSAmJiBpc3NldCgkdG1wWydjb3VudCddKSApICR0aGlzLT5fY291bnQgPSAoaW50KSR0bXBbJ2NvdW50J107CiAgICAkdGhpcy0+X3F1ZXJpZWQgPSBUUlVFOwogICAgaWYoICEkdGhpcy0+X2ZpbHRlclsnb25seWNvdW50J10gKSB7CgkgICRvZmZzZXQgPSAoJHRoaXMtPl9maWx0ZXJbJ3BhZ2UnXS0xKSokdGhpcy0+X2ZpbHRlclsncGFnZWxpbWl0J107CgkgICR0aGlzLT5fcmVzdWx0c2V0ID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksICR0aGlzLT5fZmlsdGVyWydwYWdlbGltaXQnXSwgJG9mZnNldCwgJHBhcm1zKTsKCX0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBSZWNvcmRDb3VudCgpCiAgewogICAgaWYoICEkdGhpcy0+X3F1ZXJpZWQgKSAkdGhpcy0+X3F1ZXJ5KCk7CglpZiggJHRoaXMtPl9yZXN1bHRzZXQgKSByZXR1cm4gJHRoaXMtPl9yZXN1bHRzZXQtPlJlY29yZENvdW50KCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gTW92ZU5leHQoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9xdWVyaWVkICkgJHRoaXMtPl9xdWVyeSgpOwoJaWYoICR0aGlzLT5fcmVzdWx0c2V0ICkgcmV0dXJuICR0aGlzLT5fcmVzdWx0c2V0LT5Nb3ZlTmV4dCgpOwoJcmV0dXJuIEZBTFNFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIE1vdmVGaXJzdCgpCiAgewogICAgaWYoICEkdGhpcy0+X3F1ZXJpZWQgKSAkdGhpcy0+X3F1ZXJ5KCk7CglpZiggJHRoaXMtPl9yZXN1bHRzZXQgKSByZXR1cm4gJHRoaXMtPl9yZXN1bHRzZXQtPk1vdmVGaXJzdCgpOwoJcmV0dXJuIEZBTFNFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIFJld2luZCgpCiAgewoJcmV0dXJuICR0aGlzLT5Nb3ZlRmlyc3QoKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBNb3ZlTGFzdCgpCiAgewogICAgaWYoICEkdGhpcy0+X3F1ZXJpZWQgKSAkdGhpcy0+X3F1ZXJ5KCk7CglpZiggJHRoaXMtPl9yZXN1bHRzZXQgKSByZXR1cm4gJHRoaXMtPl9yZXN1bHRzZXQtPk1vdmVMYXN0KCk7CglyZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gRU9GKCkKICB7CiAgICBpZiggISR0aGlzLT5fcXVlcmllZCApICR0aGlzLT5fcXVlcnkoKTsKCWlmKCAkdGhpcy0+X3Jlc3VsdHNldCApIHJldHVybiAkdGhpcy0+X3Jlc3VsdHNldC0+RU9GKCk7CglyZXR1cm4gVFJVRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBDbG9zZSgpCiAgewogICAgaWYoICEkdGhpcy0+X3F1ZXJpZWQgKSAkdGhpcy0+X3F1ZXJ5KCk7CglpZiggJHRoaXMtPl9yZXN1bHRzZXQgKSByZXR1cm4gJHRoaXMtPl9yZXN1bHRzZXQtPkNsb3NlKCk7CglyZXR1cm4gVFJVRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogIHsKCWlmKCAka2V5ID09ICdFT0YnICkgcmV0dXJuICR0aGlzLT5FT0YoKTsKCWlmKCAka2V5ID09ICdmaWVsZHMnICYmICR0aGlzLT5fcmVzdWx0c2V0ICYmICEkdGhpcy0+X3Jlc3VsdHNldC0+RU9GKCkgKSByZXR1cm4gJHRoaXMtPl9yZXN1bHRzZXQtPmZpZWxkczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdG90YWxfbWF0Y2hlcygpCiAgewogICAgaWYoICEkdGhpcy0+X3F1ZXJpZWQgKSAkdGhpcy0+X3F1ZXJ5KCk7CiAgICByZXR1cm4gJHRoaXMtPl9jb3VudDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLCRkZWVwID0gRkFMU0UsJHN1bW1hcnlwYWdlID0gJycpCiAgewoJc3dpdGNoKCBzZWxmOjokX3Jlc3VsdF9tb2RlICkgewoJY2FzZSBzZWxmOjpSRVNVTFRTX0NEX0NPTVBBTlk6CgkgIHJldHVybiBzZWxmOjpnZXRfY2RfY29tcGFueSgkZGF0YSwkZGVlcCk7CgljYXNlIHNlbGY6OlJFU1VMVFNfU1REQ0xBU1M6CgkgIHJldHVybiBzZWxmOjpnZXRfc3RkY2xhc3NfY29tcGFueSgkZGF0YSwkZGV0YWlscGFnZSwkZGVlcCwkc3VtbWFyeXBhZ2UpOwoJY2FzZSBzZWxmOjpSRVNVTFRTX0FSUkFZOgoJICAkciA9IHNlbGY6OmdldF9hcnJheV9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlKTsKCSAgcmV0dXJuICRyOwoJfQogIH0KCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gJmdldF9jZF9jb21wYW55KCRkYXRhLCRkZWVwID0gRkFMU0UpCiAgewoJcmV0dXJuIGNkX2NvbXBhbnk6OmxvYWRfZnJvbV9kYXRhKCRkYXRhLCRkZWVwKTsKICB9CgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdldF9hcnJheV9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLCRkZWVwID0gRkFMU0UsJHN1bW1hcnlwYWdlID0gJycpCiAgewoJJG9iaiA9IHNlbGY6OmdldF9zdGRjbGFzc19jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLCRkZWVwLCRzdW1tYXJ5cGFnZSk7CgkkbmRhdGEgPSBnZXRfb2JqZWN0X3ZhcnMoJG9iaik7CglyZXR1cm4gJG5kYXRhOwogIH0KCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gJmdldF9zdGRjbGFzc19jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLCRkZWVwID0gRkFMU0UsJHN1bW1hcnlwYWdlID0gJycpCiAgewoJLy8gdG9kbzogaXQnZCBiZSBuaWNlIGlmIHRoaXMgd2FzIGEgY2RfY29tcGFueSAuLi4gc29tZXRpbWVzCgkvLyBidXQgbm90IGZvciB0aGUgZGVmYXVsdCBvciBkZXRhaWwgdmlld3MuCgkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkkY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCWlmKCAkc3VtbWFyeXBhZ2UgPD0gMCApICRzdW1tYXJ5cGFnZSA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCktPkdldERlZmF1bHRDb250ZW50KCk7CgoJJHJvdyA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRkYXRhKTsKCSRpbWFnZWRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy9jb21wYW55ZGlyZWN0b3J5JywnaWQnLiRyb3ctPmlkKTsKCSRpbWFnZXVybCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uIi9jb21wYW55ZGlyZWN0b3J5L2lkeyRyb3ctPmlkfSI7CgkkcGFybXMgPSBhcnJheSgpOwoJJHBhcm1zWydjb21wYW55aWQnXSA9ICRyb3ctPmlkOwoJY2dlX3RtcGRhdGE6OnNldCgnY29tcGFueWRpcl8nLiRyb3ctPmlkLCRkYXRhKTsKCWlmKCAkZGV0YWlscGFnZSA8IDEgKSAkZGV0YWlscGFnZSA9ICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwoJaWYoICRkZXRhaWxwYWdlID4gMCApICRyb3ctPmNhbm9uaWNhbCA9ICRyb3ctPmRldGFpbF91cmwgPSAkY2Rtb2QtPmNyZWF0ZV91cmwoJ2NkXycsJ2RldGFpbHMnLCRkZXRhaWxwYWdlLCRwYXJtcyk7Cgkkcm93LT5waWN0dXJlX3BhdGggPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvY29tcGFueWRpcmVjdG9yeS9pZCcuJHJvdy0+aWQuJy8nLiRyb3ctPnBpY3R1cmVfbG9jYXRpb247Cgkkcm93LT5sb2dvX3BhdGggPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvY29tcGFueWRpcmVjdG9yeS9pZCcuJHJvdy0+aWQuJy8nLiRyb3ctPmxvZ29fbG9jYXRpb247CglpZiggISRkZWVwICkgcmV0dXJuICRyb3c7CgoJJGZpZWxkZGVmcyA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzX2Zvcl9jb21wYW55KCRyb3ctPmlkLEZBTFNFLFRSVUUpOwoJaWYoIGlzX2FycmF5KCRmaWVsZGRlZnMpICYmIGNvdW50KCRmaWVsZGRlZnMpICkgewoJICAkZmRhcnJheSA9IGFycmF5KCk7CgkgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJGZpZCA9PiAkb25lZGVmICkgewoJCWlmKCBpc3NldCgkb25lZGVmLT52YWx1ZSkgJiYgJG9uZWRlZi0+dmFsdWUgKSB7CgkJICAkdmFsdWUgPSAkb25lZGVmLT52YWx1ZTsKCQkgIGlmKCAkb25lZGVmLT50eXBlID09ICdpbWFnZScgKSB7CgkJCSR0bXAgPSBhcnJheSgndGh1bWJfJywncHJldmlld18nLCcnKTsKCQkJZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewoJCQkgICRmbiA9IGNtc19qb2luX3BhdGgoJGltYWdlZGlyLCRvbmUuJHZhbHVlKTsKCQkJICBpZiggZmlsZV9leGlzdHMoJGZuKSApIHsKCQkJCSR4eCA9ICRvbmUuJ3VybCc7CgkJCQkkb25lZGVmLT4keHggPSAkaW1hZ2V1cmwuJy8nLiRvbmUuJHZhbHVlOwoJCQkgIH0KCQkJfQoJCSAgfQoJCSAgZWxzZWlmKCAkb25lZGVmLT50eXBlID09ICdmaWxlJyApIHsKCQkJJGZuID0gY21zX2pvaW5fcGF0aCgkaW1hZ2VkaXIsJHZhbHVlKTsKCQkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSAkb25lZGVmLT5maWxlX3VybCA9ICRpbWFnZXVybC4nLycuJHZhbHVlOwoJCSAgfQoJCSAgZWxzZWlmKCAkb25lZGVmLT50eXBlID09ICdkcm9wZG93bicgKSB7CgkJCWlmKCBpc3NldCgkb25lZGVmLT5vcHRpb25zWyRvbmVkZWYtPnZhbHVlXSkgKSAkb25lZGVmLT5kcm9wZG93bl92YWx1ZSA9ICRvbmVkZWYtPm9wdGlvbnNbJG9uZWRlZi0+dmFsdWVdOwoJCSAgfQoJCSAgZWxzZWlmKCAkb25lZGVmLT50eXBlID09ICdtdWx0aXNlbGVjdCcgKSB7CgkJCSR2YWxzID0gZXhwbG9kZSgnfn4nLCRvbmVkZWYtPnZhbHVlKTsKCQkJaWYoIGlzX2FycmF5KCR2YWxzKSAmJiBjb3VudCgkdmFscykgKSB7CgkJCSAgJHRtcCA9IGFycmF5KCk7CgkJCSAgZm9yZWFjaCggJHZhbHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkb25lZGVmLT5vcHRpb25zWyRvbmVdKSApCSR0bXBbJG9uZV0gPSAkb25lZGVmLT5vcHRpb25zWyRvbmVdOwoJCQkgIH0KCQkJICAkb25lZGVmLT5wcmludGFibGUgPSBpbXBsb2RlKCcsICcsYXJyYXlfdmFsdWVzKCR0bXApKTsKCQkJICAkb25lZGVmLT5zZWxlY3RlZCA9ICR0bXA7CgkJCX0KCQkgIH0KCQkgIGVsc2VpZiggJG9uZWRlZi0+dHlwZSA9PSAnYWxidW0nICkgewoJCQlpZiggaXNzZXQoJG9uZWRlZi0+dmFsdWUpICYmICRvbmVkZWYtPnZhbHVlICkgewoJCQkgICRvbmVkZWYtPnZhbHVlID0gdW5zZXJpYWxpemUoJG9uZWRlZi0+dmFsdWUpOwoJCQkgICRvbmVkZWYtPnBpY3R1cmVfcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uJy9jb21wYW55ZGlyZWN0b3J5L2lkJy4kcm93LT5pZC4nL2FsYnVtXycuJG9uZWRlZi0+aWQuJy8nOwoJCQl9CgkJICB9CgkJICBlbHNlaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2ljb24nICkgewoJCQkkaWNvbnMgPSBjZF91dGlsczo6Z2V0X2ljb25zX2Z1bGwoKTsKCQkJaWYoIGlzX2FycmF5KCRpY29ucykgJiYgaXNzZXQoJGljb25zWyRvbmVkZWYtPnZhbHVlXSkgKSAkb25lZGVmLT51cmwgPSAkaWNvbnNbJG9uZWRlZi0+dmFsdWVdWyd1cmwnXTsKCQkgIH0KCQkgICRmZGFycmF5WyRvbmVkZWYtPm5hbWVdID0gJG9uZWRlZjsKCQl9CgkgIH0KCSAgJHJvdy0+ZmllbGRzID0gJGZkYXJyYXk7Cgl9CgoJLy8gZ2V0IHRoZSBjYXRlZ29yaWVzLgoJJGNhdGVnb3JpZXMgPSAkY2Rtb2QtPkdldENhdGVnb3JpZXNGb3JDb21wYW55KCRyb3ctPmlkKTsKCWlmKCBjb3VudCgkY2F0ZWdvcmllcykgPiAwICkgewoJICAkcmVzID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJGNhdGVnb3JpZXMgYXMgJG9uZWNhdCApIHsKCQlpZiggIWlzc2V0KCRvbmVjYXQtPnZhbHVlKSB8fCAhJG9uZWNhdC0+dmFsdWUgKSBjb250aW51ZTsKCgkJJHBhcm1zID0gYXJyYXkoKTsKCQkkcGFybXNbJ2NhdGVnb3J5aWQnXSA9ICRvbmVjYXQtPmlkOwoJCWlmKCBzZWxmOjokX25vcHJldHR5ICkgJHBhcm1zWydub3ByZXR0eSddID0gMTsKCQkkb25lY2F0LT51cmwgPSAkY2Rtb2QtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCdkZWZhdWx0Jywkc3VtbWFyeXBhZ2UsJHBhcm1zKTsKCQkkcmVzWyRvbmVjYXQtPm5hbWVdID0gJG9uZWNhdDsKCSAgfQoJICBpZiggY291bnQoJHJlcykgKSAkcm93LT5jYXRlZ29yaWVzID0gJHJlczsKCX0KCXJldHVybiAkcm93OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9yZXN1bHRzKCRpZCA9ICdjZF8nLCRzdW1tYXJ5cGFnZSA9ICcnLCRkZXRhaWxwYWdlID0gJycpCiAgewogICAgaWYoICEkdGhpcy0+X3F1ZXJpZWQgKSAkdGhpcy0+X3F1ZXJ5KCk7CiAgICBpZiggaXNfbnVsbCgkdGhpcy0+X3Jlc3VsdHNldCkgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdSZXN1bHQgc2V0IGRvZXMgbm90IGV4aXN0Jyk7CgoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CglpZiggKGludCkkc3VtbWFyeXBhZ2UgPCAxICkgewoJICAkc3VtbWFyeXBhZ2UgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0Q29udGVudCgpOwoJICBpZiggaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ3JldHVybmlkJ10pICkgJHN1bW1hcnlwYWdlID0gKGludCkkdGhpcy0+X2ZpbHRlclsncmV0dXJuaWQnXTsKCX0KCglnbG9iYWwgJENNU19BRE1JTl9QQUdFOwoJaWYoIChpbnQpJGRldGFpbHBhZ2UgPCAxICYmICFpc3NldCgkQ01TX0FETUlOX1BBR0UpICkgewoJICBpZiggJHRoaXMtPl9maWx0ZXJbJ2RldGFpbHBhZ2UnXSA+IDAgKSB7CgkJJGRldGFpbHBhZ2UgPSAoaW50KSR0aGlzLT5fZmlsdGVyWydkZXRhaWxwYWdlJ107CgkgIH0KCSAgZWxzZSB7CgkJJGRldGFpbHBhZ2UgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0Q29udGVudCgpOwoJCSR0bXAgPSAoaW50KSAkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLC0xKTsKCQlpZiggJHRtcCA+IDApICRkZXRhaWxwYWdlID0gJHRtcDsKCSAgfQoJfQoKCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCSRyZXN1bHQgPSBhcnJheSgpOwoJaWYoICEkdGhpcy0+X3Jlc3VsdHNldCApIHsKCSAgYXVkaXQoJycsJ0NvbXBhbnlEaXJlY3RvcnknLCdXQVJOSU5HOiBDRCBRdWVyeSByZXR1cm5lZCBubyByZXN1bHRzJyk7CgkgIHJldHVybiAkcmVzdWx0OwoJfQoKCWlmKCAhJHRoaXMtPl9maWx0ZXJbJ2RlZXAnXSApIHsKCSAgd2hpbGUoICR0aGlzLT5fcmVzdWx0c2V0ICYmICEkdGhpcy0+X3Jlc3VsdHNldC0+RU9GICkgewoJCSRkYXRhID0gJHRoaXMtPl9yZXN1bHRzZXQtPmZpZWxkczsKCQkkcmVzdWx0WyRkYXRhWydpZCddXSA9IHNlbGY6OmdldF9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLEZBTFNFLCRzdW1tYXJ5cGFnZSk7CgkJJHRoaXMtPl9yZXN1bHRzZXQtPk1vdmVOZXh0KCk7CgkgIH0KCX0KCWVsc2UgewoJICAkaWRzID0gYXJyYXkoKTsKCSAgd2hpbGUoICR0aGlzLT5fcmVzdWx0c2V0ICYmICEkdGhpcy0+X3Jlc3VsdHNldC0+RU9GICkgewoJCSRkYXRhID0gJHRoaXMtPl9yZXN1bHRzZXQtPmZpZWxkczsKCQkkaWRzW10gPSAkZGF0YVsnaWQnXTsKCQkkdGhpcy0+X3Jlc3VsdHNldC0+TW92ZU5leHQoKTsKCSAgfQoJICAkdGhpcy0+X3Jlc3VsdHNldC0+TW92ZUZpcnN0KCk7CgoJICBpZiggY291bnQoJGlkcykgKSB7CgkJY2RfdXRpbHM6OnByZWxvYWRGaWVsZERhdGEoJGlkcyk7CgkJJGNkbW9kLT5wcmVsb2FkQ2F0ZWdvcnlEYXRhKCRpZHMpOwoKCQl3aGlsZSggISR0aGlzLT5fcmVzdWx0c2V0LT5FT0YgKSB7CgkJICAkZGF0YSA9ICR0aGlzLT5fcmVzdWx0c2V0LT5maWVsZHM7CgkJICAkcmVzdWx0WyRkYXRhWydpZCddXSA9IHNlbGY6OmdldF9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLFRSVUUsJHN1bW1hcnlwYWdlKTsKCQkgICR0aGlzLT5fcmVzdWx0c2V0LT5Nb3ZlTmV4dCgpOwoJCX0KCSAgfQoJfQoKICAgIHJldHVybiAkcmVzdWx0OwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcmVzdWx0X2NvdW50KCkKICB7CglpZiggISR0aGlzLT5fcXVlcmllZCApICR0aGlzLT5fcXVlcnkoKTsKCWlmKCAhJHRoaXMtPl9yZXN1bHRzZXQgKSByZXR1cm4gMDsKCXJldHVybiAkdGhpcy0+X3Jlc3VsdHNldC0+UmVjb3JkQ291bnQoKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gJmdldF9wYWdpbmF0aW9uKCkKICB7CglpZiggISR0aGlzLT5fcXVlcmllZCApICR0aGlzLT5fcXVlcnkoKTsKCgkkcGFnaW5hdGlvbiA9IG5ldyBjZF9zdW1tYXJ5X3BhZ2luYXRpb24oJHRoaXMtPl9maWx0ZXIsJHRoaXMpOwoJcmV0dXJuICRwYWdpbmF0aW9uOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_company_validator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZF9jb21wYW55X3ZhbGlkYXRvcgp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzKCdjb21wYW55X25hbWUnLCdsb2NhdGlvbicsJ2FkZHJlc3MnLCd0ZWxlcGhvbmUnLCdmYXgnLCdjb250YWN0X2VtYWlsJywnd2Vic2l0ZScsJ2RldGFpbHMnLCdwaWN0dXJlX2xvY2F0aW9uJywKCQkJJ2xvZ29fbG9jYXRpb24nLCdsYXRsb25nJywnaGllcl9pZCcsJ3N0YXR1cycsJ3VybCcpOwogIHByaXZhdGUgJF9jbzsKICBwcml2YXRlICRfcmVxdWlyZWQgPSBhcnJheSgnY29tcGFueV9uYW1lJywnbG9jYXRpb24nKTsKICBwcml2YXRlICRfdmFsaWRhdGVfdXJsID0gVFJVRTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGNkX2NvbXBhbnkmICRjb21wYW55KQogIHsKICAgICR0aGlzLT5fY28gPSAkY29tcGFueTsKICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwogICAgaWYoICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJykgKQogICAgICB7CgkkdGhpcy0+X3JlcXVpcmVkW10gPSAndXJsJzsKICAgICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9yZXF1aXJlZCgka2V5LCRmbGFnID0gVFJVRSkKICB7CiAgICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkKICAgICAgewoJaWYoICRmbGFnICYmICFpbl9hcnJheSgka2V5LCR0aGlzLT5fcmVxdWlyZWQpICkKCSAgJHRoaXMtPl9yZXF1aXJlZFtdID0gJGtleTsKCWVsc2VpZiggISRmbGFnICYmIGluX2FycmF5KCRrZXksJHRoaXMtPl9yZXF1aXJlZCkgKQoJICB7CgkgICAgJGlkeCA9IGFycmF5X3NlYXJjaCgka2V5LCR0aGlzLT5fcmVxdWlyZWQpOwoJICAgIGlmKCAkaWR4ICE9PSBGQUxTRSApCgkgICAgICB7CgkJdW5zZXQoJHRoaXMtPl9yZXF1aXJlZFskaWR4XSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHRlc3RfdmFsaWQoKQogIHsKICAgIGlmKCBpbl9hcnJheSgnY29tcGFueV9uYW1lJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWydjb21wYW55X25hbWUnXSA9PSAnJyApCiAgICAgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdjb21wYW55X25hbWUgaXMgZW1wdHknKTsKCiAgICBpZiggaW5fYXJyYXkoJ2xvY2F0aW9uJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWydhZGRyZXNzJ10gPT0gJycgJiYgKCR0aGlzLT5fY29bJ2xhdGl0dWRlJ10gPT0gJycgfHwgJHRoaXMtPl9jb1snbG9uZ2l0dWRlJ10gPT0gJycpICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ05vIGxvY2F0aW9uIGluZm9ybWF0aW9uIHN1cHBsaWVkLicpOwoKICAgIGlmKCBpbl9hcnJheSgnYWRkcmVzcycsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snYWRkcmVzcyddID09ICcnICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ05vIGFkZHJlc3Mgc3BlY2lmaWVkLicpOwogICAgICAKICAgIGlmKCBpbl9hcnJheSgndGVsZXBob25lJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWyd0ZWxlcGhvbmUnXSA9PSAnJyApCiAgICAgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdObyB0ZWxlcGhvbmUgbnVtYmVyIHNwZWNpZmllZC4nKTsKCiAgICBpZiggaW5fYXJyYXkoJ2ZheCcsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snZmF4J10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gZmF4IG51bWJlciBzcGVjaWZpZWQuJyk7CgogICAgaWYoIGluX2FycmF5KCdjb250YWN0X2VtYWlsJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWydjb250YWN0X2VtYWlsJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gY29udGFjdCBlbWFpbCBzcGVjaWZpZWQuJyk7CgogICAgaWYoIGluX2FycmF5KCd3ZWJzaXRlJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWyd3ZWJzaXRlJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gd2Vic2l0ZSBzcGVjaWZpZWQuJyk7CgogICAgaWYoIGluX2FycmF5KCdkZXRhaWxzJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWydkZXRhaWxzJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gZGV0YWlscyBzcGVjaWZpZWQuJyk7CiAgICAgIAogICAgaWYoIGluX2FycmF5KCdwaWN0dXJlX2xvY2F0aW9uJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWydwaWN0dXJlX2xvY2F0aW9uJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gcGljdHVyZSBzcGVjaWZpZWQuJyk7CgogICAgaWYoIGluX2FycmF5KCdsb2dvX2xvY2F0aW9uJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWydsb2dvX2xvY2F0aW9uJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gbG9nbyBzcGVjaWZpZWQuJyk7CgogICAgaWYoIGluX2FycmF5KCdsYXRsb25nJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAoJHRoaXMtPl9jb1snbGF0aXR1ZGUnXSA9PSAnJyB8fCAkdGhpcy0+X2NvWydsb25naXR1ZGUnXSA9PSAnJykgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTGF0aXR1ZGUgYW5kL29yIExvbmdpdHVkZSBhcmUgaW52YWxpZC4nKTsKCiAgICBpZiggaW5fYXJyYXkoJ2hpZXJfaWQnLCR0aGlzLT5yZXF1aXJlZCkgJiYgKCR0aGlzLT5fY29bJ2hpZXJfaWQnXSA9PSAnJyB8fCAkdGhpcy0+X2NvWydoaWVyX2lkJ10gPCAwKSApCiAgICAgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdIaWVyYXJjaHkgaXMgbm90IHNwZWNpZmllZCcpOwogICAgICAKICAgIGlmKCBpbl9hcnJheSgnc3RhdHVzJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWydzdGF0dXMnXSA9PSAnJyApCiAgICAgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdObyBzdGF0dXMgc3BlY2lmaWVkLicpOwoKICAgIGlmKCBpbl9hcnJheSgndXJsJywkdGhpcy0+X3JlcXVpcmVkKSAmJiAkdGhpcy0+X2NvWyd1cmwnXSA9PSAnJyApCiAgICAgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdObyB1cmwgc3BlY2lmaWVkLicpOwoKICAgIC8vIGNoZWNrIHRoZSB1cmwuCiAgICBpZiggJHRoaXMtPl9jb1sndXJsJ10gJiYgJHRoaXMtPl92YWxpZGF0ZV91cmwgKQogICAgICB7CglpZiggIWNkX3V0aWxzOjp2YWxpZGF0ZV91cmwoJHRoaXMtPl9jb1sndXJsJ10sVFJVRSkgKQoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignVVJMIHNwZWNpZmllZCBpcyBpbnZhbGlkIG9yIGluIHVzZS4nKTsKICAgICAgfQogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_jquery_upload_handler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKLyoKICogalF1ZXJ5IEZpbGUgVXBsb2FkIFBsdWdpbiBQSFAgRXhhbXBsZSA1LjUKICogaHR0cHM6Ly9naXRodWIuY29tL2JsdWVpbXAvalF1ZXJ5LUZpbGUtVXBsb2FkCiAqCiAqIENvcHlyaWdodCAyMDEwLCBTZWJhc3RpYW4gVHNjaGFuCiAqIGh0dHBzOi8vYmx1ZWltcC5uZXQKICoKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOgogKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAogKi8KCmFic3RyYWN0IGNsYXNzIGNkX2pxdWVyeV91cGxvYWRfaGFuZGxlcgp7CiAgICBwcm90ZWN0ZWQgJG9wdGlvbnM7CiAgICAKICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcHRpb25zPW51bGwpIHsKICAgICAgICAkdGhpcy0+b3B0aW9ucyA9IGFycmF5KAogICAgICAgICAgICAnc2NyaXB0X3VybCcgPT4gJHRoaXMtPmdldEZ1bGxVcmwoKS4nLycuYmFzZW5hbWUoX19GSUxFX18pLAogICAgICAgICAgICAndXBsb2FkX2RpcicgPT4gX19ESVJfXy4nL2ZpbGVzLycsCiAgICAgICAgICAgICd1cGxvYWRfdXJsJyA9PiAkdGhpcy0+Z2V0RnVsbFVybCgpLicvZmlsZXMvJywKICAgICAgICAgICAgJ3BhcmFtX25hbWUnID0+ICdmaWxlcycsCiAgICAgICAgICAgIC8vIFRoZSBwaHAuaW5pIHNldHRpbmdzIHVwbG9hZF9tYXhfZmlsZXNpemUgYW5kIHBvc3RfbWF4X3NpemUKICAgICAgICAgICAgLy8gdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGhlIGZvbGxvd2luZyBtYXhfZmlsZV9zaXplIHNldHRpbmc6CiAgICAgICAgICAgICdtYXhfZmlsZV9zaXplJyA9PiBudWxsLAogICAgICAgICAgICAnbWluX2ZpbGVfc2l6ZScgPT4gMSwKICAgICAgICAgICAgJ2FjY2VwdF9maWxlX3R5cGVzJyA9PiAnLy4rJC9pJywKICAgICAgICAgICAgJ21heF9udW1iZXJfb2ZfZmlsZXMnID0+IG51bGwsCiAgICAgICAgICAgIC8vIFNldCB0aGUgZm9sbG93aW5nIG9wdGlvbiB0byBmYWxzZSB0byBlbmFibGUgbm9uLW11bHRpcGFydCB1cGxvYWRzOgogICAgICAgICAgICAnZGlzY2FyZF9hYm9ydGVkX3VwbG9hZHMnID0+IGZhbHNlCiAgICAgICAgKTsKICAgICAgICBpZiAoaXNfYXJyYXkoJG9wdGlvbnMpICYmIGNvdW50KCRvcHRpb25zKSkgewoJICBmb3JlYWNoKCAkb3B0aW9ucyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKCSAgICAkdGhpcy0+b3B0aW9uc1ska2V5XSA9ICR2YWx1ZTsKCSAgfQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBnZXRGdWxsVXJsKCkgewogICAgICAJcmV0dXJuCiAgICAgICAgCQkoaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJ2h0dHBzOi8vJyA6ICdodHRwOi8vJykuCiAgICAgICAgCQkoaXNzZXQoJF9TRVJWRVJbJ1JFTU9URV9VU0VSJ10pID8gJF9TRVJWRVJbJ1JFTU9URV9VU0VSJ10uJ0AnIDogJycpLgogICAgICAgIAkJKGlzc2V0KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgPyAkX1NFUlZFUlsnSFRUUF9IT1NUJ10gOiAoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uCiAgICAgICAgCQkoaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pICYmICRfU0VSVkVSWydTRVJWRVJfUE9SVCddID09PSA0NDMgfHwKICAgICAgICAJCSRfU0VSVkVSWydTRVJWRVJfUE9SVCddID09PSA4MCA/ICcnIDogJzonLiRfU0VSVkVSWydTRVJWRVJfUE9SVCddKSkpLgogICAgICAgIAkJc3Vic3RyKCRfU0VSVkVSWydTQ1JJUFRfTkFNRSddLDAsIHN0cnJwb3MoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10sICcvJykpOwogICAgfQogICAgCiAgICBwcml2YXRlIGZ1bmN0aW9uIGdldF9maWxlX29iamVjdCgkZmlsZV9uYW1lKSB7CiAgICAgICAgJGZpbGVfcGF0aCA9ICR0aGlzLT5vcHRpb25zWyd1cGxvYWRfZGlyJ10uJGZpbGVfbmFtZTsKICAgICAgICBpZiAoaXNfZmlsZSgkZmlsZV9wYXRoKSAmJiAkZmlsZV9uYW1lWzBdICE9PSAnLicpIHsKICAgICAgICAgICAgJGZpbGUgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJGZpbGUtPm5hbWUgPSAkZmlsZV9uYW1lOwogICAgICAgICAgICAkZmlsZS0+c2l6ZSA9IGZpbGVzaXplKCRmaWxlX3BhdGgpOwogICAgICAgICAgICAkZmlsZS0+dXJsID0gJHRoaXMtPm9wdGlvbnNbJ3VwbG9hZF91cmwnXS5yYXd1cmxlbmNvZGUoJGZpbGUtPm5hbWUpOwogICAgICAgICAgICAkZmlsZS0+ZGVsZXRlX3VybCA9ICR0aGlzLT5vcHRpb25zWydzY3JpcHRfdXJsJ10KICAgICAgICAgICAgICAgIC4nP2ZpbGU9Jy5yYXd1cmxlbmNvZGUoJGZpbGUtPm5hbWUpOwogICAgICAgICAgICAkZmlsZS0+ZGVsZXRlX3R5cGUgPSAnREVMRVRFJzsKICAgICAgICAgICAgcmV0dXJuICRmaWxlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgIAogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRfZmlsZV9vYmplY3RzKCkgewogICAgICAgIHJldHVybiBhcnJheV92YWx1ZXMoYXJyYXlfZmlsdGVyKGFycmF5X21hcCgKICAgICAgICAgICAgYXJyYXkoJHRoaXMsICdnZXRfZmlsZV9vYmplY3QnKSwKICAgICAgICAgICAgc2NhbmRpcigkdGhpcy0+b3B0aW9uc1sndXBsb2FkX2RpciddKQogICAgICAgICkpKTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGhhc19lcnJvcigkdXBsb2FkZWRfZmlsZSwgJGZpbGUsICRlcnJvcikgewogICAgICAgIGlmICgkZXJyb3IpIHsKICAgICAgICAgICAgcmV0dXJuICRlcnJvcjsKICAgICAgICB9CiAgICAgICAgaWYgKCFwcmVnX21hdGNoKCR0aGlzLT5vcHRpb25zWydhY2NlcHRfZmlsZV90eXBlcyddLCAkZmlsZS0+bmFtZSkpIHsKCSAgcmV0dXJuICdhY2NlcHRGaWxlVHlwZXMnOwogICAgICAgIH0KICAgICAgICBpZiAoJHVwbG9hZGVkX2ZpbGUgJiYgaXNfdXBsb2FkZWRfZmlsZSgkdXBsb2FkZWRfZmlsZSkpIHsKICAgICAgICAgICAgJGZpbGVfc2l6ZSA9IGZpbGVzaXplKCR1cGxvYWRlZF9maWxlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZmlsZV9zaXplID0gJF9TRVJWRVJbJ0NPTlRFTlRfTEVOR1RIJ107CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1snbWF4X2ZpbGVfc2l6ZSddICYmICgKICAgICAgICAgICAgICAgICRmaWxlX3NpemUgPiAkdGhpcy0+b3B0aW9uc1snbWF4X2ZpbGVfc2l6ZSddIHx8CiAgICAgICAgICAgICAgICAkZmlsZS0+c2l6ZSA+ICR0aGlzLT5vcHRpb25zWydtYXhfZmlsZV9zaXplJ10pCiAgICAgICAgICAgICkgewogICAgICAgICAgICByZXR1cm4gJ21heEZpbGVTaXplJzsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydtaW5fZmlsZV9zaXplJ10gJiYKICAgICAgICAgICAgJGZpbGVfc2l6ZSA8ICR0aGlzLT5vcHRpb25zWydtaW5fZmlsZV9zaXplJ10pIHsKICAgICAgICAgICAgcmV0dXJuICdtaW5GaWxlU2l6ZSc7CiAgICAgICAgfQogICAgICAgIGlmIChpc19pbnQoJHRoaXMtPm9wdGlvbnNbJ21heF9udW1iZXJfb2ZfZmlsZXMnXSkgJiYgKAogICAgICAgICAgICAgICAgY291bnQoJHRoaXMtPmdldF9maWxlX29iamVjdHMoKSkgPj0gJHRoaXMtPm9wdGlvbnNbJ21heF9udW1iZXJfb2ZfZmlsZXMnXSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgIHJldHVybiAnbWF4TnVtYmVyT2ZGaWxlcyc7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkZXJyb3I7CiAgICB9CiAgICAKICAgIHByaXZhdGUgZnVuY3Rpb24gdHJpbV9maWxlX25hbWUoJG5hbWUsICR0eXBlKSB7CiAgICAgICAgLy8gUmVtb3ZlIHBhdGggaW5mb3JtYXRpb24gYW5kIGRvdHMgYXJvdW5kIHRoZSBmaWxlbmFtZSwgdG8gcHJldmVudCB1cGxvYWRpbmcKICAgICAgICAvLyBpbnRvIGRpZmZlcmVudCBkaXJlY3RvcmllcyBvciByZXBsYWNpbmcgaGlkZGVuIHN5c3RlbSBmaWxlcy4KICAgICAgICAvLyBBbHNvIHJlbW92ZSBjb250cm9sIGNoYXJhY3RlcnMgYW5kIHNwYWNlcyAoXHgwMC4uXHgyMCkgYXJvdW5kIHRoZSBmaWxlbmFtZToKICAgICAgICAkZmlsZV9uYW1lID0gdHJpbShiYXNlbmFtZShzdHJpcHNsYXNoZXMoJG5hbWUpKSwgIi5ceDAwLi5ceDIwIik7CiAgICAgICAgLy8gQWRkIG1pc3NpbmcgZmlsZSBleHRlbnNpb24gZm9yIGtub3duIGltYWdlIHR5cGVzOgogICAgICAgIGlmIChzdHJwb3MoJGZpbGVfbmFtZSwgJy4nKSA9PT0gZmFsc2UgJiYKICAgICAgICAgICAgcHJlZ19tYXRjaCgnL15pbWFnZVwvKGdpZnxqcGU/Z3xwbmcpLycsICR0eXBlLCAkbWF0Y2hlcykpIHsKICAgICAgICAgICAgJGZpbGVfbmFtZSAuPSAnLicuJG1hdGNoZXNbMV07CiAgICAgICAgfQogICAgICAgIHJldHVybiAkZmlsZV9uYW1lOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZnRlcl91cGxvYWRlZF9maWxlKCRmaWxlb2JqZWN0KSB7fQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZnRlcl91cGxvYWRlZF9maWxlcygkZmlsZW9iamVjdHNfYXJyYXkpIHt9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBoYW5kbGVfZmlsZV91cGxvYWQoJHVwbG9hZGVkX2ZpbGUsICRuYW1lLCAkc2l6ZSwgJHR5cGUsICRlcnJvcikgewogICAgICAkZmlsZSA9IG5ldyBzdGRDbGFzcygpOwogICAgICAkZmlsZS0+bmFtZSA9ICR0aGlzLT50cmltX2ZpbGVfbmFtZSgkbmFtZSwgJHR5cGUpOwogICAgICAkZmlsZS0+c2l6ZSA9IGludHZhbCgkc2l6ZSk7CiAgICAgICRmaWxlLT50eXBlID0gJHR5cGU7CiAgICAgICRlcnJvciA9ICR0aGlzLT5oYXNfZXJyb3IoJHVwbG9hZGVkX2ZpbGUsICRmaWxlLCAkZXJyb3IpOwogICAgICBpZiAoISRlcnJvciAmJiAkZmlsZS0+bmFtZSkgewoJJGZpbGVfcGF0aCA9ICR0aGlzLT5vcHRpb25zWyd1cGxvYWRfZGlyJ10uJGZpbGUtPm5hbWU7CglAbWtkaXIoJHRoaXMtPm9wdGlvbnNbJ3VwbG9hZF9kaXInXSwwNzc3LFRSVUUpOwoJJHRtcCA9IChpc19maWxlKCRmaWxlX3BhdGgpKT9maWxlc2l6ZSgkZmlsZV9wYXRoKTowOwoJJGFwcGVuZF9maWxlID0gISR0aGlzLT5vcHRpb25zWydkaXNjYXJkX2Fib3J0ZWRfdXBsb2FkcyddICYmCgkgIGlzX2ZpbGUoJGZpbGVfcGF0aCkgJiYgJGZpbGUtPnNpemUgPiBmaWxlc2l6ZSgkZmlsZV9wYXRoKTsKCWNsZWFyc3RhdGNhY2hlKCk7CglpZiAoJHVwbG9hZGVkX2ZpbGUgJiYgaXNfdXBsb2FkZWRfZmlsZSgkdXBsb2FkZWRfZmlsZSkpIHsKCSAgLy8gbXVsdGlwYXJ0L2Zvcm1kYXRhIHVwbG9hZHMgKFBPU1QgbWV0aG9kIHVwbG9hZHMpCgkgIGlmICgkYXBwZW5kX2ZpbGUpIHsKCSAgICBmaWxlX3B1dF9jb250ZW50cygKCQkJICAgICAgJGZpbGVfcGF0aCwKCQkJICAgICAgZm9wZW4oJHVwbG9hZGVkX2ZpbGUsICdyJyksCgkJCSAgICAgIEZJTEVfQVBQRU5ECgkJCSAgICAgICk7CgkgIH0gZWxzZSB7CgkgICAgbW92ZV91cGxvYWRlZF9maWxlKCR1cGxvYWRlZF9maWxlLCAkZmlsZV9wYXRoKTsKCSAgfQoJfSBlbHNlIHsKCSAgLy8gTm9uLW11bHRpcGFydCB1cGxvYWRzIChQVVQgbWV0aG9kIHN1cHBvcnQpCgkgIGZpbGVfcHV0X2NvbnRlbnRzKAoJCQkgICAgJGZpbGVfcGF0aCwKCQkJICAgIGZvcGVuKCdwaHA6Ly9pbnB1dCcsICdyJyksCgkJCSAgICAkYXBwZW5kX2ZpbGUgPyBGSUxFX0FQUEVORCA6IDAKCQkJICAgICk7Cgl9CgkkZmlsZV9zaXplID0gZmlsZXNpemUoJGZpbGVfcGF0aCk7CglpZiAoJGZpbGVfc2l6ZSA9PT0gJGZpbGUtPnNpemUpIHsKCSAgJGZpbGUtPnVybCA9ICR0aGlzLT5vcHRpb25zWyd1cGxvYWRfdXJsJ10ucmF3dXJsZW5jb2RlKCRmaWxlLT5uYW1lKTsKCX0gZWxzZSBpZiAoJHRoaXMtPm9wdGlvbnNbJ2Rpc2NhcmRfYWJvcnRlZF91cGxvYWRzJ10pIHsKCSAgdW5saW5rKCRmaWxlX3BhdGgpOwoJICAkZmlsZS0+ZXJyb3IgPSAnYWJvcnQnOwoJfQoJJGZpbGUtPnNpemUgPSAkZmlsZV9zaXplOwoJJGZpbGUtPmRlbGV0ZV91cmwgPSAkdGhpcy0+b3B0aW9uc1snc2NyaXB0X3VybCddCgkgIC4nP2ZpbGU9Jy5yYXd1cmxlbmNvZGUoJGZpbGUtPm5hbWUpOwoJJGZpbGUtPmRlbGV0ZV90eXBlID0gJ0RFTEVURSc7CiAgICAgIH0gZWxzZSB7CgkkZmlsZS0+ZXJyb3IgPSAkZXJyb3I7CiAgICAgIH0KICAgICAgcmV0dXJuICRmaWxlOwogICAgfQogICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0KCkgewogICAgICAgICRmaWxlX25hbWUgPSBpc3NldCgkX1JFUVVFU1RbJ2ZpbGUnXSkgPwogICAgICAgICAgICBiYXNlbmFtZShzdHJpcHNsYXNoZXMoJF9SRVFVRVNUWydmaWxlJ10pKSA6IG51bGw7CiAgICAgICAgaWYgKCRmaWxlX25hbWUpIHsKICAgICAgICAgICAgJGluZm8gPSAkdGhpcy0+Z2V0X2ZpbGVfb2JqZWN0KCRmaWxlX25hbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRpbmZvID0gJHRoaXMtPmdldF9maWxlX29iamVjdHMoKTsKICAgICAgICB9CiAgICAgICAgaGVhZGVyKCdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsKICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCRpbmZvKTsKICAgIH0KICAgIAogICAgcHVibGljIGZ1bmN0aW9uIHBvc3QoKSB7CiAgICAgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnX21ldGhvZCddKSAmJiAkX1JFUVVFU1RbJ19tZXRob2QnXSA9PT0gJ0RFTEVURScpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5kZWxldGUoKTsKICAgICAgICB9CiAgICAgICAgJHVwbG9hZCA9IGlzc2V0KCRfRklMRVNbJHRoaXMtPm9wdGlvbnNbJ3BhcmFtX25hbWUnXV0pID8KICAgICAgICAgICAgJF9GSUxFU1skdGhpcy0+b3B0aW9uc1sncGFyYW1fbmFtZSddXSA6IG51bGw7CiAgICAgICAgJGluZm8gPSBhcnJheSgpOwogICAgICAgIGlmICgkdXBsb2FkICYmIGlzX2FycmF5KCR1cGxvYWRbJ3RtcF9uYW1lJ10pKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCR1cGxvYWRbJ3RtcF9uYW1lJ10gYXMgJGluZGV4ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5oYW5kbGVfZmlsZV91cGxvYWQoCiAgICAgICAgICAgICAgICAgICAgJHVwbG9hZFsndG1wX25hbWUnXVskaW5kZXhdLAogICAgICAgICAgICAgICAgICAgIGlzc2V0KCRfU0VSVkVSWydIVFRQX1hfRklMRV9OQU1FJ10pID8KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX05BTUUnXSA6ICR1cGxvYWRbJ25hbWUnXVskaW5kZXhdLAogICAgICAgICAgICAgICAgICAgIGlzc2V0KCRfU0VSVkVSWydIVFRQX1hfRklMRV9TSVpFJ10pID8KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX1NJWkUnXSA6ICR1cGxvYWRbJ3NpemUnXVskaW5kZXhdLAogICAgICAgICAgICAgICAgICAgIGlzc2V0KCRfU0VSVkVSWydIVFRQX1hfRklMRV9UWVBFJ10pID8KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX1RZUEUnXSA6ICR1cGxvYWRbJ3R5cGUnXVskaW5kZXhdLAogICAgICAgICAgICAgICAgICAgICR1cGxvYWRbJ2Vycm9yJ11bJGluZGV4XQogICAgICAgICAgICAgICAgKTsKCQkkdGhpcy0+YWZ0ZXJfdXBsb2FkZWRfZmlsZSgkcmVzKTsKCQkkaW5mb1tdID0gJHJlczsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZWlmICgkdXBsb2FkIHx8IGlzc2V0KCRfU0VSVkVSWydIVFRQX1hfRklMRV9OQU1FJ10pKSB7CiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+aGFuZGxlX2ZpbGVfdXBsb2FkKAogICAgICAgICAgICAgICAgaXNzZXQoJHVwbG9hZFsndG1wX25hbWUnXSkgPyAkdXBsb2FkWyd0bXBfbmFtZSddIDogbnVsbCwKICAgICAgICAgICAgICAgIC8vaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX05BTUUnXSkgPyAkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddIDogKGlzc2V0KCR1cGxvYWRbJ25hbWUnXSkgPyBpc3NldCgkdXBsb2FkWyduYW1lJ10pIDogbnVsbCksCiAgICAgICAgICAgICAgICBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddKSA/ICRfU0VSVkVSWydIVFRQX1hfRklMRV9OQU1FJ10gOiAkdXBsb2FkWyduYW1lJ10sCiAgICAgICAgICAgICAgICBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfU0laRSddKSA/ICRfU0VSVkVSWydIVFRQX1hfRklMRV9TSVpFJ10gOiAkdXBsb2FkWydzaXplJ10sCiAgICAgICAgICAgICAgICBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfVFlQRSddKSA/ICRfU0VSVkVSWydIVFRQX1hfRklMRV9UWVBFJ10gOiAkdXBsb2FkWyd0eXBlJ10sCiAgICAgICAgICAgICAgICBpc3NldCgkdXBsb2FkWydlcnJvciddKSA/ICR1cGxvYWRbJ2Vycm9yJ10gOiBudWxsCiAgICAgICAgICAgICk7CgkgICAgJHRoaXMtPmFmdGVyX3VwbG9hZGVkX2ZpbGUoJHJlcyk7CgkgICAgJGluZm9bXSA9ICRyZXM7CiAgICAgICAgfQoKICAgICAgICBoZWFkZXIoJ1Zhcnk6IEFjY2VwdCcpOwogICAgICAgICRqc29uID0ganNvbl9lbmNvZGUoJGluZm8pOwogICAgICAgICRyZWRpcmVjdCA9IGlzc2V0KCRfUkVRVUVTVFsncmVkaXJlY3QnXSkgPwogICAgICAgICAgICBzdHJpcHNsYXNoZXMoJF9SRVFVRVNUWydyZWRpcmVjdCddKSA6IG51bGw7CiAgICAgICAgaWYgKCRyZWRpcmVjdCkgewogICAgICAgICAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnLnNwcmludGYoJHJlZGlyZWN0LCByYXd1cmxlbmNvZGUoJGpzb24pKSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKGlzc2V0KCRfU0VSVkVSWydIVFRQX0FDQ0VQVCddKSAmJgogICAgICAgICAgICAoc3RycG9zKCRfU0VSVkVSWydIVFRQX0FDQ0VQVCddLCAnYXBwbGljYXRpb24vanNvbicpICE9PSBmYWxzZSkpIHsKICAgICAgICAgICAgaGVhZGVyKCdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtdHlwZTogdGV4dC9wbGFpbicpOwogICAgICAgIH0KICAgICAgICBlY2hvICRqc29uOwogICAgfQogICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCkgewogICAgICAgICRmaWxlX25hbWUgPSBpc3NldCgkX1JFUVVFU1RbJ2ZpbGUnXSkgPwogICAgICAgICAgICBiYXNlbmFtZShzdHJpcHNsYXNoZXMoJF9SRVFVRVNUWydmaWxlJ10pKSA6IG51bGw7CiAgICAgICAgJGZpbGVfcGF0aCA9ICR0aGlzLT5vcHRpb25zWyd1cGxvYWRfZGlyJ10uJGZpbGVfbmFtZTsKICAgICAgICAkc3VjY2VzcyA9IGlzX2ZpbGUoJGZpbGVfcGF0aCkgJiYgJGZpbGVfbmFtZVswXSAhPT0gJy4nICYmIHVubGluaygkZmlsZV9wYXRoKTsKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbicpOwogICAgICAgIGVjaG8ganNvbl9lbmNvZGUoJHN1Y2Nlc3MpOwogICAgfQoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_summary_pagination.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZF9zdW1tYXJ5X3BhZ2luYXRpb24KewogIHByaXZhdGUgc3RhdGljICRfa2V5cyA9IGFycmF5KCdwYWdlY291bnQnLCdwYWdlJywncGFnZWxpbWl0Jyk7CiAgcHJpdmF0ZSAkX2lubGluZV9saW5rcyA9IDA7CiAgcHJpdmF0ZSAkX2lkID0gJ2NkXyc7CiAgcHJpdmF0ZSAkX2FjdGlvbiA9ICdkZWZhdWx0JzsKICBwcml2YXRlICRfcmV0dXJuaWQ7CiAgcHJpdmF0ZSAkX2ZpbHRlcjsKICBwcml2YXRlICRfcXVlcnk7CiAgcHJpdmF0ZSAkX25wYWdlczsKICBwcml2YXRlICRfY2I7CiAgcHJpdmF0ZSAkX2V4dHJhcGFybXM7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChjZF9jb21wYW55X2ZpbHRlciAkZmlsdGVyLCBjZF9jb21wYW55X3F1ZXJ5ICRxdWVyeSkKICB7CgkkdGhpcy0+X2lkID0gJGZpbHRlclsnaWQnXTsKCWdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CglpZiggIWlzc2V0KCRDTVNfQURNSU5fUEFHRSkgKSB7CgkgICR0aGlzLT5fcmV0dXJuaWQgPSAoaW50KSRmaWx0ZXJbJ3JldHVybmlkJ107Cgl9CgllbHNlIHsKCSAgJHRoaXMtPl9pZCA9ICdtMV8nOwoJfQogICAgJHRoaXMtPl9maWx0ZXIgICA9ICRmaWx0ZXI7CiAgICAkdGhpcy0+X3F1ZXJ5ICAgID0gJHF1ZXJ5OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9hY3Rpb24oJGFjdGlvbikKICB7CglpZiggJGFjdGlvbiApICR0aGlzLT5fYWN0aW9uID0gJGFjdGlvbjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfZXh0cmFwYXJhbXMoJHBhcmFtcykKICB7CglpZiggIWlzX2FycmF5KCRwYXJhbXMpICkgcmV0dXJuOwoKCWlmKCAhaXNfYXJyYXkoJHRoaXMtPl9leHRyYXBhcm1zKSApICR0aGlzLT5fZXh0cmFwYXJtcyA9IGFycmF5KCk7Cglmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewoJICBpZiggaXNfbnVtZXJpYygka2V5KSApIGNvbnRpbnVlOwoJICBpZiggaXNfb2JqZWN0KCR2YWx1ZSkgfHwgaXNfYXJyYXkoJHZhbHVlKSApIGNvbnRpbnVlOwoJICAkdGhpcy0+X2V4dHJhcGFybXNbJGtleV0gPSAkdmFsdWU7Cgl9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gcmVzZXRfZXh0cmFwYXJhbXMoKQogIHsKCSR0aGlzLT5fZXh0cmFwYXJtcyA9IG51bGw7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2lubGluZV9saW5rcygkZmxhZyA9IFRSVUUpCiAgewoJJHRoaXMtPl9pbmxpbmVfbGlua3MgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcGFnZV9jb3VudCgpCiAgewogICAgaWYoIGlzX251bGwoJHRoaXMtPl9ucGFnZXMpICkgewoJICAkbml0ZW1zID0gJHRoaXMtPl9xdWVyeS0+Z2V0X3RvdGFsX21hdGNoZXMoKTsKCSAgJGxpbWl0ID0gJHRoaXMtPl9maWx0ZXJbJ3BhZ2VsaW1pdCddOwoKCSAgJG5wYWdlcyA9IChpbnQpKCRuaXRlbXMgLyAkbGltaXQpOwoJICBpZiggJG5pdGVtcyAlICRsaW1pdCApICRucGFnZXMrKzsKCgkgICR0aGlzLT5fbnBhZ2VzID0gJG5wYWdlczsKCX0KICAgIHJldHVybiAkdGhpcy0+X25wYWdlczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY3VycmVudF9wYWdlKCkKICB7CiAgICByZXR1cm4gKGludCkoJHRoaXMtPl9maWx0ZXJbJ3BhZ2UnXSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhZ2VsaW1pdCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fZmlsdGVyWydwYWdlbGltaXQnXTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmlyc3RwYWdlX3VybCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5nZXRfcGFnZV91cmwoMSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ByZXZwYWdlX3VybCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5nZXRfcGFnZV91cmwoJHRoaXMtPmdldF9jdXJyZW50X3BhZ2UoKS0xKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmV4dHBhZ2VfdXJsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9wYWdlX3VybCgkdGhpcy0+Z2V0X2N1cnJlbnRfcGFnZSgpKzEpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9sYXN0cGFnZV91cmwoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Z2V0X3BhZ2VfdXJsKCR0aGlzLT5nZXRfcGFnZV9jb3VudCgpKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcGFnZV91cmwoJHBhZ2VudW0pCiAgewogICAgJHBhZ2VudW0gPSAoaW50KSRwYWdlbnVtOwogICAgJHBhZ2VudW0gPSBtYXgoMSwkcGFnZW51bSk7CiAgICAkcGFnZW51bSA9IG1pbigkcGFnZW51bSwkdGhpcy0+Z2V0X3BhZ2VfY291bnQoKSk7CiAgICAkcGFybXMgPSAkdGhpcy0+X2ZpbHRlci0+Z2V0X3BhcmFtcygpOwoJaWYoIGlzX2FycmF5KCR0aGlzLT5fZXh0cmFwYXJtcykgKSAkcGFybXMgPSBhcnJheV9tZXJnZSgkdGhpcy0+X2V4dHJhcGFybXMsJHBhcm1zKTsKICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2VudW07CgkkcGFybXMyID0gYXJyYXkoKTsKCWZvcmVhY2goICRwYXJtcyBhcyAka2V5ID0+ICR2YWwgKSB7CgkgIC8vaWYoICFzdGFydHN3aXRoKCRrZXksJ2NkXycpICkgJGtleSA9ICdjZF8nLiRrZXk7CgkgICRwYXJtczJbJGtleV0gPSAkdmFsOwoJfQogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoJJG1vZC0+bm9wcmV0dHl1cmwgPSAxOwogICAgJHVybCA9ICRtb2QtPmNyZWF0ZV91cmwoJHRoaXMtPl9pZCwkdGhpcy0+X2FjdGlvbiwkdGhpcy0+X3JldHVybmlkLCRwYXJtczIsJHRoaXMtPl9pbmxpbmVfbGlua3MpOwoJJG1vZC0+bm9wcmV0dHl1cmwgPSAwOwogICAgcmV0dXJuICR1cmw7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhZ2VfbGluaygkcGFnZW51bSwkdGV4dCkKICB7CiAgICAkcGFnZW51bSA9IChpbnQpJHBhZ2VudW07CiAgICAkcGFnZW51bSA9IG1heCgxLCRwYWdlbnVtKTsKICAgICRwYWdlbnVtID0gbWluKCRwYWdlbnVtLCR0aGlzLT5nZXRfcGFnZV9jb3VudCgpKTsKICAgICRwYXJtcyA9ICR0aGlzLT5fZmlsdGVyLT5nZXRfcGFyYW1zKCk7CglpZiggaXNfYXJyYXkoJHRoaXMtPl9leHRyYXBhcm1zKSApICRwYXJtcyA9IGFycmF5X21lcmdlKCR0aGlzLT5fZXh0cmFwYXJtcywkcGFybXMpOwogICAgJHBhcm1zWydwYWdlJ10gPSAkcGFnZW51bTsKCSRwYXJtc1snbm9wcmV0dHknXSAgPSAxOwoKCSRwYXJtczIgPSBhcnJheSgpOwoJZm9yZWFjaCggJHBhcm1zIGFzICRrZXkgPT4gJHZhbCApIHsKCSAgLy9pZiggIXN0YXJ0c3dpdGgoJGtleSwnY2RfJykgKSAka2V5ID0gJ2NkXycuJGtleTsKCSAgJHBhcm1zMlska2V5XSA9ICR2YWw7Cgl9CgogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoJJG1vZC0+bm9wcmV0dHl1cmwgPSAxOwoJJGxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCR0aGlzLT5faWQsJHRoaXMtPl9hY3Rpb24sJHRoaXMtPl9yZXR1cm5pZCwkdGV4dCwkcGFybXMyLCcnLGZhbHNlLCR0aGlzLT5faW5saW5lX2xpbmtzKTsKCSRtb2QtPm5vcHJldHR5dXJsID0gMDsKCXJldHVybiAkbGluazsKICB9Cgp9IC8vIHN1bW1hcnkgcGFnaW5hdGlvbgoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_upload_handler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZF91cGxvYWRfaGFuZGxlciBleHRlbmRzIGNnZV91cGxvYWRlcgp7CiAgcHJpdmF0ZSAkX2N1cnJlbnRfdmFsdWU7CiAgcHJpdmF0ZSAkX2hhbmRsZV90aHVtYnMgPSAxOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHByZWZpeCwkZGVzdGRpciA9ICcnKSAKICB7CiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRwcmVmaXgsJGRlc3RkaXIpOwoJCiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfY2dlKCk7CiAgICAkdGhpcy0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkbW9kLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkdXBsb2FkZmlsZXMnKSk7CiAgICAkdGhpcy0+c2V0X2FjY2VwdGVkX2ltYWdldHlwZXMoJG1vZC0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VleHRlbnNpb25zJykpOwogICAgJHRoaXMtPnNldF9wcmV2aWV3KCRtb2QtPkdldFByZWZlcmVuY2UoJ2FsbG93X3Jlc2l6aW5nJywwKSk7CiAgICAkdGhpcy0+c2V0X3ByZXZpZXdfc2l6ZSgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZXNpemVpbWFnZScsMCkpOwogICAgJHRoaXMtPnNldF93YXRlcm1hcmsoJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfd2F0ZXJtYXJraW5nJywwKSk7CiAgICAkdGhpcy0+c2V0X3RodW1ibmFpbCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdhbGxvd190aHVtYm5haWxpbmcnLDApKTsKICAgICR0aGlzLT5zZXRfdGh1bWJuYWlsX3NpemUoJG1vZC0+R2V0UHJlZmVyZW5jZSgndGh1bWJuYWlsc2l6ZScpKTsKICAgICR0aGlzLT5zZXRfZGVsZXRlX29yaWcoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZGVsZXRlX29yaWdfaW1hZ2UnKSk7CiAgICAkdGhpcy0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9hY2NlcHRlZF9maWxldHlwZXMoJGRhdCA9IG51bGwpIAogIHsKICAgIGlmKCBpc19udWxsKCRkYXQpICkgewogICAgICAkY2dleCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFeHRlbnNpb25zJyk7CiAgICAgIHBhcmVudDo6c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkY2dleC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZHVwbG9hZGZpbGVzJykpOwogICAgICByZXR1cm47CiAgICB9CiAgICBwYXJlbnQ6OnNldF9hY2NlcHRlZF9maWxldHlwZXMoJGRhdCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2N1cnJlbnRfdmFsdWUoJG5hbWUgPSBudWxsKQogIHsKCSR0aGlzLT5fY3VycmVudF92YWx1ZSA9ICRuYW1lOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV90aHVtYnMoJGZsYWcgPSBUUlVFKQogIHsKCSR0aGlzLT5faGFuZGxlX3RodW1icyA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV91cGxvYWRzKCkKICB7CglpZiggJHRoaXMtPl9jdXJyZW50X3ZhbHVlICkgewoJICAkdG1wID0gYXJyYXkoKTsKCSAgJHRtcFtdID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+Z2V0X2Rlc3RfZGlyKCksJ3RodW1iXycuJHRoaXMtPl9jdXJyZW50X3ZhbHVlKTsKCSAgJHRtcFtdID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+Z2V0X2Rlc3RfZGlyKCksJ3ByZXZpZXdfJy4kdGhpcy0+X2N1cnJlbnRfdmFsdWUpOwoJICAkdG1wW10gPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5nZXRfZGVzdF9kaXIoKSwkdGhpcy0+X2N1cnJlbnRfdmFsdWUpOwoJICBmb3JlYWNoKCAkdG1wIGFzICRmbiApIHsKCQlpZiggZmlsZV9leGlzdHMoJGZuKSApIHsKCQkgIEB1bmxpbmsoJGZuKTsKCQl9CgkgIH0KCX0KCS8vIHRvZG8sIHJldHVybiBzb21ldGhpbmcuCiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX3VwbG9hZCgkbmFtZSwkZGVzdGZpbGVuYW1lID0gJycsJHN1YmZpZWxkID0gZmFsc2UpCiAgewoJLy8gaWYgdGhlIGZpbGUgaXMgc2V0CgkkcmVzID0gJHRoaXMtPmNoZWNrX3VwbG9hZCgkbmFtZSk7CglpZiggJHJlcyApIHsKCSAgJHRoaXMtPmRlbGV0ZV91cGxvYWRzKCk7CgoJICAvLyBoYW5kbGUgdXBsb2FkLi4uCgkgIHJldHVybiBwYXJlbnQ6OmhhbmRsZV91cGxvYWQoJG5hbWUsJGRlc3RmaWxlbmFtZSwkc3ViZmllbGQpOwoJfQoJcmV0dXJuIGZhbHNlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHJlc2V0KCkKICB7CglwYXJlbnQ6OnJlc2V0X2Vycm9ycygpOwoJJHRoaXMtPl9jdXJyZW50X3ZhbHVlID0gbnVsbDsKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNkX3V0aWxzCnsKICBwcml2YXRlIHN0YXRpYyAkX3JvdXRlc19sb2FkZWQgPSBGQUxTRTsKICBwcml2YXRlIHN0YXRpYyAkX2NhdGVnb3JpZXM7CiAgcHJpdmF0ZSBzdGF0aWMgJF9maWVsZGRlZnM7CiAgcHJpdmF0ZSBzdGF0aWMgJF9maWVsZGluZm9fcHJlbG9hZDsKICBwcml2YXRlIHN0YXRpYyAkX2dlb2xvY2F0b3I7CiAgcHJpdmF0ZSBzdGF0aWMgJF9oaWVyYXJjaHk7CgogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBsb2FkX3JvdXRlcygpCiAgewoJaWYoIHNlbGY6OiRfcm91dGVzX2xvYWRlZCApIHJldHVybjsKCgljbXNfcm91dGVfbWFuYWdlcjo6bG9hZF9yb3V0ZXMoKTsKCXNlbGY6OiRfcm91dGVzX2xvYWRlZCA9IFRSVUU7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb21wYW55X25hbWVfZXhpc3RzKCRuYW1lLCRpZCA9IG51bGwpCiAgewoJJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoJaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ2FsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMnLDEpICkgcmV0dXJuIEZBTFNFOwoKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBjb21wYW55X25hbWUgPSA/JzsKCSRwYXJtcyA9IGFycmF5KCRuYW1lKTsKCWlmKCAkaWQgKSB7CgkgICRxdWVyeSAuPSAnIEFORCBpZCAhPSA/JzsKCSAgJHBhcm1zW10gPSAkaWQ7Cgl9CgkkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCRwYXJtcyk7CglpZiggJHRtcCApIHJldHVybiBUUlVFOwoJcmV0dXJuIEZBTFNFOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZW5lcmF0ZV91cmwoJHRuYW1lKQogIHsKICAgICAgJHR1cmwgPSAnJzsKICAgICAgaWYoICR0bmFtZSA9PSAnJyApIHJldHVybiAkdHVybDsKCiAgICAgICRzdWZmaXggPSAnJzsKICAgICAgJGNvdW50ID0gMTsKICAgICAgc2VsZjo6bG9hZF9yb3V0ZXMoKTsKICAgICAgJHRuYW1lID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdG5hbWUsZmFsc2UsdHJ1ZSk7CiAgICAgIHdoaWxlKCAkdHVybCA9PSAnJyAmJiAkY291bnQgPCAxMDAgKSB7CiAgICAgICAgICAkdG1wID0gc3RydG9sb3dlcigkdG5hbWUpOwogICAgICAgICAgJHRtcCAuPSAkc3VmZml4OwogICAgICAgICAgJHRtcCA9IHRyaW0oJHRtcCwiIC9cdFxyXG5cMFx4MDgiKTsKCiAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhpcyB1cmwgaXNuJ3QgdGFrZW4uCiAgICAgICAgICAkcm91dGUgPSBjbXNfcm91dGVfbWFuYWdlcjo6ZmluZF9tYXRjaCgkdG1wKTsKICAgICAgICAgIGlmKCAkcm91dGUgKSB7CiAgICAgICAgICAgICAgJGNvdW50Kys7CiAgICAgICAgICAgICAgJHN1ZmZpeCA9ICctJy4kY291bnQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAvLyBmb3VuZCBvbmUuCiAgICAgICAgICAgICAgJHR1cmwgPSAkdG1wOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICB9CgogICAgICByZXR1cm4gJHR1cmw7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV91cmwoJHR1cmwsJGNoZWNrX2V4aXN0cyA9IGZhbHNlLCRjb21wYW55X2lkID0gRkFMU0UpCiAgewogICAgICAvLyBjaGVjayB0aGUgcHJvdmlkZWQvZ2VuZXJhdGVkIHVybC4KICAgICAgJHR1cmwgPSB0cmltKCR0dXJsLCIgL1x0XHJcblwwXHgwOCIpOwogICAgICBpZiggZW1wdHkoJHR1cmwpIHx8IHN0YXJ0c3dpdGgoJHR1cmwsJy8nKSB8fCBlbmRzd2l0aCgkdHVybCwnLycpICkgcmV0dXJuIEZBTFNFOwoKICAgICAgLy8gY2hlY2sgZm9yIGludmFsaWQgY2hhcnMuCiAgICAgICR0cmFuc2xhdGVkID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdHVybCxmYWxzZSx0cnVlKTsKICAgICAgaWYoIHN0cnRvbG93ZXIoJHRyYW5zbGF0ZWQpICE9IHN0cnRvbG93ZXIoJHR1cmwpICkgcmV0dXJuIEZBTFNFOwoKICAgICAgaWYoICRjaGVja19leGlzdHMgKSB7CiAgICAgICAgICAkcm91dGUgPSBjbXNfcm91dGVfbWFuYWdlcjo6ZmluZF9tYXRjaCgkdHVybCxUUlVFKTsKICAgICAgICAgIGlmKCBpc19vYmplY3QoJHJvdXRlKSAmJiAkY29tcGFueV9pZCApIHsKICAgICAgICAgICAgICAvLyBmb3VuZCBhIG1hdGNoaW5nIHVybCwganVzdCBnb3R0YSBjb25maXJtIHRoYXQgdGhlIHJvdXRlIGRvZXNuJ3QgbWF0Y2ggdGhpcyBjb21wYW55CiAgICAgICAgICAgICAgJGRlZiA9ICRyb3V0ZS0+Z2V0X2RlZmF1bHRzKCk7CiAgICAgICAgICAgICAgaWYoICRyb3V0ZS0+Z2V0X2Rlc3QoKSAhPSAnQ29tcGFueURpcmVjdG9yeScgfHwgIWlzc2V0KCRkZWZbJ2NvbXBhbnlpZCddKSB8fCAkZGVmWydjb21wYW55aWQnXSAhPSAkY29tcGFueV9pZCApIHJldHVybiBGQUxTRTsKICAgICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBkZWNvZGVfZHJvcGRvd25fZGF0YSgkc3RyKQogIHsKCWlmKCAhaXNfYXJyYXkoJHN0cikgKSB7CgkgICR0bXAgPSBleHBsb2RlKCJcbiIsJHN0cik7Cgl9CgllbHNlIHsKCSAgcmV0dXJuICRzdHI7Cgl9CgoJJHRtcDIgPSBhcnJheSgpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkgIGlmKCBzdHJwb3MoJHRtcFskaV0sJz0nKSA9PT0gRkFMU0UgKSB7CgkJJHRtcDJbdHJpbSgkdG1wWyRpXSldID0gdHJpbSgkdG1wWyRpXSk7CgkgIH0KCSAgZWxzZSB7CgkJbGlzdCgkb2tleSwkb3ZhbHVlKSA9IGV4cGxvZGUoJz0nLCR0bXBbJGldLDIpOwoJCSRva2V5ID0gdHJpbSgkb2tleSk7CgkJJG92YWx1ZSA9IHRyaW0oJG92YWx1ZSk7CgkJaWYoICRva2V5ICYmICEkb3ZhbHVlICkgJG92YWx1ZSA9ICRva2V5OwoJCS8vaWYoICEkb2tleSAmJiAkb3ZhbHVlICkgJG9rZXkgPSAkb3ZhbHVlOwoJCSR0bXAyWyRva2V5XSA9ICRvdmFsdWU7CgkgIH0KCX0KCWFycmF5X2ZsaXAoJHRtcDIpOwoJcmV0dXJuICR0bXAyOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2hpZXJhcmNoeSgkYXNfdHJlZSA9IEZBTFNFLCRwYXJlbnRfaWQgPSAtMSwkZGVwdGggPSAxKQogIHsKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJaWYoICFpc19hcnJheShzZWxmOjokX2hpZXJhcmNoeSkgKSB7CgkgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIE9SREVSIEJZIGhpZXJhcmNoeSc7CgkgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CgkgIHNlbGY6OiRfaGllcmFyY2h5ID0gJHRtcDsKCX0KCglpZiggISRhc190cmVlICkgcmV0dXJuIHNlbGY6OiRfaGllcmFyY2h5OwoJaWYoICFpc19hcnJheShzZWxmOjokX2hpZXJhcmNoeSkgfHwgY291bnQoc2VsZjo6JF9oaWVyYXJjaHkpID09IDAgKSByZXR1cm47CgoJJGRhdGEgPSBhcnJheSgpOwoJJGhpZXIgPSBzZWxmOjokX2hpZXJhcmNoeTsKCSRnZXRfdHJlZSA9IGZ1bmN0aW9uKCRwYXJlbnRfaWQgPSAtMSwkZGVwdGggPSAwKSB1c2UgKCRoaWVyLCYkZGF0YSwmJGdldF90cmVlKSB7CgkgICRvdXQgPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkaGllciBhcyAkb25lICkgewoJCWlmKCAkb25lWydwYXJlbnRfaWQnXSAhPSAkcGFyZW50X2lkICkgY29udGludWU7CgoJCSR0bXAgPSAkZ2V0X3RyZWUoJG9uZVsnaWQnXSwkZGVwdGgrMSk7CgkJaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJCSAgJG9uZVsnY2hpbGRyZW4nXSA9ICR0bXA7CgkJfQoJCSRvbmVbJ2RlcHRoJ10gPSAkZGVwdGg7CgkJJG91dFtdID0gJG9uZTsKCSAgfQoJICByZXR1cm4gJG91dDsKCX07CgkkdHJlZSA9ICRnZXRfdHJlZSgkcGFyZW50X2lkKTsKCXJldHVybiAkdHJlZTsKICB9CgoKICAvKioKICAgKiBUZXN0IGlmIGhpZXJhcmNoeSBpZCBBIGV4aXN0cyBpbiB0aGUgdHJlZSBhbmQgaXMgZXF1YWwgdG8gb3IgYSBjaGlsZCBvZiBpdGVtIEIKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhpZXJhcmNoeV9tYXRjaF9wYXJlbnQoJEEsJEIpCiAgewoJaWYoICRBID09IC0xICkgcmV0dXJuIEZBTFNFOwoJaWYoICRBID09ICRCICkgcmV0dXJuIFRSVUU7CgoJJGxpc3QgPSBzZWxmOjpnZXRfaGllcmFyY2h5KCk7CglpZiggIWlzX2FycmF5KCRsaXN0KSB8fCBjb3VudCgkbGlzdCkgPT0gMCApIHJldHVybiBGQUxTRTsKCgkkY3VyID0gJEE7CgkkbiA9IDA7Cgl3aGlsZSggJGN1ciAhPSAtMSAmJiAkbiA8IDEwMCApIHsKCSAgJG4rKzsKCSAgZm9yZWFjaCggJGxpc3QgYXMgJGl0ZW0gKSB7CgkJaWYoICRpdGVtWydpZCddID09ICRjdXIgKSB7CgkJICAkY3VyID0gJGl0ZW1bJ3BhcmVudF9pZCddOwoJCSAgYnJlYWs7CgkJfQoJICB9CgkgIGlmKCAkY3VyID09ICRCICkgcmV0dXJuIFRSVUU7Cgl9CglyZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jb21wYW55KCRjb21wYW55X2lkLCRkZXRhaWxwYWdlID0gJycsJGRlZXAgPSBGQUxTRSwkYXNfc3RkY2xhc3MgPSBUUlVFLCRzdW1tYXJ5cGFnZSA9IG51bGwpCiAgewoJJGNvbXBhbnlfaWQgPSAoaW50KSRjb21wYW55X2lkOwoJaWYoICRjb21wYW55X2lkIDw9IDAgKSByZXR1cm47CgoJJGRhdGEgPSBudWxsOwoJaWYoIGNnZV90bXBkYXRhOjpleGlzdHMoJ2NvbXBhbnlkaXJfJy4kY29tcGFueV9pZCkgKSB7CgkgICRkYXRhID0gY2dlX3RtcGRhdGE6OmdldCgnY29tcGFueWRpcl8nLiRjb21wYW55X2lkKTsKCX0KCWVsc2UgewoJICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPyc7CgkgICRkYXRhID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRjb21wYW55X2lkKSk7CgkgIGNnZV90bXBkYXRhOjpzZXQoJ2NvbXBhbnlkaXJfJy4kY29tcGFueV9pZCwkZGF0YSk7Cgl9CgoJaWYoIGlzX2FycmF5KCRkYXRhKSAmJiBjb3VudCgkZGF0YSkgKSB7CgkgIGlmKCAhJGFzX3N0ZGNsYXNzICkgY2RfY29tcGFueV9xdWVyeTo6c2V0X3Jlc3VsdF9tb2RlKGNkX2NvbXBhbnlfcXVlcnk6OlJFU1VMVFNfQ0RfQ09NUEFOWSk7CgkgICRvYmogPSBjZF9jb21wYW55X3F1ZXJ5OjpnZXRfY29tcGFueSgkZGF0YSwkZGV0YWlscGFnZSwkZGVlcCwkc3VtbWFyeXBhZ2UpOwoJICBpZiggISRhc19zdGRjbGFzcyApIGNkX2NvbXBhbnlfcXVlcnk6OnNldF9yZXN1bHRfbW9kZShjZF9jb21wYW55X3F1ZXJ5OjpSRVNVTFRTX1NURENMQVNTKTsKCgkgIHJldHVybiAkb2JqOwoJfQogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2hpZXJhcmNoeV9saXN0KCRoaWVyaWQgPSAtMSwkbm9uZSA9IFRSVUUpCiAgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCSRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoKCSRpdGVtcyA9IGFycmF5KCk7CglpZiggJG5vbmUgKSAkaXRlbXNbJygnLiRjZG1vZC0+TGFuZygnbm9uZScpLicpJ10gPSAnLTEnOwoKCSRoaWVyID0gc2VsZjo6Z2V0X2hpZXJhcmNoeSgpOwoJaWYoIGlzX2FycmF5KCRoaWVyKSAmJiBjb3VudCgkaGllcikgPiAwICkgewoJICAkbG9uZ25hbWUgPSBudWxsOwoJICBpZiggJGhpZXJpZCA+IDAgKSB7CgkJLy8gZG9uJ3Qgd2FudCB0aGlzIGl0ZW0sIG9yIGFueSBvZiBpdHMgY2hpbGRyZW4uCgkJZm9yZWFjaCggJGhpZXIgYXMgJG9uZSApIHsKCQkgIGlmKCAkb25lWydpZCddID09ICRoaWVyaWQgKSB7CgkJCSRsb25nbmFtZSA9ICRvbmVbJ2xvbmdfbmFtZSddOwoJCQlicmVhazsKCQkgIH0KCQl9CgkgIH0KCgkgIGZvcmVhY2goICRoaWVyIGFzICRvbmUgKSB7CgkJaWYoICRsb25nbmFtZSAmJiBzdGFydHN3aXRoKCRvbmVbJ2xvbmdfbmFtZSddLCRsb25nbmFtZSkgKSBjb250aW51ZTsKICAgICAgICAkZGVwdGggPSAoaW50KSBjb3VudChleHBsb2RlKCd8Jywkb25lWydsb25nX25hbWUnXSkpIC0gMTsKICAgICAgICAkc3RyID0gc3RyX3JlcGVhdCgnJm5ic3A7Jm5ic3A7JywkZGVwdGgpLiRvbmVbJ25hbWUnXTsKICAgICAgICAkaXRlbXNbJHN0cl0gPSAkb25lWydpZCddOwoJICB9Cgl9CgoJcmV0dXJuICRpdGVtczsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yaWVzKCRhc0hhc2ggPSBGQUxTRSwkYnlOYW1lID0gRkFMU0UpCiAgewoJaWYoICFzZWxmOjokX2NhdGVnb3JpZXMgKSB7CgkgICRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCSAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCgkgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeSBBU0MnOwoJICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICAgaWYoICRkYnJlc3VsdCApIHsKICAgICAgICB3aGlsZSggISRkYnJlc3VsdC0+RU9GICkgewogICAgICAgICAgJG9uZXJvdyA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRkYnJlc3VsdC0+ZmllbGRzKTsKICAgICAgICAgICRlbnRyeWFycmF5W10gPSAkb25lcm93OwogICAgICAgICAgJGRicmVzdWx0LT5Nb3ZlTmV4dCgpOwogICAgICAgIH0KICAgICAgfQoKCSAgc2VsZjo6JF9jYXRlZ29yaWVzID0gJGVudHJ5YXJyYXk7Cgl9CgoJaWYoICRhc0hhc2ggKSB7CgkgICR0bXAgPSBhcnJheSgpOwoJICBmb3JlYWNoKCBzZWxmOjokX2NhdGVnb3JpZXMgYXMgJG9uZSApIHsKCQlpZiggJGJ5TmFtZSApIHsKCQkgICR0bXBbJG9uZS0+bmFtZV0gPSAkb25lOwoJCX0KCQllbHNlIHsKCQkgICR0bXBbJG9uZS0+aWRdID0gJG9uZTsKCQl9CgkgIH0KCSAgcmV0dXJuICR0bXA7Cgl9CgoJcmV0dXJuIHNlbGY6OiRfY2F0ZWdvcmllczsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZXhwYW5kX2NhdGVnb3JpZXMoJGxpc3QpCiAgewogICAgaWYoICFpc19hcnJheSgkbGlzdCkgfHwgY291bnQoJGxpc3QpID09IDAgKSByZXR1cm47CiAgICAkY2F0ZWdvcmllcyA9IHNlbGY6OmdldF9jYXRlZ29yaWVzKCk7CiAgICBpZiggIWlzX2FycmF5KCRjYXRlZ29yaWVzKSB8fCBjb3VudCgkY2F0ZWdvcmllcykgPT0gMCApIHJldHVybjsKCiAgICAkX2ZpbmRfY2hpbGRyZW4gPSBmdW5jdGlvbigkaWQsJGlkeCA9IDApIHVzZSAoJGNhdGVnb3JpZXMsJiRfZmluZF9jaGlsZHJlbikgewogICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgZm9yKCAkaSA9ICRpZHg7ICRpIDwgY291bnQoJGNhdGVnb3JpZXMpOyAkaSsrKSB7CiAgICAgICAgJGNhdCA9ICRjYXRlZ29yaWVzWyRpXTsKICAgICAgICBpZiggJGNhdC0+cGFyZW50X2lkICE9ICRpZCApIGNvbnRpbnVlOwogICAgICAgICRvdXRbXSA9ICRjYXQtPmlkOwogICAgICAgICRjaGlsZHJlbiA9ICRfZmluZF9jaGlsZHJlbigkY2F0LT5pZCwkaSsxKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGNoaWxkcmVuKSAmJiBjb3VudCgkY2hpbGRyZW4pICkgJG91dCA9IGFycmF5X21lcmdlKCRvdXQsJGNoaWxkcmVuKTsKICAgICAgfQoKICAgICAgaWYoIGNvdW50KCRvdXQpICkgcmV0dXJuICRvdXQ7CiAgICB9OwoKICAgICRvdXQgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJGxpc3QgYXMgJGlkICkgewogICAgICAkaWQgPSAoaW50KSRpZDsKICAgICAgaWYoICRpZCA8IDEgKSBjb250aW51ZTsKCiAgICAgICRvdXRbXSA9ICRpZDsKICAgICAgJGNoaWxkcmVuID0gJF9maW5kX2NoaWxkcmVuKCRpZCk7CiAgICAgIGlmKCBpc19hcnJheSgkY2hpbGRyZW4pICYmIGNvdW50KCRjaGlsZHJlbikgKSAkb3V0ID0gYXJyYXlfbWVyZ2UoJG91dCwkY2hpbGRyZW4pOwogICAgfQogICAgaWYoIGNvdW50KCRvdXQpICkgcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9pZHMoJG5hbWVzKQogIHsKCWlmKCAhaXNfYXJyYXkoJG5hbWVzKSApCSRuYW1lcyA9IGV4cGxvZGUoJywnLCRuYW1lcyk7CglpZiggIWlzX2FycmF5KCRuYW1lcykgfHwgY291bnQoJG5hbWVzKSA9PSAwICkgcmV0dXJuOwoKICAgICRjYXRlZ29yaWVzID0gc2VsZjo6Z2V0X2NhdGVnb3JpZXMoKTsKICAgIGlmKCAhaXNfYXJyYXkoJGNhdGVnb3JpZXMpIHx8IGNvdW50KCRjYXRlZ29yaWVzKSA9PSAwICkgcmV0dXJuOwoKICAgICRvdXQgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJG5hbWVzIGFzICRuYW1lICkgewogICAgICAkbmFtZSA9IHRyaW0oJG5hbWUpOwogICAgICBpZiggISRuYW1lICkgY29udGludWU7CiAgICAgIGlmKCBpc19udW1lcmljKCRuYW1lKSAmJiAoaW50KSRuYW1lID09ICRuYW1lICkgewogICAgICAgICRvdXRbXSA9IChpbnQpJG5hbWU7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgLy8gbG9vayBieSBsb25nIG5hbWUuLi4gZmlyc3QgZml4IGl0IHVwIHRvIGNvcnJlY3Qgc2lsbHkgZXJyb3JzLgogICAgICAgICRuYW1lID0gc3RyX3JlcGxhY2UoJ3wnLCcgfCAnLCRuYW1lKTsKICAgICAgICAkbmFtZSA9IHN0cl9yZXBsYWNlKCcgICcsJyAnLCRuYW1lKTsKICAgICAgICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkb25lICkgewogICAgICAgICAgaWYoIGZubWF0Y2goJG5hbWUsJG9uZS0+bG9uZ19uYW1lLEZOTV9DQVNFRk9MRCkgJiYgIWluX2FycmF5KCRvbmUtPmlkLCRvdXQpICkgJG91dFtdID0gJG9uZS0+aWQ7CiAgICAgICAgICBpZiggIXN0cmNhc2VjbXAoJG5hbWUsJG9uZS0+bmFtZSkgJiYgIWluX2FycmF5KCRvbmUtPmlkLCRvdXQpICkgJG91dFtdID0gJG9uZS0+aWQ7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBpZiggY291bnQoJG91dCkgKSByZXR1cm4gJG91dDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZXhwYW5kX2hpZXJhcmNoaWVzKCRsaXN0KQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJGxpc3QpIHx8IGNvdW50KCRsaXN0KSA9PSAwICkgcmV0dXJuOwoJJGhpZXJkYXRhID0gc2VsZjo6Z2V0X2hpZXJhcmNoeSgpOwogICAgaWYoICFpc19hcnJheSgkaGllcmRhdGEpIHx8IGNvdW50KCRoaWVyZGF0YSkgPT0gMCApIHJldHVybjsKCiAgICAkX2ZpbmRfY2hpbGRyZW4gPSBmdW5jdGlvbigkaWQsJGlkeCA9IDApIHVzZSAoJGhpZXJkYXRhLCYkX2ZpbmRfY2hpbGRyZW4pIHsKICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgIGZvciggJGkgPSAkaWR4OyAkaSA8IGNvdW50KCRoaWVyZGF0YSk7ICRpKyspIHsKICAgICAgICAkaGllciA9ICRoaWVyZGF0YVskaV07CiAgICAgICAgaWYoICRoaWVyWydwYXJlbnRfaWQnXSAhPSAkaWQgKSBjb250aW51ZTsKICAgICAgICAkb3V0W10gPSAkaGllclsnaWQnXTsKICAgICAgICAkY2hpbGRyZW4gPSAkX2ZpbmRfY2hpbGRyZW4oJGhpZXJbJ2lkJ10sJGkrMSk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRjaGlsZHJlbikgJiYgY291bnQoJGNoaWxkcmVuKSApICRvdXQgPSBhcnJheV9tZXJnZSgkb3V0LCRjaGlsZHJlbik7CiAgICAgIH0KCiAgICAgIGlmKCBjb3VudCgkb3V0KSApIHJldHVybiAkb3V0OwogICAgfTsKCiAgICAkb3V0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRsaXN0IGFzICRpZCApIHsKICAgICAgJGlkID0gKGludCkkaWQ7CiAgICAgIGlmKCAkaWQgPCAxICkgY29udGludWU7CgogICAgICAkb3V0W10gPSAkaWQ7CiAgICAgICRjaGlsZHJlbiA9ICRfZmluZF9jaGlsZHJlbigkaWQpOwogICAgICBpZiggaXNfYXJyYXkoJGNoaWxkcmVuKSAmJiBjb3VudCgkY2hpbGRyZW4pICkgJG91dCA9IGFycmF5X21lcmdlKCRvdXQsJGNoaWxkcmVuKTsKICAgIH0KICAgIGlmKCBjb3VudCgkb3V0KSApIHJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X2lkcygkbmFtZXMpCiAgewoJaWYoICFpc19hcnJheSgkbmFtZXMpICkJJG5hbWVzID0gZXhwbG9kZSgnLCcsJG5hbWVzKTsKCWlmKCAhaXNfYXJyYXkoJG5hbWVzKSB8fCBjb3VudCgkbmFtZXMpID09IDAgKSByZXR1cm47CgoJJGhpZXJkYXRhID0gc2VsZjo6Z2V0X2hpZXJhcmNoeSgpOwogICAgaWYoICFpc19hcnJheSgkaGllcmRhdGEpIHx8IGNvdW50KCRoaWVyZGF0YSkgPT0gMCApIHJldHVybjsKCiAgICAkb3V0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRuYW1lcyBhcyAkbmFtZSApIHsKICAgICAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAgICAgaWYoICEkbmFtZSApIGNvbnRpbnVlOwogICAgICBpZiggaXNfbnVtZXJpYygkbmFtZSkgJiYgKGludCkkbmFtZSA9PSAkbmFtZSApIHsKICAgICAgICAkb3V0W10gPSAoaW50KSRuYW1lOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIC8vIGdvbm5hIHVzZSB0aGUgbG9uZyBuYW1lCiAgICAgICAgJG5hbWUgPSBzdHJfcmVwbGFjZSgnfCcsJyB8ICcsJG5hbWUpOwogICAgICAgICRuYW1lID0gc3RyX3JlcGxhY2UoJyAgJywnICcsJG5hbWUpOwogICAgICAgIGZvcmVhY2goICRoaWVyZGF0YSBhcyAkb25lICkgewogICAgICAgICAgaWYoIGZubWF0Y2goJG5hbWUsJG9uZVsnbG9uZ19uYW1lJ10sRk5NX0NBU0VGT0xEKSAmJiAhaW5fYXJyYXkoJG9uZVsnaWQnXSwkb3V0KSApICRvdXRbXSA9ICRvbmVbJ2lkJ107CiAgICAgICAgICBpZiggIXN0cmNhc2VjbXAoJG5hbWUsJG9uZVsnbmFtZSddKSAmJiAhaW5fYXJyYXkoJG9uZVsnaWQnXSwkb3V0KSApICRvdXRbXSA9ICRvbmUtPmlkOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgaWYoIGNvdW50KCRvdXQpICkgcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9maWVsZGRlZnNfYnlfaWQoJGFkbWluID0gRkFMU0UsJHB1YmxpYyA9IFRSVUUpCiAgewoJJHRtcCA9IHNlbGY6OmdldF9maWVsZGRlZnMoJGFkbWluLCRwdWJsaWMpOwoJaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJICAkZGF0YSA9IGFycmF5KCk7CgkgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJCSRyb3cgPSAkdG1wWyRpXTsKCQkkZGF0YVskcm93WydpZCddXSA9ICRyb3c7CgkgIH0KCSAgcmV0dXJuICRkYXRhOwoJfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmllbGRkZWZzX2J5X25hbWUoJGFkbWluID0gRkFMU0UsJHB1YmxpYyA9IFRSVUUpCiAgewoJJHRtcCA9IHNlbGY6OmdldF9maWVsZGRlZnMoJGFkbWluLCRwdWJsaWMpOwoJaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJICAkZGF0YSA9IGFycmF5KCk7CgkgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJCSRyb3cgPSAkdG1wWyRpXTsKCQkkZGF0YVskcm93WyduYW1lJ11dID0gJHJvdzsKCSAgfQoJICByZXR1cm4gJGRhdGE7Cgl9CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9maWVsZGRlZnMoJGFkbWluID0gZmFsc2UsJHB1YmxpYyA9IHRydWUsJGFzX29iamVjdCA9IEZBTFNFKQogIHsKCWlmKCAhaXNfYXJyYXkoc2VsZjo6JF9maWVsZGRlZnMpICkgewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgT1JERVIgQlkgaXRlbV9vcmRlcic7CgkJJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCQlpZiggaXNfYXJyYXkoJGRicikgKSB7CgkJICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGJyKTsgJGkrKyApIHsKCQkJc3dpdGNoKCAkZGJyWyRpXVsndHlwZSddICkgewoJCQljYXNlICdkcm9wZG93bic6CgkJCWNhc2UgJ211bHRpc2VsZWN0JzoKCQkJICBpZiggaXNzZXQoJGRiclskaV1bJ2Ryb3Bkb3duX2RhdGEnXSkgJiYgJGRiclskaV1bJ2Ryb3Bkb3duX2RhdGEnXSApIHsKCQkJCSRkYnJbJGldWydvcHRpb25zJ10gPSBjZF91dGlsczo6ZGVjb2RlX2Ryb3Bkb3duX2RhdGEoJGRiclskaV1bJ2Ryb3Bkb3duX2RhdGEnXSk7CgkJCSAgfQoJCQkgIGJyZWFrOwoJCQljYXNlICdpY29uJzoKCQkJICBpZiggc2VsZjo6Y2FuX2dlb2xvY2F0ZSgpICkgJGRiclskaV1bJ29wdGlvbnMnXSA9IHNlbGY6OmdldF9pY29uX2xpc3QoKTsKCQkJICBicmVhazsKCQkJfQoJCSAgfQoJCSAgc2VsZjo6JF9maWVsZGRlZnMgPSAkZGJyOwoJCX0KCX0KCglpZiggJGFkbWluID09IHRydWUgJiYgJHB1YmxpYyA9PSB0cnVlICkgcmV0dXJuIHNlbGY6OiRfZmllbGRkZWZzOyAvLyBhbGwgZmllbGRzLgoKCSRyZXN1bHQgPSBhcnJheSgpOwoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoc2VsZjo6JF9maWVsZGRlZnMpOyAkaSsrICkgewoJICAkcm93ID0gc2VsZjo6JF9maWVsZGRlZnNbJGldOwoJICBpZiggJHB1YmxpYyA9PSBUUlVFICYmICRyb3dbJ3B1YmxpYyddID4gMCApIHsKCQkvLyBwdWJsaWNseSB2aWV3YWJsZQoJCSRyZXN1bHRbXSA9ICRyb3c7CgkgIH0KCSAgZWxzZSBpZiggJGFkbWluID09IFRSVUUgJiYgJHJvd1snYWRtaW5fb25seSddID4gMCApIHsKCQkvLyBvbmx5IGFuIGFkbWluaXN0cmF0b3IgKG5vdCBvd25lciBjYW4gbW9kaWZ5IHRoZXNlIGZpZWxkcykKCQkkcmVzdWx0W10gPSAkcm93OwoJICB9CgkgIGVsc2UgaWYoICRwdWJsaWMgPT0gRkFMU0UgJiYgJHJvd1sncHVibGljJ10gPD0gMCAmJiAkYWRtaW4gPT0gRkFMU0UgJiYgJHJvd1snYWRtaW5fb25seSddIDw9IDAgKSB7CgkJLy8gYWRtaW5pc3RyYXRvciBvciBvd25lciBjYW4gbW9kaWZ5IHRoZXNlIGZpZWxkcywgYnV0IG5vdCBwdWJsaWNseSB2aWV3YWJsZQoJCSRyZXN1bHRbXSA9ICRyb3c7CgkgIH0KCX0KCXJldHVybiAkcmVzdWx0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmllbGRkZWZzX2Zvcl9jb21wYW55KCRpZCwkYWRtaW4gPSBmYWxzZSwkcHVibGljID0gdHJ1ZSkKICB7CgkkZmllbGRkZWZzID0gc2VsZjo6Z2V0X2ZpZWxkZGVmcygkYWRtaW4sJHB1YmxpYyk7CglpZiggY291bnQoJGZpZWxkZGVmcykgPT0gMCApIHJldHVybjsKCXNlbGY6OnByZWxvYWRGaWVsZERhdGEoJGlkKTsKCWlmKCAhaXNzZXQoc2VsZjo6JF9maWVsZGluZm9fcHJlbG9hZFskaWRdKSApIHJldHVybjsKCgkkdG1wID0gc2VsZjo6JF9maWVsZGluZm9fcHJlbG9hZFskaWRdOwoJJG91dCA9IGFycmF5KCk7CgoJLy8gZG8gYSBjcm9zcyByZWZlcmVuY2UuLi4gb25seSByZXR1cm4gdGhlIGZpZWxkZGVmcyB0aGF0IG1hdGNoIHRoZSBjcml0ZXJpYS4KCSR0bXAyID0gYXJyYXlfa2V5cygkdG1wKTsKCWZvcmVhY2goICRmaWVsZGRlZnMgYXMgJGsxID0+ICRyZWMxICkgewoJICBpZiggaW5fYXJyYXkoJHJlYzFbJ2lkJ10sJHRtcDIpICkgJG91dFskcmVjMVsnaWQnXV0gPSAkdG1wWyRyZWMxWydpZCddXTsKCX0KCXJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwcmVsb2FkRmllbGREYXRhKCRpZHMpCiAgewoJaWYoICFpc19hcnJheSgkaWRzKSAmJiBpc19udW1lcmljKCRpZHMpICkgJGlkcyA9IGFycmF5KCRpZHMpOwoJJHRtcCA9IGFycmF5KCk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkaWRzKTsgJGkrKyApIHsKCSAgJG4gPSAoaW50KSRpZHNbJGldOwoJICBpZiggJG4gPCAwICkgY29udGludWU7CgkgIGlmKCBpc19hcnJheShzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkKSAmJiBpc3NldChzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkWyRuXSkgKSBjb250aW51ZTsKCSAgJHRtcFtdID0gJG47Cgl9CglpZiggIWlzX2FycmF5KCR0bXApIHx8ICFjb3VudCgkdG1wKSApIHJldHVybjsKCXNvcnQoJHRtcCk7CgkkaWRsaXN0ID0gYXJyYXlfdW5pcXVlKCR0bXApOwoKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkkcXVlcnkgPSAnU0VMRUNUIGZ2LiogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIGZ2IFdIRVJFIGZ2LmNvbXBhbnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkbGlzdCkuJykgT1JERVIgQlkgZnYuY29tcGFueV9pZCxmdi5maWVsZGRlZl9pZCc7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CglpZiggISRkYnIgKSByZXR1cm47CgoJaWYoICFpc19hcnJheShzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkKSApIHNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWQgPSBhcnJheSgpOwoJJGZpZWxkZGVmcyA9IHNlbGY6OmdldF9maWVsZGRlZnModHJ1ZSx0cnVlKTsKCgkvLyBpbml0aWFsaXphdGlvbgoJZm9yZWFjaCggJGlkbGlzdCBhcyAkY29tcGlkICkgewoJICBpZiggaXNzZXQoc2VsZjo6JF9maWVsZGluZm9fcHJlbG9hZFskY29tcGlkXSkgKSBjb250aW51ZTsKCgkgIHNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWRbJGNvbXBpZF0gPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmaWVsZCApIHsKCQkkb25lID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJGZpZWxkKTsKCQkkb25lLT5maWVsZGRlZl9pZCA9ICRmaWVsZFsnaWQnXTsKCQlzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkWyRjb21waWRdWyRmaWVsZFsnaWQnXV0gPSAkb25lOwoJICB9Cgl9CgoJLy8gZmlsbCB3aXRoIHZhbHVlcy4KCXdoaWxlKCAhJGRici0+RU9GICkgewoJICAkY29tcGlkID0gJGRici0+ZmllbGRzWydjb21wYW55X2lkJ107CgkgICRmbGRkZWZpZCA9ICRkYnItPmZpZWxkc1snZmllbGRkZWZfaWQnXTsKCSAgJHZhbHVlID0gJGRici0+ZmllbGRzWyd2YWx1ZSddOwoKCSAgaWYoIHNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWRbJGNvbXBpZF1bJGZsZGRlZmlkXS0+dHlwZSA9PSAnbXVsdGlzZWxlY3QnICkgewoJCXNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWRbJGNvbXBpZF1bJGZsZGRlZmlkXS0+c2VsZWN0ZWQgPSBleHBsb2RlKCd+ficsJHZhbHVlKTsKCSAgfQoJICBzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkWyRjb21waWRdWyRmbGRkZWZpZF0tPnZhbHVlID0gJHZhbHVlOwoJICAkZGJyLT5Nb3ZlTmV4dCgpOwoJfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzbWFydHlfZ2V0Y2F0ZWdvcnkoJHBhcmFtcywkc21hcnR5KQogIHsKICAgICAgJG91dCA9IG51bGw7CgogICAgICBpZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkgKSB7CiAgICAgICAgICAkdmFsID0gKGludCkgdHJpbShjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdjYXRlZ29yeScpKTsKICAgICAgICAgIGlmKCAkdmFsID4gMCApIHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAkb3V0ID0gY2RfY2F0ZWdvcnk6OmxvYWQoJHZhbCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nCiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICB9CgogICAgICBpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewogICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRvdXQpOwogICAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzbWFydHlfc2VsY2F0ZWdvcnkoJHBhcmFtcywkc21hcnR5KQogIHsKICAgICAgJHByZWZpeCA9ICcnOwogICAgICAkaWQgPSAnJzsKICAgICAgJG5hbWUgPSAnY2Rfc2VsY2F0ZWdvcnknOwogICAgICAkY2xhc3MgPSAnY2Rfc2VsY2F0ZWdvcnknOwogICAgICAkbXVsdGlwbGUgPSAnJzsKICAgICAgJHNpemUgPSAnJzsKICAgICAgJHNlbGVjdGVkID0gYXJyYXkoKTsKCiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydwcmVmaXgnXSkgKSAkcHJlZml4ID0gdHJpbSgkcGFyYW1zWydwcmVmaXgnXSk7CiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydpZCddKSApICRpZCA9IHRyaW0oJHBhcmFtc1snaWQnXSk7CiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWyduYW1lJ10pICkgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydzZWxlY3RlZCddKSApIHsKICAgICAgICAgICRkYXQgPSAkcGFyYW1zWydzZWxlY3RlZCddOwogICAgICAgICAgaWYoICFpc19hcnJheSgkZGF0KSApICRkYXQgPSBleHBsb2RlKCcsJywkZGF0KTsKICAgICAgICAgICRkYXQyID0gYXJyYXkoKTsKICAgICAgICAgIGZvcmVhY2goICRkYXQgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAkb25lID0gKGludCkkb25lOwogICAgICAgICAgICAgIGlmKCAkb25lID4gMCApICRkYXQyW10gPSAkb25lOwogICAgICAgICAgfQogICAgICAgICAgJHNlbGVjdGVkID0gJGRhdDI7CiAgICAgIH0KICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NsYXNzJ10pICkgJGNsYXNzIC49ICcgJy50cmltKCRwYXJhbXNbJ2NsYXNzJ10pOwogICAgICBpZiggaXNzZXQoJHBhcmFtc1snbXVsdGlwbGUnXSkgKSB7CiAgICAgICAgICAkbXVsdGlwbGUgPSAnbXVsdGlwbGUnOwogICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NpemUnXSkgKSB7CiAgICAgICAgICAgICAgJHNpemUgPSAoaW50KXRyaW0oJHBhcmFtc1snc2l6ZSddKTsKICAgICAgICAgICAgICBpZiggJHNpemUgPD0gMCApICRzaXplID0gJyc7CiAgICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIGdldCB0aGUgY2F0ZWdvcmllcy4KICAgICAgJGNhdHMgPSBzZWxmOjpnZXRfY2F0ZWdvcmllcyhUUlVFKTsKICAgICAgaWYoICFpc19hcnJheSgkY2F0cykgfHwgY291bnQoJGNhdHMpID09IDAgKSByZXR1cm47CgogICAgICAvLyBhZGp1c3RtZW50cwogICAgICBpZiggJHNpemUgIT0gJycgKSAkc2l6ZSA9IG1pbigkc2l6ZSxjb3VudCgkY2F0cykpOwoKICAgICAgJG91dG5hbWUgPSAkcHJlZml4LiRuYW1lOwogICAgICBpZiggJG11bHRpcGxlICE9ICcnICkgJG91dG5hbWUgLj0gJ1tdJzsKCiAgICAgIC8vIGJ1aWxkIHRoZSBvdXRwdXQuCiAgICAgICRvdXQgPSAnPHNlbGVjdCBuYW1lPSInLiRvdXRuYW1lLiciJzsKICAgICAgaWYoICRjbGFzcyApICRvdXQgLj0gJyBjbGFzcz0iJy4kY2xhc3MuJyInOwogICAgICBpZiggJGlkICkgJG91dCAuPSAnIGlkPSInLiRpZC4nIic7CiAgICAgIGlmKCAkbXVsdGlwbGUgIT0gJycgKSB7CiAgICAgICAgICAkb3V0IC49ICcgbXVsdGlwbGU9Im11bHRpcGxlIic7CiAgICAgICAgICBpZiggJHNpemUgKSAkb3V0IC49ICcgc2l6ZT0iJy4kc2l6ZS4nIic7CiAgICAgIH0KICAgICAgJG91dCAuPSAnPic7CiAgICAgIGZvcmVhY2goICRjYXRzIGFzICRpZCA9PiAkcmVjICkgewogICAgICAgICAgJGRlcHRoID0gbWF4KDAsY291bnQoaW1wbG9kZSgnLicsJHJlYy0+aGllcmFyY2h5KSktMSk7CiAgICAgICAgICAkb3V0IC49ICc8b3B0aW9uIHZhbHVlPSInLiRpZC4nIic7CiAgICAgICAgICBpZiggaW5fYXJyYXkoJGlkLCRzZWxlY3RlZCkgKSAkb3V0IC49ICcgc2VsZWN0ZWQ9InNlbGVjdGVkIic7CiAgICAgICAgICAkb3V0IC49ICc+Jy5zdHJfcmVwZWF0KCcmbmJzcDsmbmJzcDsnLCRkZXB0aCkuJHJlYy0+bmFtZS4nPC9vcHRpb24+JzsKICAgICAgfQogICAgICAkb3V0IC49ICc8L3NlbGVjdD4nOwoKICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApIHsKICAgICAgICAgICRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkb3V0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgfQogICAgICByZXR1cm4gJG91dDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc21hcnR5X3NlbGhpZXJhcmNoeSgkcGFyYW1zLCRzbWFydHkpCiAgewoJJHByZWZpeCA9ICcnOwoJJGlkID0gJyc7CgkkbmFtZSA9ICdjZF9zZWxoaWVyYXJjaHknOwoJJGNsYXNzID0gJ2NkX3NlbGhpZXJhcmNoeSc7Cgkkc2VsZWN0ZWQgPSAnJzsKCSRub25lID0gMTsKCglpZiggaXNzZXQoJHBhcmFtc1sncHJlZml4J10pICkgJHByZWZpeCA9IHRyaW0oJHBhcmFtc1sncHJlZml4J10pOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ2lkJ10pICkgJGlkID0gdHJpbSgkcGFyYW1zWydpZCddKTsKCWlmKCBpc3NldCgkcGFyYW1zWyduYW1lJ10pICkgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CglpZiggaXNzZXQoJHBhcmFtc1snc2VsZWN0ZWQnXSkgKSAkc2VsZWN0ZWQgPSB0cmltKCRwYXJhbXNbJ3NlbGVjdGVkJ10pOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ25vbmUnXSkgKSAkbm9uZSA9IChpbnQpJHBhcmFtc1snbm9uZSddOwoKCS8vIGdldCB0aGUgaGllcmFyY2h5IGFzIGEgZmxhdCBsaXN0LgoJJGl0ZW1zID0gc2VsZjo6Z2V0X2hpZXJhcmNoeV9saXN0KC0xLCRub25lKTsKCWlmKCAhaXNfYXJyYXkoJGl0ZW1zKSB8fCBjb3VudCgkaXRlbXMpID09IDAgKSByZXR1cm47CgkkaXRlbXMgPSBhcnJheV9mbGlwKCRpdGVtcyk7CgoJLy8gYnVpbGQgdGhlIG91dHB1dC4KCSRvdXQgPSAnPHNlbGVjdCBuYW1lPSInLiRwcmVmaXguJG5hbWUuJyInOwogICAgaWYoICRjbGFzcyApICRvdXQgLj0gJyBjbGFzcz0iJy4kY2xhc3MuJyInOwogICAgaWYoICRpZCApICRvdXQgLj0gJyBpZD0iJy4kaWQuJyInOwoJJG91dCAuPSAnPic7Cglmb3JlYWNoKCAkaXRlbXMgYXMgJGlkID0+ICRsYWJlbCApIHsKCSAgJG91dCAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4kaWQuJyInOwoJICBpZiggJGlkID09ICRzZWxlY3RlZCApICRvdXQgLj0gJyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzsKCSAgJG91dCAuPSAnPicuJGxhYmVsLic8L29wdGlvbj4nOwoJfQoJJG91dCAuPSAnPC9zZWxlY3Q+JzsKCglpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJG91dCk7CgkgIHJldHVybjsKCX0KCXJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzbWFydHlfaW5pdGpzKCRwYXJhbXMsJHNtYXJ0eSkKICB7CglzdGF0aWMgJGNudCA9IDA7CgoJaWYoICRjbnQgPT0gMCApIHsKCSAgJGNudCsrOwoJICAkY29tcGRpciA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoJICAkc2NyaXB0dXJsID0gJGNvbXBkaXItPkdldE1vZHVsZVVSTFBhdGgoKS4nL2xpYi9qcXVlcnkuY29tcGRpci5qcyc7CgkgICRhamF4X3VybCA9ICRjb21wZGlyLT5jcmVhdGVfdXJsKCdjbnRudDAxJywnYWpheF9zZWxjb21wYW55JykuJyZhbXA7c2hvd3RlbXBsYXRlPWZhbHNlJzsKCSAgJGFqYXhfdXJsID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJGFqYXhfdXJsKTsKCgkgICR0eHQgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBjb21wZGlyX2Nob29zZWNvbXBhbnlfYWpheF91cmwgPSAiJy4kYWpheF91cmwuJyI7PC9zY3JpcHQ+Jy4iXG4iOwoJICAkdHh0IC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRzY3JpcHR1cmwuJyI+PC9zY3JpcHQ+Jy4iXG4iOwoKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApIHsKCQkkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJHR4dCk7CgkJcmV0dXJuOwoJICB9CgkgIHJldHVybiAkdHh0OwoJfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzbWFydHlfZ2V0Y29tcGFueSgkcGFyYW1zLCRzbWFydHkpCiAgewoJaWYoICFpc3NldCgkcGFyYW1zWydpZCddKSApIHJldHVybjsKCgkkZGV0YWlscGFnZSA9IC0xOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSB7CgkgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoJICAkdG1wID0gJGNkbW9kLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CgkgIGlmKCAkdG1wID4gMCApICRkZXRhaWxwYWdlID0gJHRtcDsKCX0KCSRjb21wYW55ID0gY2RfdXRpbHM6OmdldF9jb21wYW55KChpbnQpJHBhcmFtc1snaWQnXSwkZGV0YWlscGFnZSxUUlVFKTsKCWlmKCBpc19vYmplY3QoJGNvbXBhbnkpICkgewoJICBpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJCSRzbWFydHktPmFzc2lnbih0cmltKCRwYXJhbXNbJ2Fzc2lnbiddKSwkY29tcGFueSk7CgkJcmV0dXJuOwoJICB9CgkgIHJldHVybiAkY29tcGFueTsKCX0KICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc21hcnR5X2hpZXJicmVhZGNydW1iKCRwYXJhbXMsJHNtYXJ0eSkKICB7CgkkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DT01QQU5ZRElSRUNUT1JZKTsKCSRkZWxpbWl0ZXIgPSAnIHwgJzsKCSRyYXcgPSAwOwoJJGhpZXIgPSAtMTsKCSRwYWdlID0gJHNtYXJ0eS0+Z2V0X3RlbXBsYXRlX3ZhcnMoJ3BhZ2VfaWQnKTsKCSRjbGFzcyA9IG51bGw7CgkkYXNzaWduID0gbnVsbDsKCSR1cmxwYXJtcyA9IGFycmF5KCk7CgoJZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKCSAgc3dpdGNoKCAka2V5ICkgewoJICBjYXNlICdyYXcnOgoJCSRyYXcgPSBjbXNfdG9fYm9vbCgkdmFsdWUpOwoJCWJyZWFrOwoJICBjYXNlICdoaWVyJzoKCQkkaGllciA9IChpbnQpJHZhbHVlOwoJCWJyZWFrOwoJICBjYXNlICdkZWxpbSc6CgkJJGRlbGltaXRlciA9ICR2YWx1ZTsKCQlicmVhazsKCSAgY2FzZSAnY2xhc3MnOgoJCSRjbGFzcyA9ICR2YWx1ZTsKCQlicmVhazsKCSAgY2FzZSAnYXNzaWduJzoKCQkkYXNzaWduID0gJHZhbHVlOwoJCWJyZWFrOwoJICBjYXNlICdwYWdlJzoKICAgICAgICAkcGFnZSA9IChpbnQpJG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdmFsdWUsJHBhZ2UpOwoJCWJyZWFrOwoJICBkZWZhdWx0OgoJCSR1cmxwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKCSAgfQoJfQoKCWlmKCAkaGllciA8IDEgKSByZXR1cm47CiAgICBpZiggJHBhZ2UgPCAxICkgcmV0dXJuOyAvLyBub3RoaW5nIHRvIGxpbmsgdG8uCgoJLy8gZ2V0IHRoZSBjb21wbGV0ZSBwYXRoIHRvIHRoaXMgaGllcmFyY2h5LgoJJGhpZXJkYXRhID0gc2VsZjo6Z2V0X2hpZXJhcmNoeSgpOwoJaWYoICFpc19hcnJheSgkaGllcmRhdGEpIHx8IGNvdW50KCRoaWVyZGF0YSkgPT0gMCApIHJldHVybjsKCgkkZGF0YSA9IGFycmF5KCk7CgkkZm4gPSBmdW5jdGlvbigkaWQpIHVzZSAoJGhpZXJkYXRhLCYkZGF0YSwmJGZuLCYkbW9kLCRwYWdlLCR1cmxwYXJtcykgewoJICBmb3JlYWNoKCAkaGllcmRhdGEgYXMgJG9uZSApIHsKCQlpZiggJG9uZVsnaWQnXSA9PSAkaWQgKSB7CgkJICAvLyBmb3VuZCB0aGUgaXRlbS4uIGJ1aWxkIHRoZSB1cmwKCQkgICR1cmxwYXJtc1snaGllciddID0gJGlkOwoJCSAgJG9uZVsndXJsJ10gPSAkbW9kLT5jcmVhdGVfdXJsKCdjbnRudDAxJywnZGVmYXVsdCcsJHBhZ2UsJHVybHBhcm1zKTsKCQkgIGFycmF5X3Vuc2hpZnQoJGRhdGEsJG9uZSk7IC8vIHB1c2ggdGhpcyBpdGVtIHRvIHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KCQkgIGlmKCAkb25lWydwYXJlbnRfaWQnXSAhPSAtMSApICRmbigkb25lWydwYXJlbnRfaWQnXSk7CgkJfQoJICB9Cgl9OwoJJGZuKCRoaWVyKTsKCglpZiggY291bnQoJGRhdGEpID09IDAgKSByZXR1cm47CgoJLy8gbm93IGhhdmUgdG8gZGVjaWRlIG9uIG91dHB1dCBmb3JtYXQuCgkkb3V0ID0gbnVsbDsKCWlmKCAkcmF3ID09IEZBTFNFICkgewoJICAvLyBoYXZlIHRvIGJ1aWxkIGxpbmtzLgoJICAkYWRkdGV4dCA9ICcnOwoJICBpZiggJGNsYXNzICkgJGFkZHRleHQ9JyBjbGFzcz0iJy4kY2xhc3MuJyInOwoJICAkdG1wID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJGRhdGEgYXMgJG9uZSApIHsKCQkkdG1wW10gPSAnPGEgaHJlZj0iJy4kb25lWyd1cmwnXS4nIicuJGFkZHRleHQuJz4nLiRvbmVbJ25hbWUnXS4nPC9hPic7CgkgIH0KCSAgJG91dCA9IGltcGxvZGUoJGRlbGltaXRlciwkdG1wKTsKCX0KCWVsc2UgewoJICAkb3V0ID0gJGRhdGE7Cgl9CgoJaWYoICRhc3NpZ24gKSB7CgkgICRzbWFydHktPmFzc2lnbigkYXNzaWduLCRvdXQpOwoJICByZXR1cm47Cgl9CglyZXR1cm4gJG91dDsKICB9CgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdldF9nZW9sb2NhdG9yKCkKICB7CglpZiggc2VsZjo6JF9nZW9sb2NhdG9yICE9IG51bGwgKSByZXR1cm4gc2VsZjo6JF9nZW9sb2NhdG9yOwoKCSRtb2R1bGVfbGlzdCA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9tb2R1bGVzX3dpdGhfY2FwYWJpbGl0eSgnZ2VvbG9jYXRlJyk7CglpZiggaXNfYXJyYXkoJG1vZHVsZV9saXN0KSAmJiBjb3VudCgkbW9kdWxlX2xpc3QpICkgewoJICBmb3JlYWNoKCAkbW9kdWxlX2xpc3QgYXMgJG1uYW1lICkgewoJCSRyZXMgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1uYW1lKTsKCQlpZiggaXNfb2JqZWN0KCRyZXMpICYmIG1ldGhvZF9leGlzdHMoJHJlcywnR2V0SWNvbkxpc3QnKSAmJiBtZXRob2RfZXhpc3RzKCRyZXMsJ0dldEljb25zRnVsbCcpICkgewoJCSAgc2VsZjo6JF9nZW9sb2NhdG9yID0gJHJlczsKCQkgIHJldHVybiAkcmVzOwoJCX0KCSAgfQoJfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5fZ2VvbG9jYXRlKCkKICB7Cgkkb2JqID0gc2VsZjo6Z2V0X2dlb2xvY2F0b3IoKTsKCXJldHVybiBpc19vYmplY3QoJG9iaik7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9pY29uX2xpc3QoKQogIHsKCSRvYmogPSBzZWxmOjpnZXRfZ2VvbG9jYXRvcigpOwoJaWYoICFpc19vYmplY3QoJG9iaikgKSByZXR1cm47CgoJcmV0dXJuICRvYmotPkdldEljb25MaXN0KCk7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9pY29uc19mdWxsKCkKICB7Cgkkb2JqID0gc2VsZjo6Z2V0X2dlb2xvY2F0b3IoKTsKCWlmKCAhaXNfb2JqZWN0KCRvYmopICkgcmV0dXJuOwoKCXJldHVybiAkb2JqLT5HZXRJY29uc0Z1bGwoKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2VvbG9jYXRlKCRhZGRyZXNzKQogIHsKCWlmKCAhJGFkZHJlc3MgKSByZXR1cm47Cgkkb2JqID0gc2VsZjo6Z2V0X2dlb2xvY2F0b3IoKTsKCWlmKCAhaXNfb2JqZWN0KCRvYmopICkgcmV0dXJuOwoKCXJldHVybiAkb2JqLT5HZXRDb29yZHNGcm9tQWRkcmVzcygkYWRkcmVzcyk7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCkKICB7CglzZWxmOjokX2hpZXJhcmNoeSA9IG51bGw7CgkkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxpb3JkZXIscGFyZW50X2lkLG5hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBPUkRFUiBCWSBwYXJlbnRfaWQsaW9yZGVyJzsKCSRoaWVyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKCSR1cGRhdGVfaGllciA9IGZ1bmN0aW9uKCYkaGllciwkcGFyZW50X2lkID0gLTEsJGxvbmduYW1lID0gJycsJGhpZXJhcmNoeSA9ICcnKSB1c2UgKCYkdXBkYXRlX2hpZXIpIHsKCSAgZm9yZWFjaCggJGhpZXIgYXMgJiRyb3cgKSB7CgkJaWYoICRyb3dbJ3BhcmVudF9pZCddID09ICRwYXJlbnRfaWQgKSB7CgkJICAkcm93Wydsb25nbmFtZSddID0gKCRsb25nbmFtZSkgPyAkbG9uZ25hbWUuJyB8ICcuJHJvd1snbmFtZSddIDogJHJvd1snbmFtZSddOwoJCSAgJHRtcCA9IHN0cl9wYWQoJHJvd1snaW9yZGVyJ10sNSwnMCcsU1RSX1BBRF9MRUZUKTsKCQkgICRyb3dbJ2hpZXJhcmNoeSddID0gKCRoaWVyYXJjaHkpID8gJGhpZXJhcmNoeS4nLicuJHRtcCA6ICR0bXA7CgkJICAkdXBkYXRlX2hpZXIoJGhpZXIsJHJvd1snaWQnXSwkcm93Wydsb25nbmFtZSddLCRyb3dbJ2hpZXJhcmNoeSddKTsKCQl9CgkgIH0KCX07CgoJJHVwZGF0ZV9oaWVyKCRoaWVyKTsKCgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIFNFVCBoaWVyYXJjaHkgPSA/LCBsb25nX25hbWUgPSA/IFdIRVJFIGlkID0gPyc7Cglmb3JlYWNoKCAkaGllciBhcyAkcm93ICkgewoJICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcm93WydoaWVyYXJjaHknXSwkcm93Wydsb25nbmFtZSddLChpbnQpJHJvd1snaWQnXSkpOwoJfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzYXZlX3NlYXJjaF90b19zdGF0cyhjZF9jb21wYW55X2ZpbHRlciAkZmlsdGVyLCRyZXN1bHRzKQogIHsKCWlmKCAhaXNfYXJyYXkoJHJlc3VsdHMpIHx8IGNvdW50KCRyZXN1bHRzKSA9PSAwICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0Vycm9yIG5vIHNlYXJjaCByZXN1bHRzJyk7CgoJJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHMgKGRhdGVfc2VhcmNoZWQsIGlwX2FkZHJlc3MsIGZldV91aWQpIFZBTFVFUyAoTk9XKCksPyw/KSc7CgkkZmV1X3VpZCA9IG51bGw7CgkkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CglpZiggJGZldSApICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwoJJGlwX2FkZHJlc3MgPSBjZ2VfdXRpbHM6OmdldF9yZWFsX2lwKCk7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkaXBfYWRkcmVzcywkZmV1X3VpZCkpOwoJaWYoICEkZGJyICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0Vycm9yIGluc2VydGluZyBzZWFyY2ggZGF0YScpOwoJJHNlYXJjaF9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0c192YXJzIChzZWFyY2hfaWQsbmFtZSx2YWwpIFZBTFVFUyAoPyw/LD8pJzsKCSRkYXRhID0gJGZpbHRlci0+Z2V0X3BhcmFtcyhGQUxTRSk7Cglmb3JlYWNoKCAkZGF0YSBhcyAka2V5ID0+ICR2YWwgKSB7CgkgIGlmKCBpbl9hcnJheSgka2V5LGFycmF5KCdwYWdlbGltaXQnLCdwYWdlJywnZGVlcCcsJ29ubHljb3VudCcsJ2lubGluZScsJ2RldGFpbHBhZ2UnLCdkZXRhaWx0ZW1wbGF0ZScsJ25vcHJldHR5JywncmV0dXJuaWQnLAoJCQkJCQkJICAnc29ydGJ5Jywnc29ydG9yZGVyJykpICkgewoJCWNvbnRpbnVlOwoJICB9CgoJICBpZiggJGtleSA9PSAnZmllbGRzJyApIHsKCQlmb3JlYWNoKCAkZGF0YVsnZmllbGRzJ10gYXMgJHJlYyApIHsKCQkgICRrZXkgPSAnZmllbGRfJy4kcmVjWydmbGRuYW1lJ107CgkJICAkdmFsID0gJHJlY1snZmxkdmFsJ107CgkJICBpZiggaXNfYXJyYXkoJHZhbCkgKSAkdmFsID0gaW1wbG9kZSgnXl4nLCR2YWwpOwoJCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNlYXJjaF9pZCwka2V5LCR2YWwpKTsKCQl9CgkJY29udGludWU7CgkgIH0KCgkgIGlmKCBpc19hcnJheSgkdmFsKSApICR2YWwgPSBpbXBsb2RlKCdeXicsJHZhbCk7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzZWFyY2hfaWQsJGtleSwkdmFsKSk7Cgl9CgoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0c19yZXMgKHNlYXJjaF9pZCxjb21wYW55X2lkKSBWQUxVRVMgKD8sPyknOwoJZm9yZWFjaCggJHJlc3VsdHMgYXMgJG51bSApIHsKCSAgJG51bSA9IChpbnQpJG51bTsKCSAgaWYoICRudW0gPCAxICkgY29udGludWU7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzZWFyY2hfaWQsJG51bSkpOwoJfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzbWFydHlfY2RzZWFyY2hzdGF0cygkcGFyYW1zLCRzbWFydHkpCiAgewoJJG91dCA9IG51bGw7CgkkbGlzdCA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnbGlzdCcpOwoJaWYoIGlzX2FycmF5KCRsaXN0KSAmJiBjb3VudCgkbGlzdCkgPiAwICkgewoJICAkdG1wID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJGxpc3QgYXMgJG9uZSApIHsKCQlpZiggKGludCkkb25lID4gMCApICR0bXBbXSA9IChpbnQpJG9uZTsKCSAgfQoKCSAgJHRtcCA9IGFycmF5X3VuaXF1ZSgkdG1wKTsKCSAgaWYoIGNvdW50KCR0bXApICkgewoJCSRsaXN0ID0gJHRtcDsKCQkkZGF5cyA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdkYXlzJywzNjUpOwoJCWlmKCAkZGF5cyA+IDAgKSB7CgoJCSAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkgICRxdWVyeSA9ICdTRUxFQ1QgUi5jb21wYW55X2lkLENPVU5UKERJU1RJTkNUIFIuc2VhcmNoX2lkKSBBUyBjb3VudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0c19yZXMgUgogICAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHMgUyBPTiBSLnNlYXJjaF9pZCA9IFMuaWQKICAgICAgICAgICAgICAgICAgICBXSEVSRSBTLmRhdGVfc2VhcmNoZWQgQkVUV0VFTiA/IEFORCBOT1coKQogICAgICAgICAgICAgICAgICAgIEFORCBSLmNvbXBhbnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGxpc3QpLicpCiAgICAgICAgICAgICAgICAgICAgR1JPVVAgQlkgUi5jb21wYW55X2lkJzsKCQkgICRzdGFydF91dCA9IHRpbWUoKSAtICRkYXlzICogMjQgKiAzNjAwOwoJCSAgJHN0YXJ0X3V0ID0gbWt0aW1lKDAsMCwwLGRhdGUoJ24nLCRzdGFydF91dCksZGF0ZSgnaicsJHN0YXJ0X3V0KSxkYXRlKCdZJywkc3RhcnRfdXQpKTsKCQkgICRzdGFydF9kdCA9IHRyaW0oJGRiLT5EYlRpbWVTdGFtcCgkc3RhcnRfdXQpLCInIik7CgoJCSAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRzdGFydF9kdCkpOwoJCSAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJCQkkb3V0ID0gYXJyYXkoKTsKCQkJZm9yZWFjaCggJHRtcCBhcyAkcmVjICkgewoJCQkgICRvdXRbJHJlY1snY29tcGFueV9pZCddXSA9ICRyZWNbJ2NvdW50J107CgkJCX0KCQkgIH0KCQl9CgkgIH0KCX0KCglpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJICAkc21hcnR5LT5hc3NpZ24odHJpbSgkcGFyYW1zWydhc3NpZ24nXSksJG91dCk7CgkgIHJldHVybjsKCX0KCXJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVfZnVsbHRleHRfaW5kZXgoKQogIHsKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgoJLy8gZmlyc3QsIGRyb3AgdGhlIGluZGV4KGVzKSBpZiB0aGV5IGV4aXN0Cgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcEluZGV4U1FMKCdjZF9mdCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wSW5kZXhTUUwoJ2NkX2Z0X2Z2JyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscycpOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCS8vIG5vdyBjcmVhdGUgdGhlIGluZGV4KGVzKQoJJGRiLT5FeGVjdXRlKCdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIEFERCBGVUxMVEVYVCBJTkRFWCBjZF9mdCAoY29tcGFueV9uYW1lLGFkZHJlc3Msd2Vic2l0ZSxkZXRhaWxzKScpOwoJJGRiLT5FeGVjdXRlKCdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIEFERCBGVUxMVEVYVCBJTkRFWCBjZF9mdF9mdiAodmFsdWUpJyk7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyDirectoryJQueryUploadHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDb21wYW55RGlyZWN0b3J5SlF1ZXJ5VXBsb2FkSGFuZGxlciBleHRlbmRzIGNkX2pxdWVyeV91cGxvYWRfaGFuZGxlciAKewogIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcHRpb25zPW51bGwpIAogIHsKICAgIGlmKCAhaXNfYXJyYXkoJG9wdGlvbnMpICkgewogICAgICAkb3B0aW9ucyA9IGFycmF5KCk7CiAgICB9CglpZiggIWlzc2V0KCRvcHRpb25zWydhY2NlcHRfZmlsZV90eXBlcyddKSAmJiBpc3NldCgkb3B0aW9uc1snZmRpZCddKSApIHsKCSAgJGZpZWxkZGVmcyA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzX2J5X2lkKFRSVUUsVFJVRSk7CgkgIGlmKCBpc3NldCgkZmllbGRkZWZzWyRvcHRpb25zWydmZGlkJ11dKSApIHsKCQkkZGF0YSA9ICRmaWVsZGRlZnNbJG9wdGlvbnNbJ2ZkaWQnXV1bJ2RhdGEnXTsKCQlpZiggJGRhdGEgKSB7CgkJICAkZXh0cyA9IGV4cGxvZGUoJywnLCRkYXRhKTsKCQkgICRzdHIgPSAnL1wuKCcuaW1wbG9kZSgnfCcsJGV4dHMpLicpJC9pJzsKCQkgICRvcHRpb25zWydhY2NlcHRfZmlsZV90eXBlcyddID0gJHN0cjsKCQl9CgkgIH0KCX0KICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG9wdGlvbnMpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFmdGVyX3VwbG9hZGVkX2ZpbGUoJiRmaWxlb2JqZWN0KQogIHsKCWlmKCAhaXNzZXQoJGZpbGVvYmplY3QtPmVycm9yKSB8fCAkZmlsZW9iamVjdC0+ZXJyb3IgPT0gJycgKSB7CgkgICR0aGVfY29tcGFueSA9IG51bGw7CgkgIGlmKCBpc3NldCgkdGhpcy0+b3B0aW9uc1snY29tcGFueSddKSAmJiBpc19vYmplY3QoJHRoaXMtPm9wdGlvbnNbJ2NvbXBhbnknXSkgKSB7CgkJJHRoZV9jb21wYW55ID0mICR0aGlzLT5vcHRpb25zWydjb21wYW55J107CgkgIH0KCSAgZWxzZSB7CgkJJHRoZV9jb21wYW55ID0gY2RfY29tcGFueTo6bG9hZF9ieV9pZCgkdGhpcy0+b3B0aW9uc1snY29tcGlkJ10sVFJVRSk7CgkgIH0KCSAgaWYoICFpc19vYmplY3QoJHRoZV9jb21wYW55KSApIHJldHVybjsKCgkgICR0aGVfY29tcGFueS0+c2V0dXBfZmllbGRzX2FuZF9jYXRzKCk7CgkgICRmaWVsZCA9ICR0aGVfY29tcGFueS0+Z2V0X2ZpZWxkKCR0aGlzLT5vcHRpb25zWydmZGlkJ10pOwoJICAkZmlsZXMgPSBhcnJheSgpOwoJICBpZiggaXNfb2JqZWN0KCRmaWVsZCkgJiYgaXNzZXQoJGZpZWxkLT52YWx1ZSkgJiYgJGZpZWxkLT52YWx1ZSApIHsKCQkkZmlsZXMgPSB1bnNlcmlhbGl6ZSgkZmllbGQtPnZhbHVlKTsJICAKCSAgfQoKCSAgaWYoICFpbl9hcnJheSgkZmlsZW9iamVjdC0+bmFtZSwkZmlsZXMpICkgewoJCSRmaWxlc1tdID0gJGZpbGVvYmplY3QtPm5hbWU7CgkJJHRoZV9jb21wYW55LT5zZXRfZmllbGQoJHRoaXMtPm9wdGlvbnNbJ2ZkaWQnXSxzZXJpYWxpemUoJGZpbGVzKSk7CgkJaWYoICFpc3NldCgkdGhpcy0+b3B0aW9uc1snbm9zYXZlJ10pICkgewoJCSAgJHRoZV9jb21wYW55LT5zYXZlKCk7CgkJfQoJICB9Cgl9CiAgICB1bnNldCgkZmlsZW9iamVjdC0+ZGVsZXRlX3VybCk7CiAgICB1bnNldCgkZmlsZW9iamVjdC0+ZGVsZXRlX3R5cGUpOwogIH0KfQoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LinkDefinitionGenerator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgXENHRXh0ZW5zaW9uc1xMaW5rRGVmaW5pdGlvbiBBUyBCQVNFOwoKY2xhc3MgTGlua0RlZmluaXRpb25HZW5lcmF0b3IgaW1wbGVtZW50cyBCQVNFXExpbmtEZWZpbml0aW9uR2VuZXJhdG9yCnsKICAgIHByaXZhdGUgJF9kYXRhcmVmOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGF0YXJlZihCQVNFXERhdGFSZWYgJGRhdGFyZWYpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhcmVmID0gJGRhdGFyZWY7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saW5rZGVmaW5pdGlvbigpCiAgICB7CiAgICAgICAgJGRyID0gJHRoaXMtPl9kYXRhcmVmOwogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DT01QQU5ZRElSRUNUT1JZKTsKICAgICAgICBpZiggJGRyLT5rZXkxICE9ICRtb2QtPkdldE5hbWUoKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbihfX0NMQVNTX18uJyBEb2VzIG5vdCBrbm93IGhvdyB0byBoYW5kbGUgdGhlIHByb3ZpZGVkIERhdGFSZWYnKTsKCiAgICAgICAgJHBhZ2VpZCA9IFxjbXNfdXRpbHM6OmdldF9jdXJyZW50X3BhZ2VpZCgpOwogICAgICAgIGlmKCAkcGFnZWlkIDwgMSApICRwYWdlaWQgPSBcQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgICAgICR0bXAgPSAoaW50KSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJyk7CiAgICAgICAgaWYoICR0bXAgPiAwICkgJHBhZ2VpZCA9ICR0bXA7CgogICAgICAgICRjb21wYW55ID0gXGNkX3V0aWxzOjpnZXRfY29tcGFueSgkZHItPmtleTIsJHBhZ2VpZCxGQUxTRSxUUlVFKTsKICAgICAgICBpZiggIWlzX29iamVjdCgkY29tcGFueSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oX19DTEFTU19fLicgQ29tcGFueSB3aXRoIGlkICcuJGRyLT5rZXkyLicgY291bGQgbm90IGJlIHJlYWQnKTsKICAgICAgICAkbGlua2RlZm4gPSBuZXcgQkFTRVxMaW5rRGVmaW5pdGlvbigpOwogICAgICAgICRsaW5rZGVmbi0+aHJlZiA9ICRjb21wYW55LT5jYW5vbmljYWw7CiAgICAgICAgJGxpbmtkZWZuLT50ZXh0ID0gJGNvbXBhbnktPmNvbXBhbnlfbmFtZTsKCSRsaW5rZGVmbi0+aWQgPSAkZHItPmtleTI7CgogICAgICAgIGlmKCAhY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkgewogICAgICAgICAgICAvLyB0ZXN0IGlmIHRoaXMgdXNlciBoYXMgdGhlIHBlcm0gdG8gZWRpdCB0aGlzIGNvbXBhbnkuCiAgICAgICAgICAgIGlmKCAkbW9kLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpICkgewogICAgICAgICAgICAgICAgJGxpbmtkZWZuLT50aXRsZSA9ICRtb2QtPkxhbmcoJ2VkaXQnKTsKICAgICAgICAgICAgICAgICRsaW5rZGVmbi0+aHJlZiA9ICRtb2QtPmNyZWF0ZV91cmwoJ20xXycsJ2VkaXRjb21wYW55JywnJyxhcnJheSgnY29tcGlkJz0+JGRyLT5rZXkyKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGZvciBmcm9udGVuZCBhY3Rpb25zIHdlIGNvdWxkIGxpbmsgdG8gdGhlIGZlc3VibWl0IHN0dWZmIElGIHRoZSB1c2VyIGlzIHRoZSBvd25lcgogICAgICAgIC8vIEFORCB3ZSBoYXZlIGEgcGFnZWlkLi4uCiAgICAgICAgcmV0dXJuICRsaW5rZGVmbjsKICAgIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.compdir.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gZW5jYXBzdWxhdGUgdGhlIGpxdWVyeSB1aSBhdXRvY29tcGxldGUgc3R1ZmYuCihmdW5jdGlvbigkKSB7CiAgJC5mbi5jb21wZGlyX2Nob29zZWNvbXBhbnkgPSBmdW5jdGlvbihvcHRpb25zKSB7CiAgICB2YXIgb3B0cyA9ICQuZXh0ZW5kKHt9LCAkLmZuLmNvbXBkaXJfY2hvb3NlY29tcGFueS5kZWZhdWx0cywgb3B0aW9ucyk7CgogICAgdmFyIGNudCA9IDE7CiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAkdGhpcyA9ICQodGhpcyk7CgogICAgICBpZiggJHRoaXMuaXMoJ2lucHV0JykgJiYgJHRoaXMuYXR0cigndHlwZScpID09ICd0ZXh0JyApIHsKICAgICAgICAvLyBjcmVhdGUgYSBoaWRkZW4gZG9tIGVsZW1lbnQuLi4KICAgICAgICAvLyBtb3ZlcyB0aGUgbmFtZSBmcm9tIHRoZSBzZWxlY3RlZCBlbGVtZW50CiAgICAgICAgLy8gdXNlcyB0aGUgdmFsdWUgZnJvbSB0aGUgc2VsZWN0ZWQgZWxlbWVudC4KICAgICAgICB2YXIgbmFtZSA9ICR0aGlzLmF0dHIoJ25hbWUnKTsKICAgICAgICBpZCA9ICdjZF9zZWxjb21wYW55JytjbnQ7CiAgICAgICAgY250Kys7CiAgICAgICAgdmFyIHZhbCA9ICR0aGlzLnZhbCgpOwoJdmFyIHN0ciA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iJyt2YWwrJyInOwoJaWYoIG5hbWUubGVuZ3RoID4gMCApIHN0ciArPSAnIG5hbWU9IicrbmFtZSsnIic7CglpZiggaWQubGVuZ3RoID4gMCApIHN0ciArPSAnIGlkPSInK2lkKyciJzsKICAgICAgICBzdHIgKz0gJy8+JzsKCgl2YXIgJGJlZiA9ICR0aGlzLmJlZm9yZShzdHIpOwoJJHRoaXMucmVtb3ZlQXR0cignbmFtZScpOwogICAgICAKCS8vIGRvIGFuIGFqYXggcmVxdWVzdCB0byBnZXQgdGhlIGNvbXBhbnkgJ25hbWUnIGdpdmVuIHRoZSBpZAoJaWYoIHZhbC5sZW5ndGggPiAwICkgewogIAkgICQuYWpheCh7CiAgICAgICAgICAgIHR5cGU6ICdQT1NUJywKICAgICAgICAgICAgZGF0YVR5cGU6ICdqc29uJywKICAgICAgICAgICAgdXJsOiBvcHRzLmFqYXhfdXJsLAogICAgICAgICAgICBkYXRhOiB7CgkgICAgICBjb21waWQ6IHZhbAogICAgICAgICAgICB9LAogICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgJHRoaXMudmFsKGRhdGEpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IC8vIHRoZXJlIGlzIGEgdmFsdWUuCgoJLy8gZW5hYmxlIGpxdWVyeSB1aSBhdXRvY29tcGxldGUKICAgICAgICAkdGhpcy5hdXRvY29tcGxldGUoewogICAgICAgICAgc2VsZWN0OiBmdW5jdGlvbihldmVudCx1aSkgewogICAgICAgICAgICAgICQoJyMnK2lkKS52YWwodWkuaXRlbS52YWx1ZSk7CiAgICAgICAgICAgICAgJHRoaXMudmFsKHVpLml0ZW0ubGFiZWwpOwogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0sCgkgIHNvdXJjZTogZnVuY3Rpb24ocmVxLHJlc3BvbnNlKSB7CiAgICAgICAgICAgICQuYWpheCh7CgkgICAgICB0eXBlOiAnUE9TVCcsCiAgICAgICAgICAgICAgZGF0YVR5cGU6ICdqc29uJywKICAgICAgICAgICAgICB1cmw6IG9wdHMuYWpheF91cmwsCiAgICAgICAgICAgICAgZGF0YTogewogICAgICAgICAgICAgICAgdGVybTogcmVxLnRlcm0sCiAgICAgICAgICAgICAgICBtb2RlOiBvcHRzLm1vZGUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlKGRhdGEpOwoJICAgICAgfSwKICAgICAgICAgICAgfSk7CgkgIH0sCiAgICAgICAgICByZXNwb25zZTogZnVuY3Rpb24oZXZlbnQsdWkpIHsKICAgICAgICAgICAgaWYoIHVpLmNvbnRlbnQgPT0gbnVsbCB8fCB1aS5jb250ZW50Lmxlbmd0aCA9PSAwICkgewogICAgICAgICAgICAgICQoJyMnK2lkKS52YWwoJycpOwogICAgICAgICAgICB9CgkgIH0KICAgICAgICB9KTsgLy8gYXV0b2NvbXBsZXRlCgogICAgICB9IC8vIGZvciBvbmx5IHRleHQgaW5wdXQgZmllbGRzLgogICAgfSk7IC8vIGVhY2gKICB9CgogIC8vIHBsdWdpbiBkZWZhdWx0cwogICQuZm4uY29tcGRpcl9jaG9vc2Vjb21wYW55LmRlZmF1bHRzID0gewogICAgYWpheF91cmw6IGNvbXBkaXJfY2hvb3NlY29tcGFueV9hamF4X3VybCwKICAgIG1vZGU6ICAgICAnYW55JwogIH07Cgp9KShqUXVlcnkpOwo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggdmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwnNS40LjMnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjMgcmVxdWlyZWQiOwp9CgokZGIgPSBjbXNtcygpLT5HZXREYigpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgljb21wYW55X25hbWUgQygyNTUpIE5PVCBOVUxMLAoJYWRkcmVzcyBYLAoJdGVsZXBob25lIEMoNTApLAoJZmF4IEMoNTApLAoJY29udGFjdF9lbWFpbCBDKDI1NSksCgl3ZWJzaXRlIEMoMjU1KSwKCWRldGFpbHMgWCwKCXBpY3R1cmVfbG9jYXRpb24gQygyNTUpLAoJbG9nb19sb2NhdGlvbiBDKDI1NSksCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCiAgICBzdGF0dXMgQyg1MCksCiAgICBsYXRpdHVkZSBGLAogICAgbG9uZ2l0dWRlIEYsCiAgICBvd25lcl9pZCBJLAogICAgaGllcl9pZCBJLAogICAgdXJsIEMoMjU1KQoiOwoKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTywKCW5hbWUgQygyNTUpIE5PVCBOVUxMLAogICAgaW1hZ2UgIEMoMjU1KSwKICAgIGRlc2NyaXB0aW9uIFgsCiAgICBwYXJlbnRfaWQgSSwKICAgIGl0ZW1fb3JkZXIgSSwKICAgIGhpZXJhcmNoeSBDKDI1NSksCiAgICBsb25nX25hbWUgQygyNTUpLAogICAgZXh0cmExICBDKDI1NSksCiAgICBleHRyYTIgIEMoMjU1KSwKICAgIGV4dHJhMyAgQygyNTUpCiI7CgokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIiwkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiCgljb21wYW55X2lkIEkgS0VZIE5PVCBOVUxMLAoJY2F0ZWdvcnlfaWQgSSBLRVkgTk9UIE5VTEwsCiAgICBleHRyYTEgQygyNTUpLAogICAgZXh0cmEyIEMoMjU1KSwKICAgIGV4dHJhMyBDKDI1NSksCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKCiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSBOT1QgTlVMTCwKCXR5cGUgQyg1MCksCgltYXhfbGVuZ3RoIEksCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCiAgICBpdGVtX29yZGVyIEksCiAgICBhZG1pbl9vbmx5IEksCiAgICBwdWJsaWMgSSwKICAgIGRyb3Bkb3duX2RhdGEgWCwKICAgIGRhdGEgWAoiOwoKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgoJY29tcGFueV9pZCBJIEtFWSBOT1QgTlVMTCwKCWZpZWxkZGVmX2lkIEkgS0VZIE5PVCBOVUxMLAoJdmFsdWUgWCwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIgoiOwoKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCglkYXRlX3NlYXJjaGVkICIuQ01TX0FET0RCX0RULiIgTk9UIE5VTEwsCiAgICBpcF9hZGRyZXNzICBDKDI1NSksCiAgICBmZXVfdWlkICAgICBJCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgogICBzZWFyY2hfaWQgSSBLRVkgTk9UIE5VTEwsCiAgIG5hbWUgQygyNTUpIEtFWSBOT1QgTlVMTCwKICAgdmFsICBDKDI1NSkgTk9UIE5VTEwKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHNfdmFycyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKICAgc2VhcmNoX2lkIEkgS0VZIE5PVCBOVUxMLAogICBjb21wYW55X2lkIEkgS0VZIE5PVCBOVUxMCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzX3JlcyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSwKCXBhcmVudF9pZCBJLAogICAgaW9yZGVyIEksCgloaWVyYXJjaHkgQygyNTUpLAoJbG9uZ19uYW1lIFgKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfaGllciIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgojIEluZGV4ZXMKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NvbXBfbmFtZScsIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnY29tcGFueV9uYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jYXRnX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcycsJ25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NhdGdfaW9yZGVyJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMnLCdwYXJlbnRfaWQsaXRlbV9vcmRlcicpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NvbXBkaXJfY29tcGNhdCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMnLCdjYXRlZ29yeV9pZCxjb21wYW55X2lkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9maWVsZGRlZicsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLCduYW1lLGlkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2Rfc3RhdHVzJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsJ3N0YXR1cycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2NvbXBfdXJsJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsJ3VybCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2NvbXBfdXJsMicsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCdzdGF0dXMsdXJsJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfY29tcF9oaWVyJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsJ2hpZXJfaWQnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9mbGRfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX29yZGVyJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsJ2l0ZW1fb3JkZXInKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9mbGRfcHVibGljJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsJ3B1YmxpYycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgojCiMgVGVtcGxhdGVzCiMKCgojIFNldHVwIHN1bW1hcnkgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdzdW1tYXJ5X1NhbXBsZScsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUsJ1NhbXBsZScpOwp9CgojIFNldHVwIGRldGFpbCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sJ3RlbXBsYXRlcycsJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxfU2FtcGxlJywkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLCdTYW1wbGUnKTsKfQoKIyBTZXR1cCBkZWZhdWx0IGNhdGVnb3J5IGxpc3QgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0ZWdvcnlsaXN0X1NhbXBsZScsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSwnU2FtcGxlJyk7Cn0KCiMgU2V0dXAgZGVmYXVsdCBoaWVyYXJjaHkgbGlzdCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sJ3RlbXBsYXRlcycsJ29yaWdfaGllcmxpc3RfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdISUVSTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnaGllcmxpc3RfU2FtcGxlJywkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUSElFUkxJU1RfVEVNUExBVEUsJ1NhbXBsZScpOwp9CgojIFNldHVwIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX25ld3NlYXJjaF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV1NFQVJDSEZPUk1fVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ25ld3NlYXJjaF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRTRUFSQ0hGT1JNX1RFTVBMQVRFLCdTYW1wbGUnKTsKfQoKIyBTZXR1cCBkZWZhdWx0IGZyb250IGVuZCBmb3JtIHRlbXBsYXRlCiRmbiA9IGNtc19qb2luX3BhdGgoX19ESVJfXywndGVtcGxhdGVzJywnb3JpZ19mcm9udGVuZGZvcm1fdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVOREZPUk1fVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2Zyb250ZW5kZm9ybV9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVOREZPUk1fVEVNUExBVEUsJ1NhbXBsZScpOwp9CgojIFNldHVwIGRlZmF1bHQgZnJvbnQgZW5kIGxpc3QgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX2Zyb250ZW5kbGlzdF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5ETElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnZnJvbnRlbmRsaXN0X1NhbXBsZScsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5ETElTVF9URU1QTEFURSwnU2FtcGxlJyk7Cn0KCiMgU2V0dXAgZGVmYXVsdCBhYmMgbGlzdCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sJ3RlbXBsYXRlcycsJ29yaWdfYWJjbGlzdF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0FCQ0xJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2FiY2xpc3RfU2FtcGxlJywkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUQUJDTElTVF9URU1QTEFURSwnU2FtcGxlJyk7Cn0KCiMgU2V0dXAgZGVmYXVsdCBmcm9udCBlbmQgZm9ybSB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sJ3RlbXBsYXRlcycsJ29yaWdfZnJvbnRlbmRhbGJ1bV90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5EQUxCVU1fVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2Zyb250ZW5kYWxidW1fU2FtcGxlJywkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRBTEJVTV9URU1QTEFURSwnU2FtcGxlJyk7Cn0KCiMgU2V0dXAgZGVmYXVsdCBmcm9udGVuZCBpbXBvcnQgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX2Zyb250ZW5kaW1wb3J0X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSwkdGVtcGxhdGUpOwp9CgojIHNldHVwIHNlYXJjaCBzdGF0cyBzdW1tYXJ5IHRlbXBsYXRlCiRmbiA9IGNtc19qb2luX3BhdGgoX19ESVJfXywndGVtcGxhdGVzJywnb3JpZ19zZWFyY2hzdGF0c19zdW1tYXJ5X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfTkVXU1RBVFNTVU1NQVJZX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdzdGF0c3N1bW1hcnlfU2FtcGxlJywkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUU1RBVFNTVU1NQVJZX1RFTVBMQVRFLCdTYW1wbGUnKTsKfQoKIyBzZXR1cCBmcm9udGVuZCBlZGl0IGVtYWlsIHRlbXBsYXRlCiRmbiA9IF9fRElSX18uJy90ZW1wbGF0ZXMvb3JpZ19hZG1pbl9mZWVkaXRfZW1haWxfdGVtcGxhdGUudHBsJzsKaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CiAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdhZG1pbl9mZWVkaXRfZW1haWxfdGVtcGxhdGUnLCR0ZW1wbGF0ZSk7Cn0KCiMgc2V0dXAgZGVmYXVsdCBmcm9udGVuZCBpbXBvcnQgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX2Zyb250ZW5kaW1wb3J0X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSwkdGVtcGxhdGUpOwp9CgojU2V0IFBlcm1pc3Npb24KJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScsICdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKTsKCiMgUHJlZmVyZW5jZXMKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9kZWxpbWV0ZXInLCd8Jyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfZmllbGRkZWZzJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9maWVsZHZhbHMnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NhdGVnb3J5ZGVmcycsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnl2YWxzJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9sb29rdXBsYXRsb25nJywwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jaGVja2R1cGxpY2F0ZXMnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3N1YmplY3QnLCR0aGlzLT5MYW5nKCdmZWVkaXRfZW1haWxfc3ViamVjdCcpKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX2ZlZWRpdF9lbWFpbF9pc2h0bWwnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZWRpdG9yMicsMSk7CgojIEV2ZW50cwokdGhpcy0+Q3JlYXRlRXZlbnQoJ09uQWRkQ29tcGFueScpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ09uRGVsZXRlQ29tcGFueScpOwokdGhpcy0+Q3JlYXRlRVZlbnQoJ09uRWRpdENvbXBhbnknKTsKCmNkX3V0aWxzOjpjcmVhdGVfZnVsbHRleHRfaW5kZXgoKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgIENvcHlyaWdodCAyMDA2IC0gMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgaG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfaGllciIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0cyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0c192YXJzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzX3JlcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKTsKCiR0aGlzLT5SZW1vdmVFdmVudCgnT25BZGRDb21wYW55Jyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnT25FZGl0Q29tcGFueScpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ09uRGVsZXRlQ29tcGFueScpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggdmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwnNS40LjMnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjMgcmVxdWlyZWQiOwp9CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247Cgpzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikgewogY2FzZSAiMS4wLjQiOgogICB7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyIsICJpdGVtX29yZGVyIEkiKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICRjb3VudCA9IDA7CiAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJyk7CiAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAgICAkZGItPkV4ZWN1dGUoJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBTRVQgaXRlbV9vcmRlciA9ID8gV0hFUkUgaWQgPSA/JywgYXJyYXkoJGNvdW50LCAkcm93WydpZCddKSk7CiAgICAgICAkY291bnQrKzsKICAgICB9CiAgIH0KCiBjYXNlICIxLjAuNSI6CiAgIHsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIiwgInVzZXJfZWRpdGFibGUgSSwgdXNlcl92aWV3YWJsZSBJIik7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMiLCAic3RhdHVzIEMoNTApIik7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICRkYi0+RXhlY3V0ZSggJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIFNFVCBhZG1pbl9vbmx5ID0gMSwgcHVibGljID0gMScgKTsKCiAgICAgLy8gY29udmVydCBkaXNwbGF5c3VtbWFyeSB0byBzdW1tYXJ5X2JsYWggYW5kIG1hcmsgaXQgYXMgZGVmYXVsdAogICAgICR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgnZGlzcGxheXN1bW1hcnknKTsKICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3N1bW1hcnlfX2RmbHQnLCR0ZW1wbGF0ZSk7CiAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFLCdfZGZsdCcpOwogICAgICR0aGlzLT5EZWxldGVUZW1wbGF0ZSgnZGlzcGxheXN1bW1hcnknKTsKCiAgICAgLy8gY29udmVydCBkaXNwbGF5ZGV0YWlsIHRvIGRldGFpbF9ibGFoIGFuZCBtYXJrIGl0IGFzIGRlZmF1bHQKICAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJ2Rpc3BsYXlkZXRhaWwnKTsKICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2RldGFpbF9fZGZsdCcsJHRlbXBsYXRlKTsKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVERFVEFJTF9URU1QTEFURSwnX2RmbHQnKTsKICAgICAkdGhpcy0+RGVsZXRlVGVtcGxhdGUoJ2Rpc3BsYXlkZXRhaWwnKTsKCiAgICAgLy8gU2V0dXAgZGVmYXVsdCBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlCiAgICAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnKTsKICAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICAgICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdjYXRlZ29yeWxpc3RfU2FtcGxlJywkdGVtcGxhdGUpOwogICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRDQVRFR09SWUxJU1RfVEVNUExBVEUsJ1NhbXBsZScpOwogICAgIH0KCiAgICAgLy8gU2V0dXAgZGVmYXVsdCBmcm9udCBlbmQgZm9ybSB0ZW1wbGF0ZQogICAgICRmbiA9IGNtc19qb2luX3BhdGgoX19ESVJfXywndGVtcGxhdGVzJywnb3JpZ19mcm9udGVuZGZvcm1fdGVtcGxhdGUudHBsJyk7CiAgICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAgICAgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVOREZPUk1fVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZnJvbnRlbmRmb3JtX1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRGT1JNX1RFTVBMQVRFLCdTYW1wbGUnKTsKICAgICB9CiAgIH0KCiBjYXNlICcxLjEuNic6CiAgIHsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJywnZHJvcGRvd25fZGF0YSBYJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jb21wX25hbWUnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywKCQkJCSAgICAgICAnY29tcGFueV9uYW1lJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jYXRnX25hbWUnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcycsCgkJCQkgICAgICAgJ25hbWUnKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NvbXBjYXQnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzJywKCQkJCSAgICAgICAnY2F0ZWdvcnlfaWQsY29tcGFueV9pZCcpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NvbXBkaXJfZmllbGRkZWYnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9maWVsZGRlZnMnLAoJCQkJICAgICAgICduYW1lLGlkJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICB9CgogY2FzZSAnMS4xLjcnOgogICB7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9zdGF0dXMnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywKCQkJCSAgICAgICAnc3RhdHVzJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2ZsZF9uYW1lJywKCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsCgkJCQkgICAgICAgJ25hbWUnKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX29yZGVyJywKCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsCgkJCQkgICAgICAgJ2l0ZW1fb3JkZXInKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX3B1YmxpYycsCgkJCQkgICAgICAgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLAoJCQkJICAgICAgICdwdWJsaWMnKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgIH0KCiBjYXNlICcxLjEuNyc6CiBjYXNlICcxLjEuOCc6CiAgIHsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnbGF0aXR1ZGUgRiwgbG9uZ2l0dWRlIEYsb3duZXJfaWQgSScpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9mbGRfY29vcmRzJywKCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsCgkJCQkgICAgICAgJ2xhdGl0dWRlLCBsb25naXR1ZGUnKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX293bmVyJywKCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsCgkJCQkgICAgICAgJ293bmVyX2lkJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2RlbGltZXRlcicsJ3wnKTsKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2ZpZWxkZGVmcycsMSk7CiAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9maWVsZHZhbHMnLDEpOwogICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnlkZWZzJywxKTsKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NhdGVnb3J5dmFscycsMSk7CiAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9sb29rdXBsYXRsb25nJywwKTsKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NoZWNrZHVwbGljYXRlcycsMSk7CgogICAgIC8vIFNldHVwIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUKICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sJ3RlbXBsYXRlcycsJ29yaWdfc2VhcmNoZm9ybV90ZW1wbGF0ZS50cGwnKTsKICAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICAgICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV1NFQVJDSEZPUk1fVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VhcmNoZm9ybV9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVFNFQVJDSEZPUk1fVEVNUExBVEUsJ1NhbXBsZScpOwogICAgIH0KICAgfQoKIGNhc2UgJzEuMic6CiAgIHsKICAgICAkZmxkcyA9ICJjb21wYW55X2lkIEkgS0VZIE5PVCBOVUxMLCBkYXRlX3NlYXJjaGVkICIuQ01TX0FET0RCX0RULiIgTk9UIE5VTEwsIHBvc3Rjb2RlIEMoMjApIjsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0cyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgfQoKIGNhc2UgJzEuNC4xJzoKICAgewogICAgICRmbiA9IGNtc19qb2luX3BhdGgoX19ESVJfXywndGVtcGxhdGVzJywnb3JpZ19mcm9udGVuZGxpc3RfdGVtcGxhdGUudHBsJyk7CiAgICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAgICAgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVORExJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZnJvbnRlbmRsaXN0X1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRMSVNUX1RFTVBMQVRFLCdTYW1wbGUnKTsKICAgICB9CgogICAgICRmbGRzID0gIgogIAkgICBpZCBJIEtFWSBBVVRPLAoJICAgbmFtZSBDKDI1NSksCiAgCSAgIHBhcmVudF9pZCBJLAoJICAgaGllcmFyY2h5IEMoMjU1KSwKCSAgIGxvbmdfbmFtZSBYCiAgICAgIjsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnaGllcl9pZCBJJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgfQoKIGNhc2UgJzEuNSc6CiAgIHsKICAgICAjIFNldHVwIGRlZmF1bHQgaGllcmFyY2h5IGxpc3QgdGVtcGxhdGUKICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sJ3RlbXBsYXRlcycsJ29yaWdfaGllcmxpc3RfdGVtcGxhdGUudHBsJyk7CiAgICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAgICAgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdISUVSTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdoaWVybGlzdF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVEhJRVJMSVNUX1RFTVBMQVRFLCdTYW1wbGUnKTsKICAgICB9CiAgIH0KCiBjYXNlICcxLjUuMSc6CiAgIHsKICAgICAjIFNldHVwIGRlZmF1bHQgZnJvbnRlbmQgaW1wb3J0IHRlbXBsYXRlCiAgICAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX2Zyb250ZW5kaW1wb3J0X3RlbXBsYXRlLnRwbCcpOwogICAgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgICAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgIH0KICAgfQoKIGNhc2UgJzEuNS4yJzoKIGNhc2UgJzEuNS4zJzoKIGNhc2UgJzEuNS40JzoKIGNhc2UgJzEuNS41JzoKIGNhc2UgJzEuNS42JzoKIGNhc2UgJzEuNS43JzoKIGNhc2UgJzEuNS44JzoKIGNhc2UgJzEuNic6CiAgIHsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcycsCgkJCQkgICAgICdleHRyYTEgQygyNTUpLCBleHRyYTIgQygyNTUpLCBleHRyYTMgQygyNTUpJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICB9CgogY2FzZSAnMS42LjEnOgogY2FzZSAnMS42LjInOgogY2FzZSAnMS42LjMnOgogY2FzZSAnMS42LjQnOgogY2FzZSAnMS43JzoKIGNhc2UgJzEuNy4xJzoKIGNhc2UgJzEuNy4yJzoKICAgewogICAgIC8vIGNvcGllZCBmcm9tIGFib3ZlIHRvIHNvbHZlIGFuIGlzc3VlLi4uIHNob3VsZCBzaWxlbnRseSBmYWlsIGlmIGZpZWxkcyBhbHJlYWR5IGV4aXN0JzsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnbGF0aXR1ZGUgRiwgbG9uZ2l0dWRlIEYsb3duZXJfaWQgSSxoaWVyX2lkIEknKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX2Nvb3JkcycsCgkJCQkgICAgICAgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLAoJCQkJICAgICAgICdsYXRpdHVkZSwgbG9uZ2l0dWRlJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2ZsZF9vd25lcicsCgkJCQkgICAgICAgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLAoJCQkJICAgICAgICdvd25lcl9pZCcpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgLy8gbmV3IHN0dWZmLi4uLgogICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfc3ViamVjdCcsJHRoaXMtPkxhbmcoJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0JykpOwogICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfaXNodG1sJywxKTsKCiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcycsCgkJCQkgICAgICdleHRyYTEgQygyNTUpLCBleHRyYTIgQygyNTUpLCBleHRyYTMgQygyNTUpJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAkZm4gPSBfX0RJUl9fLicvdGVtcGxhdGVzL29yaWdfYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlLnRwbCc7CiAgICAgaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CgkgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCSAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlJywkdGVtcGxhdGUpOwoJIH0KCiAgIH0KCiBjYXNlICcxLjcuMyc6CiB7CiAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCd1cmwgQygyNTUpJyk7CiAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBTRVQgdXJsID0gPyc7CiAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJycpKTsKIH0KfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4xMicpIDwgMCApIHsKICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcycsJ2ltYWdlIEMoMjU1KSxkZXNjcmlwdGlvbiBYJyk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjEzJykgPCAwICkgewogICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLCdkYXRhIFgnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cn0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMTQnKSA8IDAgKSB7CiAgJHRoaXMtPkNyZWF0ZUV2ZW50KCdPbkFkZENvbXBhbnknKTsKICAkdGhpcy0+Q3JlYXRlRXZlbnQoJ09uRGVsZXRlQ29tcGFueScpOwogICR0aGlzLT5DcmVhdGVFVmVudCgnT25FZGl0Q29tcGFueScpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjE1JykgPCAwICkgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2Vfb2xkc2VhcmNoJywxKTsgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgc3R1ZmYuCgogICRmbiA9IGNtc19qb2luX3BhdGgoX19ESVJfXywndGVtcGxhdGVzJywnb3JpZ19uZXdzZWFyY2hfdGVtcGxhdGUudHBsJyk7CiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKCSR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZShDT01QQU5ZRElSX1NFQVJDSEZPUk1fU1lTREZMVFRFTVBMQVRFLCR0ZW1wbGF0ZSk7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ25ld3NlYXJjaF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1NFQVJDSEZPUk1fREZMVFRFTVBMQVRFTkFNRSwnU2FtcGxlJyk7CiAgfQp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjE3JykgPCAwICkgewogICRmbiA9IGNtc19qb2luX3BhdGgoX19ESVJfXywndGVtcGxhdGVzJywnb3JpZ19mcm9udGVuZGFsYnVtX3RlbXBsYXRlLnRwbCcpOwogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRBTEJVTV9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmcm9udGVuZGFsYnVtX1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRBTEJVTV9URU1QTEFURSwnU2FtcGxlJyk7CiAgfQp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjE5JykgPCAwICkgewogICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywnaW9yZGVyIEknKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RjYXRfaW9yZGVyJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMnLCdpb3JkZXInKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyJywnaW9yZGVyIEknKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RoaWVyX2hpZXInLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllcicsJ2hpZXJhcmNoeScpOwogICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIE9SREVSIEJZIGNyZWF0ZV9kYXRlIEFTQyc7CiAgJGlkbGlzdCA9ICRkYi0+R2V0Q29sKCRxdWVyeSk7CiAgaWYoIGlzX2FycmF5KCRpZGxpc3QpICYmIGNvdW50KCRpZGxpc3QpICkgewoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBTRVQgaW9yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwoJJGkgPSAxOwoJZm9yZWFjaCggJGlkbGlzdCBhcyAkb25lICkgewoJICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpKyssKGludCkkb25lKSk7Cgl9CiAgfQoKICAvL2RlYnVnX2Rpc3BsYXkoJGRiLT5zcWwuJyAtLSAnLiRkYi0+RXJyb3JNc2coKSk7CgogICRxdWVyeSA9ICdTRUxFQ1QgaWQsbmFtZSxwYXJlbnRfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBPUkRFUiBCWSBoaWVyYXJjaHknOwogICRoaWVyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogIGlmKCBpc19hcnJheSgkaGllcikgJiYgY291bnQoJGhpZXIpICkgewogICAgJHVwZGF0ZV9oaWVyb3JkZXIgPSBmdW5jdGlvbigkcGFyZW50X2lkID0gLTEpIHVzZSAoJiR1cGRhdGVfaGllcm9yZGVyLCYkaGllcikgewogICAgICAkaW9yZGVyID0gMTsKICAgICAgZm9yZWFjaCggJGhpZXIgYXMgJiRyb3cgKSB7CiAgICAgICAgaWYoICRyb3dbJ3BhcmVudF9pZCddID09ICRwYXJlbnRfaWQgKSB7CgkJICAkcm93Wydpb3JkZXInXSA9ICRpb3JkZXIrKzsKCQkgICR1cGRhdGVfaGllcm9yZGVyKCRyb3dbJ2lkJ10pOwoJCX0KCSAgfQogICAgfTsKCSR1cGRhdGVfaGllcm9yZGVyKCk7CgoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBTRVQgaW9yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwoJZm9yZWFjaCggJGhpZXIgYXMgJHJvdyApIHsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJvd1snaW9yZGVyJ10sJHJvd1snaWQnXSkpOwoJfQoJY2RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CiAgfQp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjE5LjInKSA8IDAgKSB7CiAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9jb21wX2hpZXInLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnaGllcl9pZCcpOwogICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9jb21wX3VybCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCd1cmwnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfY29tcF91cmwyJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsJ3N0YXR1cyx1cmwnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jYXRnX2lvcmRlcicsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywnaW9yZGVyJyk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAvLyBjaGFuZ2VzIHRoZSBoaWVyYXJjaHkgZmllbGQgdG8gdXNlIGl0ZW0gb3JkZXJzLCBpbnN0ZWFkIG9mIGlkJ3MuCiAgY2RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7Cn0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMjAnKSA8IDAgKSB7CiAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBPUkRFUiBCWSBpZCc7CiAgJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAkcXVlcnkyID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwogIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRkYnIpOyAkaSsrICkgewoJJGRiLT5FeGVjdXRlKCRxdWVyeTIsYXJyYXkoJGkrMSwkZGJyWyRpXVsnaWQnXSkpOwogIH0KCiAgJG9sZHNlYXJjaCA9ICR0aGlzLT5MaXN0VGVtcGxhdGVzV2l0aFByZWZpeCgnc2VhcmNoZm9ybV8nLFRSVUUpOwogIGlmKCBpc19hcnJheSgkb2xkc2VhcmNoKSAmJiBjb3VudCgkb2xkc2VhcmNoKSApIHsKCS8vIGp1c3Qgc28gd2UgZG9uJ3QgbG9zZSB0aGlzIGRhdGEsIHdlJ3JlIGdvbm5hIGVkaXQgdGhlc2UgdGVtcGxhdGVzCgkvLyBhbmQgc2F2ZXRoZW0gdW5kZXIgbmV3IG5hbWVzCgkkdG1wbF9wcmVmaXggPSAieyogT0xEIFNFQVJDSCBGT1JNLCBTQVZFRCBGT1IgUkVGRVJFTkNFIFBVUlBPU0VTIEJVVCBOT1QgVVNFQUJMRSAqfVxuIjsKCWZvcmVhY2goICRvbGRzZWFyY2ggYXMgJG9uZSApIHsKCSAgJHRtcGwgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJ3NlYXJjaGZvcm1fJy4kb25lKTsKCSAgJHRtcGwgPSAkdHBtcGxfcHJlZml4IC4gJHRtcGw7CgkgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbmV3c2VhcmNoX29sZF8nLiRvbmUsJHRtcGwpOwoJfQogIH0KCiAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX25ld3NlYXJjaF90ZW1wbGF0ZS50cGwnKTsKICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgewoJJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV1NFQVJDSEZPUk1fVEVNUExBVEUsJHRlbXBsYXRlKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgnbmV3c2VhcmNoX1NhbXBsZV8xLjIwJywkdGVtcGxhdGUpOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRTRUFSQ0hGT1JNX1RFTVBMQVRFLCdTYW1wbGVfMS4yMCcpOwogIH0KfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4yMScpIDwgMCApIHsKICAkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzIiApOwogICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgJGZsZHMgPSAiCglpZCBJIEtFWSBBVVRPLAoJZGF0ZV9zZWFyY2hlZCAiLkNNU19BRE9EQl9EVC4iIE5PVCBOVUxMLAogICAgaXBfYWRkcmVzcyAgQygyNTUpLAogICAgZmV1X3VpZCAgICAgSQogICI7CiAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRmbGRzID0gIgogICAgc2VhcmNoX2lkIEkgS0VZIE5PVCBOVUxMLAogICAgbmFtZSBDKDI1NSkgS0VZIE5PVCBOVUxMLAogICAgdmFsICBDKDI1NSkgTk9UIE5VTEwKICAiOwogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzX3ZhcnMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRmbGRzID0gIgogICAgc2VhcmNoX2lkIEkgS0VZIE5PVCBOVUxMLAogICAgY29tcGFueV9pZCBJIEtFWSBOT1QgTlVMTAogICI7CiAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHNfcmVzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAjIHNldHVwIHNlYXJjaCBzdGF0cyBzdW1tYXJ5IHRlbXBsYXRlCiAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX3NlYXJjaHN0YXRzX3N1bW1hcnlfdGVtcGxhdGUudHBsJyk7CiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKCSR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdTVEFUU1NVTU1BUllfVEVNUExBVEUsJHRlbXBsYXRlKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgnc3RhdHNzdW1tYXJ5X1NhbXBsZScsJHRlbXBsYXRlKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUU1RBVFNTVU1NQVJZX1RFTVBMQVRFLCdTYW1wbGUnKTsKICB9CgogIGNkX3V0aWxzOjpjcmVhdGVfZnVsbHRleHRfaW5kZXgoKTsKfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4yMicpIDwgMCApIHsKICAvLyBjcmVhdGUgbmV3IGZpZWxkcwogICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywncGFyZW50X2lkIEksIGl0ZW1fb3JkZXIgSSwgaGllcmFyY2h5IEMoMjU1KSwgbG9uZ19uYW1lIEMoMjU1KScpOwogICRkaWN0LT5FeGVjdXRlU3FsQXJyYXkoJHNxbGFycmF5KTsKCiAgLy8gY29udmVydCBpb3JkZXIgdG8gaXRlbV9vcmRlcgogICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgU0VUIHBhcmVudF9pZCA9IC0xLCBpdGVtX29yZGVyID0gaW9yZGVyJzsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCiAgLy8gZHJvcCBjb2x1bW5zIHdlIG5vIGxvbmdlciBuZWVkCiAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywnaW9yZGVyLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUnKTsKICAkZGljdC0+RXhlY3V0ZVNxbEFycmF5KCRzcWxhcnJheSk7CgogIC8vIHVwZGF0ZSBoaWVyYXJjaHkgcG9zaXRpb25zIGZvciBjYXRlZ29yaWVzCiAgY2RfY2F0ZWdvcnk6OmNhbGN1bGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7Cn0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMjIuMScpIDwgMCApIHsKICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIFNFVCBwYXJlbnRfaWQgPSAtMSBXSEVSRSBDT0FMRVNDRShwYXJlbnRfaWQsLTEpIDwgMSc7CiAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgY2RfY2F0ZWdvcnk6OmNhbGN1bGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7Cn0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4yMi41JykgPCAwICkgewogIC8vIHRoaXMgc2hvdWxkIHNpbGVudGx5IGZhaWwgaWYgdGhlIHRhYmxlIGFscmVhZHkgZXhpc3RzLgogICRmbGRzID0gIgogICAgIHNlYXJjaF9pZCBJIEtFWSBOT1QgTlVMTCwKICAgICBuYW1lIEMoMjU1KSBLRVkgTk9UIE5VTEwsCiAgICAgdmFsICBDKDI1NSkgTk9UIE5VTEwKICAgIjsKICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0c192YXJzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwp9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMjMnKSA8IDAgKSB7CiAgIyBTZXR1cCBkZWZhdWx0IGFiYyBsaXN0IHRlbXBsYXRlCiAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX2FiY2xpc3RfdGVtcGxhdGUudHBsJyk7CiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdBQkNMSVNUX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2FiY2xpc3RfU2FtcGxlJywkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRBQkNMSVNUX1RFTVBMQVRFLCdTYW1wbGUnKTsKICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IENvbXBhbnlEaXJlY3RvcnkKdmVyc2lvbiA9IDEuMjMuMwpkZXNjcmlwdGlvbiA9IAphdXRob3IgPSBSb2JlcnQgQ2FtcGJlbGwsIFRlZCBLdWxwCmF1dGhvcmVtYWlsID0gY2FsZ3V5MTAwMEBnbWFpbC5jb20sIHRlZEB0ZW4zOS5jb20KbWluY21zdmVyc2lvbiA9IDEuMTIuMQpsYXp5bG9hZGFkbWluID0gMQpsYXp5bG9hZGZyb250ZW5kID0gMApbZGVwZW5kc10KQ0dFeHRlbnNpb25zID0gMS41My4xCkNHU2ltcGxlU21hcnR5ID0gMS45CkpRdWVyeVRvb2xzID0gMS4zLjkKQ0dTbWFydEltYWdlID0gMS4yMQo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_email_template_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYWRtaW4gZW1haWwgZm9ybSAqfQp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW1haWxfc3ViamVjdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZW1haWxfc3ViamVjdCIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1IiB2YWx1ZT0ieyRlbWFpbF9zdWJqZWN0fSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2lzaHRtbCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWVtYWlsX2lzaHRtbCIgdmFsdWU9IjAiLz4KICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1lbWFpbF9pc2h0bWwiIHZhbHVlPSIxIiB7aWYgJGVtYWlsX2lzaHRtbH1jaGVja2VkPSJjaGVja2VkInsvaWZ9Lz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9ZW1haWxfdGVtcGxhdGUiPnskZW1haWxfdGVtcGxhdGV9PC90ZXh0YXJlYT4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RvX2ZhY3RvcnknKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_urlstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndXJsX3JlcXVpcmVkJyl9PHA+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSd1cmxfcmVxdWlyZWQnIHNlbGVjdGVkPSR1cmxfcmVxdWlyZWR9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdXJsX3JlcXVpcmVkJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd1cmxfYXV0b2NyZWF0ZScpfTxwPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0ndXJsX2F1dG9jcmVhdGUnIHNlbGVjdGVkPSR1cmxfYXV0b2NyZWF0ZX0KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb191cmxfYXV0b2NyZWF0ZScpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndXJsX2NyZWF0ZW9uY29weScpfTxwPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0ndXJsX2NyZWF0ZW9uY29weScgc2VsZWN0ZWQ9JHVybF9jcmVhdGVvbmNvcHl9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdXJsX2NyZWF0ZW9uY29weScpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndXJsX3JlZGlyZWN0b2xkJyl9PHA+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSd1cmxfcmVkaXJlY3RvbGQnIHNlbGVjdGVkPSR1cmxfcmVkaXJlY3RvbGR9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdXJsX3JlZGlyZWN0b2xkJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jcmVhdGV1cmxzIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NyZWF0ZXVybHMnKX0iIG9uY2xpY2s9InJldHVybiBjb25maXJtKCd7JG1vZC0+TGFuZygnY29uZmlybV9hdXRvY3JlYXRlX3VybCcpfScpOyIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKe2lmICFpc3NldCgkYWN0aW9ucGFyYW1zLmFqYXgpfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgJCgnYS5kZWxldGVfY2F0JykuY2xpY2soZnVuY3Rpb24oZSkgewogICAgcmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhcmV5b3VzdXJlJyl9Jyk7CiAgfSk7CiAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZV9pbmZvLCNyZW9yZGVyX2NhdGVnb3J5X29wdHMnKS5oaWRlKCk7CgogICQoJ2EjcmVvcmRlcl9jYXRlZ29yeV9tb2RlX2NhbmNlbCcpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfaW5mbywjcmVvcmRlcl9jYXRlZ29yeV9vcHRzJykudG9nZ2xlKCk7CiAgICAkKCdkaXYjY2F0bGlzdF9vcHRzJykudG9nZ2xlKCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0IHNwYW4ucmVwZWF0ZWQnKS5zaG93KCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0IGRpdi5oaWVyaWNvbicpLnNob3coKTsKICAgICQoJ2RpdiNjYXRlZ29yeWxpc3QgdWwnKS5hZGRDbGFzcygnbm9pbmRlbnQnKTsKCiAgICB2YXIgdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2NhdGVnb3JpZXNfdGFiIGFqYXg9MSB1cmxvbmx5PTEganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCcpLmxvYWQodXJsKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnYSNyZW9yZGVyX2NhdGVnb3J5X21vZGVfc3VibWl0JykuY2xpY2soZnVuY3Rpb24oZSkgewogICAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZV9pbmZvLCNyZW9yZGVyX2NhdGVnb3J5X29wdHMnKS50b2dnbGUoKTsKICAgICQoJ2RpdiNjYXRsaXN0X29wdHMnKS50b2dnbGUoKTsKICAgICQoJ2RpdiNjYXRlZ29yeWxpc3Qgc3Bhbi5yZXBlYXRlZCcpLnNob3coKTsKICAgICQoJ2RpdiNjYXRlZ29yeWxpc3QgZGl2LmhpZXJpY29uJykuc2hvdygpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCB1bCcpLmFkZENsYXNzKCdub2luZGVudCcpOwoKICAgIHZhciBsaXN0ID0gJCgnZGl2I2NhdGVnb3J5bGlzdCA+IHVsJykubmVzdGVkU29ydGFibGUoJ3NlcmlhbGl6ZScpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCA+IHVsJykubmVzdGVkU29ydGFibGUoJ2Rlc3Ryb3knKTsKICAgIHZhciB1cmwgPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fYWpheF9jYXRlZ29yeW9yZGVyIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgICAkLnBvc3QodXJsLGxpc3QsCiAgICAgIGZ1bmN0aW9uKGRhdGEsdGV4dFN0YXR1cyxqcVhIUikgewogICAgICAgIHZhciB1cmwgPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fY2F0ZWdvcmllc190YWIgYWpheD0xIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgICAgICAgJCgnZGl2I2NhdGVnb3J5bGlzdCcpLmxvYWQodXJsKTsKICAgICAgfQogICAgKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnYSNyZW9yZGVyX2NhdGVnb3J5X21vZGUnKS5jbGljayhmdW5jdGlvbihlKXsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfaW5mbywjcmVvcmRlcl9jYXRlZ29yeV9vcHRzJykudG9nZ2xlKCk7CgogICAgJCgnZGl2I2NhdGxpc3Rfb3B0cycpLnRvZ2dsZSgpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCBzcGFuLnJlcGVhdGVkJykuaGlkZSgpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCBkaXYuaGllcmljb24nKS5oaWRlKCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0IHVsJykucmVtb3ZlQ2xhc3MoJ25vaW5kZW50Jyk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0ID4gdWwnKS5uZXN0ZWRTb3J0YWJsZSh7CiAgICAgIGRpc2FibGVOZXN0aW5nOiAnbm8tbmVzdCcsCiAgICAgIGZvcmNlUGxhY2Vob2xkZXJTaXplOiB0cnVlLAogICAgICBoYW5kbGU6ICdkaXYnLAogICAgICBpdGVtczogJ2xpJywKICAgICAgb3BhY2l0eTogLjYsCiAgICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXInLAogICAgICB0YWJTaXplOiAyMCwKICAgICAgdG9sZXJhbmNlOiAncG9pbnRlcicsCiAgICAgIGxpc3RUeXBlOiAndWwnLAogICAgICB0b2xlcmFuY2VFbGVtZW50OiAnPiBkaXYnCiAgICB9KTsKICB9KTsKfSk7Cjwvc2NyaXB0PgoKPGRpdiBpZD0icmVvcmRlcl9jYXRlZ29yeV9tb2RlX2luZm8iIGNsYXNzPSJpbmZvcm1hdGlvbiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+eyRtb2QtPkxhbmcoJ3Jlb3JkZXJfbW9kZScpfTwvZGl2Pgo8ZGl2IGlkPSJyZW9yZGVyX2NhdGVnb3J5X29wdHMiIGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgPGEgaWQ9InJlb3JkZXJfY2F0ZWdvcnlfbW9kZV9jYW5jZWwiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0nZmFsc2UuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnY2FuY2VsJyl9IHskbW9kLT5MYW5nKCdjYW5jZWwnKX08L2E+Jm5ic3A7CiAgPGEgaWQ9InJlb3JkZXJfY2F0ZWdvcnlfbW9kZV9zdWJtaXQiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0ndHJ1ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdzdWJtaXQnKX0geyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYT4KPC9kaXY+CjxkaXYgaWQ9ImNhdGxpc3Rfb3B0cyIgY2xhc3M9InBhZ2VvcHRpb25zIj4KICA8YSBpZD0iYWRkX2NhdGVnb3J5IiBocmVmPSJ7JHVybF9hZGRfY2F0ZWdvcnl9Ij57Y2dpbWFnZSBjbGFzcz0ic3lzdGVtaWNvbiIgaW1hZ2U9J2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnYWRkY2F0ZWdvcnknKX0geyRtb2QtPkxhbmcoJ2FkZGNhdGVnb3J5Jyl9PC9hPgogIHtpZiBpc3NldCgkY2F0ZWdvcmllcyl9CiAgPGEgaWQ9InJlb3JkZXJfY2F0ZWdvcnlfbW9kZSI+e2NnaW1hZ2UgY2xhc3M9InN5c3RlbWljb24iIGltYWdlPSdpY29ucy9zeXN0ZW0vcmVvcmRlci5naWYnIGFsdD0kbW9kLT5MYW5nKCdyZW9yZGVyJyl9IHskbW9kLT5MYW5nKCdyZW9yZGVyJyl9PC9hPgogIHsvaWZ9CjwvZGl2Pgp7L2lmfSB7KiBhamF4ICp9Cgp7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQp7ZnVuY3Rpb24gZG9jYXR9Cjx1bCBjbGFzcz0ibm9pbmRlbnQiPgogIHtmb3JlYWNoICRsaXN0IGFzICRub2RlfQogICAge21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249ZWRpdGNhdGVnb3J5IGNhdGlkPSRub2RlLT5pZCB1cmxvbmx5PTEgYXNzaWduPSdlZGl0X3VybCd9CiAgICB7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1kZWxldGVjYXRlZ29yeSBjYXRpZD0kbm9kZS0+aWQgdXJsb25seT0xIGFzc2lnbj0nZGVsZXRlX3VybCd9CiAgICA8bGkgaWQ9InskYWN0aW9uaWR9Y2F0X3skbm9kZS0+aWR9Ij4KICAgICAge2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwgaGllcm5vZGUgeyRyb3djbGFzc30iPgogICAgICAgIDxkaXYgY2xhc3M9ImhpZXJuYW1lIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZXBlYXRlZCI+e3JlcGVhdCBzdHJpbmc9JyZuYnNwOyZndDsmbmJzcDsnIHRpbWVzPSRub2RlLT5kZXB0aH08L3NwYW4+PGEgaHJlZj0ieyRlZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+eyRub2RlLT5uYW1lfTwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoaWVyaWNvbiI+CgkgIHtpZiAhaXNzZXQoJG5vZGUtPmNoaWxkcmVuKX0KICAgICAgICAgIDxhIGhyZWY9InskZGVsZXRlX3VybH0iIGNsYXNzPSJkZWxfY2F0IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlJyl9PC9hPgoJICB7L2lmfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhpZXJpY29uIj4KICAgICAgICAgIDxhIGhyZWY9InskZWRpdF91cmx9IiBjbGFzcz0iZWRpdF9jYXQiIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9lZGl0LmdpZicgYWx0PSRtb2QtPkxhbmcoJ2VkaXQnKX08L2E+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICB7aWYgaXNzZXQoJG5vZGUtPmNoaWxkcmVuKX17ZG9jYXQgbGlzdD0kbm9kZS0+Y2hpbGRyZW59ey9pZn0KICAgIDwvbGk+CiAgey9mb3JlYWNofQo8L3VsPgp7L2Z1bmN0aW9ufQoKPGRpdiBpZD0iY2F0ZWdvcnlsaXN0IiBjbGFzcz0iaGllcmxpc3QgY2YiPgogIDxkaXYgY2xhc3M9ImhlYWRlciI+eyRtb2QtPkxhbmcoJ2NhdGVnb3JpZXMnKX08L2Rpdj4KICB7ZG9jYXQgbGlzdD0kY2F0ZWdvcmllc30KPC9kaXY+CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/companylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJyNzZWxfYWxsJykuY2xpY2soZnVuY3Rpb24oKXsKICAgIHZhciB2ID0gJCh0aGlzKS5hdHRyKCdjaGVja2VkJyk7CiAgICBpZiggdiA9PSB1bmRlZmluZWQgKSB7CiAgICAgICQoJy5idWxrJykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwogICAgfSBlbHNlIHsKICAgICAgJCgnLmJ1bGsnKS5hdHRyKCdjaGVja2VkJyx2KTsKICAgIH0KICB9KTsKICAkKCcuYnVsaycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAkKCcjc2VsX2FsbCcpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTsKICB9KTsKICAkKCcjdG9nZ2xlX2ZpbHRlcicpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAkKCcjY29tcGFueWZpbHRlcnMnKS5kaWFsb2coewogICAgICAgd2lkdGg6ICAnYXV0bycsCiAgICAgICBoZWlnaHQ6ICdhdXRvJywKICAgICAgIG1vZGFsOiB0cnVlCiAgICB9KTsKICB9KTsKfSk7CnsvbGl0ZXJhbH08L3NjcmlwdD4KCjxkaXYgaWQ9ImNvbXBhbnlmaWx0ZXJzIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIHRpdGxlPSJ7JG1vZC0+TGFuZygnZmlsdGVyJyl9Ij4KeyRmaWx0ZXJfZm9ybXN0YXJ0fQo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjogbm9uZTsiPgo8dHI+CiAgPHRkPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCduYW1lJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfbmFtZSIgc2l6ZT0iNDAiIHZhbHVlPSJ7JGZpbHRlci5uYW1lfSIvPgogICAgICA8YnIvPgogICAgICB7JG1vZC0+TGFuZygnaW5mb19maWx0ZXJfbmFtZScpfQogICAgPC9wPgogIDwvZGl2PgogIDwvdGQ+CgogIDx0ZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc3RhdHVzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmlsdGVyX3N0YXR1cyI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdGF0dXNlcyBzZWxlY3RlZD0kZmlsdGVyLnN0YXR1c30KICAgICAgPHNlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICA8dGQ+CjwvdHI+Cjx0cj4KICA8dGQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2FkZHJlc3MnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9hZGRyZXNzIiBzaXplPSI0MCIgdmFsdWU9InskZmlsdGVyLmFkZHJlc3N9Ii8+CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2ZpbHRlcl9hZGRyZXNzJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPC90ZD4KCiAgPHRkPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwYWdlbGltaXQnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfcGFnZWxpbWl0Ij4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHBhZ2VsaW1pdHMgc2VsZWN0ZWQ9JGZpbHRlci5wYWdlbGltaXR9CiAgICAgIDxzZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPHRkPgo8L3RyPgoKPHRyPgogIHtpZiBpc3NldCgkY2F0ZWdvcmllcyl9CiAgPHRkPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjYXRlZ29yeScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9jYXRlZ29yeWlkIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNhdGVnb3JpZXMgc2VsZWN0ZWQ9JGZpbHRlci5jYXRlZ29yeWlkfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICA8L3RkPgogIHsvaWZ9CgogIDx0ZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc29ydGJ5Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmlsdGVyX3NvcnRieSI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzb3J0aW5ncyBzZWxlY3RlZD0kZmlsdGVyLnNvcnRieX0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPC90ZD4KCiAgPHRkPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzb3J0b3JkZXInKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfc29ydG9yZGVyIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHNvcnRvcmRlcnMgc2VsZWN0ZWQ9JGZpbHRlci5zb3J0b3JkZXJ9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDwvdGQ+CjwvdHI+Cgo8dHI+CiAgPHRkPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHknKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9oaWVyYXJjaHkiIHNpemU9IjQwIiB2YWx1ZT0ieyRmaWx0ZXIuaGllcn0iLz4KICAgICAgPGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fZmlsdGVyX2hpZXJhcmNoeScpfQogICAgPC9wPgogIDwvZGl2PgogIDwvdGQ+CgogIDx0ZD4KICA8L3RkPgo8L3RyPgoKPHRyPgogIDx0ZCBjb2xzcGFuPSIyIj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9yZXNldCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldCcpfSIvPgogICAgPC9wPgogIDwvZGl2PgogIDwvdGQ+CjwvdHI+Cgo8L3RhYmxlPgp7JGZpbHRlcl9mb3JtZW5kfQo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj48cCBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGlkPSJ0b2dnbGVfZmlsdGVyIj57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2VkaXQuZ2lmJyBjbGFzcz0nc3lzdGVtaWNvbicgYWx0PSRtb2QtPkxhbmcoJ2VkaXRfZmlsdGVyJyl9IHskbW9kLT5MYW5nKCdlZGl0X2ZpbHRlcicpfSB7aWYgaXNzZXQoJGZpbHRlci5hcHBsaWVkKX0mbmJzcDs8c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+KHskbW9kLT5MYW5nKCdpbnVzZScpfSk8L3NwYW4+ey9pZn08L2FwcGxpZWQ+Jm5ic3A7CiAgeyRhZGRsaW5rfXtpZiBpc3NldCgkZXhwb3J0Y3N2KX0mbmJzcDsmbmJzcDt7JGV4cG9ydGNzdn17L2lmfSZuYnNwOyZuYnNwO3skaW1wb3J0Y3N2fSZuYnNwOyZuYnNwO3skaW1wb3J0a21sfQogIHtpZiBpc3NldCgkbmF2KX0KICA8c3BhbiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+CiAgICB7aWYgJG5hdi0+Z2V0X2N1cnJlbnRfcGFnZSgpID4gMX0KICAgIDxhIGhyZWY9InskbmF2LT5nZXRfZmlyc3RwYWdlX3VybCgpfSI+eyRtb2QtPkxhbmcoJ2ZpcnN0cGFnZScpfTwvYT4mbmJzcDsKICAgIDxhIGhyZWY9InskbmF2LT5nZXRfcHJldnBhZ2VfdXJsKCl9Ij57JG1vZC0+TGFuZygncHJldnBhZ2UnKX08L2E+Jm5ic3A7CiAgICB7L2lmfQogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPnskbW9kLT5MYW5nKCdwYWdlJyl9IHskbmF2LT5nZXRfY3VycmVudF9wYWdlKCl9IHskbW9kLT5MYW5nKCdvZicpfSB7JG5hdi0+Z2V0X3BhZ2VfY291bnQoKX08c3Bhbj4KICAgIHtpZiAkbmF2LT5nZXRfY3VycmVudF9wYWdlKCkgPCAkbmF2LT5nZXRfcGFnZV9jb3VudCgpfQogICAgPGEgaHJlZj0ieyRuYXYtPmdldF9uZXh0cGFnZV91cmwoKX0iPnskbW9kLT5MYW5nKCduZXh0cGFnZScpfTwvYT4mbmJzcDsKICAgIDxhIGhyZWY9InskbmF2LT5nZXRfbGFzdHBhZ2VfdXJsKCl9Ij57JG1vZC0+TGFuZygnbGFzdHBhZ2UnKX08L2E+Jm5ic3A7CiAgICB7L2lmfQogIDwvc3Bhbj4KICB7L2lmfQo8L3A+PC9kaXY+Cgp7aWYgJGl0ZW1jb3VudCA+IDB9CnskYnVsa19mb3Jtc3RhcnR9Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSBjbXNfc29ydGFibGUgdGFibGVzb3J0ZXIiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPnskaWR0ZXh0fTwvdGg+CgkJCTx0aD57JGNvbXBhbnl0ZXh0fTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57JG1vZC0+TGFuZygnb3duZXInKX08L3RoPgoJCQk8dGg+eyR3ZWJzaXRldGV4dH08L3RoPgoJCQk8dGg+eyRtb2QtPkxhbmcoJ3VybCcpfTwvdGg+CgkJCTx0aD57JG1vZC0+TGFuZygnc3RhdHVzJyl9PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ic2VsX2FsbCIgdmFsdWU9Ii0xIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3NlbGVjdF9hbGwnKX0iLz48L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJe2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KCQk8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJCQk8dGQ+eyRlbnRyeS0+aWR9PC90ZD4KCQkJPHRkPnskZW50cnktPmNvbXBhbnlfbmFtZX08L3RkPgoJICAgICAgICAgICAgICAgIDx0ZD57aWYgaXNzZXQoJGVudHJ5LT5vd25lcil9eyRlbnRyeS0+b3duZXJ9ey9pZn08L3RkPgoJCQk8dGQ+eyRlbnRyeS0+d2Vic2l0ZX08L3RkPgoJCQk8dGQ+eyRlbnRyeS0+dXJsfTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57JG1vZC0+TGFuZygkZW50cnktPnN0YXR1cyl9PC90ZD4KCQkJPHRkPnskZW50cnktPmNvcHlsaW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWJ1bGtbXSIgdmFsdWU9InskZW50cnktPmlkfSIgY2xhc3M9ImJ1bGsiLz48L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CjxkaXYgY2xhc3M9InBhZ2Vjb250YWluZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPgp7JG1vZC0+TGFuZygnd2l0aF9zZWxlY3RlZCcpfToKPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWJ1bGthY3Rpb24iPgogIDxvcHRpb24gdmFsdWU9ImRlbGV0ZSI+eyRtb2QtPkxhbmcoJ2RlbGV0ZScpfTwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImRpc2FibGUiPnskbW9kLT5MYW5nKCdkaXNhYmxlJyl9PC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0icHVibGlzaCI+eyRtb2QtPkxhbmcoJ3B1Ymxpc2gnKX08L29wdGlvbj4KPC9zZWxlY3Q+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9YnVsa19zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CjwvZGl2Pgp7JGJ1bGtfZm9ybWVuZH0Ke2Vsc2V9CjxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciI+CnskbW9kLT5MYW5nKCdlcnJvcl9ub2ZpbHRlcm1hdGNoZXMnKX0KPC9kaXY+CnsvaWZ9Cgp7aWYgJGl0ZW1jb3VudCA+IDEwIG9yIGlzc2V0KCRuYXYpfQo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+PHAgY2xhc3M9InBhZ2VvcHRpb25zIj4KICB7JGFkZGxpbmt9e2lmIGlzc2V0KCRleHBvcnRjc3YpfSZuYnNwOyZuYnNwO3skZXhwb3J0Y3N2fXsvaWZ9Jm5ic3A7Jm5ic3A7eyRpbXBvcnRjc3Z9Jm5ic3A7Jm5ic3A7eyRpbXBvcnRrbWx9CjwvcD48L2Rpdj4Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/dflt_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHAgY2xhc3M9Indhcm5pbmciPnskaW5mb19kZmx0X3RlbXBsYXRlfTwvcD4Ke2ZvcmVhY2ggZnJvbT0kZGZsdF90cGxfcGFydHMgaXRlbT0ncGFydCd9CiB7JHBhcnR9CnsvZm9yZWFjaH0K]]></data>
	</file>
	<file>
	  <filename>/templates/do_importcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCd0aXRsZV9pbXBvcnRfcmVwb3J0Jyl9PC9oMz4KCgp7aWYgaXNzZXQoJGVycm9ycyl9CiAgPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4KICA8dWw+CiAge2ZvcmVhY2ggZnJvbT0kZXJyb3JzIGl0ZW09J29uZSd9CiAgICA8bGk+eyRvbmV9PC9saT4KICB7L2ZvcmVhY2h9CiAgPC91bD4KICA8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiIGJvcmRlcj0iMCI+CiAgICA8dHI+CiAgICAgIDx0ZD57JG1vZC0+TGFuZygncHJvbXB0X2NvbXBhbmllc19pbXBvcnRlZCcpfTo8L3RkPgogICAgICA8dGQgYWxpZ249ImxlZnQiPnskbnVtX2NvbXBhbmllc308L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPnskbW9kLT5MYW5nKCdwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJyl9OjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+eyRudW1fZmllbGRkZWZzfTwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJyl9OjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+eyRudW1fY2F0ZWdvcmllc308L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPnskbW9kLT5MYW5nKCdwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnKX06PC90ZD4KICAgICAgPHRkIGFsaWduPSJsZWZ0Ij57JG51bV9oaWVyfTwvdGQ+CiAgICA8L3RyPgogIDwvdGFibGU+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxhIGhyZWY9InskcmV0dXJuX3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygncmV0dXJuJyl9Ij57JG1vZC0+TGFuZygncmV0dXJuJyl9PC9hPgogIDwvcD4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKe2lmICRjYXRlZ29yeS5pZCA8IDF9CiAgPGgzPnskbW9kLT5MYW5nKCdhZGRfY2F0ZWdvcnknKX08L2gzPgp7ZWxzZX0KICA8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfY2F0ZWdvcnknKX08L2gzPgp7L2lmfQoKeyRzdGFydGZvcm19Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgoJCSAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgoJCTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPip7JG1vZC0+TGFuZygnbmFtZScpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bmFtZSIgdmFsdWU9InskY2F0ZWdvcnkubmFtZX0iIG1heGxlbmd0aD0iMjU1IiByZXF1aXJlZD0icmVxdWlyZWQiLz4KCQk8L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRtb2QtPkxhbmcoJ3BhcmVudCcpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXBhcmVudF9pZCI+CgkJICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjYXRlZ29yaWVzIHNlbGVjdGVkPSRjYXRlZ29yeS5wYXJlbnRfaWR9CgkJICAgPC9zZWxlY3Q+CgkJPC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2Rlc2NyaXB0aW9uJyl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgICAge2NnZV90ZXh0YXJlYSB3eXNpd3lnPTEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdkZXNjcmlwdGlvbicgY29udGVudD0kY2F0ZWdvcnkuZGVzY3JpcHRpb259CiAgICAgICAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaW1hZ2V0ZXh0Jyl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9aW1hZ2UiLz4KICAgICAgICAgICAgICAgICAge2lmICRjYXRlZ29yeS5pbWFnZSAhPSAnJ30KICAgICAgICAgICAgICAgICAgICA8YnIvPnskbW9kLT5MYW5nKCdjdXJyZW50X3ZhbHVlJyl9OiB7JGltYWdlfQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIG5hbWU9InskYWN0aW9uaWR9ZGVsaW1hZ2UiPiZuYnNwO3skbW9kLT5MYW5nKCdkZWxldGUnKX0KICAgICAgICAgICAgICAgICAgey9pZn0KICAgICAgICAgICAgICAgIDwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHRyYTEnKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1leHRyYTEiIHZhbHVlPSJ7JGNhdGVnb3J5LmV4dHJhMX0iIG1heGxlbmd0aD0iMjU1IiBzaXplPSI1MCIvPgoJCTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHRyYTInKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1leHRyYTIiIHZhbHVlPSJ7JGNhdGVnb3J5LmV4dHJhMn0iIG1heGxlbmd0aD0iMjU1IiBzaXplPSI1MCIvPgoJCTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHRyYTMnKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1leHRyYTMiIHZhbHVlPSJ7JGNhdGVnb3J5LmV4dHJhM30iIG1heGxlbmd0aD0iMjU1IiBzaXplPSI1MCIvPgoJCTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editcompany.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovL3ZhciBjb21waWQgPSAneyRjb21waWR8ZGVmYXVsdDonJ30nOwp2YXIgYWN0aW9uaWQgPSAneyRhY3Rpb25pZH0nOwp2YXIgZ2VvY29kZXVybCAgPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J0NvbXBhbnlEaXJlY3RvcnknIGFjdGlvbj0nZ2VvbG9jYXRlJyB1cmxvbmx5PTEganNmcmllbmRseT0xfScgKyAnJnN1cHByZXNzb3V0cHV0PWZhbHNlJzsKdmFyIGNoZWNrdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDb21wYW55RGlyZWN0b3J5JyBhY3Rpb249J2NoZWNrdXJsJyB1cmxvbmx5PTEganNmcmllbmRseT0xfScgKyAnJnNob3d0ZW1wbGF0ZT1mYWxzZSc7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJy5leHBhbmRpdCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAkKHRoaXMpLnBhcmVudCgpLm5leHQoJy5leHBhbmRhYmxlJykuc2xpZGVUb2dnbGUoMTAwMCk7CiAgfSk7CiAgJCgnI2J0bl9sb29rdXAnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciB0bXAgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShhY3Rpb25pZCsnYWRkcmVzcycpOwogICAgdmFyIGFkZHJlc3MgPSB0bXBbMF0udmFsdWU7CgogICAgdmFyIGxhdCA9IDA7CiAgICB2YXIgbG9uZyA9IDA7CiAgICBqUXVlcnkucG9zdChnZW9jb2RldXJsLCAneyRhY3Rpb25pZH1hZGRyZXNzPScrYWRkcmVzcywKICAJZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICBpZiggZGF0YS5zdGF0dXMgPT0gJ3N1Y2Nlc3MnICkgewogICAgICAgICAgICAgIGxhdCA9IGRhdGEubGF0OyBsb25nPWRhdGEubG9uOwoKICAgICAgICAgICAgICB2YXIgbGF0ZmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShhY3Rpb25pZCsnbGF0aXR1ZGUnKVswXTsKICAgICAgICAgICAgICB2YXIgbG9uZ2ZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoYWN0aW9uaWQrJ2xvbmdpdHVkZScpWzBdOwogIAkgICAgICBsYXRmaWVsZC52YWx1ZSA9IGxhdDsKCSAgICAgIGxvbmdmaWVsZC52YWx1ZSA9IGxvbmc7CiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9Cgl9LCdqc29uJyk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7CgogICQoJ1tuYW1lPWJ0bl9nZXR1cmxdJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudCgkKCcjbmFtZXRleHQnKS52YWwoKSk7CiAgICB2YXIgdHVybCA9IGVuY29kZVVSSUNvbXBvbmVudCgkKCcjdXJsdGV4dCcpLnZhbCgpKTsKICAgIGlmKCB0dXJsICE9ICcnICkgewogICAgICBhbGVydCgneyRtb2QtPkxhbmcoJ2Vycm9yX3VybG5vdGVtcHR5Jyl9Jyk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICB2YXIgdXJsID0gY2hlY2t1cmwucmVwbGFjZSgvYW1wOy9nLCcnKTsKICAgIGpRdWVyeS5wb3N0KHVybCwnbTFfY2RfbmFtZT0nK25hbWUsCiAgICAJICBmdW5jdGlvbihkYXRhKSB7CgkgICAgaWYoIGRhdGEuc3RhdHVzID09ICdPSycgKSB7CiAgICAgICAgICAgICAgJCgnI3VybHRleHQnKS52YWwoZGF0YS51cmwpOwoJICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCAnanNvbicgKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnW25hbWU9YnRuX2NoZWNrdXJsXScpLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoalF1ZXJ5KCcjbmFtZXRleHQnKS52YWwoKSk7CiAgICB2YXIgdHVybCA9IGVuY29kZVVSSUNvbXBvbmVudChqUXVlcnkoJyN1cmx0ZXh0JykudmFsKCkpOwogICAgaWYoIHR1cmwgPT0gJycgKSByZXR1cm47CgogICAgdmFyIHVybCA9IGNoZWNrdXJsLnJlcGxhY2UoL2FtcDsvZywnJyk7CiAgICBqUXVlcnkucG9zdCh1cmwsJ20xX2NkX25hbWU9JytuYW1lKycmbTFfY2RfdXJsPScrdHVybCwKCWZ1bmN0aW9uKGRhdGEpIHsKCSAgaWYoIGRhdGEuc3RhdHVzID09ICdPSycgKSB7CgkgICAgYWxlcnQoJ3VybCBpcyBva2F5Jyk7CgkgIH0gZWxzZSB7CgkgICAgYWxlcnQoJ3Byb2JsZW1zIHdpdGggdGhlIFVSTCcpCgkgIH0KICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9LCAnanNvbicgKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnaW5wdXQuY2F0X3NlbCcpLmNoYW5nZShmdW5jdGlvbigpewogICAgaWYoICQodGhpcykuaXMoJzpjaGVja2VkJykgKSB7CiAgICAgICQodGhpcykucGFyZW50KCkubmV4dCgnYS5jYXRfZXh0cmFpbmZvJykuc2hvdygpOwogICAgfSBlbHNlIHsKICAgICAgJCh0aGlzKS5wYXJlbnQoKS5uZXh0KCdhLmNhdF9leHRyYWluZm8nKS5oaWRlKCk7CiAgICB9CiAgfSkKICAkKCdpbnB1dC5jYXRfc2VsJykudHJpZ2dlcignY2hhbmdlJyk7CgogICQoJ2EuY2F0X2V4dHJhaW5mbycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgY2F0aWQgPSAkKHRoaXMpLmRhdGEoJ2NhdGlkJykKICAgIHZhciBjYXRuYW1lID0gJCh0aGlzKS5kYXRhKCdjYXRuYW1lJykKICAgIHZhciBlMSA9ICJpbnB1dFtuYW1lPSd7JGFjdGlvbmlkfWNhdGVnb3J5X2V4dHJhMVtpZC0iK2NhdGlkKyJdJ10iOwogICAgdmFyIGUyID0gImlucHV0W25hbWU9J3skYWN0aW9uaWR9Y2F0ZWdvcnlfZXh0cmEyW2lkLSIrY2F0aWQrIl0nXSI7CiAgICB2YXIgZTMgPSAiaW5wdXRbbmFtZT0neyRhY3Rpb25pZH1jYXRlZ29yeV9leHRyYTNbaWQtIitjYXRpZCsiXSddIjsKICAgICQoJyNjYXRfZXh0cmExJykudmFsKCQoZTEpLnZhbCgpKTsKICAgICQoJyNjYXRfZXh0cmEyJykudmFsKCQoZTIpLnZhbCgpKTsKICAgICQoJyNjYXRfZXh0cmEzJykudmFsKCQoZTMpLnZhbCgpKTsKICAgICQoJyNjYXRfZXh0cmFpbmZvX2RsZycpLmF0dHIoJ3RpdGxlJywneyRtb2QtPkxhbmcoJ2NhdF9leHRyYWluZm8nKX06ICcrY2F0bmFtZSkuZGlhbG9nKHsKICAgICAgbW9kYWw6IHRydWUsCiAgICAgIGhlaWdodDogJ2F1dG8nLAogICAgICBidXR0b25zOiBbCiAgICAgICAgewogICAgICAgICAgdGV4dDogJ3skbW9kLT5MYW5nKCdzdWJtaXQnKX0nLAoJICBjbGljazogZnVuY3Rpb24oKSB7CgkgICAgJChlMSkudmFsKCQoJyNjYXRfZXh0cmExJykudmFsKCkpOwoJICAgICQoZTIpLnZhbCgkKCcjY2F0X2V4dHJhMicpLnZhbCgpKTsKCSAgICAkKGUzKS52YWwoJCgnI2NhdF9leHRyYTMnKS52YWwoKSk7CgkgICAgJCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7CgkgIH0KCX0KICAgICAgXQogICAgfSk7CiAgfSkKICAvKiBqUXVlcnkoJ2EuZmFuY3lib3gnKS5mYW5jeWJveCgpOyAqLwp9KTsKPC9zY3JpcHQ+Cgp7JHN0YXJ0Zm9ybX0KPGgzPgp7aWYgaXNzZXQoJGNvbXBpZCkgJiYgJGNvbXBpZH0KICB7JG1vZC0+TGFuZygncHJvbXB0X2VkaXRjb21wYW55Jyl9OiB7JGNvbXBhbnlfbmFtZX0gKHskY29tcGlkfSkKe2Vsc2V9CiAgeyRtb2QtPkxhbmcoJ3Byb21wdF9hZGRjb21wYW55Jyl9CnsvaWZ9CjwvaDM+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXtpZiBpc3NldCgkY2FuY2VsKX17JGNhbmNlbH17L2lmfTwvcD4KPC9kaXY+Cgp7JG1vZC0+U3RhcnRUYWJIZWFkZXJzKCl9CnskbW9kLT5TZXRUYWJIZWFkZXIoJ2NvbXBhbnknLCRtb2QtPkxhbmcoJ2NvbXBhbnknKSl9CnskbW9kLT5TZXRUYWJIZWFkZXIoJ2ZpZWxkcycsJG1vZC0+TGFuZygnZmllbGRzJykpfQp7aWYgaXNzZXQoJGFsYnVtX2ZpZWxkX2V4aXN0cykgJiYgaXNzZXQoJGNvbXBpZCkgJiYgJGNvbXBpZH0KeyRtb2QtPlNldFRhYkhlYWRlcignYWxidW0nLCRtb2QtPkxhbmcoJ2FsYnVtJykpfQp7L2lmfQp7JG1vZC0+RW5kVGFiSGVhZGVycygpfQoKeyRtb2QtPlN0YXJ0VGFiQ29udGVudCgpfQp7JG1vZC0+U3RhcnRUYWIoJ2NvbXBhbnknKX0KPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzYiPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPip7JG5hbWV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibmFtZXRleHQiIG5hbWU9InskYWN0aW9uaWR9ZXhfY29tcGFueV9uYW1lIiB2YWx1ZT0ieyRjb21wYW55X25hbWV9IiBzaXplPSIzMCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgICAgICAgICAgICAgIDwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYWRkcmVzc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFkZHJlc3MiIHZhbHVlPSJ7JGFkZHJlc3N9IiBzaXplPSI1MCIvPgogICAgICAgICAgICAgICAgICB7aWYgaXNzZXQoJGNhbl9nZW9jb2RlKX0KCQkgIDxici8+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYnRuX2xvb2t1cCIgaWQ9ImJ0bl9sb29rdXAiIHZhbHVlPSJ7JG1vZC0+TGFuZygnbG9va3VwJyl9Ii8+CiAgICAgICAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBjb29yZHMiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2xhdGl0dWRlJyl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bGF0aXR1ZGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgY29vcmRzIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdsb25naXR1ZGUnKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRsb25naXR1ZGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0ZWxlcGhvbmV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHRlbGVwaG9uZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZheHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0ZmF4fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW1haWx0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGVtYWlsfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskd2Vic2l0ZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0d2Vic2l0ZX08L3A+Cgk8L2Rpdj4KICA8L2Rpdj57KiAuZ3JpZF82ICp9CiAgPGRpdiBjbGFzcz0iZ3JpZF82Ij4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN0YXR1c3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0c3RhdHVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPntpZiAkdXJsX3JlcXVpcmVkfSp7L2lmfXskbW9kLT5MYW5nKCd1cmwnKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InVybHRleHQiIG5hbWU9InskYWN0aW9uaWR9dXJsIiB2YWx1ZT0ieyR1cmx9IiBzaXplPSIzMCIgbWF4bGVuZ3RoPSIyNTUiPiZuYnNwOwogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJidG5fZ2V0dXJsIiBpZD0iYnRuX2dldHVybCIgdmFsdWU9InskbW9kLT5MYW5nKCdnZXR1cmwnKX0iLz4KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYnRuX2NoZWNrdXJsIiBpZD0iYnRuX2NoZWNrdXJsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NoZWNrJyl9Ii8+CiAgICAgICAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCgl7aWYgJGNhdGVnb3JpZXNjb3VudCBndCAwfQogICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2NhdGVnb3JpZXMnKX06PC9sZWdlbmQ+CgkgIDxkaXYgc3R5bGU9Im1heC1oZWlnaHQ6IDMwZW07IG92ZXJmbG93LXk6IGF1dG87IHBhZGRpbmctdG9wOiA1cHg7IHBhZGRpbmctYm90dG9tOiA1cHg7Ij4KCSAge2ZvcmVhY2ggJGNhdGVnb3JpZXMgYXMgJGNhdGVnb3J5fQoJICAgIDxsYWJlbD4KCSAgICAgIHtyZXBlYXQgc3RyaW5nPScmbmJzcDsmbmJzcDsnIHRpbWVzPSRjYXRlZ29yeS0+ZGVwdGh9CgkgICAgICA8aW5wdXQgY2xhc3M9ImNhdF9zZWwiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNhdGVnb3J5W2lkLXskY2F0ZWdvcnktPmlkfV0iIHZhbHVlPSJ0cnVlIiB7aWYgJGNhdGVnb3J5LT52YWx1ZXxkZWZhdWx0OjAgPT0gMX1jaGVja2VkPSJjaGVja2VkInsvaWZ9Lz4geyRjYXRlZ29yeS0+bmFtZX0KCSAgICA8L2xhYmVsPgoJICAgIDxhIGNsYXNzPSJjYXRfZXh0cmFpbmZvIiBkYXRhLWNhdG5hbWU9InskY2F0ZWdvcnktPm5hbWV9IiBkYXRhLWNhdGlkPSJ7JGNhdGVnb3J5LT5pZH0iPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0naWNvbnMvc3lzdGVtL2V4cGFuZC5naWYnIGFsdD0iZm9vIn08L2E+CgkgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jYXRlZ29yeV9leHRyYTFbaWQteyRjYXRlZ29yeS0+aWR9XSIgdmFsdWU9InskY2F0ZWdvcnktPmV4dHJhMV92YWx8ZGVmYXVsdDonJ30iLz4KCSAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNhdGVnb3J5X2V4dHJhMltpZC17JGNhdGVnb3J5LT5pZH1dIiB2YWx1ZT0ieyRjYXRlZ29yeS0+ZXh0cmEyX3ZhbHxkZWZhdWx0OicnfSIvPgoJICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2F0ZWdvcnlfZXh0cmEzW2lkLXskY2F0ZWdvcnktPmlkfV0iIHZhbHVlPSJ7JGNhdGVnb3J5LT5leHRyYTNfdmFsfGRlZmF1bHQ6Jyd9Ii8+CgkgICAge2lmICEkY2F0ZWdvcnlAbGFzdH08YnIvPnsvaWZ9CgkgIHsvZm9yZWFjaH0KCSAgPC9kaXY+CiAgICAgICAgPC9maWVsZHNldD4KCXsvaWZ9CgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHknKX06PC9wPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGhpZXJwb3N9PC9wPgogICAgICAgIDwvZGl2Pgp7aWYgaXNzZXQoJGZldV91c2Vycyl9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ293bmVyJyl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfW93bmVyX2lkIj4KICAgICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRmZXVfdXNlcnMgc2VsZWN0ZWQ9JG93bmVyX2lkfQogICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgIDwvcD4KCTwvZGl2Pgp7L2lmfQoKICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNmIj48L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8xMiI+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRkZXRhaWxzdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRkZXRhaWxzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaW1hZ2V0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1pbWFnZXVwbG9hZCIvPgoJCSAge2lmICRpbWFnZWN1cnJlbnQgbmUgJyd9eyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06IHskaW1hZ2VjdXJyZW50fXskaW1hZ2VjdXJyZW50aGlkZGVufXsvaWZ9CgkJPC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsb2dvdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9bG9nb3VwbG9hZCIvPgoJCSAge2lmICRsb2dvY3VycmVudCBuZSAnJ317JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTogeyRsb2dvY3VycmVudH17JGxvZ29jdXJyZW50aGlkZGVufXsvaWZ9CgkJPC9wPgoJPC9kaXY+CiAgPC9kaXY+CjwvZGl2Pgp7JG1vZC0+RW5kVGFiKCl9eyogY29tcGFueSAqfQoKeyRtb2QtPlN0YXJ0VGFiKCdmaWVsZHMnKX0KCXtpZiAkY3VzdG9tZmllbGRzY291bnQgZ3QgMH0KCQl7Zm9yZWFjaCBmcm9tPSRjdXN0b21maWVsZHMgaXRlbT1jdXN0b21maWVsZH0KICAgICAgICAgICAgICAgIHtpZiAkY3VzdG9tZmllbGQtPnR5cGUgIT0gJ2FsYnVtJ30KCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjdXN0b21maWVsZC0+bmFtZX0gKHskY3VzdG9tZmllbGQtPnR5cGV9KTo8L3A+CgkJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGN1c3RvbWZpZWxkLT5pbnB1dF9ib3h9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmIGlzc2V0KCRjdXN0b21maWVsZC0+dGh1bWJfdXJsKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPjxhIGNsYXNzPSJmYW5jeWJveCIgaHJlZj0ieyRjdXN0b21maWVsZC0+aW1hZ2VfdXJsfSI+PGltZyBzcmM9InskY3VzdG9tZmllbGQtPnRodW1iX3VybH0iPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KCQkJPC9kaXY+CiAgICAgICAgICAgICAgICB7L2lmfQoJCXsvZm9yZWFjaH0KICAgICAgICB7ZWxzZX0KICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JG1vZC0+TGFuZygnaW5mb19ub2ZpZWxkcycpfTwvcD4KCXsvaWZ9CnskbW9kLT5FbmRUYWIoKX17KiBmaWVsZHMgKn0KCnsqIGJlZ2luIGFsYnVtIHRhYiAqfQp7aWYgaXNzZXQoJGFsYnVtX2ZpZWxkX2V4aXN0cykgJiYgaXNzZXQoJGNvbXBpZCkgJiYgJGNvbXBpZH0KeyRtb2QtPlN0YXJ0VGFiKCdhbGJ1bScpfQp7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6Q29tcGFueURpcmVjdG9yeTtlZGl0Y29tcGFueV9hbGJ1bS50cGwnfQp7JG1vZC0+RW5kVGFiKCl9CnsvaWZ9CnsqIGVuZCBhbGJ1bSB0YWIgKn0KCnskbW9kLT5FbmRUYWJDb250ZW50KCl9CnskZW5kZm9ybX0KCjxkaXYgaWQ9ImNhdF9leHRyYWluZm9fZGxnIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19jYXRlZ29yeV9leHRyYWluZm8nKX08L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZXh0cmExJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5mbyI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY2F0X2V4dHJhMSIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4dHJhMicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWluZm8iPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNhdF9leHRyYTIiIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHRyYTMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbmZvIj4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJjYXRfZXh0cmEzIiBzaXplPSI4MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDwvcD4KICA8L2Rpdj4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editcompany_album.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQovLzwhW0NEQVRBWwp2YXIgdXBsb2FkX3VybCA9ICd7L2xpdGVyYWx9e21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWpheF91cGxvYWQgY29tcGlkPSRjb21waWQgZmRpZD0kYWxidW1fZmllbGRfZXhpc3RzIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9e2xpdGVyYWx9JzsKdmFyIGdhbGxlcnlfdXJsID0gJ3svbGl0ZXJhbH17bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1hamF4X2dhbGxlcnkgY29tcGlkPSRjb21waWQgZmRpZD0kYWxidW1fZmllbGRfZXhpc3RzIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9e2xpdGVyYWx9JzsKdmFyIGRlbGV0ZV91cmwgPSAney9saXRlcmFsfXttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFqYXhfZGVsZXRlIGNvbXBpZD0kY29tcGlkIGZkaWQ9JGFsYnVtX2ZpZWxkX2V4aXN0cyB1cmxvbmx5PTEganNmcmllbmRseT0xfXtsaXRlcmFsfSc7CnZhciBzb3J0X3VybCA9ICd7L2xpdGVyYWx9e21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWpheF9zb3J0IGNvbXBpZD0kY29tcGlkIGZkaWQ9JGFsYnVtX2ZpZWxkX2V4aXN0cyB1cmxvbmx5PTEganNmcmllbmRseT0xfXtsaXRlcmFsfSc7CgpmdW5jdGlvbiBfcmVmcmVzaF9nYWxsZXJ5KCkgewogICQoJyNlZGl0Y29tcGFueV9nYWxsZXJ5JykubG9hZChnYWxsZXJ5X3VybCsnJnNob3d0ZW1wbGF0ZT1mYWxzZScsZnVuY3Rpb24oKXsKICAgIGlmKCBqUXVlcnkoKS5mYW5jeWJveCApIHsKICAgICAgJCgnYS5mYW5jeWJveCcpLmZhbmN5Ym94KCk7CiAgICB9CgogICAgLy8gdGhlIHNvcnRhYmxlIHN0dWZmCiAgICAvLyQoJyNmaWxlX2xpc3QgdGJvZHknKS5zb3J0YWJsZSgpLmRpc2FibGVTZWxlY3Rpb24oKTsKICAgICQoJyNmaWxlX2xpc3QgdGJvZHknKS5zb3J0YWJsZSh7CiAgICAgIGN1cnNvcjogJ2Nyb3NzaGFpcicsCiAgICAgIHVwZGF0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG9yZGVyID0gW107CiAgICAgICAgJCgnI2ZpbGVfbGlzdCB0Ym9keScpLmNoaWxkcmVuKCd0cicpLmVhY2goZnVuY3Rpb24oaWR4LGVsbSl7CiAgICAgICAgICBvcmRlci5wdXNoKGVsbS5pZC5zcGxpdCgnXycsMilbMV0pOwogICAgICAgIH0pOwogICAgICAgICQuYWpheCh7CiAgICAgICAgICB1cmw6IHNvcnRfdXJsKycmc2hvd3RlbXBsYXRlPWZhbHNlJywKICAgICAgICAgIHR5cGU6ICdQT1NUJywKICAgICAgICAgIGRhdGE6IHttMV9vcmRlcjogb3JkZXJ9LAogICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSx0ZXh0U3RhdHVzLGpxWEhSKSB7CiAgICAgICAgICAgX3JlZnJlc2hfZ2FsbGVyeSgpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9CiAgICB9KTsKICB9KTsKfQoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKIGlmKCAxICkgewogICAkKGRvY3VtZW50KS5iaW5kKCdkcm9wIGRyYWdvdmVyJywgZnVuY3Rpb24oZSkgewogICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgfSk7CgogICAvLyBkcmFnIGRyb3AgdXBsb2FkIHN0dWZmbwogICAkKCcjaW1hZ2VfdXBsb2FkJykuZmlsZXVwbG9hZCh7CiAgICAgZGF0YVR5cGU6ICdqc29uJywKICAgICBkcm9wem9uZTogJCgnI2NkX2FsYnVtX2Ryb3B6b25lJyksCiAgICAgdXJsOiB1cGxvYWRfdXJsLnJlcGxhY2UoL2FtcDsvZywnJykrJyZzaG93dGVtcGxhdGU9ZmFsc2UnLAogICAgIGZvcm06IG51bGwsCiAgICAgZm9ybURhdGE6IHttMV9mb286J2Jhcid9LAogICAgIG1heENodW5rU2l6ZTogey9saXRlcmFsfXskbWF4X2NodW5rc2l6ZX17bGl0ZXJhbH0sCgogICAgIHByb2dyZXNzYWxsOiBmdW5jdGlvbihlLGRhdGEpIHsKICAgICAgIHZhciB0b3RhbCA9IChkYXRhLmxvYWRlZCAvIGRhdGEudG90YWwgKiAxMDApLnRvRml4ZWQoMCk7CiAgICAgICAkKCcjY2RfYWxidW1fZHJvcHpvbmUnKS5wcm9ncmVzc2Jhcih7IHZhbHVlOiBwYXJzZUludCh0b3RhbCkgfSk7CiAgICAgICAkKCcudWktcHJvZ3Jlc3NiYXItdmFsdWUnKS5odG1sKHRvdGFsKyclJyk7CiAgICAgfSwKCiAgICAgc3RvcDogZnVuY3Rpb24oZSxkYXRhKSB7CiAgICAgICAkKCcjY2RfYWxidW1fZHJvcHpvbmUnKS5wcm9ncmVzc2JhcignZGVzdHJveScpOwogICAgIH0sCgogICAgIGRvbmU6IGZ1bmN0aW9uKGUsZGF0YSkgewogICAgICAgX3JlZnJlc2hfZ2FsbGVyeSgpOwogICAgIH0KICAgfSk7CiB9CgogLy8gdGhlIGRlbGV0ZSBhamF4IHN0dWZmCiAkKCcjZWRpdGNvbXBhbnlfZ2FsbGVyeSAuZGVsZXRlJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKGUpewogICBlLnByZXZlbnREZWZhdWx0KCk7CiAgIHZhciBmaWxlbmFtZSA9ICQodGhpcykuYXR0cignaHJlZicpOwogICAkLmFqYXgoewogICAgIHVybDogZGVsZXRlX3VybCsnJnNob3d0ZW1wbGF0ZT1mYWxzZScsCiAgICAgdHlwZTogJ1BPU1QnLAogICAgIGRhdGE6IHttMV9maWxlbmFtZTogZmlsZW5hbWV9LAogICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEsdGV4dFN0YXR1cyxqcVhIUikgewogICAgICAgX3JlZnJlc2hfZ2FsbGVyeSgpOwogICAgIH0KICAgfSk7CiB9KTsKCiAvLyBhbmQgbG9hZCB0aGUgZ2FsbGVyeS4KIF9yZWZyZXNoX2dhbGxlcnkoKTsKfSk7CnsvbGl0ZXJhbH08L3NjcmlwdD4KCjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2RyYWdfZHJvcF91cGxvYWQnKX08L2xlZ2VuZD4KPHRhYmxlIHdpZHRoPSIxMDAlIj4KICA8dHI+PHRkPnskbW9kLT5MYW5nKCdpbmZvX2RyYWdfZHJvcCcpfTwvdGQ+CiAgPHRkIHZhbGlnbj0idG9wIj4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJpbWFnZV91cGxvYWQiIG11bHRpcGxlPSJtdWx0aXBsZSIgaWQ9ImltYWdlX3VwbG9hZCIgc3R5bGU9IndpZHRoOiAyNGVtOyIvPgogICAge2NnZV9pc2llIGFzc2lnbj0naWUnfXtpZiAhJGllfQogICAgPGJyLz48YnIvPgogICAgPGRpdiBhbGlnbj0iY2VudGVyIiBpZD0iY2RfYWxidW1fZHJvcHpvbmUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7IGJvcmRlcjogMXB4IGRhc2hlZCBicm93bjsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiAwLjVlbTsgd2lkdGg6IDI4ZW07Ij4KICAgIHskbW9kLT5MYW5nKCdkcm9wX2hlcmUnKX0KICAgIDwvZGl2PgogICAgey9pZn0KICA8L3RkPgo8L3RhYmxlPgo8L2ZpZWxkc2V0PgoKPGRpdiBpZD0nZWRpdGNvbXBhbnlfZ2FsbGVyeSc+CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/editcompany_gallery.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRmaWxlcyl9Cjx0YWJsZSBpZD0iZmlsZV9saXN0IiBjbGFzcz0icGFnZXRhYmxlIiBjZWxsc3BhY2luZz0iMCI+CiAgPHRoZWFkPgogICA8dHI+CiAgICAgPHRoIHN0eWxlPSJ3aWR0aDogOTBweDsiPnskbW9kLT5MYW5nKCd0aHVtYm5haWwnKX08L3RoPgogICAgIDx0aCBhbGlnbj0ibGVmdCI+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3RoPgogICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kZmlsZXMgaXRlbT0nb25lZmlsZScgbmFtZT0nZmlsZXMnfQogIDx0ciBpZD0iZmlsZV97JHNtYXJ0eS5mb3JlYWNoLmZpbGVzLmluZGV4fSI+CiAgICA8dGQgdmFsaWduPSJjZW50ZXIiID48YSBzdHlsZT0iYm9yZGVSOiAxcHggc29saWQgYmxhY2s7IiBjbGFzcz0iZmFuY3lib3giIGhyZWY9IntDR1NtYXJ0SW1hZ2Ugc3JjMT0kYmFzZV9kaXIgc3JjMj0kb25lZmlsZSBub2VtYmVkPTEgd2lkdGg9NTAwIGhlaWdodD01MDAgbm90YWc9MX0iPntDR1NtYXJ0SW1hZ2Ugc3JjMT0kYmFzZV9kaXIgc3JjMj0kb25lZmlsZSB3aWR0aD04MCBoZWlnaHQ9ODAgbm9lbWJlZD0xfTwvYT48L3RkPgogICAgPHRkPnskb25lZmlsZX08L3RkPgogICAgPHRkPjxhIGNsYXNzPSJkZWxldGUiIGhyZWY9Inskb25lZmlsZX0iPjxpbWcgc3JjPSJ7JHRyYXNoY2FufSIgYWx0PSIiLz48L2E+PC90ZD4KICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgp7ZWxzZX0KPHA+Tm8gZmlsZXMgZm91bmQ8L3A+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovKjwhW0NEQVRBWyovCmZ1bmN0aW9uIG9uY2hhbmdlX2ZsZHR5cGUoZWxlbSkgewogIHZhciBpZHggPSBlbGVtLnNlbGVjdGVkSW5kZXg7CiAgdmFyIHZhbCA9IGVsZW1baWR4XS52YWx1ZTsKICAKICB2YXIgbWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWF4bGVuZ3RoJyk7CiAgdmFyIG9wdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcGRvd25fb3B0aW9ucycpOwogIHZhciBleHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGVfZXh0ZW5zaW9ucycpOwogIHZhciBhbGIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxidW1faW5mbycpOwogIGlmKCB2YWwgPT0gJ3RleHRib3gnICkgewogICAgbWwuc3R5bGUuZGlzcGxheSAgID0gJ2Jsb2NrJzsKICAgIG9wdHMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIGV4dHMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIGFsYi5zdHlsZS5kaXNwbGF5ICA9ICdub25lJzsKICB9CiAgZWxzZSBpZiggdmFsID09ICdkcm9wZG93bicgfHwgdmFsID09ICdtdWx0aXNlbGVjdCcgKSB7CiAgICBtbC5zdHlsZS5kaXNwbGF5ICAgPSAnbm9uZSc7CiAgICBvcHRzLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgZXh0cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgYWxiLnN0eWxlLmRpc3BsYXkgID0gJ25vbmUnOwogIH0KICBlbHNlIGlmKCB2YWwgPT0gJ2ZpbGUnIHx8IHZhbCA9PSAnaW1hZ2UnICkgewogICAgbWwuc3R5bGUuZGlzcGxheSAgID0gJ25vbmUnOwogICAgb3B0cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgZXh0cy5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgIGFsYi5zdHlsZS5kaXNwbGF5ICA9ICdub25lJzsKICB9CiAgZWxzZSBpZiggdmFsID09ICdhbGJ1bScgKSB7CiAgICBtbC5zdHlsZS5kaXNwbGF5ICAgPSAnbm9uZSc7CiAgICBvcHRzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBleHRzLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgYWxiLnN0eWxlLmRpc3BsYXkgID0gJ2lubGluZSc7CiAgfQogIGVsc2UgewogICAgbWwuc3R5bGUuZGlzcGxheSAgID0gJ25vbmUnOwogICAgb3B0cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgZXh0cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgYWxiLnN0eWxlLmRpc3BsYXkgID0gJ25vbmUnOwogIH0KfQoKJCgnI2ZsZHR5cGUnKS5yZWFkeShmdW5jdGlvbigkKSB7CiAgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxkdHlwZScpOwogIG9uY2hhbmdlX2ZsZHR5cGUoZSk7Cn0pOwovKl1dPiAqLwo8L3NjcmlwdD4KCjxoMz57JG1vZC0+TGFuZygncHJvbXB0X2FkZGVkaXRmaWVsZCcpfTwvaDM+Cgp7JHN0YXJ0Zm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG5hbWV0ZXh0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG5hbWV9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyR0eXBldGV4dH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBpZD0nZmxkdHlwZScgbmFtZT0ieyRhY3Rpb25pZH10eXBlIiBvbmNoYW5nZT0ib25jaGFuZ2VfZmxkdHlwZSh0aGlzKTsiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkdHlwZXMgc2VsZWN0ZWQ9JGZsZHR5cGV9CiAgICA8L3NlbGVjdD4KICAgIDxzcGFuIGlkPSJhbGJ1bV9pbmZvIiBzdHlsZT0iZGlzcGxheV9ub25lIj48YnIvPnskbW9kLT5MYW5nKCdpbmZvX2FsYnVtX2ZpZWxkdHlwZScpfTwvc3Bhbj4KICA8L3A+CjwvZGl2PgoKPGRpdiBpZD0ibWF4bGVuZ3RoIiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskbWF4bGVuZ3RodGV4dH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG1heGxlbmd0aH08L3A+CjwvZGl2Pgo8ZGl2IGlkPSJkcm9wZG93bl9vcHRpb25zIiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdwcm9tcHRfZHJvcGRvd25fb3B0aW9ucycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1kcm9wZG93bl9vcHRpb25zIj57JGRyb3Bkb3duX2RhdGF9PC90ZXh0YXJlYT4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19kcm9wZG93bl9vcHRpb25zJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBpZD0iZmlsZV9leHRlbnNpb25zIiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdwcm9tcHRfZXh0ZW5zaW9ucycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjgwIiBuYW1lPSJ7JGFjdGlvbmlkfWV4dGVuc2lvbnMiIHZhbHVlPSJ7JGV4dGVuc2lvbnN8ZGVmYXVsdDonJ30iIG1heGxlbmd0aD0iMjU1Ii8+CiAgICAgPGJyLz4KICAgICB7JG1vZC0+TGFuZygnaW5mb19leHRlbnNpb25zJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskdXNlcmVkaXR0ZXh0fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VzZXJlZGl0fTxici8+eyRtb2QtPkxhbmcoJ2luZm9fdXNlcmVkaXQnKX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyR1c2Vydmlld3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXNlcnZpZXd9PGJyLz4KICAgICAgICAgIHskbW9kLT5MYW5nKCdpbmZvX3VzZXJ2aWV3Jyl9CiAgICAgICAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgo8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/edithier.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdhZGRlZGl0X2hpZXJhcmNoeScpfTwvaDM+Cgp7JHN0YXJ0Zm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRuYW1ldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRuYW1lfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcGFyZW50dGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcGFyZW50ZHJvcGRvd259PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/fielddeflist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCjxkaXYgaWQ9ImZpZWxkbGlzdF9vcHRzIiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGlkPSJmaWVsZGxpc3RfYWRkbGluayIgaHJlZj0ie21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249YWRkZmllbGRkZWYgdXJsb25seT0xfSI+e2NnaW1hZ2UgY2xhc3M9InN5c3RlbWljb24iIGltYWdlPSdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicgYWx0PSRtb2QtPkxhbmcoJ2FkZGZpZWxkZGVmJyl9IHskbW9kLT5MYW5nKCdhZGRmaWVsZGRlZicpfTwvYT4KPC9kaXY+Cgp7aWYgJGl0ZW1jb3VudCA+IDB9CjxkaXYgaWQ9ImZpZWxkbGlzdCI+CiAgPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPnskZmllbGRkZWZ0ZXh0fTwvdGg+CiAgICAgIDx0aD57JHR5cGV0ZXh0fTwvdGg+CiAgICAgIDx0aCBjbGFzcz0ibW92ZSI+Jm5ic3A7PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KICAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CiAgICA8dHIgaWQ9InskYWN0aW9uaWR9ZmllbGRfeyRlbnRyeS0+aWR9IiBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CiAgICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CiAgICAgIDx0ZD57Y2FwdHVyZSBhc3NpZ249J3RtcCd9ZmllbGRfeyRlbnRyeS0+dHlwZX17L2NhcHR1cmV9eyRtb2QtPkxhbmcoJHRtcCl9PC90ZD4KICAgICAgPHRkPnskZW50cnktPnVwbGlua30geyRlbnRyeS0+ZG93bmxpbmt9PC90ZD4KICAgICAgPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CiAgICAgIDx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5PgogIDwvdGFibGU+CjwvZGl2Pgp7L2lmfQoK]]></data>
	</file>
	<file>
	  <filename>/templates/frontendimport_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRpZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfdGVtcGxhdGUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1mZWltcG9ydF90ZW1wbGF0ZSI+eyRmZWltcG9ydF90ZW1wbGF0ZX08L3RleHRhcmVhPgogICAgPGJyLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZmVpbXBvcnRfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1mZWltcG9ydF9yZXNldCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldHRvZmFjdG9yeScpfSIvPgogIDwvcD4KPC9kaXY+CnskaWZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/hierlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFpc3NldCgkYWN0aW9ucGFyYW1zLmFqYXgpfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgdmFyIHJlb3JkZXJfaGllcmFyY2h5X21vZGUgPSAwOwogICQoJ2EuZGVsZXRlX2hpZXJhcmNoeScpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgIHJldHVybiBjb25maXJtKCd7JG1vZC0+TGFuZygnYXJleW91c3VyZScpfScpOwogIH0pOwogICQoJyNyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX2luZm8sI3Jlb3JkZXJfaGllcmFyY2h5X29wdHMnKS5oaWRlKCk7CgogICQoJ2EjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9jYW5jZWwnKS5jbGljayhmdW5jdGlvbihlKSB7CiAgICAkKCcjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9pbmZvLCNyZW9yZGVyX2hpZXJhcmNoeV9vcHRzLCNoaWVybGlzdF9vcHRzJykudG9nZ2xlKCk7CgogICAgJCgnZGl2I2hpZXJsaXN0IHNwYW4ucmVwZWF0ZWQnKS5zaG93KCk7CiAgICAkKCdkaXYjaGllcmxpc3QgZGl2LmhpZXJpY29uJykuc2hvdygpOwogICAgJCgnZGl2I2hpZXJsaXN0IHVsJykuYWRkQ2xhc3MoJ25vaW5kZW50Jyk7CiAgICAkKCdkaXYjaGllcmxpc3QgPiB1bCcpLm5lc3RlZFNvcnRhYmxlKCdkZXN0cm95Jyk7CiAgICB2YXIgdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2hpZXJ0YWIgYWpheD0xIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgICAkKCdkaXYjaGllcmxpc3QnKS5sb2FkKHVybCk7CiAgICByZXR1cm4gZmFsc2U7CiB9KTsKCiAgJCgnYSNyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX3N1Ym1pdCcpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgICQoJyNyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX2luZm8sI3Jlb3JkZXJfaGllcmFyY2h5X29wdHMsI2hpZXJsaXN0X29wdHMnKS50b2dnbGUoKTsKCiAgICAkKCdkaXYjaGllcmxpc3Qgc3Bhbi5yZXBlYXRlZCcpLnNob3coKTsKICAgICQoJ2RpdiNoaWVybGlzdCBkaXYuaGllcmljb24nKS5zaG93KCk7CiAgICAkKCdkaXYjaGllcmxpc3QgdWwnKS5hZGRDbGFzcygnbm9pbmRlbnQnKTsKICAgIHZhciBsaXN0ID0gJCgnZGl2I2hpZXJsaXN0ID4gdWwnKS5uZXN0ZWRTb3J0YWJsZSgnc2VyaWFsaXplJyk7CiAgICAkKCdkaXYjaGllcmxpc3QgPiB1bCcpLm5lc3RlZFNvcnRhYmxlKCdkZXN0cm95Jyk7CiAgICB2YXIgdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2FqYXhfaGllcm9yZGVyIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgICAkLnBvc3QodXJsLGxpc3QsCiAgICAgIGZ1bmN0aW9uKGRhdGEsdGV4dFN0YXR1cyxqcVhIUikgewoJdmFyIHVybCA9ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1hZG1pbl9oaWVydGFiIGFqYXg9MSB1cmxvbmx5PTEganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnOwogICAgICAgICQoJ2RpdiNoaWVybGlzdCcpLmxvYWQodXJsKTsKICAgICAgfSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7CgogICQoJ2EjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZScpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgICQoJyNyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX2luZm8sI3Jlb3JkZXJfaGllcmFyY2h5X29wdHMsI2hpZXJsaXN0X29wdHMnKS50b2dnbGUoKTsKCiAgICAkKCdkaXYjaGllcmxpc3Qgc3Bhbi5yZXBlYXRlZCcpLmhpZGUoKTsKICAgICQoJ2RpdiNoaWVybGlzdCBkaXYuaGllcmljb24nKS5oaWRlKCk7CiAgICAkKCdkaXYjaGllcmxpc3QgdWwnKS5yZW1vdmVDbGFzcygnbm9pbmRlbnQnKTsKICAgICQoJ2RpdiNoaWVybGlzdCA+IHVsJykubmVzdGVkU29ydGFibGUoewogICAgICBkaXNhYmxlTmVzdGluZzogJ25vLW5lc3QnLAogICAgICBmb3JjZVBsYWNlaG9sZGVyU2l6ZTogdHJ1ZSwKICAgICAgaGFuZGxlOiAnZGl2JywKICAgICAgaXRlbXM6ICdsaScsCiAgICAgIG9wYWNpdHk6IC42LAogICAgICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyJywKICAgICAgdGFiU2l6ZTogMjAsCiAgICAgIHRvbGVyYW5jZTogJ3BvaW50ZXInLAogICAgICBsaXN0VHlwZTogJ3VsJywKICAgICAgdG9sZXJhbmNlRWxlbWVudDogJz4gZGl2JwogICAgfSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7Cgp9KTsKPC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiIgaWQ9InJlb3JkZXJfaGllcmFyY2h5X21vZGVfaW5mbyIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+eyRtb2QtPkxhbmcoJ3Jlb3JkZXJfbW9kZScpfTwvZGl2Pgo8ZGl2IGlkPSJyZW9yZGVyX2hpZXJhcmNoeV9vcHRzIiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGlkPSJyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX2NhbmNlbCIgaHJlZj0iIyI+e2NnaW1hZ2UgY2xhc3M9InN5c3RlbWljb24iIGltYWdlPSdmYWxzZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdjYW5jZWwnKX0geyRtb2QtPkxhbmcoJ2NhbmNlbCcpfTwvYT4mbmJzcDsKICA8YSBpZD0icmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9zdWJtaXQiIGhyZWY9IiMiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0ndHJ1ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdzdWJtaXQnKX0geyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYT4KPC9kaXY+CjxkaXYgaWQ9ImhpZXJsaXN0X29wdHMiIGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgPGEgaHJlZj0ieyRhZGRfdXJsfSIgY2xhc3M9InBhZ2VvcHRpb25zIj57Y2dpbWFnZSBjbGFzcz0ic3lzdGVtaWNvbiIgaW1hZ2U9Imljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmIiBhbHQ9InskbW9kLT5MYW5nKCdhZGRoaWVyJyl9In0geyRtb2QtPkxhbmcoJ2FkZGhpZXInKX08L2E+CiAgPGEgaHJlZj0ieyR1cGRhdGVfdXJsfSIgY2xhc3M9InBhZ2VvcHRpb25zIj57Y2dpbWFnZSBjbGFzcz0ic3lzdGVtaWNvbiIgaW1hZ2U9Imljb25zL3N5c3RlbS9ydW4uZ2lmIiBhbHQ9InskbW9kLT5MYW5nKCd1cGRhdGVoaWVyJyl9In0geyRtb2QtPkxhbmcoJ3VwZGF0ZWhpZXInKX08L2E+CiAge2lmIGlzc2V0KCRoaWVyKX0KICA8YSBpZD0icmVvcmRlcl9oaWVyYXJjaHlfbW9kZSIgaHJlZj0iIyI+e2NnaW1hZ2UgY2xhc3M9InN5c3RlbWljb24iIGltYWdlPSdpY29ucy9zeXN0ZW0vcmVvcmRlci5naWYnIGFsdD0kbW9kLT5MYW5nKCdyZW9yZGVyJyl9IHskbW9kLT5MYW5nKCdyZW9yZGVyJyl9PC9hPgogIHsvaWZ9CjwvZGl2PgoKey9pZn17KiAhYWpheCAqfQoKe2lmIGlzc2V0KCRoaWVyKX0Ke2Z1bmN0aW9uIGRvaGllcn0KPHVsIGNsYXNzPSJub2luZGVudCI+CiAge2ZvcmVhY2ggJGxpc3QgYXMgJG5vZGV9CiAge21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fZWRpdGhpZXIgY2F0aWQ9JG5vZGUuaWQgdXJsb25seT0xIGFzc2lnbj0nZWRpdF91cmwnfQogIHttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2RlbGhpZXIgY2F0aWQ9JG5vZGUuaWQgdXJsb25seT0xIGFzc2lnbj0nZGVsZXRlX3VybCd9CiAgPGxpIGlkPSJ7JGFjdGlvbmlkfWhpZXJfeyRub2RlLmlkfSI+CiAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICAgPGRpdiBjbGFzcz0ibGFiZWwgaGllcm5vZGUgeyRyb3djbGFzc30iPgogICAgICA8ZGl2IGNsYXNzPSJoaWVybmFtZSI+CiAgICAgICAgPHNwYW4gY2xhc3M9InJlcGVhdGVkIj57cmVwZWF0IHN0cmluZz0nJm5ic3A7Jmd0OyZuYnNwOycgdGltZXM9JG5vZGUuZGVwdGh9PC9zcGFuPjxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskbm9kZS5uYW1lfTwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImhpZXJpY29uIj4KICAgICAgICB7aWYgIWlzc2V0KCRub2RlLmNoaWxkcmVuKX0KICAgICAgICA8YSBocmVmPSJ7JGRlbGV0ZV91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlJyl9PC9hPgoJey9pZn0KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImhpZXJpY29uIj4KICAgICAgICA8YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2VkaXQuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZWRpdCcpfTwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIHtpZiBpc3NldCgkbm9kZS5jaGlsZHJlbil9e2RvaGllciBsaXN0PSRub2RlLmNoaWxkcmVufXsvaWZ9CiAgPC9saT4KICB7L2ZvcmVhY2h9CjwvdWw+CnsvZnVuY3Rpb259Cgo8ZGl2IGlkPSJoaWVybGlzdCIgY2xhc3M9ImhpZXJsaXN0IGNmIj4KICA8ZGl2IGNsYXNzPSJoZWFkZXIiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHknKX08L2Rpdj4KICB7ZG9oaWVyIGxpc3Q9JGhpZXJ9CjwvZGl2Pgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/importcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiBfdmFsc2RlZnMoc3RyKSB7CiAgJCgnIycrc3RyKyd2YWxzIDppbnB1dCcpLmNoYW5nZShmdW5jdGlvbigpewogICAgdmFyIHYgPSAkKHRoaXMpLnZhbCgpOwogICAgaWYoIHYgPT0gMSApIHsKICAgICAgJCgnIycrc3RyKydkZWZzJykuc2hvdygpOwogICAgfSBlbHNlIHsKICAgICAgJCgnIycrc3RyKydkZWZzJykuaGlkZSgpOwogICAgfQogIH0pOwogICQoJyMnK3N0cisndmFscyA6aW5wdXQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIF92YWxzZGVmcygnZmllbGQnKQogIF92YWxzZGVmcygnY2F0ZWdvcnknKQogIF92YWxzZGVmcygnaGllcmFyY2h5JykKfSk7Cjwvc2NyaXB0PgoKPGgzPnskbW9kLT5MYW5nKCdpbXBvcnRjc3YnKX08L2gzPgoKPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPnskbW9kLT5MYW5nKCdpbmZvX2ltcG9ydGZvcm1hdCcpfTwvZGl2PgoKeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2RlbGltZXRlcicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWRlbGltZXRlciIgdmFsdWU9InskbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfZGVsaW1ldGVyJyl9IiBzaXplPSI0IiBtYXhsZW5ndGg9IjQiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW5jbG9zdXJlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZW5jbG9zdXJlIiB2YWx1ZT0ieyRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9lbmNsb3N1cmUnKX0iIHNpemU9IjQiIG1heGxlbmd0aD0iNCIvPgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jaGVja19kdXBsaWNhdGVzJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNoZWNrX2R1cGxpY2F0ZXMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGR1cGxpY2F0ZV9vcHRzIHNlbGVjdGVkPSRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jaGVja2R1cGxpY2F0ZXMnKX0KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJmaWVsZHZhbHMiPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfZmllbGR2YWxzJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1kb19maWVsZHZhbHMgc2VsZWN0ZWQ9JG1vZC0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2ZpZWxkdmFscycpfQogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19pbXBvcnRfZmllbGR2YWxzJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9ImZpZWxkZGVmcyIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAyZW07Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0X2ZpZWxkZGVmcycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZG9fZmllbGRkZWZzIHNlbGVjdGVkPSRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9maWVsZGRlZnMnKX0KICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9faW1wb3J0X2ZpZWxkZGVmcycpfQogIDwvcD4KPC9kaXY+CgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0iY2F0ZWdvcnl2YWxzIj4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0X2NhdGVnb3J5dmFscycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWRvX2NhdGVnb3J5dmFscyBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnl2YWxzJyl9CiAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX2ltcG9ydF9jYXRlZ29yeXZhbHMnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0iY2F0ZWdvcnlkZWZzIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDJlbTsiPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnlkZWZzJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1kb19jYXRlZ29yeWRlZnMgc2VsZWN0ZWQ9JG1vZC0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NhdGVnb3J5ZGVmcycpfQogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19pbXBvcnRfY2F0ZWdvcnlkZWZzJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9ImhpZXJhcmNoeXZhbHMiPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5dmFscycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZG9faGllcmFyY2h5dmFscyBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfaGllcmFyY2h5dmFscycpfQogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19pbXBvcnRfaGllcmFyY2h5dmFscycpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJoaWVyYXJjaHlkZWZzIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDJlbTsiPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5ZGVmcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWRvX2hpZXJhcmNoeWRlZnMgc2VsZWN0ZWQ9JG1vZC0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2hpZXJhcmNoeWRlZnMnKX0KICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9faW1wb3J0X2hpZXJhcmNoeWRlZnMnKX0KICA8L3A+CjwvZGl2PgoKe2lmICRjYW5fbG9va3VwfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfbG9va3VwbGF0bG9uZycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZG9fbG9va3VwbGF0bG9uZyBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfbG9va3VwbGF0bG9uZycpfQogIDwvcD4KPC9kaXY+CnsvaWZ9Cgp7aWYgJHVybF9vcHRpb25hbH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY3JlYXRlX3VybCcpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9Y3JlYXRlX3VybCBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfY3JlYXRlX3VybCcpfQogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NyZWF0ZV91cmwnKX0KICA8L3A+CjwvZGl2Pgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0X2NzdmZpbGUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1jc3ZmaWxlIiBzaXplPSI0MCIvPgogIDwvcD4KPC9kaXY+CgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/importkml.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfa21sJyl9PC9oMz4KCntpZiBpc3NldCgkZmluaXNoZWQpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIHR5cGU9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X251bWltcG9ydGVkJyl9OjwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPnskaW1wb3J0ZWR9PC9wPgo8L2Rpdj4Ke2lmIGlzc2V0KCRlcnJvcmNvdW50KX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCB0eXBlPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9udW1lcnJvcnMnKX06PC9wPgogIDxwIHR5cGU9InBhZ2VpbnB1dCI+eyRlcnJvcmNvdW50fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgdHlwZT0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZXJyb3JzJyl9OjwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPgogICAgPHVsPgogICAge2ZvcmVhY2ggZnJvbT0kZXJyb3JzIGl0ZW09J29uZSd9CiAgICAgIDxsaT57JG9uZX08L2xpPgogICAgey9mb3JlYWNofQogICAgPC91bD4KICA8L3A+CjwvZGl2Pgp7L2lmfQp7L2lmfQoKeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgdHlwZT0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfa21sZmlsZScpfTo8L3A+CiAgPHAgdHlwZT0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWttbGZpbGUiIHNpemU9IjUwIi8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgdHlwZT0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaWdub3JlX2FkZHJlc3MnKX06PC9wPgogIDxwIHR5cGU9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9aWdub3JlX2FkZHJlc3MiIHZhbHVlPSIxIi8+CiAgPC9wPgo8L2Rpdj4KCntpZiAkY2FuX2RvX2xvb2t1cHMgPT0gMX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCB0eXBlPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jb252ZXJ0X2FkZHJlc3MnKX06PC9wPgogIDxwIHR5cGU9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9ZG9fY29udmVydF9hZGRyZXNzIiB2YWx1ZT0iMSIvPgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIHR5cGU9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJyl9OjwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNoZWNrX2R1cGxpY2F0ZV9uYW1lIiB2YWx1ZT0iMSIvPgogIDwvcD4KPC9kaXY+Cgp7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NhdGVnb3J5Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jYXRlZ29yeSI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNhdGVnb3JpZXN9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2Pgp7L2lmfQoKe2lmIGlzc2V0KCRoaWVyYXJjaGllcyl9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaGllcmFyY2h5Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1oaWVyYXJjaHkiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaGllc30KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIHR5cGU9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3N0YXR1cycpfTwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPnskaW5wdXRzdGF0dXN9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgdHlwZT0icGFnZXRleHQiPjwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_abclist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGVmYXVsdCBhYmNsaXN0IHRlbXBsYXRlICp9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cm5hdi5hYmNsaXN0IHVsIHsKICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9Cm5hdi5hYmNsaXN0IGxpLmN1cnJlbnQgYSB7CiAgIGNvbG9yOiByZWQ7Cn0KbmF2LmFiY2xpc3QgbGkgewogICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgIG1hcmdpbi1yaWdodDogMC41ZW07Cn0KPC9zdHlsZT4KCntpZiAhZW1wdHkoJGVycm9yKX0KICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JGVycm9yfTwvZGl2Pgp7ZWxzZX0KICAgPG5hdiBjbGFzcz0iYWJjbGlzdCI+CiAgICAgPHVsPgogICAgICAge2ZvcmVhY2ggJGFiY2xpc3QgYXMgJGxldHRlciA9PiAkcmVjfQogICAgICAgICA8bGkge2lmICRyZWMuY3VycmVudH1jbGFzcz0iY3VycmVudCJ7L2lmfT4KCSAgIHtpZiAkcmVjLmNvdW50IDwgMX0KCSAgICAgeyRsZXR0ZXJ9CgkgICB7ZWxzZX0KICAJICAgICA8YSBocmVmPSJ7JHJlYy51cmx9IiB0aXRsZT0ieyRyZWMuY291bnR9Ij57JGxldHRlcn08L2E+CgkgICB7L2lmfQoJIDwvbGk+CiAgICAgICB7L2ZvcmVhY2h9CiAgICAgPC91bD4KICAgPC9uYXY+CgogICB7aWYgIWVtcHR5KCRpdGVtcyl9CiAgICAgIDxoMz5JdGVtczwvaDM+CiAgICAgIHsqIHBhZ2luYXRpb24gKn0KICAgICAgeyRucGFnZXMgPSAkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfY291bnQoKX0KICAgICAge2lmICRucGFnZXMgPiAxfQogICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgdGV4dC1yaWdodCI+CgkgICAgeyRwYWdlPSRwYWdpbmF0aW9uLT5nZXRfY3VycmVudF9wYWdlKCl9CgkgICAge2lmICRwYWdlID4gMX0KCSAgICAgIDxhIGhyZWY9InskcGFnaW5hdGlvbi0+Z2V0X2ZpcnN0cGFnZV91cmwoKX0iPnskbW9kLT5MYW5nKCdmaXJzdHBhZ2UnKX08L2E+Jm5ic3A7CgkgICAgICA8YSBocmVmPSJ7JHBhZ2luYXRpb24tPmdldF9wcmV2cGFnZV91cmwoKX0iPnskbW9kLT5MYW5nKCdwcmV2cGFnZScpfTwvYT4mbmJzcDsKCSAgICB7L2lmfQoJICAgIHskbW9kLT5sYW5nKCdwYWdlJyl9IHskcGFnZX0geyRtb2QtPkxhbmcoJ29mJyl9IHskbnBhZ2VzfQoJICAgIHtpZiAkcGFnZSA8ICRucGFnZXN9CgkgICAgICA8YSBocmVmPSJ7JHBhZ2luYXRpb24tPmdldF9uZXh0cGFnZV91cmwoKX0iPnskbW9kLT5MYW5nKCduZXh0cGFnZScpfTwvYT4mbmJzcDsKCSAgICAgIDxhIGhyZWY9InskcGFnaW5hdGlvbi0+Z2V0X2xhc3RwYWdlX3VybCgpfSI+eyRtb2QtPkxhbmcoJ2xhc3RwYWdlJyl9PC9hPiZuYnNwOwoJICAgIHsvaWZ9CgkgPC9kaXY+CiAgICAgIHsvaWZ9CgogICAgICB7Zm9yZWFjaCAkaXRlbXMgYXMgJGl0ZW19CiAgICAgIDxkaXYgY2xhc3M9InJvdyBDb21wYW55RGlyZWN0b3J5SXRlbSI+CiAgICAgICAge2lmICRpdGVtLT5waWN0dXJlX2xvY2F0aW9ufQoJICA8ZGl2IGNsYXNzPSJjb2wtc20tMyI+e0NHU21hcnRJbWFnZSBzcmM9JGl0ZW0tPnBpY3R1cmVfcGF0aCBoZWlnaHQ9MTUwIHdpZHRoPTE1MH08L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJjb2wtc20tOSByb3ciPgogIAkgIDxoND48YSBocmVmPSJ7JGl0ZW0tPmRldGFpbF91cmx9Ij57JGl0ZW0tPmNvbXBhbnlfbmFtZX08L2E+PC9oND4KCSAge2lmICRpdGVtLT5hZGRyZXNzfTxwPnskaXRlbS0+YWRkcmVzc308L3A+ey9pZn0KCSAge2lmICRpdGVtLT53ZWJzaXRlfTxwPnskaXRlbS0+d2Vic2l0ZX08L3A+ey9pZn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIHsvZm9yZWFjaH0KICAgey9pZn0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_admin_feedit_email_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZW1haWwgc2VudCB0byBhbiBhZG1pbmlzdHJhdG9yIHdoZW4gYW4gRkVVIGFkZHMgb3IgY2hhbmdlcyBhIHJlY29yZCAqfQoKPGgzPkNvbXBhbnkgaW5mb3JtYXRpb24gaGFzIGJlZW4gY2hhbmdlZDwvaDM+Cgo8dGFibGU+Cjx0cj4KIDx0ZD57JG1vZC0+TGFuZygnY29tcGFueW5hbWUnKX06PC90ZD4KIDx0ZD57JGNvbXBhbnlfbmFtZX08L3RkPgo8L3RyPgo8dHI+CiA8dGQ+eyRtb2QtPkxhbmcoJ3dlYnNpdGUnKX06PC90ZD4KIDx0ZD48YSBocmVmPSJ7JHdlYnNpdGV9Ij57JHdlYnNpdGV9PC9hPjwvdGQ+CjwvdHI+Cjx0cj4KIDx0ZD57JG1vZC0+TGFuZygnY29udGFjdGVtYWlsJyl9OjwvdGQ+CiA8dGQ+eyRjb250YWN0ZW1haWx9PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdvd25lcicpfTo8L3RkPgogPHRkPnskdWluZm8udXNlcm5hbWV9Jm5ic3A7KHskbW9kLT5MYW5nKCdleHBpcmVzJyl9IHskdWluZm8uZXhwaXJlc3xjbXNfZGF0ZV9mb3JtYXR9KTwvdGQ+CjwvdHI+Cjx0cj4KIDx0ZD57JG1vZC0+TGFuZygndGVsZXBob25lJyl9OjwvdGQ+CiA8dGQ+eyR0ZWxlcGhvbmV9PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdmYXgnKX06PC90ZD4KIDx0ZD57JGZheH08L3RkPgo8L3RyPgo8dHI+CiA8dGQ+eyRtb2QtPkxhbmcoJ2FkZHJlc3MnKX06PC90ZD4KIDx0ZD57JGFkZHJlc3N9PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdsYXRpdHVkZScpfTo8L3RkPgogPHRkPnskbGF0aXR1ZGV9PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdsb25naXR1ZGUnKX06PC90ZD4KIDx0ZD57JGxvbmdpdHVkZX08L3RkPgo8L3RyPgp7aWYgaXNzZXQoJGZpZWxkZGVmcyl9Cntmb3JlYWNoIGZyb209JGZpZWxkZGVmcyBpdGVtPSdvbmUnfQo8dHI+CiA8dGQ+eyRmaWVsZGRlZi0+bmFtZX06PC90ZD4KIDx0ZD57JGZpZWxkZGVmLT52YWx1ZX08L3RkPgo8L3RyPgp7L2ZvcmVhY2h9CnsvaWZ9Cgp7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQo8dHI+CiAgPHRkPnskbW9kLT5MYW5nKCdjYXRlZ29yaWVzJyl9OjwvdGQ+CiAgPHRkPnsnLCAnfGltcGxvZGU6JGNhdGVnb3JpZXN9PC90ZD4KPC90cj4Key9pZn0KPC90YWJsZT4KCjxwcmU+Cjxjb2RlPgp7JHRlc3R8QHByaW50X3J9CjwvY29kZT4KPC9wcmU+Cgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_categorylist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Z1bmN0aW9uIGRvX2NhdGVnb3JpZXN9Cjx1bD4KICB7Zm9yZWFjaCAkbGlzdCBhcyAkb2JqfQogIDxsaT4KICAgIHsqIG5vdGUuLi4gdGhlIGNvdW50IHJlcHJlc2VudHMgdGhlIHN1bSBvZiB0aGUgY29tcGFuaWVzIG1hdGNoaW5nIHRoZSBxdWVyeSBpbiB0aGlzIGNhdGVnb3J5LCBhbmQgYWxsIGNoaWxkcmVuICp9CiAgICB7aWYgaXNzZXQoJG9iai0+Y291bnQpICYmICRvYmotPmNvdW50IGd0IDB9CiAgICAgIDxhIGhyZWY9Inskb2JqLT5zdW1tYXJ5X3VybH0iPnskb2JqLT5uYW1lfGVzY2FwZX08L2E+ICA8ZW0+KHskb2JqLT5jb3VudH0pPC9lbT4KICAgIHtlbHNlfQogICAgICB7JG9iai0+bmFtZXxlc2NhcGV9IDxlbT4oMCk8L2VtPgogICAgey9pZn0KICAgIHtpZiBpc3NldCgkb2JqLT5jaGlsZHJlbikgJiYgY291bnQoJG9iai0+Y2hpbGRyZW4pfXtkb19jYXRlZ29yaWVzIGxpc3Q9JG9iai0+Y2hpbGRyZW59ey9pZn0KICA8L2xpPgogIHsvZm9yZWFjaH0KPC91bD4Key9mdW5jdGlvbn0Ke2RvX2NhdGVnb3JpZXMgbGlzdD0kY2F0ZWdvcnlsaXN0fQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogQ29tcGFueURpcmVjdG9yeSBEZXRhaWwgVGVtcGxhdGUgKn0Ke3N0cmlwfQo8YXJ0aWNsZSBjbGFzcz0iQ29tcGFueURpcmVjdG9yeUl0ZW0iPgogIHtpZiBpc3NldCgkZW50cnktPmNhbm9uaWNhbCl9eyRjYW5vbmljYWw9JGVudHJ5LT5jYW5vbmljYWx9ey9pZn0KICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgIDxkaXYgY2xhc3M9InNwYW4yIj4KICAgICAgIHtpZiAkZW50cnktPmxvZ29fbG9jYXRpb24gbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgIHtDR1NtYXJ0SW1hZ2Ugc3JjPSRlbnRyeS0+bG9nb19wYXRoIG1heF93aWR0aD0xNTAgbWF4X2hlaWdodD0xNTB9CiAgICAgICAgIDwvZGl2PgogICAgICAgey9pZn0KCiAgICAgICB7aWYgJGVudHJ5LT5waWN0dXJlX2xvY2F0aW9uIG5lICcnfQogICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICB7Q0dTbWFydEltYWdlIHNyYz0kZW50cnktPnBpY3R1cmVfcGF0aCBtYXhfd2lkdGg9ODAwIG1heF9oZWlnaHQ9NjAwIG5vdGFnPTEgbm9lbWJlZD0xIGFzc2lnbj0ncGljdHVyZV91cmwnfQogICAgICAgICA8YSBjbGFzcz0iZmFuY3lib3giIGhyZWY9InskcGljdHVyZV91cmx9Ij57Q0dTbWFydEltYWdlIHNyYz0kZW50cnktPnBpY3R1cmVfcGF0aCBtYXhfd2lkdGg9MTUwIG1heF9oZWlnaHQ9MTUwfTwvYT4KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQogICAgIDwvZGl2PgoKICAgICA8ZGl2IGNsYXNzPSJzcGFuMTAiPgogICAgICAgPGg0PntpZiAkZW50cnktPndlYnNpdGUgIT0nJ308YSBjbGFzcz0iZXh0ZXJuYWwiIGhyZWY9InskZW50cnktPndlYnNpdGV9IiB0aXRsZT0ieyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCd2aWV3X3dlYnNpdGUnKX0iPnskZW50cnktPmNvbXBhbnlfbmFtZX08L2E+e2Vsc2V9eyRlbnRyeS0+Y29tcGFueV9uYW1lfXsvaWZ9PC9oND4KICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgIHskZW50cnktPmFkZHJlc3N9CiAgICAgICA8L2Rpdj4KICAgICAgIHtpZiAkZW50cnktPnRlbGVwaG9uZSBuZSAnJ30KICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICB7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ3RlbGVwaG9uZScpfTogeyRlbnRyeS0+dGVsZXBob25lfQogICAgICAgICA8L2Rpdj4KICAgICAgIHsvaWZ9CiAgICAgICB7aWYgJGVudHJ5LT5mYXggbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgeyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdmYXgnKX06IHskZW50cnktPmZheH0KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQogICAgICAge2lmICRlbnRyeS0+Y29udGFjdF9lbWFpbCBuZSAnJ30KICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICB7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2NvbnRhY3RlbWFpbCcpfTogPGEgaHJlZj0ibWFpbHRvOnskZW50cnktPmNvbnRhY3RfZW1haWx9Ij57JGVudHJ5LT5jb250YWN0X2VtYWlsfTwvYT4KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQoKICAgICAgIHtpZiAkZW50cnktPmhpZXJfaWQgPiAwfQogICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgIHskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnaGllcmFyY2h5Jyl9OiB7Y2RfaGllcmJyZWFkY3J1bWIgcGFnZT0kc3VtbWFyeXBhZ2UgaGllcj0kZW50cnktPmhpZXJfaWQgaGllcl9jaGlsZHJlbj0xfQogICAgICAgICA8L2Rpdj4KICAgICAgIHsvaWZ9CgogICAgICAge2lmIGlzc2V0KCRjYXRlZ29yaWVzKX0KICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgeyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdjYXRlZ29yaWVzJyl9OiZuYnNwOwogICAgICAgICB7Zm9yZWFjaCAkY2F0ZWdvcmllcyBhcyAkY2F0bmFtZSA9PiAkcmVjfQoJICAge21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249ZGVmYXVsdCBjYXRlZ29yeT0kcmVjLT5pZCB1cmxvbmx5PTEgYXNzaWduPXVybH0KICAgICAgICAgICA8YSBocmVmPSJ7JHVybH0iIHRpdGxlPSJ7JHJlYy0+ZGVzY3JpcHRpb258c3RyaXBfdGFnc3xzdW1tYXJpemU6NDB9Ij57JGNhdG5hbWV9PC9hPntpZiAhJHJlY0BsYXN0fSwgIHsvaWZ9CiAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQoKICAgICAgIHtpZiAkZW50cnktPmRldGFpbHMgbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCIgc3R5bGU9ImJvcmRlci10b3A6IDFweCBzb2xpZCBzaWx2ZXI7IG1hcmdpbi10b3A6IDAuNWVtOyI+eyRlbnRyeS0+ZGV0YWlsc308L2Rpdj4KICAgICAgIHsvaWZ9CgogICAgICAge2lmIGlzc2V0KCRlbnRyeS0+ZmllbGRzKSB9CiAgICAgICAgIHsqIGhhbmRsZSBldmVyeXRoaW5nIGJ1dCBpbWFnZXMgKn0KICAgICAgICAgeyRoYXZlX2ltYWdlcz0wfQogICAgICAgICB7Zm9yZWFjaCBmcm9tPSRlbnRyeS0+ZmllbGRzIGtleT0nZmllbGRfbmFtZScgaXRlbT1jdXN0b21maWVsZH0KICAgICAgICAgICB7aWYgJGN1c3RvbWZpZWxkLT50eXBlID09ICdpbWFnZSd9CiAgICAgICAgICAgICB7JGhhdmVfaW1hZ2VzPTF9CiAgICAgICAgICAge2Vsc2V9CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICB7JGN1c3RvbWZpZWxkLT5uYW1lfTombmJzcDsKICAgICAgICAgICAgICAge2lmICRjdXN0b21maWVsZC0+dHlwZSA9PSAnZmlsZSd9CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InskY3VzdG9tZmllbGQtPmZpbGVfdXJsfSI+eyRjdXN0b21maWVsZC0+dmFsdWV9PC9hPgogICAgICAgICAgICAgICB7ZWxzZX0KICAgICAgICAgICAgICAgICB7JGN1c3RvbWZpZWxkLT5uYW1lfTogeyRjdXN0b21maWVsZC0+dmFsdWV9CiAgICAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICB7L2lmfQogICAgICAgICB7L2ZvcmVhY2h9CgogICAgICAgICB7KiBub3cgaGFuZGxlIGltYWdlcyAqfQogICAgICAgICB7aWYgJGhhdmVfaW1hZ2VzfQogICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmZpZWxkcyBrZXk9J2ZpZWxkX25hbWUnIGl0ZW09Y3VzdG9tZmllbGR9CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiI+CiAgICAgICAgICAgICAgIHtDR1NtYXJ0SW1hZ2Ugc3JjPSRjdXN0b21maWVsZC0+dXJsIG1heF93aWR0aD04MDAgbWF4X2hlaWdodD02MDAgbm90YWc9MSBub2VtYmVkPTEgYXNzaWduPSdpbWcnfQogICAgICAgICAgICAgICA8YSBjbGFzcz0iZmFuY3lib3giIGhyZWY9InskaW1nfSIgcmVsPSJpbWdfYWxidW0iPntDR1NtYXJ0SW1hZ2Ugc3JjPSRjdXN0b21maWVsZC0+dXJsIHdpZHRoPTE1MCBoZWlnaHQ9MTUwfTwvYT4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgey9pZn0KICAgICAgIHsvaWZ9CgogICAgIDwvZGl2PnsqIHNwYW4xMCAqfQogIDwvZGl2PnsqIHRvcCByb3cgKn0KPC9hcnRpY2xlPgp7L3N0cmlwfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_fe_gallery.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZnJvbnRlbmQgZ2FsbGVyeSB0ZW1wbGF0ZSAqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendalbum_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKICoqIGZyb250ZW5kIGVkaXQgYWxidW0gdGVtcGxhdGUgKioKIFRoaXMgaXMgYSBzYW1wbGUgdGVtcGxhdGUuLi4gaWxsdXN0cmF0aW5nIGhvdyB0byBlbmFibGUgZWRpdGluZyB1c2luZyB0aGUgZmVfZWRpdF9nYWxsZXJ5IGFjdGlvbgogTGlrZSBhbGwgb3RoZXIgbW9kdWxlIHRlbXBsYXRlcywgdGhpcyBpcyBub3QgaW50ZW5kZWQgdG8gYmUgYSBjb21wbGV0ZSB3b3JraW5nIHNvbHV0aW9uIGZvciBhbGwgd2Vic2l0ZXMuICBJdCBpcyBzaW1wbHkgYSBzdGFydGluZyBwb2ludC4KCiBUaGlzIHRlbXBsYXRlIHByb3ZpZGVzIHNvcnRpbmcsIGRyYWcgYW5kIGRyb3AgdXBsb2FkIChmb3IgbW9zdCBub24gSUUgYnJvd3NlcnMpIGFuZCBkcmFnIHRvIGRlbGV0ZSBmdW5jdGlvbmFsaXR5LiAgYnV0IGl0J3Mgc3R5bGluZyBpcyBjcnVkZS4KCiBUaGlzIHRlbXBsYXRlIHVzZXMgdGhlIEpRdWVyeVVJIHByb2dyZWVzIGJhciwgZHJhZ2dhYmxlIGFuZCBkcm9wcGFibGUgY2xhc3NlcywgYXMgd2VsbCBhcyB0aGUgYmx1aW1wIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcy4KIFRoZXNlIGphdmFzY3JpcHQgbGlicmFyaWVzIG11c3QgYmUgaW5jbHVkZWQgaW4gdGhlIHBhZ2UgYmVmb3JlIHRoaXMgdGVtcGxhdGUgY2FuIGJlICB1c2VkIHN1Y2Nlc3NmdWxseS4KCiBUaGUgZmlsZSBmaWVsZCBuYW1lZCAnaW1hZ2VfdXBsb2FkJyBpcyBpbXBvcnRhbnQgYW5kIG11c3QgYmUgcmV0YWluZWQuCiBUaGUgZmVfZWRpdF9hbGJ1bSBhY3Rpb24gYWNjZXB0cyB0aGVzZSBwYXJhbWV0ZXJzOgogICBjb21wYW55aWQgICAgPSB0aGUgY29tcGFueSBpZAogICBjZF9mbGRpZCAgICAgPSB0aGUgZmllbGQgaWQgKG11c3QgYmUgYSBmaWVsZCBvZiB0eXBlIGFsYnVtLCBhbmQgbXVzdCBiZSBwdWJsaWMpCiAgIGNkX3N1YmFjdGlvbiA9IG5vbmUgKG91dHB1dHMgd2hvbGUgdGVtcGxhdGUpLCBnYWxsZXJ5LCBkZWxldGUsIHNvcnQsIG9yIHVwbG9hZAogICBjZF9vcmRlciAgICAgPSBhcnJheSBvZiBpbnRlZ2VycyByZXByZXNlbnRpbmcgdGhlIG5ldyBvcmRlciAoZm9yIHRoZSBzb3J0IHN1YmFjdGlvbikKICAgY2RfaWR4ICAgICAgID0gaW50ZWdlciBpbmRleCBvZiB0aGUgaXRlbSB0byBkZWxldGUgKGZvciB0aGUgZGVsZXRlIHN1YmFjdGlvbikKKn0KCntpZiAkc3ViYWN0aW9uICE9ICdnYWxsZXJ5J30KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwpmdW5jdGlvbiBfcmVmcmVzaF9nYWxsZXJ5KCkgewogICQoJyNjZF9lZGl0X2dhbGxlcnknKS5sb2FkKCd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ29tcGFueURpcmVjdG9yeScgYWN0aW9uPSRhY3Rpb25wYXJhbXMuYWN0aW9uIGNvbXBhbnlpZD0kY29tcGFueWlkIGNkX2ZsZGlkPSRhY3Rpb25wYXJhbXMuY2RfZmxkaWQgY2Rfc3ViYWN0aW9uPWdhbGxlcnkgdXJsb25seT0xIGpzZnJpZW5kbHk9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJyxmdW5jdGlvbigpewogIC8vIGZhbmN5Ym94ZXMgZm9yIGltYWdlcwogIGlmKCAkLmZhbmN5Ym94ICkgewogICAgICQoJ2EuZmFuY3lib3gnKS5mYW5jeWJveCgpOwogICB9CgogICAkKCcjY2RfZWRpdF9nYWxsZXJ5X2ZpbGVzIGxpJykuZHJhZ2dhYmxlKHsKICAgICByZXZlcnQ6ICdpbnZhbGlkJwogICB9KTsKCiAgIC8vIG1ha2Ugc29ydGFibGUgc3R1ZmYKICAgJCgnI2NkX2VkaXRfZ2FsbGVyeV9maWxlcycpLnNvcnRhYmxlKHsKICAgICBjdXJzb3I6ICdjcm9zc2hhaXInLAogICAgIHVwZGF0ZTogZnVuY3Rpb24oKSB7CiAgICAgICB2YXIgb3JkZXIgPSBbXTsKICAgICAgICQoJyNjZF9lZGl0X2dhbGxlcnlfZmlsZXMgbGknKS5lYWNoKGZ1bmN0aW9uKGlkeCxlbG0pewogICAgICAgICBhbGVydChlbG0uaWQrJyAnK2VsbS5pZC5zcGxpdCgnXycsMylbMl0pOwogICAgICAgICBvcmRlci5wdXNoKGVsbS5pZC5zcGxpdCgnXycsMylbMl0pOwogICAgICAgfSk7CiAgICAgICAkLmFqYXgoewogICAgICAgICB1cmw6ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ29tcGFueURpcmVjdG9yeScgYWN0aW9uPSRhY3Rpb25wYXJhbXMuYWN0aW9uIGNvbXBhbnlpZD0kY29tcGFueWlkIGNkX2ZsZGlkPSRhY3Rpb25wYXJhbXMuY2RfZmxkaWQgY2Rfc3ViYWN0aW9uPXNvcnQgdXJsb25seT0xIGpzZnJpZW5kbHk9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJywKCSB0eXBlOiAnUE9TVCcsCiAgICAgICAgIGRhdGE6IHsgY250bnQwMWNkX29yZGVyOiBvcmRlciB9LAogICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhLHRleHRTdGF0dXMsanFYSFIpIHsKICAgICAgICAgICBfcmVmcmVzaF9nYWxsZXJ5KCk7CiAgICAgICAgIH0KICAgICAgIH0pOwogICAgIH0KICAgfSk7CiB9KTsKfQoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICBfcmVmcmVzaF9nYWxsZXJ5KCk7CgogIGlmKCAkLmZpbGV1cGxvYWQgKSB7CiAgICAkKGRvY3VtZW50KS5iaW5kKCdkcm9wIGRyYWdvdmVyJywgZnVuY3Rpb24oZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB9KTsKICB9CgogIC8vIGRyYWcvZHJvcCB1cGxvYWQgc3R1ZmYKICAkKCcjaW1hZ2VfdXBsb2FkJykuZmlsZXVwbG9hZCh7CiAgICBkYXRhVHlwZTogJ2pzb24nLAogICAgZHJvcHpvbmU6ICQoJyNjZF9hbGJ1bV9kcm9wem9uZScpLAogICAgdXJsOiAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249JGFjdGlvbnBhcmFtcy5hY3Rpb24gY29tcGFueWlkPSRjb21wYW55aWQgY2RfZmxkaWQ9JGFjdGlvbnBhcmFtcy5jZF9mbGRpZCBjZF9zdWJhY3Rpb249dXBsb2FkIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZScsCiAgICBmb3JtOiBudWxsLAogICAgZm9ybURhdGE6IHsgY250bnQwMWNkX2ZvbzogJ2JhcicgfSwKICAgIG1heENodW5rU2l6ZTogNTAwKjEwMjQsCgogICAgcHJvZ3Jlc3NhbGw6IGZ1bmN0aW9uKGUsZGF0YSkgewogICAgICAvLyBjcmVhdGUgYSBwcm9ncmVzcyBiYXIgKHJlcXVpcmVzIGpxdWVyeSBVSSkKICAgICAgaWYoICQucHJvZ3Jlc3NiYXIgKSB7CiAgICAgICAgdmFyIHRvdGFsID0gKGRhdGEubG9hZGVkIC8gZGF0YS50b3RhbCAqIDEwMCkudG9GaXhlZCgwKTsKICAgICAgICAkKCcjY2RfYWxidW1fZHJvcHpvbmUnKS5wcm9ncmVzc2Jhcih7IHZhbHVlOiBwYXJzZUludCh0b3RhbCkgfSk7CiAgICAgICAgJCgnLnVpLXByb2dyZXNzYmFyLXZhbHVlJykuaHRtbCh0b3RhbCsnJScpOwogICAgICB9CiAgICB9LAoKICAgIHN0b3A6IGZ1bmN0aW9uKGUsZGF0YSkgewogICAgICAvLyBoaWRlIHRoZSBwcm9ncmVzcyBiYXIgKHJlcXVpcmVzIGpxdWVyeSBVSSkKICAgICAgaWYoICQucHJvZ3Jlc3NiYXIgKSB7CiAgICAgICAgJCgnI2NkX2FsYnVtX2Ryb3B6b25lJykucHJvZ3Jlc3NiYXIoJ2Rlc3Ryb3knKTsKICAgICAgfQogICAgfSwKCiAgICBkb25lOiBmdW5jdGlvbihlLGRhdGEpIHsKICAgICAgaWYoIGRhdGEucmVzdWx0ICkgewogICAgICAgIGZvciggdmFyIGtleSBpbiBkYXRhLnJlc3VsdCApIHsKICAgICAgICAgIGlmKCBkYXRhLnJlc3VsdFtrZXldLmVycm9yICkgewogICAgICAgICAgICBhbGVydChkYXRhLnJlc3VsdFtrZXldLm5hbWUrJyBmYWlsZWQ6ICcrZGF0YS5yZXN1bHRba2V5XS5lcnJvcik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIF9yZWZyZXNoX2dhbGxlcnkoKTsKICAgIH0KICB9KTsKCiAgJCgnI2NkX2FsYnVtX2RlbHpvbmUnKS5kcm9wcGFibGUoewogICAgIGRyb3A6IGZ1bmN0aW9uKGV2ZW50LHVpKSB7CiAgICAgICB1aS5kcmFnZ2FibGUuZmFkZU91dCgnc2xvdycpOwogICAgICAgdmFyIHggPSB1aS5kcmFnZ2FibGUuYXR0cignaWQnKTsKICAgICAgIHZhciBpZHggPSB4LnNwbGl0KCdfJywzKVsyXTsKCiAgICAgICAkLmFqYXgoewogICAgICAgICB1cmw6ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ29tcGFueURpcmVjdG9yeScgYWN0aW9uPSRhY3Rpb25wYXJhbXMuYWN0aW9uIGNvbXBhbnlpZD0kY29tcGFueWlkIGNkX2ZsZGlkPSRhY3Rpb25wYXJhbXMuY2RfZmxkaWQgY2Rfc3ViYWN0aW9uPWRlbGV0ZSB1cmxvbmx5PTEganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAogICAgICAgICB0eXBlOiAnUE9TVCcsCiAgICAgICAgIGRhdGE6IHsgY250bnQwMWNkX2lkeDogaWR4IH0sCgkgZXJyb3I6IGZ1bmN0aW9uIChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pIHsKICAgICAgICAgICBhbGVydCgndXBsb2FkIGZhaWxlZDogJy5lcnJvclRocm93bik7CiAgICAgICAgIH0sCiAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKCBkYXRhLCB0ZXh0U3RhdHVzLCBqcVhIUiApIHsKICAgICAgICAgICBfcmVmcmVzaF9nYWxsZXJ5KCk7CiAgICAgICAgIH0KICAgICAgIH0pOwogICAgIH0KICB9KTsKfSk7Ci8vXV0+Cjwvc2NyaXB0PgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KeyogdGhpcyBjc3Mgc2hvdWxkIGJlIG1vdmVkIGludG8geW91ciBwdWJsaWMgc3R5bGVzaGVldHMgKn0KI2NkX2VkaXRfZ2FsbGVyeV9maWxlcyBsaSB7CiAgbWFyZ2luOiAzcHggM3B4IDNweCAwOyBwYWRkaW5nOiAxcHg7CiAgZmxvYXQ6IGxlZnQ7CiAgd2lkdGg6IDEwMHB4OwogIGhlaWdodDogOTBweDsKICBmb250LXNpemU6IDRlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cn0KI2NkX2FsYnVtX2Ryb3B6b25lIHsKICBoZWlnaHQ6IDY0cHg7CiAgd2lkdGg6IDY0cHg7CiAgZmxvYXQ6IGxlZnQ7CiAgYm9yZGVSOiAxcHggc29saWQgcmVkOwogIGJhY2tncm91bmQtaW1hZ2U6IHVybCgne3Jvb3RfdXJsfS9tb2R1bGVzL0NvbXBhbnlEaXJlY3RvcnkvaWNvbnMvdXBsb2FkX3NtLnBuZycpOwp9CiNjZF9hbGJ1bV9kZWx6b25lIHsKICBoZWlnaHQ6IDY0cHg7CiAgd2lkdGg6IDY0cHg7CiAgZmxvYXQ6IGxlZnQ7CiAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47CiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd7cm9vdF91cmx9L21vZHVsZXMvQ29tcGFueURpcmVjdG9yeS9pY29ucy9yZWN5Y2xlX3NtLnBuZycpOwp9Cjwvc3R5bGU+Cgp7Y2dlX2lzaWUgYXNzaWduPSdpZSd9CjxmaWVsZHNldD4KPGxlZ2VuZD57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ3VwbG9hZCcpfTo8L2xlZ2VuZD4KICA8ZGl2IHN0eWxlPSJ3aWR0aDogNDklOyBmbG9hdDogbGVmdDsiPgogICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImltYWdlX3VwbG9hZCIgaWQ9ImltYWdlX3VwbG9hZCIgbXVsdGlwbGUvPgogIDwvZGl2PgogIHtpZiAhJGllfQogIDxkaXYgc3R5bGU9IndpZHRoOiA0OSU7IGZsb2F0OiBsZWZ0OyI+CiAgICA8ZGl2IGlkPSJjZF9hbGJ1bV9kcm9wem9uZSIgdGl0bGU9InskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnZHJvcF9oZXJlJyl9Ij48L2Rpdj4KICAgIDxkaXYgaWQ9ImNkX2FsYnVtX2RlbHpvbmUiIHRpdGxlPSJ7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2Ryb3BfaGVyZV90b19kZWxldGUnKX0iPjwvZGl2PgogIDwvZGl2PgogIHsvaWZ9CiAgPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48L2Rpdj4KPC9maWVsZHNldD4KCjxkaXYgaWQ9ImNkX2VkaXRfZ2FsbGVyeSI+CnsvaWZ9CgogIHtpZiBpc3NldCgkZmlsZXMpfQogICAgPHVsIGlkPSJjZF9lZGl0X2dhbGxlcnlfZmlsZXMiIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyI+CiAgICB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSdvbmVfZmlsZSd9CiAgICAgIDxsaSBpZD0iZmlsZV9pZHhfeyRvbmVfZmlsZUBpbmRleH0iPjxhIGNsYXNzPSJmYW5jeWJveCIgaHJlZj0ie0NHU21hcnRJbWFnZSBzcmMxPSRiYXNlX3VybCBzcmMyPSRvbmVfZmlsZSBub2VtYmVkPTEgd2lkdGg9NTAwIHdpZHRoPTUwMCBub3RhZz0xfSI+e0NHU21hcnRJbWFnZSBzcmMxPSRiYXNlX2RpciBzcmMyPSRvbmVfZmlsZSB3aWR0aD04MCBoZWlnaHQ9ODB9PC9hPjwvbGk+CiAgICB7L2ZvcmVhY2h9CiAgICA8L3VsPgogIHsvaWZ9Cgp7aWYgJHN1YmFjdGlvbiAhPSAnZ2FsbGVyeSd9CjwvZGl2Pgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnZV9oYXZlX21vZHVsZSBtPSdDR0dvb2dsZU1hcHMyJyBhc3NpZ249J2hhdmVfbWFwcyd9CntjZ2VfaGF2ZV9tb2R1bGUgbT0nQ0dDbGllbnRUaWNrZXRzJyBhc3NpZ249J2hhdmVfdGlja2V0cyd9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57anNtaW59CmlmKCB0eXBlb2YgalF1ZXJ5ID09ICd1bmRlZmluZWQnICkgYWxlcnQoJ2pRdWVyeSBpcyByZXF1cmllZCBmb3IgdGhpcyB0ZW1wbGF0ZScpOwp7aWYgJGhhdmVfbWFwc30KdmFyIGdlb2NvZGV1cmwgID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDR0dvb2dsZU1hcHMyJyBhY3Rpb249J2dldGdlb2NvZGUnIHVybG9ubHk9MX0nICsgJyZzaG93dGVtcGxhdGU9ZmFsc2UnOwokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogJCgnI2xvb2t1cGdvZXNoZXJlJykuaHRtbCgnPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9Imxvb2t1cCIgbmFtZT0ibG9va3VwIiB2YWx1ZT0ieyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdsb29rdXAnKX0iLz4nKTsKICQoJyNsb29rdXAnKS5vbignY2xpY2snLGZ1bmN0aW9uKGUpewogIHZhciBhZGRyZXNzID0gJCgnI2FkZHJlc3MnKS52YWwoKTsKICBpZiggYWRkcmVzcyAhPSAnJyApIHsKICAgIHZhciB1cmwgPSBnZW9jb2RldXJsLnJlcGxhY2UoL2FtcDsvZywnJyk7CiAgICB2YXIgbGF0ID0gMDsKICAgIHZhciBsb25nID0gMDsKICAgICQucG9zdCh1cmwsICdjbnRudDAxYWRkcmVzcz0nK2FkZHJlc3MsCiAgICAgIGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICBpZiggZGF0YS5zdGF0dXMgPT0gJ3N1Y2Nlc3MnICkgewogICAgICAgICAgbGF0ID0gZGF0YS5sYXQ7IGxvbmc9ZGF0YS5sb247CiAgICAgICAgICAkKCcjbGF0aXR1ZGUnKS52YWwobGF0KTsKICAgICAgICAgICQoJyNsb25naXR1ZGUnKS52YWwobG9uZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgICwgImpzb24iICk7CiAgfQogIHJldHVybiBmYWxzZTsKIH0pOwp7L2lmfQoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICQoJyNjYW5jZWwnKS5vbignY2xpY2snLGZ1bmN0aW9uKCl7CiAgIHZhciB1cmwgPSAne2Ntc19zZWxmbGluayBocmVmPSRwYWdlX2FsaWFzfSc7CiAgIGxvY2F0aW9uLnJlcGxhY2UodXJsKTsKICAgcmV0dXJuIGZhbHNlOwogfSk7CiAkKCcjZWRpdF9hbGJ1bScpLm9uKCdjbGljaycsZnVuY3Rpb24oZSl7CiAgIHJldHVybiBjb25maXJtKCd7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2NvbmZpcm1fZWRpdF9hbGJ1bScpfScpOwogfSk7Cn0pOwp7L2pzbWlufTwvc2NyaXB0PgoKPGRpdiBjbGFzcz0icm93Ij4Ke2lmICR0aGVfY29tcGFueS0+aWQgPiAxfQo8aDQ+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdlZGl0Y29tcGFueScpfTwvaDQ+CntlbHNlfQo8aDQ+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdhZGRjb21wYW55Jyl9PC9oND4Key9pZn0KPC9kaXY+Cgp7aWYgaXNzZXQoJG1lc3NhZ2UpfQo8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1kYW5nZXIiPnskbWVzc2FnZX08L2Rpdj4Key9pZn0KCntpZiAkaGF2ZV90aWNrZXRzfQogIHttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNHQ2xpZW50VGlja2V0cyBhY3Rpb249bmV3dGlja2V0IGtleTE9Q29tcGFueURpcmVjdG9yeSBrZXkyPSR0aGVfY29tcGFueS0+aWQgcGFnZT0nbXktdGlja2V0cycgdXJsb25seT0xIGFzc2lnbj0nbmV3dGlja2V0J30Key9pZn0KCnsqIHRoaXMgdGVtcGxhdGUgdXNlcyBib290c3RyYXAzIHN0eWxlcyAqfQp7JHN0YXJ0Zm9ybX0KPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IiByb2xlPSJuYXZpZ2F0aW9uIj4KICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9zdWJtaXQiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW9rIj48L3NwYW4+IHskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnc3VibWl0Jyl9PC9idXR0b24+CiAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBpZD0iY2FuY2VsIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1yZW1vdmUiPjwvc3Bhbj4geyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdjYW5jZWwnKX08L2J1dHRvbj4KICB7aWYgaXNzZXQoJGFsYnVtX2lkKSAmJiAgJGFsYnVtX2lkfQogICAgPGEgaWQ9ImVkaXRfYWJ1bSIgaHJlZj0ie21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249ZmVfZWRpdF9hbGJ1bSBjb21wYW55aWQ9JHRoZV9jb21wYW55LT5pZCBjZF9mbGRpZD0kYWxidW1faWQgdXJsb25seT0xfSI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdlZGl0X2FsYnVtJyl9PC9hPgogIHsvaWZ9CiAge2lmICRoYXZlX3RpY2tldHN9CiAgICA8YSBocmVmPSJ7JG5ld3RpY2tldH0iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBuYXZiYXItYnRuIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1iZWxsIj48L3NwYW4+IENyZWF0ZSBhIFRpY2tldCBhYm91dCB0aGlzIENvbXBhbnk8L2E+CiAgey9pZn0KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2NvbXBhbnluYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfY29tcGFueV9uYW1lIiB2YWx1ZT0ieyR0aGVfY29tcGFueS0+Y29tcGFueV9uYW1lfSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkc3RhdHVzZXMpfQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ3N0YXR1cycpfTo8L3A+CiAgPHAgY2xhc3M9ImNvbC1tZC05Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jZF9zdGF0dXMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHN0YXR1c2VzIHNlbGVjdGVkPSR0aGVfY29tcGFueS0+c3RhdHVzfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4Key9pZn0KPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdhZGRyZXNzJyl9OjwvcD4KICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2FkZHJlc3MiIHZhbHVlPSJ7JHRoZV9jb21wYW55LT5hZGRyZXNzfSIgc2l6ZT0iMzAiLz4KICAgICZuYnNwOzxzcGFuIGlkPSJsb29rdXBnb2VzaGVyZSI+PC9zcGFuPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnbGF0aXR1ZGUnKX06PC9wPgogIDxwIGNsYXNzPSJjb2wtbWQtOSI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9sYXRpdHVkZSIgaWQ9ImxhdGl0dWRlIiB2YWx1ZT0ieyR0aGVfY29tcGFueS0+bGF0aXR1ZGV9IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnbG9uZ2l0dWRlJyl9OjwvcD4KICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfbG9uZ2l0dWRlIiBpZD0ibG9uZ2l0dWRlIiB2YWx1ZT0ieyR0aGVfY29tcGFueS0+bG9uZ2l0dWRlfSIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ3RlbGVwaG9uZScpfTo8L3A+CiAgPHAgY2xhc3M9ImNvbC1tZC05Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3RlbGVwaG9uZSIgdmFsdWU9InskdGhlX2NvbXBhbnktPnRlbGVwaG9uZX0iIHNpemU9IjIwIiBtYXhsZW5ndGg9IjIwIi8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdmYXgnKX06PC9wPgogIDxwIGNsYXNzPSJjb2wtbWQtOSI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF90ZWxlcGhvbmUiIHZhbHVlPSJ7JHRoZV9jb21wYW55LT50ZWxlcGhvbmV9IiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnY29udGFjdGVtYWlsJyl9OjwvcD4KICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfY29udGFjdF9lbWFpbCIgdmFsdWU9InskdGhlX2NvbXBhbnktPmNvbnRhY3RfZW1haWx9IiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnd2Vic2l0ZScpfTo8L3A+CiAgPHAgY2xhc3M9ImNvbC1tZC05Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3dlYnNpdGUiIHZhbHVlPSJ7JHRoZV9jb21wYW55LT53ZWJzaXRlfSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjAiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2RldGFpbHMnKX06PC9wPgogIDxwIGNsYXNzPSJjb2wtbWQtOSI+CiAgICB7Y2dlX3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1jZF9kZXRhaWxzIHd5c2l3eWc9dHJ1ZSBjb250ZW50PSR0aGVfY29tcGFueS0+ZGV0YWlsc30KICA8L3A+CjwvZGl2PgoKeyogaW1hZ2UsIGFuZCBsb2dvIGFyZSBkZXByZWNhdGVkICp9Cgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2ltYWdldGV4dCcpfTo8L3A+CiAgPHAgY2xhc3M9ImNvbC1tZC05Ij4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2ltYWdlIiBzaXplPSI1MCIgYWNjZXB0PSJpbWFnZS8qIi8+CiAgICB7aWYgJHRoZV9jb21wYW55LT5pbWFnZV9sb2NhdGlvbn0KICAgIDxici8+CiAgICB7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06Jm5ic3A7eyR0aGVfY29tcGFueS0+aW1hZ2VfbG9jYXRpb259PGJyLz4KICAgIDxsYWJlbCBmb3I9ImNkX2RlbGV0ZWltYWdlIj57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2RlbGV0ZScpfSZuYnNwOzwvbGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2RlbGV0ZWltYWdlIiB2YWx1ZT0iMSIgaWQ9ImNkX2RlbGV0ZWltYWdlIi8+CiAgICB7L2lmfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2xvZ290ZXh0Jyl9OjwvcD4KICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9Y2RfbG9nbyIgc2l6ZT0iNTAiIGFjY2VwdD0iaW1hZ2UvKiIvPgogICAge2lmICR0aGVfY29tcGFueS0+bG9nb19sb2NhdGlvbn0KICAgIDxici8+CiAgICB7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06Jm5ic3A7eyR0aGVfY29tcGFueS0+bG9nb19sb2NhdGlvbn08YnIvPgogICAgPGxhYmVsIGZvcj0iY2RfZGVsZXRlbG9nbyI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdkZWxldGUnKX0mbmJzcDs8L2xhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9kZWxldGVsb2dvIiB2YWx1ZT0iMSIgaWQ9ImNkX2RlbGV0ZWxvZ28iLz4KICAgIHsvaWZ9CiAgPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkZmllbGRkZWZzKX0KIHtmb3JlYWNoICRmaWVsZGRlZnMgYXMgJGZsZG5hbWUgPT4gJGZpZWxkZGVmfQogeyRmbGRfdmFsdWU9JHRoZV9jb21wYW55LT5nZXRfZmllbGRfdmFsdWUoJGZpZWxkZGVmLT5pZCl9CiA8ZGl2IGNsYXNzPSJyb3ciPgogICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRmaWVsZGRlZi0+bmFtZX06PC9wPgogICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgIHtpZiAkZmllbGRkZWYtPnR5cGUgPT0gJ2ZpbGUnIHx8ICRmaWVsZGRlZi0+dHlwZSA9PSAnaW1hZ2UnfQogICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9Y2RfZmllbGRfeyRmaWVsZGRlZi0+aWR9IiBzaXplPSI1MCIvPgogICAgICAge2lmIGlzc2V0KCRmbGRfdmFsdWUpICYmICRmbGRfdmFsdWV9CiAgICAgICA8YnIvPgogICAgICAgeyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdjdXJyZW50X3ZhbHVlJyl9OiZuYnNwO3skZmxkX3ZhbHVlfGRlZmF1bHQ6Jyd9CiAgICAgICA8YnIvPgogICAgICAgPGxhYmVsIGZvcj0iY2RfZmllbGRfeyRmaWVsZGRlZi0+aWR9Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2RlbGV0ZScpfSZuYnNwOzwvbGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2RfZmllbGRfeyRmaWVsZGRlZi0+aWR9IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2RlbGV0ZWZpZWxkX3skZmllbGRkZWYtPmlkfSIgdmFsdWU9IjEiLz4KICAgICAgICB7L2lmfQogICAgIHtlbHNlaWYgJGZpZWxkZGVmLT50eXBlID09ICdjaGVja2JveCd9CiAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y2RfZmllbGRfeyRmaWVsZGRlZi0+aWR9IiB2YWx1ZT0iMSIge2lmICRmbGRfdmFsdWV9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfS8+CiAgICAge2Vsc2VpZiAkZmllbGRkZWYtPnR5cGUgPT0gJ3RleHRib3gnfQogICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfZmllbGRfeyRmaWVsZGRlZi0+aWR9IiB2YWx1ZT0ieyRmbGRfdmFsdWV8ZGVmYXVsdDonJ30iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgIHtlbHNlaWYgJGZpZWxkZGVmLT50eXBlID09ICd0ZXh0YXJlYSd9CiAgICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1jZF9maWVsZF97JGZpZWxkZGVmLT5pZH0iIHJvd3M9IjUiIGNvbHM9IjUwIj57JGZsZF92YWx1ZXxkZWZhdWx0OicnfTwvdGV4dGFyZWE+CiAgICAge2Vsc2VpZiAkZmllbGRkZWYtPnR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkZmllbGRkZWYtPnR5cGUgPT0gJ2ljb24nfQogICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNkX2ZpZWxkX3skZmllbGRkZWYtPmlkfSI+CiAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkZGVmLT5vcHRpb25zIHNlbGVjdGVkPSRmbGRfdmFsdWV8ZGVmYXVsdDonJ30KICAgICAgIDwvc2VsZWN0PgogICAgIHtlbHNlaWYgJGZpZWxkZGVmLT50eXBlID09ICdtdWx0aXNlbGVjdCd9CiAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfZmllbGRfeyRmaWVsZGRlZi0+aWR9W10iIHNpemU9IjMiIG11bHRpcGxlPSJtdWx0aXBsZSI+CiAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkZGVmLT5vcHRpb25zIHNlbGVjdGVkPSRmaWVsZGRlZi0+c2VsZWN0ZWR8ZGVmYXVsdDonJ30KICAgICAgIDwvc2VsZWN0PgogICAgIHsvaWZ9CiAgIDwvcD4KIDwvZGl2Pgogey9mb3JlYWNofQp7L2lmfQoKPGRpdiBjbGFzcz0icm93Ij4KIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2hpZXJhcmNoeScpfTo8L3A+CiA8cCBjbGFzcz0iY29sLW1kLTkiPgogICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfaGllcl9pZCI+CiAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaHlfbGlzdCBzZWxlY3RlZD0kdGhlX2NvbXBhbnktPmhpZXJfaWR9CiAgIDwvc2VsZWN0PgogPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkY2F0ZWdvcmllcykgJiYgY291bnQoJGNhdGVnb3JpZXMpfQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2NhdGVnb3JpZXMnKX06PC9wPgogIDxwIGNsYXNzPSJjb2wtbWQtOSI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfY2F0ZWdvcmllc1tdIiBtdWx0aXBsZT0ibXVsdGlwbGUiIHNpemU9IjUiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNhdG5hbWVzIHNlbGVjdGVkPSRzZWxfY2F0ZWdvcmllc30KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendimport_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZnJvbnRlbmQgY3N2IGltcG9ydCB0ZW1wbGF0ZSAqfQp7aWYgaXNzZXQoJG1lc3NhZ2UpfQo8cD48c3Ryb25nPnskbWVzc2FnZX08L3N0cm9uZz48L3A+Cjxoci8+CnsvaWZ9CntpZiBpc3NldCgkZXJyb3JzKX0KPGRpdiBjbGFzcz0iZXJyb3IiPgo8dWw+CiAge2ZvcmVhY2ggZnJvbT0kZXJyb3JzIGl0ZW09J2Vycm9yJ30KICAgIDxsaT57JGVycm9yfTwvbGk+CiAgey9mb3JlYWNofQo8L3VsPgo8L2Rpdj4Key9pZn0KCnskZm9ybXN0YXJ0fQo8cD57JG1vZC0+TGFuZygnaW5mb19jc3ZmaWxlJyl9PC9wPgp7aWYgJG1heHJlY29yZHMgPiAwfTxwPnskbW9kLT5MYW5nKCdtc2dfc2xvdHN1c2VkJywkbnVtcmVjb3JkcywkbWF4cmVjb3Jkcyl9PC9wPnsvaWZ9CjxkaXYgY2xhc3M9InBhZ2Vyb3ciPgogIDxwIGNsYXNzPSJmb3JtcHJvbXB0Ij57JG1vZC0+TGFuZygnZGVsaW1pdGVyJyl9PC9wPgogIDxwIGNsYXNzPSJmb3JtaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfZGVsaW1pdGVyIiBzaXplPSIzIiBtYXhsZW5ndGg9IjMiIHZhbHVlPSIsIi8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZXJvdyI+CiAgPHAgY2xhc3M9ImZvcm1wcm9tcHQiPnskbW9kLT5MYW5nKCdpbXBvcnRfZmlsZW5hbWUnKX08L3A+CiAgPHAgY2xhc3M9ImZvcm1pbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1jZF9jc3ZmaWxlIiBzaXplPSI1MCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2Vyb3ciPgogIDxwIGNsYXNzPSJmb3JtcHJvbXB0Ij48L3A+CiAgPHAgY2xhc3M9ImZvcm1pbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2PgoKeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendlist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGVtcGxhdGUgdG8gbGlzdCBhIHBhcnRpY3VsYXIgdXNlcnMgY29tcGFuaWVzIGFuZCBvcHRpb25hbGx5IGFsbG93IGVkaXRpbmcgKn0KPGRpdiBpZD0iY29tcGRpcl9mcm9udGVuZF9saXN0Ij4Ke2lmIGlzc2V0KCRyZWNvcmRzKX0KICB7JHRtcD1bXX0KICB7Zm9yZWFjaCAkcmVjb3JkcyBhcyAkb25lcmVjb3JkfQogICAgeyR0bXBbXT0kb25lcmVjb3JkLmlkfQogIHsvZm9yZWFjaH0KICB7Y2Rfc2VhcmNoc3RhdHMgbGlzdD0kdG1wIGFzc2lnbj0nc2VhcmNoaGl0cyd9CnsvaWZ9Cgp7aWYgaXNzZXQoJGZlX2FkZF91cmwpfQo8ZGl2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWRlZmF1bHQiIHJvbGU9Im5hdmlnYXRpb24iPgogIDxhIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBuYXZiYXItYnRuIiBocmVmPSJ7JGZlX2FkZF91cmx9Ij4KICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1wbHVzIj48L3NwYW4+IHskbW9kLT5MYW5nKCdhZGRjb21wYW55Jyl9CiAgPC9hPgogIHtpZiBpc3NldCgkZmVfaW1wb3J0X3VybCl9CiAgICA8YSB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgbmF2YmFyLWJ0biIgaHJlZj0ieyRmZV9pbXBvcnRfdXJsfSI+CiAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWltcG9ydCI+PC9zcGFuPiB7JG1vZC0+TGFuZygnaW1wb3J0Y3N2Jyl9CiAgICA8L2E+CiAgey9pZn0KPC9kaXY+CnsvaWZ9Cgp7aWYgaXNzZXQoJHJlY29yZHMpfQogIDx0YWJsZSBjbGFzcz0idGFibGUiPgogICAgPHRoZWFkPgogICAgICA8dHI+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdpZCcpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3N0YXR1cycpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdjcmVhdGVkJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ21vZGlmaWVkJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NlYXJjaGVzJyl9PC90aD4KICAgICAgICB7aWYgJGhhdmVfYWxidW19PHRoIGNsYXNzPSJpY29uIj48L3RoPnsvaWZ9CiAgICAgICAgPHRoIGNsYXNzPSJpY29uIj48L3RoPgogICAgICAgIHtpZiAkZnJvbnRlbmRfZGVsZXRlfTx0aCBjbGFzcz0iaWNvbiI+PC90aD57L2lmfQogICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgIHtmb3JlYWNoIGZyb209JHJlY29yZHMgaXRlbT0nb25lcmVjb3JkJ30KICAgICAgPHRyPgogICAgICAgIDx0ZD57JG9uZXJlY29yZC5pZH08L3RkPgogICAgICAgIDx0ZD57JG9uZXJlY29yZC5jb21wYW55X25hbWV9PC90ZD4KICAgICAgICA8dGQ+eyRtb2QtPkxhbmcoJG9uZXJlY29yZC5zdGF0dXMpfTwvdGQ+CiAgICAgICAgPHRkPnskb25lcmVjb3JkLmNyZWF0ZV9kYXRlfGNtc19kYXRlX2Zvcm1hdH08L3RkPgogICAgICAgIDx0ZD57JG9uZXJlY29yZC5tb2RpZmllZF9kYXRlfGNtc19kYXRlX2Zvcm1hdH08L3RkPgogICAgICAgIDx0ZD57JG51bT0kc2VhcmNoaGl0c1skb25lcmVjb3JkLmlkXX0KICAgICAgICAgIHtpZiAkbnVtID4gMH0KICAgICAgICAgICAge21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249J3NlYXJjaHN0YXRzJyBjb21wYW55aWQ9JG9uZXJlY29yZC5pZCB1cmxvbmx5PTEgYXNzaWduPSdzZWFyY2hzdGF0c191cmwnfQogICAgICAgICAgICA8YSBocmVmPSJ7JHNlYXJjaHN0YXRzX3VybH0iPnskbnVtfTwvYT4KICAgICAgICAgIHtlbHNlfQogICAgICAgICAgICB7JG51bXxkZWZhdWx0OjB9CiAgICAgICAgICB7L2lmfQogICAgICAgIDwvdGQ+CiAgICAgICAge2lmICRoYXZlX2FsYnVtfTx0ZD48YSBocmVmPSJ7JG9uZXJlY29yZC5nYWxsZXJ5X3VybH0iPnskbW9kLT5MYW5nKCdhbGJ1bScpfTwvYT48L3RkPnsvaWZ9CiAgICAgICAgPHRkPjxhIGhyZWY9Inskb25lcmVjb3JkLmVkaXRfdXJsfSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZWRpdCIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij48L3NwYW4+PC9hPjwvdGQ+CiAgICAgICAge2lmICRmcm9udGVuZF9kZWxldGV9PHRkPjxhIGhyZWY9Inskb25lcmVjb3JkLmRlbGV0ZV91cmx9Ij48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1yZW1vdmUiIHRpdGxlPSJ7JG1vZC0+TGFuZygnZGVsZXRlJyl9Ij48L2E+PC90ZD57L2lmfQogICAgICA8L3RyPgogICAgey9mb3JlYWNofQogICAgPC90Ym9keT4KICA8L3RhYmxlPgp7L2lmfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_hierlist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Z1bmN0aW9uIGRvX2hpZXJkYXRhIGRlcHRoPTF9CiAgPHVsIGNsYXNzPSJjZF9oaWVyLXskZGVwdGh9Ij4KICB7Zm9yZWFjaCAkZGF0YSBhcyAka2V5ID0+ICRpdGVtfQogICAgICA8bGk+CiAgICAgICAge2lmICRpdGVtLmNvdW50IGd0IDB9CiAgICAgICAgICA8YSBocmVmPSJ7JGl0ZW0udXJsfSI+eyRpdGVtLm5hbWV9IDxlbT4oeyRpdGVtLmNvdW50fSk8L2VtPjwvYT4KICAgICAgICB7ZWxzZX0KICAgICAgICAgIHskaXRlbS5uYW1lfSA8ZW0+KHskaXRlbS5jb3VudH0pPC9lbT4KICAgICAgICB7L2lmfQogICAgICAgIHtpZiBpc3NldCgkaXRlbS5jaGlsZHJlbikgJiYgY291bnQoJGl0ZW0uY2hpbGRyZW4pID4gMH0KICAgICAgICAgIHtkb19oaWVyZGF0YSBkZXB0aD0kZGVwdGgrMSBkYXRhPSRpdGVtLmNoaWxkcmVufQogICAgICAgIHsvaWZ9CiAgICAgIDwvbGk+CiAgey9mb3JlYWNofQogIDwvdWw+CnsvZnVuY3Rpb259Cgp7ZG9faGllcmRhdGEgZGF0YT0kaGllcmRhdGF9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_newsearch_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbmV3IHNlYXJjaCB0ZW1wbGF0ZQogIG1pc2MgcGFyYW1ldGVyczoKICB7JGFjdGlvbmlkfWNkX3Jlc3VsdHBhZ2UgLSAoc3RyaW5nL2ludGVnZXIpIHBhZ2UgaWQgZm9yIHN1bW1hcnkgcmVzdWx0cyAoc2VlIHRoZSBoZWxwIGZvciB0aGUgcmVzdWx0cGFnZSBwYXJhbWV0ZXIpCiAgeyRhY3Rpb25pZH1jZF9zdW1tYXJ5dGVtcGxhdGUgLSAoc3RyaW5nKSBzZWUgdGhlIGhlbHAgZm9yIHRoZSBzdW1tYXJ5dGVtcGxhdGUgcGFyYW1ldGVyCiAgeyRhY3Rpb25pZH1jZF9kZXRhaWxwYWdlIC0gKHN0cmluZy9pbnRlZ2VyKSBwYWdlIGlkIGZvciBkZXRhaWwgcmVzdWx0cyAoc2VlIHRoZSBoZWxwIGZvciB0aGUgZGV0YWlscGFnZSBwYXJhbWV0ZXIpCiAgeyRhY3Rpb25pZH1jZF9kZXRhaWx0ZW1wbGF0ZSAtIChzdHJpbmcvaW50ZWdlcikgcGFnZSBpZCBmb3IgZGV0YWlsIHJlc3VsdHMgKHNlZSB0aGUgaGVscCBmb3IgdGhlIGRldGFpbHRlbXBsYXRlIHBhcmFtZXRlcikKICB7JGFjdGlvbmlkfWNkX3BhZ2VsaW1pdCAtIChpbnRlZ2VyKSBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuICAoc2VlIHRoZSBoZWxwIGZvciB0aGUgcGFnZWxpbWl0IHBhcmFtZXRlcikKICB7JGFjdGlvbmlkfWNkX3BhZ2UgLSAoaW50ZWdlcikgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLiAgKHNlZSB0aGUgaGVscCBmb3IgdGhlIHBhZ2UgcGFyYW1ldGVyKQogIHskYWN0aW9uaWR9Y2Rfc29ydGJ5IC0gKHN0cmluZykgU29ydGluZyAoc2VlIHRoZSBoZWxwIGZvciB0aGUgc29ydGJ5IHBhcmFtZXRlcikKICB7JGFjdGlvbmlkfWNkX3NvcnRvcmRlciAtIChzdHJpbmcpIFNvcnQgb3JkZXIgKGFzY2VuZGluZyBvciBkZXNjZW5kaW5nKQoKICB2YWxpZCBmaWVsZHMgYXJlOgogIHskYWN0aW9uaWR9Y2Rfc3VibWl0IC0gKHN0cmluZykgZm9yIGEgc3VibWl0IGJ1dHRvbgogIHskYWN0aW9uaWR9Y2RfcmVzZXQgIC0gKHN0cmluZykgYSBidXR0b24gdG8gcmVzZXQgdGhlIGZvcm0uCiAgeyRhY3Rpb25pZH1jZF9yZXNldGFsbCAgLSAoc3RyaW5nKSBhIGJ1dHRvbiB0byByZXNldCBhbGwgc2F2ZWQgc2VhcmNoIGRhdGEgaW4gdGhlIHNlc3Npb24uCiAgeyRhY3Rpb25pZH1jZF9waHJhc2UgLSAoc3RyaW5nKSBmb3IgYWR2YW5jZWQgdGV4dCBzZWFyY2gKICAgICBzZWUgTXlTUUwgZnVsbCB0ZXh0IHNlYXJjaC4gIFNlYXJjaGVzIG9uIHdvcmRzIChzdWJqZWN0IHRvIHN0b3Agd29yZHMsIGFuZCBtaW5pbXVtIHdvcmQgbGVuZ3RoIGluIE15U1FMKQogICAgIHZhbGlkIHN5bnRheGVzOgogICAgICAgICJzb21lIHBocmFzZSIgc2VhcmNoIGZvciB0aGUgZXhhY3QgdGV4dCAocXVvdGVzIGltcG9ydGFudCkKICAgICAgICB3b3JkMSB3b3JkMiAgIHNlYXJjaCBmb3IgdGhlIHR3byB3b3JkcwogICAgICAgIHdvcmQxIC13b3JkMiAgc2VhcmNoIGZvciBlbnRyaWVzIHdpdGggdGhlIGZpcnN0IHdvcmQgYnV0IG5vIG9jY3VycmFuY2Ugb2YgdGhlIHNlY29uZCB3b3JkCiAgICAgICAgK3dvcmQxICt3b3JkMiBzZWFyY2ggZm9yIGVudHJpZXMgd2l0aCBhYnNvbHV0ZWx5IHRob3NlIHR3byB3b3Jkcy4KCiAgeyRhY3Rpb25pZH1jZF9sYXQgLSAoZmxvYXQpIC0gc3BlY2lmeSBhIGxhdGl0dWRlIGZvciBhIHJhZGl1cyBzZWFyY2gKICB7JGFjdGlvbmlkfWNkX2xvbmcgLSAoZmxvYXQpIC0gc3BlY2lmeSBhIGxvbmdpdHVkZSBmb3IgYSByYWRpdXMgc2VhcmNoCiAgeyRhY3Rpb25pZH1jZF9hZGRyZXNzIC0gKHN0cmluZykgZm9yIGFuIGFkZHJlc3MKICAgICAoZGVmYXVsdCA9IEVNUFRZKQogIHskYWN0aW9uaWR9Y2RfcmFkaXVzIC0gKGludCkgZm9yIGEgZGlzdGFuY2Ugc2VhcmNoICh2YWxpZCBvbmx5IGZvciBwb3N0Y29kZSBvciBsYXQvbG9uZyBzZWFyY2hlcykpCiAgICAgKGRlZmF1bHQgPSA1MCkKICB7JGFjdGlvbmlkfWNkX3VuaXRzICAtIChzdHJpbmcpIGZvciBhIGRpc3RhbmNlIHNlYXJjaCAodmFsaWQgb25seSBmb3IgcG9zdGNvZGUgb3IgbGF0L2xvbmcgc2VhcmNoZXMpICgia20iIG9yICJtaWxlcyIpCiAgICAgKGRlZmF1bHQgPSBtaWxlcykKICB7JGFjdGlvbmlkfWNkX25hbWUgICAtIChzdHJpbmcpIGZvciBhIGNvbXBhbnkgbmFtZQogICAgIChkZWZhdWx0ID0gRU1QVFkpCiAgeyRhY3Rpb25pZH1jZF9uYW1lX3R5cGUgLSAoc3RyaW5nKSBjb250cm9scyBob3cgdGhlIG5hbWUgaXMgdXNlZCAoImV4YWN0IiBvciAibGlrZSIpCiAgICAgKGRlZmF1bHQgPSBleGFjdCkKICB7JGFjdGlvbmlkfWNkX2FkZHJlc3NfdHlwZSAtIChzdHJpbmcpIGNvbnRyb2xzIGhvdyB0aGUgYWRkcmVzcyBmaWVsZCBpcyB1c2VkICgic3Vic3RyIiBvciAibG9va3VwIikKICAgICAoZGVmYXVsdCA9IHN1YnN0cikKICB7JGFjdGlvbmlkfWNkX25vY2hpbGRyZW4gLSAoaW50ZWdlcikgb3B0aW9uYWxseSBkaXNhYmxlIHNlYXJjaGluZyB0aHJvdWdoIG1hdGNoaW5nIGNoaWxkIGNhdGVnb3JpZXMgYW5kL29yIGhpZXJhcmNoaWVzLgogIHskYWN0aW9uaWR9Y2RfY2F0ZWdvcnlbXSAtIChhcnJheSBvZiBpbnRlZ2VycyksIG9yIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXJzLCB0byBmaWx0ZXIgb24gY2F0ZWdvcmllcy4gIFVzZSB0aGUgeyRjYXRlZ29yaWVzfSBhcnJheSB0byBidWlsZCBjaGVja2JveGVzLiAgVGhpcyBzcGVjaWZpZXMgYW4gSU4gcmVsYXRpb25zaGlwLi4uLiBjb21wYW5pZXMgaW4gYW55IE9ORSBvZiB0aGUgc3BlY2lmaWVkIGNhdGVnb3JpZXMgd2lsbCBiZSByZXR1cm5lZC4KICAgICAoZGVmYXVsdCA9IEVNUFRZKQogIHskYWN0aW9uaWR9Y2RfaGllciAgIC0gKGludCkgdG8gc3BlY2lmeSBhIGhpZXJhcmNoeSBpZCB0aGF0IHJlc3VsdHMgbXVzdCBiZWxvbmcgaW4uCnskYWN0aW9uaWR9Y2RfZmllbGRfZXhwcltdIC0gYXJyYXkgb2YgY3VzdG9tIGZpZWxkIGV4cHJlc3Npb25zLCBlYWNoIGVsZW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHRocmVlIG1vcmUgZWxlbWVudHMgaW5kaWNhdGluZyB0aGUgZmllbGQgbmFtZSwgdGhlIGZpbHRlciB2YWx1ZSwgYW5kIGFuIChvcHRpb25hbCkgZXhwcmVzc2lvbiB0eXBlLiBpLmU6CiAgeyRhY3Rpb25pZH1jZF9zb3J0YnkgLSAoc3RyaW5nKSBzZWUgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyCiAgeyRhY3Rpb25pZH1jZF9zb3J0b3JkZXIgLSAoc3RyaW5nKSBzZWUgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyCgogIEN1c3RvbSBGaWVsZCBTZWFyY2hlcwogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEl0IGlzIHBvc3NpYmxlIHRvIHByb3ZpZGUgaW5wdXQgZmllbGRzIHRvIGFsbG93IHRoZSB1c2VyIHRvIGZpbHRlci9zZWFyY2ggb24gY3VzdG9tIGZpZWxkcy4gIFRoaXMgaXMgZG9uZSBieSBwcm92aWRpbmcgYW4gYXJyYXkgb2YgZXhwcmVzc2lvbnMgd2l0aCB0aGUgbmFtZSBjZHhfZmllbGQuICBFYWNoIGV4cHJlc3Npb24gY29uc2lzdHMgb2YgdGhyZWUgcGFydHM6CiAgICBhOiBmbGRuYW1lOiBUaGUgZmllbGQgbmFtZQogICAgYjogZmxkdmFsOiAgVGhlIGZpZWxkIHZhbHVlICh0ZXJtIG9yIHZhbHVlIHRvIGZpbHRlciBvbikKICAgICAgIE5PVEU6IGVtcHR5IHZhbHVlcywgb3IgdGhlIHNwZWNpYWwgdmFsdWUgKipJR05PUkUqKiB3aWxsIHJlc3VsdCBpbiB0aGF0IGZpZWxkIGJlaW5nIGlnbm9yZWQgaW4gdGhlIHRoZSBleHByZXNzaW9uLgogICAgYzogZXhwcjogICAgVGhlIGZpZWxkIGV4cHJlc3Npb24KICAgICAgIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhlIGV4cHJlc3Npb24gYXJlOgogICAgICAgICBBVVRPOiBhdXRvbWF0aWNhbGx5IGRldGVybWluZSBhbiBleHByZXNzaW9uIGJhc2VkIG9uIHRoZSBmaWVsZCB0eXBlLCBhbmQgb3RoZXIgY3JpdGVyaWEuCiAgICAgICAgICAgICAgIGZvciBtdWx0aXNlbGVjdCwgaW1hZ2UsIGZpbGUsIGFuZCBvdGhlciBjdXN0b20gZmllbGQgdHlwZXMgYSBzdWJzdHJpbmcgY29tcGFyaXNvbi4KICAgICAgICAgTElLRTogTWF0Y2ggcmVjb3JkcyB3aGVyZSB0aGUgZmxkdmFsIHNwZWNpZmllZCBleGlzdHMgYXMgYSBzdWJzdHJpbmcgd2l0aGluIHRoZSBjb21wYW5pZXMgZmxkdmFsdWUKICAgICAgICAgU1cvU1RBUlRTV0lUSDogTWF0Y2ggcmVjb3JkcyB3aGVyZSB0aGUgZmllbGQgdmFsdWUgaW4gdGhlIGRhdGFiYXNlIHN0YXJ0cyB3aXRoIHRoZSBmbGR2YWwgc3BlY2lmaWVkCiAgICAgICAgIEVXL0VORFNTV0lUSDogTWF0Y2ggcmVjb3JkcyB3aGVyZSB0aGUgZmllbGQgdmFsdWUgaW4gdGhlIGRhdGFiYXNlIGVuZHMgd2l0aCB0aGUgZmxkdmFsIHNwZWNpZmllZAogICAgICAgICA8L0xUOiBNYXRjaCByZWNvcmRzIHdoZXJlIHRoZSBmaWVsZCB2YWx1ZSBpbiB0aGUgZGF0YWJhc2UgaXMgbGVzcyB0aGFuIHRoZSBmbGR2YWwgc3BlY2lmaWVkLgogICAgICAgICA8PS9MVEUvTEU6IE1hdGNoIHJlY29yZHMgd2hlcmUgdGhlIGZpZWxkIHZhbHVlIGluIHRoZSBkYXRhYmFzZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGZsZHZhbCBzcGVjaWZpZWQuCiAgICAgICAgID4vR1Q6IE1hdGNoIHJlY29yZHMgd2hlcmUgdGhlIGZpZWxkIHZhbHVlIGluIHRoZSBkYXRhYmFzZSBpcyBncmVhdGVyIHRoYW4gdGhlIGZsZHZhbCBzcGVjaWZpZWQuCiAgICAgICAgID49L0dURS9HRTogTWF0Y2ggcmVjb3JkcyB3aGVyZSB0aGUgZmllbGQgdmFsdWUgaW4gdGhlIGRhdGFiYXNlIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZmxkdmFsIHNwZWNpZmllZC4KICAgICAgICAgPS9FUTogTWF0Y2ggcmVjb3JkcyB3aGVyZSB0aGUgZmllbGQgdmFsdWUgaW4gdGhlIGRhdGFiYXNlIGlzIGV4YWN0bHkgZXF1YWwgdG8gdGhlIGZsZHZhbCBzcGVjaWZpZWQuCiAgICAgICAgICE9L05FOiBNYXRjaCByZWNvcmRzIHdoZXJlIHRoZSBmaWVsZCB2YWx1ZSBpbiB0aGUgZGF0YWJhc2UgaXMgbm90IGVxdWFsIHRvIHRoZSBmbGR2YWwgc3BlY2lmaWVkLgogICAgZDogdHlwZTogICAgIFRoZSBmaWVsZCB0eXBlCiAgICAgICAoZm9yIGV4cHJlc3Npb25zIExULExFLEdULEdFLEVRLE5FKQogICAgICAgQWxsb3dzIGNhc3RpbmcgdGhlIGZpZWxkIHZhbHVlIHRvIGEgbW9yZSBhcHByb3ByaWF0ZSB0eXBlIGZvciBjb21wYXJpc29ucy4KICAgICAgIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhlIHR5cGUgYXJlOgogICAgICAgICBGTE9BVCwgUkVBTCwgREVDSU1BTCAgKGZsb2F0aW5nIHBvaW50KQogICAgICAgICBJTlQsIElOVEVHRVIsIFNJR05FRCAgKHNpZ25lZCBpbnRlZ2VyKQogICAgICAgICBVTlNJR05FRCAodW5zaWduZWQgaW50ZWdlcikKCiAgU2VlIGJlbG93IGZvciBleGFtcGxlcyBvZiB1c2luZyB0aGUgY2R4X2ZpZWxkIHR5cGUuCgogIFBvc3RhbCBDb2RlIFNlYXJjaGVzCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTm90ZXM6ICBJZiBhIHBvc3RhbC96aXAgY29kZSBpcyBzcGVjaWZpZWQsIGFuZCB0aGUgUG9zdGNvZGUgbW9kdWxlLCBhbmQgQ0dHb29nbGVNYXBzIG1vZHVsZXMgYXJlIGluc3RhbGxlZCwgdGhlbiB0aGUgcG90YWwvemlwIGNvZGUgd2lsbCBiZSB1c2VkIGZpcnN0IHRvIGNhbGN1bGF0ZSBhIGdlb2dyYXBoaWMgc2VhcmNoIGFyZWEuCiAgeyRhY3Rpb25pZH1jZF9wb3N0YWwgIC0gKHN0cmluZykgZm9yIGEgcG9zdGFsIGNvZGUgKHZhbGlkIG9ubHkgaWYgdGhlIFBvc3Rjb2RlcyBtb2R1bGUgaXMgaW5zdGFsbGVkKQogICAgIChkZWZhdWx0ID0gRU1QVFkpCiAgeyRhY3Rpb25pZH1jZF9wb3N0YWxjaGFycyAgLSAoaW50ZWdlcikgZm9yIGEgcG9zdGFsIGNvZGUgKHZhbGlkIG9ubHkgaWYgdGhlIFBvc3Rjb2RlcyBtb2R1bGUgaXMgaW5zdGFsbGVkKQogICAgIFVzZWQgdG8gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGFjY3VyYXRlIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgdXNlZCB0byBkbyBhIHBvc3RhbCBjb2RlIC0+IGxhdCBsb25nIGxvb2t1cC4KICAgICBTb21lIHBvc3RhbCBjb2RlIGRhdGFiYXNlcyBhcmUgb25seSBhY2N1cmF0ZSB0byB0aGUgZmlyc3QgTiBjaGFyYWN0ZXJzLgogICAgKGRlZmF1bHQgPSAwID09IHVzZSBhbGwgY2hhcnMgb2Ygc3VwcGxpZWQgcG9zdGFsIGNvZGUpCiAgeyRhY3Rpb25pZH1jZF9jb3VudHJ5IC0gKHN0cmluZykgZm9yIGEgcG9zdGFsIGNvZGUgKHZhbGlkIG9ubHkgaWYgdGhlIFBvc3Rjb2RlcyBtb2R1bGUgaXMgaW5zdGFsbGVkKSAodXNlIHR3byBsZXR0ZXIgY291bnRyeSBjb2RlKQogICAgIChkZWZhdWx0ID0gVVMpCiAgeyRhY3Rpb25pZH1jZF9zZWFyY2hhZGRyZXNzIC0gKGludCkgdG8gc3BlY2lmeSB0aGF0LCB3aGVuIGRvaW5nIGEgcG9zdGFsIGNvZGUgc2VhcmNoIHRoYXQgdGhlIGFkZHJlc3MgZmllbGQgc2hvdWxkIGJlIHNlYXJjaGVkIGFzIHdlbGwuCiAgICAgKGRlZmF1bHQgMCkKCiAgU3VwcGx5aW5nIFBhcmFtZXRlcnMKICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIEl0IGlzIHBvc3NpYmxlIHRvIHB1dCBtYW55IG9mIHRoZSBhYm92ZSBkZXNjcmliZWQgcGFyYW1ldGVycyBkaXJlY3RseSBpbnRvIHRoZSBmb3JtIChiZXR3ZWVuIHRoZSBmb3Jtc3RhcnQgYW5kIGZvcm1lbmQgdGFncykuICBBZGRpdGlvbmFsbHksCiAgZm9yIHRoZSBzZWN1cml0eSBtaW5kZWQgbWFueSBwYXJhbWV0ZXJzIGNhbiBiZSBzdXBwbGllZCBpbiB0aGUgdGFnIHRvIHRoZSBtb2R1bGUuLi4gb3Igb24gdGhlIHJlbGV2ZW50IHN1bW1hcnkgYW5kIGRldGFpbCBwYWdlcyB1c2luZyB0aGUKICB7Y2dlX21vZHVsZV9oaW50fSB0YWcgdGhhdCBpcyBzdXBwbGllZCB3aXRoIGxhdGVyIHZlcnNpb25zIG9mIENvbXBhbnlEaXJlY3RvcnkuCip9Cgp7KiB1c2Ugc29tZSBqcXVlcnksIGFuZCBicm93c2VyIGxvY2F0aW9uIGluZm9ybWF0aW9uIHRvIGZpbGwgdGhlIGxhdC9sb25nIGZpZWxkcyB0aGlzIGlzIGdyZWF0IGZvciBtb2JpbGUgc2l0ZXMsIG5vdGUgdGhpcyB3aWxsIGVuYWJsZQogICBjb29yZGluYXRlIGJhc2VkIHNlYXJjaGVzIGFuZCB3aWxsIGV4Y2x1ZGUgYW55IGNvbXBhbmllcyB0aGF0IGRvIG5vdCBoYXZlIGxhdGl0dWRlcyBhbmQgbG9uZ2l0dWRlcyBzdG9yZWQgKn0KeyoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfS8vPCFbQ0RBVEFbCmlmKCB0eXBlb2YoalF1ZXJ5KSAhPSAndW5kZWZpbmVkJyApewogIGlmKG5hdmlnYXRvci5nZW9sb2NhdGlvbikgewogICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwb3NpdGlvbil7CiAgICAgIC8vIFRyeSBXM0MgR2VvbG9jYXRpb24gKFByZWZlcnJlZCkKICAgICAgJCgnI2xhdGl0dWRlJykudmFsKHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSk7CiAgICAgICQoJyNsb25naXR1ZGUnKS52YWwocG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSk7CiAgICB9KTsKICB9Cn0KLy9dXT4Key9saXRlcmFsfTwvc2NyaXB0PgoqfQoKe3N0cmlwfQo8ZGl2IGlkPSJjZF9zZWFyY2hmb3JtIj57JGZvcm1zdGFydH0KICB7KiBkaXNwbGF5IGFueSBlcnJvcnMgKn0KICB7aWYgaXNzZXQoJGVycm9ycyl9CiAgPHAgY2xhc3M9ImVycm9ycyI+CiAgICB7Jzxici8+J3xpbXBsb2RlOiRlcnJvcnN9CiAgPC9wPgogIHsvaWZ9CgogIHsqIHBocmFzZSBzZWFyY2ggKn0KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPHAgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdwaHJhc2UnKX08L3A+CiAgICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9waHJhc2UiIHNpemU9IjQwIiB2YWx1ZT0ieyRzYXZlZC5waHJhc2V8ZGVmYXVsdDonJ30iLz4KICAgIDwvcD4KICA8L2Rpdj4KCiAgeyogbmFtZSBzdWJzdHJpbmcgc2VhcmNoICp9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnbmFtZScpfTwvcD4KICAgIDxwIGNsYXNzPSJjb2wtbWQtOSI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX25hbWUiIHNpemU9IjQwIiB2YWx1ZT0ieyRzYXZlZC5uYW1lfGRlZmF1bHQ6Jyd9Ii8+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2RfbmFtZV90eXBlIiB2YWx1ZT0iTElLRSIvPgogICAgPC9wPgogIDwvZGl2PgoKICB7KiBhZGRyZXNzIHN1YnN0cmluZyBzZWFyY2ggKn0KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPHAgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhZGRyZXNzJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbC1tZC05Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfYWRkcmVzcyIgc2l6ZT0iNDAiIHZhbHVlPSJ7JHNhdmVkLmFkZHJlc3N8ZGVmYXVsdDonJ30iLz4KICAgIDwvcD4KICA8L2Rpdj4KCiAgeyogZm9yIGxhdC9sb25nIHJhZGl1cyBzZWFyY2hlcyAqfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ2Nvb3JkaW5hdGVzJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbC1tZC05Ij4KICAgICAgeyogbm90ZSwgaWYgdmFsdWVzIGFyZSBzdXBwbGllZCBmb3IgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB0aGVuIHBvc3RhbCBjb2RlIGlzIGlnbm9yZWQgKn0KICAgICAgeyRtb2QtPkxhbmcoJ2xhdGl0dWRlJyl9OiA8aW5wdXQgaWQ9ImxhdGl0dWRlIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2xhdCIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJ7JHNhdmVkLmxhdHxkZWZhdWx0OicnfSIvPjxici8+CiAgICAgIHskbW9kLT5MYW5nKCdsb25naXR1ZGUnKX06IDxpbnB1dCBpZD0ibG9uZ2l0dWRlIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2xvbmciIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIiB2YWx1ZT0ieyRzYXZlZC5sb25nfGRlZmF1bHQ6Jyd9Ii8+PGJyLz4KICAgIDwvcD4KICA8L2Rpdj4KCiAgeyogZm9yIHBvc3RhbCBjb2RlIHJhZGl1cyBzZWFyY2hlcyAqfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ3Bvc3RhbF9jb2RlJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbC1tZC05Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfcG9zdGFsIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCIgdmFsdWU9Inskc2F2ZWQucG9zdGFsfGRlZmF1bHQ6Jyd9Ii8+CiAgICAgIHsqIHlvdSBjb3VsZCBhbHNvIHVzZSB0aGUgeyRpbnB1dF9jb3VudHJ5fSB2YXJpYWJsZSB0byBkaXNwbGF5IGEgY291bnRyeSBkcm9wZG93biAqfQogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2NvdW50cnkiIHZhbHVlPSJDQSIvPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Bvc3RhbGNoYXJzIiB2YWx1ZT0iMyIvPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3NlYXJjaGFkZHJlc3MiIHZhbHVlPSIxIi8+CiAgICA8L3A+CiAgPC9kaXY+CgogIHsqIGZvciBhbGwgcmFkaXVzIHNlYXJjaGVzICp9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygncmFkaXVzJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbC1tZC05Ij4KICAgICAge2Fzc2lnbiB2YXI9J3JhZGl1c2VzJyB2YWx1ZT1bMTA9PjEwLDI1PT4yNSw1MD0+NTAsMTAwPT4xMDBdfQogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfcmFkaXVzIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHJhZGl1c2VzIHNlbGVjdGVkPSRzYXZlZC5yYWRpdXN8ZGVmYXVsdDotMX0KICAgICAgPC9zZWxlY3Q+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2RfdW5pdHMiIHZhbHVlPSJtaWxlcyIvPgogICAgPC9wPgogIDwvZGl2PgoKIHsqIGFkdmFuY2VkIGZpbHRlcmluZyBvbiBoaWVyYXJjaGllcyAqfQoge2lmIGlzc2V0KCRoaWVyYXJjaGllcyl9CiA8ZGl2IGNsYXNzPSJyb3ciPgogICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L3A+CiAgIDxwIGNsYXNzPSJjb2wtbWQtOSI+CiAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNkX2hpZXIiPgogICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaGllcyBzZWxlY3RlZD0kc2F2ZWQuaGllcnxkZWZhdWx0Oi0xfQogICAgIDwvc2VsZWN0PgogICA8L3A+CiA8L2Rpdj4KIHsvaWZ9CgogeyogYWR2YW5jZWQgZmlsdGVyaW5nIG9uIGNhdGVnb3JpZXMgKn0KIHtpZiBpc3NldCgkY2F0ZWdvcmllcyl9CiA8ZGl2IGNsYXNzPSJyb3ciPgogICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ2NhdGVnb3JpZXMnKX06PC9wPgogICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAge2NhcHR1cmUgYXNzaWduPSd0bXAnfXskYWN0aW9uaWR9Y2RfY2F0ZWdvcnl7L2NhcHR1cmV9CiAgICB7aHRtbF9jaGVja2JveGVzIG5hbWU9JHRtcCBvcHRpb25zPSRjYXRlZ29yaWVzIHNlcGFyYXRvcj0nPGJyLz4nIHNlbGVjdGVkPSRzYXZlZC5jYXRlZ29yeXxkZWZhdWx0OicnfQogIDwvcD4KIDwvZGl2Pgogey9pZn0KCiB7KiBhZHZhbmNlZCBmaWx0ZXJpbmcgb24gYSBzcGVjaWZpYyBjdXN0b20gZmllbGQqfQogPGRpdiBjbGFzcz0icm93Ij4KICAgPHAgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPk15RmllbGQgc3Vic3RyaW5nIFRlc3Q6PC9wPgogICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2R4X2ZpZWxkWzBdW2ZsZG5hbWVdIiB2YWx1ZT0ibXlmaWVsZCIvPnsqIGhpZGRlbiBpbnB1dCBmb3IgY3VzdG9tIGZpZWxkIG5hbWUgKn0KICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZHhfZmllbGRbMF1bZmxkdmFsXSIgdmFsdWU9IiIvIHNpemU9IjEwIiB2YWx1ZT0ieyRzYXZlZC5maWVsZHMubXlmaWVsZC5mbGR2YWx8ZGVmYXVsdDonJ30iPnsqIHRleHQgaW5wdXQgZm9yIGN1c3RvbSBmaWVsZCB2YWx1ZSAqfQogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2R4X2ZpZWxkWzBdW2V4cHJdIiB2YWx1ZT0iTElLRSIvPnsqIGhpZGRlbiBpbnB1dCBmb3IgY3VzdG9tIGZpZWxkIGV4cHJlc3Npb24gKn0KICAgPC9wPgogPC9kaXY+CiA8ZGl2IGNsYXNzPSJyb3ciPgogICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+Q3VzdG9tIEZpZWxkIHZhbHVlIHRlc3Q6PC9wPgogICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2R4X2ZpZWxkWzFdW2ZsZG5hbWVdIiB2YWx1ZT0ibXlpbnRmaWVsZCIvPnsqIGhpZGRlbiBpbnB1dCBmb3IgY3VzdG9tIGZpZWxkIG5hbWUgKn0KICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZHhfZmllbGRbMV1bZmxkdmFsXSIgdmFsdWU9IiIvIHNpemU9IjMiIHZhbHVlPSJ7JHNhdmVkLmZpZWxkcy5teWludGZpZWxkLmZsZHZhbHxkZWZhdWx0OicnfT57KiB0ZXh0IGlucHV0IGZvciBjdXN0b20gZmllbGQgdmFsdWUgKn0KICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkeF9maWVsZFsxXVtleHByXSIgdmFsdWU9Imx0Ii8+eyogaGlkZGVuIGlucHV0IGZvciBjdXN0b20gZmllbGQgZXhwcmVzc2lvbiAqfQogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2R4X2ZpZWxkWzFdW3R5cGVdIiB2YWx1ZT0iaW50Ii8+eyogaGlkZGVuIGlucHV0IGZvciBjdXN0b20gZmllbGQgZXhwcmVzc2lvbiAqfQogICA8L3A+CiA8L2Rpdj4KCiA8ZGl2IGNsYXNzPSJyb3ciPgogICA8cCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+PC9wPgogICA8cCBjbGFzcz0iY29sLW1kLTkiPgogICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2Rfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2RfcmVzZXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygncmVzZXQnKX0iLz4KICAgPC9wPgogPC9kaXY+Cgp7JGZvcm1lbmR9PC9kaXY+eyogI2NkX3NlYXJjaGZvcm0gKn0Key9zdHJpcH0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_searchstats_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VhcmNoIHN0YXRpc3RpY3Mgc3VtbWFyeSB2aWV3ICp9Cgp7KiB1c2FnZToge2V4cGFuZF9kZF9zZWxlY3RlZCBvcHRpb25zPWFycmF5X29wdGlvbnMgc2VsZWN0ZWQ9JHNlbGVjdGVkX2tleXMgKn0Ke2Z1bmN0aW9uIGV4cGFuZF9kZF9zZWxlY3RlZH0KICB7aWYgaXNfYXJyYXkoJHNlbGVjdGVkKSB8fCAkc2VsZWN0ZWQgIT0gJyd9CiAgICB7aWYgIWlzX2FycmF5KCRzZWxlY3RlZCl9eyRzZWxlY3RlZD1bJHNlbGVjdGVkXX17L2lmfQogICAgeyR2YWxzPVtdfQogICAge2ZvcmVhY2ggJHNlbGVjdGVkIGFzICRvbmV9CiAgICAgIHskdmFsc1tdPSRvcHRpb25zWyRvbmVdfQogICAgey9mb3JlYWNofQogICAge2ltcGxvZGUoJywgJywkdmFscyl9CiAgey9pZn0Key9mdW5jdGlvbn0KCntpZiBpc3NldCgkc2VhcmNoZXMpfQogIHsqIHRvZG86IG5hdmlnYXRpb24gc3R1ZmYgaGVyZSAqfQogIDx0YWJsZT4KICAgIDx0aGVhZD4KICAgICAgPHRyPgogICAgICAgIDx0aD57JG1vZC0+TGFuZygnc2VhcmNoX2RhdGUnKX08L3RoPgogICAgICAgIDx0aD57JG1vZC0+TGFuZygnc2VhcmNoX2lwJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NlYXJjaF9uYW1lJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NlYXJjaF9hZGRyZXNzJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NlYXJjaF9wb3N0YWwnKX08L3RoPgogICAgICAgIDx0aD57JG1vZC0+TGFuZygnc2VhcmNoX2hpZXInKX08L3RoPgogICAgICAgIDx0aD57JG1vZC0+TGFuZygnc2VhcmNoX2NhdGVnb3JpZXMnKX08L3RoPgogICAgICAgIDx0aD5NaW5pbmc6IHsqIGEgZHJvcGRvd24gY3VzdG9tIGZpZWxkICp9PC90aD4KICAgICAgICA8dGg+bXMxOiB7KiBhIG11bHRpc2VsZWN0IGN1c3RvbSBmaWVsZCAqfTwvdGg+CiAgICAgIDwvdGQ+CiAgICA8L3RoZWFkPgogICAgPHRib2R5PgogICAge2ZvcmVhY2ggJHNlYXJjaGVzIGFzICRzZWFyY2h9CiAgICAgIDx0cj4KICAgICAgICA8dGQ+eyRzZWFyY2guZGF0ZV9zZWFyY2hlZH08L3RkPgogICAgICAgIDx0ZD57JHNlYXJjaC5pcF9hZGRyZXNzfTwvdGQ+CiAgICAgICAgPHRkPnskc2VhcmNoLnZhbHMubmFtZXxkZWZhdWx0OicnfTwvdGQ+CiAgICAgICAgPHRkPnskc2VhcmNoLnZhbHMuYWRkZHJlc3N8ZGVmYXVsdDonJ308L3RkPgogICAgICAgIDx0ZD57JHNlYXJjaC52YWxzLnBvc3RhbHxkZWZhdWx0OicnfTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgIHtpZiBpc3NldCgkc2VhcmNoLnZhbHMuaGllcil9CiAgICAgICAgICAgICB7JGhpZXJhcmNoaWVzWyRzZWFyY2gudmFscy5oaWVyXX0KICAgICAgICAgICB7L2lmfQogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAge2lmIGlzc2V0KCRzZWFyY2gudmFscy5jYXRlZ29yeSl9CiAgICAgICAgICAgIHtmb3JlYWNoICRzZWFyY2gudmFscy5jYXRlZ29yeSBhcyAkY2F0aWR9CiAgICAgICAgICAgICAgeyRjYXRzMltdPSRjYXRlZ29yaWVzWyRzZWFyY2gudmFscy5jYXRlZ29yeV19CiAgICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICAge2ltcGxvZGUoJywgJywkY2F0czIpfQogICAgICAgICAgey9pZn0KICAgICAgICA8L3RkPgogICAgICAgIDx0ZD57ZXhwYW5kX2RkX3NlbGVjdGVkIG9wdGlvbnM9JGZpZWxkcy5NaW5pbmcub3B0aW9ucyBzZWxlY3RlZD0kc2VhcmNoLnZhbHMuZmllbGRfTWluaW5nfGRlZmF1bHQ6Jyd9PC90ZD4KICAgICAgICA8dGQ+e2V4cGFuZF9kZF9zZWxlY3RlZCBvcHRpb25zPSRmaWVsZHMubXMxLm9wdGlvbnMgc2VsZWN0ZWQ9JHNlYXJjaC52YWxzLmZpZWxkX21zMXxkZWZhdWx0OicnfTwvdGQ+CiAgICAgIDwvdHI+CiAgICB7L2ZvcmVhY2h9CiAgICA8L3Rib2R5PgogIDwvdGFibGU+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogQ29tcGFueURpcmVjdG9yeSBTdW1tYXJ5IFRlbXBsYXRlICp9CntpZiBpc3NldCgkbWVzc2FnZXMpfQo8ZGl2IGNsYXNzPSJyb3cgQ29tcGFueURpcmVjdG9yeU1lc3NhZ2UiPgogPHVsPgogICB7Zm9yZWFjaCBmcm9tPSRtZXNzYWdlcyBpdGVtPSdvbmUnfQogICAgIDxsaT57JG9uZX08L2xpPgogICB7L2ZvcmVhY2h9CiA8L3VsPgo8L2Rpdj4Key9pZn0KCntpZiBpc3NldCgkZXJyb3JzKX0KPGRpdiBjbGFzcz0icm93IENvbXBhbnlEaXJlY3RvcnlFcnJvciI+CiA8dWw+CiAgIHtmb3JlYWNoIGZyb209JGVycm9ycyBpdGVtPSdvbmUnfQogICAgIDxsaT57JG9uZX08L2xpPgogICB7L2ZvcmVhY2h9CiA8L3VsPgo8L2Rpdj4Key9pZn0KCntpZiBpc3NldCgkaXRlbXMpfQogIHtpZiBpc3NldCgkZmlyc3RsaW5rKSB8fCBpc3NldCgkbmV4dGxpbmspfQogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLW9mZnNldC04Ij48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiPgogICAgICAgIHtpZiBpc3NldCgkZmlyc3RsaW5rKX17JGZpcnN0bGlua30mbmJzcDt7JHByZXZsaW5rfSZuYnNwOyZuYnNwO3svaWZ9CiAgICAgICAgeyRwYWdldGV4dH0geyRjdXJwYWdlfSB7JG9mdGV4dH0geyRwYWdlY291bnR9CiAgICAgICAge2lmIGlzc2V0KCRuZXh0bGluayl9Jm5ic3A7Jm5ic3A7eyRuZXh0bGlua30mbmJzcDt7JGxhc3RsaW5rfXsvaWZ9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgey9pZn0KCiAge2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KICA8YXJ0aWNsZSBjbGFzcz0iQ29tcGFueURpcmVjdG9yeUl0ZW0iIHN0eWxlPSJwYWRkaW5nLWJvdHRvbTogMmVtOyI+CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMiI+CiAgICAgIHtpZiAkZW50cnktPnBpY3R1cmVfbG9jYXRpb24gbmUgJyd9CiAgICAgICAge0NHU21hcnRJbWFnZSBzcmM9JGVudHJ5LT5waWN0dXJlX3BhdGggaGVpZ2h0PTE1MCB3aWR0aD0xNTB9CiAgICAgIHsvaWZ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMTAiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICB7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ25hbWUnKX06Jm5ic3A7PGEgaHJlZj0ieyRlbnRyeS0+ZGV0YWlsX3VybH0iPnskZW50cnktPmNvbXBhbnlfbmFtZX08L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgIHttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDR1NvY2lhbEFwcCcgYWN0aW9uPSdhZGRjaGVja2luJyBsb2NhdGlvbj0kZW50cnktPmlkIHRleHQ9J0NoZWNraW4gSGVyZSd9CiAgICAgICAgPC9kaXY+CiAgICAgICAge2lmICRlbnRyeS0+YWRkcmVzcyBuZSAnJ30KICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdhZGRyZXNzJyl9OiZuYnNwO3skZW50cnktPmFkZHJlc3N9PC9kaXY+CiAgICAgICAgey9pZn0KICAgICAgICB7aWYgJGVudHJ5LT53ZWJzaXRlIG5lICcnfQogICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ3dlYnNpdGUnKX06Jm5ic3A7PGEgaHJlZj0iaHR0cDovL3skZW50cnktPndlYnNpdGV9Ij57JGVudHJ5LT53ZWJzaXRlfTwvYT48L2Rpdj4KICAgICAgICB7L2lmfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIHsqIHNhbXBsZSBvZiBhZGRyZXNzaW5nIGEgY3VzdG9tIGZpZWxkIGRpcmVjdGx5ICp9CntzdHJpcH0KICAgIHtpZiBpc3NldCgkZW50cnktPmZpZWxkcyl9CiAgICAgIHtpZiBpc3NldCgkZW50cnktPmZpZWxkcy5mb28pICYmICRlbnRyeS0+ZmllbGRzLmZvby0+dmFsdWUgIT0gJyd9CiAgICAgICAgRm9vOiB7JGVudHJ5LT5maWVsZHMuZm9vLT52YWx1ZX08YnIvPgogICAgICB7L2lmfQoKICAgICAgeyogc2FtcGxlIG9mIGFkZHJlc3NpbmcgYSBmaWVsZCB3aXRoIHNwYWNlcyBvciBvdGhlciBjaGFycyBpbiB0aGUgbmFtZQogICAgICBTcGVjaWFsIEZpZWxkOiB7YXNzaWduIHZhcj0ndG1wJyB2YWx1ZT0nVGhlIEZpZWxkIE5hbWUnfXskZW50cnktPmZpZWxkcy4kdG1wLT52YWx1ZX08YnIvPgogICAgKn0KICAKICAgIHsqIHNhbXBsZSBvZiBhZGRyZXNzaW5nIHRoZSB2YWx1ZSBvZiBhIGRyb3Bkb3duIGZpZWxkOiAqfQogICAge2lmIGlzc2V0KCRlbnRyeS0+ZmllbGRzLm15ZHJvcGRvd24pICYmICRlbnRyeS0+ZmllbGRzLm15ZHJvcGRvd24tPmRyb3Bkb3duX3ZhbHVlICE9ICcnfQogICAgICBTYW1wbGUgRHJvcGRvd246IHskZW50cnktPmZpZWxkcy5teWRyb3Bkb3duLT5kcm9wZG93bl92YWx1ZX08YnIvPgogICAgey9pZn0KCiAgICB7KiBzYW1wbGUgb2YgbG9vcGluZyB0aHJvdWdoIHRoZSBmaWVsZHMgYXNzb2NpYXRpdmUgYXJyYXkKICAgIHtmb3JlYWNoIGZyb209JGVudHJ5LT5maWVsZHMga2V5PSdmaWVsZG5hbWUnIGl0ZW09J2ZpZWxkJ30KICAgICAge2lmIGlzc2V0KCRmaWVsZC0+dmFsdWUpICYmICRmaWVsZC0+dmFsdWUgIT0gJyd9CiAgICAgICAgeyRmaWVsZC0+bmFtZX0gPGVtPih7JGZpZWxkLT50eXBlfSk8L2VtPjogeyRmaWVsZC0+dmFsdWV9PGJyLz4KICAgICAgey9pZn0KICAgIHsvZm9yZWFjaH0KICAgICp9CiAgey9pZn0Key9zdHJpcH0KCiAgPC9hcnRpY2xlPgogIHtmb3JlYWNoZWxzZX0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWVycm9yIj57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2Vycm9yX25vY29tcGFuaWVzbWF0Y2gnKX08L2Rpdj4KICB7L2ZvcmVhY2h9CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJwcmVwZW5kX3dlYnNpdGVfaHR0cCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9wcmVwZW5kX3dlYnNpdGVfaHR0cCcpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJwcmVwZW5kX3dlYnNpdGVfaHR0cCIgbmFtZT0ieyRhY3Rpb25pZH1wcmVwZW5kX3dlYnNpdGVfaHR0cCI+CiAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRwcmVwZW5kX3dlYnNpdGVfaHR0cH0KICAgICAgPC9zZWxlY3Q+CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fcHJlcGVuZF93ZWJzaXRlX2h0dHAnKX0KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzIj57JG1vZC0+TGFuZygncHJvbXB0X2FsbG93ZHVwbGljYXRlY29tcGFueW5hbWVzJyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9ImFsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMiIG5hbWU9InskYWN0aW9uaWR9YWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcyI+CiAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJjb2xsZWN0c3RhdHMiPnskbW9kLT5MYW5nKCdwcm9tcHRfY29sbGVjdHN0YXRzJyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9ImNvbGxlY3RzdGF0cyIgbmFtZT0ieyRhY3Rpb25pZH1jb2xsZWN0c3RhdHMiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kY29sbGVjdHN0YXRzfQogICAgICA8L3NlbGVjdD4KICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19jb2xsZWN0c3RhdHMnKX0KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRtaW5fZWRpdF9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJhZG1pbnd5c2l3eWciPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRtaW53eXNpd3lnJyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9ImFkbWlud3lzaXd5ZyIgbmFtZT0ieyRhY3Rpb25pZH1hZG1pbnd5c2l3eWciPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kYWRtaW53eXNpd3lnfQogICAgICA8L3NlbGVjdD4KICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19hZG1pbnd5c2l3eWcnKX0KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCntpZiBpc3NldCgkZnJvbnRlbmRjcmVhdGUpfQo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9lZGl0X3NldHRpbmdzJyl9OjwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kY3JlYXRlIj57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9jcmVhdGUnKX06PC9sYWJlbD48L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBpZD0iZnJvbnRlbmRjcmVhdGUiIG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRjcmVhdGUiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZnJvbnRlbmRjcmVhdGV9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kZGVsZXRlIj57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9kZWxldGUnKX06PC9sYWJlbD48L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBpZD0iZnJvbnRlbmRkZWxldGUiIG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRkZWxldGUiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZnJvbnRlbmRkZWxldGV9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1X25ld19zdGF0dXMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9ImZyb250ZW5kbmV3c3RhdHVzIiBuYW1lPSJ7JGFjdGlvbmlkfWZyb250ZW5kbmV3c3RhdHVzIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHN0YXR1c2VzIHNlbGVjdGVkPSRmcm9udGVuZG5ld3N0YXR1c30KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mZXVfY2hhbmdlX3N0YXR1cycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBpZD0iZnJvbnRlbmRjaGFuZ2VzdGF0dXMiIG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRjaGFuZ2VzdGF0dXMiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZnJvbnRlbmRjaGFuZ2VzdGF0dXN9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kbnVtcmVjb3JkcyI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mZXVfbnVtcmVjb3JkcycpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZG51bXJlY29yZHMiIG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRudW1yZWNvcmRzIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG51bXMgc2VsZWN0ZWQ9JGZyb250ZW5kbnVtcmVjb3Jkc30KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iZnJvbnRlbmRpbXBvcnQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1X2ltcG9ydCcpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZGltcG9ydCIgbmFtZT0ieyRhY3Rpb25pZH1mcm9udGVuZGltcG9ydCI+CiAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRmcm9udGVuZGltcG9ydH0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iZnJvbnRlbmRfZW1haWxvbmFkZCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mZXVfZW1haWxvbmFkZCcpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZF9lbWFpbG9uYWRkIiBuYW1lPSJ7JGFjdGlvbmlkfWZyb250ZW5kX2VtYWlsb25hZGQiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZnJvbnRlbmRfZW1haWxvbmFkZH0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iZnJvbnRlbmRfZW1haWxvbmVkaXQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1X2VtYWlsb25lZGl0Jyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9ImZyb250ZW5kX2VtYWlsb25lZGl0Ij4gbmFtZT0ieyRhY3Rpb25pZH1mcm9udGVuZF9lbWFpbG9uZWRpdCI+CiAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRmcm9udGVuZF9lbWFpbG9uZWRpdH0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iZnJvbnRlbmRfZW1haWxncm91cCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mZXVfZW1haWxncm91cCcpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZF9lbWFpbGdyb3VwIiBuYW1lPSJ7JGFjdGlvbmlkfWZyb250ZW5kX2VtYWlsZ3JvdXAiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZ3JvdXBsaXN0IHNlbGVjdGVkPSRmcm9udGVuZF9lbWFpbGdyb3VwfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1X2Rpc3BsYXlfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZGV0YWlscGFnZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXRhaWxwYWdlfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJzb3J0b3JkZXIiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXNvcnRvcmRlcicpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJzb3J0b3JkZXIiIG5hbWU9InskYWN0aW9uaWR9c29ydG9yZGVyIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHNvcnRvcmRlcnMgc2VsZWN0ZWQ9JHNvcnRvcmRlcn0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0ic29ydGJ5Ij57JG1vZC0+TGFuZygncHJvbXB0X3N1bW1hcnlzb3J0aW5nJyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9InNvcnRieSIgbmFtZT0ieyRhY3Rpb25pZH1zb3J0YnkiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kc29ydGluZ3Mgc2VsZWN0ZWQ9JHNvcnRieX0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iZnJvbnRlbmRfc2hvd2V4cGlyZWQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZnJvbnRlbmRfc2hvd2V4cGlyZWQnKX06PC9sYWJlbD48L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBpZD0iZnJvbnRlbmRfc2hvd2V4cGlyZWQiIG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRfc2hvd2V4cGlyZWQiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZnJvbnRlbmRfc2hvd2V4cGlyZWR9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0Pgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+Cgp7JGVuZGZvcm19]]></data>
	</file>
</module>
