<?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.5</version>
    <mincmsversion>2.2</mincmsversion>
	<help><![CDATA[PGRpdiBpZD0icGFnZV90YWJzIj48ZGl2IGlkPSJnZW5lcmFsIj5HZW5lcmFsPC9kaXY+CjxkaXYgaWQ9InN0YXJ0Ij5HZXR0aW5nIHN0YXJ0ZWQ8L2Rpdj4KPGRpdiBpZD0icGVybWlzc2lvbnMiPlBlcm1pc3Npb25zPC9kaXY+CjxkaXYgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwvZGl2Pgo8ZGl2IGlkPSJ0cm91Ymxlc2hvb3RpbmciPlRyb3VibGVzaG9vdGluZzwvZGl2PgoKCgo8L2Rpdj48IS0tIEVuZFRhYkhlYWRlcnMgLS0+PGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj48ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPjxkaXYgaWQ9ImdlbmVyYWxfYyI+Cgk8cD5UaGlzIG1vZHVsZSBleHRlbmRzIHRoZSBHbG9iYWwgU2V0dGluZ3Mgd2l0aCBzb21lIGN1c3RvbWl6ZWQgcGFyYW1ldGVycy48YnIgLz4KCQlZb3UgY2FuIGRlZmluZSBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGZpZWxkcyB3aGljaCBjYW4gYmUgdXNlZCBhcyBzbWFydHktdmFyaWFibGUgaW4gdGVtcGxhdGVzIG9yIHBhZ2VzLjwvcD4KCTxiciAvPgoJPHA+QXZhaWxhYmxlIGFyZTo8L3A+Cgk8dWw+CgkJPGxpPkJ1dHRvbjwvbGk+CgkJPGxpPkNoZWNrYm94PC9saT4KCQk8bGk+Q29sb3JwaWNrZXI8L2xpPgoJCTxsaT5EYXRlcGlja2VyPC9saT4KCQk8bGk+RGF0ZSBhbmQgdGltZXBpY2tlcjwvbGk+CgkJPGxpPkZpbGVQaWNrZXIgPGk+KENvcmUgRmlsZVBpY2tlciBtb2R1bGUgbmVlZHMgdG8gYmUgaW5zdGFsbGVkKTwvaT48L2xpPgoJCTxsaT5HQkZpbGVQaWNrZXIgPGI+REVQUkVDQVRFRDwvYj48L2xpPgoJCTxsaT5KTUZpbGVQaWNrZXIgPGk+KG1vZHVsZSBKTUZpbGVQaWNrZXIgbmVlZHMgdG8gYmUgaW5zdGFsbGVkKTwvaT48L2xpPgoJCTxsaT5QYWdlIHNlbGVjdG9yPC9saT4KCQk8bGk+UHVsbGRvd248L2xpPgoJCTxsaT5SYWRpb2J1dHRvbmdyb3VwPC9saT4KCQk8bGk+VGV4dGFyZWE8L2xpPgoJCTxsaT5UZXh0YXJlYSB3aXRoIFdZU0lXWUc8L2xpPgoJCTxsaT5UZXh0ZmllbGQ8L2xpPgoJCTxsaT5UaW1lcGlja2VyPC9saT4KCTwvdWw+Cgk8YnIgLz4KCTxwPkFkZGl0aW9uYWwgdGhlcmUgaXMgYSBzcGVjaWFsIGZpZWxkZGVmaW5pdGlvbiAiRmllbGRncm91cCBzdGFydCIuIFdpdGggdGhpcyBvcHRpb24geW91IGNhbiBjcmVhdGUgYSBjb2xsYXBzaWJsZSBncm91cCBvZiBmaWVsZHMuPGJyIC8+CgkJQWZ0ZXIgY3JlYXRpbmcgdGhlICJGaWVsZGdyb3VwIHN0YXJ0IiwgYWxzbyBhICJGaWVsZGdyb3VwIGVuZCIgd2l0aCB0aGUgc2FtZSBuYW1lIHdpbGwgYmUgYWRkZWQgYXV0b21hdGljYWxseS4gRHJhZyAmYW1wOyBkcm9wIGZpZWxkcyBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQgdG8gcHV0IHRoZW0gaW4gdGhlIGdyb3VwLjwvcD4KCTxiciAvPgoKCjwvZGl2PiA8IS0tIEVuZFRhYiAtLT48ZGl2IGlkPSJzdGFydF9jIj4KCTxwPkdvIHRvIHRoZSBDdXN0b20gR2xvYmFsIFNldHRpbmdzIG1vZHVsZSBhZG1pbiAoYnkgZGVmYXVsdCB1bmRlciBtZW51ICdFeHRlbnNpb25zJykgYW5kIGRlZmluZSBmaWVsZHMgaW4gdGhlIHRhYiAnRmllbGQgRGVmaW5pdGlvbnMnLjwvcD4KCTxwPkdpdmUgeW91ciBmaWVsZCBhIG5hbWUsIGNob29zZSBhIHR5cGUgYW5kIGZpbGwgaW4gdGhlIHJlcXVlc3RlZCBwYXJhbWV0ZXJzLiBUaGUgaGVscCB0ZXh0IGNhbiBnaXZlIHlvdXIgdXNlcnMgc29tZSBjb250ZXh0LCBpdCBpcyBhbGxvd2VkIHRvIHVzZSBIVE1MIGNvZGUuPC9wPgoJPGJyIC8+Cgk8cD5JbiB0aGUgdGVtcGxhdGVzIG9yIHBhZ2VzIG9mIHlvdXIgd2Vic2l0ZSB5b3Ugd2lsbCBub3cgYXV0b21hdGljYWxseSBoYXZlIHRob3NlIHNtYXJ0eSB2YXJpYWJsZXMgYXZhaWxhYmxlLjwvcD4KCTxwPlRoZSBleGFjdCB3YXkgdG8gY2FsbCBlYWNoIHZhcmlhYmxlIGlzIHNob3duIGluIHRoZSAnRmllbGQgRGVmaW5pdGlvbnMnIHRhYi48YnIgLz5Zb3UgY2FuIGFsc28gY2hlY2sgd2hpY2ggdmFyaWFibGVzIGFuZCB2YWx1ZXMgYXJlIGF2YWlsYWJsZSBieSBwbGFjaW5nIDxiPntDdXN0b21HUyBzaG93dmFycz0xfTwvYj4gaW4gdGhlIGNvbnRlbnQgZmllbGQgb2YgYSBwYWdlLjwvcD4KCTxiciAvPgoJPHA+PGI+Tm90ZTo8L2I+IGluIHByZXZpb3VzIHZlcnNpb25zIG9mIHRoaXMgbW9kdWxlLCB5b3UgbmVlZGVkIHRvIHB1dCB0aGUgdGFnIHtDdXN0b21HU30gaW4geW91ciB0ZW1wbGF0ZShzKS4gVGhpcyBpcyBub3QgbmVlZGVkIGFueW1vcmUuIFdoZW4geW91IHVwZ3JhZGUgZnJvbSBhIHZlcnNpb24gcHJpb3IgdG8gMi4yLCB5b3Ugc2hvdWxkIGRlbGV0ZSB0aGUge0N1c3RvbUdTfSB0YWcgZnJvbSB5b3VyIHRlbXBsYXRlcywgYWx0aG91Z2ggaXQgd29uJ3QgZG8gYW55IGhhcm0gaWYgeW91IGxlYXZlIGl0IHRoZXJlLjwvcD4KCTxiciAvPgoJPGg0Pk9yZ2FuaXppbmcgZmllbGRzPC9oND4KCTxwPldoZW4geW91IGhhdmUgbWFueSBmaWVsZGRlZmluaXRpb25zLCB5b3UgY2FuIG9yZ2FuaXplIHRoZW0gYnkgY3JlYXRpbmcgY3VzdG9tIHRhYnMuPC9wPgoJPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB0byBvbmUgb3IgbW9yZSB0YWJzLCB3aGlsZSBlZGl0aW5nIHRoZSBmaWVsZGRlZmluaXRpb24uIEEgbW9yZSBlYXN5IHdheSBpcyB0byBzZWxlY3QgYSB0YWIgaW4gdGhlIGRyb3Bkb3duIGF0IHRoZSB0b3Agb2YgdGhlIGZpZWxkZGVmaW5pdGlvbnNsaXN0IGFuZCB0aGVuIHRvZ2dsZSB0aGUgVi1tYXJrcy4gQ2hhbmdlcyBhcmUgaW1tZWRpYXRlbHkgc2F2ZWQuPGJyIC8+VGhlIHRhYi1kcm9wZG93biB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGF0IHRoZSB0b3Agb2YgdGhlIGZpZWxkZGVmaW5pdGlvbnNsaXN0IHdoZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgY3VzdG9tIHRhYnMgeW91IGhhdmUgcGVybWlzc2lvbnMgb24uPC9wPgoJPGJyIC8+Cgk8cD5UaGUgc29ydG9yZGVyIG9mIGZpZWxkZGVmaW5pdGlvbnMgYW5kIGN1c3RvbSB0YWJzIGNhbiBiZSBjaGFuZ2VkIGJ5IGRyYWdnaW5nICZhbXA7IGRyb3BwaW5nIHRoZSByb3dzIGluIHRoZWlyIGxpc3QuIFRoZSBuZXcgc29ydG9yZGVyIHdpbGwgYmUgc2F2ZWQgaW1tZWRpYXRlbHkgb24gZHJvcC48L3A+Cgk8YnIgLz4KCgo8L2Rpdj4gPCEtLSBFbmRUYWIgLS0+PGRpdiBpZD0icGVybWlzc2lvbnNfYyI+Cgk8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aHJlZSBkaWZmZXJlbnQgbGV2ZWxzIG9mIHBlcm1pc3Npb25zOiBvbiBhIG1vZHVsZSBsZXZlbCwgb24gYSB0YWIgbGV2ZWwgYW5kIG9uIGEgZmllbGQgbGV2ZWwuPC9wPgoJPGg0Pk1vZHVsZSBsZXZlbDwvaDQ+Cgk8cD5Gb3Igc2V0dGluZyBtb2R1bGUgcGVybWlzc2lvbnMsIGdvIHRvIG1lbnUgPGk+VXNlcnMgJiBHcm91cHMgwrsgR3JvdXAgUGVybWlzc2lvbnM8L2k+OjwvcD4KCTx1bD4KCQk8bGk+PGI+Q3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZTwvYj48YnIgLz4KCQkJQSBwZXJtaXNzaW9uIGZvciBlZGl0b3JzLiBJdCB3aWxsIG9ubHkgc2hvdyB0aGUgKGN1c3RvbSkgdGFicyBmb3IgY2hhbmdpbmcgZmllbGR2YWx1ZXMgaW4gdGhlIG1vZHVsZSBhZG1pbiBwYWdlLjwvbGk+CgkJPGxpPjxiPkN1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2U8L2I+PGJyIC8+CgkJCUEgcGVybWlzc2lvbiBmb3IgYWRtaW5pc3RyYXRvcnMuIEl0IHdpbGwgc2hvdyBleHRyYSB0YWJzIGZvciBjcmVhdGluZy9lZGl0aW5nIGZpZWxkZGVmaW5pdGlvbnMsIHRhYnMgYW5kIG9wdGlvbnMuPC9saT4KCTwvdWw+Cgk8aDQ+VGFiIGxldmVsPC9oND4KCTxwPldoZW4gY3JlYXRpbmcgb3IgZWRpdGluZyBhIGN1c3RvbSB0YWIsIHNlbGVjdCBvbmUgb3IgbW9yZSBncm91cHMgaW4gdGhlIDxiPkdyb3VwIFBlcm1pc3Npb25zPC9iPiBkcm9wZG93biBsaXN0ICh3aXRoIGN0cmwpLiBPbmx5IHVzZXJzIHdobyBiZWxvbmcgdG8gdGhlIHNlbGVjdGVkIGdyb3VwcyB3aWxsIGJlIGFibGUgdG8gc2VlIHRoZSB0YWIgaW4gdGhlIG1vZHVsZSBhZG1pbi4gSWYgbm8gZ3JvdXAgaXMgc2VsZWN0ZWQsIHRoZSB0YWIgd2lsbCBiZSB2aXNpYmxlIGZvciBhbGwgZ3JvdXBzLiA8YnIgLz5UYWJzIHdpbGwgbmV2ZXIgYmUgaGlkZGVuIGZvciBhZG1pbiB1c2Vycy48L3A+Cgk8aDQ+RmllbGQgbGV2ZWw8L2g0PgoJPHA+V2hlbiBjcmVhdGluZyBvciBlZGl0aW5nIGEgZmllbGRkZWZpbml0aW9uLCBzZWxlY3Qgb25lIG9yIG1vcmUgZ3JvdXBzIGluIHRoZSA8Yj5Hcm91cCBQZXJtaXNzaW9uczwvYj4gZHJvcGRvd24gbGlzdCAod2l0aCBjdHJsKS4gT25seSB1c2VycyB3aG8gYmVsb25nIHRvIHRoZSBzZWxlY3RlZCBncm91cHMgd2lsbCBiZSBhYmxlIHRvIHNlZSBhbmQgY2hhbmdlIHRoZSBmaWVsZHZhbHVlIGFzc2lnbmVkIHRhYihzKS4gSWYgbm8gZ3JvdXAgaXMgc2VsZWN0ZWQsIHRoZSBmaWVsZCB3aWxsIGJlIHZpc2libGUgZm9yIGFsbCBncm91cHMuPC9wPgoJPHA+Tm90ZSB0aGF0IGEgdXNlciB3aWxsIG5vdCBiZSBhYmxlIHRvIHNlZSBhIGZpZWxkIHdoZW4gdGhhdCBmaWVsZCB3YXMgYXNzaWduZWQgb25seSB0byB0YWIocykgZm9yIHdoaWNoIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMuPC9wPgoJPHA+RmllbGRzIHdpbGwgbmV2ZXIgYmUgaGlkZGVuIGZvciBhZG1pbiB1c2Vycy48L3A+Cgk8YnIgLz4KCgo8L2Rpdj4gPCEtLSBFbmRUYWIgLS0+PGRpdiBpZD0iZXhhbXBsZXNfYyI+Cgk8aDM+Q0hFQ0tCT1g8L2gzPgoJPGg0PkNoYW5nZSBmcm9udGVuZCB0aGVtZTwvaDQ+Cgk8cD5EZWZpbmUgYSBjaGVja2JveCAnQ2hyaXN0bWFzIG5vdycgd2hpY2ggd2lsbCBhY3RpdmF0ZSBhIHNwZWNpYWwgdGhlbWUgb24gdGhlIGZyb250ZW5kIHdoZW4gY2hlY2tlZDwvcD4KCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4KCTxjb2RlPgoJCXtpZiAkQ3VzdG9tR1MuQ2hyaXN0bWFzX25vdyA9PSAnMSd9PGJyIC8+CgkJJm5ic3A7Jm5ic3A7Jm5ic3A7eyogU2hvdyBDaHJpc3RtYXMgZnJvbnRlbmQgdGhlbWUgKn08YnIgLz4KCQl7ZWxzZX08YnIgLz4KCQkmbmJzcDsmbmJzcDsmbmJzcDt7KiBTaG93IGRlZmF1bHQgZnJvbnRlbmQgdGhlbWUgKn08YnIgLz4KCQl7L2lmfQoJPC9jb2RlPgoJPC9wPgoJPGJyIC8+CgkJCgk8aDQ+TWFnaWMgd2l0aCBhIGNoZWNrYm94PC9oND4KCTxwPkRlZmluZSBhIGNoZWNrYm94ICdNeUNoZWNrYm94JyB3aGljaCB3aWxsIGRvIHNvbWUgbWFnaWMgc3R1ZmYgd2hlbiB1bmNoZWNrZWQ8L3A+Cgk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+Cgk8Y29kZT4KCQl7aWYgJEN1c3RvbUdTLk15Q2hlY2tib3ggIT0gJzEnfTxiciAvPgoJCSZuYnNwOyZuYnNwOyZuYnNwO3sqIERvIHNvbWUgbWFnaWMgc3R1ZmYgKn08YnIgLz4KCQl7L2lmfQoJPC9jb2RlPgoJPC9wPgoJPGJyIC8+CgkJCgk8aDM+REFURSBhbmQgVElNRVBJQ0tFUjwvaDM+Cgk8aDQ+RGlzcGxheSBwYWdlIGNvbnRlbnQgb25seSBpbiBhIHNwZWNpZmljIHRpbWVmcmFtZTwvaDQ+Cgk8cD5EZWZpbmUgdHdvIHRpbWVwaWNrZXIgZmllbGRzICdzdGFydHRpbWUnIGFuZCAnZW5kdGltZScuIFJlcGxhY2UgdGhlIHtjb250ZW50fSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlIHdpdGggdGhpcyBjb2RlIGFuZCB0aGUgbm9ybWFsIHBhZ2UgY29udGVudCBpcyBvbmx5IHZpc2libGUgd2hlbiB0aGUgY3VycmVudCB0aW1lIGlzIGJldHdlZW4gdGhlIHN0YXJ0dGltZSBhbmQgZW5kdGltZS48L3A+Cgk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+Cgk8Y29kZT4KCQl7aWYgJHNtYXJ0eS5ub3d8ZGF0ZV9mb3JtYXQ6JyVIOiVNJyA+PSAkQ3VzdG9tR1Muc3RhcnR0aW1lICYmICRzbWFydHkubm93fGRhdGVfZm9ybWF0OiclSDolTScgPD0gJEN1c3RvbUdTLmVuZHRpbWV9PGJyIC8+CgkJJm5ic3A7Jm5ic3A7Jm5ic3A7e2NvbnRlbnR9PGJyIC8+CgkJe2Vsc2V9PGJyIC8+CgkJJm5ic3A7Jm5ic3A7Jm5ic3A7e2NvbnRlbnQgYmxvY2s9IlNpdGVDbG9zZWRDb250ZW50In08YnIgLz4KCQl7L2lmfTxiciAvPgoJPC9jb2RlPgoJPC9wPgoJPGJyIC8+CgkJCgk8aDM+UFVMTERPV048L2gzPgoJPGg0PlB1bGxkb3duIGZvciBGZWF0dXJlZCBOZXdzYXJ0aWNsZTwvaDQ+Cgk8cD5EZWZpbmUgYSBwdWxsZG93biBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSB0aXRsZXMgb2YgYXJ0aWNsZXMgZnJvbSB0aGUgTmV3cyBtb2R1bGUsIHNvIHRoZSB1c2VyIGNhbiBjaG9vc2UgYSBmZWF0dXJlZCBhcnRpY2xlIHdoaWNoIGNhbiBiZSBkaXNwbGF5ZWQgb24gYSBzcGVjaWFsIHNlY3Rpb24gb24gdGhlIHNpdGUuPC9wPgoKCTxwPkZpcnN0IGNyZWF0ZSBhIG5ldyBzdW1tYXJ5dGVtcGxhdGUgaW4gdGhlIE5ld3MgbW9kdWxlLCBuYW1lZCAiQ3VzdG9tR1NfcHVsbGRvd24iIHdpdGggdGhlIGZvbGxvd2luZyBjb250ZW50OjwvcD4KCgk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+CgkJPGNvZGU+e2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX08YnIgLz4KCQkmbmJzcDsmbmJzcDsmbmJzcDt7JGVudHJ5LSZndDtpZH18eyRlbnRyeS0mZ3Q7dGl0bGV9PGJyIC8+CgkJey9mb3JlYWNofTwvY29kZT4KCTwvcD4KCTxiciAvPgoJPHA+VGhlbiBkZWZpbmUgYSBuZXcgZmllbGQgaW4gdGhlIEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MgbW9kdWxlPC9wPgoKCTxwPjxiPk5hbWU6PC9iPiBGZWF0dXJlZCBOZXdzPGJyIC8+Cgk8Yj5UeXBlOjwvYj4gUHVsbGRvd248YnIgLz4KCTxiPlByb3BlcnRpZXM6PC9iPiB7Y21zX21vZHVsZSBtb2R1bGU9J05ld3MnIHN1bW1hcnl0ZW1wbGF0ZT0nQ3VzdG9tR1NfcHVsbGRvd24nfTxiciAvPgoJTm90ZSB0aGF0IHNob3J0IG1vZHVsZSB0YWdzIHdvbid0IHdvcmsgaW4gdGhlIGJhY2stZW5kLCBzbyB5b3UgaGF2ZSB0byB1c2UgdGhlIGNtc19tb2R1bGUgdGFnLjwvcD4KCTxiciAvPgoJPHA+RmluYWxseSBwdXQgdGhpcyB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlIHRvIGRpc3BsYXkgdGhlIGZlYXR1cmVkIG5ld3NhcnRpY2xlOjwvcD4KCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4KCTxjb2RlPntuZXdzIGFjdGlvbj0nZGV0YWlsJyBhcnRpY2xlaWQ9JEN1c3RvbUdTLkZlYXR1cmVkX05ld3N9PC9jb2RlPgoJPC9wPgoJPGJyIC8+CgkJCgk8aDM+UkFESU9CVVRUT05HUk9VUDwvaDM+Cgk8aDQ+Q2hhbmdlIGZyb250ZW5kIGNvbG9yPC9oND4KCgk8cD5DcmVhdGUgYSBSYWRpb2J1dHRvbiBncm91cCBuYW1lZCAidGV4dGNvbG9yIjwvcD4KCTxwPlRoZSBwcm9wZXJ0aWVzIHZhbHVlIGFyZTo8cD4KCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4KCQkjZmYwMDAwfHJlZDxiciAvPgoJCSMwMGZ8Ymx1ZTxiciAvPgoJCSMxMDEwMTB8YWxtb3N0IGJsYWNrPC9wPgoJPGJyIC8+Cgk8cD5BbHNvIGNsaWNrIHRoZSBjaGVja2JveCAnQ2xlYXIgc3R5bGVzaGVldGNhY2hlJy4gVGhpcyB3aWxsIGF1dG9tYXRpY2FsbHkgcmVuZXcgdGhlIHN0eWxlc2hlZXRzLjwvcD4KCTxiciAvPgoJPHA+VG8gY2hhbmdlIGZvciBleGFtcGxlIHRoZSBjb2xvciBvZiB0aGUgcC10ZXh0IGFkZDo8L3A+Cgk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+Cgk8Y29kZT5jb2xvcjogW1skQ3VzdG9tR1MudGV4dGNvbG9yXV07PC9jb2RlPgoJPC9wPgoJPGJyIC8+Cgk8cD5PciBkaXJlY3RseSBpbmNsdWRlZCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGU6PHA+Cgk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+Cgk8Y29kZT4mbHQ7cCBzdHlsZT0iY29sb3I6IHskQ3VzdG9tR1MudGV4dGNvbG9yfTsiJmd0O0xvcmVtIElwc3VtJmx0Oy9wJmd0OzwvY29kZT4KCTwvcD4KCTxiciAvPgoKCTxoMz5URVhURklFTEQ8L2gzPgoJPGg0PlNob3cgY3VycmVudCB0cmFpbmVyPC9oND4KCTxwPkRlZmluZSBhIHRleHRmaWVsZCBvciBwdWxsZG93biBmaWVsZCAnVHJhaW5lcicgd2hpY2ggd2lsbCBjb250YWluIHRoZSBjdXJyZW50IHRyYWluZXJzIG5hbWUuPC9wPgoJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPgoJPGNvZGU+CgkJJmx0O3AmZ3Q7VGhpcyB3ZWVrcyB0cmFpbmVycyBuYW1lIGlzOiB7JEN1c3RvbUdTLlRyYWluZXJ9Jmx0Oy9wJmd0OwoJPC9jb2RlPgoJPC9wPgoJPGJyIC8+CgoKPC9kaXY+IDwhLS0gRW5kVGFiIC0tPjxkaXYgaWQ9InRyb3VibGVzaG9vdGluZ19jIj4KCTxoND5DaGVjayB0ZW1wbGF0ZSB2YXJpYWJsZXM8L2g0PgoJPHA+WW91IGNhbiBjaGVjayB3aGljaCB2YXJpYWJsZXMgYW5kIHZhbHVlcyBhcmUgYXZhaWxhYmxlIGJ5IHBsYWNpbmcgPGI+e0N1c3RvbUdTIHNob3d2YXJzPTF9PC9iPiBpbiB0aGUgY29udGVudCBmaWVsZCBvZiBhIHBhZ2UuPC9wPgoJPGJyIC8+CgkJCgk8aDQ+U21hcnR5IGVycm9yPC9oND4KCTxwPjxiPkVycm9yOjwvYj4gU21hcnR5IGVycm9yOiBbaW4gdGVtcG9yYXJ5IHRlbXBsYXRlIGxpbmUgNF06IFtwbHVnaW5dIHVua25vd24gdGFnLi4uPC9wPgoJPHA+PGI+U29sdXRpb246PC9iPiBZb3UgcHJvYmFibHkgaGF2ZSBlbnRlcmVkIGN1cmx5IGJyYWNrZXQgJiMxMjM7ICYjMTI1OyBzaWducyBpbiB0aGUgcHJvcGVydGllcyBmaWVsZCBvZiBhIHB1bGxkb3duIG9yIHJhZGlvYnV0dG9uIGZpZWxkZGVmaW5pdGlvbi4gVGhlc2UgYXJlIGludGVycHJldGVkIGJ5IFNtYXJ0eS48L3A+Cgk8cD5EZWxldGUgdGhlbSwgdXNlIDxjb2RlPiYjMTIzO2Ntc19tb2R1bGUmIzEyNTs8L2NvZGU+IHRhZyBpbiBzdGVhZCBvZiB0aGUgc2hvcnQgbW9kdWxlIGNhbGwsIG9yIHVzZSA8Y29kZT4mIzEyMztsaXRlcmFsJiMxMjU7PC9jb2RlPiB0YWdzLjwvcD4KCTxiciAvPgoJCQoJPGg0PkNhbid0IGNob29zZSBHQkZpbGVQaWNrZXIgYW55bW9yZSBhZnRlciB1cGdyYWRpbmcgdG8gQ01TTVMgMi54PC9oND4KCTxwPjxiPkVycm9yOjwvYj4gR0JGaWxlUGlja2VyIChOb3QgaW5zdGFsbGVkKTwvcD4KCTxwPjxiPlNvbHV0aW9uOjwvYj4gSW5zdGFsbCBtb2R1bGUgSk1GaWxlUGlja2VyIGFuZCB0aGVuIGNoYW5nZSB0aGUgdHlwZSBvZiB0aGUgZmllbGRkZWZpbml0aW9uIGFjY29yZGluZ2x5LiBUaGUgZWFybGllciBzZWxlY3RlZCBpbWFnZSB3aWxsIGJlIHByZXNlcnZlZC48L3A+Cgk8YnIgLz4KCQkKCTxoND50bXAvY2FjaGUvZGVidWcubG9nIGdldHMgZmxvb2RlZCB3aXRoIEN1c3RvbUdTIGVycm9yczwvaDQ+Cgk8cD48Yj5FcnJvcjo8L2I+IFJlZHVuZGFudCB7Q3VzdG9tR1N9IHRhZyBmb3VuZC48L3A+Cgk8cD48Yj5Tb2x1dGlvbjo8L2I+IEluIHByZXZpb3VzIHZlcnNpb25zIG9mIHRoaXMgbW9kdWxlLCB5b3UgbmVlZGVkIHRvIHB1dCB0aGUgdGFnIHtDdXN0b21HU30gaW4geW91ciB0ZW1wbGF0ZShzKS4gVGhpcyBpcyBub3QgbmVlZGVkIGFueW1vcmUuIFdoZW4geW91IGhhdmUgCgl1cGdyYWRlZCBmcm9tIGEgdmVyc2lvbiBwcmlvciB0byAyLjIsIHlvdSBzaG91bGQgZGVsZXRlIHRoZSB7Q3VzdG9tR1N9IHRhZyBmcm9tIHlvdXIgdGVtcGxhdGVzLjwvcD4KCTxiciAvPgoJCQoJPGg0Pk90aGVyIEVycm9yczwvaDQ+Cgk8cD48Yj5FcnJvcjo8L2I+IE15IHByb2JsZW0gd2FzIG5vdCBkZXNjcmliZWQgaGVyZS48L3A+Cgk8cD48Yj5Tb2x1dGlvbjo8L2I+IFNldCBEZWJ1ZyB0byAndHJ1ZScgaW4gY29uZmlnLnBocCBhbmQgc2VlIGlmIGFueSBlcnJvciBtZXNzYWdlcyBhcHBlYXIuIExvb2sgYWxzbyBmb3IgZXJyb3IgbWVzc2FnZXMgaW4gdGhlIGh0bWwgc291cmNlY29kZS4gTWF5YmUgdGhlIGVycm9yIG1lc3NhZ2UgdGVsbHMgeW91IGVub3VnaCB0byBzb2x2ZSB0aGUgaXNzdWUgeW91cnNlbGYuIFNvbWVvbmUgZWxzZSBtYXkgaGF2ZSBlbmNvdW50ZXJlZCB0aGUgc2FtZSBwcm9ibGVtIGJlZm9yZSB5b3UsIHNvIHlvdSBjb3VsZCBhbHNvIHNlYXJjaCB0aGUgQ01TTVMgZm9ydW0gZm9yIHBvc3NpYmxlIHNvbHV0aW9ucy4gSWYgeW91IGhhdmVuJ3QgZm91bmQgYW55IHJlbGF0ZWQgdG9waWNzLCBwbGVhc2UgZmVlbCBmcmVlIHRvIG9wZW4gYSBuZXcgZm9ydW10b3BpYy48L3A+Cgk8YnIgLz4KCjwvZGl2PiA8IS0tIEVuZFRhYiAtLT48L2Rpdj4gPCEtLSBFbmRUYWJDb250ZW50IC0tPgoKCgk8YnIgLz4KCTxiciAvPgoJPHA+SXQgaXMgd2l0aCBncmVhdCBzYWRuZXNzIHdlIGFubm91bmNlIHRoYXQgbG9uZyB0aW1lIERldiBUZWFtIG1lbWJlciBhbmQgZ3JlYXQgZnJpZW5kIHRvIENNUyBNYWRlIFNpbXBsZSwgPGEgaHJlZj0iaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcvMjAyMi8wNS9Sb2xmLVRqYXNzZW5zIiB0YXJnZXQ9Il9ibGFuayI+Um9sZiBUamFzc2VuczwvYT4gcGFzc2VkIGF3YXkgdW5leHBlY3RlZGx5IG9uIHRoZSAzMHRoIG9mIE1heSAyMDIyLiBUaGlzIG1vZHVsZSBpcyBhIGpvaW50IGVmZm9ydCBvZiBSb2xmIGFuZCBKb3MuIFJvbGYgd2lsbCBiZSBncmVhdGx5IG1pc3NlZC48L3A+Cgk8YnIgLz4KCTxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgoJPHA+Q29weXJpZ2h0IMKpIDIwMTIgYW5kIGJleW9uZCwgUm9sZiBUamFzc2VucywgSm9zICZsdDs8YSBocmVmPSJtYWlsdG86am9zdmRAbGl2ZS5ubCI+am9zdmRAbGl2ZS5ubDwvYT4mZ3Q7LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+Cgk8YnIgLz4KCTxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiIHRhcmdldD0iX2JsYW5rIj5HTlUgUHVibGljIExpY2Vuc2UgdjM8L2E+LjxiciAvPgoJPGI+SG93ZXZlcjwvYj4sIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiBZb3UgbWF5IG9ubHkgdXNlIHRoaXMgc29mdHdhcmUgd2hlbiB0aGVyZSBpcyBhIGNsZWFyIGFuZCBvYnZpb3VzIGluZGljYXRpb24gaW4gdGhlIGFkbWluIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBTaW1wbGUhPC9wPgoJPGJyIC8+Cgo8aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3d2YXJzPSIxIiAtIFNldCB0aGlzIHBhcmFtZXRlciB0byBzaG93IGFsbCBhdmFpbGFibGUgdmFyaWFibGVzIGFuZCB0aGVpciB2YWx1ZXMuIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBSb2xmIFRqYXNzZW5zLCBKb3MgJmx0O2pvc3ZkIGF0IGxpdmUgZG90IG5sJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDMuNTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPjxzdHJvbmc+VmVyc2lvbiAzLjU8L3N0cm9uZz4gLSA2IEp1bHkgMjAyMwoJPHVsPgoJPGxpPkJhdGNoIG9wZXJhdGlvbnMgKG1vdmUgdG8gdG9wL2JvdHRvbS9ncm91cCwgZGVsZXRlKSBvbiBmaWVsZCBkZWZpbml0aW9ucyAoRlIgIzk4OTIgIzEwMjI0KTwvbGk+Cgk8bGk+QWxsb3dpbmcgSFRNTCBpbnNpZGUgdGhlIGhlbHAgdGV4dCAoRlIgIzExNjE2KTwvbGk+Cgk8bGk+QnVnICMxMjI5NDogZml4ZWQgLSBSZW5ldyBzdHlsZXNoZWV0IGNhY2hlIG5vdCB3b3JraW5nPC9saT4KCTwvdWw+CjwvbGk+CjxsaT48c3Ryb25nPlZlcnNpb24gMy40PC9zdHJvbmc+IC0gMTggRmVicnVhcnkgMjAyMQoJPHVsPgoJPGxpPk1pbm9yIGZpeCB0byBBZG1pbiBTZWN0aW9uIHNlbGVjdG9yPC9saT4KCTxsaT5Nb3ZlIGhlbHAgYW5kIGNoYW5nZWxvZyBmaWxlcyB0byB0ZW1wbGF0ZXM8L2xpPgoJPC91bD4KPC9saT4KPGxpPjxzdHJvbmc+VmVyc2lvbiAzLjM8L3N0cm9uZz4gLSA2IE9jdG9iZXIgMjAxOQoJPHVsPgoJPGxpPkZpeGVzIGZvciBDTVNNUyAyLjM8L2xpPgoJPGxpPlVwZGF0ZWQgVGFibGVEbkQgcGx1Z2luIDAuOS4xPC9saT4KCTxsaT5Db2RlIGNsZWFuIHVwPC9saT4KCTxsaT5CdWcgIzExNzYwOiBmaXhlZCAtIERlbGV0aW5nIEZpZWxkZ3JvdXAgb25seSBkZWxldGVzIEZpZWxkZ3JvdXAgU3RhcnQ8L2xpPgoJPC91bD4KPC9saT4KPGxpPjxzdHJvbmc+VmVyc2lvbiAzLjI8L3N0cm9uZz4gLSA5IE9jdG9iZXIgMjAxNwoJPHVsPgoJPGxpPkV4cG9ydC9pbXBvcnQgc2V0dGluZ3MgdmlhIFhNTCBmaWxlIChGUiAjODM0MSkgU3BvbnNvcmVkIGJ5IFZpc2lvbnBhcms8L2xpPgoJPGxpPkZpeGVkOiBTaG93IHRhYmNvbnRlbnQgb2YgVGFicyB3aGVuIHRoZXJlIGFyZSBubyBmaWVsZCBkZWZpbml0aW9uczwvbGk+Cgk8bGk+Rml4ZWQ6IERlbGV0ZSB0YWJmaWVsZCByZWZlcmVuY2UgYWZ0ZXIgYSBmaWVsZCBkZWZpbml0aW9uIGhhcyBiZWVuIGRlbGV0ZWQ8L2xpPgoJPGxpPkZpeGVkOiBEcm9wIHRhYiByZWxhdGVkIHRhYmxlcyBmcm9tIHRoZSBkYXRhYmFzZSB3aXRoIHVuaW5zdGFsbCBhY3Rpb248L2xpPgoJPC91bD4KPC9saT4KPGxpPjxzdHJvbmc+VmVyc2lvbiAzLjE8L3N0cm9uZz4gLSAyMSBKdWx5IDIwMTcKCTx1bD4KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ0ZpbGVQaWNrZXInPC9saT4KCTwvdWw+CjwvbGk+CjxsaT48c3Ryb25nPlZlcnNpb24gMy4wPC9zdHJvbmc+IC0gMTUgT2N0b2JlciAyMDE2Cgk8dWw+Cgk8bGk+QWRkZWQgZmllbGR0eXBlICdQYWdlIHNlbGVjdG9yJyAoRlIgIzEwMDc3KTwvbGk+Cgk8bGk+R3JvdXBpbmcgb2Ygc2V0dGluZ3MgYnkgY3VzdG9tIHRhYnMgKEZSICMxMDE3Nik8L2xpPgoJPGxpPkNsaWNraW5nIG9uIGZpZWxkdHlwZSBidXR0b24gZmlyZXMgZXZlbnQgJ09uU2V0dGluZ0NoYW5nZSc8L2xpPgoJPC91bD4KPC9saT4KPGxpPjxzdHJvbmc+VmVyc2lvbiAyLjI8L3N0cm9uZz4gLSAxMyBNYXJjaCAyMDE2Cgk8dWw+Cgk8bGk+VGFnIHtDdXN0b21HU30gbm8gbG9uZ2VyIG5lZWRlZCwgbW9kdWxlIGdldHMgYXV0b21hdGljYWxseSBpbml0aWFsaXplZDwvbGk+Cgk8bGk+QWRkZWQgZmllbGR0eXBlICdKTUZpbGVQaWNrZXInPC9saT4KCTxsaT5OZXcgaWNvbjwvbGk+Cgk8bGk+VXNlIGNvcmUgY21zX21haWxlciBtZXRob2Q8L2xpPgoJPGxpPk1pbmltdW0gcmVxdWlyZWQgQ01TbXMgdmVyc2lvbiBzZXQgdG8gMS4xMjwvbGk+Cgk8bGk+QnVnICMxMDgzODogZml4ZWQgLSBEb2Vzbid0IG91dHB1dCBhbnl0aGluZyBpbiAyLjEuMTwvbGk+Cgk8bGk+QnVnICMxMDkzMjogZml4ZWQgLSBQZXJtaXNzaW9ucyBub3QgY2hlY2tlZCBwcm9wZXJseTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+PHN0cm9uZz5WZXJzaW9uIDIuMTwvc3Ryb25nPiAtIDEwIEp1bHkgMjAxNAoJPHVsPgoJPGxpPkJ1ZyAjOTk4OTogZml4ZWQgLSBIaWRkZW4gZmllbGQgdmFsdWVzIGFyZSByZXNldCB0byAiMCI8L2xpPgoJPC91bD4KPC9saT4KPGxpPjxzdHJvbmc+VmVyc2lvbiAyLjA8L3N0cm9uZz4gLSAyMSBNYXkgMjAxNAoJPHVsPgoJPGxpPkZpeGVzIGZvciBDb3JlIDIuMDwvbGk+Cgk8bGk+TWluaW11bSByZXF1aXJlZCBDTVNtcyB2ZXJzaW9uIHNldCB0byAxLjExPC9saT4KCTwvdWw+CjwvbGk+CjxsaT48c3Ryb25nPlZlcnNpb24gMS42PC9zdHJvbmc+IC0gMTkgTWF5IDIwMTQKCTx1bD4KCTxsaT5NaW5vciBzdHlsZSB1cGRhdGUgZm9yIGNvbGxhcHNpYmxlIGZpZWxkc2V0IChGUiAjOTkzOSk8L2xpPgoJPGxpPkJ1ZyAjOTk4OTogZml4ZWQgLSBIaWRkZW4gZmllbGQgdmFsdWVzIGFyZSByZXNldCB0byAiMCI8L2xpPgoJPC91bD4KPC9saT4KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjU8L3N0cm9uZz4gLSA1IERlY2VtYmVyIDIwMTMKCTx1bD4KCTxsaT5Qb3NzaWJpbGl0eSB0byBhZGQgYWRtaW4gcGFnZSB1bmRlciBTaXRlIEFkbWluIHNlY3Rpb24uIEVkaXRvcnMgZG9uJ3QgaGF2ZSBhY2Nlc3MhPC9saT4KCTxsaT5BZGRlZCBmaWVsZHR5cGUgJ0NvbG9yUGlja2VyJyAodGhhbmtzIHRvIEppc3NleSk8L2xpPgoJPGxpPkFkZGVkIEZyZW5jaCB0cmFuc2xhdGlvbiAodGhhbmtzIHRvIEppc3NleSk8L2xpPgoJPGxpPkFkZGVkIGNvbGxhcHNpYmxlIGZpZWxkZ3JvdXBzIChGUiAjODE2NiwgIzg1MTcgYW5kICM5NDY1KTwvbGk+Cgk8bGk+QWRkZWQgdGhlIGFiaWxpdHkgdG8gYXNzaWduIGVhY2ggZmllbGQgdG8gJ2FkbWluJyBvciAnZWRpdG9yJyAoRlIgIzg1MTUpPC9saT4KCTwvdWw+CjwvbGk+CjxsaT48c3Ryb25nPlZlcnNpb24gMS40PC9zdHJvbmc+IC0gOSBNYXkgMjAxMwoJPHVsPgoJPGxpPkRyYWcgYW5kIGRyb3AgZmllbGQgb3JkZXJpbmcgKEZSICM4NTE2KTwvbGk+Cgk8bGk+QWRkZWQgZmllbGR0eXBlICdHQkZpbGVQaWNrZXInIChGUiAjODI4NiBhbmQgIzg2MzQpPC9saT4KCTxsaT5JbmNsdWRlZCBXaWtpIGhlbHB0ZXh0IGFuZCBleGFtcGxlcyBpbiB0aGUgbW9kdWxlIGhlbHB0ZXh0PC9saT4KCTxsaT5CdWcgIzg2MzM6IGZpeGVkIC0gRG9lcyBub3QgZXNjYXBlIGhlbHAgdGV4dDwvbGk+Cgk8bGk+QnVnICM5MDE5OiBmaXhlZCAtIFN1Ym1pdCBub3Qgd29ya2luZyBmb3IgdGhvc2Ugd2l0aG91dCAnTWFuYWdlJyBwZXJtaXNzaW9uczwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuMzwvc3Ryb25nPiAtIDE0IEF1Z3VzdCAyMDEyCgk8dWw+Cgk8bGk+UmVtb3ZlZCBDbGVhciBDYWNoZSBkdWUgdG8gRm9yZ2UgcmVndWxhdGlvbnM8L2xpPgoJPGxpPkJ1ZyAjODAwOTogZml4ZWQgLSBJc3N1ZSB3aXRoIHRleHQgYXJlYXMgd2l0aCBzbWFydHkgcGFyc2luZyBvbjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuMjwvc3Ryb25nPiAtIDIwIE1hcmNoIDIwMTIKCTx1bD4KCTxsaT5NaW5pbXVtIHJlcXVpcmVkIENNU21zIHZlcnNpb24gc2V0IHRvIDEuMTA8L2xpPgoJPGxpPkFkZCBHZXRBZG1pblNlY3Rpb24gc2V0dGluZyAoRlIgIzc2MTgpPC9saT4KCTxsaT5BZGRlZCBvcHRpb24gdG8gYXV0b21hdGljYWxseSBjbGVhciBjYWNoZSBhZnRlciBjaGFuZ2luZyBhIHNldHRpbmc8L2xpPgoJPGxpPkFkZGVkIGZpZWxkdHlwZSAnQnV0dG9uJzwvbGk+Cgk8bGk+U3VwcG9ydCBWYWx1ZXxPcHRpb25OYW1lIHBhaXJzIGFuZCBTbWFydHkgdGFncyBmb3IgcHVsbGRvd24gZmllbGRzIGFuZCByYWRpb2J1dHRvbnM8L2xpPgoJPGxpPkJ1ZyBmaXhlZDogRWRpdGluZyBhIGZpZWxkIGNoYW5nZXMgdGhlIGZpZWxkbmFtZTwvbGk+Cgk8bGk+QnVnIGZpeGVkOiBTZW5kRXZlbnQgb24gY2hhbmdpbmcgYSBjaGVja2JveCBzZXR0aW5nPC9saT4KCTwvdWw+CjwvbGk+CjxsaT48c3Ryb25nPlZlcnNpb24gMS4xPC9zdHJvbmc+IC0gMTkgRmVicnVhcnkgMjAxMgoJPHVsPgoJPGxpPkRlZmluZSB1bmxpbWl0ZWQgbnVtYmVyIG9mIGZpZWxkczwvbGk+Cgk8bGk+QWRkZWQgZmllbGR0eXBlcyB0ZXh0YXJlYSwgd3lzaXd5ZywgZGF0ZXRpbWVwaWNrZXIsIHB1bGxkb3duIHNlbGVjdCwgcmFkaW9idXR0b25zPC9saT4KCTxsaT5BZGRlZCBldmVudCBPblNldHRpbmdDaGFuZ2U8L2xpPgoJPC91bD4KPC9saT4KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjA8L3N0cm9uZz4gLSAyMSBKYW51YXJ5IDIwMTIKCTx1bD4KCTxsaT5Jbml0aWFsIG1vZHVsZSByZWxlYXNlPC9saT4KCTwvdWw+CjwvbGk+CjwvdWw+PGJyIC8+]]></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>/.DS_Store</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAAAAUJ1ZDEAABAAAAAIAAAAEAAAAAIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAQAABsAGEAdABlAHNidwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAHQAZQBtAHAAbABhAHQAZQBzYndzcGJsb2IAAADJYnBsaXN0MDDXAQIDBAUGBwgICAsIDQhdU2hvd1N0YXR1c0JhcltTaG93UGF0aGJhcltTaG93VG9vbGJhcltTaG93VGFiVmlld18QFENvbnRhaW5lclNob3dTaWRlYmFyXFdpbmRvd0JvdW5kc1tTaG93U2lkZWJhcgkJCQgJXxAYe3syOSwgMjIwfSwgezE0MzYsIDkxMH19CQgXJTE9SWBteXp7fH1+mQAAAAAAAAEBAAAAAAAAAA8AAAAAAAAAAAAAAAAAAACaAAAACQB0AGUAbQBwAGwAYQB0AGUAc3ZTcm5sb25nAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACAAAAABAAAAQAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAAAAAAEAABAAAAAAAQAAIAAAAAABAABAAAAAAAEAAIAAAAAAAQABAAAAAAABAAIAAAAAAAEABAAAAAAAAQAIAAAAAAABABAAAAAAAAEAIAAAAAAAAQBAAAAAAAABAIAAAAAAAAEBAAAAAAAAAQIAAAAAAAABBAAAAAAAAAEIAAAAAAAAARAAAAAAAAABIAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAEAsAAABFAAACCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBERTREIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAIAAAAGAAAAAAAAAAAQAAAIAAAAABAAABAAAAAAAAAAABAAAEAAAAAAIAAAgAAAAYAAAAAAAAAAABAAAgAAAAAAEAAEAAAAAAAQAAgAAAAAABAAEAAAAAAAEAAgAAAAAAAQAEAAAAAAABAAgAAAAAAAEAEAAAAAAAAQAgAAAAAAABAEAAAAAAAAEAgAAAAAAAAQEAAAAAAAABAgAAAAAAAAEEAAAAAAAAAQgAAAAAAAABEAAAAAAAAAEgAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggYW5kIGJleW9uZCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24NCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICggIWNtc21zKCkgKSBleGl0Ow0KDQovLyBQYXNzIHRoZSBmaWVsZHMgdG8gdGhlIHRlbXBsYXRlcw0KaWYgKCBpc3NldCgkcGFyYW1zWydzaG93dmFycyddKSApDQp7DQoJJGZpZWxkcyA9ICR0aGlzLT5HZXRTZXR0aW5ncygpOw0KCWZvcmVhY2ggKCAkZmllbGRzIGFzICRrZXk9PiR2YWx1ZSApDQoJew0KCQlpZiAoICFpc19udW1lcmljKCRrZXkpICkgZWNobyAneyRDdXN0b21HUy4nIC4gJGtleSAuICd9ID0gJyAuICR2YWx1ZSAuICc8YnIgLz4nOw0KCX0NCn0NCmVsc2UgDQp7DQoJLy8gUmVkdW5kYW50IHtDdXN0b21HU30gdGFnIGZvdW5kDQoJZGVidWdfdG9fbG9nKCdSZWR1bmRhbnQge0N1c3RvbUdTfSB0YWcgZm91bmQuIFNpbmNlIHJlbGVhc2UgMi4yIHRoaXMgdGFnIGlzIG5vIGxvbmdlciBuZWVkZWQuIFRoZSBtb2R1bGUgZ2V0cyBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemVkLiBZb3UgY2FuIHJlbW92ZSB0aGUgdGFnIGZyb20geW91ciB0ZW1wbGF0ZShzKS4nKTsNCn0NCg0KIw0KIyBFT0YNCiMNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggYW5kIGJleW9uZCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24NCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICggIWNtc21zKCkgKSBleGl0Ow0KDQppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkNCnsNCgllY2hvICR0aGlzLT5TaG93RXJyb3JzKGxhbmcoJ25lZWRwZXJtaXNzaW9udG8nLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScpKTsNCglyZXR1cm47DQp9DQoNCiRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7DQoNCi8qKg0KICogQ3JlYXRlIEFkbWluIHRhYnMNCiAqLyANCiANCiR0YWJzID0gJHRoaXMtPkdldFRhYnMoKTsNCiANCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOw0KCSRhY3RpdmVfdGFiID0gZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSA/ICcnIDogJHBhcmFtc1snYWN0aXZlX3RhYiddOw0KDQoJZm9yZWFjaCggJHRhYnMgYXMgJHRhYiApDQoJew0KCQllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3RhYicgLiAkdGFiWyd0YWJpZCddLCAkdGFiWyduYW1lJ10sICgkYWN0aXZlX3RhYiA9PSAndGFiJyAuICR0YWJbJ3RhYmlkJ10pP3RydWU6ZmFsc2UpOw0KCX0NCg0KCWlmICggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpICkNCgl7DQoJCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRkZWZzJywgJHRoaXMtPkxhbmcoInRpdGxlX2ZpZWxkZGVmcyIpLCAoJGFjdGl2ZV90YWIgPT0gJ2ZpZWxkZGVmcycpP3RydWU6ZmFsc2UpOw0KCQllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3RhYnMnLCAkdGhpcy0+TGFuZygidGl0bGVfdGFicyIpLCAoJGFjdGl2ZV90YWIgPT0gJ3RhYnMnKT90cnVlOmZhbHNlKTsNCgkJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdvcHRpb25zJywgbGFuZygib3B0aW9ucyIpLCAoJGFjdGl2ZV90YWIgPT0gJ29wdGlvbnMnKT90cnVlOmZhbHNlKTsNCgl9DQoNCmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsNCg0KDQplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsNCg0KCWlmICggZnVuY3Rpb25fZXhpc3RzKCdjbXNfYWRtaW5fY3VycmVudF9sYW5ndWFnZScpICkgc2V0bG9jYWxlKExDX1RJTUUsIGNtc19hZG1pbl9jdXJyZW50X2xhbmd1YWdlKCkpOyAvLyBmb3IgY21zbXMgMS4xMCBvbmx5DQoJZm9yICgkaSA9IDE7ICRpIDw9IDEyOyAkaSsrKQ0KCXsNCgkJJHRpbWVzdGFtcD1ta3RpbWUoMSwxLDEsJGksMSwyMDAwKTsNCgkJJG1vbnRoc1tdID0gaHRtbGVudGl0aWVzKHN0cmZ0aW1lKCclQicsICR0aW1lc3RhbXApKTsNCgl9DQoJJG1vbnRobmFtZXMgPSBpbXBsb2RlKCInLCciLCRtb250aHMpOw0KCWZvciAoJGkgPSAxOyAkaSA8PSA3OyAkaSsrKQ0KCXsNCgkJJHRpbWVzdGFtcD1ta3RpbWUoMSwxLDEsMTAsJGksMjAwMCk7DQoJCSRkYXlzW10gPSBodG1sZW50aXRpZXMoc3RyZnRpbWUoJyVBJywgJHRpbWVzdGFtcCkpOw0KCQkkZGF5c21pbltdID0gaHRtbGVudGl0aWVzKHN1YnN0cihzdHJmdGltZSgnJWEnLCAkdGltZXN0YW1wKSwgMCwgMikpOw0KCX0NCgkkZGF5bmFtZXMgPSBpbXBsb2RlKCInLCciLCRkYXlzKTsNCgkkZGF5bmFtZXNtaW4gPSBpbXBsb2RlKCInLCciLCRkYXlzbWluKTsNCg0KCSRkYXRhcGlja2VyX2xvY2FsZSA9ICINCgkJJC5kYXRlcGlja2VyLnJlZ2lvbmFsWycnXSA9IHsgDQoJCQljbG9zZVRleHQ6ICciIC4gbGFuZygnY2xvc2UnKSAuICInLA0KCQkJcHJldlRleHQ6ICciIC4gbGFuZygncHJldmlvdXMnKSAuICInLA0KCQkJbmV4dFRleHQ6ICciIC4gbGFuZygnbmV4dCcpIC4gIicsDQoJCQljdXJyZW50VGV4dDogJyIgLiAkdGhpcy0+TGFuZygnbm93JykgLiAiJywNCgkJCW1vbnRoTmFtZXM6IFsnIiAuICRtb250aG5hbWVzIC4gIiddLA0KCQkJZGF5TmFtZXM6IFsnIiAuICRkYXluYW1lcyAuICInXSwNCgkJCWRheU5hbWVzTWluOiBbJyIgLiAkZGF5bmFtZXNtaW4gLiAiJ10sDQoJCQlkYXRlRm9ybWF0OiAneXl5eS1tbS1kZCcsDQoJCQlmaXJzdERheTogMSwNCgkJCWlzUlRMOiBmYWxzZSwNCgkJCXNob3dNb250aEFmdGVyWWVhcjogZmFsc2UsDQoJCQl5ZWFyU3VmZml4OiAnJw0KCQl9IDsNCgkJJC5kYXRlcGlja2VyLnNldERlZmF1bHRzKCQuZGF0ZXBpY2tlci5yZWdpb25hbFsnJ10pOw0KDQoJCSQudGltZXBpY2tlci5yZWdpb25hbFsnJ10gPSB7IA0KCQkJdGltZU9ubHlUaXRsZTogJyIgLiAkdGhpcy0+TGFuZygnY2hvb3NldGltZScpIC4gIicsDQoJCQl0aW1lVGV4dDogJyIgLiAkdGhpcy0+TGFuZygndGltZScpIC4gIicsDQoJCQlob3VyVGV4dDogJyIgLiBsYW5nKCdob3VyJykgLiAiJywNCgkJCW1pbnV0ZVRleHQ6ICciIC4gbGFuZygnbWludXRlcycpIC4gIicsDQoJCQljdXJyZW50VGV4dDogJyIgLiAkdGhpcy0+TGFuZygnbm93JykgLiAiJywNCgkJCWNsb3NlVGV4dDogJyIgLiBsYW5nKCdjbG9zZScpIC4gIicsDQoJCQlhbXBtOiBmYWxzZQ0KCQl9IDsNCgkJJC50aW1lcGlja2VyLnNldERlZmF1bHRzKCQudGltZXBpY2tlci5yZWdpb25hbFsnJ10pOw0KCSI7DQoNCgkkc21hcnR5LT5hc3NpZ24oJ2Nnc191cmxfcGF0aCcsICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkpOw0KCSRzbWFydHktPmFzc2lnbignZGF0YXBpY2tlcl9sb2NhbGUnLCAkZGF0YXBpY2tlcl9sb2NhbGUpOw0KDQoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9nZW5lcmFsanMudHBsJyk7DQoJDQoJZm9yZWFjaCggJHRhYnMgYXMgJHRhYiApDQoJew0KCQllY2hvICR0aGlzLT5TdGFydFRhYigndGFiJyAuICR0YWJbJ3RhYmlkJ10pOw0KCQkJaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2dlbmVyYWwucGhwJyk7DQoJCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KCX0NCg0KCWlmICggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpICkNCgl7DQoJCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJmaWVsZGRlZnMiKTsNCgkJCWluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9maWVsZGRlZnMucGhwJyk7DQoJCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KDQoJCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJ0YWJzIik7DQoJCQlpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fdGFicy5waHAnKTsNCgkJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQoNCgkJZWNobyAkdGhpcy0+U3RhcnRUYWIoIm9wdGlvbnMiKTsNCgkJCWluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9vcHRpb25zLnBocCcpOw0KCQllY2hvICR0aGlzLT5FbmRUYWIoKTsNCgl9DQoNCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsNCg0KIw0KIyBFT0YNCiMNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggYW5kIGJleW9uZCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24NCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICggIWNtc21zKCkgKSBleGl0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSApDQp7DQoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhsYW5nKCduZWVkcGVybWlzc2lvbnRvJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSk7DQoJcmV0dXJuOw0KfQ0KDQppZiAoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApDQp7DQoJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCn0NCg0KaWYgKCBpc3NldCgkcGFyYW1zWydmaWVsZHNlbGVjdCddKSApDQp7DQoJLy8gbXVsdGkgYWN0aW9ucw0KCSRmbGRfYXJyYXkgPSBpc19hcnJheSgkcGFyYW1zWydmaWVsZHNlbGVjdCddKSA/IGFycmF5X2tleXMoJHBhcmFtc1snZmllbGRzZWxlY3QnXSkgOiBleHBsb2RlKCcsJywgJHBhcmFtc1snZmllbGRzZWxlY3QnXSk7DQoJZm9yZWFjaCAoJGZsZF9hcnJheSBhcyAka2V5ID0+ICRmaWVsZGlkKQ0KCXsNCgkJaWYoICFpc19udW1lcmljKCRmaWVsZGlkKSApDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJyA9PiBsYW5nKCdtaXNzaW5ncGFyYW1zJyksICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQkJcmV0dXJuOw0KCQl9DQoJfQ0KICANCglzd2l0Y2ggKCRwYXJhbXNbJ211bHRpYWN0aW9uJ10pDQoJew0KCQljYXNlICdtb3ZldG90b3AnOg0KCQkJLy8gdXBkYXRlIHRoZSBzb3J0b3JkZXIgdG8gbWFrZSByb29tIG9uIHRvcA0KCQkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgc29ydG9yZGVyID0gc29ydG9yZGVyICsgPyI7DQoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoY291bnQoJGZsZF9hcnJheSkpKTsNCg0KCQkJLy8gdXBkYXRlIHRoZSBzb3J0b3JkZXIgZm9yIHRoZSBzZWxlY3RlZCBpdGVtcw0KCQkJZm9yZWFjaCAoJGZsZF9hcnJheSBhcyAka2V5ID0+ICRmaWVsZGlkKQ0KCQkJew0KCQkJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIHNvcnRvcmRlciA9ID8gV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgka2V5ICsgMSwgJGZpZWxkaWQpKTsNCgkJCX0NCg0KCQkJYnJlYWs7DQoNCgkJY2FzZSAnbW92ZXRvYm90dG9tJzoNCgkJCS8vIGZpbmQgbWF4aW11bSB2YWx1ZSBmb3Igc29ydG9yZGVyDQoJCQkkcXVlcnkgPSAiU0VMRUNUIE1BWChzb3J0b3JkZXIpIEFTIG1heHNvcnRvcmRlciBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MiOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KDQoJCQlpZiggJHJlc3VsdCApDQoJCQl7DQoJCQkJJGZpZWxkbWF4ID0gJHJlc3VsdC0+RmV0Y2hSb3coKTsNCiAgICAgICAgDQoJCQkJLy8gdXBkYXRlIHRoZSBzb3J0b3JkZXIgZm9yIHRoZSBzZWxlY3RlZCBpdGVtcw0KCQkJCWZvcmVhY2ggKCRmbGRfYXJyYXkgYXMgJGtleSA9PiAkZmllbGRpZCkNCgkJCQl7DQoJCQkJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIHNvcnRvcmRlciA9ID8gV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpZWxkbWF4WydtYXhzb3J0b3JkZXInXSArICRrZXkgKyAxLCAkZmllbGRpZCkpOw0KCQkJCX0NCgkJCX0NCiAgICAgIA0KCQkJYnJlYWs7DQoNCgkJY2FzZSAnbW92ZSc6DQoJCQkvLyBmaW5kIHRoZSBzb3J0b3JkZXIgb2YgdGhlIGZpZWxkc2V0c3RhcnQgZmllbGQNCgkJCSRmaWVsZGdyb3VwID0gJHRoaXMtPkdldEZpZWxkKCRwYXJhbXNbJ2ZpZWxkZ3JvdXAnXSk7DQoNCgkJCS8vIHVwZGF0ZSB0aGUgc29ydG9yZGVyIHRvIG1ha2Ugcm9vbSBvbiB0b3Agd2l0aGluIHRoZSBmaWVsZGdyb3VwDQoJCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBzb3J0b3JkZXIgPSBzb3J0b3JkZXIgKyA/IFdIRVJFIHNvcnRvcmRlciA+ID8iOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KGNvdW50KCRmbGRfYXJyYXkpLCAkZmllbGRncm91cFsnc29ydG9yZGVyJ10pKTsNCg0KCQkJLy8gdXBkYXRlIHRoZSBzb3J0b3JkZXIgZm9yIHRoZSBzZWxlY3RlZCBpdGVtcw0KCQkJZm9yZWFjaCAoJGZsZF9hcnJheSBhcyAka2V5ID0+ICRmaWVsZGlkKQ0KCQkJew0KCQkJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIHNvcnRvcmRlciA9ID8gV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGRncm91cFsnc29ydG9yZGVyJ10gKyAka2V5ICsgMSwgJGZpZWxkaWQpKTsNCgkJCX0NCg0KCQkJYnJlYWs7DQoNCgkJY2FzZSAnZGVsZXRlJzoNCgkJCWZvcmVhY2ggKCRmbGRfYXJyYXkgYXMgJGZpZWxkaWQpDQoJCQl7DQoJCQkJJHBhcmFtc1snZmllbGRpZCddID0gJGZpZWxkaWQ7DQoNCgkJCQkkZmllbGQgPSAkdGhpcy0+R2V0RmllbGQoJHBhcmFtc1snZmllbGRpZCddKTsNCgkJCQlpZiggJGZpZWxkID09PSBGQUxTRSApDQoJCQkJew0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoNCgkJCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KDQoJCQkJLy8gUHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQoJCQkJYXVkaXQoJHBhcmFtc1snZmllbGRpZCddLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIEZpZWxkZGVmaW5pdGlvbicsICdEZWxldGVkOiAnIC4gJGZpZWxkWyduYW1lJ10pOw0KDQoJCQkJLy8gdXBkYXRlIHRoZSBzb3J0b3JkZXINCgkJCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBzb3J0b3JkZXIgPSBzb3J0b3JkZXIgLSAxIFdIRVJFIHNvcnRvcmRlciA+ID8iOw0KCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGRbJ3NvcnRvcmRlciddKSk7DQoNCgkJCQkvLyBkZWxldGUgYWxsIHRhYi1hc3NpZ25tZW50cw0KCQkJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KDQoJCQkJLy8gZGVsZXRlIGZpZWxkc2V0ZW5kDQoJCQkJaWYgKCAkZmllbGRbJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgKQ0KCQkJCXsNCgkJCQkJJGZpZWxkMiA9ICR0aGlzLT5HZXRGaWVsZCggJGZpZWxkWyduYW1lJ10gLiAnLicgKTsNCg0KCQkJCQlpZiggJGZpZWxkMiAhPT0gRkFMU0UgKQ0KCQkJCQl7DQoJCQkJCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpZWxkMlsnZmllbGRpZCddKSk7DQoNCgkJCQkJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIHNvcnRvcmRlciA9IHNvcnRvcmRlciAtIDEgV0hFUkUgc29ydG9yZGVyID4gPyI7DQoJCQkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpZWxkMlsnc29ydG9yZGVyJ10pKTsNCgkJCQkgIH0NCgkJCQl9DQoJCQl9DQoNCgkJCWJyZWFrOw0KCX0NCg0KCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ2ZpZWxkZGVmc3VwZGF0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJcmV0dXJuOw0KDQp9DQoNCmlmKCAhaXNzZXQoJHBhcmFtc1snbW9kZSddKSApDQp7DQoJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InID0+IGxhbmcoJ21pc3NpbmdwYXJhbXMnKSwgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCXJldHVybjsNCn0NCg0KJGRiID0gJHRoaXMtPkdldERCKCk7DQoNCnN3aXRjaCAoJHBhcmFtc1snbW9kZSddKQ0Kew0KCWNhc2UgJ2FkZCc6DQoJCWlmKCAkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PSAnUE9TVCcgKQ0KCQl7DQoJCQkvLyBjaGVjayBpZiBuYW1lIGlzIGVtcHR5DQoJCQlpZiAoIGVtcHR5KCRwYXJhbXNbJ25hbWUnXSkgKSAkcGFyYW1zWyduYW1lJ10gPSAkcGFyYW1zWyd0eXBlJ10gLiAiMSI7DQoJCQkvLyBjaGVjayBpZiBuYW1lIGFscmVhZHkgZXhpc3RzDQoJCQl3aGlsZSAoICR0aGlzLT5HZXRGaWVsZCgkcGFyYW1zWyduYW1lJ10pICE9PSBGQUxTRSApDQoJCQl7DQoJCQkJaWYgKCBpc19udW1lcmljKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSkgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1snbmFtZSddID0gaXNfbnVtZXJpYyhzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMikpID8gc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTIpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0yKSArIDEpIDogc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTEpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSArIDEpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkcGFyYW1zWyduYW1lJ10gLj0gIjEiOw0KCQkJCX0NCgkJCX0NCgkJCS8vIGZpbmQgbWF4aW11bSB2YWx1ZSBmb3Igc29ydG9yZGVyDQoJCQkkcXVlcnkgPSAiU0VMRUNUIE1BWChzb3J0b3JkZXIpIEFTIG1heHNvcnRvcmRlciBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MiOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQkJaWYoICRyZXN1bHQgKQ0KCQkJew0KCQkJCSRmaWVsZCA9ICRyZXN1bHQtPkZldGNoUm93KCk7DQoJCQkJLy8gc2V0IHByb3BlcnRpZXMsIGRlcGVuZGluZyBvbiBmaWVsZHR5cGUNCgkJCQlpZiggJHBhcmFtc1sndHlwZSddID09ICd0ZXh0ZmllbGQnICkNCgkJCQl7DQoJCQkJCSRwYXJhbXNbJ3Byb3BlcnRpZXMnXSA9IGlzX251bWVyaWMoJHBhcmFtc1snbWF4bGVuZ3RoJ10pID8gJHBhcmFtc1snbWF4bGVuZ3RoJ10gOiAyNTU7DQoJCQkJfQ0KCQkJCWVsc2VpZiAoICRwYXJhbXNbJ3R5cGUnXSA9PSAndGV4dGFyZWEnIHx8ICRwYXJhbXNbJ3R5cGUnXSA9PSAnd3lzaXd5ZycgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1sncHJvcGVydGllcyddID0gaXNzZXQoJHBhcmFtc1sncGFyc2VzbWFydHknXSk7DQoJCQkJfQ0KCQkJCWVsc2VpZiAoICRwYXJhbXNbJ3R5cGUnXSAhPSAncHVsbGRvd24nICYmICRwYXJhbXNbJ3R5cGUnXSAhPSAncmFkaW9idXR0b25zJyApDQoJCQkJew0KCQkJCQkkcGFyYW1zWydwcm9wZXJ0aWVzJ10gPSAnJzsNCgkJCQl9DQoJCQkJZWxzZWlmICggJHBhcmFtc1sndHlwZSddID09ICdmaWVsZHNldHN0YXJ0JyApDQoJCQkJew0KCQkJCQkkcGFyYW1zWyd0eXBlJ10gPSAnZmllbGRzZXRzdGFydCc7DQoJCQkJCSRwYXJhbXNbJ3Byb3BlcnRpZXMnXSA9ICcnOw0KCQkJCX0NCgkJCQkkcGFyYW1zWydjbGVhcmNhY2hlJ10gPSBpc3NldCgkcGFyYW1zWydjbGVhcmNhY2hlJ10pOw0KCQkJCQ0KCQkJCSRlZGl0b3JzID0gZW1wdHkoJHBhcmFtc1snZWRpdG9ycyddKSA/ICcnIDogaW1wbG9kZSgnOycsICRwYXJhbXNbJ2VkaXRvcnMnXSk7DQoJCQkJDQoJCQkJLy8gc2F2ZSBmaWVsZGRlZmluaXRpb24NCgkJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21ncyAobmFtZSwgaGVscCwgdHlwZSwgcHJvcGVydGllcywgY2xlYXJjYWNoZSwgc29ydG9yZGVyLCBlZGl0b3JzKSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8pIjsNCgkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbmFtZSddLCAkcGFyYW1zWydoZWxwJ10sICRwYXJhbXNbJ3R5cGUnXSwgJHBhcmFtc1sncHJvcGVydGllcyddLCAkcGFyYW1zWydjbGVhcmNhY2hlJ10sICRmaWVsZFsnbWF4c29ydG9yZGVyJ10gKyAxLCAkZWRpdG9ycykpOw0KCQkJfQ0KCQkJaWYoIGlzc2V0KCRyZXN1bHQpICYmICRyZXN1bHQgKQ0KCQkJew0KCQkJCSRmaWVsZGlkID0gJGRiLT5JbnNlcnRfSUQoKTsNCg0KCQkJCS8vIGFkZCBhbHNvIGZpZWxkc2V0ZW5kIGlmIGZpZWxkc2V0c3RhcnQgd2FzIGFkZGVkDQoJCQkJaWYgKCAkcGFyYW1zWyd0eXBlJ10gPT0gJ2ZpZWxkc2V0c3RhcnQnICkNCgkJCQl7DQoJCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyduYW1lJ10gLiAnLicsICcnLCAnZmllbGRzZXRlbmQnLCAnJywgJHBhcmFtc1snY2xlYXJjYWNoZSddLCAkZmllbGRbJ21heHNvcnRvcmRlciddICsgMiwgJGVkaXRvcnMpKTsNCgkJCQkJJGZpZWxkaWQyID0gJGRiLT5JbnNlcnRfSUQoKTsNCgkJCQl9DQoNCgkJCQkvLyBzYXZlIHRhYiBhc3NpZ25tZW50cw0KCQkJCWZvcmVhY2ggKCRwYXJhbXNbJ3RhYnMnXSBhcyAkdGFiaWQgPT4gJHRhYnNlbGVjdCkNCgkJCQl7DQoJCQkJCWlmICggJHRhYnNlbGVjdCA9PSAxICkNCgkJCQkJew0KCQkJCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgKHRhYmlkLCBmaWVsZGlkKSBWQUxVRVMgKD8sPykiOw0KCQkJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0YWJpZCwgJGZpZWxkaWQpKTsNCgkJCQkJCWlmICggJHBhcmFtc1sndHlwZSddID09ICdmaWVsZHNldHN0YXJ0JyApDQoJCQkJCQl7DQoJCQkJCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgKHRhYmlkLCBmaWVsZGlkKSBWQUxVRVMgKD8sPykiOw0KCQkJCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGFiaWQsICRmaWVsZGlkMikpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJCQ0KCQkJCS8vIFB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCQkJCWF1ZGl0KCRmaWVsZGlkLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIEZpZWxkZGVmaW5pdGlvbicsICdBZGRlZDogJyAuICRwYXJhbXNbJ25hbWUnXSk7DQoJCQkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnZmllbGRkZWZhZGRlZCcsICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InPT4gJ3VwZGF0ZWZhaWxlZCcsICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQl9DQoNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCX0NCgkJJGZpZWxkID0gYXJyYXkoJ25hbWUnID0+ICcnLCAnaGVscCcgPT4gJycsICd0eXBlJyA9PiAnJywgJ21heGxlbmd0aCcgPT4gJycsICdwcm9wZXJ0aWVzJyA9PiAnJywgJ3BhcnNlc21hcnR5JyA9PiAnJywgJ2NsZWFyY2FjaGUnID0+IDAsICdlZGl0b3JzJyA9PiAnJyk7DQoJCSRzbWFydHktPmFzc2lnbigndGl0bGUnLGxhbmcoJ2FkZCcpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICdhZGQnKSk7DQoJCWJyZWFrOw0KDQoNCgljYXNlICdkZWxldGUnOg0KCQlpZiggIWlzX251bWVyaWMoJHBhcmFtc1snZmllbGRpZCddKSApDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJyA9PiBsYW5nKCdtaXNzaW5ncGFyYW1zJyksICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQkJcmV0dXJuOw0KCQl9DQoJCQ0KCQkkZmllbGQgPSAkdGhpcy0+R2V0RmllbGQoJHBhcmFtc1snZmllbGRpZCddKTsNCgkJDQoJCWlmKCAkZmllbGQgPT09IEZBTFNFICkNCgkJew0KCQkJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InPT4gJ3VwZGF0ZWZhaWxlZCcsICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQl9DQoNCgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFdIRVJFIGZpZWxkaWQgPSA/IjsNCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snZmllbGRpZCddKSk7DQoNCgkJLy8gUHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQoJCWF1ZGl0KCRwYXJhbXNbJ2ZpZWxkaWQnXSwgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBGaWVsZGRlZmluaXRpb24nLCAnRGVsZXRlZDogJyAuICRmaWVsZFsnbmFtZSddKTsNCg0KCQkvLyB1cGRhdGUgdGhlIHNvcnRvcmRlcg0KCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBzb3J0b3JkZXIgPSBzb3J0b3JkZXIgLSAxIFdIRVJFIHNvcnRvcmRlciA+ID8iOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpZWxkWydzb3J0b3JkZXInXSkpOw0KCQkNCiAgICAJLy8gZGVsZXRlIGFsbCB0YWItYXNzaWdubWVudHMNCiAgICAJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIFdIRVJFIGZpZWxkaWQgPSA/IjsNCiAgICAJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KDQoJCS8vIGRlbGV0ZSBmaWVsZHNldGVuZA0KCQlpZiAoICRmaWVsZFsndHlwZSddID09ICdmaWVsZHNldHN0YXJ0JyApDQoJCXsNCgkJCSRmaWVsZDIgPSAkdGhpcy0+R2V0RmllbGQoICRmaWVsZFsnbmFtZSddIC4gJy4nICk7DQoJCQkNCgkJCWlmKCAkZmllbGQyICE9PSBGQUxTRSApDQoJCQl7DQoJCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFdIRVJFIGZpZWxkaWQgPSA/IjsNCgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGQyWydmaWVsZGlkJ10pKTsNCg0KCQkJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIHNvcnRvcmRlciA9IHNvcnRvcmRlciAtIDEgV0hFUkUgc29ydG9yZGVyID4gPyI7DQoJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmaWVsZDJbJ3NvcnRvcmRlciddKSk7DQoJCQl9DQoJCX0NCg0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdmaWVsZGRlZnN1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJYnJlYWs7DQoNCg0KCWNhc2UgJ2VkaXQnOg0KCQlpZiggIWlzX251bWVyaWMoJHBhcmFtc1snZmllbGRpZCddKSApDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJyA9PiBsYW5nKCdtaXNzaW5ncGFyYW1zJyksICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJJGZpZWxkID0gJHRoaXMtPkdldEZpZWxkKCRwYXJhbXNbJ2ZpZWxkaWQnXSk7DQoNCgkJaWYoICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09ICdQT1NUJyApDQoJCXsNCgkJCS8vIGNoZWNrIGlmIG5hbWUgaXMgZW1wdHkNCgkJCWlmICggZW1wdHkoJHBhcmFtc1snbmFtZSddKSApICRwYXJhbXNbJ25hbWUnXSA9ICRwYXJhbXNbJ3R5cGUnXSAuICIxIjsNCgkJCS8vIGNoZWNrIGlmIG5hbWUgYWxyZWFkeSBleGlzdHMNCgkJCSRjaGVja2ZpZWxkbmFtZSA9ICRmaWVsZFsndHlwZSddID09ICdmaWVsZHNldHN0YXJ0JyA/IEZBTFNFIDogJHRoaXMtPkdldEZpZWxkKCRwYXJhbXNbJ25hbWUnXSk7DQoJCQlXaGlsZSAoICRjaGVja2ZpZWxkbmFtZSAhPT0gRkFMU0UgJiYgJHBhcmFtc1snZmllbGRpZCddICE9ICRjaGVja2ZpZWxkbmFtZVsnZmllbGRpZCddICkNCgkJCXsNCgkJCQlpZiAoIGlzX251bWVyaWMoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTEpKSApDQoJCQkJew0KCQkJCQkkcGFyYW1zWyduYW1lJ10gPSBpc19udW1lcmljKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0yKSkgPyBzdWJzdHIoJHBhcmFtc1snbmFtZSddLDAgLCAtMikgLiAoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTIpICsgMSkgOiBzdWJzdHIoJHBhcmFtc1snbmFtZSddLDAgLCAtMSkgLiAoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTEpICsgMSk7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSRwYXJhbXNbJ25hbWUnXSAuPSAiMSI7DQoJCQkJfQ0KCQkJCSRjaGVja2ZpZWxkbmFtZSA9ICR0aGlzLT5HZXRGaWVsZCgkcGFyYW1zWyduYW1lJ10pOw0KCQkJfQ0KCQkJLy8gc2V0IHByb3BlcnRpZXMsIGRlcGVuZGluZyBvbiBmaWVsZHR5cGUNCgkJCWlmKCAkcGFyYW1zWyd0eXBlJ10gPT0gJ3RleHRmaWVsZCcgKQ0KCQkJew0KCQkJCSRwYXJhbXNbJ3Byb3BlcnRpZXMnXSA9IGlzX251bWVyaWMoJHBhcmFtc1snbWF4bGVuZ3RoJ10pID8gJHBhcmFtc1snbWF4bGVuZ3RoJ10gOiAyNTU7DQoJCQl9DQoJCQllbHNlaWYgKCAkcGFyYW1zWyd0eXBlJ10gPT0gJ3RleHRhcmVhJyB8fCAkcGFyYW1zWyd0eXBlJ10gPT0gJ3d5c2l3eWcnICkNCgkJCXsNCgkJCQkkcGFyYW1zWydwcm9wZXJ0aWVzJ10gPSAkcGFyYW1zWydwYXJzZXNtYXJ0eSddOw0KCQkJfQ0KCQkJZWxzZWlmICggJHBhcmFtc1sndHlwZSddICE9ICdwdWxsZG93bicgJiYgJHBhcmFtc1sndHlwZSddICE9ICdyYWRpb2J1dHRvbnMnICkNCgkJCXsNCgkJCQkkcGFyYW1zWydwcm9wZXJ0aWVzJ10gPSAnJzsNCgkJCX0NCgkJCQ0KCQkJJHBhcmFtc1snY2xlYXJjYWNoZSddID0gaXNzZXQoJHBhcmFtc1snY2xlYXJjYWNoZSddKTsNCgkJCQ0KCQkJJGVkaXRvcnMgPSBlbXB0eSgkcGFyYW1zWydlZGl0b3JzJ10pID8gJycgOiBpbXBsb2RlKCc7JywgJHBhcmFtc1snZWRpdG9ycyddKTsNCgkJCQ0KCQkJLy8gc2F2ZSBmaWVsZGRlZmluaXRpb24NCgkJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIG5hbWUgPSA/LCBoZWxwID0gPywgdHlwZSA9ID8sIHByb3BlcnRpZXMgPSA/LCBjbGVhcmNhY2hlID0gPywgZWRpdG9ycyA9ID8gV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ25hbWUnXSwgJHBhcmFtc1snaGVscCddLCAkcGFyYW1zWyd0eXBlJ10sICRwYXJhbXNbJ3Byb3BlcnRpZXMnXSwgJHBhcmFtc1snY2xlYXJjYWNoZSddLCAkZWRpdG9ycywgJHBhcmFtc1snZmllbGRpZCddKSk7DQoNCgkJCS8vIGRlbGV0ZSBhbGwgdGFiLWFzc2lnbm1lbnRzDQoJCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KCQkJDQoJCQkvLyBzYXZlIGZpZWxkc2V0ZW5kDQoJCQlpZiAoICRmaWVsZFsndHlwZSddID09ICdmaWVsZHNldHN0YXJ0JyApDQoJCQl7DQoJCQkJJGZpZWxkZW5kID0gJHRoaXMtPkdldEZpZWxkKCRmaWVsZFsnbmFtZSddIC4gJy4nKTsNCgkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpZWxkZW5kWydmaWVsZGlkJ10pKTsNCgkJCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBuYW1lID0gPywgZWRpdG9ycyA9ID8gV0hFUkUgZmllbGRpZCA9ID8iOw0KCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyduYW1lJ10gLiAnLicsICRlZGl0b3JzLCAkZmllbGRlbmRbJ2ZpZWxkaWQnXSkpOw0KCQkJfQ0KCQkJDQoJCQkvLyBzYXZlIHRhYi1hc3NpZ25tZW50cw0KCQkJaWYgKCBpc3NldCgkcGFyYW1zWyd0YWJzJ10pICkgew0KCQkJDQoJCQkJZm9yZWFjaCAoJHBhcmFtc1sndGFicyddIGFzICR0YWJpZCA9PiAkdGFic2VsZWN0KQ0KCQkJCXsNCgkJCQkJaWYgKCAkdGFic2VsZWN0ID09IDEgKQ0KCQkJCQl7DQoJCQkJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCAodGFiaWQsIGZpZWxkaWQpIFZBTFVFUyAoPyw/KSI7DQoJCQkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRhYmlkLCAkcGFyYW1zWydmaWVsZGlkJ10pKTsNCgkJCQkJCWlmICggJGZpZWxkWyd0eXBlJ10gPT0gJ2ZpZWxkc2V0c3RhcnQnICkNCgkJCQkJCXsNCgkJCQkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRhYmlkLCAkZmllbGRlbmRbJ2ZpZWxkaWQnXSkpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJDQoNCgkJCS8vIFB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCQkJYXVkaXQoJHBhcmFtc1snZmllbGRpZCddLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIEZpZWxkZGVmaW5pdGlvbicsICdFZGl0ZWQ6ICcgLiAkcGFyYW1zWyduYW1lJ10pOw0KDQoJCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdmaWVsZGRlZnN1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCX0NCg0KCQkkc21hcnR5LT5hc3NpZ24oJ3RpdGxlJyxsYW5nKCdlZGl0JykpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmaWVsZGlkJywgJHBhcmFtc1snZmllbGRpZCddKSAuDQoJCQkJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICdlZGl0JykpOw0KCQlicmVhazsNCg0KDQoJY2FzZSAnbW92ZXVwJzoNCgljYXNlICdtb3ZlZG93bic6DQoJCSRmaWVsZCA9ICR0aGlzLT5HZXRGaWVsZCgkcGFyYW1zWydmaWVsZGlkJ10pOw0KCQlpZiggJGZpZWxkID09PSBGQUxTRSApCQkgDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJz0+ICd1cGRhdGVmYWlsZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJfQ0KDQoJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIHNvcnRvcmRlciA9ICIgLiAoJHBhcmFtc1snbW9kZSddID09ICdtb3ZldXAnID8gJ3NvcnRvcmRlciArIDEnIDogJ3NvcnRvcmRlciAtIDEnKSAuICIgV0hFUkUgc29ydG9yZGVyID0gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydtb2RlJ10gPT0gJ21vdmV1cCcgPyAkZmllbGRbJ3NvcnRvcmRlciddIC0gMSA6ICRmaWVsZFsnc29ydG9yZGVyJ10gKyAxKSk7DQoNCgkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgc29ydG9yZGVyID0gIiAuICgkcGFyYW1zWydtb2RlJ10gPT0gJ21vdmV1cCcgPyAnc29ydG9yZGVyIC0gMScgOiAnc29ydG9yZGVyICsgMScpIC4gIiBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydmaWVsZGlkJ10pKTsNCg0KCQkkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJYnJlYWs7DQoNCgkJDQoJY2FzZSAnc29ydCc6DQoJCWlmICggIWVtcHR5KCRwYXJhbXNbJ3NvcnRzZXEnXSkgKQ0KCQl7DQoJCQkkc29ydHNlcSA9IHN0cl9yZXBsYWNlKCdpJywgJycsICRwYXJhbXNbJ3NvcnRzZXEnXSk7DQoJCQkkc29ydGVudHJpZXMgPSBleHBsb2RlKCcsJywgJHNvcnRzZXEpOw0KCQkJZm9yZWFjaCAoICRzb3J0ZW50cmllcyBhcyAka2V5ID0+ICRmaWVsZGlkICkNCgkJCXsNCgkJCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBzb3J0b3JkZXIgPSA/IFdIRVJFIGZpZWxkaWQgPSA/IjsNCgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgka2V5ICsgMSwgJGZpZWxkaWQpKTsNCgkJCX0NCgkJfQ0KCQlleGl0KCk7DQoJCWJyZWFrOw0KDQoJCQ0KCWNhc2UgJ2Fzc2lnbic6DQoJCWlmICggIWVtcHR5KCRwYXJhbXNbJ2ZpZWxkaWQnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ3RhYmlkJ10pICkNCgkJew0KCQkJJGRiID0gJHRoaXMtPkdldERCKCk7DQoJCQkkcXVlcnkgPSAiU0VMRUNUIGYubmFtZSwgZi50eXBlLCB0Zi4qIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgZg0KCQkJCQkJTEVGVCBKT0lOICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIHRmIE9OIGYuZmllbGRpZCA9IHRmLmZpZWxkaWQgQU5EIHRmLnRhYmlkID0gPw0KCQkJCQkJV0hFUkUgZi5maWVsZGlkID0gPyI7DQoJCQkkcm93cyA9ICRkYi0+R2V0QWxsKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1sndGFiaWQnXSwgJHBhcmFtc1snZmllbGRpZCddKSk7DQoJCQkkcm93Y291bnQgPSBjb3VudCgkcm93cyk7DQoJCQkNCgkJCWlmICggJHJvd3MgJiYgJHJvd2NvdW50ID4gMCAmJiAhZW1wdHkoJHJvd3NbMF1bJ3RhYmlkJ10pICkNCgkJCXsNCgkJCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgV0hFUkUgdGFiaWQgPSA/IEFORCBmaWVsZGlkID0gPyI7DQoJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ3RhYmlkJ10sICRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KCQkJCWlmICggJHJvd3NbMF1bJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgKQ0KCQkJCXsNCgkJCQkJJGZpZWxkZW5kID0gJHRoaXMtPkdldEZpZWxkKCRyb3dzWzBdWyduYW1lJ10pOw0KCQkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1sndGFiaWQnXSwgJGZpZWxkZW5kWydmaWVsZGlkJ10pKTsNCgkJCQl9DQoJCQkJZWNobyAwOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCAodGFiaWQsIGZpZWxkaWQpIFZBTFVFUyAoPyw/KSI7DQoJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ3RhYmlkJ10sICRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KCQkJCWlmICggJHJvd3NbMF1bJ3R5cGUnXSA9PSAnZmllbGRzZXRzdGFydCcgKQ0KCQkJCXsNCgkJCQkJJGZpZWxkZW5kID0gJHRoaXMtPkdldEZpZWxkKCRyb3dzWzBdWyduYW1lJ10pOw0KCQkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1sndGFiaWQnXSwgJGZpZWxkZW5kWydmaWVsZGlkJ10pKTsNCgkJCQl9DQoJCQkJZWNobyAxOw0KCQkJfQ0KCQl9DQoJCWV4aXQoKTsNCgkJYnJlYWs7DQoNCn0NCg0KDQokdHlwZWxpc3QgPSBhcnJheSgNCgkkdGhpcy0+TGFuZygndGV4dGZpZWxkJykgPT4gJ3RleHRmaWVsZCcsDQoJJHRoaXMtPkxhbmcoJ3B1bGxkb3duJykgPT4gJ3B1bGxkb3duJywNCgkkdGhpcy0+TGFuZygnY2hlY2tib3gnKSA9PiAnY2hlY2tib3gnLA0KCSR0aGlzLT5MYW5nKCdyYWRpb2J1dHRvbnMnKSA9PiAncmFkaW9idXR0b25zJywNCgkkdGhpcy0+TGFuZygnZGF0ZXBpY2tlcicpID0+ICdkYXRlcGlja2VyJywNCgkkdGhpcy0+TGFuZygnZGF0ZXRpbWVwaWNrZXInKSA9PiAnZGF0ZXRpbWVwaWNrZXInLA0KCSR0aGlzLT5MYW5nKCd0aW1lcGlja2VyJykgPT4gJ3RpbWVwaWNrZXInLA0KCSR0aGlzLT5MYW5nKCd0ZXh0YXJlYScpID0+ICd0ZXh0YXJlYScsDQoJJHRoaXMtPkxhbmcoJ3d5c2l3eWcnKSA9PiAnd3lzaXd5ZycsDQoJJHRoaXMtPkxhbmcoJ2NvbG9ycGlja2VyJykgPT4gJ2NvbG9ycGlja2VyJywNCgkkdGhpcy0+TGFuZygncGFnZXNlbGVjdCcpID0+ICdwYWdlc2VsZWN0JywNCgkkdGhpcy0+TGFuZygnZmllbGRzZXRzdGFydCcpID0+ICdmaWVsZHNldHN0YXJ0JywNCgkkdGhpcy0+TGFuZygnYnV0dG9uJykgPT4gJ2J1dHRvbicNCik7DQoNCiRkaXNhYmxlZCA9ICRmaWVsZFsndHlwZSddID09ICdmaWVsZHNldHN0YXJ0JyA/ICcgZGlzYWJsZWQ9ImRpc2FibGVkIicgOiAnJzsNCg0KJGNvcmVmcCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRmlsZVBpY2tlcicpOw0KaWYoICRjb3JlZnAgKQ0Kew0KCSRjb3JlZnBfbmFtZSA9ICRjb3JlZnAtPkdldEZyaWVuZGx5TmFtZSgpOw0KCSR0eXBlbGlzdFskY29yZWZwX25hbWVdID0gJ2NvcmVmaWxlcGlja2VyJzsNCn0NCg0KJGdiZnAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0dCRmlsZVBpY2tlcicpOw0KaWYoICRnYmZwICkNCnsNCgkkZ2JmcF9uYW1lID0gJGdiZnAtPkdldEZyaWVuZGx5TmFtZSgpOw0KCSR0eXBlbGlzdFskZ2JmcF9uYW1lXSA9ICdnYmZpbGVwaWNrZXInOw0KfQ0KDQokam1mcCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnSk1GaWxlUGlja2VyJyk7DQppZiggJGptZnAgKQ0Kew0KCSRqbWZwX25hbWUgPSAkam1mcC0+R2V0RnJpZW5kbHlOYW1lKCk7DQoJJHR5cGVsaXN0WyRqbWZwX25hbWVdID0gJ2ptZmlsZXBpY2tlcic7DQp9DQoNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbmFtZScsIGxhbmcoJ25hbWUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ25hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkZmllbGRbJ25hbWUnXSwgNDAgKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3R5cGUnLCBsYW5nKCd0eXBlJykpOw0KJHNtYXJ0eS0+YXNzaWduKCd0eXBlJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndHlwZScgLiAoJGRpc2FibGVkID8gJ18nIDogJycpLCAkdHlwZWxpc3QsIC0xLCAkZmllbGRbJ3R5cGUnXSwgJ2lkPSJmaWVsZHR5cGUiJyAuICRkaXNhYmxlZCkgLiAoJGRpc2FibGVkID8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3R5cGUnLCAkZmllbGRbJ3R5cGUnXSkgOiAnJykpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9tYXhsZW5ndGgnLCAkdGhpcy0+TGFuZygnbWF4bGVuZ3RoJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdtYXhsZW5ndGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21heGxlbmd0aCcsICRmaWVsZFsndHlwZSddID09ICd0ZXh0ZmllbGQnID8gJGZpZWxkWydwcm9wZXJ0aWVzJ10gOiAnJywgNSwgNSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9wcm9wZXJ0aWVzJywgJHRoaXMtPkxhbmcoJ3Byb3BlcnRpZXMnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2hlbHBfcHJvcGVydGllcycsICR0aGlzLT5MYW5nKCdwcm9wZXJ0aWVzX2hlbHAxJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdwcm9wZXJ0aWVzJywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKEZBTFNFLCAkaWQsICRmaWVsZFsndHlwZSddID09ICdwdWxsZG93bicgfHwgJGZpZWxkWyd0eXBlJ10gPT0gJ3JhZGlvYnV0dG9ucycgPyAkZmllbGRbJ3Byb3BlcnRpZXMnXSA6ICcnLCAncHJvcGVydGllcycsICcnLCAnJyAsICcnICwgJycsIDIwLCA2LCAnJywgJycsICdzdHlsZT0id2lkdGg6MjBlbTsgaGVpZ2h0OjZlbTsiJykpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9wYXJzZXNtYXJ0eScsICR0aGlzLT5MYW5nKCdwYXJzZXNtYXJ0eScpKTsNCiRzbWFydHktPmFzc2lnbigncGFyc2VzbWFydHknLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdwYXJzZXNtYXJ0eScsICcxJywgJGZpZWxkWyd0eXBlJ10gPT0gJ3RleHRhcmVhJyB8fCAkZmllbGRbJ3R5cGUnXSA9PSAnd3lzaXd5ZycgPyAkZmllbGRbJ3Byb3BlcnRpZXMnXSA6ICcnKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2hlbHAnLCBsYW5nKCdoZWxwJykpOw0KLy8kc21hcnR5LT5hc3NpZ24oJ2hlbHAnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2hlbHAnLCAkZmllbGRbJ2hlbHAnXSwgODAgKSk7DQokc21hcnR5LT5hc3NpZ24oJ2hlbHAnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoRkFMU0UsICRpZCwgJGZpZWxkWydoZWxwJ10sICdoZWxwJywgJycsICcnLCAnJywgJycsICcnLCAzKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2NsZWFyY2FjaGUnLCAkdGhpcy0+TGFuZygnY2xlYXJzdHlsZXNoZWV0Y2FjaGUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2hlbHBfY2xlYXJjYWNoZScsICR0aGlzLT5MYW5nKCdjbGVhcnN0eWxlc2hlZXRjYWNoZV9oZWxwJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdjbGVhcmNhY2hlJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY2xlYXJjYWNoZScsICcxJywgJGZpZWxkWydjbGVhcmNhY2hlJ10pKTsNCg0KJGVkaXRvcnNsaXN0ID0gYXJyYXkoKTsNCiRkaXNhYmxlZCA9ICcnOw0KJGdyb3Vwb3BzID0gJGdDbXMtPkdldEdyb3VwT3BlcmF0aW9ucygpOw0KJGdyb3VwcyA9ICRncm91cG9wcy0+TG9hZEdyb3VwcygpOw0KZm9yZWFjaCAoJGdyb3VwcyBhcyAkb25lZ3JvdXApDQp7DQoJJGVkaXRvcnNsaXN0W2xhbmcoJ2dyb3VwJykgLiAnOiAnIC4gJG9uZWdyb3VwLT5uYW1lXSA9ICRvbmVncm91cC0+aWQ7DQp9DQokc2VsZWN0ZWRlZGl0b3JzID0gZXhwbG9kZSgnOycsICRmaWVsZFsnZWRpdG9ycyddKTsNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2VkaXRvcnMnLCBsYW5nKCdncm91cHBlcm1pc3Npb25zJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdlZGl0b3JzJywgJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsICdlZGl0b3JzW10nLCAkZWRpdG9yc2xpc3QsICRzZWxlY3RlZGVkaXRvcnMsIDQsICRkaXNhYmxlZCkpOw0KDQokZmllbGRpZCA9IGVtcHR5KCRwYXJhbXNbJ2ZpZWxkaWQnXSkgPyAtMSA6ICRwYXJhbXNbJ2ZpZWxkaWQnXTsNCiR0YWJzID0gJHRoaXMtPkdldFRhYnMoJGZpZWxkaWQpOw0KaWYgKCAkcGFyYW1zWydtb2RlJ10gPT0gJ2FkZCcgKSAkdGFic1swXVsnY2hlY2tlZCddID0gMTsgLy8gc2VsZWN0IGZpcnN0IHRhYiBieSBkZWZhdWx0DQokdGFic2xpc3QgPSBhcnJheSgpOw0KZm9yZWFjaCAoJHRhYnMgYXMgJHRhYikNCnsNCgkkdGFic2xpc3RbXSA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ3RhYnNbJyAuICR0YWJbJ3RhYmlkJ10gLiAnXScsICcxJywgKCR0YWJbJ2NoZWNrZWQnXSAhPT0gTlVMTCkpIC4gJHRhYlsnbmFtZSddOw0KfQ0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGFicycsICR0aGlzLT5MYW5nKCdzaG93b250YWInKSk7DQokc21hcnR5LT5hc3NpZ24oJ3RhYnMnLCAkdGFic2xpc3QpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXRidXR0b24nLCBsYW5nKCdzdWJtaXQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0ZmllbGRkZWYudHBsJyk7DQoNCiMNCiMgRU9GDQojDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.edittab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggYW5kIGJleW9uZCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24NCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICggIWNtc21zKCkgKSBleGl0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSApDQp7DQoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhsYW5nKCduZWVkcGVybWlzc2lvbnRvJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSk7DQoJcmV0dXJuOw0KfQ0KDQppZiAoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApDQp7DQoJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGFicycpOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQp9DQoNCmlmKCAhaXNzZXQoJHBhcmFtc1snbW9kZSddKSApDQp7DQoJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InID0+IGxhbmcoJ21pc3NpbmdwYXJhbXMnKSwgJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCglyZXR1cm47DQp9DQoNCiRkYiA9ICR0aGlzLT5HZXREQigpOw0KDQpzd2l0Y2ggKCRwYXJhbXNbJ21vZGUnXSkNCnsNCgljYXNlICdhZGQnOg0KCQlpZiggJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT0gJ1BPU1QnICkNCgkJew0KCQkJLy8gY2hlY2sgaWYgbmFtZSBpcyBlbXB0eQ0KCQkJaWYgKCBlbXB0eSgkcGFyYW1zWyduYW1lJ10pICkNCgkJCXsNCgkJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcicgPT4gbGFuZygnbWlzc2luZ3BhcmFtcycpKTsNCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdHRhYicsICcnLCAkcGFyYW1zKTsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCQkvLyBjaGVjayBpZiBuYW1lIGFscmVhZHkgZXhpc3RzDQoJCQlXaGlsZSAoICR0aGlzLT5HZXRUYWIoJHBhcmFtc1snbmFtZSddKSAhPT0gRkFMU0UgKQ0KCQkJew0KCQkJCWlmICggaXNfbnVtZXJpYyhzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMSkpICkNCgkJCQl7DQoJCQkJCSRwYXJhbXNbJ25hbWUnXSA9IGlzX251bWVyaWMoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTIpKSA/IHN1YnN0cigkcGFyYW1zWyduYW1lJ10sMCAsIC0yKSAuIChzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMikgKyAxKSA6IHN1YnN0cigkcGFyYW1zWyduYW1lJ10sMCAsIC0xKSAuIChzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMSkgKyAxKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1snbmFtZSddIC49ICIxIjsNCgkJCQl9DQoJCQl9DQoJCQkvLyBmaW5kIG1heGltdW0gdmFsdWUgZm9yIHNvcnRvcmRlcg0KCQkJJHF1ZXJ5ID0gIlNFTEVDVCBNQVgoc29ydG9yZGVyKSBBUyBtYXhzb3J0b3JkZXIgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYiI7DQoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoJCQlpZiggJHJlc3VsdCApDQoJCQl7DQoJCQkJJHRhYiA9ICRyZXN1bHQtPkZldGNoUm93KCk7DQoJCQkJJGVkaXRvcnMgPSBlbXB0eSgkcGFyYW1zWydlZGl0b3JzJ10pID8gJycgOiBpbXBsb2RlKCc7JywgJHBhcmFtc1snZWRpdG9ycyddKTsNCgkJCQkNCgkJCQkvLyBzYXZlIHRhYg0KCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYiAobmFtZSwgc29ydG9yZGVyLCBlZGl0b3JzKSBWQUxVRVMgKD8sPyw/KSI7DQoJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ25hbWUnXSwgJHRhYlsnbWF4c29ydG9yZGVyJ10gKyAxLCAkZWRpdG9ycykpOw0KCQkJfQ0KCQkJaWYoIGlzc2V0KCRyZXN1bHQpICYmICRyZXN1bHQgKQ0KCQkJew0KCQkJCS8vIFB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCQkJCWF1ZGl0KCRkYi0+SW5zZXJ0X0lEKCksICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVGFiJywgJ0FkZGVkOiAnIC4gJHBhcmFtc1snbmFtZSddKTsNCgkJCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICd0YWJhZGRlZCcsICdhY3RpdmVfdGFiJyA9PiAndGFicycpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJz0+ICd1cGRhdGVmYWlsZWQnLCAnYWN0aXZlX3RhYicgPT4gJ3RhYnMnKTsNCgkJCX0NCg0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJfQ0KCQkkdGFiID0gYXJyYXkoJ25hbWUnID0+ICcnLCAnZWRpdG9ycycgPT4gJycpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ3RpdGxlJyxsYW5nKCdhZGQnKSk7DQoJCSRzbWFydHktPmFzc2lnbignaGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAnYWRkJykpOw0KCQlicmVhazsNCg0KDQoJY2FzZSAnZGVsZXRlJzoNCgkJaWYoICFpc19udW1lcmljKCRwYXJhbXNbJ3RhYmlkJ10pICkNCgkJew0KCQkJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InID0+IGxhbmcoJ21pc3NpbmdwYXJhbXMnKSwgJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQkJcmV0dXJuOw0KCQl9DQoJCQ0KCQkkdGFiID0gJHRoaXMtPkdldFRhYigkcGFyYW1zWyd0YWJpZCddKTsNCgkJaWYoICR0YWIgPT09IEZBTFNFICkNCgkJew0KCQkJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InPT4gJ3VwZGF0ZWZhaWxlZCcsICdhY3RpdmVfdGFiJyA9PiAndGFicycpOw0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJfQ0KCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiIFdIRVJFIHRhYmlkID0gPyI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ3RhYmlkJ10pKTsNCgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIFdIRVJFIHRhYmlkID0gPyI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ3RhYmlkJ10pKTsNCgkJLy8gUHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQoJCWF1ZGl0KCRwYXJhbXNbJ3RhYmlkJ10sICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVGFiJywgJ0RlbGV0ZWQ6ICcgLiAkdGFiWyduYW1lJ10pOw0KDQoJCS8vIHVwZGF0ZSB0aGUgc29ydG9yZGVyDQoJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiIFNFVCBzb3J0b3JkZXIgPSBzb3J0b3JkZXIgLSAxIFdIRVJFIHNvcnRvcmRlciA+ID8iOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRhYlsnc29ydG9yZGVyJ10pKTsNCg0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICd0YWJ1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCWJyZWFrOw0KDQoNCgljYXNlICdlZGl0JzoNCgkJaWYoICFpc19udW1lcmljKCRwYXJhbXNbJ3RhYmlkJ10pICkNCgkJew0KCQkJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InID0+IGxhbmcoJ21pc3NpbmdwYXJhbXMnKSwgJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJJHRhYiA9ICR0aGlzLT5HZXRUYWIoJHBhcmFtc1sndGFiaWQnXSk7DQoNCgkJaWYoICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09ICdQT1NUJyApDQoJCXsNCgkJCS8vIGNoZWNrIGlmIG5hbWUgaXMgZW1wdHkNCgkJCWlmICggZW1wdHkoJHBhcmFtc1snbmFtZSddKSApDQoJCQl7DQoJCQkJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InID0+IGxhbmcoJ21pc3NpbmdwYXJhbXMnKSk7DQoJCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXR0YWInLCAnJywgJHBhcmFtcyk7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkJLy8gY2hlY2sgaWYgbmFtZSBhbHJlYWR5IGV4aXN0cw0KCQkJJGNoZWNrdGFibmFtZSA9ICR0aGlzLT5HZXRUYWIoJHBhcmFtc1snbmFtZSddKTsNCgkJCVdoaWxlICggJGNoZWNrdGFibmFtZSAhPT0gRkFMU0UgJiYgJHBhcmFtc1sndGFiaWQnXSAhPSAkY2hlY2t0YWJuYW1lWyd0YWJpZCddICkNCgkJCXsNCgkJCQlpZiAoIGlzX251bWVyaWMoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTEpKSApDQoJCQkJew0KCQkJCQkkcGFyYW1zWyduYW1lJ10gPSBpc19udW1lcmljKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0yKSkgPyBzdWJzdHIoJHBhcmFtc1snbmFtZSddLDAgLCAtMikgLiAoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTIpICsgMSkgOiBzdWJzdHIoJHBhcmFtc1snbmFtZSddLDAgLCAtMSkgLiAoc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwgLTEpICsgMSk7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSRwYXJhbXNbJ25hbWUnXSAuPSAiMSI7DQoJCQkJfQ0KCQkJCSRjaGVja3RhYm5hbWUgPSAkdGhpcy0+R2V0VGFiKCRwYXJhbXNbJ25hbWUnXSk7DQoJCQl9DQoJCQkkZWRpdG9ycyA9IGVtcHR5KCRwYXJhbXNbJ2VkaXRvcnMnXSkgPyAnJyA6IGltcGxvZGUoJzsnLCAkcGFyYW1zWydlZGl0b3JzJ10pOw0KDQoJCQkvLyBzYXZlIHRhYg0KCQkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWIgU0VUIG5hbWUgPSA/LCBlZGl0b3JzID0gPyBXSEVSRSB0YWJpZCA9ID8iOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ25hbWUnXSwgJGVkaXRvcnMsICRwYXJhbXNbJ3RhYmlkJ10pKTsNCg0KCQkJLy8gUHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQoJCQlhdWRpdCgkcGFyYW1zWyd0YWJpZCddLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFRhYicsICdFZGl0ZWQ6ICcgLiAkcGFyYW1zWyduYW1lJ10pOw0KDQoJCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICd0YWJ1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQl9DQoNCgkJJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsbGFuZygnZWRpdCcpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAndGFiaWQnLCAkcGFyYW1zWyd0YWJpZCddKSAuDQoJCQkJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICdlZGl0JykpOw0KCQlicmVhazsNCg0KDQoJY2FzZSAnbW92ZXVwJzoNCgljYXNlICdtb3ZlZG93bic6DQoJCSR0YWIgPSAkdGhpcy0+R2V0VGFiKCRwYXJhbXNbJ3RhYmlkJ10pOw0KCQlpZiggJHRhYiA9PT0gRkFMU0UgKQkJIA0KCQl7DQoJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcic9PiAndXBkYXRlZmFpbGVkJywgJ2FjdGl2ZV90YWInID0+ICd0YWJzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQl9DQoNCgkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWIgU0VUIHNvcnRvcmRlciA9ICIgLiAoJHBhcmFtc1snbW9kZSddID09ICdtb3ZldXAnID8gJ3NvcnRvcmRlciArIDEnIDogJ3NvcnRvcmRlciAtIDEnKSAuICIgV0hFUkUgc29ydG9yZGVyID0gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydtb2RlJ10gPT0gJ21vdmV1cCcgPyAkdGFiWydzb3J0b3JkZXInXSAtIDEgOiAkdGFiWydzb3J0b3JkZXInXSArIDEpKTsNCg0KCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzX3RhYiBTRVQgc29ydG9yZGVyID0gIiAuICgkcGFyYW1zWydtb2RlJ10gPT0gJ21vdmV1cCcgPyAnc29ydG9yZGVyIC0gMScgOiAnc29ydG9yZGVyICsgMScpIC4gIiBXSEVSRSB0YWJpZCA9ID8iOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1sndGFiaWQnXSkpOw0KDQoJCSRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ3RhYnMnKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJYnJlYWs7DQoNCgkJDQoJY2FzZSAnc29ydCc6DQoJCWlmICggIWVtcHR5KCRwYXJhbXNbJ3NvcnRzZXEnXSkgKQ0KCQl7DQoJCQkkc29ydHNlcSA9IHN0cl9yZXBsYWNlKCdpJywgJycsICRwYXJhbXNbJ3NvcnRzZXEnXSk7DQoJCQkkc29ydGVudHJpZXMgPSBleHBsb2RlKCcsJywgJHNvcnRzZXEpOw0KCQkJZm9yZWFjaCAoICRzb3J0ZW50cmllcyBhcyAka2V5ID0+ICR0YWJpZCApDQoJCQl7DQoJCQkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWIgU0VUIHNvcnRvcmRlciA9ID8gV0hFUkUgdGFiaWQgPSA/IjsNCgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgka2V5ICsgMSwgJHRhYmlkKSk7DQoJCQl9DQoJCX0NCgkJZXhpdCgpOw0KCQlicmVhazsNCg0KfQ0KDQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X25hbWUnLCBsYW5nKCduYW1lJykpOw0KJHNtYXJ0eS0+YXNzaWduKCduYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJHRhYlsnbmFtZSddLCA0MCApKTsNCg0KJGVkaXRvcnNsaXN0ID0gYXJyYXkoKTsNCiRkaXNhYmxlZCA9ICcnOw0KJGdyb3Vwb3BzID0gJGdDbXMtPkdldEdyb3VwT3BlcmF0aW9ucygpOw0KJGdyb3VwcyA9ICRncm91cG9wcy0+TG9hZEdyb3VwcygpOw0KZm9yZWFjaCAoJGdyb3VwcyBhcyAkb25lZ3JvdXApDQp7DQoJLy9pZiggJG9uZWdyb3VwLT5pZCA9PSAxICkgY29udGludWU7DQoJJGVkaXRvcnNsaXN0W2xhbmcoJ2dyb3VwJykgLiAnOiAnIC4gJG9uZWdyb3VwLT5uYW1lXSA9ICRvbmVncm91cC0+aWQ7DQp9DQokc2VsZWN0ZWRlZGl0b3JzID0gZXhwbG9kZSgnOycsICR0YWJbJ2VkaXRvcnMnXSk7DQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9lZGl0b3JzJywgbGFuZygnZ3JvdXBwZXJtaXNzaW9ucycpKTsNCiRzbWFydHktPmFzc2lnbignZWRpdG9ycycsICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCAnZWRpdG9yc1tdJywgJGVkaXRvcnNsaXN0LCAkc2VsZWN0ZWRlZGl0b3JzLCA0LCAkZGlzYWJsZWQpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0YnV0dG9uJywgbGFuZygnc3VibWl0JykpKTsNCiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdHRhYi50cGwnKTsNCg0KIw0KIyBFT0YNCiMNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.save_general.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggYW5kIGJleW9uZCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24NCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICggIWNtc21zKCkgKSBleGl0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnKSApICR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQpOw0KDQokdGFiaWQgPSAkcGFyYW1zWyd0YWJpZCddOw0KLy8gR2V0IHRoZSBmaWVsZHMgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlZGl0Lg0KJGZpZWxkcyA9ICR0aGlzLT5HZXRGaWVsZHMoJHRhYmlkKTsNCiRjbGVhcmNhY2hlID0gMDsNCg0KZm9yZWFjaCggJGZpZWxkcyBhcyAka2V5ID0+ICRmbGQgKQ0Kew0KCSR2YWx1ZSA9ICRmbGRbJ3ZhbHVlJ107DQoJJG5ld3ZhbHVlID0gaXNzZXQoJHBhcmFtc1snZmllbGQnXVskdGFiaWRdWyRrZXldKSA/ICRwYXJhbXNbJ2ZpZWxkJ11bJHRhYmlkXVska2V5XSA6IDA7DQoJCQ0KCS8vIFNlbnQgZXZlbnQgb25seSB3aGVuIHZhbHVlIGhhcyBjaGFuZ2VkLg0KCWlmICggJG5ld3ZhbHVlICE9ICR2YWx1ZSApDQoJew0KCQlpZiAoICRmbGRbJ3R5cGUnXSAhPSAnYnV0dG9uJyApDQoJCXsNCgkJCS8vIFNhdmUgZmllbGQgdmFsdWUNCgkJCSRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgU0VUIHZhbHVlPT8gV0hFUkUgZmllbGRpZD0/IjsNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbmV3dmFsdWUsICRrZXkpKTsNCgkJfQ0KDQoJCSR0aGlzLT5TZW5kRXZlbnQoJ09uU2V0dGluZ0NoYW5nZScsIGFycmF5KA0KCQkJCQknZmllbGRpZCcgPT4gJGZsZFsnZmllbGRpZCddLA0KCQkJCQknbmFtZScgPT4gJGZsZFsnbmFtZSddLA0KCQkJCQknYWxpYXMnID0+IHN0cl9yZXBsYWNlKCdfXycsICdfJywgc3RyX3JlcGxhY2UoJy0nLCAnXycsIG11bmdlX3N0cmluZ190b191cmwoJGZsZFsnbmFtZSddKSkpLA0KCQkJCQkndmFsdWUnID0+ICRuZXd2YWx1ZSwNCgkJCQkJJ2NsZWFyY2FjaGUnID0+ICRmbGRbJ2NsZWFyY2FjaGUnXQ0KCQkpKTsNCgkJJGNsZWFyY2FjaGUgPSAkY2xlYXJjYWNoZSB8fCAkZmxkWydjbGVhcmNhY2hlJ107DQoJfQ0KfQ0KDQovLyBDbGVhciB0aGUgc3R5bGVzaGVldCBjYWNoZSBpZiByZXF1aXJlZCBieSBvbmUgb2YgdGhlIGZpZWxkcyBhbmQgb25seSBpZiB0aGF0IGZpZWxkIGhhcyBiZWVuIGNoYW5nZWQNCmlmICggJGNsZWFyY2FjaGUgKSAkdGhpcy0+Q2xlYXJTdHlsZXNoZWV0Q2FjaGUoKTsNCg0KLy8gU2hvdyBzYXZlZCBwYXJhbWV0ZXJzIGluIGRlYnVnIG1vZGUNCmRlYnVnX2Rpc3BsYXkoJHBhcmFtcyk7DQoNCi8vIFB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KYXVkaXQoJycsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gR2VuZXJhbCB0YWInLCAnU2F2ZWQnKTsNCg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnc2V0dGluZ3NzYXZlZCcpLCAnYWN0aXZlX3RhYicgPT4gJ3RhYicgLiAkdGFiaWQpKTsNCg0KIw0KIyBFT0YNCiMNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.save_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggYW5kIGJleW9uZCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24NCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICggIWNtc21zKCkgKSBleGl0Ow0KDQppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSkNCiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7DQoNCi8vIENoZWNrIGZvciB4bWwgaW1wb3J0DQokeG1sZmllbGQgPSAkaWQgLiAneG1sZmlsZSc7DQppZiAoIWVtcHR5KCRfRklMRVNbJHhtbGZpZWxkXVsnbmFtZSddKSkNCnsNCiAgaWYgKCRfRklMRVNbJHhtbGZpZWxkXVsndHlwZSddID09ICd0ZXh0L3htbCcpDQogIHsNCiAgICAkeG1sID0gZmlsZV9nZXRfY29udGVudHMoJF9GSUxFU1skeG1sZmllbGRdWyd0bXBfbmFtZSddKTsNCiAgICAkZGF0YSA9IG5ldyBTaW1wbGVYTUxFbGVtZW50KCR4bWwpOw0KICAgICRkYiA9IGNtc21zKCktPkdldERCKCk7DQoNCiAgICAvL2ZpZWxkcw0KICAgICRzcWwgPSAnU0VMRUNUIGZpZWxkaWQsIG5hbWUsIHR5cGUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9jdXN0b21ncyBPUkRFUiBCWSBmaWVsZGlkJzsNCiAgICAkcmVzdWx0ID0gJGRiLT5HZXRBbGwoJHNxbCk7DQogICAgaWYgKGlzX2FycmF5KCRyZXN1bHQpKQ0KICAgIHsNCiAgICAgICRjdXJmbGRzID0gYXJyYXkoKTsNCiAgICAgIGZvcmVhY2ggKCRyZXN1bHQgYXMgJHJvdykNCiAgICAgIHsNCiAgICAgICAgJGN1cmZsZHNbJHJvd1snbmFtZSddXSA9IGFycmF5KCdmaWVsZGlkJyA9PiAkcm93WydmaWVsZGlkJ10sICd0eXBlJyA9PiAkcm93Wyd0eXBlJ10pOw0KICAgICAgfQ0KICAgIH0NCiAgICBmb3JlYWNoICgkZGF0YS0+ZmllbGRzLT5maWVsZCBhcyAkZmllbGQpDQogICAgew0KICAgICAgJGZpZWxkbmFtZSA9IChzdHJpbmcpICRmaWVsZC0+bmFtZTsNCiAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRmaWVsZG5hbWUsICRjdXJmbGRzKSkNCiAgICAgIHsNCiAgICAgICAgJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY3VzdG9tZ3MgU0VUIA0KICAgICAgICAgICAgICBuYW1lID0gPywgaGVscCA9ID8sIHR5cGUgPSA/LCBwcm9wZXJ0aWVzID0gPywgY2xlYXJjYWNoZSA9ID8sIHNvcnRvcmRlciA9ID8sIHZhbHVlID0gPw0KICAgICAgICAgICAgV0hFUkUgZmllbGRpZCA9ID8nOw0KICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KA0KICAgICAgICAgICAgKHN0cmluZykgJGZpZWxkLT5uYW1lLA0KICAgICAgICAgICAgKHN0cmluZykgJGZpZWxkLT5oZWxwLA0KICAgICAgICAgICAgKHN0cmluZykgJGZpZWxkLT50eXBlLA0KICAgICAgICAgICAgKHN0cmluZykgJGZpZWxkLT5wcm9wZXJ0aWVzLA0KICAgICAgICAgICAgKGludCkgJGZpZWxkLT5jbGVhcmNhY2hlLA0KICAgICAgICAgICAgKGludCkgJGZpZWxkLT5zb3J0b3JkZXIsDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPnZhbHVlLA0KICAgICAgICAgICAgJGN1cmZsZHNbJGZpZWxkbmFtZV1bJ2ZpZWxkaWQnXQ0KICAgICAgICApKTsNCiAgICAgICAgJGZpZWxkcmVmWyhpbnQpICRmaWVsZC0+ZmllbGRpZF0gPSAkY3VyZmxkc1skZmllbGRuYW1lXVsnZmllbGRpZCddOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2N1c3RvbWdzIA0KICAgICAgICAgICAgICAobmFtZSwgaGVscCwgdHlwZSwgcHJvcGVydGllcywgY2xlYXJjYWNoZSwgc29ydG9yZGVyLCB2YWx1ZSkNCiAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyknOw0KICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KA0KICAgICAgICAgICAgKHN0cmluZykgJGZpZWxkLT5uYW1lLA0KICAgICAgICAgICAgKHN0cmluZykgJGZpZWxkLT5oZWxwLA0KICAgICAgICAgICAgKHN0cmluZykgJGZpZWxkLT50eXBlLA0KICAgICAgICAgICAgKHN0cmluZykgJGZpZWxkLT5wcm9wZXJ0aWVzLA0KICAgICAgICAgICAgKGludCkgJGZpZWxkLT5jbGVhcmNhY2hlLA0KICAgICAgICAgICAgKGludCkgJGZpZWxkLT5zb3J0b3JkZXIsDQogICAgICAgICAgICAoc3RyaW5nKSAkZmllbGQtPnZhbHVlDQogICAgICAgICkpOw0KICAgICAgICAkZmllbGRyZWZbKGludCkgJGZpZWxkLT5maWVsZGlkXSA9ICRkYi0+SW5zZXJ0X0lEKCk7DQogICAgICB9DQogICAgfQ0KDQogICAgLy8gdGFicw0KICAgICRzcWwgPSAnU0VMRUNUIHRhYmlkLCBuYW1lLCBzb3J0b3JkZXIgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9jdXN0b21nc190YWIgT1JERVIgQlkgc29ydG9yZGVyJzsNCiAgICAkcmVzdWx0ID0gJGRiLT5HZXRBbGwoJHNxbCk7DQogICAgaWYgKGlzX2FycmF5KCRyZXN1bHQpKQ0KICAgIHsNCiAgICAgICRjdXJ0YWJzID0gYXJyYXkoKTsNCiAgICAgIGZvcmVhY2ggKCRyZXN1bHQgYXMgJHJvdykNCiAgICAgIHsNCiAgICAgICAgJGN1cnRhYnNbJHJvd1snbmFtZSddXSA9ICRyb3dbJ3RhYmlkJ107DQogICAgICB9DQogICAgICAkc29ydG1heCA9ICRyb3dbJ3NvcnRvcmRlciddICsgMTsNCiAgICB9DQogICAgZm9yZWFjaCAoJGRhdGEtPnRhYnMtPnRhYiBhcyAkdGFiKQ0KICAgIHsNCiAgICAgICR0YWJuYW1lID0gKHN0cmluZykgJHRhYi0+bmFtZTsNCiAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCR0YWJuYW1lLCAkY3VydGFicykpDQogICAgICB7DQogICAgICAgIC8vIGRvbid0IHVwZGF0ZSB0aGUgc29ydG9yZGVyIG9mIHRhYnMNCiAgICAgICAgJHRhYnJlZlsoaW50KSAkdGFiLT50YWJpZF0gPSAkY3VydGFic1skdGFibmFtZV07DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY3VzdG9tZ3NfdGFiIA0KICAgICAgICAgICAgICAobmFtZSwgc29ydG9yZGVyKQ0KICAgICAgICAgICAgVkFMVUVTICg/LD8pJzsNCiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgNCiAgICAgICAgICAgIChzdHJpbmcpICR0YWItPm5hbWUsDQogICAgICAgICAgICAkc29ydG1heCsrDQogICAgICAgICkpOw0KICAgICAgICAkdGFicmVmWyhpbnQpICR0YWItPnRhYmlkXSA9ICRkYi0+SW5zZXJ0X0lEKCk7DQogICAgICB9DQogICAgfQ0KDQogICAgLy8gdGFiZmllbGRzDQogICAgZm9yZWFjaCAoJGRhdGEtPnRhYmZpZWxkcy0+dGFiZmllbGQgYXMgJHRhYmZpZWxkKQ0KICAgIHsNCiAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQNCiAgICAgICAgICAgICh0YWJpZCwgZmllbGRpZCkNCiAgICAgICAgICBWQUxVRVMgKD8sPyknOw0KICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgNCiAgICAgICAgICAkdGFicmVmWyhpbnQpICR0YWJmaWVsZC0+dGFiaWRdLA0KICAgICAgICAgICRmaWVsZHJlZlsoaW50KSAkdGFiZmllbGQtPmZpZWxkaWRdDQogICAgICApKTsNCiAgICB9DQogIH0NCn0NCgkJCQkNCg0KLy8gU2F2ZSBQYXJhbWV0ZXJzIE9wdGlvbnMgVGFiDQppZiAoaXNzZXQoJHhtbCkgJiYgIWVtcHR5KChzdHJpbmcpICRkYXRhLT5jdXN0b21fbW9kdWxlbmFtZSkgJiYgaW5fYXJyYXkoKHN0cmluZykgJGRhdGEtPmFkbWluX3NlY3Rpb24sIGFycmF5KCdtYWluJywgJ2NvbnRlbnQnLCAnbGF5b3V0JywgJ3VzZXJzZ3JvdXBzJywgJ2V4dGVuc2lvbnMnLCAnYWRtaW4nLCAnbXlwcmVmcycpKSkNCnsNCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJywgKHN0cmluZykgJGRhdGEtPmN1c3RvbV9tb2R1bGVuYW1lKTsNCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX3NlY3Rpb24nLCAoc3RyaW5nKSAkZGF0YS0+YWRtaW5fc2VjdGlvbik7DQp9DQplbHNlDQp7DQogIGlmIChpc3NldCgkcGFyYW1zWydpbnB1dF9jdXN0b21fbW9kdWxlbmFtZSddKSkNCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnLCAkcGFyYW1zWydpbnB1dF9jdXN0b21fbW9kdWxlbmFtZSddKTsNCiAgaWYgKGlzc2V0KCRwYXJhbXNbJ2lucHV0X2FkbWluX3NlY3Rpb24nXSkpDQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX3NlY3Rpb24nLCAkcGFyYW1zWydpbnB1dF9hZG1pbl9zZWN0aW9uJ10pOw0KfQ0KDQovLyBUb3VjaCBjYWNoZSBmaWxlcw0KZm9yZWFjaCAoIGdsb2IoY21zX2pvaW5fcGF0aChUTVBfQ0FDSEVfTE9DQVRJT04sICJjYWNoZSouY21zIikpIGFzICRmaWxlbmFtZSApIHRvdWNoKCAkZmlsZW5hbWUsIHRpbWUoKSAtIDM2MDAwMCApOw0KDQoNCi8vIFNob3cgc2F2ZWQgcGFyYW1ldGVycyBpbiBkZWJ1ZyBtb2RlDQpkZWJ1Z19kaXNwbGF5KCRwYXJhbXMpOw0KDQovLyBQdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCmF1ZGl0KCcnLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE9wdGlvbnMgdGFiJywgJ1NhdmVkJyk7DQoNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfbWVzc2FnZScgPT4gJHRoaXMtPkxhbmcoJ3NldHRpbmdzc2F2ZWQnKSwgJ2FjdGl2ZV90YWInID0+ICdvcHRpb25zJykpOw0KDQojDQojIEVPRg0KIw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.xml_export.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggYW5kIGJleW9uZCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24NCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICggIWNtc21zKCkgKSBleGl0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSApICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOw0KDQokeG1sID0gbmV3IFNpbXBsZVhNTEVsZW1lbnQoJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PGRhdGEvPicpOw0KJHhtbC0+YWRkQ2hpbGQoJ21vZHVsZScsICR0aGlzLT5HZXROYW1lKCkpOw0KJHhtbC0+YWRkQ2hpbGQoJ3ZlcnNpb24nLCAkdGhpcy0+R2V0VmVyc2lvbigpKTsNCiR4bWwtPmFkZENoaWxkKCdjdXN0b21fbW9kdWxlbmFtZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF9jdXN0b21fbW9kdWxlbmFtZScpKTsNCiR4bWwtPmFkZENoaWxkKCdhZG1pbl9zZWN0aW9uJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkbWluX3NlY3Rpb24nLCAnZXh0ZW5zaW9ucycpKTsNCmdsb2JhbCAkQ01TX1ZFUlNJT047DQokeG1sLT5hZGRDaGlsZCgnY21zdmVyc2lvbicsICRDTVNfVkVSU0lPTik7DQokeG1sLT5hZGRDaGlsZCgnZXhwb3J0ZGF0ZScsIGRhdGUoJ1ktbS1kIEg6aTpzJykpOw0KDQokZGIgPSBjbXNtcygpLT5HZXREQigpOw0KDQokZmllbGRzID0gJHhtbC0+YWRkQ2hpbGQoJ2ZpZWxkcycpOw0KJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2N1c3RvbWdzIE9SREVSIEJZIHNvcnRvcmRlcic7DQokcmVzdWx0ID0gJGRiLT5HZXRBbGwoJHNxbCk7DQppZiAoaXNfYXJyYXkoJHJlc3VsdCkpDQp7DQogIGZvcmVhY2ggKCRyZXN1bHQgYXMgJHJvdykNCiAgew0KICAgICRmaWVsZCA9ICRmaWVsZHMtPmFkZENoaWxkKCdmaWVsZCcpOw0KICAgIGZvcmVhY2ggKCRyb3cgYXMgJGtleSA9PiAkdmFsKQ0KICAgIHsNCiAgICAgICRmaWVsZC0+eyRrZXl9ID0gJHZhbDsNCiAgICB9DQogIH0NCn0NCg0KJHRhYnMgPSAkeG1sLT5hZGRDaGlsZCgndGFicycpOw0KJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2N1c3RvbWdzX3RhYiBPUkRFUiBCWSBzb3J0b3JkZXInOw0KJHJlc3VsdCA9ICRkYi0+R2V0QWxsKCRzcWwpOw0KaWYgKGlzX2FycmF5KCRyZXN1bHQpKQ0Kew0KICBmb3JlYWNoICgkcmVzdWx0IGFzICRyb3cpDQogIHsNCiAgICAkdGFiID0gJHRhYnMtPmFkZENoaWxkKCd0YWInKTsNCiAgICBmb3JlYWNoICgkcm93IGFzICRrZXkgPT4gJHZhbCkNCiAgICB7DQogICAgICAkdGFiLT57JGtleX0gPSAkdmFsOw0KICAgIH0NCiAgfQ0KfQ0KDQokdGFiZmllbGRzID0gJHhtbC0+YWRkQ2hpbGQoJ3RhYmZpZWxkcycpOw0KJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIE9SREVSIEJZIHRhYmlkJzsNCiRyZXN1bHQgPSAkZGItPkdldEFsbCgkc3FsKTsNCmlmIChpc19hcnJheSgkcmVzdWx0KSkNCnsNCiAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KQ0KICB7DQogICAgJHRhYmZpZWxkID0gJHRhYmZpZWxkcy0+YWRkQ2hpbGQoJ3RhYmZpZWxkJyk7DQogICAgZm9yZWFjaCAoJHJvdyBhcyAka2V5ID0+ICR2YWwpDQogICAgew0KICAgICAgJHRhYmZpZWxkLT57JGtleX0gPSAkdmFsOw0KICAgIH0NCiAgfQ0KfQ0KDQpoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7DQpoZWFkZXIoJ0V4cGlyZXM6IDAnKTsNCmhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7DQpoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsNCmhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRXhwb3J0Jyk7DQpoZWFkZXIoJ0NvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXInKTsNCmhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZCcpOw0KaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1DdXN0b21HbG9iYWxTZXR0aW5nc19leHBvcnQueG1sJyk7DQpoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC94bWw7IGNoYXJzZXQ9dXRmLTgnKTsgDQoNCmVjaG8gJHhtbC0+YXNYTUwoKTsNCg0KLy8kdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnbW9kdWxlX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCd4bWxjcmVhdGVkJyksICdhY3RpdmVfdGFiJyA9PiAnb3B0aW9ucycpKTsNCg0KIw0KIyBFT0YNCiMNCj8+]]></data>
	</file>
	<file>
	  <filename>/CustomGS.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBDdXN0b20gR2xvYmFsIFNldHRpbmdzDQojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIChjKSAyMDExIC0gMjAxOCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIERldmVsb3BtZW50IFRlYW0NCiMgKGMpIDIwMTggYW5kIGJleW9uZCBieSBUaGUgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24NCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICggIWNtc21zKCkgKSBleGl0Ow0KDQpjbGFzcyBDdXN0b21HUyBleHRlbmRzIENNU01vZHVsZQ0Kew0KCWZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAnQ3VzdG9tR1MnOyB9DQoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgeyByZXR1cm4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJyk7IH0NCglmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzMuNSc7IH0NCglmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsgcmV0dXJuICcyLjInOyB9DQoJZnVuY3Rpb24gR2V0SGVscCgpIHsgcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2hlbHAudHBsJyk7IH0NCglmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnUm9sZiBUamFzc2VucywgSm9zJzsgfQ0KCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyByZXR1cm4gJ2pvc3ZkIGF0IGxpdmUgZG90IG5sJzsgfQ0KCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsgcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2NoYW5nZWxvZy50cGwnKTsgfQ0KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gdHJ1ZTsgfQ0KCWZ1bmN0aW9uIEhhc0FkbWluKCkgeyByZXR1cm4gdHJ1ZTsgfQ0KCWZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgcmV0dXJuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbl9zZWN0aW9uJywgJ2V4dGVuc2lvbnMnKTsgfQ0KCWZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7IHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsgfQ0KCWZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpIHsgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJyk7IH0NCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKSB7IHJldHVybiBhcnJheSgpOyB9DQoJDQoJZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkgew0KCQkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsNCgkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvd3ZhcnMnLENMRUFOX0lOVCk7DQoJCQ0KCQkkZmllbGRzID0gJHRoaXMtPkdldFNldHRpbmdzKCk7DQoNCgkJLy8gYnkgZXhjZXB0aW9uIHdlIHVzZSBhc3NpZ25HbG9iYWwgaW4gc3RlYWQgb2YgYXNzaWduIHRvIG1ha2UgdGhlIHZhcmlhYmxlIGdsb2JhbCBieSBkZWZhdWx0LiBOb3QgdG8gdXNlIGluIG90aGVyIG1vZHVsZXMhDQoJCWNtc21zKCktPkdldFNtYXJ0eSgpLT5hc3NpZ25HbG9iYWwoJ0N1c3RvbUdTJywgJGZpZWxkcyk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKQ0KCXsNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2hvd3ZhcnMnLDEsJ1NldCB0aGlzIHBhcmFtZXRlciB0byBzaG93IGFsbCBhdmFpbGFibGUgdmFyaWFibGVzIGFuZCB0aGVpciB2YWx1ZXMuIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuJyk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oJGV2ZW50bmFtZSkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2luZm9fJy4kZXZlbnRuYW1lICk7IH0NCglmdW5jdGlvbiBHZXRFdmVudEhlbHAoJGV2ZW50bmFtZSkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7IH0NCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsgfQ0KCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygndW5pbnN0YWxsX2NvbmZpcm0nKTsgfQ0KCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQ0KDQoJZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpDQoJew0KCQkkY2dzX3VybF9wYXRoID0gJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKTsNCg0KCQkkdG1wbCA9IDw8PEVPVA0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJGNnc191cmxfcGF0aC9saWIvanF1ZXJ5L2NvbG9ycGlja2VyLmNzcyIgbWVkaWE9ImFsbCI+DQo8c2NyaXB0IHNyYz0iJGNnc191cmxfcGF0aC9saWIvanF1ZXJ5L2pxdWVyeS50YWJsZWRuZC5qcyI+PC9zY3JpcHQ+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5jbXNfbGFiZWwgeyBtYXJnaW4tcmlnaHQ6MTJweDsgfQ0KCS5zbWFydHl2YXIgeyBwYWRkaW5nOjAgM3B4OyBjdXJzb3I6dGV4dDsgfQ0KCS8qIGNzcyBmb3IgdGltZXBpY2tlciAqLw0KCS51aS10aW1lcGlja2VyLWRpdiAudWktd2lkZ2V0LWhlYWRlciB7IG1hcmdpbi1ib3R0b206IDhweDsgfQ0KCS51aS10aW1lcGlja2VyLWRpdiBkbCB7IHRleHQtYWxpZ246IGxlZnQ7IH0NCgkudWktdGltZXBpY2tlci1kaXYgZGwgZHQgeyBoZWlnaHQ6IDI1cHg7IG1hcmdpbi1ib3R0b206IC0yNXB4OyB9DQoJLnVpLXRpbWVwaWNrZXItZGl2IGRsIGRkIHsgbWFyZ2luOiAwIDEwcHggMTBweCA2NXB4OyB9DQoJLnVpLXRpbWVwaWNrZXItZGl2IHRkIHsgZm9udC1zaXplOiA5MCU7IH0NCgkudWktdHBpY2tlci1ncmlkLWxhYmVsIHsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0NCg0KCS5jZ3NfcGFnZXNlbGVjdCB7DQoJCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCgkJaGVpZ2h0OjMycHg7DQoJCW92ZXJmbG93OmhpZGRlbjsNCgl9DQoJCQkJDQoJLmNnc19maWVsZHNldCB7DQoJCQltYXJnaW4tdG9wOjEwcHg7DQoJCQlwYWRkaW5nLXRvcDowOw0KCQkJcGFkZGluZy1ib3R0b206MTBweDsNCgl9DQoNCgkuY2dzX2NvbGxhcHNpYmxlIHsNCgkJCWN1cnNvcjogcG9pbnRlcjsNCgl9DQoNCgkuY29sbGFwc2Utb3BlbiBzcGFuIHsNCgkJCWRpc3BsYXk6aW5saW5lLWJsb2NrOw0KCQkJd2lkdGg6MTRweDsNCgkJCWhlaWdodDoxNHB4Ow0KCQkJYmFja2dyb3VuZDp1cmwoJGNnc191cmxfcGF0aC9saWIvanF1ZXJ5L2ltYWdlcy91aS1pY29uc180NTQ1NDVfMjU2eDI0MC5wbmcpIC0xOHB4IC0xOTJweCBuby1yZXBlYXQ7DQoJfQ0KDQoJLmNvbGxhcHNlLWNsb3NlIHNwYW4gew0KCQkJZGlzcGxheTppbmxpbmUtYmxvY2s7DQoJCQl3aWR0aDoxNHB4Ow0KCQkJaGVpZ2h0OjE0cHg7DQoJCQliYWNrZ3JvdW5kOnVybCgkY2dzX3VybF9wYXRoL2xpYi9qcXVlcnkvaW1hZ2VzL3VpLWljb25zXzQ1NDU0NV8yNTZ4MjQwLnBuZykgLTJweCAtMTkycHggbm8tcmVwZWF0Ow0KCX0NCjwvc3R5bGU+DQpFT1Q7DQoJCXJldHVybiAkdG1wbDsNCgl9DQoNCg0KCS8qKg0KCSogTWV0aG9kIHRvIGdldCBwYXJhbWV0ZXJzIG9mIGEgZmllbGQgYnkgbmFtZSBvciBieSBmaWVsZGlkDQoJKg0KCSogQGZpbmFsDQoJKiBAYWNjZXNzIHB1YmxpYw0KCSogQHJldHVybiBhcnJheSgpDQoJKi8NCglmdW5jdGlvbiBHZXRGaWVsZCgkZmllbGQpDQoJew0KCQkkZGIgPSBjbXNtcygpLT5HZXREQigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIFdIRVJFIGZpZWxkaWQ9PyBPUiBuYW1lPT8gT1JERVIgQlkgZmllbGRpZCBERVNDIjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmaWVsZCwgJGZpZWxkKSk7DQoJCWlmKCAkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkNCgkJew0KCQkJJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkcm93ID0gRkFMU0U7DQoJCX0NCgkJcmV0dXJuICRyb3c7DQoJfQ0KDQoNCgkvKioNCgkqIE1ldGhvZCB0byBnZXQgcGFyYW1ldGVycyBvZiBmaWVsZHMNCgkqDQoJKiBAZmluYWwNCgkqIEBhY2Nlc3MgcHVibGljDQoJKiBAcmV0dXJuIGFycmF5KCkNCgkqLw0KCWZ1bmN0aW9uIEdldEZpZWxkcygkdGFiaWQpDQoJew0KCQkkdXNlcmlkID0gZ2V0X3VzZXJpZCgpOw0KCQkkdXNlcm9wcyA9IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7DQoJCSRhZG1pbnBlcm0gPSAkdXNlcm9wcy0+VXNlckluR3JvdXAoJHVzZXJpZCwgMSk7IC8vIGlzIGFkbWluDQoJCQ0KCQkkZmllbGRzID0gYXJyYXkoKTsNCg0KCQkkZGIgPSBjbXNtcygpLT5HZXREQigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUIGYuKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MgZg0KCQkJCQlKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgdGYgT04gZi5maWVsZGlkID0gdGYuZmllbGRpZCBBTkQgdGYudGFiaWQgPSA/DQoJCQkJCU9SREVSIEJZIGYuc29ydG9yZGVyIEFTQyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGFiaWQpKTsNCgkJaWYgKCAkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkNCgkJew0KCQkJd2hpbGUgKCAkcm93PSRyZXN1bHQtPkZldGNoUm93KCkgKQ0KCQkJew0KCQkJCS8vIGNoZWNrIGVkaXRvciBwZXJtaXNzaW9ucw0KCQkJCSRlZGl0cGVybSA9IEZBTFNFOw0KCQkJCWlmICggISRhZG1pbnBlcm0gJiYgIWVtcHR5KCRyb3dbJ2VkaXRvcnMnXSkgKQ0KCQkJCXsNCgkJCQkJJGVkaXRvcnMgPSBleHBsb2RlKCc7JywgJHJvd1snZWRpdG9ycyddKTsNCgkJCQkJZm9yZWFjaCAoJGVkaXRvcnMgYXMgJGVkaXRvcikNCgkJCQkJew0KCQkJCQkJJGVkaXRwZXJtID0gJGVkaXRwZXJtIHx8ICR1c2Vyb3BzLT5Vc2VySW5Hcm91cCgkdXNlcmlkLCAkZWRpdG9yKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkZWRpdHBlcm0gPSBUUlVFOw0KCQkJCX0NCgkJCQlpZiAoICRlZGl0cGVybSApDQoJCQkJew0KCQkJCQkkZmllbGRzWyRyb3dbJ2ZpZWxkaWQnXV0gPSAkcm93Ow0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJGZpZWxkczsNCgl9DQoNCg0KCS8qKg0KCSogTWV0aG9kIHRvIGdldCBwYXJhbWV0ZXJzIG9mIGEgdGFiIGJ5IG5hbWUgb3IgYnkgdGFiaWQNCgkqDQoJKiBAZmluYWwNCgkqIEBhY2Nlc3MgcHVibGljDQoJKiBAcmV0dXJuIGFycmF5KCkNCgkqLw0KCWZ1bmN0aW9uIEdldFRhYigkdGFiKQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0REIoKTsNCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWIgV0hFUkUgdGFiaWQ9PyBPUiBuYW1lPT8iOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRhYiwgJHRhYikpOw0KCQlpZiggJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCApDQoJCXsNCgkJCSRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHJvdyA9IEZBTFNFOw0KCQl9DQoJCXJldHVybiAkcm93Ow0KCX0NCg0KDQoJLyoqDQoJKiBNZXRob2QgdG8gZ2V0IHRhYnMNCgkqDQoJKiBAZmluYWwNCgkqIEBhY2Nlc3MgcHVibGljDQoJKiBAcmV0dXJuIGFycmF5KCkNCgkqLw0KCWZ1bmN0aW9uIEdldFRhYnMoJGZpZWxkID0gTlVMTCkNCgl7DQoJCSR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7DQoJCSR1c2Vyb3BzID0gY21zbXMoKS0+R2V0VXNlck9wZXJhdGlvbnMoKTsNCgkJJGFkbWlucGVybSA9ICR1c2Vyb3BzLT5Vc2VySW5Hcm91cCgkdXNlcmlkLCAxKTsgLy8gaXMgYWRtaW4NCgkJDQoJCSR0YWJzID0gYXJyYXkoKTsNCg0KCQkkZGIgPSBjbXNtcygpLT5HZXREQigpOw0KCQlpZiAoIGVtcHR5KCRmaWVsZCkgKSANCgkJew0KCQkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWIgT1JERVIgQlkgc29ydG9yZGVyIEFTQyI7DQoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkcXVlcnkgPSAiU0VMRUNUIHQuKiwgdGYuZmllbGRpZCBBUyBjaGVja2VkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWIgdA0KCQkJCQkJTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQgdGYgT04gdC50YWJpZCA9IHRmLnRhYmlkIEFORCB0Zi5maWVsZGlkID0gPw0KCQkJCQkJT1JERVIgQlkgdC5zb3J0b3JkZXIgQVNDIjsNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGQpKTsNCgkJfQ0KCQlpZiAoICRyZXN1bHQgJiYgJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDAgKQ0KCQl7DQoJCQl3aGlsZSAoICRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKSApDQoJCQl7DQoJCQkJLy8gY2hlY2sgZWRpdG9yIHBlcm1pc3Npb25zDQoJCQkJJGVkaXRwZXJtID0gRkFMU0U7DQoJCQkJaWYgKCAhJGFkbWlucGVybSAmJiAhZW1wdHkoJHJvd1snZWRpdG9ycyddKSAmJiBlbXB0eSgkZmllbGQpICkNCgkJCQl7DQoJCQkJCSRlZGl0b3JzID0gZXhwbG9kZSgnOycsICRyb3dbJ2VkaXRvcnMnXSk7DQoJCQkJCWZvcmVhY2ggKCRlZGl0b3JzIGFzICRlZGl0b3IpDQoJCQkJCXsNCgkJCQkJCSRlZGl0cGVybSA9ICRlZGl0cGVybSB8fCAkdXNlcm9wcy0+VXNlckluR3JvdXAoJHVzZXJpZCwgJGVkaXRvcik7DQoJCQkJCX0NCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJJGVkaXRwZXJtID0gVFJVRTsNCgkJCQl9DQoJCQkJaWYgKCAkZWRpdHBlcm0gKQ0KCQkJCXsNCgkJCQkJJHRhYnNbXSA9ICRyb3c7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCXJldHVybiAkdGFiczsNCgl9DQoNCg0KCS8qKg0KCSogTWV0aG9kIHRvIGdldCBhbGwgc2V0dGluZ3MNCgkqDQoJKiBAZmluYWwNCgkqIEBhY2Nlc3MgcHVibGljDQoJKiBAcmV0dXJuIGFycmF5KCkNCgkqLw0KCWZ1bmN0aW9uIEdldFNldHRpbmdzKCRwYXJzZVNtYXJ0eSA9IHRydWUpDQoJew0KCQkkZmllbGRzID0gYXJyYXkoKTsNCgkJDQoJCSRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCgkJJGRiID0gY21zbXMoKS0+R2V0REIoKTsNCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MiOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoJCWlmICggJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCApDQoJCXsNCgkJCXdoaWxlICggJHJvdz0kcmVzdWx0LT5GZXRjaFJvdygpICkNCgkJCXsNCgkJCQlpZiAoICRyb3dbJ3R5cGUnXSAhPSAnZmllbGRzZXRzdGFydCcgJiYgJHJvd1sndHlwZSddICE9ICdmaWVsZHNldGVuZCcgKQ0KCQkJCXsNCgkJCQkJJGFsaWFzID0gc3RyX3JlcGxhY2UoJ19fJywgJ18nLCBzdHJfcmVwbGFjZSgnLScsICdfJywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcm93WyduYW1lJ10pKSk7DQoJCQkJCWlmICggJHJvd1sndHlwZSddID09ICdjb2xvcnBpY2tlcicgKQ0KCQkJCQl7DQoJCQkJCQkkZmllbGRzWyRhbGlhc10gPSAiIyIuJHJvd1sndmFsdWUnXTsNCgkJCQkJfQ0KCQkJCQllbHNlaWYgKCAkcGFyc2VTbWFydHkgJiYgKCRyb3dbJ3R5cGUnXSA9PSAndGV4dGFyZWEnIHx8ICRyb3dbJ3R5cGUnXSA9PSAnd3lzaXd5ZycpICYmICRyb3dbJ3Byb3BlcnRpZXMnXSApDQoJCQkJCXsNCgkJCQkJCSRmaWVsZHNbJGFsaWFzXSA9ICRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kcm93Wyd2YWx1ZSddKTsNCgkJCQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCSRmaWVsZHNbJGFsaWFzXSA9ICRyb3dbJ3ZhbHVlJ107DQoJCQkJCX0NCgkJCQkJJGZpZWxkc1skcm93WydmaWVsZGlkJ11dID0gJGZpZWxkc1skYWxpYXNdOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJGZpZWxkczsNCgl9DQoNCg0KCS8qKg0KCSogTWV0aG9kIHRvIHJlbmV3IHRoZSBjb21iaW5lZCBzdHlsZXNoZWV0IGNhY2hlIGJ5IHRvdWNoaW5nIHRoZSBmaWxlcw0KCSoNCgkqIEBmaW5hbA0KCSogQGFjY2VzcyBwcml2YXRlDQoJKiBAcmV0dXJuIHZvaWQNCgkqLw0KCWZ1bmN0aW9uIENsZWFyU3R5bGVzaGVldENhY2hlKCkNCgl7DQoJCWZvcmVhY2ggKGdsb2IoVE1QX0NBQ0hFX0xPQ0FUSU9OIC4gIi8qLmNzcyIpIGFzICRmaWxlbmFtZSkgew0KCQkJLy90b3VjaCggJGZpbGVuYW1lLCB0aW1lKCkgLSAxMjAgKiAyNCAqIDYwICogNjAgKTsgIC8vIHNldHMgdGhlIGZpbGUgMTIwIGRheXMgYmFjayBpbiB0aW1lDQoJCQlAdW5saW5rKCRmaWxlbmFtZSk7DQoJCX0NCg0KCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkJYXVkaXQoJycsICR0aGlzLT5HZXRGcmllbmRseU5hbWUoKSwgJ1N0eWxlc2hlZXQgQ2FjaGUgY2xlYXJlZCcpOw0KCX0NCg0KfSAvLyBlbmQgb2YgY2xhc3MNCg0KIw0KIyBFT0YNCiMNCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IGFuZCBiZXlvbmQgYnkgVGhlIENNUyBNYWRlIFNpbXBsZSBGb3VuZGF0aW9uCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICggIWNtc21zKCkgKSBleGl0OwoKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKGxhbmcoJ25lZWRwZXJtaXNzaW9udG8nLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpKTsKCXJldHVybjsKfQoKJHRydWVpbWFnZSA9ICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsIGxhbmcoJ2FjdGl2ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyk7CiRmYWxzZWltYWdlID0gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsIGxhbmcoJ2luYWN0aXZlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKTsKCiR0YWJzID0gJHRoaXMtPkdldFRhYnMoLTEpOwokdGFiaWQgPSBlbXB0eSgkcGFyYW1zWyd0YWJpZCddKSA/ICR0YWJzWzBdWyd0YWJpZCddIDogJHBhcmFtc1sndGFiaWQnXTsKCmlmICggY291bnQoJHRhYnMpID4gMSApCnsKCS8vIGNyZWF0ZSB0YWIgZHJvcGRvd25maWVsZAoJZm9yZWFjaCAoICR0YWJzIGFzICR0YWIgKSAKCXsKCQkkbGFiZWwgPSAkdGFiWyduYW1lJ107CgkJJHRhYmxpc3RbJGxhYmVsXSA9ICR0YWJbJ3RhYmlkJ107Cgl9Cgkkc21hcnR5LT5hc3NpZ24oJ3RhYnNlbGVjdCcsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3RhYnNlbGVjdCcsICR0YWJsaXN0LCAtMSwgJHRhYmlkLCAnaWQ9InRhYnNlbGVjdCInKSk7Cn0KZWxzZQp7Cgkkc21hcnR5LT5hc3NpZ24oJ3RhYnNlbGVjdCcsIGxhbmcoJ3N0YXR1cycpKTsKfQoKJHJvd2FycmF5ID0gYXJyYXkoKTsKCiRkYiA9ICR0aGlzLT5HZXREQigpOwokcXVlcnkgPSAiU0VMRUNUCgkJCQkJCWYuKiwgdGYudGFiaWQgQVMgY2hlY2tlZAoJCQkJCUZST00KCQkJCQkJIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgZgoJCQkJCUxFRlQgSk9JTgoJCQkJCQkiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCB0ZgoJCQkJCU9OCgkJCQkJCWYuZmllbGRpZCA9IHRmLmZpZWxkaWQgQU5EIHRmLnRhYmlkID0gPwoJCQkJCU9SREVSIEJZCgkJCQkJCWYuc29ydG9yZGVyIEFTQyI7CiRyZXN1bHQgPSAkZGItPkdldEFsbCgkcXVlcnksIGFycmF5KCR0YWJpZCkpOwokcm93Y291bnQgPSBjb3VudCgkcmVzdWx0KTsKJGZpZWxkZ3JvdXBzID0gYXJyYXkoKTsKCmlmICggJHJlc3VsdCAmJiAkcm93Y291bnQgPiAwICkKewoJJHJvd2NsYXNzID0gJ3JvdzEnOwoJZm9yZWFjaCAoICRyZXN1bHQgYXMgJGtleSA9PiAkZGVmICkKCXsKCQkkcm93ID0gbmV3IFN0ZENsYXNzKCk7CgkJJHJvdy0+ZmllbGRpZCA9ICRkZWZbJ2ZpZWxkaWQnXTsKCQkkcm93LT5uYW1lID0gJGRlZlsndHlwZSddID09ICdmaWVsZHNldGVuZCcgPyAkZGVmWyduYW1lJ10gOiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRkZWZbJ25hbWUnXSwgYXJyYXkoJ2ZpZWxkaWQnID0+ICRkZWZbJ2ZpZWxkaWQnXSwgJ21vZGUnPT4nZWRpdCcpKTsKCQkkYWxpYXMgPSBzdHJfcmVwbGFjZSgnX18nLCAnXycsIHN0cl9yZXBsYWNlKCctJywgJ18nLCBtdW5nZV9zdHJpbmdfdG9fdXJsKCRkZWZbJ25hbWUnXSkpKTsKCQkkcm93LT5zbWFydHl2YXIgPSAnJzsJCgkJaWYgKCAkZGVmWyd0eXBlJ10gIT0gJ2ZpZWxkc2V0c3RhcnQnICYmICRkZWZbJ3R5cGUnXSAhPSAnZmllbGRzZXRlbmQnICkKCQl7CgkJCSRyb3ctPnNtYXJ0eXZhciA9ICd7JEN1c3RvbUdTLicgLiAkYWxpYXMgLiAnfSc7CQkJCgkJfQoJCS8vJHJvdy0+aGVscCA9ICRkZWZbJ2hlbHAnXTsKCQkkcm93LT50eXBlID0gJHRoaXMtPkxhbmcoJGRlZlsndHlwZSddKTsKCQlzd2l0Y2ggKCRkZWZbJ3R5cGUnXSkgCgkJewoJCQljYXNlICdjb3JlZmlsZXBpY2tlcic6CgkJCQlpZiAoICRjb3JlZnAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0ZpbGVQaWNrZXInKSApCgkJCQl7CgkJCQkJJHJvdy0+dHlwZSA9ICRjb3JlZnAtPkdldEZyaWVuZGx5TmFtZSgpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRyb3ctPnR5cGUgPSAnQ01TTVMgRmlsZVBpY2tlciAoJyAuIGxhbmcoJ25vdGluc3RhbGxlZCcpIC4gJyknOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQljYXNlICdnYmZpbGVwaWNrZXInOgoJCQkJaWYgKCAkZ2JmcCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnR0JGaWxlUGlja2VyJykgKQoJCQkJewoJCQkJCSRyb3ctPnR5cGUgPSAkZ2JmcC0+R2V0RnJpZW5kbHlOYW1lKCk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJJHJvdy0+dHlwZSA9ICdHQkZpbGVQaWNrZXIgKCcgLiBsYW5nKCdub3RpbnN0YWxsZWQnKSAuICcpJzsKCQkJCX0KCQkJCWJyZWFrOwoJCQkJCgkJCWNhc2UgJ2ptZmlsZXBpY2tlcic6CgkJCQlpZiAoICRqbWZwID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdKTUZpbGVQaWNrZXInKSApCgkJCQl7CgkJCQkJJHJvdy0+dHlwZSA9ICRqbWZwLT5HZXRGcmllbmRseU5hbWUoKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkcm93LT50eXBlID0gJ0pNRmlsZVBpY2tlciAoJyAuIGxhbmcoJ25vdGluc3RhbGxlZCcpIC4gJyknOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQkKICAgICAgY2FzZSAnZmllbGRzZXRzdGFydCc6CiAgICAgICAgJGZpZWxkZ3JvdXBzW10gPSBhcnJheSgnbGFiZWwnID0+ICRyb3ctPm5hbWUsICd2YWx1ZScgPT4gJHJvdy0+ZmllbGRpZCk7CiAgICAgICAgYnJlYWs7CgkJfQoJCQoJCWlmICggJGRlZlsnc29ydG9yZGVyJ10gPiAxICkKCQl7CgkJCSRyb3ctPm1vdmV1cCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywgbGFuZygndXAnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRpZCcgPT4gJGRlZlsnZmllbGRpZCddLCAnbW9kZSc9Pidtb3ZldXAnKSk7CgkJfQoJCWVsc2UKCQl7CgkJCSRyb3ctPm1vdmV1cCA9ICcnOwoJCX0KCQkKCQlpZiAoICRrZXkgPCAkcm93Y291bnQgLSAxICYmICRyZXN1bHRbJGtleSsxXVsnc29ydG9yZGVyJ10gIT0gMSApCgkJewoJCQkkcm93LT5tb3ZlZG93biA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmJywgbGFuZygnZG93bicpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmaWVsZGlkJyA9PiAkZGVmWydmaWVsZGlkJ10sICdtb2RlJz0+J21vdmVkb3duJykpOwoJCX0KCQllbHNlCgkJewoJCQkkcm93LT5tb3ZlZG93biA9ICcnOwoJCX0KCQkKCQkkcm93LT5hc3NpZ250YWIgPSAnJzsKCQkkcm93LT5lZGl0bGluayA9ICcnOwoJCSRyb3ctPmRlbGV0ZWxpbmsgPSAnJzsKCQlpZiAoICRkZWZbJ3R5cGUnXSAhPSAnZmllbGRzZXRlbmQnICkKCQl7CgkJCSRyb3ctPmFzc2lnbnRhYiA9ICc8YSBocmVmPSInIC4gCgkJCQkJaHRtbF9lbnRpdHlfZGVjb2RlKCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgCgkJCQkJYXJyYXkoJ21vZGUnID0+ICdhc3NpZ24nLCAndGFiaWQnID0+ICR0YWJpZCwgJ2ZpZWxkaWQnID0+ICRkZWZbJ2ZpZWxkaWQnXSkpKSAuIAoJCQkJCScmc2hvd3RlbXBsYXRlPWZhbHNlIiBjbGFzcz0iYXNzaWdudGFiIj4nIC4gKCRkZWZbJ2NoZWNrZWQnXSA/ICR0cnVlaW1hZ2UgOiAkZmFsc2VpbWFnZSkgLiAnPC9hPic7CgkJCSRyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLAoJCQkJICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsIGxhbmcoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQkJICAgIGFycmF5ICgnZmllbGRpZCcgPT4gJGRlZlsnZmllbGRpZCddLCAnbW9kZSc9PidlZGl0JykpOwoJCQkkcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLAoJCQkJCSAgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBsYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQkJCSAgYXJyYXkgKCdmaWVsZGlkJyA9PiAkZGVmWydmaWVsZGlkJ10sICdtb2RlJz0+J2RlbGV0ZScpLCBsYW5nKCdkZWxldGVjb25maXJtJywkZGVmWyduYW1lJ10pKTsKCQl9CgoJCWFycmF5X3B1c2ggKCRyb3dhcnJheSwgJHJvdyk7Cgl9Cn0KaWYgKCAkcmVzdWx0ID09PSBGQUxTRSApCnsKCWVjaG8gJ0VSUk9SOiAnIC4gbXlzcWxfZXJyb3IoKTsKCWV4aXQoKTsKfQoKCiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkgKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1lJywgbGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdzbWFydHl2YXInLCAkdGhpcy0+TGFuZygnc21hcnR5dmFyJykpOwokc21hcnR5LT5hc3NpZ24oJ3R5cGUnLCBsYW5nKCd0eXBlJykpOwovLyRzbWFydHktPmFzc2lnbignaGVscCcsIGxhbmcoJ2hlbHAnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ25ld2ZpZWxkZGVmbGluaycsCgkgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwKCQkJICAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3Zm9sZGVyLmdpZicsIGxhbmcoJ2FkZCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCSAgICAgYXJyYXkoJ21vZGUnID0+ICdhZGQnKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpLicgJy4KCSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLAoJCQkgICAgIGxhbmcoJ2FkZCcpLAoJCQkgICAgIGFycmF5KCdtb2RlJyA9PiAnYWRkJykpKTsKCiRzbWFydHktPmFzc2lnbignZmllbGRncm91cHMnLCAkZmllbGRncm91cHMpOwoKJHNtYXJ0eS0+YXNzaWduKCdzaG93b250YWInLCAkdGhpcy0+TGFuZygnc2hvd29udGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ3RydWVpbWFnZScsJHRydWVpbWFnZSk7CiRzbWFydHktPmFzc2lnbignZmFsc2VpbWFnZScsJGZhbHNlaW1hZ2UpOwoKJHNtYXJ0eS0+YXNzaWduKCdtb2RfaWQnLCAkaWQpOwokc21hcnR5LT5hc3NpZ24oJ2Nnc191cmxfcGF0aCcsICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZmllbGRkZWZzLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_general.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IGFuZCBiZXlvbmQgYnkgVGhlIENNUyBNYWRlIFNpbXBsZSBGb3VuZGF0aW9uCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICggIWNtc21zKCkgKSBleGl0OwoKaWYgKCEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMobGFuZygnbmVlZHBlcm1pc3Npb250bycsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJykpOwoJcmV0dXJuOwp9CgoKLy8gR2V0IHRoZSBmaWVsZHMgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlZGl0LgokZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygkdGFiWyd0YWJpZCddKTsKCiR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7CiRyb3dhcnJheSA9IGFycmF5KCk7Cgpmb3JlYWNoKCAkZmllbGRzIGFzICRrZXkgPT4gJGZsZCApCnsKCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCgkkb25lcm93LT5maWVsZGlkID0gJGZsZFsnZmllbGRpZCddOwoJJG9uZXJvdy0+bmFtZSA9ICRmbGRbJ25hbWUnXTsKCSRvbmVyb3ctPnR5cGUgPSAkZmxkWyd0eXBlJ107Cgkkb25lcm93LT5oZWxwID0gJGZsZFsnaGVscCddOwoJJG9uZXJvdy0+dmFsdWUgPSAkZmxkWyd2YWx1ZSddOwoJJG9uZXJvdy0+ZmllbGRjbGFzcyA9ICcnOwoKCSRmaWVsZG5hbWUgPSAnZmllbGRbJyAuICR0YWJbJ3RhYmlkJ10gLiAnXVsnIC4gJGZsZFsnZmllbGRpZCddIC4gJ10nOwoJc3dpdGNoICggJGZsZFsndHlwZSddICkKCXsKCQljYXNlICd0ZXh0ZmllbGQnOgoJCQkkc2l6ZSA9IG1pbig1MCwgJGZsZFsncHJvcGVydGllcyddKTsKCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICRmaWVsZG5hbWUsICRmbGRbJ3ZhbHVlJ10sICRzaXplLCAkZmxkWydwcm9wZXJ0aWVzJ10gKTsKCQkJYnJlYWs7CgoJCWNhc2UgJ3B1bGxkb3duJzoKCQljYXNlICdyYWRpb2J1dHRvbnMnOgoJCQkvLyBsZXRzIHBhcnNlIHRoaXMgYnkgc21hcnR5IGZpcnN0CgkJCSRmbGRbJ3Byb3BlcnRpZXMnXSA9ICRzbWFydHktPmZldGNoKCdldmFsOicuJGZsZFsncHJvcGVydGllcyddKTsKCQkJJGZsZFsncHJvcGVydGllcyddID0gcHJlZ19yZXBsYWNlKCcjPCEtLSguKyktLT4jaXMnLCAnJywgJGZsZFsncHJvcGVydGllcyddKTsgLy8gZmlsdGVyIG91dCBodG1sIGNvbW1lbnRzCgkJCSRmbGRbJ3Byb3BlcnRpZXMnXSA9IHN0cl9yZXBsYWNlKCJcciIsICJcbiIsICRmbGRbJ3Byb3BlcnRpZXMnXSk7CgkJCSRmbGRbJ3Byb3BlcnRpZXMnXSA9IHN0cl9yZXBsYWNlKCJcblxuIiwgIlxuIiwgJGZsZFsncHJvcGVydGllcyddKTsKCQkJJGZsZFsncHJvcGVydGllcyddID0gdHJpbSgkZmxkWydwcm9wZXJ0aWVzJ10pOwoJCQkkcHJvcGVydGllcyA9IGV4cGxvZGUoIlxuIiwgJGZsZFsncHJvcGVydGllcyddKTsKCQkJJGl0ZW1zID0gYXJyYXkoKTsKCQkJZm9yZWFjaCAoJHByb3BlcnRpZXMgYXMgJHByb3BlcnR5KQoJCQl7CgkJCQlsaXN0KCRrZXksICR2YWx1ZSkgPSBleHBsb2RlKCJ8IiwgJHByb3BlcnR5IC4gInwiKTsKCQkJCSR2YWx1ZSA9IHRyaW0oJHZhbHVlKSA9PSAiIiA/ICRrZXkgOiAkdmFsdWU7CgkJCQkkaXRlbXNbJHZhbHVlXSA9ICRrZXk7CgkJCX0KCQkJaWYgKCAkZmxkWyd0eXBlJ10gPT0gJ3B1bGxkb3duJyApCgkJCXsKCQkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJGZpZWxkbmFtZSwgJGl0ZW1zLCAtMSwgJGZsZFsndmFsdWUnXSk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJGZpZWxkbmFtZSwgJGl0ZW1zLCAkZmxkWyd2YWx1ZSddKTsKCQkJfQoJCQlicmVhazsKCgkJY2FzZSAnY2hlY2tib3gnOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICRmaWVsZG5hbWUsICcxJywgJGZsZFsndmFsdWUnXSwgJycpOwoJCQlicmVhazsKCgkJY2FzZSAnZGF0ZXBpY2tlcic6CgkJY2FzZSAndGltZXBpY2tlcic6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAkZmllbGRuYW1lLCAkZmxkWyd2YWx1ZSddLCAxMSwgMTApOwoJCQkkb25lcm93LT5maWVsZGNsYXNzID0gJyAnIC4gJGZsZFsndHlwZSddOwoJCQlicmVhazsKCgkJY2FzZSAnZGF0ZXRpbWVwaWNrZXInOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJGZpZWxkbmFtZSwgJGZsZFsndmFsdWUnXSwgMTgsIDIwKTsKCQkJJG9uZXJvdy0+ZmllbGRjbGFzcyA9ICcgJyAuICRmbGRbJ3R5cGUnXTsKCQkJYnJlYWs7CgoJCWNhc2UgJ3BhZ2VzZWxlY3QnOgoJCQkkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICc8c3BhbiBjbGFzcz0iY2dzX3BhZ2VzZWxlY3QiPicgLiAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsICRmbGRbJ3ZhbHVlJ10sICRpZCAuICRmaWVsZG5hbWUsIHRydWUpIC4gJzwvc3Bhbj4nOwoJCQlicmVhazsKCgkJY2FzZSAndGV4dGFyZWEnOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoRkFMU0UsICRpZCwgJGZsZFsndmFsdWUnXSwgJGZpZWxkbmFtZSk7CgkJCWJyZWFrOwoKCQljYXNlICd3eXNpd3lnJzoKCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKFRSVUUsICRpZCwgJGZsZFsndmFsdWUnXSwgJGZpZWxkbmFtZSk7CgkJCWJyZWFrOwoKCQljYXNlICdidXR0b24nOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAkZmllbGRuYW1lLCAkZmxkWyduYW1lJ10pOwoJCQlicmVhazsKCQkKCQljYXNlICdjb3JlZmlsZXBpY2tlcic6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICcnOwoJCQkkY29yZWZwID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGaWxlUGlja2VyJyk7CgkJCWlmICggJGNvcmVmcCApCgkJCXsKCQkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICRjb3JlZnAtPmdldF9odG1sKCRpZC4kZmllbGRuYW1lLCAkZmxkWyd2YWx1ZSddLCAkY29yZWZwLT5nZXRfZGVmYXVsdF9wcm9maWxlKCkpOwoJCQl9CgkJCWJyZWFrOwoJCQoJCWNhc2UgJ2diZmlsZXBpY2tlcic6CgkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICcnOwoJCQkkZ2JmcCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnR0JGaWxlUGlja2VyJyk7CgkJCWlmICggJGdiZnAgKQoJCQl7CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkZ2JmcC0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCRnYmZwLCAkaWQsICRmaWVsZG5hbWUsICRmbGRbJ3ZhbHVlJ10sIGFycmF5KCdkaXInPT4naW1hZ2VzJywnbW9kZSc9Pidicm93c2VyJykpOwoJCQl9CgkJCWJyZWFrOwoKCQljYXNlICdqbWZpbGVwaWNrZXInOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAnJzsKCQkJJGptZnAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0pNRmlsZVBpY2tlcicpOwoJCQlpZiAoICRqbWZwICkKCQkJewoJCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJGptZnAtPkNyZWF0ZUZpbGVQaWNrZXJJbnB1dCgkam1mcCwgJGlkLCAkZmllbGRuYW1lLCAkZmxkWyd2YWx1ZSddLCBhcnJheSgnZGlyJz0+J2ltYWdlcycsJ21vZGUnPT4nYnJvd3NlcicpKTsKCQkJfQoJCQlicmVhazsKCgkJY2FzZSAnY29sb3JwaWNrZXInOgoJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJGZpZWxkbmFtZSwgJGZsZFsndmFsdWUnXSwgMTEsIDEwKTsKCQkJJG9uZXJvdy0+ZmllbGRjbGFzcyA9ICcgaW5wdXRjb2xvcnBpY2tlcic7CgkJCWJyZWFrOwoKCQljYXNlICdmaWVsZHNldHN0YXJ0JzoKCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJzxmaWVsZHNldCBjbGFzcz0iY2dzX2ZpZWxkc2V0Ij48bGVnZW5kIGNsYXNzPSJjZ3NfY29sbGFwc2libGUiIGlkPSJzZWN0aW9uJyAuICR1c2VyaWQgLiAnLScgLiAkdGFiWyd0YWJpZCddIC4gJy0nIC4gJGZsZFsnZmllbGRpZCddIC4gJyI+PHNwYW4+PC9zcGFuPiAnIC4gJGZsZFsnbmFtZSddIC4gJzwvbGVnZW5kPjxkaXY+JzsKCQkJYnJlYWs7CgoJCWNhc2UgJ2ZpZWxkc2V0ZW5kJzoKCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJzwvZGl2PjwvZmllbGRzZXQ+IDwhLS0gZW5kIGNnc19jb2xsYXBzaWJsZSAtLT4nOwoJCQlicmVhazsKCX0KCglhcnJheV9wdXNoICgkcm93YXJyYXksICRvbmVyb3cpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ3RhYmlkJywgJHRhYlsndGFiaWQnXSApOwokc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJHJvd2FycmF5ICk7CiRzbWFydHktPmFzc2lnbignY2dzX3VybF9wYXRoJywgJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXRidXR0b24nLCBsYW5nKCdzdWJtaXQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9nZW5lcmFsLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IGFuZCBiZXlvbmQgYnkgVGhlIENNUyBNYWRlIFNpbXBsZSBGb3VuZGF0aW9uCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICggIWNtc21zKCkgKSBleGl0OwoKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKGxhbmcoJ25lZWRwZXJtaXNzaW9udG8nLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpKTsKCXJldHVybjsKfQoKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9jdXN0b21fbW9kdWxlbmFtZScsICR0aGlzLT5MYW5nKCd0aXRsZV9jdXN0b21fbW9kdWxlbmFtZScpKTsJCiRzbWFydHktPmFzc2lnbignaGVscF9jdXN0b21fbW9kdWxlbmFtZScsICR0aGlzLT5MYW5nKCdoZWxwX2N1c3RvbV9tb2R1bGVuYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnLCcnKSw1MCwyNTUpKTsKCiRzbWFydHktPmFzc2lnbigndGl0bGVfYWRtaW5fc2VjdGlvbicsICR0aGlzLT5MYW5nKCd0aXRsZV9hZG1pbl9zZWN0aW9uJykpOwkKJHNtYXJ0eS0+YXNzaWduKCdoZWxwX2FkbWluX3NlY3Rpb24nLCAkdGhpcy0+TGFuZygnaGVscF9hZG1pbl9zZWN0aW9uJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FkbWluX3NlY3Rpb24nLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdpbnB1dF9hZG1pbl9zZWN0aW9uJywKCQkJCWFycmF5KGxhbmcoJ21haW4nKSA9PiAnbWFpbicsCgkJCQkJCQlsYW5nKCdjb250ZW50JykgPT4gJ2NvbnRlbnQnLAoJCQkJCQkJbGFuZygnbGF5b3V0JykgPT4gJ2xheW91dCcsCgkJCQkJCQlsYW5nKCd1c2Vyc2dyb3VwcycpID0+ICd1c2Vyc2dyb3VwcycsCgkJCQkJCQlsYW5nKCdleHRlbnNpb25zJykgPT4gJ2V4dGVuc2lvbnMnLAoJCQkJCQkJbGFuZygnYWRtaW4nKSA9PiAnc2l0ZWFkbWluJywKCQkJCQkJCWxhbmcoJ215cHJlZnMnKSA9PiAnbXlwcmVmcycpLAoJCQkJLTEsCgkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5fc2VjdGlvbicsICdleHRlbnNpb25zJykKKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX3htbGltcG9ydCcsICR0aGlzLT5MYW5nKCd4bWxfaW1wb3J0JykpOwkKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF94bWxpbXBvcnQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRGaWxlKCRpZCwgJ3htbGZpbGUnLCAnLnhtbCcpKTsKCiRzbWFydHktPmFzc2lnbigndGl0bGVfeG1sZXhwb3J0JywgJHRoaXMtPkxhbmcoJ3htbF9leHBvcnQnKSk7CQokc21hcnR5LT5hc3NpZ24oJ3htbGV4cG9ydCcsICcgPGEgaHJlZj0iJyAuIGh0bWxfZW50aXR5X2RlY29kZSgkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICd4bWxfZXhwb3J0JywgJHJldHVybmlkKSkgLiAnJnNob3d0ZW1wbGF0ZT1mYWxzZSI+JyAuICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9leHBvcnQuZ2lmJywgbGFuZygneG1sJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSAuICcgJyAuIGxhbmcoJ3htbCcpIC4gJzwvYT4nKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fb3B0aW9ucy50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_tabs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IGFuZCBiZXlvbmQgYnkgVGhlIENNUyBNYWRlIFNpbXBsZSBGb3VuZGF0aW9uCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICggIWNtc21zKCkgKSBleGl0OwoKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKGxhbmcoJ25lZWRwZXJtaXNzaW9udG8nLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpKTsKCXJldHVybjsKfQoKCiRyb3dhcnJheSA9IGFycmF5KCk7Cgokcm93cyA9ICR0aGlzLT5HZXRUYWJzKCk7CiRyb3djb3VudCA9IGNvdW50KCRyb3dzKTsKCmlmICggIWVtcHR5KCRyb3dzKSAmJiAkcm93Y291bnQgPiAwICkKewoJJHJvd2NsYXNzID0gJ3JvdzEnOwoJZm9yZWFjaCAoICRyb3dzIGFzICRrZXkgPT4gJGl0ZW0gKQoJewoJCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKCQkkcm93LT50YWJpZCA9ICRpdGVtWyd0YWJpZCddOwoJCSRyb3ctPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0dGFiJywgJHJldHVybmlkLCAkaXRlbVsnbmFtZSddLCBhcnJheSgndGFiaWQnID0+ICRpdGVtWyd0YWJpZCddLCAnbW9kZSc9PidlZGl0JykpOwoJCQoJCWlmICggJGl0ZW1bJ3NvcnRvcmRlciddID4gMSApCgkJewoJCQkkcm93LT5tb3ZldXAgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0dGFiJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYnLCBsYW5nKCd1cCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCd0YWJpZCcgPT4gJGl0ZW1bJ3RhYmlkJ10sICdtb2RlJz0+J21vdmV1cCcpKTsKCQl9CgkJZWxzZQoJCXsKCQkJJHJvdy0+bW92ZXVwID0gJyc7CgkJfQoJCQoJCWlmICggJGtleSA8ICRyb3djb3VudCAtIDEgJiYgJHJvd3NbJGtleSsxXVsnc29ydG9yZGVyJ10gIT0gMSApCgkJewoJCQkkcm93LT5tb3ZlZG93biA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXR0YWInLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy1kLmdpZicsIGxhbmcoJ2Rvd24nKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgndGFiaWQnID0+ICRpdGVtWyd0YWJpZCddLCAnbW9kZSc9Pidtb3ZlZG93bicpKTsKCQl9CgkJZWxzZQoJCXsKCQkJJHJvdy0+bW92ZWRvd24gPSAnJzsKCQl9CgkJCgkJJHJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0dGFiJywgJHJldHVybmlkLAoJCQkJCQkJJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgbGFuZyAoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQkJCQkJYXJyYXkgKCd0YWJpZCcgPT4gJGl0ZW1bJ3RhYmlkJ10sICdtb2RlJz0+J2VkaXQnKSk7CgkJJHJvdy0+ZGVsZXRlbGluayA9ICRyb3djb3VudCA+IDEgPyAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0dGFiJywgJHJldHVybmlkLAoJCQkJCQkJJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBsYW5nICgnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkJCWFycmF5ICgndGFiaWQnID0+ICRpdGVtWyd0YWJpZCddLCAnbW9kZSc9PidkZWxldGUnKSwgbGFuZyAoJ2RlbGV0ZWNvbmZpcm0nLCRpdGVtWyduYW1lJ10pKQoJCQkJCQkJOiAnJzsKCgkJYXJyYXlfcHVzaCAoJHJvd2FycmF5LCAkcm93KTsKCX0KfQppZiAoICRyZXN1bHQgPT09IEZBTFNFICkKewoJZWNobyAnRVJST1I6ICcgLiBteXNxbF9lcnJvcigpOwoJZXhpdCgpOwp9CgoKJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRyb3dhcnJheSApOwokc21hcnR5LT5hc3NpZ24oJ25hbWUnLCBsYW5nKCduYW1lJykpOwoKJHNtYXJ0eS0+YXNzaWduKCduZXd0YWJsaW5rJywKCSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdHRhYicsICRyZXR1cm5pZCwKCQkJICAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3Zm9sZGVyLmdpZicsIGxhbmcoJ2FkZCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCSAgICAgYXJyYXkoJ21vZGUnID0+ICdhZGQnKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpLicgJy4KCgkgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXR0YWInLCAkcmV0dXJuaWQsCgkJCSAgICAgbGFuZygnYWRkJyksCgkJCSAgICAgYXJyYXkoJ21vZGUnID0+ICdhZGQnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdtb2RfaWQnLCAkaWQpOwokc21hcnR5LT5hc3NpZ24oJ2Nnc191cmxfcGF0aCcsICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZyAoJ2NhbmNlbCcpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX3RhYnMudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></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/JzsNCiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQ3VzdG9tR1MgbW9kdWxlIHN1Y2Nlc3NmdWwgdW5pbnN0YWxsZWQhJzsNCg0KDQovKioNCiAqIEFkbWluIEdlbmVyYWwgVGFiDQogKi8NCiRsYW5nWydub3cnXSA9ICdub3cnOw0KJGxhbmdbJ3RpdGxlX2dlbmVyYWwnXSA9ICdHZW5lcmFsJzsNCiRsYW5nWydjaG9vc2V0aW1lJ10gPSAnQ2hvb3NlIHRpbWUnOw0KJGxhbmdbJ3RpbWUnXSA9ICd0aW1lJzsNCg0KDQovKioNCiAqIEFkbWluIEZpZWxkZGVmcyBUYWINCiAqLw0KJGxhbmdbJ3RpdGxlX2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsNCiRsYW5nWydzbWFydHl2YXInXSA9ICdTbWFydHkgdmFyaWFibGUnOw0KJGxhbmdbJ3RleHRmaWVsZCddID0gJ1RleHRmaWVsZCc7DQokbGFuZ1sncHVsbGRvd24nXSA9ICdQdWxsZG93bic7DQokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7DQokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW9idXR0b24gZ3JvdXAnOw0KJGxhbmdbJ2RhdGVwaWNrZXInXSA9ICdEYXRlcGlja2VyJzsNCiRsYW5nWydkYXRldGltZXBpY2tlciddID0gJ0RhdGVUaW1lcGlja2VyJzsNCiRsYW5nWyd0aW1lcGlja2VyJ10gPSAnVGltZXBpY2tlcic7DQokbGFuZ1snY29sb3JwaWNrZXInXSA9ICdDb2xvcnBpY2tlcic7DQokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOw0KJGxhbmdbJ3BhZ2VzZWxlY3QnXSA9ICdQYWdlIHNlbGVjdG9yJzsNCiRsYW5nWyd3eXNpd3lnJ10gPSAnV1lTSVdZRyc7DQokbGFuZ1snZmllbGRzZXRzdGFydCddID0gJ0ZpZWxkZ3JvdXAgc3RhcnQnOw0KJGxhbmdbJ2ZpZWxkc2V0ZW5kJ10gPSAnRmllbGRncm91cCBlbmQnOw0KJGxhbmdbJ2J1dHRvbiddID0gJ0J1dHRvbic7DQokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOw0KJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdQcm9wZXJ0aWVzJzsNCiRsYW5nWydwcm9wZXJ0aWVzX2hlbHAxJ10gPSAnRW50ZXIgdGhlIGNob2ljZSB2YWx1ZXMsIGVhY2ggb25lIG9uIGEgbmV3IGxpbmUuIEFsc28gc3VwcG9ydHMgVmFsdWV8T3B0aW9uTmFtZSBwYWlycyBhbmQvb3IgU21hcnR5IHRhZ3MnOw0KJGxhbmdbJ3BhcnNlc21hcnR5J10gPSAnUGFyc2UgZGF0YSBieSBTbWFydHknOw0KJGxhbmdbJ2NsZWFyc3R5bGVzaGVldGNhY2hlJ10gPSAnUmVuZXcgc3R5bGVzaGVldCBjYWNoZSc7DQokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcmVuZXcgc3R5bGVzaGVldCBjYWNoZSBhZnRlciBjaGFuZ2luZyB0aGlzIHNldHRpbmcuIFVTRSBXSVRIIENBVVRJT04hJzsNCiRsYW5nWydzaG93b250YWInXSA9ICdTaG93IG9uIHRhYic7DQokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0ZpZWxkIERlZmluaXRpb24gaXMgYWRkZWQnOw0KJGxhbmdbJ2ZpZWxkZGVmc3VwZGF0ZWQnXSA9ICdGaWVsZCBEZWZpbml0aW9uIGxpc3QgaXMgdXBkYXRlZCc7DQokbGFuZ1snd2l0aHNlbGVjdGVkJ10gPSAnV2l0aCBzZWxlY3RlZCc7DQokbGFuZ1snbW92ZXRvdG9wJ10gPSAnTW92ZSB0byB0b3AnOw0KJGxhbmdbJ21vdmV0b2JvdHRvbSddID0gJ01vdmUgdG8gYm90dG9tJzsNCiRsYW5nWydtb3ZldG9ncm91cCddID0gJ01vdmUgdG8gZ3JvdXAnOw0KDQoNCi8qKg0KICogQWRtaW4gVGFicyBUYWINCiAqLw0KJGxhbmdbJ3RpdGxlX3RhYnMnXSA9ICdUYWJzJzsNCiRsYW5nWyd0YWJhZGRlZCddID0gJ1RhYiBpcyBhZGRlZCc7DQokbGFuZ1sndGFidXBkYXRlZCddID0gJ1RhYiBpcyB1cGRhdGVkJzsNCg0KDQovKioNCiAqIEFkbWluIE9wdGlvbnMgVGFiDQogKi8gDQokbGFuZ1sndGl0bGVfY3VzdG9tX21vZHVsZW5hbWUnXSA9ICdDdXN0b20gTW9kdWxlbmFtZSc7DQokbGFuZ1snaGVscF9jdXN0b21fbW9kdWxlbmFtZSddID0gJ1lvdSBjYW4gY2hhbmdlIHRoZSBNb2R1bGVuYW1lIGhlcmUgYXMgeW91IHdpc2guIEl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgdGl0bGUgb24gdGhlIG1vZHVsZSBhZG1pbiBwYWdlcyBhbmQgYXMgbWVudSB0ZXh0Lic7DQoNCiRsYW5nWyd0aXRsZV9hZG1pbl9zZWN0aW9uJ10gPSAnQWRtaW4gU2VjdGlvbic7DQokbGFuZ1snaGVscF9hZG1pbl9zZWN0aW9uJ10gPSAnQ2hvb3NlIHRoZSBBZG1pbiBTZWN0aW9uIChvciB0b3AtbGV2ZWwgQWRtaW4gTWVudSkgdGhpcyBtb2R1bGUgYmVsb25ncyB0by4gPGI+Tm90ZTwvYj46IFVzZXJzIHdpdGggRWRpdG9yIHBlcm1pc3Npb25zIGRvblwndCBoYXZlIGFjY2VzcyB0byB0aGUgU2l0ZSBBZG1pbiBzZWN0aW9uISc7DQoNCiRsYW5nWyd4bWxfZXhwb3J0J10gPSAnRXhwb3J0IHNldHRpbmdzIHRvIFhNTCc7DQokbGFuZ1sneG1sX2ltcG9ydCddID0gJ0ltcG9ydCBzZXR0aW5ncyBmcm9tIFhNTCc7DQoNCg0KLyoqDQogKiBTYXZpbmcNCiAqLyANCiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnU2V0dGluZ3Mgc3VjY2Vzc2Z1bGx5IHNhdmVkISc7DQokbGFuZ1sndXBkYXRlZmFpbGVkJ10gPSAnVXBkYXRlIGZhaWxlZCEnOw0KDQoNCi8qKg0KICogRXZlbnRzDQogKi8NCiRsYW5nWydldmVudF9pbmZvX09uU2V0dGluZ0NoYW5nZSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgc2V0dGluZyBpcyBlZGl0ZWQuJzsNCiRsYW5nWydldmVudF9oZWxwX09uU2V0dGluZ0NoYW5nZSddID0gJzxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5maWVsZGlkPC9saT4NCjxsaT5uYW1lPC9saT4NCjxsaT5hbGlhczwvbGk+DQo8bGk+dmFsdWU8L2xpPg0KPGxpPmNsZWFyY2FjaGU8L2xpPg0KPC91bD4NCic7DQo/Pg==]]></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/JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEYXMgQ3VzdG9tR1MtTW9kdWwgd3VyZGUgZXJmb2xncmVpY2ggZGVpbnN0YWxsaWVydCEnOwokbGFuZ1snbm93J10gPSAnamV0enQnOwokbGFuZ1sndGl0bGVfZ2VuZXJhbCddID0gJ0FsbGdlbWVpbic7CiRsYW5nWydjaG9vc2V0aW1lJ10gPSAnWmVpdCB3w6RobGVuJzsKJGxhbmdbJ3RpbWUnXSA9ICdaZWl0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkZGVmcyddID0gJ0ZlbGQtRGVmaW5pdGlvbmVuJzsKJGxhbmdbJ3NtYXJ0eXZhciddID0gJ1NtYXJ0eS1WYXJpYWJsZSc7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdUZXh0ZmVsZCc7CiRsYW5nWydwdWxsZG93biddID0gJ0F1ZmtsYXBwbGlzdGUnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydyYWRpb2J1dHRvbnMnXSA9ICdSYWRpb2tub3BmLUdydXBwZSc7CiRsYW5nWydkYXRlcGlja2VyJ10gPSAnRGF0dW1zYXVzd2FobCc7CiRsYW5nWydkYXRldGltZXBpY2tlciddID0gJ0RhdHVtcy1aZWl0YXVzd2FobCc7CiRsYW5nWyd0aW1lcGlja2VyJ10gPSAnWmVpdGF1c3dhaGwnOwokbGFuZ1snY29sb3JwaWNrZXInXSA9ICdGYXJiYXVzd2FobCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHRiZXJlaWNoJzsKJGxhbmdbJ3BhZ2VzZWxlY3QnXSA9ICdTZWl0ZW53w6RobGVyJzsKJGxhbmdbJ3d5c2l3eWcnXSA9ICdXeXNpd3lnJzsKJGxhbmdbJ2ZpZWxkc2V0c3RhcnQnXSA9ICdGZWxkZXJncnVwcGUgQW5mYW5nJzsKJGxhbmdbJ2ZpZWxkc2V0ZW5kJ10gPSAnRmVsZGVyZ3J1cHBlIEVuZGUnOwokbGFuZ1snYnV0dG9uJ10gPSAnVGFzdGUnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW1hbGUgTMOkbmdlJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdFaWdlbnNjaGFmdGVuJzsKJGxhbmdbJ3Byb3BlcnRpZXNfaGVscDEnXSA9ICdHZWJlbiBTaWUgZGllIEF1c3dhaGwtV2VydGUgZWluLCBqZXdlaWxzIGluIGVpbmVyIG5ldWVuIFplaWxlLiBVbnRlcnN0w7x0enQgYXVjaCBWYWx1ZXxPcHRpb25OYW1lIFBhYXJlIHVuZC9vZGVyIFNtYXJ0eS1UYWdzJzsKJGxhbmdbJ3BhcnNlc21hcnR5J10gPSAnRGF0ZW4gZHVyY2ggU21hcnR5IHZlcmFyYmVpdGVuJzsKJGxhbmdbJ2NsZWFyc3R5bGVzaGVldGNhY2hlJ10gPSAnWndpc2NoZW5nZXNwZWljaGVydGVuIFN0eWxlc2hlZXRzIGzDtnNjaGVuJzsKJGxhbmdbJ2NsZWFyc3R5bGVzaGVldGNhY2hlX2hlbHAnXSA9ICdBdXRvbWF0aXNjaCB6d2lzY2hlbmdlc3BlaWNoZXJ0ZW4gU3R5bGVzaGVldHMgbMO2c2NoZW4gbmFjaCDDhG5kZXJ1bmcgZGllc2VyIEVpbnN0ZWxsdW5nLiBWT1JTSUNIVCBCRUkgREVSIFZFUldFTkRVTkchJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdEaWUgRmVsZC1EZWZpbml0aW9uIHd1cmRlIGhpbnp1Z2Vmw7xndCc7CiRsYW5nWydmaWVsZGRlZnN1cGRhdGVkJ10gPSAnRGllIExpc3RlIGRlciBGZWxkLURlZmluaXRpb25lbiB3dXJkZSBha3R1YWxpc2llcnQnOwokbGFuZ1snd2l0aHNlbGVjdGVkJ10gPSAnR2V3w6RobHRlJzsKJGxhbmdbJ21vdmV0b3RvcCddID0gJ1ZlcnNjaGllYmVuIG5hY2ggT2Jlbic7CiRsYW5nWydtb3ZldG9ib3R0b20nXSA9ICdWZXJzY2hpZWJlbiBuYWNoIFVudGVuJzsKJGxhbmdbJ21vdmV0b2dyb3VwJ10gPSAnVmVyc2NoaWViZW4gbmFjaCBHcnVwcGUnOwokbGFuZ1sndGl0bGVfY3VzdG9tX21vZHVsZW5hbWUnXSA9ICdCZW51dHplcmRlZmluaWVydGUgTW9kdWxuYW1lJzsKJGxhbmdbJ2hlbHBfY3VzdG9tX21vZHVsZW5hbWUnXSA9ICdTaWUga8O2bm5lbiBkZW4gTW9kdWxuYW1lbiBoaWVyIMOkbmRlcm4uIEVzIHdpcmQgYWxzIFRpdGVsIGRlciBNb2R1bCBBZG1pbi1TZWl0ZW4gdW5kIGFscyBNZW7DvCBUZXh0IHZlcndlbmRldC4nOwokbGFuZ1sndGl0bGVfYWRtaW5fc2VjdGlvbiddID0gJ0FkbWluLUJlcmVpY2gnOwokbGFuZ1snaGVscF9hZG1pbl9zZWN0aW9uJ10gPSAnV8OkaGxlbiBTaWUgZGVuIEFkbWluLUJlcmVpY2ggKHZvbiBUb3AtTGV2ZWwgQWRtaW4gTWVudSksIHdvIGRpZXNlcyBNb2R1bCB6dSBnZWjDtnJ0LiA8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IEJlbnV0emVyIG1pdCBFZGl0b3ItQmVyZWNodGlndW5nZW4gaGFiZW4ga2VpbmVuIFp1Z3JpZmYgYXVmIGRlbiBBZG1pbi1CZXJlaWNoISc7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnRGllIEVpbnN0ZWxsdW5nZW4gd3VyZGVuIGVyZm9sZ3JlaWNoIGdlc3BlaWNoZXJ0ISc7CiRsYW5nWydldmVudF9pbmZvX09uU2V0dGluZ0NoYW5nZSddID0gJ0F1c2bDvGhyZW4sIG5hY2hkZW0gZGllIMOEbmRlcnVuZ2VuIGRlcyBFaW5zdGVsbHVuZ2VuIGdlc3BlaWNoZXJ0IHd1cmRlbi4nOwokbGFuZ1snZXZlbnRfaGVscF9PblNldHRpbmdDaGFuZ2UnXSA9ICc8cD5BdXNmw7xocmVuLCBuYWNoZGVtIGRpZSDDhG5kZXJ1bmdlbiBkZXIgRWluc3RlbGx1bmdlbiBnZXNwZWljaGVydCB3dXJkZW4uPC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+ZmllbGRpZDwvbGk+DQo8bGk+bmFtZTwvbGk+DQo8bGk+YWxpYXM8L2xpPg0KPGxpPnZhbHVlPC9saT4NCjxsaT5jbGVhcmNhY2hlPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2dhJ10gPSAnR0ExLjIuMjU5MjY0MjEyLjE0NzU2MDA0ODknOwo/Pg==]]></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[iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAAJcEhZcwAACxMAAAsTAQCanBgAACMuSURBVHja7Z0P6G3Z+MbXHiNNo0HSSCSSSDRpJJJIJJJIJJFIJNFEEolEEokkkkkkkUgijSQS+ZNkmmhoJu40/s/Mnblz58+995z12+ucvc68+93P877v2mef7/3O/ObW6bvP/rP2Pmd/zvM+61nrnNvlnE+klC7pH+f6Rx4e6+HBlssj7bkfOi437rfb1r+O0H7R9sDzfOA2rP3Y9cP9hvdiDd5Peu5yENpvWL+W73Fd1//bnKv8W61W67Nnz+bTp0+vr7jiinXXr7i93+niAQDvxayCN8p7QxgI3o1aRdtvuUb55s1twwDcbENAoN9j2Z51XLY+XHW//u9K7JfrNrG9Pl/VbSNy7vmXz507twPp7rvvXt95553r22+/ff2///0v/+Uvf1lfeeWV667feLJv6CFCsfa5adl7Q/a5aTNvKP20Rq7RgK4ZTnWN2fugaejk9aJloSijaxIA7WASIO32LdBImOqfAlF5FKD6R+6ZWZ85c6Y8coHq1KlT61tvvXX9r3/9awPWVVddte76jU1gkU/KZL+u6/ZVrLX3CZ1xHC0RwyfVayO1wClfo6E82YBnpfez4JHKU48RIK00WAKe3fMC0ObE/d8Bqs16AVXumVkVpbrrrrs2pa+Adcstt6z//e9/5+uuu279m9/8Zt31G0NgqRo8S23Um+gqiqcG9Q2sEIP9Rjeq7OeVKnKN9TgXLN0+8ihqGUJYjivXW/4Nf3fPg6qkwdpBV9sYINrBVMGqKjWUvFHpGx7roQTmUgJvu+229cmTJzdg/f3vf19fffXV6+6OO+4wwdJvQBQsojDRG0oBZDfe8CxIHVxwicIkApIF1hp5G9bGcNPXyAMRfzSCR/sjAZL0S7meS8NUdinKJMEqIMnyV+Hq2dmBVUrhf/7zn3zDDTesSzns+g0WWIm8wZ4hneNL0kz/oq9xpUpc9BpXQJUn12hBYSxPPkCgpGmYEipxyCsNPbTdcQgs5J2kIa/PB6Ay8lSDUuW+ym0Uq3+eJFjFvP/jH/9YX3/99euur48QLKf0hQxpi7m24GEAMp8W8YFI2aQ61+19+RndUFmO2DG6fQJWdsDSipU8E16vS0AFwarLg1KttZ+q5Q+Y9Z1h79VqA1l5VPN+8803597Ar0+cOLHu+hUTsEj5i5bJqCp55joHutr6k+0pXbZKlTomO35psl+gpwbLmPRVYjlJ74QUS/gtWP50VJCqtN2jUuva45MxQgFLwDUCqypWgas37sXI5wJZ8Vj9I/flcH3jjTeuu97NS7DoDWgokyHVc7reUNmY6mmFQtdllDQGhad0eTDWu78GWEl7J1Le2Db5XJtyCdJaUoYyKLlcVavCVMEqMAnIklCrEVjFvJdeYVWtAtZ///vfEjusul6+RmCxBDaqZsAgW6Uw7RMAgmth2Q8zzTtPBhQIAsJiBKPEoV5bVtHACBIQFcgStzuHVCikUmU3GSlIlapmXaybgFWUavBbmYFVPFZZV4x8Ua2bbrqpmPhV1xsuXQqzk8140KVoBkV8lTbW+pxebyx7XXtUqvSHivilZOVHsqsvr53sM/FUlQutWBom2aOTSia3yQhBGvQaL8jgsyqTzKsqWLUHWOGqYA1wbcAqqlVKYm+rcsmzetVadT1dI7CsHl1wm6koLSGrblOXz/JclqCa/WhlANsSAQv2xphiyVJV2yS9vcRgQmUNlD4NmmvQa5IuQJKlMKusai2C0IzAquo1GPaNYtWAtILV9w6raq26vh7uwBr8AoMnkYzIymayDiZl70p3vcU6s6QBRclGBFDLXUIDqXUbUhWgbsmICkbwqPLngiWDT8NLbWxRLXFIsYa/KxkhyL+rLWV128iw98urAs+wPleYhjK4GiBLEqxi3ItqleWiYEPvcNX985//3IFlmO1sJNKZ+KM8Y8CUeaVkgUu8EzLe2RuxZ8A4kI38EQstKxnaUylvhUy49ljSO+leYEaeqm4TEUNWJXEXMRSAKnRVsYYyuHleYCtADTCtq8+qYPXlcNX1XUO3FKLg0Ch/FmiwFDqQTTwWyIgQFMxvZaAoGfQGvfKX2FAKASujNmSPTnoo1tuT6iTLIciqshym0XBVsGSGJbMrMZyTda+wrK9DOkPsUHOtNISlq+6GG27wwGLRA1MKbbyT17MEzymoLGdC/shQIlbu9GCv5Z0QWFnnUTrcVD1CDWBSIKFSR2GSMxR0pFBVSihYGsb/1tVbVegGVdqAVMuiBGtI4XMthfXRr98k8RuwTpw40QwWUaUc7aWRNhObeMYyKEttNPy6DCrg0DBLRjBpGIkSIYWCJpzMOMggUU86Upg4dxExALM+AqssV+ikSpV1Faxq3ut4oQSr7F9LYQVrGOIpJv5c97e//c0EC+VSQMES8zksimBQgDLI8qNsxQFAmTIBDvovlDVJ9TL2gxkUUiA1YBxSLJCga8Am6iVK3u64Oh5Y9pOzGIblnZoViGRJrL3CYfrMJnqQilXyrFOnTp3rrr/++grWChh0FGBmlJpb6XdQzSJlLINgMhGQoCqx/dgQjY4bUBwAnpuqJCEkHmpk0AVYGjJdEkfwoHS9il0FS3usmlmVdVWxBFw7xSpAFQAlWEXBis/qwTrbXXfddQwsCEydH6R6P1muq/sQ8zvJmmT0UMGp849YG5FSCDIoOYOhdt0zG8MDgWbS43rabCPVshQLgVVLWr0+FYpmHZCK+GA1gJSFUV+J5VHcICKGzSlkWZRjhXVmwxCSbhSrzm4o2wpUpSQOarYF669//WsTWE6PLjPjbRl21gaJFJIzzAKVCKim/FB4Y3aZzatiMYLq4bHAM6NkXXsqXf506VPTYFivcKJeatrxyLwPpn6XZxWQakkU02Y2fqz6rAG64rPOdtdeey0Fyxm4TS3QMciIP8pedEDMt2XITTUjY3nQp3nlTnolkq5D/4SmvCijjsrfqOcHzDuDK6tZDTLPquHo5rLkfKxS/oRi5aF3uFOsoWd4tvvzn/8cActTr+SEltmYt5SNAWOrJ4emoSQHHjngbHksqlgBsDIYXJamP6HxQblNQMYiBgQZNO9yOKfCU8ulmjKzS+ErTLX81dyqJvH12zkFpGGYZwNWUawC1unTp892f/rTnzZgya8HkVkOliGnMyZBcp0jZcxQJbjNmgJsqA7aNxmDxskY50sIRpSuSxNOsipZFieGXW2jU2E2plLAI+OFmmMNqpRVr3Bk3uX05Pq8giXC0p1i9WXxbHfNNdcgsKyeXzbS8BAcJKeKlDpLleC5mbLNgSe6TRtz6ZfqcXoZzaVCvcSqOMFQNOupMjJ5Rx6rGva6XDOr8rzOIJUzHSpsw4yHGkGc666++uoQWE7XP6ME3trPAoioTFi9gpFCRKUodKj8iV5iEuFmNr45o+enZ3kMMuseVLIU1kBU+irxpdOsvpEjZzyMsq0CS/nHwKqGvoA1QHau++Mf/+iBlY3UHCrC0MvKIKbQcQTMoGRPDWRVIcViYLIenLNfVlOCMwlIUbnTc63gsvRVOrcS8cPEoCu49FSZJOdfIbWSZVBOS9a9QglZfV5AqgPVQ0/xHrD+8Ic/SLCs0mYFmtkDzvFbmamdMTyDoM6WsTfyqOz1AEF0AINRMIic1Rz1kUrpniBSLzAtJhOodMyQ1fcFd5P55LSZuizD0RqWlmNkcFrAquWypvDV0Be4hmk1Z7vf//73TWAFIAsBR9Z5JW0SZBpQoRyLAZStMT6URbF1IDA1l/WcKjYOyEogWtYzGWQp1MvVsMuAtMIkYoish3YGVdvAJMHqlwtYZ7rf/e53s8Fy4oHQslNWXdCC65HKjAbAAwYdglknRhoAyfYnMyBk+QL5Vdblr/p+zZwGSs8UlRHDANRkPpbMtKSCabDqeg2WSOPPdL/97W8nYJEeX7T06Zucoj06dWwmk+1Mo63AoQbdUTJaQiUs4ouiGfX2HMikb4ooluexqrfS2ZbMspIsi6B3mMUXVkfLNW4QGdcuaoBg/frXv9bmnQWfyRjYNSEJeicPOlTG5M22TLhZ8ki4mRFYOkKwSqETL5gwsSEcoWQZzbkS0GkVm5h27bHqcu0VatWqybsIT1NN5KvnKqVwA9avfvUrE6zWcocUxSpdRllEimWWOAsYx0uxcqdhS5Z5b1jOzLzzVGFUMhMZhB6BVrfVeVYStAJC9VhVzWQZVD8IsiuHUsEkWIN65Z3H+uUvf8nAai53gXE7q+Rlz9QDQCzF0gChXuFISZgXY3BWf2VkVdkpf3BgWpY+FYjCoRxd+lSONdpWQBl+aYZ6LAmZih5G3zOs3+ip/muIIraK9Ytf/KIZrBaYLLXRN94qmbo9y7SrY6Iq1bQfgs7yW4ZCsTI5KmNp/NuMsEdYpxx7pbAqlMyx9IC0hKyCVb1VXZaQScXagPXzn/+8BSzLX0WADG9DKhXsFYa3ReGRbWiVUmadjQdm8UMikxBUt+EF7lKlSEDKIoesUviRx5ID0mrWQxY/aTSaqyXBGjKuLVg/+9nPPLCskjZK1IEf2qXow36hbcDnJGN+VVI/RiavA85fH9qbpOniXCwIpUBG8ioNDwlF3W1ys5zUhwJStT6hX5apStdDs/nO4gDWDiqdxIs58rtttWc4PM52P/3pT0NgEbMOe3dWz08rlKFC1jAL7dE5pQ+BqiFJRqKe2NfdRaI+uqbql5QXm3xbWSpiFCytUsC8JxmQ1udSuYRSJTmkI9VLm3itXhWswW+Vv2e7n/zkJ61gmcAESl8LTBGPlaK9QCNWoIBavUK9P/JYlq+S105mhqL4AZXBSRShp8pUlQJqhsYPk55OI9XLAmv4hs+Z7sc//nG0FDIlisBD/RhSkVYASRujG2mEoBmpom5fhaIRI0+fi0FsPR6YmI8iWZbsCWb1ZQrdUxyFqEC1Rp5LPB99U1r2GCVYIpXfgnXVVVdRsIxIAalUJJPSIWsyBo/pdZAAE8KDSigqd8S4o/YzGKbRAMG4gQHJkncFV1KGX6ucWwoVdDAsrRmXULKkwZJ+i4L1ox/9CIGFyl9GUDBlM+IGt/yBL4Mm5rEQdN5+liqxUqtLnk7eZRzAZi0w844iBassinFDZNonZRL1CiVksgzWL6zW8HQw85MUvoIk5m/VHmL5e6b74Q9/2AJWxH9lJ3VnpbLJb1ltBYCxciwTLMPkJ1b69HFOR3BSMpGvQs9lxCBAknHCCFY0Lwv0GLP64ZBRmZSxwwisH/zgByOwyPCMCZa+aQgK8XOK8rmrZnU/fby+ieI6WA9SDyCjgeYMfmdBt79GHomVOAFnVpP5svpiKqXMmOmwuZlyDrzqISb1Q7YjlZKQ1SEeZN7VIHXWfguC9f3vf38WWGQGg6dSlnp55t0tf8Z+1nqdhZlqpnt+yCupdljGxXKrLKfGaA+FnmsvpqbPoDnwGSTzE1+FTL0MT6WRr1/NHwz9me573/seBMsAxiuT0Fw7PcawdzJMeagUMtAQhI5hhxGDBZLloxiJcqxQKhEol1qxYIkUMCX5G6RSzSo8crhHlkmpWHXb8Ms0aVCvM913v/vdOWC1mPA5CkYVxvBayFAjaOr6RAaqUT418VsoUhDlz+r5Qc+mDHpGgSlSMw2SE54mFEGwMllnPgy/T5plKZTfP1RB6has73znO6wUZiMGYCl8KMcioCSrVLHeHSp5oIRSlTPyKerngJq55Y6AxpSNxRA71dOzHnSOBaDbKYzsIWojr5ZpWZSQQbC+/e1vh8GKlL8gMGGVspQK+bSgmtGeoFUWWeLOZiogL4VKoVMmWTiao6UQqNQIMr1NwgR6jyNjrx8DWHd33/rWt44CrEMoFvVOSL0iCobKGIOEfBNnCfVCZh72JEkckQhkcq58ZmDJcUMGluwhimEfqVx3d9/85jebwYp4Lr2PUU4tg26aclAaEyt3pPfYUhahsjnG3t0P+S8xJQfmWETNRj5K+LPJNgATLYsVGDHdJumZD7IUDmp3V/eNb3yDmXcKj+GrwiXNAihg3rMxpSY3gkWBQftZpY6plPJm8Fyo5FkQkcAUwYYGrDP4ue5M4ohJiKqCVAzW17/+9blgsfLXpESR/QLJOwMJljQEp+WbAooFh3HUEA5TL5o4sBJJIIPm3fBciUEFhn4mSTyJJTYT/frnd3Vf+9rXRmDVlNtSJdBb3LzhNRm3bjZSPZW018l/k/Y96FDICrxYQrM9wSRAFyxZrsh05IyiCKVeGZU/x3slMDcr17nste0KiJgQKL+EkcRU5km5G5blxD+kYln+HkQ5bgfWV7/6Va1YyYkRXLXxSpxoP+qrktcrZNCBIaJshaJG79FUKU/NrLQdKZWGU027SSj7IoPVGSmYmnlq9hh1FCEUbTQpcOgxbsH6yle+UsFasxvv+SkPgqCXSla5Ax4OTUFOZMKeBaIeO0xej5DEEU1gIcgCcYO1vGsmUApRFIGm1FDvVZN3EaTW8cZu47GuvPLKxcBaEDSr9Grv5MUNyE9NwNKJ/Eyw8ly4UKQAyt/uxqNeIwJIDwXJ+e9q/lY2DL5O6NHyGKwvf/nLs8FySqQJBfBOblk0gk+kPFbJC2+LljsypBOFSc+sYB4re3FDLX8i75KlEMYNDKgKXF2WKiUyrZGx34H1pS99CYGF1CYx6BoBa1Go0XWoL5dGFGo2SHN8VAtQCBCSfaEcK6EQNaJeVmnU6qV7hSBYTXXWqTDy5T/NvrP74he/OBssokTJiyWiyheAbgmoRmUMlVoBdDIGrBOZorwIZJ5aGSZez4qQU53lly4S8ltS9YRB34GlfsnmHrC+8IUvRMCiJlp/Fw+BZfkj0kNMrPdIrsGCCPknVDIhGBaUJATNKG7QPT0wxmj2DOVMhwH2ESC6JyhLoRzGUSY/a881QJLU721ltEyGfrZgff7zn2dg5VZvteTfOeuMyGEvjxUFC2VXLUql2wgEpl4yz8YbJ2ZdHouMvN6GeowjsD73uc8dF7ASUjmmZqoDoBVxEePe0CsM7efBo+IGPZ05qUFovSznanllkQ39mEaeDfeoxxasz372syZYwaDUhAKUQrfdmWoGAQRAJjDDIZFsazGwmELJ3TVYKhS1hoho/CD+JlUWR6Wwei4B9ZzHFqzPfOYzIbCcMUTkj7TpXwognYslBkNUjdDNl+cjsKYoYM6Y4WhX1RnIALSm0mgYez0hMKnpNVSxnMxrC9anP/3pJsVSMFGT3+qhUB7V2guUPTgwJpjmQKa/wSMGmpMHpbypElSZtOuJfp4qgW2JjCOGvBfxYaNIQfiyXfzASmPJsTZgfepTn4qCBb1No8q5pTDivyImnpRJ04sFnifL2DPjjrzTDGM/iQpaSqIISE3ggP9CvcdJeCqWt2B98pOfbAKrVZE8ZYuUO6Y2XrQwsyymqFfSlzXDiyUyLOQFp9LYp0AiX9tIKmQNhak6YtCD0+r4LVif+MQnLLBSq0KxMmaZbQ2Po0ZJ/jaXhNUCKKpSCKwAVDnquSQILO/yIERTbJRBnyhbIJVPkTKpFCwRsO7oPv7xj5tgRQAZvtG8ZClMaNIeAoKVOHANSQ3NWKqHepMQQOSXCHRuKYyUTNm7Q8A5Zj4URUg10/tp9aJgfexjHzPBqpPunBI22U88TxIiNidqjmLJduW5IqXWClNBh8D0bAo0Eyxl2GFHQXkqDbJn6HUSz7YlMh06KcNuzfPiYH30ox/1SuEsz+XtBzKvFPBppoezfJVTCl3VC5RJqkrMi+lypr7Cbxl0U82Y6mmfZkUSKpZg+3GwPvKRj0zAisBjbEuBSIHGGJZPC/QKXQBlKSReKxmeKgKnWeLovGeluBGPVZWHpfkSEJXeT3p+Ro8yGYk9B+vDH/7wDqwWVbLAingsD2KrTQWl6YEi8Fiq1BA3WL3CFD1Glz4PQEvN2DYEj+G9UlTNRmB96EMfOtk/eYj4QmlqLX2WPwqWQlOxots8Ux7pMbLzeVBY0UMklrDOhdRMAshMu97GSiHa5uVaJANLO7A++MEP7gVWoPeYgt5rUcVCABptNZU4pEIBZYPnjcQL6Nzeccz0I+gae4+m5xrAOt194AMfWBqskMdywDRLVVCtmo08UaHQvk45bFmfLGBYWBoshyGPxZTOiyJGYL3//e+PggXuSQoHpHWbjCWipdBSLGleHY+VdPArr4PdcAOmZGRsFFAFBlU2b1zb2l+Y+yQVzJiVmvSYI/FfSc2Q4GC9733va1KsGeY9RcqbUQrTEorlrE9B35VIzBBSM5BxJTDOmIKl0d3PMfrJKn9GLJH070JAsN773veaYEU8UtS8WzfQKYUhmJjyMEaQT7OMe3KMFIMm2isEIasLj+HTkJLR4zQgMs4g8UUiw0JbsN7znvdYYKWIWdf1MdoDZMdZPkmXFXbzkSqh2RJ1U9BzpWCulYxQNOq3UiCySGDwmpZJkujXH8hNTL3kNk/NdmC9+93vDoHVoGBNauMpW8T4tyhWoFc4x2+ZbVhGvQVAEqIm1CbySCwnU0oGVQrBBXqW94B1xRVXtICVgnECayNiyt32vPI3I2JIkeP1Pno4RvuuFsi8HiLoONBZE8a6hOAh/iqxXIxlXiOw3vWud0VLoWfKvVLnlT4aOXjmOgIYAom0ZfboomBY4CIFQgPpDZFEMsYiE/JwXlTBVAl4M33uLVjvfOc7TbD0jbZMuAOa+zxYGqHqRT1XoFzSexstmUs914roKRkAk/ZEUS+PmXrmv1RQW9dvwXrHO94RAkvDJT/FDUqUWiIHr10PmDmK5ezLlmkvkB0XBczan8FnRBdRk5/UHH1aWglYt3dvf/vbJViuakRihAho4Bja24uULjLE4/YeW0pjg8lv3s9RJbPcOYFpImVRPqdqyXyaLotC2bZgve1tb4NgWYGoES80wxZVJQMmWgpFrJDQsjif/up9WKW0FZA3hExANBWHdQCQCrWWSxSYom3GcnnPOp21ia/+dzuw3vrWt0bASq0xQRC4vQCLbIuqkNNhaFanOaonV1lAaoUKRhZh6NgMVmt5olhvectbZoOV1N0IKFVUeTzgUqAsmiY9crPrXP76pkXhM5Ynhjnaxr6goVKoyxroqUZhmoL15je/GYHVqjausfeUAfg4t9wFsqgIBE2wHMJ/sfIWBAm2EyilUS+Woqo1AutNb3oTBMvxVmgGQ4ooUtA3Td6YCEj7wBPtCRqzJdybTAbBw/CKdlJwKAiBNlFLkKcx6OJgvfGNb4yCFYkRwiB5QETSds8reSpinXuOVwoAFoJQ3/hI79ErnUy5DEC8XqYN1hve8IYKFjLk4ZI4x5NZ8QN636Oqh8phpFSpXuLsMtkIU+i6WstkADT3eJKHeftesAHr9a9/fQgsnbwPP/Tvqcuk+1yOkfuCSX9Jl0JxHpbCJydFT+pHQxIDCgSebimUrw3N0VJzseDrZO0rINC+CEZ5w9fawohEfhSzqPKYwH+6EFGvLVive93rRmAFlCe0DqmRV9LIDTa3O8oRLm9EragaRdTFOx+CLapyzoC3p5zJyre0whllGalXAetU99rXvnYWWJH95myLAGkoVchzRcsY6rAQJUPAJKOszympqEPh9ga9uMKCiBzrwboF6zWveY0LVkOPzoIuvC2ibI1tyHU1IV5basQMdCuctURabbVAYPUEmX9DMLYAaJh71MYWrFe/+tXNYDnQhVTIArIFWlYC91ApqkwtbbDSxRRwTptGybWUEXo35i1RHuZsu6B/eqp71atedXCwDgGQ54HIvLK0DyBzVWuJ45nPaVE6T9mi6hUC65WvfGUIrNbSF7gp2StF0ZsbgGz0GvZVtn3ACt54CsGcYyyoIgCBnrgP1ite8QoIVvQGkpuSAu2N3usWhfJ6dVFgDN9nGm8y05b28vSHSYw9Nl8TUw7y4WrKzwzYXEWbgPXyl798FlgtyrOves006e4x+6jUUbfRqmDevkSR2HW0g/Wyl72sCaw9tofVJgpZ642aC/SSkARNfus5otfAzm32gqPrR2C99KUvPSqw9oaGvelodoXFsC7FBLbQfY12HvRNJGUvRa+/BT45QQ9ELh0AZ7d/izcbVhewbute8pKXULAaeoGmKkXVqxVG67g5ynac/lpDV/Jme16MqZRhyCfDQs6AOQbrxS9+cQtYB1OlfSFrOef5BCWoMLMhVB2J2ecwtlOQh1UP6P/e2r3oRS+agLVnuZsN2RxIjDe55fy6bM3xfCEVbSzLkb+z2lCKRBWxBcgRWC984QubwGI3Y19V8m7knN5iS8lkuy2pSnn7M05N1+TANKekhttH1xgG6wUveEEIrJayyLxU9GYwQFpvrgfcPsozd99ge8nJw9K+ALZ4qiicI7Ce//zn6/lYKXpzW8FpKaNzz8Hk3QpQ5wKxFEhOmWxte9aHUCuRp+ouWM973vMkWLsTlF/eYzcIqZaY+BdSiuj7pa/BY9fIqTpr2z7qtodZt9Savg8WgB67+v3I4+9Z7iKIaPtg27ZX+NznPvdk2v4c9yylCCpbkxLNUEAEf5Nfm6Gke++/0DmXUDarmrQq3gX9n9u65zznOWGwopA1gBG6+S3tRXzaoaCYc50t+zG1aHg9zee1SqQJ1rOf/exZYEVVaCkw56xz1G106qXBQiMFLTfe8lqt1xYBMuqpgmDd2j3rWc9iYIU/9fuUuH3bWRIK4mVc7+ddiuGnDv3aZr0frQBCsJ75zGe6YLW+AXOAnAPa3BuzrwosuX3pdqOli/lRPaVnxnm3YD3jGc8YgbWQas0qj42e7LzBdlyOmwtSIENr8Xx6+xasyy+/PATWPm/EnDZY3MAigT0Ajpxnn+XZ0KAhprnn8cBcEMItWE9/+tP3Amsp0GYo16zzRgLgJc/bArN1ow+hfBGoZoN12WWXNYMVfdHWPnMVZo4StZZWZ3kpIZrjXfc+MTk3qwJzoNyC9bSnPS0M1tJvALphqIkFwdOK1R1asaJgOSA3K8q+6uTt54L11Kc+1QMrpDRL3Bi065JvRut+zvuwlzU48HXTD+YS55VQUbCe8pSnzAZrD4DS0uc7xLmjYB3FtqgaHcV1hcB68pOfPAHLO4mlWkd146LKeShYzue+gbLaeh9aPsBeu1uwnvSkJ+0F1nG5AZHmDnXeJY4FnY1j877OAOtk98QnPtEFa2m4ln4+49pDHxwQTcx5Pml+yde2JDSeSQ8evwXrCU94QgisJeA63wAe1TXel16nVWpNsB7/+MdDsOZeXIVNTPqTv+S3k1L9HB3jXYvcP1gKO9W9nzzf56ah18yeR5rVcYhzD/T11/068nz0mpFfa1XaEViPe9zjwmBFG/eUbKlP1B7wL/IJP8p2DrxPs79zwXrsYx+7AWvpG6fhOjQYe34QDgrEcXmdCKgDtP+ADViPecxjmsDad90+0DWuk+dBZYBlZt0Sr3EucEe47lDn2YL16Ec/ehGwjhKuo7zWe/vxuld3BNe6BetRj3qUCdZS61vbiIJ36Os4Tu9Ja9to94C673sdW7Ae+chH7sBixxg3f7E3pwUyFnoe4txH8fq89VEmz+d9Euu2YF166aUuWPITUGMC9OKj23SSa21jgLHBar19+H5kx+IKtA0Ent75rWPoNkMprOC1a1GX8/BBK2Dd0j3iEY+QYM1VlGO17f7XcV63bcF6+MMfHgbrfG/3jj3kTbz/tYW3b8F62MMeNgJriZMct30c79YteC1ZlGC3XOok3iiz96b3dwvWQx/60GawltznuLZ1Xz/fAa/9wv5xc3fJJZdMwFr64g657//385/vawX7bcF68IMfvBdYR33Mofe/r5zjPN6/LVgXX3wxBGvuiY7yRR23a7Qil0Mct+DropngjHNtwbrooosoWPu+yKWOPy5t3P8+hI7fgvWgBz3IBWvJF3UUbd6brvU++Pq3YD3wgQ90wZKT8lC3ueUfkPxkRAGWdE/aCrYbOsfcNtUowiLnnlsV9aW1HmOMPHQOWDd1F154YVixzten7752Tffx92oL1gUXXHB7v3DxMXyR6f5/99r36rYiaSf6xyX33577/y0J1v8BhRM1/97DBhQAAAAASUVORK5CYII=]]></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[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IGFuZCBiZXlvbmQgYnkgVGhlIENNUyBNYWRlIFNpbXBsZSBGb3VuZGF0aW9uCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICggIWNtc21zKCkgKSBleGl0OwoKLyoqIAogKiBJbnN0YWxsIG1vZHVsZQogKi8KCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpOwoJCQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fc2VjdGlvbicsICdleHRlbnNpb25zJyk7CgoKJGRiID0gJHRoaXMtPkdldERiKCk7CgovLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnRU5HSU5FPU15SVNBTScpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgokZmxkcyA9ICIKCWZpZWxkaWQgSSBLRVkgQVVUTywKCW5hbWUgQygyNTUpLAoJaGVscCBYLAoJdHlwZSBDKDIwKSwKCXByb3BlcnRpZXMgWCwKCWNsZWFyY2FjaGUgSSwKCXNvcnRvcmRlciBJLAoJdmFsdWUgWCwKCWVkaXRvcnMgQygyNTUpCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21ncyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKCXRhYmlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSwKCXNvcnRvcmRlciBJLAoJZWRpdG9ycyBDKDI1NSkKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYiIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKCXRhYmlkIEksCglmaWVsZGlkIEkKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIiwgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQiLCAidGFiaWQsZmllbGRpZCIsIGFycmF5KCJVTklRVUUiKSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyAobmFtZSwgaGVscCwgdHlwZSwgc29ydG9yZGVyLCB2YWx1ZSkgVkFMVUVTICg/LD8sPyw/LD8pIjsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJ1NhbXBsZSB0ZXh0ZmllbGQnLCAiU2FtcGxlIGhlbHAgdGV4dCBmb3IgdGhpcyB0ZXh0ZmllbGRcbjxpPjx1PkhUTUw8L3U+IGlzIGFsbG93ZWQ8L2k+IiwgJ3RleHRmaWVsZCcsIDEsICdTYW1wbGUgdmFsdWUnKSk7CgokcXVlcnkgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3NfdGFiIChuYW1lLCBzb3J0b3JkZXIpIFZBTFVFUyAoPyw/KSI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0aGlzLT5MYW5nKCJ0aXRsZV9nZW5lcmFsIiksIDEpKTsKCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCAoZmllbGRpZCwgdGFiaWQpIFZBTFVFUyAoPyw/KSI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KDEsIDEpKTsKCi8vIHJlZ2lzdGVyIGFuIGV2ZW50IHRoYXQgQ3VzdG9tR1Mgd2lsbCBpc3N1ZS4KJHRoaXMtPkNyZWF0ZUV2ZW50KCdPblNldHRpbmdDaGFuZ2UnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IGFuZCBiZXlvbmQgYnkgVGhlIENNUyBNYWRlIFNpbXBsZSBGb3VuZGF0aW9uCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICggIWNtc21zKCkgKSBleGl0OwoKLyoqIAogKiBVbmluc3RhbGwgbW9kdWxlCiAqLwokZGIgPSAkdGhpcy0+R2V0RGIoKTsKCi8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGVzCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21ncyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21nc190YWIiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKTsKCQkKLy8gcmVtb3ZlIGFsbCBwcmVmZXJlbmNlcwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKLy8gcmVtb3ZlIHRoZSBldmVudAokdGhpcy0+UmVtb3ZlRXZlbnQoJ09uU2V0dGluZ0NoYW5nZScpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncwojIEF1dGhvcjogUm9sZiBUamFzc2VucyAoY21zY2FuYmVzaW1wbGUub3JnKSwgSm9zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgLSBQb3dlciBmb3IgdGhlIHByb2Zlc3Npb25hbCwgU2ltcGxpY2l0eSBmb3IgdGhlIGVuZCB1c2VyLgojIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQojIChjKSAyMDE4IGFuZCBiZXlvbmQgYnkgVGhlIENNUyBNYWRlIFNpbXBsZSBGb3VuZGF0aW9uCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICggIWNtc21zKCkgKSBleGl0OwoKJGRiID0gJHRoaXMtPkdldERiKCk7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ0VOR0lORT1NeUlTQU0nKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKc3dpdGNoKCRvbGR2ZXJzaW9uKQp7CgljYXNlICIxLjAiOgoKCQkkZmxkcyA9ICIKCQkJZmllbGRpZCBJIEtFWSBBVVRPLAoJCQluYW1lIEMoMjU1KSwKCQkJaGVscCBYLAoJCQl0eXBlIEMoMjApLAoJCQlwcm9wZXJ0aWVzIFgsCgkJCXNvcnRvcmRlciBJLAoJCQl2YWx1ZSBYCgkJIjsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkaWR4ID0gMTsKCQlmb3IgKCRpID0gMTsgJGkgPD0gNzsgJGkrKykKCQl7CgkJCS8vIHRyYW5zZmVyIGNoZWNrYm94ZXMgdG8gZGF0YWJhc2UKCQkJJGZpZWxkbmFtZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF90aXRsZV9jaGVja2JveF8nLiRpKTsKCQkJaWYgKCAhZW1wdHkoJGZpZWxkbmFtZSkgKQoJCQl7CgkJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgKG5hbWUsIGhlbHAsIHR5cGUsIHNvcnRvcmRlciwgdmFsdWUpIFZBTFVFUyAoPyw/LD8sPyw/KSI7CgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgKCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfdGl0bGVfY2hlY2tib3hfJy4kaSksCgkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X2hlbHBfY2hlY2tib3hfJy4kaSksCgkJCQkJJ2NoZWNrYm94JywKCQkJCQkkaWR4LAoJCQkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF9jaGVja2JveF8nLiRpKQoJCQkJKSk7CgkJCQkkaWR4Kys7CgkJCX0KCQkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2lucHV0X2NoZWNrYm94XycuJGkpOwoJCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnaW5wdXRfdGl0bGVfY2hlY2tib3hfJy4kaSk7CgkJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdpbnB1dF9oZWxwX2NoZWNrYm94XycuJGkpOwoJCX0KCQlmb3IgKCRpID0gMTsgJGkgPD0gNTsgJGkrKykKCQl7CgkJCS8vIHRyYW5zZmVyIHRleHRmaWVsZHMgdG8gZGF0YWJhc2UKCQkJJGZpZWxkbmFtZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF90aXRsZV90ZXh0ZmllbGRfJy4kaSk7CgkJCWlmICggIWVtcHR5KCRmaWVsZG5hbWUpICkKCQkJewoJCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIChuYW1lLCBoZWxwLCB0eXBlLCBzb3J0b3JkZXIsIHZhbHVlKSBWQUxVRVMgKD8sPyw/LD8sPykiOwoJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoCgkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X3RpdGxlX3RleHRmaWVsZF8nLiRpKSwKCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfaGVscF90ZXh0ZmllbGRfJy4kaSksCgkJCQkJJ3RleHRmaWVsZCcsCgkJCQkJJGlkeCwKCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfdGV4dGZpZWxkXycuJGkpCgkJCQkpKTsKCQkJCSRpZHgrKzsKCQkJfQoJCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnaW5wdXRfdGV4dGZpZWxkXycuJGkpOwoJCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnaW5wdXRfdGl0bGVfdGV4dGZpZWxkXycuJGkpOwoJCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnaW5wdXRfaGVscF90ZXh0ZmllbGRfJy4kaSk7CgkJfQoJCS8vIHJlc2V0IHBlcm1pc3Npb25zCgkJJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBTZXR0aW5ncycpOwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnKTsKCQkvLyBjcmVhdGUgZXZlbnQKCQkkdGhpcy0+Q3JlYXRlRXZlbnQoJ09uU2V0dGluZ0NoYW5nZScpOwoJCS8vIGRlbGV0ZSBmaWxlcwoJCSRkZWxldGVmaWxlcyA9IGFycmF5ICgnZnVuY3Rpb24uYWRtaW5fY2hlY2tib3hlcy5waHAnLCAnZnVuY3Rpb24uYWRtaW5fdGV4dGZpZWxkcy5waHAnLCAnZnVuY3Rpb24uYWRtaW5fc2V0dGluZ3MnLAoJCQkJCQkJCQkJCQkJJ2FjdGlvbi5zYXZlX2NoZWNrYm94ZXMucGhwJywgJ2FjdGlvbi5zYXZlX3RleHRmaWVsZHMucGhwJywgJ2FjdGlvbi5zYXZlX3NldHRpbmdzLnBocCcsCgkJCQkJCQkJCQkJCQkndGVtcGxhdGVzL2FkbWluX2NoZWNrYm94ZXMudHBsJywgJ3RlbXBsYXRlcy9hZG1pbl90ZXh0ZmllbGRzLnRwbCcsICd0ZW1wbGF0ZXMvYWRtaW5fc2V0dGluZ3MudHBsJyk7CgkJZm9yZWFjaCAoJGRlbGV0ZWZpbGVzIGFzICRkZWxldGVmaWxlKSBAdW5saW5rKCRkZWxldGVmaWxlKTsKCgkJLy8gY3VycmVudCB2ZXJzaW9uOiAxLjEKCgljYXNlICIxLjEiOgoKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fc2VjdGlvbicsICdleHRlbnNpb25zJyk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21ncyIsICJjbGVhcmNhY2hlIEkiKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIGN1cnJlbnQgdmVyc2lvbjogMS4yCgkJCgljYXNlICIxLjQiOgoKCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIiwgImVkaXRvcnMgQygyNTUpIik7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkvLyBjdXJyZW50IHZlcnNpb246IDEuNQoJCQoJY2FzZSAiMS41IjoKCWNhc2UgIjEuNiI6CgljYXNlICIyLjAiOgoJY2FzZSAiMi4xIjoKCWNhc2UgIjIuMiI6CgoJCSRmbGRzID0gIgoJCQl0YWJpZCBJIEtFWSBBVVRPLAoJCQluYW1lIEMoMjU1KSwKCQkJc29ydG9yZGVyIEksCgkJCWVkaXRvcnMgQygyNTUpCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZmxkcyA9ICIKCQkJdGFiaWQgSSwKCQkJZmllbGRpZCBJCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3NfdGFiZmllbGQiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkX2lkeCIsIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzX3RhYmZpZWxkIiwgInRhYmlkLGZpZWxkaWQiLCBhcnJheSgiVU5JUVVFIikpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQoJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWIgKHRhYmlkLCBuYW1lLCBzb3J0b3JkZXIpIFZBTFVFUyAoPyw/LD8pIjsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgxLCAkdGhpcy0+TGFuZygidGl0bGVfZ2VuZXJhbCIpLCAxKSk7CgoJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCAodGFiaWQsIGZpZWxkaWQpCgkJCQkJU0VMRUNUIDEgQVMgdGFiaWQsIGZpZWxkaWQgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoJY2FzZSAiMy4wIjoKCWNhc2UgIjMuMSI6CgkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgbmFtZT1DT05DQVQobmFtZSwnLicpIFdIRVJFIHR5cGU9J2ZpZWxkc2V0ZW5kJyBBTkQgUklHSFQobmFtZSwxKSA8PiAnLiciOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCSRxdWVyeSA9ICJERUxFVEUgdGYgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21nc190YWJmaWVsZCB0ZiBMRUZUIEpPSU4gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgZiBPTiB0Zi5maWVsZGlkPWYuZmllbGRpZCBXSEVSRSBmLmZpZWxkaWQgSVMgTlVMTCI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoJY2FzZSAiMy4yIjoKCQkvLyBkZWxldGUgcmVkdW5kYW50IGZpbGUKCQlAdW5saW5rKCBjbXNfam9pbl9wYXRoKCBkaXJuYW1lKF9fRklMRV9fKSwgJ2xpYicsICdqcXVlcnknLCAnanF1ZXJ5LXVpLnNtb290aG5lc3MuY3NzJyApICk7CgoJY2FzZSAiMy4zIjoKCQkvLyBkZWxldGUgcmVkdW5kYW50IGZpbGVzCgkJJGRlbGV0ZWZpbGVzID0gYXJyYXkoCgkJCWRpcm5hbWUoX19GSUxFX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjaGFuZ2Vsb2cuaW5jJywKCQkJZGlybmFtZShfX0ZJTEVfXykgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2hlbHBfdGV4dC5pbmMnCgkJKTsKCQlmb3JlYWNoICgkZGVsZXRlZmlsZXMgYXMgJGRlbGV0ZWZpbGUpIEB1bmxpbmsoJGRlbGV0ZWZpbGUpOwogICAgCgkJLy8gY3VycmVudCB2ZXJzaW9uOiAzLjQKCn0gLy8gZW5kIHN3aXRjaAoKCgojCiMgRU9GCiM=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJDdXN0b21HUyINCnZlcnNpb24gPSAzLjUNCmF1dGhvciA9ICJSb2xmIFRqYXNzZW5zLCBKb3MiDQphdXRob3JlbWFpbCA9ICJqb3N2ZCBhdCBsaXZlIGRvdCBubCINCm1pbmNtc3ZlcnNpb24gPSAyLjINCmxhenlsb2FkYWRtaW4gPSAwDQpsYXp5bG9hZGZyb250ZW5kID0gMA0K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_fielddefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtc3xAY291bnQgPiAwfQoKPHNjcmlwdD4KCXZhciBmaWVsZGRlZnNjaGFuZ2VkID0gJyc7Cgl2YXIgYWpheF9sb2FkID0gJzxpbWcgc3JjPSJ7JGNnc191cmxfcGF0aH0vaW1hZ2VzL2xvYWRpbmcuZ2lmIiBhbHQ9ImxvYWRpbmcuLi4iIC8+JzsKCXZhciB0cnVlaW1nID0gJ3skdHJ1ZWltYWdlfSc7Cgl2YXIgZmFsc2VpbWcgPSAneyRmYWxzZWltYWdlfSc7CgoJalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7IAoKCQkkKCcjdGFic2VsZWN0JykuY2hhbmdlKCBmdW5jdGlvbigpIHsKCQkJbG9jYXRpb24uaHJlZiA9ICd7Y21zX2FjdGlvbl91cmwgbW9kdWxlPUN1c3RvbUdTIGFjdGlvbj1kZWZhdWx0YWRtaW4gZm9yanM9MSBtaWQ9InskbW9kX2lkfSIgYWN0aXZlX3RhYj0iZmllbGRkZWZzIn0meyRtb2RfaWR9dGFiaWQ9JyskKHRoaXMpLnZhbCgpOwoJCX0gKTsKCgkJJCgnLnNvcnRfdGFibGVfZmllbGRkZWZzJykudGFibGVEbkQoIHsKCQkJb25EcmFnQ2xhc3M6ICJyb3cxaG92ZXIiLAoJCQlvbkRyb3A6IGZ1bmN0aW9uKHRhYmxlLCByb3cpIHsKCgkJCQlqUXVlcnkoIi5zb3J0X3RhYmxlX2ZpZWxkZGVmcyIpLmZpbmQoInRib2R5IHRyIikucmVtb3ZlQ2xhc3MoKTsKCQkJCWpRdWVyeSgiLnNvcnRfdGFibGVfZmllbGRkZWZzIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsKCQkJCWpRdWVyeSgiLnNvcnRfdGFibGVfZmllbGRkZWZzIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKSIpLmFkZENsYXNzKCJyb3cyIik7CgoJCQkJdmFyIHJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7CgkJCQl2YXIgc29ydHN0ciA9IHJvd3NbMF0uaWQ7CgkJCQlmb3IgKHZhciBpPTE7IGk8cm93cy5sZW5ndGg7IGkrKykgewoJCQkJCXNvcnRzdHIgKz0gIiwiK3Jvd3NbaV0uaWQ7IAoJCQkJfSAKCQkJCSQoJyNsb2FkZXInKS5odG1sKGFqYXhfbG9hZCkubG9hZCgne2Ntc19hY3Rpb25fdXJsIG1vZHVsZT1DdXN0b21HUyBhY3Rpb249ZWRpdGZpZWxkZGVmIGZvcmpzPTEgbWlkPSJ7JG1vZF9pZH0iIG1vZGU9c29ydCBzaG93dGVtcGxhdGU9ZmFsc2V9JnskbW9kX2lkfXNvcnRzZXE9Jytzb3J0c3RyKTsKCQkJCWZpZWxkZGVmc2NoYW5nZWQgPSB0cnVlOwoJCQl9CgkJfSApOwoKCQkvLyQoJy51cGRvd24nKS5oaWRlKCk7CgkJCgkJJCgnYS5hc3NpZ250YWInKS5jbGljayhmdW5jdGlvbihldmVudCkgeyAKCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsgCgkJCXZhciBzZWxmID0gJCh0aGlzKTsKCQkJJC5hamF4KCB7IHVybDogc2VsZi5hdHRyKCdocmVmJyksIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlc3VsdCkgeyAKCQkJCWlmKHJlc3VsdCA9PSAxKQoJCQkJCXNlbGYuaHRtbCh0cnVlaW1nKTsKCQkJCWVsc2UKCQkJCQlzZWxmLmh0bWwoZmFsc2VpbWcpOwoJCQkJZmllbGRkZWZzY2hhbmdlZCA9IHRydWU7CgkJCX0gfSApOwoJCQlyZXR1cm4gZmFsc2U7CgkJfSApOwoJCQoJCSQoJyNwYWdlX3RhYnMgZGl2JykuY2xpY2soZnVuY3Rpb24oKSB7CgkJCWlmKGZpZWxkZGVmc2NoYW5nZWQpIGxvY2F0aW9uLmhyZWYgPSAne2Ntc19hY3Rpb25fdXJsIG1vZHVsZT1DdXN0b21HUyBhY3Rpb249ZGVmYXVsdGFkbWluIGZvcmpzPTEgbWlkPSJ7JG1vZF9pZH0ifSZ7JG1vZF9pZH1hY3RpdmVfdGFiPScgKyAkKHRoaXMpLmF0dHIoJ2lkJyk7CgkJCXJldHVybiBmYWxzZTsKCQl9ICk7CgkJCgkJJCgnaW5wdXQjc2VsZWN0YWxsJykuY2xpY2soZnVuY3Rpb24oKSB7CgkJCSQoJy5jaGVja2JveCBpbnB1dCcpLnByb3AoJ2NoZWNrZWQnLCQodGhpcykuaXMoJzpjaGVja2VkJykpOwoJCX0gKTsKICAgIAoJCSQoJyNtdWx0aWFjdGlvbicpLmNoYW5nZShmdW5jdGlvbigpIHsKCQkJaWYgKCQoJyNtdWx0aWFjdGlvbicpLnZhbCgpID09ICdtb3ZlJykKCQkJewoJCQkJJCgnI21vdmV0bycpLnNob3coJ3Nsb3cnKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSQoJyNtb3ZldG8nKS5oaWRlKCdzbG93Jyk7CgkJCX0KCQl9KTsKCQkkKCcjbXVsdGlhY3Rpb24nKS5jaGFuZ2UoKTsKCX0gKTsKPC9zY3JpcHQ+Cgp7Zm9ybV9zdGFydCBhY3Rpb249J2VkaXRmaWVsZGRlZid9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHNwYW4+eyRuZXdmaWVsZGRlZmxpbmt9Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gaWQ9ImxvYWRlciI+IDwvc3Bhbj48L3NwYW4+CjwvZGl2PgogIAo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHRhYmxlIGNsYXNzPSJwYWdldGFibGUgc29ydF90YWJsZV9maWVsZGRlZnMiPgoJCTx0aGVhZD4KCQkJPHRyPgoJCQkJPHRoIGNsYXNzPSJwYWdldzI1Ij57JG5hbWV9PC90aD4KCQkJCTx0aCBjbGFzcz0icGFnZXcyNSI+eyR0eXBlfTwvdGg+CgkJCQk8dGggY2xhc3M9InBhZ2V3MjUiPnskc21hcnR5dmFyfTwvdGg+CgkJCQl7Kjx0aCBjbGFzcz0icGFnZWljb24gdXBkb3duIj4mbmJzcDs8L3RoPip9CgkJCQl7Kjx0aCBjbGFzcz0icGFnZWljb24gdXBkb3duIj4mbmJzcDs8L3RoPip9CgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIiBjb2xzcGFuPSI1Ij57JHNob3dvbnRhYn0mbmJzcDt7JHRhYnNlbGVjdH08L3RoPgoJCQkJeyo8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPip9CgkJCQl7Kjx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+Kn0KICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48aW5wdXQgaWQ9InNlbGVjdGFsbCIgdHlwZT0iY2hlY2tib3giIC8+PC90aD4KCQkJPC90cj4KCQk8L3RoZWFkPgoJCXskZ3JvdXBpbmRlbnQgPSAnJ30KCQl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCQl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj1yb3djbGFzc30KCQkJe2lmICRlbnRyeS0+dHlwZSA9PSAnRmllbGRncm91cCBzdGFydCd9eyRncm91cGluZGVudCA9ICcmbmJzcDsmbmJzcDsmbmJzcDsnfXsvaWZ9CgkJCTx0ciBpZD0iaXskZW50cnktPmZpZWxkaWR9IiBjbGFzcz0ieyRyb3djbGFzc30iPgoJCQkJPHRkPntpZiBlbXB0eSgkZW50cnktPnNtYXJ0eXZhcil9PHN0cm9uZz57JGVudHJ5LT5uYW1lfTwvc3Ryb25nPntlbHNlfXskZ3JvdXBpbmRlbnR9eyRlbnRyeS0+bmFtZX17L2lmfTwvdGQ+CgkJCQk8dGQ+eyRlbnRyeS0+dHlwZX08L3RkPgoJCQkJPHRkPjxzcGFuIGNsYXNzPSJzbWFydHl2YXIiPnskZW50cnktPnNtYXJ0eXZhcn08L3NwYW4+PC90ZD4KCQkJCTx0ZCBjbGFzcz0idXBkb3duIj57JGVudHJ5LT5tb3ZldXB9PC90ZD4KCQkJCTx0ZCBjbGFzcz0idXBkb3duIj57JGVudHJ5LT5tb3ZlZG93bn08L3RkPgoJCQkJPHRkIGNsYXNzPSJwYWdlcG9zIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyIj57JGVudHJ5LT5hc3NpZ250YWJ9PC90ZD4KCQkJCTx0ZCBjbGFzcz0icGFnZXBvcyI+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJCTx0ZCBjbGFzcz0icGFnZXBvcyI+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgogICAgICAgIDx0ZCBjbGFzcz0icGFnZXBvcyBjaGVja2JveCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkc2VsZWN0W3skZW50cnktPmZpZWxkaWR9XSIgdmFsdWU9IjEiPjwvdGQ+CgkJCTwvdHI+CgkJCXtpZiAkZW50cnktPnR5cGUgPT0gJ0ZpZWxkZ3JvdXAgZW5kJ317JGdyb3VwaW5kZW50ID0gJyd9ey9pZn0KCQl7L2ZvcmVhY2h9Cgk8L3RhYmxlPgo8L2Rpdj4KCnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJe2lmICRpdGVtc3xAY291bnQgPiAwfTxzcGFuIHN0eWxlPSJmbG9hdDogcmlnaHQ7IHRleHQtYWxpZ246IHJpZ2h0Ij4KCQl7JG1vZC0+TGFuZygnd2l0aHNlbGVjdGVkJyl9OiAKCQl7JG9wdHNbXT1bJ2xhYmVsJz0+JG1vZC0+TGFuZygnbW92ZXRvdG9wJyksJ3ZhbHVlJz0+J21vdmV0b3RvcCddfQoJCXskb3B0c1tdPVsnbGFiZWwnPT4kbW9kLT5MYW5nKCdtb3ZldG9ib3R0b20nKSwndmFsdWUnPT4nbW92ZXRvYm90dG9tJ119CgkJeyRvcHRzW109WydsYWJlbCc9PiRtb2QtPkxhbmcoJ21vdmV0b2dyb3VwJyl8Y2F0OicuLi4nLCd2YWx1ZSc9Pidtb3ZlJ119CgkJeyRvcHRzW109WydsYWJlbCc9PmxhbmcoJ2RlbGV0ZScpLCd2YWx1ZSc9PidkZWxldGUnXX0KCQk8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9bXVsdGlhY3Rpb24iIGlkPSJtdWx0aWFjdGlvbiI+CgkJe2Ntc19odG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0c30KCQk8L3NlbGVjdD4KCQk8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmllbGRncm91cCIgaWQ9Im1vdmV0byI+CgkJe2Ntc19odG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRncm91cHN9CgkJPC9zZWxlY3Q+CgkJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7bGFuZygnYXBwbHknKX0iLz4KCTwvc3Bhbj57L2lmfQoJPHNwYW4+eyRuZXdmaWVsZGRlZmxpbmt9PC9zcGFuPgo8L2Rpdj4KCntmb3JtX2VuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_general.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPSdzYXZlX2dlbmVyYWwnIHRhYmlkPSR0YWJpZH0NCg0KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJCXtpZiAkZW50cnktPnR5cGUgPT0gJ2ZpZWxkc2V0c3RhcnQnIHx8ICRlbnRyeS0+dHlwZSA9PSAnZmllbGRzZXRlbmQnfQ0KCQkNCgkJCXskZW50cnktPmZpZWxkaHRtbH0NCgkJCXtpZiAhZW1wdHkoJGVudHJ5LT5oZWxwKX08cCBjbGFzcz0icGFnZWlucHV0Ij57JGVudHJ5LT5oZWxwfG5sMmJyfTwvcD57L2lmfQ0KICAgIA0KCQl7ZWxzZX0NCgkJDQoJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQkJCTxwIGNsYXNzPSJwYWdldGV4dCI+e2lmICRlbnRyeS0+dHlwZSAhPSAnYnV0dG9uJ317JGVudHJ5LT5uYW1lfGVzY2FwZX06PC9wPg0KCQkJCTxwIGNsYXNzPSJwYWdlaW5wdXR7JGVudHJ5LT5maWVsZGNsYXNzfSI+ey9pZn17JGVudHJ5LT5maWVsZGh0bWx9PC9wPg0KCQkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmhlbHB8bmwyYnJ9PC9wPg0KCQkJPC9kaXY+DQoJCQ0KCQl7L2lmfQ0KCXsvZm9yZWFjaH0NCgkNCgk8aHIgLz4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRjYW5jZWx9PC9wPg0KCTwvZGl2Pg0KDQp7Zm9ybV9lbmR9]]></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/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAzLjU8L3N0cm9uZz4gLSA2IEp1bHkgMjAyMw0KCTx1bD4NCgk8bGk+QmF0Y2ggb3BlcmF0aW9ucyAobW92ZSB0byB0b3AvYm90dG9tL2dyb3VwLCBkZWxldGUpIG9uIGZpZWxkIGRlZmluaXRpb25zIChGUiAjOTg5MiAjMTAyMjQpPC9saT4NCgk8bGk+QWxsb3dpbmcgSFRNTCBpbnNpZGUgdGhlIGhlbHAgdGV4dCAoRlIgIzExNjE2KTwvbGk+DQoJPGxpPkJ1ZyAjMTIyOTQ6IGZpeGVkIC0gUmVuZXcgc3R5bGVzaGVldCBjYWNoZSBub3Qgd29ya2luZzwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDMuNDwvc3Ryb25nPiAtIDE4IEZlYnJ1YXJ5IDIwMjENCgk8dWw+DQoJPGxpPk1pbm9yIGZpeCB0byBBZG1pbiBTZWN0aW9uIHNlbGVjdG9yPC9saT4NCgk8bGk+TW92ZSBoZWxwIGFuZCBjaGFuZ2Vsb2cgZmlsZXMgdG8gdGVtcGxhdGVzPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMy4zPC9zdHJvbmc+IC0gNiBPY3RvYmVyIDIwMTkNCgk8dWw+DQoJPGxpPkZpeGVzIGZvciBDTVNNUyAyLjM8L2xpPg0KCTxsaT5VcGRhdGVkIFRhYmxlRG5EIHBsdWdpbiAwLjkuMTwvbGk+DQoJPGxpPkNvZGUgY2xlYW4gdXA8L2xpPg0KCTxsaT5CdWcgIzExNzYwOiBmaXhlZCAtIERlbGV0aW5nIEZpZWxkZ3JvdXAgb25seSBkZWxldGVzIEZpZWxkZ3JvdXAgU3RhcnQ8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAzLjI8L3N0cm9uZz4gLSA5IE9jdG9iZXIgMjAxNw0KCTx1bD4NCgk8bGk+RXhwb3J0L2ltcG9ydCBzZXR0aW5ncyB2aWEgWE1MIGZpbGUgKEZSICM4MzQxKSBTcG9uc29yZWQgYnkgVmlzaW9ucGFyazwvbGk+DQoJPGxpPkZpeGVkOiBTaG93IHRhYmNvbnRlbnQgb2YgVGFicyB3aGVuIHRoZXJlIGFyZSBubyBmaWVsZCBkZWZpbml0aW9uczwvbGk+DQoJPGxpPkZpeGVkOiBEZWxldGUgdGFiZmllbGQgcmVmZXJlbmNlIGFmdGVyIGEgZmllbGQgZGVmaW5pdGlvbiBoYXMgYmVlbiBkZWxldGVkPC9saT4NCgk8bGk+Rml4ZWQ6IERyb3AgdGFiIHJlbGF0ZWQgdGFibGVzIGZyb20gdGhlIGRhdGFiYXNlIHdpdGggdW5pbnN0YWxsIGFjdGlvbjwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDMuMTwvc3Ryb25nPiAtIDIxIEp1bHkgMjAxNw0KCTx1bD4NCgk8bGk+QWRkZWQgZmllbGR0eXBlICdGaWxlUGlja2VyJzwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDMuMDwvc3Ryb25nPiAtIDE1IE9jdG9iZXIgMjAxNg0KCTx1bD4NCgk8bGk+QWRkZWQgZmllbGR0eXBlICdQYWdlIHNlbGVjdG9yJyAoRlIgIzEwMDc3KTwvbGk+DQoJPGxpPkdyb3VwaW5nIG9mIHNldHRpbmdzIGJ5IGN1c3RvbSB0YWJzIChGUiAjMTAxNzYpPC9saT4NCgk8bGk+Q2xpY2tpbmcgb24gZmllbGR0eXBlIGJ1dHRvbiBmaXJlcyBldmVudCAnT25TZXR0aW5nQ2hhbmdlJzwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDIuMjwvc3Ryb25nPiAtIDEzIE1hcmNoIDIwMTYNCgk8dWw+DQoJPGxpPlRhZyB7bGRlbGltfUN1c3RvbUdTfSBubyBsb25nZXIgbmVlZGVkLCBtb2R1bGUgZ2V0cyBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemVkPC9saT4NCgk8bGk+QWRkZWQgZmllbGR0eXBlICdKTUZpbGVQaWNrZXInPC9saT4NCgk8bGk+TmV3IGljb248L2xpPg0KCTxsaT5Vc2UgY29yZSBjbXNfbWFpbGVyIG1ldGhvZDwvbGk+DQoJPGxpPk1pbmltdW0gcmVxdWlyZWQgQ01TbXMgdmVyc2lvbiBzZXQgdG8gMS4xMjwvbGk+DQoJPGxpPkJ1ZyAjMTA4Mzg6IGZpeGVkIC0gRG9lc24ndCBvdXRwdXQgYW55dGhpbmcgaW4gMi4xLjE8L2xpPg0KCTxsaT5CdWcgIzEwOTMyOiBmaXhlZCAtIFBlcm1pc3Npb25zIG5vdCBjaGVja2VkIHByb3Blcmx5PC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMi4xPC9zdHJvbmc+IC0gMTAgSnVseSAyMDE0DQoJPHVsPg0KCTxsaT5CdWcgIzk5ODk6IGZpeGVkIC0gSGlkZGVuIGZpZWxkIHZhbHVlcyBhcmUgcmVzZXQgdG8gIjAiPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMi4wPC9zdHJvbmc+IC0gMjEgTWF5IDIwMTQNCgk8dWw+DQoJPGxpPkZpeGVzIGZvciBDb3JlIDIuMDwvbGk+DQoJPGxpPk1pbmltdW0gcmVxdWlyZWQgQ01TbXMgdmVyc2lvbiBzZXQgdG8gMS4xMTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuNjwvc3Ryb25nPiAtIDE5IE1heSAyMDE0DQoJPHVsPg0KCTxsaT5NaW5vciBzdHlsZSB1cGRhdGUgZm9yIGNvbGxhcHNpYmxlIGZpZWxkc2V0IChGUiAjOTkzOSk8L2xpPg0KCTxsaT5CdWcgIzk5ODk6IGZpeGVkIC0gSGlkZGVuIGZpZWxkIHZhbHVlcyBhcmUgcmVzZXQgdG8gIjAiPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS41PC9zdHJvbmc+IC0gNSBEZWNlbWJlciAyMDEzDQoJPHVsPg0KCTxsaT5Qb3NzaWJpbGl0eSB0byBhZGQgYWRtaW4gcGFnZSB1bmRlciBTaXRlIEFkbWluIHNlY3Rpb24uIEVkaXRvcnMgZG9uJ3QgaGF2ZSBhY2Nlc3MhPC9saT4NCgk8bGk+QWRkZWQgZmllbGR0eXBlICdDb2xvclBpY2tlcicgKHRoYW5rcyB0byBKaXNzZXkpPC9saT4NCgk8bGk+QWRkZWQgRnJlbmNoIHRyYW5zbGF0aW9uICh0aGFua3MgdG8gSmlzc2V5KTwvbGk+DQoJPGxpPkFkZGVkIGNvbGxhcHNpYmxlIGZpZWxkZ3JvdXBzIChGUiAjODE2NiwgIzg1MTcgYW5kICM5NDY1KTwvbGk+DQoJPGxpPkFkZGVkIHRoZSBhYmlsaXR5IHRvIGFzc2lnbiBlYWNoIGZpZWxkIHRvICdhZG1pbicgb3IgJ2VkaXRvcicgKEZSICM4NTE1KTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuNDwvc3Ryb25nPiAtIDkgTWF5IDIwMTMNCgk8dWw+DQoJPGxpPkRyYWcgYW5kIGRyb3AgZmllbGQgb3JkZXJpbmcgKEZSICM4NTE2KTwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZSAnR0JGaWxlUGlja2VyJyAoRlIgIzgyODYgYW5kICM4NjM0KTwvbGk+DQoJPGxpPkluY2x1ZGVkIFdpa2kgaGVscHRleHQgYW5kIGV4YW1wbGVzIGluIHRoZSBtb2R1bGUgaGVscHRleHQ8L2xpPg0KCTxsaT5CdWcgIzg2MzM6IGZpeGVkIC0gRG9lcyBub3QgZXNjYXBlIGhlbHAgdGV4dDwvbGk+DQoJPGxpPkJ1ZyAjOTAxOTogZml4ZWQgLSBTdWJtaXQgbm90IHdvcmtpbmcgZm9yIHRob3NlIHdpdGhvdXQgJ01hbmFnZScgcGVybWlzc2lvbnM8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjM8L3N0cm9uZz4gLSAxNCBBdWd1c3QgMjAxMg0KCTx1bD4NCgk8bGk+UmVtb3ZlZCBDbGVhciBDYWNoZSBkdWUgdG8gRm9yZ2UgcmVndWxhdGlvbnM8L2xpPg0KCTxsaT5CdWcgIzgwMDk6IGZpeGVkIC0gSXNzdWUgd2l0aCB0ZXh0IGFyZWFzIHdpdGggc21hcnR5IHBhcnNpbmcgb248L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjI8L3N0cm9uZz4gLSAyMCBNYXJjaCAyMDEyDQoJPHVsPg0KCTxsaT5NaW5pbXVtIHJlcXVpcmVkIENNU21zIHZlcnNpb24gc2V0IHRvIDEuMTA8L2xpPg0KCTxsaT5BZGQgR2V0QWRtaW5TZWN0aW9uIHNldHRpbmcgKEZSICM3NjE4KTwvbGk+DQoJPGxpPkFkZGVkIG9wdGlvbiB0byBhdXRvbWF0aWNhbGx5IGNsZWFyIGNhY2hlIGFmdGVyIGNoYW5naW5nIGEgc2V0dGluZzwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZSAnQnV0dG9uJzwvbGk+DQoJPGxpPlN1cHBvcnQgVmFsdWV8T3B0aW9uTmFtZSBwYWlycyBhbmQgU21hcnR5IHRhZ3MgZm9yIHB1bGxkb3duIGZpZWxkcyBhbmQgcmFkaW9idXR0b25zPC9saT4NCgk8bGk+QnVnIGZpeGVkOiBFZGl0aW5nIGEgZmllbGQgY2hhbmdlcyB0aGUgZmllbGRuYW1lPC9saT4NCgk8bGk+QnVnIGZpeGVkOiBTZW5kRXZlbnQgb24gY2hhbmdpbmcgYSBjaGVja2JveCBzZXR0aW5nPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS4xPC9zdHJvbmc+IC0gMTkgRmVicnVhcnkgMjAxMg0KCTx1bD4NCgk8bGk+RGVmaW5lIHVubGltaXRlZCBudW1iZXIgb2YgZmllbGRzPC9saT4NCgk8bGk+QWRkZWQgZmllbGR0eXBlcyB0ZXh0YXJlYSwgd3lzaXd5ZywgZGF0ZXRpbWVwaWNrZXIsIHB1bGxkb3duIHNlbGVjdCwgcmFkaW9idXR0b25zPC9saT4NCgk8bGk+QWRkZWQgZXZlbnQgT25TZXR0aW5nQ2hhbmdlPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS4wPC9zdHJvbmc+IC0gMjEgSmFudWFyeSAyMDEyDQoJPHVsPg0KCTxsaT5Jbml0aWFsIG1vZHVsZSByZWxlYXNlPC9saT4NCgk8L3VsPg0KPC9saT4NCjwvdWw+]]></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/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3RhYl9oZWFkZXIgbmFtZT0nZ2VuZXJhbCcgbGFiZWw9J0dlbmVyYWwnfQ0Ke3RhYl9oZWFkZXIgbmFtZT0nc3RhcnQnIGxhYmVsPSdHZXR0aW5nIHN0YXJ0ZWQnfQ0Ke3RhYl9oZWFkZXIgbmFtZT0ncGVybWlzc2lvbnMnIGxhYmVsPSdQZXJtaXNzaW9ucyd9DQp7dGFiX2hlYWRlciBuYW1lPSdleGFtcGxlcycgbGFiZWw9J0V4YW1wbGVzJ30NCnt0YWJfaGVhZGVyIG5hbWU9J3Ryb3VibGVzaG9vdGluZycgbGFiZWw9J1Ryb3VibGVzaG9vdGluZyd9DQp7KnRhYl9oZWFkZXIgbmFtZT0nY29weXJpZ2h0JyBsYWJlbD0nQ29weXJpZ2h0IGFuZCBMaWNlbnNlJyp9DQoNCg0Ke3RhYl9zdGFydCBuYW1lPSdnZW5lcmFsJ30NCgk8cD5UaGlzIG1vZHVsZSBleHRlbmRzIHRoZSBHbG9iYWwgU2V0dGluZ3Mgd2l0aCBzb21lIGN1c3RvbWl6ZWQgcGFyYW1ldGVycy48YnIgLz4NCgkJWW91IGNhbiBkZWZpbmUgYW4gdW5saW1pdGVkIG51bWJlciBvZiBmaWVsZHMgd2hpY2ggY2FuIGJlIHVzZWQgYXMgc21hcnR5LXZhcmlhYmxlIGluIHRlbXBsYXRlcyBvciBwYWdlcy48L3A+DQoJPGJyIC8+DQoJPHA+QXZhaWxhYmxlIGFyZTo8L3A+DQoJPHVsPg0KCQk8bGk+QnV0dG9uPC9saT4NCgkJPGxpPkNoZWNrYm94PC9saT4NCgkJPGxpPkNvbG9ycGlja2VyPC9saT4NCgkJPGxpPkRhdGVwaWNrZXI8L2xpPg0KCQk8bGk+RGF0ZSBhbmQgdGltZXBpY2tlcjwvbGk+DQoJCTxsaT5GaWxlUGlja2VyIDxpPihDb3JlIEZpbGVQaWNrZXIgbW9kdWxlIG5lZWRzIHRvIGJlIGluc3RhbGxlZCk8L2k+PC9saT4NCgkJPGxpPkdCRmlsZVBpY2tlciA8Yj5ERVBSRUNBVEVEPC9iPjwvbGk+DQoJCTxsaT5KTUZpbGVQaWNrZXIgPGk+KG1vZHVsZSBKTUZpbGVQaWNrZXIgbmVlZHMgdG8gYmUgaW5zdGFsbGVkKTwvaT48L2xpPg0KCQk8bGk+UGFnZSBzZWxlY3RvcjwvbGk+DQoJCTxsaT5QdWxsZG93bjwvbGk+DQoJCTxsaT5SYWRpb2J1dHRvbmdyb3VwPC9saT4NCgkJPGxpPlRleHRhcmVhPC9saT4NCgkJPGxpPlRleHRhcmVhIHdpdGggV1lTSVdZRzwvbGk+DQoJCTxsaT5UZXh0ZmllbGQ8L2xpPg0KCQk8bGk+VGltZXBpY2tlcjwvbGk+DQoJPC91bD4NCgk8YnIgLz4NCgk8cD5BZGRpdGlvbmFsIHRoZXJlIGlzIGEgc3BlY2lhbCBmaWVsZGRlZmluaXRpb24gIkZpZWxkZ3JvdXAgc3RhcnQiLiBXaXRoIHRoaXMgb3B0aW9uIHlvdSBjYW4gY3JlYXRlIGEgY29sbGFwc2libGUgZ3JvdXAgb2YgZmllbGRzLjxiciAvPg0KCQlBZnRlciBjcmVhdGluZyB0aGUgIkZpZWxkZ3JvdXAgc3RhcnQiLCBhbHNvIGEgIkZpZWxkZ3JvdXAgZW5kIiB3aXRoIHRoZSBzYW1lIG5hbWUgd2lsbCBiZSBhZGRlZCBhdXRvbWF0aWNhbGx5LiBEcmFnICZhbXA7IGRyb3AgZmllbGRzIGJldHdlZW4gc3RhcnQgYW5kIGVuZCB0byBwdXQgdGhlbSBpbiB0aGUgZ3JvdXAuPC9wPg0KCTxiciAvPg0KDQoNCnt0YWJfc3RhcnQgbmFtZT0nc3RhcnQnfQ0KCTxwPkdvIHRvIHRoZSBDdXN0b20gR2xvYmFsIFNldHRpbmdzIG1vZHVsZSBhZG1pbiAoYnkgZGVmYXVsdCB1bmRlciBtZW51ICdFeHRlbnNpb25zJykgYW5kIGRlZmluZSBmaWVsZHMgaW4gdGhlIHRhYiAnRmllbGQgRGVmaW5pdGlvbnMnLjwvcD4NCgk8cD5HaXZlIHlvdXIgZmllbGQgYSBuYW1lLCBjaG9vc2UgYSB0eXBlIGFuZCBmaWxsIGluIHRoZSByZXF1ZXN0ZWQgcGFyYW1ldGVycy4gVGhlIGhlbHAgdGV4dCBjYW4gZ2l2ZSB5b3VyIHVzZXJzIHNvbWUgY29udGV4dCwgaXQgaXMgYWxsb3dlZCB0byB1c2UgSFRNTCBjb2RlLjwvcD4NCgk8YnIgLz4NCgk8cD5JbiB0aGUgdGVtcGxhdGVzIG9yIHBhZ2VzIG9mIHlvdXIgd2Vic2l0ZSB5b3Ugd2lsbCBub3cgYXV0b21hdGljYWxseSBoYXZlIHRob3NlIHNtYXJ0eSB2YXJpYWJsZXMgYXZhaWxhYmxlLjwvcD4NCgk8cD5UaGUgZXhhY3Qgd2F5IHRvIGNhbGwgZWFjaCB2YXJpYWJsZSBpcyBzaG93biBpbiB0aGUgJ0ZpZWxkIERlZmluaXRpb25zJyB0YWIuPGJyIC8+WW91IGNhbiBhbHNvIGNoZWNrIHdoaWNoIHZhcmlhYmxlcyBhbmQgdmFsdWVzIGFyZSBhdmFpbGFibGUgYnkgcGxhY2luZyA8Yj57bGRlbGltfUN1c3RvbUdTIHNob3d2YXJzPTF9PC9iPiBpbiB0aGUgY29udGVudCBmaWVsZCBvZiBhIHBhZ2UuPC9wPg0KCTxiciAvPg0KCTxwPjxiPk5vdGU6PC9iPiBpbiBwcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGlzIG1vZHVsZSwgeW91IG5lZWRlZCB0byBwdXQgdGhlIHRhZyB7bGRlbGltfUN1c3RvbUdTfSBpbiB5b3VyIHRlbXBsYXRlKHMpLiBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4gV2hlbiB5b3UgdXBncmFkZSBmcm9tIGEgdmVyc2lvbiBwcmlvciB0byAyLjIsIHlvdSBzaG91bGQgZGVsZXRlIHRoZSB7bGRlbGltfUN1c3RvbUdTfSB0YWcgZnJvbSB5b3VyIHRlbXBsYXRlcywgYWx0aG91Z2ggaXQgd29uJ3QgZG8gYW55IGhhcm0gaWYgeW91IGxlYXZlIGl0IHRoZXJlLjwvcD4NCgk8YnIgLz4NCgk8aDQ+T3JnYW5pemluZyBmaWVsZHM8L2g0Pg0KCTxwPldoZW4geW91IGhhdmUgbWFueSBmaWVsZGRlZmluaXRpb25zLCB5b3UgY2FuIG9yZ2FuaXplIHRoZW0gYnkgY3JlYXRpbmcgY3VzdG9tIHRhYnMuPC9wPg0KCTxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdG8gb25lIG9yIG1vcmUgdGFicywgd2hpbGUgZWRpdGluZyB0aGUgZmllbGRkZWZpbml0aW9uLiBBIG1vcmUgZWFzeSB3YXkgaXMgdG8gc2VsZWN0IGEgdGFiIGluIHRoZSBkcm9wZG93biBhdCB0aGUgdG9wIG9mIHRoZSBmaWVsZGRlZmluaXRpb25zbGlzdCBhbmQgdGhlbiB0b2dnbGUgdGhlIFYtbWFya3MuIENoYW5nZXMgYXJlIGltbWVkaWF0ZWx5IHNhdmVkLjxiciAvPlRoZSB0YWItZHJvcGRvd24gd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWVsZGRlZmluaXRpb25zbGlzdCB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIGN1c3RvbSB0YWJzIHlvdSBoYXZlIHBlcm1pc3Npb25zIG9uLjwvcD4NCgk8YnIgLz4NCgk8cD5UaGUgc29ydG9yZGVyIG9mIGZpZWxkZGVmaW5pdGlvbnMgYW5kIGN1c3RvbSB0YWJzIGNhbiBiZSBjaGFuZ2VkIGJ5IGRyYWdnaW5nICZhbXA7IGRyb3BwaW5nIHRoZSByb3dzIGluIHRoZWlyIGxpc3QuIFRoZSBuZXcgc29ydG9yZGVyIHdpbGwgYmUgc2F2ZWQgaW1tZWRpYXRlbHkgb24gZHJvcC48L3A+DQoJPGJyIC8+DQoNCg0Ke3RhYl9zdGFydCBuYW1lPSdwZXJtaXNzaW9ucyd9DQoJPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhyZWUgZGlmZmVyZW50IGxldmVscyBvZiBwZXJtaXNzaW9uczogb24gYSBtb2R1bGUgbGV2ZWwsIG9uIGEgdGFiIGxldmVsIGFuZCBvbiBhIGZpZWxkIGxldmVsLjwvcD4NCgk8aDQ+TW9kdWxlIGxldmVsPC9oND4NCgk8cD5Gb3Igc2V0dGluZyBtb2R1bGUgcGVybWlzc2lvbnMsIGdvIHRvIG1lbnUgPGk+VXNlcnMgJiBHcm91cHMgwrsgR3JvdXAgUGVybWlzc2lvbnM8L2k+OjwvcD4NCgk8dWw+DQoJCTxsaT48Yj5DdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlPC9iPjxiciAvPg0KCQkJQSBwZXJtaXNzaW9uIGZvciBlZGl0b3JzLiBJdCB3aWxsIG9ubHkgc2hvdyB0aGUgKGN1c3RvbSkgdGFicyBmb3IgY2hhbmdpbmcgZmllbGR2YWx1ZXMgaW4gdGhlIG1vZHVsZSBhZG1pbiBwYWdlLjwvbGk+DQoJCTxsaT48Yj5DdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlPC9iPjxiciAvPg0KCQkJQSBwZXJtaXNzaW9uIGZvciBhZG1pbmlzdHJhdG9ycy4gSXQgd2lsbCBzaG93IGV4dHJhIHRhYnMgZm9yIGNyZWF0aW5nL2VkaXRpbmcgZmllbGRkZWZpbml0aW9ucywgdGFicyBhbmQgb3B0aW9ucy48L2xpPg0KCTwvdWw+DQoJPGg0PlRhYiBsZXZlbDwvaDQ+DQoJPHA+V2hlbiBjcmVhdGluZyBvciBlZGl0aW5nIGEgY3VzdG9tIHRhYiwgc2VsZWN0IG9uZSBvciBtb3JlIGdyb3VwcyBpbiB0aGUgPGI+R3JvdXAgUGVybWlzc2lvbnM8L2I+IGRyb3Bkb3duIGxpc3QgKHdpdGggY3RybCkuIE9ubHkgdXNlcnMgd2hvIGJlbG9uZyB0byB0aGUgc2VsZWN0ZWQgZ3JvdXBzIHdpbGwgYmUgYWJsZSB0byBzZWUgdGhlIHRhYiBpbiB0aGUgbW9kdWxlIGFkbWluLiBJZiBubyBncm91cCBpcyBzZWxlY3RlZCwgdGhlIHRhYiB3aWxsIGJlIHZpc2libGUgZm9yIGFsbCBncm91cHMuIDxiciAvPlRhYnMgd2lsbCBuZXZlciBiZSBoaWRkZW4gZm9yIGFkbWluIHVzZXJzLjwvcD4NCgk8aDQ+RmllbGQgbGV2ZWw8L2g0Pg0KCTxwPldoZW4gY3JlYXRpbmcgb3IgZWRpdGluZyBhIGZpZWxkZGVmaW5pdGlvbiwgc2VsZWN0IG9uZSBvciBtb3JlIGdyb3VwcyBpbiB0aGUgPGI+R3JvdXAgUGVybWlzc2lvbnM8L2I+IGRyb3Bkb3duIGxpc3QgKHdpdGggY3RybCkuIE9ubHkgdXNlcnMgd2hvIGJlbG9uZyB0byB0aGUgc2VsZWN0ZWQgZ3JvdXBzIHdpbGwgYmUgYWJsZSB0byBzZWUgYW5kIGNoYW5nZSB0aGUgZmllbGR2YWx1ZSBhc3NpZ25lZCB0YWIocykuIElmIG5vIGdyb3VwIGlzIHNlbGVjdGVkLCB0aGUgZmllbGQgd2lsbCBiZSB2aXNpYmxlIGZvciBhbGwgZ3JvdXBzLjwvcD4NCgk8cD5Ob3RlIHRoYXQgYSB1c2VyIHdpbGwgbm90IGJlIGFibGUgdG8gc2VlIGEgZmllbGQgd2hlbiB0aGF0IGZpZWxkIHdhcyBhc3NpZ25lZCBvbmx5IHRvIHRhYihzKSBmb3Igd2hpY2ggdGhlIHVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9ucy48L3A+DQoJPHA+RmllbGRzIHdpbGwgbmV2ZXIgYmUgaGlkZGVuIGZvciBhZG1pbiB1c2Vycy48L3A+DQoJPGJyIC8+DQoNCg0Ke3RhYl9zdGFydCBuYW1lPSdleGFtcGxlcyd9DQoJPGgzPkNIRUNLQk9YPC9oMz4NCgk8aDQ+Q2hhbmdlIGZyb250ZW5kIHRoZW1lPC9oND4NCgk8cD5EZWZpbmUgYSBjaGVja2JveCAnQ2hyaXN0bWFzIG5vdycgd2hpY2ggd2lsbCBhY3RpdmF0ZSBhIHNwZWNpYWwgdGhlbWUgb24gdGhlIGZyb250ZW5kIHdoZW4gY2hlY2tlZDwvcD4NCgk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJPGNvZGU+DQoJCXtsZGVsaW19aWYgJEN1c3RvbUdTLkNocmlzdG1hc19ub3cgPT0gJzEnfTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7bGRlbGltfSogU2hvdyBDaHJpc3RtYXMgZnJvbnRlbmQgdGhlbWUgKn08YnIgLz4NCgkJe2xkZWxpbX1lbHNlfTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7bGRlbGltfSogU2hvdyBkZWZhdWx0IGZyb250ZW5kIHRoZW1lICp9PGJyIC8+DQoJCXtsZGVsaW19L2lmfQ0KCTwvY29kZT4NCgk8L3A+DQoJPGJyIC8+DQoJCQ0KCTxoND5NYWdpYyB3aXRoIGEgY2hlY2tib3g8L2g0Pg0KCTxwPkRlZmluZSBhIGNoZWNrYm94ICdNeUNoZWNrYm94JyB3aGljaCB3aWxsIGRvIHNvbWUgbWFnaWMgc3R1ZmYgd2hlbiB1bmNoZWNrZWQ8L3A+DQoJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KCTxjb2RlPg0KCQl7bGRlbGltfWlmICRDdXN0b21HUy5NeUNoZWNrYm94ICE9ICcxJ308YnIgLz4NCgkJJm5ic3A7Jm5ic3A7Jm5ic3A7e2xkZWxpbX0qIERvIHNvbWUgbWFnaWMgc3R1ZmYgKn08YnIgLz4NCgkJe2xkZWxpbX0vaWZ9DQoJPC9jb2RlPg0KCTwvcD4NCgk8YnIgLz4NCgkJDQoJPGgzPkRBVEUgYW5kIFRJTUVQSUNLRVI8L2gzPg0KCTxoND5EaXNwbGF5IHBhZ2UgY29udGVudCBvbmx5IGluIGEgc3BlY2lmaWMgdGltZWZyYW1lPC9oND4NCgk8cD5EZWZpbmUgdHdvIHRpbWVwaWNrZXIgZmllbGRzICdzdGFydHRpbWUnIGFuZCAnZW5kdGltZScuIFJlcGxhY2UgdGhlIHtsZGVsaW19Y29udGVudH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZSB3aXRoIHRoaXMgY29kZSBhbmQgdGhlIG5vcm1hbCBwYWdlIGNvbnRlbnQgaXMgb25seSB2aXNpYmxlIHdoZW4gdGhlIGN1cnJlbnQgdGltZSBpcyBiZXR3ZWVuIHRoZSBzdGFydHRpbWUgYW5kIGVuZHRpbWUuPC9wPg0KCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4NCgk8Y29kZT4NCgkJe2xkZWxpbX1pZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJUg6JU0nID49ICRDdXN0b21HUy5zdGFydHRpbWUgJiYgJHNtYXJ0eS5ub3d8ZGF0ZV9mb3JtYXQ6JyVIOiVNJyA8PSAkQ3VzdG9tR1MuZW5kdGltZX08YnIgLz4NCgkJJm5ic3A7Jm5ic3A7Jm5ic3A7e2xkZWxpbX1jb250ZW50fTxiciAvPg0KCQl7bGRlbGltfWVsc2V9PGJyIC8+DQoJCSZuYnNwOyZuYnNwOyZuYnNwO3tsZGVsaW19Y29udGVudCBibG9jaz0iU2l0ZUNsb3NlZENvbnRlbnQifTxiciAvPg0KCQl7bGRlbGltfS9pZn08YnIgLz4NCgk8L2NvZGU+DQoJPC9wPg0KCTxiciAvPg0KCQkNCgk8aDM+UFVMTERPV048L2gzPg0KCTxoND5QdWxsZG93biBmb3IgRmVhdHVyZWQgTmV3c2FydGljbGU8L2g0Pg0KCTxwPkRlZmluZSBhIHB1bGxkb3duIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIHRpdGxlcyBvZiBhcnRpY2xlcyBmcm9tIHRoZSBOZXdzIG1vZHVsZSwgc28gdGhlIHVzZXIgY2FuIGNob29zZSBhIGZlYXR1cmVkIGFydGljbGUgd2hpY2ggY2FuIGJlIGRpc3BsYXllZCBvbiBhIHNwZWNpYWwgc2VjdGlvbiBvbiB0aGUgc2l0ZS48L3A+DQoNCgk8cD5GaXJzdCBjcmVhdGUgYSBuZXcgc3VtbWFyeXRlbXBsYXRlIGluIHRoZSBOZXdzIG1vZHVsZSwgbmFtZWQgIkN1c3RvbUdTX3B1bGxkb3duIiB3aXRoIHRoZSBmb2xsb3dpbmcgY29udGVudDo8L3A+DQoNCgk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJCTxjb2RlPntsZGVsaW19Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fTxiciAvPg0KCQkmbmJzcDsmbmJzcDsmbmJzcDt7bGRlbGltfSRlbnRyeS0mZ3Q7aWR9fHtsZGVsaW19JGVudHJ5LSZndDt0aXRsZX08YnIgLz4NCgkJe2xkZWxpbX0vZm9yZWFjaH08L2NvZGU+DQoJPC9wPg0KCTxiciAvPg0KCTxwPlRoZW4gZGVmaW5lIGEgbmV3IGZpZWxkIGluIHRoZSBDdXN0b20gR2xvYmFsIFNldHRpbmdzIG1vZHVsZTwvcD4NCg0KCTxwPjxiPk5hbWU6PC9iPiBGZWF0dXJlZCBOZXdzPGJyIC8+DQoJPGI+VHlwZTo8L2I+IFB1bGxkb3duPGJyIC8+DQoJPGI+UHJvcGVydGllczo8L2I+IHtsZGVsaW19Y21zX21vZHVsZSBtb2R1bGU9J05ld3MnIHN1bW1hcnl0ZW1wbGF0ZT0nQ3VzdG9tR1NfcHVsbGRvd24nfTxiciAvPg0KCU5vdGUgdGhhdCBzaG9ydCBtb2R1bGUgdGFncyB3b24ndCB3b3JrIGluIHRoZSBiYWNrLWVuZCwgc28geW91IGhhdmUgdG8gdXNlIHRoZSBjbXNfbW9kdWxlIHRhZy48L3A+DQoJPGJyIC8+DQoJPHA+RmluYWxseSBwdXQgdGhpcyB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlIHRvIGRpc3BsYXkgdGhlIGZlYXR1cmVkIG5ld3NhcnRpY2xlOjwvcD4NCgk8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQoJPGNvZGU+e2xkZWxpbX1uZXdzIGFjdGlvbj0nZGV0YWlsJyBhcnRpY2xlaWQ9JEN1c3RvbUdTLkZlYXR1cmVkX05ld3N9PC9jb2RlPg0KCTwvcD4NCgk8YnIgLz4NCgkJDQoJPGgzPlJBRElPQlVUVE9OR1JPVVA8L2gzPg0KCTxoND5DaGFuZ2UgZnJvbnRlbmQgY29sb3I8L2g0Pg0KDQoJPHA+Q3JlYXRlIGEgUmFkaW9idXR0b24gZ3JvdXAgbmFtZWQgInRleHRjb2xvciI8L3A+DQoJPHA+VGhlIHByb3BlcnRpZXMgdmFsdWUgYXJlOjxwPg0KCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4NCgkJI2ZmMDAwMHxyZWQ8YnIgLz4NCgkJIzAwZnxibHVlPGJyIC8+DQoJCSMxMDEwMTB8YWxtb3N0IGJsYWNrPC9wPg0KCTxiciAvPg0KCTxwPkFsc28gY2xpY2sgdGhlIGNoZWNrYm94ICdDbGVhciBzdHlsZXNoZWV0Y2FjaGUnLiBUaGlzIHdpbGwgYXV0b21hdGljYWxseSByZW5ldyB0aGUgc3R5bGVzaGVldHMuPC9wPg0KCTxiciAvPg0KCTxwPlRvIGNoYW5nZSBmb3IgZXhhbXBsZSB0aGUgY29sb3Igb2YgdGhlIHAtdGV4dCBhZGQ6PC9wPg0KCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4NCgk8Y29kZT5jb2xvcjogW1skQ3VzdG9tR1MudGV4dGNvbG9yXV07PC9jb2RlPg0KCTwvcD4NCgk8YnIgLz4NCgk8cD5PciBkaXJlY3RseSBpbmNsdWRlZCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGU6PHA+DQoJPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KCTxjb2RlPiZsdDtwIHN0eWxlPSJjb2xvcjoge2xkZWxpbX0kQ3VzdG9tR1MudGV4dGNvbG9yfTsiJmd0O0xvcmVtIElwc3VtJmx0Oy9wJmd0OzwvY29kZT4NCgk8L3A+DQoJPGJyIC8+DQoNCgk8aDM+VEVYVEZJRUxEPC9oMz4NCgk8aDQ+U2hvdyBjdXJyZW50IHRyYWluZXI8L2g0Pg0KCTxwPkRlZmluZSBhIHRleHRmaWVsZCBvciBwdWxsZG93biBmaWVsZCAnVHJhaW5lcicgd2hpY2ggd2lsbCBjb250YWluIHRoZSBjdXJyZW50IHRyYWluZXJzIG5hbWUuPC9wPg0KCTxwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIj4NCgk8Y29kZT4NCgkJJmx0O3AmZ3Q7VGhpcyB3ZWVrcyB0cmFpbmVycyBuYW1lIGlzOiB7bGRlbGltfSRDdXN0b21HUy5UcmFpbmVyfSZsdDsvcCZndDsNCgk8L2NvZGU+DQoJPC9wPg0KCTxiciAvPg0KDQoNCnt0YWJfc3RhcnQgbmFtZT0ndHJvdWJsZXNob290aW5nJ30NCgk8aDQ+Q2hlY2sgdGVtcGxhdGUgdmFyaWFibGVzPC9oND4NCgk8cD5Zb3UgY2FuIGNoZWNrIHdoaWNoIHZhcmlhYmxlcyBhbmQgdmFsdWVzIGFyZSBhdmFpbGFibGUgYnkgcGxhY2luZyA8Yj57bGRlbGltfUN1c3RvbUdTIHNob3d2YXJzPTF9PC9iPiBpbiB0aGUgY29udGVudCBmaWVsZCBvZiBhIHBhZ2UuPC9wPg0KCTxiciAvPg0KCQkNCgk8aDQ+U21hcnR5IGVycm9yPC9oND4NCgk8cD48Yj5FcnJvcjo8L2I+IFNtYXJ0eSBlcnJvcjogW2luIHRlbXBvcmFyeSB0ZW1wbGF0ZSBsaW5lIDRdOiBbcGx1Z2luXSB1bmtub3duIHRhZy4uLjwvcD4NCgk8cD48Yj5Tb2x1dGlvbjo8L2I+IFlvdSBwcm9iYWJseSBoYXZlIGVudGVyZWQgY3VybHkgYnJhY2tldCAmIzEyMzsgJiMxMjU7IHNpZ25zIGluIHRoZSBwcm9wZXJ0aWVzIGZpZWxkIG9mIGEgcHVsbGRvd24gb3IgcmFkaW9idXR0b24gZmllbGRkZWZpbml0aW9uLiBUaGVzZSBhcmUgaW50ZXJwcmV0ZWQgYnkgU21hcnR5LjwvcD4NCgk8cD5EZWxldGUgdGhlbSwgdXNlIDxjb2RlPiYjMTIzO2Ntc19tb2R1bGUmIzEyNTs8L2NvZGU+IHRhZyBpbiBzdGVhZCBvZiB0aGUgc2hvcnQgbW9kdWxlIGNhbGwsIG9yIHVzZSA8Y29kZT4mIzEyMztsaXRlcmFsJiMxMjU7PC9jb2RlPiB0YWdzLjwvcD4NCgk8YnIgLz4NCgkJDQoJPGg0PkNhbid0IGNob29zZSBHQkZpbGVQaWNrZXIgYW55bW9yZSBhZnRlciB1cGdyYWRpbmcgdG8gQ01TTVMgMi54PC9oND4NCgk8cD48Yj5FcnJvcjo8L2I+IEdCRmlsZVBpY2tlciAoTm90IGluc3RhbGxlZCk8L3A+DQoJPHA+PGI+U29sdXRpb246PC9iPiBJbnN0YWxsIG1vZHVsZSBKTUZpbGVQaWNrZXIgYW5kIHRoZW4gY2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBmaWVsZGRlZmluaXRpb24gYWNjb3JkaW5nbHkuIFRoZSBlYXJsaWVyIHNlbGVjdGVkIGltYWdlIHdpbGwgYmUgcHJlc2VydmVkLjwvcD4NCgk8YnIgLz4NCgkJDQoJPGg0PnRtcC9jYWNoZS9kZWJ1Zy5sb2cgZ2V0cyBmbG9vZGVkIHdpdGggQ3VzdG9tR1MgZXJyb3JzPC9oND4NCgk8cD48Yj5FcnJvcjo8L2I+IFJlZHVuZGFudCB7bGRlbGltfUN1c3RvbUdTfSB0YWcgZm91bmQuPC9wPg0KCTxwPjxiPlNvbHV0aW9uOjwvYj4gSW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhpcyBtb2R1bGUsIHlvdSBuZWVkZWQgdG8gcHV0IHRoZSB0YWcge2xkZWxpbX1DdXN0b21HU30gaW4geW91ciB0ZW1wbGF0ZShzKS4gVGhpcyBpcyBub3QgbmVlZGVkIGFueW1vcmUuIFdoZW4geW91IGhhdmUgDQoJdXBncmFkZWQgZnJvbSBhIHZlcnNpb24gcHJpb3IgdG8gMi4yLCB5b3Ugc2hvdWxkIGRlbGV0ZSB0aGUge2xkZWxpbX1DdXN0b21HU30gdGFnIGZyb20geW91ciB0ZW1wbGF0ZXMuPC9wPg0KCTxiciAvPg0KCQkNCgk8aDQ+T3RoZXIgRXJyb3JzPC9oND4NCgk8cD48Yj5FcnJvcjo8L2I+IE15IHByb2JsZW0gd2FzIG5vdCBkZXNjcmliZWQgaGVyZS48L3A+DQoJPHA+PGI+U29sdXRpb246PC9iPiBTZXQgRGVidWcgdG8gJ3RydWUnIGluIGNvbmZpZy5waHAgYW5kIHNlZSBpZiBhbnkgZXJyb3IgbWVzc2FnZXMgYXBwZWFyLiBMb29rIGFsc28gZm9yIGVycm9yIG1lc3NhZ2VzIGluIHRoZSBodG1sIHNvdXJjZWNvZGUuIE1heWJlIHRoZSBlcnJvciBtZXNzYWdlIHRlbGxzIHlvdSBlbm91Z2ggdG8gc29sdmUgdGhlIGlzc3VlIHlvdXJzZWxmLiBTb21lb25lIGVsc2UgbWF5IGhhdmUgZW5jb3VudGVyZWQgdGhlIHNhbWUgcHJvYmxlbSBiZWZvcmUgeW91LCBzbyB5b3UgY291bGQgYWxzbyBzZWFyY2ggdGhlIENNU01TIGZvcnVtIGZvciBwb3NzaWJsZSBzb2x1dGlvbnMuIElmIHlvdSBoYXZlbid0IGZvdW5kIGFueSByZWxhdGVkIHRvcGljcywgcGxlYXNlIGZlZWwgZnJlZSB0byBvcGVuIGEgbmV3IGZvcnVtdG9waWMuPC9wPg0KCTxiciAvPg0KDQp7dGFiX2VuZH0NCg0KDQoJPGJyIC8+DQoJPGJyIC8+DQoJPHA+SXQgaXMgd2l0aCBncmVhdCBzYWRuZXNzIHdlIGFubm91bmNlIHRoYXQgbG9uZyB0aW1lIERldiBUZWFtIG1lbWJlciBhbmQgZ3JlYXQgZnJpZW5kIHRvIENNUyBNYWRlIFNpbXBsZSwgPGEgaHJlZj0iaHR0cHM6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcvMjAyMi8wNS9Sb2xmLVRqYXNzZW5zIiB0YXJnZXQ9Il9ibGFuayI+Um9sZiBUamFzc2VuczwvYT4gcGFzc2VkIGF3YXkgdW5leHBlY3RlZGx5IG9uIHRoZSAzMHRoIG9mIE1heSAyMDIyLiBUaGlzIG1vZHVsZSBpcyBhIGpvaW50IGVmZm9ydCBvZiBSb2xmIGFuZCBKb3MuIFJvbGYgd2lsbCBiZSBncmVhdGx5IG1pc3NlZC48L3A+DQoJPGJyIC8+DQoJPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQoJPHA+Q29weXJpZ2h0IMKpIDIwMTIgYW5kIGJleW9uZCwgUm9sZiBUamFzc2VucywgSm9zICZsdDs8YSBocmVmPSJtYWlsdG86am9zdmRAbGl2ZS5ubCI+am9zdmRAbGl2ZS5ubDwvYT4mZ3Q7LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQoJPGJyIC8+DQoJPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCIgdGFyZ2V0PSJfYmxhbmsiPkdOVSBQdWJsaWMgTGljZW5zZSB2MzwvYT4uPGJyIC8+DQoJPGI+SG93ZXZlcjwvYj4sIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiBZb3UgbWF5IG9ubHkgdXNlIHRoaXMgc29mdHdhcmUgd2hlbiB0aGVyZSBpcyBhIGNsZWFyIGFuZCBvYnZpb3VzIGluZGljYXRpb24gaW4gdGhlIGFkbWluIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBTaW1wbGUhPC9wPg0KCTxiciAvPg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
</module>
