<?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>CustomGS</name>
	<version>3.3</version>
    <mincmsversion>2.2</mincmsversion>
	<help><![CDATA[PGRpdiBpZD0icGFnZV90YWJzIj4NCiAgICA8ZGl2IGlkPSJnZW5lcmFsIj5HZW5lcmFsPC9kaXY+DQoJPGRpdiBpZD0ic3RhcnQiPkdldHRpbmcgc3RhcnRlZDwvZGl2Pg0KCTxkaXYgaWQ9InBlcm1pc3Npb25zIj5QZXJtaXNzaW9uczwvZGl2Pg0KCTxkaXYgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwvZGl2Pg0KCTxkaXYgaWQ9InRyb3VibGVzaG9vdGluZyI+VHJvdWJsZXNob290aW5nPC9kaXY+DQogICAgPGRpdiBpZD0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2Rpdj4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pg0KDQo8ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPg0KCTxkaXYgaWQ9ImdlbmVyYWxfYyI+DQoJCTxwPlRoaXMgbW9kdWxlIGV4dGVuZHMgdGhlIEdsb2JhbCBTZXR0aW5ncyB3aXRoIHNvbWUgY3VzdG9taXplZCBwYXJhbWV0ZXJzLjxiciAvPg0KCQlZb3UgY2FuIGRlZmluZSBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGZpZWxkcyB3aGljaCBjYW4gYmUgdXNlZCBhcyBzbWFydHktdmFyaWFibGUgaW4gdGVtcGxhdGVzIG9yIHBhZ2VzLjwvcD4NCgkJPGJyIC8+DQoJCTxwPkF2YWlsYWJsZSBhcmU6PC9wPg0KCQk8dWw+DQoJCTxsaT5CdXR0b248L2xpPg0KCQk8bGk+Q2hlY2tib3g8L2xpPg0KCQk8bGk+Q29sb3JwaWNrZXI8L2xpPg0KCQk8bGk+RGF0ZXBpY2tlcjwvbGk+DQoJCTxsaT5EYXRlIGFuZCB0aW1lcGlja2VyPC9saT4NCgkJPGxpPkZpbGVQaWNrZXIgPGk+KENvcmUgRmlsZVBpY2tlciBtb2R1bGUgbmVlZHMgdG8gYmUgaW5zdGFsbGVkKTwvaT48L2xpPg0KCQk8bGk+R0JGaWxlUGlja2VyIDxpPihtb2R1bGUgR0JGaWxlUGlja2VyIG5lZWRzIHRvIGJlIGluc3RhbGxlZCk8L2k+PC9saT4NCgkJPGxpPkpNRmlsZVBpY2tlciA8aT4obW9kdWxlIEpNRmlsZVBpY2tlciBuZWVkcyB0byBiZSBpbnN0YWxsZWQpPC9pPjwvbGk+DQoJCTxsaT5QYWdlIHNlbGVjdG9yPC9saT4NCgkJPGxpPlB1bGxkb3duPC9saT4NCgkJPGxpPlJhZGlvYnV0dG9uZ3JvdXA8L2xpPg0KCQk8bGk+VGV4dGFyZWE8L2xpPg0KCQk8bGk+VGV4dGFyZWEgd2l0aCBXWVNJV1lHPC9saT4NCgkJPGxpPlRleHRmaWVsZDwvbGk+DQoJCTxsaT5UaW1lcGlja2VyPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJCTxwPkFkZGl0aW9uYWwgdGhlcmUgaXMgYSBzcGVjaWFsIGZpZWxkZGVmaW5pdGlvbiAiRmllbGRncm91cCBzdGFydCIuIFdpdGggdGhpcyBvcHRpb24geW91IGNhbiBjcmVhdGUgYSBjb2xsYXBzaWJsZSBncm91cCBvZiBmaWVsZHMuPGJyIC8+DQoJCUFmdGVyIGNyZWF0aW5nIHRoZSAiRmllbGRncm91cCBzdGFydCIsIGFsc28gYSAiRmllbGRncm91cCBlbmQiIHdpdGggdGhlIHNhbWUgbmFtZSB3aWxsIGJlIGFkZGVkIGF1dG9tYXRpY2FsbHkuIERyYWcgJmFtcDsgZHJvcCBmaWVsZHMgYmV0d2VlbiBzdGFydCBhbmQgZW5kIHRvIHB1dCB0aGVtIGluIHRoZSBncm91cC48L3A+DQoJCTxiciAvPg0KCTwvZGl2Pg0KDQoJPGRpdiBpZD0ic3RhcnRfYyI+DQoJCTxwPkdvIHRvIHRoZSBDdXN0b20gR2xvYmFsIFNldHRpbmdzIG1vZHVsZSBhZG1pbiAoYnkgZGVmYXVsdCB1bmRlciBtZW51ICdFeHRlbnNpb25zJykgYW5kIGRlZmluZSBmaWVsZHMgaW4gdGhlIHRhYiAnRmllbGQgRGVmaW5pdGlvbnMnLjwvcD4NCgkJPHA+SW4gdGhlIHRlbXBsYXRlcyBvciBwYWdlcyBvZiB5b3VyIHdlYnNpdGUgeW91IHdpbGwgbm93IGF1dG9tYXRpY2FsbHkgaGF2ZSB0aG9zZSBzbWFydHkgdmFyaWFibGVzIGF2YWlsYWJsZS48L3A+DQoJCTxiciAvPg0KCQk8cD5UaGUgZXhhY3Qgd2F5IHRvIGNhbGwgZWFjaCB2YXJpYWJsZSBpcyBzaG93biBpbiB0aGUgJ0ZpZWxkIERlZmluaXRpb25zJyB0YWIuPGJyIC8+WW91IGNhbiBhbHNvIGNoZWNrIHdoaWNoIHZhcmlhYmxlcyBhbmQgdmFsdWVzIGFyZSBhdmFpbGFibGUgYnkgcGxhY2luZyA8Yj57Q3VzdG9tR1Mgc2hvd3ZhcnM9MX08L2I+IGluIHRoZSBjb250ZW50IGZpZWxkIG9mIGEgcGFnZS48L3A+DQoJCTxiciAvPg0KCQk8cD48Yj5Ob3RlOjwvYj4gaW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhpcyBtb2R1bGUsIHlvdSBuZWVkZWQgdG8gcHV0IHRoZSB0YWcge0N1c3RvbUdTfSBpbiB5b3VyIHRlbXBsYXRlKHMpLiBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4gV2hlbiB5b3UgdXBncmFkZSBmcm9tIGEgdmVyc2lvbiBwcmlvciB0byAyLjIsIHlvdSBzaG91bGQgZGVsZXRlIHRoZSB7Q3VzdG9tR1N9IHRhZyBmcm9tIHlvdXIgdGVtcGxhdGVzLCBhbHRob3VnaCBpdCB3b24ndCBkbyBhbnkgaGFybSBpZiB5b3UgbGVhdmUgaXQgdGhlcmUuPC9wPg0KCQk8YnIgLz4NCgkJPGg0Pk9yZ2FuaXppbmcgZmllbGRzPC9oND4NCgkJPHA+V2hlbiB5b3UgaGF2ZSBtYW55IGZpZWxkZGVmaW5pdGlvbnMsIHlvdSBjYW4gb3JnYW5pemUgdGhlbSBieSBjcmVhdGluZyBjdXN0b20gdGFicy48L3A+DQoJCTxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdG8gb25lIG9yIG1vcmUgdGFicywgd2hpbGUgZWRpdGluZyB0aGUgZmllbGRkZWZpbml0aW9uLiBBIG1vcmUgZWFzeSB3YXkgaXMgdG8gc2VsZWN0IGEgdGFiIGluIHRoZSBkcm9wZG93biBhdCB0aGUgdG9wIG9mIHRoZSBmaWVsZGRlZmluaXRpb25zbGlzdCBhbmQgdGhlbiB0b2dnbGUgdGhlIFYtbWFya3MuIENoYW5nZXMgYXJlIGltbWVkaWF0ZWx5IHNhdmVkLjxiciAvPlRoZSB0YWItZHJvcGRvd24gd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWVsZGRlZmluaXRpb25zbGlzdCB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIGN1c3RvbSB0YWJzIHlvdSBoYXZlIHBlcm1pc3Npb25zIG9uLjwvcD4NCgkJPGJyIC8+DQoJCTxwPlRoZSBzb3J0b3JkZXIgb2YgZmllbGRkZWZpbml0aW9ucyBhbmQgY3VzdG9tIHRhYnMgY2FuIGJlIGNoYW5nZWQgYnkgZHJhZ2dpbmcgJmFtcDsgZHJvcHBpbmcgdGhlIHJvd3MgaW4gdGhlaXIgbGlzdC4gVGhlIG5ldyBzb3J0b3JkZXIgd2lsbCBiZSBzYXZlZCBpbW1lZGlhdGVseSBvbiBkcm9wLjwvcD4NCgkJPGJyIC8+DQoJPC9kaXY+DQoNCgk8ZGl2IGlkPSJwZXJtaXNzaW9uc19jIj4NCgkJPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhyZWUgZGlmZmVyZW50IGxldmVscyBvZiBwZXJtaXNzaW9uczogb24gYSBtb2R1bGUgbGV2ZWwsIG9uIGEgdGFiIGxldmVsIGFuZCBvbiBhIGZpZWxkIGxldmVsLjwvcD4NCgkJPGg0Pk1vZHVsZSBsZXZlbDwvaDQ+DQoJCTxwPkZvciBzZXR0aW5nIG1vZHVsZSBwZXJtaXNzaW9ucywgZ28gdG8gbWVudSA8aT5Vc2VycyAmIEdyb3VwcyDCuyBHcm91cCBQZXJtaXNzaW9uczwvaT46PC9wPg0KCQk8dWw+DQoJCTxsaT48Yj5DdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlPC9iPjxiciAvPg0KCQlBIHBlcm1pc3Npb24gZm9yIGVkaXRvcnMuIEl0IHdpbGwgb25seSBzaG93IHRoZSAoY3VzdG9tKSB0YWJzIGZvciBjaGFuZ2luZyBmaWVsZHZhbHVlcyBpbiB0aGUgbW9kdWxlIGFkbWluIHBhZ2UuPC9saT4NCgkJPGxpPjxiPkN1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2U8L2I+PGJyIC8+DQoJCUEgcGVybWlzc2lvbiBmb3IgYWRtaW5pc3RyYXRvcnMuIEl0IHdpbGwgc2hvdyBleHRyYSB0YWJzIGZvciBjcmVhdGluZy9lZGl0aW5nIGZpZWxkZGVmaW5pdGlvbnMsIHRhYnMgYW5kIG9wdGlvbnMuPC9saT4NCgkJPC91bD4NCgkJPGg0PlRhYiBsZXZlbDwvaDQ+DQoJCTxwPldoZW4gY3JlYXRpbmcgb3IgZWRpdGluZyBhIGN1c3RvbSB0YWIsIHNlbGVjdCBvbmUgb3IgbW9yZSBncm91cHMgaW4gdGhlIDxiPkdyb3VwIFBlcm1pc3Npb25zPC9iPiBkcm9wZG93biBsaXN0ICh3aXRoIGN0cmwpLiBPbmx5IHVzZXJzIHdobyBiZWxvbmcgdG8gdGhlIHNlbGVjdGVkIGdyb3VwcyB3aWxsIGJlIGFibGUgdG8gc2VlIHRoZSB0YWIgaW4gdGhlIG1vZHVsZSBhZG1pbi4gSWYgbm8gZ3JvdXAgaXMgc2VsZWN0ZWQsIHRoZSB0YWIgd2lsbCBiZSB2aXNpYmxlIGZvciBhbGwgZ3JvdXBzLiA8YnIgLz5UYWJzIHdpbGwgbmV2ZXIgYmUgaGlkZGVuIGZvciBhZG1pbiB1c2Vycy48L3A+DQoJCTxoND5GaWVsZCBsZXZlbDwvaDQ+DQoJCTxwPldoZW4gY3JlYXRpbmcgb3IgZWRpdGluZyBhIGZpZWxkZGVmaW5pdGlvbiwgc2VsZWN0IG9uZSBvciBtb3JlIGdyb3VwcyBpbiB0aGUgPGI+R3JvdXAgUGVybWlzc2lvbnM8L2I+IGRyb3Bkb3duIGxpc3QgKHdpdGggY3RybCkuIE9ubHkgdXNlcnMgd2hvIGJlbG9uZyB0byB0aGUgc2VsZWN0ZWQgZ3JvdXBzIHdpbGwgYmUgYWJsZSB0byBzZWUgYW5kIGNoYW5nZSB0aGUgZmllbGR2YWx1ZSBhc3NpZ25lZCB0YWIocykuIElmIG5vIGdyb3VwIGlzIHNlbGVjdGVkLCB0aGUgZmllbGQgd2lsbCBiZSB2aXNpYmxlIGZvciBhbGwgZ3JvdXBzLjwvcD4NCgkJPHA+Tm90ZSB0aGF0IGEgdXNlciB3aWxsIG5vdCBiZSBhYmxlIHRvIHNlZSBhIGZpZWxkIHdoZW4gdGhhdCBmaWVsZCB3YXMgYXNzaWduZWQgb25seSB0byB0YWIocykgZm9yIHdoaWNoIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMuPC9wPg0KCQk8cD5GaWVsZHMgd2lsbCBuZXZlciBiZSBoaWRkZW4gZm9yIGFkbWluIHVzZXJzLjwvcD4NCgkJPGJyIC8+DQoJPC9kaXY+DQoNCgk8ZGl2IGlkPSJleGFtcGxlc19jIj4NCgkJPGgzPkNIRUNLQk9YPC9oMz4NCgkJPGg0PkNoYW5nZSBmcm9udGVuZCB0aGVtZTwvaDQ+DQoJCTxwPkRlZmluZSBhIGNoZWNrYm94ICdDaHJpc3RtYXMgbm93JyB3aGljaCB3aWxsIGFjdGl2YXRlIGEgc3BlY2lhbCB0aGVtZSBvbiB0aGUgZnJvbnRlbmQgd2hlbiBjaGVja2VkPC9wPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPg0KCQl7aWYgJEN1c3RvbUdTLkNocmlzdG1hc19ub3cgPT0gJzEnfTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7KiBTaG93IENocmlzdG1hcyBmcm9udGVuZCB0aGVtZSAqfTxiciAvPg0KCQl7ZWxzZX08YnIgLz4NCgkJJm5ic3A7Jm5ic3A7Jm5ic3A7eyogU2hvdyBkZWZhdWx0IGZyb250ZW5kIHRoZW1lICp9PGJyIC8+DQoJCXsvaWZ9DQoJCTwvY29kZT4NCgkJPC9wPg0KCQk8YnIgLz4NCgkJDQoJCTxoND5NYWdpYyB3aXRoIGEgY2hlY2tib3g8L2g0Pg0KCQk8cD5EZWZpbmUgYSBjaGVja2JveCAnTXlDaGVja2JveCcgd2hpY2ggd2lsbCBkbyBzb21lIG1hZ2ljIHN0dWZmIHdoZW4gdW5jaGVja2VkPC9wPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPg0KCQl7aWYgJEN1c3RvbUdTLk15Q2hlY2tib3ggIT0gJzEnfTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7KiBEbyBzb21lIG1hZ2ljIHN0dWZmICp9PGJyIC8+DQoJCXsvaWZ9DQoJCTwvY29kZT4NCgkJPC9wPg0KCQk8YnIgLz4NCgkJDQoJCTxoMz5EQVRFIGFuZCBUSU1FUElDS0VSPC9oMz4NCgkJPGg0PkRpc3BsYXkgcGFnZSBjb250ZW50IG9ubHkgaW4gYSBzcGVjaWZpYyB0aW1lZnJhbWU8L2g0Pg0KCQk8cD5EZWZpbmUgdHdvIHRpbWVwaWNrZXIgZmllbGRzICdzdGFydHRpbWUnIGFuZCAnZW5kdGltZScuIFJlcGxhY2UgdGhlIHtjb250ZW50fSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlIHdpdGggdGhpcyBjb2RlIGFuZCB0aGUgbm9ybWFsIHBhZ2UgY29udGVudCBpcyBvbmx5IHZpc2libGUgd2hlbiB0aGUgY3VycmVudCB0aW1lIGlzIGJldHdlZW4gdGhlIHN0YXJ0dGltZSBhbmQgZW5kdGltZS48L3A+DQoJCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4NCgkJPGNvZGU+DQoJCXtpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJUg6JU0nID49ICRDdXN0b21HUy5zdGFydHRpbWUgJiYgJHNtYXJ0eS5ub3d8ZGF0ZV9mb3JtYXQ6JyVIOiVNJyA8PSAkQ3VzdG9tR1MuZW5kdGltZX08YnIgLz4NCgkJJm5ic3A7Jm5ic3A7Jm5ic3A7e2NvbnRlbnR9PGJyIC8+DQoJCXtlbHNlfTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7Y29udGVudCBibG9jaz0iU2l0ZUNsb3NlZENvbnRlbnQifTxiciAvPg0KCQl7L2lmfTxiciAvPg0KCQk8L2NvZGU+DQoJCTwvcD4NCgkJPGJyIC8+DQoJCQ0KCQk8aDM+UFVMTERPV048L2gzPg0KCQk8aDQ+UHVsbGRvd24gZm9yIEZlYXR1cmVkIE5ld3NhcnRpY2xlPC9oND4NCgkJPHA+RGVmaW5lIGEgcHVsbGRvd24gZmllbGQgdGhhdCBjb250YWlucyB0aGUgdGl0bGVzIG9mIGFydGljbGVzIGZyb20gdGhlIE5ld3MgbW9kdWxlLCBzbyB0aGUgdXNlciBjYW4gY2hvb3NlIGEgZmVhdHVyZWQgYXJ0aWNsZSB3aGljaCBjYW4gYmUgZGlzcGxheWVkIG9uIGEgc3BlY2lhbCBzZWN0aW9uIG9uIHRoZSBzaXRlLjwvcD4NCg0KCQk8cD5GaXJzdCBjcmVhdGUgYSBuZXcgc3VtbWFyeXRlbXBsYXRlIGluIHRoZSBOZXdzIG1vZHVsZSwgbmFtZWQgIkN1c3RvbUdTX3B1bGxkb3duIiB3aXRoIHRoZSBmb2xsb3dpbmcgY29udGVudDo8L3A+DQoNCgkJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KCQk8Y29kZT57Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7JGVudHJ5LSZndDtpZH18eyRlbnRyeS0mZ3Q7dGl0bGV9PGJyIC8+DQoJCXsvZm9yZWFjaH08L2NvZGU+DQoJCTwvcD4NCgkJPGJyIC8+DQoJCTxwPlRoZW4gZGVmaW5lIGEgbmV3IGZpZWxkIGluIHRoZSBDdXN0b20gR2xvYmFsIFNldHRpbmdzIG1vZHVsZTwvcD4NCg0KCQk8cD48Yj5OYW1lOjwvYj4gRmVhdHVyZWQgTmV3czxiciAvPg0KCQk8Yj5UeXBlOjwvYj4gUHVsbGRvd248YnIgLz4NCgkJPGI+UHJvcGVydGllczo8L2I+IHtjbXNfbW9kdWxlIG1vZHVsZT0nTmV3cycgc3VtbWFyeXRlbXBsYXRlPSdDdXN0b21HU19wdWxsZG93bid9PGJyIC8+DQoJCU5vdGUgdGhhdCBzaG9ydCBtb2R1bGUgdGFncyB3b24ndCB3b3JrIGluIHRoZSBiYWNrLWVuZCwgc28geW91IGhhdmUgdG8gdXNlIHRoZSBjbXNfbW9kdWxlIHRhZy48L3A+DQoJCTxiciAvPg0KCQk8cD5GaW5hbGx5IHB1dCB0aGlzIHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUgdG8gZGlzcGxheSB0aGUgZmVhdHVyZWQgbmV3c2FydGljbGU6PC9wPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPntuZXdzIGFjdGlvbj0nZGV0YWlsJyBhcnRpY2xlaWQ9JEN1c3RvbUdTLkZlYXR1cmVkX05ld3N9PC9jb2RlPg0KCQk8L3A+DQoJCTxiciAvPg0KCQkNCgkJPGgzPlJBRElPQlVUVE9OR1JPVVA8L2gzPg0KCQk8aDQ+Q2hhbmdlIGZyb250ZW5kIGNvbG9yPC9oND4NCg0KCQk8cD5DcmVhdGUgYSBSYWRpb2J1dHRvbiBncm91cCBuYW1lZCAidGV4dGNvbG9yIjwvcD4NCgkJPHA+VGhlIHByb3BlcnRpZXMgdmFsdWUgYXJlOjxwPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCSNmZjAwMDB8cmVkPGJyIC8+DQoJCSMwMGZ8Ymx1ZTxiciAvPg0KCQkjMTAxMDEwfGFsbW9zdCBibGFjazwvcD4NCgkJPGJyIC8+DQoJCTxwPkFsc28gY2xpY2sgdGhlIGNoZWNrYm94ICdDbGVhciBzdHlsZXNoZWV0Y2FjaGUnLiBUaGlzIHdpbGwgYXV0b21hdGljYWxseSByZW5ldyB0aGUgc3R5bGVzaGVldHMuPC9wPg0KCQk8YnIgLz4NCgkJPHA+QWRkIHRvIHRoZSB0b3Agb2YgeW91ciBzdHlsZXNoZWV0OjwvcD4NCgkJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KCQk8Y29kZT5bW0N1c3RvbUdTXV08L2NvZGU+DQoJCTwvcD4NCgkJPGJyIC8+DQoJCTxwPlRvIGNoYW5nZSBmb3IgZXhhbXBsZSB0aGUgY29sb3Igb2YgdGhlIHAtdGV4dCBhZGQ6PC9wPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPmNvbG9yOiBbWyRDdXN0b21HUy50ZXh0Y29sb3JdXTs8L2NvZGU+DQoJCTwvcD4NCgkJPGJyIC8+DQoJCTxwPk9yIGRpcmVjdGx5IGluY2x1ZGVkIGluIGEgcGFnZSBvciB0ZW1wbGF0ZTo8cD4NCgkJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KCQk8Y29kZT4mbHQ7cCBzdHlsZT0iY29sb3I6IHskQ3VzdG9tR1MudGV4dGNvbG9yfTsiJmd0O0xvcmVtIElwc3VtJmx0Oy9wJmd0OzwvY29kZT4NCgkJPC9wPg0KCQk8YnIgLz4NCg0KCQk8aDM+VEVYVEZJRUxEPC9oMz4NCgkJPGg0PlNob3cgY3VycmVudCB0cmFpbmVyPC9oND4NCgkJPHA+RGVmaW5lIGEgdGV4dGZpZWxkIG9yIHB1bGxkb3duIGZpZWxkICdUcmFpbmVyJyB3aGljaCB3aWxsIGNvbnRhaW4gdGhlIGN1cnJlbnQgdHJhaW5lcnMgbmFtZS48L3A+DQoJCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4NCgkJPGNvZGU+DQoJCSZsdDtwJmd0O1RoaXMgd2Vla3MgdHJhaW5lcnMgbmFtZSBpczogeyRDdXN0b21HUy5UcmFpbmVyfSZsdDsvcCZndDsNCgkJPC9jb2RlPg0KCQk8L3A+DQoJCTxiciAvPg0KCTwvZGl2Pg0KDQoJPGRpdiBpZD0idHJvdWJsZXNob290aW5nX2MiPg0KCQk8aDQ+Q2hlY2sgdGVtcGxhdGUgdmFyaWFibGVzPC9oND4NCgkJPHA+WW91IGNhbiBjaGVjayB3aGljaCB2YXJpYWJsZXMgYW5kIHZhbHVlcyBhcmUgYXZhaWxhYmxlIGJ5IHBsYWNpbmcgPGI+e0N1c3RvbUdTIHNob3d2YXJzPTF9PC9iPiBpbiB0aGUgY29udGVudCBmaWVsZCBvZiBhIHBhZ2UuPC9wPg0KCQk8YnIgLz4NCgkJDQoJCTxoND5TbWFydHkgZXJyb3I8L2g0Pg0KCQk8cD48Yj5FcnJvcjo8L2I+IFNtYXJ0eSBlcnJvcjogW2luIHRlbXBvcmFyeSB0ZW1wbGF0ZSBsaW5lIDRdOiBbcGx1Z2luXSB1bmtub3duIHRhZy4uLjwvcD4NCgkJPHA+PGI+U29sdXRpb246PC9iPiBZb3UgcHJvYmFibHkgaGF2ZSBlbnRlcmVkIGN1cmx5IGJyYWNrZXQgJiMxMjM7ICYjMTI1OyBzaWducyBpbiB0aGUgcHJvcGVydGllcyBmaWVsZCBvZiBhIHB1bGxkb3duIG9yIHJhZGlvYnV0dG9uIGZpZWxkZGVmaW5pdGlvbi4gVGhlc2UgYXJlIGludGVycHJldGVkIGJ5IFNtYXJ0eS48L3A+DQoJCTxwPkRlbGV0ZSB0aGVtLCB1c2UgPGNvZGU+JiMxMjM7Y21zX21vZHVsZSYjMTI1OzwvY29kZT4gdGFnIGluIHN0ZWFkIG9mIHRoZSBzaG9ydCBtb2R1bGUgY2FsbCwgb3IgdXNlIDxjb2RlPiYjMTIzO2xpdGVyYWwmIzEyNTs8L2NvZGU+IHRhZ3MuPC9wPg0KCQk8YnIgLz4NCgkJDQoJCTxoND5DYW4ndCBjaG9vc2UgR0JGaWxlUGlja2VyIGFueW1vcmUgYWZ0ZXIgdXBncmFkaW5nIHRvIENNU01TIDIueDwvaDQ+DQoJCTxwPjxiPkVycm9yOjwvYj4gR0JGaWxlUGlja2VyIChOb3QgaW5zdGFsbGVkKTwvcD4NCgkJPHA+PGI+U29sdXRpb246PC9iPiBJbnN0YWxsIG1vZHVsZSBKTUZpbGVQaWNrZXIgYW5kIHRoZW4gY2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBmaWVsZGRlZmluaXRpb24gYWNjb3JkaW5nbHkuIFRoZSBlYXJsaWVyIHNlbGVjdGVkIGltYWdlIHdpbGwgYmUgcHJlc2VydmVkLjwvcD4NCgkJPGJyIC8+DQoJCQ0KCQk8aDQ+dG1wL2NhY2hlL2RlYnVnLmxvZyBnZXRzIGZsb29kZWQgd2l0aCBDdXN0b21HUyBlcnJvcnM8L2g0Pg0KCQk8cD48Yj5FcnJvcjo8L2I+IFJlZHVuZGFudCB7Q3VzdG9tR1N9IHRhZyBmb3VuZC48L3A+DQoJCTxwPjxiPlNvbHV0aW9uOjwvYj4gSW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhpcyBtb2R1bGUsIHlvdSBuZWVkZWQgdG8gcHV0IHRoZSB0YWcge0N1c3RvbUdTfSBpbiB5b3VyIHRlbXBsYXRlKHMpLiBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4gV2hlbiB5b3UgaGF2ZSB1cGdyYWRlZCBmcm9tIGEgdmVyc2lvbiBwcmlvciB0byAyLjIsIHlvdSBzaG91bGQgZGVsZXRlIHRoZSB7Q3VzdG9tR1N9IHRhZyBmcm9tIHlvdXIgdGVtcGxhdGVzLjwvcD4NCgkJPGJyIC8+DQoJCQ0KCQk8aDQ+T3RoZXIgRXJyb3JzPC9oND4NCgkJPHA+PGI+RXJyb3I6PC9iPiBNeSBwcm9ibGVtIHdhcyBub3QgZGVzY3JpYmVkIGhlcmUuPC9wPg0KCQk8cD48Yj5Tb2x1dGlvbjo8L2I+IFNldCBEZWJ1ZyB0byAndHJ1ZScgaW4gY29uZmlnLnBocCBhbmQgc2VlIGlmIGFueSBlcnJvciBtZXNzYWdlcyBhcHBlYXIuIExvb2sgYWxzbyBmb3IgZXJyb3IgbWVzc2FnZXMgaW4gdGhlIGh0bWwgc291cmNlY29kZS4gTWF5YmUgdGhlIGVycm9yIG1lc3NhZ2UgdGVsbHMgeW91IGVub3VnaCB0byBzb2x2ZSB0aGUgaXNzdWUgeW91cnNlbGYuIFNvbWVvbmUgZWxzZSBtYXkgaGF2ZSBlbmNvdW50ZXJlZCB0aGUgc2FtZSBwcm9ibGVtIGJlZm9yZSB5b3UsIHNvIHlvdSBjb3VsZCBhbHNvIHNlYXJjaCB0aGUgQ01TTVMgZm9ydW0gZm9yIHBvc3NpYmxlIHNvbHV0aW9ucy4gSWYgeW91IGhhdmVuJ3QgZm91bmQgYW55IHJlbGF0ZWQgdG9waWNzLCBwbGVhc2UgZmVlbCBmcmVlIHRvIG9wZW4gYSBuZXcgZm9ydW10b3BpYy48L3A+DQoJCTxiciAvPg0KCTwvZGl2Pg0KDQoJPGRpdiBpZD0iY29weXJpZ2h0X2MiPg0KCQk8cD5Db3B5cmlnaHQgwqkgMjAxMiwgUm9sZiBUamFzc2VucyAmbHQ7aW5mbyBhdCBjbXNjYW5iZXNpbXBsZSBkb3Qgb3JnJmd0OywgSm9zICZsdDs8YSBocmVmPSJtYWlsdG86am9zdmRAbGl2ZS5ubCI+am9zdmRAbGl2ZS5ubDwvYT4mZ3Q7LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQoJCTxiciAvPg0KCQk8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIiB0YXJnZXQ9Il9ibGFuayI+R05VIFB1YmxpYyBMaWNlbnNlIHYzPC9hPi48YnIgLz4NCgkJPGI+SG93ZXZlcjwvYj4sIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiBZb3UgbWF5IG9ubHkgdXNlIHRoaXMgc29mdHdhcmUgd2hlbiB0aGVyZSBpcyBhIGNsZWFyIGFuZCBvYnZpb3VzIGluZGljYXRpb24gaW4gdGhlIGFkbWluIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBTaW1wbGUhPC9wPg0KCQk8YnIgLz4NCgk8L2Rpdj4NCjwvZGl2PjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvd3ZhcnM9IjEiIC0gU2V0IHRoaXMgcGFyYW1ldGVyIHRvIHNob3cgYWxsIGF2YWlsYWJsZSB2YXJpYWJsZXMgYW5kIHRoZWlyIHZhbHVlcy4gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBSb2xmIFRqYXNzZW5zLCBKb3MgJmx0O2luZm8gYXQgY21zY2FuYmVzaW1wbGUgZG90IG9yZywgam9zdmQgYXQgbGl2ZSBkb3QgbmwmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMy4zPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAzLjM8L3N0cm9uZz4gLSA2IE9jdG9iZXIgMjAxOQ0KCTx1bD4NCgk8bGk+Rml4ZXMgZm9yIENNU01TIDIuMzwvbGk+DQoJPGxpPlVwZGF0ZWQgVGFibGVEbkQgcGx1Z2luIDAuOS4xPC9saT4NCgk8bGk+Q29kZSBjbGVhbiB1cDwvbGk+DQoJPGxpPkJ1ZyAjMTE3NjA6IGZpeGVkIC0gRGVsZXRpbmcgRmllbGRncm91cCBvbmx5IGRlbGV0ZXMgRmllbGRncm91cCBTdGFydDwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDMuMjwvc3Ryb25nPiAtIDkgT2N0b2JlciAyMDE3DQoJPHVsPg0KCTxsaT5FeHBvcnQvaW1wb3J0IHNldHRpbmdzIHZpYSBYTUwgZmlsZSAoRlIgIzgzNDEpIFNwb25zb3JlZCBieSBWaXNpb25wYXJrPC9saT4NCgk8bGk+Rml4ZWQ6IFNob3cgdGFiY29udGVudCBvZiBUYWJzIHdoZW4gdGhlcmUgYXJlIG5vIGZpZWxkIGRlZmluaXRpb25zPC9saT4NCgk8bGk+Rml4ZWQ6IERlbGV0ZSB0YWJmaWVsZCByZWZlcmVuY2UgYWZ0ZXIgYSBmaWVsZCBkZWZpbml0aW9uIGhhcyBiZWVuIGRlbGV0ZWQ8L2xpPg0KCTxsaT5GaXhlZDogRHJvcCB0YWIgcmVsYXRlZCB0YWJsZXMgZnJvbSB0aGUgZGF0YWJhc2Ugd2l0aCB1bmluc3RhbGwgYWN0aW9uPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMy4xPC9zdHJvbmc+IC0gMjEgSnVseSAyMDE3DQoJPHVsPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ0ZpbGVQaWNrZXInPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMy4wPC9zdHJvbmc+IC0gMTUgT2N0b2JlciAyMDE2DQoJPHVsPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ1BhZ2Ugc2VsZWN0b3InIChGUiAjMTAwNzcpPC9saT4NCgk8bGk+R3JvdXBpbmcgb2Ygc2V0dGluZ3MgYnkgY3VzdG9tIHRhYnMgKEZSICMxMDE3Nik8L2xpPg0KCTxsaT5DbGlja2luZyBvbiBmaWVsZHR5cGUgYnV0dG9uIGZpcmVzIGV2ZW50ICdPblNldHRpbmdDaGFuZ2UnPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMi4yPC9zdHJvbmc+IC0gMTMgTWFyY2ggMjAxNg0KCTx1bD4NCgk8bGk+VGFnIHtDdXN0b21HU30gbm8gbG9uZ2VyIG5lZWRlZCwgbW9kdWxlIGdldHMgYXV0b21hdGljYWxseSBpbml0aWFsaXplZDwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZSAnSk1GaWxlUGlja2VyJzwvbGk+DQoJPGxpPk5ldyBpY29uPC9saT4NCgk8bGk+VXNlIGNvcmUgY21zX21haWxlciBtZXRob2Q8L2xpPg0KCTxsaT5NaW5pbXVtIHJlcXVpcmVkIENNU21zIHZlcnNpb24gc2V0IHRvIDEuMTI8L2xpPg0KCTxsaT5CdWcgIzEwODM4OiBmaXhlZCAtIERvZXNuJ3Qgb3V0cHV0IGFueXRoaW5nIGluIDIuMS4xPC9saT4NCgk8bGk+QnVnICMxMDkzMjogZml4ZWQgLSBQZXJtaXNzaW9ucyBub3QgY2hlY2tlZCBwcm9wZXJseTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDIuMTwvc3Ryb25nPiAtIDEwIEp1bHkgMjAxNA0KCTx1bD4NCgk8bGk+QnVnICM5OTg5OiBmaXhlZCAtIEhpZGRlbiBmaWVsZCB2YWx1ZXMgYXJlIHJlc2V0IHRvICIwIjwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDIuMDwvc3Ryb25nPiAtIDIxIE1heSAyMDE0DQoJPHVsPg0KCTxsaT5GaXhlcyBmb3IgQ29yZSAyLjA8L2xpPg0KCTxsaT5NaW5pbXVtIHJlcXVpcmVkIENNU21zIHZlcnNpb24gc2V0IHRvIDEuMTE8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjY8L3N0cm9uZz4gLSAxOSBNYXkgMjAxNA0KCTx1bD4NCgk8bGk+TWlub3Igc3R5bGUgdXBkYXRlIGZvciBjb2xsYXBzaWJsZSBmaWVsZHNldCAoRlIgIzk5MzkpPC9saT4NCgk8bGk+QnVnICM5OTg5OiBmaXhlZCAtIEhpZGRlbiBmaWVsZCB2YWx1ZXMgYXJlIHJlc2V0IHRvICIwIjwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuNTwvc3Ryb25nPiAtIDUgRGVjZW1iZXIgMjAxMw0KCTx1bD4NCgk8bGk+UG9zc2liaWxpdHkgdG8gYWRkIGFkbWluIHBhZ2UgdW5kZXIgU2l0ZSBBZG1pbiBzZWN0aW9uLiBFZGl0b3JzIGRvbid0IGhhdmUgYWNjZXNzITwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZSAnQ29sb3JQaWNrZXInICh0aGFua3MgdG8gSmlzc2V5KTwvbGk+DQoJPGxpPkFkZGVkIEZyZW5jaCB0cmFuc2xhdGlvbiAodGhhbmtzIHRvIEppc3NleSk8L2xpPg0KCTxsaT5BZGRlZCBjb2xsYXBzaWJsZSBmaWVsZGdyb3VwcyAoRlIgIzgxNjYsICM4NTE3IGFuZCAjOTQ2NSk8L2xpPg0KCTxsaT5BZGRlZCB0aGUgYWJpbGl0eSB0byBhc3NpZ24gZWFjaCBmaWVsZCB0byAnYWRtaW4nIG9yICdlZGl0b3InIChGUiAjODUxNSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjQ8L3N0cm9uZz4gLSA5IE1heSAyMDEzDQoJPHVsPg0KCTxsaT5EcmFnIGFuZCBkcm9wIGZpZWxkIG9yZGVyaW5nIChGUiAjODUxNik8L2xpPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ0dCRmlsZVBpY2tlcicgKEZSICM4Mjg2IGFuZCAjODYzNCk8L2xpPg0KCTxsaT5JbmNsdWRlZCBXaWtpIGhlbHB0ZXh0IGFuZCBleGFtcGxlcyBpbiB0aGUgbW9kdWxlIGhlbHB0ZXh0PC9saT4NCgk8bGk+QnVnICM4NjMzOiBmaXhlZCAtIERvZXMgbm90IGVzY2FwZSBoZWxwIHRleHQ8L2xpPg0KCTxsaT5CdWcgIzkwMTk6IGZpeGVkIC0gU3VibWl0IG5vdCB3b3JraW5nIGZvciB0aG9zZSB3aXRob3V0ICdNYW5hZ2UnIHBlcm1pc3Npb25zPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS4zPC9zdHJvbmc+IC0gMTQgQXVndXN0IDIwMTINCgk8dWw+DQoJPGxpPlJlbW92ZWQgQ2xlYXIgQ2FjaGUgZHVlIHRvIEZvcmdlIHJlZ3VsYXRpb25zPC9saT4NCgk8bGk+QnVnICM4MDA5OiBmaXhlZCAtIElzc3VlIHdpdGggdGV4dCBhcmVhcyB3aXRoIHNtYXJ0eSBwYXJzaW5nIG9uPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS4yPC9zdHJvbmc+IC0gMjAgTWFyY2ggMjAxMg0KCTx1bD4NCgk8bGk+TWluaW11bSByZXF1aXJlZCBDTVNtcyB2ZXJzaW9uIHNldCB0byAxLjEwPC9saT4NCgk8bGk+QWRkIEdldEFkbWluU2VjdGlvbiBzZXR0aW5nIChGUiAjNzYxOCk8L2xpPg0KCTxsaT5BZGRlZCBvcHRpb24gdG8gYXV0b21hdGljYWxseSBjbGVhciBjYWNoZSBhZnRlciBjaGFuZ2luZyBhIHNldHRpbmc8L2xpPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ0J1dHRvbic8L2xpPg0KCTxsaT5TdXBwb3J0IFZhbHVlfE9wdGlvbk5hbWUgcGFpcnMgYW5kIFNtYXJ0eSB0YWdzIGZvciBwdWxsZG93biBmaWVsZHMgYW5kIHJhZGlvYnV0dG9uczwvbGk+DQoJPGxpPkJ1ZyBmaXhlZDogRWRpdGluZyBhIGZpZWxkIGNoYW5nZXMgdGhlIGZpZWxkbmFtZTwvbGk+DQoJPGxpPkJ1ZyBmaXhlZDogU2VuZEV2ZW50IG9uIGNoYW5naW5nIGEgY2hlY2tib3ggc2V0dGluZzwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuMTwvc3Ryb25nPiAtIDE5IEZlYnJ1YXJ5IDIwMTINCgk8dWw+DQoJPGxpPkRlZmluZSB1bmxpbWl0ZWQgbnVtYmVyIG9mIGZpZWxkczwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZXMgdGV4dGFyZWEsIHd5c2l3eWcsIGRhdGV0aW1lcGlja2VyLCBwdWxsZG93biBzZWxlY3QsIHJhZGlvYnV0dG9uczwvbGk+DQoJPGxpPkFkZGVkIGV2ZW50IE9uU2V0dGluZ0NoYW5nZTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuMDwvc3Ryb25nPiAtIDIxIEphbnVhcnkgMjAxMg0KCTx1bD4NCgk8bGk+SW5pdGlhbCBtb2R1bGUgcmVsZWFzZTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[A module to extend the Global Settings with some customized parameters. You can define an unlimited number of fields which can be used as smarty-variable in templates or pages.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCi8vIFBhc3MgdGhlIGZpZWxkcyB0byB0aGUgdGVtcGxhdGVzDQppZiAoIGlzc2V0KCRwYXJhbXNbJ3Nob3d2YXJzJ10pICkNCnsNCgkkZmllbGRzID0gJHRoaXMtPkdldFNldHRpbmdzKCk7DQoJZm9yZWFjaCAoICRmaWVsZHMgYXMgJGtleT0+JHZhbHVlICkNCgl7DQoJCWlmICggIWlzX251bWVyaWMoJGtleSkgKSBlY2hvICd7JEN1c3RvbUdTLicgLiAka2V5IC4gJ30gPSAnIC4gJHZhbHVlIC4gJzxiciAvPic7DQoJfQ0KfQ0KZWxzZSANCnsNCgkvLyBSZWR1bmRhbnQge0N1c3RvbUdTfSB0YWcgZm91bmQNCglkZWJ1Z190b19sb2coJ1JlZHVuZGFudCB7Q3VzdG9tR1N9IHRhZyBmb3VuZC4gU2luY2UgcmVsZWFzZSAyLjIgdGhpcyB0YWcgaXMgbm8gbG9uZ2VyIG5lZWRlZC4gVGhlIG1vZHVsZSBnZXRzIGF1dG9tYXRpY2FsbHkgaW5pdGlhbGl6ZWQuIFlvdSBjYW4gcmVtb3ZlIHRoZSB0YWcgZnJvbSB5b3VyIHRlbXBsYXRlKHMpLicpOw0KfQ0KDQojDQojIEVPRg0KIw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCmlmICghJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKQ0Kew0KCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMobGFuZygnbmVlZHBlcm1pc3Npb250bycsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJykpOw0KCXJldHVybjsNCn0NCg0KJGFkbWludGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsNCg0KLyoqDQogKiBDcmVhdGUgQWRtaW4gdGFicw0KICovIA0KIA0KJHRhYnMgPSAkdGhpcy0+R2V0VGFicygpOw0KIA0KZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7DQoJJGFjdGl2ZV90YWIgPSBlbXB0eSgkcGFyYW1zWydhY3RpdmVfdGFiJ10pID8gJycgOiAkcGFyYW1zWydhY3RpdmVfdGFiJ107DQoNCglmb3JlYWNoKCAkdGFicyBhcyAkdGFiICkNCgl7DQoJCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigndGFiJyAuICR0YWJbJ3RhYmlkJ10sICR0YWJbJ25hbWUnXSwgKCRhY3RpdmVfdGFiID09ICd0YWInIC4gJHRhYlsndGFiaWQnXSk/dHJ1ZTpmYWxzZSk7DQoJfQ0KDQoJaWYgKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgKQ0KCXsNCgkJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdmaWVsZGRlZnMnLCAkdGhpcy0+TGFuZygidGl0bGVfZmllbGRkZWZzIiksICgkYWN0aXZlX3RhYiA9PSAnZmllbGRkZWZzJyk/dHJ1ZTpmYWxzZSk7DQoJCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigndGFicycsICR0aGlzLT5MYW5nKCJ0aXRsZV90YWJzIiksICgkYWN0aXZlX3RhYiA9PSAndGFicycpP3RydWU6ZmFsc2UpOw0KCQllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ29wdGlvbnMnLCBsYW5nKCJvcHRpb25zIiksICgkYWN0aXZlX3RhYiA9PSAnb3B0aW9ucycpP3RydWU6ZmFsc2UpOw0KCX0NCg0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOw0KDQoNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOw0KDQoJaWYgKCBmdW5jdGlvbl9leGlzdHMoJ2Ntc19hZG1pbl9jdXJyZW50X2xhbmd1YWdlJykgKSBzZXRsb2NhbGUoTENfVElNRSwgY21zX2FkbWluX2N1cnJlbnRfbGFuZ3VhZ2UoKSk7IC8vIGZvciBjbXNtcyAxLjEwIG9ubHkNCglmb3IgKCRpID0gMTsgJGkgPD0gMTI7ICRpKyspDQoJew0KCQkkdGltZXN0YW1wPW1rdGltZSgxLDEsMSwkaSwxLDIwMDApOw0KCQkkbW9udGhzW10gPSBodG1sZW50aXRpZXMoc3RyZnRpbWUoJyVCJywgJHRpbWVzdGFtcCkpOw0KCX0NCgkkbW9udGhuYW1lcyA9IGltcGxvZGUoIicsJyIsJG1vbnRocyk7DQoJZm9yICgkaSA9IDE7ICRpIDw9IDc7ICRpKyspDQoJew0KCQkkdGltZXN0YW1wPW1rdGltZSgxLDEsMSwxMCwkaSwyMDAwKTsNCgkJJGRheXNbXSA9IGh0bWxlbnRpdGllcyhzdHJmdGltZSgnJUEnLCAkdGltZXN0YW1wKSk7DQoJCSRkYXlzbWluW10gPSBodG1sZW50aXRpZXMoc3Vic3RyKHN0cmZ0aW1lKCclYScsICR0aW1lc3RhbXApLCAwLCAyKSk7DQoJfQ0KCSRkYXluYW1lcyA9IGltcGxvZGUoIicsJyIsJGRheXMpOw0KCSRkYXluYW1lc21pbiA9IGltcGxvZGUoIicsJyIsJGRheXNtaW4pOw0KDQoJJGRhdGFwaWNrZXJfbG9jYWxlID0gIg0KCQkkLmRhdGVwaWNrZXIucmVnaW9uYWxbJyddID0geyANCgkJCWNsb3NlVGV4dDogJyIgLiBsYW5nKCdjbG9zZScpIC4gIicsDQoJCQlwcmV2VGV4dDogJyIgLiBsYW5nKCdwcmV2aW91cycpIC4gIicsDQoJCQluZXh0VGV4dDogJyIgLiBsYW5nKCduZXh0JykgLiAiJywNCgkJCWN1cnJlbnRUZXh0OiAnIiAuICR0aGlzLT5MYW5nKCdub3cnKSAuICInLA0KCQkJbW9udGhOYW1lczogWyciIC4gJG1vbnRobmFtZXMgLiAiJ10sDQoJCQlkYXlOYW1lczogWyciIC4gJGRheW5hbWVzIC4gIiddLA0KCQkJZGF5TmFtZXNNaW46IFsnIiAuICRkYXluYW1lc21pbiAuICInXSwNCgkJCWRhdGVGb3JtYXQ6ICd5eXl5LW1tLWRkJywNCgkJCWZpcnN0RGF5OiAxLA0KCQkJaXNSVEw6IGZhbHNlLA0KCQkJc2hvd01vbnRoQWZ0ZXJZZWFyOiBmYWxzZSwNCgkJCXllYXJTdWZmaXg6ICcnDQoJCX0gOw0KCQkkLmRhdGVwaWNrZXIuc2V0RGVmYXVsdHMoJC5kYXRlcGlja2VyLnJlZ2lvbmFsWycnXSk7DQoNCgkJJC50aW1lcGlja2VyLnJlZ2lvbmFsWycnXSA9IHsgDQoJCQl0aW1lT25seVRpdGxlOiAnIiAuICR0aGlzLT5MYW5nKCdjaG9vc2V0aW1lJykgLiAiJywNCgkJCXRpbWVUZXh0OiAnIiAuICR0aGlzLT5MYW5nKCd0aW1lJykgLiAiJywNCgkJCWhvdXJUZXh0OiAnIiAuIGxhbmcoJ2hvdXInKSAuICInLA0KCQkJbWludXRlVGV4dDogJyIgLiBsYW5nKCdtaW51dGVzJykgLiAiJywNCgkJCWN1cnJlbnRUZXh0OiAnIiAuICR0aGlzLT5MYW5nKCdub3cnKSAuICInLA0KCQkJY2xvc2VUZXh0OiAnIiAuIGxhbmcoJ2Nsb3NlJykgLiAiJywNCgkJCWFtcG06IGZhbHNlDQoJCX0gOw0KCQkkLnRpbWVwaWNrZXIuc2V0RGVmYXVsdHMoJC50aW1lcGlja2VyLnJlZ2lvbmFsWycnXSk7DQoJIjsNCg0KCSRzbWFydHktPmFzc2lnbignY2dzX3VybF9wYXRoJywgJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSk7DQoJJHNtYXJ0eS0+YXNzaWduKCdkYXRhcGlja2VyX2xvY2FsZScsICRkYXRhcGlja2VyX2xvY2FsZSk7DQoNCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2dlbmVyYWxqcy50cGwnKTsNCgkNCglmb3JlYWNoKCAkdGFicyBhcyAkdGFiICkNCgl7DQoJCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCd0YWInIC4gJHRhYlsndGFiaWQnXSk7DQoJCQlpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fZ2VuZXJhbC5waHAnKTsNCgkJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQoJfQ0KDQoJaWYgKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgKQ0KCXsNCgkJZWNobyAkdGhpcy0+U3RhcnRUYWIoImZpZWxkZGVmcyIpOw0KCQkJaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2ZpZWxkZGVmcy5waHAnKTsNCgkJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQoNCgkJZWNobyAkdGhpcy0+U3RhcnRUYWIoInRhYnMiKTsNCgkJCWluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl90YWJzLnBocCcpOw0KCQllY2hvICR0aGlzLT5FbmRUYWIoKTsNCg0KCQllY2hvICR0aGlzLT5TdGFydFRhYigib3B0aW9ucyIpOw0KCQkJaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX29wdGlvbnMucGhwJyk7DQoJCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KCX0NCg0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOw0KDQojDQojIEVPRg0KIw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpICkNCnsNCgllY2hvICR0aGlzLT5TaG93RXJyb3JzKGxhbmcoJ25lZWRwZXJtaXNzaW9udG8nLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpKTsNCglyZXR1cm47DQp9DQoNCmlmICggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkNCnsNCgkkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KfQ0KDQppZiggIWlzc2V0KCRwYXJhbXNbJ21vZGUnXSkgKQ0Kew0KCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJyA9PiBsYW5nKCdtaXNzaW5ncGFyYW1zJyksICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCglyZXR1cm47DQp9DQoNCiRkYiA9ICR0aGlzLT5HZXREQigpOw0KDQpzd2l0Y2ggKCRwYXJhbXNbJ21vZGUnXSkNCnsNCgljYXNlICdhZGQnOg0KCQlpZiggJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT0gJ1BPU1QnICkNCgkJew0KCQkJLy8gY2hlY2sgaWYgbmFtZSBpcyBlbXB0eQ0KCQkJaWYgKCBlbXB0eSgkcGFyYW1zWyduYW1lJ10pICkgJHBhcmFtc1snbmFtZSddID0gJHBhcmFtc1sndHlwZSddIC4gIjEiOw0KCQkJLy8gY2hlY2sgaWYgbmFtZSBhbHJlYWR5IGV4aXN0cw0KCQkJd2hpbGUgKCAkdGhpcy0+R2V0RmllbGQoJHBhcmFtc1snbmFtZSddKSAhPT0gRkFMU0UgKQ0KCQkJew0KCQkJCWlmICggaXNfbnVtZXJpYyhzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMSkpICkNCgkJCQl7DQoJCQkJCSRwYXJhbXNbJ25hbWUnXSA9IGlzX251bWVyaWMoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTIpKSA/IHN1YnN0cigkcGFyYW1zWyduYW1lJ10sMCAsIC0yKSAuIChzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMikgKyAxKSA6IHN1YnN0cigkcGFyYW1zWyduYW1lJ10sMCAsIC0xKSAuIChzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMSkgKyAxKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1snbmFtZSddIC49ICIxIjsNCgkJCQl9DQoJCQl9DQoJCQkvLyBmaW5kIG1heGltdW0gdmFsdWUgZm9yIHNvcnRvcmRlcg0KCQkJJHF1ZXJ5ID0gIlNFTEVDVCBNQVgoc29ydG9yZGVyKSBBUyBtYXhzb3J0b3JkZXIgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIjsNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJCWlmKCAkcmVzdWx0ICkNCgkJCXsNCgkJCQkkZmllbGQgPSAkcmVzdWx0LT5GZXRjaFJvdygpOw0KCQkJCS8vIHNldCBwcm9wZXJ0aWVzLCBkZXBlbmRpbmcgb24gZmllbGR0eXBlDQoJCQkJaWYoICRwYXJhbXNbJ3R5cGUnXSA9PSAndGV4dGZpZWxkJyApDQoJCQkJew0KCQkJCQkkcGFyYW1zWydwcm9wZXJ0aWVzJ10gPSBpc19udW1lcmljKCRwYXJhbXNbJ21heGxlbmd0aCddKSA/ICRwYXJhbXNbJ21heGxlbmd0aCddIDogMjU1Ow0KCQkJCX0NCgkJCQllbHNlaWYgKCAkcGFyYW1zWyd0eXBlJ10gPT0gJ3RleHRhcmVhJyB8fCAkcGFyYW1zWyd0eXBlJ10gPT0gJ3d5c2l3eWcnICkNCgkJCQl7DQoJCQkJCSRwYXJhbXNbJ3Byb3BlcnRpZXMnXSA9IGlzc2V0KCRwYXJhbXNbJ3BhcnNlc21hcnR5J10pOw0KCQkJCX0NCgkJCQllbHNlaWYgKCAkcGFyYW1zWyd0eXBlJ10gIT0gJ3B1bGxkb3duJyAmJiAkcGFyYW1zWyd0eXBlJ10gIT0gJ3JhZGlvYnV0dG9ucycgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1sncHJvcGVydGllcyddID0gJyc7DQoJCQkJfQ0KCQkJCWVsc2VpZiAoICRwYXJhbXNbJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1sndHlwZSddID0gJ2ZpZWxkc2V0c3RhcnQnOw0KCQkJCQkkcGFyYW1zWydwcm9wZXJ0aWVzJ10gPSAnJzsNCgkJCQl9DQoJCQkJJHBhcmFtc1snY2xlYXJjYWNoZSddID0gaXNzZXQoJHBhcmFtc1snY2xlYXJjYWNoZSddKTsNCgkJCQkNCgkJCQkkZWRpdG9ycyA9IGVtcHR5KCRwYXJhbXNbJ2VkaXRvcnMnXSkgPyAnJyA6IGltcGxvZGUoJzsnLCAkcGFyYW1zWydlZGl0b3JzJ10pOw0KCQkJCQ0KCQkJCS8vIHNhdmUgZmllbGRkZWZpbml0aW9uDQoJCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MgKG5hbWUsIGhlbHAsIHR5cGUsIHByb3BlcnRpZXMsIGNsZWFyY2FjaGUsIHNvcnRvcmRlciwgZWRpdG9ycykgVkFMVUVTICg/LD8sPyw/LD8sPyw/KSI7DQoJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ25hbWUnXSwgJHBhcmFtc1snaGVscCddLCAkcGFyYW1zWyd0eXBlJ10sICRwYXJhbXNbJ3Byb3BlcnRpZXMnXSwgJHBhcmFtc1snY2xlYXJjYWNoZSddLCAkZmllbGRbJ21heHNvcnRvcmRlciddICsgMSwgJGVkaXRvcnMpKTsNCgkJCX0NCgkJCWlmKCBpc3NldCgkcmVzdWx0KSAmJiAkcmVzdWx0ICkNCgkJCXsNCgkJCQkkZmllbGRpZCA9ICRkYi0+SW5zZXJ0X0lEKCk7DQoNCgkJCQkvLyBhZGQgYWxzbyBmaWVsZHNldGVuZCBpZiBmaWVsZHNldHN0YXJ0IHdhcyBhZGRlZA0KCQkJCWlmICggJHBhcmFtc1sndHlwZSddID09ICdmaWVsZHNldHN0YXJ0JyApDQoJCQkJew0KCQkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbmFtZSddIC4gJy4nLCAnJywgJ2ZpZWxkc2V0ZW5kJywgJycsICRwYXJhbXNbJ2NsZWFyY2FjaGUnXSwgJGZpZWxkWydtYXhzb3J0b3JkZXInXSArIDIsICRlZGl0b3JzKSk7DQoJCQkJCSRmaWVsZGlkMiA9ICRkYi0+SW5zZXJ0X0lEKCk7DQoJCQkJfQ0KDQoJCQkJLy8gc2F2ZSB0YWIgYXNzaWdubWVudHMNCgkJCQlmb3JlYWNoICgkcGFyYW1zWyd0YWJzJ10gYXMgJHRhYmlkID0+ICR0YWJzZWxlY3QpDQoJCQkJew0KCQkJCQlpZiAoICR0YWJzZWxlY3QgPT0gMSApDQoJCQkJCXsNCgkJCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkICh0YWJpZCwgZmllbGRpZCkgVkFMVUVTICg/LD8pIjsNCgkJCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGFiaWQsICRmaWVsZGlkKSk7DQoJCQkJCQlpZiAoICRwYXJhbXNbJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgKQ0KCQkJCQkJew0KCQkJCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkICh0YWJpZCwgZmllbGRpZCkgVkFMVUVTICg/LD8pIjsNCgkJCQkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRhYmlkLCAkZmllbGRpZDIpKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQkNCgkJCQkvLyBQdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkJCQlhdWRpdCgkZmllbGRpZCwgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBGaWVsZGRlZmluaXRpb24nLCAnQWRkZWQ6ICcgLiAkcGFyYW1zWyduYW1lJ10pOw0KCQkJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ2ZpZWxkZGVmYWRkZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJz0+ICd1cGRhdGVmYWlsZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCQkJfQ0KDQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQl9DQoJCSRmaWVsZCA9IGFycmF5KCduYW1lJyA9PiAnJywgJ2hlbHAnID0+ICcnLCAndHlwZScgPT4gJycsICdtYXhsZW5ndGgnID0+ICcnLCAncHJvcGVydGllcycgPT4gJycsICdwYXJzZXNtYXJ0eScgPT4gJycsICdjbGVhcmNhY2hlJyA9PiAwLCAnZWRpdG9ycycgPT4gJycpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ3RpdGxlJyxsYW5nKCdhZGQnKSk7DQoJCSRzbWFydHktPmFzc2lnbignaGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAnYWRkJykpOw0KCQlicmVhazsNCg0KDQoJY2FzZSAnZGVsZXRlJzoNCgkJaWYoICFpc19udW1lcmljKCRwYXJhbXNbJ2ZpZWxkaWQnXSkgKQ0KCQl7DQoJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcicgPT4gbGFuZygnbWlzc2luZ3BhcmFtcycpLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJCXJldHVybjsNCgkJfQ0KCQkNCgkJJGZpZWxkID0gJHRoaXMtPkdldEZpZWxkKCRwYXJhbXNbJ2ZpZWxkaWQnXSk7DQoJCQ0KCQlpZiggJGZpZWxkID09PSBGQUxTRSApDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJz0+ICd1cGRhdGVmYWlsZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJfQ0KDQoJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KDQoJCS8vIFB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCQlhdWRpdCgkcGFyYW1zWydmaWVsZGlkJ10sICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gRmllbGRkZWZpbml0aW9uJywgJ0RlbGV0ZWQ6ICcgLiAkZmllbGRbJ25hbWUnXSk7DQoNCgkJLy8gdXBkYXRlIHRoZSBzb3J0b3JkZXINCgkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgc29ydG9yZGVyID0gc29ydG9yZGVyIC0gMSBXSEVSRSBzb3J0b3JkZXIgPiA/IjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmaWVsZFsnc29ydG9yZGVyJ10pKTsNCgkJDQogICAgCS8vIGRlbGV0ZSBhbGwgdGFiLWFzc2lnbm1lbnRzDQogICAgCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCBXSEVSRSBmaWVsZGlkID0gPyI7DQogICAgCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydmaWVsZGlkJ10pKTsNCg0KCQkvLyBkZWxldGUgZmllbGRzZXRlbmQNCgkJaWYgKCAkZmllbGRbJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgKQ0KCQl7DQoJCQkkZmllbGQyID0gJHRoaXMtPkdldEZpZWxkKCAkZmllbGRbJ25hbWUnXSAuICcuJyApOw0KCQkJDQoJCQlpZiggJGZpZWxkMiAhPT0gRkFMU0UgKQ0KCQkJew0KCQkJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpZWxkMlsnZmllbGRpZCddKSk7DQoNCgkJCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBzb3J0b3JkZXIgPSBzb3J0b3JkZXIgLSAxIFdIRVJFIHNvcnRvcmRlciA+ID8iOw0KCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGQyWydzb3J0b3JkZXInXSkpOw0KCQkJfQ0KCQl9DQoNCgkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnZmllbGRkZWZzdXBkYXRlZCcsICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCWJyZWFrOw0KDQoNCgljYXNlICdlZGl0JzoNCgkJaWYoICFpc19udW1lcmljKCRwYXJhbXNbJ2ZpZWxkaWQnXSkgKQ0KCQl7DQoJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcicgPT4gbGFuZygnbWlzc2luZ3BhcmFtcycpLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCSRmaWVsZCA9ICR0aGlzLT5HZXRGaWVsZCgkcGFyYW1zWydmaWVsZGlkJ10pOw0KDQoJCWlmKCAkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PSAnUE9TVCcgKQ0KCQl7DQoJCQkvLyBjaGVjayBpZiBuYW1lIGlzIGVtcHR5DQoJCQlpZiAoIGVtcHR5KCRwYXJhbXNbJ25hbWUnXSkgKSAkcGFyYW1zWyduYW1lJ10gPSAkcGFyYW1zWyd0eXBlJ10gLiAiMSI7DQoJCQkvLyBjaGVjayBpZiBuYW1lIGFscmVhZHkgZXhpc3RzDQoJCQkkY2hlY2tmaWVsZG5hbWUgPSAkZmllbGRbJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgPyBGQUxTRSA6ICR0aGlzLT5HZXRGaWVsZCgkcGFyYW1zWyduYW1lJ10pOw0KCQkJV2hpbGUgKCAkY2hlY2tmaWVsZG5hbWUgIT09IEZBTFNFICYmICRwYXJhbXNbJ2ZpZWxkaWQnXSAhPSAkY2hlY2tmaWVsZG5hbWVbJ2ZpZWxkaWQnXSApDQoJCQl7DQoJCQkJaWYgKCBpc19udW1lcmljKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSkgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1snbmFtZSddID0gaXNfbnVtZXJpYyhzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMikpID8gc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTIpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0yKSArIDEpIDogc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTEpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSArIDEpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkcGFyYW1zWyduYW1lJ10gLj0gIjEiOw0KCQkJCX0NCgkJCQkkY2hlY2tmaWVsZG5hbWUgPSAkdGhpcy0+R2V0RmllbGQoJHBhcmFtc1snbmFtZSddKTsNCgkJCX0NCgkJCS8vIHNldCBwcm9wZXJ0aWVzLCBkZXBlbmRpbmcgb24gZmllbGR0eXBlDQoJCQlpZiggJHBhcmFtc1sndHlwZSddID09ICd0ZXh0ZmllbGQnICkNCgkJCXsNCgkJCQkkcGFyYW1zWydwcm9wZXJ0aWVzJ10gPSBpc19udW1lcmljKCRwYXJhbXNbJ21heGxlbmd0aCddKSA/ICRwYXJhbXNbJ21heGxlbmd0aCddIDogMjU1Ow0KCQkJfQ0KCQkJZWxzZWlmICggJHBhcmFtc1sndHlwZSddID09ICd0ZXh0YXJlYScgfHwgJHBhcmFtc1sndHlwZSddID09ICd3eXNpd3lnJyApDQoJCQl7DQoJCQkJJHBhcmFtc1sncHJvcGVydGllcyddID0gJHBhcmFtc1sncGFyc2VzbWFydHknXTsNCgkJCX0NCgkJCWVsc2VpZiAoICRwYXJhbXNbJ3R5cGUnXSAhPSAncHVsbGRvd24nICYmICRwYXJhbXNbJ3R5cGUnXSAhPSAncmFkaW9idXR0b25zJyApDQoJCQl7DQoJCQkJJHBhcmFtc1sncHJvcGVydGllcyddID0gJyc7DQoJCQl9DQoJCQkNCgkJCSRwYXJhbXNbJ2NsZWFyY2FjaGUnXSA9IGlzc2V0KCRwYXJhbXNbJ2NsZWFyY2FjaGUnXSk7DQoJCQkNCgkJCSRlZGl0b3JzID0gZW1wdHkoJHBhcmFtc1snZWRpdG9ycyddKSA/ICcnIDogaW1wbG9kZSgnOycsICRwYXJhbXNbJ2VkaXRvcnMnXSk7DQoJCQkNCgkJCS8vIHNhdmUgZmllbGRkZWZpbml0aW9uDQoJCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBuYW1lID0gPywgaGVscCA9ID8sIHR5cGUgPSA/LCBwcm9wZXJ0aWVzID0gPywgY2xlYXJjYWNoZSA9ID8sIGVkaXRvcnMgPSA/IFdIRVJFIGZpZWxkaWQgPSA/IjsNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyduYW1lJ10sICRwYXJhbXNbJ2hlbHAnXSwgJHBhcmFtc1sndHlwZSddLCAkcGFyYW1zWydwcm9wZXJ0aWVzJ10sICRwYXJhbXNbJ2NsZWFyY2FjaGUnXSwgJGVkaXRvcnMsICRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KDQoJCQkvLyBkZWxldGUgYWxsIHRhYi1hc3NpZ25tZW50cw0KCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIFdIRVJFIGZpZWxkaWQgPSA/IjsNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydmaWVsZGlkJ10pKTsNCgkJCQ0KCQkJLy8gc2F2ZSBmaWVsZHNldGVuZA0KCQkJaWYgKCAkZmllbGRbJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgKQ0KCQkJew0KCQkJCSRmaWVsZGVuZCA9ICR0aGlzLT5HZXRGaWVsZCgkZmllbGRbJ25hbWUnXSAuICcuJyk7DQoJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmaWVsZGVuZFsnZmllbGRpZCddKSk7DQoJCQkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgbmFtZSA9ID8sIGVkaXRvcnMgPSA/IFdIRVJFIGZpZWxkaWQgPSA/IjsNCgkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbmFtZSddIC4gJy4nLCAkZWRpdG9ycywgJGZpZWxkZW5kWydmaWVsZGlkJ10pKTsNCgkJCX0NCgkJCQ0KCQkJLy8gc2F2ZSB0YWItYXNzaWdubWVudHMNCgkJCWlmICggaXNzZXQoJHBhcmFtc1sndGFicyddKSApIHsNCgkJCQ0KCQkJCWZvcmVhY2ggKCRwYXJhbXNbJ3RhYnMnXSBhcyAkdGFiaWQgPT4gJHRhYnNlbGVjdCkNCgkJCQl7DQoJCQkJCWlmICggJHRhYnNlbGVjdCA9PSAxICkNCgkJCQkJew0KCQkJCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgKHRhYmlkLCBmaWVsZGlkKSBWQUxVRVMgKD8sPykiOw0KCQkJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0YWJpZCwgJHBhcmFtc1snZmllbGRpZCddKSk7DQoJCQkJCQlpZiAoICRmaWVsZFsndHlwZSddID09ICdmaWVsZHNldHN0YXJ0JyApDQoJCQkJCQl7DQoJCQkJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0YWJpZCwgJGZpZWxkZW5kWydmaWVsZGlkJ10pKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQkNCgkJCX0NCgkJCQ0KDQoJCQkvLyBQdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkJCWF1ZGl0KCRwYXJhbXNbJ2ZpZWxkaWQnXSwgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBGaWVsZGRlZmluaXRpb24nLCAnRWRpdGVkOiAnIC4gJHBhcmFtc1snbmFtZSddKTsNCg0KCQkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnZmllbGRkZWZzdXBkYXRlZCcsICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQl9DQoNCgkJJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsbGFuZygnZWRpdCcpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmllbGRpZCcsICRwYXJhbXNbJ2ZpZWxkaWQnXSkgLg0KCQkJCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAnZWRpdCcpKTsNCgkJYnJlYWs7DQoNCg0KCWNhc2UgJ21vdmV1cCc6DQoJY2FzZSAnbW92ZWRvd24nOg0KCQkkZmllbGQgPSAkdGhpcy0+R2V0RmllbGQoJHBhcmFtc1snZmllbGRpZCddKTsNCgkJaWYoICRmaWVsZCA9PT0gRkFMU0UgKQkJIA0KCQl7DQoJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcic9PiAndXBkYXRlZmFpbGVkJywgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCX0NCg0KCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBzb3J0b3JkZXIgPSAiIC4gKCRwYXJhbXNbJ21vZGUnXSA9PSAnbW92ZXVwJyA/ICdzb3J0b3JkZXIgKyAxJyA6ICdzb3J0b3JkZXIgLSAxJykgLiAiIFdIRVJFIHNvcnRvcmRlciA9ID8iOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbW9kZSddID09ICdtb3ZldXAnID8gJGZpZWxkWydzb3J0b3JkZXInXSAtIDEgOiAkZmllbGRbJ3NvcnRvcmRlciddICsgMSkpOw0KDQoJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIHNvcnRvcmRlciA9ICIgLiAoJHBhcmFtc1snbW9kZSddID09ICdtb3ZldXAnID8gJ3NvcnRvcmRlciAtIDEnIDogJ3NvcnRvcmRlciArIDEnKSAuICIgV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snZmllbGRpZCddKSk7DQoNCgkJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCWJyZWFrOw0KDQoJCQ0KCWNhc2UgJ3NvcnQnOg0KCQlpZiAoICFlbXB0eSgkcGFyYW1zWydzb3J0c2VxJ10pICkNCgkJew0KCQkJJHNvcnRzZXEgPSBzdHJfcmVwbGFjZSgnaScsICcnLCAkcGFyYW1zWydzb3J0c2VxJ10pOw0KCQkJJHNvcnRlbnRyaWVzID0gZXhwbG9kZSgnLCcsICRzb3J0c2VxKTsNCgkJCWZvcmVhY2ggKCAkc29ydGVudHJpZXMgYXMgJGtleSA9PiAkZmllbGRpZCApDQoJCQl7DQoJCQkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgc29ydG9yZGVyID0gPyBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGtleSArIDEsICRmaWVsZGlkKSk7DQoJCQl9DQoJCX0NCgkJZXhpdCgpOw0KCQlicmVhazsNCg0KCQkNCgljYXNlICdhc3NpZ24nOg0KCQlpZiAoICFlbXB0eSgkcGFyYW1zWydmaWVsZGlkJ10pICYmICFlbXB0eSgkcGFyYW1zWyd0YWJpZCddKSApDQoJCXsNCgkJCSRkYiA9ICR0aGlzLT5HZXREQigpOw0KCQkJJHF1ZXJ5ID0gIlNFTEVDVCBmLm5hbWUsIGYudHlwZSwgdGYuKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIGYNCgkJCQkJCUxFRlQgSk9JTiAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCB0ZiBPTiBmLmZpZWxkaWQgPSB0Zi5maWVsZGlkIEFORCB0Zi50YWJpZCA9ID8NCgkJCQkJCVdIRVJFIGYuZmllbGRpZCA9ID8iOw0KCQkJJHJvd3MgPSAkZGItPkdldEFsbCgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ3RhYmlkJ10sICRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KCQkJJHJvd2NvdW50ID0gY291bnQoJHJvd3MpOw0KCQkJDQoJCQlpZiAoICRyb3dzICYmICRyb3djb3VudCA+IDAgJiYgIWVtcHR5KCRyb3dzWzBdWyd0YWJpZCddKSApDQoJCQl7DQoJCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIFdIRVJFIHRhYmlkID0gPyBBTkQgZmllbGRpZCA9ID8iOw0KCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyd0YWJpZCddLCAkcGFyYW1zWydmaWVsZGlkJ10pKTsNCgkJCQlpZiAoICRyb3dzWzBdWyd0eXBlJ10gPT0gJ2ZpZWxkc2V0c3RhcnQnICkNCgkJCQl7DQoJCQkJCSRmaWVsZGVuZCA9ICR0aGlzLT5HZXRGaWVsZCgkcm93c1swXVsnbmFtZSddKTsNCgkJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ3RhYmlkJ10sICRmaWVsZGVuZFsnZmllbGRpZCddKSk7DQoJCQkJfQ0KCQkJCWVjaG8gMDsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgKHRhYmlkLCBmaWVsZGlkKSBWQUxVRVMgKD8sPykiOw0KCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyd0YWJpZCddLCAkcGFyYW1zWydmaWVsZGlkJ10pKTsNCgkJCQlpZiAoICRyb3dzWzBdWyd0eXBlJ10gPT0gJ2ZpZWxkc2V0c3RhcnQnICkNCgkJCQl7DQoJCQkJCSRmaWVsZGVuZCA9ICR0aGlzLT5HZXRGaWVsZCgkcm93c1swXVsnbmFtZSddKTsNCgkJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ3RhYmlkJ10sICRmaWVsZGVuZFsnZmllbGRpZCddKSk7DQoJCQkJfQ0KCQkJCWVjaG8gMTsNCgkJCX0NCgkJfQ0KCQlleGl0KCk7DQoJCWJyZWFrOw0KDQp9DQoNCg0KJHR5cGVsaXN0ID0gYXJyYXkoDQoJJHRoaXMtPkxhbmcoJ3RleHRmaWVsZCcpID0+ICd0ZXh0ZmllbGQnLA0KCSR0aGlzLT5MYW5nKCdwdWxsZG93bicpID0+ICdwdWxsZG93bicsDQoJJHRoaXMtPkxhbmcoJ2NoZWNrYm94JykgPT4gJ2NoZWNrYm94JywNCgkkdGhpcy0+TGFuZygncmFkaW9idXR0b25zJykgPT4gJ3JhZGlvYnV0dG9ucycsDQoJJHRoaXMtPkxhbmcoJ2RhdGVwaWNrZXInKSA9PiAnZGF0ZXBpY2tlcicsDQoJJHRoaXMtPkxhbmcoJ2RhdGV0aW1lcGlja2VyJykgPT4gJ2RhdGV0aW1lcGlja2VyJywNCgkkdGhpcy0+TGFuZygndGltZXBpY2tlcicpID0+ICd0aW1lcGlja2VyJywNCgkkdGhpcy0+TGFuZygndGV4dGFyZWEnKSA9PiAndGV4dGFyZWEnLA0KCSR0aGlzLT5MYW5nKCd3eXNpd3lnJykgPT4gJ3d5c2l3eWcnLA0KCSR0aGlzLT5MYW5nKCdjb2xvcnBpY2tlcicpID0+ICdjb2xvcnBpY2tlcicsDQoJJHRoaXMtPkxhbmcoJ3BhZ2VzZWxlY3QnKSA9PiAncGFnZXNlbGVjdCcsDQoJJHRoaXMtPkxhbmcoJ2ZpZWxkc2V0c3RhcnQnKSA9PiAnZmllbGRzZXRzdGFydCcsDQoJJHRoaXMtPkxhbmcoJ2J1dHRvbicpID0+ICdidXR0b24nDQopOw0KDQokZGlzYWJsZWQgPSAkZmllbGRbJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgPyAnIGRpc2FibGVkPSJkaXNhYmxlZCInIDogJyc7DQoNCiRjb3JlZnAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0ZpbGVQaWNrZXInKTsNCmlmKCAkY29yZWZwICkNCnsNCgkkY29yZWZwX25hbWUgPSAkY29yZWZwLT5HZXRGcmllbmRseU5hbWUoKTsNCgkkdHlwZWxpc3RbJGNvcmVmcF9uYW1lXSA9ICdjb3JlZmlsZXBpY2tlcic7DQp9DQoNCiRnYmZwID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdHQkZpbGVQaWNrZXInKTsNCmlmKCAkZ2JmcCApDQp7DQoJJGdiZnBfbmFtZSA9ICRnYmZwLT5HZXRGcmllbmRseU5hbWUoKTsNCgkkdHlwZWxpc3RbJGdiZnBfbmFtZV0gPSAnZ2JmaWxlcGlja2VyJzsNCn0NCg0KJGptZnAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0pNRmlsZVBpY2tlcicpOw0KaWYoICRqbWZwICkNCnsNCgkkam1mcF9uYW1lID0gJGptZnAtPkdldEZyaWVuZGx5TmFtZSgpOw0KCSR0eXBlbGlzdFskam1mcF9uYW1lXSA9ICdqbWZpbGVwaWNrZXInOw0KfQ0KDQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X25hbWUnLCBsYW5nKCduYW1lJykpOw0KJHNtYXJ0eS0+YXNzaWduKCduYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJGZpZWxkWyduYW1lJ10sIDQwICkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90eXBlJywgbGFuZygndHlwZScpKTsNCiRzbWFydHktPmFzc2lnbigndHlwZScsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3R5cGUnIC4gKCRkaXNhYmxlZCA/ICdfJyA6ICcnKSwgJHR5cGVsaXN0LCAtMSwgJGZpZWxkWyd0eXBlJ10sICdpZD0iZmllbGR0eXBlIicgLiAkZGlzYWJsZWQpIC4gKCRkaXNhYmxlZCA/ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd0eXBlJywgJGZpZWxkWyd0eXBlJ10pIDogJycpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbWF4bGVuZ3RoJywgJHRoaXMtPkxhbmcoJ21heGxlbmd0aCcpKTsNCiRzbWFydHktPmFzc2lnbignbWF4bGVuZ3RoJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtYXhsZW5ndGgnLCAkZmllbGRbJ3R5cGUnXSA9PSAndGV4dGZpZWxkJyA/ICRmaWVsZFsncHJvcGVydGllcyddIDogJycsIDUsIDUpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcHJvcGVydGllcycsICR0aGlzLT5MYW5nKCdwcm9wZXJ0aWVzJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdoZWxwX3Byb3BlcnRpZXMnLCAkdGhpcy0+TGFuZygncHJvcGVydGllc19oZWxwMScpKTsNCiRzbWFydHktPmFzc2lnbigncHJvcGVydGllcycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShGQUxTRSwgJGlkLCAkZmllbGRbJ3R5cGUnXSA9PSAncHVsbGRvd24nIHx8ICRmaWVsZFsndHlwZSddID09ICdyYWRpb2J1dHRvbnMnID8gJGZpZWxkWydwcm9wZXJ0aWVzJ10gOiAnJywgJ3Byb3BlcnRpZXMnLCAnJywgJycgLCAnJyAsICcnLCAyMCwgNiwgJycsICcnLCAnc3R5bGU9IndpZHRoOjIwZW07IGhlaWdodDo2ZW07IicpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcGFyc2VzbWFydHknLCAkdGhpcy0+TGFuZygncGFyc2VzbWFydHknKSk7DQokc21hcnR5LT5hc3NpZ24oJ3BhcnNlc21hcnR5JywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAncGFyc2VzbWFydHknLCAnMScsICRmaWVsZFsndHlwZSddID09ICd0ZXh0YXJlYScgfHwgJGZpZWxkWyd0eXBlJ10gPT0gJ3d5c2l3eWcnID8gJGZpZWxkWydwcm9wZXJ0aWVzJ10gOiAnJykpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9oZWxwJywgbGFuZygnaGVscCcpKTsNCiRzbWFydHktPmFzc2lnbignaGVscCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaGVscCcsICRmaWVsZFsnaGVscCddLCA4MCApKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfY2xlYXJjYWNoZScsICR0aGlzLT5MYW5nKCdjbGVhcnN0eWxlc2hlZXRjYWNoZScpKTsNCiRzbWFydHktPmFzc2lnbignaGVscF9jbGVhcmNhY2hlJywgJHRoaXMtPkxhbmcoJ2NsZWFyc3R5bGVzaGVldGNhY2hlX2hlbHAnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2NsZWFyY2FjaGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdjbGVhcmNhY2hlJywgJzEnLCAkZmllbGRbJ2NsZWFyY2FjaGUnXSkpOw0KDQokZWRpdG9yc2xpc3QgPSBhcnJheSgpOw0KJGRpc2FibGVkID0gJyc7DQokZ3JvdXBvcHMgPSAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7DQokZ3JvdXBzID0gJGdyb3Vwb3BzLT5Mb2FkR3JvdXBzKCk7DQpmb3JlYWNoICgkZ3JvdXBzIGFzICRvbmVncm91cCkNCnsNCgkkZWRpdG9yc2xpc3RbbGFuZygnZ3JvdXAnKSAuICc6ICcgLiAkb25lZ3JvdXAtPm5hbWVdID0gJG9uZWdyb3VwLT5pZDsNCn0NCiRzZWxlY3RlZGVkaXRvcnMgPSBleHBsb2RlKCc7JywgJGZpZWxkWydlZGl0b3JzJ10pOw0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZWRpdG9ycycsIGxhbmcoJ2dyb3VwcGVybWlzc2lvbnMnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VkaXRvcnMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJ2VkaXRvcnNbXScsICRlZGl0b3JzbGlzdCwgJHNlbGVjdGVkZWRpdG9ycywgNCwgJGRpc2FibGVkKSk7DQoNCiRmaWVsZGlkID0gZW1wdHkoJHBhcmFtc1snZmllbGRpZCddKSA/IC0xIDogJHBhcmFtc1snZmllbGRpZCddOw0KJHRhYnMgPSAkdGhpcy0+R2V0VGFicygkZmllbGRpZCk7DQppZiAoICRwYXJhbXNbJ21vZGUnXSA9PSAnYWRkJyApICR0YWJzWzBdWydjaGVja2VkJ10gPSAxOyAvLyBzZWxlY3QgZmlyc3QgdGFiIGJ5IGRlZmF1bHQNCiR0YWJzbGlzdCA9IGFycmF5KCk7DQpmb3JlYWNoICgkdGFicyBhcyAkdGFiKQ0Kew0KCSR0YWJzbGlzdFtdID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAndGFic1snIC4gJHRhYlsndGFiaWQnXSAuICddJywgJzEnLCAoJHRhYlsnY2hlY2tlZCddICE9PSBOVUxMKSkgLiAkdGFiWyduYW1lJ107DQp9DQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90YWJzJywgJHRoaXMtPkxhbmcoJ3Nob3dvbnRhYicpKTsNCiRzbWFydHktPmFzc2lnbigndGFicycsICR0YWJzbGlzdCk7DQoNCiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdGJ1dHRvbicsIGxhbmcoJ3N1Ym1pdCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOw0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRmaWVsZGRlZi50cGwnKTsNCg0KIw0KIyBFT0YNCiMNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.edittab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpICkNCnsNCgllY2hvICR0aGlzLT5TaG93RXJyb3JzKGxhbmcoJ25lZWRwZXJtaXNzaW9udG8nLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpKTsNCglyZXR1cm47DQp9DQoNCmlmICggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkNCnsNCgkkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCn0NCg0KaWYoICFpc3NldCgkcGFyYW1zWydtb2RlJ10pICkNCnsNCgkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcicgPT4gbGFuZygnbWlzc2luZ3BhcmFtcycpLCAnYWN0aXZlX3RhYicgPT4gJ3RhYnMnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCXJldHVybjsNCn0NCg0KJGRiID0gJHRoaXMtPkdldERCKCk7DQoNCnN3aXRjaCAoJHBhcmFtc1snbW9kZSddKQ0Kew0KCWNhc2UgJ2FkZCc6DQoJCWlmKCAkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PSAnUE9TVCcgKQ0KCQl7DQoJCQkvLyBjaGVjayBpZiBuYW1lIGlzIGVtcHR5DQoJCQlpZiAoIGVtcHR5KCRwYXJhbXNbJ25hbWUnXSkgKQ0KCQkJew0KCQkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJyA9PiBsYW5nKCdtaXNzaW5ncGFyYW1zJykpOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdlZGl0dGFiJywgJycsICRwYXJhbXMpOw0KCQkJCXJldHVybjsNCgkJCX0NCgkJCS8vIGNoZWNrIGlmIG5hbWUgYWxyZWFkeSBleGlzdHMNCgkJCVdoaWxlICggJHRoaXMtPkdldFRhYigkcGFyYW1zWyduYW1lJ10pICE9PSBGQUxTRSApDQoJCQl7DQoJCQkJaWYgKCBpc19udW1lcmljKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSkgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1snbmFtZSddID0gaXNfbnVtZXJpYyhzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMikpID8gc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTIpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0yKSArIDEpIDogc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTEpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSArIDEpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkcGFyYW1zWyduYW1lJ10gLj0gIjEiOw0KCQkJCX0NCgkJCX0NCgkJCS8vIGZpbmQgbWF4aW11bSB2YWx1ZSBmb3Igc29ydG9yZGVyDQoJCQkkcXVlcnkgPSAiU0VMRUNUIE1BWChzb3J0b3JkZXIpIEFTIG1heHNvcnRvcmRlciBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiIjsNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJCWlmKCAkcmVzdWx0ICkNCgkJCXsNCgkJCQkkdGFiID0gJHJlc3VsdC0+RmV0Y2hSb3coKTsNCgkJCQkkZWRpdG9ycyA9IGVtcHR5KCRwYXJhbXNbJ2VkaXRvcnMnXSkgPyAnJyA6IGltcGxvZGUoJzsnLCAkcGFyYW1zWydlZGl0b3JzJ10pOw0KCQkJCQ0KCQkJCS8vIHNhdmUgdGFiDQoJCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiIChuYW1lLCBzb3J0b3JkZXIsIGVkaXRvcnMpIFZBTFVFUyAoPyw/LD8pIjsNCgkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbmFtZSddLCAkdGFiWydtYXhzb3J0b3JkZXInXSArIDEsICRlZGl0b3JzKSk7DQoJCQl9DQoJCQlpZiggaXNzZXQoJHJlc3VsdCkgJiYgJHJlc3VsdCApDQoJCQl7DQoJCQkJLy8gUHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQoJCQkJYXVkaXQoJGRiLT5JbnNlcnRfSUQoKSwgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBUYWInLCAnQWRkZWQ6ICcgLiAkcGFyYW1zWyduYW1lJ10pOw0KCQkJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ3RhYmFkZGVkJywgJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InPT4gJ3VwZGF0ZWZhaWxlZCcsICdhY3RpdmVfdGFiJyA9PiAndGFicycpOw0KCQkJfQ0KDQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQl9DQoJCSR0YWIgPSBhcnJheSgnbmFtZScgPT4gJycsICdlZGl0b3JzJyA9PiAnJyk7DQoJCSRzbWFydHktPmFzc2lnbigndGl0bGUnLGxhbmcoJ2FkZCcpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICdhZGQnKSk7DQoJCWJyZWFrOw0KDQoNCgljYXNlICdkZWxldGUnOg0KCQlpZiggIWlzX251bWVyaWMoJHBhcmFtc1sndGFiaWQnXSkgKQ0KCQl7DQoJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcicgPT4gbGFuZygnbWlzc2luZ3BhcmFtcycpLCAnYWN0aXZlX3RhYicgPT4gJ3RhYnMnKTsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCQlyZXR1cm47DQoJCX0NCgkJDQoJCSR0YWIgPSAkdGhpcy0+R2V0VGFiKCRwYXJhbXNbJ3RhYmlkJ10pOw0KCQlpZiggJHRhYiA9PT0gRkFMU0UgKQ0KCQl7DQoJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcic9PiAndXBkYXRlZmFpbGVkJywgJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQl9DQoJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWIgV0hFUkUgdGFiaWQgPSA/IjsNCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1sndGFiaWQnXSkpOw0KCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgV0hFUkUgdGFiaWQgPSA/IjsNCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1sndGFiaWQnXSkpOw0KCQkvLyBQdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkJYXVkaXQoJHBhcmFtc1sndGFiaWQnXSwgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBUYWInLCAnRGVsZXRlZDogJyAuICR0YWJbJ25hbWUnXSk7DQoNCgkJLy8gdXBkYXRlIHRoZSBzb3J0b3JkZXINCgkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWIgU0VUIHNvcnRvcmRlciA9IHNvcnRvcmRlciAtIDEgV0hFUkUgc29ydG9yZGVyID4gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGFiWydzb3J0b3JkZXInXSkpOw0KDQoJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ3RhYnVwZGF0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ3RhYnMnKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJYnJlYWs7DQoNCg0KCWNhc2UgJ2VkaXQnOg0KCQlpZiggIWlzX251bWVyaWMoJHBhcmFtc1sndGFiaWQnXSkgKQ0KCQl7DQoJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcicgPT4gbGFuZygnbWlzc2luZ3BhcmFtcycpLCAnYWN0aXZlX3RhYicgPT4gJ3RhYnMnKTsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkkdGFiID0gJHRoaXMtPkdldFRhYigkcGFyYW1zWyd0YWJpZCddKTsNCg0KCQlpZiggJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT0gJ1BPU1QnICkNCgkJew0KCQkJLy8gY2hlY2sgaWYgbmFtZSBpcyBlbXB0eQ0KCQkJaWYgKCBlbXB0eSgkcGFyYW1zWyduYW1lJ10pICkNCgkJCXsNCgkJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcicgPT4gbGFuZygnbWlzc2luZ3BhcmFtcycpKTsNCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdHRhYicsICcnLCAkcGFyYW1zKTsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCQkvLyBjaGVjayBpZiBuYW1lIGFscmVhZHkgZXhpc3RzDQoJCQkkY2hlY2t0YWJuYW1lID0gJHRoaXMtPkdldFRhYigkcGFyYW1zWyduYW1lJ10pOw0KCQkJV2hpbGUgKCAkY2hlY2t0YWJuYW1lICE9PSBGQUxTRSAmJiAkcGFyYW1zWyd0YWJpZCddICE9ICRjaGVja3RhYm5hbWVbJ3RhYmlkJ10gKQ0KCQkJew0KCQkJCWlmICggaXNfbnVtZXJpYyhzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMSkpICkNCgkJCQl7DQoJCQkJCSRwYXJhbXNbJ25hbWUnXSA9IGlzX251bWVyaWMoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTIpKSA/IHN1YnN0cigkcGFyYW1zWyduYW1lJ10sMCAsIC0yKSAuIChzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMikgKyAxKSA6IHN1YnN0cigkcGFyYW1zWyduYW1lJ10sMCAsIC0xKSAuIChzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMSkgKyAxKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1snbmFtZSddIC49ICIxIjsNCgkJCQl9DQoJCQkJJGNoZWNrdGFibmFtZSA9ICR0aGlzLT5HZXRUYWIoJHBhcmFtc1snbmFtZSddKTsNCgkJCX0NCgkJCSRlZGl0b3JzID0gZW1wdHkoJHBhcmFtc1snZWRpdG9ycyddKSA/ICcnIDogaW1wbG9kZSgnOycsICRwYXJhbXNbJ2VkaXRvcnMnXSk7DQoNCgkJCS8vIHNhdmUgdGFiDQoJCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYiBTRVQgbmFtZSA9ID8sIGVkaXRvcnMgPSA/IFdIRVJFIHRhYmlkID0gPyI7DQoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbmFtZSddLCAkZWRpdG9ycywgJHBhcmFtc1sndGFiaWQnXSkpOw0KDQoJCQkvLyBQdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkJCWF1ZGl0KCRwYXJhbXNbJ3RhYmlkJ10sICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVGFiJywgJ0VkaXRlZDogJyAuICRwYXJhbXNbJ25hbWUnXSk7DQoNCgkJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ3RhYnVwZGF0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ3RhYnMnKTsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCX0NCg0KCQkkc21hcnR5LT5hc3NpZ24oJ3RpdGxlJyxsYW5nKCdlZGl0JykpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd0YWJpZCcsICRwYXJhbXNbJ3RhYmlkJ10pIC4NCgkJCQkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJ2VkaXQnKSk7DQoJCWJyZWFrOw0KDQoNCgljYXNlICdtb3ZldXAnOg0KCWNhc2UgJ21vdmVkb3duJzoNCgkJJHRhYiA9ICR0aGlzLT5HZXRUYWIoJHBhcmFtc1sndGFiaWQnXSk7DQoJCWlmKCAkdGFiID09PSBGQUxTRSApCQkgDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJz0+ICd1cGRhdGVmYWlsZWQnLCAnYWN0aXZlX3RhYicgPT4gJ3RhYnMnKTsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCX0NCg0KCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYiBTRVQgc29ydG9yZGVyID0gIiAuICgkcGFyYW1zWydtb2RlJ10gPT0gJ21vdmV1cCcgPyAnc29ydG9yZGVyICsgMScgOiAnc29ydG9yZGVyIC0gMScpIC4gIiBXSEVSRSBzb3J0b3JkZXIgPSA/IjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ21vZGUnXSA9PSAnbW92ZXVwJyA/ICR0YWJbJ3NvcnRvcmRlciddIC0gMSA6ICR0YWJbJ3NvcnRvcmRlciddICsgMSkpOw0KDQoJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiIFNFVCBzb3J0b3JkZXIgPSAiIC4gKCRwYXJhbXNbJ21vZGUnXSA9PSAnbW92ZXVwJyA/ICdzb3J0b3JkZXIgLSAxJyA6ICdzb3J0b3JkZXIgKyAxJykgLiAiIFdIRVJFIHRhYmlkID0gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyd0YWJpZCddKSk7DQoNCgkJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGFicycpOw0KCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQlicmVhazsNCg0KCQkNCgljYXNlICdzb3J0JzoNCgkJaWYgKCAhZW1wdHkoJHBhcmFtc1snc29ydHNlcSddKSApDQoJCXsNCgkJCSRzb3J0c2VxID0gc3RyX3JlcGxhY2UoJ2knLCAnJywgJHBhcmFtc1snc29ydHNlcSddKTsNCgkJCSRzb3J0ZW50cmllcyA9IGV4cGxvZGUoJywnLCAkc29ydHNlcSk7DQoJCQlmb3JlYWNoICggJHNvcnRlbnRyaWVzIGFzICRrZXkgPT4gJHRhYmlkICkNCgkJCXsNCgkJCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYiBTRVQgc29ydG9yZGVyID0gPyBXSEVSRSB0YWJpZCA9ID8iOw0KCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRrZXkgKyAxLCAkdGFiaWQpKTsNCgkJCX0NCgkJfQ0KCQlleGl0KCk7DQoJCWJyZWFrOw0KDQp9DQoNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbmFtZScsIGxhbmcoJ25hbWUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ25hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkdGFiWyduYW1lJ10sIDQwICkpOw0KDQokZWRpdG9yc2xpc3QgPSBhcnJheSgpOw0KJGRpc2FibGVkID0gJyc7DQokZ3JvdXBvcHMgPSAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7DQokZ3JvdXBzID0gJGdyb3Vwb3BzLT5Mb2FkR3JvdXBzKCk7DQpmb3JlYWNoICgkZ3JvdXBzIGFzICRvbmVncm91cCkNCnsNCgkvL2lmKCAkb25lZ3JvdXAtPmlkID09IDEgKSBjb250aW51ZTsNCgkkZWRpdG9yc2xpc3RbbGFuZygnZ3JvdXAnKSAuICc6ICcgLiAkb25lZ3JvdXAtPm5hbWVdID0gJG9uZWdyb3VwLT5pZDsNCn0NCiRzZWxlY3RlZGVkaXRvcnMgPSBleHBsb2RlKCc7JywgJHRhYlsnZWRpdG9ycyddKTsNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2VkaXRvcnMnLCBsYW5nKCdncm91cHBlcm1pc3Npb25zJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdlZGl0b3JzJywgJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsICdlZGl0b3JzW10nLCAkZWRpdG9yc2xpc3QsICRzZWxlY3RlZGVkaXRvcnMsIDQsICRkaXNhYmxlZCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXRidXR0b24nLCBsYW5nKCdzdWJtaXQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dGFiLnRwbCcpOw0KDQojDQojIEVPRg0KIw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.save_general.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScpICkgJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCk7DQoNCiR0YWJpZCA9ICRwYXJhbXNbJ3RhYmlkJ107DQovLyBHZXQgdGhlIGZpZWxkcyB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVkaXQuDQokZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygkdGFiaWQpOw0KJGNsZWFyY2FjaGUgPSAwOw0KDQpmb3JlYWNoKCAkZmllbGRzIGFzICRrZXkgPT4gJGZsZCApDQp7DQoJJHZhbHVlID0gJGZsZFsndmFsdWUnXTsNCgkkbmV3dmFsdWUgPSBpc3NldCgkcGFyYW1zWydmaWVsZCddWyR0YWJpZF1bJGtleV0pID8gJHBhcmFtc1snZmllbGQnXVskdGFiaWRdWyRrZXldIDogMDsNCgkJDQoJLy8gU2VudCBldmVudCBvbmx5IHdoZW4gdmFsdWUgaGFzIGNoYW5nZWQuDQoJaWYgKCAkbmV3dmFsdWUgIT0gJHZhbHVlICkNCgl7DQoJCWlmICggJGZsZFsndHlwZSddICE9ICdidXR0b24nICkNCgkJew0KCQkJLy8gU2F2ZSBmaWVsZCB2YWx1ZQ0KCQkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgdmFsdWU9PyBXSEVSRSBmaWVsZGlkPT8iOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuZXd2YWx1ZSwgJGtleSkpOw0KCQl9DQoNCgkJJHRoaXMtPlNlbmRFdmVudCgnT25TZXR0aW5nQ2hhbmdlJywgYXJyYXkoDQoJCQkJCSdmaWVsZGlkJyA9PiAkZmxkWydmaWVsZGlkJ10sDQoJCQkJCSduYW1lJyA9PiAkZmxkWyduYW1lJ10sDQoJCQkJCSdhbGlhcycgPT4gc3RyX3JlcGxhY2UoJ19fJywgJ18nLCBzdHJfcmVwbGFjZSgnLScsICdfJywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkZmxkWyduYW1lJ10pKSksDQoJCQkJCSd2YWx1ZScgPT4gJG5ld3ZhbHVlLA0KCQkJCQknY2xlYXJjYWNoZScgPT4gJGZsZFsnY2xlYXJjYWNoZSddDQoJCSkpOw0KCQkkY2xlYXJjYWNoZSA9ICRjbGVhcmNhY2hlIHx8ICRmbGRbJ2NsZWFyY2FjaGUnXTsNCgl9DQp9DQoNCi8vIENsZWFyIHRoZSBzdHlsZXNoZWV0IGNhY2hlIGlmIHJlcXVpcmVkIGJ5IG9uZSBvZiB0aGUgZmllbGRzIGFuZCBvbmx5IGlmIHRoYXQgZmllbGQgaGFzIGJlZW4gY2hhbmdlZA0KaWYgKCAkY2xlYXJjYWNoZSApICR0aGlzLT5DbGVhclN0eWxlc2hlZXRDYWNoZSgpOw0KDQovLyBTaG93IHNhdmVkIHBhcmFtZXRlcnMgaW4gZGVidWcgbW9kZQ0KZGVidWdfZGlzcGxheSgkcGFyYW1zKTsNCg0KLy8gUHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQphdWRpdCgnJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBHZW5lcmFsIHRhYicsICdTYXZlZCcpOw0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnbW9kdWxlX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCdzZXR0aW5nc3NhdmVkJyksICdhY3RpdmVfdGFiJyA9PiAndGFiJyAuICR0YWJpZCkpOw0KDQojDQojIEVPRg0KIw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.save_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpKQ0KICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsNCg0KLy8gQ2hlY2sgZm9yIHhtbCBpbXBvcnQNCiR4bWxmaWVsZCA9ICRpZCAuICd4bWxmaWxlJzsNCmlmICghZW1wdHkoJF9GSUxFU1skeG1sZmllbGRdWyduYW1lJ10pKQ0Kew0KICBpZiAoJF9GSUxFU1skeG1sZmllbGRdWyd0eXBlJ10gPT0gJ3RleHQveG1sJykNCiAgew0KICAgICR4bWwgPSBmaWxlX2dldF9jb250ZW50cygkX0ZJTEVTWyR4bWxmaWVsZF1bJ3RtcF9uYW1lJ10pOw0KICAgICRkYXRhID0gbmV3IFNpbXBsZVhNTEVsZW1lbnQoJHhtbCk7DQogICAgJGRiID0gY21zbXMoKS0+R2V0REIoKTsNCg0KICAgIC8vZmllbGRzDQogICAgJHNxbCA9ICdTRUxFQ1QgZmllbGRpZCwgbmFtZSwgdHlwZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2N1c3RvbWdzIE9SREVSIEJZIGZpZWxkaWQnOw0KICAgICRyZXN1bHQgPSAkZGItPkdldEFsbCgkc3FsKTsNCiAgICBpZiAoaXNfYXJyYXkoJHJlc3VsdCkpDQogICAgew0KICAgICAgJGN1cmZsZHMgPSBhcnJheSgpOw0KICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KQ0KICAgICAgew0KICAgICAgICAkY3VyZmxkc1skcm93WyduYW1lJ11dID0gYXJyYXkoJ2ZpZWxkaWQnID0+ICRyb3dbJ2ZpZWxkaWQnXSwgJ3R5cGUnID0+ICRyb3dbJ3R5cGUnXSk7DQogICAgICB9DQogICAgfQ0KICAgIGZvcmVhY2ggKCRkYXRhLT5maWVsZHMtPmZpZWxkIGFzICRmaWVsZCkNCiAgICB7DQogICAgICAkZmllbGRuYW1lID0gKHN0cmluZykgJGZpZWxkLT5uYW1lOw0KICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJGZpZWxkbmFtZSwgJGN1cmZsZHMpKQ0KICAgICAgew0KICAgICAgICAkc3FsID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9jdXN0b21ncyBTRVQgDQogICAgICAgICAgICAgIG5hbWUgPSA/LCBoZWxwID0gPywgdHlwZSA9ID8sIHByb3BlcnRpZXMgPSA/LCBjbGVhcmNhY2hlID0gPywgc29ydG9yZGVyID0gPywgdmFsdWUgPSA/DQogICAgICAgICAgICBXSEVSRSBmaWVsZGlkID0gPyc7DQogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPm5hbWUsDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPmhlbHAsDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPnR5cGUsDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPnByb3BlcnRpZXMsDQogICAgICAgICAgICAoaW50KSAkZmllbGQtPmNsZWFyY2FjaGUsDQogICAgICAgICAgICAoaW50KSAkZmllbGQtPnNvcnRvcmRlciwNCiAgICAgICAgICAgIChzdHJpbmcpICRmaWVsZC0+dmFsdWUsDQogICAgICAgICAgICAkY3VyZmxkc1skZmllbGRuYW1lXVsnZmllbGRpZCddDQogICAgICAgICkpOw0KICAgICAgICAkZmllbGRyZWZbKGludCkgJGZpZWxkLT5maWVsZGlkXSA9ICRjdXJmbGRzWyRmaWVsZG5hbWVdWydmaWVsZGlkJ107DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY3VzdG9tZ3MgDQogICAgICAgICAgICAgIChuYW1lLCBoZWxwLCB0eXBlLCBwcm9wZXJ0aWVzLCBjbGVhcmNhY2hlLCBzb3J0b3JkZXIsIHZhbHVlKQ0KICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/KSc7DQogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPm5hbWUsDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPmhlbHAsDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPnR5cGUsDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPnByb3BlcnRpZXMsDQogICAgICAgICAgICAoaW50KSAkZmllbGQtPmNsZWFyY2FjaGUsDQogICAgICAgICAgICAoaW50KSAkZmllbGQtPnNvcnRvcmRlciwNCiAgICAgICAgICAgIChzdHJpbmcpICRmaWVsZC0+dmFsdWUNCiAgICAgICAgKSk7DQogICAgICAgICRmaWVsZHJlZlsoaW50KSAkZmllbGQtPmZpZWxkaWRdID0gJGRiLT5JbnNlcnRfSUQoKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAvLyB0YWJzDQogICAgJHNxbCA9ICdTRUxFQ1QgdGFiaWQsIG5hbWUsIHNvcnRvcmRlciBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2N1c3RvbWdzX3RhYiBPUkRFUiBCWSBzb3J0b3JkZXInOw0KICAgICRyZXN1bHQgPSAkZGItPkdldEFsbCgkc3FsKTsNCiAgICBpZiAoaXNfYXJyYXkoJHJlc3VsdCkpDQogICAgew0KICAgICAgJGN1cnRhYnMgPSBhcnJheSgpOw0KICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KQ0KICAgICAgew0KICAgICAgICAkY3VydGFic1skcm93WyduYW1lJ11dID0gJHJvd1sndGFiaWQnXTsNCiAgICAgIH0NCiAgICAgICRzb3J0bWF4ID0gJHJvd1snc29ydG9yZGVyJ10gKyAxOw0KICAgIH0NCiAgICBmb3JlYWNoICgkZGF0YS0+dGFicy0+dGFiIGFzICR0YWIpDQogICAgew0KICAgICAgJHRhYm5hbWUgPSAoc3RyaW5nKSAkdGFiLT5uYW1lOw0KICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJHRhYm5hbWUsICRjdXJ0YWJzKSkNCiAgICAgIHsNCiAgICAgICAgLy8gZG9uJ3QgdXBkYXRlIHRoZSBzb3J0b3JkZXIgb2YgdGFicw0KICAgICAgICAkdGFicmVmWyhpbnQpICR0YWItPnRhYmlkXSA9ICRjdXJ0YWJzWyR0YWJuYW1lXTsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9jdXN0b21nc190YWIgDQogICAgICAgICAgICAgIChuYW1lLCBzb3J0b3JkZXIpDQogICAgICAgICAgICBWQUxVRVMgKD8sPyknOw0KICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KA0KICAgICAgICAgICAgKHN0cmluZykgJHRhYi0+bmFtZSwNCiAgICAgICAgICAgICRzb3J0bWF4KysNCiAgICAgICAgKSk7DQogICAgICAgICR0YWJyZWZbKGludCkgJHRhYi0+dGFiaWRdID0gJGRiLT5JbnNlcnRfSUQoKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAvLyB0YWJmaWVsZHMNCiAgICBmb3JlYWNoICgkZGF0YS0+dGFiZmllbGRzLT50YWJmaWVsZCBhcyAkdGFiZmllbGQpDQogICAgew0KICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9jdXN0b21nc190YWJmaWVsZA0KICAgICAgICAgICAgKHRhYmlkLCBmaWVsZGlkKQ0KICAgICAgICAgIFZBTFVFUyAoPyw/KSc7DQogICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KA0KICAgICAgICAgICR0YWJyZWZbKGludCkgJHRhYmZpZWxkLT50YWJpZF0sDQogICAgICAgICAgJGZpZWxkcmVmWyhpbnQpICR0YWJmaWVsZC0+ZmllbGRpZF0NCiAgICAgICkpOw0KICAgIH0NCiAgfQ0KfQ0KCQkJCQ0KDQovLyBTYXZlIFBhcmFtZXRlcnMgT3B0aW9ucyBUYWINCmlmIChpc3NldCgkeG1sKSAmJiAhZW1wdHkoKHN0cmluZykgJGRhdGEtPmN1c3RvbV9tb2R1bGVuYW1lKSAmJiBpbl9hcnJheSgoc3RyaW5nKSAkZGF0YS0+YWRtaW5fc2VjdGlvbiwgYXJyYXkoJ21haW4nLCAnY29udGVudCcsICdsYXlvdXQnLCAndXNlcnNncm91cHMnLCAnZXh0ZW5zaW9ucycsICdhZG1pbicsICdteXByZWZzJykpKQ0Kew0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnLCAoc3RyaW5nKSAkZGF0YS0+Y3VzdG9tX21vZHVsZW5hbWUpOw0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fc2VjdGlvbicsIChzdHJpbmcpICRkYXRhLT5hZG1pbl9zZWN0aW9uKTsNCn0NCmVsc2UNCnsNCiAgaWYgKGlzc2V0KCRwYXJhbXNbJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJ10pKQ0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbnB1dF9jdXN0b21fbW9kdWxlbmFtZScsICRwYXJhbXNbJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJ10pOw0KICBpZiAoaXNzZXQoJHBhcmFtc1snaW5wdXRfYWRtaW5fc2VjdGlvbiddKSkNCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fc2VjdGlvbicsICRwYXJhbXNbJ2lucHV0X2FkbWluX3NlY3Rpb24nXSk7DQp9DQoNCi8vIFRvdWNoIGNhY2hlIGZpbGVzDQpmb3JlYWNoICggZ2xvYihjbXNfam9pbl9wYXRoKFRNUF9DQUNIRV9MT0NBVElPTiwgImNhY2hlKi5jbXMiKSkgYXMgJGZpbGVuYW1lICkgdG91Y2goICRmaWxlbmFtZSwgdGltZSgpIC0gMzYwMDAwICk7DQoNCg0KLy8gU2hvdyBzYXZlZCBwYXJhbWV0ZXJzIGluIGRlYnVnIG1vZGUNCmRlYnVnX2Rpc3BsYXkoJHBhcmFtcyk7DQoNCi8vIFB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KYXVkaXQoJycsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gT3B0aW9ucyB0YWInLCAnU2F2ZWQnKTsNCg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnc2V0dGluZ3NzYXZlZCcpLCAnYWN0aXZlX3RhYicgPT4gJ29wdGlvbnMnKSk7DQoNCiMNCiMgRU9GDQojDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.xml_export.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpICkgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7DQoNCiR4bWwgPSBuZXcgU2ltcGxlWE1MRWxlbWVudCgnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48ZGF0YS8+Jyk7DQokeG1sLT5hZGRDaGlsZCgnbW9kdWxlJywgJHRoaXMtPkdldE5hbWUoKSk7DQokeG1sLT5hZGRDaGlsZCgndmVyc2lvbicsICR0aGlzLT5HZXRWZXJzaW9uKCkpOw0KJHhtbC0+YWRkQ2hpbGQoJ2N1c3RvbV9tb2R1bGVuYW1lJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJykpOw0KJHhtbC0+YWRkQ2hpbGQoJ2FkbWluX3NlY3Rpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5fc2VjdGlvbicsICdleHRlbnNpb25zJykpOw0KZ2xvYmFsICRDTVNfVkVSU0lPTjsNCiR4bWwtPmFkZENoaWxkKCdjbXN2ZXJzaW9uJywgJENNU19WRVJTSU9OKTsNCiR4bWwtPmFkZENoaWxkKCdleHBvcnRkYXRlJywgZGF0ZSgnWS1tLWQgSDppOnMnKSk7DQoNCiRkYiA9IGNtc21zKCktPkdldERCKCk7DQoNCiRmaWVsZHMgPSAkeG1sLT5hZGRDaGlsZCgnZmllbGRzJyk7DQokc3FsID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY3VzdG9tZ3MgT1JERVIgQlkgc29ydG9yZGVyJzsNCiRyZXN1bHQgPSAkZGItPkdldEFsbCgkc3FsKTsNCmlmIChpc19hcnJheSgkcmVzdWx0KSkNCnsNCiAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KQ0KICB7DQogICAgJGZpZWxkID0gJGZpZWxkcy0+YWRkQ2hpbGQoJ2ZpZWxkJyk7DQogICAgZm9yZWFjaCAoJHJvdyBhcyAka2V5ID0+ICR2YWwpDQogICAgew0KICAgICAgJGZpZWxkLT57JGtleX0gPSAkdmFsOw0KICAgIH0NCiAgfQ0KfQ0KDQokdGFicyA9ICR4bWwtPmFkZENoaWxkKCd0YWJzJyk7DQokc3FsID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY3VzdG9tZ3NfdGFiIE9SREVSIEJZIHNvcnRvcmRlcic7DQokcmVzdWx0ID0gJGRiLT5HZXRBbGwoJHNxbCk7DQppZiAoaXNfYXJyYXkoJHJlc3VsdCkpDQp7DQogIGZvcmVhY2ggKCRyZXN1bHQgYXMgJHJvdykNCiAgew0KICAgICR0YWIgPSAkdGFicy0+YWRkQ2hpbGQoJ3RhYicpOw0KICAgIGZvcmVhY2ggKCRyb3cgYXMgJGtleSA9PiAkdmFsKQ0KICAgIHsNCiAgICAgICR0YWItPnska2V5fSA9ICR2YWw7DQogICAgfQ0KICB9DQp9DQoNCiR0YWJmaWVsZHMgPSAkeG1sLT5hZGRDaGlsZCgndGFiZmllbGRzJyk7DQokc3FsID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgT1JERVIgQlkgdGFiaWQnOw0KJHJlc3VsdCA9ICRkYi0+R2V0QWxsKCRzcWwpOw0KaWYgKGlzX2FycmF5KCRyZXN1bHQpKQ0Kew0KICBmb3JlYWNoICgkcmVzdWx0IGFzICRyb3cpDQogIHsNCiAgICAkdGFiZmllbGQgPSAkdGFiZmllbGRzLT5hZGRDaGlsZCgndGFiZmllbGQnKTsNCiAgICBmb3JlYWNoICgkcm93IGFzICRrZXkgPT4gJHZhbCkNCiAgICB7DQogICAgICAkdGFiZmllbGQtPnska2V5fSA9ICR2YWw7DQogICAgfQ0KICB9DQp9DQoNCmhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsNCmhlYWRlcignRXhwaXJlczogMCcpOw0KaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsNCmhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZScsZmFsc2UpOw0KaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBFeHBvcnQnKTsNCmhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOw0KaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2ZvcmNlLWRvd25sb2FkJyk7DQpoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPUN1c3RvbUdsb2JhbFNldHRpbmdzX2V4cG9ydC54bWwnKTsNCmhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L3htbDsgY2hhcnNldD11dGYtOCcpOyANCg0KZWNobyAkeG1sLT5hc1hNTCgpOw0KDQovLyR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfbWVzc2FnZScgPT4gJHRoaXMtPkxhbmcoJ3htbGNyZWF0ZWQnKSwgJ2FjdGl2ZV90YWInID0+ICdvcHRpb25zJykpOw0KDQojDQojIEVPRg0KIw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAzLjM8L3N0cm9uZz4gLSA2IE9jdG9iZXIgMjAxOQ0KCTx1bD4NCgk8bGk+Rml4ZXMgZm9yIENNU01TIDIuMzwvbGk+DQoJPGxpPlVwZGF0ZWQgVGFibGVEbkQgcGx1Z2luIDAuOS4xPC9saT4NCgk8bGk+Q29kZSBjbGVhbiB1cDwvbGk+DQoJPGxpPkJ1ZyAjMTE3NjA6IGZpeGVkIC0gRGVsZXRpbmcgRmllbGRncm91cCBvbmx5IGRlbGV0ZXMgRmllbGRncm91cCBTdGFydDwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDMuMjwvc3Ryb25nPiAtIDkgT2N0b2JlciAyMDE3DQoJPHVsPg0KCTxsaT5FeHBvcnQvaW1wb3J0IHNldHRpbmdzIHZpYSBYTUwgZmlsZSAoRlIgIzgzNDEpIFNwb25zb3JlZCBieSBWaXNpb25wYXJrPC9saT4NCgk8bGk+Rml4ZWQ6IFNob3cgdGFiY29udGVudCBvZiBUYWJzIHdoZW4gdGhlcmUgYXJlIG5vIGZpZWxkIGRlZmluaXRpb25zPC9saT4NCgk8bGk+Rml4ZWQ6IERlbGV0ZSB0YWJmaWVsZCByZWZlcmVuY2UgYWZ0ZXIgYSBmaWVsZCBkZWZpbml0aW9uIGhhcyBiZWVuIGRlbGV0ZWQ8L2xpPg0KCTxsaT5GaXhlZDogRHJvcCB0YWIgcmVsYXRlZCB0YWJsZXMgZnJvbSB0aGUgZGF0YWJhc2Ugd2l0aCB1bmluc3RhbGwgYWN0aW9uPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMy4xPC9zdHJvbmc+IC0gMjEgSnVseSAyMDE3DQoJPHVsPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ0ZpbGVQaWNrZXInPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMy4wPC9zdHJvbmc+IC0gMTUgT2N0b2JlciAyMDE2DQoJPHVsPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ1BhZ2Ugc2VsZWN0b3InIChGUiAjMTAwNzcpPC9saT4NCgk8bGk+R3JvdXBpbmcgb2Ygc2V0dGluZ3MgYnkgY3VzdG9tIHRhYnMgKEZSICMxMDE3Nik8L2xpPg0KCTxsaT5DbGlja2luZyBvbiBmaWVsZHR5cGUgYnV0dG9uIGZpcmVzIGV2ZW50ICdPblNldHRpbmdDaGFuZ2UnPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMi4yPC9zdHJvbmc+IC0gMTMgTWFyY2ggMjAxNg0KCTx1bD4NCgk8bGk+VGFnIHtDdXN0b21HU30gbm8gbG9uZ2VyIG5lZWRlZCwgbW9kdWxlIGdldHMgYXV0b21hdGljYWxseSBpbml0aWFsaXplZDwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZSAnSk1GaWxlUGlja2VyJzwvbGk+DQoJPGxpPk5ldyBpY29uPC9saT4NCgk8bGk+VXNlIGNvcmUgY21zX21haWxlciBtZXRob2Q8L2xpPg0KCTxsaT5NaW5pbXVtIHJlcXVpcmVkIENNU21zIHZlcnNpb24gc2V0IHRvIDEuMTI8L2xpPg0KCTxsaT5CdWcgIzEwODM4OiBmaXhlZCAtIERvZXNuJ3Qgb3V0cHV0IGFueXRoaW5nIGluIDIuMS4xPC9saT4NCgk8bGk+QnVnICMxMDkzMjogZml4ZWQgLSBQZXJtaXNzaW9ucyBub3QgY2hlY2tlZCBwcm9wZXJseTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDIuMTwvc3Ryb25nPiAtIDEwIEp1bHkgMjAxNA0KCTx1bD4NCgk8bGk+QnVnICM5OTg5OiBmaXhlZCAtIEhpZGRlbiBmaWVsZCB2YWx1ZXMgYXJlIHJlc2V0IHRvICIwIjwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDIuMDwvc3Ryb25nPiAtIDIxIE1heSAyMDE0DQoJPHVsPg0KCTxsaT5GaXhlcyBmb3IgQ29yZSAyLjA8L2xpPg0KCTxsaT5NaW5pbXVtIHJlcXVpcmVkIENNU21zIHZlcnNpb24gc2V0IHRvIDEuMTE8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjY8L3N0cm9uZz4gLSAxOSBNYXkgMjAxNA0KCTx1bD4NCgk8bGk+TWlub3Igc3R5bGUgdXBkYXRlIGZvciBjb2xsYXBzaWJsZSBmaWVsZHNldCAoRlIgIzk5MzkpPC9saT4NCgk8bGk+QnVnICM5OTg5OiBmaXhlZCAtIEhpZGRlbiBmaWVsZCB2YWx1ZXMgYXJlIHJlc2V0IHRvICIwIjwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuNTwvc3Ryb25nPiAtIDUgRGVjZW1iZXIgMjAxMw0KCTx1bD4NCgk8bGk+UG9zc2liaWxpdHkgdG8gYWRkIGFkbWluIHBhZ2UgdW5kZXIgU2l0ZSBBZG1pbiBzZWN0aW9uLiBFZGl0b3JzIGRvbid0IGhhdmUgYWNjZXNzITwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZSAnQ29sb3JQaWNrZXInICh0aGFua3MgdG8gSmlzc2V5KTwvbGk+DQoJPGxpPkFkZGVkIEZyZW5jaCB0cmFuc2xhdGlvbiAodGhhbmtzIHRvIEppc3NleSk8L2xpPg0KCTxsaT5BZGRlZCBjb2xsYXBzaWJsZSBmaWVsZGdyb3VwcyAoRlIgIzgxNjYsICM4NTE3IGFuZCAjOTQ2NSk8L2xpPg0KCTxsaT5BZGRlZCB0aGUgYWJpbGl0eSB0byBhc3NpZ24gZWFjaCBmaWVsZCB0byAnYWRtaW4nIG9yICdlZGl0b3InIChGUiAjODUxNSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjQ8L3N0cm9uZz4gLSA5IE1heSAyMDEzDQoJPHVsPg0KCTxsaT5EcmFnIGFuZCBkcm9wIGZpZWxkIG9yZGVyaW5nIChGUiAjODUxNik8L2xpPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ0dCRmlsZVBpY2tlcicgKEZSICM4Mjg2IGFuZCAjODYzNCk8L2xpPg0KCTxsaT5JbmNsdWRlZCBXaWtpIGhlbHB0ZXh0IGFuZCBleGFtcGxlcyBpbiB0aGUgbW9kdWxlIGhlbHB0ZXh0PC9saT4NCgk8bGk+QnVnICM4NjMzOiBmaXhlZCAtIERvZXMgbm90IGVzY2FwZSBoZWxwIHRleHQ8L2xpPg0KCTxsaT5CdWcgIzkwMTk6IGZpeGVkIC0gU3VibWl0IG5vdCB3b3JraW5nIGZvciB0aG9zZSB3aXRob3V0ICdNYW5hZ2UnIHBlcm1pc3Npb25zPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS4zPC9zdHJvbmc+IC0gMTQgQXVndXN0IDIwMTINCgk8dWw+DQoJPGxpPlJlbW92ZWQgQ2xlYXIgQ2FjaGUgZHVlIHRvIEZvcmdlIHJlZ3VsYXRpb25zPC9saT4NCgk8bGk+QnVnICM4MDA5OiBmaXhlZCAtIElzc3VlIHdpdGggdGV4dCBhcmVhcyB3aXRoIHNtYXJ0eSBwYXJzaW5nIG9uPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS4yPC9zdHJvbmc+IC0gMjAgTWFyY2ggMjAxMg0KCTx1bD4NCgk8bGk+TWluaW11bSByZXF1aXJlZCBDTVNtcyB2ZXJzaW9uIHNldCB0byAxLjEwPC9saT4NCgk8bGk+QWRkIEdldEFkbWluU2VjdGlvbiBzZXR0aW5nIChGUiAjNzYxOCk8L2xpPg0KCTxsaT5BZGRlZCBvcHRpb24gdG8gYXV0b21hdGljYWxseSBjbGVhciBjYWNoZSBhZnRlciBjaGFuZ2luZyBhIHNldHRpbmc8L2xpPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ0J1dHRvbic8L2xpPg0KCTxsaT5TdXBwb3J0IFZhbHVlfE9wdGlvbk5hbWUgcGFpcnMgYW5kIFNtYXJ0eSB0YWdzIGZvciBwdWxsZG93biBmaWVsZHMgYW5kIHJhZGlvYnV0dG9uczwvbGk+DQoJPGxpPkJ1ZyBmaXhlZDogRWRpdGluZyBhIGZpZWxkIGNoYW5nZXMgdGhlIGZpZWxkbmFtZTwvbGk+DQoJPGxpPkJ1ZyBmaXhlZDogU2VuZEV2ZW50IG9uIGNoYW5naW5nIGEgY2hlY2tib3ggc2V0dGluZzwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuMTwvc3Ryb25nPiAtIDE5IEZlYnJ1YXJ5IDIwMTINCgk8dWw+DQoJPGxpPkRlZmluZSB1bmxpbWl0ZWQgbnVtYmVyIG9mIGZpZWxkczwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZXMgdGV4dGFyZWEsIHd5c2l3eWcsIGRhdGV0aW1lcGlja2VyLCBwdWxsZG93biBzZWxlY3QsIHJhZGlvYnV0dG9uczwvbGk+DQoJPGxpPkFkZGVkIGV2ZW50IE9uU2V0dGluZ0NoYW5nZTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuMDwvc3Ryb25nPiAtIDIxIEphbnVhcnkgMjAxMg0KCTx1bD4NCgk8bGk+SW5pdGlhbCBtb2R1bGUgcmVsZWFzZTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/CustomGS.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCg0KY2xhc3MgQ3VzdG9tR1MgZXh0ZW5kcyBDTVNNb2R1bGUNCnsNCglmdW5jdGlvbiBHZXROYW1lKCkgeyByZXR1cm4gJ0N1c3RvbUdTJzsgfQ0KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF9jdXN0b21fbW9kdWxlbmFtZScpOyB9DQoJZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICczLjMnOyB9DQoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMi4yJzsgfQ0KCWZ1bmN0aW9uIEdldEhlbHAoKSB7IHJldHVybiBAZmlsZV9nZXRfY29udGVudHMoIGNtc19qb2luX3BhdGggKCBkaXJuYW1lKF9fRklMRV9fKSwgJ2hlbHBfdGV4dC5pbmMnKSApOyB9DQoJZnVuY3Rpb24gR2V0QXV0aG9yKCkgeyByZXR1cm4gJ1JvbGYgVGphc3NlbnMsIEpvcyc7IH0NCglmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsgcmV0dXJuICdpbmZvIGF0IGNtc2NhbmJlc2ltcGxlIGRvdCBvcmcsIGpvc3ZkIGF0IGxpdmUgZG90IG5sJzsgfQ0KCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cyggY21zX2pvaW5fcGF0aCAoIGRpcm5hbWUoX19GSUxFX18pLCAnY2hhbmdlbG9nLmluYycpICk7IH0NCglmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIHRydWU7IH0NCglmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIHRydWU7IH0NCglmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7IHJldHVybiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5fc2VjdGlvbicsICdleHRlbnNpb25zJyk7IH0NCglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7IH0NCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScpOyB9DQoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gYXJyYXkoKTsgfQ0KCQ0KCWZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpIHsNCgkJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7DQoJCSR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Nob3d2YXJzJyxDTEVBTl9JTlQpOw0KCQkNCgkJJGZpZWxkcyA9ICR0aGlzLT5HZXRTZXR0aW5ncygpOw0KDQoJCS8vIGJ5IGV4Y2VwdGlvbiB3ZSB1c2UgYXNzaWduR2xvYmFsIGluIHN0ZWFkIG9mIGFzc2lnbiB0byBtYWtlIHRoZSB2YXJpYWJsZSBnbG9iYWwgYnkgZGVmYXVsdC4gTm90IHRvIHVzZSBpbiBvdGhlciBtb2R1bGVzIQ0KCQljbXNtcygpLT5HZXRTbWFydHkoKS0+YXNzaWduR2xvYmFsKCdDdXN0b21HUycsICRmaWVsZHMpOw0KCX0NCgkNCglmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkNCgl7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Nob3d2YXJzJywxLCdTZXQgdGhpcyBwYXJhbWV0ZXIgdG8gc2hvdyBhbGwgYXZhaWxhYmxlIHZhcmlhYmxlcyBhbmQgdGhlaXIgdmFsdWVzLiBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LicpOw0KCX0NCgkNCglmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uKCRldmVudG5hbWUpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycuJGV2ZW50bmFtZSApOyB9DQoJZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCRldmVudG5hbWUpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycuJGV2ZW50bmFtZSApOyB9DQoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7IH0NCglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbF9jb25maXJtJyk7IH0NCglmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7IH0NCg0KCWZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKQ0KCXsNCgkJJGNnc191cmxfcGF0aCA9ICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCk7DQoNCgkJJHRtcGwgPSA8PDxFT1QNCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IiRjZ3NfdXJsX3BhdGgvbGliL2pxdWVyeS9jb2xvcnBpY2tlci5jc3MiIG1lZGlhPSJhbGwiPg0KPHNjcmlwdCBzcmM9IiRjZ3NfdXJsX3BhdGgvbGliL2pxdWVyeS9qcXVlcnkudGFibGVkbmQuanMiPjwvc2NyaXB0Pg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuY21zX2xhYmVsIHsgbWFyZ2luLXJpZ2h0OjEycHg7IH0NCgkuc21hcnR5dmFyIHsgcGFkZGluZzowIDNweDsgY3Vyc29yOnRleHQ7IH0NCgkvKiBjc3MgZm9yIHRpbWVwaWNrZXIgKi8NCgkudWktdGltZXBpY2tlci1kaXYgLnVpLXdpZGdldC1oZWFkZXIgeyBtYXJnaW4tYm90dG9tOiA4cHg7IH0NCgkudWktdGltZXBpY2tlci1kaXYgZGwgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9DQoJLnVpLXRpbWVwaWNrZXItZGl2IGRsIGR0IHsgaGVpZ2h0OiAyNXB4OyBtYXJnaW4tYm90dG9tOiAtMjVweDsgfQ0KCS51aS10aW1lcGlja2VyLWRpdiBkbCBkZCB7IG1hcmdpbjogMCAxMHB4IDEwcHggNjVweDsgfQ0KCS51aS10aW1lcGlja2VyLWRpdiB0ZCB7IGZvbnQtc2l6ZTogOTAlOyB9DQoJLnVpLXRwaWNrZXItZ3JpZC1sYWJlbCB7IGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9DQoNCgkuY2dzX3BhZ2VzZWxlY3Qgew0KCQlkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQoJCWhlaWdodDozMnB4Ow0KCQlvdmVyZmxvdzpoaWRkZW47DQoJfQ0KCQkJCQ0KCS5jZ3NfZmllbGRzZXQgew0KCQkJbWFyZ2luLXRvcDoxMHB4Ow0KCQkJcGFkZGluZy10b3A6MDsNCgkJCXBhZGRpbmctYm90dG9tOjEwcHg7DQoJfQ0KDQoJLmNnc19jb2xsYXBzaWJsZSB7DQoJCQljdXJzb3I6IHBvaW50ZXI7DQoJfQ0KDQoJLmNvbGxhcHNlLW9wZW4gc3BhbiB7DQoJCQlkaXNwbGF5OmlubGluZS1ibG9jazsNCgkJCXdpZHRoOjE0cHg7DQoJCQloZWlnaHQ6MTRweDsNCgkJCWJhY2tncm91bmQ6dXJsKCRjZ3NfdXJsX3BhdGgvbGliL2pxdWVyeS9pbWFnZXMvdWktaWNvbnNfNDU0NTQ1XzI1NngyNDAucG5nKSAtMThweCAtMTkycHggbm8tcmVwZWF0Ow0KCX0NCg0KCS5jb2xsYXBzZS1jbG9zZSBzcGFuIHsNCgkJCWRpc3BsYXk6aW5saW5lLWJsb2NrOw0KCQkJd2lkdGg6MTRweDsNCgkJCWhlaWdodDoxNHB4Ow0KCQkJYmFja2dyb3VuZDp1cmwoJGNnc191cmxfcGF0aC9saWIvanF1ZXJ5L2ltYWdlcy91aS1pY29uc180NTQ1NDVfMjU2eDI0MC5wbmcpIC0ycHggLTE5MnB4IG5vLXJlcGVhdDsNCgl9DQo8L3N0eWxlPg0KRU9UOw0KCQlyZXR1cm4gJHRtcGw7DQoJfQ0KDQoNCgkvKioNCgkqIE1ldGhvZCB0byBnZXQgcGFyYW1ldGVycyBvZiBhIGZpZWxkIGJ5IG5hbWUgb3IgYnkgZmllbGRpZA0KCSoNCgkqIEBmaW5hbA0KCSogQGFjY2VzcyBwdWJsaWMNCgkqIEByZXR1cm4gYXJyYXkoKQ0KCSovDQoJZnVuY3Rpb24gR2V0RmllbGQoJGZpZWxkKQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0REIoKTsNCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21ncyBXSEVSRSBmaWVsZGlkPT8gT1IgbmFtZT0/IE9SREVSIEJZIGZpZWxkaWQgREVTQyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGQsICRmaWVsZCkpOw0KCQlpZiggJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCApDQoJCXsNCgkJCSRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHJvdyA9IEZBTFNFOw0KCQl9DQoJCXJldHVybiAkcm93Ow0KCX0NCg0KDQoJLyoqDQoJKiBNZXRob2QgdG8gZ2V0IHBhcmFtZXRlcnMgb2YgZmllbGRzDQoJKg0KCSogQGZpbmFsDQoJKiBAYWNjZXNzIHB1YmxpYw0KCSogQHJldHVybiBhcnJheSgpDQoJKi8NCglmdW5jdGlvbiBHZXRGaWVsZHMoJHRhYmlkKQ0KCXsNCgkJJHVzZXJpZCA9IGdldF91c2VyaWQoKTsNCgkJJHVzZXJvcHMgPSBjbXNtcygpLT5HZXRVc2VyT3BlcmF0aW9ucygpOw0KCQkkYWRtaW5wZXJtID0gJHVzZXJvcHMtPlVzZXJJbkdyb3VwKCR1c2VyaWQsIDEpOyAvLyBpcyBhZG1pbg0KCQkNCgkJJGZpZWxkcyA9IGFycmF5KCk7DQoNCgkJJGRiID0gY21zbXMoKS0+R2V0REIoKTsNCgkJJHF1ZXJ5ID0gIlNFTEVDVCBmLiogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIGYNCgkJCQkJSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIHRmIE9OIGYuZmllbGRpZCA9IHRmLmZpZWxkaWQgQU5EIHRmLnRhYmlkID0gPw0KCQkJCQlPUkRFUiBCWSBmLnNvcnRvcmRlciBBU0MiOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRhYmlkKSk7DQoJCWlmICggJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCApDQoJCXsNCgkJCXdoaWxlICggJHJvdz0kcmVzdWx0LT5GZXRjaFJvdygpICkNCgkJCXsNCgkJCQkvLyBjaGVjayBlZGl0b3IgcGVybWlzc2lvbnMNCgkJCQkkZWRpdHBlcm0gPSBGQUxTRTsNCgkJCQlpZiAoICEkYWRtaW5wZXJtICYmICFlbXB0eSgkcm93WydlZGl0b3JzJ10pICkNCgkJCQl7DQoJCQkJCSRlZGl0b3JzID0gZXhwbG9kZSgnOycsICRyb3dbJ2VkaXRvcnMnXSk7DQoJCQkJCWZvcmVhY2ggKCRlZGl0b3JzIGFzICRlZGl0b3IpDQoJCQkJCXsNCgkJCQkJCSRlZGl0cGVybSA9ICRlZGl0cGVybSB8fCAkdXNlcm9wcy0+VXNlckluR3JvdXAoJHVzZXJpZCwgJGVkaXRvcik7DQoJCQkJCX0NCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJJGVkaXRwZXJtID0gVFJVRTsNCgkJCQl9DQoJCQkJaWYgKCAkZWRpdHBlcm0gKQ0KCQkJCXsNCgkJCQkJJGZpZWxkc1skcm93WydmaWVsZGlkJ11dID0gJHJvdzsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJcmV0dXJuICRmaWVsZHM7DQoJfQ0KDQoNCgkvKioNCgkqIE1ldGhvZCB0byBnZXQgcGFyYW1ldGVycyBvZiBhIHRhYiBieSBuYW1lIG9yIGJ5IHRhYmlkDQoJKg0KCSogQGZpbmFsDQoJKiBAYWNjZXNzIHB1YmxpYw0KCSogQHJldHVybiBhcnJheSgpDQoJKi8NCglmdW5jdGlvbiBHZXRUYWIoJHRhYikNCgl7DQoJCSRkYiA9IGNtc21zKCktPkdldERCKCk7DQoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiIFdIRVJFIHRhYmlkPT8gT1IgbmFtZT0/IjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0YWIsICR0YWIpKTsNCgkJaWYoICRyZXN1bHQgJiYgJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDAgKQ0KCQl7DQoJCQkkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSRyb3cgPSBGQUxTRTsNCgkJfQ0KCQlyZXR1cm4gJHJvdzsNCgl9DQoNCg0KCS8qKg0KCSogTWV0aG9kIHRvIGdldCB0YWJzDQoJKg0KCSogQGZpbmFsDQoJKiBAYWNjZXNzIHB1YmxpYw0KCSogQHJldHVybiBhcnJheSgpDQoJKi8NCglmdW5jdGlvbiBHZXRUYWJzKCRmaWVsZCA9IE5VTEwpDQoJew0KCQkkdXNlcmlkID0gZ2V0X3VzZXJpZCgpOw0KCQkkdXNlcm9wcyA9IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7DQoJCSRhZG1pbnBlcm0gPSAkdXNlcm9wcy0+VXNlckluR3JvdXAoJHVzZXJpZCwgMSk7IC8vIGlzIGFkbWluDQoJCQ0KCQkkdGFicyA9IGFycmF5KCk7DQoNCgkJJGRiID0gY21zbXMoKS0+R2V0REIoKTsNCgkJaWYgKCBlbXB0eSgkZmllbGQpICkgDQoJCXsNCgkJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiIE9SREVSIEJZIHNvcnRvcmRlciBBU0MiOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHF1ZXJ5ID0gIlNFTEVDVCB0LiosIHRmLmZpZWxkaWQgQVMgY2hlY2tlZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiIHQNCgkJCQkJCUxFRlQgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIHRmIE9OIHQudGFiaWQgPSB0Zi50YWJpZCBBTkQgdGYuZmllbGRpZCA9ID8NCgkJCQkJCU9SREVSIEJZIHQuc29ydG9yZGVyIEFTQyI7DQoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpZWxkKSk7DQoJCX0NCgkJaWYgKCAkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkNCgkJew0KCQkJd2hpbGUgKCAkcm93PSRyZXN1bHQtPkZldGNoUm93KCkgKQ0KCQkJew0KCQkJCS8vIGNoZWNrIGVkaXRvciBwZXJtaXNzaW9ucw0KCQkJCSRlZGl0cGVybSA9IEZBTFNFOw0KCQkJCWlmICggISRhZG1pbnBlcm0gJiYgIWVtcHR5KCRyb3dbJ2VkaXRvcnMnXSkgJiYgZW1wdHkoJGZpZWxkKSApDQoJCQkJew0KCQkJCQkkZWRpdG9ycyA9IGV4cGxvZGUoJzsnLCAkcm93WydlZGl0b3JzJ10pOw0KCQkJCQlmb3JlYWNoICgkZWRpdG9ycyBhcyAkZWRpdG9yKQ0KCQkJCQl7DQoJCQkJCQkkZWRpdHBlcm0gPSAkZWRpdHBlcm0gfHwgJHVzZXJvcHMtPlVzZXJJbkdyb3VwKCR1c2VyaWQsICRlZGl0b3IpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSRlZGl0cGVybSA9IFRSVUU7DQoJCQkJfQ0KCQkJCWlmICggJGVkaXRwZXJtICkNCgkJCQl7DQoJCQkJCSR0YWJzW10gPSAkcm93Ow0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJHRhYnM7DQoJfQ0KDQoNCgkvKioNCgkqIE1ldGhvZCB0byBnZXQgYWxsIHNldHRpbmdzDQoJKg0KCSogQGZpbmFsDQoJKiBAYWNjZXNzIHB1YmxpYw0KCSogQHJldHVybiBhcnJheSgpDQoJKi8NCglmdW5jdGlvbiBHZXRTZXR0aW5ncygkcGFyc2VTbWFydHkgPSB0cnVlKQ0KCXsNCgkJJGZpZWxkcyA9IGFycmF5KCk7DQoJCQ0KCQkkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQoJCSRkYiA9IGNtc21zKCktPkdldERCKCk7DQoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQlpZiAoICRyZXN1bHQgJiYgJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDAgKQ0KCQl7DQoJCQl3aGlsZSAoICRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKSApDQoJCQl7DQoJCQkJaWYgKCAkcm93Wyd0eXBlJ10gIT0gJ2ZpZWxkc2V0c3RhcnQnICYmICRyb3dbJ3R5cGUnXSAhPSAnZmllbGRzZXRlbmQnICkNCgkJCQl7DQoJCQkJCSRhbGlhcyA9IHN0cl9yZXBsYWNlKCdfXycsICdfJywgc3RyX3JlcGxhY2UoJy0nLCAnXycsIG11bmdlX3N0cmluZ190b191cmwoJHJvd1snbmFtZSddKSkpOw0KCQkJCQlpZiAoICRyb3dbJ3R5cGUnXSA9PSAnY29sb3JwaWNrZXInICkNCgkJCQkJew0KCQkJCQkJJGZpZWxkc1skYWxpYXNdID0gIiMiLiRyb3dbJ3ZhbHVlJ107DQoJCQkJCX0NCgkJCQkJZWxzZWlmICggJHBhcnNlU21hcnR5ICYmICgkcm93Wyd0eXBlJ10gPT0gJ3RleHRhcmVhJyB8fCAkcm93Wyd0eXBlJ10gPT0gJ3d5c2l3eWcnKSAmJiAkcm93Wydwcm9wZXJ0aWVzJ10gKQ0KCQkJCQl7DQoJCQkJCQkkZmllbGRzWyRhbGlhc10gPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHJvd1sndmFsdWUnXSk7DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQkkZmllbGRzWyRhbGlhc10gPSAkcm93Wyd2YWx1ZSddOw0KCQkJCQl9DQoJCQkJCSRmaWVsZHNbJHJvd1snZmllbGRpZCddXSA9ICRmaWVsZHNbJGFsaWFzXTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJcmV0dXJuICRmaWVsZHM7DQoJfQ0KDQoNCgkvKioNCgkqIE1ldGhvZCB0byByZW5ldyB0aGUgY29tYmluZWQgc3R5bGVzaGVldCBjYWNoZSBieSB0b3VjaGluZyB0aGUgZmlsZXMsICpub3QqIGRlbGV0aW5nDQoJKg0KCSogQGZpbmFsDQoJKiBAYWNjZXNzIHByaXZhdGUNCgkqIEByZXR1cm4gdm9pZA0KCSovDQoJZnVuY3Rpb24gQ2xlYXJTdHlsZXNoZWV0Q2FjaGUoKQ0KCXsNCgkJZm9yZWFjaCAoZ2xvYigiLi4vdG1wL2NhY2hlL3N0eWxlc2hlZXRfY29tYmluZWRfKi5jc3MiKSBhcyAkZmlsZW5hbWUpIHsNCgkJCXRvdWNoKCAkZmlsZW5hbWUsIHRpbWUoKSAtIDM2MDAwMCApOw0KCQl9DQoJfQ0KDQp9IC8vIGVuZCBvZiBjbGFzcw0KDQojDQojIEVPRg0KIw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IC0gMjAxOSBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSApCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMobGFuZygnbmVlZHBlcm1pc3Npb250bycsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykpOwoJcmV0dXJuOwp9CgokdHJ1ZWltYWdlID0gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgbGFuZygnYWN0aXZlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKTsKJGZhbHNlaW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgbGFuZygnaW5hY3RpdmUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOwoKJHRhYnMgPSAkdGhpcy0+R2V0VGFicygtMSk7CiR0YWJpZCA9IGVtcHR5KCRwYXJhbXNbJ3RhYmlkJ10pID8gJHRhYnNbMF1bJ3RhYmlkJ10gOiAkcGFyYW1zWyd0YWJpZCddOwoKaWYgKCBjb3VudCgkdGFicykgPiAxICkKewoJLy8gY3JlYXRlIHRhYiBkcm9wZG93bmZpZWxkCglmb3JlYWNoICggJHRhYnMgYXMgJHRhYiApIAoJewoJCSRsYWJlbCA9ICR0YWJbJ25hbWUnXTsKCQkkdGFibGlzdFskbGFiZWxdID0gJHRhYlsndGFiaWQnXTsKCX0KCSRzbWFydHktPmFzc2lnbigndGFic2VsZWN0JywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndGFic2VsZWN0JywgJHRhYmxpc3QsIC0xLCAkdGFiaWQsICdpZD0idGFic2VsZWN0IicpKTsKfQplbHNlCnsKCSRzbWFydHktPmFzc2lnbigndGFic2VsZWN0JywgbGFuZygnc3RhdHVzJykpOwp9Cgokcm93YXJyYXkgPSBhcnJheSgpOwoKJGRiID0gJHRoaXMtPkdldERCKCk7CiRxdWVyeSA9ICJTRUxFQ1QKCQkJCQkJZi4qLCB0Zi50YWJpZCBBUyBjaGVja2VkCgkJCQkJRlJPTQoJCQkJCQkiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBmCgkJCQkJTEVGVCBKT0lOCgkJCQkJCSIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIHRmCgkJCQkJT04KCQkJCQkJZi5maWVsZGlkID0gdGYuZmllbGRpZCBBTkQgdGYudGFiaWQgPSA/CgkJCQkJT1JERVIgQlkKCQkJCQkJZi5zb3J0b3JkZXIgQVNDIjsKJHJlc3VsdCA9ICRkYi0+R2V0QWxsKCRxdWVyeSwgYXJyYXkoJHRhYmlkKSk7CiRyb3djb3VudCA9IGNvdW50KCRyZXN1bHQpOwoKaWYgKCAkcmVzdWx0ICYmICRyb3djb3VudCA+IDAgKQp7Cgkkcm93Y2xhc3MgPSAncm93MSc7Cglmb3JlYWNoICggJHJlc3VsdCBhcyAka2V5ID0+ICRkZWYgKQoJewoJCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKCQkkcm93LT5maWVsZGlkID0gJGRlZlsnZmllbGRpZCddOwoJCSRyb3ctPm5hbWUgPSAkZGVmWyd0eXBlJ10gPT0gJ2ZpZWxkc2V0ZW5kJyA/ICRkZWZbJ25hbWUnXSA6ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGRlZlsnbmFtZSddLCBhcnJheSgnZmllbGRpZCcgPT4gJGRlZlsnZmllbGRpZCddLCAnbW9kZSc9PidlZGl0JykpOwoJCSRhbGlhcyA9IHN0cl9yZXBsYWNlKCdfXycsICdfJywgc3RyX3JlcGxhY2UoJy0nLCAnXycsIG11bmdlX3N0cmluZ190b191cmwoJGRlZlsnbmFtZSddKSkpOwoJCSRyb3ctPnNtYXJ0eXZhciA9ICcnOwkKCQlpZiAoICRkZWZbJ3R5cGUnXSAhPSAnZmllbGRzZXRzdGFydCcgJiYgJGRlZlsndHlwZSddICE9ICdmaWVsZHNldGVuZCcgKQoJCXsKCQkJJHJvdy0+c21hcnR5dmFyID0gJ3skQ3VzdG9tR1MuJyAuICRhbGlhcyAuICd9JzsJCQkKCQl9CgkJLy8kcm93LT5oZWxwID0gJGRlZlsnaGVscCddOwoJCSRyb3ctPnR5cGUgPSAkdGhpcy0+TGFuZygkZGVmWyd0eXBlJ10pOwoJCXN3aXRjaCAoJGRlZlsndHlwZSddKSAKCQl7CgkJCWNhc2UgJ2NvcmVmaWxlcGlja2VyJzoKCQkJCWlmICggJGNvcmVmcCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRmlsZVBpY2tlcicpICkKCQkJCXsKCQkJCQkkcm93LT50eXBlID0gJGNvcmVmcC0+R2V0RnJpZW5kbHlOYW1lKCk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJJHJvdy0+dHlwZSA9ICdDTVNNUyBGaWxlUGlja2VyICgnIC4gbGFuZygnbm90aW5zdGFsbGVkJykgLiAnKSc7CgkJCQl9CgkJCQlicmVhazsKCQkJCgkJCWNhc2UgJ2diZmlsZXBpY2tlcic6CgkJCQlpZiAoICRnYmZwID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdHQkZpbGVQaWNrZXInKSApCgkJCQl7CgkJCQkJJHJvdy0+dHlwZSA9ICRnYmZwLT5HZXRGcmllbmRseU5hbWUoKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkcm93LT50eXBlID0gJ0dCRmlsZVBpY2tlciAoJyAuIGxhbmcoJ25vdGluc3RhbGxlZCcpIC4gJyknOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQkKCQkJY2FzZSAnam1maWxlcGlja2VyJzoKCQkJCWlmICggJGptZnAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0pNRmlsZVBpY2tlcicpICkKCQkJCXsKCQkJCQkkcm93LT50eXBlID0gJGptZnAtPkdldEZyaWVuZGx5TmFtZSgpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRyb3ctPnR5cGUgPSAnSk1GaWxlUGlja2VyICgnIC4gbGFuZygnbm90aW5zdGFsbGVkJykgLiAnKSc7CgkJCQl9CgkJCQlicmVhazsKCQkJCQoJCX0KCQkKCQlpZiAoICRkZWZbJ3NvcnRvcmRlciddID4gMSApCgkJewoJCQkkcm93LT5tb3ZldXAgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZicsIGxhbmcoJ3VwJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkaWQnID0+ICRkZWZbJ2ZpZWxkaWQnXSwgJ21vZGUnPT4nbW92ZXVwJykpOwoJCX0KCQllbHNlCgkJewoJCQkkcm93LT5tb3ZldXAgPSAnJzsKCQl9CgkJCgkJaWYgKCAka2V5IDwgJHJvd2NvdW50IC0gMSAmJiAkcmVzdWx0WyRrZXkrMV1bJ3NvcnRvcmRlciddICE9IDEgKQoJCXsKCQkJJHJvdy0+bW92ZWRvd24gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy1kLmdpZicsIGxhbmcoJ2Rvd24nKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRpZCcgPT4gJGRlZlsnZmllbGRpZCddLCAnbW9kZSc9Pidtb3ZlZG93bicpKTsKCQl9CgkJZWxzZQoJCXsKCQkJJHJvdy0+bW92ZWRvd24gPSAnJzsKCQl9CgkJCgkJJHJvdy0+YXNzaWdudGFiID0gJyc7CgkJJHJvdy0+ZWRpdGxpbmsgPSAnJzsKCQkkcm93LT5kZWxldGVsaW5rID0gJyc7CgkJaWYgKCAkZGVmWyd0eXBlJ10gIT0gJ2ZpZWxkc2V0ZW5kJyApCgkJewoJCQkkcm93LT5hc3NpZ250YWIgPSAnPGEgaHJlZj0iJyAuIAoJCQkJCWh0bWxfZW50aXR5X2RlY29kZSgkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsIAoJCQkJCWFycmF5KCdtb2RlJyA9PiAnYXNzaWduJywgJ3RhYmlkJyA9PiAkdGFiaWQsICdmaWVsZGlkJyA9PiAkZGVmWydmaWVsZGlkJ10pKSkgLiAKCQkJCQknJnNob3d0ZW1wbGF0ZT1mYWxzZSIgY2xhc3M9ImFzc2lnbnRhYiI+JyAuICgkZGVmWydjaGVja2VkJ10gPyAkdHJ1ZWltYWdlIDogJGZhbHNlaW1hZ2UpIC4gJzwvYT4nOwoJCQkkcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwKCQkJCSAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCBsYW5nKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCSAgICBhcnJheSAoJ2ZpZWxkaWQnID0+ICRkZWZbJ2ZpZWxkaWQnXSwgJ21vZGUnPT4nZWRpdCcpKTsKCQkJJHJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwKCQkJCQkgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgbGFuZygnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkgIGFycmF5ICgnZmllbGRpZCcgPT4gJGRlZlsnZmllbGRpZCddLCAnbW9kZSc9PidkZWxldGUnKSwgbGFuZygnZGVsZXRlY29uZmlybScsJGRlZlsnbmFtZSddKSk7CgkJfQoKCQlhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOwoJfQp9CmlmICggJHJlc3VsdCA9PT0gRkFMU0UgKQp7CgllY2hvICdFUlJPUjogJyAuIG15c3FsX2Vycm9yKCk7CglleGl0KCk7Cn0KCgokc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJHJvd2FycmF5ICk7CiRzbWFydHktPmFzc2lnbignbmFtZScsIGxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignc21hcnR5dmFyJywgJHRoaXMtPkxhbmcoJ3NtYXJ0eXZhcicpKTsKJHNtYXJ0eS0+YXNzaWduKCd0eXBlJywgbGFuZygndHlwZScpKTsKLy8kc21hcnR5LT5hc3NpZ24oJ2hlbHAnLCBsYW5nKCdoZWxwJykpOwoKJHNtYXJ0eS0+YXNzaWduKCduZXdmaWVsZGRlZmxpbmsnLAoJICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsCgkJCSAgICAgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld2ZvbGRlci5naWYnLCBsYW5nKCdhZGQnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkgICAgIGFycmF5KCdtb2RlJyA9PiAnYWRkJyksICcnLCBmYWxzZSwgZmFsc2UsICcnKS4nICcuCgoJICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsCgkJCSAgICAgbGFuZygnYWRkJyksCgkJCSAgICAgYXJyYXkoJ21vZGUnID0+ICdhZGQnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzaG93b250YWInLCAkdGhpcy0+TGFuZygnc2hvd29udGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ3RydWVpbWFnZScsJHRydWVpbWFnZSk7CiRzbWFydHktPmFzc2lnbignZmFsc2VpbWFnZScsJGZhbHNlaW1hZ2UpOwoKJHNtYXJ0eS0+YXNzaWduKCdtb2RfaWQnLCAkaWQpOwokc21hcnR5LT5hc3NpZ24oJ2Nnc191cmxfcGF0aCcsICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZmllbGRkZWZzLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_general.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IC0gMjAxOSBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhsYW5nKCduZWVkcGVybWlzc2lvbnRvJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnKSk7CglyZXR1cm47Cn0KCgovLyBHZXQgdGhlIGZpZWxkcyB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVkaXQuCiRmaWVsZHMgPSAkdGhpcy0+R2V0RmllbGRzKCR0YWJbJ3RhYmlkJ10pOwoKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKJHJvd2FycmF5ID0gYXJyYXkoKTsKCmZvcmVhY2goICRmaWVsZHMgYXMgJGtleSA9PiAkZmxkICkKewoJJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoKCSRvbmVyb3ctPmZpZWxkaWQgPSAkZmxkWydmaWVsZGlkJ107Cgkkb25lcm93LT5uYW1lID0gJGZsZFsnbmFtZSddOwoJJG9uZXJvdy0+dHlwZSA9ICRmbGRbJ3R5cGUnXTsKCSRvbmVyb3ctPmhlbHAgPSAkZmxkWydoZWxwJ107Cgkkb25lcm93LT52YWx1ZSA9ICRmbGRbJ3ZhbHVlJ107Cgkkb25lcm93LT5maWVsZGNsYXNzID0gJyc7CgoJJGZpZWxkbmFtZSA9ICdmaWVsZFsnIC4gJHRhYlsndGFiaWQnXSAuICddWycgLiAkZmxkWydmaWVsZGlkJ10gLiAnXSc7Cglzd2l0Y2ggKCAkZmxkWyd0eXBlJ10gKQoJewoJCWNhc2UgJ3RleHRmaWVsZCc6CgkJCSRzaXplID0gbWluKDUwLCAkZmxkWydwcm9wZXJ0aWVzJ10pOwoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJGZpZWxkbmFtZSwgJGZsZFsndmFsdWUnXSwgJHNpemUsICRmbGRbJ3Byb3BlcnRpZXMnXSApOwoJCQlicmVhazsKCgkJY2FzZSAncHVsbGRvd24nOgoJCWNhc2UgJ3JhZGlvYnV0dG9ucyc6CgkJCS8vIGxldHMgcGFyc2UgdGhpcyBieSBzbWFydHkgZmlyc3QKCQkJJGZsZFsncHJvcGVydGllcyddID0gJHNtYXJ0eS0+ZmV0Y2goJ2V2YWw6Jy4kZmxkWydwcm9wZXJ0aWVzJ10pOwoJCQkkZmxkWydwcm9wZXJ0aWVzJ10gPSBwcmVnX3JlcGxhY2UoJyM8IS0tKC4rKS0tPiNpcycsICcnLCAkZmxkWydwcm9wZXJ0aWVzJ10pOyAvLyBmaWx0ZXIgb3V0IGh0bWwgY29tbWVudHMKCQkJJGZsZFsncHJvcGVydGllcyddID0gc3RyX3JlcGxhY2UoIlxyIiwgIlxuIiwgJGZsZFsncHJvcGVydGllcyddKTsKCQkJJGZsZFsncHJvcGVydGllcyddID0gc3RyX3JlcGxhY2UoIlxuXG4iLCAiXG4iLCAkZmxkWydwcm9wZXJ0aWVzJ10pOwoJCQkkZmxkWydwcm9wZXJ0aWVzJ10gPSB0cmltKCRmbGRbJ3Byb3BlcnRpZXMnXSk7CgkJCSRwcm9wZXJ0aWVzID0gZXhwbG9kZSgiXG4iLCAkZmxkWydwcm9wZXJ0aWVzJ10pOwoJCQkkaXRlbXMgPSBhcnJheSgpOwoJCQlmb3JlYWNoICgkcHJvcGVydGllcyBhcyAkcHJvcGVydHkpCgkJCXsKCQkJCWxpc3QoJGtleSwgJHZhbHVlKSA9IGV4cGxvZGUoInwiLCAkcHJvcGVydHkgLiAifCIpOwoJCQkJJHZhbHVlID0gdHJpbSgkdmFsdWUpID09ICIiID8gJGtleSA6ICR2YWx1ZTsKCQkJCSRpdGVtc1skdmFsdWVdID0gJGtleTsKCQkJfQoJCQlpZiAoICRmbGRbJ3R5cGUnXSA9PSAncHVsbGRvd24nICkKCQkJewoJCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAkZmllbGRuYW1lLCAkaXRlbXMsIC0xLCAkZmxkWyd2YWx1ZSddKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCAkZmllbGRuYW1lLCAkaXRlbXMsICRmbGRbJ3ZhbHVlJ10pOwoJCQl9CgkJCWJyZWFrOwoKCQljYXNlICdjaGVja2JveCc6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJGZpZWxkbmFtZSwgJzEnLCAkZmxkWyd2YWx1ZSddLCAnJyk7CgkJCWJyZWFrOwoKCQljYXNlICdkYXRlcGlja2VyJzoKCQljYXNlICd0aW1lcGlja2VyJzoKCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICRmaWVsZG5hbWUsICRmbGRbJ3ZhbHVlJ10sIDExLCAxMCk7CgkJCSRvbmVyb3ctPmZpZWxkY2xhc3MgPSAnICcgLiAkZmxkWyd0eXBlJ107CgkJCWJyZWFrOwoKCQljYXNlICdkYXRldGltZXBpY2tlcic6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAkZmllbGRuYW1lLCAkZmxkWyd2YWx1ZSddLCAxOCwgMjApOwoJCQkkb25lcm93LT5maWVsZGNsYXNzID0gJyAnIC4gJGZsZFsndHlwZSddOwoJCQlicmVhazsKCgkJY2FzZSAncGFnZXNlbGVjdCc6CgkJCSRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJzxzcGFuIGNsYXNzPSJjZ3NfcGFnZXNlbGVjdCI+JyAuICRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgJGZsZFsndmFsdWUnXSwgJGlkIC4gJGZpZWxkbmFtZSwgdHJ1ZSkgLiAnPC9zcGFuPic7CgkJCWJyZWFrOwoKCQljYXNlICd0ZXh0YXJlYSc6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYShGQUxTRSwgJGlkLCAkZmxkWyd2YWx1ZSddLCAkZmllbGRuYW1lKTsKCQkJYnJlYWs7CgoJCWNhc2UgJ3d5c2l3eWcnOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoVFJVRSwgJGlkLCAkZmxkWyd2YWx1ZSddLCAkZmllbGRuYW1lKTsKCQkJYnJlYWs7CgoJCWNhc2UgJ2J1dHRvbic6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICRmaWVsZG5hbWUsICRmbGRbJ25hbWUnXSk7CgkJCWJyZWFrOwoJCQoJCWNhc2UgJ2NvcmVmaWxlcGlja2VyJzoKCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJyc7CgkJCSRjb3JlZnAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0ZpbGVQaWNrZXInKTsKCQkJaWYgKCAkY29yZWZwICkKCQkJewoJCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJGNvcmVmcC0+Z2V0X2h0bWwoJGlkLiRmaWVsZG5hbWUsICRmbGRbJ3ZhbHVlJ10sICRjb3JlZnAtPmdldF9kZWZhdWx0X3Byb2ZpbGUoKSk7CgkJCX0KCQkJYnJlYWs7CgkJCgkJY2FzZSAnZ2JmaWxlcGlja2VyJzoKCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJyc7CgkJCSRnYmZwID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdHQkZpbGVQaWNrZXInKTsKCQkJaWYgKCAkZ2JmcCApCgkJCXsKCQkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICRnYmZwLT5DcmVhdGVGaWxlUGlja2VySW5wdXQoJGdiZnAsICRpZCwgJGZpZWxkbmFtZSwgJGZsZFsndmFsdWUnXSwgYXJyYXkoJ2Rpcic9PidpbWFnZXMnLCdtb2RlJz0+J2Jyb3dzZXInKSk7CgkJCX0KCQkJYnJlYWs7CgoJCWNhc2UgJ2ptZmlsZXBpY2tlcic6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICcnOwoJCQkkam1mcCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnSk1GaWxlUGlja2VyJyk7CgkJCWlmICggJGptZnAgKQoJCQl7CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkam1mcC0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCRqbWZwLCAkaWQsICRmaWVsZG5hbWUsICRmbGRbJ3ZhbHVlJ10sIGFycmF5KCdkaXInPT4naW1hZ2VzJywnbW9kZSc9Pidicm93c2VyJykpOwoJCQl9CgkJCWJyZWFrOwoKCQljYXNlICdjb2xvcnBpY2tlcic6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAkZmllbGRuYW1lLCAkZmxkWyd2YWx1ZSddLCAxMSwgMTApOwoJCQkkb25lcm93LT5maWVsZGNsYXNzID0gJyBpbnB1dGNvbG9ycGlja2VyJzsKCQkJYnJlYWs7CgoJCWNhc2UgJ2ZpZWxkc2V0c3RhcnQnOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAnPGZpZWxkc2V0IGNsYXNzPSJjZ3NfZmllbGRzZXQiPjxsZWdlbmQgY2xhc3M9ImNnc19jb2xsYXBzaWJsZSIgaWQ9InNlY3Rpb24nIC4gJHVzZXJpZCAuICctJyAuICR0YWJbJ3RhYmlkJ10gLiAnLScgLiAkZmxkWydmaWVsZGlkJ10gLiAnIj48c3Bhbj48L3NwYW4+ICcgLiAkZmxkWyduYW1lJ10gLiAnPC9sZWdlbmQ+PGRpdj4nOwoJCQlicmVhazsKCgkJY2FzZSAnZmllbGRzZXRlbmQnOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAnPC9kaXY+PC9maWVsZHNldD4gPCEtLSBlbmQgY2dzX2NvbGxhcHNpYmxlIC0tPic7CgkJCWJyZWFrOwoJfQoKCWFycmF5X3B1c2ggKCRyb3dhcnJheSwgJG9uZXJvdyk7Cn0KCiRzbWFydHktPmFzc2lnbigndGFiaWQnLCAkdGFiWyd0YWJpZCddICk7CiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkgKTsKJHNtYXJ0eS0+YXNzaWduKCdjZ3NfdXJsX3BhdGgnLCAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpKTsKCiRzbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3N1Ym1pdGJ1dHRvbicsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2dlbmVyYWwudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IC0gMjAxOSBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSApCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMobGFuZygnbmVlZHBlcm1pc3Npb250bycsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykpOwoJcmV0dXJuOwp9Cgokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX2N1c3RvbV9tb2R1bGVuYW1lJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2N1c3RvbV9tb2R1bGVuYW1lJykpOwkKJHNtYXJ0eS0+YXNzaWduKCdoZWxwX2N1c3RvbV9tb2R1bGVuYW1lJywgJHRoaXMtPkxhbmcoJ2hlbHBfY3VzdG9tX21vZHVsZW5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF9jdXN0b21fbW9kdWxlbmFtZScsJycpLDUwLDI1NSkpOwoKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9hZG1pbl9zZWN0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2FkbWluX3NlY3Rpb24nKSk7CQokc21hcnR5LT5hc3NpZ24oJ2hlbHBfYWRtaW5fc2VjdGlvbicsICR0aGlzLT5MYW5nKCdoZWxwX2FkbWluX3NlY3Rpb24nKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfYWRtaW5fc2VjdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2lucHV0X2FkbWluX3NlY3Rpb24nLAoJCQkJYXJyYXkobGFuZygnbWFpbicpID0+ICdtYWluJywKCQkJCQkJCWxhbmcoJ2NvbnRlbnQnKSA9PiAnY29udGVudCcsCgkJCQkJCQlsYW5nKCdsYXlvdXQnKSA9PiAnbGF5b3V0JywKCQkJCQkJCWxhbmcoJ3VzZXJzZ3JvdXBzJykgPT4gJ3VzZXJzZ3JvdXBzJywKCQkJCQkJCWxhbmcoJ2V4dGVuc2lvbnMnKSA9PiAnZXh0ZW5zaW9ucycsCgkJCQkJCQlsYW5nKCdhZG1pbicpID0+ICdhZG1pbicsCgkJCQkJCQlsYW5nKCdteXByZWZzJykgPT4gJ215cHJlZnMnKSwKCQkJCS0xLAoJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkbWluX3NlY3Rpb24nLCAnZXh0ZW5zaW9ucycpCikpOwoKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV94bWxpbXBvcnQnLCAkdGhpcy0+TGFuZygneG1sX2ltcG9ydCcpKTsJCiRzbWFydHktPmFzc2lnbignaW5wdXRfeG1saW1wb3J0JywgJHRoaXMtPkNyZWF0ZUlucHV0RmlsZSgkaWQsICd4bWxmaWxlJywgJy54bWwnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX3htbGV4cG9ydCcsICR0aGlzLT5MYW5nKCd4bWxfZXhwb3J0JykpOwkKJHNtYXJ0eS0+YXNzaWduKCd4bWxleHBvcnQnLCAnIDxhIGhyZWY9IicgLiBodG1sX2VudGl0eV9kZWNvZGUoJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCAneG1sX2V4cG9ydCcsICRyZXR1cm5pZCkpIC4gJyZzaG93dGVtcGxhdGU9ZmFsc2UiPicgLiAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZXhwb3J0LmdpZicsIGxhbmcoJ3htbCcpLCAnJywgJycsICdzeXN0ZW1pY29uJykgLiAnICcgLiBsYW5nKCd4bWwnKSAuICc8L2E+Jyk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX29wdGlvbnMudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_tabs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IC0gMjAxOSBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSApCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMobGFuZygnbmVlZHBlcm1pc3Npb250bycsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykpOwoJcmV0dXJuOwp9CgoKJHJvd2FycmF5ID0gYXJyYXkoKTsKCiRyb3dzID0gJHRoaXMtPkdldFRhYnMoKTsKJHJvd2NvdW50ID0gY291bnQoJHJvd3MpOwoKaWYgKCAhZW1wdHkoJHJvd3MpICYmICRyb3djb3VudCA+IDAgKQp7Cgkkcm93Y2xhc3MgPSAncm93MSc7Cglmb3JlYWNoICggJHJvd3MgYXMgJGtleSA9PiAkaXRlbSApCgl7CgkJJHJvdyA9IG5ldyBTdGRDbGFzcygpOwoJCSRyb3ctPnRhYmlkID0gJGl0ZW1bJ3RhYmlkJ107CgkJJHJvdy0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXR0YWInLCAkcmV0dXJuaWQsICRpdGVtWyduYW1lJ10sIGFycmF5KCd0YWJpZCcgPT4gJGl0ZW1bJ3RhYmlkJ10sICdtb2RlJz0+J2VkaXQnKSk7CgkJCgkJaWYgKCAkaXRlbVsnc29ydG9yZGVyJ10gPiAxICkKCQl7CgkJCSRyb3ctPm1vdmV1cCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXR0YWInLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZicsIGxhbmcoJ3VwJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ3RhYmlkJyA9PiAkaXRlbVsndGFiaWQnXSwgJ21vZGUnPT4nbW92ZXVwJykpOwoJCX0KCQllbHNlCgkJewoJCQkkcm93LT5tb3ZldXAgPSAnJzsKCQl9CgkJCgkJaWYgKCAka2V5IDwgJHJvd2NvdW50IC0gMSAmJiAkcm93c1ska2V5KzFdWydzb3J0b3JkZXInXSAhPSAxICkKCQl7CgkJCSRyb3ctPm1vdmVkb3duID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdHRhYicsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmJywgbGFuZygnZG93bicpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCd0YWJpZCcgPT4gJGl0ZW1bJ3RhYmlkJ10sICdtb2RlJz0+J21vdmVkb3duJykpOwoJCX0KCQllbHNlCgkJewoJCQkkcm93LT5tb3ZlZG93biA9ICcnOwoJCX0KCQkKCQkkcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXR0YWInLCAkcmV0dXJuaWQsCgkJCQkJCQkkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCBsYW5nICgnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCQkJCQlhcnJheSAoJ3RhYmlkJyA9PiAkaXRlbVsndGFiaWQnXSwgJ21vZGUnPT4nZWRpdCcpKTsKCQkkcm93LT5kZWxldGVsaW5rID0gJHJvd2NvdW50ID4gMSA/ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXR0YWInLCAkcmV0dXJuaWQsCgkJCQkJCQkkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsIGxhbmcgKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQkJCQkJYXJyYXkgKCd0YWJpZCcgPT4gJGl0ZW1bJ3RhYmlkJ10sICdtb2RlJz0+J2RlbGV0ZScpLCBsYW5nICgnZGVsZXRlY29uZmlybScsJGl0ZW1bJ25hbWUnXSkpCgkJCQkJCQk6ICcnOwoKCQlhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOwoJfQp9CmlmICggJHJlc3VsdCA9PT0gRkFMU0UgKQp7CgllY2hvICdFUlJPUjogJyAuIG15c3FsX2Vycm9yKCk7CglleGl0KCk7Cn0KCgokc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJHJvd2FycmF5ICk7CiRzbWFydHktPmFzc2lnbignbmFtZScsIGxhbmcoJ25hbWUnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ25ld3RhYmxpbmsnLAoJICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0dGFiJywgJHJldHVybmlkLAoJCQkgICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgbGFuZygnYWRkJyksJycsJycsJ3N5c3RlbWljb24nKSwKCQkJICAgICBhcnJheSgnbW9kZScgPT4gJ2FkZCcpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykuJyAnLgoKCSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdHRhYicsICRyZXR1cm5pZCwKCQkJICAgICBsYW5nKCdhZGQnKSwKCQkJICAgICBhcnJheSgnbW9kZScgPT4gJ2FkZCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ21vZF9pZCcsICRpZCk7CiRzbWFydHktPmFzc2lnbignY2dzX3VybF9wYXRoJywgJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nICgnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fdGFicy50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/help_text.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0icGFnZV90YWJzIj4NCiAgICA8ZGl2IGlkPSJnZW5lcmFsIj5HZW5lcmFsPC9kaXY+DQoJPGRpdiBpZD0ic3RhcnQiPkdldHRpbmcgc3RhcnRlZDwvZGl2Pg0KCTxkaXYgaWQ9InBlcm1pc3Npb25zIj5QZXJtaXNzaW9uczwvZGl2Pg0KCTxkaXYgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwvZGl2Pg0KCTxkaXYgaWQ9InRyb3VibGVzaG9vdGluZyI+VHJvdWJsZXNob290aW5nPC9kaXY+DQogICAgPGRpdiBpZD0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2Rpdj4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pg0KDQo8ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPg0KCTxkaXYgaWQ9ImdlbmVyYWxfYyI+DQoJCTxwPlRoaXMgbW9kdWxlIGV4dGVuZHMgdGhlIEdsb2JhbCBTZXR0aW5ncyB3aXRoIHNvbWUgY3VzdG9taXplZCBwYXJhbWV0ZXJzLjxiciAvPg0KCQlZb3UgY2FuIGRlZmluZSBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGZpZWxkcyB3aGljaCBjYW4gYmUgdXNlZCBhcyBzbWFydHktdmFyaWFibGUgaW4gdGVtcGxhdGVzIG9yIHBhZ2VzLjwvcD4NCgkJPGJyIC8+DQoJCTxwPkF2YWlsYWJsZSBhcmU6PC9wPg0KCQk8dWw+DQoJCTxsaT5CdXR0b248L2xpPg0KCQk8bGk+Q2hlY2tib3g8L2xpPg0KCQk8bGk+Q29sb3JwaWNrZXI8L2xpPg0KCQk8bGk+RGF0ZXBpY2tlcjwvbGk+DQoJCTxsaT5EYXRlIGFuZCB0aW1lcGlja2VyPC9saT4NCgkJPGxpPkZpbGVQaWNrZXIgPGk+KENvcmUgRmlsZVBpY2tlciBtb2R1bGUgbmVlZHMgdG8gYmUgaW5zdGFsbGVkKTwvaT48L2xpPg0KCQk8bGk+R0JGaWxlUGlja2VyIDxpPihtb2R1bGUgR0JGaWxlUGlja2VyIG5lZWRzIHRvIGJlIGluc3RhbGxlZCk8L2k+PC9saT4NCgkJPGxpPkpNRmlsZVBpY2tlciA8aT4obW9kdWxlIEpNRmlsZVBpY2tlciBuZWVkcyB0byBiZSBpbnN0YWxsZWQpPC9pPjwvbGk+DQoJCTxsaT5QYWdlIHNlbGVjdG9yPC9saT4NCgkJPGxpPlB1bGxkb3duPC9saT4NCgkJPGxpPlJhZGlvYnV0dG9uZ3JvdXA8L2xpPg0KCQk8bGk+VGV4dGFyZWE8L2xpPg0KCQk8bGk+VGV4dGFyZWEgd2l0aCBXWVNJV1lHPC9saT4NCgkJPGxpPlRleHRmaWVsZDwvbGk+DQoJCTxsaT5UaW1lcGlja2VyPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJCTxwPkFkZGl0aW9uYWwgdGhlcmUgaXMgYSBzcGVjaWFsIGZpZWxkZGVmaW5pdGlvbiAiRmllbGRncm91cCBzdGFydCIuIFdpdGggdGhpcyBvcHRpb24geW91IGNhbiBjcmVhdGUgYSBjb2xsYXBzaWJsZSBncm91cCBvZiBmaWVsZHMuPGJyIC8+DQoJCUFmdGVyIGNyZWF0aW5nIHRoZSAiRmllbGRncm91cCBzdGFydCIsIGFsc28gYSAiRmllbGRncm91cCBlbmQiIHdpdGggdGhlIHNhbWUgbmFtZSB3aWxsIGJlIGFkZGVkIGF1dG9tYXRpY2FsbHkuIERyYWcgJmFtcDsgZHJvcCBmaWVsZHMgYmV0d2VlbiBzdGFydCBhbmQgZW5kIHRvIHB1dCB0aGVtIGluIHRoZSBncm91cC48L3A+DQoJCTxiciAvPg0KCTwvZGl2Pg0KDQoJPGRpdiBpZD0ic3RhcnRfYyI+DQoJCTxwPkdvIHRvIHRoZSBDdXN0b20gR2xvYmFsIFNldHRpbmdzIG1vZHVsZSBhZG1pbiAoYnkgZGVmYXVsdCB1bmRlciBtZW51ICdFeHRlbnNpb25zJykgYW5kIGRlZmluZSBmaWVsZHMgaW4gdGhlIHRhYiAnRmllbGQgRGVmaW5pdGlvbnMnLjwvcD4NCgkJPHA+SW4gdGhlIHRlbXBsYXRlcyBvciBwYWdlcyBvZiB5b3VyIHdlYnNpdGUgeW91IHdpbGwgbm93IGF1dG9tYXRpY2FsbHkgaGF2ZSB0aG9zZSBzbWFydHkgdmFyaWFibGVzIGF2YWlsYWJsZS48L3A+DQoJCTxiciAvPg0KCQk8cD5UaGUgZXhhY3Qgd2F5IHRvIGNhbGwgZWFjaCB2YXJpYWJsZSBpcyBzaG93biBpbiB0aGUgJ0ZpZWxkIERlZmluaXRpb25zJyB0YWIuPGJyIC8+WW91IGNhbiBhbHNvIGNoZWNrIHdoaWNoIHZhcmlhYmxlcyBhbmQgdmFsdWVzIGFyZSBhdmFpbGFibGUgYnkgcGxhY2luZyA8Yj57Q3VzdG9tR1Mgc2hvd3ZhcnM9MX08L2I+IGluIHRoZSBjb250ZW50IGZpZWxkIG9mIGEgcGFnZS48L3A+DQoJCTxiciAvPg0KCQk8cD48Yj5Ob3RlOjwvYj4gaW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhpcyBtb2R1bGUsIHlvdSBuZWVkZWQgdG8gcHV0IHRoZSB0YWcge0N1c3RvbUdTfSBpbiB5b3VyIHRlbXBsYXRlKHMpLiBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4gV2hlbiB5b3UgdXBncmFkZSBmcm9tIGEgdmVyc2lvbiBwcmlvciB0byAyLjIsIHlvdSBzaG91bGQgZGVsZXRlIHRoZSB7Q3VzdG9tR1N9IHRhZyBmcm9tIHlvdXIgdGVtcGxhdGVzLCBhbHRob3VnaCBpdCB3b24ndCBkbyBhbnkgaGFybSBpZiB5b3UgbGVhdmUgaXQgdGhlcmUuPC9wPg0KCQk8YnIgLz4NCgkJPGg0Pk9yZ2FuaXppbmcgZmllbGRzPC9oND4NCgkJPHA+V2hlbiB5b3UgaGF2ZSBtYW55IGZpZWxkZGVmaW5pdGlvbnMsIHlvdSBjYW4gb3JnYW5pemUgdGhlbSBieSBjcmVhdGluZyBjdXN0b20gdGFicy48L3A+DQoJCTxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdG8gb25lIG9yIG1vcmUgdGFicywgd2hpbGUgZWRpdGluZyB0aGUgZmllbGRkZWZpbml0aW9uLiBBIG1vcmUgZWFzeSB3YXkgaXMgdG8gc2VsZWN0IGEgdGFiIGluIHRoZSBkcm9wZG93biBhdCB0aGUgdG9wIG9mIHRoZSBmaWVsZGRlZmluaXRpb25zbGlzdCBhbmQgdGhlbiB0b2dnbGUgdGhlIFYtbWFya3MuIENoYW5nZXMgYXJlIGltbWVkaWF0ZWx5IHNhdmVkLjxiciAvPlRoZSB0YWItZHJvcGRvd24gd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWVsZGRlZmluaXRpb25zbGlzdCB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIGN1c3RvbSB0YWJzIHlvdSBoYXZlIHBlcm1pc3Npb25zIG9uLjwvcD4NCgkJPGJyIC8+DQoJCTxwPlRoZSBzb3J0b3JkZXIgb2YgZmllbGRkZWZpbml0aW9ucyBhbmQgY3VzdG9tIHRhYnMgY2FuIGJlIGNoYW5nZWQgYnkgZHJhZ2dpbmcgJmFtcDsgZHJvcHBpbmcgdGhlIHJvd3MgaW4gdGhlaXIgbGlzdC4gVGhlIG5ldyBzb3J0b3JkZXIgd2lsbCBiZSBzYXZlZCBpbW1lZGlhdGVseSBvbiBkcm9wLjwvcD4NCgkJPGJyIC8+DQoJPC9kaXY+DQoNCgk8ZGl2IGlkPSJwZXJtaXNzaW9uc19jIj4NCgkJPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhyZWUgZGlmZmVyZW50IGxldmVscyBvZiBwZXJtaXNzaW9uczogb24gYSBtb2R1bGUgbGV2ZWwsIG9uIGEgdGFiIGxldmVsIGFuZCBvbiBhIGZpZWxkIGxldmVsLjwvcD4NCgkJPGg0Pk1vZHVsZSBsZXZlbDwvaDQ+DQoJCTxwPkZvciBzZXR0aW5nIG1vZHVsZSBwZXJtaXNzaW9ucywgZ28gdG8gbWVudSA8aT5Vc2VycyAmIEdyb3VwcyDCuyBHcm91cCBQZXJtaXNzaW9uczwvaT46PC9wPg0KCQk8dWw+DQoJCTxsaT48Yj5DdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlPC9iPjxiciAvPg0KCQlBIHBlcm1pc3Npb24gZm9yIGVkaXRvcnMuIEl0IHdpbGwgb25seSBzaG93IHRoZSAoY3VzdG9tKSB0YWJzIGZvciBjaGFuZ2luZyBmaWVsZHZhbHVlcyBpbiB0aGUgbW9kdWxlIGFkbWluIHBhZ2UuPC9saT4NCgkJPGxpPjxiPkN1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2U8L2I+PGJyIC8+DQoJCUEgcGVybWlzc2lvbiBmb3IgYWRtaW5pc3RyYXRvcnMuIEl0IHdpbGwgc2hvdyBleHRyYSB0YWJzIGZvciBjcmVhdGluZy9lZGl0aW5nIGZpZWxkZGVmaW5pdGlvbnMsIHRhYnMgYW5kIG9wdGlvbnMuPC9saT4NCgkJPC91bD4NCgkJPGg0PlRhYiBsZXZlbDwvaDQ+DQoJCTxwPldoZW4gY3JlYXRpbmcgb3IgZWRpdGluZyBhIGN1c3RvbSB0YWIsIHNlbGVjdCBvbmUgb3IgbW9yZSBncm91cHMgaW4gdGhlIDxiPkdyb3VwIFBlcm1pc3Npb25zPC9iPiBkcm9wZG93biBsaXN0ICh3aXRoIGN0cmwpLiBPbmx5IHVzZXJzIHdobyBiZWxvbmcgdG8gdGhlIHNlbGVjdGVkIGdyb3VwcyB3aWxsIGJlIGFibGUgdG8gc2VlIHRoZSB0YWIgaW4gdGhlIG1vZHVsZSBhZG1pbi4gSWYgbm8gZ3JvdXAgaXMgc2VsZWN0ZWQsIHRoZSB0YWIgd2lsbCBiZSB2aXNpYmxlIGZvciBhbGwgZ3JvdXBzLiA8YnIgLz5UYWJzIHdpbGwgbmV2ZXIgYmUgaGlkZGVuIGZvciBhZG1pbiB1c2Vycy48L3A+DQoJCTxoND5GaWVsZCBsZXZlbDwvaDQ+DQoJCTxwPldoZW4gY3JlYXRpbmcgb3IgZWRpdGluZyBhIGZpZWxkZGVmaW5pdGlvbiwgc2VsZWN0IG9uZSBvciBtb3JlIGdyb3VwcyBpbiB0aGUgPGI+R3JvdXAgUGVybWlzc2lvbnM8L2I+IGRyb3Bkb3duIGxpc3QgKHdpdGggY3RybCkuIE9ubHkgdXNlcnMgd2hvIGJlbG9uZyB0byB0aGUgc2VsZWN0ZWQgZ3JvdXBzIHdpbGwgYmUgYWJsZSB0byBzZWUgYW5kIGNoYW5nZSB0aGUgZmllbGR2YWx1ZSBhc3NpZ25lZCB0YWIocykuIElmIG5vIGdyb3VwIGlzIHNlbGVjdGVkLCB0aGUgZmllbGQgd2lsbCBiZSB2aXNpYmxlIGZvciBhbGwgZ3JvdXBzLjwvcD4NCgkJPHA+Tm90ZSB0aGF0IGEgdXNlciB3aWxsIG5vdCBiZSBhYmxlIHRvIHNlZSBhIGZpZWxkIHdoZW4gdGhhdCBmaWVsZCB3YXMgYXNzaWduZWQgb25seSB0byB0YWIocykgZm9yIHdoaWNoIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMuPC9wPg0KCQk8cD5GaWVsZHMgd2lsbCBuZXZlciBiZSBoaWRkZW4gZm9yIGFkbWluIHVzZXJzLjwvcD4NCgkJPGJyIC8+DQoJPC9kaXY+DQoNCgk8ZGl2IGlkPSJleGFtcGxlc19jIj4NCgkJPGgzPkNIRUNLQk9YPC9oMz4NCgkJPGg0PkNoYW5nZSBmcm9udGVuZCB0aGVtZTwvaDQ+DQoJCTxwPkRlZmluZSBhIGNoZWNrYm94ICdDaHJpc3RtYXMgbm93JyB3aGljaCB3aWxsIGFjdGl2YXRlIGEgc3BlY2lhbCB0aGVtZSBvbiB0aGUgZnJvbnRlbmQgd2hlbiBjaGVja2VkPC9wPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPg0KCQl7aWYgJEN1c3RvbUdTLkNocmlzdG1hc19ub3cgPT0gJzEnfTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7KiBTaG93IENocmlzdG1hcyBmcm9udGVuZCB0aGVtZSAqfTxiciAvPg0KCQl7ZWxzZX08YnIgLz4NCgkJJm5ic3A7Jm5ic3A7Jm5ic3A7eyogU2hvdyBkZWZhdWx0IGZyb250ZW5kIHRoZW1lICp9PGJyIC8+DQoJCXsvaWZ9DQoJCTwvY29kZT4NCgkJPC9wPg0KCQk8YnIgLz4NCgkJDQoJCTxoND5NYWdpYyB3aXRoIGEgY2hlY2tib3g8L2g0Pg0KCQk8cD5EZWZpbmUgYSBjaGVja2JveCAnTXlDaGVja2JveCcgd2hpY2ggd2lsbCBkbyBzb21lIG1hZ2ljIHN0dWZmIHdoZW4gdW5jaGVja2VkPC9wPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPg0KCQl7aWYgJEN1c3RvbUdTLk15Q2hlY2tib3ggIT0gJzEnfTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7KiBEbyBzb21lIG1hZ2ljIHN0dWZmICp9PGJyIC8+DQoJCXsvaWZ9DQoJCTwvY29kZT4NCgkJPC9wPg0KCQk8YnIgLz4NCgkJDQoJCTxoMz5EQVRFIGFuZCBUSU1FUElDS0VSPC9oMz4NCgkJPGg0PkRpc3BsYXkgcGFnZSBjb250ZW50IG9ubHkgaW4gYSBzcGVjaWZpYyB0aW1lZnJhbWU8L2g0Pg0KCQk8cD5EZWZpbmUgdHdvIHRpbWVwaWNrZXIgZmllbGRzICdzdGFydHRpbWUnIGFuZCAnZW5kdGltZScuIFJlcGxhY2UgdGhlIHtjb250ZW50fSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlIHdpdGggdGhpcyBjb2RlIGFuZCB0aGUgbm9ybWFsIHBhZ2UgY29udGVudCBpcyBvbmx5IHZpc2libGUgd2hlbiB0aGUgY3VycmVudCB0aW1lIGlzIGJldHdlZW4gdGhlIHN0YXJ0dGltZSBhbmQgZW5kdGltZS48L3A+DQoJCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4NCgkJPGNvZGU+DQoJCXtpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJUg6JU0nID49ICRDdXN0b21HUy5zdGFydHRpbWUgJiYgJHNtYXJ0eS5ub3d8ZGF0ZV9mb3JtYXQ6JyVIOiVNJyA8PSAkQ3VzdG9tR1MuZW5kdGltZX08YnIgLz4NCgkJJm5ic3A7Jm5ic3A7Jm5ic3A7e2NvbnRlbnR9PGJyIC8+DQoJCXtlbHNlfTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7Y29udGVudCBibG9jaz0iU2l0ZUNsb3NlZENvbnRlbnQifTxiciAvPg0KCQl7L2lmfTxiciAvPg0KCQk8L2NvZGU+DQoJCTwvcD4NCgkJPGJyIC8+DQoJCQ0KCQk8aDM+UFVMTERPV048L2gzPg0KCQk8aDQ+UHVsbGRvd24gZm9yIEZlYXR1cmVkIE5ld3NhcnRpY2xlPC9oND4NCgkJPHA+RGVmaW5lIGEgcHVsbGRvd24gZmllbGQgdGhhdCBjb250YWlucyB0aGUgdGl0bGVzIG9mIGFydGljbGVzIGZyb20gdGhlIE5ld3MgbW9kdWxlLCBzbyB0aGUgdXNlciBjYW4gY2hvb3NlIGEgZmVhdHVyZWQgYXJ0aWNsZSB3aGljaCBjYW4gYmUgZGlzcGxheWVkIG9uIGEgc3BlY2lhbCBzZWN0aW9uIG9uIHRoZSBzaXRlLjwvcD4NCg0KCQk8cD5GaXJzdCBjcmVhdGUgYSBuZXcgc3VtbWFyeXRlbXBsYXRlIGluIHRoZSBOZXdzIG1vZHVsZSwgbmFtZWQgIkN1c3RvbUdTX3B1bGxkb3duIiB3aXRoIHRoZSBmb2xsb3dpbmcgY29udGVudDo8L3A+DQoNCgkJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KCQk8Y29kZT57Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7JGVudHJ5LSZndDtpZH18eyRlbnRyeS0mZ3Q7dGl0bGV9PGJyIC8+DQoJCXsvZm9yZWFjaH08L2NvZGU+DQoJCTwvcD4NCgkJPGJyIC8+DQoJCTxwPlRoZW4gZGVmaW5lIGEgbmV3IGZpZWxkIGluIHRoZSBDdXN0b20gR2xvYmFsIFNldHRpbmdzIG1vZHVsZTwvcD4NCg0KCQk8cD48Yj5OYW1lOjwvYj4gRmVhdHVyZWQgTmV3czxiciAvPg0KCQk8Yj5UeXBlOjwvYj4gUHVsbGRvd248YnIgLz4NCgkJPGI+UHJvcGVydGllczo8L2I+IHtjbXNfbW9kdWxlIG1vZHVsZT0nTmV3cycgc3VtbWFyeXRlbXBsYXRlPSdDdXN0b21HU19wdWxsZG93bid9PGJyIC8+DQoJCU5vdGUgdGhhdCBzaG9ydCBtb2R1bGUgdGFncyB3b24ndCB3b3JrIGluIHRoZSBiYWNrLWVuZCwgc28geW91IGhhdmUgdG8gdXNlIHRoZSBjbXNfbW9kdWxlIHRhZy48L3A+DQoJCTxiciAvPg0KCQk8cD5GaW5hbGx5IHB1dCB0aGlzIHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUgdG8gZGlzcGxheSB0aGUgZmVhdHVyZWQgbmV3c2FydGljbGU6PC9wPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPntuZXdzIGFjdGlvbj0nZGV0YWlsJyBhcnRpY2xlaWQ9JEN1c3RvbUdTLkZlYXR1cmVkX05ld3N9PC9jb2RlPg0KCQk8L3A+DQoJCTxiciAvPg0KCQkNCgkJPGgzPlJBRElPQlVUVE9OR1JPVVA8L2gzPg0KCQk8aDQ+Q2hhbmdlIGZyb250ZW5kIGNvbG9yPC9oND4NCg0KCQk8cD5DcmVhdGUgYSBSYWRpb2J1dHRvbiBncm91cCBuYW1lZCAidGV4dGNvbG9yIjwvcD4NCgkJPHA+VGhlIHByb3BlcnRpZXMgdmFsdWUgYXJlOjxwPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCSNmZjAwMDB8cmVkPGJyIC8+DQoJCSMwMGZ8Ymx1ZTxiciAvPg0KCQkjMTAxMDEwfGFsbW9zdCBibGFjazwvcD4NCgkJPGJyIC8+DQoJCTxwPkFsc28gY2xpY2sgdGhlIGNoZWNrYm94ICdDbGVhciBzdHlsZXNoZWV0Y2FjaGUnLiBUaGlzIHdpbGwgYXV0b21hdGljYWxseSByZW5ldyB0aGUgc3R5bGVzaGVldHMuPC9wPg0KCQk8YnIgLz4NCgkJPHA+QWRkIHRvIHRoZSB0b3Agb2YgeW91ciBzdHlsZXNoZWV0OjwvcD4NCgkJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KCQk8Y29kZT5bW0N1c3RvbUdTXV08L2NvZGU+DQoJCTwvcD4NCgkJPGJyIC8+DQoJCTxwPlRvIGNoYW5nZSBmb3IgZXhhbXBsZSB0aGUgY29sb3Igb2YgdGhlIHAtdGV4dCBhZGQ6PC9wPg0KCQk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPmNvbG9yOiBbWyRDdXN0b21HUy50ZXh0Y29sb3JdXTs8L2NvZGU+DQoJCTwvcD4NCgkJPGJyIC8+DQoJCTxwPk9yIGRpcmVjdGx5IGluY2x1ZGVkIGluIGEgcGFnZSBvciB0ZW1wbGF0ZTo8cD4NCgkJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KCQk8Y29kZT4mbHQ7cCBzdHlsZT0iY29sb3I6IHskQ3VzdG9tR1MudGV4dGNvbG9yfTsiJmd0O0xvcmVtIElwc3VtJmx0Oy9wJmd0OzwvY29kZT4NCgkJPC9wPg0KCQk8YnIgLz4NCg0KCQk8aDM+VEVYVEZJRUxEPC9oMz4NCgkJPGg0PlNob3cgY3VycmVudCB0cmFpbmVyPC9oND4NCgkJPHA+RGVmaW5lIGEgdGV4dGZpZWxkIG9yIHB1bGxkb3duIGZpZWxkICdUcmFpbmVyJyB3aGljaCB3aWxsIGNvbnRhaW4gdGhlIGN1cnJlbnQgdHJhaW5lcnMgbmFtZS48L3A+DQoJCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4NCgkJPGNvZGU+DQoJCSZsdDtwJmd0O1RoaXMgd2Vla3MgdHJhaW5lcnMgbmFtZSBpczogeyRDdXN0b21HUy5UcmFpbmVyfSZsdDsvcCZndDsNCgkJPC9jb2RlPg0KCQk8L3A+DQoJCTxiciAvPg0KCTwvZGl2Pg0KDQoJPGRpdiBpZD0idHJvdWJsZXNob290aW5nX2MiPg0KCQk8aDQ+Q2hlY2sgdGVtcGxhdGUgdmFyaWFibGVzPC9oND4NCgkJPHA+WW91IGNhbiBjaGVjayB3aGljaCB2YXJpYWJsZXMgYW5kIHZhbHVlcyBhcmUgYXZhaWxhYmxlIGJ5IHBsYWNpbmcgPGI+e0N1c3RvbUdTIHNob3d2YXJzPTF9PC9iPiBpbiB0aGUgY29udGVudCBmaWVsZCBvZiBhIHBhZ2UuPC9wPg0KCQk8YnIgLz4NCgkJDQoJCTxoND5TbWFydHkgZXJyb3I8L2g0Pg0KCQk8cD48Yj5FcnJvcjo8L2I+IFNtYXJ0eSBlcnJvcjogW2luIHRlbXBvcmFyeSB0ZW1wbGF0ZSBsaW5lIDRdOiBbcGx1Z2luXSB1bmtub3duIHRhZy4uLjwvcD4NCgkJPHA+PGI+U29sdXRpb246PC9iPiBZb3UgcHJvYmFibHkgaGF2ZSBlbnRlcmVkIGN1cmx5IGJyYWNrZXQgJiMxMjM7ICYjMTI1OyBzaWducyBpbiB0aGUgcHJvcGVydGllcyBmaWVsZCBvZiBhIHB1bGxkb3duIG9yIHJhZGlvYnV0dG9uIGZpZWxkZGVmaW5pdGlvbi4gVGhlc2UgYXJlIGludGVycHJldGVkIGJ5IFNtYXJ0eS48L3A+DQoJCTxwPkRlbGV0ZSB0aGVtLCB1c2UgPGNvZGU+JiMxMjM7Y21zX21vZHVsZSYjMTI1OzwvY29kZT4gdGFnIGluIHN0ZWFkIG9mIHRoZSBzaG9ydCBtb2R1bGUgY2FsbCwgb3IgdXNlIDxjb2RlPiYjMTIzO2xpdGVyYWwmIzEyNTs8L2NvZGU+IHRhZ3MuPC9wPg0KCQk8YnIgLz4NCgkJDQoJCTxoND5DYW4ndCBjaG9vc2UgR0JGaWxlUGlja2VyIGFueW1vcmUgYWZ0ZXIgdXBncmFkaW5nIHRvIENNU01TIDIueDwvaDQ+DQoJCTxwPjxiPkVycm9yOjwvYj4gR0JGaWxlUGlja2VyIChOb3QgaW5zdGFsbGVkKTwvcD4NCgkJPHA+PGI+U29sdXRpb246PC9iPiBJbnN0YWxsIG1vZHVsZSBKTUZpbGVQaWNrZXIgYW5kIHRoZW4gY2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBmaWVsZGRlZmluaXRpb24gYWNjb3JkaW5nbHkuIFRoZSBlYXJsaWVyIHNlbGVjdGVkIGltYWdlIHdpbGwgYmUgcHJlc2VydmVkLjwvcD4NCgkJPGJyIC8+DQoJCQ0KCQk8aDQ+dG1wL2NhY2hlL2RlYnVnLmxvZyBnZXRzIGZsb29kZWQgd2l0aCBDdXN0b21HUyBlcnJvcnM8L2g0Pg0KCQk8cD48Yj5FcnJvcjo8L2I+IFJlZHVuZGFudCB7Q3VzdG9tR1N9IHRhZyBmb3VuZC48L3A+DQoJCTxwPjxiPlNvbHV0aW9uOjwvYj4gSW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhpcyBtb2R1bGUsIHlvdSBuZWVkZWQgdG8gcHV0IHRoZSB0YWcge0N1c3RvbUdTfSBpbiB5b3VyIHRlbXBsYXRlKHMpLiBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4gV2hlbiB5b3UgaGF2ZSB1cGdyYWRlZCBmcm9tIGEgdmVyc2lvbiBwcmlvciB0byAyLjIsIHlvdSBzaG91bGQgZGVsZXRlIHRoZSB7Q3VzdG9tR1N9IHRhZyBmcm9tIHlvdXIgdGVtcGxhdGVzLjwvcD4NCgkJPGJyIC8+DQoJCQ0KCQk8aDQ+T3RoZXIgRXJyb3JzPC9oND4NCgkJPHA+PGI+RXJyb3I6PC9iPiBNeSBwcm9ibGVtIHdhcyBub3QgZGVzY3JpYmVkIGhlcmUuPC9wPg0KCQk8cD48Yj5Tb2x1dGlvbjo8L2I+IFNldCBEZWJ1ZyB0byAndHJ1ZScgaW4gY29uZmlnLnBocCBhbmQgc2VlIGlmIGFueSBlcnJvciBtZXNzYWdlcyBhcHBlYXIuIExvb2sgYWxzbyBmb3IgZXJyb3IgbWVzc2FnZXMgaW4gdGhlIGh0bWwgc291cmNlY29kZS4gTWF5YmUgdGhlIGVycm9yIG1lc3NhZ2UgdGVsbHMgeW91IGVub3VnaCB0byBzb2x2ZSB0aGUgaXNzdWUgeW91cnNlbGYuIFNvbWVvbmUgZWxzZSBtYXkgaGF2ZSBlbmNvdW50ZXJlZCB0aGUgc2FtZSBwcm9ibGVtIGJlZm9yZSB5b3UsIHNvIHlvdSBjb3VsZCBhbHNvIHNlYXJjaCB0aGUgQ01TTVMgZm9ydW0gZm9yIHBvc3NpYmxlIHNvbHV0aW9ucy4gSWYgeW91IGhhdmVuJ3QgZm91bmQgYW55IHJlbGF0ZWQgdG9waWNzLCBwbGVhc2UgZmVlbCBmcmVlIHRvIG9wZW4gYSBuZXcgZm9ydW10b3BpYy48L3A+DQoJCTxiciAvPg0KCTwvZGl2Pg0KDQoJPGRpdiBpZD0iY29weXJpZ2h0X2MiPg0KCQk8cD5Db3B5cmlnaHQgwqkgMjAxMiwgUm9sZiBUamFzc2VucyAmbHQ7aW5mbyBhdCBjbXNjYW5iZXNpbXBsZSBkb3Qgb3JnJmd0OywgSm9zICZsdDs8YSBocmVmPSJtYWlsdG86am9zdmRAbGl2ZS5ubCI+am9zdmRAbGl2ZS5ubDwvYT4mZ3Q7LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQoJCTxiciAvPg0KCQk8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIiB0YXJnZXQ9Il9ibGFuayI+R05VIFB1YmxpYyBMaWNlbnNlIHYzPC9hPi48YnIgLz4NCgkJPGI+SG93ZXZlcjwvYj4sIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiBZb3UgbWF5IG9ubHkgdXNlIHRoaXMgc29mdHdhcmUgd2hlbiB0aGVyZSBpcyBhIGNsZWFyIGFuZCBvYnZpb3VzIGluZGljYXRpb24gaW4gdGhlIGFkbWluIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBTaW1wbGUhPC9wPg0KCQk8YnIgLz4NCgk8L2Rpdj4NCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAPYAAPD4+QAAAOz09YmOj4CEheDo6bzDxMzS05WamgAAAIaKi7vBwi8wMU1QUN7m55yioouQkeTs7Xp+fxobG6itrpqgoJGWlubu7+ry856kpMLJyUBCQgsLC1pdXtHY2dvi47G3uCcpKTM0NEJERMjOz7m/wDg6OklMTDo8PERGRsTLy77FxlVXWKqvsN3k5WltbaKnqK2ztK+1tlhbXFZZWlxfYH6Cg9Pa23d7e+7295menhYXFykqK1FTVAMDA0tOTsDHxzQ2NlNVVhgZGeLq68rQ0ZOYmNXc3dng4Tw+PqClpiIjIx4fH6Spqmtvb0VISDEyMmRnZ8bNzbW7vCMlJXV5eT5AQE9SUgkJCQcHB6arrNfe30dKSujw8auxsmBjY2JlZc/W15ecnBERESAhIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAIAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAAIAAEALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkEAAgAAgAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQACAADACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkEAAgABAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQACAAFACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkEAAgABgAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAAIAAcALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIHRvIGV4dGVuZCB0aGUgR2xvYmFsIFNldHRpbmdzIHdpdGggc29tZSBjdXN0b21pemVkIHBhcmFtZXRlcnMuIFlvdSBjYW4gZGVmaW5lIGFuIHVubGltaXRlZCBudW1iZXIgb2YgZmllbGRzIHdoaWNoIGNhbiBiZSB1c2VkIGFzIHNtYXJ0eS12YXJpYWJsZSBpbiB0ZW1wbGF0ZXMgb3IgcGFnZXMuJzsNCg0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnQ3VzdG9tR1MgbW9kdWxlIHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQhJzsNCiRsYW5nWyd1bmluc3RhbGxfY29uZmlybSddID0gJ0RvIHlvdXIgcmVhbGx5IHdhbnQgdG8gdW5pbnN0YWxsIHRoZSBDdXN0b21HUyBtb2R1bGU/JzsNCiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQ3VzdG9tR1MgbW9kdWxlIHN1Y2Nlc3NmdWwgdW5pbnN0YWxsZWQhJzsNCg0KDQovKioNCiAqIEFkbWluIEdlbmVyYWwgVGFiDQogKi8NCiRsYW5nWydub3cnXSA9ICdub3cnOw0KJGxhbmdbJ3RpdGxlX2dlbmVyYWwnXSA9ICdHZW5lcmFsJzsNCiRsYW5nWydjaG9vc2V0aW1lJ10gPSAnQ2hvb3NlIHRpbWUnOw0KJGxhbmdbJ3RpbWUnXSA9ICd0aW1lJzsNCg0KDQovKioNCiAqIEFkbWluIEZpZWxkZGVmcyBUYWINCiAqLw0KJGxhbmdbJ3RpdGxlX2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsNCiRsYW5nWydzbWFydHl2YXInXSA9ICdTbWFydHkgdmFyaWFibGUnOw0KJGxhbmdbJ3RleHRmaWVsZCddID0gJ1RleHRmaWVsZCc7DQokbGFuZ1sncHVsbGRvd24nXSA9ICdQdWxsZG93bic7DQokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7DQokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW9idXR0b24gZ3JvdXAnOw0KJGxhbmdbJ2RhdGVwaWNrZXInXSA9ICdEYXRlcGlja2VyJzsNCiRsYW5nWydkYXRldGltZXBpY2tlciddID0gJ0RhdGVUaW1lcGlja2VyJzsNCiRsYW5nWyd0aW1lcGlja2VyJ10gPSAnVGltZXBpY2tlcic7DQokbGFuZ1snY29sb3JwaWNrZXInXSA9ICdDb2xvcnBpY2tlcic7DQokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOw0KJGxhbmdbJ3BhZ2VzZWxlY3QnXSA9ICdQYWdlIHNlbGVjdG9yJzsNCiRsYW5nWyd3eXNpd3lnJ10gPSAnV1lTSVdZRyc7DQokbGFuZ1snZmllbGRzZXRzdGFydCddID0gJ0ZpZWxkZ3JvdXAgc3RhcnQnOw0KJGxhbmdbJ2ZpZWxkc2V0ZW5kJ10gPSAnRmllbGRncm91cCBlbmQnOw0KJGxhbmdbJ2J1dHRvbiddID0gJ0J1dHRvbic7DQokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOw0KJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdQcm9wZXJ0aWVzJzsNCiRsYW5nWydwcm9wZXJ0aWVzX2hlbHAxJ10gPSAnRW50ZXIgdGhlIGNob2ljZSB2YWx1ZXMsIGVhY2ggb25lIG9uIGEgbmV3IGxpbmUuIEFsc28gc3VwcG9ydHMgVmFsdWV8T3B0aW9uTmFtZSBwYWlycyBhbmQvb3IgU21hcnR5IHRhZ3MnOw0KJGxhbmdbJ3BhcnNlc21hcnR5J10gPSAnUGFyc2UgZGF0YSBieSBTbWFydHknOw0KJGxhbmdbJ2NsZWFyc3R5bGVzaGVldGNhY2hlJ10gPSAnUmVuZXcgc3R5bGVzaGVldCBjYWNoZSc7DQokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcmVuZXcgc3R5bGVzaGVldCBjYWNoZSBhZnRlciBjaGFuZ2luZyB0aGlzIHNldHRpbmcuIFVTRSBXSVRIIENBVVRJT04hJzsNCiRsYW5nWydzaG93b250YWInXSA9ICdTaG93IG9uIHRhYic7DQokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0ZpZWxkIERlZmluaXRpb24gaXMgYWRkZWQnOw0KJGxhbmdbJ2ZpZWxkZGVmc3VwZGF0ZWQnXSA9ICdGaWVsZCBEZWZpbml0aW9uIGxpc3QgaXMgdXBkYXRlZCc7DQoNCg0KLyoqDQogKiBBZG1pbiBUYWJzIFRhYg0KICovDQokbGFuZ1sndGl0bGVfdGFicyddID0gJ1RhYnMnOw0KJGxhbmdbJ3RhYmFkZGVkJ10gPSAnVGFiIGlzIGFkZGVkJzsNCiRsYW5nWyd0YWJ1cGRhdGVkJ10gPSAnVGFiIGlzIHVwZGF0ZWQnOw0KDQoNCi8qKg0KICogQWRtaW4gT3B0aW9ucyBUYWINCiAqLyANCiRsYW5nWyd0aXRsZV9jdXN0b21fbW9kdWxlbmFtZSddID0gJ0N1c3RvbSBNb2R1bGVuYW1lJzsNCiRsYW5nWydoZWxwX2N1c3RvbV9tb2R1bGVuYW1lJ10gPSAnWW91IGNhbiBjaGFuZ2UgdGhlIE1vZHVsZW5hbWUgaGVyZSBhcyB5b3Ugd2lzaC4gSXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aXRsZSBvbiB0aGUgbW9kdWxlIGFkbWluIHBhZ2VzIGFuZCBhcyBtZW51IHRleHQuJzsNCg0KJGxhbmdbJ3RpdGxlX2FkbWluX3NlY3Rpb24nXSA9ICdBZG1pbiBTZWN0aW9uJzsNCiRsYW5nWydoZWxwX2FkbWluX3NlY3Rpb24nXSA9ICdDaG9vc2UgdGhlIEFkbWluIFNlY3Rpb24gKG9yIHRvcC1sZXZlbCBBZG1pbiBNZW51KSB0aGlzIG1vZHVsZSBiZWxvbmdzIHRvLiA8Yj5Ob3RlPC9iPjogVXNlcnMgd2l0aCBFZGl0b3IgcGVybWlzc2lvbnMgZG9uXCd0IGhhdmUgYWNjZXNzIHRvIHRoZSBTaXRlIEFkbWluIHNlY3Rpb24hJzsNCg0KJGxhbmdbJ3htbF9leHBvcnQnXSA9ICdFeHBvcnQgc2V0dGluZ3MgdG8gWE1MJzsNCiRsYW5nWyd4bWxfaW1wb3J0J10gPSAnSW1wb3J0IHNldHRpbmdzIGZyb20gWE1MJzsNCg0KDQovKioNCiAqIFNhdmluZw0KICovIA0KJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdTZXR0aW5ncyBzdWNjZXNzZnVsbHkgc2F2ZWQhJzsNCiRsYW5nWyd1cGRhdGVmYWlsZWQnXSA9ICdVcGRhdGUgZmFpbGVkISc7DQoNCg0KLyoqDQogKiBFdmVudHMNCiAqLw0KJGxhbmdbJ2V2ZW50X2luZm9fT25TZXR0aW5nQ2hhbmdlJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBzZXR0aW5nIGlzIGVkaXRlZC4nOw0KJGxhbmdbJ2V2ZW50X2hlbHBfT25TZXR0aW5nQ2hhbmdlJ10gPSAnPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPmZpZWxkaWQ8L2xpPg0KPGxpPm5hbWU8L2xpPg0KPGxpPmFsaWFzPC9saT4NCjxsaT52YWx1ZTwvbGk+DQo8bGk+Y2xlYXJjYWNoZTwvbGk+DQo8L3VsPg0KJzsNCj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWluIE1vZHVsLCB1bSBkaWUgR2xvYmFsZSBFaW5zdGVsbHVuZ2VuIG1pdCBlaW5pZ2VuIGJlbnV0emVyZGVmaW5pZXJ0ZW4gUGFyYW1ldGVyIHp1IGVyd2VpdGVybi4gRXMgYmlldGV0IElobmVuIGVpbmUgdW5iZWdyZW56dGUgWmFobCB2b24gRmVsZGVybiwgZGllIGFscyBTbWFydHktVmFyaWFibGUgaW4gVGVtcGxhdGVzIG9kZXIgU2VpdGVuIHZlcndlbmRldCB3ZXJkZW4ga8O2bm5lbi4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdEYXMgQ3VzdG9tR1MtTW9kdWwgd3VyZGUgZXJmb2xncmVpY2ggaW5zdGFsbGllcnQhJzsKJGxhbmdbJ3VuaW5zdGFsbF9jb25maXJtJ10gPSAnV29sbGVuIFNpZSBkYXMgQ3VzdG9tR1MtTW9kdWwgd2lya2xpY2ggZGVpbnN0YWxsaWVyZW4/JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEYXMgQ3VzdG9tR1MtTW9kdWwgd3VyZGUgZXJmb2xncmVpY2ggZGVpbnN0YWxsaWVydCEnOwokbGFuZ1snbm93J10gPSAnamV0enQnOwokbGFuZ1sndGl0bGVfZ2VuZXJhbCddID0gJ0FsbGdlbWVpbic7CiRsYW5nWydjaG9vc2V0aW1lJ10gPSAnWmVpdCB3w6RobGVuJzsKJGxhbmdbJ3RpbWUnXSA9ICdaZWl0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkZGVmcyddID0gJ0ZlbGQtRGVmaW5pdGlvbmVuJzsKJGxhbmdbJ3NtYXJ0eXZhciddID0gJ1NtYXJ0eS1WYXJpYWJsZSc7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdUZXh0ZmVsZCc7CiRsYW5nWydwdWxsZG93biddID0gJ0F1ZmtsYXBwbGlzdGUnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydpcF9jaGVjayddID0gJ0lQLVByw7xmdW5nJzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ1JhZGlva25vcGYtR3J1cHBlJzsKJGxhbmdbJ2RhdGVwaWNrZXInXSA9ICdEYXR1bXNhdXN3YWhsJzsKJGxhbmdbJ2RhdGV0aW1lcGlja2VyJ10gPSAnRGF0dW1zLVplaXRhdXN3YWhsJzsKJGxhbmdbJ3RpbWVwaWNrZXInXSA9ICdaZWl0YXVzd2FobCc7CiRsYW5nWydjb2xvcnBpY2tlciddID0gJ0ZhcmJhdXN3YWhsJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dGJlcmVpY2gnOwokbGFuZ1snd3lzaXd5ZyddID0gJ1d5c2l3eWcnOwokbGFuZ1snZmllbGRzZXRzdGFydCddID0gJ0ZlbGRlcmdydXBwZSBBbmZhbmcnOwokbGFuZ1snZmllbGRzZXRlbmQnXSA9ICdGZWxkZXJncnVwcGUgRW5kZSc7CiRsYW5nWydidXR0b24nXSA9ICdUYXN0ZSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbWFsZSBMw6RuZ2UnOwokbGFuZ1sncHJvcGVydGllcyddID0gJ0VpZ2Vuc2NoYWZ0ZW4nOwokbGFuZ1sncHJvcGVydGllc19oZWxwMSddID0gJ0dlYmVuIFNpZSBkaWUgQXVzd2FobC1XZXJ0ZSBlaW4sIGpld2VpbHMgaW4gZWluZXIgbmV1ZW4gWmVpbGUuIFVudGVyc3TDvHR6dCBhdWNoIFZhbHVlfE9wdGlvbk5hbWUgUGFhcmUgdW5kL29kZXIgU21hcnR5LVRhZ3MnOwokbGFuZ1sncGFyc2VzbWFydHknXSA9ICdEYXRlbiBkdXJjaCBTbWFydHkgdmVyYXJiZWl0ZW4nOwokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGUnXSA9ICdad2lzY2hlbmdlc3BlaWNoZXJ0ZW4gU3R5bGVzaGVldHMgbMO2c2NoZW4nOwokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIHp3aXNjaGVuZ2VzcGVpY2hlcnRlbiBTdHlsZXNoZWV0cyBsw7ZzY2hlbiBuYWNoIMOEbmRlcnVuZyBkaWVzZXIgRWluc3RlbGx1bmcuIFZPUlNJQ0hUIEJFSSBERVIgVkVSV0VORFVORyEnOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0RpZSBGZWxkLURlZmluaXRpb24gd3VyZGUgaGluenVnZWbDvGd0JzsKJGxhbmdbJ2ZpZWxkZGVmc3VwZGF0ZWQnXSA9ICdEaWUgTGlzdGUgZGVyIEZlbGQtRGVmaW5pdGlvbmVuIHd1cmRlIGFrdHVhbGlzaWVydCc7CiRsYW5nWyd0aXRsZV9jdXN0b21fbW9kdWxlbmFtZSddID0gJ0JlbnV0emVyZGVmaW5pZXJ0ZSBNb2R1bG5hbWUnOwokbGFuZ1snaGVscF9jdXN0b21fbW9kdWxlbmFtZSddID0gJ1NpZSBrw7ZubmVuIGRlbiBNb2R1bG5hbWVuIGhpZXIgw6RuZGVybi4gRXMgd2lyZCBhbHMgVGl0ZWwgZGVyIE1vZHVsIEFkbWluLVNlaXRlbiB1bmQgYWxzIE1lbsO8IFRleHQgdmVyd2VuZGV0Lic7CiRsYW5nWyd0aXRsZV9hZG1pbl9zZWN0aW9uJ10gPSAnQWRtaW4tQmVyZWljaCc7CiRsYW5nWydoZWxwX2FkbWluX3NlY3Rpb24nXSA9ICdXw6RobGVuIFNpZSBkZW4gQWRtaW4tQmVyZWljaCAodm9uIFRvcC1MZXZlbCBBZG1pbiBNZW51KSwgd28gZGllc2VzIE1vZHVsIHp1IGdlaMO2cnQuIDxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gQmVudXR6ZXIgbWl0IEVkaXRvci1CZXJlY2h0aWd1bmdlbiBoYWJlbiBrZWluZW4gWnVncmlmZiBhdWYgZGVuIEFkbWluLUJlcmVpY2ghJzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdEaWUgRWluc3RlbGx1bmdlbiB3dXJkZW4gZXJmb2xncmVpY2ggZ2VzcGVpY2hlcnQhJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25TZXR0aW5nQ2hhbmdlJ10gPSAnQXVzZsO8aHJlbiwgbmFjaGRlbSBkaWUgw4RuZGVydW5nZW4gZGVzIEVpbnN0ZWxsdW5nZW4gZ2VzcGVpY2hlcnQgd3VyZGVuLic7CiRsYW5nWydldmVudF9oZWxwX09uU2V0dGluZ0NoYW5nZSddID0gJzxwPkF1c2bDvGhyZW4sIG5hY2hkZW0gZGllIMOEbmRlcnVuZ2VuIGRlciBFaW5zdGVsbHVuZ2VuIGdlc3BlaWNoZXJ0IHd1cmRlbi48L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT5maWVsZGlkPC9saT4NCjxsaT5uYW1lPC9saT4NCjxsaT5hbGlhczwvbGk+DQo8bGk+dmFsdWU8L2xpPg0KPGxpPmNsZWFyY2FjaGU8L2xpPg0KPC91bD4nOwokbGFuZ1snZ2EnXSA9ICdHQTEuMi43Njc5NjUwMjAuMTQwMDYxMjM2NCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVW4gbW9kdWxlIHF1aSDDqXRlbmQgbGVzIHBhcmFtw6h0cmVzIGdsb2JhdXguIFZvdXMgcG91dmV6IGRlZmluaXIgdW4gbm9tYnJlIGlsbGltaXTDqSBkZSBwYXJhbcOodHJlcyByw6l1dGlsaXNhYmxlcyBzb3VzIGZvcm1lIGRlIHZhcmlhYmxlIFNNQVJUWSBkYW5zIGxlIHRlbXBsYXRlIG91IGxhIHBhZ2UgKGV0IG3Dqm1lIGRhbnMgbGVzIGZldWlsbGVzIGRlIHN0eWxlcylcJzsnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdMZSBtb2R1bGUgQ3VzdG9tR1MgYSDDqXTDqSBpbnN0YWxsw6kgYXZlYyBzdWNjw6hzICEnOwokbGFuZ1sndW5pbnN0YWxsX2NvbmZpcm0nXSA9ICdWb3VsZXotdm91cyB2cmFpbWVudCBkw6lzaW5zdGFsbGVyIGxlIG1vZHVsZSBDdXN0b21HUyA/JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdMZSBtb2R1bGUgQ3VzdG9tR1MgYSDDqXTDqSBkw6lzaW5zdGFsbMOpIGF2ZWMgc3VjY8OocyAhJzsKJGxhbmdbJ25vdyddID0gJ01haW50ZW5hbnQnOwokbGFuZ1sndGl0bGVfZ2VuZXJhbCddID0gJ0fDqW7DqXJhbCc7CiRsYW5nWydjaG9vc2V0aW1lJ10gPSAnQ2hvaXNpciBsXCdoZXVyZSc7CiRsYW5nWyd0aW1lJ10gPSAnaGV1cmUnOwokbGFuZ1sndGl0bGVfZmllbGRkZWZzJ10gPSAnRMOpZmluaXRpb25zIGRlIGNoYW1wJzsKJGxhbmdbJ3NtYXJ0eXZhciddID0gJ1ZhcmlhYmxlcyBTbWFydHknOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnQ2hhbXAgdGV4dGUnOwokbGFuZ1sncHVsbGRvd24nXSA9ICdMaXN0ZSBkZSBjaG9peCc7CiRsYW5nWydjaGVja2JveCddID0gJ0Nhc2Ugw6AgY29jaGVyJzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ0dyb3VwZSBkZSBib3V0b25zIHJhZGlvcyc7CiRsYW5nWydkYXRlcGlja2VyJ10gPSAnU8OpbGVjdGV1ciBkZSBkYXRlJzsKJGxhbmdbJ2RhdGV0aW1lcGlja2VyJ10gPSAnU8OpbGVjdGV1ciBkZSBkYXRlIGV0IGhldXJlJzsKJGxhbmdbJ3RpbWVwaWNrZXInXSA9ICdTw6lsZWN0ZXVyIGRcJ2hldXJlJzsKJGxhbmdbJ2NvbG9ycGlja2VyJ10gPSAnU8OpbGVjdGV1ciBkZSBjb3VsZXVyJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnWm9uZSBkZSB0ZXh0ZSc7CiRsYW5nWydwYWdlc2VsZWN0J10gPSAnU8OpbGVjdGV1ciBkZSBwYWdlJzsKJGxhbmdbJ3d5c2l3eWcnXSA9ICdXWVNJV1lHJm5ic3A7JzsKJGxhbmdbJ2ZpZWxkc2V0c3RhcnQnXSA9ICdEw6lidXQgZGUgRmllbGRzZXQnOwokbGFuZ1snZmllbGRzZXRlbmQnXSA9ICdGaW4gZGUgRmllbGRzZXQnOwokbGFuZ1snYnV0dG9uJ10gPSAnQm91dG9uJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ0xvbmd1ZXVyIG1heGkuJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdQcm9wcmnDqXTDqXMnOwokbGFuZ1sncHJvcGVydGllc19oZWxwMSddID0gJ0VudHJleiBsZXMgdmFsZXVycywgdW5lIHBhciBsaWduZS4gU3VwcG9ydGUgYXVzc2kgbGEgZm9ybWUgVmFsZXVyfExpYmVsbMOpIGV0L291IHVuZSBiYWxpc2VzIFNNQVJUWSc7CiRsYW5nWydwYXJzZXNtYXJ0eSddID0gJ0ludGVycHLDqXRhdGlvbiBTTUFSVFknOwokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGUnXSA9ICdWaWRlciBsZSBjYWNoZSBDU1MnOwokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGVfaGVscCddID0gJ1ZpZGVyIGF1dG9tYXRpcXVlbWVudCBsZSBjYWNoZSBDU1MgYXByw6hzIG1vZGlmaWNhdGlvbiBkZSBjZSBwYXJhbcOodHJlLiDDgCB1dGlsaXNlciBhdmVjIHByw6ljYXV0aW9uICEnOwokbGFuZ1snc2hvd29udGFiJ10gPSAnYWZmaWNoZXIgZW4gb25nbGV0JzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdMYSBkw6lmaW5pdGlvbiBkZSBjaGFtcCBlc3QgYWpvdXTDqWUnOwokbGFuZ1snZmllbGRkZWZzdXBkYXRlZCddID0gJ0xhIGTDqWZpbml0aW9uIGRlIGNoYW1wIGVzdCBtaXNlIMOgIGpvdXInOwokbGFuZ1sndGl0bGVfdGFicyddID0gJ09uZ2xldHMnOwokbGFuZ1sndGFiYWRkZWQnXSA9ICdMXCdvbmdsZXQgZXN0IGFqb3V0w6knOwokbGFuZ1sndGFidXBkYXRlZCddID0gJ0xcJ29uZ2xldCBlc3QgbWlzIMOgIGpvdXInOwokbGFuZ1sndGl0bGVfY3VzdG9tX21vZHVsZW5hbWUnXSA9ICdOb20gZHUgbW9kdWxlIHBlcnNvbm5hbGlzw6knOwokbGFuZ1snaGVscF9jdXN0b21fbW9kdWxlbmFtZSddID0gJ1ZvdXMgcG91dmV6IGNoYW5nZXIgbGUgbm9tIGR1IG1vZHVsZSBjb21tZSB2b3VzIGxlIHNvdWhhaXRlei4gSWwgc2VyYSB1dGlsaXPDqSBjb21tZSB0aXRyZSBkYW5zIGxlcyBwYWdlcyBkXCdhZG1pbi4gZXQgZGFucyBsZXMgbWVudXMuJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3NlY3Rpb24nXSA9ICdTZWN0aW9uIGRcJ2FkbWluaXN0cmF0aW9uJzsKJGxhbmdbJ2hlbHBfYWRtaW5fc2VjdGlvbiddID0gJ0Nob2lzaXNzZXogbGEgc2VjdGlvbiBkYW5zIGxhcXVlbGxlIGxlIG1vZHVsZSBhcHBhcmHDrnRyYS4nOwokbGFuZ1sneG1sX2V4cG9ydCddID0gJ0V4cG9ydGVyIGxlcyBwYXJhbcOodHJlcyBlbiBYTUwnOwokbGFuZ1sneG1sX2ltcG9ydCddID0gJ0ltcG9ydGVyIGxlcyBwYXJhbcOodHJlcyBlbiBYTUwnOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ1BhcmFtw6h0cmVzIHNhdXZlZ2FyZMOpcyAhJzsKJGxhbmdbJ3VwZGF0ZWZhaWxlZCddID0gJ0xhIG1pc2Ugw6Agam91ciBhIMOpY2hvdcOpICEnOwokbGFuZ1snZXZlbnRfaW5mb19PblNldHRpbmdDaGFuZ2UnXSA9ICdFdmVuZW1lbnQgZMOpY2xlbmNow6kgcXVhbmQgdW4gcGFyYW3DqHRyZSBlc3QgbW9kaWZpw6kuJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25TZXR0aW5nQ2hhbmdlJ10gPSAnPHA+RXZlbmVtZW50IGTDqWNsZW5jaMOpIHF1YW5kIHVuIHBhcmFtw6h0cmUgZXN0IG1vZGlmacOpLjwvcD4NCjxoND5QYXJhbWV0cmVzPC9oND4NCjx1bD4NCjxsaT5maWVsZGlkPC9saT4NCjxsaT5uYW1lPC9saT4NCjxsaT5hbGlhczwvbGk+DQo8bGk+dmFsdWU8L2xpPg0KPGxpPmNsZWFyY2FjaGU8L2xpPg0KPC91bD4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWVuIG1vZHVsZSBkaWUgZGUgQWxnZW1lbmUgSW5zdGVsbGluZ2VuIHZhbiBkZSB3ZWJzaXRlIHVpdGJyZWlkdCBtZXQgZXh0cmEgaW5zdGVsYmFyZSBwYXJhbWV0ZXJzLiBVIGt1bnQgZWVuIG9uYmVwZXJrdCBhYW50YWwgdmVsZGVuIGRlZmluacOrcmVuIGRpZSBnZWJydWlrdCBrdW5uZW4gd29yZGVuIGFscyBTbWFydHkgdmFyaWFiZWxlbiBpbiBzamFibG9uZW4gZW4gb3AgcGFnaW5hXCdzLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBzdWNjZXN2b2wgZ2XDr25zdGFsbGVlcmQhJzsKJGxhbmdbJ3VuaW5zdGFsbF9jb25maXJtJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgbW9kdWxlIHdpbHQgZGXDr25zdGFsbGVyZW4/JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEZSBtb2R1bGUgaXMgZ2VkZcOvbnN0YWxsZWVyZCEnOwokbGFuZ1snbm93J10gPSAnbnUnOwokbGFuZ1sndGl0bGVfZ2VuZXJhbCddID0gJ0FsZ2VtZWVuJzsKJGxhbmdbJ2Nob29zZXRpbWUnXSA9ICdLaWVzIHRpamQnOwokbGFuZ1sndGltZSddID0gJ3RpamQnOwokbGFuZ1sndGl0bGVfZmllbGRkZWZzJ10gPSAnVmVsZCBEZWZpbml0aWVzJzsKJGxhbmdbJ3NtYXJ0eXZhciddID0gJ1NtYXJ0eSB2YXJpYWJlbGUnOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnVGVrc3R2ZWxkJzsKJGxhbmdbJ3B1bGxkb3duJ10gPSAnS2V1emVtZW51JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnVmlua3Zha2plJzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ1JhZGlvYnV0dG9uIGdyb2VwJzsKJGxhbmdbJ2RhdGVwaWNrZXInXSA9ICdEYXR1bWtpZXplcic7CiRsYW5nWydkYXRldGltZXBpY2tlciddID0gJ0RhdHVtVGlqZGtpZXplcic7CiRsYW5nWyd0aW1lcGlja2VyJ10gPSAnVGlqZGtpZXplcic7CiRsYW5nWydjb2xvcnBpY2tlciddID0gJ0tsZXVya2llemVyJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3RibG9rJzsKJGxhbmdbJ3BhZ2VzZWxlY3QnXSA9ICdQYWdpbmFraWV6ZXInOwokbGFuZ1snd3lzaXd5ZyddID0gJ1d5c2l3eWcnOwokbGFuZ1snZmllbGRzZXRzdGFydCddID0gJ1ZlbGRlbmdyb2VwIHN0YXJ0JzsKJGxhbmdbJ2ZpZWxkc2V0ZW5kJ10gPSAnVmVsZGVuZ3JvZXAgZWluZGUnOwokbGFuZ1snYnV0dG9uJ10gPSAnRHJ1a2tub3AnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGUnOwokbGFuZ1sncHJvcGVydGllcyddID0gJ0VpZ2Vuc2NoYXBwZW4nOwokbGFuZ1sncHJvcGVydGllc19oZWxwMSddID0gJ1Z1bCBkZSBrZXV6ZXdhYXJkZW4gaW4sIGVsa2Ugb3AgZWVuIG5pZXV3ZSByZWdlbC4gT25kZXJzdGV1bnQgb29rIFdhYXJkZXxLZXV6ZU5hYW0gcGFyZW4gZW4vb2YgU21hcnR5IHRhZ3MnOwokbGFuZ1sncGFyc2VzbWFydHknXSA9ICdEYXRhIHZpYSBTbWFydHkgcGFyc2VuJzsKJGxhbmdbJ2NsZWFyc3R5bGVzaGVldGNhY2hlJ10gPSAnVmVyd2lqZGVyIHN0eWxlc2hlZXQgYnVmZmVyJzsKJGxhbmdbJ2NsZWFyc3R5bGVzaGVldGNhY2hlX2hlbHAnXSA9ICdBdXRvbWF0aXNjaCBkZSBzdHlsZXNoZWV0IGJ1ZmZlciBsZWdlbiBuYSBoZXQgd2lqemlnZW4gdmFuIGRlIGluc3RlbGxpbmcuIEdFQlJVSUsgQkVIT0VEWkFBTSEnOwokbGFuZ1snc2hvd29udGFiJ10gPSAnVG9vbiBvcCB0YWInOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ1ZlbGQgRGVmaW5pdGllIGlzIHRvZWdldm9lZ2QnOwokbGFuZ1snZmllbGRkZWZzdXBkYXRlZCddID0gJ1ZlbGQgRGVmaW5pdGllIGxpanN0IGlzIGJpamdld2Vya3QnOwokbGFuZ1sndGl0bGVfdGFicyddID0gJ1RhYnMnOwokbGFuZ1sndGFiYWRkZWQnXSA9ICdUYWIgaXMgdG9lZ2V2b2VnZCc7CiRsYW5nWyd0YWJ1cGRhdGVkJ10gPSAnVGFiIGlzIGJpamdld2Vya3QnOwokbGFuZ1sndGl0bGVfY3VzdG9tX21vZHVsZW5hbWUnXSA9ICdFaWdlbiBNb2R1bGVuYWFtJzsKJGxhbmdbJ2hlbHBfY3VzdG9tX21vZHVsZW5hbWUnXSA9ICdVIGt1bnQgaGllciBkZSBNb2R1bGVuYWFtIG5hYXIgZWlnZW4gd2VucyBhYW5wYXNzZW4uIEhldCB6YWwgZ2VicnVpa3Qgd29yZGVuIGFscyB0aXRlbCBvcCBkZSBtb2R1bGUgYmVoZWVycGFnaW5hIGVuIGFscyBtZW51IHRla3N0Lic7CiRsYW5nWyd0aXRsZV9hZG1pbl9zZWN0aW9uJ10gPSAnQWRtaW4gU2VjdGllJzsKJGxhbmdbJ2hlbHBfYWRtaW5fc2VjdGlvbiddID0gJ0tpZXMgZGUgQWRtaW4gU2VjdGllICh2YW4gaGV0IEFkbWluIHRvcG1lbnUpIHdhYXIgZGV6ZSBtb2R1bGUgbW9ldCB3b3JkZW4gZ2V0b29uZC4gPGI+T3BtZXJraW5nPC9iPjogQWRtaW4gZ2VicnVpa2VycyBtZXQgRWRpdG9yIHJlY2h0ZW4gaGViYmVuIGdlZW4gdG9lZ2FuZyB0b3QgZGUgQWRtaW4gc2VjdGllISc7CiRsYW5nWyd4bWxfZXhwb3J0J10gPSAnRXhwb3J0ZWVyIHZlbGRlbiBlbiBpbnN0ZWxsaW5nZW4gbmFhciBYTUwnOwokbGFuZ1sneG1sX2ltcG9ydCddID0gJ0ltcG9ydGVlciB2ZWxkZW4gZW4gaW5zdGVsbGluZ2VuIHZhbiBYTUwnOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0luc3RlbGxpbmdlbiBvcGdlc2xhZ2VuISc7CiRsYW5nWyd1cGRhdGVmYWlsZWQnXSA9ICdCaWp3ZXJrZW4gbWlzbHVrdCEnOwokbGFuZ1snZXZlbnRfaW5mb19PblNldHRpbmdDaGFuZ2UnXSA9ICdFZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiBuYWRhdCBlZW4gaW5zdGVsbGluZyBpcyBnZXdpanppZ2QuJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25TZXR0aW5nQ2hhbmdlJ10gPSAnPHA+RWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gbmFkYXQgZWVuIGluc3RlbGxpbmcgaXMgZ2V3aWp6aWdkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4gDQo8dWw+DQo8bGk+ZmllbGRpZDwvbGk+DQo8bGk+bmFtZTwvbGk+DQo8bGk+YWxpYXM8L2xpPg0KPGxpPnZhbHVlPC9saT4NCjxsaT5jbGVhcmNhY2hlPC9saT4NCjwvdWw+JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/jquery/colorpicker.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmNvbG9ycGlja2VyIHsNCgl3aWR0aDogMzUwcHg7DQoJaGVpZ2h0OiAxNzBweDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCglkaXNwbGF5OiBub25lOw0KICAgIHotaW5kZXg6IDk5OTsNCiAgICBib3JkZXI6M3B4IHNvbGlkICNCQUJBQkE7DQogICAgYmFja2dyb3VuZC1jb2xvcjojMTIxMjEyOw0KICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIGJvcmRlci1yYWRpdXM6IDVweDsNCn0NCg0KLmNvbG9ycGlja2VyIGlucHV0IHsNCglsaW5lLWhlaWdodDogbm9ybWFsOw0KCXdpZHRoOiBhdXRvOw0KfQ0KDQouY29sb3JwaWNrZXJfY29sb3Igew0KCXdpZHRoOiAxNTBweDsNCgloZWlnaHQ6IDE1MHB4Ow0KCWxlZnQ6IDlweDsNCgl0b3A6IDhweDsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYmFja2dyb3VuZDogI2YwMDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCWN1cnNvcjogY3Jvc3NoYWlyOw0KCWJvcmRlcjogMnB4IHNvbGlkICM0NzQ4NDg7DQp9DQouY29sb3JwaWNrZXJfY29sb3IgZGl2IHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJd2lkdGg6IDE1MHB4Ow0KCWhlaWdodDogMTUwcHg7DQoJYmFja2dyb3VuZDogdXJsKCJpbWFnZXMvb3ZlcmxheS5wbmciKTsNCn0NCi5jb2xvcnBpY2tlcl9jb2xvciBkaXYgZGl2IHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJd2lkdGg6IDExcHg7DQoJaGVpZ2h0OiAxMXB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJYmFja2dyb3VuZDogdXJsKCJpbWFnZXMvc2VsZWN0LmdpZiIpOw0KCW1hcmdpbjogLTVweCAwIDAgLTVweDsNCn0NCi5jb2xvcnBpY2tlcl9odWUgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDhweDsNCglsZWZ0OiAxNzVweDsNCgl3aWR0aDogMTdweDsNCgloZWlnaHQ6IDE1MHB4Ow0KCWN1cnNvcjogbi1yZXNpemU7DQogICAgYmFja2dyb3VuZDogdXJsKCJpbWFnZXMvc2VsZWN0X2h1ZS5wbmciKTsNCiAgICBib3JkZXI6IDJweCBzb2xpZCAjNDc0ODQ4Ow0KfQ0KLmNvbG9ycGlja2VyX2h1ZSBkaXYgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogMzVweDsNCgloZWlnaHQ6IDlweDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCWJhY2tncm91bmQ6IHVybCgiaW1hZ2VzL2luZGljLmdpZiIpIGxlZnQgdG9wOw0KCW1hcmdpbjogLTRweCAwIDAgMDsNCglsZWZ0OiAtOXB4Ow0KfQ0KLmNvbG9ycGlja2VyX25ld19jb2xvciB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXdpZHRoOiA2MHB4Ow0KCWhlaWdodDogMzBweDsNCglsZWZ0OiAyMDhweDsNCgl0b3A6IDhweDsNCgliYWNrZ3JvdW5kOiAjZjAwOw0KICAgIGJvcmRlcjogMnB4IHNvbGlkICM0NzQ4NDg7DQp9DQouY29sb3JwaWNrZXJfY3VycmVudF9jb2xvciB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXdpZHRoOiA2MHB4Ow0KCWhlaWdodDogMzBweDsNCglsZWZ0OiAyNzhweDsNCgl0b3A6IDhweDsNCgliYWNrZ3JvdW5kOiAjZjAwOw0KICAgIGJvcmRlcjogMnB4IHNvbGlkICM0NzQ4NDg7DQp9DQouY29sb3JwaWNrZXIgaW5wdXQgew0KCWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KCWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglmb250LXNpemU6IDEwcHg7DQoJZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQoJY29sb3I6ICM4OTg5ODk7DQoJdG9wOiAycHg7DQoJcmlnaHQ6IDEwcHg7DQoJdGV4dC1hbGlnbjogcmlnaHQ7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IDA7DQoJaGVpZ2h0OiAxM3B4Ow0KCXdpZHRoOiAzMHB4Ow0KCWJvcmRlcjogMXB4IHNvbGlkICMyZjJmMmY7DQoJYmFja2dyb3VuZC1jb2xvcjogICMxMjEyMTI7DQp9DQouY29sb3JwaWNrZXJfaGV4IHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJd2lkdGg6IDcwcHg7DQoJaGVpZ2h0OiAyMHB4Ow0KCWxlZnQ6IDIwOXB4Ow0KCXRvcDogMTM5cHg7DQp9DQouY29sb3JwaWNrZXJfaGV4IGlucHV0IHsNCglyaWdodDogNnB4Ow0KCXdpZHRoOiA0N3B4Ow0KfQ0KDQoNCi5jb2xvcnBpY2tlcl9maWVsZCwgLmNvbG9ycGlja2VyX2hleCB7DQogICAgYmFja2dyb3VuZDogdXJsKCJpbWFnZXMvZ3JhZGllbnRfaW5wdXQucG5nIikgY2VudGVyIHJlcGVhdC14OyAgIC8vIEZhbGxiYWNrDQogICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMUExQTFBIDAlLCAjMzAzMDMwIDQ1JSwgIzI2MjUyNSA0NyUsICMyRTJFMkUgMTAwJSk7DQogICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMUExQTFBIDAlLCAjMzAzMDMwIDQ1JSwgIzI2MjUyNSA0NyUsICMyRTJFMkUgMTAwJSk7DQogICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICMxQTFBMUEgMCUsICMzMDMwMzAgNDUlLCAjMjYyNTI1IDQ3JSwgIzJFMkUyRSAxMDAlKTsNCiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjMUExQTFBIDAlLCAjMzAzMDMwIDQ1JSwgIzI2MjUyNSA0NyUsICMyRTJFMkUgMTAwJSk7DQogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvcCwgIzFBMUExQSAwJSwgIzMwMzAzMCA0NSUsICMyNjI1MjUgNDclLCAjMkUyRTJFIDEwMCUpOw0KICAgIGJvcmRlcjogMXB4IHNvbGlkICMyZjJmMmY7DQp9DQoNCg0KLmNvbG9ycGlja2VyX2ZpZWxkIHsNCgloZWlnaHQ6IDIwcHg7DQoJd2lkdGg6IDYwcHg7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCn0NCg0KLmNvbG9ycGlja2VyX2ZvY3VzLCAuY29sb3JwaWNrZXJfZm9jdXMgaW5wdXQgew0KICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ZDRiNGI7DQp9DQoNCi5jb2xvcnBpY2tlcl9maWVsZCBsYWJlbCwgLmNvbG9ycGlja2VyX2hleCBsYWJlbCB7DQogICAgY29sb3I6ICNEOEQ4RDg7DQogICAgZm9udC1zaXplOiAgMTFweDsNCiAgICB0ZXh0LXNoYWRvdzogbm9uZTsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtYXJnaW4tdG9wOiAycHg7DQogICAgbWFyZ2luLWxlZnQ6IDVweDsNCiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7DQogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgLW1vei11c2VyLXNlbGVjdDogLW1vei1ub25lOw0KICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAtby11c2VyLXNlbGVjdDogbm9uZTsNCiAgICB1c2VyLXNlbGVjdDogbm9uZTsNCn0NCi5jb2xvcnBpY2tlcl9maWVsZCBzcGFuIHsNCiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImltYWdlcy9ncmFiYmVyLnBuZyIpOw0KICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJd2lkdGg6IDEycHg7DQoJaGVpZ2h0OiAyMHB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJdG9wOiAwOw0KCXJpZ2h0OiAwOw0KCWN1cnNvcjogbi1yZXNpemU7DQogICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOw0KICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lOw0KICAgIC1tb3otdXNlci1zZWxlY3Q6IC1tb3otbm9uZTsNCiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgdXNlci1zZWxlY3Q6IG5vbmU7DQp9DQoNCi5jb2xvcnBpY2tlcl9zbGlkZXIgc3BhbiB7ICAgIA0KICAgIGJhY2tncm91bmQ6IHVybCgiaW1hZ2VzL2dyYWRpZW50X2dyYWJiZXIucG5nIikgY2VudGVyOyAgIC8vIEZhbGxiYWNrDQogICAgYmFja2dyb3VuZDogdXJsKCJpbWFnZXMvZ3JhYmJlci5wbmciKSwgLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjOTA5MDkwIDAlLCAjNGQ0YzRjIDEwMCUpOw0KICAgIGJhY2tncm91bmQ6IHVybCgiaW1hZ2VzL2dyYWJiZXIucG5nIiksIC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzkwOTA5MCAwJSwgIzRkNGM0YyAxMDAlKTsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoImltYWdlcy9ncmFiYmVyLnBuZyIpLCAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzkwOTA5MCAwJSwgIzRkNGM0YyAxMDAlKTsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoImltYWdlcy9ncmFiYmVyLnBuZyIpLCAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjOTA5MDkwIDAlLCAjNGQ0YzRjIDEwMCUpOw0KICAgIGJhY2tncm91bmQ6IHVybCgiaW1hZ2VzL2dyYWJiZXIucG5nIiksIGxpbmVhci1ncmFkaWVudCh0b3AsICM5MDkwOTAgMCUsICM0ZDRjNGMgMTAwJSk7DQp9DQoNCi5jb2xvcnBpY2tlcl9yZ2JfciB7DQoJdG9wOiA0OXB4Ow0KCWxlZnQ6IDIwOXB4Ow0KfQ0KLmNvbG9ycGlja2VyX3JnYl9nIHsNCgl0b3A6IDc5cHg7DQoJbGVmdDogMjA5cHg7DQp9DQouY29sb3JwaWNrZXJfcmdiX2Igew0KCXRvcDogMTA5cHg7DQoJbGVmdDogMjA5cHg7DQp9DQouY29sb3JwaWNrZXJfaHNiX2ggew0KCXRvcDogNDlweDsNCglsZWZ0OiAyNzlweDsNCn0NCi5jb2xvcnBpY2tlcl9oc2JfcyB7DQoJdG9wOiA3OXB4Ow0KCWxlZnQ6IDI3OXB4Ow0KfQ0KLmNvbG9ycGlja2VyX2hzYl9iIHsNCgl0b3A6IDEwOXB4Ow0KCWxlZnQ6IDI3OXB4Ow0KfQ0KLmNvbG9ycGlja2VyX3N1Ym1pdCB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXdpZHRoOiAyMnB4Ow0KCWhlaWdodDogMjJweDsNCgliYWNrZ3JvdW5kOiB1cmwoImltYWdlcy9zdWJtaXQucG5nIikgdG9wOw0KCWxlZnQ6IDMxOXB4Ow0KCXRvcDogMTM5cHg7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCn0NCg0KLmNvbG9yU2VsZWN0b3Igew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB3aWR0aDogMzZweDsNCiAgICBoZWlnaHQ6IDM2cHg7DQogICAgbGVmdDogMzUlOw0KICAgIG1hcmdpbi10b3A6IDVweDsNCiAgICBtYXJnaW4tYm90dG9tOiA1cHg7DQogICAgYmFja2dyb3VuZDogdXJsKCJpbWFnZXMvc2VsZWN0LnBuZyIpOw0KfQ0KLmNvbG9yU2VsZWN0b3IgZGl2IHsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAzcHg7DQoJbGVmdDogM3B4Ow0KCXdpZHRoOiAzMHB4Ow0KCWhlaWdodDogMzBweDsNCgliYWNrZ3JvdW5kOiB1cmwoImltYWdlcy9zZWxlY3QucG5nIikgY2VudGVyOw0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/colorpicker.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24geChlKXtpZihlLm9yaWdpbmFsRXZlbnQucHJldmVudERlZmF1bHQpZS5vcmlnaW5hbEV2ZW50LnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGZhbHNlfXZhciB0PTY1LG49JzxkaXYgY2xhc3M9ImNvbG9ycGlja2VyIj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9jb2xvciI+PGRpdj48ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX2h1ZSI+PGRpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9uZXdfY29sb3IiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX2N1cnJlbnRfY29sb3IiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX2hleCI+PGxhYmVsIGZvcj0iaGV4Ij4jPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSI2IiBzaXplPSI2IiBpZD0iaGV4IiAvPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX3JnYl9yIGNvbG9ycGlja2VyX2ZpZWxkIj48bGFiZWwgZm9yPSJyYmdfciI+UjwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIG1heGxlbmd0aD0iMyIgc2l6ZT0iMyIgaWQ9InJnYl9yIiAvPjxzcGFuPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9yZ2JfZyBjb2xvcnBpY2tlcl9maWVsZCI+PGxhYmVsIGZvcj0icmJnX2ciPkc8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIGlkPSJyZ2JfZyIgLz48c3Bhbj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iY29sb3JwaWNrZXJfcmdiX2IgY29sb3JwaWNrZXJfZmllbGQiPjxsYWJlbCBmb3I9InJiZ19iIj5CPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIzIiBzaXplPSIzIiBpZD0icmdiX2IiIC8+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX2hzYl9oIGNvbG9ycGlja2VyX2ZpZWxkIj48bGFiZWwgZm9yPSJoc2JfaCI+SDwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIG1heGxlbmd0aD0iMyIgc2l6ZT0iMyIgaWQ9ImhzYl9oIiAvPjxzcGFuPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9oc2JfcyBjb2xvcnBpY2tlcl9maWVsZCI+PGxhYmVsIGZvcj0iaHNiX3MiPlM8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIGlkPSJoc2JfcyIgLz48c3Bhbj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iY29sb3JwaWNrZXJfaHNiX2IgY29sb3JwaWNrZXJfZmllbGQiPjxsYWJlbCBmb3I9ImhzYl9iIj5CPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIzIiBzaXplPSIzIiBpZD0iaHNiX2IiIC8+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX3N1Ym1pdCI+PC9kaXY+PC9kaXY+JyxyPXtldmVudE5hbWU6ImNsaWNrIixvblNob3c6ZnVuY3Rpb24oKXt9LG9uQmVmb3JlU2hvdzpmdW5jdGlvbigpe30sb25IaWRlOmZ1bmN0aW9uKCl7fSxvbkNoYW5nZTpmdW5jdGlvbigpe30sb25TdWJtaXQ6ZnVuY3Rpb24oKXt9LGNvbG9yOiJmZjAwMDAiLGxpdmVQcmV2aWV3OnRydWUsZmxhdDpmYWxzZX0saT1mdW5jdGlvbih0LG4pe3ZhciByPUhTQlRvUkdCKHQpO2UobikuZGF0YSgiY29sb3JwaWNrZXIiKS5maWVsZHMuZXEoMSkudmFsKHIucikuZW5kKCkuZXEoMikudmFsKHIuZykuZW5kKCkuZXEoMykudmFsKHIuYikuZW5kKCl9LHM9ZnVuY3Rpb24odCxuKXtlKG4pLmRhdGEoImNvbG9ycGlja2VyIikuZmllbGRzLmVxKDQpLnZhbCh0LmgpLmVuZCgpLmVxKDUpLnZhbCh0LnMpLmVuZCgpLmVxKDYpLnZhbCh0LmIpLmVuZCgpfSxvPWZ1bmN0aW9uKHQsbil7ZShuKS5kYXRhKCJjb2xvcnBpY2tlciIpLmZpZWxkcy5lcSgwKS52YWwoSFNCVG9IZXgodCkpLmVuZCgpfSx1PWZ1bmN0aW9uKHQsbil7ZShuKS5kYXRhKCJjb2xvcnBpY2tlciIpLnNlbGVjdG9yLmNzcygiYmFja2dyb3VuZENvbG9yIiwiIyIrSFNCVG9IZXgoe2g6dC5oLHM6MTAwLGI6MTAwfSkpO2UobikuZGF0YSgiY29sb3JwaWNrZXIiKS5zZWxlY3RvckluZGljLmNzcyh7bGVmdDpwYXJzZUludCgxNTAqdC5zLzEwMCwxMCksdG9wOnBhcnNlSW50KDE1MCooMTAwLXQuYikvMTAwLDEwKX0pfSxhPWZ1bmN0aW9uKHQsbil7ZShuKS5kYXRhKCJjb2xvcnBpY2tlciIpLmh1ZS5jc3MoInRvcCIscGFyc2VJbnQoMTUwLTE1MCp0LmgvMzYwLDEwKSl9LGY9ZnVuY3Rpb24odCxuKXtlKG4pLmRhdGEoImNvbG9ycGlja2VyIikuY3VycmVudENvbG9yLmNzcygiYmFja2dyb3VuZENvbG9yIiwiIyIrSFNCVG9IZXgodCkpfSxsPWZ1bmN0aW9uKHQsbil7ZShuKS5kYXRhKCJjb2xvcnBpY2tlciIpLm5ld0NvbG9yLmNzcygiYmFja2dyb3VuZENvbG9yIiwiIyIrSFNCVG9IZXgodCkpfSxjPWZ1bmN0aW9uKG4pe3ZhciByPW4uY2hhckNvZGV8fG4ua2V5Q29kZXx8LTE7aWYocj50JiZyPD05MHx8cj09PTMyKXtyZXR1cm4gZmFsc2V9dmFyIGk9ZSh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKTtpZihpLmRhdGEoImNvbG9ycGlja2VyIikubGl2ZVByZXZpZXc9PT10cnVlKXtoLmFwcGx5KHRoaXMpfX0saD1mdW5jdGlvbih0KXt2YXIgbj1lKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLHI7aWYodGhpcy5wYXJlbnROb2RlLmNsYXNzTmFtZS5pbmRleE9mKCJfaGV4Iik+MCl7bi5kYXRhKCJjb2xvcnBpY2tlciIpLmNvbG9yPXI9SGV4VG9IU0IoZml4SGV4KHRoaXMudmFsdWUpKX1lbHNlIGlmKHRoaXMucGFyZW50Tm9kZS5jbGFzc05hbWUuaW5kZXhPZigiX2hzYiIpPjApe24uZGF0YSgiY29sb3JwaWNrZXIiKS5jb2xvcj1yPWZpeEhTQih7aDpwYXJzZUludChuLmRhdGEoImNvbG9ycGlja2VyIikuZmllbGRzLmVxKDQpLnZhbCgpLDEwKSxzOnBhcnNlSW50KG4uZGF0YSgiY29sb3JwaWNrZXIiKS5maWVsZHMuZXEoNSkudmFsKCksMTApLGI6cGFyc2VJbnQobi5kYXRhKCJjb2xvcnBpY2tlciIpLmZpZWxkcy5lcSg2KS52YWwoKSwxMCl9KX1lbHNle24uZGF0YSgiY29sb3JwaWNrZXIiKS5jb2xvcj1yPVJHQlRvSFNCKGZpeFJHQih7cjpwYXJzZUludChuLmRhdGEoImNvbG9ycGlja2VyIikuZmllbGRzLmVxKDEpLnZhbCgpLDEwKSxnOnBhcnNlSW50KG4uZGF0YSgiY29sb3JwaWNrZXIiKS5maWVsZHMuZXEoMikudmFsKCksMTApLGI6cGFyc2VJbnQobi5kYXRhKCJjb2xvcnBpY2tlciIpLmZpZWxkcy5lcSgzKS52YWwoKSwxMCl9KSl9aWYodCl7aShyLG4uZ2V0KDApKTtvKHIsbi5nZXQoMCkpO3MocixuLmdldCgwKSl9dShyLG4uZ2V0KDApKTthKHIsbi5nZXQoMCkpO2wocixuLmdldCgwKSk7bi5kYXRhKCJjb2xvcnBpY2tlciIpLm9uQ2hhbmdlLmFwcGx5KG4sW3IsSFNCVG9IZXgociksSFNCVG9SR0IocildKX0scD1mdW5jdGlvbih0KXt2YXIgbj1lKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpO24uZGF0YSgiY29sb3JwaWNrZXIiKS5maWVsZHMucGFyZW50KCkucmVtb3ZlQ2xhc3MoImNvbG9ycGlja2VyX2ZvY3VzIil9LGQ9ZnVuY3Rpb24oKXt0PXRoaXMucGFyZW50Tm9kZS5jbGFzc05hbWUuaW5kZXhPZigiX2hleCIpPjA/NzA6NjU7ZSh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5kYXRhKCJjb2xvcnBpY2tlciIpLmZpZWxkcy5wYXJlbnQoKS5yZW1vdmVDbGFzcygiY29sb3JwaWNrZXJfZm9jdXMiKTtlKHRoaXMpLnBhcmVudCgpLmFkZENsYXNzKCJjb2xvcnBpY2tlcl9mb2N1cyIpfSx2PWZ1bmN0aW9uKHQpe3ZhciBuPWUodGhpcykucGFyZW50KCkuZmluZCgiaW5wdXQiKS5mb2N1cygpO3ZhciByPXtlbDplKHRoaXMpLnBhcmVudCgpLmFkZENsYXNzKCJjb2xvcnBpY2tlcl9zbGlkZXIiKSxtYXg6dGhpcy5wYXJlbnROb2RlLmNsYXNzTmFtZS5pbmRleE9mKCJfaHNiX2giKT4wPzM2MDp0aGlzLnBhcmVudE5vZGUuY2xhc3NOYW1lLmluZGV4T2YoIl9oc2IiKT4wPzEwMDoyNTUseTp0LnBhZ2VZLGZpZWxkOm4sdmFsOnBhcnNlSW50KG4udmFsKCksMTApLHByZXZpZXc6ZSh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5kYXRhKCJjb2xvcnBpY2tlciIpLmxpdmVQcmV2aWV3fTtlKGRvY3VtZW50KS5vbigibW91c2V1cCIscixnKTtlKGRvY3VtZW50KS5vbigibW91c2Vtb3ZlIixyLG0pO3JldHVybiB4KHQpfSxtPWZ1bmN0aW9uKGUpe2UuZGF0YS5maWVsZC52YWwoTWF0aC5tYXgoMCxNYXRoLm1pbihlLmRhdGEubWF4LHBhcnNlSW50KGUuZGF0YS52YWwrZS5wYWdlWS1lLmRhdGEueSwxMCkpKSk7aWYoZS5kYXRhLnByZXZpZXcpe2guYXBwbHkoZS5kYXRhLmZpZWxkLmdldCgwKSxbdHJ1ZV0pfXJldHVybiBmYWxzZX0sZz1mdW5jdGlvbih0KXtoLmFwcGx5KHQuZGF0YS5maWVsZC5nZXQoMCksW3RydWVdKTt0LmRhdGEuZWwucmVtb3ZlQ2xhc3MoImNvbG9ycGlja2VyX3NsaWRlciIpLmZpbmQoImlucHV0IikuZm9jdXMoKTtlKGRvY3VtZW50KS5vZmYoIm1vdXNldXAiLGcpO2UoZG9jdW1lbnQpLm9mZigibW91c2Vtb3ZlIixtKTtyZXR1cm4gZmFsc2V9LGI9ZnVuY3Rpb24odCl7dmFyIG49e2NhbDplKHRoaXMpLnBhcmVudCgpLHk6ZSh0aGlzKS5vZmZzZXQoKS50b3B9O24ucHJldmlldz1uLmNhbC5kYXRhKCJjb2xvcnBpY2tlciIpLmxpdmVQcmV2aWV3O2UoZG9jdW1lbnQpLm9uKCJtb3VzZXVwIixuLEUpO2UoZG9jdW1lbnQpLm9uKCJtb3VzZW1vdmUiLG4sdyk7cmV0dXJuIHgodCl9LHc9ZnVuY3Rpb24oZSl7aC5hcHBseShlLmRhdGEuY2FsLmRhdGEoImNvbG9ycGlja2VyIikuZmllbGRzLmVxKDQpLnZhbChwYXJzZUludCgzNjAqKDE1MC1NYXRoLm1heCgwLE1hdGgubWluKDE1MCxlLnBhZ2VZLWUuZGF0YS55KSkpLzE1MCwxMCkpLmdldCgwKSxbZS5kYXRhLnByZXZpZXddKTtyZXR1cm4gZmFsc2V9LEU9ZnVuY3Rpb24odCl7aSh0LmRhdGEuY2FsLmRhdGEoImNvbG9ycGlja2VyIikuY29sb3IsdC5kYXRhLmNhbC5nZXQoMCkpO28odC5kYXRhLmNhbC5kYXRhKCJjb2xvcnBpY2tlciIpLmNvbG9yLHQuZGF0YS5jYWwuZ2V0KDApKTtlKGRvY3VtZW50KS5vZmYoIm1vdXNldXAiLEUpO2UoZG9jdW1lbnQpLm9mZigibW91c2Vtb3ZlIix3KTtyZXR1cm4gZmFsc2V9LFM9ZnVuY3Rpb24odCl7eT1lKHRoaXMpLm9mZnNldCgpLnRvcDtwcmV2aWV3PXQuZGF0YS5jYWwuZGF0YSgiY29sb3JwaWNrZXIiKS5saXZlUHJldmlldztoLmFwcGx5KHQuZGF0YS5jYWwuZGF0YSgiY29sb3JwaWNrZXIiKS5maWVsZHMuZXEoNCkudmFsKHBhcnNlSW50KDM2MCooMTUwLU1hdGgubWF4KDAsTWF0aC5taW4oMTUwLHQucGFnZVkteSkpKS8xNTAsMTApKS5nZXQoMCksW3ByZXZpZXddKX07ZG93blNlbGVjdG9yPWZ1bmN0aW9uKHQpe3ZhciBuPXtjYWw6ZSh0aGlzKS5wYXJlbnQoKSxwb3M6ZSh0aGlzKS5vZmZzZXQoKX07bi5wcmV2aWV3PW4uY2FsLmRhdGEoImNvbG9ycGlja2VyIikubGl2ZVByZXZpZXc7ZShkb2N1bWVudCkub24oIm1vdXNldXAiLG4sdXBTZWxlY3Rvcik7ZShkb2N1bWVudCkub24oIm1vdXNlbW92ZSIsbixtb3ZlU2VsZWN0b3IpO2UoIi5jb2xvcnBpY2tlcl9jb2xvciIsIG4uY2FsKS5vbmUoImNsaWNrIixuLG1vdmVTZWxlY3Rvcik7dC5kYXRhPW47bW92ZVNlbGVjdG9yKHQpO3JldHVybiB4KHQpfSxtb3ZlU2VsZWN0b3I9ZnVuY3Rpb24oZSl7aC5hcHBseShlLmRhdGEuY2FsLmRhdGEoImNvbG9ycGlja2VyIikuZmllbGRzLmVxKDYpLnZhbChwYXJzZUludCgxMDAqKDE1MC1NYXRoLm1heCgwLE1hdGgubWluKDE1MCxlLnBhZ2VZLWUuZGF0YS5wb3MudG9wKSkpLzE1MCwxMCkpLmVuZCgpLmVxKDUpLnZhbChwYXJzZUludCgxMDAqTWF0aC5tYXgoMCxNYXRoLm1pbigxNTAsZS5wYWdlWC1lLmRhdGEucG9zLmxlZnQpKS8xNTAsMTApKS5nZXQoMCksW2UuZGF0YS5wcmV2aWV3XSk7cmV0dXJuIGZhbHNlfSx1cFNlbGVjdG9yPWZ1bmN0aW9uKHQpe3ZhciBuPXtjYWw6ZSh0aGlzKS5wYXJlbnQoKSxwb3M6ZSh0aGlzKS5vZmZzZXQoKX07aSh0LmRhdGEuY2FsLmRhdGEoImNvbG9ycGlja2VyIikuY29sb3IsdC5kYXRhLmNhbC5nZXQoMCkpO28odC5kYXRhLmNhbC5kYXRhKCJjb2xvcnBpY2tlciIpLmNvbG9yLHQuZGF0YS5jYWwuZ2V0KDApKTtlKGRvY3VtZW50KS5vZmYoIm1vdXNldXAiLHVwU2VsZWN0b3IpO2UoZG9jdW1lbnQpLm9mZigibW91c2Vtb3ZlIixtb3ZlU2VsZWN0b3IpO3JldHVybiBmYWxzZX0sZW50ZXJTdWJtaXQ9ZnVuY3Rpb24odCl7ZSh0aGlzKS5hZGRDbGFzcygiY29sb3JwaWNrZXJfZm9jdXMiKX0sbGVhdmVTdWJtaXQ9ZnVuY3Rpb24odCl7ZSh0aGlzKS5yZW1vdmVDbGFzcygiY29sb3JwaWNrZXJfZm9jdXMiKX0sY2xpY2tTdWJtaXQ9ZnVuY3Rpb24odCl7dmFyIG49ZSh0aGlzKS5wYXJlbnQoKTt2YXIgcj1uLmRhdGEoImNvbG9ycGlja2VyIikuY29sb3I7bi5kYXRhKCJjb2xvcnBpY2tlciIpLm9yaWdDb2xvcj1yO2YocixuLmdldCgwKSk7bi5kYXRhKCJjb2xvcnBpY2tlciIpLm9uU3VibWl0KHIsSFNCVG9IZXgociksSFNCVG9SR0Iociksbi5kYXRhKCJjb2xvcnBpY2tlciIpLmVsLG4uZGF0YSgiY29sb3JwaWNrZXIiKS5wYXJlbnQpfSxzaG93PWZ1bmN0aW9uKHQpe3ZhciBuPWUoIiMiK2UodGhpcykuZGF0YSgiY29sb3JwaWNrZXJJZCIpKTtuLmRhdGEoImNvbG9ycGlja2VyIikub25CZWZvcmVTaG93LmFwcGx5KHRoaXMsW24uZ2V0KDApXSk7dmFyIHI9ZSh0aGlzKS5vZmZzZXQoKTt2YXIgaT1nZXRWaWV3cG9ydCgpO3ZhciBzPXIudG9wK3RoaXMub2Zmc2V0SGVpZ2h0O3ZhciBvPXIubGVmdDtpZihzKzE3Nj5pLnQraS5oKXtzLT10aGlzLm9mZnNldEhlaWdodCsxNzZ9aWYobyszNTY+aS5sK2kudyl7by09MzU2fW4uY3NzKHtsZWZ0Om8rInB4Iix0b3A6cysicHgifSk7aWYobi5kYXRhKCJjb2xvcnBpY2tlciIpLm9uU2hvdy5hcHBseSh0aGlzLFtuLmdldCgwKV0pIT1mYWxzZSl7bi5zaG93KCl9ZShkb2N1bWVudCkub24oIm1vdXNlZG93biIse2NhbDpufSxoaWRlKTtyZXR1cm4gZmFsc2V9LGhpZGU9ZnVuY3Rpb24odCl7aWYoIWlzQ2hpbGRPZih0LmRhdGEuY2FsLmdldCgwKSx0LnRhcmdldCx0LmRhdGEuY2FsLmdldCgwKSkpe2lmKHQuZGF0YS5jYWwuZGF0YSgiY29sb3JwaWNrZXIiKS5vbkhpZGUuYXBwbHkodGhpcyxbdC5kYXRhLmNhbC5nZXQoMCldKSE9ZmFsc2Upe3QuZGF0YS5jYWwuaGlkZSgpfWUoZG9jdW1lbnQpLm9mZigibW91c2Vkb3duIixoaWRlKX19LGlzQ2hpbGRPZj1mdW5jdGlvbihlLHQsbil7aWYoZT09PXQpe3JldHVybiB0cnVlfWlmKGUuY29udGFpbnMpe3JldHVybiBlLmNvbnRhaW5zKHQpfWlmKGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24pe3JldHVybiEhKGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkmMTYpfXZhciByPXQucGFyZW50Tm9kZTt3aGlsZShyJiZyIT09bil7aWYocj09PWUpe3JldHVybiB0cnVlfXI9ci5wYXJlbnROb2RlfXJldHVybiBmYWxzZX0sZ2V0Vmlld3BvcnQ9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jb21wYXRNb2RlPT0iQ1NTMUNvbXBhdCI7cmV0dXJue2w6d2luZG93LnBhZ2VYT2Zmc2V0fHwoZT9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdDpkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQpLHQ6d2luZG93LnBhZ2VZT2Zmc2V0fHwoZT9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wOmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSx3OndpbmRvdy5pbm5lcldpZHRofHwoZT9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg6ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCksaDp3aW5kb3cuaW5uZXJIZWlnaHR8fChlP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ6ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQpfX0sZml4SFNCPWZ1bmN0aW9uKGUpe3JldHVybntoOk1hdGgubWluKDM2MCxNYXRoLm1heCgwLGUuaCkpLHM6TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsZS5zKSksYjpNYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxlLmIpKX19LGZpeFJHQj1mdW5jdGlvbihlKXtyZXR1cm57cjpNYXRoLm1pbigyNTUsTWF0aC5tYXgoMCxlLnIpKSxnOk1hdGgubWluKDI1NSxNYXRoLm1heCgwLGUuZykpLGI6TWF0aC5taW4oMjU1LE1hdGgubWF4KDAsZS5iKSl9fSxmaXhIZXg9ZnVuY3Rpb24oZSl7dmFyIHQ9Ni1lLmxlbmd0aDtpZih0PjApe3ZhciBuPVtdO2Zvcih2YXIgcj0wO3I8dDtyKyspe24ucHVzaCgiMCIpfW4ucHVzaChlKTtlPW4uam9pbigiIil9cmV0dXJuIGV9LEhleFRvUkdCPWZ1bmN0aW9uKGUpe2U9cGFyc2VJbnQoZS5pbmRleE9mKCIjIik+LTE/ZS5zdWJzdHJpbmcoMSk6ZSwxNik7cmV0dXJue3I6ZT4+MTYsZzooZSY2NTI4MCk+PjgsYjplJjI1NX19LEhleFRvSFNCPWZ1bmN0aW9uKGUpe3JldHVybiBSR0JUb0hTQihIZXhUb1JHQihlKSl9LFJHQlRvSFNCPWZ1bmN0aW9uKGUpe3ZhciB0PXtoOjAsczowLGI6MH07dmFyIG49TWF0aC5taW4oZS5yLGUuZyxlLmIpO3ZhciByPU1hdGgubWF4KGUucixlLmcsZS5iKTt2YXIgaT1yLW47dC5iPXI7dC5zPXIhPTA/MjU1KmkvcjowO2lmKHQucyE9MCl7aWYoZS5yPT09cil7dC5oPShlLmctZS5iKS9pfWVsc2UgaWYoZS5nPT09cil7dC5oPTIrKGUuYi1lLnIpL2l9ZWxzZXt0Lmg9NCsoZS5yLWUuZykvaX19ZWxzZXt0Lmg9LTF9dC5oKj02MDtpZih0Lmg8MCl7dC5oKz0zNjB9dC5zKj0xMDAvMjU1O3QuYio9MTAwLzI1NTtyZXR1cm4gdH0sSFNCVG9SR0I9ZnVuY3Rpb24oZSl7dmFyIHQ9e307dmFyIG49TWF0aC5yb3VuZChlLmgpO3ZhciByPU1hdGgucm91bmQoZS5zKjI1NS8xMDApO3ZhciBpPU1hdGgucm91bmQoZS5iKjI1NS8xMDApO2lmKHI9PTApe3Qucj10Lmc9dC5iPWl9ZWxzZXt2YXIgcz1pO3ZhciBvPSgyNTUtcikqaS8yNTU7dmFyIHU9KHMtbykqKG4lNjApLzYwO2lmKG49PT0zNjApe249MH1pZihuPDYwKXt0LnI9czt0LmI9bzt0Lmc9byt1fWVsc2UgaWYobjwxMjApe3QuZz1zO3QuYj1vO3Qucj1zLXV9ZWxzZSBpZihuPDE4MCl7dC5nPXM7dC5yPW87dC5iPW8rdX1lbHNlIGlmKG48MjQwKXt0LmI9czt0LnI9bzt0Lmc9cy11fWVsc2UgaWYobjwzMDApe3QuYj1zO3QuZz1vO3Qucj1vK3V9ZWxzZSBpZihuPDM2MCl7dC5yPXM7dC5nPW87dC5iPXMtdX1lbHNle3Qucj0wO3QuZz0wO3QuYj0wfX1yZXR1cm57cjpNYXRoLnJvdW5kKHQuciksZzpNYXRoLnJvdW5kKHQuZyksYjpNYXRoLnJvdW5kKHQuYil9fSxSR0JUb0hleD1mdW5jdGlvbih0KXt2YXIgbj1bdC5yLnRvU3RyaW5nKDE2KSx0LmcudG9TdHJpbmcoMTYpLHQuYi50b1N0cmluZygxNildO2UuZWFjaChuLGZ1bmN0aW9uKGUsdCl7aWYodC5sZW5ndGg9PT0xKXtuW2VdPSIwIit0fX0pO3JldHVybiBuLmpvaW4oIiIpfSxSR0JzdHJpbmdUb0hleD1mdW5jdGlvbihlKXtmdW5jdGlvbiBuKGUpe3JldHVybigiMCIrcGFyc2VJbnQoZSwxMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMil9aWYoIWUpe3JldHVybiIjRkZGRkZGIn12YXIgdD1lLm1hdGNoKC9ecmdiXCgoXGQrKSxccyooXGQrKSxccyooXGQrKVwpJC8pO2lmKHQpe3JldHVybiIjIituKHRbMV0pK24odFsyXSkrbih0WzNdKX1lbHNle3JldHVybiBlfX0sSFNCVG9IZXg9ZnVuY3Rpb24oZSl7cmV0dXJuIFJHQlRvSGV4KEhTQlRvUkdCKGUpKX0scmVzdG9yZU9yaWdpbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5wYXJlbnQoKTt2YXIgbj10LmRhdGEoImNvbG9ycGlja2VyIikub3JpZ0NvbG9yO3QuZGF0YSgiY29sb3JwaWNrZXIiKS5jb2xvcj1uO2kobix0LmdldCgwKSk7byhuLHQuZ2V0KDApKTtzKG4sdC5nZXQoMCkpO3Uobix0LmdldCgwKSk7YShuLHQuZ2V0KDApKTtsKG4sdC5nZXQoMCkpfTtyZXR1cm57aW5pdDpmdW5jdGlvbih0KXt0PWUuZXh0ZW5kKHt9LHIsdHx8e30pO2lmKHR5cGVvZiB0LmNvbG9yPT0ic3RyaW5nIil7aWYodC5jb2xvci5zdWJzdHJpbmcoMCw0KT09InJnYigiKXt0LmNvbG9yPUhleFRvSFNCKFJHQnN0cmluZ1RvSGV4KHQuY29sb3IpKX1lbHNle3QuY29sb3I9SGV4VG9IU0IodC5jb2xvcil9fWVsc2UgaWYodC5jb2xvci5yIT09dW5kZWZpbmVkJiZ0LmNvbG9yLmchPT11bmRlZmluZWQmJnQuY29sb3IuYiE9PXVuZGVmaW5lZCl7dC5jb2xvcj1SR0JUb0hTQih0LmNvbG9yKX1lbHNlIGlmKHQuY29sb3IuaCE9PXVuZGVmaW5lZCYmdC5jb2xvci5zIT09dW5kZWZpbmVkJiZ0LmNvbG9yLmIhPT11bmRlZmluZWQpe3QuY29sb3I9Zml4SFNCKHQuY29sb3IpfWVsc2V7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCFlKHRoaXMpLmRhdGEoImNvbG9ycGlja2VySWQiKSl7dmFyIHI9ZS5leHRlbmQoe30sdCk7ci5vcmlnQ29sb3I9dC5jb2xvcjt2YXIgbSxnPTA7bT1lKCIjY29sb3JwaWNrZXJfIitnKS5sZW5ndGg9PT0wO3doaWxlKCFtKXtnPXBhcnNlSW50KE1hdGgucmFuZG9tKCkqMWU0KTttPWUoIiNjb2xvcnBpY2tlcl8iK2cpLmxlbmd0aD09PTB9dmFyIHk9ImNvbG9ycGlja2VyXyIrZztlKHRoaXMpLmRhdGEoImNvbG9ycGlja2VySWQiLHkpO3IucGFyZW50PWUodGhpcyk7dmFyIHc9ZShuKTt3LmF0dHIoImlkIix5KS5hdHRyKCJkYXRhLXBhcmVudCIsZSh0aGlzKS5hdHRyKCJpZCIpKTtpZihyLmZsYXQpe3cuYXBwZW5kVG8odGhpcykuc2hvdygpfWVsc2V7dy5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KX1yLmZpZWxkcz13LmZpbmQoImlucHV0Iikub24oImtleXVwIixjKS5vbigiY2hhbmdlIixoKS5vbigiYmx1ciIscCkub24oImZvY3VzIixkKTt3LmZpbmQoInNwYW4iKS5vbigibW91c2Vkb3duIix2KS5lbmQoKS5maW5kKCI+ZGl2LmNvbG9ycGlja2VyX2N1cnJlbnRfY29sb3IiKS5vbigiY2xpY2siLHJlc3RvcmVPcmlnaW5hbCk7ci5zZWxlY3Rvcj13LmZpbmQoImRpdi5jb2xvcnBpY2tlcl9jb2xvciIpLm9uKCJtb3VzZWRvd24iLGRvd25TZWxlY3Rvcik7ci5zZWxlY3RvckluZGljPXIuc2VsZWN0b3IuZmluZCgiZGl2IGRpdiIpO3IuZWw9dGhpcztyLmh1ZT13LmZpbmQoImRpdi5jb2xvcnBpY2tlcl9odWUgZGl2Iik7dy5maW5kKCJkaXYuY29sb3JwaWNrZXJfaHVlIikub24oIm1vdXNlZG93biIsYik7dy5maW5kKCJkaXYuY29sb3JwaWNrZXJfaHVlIikub24oIm1vdXNlZG93biIse2NhbDp3fSxTKTtyLm5ld0NvbG9yPXcuZmluZCgiZGl2LmNvbG9ycGlja2VyX25ld19jb2xvciIpO3IuY3VycmVudENvbG9yPXcuZmluZCgiZGl2LmNvbG9ycGlja2VyX2N1cnJlbnRfY29sb3IiKTt3LmRhdGEoImNvbG9ycGlja2VyIixyKTt3LmZpbmQoImRpdi5jb2xvcnBpY2tlcl9zdWJtaXQiKS5vbigibW91c2VlbnRlciIsZW50ZXJTdWJtaXQpLm9uKCJtb3VzZWxlYXZlIixsZWF2ZVN1Ym1pdCkub24oImNsaWNrIixjbGlja1N1Ym1pdCk7aShyLmNvbG9yLHcuZ2V0KDApKTtzKHIuY29sb3Isdy5nZXQoMCkpO28oci5jb2xvcix3LmdldCgwKSk7YShyLmNvbG9yLHcuZ2V0KDApKTt1KHIuY29sb3Isdy5nZXQoMCkpO2Yoci5jb2xvcix3LmdldCgwKSk7bChyLmNvbG9yLHcuZ2V0KDApKTtpZihyLmZsYXQpe3cuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImJsb2NrIn0pfWVsc2V7ZSh0aGlzKS5vbihyLmV2ZW50TmFtZSxzaG93KX19fSl9LHNob3dQaWNrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoZSh0aGlzKS5kYXRhKCJjb2xvcnBpY2tlcklkIikpe3Nob3cuYXBwbHkodGhpcyl9fSl9LGhpZGVQaWNrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoZSh0aGlzKS5kYXRhKCJjb2xvcnBpY2tlcklkIikpe2UoIiMiK2UodGhpcykuZGF0YSgiY29sb3JwaWNrZXJJZCIpKS5oaWRlKCl9fSl9LHNldENvbG9yOmZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYodC5zdWJzdHJpbmcoMCw0KT09InJnYigiKXt0PUhleFRvSFNCKFJHQnN0cmluZ1RvSGV4KHQpKX1lbHNle3Q9SGV4VG9IU0IodCl9fWVsc2UgaWYodC5yIT09dW5kZWZpbmVkJiZ0LmchPT11bmRlZmluZWQmJnQuYiE9PXVuZGVmaW5lZCl7dD1SR0JUb0hTQih0KX1lbHNlIGlmKHQuaCE9PXVuZGVmaW5lZCYmdC5zIT09dW5kZWZpbmVkJiZ0LmIhPT11bmRlZmluZWQpe3Q9Zml4SFNCKHQpfWVsc2V7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKGUodGhpcykuZGF0YSgiY29sb3JwaWNrZXJJZCIpKXt2YXIgbj1lKCIjIitlKHRoaXMpLmRhdGEoImNvbG9ycGlja2VySWQiKSk7bi5kYXRhKCJjb2xvcnBpY2tlciIpLmNvbG9yPXQ7bi5kYXRhKCJjb2xvcnBpY2tlciIpLm9yaWdDb2xvcj10O2kodCxuLmdldCgwKSk7cyh0LG4uZ2V0KDApKTtvKHQsbi5nZXQoMCkpO2EodCxuLmdldCgwKSk7dSh0LG4uZ2V0KDApKTtmKHQsbi5nZXQoMCkpO2wodCxuLmdldCgwKSl9fSl9fX0oKTtlLmZuLmV4dGVuZCh7Q29sb3JQaWNrZXI6dC5pbml0LENvbG9yUGlja2VySGlkZTp0LmhpZGVQaWNrZXIsQ29sb3JQaWNrZXJTaG93OnQuc2hvd1BpY2tlcixDb2xvclBpY2tlclNldENvbG9yOnQuc2V0Q29sb3J9KX0pKGpRdWVyeSk=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/jquery/images/grabber.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAoAAAAUCAYAAAC07qxWAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wMDhQNJWmCTWAAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAqElEQVQoz9WSQQqEMBRDX/4vegcPoO39T1IQRj2MnYW26Gx0O4EsmjwaCtUwDLxRMLNHyN0J7v4Idl1HCCE8gn3fvwMlvQfN3fn1PM+3M4CZGVfnnAFKzvmWK05Tm/gsC0C5TLbe9n2nehpHdAhJAKV2gSNoKqUACGC6rJnOVMC6rnW6AGXbttZZnZFEirHdVqdrZ0hcnVJCJxVjVM2VUnr3e/TzmH8Gvwp1LUPEIyV7AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/gradient_grabber.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAoAAAAUCAYAAAC07qxWAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wMDhQ1LunPKBMAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAjUlEQVQoz8WRSwrDMAxEn0LvaYhLCiZd5BCBGBov7ctKuKuG9AemBCoYEKNhxEiSUqo01MnMaBOqtgm12fFvqztT5RXzPL9xnZmxxxIjAEuMT3ynZuwxTRMigohwW9eNl+s41p/C5Jy3PoTwPcxlGAAQEUopG//x4GfvAfB9z2Muzrl67Geaf62HO7YK7xaqk63wWlRJAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/gradient_input.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAYAAABMDlehAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9wMDhQzJ8ZJNzEAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMElEQVQI12XIsQ0AIAwDQfszRvZfMZShiYSA5vS2MrOJCAEMZz61qoTtQbaw9H8XGzOmBLCgalg3AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/indic.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIwAJAJEAADk5OVtbW////wAAACH5BAEAAAIALAAAAAAjAAkAAAInTISpy50WwHG0imiAtFxF+W2dFWaaODYheE6pU37uC2vZTNdQ3hkFADs=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/overlay.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/select.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwALAJECAAAAAP///////wAAACH5BAEAAAIALAAAAAALAAsAAAIflINoG+AeGFgGxEaXxVns2X2dh4CZJXBadDxQlihGAQA7]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/select.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAD9SURBVFjD7dixCsIwEMbx/wvcVDvloA+gbm7q4ujri4hbXkTPJS1HVRAlNYUEviUE7gcpJXeYGX2ABlgCW+CQOdtUqyEtM6OHCLCZAPEuG0A86J+YAZUsNG7zCJyAG2CZc0u1jq5+A7B2G2cRsRCCdV2XNSEEExEDzq7+GmDvNu6qmh3TR1UNuLv6e0b3OBxO+iwRkaFO2vOG16B0MNeqoAqqoAqqoAqqoLmDint+fPxIq6BiQTHGckAxxiF/B3nMK9R8v6Ff2iD/n/kGVFyj+NRKT4FS1f4WLuNWejxsuE44bLiOhg2L8sYxRQ6s3EivBVbAbgLELtVq/UjvARmg3gqnVJW4AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/select2.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAAJcEhZcwAACxMAAAsTAQCanBgAAAD+SURBVFjD7ZixCsJADIbvBTrVToKLo3Zza7s49vVFpCCoWNBV6VrPBHIlnhZEuesVEviXo/T7IKVcohQrrXUMWUAyyNpxMmIhE9kvIhFk5UGiL8iOuNCQMp0Ub5M5LCEbSKvdV0uskvFjFErZwfZ2b/Spvur9oXYaZCALmYyfolDBDh7H88W5jAmykMn4hbL62D1M9k4K3204VJ1DrxCVchQREiEREiEREiERGrtQcNePry9pIhSs0HQ2D0cIZUwGF+Iyn6TG+w39Mwbx/8wvQsENim+jtA8pZFAXdvYobS8bKo/LhspaNkzCW8cEubBiYglkCck9SOTESvhK7wmSlbGJL7HzjAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/select3.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAsElEQVRIie2WQQoCIRSGf2NAvU51irqRB/BG3UB31bKjjM6mv01GDOEMpS7CDwTlPfh86IMnSB4AnFCfO4CbIMkQJ1wv56q27W4PrSRAks45jiGyFmOIdM6RJId0A60kAIga1WklmfabGoIcXdiFXdiFXfg7w3LKKpgLhjgVF8J7vyrv/9+wmtAY006YZJ+kxYVzyfxc7JcmrLXZ+KvCZ6/wm/XeZ0s0H4RFw1EfAI4PF/SwKPwNaWAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/select4.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAiUlEQVRIie3WMQ4CMQxE0R+0cs7CHgXOyznShausUzA0rJQK0TgSkqey0ry4iDJF0g14EJ8X0Isk+Rg8ew/VrvtONQNJaq3pcFdUDne11iRJ23mDagZQIrarZjrnSwTwLQkmmGCCCf4J6GOsBT9f3zpwToIJ/pT5WWzz4dyuIjCA5UW4LKz6APc3LB6aj3+TXXoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/select_hue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAACWCAYAAAA42GOaAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wMDhA1JuAdCP0AAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAABmUlEQVRo3t3ZUXKEIBAE0AYnqSCp5P5nyznQ2gQlH44XsPtjCg/wappFl9b08/U9bAw8vXpKSH/5c9hJIDnBgBXAcwTQIVWBFLCXx4mB1DCTFACJIMY9SQykKpACIBPIeceJgVQFUgAsBHLccWIgVYGU6xZ6/qi+49BI5ZETH9cv/XiXdNhGzwER0hTITu8SjxMDaQpkp58mHicG0hTITv/reJzJEPp8MiHCHYXnRE4CyQDstQAnsWVzBgyFz2OCugMTFC8VUgTbXlB3PE4MhO9MviY0soZB+M7kk9BIDTOJBOGLl68JjaxhEL54+ZrQyKpA3juH5A4D+MZjwKZA+Nrkk9BICzOJBOG7l68JjWxhEL57+SQ00sJMsgsOOdgUSAszyQ7BZ4hNgbQwk/Ddy97QcRJIRoYJmkokpCoQQfG64sRAqgIRFK8rTgykKhBB8briTIbQL7onROgPInGQqkCWF7AcxA3YARN0JiVCl+sJEfolTBykKRDB9yoTNJU5EbqqxEGaAuGLl8eJgTQBsv0alvG8NB0p4x/sttxDWgMgrQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/submit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABYAAAAsCAIAAADuN9+nAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAAJcEhZcwAACxMAAAsTAQCanBgAAAMdSURBVEjHrZRtSFNRHMb9OmGzD85edE7dfJmZKRiRL9gHFUxCyaIMTcu5KU3xXSKKHGOxWGoKvYgoy6SGQylRE4yiNCeWmIpRIEiKmFN0CpJOfbrDc8e8Qh92ejhw4d7/8/tw7jk/N4lEcpIiTN2NeRyjCFO3I3woQhBiihCE5ECiZOLCSM/GMEHHUX4HX9joISvyjDgllh2cJIjg/clM9DYphZP3U1efVG0/rN6+p1str59MqTZ5yTO9EzjDBHHcKVkXfXsfiayDVehS4rEcd1VQ3YKiHsoOa9H7Xp+aa77pzvMEEc4mOkZmbBVaZ8rx8wbMpehWo1kP/TNo3qBiEPIpa9600dMQK4tzVAgigk12oc+nscStXTnWSzD7ABMteNcOUx8MY6iZQaXVlrv98fRYrk+xo0IQIcHBe0tZJxhZzptB7gqqbbZmrPRiehgjP9C/tPN8a02LX/kYSlsuENQ5KgQRFBi4t6408z7YVAMomIBuFsZ1mHf+zO0ubGyMYr4TU7X4XIS+DNtVXrOjwiLYxDXxWm15L1DQDd0AjJMwz8Py24rvoxjqRG8tXhbhabotntfkqLA/NShob/lr+ZWWNDVy61BtgOEtzMNYGrGifxRtr9CghSYfynhLAF/rqHD34nCmV9RgWA6ySnDnAdpaMNKOJdMaDN9QY0KlBtlZCPUfPOJ1nbsXIWykkVKPBo8Ey6UsaEphVOOLHsv6NWjGUdGJHB1iL1j4ggapNMpRIQiZU0SpokON3nGLVZdhkuOrCsuqNSjGkfEasbcXPcSNIlGa8zxBhO6PKN5XoJaJe26emetK3lw4t7QZ3TfnV9wjCFeLxGc5w9wDzrxijr1UKvWTBQgTQwSKJPeyPPeCMkGyQhia5Bdgv2bMADPGPeBhTmE+h/wzzIDzPEGcoAj3mrkQO+I/6Dc2JuZ8SorLi6m7MQ8agzN1O4LG4ARBY3CCoDE4QdAYnCBoDE4QNAYnCBqDEwSNwQmCxuAsgsLg7E+lMDh3L1wwOIugMDhB0BicIGgMzj3gLhicIGgMThA0BudeMxdiR9Dr9y+Jh6E2kCgcnQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/ui-icons_222222_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/ui-icons_454545_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEVERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkQfbf86AAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMM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]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/jquery-ui-timepicker-addon.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiogalF1ZXJ5IHRpbWVwaWNrZXIgYWRkb24NCiogQnk6IFRyZW50IFJpY2hhcmRzb24gW2h0dHA6Ly90cmVudHJpY2hhcmRzb24uY29tXQ0KKiBWZXJzaW9uIDAuOS45DQoqIExhc3QgTW9kaWZpZWQ6IDAyLzA1LzIwMTINCiogDQoqIENvcHlyaWdodCAyMDEyIFRyZW50IFJpY2hhcmRzb24NCiogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMuDQoqIGh0dHA6Ly90cmVudHJpY2hhcmRzb24uY29tL0ltcHJvbXB0dS9HUEwtTElDRU5TRS50eHQNCiogaHR0cDovL3RyZW50cmljaGFyZHNvbi5jb20vSW1wcm9tcHR1L01JVC1MSUNFTlNFLnR4dA0KKiANCiogSEVSRVMgVEhFIENTUzoNCiogLnVpLXRpbWVwaWNrZXItZGl2IC51aS13aWRnZXQtaGVhZGVyIHsgbWFyZ2luLWJvdHRvbTogOHB4OyB9DQoqIC51aS10aW1lcGlja2VyLWRpdiBkbCB7IHRleHQtYWxpZ246IGxlZnQ7IH0NCiogLnVpLXRpbWVwaWNrZXItZGl2IGRsIGR0IHsgaGVpZ2h0OiAyNXB4OyBtYXJnaW4tYm90dG9tOiAtMjVweDsgfQ0KKiAudWktdGltZXBpY2tlci1kaXYgZGwgZGQgeyBtYXJnaW46IDAgMTBweCAxMHB4IDY1cHg7IH0NCiogLnVpLXRpbWVwaWNrZXItZGl2IHRkIHsgZm9udC1zaXplOiA5MCU7IH0NCiogLnVpLXRwaWNrZXItZ3JpZC1sYWJlbCB7IGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9DQoqLw0KDQooZnVuY3Rpb24oJCkgew0KDQokLmV4dGVuZCgkLnVpLCB7IHRpbWVwaWNrZXI6IHsgdmVyc2lvbjogIjAuOS45IiB9IH0pOw0KDQovKiBUaW1lIHBpY2tlciBtYW5hZ2VyLg0KICAgVXNlIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcywgJC50aW1lcGlja2VyLCB0byBpbnRlcmFjdCB3aXRoIHRoZSB0aW1lIHBpY2tlci4NCiAgIFNldHRpbmdzIGZvciAoZ3JvdXBzIG9mKSB0aW1lIHBpY2tlcnMgYXJlIG1haW50YWluZWQgaW4gYW4gaW5zdGFuY2Ugb2JqZWN0LA0KICAgYWxsb3dpbmcgbXVsdGlwbGUgZGlmZmVyZW50IHNldHRpbmdzIG9uIHRoZSBzYW1lIHBhZ2UuICovDQoNCmZ1bmN0aW9uIFRpbWVwaWNrZXIoKSB7DQoJdGhpcy5yZWdpb25hbCA9IFtdOyAvLyBBdmFpbGFibGUgcmVnaW9uYWwgc2V0dGluZ3MsIGluZGV4ZWQgYnkgbGFuZ3VhZ2UgY29kZQ0KCXRoaXMucmVnaW9uYWxbJyddID0geyAvLyBEZWZhdWx0IHJlZ2lvbmFsIHNldHRpbmdzDQoJCWN1cnJlbnRUZXh0OiAnTm93JywNCgkJY2xvc2VUZXh0OiAnRG9uZScsDQoJCWFtcG06IGZhbHNlLA0KCQlhbU5hbWVzOiBbJ0FNJywgJ0EnXSwNCgkJcG1OYW1lczogWydQTScsICdQJ10sDQoJCXRpbWVGb3JtYXQ6ICdoaDptbSB0dCcsDQoJCXRpbWVTdWZmaXg6ICcnLA0KCQl0aW1lT25seVRpdGxlOiAnQ2hvb3NlIFRpbWUnLA0KCQl0aW1lVGV4dDogJ1RpbWUnLA0KCQlob3VyVGV4dDogJ0hvdXInLA0KCQltaW51dGVUZXh0OiAnTWludXRlJywNCgkJc2Vjb25kVGV4dDogJ1NlY29uZCcsDQoJCW1pbGxpc2VjVGV4dDogJ01pbGxpc2Vjb25kJywNCgkJdGltZXpvbmVUZXh0OiAnVGltZSBab25lJw0KCX07DQoJdGhpcy5fZGVmYXVsdHMgPSB7IC8vIEdsb2JhbCBkZWZhdWx0cyBmb3IgYWxsIHRoZSBkYXRldGltZSBwaWNrZXIgaW5zdGFuY2VzDQoJCXNob3dCdXR0b25QYW5lbDogdHJ1ZSwNCgkJdGltZU9ubHk6IGZhbHNlLA0KCQlzaG93SG91cjogdHJ1ZSwNCgkJc2hvd01pbnV0ZTogdHJ1ZSwNCgkJc2hvd1NlY29uZDogZmFsc2UsDQoJCXNob3dNaWxsaXNlYzogZmFsc2UsDQoJCXNob3dUaW1lem9uZTogZmFsc2UsDQoJCXNob3dUaW1lOiB0cnVlLA0KCQlzdGVwSG91cjogMSwNCgkJc3RlcE1pbnV0ZTogMSwNCgkJc3RlcFNlY29uZDogMSwNCgkJc3RlcE1pbGxpc2VjOiAxLA0KCQlob3VyOiAwLA0KCQltaW51dGU6IDAsDQoJCXNlY29uZDogMCwNCgkJbWlsbGlzZWM6IDAsDQoJCXRpbWV6b25lOiAnKzAwMDAnLA0KCQlob3VyTWluOiAwLA0KCQltaW51dGVNaW46IDAsDQoJCXNlY29uZE1pbjogMCwNCgkJbWlsbGlzZWNNaW46IDAsDQoJCWhvdXJNYXg6IDIzLA0KCQltaW51dGVNYXg6IDU5LA0KCQlzZWNvbmRNYXg6IDU5LA0KCQltaWxsaXNlY01heDogOTk5LA0KCQltaW5EYXRlVGltZTogbnVsbCwNCgkJbWF4RGF0ZVRpbWU6IG51bGwsDQoJCW9uU2VsZWN0OiBudWxsLA0KCQlob3VyR3JpZDogMCwNCgkJbWludXRlR3JpZDogMCwNCgkJc2Vjb25kR3JpZDogMCwNCgkJbWlsbGlzZWNHcmlkOiAwLA0KCQlhbHdheXNTZXRUaW1lOiB0cnVlLA0KCQlzZXBhcmF0b3I6ICcgJywNCgkJYWx0RmllbGRUaW1lT25seTogdHJ1ZSwNCgkJc2hvd1RpbWVwaWNrZXI6IHRydWUsDQoJCXRpbWV6b25lSXNvODYwOTogZmFsc2UsDQoJCXRpbWV6b25lTGlzdDogbnVsbCwNCgkJYWRkU2xpZGVyQWNjZXNzOiBmYWxzZSwNCgkJc2xpZGVyQWNjZXNzQXJnczogbnVsbA0KCX07DQoJJC5leHRlbmQodGhpcy5fZGVmYXVsdHMsIHRoaXMucmVnaW9uYWxbJyddKTsNCn07DQoNCiQuZXh0ZW5kKFRpbWVwaWNrZXIucHJvdG90eXBlLCB7DQoJJGlucHV0OiBudWxsLA0KCSRhbHRJbnB1dDogbnVsbCwNCgkkdGltZU9iajogbnVsbCwNCglpbnN0OiBudWxsLA0KCWhvdXJfc2xpZGVyOiBudWxsLA0KCW1pbnV0ZV9zbGlkZXI6IG51bGwsDQoJc2Vjb25kX3NsaWRlcjogbnVsbCwNCgltaWxsaXNlY19zbGlkZXI6IG51bGwsDQoJdGltZXpvbmVfc2VsZWN0OiBudWxsLA0KCWhvdXI6IDAsDQoJbWludXRlOiAwLA0KCXNlY29uZDogMCwNCgltaWxsaXNlYzogMCwNCgl0aW1lem9uZTogJyswMDAwJywNCglob3VyTWluT3JpZ2luYWw6IG51bGwsDQoJbWludXRlTWluT3JpZ2luYWw6IG51bGwsDQoJc2Vjb25kTWluT3JpZ2luYWw6IG51bGwsDQoJbWlsbGlzZWNNaW5PcmlnaW5hbDogbnVsbCwNCglob3VyTWF4T3JpZ2luYWw6IG51bGwsDQoJbWludXRlTWF4T3JpZ2luYWw6IG51bGwsDQoJc2Vjb25kTWF4T3JpZ2luYWw6IG51bGwsDQoJbWlsbGlzZWNNYXhPcmlnaW5hbDogbnVsbCwNCglhbXBtOiAnJywNCglmb3JtYXR0ZWREYXRlOiAnJywNCglmb3JtYXR0ZWRUaW1lOiAnJywNCglmb3JtYXR0ZWREYXRlVGltZTogJycsDQoJdGltZXpvbmVMaXN0OiBudWxsLA0KDQoJLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGFsbCBpbnN0YW5jZXMgb2YgdGhlIHRpbWUgcGlja2VyLg0KCSAgIEBwYXJhbSAgc2V0dGluZ3MgIG9iamVjdCAtIHRoZSBuZXcgc2V0dGluZ3MgdG8gdXNlIGFzIGRlZmF1bHRzIChhbm9ueW1vdXMgb2JqZWN0KQ0KCSAgIEByZXR1cm4gdGhlIG1hbmFnZXIgb2JqZWN0ICovDQoJc2V0RGVmYXVsdHM6IGZ1bmN0aW9uKHNldHRpbmdzKSB7DQoJCWV4dGVuZFJlbW92ZSh0aGlzLl9kZWZhdWx0cywgc2V0dGluZ3MgfHwge30pOw0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBDcmVhdGUgYSBuZXcgVGltZXBpY2tlciBpbnN0YW5jZQ0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJX25ld0luc3Q6IGZ1bmN0aW9uKCRpbnB1dCwgbykgew0KCQl2YXIgdHBfaW5zdCA9IG5ldyBUaW1lcGlja2VyKCksDQoJCQlpbmxpbmVTZXR0aW5ncyA9IHt9Ow0KCQkJDQoJCWZvciAodmFyIGF0dHJOYW1lIGluIHRoaXMuX2RlZmF1bHRzKSB7DQoJCQl2YXIgYXR0clZhbHVlID0gJGlucHV0LmF0dHIoJ3RpbWU6JyArIGF0dHJOYW1lKTsNCgkJCWlmIChhdHRyVmFsdWUpIHsNCgkJCQl0cnkgew0KCQkJCQlpbmxpbmVTZXR0aW5nc1thdHRyTmFtZV0gPSBldmFsKGF0dHJWYWx1ZSk7DQoJCQkJfSBjYXRjaCAoZXJyKSB7DQoJCQkJCWlubGluZVNldHRpbmdzW2F0dHJOYW1lXSA9IGF0dHJWYWx1ZTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJdHBfaW5zdC5fZGVmYXVsdHMgPSAkLmV4dGVuZCh7fSwgdGhpcy5fZGVmYXVsdHMsIGlubGluZVNldHRpbmdzLCBvLCB7DQoJCQliZWZvcmVTaG93OiBmdW5jdGlvbihpbnB1dCwgZHBfaW5zdCkgew0KCQkJCWlmICgkLmlzRnVuY3Rpb24oby5iZWZvcmVTaG93KSkNCgkJCQkJcmV0dXJuIG8uYmVmb3JlU2hvdyhpbnB1dCwgZHBfaW5zdCwgdHBfaW5zdCk7DQoJCQl9LA0KCQkJb25DaGFuZ2VNb250aFllYXI6IGZ1bmN0aW9uKHllYXIsIG1vbnRoLCBkcF9pbnN0KSB7DQoJCQkJLy8gVXBkYXRlIHRoZSB0aW1lIGFzIHdlbGwgOiB0aGlzIHByZXZlbnRzIHRoZSB0aW1lIGZyb20gZGlzYXBwZWFyaW5nIGZyb20gdGhlICRpbnB1dCBmaWVsZC4NCgkJCQl0cF9pbnN0Ll91cGRhdGVEYXRlVGltZShkcF9pbnN0KTsNCgkJCQlpZiAoJC5pc0Z1bmN0aW9uKG8ub25DaGFuZ2VNb250aFllYXIpKQ0KCQkJCQlvLm9uQ2hhbmdlTW9udGhZZWFyLmNhbGwoJGlucHV0WzBdLCB5ZWFyLCBtb250aCwgZHBfaW5zdCwgdHBfaW5zdCk7DQoJCQl9LA0KCQkJb25DbG9zZTogZnVuY3Rpb24oZGF0ZVRleHQsIGRwX2luc3QpIHsNCgkJCQlpZiAodHBfaW5zdC50aW1lRGVmaW5lZCA9PT0gdHJ1ZSAmJiAkaW5wdXQudmFsKCkgIT0gJycpDQoJCQkJCXRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGRwX2luc3QpOw0KCQkJCWlmICgkLmlzRnVuY3Rpb24oby5vbkNsb3NlKSkNCgkJCQkJby5vbkNsb3NlLmNhbGwoJGlucHV0WzBdLCBkYXRlVGV4dCwgZHBfaW5zdCwgdHBfaW5zdCk7DQoJCQl9LA0KCQkJdGltZXBpY2tlcjogdHBfaW5zdCAvLyBhZGQgdGltZXBpY2tlciBhcyBhIHByb3BlcnR5IG9mIGRhdGVwaWNrZXI6ICQuZGF0ZXBpY2tlci5fZ2V0KGRwX2luc3QsICd0aW1lcGlja2VyJyk7DQoJCX0pOw0KCQl0cF9pbnN0LmFtTmFtZXMgPSAkLm1hcCh0cF9pbnN0Ll9kZWZhdWx0cy5hbU5hbWVzLCBmdW5jdGlvbih2YWwpIHsgcmV0dXJuIHZhbC50b1VwcGVyQ2FzZSgpIH0pOw0KCQl0cF9pbnN0LnBtTmFtZXMgPSAkLm1hcCh0cF9pbnN0Ll9kZWZhdWx0cy5wbU5hbWVzLCBmdW5jdGlvbih2YWwpIHsgcmV0dXJuIHZhbC50b1VwcGVyQ2FzZSgpIH0pOw0KDQoJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUxpc3QgPT09IG51bGwpIHsNCgkJCXZhciB0aW1lem9uZUxpc3QgPSBbXTsNCgkJCWZvciAodmFyIGkgPSAtMTE7IGkgPD0gMTI7IGkrKykNCgkJCQl0aW1lem9uZUxpc3QucHVzaCgoaSA+PSAwID8gJysnIDogJy0nKSArICgnMCcgKyBNYXRoLmFicyhpKS50b1N0cmluZygpKS5zbGljZSgtMikgKyAnMDAnKTsNCgkJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUlzbzg2MDkpDQoJCQkJdGltZXpvbmVMaXN0ID0gJC5tYXAodGltZXpvbmVMaXN0LCBmdW5jdGlvbih2YWwpIHsNCgkJCQkJcmV0dXJuIHZhbCA9PSAnKzAwMDAnID8gJ1onIDogKHZhbC5zdWJzdHJpbmcoMCwgMykgKyAnOicgKyB2YWwuc3Vic3RyaW5nKDMpKTsNCgkJCQl9KTsNCgkJCXRwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lTGlzdCA9IHRpbWV6b25lTGlzdDsNCgkJfQ0KDQoJCXRwX2luc3QuaG91ciA9IHRwX2luc3QuX2RlZmF1bHRzLmhvdXI7DQoJCXRwX2luc3QubWludXRlID0gdHBfaW5zdC5fZGVmYXVsdHMubWludXRlOw0KCQl0cF9pbnN0LnNlY29uZCA9IHRwX2luc3QuX2RlZmF1bHRzLnNlY29uZDsNCgkJdHBfaW5zdC5taWxsaXNlYyA9IHRwX2luc3QuX2RlZmF1bHRzLm1pbGxpc2VjOw0KCQl0cF9pbnN0LmFtcG0gPSAnJzsNCgkJdHBfaW5zdC4kaW5wdXQgPSAkaW5wdXQ7DQoNCgkJaWYgKG8uYWx0RmllbGQpDQoJCQl0cF9pbnN0LiRhbHRJbnB1dCA9ICQoby5hbHRGaWVsZCkNCgkJCQkuY3NzKHsgY3Vyc29yOiAncG9pbnRlcicgfSkNCgkJCQkuZm9jdXMoZnVuY3Rpb24oKXsgJGlucHV0LnRyaWdnZXIoImZvY3VzIik7IH0pOw0KCQkNCgkJaWYodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZT09MCB8fCB0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZT09MCkNCgkJew0KCQkJdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZT1uZXcgRGF0ZSgpOw0KCQl9DQoJCWlmKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGU9PTAgfHwgdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWU9PTApDQoJCXsNCgkJCXRwX2luc3QuX2RlZmF1bHRzLm1heERhdGU9bmV3IERhdGUoKTsNCgkJfQ0KCQkNCgkJLy8gZGF0ZXBpY2tlciBuZWVkcyBtaW5EYXRlL21heERhdGUsIHRpbWVwaWNrZXIgbmVlZHMgbWluRGF0ZVRpbWUvbWF4RGF0ZVRpbWUuLg0KCQlpZih0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlICE9PSB1bmRlZmluZWQgJiYgdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZSBpbnN0YW5jZW9mIERhdGUpDQoJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZSA9IG5ldyBEYXRlKHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUuZ2V0VGltZSgpKTsNCgkJaWYodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUgIT09IHVuZGVmaW5lZCAmJiB0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZSBpbnN0YW5jZW9mIERhdGUpDQoJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlID0gbmV3IERhdGUodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUuZ2V0VGltZSgpKTsNCgkJaWYodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSAhPT0gdW5kZWZpbmVkICYmIHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUgaW5zdGFuY2VvZiBEYXRlKQ0KCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUgPSBuZXcgRGF0ZSh0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlLmdldFRpbWUoKSk7DQoJCWlmKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGVUaW1lICE9PSB1bmRlZmluZWQgJiYgdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUgaW5zdGFuY2VvZiBEYXRlKQ0KCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSA9IG5ldyBEYXRlKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGVUaW1lLmdldFRpbWUoKSk7DQoJCXJldHVybiB0cF9pbnN0Ow0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIGFkZCBvdXIgc2xpZGVycyB0byB0aGUgY2FsZW5kYXINCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9hZGRUaW1lUGlja2VyOiBmdW5jdGlvbihkcF9pbnN0KSB7DQoJCXZhciBjdXJyRFQgPSAodGhpcy4kYWx0SW5wdXQgJiYgdGhpcy5fZGVmYXVsdHMuYWx0RmllbGRUaW1lT25seSkgPw0KCQkJCXRoaXMuJGlucHV0LnZhbCgpICsgJyAnICsgdGhpcy4kYWx0SW5wdXQudmFsKCkgOiANCgkJCQl0aGlzLiRpbnB1dC52YWwoKTsNCg0KCQl0aGlzLnRpbWVEZWZpbmVkID0gdGhpcy5fcGFyc2VUaW1lKGN1cnJEVCk7DQoJCXRoaXMuX2xpbWl0TWluTWF4RGF0ZVRpbWUoZHBfaW5zdCwgZmFsc2UpOw0KCQl0aGlzLl9pbmplY3RUaW1lUGlja2VyKCk7DQoJfSwNCg0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJLy8gcGFyc2UgdGhlIHRpbWUgc3RyaW5nIGZyb20gaW5wdXQgdmFsdWUgb3IgX3NldFRpbWUNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9wYXJzZVRpbWU6IGZ1bmN0aW9uKHRpbWVTdHJpbmcsIHdpdGhEYXRlKSB7DQoJCXZhciByZWdzdHIgPSB0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LnRvU3RyaW5nKCkNCgkJCQkucmVwbGFjZSgvaHsxLDJ9L2lnLCAnKFxcZD9cXGQpJykNCgkJCQkucmVwbGFjZSgvbXsxLDJ9L2lnLCAnKFxcZD9cXGQpJykNCgkJCQkucmVwbGFjZSgvc3sxLDJ9L2lnLCAnKFxcZD9cXGQpJykNCgkJCQkucmVwbGFjZSgvbHsxfS9pZywgJyhcXGQ/XFxkP1xcZCknKQ0KCQkJCS5yZXBsYWNlKC90ezEsMn0vaWcsIHRoaXMuX2dldFBhdHRlcm5BbXBtKCkpDQoJCQkJLnJlcGxhY2UoL3p7MX0vaWcsICcoenxbLStdXFxkXFxkOj9cXGRcXGQpPycpDQoJCQkJLnJlcGxhY2UoL1xzL2csICdcXHM/JykgKyB0aGlzLl9kZWZhdWx0cy50aW1lU3VmZml4ICsgJyQnLA0KCQkJb3JkZXIgPSB0aGlzLl9nZXRGb3JtYXRQb3NpdGlvbnMoKSwNCgkJCWFtcG0gPSAnJywNCgkJCXRyZWc7DQoNCgkJaWYgKCF0aGlzLmluc3QpIHRoaXMuaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdCh0aGlzLiRpbnB1dFswXSk7DQoNCgkJaWYgKHdpdGhEYXRlIHx8ICF0aGlzLl9kZWZhdWx0cy50aW1lT25seSkgew0KCQkJLy8gdGhlIHRpbWUgc2hvdWxkIGNvbWUgYWZ0ZXIgeCBudW1iZXIgb2YgY2hhcmFjdGVycyBhbmQgYSBzcGFjZS4NCgkJCS8vIHggPSBhdCBsZWFzdCB0aGUgbGVuZ3RoIG9mIHRleHQgc3BlY2lmaWVkIGJ5IHRoZSBkYXRlIGZvcm1hdA0KCQkJdmFyIGRwX2RhdGVGb3JtYXQgPSAkLmRhdGVwaWNrZXIuX2dldCh0aGlzLmluc3QsICdkYXRlRm9ybWF0Jyk7DQoJCQkvLyBlc2NhcGUgc3BlY2lhbCByZWdleCBjaGFyYWN0ZXJzIGluIHRoZSBzZXBlcmF0b3INCgkJCXZhciBzcGVjaWFscyA9IG5ldyBSZWdFeHAoIlsuKis/fCgpXFxbXFxde31cXFxcXSIsICJnIik7DQoJCQlyZWdzdHIgPSAnXi57JyArIGRwX2RhdGVGb3JtYXQubGVuZ3RoICsgJyx9PycgKyB0aGlzLl9kZWZhdWx0cy5zZXBhcmF0b3IucmVwbGFjZShzcGVjaWFscywgIlxcJCYiKSArIHJlZ3N0cjsNCgkJfQ0KCQkNCgkJdHJlZyA9IHRpbWVTdHJpbmcubWF0Y2gobmV3IFJlZ0V4cChyZWdzdHIsICdpJykpOw0KDQoJCWlmICh0cmVnKSB7DQoJCQlpZiAob3JkZXIudCAhPT0gLTEpIHsNCgkJCQlpZiAodHJlZ1tvcmRlci50XSA9PT0gdW5kZWZpbmVkIHx8IHRyZWdbb3JkZXIudF0ubGVuZ3RoID09PSAwKSB7DQoJCQkJCWFtcG0gPSAnJzsNCgkJCQkJdGhpcy5hbXBtID0gJyc7DQoJCQkJfSBlbHNlIHsNCgkJCQkJYW1wbSA9ICQuaW5BcnJheSh0cmVnW29yZGVyLnRdLnRvVXBwZXJDYXNlKCksIHRoaXMuYW1OYW1lcykgIT09IC0xID8gJ0FNJyA6ICdQTSc7DQoJCQkJCXRoaXMuYW1wbSA9IHRoaXMuX2RlZmF1bHRzW2FtcG0gPT0gJ0FNJyA/ICdhbU5hbWVzJyA6ICdwbU5hbWVzJ11bMF07DQoJCQkJfQ0KCQkJfQ0KDQoJCQlpZiAob3JkZXIuaCAhPT0gLTEpIHsNCgkJCQlpZiAoYW1wbSA9PSAnQU0nICYmIHRyZWdbb3JkZXIuaF0gPT0gJzEyJykNCgkJCQkJdGhpcy5ob3VyID0gMDsgLy8gMTJhbSA9IDAgaG91cg0KCQkJCWVsc2UgaWYgKGFtcG0gPT0gJ1BNJyAmJiB0cmVnW29yZGVyLmhdICE9ICcxMicpDQoJCQkJCXRoaXMuaG91ciA9IChwYXJzZUZsb2F0KHRyZWdbb3JkZXIuaF0pICsgMTIpLnRvRml4ZWQoMCk7IC8vIDEycG0gPSAxMiBob3VyLCBhbnkgb3RoZXIgcG0gPSBob3VyICsgMTINCgkJCQllbHNlIHRoaXMuaG91ciA9IE51bWJlcih0cmVnW29yZGVyLmhdKTsNCgkJCX0NCg0KCQkJaWYgKG9yZGVyLm0gIT09IC0xKSB0aGlzLm1pbnV0ZSA9IE51bWJlcih0cmVnW29yZGVyLm1dKTsNCgkJCWlmIChvcmRlci5zICE9PSAtMSkgdGhpcy5zZWNvbmQgPSBOdW1iZXIodHJlZ1tvcmRlci5zXSk7DQoJCQlpZiAob3JkZXIubCAhPT0gLTEpIHRoaXMubWlsbGlzZWMgPSBOdW1iZXIodHJlZ1tvcmRlci5sXSk7DQoJCQlpZiAob3JkZXIueiAhPT0gLTEgJiYgdHJlZ1tvcmRlci56XSAhPT0gdW5kZWZpbmVkKSB7DQoJCQkJdmFyIHR6ID0gdHJlZ1tvcmRlci56XS50b1VwcGVyQ2FzZSgpOw0KCQkJCXN3aXRjaCAodHoubGVuZ3RoKSB7DQoJCQkJY2FzZSAxOgkvLyBaDQoJCQkJCXR6ID0gdGhpcy5fZGVmYXVsdHMudGltZXpvbmVJc284NjA5ID8gJ1onIDogJyswMDAwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSA1OgkvLyAraGhtbQ0KCQkJCQlpZiAodGhpcy5fZGVmYXVsdHMudGltZXpvbmVJc284NjA5KQ0KCQkJCQkJdHogPSB0ei5zdWJzdHJpbmcoMSkgPT0gJzAwMDAnDQoJCQkJCQkgICA/ICdaJw0KCQkJCQkJICAgOiB0ei5zdWJzdHJpbmcoMCwgMykgKyAnOicgKyB0ei5zdWJzdHJpbmcoMyk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgNjoJLy8gK2hoOm1tDQoJCQkJCWlmICghdGhpcy5fZGVmYXVsdHMudGltZXpvbmVJc284NjA5KQ0KCQkJCQkJdHogPSB0eiA9PSAnWicgfHwgdHouc3Vic3RyaW5nKDEpID09ICcwMDowMCcNCgkJCQkJCSAgID8gJyswMDAwJw0KCQkJCQkJICAgOiB0ei5yZXBsYWNlKC86LywgJycpOw0KCQkJCQllbHNlIGlmICh0ei5zdWJzdHJpbmcoMSkgPT0gJzAwOjAwJykNCgkJCQkJCXR6ID0gJ1onOw0KCQkJCQlicmVhazsNCgkJCQl9DQoJCQkJdGhpcy50aW1lem9uZSA9IHR6Ow0KCQkJfQ0KCQkJDQoJCQlyZXR1cm4gdHJ1ZTsNCg0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBwYXR0ZXJuIGZvciBzdGFuZGFyZCBhbmQgbG9jYWxpemVkIEFNL1BNIG1hcmtlcnMNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9nZXRQYXR0ZXJuQW1wbTogZnVuY3Rpb24oKSB7DQoJCXZhciBtYXJrZXJzID0gW107DQoJCQlvID0gdGhpcy5fZGVmYXVsdHM7DQoJCWlmIChvLmFtTmFtZXMpDQoJCQkkLm1lcmdlKG1hcmtlcnMsIG8uYW1OYW1lcyk7DQoJCWlmIChvLnBtTmFtZXMpDQoJCQkkLm1lcmdlKG1hcmtlcnMsIG8ucG1OYW1lcyk7DQoJCW1hcmtlcnMgPSAkLm1hcChtYXJrZXJzLCBmdW5jdGlvbih2YWwpIHsgcmV0dXJuIHZhbC5yZXBsYWNlKC9bLiorP3woKVxbXF17fVxcXS9nLCAnXFwkJicpIH0pOw0KCQlyZXR1cm4gJygnICsgbWFya2Vycy5qb2luKCd8JykgKyAnKT8nOw0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIGZpZ3VyZSBvdXQgcG9zaXRpb24gb2YgdGltZSBlbGVtZW50cy4uIGNhdXNlIGpzIGNhbnQgZG8gbmFtZWQgY2FwdHVyZXMNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9nZXRGb3JtYXRQb3NpdGlvbnM6IGZ1bmN0aW9uKCkgew0KCQl2YXIgZmluZHMgPSB0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhoezEsMn18bXsxLDJ9fHN7MSwyfXxsezF9fHR7MSwyfXx6KS9nKSwNCgkJCW9yZGVycyA9IHsgaDogLTEsIG06IC0xLCBzOiAtMSwgbDogLTEsIHQ6IC0xLCB6OiAtMSB9Ow0KDQoJCWlmIChmaW5kcykNCgkJCWZvciAodmFyIGkgPSAwOyBpIDwgZmluZHMubGVuZ3RoOyBpKyspDQoJCQkJaWYgKG9yZGVyc1tmaW5kc1tpXS50b1N0cmluZygpLmNoYXJBdCgwKV0gPT0gLTEpDQoJCQkJCW9yZGVyc1tmaW5kc1tpXS50b1N0cmluZygpLmNoYXJBdCgwKV0gPSBpICsgMTsNCg0KCQlyZXR1cm4gb3JkZXJzOw0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIGdlbmVyYXRlIGFuZCBpbmplY3QgaHRtbCBmb3IgdGltZXBpY2tlciBpbnRvIHVpIGRhdGVwaWNrZXINCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9pbmplY3RUaW1lUGlja2VyOiBmdW5jdGlvbigpIHsNCgkJdmFyICRkcCA9IHRoaXMuaW5zdC5kcERpdiwNCgkJCW8gPSB0aGlzLl9kZWZhdWx0cywNCgkJCXRwX2luc3QgPSB0aGlzLA0KCQkJLy8gQWRkZWQgYnkgUGV0ZXIgTWVkZWlyb3M6DQoJCQkvLyAtIEZpZ3VyZSBvdXQgd2hhdCB0aGUgaG91ci9taW51dGUvc2Vjb25kIG1heCBzaG91bGQgYmUgYmFzZWQgb24gdGhlIHN0ZXAgdmFsdWVzLg0KCQkJLy8gLSBFeGFtcGxlOiBpZiBzdGVwTWludXRlIGlzIDE1LCB0aGVuIG1pbk1heCBpcyA0NS4NCgkJCWhvdXJNYXggPSBwYXJzZUludCgoby5ob3VyTWF4IC0gKChvLmhvdXJNYXggLSBvLmhvdXJNaW4pICUgby5zdGVwSG91cikpICwxMCksDQoJCQltaW5NYXggID0gcGFyc2VJbnQoKG8ubWludXRlTWF4IC0gKChvLm1pbnV0ZU1heCAtIG8ubWludXRlTWluKSAlIG8uc3RlcE1pbnV0ZSkpICwxMCksDQoJCQlzZWNNYXggID0gcGFyc2VJbnQoKG8uc2Vjb25kTWF4IC0gKChvLnNlY29uZE1heCAtIG8uc2Vjb25kTWluKSAlIG8uc3RlcFNlY29uZCkpICwxMCksDQoJCQltaWxsaXNlY01heCAgPSBwYXJzZUludCgoby5taWxsaXNlY01heCAtICgoby5taWxsaXNlY01heCAtIG8ubWlsbGlzZWNNaW4pICUgby5zdGVwTWlsbGlzZWMpKSAsMTApLA0KCQkJZHBfaWQgPSB0aGlzLmluc3QuaWQudG9TdHJpbmcoKS5yZXBsYWNlKC8oW15BLVphLXowLTlfXSkvZywgJycpOw0KDQoJCS8vIFByZXZlbnQgZGlzcGxheWluZyB0d2ljZQ0KCQkvL2lmICgkZHAuZmluZCgiZGl2I3VpLXRpbWVwaWNrZXItZGl2LSIrIGRwX2lkKS5sZW5ndGggPT09IDApIHsNCgkJaWYgKCRkcC5maW5kKCJkaXYjdWktdGltZXBpY2tlci1kaXYtIisgZHBfaWQpLmxlbmd0aCA9PT0gMCAmJiBvLnNob3dUaW1lcGlja2VyKSB7DQoJCQl2YXIgbm9EaXNwbGF5ID0gJyBzdHlsZT0iZGlzcGxheTpub25lOyInLA0KCQkJCWh0bWwgPQknPGRpdiBjbGFzcz0idWktdGltZXBpY2tlci1kaXYiIGlkPSJ1aS10aW1lcGlja2VyLWRpdi0nICsgZHBfaWQgKyAnIj48ZGw+JyArDQoJCQkJCQknPGR0IGNsYXNzPSJ1aV90cGlja2VyX3RpbWVfbGFiZWwiIGlkPSJ1aV90cGlja2VyX3RpbWVfbGFiZWxfJyArIGRwX2lkICsgJyInICsNCgkJCQkJCSgoby5zaG93VGltZSkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvLnRpbWVUZXh0ICsgJzwvZHQ+JyArDQoJCQkJCQknPGRkIGNsYXNzPSJ1aV90cGlja2VyX3RpbWUiIGlkPSJ1aV90cGlja2VyX3RpbWVfJyArIGRwX2lkICsgJyInICsNCgkJCQkJCSgoby5zaG93VGltZSkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPjwvZGQ+JyArDQoJCQkJCQknPGR0IGNsYXNzPSJ1aV90cGlja2VyX2hvdXJfbGFiZWwiIGlkPSJ1aV90cGlja2VyX2hvdXJfbGFiZWxfJyArIGRwX2lkICsgJyInICsNCgkJCQkJCSgoby5zaG93SG91cikgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvLmhvdXJUZXh0ICsgJzwvZHQ+JywNCgkJCQlob3VyR3JpZFNpemUgPSAwLA0KCQkJCW1pbnV0ZUdyaWRTaXplID0gMCwNCgkJCQlzZWNvbmRHcmlkU2l6ZSA9IDAsDQoJCQkJbWlsbGlzZWNHcmlkU2l6ZSA9IDAsDQoJCQkJc2l6ZTsNCg0KIAkJCS8vIEhvdXJzDQoJCQlodG1sICs9ICc8ZGQgY2xhc3M9InVpX3RwaWNrZXJfaG91ciI+PGRpdiBpZD0idWlfdHBpY2tlcl9ob3VyXycgKyBkcF9pZCArICciJyArDQoJCQkJCQkoKG8uc2hvd0hvdXIpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2Rpdj4nOw0KCQkJaWYgKG8uc2hvd0hvdXIgJiYgby5ob3VyR3JpZCA+IDApIHsNCgkJCQlodG1sICs9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDFweCI+PHRhYmxlIGNsYXNzPSJ1aS10cGlja2VyLWdyaWQtbGFiZWwiPjx0cj4nOw0KDQoJCQkJZm9yICh2YXIgaCA9IG8uaG91ck1pbjsgaCA8PSBob3VyTWF4OyBoICs9IHBhcnNlSW50KG8uaG91ckdyaWQsMTApKSB7DQoJCQkJCWhvdXJHcmlkU2l6ZSsrOw0KCQkJCQl2YXIgdG1waCA9IChvLmFtcG0gJiYgaCA+IDEyKSA/IGgtMTIgOiBoOw0KCQkJCQlpZiAodG1waCA8IDEwKSB0bXBoID0gJzAnICsgdG1waDsNCgkJCQkJaWYgKG8uYW1wbSkgew0KCQkJCQkJaWYgKGggPT0gMCkgdG1waCA9IDEyICsnYSc7DQoJCQkJCQllbHNlIGlmIChoIDwgMTIpIHRtcGggKz0gJ2EnOw0KCQkJCQkJZWxzZSB0bXBoICs9ICdwJzsNCgkJCQkJfQ0KCQkJCQlodG1sICs9ICc8dGQ+JyArIHRtcGggKyAnPC90ZD4nOw0KCQkJCX0NCg0KCQkJCWh0bWwgKz0gJzwvdHI+PC90YWJsZT48L2Rpdj4nOw0KCQkJfQ0KCQkJaHRtbCArPSAnPC9kZD4nOw0KDQoJCQkvLyBNaW51dGVzDQoJCQlodG1sICs9ICc8ZHQgY2xhc3M9InVpX3RwaWNrZXJfbWludXRlX2xhYmVsIiBpZD0idWlfdHBpY2tlcl9taW51dGVfbGFiZWxfJyArIGRwX2lkICsgJyInICsNCgkJCQkJKChvLnNob3dNaW51dGUpID8gJycgOiBub0Rpc3BsYXkpICsgJz4nICsgby5taW51dGVUZXh0ICsgJzwvZHQ+JysNCgkJCQkJJzxkZCBjbGFzcz0idWlfdHBpY2tlcl9taW51dGUiPjxkaXYgaWQ9InVpX3RwaWNrZXJfbWludXRlXycgKyBkcF9pZCArICciJyArDQoJCQkJCQkJKChvLnNob3dNaW51dGUpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2Rpdj4nOw0KDQoJCQlpZiAoby5zaG93TWludXRlICYmIG8ubWludXRlR3JpZCA+IDApIHsNCgkJCQlodG1sICs9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDFweCI+PHRhYmxlIGNsYXNzPSJ1aS10cGlja2VyLWdyaWQtbGFiZWwiPjx0cj4nOw0KDQoJCQkJZm9yICh2YXIgbSA9IG8ubWludXRlTWluOyBtIDw9IG1pbk1heDsgbSArPSBwYXJzZUludChvLm1pbnV0ZUdyaWQsMTApKSB7DQoJCQkJCW1pbnV0ZUdyaWRTaXplKys7DQoJCQkJCWh0bWwgKz0gJzx0ZD4nICsgKChtIDwgMTApID8gJzAnIDogJycpICsgbSArICc8L3RkPic7DQoJCQkJfQ0KDQoJCQkJaHRtbCArPSAnPC90cj48L3RhYmxlPjwvZGl2Pic7DQoJCQl9DQoJCQlodG1sICs9ICc8L2RkPic7DQoNCgkJCS8vIFNlY29uZHMNCgkJCWh0bWwgKz0gJzxkdCBjbGFzcz0idWlfdHBpY2tlcl9zZWNvbmRfbGFiZWwiIGlkPSJ1aV90cGlja2VyX3NlY29uZF9sYWJlbF8nICsgZHBfaWQgKyAnIicgKw0KCQkJCQkoKG8uc2hvd1NlY29uZCkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvLnNlY29uZFRleHQgKyAnPC9kdD4nKw0KCQkJCQknPGRkIGNsYXNzPSJ1aV90cGlja2VyX3NlY29uZCI+PGRpdiBpZD0idWlfdHBpY2tlcl9zZWNvbmRfJyArIGRwX2lkICsgJyInKw0KCQkJCQkJCSgoby5zaG93U2Vjb25kKSA/ICcnIDogbm9EaXNwbGF5KSArICc+PC9kaXY+JzsNCg0KCQkJaWYgKG8uc2hvd1NlY29uZCAmJiBvLnNlY29uZEdyaWQgPiAwKSB7DQoJCQkJaHRtbCArPSAnPGRpdiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxcHgiPjx0YWJsZT48dHI+JzsNCg0KCQkJCWZvciAodmFyIHMgPSBvLnNlY29uZE1pbjsgcyA8PSBzZWNNYXg7IHMgKz0gcGFyc2VJbnQoby5zZWNvbmRHcmlkLDEwKSkgew0KCQkJCQlzZWNvbmRHcmlkU2l6ZSsrOw0KCQkJCQlodG1sICs9ICc8dGQ+JyArICgocyA8IDEwKSA/ICcwJyA6ICcnKSArIHMgKyAnPC90ZD4nOw0KCQkJCX0NCg0KCQkJCWh0bWwgKz0gJzwvdHI+PC90YWJsZT48L2Rpdj4nOw0KCQkJfQ0KCQkJaHRtbCArPSAnPC9kZD4nOw0KDQoJCQkvLyBNaWxsaXNlY29uZHMNCgkJCWh0bWwgKz0gJzxkdCBjbGFzcz0idWlfdHBpY2tlcl9taWxsaXNlY19sYWJlbCIgaWQ9InVpX3RwaWNrZXJfbWlsbGlzZWNfbGFiZWxfJyArIGRwX2lkICsgJyInICsNCgkJCQkJKChvLnNob3dNaWxsaXNlYykgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvLm1pbGxpc2VjVGV4dCArICc8L2R0PicrDQoJCQkJCSc8ZGQgY2xhc3M9InVpX3RwaWNrZXJfbWlsbGlzZWMiPjxkaXYgaWQ9InVpX3RwaWNrZXJfbWlsbGlzZWNfJyArIGRwX2lkICsgJyInKw0KCQkJCQkJCSgoby5zaG93TWlsbGlzZWMpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2Rpdj4nOw0KDQoJCQlpZiAoby5zaG93TWlsbGlzZWMgJiYgby5taWxsaXNlY0dyaWQgPiAwKSB7DQoJCQkJaHRtbCArPSAnPGRpdiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxcHgiPjx0YWJsZT48dHI+JzsNCg0KCQkJCWZvciAodmFyIGwgPSBvLm1pbGxpc2VjTWluOyBsIDw9IG1pbGxpc2VjTWF4OyBsICs9IHBhcnNlSW50KG8ubWlsbGlzZWNHcmlkLDEwKSkgew0KCQkJCQltaWxsaXNlY0dyaWRTaXplKys7DQoJCQkJCWh0bWwgKz0gJzx0ZD4nICsgKChsIDwgMTApID8gJzAnIDogJycpICsgbCArICc8L3RkPic7DQoJCQkJfQ0KDQoJCQkJaHRtbCArPSAnPC90cj48L3RhYmxlPjwvZGl2Pic7DQoJCQl9DQoJCQlodG1sICs9ICc8L2RkPic7DQoNCgkJCS8vIFRpbWV6b25lDQoJCQlodG1sICs9ICc8ZHQgY2xhc3M9InVpX3RwaWNrZXJfdGltZXpvbmVfbGFiZWwiIGlkPSJ1aV90cGlja2VyX3RpbWV6b25lX2xhYmVsXycgKyBkcF9pZCArICciJyArDQoJCQkJCSgoby5zaG93VGltZXpvbmUpID8gJycgOiBub0Rpc3BsYXkpICsgJz4nICsgby50aW1lem9uZVRleHQgKyAnPC9kdD4nOw0KCQkJaHRtbCArPSAnPGRkIGNsYXNzPSJ1aV90cGlja2VyX3RpbWV6b25lIiBpZD0idWlfdHBpY2tlcl90aW1lem9uZV8nICsgZHBfaWQgKyAnIicJKw0KCQkJCQkJCSgoby5zaG93VGltZXpvbmUpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2RkPic7DQoNCgkJCWh0bWwgKz0gJzwvZGw+PC9kaXY+JzsNCgkJCSR0cCA9ICQoaHRtbCk7DQoNCgkJCQkvLyBpZiB3ZSBvbmx5IHdhbnQgdGltZSBwaWNrZXIuLi4NCgkJCWlmIChvLnRpbWVPbmx5ID09PSB0cnVlKSB7DQoJCQkJJHRwLnByZXBlbmQoDQoJCQkJCSc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxsIj4nICsNCgkJCQkJCSc8ZGl2IGNsYXNzPSJ1aS1kYXRlcGlja2VyLXRpdGxlIj4nICsgby50aW1lT25seVRpdGxlICsgJzwvZGl2PicgKw0KCQkJCQknPC9kaXY+Jyk7DQoJCQkJJGRwLmZpbmQoJy51aS1kYXRlcGlja2VyLWhlYWRlciwgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXInKS5oaWRlKCk7DQoJCQl9DQoNCgkJCXRoaXMuaG91cl9zbGlkZXIgPSAkdHAuZmluZCgnI3VpX3RwaWNrZXJfaG91cl8nKyBkcF9pZCkuc2xpZGVyKHsNCgkJCQlvcmllbnRhdGlvbjogImhvcml6b250YWwiLA0KCQkJCXZhbHVlOiB0aGlzLmhvdXIsDQoJCQkJbWluOiBvLmhvdXJNaW4sDQoJCQkJbWF4OiBob3VyTWF4LA0KCQkJCXN0ZXA6IG8uc3RlcEhvdXIsDQoJCQkJc2xpZGU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KCQkJCQl0cF9pbnN0LmhvdXJfc2xpZGVyLnNsaWRlciggIm9wdGlvbiIsICJ2YWx1ZSIsIHVpLnZhbHVlKTsNCgkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7DQoJCQkJfQ0KCQkJfSk7DQoNCgkJCQ0KCQkJLy8gVXBkYXRlZCBieSBQZXRlciBNZWRlaXJvczoNCgkJCS8vIC0gUGFzcyBpbiBFdmVudCBhbmQgVUkgaW5zdGFuY2UgaW50byBzbGlkZSBmdW5jdGlvbg0KCQkJdGhpcy5taW51dGVfc2xpZGVyID0gJHRwLmZpbmQoJyN1aV90cGlja2VyX21pbnV0ZV8nKyBkcF9pZCkuc2xpZGVyKHsNCgkJCQlvcmllbnRhdGlvbjogImhvcml6b250YWwiLA0KCQkJCXZhbHVlOiB0aGlzLm1pbnV0ZSwNCgkJCQltaW46IG8ubWludXRlTWluLA0KCQkJCW1heDogbWluTWF4LA0KCQkJCXN0ZXA6IG8uc3RlcE1pbnV0ZSwNCgkJCQlzbGlkZTogZnVuY3Rpb24oZXZlbnQsIHVpKSB7DQoJCQkJCXRwX2luc3QubWludXRlX3NsaWRlci5zbGlkZXIoICJvcHRpb24iLCAidmFsdWUiLCB1aS52YWx1ZSk7DQoJCQkJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCQl0aGlzLnNlY29uZF9zbGlkZXIgPSAkdHAuZmluZCgnI3VpX3RwaWNrZXJfc2Vjb25kXycrIGRwX2lkKS5zbGlkZXIoew0KCQkJCW9yaWVudGF0aW9uOiAiaG9yaXpvbnRhbCIsDQoJCQkJdmFsdWU6IHRoaXMuc2Vjb25kLA0KCQkJCW1pbjogby5zZWNvbmRNaW4sDQoJCQkJbWF4OiBzZWNNYXgsDQoJCQkJc3RlcDogby5zdGVwU2Vjb25kLA0KCQkJCXNsaWRlOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCgkJCQkJdHBfaW5zdC5zZWNvbmRfc2xpZGVyLnNsaWRlciggIm9wdGlvbiIsICJ2YWx1ZSIsIHVpLnZhbHVlKTsNCgkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7DQoJCQkJfQ0KCQkJfSk7DQoNCgkJCXRoaXMubWlsbGlzZWNfc2xpZGVyID0gJHRwLmZpbmQoJyN1aV90cGlja2VyX21pbGxpc2VjXycrIGRwX2lkKS5zbGlkZXIoew0KCQkJCW9yaWVudGF0aW9uOiAiaG9yaXpvbnRhbCIsDQoJCQkJdmFsdWU6IHRoaXMubWlsbGlzZWMsDQoJCQkJbWluOiBvLm1pbGxpc2VjTWluLA0KCQkJCW1heDogbWlsbGlzZWNNYXgsDQoJCQkJc3RlcDogby5zdGVwTWlsbGlzZWMsDQoJCQkJc2xpZGU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KCQkJCQl0cF9pbnN0Lm1pbGxpc2VjX3NsaWRlci5zbGlkZXIoICJvcHRpb24iLCAidmFsdWUiLCB1aS52YWx1ZSk7DQoJCQkJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCQl0aGlzLnRpbWV6b25lX3NlbGVjdCA9ICR0cC5maW5kKCcjdWlfdHBpY2tlcl90aW1lem9uZV8nKyBkcF9pZCkuYXBwZW5kKCc8c2VsZWN0Pjwvc2VsZWN0PicpLmZpbmQoInNlbGVjdCIpOw0KCQkJJC5mbi5hcHBlbmQuYXBwbHkodGhpcy50aW1lem9uZV9zZWxlY3QsDQoJCQkJJC5tYXAoby50aW1lem9uZUxpc3QsIGZ1bmN0aW9uKHZhbCwgaWR4KSB7DQoJCQkJCXJldHVybiAkKCI8b3B0aW9uIC8+IikNCgkJCQkJCS52YWwodHlwZW9mIHZhbCA9PSAib2JqZWN0IiA/IHZhbC52YWx1ZSA6IHZhbCkNCgkJCQkJCS50ZXh0KHR5cGVvZiB2YWwgPT0gIm9iamVjdCIgPyB2YWwubGFiZWwgOiB2YWwpOw0KCQkJCX0pDQoJCQkpOw0KCQkJdGhpcy50aW1lem9uZV9zZWxlY3QudmFsKCh0eXBlb2YgdGhpcy50aW1lem9uZSAhPSAidW5kZWZpbmVkIiAmJiB0aGlzLnRpbWV6b25lICE9IG51bGwgJiYgdGhpcy50aW1lem9uZSAhPSAiIikgPyB0aGlzLnRpbWV6b25lIDogby50aW1lem9uZSk7DQoJCQl0aGlzLnRpbWV6b25lX3NlbGVjdC5jaGFuZ2UoZnVuY3Rpb24oKSB7DQoJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7DQoJCQl9KTsNCg0KCQkJLy8gQWRkIGdyaWQgZnVuY3Rpb25hbGl0eQ0KCQkJaWYgKG8uc2hvd0hvdXIgJiYgby5ob3VyR3JpZCA+IDApIHsNCgkJCQlzaXplID0gMTAwICogaG91ckdyaWRTaXplICogby5ob3VyR3JpZCAvIChob3VyTWF4IC0gby5ob3VyTWluKTsNCg0KCQkJCSR0cC5maW5kKCIudWlfdHBpY2tlcl9ob3VyIHRhYmxlIikuY3NzKHsNCgkJCQkJd2lkdGg6IHNpemUgKyAiJSIsDQoJCQkJCW1hcmdpbkxlZnQ6IChzaXplIC8gKC0yICogaG91ckdyaWRTaXplKSkgKyAiJSIsDQoJCQkJCWJvcmRlckNvbGxhcHNlOiAnY29sbGFwc2UnDQoJCQkJfSkuZmluZCgidGQiKS5lYWNoKCBmdW5jdGlvbihpbmRleCkgew0KCQkJCQkkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCQkJdmFyIGggPSAkKHRoaXMpLmh0bWwoKTsNCgkJCQkJCWlmKG8uYW1wbSkJew0KCQkJCQkJCXZhciBhcCA9IGguc3Vic3RyaW5nKDIpLnRvTG93ZXJDYXNlKCksDQoJCQkJCQkJCWFwaCA9IHBhcnNlSW50KGguc3Vic3RyaW5nKDAsMiksIDEwKTsNCgkJCQkJCQlpZiAoYXAgPT0gJ2EnKSB7DQoJCQkJCQkJCWlmIChhcGggPT0gMTIpIGggPSAwOw0KCQkJCQkJCQllbHNlIGggPSBhcGg7DQoJCQkJCQkJfSBlbHNlIGlmIChhcGggPT0gMTIpIGggPSAxMjsNCgkJCQkJCQllbHNlIGggPSBhcGggKyAxMjsNCgkJCQkJCX0NCgkJCQkJCXRwX2luc3QuaG91cl9zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCBoKTsNCgkJCQkJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOw0KCQkJCQkJdHBfaW5zdC5fb25TZWxlY3RIYW5kbGVyKCk7DQoJCQkJCX0pLmNzcyh7DQoJCQkJCQljdXJzb3I6ICdwb2ludGVyJywNCgkJCQkJCXdpZHRoOiAoMTAwIC8gaG91ckdyaWRTaXplKSArICclJywNCgkJCQkJCXRleHRBbGlnbjogJ2NlbnRlcicsDQoJCQkJCQlvdmVyZmxvdzogJ2hpZGRlbicNCgkJCQkJfSk7DQoJCQkJfSk7DQoJCQl9DQoNCgkJCWlmIChvLnNob3dNaW51dGUgJiYgby5taW51dGVHcmlkID4gMCkgew0KCQkJCXNpemUgPSAxMDAgKiBtaW51dGVHcmlkU2l6ZSAqIG8ubWludXRlR3JpZCAvIChtaW5NYXggLSBvLm1pbnV0ZU1pbik7DQoJCQkJJHRwLmZpbmQoIi51aV90cGlja2VyX21pbnV0ZSB0YWJsZSIpLmNzcyh7DQoJCQkJCXdpZHRoOiBzaXplICsgIiUiLA0KCQkJCQltYXJnaW5MZWZ0OiAoc2l6ZSAvICgtMiAqIG1pbnV0ZUdyaWRTaXplKSkgKyAiJSIsDQoJCQkJCWJvcmRlckNvbGxhcHNlOiAnY29sbGFwc2UnDQoJCQkJfSkuZmluZCgidGQiKS5lYWNoKGZ1bmN0aW9uKGluZGV4KSB7DQoJCQkJCSQodGhpcykuY2xpY2soZnVuY3Rpb24oKSB7DQoJCQkJCQl0cF9pbnN0Lm1pbnV0ZV9zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCAkKHRoaXMpLmh0bWwoKSk7DQoJCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsNCgkJCQkJCXRwX2luc3QuX29uU2VsZWN0SGFuZGxlcigpOw0KCQkJCQl9KS5jc3Moew0KCQkJCQkJY3Vyc29yOiAncG9pbnRlcicsDQoJCQkJCQl3aWR0aDogKDEwMCAvIG1pbnV0ZUdyaWRTaXplKSArICclJywNCgkJCQkJCXRleHRBbGlnbjogJ2NlbnRlcicsDQoJCQkJCQlvdmVyZmxvdzogJ2hpZGRlbicNCgkJCQkJfSk7DQoJCQkJfSk7DQoJCQl9DQoNCgkJCWlmIChvLnNob3dTZWNvbmQgJiYgby5zZWNvbmRHcmlkID4gMCkgew0KCQkJCSR0cC5maW5kKCIudWlfdHBpY2tlcl9zZWNvbmQgdGFibGUiKS5jc3Moew0KCQkJCQl3aWR0aDogc2l6ZSArICIlIiwNCgkJCQkJbWFyZ2luTGVmdDogKHNpemUgLyAoLTIgKiBzZWNvbmRHcmlkU2l6ZSkpICsgIiUiLA0KCQkJCQlib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJw0KCQkJCX0pLmZpbmQoInRkIikuZWFjaChmdW5jdGlvbihpbmRleCkgew0KCQkJCQkkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCQkJdHBfaW5zdC5zZWNvbmRfc2xpZGVyLnNsaWRlcigib3B0aW9uIiwgInZhbHVlIiwgJCh0aGlzKS5odG1sKCkpOw0KCQkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7DQoJCQkJCQl0cF9pbnN0Ll9vblNlbGVjdEhhbmRsZXIoKTsNCgkJCQkJfSkuY3NzKHsNCgkJCQkJCWN1cnNvcjogJ3BvaW50ZXInLA0KCQkJCQkJd2lkdGg6ICgxMDAgLyBzZWNvbmRHcmlkU2l6ZSkgKyAnJScsDQoJCQkJCQl0ZXh0QWxpZ246ICdjZW50ZXInLA0KCQkJCQkJb3ZlcmZsb3c6ICdoaWRkZW4nDQoJCQkJCX0pOw0KCQkJCX0pOw0KCQkJfQ0KDQoJCQlpZiAoby5zaG93TWlsbGlzZWMgJiYgby5taWxsaXNlY0dyaWQgPiAwKSB7DQoJCQkJJHRwLmZpbmQoIi51aV90cGlja2VyX21pbGxpc2VjIHRhYmxlIikuY3NzKHsNCgkJCQkJd2lkdGg6IHNpemUgKyAiJSIsDQoJCQkJCW1hcmdpbkxlZnQ6IChzaXplIC8gKC0yICogbWlsbGlzZWNHcmlkU2l6ZSkpICsgIiUiLA0KCQkJCQlib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJw0KCQkJCX0pLmZpbmQoInRkIikuZWFjaChmdW5jdGlvbihpbmRleCkgew0KCQkJCQkkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCQkJdHBfaW5zdC5taWxsaXNlY19zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCAkKHRoaXMpLmh0bWwoKSk7DQoJCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsNCgkJCQkJCXRwX2luc3QuX29uU2VsZWN0SGFuZGxlcigpOw0KCQkJCQl9KS5jc3Moew0KCQkJCQkJY3Vyc29yOiAncG9pbnRlcicsDQoJCQkJCQl3aWR0aDogKDEwMCAvIG1pbGxpc2VjR3JpZFNpemUpICsgJyUnLA0KCQkJCQkJdGV4dEFsaWduOiAnY2VudGVyJywNCgkJCQkJCW92ZXJmbG93OiAnaGlkZGVuJw0KCQkJCQl9KTsNCgkJCQl9KTsNCgkJCX0NCg0KCQkJdmFyICRidXR0b25QYW5lbCA9ICRkcC5maW5kKCcudWktZGF0ZXBpY2tlci1idXR0b25wYW5lJyk7DQoJCQlpZiAoJGJ1dHRvblBhbmVsLmxlbmd0aCkgJGJ1dHRvblBhbmVsLmJlZm9yZSgkdHApOw0KCQkJZWxzZSAkZHAuYXBwZW5kKCR0cCk7DQoNCgkJCXRoaXMuJHRpbWVPYmogPSAkdHAuZmluZCgnI3VpX3RwaWNrZXJfdGltZV8nKyBkcF9pZCk7DQoNCgkJCWlmICh0aGlzLmluc3QgIT09IG51bGwpIHsNCgkJCQl2YXIgdGltZURlZmluZWQgPSB0aGlzLnRpbWVEZWZpbmVkOw0KCQkJCXRoaXMuX29uVGltZUNoYW5nZSgpOw0KCQkJCXRoaXMudGltZURlZmluZWQgPSB0aW1lRGVmaW5lZDsNCgkJCX0NCg0KCQkJLy9FbXVsYXRlIGRhdGVwaWNrZXIgb25TZWxlY3QgYmVoYXZpb3IuIENhbGwgb24gc2xpZGVzdG9wLg0KCQkJdmFyIG9uU2VsZWN0RGVsZWdhdGUgPSBmdW5jdGlvbigpIHsNCgkJCQl0cF9pbnN0Ll9vblNlbGVjdEhhbmRsZXIoKTsNCgkJCX07DQoJCQl0aGlzLmhvdXJfc2xpZGVyLmJpbmQoJ3NsaWRlc3RvcCcsb25TZWxlY3REZWxlZ2F0ZSk7DQoJCQl0aGlzLm1pbnV0ZV9zbGlkZXIuYmluZCgnc2xpZGVzdG9wJyxvblNlbGVjdERlbGVnYXRlKTsNCgkJCXRoaXMuc2Vjb25kX3NsaWRlci5iaW5kKCdzbGlkZXN0b3AnLG9uU2VsZWN0RGVsZWdhdGUpOw0KCQkJdGhpcy5taWxsaXNlY19zbGlkZXIuYmluZCgnc2xpZGVzdG9wJyxvblNlbGVjdERlbGVnYXRlKTsNCgkJCQ0KCQkJLy8gc2xpZGVBY2Nlc3MgaW50ZWdyYXRpb246IGh0dHA6Ly90cmVudHJpY2hhcmRzb24uY29tLzIwMTEvMTEvMTEvanF1ZXJ5LXVpLXNsaWRlcnMtYW5kLXRvdWNoLWFjY2Vzc2liaWxpdHkvDQoJCQlpZiAodGhpcy5fZGVmYXVsdHMuYWRkU2xpZGVyQWNjZXNzKXsNCgkJCQl2YXIgc2xpZGVyQWNjZXNzQXJncyA9IHRoaXMuX2RlZmF1bHRzLnNsaWRlckFjY2Vzc0FyZ3M7DQoJCQkJc2V0VGltZW91dChmdW5jdGlvbigpeyAvLyBmaXggZm9yIGlubGluZSBtb2RlDQoJCQkJCWlmKCR0cC5maW5kKCcudWktc2xpZGVyLWFjY2VzcycpLmxlbmd0aCA9PSAwKXsNCgkJCQkJCSR0cC5maW5kKCcudWktc2xpZGVyOnZpc2libGUnKS5zbGlkZXJBY2Nlc3Moc2xpZGVyQWNjZXNzQXJncyk7DQoNCgkJCQkJCS8vIGZpeCBhbnkgZ3JpZHMgc2luY2Ugc2xpZGVycyBhcmUgc2hvcnRlcg0KCQkJCQkJdmFyIHNsaWRlckFjY2Vzc1dpZHRoID0gJHRwLmZpbmQoJy51aS1zbGlkZXItYWNjZXNzOmVxKDApJykub3V0ZXJXaWR0aCh0cnVlKTsNCgkJCQkJCWlmKHNsaWRlckFjY2Vzc1dpZHRoKXsNCgkJCQkJCQkkdHAuZmluZCgndGFibGU6dmlzaWJsZScpLmVhY2goZnVuY3Rpb24oKXsNCgkJCQkJCQkJdmFyICRnID0gJCh0aGlzKSwNCgkJCQkJCQkJCW9sZFdpZHRoID0gJGcub3V0ZXJXaWR0aCgpLA0KCQkJCQkJCQkJb2xkTWFyZ2luTGVmdCA9ICRnLmNzcygnbWFyZ2luTGVmdCcpLnRvU3RyaW5nKCkucmVwbGFjZSgnJScsJycpLA0KCQkJCQkJCQkJbmV3V2lkdGggPSBvbGRXaWR0aCAtIHNsaWRlckFjY2Vzc1dpZHRoLA0KCQkJCQkJCQkJbmV3TWFyZ2luTGVmdCA9ICgob2xkTWFyZ2luTGVmdCAqIG5ld1dpZHRoKS9vbGRXaWR0aCkgKyAnJSc7DQoJCQkJCQkNCgkJCQkJCQkJJGcuY3NzKHsgd2lkdGg6IG5ld1dpZHRoLCBtYXJnaW5MZWZ0OiBuZXdNYXJnaW5MZWZ0IH0pOw0KCQkJCQkJCX0pOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfSwwKTsNCgkJCX0NCgkJCS8vIGVuZCBzbGlkZUFjY2VzcyBpbnRlZ3JhdGlvbg0KCQkJDQoJCX0NCgl9LA0KDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIGxpbWl0IHRoZSBhYmlsaXR5IHRvIGdvIG91dHNpZGUgdGhlDQoJLy8gbWluL21heCBkYXRlIHJhbmdlDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCglfbGltaXRNaW5NYXhEYXRlVGltZTogZnVuY3Rpb24oZHBfaW5zdCwgYWRqdXN0U2xpZGVycyl7DQoJCXZhciBvID0gdGhpcy5fZGVmYXVsdHMsDQoJCQlkcF9kYXRlID0gbmV3IERhdGUoZHBfaW5zdC5zZWxlY3RlZFllYXIsIGRwX2luc3Quc2VsZWN0ZWRNb250aCwgZHBfaW5zdC5zZWxlY3RlZERheSk7DQoNCgkJaWYoIXRoaXMuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyKSByZXR1cm47IC8vIE5vIHRpbWUgc28gbm90aGluZyB0byBjaGVjayBoZXJlDQoNCgkJaWYoJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21pbkRhdGVUaW1lJykgIT09IG51bGwgJiYgJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21pbkRhdGVUaW1lJykgIT09IHVuZGVmaW5lZCAmJiBkcF9kYXRlKXsNCgkJCXZhciBtaW5EYXRlVGltZSA9ICQuZGF0ZXBpY2tlci5fZ2V0KGRwX2luc3QsICdtaW5EYXRlVGltZScpLA0KCQkJCW1pbkRhdGVUaW1lRGF0ZSA9IG5ldyBEYXRlKG1pbkRhdGVUaW1lLmdldEZ1bGxZZWFyKCksIG1pbkRhdGVUaW1lLmdldE1vbnRoKCksIG1pbkRhdGVUaW1lLmdldERhdGUoKSwgMCwgMCwgMCwgMCk7DQoNCgkJCWlmKHRoaXMuaG91ck1pbk9yaWdpbmFsID09PSBudWxsIHx8IHRoaXMubWludXRlTWluT3JpZ2luYWwgPT09IG51bGwgfHwgdGhpcy5zZWNvbmRNaW5PcmlnaW5hbCA9PT0gbnVsbCB8fCB0aGlzLm1pbGxpc2VjTWluT3JpZ2luYWwgPT09IG51bGwpew0KCQkJCXRoaXMuaG91ck1pbk9yaWdpbmFsID0gby5ob3VyTWluOw0KCQkJCXRoaXMubWludXRlTWluT3JpZ2luYWwgPSBvLm1pbnV0ZU1pbjsNCgkJCQl0aGlzLnNlY29uZE1pbk9yaWdpbmFsID0gby5zZWNvbmRNaW47DQoJCQkJdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsID0gby5taWxsaXNlY01pbjsNCgkJCX0NCg0KCQkJaWYoZHBfaW5zdC5zZXR0aW5ncy50aW1lT25seSB8fCBtaW5EYXRlVGltZURhdGUuZ2V0VGltZSgpID09IGRwX2RhdGUuZ2V0VGltZSgpKSB7DQoJCQkJdGhpcy5fZGVmYXVsdHMuaG91ck1pbiA9IG1pbkRhdGVUaW1lLmdldEhvdXJzKCk7DQoJCQkJaWYgKHRoaXMuaG91ciA8PSB0aGlzLl9kZWZhdWx0cy5ob3VyTWluKSB7DQoJCQkJCXRoaXMuaG91ciA9IHRoaXMuX2RlZmF1bHRzLmhvdXJNaW47DQoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbiA9IG1pbkRhdGVUaW1lLmdldE1pbnV0ZXMoKTsNCgkJCQkJaWYgKHRoaXMubWludXRlIDw9IHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbikgew0KCQkJCQkJdGhpcy5taW51dGUgPSB0aGlzLl9kZWZhdWx0cy5taW51dGVNaW47DQoJCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4gPSBtaW5EYXRlVGltZS5nZXRTZWNvbmRzKCk7DQoJCQkJCX0gZWxzZSBpZiAodGhpcy5zZWNvbmQgPD0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluKXsNCgkJCQkJCXRoaXMuc2Vjb25kID0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluOw0KCQkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4gPSBtaW5EYXRlVGltZS5nZXRNaWxsaXNlY29uZHMoKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWlmKHRoaXMubWlsbGlzZWMgPCB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbikNCgkJCQkJCQl0aGlzLm1pbGxpc2VjID0gdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW47DQoJCQkJCQl0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbiA9IHRoaXMubWlsbGlzZWNNaW5PcmlnaW5hbDsNCgkJCQkJfQ0KCQkJCX0gZWxzZSB7DQoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbiA9IHRoaXMubWludXRlTWluT3JpZ2luYWw7DQoJCQkJCXRoaXMuX2RlZmF1bHRzLnNlY29uZE1pbiA9IHRoaXMuc2Vjb25kTWluT3JpZ2luYWw7DQoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluID0gdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsOw0KCQkJCX0NCgkJCX1lbHNlew0KCQkJCXRoaXMuX2RlZmF1bHRzLmhvdXJNaW4gPSB0aGlzLmhvdXJNaW5PcmlnaW5hbDsNCgkJCQl0aGlzLl9kZWZhdWx0cy5taW51dGVNaW4gPSB0aGlzLm1pbnV0ZU1pbk9yaWdpbmFsOw0KCQkJCXRoaXMuX2RlZmF1bHRzLnNlY29uZE1pbiA9IHRoaXMuc2Vjb25kTWluT3JpZ2luYWw7DQoJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4gPSB0aGlzLm1pbGxpc2VjTWluT3JpZ2luYWw7DQoJCQl9DQoJCX0NCg0KCQlpZigkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnbWF4RGF0ZVRpbWUnKSAhPT0gbnVsbCAmJiAkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnbWF4RGF0ZVRpbWUnKSAhPT0gdW5kZWZpbmVkICYmIGRwX2RhdGUpew0KCQkJdmFyIG1heERhdGVUaW1lID0gJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21heERhdGVUaW1lJyksDQoJCQkJbWF4RGF0ZVRpbWVEYXRlID0gbmV3IERhdGUobWF4RGF0ZVRpbWUuZ2V0RnVsbFllYXIoKSwgbWF4RGF0ZVRpbWUuZ2V0TW9udGgoKSwgbWF4RGF0ZVRpbWUuZ2V0RGF0ZSgpLCAwLCAwLCAwLCAwKTsNCg0KCQkJaWYodGhpcy5ob3VyTWF4T3JpZ2luYWwgPT09IG51bGwgfHwgdGhpcy5taW51dGVNYXhPcmlnaW5hbCA9PT0gbnVsbCB8fCB0aGlzLnNlY29uZE1heE9yaWdpbmFsID09PSBudWxsKXsNCgkJCQl0aGlzLmhvdXJNYXhPcmlnaW5hbCA9IG8uaG91ck1heDsNCgkJCQl0aGlzLm1pbnV0ZU1heE9yaWdpbmFsID0gby5taW51dGVNYXg7DQoJCQkJdGhpcy5zZWNvbmRNYXhPcmlnaW5hbCA9IG8uc2Vjb25kTWF4Ow0KCQkJCXRoaXMubWlsbGlzZWNNYXhPcmlnaW5hbCA9IG8ubWlsbGlzZWNNYXg7DQoJCQl9DQoNCgkJCWlmKGRwX2luc3Quc2V0dGluZ3MudGltZU9ubHkgfHwgbWF4RGF0ZVRpbWVEYXRlLmdldFRpbWUoKSA9PSBkcF9kYXRlLmdldFRpbWUoKSl7DQoJCQkJdGhpcy5fZGVmYXVsdHMuaG91ck1heCA9IG1heERhdGVUaW1lLmdldEhvdXJzKCk7DQoJCQkJaWYgKHRoaXMuaG91ciA+PSB0aGlzLl9kZWZhdWx0cy5ob3VyTWF4KSB7DQoJCQkJCXRoaXMuaG91ciA9IHRoaXMuX2RlZmF1bHRzLmhvdXJNYXg7DQoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heCA9IG1heERhdGVUaW1lLmdldE1pbnV0ZXMoKTsNCgkJCQkJaWYgKHRoaXMubWludXRlID49IHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heCkgew0KCQkJCQkJdGhpcy5taW51dGUgPSB0aGlzLl9kZWZhdWx0cy5taW51dGVNYXg7DQoJCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXggPSBtYXhEYXRlVGltZS5nZXRTZWNvbmRzKCk7DQoJCQkJCX0gZWxzZSBpZiAodGhpcy5zZWNvbmQgPj0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4KSB7DQoJCQkJCQl0aGlzLnNlY29uZCA9IHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heDsNCgkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4ID0gbWF4RGF0ZVRpbWUuZ2V0TWlsbGlzZWNvbmRzKCk7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlpZih0aGlzLm1pbGxpc2VjID4gdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNYXgpIHRoaXMubWlsbGlzZWMgPSB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heDsNCgkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4ID0gdGhpcy5taWxsaXNlY01heE9yaWdpbmFsOw0KCQkJCQl9DQoJCQkJfSBlbHNlIHsNCgkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWF4ID0gdGhpcy5taW51dGVNYXhPcmlnaW5hbDsNCgkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4ID0gdGhpcy5zZWNvbmRNYXhPcmlnaW5hbDsNCgkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNYXggPSB0aGlzLm1pbGxpc2VjTWF4T3JpZ2luYWw7DQoJCQkJfQ0KCQkJfWVsc2V7DQoJCQkJdGhpcy5fZGVmYXVsdHMuaG91ck1heCA9IHRoaXMuaG91ck1heE9yaWdpbmFsOw0KCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heCA9IHRoaXMubWludXRlTWF4T3JpZ2luYWw7DQoJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4ID0gdGhpcy5zZWNvbmRNYXhPcmlnaW5hbDsNCgkJCQl0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCA9IHRoaXMubWlsbGlzZWNNYXhPcmlnaW5hbDsNCgkJCX0NCgkJfQ0KDQoJCWlmKGFkanVzdFNsaWRlcnMgIT09IHVuZGVmaW5lZCAmJiBhZGp1c3RTbGlkZXJzID09PSB0cnVlKXsNCgkJCXZhciBob3VyTWF4ID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLmhvdXJNYXggLSAoKHRoaXMuX2RlZmF1bHRzLmhvdXJNYXggLSB0aGlzLl9kZWZhdWx0cy5ob3VyTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBIb3VyKSkgLDEwKSwNCiAgICAgICAgICAgICAgICBtaW5NYXggID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heCAtICgodGhpcy5fZGVmYXVsdHMubWludXRlTWF4IC0gdGhpcy5fZGVmYXVsdHMubWludXRlTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBNaW51dGUpKSAsMTApLA0KICAgICAgICAgICAgICAgIHNlY01heCAgPSBwYXJzZUludCgodGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4IC0gKCh0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXggLSB0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4pICUgdGhpcy5fZGVmYXVsdHMuc3RlcFNlY29uZCkpICwxMCksDQoJCQkJbWlsbGlzZWNNYXggID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4IC0gKCh0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCAtIHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBNaWxsaXNlYykpICwxMCk7DQoNCgkJCWlmKHRoaXMuaG91cl9zbGlkZXIpDQoJCQkJdGhpcy5ob3VyX3NsaWRlci5zbGlkZXIoIm9wdGlvbiIsIHsgbWluOiB0aGlzLl9kZWZhdWx0cy5ob3VyTWluLCBtYXg6IGhvdXJNYXggfSkuc2xpZGVyKCd2YWx1ZScsIHRoaXMuaG91cik7DQoJCQlpZih0aGlzLm1pbnV0ZV9zbGlkZXIpDQoJCQkJdGhpcy5taW51dGVfc2xpZGVyLnNsaWRlcigib3B0aW9uIiwgeyBtaW46IHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbiwgbWF4OiBtaW5NYXggfSkuc2xpZGVyKCd2YWx1ZScsIHRoaXMubWludXRlKTsNCgkJCWlmKHRoaXMuc2Vjb25kX3NsaWRlcikNCgkJCQl0aGlzLnNlY29uZF9zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCB7IG1pbjogdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluLCBtYXg6IHNlY01heCB9KS5zbGlkZXIoJ3ZhbHVlJywgdGhpcy5zZWNvbmQpOw0KCQkJaWYodGhpcy5taWxsaXNlY19zbGlkZXIpDQoJCQkJdGhpcy5taWxsaXNlY19zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCB7IG1pbjogdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4sIG1heDogbWlsbGlzZWNNYXggfSkuc2xpZGVyKCd2YWx1ZScsIHRoaXMubWlsbGlzZWMpOw0KCQl9DQoNCgl9LA0KDQoJDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyB3aGVuIGEgc2xpZGVyIG1vdmVzLCBzZXQgdGhlIGludGVybmFsIHRpbWUuLi4NCgkvLyBvbiB0aW1lIGNoYW5nZSBpcyBhbHNvIGNhbGxlZCB3aGVuIHRoZSB0aW1lIGlzIHVwZGF0ZWQgaW4gdGhlIHRleHQgZmllbGQNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9vblRpbWVDaGFuZ2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgaG91ciAgID0gKHRoaXMuaG91cl9zbGlkZXIpID8gdGhpcy5ob3VyX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJykgOiBmYWxzZSwNCgkJCW1pbnV0ZSA9ICh0aGlzLm1pbnV0ZV9zbGlkZXIpID8gdGhpcy5taW51dGVfc2xpZGVyLnNsaWRlcigndmFsdWUnKSA6IGZhbHNlLA0KCQkJc2Vjb25kID0gKHRoaXMuc2Vjb25kX3NsaWRlcikgPyB0aGlzLnNlY29uZF9zbGlkZXIuc2xpZGVyKCd2YWx1ZScpIDogZmFsc2UsDQoJCQltaWxsaXNlYyA9ICh0aGlzLm1pbGxpc2VjX3NsaWRlcikgPyB0aGlzLm1pbGxpc2VjX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJykgOiBmYWxzZSwNCgkJCXRpbWV6b25lID0gKHRoaXMudGltZXpvbmVfc2VsZWN0KSA/IHRoaXMudGltZXpvbmVfc2VsZWN0LnZhbCgpIDogZmFsc2UsDQoJCQlvID0gdGhpcy5fZGVmYXVsdHM7DQoNCgkJaWYgKHR5cGVvZihob3VyKSA9PSAnb2JqZWN0JykgaG91ciA9IGZhbHNlOw0KCQlpZiAodHlwZW9mKG1pbnV0ZSkgPT0gJ29iamVjdCcpIG1pbnV0ZSA9IGZhbHNlOw0KCQlpZiAodHlwZW9mKHNlY29uZCkgPT0gJ29iamVjdCcpIHNlY29uZCA9IGZhbHNlOw0KCQlpZiAodHlwZW9mKG1pbGxpc2VjKSA9PSAnb2JqZWN0JykgbWlsbGlzZWMgPSBmYWxzZTsNCgkJaWYgKHR5cGVvZih0aW1lem9uZSkgPT0gJ29iamVjdCcpIHRpbWV6b25lID0gZmFsc2U7DQoNCgkJaWYgKGhvdXIgIT09IGZhbHNlKSBob3VyID0gcGFyc2VJbnQoaG91ciwxMCk7DQoJCWlmIChtaW51dGUgIT09IGZhbHNlKSBtaW51dGUgPSBwYXJzZUludChtaW51dGUsMTApOw0KCQlpZiAoc2Vjb25kICE9PSBmYWxzZSkgc2Vjb25kID0gcGFyc2VJbnQoc2Vjb25kLDEwKTsNCgkJaWYgKG1pbGxpc2VjICE9PSBmYWxzZSkgbWlsbGlzZWMgPSBwYXJzZUludChtaWxsaXNlYywxMCk7DQoNCgkJdmFyIGFtcG0gPSBvW2hvdXIgPCAxMiA/ICdhbU5hbWVzJyA6ICdwbU5hbWVzJ11bMF07DQoNCgkJLy8gSWYgdGhlIHVwZGF0ZSB3YXMgZG9uZSBpbiB0aGUgaW5wdXQgZmllbGQsIHRoZSBpbnB1dCBmaWVsZCBzaG91bGQgbm90IGJlIHVwZGF0ZWQuDQoJCS8vIElmIHRoZSB1cGRhdGUgd2FzIGRvbmUgdXNpbmcgdGhlIHNsaWRlcnMsIHVwZGF0ZSB0aGUgaW5wdXQgZmllbGQuDQoJCXZhciBoYXNDaGFuZ2VkID0gKGhvdXIgIT0gdGhpcy5ob3VyIHx8IG1pbnV0ZSAhPSB0aGlzLm1pbnV0ZQ0KCQkJCXx8IHNlY29uZCAhPSB0aGlzLnNlY29uZCB8fCBtaWxsaXNlYyAhPSB0aGlzLm1pbGxpc2VjDQoJCQkJfHwgKHRoaXMuYW1wbS5sZW5ndGggPiAwDQoJCQkJICAgICYmIChob3VyIDwgMTIpICE9ICgkLmluQXJyYXkodGhpcy5hbXBtLnRvVXBwZXJDYXNlKCksIHRoaXMuYW1OYW1lcykgIT09IC0xKSkNCgkJCQl8fCB0aW1lem9uZSAhPSB0aGlzLnRpbWV6b25lKTsNCgkJDQoJCWlmIChoYXNDaGFuZ2VkKSB7DQoNCgkJCWlmIChob3VyICE9PSBmYWxzZSl0aGlzLmhvdXIgPSBob3VyOw0KCQkJaWYgKG1pbnV0ZSAhPT0gZmFsc2UpIHRoaXMubWludXRlID0gbWludXRlOw0KCQkJaWYgKHNlY29uZCAhPT0gZmFsc2UpIHRoaXMuc2Vjb25kID0gc2Vjb25kOw0KCQkJaWYgKG1pbGxpc2VjICE9PSBmYWxzZSkgdGhpcy5taWxsaXNlYyA9IG1pbGxpc2VjOw0KCQkJaWYgKHRpbWV6b25lICE9PSBmYWxzZSkgdGhpcy50aW1lem9uZSA9IHRpbWV6b25lOw0KCQkJDQoJCQlpZiAoIXRoaXMuaW5zdCkgdGhpcy5pbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KHRoaXMuJGlucHV0WzBdKTsNCgkJCQ0KCQkJdGhpcy5fbGltaXRNaW5NYXhEYXRlVGltZSh0aGlzLmluc3QsIHRydWUpOw0KCQl9DQoJCWlmIChvLmFtcG0pIHRoaXMuYW1wbSA9IGFtcG07DQoJCQ0KCQkvL3RoaXMuX2Zvcm1hdFRpbWUoKTsNCgkJdGhpcy5mb3JtYXR0ZWRUaW1lID0gJC5kYXRlcGlja2VyLmZvcm1hdFRpbWUodGhpcy5fZGVmYXVsdHMudGltZUZvcm1hdCwgdGhpcywgdGhpcy5fZGVmYXVsdHMpOw0KCQlpZiAodGhpcy4kdGltZU9iaikgdGhpcy4kdGltZU9iai50ZXh0KHRoaXMuZm9ybWF0dGVkVGltZSArIG8udGltZVN1ZmZpeCk7DQoJCXRoaXMudGltZURlZmluZWQgPSB0cnVlOw0KCQlpZiAoaGFzQ2hhbmdlZCkgdGhpcy5fdXBkYXRlRGF0ZVRpbWUoKTsNCgl9LA0KICAgIA0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJLy8gY2FsbCBjdXN0b20gb25TZWxlY3QuIA0KCS8vIGJpbmQgdG8gc2xpZGVycyBzbGlkZXN0b3AsIGFuZCBncmlkIGNsaWNrLg0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJX29uU2VsZWN0SGFuZGxlcjogZnVuY3Rpb24oKSB7DQoJCXZhciBvblNlbGVjdCA9IHRoaXMuX2RlZmF1bHRzLm9uU2VsZWN0Ow0KCQl2YXIgaW5wdXRFbCA9IHRoaXMuJGlucHV0ID8gdGhpcy4kaW5wdXRbMF0gOiBudWxsOw0KCQlpZiAob25TZWxlY3QgJiYgaW5wdXRFbCkgew0KCQkJb25TZWxlY3QuYXBwbHkoaW5wdXRFbCwgW3RoaXMuZm9ybWF0dGVkRGF0ZVRpbWUsIHRoaXNdKTsNCgkJfQ0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIGxlZnQgZm9yIGFueSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQ0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJX2Zvcm1hdFRpbWU6IGZ1bmN0aW9uKHRpbWUsIGZvcm1hdCkgew0KCQl0aW1lID0gdGltZSB8fCB7IGhvdXI6IHRoaXMuaG91ciwgbWludXRlOiB0aGlzLm1pbnV0ZSwgc2Vjb25kOiB0aGlzLnNlY29uZCwgbWlsbGlzZWM6IHRoaXMubWlsbGlzZWMsIGFtcG06IHRoaXMuYW1wbSwgdGltZXpvbmU6IHRoaXMudGltZXpvbmUgfTsNCgkJdmFyIHRtcHRpbWUgPSAoZm9ybWF0IHx8IHRoaXMuX2RlZmF1bHRzLnRpbWVGb3JtYXQpLnRvU3RyaW5nKCk7DQoNCgkJdG1wdGltZSA9ICQuZGF0ZXBpY2tlci5mb3JtYXRUaW1lKHRtcHRpbWUsIHRpbWUsIHRoaXMuX2RlZmF1bHRzKTsNCgkJDQoJCWlmIChhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gdG1wdGltZTsNCgkJZWxzZSB0aGlzLmZvcm1hdHRlZFRpbWUgPSB0bXB0aW1lOw0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIHVwZGF0ZSBvdXIgaW5wdXQgd2l0aCB0aGUgbmV3IGRhdGUgdGltZS4uDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCglfdXBkYXRlRGF0ZVRpbWU6IGZ1bmN0aW9uKGRwX2luc3QpIHsNCgkJZHBfaW5zdCA9IHRoaXMuaW5zdCB8fCBkcF9pbnN0Ow0KCQl2YXIgZHQgPSAkLmRhdGVwaWNrZXIuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGRwX2luc3Quc2VsZWN0ZWRZZWFyLCBkcF9pbnN0LnNlbGVjdGVkTW9udGgsIGRwX2luc3Quc2VsZWN0ZWREYXkpKSwNCgkJCWRhdGVGbXQgPSAkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnZGF0ZUZvcm1hdCcpLA0KCQkJZm9ybWF0Q2ZnID0gJC5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoZHBfaW5zdCksDQoJCQl0aW1lQXZhaWxhYmxlID0gZHQgIT09IG51bGwgJiYgdGhpcy50aW1lRGVmaW5lZDsNCgkJdGhpcy5mb3JtYXR0ZWREYXRlID0gJC5kYXRlcGlja2VyLmZvcm1hdERhdGUoZGF0ZUZtdCwgKGR0ID09PSBudWxsID8gbmV3IERhdGUoKSA6IGR0KSwgZm9ybWF0Q2ZnKTsNCgkJdmFyIGZvcm1hdHRlZERhdGVUaW1lID0gdGhpcy5mb3JtYXR0ZWREYXRlOw0KCQlpZiAoZHBfaW5zdC5sYXN0VmFsICE9PSB1bmRlZmluZWQgJiYgKGRwX2luc3QubGFzdFZhbC5sZW5ndGggPiAwICYmIHRoaXMuJGlucHV0LnZhbCgpLmxlbmd0aCA9PT0gMCkpDQoJCQlyZXR1cm47DQoNCgkJaWYgKHRoaXMuX2RlZmF1bHRzLnRpbWVPbmx5ID09PSB0cnVlKSB7DQoJCQlmb3JtYXR0ZWREYXRlVGltZSA9IHRoaXMuZm9ybWF0dGVkVGltZTsNCgkJfSBlbHNlIGlmICh0aGlzLl9kZWZhdWx0cy50aW1lT25seSAhPT0gdHJ1ZSAmJiAodGhpcy5fZGVmYXVsdHMuYWx3YXlzU2V0VGltZSB8fCB0aW1lQXZhaWxhYmxlKSkgew0KCQkJZm9ybWF0dGVkRGF0ZVRpbWUgKz0gdGhpcy5fZGVmYXVsdHMuc2VwYXJhdG9yICsgdGhpcy5mb3JtYXR0ZWRUaW1lICsgdGhpcy5fZGVmYXVsdHMudGltZVN1ZmZpeDsNCgkJfQ0KDQoJCXRoaXMuZm9ybWF0dGVkRGF0ZVRpbWUgPSBmb3JtYXR0ZWREYXRlVGltZTsNCg0KCQlpZighdGhpcy5fZGVmYXVsdHMuc2hvd1RpbWVwaWNrZXIpIHsNCgkJCXRoaXMuJGlucHV0LnZhbCh0aGlzLmZvcm1hdHRlZERhdGUpOw0KCQl9IGVsc2UgaWYgKHRoaXMuJGFsdElucHV0ICYmIHRoaXMuX2RlZmF1bHRzLmFsdEZpZWxkVGltZU9ubHkgPT09IHRydWUpIHsNCgkJCXRoaXMuJGFsdElucHV0LnZhbCh0aGlzLmZvcm1hdHRlZFRpbWUpOw0KCQkJdGhpcy4kaW5wdXQudmFsKHRoaXMuZm9ybWF0dGVkRGF0ZSk7DQoJCX0gZWxzZSBpZih0aGlzLiRhbHRJbnB1dCkgew0KCQkJdGhpcy4kYWx0SW5wdXQudmFsKGZvcm1hdHRlZERhdGVUaW1lKTsNCgkJCXRoaXMuJGlucHV0LnZhbChmb3JtYXR0ZWREYXRlVGltZSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLiRpbnB1dC52YWwoZm9ybWF0dGVkRGF0ZVRpbWUpOw0KCQl9DQoJCQ0KCQl0aGlzLiRpbnB1dC50cmlnZ2VyKCJjaGFuZ2UiKTsNCgl9DQoNCn0pOw0KDQokLmZuLmV4dGVuZCh7DQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBzaG9ydGhhbmQganVzdCB0byB1c2UgdGltZXBpY2tlci4uDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgl0aW1lcGlja2VyOiBmdW5jdGlvbihvKSB7DQoJCW8gPSBvIHx8IHt9Ow0KCQl2YXIgdG1wX2FyZ3MgPSBhcmd1bWVudHM7DQoNCgkJaWYgKHR5cGVvZiBvID09ICdvYmplY3QnKSB0bXBfYXJnc1swXSA9ICQuZXh0ZW5kKG8sIHsgdGltZU9ubHk6IHRydWUgfSk7DQoNCgkJcmV0dXJuICQodGhpcykuZWFjaChmdW5jdGlvbigpIHsNCgkJCSQuZm4uZGF0ZXRpbWVwaWNrZXIuYXBwbHkoJCh0aGlzKSwgdG1wX2FyZ3MpOw0KCQl9KTsNCgl9LA0KDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBleHRlbmQgdGltZXBpY2tlciB0byBkYXRlcGlja2VyDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCglkYXRldGltZXBpY2tlcjogZnVuY3Rpb24obykgew0KCQlvID0gbyB8fCB7fTsNCgkJdmFyICRpbnB1dCA9IHRoaXMsDQoJCXRtcF9hcmdzID0gYXJndW1lbnRzOw0KDQoJCWlmICh0eXBlb2YobykgPT0gJ3N0cmluZycpew0KCQkJaWYobyA9PSAnZ2V0RGF0ZScpIA0KCQkJCXJldHVybiAkLmZuLmRhdGVwaWNrZXIuYXBwbHkoJCh0aGlzWzBdKSwgdG1wX2FyZ3MpOw0KCQkJZWxzZSANCgkJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCQl2YXIgJHQgPSAkKHRoaXMpOw0KCQkJCQkkdC5kYXRlcGlja2VyLmFwcGx5KCR0LCB0bXBfYXJncyk7DQoJCQkJfSk7DQoJCX0NCgkJZWxzZQ0KCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgJHQgPSAkKHRoaXMpOw0KCQkJCSR0LmRhdGVwaWNrZXIoJC50aW1lcGlja2VyLl9uZXdJbnN0KCR0LCBvKS5fZGVmYXVsdHMpOw0KCQkJfSk7DQoJfQ0KfSk7DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBmb3JtYXQgdGhlIHRpbWUgYWxsIHByZXR0eS4uLiANCi8vIGZvcm1hdCA9IHN0cmluZyBmb3JtYXQgb2YgdGhlIHRpbWUNCi8vIHRpbWUgPSBhIHt9LCBub3QgYSBEYXRlKCkgZm9yIHRpbWV6b25lcw0KLy8gb3B0aW9ucyA9IGVzc2VudGlhbGx5IHRoZSByZWdpb25hbFtdLi4gYW1OYW1lcywgcG1OYW1lcywgYW1wbQ0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5mb3JtYXRUaW1lID0gZnVuY3Rpb24oZm9ybWF0LCB0aW1lLCBvcHRpb25zKSB7DQoJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307DQoJb3B0aW9ucyA9ICQuZXh0ZW5kKCQudGltZXBpY2tlci5fZGVmYXVsdHMsIG9wdGlvbnMpOw0KCXRpbWUgPSAkLmV4dGVuZCh7aG91cjowLCBtaW51dGU6MCwgc2Vjb25kOjAsIG1pbGxpc2VjOjAsIHRpbWV6b25lOicrMDAwMCd9LCB0aW1lKTsNCgkNCgl2YXIgdG1wdGltZSA9IGZvcm1hdDsNCgl2YXIgYW1wbU5hbWUgPSBvcHRpb25zWydhbU5hbWVzJ11bMF07DQoNCgl2YXIgaG91ciA9IHBhcnNlSW50KHRpbWUuaG91ciwgMTApOw0KCWlmIChvcHRpb25zLmFtcG0pIHsNCgkJaWYgKGhvdXIgPiAxMSl7DQoJCQlhbXBtTmFtZSA9IG9wdGlvbnNbJ3BtTmFtZXMnXVswXTsNCgkJCWlmKGhvdXIgPiAxMikNCgkJCQlob3VyID0gaG91ciAlIDEyOw0KCQl9DQoJCWlmIChob3VyID09PSAwKQ0KCQkJaG91ciA9IDEyOw0KCX0NCgl0bXB0aW1lID0gdG1wdGltZS5yZXBsYWNlKC8oPzpoaD98bW0/fHNzP3xbdFRdezEsMn18W2x6XSkvZywgZnVuY3Rpb24obWF0Y2gpIHsNCgkJc3dpdGNoIChtYXRjaC50b0xvd2VyQ2FzZSgpKSB7DQoJCQljYXNlICdoaCc6IHJldHVybiAoJzAnICsgaG91cikuc2xpY2UoLTIpOw0KCQkJY2FzZSAnaCc6ICByZXR1cm4gaG91cjsNCgkJCWNhc2UgJ21tJzogcmV0dXJuICgnMCcgKyB0aW1lLm1pbnV0ZSkuc2xpY2UoLTIpOw0KCQkJY2FzZSAnbSc6ICByZXR1cm4gdGltZS5taW51dGU7DQoJCQljYXNlICdzcyc6IHJldHVybiAoJzAnICsgdGltZS5zZWNvbmQpLnNsaWNlKC0yKTsNCgkJCWNhc2UgJ3MnOiAgcmV0dXJuIHRpbWUuc2Vjb25kOw0KCQkJY2FzZSAnbCc6ICByZXR1cm4gKCcwMCcgKyB0aW1lLm1pbGxpc2VjKS5zbGljZSgtMyk7DQoJCQljYXNlICd6JzogIHJldHVybiB0aW1lLnRpbWV6b25lOw0KCQkJY2FzZSAndCc6IGNhc2UgJ3R0JzoNCgkJCQlpZiAob3B0aW9ucy5hbXBtKSB7DQoJCQkJCWlmIChtYXRjaC5sZW5ndGggPT0gMSkNCgkJCQkJCWFtcG1OYW1lID0gYW1wbU5hbWUuY2hhckF0KDApOw0KCQkJCQlyZXR1cm4gbWF0Y2guY2hhckF0KDApID09ICdUJyA/IGFtcG1OYW1lLnRvVXBwZXJDYXNlKCkgOiBhbXBtTmFtZS50b0xvd2VyQ2FzZSgpOw0KCQkJCX0NCgkJCQlyZXR1cm4gJyc7DQoJCX0NCgl9KTsNCg0KCXRtcHRpbWUgPSAkLnRyaW0odG1wdGltZSk7DQoJcmV0dXJuIHRtcHRpbWU7DQp9DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyB0aGUgYmFkIGhhY2sgOi8gb3ZlcnJpZGUgZGF0ZXBpY2tlciBzbyBpdCBkb2VzbnQgY2xvc2Ugb24gc2VsZWN0DQovLyBpbnNwaXJlZDogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMjUyNTEyL2pxdWVyeS1kYXRlcGlja2VyLXByZXZlbnQtY2xvc2luZy1waWNrZXItd2hlbi1jbGlja2luZy1hLWRhdGUvMTc2MjM3OCMxNzYyMzc4DQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX3NlbGVjdERhdGUgPSAkLmRhdGVwaWNrZXIuX3NlbGVjdERhdGU7DQokLmRhdGVwaWNrZXIuX3NlbGVjdERhdGUgPSBmdW5jdGlvbiAoaWQsIGRhdGVTdHIpIHsNCgl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QoJChpZClbMF0pLA0KCQl0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoNCglpZiAodHBfaW5zdCkgew0KCQl0cF9pbnN0Ll9saW1pdE1pbk1heERhdGVUaW1lKGluc3QsIHRydWUpOw0KCQlpbnN0LmlubGluZSA9IGluc3Quc3RheV9vcGVuID0gdHJ1ZTsNCgkJLy9UaGlzIHdheSB0aGUgb25TZWxlY3QgaGFuZGxlciBjYWxsZWQgZnJvbSBjYWxlbmRhcnBpY2tlciBnZXQgdGhlIGZ1bGwgZGF0ZVRpbWUNCgkJdGhpcy5fYmFzZV9zZWxlY3REYXRlKGlkLCBkYXRlU3RyKTsNCgkJaW5zdC5pbmxpbmUgPSBpbnN0LnN0YXlfb3BlbiA9IGZhbHNlOw0KCQl0aGlzLl9ub3RpZnlDaGFuZ2UoaW5zdCk7DQoJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJfQ0KCWVsc2UgdGhpcy5fYmFzZV9zZWxlY3REYXRlKGlkLCBkYXRlU3RyKTsNCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBzZWNvbmQgYmFkIGhhY2sgOi8gb3ZlcnJpZGUgZGF0ZXBpY2tlciBzbyBpdCB0cmlnZ2VycyBhbiBldmVudCB3aGVuIGNoYW5naW5nIHRoZSBpbnB1dCBmaWVsZA0KLy8gYW5kIGRvZXMgbm90IHJlZHJhdyB0aGUgZGF0ZXBpY2tlciBvbiBldmVyeSBzZWxlY3REYXRlIGV2ZW50DQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX3VwZGF0ZURhdGVwaWNrZXIgPSAkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXI7DQokLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIgPSBmdW5jdGlvbihpbnN0KSB7DQoNCgkvLyBkb24ndCBwb3B1cCB0aGUgZGF0ZXBpY2tlciBpZiB0aGVyZSBpcyBhbm90aGVyIGluc3RhbmNlIGFscmVhZHkgb3BlbmVkDQoJdmFyIGlucHV0ID0gaW5zdC5pbnB1dFswXTsNCglpZigkLmRhdGVwaWNrZXIuX2N1ckluc3QgJiYNCgkgICAkLmRhdGVwaWNrZXIuX2N1ckluc3QgIT0gaW5zdCAmJg0KCSAgICQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcgJiYNCgkgICAkLmRhdGVwaWNrZXIuX2xhc3RJbnB1dCAhPSBpbnB1dCkgew0KCQlyZXR1cm47DQoJfQ0KDQoJaWYgKHR5cGVvZihpbnN0LnN0YXlfb3BlbikgIT09ICdib29sZWFuJyB8fCBpbnN0LnN0YXlfb3BlbiA9PT0gZmFsc2UpIHsNCgkJCQkNCgkJdGhpcy5fYmFzZV91cGRhdGVEYXRlcGlja2VyKGluc3QpOw0KCQkNCgkJLy8gUmVsb2FkIHRoZSB0aW1lIGNvbnRyb2wgd2hlbiBjaGFuZ2luZyBzb21ldGhpbmcgaW4gdGhlIGlucHV0IHRleHQgZmllbGQuDQoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoJCWlmKHRwX2luc3QpIHRwX2luc3QuX2FkZFRpbWVQaWNrZXIoaW5zdCk7DQoJfQ0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIHRoaXJkIGJhZCBoYWNrIDovIG92ZXJyaWRlIGRhdGVwaWNrZXIgc28gaXQgYWxsb3dzIHNwYWNlcyBhbmQgY29sb24gaW4gdGhlIGlucHV0IGZpZWxkDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5UHJlc3MgPSAkLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3M7DQokLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3MgPSBmdW5jdGlvbihldmVudCkgew0KCXZhciBpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KGV2ZW50LnRhcmdldCksDQoJCXRwX2luc3QgPSAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAndGltZXBpY2tlcicpOw0KDQoJaWYgKHRwX2luc3QpIHsNCgkJaWYgKCQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICdjb25zdHJhaW5JbnB1dCcpKSB7DQoJCQl2YXIgYW1wbSA9IHRwX2luc3QuX2RlZmF1bHRzLmFtcG0sDQoJCQkJZGF0ZUNoYXJzID0gJC5kYXRlcGlja2VyLl9wb3NzaWJsZUNoYXJzKCQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICdkYXRlRm9ybWF0JykpLA0KCQkJCWRhdGV0aW1lQ2hhcnMgPSB0cF9pbnN0Ll9kZWZhdWx0cy50aW1lRm9ybWF0LnRvU3RyaW5nKCkNCgkJCQkJCQkJLnJlcGxhY2UoL1tobXNdL2csICcnKQ0KCQkJCQkJCQkucmVwbGFjZSgvVFQvZywgYW1wbSA/ICdBUE0nIDogJycpDQoJCQkJCQkJCS5yZXBsYWNlKC9UdC9nLCBhbXBtID8gJ0FhUHBNbScgOiAnJykNCgkJCQkJCQkJLnJlcGxhY2UoL3RUL2csIGFtcG0gPyAnQWFQcE1tJyA6ICcnKQ0KCQkJCQkJCQkucmVwbGFjZSgvVC9nLCBhbXBtID8gJ0FQJyA6ICcnKQ0KCQkJCQkJCQkucmVwbGFjZSgvdHQvZywgYW1wbSA/ICdhcG0nIDogJycpDQoJCQkJCQkJCS5yZXBsYWNlKC90L2csIGFtcG0gPyAnYXAnIDogJycpICsNCgkJCQkJCQkJIiAiICsNCgkJCQkJCQkJdHBfaW5zdC5fZGVmYXVsdHMuc2VwYXJhdG9yICsNCgkJCQkJCQkJdHBfaW5zdC5fZGVmYXVsdHMudGltZVN1ZmZpeCArDQoJCQkJCQkJCSh0cF9pbnN0Ll9kZWZhdWx0cy5zaG93VGltZXpvbmUgPyB0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUxpc3Quam9pbignJykgOiAnJykgKw0KCQkJCQkJCQkodHBfaW5zdC5fZGVmYXVsdHMuYW1OYW1lcy5qb2luKCcnKSkgKw0KCQkJCQkJCQkodHBfaW5zdC5fZGVmYXVsdHMucG1OYW1lcy5qb2luKCcnKSkgKw0KCQkJCQkJCQlkYXRlQ2hhcnMsDQoJCQkJY2hyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSA9PT0gdW5kZWZpbmVkID8gZXZlbnQua2V5Q29kZSA6IGV2ZW50LmNoYXJDb2RlKTsNCgkJCXJldHVybiBldmVudC5jdHJsS2V5IHx8IChjaHIgPCAnICcgfHwgIWRhdGVDaGFycyB8fCBkYXRldGltZUNoYXJzLmluZGV4T2YoY2hyKSA+IC0xKTsNCgkJfQ0KCX0NCgkNCglyZXR1cm4gJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5UHJlc3MoZXZlbnQpOw0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIE92ZXJyaWRlIGtleSB1cCBldmVudCB0byBzeW5jIG1hbnVhbCBpbnB1dCBjaGFuZ2VzLg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5fYmFzZV9kb0tleVVwID0gJC5kYXRlcGlja2VyLl9kb0tleVVwOw0KJC5kYXRlcGlja2VyLl9kb0tleVVwID0gZnVuY3Rpb24gKGV2ZW50KSB7DQoJdmFyIGluc3QgPSAkLmRhdGVwaWNrZXIuX2dldEluc3QoZXZlbnQudGFyZ2V0KSwNCgkJdHBfaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoNCglpZiAodHBfaW5zdCkgew0KCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMudGltZU9ubHkgJiYgKGluc3QuaW5wdXQudmFsKCkgIT0gaW5zdC5sYXN0VmFsKSkgew0KCQkJdHJ5IHsNCgkJCQkkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJCQl9DQoJCQljYXRjaCAoZXJyKSB7DQoJCQkJJC5kYXRlcGlja2VyLmxvZyhlcnIpOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJcmV0dXJuICQuZGF0ZXBpY2tlci5fYmFzZV9kb0tleVVwKGV2ZW50KTsNCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBvdmVycmlkZSAiVG9kYXkiIGJ1dHRvbiB0byBhbHNvIGdyYWIgdGhlIHRpbWUuDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX2dvdG9Ub2RheSA9ICQuZGF0ZXBpY2tlci5fZ290b1RvZGF5Ow0KJC5kYXRlcGlja2VyLl9nb3RvVG9kYXkgPSBmdW5jdGlvbihpZCkgew0KCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCgkKGlkKVswXSksDQoJCSRkcCA9IGluc3QuZHBEaXY7DQoJdGhpcy5fYmFzZV9nb3RvVG9kYXkoaWQpOw0KCXZhciBub3cgPSBuZXcgRGF0ZSgpOw0KCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoJaWYgKHRwX2luc3QgJiYgdHBfaW5zdC5fZGVmYXVsdHMuc2hvd1RpbWV6b25lICYmIHRwX2luc3QudGltZXpvbmVfc2VsZWN0KSB7DQoJCXZhciB0em9mZnNldCA9IG5vdy5nZXRUaW1lem9uZU9mZnNldCgpOyAvLyBJZiArMDEwMCwgcmV0dXJucyAtNjANCgkJdmFyIHR6c2lnbiA9IHR6b2Zmc2V0ID4gMCA/ICctJyA6ICcrJzsNCgkJdHpvZmZzZXQgPSBNYXRoLmFicyh0em9mZnNldCk7DQoJCXZhciB0em1pbiA9IHR6b2Zmc2V0ICUgNjA7DQoJCXR6b2Zmc2V0ID0gdHpzaWduICsgKCcwJyArICh0em9mZnNldCAtIHR6bWluKSAvIDYwKS5zbGljZSgtMikgKyAoJzAnICsgdHptaW4pLnNsaWNlKC0yKTsNCgkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lSXNvODYwOSkNCgkJCXR6b2Zmc2V0ID0gdHpvZmZzZXQuc3Vic3RyaW5nKDAsIDMpICsgJzonICsgdHpvZmZzZXQuc3Vic3RyaW5nKDMpOw0KCQl0cF9pbnN0LnRpbWV6b25lX3NlbGVjdC52YWwodHpvZmZzZXQpOw0KCX0NCgl0aGlzLl9zZXRUaW1lKGluc3QsIG5vdyk7DQoJJCggJy51aS1kYXRlcGlja2VyLXRvZGF5JywgJGRwKS5jbGljaygpOyANCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBEaXNhYmxlICYgZW5hYmxlIHRoZSBUaW1lIGluIHRoZSBkYXRldGltZXBpY2tlcg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5fZGlzYWJsZVRpbWVwaWNrZXJEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBkYXRlLCB3aXRoRGF0ZSkgew0KCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpLA0KCXRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsNCgkkKHRhcmdldCkuZGF0ZXBpY2tlcignZ2V0RGF0ZScpOyAvLyBJbml0IHNlbGVjdGVkW1llYXJ8TW9udGh8RGF5XQ0KCWlmICh0cF9pbnN0KSB7DQoJCXRwX2luc3QuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyID0gZmFsc2U7DQoJCXRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGluc3QpOw0KCX0NCn07DQoNCiQuZGF0ZXBpY2tlci5fZW5hYmxlVGltZXBpY2tlckRhdGVwaWNrZXIgPSBmdW5jdGlvbih0YXJnZXQsIGRhdGUsIHdpdGhEYXRlKSB7DQoJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCksDQoJdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOw0KCSQodGFyZ2V0KS5kYXRlcGlja2VyKCdnZXREYXRlJyk7IC8vIEluaXQgc2VsZWN0ZWRbWWVhcnxNb250aHxEYXldDQoJaWYgKHRwX2luc3QpIHsNCgkJdHBfaW5zdC5fZGVmYXVsdHMuc2hvd1RpbWVwaWNrZXIgPSB0cnVlOw0KCQl0cF9pbnN0Ll9hZGRUaW1lUGlja2VyKGluc3QpOyAvLyBDb3VsZCBiZSBkaXNhYmxlZCBvbiBwYWdlIGxvYWQNCgkJdHBfaW5zdC5fdXBkYXRlRGF0ZVRpbWUoaW5zdCk7DQoJfQ0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIENyZWF0ZSBvdXIgb3duIHNldCB0aW1lIGZ1bmN0aW9uDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9zZXRUaW1lID0gZnVuY3Rpb24oaW5zdCwgZGF0ZSkgew0KCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoJaWYgKHRwX2luc3QpIHsNCgkJdmFyIGRlZmF1bHRzID0gdHBfaW5zdC5fZGVmYXVsdHMsDQoJCQkvLyBjYWxsaW5nIF9zZXRUaW1lIHdpdGggbm8gZGF0ZSBzZXRzIHRpbWUgdG8gZGVmYXVsdHMNCgkJCWhvdXIgPSBkYXRlID8gZGF0ZS5nZXRIb3VycygpIDogZGVmYXVsdHMuaG91ciwNCgkJCW1pbnV0ZSA9IGRhdGUgPyBkYXRlLmdldE1pbnV0ZXMoKSA6IGRlZmF1bHRzLm1pbnV0ZSwNCgkJCXNlY29uZCA9IGRhdGUgPyBkYXRlLmdldFNlY29uZHMoKSA6IGRlZmF1bHRzLnNlY29uZCwNCgkJCW1pbGxpc2VjID0gZGF0ZSA/IGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCkgOiBkZWZhdWx0cy5taWxsaXNlYzsNCg0KCQkvL2NoZWNrIGlmIHdpdGhpbiBtaW4vbWF4IHRpbWVzLi4NCgkJaWYgKChob3VyIDwgZGVmYXVsdHMuaG91ck1pbiB8fCBob3VyID4gZGVmYXVsdHMuaG91ck1heCkgfHwgKG1pbnV0ZSA8IGRlZmF1bHRzLm1pbnV0ZU1pbiB8fCBtaW51dGUgPiBkZWZhdWx0cy5taW51dGVNYXgpIHx8IChzZWNvbmQgPCBkZWZhdWx0cy5zZWNvbmRNaW4gfHwgc2Vjb25kID4gZGVmYXVsdHMuc2Vjb25kTWF4KSB8fCAobWlsbGlzZWMgPCBkZWZhdWx0cy5taWxsaXNlY01pbiB8fCBtaWxsaXNlYyA+IGRlZmF1bHRzLm1pbGxpc2VjTWF4KSkgew0KCQkJaG91ciA9IGRlZmF1bHRzLmhvdXJNaW47DQoJCQltaW51dGUgPSBkZWZhdWx0cy5taW51dGVNaW47DQoJCQlzZWNvbmQgPSBkZWZhdWx0cy5zZWNvbmRNaW47DQoJCQltaWxsaXNlYyA9IGRlZmF1bHRzLm1pbGxpc2VjTWluOw0KCQl9DQoNCgkJdHBfaW5zdC5ob3VyID0gaG91cjsNCgkJdHBfaW5zdC5taW51dGUgPSBtaW51dGU7DQoJCXRwX2luc3Quc2Vjb25kID0gc2Vjb25kOw0KCQl0cF9pbnN0Lm1pbGxpc2VjID0gbWlsbGlzZWM7DQoNCgkJaWYgKHRwX2luc3QuaG91cl9zbGlkZXIpIHRwX2luc3QuaG91cl9zbGlkZXIuc2xpZGVyKCd2YWx1ZScsIGhvdXIpOw0KCQlpZiAodHBfaW5zdC5taW51dGVfc2xpZGVyKSB0cF9pbnN0Lm1pbnV0ZV9zbGlkZXIuc2xpZGVyKCd2YWx1ZScsIG1pbnV0ZSk7DQoJCWlmICh0cF9pbnN0LnNlY29uZF9zbGlkZXIpIHRwX2luc3Quc2Vjb25kX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJywgc2Vjb25kKTsNCgkJaWYgKHRwX2luc3QubWlsbGlzZWNfc2xpZGVyKSB0cF9pbnN0Lm1pbGxpc2VjX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJywgbWlsbGlzZWMpOw0KDQoJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOw0KCQl0cF9pbnN0Ll91cGRhdGVEYXRlVGltZShpbnN0KTsNCgl9DQp9Ow0KDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLy8gQ3JlYXRlIG5ldyBwdWJsaWMgbWV0aG9kIHRvIHNldCBvbmx5IHRpbWUsIGNhbGxhYmxlIGFzICQoKS5kYXRlcGlja2VyKCdzZXRUaW1lJywgZGF0ZSkNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQokLmRhdGVwaWNrZXIuX3NldFRpbWVEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBkYXRlLCB3aXRoRGF0ZSkgew0KCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpLA0KCQl0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoNCglpZiAodHBfaW5zdCkgew0KCQl0aGlzLl9zZXREYXRlRnJvbUZpZWxkKGluc3QpOw0KCQl2YXIgdHBfZGF0ZTsNCgkJaWYgKGRhdGUpIHsNCgkJCWlmICh0eXBlb2YgZGF0ZSA9PSAic3RyaW5nIikgew0KCQkJCXRwX2luc3QuX3BhcnNlVGltZShkYXRlLCB3aXRoRGF0ZSk7DQoJCQkJdHBfZGF0ZSA9IG5ldyBEYXRlKCk7DQoJCQkJdHBfZGF0ZS5zZXRIb3Vycyh0cF9pbnN0LmhvdXIsIHRwX2luc3QubWludXRlLCB0cF9pbnN0LnNlY29uZCwgdHBfaW5zdC5taWxsaXNlYyk7DQoJCQl9DQoJCQllbHNlIHRwX2RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7DQoJCQlpZiAodHBfZGF0ZS50b1N0cmluZygpID09ICdJbnZhbGlkIERhdGUnKSB0cF9kYXRlID0gdW5kZWZpbmVkOw0KCQkJdGhpcy5fc2V0VGltZShpbnN0LCB0cF9kYXRlKTsNCgkJfQ0KCX0NCg0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIG92ZXJyaWRlIHNldERhdGUoKSB0byBhbGxvdyBzZXR0aW5nIHRpbWUgdG9vIHdpdGhpbiBEYXRlIG9iamVjdA0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5fYmFzZV9zZXREYXRlRGF0ZXBpY2tlciA9ICQuZGF0ZXBpY2tlci5fc2V0RGF0ZURhdGVwaWNrZXI7DQokLmRhdGVwaWNrZXIuX3NldERhdGVEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBkYXRlKSB7DQoJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCksDQoJdHBfZGF0ZSA9IChkYXRlIGluc3RhbmNlb2YgRGF0ZSkgPyBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSkgOiBkYXRlOw0KDQoJdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihpbnN0KTsNCgl0aGlzLl9iYXNlX3NldERhdGVEYXRlcGlja2VyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7DQoJdGhpcy5fc2V0VGltZURhdGVwaWNrZXIodGFyZ2V0LCB0cF9kYXRlLCB0cnVlKTsNCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBvdmVycmlkZSBnZXREYXRlKCkgdG8gYWxsb3cgZ2V0dGluZyB0aW1lIHRvbyB3aXRoaW4gRGF0ZSBvYmplY3QNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQokLmRhdGVwaWNrZXIuX2Jhc2VfZ2V0RGF0ZURhdGVwaWNrZXIgPSAkLmRhdGVwaWNrZXIuX2dldERhdGVEYXRlcGlja2VyOw0KJC5kYXRlcGlja2VyLl9nZXREYXRlRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKHRhcmdldCwgbm9EZWZhdWx0KSB7DQoJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCksDQoJCXRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsNCg0KCWlmICh0cF9pbnN0KSB7DQoJCXRoaXMuX3NldERhdGVGcm9tRmllbGQoaW5zdCwgbm9EZWZhdWx0KTsNCgkJdmFyIGRhdGUgPSB0aGlzLl9nZXREYXRlKGluc3QpOw0KCQlpZiAoZGF0ZSAmJiB0cF9pbnN0Ll9wYXJzZVRpbWUoJCh0YXJnZXQpLnZhbCgpLCB0cF9pbnN0LnRpbWVPbmx5KSkgZGF0ZS5zZXRIb3Vycyh0cF9pbnN0LmhvdXIsIHRwX2luc3QubWludXRlLCB0cF9pbnN0LnNlY29uZCwgdHBfaW5zdC5taWxsaXNlYyk7DQoJCXJldHVybiBkYXRlOw0KCX0NCglyZXR1cm4gdGhpcy5fYmFzZV9nZXREYXRlRGF0ZXBpY2tlcih0YXJnZXQsIG5vRGVmYXVsdCk7DQp9Ow0KDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLy8gb3ZlcnJpZGUgcGFyc2VEYXRlKCkgYmVjYXVzZSBVSSAxLjguMTQgdGhyb3dzIGFuIGVycm9yIGFib3V0ICJFeHRyYSBjaGFyYWN0ZXJzIg0KLy8gQW4gb3B0aW9uIGluIGRhdGFwaWNrZXIgdG8gaWdub3JlIGV4dHJhIGZvcm1hdCBjaGFyYWN0ZXJzIHdvdWxkIGJlIG5pY2VyLg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5fYmFzZV9wYXJzZURhdGUgPSAkLmRhdGVwaWNrZXIucGFyc2VEYXRlOw0KJC5kYXRlcGlja2VyLnBhcnNlRGF0ZSA9IGZ1bmN0aW9uKGZvcm1hdCwgdmFsdWUsIHNldHRpbmdzKSB7DQoJdmFyIGRhdGU7DQoJdHJ5IHsNCgkJZGF0ZSA9IHRoaXMuX2Jhc2VfcGFyc2VEYXRlKGZvcm1hdCwgdmFsdWUsIHNldHRpbmdzKTsNCgl9IGNhdGNoIChlcnIpIHsNCgkJaWYgKGVyci5pbmRleE9mKCI6IikgPj0gMCkgew0KCQkJLy8gSGFjayEgIFRoZSBlcnJvciBtZXNzYWdlIGVuZHMgd2l0aCBhIGNvbG9uLCBhIHNwYWNlLCBhbmQNCgkJCS8vIHRoZSAiZXh0cmEiIGNoYXJhY3RlcnMuICBXZSByZWx5IG9uIHRoYXQgaW5zdGVhZCBvZg0KCQkJLy8gYXR0ZW1wdGluZyB0byBwZXJmZWN0bHkgcmVwcm9kdWNlIHRoZSBwYXJzaW5nIGFsZ29yaXRobS4NCgkJCWRhdGUgPSB0aGlzLl9iYXNlX3BhcnNlRGF0ZShmb3JtYXQsIHZhbHVlLnN1YnN0cmluZygwLHZhbHVlLmxlbmd0aC0oZXJyLmxlbmd0aC1lcnIuaW5kZXhPZignOicpLTIpKSwgc2V0dGluZ3MpOw0KCQl9IGVsc2Ugew0KCQkJLy8gVGhlIHVuZGVybHlpbmcgZXJyb3Igd2FzIG5vdCByZWxhdGVkIHRvIHRoZSB0aW1lDQoJCQl0aHJvdyBlcnI7DQoJCX0NCgl9DQoJcmV0dXJuIGRhdGU7DQp9Ow0KDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLy8gb3ZlcnJpZGUgZm9ybWF0RGF0ZSB0byBzZXQgZGF0ZSB3aXRoIHRpbWUgdG8gdGhlIGlucHV0DQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX2Zvcm1hdERhdGU9JC5kYXRlcGlja2VyLl9mb3JtYXREYXRlOw0KJC5kYXRlcGlja2VyLl9mb3JtYXREYXRlID0gZnVuY3Rpb24oaW5zdCwgZGF5LCBtb250aCwgeWVhcil7DQoJdmFyIHRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsNCglpZih0cF9pbnN0KQ0KCXsNCgkJaWYoZGF5KQ0KCQkJdmFyIGIgPSB0aGlzLl9iYXNlX2Zvcm1hdERhdGUoaW5zdCwgZGF5LCBtb250aCwgeWVhcik7DQoJCXRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGluc3QpOwkNCgkJcmV0dXJuIHRwX2luc3QuJGlucHV0LnZhbCgpOw0KCX0NCglyZXR1cm4gdGhpcy5fYmFzZV9mb3JtYXREYXRlKGluc3QpOw0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIG92ZXJyaWRlIG9wdGlvbnMgc2V0dGVyIHRvIGFkZCB0aW1lIHRvIG1heERhdGUoVGltZSkgYW5kIG1pbkRhdGUoVGltZSkuIE1heERhdGUNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQokLmRhdGVwaWNrZXIuX2Jhc2Vfb3B0aW9uRGF0ZXBpY2tlciA9ICQuZGF0ZXBpY2tlci5fb3B0aW9uRGF0ZXBpY2tlcjsNCiQuZGF0ZXBpY2tlci5fb3B0aW9uRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKHRhcmdldCwgbmFtZSwgdmFsdWUpIHsNCgl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0KSwNCgkJdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOw0KCWlmICh0cF9pbnN0KSB7DQoJCXZhciBtaW4sbWF4LG9uc2VsZWN0Ow0KCQlpZiAodHlwZW9mIG5hbWUgPT0gJ3N0cmluZycpIHsgLy8gaWYgbWluL21heCB3YXMgc2V0IHdpdGggdGhlIHN0cmluZw0KCQkJaWYgKG5hbWU9PT0nbWluRGF0ZScgfHwgbmFtZT09PSdtaW5EYXRlVGltZScgKQ0KCQkJCW1pbiA9IHZhbHVlOw0KCQkJZWxzZSBpZiAobmFtZT09PSdtYXhEYXRlJyB8fCBuYW1lPT09J21heERhdGVUaW1lJykNCgkJCQltYXggPSB2YWx1ZTsNCgkJCWVsc2UgaWYgKG5hbWU9PT0nb25TZWxlY3QnKQ0KCQkJCW9uc2VsZWN0PXZhbHVlOw0KCQl9IGVsc2UgaWYgKHR5cGVvZiBuYW1lID09ICdvYmplY3QnKSB7IC8vaWYgbWluL21heCB3YXMgc2V0IHdpdGggdGhlIEpTT04NCgkJCWlmKG5hbWUubWluRGF0ZSkNCgkJCQltaW4gPSBuYW1lLm1pbkRhdGU7DQoJCQllbHNlIGlmIChuYW1lLm1pbkRhdGVUaW1lKQ0KCQkJCW1pbiA9IG5hbWUubWluRGF0ZVRpbWU7DQoJCQllbHNlIGlmIChuYW1lLm1heERhdGUpDQoJCQkJbWF4ID0gbmFtZS5tYXhEYXRlOw0KCQkJZWxzZSBpZiAobmFtZS5tYXhEYXRlVGltZSkNCgkJCQltYXggPSBuYW1lLm1heERhdGVUaW1lOw0KCQl9DQoJCWlmKG1pbil7IC8vaWYgbWluIHdhcyBzZXQNCgkJCWlmKG1pbj09MCkNCgkJCQltaW49bmV3IERhdGUoKTsNCgkJCWVsc2UNCgkJCQltaW49IG5ldyBEYXRlKG1pbik7DQoJCQkNCgkJCXRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUgPSBtaW47DQoJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZSA9IG1pbjsNCgkJfSBlbHNlIGlmIChtYXgpeyAvL2lmIG1heCB3YXMgc2V0DQoJCQlpZihtYXg9PTApDQoJCQkJbWF4PW5ldyBEYXRlKCk7DQoJCQllbHNlDQoJCQkJbWF4PSBuZXcgRGF0ZShtYXgpOw0KCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSA9IG1heDsNCgkJCXRwX2luc3QuX2RlZmF1bHRzLm1heERhdGVUaW1lID0gbWF4Ow0KCQl9DQoJCWVsc2UgaWYgKG9uc2VsZWN0KQ0KCQkJdHBfaW5zdC5fZGVmYXVsdHMub25TZWxlY3Q9b25zZWxlY3Q7DQoJfQ0KCWlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKQ0KCQlyZXR1cm4gdGhpcy5fYmFzZV9vcHRpb25EYXRlcGlja2VyKHRhcmdldCwgbmFtZSk7DQoJcmV0dXJuIHRoaXMuX2Jhc2Vfb3B0aW9uRGF0ZXBpY2tlcih0YXJnZXQsIG5hbWUsIHZhbHVlKTsNCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBqUXVlcnkgZXh0ZW5kIG5vdyBpZ25vcmVzIG51bGxzIQ0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCmZ1bmN0aW9uIGV4dGVuZFJlbW92ZSh0YXJnZXQsIHByb3BzKSB7DQoJJC5leHRlbmQodGFyZ2V0LCBwcm9wcyk7DQoJZm9yICh2YXIgbmFtZSBpbiBwcm9wcykNCgkJaWYgKHByb3BzW25hbWVdID09PSBudWxsIHx8IHByb3BzW25hbWVdID09PSB1bmRlZmluZWQpDQoJCQl0YXJnZXRbbmFtZV0gPSBwcm9wc1tuYW1lXTsNCglyZXR1cm4gdGFyZ2V0Ow0KfTsNCg0KJC50aW1lcGlja2VyID0gbmV3IFRpbWVwaWNrZXIoKTsgLy8gc2luZ2xldG9uIGluc3RhbmNlDQokLnRpbWVwaWNrZXIudmVyc2lvbiA9ICIwLjkuOSI7DQoNCn0pKGpRdWVyeSk7DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/jquery.collapsible.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBDb2xsYXBzaWJsZSwgalF1ZXJ5IFBsdWdpbg0KICogDQogKiBDb2xsYXBzaWJsZSBtYW5hZ2VtZW50LiAgT3B0aW9uYWwgY29va2llIHN1cHBvcnQgdXNpbmcgdGhlIGpRdWVyeSBDb29raWUgcGx1Z2luOg0KICogaHR0cHM6Ly9naXRodWIuY29tL2NhcmhhcnRsL2pxdWVyeS1jb29raWUNCiAqIA0KICogQ29weXJpZ2h0IChjKSAyMDEwIEpvaG4gU255ZGVyIChzbnlkZXJwbGFjZS5jb20pDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LnNueWRlcnBsYWNlLmNvbS9jb2xsYXBzaWJsZS9saWNlbnNlLnR4dCBOZXcgQlNEDQogKiBAdmVyc2lvbiAxLjIuMQ0KICovDQooZnVuY3Rpb24oJCkgew0KICAgICQuZm4uY29sbGFwc2libGUgPSBmdW5jdGlvbiAoY21kLCBhcmcpIHsNCg0KICAgICAgICAvL2ZpcmV3YWxsaW5nDQogICAgICAgIGlmICghdGhpcyB8fCB0aGlzLmxlbmd0aCA8IDEpIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzOw0KICAgICAgICB9DQoNCiAgICAgICAgLy9hZGRyZXNzIGNvbW1hbmQgcmVxdWVzdHMNCiAgICAgICAgaWYgKHR5cGVvZiBjbWQgPT0gJ3N0cmluZycpIHsNCiAgICAgICAgICAgIHJldHVybiAkLmZuLmNvbGxhcHNpYmxlLmRpc3BhdGNoZXJbY21kXSh0aGlzLCBhcmcpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvL3JldHVybiB0aGUgY29tbWFuZCBkaXNwYXRjaGVyDQogICAgICAgIHJldHVybiAkLmZuLmNvbGxhcHNpYmxlLmRpc3BhdGNoZXJbJ19jcmVhdGUnXSh0aGlzLCBjbWQpOw0KICAgIH07DQoNCiAgICAvL2NyZWF0ZSB0aGUgY29tbWFuZCBkaXNwYXRjaGVyDQogICAgJC5mbi5jb2xsYXBzaWJsZS5kaXNwYXRjaGVyID0gew0KDQogICAgICAgIC8vaW5pdGlhbGl6ZWQgd2l0aCBvcHRpb25zDQogICAgICAgIF9jcmVhdGUgOiBmdW5jdGlvbihvYmosIGFyZykgew0KICAgICAgICAgICAgY3JlYXRlQ29sbGFwc2libGUob2JqLCBhcmcpOw0KICAgICAgICB9LA0KDQogICAgICAgIC8vdG9nZ2xlIHRoZSBlbGVtZW50J3MgZGlzcGxheQ0KICAgICAgICB0b2dnbGU6IGZ1bmN0aW9uKG9iaikgew0KICAgICAgICAgICAgdG9nZ2xlKG9iaiwgbG9hZE9wdHMob2JqKSk7DQogICAgICAgICAgICByZXR1cm4gb2JqOw0KICAgICAgICB9LA0KDQogICAgICAgIC8vc2hvdyB0aGUgZWxlbWVudA0KICAgICAgICBvcGVuOiBmdW5jdGlvbihvYmopIHsNCiAgICAgICAgICAgIG9wZW4ob2JqLCBsb2FkT3B0cyhvYmopKTsNCiAgICAgICAgICAgIHJldHVybiBvYmo7DQogICAgICAgIH0sDQoNCiAgICAgICAgLy9oaWRlIHRoZSBlbGVtZW50DQogICAgICAgIGNsb3NlOiBmdW5jdGlvbihvYmopIHsNCiAgICAgICAgICAgIGNsb3NlKG9iaiwgbG9hZE9wdHMob2JqKSk7DQogICAgICAgICAgICByZXR1cm4gb2JqOw0KICAgICAgICB9LA0KDQogICAgICAgIC8vY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgY2xvc2VkDQogICAgICAgIGNvbGxhcHNlZDogZnVuY3Rpb24ob2JqKSB7DQogICAgICAgICAgICByZXR1cm4gY29sbGFwc2VkKG9iaiwgbG9hZE9wdHMob2JqKSk7DQogICAgICAgIH0sDQoNCiAgICAgICAgLy9vcGVuIGFsbCBjbG9zZWQgY29udGFpbmVycw0KICAgICAgICBvcGVuQWxsOiBmdW5jdGlvbihvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBvcGVuQWxsKG9iaiwgbG9hZE9wdHMob2JqKSk7DQogICAgICAgIH0sDQoNCiAgICAgICAgLy9jbG9zZSBhbGwgb3BlbmVkIGNvbnRhaW5lcnMNCiAgICAgICAgY2xvc2VBbGw6IGZ1bmN0aW9uKG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIGNsb3NlQWxsKG9iaiwgbG9hZE9wdHMob2JqKSk7DQogICAgICAgIH0NCiAgICB9Ow0KDQogICAgLy9jcmVhdGUgdGhlIGluaXRpYWwgY29sbGFwc2libGUNCiAgICBmdW5jdGlvbiBjcmVhdGVDb2xsYXBzaWJsZShvYmosIG9wdGlvbnMpDQogICAgew0KDQogICAgICAgIC8vYnVpbGQgbWFpbiBvcHRpb25zIGJlZm9yZSBlbGVtZW50IGl0ZXJhdGlvbg0KICAgICAgICB2YXIgb3B0cyA9ICQuZXh0ZW5kKHt9LCAkLmZuLmNvbGxhcHNpYmxlLmRlZmF1bHRzLCBvcHRpb25zKTsNCiAgICAgICAgDQogICAgICAgIC8vc3RvcmUgYW55IG9wZW5lZCBkZWZhdWx0IHZhbHVlcyB0byBzZXQgY29va2llIGxhdGVyDQogICAgICAgIHZhciBvcGVuZWQgPSBbXTsNCiAgICAgICAgDQogICAgICAgIC8vaXRlcmF0ZSBlYWNoIG1hdGNoZWQgb2JqZWN0LCBiaW5kLCBhbmQgb3Blbi9jbG9zZQ0KICAgICAgICBvYmouZWFjaChmdW5jdGlvbigpIHsNCg0KICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsNCiAgICAgICAgICAgIHNhdmVPcHRzKCR0aGlzLCBvcHRzKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLy9iaW5kIGl0IHRvIHRoZSBldmVudA0KICAgICAgICAgICAgaWYgKG9wdHMuYmluZCA9PSAnbW91c2VlbnRlcicpIHsNCg0KICAgICAgICAgICAgICAgICR0aGlzLmJpbmQoJ21vdXNlZW50ZXInLCBmdW5jdGlvbihlKSB7DQogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgDQogICAgICAgICAgICAgICAgICAgIHRvZ2dsZSgkdGhpcywgb3B0cyk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC8vYmluZCBpdCB0byB0aGUgZXZlbnQNCiAgICAgICAgICAgIGlmIChvcHRzLmJpbmQgPT0gJ21vdXNlb3ZlcicpIHsNCg0KICAgICAgICAgICAgICAgICR0aGlzLmJpbmQoJ21vdXNlb3ZlcicsZnVuY3Rpb24oZSkgew0KICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7IA0KICAgICAgICAgICAgICAgICAgICB0b2dnbGUoJHRoaXMsIG9wdHMpOyANCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLy9iaW5kIGl0IHRvIHRoZSBldmVudA0KICAgICAgICAgICAgaWYgKG9wdHMuYmluZCA9PSAnY2xpY2snKSB7DQoNCiAgICAgICAgICAgICAgICAkdGhpcy5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgICAgICAgICB0b2dnbGUoJHRoaXMsIG9wdHMpOw0KICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC8vYmluZCBpdCB0byB0aGUgZXZlbnQNCiAgICAgICAgICAgIGlmIChvcHRzLmJpbmQgPT0gJ2RibGNsaWNrJykgew0KDQogICAgICAgICAgICAgICAgJHRoaXMuYmluZCgnZGJsY2xpY2snLCBmdW5jdGlvbihlKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgICAgICAgICB0b2dnbGUoJHRoaXMsIG9wdHMpOw0KICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC8vaW5pdGlhbGl6ZSB0aGUgY29sbGFwc2libGVzDQogICAgICAgICAgICAvL2dldCB0aGUgaWQgZm9yIHRoaXMgZWxlbWVudA0KICAgICAgICAgICAgdmFyIGlkID0gJHRoaXMuYXR0cignaWQnKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLy9pZiBub3QgdXNpbmcgY29va2llcywgb3BlbiBkZWZhdWx0cw0KICAgICAgICAgICAgaWYgKCF1c2VDb29raWVzKG9wdHMpKSB7DQoNCiAgICAgICAgICAgICAgICAvL2lzIHRoaXMgY29sbGFwc2libGUgaW4gdGhlIGRlZmF1bHQgb3BlbiBhcnJheT8NCiAgICAgICAgICAgICAgICB2YXIgZE9wZW5JbmRleCA9IGluRGVmYXVsdE9wZW4oaWQsIG9wdHMpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIC8vY2xvc2UgaXQgaWYgbm90IGRlZmF1bHRlZCB0byBvcGVuDQogICAgICAgICAgICAgICAgaWYgKGRPcGVuSW5kZXggPT09IGZhbHNlKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3Mob3B0cy5jc3NDbG9zZSk7DQogICAgICAgICAgICAgICAgICAgIG9wdHMubG9hZENsb3NlKCR0aGlzLCBvcHRzKTsNCg0KICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vaXRzIGEgZGVmYXVsdCBvcGVuLCBvcGVuIGl0DQoNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3Mob3B0cy5jc3NPcGVuKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0cy5sb2FkT3BlbigkdGhpcywgb3B0cyk7DQogICAgICAgICAgICAgICAgICAgIG9wZW5lZC5wdXNoKGlkKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0gZWxzZSB7IC8vY2FuIHVzZSBjb29raWVzLCB1c2UgdGhlbSBub3cNCg0KICAgICAgICAgICAgICAgIC8vaGFzIGEgY29va2llIGJlZW4gc2V0LCB0aGlzIG92ZXJyaWRlcyBkZWZhdWx0IG9wZW4NCiAgICAgICAgICAgICAgICBpZiAoaXNzZXRDb29raWUob3B0cykpIHsNCg0KICAgICAgICAgICAgICAgICAgICB2YXIgY29va2llSW5kZXggPSBpbkNvb2tpZShpZCwgb3B0cyk7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tpZUluZGV4ID09PSBmYWxzZSkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcyhvcHRzLmNzc0Nsb3NlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMubG9hZENsb3NlKCR0aGlzLCBvcHRzKTsNCg0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KDQogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcyhvcHRzLmNzc09wZW4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5sb2FkT3BlbigkdGhpcywgb3B0cyk7DQogICAgICAgICAgICAgICAgICAgICAgICBvcGVuZWQucHVzaChpZCk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vYSBjb29raWUgaGFzbid0IGJlZW4gc2V0IG9wZW4gZGVmYXVsdHMsIGFkZCB0aGVtIHRvIG9wZW5lZCBhcnJheQ0KDQogICAgICAgICAgICAgICAgICAgIGRPcGVuSW5kZXggPSBpbkRlZmF1bHRPcGVuKGlkLCBvcHRzKTsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAoZE9wZW5JbmRleCA9PT0gZmFsc2UpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3Mob3B0cy5jc3NDbG9zZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmxvYWRDbG9zZSgkdGhpcywgb3B0cyk7DQoNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3Mob3B0cy5jc3NPcGVuKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMubG9hZE9wZW4oJHRoaXMsIG9wdHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVkLnB1c2goaWQpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgDQogICAgICAgIC8vbm93IHRoYXQgdGhlIGxvb3AgaXMgZG9uZSwgc2V0IHRoZSBjb29raWUNCiAgICAgICAgaWYgKG9wZW5lZC5sZW5ndGggPiAwICYmIHVzZUNvb2tpZXMob3B0cykpIHsNCg0KICAgICAgICAgICAgc2V0Q29va2llKG9wZW5lZC50b1N0cmluZygpLCBvcHRzKTsNCg0KICAgICAgICB9IGVsc2UgeyAvL3RoZXJlIGFyZSBub25lIG9wZW4sIHNldCBjb29raWUNCg0KICAgICAgICAgICAgc2V0Q29va2llKCcnLCBvcHRzKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuIG9iajsNCiAgICB9DQogICAgDQogICAgLy9sb2FkIG9wdHMgZnJvbSBvYmplY3QNCiAgICBmdW5jdGlvbiBsb2FkT3B0cygkdGhpcykgew0KICAgICAgICByZXR1cm4gJHRoaXMuZGF0YSgnY29sbGFwc2libGUtb3B0cycpOw0KICAgIH0NCiAgICANCiAgICAvL3NhdmUgb3B0cyBpbnRvIG9iamVjdA0KICAgIGZ1bmN0aW9uIHNhdmVPcHRzKCR0aGlzLCBvcHRzKSB7DQogICAgICAgIHJldHVybiAkdGhpcy5kYXRhKCdjb2xsYXBzaWJsZS1vcHRzJywgb3B0cyk7DQogICAgfQ0KICAgIA0KICAgIC8vcmV0dXJucyB0cnVlIGlmIG9iamVjdCBpcyBvcGVuZWQNCiAgICBmdW5jdGlvbiBjb2xsYXBzZWQoJHRoaXMsIG9wdHMpIHsNCiAgICAgICAgcmV0dXJuICR0aGlzLmhhc0NsYXNzKG9wdHMuY3NzQ2xvc2UpOw0KICAgIH0NCiAgICANCiAgICAvL2hpZGVzIGEgY29sbGFwc2libGUNCiAgICBmdW5jdGlvbiBjbG9zZSgkdGhpcywgb3B0cykgew0KDQogICAgICAgIC8vZ2l2ZSB0aGUgcHJvcGVyIGNsYXNzIHRvIHRoZSBsaW5rZWQgZWxlbWVudA0KICAgICAgICAkdGhpcy5hZGRDbGFzcyhvcHRzLmNzc0Nsb3NlKS5yZW1vdmVDbGFzcyhvcHRzLmNzc09wZW4pOw0KICAgICAgICANCiAgICAgICAgLy9jbG9zZSB0aGUgZWxlbWVudA0KICAgICAgICBvcHRzLmFuaW1hdGVDbG9zZSgkdGhpcywgb3B0cyk7DQogICAgICAgIA0KICAgICAgICAvL2RvIGNvb2tpZXMgaWYgcGx1Z2luIGF2YWlsYWJsZQ0KICAgICAgICBpZiAodXNlQ29va2llcyhvcHRzKSkgew0KICAgICAgICAgICAgLy8gc3BsaXQgdGhlIGNvb2tpZU9wZW4gc3RyaW5nIGJ5ICIsIg0KICAgICAgICAgICAgdmFyIGlkID0gJHRoaXMuYXR0cignaWQnKTsNCiAgICAgICAgICAgIHVuc2V0Q29va2llSWQoaWQsIG9wdHMpOw0KICAgICAgICB9DQogICAgfQ0KICAgIA0KICAgIC8vb3BlbnMgYSBjb2xsYXBzaWJsZQ0KICAgIGZ1bmN0aW9uIG9wZW4oJHRoaXMsIG9wdHMpIHsNCg0KICAgICAgICAvL2dpdmUgdGhlIHByb3BlciBjbGFzcyB0byB0aGUgbGlua2VkIGVsZW1lbnQNCiAgICAgICAgJHRoaXMucmVtb3ZlQ2xhc3Mob3B0cy5jc3NDbG9zZSkuYWRkQ2xhc3Mob3B0cy5jc3NPcGVuKTsNCiAgICAgICAgDQogICAgICAgIC8vb3BlbiB0aGUgZWxlbWVudA0KICAgICAgICBvcHRzLmFuaW1hdGVPcGVuKCR0aGlzLCBvcHRzKTsNCiAgICAgICAgDQogICAgICAgIC8vZG8gY29va2llcyBpZiBwbHVnaW4gYXZhaWxhYmxlDQogICAgICAgIGlmICh1c2VDb29raWVzKG9wdHMpKSB7DQoNCiAgICAgICAgICAgIC8vIHNwbGl0IHRoZSBjb29raWVPcGVuIHN0cmluZyBieSAiLCINCiAgICAgICAgICAgIHZhciBpZCA9ICR0aGlzLmF0dHIoJ2lkJyk7DQogICAgICAgICAgICBhcHBlbmRDb29raWUoaWQsIG9wdHMpOw0KICAgICAgICB9DQogICAgfQ0KICAgIA0KICAgIC8vdG9nZ2xlIGEgY29sbGFwc2libGUgb24gYW4gZXZlbnQNCiAgICBmdW5jdGlvbiB0b2dnbGUoJHRoaXMsIG9wdHMpIHsNCg0KICAgICAgICBpZiAoY29sbGFwc2VkKCR0aGlzLCBvcHRzKSkgew0KDQogICAgICAgICAgICAvL29wZW4gYSBjbG9zZWQgZWxlbWVudA0KICAgICAgICAgICAgb3BlbigkdGhpcywgb3B0cyk7DQoNCiAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgLy9jbG9zZSBhbiBvcGVuIGVsZW1lbnQNCiAgICAgICAgICAgIGNsb3NlKCR0aGlzLCBvcHRzKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0NCg0KICAgIC8vb3BlbiBhbGwgY2xvc2VkIGNvbnRhaW5lcnMNCiAgICBmdW5jdGlvbiBvcGVuQWxsKCR0aGlzLCBvcHRzKSB7DQoNCiAgICAgICAgLy8gbG9vcCB0aHJvdWdoIGFsbCBjb250YWluZXIgZWxlbWVudHMNCiAgICAgICAgJC5lYWNoKCR0aGlzLCBmdW5jdGlvbihlbGVtLCB2YWx1ZSkgew0KDQogICAgICAgICAgICBpZiAoY29sbGFwc2VkKCQodmFsdWUpLCBvcHRzKSkgew0KDQogICAgICAgICAgICAgICAgLy9vcGVuIGEgY2xvc2VkIGVsZW1lbnQNCiAgICAgICAgICAgICAgICBvcGVuKCQodmFsdWUpLCBvcHRzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfQ0KDQogICAgLy9jbG9zZSBhbGwgb3BlbiBjb250YWluZXJzDQogICAgZnVuY3Rpb24gY2xvc2VBbGwoJHRoaXMsIG9wdHMpIHsNCg0KICAgICAgICAkLmVhY2goJHRoaXMsIGZ1bmN0aW9uKGVsZW0sIHZhbHVlKSB7DQoNCiAgICAgICAgICAgIGlmICghY29sbGFwc2VkKCQodmFsdWUpLCBvcHRzKSkgew0KDQogICAgICAgICAgICAgICAgLy9jbG9zZSBhbiBvcGVuZWQgZWxlbWVudA0KICAgICAgICAgICAgICAgIGNsb3NlKCQodmFsdWUpLCBvcHRzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfQ0KICAgIA0KICAgIC8vdXNlIGNvb2tpZXM/DQogICAgZnVuY3Rpb24gdXNlQ29va2llcyhvcHRzKSB7DQoNCiAgICAgICAgLy9yZXR1cm4gZmFsc2UgaWYgY29va2llIHBsdWdpbiBub3QgcHJlc2VudCBvciBpZiBhIGNvb2tpZSBuYW1lIGlzIG5vdCBwcm92aWRlZA0KICAgICAgICBpZiAoISQuY29va2llIHx8IG9wdHMuY29va2llTmFtZSA9PSAnJykgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvL3dlIGNhbiB1c2UgY29va2llcw0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQogICAgDQogICAgLy9hcHBlbmQgYSBjb2xsYXBzaWJsZSB0byB0aGUgY29va2llDQogICAgZnVuY3Rpb24gYXBwZW5kQ29va2llKHZhbHVlLCBvcHRzKSB7DQoNCiAgICAgICAgLy9jaGVjayBpZiBjb29raWUgcGx1Z2luIGF2YWlsYWJsZSBhbmQgY29va2llbmFtZSBpcyBzZXQNCiAgICAgICAgaWYgKCF1c2VDb29raWVzKG9wdHMpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vZG9lcyBhIGNvb2tpZSBhbHJlYWR5IGV4aXN0DQogICAgICAgIGlmICghaXNzZXRDb29raWUob3B0cykpIHsNCg0KICAgICAgICAgICAgLy9ubyBsZXRzIHNldCBvbmUNCiAgICAgICAgICAgIHNldENvb2tpZSh2YWx1ZSwgb3B0cyk7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy9jb29raWUgYWxyZWFkeSBleGlzdHMsIGlzIHRoaXMgY29sbGFwc2libGUgYWxyZWFkeSBzZXQ/DQogICAgICAgIGlmIChpbkNvb2tpZSh2YWx1ZSwgb3B0cykpIHsgLy95ZXMsIHF1aXQgaGVyZQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vZ2V0IHRoZSBjb29raWUNCiAgICAgICAgdmFyIGNvb2tpZSA9IGRlY29kZVVSSUNvbXBvbmVudCgkLmNvb2tpZShvcHRzLmNvb2tpZU5hbWUpKTsNCg0KICAgICAgICAvL3R1cm4gaXQgaW50byBhbiBhcnJheQ0KICAgICAgICB2YXIgY29va2llQXJyYXkgPSBjb29raWUuc3BsaXQoJywnKTsNCiAgICAgICAgDQogICAgICAgIC8vYWRkIGl0IHRvIGxpc3QNCiAgICAgICAgY29va2llQXJyYXkucHVzaCh2YWx1ZSk7DQogICAgICAgIA0KICAgICAgICAvL3NhdmUgaXQNCiAgICAgICAgc2V0Q29va2llKGNvb2tpZUFycmF5LnRvU3RyaW5nKCksIG9wdHMpOw0KICAgICAgICANCiAgICAgICAgcmV0dXJuIHRydWU7ICAgIA0KICAgIH0NCiAgICANCiAgICAvL3Vuc2V0IGEgY29sbGFwc2libGUgZnJvbSB0aGUgY29va2llDQogICAgZnVuY3Rpb24gdW5zZXRDb29raWVJZCh2YWx1ZSwgb3B0cykNCiAgICB7DQogICAgICAgIC8vY2hlY2sgaWYgY29va2llIHBsdWdpbiBhdmFpbGFibGUgYW5kIGNvb2tpZW5hbWUgaXMgc2V0DQogICAgICAgIGlmICghdXNlQ29va2llcyhvcHRzKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvL2lmIGl0cyBub3QgdGhlcmUgd2UgZG9uJ3QgbmVlZCB0byByZW1vdmUgZnJvbSBpdA0KICAgICAgICBpZiAoIWlzc2V0Q29va2llKG9wdHMpKSB7IC8vcXVpdCBoZXJlLCBkb24ndCBoYXZlIGEgY29va2llIA0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vd2UgaGF2ZSBhIGNvb2tpZSwgaXMgdGhpcyBjb2xsYXBzaWJsZSBpbiBpdA0KICAgICAgICB2YXIgY29va2llSW5kZXggPSBpbkNvb2tpZSh2YWx1ZSwgb3B0cyk7DQogICAgICAgIGlmIChjb29raWVJbmRleCA9PT0gZmFsc2UpIHsgLy9ub3QgaW4gdGhlIGNvb2tpZSBxdWl0IGhlcmUNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvL3N0aWxsIGhlcmUgZ2V0IHRoZSBjb29raWUNCiAgICAgICAgdmFyIGNvb2tpZSA9IGRlY29kZVVSSUNvbXBvbmVudCgkLmNvb2tpZShvcHRzLmNvb2tpZU5hbWUpKTsNCiAgICAgICAgDQogICAgICAgIC8vdHVybiBpdCBpbnRvIGFuIGFycmF5DQogICAgICAgIHZhciBjb29raWVBcnJheSA9IGNvb2tpZS5zcGxpdCgnLCcpOw0KICAgICAgICANCiAgICAgICAgLy9sZXRzIHBvcCBpdCBvdXQgb2YgdGhlIGFycmF5DQogICAgICAgIGNvb2tpZUFycmF5LnNwbGljZShjb29raWVJbmRleCwgMSk7DQoNCiAgICAgICAgLy9vdmVyd3JpdGUNCiAgICAgICAgc2V0Q29va2llKGNvb2tpZUFycmF5LnRvU3RyaW5nKCksIG9wdHMpOw0KDQogICAgICAgIHJldHVybiB0cnVlDQogICAgfQ0KICAgIA0KICAgIC8vc2V0IGEgY29va2llDQogICAgZnVuY3Rpb24gc2V0Q29va2llKHZhbHVlLCBvcHRzKQ0KICAgIHsNCiAgICAgICAgLy9jYW4gdXNlIHRoZSBjb29raWUgcGx1Z2luDQogICAgICAgIGlmICghdXNlQ29va2llcyhvcHRzKSkgeyAvL25vLCBxdWl0IGhlcmUNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy9jb29raWUgcGx1Z2luIGlzIGF2YWlsYWJsZSwgbGV0cyBzZXQgdGhlIGNvb2tpZQ0KICAgICAgICAkLmNvb2tpZShvcHRzLmNvb2tpZU5hbWUsIHZhbHVlLCBvcHRzLmNvb2tpZU9wdGlvbnMpOw0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCiAgICANCiAgICAvL2NoZWNrIGlmIGEgY29sbGFwc2libGUgaXMgaW4gdGhlIGNvb2tpZQ0KICAgIGZ1bmN0aW9uIGluQ29va2llKHZhbHVlLCBvcHRzKQ0KICAgIHsNCiAgICAgICAgLy9jYW4gdXNlIHRoZSBjb29raWUgcGx1Z2luDQogICAgICAgIGlmICghdXNlQ29va2llcyhvcHRzKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvL2lmIGl0cyBub3QgdGhlcmUgd2UgZG9uJ3QgbmVlZCB0byByZW1vdmUgZnJvbSBpdA0KICAgICAgICBpZiAoIWlzc2V0Q29va2llKG9wdHMpKSB7IC8vcXVpdCBoZXJlLCBkb24ndCBoYXZlIGEgY29va2llIA0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgLy9nZXQgdGhlIGNvb2tpZSB2YWx1ZQ0KICAgICAgICB2YXIgY29va2llID0gZGVjb2RlVVJJQ29tcG9uZW50KCQuY29va2llKG9wdHMuY29va2llTmFtZSkpOw0KICAgICAgICANCiAgICAgICAgLy90dXJuIGl0IGludG8gYW4gYXJyYXkNCiAgICAgICAgdmFyIGNvb2tpZUFycmF5ID0gY29va2llLnNwbGl0KCcsJyk7DQogICAgICAgIA0KICAgICAgICAvL2dldCB0aGUgaW5kZXggb2YgdGhlIGNvbGxhcHNpYmxlIGlmIGluIHRoZSBjb29raWUgYXJyYXkNCiAgICAgICAgdmFyIGNvb2tpZUluZGV4ID0gJC5pbkFycmF5KHZhbHVlLCBjb29raWVBcnJheSk7DQogICAgICAgIA0KICAgICAgICAvL2lzIHRoaXMgdmFsdWUgaW4gdGhlIGNvb2tpZSBhcnJheQ0KICAgICAgICBpZiAoY29va2llSW5kZXggPT0gLTEpIHsgLy9ubywgcXVpdCBoZXJlDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiBjb29raWVJbmRleDsNCiAgICB9DQogICAgDQogICAgLy9jaGVjayBpZiBhIGNvb2tpZSBpcyBzZXQNCiAgICBmdW5jdGlvbiBpc3NldENvb2tpZShvcHRzKQ0KICAgIHsNCiAgICAgICAgLy9jYW4gd2UgdXNlIHRoZSBjb29raWUgcGx1Z2luDQogICAgICAgIGlmICghdXNlQ29va2llcyhvcHRzKSkgeyAvL25vLCBxdWl0IGhlcmUNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy9pcyB0aGUgY29va2llIHNldA0KICAgICAgICBpZiAoJC5jb29raWUob3B0cy5jb29raWVOYW1lKSA9PT0gbnVsbCkgeyAvL25vLCBxdWl0IGhlcmUNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KICAgIA0KICAgIC8vY2hlY2sgaWYgYSBjb2xsYXBzaWJsZSBpcyBpbiB0aGUgbGlzdCBvZiBjb2xsYXBzaWJsZXMgdG8gYmUgb3BlbmVkIGJ5IGRlZmF1bHQNCiAgICBmdW5jdGlvbiBpbkRlZmF1bHRPcGVuKGlkLCBvcHRzKQ0KICAgIHsNCiAgICAgICAgLy9nZXQgdGhlIGFycmF5IG9mIG9wZW4gY29sbGFwc2libGVzDQogICAgICAgIHZhciBkZWZhdWx0T3BlbiA9IGdldERlZmF1bHRPcGVuKG9wdHMpOw0KICAgICAgICANCiAgICAgICAgLy9pcyBpdCBpbiB0aGUgZGVmYXVsdCBvcGVuIGFycmF5DQogICAgICAgIHZhciBpbmRleCA9ICQuaW5BcnJheShpZCwgZGVmYXVsdE9wZW4pOw0KICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHsgLy9ub3BlLCBxdWl0IGhlcmUNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuIGluZGV4Ow0KICAgIH0NCiAgICANCiAgICAvL2dldCB0aGUgZGVmYXVsdCBvcGVuIGNvbGxhcHNpYmxlcyBhbmQgcmV0dXJuIGFycmF5DQogICAgZnVuY3Rpb24gZ2V0RGVmYXVsdE9wZW4ob3B0cykNCiAgICB7DQogICAgICAgIC8vaW5pdGlhbGl6ZSBhbiBlbXB0eSBhcnJheQ0KICAgICAgICB2YXIgZGVmYXVsdE9wZW4gPSBbXTsNCiAgICAgICAgDQogICAgICAgIC8vaWYgdGhlcmUgaXMgYSBsaXN0LCBsZXRzIHNwbGl0IGl0IGludG8gYW4gYXJyYXkNCiAgICAgICAgaWYgKG9wdHMuZGVmYXVsdE9wZW4gIT0gJycpIHsNCiAgICAgICAgICAgIGRlZmF1bHRPcGVuID0gb3B0cy5kZWZhdWx0T3Blbi5zcGxpdCgnLCcpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICByZXR1cm4gZGVmYXVsdE9wZW47DQogICAgfQ0KICAgIA0KICAgIC8vIHNldHRpbmdzDQogICAgJC5mbi5jb2xsYXBzaWJsZS5kZWZhdWx0cyA9IHsNCiAgICAgICAgY3NzQ2xvc2U6ICdjb2xsYXBzZS1jbG9zZScsIC8vY2xhc3MgeW91IHdhbnQgdG8gYXNzaWduIHRvIGEgY2xvc2VkIGNvbGxhcHNpYmxlIGhlYWRlcg0KICAgICAgICBjc3NPcGVuOiAnY29sbGFwc2Utb3BlbicsIC8vY2xhc3MgeW91IHdhbnQgdG8gYXNzaWduIGFuIG9wZW5lZCBjb2xsYXBzaWJsZSBoZWFkZXINCiAgICAgICAgY29va2llTmFtZTogJ2NvbGxhcHNpYmxlJywgLy9uYW1lIG9mIHRoZSBjb29raWUgeW91IHdhbnQgdG8gc2V0IGZvciB0aGlzIGNvbGxhcHNpYmxlDQogICAgICAgIGNvb2tpZU9wdGlvbnM6IHsgLy9jb29raWUgb3B0aW9ucywgc2VlIGNvb2tpZSBwbHVnaW4gZm9yIGRldGFpbHMNCiAgICAgICAgICAgIHBhdGg6ICcvJywNCiAgICAgICAgICAgIGV4cGlyZXM6IDcsDQogICAgICAgICAgICBkb21haW46ICcnLA0KICAgICAgICAgICAgc2VjdXJlOiAnJw0KICAgICAgICB9LA0KICAgICAgICBkZWZhdWx0T3BlbjogJycsIC8vY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaGVhZGVyIGlkcyB0aGF0IHlvdSB3YW50IG9wZW5lZCBieSBkZWZhdWx0DQogICAgICAgIHNwZWVkOiAnc2xvdycsIC8vc3BlZWQgb2YgdGhlIHNsaWRlIGVmZmVjdA0KICAgICAgICBiaW5kOiAnY2xpY2snLCAvL2V2ZW50IHRvIGJpbmQgdG8sIHN1cHBvcnRzIGNsaWNrLCBkYmxjbGljaywgbW91c2VvdmVyIGFuZCBtb3VzZWVudGVyDQogICAgICAgIGFuaW1hdGVPcGVuOiBmdW5jdGlvbiAoZWxlbSwgb3B0cykgeyAvL3JlcGxhY2UgdGhlIHN0YW5kYXJkIHNsaWRlVXAgd2l0aCBjdXN0b20gZnVuY3Rpb24NCiAgICAgICAgICAgIGVsZW0ubmV4dCgpLnN0b3AodHJ1ZSwgdHJ1ZSkuc2xpZGVEb3duKG9wdHMuc3BlZWQpOw0KICAgICAgICB9LA0KICAgICAgICBhbmltYXRlQ2xvc2U6IGZ1bmN0aW9uIChlbGVtLCBvcHRzKSB7IC8vcmVwbGFjZSB0aGUgc3RhbmRhcmQgc2xpZGVEb3duIHdpdGggY3VzdG9tIGZ1bmN0aW9uDQogICAgICAgICAgICBlbGVtLm5leHQoKS5zdG9wKHRydWUsIHRydWUpLnNsaWRlVXAob3B0cy5zcGVlZCk7DQogICAgICAgIH0sDQogICAgICAgIGxvYWRPcGVuOiBmdW5jdGlvbiAoZWxlbSwgb3B0cykgeyAvL3JlcGxhY2UgdGhlIGRlZmF1bHQgb3BlbiBzdGF0ZSB3aXRoIGN1c3RvbSBmdW5jdGlvbg0KICAgICAgICAgICAgZWxlbS5uZXh0KCkuc2hvdygpOw0KICAgICAgICB9LA0KICAgICAgICBsb2FkQ2xvc2U6IGZ1bmN0aW9uIChlbGVtLCBvcHRzKSB7IC8vcmVwbGFjZSB0aGUgZGVmYXVsdCBjbG9zZSBzdGF0ZSB3aXRoIGN1c3RvbSBmdW5jdGlvbg0KICAgICAgICAgICAgZWxlbS5uZXh0KCkuaGlkZSgpOw0KICAgICAgICB9DQogICAgfTsNCg0KfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/jquery.cookie.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohDQogKiBqUXVlcnkgQ29va2llIFBsdWdpbiB2MS4zLjENCiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJoYXJ0bC9qcXVlcnktY29va2llDQogKg0KICogQ29weXJpZ2h0IDIwMTMgS2xhdXMgSGFydGwNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQ0KICovDQooZnVuY3Rpb24gKGZhY3RvcnkpIHsNCiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7DQogICAgICAgIC8vIEFNRC4gUmVnaXN0ZXIgYXMgYW5vbnltb3VzIG1vZHVsZS4NCiAgICAgICAgZGVmaW5lKFsnanF1ZXJ5J10sIGZhY3RvcnkpOw0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIEJyb3dzZXIgZ2xvYmFscy4NCiAgICAgICAgZmFjdG9yeShqUXVlcnkpOw0KICAgIH0NCn0oZnVuY3Rpb24gKCQpIHsNCg0KICAgIHZhciBwbHVzZXMgPSAvXCsvZzsNCg0KICAgIGZ1bmN0aW9uIHJhdyhzKSB7DQogICAgICAgIHJldHVybiBzOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGRlY29kZWQocykgew0KICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHMucmVwbGFjZShwbHVzZXMsICcgJykpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbnZlcnRlZChzKSB7DQogICAgICAgIGlmIChzLmluZGV4T2YoJyInKSA9PT0gMCkgew0KICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHF1b3RlZCBjb29raWUgYXMgYWNjb3JkaW5nIHRvIFJGQzIwNjgsIHVuZXNjYXBlDQogICAgICAgICAgICBzID0gcy5zbGljZSgxLCAtMSkucmVwbGFjZSgvXFwiL2csICciJykucmVwbGFjZSgvXFxcXC9nLCAnXFwnKTsNCiAgICAgICAgfQ0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5qc29uID8gSlNPTi5wYXJzZShzKSA6IHM7DQogICAgICAgIH0gY2F0Y2goZXIpIHt9DQogICAgfQ0KDQogICAgdmFyIGNvbmZpZyA9ICQuY29va2llID0gZnVuY3Rpb24gKGtleSwgdmFsdWUsIG9wdGlvbnMpIHsNCg0KICAgICAgICAvLyB3cml0ZQ0KICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBjb25maWcuZGVmYXVsdHMsIG9wdGlvbnMpOw0KDQogICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZXhwaXJlcyA9PT0gJ251bWJlcicpIHsNCiAgICAgICAgICAgICAgICB2YXIgZGF5cyA9IG9wdGlvbnMuZXhwaXJlcywgdCA9IG9wdGlvbnMuZXhwaXJlcyA9IG5ldyBEYXRlKCk7DQogICAgICAgICAgICAgICAgdC5zZXREYXRlKHQuZ2V0RGF0ZSgpICsgZGF5cyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhbHVlID0gY29uZmlnLmpzb24gPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiBTdHJpbmcodmFsdWUpOw0KDQogICAgICAgICAgICByZXR1cm4gKGRvY3VtZW50LmNvb2tpZSA9IFsNCiAgICAgICAgICAgICAgICBjb25maWcucmF3ID8ga2V5IDogZW5jb2RlVVJJQ29tcG9uZW50KGtleSksDQogICAgICAgICAgICAgICAgJz0nLA0KICAgICAgICAgICAgICAgIGNvbmZpZy5yYXcgPyB2YWx1ZSA6IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSksDQogICAgICAgICAgICAgICAgb3B0aW9ucy5leHBpcmVzID8gJzsgZXhwaXJlcz0nICsgb3B0aW9ucy5leHBpcmVzLnRvVVRDU3RyaW5nKCkgOiAnJywgLy8gdXNlIGV4cGlyZXMgYXR0cmlidXRlLCBtYXgtYWdlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgSUUNCiAgICAgICAgICAgICAgICBvcHRpb25zLnBhdGggICAgPyAnOyBwYXRoPScgKyBvcHRpb25zLnBhdGggOiAnJywNCiAgICAgICAgICAgICAgICBvcHRpb25zLmRvbWFpbiAgPyAnOyBkb21haW49JyArIG9wdGlvbnMuZG9tYWluIDogJycsDQogICAgICAgICAgICAgICAgb3B0aW9ucy5zZWN1cmUgID8gJzsgc2VjdXJlJyA6ICcnDQogICAgICAgICAgICBdLmpvaW4oJycpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIHJlYWQNCiAgICAgICAgdmFyIGRlY29kZSA9IGNvbmZpZy5yYXcgPyByYXcgOiBkZWNvZGVkOw0KICAgICAgICB2YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKTsNCiAgICAgICAgdmFyIHJlc3VsdCA9IGtleSA/IHVuZGVmaW5lZCA6IHt9Ow0KICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGNvb2tpZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgcGFydHMgPSBjb29raWVzW2ldLnNwbGl0KCc9Jyk7DQogICAgICAgICAgICB2YXIgbmFtZSA9IGRlY29kZShwYXJ0cy5zaGlmdCgpKTsNCiAgICAgICAgICAgIHZhciBjb29raWUgPSBkZWNvZGUocGFydHMuam9pbignPScpKTsNCg0KICAgICAgICAgICAgaWYgKGtleSAmJiBrZXkgPT09IG5hbWUpIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSBjb252ZXJ0ZWQoY29va2llKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFrZXkpIHsNCiAgICAgICAgICAgICAgICByZXN1bHRbbmFtZV0gPSBjb252ZXJ0ZWQoY29va2llKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfTsNCg0KICAgIGNvbmZpZy5kZWZhdWx0cyA9IHt9Ow0KDQogICAgJC5yZW1vdmVDb29raWUgPSBmdW5jdGlvbiAoa2V5LCBvcHRpb25zKSB7DQogICAgICAgIGlmICgkLmNvb2tpZShrZXkpICE9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIC8vIE11c3Qgbm90IGFsdGVyIG9wdGlvbnMsIHRodXMgZXh0ZW5kaW5nIGEgZnJlc2ggb2JqZWN0Li4uDQogICAgICAgICAgICAkLmNvb2tpZShrZXksICcnLCAkLmV4dGVuZCh7fSwgb3B0aW9ucywgeyBleHBpcmVzOiAtMSB9KSk7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfTsNCg0KfSkpOw==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/jquery.tablednd.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFRhYmxlRG5EIHBsdWctaW4gZm9yIEpRdWVyeSwgYWxsb3dzIHlvdSB0byBkcmFnIGFuZCBkcm9wIHRhYmxlIHJvd3MKICogWW91IGNhbiBzZXQgdXAgdmFyaW91cyBvcHRpb25zIHRvIGNvbnRyb2wgaG93IHRoZSBzeXN0ZW0gd2lsbCB3b3JrCiAqIENvcHlyaWdodCAoYykgRGVuaXMgSG93bGV0dCA8ZGVuaXNoQGlzb2NyYS5jb20+CiAqIExpY2Vuc2U6IE1JVC4KICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pc29jcmEvVGFibGVEbkQKICovCgovKmpzaGludCAtVzA1NCAqLwoKIWZ1bmN0aW9uICgkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHsKCnZhciBzdGFydEV2ZW50ID0gJ3RvdWNoc3RhcnQgbW91c2Vkb3duJywKICAgIG1vdmVFdmVudCAgPSAndG91Y2htb3ZlIG1vdXNlbW92ZScsCiAgICBlbmRFdmVudCAgID0gJ3RvdWNoZW5kIG1vdXNldXAnOwoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgZnVuY3Rpb24gcGFyc2VTdHlsZShjc3MpIHsKICAgICAgICB2YXIgb2JqTWFwID0ge30sCiAgICAgICAgICAgIHBhcnRzID0gY3NzLm1hdGNoKC8oW147Ol0rKS9nKSB8fCBbXTsKICAgICAgICB3aGlsZSAocGFydHMubGVuZ3RoKQogICAgICAgICAgICBvYmpNYXBbcGFydHMuc2hpZnQoKV0gPSBwYXJ0cy5zaGlmdCgpLnRyaW0oKTsKCiAgICAgICAgcmV0dXJuIG9iak1hcDsKICAgIH0KICAgICQoJ3RhYmxlJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKCQodGhpcykuZGF0YSgndGFibGUnKSA9PT0gJ2RuZCcpIHsKCiAgICAgICAgICAgICQodGhpcykudGFibGVEbkQoewogICAgICAgICAgICAgICAgb25EcmFnU3R5bGU6ICQodGhpcykuZGF0YSgnb25kcmFnc3R5bGUnKSAmJiBwYXJzZVN0eWxlKCQodGhpcykuZGF0YSgnb25kcmFnc3R5bGUnKSkgfHwgbnVsbCwKICAgICAgICAgICAgICAgIG9uRHJvcFN0eWxlOiAkKHRoaXMpLmRhdGEoJ29uZHJvcHN0eWxlJykgJiYgcGFyc2VTdHlsZSgkKHRoaXMpLmRhdGEoJ29uZHJvcHN0eWxlJykpIHx8IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyYWdDbGFzczogJCh0aGlzKS5kYXRhKCdvbmRyYWdjbGFzcycpID09PSB1bmRlZmluZWQgJiYgInREbkRfd2hpbGVEcmFnIiB8fCAkKHRoaXMpLmRhdGEoJ29uZHJhZ2NsYXNzJyksCiAgICAgICAgICAgICAgICBvbkRyb3A6ICQodGhpcykuZGF0YSgnb25kcm9wJykgJiYgbmV3IEZ1bmN0aW9uKCd0YWJsZScsICdyb3cnLCAkKHRoaXMpLmRhdGEoJ29uZHJvcCcpKSwgLy8gJ3JldHVybiBldmFsKCInKyQodGhpcykuZGF0YSgnb25kcm9wJykrJyIpOycpIHx8IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyYWdTdGFydDogJCh0aGlzKS5kYXRhKCdvbmRyYWdzdGFydCcpICYmIG5ldyBGdW5jdGlvbigndGFibGUnLCAncm93JyAsJCh0aGlzKS5kYXRhKCdvbmRyYWdzdGFydCcpKSwgLy8gJ3JldHVybiBldmFsKCInKyQodGhpcykuZGF0YSgnb25kcmFnc3RhcnQnKSsnIik7JykgfHwgbnVsbCwKICAgICAgICAgICAgICAgIG9uRHJhZ1N0b3A6ICQodGhpcykuZGF0YSgnb25kcmFnc3RvcCcpICYmIG5ldyBGdW5jdGlvbigndGFibGUnLCAncm93JyAsJCh0aGlzKS5kYXRhKCdvbmRyYWdzdG9wJykpLAogICAgICAgICAgICAgICAgc2Nyb2xsQW1vdW50OiAkKHRoaXMpLmRhdGEoJ3Njcm9sbGFtb3VudCcpIHx8IDUsCiAgICAgICAgICAgICAgICBzZW5zaXRpdml0eTogJCh0aGlzKS5kYXRhKCdzZW5zaXRpdml0eScpIHx8IDEwLAogICAgICAgICAgICAgICAgaGllcmFyY2h5TGV2ZWw6ICQodGhpcykuZGF0YSgnaGllcmFyY2h5bGV2ZWwnKSB8fCAwLAogICAgICAgICAgICAgICAgaW5kZW50QXJ0aWZhY3Q6ICQodGhpcykuZGF0YSgnaW5kZW50YXJ0aWZhY3QnKSB8fCAnPGRpdiBjbGFzcz0iaW5kZW50Ij4mbmJzcDs8L2Rpdj4nLAogICAgICAgICAgICAgICAgYXV0b1dpZHRoQWRqdXN0OiAkKHRoaXMpLmRhdGEoJ2F1dG93aWR0aGFkanVzdCcpIHx8IHRydWUsCiAgICAgICAgICAgICAgICBhdXRvQ2xlYW5SZWxhdGlvbnM6ICQodGhpcykuZGF0YSgnYXV0b2NsZWFucmVsYXRpb25zJykgfHwgdHJ1ZSwKICAgICAgICAgICAgICAgIGpzb25QcmV0aWZ5U2VwYXJhdG9yOiAkKHRoaXMpLmRhdGEoJ2pzb25wcmV0aWZ5c2VwYXJhdG9yJykgfHwgJ1x0JywKICAgICAgICAgICAgICAgIHNlcmlhbGl6ZVJlZ2V4cDogJCh0aGlzKS5kYXRhKCdzZXJpYWxpemVyZWdleHAnKSAmJiBuZXcgUmVnRXhwKCQodGhpcykuZGF0YSgnc2VyaWFsaXplcmVnZXhwJykpIHx8IC9bXlwtXSokLywKICAgICAgICAgICAgICAgIHNlcmlhbGl6ZVBhcmFtTmFtZTogJCh0aGlzKS5kYXRhKCdzZXJpYWxpemVwYXJhbW5hbWUnKSB8fCBmYWxzZSwKICAgICAgICAgICAgICAgIGRyYWdIYW5kbGU6ICQodGhpcykuZGF0YSgnZHJhZ2hhbmRsZScpIHx8IG51bGwKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKCiAgICB9KTsKfSk7CgpqUXVlcnkudGFibGVEbkQgPSB7CiAgICAvKiogS2VlcCBob2xkIG9mIHRoZSBjdXJyZW50IHRhYmxlIGJlaW5nIGRyYWdnZWQgKi8KICAgIGN1cnJlbnRUYWJsZTogbnVsbCwKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgZHJhZyBvYmplY3QgaWYgYW55ICovCiAgICBkcmFnT2JqZWN0OiBudWxsLAogICAgLyoqIFRoZSBjdXJyZW50IG1vdXNlIG9mZnNldCAqLwogICAgbW91c2VPZmZzZXQ6IG51bGwsCiAgICAvKiogUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZSBvZiBYIGFuZCBZIHNvIHRoYXQgd2UgZG9uJ3QgZG8gdG9vIG11Y2ggcHJvY2Vzc2luZyAqLwogICAgb2xkWDogMCwKICAgIG9sZFk6IDAsCgogICAgLyoqIEFjdHVhbGx5IGJ1aWxkIHRoZSBzdHJ1Y3R1cmUgKi8KICAgIGJ1aWxkOiBmdW5jdGlvbihvcHRpb25zKSB7CiAgICAgICAgLy8gU2V0IHVwIHRoZSBkZWZhdWx0cyBpZiBhbnkKCiAgICAgICAgdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBUaGlzIGlzIGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUsIHNldCB1cCB0aGUgZGVmYXVsdHMgYW5kIG92ZXJyaWRlIHdpdGggdXNlciBvcHRpb25zCiAgICAgICAgICAgIHRoaXMudGFibGVEbkRDb25maWcgPSAkLmV4dGVuZCh7CiAgICAgICAgICAgICAgICBvbkRyYWdTdHlsZTogbnVsbCwKICAgICAgICAgICAgICAgIG9uRHJvcFN0eWxlOiBudWxsLAogICAgICAgICAgICAgICAgLy8gQWRkIGluIHRoZSBkZWZhdWx0IGNsYXNzIGZvciB3aGlsZURyYWdnaW5nCiAgICAgICAgICAgICAgICBvbkRyYWdDbGFzczogInREbkRfd2hpbGVEcmFnIiwKICAgICAgICAgICAgICAgIG9uRHJvcDogbnVsbCwKICAgICAgICAgICAgICAgIG9uRHJhZ1N0YXJ0OiBudWxsLAogICAgICAgICAgICAgICAgb25EcmFnU3RvcDogbnVsbCwKICAgICAgICAgICAgICAgIHNjcm9sbEFtb3VudDogNSwKICAgICAgICAgICAgICAgIC8qKiBTZW5zaXRpdml0eSBzZXR0aW5nIHdpbGwgdGhyb3R0bGUgdGhlIHRyaWdnZXIgcmF0ZSBmb3IgbW92ZW1lbnQgZGV0ZWN0aW9uICovCiAgICAgICAgICAgICAgICBzZW5zaXRpdml0eTogMTAsCiAgICAgICAgICAgICAgICAvKiogSGllcmFyY2h5IGxldmVsIHRvIHN1cHBvcnQgcGFyZW50IGNoaWxkLiAwIHN3aXRjaGVzIHRoaXMgZnVuY3Rpb25hbGl0eSBvZmYgKi8KICAgICAgICAgICAgICAgIGhpZXJhcmNoeUxldmVsOiAwLAogICAgICAgICAgICAgICAgLyoqIFRoZSBodG1sIGFydGlmYWN0IHRvIHByZXBlbmQgdGhlIGZpcnN0IGNlbGwgd2l0aCBhcyBpbmRlbnRhdGlvbiAqLwogICAgICAgICAgICAgICAgaW5kZW50QXJ0aWZhY3Q6ICc8ZGl2IGNsYXNzPSJpbmRlbnQiPiZuYnNwOzwvZGl2PicsCiAgICAgICAgICAgICAgICAvKiogQXV0b21hdGljYWxseSBhZGp1c3Qgd2lkdGggb2YgZmlyc3QgY2VsbCAqLwogICAgICAgICAgICAgICAgYXV0b1dpZHRoQWRqdXN0OiB0cnVlLAogICAgICAgICAgICAgICAgLyoqIEF1dG9tYXRpYyBjbGVhbi11cCB0byBlbnN1cmUgcmVsYXRpb25zaGlwIGludGVncml0eSAqLwogICAgICAgICAgICAgICAgYXV0b0NsZWFuUmVsYXRpb25zOiB0cnVlLAogICAgICAgICAgICAgICAgLyoqIFNwZWNpZnkgYSBudW1iZXIgKDQpIGFzIG51bWJlciBvZiBzcGFjZXMgb3IgYW55IGluZGVudCBzdHJpbmcgZm9yIEpTT04uc3RyaW5naWZ5ICovCiAgICAgICAgICAgICAgICBqc29uUHJldGlmeVNlcGFyYXRvcjogJ1x0JywKICAgICAgICAgICAgICAgIC8qKiBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIHVzZSB0byB0cmltIHJvdyBJRHMgKi8KICAgICAgICAgICAgICAgIHNlcmlhbGl6ZVJlZ2V4cDogL1teXC1dKiQvLAogICAgICAgICAgICAgICAgLyoqIElmIHlvdSB3YW50IHRvIHNwZWNpZnkgYW5vdGhlciBwYXJhbWV0ZXIgbmFtZSBpbnN0ZWFkIG9mIHRoZSB0YWJsZSBJRCAqLwogICAgICAgICAgICAgICAgc2VyaWFsaXplUGFyYW1OYW1lOiBmYWxzZSwKICAgICAgICAgICAgICAgIC8qKiBJZiB5b3UgZ2l2ZSB0aGUgbmFtZSBvZiBhIGNsYXNzIGhlcmUsIHRoZW4gb25seSBDZWxscyB3aXRoIHRoaXMgY2xhc3Mgd2lsbCBiZSBkcmFnZ2FibGUgKi8KICAgICAgICAgICAgICAgIGRyYWdIYW5kbGU6IG51bGwKICAgICAgICAgICAgfSwgb3B0aW9ucyB8fCB7fSk7CgogICAgICAgICAgICAvLyBOb3cgbWFrZSB0aGUgcm93cyBkcmFnZ2FibGUKICAgICAgICAgICAgJC50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwogICAgICAgICAgICAvLyBQcmVwYXJlIGhpZXJhcmNoeSBzdXBwb3J0CiAgICAgICAgICAgIHRoaXMudGFibGVEbkRDb25maWcuaGllcmFyY2h5TGV2ZWwKICAgICAgICAgICAgICAgICYmICQudGFibGVEbkQubWFrZUluZGVudGVkKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBEb24ndCBicmVhayB0aGUgY2hhaW4KICAgICAgICByZXR1cm4gdGhpczsKICAgIH0sCiAgICBtYWtlSW5kZW50ZWQ6IGZ1bmN0aW9uICh0YWJsZSkgewogICAgICAgIHZhciBjb25maWcgPSB0YWJsZS50YWJsZURuRENvbmZpZywKICAgICAgICAgICAgcm93cyA9IHRhYmxlLnJvd3MsCiAgICAgICAgICAgIGZpcnN0Q2VsbCA9ICQocm93cykuZmlyc3QoKS5maW5kKCd0ZDpmaXJzdCcpWzBdLAogICAgICAgICAgICBpbmRlbnRMZXZlbCA9IDAsCiAgICAgICAgICAgIGNlbGxXaWR0aCA9IDAsCiAgICAgICAgICAgIGxvbmdlc3RDZWxsLAogICAgICAgICAgICB0YWJsZVN0eWxlOwoKICAgICAgICBpZiAoJCh0YWJsZSkuaGFzQ2xhc3MoJ2luZHRkJykpCiAgICAgICAgICAgIHJldHVybiBudWxsOwoKICAgICAgICB0YWJsZVN0eWxlID0gJCh0YWJsZSkuYWRkQ2xhc3MoJ2luZHRkJykuYXR0cignc3R5bGUnKTsKICAgICAgICAkKHRhYmxlKS5jc3Moe3doaXRlU3BhY2U6ICJub3dyYXAifSk7CgogICAgICAgIGZvciAodmFyIHcgPSAwOyB3IDwgcm93cy5sZW5ndGg7IHcrKykgewogICAgICAgICAgICBpZiAoY2VsbFdpZHRoIDwgJChyb3dzW3ddKS5maW5kKCd0ZDpmaXJzdCcpLnRleHQoKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGNlbGxXaWR0aCA9ICQocm93c1t3XSkuZmluZCgndGQ6Zmlyc3QnKS50ZXh0KCkubGVuZ3RoOwogICAgICAgICAgICAgICAgbG9uZ2VzdENlbGwgPSB3OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICQoZmlyc3RDZWxsKS5jc3Moe3dpZHRoOiAnYXV0byd9KTsKICAgICAgICBmb3IgKHcgPSAwOyB3IDwgY29uZmlnLmhpZXJhcmNoeUxldmVsOyB3KyspCiAgICAgICAgICAgICQocm93c1tsb25nZXN0Q2VsbF0pLmZpbmQoJ3RkOmZpcnN0JykucHJlcGVuZChjb25maWcuaW5kZW50QXJ0aWZhY3QpOwogICAgICAgIGZpcnN0Q2VsbCAmJiAkKGZpcnN0Q2VsbCkuY3NzKHt3aWR0aDogZmlyc3RDZWxsLm9mZnNldFdpZHRofSk7CiAgICAgICAgdGFibGVTdHlsZSAmJiAkKHRhYmxlKS5jc3ModGFibGVTdHlsZSk7CgogICAgICAgIGZvciAodyA9IDA7IHcgPCBjb25maWcuaGllcmFyY2h5TGV2ZWw7IHcrKykKICAgICAgICAgICAgJChyb3dzW2xvbmdlc3RDZWxsXSkuZmluZCgndGQ6Zmlyc3QnKS5jaGlsZHJlbignOmZpcnN0JykucmVtb3ZlKCk7CgogICAgICAgIGNvbmZpZy5oaWVyYXJjaHlMZXZlbAogICAgICAgICAgICAmJiAkKHJvd3MpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaW5kZW50TGV2ZWwgPSAkKHRoaXMpLmRhdGEoJ2xldmVsJykgfHwgMDsKICAgICAgICAgICAgICAgIGluZGVudExldmVsIDw9IGNvbmZpZy5oaWVyYXJjaHlMZXZlbAogICAgICAgICAgICAgICAgICAgICYmICQodGhpcykuZGF0YSgnbGV2ZWwnLCBpbmRlbnRMZXZlbCkKICAgICAgICAgICAgICAgICAgICB8fCAkKHRoaXMpLmRhdGEoJ2xldmVsJywgMCk7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8ICQodGhpcykuZGF0YSgnbGV2ZWwnKTsgaSsrKQogICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgndGQ6Zmlyc3QnKS5wcmVwZW5kKGNvbmZpZy5pbmRlbnRBcnRpZmFjdCk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICByZXR1cm4gdGhpczsKICAgIH0sCiAgICAvKiogVGhpcyBmdW5jdGlvbiBtYWtlcyBhbGwgdGhlIHJvd3Mgb24gdGhlIHRhYmxlIGRyYWdnYWJsZSBhcGFydCBmcm9tIHRob3NlIG1hcmtlZCBhcyAiTm9EcmFnIiAqLwogICAgbWFrZURyYWdnYWJsZTogZnVuY3Rpb24odGFibGUpIHsKICAgICAgICB2YXIgY29uZmlnID0gdGFibGUudGFibGVEbkRDb25maWc7CgogICAgICAgIGNvbmZpZy5kcmFnSGFuZGxlCiAgICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBhZGQgdGhlIGV2ZW50IHRvIHRoZSBzcGVjaWZpZWQgY2VsbHMKICAgICAgICAgICAgJiYgJChjb25maWcuZHJhZ0hhbmRsZSwgdGFibGUpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAvLyBUaGUgY2VsbCBpcyBib3VuZCB0byAidGhpcyIKICAgICAgICAgICAgICAgICQodGhpcykuYmluZChzdGFydEV2ZW50LCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgJC50YWJsZURuRC5pbml0aWFsaXNlRHJhZygkKHRoaXMpLnBhcmVudHMoJ3RyJylbMF0sIHRhYmxlLCB0aGlzLCBlLCBjb25maWcpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KQogICAgICAgICAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHdob2xlIHJvdwogICAgICAgICAgICAvLyBnZXQgYWxsIHRoZSByb3dzIGFzIGEgd3JhcHBlZCBzZXQKICAgICAgICAgICAgfHwgJCh0YWJsZS5yb3dzKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggcm93LCB0aGUgcm93IGlzIGJvdW5kIHRvICJ0aGlzIgogICAgICAgICAgICAgICAgaWYgKCEgJCh0aGlzKS5oYXNDbGFzcygibm9kcmFnIikpIHsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmJpbmQoc3RhcnRFdmVudCwgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQudGFnTmFtZSA9PT0gIlREIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJC50YWJsZURuRC5pbml0aWFsaXNlRHJhZyh0aGlzLCB0YWJsZSwgdGhpcywgZSwgY29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pLmNzcygiY3Vyc29yIiwgIm1vdmUiKTsgLy8gU3RvcmUgdGhlIHRhYmxlRG5EIG9iamVjdAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNzcygiY3Vyc29yIiwgIiIpOyAvLyBSZW1vdmUgdGhlIGN1cnNvciBpZiB3ZSBkb24ndCBoYXZlIHRoZSBub2RyYWcgY2xhc3MKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICB9LAogICAgY3VycmVudE9yZGVyOiBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3VycmVudFRhYmxlLnJvd3M7CiAgICAgICAgcmV0dXJuICQubWFwKHJvd3MsIGZ1bmN0aW9uICh2YWwpIHsKICAgICAgICAgICAgcmV0dXJuICgkKHZhbCkuZGF0YSgnbGV2ZWwnKSArIHZhbC5pZCkucmVwbGFjZSgvXHMvZywgJycpOwogICAgICAgIH0pLmpvaW4oJycpOwogICAgfSwKICAgIGluaXRpYWxpc2VEcmFnOiBmdW5jdGlvbihkcmFnT2JqZWN0LCB0YWJsZSwgdGFyZ2V0LCBlLCBjb25maWcpIHsKICAgICAgICB0aGlzLmRyYWdPYmplY3QgICAgPSBkcmFnT2JqZWN0OwogICAgICAgIHRoaXMuY3VycmVudFRhYmxlICA9IHRhYmxlOwogICAgICAgIHRoaXMubW91c2VPZmZzZXQgICA9IHRoaXMuZ2V0TW91c2VPZmZzZXQodGFyZ2V0LCBlKTsKICAgICAgICB0aGlzLm9yaWdpbmFsT3JkZXIgPSB0aGlzLmN1cnJlbnRPcmRlcigpOwoKICAgICAgICAvLyBOb3cgd2UgbmVlZCB0byBjYXB0dXJlIHRoZSBtb3VzZSB1cCBhbmQgbW91c2UgbW92ZSBldmVudAogICAgICAgIC8vIFdlIGNhbiB1c2UgYmluZCBzbyB0aGF0IHdlIGRvbid0IGludGVyZmVyZSB3aXRoIG90aGVyIGV2ZW50IGhhbmRsZXJzCiAgICAgICAgJChkb2N1bWVudCkKICAgICAgICAgICAgLmJpbmQobW92ZUV2ZW50LCB0aGlzLm1vdXNlbW92ZSkKICAgICAgICAgICAgLmJpbmQoZW5kRXZlbnQsIHRoaXMubW91c2V1cCk7CgogICAgICAgIC8vIENhbGwgdGhlIG9uRHJhZ1N0YXJ0IG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKICAgICAgICBjb25maWcub25EcmFnU3RhcnQKICAgICAgICAgICAgJiYgY29uZmlnLm9uRHJhZ1N0YXJ0KHRhYmxlLCB0YXJnZXQpOwogICAgfSwKICAgIHVwZGF0ZVRhYmxlczogZnVuY3Rpb24oKSB7CiAgICAgICAgdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyB0aGlzIGlzIG5vdyBib3VuZCB0byBlYWNoIG1hdGNoaW5nIHRhYmxlCiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlRG5EQ29uZmlnKQogICAgICAgICAgICAgICAgJC50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwogICAgICAgIH0pOwogICAgfSwKICAgIC8qKiBHZXQgdGhlIG1vdXNlIGNvb3JkaW5hdGVzIGZyb20gdGhlIGV2ZW50IChhbGxvd2luZyBmb3IgYnJvd3NlciBkaWZmZXJlbmNlcykgKi8KICAgIG1vdXNlQ29vcmRzOiBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGUub3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlcykKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIHg6IGUub3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYLAogICAgICAgICAgICAgICAgeTogZS5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkKICAgICAgICAgICAgfTsKCiAgICAgICAgaWYoZS5wYWdlWCB8fCBlLnBhZ2VZKQogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgeDogZS5wYWdlWCwKICAgICAgICAgICAgICAgIHk6IGUucGFnZVkKICAgICAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgeDogZS5jbGllbnRYICsgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0IC0gZG9jdW1lbnQuYm9keS5jbGllbnRMZWZ0LAogICAgICAgICAgICB5OiBlLmNsaWVudFkgKyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCAgLSBkb2N1bWVudC5ib2R5LmNsaWVudFRvcAogICAgICAgIH07CiAgICB9LAogICAgLyoqIEdpdmVuIGEgdGFyZ2V0IGVsZW1lbnQgYW5kIGEgbW91c2UgZWVudCwgZ2V0IHRoZSBtb3VzZSBvZmZzZXQgZnJvbSB0aGF0IGVsZW1lbnQuCiAgICAgVG8gZG8gdGhpcyB3ZSBuZWVkIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gYW5kIHRoZSBtb3VzZSBwb3NpdGlvbiAqLwogICAgZ2V0TW91c2VPZmZzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgZSkgewogICAgICAgIHZhciBtb3VzZVBvcywKICAgICAgICAgICAgZG9jUG9zOwoKICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7CgogICAgICAgIGRvY1BvcyAgICA9IHRoaXMuZ2V0UG9zaXRpb24odGFyZ2V0KTsKICAgICAgICBtb3VzZVBvcyAgPSB0aGlzLm1vdXNlQ29vcmRzKGUpOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICB4OiBtb3VzZVBvcy54IC0gZG9jUG9zLngsCiAgICAgICAgICAgIHk6IG1vdXNlUG9zLnkgLSBkb2NQb3MueQogICAgICAgIH07CiAgICB9LAogICAgLyoqIEdldCB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCBieSBnb2luZyB1cCB0aGUgRE9NIHRyZWUgYW5kIGFkZGluZyB1cCBhbGwgdGhlIG9mZnNldHMgKi8KICAgIGdldFBvc2l0aW9uOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAgICAgdmFyIGxlZnQgPSAwLAogICAgICAgICAgICB0b3AgID0gMDsKCiAgICAgICAgLy8gU2FmYXJpIGZpeCAtLSB0aGFua3MgdG8gTHVpcyBDaGF0byBmb3IgdGhpcyEKICAgICAgICAvLyBTYWZhcmkgMiBkb2Vzbid0IGNvcnJlY3RseSBncmFiIHRoZSBvZmZzZXRUb3Agb2YgYSB0YWJsZSByb3cKICAgICAgICAvLyB0aGlzIGlzIGRldGFpbGVkIGhlcmU6CiAgICAgICAgLy8gaHR0cDovL2phY29iLnBlYXJncm92ZS5jb20vYmxvZy8yMDA2L3RlY2huaWNhbC90YWJsZS1yb3ctb2Zmc2V0dG9wLWJ1Zy1pbi1zYWZhcmkvCiAgICAgICAgLy8gdGhlIHNvbHV0aW9uIGlzIGxpa2V3aXNlIG5vdGVkIHRoZXJlLCBncmFiIHRoZSBvZmZzZXQgb2YgYSB0YWJsZSBjZWxsIGluIHRoZSByb3cgLSB0aGUgZmlyc3RDaGlsZC4KICAgICAgICAvLyBub3RlIHRoYXQgZmlyZWZveCB3aWxsIHJldHVybiBhIHRleHQgbm9kZSBhcyBhIGZpcnN0IGNoaWxkLCBzbyBkZXNpZ25pbmcgYSBtb3JlIHRob3JvdWdoCiAgICAgICAgLy8gc29sdXRpb24gbWF5IG5lZWQgdG8gdGFrZSB0aGF0IGludG8gYWNjb3VudCwgZm9yIG5vdyB0aGlzIHNlZW1zIHRvIHdvcmsgaW4gZmlyZWZveCwgc2FmYXJpLCBpZQogICAgICAgIGlmIChlbGVtZW50Lm9mZnNldEhlaWdodCA9PT0gMCkKICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQuZmlyc3RDaGlsZDsgLy8gYSB0YWJsZSBjZWxsCgogICAgICAgIHdoaWxlIChlbGVtZW50Lm9mZnNldFBhcmVudCkgewogICAgICAgICAgICBsZWZ0ICAgKz0gZWxlbWVudC5vZmZzZXRMZWZ0OwogICAgICAgICAgICB0b3AgICAgKz0gZWxlbWVudC5vZmZzZXRUb3A7CiAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDsKICAgICAgICB9CgogICAgICAgIGxlZnQgKz0gZWxlbWVudC5vZmZzZXRMZWZ0OwogICAgICAgIHRvcCAgKz0gZWxlbWVudC5vZmZzZXRUb3A7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHg6IGxlZnQsCiAgICAgICAgICAgIHk6IHRvcAogICAgICAgIH07CiAgICB9LAogICAgYXV0b1Njcm9sbDogZnVuY3Rpb24gKG1vdXNlUG9zKSB7CiAgICAgIHZhciBjb25maWcgICAgICAgPSB0aGlzLmN1cnJlbnRUYWJsZS50YWJsZURuRENvbmZpZywKICAgICAgICAgIHlPZmZzZXQgICAgICA9IHdpbmRvdy5wYWdlWU9mZnNldCwKICAgICAgICAgIHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodAogICAgICAgICAgICA/IHdpbmRvdy5pbm5lckhlaWdodAogICAgICAgICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQKICAgICAgICAgICAgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0CiAgICAgICAgICAgIDogZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7CgogICAgICAgIC8vIFdpbmRvd3MgdmVyc2lvbgogICAgICAgIC8vIHlPZmZzZXQ9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgICAgaWYgKGRvY3VtZW50LmFsbCkKICAgICAgICAgICAgaWYgKHR5cGVvZiBkb2N1bWVudC5jb21wYXRNb2RlICE9PSAndW5kZWZpbmVkJwogICAgICAgICAgICAgICAgJiYgZG9jdW1lbnQuY29tcGF0TW9kZSAhPT0gJ0JhY2tDb21wYXQnKQogICAgICAgICAgICAgICAgeU9mZnNldCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7CiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBkb2N1bWVudC5ib2R5ICE9PSAndW5kZWZpbmVkJykKICAgICAgICAgICAgICAgIHlPZmZzZXQgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKCiAgICAgICAgbW91c2VQb3MueSAtIHlPZmZzZXQgPCBjb25maWcuc2Nyb2xsQW1vdW50CiAgICAgICAgICAgICYmIHdpbmRvdy5zY3JvbGxCeSgwLCAtIGNvbmZpZy5zY3JvbGxBbW91bnQpCiAgICAgICAgfHwgd2luZG93SGVpZ2h0IC0gKG1vdXNlUG9zLnkgLSB5T2Zmc2V0KSA8IGNvbmZpZy5zY3JvbGxBbW91bnQKICAgICAgICAgICAgJiYgd2luZG93LnNjcm9sbEJ5KDAsIGNvbmZpZy5zY3JvbGxBbW91bnQpOwoKICAgIH0sCiAgICBtb3ZlVmVydGljbGU6IGZ1bmN0aW9uIChtb3ZpbmcsIGN1cnJlbnRSb3cpIHsKCiAgICAgICAgaWYgKDAgIT09IG1vdmluZy52ZXJ0aWNhbAogICAgICAgICAgICAvLyBJZiB3ZSdyZSBvdmVyIGEgcm93IHRoZW4gbW92ZSB0aGUgZHJhZ2dlZCByb3cgdG8gdGhlcmUgc28gdGhhdCB0aGUgdXNlciBzZWVzIHRoZQogICAgICAgICAgICAvLyBlZmZlY3QgZHluYW1pY2FsbHkKICAgICAgICAgICAgJiYgY3VycmVudFJvdwogICAgICAgICAgICAmJiB0aGlzLmRyYWdPYmplY3QgIT09IGN1cnJlbnRSb3cKICAgICAgICAgICAgJiYgdGhpcy5kcmFnT2JqZWN0LnBhcmVudE5vZGUgPT09IGN1cnJlbnRSb3cucGFyZW50Tm9kZSkKICAgICAgICAgICAgMCA+IG1vdmluZy52ZXJ0aWNhbAogICAgICAgICAgICAgICAgJiYgdGhpcy5kcmFnT2JqZWN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuZHJhZ09iamVjdCwgY3VycmVudFJvdy5uZXh0U2libGluZykKICAgICAgICAgICAgfHwgMCA8IG1vdmluZy52ZXJ0aWNhbAogICAgICAgICAgICAgICAgJiYgdGhpcy5kcmFnT2JqZWN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuZHJhZ09iamVjdCwgY3VycmVudFJvdyk7CgogICAgfSwKICAgIG1vdmVIb3Jpem9udGFsOiBmdW5jdGlvbiAobW92aW5nLCBjdXJyZW50Um93KSB7CiAgICAgICAgdmFyIGNvbmZpZyAgICAgICA9IHRoaXMuY3VycmVudFRhYmxlLnRhYmxlRG5EQ29uZmlnLAogICAgICAgICAgICBjdXJyZW50TGV2ZWw7CgogICAgICAgIGlmICghY29uZmlnLmhpZXJhcmNoeUxldmVsCiAgICAgICAgICAgIHx8IDAgPT09IG1vdmluZy5ob3Jpem9udGFsCiAgICAgICAgICAgIC8vIFdlIG9ubHkgY2FyZSBpZiBtb3ZpbmcgbGVmdCBvciByaWdodCBvbiB0aGUgY3VycmVudCByb3cKICAgICAgICAgICAgfHwgIWN1cnJlbnRSb3cKICAgICAgICAgICAgfHwgdGhpcy5kcmFnT2JqZWN0ICE9PSBjdXJyZW50Um93KQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CgogICAgICAgICAgICBjdXJyZW50TGV2ZWwgPSAkKGN1cnJlbnRSb3cpLmRhdGEoJ2xldmVsJyk7CgogICAgICAgICAgICAwIDwgbW92aW5nLmhvcml6b250YWwKICAgICAgICAgICAgICAgICYmIGN1cnJlbnRMZXZlbCA+IDAKICAgICAgICAgICAgICAgICYmICQoY3VycmVudFJvdykuZmluZCgndGQ6Zmlyc3QnKS5jaGlsZHJlbignOmZpcnN0JykucmVtb3ZlKCkKICAgICAgICAgICAgICAgICYmICQoY3VycmVudFJvdykuZGF0YSgnbGV2ZWwnLCAtLWN1cnJlbnRMZXZlbCk7CgogICAgICAgICAgICAwID4gbW92aW5nLmhvcml6b250YWwKICAgICAgICAgICAgICAgICYmIGN1cnJlbnRMZXZlbCA8IGNvbmZpZy5oaWVyYXJjaHlMZXZlbAogICAgICAgICAgICAgICAgJiYgJChjdXJyZW50Um93KS5wcmV2KCkuZGF0YSgnbGV2ZWwnKSA+PSBjdXJyZW50TGV2ZWwKICAgICAgICAgICAgICAgICYmICQoY3VycmVudFJvdykuY2hpbGRyZW4oJzpmaXJzdCcpLnByZXBlbmQoY29uZmlnLmluZGVudEFydGlmYWN0KQogICAgICAgICAgICAgICAgJiYgJChjdXJyZW50Um93KS5kYXRhKCdsZXZlbCcsICsrY3VycmVudExldmVsKTsKCiAgICB9LAogICAgbW91c2Vtb3ZlOiBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGRyYWdPYmogICAgICA9ICQoJC50YWJsZURuRC5kcmFnT2JqZWN0KSwKICAgICAgICAgICAgY29uZmlnICAgICAgID0gJC50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWcsCiAgICAgICAgICAgIGN1cnJlbnRSb3csCiAgICAgICAgICAgIG1vdXNlUG9zLAogICAgICAgICAgICBtb3ZpbmcsCiAgICAgICAgICAgIHgsCiAgICAgICAgICAgIHk7CgogICAgICAgIGUgJiYgZS5wcmV2ZW50RGVmYXVsdCgpOwoKICAgICAgICBpZiAoISQudGFibGVEbkQuZHJhZ09iamVjdCkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICAvLyBwcmV2ZW50IHRvdWNoIGRldmljZSBzY3JlZW4gc2Nyb2xsaW5nCiAgICAgICAgZS50eXBlID09PSAndG91Y2htb3ZlJwogICAgICAgICAgICAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBUT0RPIHZlcmlmeSB0aGlzIGlzIGV2ZW50IGFuZCBub3QgcmVhbGx5IGUKCiAgICAgICAgLy8gdXBkYXRlIHRoZSBzdHlsZSB0byBzaG93IHdlJ3JlIGRyYWdnaW5nCiAgICAgICAgY29uZmlnLm9uRHJhZ0NsYXNzCiAgICAgICAgICAgICYmIGRyYWdPYmouYWRkQ2xhc3MoY29uZmlnLm9uRHJhZ0NsYXNzKQogICAgICAgICAgICB8fCBkcmFnT2JqLmNzcyhjb25maWcub25EcmFnU3R5bGUpOwoKICAgICAgICBtb3VzZVBvcyA9ICQudGFibGVEbkQubW91c2VDb29yZHMoZSk7CiAgICAgICAgeCA9IG1vdXNlUG9zLnggLSAkLnRhYmxlRG5ELm1vdXNlT2Zmc2V0Lng7CiAgICAgICAgeSA9IG1vdXNlUG9zLnkgLSAkLnRhYmxlRG5ELm1vdXNlT2Zmc2V0Lnk7CgogICAgICAgIC8vIGF1dG8gc2Nyb2xsIHRoZSB3aW5kb3cKICAgICAgICAkLnRhYmxlRG5ELmF1dG9TY3JvbGwobW91c2VQb3MpOwoKICAgICAgICBjdXJyZW50Um93ID0gJC50YWJsZURuRC5maW5kRHJvcFRhcmdldFJvdyhkcmFnT2JqLCB5KTsKICAgICAgICBtb3ZpbmcgPSAkLnRhYmxlRG5ELmZpbmREcmFnRGlyZWN0aW9uKHgsIHkpOwoKICAgICAgICAkLnRhYmxlRG5ELm1vdmVWZXJ0aWNsZShtb3ZpbmcsIGN1cnJlbnRSb3cpOwogICAgICAgICQudGFibGVEbkQubW92ZUhvcml6b250YWwobW92aW5nLCBjdXJyZW50Um93KTsKCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIGZpbmREcmFnRGlyZWN0aW9uOiBmdW5jdGlvbiAoeCx5KSB7CiAgICAgICAgdmFyIHNlbnNpdGl2aXR5ID0gdGhpcy5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWcuc2Vuc2l0aXZpdHksCiAgICAgICAgICAgIG9sZFggICAgICAgID0gdGhpcy5vbGRYLAogICAgICAgICAgICBvbGRZICAgICAgICA9IHRoaXMub2xkWSwKICAgICAgICAgICAgeE1pbiAgICAgICAgPSBvbGRYIC0gc2Vuc2l0aXZpdHksCiAgICAgICAgICAgIHhNYXggICAgICAgID0gb2xkWCArIHNlbnNpdGl2aXR5LAogICAgICAgICAgICB5TWluICAgICAgICA9IG9sZFkgLSBzZW5zaXRpdml0eSwKICAgICAgICAgICAgeU1heCAgICAgICAgPSBvbGRZICsgc2Vuc2l0aXZpdHksCiAgICAgICAgICAgIG1vdmluZyAgICAgID0gewogICAgICAgICAgICAgICAgaG9yaXpvbnRhbDogeCA+PSB4TWluICYmIHggPD0geE1heCA/IDAgOiB4ID4gb2xkWCA/IC0xIDogMSwKICAgICAgICAgICAgICAgIHZlcnRpY2FsICA6IHkgPj0geU1pbiAmJiB5IDw9IHlNYXggPyAwIDogeSA+IG9sZFkgPyAtMSA6IDEKICAgICAgICAgICAgfTsKCiAgICAgICAgLy8gdXBkYXRlIHRoZSBvbGQgdmFsdWUKICAgICAgICBpZiAobW92aW5nLmhvcml6b250YWwgIT09IDApCiAgICAgICAgICAgIHRoaXMub2xkWCAgICA9IHg7CiAgICAgICAgaWYgKG1vdmluZy52ZXJ0aWNhbCAgICE9PSAwKQogICAgICAgICAgICB0aGlzLm9sZFkgICAgPSB5OwoKICAgICAgICByZXR1cm4gbW92aW5nOwogICAgfSwKICAgIC8qKiBXZSdyZSBvbmx5IHdvcnJpZWQgYWJvdXQgdGhlIHkgcG9zaXRpb24gcmVhbGx5LCBiZWNhdXNlIHdlIGNhbiBvbmx5IG1vdmUgcm93cyB1cCBhbmQgZG93biAqLwogICAgZmluZERyb3BUYXJnZXRSb3c6IGZ1bmN0aW9uKGRyYWdnZWRSb3csIHkpIHsKICAgICAgICB2YXIgcm93SGVpZ2h0ID0gMCwKICAgICAgICAgICAgcm93cyAgICAgID0gdGhpcy5jdXJyZW50VGFibGUucm93cywKICAgICAgICAgICAgY29uZmlnICAgID0gdGhpcy5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWcsCiAgICAgICAgICAgIHJvd1kgICAgICA9IDAsCiAgICAgICAgICAgIHJvdyAgICAgICA9IG51bGw7CgogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICByb3cgICAgICAgPSByb3dzW2ldOwogICAgICAgICAgICByb3dZICAgICAgPSB0aGlzLmdldFBvc2l0aW9uKHJvdykueTsKICAgICAgICAgICAgcm93SGVpZ2h0ID0gcGFyc2VJbnQocm93Lm9mZnNldEhlaWdodCkgLyAyOwogICAgICAgICAgICBpZiAocm93Lm9mZnNldEhlaWdodCA9PT0gMCkgewogICAgICAgICAgICAgICAgcm93WSAgICAgID0gdGhpcy5nZXRQb3NpdGlvbihyb3cuZmlyc3RDaGlsZCkueTsKICAgICAgICAgICAgICAgIHJvd0hlaWdodCA9IHBhcnNlSW50KHJvdy5maXJzdENoaWxkLm9mZnNldEhlaWdodCkgLyAyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEJlY2F1c2Ugd2UgYWx3YXlzIGhhdmUgdG8gaW5zZXJ0IGJlZm9yZSwgd2UgbmVlZCB0byBvZmZzZXQgdGhlIGhlaWdodCBhIGJpdAogICAgICAgICAgICBpZiAoeSA+IChyb3dZIC0gcm93SGVpZ2h0KSAmJiB5IDwgKHJvd1kgKyByb3dIZWlnaHQpKQogICAgICAgICAgICAgICAgLy8gdGhhdCdzIHRoZSByb3cgd2UncmUgb3ZlcgogICAgICAgICAgICAgICAgLy8gSWYgaXQncyB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCByb3csIGlnbm9yZSBpdAogICAgICAgICAgICAgICAgaWYgKGRyYWdnZWRSb3cuaXMocm93KQogICAgICAgICAgICAgICAgICAgIHx8IChjb25maWcub25BbGxvd0Ryb3AKICAgICAgICAgICAgICAgICAgICAmJiAhY29uZmlnLm9uQWxsb3dEcm9wKGRyYWdnZWRSb3csIHJvdykpCiAgICAgICAgICAgICAgICAgICAgLy8gSWYgYSByb3cgaGFzIG5vZHJvcCBjbGFzcywgdGhlbiBkb24ndCBhbGxvdyBkcm9wcGluZyAoaW5zcGlyZWQgYnkgSm9obiBUYXJyIGFuZCBGYW1pYykKICAgICAgICAgICAgICAgICAgICB8fCAkKHJvdykuaGFzQ2xhc3MoIm5vZHJvcCIpKQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm93OwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0sCiAgICBwcm9jZXNzTW91c2V1cDogZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRUYWJsZSB8fCAhdGhpcy5kcmFnT2JqZWN0KQogICAgICAgICAgICByZXR1cm4gbnVsbDsKCiAgICAgICAgdmFyIGNvbmZpZyAgICAgID0gdGhpcy5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWcsCiAgICAgICAgICAgIGRyb3BwZWRSb3cgID0gdGhpcy5kcmFnT2JqZWN0LAogICAgICAgICAgICBwYXJlbnRMZXZlbCA9IDAsCiAgICAgICAgICAgIG15TGV2ZWwgICAgID0gMDsKCiAgICAgICAgLy8gVW5iaW5kIHRoZSBldmVudCBoYW5kbGVycwogICAgICAgICQoZG9jdW1lbnQpCiAgICAgICAgICAgIC51bmJpbmQobW92ZUV2ZW50LCB0aGlzLm1vdXNlbW92ZSkKICAgICAgICAgICAgLnVuYmluZChlbmRFdmVudCwgIHRoaXMubW91c2V1cCk7CgogICAgICAgIGNvbmZpZy5oaWVyYXJjaHlMZXZlbAogICAgICAgICAgICAmJiBjb25maWcuYXV0b0NsZWFuUmVsYXRpb25zCiAgICAgICAgICAgICYmICQodGhpcy5jdXJyZW50VGFibGUucm93cykuZmlyc3QoKS5maW5kKCd0ZDpmaXJzdCcpLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBteUxldmVsID0gJCh0aGlzKS5wYXJlbnRzKCd0cjpmaXJzdCcpLmRhdGEoJ2xldmVsJyk7CiAgICAgICAgICAgICAgICBteUxldmVsCiAgICAgICAgICAgICAgICAgICAgJiYgJCh0aGlzKS5wYXJlbnRzKCd0cjpmaXJzdCcpLmRhdGEoJ2xldmVsJywgLS1teUxldmVsKQogICAgICAgICAgICAgICAgICAgICYmICQodGhpcykucmVtb3ZlKCk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgICYmIGNvbmZpZy5oaWVyYXJjaHlMZXZlbCA+IDEKICAgICAgICAgICAgJiYgJCh0aGlzLmN1cnJlbnRUYWJsZS5yb3dzKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIG15TGV2ZWwgPSAkKHRoaXMpLmRhdGEoJ2xldmVsJyk7CiAgICAgICAgICAgICAgICBpZiAobXlMZXZlbCA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBwYXJlbnRMZXZlbCA9ICQodGhpcykucHJldigpLmRhdGEoJ2xldmVsJyk7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG15TGV2ZWwgPiBwYXJlbnRMZXZlbCArIDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCd0ZDpmaXJzdCcpLmNoaWxkcmVuKCc6Zmlyc3QnKS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5kYXRhKCdsZXZlbCcsIC0tbXlMZXZlbCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIGRyYWdPYmplY3QsIHRoZW4gd2UgbmVlZCB0byByZWxlYXNlIGl0LAogICAgICAgIC8vIFRoZSByb3cgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiBtb3ZlZCB0byB0aGUgcmlnaHQgcGxhY2Ugc28gd2UganVzdCByZXNldCBzdHVmZgogICAgICAgIGNvbmZpZy5vbkRyYWdDbGFzcwogICAgICAgICAgICAmJiAkKGRyb3BwZWRSb3cpLnJlbW92ZUNsYXNzKGNvbmZpZy5vbkRyYWdDbGFzcykKICAgICAgICAgICAgfHwgJChkcm9wcGVkUm93KS5jc3MoY29uZmlnLm9uRHJvcFN0eWxlKTsKCiAgICAgICAgdGhpcy5kcmFnT2JqZWN0ID0gbnVsbDsKICAgICAgICAvLyBDYWxsIHRoZSBvbkRyb3AgbWV0aG9kIGlmIHRoZXJlIGlzIG9uZQogICAgICAgIGNvbmZpZy5vbkRyb3AKICAgICAgICAgICAgJiYgdGhpcy5vcmlnaW5hbE9yZGVyICE9PSB0aGlzLmN1cnJlbnRPcmRlcigpCiAgICAgICAgICAgICYmICQoZHJvcHBlZFJvdykuaGlkZSgpLmZhZGVJbignZmFzdCcpCiAgICAgICAgICAgICYmIGNvbmZpZy5vbkRyb3AodGhpcy5jdXJyZW50VGFibGUsIGRyb3BwZWRSb3cpOwoKICAgICAgICAvLyBDYWxsIHRoZSBvbkRyYWdTdG9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKICAgICAgICBjb25maWcub25EcmFnU3RvcAogICAgICAgICAgICAmJiBjb25maWcub25EcmFnU3RvcCh0aGlzLmN1cnJlbnRUYWJsZSwgZHJvcHBlZFJvdyk7CgogICAgICAgIHRoaXMuY3VycmVudFRhYmxlID0gbnVsbDsgLy8gbGV0IGdvIG9mIHRoZSB0YWJsZSB0b28KICAgIH0sCiAgICBtb3VzZXVwOiBmdW5jdGlvbihlKSB7CiAgICAgICAgZSAmJiBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgJC50YWJsZURuRC5wcm9jZXNzTW91c2V1cCgpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICBqc29uaXplOiBmdW5jdGlvbihwcmV0aWZ5KSB7CiAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jdXJyZW50VGFibGU7CiAgICAgICAgaWYgKHByZXRpZnkpCiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSgKICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhKHRhYmxlKSwKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICB0YWJsZS50YWJsZURuRENvbmZpZy5qc29uUHJldGlmeVNlcGFyYXRvcgogICAgICAgICAgICApOwogICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYmxlRGF0YSh0YWJsZSkpOwogICAgfSwKICAgIHNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuICQucGFyYW0odGhpcy50YWJsZURhdGEodGhpcy5jdXJyZW50VGFibGUpKTsKICAgIH0sCiAgICBzZXJpYWxpemVUYWJsZTogZnVuY3Rpb24odGFibGUpIHsKICAgICAgICB2YXIgcmVzdWx0ID0gIiI7CiAgICAgICAgdmFyIHBhcmFtTmFtZSA9IHRhYmxlLnRhYmxlRG5EQ29uZmlnLnNlcmlhbGl6ZVBhcmFtTmFtZSB8fCB0YWJsZS5pZDsKICAgICAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7CiAgICAgICAgZm9yICh2YXIgaT0wOyBpPHJvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSByZXN1bHQgKz0gIiYiOwogICAgICAgICAgICB2YXIgcm93SWQgPSByb3dzW2ldLmlkOwogICAgICAgICAgICBpZiAocm93SWQgJiYgdGFibGUudGFibGVEbkRDb25maWcgJiYgdGFibGUudGFibGVEbkRDb25maWcuc2VyaWFsaXplUmVnZXhwKSB7CiAgICAgICAgICAgICAgICByb3dJZCA9IHJvd0lkLm1hdGNoKHRhYmxlLnRhYmxlRG5EQ29uZmlnLnNlcmlhbGl6ZVJlZ2V4cClbMF07CiAgICAgICAgICAgICAgICByZXN1bHQgKz0gcGFyYW1OYW1lICsgJ1tdPScgKyByb3dJZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfSwKICAgIHNlcmlhbGl6ZVRhYmxlczogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwogICAgICAgICQoJ3RhYmxlJykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdGhpcy5pZCAmJiByZXN1bHQucHVzaCgkLnBhcmFtKCQudGFibGVEbkQudGFibGVEYXRhKHRoaXMpKSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHJlc3VsdC5qb2luKCcmJyk7CiAgICB9LAogICAgdGFibGVEYXRhOiBmdW5jdGlvbiAodGFibGUpIHsKICAgICAgICB2YXIgY29uZmlnID0gdGFibGUudGFibGVEbkRDb25maWcsCiAgICAgICAgICAgIHByZXZpb3VzSURzICA9IFtdLAogICAgICAgICAgICBjdXJyZW50TGV2ZWwgPSAwLAogICAgICAgICAgICBpbmRlbnRMZXZlbCAgPSAwLAogICAgICAgICAgICByb3dJRCAgICAgICAgPSBudWxsLAogICAgICAgICAgICBkYXRhICAgICAgICAgPSB7fSwKICAgICAgICAgICAgZ2V0U2VyaWFsaXplUmVnZXhwLAogICAgICAgICAgICBwYXJhbU5hbWUsCiAgICAgICAgICAgIGN1cnJlbnRJRCwKICAgICAgICAgICAgcm93czsKCiAgICAgICAgaWYgKCF0YWJsZSkKICAgICAgICAgICAgdGFibGUgPSB0aGlzLmN1cnJlbnRUYWJsZTsKICAgICAgICBpZiAoIXRhYmxlIHx8ICF0YWJsZS5yb3dzIHx8ICF0YWJsZS5yb3dzLmxlbmd0aCkKICAgICAgICAgICAgcmV0dXJuIHtlcnJvcjogeyBjb2RlOiA1MDAsIG1lc3NhZ2U6ICJOb3QgYSB2YWxpZCB0YWJsZS4ifX07CiAgICAgICAgaWYgKCF0YWJsZS5pZCAmJiAhY29uZmlnLnNlcmlhbGl6ZVBhcmFtTmFtZSkKICAgICAgICAgICAgcmV0dXJuIHtlcnJvcjogeyBjb2RlOiA1MDAsIG1lc3NhZ2U6ICJObyBzZXJpYWxpemFibGUgdW5pcXVlIGlkIHByb3ZpZGVkLiJ9fTsKICAgICAgICAKICAgICAgICByb3dzICAgICAgPSBjb25maWcuYXV0b0NsZWFuUmVsYXRpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICYmIHRhYmxlLnJvd3MKICAgICAgICAgICAgICAgICAgICAgICAgfHwgJC5tYWtlQXJyYXkodGFibGUucm93cyk7CiAgICAgICAgcGFyYW1OYW1lID0gY29uZmlnLnNlcmlhbGl6ZVBhcmFtTmFtZSB8fCB0YWJsZS5pZDsKICAgICAgICBjdXJyZW50SUQgPSBwYXJhbU5hbWU7CgogICAgICAgIGdldFNlcmlhbGl6ZVJlZ2V4cCA9IGZ1bmN0aW9uIChyb3dJZCkgewogICAgICAgICAgICBpZiAocm93SWQgJiYgY29uZmlnICYmIGNvbmZpZy5zZXJpYWxpemVSZWdleHApCiAgICAgICAgICAgICAgICByZXR1cm4gcm93SWQubWF0Y2goY29uZmlnLnNlcmlhbGl6ZVJlZ2V4cClbMF07CiAgICAgICAgICAgIHJldHVybiByb3dJZDsKICAgICAgICB9OwoKICAgICAgICBkYXRhW2N1cnJlbnRJRF0gPSBbXTsKICAgICAgICAhY29uZmlnLmF1dG9DbGVhblJlbGF0aW9ucwogICAgICAgICAgICAmJiAkKHJvd3NbMF0pLmRhdGEoJ2xldmVsJykKICAgICAgICAgICAgJiYgcm93cy51bnNoaWZ0KHtpZDogJ3VuZGVmaW5lZCd9KTsKCgoKICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChjb25maWcuaGllcmFyY2h5TGV2ZWwpIHsKICAgICAgICAgICAgICAgIGluZGVudExldmVsID0gJChyb3dzW2ldKS5kYXRhKCdsZXZlbCcpIHx8IDA7CiAgICAgICAgICAgICAgICBpZiAoaW5kZW50TGV2ZWwgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBjdXJyZW50SUQgICA9IHBhcmFtTmFtZTsKICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0lEcyA9IFtdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5kZW50TGV2ZWwgPiBjdXJyZW50TGV2ZWwpIHsKICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0lEcy5wdXNoKFtjdXJyZW50SUQsIGN1cnJlbnRMZXZlbF0pOwogICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJRCA9IGdldFNlcmlhbGl6ZVJlZ2V4cChyb3dzW2ktMV0uaWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5kZW50TGV2ZWwgPCBjdXJyZW50TGV2ZWwpIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBoID0gMDsgaCA8IHByZXZpb3VzSURzLmxlbmd0aDsgaCsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0lEc1toXVsxXSA9PT0gaW5kZW50TGV2ZWwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50SUQgICAgICAgICA9IHByZXZpb3VzSURzW2hdWzBdOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNJRHNbaF1bMV0gPj0gY3VycmVudExldmVsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNJRHNbaF1bMV0gPSAwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGN1cnJlbnRMZXZlbCA9IGluZGVudExldmVsOwoKICAgICAgICAgICAgICAgIGlmICghJC5pc0FycmF5KGRhdGFbY3VycmVudElEXSkpCiAgICAgICAgICAgICAgICAgICAgZGF0YVtjdXJyZW50SURdID0gW107CiAgICAgICAgICAgICAgICByb3dJRCA9IGdldFNlcmlhbGl6ZVJlZ2V4cChyb3dzW2ldLmlkKTsKICAgICAgICAgICAgICAgIHJvd0lEICYmIGRhdGFbY3VycmVudElEXS5wdXNoKHJvd0lEKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHJvd0lEID0gZ2V0U2VyaWFsaXplUmVnZXhwKHJvd3NbaV0uaWQpOwogICAgICAgICAgICAgICAgcm93SUQgJiYgZGF0YVtjdXJyZW50SURdLnB1c2gocm93SUQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBkYXRhOwogICAgfQp9OwoKalF1ZXJ5LmZuLmV4dGVuZCgKICAgIHsKICAgICAgICB0YWJsZURuRCAgICAgICAgICAgICA6ICQudGFibGVEbkQuYnVpbGQsCiAgICAgICAgdGFibGVEbkRVcGRhdGUgICAgICAgOiAkLnRhYmxlRG5ELnVwZGF0ZVRhYmxlcywKICAgICAgICB0YWJsZURuRFNlcmlhbGl6ZSAgICA6ICQucHJveHkoJC50YWJsZURuRC5zZXJpYWxpemUsICQudGFibGVEbkQpLAogICAgICAgIHRhYmxlRG5EU2VyaWFsaXplQWxsIDogJC50YWJsZURuRC5zZXJpYWxpemVUYWJsZXMsCiAgICAgICAgdGFibGVEbkREYXRhICAgICAgICAgOiAkLnByb3h5KCQudGFibGVEbkQudGFibGVEYXRhLCAkLnRhYmxlRG5EKQogICAgfQopOwoKfShqUXVlcnksIHdpbmRvdywgd2luZG93LmRvY3VtZW50KTs=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IC0gMjAxOSBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiogCiAqIEluc3RhbGwgbW9kdWxlCiAqLwoKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJyk7CgkJCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbnB1dF9jdXN0b21fbW9kdWxlbmFtZScsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9zZWN0aW9uJywgJ2V4dGVuc2lvbnMnKTsKCgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKCi8vIG15c3FsLXNwZWNpZmljLCBidXQgaWdub3JlZCBieSBvdGhlciBkYXRhYmFzZQokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdFTkdJTkU9TXlJU0FNJyk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCiRmbGRzID0gIgoJZmllbGRpZCBJIEtFWSBBVVRPLAoJbmFtZSBDKDI1NSksCgloZWxwIFgsCgl0eXBlIEMoMjApLAoJcHJvcGVydGllcyBYLAoJY2xlYXJjYWNoZSBJLAoJc29ydG9yZGVyIEksCgl2YWx1ZSBYLAoJZWRpdG9ycyBDKDI1NSkKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgoJdGFiaWQgSSBLRVkgQVVUTywKCW5hbWUgQygyNTUpLAoJc29ydG9yZGVyIEksCgllZGl0b3JzIEMoMjU1KQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgoJdGFiaWQgSSwKCWZpZWxkaWQgSQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQiLCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCIsICJ0YWJpZCxmaWVsZGlkIiwgYXJyYXkoIlVOSVFVRSIpKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIChuYW1lLCBoZWxwLCB0eXBlLCBzb3J0b3JkZXIsIHZhbHVlKSBWQUxVRVMgKD8sPyw/LD8sPykiOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnU2FtcGxlIHRleHRmaWVsZCcsICdTYW1wbGUgaGVscCB0ZXh0IGZvciB0aGlzIHRleHRmaWVsZCcsICd0ZXh0ZmllbGQnLCAxLCAnU2FtcGxlIHZhbHVlJykpOwoKJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYiAobmFtZSwgc29ydG9yZGVyKSBWQUxVRVMgKD8sPykiOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGhpcy0+TGFuZygidGl0bGVfZ2VuZXJhbCIpLCAxKSk7CgokcXVlcnkgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgKGZpZWxkaWQsIHRhYmlkKSBWQUxVRVMgKD8sPykiOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgxLCAxKSk7CgovLyByZWdpc3RlciBhbiBldmVudCB0aGF0IEN1c3RvbUdTIHdpbGwgaXNzdWUuCiR0aGlzLT5DcmVhdGVFdmVudCgnT25TZXR0aW5nQ2hhbmdlJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IC0gMjAxOSBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiogCiAqIFVuaW5zdGFsbCBtb2R1bGUKICovCiRkYiA9ICR0aGlzLT5HZXREYigpOwoKLy8gcmVtb3ZlIHRoZSBkYXRhYmFzZSB0YWJsZXMKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYiIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpOwoJCQovLyByZW1vdmUgYWxsIHByZWZlcmVuY2VzCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CgovLyByZW1vdmUgdGhlIGV2ZW50CiR0aGlzLT5SZW1vdmVFdmVudCgnT25TZXR0aW5nQ2hhbmdlJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IC0gMjAxOSBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnRU5HSU5FPU15SVNBTScpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7Cgpzd2l0Y2goJG9sZHZlcnNpb24pCnsKCWNhc2UgIjEuMCI6CgoJCSRmbGRzID0gIgoJCQlmaWVsZGlkIEkgS0VZIEFVVE8sCgkJCW5hbWUgQygyNTUpLAoJCQloZWxwIFgsCgkJCXR5cGUgQygyMCksCgkJCXByb3BlcnRpZXMgWCwKCQkJc29ydG9yZGVyIEksCgkJCXZhbHVlIFgKCQkiOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRpZHggPSAxOwoJCWZvciAoJGkgPSAxOyAkaSA8PSA3OyAkaSsrKQoJCXsKCQkJLy8gdHJhbnNmZXIgY2hlY2tib3hlcyB0byBkYXRhYmFzZQoJCQkkZmllbGRuYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X3RpdGxlX2NoZWNrYm94XycuJGkpOwoJCQlpZiAoICFlbXB0eSgkZmllbGRuYW1lKSApCgkJCXsKCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyAobmFtZSwgaGVscCwgdHlwZSwgc29ydG9yZGVyLCB2YWx1ZSkgVkFMVUVTICg/LD8sPyw/LD8pIjsKCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KAoJCQkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF90aXRsZV9jaGVja2JveF8nLiRpKSwKCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfaGVscF9jaGVja2JveF8nLiRpKSwKCQkJCQknY2hlY2tib3gnLAoJCQkJCSRpZHgsCgkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X2NoZWNrYm94XycuJGkpCgkJCQkpKTsKCQkJCSRpZHgrKzsKCQkJfQoJCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnaW5wdXRfY2hlY2tib3hfJy4kaSk7CgkJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdpbnB1dF90aXRsZV9jaGVja2JveF8nLiRpKTsKCQkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2lucHV0X2hlbHBfY2hlY2tib3hfJy4kaSk7CgkJfQoJCWZvciAoJGkgPSAxOyAkaSA8PSA1OyAkaSsrKQoJCXsKCQkJLy8gdHJhbnNmZXIgdGV4dGZpZWxkcyB0byBkYXRhYmFzZQoJCQkkZmllbGRuYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X3RpdGxlX3RleHRmaWVsZF8nLiRpKTsKCQkJaWYgKCAhZW1wdHkoJGZpZWxkbmFtZSkgKQoJCQl7CgkJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgKG5hbWUsIGhlbHAsIHR5cGUsIHNvcnRvcmRlciwgdmFsdWUpIFZBTFVFUyAoPyw/LD8sPyw/KSI7CgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgKCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfdGl0bGVfdGV4dGZpZWxkXycuJGkpLAoJCQkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF9oZWxwX3RleHRmaWVsZF8nLiRpKSwKCQkJCQkndGV4dGZpZWxkJywKCQkJCQkkaWR4LAoJCQkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF90ZXh0ZmllbGRfJy4kaSkKCQkJCSkpOwoJCQkJJGlkeCsrOwoJCQl9CgkJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdpbnB1dF90ZXh0ZmllbGRfJy4kaSk7CgkJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdpbnB1dF90aXRsZV90ZXh0ZmllbGRfJy4kaSk7CgkJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdpbnB1dF9oZWxwX3RleHRmaWVsZF8nLiRpKTsKCQl9CgkJLy8gcmVzZXQgcGVybWlzc2lvbnMKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFNldHRpbmdzJyk7CgkJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScpOwoJCS8vIGNyZWF0ZSBldmVudAoJCSR0aGlzLT5DcmVhdGVFdmVudCgnT25TZXR0aW5nQ2hhbmdlJyk7CgkJLy8gZGVsZXRlIGZpbGVzCgkJJGRlbGV0ZWZpbGVzID0gYXJyYXkgKCdmdW5jdGlvbi5hZG1pbl9jaGVja2JveGVzLnBocCcsICdmdW5jdGlvbi5hZG1pbl90ZXh0ZmllbGRzLnBocCcsICdmdW5jdGlvbi5hZG1pbl9zZXR0aW5ncycsCgkJCQkJCQkJCQkJCQknYWN0aW9uLnNhdmVfY2hlY2tib3hlcy5waHAnLCAnYWN0aW9uLnNhdmVfdGV4dGZpZWxkcy5waHAnLCAnYWN0aW9uLnNhdmVfc2V0dGluZ3MucGhwJywKCQkJCQkJCQkJCQkJCSd0ZW1wbGF0ZXMvYWRtaW5fY2hlY2tib3hlcy50cGwnLCAndGVtcGxhdGVzL2FkbWluX3RleHRmaWVsZHMudHBsJywgJ3RlbXBsYXRlcy9hZG1pbl9zZXR0aW5ncy50cGwnKTsKCQlmb3JlYWNoICgkZGVsZXRlZmlsZXMgYXMgJGRlbGV0ZWZpbGUpIEB1bmxpbmsoJGRlbGV0ZWZpbGUpOwoKCQkvLyBjdXJyZW50IHZlcnNpb246IDEuMQoKCWNhc2UgIjEuMSI6CgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9zZWN0aW9uJywgJ2V4dGVuc2lvbnMnKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIiwgImNsZWFyY2FjaGUgSSIpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJLy8gY3VycmVudCB2ZXJzaW9uOiAxLjIKCQkKCWNhc2UgIjEuNCI6CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MiLCAiZWRpdG9ycyBDKDI1NSkiKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIGN1cnJlbnQgdmVyc2lvbjogMS41CgkJCgljYXNlICIxLjUiOgoJY2FzZSAiMS42IjoKCWNhc2UgIjIuMCI6CgljYXNlICIyLjEiOgoJY2FzZSAiMi4yIjoKCgkJJGZsZHMgPSAiCgkJCXRhYmlkIEkgS0VZIEFVVE8sCgkJCW5hbWUgQygyNTUpLAoJCQlzb3J0b3JkZXIgSSwKCQkJZWRpdG9ycyBDKDI1NSkKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWIiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRmbGRzID0gIgoJCQl0YWJpZCBJLAoJCQlmaWVsZGlkIEkKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGRfaWR4IiwgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQiLCAidGFiaWQsZmllbGRpZCIsIGFycmF5KCJVTklRVUUiKSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCgkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYiAodGFiaWQsIG5hbWUsIHNvcnRvcmRlcikgVkFMVUVTICg/LD8sPykiOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KDEsICR0aGlzLT5MYW5nKCJ0aXRsZV9nZW5lcmFsIiksIDEpKTsKCgkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkICh0YWJpZCwgZmllbGRpZCkKCQkJCQlTRUxFQ1QgMSBBUyB0YWJpZCwgZmllbGRpZCBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIjsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCgljYXNlICIzLjAiOgoJY2FzZSAiMy4xIjoKCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBuYW1lPUNPTkNBVChuYW1lLCcuJykgV0hFUkUgdHlwZT0nZmllbGRzZXRlbmQnIEFORCBSSUdIVChuYW1lLDEpIDw+ICcuJyI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkcXVlcnkgPSAiREVMRVRFIHRmIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgdGYgTEVGVCBKT0lOICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIGYgT04gdGYuZmllbGRpZD1mLmZpZWxkaWQgV0hFUkUgZi5maWVsZGlkIElTIE5VTEwiOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAKCQkvLyBjdXJyZW50IHZlcnNpb246IDMuMgoKfSAvLyBlbmQgc3dpdGNoCgppZiAoIHZlcnNpb25fY29tcGFyZSggJG9sZHZlcnNpb24sICczLjMnICkgPCAwICkKewoJLy8gZGVsZXRlIHJlZHVuZGFudCBmaWxlCgl1bmxpbmsoIGNtc19qb2luX3BhdGgoIGRpcm5hbWUoX19GSUxFX18pLCAnbGliJywgJ2pxdWVyeScsICdqcXVlcnktdWkuc21vb3RobmVzcy5jc3MnICkgKTsKfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJDdXN0b21HUyIKdmVyc2lvbiA9IDMuMwphdXRob3IgPSAiUm9sZiBUamFzc2VucywgSm9zIgphdXRob3JlbWFpbCA9ICJpbmZvIGF0IGNtc2NhbmJlc2ltcGxlIGRvdCBvcmcsIGpvc3ZkIGF0IGxpdmUgZG90IG5sIgptaW5jbXN2ZXJzaW9uID0gMi4yCmxhenlsb2FkYWRtaW4gPSAwCmxhenlsb2FkZnJvbnRlbmQgPSAwCg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_fielddefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtc3xAY291bnQgPiAwfQoKPHNjcmlwdD4KCXZhciBmaWVsZGRlZnNjaGFuZ2VkID0gJyc7Cgl2YXIgYWpheF9sb2FkID0gJzxpbWcgc3JjPSJ7JGNnc191cmxfcGF0aH0vaW1hZ2VzL2xvYWRpbmcuZ2lmIiBhbHQ9ImxvYWRpbmcuLi4iIC8+JzsKCXZhciB0cnVlaW1nID0gJ3skdHJ1ZWltYWdlfSc7Cgl2YXIgZmFsc2VpbWcgPSAneyRmYWxzZWltYWdlfSc7CgoJalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7IAoKCQkkKCcjdGFic2VsZWN0JykuY2hhbmdlKCBmdW5jdGlvbigpIHsKCQkJbG9jYXRpb24uaHJlZiA9ICd7Y21zX2FjdGlvbl91cmwgbW9kdWxlPUN1c3RvbUdTIGFjdGlvbj1kZWZhdWx0YWRtaW4gZm9yanM9MSBtaWQ9InskbW9kX2lkfSIgYWN0aXZlX3RhYj0iZmllbGRkZWZzIn0meyRtb2RfaWR9dGFiaWQ9JyskKHRoaXMpLnZhbCgpOwoJCX0gKTsKCgkJJCgnLnNvcnRfdGFibGVfZmllbGRkZWZzJykudGFibGVEbkQoIHsKCQkJb25EcmFnQ2xhc3M6ICJyb3cxaG92ZXIiLAoJCQlvbkRyb3A6IGZ1bmN0aW9uKHRhYmxlLCByb3cpIHsKCgkJCQlqUXVlcnkoIi5zb3J0X3RhYmxlX2ZpZWxkZGVmcyIpLmZpbmQoInRib2R5IHRyIikucmVtb3ZlQ2xhc3MoKTsKCQkJCWpRdWVyeSgiLnNvcnRfdGFibGVfZmllbGRkZWZzIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsKCQkJCWpRdWVyeSgiLnNvcnRfdGFibGVfZmllbGRkZWZzIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKSIpLmFkZENsYXNzKCJyb3cyIik7CgoJCQkJdmFyIHJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7CgkJCQl2YXIgc29ydHN0ciA9IHJvd3NbMF0uaWQ7CgkJCQlmb3IgKHZhciBpPTE7IGk8cm93cy5sZW5ndGg7IGkrKykgewoJCQkJCXNvcnRzdHIgKz0gIiwiK3Jvd3NbaV0uaWQ7IAoJCQkJfSAKCQkJCSQoJyNsb2FkZXInKS5odG1sKGFqYXhfbG9hZCkubG9hZCgne2Ntc19hY3Rpb25fdXJsIG1vZHVsZT1DdXN0b21HUyBhY3Rpb249ZWRpdGZpZWxkZGVmIGZvcmpzPTEgbWlkPSJ7JG1vZF9pZH0iIG1vZGU9c29ydCBzaG93dGVtcGxhdGU9ZmFsc2V9JnskbW9kX2lkfXNvcnRzZXE9Jytzb3J0c3RyKTsKCQkJCWZpZWxkZGVmc2NoYW5nZWQgPSB0cnVlOwoJCQl9CgkJfSApOwoKCQkvLyQoJy51cGRvd24nKS5oaWRlKCk7CgkJCgkJJCgnYS5hc3NpZ250YWInKS5jbGljayhmdW5jdGlvbihldmVudCkgeyAKCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsgCgkJCXZhciBzZWxmID0gJCh0aGlzKTsKCQkJJC5hamF4KCB7IHVybDogc2VsZi5hdHRyKCdocmVmJyksIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlc3VsdCkgeyAKCQkJCWlmKHJlc3VsdCA9PSAxKQoJCQkJCXNlbGYuaHRtbCh0cnVlaW1nKTsKCQkJCWVsc2UKCQkJCQlzZWxmLmh0bWwoZmFsc2VpbWcpOwoJCQkJZmllbGRkZWZzY2hhbmdlZCA9IHRydWU7CgkJCX0gfSApOwoJCQlyZXR1cm4gZmFsc2U7CgkJfSApOwoJCQoJCSQoJyNwYWdlX3RhYnMgZGl2JykuY2xpY2soZnVuY3Rpb24oKSB7CgkJCWlmKGZpZWxkZGVmc2NoYW5nZWQpIGxvY2F0aW9uLmhyZWYgPSAne2Ntc19hY3Rpb25fdXJsIG1vZHVsZT1DdXN0b21HUyBhY3Rpb249ZGVmYXVsdGFkbWluIGZvcmpzPTEgbWlkPSJ7JG1vZF9pZH0ifSZ7JG1vZF9pZH1hY3RpdmVfdGFiPScgKyAkKHRoaXMpLmF0dHIoJ2lkJyk7CgkJCXJldHVybiBmYWxzZTsKCQl9ICk7CgkJCgl9ICk7Cjwvc2NyaXB0PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXdmaWVsZGRlZmxpbmt9Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gaWQ9ImxvYWRlciI+IDwvc3Bhbj48L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCXtmb3JtX3N0YXJ0IGFjdGlvbj0nZWRpdGZpZWxkZGVmJ30KCTx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIHNvcnRfdGFibGVfZmllbGRkZWZzIj4KCQk8dGhlYWQ+CgkJCTx0cj4KCQkJCTx0aCBjbGFzcz0icGFnZXcyNSI+eyRuYW1lfTwvdGg+CgkJCQk8dGggY2xhc3M9InBhZ2V3MjUiPnskdHlwZX08L3RoPgoJCQkJPHRoIGNsYXNzPSJwYWdldzI1Ij57JHNtYXJ0eXZhcn08L3RoPgoJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiB1cGRvd24iPiZuYnNwOzwvdGg+CgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIHVwZG93biI+Jm5ic3A7PC90aD4KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPnskc2hvd29udGFifSZuYnNwO3skdGFic2VsZWN0fTwvdGg+CgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPC90cj4KCQk8L3RoZWFkPgoJCXskZ3JvdXBpbmRlbnQgPSAnJ30KCQl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCQl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj1yb3djbGFzc30KCQkJe2lmICRlbnRyeS0+dHlwZSA9PSAnRmllbGRncm91cCBzdGFydCd9eyRncm91cGluZGVudCA9ICcmbmJzcDsmbmJzcDsmbmJzcDsnfXsvaWZ9CgkJCTx0ciBpZD0iaXskZW50cnktPmZpZWxkaWR9IiBjbGFzcz0ieyRyb3djbGFzc30iPgoJCQkJPHRkPntpZiBlbXB0eSgkZW50cnktPnNtYXJ0eXZhcil9PHN0cm9uZz57JGVudHJ5LT5uYW1lfTwvc3Ryb25nPntlbHNlfXskZ3JvdXBpbmRlbnR9eyRlbnRyeS0+bmFtZX17L2lmfTwvdGQ+CgkJCQk8dGQ+eyRlbnRyeS0+dHlwZX08L3RkPgoJCQkJPHRkPjxzcGFuIGNsYXNzPSJzbWFydHl2YXIiPnskZW50cnktPnNtYXJ0eXZhcn08L3NwYW4+PC90ZD4KCQkJCTx0ZCBjbGFzcz0idXBkb3duIj57JGVudHJ5LT5tb3ZldXB9PC90ZD4KCQkJCTx0ZCBjbGFzcz0idXBkb3duIj57JGVudHJ5LT5tb3ZlZG93bn08L3RkPgoJCQkJPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPnskZW50cnktPmFzc2lnbnRhYn08L3RkPgoJCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCQk8L3RyPgoJCQl7aWYgJGVudHJ5LT50eXBlID09ICdGaWVsZGdyb3VwIGVuZCd9eyRncm91cGluZGVudCA9ICcnfXsvaWZ9CgkJey9mb3JlYWNofQoJPC90YWJsZT4KCXtmb3JtX2VuZH0KPC9kaXY+Cgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXdmaWVsZGRlZmxpbmt9PC9wPgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_general.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPSdzYXZlX2dlbmVyYWwnIHRhYmlkPSR0YWJpZH0NCg0KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJCXtpZiAkZW50cnktPnR5cGUgPT0gJ2ZpZWxkc2V0c3RhcnQnIHx8ICRlbnRyeS0+dHlwZSA9PSAnZmllbGRzZXRlbmQnfQ0KCQkNCgkJCXskZW50cnktPmZpZWxkaHRtbH0NCgkJCXtpZiAhZW1wdHkoJGVudHJ5LT5oZWxwKX08cCBjbGFzcz0icGFnZWlucHV0Ij57JGVudHJ5LT5oZWxwfGVzY2FwZX08L3A+ey9pZn0NCiAgICANCgkJe2Vsc2V9DQoJCQ0KCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJCQk8cCBjbGFzcz0icGFnZXRleHQiPntpZiAkZW50cnktPnR5cGUgIT0gJ2J1dHRvbid9eyRlbnRyeS0+bmFtZXxlc2NhcGV9OjwvcD4NCgkJCQk8cCBjbGFzcz0icGFnZWlucHV0eyRlbnRyeS0+ZmllbGRjbGFzc30iPnsvaWZ9eyRlbnRyeS0+ZmllbGRodG1sfTwvcD4NCgkJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGVudHJ5LT5oZWxwfGVzY2FwZX08L3A+DQoJCQk8L2Rpdj4NCgkJDQoJCXsvaWZ9DQoJey9mb3JlYWNofQ0KCQ0KCTxociAvPg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+DQoJPC9kaXY+DQoNCntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_generaljs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCBzcmM9InskY2dzX3VybF9wYXRofS9saWIvanF1ZXJ5L2pxdWVyeS5jb29raWUuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9InskY2dzX3VybF9wYXRofS9saWIvanF1ZXJ5L2pxdWVyeS5jb2xsYXBzaWJsZS5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ieyRjZ3NfdXJsX3BhdGh9L2xpYi9qcXVlcnkvanF1ZXJ5LXVpLXRpbWVwaWNrZXItYWRkb24uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9InskY2dzX3VybF9wYXRofS9saWIvanF1ZXJ5L2NvbG9ycGlja2VyLm1pbi5qcyI+PC9zY3JpcHQ+DQoNCjxzY3JpcHQ+DQoJJChmdW5jdGlvbigpIHsNCgkJJCgnLmNnc19jb2xsYXBzaWJsZScpLmNvbGxhcHNpYmxlKCB7DQoJCQljb29raWVOYW1lOiAnY29sbGFwc2libGUnDQoJCX0gKTsNCgkJeyRkYXRhcGlja2VyX2xvY2FsZX0NCgkJJCgnLmRhdGVwaWNrZXIgaW5wdXQnKS5kYXRlcGlja2VyKCB7DQoJCQlkYXRlRm9ybWF0OiAneXktbW0tZGQnLA0KCQkJc2hvd090aGVyTW9udGhzOiB0cnVlLA0KCQkJc2VsZWN0T3RoZXJNb250aHM6IHRydWUNCgkJfSApOw0KCQkkKCcuZGF0ZXRpbWVwaWNrZXIgaW5wdXQnKS5kYXRldGltZXBpY2tlciggew0KCQkJZGF0ZUZvcm1hdDogJ3l5LW1tLWRkJywNCgkJCXNob3dPdGhlck1vbnRoczogdHJ1ZSwNCgkJCXNlbGVjdE90aGVyTW9udGhzOiB0cnVlDQoJCX0gKTsNCgkJJCgnLnRpbWVwaWNrZXIgaW5wdXQnKS50aW1lcGlja2VyKCB7IH0gKTsNCgkJJCgnLmlucHV0Y29sb3JwaWNrZXIgaW5wdXQnKS5Db2xvclBpY2tlciggew0KCQkJb25TdWJtaXQ6IGZ1bmN0aW9uKGhzYiwgaGV4LCByZ2IsIGVsLCBwYXJlbnQpIHsNCgkJCQkkKGVsKS52YWwoaGV4KTsNCgkJCQkkKGVsKS5Db2xvclBpY2tlckhpZGUoKTsNCgkJCX0gLA0KCQkJb25CZWZvcmVTaG93OiBmdW5jdGlvbigpIHsNCgkJCQkkKHRoaXMpLkNvbG9yUGlja2VyU2V0Q29sb3IodGhpcy52YWx1ZSk7DQoJCQl9DQoJCX0gKQ0KCQkub24oJ2tleXVwJywgZnVuY3Rpb24oKSB7DQoJCQkkKHRoaXMpLkNvbG9yUGlja2VyU2V0Q29sb3IodGhpcy52YWx1ZSk7DQoJCX0gKTsNCgl9ICk7DQo8L3NjcmlwdD4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPSdzYXZlX29wdGlvbnMnfQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2N1c3RvbV9tb2R1bGVuYW1lfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY3VzdG9tX21vZHVsZW5hbWV9PGJyIC8+eyRoZWxwX2N1c3RvbV9tb2R1bGVuYW1lfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfYWRtaW5fc2VjdGlvbn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FkbWluX3NlY3Rpb259PGJyIC8+eyRoZWxwX2FkbWluX3NlY3Rpb259PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxpbXBvcnR9OjwvcD4NCiAgICAJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxpbXBvcnR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxleHBvcnR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR4bWxleHBvcnR9PC9wPg0KCTwvZGl2Pg0KDQoJPGhyIC8+CQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfTwvcD4NCgk8L2Rpdj4NCg0Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tabs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtc3xAY291bnQgPiAwfQoKPHNjcmlwdD4KCXZhciB0YWJzY2hhbmdlZCA9ICcnOwoJdmFyIGFqYXhfbG9hZCA9ICc8aW1nIHNyYz0ieyRjZ3NfdXJsX3BhdGh9L2ltYWdlcy9sb2FkaW5nLmdpZiIgYWx0PSJsb2FkaW5nLi4uIiAvPic7CgoJalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7CgoJCSQoIi5zb3J0X3RhYmxlX3RhYnMiKS50YWJsZURuRCggewoJCQlvbkRyYWdDbGFzczogInJvdzFob3ZlciIsCgkJCW9uRHJvcDogZnVuY3Rpb24odGFibGUsIHJvdykgewoKCQkJCWpRdWVyeSgiLnNvcnRfdGFibGVfdGFicyIpLmZpbmQoInRib2R5IHRyIikucmVtb3ZlQ2xhc3MoKTsKCQkJCWpRdWVyeSgiLnNvcnRfdGFibGVfdGFicyIpLmZpbmQoInRib2R5IHRyOm50aC1jaGlsZCgybisxKSIpLmFkZENsYXNzKCJyb3cxIik7CgkJCQlqUXVlcnkoIi5zb3J0X3RhYmxlX3RhYnMiKS5maW5kKCJ0Ym9keSB0cjpudGgtY2hpbGQoMm4pIikuYWRkQ2xhc3MoInJvdzIiKTsKCgkJCQl2YXIgcm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKCQkJCXZhciBzb3J0c3RyID0gcm93c1swXS5pZDsKCQkJCWZvciAodmFyIGk9MTsgaTxyb3dzLmxlbmd0aDsgaSsrKSB7CgkJCQkJc29ydHN0ciArPSAiLCIrcm93c1tpXS5pZDsKCQkJCX0KCQkJCQoJCQkJJCgnI2xvYWRlcicpLmh0bWwoYWpheF9sb2FkKS5sb2FkKCd7Y21zX2FjdGlvbl91cmwgbW9kdWxlPUN1c3RvbUdTIGFjdGlvbj1lZGl0dGFiIGZvcmpzPTEgbWlkPSJ7JG1vZF9pZH0iIG1vZGU9c29ydCBzaG93dGVtcGxhdGU9ZmFsc2V9JnskbW9kX2lkfXNvcnRzZXE9Jytzb3J0c3RyKTsKCQkJCXRhYnNjaGFuZ2VkID0gdHJ1ZTsKCQkJfQoJCX0gKTsKCgkJLy8kKCIudXBkb3duIikuaGlkZSgpOwoKCQkkKCcjcGFnZV90YWJzIGRpdicpLmNsaWNrKGZ1bmN0aW9uKCkgewoJCQlpZih0YWJzY2hhbmdlZCkgbG9jYXRpb24uaHJlZiA9ICd7Y21zX2FjdGlvbl91cmwgbW9kdWxlPUN1c3RvbUdTIGFjdGlvbj1kZWZhdWx0YWRtaW4gZm9yanM9MSBtaWQ9InskbW9kX2lkfSJ9JnskbW9kX2lkfWFjdGl2ZV90YWI9JyArICQodGhpcykuYXR0cignaWQnKTsKCQkJcmV0dXJuIGZhbHNlOwoJCX0gKTsKCgl9ICk7Cjwvc2NyaXB0PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXd0YWJsaW5rfSZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIGlkPSJsb2FkZXIiPiA8L3NwYW4+PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgl7Zm9ybV9zdGFydCBhY3Rpb249J2VkaXR0YWInfQoJPHRhYmxlIGNsYXNzPSJwYWdldGFibGUgc29ydF90YWJsZV90YWJzIj4KCQk8dGhlYWQ+CgkgICAgCTx0cj4KCQkJCTx0aCBjbGFzcz0icGFnZXcyNSI+eyRuYW1lfTwvdGg+CgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIHVwZG93biI+Jm5ic3A7PC90aD4KCQkJCTx0aCBjbGFzcz0icGFnZWljb24gdXBkb3duIj4mbmJzcDs8L3RoPgoJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTwvdHI+CgkJPC90aGVhZD4KCQl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCQl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj1yb3djbGFzc30KCQkJPHRyIGlkPSJ7JGVudHJ5LT50YWJpZH0iIGNsYXNzPSJ7JHJvd2NsYXNzfSI+CgkJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCQkJPHRkIGNsYXNzPSJ1cGRvd24iPnskZW50cnktPm1vdmV1cH08L3RkPgoJCQkJPHRkIGNsYXNzPSJ1cGRvd24iPnskZW50cnktPm1vdmVkb3dufTwvdGQ+CgkJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJCTwvdHI+CgkJey9mb3JlYWNofQoJPC90YWJsZT4KCXtmb3JtX2VuZH0KPC9kaXY+Cgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXd0YWJsaW5rfTwvcD4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9DQo8c2NyaXB0Pg0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQoJJCgnI21heGxlbmd0aCcpLmhpZGUoKTsNCgkkKCcjcHJvcGVydGllcycpLmhpZGUoKTsNCgkkKCcjcGFyc2VzbWFydHknKS5oaWRlKCk7DQoJJCgnI2ZpZWxkdHlwZScpLmNoYW5nZShmdW5jdGlvbigpIHsNCgkJaWYgKCQoJyNmaWVsZHR5cGUnKS52YWwoKSA9PSAndGV4dGZpZWxkJykNCgkJew0KCQkJJCgnI21heGxlbmd0aCcpLnNsaWRlRG93bignc2xvdycpOw0KCQkJJCgnI3Byb3BlcnRpZXMnKS5zbGlkZVVwKCdzbG93Jyk7DQoJCQkkKCcjcGFyc2VzbWFydHknKS5zbGlkZVVwKCdzbG93Jyk7DQoJCX0NCgkJZWxzZSBpZiAoJCgnI2ZpZWxkdHlwZScpLnZhbCgpID09ICdwdWxsZG93bicgfHwgJCgnI2ZpZWxkdHlwZScpLnZhbCgpID09ICdyYWRpb2J1dHRvbnMnKQ0KCQl7DQoJCQkkKCcjbWF4bGVuZ3RoJykuc2xpZGVVcCgnc2xvdycpOw0KCQkJJCgnI3Byb3BlcnRpZXMnKS5zbGlkZURvd24oJ3Nsb3cnKTsNCgkJCSQoJyNwYXJzZXNtYXJ0eScpLnNsaWRlVXAoJ3Nsb3cnKTsNCgkJfQ0KCQllbHNlIGlmICgkKCcjZmllbGR0eXBlJykudmFsKCkgPT0gJ3RleHRhcmVhJyB8fCAkKCcjZmllbGR0eXBlJykudmFsKCkgPT0gJ3d5c2l3eWcnKQ0KCQl7DQoJCQkkKCcjbWF4bGVuZ3RoJykuc2xpZGVVcCgnc2xvdycpOw0KCQkJJCgnI3Byb3BlcnRpZXMnKS5zbGlkZVVwKCdzbG93Jyk7DQoJCQkkKCcjcGFyc2VzbWFydHknKS5zbGlkZURvd24oJ3Nsb3cnKTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSQoJyNtYXhsZW5ndGgnKS5zbGlkZVVwKCdzbG93Jyk7DQoJCQkkKCcjcHJvcGVydGllcycpLnNsaWRlVXAoJ3Nsb3cnKTsNCgkJCSQoJyNwYXJzZXNtYXJ0eScpLnNsaWRlVXAoJ3Nsb3cnKTsNCgkJfQ0KCX0pOw0KCSQoJyNmaWVsZHR5cGUnKS5jaGFuZ2UoKTsNCn0pOw0KPC9zY3JpcHQ+DQp7L2xpdGVyYWx9DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+PGgzPnskdGl0bGV9PC9oMz48L2Rpdj4NCg0Ke2Zvcm1fc3RhcnQgYWN0aW9uPSdlZGl0ZmllbGRkZWYnfXskaGlkZGVufQ0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X25hbWV9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRuYW1lfTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3R5cGV9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0eXBlfTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJtYXhsZW5ndGgiPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X21heGxlbmd0aH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1heGxlbmd0aH08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0icHJvcGVydGllcyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfcHJvcGVydGllc306PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhlbHBfcHJvcGVydGllc308L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvcGVydGllc308L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0icGFyc2VzbWFydHkiPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3BhcnNlc21hcnR5fTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcGFyc2VzbWFydHl9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfaGVscH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhlbHB9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfY2xlYXJjYWNoZX06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNsZWFyY2FjaGV9IHskaGVscF9jbGVhcmNhY2hlfTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2VkaXRvcnN9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRlZGl0b3JzfTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RhYnN9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogIHtmb3JlYWNoICR0YWJzIGFzICR0YWJ9DQogICAgeyR0YWJ9PGJyIC8+DQogIHsvZm9yZWFjaH0NCiAgPC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+DQoJPHA+Jm5ic3A7PC9wPg0KPC9kaXY+DQoNCntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/edittab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij48aDM+eyR0aXRsZX08L2gzPjwvZGl2Pg0KDQp7Zm9ybV9zdGFydCBhY3Rpb249J2VkaXR0YWInfXskaGlkZGVufQ0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X25hbWV9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRuYW1lfTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2VkaXRvcnN9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRlZGl0b3JzfTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRjYW5jZWx9PC9wPg0KICA8cD4mbmJzcDs8L3A+DQo8L2Rpdj4NCg0Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
</module>
