<?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>JMFilePicker</name>
	<version>1.0.1</version>
    <mincmsversion>1.12</mincmsversion>
	<help><![CDATA[PGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8ZGl2IGlkPSJwYWdlX3RhYnMiPgogIDxkaXYgaWQ9ImdlbmVyYWwiPgogICAgICBXaGF0IGlzIGl0CiAgPC9kaXY+ICAgIAogIDxkaXYgaWQ9ImRlc2lnbmVycyI+CiAgICBGb3IgRGVzaWduZXJzCiAgPC9kaXY+CiAgPGRpdiBpZD0iZGV2ZWxvcGVycyI+CiAgICBGb3IgRGV2ZWxvcGVycwogIDwvZGl2PgogIAogIDxkaXYgaWQ9ImFib3V0Ij4KICAgICBBYm91dAogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KPGRpdiBpZD0icGFnZV9jb250ZW50Ij4KICA8ZGl2IGlkPSJnZW5lcmFsX2MiPgogICAgPGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIGZpbGVwaWNrZXIgdG8gbW9kdWxlIGRldmVsb3BlcnMgYXMgd2VsbCBhcyB3ZWJkZXNpZ25lcnMuPC9wPgogICAgPGgzPkhvdyBpcyBpdCB1c2VkPzwvaDM+CiAgICA8cD5BZnRlciBpbnN0YWxsYXRpb24gdGhlIG1vZHVsZSBzZXR0aW5ncyBjYW4gYmUgZm91bmQgaW4gIkV4dGVuc2lvbnMgPiBKTUZpbGVQaWNrZXIiLjwvcD4KICA8L2Rpdj4gICAgCiAgPGRpdiBpZD0iZGVzaWduZXJzX2MiPgogICA8cD48c3Ryb25nPkZvciBkZXNpZ25lcnM6PC9zdHJvbmc+PC9wPgogICAgPHA+WW91IGNhbiB1c2UgdGhpcyBtb2R1bGUgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUge2NvbnRlbnRfbW9kdWxlfSB0YWcgb2YgdGhlIENNU21zIGNvcmUuPGJyIC8+CiAgICBKdXN0IHBsYWNlIHRoaXMgaW4geW91ciB0ZW1wbGF0ZSB0byBnZXQgYW4gYWRkaXRpb25hbCBjb250ZW50IGJsb2NrIHRoYXQgc2hvd3MgYSBmaWxlcGlja2VyIGluIGJhY2tlbmQgd2hlbiBlZGl0aW5nIHRoZSBwYWdlOjwvcD4KICAgIDxwcmU+PGNvZGU+e2NvbnRlbnRfbW9kdWxlIGJsb2NrPSJmaWxlcGlja2VyX2Jsb2NrIiBtb2R1bGU9IkpNRmlsZVBpY2tlciJ9PC9jb2RlPjwvcHJlPgogICAgPGgzPldoYXQgcGFyYW1ldGVycyBhcmUgYXZhaWxhYmxlPzwvaDM+CiAgICA8cD5BbGwgcGFyYW1zIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHVzZWQgd2l0aCB7Y29udGVudF9tb2R1bGV9IHRhZyBhcyB3ZWxsIHdpdGggdGhlIGFwaSBmdW5jdGlvbi4gPGJyIC8+CiAgICBOb3RpY2UgdGhhdCBzb21lIHBhcmFtcyB3aWxsIGhhdmUgbm8gZWZmZWN0IGlmIHlvdSBhcmUgdGhlIGFkbWluLiBUaGF0IG1lYW5zIHRoZSBhZG1pbiBoYXMgYWx3YXlzIGFueSBwZXJtaXNzaW9ucy48YnIgLz5FLmc6IHlvdSBjYW5ub3QgZGVueSBmaWxlbWFuYWdlbWVudCBvciBpbWFnZSByZXNpemluZyBvbiB1cGxvYWQgdG8gdGhlIGFkbWluIGJ1dCBvbmx5IHRvIG90aGVyIHVzZXJzLjwvcD4KICAgIDx1bD4KICAgICAgPGxpPgogICAgICAgIDx0dD5tZWRpYV90eXBlPC90dD4gPGVtPihmaWxlLGltYWdlKTwvZW0+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPkFsbG93cyB5b3UgdG8gc3BlY2lmeSB3aGF0IG1lZGlhIHR5cGUgaXMgZGlzcGxheWVkLiAoc3VwcG9ydHMgb25seSBpbWFnZXMgYW5kIGFsbCBmaWxlcyBhdCB0aGUgbW9tZW50KTwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8YnIgLz4KICAgICAgPC9saT4KICAgICAgPGxpPgogICAgICAgIDx0dD5tb2RlPC90dD4gKGJyb3dzZXIvZHJvcGRvd24pCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPgogICAgICAgICAgICBCeSBkZWZhdWx0IGEgZHJvcGRvd24gd2lsbCBiZSB1c2VkLiBTZXQgdG8gImJyb3dzZXIiIGlmIHVzZXIgbWF5IGJyb3dzZSB0aGUgZmlsZXMuPGJyIC8+CiAgICAgICAgICAgIDxjb2RlPntjb250ZW50X21vZHVsZSBtb2R1bGU9IkpNRmlsZVBpY2tlciIgYmxvY2s9InNvbWVfaW1hZ2UiIG1vZGU9ImJyb3dzZXIifTwvY29kZT4KICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8YnIgLz4KICAgICAgPC9saT4KICAgICAgPGxpPgogICAgICAgIDx0dD5kaXI8L3R0PiAoc3RyaW5nKQogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgVGhlIG5hbWUgb2YgYSBkaXJlY3RvcnkgKHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSBmcm9tIHdoaWNoIHRvIHNlbGVjdCBpbWFnZXMvZmlsZXMuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQuPGJyIC8+CiAgICAgICAgICAgIEUuZy46IFRoaXMgd2lsbCBkaXNwbGF5IHRoZSBkaXIgIlt5b3VyIHVwbG9hZHMgZGlyXS9pbWFnZXMvIi48YnIgLz4KICAgICAgICAgICAgPGNvZGU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT0iSk1GaWxlUGlja2VyIiBibG9jaz0ic29tZV9pbWFnZSIgZGlyPSJpbWFnZXMifTwvY29kZT4KICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8YnIgLz4KICAgICAgPC9saT4KICAgICAgPGxpPgogICAgICAgIDx0dD5zaG93X3N1YmRpcnM8L3R0PiAodHJ1ZS9mYWxzZSkKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+CiAgICAgICAgICAgIFNldCB0byB0cnVlIGlmIHVzZXIgbWF5IGJyb3dzZSBzdWJkaXJlY3Rvcmllcy4gKG1vZGU9ImJyb3dzZXIiIG9ubHkpPGJyIC8+CiAgICAgICAgICAgIEUuZy46IDxjb2RlPntjb250ZW50X21vZHVsZSBtb2R1bGU9IkpNRmlsZVBpY2tlciIgYmxvY2s9InNvbWVfZmlsZSIgbWVkaWFfdHlwZT0iZmlsZSIgc2hvd19zdWJkaXJzPSJ0cnVlIn08L2NvZGU+PGJyIC8+CiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgcGFyYW0gd2lsbCBiZSBpZ25vcmVkIGlmIHRoZSB1c2VyIGJlbG9uZ3MgdG8gdGhlIGFkbWluIGdyb3VwLjxiciAvPjwvZW0+CiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+dXBsb2FkPC90dD4gKHRydWUvZmFsc2UpCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPgogICAgICAgICAgICBTZXQgdG8gdHJ1ZSBpZiB1c2VyIG1heSB1cGxvYWQgZmlsZXMuPGJyIC8+CiAgICAgICAgICAgIFNldCB0byBmYWxzZSB0byBkZW55IHVwbG9hZC48YnIgLz4KICAgICAgICAgICAgPGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQnkgZGVmYXVsdCB0aGlzIHBhcmFtIGRlcGVuZHMgb24gdGhlIHVzZXIgcGVybWlzc2lvbiAiTW9kaWZ5IEZpbGVzIi48YnIgLz4KICAgICAgICAgICAgSWYgc2V0IHRvIHRydWUgeW91IGNhbiBncmFudCB1cGxvYWQgb2YgZmlsZXMgdG8gY2VydGFpbiBibG9ja3MgZXZlbiB0byB1c2VycyB3aXRob3V0IGFwcm9wcmlhdGUgcGVybWlzc2lvbi48YnIgLz4KICAgICAgICAgICAgVmlzZSB2ZXJzYSB5b3UgY2FuIGRlbnkgZmlsZSB1cGxvYWQgZXZlbiB0byB1c2VycyB3aXRoICJNb2RpZnkgRmlsZXMiIHBlcm1pc3Npb24uPGJyIC8+CiAgICAgICAgICAgIFRoaXMgb25seSB3b3JrcyBpZiB0aGUgbW9kdWxlIHNldHRpbmcgIlNob3cgZmlsZW1hbmFnZW1lbnQgb3B0aW9ucyIgaXMgc2V0LjxiciAvPjwvZW0+CiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+ZGVsZXRlPC90dD4gKHRydWUvZmFsc2UpCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPgogICAgICAgICAgICBTZXQgdG8gdHJ1ZSBpZiB1c2VyIG1heSBkZWxldGUgZmlsZXMuPGJyIC8+CiAgICAgICAgICAgIFNldCB0byBmYWxzZSB0byBkZW55IGRlbGV0aW5nIGZpbGVzLjxiciAvPgogICAgICAgICAgICA8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBCeSBkZWZhdWx0IHRoaXMgcGFyYW0gZGVwZW5kcyBvbiB0aGUgdXNlciBwZXJtaXNzaW9uICJNb2RpZnkgRmlsZXMiLjxiciAvPgogICAgICAgICAgICBJZiBzZXQgdG8gdHJ1ZSB5b3UgY2FuIGdyYW50IGRlbGV0aW5nIGZpbGVzIG9yIGRpcmVjdG9yaWVzIHRvIGNlcnRhaW4gYmxvY2tzIGV2ZW4gdG8gdXNlcnMgd2l0aG91dCBhcHJvcHJpYXRlIHBlcm1pc3Npb24uPGJyIC8+CiAgICAgICAgICAgIFZpc2UgdmVyc2EgeW91IGNhbiBkZW55IGRlbGV0aW5nIGFueXRoaW5nIGV2ZW4gdG8gdXNlcnMgd2l0aCAiTW9kaWZ5IEZpbGVzIiBwZXJtaXNzaW9uLjxiciAvPgogICAgICAgICAgICBUaGlzIG9ubHkgd29ya3MgaWYgdGhlIG1vZHVsZSBzZXR0aW5nICJTaG93IGZpbGVtYW5hZ2VtZW50IG9wdGlvbnMiIGlzIHNldC48YnIgLz48L2VtPgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxiciAvPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgPHR0PmNyZWF0ZV9kaXJzPC90dD4gKHRydWUvZmFsc2UpCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPgogICAgICAgICAgICBTZXQgdG8gdHJ1ZSBpZiB1c2VycyBtYXkgY3JlYXRlIGRpcmVjdG9yaWVzLjxiciAvPgogICAgICAgICAgICBTZXQgdG8gZmFsc2UgdG8gZGVueSBkaXJlY3RvcnkgY3JlYXRpb24uPGJyIC8+CiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEJ5IGRlZmF1bHQgdGhpcyBwYXJhbSBkZXBlbmRzIG9uIHRoZSB1c2VyIHBlcm1pc3Npb24gIk1vZGlmeSBGaWxlcyIuPGJyIC8+CiAgICAgICAgICAgIElmIHNldCB0byB0cnVlIHlvdSBjYW4gZ3JhbnQgY3JlYXRpb24gb2YgZGlyZWN0b3JpZXMgdG8gY2VydGFpbiBibG9ja3MgZXZlbiB0byB1c2VycyB3aXRob3V0IGFwcm9wcmlhdGUgcGVybWlzc2lvbi48YnIgLz4KICAgICAgICAgICAgVmlzZSB2ZXJzYSB5b3UgY2FuIGRlbnkgZGlyZWN0b3J5IGNyZWF0aW9uIGV2ZW4gdG8gdXNlcnMgd2l0aCAiTW9kaWZ5IEZpbGVzIiBwZXJtaXNzaW9uLjxiciAvPgogICAgICAgICAgICBUaGlzIG9ubHkgd29ya3MgaWYgdGhlIG1vZHVsZSBzZXR0aW5nICJTaG93IGZpbGVtYW5hZ2VtZW50IG9wdGlvbnMiIGlzIHNldC48YnIgLz4KICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gYWxsb3cgdG8gY3JlYXRlIGRpcmVjdG9yaWVzIHRvIG5vbi1hZG1pbiB1c2VycyB5b3UgbmVlZCB0byBzZXQgc2hvd19zdWJkaXJzPXRydWUuPC9lbT4KICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8YnIgLz4KICAgICAgPC9saT4KICAgICAgPGxpPgogICAgICAgIDx0dD5sb2NrX2lucHV0PC90dD4gKHRydWUvZmFsc2UpCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPgogICAgICAgICAgICBTZXQgdG8gZmFsc2UgaWYgdXNlciBtYXkgZW50ZXIgdGhlIGZpbGUgcGF0aCBpbiB0aGUgZmlsZSBpbnB1dCAoYmxvY2tfdHlwZT0iZmlsZSIgb25seSk8YnIgLz4KICAgICAgICAgICAgQnkgZGVmYXVsdCB0aGlzIGlzIGFsd2F5cyB0cnVlIGlmIHRoZSB1c2VyIGlzIG5vIGFkbWluLgogICAgICAgICAgICA8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHBhcmFtIHdpbGwgYmUgaWdub3JlZCBpZiB0aGUgdXNlciBiZWxvbmdzIHRvIHRoZSBhZG1pbiBncm91cC48YnIgLz48L2VtPgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxiciAvPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgPHR0PmV4Y2x1ZGVfcHJlZml4PC90dD4gKHN0cmluZykKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+CiAgICAgICAgICAgIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcHJlZml4ZXMgdG8gZXhjbHVkZSBmaWxlcyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBzZXQgcHJlZml4Ljxici8+CiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+aW5jbHVkZV9wcmVmaXg8L3R0PiAoc3RyaW5nKQogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwcmVmaXhlcyB0byBzaG93IG9ubHkgZmlsZXMgdGhhdCBzdGFydHMgd2l0aCB0aGUgc2V0IHByZWZpeC48YnIvPgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxiciAvPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgPHR0PmV4Y2x1ZGVfc3VmaXg8L3R0PiAoc3RyaW5nKQogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzdWZpeGVzIHRvIGV4Y2x1ZGUgZmlsZXMgdGhhdCBlbmRzIHdpdGggdGhlIHNldCBzdWZpeC48YnIvPgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxiciAvPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgPHR0PmluY2x1ZGVfc3VmaXg8L3R0PiAoc3RyaW5nKQogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzdWZpeGVzIHRvIHNob3cgb25seSBmaWxlcyB0aGF0IGVuZHMgd2l0aCB0aGUgc2V0IHN1Zml4Ljxici8+CiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+ZmlsZV9leHRlbnNpb25zPC90dD4gKHN0cmluZykKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+QSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhbGxvd2VkIGZpbGUgZXh0ZW5zaW9ucyBvZiBmaWxlcyB0byBkaXNwbGF5IChleGNsdWRpbmcgdGhlIGRvdCk8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+cmVzdHJpY3RfdXNlcnNfZGlyYWNjZXNzPC90dD4gKHRydWUvZmFsc2UpCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPlVzdWFsbHkgdGhpcyBpcyBhIHByZWZlcmVuY2UgdGhhdCBjYW4gYmUgc2V0IHVwIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiBJdCBncmFudHMgYWNjZXNzIG9ubHkgdG8gYSBkaXJlY3RvcnkgdGhhdCBpcyBuYW1lZCBsaWtlIHRoZSB1c2VybmFtZS48YnIgLz4KICAgICAgICAgICAgTGV0J3MgYXNzdW1lIHRoZSB1c2VybmFtZSBpcyBGb28uIFNvIHRoZSBtb2R1bGUgbG9va3MgZm9yIGEgZGlyIGluICJbeW91ciB1cGxvYWRzIGRpcl0vRm9vLyIuPGJyIC8+CiAgICAgICAgICAgIElmIGl0IGRvZXMgbm90IGV4aXN0IGl0IHdpbGwgYmUgY3JlYXRlZC4gSWYgc2V0IHRvIHRydWUgZXZlcnl0aGluZyB3aWxsIGJlIHJlbGF0aXZlIHRvIHRoZSB1c2VybmFtZSBkaXIuIDxiciAvPgogICAgICAgICAgICBUaGF0IG1lYW5zIHRoaXMgZXhhbXBsZSB3aWxsIGxvb2sgZm9yIGltYWdlcyBpbiAiW3lvdXIgdXBsb2FkcyBkaXJdL0Zvby9pbWFnZXMvIjo8YnIgLz4KICAgICAgICAgICAgPGNvZGU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT0iSk1GaWxlUGlja2VyIiBibG9jaz0ic29tZV9pbWFnZSIgZGlyPSJpbWFnZXMiIHJlc3RyaWN0X3VzZXJzX2RpcmFjY2Vzcz10cnVlfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgV2l0aCB0aGlzIHBhcmFtIHlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBzZXR0aW5nIHRvIHNwZWNpZnkgY2VydGFpbiBwcmVmZXJlbmNlcyBmb3IgZWFjaCBibG9jayBpbmRpdmlkdWFsbHkuPGJyIC8+CiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluLjwvZW0+CiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+YWxsb3dfbm9uZTwvdHQ+ICh0cnVlL2ZhbHNlKQogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgVGhpcyBpcyBmb3IgbW9kZSBkcm9wZG93biBvbmx5LiBJZiBzZXQgdG8gZmFsc2UgdGhlcmUgaXMgbm8gIm5vbmUiIG9wdGlvbiBpbiB0aGUgZHJvcGRvd24uPGJyIC8+CiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluLjwvZW0+CiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+YWxsb3dfc2NhbGluZzwvdHQ+ICh0cnVlL2ZhbHNlKQogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5Vc3VhbGx5IHRoaXMgaXMgYSBwcmVmZXJlbmNlIHRoYXQgY2FuIGJlIHNldCB1cCBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbC4gSXQgc3BlY2lmaWVzIGlmIGltYWdlcyBtYXkgYmUgcmVzaXplZCBvbiB1cGxvYWQuPGJyIC8+CiAgICAgICAgICAgIFdpdGggdGhpcyBwYXJhbSB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyB0byBzcGVjaWZ5IGNlcnRhaW4gcHJlZmVyZW5jZXMgZm9yIGVhY2ggYmxvY2sgaW5kaXZpZHVhbGx5LjxiciAvPgogICAgICAgICAgICA8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbi48L2VtPgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxiciAvPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgPHR0PmZvcmNlX3NjYWxpbmc8L3R0PiAodHJ1ZS9mYWxzZSkKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+VXN1YWxseSB0aGlzIGlzIGEgcHJlZmVyZW5jZSB0aGF0IGNhbiBiZSBzZXQgdXAgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwuIDxiciAvPgogICAgICAgICAgICBJZiBzZXQgaW1hZ2VzIHdpbGwgYmUgcmVzaXplZCB0byBhIGdpdmVuIHNpemUgaWYgdXNlciBtYXkgbm90IHJlc2l6ZSBpbWFnZXMuPGJyIC8+CiAgICAgICAgICAgIFdpdGggdGhpcyBwYXJhbSB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyB0byBzcGVjaWZ5IGNlcnRhaW4gcHJlZmVyZW5jZXMgZm9yIGVhY2ggYmxvY2sgaW5kaXZpZHVhbGx5LjxiciAvPgogICAgICAgICAgICA8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbi48L2VtPgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxiciAvPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgPHR0PnNjYWxpbmdfd2lkdGg8L3R0PiAoaW50KQogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5Vc3VhbGx5IHRoaXMgaXMgYSBwcmVmZXJlbmNlIHRoYXQgY2FuIGJlIHNldCB1cCBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbC4gSXQgc3BlY2lmaWVzIHRoZSBkZWZhdWx0IGltYWdlIHdpZHRoIHRvIHJlc2l6ZSBhbiBpbWFnZSB0byBvbiB1cGxvYWQuPGJyIC8+CiAgICAgICAgICAgIFdpdGggdGhpcyBwYXJhbSB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyB0byBzcGVjaWZ5IGNlcnRhaW4gcHJlZmVyZW5jZXMgZm9yIGVhY2ggYmxvY2sgaW5kaXZpZHVhbGx5LgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxiciAvPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgPHR0PnNjYWxpbmdfaGVpZ2h0PC90dD4gKGludCkKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+VXN1YWxseSB0aGlzIGlzIGEgcHJlZmVyZW5jZSB0aGF0IGNhbiBiZSBzZXQgdXAgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwuIEl0IHNwZWNpZmllcyB0aGUgZGVmYXVsdCBpbWFnZSBoZWlnaHQgdG8gcmVzaXplIGFuIGltYWdlIHRvIG9uIHVwbG9hZC48YnIgLz4KICAgICAgICAgICAgV2l0aCB0aGlzIHBhcmFtIHlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBzZXR0aW5nIHRvIHNwZWNpZnkgY2VydGFpbiBwcmVmZXJlbmNlcyBmb3IgZWFjaCBibG9jayBpbmRpdmlkdWFsbHkuCiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+YWxsb3dfdXBzY2FsaW5nPC90dD4gKHRydWUvZmFsc2UpCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPlVzdWFsbHkgdGhpcyBpcyBhIHByZWZlcmVuY2UgdGhhdCBjYW4gYmUgc2V0IHVwIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiBJdCBzcGVjaWZpZXMgaWYgaW1hZ2VzIG1heSBiZSBlbmxhcmdlZCB3aGVuIHJlc2l6ZWQuPGJyIC8+CiAgICAgICAgICAgIFdpdGggdGhpcyBwYXJhbSB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyB0byBzcGVjaWZ5IGNlcnRhaW4gcHJlZmVyZW5jZXMgZm9yIGVhY2ggYmxvY2sgaW5kaXZpZHVhbGx5LjxiciAvPgogICAgICAgICAgICA8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbi48L2VtPgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxiciAvPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgPHR0PmNyZWF0ZV90aHVtYnM8L3R0PiAodHJ1ZS9mYWxzZSkKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+VXN1YWxseSB0aGlzIGlzIGEgcHJlZmVyZW5jZSB0aGF0IGNhbiBiZSBzZXQgdXAgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwuIEl0IHNwZWNpZmllcyBpZiB0aGUgbW9kdWxlIHdpbGwgY3JlYXRlIHRodW1ibmFpbHMgb2YgaW1hZ2VzIHdoZW4gcmVhZGluZyB0aGUgZGlyZWN0b3J5LjxiciAvPgogICAgICAgICAgICBXaXRoIHRoaXMgcGFyYW0geW91IGNhbiBvdmVycmlkZSB0aGlzIHNldHRpbmcgdG8gdHVybiBvZmYgdGh1bWJhaWwgY3JlYXRpb24gZm9yIGEgY2VydGFpbiBpbnB1dCBibG9jayBpbmRpdmlkdWFsbHkuCiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGJyIC8+CiAgICAgIDwvbGk+CiAgICAgIDxsaT4KICAgICAgICA8dHQ+c2hvd190aHVtYmZpbGVzPC90dD4gKHRydWUvZmFsc2UpCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPlVzdWFsbHkgdGhpcyBpcyBhIHByZWZlcmVuY2UgdGhhdCBjYW4gYmUgc2V0IHVwIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiBJdCBzcGVjaWZpZXMgaWYgdGhlIG1vZHVsZSB3aWxsIHNob3cgZXZlbiB0aGUgdGh1bWJuYWlscyBhcyByZWd1bGFyIGZpbGVzLjxiciAvPgogICAgICAgICAgICBXaXRoIHRoaXMgcGFyYW0geW91IGNhbiBvdmVycmlkZSB0aGlzIHNldHRpbmcgdG8gc3BlY2lmeSBjZXJ0YWluIHByZWZlcmVuY2VzIGZvciBlYWNoIGJsb2NrIGluZGl2aWR1YWxseS4KICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8YnIgLz4KICAgICAgPC9saT4KICAgIDwvdWw+CiAgPC9kaXY+CiAgPGRpdiBpZD0iZGV2ZWxvcGVyc19jIj4KICAgIDxwPjxzdHJvbmc+Rm9yIGRldmVsb3BlcnM6PC9zdHJvbmc+PC9wPgogICAgPHA+QWN0dWFsbHkgYXQgdGhlIG1vbWVudCB0aGVyZSBpcyBqdXN0IG9uZSBmdW5jdGlvbiB0aGF0IG1pZ2h0IGJlIG9mIGludGVyZXN0IGZvciBtb2R1bGUgZGV2ZWxvcGVyczogPC9wPgogICAgPHA+PGNvZGU+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCRtb2R1bGUsICRpZCwgJG5hbWUsICR2YWx1ZSA9ICcnLCAkcGFyYW1zID0gYXJyYXkoKSk8L2NvZGU+PC9wPgogICAgPHA+SGVyZSBpcyBhbiBleGFtcGxlIGhvdyB0byBpbnRlZ3JhdGUgdGhlIGZpbGVwaWNrZXIgaW5wdXQgaW4gb3RoZXIgbW9kdWxlczo8L3A+CiAgICA8cHJlPjxjb2RlPgogICAgaWYoJGptZnAgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnSk1GaWxlUGlja2VyJykpIAogICAgewogICAgICAvLyBwcmludHMgb3V0IGEgZmlsZSBkcm9wZG93biBzaG93aW5nIG9ubHkgaW1hZ2VzIGluICJbeW91ciB1cGxvYWRzIGRpcl0vaW1hZ2VzIjsKICAgICAgLy8gc2VsZWN0ZWQgaW1hZ2VzIHdpbGwgYXBwZWFyIGFzIHRodW1ibmFpbCBwcmV2aWV3IGJlbG93IHRoZSBkcm9wZG93bgogICAgICAKICAgICAgZWNobyAkam1mcC0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCAnJywgJGlkLCdmaWxlcGlja2VyX2lucHV0XzEnLCAnJywgYXJyYXkoJ2RpcicgPT4gJ2ltYWdlcycpICk7CiAgICAgIAogICAgICAKICAgICAgLy8gcHJpbnRzIG91dCBhIGJ1dHRvbiBhbmQgYSBoaWRkZW4gaW5wdXQgZmllbGQgdG8gYnJvd3NlIGltYWdlcyBpbiAiW3lvdXIgdXBsb2FkcyBkaXJdL2ltYWdlcyIgdXNpbmcgdGhlIGJ1aWx0IGluIGZpbGVicm93c2VyCiAgICAgIC8vIHNlbGVjdGVkIGltYWdlcyB3aWxsIGFwcGVhciBhcyB0aHVtYm5haWwgcHJldmlldyBiZWxvdyB0aGUgYnV0dG9uOwogICAgICAvLyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIGhpZGRlbiBpbnB1dCBmaWVsZAogICAgICAKICAgICAgZWNobyAkam1mcC0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCcnLCAkaWQsICdmaWxlcGlja2VyX2lucHV0XzInLCAnJywgYXJyYXkoJ2Rpcic9PidpbWFnZXMnLCdtb2RlJz0+J2Jyb3dzZXInKSk7CiAgICAgIAogICAgICAKICAgICAgLy8gcHJpbnRzIG91dCBhIGZpbGUgZHJvcGRvd24gc2hvd2luZyBhbGwgZmlsZXMgaW4gdXBsb2FkcyBkaXIKICAgICAgZWNobyAkam1mcC0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCcnLCAkaWQsICdmaWxlcGlja2VyX2lucHV0XzMnLCAnJywgYXJyYXkoJ21lZGlhX3R5cGUnPT4nZmlsZScpKTsKICAgICAgCiAgICAgIAogICAgICAvLyBwcmludHMgb3V0IGEgYnV0dG9uIGFuZCBhIHRleHQgaW5wdXQgZmllbGQgdG8gYnJvd3NlIGltYWdlcyBpbiB1cGxvYWRzL2ltYWdlcyB1c2luZyB0aGUgYnVpbHQgaW4gZmlsZWJyb3dzZXIKICAgICAgLy8gdmFsdWUgaXMgc3RvcmVkIGluIHRoZSB0ZXh0IGlucHV0IGZpZWxkCiAgICAgIAogICAgICBlY2hvICRqbWZwLT5DcmVhdGVGaWxlUGlja2VySW5wdXQoJycsJGlkLCAnZmlsZXBpY2tlcl9pbnB1dF80JywnJyxhcnJheSgnbWVkaWFfdHlwZSc9PidmaWxlJywnbW9kZSc9Pidicm93c2VyJykpOwogICAgICAKICAgIH08L2NvZGU+PC9wcmU+CiAgICAKICA8L2Rpdj4KIAogIDxkaXYgaWQ9ImFib3V0X2MiPgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KIAogICAgICA8aDM+QWJvdXQgdGhpcyBtb2R1bGU8L2gzPgogICAgICA8cD5PcmlnaW4gb2YgdGhpcyBtb2R1bGUgY29tZXMgZnJvbSA8c3Ryb25nPkdCRmlsZVBpY2tlcjwvc3Ryb25nPiBkZXZlbG9wZWQgYnkgPHN0cm9uZz5HZW9yZyBCdXNjaDwvc3Ryb25nPi48L3A+CiAgICAgIAogICAgICA8aDM+U3VwcG9ydDwvaDM+CiAgICAgIDxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KICAgICAgPHVsPgogICAgICAgIDxsaT5UaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvPC9hPjwvbGk+CiAgICAgICAgPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgQ01TIE1hZGUgU2ltcGxlIEZvcnVtczo8YnIgLz4KICAgICAgICA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmc8L2E+PC9saT4KICAgICAgPC91bD4KICAgICAgPGJyIC8+CiAgICAgIDxwPlBsZWFzZSByZXBvcnQgYW55IGtpbmQgb2YgZmVlZGJhY2suPC9wPgogICAgICA8cD5JZiB3YW50IHRvIGhlbHAgdGhlIGRldmVsb3BtZW50IGFuZCBtYWludGVuYW5jZSBvZiB0aGlzIG1vZHVsZSwgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nLiA8YnIgLz4gPGJyIC8+CiAgICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3I/Y21kPV9zLXhjbGljayZob3N0ZWRfYnV0dG9uX2lkPVBCSzRYM1hLTUFTWkMiPiAKICAgICAgICA8aW1nIHNyYz0iLy9sb2NhbGhvc3QvY21zbXMyMi9tb2R1bGVzL0pNRmlsZVBpY2tlci9pbWFnZXMvcHBfYnV0dG9uLnBuZyIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIOKAkyBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZS4iIC8+CiAgICAgIDwvYT4KICAgICAgPC9wPgoKICAgICAgPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CgogICAgICA8cD5UaGUgTW9kdWxlIGlzIGN1cnJlbnRseSBiZWluZyBkZXZlbG9wZWQgYnkgPHN0cm9uZz5GZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKTwvc3Ryb25nPgogICAgICA8YnIgLz4KICAgICAgV2ViOiA8YSBocmVmPSJodHRwczovL3d3dy5zbS1hcnQtbGFiLmNvbSIgcmVsPSJleHRlcm5hbCIgdGFyZ2V0PSJfYmxhbmsiPnd3dy5zbS1hcnQtbGFiLmNvbTwvYT4KICAgICAgPGJyIC8+CiAgICAgIEVtYWlsOiA8YSBocmVmPSJtYWlsdG86am9tb3JnQHNtLWFydC1sYWIuY29tIj5qb21vcmdAc20tYXJ0LWxhYi5jb208L2E+CiAgICAgIDwvcD4KICAgICAgICAgICAgPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDE2IC0gMjAxNyAuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjxiciAvPjwvcD4KCiAgICAgIDxwPjxzdHJvbmc+Sk1GaWxlUGlja2VyPC9zdHJvbmc+IGlzIGZyZWUgc29mdHdhcmU7PGJyIC8+IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFzIHB1Ymxpc2hlZCBieSB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb248L3N0cm9uZz47PGJyIC8+IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgogICAgICA8cD48c3Ryb25nPkpNRmlsZVBpY2tlcjwvc3Ryb25nPiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgPHN0cm9uZz5XSVRIT1VUIEFOWSBXQVJSQU5UWTwvc3Ryb25nPjs8YnIgLz4gd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIDxzdHJvbmc+TUVSQ0hBTlRBQklMSVRZPC9zdHJvbmc+IG9yIDxzdHJvbmc+RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0U8L3N0cm9uZz4uPC9wPgogICAgICA8cD5TZWUgdGhlR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48L3A+CiAgICAgICA8cD5Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOzxiciAvPiBpZiBub3QsIHdyaXRlIHRvIHRoZSA8c3Ryb25nPkZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8L3N0cm9uZz4gb3IgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+cmVhZCBpdCBvbmxpbmU8L2E+LjwvcD4KICAgICAgPHA+PHN0cm9uZz5Zb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIDxzdHJvbmc+Sk1GaWxlUGlja2VyPC9zdHJvbmc+Ljwvc3Ryb25nPjwvcD4gIAoKICAgICAgPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDE2IC0gMjAxNywgRmVybmFuZG8gTW9yZ2FkbyAoSm8gTW9yZykuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KICAgICAgPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCIgdGFyZ2V0PSJfYmxhbmsiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+CiAgICAgIDxoND5Db250cmlidXRvcnM8L2g0PgogICAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+R2VvcmcgQnVzY2ggKG5hbik8L3N0cm9uZz4gZ2VvcmcuYnVzY2hAZ214Lm5ldCAtIG9yaWdpbmFsIGRldmVsb3BlciAoR0JmaWxlUGlja2VyKTs8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkplZmYgQm9zY2ggKGFqcHJvZyk8L3N0cm9uZz4gamVmZkBhanByb2dyYW1taW5nLmNvbSAtIGNvZGUsIHN1Z2dlc3Rpb25zIGFuZCBmaXhlczs8L2xpPgogICAgICA8L3VsPgogICAgPC9kaXY+CiAgPC9kaXY+ICAKICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgo8L2Rpdj4K]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKbyBNb3JnPGJyIC8+PGJyIC8+VmVyc2lvbjogMS4wLjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CiAgPGxpPgogICAgPHN0cm9uZz5KTUZpbGVQaWNrZXIgMS4wLjEgKEp1bHkgMjAxNyk6PC9zdHJvbmc+OgogICAgPHVsPgogICAgICA8bGk+Zml4ZWQgQlIjMTE0OTQ6IE5vdCBmdW5jdGlvbmFsIGluIENNU01TIHZlcnNpb24gMi4yLjI8L2xpPgogICAgICA8bGk+Zml4ZWQgQlIjMTEwMjU6IGJ1ZyB3aGVuIG1vcmUgdGhhbiBvbmUgZmlsZXBpY2tlciB1c2VkIHBlciBMSVNFaW5zdGFuY2U8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4KICAgIDxzdHJvbmc+Sk1GaWxlUGlja2VyIDEuMCAoRmVicnVhcnkgMjAxNik6PC9zdHJvbmc+IEluaXRpYWwgcmVsZWFzZTsKICA8L2xpPgo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[A simple filepicker tool to create an input that allows to select files from a given dir using a dropdown or a filebrowser.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIEZvcmsgb2Y6IEdCRmlsZVBpY2tlciAoYykgMjAxMC0yMDEyIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgZmlsZSBwaWNrZXIgdG9vbCBmb3IgQ01TIE1hZGUgU2ltcGxlCiMgICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXIKIyAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscAojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFZlcnNpb246IDEuMy4zCiMgRmlsZSAgIDogYWN0aW9uLmRlZmF1bHRhZG1pbi5waHAKIyBQdXJwb3NlOiBkaXNwbGF5IG1vZHVsZSBhZG1pbiBwYW5lbAojIExpY2Vuc2U6IEdQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCFmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykgfHwgIWlzX29iamVjdChjbXNtcygpKSkgZXhpdDsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJGFjdGl2ZV90YWIgPSAncHJlZnMnOwoKaWYoaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkKICAkYWN0aXZlX3RhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKCiRlcnJvcm1lc3NhZ2UgPSAnJzsKaWYoaXNzZXQoJHBhcmFtc1snZXJyb3JtZXNzYWdlJ10pKQogICRlcnJvcm1lc3NhZ2UgLj0gJHBhcmFtc1snZXJyb3JtZXNzYWdlJ10uJzxiciAvPic7CgokbWVzc2FnZSA9ICcnOwppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pKQogICRtZXNzYWdlIC49ICRwYXJhbXNbJ21lc3NhZ2UnXS4nPGJyIC8+JzsKCiR0YWJzID0gYXJyYXkoKTsKCmlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBKTUZpbGVQaWNrZXInKSkKewogICR0YWJzWydwcmVmcyddWyd0YWJoZWFkZXInXSA9ICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3ByZWZzJywKICAgICR0aGlzLT5sYW5nKCdwcmVmcycpLAogICAgKCRhY3RpdmVfdGFiPT0ncHJlZnMnP3RydWU6JycpKTsKIAogICRzbWFydHktPmFzc2lnbignc3RhcnRGb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCiAgICAnc2F2ZVByZWZzJywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2VuZEZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKICAKICAkc21hcnR5LT5hc3NpZ24oJ3Nob3dfZmlsZW1hbmFnZW1lbnRfdGV4dCcsICR0aGlzLT5sYW5nKCdzaG93X2ZpbGVtYW5hZ2VtZW50JykpOwogICRzbWFydHktPmFzc2lnbignc2hvd19maWxlbWFuYWdlbWVudF9pbnB1dCcsCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdzaG93X2ZpbGVtYW5hZ2VtZW50JywwKSAuCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdzaG93X2ZpbGVtYW5hZ2VtZW50JywgJzEnLAogICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWxlbWFuYWdlbWVudCcpKSk7CiAgCiAgJHNtYXJ0eS0+YXNzaWduKCdzaG93X3RodW1iZmlsZXNfdGV4dCcsICR0aGlzLT5sYW5nKCdzaG93X3RodW1iZmlsZXMnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdzaG93X3RodW1iZmlsZXNfaW5wdXQnLAogICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnc2hvd190aHVtYmZpbGVzJywwKSAuCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdzaG93X3RodW1iZmlsZXMnLCAnMScsCiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaG93X3RodW1iZmlsZXMnKSkpOwogIAogICRzbWFydHktPmFzc2lnbignYWxsb3dfc2NhbGluZ190ZXh0JywgJHRoaXMtPmxhbmcoJ2FsbG93X3NjYWxpbmcnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdhbGxvd19zY2FsaW5nX2lucHV0JywKICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2FsbG93X3NjYWxpbmcnLDApIC4KICAgICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FsbG93X3NjYWxpbmcnLCAnMScsCiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19zY2FsaW5nJykpKTsKICAKICAkc21hcnR5LT5hc3NpZ24oJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2Vzc190ZXh0JywgJHRoaXMtPmxhbmcoJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcycpKTsKICAkc21hcnR5LT5hc3NpZ24oJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2Vzc19pbnB1dCcsCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdyZXN0cmljdF91c2Vyc19kaXJhY2Nlc3MnLDApIC4KICAgICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcycsICcxJywKICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcycpKSk7CiAgCiAgJHNtYXJ0eS0+YXNzaWduKCdjcmVhdGVfdGh1bWJzX3RleHQnLCAkdGhpcy0+bGFuZygnY3JlYXRlX3RodW1icycpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2NyZWF0ZV90aHVtYnNfaW5wdXQnLAogICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY3JlYXRlX3RodW1icycsMCkgLgogICAgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY3JlYXRlX3RodW1icycsICcxJywKICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV90aHVtYnMnKSkpOwogIAogICRzbWFydHktPmFzc2lnbignYWxsb3dfdXBzY2FsaW5nX3RleHQnLCAkdGhpcy0+bGFuZygnYWxsb3dfdXBzY2FsaW5nJykpOwogICRzbWFydHktPmFzc2lnbignYWxsb3dfdXBzY2FsaW5nX2lucHV0JywKICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2FsbG93X3Vwc2NhbGluZycsMCkgLgogICAgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnYWxsb3dfdXBzY2FsaW5nJywgJzEnLAogICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfdXBzY2FsaW5nJykpKTsKICAKICAkZmlsZVR5cGUgPSBzdHJ0b2xvd2VyKGptZnBfdXRpbHM6OkdldEZpbGVUeXBlKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLCdKTUZpbGVQaWNrZXInLCdpbWFnZXMnLCdmaWxlaWNvbi5naWYnKSx0cnVlKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCd1c2VfbWltZXR5cGVfdGV4dCcsICR0aGlzLT5sYW5nKCd1c2VfbWltZXR5cGUnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCd1c2VfbWltZXR5cGVfaW5wdXQnLAogICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwndXNlX21pbWV0eXBlJywwKSAuCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICd1c2VfbWltZXR5cGUnLCAnMScsCiAgICAgICgkZmlsZVR5cGUgIT0gJ2ltYWdlL2dpZic/JHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9taW1ldHlwZScsMCk6JHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9taW1ldHlwZScpKSwgKCRmaWxlVHlwZSAhPSAnaW1hZ2UvZ2lmJz8nIGRpc2FibGVkPSJkaXNhYmxlZCInOicnKSkgLgogICAgKCRmaWxlVHlwZSA9PSAnaW1hZ2UvZ2lmJz8nJzokdGhpcy0+bGFuZygnbm9fbWltZXR5cGUnKSkpOwogIAogICRzbWFydHktPmFzc2lnbignc2NhbGluZ193aWR0aF90ZXh0JywgJHRoaXMtPmxhbmcoJ3NjYWxpbmdfd2lkdGgnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdzY2FsaW5nX3dpZHRoX2lucHV0JywKICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2NhbGluZ193aWR0aCcsCiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzY2FsaW5nX3dpZHRoJyksIDUsIDQpKTsKICAKICAkc21hcnR5LT5hc3NpZ24oJ3NjYWxpbmdfaGVpZ2h0X3RleHQnLCAkdGhpcy0+bGFuZygnc2NhbGluZ19oZWlnaHQnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdzY2FsaW5nX2hlaWdodF9pbnB1dCcsCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3NjYWxpbmdfaGVpZ2h0JywKICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NjYWxpbmdfaGVpZ2h0JyksIDUsIDQpKTsKICAKICAkc21hcnR5LT5hc3NpZ24oJ2RlbW9fdGV4dCcsICR0aGlzLT5sYW5nKCdkZW1vJykpOwogICRzbWFydHktPmFzc2lnbignc2V0dGluZ3NfdGV4dCcsICR0aGlzLT5sYW5nKCdzZXR0aW5ncycpKTsKICAKICAkc21hcnR5LT5hc3NpZ24oJ2ZvcmNlX3NjYWxpbmdfdGV4dCcsICR0aGlzLT5sYW5nKCdmb3JjZV9zY2FsaW5nJykpOwogICRzbWFydHktPmFzc2lnbignZm9yY2Vfc2NhbGluZ19pbnB1dCcsCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmb3JjZV9zY2FsaW5nJywwKSAuCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmb3JjZV9zY2FsaW5nJywgJzEnLAogICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZm9yY2Vfc2NhbGluZycpKSk7CiAgCiAgJHNtYXJ0eS0+YXNzaWduKCd0aHVtYl91cGxvYWRfYWN0aW9uX3RleHQnLCAkdGhpcy0+bGFuZygndGh1bWJfdXBsb2FkX2FjdGlvbicpKTsKICAkc21hcnR5LT5hc3NpZ24oJ3RodW1iX3VwbG9hZF9hY3Rpb25faW5wdXQnLAogICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndGh1bWJfdXBsb2FkX2FjdGlvbicsIAogICAgICBhcnJheSgKICAgICAgICBsYW5nKCdubycpID0+IG51bGwsIAogICAgICAgIGxhbmcoJ3llcycpID0+IDEKICAgICAgKSwgCiAgICAgIG51bGwsCiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aHVtYl91cGxvYWRfYWN0aW9uJyksCiAgICAgICdpZD0iam1mcF90aHVtYl91cGxvYWRfYWN0aW9uIicKICAgICkKICApOwogICRzbWFydHktPmFzc2lnbigndGh1bWJfdXBsb2FkX2FjdGlvbicsIAogICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RodW1iX3VwbG9hZF9hY3Rpb24nKQogICk7CiAgJHNtYXJ0eS0+YXNzaWduKCd0aHVtYl9wcmVmaXhfcmVwbGFjZW1lbnRfdGV4dCcsIAogICAgJHRoaXMtPmxhbmcoJ3RodW1iX3ByZWZpeF9yZXBsYWNlbWVudCcpCiAgKTsKICAkc21hcnR5LT5hc3NpZ24oJ3RodW1iX3ByZWZpeF9yZXBsYWNlbWVudF9pbnB1dCcsCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RodW1iX3ByZWZpeF9yZXBsYWNlbWVudCcsCiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aHVtYl9wcmVmaXhfcmVwbGFjZW1lbnQnKQogICAgKQogICk7CiAgJHNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0X2FkbWluX3RoZW1lX3RleHQnLCAkdGhpcy0+bGFuZygnZGVmYXVsdF9hZG1pbl90aGVtZScpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2RlZmF1bHRfYWRtaW5fdGhlbWVfaW5wdXQnLAogICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZGVmYXVsdF9hZG1pbl90aGVtZScsIAogICAgICAkdGhpcy0+R2V0VGhlbWVzTGlzdCgpLCAnJywKICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfYWRtaW5fdGhlbWUnLCdEZWZhdWx0LUFKQVgnKQogICAgKQogICk7CiAgaWYoICRmZXVzZXJzID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKSApIHsKICAgICRncm91cHMgPSAkZmV1c2Vycy0+R2V0R3JvdXBMaXN0KCk7CiAgICAkc21hcnR5LT5hc3NpZ24oICdmZXVfYWNjZXNzX3RleHQnLCAkdGhpcy0+bGFuZygnZmV1X2FjY2VzcycpICk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZldV9hY2Nlc3NfaW5wdXQnLAogICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmZXVfYWNjZXNzJywnJykuCiAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCdmZXVfYWNjZXNzW10nLCRncm91cHMsCiAgICAgICAgam1mcF91dGlsczo6Q2xlYW5BcnJheShleHBsb2RlKCcsJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmV1X2FjY2VzcycpKSksCiAgICAgIGNvdW50KCRncm91cHMpLCcnLDEpKTsKICAgIAogICAgJHNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0X2Zyb250ZW5kX3RoZW1lX3RleHQnLCAkdGhpcy0+bGFuZygnZGVmYXVsdF9mcm9udGVuZF90aGVtZScpKTsKICAgICRzbWFydHktPmFzc2lnbignZGVmYXVsdF9mcm9udGVuZF90aGVtZV9pbnB1dCcsCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdkZWZhdWx0X2Zyb250ZW5kX3RoZW1lJywgJHRoaXMtPkdldFRoZW1lc0xpc3QoKSwgJycsCiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2Zyb250ZW5kX3RoZW1lJywnRGVmYXVsdC1BSkFYJykpKTsKICAKICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfYWpheCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLAogICAgbGFuZygnc3VibWl0JyksJ29uQ2xpY2s9InJldHVybiBKTUZQLlN1Ym1pdEZvcm0odGhpcyxcJ0pNRlBfUmVzdWx0XCcpIicpKTsKICAKICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwogIAogICR0YWJzWydwcmVmcyddWyd0YWJjb250ZW50J10gPSAkdGhpcy0+U3RhcnRUYWIoJ3ByZWZzJykgLgogICAgJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgncHJlZnN0YWIudHBsJykgLgogICAgJHRoaXMtPkVuZFRhYigpOwp9CgppZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgSk1GaWxlUGlja2VyJykpCnsKICAkdGFic1snZGVtbyddWyd0YWJoZWFkZXInXSA9ICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2RlbW8nLAogICAgJHRoaXMtPmxhbmcoJ2RlbW8nKSwKICAgICgkYWN0aXZlX3RhYj09J2RlbW8nP3RydWU6JycpKTsKICAKICAvLyBpbWFnZSBkcm9wZG93bgogICRzbWFydHktPmFzc2lnbignaW1hZ2Vkcm9wZG93bl90ZXh0JywgJHRoaXMtPmxhbmcoJ2ltYWdlZHJvcGRvd25fZXhhbXBsZScsc3RyX3JlcGxhY2UoJGNvbmZpZ1sncm9vdF91cmwnXSwnJywkY29uZmlnWyd1cGxvYWRzX3VybCddKS4nL2ltYWdlcycpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2ltYWdlZHJvcGRvd25faW5wdXQnLCAkdGhpcy0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCR0aGlzLCAkaWQsJ0pNRmlsZVBpY2tlcl9pbWFnZV9kcm9wZG93bicsJycsYXJyYXkoJ2Rpcic9PidpbWFnZXMnKSkpOwogIAogIC8vIGltYWdlIGJyb3dzZXIKICAkc21hcnR5LT5hc3NpZ24oJ2ltYWdlYnJvd3Nlcl90ZXh0JywgJHRoaXMtPmxhbmcoJ2ltYWdlYnJvd3Nlcl9leGFtcGxlJyxzdHJfcmVwbGFjZSgkY29uZmlnWydyb290X3VybCddLCcnLCRjb25maWdbJ3VwbG9hZHNfdXJsJ10pLicvaW1hZ2VzJykpOwogICRzbWFydHktPmFzc2lnbignaW1hZ2Vicm93c2VyX2lucHV0JywkdGhpcy0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCR0aGlzLCRpZCwgJ0pNRmlsZVBpY2tlcl9pbWFnZV9maWxlcGlja2VyJywnJyxhcnJheSgnZGlyJz0+J2ltYWdlcycsJ21vZGUnPT4nYnJvd3NlcicpKSk7CiAgCiAgLy8gZmlsZSBkcm9wZG93bgogICRzbWFydHktPmFzc2lnbignZmlsZWRyb3Bkb3duX3RleHQnLCAkdGhpcy0+bGFuZygnZmlsZWRyb3Bkb3duX2V4YW1wbGUnLHN0cl9yZXBsYWNlKCRjb25maWdbJ3Jvb3RfdXJsJ10sJycsJGNvbmZpZ1sndXBsb2Fkc191cmwnXSkuJy8nKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdmaWxlZHJvcGRvd25faW5wdXQnLCR0aGlzLT5DcmVhdGVGaWxlUGlja2VySW5wdXQoJHRoaXMsJGlkLCAnSk1GaWxlUGlja2VyX2ZpbGVfZHJvcGRvd24nLCcnLGFycmF5KCdtZWRpYV90eXBlJz0+J2ZpbGUnKSkpOwogIAogIC8vIGZpbGUgYnJvd3NlcgogICRzbWFydHktPmFzc2lnbignZmlsZWJyb3dzZXJfdGV4dCcsICR0aGlzLT5sYW5nKCdmaWxlYnJvd3Nlcl9leGFtcGxlJyxzdHJfcmVwbGFjZSgkY29uZmlnWydyb290X3VybCddLCcnLCRjb25maWdbJ3VwbG9hZHNfdXJsJ10pLicvJykpOwogICRzbWFydHktPmFzc2lnbignZmlsZWJyb3dzZXJfaW5wdXQnLCR0aGlzLT5DcmVhdGVGaWxlUGlja2VySW5wdXQoJHRoaXMsJGlkLCAnSk1GaWxlUGlja2VyX2ZpbGVfZmlsZXBpY2tlcicsJycsYXJyYXkoJ21lZGlhX3R5cGUnPT4nZmlsZScsJ21vZGUnPT4nYnJvd3NlcicpKSk7CgogICR0YWJzWydkZW1vJ11bJ3RhYmNvbnRlbnQnXSA9ICR0aGlzLT5TdGFydFRhYignZGVtbycpIC4KICAgICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RlbW90YWIudHBsJykgLgogICAgJHRoaXMtPkVuZFRhYigpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ3RhYnMnLCAkdGFicyk7CiRzbWFydHktPmFzc2lnbignc3RhcnRfdGFiaGVhZGVycycsICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSk7CiRzbWFydHktPmFzc2lnbignZW5kX3RhYmhlYWRlcnMnLCAkdGhpcy0+RW5kVGFiSGVhZGVycygpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJjb250ZW50JywgJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiY29udGVudCcsICR0aGlzLT5FbmRUYWJDb250ZW50KCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZF90YWInLCAkdGhpcy0+RW5kVGFiKCkpOwokc21hcnR5LT5hc3NpZ24oJ21vZHVsZV9pZCcsICRpZCk7CgppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pKQp7CiAgJHNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgJHRoaXMtPmxhbmcoJHBhcmFtc1snbWVzc2FnZSddKSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2Vycm9ybWVzc2FnZSddKSkKewogICRzbWFydHktPmFzc2lnbignZXJyb3JtZXNzYWdlJywgJHRoaXMtPmxhbmcoJHBhcmFtc1snZXJyb3JtZXNzYWdlJ10pKTsKfQoKZWNobyAgJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZGVmYXVsdGFkbWluLnRwbCcpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.fileBrowser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZighZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpIHx8ICFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7DQoNCmdsb2JhbCAkQ01TX0FETUlOX1BBR0U7DQokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQokc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQoNCi8vaW5wdXQgbmFtZQ0KaWYoIWlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgfHwgJHBhcmFtc1snbmFtZSddPT0nJykNCnsNCglyZXR1cm47DQp9DQplbHNlDQp7DQoJJG5hbWUgPSBodG1sZW50aXRpZXModHJpbSgkcGFyYW1zWyduYW1lJ10pKTsNCn0NCmlmKCRpZCA9PSAnY250bnQwMScgJiYgaXNzZXQoJF9TRVNTSU9OWydKTUZQX2lkXycuJG5hbWVdKSkNCnsNCgkkaWQgPSAkX1NFU1NJT05bJ0pNRlBfaWRfJy4kbmFtZV07DQp9DQoNCmlmKCEkc2Vzc2lvbl9wYXJhbXMgPSYgJHRoaXMtPkdldElucHV0UGFyYW1zKCRpZCwkbmFtZSkpDQp7DQoJcmV0dXJuOw0KfQ0KDQokcGFyYW1zID0gYXJyYXlfbWVyZ2UoJHBhcmFtcywgJHNlc3Npb25fcGFyYW1zKTsNCg0KaWYoJHBhcmFtc1snbmFtZSddICE9ICRuYW1lKQ0Kew0KCXJldHVybjsNCn0NCg0KLy8gY2hlY2sgcGVybWlzc2lvbg0KaWYoaXNzZXQoJENNU19BRE1JTl9QQUdFKSAmJiAkQ01TX0FETUlOX1BBR0UgPT0gMSkNCnsNCgljaGVja19sb2dpbigpOw0KCWlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgSk1GaWxlUGlja2VyJykpDQoJCXJldHVybjsNCgkkdXNlcm5hbWUgPSAkdGhpcy0+X3VzZXJuYW1lOw0KfQ0KZWxzZQ0Kew0KCWlmKCAhJGZldXNlcnMgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycgKSApDQoJew0KCQlyZXR1cm47DQoJfQ0KCWlmKCEkdXNlcmlkID0gJGZldXNlcnMtPkxvZ2dlZEluSWQoKSkNCgl7DQoJCXJldHVybjsNCgl9DQoJaWYoISRncm91cHMgPSAkZmV1c2Vycy0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoJHVzZXJpZCkpDQoJew0KCQlyZXR1cm47DQoJfQ0KCSRhY2Nlc3MgPSBmYWxzZTsNCglmb3JlYWNoKCRncm91cHMgYXMgJF9ncm91cCkNCgl7DQoJCWlmKGluX2FycmF5KCRfZ3JvdXBbJ2dyb3VwaWQnXSwkcGFyYW1zWydmZXVfYWNjZXNzJ10pKQ0KCQl7DQoJCQkkYWNjZXNzID0gdHJ1ZTsNCgkJCWJyZWFrOw0KCQl9DQoJfQ0KCWlmKCEkYWNjZXNzKQ0KCXsNCgkJcmV0dXJuOw0KCX0NCgkkdXNlcm5hbWUgPSAkZmV1c2Vycy0+R2V0VXNlck5hbWUoJHVzZXJpZCk7DQp9DQoNCi8vIG1vZHVsZSBpZA0KJF9pZCA9ICRpZDsNCmlmKCRwYXJhbXNbJ2lkJ10gPT0gJycpDQp7DQoJJF9pZCA9ICcnOw0KfQ0KDQovLyBkaXIgc3R1ZmYNCiRjdXJyZW50X2RpciA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUjsNCiRjdXJyZW50X3VybCAgPSAkY29uZmlnWyd1cGxvYWRzX3VybCddIC4gJy8nOw0KDQppZigkcGFyYW1zWydzdGFydF9kaXInXSAhPSAnJyAmJiAhJHRoaXMtPl9pc0FkbWluKQ0Kew0KCSRjdXJyZW50X2RpciAuPSBzdHJfcmVwbGFjZSgnLycsIERJUkVDVE9SWV9TRVBBUkFUT1IsICRwYXJhbXNbJ3N0YXJ0X2RpciddKSAuIERJUkVDVE9SWV9TRVBBUkFUT1I7DQoJJGN1cnJlbnRfdXJsIC49ICRwYXJhbXNbJ3N0YXJ0X2RpciddIC4gJy8nOw0KfQ0KDQokZGlyID0gJyc7DQppZihpc3NldCgkcGFyYW1zWydkaXInXSkgJiYgJHBhcmFtc1snc2hvd19zdWJkaXJzJ10pDQp7DQoJJGRpciA9IGptZnBfdXRpbHM6OkNsZWFuVVJMKCRwYXJhbXNbJ2RpciddLCBmYWxzZSk7DQoJJGN1cnJlbnRfZGlyIC49IHN0cl9yZXBsYWNlKCcvJywgRElSRUNUT1JZX1NFUEFSQVRPUiwgJGRpcikgLiBESVJFQ1RPUllfU0VQQVJBVE9SOw0KCSRjdXJyZW50X3VybCAuPSAkZGlyIC4gJy8nOw0KfQ0KDQokdXNlZm0gPSAoKCRwYXJhbXNbJ3VwbG9hZCddIHx8ICRwYXJhbXNbJ2RlbGV0ZSddIHx8ICRwYXJhbXNbJ2NyZWF0ZV9kaXJzJ10pICYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWxlbWFuYWdlbWVudCcpIHx8ICR0aGlzLT5faXNBZG1pbikpOw0KDQovLyBnby4uLg0KaWYoZmlsZV9leGlzdHMoJGN1cnJlbnRfZGlyKSkNCnsNCgkvLyBUb1RvOiBtb3ZlIHRoZSBmaWxlIG1hbmFnZW1lbnQgc3R1ZmYgaW50byBhIHNlcGFyYXQgYWN0aW9uL2NsYXNzL21ldGhvZA0KCS8vSGFuZGxlIEZpbGUgdXBsb2FkIGFuZCBkaXIgY3JlYXRpb24NCglpZiAoJHVzZWZtKQ0KCXsNCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ3VwbG9hZF9maWxlJ10pICYmICRwYXJhbXNbJ3VwbG9hZCddKQ0KCQl7DQoJCQlpZiAoaXNzZXQoJF9GSUxFU1skaWQuJ25ld2ZpbGUnXSkpDQoJCQl7DQoJCQkJLy9DSGVjayBmb3IgdXBsb2FkZWQgZmlsZQ0KCQkJCWlmICgkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10gIT0gJycpDQoJCQkJew0KCQkJCQkvLyBnZXQgZmlsZSB0eXBlDQoJCQkJCSRmaWxldHlwZSA9IGptZnBfdXRpbHM6OkdldEZpbGVUeXBlKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ3RtcF9uYW1lJ10sJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9taW1ldHlwZScsZmFsc2UpKTsNCgkJCQkJaWYoISRmaWxldHlwZSB8fCAkZmlsZXR5cGUgPT0gJ3RtcCcpIHsNCgkJCQkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VfbWltZXR5cGUnLGZhbHNlKSkNCgkJCQkJCXsNCgkJCQkJCQkkZmlsZXR5cGUgPSAkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWydmaWxlX3R5cGUnXTsNCgkJCQkJCX0NCgkJCQkJCWVsc2UNCgkJCQkJCXsNCgkJCQkJCQkkZmlsZXR5cGUgPSBqbWZwX3V0aWxzOjpHZXRGaWxlVHlwZSgkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10pOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCQ0KCQkJCQkvL2NoZWNrIGZpbGVuYW1lDQoJCQkJCWlmIChqbWZwX3V0aWxzOjpDb250YWluc0lsbGVnYWxDaGFycygkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10pKQ0KCQkJCQl7DQoJCQkJCQkkZXJyb3JtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2NvbnRhaW5zX2lsbGVnYWxjaGFycycsICRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSk7DQoJCQkJCX0NCgkJCQkJZWxzZSBpZiAoKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ3NpemUnXT4kY29uZmlnWydtYXhfdXBsb2FkX3NpemUnXSkNCgkJCQkJCXx8ICgkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWydlcnJvciddID09IDEpKQ0KCQkJCQl7DQoJCQkJCQkkZXJyb3JtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2ZpbGVfdG9vX2JpZycsICRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSk7DQoJCQkJCX0NCgkJCQkJZWxzZSBpZigkcGFyYW1zWydtZWRpYV90eXBlJ10gPT0gJ2ltYWdlJyAmJiAhaW5fYXJyYXkoc3RyX3JlcGxhY2UoJ2ltYWdlLycsJycsJGZpbGV0eXBlKSwkcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXSkpDQoJCQkJCXsNCgkJCQkJCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnbm9faW1hZ2VmaWxlJywkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10gLiAnICgnLiRmaWxldHlwZS4nKScpOw0KCQkJCQl9DQoJCQkJCWVsc2UgaWYoJHBhcmFtc1snbWVkaWFfdHlwZSddICE9ICdpbWFnZScgJiYgIWVtcHR5KCRwYXJhbXNbJ2ZpbGVfZXh0ZW5zaW9ucyddKSAmJiAhaW5fYXJyYXkoc3RydG9sb3dlcihzdWJzdHIoJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddLCBzdHJycG9zKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSwgJy4nKSArIDEpKSwkcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXSkpDQoJCQkJCXsNCgkJCQkJCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnZmlsZXR5cGVfbm90YWxsb3dlZCcsICRmaWxldHlwZSk7DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQkkZmlsZW5hbWUgPSBqbWZwX3V0aWxzOjpDbGVhblBhdGgoJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddLCBmYWxzZSk7DQoJCQkJCQlpZihzdGFydHN3aXRoKCRmaWxlbmFtZSwgJ3RodW1iXycpICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aHVtYl91cGxvYWRfYWN0aW9uJykpDQoJCQkJCQl7DQoJCQkJCQkJJGZpbGVuYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RodW1iX3ByZWZpeF9yZXBsYWNlbWVudCcpIC4gc3Vic3RyKCRmaWxlbmFtZSwgc3RybGVuKCd0aHVtYl8nKSk7DQoJCQkJCQl9DQoJCQkJCQkkZmlsZW5hbWUgPSAkY3VycmVudF9kaXIuJGZpbGVuYW1lOw0KCQkJCQkJDQoJCQkJCQkkcmVzaXplID0gJHBhcmFtc1snZm9yY2Vfc2NhbGluZyddOw0KCQkJCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc2l6ZV9vbiddKSkNCgkJCQkJCXsNCgkJCQkJCQkkcmVzaXplID0gJHBhcmFtc1sncmVzaXplX29uJ107DQoJCQkJCQl9DQoJCQkJCQlpZiAoJHJlc2l6ZSkNCgkJCQkJCXsNCgkJCQkJCQkkd2lkdGggPSAkcGFyYW1zWydzY2FsaW5nX3dpZHRoJ107DQoJCQkJCQkJaWYoaXNzZXQoJHBhcmFtc1sncmVzaXplX3gnXSkpDQoJCQkJCQkJew0KCQkJCQkJCQkkd2lkdGggPSAkcGFyYW1zWydyZXNpemVfeCddOw0KCQkJCQkJCX0NCgkJCQkJCQkkaGVpZ2h0ID0gJHBhcmFtc1snc2NhbGluZ19oZWlnaHQnXTsNCgkJCQkJCQlpZihpc3NldCgkcGFyYW1zWydyZXNpemVfeSddKSkNCgkJCQkJCQl7DQoJCQkJCQkJCSRoZWlnaHQgPSAkcGFyYW1zWydyZXNpemVfeSddOw0KCQkJCQkJCX0NCgkJCQkJCQkka2VlcF9hc3BlY3RyYXRpbyA9ICRwYXJhbXNbJ2tlZXBfYXNwZWN0X3JhdGlvJ107DQoJCQkJCQkJaWYoaXNzZXQoJHBhcmFtc1sna2VlcF9hc3BlY3RyYXRpbyddKSkNCgkJCQkJCQl7DQoJCQkJCQkJCSRrZWVwX2FzcGVjdHJhdGlvID0gJHBhcmFtc1sna2VlcF9hc3BlY3RyYXRpbyddOw0KCQkJCQkJCX0NCgkJCQkJCQlpZiAoam1mcF91dGlsczo6SGFuZGxlRmlsZVJlc2l6aW5nKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ3RtcF9uYW1lJ10sICRmaWxlbmFtZSwgJHdpZHRoLCAkaGVpZ2h0LCAka2VlcF9hc3BlY3RyYXRpbywgKCRwYXJhbXNbJ2FsbG93X3Vwc2NhbGluZyddICYmICRwYXJhbXNbJ2ZvcmNlX3Vwc2NhbGluZyddKSwgMTAwLCBmYWxzZSkpDQoJCQkJCQkJew0KCQkJCQkJCQlpZiAoJHBhcmFtc1snY3JlYXRlX3RodW1icyddKQ0KCQkJCQkJCQl7DQoJCQkJCQkJCQlqbWZwX3V0aWxzOjpDcmVhdGVUaHVtYm5haWwoJGZpbGVuYW1lKTsNCgkJCQkJCQkJCSMkdGh1bWJuYW1lID0gJGN1cnJlbnRfZGlyLiJ0aHVtYl8iLmptZnBfdXRpbHM6OkNsZWFuUGF0aCgkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10sIGZhbHNlKTsNCgkJCQkJCQkJCSNqbWZwX3V0aWxzOjpIYW5kbGVGaWxlUmVzaXppbmcoJGZpbGVuYW1lLCR0aHVtYm5hbWUsZ2V0X3NpdGVfcHJlZmVyZW5jZSgndGh1bWJuYWlsX3dpZHRoJyw5NiksZ2V0X3NpdGVfcHJlZmVyZW5jZSgndGh1bWJuYWlsX2hlaWdodCcsOTYpLHRydWUsZmFsc2UsNjAsZmFsc2UpOw0KCQkJCQkJCQl9DQoJCQkJCQkJCSRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2ZpbGVfdXBsb2FkZWQnLCAkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10pOw0KCQkJCQkJCQkkdmFsdWUgPSBqbWZwX3V0aWxzOjpDbGVhblBhdGgoJGRpci4nLycuJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddLGZhbHNlKTsNCgkJCQkJCQl9DQoJCQkJCQkJZWxzZQ0KCQkJCQkJCXsNCgkJCQkJCQkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5MYW5nKCd1cGxvYWRfZmFpbGVkJywgJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJaWYgKGNtc19tb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsndG1wX25hbWUnXSwgJGZpbGVuYW1lKSkNCgkJCQkJCQl7DQoJCQkJCQkJCWlmICgkcGFyYW1zWydjcmVhdGVfdGh1bWJzJ10pDQoJCQkJCQkJCXsNCgkJCQkJCQkJCWptZnBfdXRpbHM6OkNyZWF0ZVRodW1ibmFpbCgkZmlsZW5hbWUpOw0KCQkJCQkJCQkJIyR0aHVtYm5hbWUgPSAkY3VycmVudF9kaXIuInRodW1iXyIuam1mcF91dGlsczo6Q2xlYW5QYXRoKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSxmYWxzZSk7DQoJCQkJCQkJCQkjam1mcF91dGlsczo6SGFuZGxlRmlsZVJlc2l6aW5nKCRmaWxlbmFtZSwkdGh1bWJuYW1lLGdldF9zaXRlX3ByZWZlcmVuY2UoJ3RodW1ibmFpbF93aWR0aCcsOTYpLGdldF9zaXRlX3ByZWZlcmVuY2UoJ3RodW1ibmFpbF9oZWlnaHQnLDk2KSx0cnVlLGZhbHNlLDYwLGZhbHNlKTsNCgkJCQkJCQkJfQ0KCQkJCQkJCQkkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdmaWxlX3VwbG9hZGVkJywkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10pOw0KCQkJCQkJCQkkdmFsdWUgPSBqbWZwX3V0aWxzOjpDbGVhblBhdGgoJGRpci4nLycuJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddLGZhbHNlKTsNCgkJCQkJCQl9DQoJCQkJCQkJZWxzZQ0KCQkJCQkJCXsNCgkJCQkJCQkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5MYW5nKCd1cGxvYWRfZmFpbGVkJywkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10pOw0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkZXJyb3JtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ25vX2ZpbGVfdXBsb2FkZWQnKTsNCgkJCQl9DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJLy9UaGlzIHNob3VsZG4ndCBoYXBwZW4NCgkJCQkkZXJyb3JtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ25vX2ZpbGVfdXBsb2FkZWQnKTsNCgkJCX0NCgkJfQ0KCQkNCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2NyZWF0ZV9kaXInXSkgJiYgJHBhcmFtc1snY3JlYXRlX2RpcnMnXSkNCgkJew0KCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ25ld2RpciddKSAmJiAkcGFyYW1zWyduZXdkaXInXSE9JycpDQoJCQl7DQoJCQkJJG5ld19kaXIgPSBqbWZwX3V0aWxzOjpDbGVhblBhdGgoJHBhcmFtc1snbmV3ZGlyJ10sZmFsc2UpOw0KCQkJCWlmICghaXNfZGlyKCRjdXJyZW50X2RpciAuICRuZXdfZGlyKSkNCgkJCQl7DQoJCQkJCWlmIChAbWtkaXIoJGN1cnJlbnRfZGlyIC4gJG5ld19kaXIsMDc1NSwkdGhpcy0+X2lzQWRtaW4pKQ0KCQkJCQl7DQoJCQkJCQkkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdkaXJfY3JlYXRlZCcsIHN0cl9yZXBsYWNlKCRjb25maWdbJ3Jvb3RfcGF0aCddLCcnLCAkY3VycmVudF9kaXIgLiAkbmV3X2RpcikpOw0KCQkJCQl9DQoJCQkJCWVsc2UNCgkJCQkJew0KCQkJCQkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdjcmVhdGVfZGlyX2ZhaWxlZCcsIHN0cl9yZXBsYWNlKCRjb25maWdbJ3Jvb3RfcGF0aCddLCcnLCAkY3VycmVudF9kaXIgLiAkbmV3X2RpcikpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnZGlyX2V4aXN0cycsIHN0cl9yZXBsYWNlKCRjb25maWdbJ3Jvb3RfcGF0aCddLCcnLCAkY3VycmVudF9kaXIgLiAkbmV3X2RpcikpOw0KCQkJCX0NCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkZXJyb3JtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ25vX2Rpcm5hbWUnKTsNCgkJCX0NCgkJfQ0KCQlpZiAoaXNzZXQoJHBhcmFtc1snZGVsZXRlZmlsZW5hbWUnXSkgJiYgJHBhcmFtc1snZGVsZXRlJ10pDQoJCXsNCgkJCSRmaWxlbmFtZSA9IGptZnBfdXRpbHM6OkNsZWFuUGF0aChiYXNlNjRfZGVjb2RlKCRwYXJhbXNbJ2RlbGV0ZWZpbGVuYW1lJ10pLGZhbHNlKTsNCgkJCWlmIChAdW5saW5rKCRjdXJyZW50X2Rpci4kZmlsZW5hbWUpKQ0KCQkJew0KCQkJCS8vQHVubGluaygkY3VycmVudF9kaXIuJ3RodW1iXycuJGZpbGVuYW1lKTsNCgkJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sncHJldmlld3NfcGF0aCddICwgJ0pNRmlsZVBpY2tlclRodW1icycgLCAndGh1bWJfJyAuIG11bmdlX3N0cmluZ190b191cmwoc3RyX3JlcGxhY2UoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sICcnLCAkY3VycmVudF9kaXIpKSAuICdfJyAuICRmaWxlbmFtZSkpOw0KCQkJCSRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2ZpbGVfZGVsZXRlZCcsc3RyX3JlcGxhY2UoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwnJywkY3VycmVudF91cmwuJGZpbGVuYW1lKSk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdkZWxldGVfZmlsZV9mYWlsZWQnLCBzdHJfcmVwbGFjZSgkY29uZmlnWyd1cGxvYWRzX3VybCddLCcnLCRjdXJyZW50X3VybC4kZmlsZW5hbWUpKTsNCgkJCX0NCgkJfQ0KCQlpZiAoaXNzZXQoJHBhcmFtc1snZGVsZXRlc3ViZGlyJ10pICYmICRwYXJhbXNbJ2RlbGV0ZSddKQ0KCQl7DQoJCQkkZmlsZW5hbWUgPSBqbWZwX3V0aWxzOjpDbGVhblBhdGgoYmFzZTY0X2RlY29kZSgkcGFyYW1zWydkZWxldGVzdWJkaXInXSksZmFsc2UpOw0KCQkJaWYgKEBybWRpcigkY3VycmVudF9kaXIuJGZpbGVuYW1lKSkNCgkJCXsNCgkJCQkkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdkaXJfZGVsZXRlZCcsIHN0cl9yZXBsYWNlKCRjb25maWdbJ3VwbG9hZHNfdXJsJ10sJycsJGN1cnJlbnRfdXJsLiRmaWxlbmFtZSkpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnZGVsZXRlX2Rpcl9mYWlsZWQnLCBzdHJfcmVwbGFjZSgkY29uZmlnWyd1cGxvYWRzX3VybCddLCcnLCRjdXJyZW50X3VybC4kZmlsZW5hbWUpKTsNCgkJCX0NCgkJfQ0KCQkvLy0tLQ0KCX0NCgkkZmlsZWNvdW50ID0gMDsNCgkkZGlyY291bnQgPSAwOw0KCQ0KCSRmaWxlcyA9JiAkdGhpcy0+R2V0SW5wdXRGaWxlcygkaWQsJG5hbWUsJGN1cnJlbnRfZGlyLCAhJHBhcmFtc1snc2hvd19zdWJkaXJzJ10pOw0KCWlmKCFjb3VudCgkZmlsZXMpICYmICRkaXIgPT0gJycgJiYgISRwYXJhbXNbJ3Nob3dfc3ViZGlycyddKQ0KCXsNCgkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdkaXJfZW1wdHknKTsNCgl9DQoJDQoJZm9yZWFjaCgkZmlsZXMgYXMgJGs9PiRmaWxlKQ0KCXsNCgkJaWYgKCRmaWxlLT5pc19kaXIpDQoJCXsNCgkJCS8qKiBAdG9kbzogY2hlY2sgaWYgdGhpcyBpcyBuZWVkZWQgKi8NCgkJCWlmICghJHBhcmFtc1snc2hvd19zdWJkaXJzJ10pDQoJCQl7DQoJCQkJdW5zZXQoJGZpbGVzWyRrXSk7DQoJCQkJcmVzZXQoJGZpbGVzKTsNCgkJCQljb250aW51ZTsNCgkJCX0NCgkJCSRmaWxlc1ska10tPmZpbGV1cmwgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywNCgkJCQkkdGhpcy0+Q3JlYXRlTGluaygNCgkJCQkJJGlkLA0KCQkJCQknZmlsZUJyb3dzZXInLA0KCQkJCQkkcmV0dXJuaWQsDQoJCQkJCSdbJyAuICRmaWxlLT5iYXNlbmFtZSAuICddJywNCgkJCQkJYXJyYXkoJ2RpcicgPT4gJGRpciAuICcvJyAuICRmaWxlLT5iYXNlbmFtZSwgJ25hbWUnID0+ICRuYW1lKSwNCgkJCQkJJycsDQoJCQkJCXRydWUpKTsNCgkJCQ0KCQkJJGZpbGVzWyRrXS0+ZmlsZWxpbmsgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywNCgkJCQkkdGhpcy0+Q3JlYXRlTGluaygNCgkJCQkJJGlkLA0KCQkJCQknZmlsZUJyb3dzZXInLA0KCQkJCQkkcmV0dXJuaWQsDQoJCQkJCSdbJyAuICRmaWxlLT5iYXNlbmFtZSAuICddJywNCgkJCQkJYXJyYXkoJ2RpcicgPT4gJGRpciAuICcvJyAuICRmaWxlLT5iYXNlbmFtZSwgJ25hbWUnID0+ICRuYW1lKSkpOw0KCQkJDQoJCQlpZiAoam1mcF91dGlsczo6SXNEaXJFbXB0eSgkY3VycmVudF9kaXIuJGZpbGUtPmJhc2VuYW1lKSAmJiAoJHVzZWZtICYmICRwYXJhbXNbJ2RlbGV0ZSddKSkNCgkJCXsNCgkJCQkkZmlsZXNbJGtdLT5jb25maXJtZGVsZXRlID0gJHRoaXMtPmxhbmcoJ2NvbmZpcm1fZGVsZXRlX2RpcicsJGZpbGUtPmJhc2VuYW1lKTsNCgkJCQkkZmlsZXNbJGtdLT5kZWxldGVsaW5rID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsDQoJCQkJCSR0aGlzLT5DcmVhdGVMaW5rKA0KCQkJCQkJJGlkLA0KCQkJCQkJJ2RlbGV0ZScsDQoJCQkJCQkkcmV0dXJuaWQsDQoJCQkJCQlqbWZwX3V0aWxzOjpHZXRBY3Rpb25JY29uKCdkZWxldGUnKSwNCgkJCQkJCWFycmF5KCdkaXInID0+ICRkaXIsICduYW1lJyA9PiAkbmFtZSwgJ2RlbGV0ZXN1YmRpcicgPT4gYmFzZTY0X2VuY29kZSgkZmlsZS0+YmFzZW5hbWUpKSwNCgkJCQkJCSRmaWxlc1ska10tPmNvbmZpcm1kZWxldGUgPSAkdGhpcy0+bGFuZygnY29uZmlybV9kZWxldGVfZGlyJywkZmlsZS0+YmFzZW5hbWUpKSk7DQoJCQkJDQoJCQkJJGZpbGVzWyRrXS0+ZGVsZXRldXJsID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsDQoJCQkJCSR0aGlzLT5DcmVhdGVMaW5rKA0KCQkJCQkJJGlkLA0KCQkJCQkJJ2RlbGV0ZScsDQoJCQkJCQkkcmV0dXJuaWQsDQoJCQkJCQlqbWZwX3V0aWxzOjpHZXRBY3Rpb25JY29uKCdkZWxldGUnKSwNCgkJCQkJCWFycmF5KCdkaXInID0+ICRkaXIsICduYW1lJyA9PiAkbmFtZSwgJ2RlbGV0ZXN1YmRpcicgPT4gYmFzZTY0X2VuY29kZSgkZmlsZS0+YmFzZW5hbWUpKSwNCgkJCQkJCScnLA0KCQkJCQkJdHJ1ZSkpOw0KCQkJfQ0KCQkJJGRpcmNvdW50Kys7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlpZiAoJHVzZWZtICYmICRwYXJhbXNbJ2RlbGV0ZSddKQ0KCQkJew0KCQkJCSRmaWxlc1ska10tPmZpbGVsaW5rID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJGZpbGUtPmZ1bGx1cmwpOyAvLyA/Pz8NCgkJCQkNCgkJCQkkZmlsZXNbJGtdLT5jb25maXJtZGVsZXRlID0gJHRoaXMtPmxhbmcoJ2NvbmZpcm1fZGVsZXRlX2ZpbGUnLCRmaWxlLT5iYXNlbmFtZSk7DQoJCQkJJGZpbGVzWyRrXS0+ZGVsZXRldXJsID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsDQoJCQkJCSR0aGlzLT5DcmVhdGVMaW5rKA0KCQkJCQkJJGlkLA0KCQkJCQkJJ2RlbGV0ZScsDQoJCQkJCQkkcmV0dXJuaWQsDQoJCQkJCQlqbWZwX3V0aWxzOjpHZXRBY3Rpb25JY29uKCdkZWxldGUnKSwNCgkJCQkJCWFycmF5KCdkaXInID0+ICRkaXIsICduYW1lJyA9PiAkbmFtZSwgJ2RlbGV0ZWZpbGVuYW1lJyA9PiBiYXNlNjRfZW5jb2RlKCRmaWxlLT5iYXNlbmFtZSkpLA0KCQkJCQkJJycsDQoJCQkJCQl0cnVlKSk7DQoJCQkJDQoJCQkJJGZpbGVzWyRrXS0+ZGVsZXRlbGluayA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLA0KCQkJCQkkdGhpcy0+Q3JlYXRlTGluaygNCgkJCQkJCSRpZCwNCgkJCQkJCSdkZWxldGUnLA0KCQkJCQkJJHJldHVybmlkLA0KCQkJCQkJam1mcF91dGlsczo6R2V0QWN0aW9uSWNvbignZGVsZXRlJyksDQoJCQkJCQlhcnJheSgnZGlyJyA9PiAkZGlyLCAnbmFtZScgPT4gJG5hbWUsICdkZWxldGVmaWxlbmFtZScgPT4gYmFzZTY0X2VuY29kZSgkZmlsZS0+YmFzZW5hbWUpKSwNCgkJCQkJCSRmaWxlc1ska10tPmNvbmZpcm1kZWxldGUpKTsNCgkJCQkNCgkJCX0NCgkJCQ0KCQkJJGkgICAgPSAwOw0KCQkJJHVuaXQgPSAnIEInOw0KCQkJd2hpbGUoJGZpbGVzWyRrXS0+ZmlsZXNpemUgPiAxMDI0KQ0KCQkJew0KCQkJCSRpKys7DQoJCQkJJGZpbGVzWyRrXS0+ZmlsZXNpemUgPSAkZmlsZXNbJGtdLT5maWxlc2l6ZS8xMDI0Ow0KCQkJfQ0KCQkJc3dpdGNoKCRpKQ0KCQkJew0KCQkJCWNhc2UgJzEnOiAkdW5pdCA9ICcgS0InOyBicmVhazsNCgkJCQljYXNlICcyJzogJHVuaXQgPSAnIE1CJzsgYnJlYWs7DQoJCQkJY2FzZSAnMyc6ICR1bml0ID0gJyBUQic7IGJyZWFrOw0KCQkJfQ0KCQkJJGZpbGVzWyRrXS0+ZmlsZXNpemUgPSBudW1iZXJfZm9ybWF0KCRmaWxlc1ska10tPmZpbGVzaXplLCAoJGk+MD8yOjApLCAkdGhpcy0+bGFuZygnZGVjaW1hbF9kZWxpbWl0ZXInKSwgJHRoaXMtPmxhbmcoJ3Rob3VzYW5kX2RlbGltaXRlcicpKTsNCgkJCSRmaWxlc1ska10tPmZpbGVzaXplID0gJGZpbGVzWyRrXS0+ZmlsZXNpemUgLiAkdW5pdDsNCgkJCSRmaWxlY291bnQrKzsNCgkJfQ0KCX0NCgkNCglpZiAodHJpbSgkZGlyLCAnLi8nKSAhPSAnJyAmJiAkcGFyYW1zWydzaG93X3N1YmRpcnMnXSkNCgl7DQoJCSRwYXJlbnRfZGlyICAgICAgICAgICAgICAgPSBuZXcgc3RkQ2xhc3MoKTsNCgkJJHBhcmVudF9kaXItPmlzX2RpciAgICAgICA9IHRydWU7DQoJCSRwYXJlbnRfZGlyLT5maWxlaWNvbiAgICAgPSBqbWZwX3V0aWxzOjpHZXRGaWxlSWNvbignJyx0cnVlKTsNCgkJJHBhcmVudF9kaXItPmlkICAgICAgICAgICA9IG11bmdlX3N0cmluZ190b191cmwoZGlybmFtZSgkZGlyKSk7DQoJCSRwYXJlbnRfZGlyLT5yZWx1cmwgICAgICAgPSB0cmltKGRpcm5hbWUoc3RyX3JlcGxhY2UoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwnJywkY3VycmVudF91cmwpKSwnLycpOw0KCQkkcGFyZW50X2Rpci0+bGFzdF9tb2RpZmVkID0gJyc7DQoJCSRwYXJlbnRfZGlyLT5maWxlbmFtZSAgICAgPSAnLi4nOw0KCQkkcGFyZW50X2Rpci0+YmFzZW5hbWUgICAgID0gJy4uJzsNCgkJJHBhcmVudF9kaXItPmZpbGV1cmwgICAgID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsDQoJCQkkdGhpcy0+Q3JlYXRlTGluaygNCgkJCQkkaWQsDQoJCQkJJ2ZpbGVCcm93c2VyJywNCgkJCQkkcmV0dXJuaWQsJ1suLl0nLA0KCQkJCWFycmF5KCdkaXInID0+IGRpcm5hbWUoJGRpciksICduYW1lJyA9PiAkbmFtZSksDQoJCQkJJycsDQoJCQkJdHJ1ZSkpOw0KCQkNCgkJJHBhcmVudF9kaXItPmZpbGVsaW5rICAgICA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLA0KCQkJJHRoaXMtPkNyZWF0ZUxpbmsoDQoJCQkJJGlkLA0KCQkJCSdmaWxlQnJvd3NlcicsDQoJCQkJJHJldHVybmlkLCdbLi5dJywNCgkJCQlhcnJheSgnZGlyJyA9PiBkaXJuYW1lKCRkaXIpLCAnbmFtZScgPT4gJG5hbWUpKSk7DQoJCQ0KCQlhcnJheV91bnNoaWZ0KCRmaWxlcywgJHBhcmVudF9kaXIpOw0KCX0NCgkNCgkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfdGh1bWJfd2lkdGgnLCBnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0aHVtYm5haWxfd2lkdGgnLDk2KSk7DQoJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3RodW1iX2hlaWdodCcsIGdldF9zaXRlX3ByZWZlcmVuY2UoJ3RodW1ibmFpbF9oZWlnaHQnLCdhdXRvJykpOw0KCSRzbWFydHktPmFzc2lnbignam1mcF9maWxlc2l6ZV90ZXh0JywgJHRoaXMtPkxhbmcoJ2ZpbGVfc2l6ZScpKTsNCgkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfaW1hZ2VzaXplX3RleHQnLCAkdGhpcy0+TGFuZygnaW1hZ2Vfc2l6ZScpKTsNCgkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfZmlsZXMnLCAkZmlsZXMpOw0KCQ0KCWlmKCR0aGlzLT5faXNBZG1pbiB8fCAkcGFyYW1zWydzaG93X3N1YmRpcnMnXSkNCgl7DQoJCSRfZGlyID0gJyc7DQoJCSRicmVhZGNydW1icyA9IGFycmF5KCk7DQoJCWZvcmVhY2goam1mcF91dGlsczo6Q2xlYW5BcnJheShleHBsb2RlKCcvJywgJGRpcikpIGFzICRrID0+ICR2KQ0KCQl7DQoJCQkkX2RpciAuPSAkdjsNCgkJCWlmKHRyaW0oJGRpciwgJy4vJykgIT0gJycgJiYgJF9kaXIgIT0gJHBhcmFtc1snc3RhcnRfZGlyJ10pIHsNCgkJCQkkb25lZGlyICAgICAgICAgICA9IG5ldyBzdGRDbGFzcygpOw0KCQkJCSRvbmVkaXItPmZpbGVuYW1lID0gJHY7DQoJCQkJJG9uZWRpci0+aWQgICAgICAgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKHRyaW0oJF9kaXIsJy8gJykpOw0KCQkJCSRvbmVkaXItPmZpbGV1cmwgID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsDQoJCQkJCSR0aGlzLT5DcmVhdGVMaW5rKA0KCQkJCQkJJGlkLA0KCQkJCQkJJ2ZpbGVCcm93c2VyJywNCgkJCQkJCSRyZXR1cm5pZCwNCgkJCQkJCSR2LA0KCQkJCQkJYXJyYXkoJ2RpcicgPT4gdHJpbSgkX2RpciwnLyAnKSwgJ25hbWUnID0+ICRuYW1lKSwNCgkJCQkJCScnLA0KCQkJCQkJdHJ1ZSkpOw0KCQkJCQ0KCQkJCSRvbmVkaXItPmZpbGVsaW5rID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsDQoJCQkJCSR0aGlzLT5DcmVhdGVMaW5rKA0KCQkJCQkJJGlkLA0KCQkJCQkJJ2ZpbGVCcm93c2VyJywNCgkJCQkJCSRyZXR1cm5pZCwNCgkJCQkJCSR2LA0KCQkJCQkJYXJyYXkoJ2RpcicgPT4gdHJpbSgkX2RpciwnLyAnKSwgJ25hbWUnID0+ICRuYW1lKSkpOw0KCQkJCQ0KCQkJCSRicmVhZGNydW1ic1tdICAgID0gJG9uZWRpcjsNCgkJCX0NCgkJCSRfZGlyIC49ICcvJzsNCgkJfQ0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfYnJlYWRjcnVtYnMnLCAkYnJlYWRjcnVtYnMpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfYnJlYWRjcnVtYnMnLCAkYnJlYWRjcnVtYnMpOw0KCQkkc3RhcnRfdXJsID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsDQoJCQkkdGhpcy0+Q3JlYXRlTGluaygNCgkJCQkkaWQsDQoJCQkJJ2ZpbGVCcm93c2VyJywNCgkJCQkkcmV0dXJuaWQsDQoJCQkJJHRoaXMtPmxhbmcoJ3N0YXJ0ZGlyJyksDQoJCQkJYXJyYXkoJ2RpcicgPT4gJHBhcmFtc1snc3RhcnRfZGlyJ10sICduYW1lJyA9PiAkbmFtZSksDQoJCQkJJycsDQoJCQkJdHJ1ZSkpOw0KCQkNCgkJJHN0YXJ0X2xpbmsgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywNCgkJCSR0aGlzLT5DcmVhdGVMaW5rKA0KCQkJCSRpZCwNCgkJCQknZmlsZUJyb3dzZXInLA0KCQkJCSRyZXR1cm5pZCwNCgkJCQkkdGhpcy0+bGFuZygnc3RhcnRkaXInKSwNCgkJCQlhcnJheSgnZGlyJyA9PiAkcGFyYW1zWydzdGFydF9kaXInXSwgJ25hbWUnID0+ICRuYW1lKSkpOw0KCQkNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3N0YXJ0bGluaycsJHN0YXJ0X2xpbmspOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfc3RhcnR1cmwnLCRzdGFydF91cmwpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfc3RhcnRkaXJfdGV4dCcsICR0aGlzLT5sYW5nKCdzdGFydGRpcicpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3N0YXJ0ZGlyJywgJHBhcmFtc1snc3RhcnRfZGlyJ10pOw0KCX0NCgkNCgkvLyBpZiBmaWxlbWFuYWdlbWVudCBhbGxvd2VkDQoJaWYgKCR1c2VmbSAmJiAoJHBhcmFtc1sndXBsb2FkJ10gfHwgJHBhcmFtc1snY3JlYXRlX2RpcnMnXSkpDQoJew0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfZmlsZW9wZXJhdGlvbnNfdGV4dCcsICR0aGlzLT5MYW5nKCdmaWxlb3BlcmF0aW9ucycpKTsNCgkJaWYoISR1c2VyaWQgPSBnZXRfdXNlcmlkKGZhbHNlKSkNCgkJew0KCQkJJGZpbGVvcGVyYXRpb25zX2Rpc3BsYXkgPSAxOw0KCQkJaWYoaXNzZXQoJF9TRVNTSU9OWydHUEZQX2ZpbGVvcGVyYXRpb25zX2Rpc3BsYXknXSkpDQoJCQl7DQoJCQkJJGZpbGVvcGVyYXRpb25zX2Rpc3BsYXkgPSAkX1NFU1NJT05bJ0dQRlBfZmlsZW9wZXJhdGlvbnNfZGlzcGxheSddOw0KCQkJfQ0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJGZpbGVvcGVyYXRpb25zX2Rpc3BsYXkgPSBnZXRfcHJlZmVyZW5jZSgkdXNlcmlkLCdKTUZQX2ZpbGVvcGVyYXRpb25zX2Rpc3BsYXknLDEpOw0KCQl9DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9maWxlb3BlcmF0aW9uc19kaXNwbGF5JywgJGZpbGVvcGVyYXRpb25zX2Rpc3BsYXkpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfcHJlZnVybCcsc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsDQoJCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsDQoJCQkJJ3NhdmVQcmVmcycsDQoJCQkJJHJldHVybmlkLA0KCQkJCSR0aGlzLT5sYW5nKCd0b2dnbGVfZmlsZW9wZXJhdGlvbnMnKSwNCgkJCQlhcnJheSgndG9nZ2xlJz0+J2ZpbGVvcGVyYXRpb25zJywgJ2Rpc3BsYXknPT4nJyksDQoJCQkJJycsDQoJCQkJdHJ1ZSkpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3ByZWZsaW5rJyxzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywNCgkJCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwNCgkJCQknc2F2ZVByZWZzJywNCgkJCQkkcmV0dXJuaWQsDQoJCQkJJHRoaXMtPmxhbmcoJ3RvZ2dsZV9maWxlb3BlcmF0aW9ucycpLA0KCQkJCWFycmF5KCd0b2dnbGUnPT4nZmlsZW9wZXJhdGlvbnMnLCAnZGlzcGxheSc9PicnKSkpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3RvZ2dsZV9maWxlb3BlcmF0aW9uc190ZXh0JywgJHRoaXMtPmxhbmcoJ3RvZ2dsZV9maWxlb3BlcmF0aW9ucycpKTsNCgkJDQoJCSRzbWFydHktPmFzc2lnbignam1mcF9mb3Jtc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2ZpbGVCcm93c2VyJywNCgkJCSRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlLCAnJywNCgkJCWFycmF5KCduYW1lJz0+JG5hbWUsJ2Rpcic9PiRkaXIpKSk7DQoJCQ0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfZmlsZXVwbG9hZF90ZXh0JywgJHRoaXMtPkxhbmcoJ2ZpbGV1cGxvYWQnKSk7DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9maWxldXBsb2FkX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0RmlsZSgkaWQsICduZXdmaWxlJywgJycsIDIwKSk7DQoJCQ0KCQkvLyBUb0RvICEhIQ0KCQkkdGFyZ2V0aWQgPSAnSk1GUF9jb250ZW50JzsNCgkJJGNsb3NlX2Jyb3dzZXIgPSBmYWxzZTsNCgkJaWYoJHBhcmFtc1snbW9kZSddID09ICdkcm9wZG93bicpDQoJCXsNCgkJCSRjbG9zZV9icm93c2VyID0gdHJ1ZTsNCgkJCSR0YXJnZXRpZCA9ICRfaWQuJG5hbWUuJ19KTUZQX2Ryb3Bkb3duX3dyYXBwZXInOw0KCQl9DQoJCS8vIC0tLQ0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfZmlsZXVwbG9hZF9zdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICd1cGxvYWRfZmlsZScsICR0aGlzLT5MYW5nKCd1cGxvYWQnKSkpOw0KCQkNCgkJaWYoJHBhcmFtc1snc2hvd19zdWJkaXJzJ10gJiYgJHBhcmFtc1snY3JlYXRlX2RpcnMnXSkNCgkJew0KCQkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2NyZWF0ZWRpcl90ZXh0JywgJHRoaXMtPkxhbmcoJ2NyZWF0ZV9kaXInKSk7DQoJCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfY3JlYXRlZGlyX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduZXdkaXInLCAnJywgMjAsIDI1NSkpOw0KCQkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2NyZWF0ZWRpcl9zdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY3JlYXRlX2RpcicsICR0aGlzLT5MYW5nKCdjcmVhdGUnKSkpOw0KCQl9DQoJCWlmICgkcGFyYW1zWydhbGxvd19zY2FsaW5nJ10pDQoJCXsNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF9hbGxvd191cHNjYWxpbmcnLCAkcGFyYW1zWydhbGxvd191cHNjYWxpbmcnXSk7DQoJCQkNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF9yZXNpemVpbWFnZV90ZXh0JywgJHRoaXMtPkxhbmcoJ3Jlc2l6ZV9pbWFnZScpKTsNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF9yZXNpemVpbWFnZV9pbnB1dCcsDQoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwncmVzaXplX29uJywwKSAuDQoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAncmVzaXplX29uJywgJzEnLCRwYXJhbXNbJ2ZvcmNlX3NjYWxpbmcnXSkpOw0KCQkJDQoJCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfaW1hZ2VzaXplX3RleHQnLCAkdGhpcy0+TGFuZygnaW1hZ2Vfc2l6ZScpKTsNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF9pbWFnZXNpemVfeF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncmVzaXplX3gnLCAkcGFyYW1zWydzY2FsaW5nX3dpZHRoJ10sIDQsIDQpKTsNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF9pbWFnZXNpemVfeV9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncmVzaXplX3knLCAkcGFyYW1zWydzY2FsaW5nX2hlaWdodCddLCA0LCA0KSk7DQoJCQkNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF9rZWVwYXNwZWN0cmF0aW9fdGV4dCcsICR0aGlzLT5MYW5nKCdrZWVwX2FzcGVjdHJhdGlvJykpOw0KCQkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2tlZXBhc3BlY3RyYXRpb19pbnB1dCcsDQoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwna2VlcF9hc3BlY3RyYXRpbycsMCkuDQoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAna2VlcF9hc3BlY3RyYXRpbycsICcxJywxKSk7DQoJCQkNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF9mb3JjZXVwc2NhbGluZ190ZXh0JywgJHRoaXMtPkxhbmcoJ2ZvcmNlX3Vwc2NhbGluZycpKTsNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF9mb3JjZXVwc2NhbGluZ19pbnB1dCcsDQoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZm9yY2VfdXBzY2FsaW5nJywwKS4NCgkJCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmb3JjZV91cHNjYWxpbmcnLCAnMScsMCkpOw0KCQl9DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9mb3JtZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoJCQ0KCQkvKg0KCQkvLyBUb1RvOiBjcmVhdGUgYWN0aW9uIHVwbG9hZCBmb3IgbW9kZSBkcm9wZG93bg0KCQllbHNlDQoJCXsNCgkJCS8vIGlmIG1vZGUgZHJvcGRvd24gYW5kIHdlIHVwbG9hZGVkIGEgZmlsZSBqdXN0IHJlY3JlYXRlIHRoZSBkcm9wZG93bg0KCQkJJHJlc3VsdCA9ICcnOw0KCQkJaWYoaXNzZXQoJGVycm9ybWVzc2FnZSkpDQoJCQl7DQoJCQkJJHJlc3VsdCAuPSAnPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj48dWwgY2xhc3M9InBhZ2VlcnJvciI+PGxpPicuJGVycm9ybWVzc2FnZS4nPC9saT48L3VsPjwvZGl2Pic7DQoJCQl9DQoJCQlpZihpc3NldCgkbWVzc2FnZSkpDQoJCQl7DQoJCQkJJHJlc3VsdCAuPSAnPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPjxwIGNsYXNzPSJwYWdlbWVzc2FnZSI+Jy4kbWVzc2FnZS4nPC9wPjwvZGl2Pic7DQoJCQl9DQoJCQkkcmVzdWx0IC49IGptZnBfdXRpbHM6OkNyZWF0ZUZpbGVEcm9wZG93bigkX2lkLCRuYW1lLA0KCQkJCSRjdXJyZW50X2RpciwNCgkJCQkkdmFsdWUsDQoJCQkJJHBhcmFtc1snZXhjbHVkZV9wcmVmaXgnXSwNCgkJCQkkcGFyYW1zWydpbmNsdWRlX3ByZWZpeCddLA0KCQkJCSRwYXJhbXNbJ2V4Y2x1ZGVfc3VmaXgnXSwNCgkJCQkkcGFyYW1zWydpbmNsdWRlX3N1Zml4J10sDQoJCQkJJHBhcmFtc1snZmlsZV9leHRlbnNpb25zJ10sDQoJCQkJJHBhcmFtc1snbWVkaWFfdHlwZSddLA0KCQkJCSRwYXJhbXNbJ2FsbG93X25vbmUnXSwNCgkJCQkkcGFyYW1zWydhZGRfdHh0J10pOw0KCQl9DQoJCS8vLS0tDQoJCSovDQoJfQ0KfQ0KZWxzZQ0Kew0KCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnZGlyX25vdGZvdW5kJywkY3VycmVudF9kaXIpOw0KfQ0KDQppZigkdGhpcy0+X2lzQWRtaW4gfHwgJHBhcmFtc1snc2hvd19zdWJkaXJzJ10pDQp7DQoJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2N1cnJlbnRkaXJfdGV4dCcsICR0aGlzLT5MYW5nKCdjdXJyZW50ZGlyJykpOw0KCSRzbWFydHktPmFzc2lnbignam1mcF9jdXJyZW50ZGlyJywgJGRpcik7DQp9DQoNCiRzbWFydHktPmFzc2lnbignam1mcF9pZCcsICRfaWQpOw0KJHNtYXJ0eS0+YXNzaWduKCdqbWZwX21vZGUnLCAkcGFyYW1zWydtb2RlJ10pOw0KJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2RlbGV0ZScsICR1c2VmbSAmJiAkcGFyYW1zWydkZWxldGUnXSk7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfdGFyZ2V0aWQnLCAkX2lkLiRuYW1lKTsNCiRzbWFydHktPmFzc2lnbignam1mcF9pbnB1dGlkJywgJF9pZC4kbmFtZSk7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfY3NzaWQnLCAkX2lkLm11bmdlX3N0cmluZ190b191cmwoJG5hbWUpKTsNCiRzbWFydHktPmFzc2lnbignam1mcF9pc19hZG1pbicsICR0aGlzLT5faXNBZG1pbik7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfbWVkaWFfdHlwZScsICRwYXJhbXNbJ21lZGlhX3R5cGUnXSk7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfc2hvd19zdWJkaXJzJywgJHBhcmFtc1snc2hvd19zdWJkaXJzJ10pOw0KJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3VwbG9hZCcsICRwYXJhbXNbJ3VwbG9hZCddICYmICR1c2VmbSk7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfYWxsb3dfc2NhbGluZycsICRwYXJhbXNbJ2FsbG93X3NjYWxpbmcnXSk7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfY3JlYXRlX2RpcnMnLCAoJHVzZWZtICYmICRwYXJhbXNbJ3Nob3dfc3ViZGlycyddICYmICRwYXJhbXNbJ2NyZWF0ZV9kaXJzJ10gJiYgKCRwYXJhbXNbJ21vZGUnXSAhPSAnZHJvcGRvd24nKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3N1Y2Nlc3NfdGV4dCcsICR0aGlzLT5MYW5nKCdzdWNjZXNzJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2Vycm9yX3RleHQnLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfZGVsZXRlaWNvbicsIGptZnBfdXRpbHM6OkdldEFjdGlvbkljb24oJ2RlbGV0ZScpKTsNCiRzbWFydHktPmFzc2lnbignam1mcF9jb25maXJtX2RlbGV0ZV9kaXInLCAkdGhpcy0+bGFuZygnY29uZmlybV9kZWxldGVfZGlyJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2NvbmZpcm1fZGVsZXRlX2ZpbGUnLCAkdGhpcy0+bGFuZygnY29uZmlybV9kZWxldGVfZmlsZScpKTsNCg0KaWYoaXNzZXQoJGVycm9ybWVzc2FnZSkpDQp7DQoJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2Vycm9ybWVzc2FnZScsICRlcnJvcm1lc3NhZ2UpOw0KfQ0KaWYoaXNzZXQoJG1lc3NhZ2UpKQ0Kew0KCSRzbWFydHktPmFzc2lnbignam1mcF9tZXNzYWdlJywgJG1lc3NhZ2UpOw0KfQ0KDQokYWpheCA9IGlzc2V0KCRwYXJhbXNbJ2FqYXgnXSkgJiYgam1mcF91dGlsczo6SXNUcnVlKCRwYXJhbXNbJ2FqYXgnXSk7DQokeG1sICA9ICRhamF4ICYmIGlzc2V0KCRwYXJhbXNbJ3htbCddKSAmJiBqbWZwX3V0aWxzOjpJc1RydWUoJHBhcmFtc1sneG1sJ10pOw0KDQppZigkYWpheCkNCnsNCglAb2JfZW5kX2NsZWFuKCk7DQoJQG9iX3N0YXJ0KCk7DQoJaGVhZGVyKCJDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZSIpOw0KCWhlYWRlcigiQ2FjaGUtQ29udHJvbDogcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCIsIGZhbHNlKTsNCgloZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsNCglpZigkeG1sKQ0KCXsNCgkJaGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHQveG1sJyk7DQoJCWVjaG8gJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+JzsNCgkJZWNobyAnPHJlc3VsdD48IVtDREFUQVsnOw0KCX0NCgllbHNlDQoJew0KCQloZWFkZXIoJ0NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jyk7DQoJfQ0KfQ0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ZpbGVicm93c2VyLnRwbCcpOw0KDQppZigkYWpheCkNCnsNCglpZigkeG1sKQ0KCXsNCgkJZWNobyAnXV0+PC9yZXN1bHQ+JzsNCgl9DQoJQG9iX2VuZF9mbHVzaCgpOw0KCWV4aXQ7DQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.filepicker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNCBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojVmlzaXQgb3VyIGhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPcFVUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiNNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiNHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKI2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiNGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiMKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggIWNoZWNrX2xvZ2luKEZBTFNFKSApIGV4aXQ7IC8vIGFkbWluIG9ubHkuLi4uIGJ1dCBhbnkgYWRtaW4KCi8vJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOwovL2ZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokZmllbGQgPSB0cmltKGdldF9wYXJhbWV0ZXJfdmFsdWUoJF9HRVQsJ2ZpZWxkJykpOwokdHlwZSA9ICdhbnknOwokZmlsZW1hbmFnZXIgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0ZpbGVNYW5hZ2VyJyk7CmlmKCBpc3NldCgkX0dFVFsndHlwZSddKSApIHsKICAkdG1wID0gc3RydG9sb3dlcih0cmltKCRfR0VUWyd0eXBlJ10pKTsKICBpZiggJHRtcCA9PSAnaW1hZ2UnICkgJHR5cGUgPSAnaW1hZ2UnOwogIGlmKCAkdG1wID09ICdtZWRpYScgKSAkdHlwZSA9ICdtZWRpYSc7Cn0KCiRjd2QgPSBmaWxlbWFuYWdlcl91dGlsczo6Z2V0X2N3ZCgpOwppZiggaXNzZXQoJF9HRVRbJ3N1YmRpciddKSApIHsKICAvLyB0b2RvLCBtYWtlIHN1cmUgdGhpcyBjYW4ndCBnbyBhYm92ZSAvdXBsb2FkcwogICRjd2QgLj0gJy8nIC4gdHJpbSgkX0dFVFsnc3ViZGlyJ10pOwogIGZpbGVtYW5hZ2VyX3V0aWxzOjpzZXRfY3dkKCRjd2QpOwp9CiRjd2QgPSBmaWxlbWFuYWdlcl91dGlsczo6Z2V0X2N3ZCgpOwoKJHN0YXJ0dXJsID0gJGNvbmZpZy0+c21hcnRfcm9vdF91cmwoKS4nLycuJGN3ZDsKJHN0YXJ0ZGlyID0gZmlsZW1hbmFnZXJfdXRpbHM6OmpvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwkY3dkKTsKCiRpc19pbWFnZSA9IGZ1bmN0aW9uKCRmaWxlbmFtZSkgewogICRleHQgPSBzdHJ0b2xvd2VyKHN1YnN0cigkZmlsZW5hbWUsc3RycnBvcygkZmlsZW5hbWUsJy4nKSsxKSk7CiAgaWYoIGluX2FycmF5KCRleHQsYXJyYXkoJ2pwZycsJ2pwZWcnLCdibXAnLCd3Ym1wJywnZ2lmJywncG5nJywnd2VicCcpKSApIHJldHVybiBUUlVFOwogIHJldHVybiBGQUxTRTsKfTsKCiRpc19tZWRpYSA9IGZ1bmN0aW9uKCRmaWxlbmFtZSkgewogICRleHQgPSBzdHJ0b2xvd2VyKHN1YnN0cigkZmlsZW5hbWUsc3RycnBvcygkZmlsZW5hbWUsJy4nKSsxKSk7CiAgaWYoIGluX2FycmF5KCRleHQsYXJyYXkoJ3N3ZicsJ2RjcicsJ21vdicsJ3F0JywnbXBnJywnbXAzJywnbXA0Jywnb2dnJywnbXBlZycsJ3dtcCcsJ2F2aScsJ3dtdicsCgkJCSAgJ3dtJywnYXNmJywnYXN4Jywnd214Jywncm0nLCdyYScsJ3JhbScpKSApIHsKICAgIHJldHVybiBUUlVFOwogIH0KICByZXR1cm4gRkFMU0U7Cn07Cgokc29ydGZpbGVzID0gZnVuY3Rpb24oJGZpbGUxLCRmaWxlMikgewogIGlmICgkZmlsZTFbImlzZGlyIl0gJiYgISRmaWxlMlsiaXNkaXIiXSkgcmV0dXJuIC0xOwogIGlmICghJGZpbGUxWyJpc2RpciJdICYmICRmaWxlMlsiaXNkaXIiXSkgcmV0dXJuIDE7CiAgcmV0dXJuIHN0cm5hdGNhc2VjbXAoJGZpbGUxWyJuYW1lIl0sJGZpbGUyWyJuYW1lIl0pOwp9OwoKJGFjY2VwdF9maWxlID0gZnVuY3Rpb24oJHR5cGUsJGN3ZCwkcGF0aCwkZmlsZW5hbWUpIHVzZSAoJiRmaWxlbWFuYWdlciwmJGlzX2ltYWdlLCYkaXNfbWVkaWEpIHsKICBpZiggJGZpbGVuYW1lID09ICcuJyApIHJldHVybiBGQUxTRTsKICBpZiggJGZpbGVuYW1lID09ICcuLicgKSB7CiAgICBpZiggJGN3ZCA9PSBmaWxlbWFuYWdlcl91dGlsczo6Z2V0X2RlZmF1bHRfY3dkKCkgKSByZXR1cm4gRkFMU0U7CiAgICByZXR1cm4gVFJVRTsKICB9CiAgaWYoIChzdGFydHN3aXRoKCRmaWxlbmFtZSwnLicpIHx8IHN0YXJ0c3dpdGgoJGZpbGVuYW1lLCdfJykpICYmICEkZmlsZW1hbmFnZXItPkdldFByZWZlcmVuY2UoJ3Nob3doaWRkZW5maWxlcycpICkgcmV0dXJuIEZBTFNFOwogIGlmKCBpc19kaXIoY21zX2pvaW5fcGF0aCgkcGF0aCwkZmlsZW5hbWUpKSApIHJldHVybiBUUlVFOwoKICBzd2l0Y2goICR0eXBlICkgewogICAgY2FzZSAnaW1hZ2UnOgogICAgICBpZiggJGlzX2ltYWdlKCRmaWxlbmFtZSkgKSByZXR1cm4gVFJVRTsKICAgICAgcmV0dXJuIEZBTFNFOwoKICAgIGNhc2UgJ21lZGlhJzoKICAgICAgaWYoICRpc19tZWRpYSgkZmlsZW5hbWUpICkgcmV0dXJuIFRSVUU7CiAgICAgIHJldHVybiBGQUxTRTsKCiAgICBjYXNlICdmaWxlJzoKICAgIGNhc2UgJ2FueSc6CiAgICBkZWZhdWx0OgogICAgICByZXR1cm4gVFJVRTsKICB9Cn07CgovKgogKiBBIHF1aWNrIGNoZWNrIGZvciBhIGZpbGUgdHlwZSBiYXNlZCBvbiBleHRlbnNpb24KICogQFN0cmluZyAkZXh0CiAqLwpmdW5jdGlvbiBzZXRfZmlsZXR5cGUoJGV4dCkgewoKCSRleHQgPSBzdHJ0b2xvd2VyKCRleHQpOwoJJGZpbGV0eXBlID0gJ2ZpbGUnOyAvLyBkZWZhdWx0IHRvIGFsbCBmaWxlCgkkaW1nZXh0ID0gYXJyYXkoJ2pwZycsICdqcGVnJywgJ3BuZycsICdnaWYnLCAnYm1wJywgJ3RpZmYnLCAnc3ZnJywgJ3dibXAnLCAnd2VicCcpOyAvLyBpbWFnZXMKCSR2aWRlb2V4dCA9IGFycmF5KCdtb3YnLCAnbXBlZycsICdtcDQnLCAnYXZpJywgJ21wZycsJ3dtYScsICdmbHYnLCAnd2VibScsICd3bXYnLCAncXQnLCAnb2dnJyk7IC8vIHZpZGVvcwoJJGF1ZGlvZXh0ID0gYXJyYXkoJ21wMycsICdtNGEnLCAnYWMzJywgJ2FpZmYnLCAnbWlkJywgJ3dhdicpOyAvLyBhdWRpbwoJJGFyY2hpdmVleHQgPSBhcnJheSgnemlwJywgJ3JhcicsICdneicsICd0YXInLCAnaXNvJywgJ2RtZycpOyAvLyBhcmNoaXZlcwoKCWlmKGluX2FycmF5KCRleHQsICRpbWdleHQpKSB7CgkJJGZpbGV0eXBlID0gJ2ltYWdlJzsKCX0gZWxzZWlmKGluX2FycmF5KCRleHQsICR2aWRlb2V4dCkpIHsKCQkkZmlsZXR5cGUgPSAndmlkZW8nOwoJfSBlbHNlaWYoaW5fYXJyYXkoJGV4dCwgJGF1ZGlvZXh0KSkgewoJCSRmaWxldHlwZSA9ICdhdWRpbyc7Cgl9IGVsc2VpZihpbl9hcnJheSgkZXh0LCAkYXJjaGl2ZWV4dCkpIHsKCQkkZmlsZXR5cGUgPSAnYXJjaGl2ZSc7Cgl9CgoJcmV0dXJuICRmaWxldHlwZTsKfQoKCi8vCi8vIGdldCBvdXIgZmlsZSBsaXN0Ci8vCiRmaWxlcyA9IGFycmF5KCk7CiRkaCA9IGRpcigkc3RhcnRkaXIpOwp3aGlsZSggZmFsc2UgIT09ICgkZmlsZW5hbWUgPSAkZGgtPnJlYWQoKSkgKSB7CiAgaWYoICEkYWNjZXB0X2ZpbGUoICR0eXBlLCAkY3dkLCAkc3RhcnRkaXIsICRmaWxlbmFtZSApICkgY29udGludWU7CiAgJGZ1bGxuYW1lID0gY21zX2pvaW5fcGF0aCgkc3RhcnRkaXIsJGZpbGVuYW1lKTsKCiAgJGZpbGUgPSBhcnJheSgpOwogICRmaWxlWyduYW1lJ10gPSAkZmlsZW5hbWU7CiAgJGZpbGVbJ2Z1bGxwYXRoJ10gPSAkZnVsbG5hbWU7CiAgJGZpbGVbJ2Z1bGx1cmwnXSA9ICRzdGFydHVybC4nLycuJGZpbGVuYW1lOwogICRmaWxlWydpc2RpciddID0gaXNfZGlyKCRmdWxsbmFtZSk7CiAgJGZpbGVbJ2V4dCddID0gc3RydG9sb3dlcihzdWJzdHIoJGZpbGVuYW1lLHN0cnJwb3MoJGZpbGVuYW1lLCIuIikrMSkpOwogICRmaWxlWydpc19pbWFnZSddID0gJGlzX2ltYWdlKCRmaWxlbmFtZSk7CiAgJGZpbGVbJ2ljb24nXSA9ICRmaWxlbWFuYWdlci0+R2V0RmlsZUljb24oJy4nLiRmaWxlWydleHQnXSwkZmlsZVsnaXNkaXInXSk7CiAgJGZpbGVbJ2ZpbGV0eXBlJ10gPSBzZXRfZmlsZXR5cGUoJGZpbGVbJ2V4dCddKTsKICAkZmlsZVsnZGltZW5zaW9ucyddID0gJyc7CiAgaWYoICRmaWxlWydpc19pbWFnZSddICkgewogICAgJGZpbGVbJ3RodW1ibmFpbCddID0gam1mcF91dGlsczo6R2V0VGh1bWJuYWlsKCRmdWxsbmFtZSk7CiAgICAkaW1nc2l6ZSA9IEBnZXRpbWFnZXNpemUoJGZ1bGxuYW1lKTsKICAgIGlmKCAkaW1nc2l6ZSApICRmaWxlWydkaW1lbnNpb25zJ10gPSAkaW1nc2l6ZVswXS4nIHggJy4kaW1nc2l6ZVsxXTsKICB9CiAgJGluZm8gPSBAc3RhdCgkZnVsbG5hbWUpOwogICRmaWxlc2l6ZW5hbWUgPSBhcnJheSgiIEJ5dGVzIiwgIiBLQiIsICIgTUIiKTsKICBpZiggJGluZm8gJiYgJGluZm9bJ3NpemUnXSA+IDApIHsKICAJJGZpbGVbJ3NpemUnXSA9IHJvdW5kKCRpbmZvWydzaXplJ10vcG93KDEwMjQsICgkaSA9IGZsb29yKGxvZygkaW5mb1snc2l6ZSddLCAxMDI0KSkpKSwgMikgLiAkZmlsZXNpemVuYW1lWyRpXTsKICB9IGVsc2UgewogIAkkZmlsZVsnc2l6ZSddID0gbnVsbDsKICB9CiAgaWYoICRmaWxlWydpc2RpciddICkgewogICAgJHVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZmlsZXBpY2tlcicsJHJldHVybmlkKS4iJnNob3d0ZW1wbGF0ZT1mYWxzZSZzdWJkaXI9JGZpbGVuYW1lJnR5cGU9JHR5cGUmZmllbGQ9JGZpZWxkIjsKICAgICRmaWxlWydjaGRpcl91cmwnXSA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR1cmwpOwogIH0KICAkZmlsZXNbXSA9ICRmaWxlOwp9Ci8vIGRvbmUgdGhlIGxvb3AsIG5vdyBzb3J0CnVzb3J0KCRmaWxlcywkc29ydGZpbGVzKTsKCgokc21hcnR5LT5hc3NpZ24oJ3Nob3d0aHVtYm5haWxzJywoaW50KSRmaWxlbWFuYWdlci0+R2V0UHJlZmVyZW5jZSgnc2hvd3RodW1ibmFpbHMnKSk7CiRzbWFydHktPmFzc2lnbignc3RhcnRwYXRoJywkY3dkKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZCcsJGZpZWxkKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWxlcycsJGZpbGVzKTsKJHNtYXJ0eS0+YXNzaWduKCd0eXBlJywgJHR5cGUpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdmaWxlcGlja2VyLnRwbCcpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.reloadDropdown.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZighZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpIHx8ICFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7DQoNCmdsb2JhbCAkQ01TX0FETUlOX1BBR0U7DQokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoNCi8vaW5wdXQgbmFtZQ0KaWYoIWlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgfHwgJHBhcmFtc1snbmFtZSddPT0nJykNCnsNCglyZXR1cm47DQp9DQplbHNlDQp7DQoJJG5hbWUgPSBodG1sZW50aXRpZXModHJpbSgkcGFyYW1zWyduYW1lJ10pKTsNCn0NCmlmKCRpZCA9PSAnY250bnQwMScgJiYgaXNzZXQoJF9TRVNTSU9OWydKTUZQX2lkXycuJG5hbWVdKSkNCnsNCgkkaWQgPSAkX1NFU1NJT05bJ0pNRlBfaWRfJy4kbmFtZV07DQp9DQoNCmlmKCEkc2Vzc2lvbl9wYXJhbXMgPSYgJHRoaXMtPkdldElucHV0UGFyYW1zKCRpZCwkbmFtZSkpDQp7DQoJcmV0dXJuOw0KfQ0KDQokcGFyYW1zID0gYXJyYXlfbWVyZ2UoJHBhcmFtcywgJHNlc3Npb25fcGFyYW1zKTsNCg0KaWYoJHBhcmFtc1snbW9kZSddICE9ICdkcm9wZG93bicgfHwgJHBhcmFtc1snbmFtZSddICE9ICRuYW1lKQ0Kew0KCXJldHVybjsNCn0NCg0KLy8gY2hlY2sgcGVybWlzc2lvbg0KaWYoaXNzZXQoJENNU19BRE1JTl9QQUdFKSAmJiAkQ01TX0FETUlOX1BBR0UgPT0gMSkNCnsNCgljaGVja19sb2dpbigpOw0KCWlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgSk1GaWxlUGlja2VyJykpDQoJCXJldHVybjsNCgkkdXNlcm5hbWUgPSAkdGhpcy0+X3VzZXJuYW1lOw0KfQ0KZWxzZQ0Kew0KCWlmKCAhJGZldXNlcnMgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycgKSApDQoJew0KCQlyZXR1cm47DQoJfQ0KCWlmKCEkdXNlcmlkID0gJGZldXNlcnMtPkxvZ2dlZEluSWQoKSkNCgl7DQoJCXJldHVybjsNCgl9DQoJaWYoISRncm91cHMgPSAkZmV1c2Vycy0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoJHVzZXJpZCkpDQoJew0KCQlyZXR1cm47DQoJfQ0KCSRhY2Nlc3MgPSBmYWxzZTsNCglmb3JlYWNoKCRncm91cHMgYXMgJF9ncm91cCkNCgl7DQoJCWlmKGluX2FycmF5KCRfZ3JvdXBbJ2dyb3VwaWQnXSwkcGFyYW1zWydmZXVfYWNjZXNzJ10pKQ0KCQl7DQoJCQkkYWNjZXNzID0gdHJ1ZTsNCgkJCWJyZWFrOw0KCQl9DQoJfQ0KCWlmKCEkYWNjZXNzKQ0KCXsNCgkJcmV0dXJuOw0KCX0NCgkkdXNlcm5hbWUgPSAkZmV1c2Vycy0+R2V0VXNlck5hbWUoJHVzZXJpZCk7DQp9DQoNCi8vIG1vZHVsZSBpZA0KJF9pZCA9ICRpZDsNCmlmKCRwYXJhbXNbJ2lkJ10gPT0gJycpDQp7DQoJJF9pZCA9ICcnOw0KfQ0KDQokYWpheCA9IGlzc2V0KCRwYXJhbXNbJ2FqYXgnXSkgJiYgam1mcF91dGlsczo6SXNUcnVlKCRwYXJhbXNbJ2FqYXgnXSk7DQokeG1sICA9ICRhamF4ICYmIGlzc2V0KCRwYXJhbXNbJ3htbCddKSAmJiBqbWZwX3V0aWxzOjpJc1RydWUoJHBhcmFtc1sneG1sJ10pOw0KDQppZigkYWpheCkNCnsNCglAb2JfZW5kX2NsZWFuKCk7DQoJQG9iX3N0YXJ0KCk7DQoJaGVhZGVyKCJDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZSIpOw0KCWhlYWRlcigiQ2FjaGUtQ29udHJvbDogcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCIsIGZhbHNlKTsNCgloZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsNCglpZigkeG1sKQ0KCXsNCgkJaGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHQveG1sJyk7DQoJCWVjaG8gJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+JzsNCgkJZWNobyAnPHJlc3VsdD48IVtDREFUQVsnOw0KCX0NCgllbHNlDQoJew0KCQloZWFkZXIoJ0NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jyk7DQoJfQ0KfQ0KDQplY2hvIGptZnBfdXRpbHM6OkNyZWF0ZUZpbGVEcm9wZG93bigkX2lkLCAkbmFtZSwNCgkkcGFyYW1zWydzdGFydF9kaXInXSwNCglpc3NldCgkcGFyYW1zWyd2YWx1ZSddKSA/ICRwYXJhbXNbJ3ZhbHVlJ10gOiAnJywNCgkkcGFyYW1zWydleGNsdWRlX3ByZWZpeCddLA0KCSRwYXJhbXNbJ2luY2x1ZGVfcHJlZml4J10sDQoJJHBhcmFtc1snZXhjbHVkZV9zdWZpeCddLA0KCSRwYXJhbXNbJ2luY2x1ZGVfc3VmaXgnXSwNCgkkcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXSwNCgkkcGFyYW1zWydtZWRpYV90eXBlJ10sDQoJJHBhcmFtc1snYWxsb3dfbm9uZSddLA0KCSRwYXJhbXNbJ2FkZF90eHQnXSk7DQoNCmlmKCRhamF4KQ0Kew0KCWlmKCR4bWwpDQoJew0KCQllY2hvICddXT48L3Jlc3VsdD4nOw0KCX0NCglAb2JfZW5kX2ZsdXNoKCk7DQoJZXhpdDsNCn0NCj8+]]></data>
	</file>
	<file>
	  <filename>/action.savePrefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZighZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpIHx8ICFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgew0KCQ0KCWlmKGlzc2V0KCRwYXJhbXNbJ3RodW1iX3VwbG9hZF9hY3Rpb24nXSkpDQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aHVtYl91cGxvYWRfYWN0aW9uJywgJHBhcmFtc1sndGh1bWJfdXBsb2FkX2FjdGlvbiddKTsNCgkNCglpZihpc3NldCgkcGFyYW1zWyd0aHVtYl9wcmVmaXhfcmVwbGFjZW1lbnQnXSkpDQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aHVtYl9wcmVmaXhfcmVwbGFjZW1lbnQnLCAkcGFyYW1zWyd0aHVtYl9wcmVmaXhfcmVwbGFjZW1lbnQnXSk7DQoJDQoJaWYoaXNzZXQoJHBhcmFtc1sncmVzdHJpY3RfdXNlcnNfZGlyYWNjZXNzJ10pKQ0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVzdHJpY3RfdXNlcnNfZGlyYWNjZXNzJywgJHBhcmFtc1sncmVzdHJpY3RfdXNlcnNfZGlyYWNjZXNzJ10pOw0KCQ0KCWlmKGlzc2V0KCRwYXJhbXNbJ3Nob3dfZmlsZW1hbmFnZW1lbnQnXSkpDQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X2ZpbGVtYW5hZ2VtZW50JywgJHBhcmFtc1snc2hvd19maWxlbWFuYWdlbWVudCddKTsNCg0KCWlmKGlzc2V0KCRwYXJhbXNbJ3Nob3dfdGh1bWJmaWxlcyddKSkNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Nob3dfdGh1bWJmaWxlcycsICRwYXJhbXNbJ3Nob3dfdGh1bWJmaWxlcyddKTsNCg0KCWlmKGlzc2V0KCRwYXJhbXNbJ2FsbG93X3NjYWxpbmcnXSkpDQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd19zY2FsaW5nJywgJHBhcmFtc1snYWxsb3dfc2NhbGluZyddKTsNCg0KCWlmKGlzc2V0KCRwYXJhbXNbJ3NjYWxpbmdfd2lkdGgnXSkpDQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzY2FsaW5nX3dpZHRoJywgJHBhcmFtc1snc2NhbGluZ193aWR0aCddKTsNCg0KCWlmKGlzc2V0KCRwYXJhbXNbJ3NjYWxpbmdfaGVpZ2h0J10pKQ0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2NhbGluZ19oZWlnaHQnLCAkcGFyYW1zWydzY2FsaW5nX2hlaWdodCddKTsNCgkNCglpZihpc3NldCgkcGFyYW1zWydjcmVhdGVfdGh1bWJzJ10pKQ0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3JlYXRlX3RodW1icycsICRwYXJhbXNbJ2NyZWF0ZV90aHVtYnMnXSk7DQoJDQoJaWYoaXNzZXQoJHBhcmFtc1snYWxsb3dfdXBzY2FsaW5nJ10pKQ0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZm9yY2Vfc2NhbGluZycsICRwYXJhbXNbJ2ZvcmNlX3NjYWxpbmcnXSk7DQoJDQoJaWYoaXNzZXQoJHBhcmFtc1snZm9yY2Vfc2NhbGluZyddKSkNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X3Vwc2NhbGluZycsICRwYXJhbXNbJ2FsbG93X3Vwc2NhbGluZyddKTsNCgkNCglpZihpc3NldCgkcGFyYW1zWydkZWZhdWx0X2FkbWluX3RoZW1lJ10pKQ0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9hZG1pbl90aGVtZScsICRwYXJhbXNbJ2RlZmF1bHRfYWRtaW5fdGhlbWUnXSk7DQoJDQoJaWYoaXNzZXQoJHBhcmFtc1snZGVmYXVsdF9mcm9udGVuZF90aGVtZSddKSkNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfZnJvbnRlbmRfdGhlbWUnLCAkcGFyYW1zWydkZWZhdWx0X2Zyb250ZW5kX3RoZW1lJ10pOw0KCQ0KCWlmKGlzc2V0KCRwYXJhbXNbJ3VzZV9taW1ldHlwZSddKSkNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9taW1ldHlwZScsICRwYXJhbXNbJ3VzZV9taW1ldHlwZSddKTsNCgkNCglpZihpc3NldCgkcGFyYW1zWydmZXVfYWNjZXNzJ10pKSB7DQoJCWlmKGlzX2FycmF5KCRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSkpDQoJCQkkcGFyYW1zWydmZXVfYWNjZXNzJ10gPSBpbXBsb2RlKCcsJywkcGFyYW1zWydmZXVfYWNjZXNzJ10pOw0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmV1X2FjY2VzcycsICRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSk7DQoJfQ0KCQ0KfQ0KDQppZihpc3NldCgkcGFyYW1zWyd0b2dnbGUnXSkgJiYgaXNzZXQoJHBhcmFtc1snZGlzcGxheSddKSkgew0KCXN3aXRjaCgkcGFyYW1zWyd0b2dnbGUnXSkgew0KCQkNCgkJY2FzZSAnZmlsZW9wZXJhdGlvbnMnOg0KCQkJaWYoISR1c2VyaWQgPSBnZXRfdXNlcmlkKGZhbHNlKSkgew0KCQkJCWlmKCFzZXNzaW9uX2lkKCkpIHsNCgkJCQkJQHNlc3Npb25fc3RhcnQoKTsNCgkJCQl9DQoJCQkJJF9TRVNTSU9OWydHUEZQX2ZpbGVvcGVyYXRpb25zX2Rpc3BsYXknXSA9ICRwYXJhbXNbJ2Rpc3BsYXknXTsNCgkJCX0NCgkJCWVsc2Ugew0KCQkJCXNldF9wcmVmZXJlbmNlKCR1c2VyaWQsICdKTUZQX2ZpbGVvcGVyYXRpb25zX2Rpc3BsYXknLCBpbnR2YWwoJHBhcmFtc1snZGlzcGxheSddKSk7DQoJCQl9DQoJCQlicmVhazsNCgkJCQ0KCQlkZWZhdWx0OiBicmVhazsNCgl9DQp9DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ2FqYXgnXSkgJiYgam1mcF91dGlsczo6SXNUcnVlKCRwYXJhbXNbJ2FqYXgnXSkpDQp7DQoJQG9iX2VuZF9jbGVhbigpOw0KCUBvYl9zdGFydCgpOw0KCWhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUiKTsNCgloZWFkZXIoIkNhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAiLCBmYWxzZSk7DQoJaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7DQoJaWYoaXNzZXQoJHBhcmFtc1sneG1sJ10pICYmIGptZnBfdXRpbHM6OklzVHJ1ZSgkcGFyYW1zWyd4bWwnXSkpIA0KCXsNCgkJaGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHQveG1sJyk7DQoJCWVjaG8gJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+JzsNCgkJZWNobyAnPHJlc3VsdD48IVtDREFUQVsnOw0KCX0NCgllbHNlDQoJew0KCQloZWFkZXIoJ0NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jyk7DQoJfQ0KCWVjaG8gJzxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPicuJHRoaXMtPmxhbmcoJ3ByZWZzX3VwZGF0ZWQnKS4nPC9wPjwvZGl2Pic7DQoJaWYoaXNzZXQoJHBhcmFtc1sneG1sJ10pICYmIGptZnBfdXRpbHM6OklzVHJ1ZSgkcGFyYW1zWyd4bWwnXSkpIA0KCXsNCgkJZWNobyAnXV0+PC9yZXN1bHQ+JzsNCgl9DQoJQG9iX2VuZF9mbHVzaCgpOw0KCWV4aXQ7DQp9DQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnbWVzc2FnZScgPT4gJ3ByZWZzX3VwZGF0ZWQnLCAnc3VibWl0JyA9PiB0cnVlKSk7DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.upload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZighZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpIHx8ICFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7DQoNCmdsb2JhbCAkQ01TX0FETUlOX1BBR0U7DQokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQokc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQoNCi8vaW5wdXQgbmFtZQ0KaWYoIWlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgfHwgJHBhcmFtc1snbmFtZSddPT0nJykNCnsNCglyZXR1cm47DQp9DQplbHNlDQp7DQoJJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7DQp9DQppZigkaWQgPT0gJ2NudG50MDEnICYmIGlzc2V0KCRfU0VTU0lPTlsnSk1GUF9pZF8nLiRuYW1lXSkpDQp7DQoJJGlkID0gJF9TRVNTSU9OWydKTUZQX2lkXycuJG5hbWVdOw0KfQ0KDQppZighJHNlc3Npb25fcGFyYW1zID0mICR0aGlzLT5HZXRJbnB1dFBhcmFtcygkaWQsJG5hbWUpKQ0Kew0KCXJldHVybjsNCn0NCg0KJHBhcmFtcyA9IGFycmF5X21lcmdlKCRwYXJhbXMsICRzZXNzaW9uX3BhcmFtcyk7DQoNCmlmKCRwYXJhbXNbJ21vZGUnXSAhPSAnZHJvcGRvd24nIHx8ICRwYXJhbXNbJ25hbWUnXSAhPSAkbmFtZSkNCnsNCglyZXR1cm47DQp9DQoNCi8vIGNoZWNrIHBlcm1pc3Npb24NCmlmKGlzc2V0KCRDTVNfQURNSU5fUEFHRSkgJiYgJENNU19BRE1JTl9QQUdFID09IDEpDQp7DQoJY2hlY2tfbG9naW4oKTsNCglpZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEpNRmlsZVBpY2tlcicpKQ0KCQlyZXR1cm47DQoJJHVzZXJuYW1lID0gJHRoaXMtPl91c2VybmFtZTsNCn0NCmVsc2UNCnsNCglpZiggISRmZXVzZXJzID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnICkgKQ0KCXsNCgkJcmV0dXJuOw0KCX0NCglpZighJHVzZXJpZCA9ICRmZXVzZXJzLT5Mb2dnZWRJbklkKCkpDQoJew0KCQlyZXR1cm47DQoJfQ0KCWlmKCEkZ3JvdXBzID0gJGZldXNlcnMtPkdldE1lbWJlckdyb3Vwc0FycmF5KCR1c2VyaWQpKQ0KCXsNCgkJcmV0dXJuOw0KCX0NCgkkYWNjZXNzID0gZmFsc2U7DQoJZm9yZWFjaCgkZ3JvdXBzIGFzICRfZ3JvdXApDQoJew0KCQlpZihpbl9hcnJheSgkX2dyb3VwWydncm91cGlkJ10sJHBhcmFtc1snZmV1X2FjY2VzcyddKSkNCgkJew0KCQkJJGFjY2VzcyA9IHRydWU7DQoJCQlicmVhazsNCgkJfQ0KCX0NCglpZighJGFjY2VzcykNCgl7DQoJCXJldHVybjsNCgl9DQoJJHVzZXJuYW1lID0gJGZldXNlcnMtPkdldFVzZXJOYW1lKCR1c2VyaWQpOw0KfQ0KDQovLyBtb2R1bGUgaWQNCiRfaWQgPSAkaWQ7DQppZigkcGFyYW1zWydpZCddID09ICcnKQ0Kew0KCSRfaWQgPSAnJzsNCn0NCg0KLy8gZGlyIHN0dWZmDQokY3VycmVudF9kaXIgPSAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1I7DQokY3VycmVudF91cmwgID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXSAuICcvJzsNCg0KaWYoJHBhcmFtc1snc3RhcnRfZGlyJ10gIT0gJycpDQp7DQoJJGN1cnJlbnRfZGlyIC49IHN0cl9yZXBsYWNlKCcvJywgRElSRUNUT1JZX1NFUEFSQVRPUiwgJHBhcmFtc1snc3RhcnRfZGlyJ10pIC4gRElSRUNUT1JZX1NFUEFSQVRPUjsNCgkkY3VycmVudF91cmwgLj0gJHBhcmFtc1snc3RhcnRfZGlyJ10gLiAnLyc7DQp9DQoNCiR1cGxvYWQgPSAkcGFyYW1zWyd1cGxvYWQnXSAmJiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmlsZW1hbmFnZW1lbnQnKSB8fCAkdGhpcy0+X2lzQWRtaW4pOw0KDQppZihmaWxlX2V4aXN0cygkY3VycmVudF9kaXIpICYmICR1cGxvYWQpDQp7DQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3VwbG9hZF9maWxlJ10pKSAvLyBkbyB1cGxvYWQNCgl7DQoJCWlmIChpc3NldCgkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddKSkNCgkJew0KCQkJLy9DSGVjayBmb3IgdXBsb2FkZWQgZmlsZQ0KCQkJaWYgKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSAhPSAnJykNCgkJCXsNCgkJCQkvLyBnZXQgZmlsZSB0eXBlDQoJCQkJJGZpbGV0eXBlID0gam1mcF91dGlsczo6R2V0RmlsZVR5cGUoJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsndG1wX25hbWUnXSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlX21pbWV0eXBlJyxmYWxzZSkpOw0KCQkJCWlmKCEkZmlsZXR5cGUgfHwgJGZpbGV0eXBlID09ICd0bXAnKSB7DQoJCQkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VfbWltZXR5cGUnLGZhbHNlKSkNCgkJCQkJew0KCQkJCQkJJGZpbGV0eXBlID0gJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnZmlsZV90eXBlJ107DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQkkZmlsZXR5cGUgPSBqbWZwX3V0aWxzOjpHZXRGaWxlVHlwZSgkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10pOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCQ0KCQkJCS8vY2hlY2sgZmlsZW5hbWUNCgkJCQlpZiAoam1mcF91dGlsczo6Q29udGFpbnNJbGxlZ2FsQ2hhcnMoJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddKSkNCgkJCQl7DQoJCQkJCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnY29udGFpbnNfaWxsZWdhbGNoYXJzJywgJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddKTsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ3NpemUnXT4kY29uZmlnWydtYXhfdXBsb2FkX3NpemUnXSkNCgkJCQkJfHwgKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ2Vycm9yJ10gPT0gMSkpDQoJCQkJew0KCQkJCQkkZXJyb3JtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2ZpbGVfdG9vX2JpZycsICRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSk7DQoJCQkJfQ0KCQkJCWVsc2UgaWYoJHBhcmFtc1snbWVkaWFfdHlwZSddID09ICdpbWFnZScgJiYgIWluX2FycmF5KHN0cl9yZXBsYWNlKCdpbWFnZS8nLCcnLCRmaWxldHlwZSksJHBhcmFtc1snZmlsZV9leHRlbnNpb25zJ10pKQ0KCQkJCXsNCgkJCQkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdub19pbWFnZWZpbGUnLCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSAuICcgKCcuJGZpbGV0eXBlLicpJyk7DQoJCQkJfQ0KCQkJCWVsc2UgaWYoJHBhcmFtc1snbWVkaWFfdHlwZSddICE9ICdpbWFnZScgJiYgIWVtcHR5KCRwYXJhbXNbJ2ZpbGVfZXh0ZW5zaW9ucyddKSAmJiAhaW5fYXJyYXkoc3RydG9sb3dlcihzdWJzdHIoJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddLCBzdHJycG9zKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSwgJy4nKSArIDEpKSwkcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXSkpDQoJCQkJew0KCQkJCQkkZXJyb3JtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2ZpbGV0eXBlX25vdGFsbG93ZWQnLCAkZmlsZXR5cGUpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkZmlsZW5hbWUgPSAkY3VycmVudF9kaXIuam1mcF91dGlsczo6Q2xlYW5QYXRoKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSwgZmFsc2UpOw0KCQkJCQkkcmVzaXplICAgPSAkcGFyYW1zWydmb3JjZV9zY2FsaW5nJ107DQoJCQkJCWlmIChpc3NldCgkcGFyYW1zWydyZXNpemVfb24nXSkpDQoJCQkJCXsNCgkJCQkJCSRyZXNpemUgPSAkcGFyYW1zWydyZXNpemVfb24nXTsNCgkJCQkJfQ0KCQkJCQlpZiAoJHJlc2l6ZSkNCgkJCQkJew0KCQkJCQkJJHdpZHRoID0gJHBhcmFtc1snc2NhbGluZ193aWR0aCddOw0KCQkJCQkJaWYoaXNzZXQoJHBhcmFtc1sncmVzaXplX3gnXSkpDQoJCQkJCQl7DQoJCQkJCQkJJHdpZHRoID0gJHBhcmFtc1sncmVzaXplX3gnXTsNCgkJCQkJCX0NCgkJCQkJCSRoZWlnaHQgPSAkcGFyYW1zWydzY2FsaW5nX2hlaWdodCddOw0KCQkJCQkJaWYoaXNzZXQoJHBhcmFtc1sncmVzaXplX3knXSkpDQoJCQkJCQl7DQoJCQkJCQkJJGhlaWdodCA9ICRwYXJhbXNbJ3Jlc2l6ZV95J107DQoJCQkJCQl9DQoJCQkJCQkka2VlcF9hc3BlY3RyYXRpbyA9ICRwYXJhbXNbJ2tlZXBfYXNwZWN0X3JhdGlvJ107DQoJCQkJCQlpZihpc3NldCgkcGFyYW1zWydrZWVwX2FzcGVjdHJhdGlvJ10pKQ0KCQkJCQkJew0KCQkJCQkJCSRrZWVwX2FzcGVjdHJhdGlvID0gJHBhcmFtc1sna2VlcF9hc3BlY3RyYXRpbyddOw0KCQkJCQkJfQ0KCQkJCQkJaWYgKGptZnBfdXRpbHM6OkhhbmRsZUZpbGVSZXNpemluZygkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyd0bXBfbmFtZSddLCAkZmlsZW5hbWUsICR3aWR0aCwgJGhlaWdodCwgJGtlZXBfYXNwZWN0cmF0aW8sICgkcGFyYW1zWydhbGxvd191cHNjYWxpbmcnXSAmJiAkcGFyYW1zWydmb3JjZV91cHNjYWxpbmcnXSksIDEwMCwgZmFsc2UpKQ0KCQkJCQkJew0KCQkJCQkJCWlmICgkcGFyYW1zWydjcmVhdGVfdGh1bWJzJ10pDQoJCQkJCQkJew0KCQkJCQkJCQlqbWZwX3V0aWxzOjpDcmVhdGVUaHVtYm5haWwoJGZpbGVuYW1lKTsNCgkJCQkJCQkJIyR0aHVtYm5hbWUgPSAkY3VycmVudF9kaXIuInRodW1iXyIuam1mcF91dGlsczo6Q2xlYW5QYXRoKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSwgZmFsc2UpOw0KCQkJCQkJCQkjam1mcF91dGlsczo6SGFuZGxlRmlsZVJlc2l6aW5nKCRmaWxlbmFtZSwkdGh1bWJuYW1lLGdldF9zaXRlX3ByZWZlcmVuY2UoJ3RodW1ibmFpbF93aWR0aCcsOTYpLGdldF9zaXRlX3ByZWZlcmVuY2UoJ3RodW1ibmFpbF9oZWlnaHQnLDk2KSx0cnVlLGZhbHNlLDYwLGZhbHNlKTsNCgkJCQkJCQl9DQoJCQkJCQkJJG1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnZmlsZV91cGxvYWRlZCcsICRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSk7DQoJCQkJCQkJJHZhbHVlICAgPSBqbWZwX3V0aWxzOjpDbGVhblBhdGgoJHBhcmFtc1snc3RhcnRfZGlyJ10uJy8nLiRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSxmYWxzZSk7DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5MYW5nKCd1cGxvYWRfZmFpbGVkJywgJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCWlmIChjbXNfbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ3RtcF9uYW1lJ10sICRmaWxlbmFtZSkpDQoJCQkJCQl7DQoJCQkJCQkJaWYgKCRwYXJhbXNbJ2NyZWF0ZV90aHVtYnMnXSkNCgkJCQkJCQl7DQoJCQkJCQkJCWptZnBfdXRpbHM6OkNyZWF0ZVRodW1ibmFpbCgkZmlsZW5hbWUpOw0KCQkJCQkJCQkjJHRodW1ibmFtZSA9ICRjdXJyZW50X2Rpci4idGh1bWJfIi5qbWZwX3V0aWxzOjpDbGVhblBhdGgoJF9GSUxFU1skaWQuJ25ld2ZpbGUnXVsnbmFtZSddLGZhbHNlKTsNCgkJCQkJCQkJI2ptZnBfdXRpbHM6OkhhbmRsZUZpbGVSZXNpemluZygkZmlsZW5hbWUsJHRodW1ibmFtZSxnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0aHVtYm5haWxfd2lkdGgnLDk2KSxnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0aHVtYm5haWxfaGVpZ2h0Jyw5NiksdHJ1ZSxmYWxzZSw2MCxmYWxzZSk7DQoJCQkJCQkJfQ0KCQkJCQkJCSRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2ZpbGVfdXBsb2FkZWQnLCRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSk7DQoJCQkJCQkJJHZhbHVlICAgPSBqbWZwX3V0aWxzOjpDbGVhblBhdGgoJHBhcmFtc1snc3RhcnRfZGlyJ10uJy8nLiRfRklMRVNbJGlkLiduZXdmaWxlJ11bJ25hbWUnXSxmYWxzZSk7DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5MYW5nKCd1cGxvYWRfZmFpbGVkJywkX0ZJTEVTWyRpZC4nbmV3ZmlsZSddWyduYW1lJ10pOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnbm9fZmlsZV91cGxvYWRlZCcpOw0KCQkJfQ0KCQl9DQoJCWVsc2UNCgkJew0KCQkJLy9UaGlzIHNob3VsZG4ndCBoYXBwZW4NCgkJCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnbm9fZmlsZV91cGxvYWRlZCcpOw0KCQl9DQoJfQ0KCSRzbWFydHktPmFzc2lnbignam1mcF9mb3Jtc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3VwbG9hZCcsDQoJCSRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlLCAnJywNCgkJYXJyYXkoJ25hbWUnPT4kbmFtZSkpKTsNCgkNCgkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfYWxsb3dfc2NhbGluZycsICRwYXJhbXNbJ2FsbG93X3NjYWxpbmcnXSk7DQoJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3N1Y2Nlc3NfdGV4dCcsICR0aGlzLT5MYW5nKCdzdWNjZXNzJykpOw0KCQ0KCSRzbWFydHktPmFzc2lnbignam1mcF9maWxldXBsb2FkX3RleHQnLCAkdGhpcy0+TGFuZygnZmlsZXVwbG9hZCcpKTsNCgkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfZmlsZXVwbG9hZF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dEZpbGUoJGlkLCAnbmV3ZmlsZScsICcnLCAyMCkpOw0KCSRzbWFydHktPmFzc2lnbignam1mcF9maWxldXBsb2FkX3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3VwbG9hZF9maWxlJywgJHRoaXMtPkxhbmcoJ3VwbG9hZCcpKSk7DQoNCglpZiAoJHBhcmFtc1snYWxsb3dfc2NhbGluZyddKQ0KCXsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2FsbG93X3Vwc2NhbGluZycsICRwYXJhbXNbJ2FsbG93X3Vwc2NhbGluZyddKTsNCgkJDQoJCSRzbWFydHktPmFzc2lnbignam1mcF9yZXNpemVpbWFnZV90ZXh0JywgJHRoaXMtPkxhbmcoJ3Jlc2l6ZV9pbWFnZScpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3Jlc2l6ZWltYWdlX2lucHV0JywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3Jlc2l6ZV9vbicsMCkgLg0KCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAncmVzaXplX29uJywgJzEnLCRwYXJhbXNbJ2ZvcmNlX3NjYWxpbmcnXSkpOw0KCQkNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2ltYWdlc2l6ZV90ZXh0JywgJHRoaXMtPkxhbmcoJ2ltYWdlX3NpemUnKSk7DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9pbWFnZXNpemVfeF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncmVzaXplX3gnLCAkcGFyYW1zWydzY2FsaW5nX3dpZHRoJ10sIDQsIDQpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2ltYWdlc2l6ZV95X2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdyZXNpemVfeScsICRwYXJhbXNbJ3NjYWxpbmdfaGVpZ2h0J10sIDQsIDQpKTsNCgkJDQoJCSRzbWFydHktPmFzc2lnbignam1mcF9rZWVwYXNwZWN0cmF0aW9fdGV4dCcsICR0aGlzLT5MYW5nKCdrZWVwX2FzcGVjdHJhdGlvJykpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfa2VlcGFzcGVjdHJhdGlvX2lucHV0JywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2tlZXBfYXNwZWN0cmF0aW8nLDApLg0KCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAna2VlcF9hc3BlY3RyYXRpbycsICcxJywxKSk7DQoJCQ0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfZm9yY2V1cHNjYWxpbmdfdGV4dCcsICR0aGlzLT5MYW5nKCdmb3JjZV91cHNjYWxpbmcnKSk7DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9mb3JjZXVwc2NhbGluZ19pbnB1dCcsDQoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmb3JjZV91cHNjYWxpbmcnLDApLg0KCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZm9yY2VfdXBzY2FsaW5nJywgJzEnLDApKTsNCgl9DQoJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2Zvcm1lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCn0NCmVsc2UNCnsNCgkkZXJyb3JtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2Rpcl9ub3Rmb3VuZCcsJGN1cnJlbnRfZGlyKTsNCn0NCg0KaWYoaXNzZXQoJGVycm9ybWVzc2FnZSkpDQp7DQoJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2Vycm9ybWVzc2FnZScsICRlcnJvcm1lc3NhZ2UpOw0KfQ0KaWYoaXNzZXQoJG1lc3NhZ2UpKQ0Kew0KCSRzbWFydHktPmFzc2lnbignam1mcF9tZXNzYWdlJywgJG1lc3NhZ2UpOw0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfaW5wdXRpZCcsICRfaWQuJG5hbWUpOw0KJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2Nzc2lkJywgJF9pZC5tdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lKSk7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfbWVkaWFfdHlwZScsICRwYXJhbXNbJ21lZGlhX3R5cGUnXSk7DQokc21hcnR5LT5hc3NpZ24oJ2ptZnBfZXJyb3JfdGV4dCcsICR0aGlzLT5MYW5nKCdlcnJvcicpKTsNCg0KJGFqYXggPSBpc3NldCgkcGFyYW1zWydhamF4J10pICYmIGptZnBfdXRpbHM6OklzVHJ1ZSgkcGFyYW1zWydhamF4J10pOw0KJHhtbCAgPSAkYWpheCAmJiBpc3NldCgkcGFyYW1zWyd4bWwnXSkgJiYgam1mcF91dGlsczo6SXNUcnVlKCRwYXJhbXNbJ3htbCddKTsNCg0KaWYoJGFqYXgpDQp7DQoJQG9iX2VuZF9jbGVhbigpOw0KCUBvYl9zdGFydCgpOw0KCWhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUiKTsNCgloZWFkZXIoIkNhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAiLCBmYWxzZSk7DQoJaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7DQoJaWYoJHhtbCkNCgl7DQoJCWhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L3htbCcpOw0KCQllY2hvICc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pic7DQoJCWVjaG8gJzxyZXN1bHQ+PCFbQ0RBVEFbJzsNCgl9DQoJZWxzZQ0KCXsNCgkJaGVhZGVyKCdDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtOCcpOw0KCX0NCn0NCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCd1cGxvYWQudHBsJyk7DQoNCmlmKCRhamF4KQ0Kew0KCWlmKCR4bWwpDQoJew0KCQllY2hvICddXT48L3Jlc3VsdD4nOw0KCX0NCglAb2JfZW5kX2ZsdXNoKCk7DQoJZXhpdDsNCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/filepicker.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGZvbnQtZmFjZSB7DQogICAgZm9udC1mYW1pbHk6ICdjbXNtcy1maWxlcGlja2VyJzsNCiAgICBzcmM6IHVybCgnLi4vZm9udHMvY21zbXMtZmlsZXBpY2tlci5lb3QnKTsNCiAgICBzcmM6IHVybCgnLi4vZm9udHMvY21zbXMtZmlsZXBpY2tlci5lb3Q/I2llZml4JykgZm9ybWF0KCdlb3QnKTsNCiAgICBmb250LXdlaWdodDogbm9ybWFsOw0KICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsNCn0NCg0KQGZvbnQtZmFjZSB7DQogICAgZm9udC1mYW1pbHk6ICdjbXNtcy1maWxlcGlja2VyJzsNCiAgICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZ2hDL01FQUFBQzhBQUFBWUdOdFlYRG1IUUNIQUFBQkhBQUFBRVJuWVhOd0FBQUFFQUFBQVdBQUFBQUlaMng1WnBXdjdLa0FBQUZvQUFBTE1HaGxZV1QvSGhlTEFBQU1tQUFBQURab2FHVmhCQWNDRkFBQUROQUFBQUFrYUcxMGVCZ25BTUFBQUF6MEFBQUFPR3h2WTJFVHRoRW9BQUFOTEFBQUFCNXRZWGh3QUJzQTZRQUFEVXdBQUFBZ2JtRnRaY0FvNFZrQUFBMXNBQUFCaW5CdmMzUUFBd0FBQUFBTytBQUFBQ0FBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUNEbUN3SGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQURBQUFBQUlBQWdBQWdBQUFDRG1DLy85Ly84QUFBQWc1Z0QvL2YvLy8rRWFBZ0FEQUFFQUFBQUFBQUFBQUFBQkFBSC8vd0FQQUFFQUFBQUFBQUFBQUFBQ0FBQTNPUUVBQUFBQUFRQUEvOTRCdHdHNUFFUUFBQUVSRkFjR0J3WUhCaU1pSnlZbkppY21OVFEzTmpjMk56WXpNaGMxQnhVVUJ3WUhCZ2NHSXlJbkppY21KeVkxTkRjMk56WTNOak15RnhFME56WS9BVFl6TWhjV0ZRRzNDZ29PRHc4UERRd1BEdzhQQ1FvS0NROFBEdzhNSGhuYkNnb09EdzhQRFF3UER3OFBDUW9LQ1E4UER3OE1IaGtHQlFudEJBUU1DQWdCbnY3QUR3c0xCZ1lEQXdNREJnWUxDdzhPQ3dzR0J3TURESnBFeWc4TEN3WUdBd01EQXdZR0N3c1BEZ3NMQmdZREF3c0JGUWdJQndOSkFRZ0lDd0FBQ1FBQUFDVUNBQUczQUJRQUtRQStBRk1BYUFCOUFKSUFwd0M4QUFBM0ZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVTFGUlFIQmlzQklpY21QUUUwTnpZN0FUSVhGaFVYRlJRSEJpc0JJaWNtUFFFME56WTdBVElYRmhVREZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVVhGUlFIQmlzQklpY21QUUUwTnpZN0FUSVhGaFVYRlJRSEJpc0JJaWNtUFFFME56WTdBVElYRmhVREZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVVhGUlFIQmlzQklpY21QUUUwTnpZN0FUSVhGaFUxRlJRSEJpc0JJaWNtUFFFME56WTdBVElYRmhXU0NBZ0xYQXNJQ0FnSUMxd0xDQWdJQ0F0Y0N3Z0lDQWdMWEFzSUNMY0lDQXRjQ3dnSUNBZ0xYQXNJQ0xjSUNBdGNDd2dJQ0FnTFhBc0lDTGNJQ0F0Y0N3Z0lDQWdMWEFzSUNMY0lDQXRjQ3dnSUNBZ0xYQXNJQ0xjSUNBdGNDd2dJQ0FnTFhBc0lDTGNJQ0F0Y0N3Z0lDQWdMWEFzSUNBZ0lDMXdMQ0FnSUNBdGNDd2dJZHpjTENBZ0lDQXMzQ3dnSUNBZ0xramNMQ0FnSUNBczNEQWdJQ0FnTWtqY0xDQWdJQ0FzM0N3Z0lDQWdMQVNRMkRBZ0lDQWdNTmd3SUNBZ0lESkkzQ3dnSUNBZ0xOd3dJQ0FnSURKSTNDd2dJQ0FnTE53c0lDQWdJQ3dFa05nd0lDQWdJRERZTUNBZ0lDQXlTTndzSUNBZ0lDemNNQ0FnSUNBeVNOZ3dJQ0FnSUREWU1DQWdJQ0F3QUFBQUFCZ0FBQUNVQ0FBRzNBQlFBS1FBK0FGTUFhQUI5QUFBM0ZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVTFGUlFIQmlzQklpY21QUUUwTnpZN0FUSVhGaFVGRlJRSEJpTWhJaWNtUFFFME56WXpJVElYRmhVQkZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVUZGUlFIQmlNaElpY21QUUUwTnpZeklUSVhGaFUxRlJRSEJpTWhJaWNtUFFFME56WXpJVElYRmhXU0NBZ0xYQXNJQ0FnSUMxd0xDQWdJQ0F0Y0N3Z0lDQWdMWEFzSUNBRnVDQWdML3UwTENBZ0lDQXNCRXdzSUNQNlNDQWdMWEFzSUNBZ0lDMXdMQ0FnQmJnZ0lDLzd0Q3dnSUNBZ0xBUk1MQ0FnSUNBdis3UXNJQ0FnSUN3RVRDd2dJZHpjTENBZ0lDQXMzQ3dnSUNBZ0xramNMQ0FnSUNBczNEQWdJQ0FnTWtqY0xDQWdJQ0FzM0N3Z0lDQWdMQVNRMkRBZ0lDQWdNTmd3SUNBZ0lESkkzQ3dnSUNBZ0xOd3dJQ0FnSURKSTJEQWdJQ0FnTU5nd0lDQWdJREFBQUFBTUFBQUFBQVc0QnR3QUtBQklBTEFBQU55RW5JeUluSmpjbkl3TVRNeVl2QVNZbkJ4Y0RGZ2NHSXlFaUp5WTNBelkzTmpzQk1oY1dId0VXRnhZSEpRRWxBWFlNQndrQkFaRUJ0MnNDQkZrRUNBR1VBUUVKQnczK3lnd0hDUUVCQVFjSkNyZ0xEZzBKV0FrRkJ3RWwyd2dJQzNmK2t3RUFDQU5hQXdOckN2OEFDd2dJQ0FnTEFZQU1DQWdHQmdoWkNBME9EQUFFQUZBQUFBR2dBYkFBSWdBbkFDd0FNZ0FBTnhFekZTTVZNeFVqRlRNVkl4VXpGVE0xSXpVek5TTTFNelVqTlRNMU14VXpFU0UzSXhVek5RY2pOVE1WRXpNWEZTTTFVS0FnSUNBZ0lDQWdJQ0FnSUNBZ01HRCtzTUJBUUJBZ0lGQUVURkFBQWJBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0Qrc01Cd2NGOGdJQUZQVEFOUEFBQUNBQUFBSlFJWkFiY0FHQUEwQUFBbEZBOEJCZ2NHQnlVR0p5WTFORDhCTmpjMkZ5VVdGeFlWSnhVSEpnY0dEd0UwTlRRMUVUUTNOaGMzRmhjV0hRRTNGaGNXRlFJWkNXQU1GaGNTL3NrS0NBY0pZQXdXRmhNQk53b0hDR0x1R3gwZUVXSVRFeHBiR3hNU25Cb1RFOHNKQ1hNTkN3a0JBUUVFQXdvSEMzRVBDUXNCQVFFQ0JRaGlMUUVCRHd3V2NnRURBUU1CRVJzU0ZBRUJBUklVR1FvQkFSSVVHUUFBQUFBQkFBQUFKUUhiQWJjQUdnQUFBUlVVQndZaklTSW5KalVSTkRjMk93RXlGeFlkQVRNeUZ4WVZBZHNTRXh2K3BSb1RFeE1UR2xzYkV4TEFHeE1TQVM3Skd4TVNFaE1iQVJJYUV4TVRFeG9KRXhNYUFBQUJBQUFBSlFJQUFaSUFKQUFBQVJFVUJ3WWpJaThCRlJRSEJpc0JJaWNtUFFFME56WTdBVElYRmgwQk56WXpNaGNXRlFJQUN3UURDQVZ6R0JraXlTSVlHQmdZSXNraUdSaHpCUWdEQkFzQmQvN0pEQVVCQlhNdkloZ1lHQmdpeVNJWUdCZ1lJaTl6QlFFRkRBQUVBQUFBQUFJbEFiY0FFQUFYQUN3QVFRQUFFeFFIQmlNaUp5WTFORGMyTXpJWEZoVUZGU0UxTnhjM055RWlCd1lWRVJRWEZqTWhNamMyTlJFMEp5WWpGeEVVQndZaklTSW5KalVSTkRjMk15RXlGeFlWdHhBUUZ4Y1FFQkFRRnhjUUVBRWsvbTVjTFpPUy9qY0VBd0lDQXdRQnlRUUNBd01DQkM0T0RSUCtOeE1PRFEwT0V3SEpFdzBPQVRjWEVCQVFFQmNYRUJBUUVCZHVnRGRiTFpKU0FnTUUvcVVFQXdJQ0F3UUJXd1FEQWduK3BSTU9EUTBPRXdGYkV3ME9EZzBUQUFBQUF3QUFBQ1VCdHdHU0FCUUFLUUErQUFBbEZSUUhCZ2NsQmljbVBRRTBOellYSlJZWEZoVTFGUlFIQmljRkppY21QUUUwTnpZM0JUWVhGaFUxRlJRSEJnY2xCaWNtUFFFME56WVhKUllYRmhVQnR3WUZCLzV0QndZRkJRWUhBWk1IQlFZR0JRZitiUWNHQlFVR0J3R1RCd1VHQmdVSC9tMEhCZ1VGQmdjQmt3Y0ZCbHNsQndZRUFRRUJCZ1FKSXdrRUJ3RUJBUVVHQjVJa0NBVUdBUUVCQkFjR0pnWUhCQUVCQVFZRkNKTW1CZ1lGQVFFQkJ3UUlKQWdGQmdFQkFRUUhCZ0FBQUFzQUFQL2JBaVVCdHdBVUFDa0FQZ0JUQUdnQWZRQ1NBS2NBdkFEUkFPWUFBRGMxTkNjbUt3RWlCd1lkQVJRWEZqc0JNamMyTlQwQk5DY21Ld0VpQndZZEFSUVhGanNCTWpjMk5UMEJOQ2NtS3dFaUJ3WWRBUlFYRmpzQk1qYzJOUVUxTkNjbUt3RWlCd1lkQVJRWEZqc0JNamMyTlFFMU5DY21Ld0VpQndZZEFSUVhGanNCTWpjMk5RRTFOQ2NtS3dFaUJ3WWRBUlFYRmpzQk1qYzJOU2MxTkNjbUt3RWlCd1lkQVJRWEZqc0JNamMyTlJjMU5DY21Ld0VpQndZZEFSUVhGanNCTWpjMk5UMEJOQ2NtS3dFaUJ3WWRBUlFYRmpzQk1qYzJOVDBCTkNjbUt3RWlCd1lkQVJRWEZqc0JNamMyTlRjUkZBY0dJeUVpSnlZMUVUUTNOak1oTWhjV0ZXNEdCUWdrQ0FVRkJRVUlKQWdGQmdZRkNDUUlCUVVGQlFna0NBVUdCZ1VJSkFnRkJRVUZDQ1FJQlFZQkpBVUdCOXNJQlFZR0JRamJCd1lGL3R3R0JRZ2tDQVVGQlFVSUpBZ0ZCZ0dTQlFZSEpRY0dCUVVHQnlVSEJnVnVCUVlIMndnRkJnWUZDTnNIQmdWdUJRWUhKUWNHQlFVR0J5VUhCZ1VGQmdjbEJ3WUZCUVlISlFjR0JRVUdCeVVIQmdVRkJnY2xCd1lGSlE0TkUvNDNFdzRORFE0VEFja1REUTRTSlFjR0JRVUdCeVVIQmdVRkJnZHVKUWNGQmdZRkJ5VUhCZ1VGQmdkdUpBZ0ZCZ1lGQ0NRSUJRWUdCUWpja3djRkJnWUZCNU1IQmdVRkJnY0JTU1VIQmdVRkJnY2xCd1VHQmdVSC9yY2xCd1lGQlFZSEpRY0dCUVVHQjl5U0J3WUZCUVlIa2dnRkJnWUZDRzRsQndVR0JnVUhKUWNHQlFVR0IyNGtDQVVHQmdVSUpBZ0ZCZ1lGQ0cwbEJ3WUZCUVlISlFjRkJnWUZCeTcrZ0JNTkRnNE5Fd0dBRXcwT0RnMFRBQXdBY0FBZ0FaQUJvQUFFQUFrQURnQVRBQmdBSFFBaUFDZ0FMd0EwQURrQVBnQUFOek0xSXhVVk16VWpGVFV6TlNNVkZUTTFJeFVWTXpVakZUY3pOU01WTlRNMUl4VTNJeEVoRVNjVEl4RXpGVE1SSnpNMUl4VTFNelVqRlJVek5TTVZzQkFRRUJBUUVCQVFFQkFnZ0lDQWdIL2ZBU0JCSWVDZ1FLQ0FnSUNBZ0lEd0VCQXdFQkJnRUJDUUVCQXdFQkJnRUJCZ0VCQ0Evb0FCUUVEK29RRS9MLzd3VHhBUVlCQVFrQkFRQUFBQUFRQUFBQUVBQUZlRDJlbGZEenoxQUFzQ0FBQUFBQURPN090OUFBQUFBTTdzNjMwQUFQL2JBaVVCdVFBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFCNFAvZ0FBQUNKUUFBQUFBQ0pRQUJBQUFBQUFBQUFBQUFBQUFBQUFBQURnQUFBQUFCQUFBQUFiY0FBQUlBQUFBQ0FBQUFBVzRBQUFJQUFGQUNKUUFBQWR3QUFBSUFBQUFDSlFBQUFiY0FBQUlsQUFBQ0FBQndBQUFBQUFBS0FIQUJaZ0lRQWxvQ25BTHdBeG9EVUFPeUJCUUZRQVdZQUFBQUFRQUFBQTRBNXdBTUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QXJnQUJBQUFBQUFBQkFDQUFBQUFCQUFBQUFBQUNBQTRBaGdBQkFBQUFBQUFEQUNBQU5nQUJBQUFBQUFBRUFDQUFsQUFCQUFBQUFBQUZBQllBSUFBQkFBQUFBQUFHQUJBQVZnQUJBQUFBQUFBS0FDZ0F0QUFEQUFFRUNRQUJBQ0FBQUFBREFBRUVDUUFDQUE0QWhnQURBQUVFQ1FBREFDQUFOZ0FEQUFFRUNRQUVBQ0FBbEFBREFBRUVDUUFGQUJZQUlBQURBQUVFQ1FBR0FDQUFaZ0FEQUFFRUNRQUtBQ2dBdEFCakFHMEFjd0J0QUhNQUxRQm1BR2tBYkFCbEFIQUFhUUJqQUdzQVpRQnlBRllBWlFCeUFITUFhUUJ2QUc0QUlBQXhBQzRBTUFCakFHMEFjd0J0QUhNQUxRQm1BR2tBYkFCbEFIQUFhUUJqQUdzQVpRQnlZMjF6YlhNdFptbHNaWEJwWTJ0bGNnQmpBRzBBY3dCdEFITUFMUUJtQUdrQWJBQmxBSEFBYVFCakFHc0FaUUJ5QUZJQVpRQm5BSFVBYkFCaEFISUFZd0J0QUhNQWJRQnpBQzBBWmdCcEFHd0FaUUJ3QUdrQVl3QnJBR1VBY2dCSEFHVUFiZ0JsQUhJQVlRQjBBR1VBWkFBZ0FHSUFlUUFnQUVrQVl3QnZBRTBBYndCdkFHNEFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgZm9ybWF0KCd0cnVldHlwZScpLA0KCQkgdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSazlVVkU4QUFCTDBBQW9BQUFBQUVxd0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCRFJrWWdBQUFBOUFBQUR3d0FBQThNQW1sLzgwOVRMeklBQUJBQUFBQUFZQUFBQUdBSVF2ekJZMjFoY0FBQUVHQUFBQUJFQUFBQVJPWWRBSWRuWVhOd0FBQVFwQUFBQUFnQUFBQUlBQUFBRUdobFlXUUFBQkNzQUFBQU5nQUFBRGIvSGhlTGFHaGxZUUFBRU9RQUFBQWtBQUFBSkFRSEFoUm9iWFI0QUFBUkNBQUFBRGdBQUFBNEdDY0F3RzFoZUhBQUFCRkFBQUFBQmdBQUFBWUFEbEFBYm1GdFpRQUFFVWdBQUFHS0FBQUJpc0FvNFZsd2IzTjBBQUFTMUFBQUFDQUFBQUFnQUFNQUFBRUFCQVFBQVFFQkVXTnRjMjF6TFdacGJHVndhV05yWlhJQUFRSUFBUUE4K0J3QytCc0QrQmdFSGdvQUdWTVNYNHVMSGdvQUdWTVNYNHVMREFlTFp2aTUrTGtGSFFBQUFNOFBIUUFBQU5RUkhRQUFBQWtkQUFBUEF4SUFEd0VCRVNFa0tTNHpPRDFDUjB4UlZsdGdZMjF6YlhNdFptbHNaWEJwWTJ0bGNtTnRjMjF6TFdacGJHVndhV05yWlhKMU1qQjFSVFl3TUhWRk5qQXhkVVUyTURKMVJUWXdNM1ZGTmpBMGRVVTJNRFYxUlRZd05uVkZOakEzZFVVMk1EaDFSVFl3T1hWRk5qQkJkVVUyTUVJQUFBSUJpUUFNQUE0Q0FBRUFCQUFIQVA4RGp3VktCZThHa2dkUkI3UUlQQWt0Q2cwTk53NFAvSlFPKzVRT1F2aEwrRElWaS92VUJZdUJpSU9GaEFpRmhJT0ZnWWNJZ1llQmlJR0pDSUdKZ29xQ2l3aUNpNEtNZ1kwSWdZMkJqb0dQQ0lHUGc1R0ZrZ2lGa29pVGk1VUlpNVdPazVHU0NKR1NrNUdWandpVmo1V09sWTBJbFkyVWpKU0xDSitMblllY2hBaUw5eTBGKzI5SEJZdjdYd1dMZ1lpRGhZUUloWVNEaFlHSENJR0hnWWlCaVFpQmlZS0tnb3NJZ291Q2pJR05DSUdOZ1k2Qmp3aUJqNE9SaFpJSWhaS0lrNHVWQ0l1VmpwT1JrZ2lSa3BPUmxZOElsWStWanBXTkNKV05sSXlVaXdpZmk1MkhuSVFJaS9lb0JZdVJqWkNQa0FpUGtKQ09rWTBJOTRMVUJZMk1qb3VPaXdpVGk1R0lrSVlJa0lhT2hZdURDQTczSnZjTEZZdFVCWXVEaUlXR2hnaUdob1dJZzRzSU1Jc0ZnNHVGam9hUUNJYVFpSkdMa3dpTHdnV0xrNDZSa0pBSWtKQ1JqcE9MQ09hTEJaT0xrWWlRaGdpUWhvNkZpNE1JaS9jbUZZdFVCWXVEaUlXR2hnaUdob1dJZzRzSU1Jc0ZnNHVGam9hUUNJYVFpSkdMa3dpTHdnV0xrNDZSa0pBSWtKQ1JqcE9MQ09hTEJaT0xrWWlRaGdpUWhvNkZpNE1JOTB2N0poV0xWQVdMZzRpRmhvWUlob2FGaUlPTENEQ0xCWU9MaFk2R2tBaUdrSWlSaTVNSWk4SUZpNU9Pa1pDUUNKQ1FrWTZUaXdqbWl3V1RpNUdJa0lZSWtJYU9oWXVEQ1B0TDk3a1ZpMVFGaTRPSWhZYUdDSWFHaFlpRGl3Z3dpd1dEaTRXT2hwQUlocENJa1l1VENJdkNCWXVUanBHUWtBaVFrSkdPazRzSTVvc0ZrNHVSaUpDR0NKQ0dqb1dMZ3dqM1Mvc21GWXRVQll1RGlJV0doZ2lHaG9XSWc0c0lNSXNGZzR1RmpvYVFDSWFRaUpHTGt3aUx3Z1dMazQ2UmtKQUlrSkNSanBPTENPYUxCWk9Ma1lpUWhnaVFobzZGaTRNSTkwdjdKaFdMVkFXTGc0aUZob1lJaG9hRmlJT0xDRENMQllPTGhZNkdrQWlHa0lpUmk1TUlpOElGaTVPT2taQ1FDSkNRa1k2VGl3am1pd1dUaTVHSWtJWUlrSWFPaFl1RENQdEw5N2tWaTFRRmk0T0loWWFHQ0lhR2hZaURpd2d3aXdXRGk0V09ocEFJaHBDSWtZdVRDSXZDQll1VGpwR1FrQWlRa0pHT2s0c0k1b3NGazR1UmlKQ0dDSkNHam9XTGd3ajNTL3NtRll0VUJZdURpSVdHaGdpR2hvV0lnNHNJTUlzRmc0dUZqb2FRQ0lhUWlKR0xrd2lMd2dXTGs0NlJrSkFJa0pDUmpwT0xDT2FMQlpPTGtZaVFoZ2lRaG82Rmk0TUlpL2NtRll0VUJZdURpSVdHaGdpR2hvV0lnNHNJTUlzRmc0dUZqb2FRQ0lhUWlKR0xrd2lMd2dXTGs0NlJrSkFJa0pDUmpwT0xDT2FMQlpPTGtZaVFoZ2lRaG82Rmk0TUlEdmNtOXdzVmkxUUZpNE9JaFlhR0NJYUdoWWlEaXdnd2l3V0RpNFdPaHBBSWhwQ0lrWXVUQ0l2Q0JZdVRqcEdRa0FpUWtKR09rNHNJNW9zRms0dVJpSkNHQ0pDR2pvV0xnd2lMOXlZVmkxUUZpNE9JaFlhR0NJYUdoWWlEaXdnd2l3V0RpNFdPaHBBSWhwQ0lrWXVUQ0l2Q0JZdVRqcEdRa0FpUWtKR09rNHNJNW9zRms0dVJpSkNHQ0pDR2pvV0xnd2o0QXZzbUZZdFVCWXVEaUlXR2hnaUdob1dJZzRzSSs2YUxCWU9MaFk2R2tBaUdrSWlSaTVNSWk4SUZpNU9Pa1pDUUNKQ1FrWTZUaXdqM3Bvc0ZrNHVSaUpDR0NKQ0dqb1dMZ3dqOEF2ZTVGWXRVQll1RGlJV0doZ2lHaG9XSWc0c0lNSXNGZzR1RmpvYVFDSWFRaUpHTGt3aUx3Z1dMazQ2UmtKQUlrSkNSanBPTENPYUxCWk9Ma1lpUWhnaVFobzZGaTRNSStBTDdKaFdMVkFXTGc0aUZob1lJaG9hRmlJT0xDUHVtaXdXRGk0V09ocEFJaHBDSWtZdVRDSXZDQll1VGpwR1FrQWlRa0pHT2s0c0k5NmFMQlpPTGtZaVFoZ2lRaG82Rmk0TUlpL2NtRll0VUJZdURpSVdHaGdpR2hvV0lnNHNJKzZhTEJZT0xoWTZHa0FpR2tJaVJpNU1JaThJRmk1T09rWkNRQ0pDUWtZNlRpd2ozcG9zRms0dVJpSkNHQ0pDR2pvV0xnd2dPK3lhd3NCWDN1WXNGaS9kdkJmc0xpd1dEaTRXT2hwQUlocENJa1l1VENJdjNDd1g3Sm9zRmkvd0NCZmRMOTVRVjlvc0ZpWkdKajRtTkNETGtCWW1OaDQyRmpRaUxJQVgzSm9JVmkvdVVCWXVEaUlXR2hnaUdob1dJZzRzSSs4dUxCWU9MaFk2R2tBaUdrSWlSaTVNSWkvZ1VCWXVUanBHUWtBaVFrSkdPazRzSTkwdUxCWk9MazRtVWh3aVVoNUtHa0lZSTVESUZrSWFRaEkrQ0NJK0NqWU9MZ3dnTzI0c1ZpL2hFQmZjMGl3V0xhd1ZyaXdXTGF3V3Jpd1dMYXdWcml3V0xhd1dyaXdXTGF3VnJpd1dMYXdXcml3V0xhd1dyaXdXTHF3VnJpd1dMcXdXcml3V0xxd1ZyaXdXTHF3V3Jpd1dMcXdWcml3V0xxd1dyaXdXTHF3Vzdpd1dMS3dYcml3V0wrK1FGKytTTEJmZFU5MVFWUzRzRmkvc0VCY3VMQll2M0JBVjdMQlZyaXdXTHF3V3Jpd1dMYXdYYjkrTVZqNHNGMXo4Rmk0Z0ZPNHNGaTlvRkRyRDRyZmRmRll1RmlJV0ZoQWdyK3dVRmc0R0FnM3lFQ0h5RWZZaCtpd2o3eTRzRmhZdUZqSWFOQ0lhTmlJK0xrUWlMa1k2UmtaSUk2L2NGQlpPVmxwT2FrZ2lha3BtT21Jc0k5OHVMQlpHTGtZcVFpUWlRaVk2SGk0VUlLZTBWaTEwRis0S0xCWG1MZUlaM2dnaDNnbnVBZjMwSUtmc0hCWXVNaTR5TGpRaUxqWXVNaTR3SWkvZW1CWXVka1pxWW1BaVltSnFSbllzSTVvc0ZuWXVhaFpoK0NKaCtrWHlMZVFpTGdnWDNMNHNGbll1YWhaaCtDSmgra1h5TGVRZ09aL2h2OThJVmkvdGRCWXQ1aFh4K2ZnaCtmbnlGZVlzSSsrK0xCWG1MZkpGK21BaCttSVdhaTUwSWkvZW1CWXVka1pxWW1BaVltSnFSbllzSTVvc0ZuWXVhaFpoK0NKaCtrWHlMZVFpTGdnWDNWSXNGbll1YWhaaCtDSmgra1h5TGVRZ08rSlQ0Q3hXTCs4c0ZpNE9IaFlTSUNJbUtpWXVKaXdpR2k0ZU5pSThJK3dmM0J3V0xYQVdMZElONGUzc0llM3Q0ZzNTTENQdGRpd1YwaTNpVGU1c0llNXVEbm91aUNJdjNYUVdMb3BPZW01c0ltNXVlazZLTENQZGRpd1dpaTU2RG0zc0ltM3VUZUl0MENJdGNCZmNIOXdjRmpvK1BqWkNMQ0kyTGpZdU5pZ2lTaUkrRmk0TUlEckQzUy9mTEZZdDhobjZBZ0FpQWdINkdmSXNJZkl0K2tJQ1dDSUNXaHBpTG1naUxtcENZbHBZSWxwYVlrSnFMQ0pxTG1JYVdnQWlXZ0pCK2kzd0k5N243QWhXTCt4UUYvQ2FMQll2Q0JlYm1CYmxkQmZjbTl5WUY5eWJkRmZ4ZGl3V0ppNG1LaVlrSWlZbUtpWXVKQ0l2Nzd3V0xpWXlKallrSWpZbU5pbzJMQ1BoZGl3V05pNDJNalkwSWpZMk1qWXVOQ0l2Mzd3V0xqWXFOaVkwSWlZMkpqSW1MQ0xtQ0ZZdjc3d1dMZm9lQWdvSUlnb0tBaDM2TENQeGRpd1YraTRDUGdwUUlncFNIbG91WUNJdjM3d1dMbUkrV2xKUUlsSlNXajVpTENQaGRpd1dZaTVhSGxJSUlsSUtQZ0l0K0NBNUMrRXZtRll0bUJZdUdpWWVIaHdpSGg0ZUpob3NJL0NhTEJZYUxoNDJIandpSGo0bVBpNUFJaTdBRmk1Q05qNCtQQ0krUGo0MlFpd2o0Sm9zRmtJdVBpWStIQ0krSGpZZUxoZ2lMOXlZVmkyWUZpNGFKaDRlSENJZUhoNG1HaXdqOEpvc0Zob3VIalllUENJZVBpWStMa0FpTHNBV0xrSTJQajQ4SWo0K1BqWkNMQ1BnbWl3V1FpNCtKajRjSWo0ZU5oNHVHQ0l2M0poV0xaZ1dMaG9tSGg0Y0loNGVIaVlhTENQd21pd1dHaTRlTmg0OEloNCtKajR1UUNJdXdCWXVRalkrUGp3aVBqNCtOa0lzSStDYUxCWkNMajRtUGh3aVBoNDJIaTRZSURyRDNBcDBWaTdBRmk1Q0pqNGVQQ0llUGg0Mkdpd2htaXdXR2k0ZUpoNGNJaDRlSmg0dUdDSXRtQll1R2pZZVBod2lQaDQrSmtJc0lzSXNGa0l1UGpZK1BDSStQalkrTGtBaUw5d0lWaTdBRmk1Q0pqNGVQQ0llUGg0Mkdpd2htaXdXR2k0ZUpoNGNJaDRlSmg0dUdDSXRtQll1R2pZZVBod2lQaDQrSmtJc0lzSXNGa0l1UGpZK1BDSStQalkrTGtBaUw5d0lWaTdBRmk1Q0pqNGVQQ0llUGg0Mkdpd2htaXdXR2k0ZUpoNGNJaDRlSmg0dUdDSXRtQll1R2pZZVBod2lQaDQrSmtJc0lzSXNGa0l1UGpZK1BDSStQalkrTGtBajN1ZnR2Rll2M0pnV0xrSW1QaDQ4SWg0K0hqWWFMQ1B0dml3V0dpNGVKaDRjSWg0ZUpoNHVHQ0l2N0pnV0xobzJIajRjSWo0ZVBpWkNMQ1Bkdml3V1FpNCtOajQ4SWo0K05qNHVRQ1B1NTk5MFZpN0FGaTVDSmo0ZVBDSWVQaDQyR2l3aG1pd1dHaTRlSmg0Y0loNGVKaDR1R0NJdG1CWXVHalllUGh3aVBoNCtKa0lzSXNJc0ZrSXVQalkrUENJK1BqWStMa0FqNEp2dmRGWXV3Qll1UWlZK0hqd2lIajRlTmhvc0lab3NGaG91SGlZZUhDSWVIaVllTGhnaUxaZ1dMaG8ySGo0Y0lqNGVQaVpDTENMQ0xCWkNMajQyUGp3aVBqNDJQaTVBSSt3TDNieFdMOXlZRmk1Q0pqNGVQQ0llUGg0Mkdpd2o3YjRzRmhvdUhpWWVIQ0llSGlZZUxoZ2lMK3lZRmk0YU5oNCtIQ0krSGo0bVFpd2ozYjRzRmtJdVBqWStQQ0krUGpZK0xrQWozQXZzQ0ZZdXdCWXVRaVkrSGp3aUhqNGVOaG9zSVpvc0Zob3VIaVllSENJZUhpWWVMaGdpTFpnV0xobzJIajRjSWo0ZVBpWkNMQ0xDTEJaQ0xqNDJQandpUGo0MlBpNUFJaS9jQ0ZZdXdCWXVRaVkrSGp3aUhqNGVOaG9zSVpvc0Zob3VIaVllSENJZUhpWWVMaGdpTFpnV0xobzJIajRjSWo0ZVBpWkNMQ0xDTEJaQ0xqNDJQandpUGo0MlBpNUFJaS9jQ0ZZdXdCWXVRaVkrSGp3aUhqNGVOaG9zSVpvc0Zob3VIaVllSENJZUhpWWVMaGdpTFpnV0xobzJIajRjSWo0ZVBpWkNMQ0xDTEJaQ0xqNDJQandpUGo0MlBpNUFJc0xrVmkvd1VCWXQraDRDQ2dnaUNnb0NIZm9zSS9GMkxCWDZMZ0krQ2xBaUNsSWVXaTVnSWkvZ1VCWXVZajVhVWxBaVVsSmFQbUlzSStGMkxCWmlMbG9lVWdnaVVnbytBaTM0SUR2ZEU5NFFWbTRzRmk1c0ZlNHNGaTNzRmkxc1ZtNHNGaTVzRmU0c0ZpM3NGaStzVm00c0ZpNXNGZTRzRmkzc0ZpL3NrRlp1TEJZdWJCWHVMQll0N0JZdGJGWnVMQll1YkJYdUxCWXQ3QmF2ckZmY1Vpd1dMbXdYN0ZJc0ZpM3NGaStzVjl4U0xCWXViQmZzVWl3V0xld1gzRS9jVUZmdHppd1dML0JRRjk3U0xCWXYzMUFWS3l3V3MrL01WKzNTTEJZdjMwd1gzTklzRmkxd0Z5NHNGaS91a0JmczAyaFgzRklzRmk1c0YreFNMQll0N0JZdnJGZmNVaXdXTG13WDdGSXNGaTNzRmkvc2tGZmNVaXdXTG13WDdGSXNGaTNzRkR2aVVGUGlVRllzTUNnQURBZ0FCa0FBRkFBQUJUQUZtQUFBQVJ3Rk1BV1lBQUFEMUFCa0FoQUFBQUFBQUFBQUFBQUFBQUFBQUFBRVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFJT1lMQWVELzRQL2dBZUFBSUFBQUFBRUFBQUFBQUFBQUFBQUFBQ0FBQUFBQUFBSUFBQUFEQUFBQUZBQURBQUVBQUFBVUFBUUFNQUFBQUFnQUNBQUNBQUFBSU9ZTC8vMy8vd0FBQUNEbUFQLzkvLy8vNFJvQ0FBTUFBUUFBQUFBQUFBQUFBQUVBQWYvL0FBOEFBUUFBQUFFQUFPYlpRUGRmRHp6MUFBc0NBQUFBQUFETzdPdDlBQUFBQU03czYzMEFBUC9iQWlVQnVRQUFBQWdBQWdBQUFBQUFBQUFCQUFBQjRQL2dBQUFDSlFBQUFBQUNKUUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0FBQUFBQkFBQUFBYmNBQUFJQUFBQUNBQUFBQVc0QUFBSUFBRkFDSlFBQUFkd0FBQUlBQUFBQ0pRQUFBYmNBQUFJbEFBQUNBQUJ3QUFCUUFBQU9BQUFBQUFBT0FLNEFBUUFBQUFBQUFRQWdBQUFBQVFBQUFBQUFBZ0FPQUlZQUFRQUFBQUFBQXdBZ0FEWUFBUUFBQUFBQUJBQWdBSlFBQVFBQUFBQUFCUUFXQUNBQUFRQUFBQUFBQmdBUUFGWUFBUUFBQUFBQUNnQW9BTFFBQXdBQkJBa0FBUUFnQUFBQUF3QUJCQWtBQWdBT0FJWUFBd0FCQkFrQUF3QWdBRFlBQXdBQkJBa0FCQUFnQUpRQUF3QUJCQWtBQlFBV0FDQUFBd0FCQkFrQUJnQWdBR1lBQXdBQkJBa0FDZ0FvQUxRQVl3QnRBSE1BYlFCekFDMEFaZ0JwQUd3QVpRQndBR2tBWXdCckFHVUFjZ0JXQUdVQWNnQnpBR2tBYndCdUFDQUFNUUF1QURBQVl3QnRBSE1BYlFCekFDMEFaZ0JwQUd3QVpRQndBR2tBWXdCckFHVUFjbU50YzIxekxXWnBiR1Z3YVdOclpYSUFZd0J0QUhNQWJRQnpBQzBBWmdCcEFHd0FaUUJ3QUdrQVl3QnJBR1VBY2dCU0FHVUFad0IxQUd3QVlRQnlBR01BYlFCekFHMEFjd0F0QUdZQWFRQnNBR1VBY0FCcEFHTUFhd0JsQUhJQVJ3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCSkFHTUFid0JOQUc4QWJ3QnVBQUFBQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT0pIGZvcm1hdCgnd29mZicpOw0KCWZvbnQtd2VpZ2h0OiBub3JtYWw7DQoJZm9udC1zdHlsZTogbm9ybWFsOw0KfQ0KDQpbY2xhc3NePSJjbXNtcy1mcC0iXSwgW2NsYXNzKj0iIGNtc21zLWZwLSJdIHsNCglmb250LWZhbWlseTogJ2Ntc21zLWZpbGVwaWNrZXInOw0KCXNwZWFrOiBub25lOw0KCWZvbnQtc3R5bGU6IG5vcm1hbDsNCglmb250LXdlaWdodDogbm9ybWFsOw0KCWZvbnQtdmFyaWFudDogbm9ybWFsOw0KCXRleHQtdHJhbnNmb3JtOiBub25lOw0KCWxpbmUtaGVpZ2h0OiAxOw0KCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOw0KCS1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7DQp9DQoNCi5jbXNtcy1mcC1tdXNpYzpiZWZvcmUgew0KCWNvbnRlbnQ6ICJcZTYwMCI7DQp9DQouY21zbXMtZnAtdGg6YmVmb3JlIHsNCgljb250ZW50OiAiXGU2MDEiOw0KfQ0KLmNtc21zLWZwLXRoLWxpc3Q6YmVmb3JlIHsNCgljb250ZW50OiAiXGU2MDIiOw0KfQ0KLmNtc21zLWZwLWZpbGU6YmVmb3JlIHsNCgljb250ZW50OiAiXGU2MDMiOw0KfQ0KLmNtc21zLWZwLWZvbGRlci1vcGVuOmJlZm9yZSB7DQoJY29udGVudDogIlxlNjA1IjsNCn0NCi5jbXNtcy1mcC1mb2xkZXItY2xvc2U6YmVmb3JlIHsNCgljb250ZW50OiAiXGU2MDYiOw0KfQ0KLmNtc21zLWZwLWZhY2V0aW1lLXZpZGVvOmJlZm9yZSB7DQoJY29udGVudDogIlxlNjA3IjsNCn0NCi5jbXNtcy1mcC1waWN0dXJlOmJlZm9yZSB7DQoJY29udGVudDogIlxlNjA4IjsNCn0NCi5jbXNtcy1mcC1yZW9yZGVyOmJlZm9yZSB7DQoJY29udGVudDogIlxlNjA5IjsNCn0NCi5jbXNtcy1mcC1maWxtOmJlZm9yZSB7DQoJY29udGVudDogIlxlNjBhIjsNCn0NCi5jbXNtcy1mcC16aXA6YmVmb3JlIHsNCgljb250ZW50OiAiXGU2MDQiOw0KfQ0KLmNtc21zLWZwLWZpbGUtY29udGVudDpiZWZvcmUgew0KCWNvbnRlbnQ6ICJcZTYwYiI7DQp9DQoNCg0KYm9keS5jbXNtcy1maWxlcGlja2VyIHsNCgltYXJnaW46IDA7DQoJcGFkZGluZzogMDsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KCWNvbG9yOiAjNDQ0Ow0KCWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOw0KCWZvbnQtc2l6ZTogMTRweDsNCn0NCg0KYSBpbWcsDQppbWcgew0KCWJvcmRlcjogbm9uZTsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoNCi52aXN1YWxseWhpZGRlbiB7DQoJYm9yZGVyOiAwOw0KCWNsaXA6IHJlY3QoMCAwIDAgMCk7DQoJaGVpZ2h0OiAxcHg7DQoJbWFyZ2luOiAtMXB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJcGFkZGluZzogMDsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJd2lkdGg6IDFweDsNCn0NCg0KLmZpbGVwaWNrZXItaWNvbiB7DQoJbWFyZ2luLXJpZ2h0OiAxMHB4Ow0KfQ0KDQouZmlsZXBpY2tlci1uYXZiYXIgew0KCXBvc2l0aW9uOiBmaXhlZDsNCgl3aWR0aDogMTAwJTsNCgl6LWluZGV4OiA5OTsNCgktd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDEwcHggcmdiYSgwLDAsMCwuMSk7DQoJLW1vei1ib3gtc2hhZG93OiAwIDFweCAxMHB4IHJnYmEoMCwwLDAsLjEpOw0KCWJveC1zaGFkb3c6IDAgMXB4IDEwcHggcmdiYSgwLDAsMCwuMSk7DQoJYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsNCgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZjJmMmYyKTsNCgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwwIDAsMCAxMDAlLGZyb20oI2ZmZiksdG8oI2YyZjJmMikpOw0KCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZmZmLCNmMmYyZjIpOw0KCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZjJmMmYyKTsNCgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmZmYsI2YyZjJmMik7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14Ow0KCWZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmZmZicsZW5kQ29sb3JzdHI9JyNmZmYyZjJmMicsR3JhZGllbnRUeXBlPTApOw0KCS13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwwLDAsLjEpOw0KCS1tb3otYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwwLDAsLjEpOw0KCWJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsMCwwLC4xKTsNCgloZWlnaHQ6IDQycHg7DQoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNWM1YzU7DQp9DQoNCi5maWxlcGlja2VyLW5hdmJhci1pbm5lciB7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCXBhZGRpbmc6IDZweCAxNXB4Ow0KfQ0KDQouZmlsZXBpY2tlci1uYXZiYXItaW5uZXIgcCB7DQoJbWFyZ2luOiAwOw0KCW1hcmdpbi10b3A6IDJweDsNCglmb250LXNpemU6IDExcHg7DQp9DQoNCi5maWxlcGlja2VyLXZpZXctb3B0aW9uIHsNCgltYXgtd2lkdGg6IDM1JTsNCglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQoJcGFkZGluZy1yaWdodDogNTBweDsNCn0NCg0KLmZpbGVwaWNrZXItdHlwZS1maWx0ZXIgew0KCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCgltYXgtd2lkdGg6IDY1JTsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJcmlnaHQ6IDE1cHg7DQoJdGV4dC1hbGlnbjogcmlnaHQ7DQp9DQoNCi5maWxlcGlja2VyLWJ1dHRvbiB7DQoJdGV4dC1zaGFkb3c6IDFweCAxcHggI2ZmZjsNCglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQoJcGFkZGluZzogM3B4IDhweCAycHggOHB4Ow0KCWZvbnQtc2l6ZTogMTRweDsNCglsaW5lLWhlaWdodDogMjBweDsNCgljb2xvcjogIzQ0NDsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpOw0KCXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQoJY3Vyc29yOiBwb2ludGVyOw0KCWJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7DQoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYsI2U2ZTZlNik7DQoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsMCAwLDAgMTAwJSxmcm9tKCNmZmYpLHRvKCNlNmU2ZTYpKTsNCgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZTZlNmU2KTsNCgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYsI2U2ZTZlNik7DQoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmLCNlNmU2ZTYpOw0KCWJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDsNCglib3JkZXI6IDFweCBzb2xpZCAjY2NjOw0KCWJvcmRlci1jb2xvcjogI2U2ZTZlNiAjZTZlNmU2ICNiZmJmYmY7DQoJYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLDAuMSkgcmdiYSgwLDAsMCwwLjEpIHJnYmEoMCwwLDAsMC4yNSk7DQoJYm9yZGVyLWJvdHRvbS1jb2xvcjogI2IzYjNiMzsNCgktd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDsNCgktbW96LWJvcmRlci1yYWRpdXM6IDJweDsNCglib3JkZXItcmFkaXVzOiAycHg7DQoJem9vbTogMTsNCglmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZmZmZmZmYnLGVuZENvbG9yc3RyPScjZmZlNmU2ZTYnLEdyYWRpZW50VHlwZT0wKTsNCglmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkPWZhbHNlKTsNCgktd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwwLjIpLDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMDUpOw0KCS1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LDAuMiksMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4wNSk7DQoJYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LDAuMiksMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4wNSk7DQp9DQoNCi5maWxlcGlja2VyLWJ1dHRvbjpob3ZlciB7DQoJYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsNCgliYWNrZ3JvdW5kLWltYWdlOiBub25lOw0KfQ0KDQouZmlsZXBpY2tlci1idXR0b24uYWN0aXZlIHsNCglib3JkZXI6IDFweCBzb2xpZCAjYjFiMWIxOw0KCWJhY2tncm91bmQtY29sb3I6ICNkNmQ2ZDY7DQoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZTZlNmU2LCAjYzBjMGMwKTsNCgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2U2ZTZlNiksIHRvKCNjMGMwYzApKTsNCgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNlNmU2ZTYsICNjMGMwYzApOw0KCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNlNmU2ZTYsICNjMGMwYzApOw0KCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlNmU2ZTYsICNjMGMwYzApOw0KCWJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDsNCglmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZlNmU2ZTYnLCBlbmRDb2xvcnN0cj0nI2ZmYzBjMGMwJywgR3JhZGllbnRUeXBlPTApOw0KCS13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOw0KCS1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOw0KCWJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTsNCn0NCg0KLmZpbGVwaWNrZXItY29udGFpbmVyIHsNCglwYWRkaW5nOiA1NXB4IDE1cHggOHB4IDE1cHg7DQp9DQoNCi5maWxlcGlja2VyLWJyZWFkY3J1bWIgew0KCW1hcmdpbi1ib3R0b206IDEwcHg7DQoJcGFkZGluZzogMTBweDsNCgliYWNrZ3JvdW5kOiAjZmVmZWZlOw0KCS13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwwLDAsLjA2NSk7DQoJLW1vei1ib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLDAsMCwuMDY1KTsNCglib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLDAsMCwuMDY1KTsNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M1YzVjNTsNCn0NCg0KLmZpbGVwaWNrZXItYnJlYWRjcnVtYiBwIHsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCn0NCg0KLmZpbGVwaWNrZXItbGlzdCB7DQoJd2lkdGg6IDEwMCU7DQoJbWFyZ2luOiAwIDAgMWVtIDA7DQoJbGlzdC1zdHlsZTogbm9uZTsNCglwYWRkaW5nOiAwOw0KfQ0KDQojZmlsZXBpY2tlci1pdGVtcyA+IGxpIHsNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDsNCglib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkOw0KCWJhY2tncm91bmQtY29sb3I6ICNmZmY7DQoJd2lkdGg6IDEzNHB4Ow0KCW1hcmdpbjogM3B4Ow0KCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCn0NCg0KI2ZpbGVwaWNrZXItaXRlbXMgPiBsaS52aXNpYmxlIHsNCglkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsNCn0NCg0KLmZpbGVwaWNrZXItbGlzdCA+IGxpIGltZyB7DQoJbWF4LXdpZHRoOiAxMDAlOw0KCWxpbmUtaGVpZ2h0OiAwOw0KCWJvcmRlcjogbm9uZTsNCn0NCg0KI2ZpbGVwaWNrZXItaXRlbXMgPiBsaTpudGgtY2hpbGQob2RkKSAgew0KCWJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7DQp9DQoNCiNmaWxlcGlja2VyLWl0ZW1zID4gbGkuZmlsZXBpY2tlci1pdGVtLWhlYWRpbmcgew0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCi5maWxlcGlja2VyLWxpc3QgLmZpbGVwaWNrZXItdGh1bWIgew0KCXdpZHRoOiAxMzlweDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCWhlaWdodDogOTBweDsNCglkaXNwbGF5OiB0YWJsZS1jZWxsOw0KCXRleHQtYWxpZ246IGNlbnRlcjsNCgl2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KCWJhY2tncm91bmQtY29sb3I6ICNGNzk4Mzg7DQp9DQoNCi5maWxlcGlja2VyLWxpc3QgLmZpbGVwaWNrZXItdGh1bWIubm8tYmFja2dyb3VuZCB7DQoJYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsNCn0NCg0KLmZpbGVwaWNrZXItbGlzdCAuZmlsZXBpY2tlci10aHVtYiAuaWNvbi1uby10aHVtYiB7DQoJZm9udC1zaXplOiA2MHB4Ow0KCWNvbG9yOiAjZmZmOw0KfQ0KDQouZmlsZXBpY2tlci1saXN0IC5maWxlcGlja2VyLXRodW1iLm5vLWJhY2tncm91bmQgLmljb24tbm8tdGh1bWIgew0KCWNvbG9yOiAjNzc3Ow0KfQ0KDQouZmlsZXBpY2tlci1saXN0IC5maWxlcGlja2VyLXRodW1iICogew0KCXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5maWxlcGlja2VyLWxpc3QgLmZpbGVwaWNrZXItZmlsZS1pbmZvcm1hdGlvbiB7DQoJcGFkZGluZzogNHB4Ow0KCWZvbnQtc2l6ZTogMTJweDsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KfQ0KDQouZmlsZXBpY2tlci1saXN0IC5maWxlcGlja2VyLWZpbGUtdGl0bGUgew0KCWhlaWdodDogMThweDsNCgl3aGl0ZS1zcGFjZTogbm93cmFwOw0KCW92ZXJmbG93OiBoaWRkZW47DQoJdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQoJZm9udC13ZWlnaHQ6IG5vcm1hbDsNCglmb250LXNpemU6IDEycHg7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IDA7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZmlsZXBpY2tlci1saXN0IC5maWxlcGlja2VyLWZpbGUtZGV0YWlscyB7DQoJY29sb3I6ICM3Nzc7DQoJZm9udC1zaXplOiAxMXB4Ow0KfQ0KDQouZmlsZXBpY2tlci1saXN0IGEgew0KCWNvbG9yOiAjMTQ3ZmRiOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCg0KLyogTGlzdCB2aWV3IG92ZXJyaWRlcyAqLw0KDQojZmlsZXBpY2tlci1pdGVtcy5saXN0LXZpZXcgPiBsaSB7DQoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7DQoJYm9yZGVyLXJpZ2h0OiBub25lOw0KCWJhY2tncm91bmQtY29sb3I6ICNmZmY7DQoJd2lkdGg6IDEwMCU7DQoJbWFyZ2luOiAwOw0KCWRpc3BsYXk6IGJsb2NrOw0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCn0NCg0KI2ZpbGVwaWNrZXItaXRlbXMubGlzdC12aWV3ID4gbGkuZmlsZXBpY2tlci1pdGVtLWhlYWRpbmcgew0KCWRpc3BsYXk6IGJsb2NrOw0KCWhlaWdodDogMzBweDsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjNzc3Ow0KCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDQ0Ow0KfQ0KDQojZmlsZXBpY2tlci1pdGVtcy5saXN0LXZpZXcgPiBsaS52aXNpYmxlIHsNCglkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Ow0KfQ0KDQoNCi5saXN0LXZpZXcgPiBsaS5maWxlcGlja2VyLWl0ZW0taGVhZGluZyAuZmlsZXBpY2tlci10aHVtYiwNCi5saXN0LXZpZXcgPiBsaS5maWxlcGlja2VyLWl0ZW0taGVhZGluZyAuZmlsZXBpY2tlci1maWxlLWluZm9ybWF0aW9uLA0KLmxpc3QtdmlldyA+IGxpLmZpbGVwaWNrZXItaXRlbS1oZWFkaW5nIC5maWxlcGlja2VyLWZpbGUtZGV0YWlscywNCi5saXN0LXZpZXcgPiBsaS5maWxlcGlja2VyLWl0ZW0taGVhZGluZyAuZmlsZXBpY2tlci1maWxlLWRldGFpbHMgc3BhbiB7DQoJaGVpZ2h0OiAzMHB4Ow0KCWxpbmUtaGVpZ2h0OiAzMHB4Ow0KfQ0KDQoubGlzdC12aWV3IC5maWxlcGlja2VyLWl0ZW0taGVhZGluZyAuZmlsZXBpY2tlci1maWxlLWRldGFpbHMsDQoubGlzdC12aWV3IC5maWxlcGlja2VyLWl0ZW0taGVhZGluZyBoNCB7DQoJY29sb3I6ICNmZmY7DQoJdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggIzY2NjsNCglmb250LXNpemU6IDEycHg7DQp9DQoNCi5saXN0LXZpZXcgLmZpbGVwaWNrZXItdGh1bWIgew0KCW92ZXJmbG93OiBoaWRkZW47DQoJZGlzcGxheTogaW5saW5lLWJsb2NrDQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQoJd2lkdGg6IDUwcHg7DQoJaGVpZ2h0OiA0NXB4Ow0KCWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglsZWZ0OiAwOw0KCXRvcDogMDsNCn0NCg0KLmxpc3QtdmlldyAuZmlsZXBpY2tlci10aHVtYiBhIHsNCglkaXNwbGF5OiBibG9jazsNCglsaW5lLWhlaWdodDogNDVweDsNCn0NCg0KLmxpc3QtdmlldyAuZmlsZXBpY2tlci10aHVtYi5uby1iYWNrZ3JvdW5kIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCn0NCg0KLmxpc3QtdmlldyAuZmlsZXBpY2tlci10aHVtYiAuaWNvbi1uby10aHVtYiB7DQoJZm9udC1zaXplOiAxOHB4Ow0KCWNvbG9yOiAjNzc3Ow0KfQ0KDQoubGlzdC12aWV3ICAuZmlsZXBpY2tlci1maWxlLWluZm9ybWF0aW9uIHsNCglwYWRkaW5nOiAwIDIxNXB4IDAgMTVweDsNCglmb250LXNpemU6IDEycHg7DQoJYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQoJbWF4LXdpZHRoOiAxMDAlOw0KCWRpc3BsYXk6IGJsb2NrOw0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCglvdmVyZmxvdzogaGlkZGVuOw0KCXotaW5kZXg6IDE7DQoJaGVpZ2h0OiA0NXB4Ow0KCWxpbmUtaGVpZ2h0OiA0NXB4Ow0KCW1hcmdpbi1sZWZ0OiA1MHB4Ow0KfQ0KDQoubGlzdC12aWV3IC5maWxlcGlja2VyLWZpbGUtdGl0bGUgew0KCWRpc3BsYXk6IGJsb2NrOw0KCWhlaWdodDogYXV0bzsNCglvdmVyZmxvdzogaGlkZGVuOw0KCWZvbnQtd2VpZ2h0OiBub3JtYWw7DQoJZm9udC1zaXplOiAxMnB4Ow0KCW1hcmdpbjogMDsNCglwYWRkaW5nOiAwOw0KCXRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCi5saXN0LXZpZXcgLmZpbGVwaWNrZXItZmlsZS1kZXRhaWxzIHsNCglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQoJd2lkdGg6IDIxNXB4Ow0KCWhlaWdodDogNDVweDsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJcmlnaHQ6IDE1cHg7DQoJdG9wOiAwOw0KfQ0KDQoubGlzdC12aWV3IC5maWxlcGlja2VyLWZpbGUtZGV0YWlscyBzcGFuIHsNCglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQoJd2lkdGg6IDkwcHg7DQoJaGVpZ2h0OiA0NXB4Ow0KCWxpbmUtaGVpZ2h0OiA0NXB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQp9DQoNCi5saXN0LXZpZXcgLmZpbGVwaWNrZXItZmlsZS1kZXRhaWxzIHNwYW4uZmlsZXBpY2tlci1maWxlLXNpemUgew0KCXdpZHRoOiA4MHB4Ow0KfQ0KDQoubGlzdC12aWV3IC5maWxlcGlja2VyLWZpbGUtZGV0YWlscyBzcGFuLmZpbGVwaWNrZXItZmlsZS1leHQgew0KCXdpZHRoOiAzMHB4Ow0KfQ0KDQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MzBweCkgew0KCS5saXN0LXZpZXcgLmZpbGVwaWNrZXItZmlsZS1kZXRhaWxzIHNwYW4uZmlsZXBpY2tlci1maWxlLWV4dCAgew0KCQlkaXNwbGF5OiBub25lOw0KCX0NCg0KCS5saXN0LXZpZXcgLmZpbGVwaWNrZXItZmlsZS1kZXRhaWxzIHsNCgkJd2lkdGg6IDE3MHB4Ow0KCX0NCg0KCS5saXN0LXZpZXcgIC5maWxlcGlja2VyLWZpbGUtaW5mb3JtYXRpb24gew0KCQlwYWRkaW5nLXJpZ2h0OiAxODVweDsNCgl9DQoNCgkuZmlsZXBpY2tlci1vcHRpb24tdGl0bGUgew0KCQlkaXNwbGF5OiBub25lOw0KCX0NCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/css/filepicker.min.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGZvbnQtZmFjZXtmb250LWZhbWlseTpjbXNtcy1maWxlcGlja2VyO3NyYzp1cmwoLi4vZm9udHMvY21zbXMtZmlsZXBpY2tlci5lb3QpO3NyYzp1cmwoLi4vZm9udHMvY21zbXMtZmlsZXBpY2tlci5lb3Q/I2llZml4KSBmb3JtYXQoJ2VvdCcpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OmNtc21zLWZpbGVwaWNrZXI7c3JjOnVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZ2hDL01FQUFBQzhBQUFBWUdOdFlYRG1IUUNIQUFBQkhBQUFBRVJuWVhOd0FBQUFFQUFBQVdBQUFBQUlaMng1WnBXdjdLa0FBQUZvQUFBTE1HaGxZV1QvSGhlTEFBQU1tQUFBQURab2FHVmhCQWNDRkFBQUROQUFBQUFrYUcxMGVCZ25BTUFBQUF6MEFBQUFPR3h2WTJFVHRoRW9BQUFOTEFBQUFCNXRZWGh3QUJzQTZRQUFEVXdBQUFBZ2JtRnRaY0FvNFZrQUFBMXNBQUFCaW5CdmMzUUFBd0FBQUFBTytBQUFBQ0FBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUNEbUN3SGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQURBQUFBQUlBQWdBQWdBQUFDRG1DLy85Ly84QUFBQWc1Z0QvL2YvLy8rRWFBZ0FEQUFFQUFBQUFBQUFBQUFBQkFBSC8vd0FQQUFFQUFBQUFBQUFBQUFBQ0FBQTNPUUVBQUFBQUFRQUEvOTRCdHdHNUFFUUFBQUVSRkFjR0J3WUhCaU1pSnlZbkppY21OVFEzTmpjMk56WXpNaGMxQnhVVUJ3WUhCZ2NHSXlJbkppY21KeVkxTkRjMk56WTNOak15RnhFME56WS9BVFl6TWhjV0ZRRzNDZ29PRHc4UERRd1BEdzhQQ1FvS0NROFBEdzhNSGhuYkNnb09EdzhQRFF3UER3OFBDUW9LQ1E4UER3OE1IaGtHQlFudEJBUU1DQWdCbnY3QUR3c0xCZ1lEQXdNREJnWUxDdzhPQ3dzR0J3TURESnBFeWc4TEN3WUdBd01EQXdZR0N3c1BEZ3NMQmdZREF3c0JGUWdJQndOSkFRZ0lDd0FBQ1FBQUFDVUNBQUczQUJRQUtRQStBRk1BYUFCOUFKSUFwd0M4QUFBM0ZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVTFGUlFIQmlzQklpY21QUUUwTnpZN0FUSVhGaFVYRlJRSEJpc0JJaWNtUFFFME56WTdBVElYRmhVREZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVVhGUlFIQmlzQklpY21QUUUwTnpZN0FUSVhGaFVYRlJRSEJpc0JJaWNtUFFFME56WTdBVElYRmhVREZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVVhGUlFIQmlzQklpY21QUUUwTnpZN0FUSVhGaFUxRlJRSEJpc0JJaWNtUFFFME56WTdBVElYRmhXU0NBZ0xYQXNJQ0FnSUMxd0xDQWdJQ0F0Y0N3Z0lDQWdMWEFzSUNMY0lDQXRjQ3dnSUNBZ0xYQXNJQ0xjSUNBdGNDd2dJQ0FnTFhBc0lDTGNJQ0F0Y0N3Z0lDQWdMWEFzSUNMY0lDQXRjQ3dnSUNBZ0xYQXNJQ0xjSUNBdGNDd2dJQ0FnTFhBc0lDTGNJQ0F0Y0N3Z0lDQWdMWEFzSUNBZ0lDMXdMQ0FnSUNBdGNDd2dJZHpjTENBZ0lDQXMzQ3dnSUNBZ0xramNMQ0FnSUNBczNEQWdJQ0FnTWtqY0xDQWdJQ0FzM0N3Z0lDQWdMQVNRMkRBZ0lDQWdNTmd3SUNBZ0lESkkzQ3dnSUNBZ0xOd3dJQ0FnSURKSTNDd2dJQ0FnTE53c0lDQWdJQ3dFa05nd0lDQWdJRERZTUNBZ0lDQXlTTndzSUNBZ0lDemNNQ0FnSUNBeVNOZ3dJQ0FnSUREWU1DQWdJQ0F3QUFBQUFCZ0FBQUNVQ0FBRzNBQlFBS1FBK0FGTUFhQUI5QUFBM0ZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVTFGUlFIQmlzQklpY21QUUUwTnpZN0FUSVhGaFVGRlJRSEJpTWhJaWNtUFFFME56WXpJVElYRmhVQkZSUUhCaXNCSWljbVBRRTBOelk3QVRJWEZoVUZGUlFIQmlNaElpY21QUUUwTnpZeklUSVhGaFUxRlJRSEJpTWhJaWNtUFFFME56WXpJVElYRmhXU0NBZ0xYQXNJQ0FnSUMxd0xDQWdJQ0F0Y0N3Z0lDQWdMWEFzSUNBRnVDQWdML3UwTENBZ0lDQXNCRXdzSUNQNlNDQWdMWEFzSUNBZ0lDMXdMQ0FnQmJnZ0lDLzd0Q3dnSUNBZ0xBUk1MQ0FnSUNBdis3UXNJQ0FnSUN3RVRDd2dJZHpjTENBZ0lDQXMzQ3dnSUNBZ0xramNMQ0FnSUNBczNEQWdJQ0FnTWtqY0xDQWdJQ0FzM0N3Z0lDQWdMQVNRMkRBZ0lDQWdNTmd3SUNBZ0lESkkzQ3dnSUNBZ0xOd3dJQ0FnSURKSTJEQWdJQ0FnTU5nd0lDQWdJREFBQUFBTUFBQUFBQVc0QnR3QUtBQklBTEFBQU55RW5JeUluSmpjbkl3TVRNeVl2QVNZbkJ4Y0RGZ2NHSXlFaUp5WTNBelkzTmpzQk1oY1dId0VXRnhZSEpRRWxBWFlNQndrQkFaRUJ0MnNDQkZrRUNBR1VBUUVKQnczK3lnd0hDUUVCQVFjSkNyZ0xEZzBKV0FrRkJ3RWwyd2dJQzNmK2t3RUFDQU5hQXdOckN2OEFDd2dJQ0FnTEFZQU1DQWdHQmdoWkNBME9EQUFFQUZBQUFBR2dBYkFBSWdBbkFDd0FNZ0FBTnhFekZTTVZNeFVqRlRNVkl4VXpGVE0xSXpVek5TTTFNelVqTlRNMU14VXpFU0UzSXhVek5RY2pOVE1WRXpNWEZTTTFVS0FnSUNBZ0lDQWdJQ0FnSUNBZ01HRCtzTUJBUUJBZ0lGQUVURkFBQWJBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0Qrc01Cd2NGOGdJQUZQVEFOUEFBQUNBQUFBSlFJWkFiY0FHQUEwQUFBbEZBOEJCZ2NHQnlVR0p5WTFORDhCTmpjMkZ5VVdGeFlWSnhVSEpnY0dEd0UwTlRRMUVUUTNOaGMzRmhjV0hRRTNGaGNXRlFJWkNXQU1GaGNTL3NrS0NBY0pZQXdXRmhNQk53b0hDR0x1R3gwZUVXSVRFeHBiR3hNU25Cb1RFOHNKQ1hNTkN3a0JBUUVFQXdvSEMzRVBDUXNCQVFFQ0JRaGlMUUVCRHd3V2NnRURBUU1CRVJzU0ZBRUJBUklVR1FvQkFSSVVHUUFBQUFBQkFBQUFKUUhiQWJjQUdnQUFBUlVVQndZaklTSW5KalVSTkRjMk93RXlGeFlkQVRNeUZ4WVZBZHNTRXh2K3BSb1RFeE1UR2xzYkV4TEFHeE1TQVM3Skd4TVNFaE1iQVJJYUV4TVRFeG9KRXhNYUFBQUJBQUFBSlFJQUFaSUFKQUFBQVJFVUJ3WWpJaThCRlJRSEJpc0JJaWNtUFFFME56WTdBVElYRmgwQk56WXpNaGNXRlFJQUN3UURDQVZ6R0JraXlTSVlHQmdZSXNraUdSaHpCUWdEQkFzQmQvN0pEQVVCQlhNdkloZ1lHQmdpeVNJWUdCZ1lJaTl6QlFFRkRBQUVBQUFBQUFJbEFiY0FFQUFYQUN3QVFRQUFFeFFIQmlNaUp5WTFORGMyTXpJWEZoVUZGU0UxTnhjM055RWlCd1lWRVJRWEZqTWhNamMyTlJFMEp5WWpGeEVVQndZaklTSW5KalVSTkRjMk15RXlGeFlWdHhBUUZ4Y1FFQkFRRnhjUUVBRWsvbTVjTFpPUy9qY0VBd0lDQXdRQnlRUUNBd01DQkM0T0RSUCtOeE1PRFEwT0V3SEpFdzBPQVRjWEVCQVFFQmNYRUJBUUVCZHVnRGRiTFpKU0FnTUUvcVVFQXdJQ0F3UUJXd1FEQWduK3BSTU9EUTBPRXdGYkV3ME9EZzBUQUFBQUF3QUFBQ1VCdHdHU0FCUUFLUUErQUFBbEZSUUhCZ2NsQmljbVBRRTBOellYSlJZWEZoVTFGUlFIQmljRkppY21QUUUwTnpZM0JUWVhGaFUxRlJRSEJnY2xCaWNtUFFFME56WVhKUllYRmhVQnR3WUZCLzV0QndZRkJRWUhBWk1IQlFZR0JRZitiUWNHQlFVR0J3R1RCd1VHQmdVSC9tMEhCZ1VGQmdjQmt3Y0ZCbHNsQndZRUFRRUJCZ1FKSXdrRUJ3RUJBUVVHQjVJa0NBVUdBUUVCQkFjR0pnWUhCQUVCQVFZRkNKTW1CZ1lGQVFFQkJ3UUlKQWdGQmdFQkFRUUhCZ0FBQUFzQUFQL2JBaVVCdHdBVUFDa0FQZ0JUQUdnQWZRQ1NBS2NBdkFEUkFPWUFBRGMxTkNjbUt3RWlCd1lkQVJRWEZqc0JNamMyTlQwQk5DY21Ld0VpQndZZEFSUVhGanNCTWpjMk5UMEJOQ2NtS3dFaUJ3WWRBUlFYRmpzQk1qYzJOUVUxTkNjbUt3RWlCd1lkQVJRWEZqc0JNamMyTlFFMU5DY21Ld0VpQndZZEFSUVhGanNCTWpjMk5RRTFOQ2NtS3dFaUJ3WWRBUlFYRmpzQk1qYzJOU2MxTkNjbUt3RWlCd1lkQVJRWEZqc0JNamMyTlJjMU5DY21Ld0VpQndZZEFSUVhGanNCTWpjMk5UMEJOQ2NtS3dFaUJ3WWRBUlFYRmpzQk1qYzJOVDBCTkNjbUt3RWlCd1lkQVJRWEZqc0JNamMyTlRjUkZBY0dJeUVpSnlZMUVUUTNOak1oTWhjV0ZXNEdCUWdrQ0FVRkJRVUlKQWdGQmdZRkNDUUlCUVVGQlFna0NBVUdCZ1VJSkFnRkJRVUZDQ1FJQlFZQkpBVUdCOXNJQlFZR0JRamJCd1lGL3R3R0JRZ2tDQVVGQlFVSUpBZ0ZCZ0dTQlFZSEpRY0dCUVVHQnlVSEJnVnVCUVlIMndnRkJnWUZDTnNIQmdWdUJRWUhKUWNHQlFVR0J5VUhCZ1VGQmdjbEJ3WUZCUVlISlFjR0JRVUdCeVVIQmdVRkJnY2xCd1lGSlE0TkUvNDNFdzRORFE0VEFja1REUTRTSlFjR0JRVUdCeVVIQmdVRkJnZHVKUWNGQmdZRkJ5VUhCZ1VGQmdkdUpBZ0ZCZ1lGQ0NRSUJRWUdCUWpja3djRkJnWUZCNU1IQmdVRkJnY0JTU1VIQmdVRkJnY2xCd1VHQmdVSC9yY2xCd1lGQlFZSEpRY0dCUVVHQjl5U0J3WUZCUVlIa2dnRkJnWUZDRzRsQndVR0JnVUhKUWNHQlFVR0IyNGtDQVVHQmdVSUpBZ0ZCZ1lGQ0cwbEJ3WUZCUVlISlFjRkJnWUZCeTcrZ0JNTkRnNE5Fd0dBRXcwT0RnMFRBQXdBY0FBZ0FaQUJvQUFFQUFrQURnQVRBQmdBSFFBaUFDZ0FMd0EwQURrQVBnQUFOek0xSXhVVk16VWpGVFV6TlNNVkZUTTFJeFVWTXpVakZUY3pOU01WTlRNMUl4VTNJeEVoRVNjVEl4RXpGVE1SSnpNMUl4VTFNelVqRlJVek5TTVZzQkFRRUJBUUVCQVFFQkFnZ0lDQWdIL2ZBU0JCSWVDZ1FLQ0FnSUNBZ0lEd0VCQXdFQkJnRUJDUUVCQXdFQkJnRUJCZ0VCQ0Evb0FCUUVEK29RRS9MLzd3VHhBUVlCQVFrQkFRQUFBQUFRQUFBQUVBQUZlRDJlbGZEenoxQUFzQ0FBQUFBQURPN090OUFBQUFBTTdzNjMwQUFQL2JBaVVCdVFBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFCNFAvZ0FBQUNKUUFBQUFBQ0pRQUJBQUFBQUFBQUFBQUFBQUFBQUFBQURnQUFBQUFCQUFBQUFiY0FBQUlBQUFBQ0FBQUFBVzRBQUFJQUFGQUNKUUFBQWR3QUFBSUFBQUFDSlFBQUFiY0FBQUlsQUFBQ0FBQndBQUFBQUFBS0FIQUJaZ0lRQWxvQ25BTHdBeG9EVUFPeUJCUUZRQVdZQUFBQUFRQUFBQTRBNXdBTUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QXJnQUJBQUFBQUFBQkFDQUFBQUFCQUFBQUFBQUNBQTRBaGdBQkFBQUFBQUFEQUNBQU5nQUJBQUFBQUFBRUFDQUFsQUFCQUFBQUFBQUZBQllBSUFBQkFBQUFBQUFHQUJBQVZnQUJBQUFBQUFBS0FDZ0F0QUFEQUFFRUNRQUJBQ0FBQUFBREFBRUVDUUFDQUE0QWhnQURBQUVFQ1FBREFDQUFOZ0FEQUFFRUNRQUVBQ0FBbEFBREFBRUVDUUFGQUJZQUlBQURBQUVFQ1FBR0FDQUFaZ0FEQUFFRUNRQUtBQ2dBdEFCakFHMEFjd0J0QUhNQUxRQm1BR2tBYkFCbEFIQUFhUUJqQUdzQVpRQnlBRllBWlFCeUFITUFhUUJ2QUc0QUlBQXhBQzRBTUFCakFHMEFjd0J0QUhNQUxRQm1BR2tBYkFCbEFIQUFhUUJqQUdzQVpRQnlZMjF6YlhNdFptbHNaWEJwWTJ0bGNnQmpBRzBBY3dCdEFITUFMUUJtQUdrQWJBQmxBSEFBYVFCakFHc0FaUUJ5QUZJQVpRQm5BSFVBYkFCaEFISUFZd0J0QUhNQWJRQnpBQzBBWmdCcEFHd0FaUUJ3QUdrQVl3QnJBR1VBY2dCSEFHVUFiZ0JsQUhJQVlRQjBBR1VBWkFBZ0FHSUFlUUFnQUVrQVl3QnZBRTBBYndCdkFHNEFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgZm9ybWF0KCd0cnVldHlwZScpLHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUms5VVZFOEFBQkwwQUFvQUFBQUFFcXdBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkRSa1lnQUFBQTlBQUFEd3dBQUE4TUFtbC84MDlUTHpJQUFCQUFBQUFBWUFBQUFHQUlRdnpCWTIxaGNBQUFFR0FBQUFCRUFBQUFST1lkQUlkbllYTndBQUFRcEFBQUFBZ0FBQUFJQUFBQUVHaGxZV1FBQUJDc0FBQUFOZ0FBQURiL0hoZUxhR2hsWVFBQUVPUUFBQUFrQUFBQUpBUUhBaFJvYlhSNEFBQVJDQUFBQURnQUFBQTRHQ2NBd0cxaGVIQUFBQkZBQUFBQUJnQUFBQVlBRGxBQWJtRnRaUUFBRVVnQUFBR0tBQUFCaXNBbzRWbHdiM04wQUFBUzFBQUFBQ0FBQUFBZ0FBTUFBQUVBQkFRQUFRRUJFV050YzIxekxXWnBiR1Z3YVdOclpYSUFBUUlBQVFBOCtCd0MrQnNEK0JnRUhnb0FHVk1TWDR1TEhnb0FHVk1TWDR1TERBZUxadmk1K0xrRkhRQUFBTThQSFFBQUFOUVJIUUFBQUFrZEFBQVBBeElBRHdFQkVTRWtLUzR6T0QxQ1IweFJWbHRnWTIxemJYTXRabWxzWlhCcFkydGxjbU50YzIxekxXWnBiR1Z3YVdOclpYSjFNakIxUlRZd01IVkZOakF4ZFVVMk1ESjFSVFl3TTNWRk5qQTBkVVUyTURWMVJUWXdOblZGTmpBM2RVVTJNRGgxUlRZd09YVkZOakJCZFVVMk1FSUFBQUlCaVFBTUFBNENBQUVBQkFBSEFQOERqd1ZLQmU4R2tnZFJCN1FJUEFrdENnME5OdzRQL0pRTys1UU9RdmhMK0RJVmkvdlVCWXVCaUlPRmhBaUZoSU9GZ1ljSWdZZUJpSUdKQ0lHSmdvcUNpd2lDaTRLTWdZMElnWTJCam9HUENJR1BnNUdGa2dpRmtvaVRpNVVJaTVXT2s1R1NDSkdTazVHVmp3aVZqNVdPbFkwSWxZMlVqSlNMQ0orTG5ZZWNoQWlMOXkwRisyOUhCWXY3WHdXTGdZaURoWVFJaFlTRGhZR0hDSUdIZ1lpQmlRaUJpWUtLZ29zSWdvdUNqSUdOQ0lHTmdZNkJqd2lCajRPUmhaSUloWktJazR1VkNJdVZqcE9Sa2dpUmtwT1JsWThJbFkrVmpwV05DSldObEl5VWl3aWZpNTJIbklRSWkvZW9CWXVSalpDUGtBaVBrSkNPa1kwSTk0TFVCWTJNam91T2l3aVRpNUdJa0lZSWtJYU9oWXVEQ0E3M0p2Y0xGWXRVQll1RGlJV0doZ2lHaG9XSWc0c0lNSXNGZzR1RmpvYVFDSWFRaUpHTGt3aUx3Z1dMazQ2UmtKQUlrSkNSanBPTENPYUxCWk9Ma1lpUWhnaVFobzZGaTRNSWkvY21GWXRVQll1RGlJV0doZ2lHaG9XSWc0c0lNSXNGZzR1RmpvYVFDSWFRaUpHTGt3aUx3Z1dMazQ2UmtKQUlrSkNSanBPTENPYUxCWk9Ma1lpUWhnaVFobzZGaTRNSTkwdjdKaFdMVkFXTGc0aUZob1lJaG9hRmlJT0xDRENMQllPTGhZNkdrQWlHa0lpUmk1TUlpOElGaTVPT2taQ1FDSkNRa1k2VGl3am1pd1dUaTVHSWtJWUlrSWFPaFl1RENQdEw5N2tWaTFRRmk0T0loWWFHQ0lhR2hZaURpd2d3aXdXRGk0V09ocEFJaHBDSWtZdVRDSXZDQll1VGpwR1FrQWlRa0pHT2s0c0k1b3NGazR1UmlKQ0dDSkNHam9XTGd3ajNTL3NtRll0VUJZdURpSVdHaGdpR2hvV0lnNHNJTUlzRmc0dUZqb2FRQ0lhUWlKR0xrd2lMd2dXTGs0NlJrSkFJa0pDUmpwT0xDT2FMQlpPTGtZaVFoZ2lRaG82Rmk0TUk5MHY3SmhXTFZBV0xnNGlGaG9ZSWhvYUZpSU9MQ0RDTEJZT0xoWTZHa0FpR2tJaVJpNU1JaThJRmk1T09rWkNRQ0pDUWtZNlRpd2ptaXdXVGk1R0lrSVlJa0lhT2hZdURDUHRMOTdrVmkxUUZpNE9JaFlhR0NJYUdoWWlEaXdnd2l3V0RpNFdPaHBBSWhwQ0lrWXVUQ0l2Q0JZdVRqcEdRa0FpUWtKR09rNHNJNW9zRms0dVJpSkNHQ0pDR2pvV0xnd2ozUy9zbUZZdFVCWXVEaUlXR2hnaUdob1dJZzRzSU1Jc0ZnNHVGam9hUUNJYVFpSkdMa3dpTHdnV0xrNDZSa0pBSWtKQ1JqcE9MQ09hTEJaT0xrWWlRaGdpUWhvNkZpNE1JaS9jbUZZdFVCWXVEaUlXR2hnaUdob1dJZzRzSU1Jc0ZnNHVGam9hUUNJYVFpSkdMa3dpTHdnV0xrNDZSa0pBSWtKQ1JqcE9MQ09hTEJaT0xrWWlRaGdpUWhvNkZpNE1JRHZjbTl3c1ZpMVFGaTRPSWhZYUdDSWFHaFlpRGl3Z3dpd1dEaTRXT2hwQUlocENJa1l1VENJdkNCWXVUanBHUWtBaVFrSkdPazRzSTVvc0ZrNHVSaUpDR0NKQ0dqb1dMZ3dpTDl5WVZpMVFGaTRPSWhZYUdDSWFHaFlpRGl3Z3dpd1dEaTRXT2hwQUlocENJa1l1VENJdkNCWXVUanBHUWtBaVFrSkdPazRzSTVvc0ZrNHVSaUpDR0NKQ0dqb1dMZ3dqNEF2c21GWXRVQll1RGlJV0doZ2lHaG9XSWc0c0krNmFMQllPTGhZNkdrQWlHa0lpUmk1TUlpOElGaTVPT2taQ1FDSkNRa1k2VGl3ajNwb3NGazR1UmlKQ0dDSkNHam9XTGd3ajhBdmU1Rll0VUJZdURpSVdHaGdpR2hvV0lnNHNJTUlzRmc0dUZqb2FRQ0lhUWlKR0xrd2lMd2dXTGs0NlJrSkFJa0pDUmpwT0xDT2FMQlpPTGtZaVFoZ2lRaG82Rmk0TUkrQUw3SmhXTFZBV0xnNGlGaG9ZSWhvYUZpSU9MQ1B1bWl3V0RpNFdPaHBBSWhwQ0lrWXVUQ0l2Q0JZdVRqcEdRa0FpUWtKR09rNHNJOTZhTEJaT0xrWWlRaGdpUWhvNkZpNE1JaS9jbUZZdFVCWXVEaUlXR2hnaUdob1dJZzRzSSs2YUxCWU9MaFk2R2tBaUdrSWlSaTVNSWk4SUZpNU9Pa1pDUUNKQ1FrWTZUaXdqM3Bvc0ZrNHVSaUpDR0NKQ0dqb1dMZ3dnTyt5YXdzQlgzdVlzRmkvZHZCZnNMaXdXRGk0V09ocEFJaHBDSWtZdVRDSXYzQ3dYN0pvc0ZpL3dDQmZkTDk1UVY5b3NGaVpHSmo0bU5DRExrQlltTmg0MkZqUWlMSUFYM0pvSVZpL3VVQll1RGlJV0doZ2lHaG9XSWc0c0krOHVMQllPTGhZNkdrQWlHa0lpUmk1TUlpL2dVQll1VGpwR1FrQWlRa0pHT2s0c0k5MHVMQlpPTGs0bVVod2lVaDVLR2tJWUk1RElGa0lhUWhJK0NDSStDallPTGd3Z08yNHNWaS9oRUJmYzBpd1dMYXdWcml3V0xhd1dyaXdXTGF3VnJpd1dMYXdXcml3V0xhd1ZyaXdXTGF3V3Jpd1dMYXdXcml3V0xxd1ZyaXdXTHF3V3Jpd1dMcXdWcml3V0xxd1dyaXdXTHF3VnJpd1dMcXdXcml3V0xxd1c3aXdXTEt3WHJpd1dMKytRRisrU0xCZmRVOTFRVlM0c0ZpL3NFQmN1TEJZdjNCQVY3TEJWcml3V0xxd1dyaXdXTGF3WGI5K01WajRzRjF6OEZpNGdGTzRzRmk5b0ZEckQ0cmZkZkZZdUZpSVdGaEFncit3VUZnNEdBZzN5RUNIeUVmWWgraXdqN3k0c0ZoWXVGaklhTkNJYU5pSStMa1FpTGtZNlJrWklJNi9jRkJaT1ZscE9ha2dpYWtwbU9tSXNJOTh1TEJaR0xrWXFRaVFpUWlZNkhpNFVJS2UwVmkxMEYrNEtMQlhtTGVJWjNnZ2gzZ251QWYzMElLZnNIQll1TWk0eUxqUWlMall1TWk0d0lpL2VtQll1ZGtacVltQWlZbUpxUm5Zc0k1b3NGbll1YWhaaCtDSmgra1h5TGVRaUxnZ1gzTDRzRm5ZdWFoWmgrQ0poK2tYeUxlUWdPWi9odjk4SVZpL3RkQll0NWhYeCtmZ2grZm55RmVZc0krKytMQlhtTGZKRittQWgrbUlXYWk1MElpL2VtQll1ZGtacVltQWlZbUpxUm5Zc0k1b3NGbll1YWhaaCtDSmgra1h5TGVRaUxnZ1gzVklzRm5ZdWFoWmgrQ0poK2tYeUxlUWdPK0pUNEN4V0wrOHNGaTRPSGhZU0lDSW1LaVl1Sml3aUdpNGVOaUk4SSt3ZjNCd1dMWEFXTGRJTjRlM3NJZTN0NGczU0xDUHRkaXdWMGkzaVRlNXNJZTV1RG5vdWlDSXYzWFFXTG9wT2VtNXNJbTV1ZWs2S0xDUGRkaXdXaWk1NkRtM3NJbTN1VGVJdDBDSXRjQmZjSDl3Y0ZqbytQalpDTENJMkxqWXVOaWdpU2lJK0ZpNE1JRHJEM1MvZkxGWXQ4aG42QWdBaUFnSDZHZklzSWZJdCtrSUNXQ0lDV2hwaUxtZ2lMbXBDWWxwWUlscGFZa0pxTENKcUxtSWFXZ0FpV2dKQitpM3dJOTduN0FoV0wreFFGL0NhTEJZdkNCZWJtQmJsZEJmY205eVlGOXliZEZmeGRpd1dKaTRtS2lZa0lpWW1LaVl1SkNJdjc3d1dMaVl5SmpZa0lqWW1OaW8yTENQaGRpd1dOaTQyTWpZMElqWTJNall1TkNJdjM3d1dMallxTmlZMElpWTJKakltTENMbUNGWXY3N3dXTGZvZUFnb0lJZ29LQWgzNkxDUHhkaXdWK2k0Q1BncFFJZ3BTSGxvdVlDSXYzN3dXTG1JK1dsSlFJbEpTV2o1aUxDUGhkaXdXWWk1YUhsSUlJbElLUGdJdCtDQTVDK0V2bUZZdG1CWXVHaVllSGh3aUhoNGVKaG9zSS9DYUxCWWFMaDQySGp3aUhqNG1QaTVBSWk3QUZpNUNOajQrUENJK1BqNDJRaXdqNEpvc0ZrSXVQaVkrSENJK0hqWWVMaGdpTDl5WVZpMllGaTRhSmg0ZUhDSWVIaDRtR2l3ajhKb3NGaG91SGpZZVBDSWVQaVkrTGtBaUxzQVdMa0kyUGo0OElqNCtQalpDTENQZ21pd1dRaTQrSmo0Y0lqNGVOaDR1R0NJdjNKaFdMWmdXTGhvbUhoNGNJaDRlSGlZYUxDUHdtaXdXR2k0ZU5oNDhJaDQrSmo0dVFDSXV3Qll1UWpZK1Bqd2lQajQrTmtJc0krQ2FMQlpDTGo0bVBod2lQaDQySGk0WUlEckQzQXAwVmk3QUZpNUNKajRlUENJZVBoNDJHaXdobWl3V0dpNGVKaDRjSWg0ZUpoNHVHQ0l0bUJZdUdqWWVQaHdpUGg0K0prSXNJc0lzRmtJdVBqWStQQ0krUGpZK0xrQWlMOXdJVmk3QUZpNUNKajRlUENJZVBoNDJHaXdobWl3V0dpNGVKaDRjSWg0ZUpoNHVHQ0l0bUJZdUdqWWVQaHdpUGg0K0prSXNJc0lzRmtJdVBqWStQQ0krUGpZK0xrQWlMOXdJVmk3QUZpNUNKajRlUENJZVBoNDJHaXdobWl3V0dpNGVKaDRjSWg0ZUpoNHVHQ0l0bUJZdUdqWWVQaHdpUGg0K0prSXNJc0lzRmtJdVBqWStQQ0krUGpZK0xrQWozdWZ0dkZZdjNKZ1dMa0ltUGg0OEloNCtIallhTENQdHZpd1dHaTRlSmg0Y0loNGVKaDR1R0NJdjdKZ1dMaG8ySGo0Y0lqNGVQaVpDTENQZHZpd1dRaTQrTmo0OElqNCtOajR1UUNQdTU5OTBWaTdBRmk1Q0pqNGVQQ0llUGg0Mkdpd2htaXdXR2k0ZUpoNGNJaDRlSmg0dUdDSXRtQll1R2pZZVBod2lQaDQrSmtJc0lzSXNGa0l1UGpZK1BDSStQalkrTGtBajRKdnZkRll1d0JZdVFpWStIandpSGo0ZU5ob3NJWm9zRmhvdUhpWWVIQ0llSGlZZUxoZ2lMWmdXTGhvMkhqNGNJajRlUGlaQ0xDTENMQlpDTGo0MlBqd2lQajQyUGk1QUkrd0wzYnhXTDl5WUZpNUNKajRlUENJZVBoNDJHaXdqN2I0c0Zob3VIaVllSENJZUhpWWVMaGdpTCt5WUZpNGFOaDQrSENJK0hqNG1RaXdqM2I0c0ZrSXVQalkrUENJK1BqWStMa0FqM0F2c0NGWXV3Qll1UWlZK0hqd2lIajRlTmhvc0lab3NGaG91SGlZZUhDSWVIaVllTGhnaUxaZ1dMaG8ySGo0Y0lqNGVQaVpDTENMQ0xCWkNMajQyUGp3aVBqNDJQaTVBSWkvY0NGWXV3Qll1UWlZK0hqd2lIajRlTmhvc0lab3NGaG91SGlZZUhDSWVIaVllTGhnaUxaZ1dMaG8ySGo0Y0lqNGVQaVpDTENMQ0xCWkNMajQyUGp3aVBqNDJQaTVBSWkvY0NGWXV3Qll1UWlZK0hqd2lIajRlTmhvc0lab3NGaG91SGlZZUhDSWVIaVllTGhnaUxaZ1dMaG8ySGo0Y0lqNGVQaVpDTENMQ0xCWkNMajQyUGp3aVBqNDJQaTVBSXNMa1ZpL3dVQll0K2g0Q0NnZ2lDZ29DSGZvc0kvRjJMQlg2TGdJK0NsQWlDbEllV2k1Z0lpL2dVQll1WWo1YVVsQWlVbEphUG1Jc0krRjJMQlppTGxvZVVnZ2lVZ28rQWkzNElEdmRFOTRRVm00c0ZpNXNGZTRzRmkzc0ZpMXNWbTRzRmk1c0ZlNHNGaTNzRmkrc1ZtNHNGaTVzRmU0c0ZpM3NGaS9za0ZadUxCWXViQlh1TEJZdDdCWXRiRlp1TEJZdWJCWHVMQll0N0JhdnJGZmNVaXdXTG13WDdGSXNGaTNzRmkrc1Y5eFNMQll1YkJmc1Vpd1dMZXdYM0UvY1VGZnR6aXdXTC9CUUY5N1NMQll2MzFBVkt5d1dzKy9NViszU0xCWXYzMHdYM05Jc0ZpMXdGeTRzRmkvdWtCZnMwMmhYM0ZJc0ZpNXNGK3hTTEJZdDdCWXZyRmZjVWl3V0xtd1g3RklzRmkzc0ZpL3NrRmZjVWl3V0xtd1g3RklzRmkzc0ZEdmlVRlBpVUZZc01DZ0FEQWdBQmtBQUZBQUFCVEFGbUFBQUFSd0ZNQVdZQUFBRDFBQmtBaEFBQUFBQUFBQUFBQUFBQUFBQUFBQUVRQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBSU9ZTEFlRC80UC9nQWVBQUlBQUFBQUVBQUFBQUFBQUFBQUFBQUNBQUFBQUFBQUlBQUFBREFBQUFGQUFEQUFFQUFBQVVBQVFBTUFBQUFBZ0FDQUFDQUFBQUlPWUwvLzMvL3dBQUFDRG1BUC85Ly8vLzRSb0NBQU1BQVFBQUFBQUFBQUFBQUFFQUFmLy9BQThBQVFBQUFBRUFBT2JaUVBkZkR6ejFBQXNDQUFBQUFBRE83T3Q5QUFBQUFNN3M2MzBBQVAvYkFpVUJ1UUFBQUFnQUFnQUFBQUFBQUFBQkFBQUI0UC9nQUFBQ0pRQUFBQUFDSlFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBRGdBQUFBQUJBQUFBQWJjQUFBSUFBQUFDQUFBQUFXNEFBQUlBQUZBQ0pRQUFBZHdBQUFJQUFBQUNKUUFBQWJjQUFBSWxBQUFDQUFCd0FBQlFBQUFPQUFBQUFBQU9BSzRBQVFBQUFBQUFBUUFnQUFBQUFRQUFBQUFBQWdBT0FJWUFBUUFBQUFBQUF3QWdBRFlBQVFBQUFBQUFCQUFnQUpRQUFRQUFBQUFBQlFBV0FDQUFBUUFBQUFBQUJnQVFBRllBQVFBQUFBQUFDZ0FvQUxRQUF3QUJCQWtBQVFBZ0FBQUFBd0FCQkFrQUFnQU9BSVlBQXdBQkJBa0FBd0FnQURZQUF3QUJCQWtBQkFBZ0FKUUFBd0FCQkFrQUJRQVdBQ0FBQXdBQkJBa0FCZ0FnQUdZQUF3QUJCQWtBQ2dBb0FMUUFZd0J0QUhNQWJRQnpBQzBBWmdCcEFHd0FaUUJ3QUdrQVl3QnJBR1VBY2dCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTVFBdUFEQUFZd0J0QUhNQWJRQnpBQzBBWmdCcEFHd0FaUUJ3QUdrQVl3QnJBR1VBY21OdGMyMXpMV1pwYkdWd2FXTnJaWElBWXdCdEFITUFiUUJ6QUMwQVpnQnBBR3dBWlFCd0FHa0FZd0JyQUdVQWNnQlNBR1VBWndCMUFHd0FZUUJ5QUdNQWJRQnpBRzBBY3dBdEFHWUFhUUJzQUdVQWNBQnBBR01BYXdCbEFISUFSd0JsQUc0QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQkpBR01BYndCTkFHOEFid0J1QUFBQUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT09KSBmb3JtYXQoJ3dvZmYnKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9W2NsYXNzKj0iIGNtc21zLWZwLSJdLFtjbGFzc149Y21zbXMtZnAtXXtmb250LWZhbWlseTpjbXNtcy1maWxlcGlja2VyO3NwZWFrOm5vbmU7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtsaW5lLWhlaWdodDoxOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS5jbXNtcy1mcC1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGU2MDAifS5jbXNtcy1mcC10aDpiZWZvcmV7Y29udGVudDoiXGU2MDEifS5jbXNtcy1mcC10aC1saXN0OmJlZm9yZXtjb250ZW50OiJcZTYwMiJ9LmNtc21zLWZwLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxlNjAzIn0uY21zbXMtZnAtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlNjA1In0uY21zbXMtZnAtZm9sZGVyLWNsb3NlOmJlZm9yZXtjb250ZW50OiJcZTYwNiJ9LmNtc21zLWZwLWZhY2V0aW1lLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZTYwNyJ9LmNtc21zLWZwLXBpY3R1cmU6YmVmb3Jle2NvbnRlbnQ6IlxlNjA4In0uY21zbXMtZnAtcmVvcmRlcjpiZWZvcmV7Y29udGVudDoiXGU2MDkifS5jbXNtcy1mcC1maWxtOmJlZm9yZXtjb250ZW50OiJcZTYwYSJ9LmNtc21zLWZwLXppcDpiZWZvcmV7Y29udGVudDoiXGU2MDQifS5jbXNtcy1mcC1maWxlLWNvbnRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxlNjBiIn1ib2R5LmNtc21zLWZpbGVwaWNrZXJ7bWFyZ2luOjA7cGFkZGluZzowO2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtjb2xvcjojNDQ0O2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9YSBpbWcsaW1ne2JvcmRlcjpub25lO3RleHQtZGVjb3JhdGlvbjpub25lfS52aXN1YWxseWhpZGRlbntib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0uZmlsZXBpY2tlci1pY29ue21hcmdpbi1yaWdodDoxMHB4fS5maWxlcGlja2VyLW5hdmJhcntwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO3otaW5kZXg6OTk7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYsI2YyZjJmMik7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwwIDAsMCAxMDAlLGZyb20oI2ZmZiksdG8oI2YyZjJmMikpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYsI2YyZjJmMik7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYsI2YyZjJmMik7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmZmYsI2YyZjJmMik7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI2ZmZjJmMmYyJywgR3JhZGllbnRUeXBlPTApOy13ZWJraXQtYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLC4xKTtib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLC4xKTtoZWlnaHQ6NDJweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzVjNWM1fS5maWxlcGlja2VyLW5hdmJhci1pbm5lcntwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjZweCAxNXB4fS5maWxlcGlja2VyLW5hdmJhci1pbm5lciBwe21hcmdpbjowO21hcmdpbi10b3A6MnB4O2ZvbnQtc2l6ZToxMXB4fS5maWxlcGlja2VyLXZpZXctb3B0aW9ue21heC13aWR0aDozNSU7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDo1MHB4fS5maWxlcGlja2VyLXR5cGUtZmlsdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDo2NSU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTVweDt0ZXh0LWFsaWduOnJpZ2h0fS5maWxlcGlja2VyLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjNweCA4cHggMnB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIwcHg7Y29sb3I6IzQ0NDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXNoYWRvdzowIDFweCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNzUpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZTZlNmU2KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLDAgMCwwIDEwMCUsZnJvbSgjZmZmKSx0bygjZTZlNmU2KSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZTZlNmU2KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZTZlNmU2KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2ZmZiwjZTZlNmU2KTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWNvbG9yOiNlNmU2ZTYgI2U2ZTZlNiAjYmZiZmJmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xKXJnYmEoMCwwLDAsLjEpcmdiYSgwLDAsMCwuMjUpO2JvcmRlci1ib3R0b20tY29sb3I6I2IzYjNiMzstd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHg7em9vbToxO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZmZmZmZmJywgZW5kQ29sb3JzdHI9JyNmZmU2ZTZlNicsIEdyYWRpZW50VHlwZT0wKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjIpLDAgMXB4IDJweCByZ2JhKDAsMCwwLC4wNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMiksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMiksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KX0uZmlsZXBpY2tlci1idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uZmlsZXBpY2tlci1idXR0b24uYWN0aXZle2JvcmRlcjoxcHggc29saWQgI2IxYjFiMTtiYWNrZ3JvdW5kLWNvbG9yOiNkNmQ2ZDY7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsI2U2ZTZlNixzaWx2ZXIpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsMCAwLDAgMTAwJSxmcm9tKCNlNmU2ZTYpLHRvKHNpbHZlcikpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNlNmU2ZTYsc2lsdmVyKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2U2ZTZlNixzaWx2ZXIpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZTZlNmU2LHNpbHZlcik7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZlNmU2ZTYnLCBlbmRDb2xvcnN0cj0nI2ZmYzBjMGMwJywgR3JhZGllbnRUeXBlPTApOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLDAsMCwuMTUpLDAgMXB4IDJweCByZ2JhKDAsMCwwLC4wNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAsMCwwLC4xNSksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAsMCwwLC4xNSksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KX0uZmlsZXBpY2tlci1jb250YWluZXJ7cGFkZGluZzo1NXB4IDE1cHggOHB4fS5maWxlcGlja2VyLWJyZWFkY3J1bWJ7bWFyZ2luLWJvdHRvbToxMHB4O3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZWZlZmU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLC4wNjUpOy1tb3otYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwuMDY1KTtib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLC4wNjUpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjNWM1YzV9LmZpbGVwaWNrZXItYnJlYWRjcnVtYiBwe3BhZGRpbmc6MDttYXJnaW46MH0uZmlsZXBpY2tlci1saXN0e3dpZHRoOjEwMCU7bWFyZ2luOjAgMCAxZW07bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MH0jZmlsZXBpY2tlci1pdGVtcz5saXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7d2lkdGg6MTM0cHg7bWFyZ2luOjNweDtkaXNwbGF5OmlubGluZS1ibG9ja30jZmlsZXBpY2tlci1pdGVtcz5saS52aXNpYmxle2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZmlsZXBpY2tlci1saXN0PmxpIGltZ3ttYXgtd2lkdGg6MTAwJTtsaW5lLWhlaWdodDowO2JvcmRlcjpub25lfSNmaWxlcGlja2VyLWl0ZW1zPmxpOm50aC1jaGlsZChvZGQpe2JhY2tncm91bmQtY29sb3I6I2ZjZmNmY30jZmlsZXBpY2tlci1pdGVtcz5saS5maWxlcGlja2VyLWl0ZW0taGVhZGluZ3tkaXNwbGF5Om5vbmV9LmZpbGVwaWNrZXItbGlzdCAuZmlsZXBpY2tlci10aHVtYnt3aWR0aDoxMzlweDtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjkwcHg7ZGlzcGxheTp0YWJsZS1jZWxsO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtiYWNrZ3JvdW5kLWNvbG9yOiNGNzk4Mzh9LmZpbGVwaWNrZXItbGlzdCAuZmlsZXBpY2tlci10aHVtYi5uby1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOX0uZmlsZXBpY2tlci1saXN0IC5maWxlcGlja2VyLXRodW1iIC5pY29uLW5vLXRodW1ie2ZvbnQtc2l6ZTo2MHB4O2NvbG9yOiNmZmZ9LmZpbGVwaWNrZXItbGlzdCAuZmlsZXBpY2tlci10aHVtYi5uby1iYWNrZ3JvdW5kIC5pY29uLW5vLXRodW1ie2NvbG9yOiM3Nzd9LmZpbGVwaWNrZXItbGlzdCAuZmlsZXBpY2tlci10aHVtYiAqe3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZmlsZXBpY2tlci1saXN0IC5maWxlcGlja2VyLWZpbGUtaW5mb3JtYXRpb257cGFkZGluZzo0cHg7Zm9udC1zaXplOjEycHg7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5maWxlcGlja2VyLWxpc3QgLmZpbGVwaWNrZXItZmlsZS10aXRsZXtoZWlnaHQ6MThweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxMnB4O21hcmdpbjowO3BhZGRpbmc6MDt0ZXh0LWFsaWduOmNlbnRlcn0uZmlsZXBpY2tlci1saXN0IC5maWxlcGlja2VyLWZpbGUtZGV0YWlsc3tjb2xvcjojNzc3O2ZvbnQtc2l6ZToxMXB4fS5maWxlcGlja2VyLWxpc3QgYXtjb2xvcjojMTQ3ZmRiO3RleHQtZGVjb3JhdGlvbjpub25lfSNmaWxlcGlja2VyLWl0ZW1zLmxpc3Qtdmlldz5saXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjt3aWR0aDoxMDAlO21hcmdpbjowO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9I2ZpbGVwaWNrZXItaXRlbXMubGlzdC12aWV3PmxpLmZpbGVwaWNrZXItaXRlbS1oZWFkaW5ne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjMwcHg7YmFja2dyb3VuZC1jb2xvcjojNzc3O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM0NDR9I2ZpbGVwaWNrZXItaXRlbXMubGlzdC12aWV3PmxpLnZpc2libGV7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9Lmxpc3Qtdmlldz5saS5maWxlcGlja2VyLWl0ZW0taGVhZGluZyAuZmlsZXBpY2tlci1maWxlLWRldGFpbHMsLmxpc3Qtdmlldz5saS5maWxlcGlja2VyLWl0ZW0taGVhZGluZyAuZmlsZXBpY2tlci1maWxlLWRldGFpbHMgc3BhbiwubGlzdC12aWV3PmxpLmZpbGVwaWNrZXItaXRlbS1oZWFkaW5nIC5maWxlcGlja2VyLWZpbGUtaW5mb3JtYXRpb24sLmxpc3Qtdmlldz5saS5maWxlcGlja2VyLWl0ZW0taGVhZGluZyAuZmlsZXBpY2tlci10aHVtYntoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDozMHB4fS5saXN0LXZpZXcgLmZpbGVwaWNrZXItaXRlbS1oZWFkaW5nIC5maWxlcGlja2VyLWZpbGUtZGV0YWlscywubGlzdC12aWV3IC5maWxlcGlja2VyLWl0ZW0taGVhZGluZyBoNHtjb2xvcjojZmZmO3RleHQtc2hhZG93OjAgLTFweCAxcHggIzY2Njtmb250LXNpemU6MTJweH0ubGlzdC12aWV3IC5maWxlcGlja2VyLXRodW1ie292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmlubGluZS1ibG9jayB0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2lkdGg6NTBweDtoZWlnaHQ6NDVweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH0ubGlzdC12aWV3IC5maWxlcGlja2VyLXRodW1iIGF7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDo0NXB4fS5saXN0LXZpZXcgLmZpbGVwaWNrZXItdGh1bWIubm8tYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5saXN0LXZpZXcgLmZpbGVwaWNrZXItdGh1bWIgLmljb24tbm8tdGh1bWJ7Zm9udC1zaXplOjE4cHg7Y29sb3I6Izc3N30ubGlzdC12aWV3IC5maWxlcGlja2VyLWZpbGUtaW5mb3JtYXRpb257cGFkZGluZzowIDIxNXB4IDAgMTVweDtmb250LXNpemU6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O21heC13aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MTtoZWlnaHQ6NDVweDtsaW5lLWhlaWdodDo0NXB4O21hcmdpbi1sZWZ0OjUwcHh9Lmxpc3QtdmlldyAuZmlsZXBpY2tlci1maWxlLXRpdGxle2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OmF1dG87b3ZlcmZsb3c6aGlkZGVuO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTJweDttYXJnaW46MDtwYWRkaW5nOjA7dGV4dC1hbGlnbjpsZWZ0fS5saXN0LXZpZXcgLmZpbGVwaWNrZXItZmlsZS1kZXRhaWxze2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjIxNXB4O2hlaWdodDo0NXB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE1cHg7dG9wOjB9Lmxpc3QtdmlldyAuZmlsZXBpY2tlci1maWxlLWRldGFpbHMgc3BhbntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo5MHB4O2hlaWdodDo0NXB4O2xpbmUtaGVpZ2h0OjQ1cHg7b3ZlcmZsb3c6aGlkZGVufS5saXN0LXZpZXcgLmZpbGVwaWNrZXItZmlsZS1kZXRhaWxzIHNwYW4uZmlsZXBpY2tlci1maWxlLXNpemV7d2lkdGg6ODBweH0ubGlzdC12aWV3IC5maWxlcGlja2VyLWZpbGUtZGV0YWlscyBzcGFuLmZpbGVwaWNrZXItZmlsZS1leHR7d2lkdGg6MzBweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQzMHB4KXsubGlzdC12aWV3IC5maWxlcGlja2VyLWZpbGUtZGV0YWlscyBzcGFuLmZpbGVwaWNrZXItZmlsZS1leHR7ZGlzcGxheTpub25lfS5saXN0LXZpZXcgLmZpbGVwaWNrZXItZmlsZS1kZXRhaWxze3dpZHRoOjE3MHB4fS5saXN0LXZpZXcgLmZpbGVwaWNrZXItZmlsZS1pbmZvcm1hdGlvbntwYWRkaW5nLXJpZ2h0OjE4NXB4fS5maWxlcGlja2VyLW9wdGlvbi10aXRsZXtkaXNwbGF5Om5vbmV9fQ==]]></data>
	</file>
	<file>
	  <filename>/css/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/css/JMFP.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIE1vZHVsZSA6IEdCRmlsZVBpY2tlciAoYykgMjAxMC0yMDEyIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQ0KICAgICAgICAgIGEgZmlsZSBwaWNrZXIgdG9vbCBmb3IgQ01TIE1hZGUgU2ltcGxlDQogICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXINCiAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscA0KICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIFZlcnNpb246IDEuMy4yDQogRmlsZSAgIDogZmlsZXBpY2tlci5jc3MNCiBQdXJwb3NlOiBzdHlsZSBvZiB0aGUgZmlsZXBpY2tlciBpbnB1dCBhbmQgYnJvd3Nlcg0KIExpY2Vuc2U6IEdQTA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KDQojSk1GUF93cmFwcGVyIHsNCglwb3NpdGlvbiA6IGZpeGVkOw0KCWxlZnQgICAgIDogMHB4Ow0KCXRvcCAgICAgIDogMHB4Ow0KCXdpZHRoICAgIDogMTAwJTsNCgloZWlnaHQgICA6IDEwMCU7DQoJei1pbmRleCAgOiAtOTk5OTsNCglkaXNwbGF5ICA6IG5vbmU7DQoJb3BhY2l0eSAgOiAwOw0KCW1hcmdpbiAgIDogMDsNCglwYWRkaW5nICA6IDA7DQp9DQoNCiNKTUZQX2JhY2tncm91bmQgew0KCXBvc2l0aW9uICAgICAgICAgOiBmaXhlZDsNCglsZWZ0ICAgICAgICAgICAgIDogMHB4Ow0KCXRvcCAgICAgICAgICAgICAgOiAwcHg7DQoJd2lkdGggICAgICAgICAgICA6IDEwMCU7DQoJaGVpZ2h0ICAgICAgICAgICA6IDEwMCU7DQoJYmFja2dyb3VuZC1jb2xvciA6ICMwMDA7DQoJZGlzcGxheSAgICAgICAgICA6IG5vbmU7DQoJb3BhY2l0eSAgICAgICAgICA6IDA7DQp9DQoNCiNKTUZQIHsNCgltaW4td2lkdGggICAgICAgICAgOiA2MDBweDsNCgl3aWR0aCAgICAgICAgICAgICAgOiA2MDBweDsNCglkaXNwbGF5ICAgICAgICAgICAgOiBub25lOw0KCW9wYWNpdHkgICAgICAgICAgICA6IDA7DQoJYmFja2dyb3VuZC1jb2xvciAgIDogI0ZGRjsNCglsaW5lLWhlaWdodCAgICAgICAgOiAxMDAlOw0KCW1hcmdpbiAgICAgICAgICAgICA6IGF1dG87DQoJbWFyZ2luLWJvdHRvbSAgICAgIDogNXB4Ow0KCXBvc2l0aW9uICAgICAgICAgICA6IHJlbGF0aXZlOw0KCS1tb3otYm9yZGVyLXJhZGl1cyA6IDEwcHg7DQoJLXdlYmtpdC1ib3JkZXItcmFkaXVzIDogMTBweDsNCglib3JkZXItcmFkaXVzICAgICAgOiAxMHB4Ow0KCS1tb3otYm94LXNoYWRvdyAgICA6IDAgMCAzMnB4ICMwMDAwMDA7DQoJLXdlYmtpdC1ib3gtc2hhZG93IDogMCAwIDMycHggIzAwMDAwMDsNCglib3gtc2hhZG93ICAgICAgICAgOiAwIDAgMzJweCAjMDAwMDAwOw0KCWhlaWdodCAgICAgICAgICAgICA6IDM2cHg7DQoJbWluLWhlaWdodCAgICAgICAgIDogMzZweDsNCglvdmVyZmxvdyAgICAgICAgICAgOiBoaWRkZW47DQp9DQoNCiNKTUZQX2NvbnRlbnQgew0KCWRpc3BsYXkgOiBibG9jazsNCglvcGFjaXR5IDogMDsNCn0NCg0KI0pNRlBfdGl0bGViYXIgew0KCXBhZGRpbmcgICAgICAgICAgOiA1cHg7DQoJY29sb3IgICAgICAgICAgICA6ICMzMzM7DQoJYmFja2dyb3VuZC1jb2xvciA6ICNDQ0M7DQp9DQoNCiNKTUZQX3RpdGxlYmFyIGgzIHsNCgljdXJzb3I6IG1vdmU7DQogICAgaGVpZ2h0OiAyNnB4Ow0KICAgIGxlZnQ6IDI2cHg7DQogICAgbGluZS1oZWlnaHQ6IDI2cHg7DQogICAgbWFyZ2luOiAwOw0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICByaWdodDogMDsNCiAgICB0b3A6IDA7DQp9DQoNCiNKTUZQX21lbnUgew0KCXBhZGRpbmc6IDVweCAwIDVweCAwOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglyaWdodDogMDsNCgl0b3A6IDA7DQp9DQoNCiNKTUZQX2Nsb3NlLA0KI0pNRlBfcmVsb2FkX2RpciwNCiNKTUZQX2NsZWFyX2NhY2hlIHsNCglkaXNwbGF5ICAgICAgICAgOiBibG9jazsNCglmbG9hdCAgICAgICAgICAgOiBsZWZ0Ow0KCWhlaWdodCAgICAgICAgICA6IDE2cHg7DQoJbWFyZ2luICAgICAgICAgIDogMCA1cHg7DQoJb3ZlcmZsb3cgICAgICAgIDogaGlkZGVuOw0KCXRleHQtZGVjb3JhdGlvbiA6IG5vbmU7DQoJdGV4dC1pbmRlbnQgICAgIDogLTk5OWVtOw0KCXdpZHRoICAgICAgICAgICA6IDE2cHg7DQp9DQoNCiNKTUZQX2dvdG9fcm9vdCB7DQoJb3ZlcmZsb3cgICAgICAgIDogaGlkZGVuOw0KCXRleHQtZGVjb3JhdGlvbiA6IG5vbmU7DQoJdGV4dC1pbmRlbnQgICAgIDogLTk5OWVtOw0KCXdpZHRoICAgICAgICAgICA6IDIxcHg7DQoJaGVpZ2h0ICAgICAgICAgIDogMTZweDsNCglkaXNwbGF5ICAgICAgICAgOiBibG9jazsNCglmbG9hdCAgICAgICAgICAgOiBsZWZ0Ow0KCW1hcmdpbiAgICAgICAgICA6IDAgNXB4Ow0KCWJhY2tncm91bmQgICAgICA6IHVybCgnLi4vaW1nL2Rpci5naWYnKSBuby1yZXBlYXQgY2VudGVyOw0KfQ0KDQojSk1GUF9jbG9zZSB7DQoJYmFja2dyb3VuZCA6IHVybCgnLi4vaW1nL2Nsb3NlLnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7DQp9DQoNCiNKTUZQX3JlbG9hZF9kaXIgew0KCWJhY2tncm91bmQgOiB1cmwoJy4uL2ltZy9yZWxvYWQucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQojSk1GUF9jbGVhcl9jYWNoZSB7DQoJYmFja2dyb3VuZCA6IHVybCgnLi4vaW1nL2NsZWFyX2NhY2hlLnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KDQojSk1GUF9oZWFkZXIgZm9ybSBwIHsNCglsaW5lLWhlaWdodCA6IDEzMCU7DQoJcGFkZGluZyAgICAgOiA1cHggMCAwIDA7DQp9DQoNCiNKTUZQX2hlYWRlciB7DQoJbWFyZ2luICAgICAgICAgICA6IDBweDsNCglwYWRkaW5nICAgICAgICAgIDogMHB4Ow0KfQ0KDQojSk1GUF9oZWFkZXIgZmllbGRzZXQgew0KCW1hcmdpbiAgIDogNXB4Ow0KCWNsZWFyICAgIDogYm90aDsNCglvdmVyZmxvdyA6IGhpZGRlbjsNCn0NCg0KI0pNRlBfaGVhZGVyIGZpZWxkc2V0IGxlZ2VuZCB7DQoJZm9udC1zaXplICAgICAgOiAxMDAlOw0KCW1hcmdpbi1ib3R0b20gIDogMDsNCgltYXJnaW4tdG9wICAgICA6IDA7DQoJcGFkZGluZy1ib3R0b20gOiAwOw0KCXBhZGRpbmctdG9wICAgIDogMDsNCn0NCg0KYS5qbWZwX2NvbnRyYWN0LA0KYS5qbWZwX2V4cGFuZCB7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50Ow0KCXRleHQtaW5kZW50Oi05MDAlICFpbXBvcnRhbnQ7DQoJb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7DQoJb3V0bGluZTpub25lICFpbXBvcnRhbnQ7DQoJcGFkZGluZy1sZWZ0OjEuOGVtICFpbXBvcnRhbnQ7DQp9DQoNCi5qbWZwX25vLW92ZXJmbG93IHsNCglvdmVyZmxvdzpoaWRkZW4NCn0NCg0KLmptZnBfZmllbGRzZXQgew0KfQ0KDQojSk1GUF9oZWFkZXIgLmptZnBfbm8tYm9yZGVyIHsNCglwYWRkaW5nLXRvcDoxcHg7DQoJcGFkZGluZy1ib3R0b206MXB4Ow0KCW1hcmdpbi1sZWZ0OjZweDsNCglib3JkZXI6bm9uZTsNCn0NCg0KDQojSk1GUF9maWxlb3BlcmF0aW9ucyB7DQoJIG92ZXJmbG93OmhpZGRlbjsNCgkgd2lkdGg6MTAwJTsNCn0NCg0KI0pNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zIHsNCn0NCg0KI0pNRlAgZGl2LmJyZWFkY3J1bWJzIHsNCglwYWRkaW5nLWxlZnQgOiAxMHB4Ow0KfQ0KDQojSk1GUF9maWxlbGlzdCB7DQoJbWFyZ2luICAgICAgICAgICA6IDVweCA1cHggNXB4Ow0KCWJvcmRlciAgICAgICAgICAgOiAxcHggc29saWQgIzk3QjFCOTsNCgliYWNrZ3JvdW5kLWNvbG9yIDogI2ZmZjsNCglvdmVyZmxvdyAgICAgICAgIDogYXV0bzsNCgltaW4td2lkdGggICAgICAgIDogNTM4cHg7DQoJb3BhY2l0eSAgICAgICAgICA6IDA7DQp9DQojSk1GUF9maWxlbGlzdCB0YWJsZSB0ciB0ZHsNCglwYWRkaW5nLXRvcCAgIDogNXB4Ow0KCXBhZGRpbmctcmlnaHQgOiA1cHg7DQoJZW1wdHktY2VsbHMgICA6IHNob3c7DQp9DQoNCi5KTUZQX3RodW1ibmFpbF93cmFwcGVyIHsNCgltYXJnaW4gICAgICAgICA6IDJweDsNCgl0ZXh0LWFsaWduICAgICA6IGNlbnRlcjsNCgl2ZXJ0aWNhbC1hbGlnbiA6IG1pZGRsZTsNCglvdmVyZmxvdyAgICAgICA6IGhpZGRlbjsNCglkaXNwbGF5ICAgICAgICA6IGJsb2NrOw0KCWZsb2F0ICAgICAgICAgIDogbGVmdDsNCn0NCg0KI0pNRlBfZmlsZWxpc3QgLkpNRlBfdGh1bWJuYWlsX3dyYXBwZXIgew0KCWhlaWdodCAgIDogYXV0bzsNCglvdmVyZmxvdyA6IHZpc2libGU7DQoJZmxvYXQgICAgOiBub25lOw0KfQ0KDQouSk1GUF90aHVtYm5haWxfd3JhcHBlciBpbWcuSk1GUF90aHVtYm5haWwgew0KICAgbWFyZ2luICA6IDJweDsNCiAgIHBhZGRpbmcgOiAycHg7DQogICBib3JkZXIgIDogMXB4IHNvbGlkICM5OTk5OTk7DQp9DQovKkZpbGUgb3BlcmF0aW9ucyovDQovKmVycm9yKi8NCiNKTUZQX2Vycm9yew0KICAgCXBhZGRpbmcgICAgIDogNXB4IDVweCAxMHB4IDEwcHg7DQoJYm9yZGVyICAgICAgOiAxcHggc29saWQgI0ZEOTk5OTsNCgljb2xvciAgICAgICA6ICMwMDA7DQoJYmFja2dyb3VuZCAgOiAjRkVEQURBOw0KCWZvbnQtd2VpZ2h0IDogYm9sZDsNCn0NCiNKTUZQX2Vycm9yIGxlZ2VuZHsNCgljb2xvciAgICAgICA6ICNDQzAwMDA7DQoJZm9udC13ZWlnaHQgOiBib2xkOw0KCWZvbnQtc2l6ZSAgIDogMS4xZW07DQp9DQovKnN1Y2VzcyovDQojSk1GUF9zdWNjZXNzew0KICAgCXBhZGRpbmcgICAgIDogNXB4IDVweCAxMHB4IDEwcHg7DQoJY29sb3IgICAgICAgOiAjMDAwOw0KCWZvbnQtd2VpZ2h0IDogYm9sZDsNCglib3JkZXIgICAgICA6IDFweCBzb2xpZCAjQkREM0EzOw0KCWJhY2tncm91bmQgIDogI0Q2RTRDNTsNCn0NCiNKTUZQX3N1Y2Nlc3MgbGVnZW5kew0KCWNvbG9yICAgICAgIDogIzQzNTgyOTsNCglmb250LXdlaWdodCA6IGJvbGQ7DQoJZm9udC1zaXplICAgOiAxLjFlbTsNCn0NCg0KLkpNRlBfbGluayB7DQoJcGFkZGluZzozcHg7DQp9DQoNCi8qZm9ybSBpbnB1dCdzIGluIG5vcm1hbCBjc3MqLw0KaW5wdXQuSk1GUF9idXR0b24uSk1GUF9kaXNhYmxlZCwNCmlucHV0LkpNRlBfYnV0dG9uLkpNRlBfZGlzYWJsZWQ6aG92ZXIsDQouSk1GUF9pbnB1dF93cmFwcGVyIC5KTUZQX2Rpc2FibGVkLA0KLkpNRlBfaW5wdXRfd3JhcHBlciAuSk1GUF9kaXNhYmxlZDpob3ZlciB7DQoJY29sb3IgICAgICA6ICNDQ0M7DQoJY3Vyc29yICAgICA6IGRlZmF1bHQ7DQoJYm9yZGVyICAgICA6IG5vbmU7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KDQojSk1GUF9sb2FkaW5nX2ltZ193cmFwcGVyIHsNCgloZWlnaHQgICAgICAgIDogMTZweDsNCgl3aWR0aCAgICAgICAgIDogMTZweDsNCglmbG9hdCAgICAgICAgIDogbGVmdDsNCglwYWRkaW5nLXJpZ2h0IDogNXB4Ow0KCWRpc3BsYXk6IGJsb2NrOw0KfQ0KI0pNRlBfbG9hZGluZ19pbWcgew0KCWhlaWdodCAgICAgICAgOiAxNnB4Ow0KCXdpZHRoICAgICAgICAgOiAxNnB4Ow0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCiNKTUZQIC51aS1yZXNpemFibGUtZSB7DQoJY3Vyc29yOiBlLXJlc2l6ZTsNCgloZWlnaHQ6IDEwMCU7DQoJcmlnaHQ6IDBweDsNCgl0b3A6IDI2cHg7DQoJd2lkdGg6IDEwcHg7DQoJcG9zaXRpb246YWJzb2x1dGU7DQoJei1pbmRleDo5OTk5Ow0KfQ0KDQojSk1GUCAudWktcmVzaXphYmxlLXcgew0KCWN1cnNvcjogdy1yZXNpemU7DQoJaGVpZ2h0OiAxMDAlOw0KCWxlZnQ6IDBweDsNCgl0b3A6IDI2cHg7DQoJd2lkdGg6IDEwcHg7DQoJcG9zaXRpb246YWJzb2x1dGU7DQoJei1pbmRleDo5OTk5Ow0KfQ==]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-bg_flat_0_aaaaaa_40x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-bg_flat_75_ffffff_40x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAeUlEQVRoge3OMQHAIBAAsVL/nh8JDDfAkCjImpn5HvbfDpwIVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVhtqiwTEKTLXTgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-bg_glass_55_fbf9ee_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAP0lEQVQ4je3PMQrAMABC0a/3v2zX0mCXNkOgc6C4PARd5DqPGKCU8luS8SbAQhiCQRgJE56kZTfbbP9RSvnkBsWcEAZRWcgqAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-bg_glass_65_ffffff_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAMElEQVQ4je3LIQ4AIBTD0O3f/8wrFgmKhMy8pKJKwkhSKeVbbGuAPU9f4PIopTxgAeS0DRtI4yK0AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-bg_glass_75_dadada_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANklEQVQ4jWN48uTJfyYGBgaGUWKUGCWGLfHt2zcoi5GREYNgYmJCZiG42IiB98woMUqMEtgIAMdjCdyg+eEBAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-bg_glass_75_e6e6e6_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANUlEQVQ4je3LMQoAIBADwb38/6t5wFXaWAiCtUiaYZvF9hBACOFbuntVVe11B0CSjjeE8BwThQIJ8dhEl0YAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-bg_glass_95_fef1ec_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAPklEQVQ4je3PMQqAMABD0Z/c/7aCIAXjJIhD10LJ8vgZw30eMUApZV/GhZNgSTjoLYElY/hNMJ/S6gullCkPiCIPCr4NiEwAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAALElEQVQYlWN49OjRfyYGBgaGIUT8//8fSqBx0Yh///4RL8vAwAAVQ2MNOwIAl6g6KkOJwk8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-icons_2e83ff_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-icons_222222_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-icons_454545_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-icons_888888_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/images/ui-icons_cd0a0a_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.accordion.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIEFjY29yZGlvbiAxLjguMTYKICoKICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0FjY29yZGlvbiN0aGVtaW5nCiAqLwovKiBJRS9XaW4gLSBGaXggYW5pbWF0aW9uIGJ1ZyAtICM0NjE1ICovCi51aS1hY2NvcmRpb24geyB3aWR0aDogMTAwJTsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIHsgY3Vyc29yOiBwb2ludGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi10b3A6IDFweDsgem9vbTogMTsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tbGktZml4IHsgZGlzcGxheTogaW5saW5lOyB9Ci51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHsgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9Ci51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXIgYSB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDFlbTsgcGFkZGluZzogLjVlbSAuNWVtIC41ZW0gLjdlbTsgfQoudWktYWNjb3JkaW9uLWljb25zIC51aS1hY2NvcmRpb24taGVhZGVyIGEgeyBwYWRkaW5nLWxlZnQ6IDIuMmVtOyB9Ci51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXIgLnVpLWljb24geyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC41ZW07IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtOHB4OyB9Ci51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1jb250ZW50IHsgcGFkZGluZzogMWVtIDIuMmVtOyBib3JkZXItdG9wOiAwOyBtYXJnaW4tdG9wOiAtMnB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMXB4OyBtYXJnaW4tYm90dG9tOiAycHg7IG92ZXJmbG93OiBhdXRvOyBkaXNwbGF5OiBub25lOyB6b29tOiAxOyB9Ci51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyB9Cg==]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.all.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgMS44LjE2CiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9UaGVtaW5nCiAqLwpAaW1wb3J0ICJqcXVlcnkudWkuYmFzZS5jc3MiOwpAaW1wb3J0ICJqcXVlcnkudWkudGhlbWUuY3NzIjsK]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.autocomplete.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIEF1dG9jb21wbGV0ZSAxLjguMTYKICoKICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0F1dG9jb21wbGV0ZSN0aGVtaW5nCiAqLwoudWktYXV0b2NvbXBsZXRlIHsgcG9zaXRpb246IGFic29sdXRlOyBjdXJzb3I6IGRlZmF1bHQ7IH0JCgovKiB3b3JrYXJvdW5kcyAqLwoqIGh0bWwgLnVpLWF1dG9jb21wbGV0ZSB7IHdpZHRoOjFweDsgfSAvKiB3aXRob3V0IHRoaXMsIHRoZSBtZW51IGV4cGFuZHMgdG8gMTAwJSBpbiBJRTYgKi8KCi8qCiAqIGpRdWVyeSBVSSBNZW51IDEuOC4xNgogKgogKiBDb3B5cmlnaHQgMjAxMCwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvTWVudSN0aGVtaW5nCiAqLwoudWktbWVudSB7CglsaXN0LXN0eWxlOm5vbmU7CglwYWRkaW5nOiAycHg7CgltYXJnaW46IDA7CglkaXNwbGF5OmJsb2NrOwoJZmxvYXQ6IGxlZnQ7Cn0KLnVpLW1lbnUgLnVpLW1lbnUgewoJbWFyZ2luLXRvcDogLTNweDsKfQoudWktbWVudSAudWktbWVudS1pdGVtIHsKCW1hcmdpbjowOwoJcGFkZGluZzogMDsKCXpvb206IDE7CglmbG9hdDogbGVmdDsKCWNsZWFyOiBsZWZ0OwoJd2lkdGg6IDEwMCU7Cn0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbSBhIHsKCXRleHQtZGVjb3JhdGlvbjpub25lOwoJZGlzcGxheTpibG9jazsKCXBhZGRpbmc6LjJlbSAuNGVtOwoJbGluZS1oZWlnaHQ6MS41OwoJem9vbToxOwp9Ci51aS1tZW51IC51aS1tZW51LWl0ZW0gYS51aS1zdGF0ZS1ob3ZlciwKLnVpLW1lbnUgLnVpLW1lbnUtaXRlbSBhLnVpLXN0YXRlLWFjdGl2ZSB7Cglmb250LXdlaWdodDogbm9ybWFsOwoJbWFyZ2luOiAtMXB4Owp9Cg==]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.base.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGltcG9ydCB1cmwoImpxdWVyeS51aS5jb3JlLmNzcyIpOwpAaW1wb3J0IHVybCgianF1ZXJ5LnVpLnJlc2l6YWJsZS5jc3MiKTsKQGltcG9ydCB1cmwoImpxdWVyeS51aS5zZWxlY3RhYmxlLmNzcyIpOwpAaW1wb3J0IHVybCgianF1ZXJ5LnVpLmFjY29yZGlvbi5jc3MiKTsKQGltcG9ydCB1cmwoImpxdWVyeS51aS5hdXRvY29tcGxldGUuY3NzIik7CkBpbXBvcnQgdXJsKCJqcXVlcnkudWkuYnV0dG9uLmNzcyIpOwpAaW1wb3J0IHVybCgianF1ZXJ5LnVpLmRpYWxvZy5jc3MiKTsKQGltcG9ydCB1cmwoImpxdWVyeS51aS5zbGlkZXIuY3NzIik7CkBpbXBvcnQgdXJsKCJqcXVlcnkudWkudGFicy5jc3MiKTsKQGltcG9ydCB1cmwoImpxdWVyeS51aS5kYXRlcGlja2VyLmNzcyIpOwpAaW1wb3J0IHVybCgianF1ZXJ5LnVpLnByb2dyZXNzYmFyLmNzcyIpOw==]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.button.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIEJ1dHRvbiAxLjguMTYKICoKICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0J1dHRvbiN0aGVtaW5nCiAqLwoudWktYnV0dG9uIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDA7IG1hcmdpbi1yaWdodDogLjFlbTsgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IGN1cnNvcjogcG9pbnRlcjsgdGV4dC1hbGlnbjogY2VudGVyOyB6b29tOiAxOyBvdmVyZmxvdzogdmlzaWJsZTsgfSAvKiB0aGUgb3ZlcmZsb3cgcHJvcGVydHkgcmVtb3ZlcyBleHRyYSB3aWR0aCBpbiBJRSAqLwoudWktYnV0dG9uLWljb24tb25seSB7IHdpZHRoOiAyLjJlbTsgfSAvKiB0byBtYWtlIHJvb20gZm9yIHRoZSBpY29uLCBhIHdpZHRoIG5lZWRzIHRvIGJlIHNldCBoZXJlICovCmJ1dHRvbi51aS1idXR0b24taWNvbi1vbmx5IHsgd2lkdGg6IDIuNGVtOyB9IC8qIGJ1dHRvbiBlbGVtZW50cyBzZWVtIHRvIG5lZWQgYSBsaXR0bGUgbW9yZSB3aWR0aCAqLwoudWktYnV0dG9uLWljb25zLW9ubHkgeyB3aWR0aDogMy40ZW07IH0gCmJ1dHRvbi51aS1idXR0b24taWNvbnMtb25seSB7IHdpZHRoOiAzLjdlbTsgfSAKCi8qYnV0dG9uIHRleHQgZWxlbWVudCAqLwoudWktYnV0dG9uIC51aS1idXR0b24tdGV4dCB7IGRpc3BsYXk6IGJsb2NrOyBsaW5lLWhlaWdodDogMS40OyAgfQoudWktYnV0dG9uLXRleHQtb25seSAudWktYnV0dG9uLXRleHQgeyBwYWRkaW5nOiAuNGVtIDFlbTsgfQoudWktYnV0dG9uLWljb24tb25seSAudWktYnV0dG9uLXRleHQsIC51aS1idXR0b24taWNvbnMtb25seSAudWktYnV0dG9uLXRleHQgeyBwYWRkaW5nOiAuNGVtOyB0ZXh0LWluZGVudDogLTk5OTk5OTlweDsgfQoudWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IC51aS1idXR0b24tdGV4dCwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmc6IC40ZW0gMWVtIC40ZW0gMi4xZW07IH0KLnVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IC51aS1idXR0b24tdGV4dCwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmc6IC40ZW0gMi4xZW0gLjRlbSAxZW07IH0KLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmctbGVmdDogMi4xZW07IHBhZGRpbmctcmlnaHQ6IDIuMWVtOyB9Ci8qIG5vIGljb24gc3VwcG9ydCBmb3IgaW5wdXQgZWxlbWVudHMsIHByb3ZpZGUgcGFkZGluZyBieSBkZWZhdWx0ICovCmlucHV0LnVpLWJ1dHRvbiB7IHBhZGRpbmc6IC40ZW0gMWVtOyB9CgovKmJ1dHRvbiBpY29uIGVsZW1lbnQocykgKi8KLnVpLWJ1dHRvbi1pY29uLW9ubHkgLnVpLWljb24sIC51aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkgLnVpLWljb24sIC51aS1idXR0b24tdGV4dC1pY29uLXNlY29uZGFyeSAudWktaWNvbiwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1pY29uLCAudWktYnV0dG9uLWljb25zLW9ubHkgLnVpLWljb24geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtOHB4OyB9Ci51aS1idXR0b24taWNvbi1vbmx5IC51aS1pY29uIHsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLThweDsgfQoudWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IC51aS1idXR0b24taWNvbi1wcmltYXJ5LCAudWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWJ1dHRvbi1pY29uLXByaW1hcnksIC51aS1idXR0b24taWNvbnMtb25seSAudWktYnV0dG9uLWljb24tcHJpbWFyeSB7IGxlZnQ6IC41ZW07IH0KLnVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IC51aS1idXR0b24taWNvbi1zZWNvbmRhcnksIC51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9uLWljb24tc2Vjb25kYXJ5LCAudWktYnV0dG9uLWljb25zLW9ubHkgLnVpLWJ1dHRvbi1pY29uLXNlY29uZGFyeSB7IHJpZ2h0OiAuNWVtOyB9Ci51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9uLWljb24tc2Vjb25kYXJ5LCAudWktYnV0dG9uLWljb25zLW9ubHkgLnVpLWJ1dHRvbi1pY29uLXNlY29uZGFyeSB7IHJpZ2h0OiAuNWVtOyB9CgovKmJ1dHRvbiBzZXRzKi8KLnVpLWJ1dHRvbnNldCB7IG1hcmdpbi1yaWdodDogN3B4OyB9Ci51aS1idXR0b25zZXQgLnVpLWJ1dHRvbiB7IG1hcmdpbi1sZWZ0OiAwOyBtYXJnaW4tcmlnaHQ6IC0uM2VtOyB9CgovKiB3b3JrYXJvdW5kcyAqLwpidXR0b24udWktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHsgYm9yZGVyOiAwOyBwYWRkaW5nOiAwOyB9IC8qIHJlc2V0IGV4dHJhIHBhZGRpbmcgaW4gRmlyZWZveCAqLwo=]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.core.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgMS44LjE2CiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9UaGVtaW5nL0FQSQogKi8KCi8qIExheW91dCBoZWxwZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoudWktaGVscGVyLWhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IH0KLnVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7IGNsaXA6IHJlY3QoMXB4LDFweCwxcHgsMXB4KTsgfQoudWktaGVscGVyLXJlc2V0IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IDA7IG91dGxpbmU6IDA7IGxpbmUtaGVpZ2h0OiAxLjM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC1zaXplOiAxMDAlOyBsaXN0LXN0eWxlOiBub25lOyB9Ci51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXIgeyBjb250ZW50OiAiLiI7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDA7IGNsZWFyOiBib3RoOyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KLnVpLWhlbHBlci1jbGVhcmZpeCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQovKiByZXF1aXJlZCBjb21tZW50IGZvciBjbGVhcmZpeCB0byB3b3JrIGluIE9wZXJhIFwqLwoqIGh0bWwgLnVpLWhlbHBlci1jbGVhcmZpeCB7IGhlaWdodDoxJTsgfQoudWktaGVscGVyLWNsZWFyZml4IHsgZGlzcGxheTpibG9jazsgfQovKiBlbmQgY2xlYXJmaXggKi8KLnVpLWhlbHBlci16Zml4IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgdG9wOiAwOyBsZWZ0OiAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IG9wYWNpdHk6IDA7IGZpbHRlcjpBbHBoYShPcGFjaXR5PTApOyB9CgoKLyogSW50ZXJhY3Rpb24gQ3VlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLnVpLXN0YXRlLWRpc2FibGVkIHsgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7IH0KCgovKiBJY29ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIHN0YXRlcyBhbmQgaW1hZ2VzICovCi51aS1pY29uIHsgZGlzcGxheTogYmxvY2s7IHRleHQtaW5kZW50OiAtOTk5OTlweDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfQoKCi8qIE1pc2MgdmlzdWFscwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIE92ZXJsYXlzICovCi51aS13aWRnZXQtb3ZlcmxheSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9Cg==]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.datepicker.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIERhdGVwaWNrZXIgMS44LjE2CiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9EYXRlcGlja2VyI3RoZW1pbmcKICovCi51aS1kYXRlcGlja2VyIHsgd2lkdGg6IDE3ZW07IHBhZGRpbmc6IC4yZW0gLjJlbSAwOyBkaXNwbGF5OiBub25lOyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nOi4yZW0gMDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LCAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDogMnB4OyB3aWR0aDogMS44ZW07IGhlaWdodDogMS44ZW07IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3ZlciwgLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciB7IHRvcDogMXB4OyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYgeyBsZWZ0OjJweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHsgcmlnaHQ6MnB4OyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIgeyBsZWZ0OjFweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIHsgcmlnaHQ6MXB4OyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbiwgLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuIHsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLThweDsgdG9wOiA1MCU7IG1hcmdpbi10b3A6IC04cHg7ICB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHsgbWFyZ2luOiAwIDIuM2VtOyBsaW5lLWhlaWdodDogMS44ZW07IHRleHQtYWxpZ246IGNlbnRlcjsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci10aXRsZSBzZWxlY3QgeyBmb250LXNpemU6MWVtOyBtYXJnaW46MXB4IDA7IH0KLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgteWVhciB7d2lkdGg6IDEwMCU7fQoudWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCwgCi51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXIgeyB3aWR0aDogNDklO30KLnVpLWRhdGVwaWNrZXIgdGFibGUge3dpZHRoOiAxMDAlOyBmb250LXNpemU6IC45ZW07IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1hcmdpbjowIDAgLjRlbTsgfQoudWktZGF0ZXBpY2tlciB0aCB7IHBhZGRpbmc6IC43ZW0gLjNlbTsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXdlaWdodDogYm9sZDsgYm9yZGVyOiAwOyAgfQoudWktZGF0ZXBpY2tlciB0ZCB7IGJvcmRlcjogMDsgcGFkZGluZzogMXB4OyB9Ci51aS1kYXRlcGlja2VyIHRkIHNwYW4sIC51aS1kYXRlcGlja2VyIHRkIGEgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogLjJlbTsgdGV4dC1hbGlnbjogcmlnaHQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgbWFyZ2luOiAuN2VtIDAgMCAwOyBwYWRkaW5nOjAgLjJlbTsgYm9yZGVyLWxlZnQ6IDA7IGJvcmRlci1yaWdodDogMDsgYm9yZGVyLWJvdHRvbTogMDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7IGZsb2F0OiByaWdodDsgbWFyZ2luOiAuNWVtIC4yZW0gLjRlbTsgY3Vyc29yOiBwb2ludGVyOyBwYWRkaW5nOiAuMmVtIC42ZW0gLjNlbSAuNmVtOyB3aWR0aDphdXRvOyBvdmVyZmxvdzp2aXNpYmxlOyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7IGZsb2F0OmxlZnQ7IH0KCi8qIHdpdGggbXVsdGlwbGUgY2FsZW5kYXJzICovCi51aS1kYXRlcGlja2VyLnVpLWRhdGVwaWNrZXItbXVsdGkgeyB3aWR0aDphdXRvOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgZmxvYXQ6bGVmdDsgfQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB0YWJsZSB7IHdpZHRoOjk1JTsgbWFyZ2luOjAgYXV0byAuNGVtOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpLTIgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyB3aWR0aDo1MCU7IH0KLnVpLWRhdGVwaWNrZXItbXVsdGktMyAudWktZGF0ZXBpY2tlci1ncm91cCB7IHdpZHRoOjMzLjMlOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpLTQgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyB3aWR0aDoyNSU7IH0KLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBib3JkZXItbGVmdC13aWR0aDowOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBib3JkZXItbGVmdC13aWR0aDowOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgeyBjbGVhcjpsZWZ0OyB9Ci51aS1kYXRlcGlja2VyLXJvdy1icmVhayB7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IGZvbnQtc2l6ZTowZW07IH0KCi8qIFJUTCBzdXBwb3J0ICovCi51aS1kYXRlcGlja2VyLXJ0bCB7IGRpcmVjdGlvbjogcnRsOyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2IHsgcmlnaHQ6IDJweDsgbGVmdDogYXV0bzsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dCB7IGxlZnQ6IDJweDsgcmlnaHQ6IGF1dG87IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXY6aG92ZXIgeyByaWdodDogMXB4OyBsZWZ0OiBhdXRvOyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1uZXh0OmhvdmVyIHsgbGVmdDogMXB4OyByaWdodDogYXV0bzsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7IGNsZWFyOnJpZ2h0OyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7IGZsb2F0OiBsZWZ0OyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQgeyBmbG9hdDpyaWdodDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyBmbG9hdDpyaWdodDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBib3JkZXItcmlnaHQtd2lkdGg6MDsgYm9yZGVyLWxlZnQtd2lkdGg6MXB4OyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLXJpZ2h0LXdpZHRoOjA7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgfQoKLyogSUU2IElGUkFNRSBGSVggKHRha2VuIGZyb20gZGF0ZXBpY2tlciAxLjUuMyAqLwoudWktZGF0ZXBpY2tlci1jb3ZlciB7CiAgICBkaXNwbGF5OiBub25lOyAvKnNvcnJ5IGZvciBJRTUqLwogICAgZGlzcGxheS8qKi86IGJsb2NrOyAvKnNvcnJ5IGZvciBJRTUqLwogICAgcG9zaXRpb246IGFic29sdXRlOyAvKm11c3QgaGF2ZSovCiAgICB6LWluZGV4OiAtMTsgLyptdXN0IGhhdmUqLwogICAgZmlsdGVyOiBtYXNrKCk7IC8qbXVzdCBoYXZlKi8KICAgIHRvcDogLTRweDsgLyptdXN0IGhhdmUqLwogICAgbGVmdDogLTRweDsgLyptdXN0IGhhdmUqLwogICAgd2lkdGg6IDIwMHB4OyAvKm11c3QgaGF2ZSovCiAgICBoZWlnaHQ6IDIwMHB4OyAvKm11c3QgaGF2ZSovCn0=]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.dialog.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIERpYWxvZyAxLjguMTYKICoKICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0RpYWxvZyN0aGVtaW5nCiAqLwoudWktZGlhbG9nIHsgcG9zaXRpb246IGFic29sdXRlOyBwYWRkaW5nOiAuMmVtOyB3aWR0aDogMzAwcHg7IG92ZXJmbG93OiBoaWRkZW47IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyIHsgcGFkZGluZzogLjRlbSAxZW07IHBvc2l0aW9uOiByZWxhdGl2ZTsgIH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogLjFlbSAxNnB4IC4xZW0gMDsgfSAKLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogLjNlbTsgdG9wOiA1MCU7IHdpZHRoOiAxOXB4OyBtYXJnaW46IC0xMHB4IDAgMCAwOyBwYWRkaW5nOiAxcHg7IGhlaWdodDogMThweDsgfQoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2Ugc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDFweDsgfQoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2U6aG92ZXIsIC51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTpmb2N1cyB7IHBhZGRpbmc6IDA7IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLWNvbnRlbnQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJvcmRlcjogMDsgcGFkZGluZzogLjVlbSAxZW07IGJhY2tncm91bmQ6IG5vbmU7IG92ZXJmbG93OiBhdXRvOyB6b29tOiAxOyB9Ci51aS1kaWFsb2cgLnVpLWRpYWxvZy1idXR0b25wYW5lIHsgdGV4dC1hbGlnbjogbGVmdDsgYm9yZGVyLXdpZHRoOiAxcHggMCAwIDA7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IG1hcmdpbjogLjVlbSAwIDAgMDsgcGFkZGluZzogLjNlbSAxZW0gLjVlbSAuNGVtOyB9Ci51aS1kaWFsb2cgLnVpLWRpYWxvZy1idXR0b25wYW5lIC51aS1kaWFsb2ctYnV0dG9uc2V0IHsgZmxvYXQ6IHJpZ2h0OyB9Ci51aS1kaWFsb2cgLnVpLWRpYWxvZy1idXR0b25wYW5lIGJ1dHRvbiB7IG1hcmdpbjogLjVlbSAuNGVtIC41ZW0gMDsgY3Vyc29yOiBwb2ludGVyOyB9Ci51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zZSB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IHJpZ2h0OiAzcHg7IGJvdHRvbTogM3B4OyB9Ci51aS1kcmFnZ2FibGUgLnVpLWRpYWxvZy10aXRsZWJhciB7IGN1cnNvcjogbW92ZTsgfQo=]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.progressbar.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIFByb2dyZXNzYmFyIDEuOC4xNgogKgogKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvUHJvZ3Jlc3NiYXIjdGhlbWluZwogKi8KLnVpLXByb2dyZXNzYmFyIHsgaGVpZ2h0OjJlbTsgdGV4dC1hbGlnbjogbGVmdDsgfQoudWktcHJvZ3Jlc3NiYXIgLnVpLXByb2dyZXNzYmFyLXZhbHVlIHttYXJnaW46IC0xcHg7IGhlaWdodDoxMDAlOyB9]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.resizable.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIFJlc2l6YWJsZSAxLjguMTYKICoKICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1Jlc2l6YWJsZSN0aGVtaW5nCiAqLwoudWktcmVzaXphYmxlIHsgcG9zaXRpb246IHJlbGF0aXZlO30KLnVpLXJlc2l6YWJsZS1oYW5kbGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7Zm9udC1zaXplOiAwLjFweDt6LWluZGV4OiA5OTk5OTsgZGlzcGxheTogYmxvY2s7IH0KLnVpLXJlc2l6YWJsZS1kaXNhYmxlZCAudWktcmVzaXphYmxlLWhhbmRsZSwgLnVpLXJlc2l6YWJsZS1hdXRvaGlkZSAudWktcmVzaXphYmxlLWhhbmRsZSB7IGRpc3BsYXk6IG5vbmU7IH0KLnVpLXJlc2l6YWJsZS1uIHsgY3Vyc29yOiBuLXJlc2l6ZTsgaGVpZ2h0OiA3cHg7IHdpZHRoOiAxMDAlOyB0b3A6IC01cHg7IGxlZnQ6IDA7IH0KLnVpLXJlc2l6YWJsZS1zIHsgY3Vyc29yOiBzLXJlc2l6ZTsgaGVpZ2h0OiA3cHg7IHdpZHRoOiAxMDAlOyBib3R0b206IC01cHg7IGxlZnQ6IDA7IH0KLnVpLXJlc2l6YWJsZS1lIHsgY3Vyc29yOiBlLXJlc2l6ZTsgd2lkdGg6IDdweDsgcmlnaHQ6IC01cHg7IHRvcDogMDsgaGVpZ2h0OiAxMDAlOyB9Ci51aS1yZXNpemFibGUtdyB7IGN1cnNvcjogdy1yZXNpemU7IHdpZHRoOiA3cHg7IGxlZnQ6IC01cHg7IHRvcDogMDsgaGVpZ2h0OiAxMDAlOyB9Ci51aS1yZXNpemFibGUtc2UgeyBjdXJzb3I6IHNlLXJlc2l6ZTsgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsgcmlnaHQ6IDFweDsgYm90dG9tOiAxcHg7IH0KLnVpLXJlc2l6YWJsZS1zdyB7IGN1cnNvcjogc3ctcmVzaXplOyB3aWR0aDogOXB4OyBoZWlnaHQ6IDlweDsgbGVmdDogLTVweDsgYm90dG9tOiAtNXB4OyB9Ci51aS1yZXNpemFibGUtbncgeyBjdXJzb3I6IG53LXJlc2l6ZTsgd2lkdGg6IDlweDsgaGVpZ2h0OiA5cHg7IGxlZnQ6IC01cHg7IHRvcDogLTVweDsgfQoudWktcmVzaXphYmxlLW5lIHsgY3Vyc29yOiBuZS1yZXNpemU7IHdpZHRoOiA5cHg7IGhlaWdodDogOXB4OyByaWdodDogLTVweDsgdG9wOiAtNXB4O30=]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.selectable.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIFNlbGVjdGFibGUgMS44LjE2CiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9TZWxlY3RhYmxlI3RoZW1pbmcKICovCi51aS1zZWxlY3RhYmxlLWhlbHBlciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMTAwOyBib3JkZXI6MXB4IGRvdHRlZCBibGFjazsgfQo=]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.slider.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIFNsaWRlciAxLjguMTYKICoKICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1NsaWRlciN0aGVtaW5nCiAqLwoudWktc2xpZGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LWFsaWduOiBsZWZ0OyB9Ci51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDI7IHdpZHRoOiAxLjJlbTsgaGVpZ2h0OiAxLjJlbTsgY3Vyc29yOiBkZWZhdWx0OyB9Ci51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMTsgZm9udC1zaXplOiAuN2VtOyBkaXNwbGF5OiBibG9jazsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH0KCi51aS1zbGlkZXItaG9yaXpvbnRhbCB7IGhlaWdodDogLjhlbTsgfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUgeyB0b3A6IC0uM2VtOyBtYXJnaW4tbGVmdDogLS42ZW07IH0KLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UgeyB0b3A6IDA7IGhlaWdodDogMTAwJTsgfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW4geyBsZWZ0OiAwOyB9Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1heCB7IHJpZ2h0OiAwOyB9CgoudWktc2xpZGVyLXZlcnRpY2FsIHsgd2lkdGg6IC44ZW07IGhlaWdodDogMTAwcHg7IH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZSB7IGxlZnQ6IC0uM2VtOyBtYXJnaW4tbGVmdDogMDsgbWFyZ2luLWJvdHRvbTogLS42ZW07IH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlIHsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1pbiB7IGJvdHRvbTogMDsgfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4IHsgdG9wOiAwOyB9]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.tabs.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIFRhYnMgMS44LjE2CiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9UYWJzI3RoZW1pbmcKICovCi51aS10YWJzIHsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiAuMmVtOyB6b29tOiAxOyB9IC8qIHBvc2l0aW9uOiByZWxhdGl2ZSBwcmV2ZW50cyBJRSBzY3JvbGwgYnVnIChlbGVtZW50IHdpdGggcG9zaXRpb246IHJlbGF0aXZlIGluc2lkZSBjb250YWluZXIgd2l0aCBvdmVyZmxvdzogYXV0byBhcHBlYXIgYXMgImZpeGVkIikgKi8KLnVpLXRhYnMgLnVpLXRhYnMtbmF2IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAuMmVtIC4yZW0gMDsgfQoudWktdGFicyAudWktdGFicy1uYXYgbGkgeyBsaXN0LXN0eWxlOiBub25lOyBmbG9hdDogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDFweDsgbWFyZ2luOiAwIC4yZW0gMXB4IDA7IGJvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDsgcGFkZGluZzogMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQoudWktdGFicyAudWktdGFicy1uYXYgbGkgYSB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAuNWVtIDFlbTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9Ci51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS10YWJzLXNlbGVjdGVkIHsgbWFyZ2luLWJvdHRvbTogMDsgcGFkZGluZy1ib3R0b206IDFweDsgfQoudWktdGFicyAudWktdGFicy1uYXYgbGkudWktdGFicy1zZWxlY3RlZCBhLCAudWktdGFicyAudWktdGFicy1uYXYgbGkudWktc3RhdGUtZGlzYWJsZWQgYSwgLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXN0YXRlLXByb2Nlc3NpbmcgYSB7IGN1cnNvcjogdGV4dDsgfQoudWktdGFicyAudWktdGFicy1uYXYgbGkgYSwgLnVpLXRhYnMudWktdGFicy1jb2xsYXBzaWJsZSAudWktdGFicy1uYXYgbGkudWktdGFicy1zZWxlY3RlZCBhIHsgY3Vyc29yOiBwb2ludGVyOyB9IC8qIGZpcnN0IHNlbGVjdG9yIGluIGdyb3VwIHNlZW1zIG9ic29sZXRlLCBidXQgcmVxdWlyZWQgdG8gb3ZlcmNvbWUgYnVnIGluIE9wZXJhIGFwcGx5aW5nIGN1cnNvcjogdGV4dCBvdmVyYWxsIGlmIGRlZmluZWQgZWxzZXdoZXJlLi4uICovCi51aS10YWJzIC51aS10YWJzLXBhbmVsIHsgZGlzcGxheTogYmxvY2s7IGJvcmRlci13aWR0aDogMDsgcGFkZGluZzogMWVtIDEuNGVtOyBiYWNrZ3JvdW5kOiBub25lOyB9Ci51aS10YWJzIC51aS10YWJzLWhpZGUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0K]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/base/jquery.ui.theme.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgMS44LjE2CiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9UaGVtaW5nL0FQSQogKgogKiBUbyB2aWV3IGFuZCBtb2RpZnkgdGhpcyB0aGVtZSwgdmlzaXQgaHR0cDovL2pxdWVyeXVpLmNvbS90aGVtZXJvbGxlci8KICovCgoKLyogQ29tcG9uZW50IGNvbnRhaW5lcnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi51aS13aWRnZXQgeyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxzYW5zLXNlcmlmLyp7ZmZEZWZhdWx0fSovOyBmb250LXNpemU6IDEuMWVtLyp7ZnNEZWZhdWx0fSovOyB9Ci51aS13aWRnZXQgLnVpLXdpZGdldCB7IGZvbnQtc2l6ZTogMWVtOyB9Ci51aS13aWRnZXQgaW5wdXQsIC51aS13aWRnZXQgc2VsZWN0LCAudWktd2lkZ2V0IHRleHRhcmVhLCAudWktd2lkZ2V0IGJ1dHRvbiB7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLHNhbnMtc2VyaWYvKntmZkRlZmF1bHR9Ki87IGZvbnQtc2l6ZTogMWVtOyB9Ci51aS13aWRnZXQtY29udGVudCB7IGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWEvKntib3JkZXJDb2xvckNvbnRlbnR9Ki87IGJhY2tncm91bmQ6ICNmZmZmZmYvKntiZ0NvbG9yQ29udGVudH0qLyB1cmwoaW1hZ2VzL3VpLWJnX2ZsYXRfNzVfZmZmZmZmXzQweDEwMC5wbmcpLyp7YmdJbWdVcmxDb250ZW50fSovIDUwJS8qe2JnQ29udGVudFhQb3N9Ki8gNTAlLyp7YmdDb250ZW50WVBvc30qLyByZXBlYXQteC8qe2JnQ29udGVudFJlcGVhdH0qLzsgY29sb3I6ICMyMjIyMjIvKntmY0NvbnRlbnR9Ki87IH0KLnVpLXdpZGdldC1jb250ZW50IGEgeyBjb2xvcjogIzIyMjIyMi8qe2ZjQ29udGVudH0qLzsgfQoudWktd2lkZ2V0LWhlYWRlciB7IGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWEvKntib3JkZXJDb2xvckhlYWRlcn0qLzsgYmFja2dyb3VuZDogI2NjY2NjYy8qe2JnQ29sb3JIZWFkZXJ9Ki8gdXJsKGltYWdlcy91aS1iZ19oaWdobGlnaHQtc29mdF83NV9jY2NjY2NfMXgxMDAucG5nKS8qe2JnSW1nVXJsSGVhZGVyfSovIDUwJS8qe2JnSGVhZGVyWFBvc30qLyA1MCUvKntiZ0hlYWRlcllQb3N9Ki8gcmVwZWF0LXgvKntiZ0hlYWRlclJlcGVhdH0qLzsgY29sb3I6ICMyMjIyMjIvKntmY0hlYWRlcn0qLzsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KLnVpLXdpZGdldC1oZWFkZXIgYSB7IGNvbG9yOiAjMjIyMjIyLyp7ZmNIZWFkZXJ9Ki87IH0KCi8qIEludGVyYWN0aW9uIHN0YXRlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHQgeyBib3JkZXI6IDFweCBzb2xpZCAjZDNkM2QzLyp7Ym9yZGVyQ29sb3JEZWZhdWx0fSovOyBiYWNrZ3JvdW5kOiAjZTZlNmU2Lyp7YmdDb2xvckRlZmF1bHR9Ki8gdXJsKGltYWdlcy91aS1iZ19nbGFzc183NV9lNmU2ZTZfMXg0MDAucG5nKS8qe2JnSW1nVXJsRGVmYXVsdH0qLyA1MCUvKntiZ0RlZmF1bHRYUG9zfSovIDUwJS8qe2JnRGVmYXVsdFlQb3N9Ki8gcmVwZWF0LXgvKntiZ0RlZmF1bHRSZXBlYXR9Ki87IGZvbnQtd2VpZ2h0OiBub3JtYWwvKntmd0RlZmF1bHR9Ki87IGNvbG9yOiAjNTU1NTU1Lyp7ZmNEZWZhdWx0fSovOyB9Ci51aS1zdGF0ZS1kZWZhdWx0IGEsIC51aS1zdGF0ZS1kZWZhdWx0IGE6bGluaywgLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkIHsgY29sb3I6ICM1NTU1NTUvKntmY0RlZmF1bHR9Ki87IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktc3RhdGUtaG92ZXIsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1ob3ZlciwgLnVpLXN0YXRlLWZvY3VzLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZm9jdXMgeyBib3JkZXI6IDFweCBzb2xpZCAjOTk5OTk5Lyp7Ym9yZGVyQ29sb3JIb3Zlcn0qLzsgYmFja2dyb3VuZDogI2RhZGFkYS8qe2JnQ29sb3JIb3Zlcn0qLyB1cmwoaW1hZ2VzL3VpLWJnX2dsYXNzXzc1X2RhZGFkYV8xeDQwMC5wbmcpLyp7YmdJbWdVcmxIb3Zlcn0qLyA1MCUvKntiZ0hvdmVyWFBvc30qLyA1MCUvKntiZ0hvdmVyWVBvc30qLyByZXBlYXQteC8qe2JnSG92ZXJSZXBlYXR9Ki87IGZvbnQtd2VpZ2h0OiBub3JtYWwvKntmd0RlZmF1bHR9Ki87IGNvbG9yOiAjMjEyMTIxLyp7ZmNIb3Zlcn0qLzsgfQoudWktc3RhdGUtaG92ZXIgYSwgLnVpLXN0YXRlLWhvdmVyIGE6aG92ZXIgeyBjb2xvcjogIzIxMjEyMS8qe2ZjSG92ZXJ9Ki87IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktc3RhdGUtYWN0aXZlLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWFjdGl2ZSwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWFjdGl2ZSB7IGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWEvKntib3JkZXJDb2xvckFjdGl2ZX0qLzsgYmFja2dyb3VuZDogI2ZmZmZmZi8qe2JnQ29sb3JBY3RpdmV9Ki8gdXJsKGltYWdlcy91aS1iZ19nbGFzc182NV9mZmZmZmZfMXg0MDAucG5nKS8qe2JnSW1nVXJsQWN0aXZlfSovIDUwJS8qe2JnQWN0aXZlWFBvc30qLyA1MCUvKntiZ0FjdGl2ZVlQb3N9Ki8gcmVwZWF0LXgvKntiZ0FjdGl2ZVJlcGVhdH0qLzsgZm9udC13ZWlnaHQ6IG5vcm1hbC8qe2Z3RGVmYXVsdH0qLzsgY29sb3I6ICMyMTIxMjEvKntmY0FjdGl2ZX0qLzsgfQoudWktc3RhdGUtYWN0aXZlIGEsIC51aS1zdGF0ZS1hY3RpdmUgYTpsaW5rLCAudWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZCB7IGNvbG9yOiAjMjEyMTIxLyp7ZmNBY3RpdmV9Ki87IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktd2lkZ2V0IDphY3RpdmUgeyBvdXRsaW5lOiBub25lOyB9CgovKiBJbnRlcmFjdGlvbiBDdWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoudWktc3RhdGUtaGlnaGxpZ2h0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCAge2JvcmRlcjogMXB4IHNvbGlkICNmY2VmYTEvKntib3JkZXJDb2xvckhpZ2hsaWdodH0qLzsgYmFja2dyb3VuZDogI2ZiZjllZS8qe2JnQ29sb3JIaWdobGlnaHR9Ki8gdXJsKGltYWdlcy91aS1iZ19nbGFzc181NV9mYmY5ZWVfMXg0MDAucG5nKS8qe2JnSW1nVXJsSGlnaGxpZ2h0fSovIDUwJS8qe2JnSGlnaGxpZ2h0WFBvc30qLyA1MCUvKntiZ0hpZ2hsaWdodFlQb3N9Ki8gcmVwZWF0LXgvKntiZ0hpZ2hsaWdodFJlcGVhdH0qLzsgY29sb3I6ICMzNjM2MzYvKntmY0hpZ2hsaWdodH0qLzsgfQoudWktc3RhdGUtaGlnaGxpZ2h0IGEsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCBhIHsgY29sb3I6ICMzNjM2MzYvKntmY0hpZ2hsaWdodH0qLzsgfQoudWktc3RhdGUtZXJyb3IsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvciB7Ym9yZGVyOiAxcHggc29saWQgI2NkMGEwYS8qe2JvcmRlckNvbG9yRXJyb3J9Ki87IGJhY2tncm91bmQ6ICNmZWYxZWMvKntiZ0NvbG9yRXJyb3J9Ki8gdXJsKGltYWdlcy91aS1iZ19nbGFzc185NV9mZWYxZWNfMXg0MDAucG5nKS8qe2JnSW1nVXJsRXJyb3J9Ki8gNTAlLyp7YmdFcnJvclhQb3N9Ki8gNTAlLyp7YmdFcnJvcllQb3N9Ki8gcmVwZWF0LXgvKntiZ0Vycm9yUmVwZWF0fSovOyBjb2xvcjogI2NkMGEwYS8qe2ZjRXJyb3J9Ki87IH0KLnVpLXN0YXRlLWVycm9yIGEsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yIGEgeyBjb2xvcjogI2NkMGEwYS8qe2ZjRXJyb3J9Ki87IH0KLnVpLXN0YXRlLWVycm9yLXRleHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yLXRleHQgeyBjb2xvcjogI2NkMGEwYS8qe2ZjRXJyb3J9Ki87IH0KLnVpLXByaW9yaXR5LXByaW1hcnksIC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXByaW1hcnkgeyBmb250LXdlaWdodDogYm9sZDsgfQoudWktcHJpb3JpdHktc2Vjb25kYXJ5LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXNlY29uZGFyeSwgIC51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1zZWNvbmRhcnkgeyBvcGFjaXR5OiAuNzsgZmlsdGVyOkFscGhhKE9wYWNpdHk9NzApOyBmb250LXdlaWdodDogbm9ybWFsOyB9Ci51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVkIHsgb3BhY2l0eTogLjM1OyBmaWx0ZXI6QWxwaGEoT3BhY2l0eT0zNSk7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH0KCi8qIEljb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyogc3RhdGVzIGFuZCBpbWFnZXMgKi8KLnVpLWljb24geyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZykvKntpY29uc0NvbnRlbnR9Ki87IH0KLnVpLXdpZGdldC1jb250ZW50IC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZykvKntpY29uc0NvbnRlbnR9Ki87IH0KLnVpLXdpZGdldC1oZWFkZXIgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfMjIyMjIyXzI1NngyNDAucG5nKS8qe2ljb25zSGVhZGVyfSovOyB9Ci51aS1zdGF0ZS1kZWZhdWx0IC51aS1pY29uIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29uc184ODg4ODhfMjU2eDI0MC5wbmcpLyp7aWNvbnNEZWZhdWx0fSovOyB9Ci51aS1zdGF0ZS1ob3ZlciAudWktaWNvbiwgLnVpLXN0YXRlLWZvY3VzIC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzQ1NDU0NV8yNTZ4MjQwLnBuZykvKntpY29uc0hvdmVyfSovOyB9Ci51aS1zdGF0ZS1hY3RpdmUgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfNDU0NTQ1XzI1NngyNDAucG5nKS8qe2ljb25zQWN0aXZlfSovOyB9Ci51aS1zdGF0ZS1oaWdobGlnaHQgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfMmU4M2ZmXzI1NngyNDAucG5nKS8qe2ljb25zSGlnaGxpZ2h0fSovOyB9Ci51aS1zdGF0ZS1lcnJvciAudWktaWNvbiwgLnVpLXN0YXRlLWVycm9yLXRleHQgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfY2QwYTBhXzI1NngyNDAucG5nKS8qe2ljb25zRXJyb3J9Ki87IH0KCi8qIHBvc2l0aW9uaW5nICovCi51aS1pY29uLWNhcmF0LTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfQoudWktaWNvbi1jYXJhdC0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggMDsgfQoudWktaWNvbi1jYXJhdC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IDA7IH0KLnVpLWljb24tY2FyYXQtMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IDA7IH0KLnVpLWljb24tY2FyYXQtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggMDsgfQoudWktaWNvbi1jYXJhdC0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IDA7IH0KLnVpLWljb24tY2FyYXQtMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggMDsgfQoudWktaWNvbi1jYXJhdC0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAwOyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTZweDsgfQoudWktaWNvbi1hcnJvdy0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMi1uZS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0yLXNlLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93c3RvcC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTMycHg7IH0KLnVpLWljb24tYXJyb3dzdG9wLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMzJweDsgfQoudWktaWNvbi1hcnJvd3N0b3AtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93c3RvcC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTMycHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMi1uZS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMi1zZS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJuLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJuLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJuLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJuLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JlZnJlc2gtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmVmcmVzaC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JlZnJlc2gtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93LTQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC04MHB4OyB9Ci51aS1pY29uLWFycm93LTQtZGlhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC04MHB4OyB9Ci51aS1pY29uLWV4dGxpbmsgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtODBweDsgfQoudWktaWNvbi1uZXd3aW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtODBweDsgfQoudWktaWNvbi1yZWZyZXNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTgwcHg7IH0KLnVpLWljb24tc2h1ZmZsZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC04MHB4OyB9Ci51aS1pY29uLXRyYW5zZmVyLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC04MHB4OyB9Ci51aS1pY29uLXRyYW5zZmVydGhpY2stZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC04MHB4OyB9Ci51aS1pY29uLWZvbGRlci1jb2xsYXBzZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05NnB4OyB9Ci51aS1pY29uLWZvbGRlci1vcGVuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTk2cHg7IH0KLnVpLWljb24tZG9jdW1lbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtOTZweDsgfQoudWktaWNvbi1kb2N1bWVudC1iIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTk2cHg7IH0KLnVpLWljb24tbm90ZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC05NnB4OyB9Ci51aS1pY29uLW1haWwtY2xvc2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTk2cHg7IH0KLnVpLWljb24tbWFpbC1vcGVuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTk2cHg7IH0KLnVpLWljb24tc3VpdGNhc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTk2cHg7IH0KLnVpLWljb24tY29tbWVudCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtOTZweDsgfQoudWktaWNvbi1wZXJzb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTk2cHg7IH0KLnVpLWljb24tcHJpbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTk2cHg7IH0KLnVpLWljb24tdHJhc2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTk2cHg7IH0KLnVpLWljb24tbG9ja2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC05NnB4OyB9Ci51aS1pY29uLXVubG9ja2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC05NnB4OyB9Ci51aS1pY29uLWJvb2ttYXJrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC05NnB4OyB9Ci51aS1pY29uLXRhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtOTZweDsgfQoudWktaWNvbi1ob21lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTEycHg7IH0KLnVpLWljb24tZmxhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMTJweDsgfQoudWktaWNvbi1jYWxlbmRhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMTJweDsgfQoudWktaWNvbi1jYXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTExMnB4OyB9Ci51aS1pY29uLXBlbmNpbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMTJweDsgfQoudWktaWNvbi1jbG9jayB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMTJweDsgfQoudWktaWNvbi1kaXNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTExMnB4OyB9Ci51aS1pY29uLWNhbGN1bGF0b3IgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTExMnB4OyB9Ci51aS1pY29uLXpvb21pbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTEycHg7IH0KLnVpLWljb24tem9vbW91dCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTEycHg7IH0KLnVpLWljb24tc2VhcmNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMTJweDsgfQoudWktaWNvbi13cmVuY2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTExMnB4OyB9Ci51aS1pY29uLWdlYXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTExMnB4OyB9Ci51aS1pY29uLWhlYXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMTJweDsgfQoudWktaWNvbi1zdGFyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMTJweDsgfQoudWktaWNvbi1saW5rIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMTJweDsgfQoudWktaWNvbi1jYW5jZWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMjhweDsgfQoudWktaWNvbi1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTEyOHB4OyB9Ci51aS1pY29uLXBsdXN0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMjhweDsgfQoudWktaWNvbi1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMjhweDsgfQoudWktaWNvbi1taW51c3RoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTEyOHB4OyB9Ci51aS1pY29uLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTEyOHB4OyB9Ci51aS1pY29uLWNsb3NldGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTI4cHg7IH0KLnVpLWljb24ta2V5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xMjhweDsgfQoudWktaWNvbi1saWdodGJ1bGIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTEyOHB4OyB9Ci51aS1pY29uLXNjaXNzb3JzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMjhweDsgfQoudWktaWNvbi1jbGlwYm9hcmQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTEyOHB4OyB9Ci51aS1pY29uLWNvcHkgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTEyOHB4OyB9Ci51aS1pY29uLWNvbnRhY3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTEyOHB4OyB9Ci51aS1pY29uLWltYWdlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMjhweDsgfQoudWktaWNvbi12aWRlbyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTI4cHg7IH0KLnVpLWljb24tc2NyaXB0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMjhweDsgfQoudWktaWNvbi1hbGVydCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE0NHB4OyB9Ci51aS1pY29uLWluZm8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTQ0cHg7IH0KLnVpLWljb24tbm90aWNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE0NHB4OyB9Ci51aS1pY29uLWhlbHAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTQ0cHg7IH0KLnVpLWljb24tY2hlY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTQ0cHg7IH0KLnVpLWljb24tYnVsbGV0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE0NHB4OyB9Ci51aS1pY29uLXJhZGlvLW9mZiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNDRweDsgfQoudWktaWNvbi1yYWRpby1vbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTQ0cHg7IH0KLnVpLWljb24tcGluLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE0NHB4OyB9Ci51aS1pY29uLXBpbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNDRweDsgfQoudWktaWNvbi1wbGF5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTYwcHg7IH0KLnVpLWljb24tcGF1c2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTYwcHg7IH0KLnVpLWljb24tc2Vlay1uZXh0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE2MHB4OyB9Ci51aS1pY29uLXNlZWstcHJldiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNjBweDsgfQoudWktaWNvbi1zZWVrLWVuZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNjBweDsgfQoudWktaWNvbi1zZWVrLXN0YXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2MHB4OyB9Ci8qIHVpLWljb24tc2Vlay1maXJzdCBpcyBkZXByZWNhdGVkLCB1c2UgdWktaWNvbi1zZWVrLXN0YXJ0IGluc3RlYWQgKi8KLnVpLWljb24tc2Vlay1maXJzdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweDsgfQoudWktaWNvbi1zdG9wIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2MHB4OyB9Ci51aS1pY29uLWVqZWN0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNjBweDsgfQoudWktaWNvbi12b2x1bWUtb2ZmIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNjBweDsgfQoudWktaWNvbi12b2x1bWUtb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2MHB4OyB9Ci51aS1pY29uLXBvd2VyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTc2cHg7IH0KLnVpLWljb24tc2lnbmFsLWRpYWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTc2cHg7IH0KLnVpLWljb24tc2lnbmFsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE3NnB4OyB9Ci51aS1pY29uLWJhdHRlcnktMCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNzZweDsgfQoudWktaWNvbi1iYXR0ZXJ5LTEgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTc2cHg7IH0KLnVpLWljb24tYmF0dGVyeS0yIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE3NnB4OyB9Ci51aS1pY29uLWJhdHRlcnktMyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNzZweDsgfQoudWktaWNvbi1jaXJjbGUtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLWFycm93LWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1hcnJvdy1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtYXJyb3ctdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLWFycm93LW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS16b29taW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS16b29tb3V0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtY2hlY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMDhweDsgfQoudWktaWNvbi1jaXJjbGVzbWFsbC1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMDhweDsgfQoudWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMDhweDsgfQoudWktaWNvbi1zcXVhcmVzbWFsbC1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIwOHB4OyB9Ci51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIwOHB4OyB9Ci51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTIwOHB4OyB9Ci51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2FsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjI0cHg7IH0KLnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMjRweDsgfQoudWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2FsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTIyNHB4OyB9Ci51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0yMjRweDsgfQoudWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjI0cHg7IH0KLnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMjRweDsgfQoKCi8qIE1pc2MgdmlzdWFscwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIENvcm5lciByYWRpdXMgKi8KLnVpLWNvcm5lci1hbGwsIC51aS1jb3JuZXItdG9wLCAudWktY29ybmVyLWxlZnQsIC51aS1jb3JuZXItdGwgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogNHB4Lyp7Y29ybmVyUmFkaXVzfSovOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweC8qe2Nvcm5lclJhZGl1c30qLzsgLWtodG1sLWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweC8qe2Nvcm5lclJhZGl1c30qLzsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4Lyp7Y29ybmVyUmFkaXVzfSovOyB9Ci51aS1jb3JuZXItYWxsLCAudWktY29ybmVyLXRvcCwgLnVpLWNvcm5lci1yaWdodCwgLnVpLWNvcm5lci10ciB7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDogNHB4Lyp7Y29ybmVyUmFkaXVzfSovOyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHgvKntjb3JuZXJSYWRpdXN9Ki87IC1raHRtbC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4Lyp7Y29ybmVyUmFkaXVzfSovOyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4Lyp7Y29ybmVyUmFkaXVzfSovOyB9Ci51aS1jb3JuZXItYWxsLCAudWktY29ybmVyLWJvdHRvbSwgLnVpLWNvcm5lci1sZWZ0LCAudWktY29ybmVyLWJsIHsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6IDRweC8qe2Nvcm5lclJhZGl1c30qLzsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHgvKntjb3JuZXJSYWRpdXN9Ki87IC1raHRtbC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHgvKntjb3JuZXJSYWRpdXN9Ki87IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweC8qe2Nvcm5lclJhZGl1c30qLzsgfQoudWktY29ybmVyLWFsbCwgLnVpLWNvcm5lci1ib3R0b20sIC51aS1jb3JuZXItcmlnaHQsIC51aS1jb3JuZXItYnIgeyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6IDRweC8qe2Nvcm5lclJhZGl1c30qLzsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4Lyp7Y29ybmVyUmFkaXVzfSovOyAta2h0bWwtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweC8qe2Nvcm5lclJhZGl1c30qLzsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweC8qe2Nvcm5lclJhZGl1c30qLzsgfQoKLyogT3ZlcmxheXMgKi8KLnVpLXdpZGdldC1vdmVybGF5IHsgYmFja2dyb3VuZDogI2FhYWFhYS8qe2JnQ29sb3JPdmVybGF5fSovIHVybChpbWFnZXMvdWktYmdfZmxhdF8wX2FhYWFhYV80MHgxMDAucG5nKS8qe2JnSW1nVXJsT3ZlcmxheX0qLyA1MCUvKntiZ092ZXJsYXlYUG9zfSovIDUwJS8qe2JnT3ZlcmxheVlQb3N9Ki8gcmVwZWF0LXgvKntiZ092ZXJsYXlSZXBlYXR9Ki87IG9wYWNpdHk6IC4zO2ZpbHRlcjpBbHBoYShPcGFjaXR5PTMwKS8qe29wYWNpdHlPdmVybGF5fSovOyB9Ci51aS13aWRnZXQtc2hhZG93IHsgbWFyZ2luOiAtOHB4Lyp7b2Zmc2V0VG9wU2hhZG93fSovIDAgMCAtOHB4Lyp7b2Zmc2V0TGVmdFNoYWRvd30qLzsgcGFkZGluZzogOHB4Lyp7dGhpY2tuZXNzU2hhZG93fSovOyBiYWNrZ3JvdW5kOiAjYWFhYWFhLyp7YmdDb2xvclNoYWRvd30qLyB1cmwoaW1hZ2VzL3VpLWJnX2ZsYXRfMF9hYWFhYWFfNDB4MTAwLnBuZykvKntiZ0ltZ1VybFNoYWRvd30qLyA1MCUvKntiZ1NoYWRvd1hQb3N9Ki8gNTAlLyp7YmdTaGFkb3dZUG9zfSovIHJlcGVhdC14Lyp7YmdTaGFkb3dSZXBlYXR9Ki87IG9wYWNpdHk6IC4zO2ZpbHRlcjpBbHBoYShPcGFjaXR5PTMwKS8qe29wYWNpdHlTaGFkb3d9Ki87IC1tb3otYm9yZGVyLXJhZGl1czogOHB4Lyp7Y29ybmVyUmFkaXVzU2hhZG93fSovOyAta2h0bWwtYm9yZGVyLXJhZGl1czogOHB4Lyp7Y29ybmVyUmFkaXVzU2hhZG93fSovOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDhweC8qe2Nvcm5lclJhZGl1c1NoYWRvd30qLzsgYm9yZGVyLXJhZGl1czogOHB4Lyp7Y29ybmVyUmFkaXVzU2hhZG93fSovOyB9]]></data>
	</file>
	<file>
	  <filename>/css/jquery-ui/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/api/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/api/blank.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGh0bWw+DQo8aGVhZD4NCgk8dGl0bGU+R0JGaWxlUGlja2VyIEFQSSBEb2M8L3RpdGxlPg0KCQkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJtZWRpYS9zdHlsZXNoZWV0LmNzcyIgLz4NCgkJCTxtZXRhIGh0dHAtZXF1aXY9J0NvbnRlbnQtVHlwZScgY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEnLz4NCjwvaGVhZD4NCjxib2R5Pg0KPGRpdiBhbGlnbj0iY2VudGVyIj48aDE+R0JGaWxlUGlja2VyIEFQSSBEb2M8L2gxPjwvZGl2Pg0KPGI+V2VsY29tZSB0byBDTVNNb2R1bGUhPC9iPjxiciAvPg0KPGJyIC8+DQpUaGlzIGRvY3VtZW50YXRpb24gd2FzIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmciPnBocERvY3VtZW50b3IgdjEuNC4wYTI8L2E+PGJyIC8+DQo8L2JvZHk+DQo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/doc/api/classtrees_CMSModule.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQoJCTxoZWFkPg0KCQkJPCEtLSB0ZW1wbGF0ZSBkZXNpZ25lZCBieSBNYXJjbyBWb24gQmFsbG1vb3MgLS0+DQoJCQk8dGl0bGU+PC90aXRsZT4NCgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ibWVkaWEvc3R5bGVzaGVldC5jc3MiIC8+DQoJCQk8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xJy8+DQoJCTwvaGVhZD4NCgkJPGJvZHk+DQoJCQkJCQkNDQo8IS0tIFN0YXJ0IG9mIENsYXNzIERhdGEgLS0+DQo8SDI+DQoJDQo8L0gyPg0KPGgyPlJvb3QgY2xhc3MgQ01TTW9kdWxlPC9oMj4NCjx1bD4KPGxpPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCI+R0JGaWxlUGlja2VyPC9hPjwvbGk+PC91bD4KDQoJPHAgY2xhc3M9Im5vdGVzIiBpZD0iY3JlZGl0Ij4NCgkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgb24gV2VkLCAyMyBGZWIgMjAxMSAyMTozNzo1MiArMDEwMCBieSA8YSBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmciIHRhcmdldD0iX2JsYW5rIj5waHBEb2N1bWVudG9yIDEuNC4wYTI8L2E+DQoJPC9wPg0KCTwvYm9keT4NCjwvaHRtbD4N]]></data>
	</file>
	<file>
	  <filename>/doc/api/CMSModule/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/api/CMSModule/GBFilePicker.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQoJCTxoZWFkPg0KCQkJPCEtLSB0ZW1wbGF0ZSBkZXNpZ25lZCBieSBNYXJjbyBWb24gQmFsbG1vb3MgLS0+DQoJCQk8dGl0bGU+RG9jcyBGb3IgQ2xhc3MgR0JGaWxlUGlja2VyPC90aXRsZT4NCgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vbWVkaWEvc3R5bGVzaGVldC5jc3MiIC8+DQoJCQk8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xJy8+DQoJCTwvaGVhZD4NCgkJPGJvZHk+DQoJCQk8ZGl2IGNsYXNzPSJwYWdlLWJvZHkiPgkJCQ0KDQo8aDIgY2xhc3M9ImNsYXNzLW5hbWUiPkNsYXNzIEdCRmlsZVBpY2tlcjwvaDI+DQoNCjxhIG5hbWU9InNlYy1kZXNjcmlwdGlvbiI+PC9hPg0KPGRpdiBjbGFzcz0iaW5mby1ib3giPg0KCTxkaXYgY2xhc3M9ImluZm8tYm94LXRpdGxlIj5EZXNjcmlwdGlvbjwvZGl2Pg0KCTxkaXYgY2xhc3M9Im5hdi1iYXIiPg0KCQkJCQk8c3BhbiBjbGFzcz0iZGlzYWJsZWQiPkRlc2NyaXB0aW9uPC9zcGFuPiB8DQoJCQkJCQkJCQkJCQkJCQk8YSBocmVmPSIjc2VjLW1ldGhvZC1zdW1tYXJ5Ij5NZXRob2RzPC9hPiAoPGEgaHJlZj0iI3NlYy1tZXRob2RzIj5kZXRhaWxzPC9hPikNCgkJCQkJCQ0KCQkJCQk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJpbmZvLWJveC1ib2R5Ij4NCiAgICAgICAgCQk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPk1haW4gY2xhc3Mgb2YgdGhlIEdCRmlsZVBpY2tlciBNb2R1bGU8L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5hdXRob3I6PC9zcGFuPiBHZW9yZyBCdXNjaCAoTmFOKTwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+dmVyc2lvbjo8L3NwYW4+IDEuMzwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+Y29weXJpZ2h0Ojwvc3Bhbj4gMjAxMCBHZW9yZyBCdXNjaCAoTmFOKTwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+bGljZW5zZTo8L3NwYW4+IEdQTDwvbGk+DQoJCQk8L3VsPg0KCQk8cCBjbGFzcz0ibm90ZXMiPg0KCQkJTG9jYXRlZCBpbiA8YSBjbGFzcz0iZmllbGQiIGhyZWY9Il9HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sIj4vR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2E+IChsaW5lIDxzcGFuIGNsYXNzPSJmaWVsZCI+PGEgaHJlZj0iLi4vX19maWxlc291cmNlL2Zzb3VyY2VfQ01TTW9kdWxlX19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sI2EzMyI+MzM8L2E+PC9zcGFuPikNCgkJPC9wPg0KCQkNCgkJCQkNCgkJPHByZT5DTVNNb2R1bGUNCiAgIHwNCiAgIC0tR0JGaWxlUGlja2VyPC9wcmU+DQoJDQoJCQk8L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KDQoJPGEgbmFtZT0ic2VjLW1ldGhvZC1zdW1tYXJ5Ij48L2E+DQoJPGRpdiBjbGFzcz0iaW5mby1ib3giPg0KCQk8ZGl2IGNsYXNzPSJpbmZvLWJveC10aXRsZSI+TWV0aG9kIFN1bW1hcnk8L3NwYW4+PC9kaXY+DQoJCTxkaXYgY2xhc3M9Im5hdi1iYXIiPg0KCQkJPGEgaHJlZj0iI3NlYy1kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L2E+IHwNCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJkaXNhYmxlZCI+TWV0aG9kczwvc3Bhbj4gKDxhIGhyZWY9IiNzZWMtbWV0aG9kcyI+ZGV0YWlsczwvYT4pDQoJCTwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJpbmZvLWJveC1ib2R5Ij4JCQkNCgkJCTxkaXYgY2xhc3M9Im1ldGhvZC1zdW1tYXJ5Ij4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmFycmF5PC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNDbGVhbkFycmF5IiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5DbGVhbkFycmF5PC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheTwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRhcnJheTwvc3Bhbj4pDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJPGRpdiBjbGFzcz0ibWV0aG9kLWRlZmluaXRpb24iPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+c3RyaW5nPC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNDbGVhblBhdGgiIHRpdGxlPSJkZXRhaWxzIiBjbGFzcz0ibWV0aG9kLW5hbWUiPkNsZWFuUGF0aDwvYT4NCgkJCQkJCQkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHBhdGg8L3NwYW4+LCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZnVsbF9wYXRoPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+dHJ1ZTwvc3Bhbj5dKQ0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPnN0cmluZzwvc3Bhbj4NCgkJCQkJCQkJCQk8YSBocmVmPSIjQ2xlYW5VUkwiIHRpdGxlPSJkZXRhaWxzIiBjbGFzcz0ibWV0aG9kLW5hbWUiPkNsZWFuVVJMPC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kdXJsPC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZ1bGxfdXJsPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+dHJ1ZTwvc3Bhbj5dKQ0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmJvb2xlYW48L3NwYW4+DQoJCQkJCQkJCQkJPGEgaHJlZj0iI0NvbnRhaW5zSWxsZWdhbENoYXJzIiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5Db250YWluc0lsbGVnYWxDaGFyczwvYT4NCgkJCQkJCQkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZpbGVuYW1lPC9zcGFuPikNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJtZXRob2QtZGVmaW5pdGlvbiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5zdHJpbmc8L3NwYW4+DQoJCQkJCQkJCQkJPGEgaHJlZj0iI0NyZWF0ZUZpbGVEcm9wZG93biIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+Q3JlYXRlRmlsZURyb3Bkb3duPC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaWQ8L3NwYW4+LCA8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRuYW1lPC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGRpcjwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRzZWxlY3RlZDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5fHN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRleGNsX3ByZWZpeDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5fHN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRpbmNsX3ByZWZpeDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5fHN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRleGNsX3N1Zml4PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXl8c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGluY2xfc3VmaXg8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZmlsZV9leHQ8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kbWVkaWFfdHlwZTwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2xlYW48L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kYWxsb3dfbm9uZTwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPnRydWU8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGFkZF90eHQ8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dKQ0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPnN0cmluZzwvc3Bhbj4NCgkJCQkJCQkJCQk8YSBocmVmPSIjQ3JlYXRlRmlsZVBpY2tlcklucHV0IiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5DcmVhdGVGaWxlUGlja2VySW5wdXQ8L2E+DQoJCQkJCQkJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPm9iamVjdDwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiYkbW9kdWxlPC9zcGFuPiwgPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaWQ8L3NwYW4+LCA8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRuYW1lPC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHZhbHVlPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXk8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcGFyYW1zPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+YXJyYXkoKTwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5pbnRlZ2VyPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHJldHVybmlkPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSkNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJtZXRob2QtZGVmaW5pdGlvbiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5zdHJpbmc8L3NwYW4+DQoJCQkJCQkJCQkJPGEgaHJlZj0iI0NyZWF0ZVRodW1ibmFpbCIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+Q3JlYXRlVGh1bWJuYWlsPC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcGF0aDwvc3Bhbj4pDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJPGRpdiBjbGFzcz0ibWV0aG9kLWRlZmluaXRpb24iPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+c3RyaW5nPC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNHZXRBY3Rpb25JY29uIiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5HZXRBY3Rpb25JY29uPC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kYWN0aW9uPC9zcGFuPikNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJtZXRob2QtZGVmaW5pdGlvbiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5zdHJpbmc8L3NwYW4+DQoJCQkJCQkJCQkJPGEgaHJlZj0iI0dldEZpbGVJY29uIiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5HZXRGaWxlSWNvbjwvYT4NCgkJCQkJCQkJCQkJKFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRleHQ8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGlzX2Rpcjwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPmZhbHNlPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2w8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaXNfaW1hZ2U8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij5mYWxzZTwvc3Bhbj5dKQ0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmFycmF5PC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNHZXRGaWxlcyIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+JmFtcDtHZXRGaWxlczwvYT4NCgkJCQkJCQkJCQkJKFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRkaXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9wcmVmaXg8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaW5jbF9wcmVmaXg8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9zdWZpeDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5fHN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRpbmNsX3N1Zml4PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXl8c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZpbGVfZXh0PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JG1lZGlhX3R5cGU8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4naW1hZ2UnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2xlYW48L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9kaXJzPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+ZmFsc2U8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+Ym9vbGVhbjwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRzaG93X3RodW1iZmlsZXM8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij5mYWxzZTwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGNyZWF0ZV90aHVtYnM8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij50cnVlPC9zcGFuPl0pDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJPGRpdiBjbGFzcz0ibWV0aG9kLWRlZmluaXRpb24iPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+c3RyaW5nPC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNHZXRGaWxlVHlwZSIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+R2V0RmlsZVR5cGU8L2E+DQoJCQkJCQkJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRmaWxlPC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHVzZV9taW1lPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+ZmFsc2U8L3NwYW4+XSkNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJtZXRob2QtZGVmaW5pdGlvbiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5hcnJheTwvc3Bhbj4NCgkJCQkJCQkJCQk8YSBocmVmPSIjR2V0SW5wdXRGaWxlcyIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+JmFtcDtHZXRJbnB1dEZpbGVzPC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaWQ8L3NwYW4+LCA8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRuYW1lPC9zcGFuPiwgPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZGlyPC9zcGFuPikNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJtZXRob2QtZGVmaW5pdGlvbiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5hcnJheTwvc3Bhbj4NCgkJCQkJCQkJCQk8YSBocmVmPSIjR2V0VGhlbWVzTGlzdCIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+R2V0VGhlbWVzTGlzdDwvYT4NCgkJCQkJCQkJCQkoKQ0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPnN0cmluZzwvc3Bhbj4NCgkJCQkJCQkJCQk8YSBocmVmPSIjR2V0VGh1bWJuYWlsIiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5HZXRUaHVtYm5haWw8L2E+DQoJCQkJCQkJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRwYXRoPC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGNyZWF0ZV90aHVtYjwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPnRydWU8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHVybG9ubHk8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij5mYWxzZTwvc3Bhbj5dKQ0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmFycmF5PC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNHZXRUaHVtYm5haWxTaXplIiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5HZXRUaHVtYm5haWxTaXplPC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcGF0aDwvc3Bhbj4pDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJPGRpdiBjbGFzcz0ibWV0aG9kLWRlZmluaXRpb24iPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+dm9pZDwvc3Bhbj4NCgkJCQkJCQkJCQk8YSBocmVmPSIjSGFuZGxlRmlsZVJlc2l6aW5nIiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5IYW5kbGVGaWxlUmVzaXppbmc8L2E+DQoJCQkJCQkJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRzb3VyY2U8L3NwYW4+LCA8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRvdXRwdXQ8L3NwYW4+LCA8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmludGVnZXI8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kbmV3X3dpZHRoPC9zcGFuPiwgPHNwYW4gY2xhc3M9InZhci10eXBlIj5pbnRlZ2VyPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JG5ld19oZWlnaHQ8L3NwYW4+LCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGtlZXBfYXNwZWN0cmF0aW88L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij50cnVlPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2xlYW48L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kYWxsb3dfdXBzY2FsaW5nPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+ZmFsc2U8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+aW50ZWdlcjwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRxdWFsaXR5PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+MTAwPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2xlYW48L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kY2xlYW5fcGF0aDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPnRydWU8L3NwYW4+XSkNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJtZXRob2QtZGVmaW5pdGlvbiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5ib29sZWFuPC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNJc0RpckVtcHR5IiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5Jc0RpckVtcHR5PC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZGlyPC9zcGFuPikNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJtZXRob2QtZGVmaW5pdGlvbiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5ib29sPC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNJc0ZhbHNlIiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5Jc0ZhbHNlPC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5taXhlZDwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiR2YWx1ZTwvc3Bhbj4pDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJPGRpdiBjbGFzcz0ibWV0aG9kLWRlZmluaXRpb24iPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+Ym9vbDwvc3Bhbj4NCgkJCQkJCQkJCQk8YSBocmVmPSIjSXNUcnVlIiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5Jc1RydWU8L2E+DQoJCQkJCQkJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPm1peGVkPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHZhbHVlPC9zcGFuPikNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJtZXRob2QtZGVmaW5pdGlvbiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5ib29sZWFuPC9zcGFuPg0KCQkJCQkJCQkJCTxhIGhyZWY9IiNJc1ZhckVtcHR5IiB0aXRsZT0iZGV0YWlscyIgY2xhc3M9Im1ldGhvZC1uYW1lIj5Jc1ZhckVtcHR5PC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5taXhlZDwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiYkdmFyPC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+Ym9vbGVhbjwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiR0cmltPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+dHJ1ZTwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHVuc2V0X2VtcHR5X2luZGV4ZXM8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij5mYWxzZTwvc3Bhbj5dKQ0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmJvb2w8L3NwYW4+DQoJCQkJCQkJCQkJPGEgaHJlZj0iI0xvYWRlZCIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+TG9hZGVkPC9hPg0KCQkJCQkJCQkJCSgpDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJPGRpdiBjbGFzcz0ibWV0aG9kLWRlZmluaXRpb24iPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+dm9pZDwvc3Bhbj4NCgkJCQkJCQkJCQk8YSBocmVmPSIjU2V0UGFyYW1ldGVycyIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+U2V0UGFyYW1ldGVyczwvYT4NCgkJCQkJCQkJCQkoKQ0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9Im1ldGhvZC1kZWZpbml0aW9uIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmludGVnZXI8L3NwYW4+DQoJCQkJCQkJCQkJPGEgaHJlZj0iI1NvcnRGaWxlcyIgdGl0bGU9ImRldGFpbHMiIGNsYXNzPSJtZXRob2QtbmFtZSI+U29ydEZpbGVzPC9hPg0KCQkJCQkJCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5vYmplY3Q8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZmlsZTE8L3NwYW4+LCA8c3BhbiBjbGFzcz0idmFyLXR5cGUiPm9iamVjdDwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRmaWxlMjwvc3Bhbj4pDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCTwvZGl2PgkJDQoNCgkNCgk8YSBuYW1lPSJzZWMtbWV0aG9kcyI+PC9hPg0KCTxkaXYgY2xhc3M9ImluZm8tYm94Ij4NCgkJPGRpdiBjbGFzcz0iaW5mby1ib3gtdGl0bGUiPk1ldGhvZHM8L2Rpdj4NCgkJPGRpdiBjbGFzcz0ibmF2LWJhciI+DQoJCQk8YSBocmVmPSIjc2VjLWRlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvYT4gfA0KCQkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9IiNzZWMtbWV0aG9kLXN1bW1hcnkiPk1ldGhvZHM8L2E+ICg8c3BhbiBjbGFzcz0iZGlzYWJsZWQiPmRldGFpbHM8L3NwYW4+KQ0KCQkJCQkJDQoJCTwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJpbmZvLWJveC1ib2R5Ij4NCgkJCTxBIE5BTUU9J21ldGhvZF9kZXRhaWwnPjwvQT4NCjxhIG5hbWU9Im1ldGhvZENsZWFuQXJyYXkiIGlkPSJDbGVhbkFycmF5Ij48IS0tIC0tPjwvYT4NCjxkaXYgY2xhc3M9ImV2ZW5yb3ciPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1oZWFkZXIiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5DbGVhbkFycmF5PC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMTg1MiI+MTg1MjwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPlJlbW92ZXMgZW1wdHkgZWxlbWVudHMgZnJvbSBhbiBhcnJheS4gPGJyIC8+ICAoY2FuIGJlIHVzZWZ1bCB3aGVuIHVzaW5nIGZ1bmN0aW9uIGV4cGxvZGUgdG8gY3JlYXRlIHRoZSBhcnJheSBmcm9tIGEgY3N2KTwvcD4NCgk8dWwgY2xhc3M9InRhZ3MiPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnJldHVybjo8L3NwYW4+IC0gYW4gYXJyYXkgd2l0aG91dCBlbXB0eSBlbGVtZW50cyBvciBhbiBlbXB0eSBhcnJheTwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjA8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+YXJyYXk8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlDbGVhbkFycmF5DQoJCTwvc3Bhbj4NCgkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXk8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kYXJyYXk8L3NwYW4+KQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheTwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRhcnJheTwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIGFycmF5IHRvIGNsZWFuIHVwPC9zcGFuPgkJCTwvbGk+DQoJCQkJPC91bD4NCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZENsZWFuUGF0aCIgaWQ9IkNsZWFuUGF0aCI+PCEtLSAtLT48L2E+DQo8ZGl2IGNsYXNzPSJvZGRyb3ciPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1oZWFkZXIiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5DbGVhblBhdGg8L3NwYW4+IChsaW5lIDxzcGFuIGNsYXNzPSJsaW5lLW51bWJlciI+PGEgaHJlZj0iLi4vX19maWxlc291cmNlL2Zzb3VyY2VfQ01TTW9kdWxlX19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sI2ExMjY1Ij4xMjY1PC9hPjwvc3Bhbj4pDQoJPC9kaXY+IA0KCQ0KCTwhLS0gPT09PT09PT09PSBJbmZvIGZyb20gcGhwRG9jIGJsb2NrID09PT09PT09PSAtLT4NCjxwIGNsYXNzPSJzaG9ydC1kZXNjcmlwdGlvbiI+UmVwbGFjZXMgYWxsIG11bHRpcGxlIERJUkVDVE9SWV9TRVBBUkFUT1IsIGRvdHMgYW5kIChtdWx0aXBsZSkgc2xhc2hlcyB3aXRoIG9uZSBzaW5nbGUgRElSRUNUT1JZX1NFUEFSQVRPUiB0byBtYWtlIGEgY2xlYW4gc2VjdXJlIHBhdGggcGFyYW1ldGVyPC9wPg0KCTx1bCBjbGFzcz0idGFncyI+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+cmV0dXJuOjwvc3Bhbj4gLSB0aGUgY2xlYW4gcGF0aDwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjA8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+c3RyaW5nPC9zcGFuPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLW5hbWUiPg0KCQkJQ2xlYW5QYXRoDQoJCTwvc3Bhbj4NCgkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHBhdGg8L3NwYW4+LCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZnVsbF9wYXRoPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+dHJ1ZTwvc3Bhbj5dKQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcGF0aDwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIHBhdGggdG8gY2xlYW48L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZ1bGxfcGF0aDwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdHJ1ZSB0byBwcmVwZW5kIHVwbG9hZHMgcGF0aCBvbiByZXR1cm4sIGZhbHNlIHRvIHJldHVybiBvbmx5IHRoZSBjbGVhbmVkICRwYXRoPC9zcGFuPgkJCTwvbGk+DQoJCQkJPC91bD4NCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZENsZWFuVVJMIiBpZD0iQ2xlYW5VUkwiPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0iZXZlbnJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkNsZWFuVVJMPC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMTI5MiI+MTI5MjwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPlJlcGxhY2VzIGFsbCBtdWx0aXBsZSBzbGFzaGVzLCBkb3RzIGFuZCAobXVsdGlwbGUpIGJhY2tzbGFzaGVzIHdpdGggb25lIHNpbmdsZSBzbGFzaCB0byBtYWtlIGEgY2xlYW4gc2VjdXJlIHVybCBwYXJhbWV0ZXI8L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5yZXR1cm46PC9zcGFuPiAtIHRoZSBjbGVhbiB1cmw8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnNpbmNlOjwvc3Bhbj4gMS4wPC9saT4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5hY2Nlc3M6PC9zcGFuPiBwdWJsaWM8L2xpPg0KCQkJPC91bD4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2Qtc2lnbmF0dXJlIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPnN0cmluZzwvc3Bhbj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1uYW1lIj4NCgkJCUNsZWFuVVJMDQoJCTwvc3Bhbj4NCgkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHVybDwvc3Bhbj4sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRmdWxsX3VybDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPnRydWU8L3NwYW4+XSkNCgkJCTwvZGl2Pg0KCQ0KCQkJPHVsIGNsYXNzPSJwYXJhbWV0ZXJzIj4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHVybDwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIHVybCB0byBjbGVhbjwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZnVsbF91cmw8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRydWUgdG8gcHJlcGVuZCB1cGxvYWRzIHVybCBvbiByZXR1cm4sIGZhbHNlIHRvIHJldHVybiBvbmx5IHRoZSBjbGVhbmVkICR1cmw8L3NwYW4+CQkJPC9saT4NCgkJCQk8L3VsPg0KCQkNCgkJCQ0KCTwvZGl2Pg0KPGEgbmFtZT0ibWV0aG9kQ29udGFpbnNJbGxlZ2FsQ2hhcnMiIGlkPSJDb250YWluc0lsbGVnYWxDaGFycyI+PCEtLSAtLT48L2E+DQo8ZGl2IGNsYXNzPSJvZGRyb3ciPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1oZWFkZXIiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5Db250YWluc0lsbGVnYWxDaGFyczwvc3Bhbj4gKGxpbmUgPHNwYW4gY2xhc3M9ImxpbmUtbnVtYmVyIj48YSBocmVmPSIuLi9fX2ZpbGVzb3VyY2UvZnNvdXJjZV9DTVNNb2R1bGVfX0dCRmlsZVBpY2tlci5tb2R1bGUucGhwLmh0bWwjYTE3ODciPjE3ODc8L2E+PC9zcGFuPikNCgk8L2Rpdj4gDQoJDQoJPCEtLSA9PT09PT09PT09IEluZm8gZnJvbSBwaHBEb2MgYmxvY2sgPT09PT09PT09IC0tPg0KPHAgY2xhc3M9InNob3J0LWRlc2NyaXB0aW9uIj5DaGVja3MgaWYgYSBmaWxlbmFtZSBjb250YWlucyBpbGxlZ2FsIGNoYXJzPGJyIC8+ICBUYWtlbiBmcm9tIFRpbnlNQ0UgTW9kdWxlLjwvcD4NCgk8dWwgY2xhc3M9InRhZ3MiPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnNpbmNlOjwvc3Bhbj4gMS4wPC9saT4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5hY2Nlc3M6PC9zcGFuPiBwdWJsaWM8L2xpPg0KCQkJPC91bD4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2Qtc2lnbmF0dXJlIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmJvb2xlYW48L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlDb250YWluc0lsbGVnYWxDaGFycw0KCQk8L3NwYW4+DQoJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRmaWxlbmFtZTwvc3Bhbj4pDQoJCQk8L2Rpdj4NCgkNCgkJCTx1bCBjbGFzcz0icGFyYW1ldGVycyI+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRmaWxlbmFtZTwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIGZpbGVuYW1lIHRvIGNoZWNrPC9zcGFuPgkJCTwvbGk+DQoJCQkJPC91bD4NCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZENyZWF0ZUZpbGVEcm9wZG93biIgaWQ9IkNyZWF0ZUZpbGVEcm9wZG93biI+PCEtLSAtLT48L2E+DQo8ZGl2IGNsYXNzPSJldmVucm93Ij4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2QtaGVhZGVyIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+Q3JlYXRlRmlsZURyb3Bkb3duPC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhOTc4Ij45Nzg8L2E+PC9zcGFuPikNCgk8L2Rpdj4gDQoJDQoJPCEtLSA9PT09PT09PT09IEluZm8gZnJvbSBwaHBEb2MgYmxvY2sgPT09PT09PT09IC0tPg0KPHAgY2xhc3M9InNob3J0LWRlc2NyaXB0aW9uIj5DcmVhdGUgYSBkcm9wZG93biBmb3JtIGVsZW1lbnQgY29udGFpbmluZyBhIGxpc3Qgb2YgZmlsZXMgdGhhdCBtYXRjaCBjZXJ0YWluIGNvbmRpdGlvbnM8L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5yZXR1cm46PC9zcGFuPiAtIHRoZSBIVE1MIG91dHB1dCBvZiBhIHNlbGVjdCBlbGVtZW50IHdpdGggb3B0aW9uczwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjA8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+c3RyaW5nPC9zcGFuPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLW5hbWUiPg0KCQkJQ3JlYXRlRmlsZURyb3Bkb3duDQoJCTwvc3Bhbj4NCgkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGlkPC9zcGFuPiwgPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kbmFtZTwvc3Bhbj4sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRkaXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kc2VsZWN0ZWQ8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9wcmVmaXg8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaW5jbF9wcmVmaXg8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9zdWZpeDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5fHN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRpbmNsX3N1Zml4PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXl8c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZpbGVfZXh0PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JG1lZGlhX3R5cGU8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGFsbG93X25vbmU8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij50cnVlPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRhZGRfdHh0PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSkNCgkJCTwvZGl2Pg0KCQ0KCQkJPHVsIGNsYXNzPSJwYXJhbWV0ZXJzIj4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGlkPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgaWQgb2YgdGhlIG1vZHVsZWluc3RhbmNlIHRoYXQgY3JlYXRlcyB0aGUgZmlsZXBpY2tlciBpbnB1dDwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kbmFtZTwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIG5hbWUgb2YgdGhlIGlucHV0IGZpZWxkPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRkaXI8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBkaXJlY3RvcnkgdG8gbGlzdCB0aGUgZmlsZXMgb2YgKG1heSBiZSByZWxhdGl2ZSB0byB1cGxvYWRzIGRpciBvciBhYnNvbHV0ZSBwYXRoKTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kc2VsZWN0ZWQ8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBwcmVzZWxlY3RlZCB2YWx1ZTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9wcmVmaXg8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIGZpbGVwcmVmaXhlcyB0byBleGNsdWRlIChhcnJheSgnZm9vJywnYmFyJywuLi4pIG9yIGNzdik8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXl8c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGluY2xfcHJlZml4PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSBmaWxlcHJlZml4ZXMgdG8gaW5jbHVkZSAoYXJyYXkoJ2ZvbycsJ2JhcicsLi4uKSBvciBjc3YpPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5fHN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRleGNsX3N1Zml4PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSBmaWxlc3VmaXhlcyB0byBleGNsdWRlIChhcnJheSgnZm9vJywnYmFyJywuLi4pIG9yIGNzdik8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXl8c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGluY2xfc3VmaXg8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIGZpbGVzdWZpeGVzIHRvIGluY2x1ZGUgKGFycmF5KCdmb28nLCdiYXInLC4uLikgb3IgY3N2KTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZmlsZV9leHQ8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIGZpbGVzdWZpeGVzIHRvIGluY2x1ZGUgKGFycmF5KCdmb28nLCdiYXInLC4uLikgb3IgY3N2KTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kbWVkaWFfdHlwZTwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gZmlsZSBvciBpbWFnZTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGFsbG93X25vbmU8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHNldCB0byBmYWxzZSB0byBoaWRlIHRoZSBvcHRpb24gJ25vbmUnPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRhZGRfdHh0PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSBhbnkgYWRkaXRpb25hbCB0ZXh0IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgaHRtbCBpbnB1dCB3aGVuIHRhZyBpcyByZW5kZXJlZDwvc3Bhbj4JCQk8L2xpPg0KCQkJCTwvdWw+DQoJCQ0KCQkJDQoJPC9kaXY+DQo8YSBuYW1lPSJtZXRob2RDcmVhdGVGaWxlUGlja2VySW5wdXQiIGlkPSJDcmVhdGVGaWxlUGlja2VySW5wdXQiPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0ib2Rkcm93Ij4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2QtaGVhZGVyIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+Q3JlYXRlRmlsZVBpY2tlcklucHV0PC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhNDAwIj40MDA8L2E+PC9zcGFuPikNCgk8L2Rpdj4gDQoJDQoJPCEtLSA9PT09PT09PT09IEluZm8gZnJvbSBwaHBEb2MgYmxvY2sgPT09PT09PT09IC0tPg0KPHAgY2xhc3M9InNob3J0LWRlc2NyaXB0aW9uIj5DcmVhdGVzIHRoZSBmaWxlcGlja2VyIGlucHV0LjwvcD4NCgk8dWwgY2xhc3M9InRhZ3MiPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnJldHVybjo8L3NwYW4+IC0gdGhlIEhUTUwgb3V0cHV0IG9mIHRoZSBmaWxlcGlja2VyPC9saT4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5zaW5jZTo8L3NwYW4+IDEuMDwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+YWNjZXNzOjwvc3Bhbj4gcHVibGljPC9saT4NCgkJCTwvdWw+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLXNpZ25hdHVyZSI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5zdHJpbmc8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlDcmVhdGVGaWxlUGlja2VySW5wdXQNCgkJPC9zcGFuPg0KCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5vYmplY3Q8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4mJG1vZHVsZTwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGlkPC9zcGFuPiwgPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kbmFtZTwvc3Bhbj4sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiR2YWx1ZTwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5PC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHBhcmFtczwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPmFycmF5KCk8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+aW50ZWdlcjwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRyZXR1cm5pZDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0pDQoJCQk8L2Rpdj4NCgkNCgkJCTx1bCBjbGFzcz0icGFyYW1ldGVycyI+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPm9iamVjdDwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiYkbW9kdWxlPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgbW9kdWxlIGluc3RhbmNlIHRoYXQgY2FsbHMgdGhlIGZpbGVwaWNrZXIgKHRoaXMgaXMgb25seSBuZWVkZWQgaWYgeW91IHdhbnQgdG8gcHJvY2VzcyBvd24gdGVtcGxhdGVzOyBwYXNzIHRoZSBmaWxlcGlja2VyIGluc3RhbmNlIGl0c2VsZiBvciBsZWF2ZSBpdCBlbXB0eSBpZiB5b3UgZG9uJ3QgbmVlZCB0aGlzKTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaWQ8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBpZCBvZiB0aGUgbW9kdWxlaW5zdGFuY2UgdGhhdCBjcmVhdGVzIHRoZSBmaWxlcGlja2VyIGlucHV0PC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRuYW1lPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgbmFtZSBvZiB0aGUgaW5wdXQgZmllbGQ8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHZhbHVlPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgcHJlc2VsZWN0ZWQgdmFsdWU8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXk8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcGFyYW1zPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgaW5wdXQgcGFyYW1zIChwYXJhbV9uYW1lID0mZ3Q7IHBhcmFtX3ZhbHVlKTo8YnIgLz48dWw+PGxpPihzdHJpbmcpICAnZmV1X2FjY2VzcycgICAgICAgICAgICAgICA9Jmd0OyBhIGNzdiBvZiBncm91cCBpZHMgb2YgdGhlIGZyb250ZW5kIHVzZXJzIG1vZHVsZSw8L2xpPjxsaT4oYm9vbGVhbikgJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcycgPSZndDsgc2V0IHRvIHRydWUgaWYgdXNlciBtYXkgb25seSBhY2Nlc3MgYSBkaXIgb2YgaGlzIHVzZXJuYW1lIChub3RpY2U6IHRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluOyBpbiBmcm9udGVuZCB0aGlzIHdpbGwgYWx3YXlzIGJlIHRydWUpLDwvbGk+PGxpPihzdHJpbmcpICAnaGVhZGVyX3RlbXBsYXRlJyAgICAgICAgICA9Jmd0OyBzcGVjaWZ5IHdpY2ggdGVtcGxhdGUgc2hvdWxkIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBodG1sIG91dHB1dCB0aGF0IHdpbGwgYmUgcGxhY2VkIGluIHRoZSAmYW1wO2x0O2hlYWQmYW1wO2d0OyBzZWN0aW9uIChkZWZhdWx0IGlzIGhlYWRlci50cGwgb2YgdGhlIHNlbGVjdGVkIHRoZW1lIG9mIEdCRmlsZVBpY2tlcnMgcHJlZmVyZW5jZXMpLDwvbGk+PGxpPihzdHJpbmcpICAnaW5wdXRfdGVtcGxhdGUnICAgICAgICAgICA9Jmd0OyBzcGVjaWZ5IHdpY2ggdGVtcGxhdGUgc2hvdWxkIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBpbnB1dCBlbGVtZW50cyAoZGVmYXVsdCBpcyBpbnB1dC50cGwgb2YgdGhlIHNlbGVjdGVkIHRoZW1lIG9mIEdCRmlsZVBpY2tlcnMgcHJlZmVyZW5jZXMpLDwvbGk+PGxpPihzdHJpbmcpICAndXBsb2FkX3RlbXBsYXRlJyAgICAgICAgICA9Jmd0OyBzcGVjaWZ5IHdpY2ggdGVtcGxhdGUgc2hvdWxkIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSB1cGxvYWQgZm9ybSBvZiBtb2RlIGRyb3Bkb3duIChkZWZhdWx0IGlzIHVwbG9hZC50cGwgb2YgdGhlIHNlbGVjdGVkIHRoZW1lIG9mIEdCRmlsZVBpY2tlcnMgcHJlZmVyZW5jZXMpLDwvbGk+PGxpPihzdHJpbmcpICAnZmlsZWJyb3dzZXJfdGVtcGxhdGUnICAgICA9Jmd0OyBzcGVjaWZ5IHdpY2ggdGVtcGxhdGUgc2hvdWxkIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBmaWxlYnJvd3NlciBvdXRwdXQgKGRlZmF1bHQgaXMgZmlsZWJyb3dzZXIudHBsIG9mIHRoZSBzZWxlY3RlZCB0aGVtZSBvZiBHQkZpbGVQaWNrZXJzIHByZWZlcmVuY2VzKSw8L2xpPjxsaT4oc3RyaW5nKSAgJ3Byb21wdCcgICAgICAgICAgICAgICAgICAgPSZndDsgdGhlIHByb21wdCBvZiB0aGUgaW5wdXQgZmllbGQsPC9saT48bGk+KHN0cmluZykgICdtZWRpYV90eXBlJyAgICAgICAgICAgICAgID0mZ3Q7IHRoZSBtZWRpYSB0eXBlIChhdCB0aGUgbW9tZW50IG9ubHkgaW1hZ2UgLyBmaWxlIGFyZSBzdXBwb3J0ZWQpLDwvbGk+PGxpPihtaXhlZCkgICAnZmlsZV9leHRlbnNpb25zJyAgICAgICAgICA9Jmd0OyBhbiBhcnJheSBvciBhIGNzdiBvZiBhbGxvd2VkIGZpbGUgZXh0ZW5zaW9ucyw8L2xpPjxsaT4obWl4ZWQpICAgJ2V4Y2x1ZGVfcHJlZml4JyAgICAgICAgICAgPSZndDsgYW4gYXJyYXkgb3IgYSBjc3Ygb2YgZmlsZSBwcmVmaXhlcyB0aGF0IHdpbGwgYmUgZXhjbHVkZWQsPC9saT48bGk+KG1peGVkKSAgICdleGNsdWRlX3N1Zml4JyAgICAgICAgICAgID0mZ3Q7IGFuIGFycmF5IG9yIGEgY3N2IG9mIGZpbGUgc3VmZml4ZXMgdGhhdCB3aWxsIGJlIGV4Y2x1ZGVkLDwvbGk+PGxpPihtaXhlZCkgICAnaW5jbHVkZV9wcmVmaXgnICAgICAgICAgICA9Jmd0OyBhbiBhcnJheSBvciBhIGNzdiBvZiBmaWxlIHByZWZpeGVzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCw8L2xpPjxsaT4obWl4ZWQpICAgJ2luY2x1ZGVfc3VmaXgnICAgICAgICAgICAgPSZndDsgYW4gYXJyYXkgb3IgYSBjc3Ygb2YgZmlsZSBzdWZmaXhlcyB0aGF0IHdpbGwgYmUgaW5jbHVkZWQsPC9saT48bGk+KGJvb2xlYW4pICdzaG93X3N1YmRpcnMnICAgICAgICAgICAgID0mZ3Q7IHNldCB0byB0cnVlIGlmIHVzZXIgbWF5IGJyb3dzZSBzdWJkaXJzIChub3RpY2U6IHRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluKTwvbGk+PGxpPihzdHJpbmcpICAnbW9kZScgICAgICAgICAgICAgICAgICAgICA9Jmd0OyBkcm9wZG93bi9icm93c2VyLDwvbGk+PGxpPihib29sZWFuKSAnYWxsb3dfbm9uZScgICAgICAgICAgICAgICA9Jmd0OyBzZXQgdG8gZmFsc2UgaWYgdGhlIG9wdGlvbiAmcXVvdDtub25lJnF1b3Q7IHNob3VsZCBub3QgYmUgc2hvd24gKG5vdGljZTogdGhpcyBoYXMgbm8gZWZmZWN0IGlmIHlvdSBhcmUgYWRtaW4pLDwvbGk+PGxpPihib29sZWFuKSAnbG9ja19pbnB1dCcgICAgICAgICAgICAgICA9Jmd0OyBzZXQgdG8gZmFsc2UgaWYgdXNlciBtYXkgZW50ZXIgdGhlIHBhdGggaW4gdGhlIGlucHV0ZmllbGQgKCdtb2RlJz0mZ3Q7J2Jyb3dzZXInLCAnbWVkaWFfdHlwZScgPSZndDsgJ2ZpbGUnKSAobm90aWNlOiB0aGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbiksPC9saT48bGk+KGJvb2xlYW4pICd1cGxvYWQnICAgICAgICAgICAgICAgICAgID0mZ3Q7IHNldCB0byB0cnVlIGlmIHVzZXIgbWF5IHVwbG9hZCBmaWxlcyAobm90aWNlOiB0aGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbiBvciBoYXZlIHBlcm1pc3Npb24gdG8gbW9kaWZ5IGZpbGVzKSw8L2xpPjxsaT4oYm9vbGVhbikgJ2RlbGV0ZScgICAgICAgICAgICAgICAgICAgPSZndDsgc2V0IHRvIHRydWUgaWYgdXNlciBtYXkgZGVsZXRlIGZpbGVzL2RpcnMgKG5vdGljZTogdGhpcyBoYXMgbm8gZWZmZWN0IGlmIHlvdSBhcmUgYWRtaW4gb3IgaGF2ZSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBmaWxlcyksPC9saT48bGk+KGJvb2xlYW4pICdjcmVhdGVfZGlycycgICAgICAgICAgICAgID0mZ3Q7IHNldCB0byB0cnVlIGlmIHVzZXIgbWF5IGNyZWF0ZSBkaXJzIChub3RpY2U6IHRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluIG9yIGhhdmUgcGVybWlzc2lvbiB0byBtb2RpZnkgZmlsZXMpLDwvbGk+PGxpPihzdHJpbmcpICAnYWRkX3R4dCcgICAgICAgICAgICAgICAgICA9Jmd0OyBhbnkgYWRkaXRpb25hbCB0ZXh0IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgaHRtbCBpbnB1dCB3aGVuIHRhZyBpcyByZW5kZXJlZCw8L2xpPjxsaT4oaW50ZWdlcikgJ3NpemUnICAgICAgICAgICAgICAgICAgICAgPSZndDsgdGhlIHNpemUgb2YgdGhlIHRleHRpbnB1dCAoJ21vZGUnID0mZ3Q7ICdicm93c2VyJywgJ21lZGlhX3R5cGUnID0mZ3Q7ICdmaWxlJyBvbmx5KSw8L2xpPjxsaT4oaW50ZWdlcikgJ21heGxlbmd0aCcgICAgICAgICAgICAgICAgPSZndDsgdGhlIG1heCBsZW5ndGggb2YgdGhlIHRleHRpbnB1dCAoJ21vZGUnID0mZ3Q7ICdicm93c2VyJywgJ21lZGlhX3R5cGUnID0mZ3Q7ICdmaWxlJyBvbmx5KSw8L2xpPjxsaT4oaW50ZWdlcikgJ3NjYWxpbmdfd2lkdGgnICAgICAgICAgICAgPSZndDsgdGhlIGRlZmF1bHQgd2lkdGggb2YgaW1hZ2VzIHdoZW4gYWxsb3dfc2NhbGluZyBpcyB0cnVlLDwvbGk+PGxpPihpbnRlZ2VyKSAnc2NhbGluZ19oZWlnaHQnICAgICAgICAgICA9Jmd0OyB0aGUgZGVmYXVsdCBoZWlnaHQgb2YgaW1hZ2VzIHdoZW4gYWxsb3dfc2NhbGluZyBpcyB0cnVlLDwvbGk+PGxpPihib29sZWFuKSAnc2hvd190aHVtYmZpbGVzJyAgICAgICAgICA9Jmd0OyBzZXQgdG8gdHJ1ZSBpZiB0aHVtYnMgc2hvdWxkIGFsc28gYmUgc2hvd24gYXMgcmVndWxhciBmaWxlcyw8L2xpPjxsaT4oYm9vbGVhbikgJ2FsbG93X3NjYWxpbmcnICAgICAgICAgICAgPSZndDsgc2V0IHRvIGZhbHNlIGlmIHVzZXIgbWF5IG5vdCBzY2FsZSB0aGUgaW1hZ2VzIG9uIHVwbG9hZCw8L2xpPjxsaT4oYm9vbGVhbikgJ2NyZWF0ZV90aHVtYnMnICAgICAgICAgICAgPSZndDsgc2V0IHRvIGZhbHNlIGlmIHRoZSBtb2R1bGUgbWF5IG5vdCBjcmVhdGUgdGh1bWJzIGZvciB0aGUgaW5wdXQsPC9saT48bGk+KGJvb2xlYW4pICdhbGxvd191cHNjYWxpbmcnICAgICAgICAgID0mZ3Q7IHNldCB0byB0cnVlIGlmIHVzZXIgbWF5IGVubGFyZ2UgdGhlIGltYWdlczwvbGk+PGxpPihib29sZWFuKSAnZm9yY2Vfc2NhbGluZycgICAgICAgICAgICA9Jmd0OyBzZXQgdG8gdHJ1ZSB0byBmb3JjZSByZXNpemluZyBvZiBpbWFnZSB0byBhIGdpdmVuIHNpemUgaWYgdXNlciBtYXkgbm90IHJlc2l6ZSBpbWFnZXM8L2xpPjxsaT4oYm9vbGVhbikgJ2tlZXBfYXNwZWN0cmF0aW8nICAgICAgICAgPSZndDsgc2V0IHRvIGZhbHNlIHRvIGNoYW5nZSBhc3BlY3QgcmF0aW8gdG8gdGhhdCBvbmUgb2YgdGhlIHNjYWxpbmcgc2l6ZSBvbiByZXNpemluZyBpbWFnZXM8L2xpPjwvdWw+PC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmludGVnZXI8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcmV0dXJuaWQ8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBwYWdlIGlkIHRvIHJldHVybiB0byBhbmQgdG8gcHJpbnQgb3V0IHRoZSByZXN1bHQgYWZ0ZXIgbW9kdWxlIGhhcyBmaW5pc2hlZCBpdHMgdGFzazs8YnIgLz51c3VhbGx5IHRoaXMgaGFzIG5vdGhpbmcgdG8gc2F5IGJ1dCBpcyByZXF1aXJlZCBmb3IgZnJvbnRlbmQgdXNhZ2UgKG11c3QgYmUgYW4gZXhpc3RpbmcgY29udGVudCBpZCk8L3NwYW4+CQkJPC9saT4NCgkJCQk8L3VsPg0KCQkNCgkJCQ0KCTwvZGl2Pg0KPGEgbmFtZT0ibWV0aG9kQ3JlYXRlVGh1bWJuYWlsIiBpZD0iQ3JlYXRlVGh1bWJuYWlsIj48IS0tIC0tPjwvYT4NCjxkaXYgY2xhc3M9ImV2ZW5yb3ciPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1oZWFkZXIiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5DcmVhdGVUaHVtYm5haWw8L3NwYW4+IChsaW5lIDxzcGFuIGNsYXNzPSJsaW5lLW51bWJlciI+PGEgaHJlZj0iLi4vX19maWxlc291cmNlL2Zzb3VyY2VfQ01TTW9kdWxlX19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sI2ExMzYzIj4xMzYzPC9hPjwvc3Bhbj4pDQoJPC9kaXY+IA0KCQ0KCTwhLS0gPT09PT09PT09PSBJbmZvIGZyb20gcGhwRG9jIGJsb2NrID09PT09PT09PSAtLT4NCjxwIGNsYXNzPSJzaG9ydC1kZXNjcmlwdGlvbiI+Q3JlYXRlcyB0aGUgdGh1bWJuYWlsIG9mIGEgZ2l2ZW4gaW1hZ2UgZmlsZS48L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5yZXR1cm46PC9zcGFuPiAtIGFic29sdXRlIHBhdGggb2YgdGhlIHRodW1ibmFpbDwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjIuOTwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+YWNjZXNzOjwvc3Bhbj4gcHVibGljPC9saT4NCgkJCTwvdWw+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLXNpZ25hdHVyZSI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5zdHJpbmc8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlDcmVhdGVUaHVtYm5haWwNCgkJPC9zcGFuPg0KCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcGF0aDwvc3Bhbj4pDQoJCQk8L2Rpdj4NCgkNCgkJCTx1bCBjbGFzcz0icGFyYW1ldGVycyI+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRwYXRoPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgcGF0aCBvZiB0aGUgZmlsZSB0byBjcmVhdGUgYSB0aHVtYm5haWwgZnJvbSAoY2FuIGJlIHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpciBvciBhYnNvbHV0ZSk8L3NwYW4+CQkJPC9saT4NCgkJCQk8L3VsPg0KCQkNCgkJCQ0KCTwvZGl2Pg0KPGEgbmFtZT0ibWV0aG9kR2V0QWN0aW9uSWNvbiIgaWQ9IkdldEFjdGlvbkljb24iPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0ib2Rkcm93Ij4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2QtaGVhZGVyIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0QWN0aW9uSWNvbjwvc3Bhbj4gKGxpbmUgPHNwYW4gY2xhc3M9ImxpbmUtbnVtYmVyIj48YSBocmVmPSIuLi9fX2ZpbGVzb3VyY2UvZnNvdXJjZV9DTVNNb2R1bGVfX0dCRmlsZVBpY2tlci5tb2R1bGUucGhwLmh0bWwjYTE0MjgiPjE0Mjg8L2E+PC9zcGFuPikNCgk8L2Rpdj4gDQoJDQoJPCEtLSA9PT09PT09PT09IEluZm8gZnJvbSBwaHBEb2MgYmxvY2sgPT09PT09PT09IC0tPg0KPHAgY2xhc3M9InNob3J0LWRlc2NyaXB0aW9uIj5HZXRzIHRoZSBpY29uIGZvciB0aGUgZmlsZSBvcGVyYXRpb24uIDxiciAvPiAgSWYgRmlsZU1hbmFnZXIgaXMgaW5zdGFsbGVkIGl0IHVzZXMgRmlsZU1hbmFnZXIgaWNvbnMuIDxiciAvPiAgT3RoZXJ3aXNlIGl0IHVzZXMgb3duIGljb25zPGJyIC8+PC9wPg0KCTx1bCBjbGFzcz0idGFncyI+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+cmV0dXJuOjwvc3Bhbj4gLSB0aGUgSFRNTCBvdXB1dCBvZiBhbiBpbWFnZTwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjA8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+c3RyaW5nPC9zcGFuPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLW5hbWUiPg0KCQkJR2V0QWN0aW9uSWNvbg0KCQk8L3NwYW4+DQoJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRhY3Rpb248L3NwYW4+KQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kYWN0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgZmlsZSBvcGVyYXRpb24gKGUuZy4gJ2RlbGV0ZScpPC9zcGFuPgkJCTwvbGk+DQoJCQkJPC91bD4NCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZEdldEZpbGVJY29uIiBpZD0iR2V0RmlsZUljb24iPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0iZXZlbnJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkdldEZpbGVJY29uPC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMTM5OCI+MTM5ODwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPkdldHMgdGhlIGljb24gZm9yIGEgZmlsZS48YnIgLz4gIElmIEZpbGVNYW5hZ2VyIGlzIGluc3RhbGxlZCBpdCB1c2VzIEZpbGVNYW5hZ2VyIGljb25zLjxiciAvPiAgT3RoZXJ3aXNlIGl0IHVzZXMgb3duIGljb25zLjwvcD4NCgk8dWwgY2xhc3M9InRhZ3MiPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnJldHVybjo8L3NwYW4+IC0gdGhlIEhUTUwgb3VwdXQgb2YgYW4gaW1hZ2U8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnNpbmNlOjwvc3Bhbj4gMS4wPC9saT4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5hY2Nlc3M6PC9zcGFuPiBwdWJsaWM8L2xpPg0KCQkJPC91bD4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2Qtc2lnbmF0dXJlIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPnN0cmluZzwvc3Bhbj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1uYW1lIj4NCgkJCUdldEZpbGVJY29uDQoJCTwvc3Bhbj4NCgkJCQkJKFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRleHQ8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGlzX2Rpcjwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPmZhbHNlPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2w8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaXNfaW1hZ2U8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij5mYWxzZTwvc3Bhbj5dKQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXh0PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgZmlsZSBleHRlbnNpb248L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+Ym9vbDwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRpc19kaXI8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+Ym9vbDwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRpc19pbWFnZTwvc3Bhbj4JCQk8L2xpPg0KCQkJCTwvdWw+DQoJCQ0KCQkJDQoJPC9kaXY+DQo8YSBuYW1lPSJtZXRob2RHZXRGaWxlcyIgaWQ9IkdldEZpbGVzIj48IS0tIC0tPjwvYT4NCjxkaXYgY2xhc3M9Im9kZHJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkdldEZpbGVzPC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMTA2MyI+MTA2MzwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPlJldHVybiBhbiBhcnJheSBjb250YWluaW5nIGEgbGlzdCBvZiBmaWxlcyBpbiBhIGRpcmVjdG9yeS48YnIgLz4gIFBlcmZvcm1zIGEgbm9uIHJlY3Vyc2l2ZSBzZWFyY2guPC9wPg0KCTx1bCBjbGFzcz0idGFncyI+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjA8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+YXJyYXk8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQkmYW1wO0dldEZpbGVzDQoJCTwvc3Bhbj4NCgkJCQkJKFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRkaXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9wcmVmaXg8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaW5jbF9wcmVmaXg8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4nJzwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9zdWZpeDwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPicnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5fHN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRpbmNsX3N1Zml4PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXl8c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZpbGVfZXh0PC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+Jyc8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JG1lZGlhX3R5cGU8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij4naW1hZ2UnPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2xlYW48L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9kaXJzPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+ZmFsc2U8L3NwYW4+XSwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+Ym9vbGVhbjwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRzaG93X3RodW1iZmlsZXM8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij5mYWxzZTwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGNyZWF0ZV90aHVtYnM8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij50cnVlPC9zcGFuPl0pDQoJCQk8L2Rpdj4NCgkNCgkJCTx1bCBjbGFzcz0icGFyYW1ldGVycyI+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRkaXI8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBkaXJlY3RvcnkgdG8gbGlzdCB0aGUgZmlsZXMgb2YgKG1heSBiZSByZWxhdGl2ZSB0byB1cGxvYWRzIGRpciBvciBhYnNvbHV0ZSBwYXRoKTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZXhjbF9wcmVmaXg8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIGZpbGVwcmVmaXhlcyB0byBleGNsdWRlIChhcnJheSgnZm9vJywnYmFyJywuLi4pIG9yIGNzdik8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXl8c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGluY2xfcHJlZml4PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSBmaWxlcHJlZml4ZXMgdG8gaW5jbHVkZSAoYXJyYXkoJ2ZvbycsJ2JhcicsLi4uKSBvciBjc3YpPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmFycmF5fHN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRleGNsX3N1Zml4PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSBmaWxlc3VmaXhlcyB0byBleGNsdWRlIChhcnJheSgnZm9vJywnYmFyJywuLi4pIG9yIGNzdik8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+YXJyYXl8c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGluY2xfc3VmaXg8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIGZpbGVzdWZpeGVzIHRvIGluY2x1ZGUgKGFycmF5KCdmb28nLCdiYXInLC4uLikgb3IgY3N2KTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5hcnJheXxzdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZmlsZV9leHQ8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIGZpbGVzdWZpeGVzIHRvIGluY2x1ZGUgKGFycmF5KCdmb28nLCdiYXInLC4uLikgb3IgY3N2KTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kbWVkaWFfdHlwZTwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gZmlsZSBvciBpbWFnZTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGV4Y2xfZGlyczwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gc2V0IHRvIHRydWUgdG8gZXhjbHVkZSBkaXJlY3Rvcmllczwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHNob3dfdGh1bWJmaWxlczwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGNyZWF0ZV90aHVtYnM8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiA9IHRydWU8L3NwYW4+CQkJPC9saT4NCgkJCQk8L3VsPg0KCQkNCgkJCQ0KCTwvZGl2Pg0KPGEgbmFtZT0ibWV0aG9kR2V0RmlsZVR5cGUiIGlkPSJHZXRGaWxlVHlwZSI+PCEtLSAtLT48L2E+DQo8ZGl2IGNsYXNzPSJldmVucm93Ij4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2QtaGVhZGVyIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0RmlsZVR5cGU8L3NwYW4+IChsaW5lIDxzcGFuIGNsYXNzPSJsaW5lLW51bWJlciI+PGEgaHJlZj0iLi4vX19maWxlc291cmNlL2Zzb3VyY2VfQ01TTW9kdWxlX19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sI2E5MjkiPjkyOTwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPkdldHMgdGhlIGZpbGUgdHlwZSBvZiBhIGZpbGUuPC9wPg0KCTx1bCBjbGFzcz0idGFncyI+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+cmV0dXJuOjwvc3Bhbj4gLSB0aGUgbWltZS10eXBlIG9yIGZpbGUgZXh0ZW5zaW9uPC9saT4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5zaW5jZTo8L3NwYW4+IDEuMDwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+YWNjZXNzOjwvc3Bhbj4gcHVibGljPC9saT4NCgkJCTwvdWw+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLXNpZ25hdHVyZSI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5zdHJpbmc8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlHZXRGaWxlVHlwZQ0KCQk8L3NwYW4+DQoJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRmaWxlPC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHVzZV9taW1lPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+ZmFsc2U8L3NwYW4+XSkNCgkJCTwvZGl2Pg0KCQ0KCQkJPHVsIGNsYXNzPSJwYXJhbWV0ZXJzIj4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZpbGU8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBwYXRoIHRvIGEgZmlsZTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kdXNlX21pbWU8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHNldCB0byB0cnVlIHRvIGRldGVjdCBmaWxlIHR5cGUgYnkgbWltZSB0eXBlPC9zcGFuPgkJCTwvbGk+DQoJCQkJPC91bD4NCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZEdldElucHV0RmlsZXMiIGlkPSJHZXRJbnB1dEZpbGVzIj48IS0tIC0tPjwvYT4NCjxkaXYgY2xhc3M9Im9kZHJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkdldElucHV0RmlsZXM8L3NwYW4+IChsaW5lIDxzcGFuIGNsYXNzPSJsaW5lLW51bWJlciI+PGEgaHJlZj0iLi4vX19maWxlc291cmNlL2Zzb3VyY2VfQ01TTW9kdWxlX19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sI2ExMDMyIj4xMDMyPC9hPjwvc3Bhbj4pDQoJPC9kaXY+IA0KCQ0KCTwhLS0gPT09PT09PT09PSBJbmZvIGZyb20gcGhwRG9jIGJsb2NrID09PT09PT09PSAtLT4NCjxwIGNsYXNzPSJzaG9ydC1kZXNjcmlwdGlvbiI+UmV0dXJuIGFuIGFycmF5IGNvbnRhaW5pbmcgYSBsaXN0IG9mIGZpbGVzIGluIGEgZGlyZWN0b3J5IHJlbGF0ZWQgdG8gYSBjZXJ0YWluIGlucHV0LjxiciAvPiAgUGVyZm9ybXMgYSBub24gcmVjdXJzaXZlIHNlYXJjaC48L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5zaW5jZTo8L3NwYW4+IDEuMTwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+YWNjZXNzOjwvc3Bhbj4gcHVibGljPC9saT4NCgkJCTwvdWw+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLXNpZ25hdHVyZSI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5hcnJheTwvc3Bhbj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1uYW1lIj4NCgkJCSZhbXA7R2V0SW5wdXRGaWxlcw0KCQk8L3NwYW4+DQoJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRpZDwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JG5hbWU8L3NwYW4+LCA8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRkaXI8L3NwYW4+KQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kaWQ8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBpZCBvZiB0aGUgbW9kdWxlaW5zdGFuY2UgdGhhdCBjcmVhdGVzIHRoZSBmaWxlcGlja2VyIGlucHV0PC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRuYW1lPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgbmFtZSBvZiB0aGUgaW5wdXQgZmllbGQ8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGRpcjwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIGRpcmVjdG9yeSB0byBsaXN0IHRoZSBmaWxlcyBvZiAobWF5IGJlIHJlbGF0aXZlIHRvIHVwbG9hZHMgZGlyIG9yIGFic29sdXRlIHBhdGgpPC9zcGFuPgkJCTwvbGk+DQoJCQkJPC91bD4NCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZEdldFRoZW1lc0xpc3QiIGlkPSJHZXRUaGVtZXNMaXN0Ij48IS0tIC0tPjwvYT4NCjxkaXYgY2xhc3M9ImV2ZW5yb3ciPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1oZWFkZXIiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5HZXRUaGVtZXNMaXN0PC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMjAxMSI+MjAxMTwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPlJldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSB0aGVtZXM8L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5yZXR1cm46PC9zcGFuPiAtIHRoZSB0aGVtZXM8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnNpbmNlOjwvc3Bhbj4gMS4yLjk8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+YXJyYXk8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlHZXRUaGVtZXNMaXN0DQoJCTwvc3Bhbj4NCgkJCQkoKQ0KCQkJPC9kaXY+DQoJDQoJCQ0KCQkJDQoJPC9kaXY+DQo8YSBuYW1lPSJtZXRob2RHZXRUaHVtYm5haWwiIGlkPSJHZXRUaHVtYm5haWwiPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0ib2Rkcm93Ij4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2QtaGVhZGVyIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0VGh1bWJuYWlsPC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMTMyMCI+MTMyMDwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPlJldHVybnMgdGhlIHRodW1ibmFpbCBvZiBhIGdpdmVuIGltYWdlIGZpbGUuPC9wPg0KCTx1bCBjbGFzcz0idGFncyI+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+cmV0dXJuOjwvc3Bhbj4gLSBIVE1MIGltZyBlbGVtZW50IG9yIHVybDwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjA8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+c3RyaW5nPC9zcGFuPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLW5hbWUiPg0KCQkJR2V0VGh1bWJuYWlsDQoJCTwvc3Bhbj4NCgkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHBhdGg8L3NwYW4+LCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kY3JlYXRlX3RodW1iPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+dHJ1ZTwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kdXJsb25seTwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPmZhbHNlPC9zcGFuPl0pDQoJCQk8L2Rpdj4NCgkNCgkJCTx1bCBjbGFzcz0icGFyYW1ldGVycyI+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRwYXRoPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgcGF0aCBvZiB0aGUgZmlsZSB0byBjcmVhdGUgYSB0aHVtYm5haWwgb2YgKGNhbiBiZSByZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXIgb3IgYWJzb2x1dGUpPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRjcmVhdGVfdGh1bWI8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHNldCB0byBmYWxzZSBpZiB0aHVtYm5haWwgbWF5IG5vdCBiZSBjcmVhdGVkIGlmIG5vdCBleGlzdHM8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHVybG9ubHk8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHNldCB0byB0cnVlIHRvIGdldCBvbmx5IHRoZSB1cmwgdG8gdGhlIHRodW1ibmFpbDwvc3Bhbj4JCQk8L2xpPg0KCQkJCTwvdWw+DQoJCQ0KCQkJDQoJPC9kaXY+DQo8YSBuYW1lPSJtZXRob2RHZXRUaHVtYm5haWxTaXplIiBpZD0iR2V0VGh1bWJuYWlsU2l6ZSI+PCEtLSAtLT48L2E+DQo8ZGl2IGNsYXNzPSJldmVucm93Ij4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2QtaGVhZGVyIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0VGh1bWJuYWlsU2l6ZTwvc3Bhbj4gKGxpbmUgPHNwYW4gY2xhc3M9ImxpbmUtbnVtYmVyIj48YSBocmVmPSIuLi9fX2ZpbGVzb3VyY2UvZnNvdXJjZV9DTVNNb2R1bGVfX0dCRmlsZVBpY2tlci5tb2R1bGUucGhwLmh0bWwjYTE2OTQiPjE2OTQ8L2E+PC9zcGFuPikNCgk8L2Rpdj4gDQoJDQoJPCEtLSA9PT09PT09PT09IEluZm8gZnJvbSBwaHBEb2MgYmxvY2sgPT09PT09PT09IC0tPg0KPHAgY2xhc3M9InNob3J0LWRlc2NyaXB0aW9uIj5yZXR1cm5zIHRoZSBjYWxjdWxhdGVkIHNpemUgb2YgdGhlIHRodW1ibmFpbDxiciAvPjwvcD4NCgk8dWwgY2xhc3M9InRhZ3MiPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnJldHVybjo8L3NwYW4+IC0gYXJyYXkod2lkdGgsaGVpZ2h0KTwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjI8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+YXJyYXk8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlHZXRUaHVtYm5haWxTaXplDQoJCTwvc3Bhbj4NCgkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHBhdGg8L3NwYW4+KQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcGF0aDwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIHNvdXJjZSBwYXRoIG9mIHRoZSBpbWFnZTwvc3Bhbj4JCQk8L2xpPg0KCQkJCTwvdWw+DQoJCQ0KCQkJDQoJPC9kaXY+DQo8YSBuYW1lPSJtZXRob2RIYW5kbGVGaWxlUmVzaXppbmciIGlkPSJIYW5kbGVGaWxlUmVzaXppbmciPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0ib2Rkcm93Ij4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2QtaGVhZGVyIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+SGFuZGxlRmlsZVJlc2l6aW5nPC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMTUwNCI+MTUwNDwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPnJlc2l6ZXMgaW1hZ2VzPGJyIC8+ICBBZGFwdGVkIGZyb20gVGlueU1DRSBmaWxlcGlja2VyLjwvcD4NCgk8dWwgY2xhc3M9InRhZ3MiPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnRvZG86PC9zcGFuPiBlbmFibGUgZm9ybWF0IGNoYW5nZT88L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnNpbmNlOjwvc3Bhbj4gMS4wPC9saT4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5hY2Nlc3M6PC9zcGFuPiBwdWJsaWM8L2xpPg0KCQkJPC91bD4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2Qtc2lnbmF0dXJlIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPnZvaWQ8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlIYW5kbGVGaWxlUmVzaXppbmcNCgkJPC9zcGFuPg0KCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kc291cmNlPC9zcGFuPiwgPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kb3V0cHV0PC9zcGFuPiwgPHNwYW4gY2xhc3M9InZhci10eXBlIj5pbnRlZ2VyPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JG5ld193aWR0aDwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+aW50ZWdlcjwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRuZXdfaGVpZ2h0PC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+Ym9vbGVhbjwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRrZWVwX2FzcGVjdHJhdGlvPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+dHJ1ZTwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGFsbG93X3Vwc2NhbGluZzwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPmZhbHNlPC9zcGFuPl0sIFs8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmludGVnZXI8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcXVhbGl0eTwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0idmFyLWRlZmF1bHQiPjEwMDwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGNsZWFuX3BhdGg8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij50cnVlPC9zcGFuPl0pDQoJCQk8L2Rpdj4NCgkNCgkJCTx1bCBjbGFzcz0icGFyYW1ldGVycyI+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRzb3VyY2U8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBzb3VyY2UgcGF0aCBvZiB0aGUgaW1hZ2U8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+c3RyaW5nPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JG91dHB1dDwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIGRlc3RpbmF0aW9uIHBhdGggb2YgdGhlIHJlc2l6ZWQgaW1hZ2U8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+aW50ZWdlcjwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRuZXdfd2lkdGg8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRoZSBuZXcgd2R0aCB0byBzY2FsZSB0aGUgaW1hZ2UgdG8gKGlmICRrZWVwX2FzcGVjdHJhdGlvIGlzIHNldCB0byB0cnVlIHRoaXMgd2lsbCBiZSBqdXN0IHNvbWUga2luZCBvZiBtYXggdmFsdWUpPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmludGVnZXI8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kbmV3X2hlaWdodDwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIG5ldyBoZWlnaHQgdG8gc2NhbGUgdGhlIGltYWdlIHRvIChpZiAka2VlcF9hc3BlY3RyYXRpbyBpcyBzZXQgdG8gdHJ1ZSB0aGlzIHdpbGwgYmUganVzdCBzb21lIGtpbmQgb2YgbWF4IHZhbHVlKTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGtlZXBfYXNwZWN0cmF0aW88L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHNldCB0byBmYWxzZSBpZiBpbWFnZSBhc3BlY3QgcmF0aW8gbWF5IGJlIGNoYW5nZWQ8L3NwYW4+CQkJPC9saT4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+Ym9vbGVhbjwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRhbGxvd191cHNjYWxpbmc8L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHNldCB0byB0cnVlIGlmIHVzZXIgbWF5IGVubGFyZ2UgdGhlIGltYWdlPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmludGVnZXI8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kcXVhbGl0eTwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIHF1YWxpdHkgb2YgdGhlIG5ldyBpbWFnZSAoanBnIG9ubHkpPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2xlYW48L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kY2xlYW5fcGF0aDwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gc2V0IHRvIGZhbHNlIGlmIHNvdXJjZSBpcyB0aGUgdXBsb2FkX3RtcF9kaXI8L3NwYW4+CQkJPC9saT4NCgkJCQk8L3VsPg0KCQkNCgkJCQ0KCTwvZGl2Pg0KPGEgbmFtZT0ibWV0aG9kSXNEaXJFbXB0eSIgaWQ9IklzRGlyRW1wdHkiPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0iZXZlbnJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPklzRGlyRW1wdHk8L3NwYW4+IChsaW5lIDxzcGFuIGNsYXNzPSJsaW5lLW51bWJlciI+PGEgaHJlZj0iLi4vX19maWxlc291cmNlL2Zzb3VyY2VfQ01TTW9kdWxlX19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sI2ExNDUwIj4xNDUwPC9hPjwvc3Bhbj4pDQoJPC9kaXY+IA0KCQ0KCTwhLS0gPT09PT09PT09PSBJbmZvIGZyb20gcGhwRG9jIGJsb2NrID09PT09PT09PSAtLT4NCjxwIGNsYXNzPSJzaG9ydC1kZXNjcmlwdGlvbiI+Q2hlY2tzIGlmIGEgZGlyZWN0b3J5IGlzIGVtcHR5PGJyIC8+ICBUYWtlbiBmcm9tIFRpbnlNQ0UgTW9kdWxlIChleHRyYWN0ZWQgZnJvbSBmaWxlcGlja2VyKS48L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5zaW5jZTo8L3NwYW4+IDEuMDwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+YWNjZXNzOjwvc3Bhbj4gcHVibGljPC9saT4NCgkJCTwvdWw+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLXNpZ25hdHVyZSI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5ib29sZWFuPC9zcGFuPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLW5hbWUiPg0KCQkJSXNEaXJFbXB0eQ0KCQk8L3NwYW4+DQoJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPnN0cmluZzwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRkaXI8L3NwYW4+KQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5zdHJpbmc8L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kZGlyPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgcGF0aCB0byBhIGRpcmVjdG9yeTwvc3Bhbj4JCQk8L2xpPg0KCQkJCTwvdWw+DQoJCQ0KCQkJDQoJPC9kaXY+DQo8YSBuYW1lPSJtZXRob2RJc0ZhbHNlIiBpZD0iSXNGYWxzZSI+PCEtLSAtLT48L2E+DQo8ZGl2IGNsYXNzPSJvZGRyb3ciPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1oZWFkZXIiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5Jc0ZhbHNlPC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMTkxMCI+MTkxMDwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPkNoZWNrcyBpZiBhIHZhbHVlIGlzIHJlYWxseSBtZWFudCB0byBiZSAmcXVvdDtmYWxzZSZxdW90Oy4gPGJyIC8+ICBDYW4gYmUgdXNlZnVsbCB3aGVuIGNoZWNraW5nIHNtYXJ0eSBwYXJhbXMgZm9yIHRoZSB2YWx1ZSBmYWxzZTwvcD4NCgk8dWwgY2xhc3M9InRhZ3MiPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnNpbmNlOjwvc3Bhbj4gMS4wPC9saT4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5hY2Nlc3M6PC9zcGFuPiBwdWJsaWM8L2xpPg0KCQkJPC91bD4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2Qtc2lnbmF0dXJlIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmJvb2w8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlJc0ZhbHNlDQoJCTwvc3Bhbj4NCgkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+bWl4ZWQ8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kdmFsdWU8L3NwYW4+KQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5taXhlZDwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiR2YWx1ZTwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIHZhbHVlIHRvIGNoZWNrPC9zcGFuPgkJCTwvbGk+DQoJCQkJPC91bD4NCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZElzVHJ1ZSIgaWQ9IklzVHJ1ZSI+PCEtLSAtLT48L2E+DQo8ZGl2IGNsYXNzPSJldmVucm93Ij4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2QtaGVhZGVyIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+SXNUcnVlPC9zcGFuPiAobGluZSA8c3BhbiBjbGFzcz0ibGluZS1udW1iZXIiPjxhIGhyZWY9Ii4uL19fZmlsZXNvdXJjZS9mc291cmNlX0NNU01vZHVsZV9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCNhMTg5NCI+MTg5NDwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQo8cCBjbGFzcz0ic2hvcnQtZGVzY3JpcHRpb24iPkNoZWNrcyBpZiBhIHZhbHVlIGlzIHJlYWxseSBtZWFudCB0byBiZSAmcXVvdDt0cnVlJnF1b3Q7LiA8YnIgLz4gIENhbiBiZSB1c2VmdWxsIHdoZW4gY2hlY2tpbmcgc21hcnR5IHBhcmFtcyBmb3IgdGhlIHZhbHVlIHRydWU8L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5zaW5jZTo8L3NwYW4+IDEuMDwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+YWNjZXNzOjwvc3Bhbj4gcHVibGljPC9saT4NCgkJCTwvdWw+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLXNpZ25hdHVyZSI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtcmVzdWx0Ij5ib29sPC9zcGFuPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLW5hbWUiPg0KCQkJSXNUcnVlDQoJCTwvc3Bhbj4NCgkJCQkJKDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+bWl4ZWQ8L3NwYW4+Jm5ic3A7PHNwYW4gY2xhc3M9InZhci1uYW1lIj4kdmFsdWU8L3NwYW4+KQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5taXhlZDwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiR2YWx1ZTwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIHZhbHVlIHRvIGNoZWNrPC9zcGFuPgkJCTwvbGk+DQoJCQkJPC91bD4NCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZElzVmFyRW1wdHkiIGlkPSJJc1ZhckVtcHR5Ij48IS0tIC0tPjwvYT4NCjxkaXYgY2xhc3M9Im9kZHJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPklzVmFyRW1wdHk8L3NwYW4+IChsaW5lIDxzcGFuIGNsYXNzPSJsaW5lLW51bWJlciI+PGEgaHJlZj0iLi4vX19maWxlc291cmNlL2Zzb3VyY2VfQ01TTW9kdWxlX19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sI2ExODEyIj4xODEyPC9hPjwvc3Bhbj4pDQoJPC9kaXY+IA0KCQ0KCTwhLS0gPT09PT09PT09PSBJbmZvIGZyb20gcGhwRG9jIGJsb2NrID09PT09PT09PSAtLT4NCjxwIGNsYXNzPSJzaG9ydC1kZXNjcmlwdGlvbiI+Q2hlY2tzIGlmIGEgdmFyIGlzIGVtcHR5LiA8YnIgLz4gIElmICR2YXIgaXMgYW4gYXJyYXkgaXQgcmVjdXJzaXZsZXkgY2hlY2tzIGFsbCBlbGVtZW50cy48L3A+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5yZXR1cm46PC9zcGFuPiAtIHRydWUgaWYgZW1wdHksIGZhbHNlIGlmIG5vdDwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjA8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+Ym9vbGVhbjwvc3Bhbj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1uYW1lIj4NCgkJCUlzVmFyRW1wdHkNCgkJPC9zcGFuPg0KCQkJCQkoPHNwYW4gY2xhc3M9InZhci10eXBlIj5taXhlZDwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiYkdmFyPC9zcGFuPiwgWzxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+Ym9vbGVhbjwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiR0cmltPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJ2YXItZGVmYXVsdCI+dHJ1ZTwvc3Bhbj5dLCBbPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHVuc2V0X2VtcHR5X2luZGV4ZXM8L3NwYW4+ID0gPHNwYW4gY2xhc3M9InZhci1kZWZhdWx0Ij5mYWxzZTwvc3Bhbj5dKQ0KCQkJPC9kaXY+DQoJDQoJCQk8dWwgY2xhc3M9InBhcmFtZXRlcnMiPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5taXhlZDwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiYkdmFyPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSB0aGUgdmFyIHRvIGNoZWNrIGZvciBlbXB0eSB2YWx1ZShzKTwvc3Bhbj4JCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJPHNwYW4gY2xhc3M9InZhci10eXBlIj5ib29sZWFuPC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JHRyaW08L3NwYW4+PHNwYW4gY2xhc3M9InZhci1kZXNjcmlwdGlvbiI+OiAtIHRydWUgdG8gdHJpbSBvZmYgc3BhY2VzPC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPmJvb2xlYW48L3NwYW4+DQoJCQkJPHNwYW4gY2xhc3M9InZhci1uYW1lIj4kdW5zZXRfZW1wdHlfaW5kZXhlczwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdHJ1ZSB0byBkZWxldGUgZW1wdHkgZWxlbWVudHMgZnJvbSBhcnJheTwvc3Bhbj4JCQk8L2xpPg0KCQkJCTwvdWw+DQoJCQ0KCQkJDQoJPC9kaXY+DQo8YSBuYW1lPSJtZXRob2RMb2FkZWQiIGlkPSJMb2FkZWQiPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0iZXZlbnJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkxvYWRlZDwvc3Bhbj4gKGxpbmUgPHNwYW4gY2xhc3M9ImxpbmUtbnVtYmVyIj48YSBocmVmPSIuLi9fX2ZpbGVzb3VyY2UvZnNvdXJjZV9DTVNNb2R1bGVfX0dCRmlsZVBpY2tlci5tb2R1bGUucGhwLmh0bWwjYTE5MjUiPjE5MjU8L2E+PC9zcGFuPikNCgk8L2Rpdj4gDQoJDQoJPCEtLSA9PT09PT09PT09IEluZm8gZnJvbSBwaHBEb2MgYmxvY2sgPT09PT09PT09IC0tPg0KPHAgY2xhc3M9InNob3J0LWRlc2NyaXB0aW9uIj5JbmRpY2F0ZXMgaWYgR0JGaWxlUGlja2VyIG91dHB1dCBpcyBhbHJlYWR5IGRvbmU8YnIgLz4gIGNhbiBiZSB1c2VmdWwgdG8gYXZvaWQgb3VwdXQgb2YgamF2YXNjcmlwdCBhbmQgY3NzIHR3aWNlPC9wPg0KCTx1bCBjbGFzcz0idGFncyI+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+cmV0dXJuOjwvc3Bhbj4gLSB0cnVlIGlmIG91dHB1dCBkb25lOyBmYWxzZSBpZiBub3Q8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPnNpbmNlOjwvc3Bhbj4gMS4xPC9saT4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5hY2Nlc3M6PC9zcGFuPiBwdWJsaWM8L2xpPg0KCQkJPC91bD4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2Qtc2lnbmF0dXJlIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPmJvb2w8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlMb2FkZWQNCgkJPC9zcGFuPg0KCQkJCSgpDQoJCQk8L2Rpdj4NCgkNCgkJDQoJCQkNCgk8L2Rpdj4NCjxhIG5hbWU9Im1ldGhvZFNldFBhcmFtZXRlcnMiIGlkPSJTZXRQYXJhbWV0ZXJzIj48IS0tIC0tPjwvYT4NCjxkaXYgY2xhc3M9Im9kZHJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPlNldFBhcmFtZXRlcnM8L3NwYW4+IChsaW5lIDxzcGFuIGNsYXNzPSJsaW5lLW51bWJlciI+PGEgaHJlZj0iLi4vX19maWxlc291cmNlL2Zzb3VyY2VfQ01TTW9kdWxlX19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sI2EyOTIiPjI5MjwvYT48L3NwYW4+KQ0KCTwvZGl2PiANCgkNCgk8IS0tID09PT09PT09PT0gSW5mbyBmcm9tIHBocERvYyBibG9jayA9PT09PT09PT0gLS0+DQoJPHVsIGNsYXNzPSJ0YWdzIj4NCgkJCQk8bGk+PHNwYW4gY2xhc3M9ImZpZWxkIj5saW5rOjwvc3Bhbj4gPGEgaHJlZj0iaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI1NldFBhcmFtZXRlcnMiPmh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcvYXBpZG9jL0NNUy9DTVNNb2R1bGUuaHRtbCNTZXRQYXJhbWV0ZXJzPC9hPjwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+dG9kbzo8L3NwYW4+IGNyZWF0ZSBsaXN0IG9mIGFsbG93ZWQgcGFyYW1ldGVycyE8L2xpPg0KCQkJPC91bD4NCgkNCgk8ZGl2IGNsYXNzPSJtZXRob2Qtc2lnbmF0dXJlIj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1yZXN1bHQiPnZvaWQ8L3NwYW4+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtbmFtZSI+DQoJCQlTZXRQYXJhbWV0ZXJzDQoJCTwvc3Bhbj4NCgkJCQkoKQ0KCQkJPC9kaXY+DQoJDQoJCQ0KCQkJDQoJPC9kaXY+DQo8YSBuYW1lPSJtZXRob2RTb3J0RmlsZXMiIGlkPSJTb3J0RmlsZXMiPjwhLS0gLS0+PC9hPg0KPGRpdiBjbGFzcz0iZXZlbnJvdyI+DQoJDQoJPGRpdiBjbGFzcz0ibWV0aG9kLWhlYWRlciI+DQoJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPlNvcnRGaWxlczwvc3Bhbj4gKGxpbmUgPHNwYW4gY2xhc3M9ImxpbmUtbnVtYmVyIj48YSBocmVmPSIuLi9fX2ZpbGVzb3VyY2UvZnNvdXJjZV9DTVNNb2R1bGVfX0dCRmlsZVBpY2tlci5tb2R1bGUucGhwLmh0bWwjYTE0NzkiPjE0Nzk8L2E+PC9zcGFuPikNCgk8L2Rpdj4gDQoJDQoJPCEtLSA9PT09PT09PT09IEluZm8gZnJvbSBwaHBEb2MgYmxvY2sgPT09PT09PT09IC0tPg0KPHAgY2xhc3M9InNob3J0LWRlc2NyaXB0aW9uIj5Tb3J0cyB0aGUgZmlsZXMgYnkgZmlsZW5hbWU7IHNob3dzIGRpcmVjdG9yaWVzIGZpcnN0PGJyIC8+ICB0aGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBwaHAgdXNvcnQoKSBmdW5jdGlvbjogdXNvcnQoJGFycmF5LGFycmF5KCR0aGlzLCdTb3J0RmlsZXMnKTxiciAvPiAgVGFrZW4gZnJvbSBUaW55TUNFIGZpbGVwaWNrZXIuPC9wPg0KCTx1bCBjbGFzcz0idGFncyI+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+cmV0dXJuOjwvc3Bhbj4gLTEgb3IgMTwvbGk+DQoJCQkJPGxpPjxzcGFuIGNsYXNzPSJmaWVsZCI+c2luY2U6PC9zcGFuPiAxLjA8L2xpPg0KCQkJCTxsaT48c3BhbiBjbGFzcz0iZmllbGQiPmFjY2Vzczo8L3NwYW4+IHB1YmxpYzwvbGk+DQoJCQk8L3VsPg0KCQ0KCTxkaXYgY2xhc3M9Im1ldGhvZC1zaWduYXR1cmUiPg0KCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXJlc3VsdCI+aW50ZWdlcjwvc3Bhbj4NCgkJPHNwYW4gY2xhc3M9Im1ldGhvZC1uYW1lIj4NCgkJCVNvcnRGaWxlcw0KCQk8L3NwYW4+DQoJCQkJCSg8c3BhbiBjbGFzcz0idmFyLXR5cGUiPm9iamVjdDwvc3Bhbj4mbmJzcDs8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRmaWxlMTwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+b2JqZWN0PC9zcGFuPiZuYnNwOzxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZpbGUyPC9zcGFuPikNCgkJCTwvZGl2Pg0KCQ0KCQkJPHVsIGNsYXNzPSJwYXJhbWV0ZXJzIj4NCgkJCQkJPGxpPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItdHlwZSI+b2JqZWN0PC9zcGFuPg0KCQkJCTxzcGFuIGNsYXNzPSJ2YXItbmFtZSI+JGZpbGUxPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YXItZGVzY3JpcHRpb24iPjogLSBvbmUgZmlsZSB0byBjb21wYXJlIDxiciAvPmEgcGhwIHN0ZENsYXNzIHdpdGggcHJvcGVydGllcyAoYm9vbGVhbikgJGlzX2RpciAtIGEgZmxhZyB0aGF0IHNwZWNpZnlzIGlmIGl0IGlzIGEgZGlyIG9yIGEgZmlsZTs8YnIgLz4oc3RyaW5nKSAkYmFzZW5hbWUgLSB0aGUgYmFzZW5hbWUgb2YgdGhlIGZpbGU7PC9zcGFuPgkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLXR5cGUiPm9iamVjdDwvc3Bhbj4NCgkJCQk8c3BhbiBjbGFzcz0idmFyLW5hbWUiPiRmaWxlMjwvc3Bhbj48c3BhbiBjbGFzcz0idmFyLWRlc2NyaXB0aW9uIj46IC0gdGhlIG90aGVyIGZpbGUgdG8gY29tcGFyZSA8YnIgLz5hIHBocCBzdGRDbGFzcyB3aXRoIHByb3BlcnRpZXMgKGJvb2xlYW4pICRpc19kaXIgLSBhIGZsYWcgdGhhdCBzcGVjaWZ5cyBpZiBpdCBpcyBhIGRpciBvciBhIGZpbGU7PGJyIC8+KHN0cmluZykgJGJhc2VuYW1lIC0gdGhlIGJhc2VuYW1lIG9mIHRoZSBmaWxlOzwvc3Bhbj4JCQk8L2xpPg0KCQkJCTwvdWw+DQoJCQ0KCQkJDQoJPC9kaXY+DQoJCQkJCQkNCgkJPC9kaXY+DQoJPC9kaXY+DQoNCg0KCTxwIGNsYXNzPSJub3RlcyIgaWQ9ImNyZWRpdCI+DQoJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIG9uIFdlZCwgMjMgRmViIDIwMTEgMjE6Mzg6MDkgKzAxMDAgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5waHBkb2Mub3JnIiB0YXJnZXQ9Il9ibGFuayI+cGhwRG9jdW1lbnRvciAxLjQuMGEyPC9hPg0KCTwvcD4NCgk8L2Rpdj48L2JvZHk+DQo8L2h0bWw+DQo=]]></data>
	</file>
	<file>
	  <filename>/doc/api/CMSModule/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/doc/api/elementindex.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQoJCTxoZWFkPg0KCQkJPCEtLSB0ZW1wbGF0ZSBkZXNpZ25lZCBieSBNYXJjbyBWb24gQmFsbG1vb3MgLS0+DQoJCQk8dGl0bGU+PC90aXRsZT4NCgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ibWVkaWEvc3R5bGVzaGVldC5jc3MiIC8+DQoJCQk8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xJy8+DQoJCTwvaGVhZD4NCgkJPGJvZHk+DQoJCQkJCQkNPGEgbmFtZT0idG9wIj48L2E+DQo8aDI+RnVsbCBpbmRleDwvaDI+DQo8aDM+UGFja2FnZSBpbmRleGVzPC9oMz4NCjx1bD4NCgk8bGk+PGEgaHJlZj0iZWxlbWVudGluZGV4X0NNU01vZHVsZS5odG1sIj5DTVNNb2R1bGU8L2E+PC9saT4NCjwvdWw+DQo8YnIgLz4NCjxkaXYgY2xhc3M9ImluZGV4LWxldHRlci1tZW51Ij4NCgk8YSBjbGFzcz0iaW5kZXgtbGV0dGVyIiBocmVmPSJlbGVtZW50aW5kZXguaHRtbCNjIj5jPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleC5odG1sI2ciPmc8L2E+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4Lmh0bWwjaCI+aDwvYT4NCgk8YSBjbGFzcz0iaW5kZXgtbGV0dGVyIiBocmVmPSJlbGVtZW50aW5kZXguaHRtbCNpIj5pPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleC5odG1sI2wiPmw8L2E+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4Lmh0bWwjcyI+czwvYT4NCjwvZGl2Pg0KDQoJPGEgbmFtZT0iYyI+PC9hPg0KCTxkaXYgY2xhc3M9ImluZGV4LWxldHRlci1zZWN0aW9uIj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQiIGNsYXNzPSJpbmRleC1sZXR0ZXItdGl0bGUiPmM8L2Rpdj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0Ij48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9kaXY+DQoJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoIj48L2Rpdj4NCgk8L2Rpdj4NCgk8ZGw+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkNsZWFuQXJyYXk8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZENsZWFuQXJyYXkiPkdCRmlsZVBpY2tlcjo6Q2xlYW5BcnJheSgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPlJlbW92ZXMgZW1wdHkgZWxlbWVudHMgZnJvbSBhbiBhcnJheS4gPGJyIC8+ICAoY2FuIGJlIHVzZWZ1bCB3aGVuIHVzaW5nIGZ1bmN0aW9uIGV4cGxvZGUgdG8gY3JlYXRlIHRoZSBhcnJheSBmcm9tIGEgY3N2KTwvZGl2Pg0KCQkJCQk8L2RkPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5DbGVhblBhdGg8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZENsZWFuUGF0aCI+R0JGaWxlUGlja2VyOjpDbGVhblBhdGgoKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5SZXBsYWNlcyBhbGwgbXVsdGlwbGUgRElSRUNUT1JZX1NFUEFSQVRPUiwgZG90cyBhbmQgKG11bHRpcGxlKSBzbGFzaGVzIHdpdGggb25lIHNpbmdsZSBESVJFQ1RPUllfU0VQQVJBVE9SIHRvIG1ha2UgYSBjbGVhbiBzZWN1cmUgcGF0aCBwYXJhbWV0ZXI8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+Q2xlYW5VUkw8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZENsZWFuVVJMIj5HQkZpbGVQaWNrZXI6OkNsZWFuVVJMKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+UmVwbGFjZXMgYWxsIG11bHRpcGxlIHNsYXNoZXMsIGRvdHMgYW5kIChtdWx0aXBsZSkgYmFja3NsYXNoZXMgd2l0aCBvbmUgc2luZ2xlIHNsYXNoIHRvIG1ha2UgYSBjbGVhbiBzZWN1cmUgdXJsIHBhcmFtZXRlcjwvZGl2Pg0KCQkJCQk8L2RkPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5Db250YWluc0lsbGVnYWxDaGFyczwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kQ29udGFpbnNJbGxlZ2FsQ2hhcnMiPkdCRmlsZVBpY2tlcjo6Q29udGFpbnNJbGxlZ2FsQ2hhcnMoKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5DaGVja3MgaWYgYSBmaWxlbmFtZSBjb250YWlucyBpbGxlZ2FsIGNoYXJzPGJyIC8+ICBUYWtlbiBmcm9tIFRpbnlNQ0UgTW9kdWxlLjwvZGl2Pg0KCQkJCQk8L2RkPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5DcmVhdGVGaWxlRHJvcGRvd248L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZENyZWF0ZUZpbGVEcm9wZG93biI+R0JGaWxlUGlja2VyOjpDcmVhdGVGaWxlRHJvcGRvd24oKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5DcmVhdGUgYSBkcm9wZG93biBmb3JtIGVsZW1lbnQgY29udGFpbmluZyBhIGxpc3Qgb2YgZmlsZXMgdGhhdCBtYXRjaCBjZXJ0YWluIGNvbmRpdGlvbnM8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+Q3JlYXRlRmlsZVBpY2tlcklucHV0PC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RDcmVhdGVGaWxlUGlja2VySW5wdXQiPkdCRmlsZVBpY2tlcjo6Q3JlYXRlRmlsZVBpY2tlcklucHV0KCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+Q3JlYXRlcyB0aGUgZmlsZXBpY2tlciBpbnB1dC48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+Q3JlYXRlVGh1bWJuYWlsPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RDcmVhdGVUaHVtYm5haWwiPkdCRmlsZVBpY2tlcjo6Q3JlYXRlVGh1bWJuYWlsKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+Q3JlYXRlcyB0aGUgdGh1bWJuYWlsIG9mIGEgZ2l2ZW4gaW1hZ2UgZmlsZS48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJPC9kbD4NCgk8YSBuYW1lPSJnIj48L2E+DQoJPGRpdiBjbGFzcz0iaW5kZXgtbGV0dGVyLXNlY3Rpb24iPg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdCIgY2xhc3M9ImluZGV4LWxldHRlci10aXRsZSI+ZzwvZGl2Pg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L2Rpdj4NCgkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KCTwvZGl2Pg0KCTxkbD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJR0JGaWxlUGlja2VyDQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sIj5HQkZpbGVQaWNrZXI8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+TWFpbiBjbGFzcyBvZiB0aGUgR0JGaWxlUGlja2VyIE1vZHVsZTwvZGl2Pg0KCQkJCQk8L2RkPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0iaW5jbHVkZS10aXRsZSI+R0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL19HQkZpbGVQaWNrZXIubW9kdWxlLnBocC5odG1sIj5HQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0QWN0aW9uSWNvbjwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kR2V0QWN0aW9uSWNvbiI+R0JGaWxlUGlja2VyOjpHZXRBY3Rpb25JY29uKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+R2V0cyB0aGUgaWNvbiBmb3IgdGhlIGZpbGUgb3BlcmF0aW9uLiA8YnIgLz4gIElmIEZpbGVNYW5hZ2VyIGlzIGluc3RhbGxlZCBpdCB1c2VzIEZpbGVNYW5hZ2VyIGljb25zLiA8YnIgLz4gIE90aGVyd2lzZSBpdCB1c2VzIG93biBpY29uczxiciAvPjwvZGl2Pg0KCQkJCQk8L2RkPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5HZXRGaWxlSWNvbjwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kR2V0RmlsZUljb24iPkdCRmlsZVBpY2tlcjo6R2V0RmlsZUljb24oKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5HZXRzIHRoZSBpY29uIGZvciBhIGZpbGUuPGJyIC8+ICBJZiBGaWxlTWFuYWdlciBpcyBpbnN0YWxsZWQgaXQgdXNlcyBGaWxlTWFuYWdlciBpY29ucy48YnIgLz4gIE90aGVyd2lzZSBpdCB1c2VzIG93biBpY29ucy48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0RmlsZXM8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZEdldEZpbGVzIj5HQkZpbGVQaWNrZXI6OkdldEZpbGVzKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+UmV0dXJuIGFuIGFycmF5IGNvbnRhaW5pbmcgYSBsaXN0IG9mIGZpbGVzIGluIGEgZGlyZWN0b3J5LjxiciAvPiAgUGVyZm9ybXMgYSBub24gcmVjdXJzaXZlIHNlYXJjaC48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0RmlsZVR5cGU8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZEdldEZpbGVUeXBlIj5HQkZpbGVQaWNrZXI6OkdldEZpbGVUeXBlKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+R2V0cyB0aGUgZmlsZSB0eXBlIG9mIGEgZmlsZS48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0SW5wdXRGaWxlczwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kR2V0SW5wdXRGaWxlcyI+R0JGaWxlUGlja2VyOjpHZXRJbnB1dEZpbGVzKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+UmV0dXJuIGFuIGFycmF5IGNvbnRhaW5pbmcgYSBsaXN0IG9mIGZpbGVzIGluIGEgZGlyZWN0b3J5IHJlbGF0ZWQgdG8gYSBjZXJ0YWluIGlucHV0LjxiciAvPiAgUGVyZm9ybXMgYSBub24gcmVjdXJzaXZlIHNlYXJjaC48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0VGhlbWVzTGlzdDwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kR2V0VGhlbWVzTGlzdCI+R0JGaWxlUGlja2VyOjpHZXRUaGVtZXNMaXN0KCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+UmV0dXJucyBhIGxpc3Qgb2YgYXZhaWxhYmxlIHRoZW1lczwvZGl2Pg0KCQkJCQk8L2RkPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5HZXRUaHVtYm5haWw8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZEdldFRodW1ibmFpbCI+R0JGaWxlUGlja2VyOjpHZXRUaHVtYm5haWwoKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5SZXR1cm5zIHRoZSB0aHVtYm5haWwgb2YgYSBnaXZlbiBpbWFnZSBmaWxlLjwvZGl2Pg0KCQkJCQk8L2RkPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5HZXRUaHVtYm5haWxTaXplPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RHZXRUaHVtYm5haWxTaXplIj5HQkZpbGVQaWNrZXI6OkdldFRodW1ibmFpbFNpemUoKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5yZXR1cm5zIHRoZSBjYWxjdWxhdGVkIHNpemUgb2YgdGhlIHRodW1ibmFpbDxiciAvPjwvZGl2Pg0KCQkJCQk8L2RkPg0KCQk8L2RsPg0KCTxhIG5hbWU9ImgiPjwvYT4NCgk8ZGl2IGNsYXNzPSJpbmRleC1sZXR0ZXItc2VjdGlvbiI+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0IiBjbGFzcz0iaW5kZXgtbGV0dGVyLXRpdGxlIj5oPC9kaXY+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OiByaWdodCI+PGEgaHJlZj0iI3RvcCI+dG9wPC9hPjwvZGl2Pg0KCQk8ZGl2IHN0eWxlPSJjbGVhcjogYm90aCI+PC9kaXY+DQoJPC9kaXY+DQoJPGRsPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5IYW5kbGVGaWxlUmVzaXppbmc8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZEhhbmRsZUZpbGVSZXNpemluZyI+R0JGaWxlUGlja2VyOjpIYW5kbGVGaWxlUmVzaXppbmcoKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5yZXNpemVzIGltYWdlczxiciAvPiAgQWRhcHRlZCBmcm9tIFRpbnlNQ0UgZmlsZXBpY2tlci48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJPC9kbD4NCgk8YSBuYW1lPSJpIj48L2E+DQoJPGRpdiBjbGFzcz0iaW5kZXgtbGV0dGVyLXNlY3Rpb24iPg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdCIgY2xhc3M9ImluZGV4LWxldHRlci10aXRsZSI+aTwvZGl2Pg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L2Rpdj4NCgkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KCTwvZGl2Pg0KCTxkbD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+SXNEaXJFbXB0eTwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kSXNEaXJFbXB0eSI+R0JGaWxlUGlja2VyOjpJc0RpckVtcHR5KCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+Q2hlY2tzIGlmIGEgZGlyZWN0b3J5IGlzIGVtcHR5PGJyIC8+ICBUYWtlbiBmcm9tIFRpbnlNQ0UgTW9kdWxlIChleHRyYWN0ZWQgZnJvbSBmaWxlcGlja2VyKS48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+SXNGYWxzZTwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kSXNGYWxzZSI+R0JGaWxlUGlja2VyOjpJc0ZhbHNlKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+Q2hlY2tzIGlmIGEgdmFsdWUgaXMgcmVhbGx5IG1lYW50IHRvIGJlICZxdW90O2ZhbHNlJnF1b3Q7LiA8YnIgLz4gIENhbiBiZSB1c2VmdWxsIHdoZW4gY2hlY2tpbmcgc21hcnR5IHBhcmFtcyBmb3IgdGhlIHZhbHVlIGZhbHNlPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPklzVHJ1ZTwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kSXNUcnVlIj5HQkZpbGVQaWNrZXI6OklzVHJ1ZSgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkNoZWNrcyBpZiBhIHZhbHVlIGlzIHJlYWxseSBtZWFudCB0byBiZSAmcXVvdDt0cnVlJnF1b3Q7LiA8YnIgLz4gIENhbiBiZSB1c2VmdWxsIHdoZW4gY2hlY2tpbmcgc21hcnR5IHBhcmFtcyBmb3IgdGhlIHZhbHVlIHRydWU8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+SXNWYXJFbXB0eTwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kSXNWYXJFbXB0eSI+R0JGaWxlUGlja2VyOjpJc1ZhckVtcHR5KCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+Q2hlY2tzIGlmIGEgdmFyIGlzIGVtcHR5LiA8YnIgLz4gIElmICR2YXIgaXMgYW4gYXJyYXkgaXQgcmVjdXJzaXZsZXkgY2hlY2tzIGFsbCBlbGVtZW50cy48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJPC9kbD4NCgk8YSBuYW1lPSJsIj48L2E+DQoJPGRpdiBjbGFzcz0iaW5kZXgtbGV0dGVyLXNlY3Rpb24iPg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdCIgY2xhc3M9ImluZGV4LWxldHRlci10aXRsZSI+bDwvZGl2Pg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L2Rpdj4NCgkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KCTwvZGl2Pg0KCTxkbD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+TG9hZGVkPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RMb2FkZWQiPkdCRmlsZVBpY2tlcjo6TG9hZGVkKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+SW5kaWNhdGVzIGlmIEdCRmlsZVBpY2tlciBvdXRwdXQgaXMgYWxyZWFkeSBkb25lPGJyIC8+ICBjYW4gYmUgdXNlZnVsIHRvIGF2b2lkIG91cHV0IG9mIGphdmFzY3JpcHQgYW5kIGNzcyB0d2ljZTwvZGl2Pg0KCQkJCQk8L2RkPg0KCQk8L2RsPg0KCTxhIG5hbWU9InMiPjwvYT4NCgk8ZGl2IGNsYXNzPSJpbmRleC1sZXR0ZXItc2VjdGlvbiI+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0IiBjbGFzcz0iaW5kZXgtbGV0dGVyLXRpdGxlIj5zPC9kaXY+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OiByaWdodCI+PGEgaHJlZj0iI3RvcCI+dG9wPC9hPjwvZGl2Pg0KCQk8ZGl2IHN0eWxlPSJjbGVhcjogYm90aCI+PC9kaXY+DQoJPC9kaXY+DQoJPGRsPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5TZXRQYXJhbWV0ZXJzPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RTZXRQYXJhbWV0ZXJzIj5HQkZpbGVQaWNrZXI6OlNldFBhcmFtZXRlcnMoKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+U29ydEZpbGVzPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RTb3J0RmlsZXMiPkdCRmlsZVBpY2tlcjo6U29ydEZpbGVzKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+U29ydHMgdGhlIGZpbGVzIGJ5IGZpbGVuYW1lOyBzaG93cyBkaXJlY3RvcmllcyBmaXJzdDxiciAvPiAgdGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBiZSBjYWxsZWQgZnJvbSB0aGUgcGhwIHVzb3J0KCkgZnVuY3Rpb246IHVzb3J0KCRhcnJheSxhcnJheSgkdGhpcywnU29ydEZpbGVzJyk8YnIgLz4gIFRha2VuIGZyb20gVGlueU1DRSBmaWxlcGlja2VyLjwvZGl2Pg0KCQkJCQk8L2RkPg0KCQk8L2RsPg0KDQo8ZGl2IGNsYXNzPSJpbmRleC1sZXR0ZXItbWVudSI+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4Lmh0bWwjYyI+YzwvYT4NCgk8YSBjbGFzcz0iaW5kZXgtbGV0dGVyIiBocmVmPSJlbGVtZW50aW5kZXguaHRtbCNnIj5nPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleC5odG1sI2giPmg8L2E+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4Lmh0bWwjaSI+aTwvYT4NCgk8YSBjbGFzcz0iaW5kZXgtbGV0dGVyIiBocmVmPSJlbGVtZW50aW5kZXguaHRtbCNsIj5sPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleC5odG1sI3MiPnM8L2E+DQo8L2Rpdj4NCTwvYm9keT4NCjwvaHRtbD4N]]></data>
	</file>
	<file>
	  <filename>/doc/api/elementindex_CMSModule.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQoJCTxoZWFkPg0KCQkJPCEtLSB0ZW1wbGF0ZSBkZXNpZ25lZCBieSBNYXJjbyBWb24gQmFsbG1vb3MgLS0+DQoJCQk8dGl0bGU+PC90aXRsZT4NCgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ibWVkaWEvc3R5bGVzaGVldC5jc3MiIC8+DQoJCQk8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xJy8+DQoJCTwvaGVhZD4NCgkJPGJvZHk+DQoJCQkJCQkNPGEgbmFtZT0idG9wIj48L2E+DQo8aDI+W0NNU01vZHVsZV0gZWxlbWVudCBpbmRleDwvaDI+DQo8YSBocmVmPSJlbGVtZW50aW5kZXguaHRtbCI+QWxsIGVsZW1lbnRzPC9hPg0KPGJyIC8+DQo8ZGl2IGNsYXNzPSJpbmRleC1sZXR0ZXItbWVudSI+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4X0NNU01vZHVsZS5odG1sI2MiPmM8L2E+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4X0NNU01vZHVsZS5odG1sI2ciPmc8L2E+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4X0NNU01vZHVsZS5odG1sI2giPmg8L2E+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4X0NNU01vZHVsZS5odG1sI2kiPmk8L2E+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4X0NNU01vZHVsZS5odG1sI2wiPmw8L2E+DQoJPGEgY2xhc3M9ImluZGV4LWxldHRlciIgaHJlZj0iZWxlbWVudGluZGV4X0NNU01vZHVsZS5odG1sI3MiPnM8L2E+DQo8L2Rpdj4NCg0KCTxhIG5hbWU9ImMiPjwvYT4NCgk8ZGl2IGNsYXNzPSJpbmRleC1sZXR0ZXItc2VjdGlvbiI+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0IiBjbGFzcz0iaW5kZXgtbGV0dGVyLXRpdGxlIj5jPC9kaXY+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OiByaWdodCI+PGEgaHJlZj0iI3RvcCI+dG9wPC9hPjwvZGl2Pg0KCQk8ZGl2IHN0eWxlPSJjbGVhcjogYm90aCI+PC9kaXY+DQoJPC9kaXY+DQoJPGRsPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5DbGVhbkFycmF5PC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RDbGVhbkFycmF5Ij5HQkZpbGVQaWNrZXI6OkNsZWFuQXJyYXkoKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5SZW1vdmVzIGVtcHR5IGVsZW1lbnRzIGZyb20gYW4gYXJyYXkuIDxiciAvPiAgKGNhbiBiZSB1c2VmdWwgd2hlbiB1c2luZyBmdW5jdGlvbiBleHBsb2RlIHRvIGNyZWF0ZSB0aGUgYXJyYXkgZnJvbSBhIGNzdik8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+Q2xlYW5QYXRoPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RDbGVhblBhdGgiPkdCRmlsZVBpY2tlcjo6Q2xlYW5QYXRoKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+UmVwbGFjZXMgYWxsIG11bHRpcGxlIERJUkVDVE9SWV9TRVBBUkFUT1IsIGRvdHMgYW5kIChtdWx0aXBsZSkgc2xhc2hlcyB3aXRoIG9uZSBzaW5nbGUgRElSRUNUT1JZX1NFUEFSQVRPUiB0byBtYWtlIGEgY2xlYW4gc2VjdXJlIHBhdGggcGFyYW1ldGVyPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkNsZWFuVVJMPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RDbGVhblVSTCI+R0JGaWxlUGlja2VyOjpDbGVhblVSTCgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPlJlcGxhY2VzIGFsbCBtdWx0aXBsZSBzbGFzaGVzLCBkb3RzIGFuZCAobXVsdGlwbGUpIGJhY2tzbGFzaGVzIHdpdGggb25lIHNpbmdsZSBzbGFzaCB0byBtYWtlIGEgY2xlYW4gc2VjdXJlIHVybCBwYXJhbWV0ZXI8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+Q29udGFpbnNJbGxlZ2FsQ2hhcnM8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZENvbnRhaW5zSWxsZWdhbENoYXJzIj5HQkZpbGVQaWNrZXI6OkNvbnRhaW5zSWxsZWdhbENoYXJzKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+Q2hlY2tzIGlmIGEgZmlsZW5hbWUgY29udGFpbnMgaWxsZWdhbCBjaGFyczxiciAvPiAgVGFrZW4gZnJvbSBUaW55TUNFIE1vZHVsZS48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+Q3JlYXRlRmlsZURyb3Bkb3duPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RDcmVhdGVGaWxlRHJvcGRvd24iPkdCRmlsZVBpY2tlcjo6Q3JlYXRlRmlsZURyb3Bkb3duKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+Q3JlYXRlIGEgZHJvcGRvd24gZm9ybSBlbGVtZW50IGNvbnRhaW5pbmcgYSBsaXN0IG9mIGZpbGVzIHRoYXQgbWF0Y2ggY2VydGFpbiBjb25kaXRpb25zPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkNyZWF0ZUZpbGVQaWNrZXJJbnB1dDwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kQ3JlYXRlRmlsZVBpY2tlcklucHV0Ij5HQkZpbGVQaWNrZXI6OkNyZWF0ZUZpbGVQaWNrZXJJbnB1dCgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkNyZWF0ZXMgdGhlIGZpbGVwaWNrZXIgaW5wdXQuPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkNyZWF0ZVRodW1ibmFpbDwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kQ3JlYXRlVGh1bWJuYWlsIj5HQkZpbGVQaWNrZXI6OkNyZWF0ZVRodW1ibmFpbCgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkNyZWF0ZXMgdGhlIHRodW1ibmFpbCBvZiBhIGdpdmVuIGltYWdlIGZpbGUuPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCTwvZGw+DQoJPGEgbmFtZT0iZyI+PC9hPg0KCTxkaXYgY2xhc3M9ImluZGV4LWxldHRlci1zZWN0aW9uIj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQiIGNsYXNzPSJpbmRleC1sZXR0ZXItdGl0bGUiPmc8L2Rpdj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0Ij48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9kaXY+DQoJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoIj48L2Rpdj4NCgk8L2Rpdj4NCgk8ZGw+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCUdCRmlsZVBpY2tlcg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCI+R0JGaWxlUGlja2VyPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPk1haW4gY2xhc3Mgb2YgdGhlIEdCRmlsZVBpY2tlciBNb2R1bGU8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9ImluY2x1ZGUtdGl0bGUiPkdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9fR0JGaWxlUGlja2VyLm1vZHVsZS5waHAuaHRtbCI+R0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkdldEFjdGlvbkljb248L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZEdldEFjdGlvbkljb24iPkdCRmlsZVBpY2tlcjo6R2V0QWN0aW9uSWNvbigpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkdldHMgdGhlIGljb24gZm9yIHRoZSBmaWxlIG9wZXJhdGlvbi4gPGJyIC8+ICBJZiBGaWxlTWFuYWdlciBpcyBpbnN0YWxsZWQgaXQgdXNlcyBGaWxlTWFuYWdlciBpY29ucy4gPGJyIC8+ICBPdGhlcndpc2UgaXQgdXNlcyBvd24gaWNvbnM8YnIgLz48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0RmlsZUljb248L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZEdldEZpbGVJY29uIj5HQkZpbGVQaWNrZXI6OkdldEZpbGVJY29uKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+R2V0cyB0aGUgaWNvbiBmb3IgYSBmaWxlLjxiciAvPiAgSWYgRmlsZU1hbmFnZXIgaXMgaW5zdGFsbGVkIGl0IHVzZXMgRmlsZU1hbmFnZXIgaWNvbnMuPGJyIC8+ICBPdGhlcndpc2UgaXQgdXNlcyBvd24gaWNvbnMuPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkdldEZpbGVzPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RHZXRGaWxlcyI+R0JGaWxlUGlja2VyOjpHZXRGaWxlcygpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPlJldHVybiBhbiBhcnJheSBjb250YWluaW5nIGEgbGlzdCBvZiBmaWxlcyBpbiBhIGRpcmVjdG9yeS48YnIgLz4gIFBlcmZvcm1zIGEgbm9uIHJlY3Vyc2l2ZSBzZWFyY2guPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkdldEZpbGVUeXBlPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RHZXRGaWxlVHlwZSI+R0JGaWxlUGlja2VyOjpHZXRGaWxlVHlwZSgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkdldHMgdGhlIGZpbGUgdHlwZSBvZiBhIGZpbGUuPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkdldElucHV0RmlsZXM8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZEdldElucHV0RmlsZXMiPkdCRmlsZVBpY2tlcjo6R2V0SW5wdXRGaWxlcygpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPlJldHVybiBhbiBhcnJheSBjb250YWluaW5nIGEgbGlzdCBvZiBmaWxlcyBpbiBhIGRpcmVjdG9yeSByZWxhdGVkIHRvIGEgY2VydGFpbiBpbnB1dC48YnIgLz4gIFBlcmZvcm1zIGEgbm9uIHJlY3Vyc2l2ZSBzZWFyY2guPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkdldFRoZW1lc0xpc3Q8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZEdldFRoZW1lc0xpc3QiPkdCRmlsZVBpY2tlcjo6R2V0VGhlbWVzTGlzdCgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPlJldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSB0aGVtZXM8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0VGh1bWJuYWlsPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RHZXRUaHVtYm5haWwiPkdCRmlsZVBpY2tlcjo6R2V0VGh1bWJuYWlsKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+UmV0dXJucyB0aGUgdGh1bWJuYWlsIG9mIGEgZ2l2ZW4gaW1hZ2UgZmlsZS48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+R2V0VGh1bWJuYWlsU2l6ZTwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kR2V0VGh1bWJuYWlsU2l6ZSI+R0JGaWxlUGlja2VyOjpHZXRUaHVtYm5haWxTaXplKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+cmV0dXJucyB0aGUgY2FsY3VsYXRlZCBzaXplIG9mIHRoZSB0aHVtYm5haWw8YnIgLz48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJPC9kbD4NCgk8YSBuYW1lPSJoIj48L2E+DQoJPGRpdiBjbGFzcz0iaW5kZXgtbGV0dGVyLXNlY3Rpb24iPg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdCIgY2xhc3M9ImluZGV4LWxldHRlci10aXRsZSI+aDwvZGl2Pg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L2Rpdj4NCgkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KCTwvZGl2Pg0KCTxkbD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+SGFuZGxlRmlsZVJlc2l6aW5nPC9zcGFuPg0KCQkJCQk8L2R0Pg0KCQk8ZGQgY2xhc3M9ImluZGV4LWl0ZW0tYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRldGFpbHMiPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RIYW5kbGVGaWxlUmVzaXppbmciPkdCRmlsZVBpY2tlcjo6SGFuZGxlRmlsZVJlc2l6aW5nKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXNjcmlwdGlvbiI+cmVzaXplcyBpbWFnZXM8YnIgLz4gIEFkYXB0ZWQgZnJvbSBUaW55TUNFIGZpbGVwaWNrZXIuPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCTwvZGw+DQoJPGEgbmFtZT0iaSI+PC9hPg0KCTxkaXYgY2xhc3M9ImluZGV4LWxldHRlci1zZWN0aW9uIj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQiIGNsYXNzPSJpbmRleC1sZXR0ZXItdGl0bGUiPmk8L2Rpdj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0Ij48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9kaXY+DQoJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoIj48L2Rpdj4NCgk8L2Rpdj4NCgk8ZGw+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPklzRGlyRW1wdHk8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZElzRGlyRW1wdHkiPkdCRmlsZVBpY2tlcjo6SXNEaXJFbXB0eSgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkNoZWNrcyBpZiBhIGRpcmVjdG9yeSBpcyBlbXB0eTxiciAvPiAgVGFrZW4gZnJvbSBUaW55TUNFIE1vZHVsZSAoZXh0cmFjdGVkIGZyb20gZmlsZXBpY2tlcikuPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPklzRmFsc2U8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZElzRmFsc2UiPkdCRmlsZVBpY2tlcjo6SXNGYWxzZSgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkNoZWNrcyBpZiBhIHZhbHVlIGlzIHJlYWxseSBtZWFudCB0byBiZSAmcXVvdDtmYWxzZSZxdW90Oy4gPGJyIC8+ICBDYW4gYmUgdXNlZnVsbCB3aGVuIGNoZWNraW5nIHNtYXJ0eSBwYXJhbXMgZm9yIHRoZSB2YWx1ZSBmYWxzZTwvZGl2Pg0KCQkJCQk8L2RkPg0KCQkJPGR0IGNsYXNzPSJmaWVsZCI+DQoJCQkJCQk8c3BhbiBjbGFzcz0ibWV0aG9kLXRpdGxlIj5Jc1RydWU8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZElzVHJ1ZSI+R0JGaWxlUGlja2VyOjpJc1RydWUoKTwvYT4gaW4gR0JGaWxlUGlja2VyLm1vZHVsZS5waHA8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbmRleC1pdGVtLWRlc2NyaXB0aW9uIj5DaGVja3MgaWYgYSB2YWx1ZSBpcyByZWFsbHkgbWVhbnQgdG8gYmUgJnF1b3Q7dHJ1ZSZxdW90Oy4gPGJyIC8+ICBDYW4gYmUgdXNlZnVsbCB3aGVuIGNoZWNraW5nIHNtYXJ0eSBwYXJhbXMgZm9yIHRoZSB2YWx1ZSB0cnVlPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPklzVmFyRW1wdHk8L3NwYW4+DQoJCQkJCTwvZHQ+DQoJCTxkZCBjbGFzcz0iaW5kZXgtaXRlbS1ib2R5Ij4NCgkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGV0YWlscyI+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZElzVmFyRW1wdHkiPkdCRmlsZVBpY2tlcjo6SXNWYXJFbXB0eSgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkNoZWNrcyBpZiBhIHZhciBpcyBlbXB0eS4gPGJyIC8+ICBJZiAkdmFyIGlzIGFuIGFycmF5IGl0IHJlY3Vyc2l2bGV5IGNoZWNrcyBhbGwgZWxlbWVudHMuPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCTwvZGw+DQoJPGEgbmFtZT0ibCI+PC9hPg0KCTxkaXYgY2xhc3M9ImluZGV4LWxldHRlci1zZWN0aW9uIj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQiIGNsYXNzPSJpbmRleC1sZXR0ZXItdGl0bGUiPmw8L2Rpdj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0Ij48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9kaXY+DQoJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoIj48L2Rpdj4NCgk8L2Rpdj4NCgk8ZGw+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPkxvYWRlZDwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kTG9hZGVkIj5HQkZpbGVQaWNrZXI6OkxvYWRlZCgpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPkluZGljYXRlcyBpZiBHQkZpbGVQaWNrZXIgb3V0cHV0IGlzIGFscmVhZHkgZG9uZTxiciAvPiAgY2FuIGJlIHVzZWZ1bCB0byBhdm9pZCBvdXB1dCBvZiBqYXZhc2NyaXB0IGFuZCBjc3MgdHdpY2U8L2Rpdj4NCgkJCQkJPC9kZD4NCgkJPC9kbD4NCgk8YSBuYW1lPSJzIj48L2E+DQoJPGRpdiBjbGFzcz0iaW5kZXgtbGV0dGVyLXNlY3Rpb24iPg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdCIgY2xhc3M9ImluZGV4LWxldHRlci10aXRsZSI+czwvZGl2Pg0KCQk8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L2Rpdj4NCgkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KCTwvZGl2Pg0KCTxkbD4NCgkJCTxkdCBjbGFzcz0iZmllbGQiPg0KCQkJCQkJPHNwYW4gY2xhc3M9Im1ldGhvZC10aXRsZSI+U2V0UGFyYW1ldGVyczwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kU2V0UGFyYW1ldGVycyI+R0JGaWxlUGlja2VyOjpTZXRQYXJhbWV0ZXJzKCk8L2E+IGluIEdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9kaXY+DQoJCQkJCTwvZGQ+DQoJCQk8ZHQgY2xhc3M9ImZpZWxkIj4NCgkJCQkJCTxzcGFuIGNsYXNzPSJtZXRob2QtdGl0bGUiPlNvcnRGaWxlczwvc3Bhbj4NCgkJCQkJPC9kdD4NCgkJPGRkIGNsYXNzPSJpbmRleC1pdGVtLWJvZHkiPg0KCQkJPGRpdiBjbGFzcz0iaW5kZXgtaXRlbS1kZXRhaWxzIj48YSBocmVmPSJDTVNNb2R1bGUvR0JGaWxlUGlja2VyLmh0bWwjbWV0aG9kU29ydEZpbGVzIj5HQkZpbGVQaWNrZXI6OlNvcnRGaWxlcygpPC9hPiBpbiBHQkZpbGVQaWNrZXIubW9kdWxlLnBocDwvZGl2Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImluZGV4LWl0ZW0tZGVzY3JpcHRpb24iPlNvcnRzIHRoZSBmaWxlcyBieSBmaWxlbmFtZTsgc2hvd3MgZGlyZWN0b3JpZXMgZmlyc3Q8YnIgLz4gIHRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgY2FsbGVkIGZyb20gdGhlIHBocCB1c29ydCgpIGZ1bmN0aW9uOiB1c29ydCgkYXJyYXksYXJyYXkoJHRoaXMsJ1NvcnRGaWxlcycpPGJyIC8+ICBUYWtlbiBmcm9tIFRpbnlNQ0UgZmlsZXBpY2tlci48L2Rpdj4NCgkJCQkJPC9kZD4NCgkJPC9kbD4NCg0KPGRpdiBjbGFzcz0iaW5kZXgtbGV0dGVyLW1lbnUiPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleF9DTVNNb2R1bGUuaHRtbCNjIj5jPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleF9DTVNNb2R1bGUuaHRtbCNnIj5nPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleF9DTVNNb2R1bGUuaHRtbCNoIj5oPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleF9DTVNNb2R1bGUuaHRtbCNpIj5pPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleF9DTVNNb2R1bGUuaHRtbCNsIj5sPC9hPg0KCTxhIGNsYXNzPSJpbmRleC1sZXR0ZXIiIGhyZWY9ImVsZW1lbnRpbmRleF9DTVNNb2R1bGUuaHRtbCNzIj5zPC9hPg0KPC9kaXY+DQk8L2JvZHk+DQo8L2h0bWw+DQ==]]></data>
	</file>
	<file>
	  <filename>/doc/api/errors.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQoJCTxoZWFkPg0KCQkJPCEtLSB0ZW1wbGF0ZSBkZXNpZ25lZCBieSBNYXJjbyBWb24gQmFsbG1vb3MgLS0+DQoJCQk8dGl0bGU+cGhwRG9jdW1lbnRvciBQYXJzZXIgRXJyb3JzIGFuZCBXYXJuaW5nczwvdGl0bGU+DQoJCQk8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Im1lZGlhL3N0eWxlc2hlZXQuY3NzIiAvPg0KCQkJPG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMScvPg0KCQk8L2hlYWQ+DQoJCTxib2R5Pg0KCQkJCQkJDTxhIGhyZWY9IiNQb3N0LXBhcnNpbmciPlBvc3QtcGFyc2luZzwvYT48YnI+DQo8YSBuYW1lPSJQb3N0LXBhcnNpbmciPjwvYT4NCjxoMT5Qb3N0LXBhcnNpbmc8L2gxPg0KPGgyPldhcm5pbmdzOjwvaDI+PGJyPg0KPGI+V2FybmluZzwvYj4gLSBjbGFzcyBHQkZpbGVQaWNrZXIgaW4gcGFja2FnZSBDTVNNb2R1bGUgcGFyZW50IG5vdCBmb3VuZCBpbiBAc2VlIHBhcmVudDo6RG9BY3Rpb24oKTxicj4NCjxiPldhcm5pbmc8L2I+IC0gY2xhc3MgR0JGaWxlUGlja2VyIGluIHBhY2thZ2UgQ01TTW9kdWxlIHBhcmVudCBub3QgZm91bmQgaW4gQHNlZSBwYXJlbnQ6OkRvQWN0aW9uKCk8YnI+DQo8Yj5XYXJuaW5nPC9iPiAtIGNsYXNzIEdCRmlsZVBpY2tlciBpbiBwYWNrYWdlIENNU01vZHVsZSBwYXJlbnQgbm90IGZvdW5kIGluIEBzZWUgcGFyZW50OjpDTVNNb2R1bGUoKTxicj4NCjxiPldhcm5pbmc8L2I+IC0gY2xhc3MgR0JGaWxlUGlja2VyIGluIHBhY2thZ2UgQ01TTW9kdWxlIHBhcmVudCBub3QgZm91bmQgaW4gQHNlZSBwYXJlbnQ6OkRvQWN0aW9uKCk8YnI+DQo8Yj5XYXJuaW5nPC9iPiAtIGNsYXNzIEdCRmlsZVBpY2tlciBpbiBwYWNrYWdlIENNU01vZHVsZSBwYXJlbnQgbm90IGZvdW5kIGluIEBzZWUgcGFyZW50OjpDTVNNb2R1bGUoKTxicj4NCjxiPldhcm5pbmc8L2I+IC0gY2xhc3MgR0JGaWxlUGlja2VyIGluIHBhY2thZ2UgQ01TTW9kdWxlIHBhcmVudCBub3QgZm91bmQgaW4gQHNlZSBwYXJlbnQ6OkRvQWN0aW9uKCk8YnI+DQo8Yj5XYXJuaW5nPC9iPiAtIENsYXNzIEdCRmlsZVBpY2tlciBwYXJlbnQgQ01TTW9kdWxlIG5vdCBmb3VuZDxicj4NCgk8cCBjbGFzcz0ibm90ZXMiIGlkPSJjcmVkaXQiPg0KCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBvbiBXZWQsIDIzIEZlYiAyMDExIDIxOjM4OjExICswMTAwIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwZG9jLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnBocERvY3VtZW50b3IgMS40LjBhMjwvYT4NCgk8L3A+DQoJPC9ib2R5Pg0KPC9odG1sPg0=]]></data>
	</file>
	<file>
	  <filename>/doc/api/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgDQogICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRlIiDQogICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1mcmFtZXNldC5kdGQiPg0KICAgPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQoJPCEtLSBHZW5lcmF0ZWQgYnkgcGhwRG9jdW1lbnRvciBvbiBXZWQsIDIzIEZlYiAyMDExIDIxOjM3OjUxICswMTAwICAtLT4NCiAgPHRpdGxlPkdCRmlsZVBpY2tlciBBUEkgRG9jPC90aXRsZT4NCiAgPG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMScvPg0KPC9oZWFkPg0KDQo8RlJBTUVTRVQgcm93cz0nMTIwLConPg0KCTxGUkFNRSBzcmM9J3BhY2thZ2VzLmh0bWwnIG5hbWU9J2xlZnRfdG9wJyBmcmFtZWJvcmRlcj0iMSIgYm9yZGVyY29sb3I9IiM5OTk5OTkiPg0KCTxGUkFNRVNFVCBjb2xzPScyNSUsKic+DQoJCTxGUkFNRSBzcmM9J2xpX0NNU01vZHVsZS5odG1sJyBuYW1lPSdsZWZ0X2JvdHRvbScgZnJhbWVib3JkZXI9IjEiIGJvcmRlcmNvbG9yPSIjOTk5OTk5Ij4NCgkJPEZSQU1FIHNyYz0nYmxhbmsuaHRtbCcgbmFtZT0ncmlnaHQnIGZyYW1lYm9yZGVyPSIxIiBib3JkZXJjb2xvcj0iIzk5OTk5OSI+DQoJPC9GUkFNRVNFVD4NCgk8Tk9GUkFNRVM+DQoJCTxIMj5GcmFtZSBBbGVydDwvSDI+DQoJCTxQPlRoaXMgZG9jdW1lbnQgaXMgZGVzaWduZWQgdG8gYmUgdmlld2VkIHVzaW5nIHRoZSBmcmFtZXMgZmVhdHVyZS4NCgkJSWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UsIHlvdSBhcmUgdXNpbmcgYSBub24tZnJhbWUtY2FwYWJsZSB3ZWIgY2xpZW50LjwvUD4NCgk8L05PRlJBTUVTPg0KPC9GUkFNRVNFVD4NCjwvSFRNTD4N]]></data>
	</file>
	<file>
	  <filename>/doc/api/li_CMSModule.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQoJCTxoZWFkPg0KCQkJPCEtLSB0ZW1wbGF0ZSBkZXNpZ25lZCBieSBNYXJjbyBWb24gQmFsbG1vb3MgLS0+DQoJCQk8dGl0bGU+PC90aXRsZT4NCgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ibWVkaWEvc3R5bGVzaGVldC5jc3MiIC8+DQoJCQk8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xJy8+DQoJCTwvaGVhZD4NCgkJPGJvZHk+DQoJCQkJCQkNPGRpdiBjbGFzcz0icGFja2FnZS10aXRsZSI+Q01TTW9kdWxlPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWNrYWdlLWRldGFpbHMiPg0KDQoJPGRsIGNsYXNzPSJ0cmVlIj4NCgkJDQoJCTxkdCBjbGFzcz0iZm9sZGVyLXRpdGxlIj5EZXNjcmlwdGlvbjwvZHQ+DQoJCTxkZD4NCgkJCTxhIGhyZWY9J2NsYXNzdHJlZXNfQ01TTW9kdWxlLmh0bWwnIHRhcmdldD0ncmlnaHQnPkNsYXNzIHRyZWVzPC9hPjxiciAvPg0KCQkJPGEgaHJlZj0nZWxlbWVudGluZGV4X0NNU01vZHVsZS5odG1sJyB0YXJnZXQ9J3JpZ2h0Jz5JbmRleCBvZiBlbGVtZW50czwvYT48YnIgLz4NCgkJCQkJCQk8YSBocmVmPSJ0b2RvbGlzdC5odG1sIiB0YXJnZXQ9InJpZ2h0Ij5Ub2RvIExpc3Q8L2E+PGJyIC8+DQoJCQkJCTwvZGQ+DQoJDQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxkdCBjbGFzcz0iZm9sZGVyLXRpdGxlIj5DbGFzc2VzPC9kdD4NCgkJCQkJCQkJCQkgICAJCQkJCQk8ZGQ+PGEgaHJlZj0nQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sJyB0YXJnZXQ9J3JpZ2h0Jz5HQkZpbGVQaWNrZXI8L2E+PC9kZD4NCgkJCQkJICAgCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxkdCBjbGFzcz0iZm9sZGVyLXRpdGxlIj5GaWxlczwvZHQ+DQoJCQkJCQkJCQkJCTxkZD48YSBocmVmPSdDTVNNb2R1bGUvX0dCRmlsZVBpY2tlci5tb2R1bGUucGhwLmh0bWwnIHRhcmdldD0ncmlnaHQnPkdCRmlsZVBpY2tlci5tb2R1bGUucGhwPC9hPjwvZGQ+DQoJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJDQoJCQk8L2RsPg0KPC9kaXY+DQo8cCBjbGFzcz0ibm90ZXMiPjxhIGhyZWY9Imh0dHA6Ly93d3cucGhwZG9jLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnBocERvY3VtZW50b3IgdiA8c3BhbiBjbGFzcz0iZmllbGQiPjEuNC4wYTI8L3NwYW4+PC9hPjwvcD4NCjwvQk9EWT4NCjwvSFRNTD4N]]></data>
	</file>
	<file>
	  <filename>/doc/api/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/api/media/banner.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ym9keSANCnsgDQoJYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgDQoJbWFyZ2luOiAwcHg7IA0KCXBhZGRpbmc6IDBweDsNCn0NCg0KLyogQmFubmVyICh0b3AgYmFyKSBjbGFzc2VzICovDQoNCi5iYW5uZXIgeyAgfQ0KDQouYmFubmVyLW1lbnUgDQp7IA0KCWNsZWFyOiBib3RoOw0KCXBhZGRpbmc6IC41ZW07DQoJYm9yZGVyLXRvcDogMnB4IHNvbGlkICM5OTk5OTk7CQ0KfQ0KDQouYmFubmVyLXRpdGxlIA0KeyANCgl0ZXh0LWFsaWduOiByaWdodDsgDQoJZm9udC1zaXplOiAyMHB0OyANCglmb250LXdlaWdodDogYm9sZDsgDQoJbWFyZ2luOiAuMmVtOw0KfQ0KDQoucGFja2FnZS1zZWxlY3RvciANCnsgDQoJYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsgDQoJYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IA0KCWNvbG9yOiAjMDAwMEMwOw0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/doc/api/media/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/doc/api/media/stylesheet.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[YSB7IGNvbG9yOiAjMDAwMEMwOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQ0KYTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGIH0NCmE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgfQ0KDQpib2R5LCB0YWJsZSB7IGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMHB0IH0NCnAsIGxpIHsgbGluZS1oZWlnaHQ6IDE0MCUgfQ0KYSBpbWcgeyBib3JkZXI6IDBweDsgfQ0KZGQgeyBtYXJnaW4tbGVmdDogMHB4OyBwYWRkaW5nLWxlZnQ6IDFlbTsgfQ0KDQovKiBQYWdlIGxheW91dC9ib3hlcyAqLw0KDQouaW5mby1ib3gge30NCi5pbmZvLWJveC10aXRsZSB7IG1hcmdpbjogMWVtIDBlbSAwZW0gMGVtOyBwYWRkaW5nOiAuMjVlbTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiAxNHB0OyBib3JkZXI6IDJweCBzb2xpZCAjOTk5OTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGIH0NCi5pbmZvLWJveC1ib2R5IHsgYm9yZGVyOiAxcHggc29saWQgIzk5OTk5OTsgcGFkZGluZzogLjVlbTsgfQ0KLm5hdi1iYXIgeyBmb250LXNpemU6IDhwdDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmc6IC4yZW07IG1hcmdpbjogMGVtIDBlbSAxZW0gMGVtOyB9DQoNCi5vZGRyb3cgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRjhGOEY4OyBib3JkZXI6IDFweCBzb2xpZCAjQUFBQUFBOyBwYWRkaW5nOiAuNWVtOyBtYXJnaW4tYm90dG9tOiAxZW19DQouZXZlbnJvdyB7IGJvcmRlcjogMXB4IHNvbGlkICNBQUFBQUE7IHBhZGRpbmc6IC41ZW07IG1hcmdpbi1ib3R0b206IDFlbX0NCg0KLnBhZ2UtYm9keSB7IG1heC13aWR0aDogODAwcHg7IG1hcmdpbjogYXV0bzsgfQ0KLnRyZWUgZGwgeyBtYXJnaW46IDBweCB9DQoNCi8qIEluZGV4IGZvcm1hdHRpbmcgY2xhc3NlcyAqLw0KDQouaW5kZXgtaXRlbS1ib2R5IHsgbWFyZ2luLXRvcDogLjVlbTsgbWFyZ2luLWJvdHRvbTogLjVlbX0NCi5pbmRleC1pdGVtLWRlc2NyaXB0aW9uIHsgbWFyZ2luLXRvcDogLjI1ZW0gfQ0KLmluZGV4LWl0ZW0tZGV0YWlscyB7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1zaXplOiA4cHQgfQ0KLmluZGV4LWxldHRlci1zZWN0aW9uIHsgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsgYm9yZGVyOiAxcHggZG90dGVkICM5OTk5OTk7IHBhZGRpbmc6IC41ZW07IG1hcmdpbi1ib3R0b206IDFlbX0NCi5pbmRleC1sZXR0ZXItdGl0bGUgeyBmb250LXNpemU6IDEycHQ7IGZvbnQtd2VpZ2h0OiBib2xkIH0NCi5pbmRleC1sZXR0ZXItbWVudSB7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luOiAxZW0gfQ0KLmluZGV4LWxldHRlciB7IGZvbnQtc2l6ZTogMTJwdCB9DQoNCi8qIERvY2Jvb2sgY2xhc3NlcyAqLw0KDQouZGVzY3JpcHRpb24ge30NCi5zaG9ydC1kZXNjcmlwdGlvbiB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogIzY2NjY2NjsgfQ0KLnRhZ3MgewlwYWRkaW5nLWxlZnQ6IDBlbTsgbWFyZ2luLWxlZnQ6IDNlbTsgY29sb3I6ICM2NjY2NjY7IGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlOyB9DQoucGFyYW1ldGVycyB7CXBhZGRpbmctbGVmdDogMGVtOyBtYXJnaW4tbGVmdDogM2VtOyBmb250LXN0eWxlOiBpdGFsaWM7IGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlOyB9DQoucmVkZWZpbml0aW9ucyB7IGZvbnQtc2l6ZTogOHB0OyBwYWRkaW5nLWxlZnQ6IDBlbTsgbWFyZ2luLWxlZnQ6IDJlbTsgfQ0KLnBhY2thZ2UgeyAgfQ0KLnBhY2thZ2UtdGl0bGUgeyBmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxNHB0OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2sgfQ0KLnBhY2thZ2UtZGV0YWlscyB7IGZvbnQtc2l6ZTogODUlOyB9DQouc3ViLXBhY2thZ2UgeyBmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxMjAlIH0NCi50dXRvcmlhbCB7IGJvcmRlci13aWR0aDogdGhpbjsgYm9yZGVyLWNvbG9yOiAjMDA2NmZmIH0NCi50dXRvcmlhbC1uYXYtYm94IHsgd2lkdGg6IDEwMCU7IGJvcmRlcjogMXB4IHNvbGlkICNBQUFBQUE7IGJhY2tncm91bmQtY29sb3I6ICNERERERkY7IH0NCi5uYXYtYnV0dG9uLWRpc2FibGVkIHsgY29sb3I6ICNBQUFBQUE7IH0NCi5uYXYtYnV0dG9uOmFjdGl2ZSwgDQoubmF2LWJ1dHRvbjpmb2N1cywgDQoubmF2LWJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6ICNDQ0NDQ0M7IG91dGxpbmU6IDFweCBzb2xpZCAjOTk5OTk5OyB0ZXh0LWRlY29yYXRpb246IG5vbmUgfQ0KLmZvbGRlci10aXRsZSB7IGZvbnQtc3R5bGU6IGl0YWxpYyB9DQoNCi8qIEdlbmVyaWMgZm9ybWF0dGluZyAqLw0KDQouZmllbGQgeyBmb250LXdlaWdodDogYm9sZDsgfQ0KLmRldGFpbCB7IGZvbnQtc2l6ZTogOHB0OyB9DQoubm90ZXMgeyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtc2l6ZTogOHB0OyB9DQouc2VwYXJhdG9yIHsgYmFja2dyb3VuZC1jb2xvcjogIzk5OTk5OTsgaGVpZ2h0OiAycHg7IH0NCi53YXJuaW5nIHsgIGNvbG9yOiAjRkY2NjAwOyB9DQouZGlzYWJsZWQgeyBmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiAjOTk5OTk5OyB9DQoNCi8qIENvZGUgZWxlbWVudHMgKi8NCg0KLmxpbmUtbnVtYmVyIHsgIH0NCg0KLmNsYXNzLXRhYmxlIHsgd2lkdGg6IDEwMCU7IH0NCi5jbGFzcy10YWJsZS1oZWFkZXIgeyBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY2NjY7IHRleHQtYWxpZ246IGxlZnQ7IGJhY2tncm91bmQtY29sb3I6IERERERGRiB9DQouY2xhc3MtbmFtZSB7IGNvbG9yOiAjMDAwMDAwOyBmb250LXdlaWdodDogYm9sZDsgfQ0KDQoubWV0aG9kLXN1bW1hcnkgeyBwYWRkaW5nLWxlZnQ6IDFlbTsgZm9udC1zaXplOiA4cHQgfQ0KLm1ldGhvZC1oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjREREREZGOyBwYWRkaW5nOiAxcHg7IH0NCi5tZXRob2QtZGVmaW5pdGlvbiB7IG1hcmdpbi1ib3R0b206IC4zZW0gfQ0KLm1ldGhvZC10aXRsZSB7IGZvbnQtd2VpZ2h0OiBib2xkIH0NCi5tZXRob2QtbmFtZSB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQoubWV0aG9kLXNpZ25hdHVyZSB7IGZvbnQtc2l6ZTogODUlOyBjb2xvcjogIzY2NjY2NjsgbWFyZ2luOiAuNWVtIDBlbSB9DQoubWV0aG9kLXJlc3VsdCB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfQ0KDQoudmFyLXN1bW1hcnkgeyBwYWRkaW5nLWxlZnQ6IDFlbTsgZm9udC1zaXplOiA4cHQ7IH0NCi52YXItaGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI0RERERGRjsgcGFkZGluZzogMXB4OyB9DQoudmFyLXRpdGxlIHsgbWFyZ2luLWJvdHRvbTogLjNlbSB9DQoudmFyLXR5cGUgeyBmb250LXN0eWxlOiBpdGFsaWM7IH0NCi52YXItbmFtZSB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQoudmFyLWRlZmF1bHQge30NCi52YXItZGVzY3JpcHRpb24geyBmb250LXdlaWdodDogbm9ybWFsOyBjb2xvcjogIzAwMDAwMDsgfQ0KDQouaW5jbHVkZS10aXRsZSB7ICB9DQouaW5jbHVkZS10eXBlIHsgZm9udC1zdHlsZTogaXRhbGljOyB9DQouaW5jbHVkZS1uYW1lIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCg0KLmNvbnN0LXRpdGxlIHsgIH0NCi5jb25zdC1uYW1lIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCg0KLyogU3ludGF4IGhpZ2hsaWdodGluZyAqLw0KDQouc3JjLWNvZGUgeyAgYm9yZGVyOiAxcHggc29saWQgIzk5OTk5OTsgcGFkZGluZzogMWVtOw0KICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBOZXcnLCBDb3VyaWVyLCBtb25vc3BhY2U7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH0NCi5zcmMtbGluZSB7ICBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOyBmb250LXdlaWdodDogbm9ybWFsOyB9DQouc3JjLWNvbW0geyBjb2xvcjogZ3JlZW47IH0NCi5zcmMtaWQgeyAgfQ0KLnNyYy1pbmMgeyBjb2xvcjogIzAwMDBGRjsgfQ0KLnNyYy1rZXkgeyBjb2xvcjogIzAwMDBGRjsgfQ0KLnNyYy1udW0geyBjb2xvcjogI0NDMDAwMDsgfQ0KLnNyYy1zdHIgeyBjb2xvcjogIzY2Y2NjYzsgfQ0KLnNyYy1zeW0geyBmb250LXdlaWdodDogYm9sZDsgfQ0KLnNyYy12YXIgeyB9DQoNCi5zcmMtcGhwIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCg0KLnNyYy1kb2MgeyBjb2xvcjogIzAwOTk5OSB9DQouc3JjLWRvYy1jbG9zZS10ZW1wbGF0ZSB7IGNvbG9yOiAjMDAwMEZGIH0NCi5zcmMtZG9jLWNvcmV0YWcgeyBjb2xvcjogIzAwOTlGRjsgZm9udC13ZWlnaHQ6IGJvbGQgfQ0KLnNyYy1kb2MtaW5saW5ldGFnIHsgY29sb3I6ICMwMDk5RkYgfQ0KLnNyYy1kb2MtaW50ZXJuYWwgeyBjb2xvcjogIzY2OTljYyB9DQouc3JjLWRvYy10YWcgeyBjb2xvcjogIzAwODBDQyB9DQouc3JjLWRvYy10ZW1wbGF0ZSB7IGNvbG9yOiAjMDAwMEZGIH0NCi5zcmMtZG9jLXR5cGUgeyBmb250LXN0eWxlOiBpdGFsaWMgfQ0KLnNyYy1kb2MtdmFyIHsgZm9udC1zdHlsZTogaXRhbGljIH0NCg0KLnR1dGUtdGFnIHsgY29sb3I6ICMwMDk5OTkgfQ0KLnR1dGUtYXR0cmlidXRlLW5hbWUgeyBjb2xvcjogIzAwMDBGRiB9DQoudHV0ZS1hdHRyaWJ1dGUtdmFsdWUgeyBjb2xvcjogIzAwOTlGRiB9DQoudHV0ZS1lbnRpdHkgeyBmb250LXdlaWdodDogYm9sZDsgfQ0KLnR1dGUtY29tbWVudCB7IGZvbnQtc3R5bGU6IGl0YWxpYyB9DQoudHV0ZS1pbmxpbmUtdGFnIHsgY29sb3I6ICM2MzYzMTE7IGZvbnQtd2VpZ2h0OiBib2xkIH0NCg0KLyogdHV0b3JpYWwgKi8NCg0KLmF1dGhvcnMgeyAgfQ0KLmF1dGhvciB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IGJvbGQgfQ0KLmF1dGhvci1ibHVyYiB7IG1hcmdpbjogLjVlbSAwZW0gLjVlbSAyZW07IGZvbnQtc2l6ZTogODUlOyBmb250LXdlaWdodDogbm9ybWFsOyBmb250LXN0eWxlOiBub3JtYWwgfQ0KLmV4YW1wbGUgeyBib3JkZXI6IDFweCBkYXNoZWQgIzk5OTk5OTsgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsgcGFkZGluZzogLjVlbTsgfQ0KLmxpc3RpbmcgeyBib3JkZXI6IDFweCBkYXNoZWQgIzk5OTk5OTsgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsgcGFkZGluZzogLjVlbTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQ0KLnJlbGVhc2UtaW5mbyB7IGZvbnQtc2l6ZTogODUlOyBmb250LXN0eWxlOiBpdGFsaWM7IG1hcmdpbjogMWVtIDBlbSB9DQoucmVmLXRpdGxlLWJveCB7ICB9DQoucmVmLXRpdGxlIHsgIH0NCi5yZWYtcHVycG9zZSB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgY29sb3I6ICM2NjY2NjYgfQ0KLnJlZi1zeW5vcHNpcyB7ICB9DQoudGl0bGUgeyBmb250LXdlaWdodDogYm9sZDsgYm9yZGVyOiAycHggc29saWQgIzk5OTk5OTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgcGFkZGluZzogMnB4IH0NCi5jbWQtc3lub3BzaXMgeyBtYXJnaW46IDFlbSAwZW0gfQ0KLmNtZC10aXRsZSB7IGZvbnQtd2VpZ2h0OiBib2xkIH0NCi50b2MgeyBtYXJnaW4tbGVmdDogMmVtOyBwYWRkaW5nLWxlZnQ6IDBlbSB9DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/doc/api/packages.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQoJCTxoZWFkPg0KCQkJPCEtLSB0ZW1wbGF0ZSBkZXNpZ25lZCBieSBNYXJjbyBWb24gQmFsbG1vb3MgLS0+DQoJCQk8dGl0bGU+PC90aXRsZT4NCgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ibWVkaWEvc3R5bGVzaGVldC5jc3MiIC8+DQoJCQk8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Im1lZGlhL2Jhbm5lci5jc3MiIC8+DQoJCQk8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xJy8+DQoJCTwvaGVhZD4NCgkJPGJvZHk+DQoJCQk8ZGl2IGNsYXNzPSJiYW5uZXIiPg0KCQkJCTxkaXYgY2xhc3M9ImJhbm5lci10aXRsZSI+Q01TTW9kdWxlPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0iYmFubmVyLW1lbnUiPg0KCQkJCQk8Zm9ybT4NCgkJCQkJCTx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJ3aWR0aDogMTAwJSI+DQoJCQkJCQkJPHRyPg0KCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCTx0ZCBzdHlsZT0id2lkdGg6IDJlbSI+Jm5ic3A7PC90ZD4NCgkJCQkJCQkJPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodCI+DQoJCQkJCQkJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJPC90cj4NCgkJCQkJCTwvdGFibGU+DQoJCQkJCTwvZm9ybT4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQk8L2JvZHk+DQoJPC9odG1sPg0=]]></data>
	</file>
	<file>
	  <filename>/doc/api/todolist.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQoJCTxoZWFkPg0KCQkJPCEtLSB0ZW1wbGF0ZSBkZXNpZ25lZCBieSBNYXJjbyBWb24gQmFsbG1vb3MgLS0+DQoJCQk8dGl0bGU+VG9kbyBMaXN0PC90aXRsZT4NCgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ibWVkaWEvc3R5bGVzaGVldC5jc3MiIC8+DQoJCQk8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xJy8+DQoJCTwvaGVhZD4NCgkJPGJvZHk+DQoJCQkJCQkNPGRpdiBhbGlnbj0iY2VudGVyIj48aDE+VG9kbyBMaXN0PC9oMT48L2Rpdj4NCjxoMj5DTVNNb2R1bGU8L2gyPg0KPGgzPjxhIGhyZWY9IkNNU01vZHVsZS9HQkZpbGVQaWNrZXIuaHRtbCNtZXRob2RIYW5kbGVGaWxlUmVzaXppbmciPkdCRmlsZVBpY2tlcjo6SGFuZGxlRmlsZVJlc2l6aW5nKCk8L2E+PC9oMz4NCjx1bD4NCiAgICA8bGk+ZW5hYmxlIGZvcm1hdCBjaGFuZ2U/PC9saT4NCjwvdWw+DQo8aDM+PGEgaHJlZj0iQ01TTW9kdWxlL0dCRmlsZVBpY2tlci5odG1sI21ldGhvZFNldFBhcmFtZXRlcnMiPkdCRmlsZVBpY2tlcjo6U2V0UGFyYW1ldGVycygpPC9hPjwvaDM+DQo8dWw+DQogICAgPGxpPmNyZWF0ZSBsaXN0IG9mIGFsbG93ZWQgcGFyYW1ldGVycyE8L2xpPg0KPC91bD4NCgk8cCBjbGFzcz0ibm90ZXMiIGlkPSJjcmVkaXQiPg0KCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBvbiBXZWQsIDIzIEZlYiAyMDExIDIxOjM4OjExICswMTAwIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwZG9jLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnBocERvY3VtZW50b3IgMS40LjBhMjwvYT4NCgk8L3A+DQoJPC9ib2R5Pg0KPC9odG1sPg0=]]></data>
	</file>
	<file>
	  <filename>/doc/copyright.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VGhlIG1vZHVsZSB1c2VzIGV4dGVybmFsIGxpYmFyaWVzIGFuZCBjb2RlIHNuaXBwZXRzIHRoYXQgYXJlIGxpc3RlZCBiZWxvdzoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpqUXVlcnkgSmF2YVNjcmlwdCBMaWJyYXJ5IHYxLjQuMgpodHRwOi8vanF1ZXJ5LmNvbS8KCkNvcHlyaWdodCAyMDEwLCBKb2huIFJlc2lnCkR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgpodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCgpJbmNsdWRlcyBTaXp6bGUuanMKaHR0cDovL3NpenpsZWpzLmNvbS8KQ29weXJpZ2h0IDIwMTAsIFRoZSBEb2pvIEZvdW5kYXRpb24KUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgoKRGF0ZTogU2F0IEZlYiAxMyAyMjozMzo0OCAyMDEwIC0wNTAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKalF1ZXJ5IEZvcm0gUGx1Z2luCnZlcnNpb246IDIuNDMgKDEyLU1BUi0yMDEwKQoKRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9tYWxzdXAuY29tL2pxdWVyeS9mb3JtLwpEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgYW5kIEdQTCBsaWNlbnNlczoKICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCmpRdWVyeSAnb25JbWFnZXNMb2FkZWQnIHBsdWdpbiB2MS4xLjEgKFVwZGF0ZWQgSmFudWFyeSAyNywgMjAxMCkKRmlyZXMgY2FsbGJhY2sgZnVuY3Rpb25zIHdoZW4gaW1hZ2VzIGhhdmUgbG9hZGVkIHdpdGhpbiBhIHBhcnRpY3VsYXIgc2VsZWN0b3IuCgpDb3B5cmlnaHQgKGMpIENpcmt1aXQgTmV0d29ya3MsIEluYy4gKGh0dHA6Ly93d3cuY2lya3VpdC5uZXQpLCAyMDA4LTIwMTAuCkR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogICBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwKCkZvciBkb2N1bWVudGF0aW9uIGFuZCB1c2FnZSBzZWU6Cmh0dHA6Ly93d3cuY2lya3VpdC5uZXQvcHJvamVjdHMvanF1ZXJ5L29uSW1hZ2VzTG9hZC8KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpUaGUgZmlsZXBpY2tlciBpcyBiYXNlZCBvbiBhIHBsdWdpbiBvZiBUaW55TUNFIHRoYXQgY29tZXMgYnkgZGVmYXVsdCB3aXRoIENNU21zLiAKSSdtIG5vdCBzdXJlIHdobyBhY3R1YWxseSBpcyB0aGUgYXV0aG9yIG9mIHRoZSBmaWxlcGlja2VyLiAKVGlueU1DRSBmb3IgQ01TbXMgaXMgZGV2ZWxvcGVkL21haW50YWluZWQgYnkgU2ltb24gQnJvd24sIFN0ZWZhbiBSw7ZsbGluIGFuZCBNb3J0ZW4gUG91bHNlbi4KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpBbmQgZnJlZSBpY29ucyBmb3VuZCBieSBodHRwOi8vd3d3Lmljb25maW5kZXIuY29tCiA=]]></data>
	</file>
	<file>
	  <filename>/doc/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cg==]]></data>
	</file>
	<file>
	  <filename>/doc/license.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKCQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKCiBDb3B5cmlnaHQgKEMpIDE5ODksIDE5OTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICAgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCgkJCSAgICBQcmVhbWJsZQoKICBUaGUgbGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYXJlIGRlc2lnbmVkIHRvIHRha2UgYXdheSB5b3VyCmZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljCkxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGZyZWUKc29mdHdhcmUtLXRvIG1ha2Ugc3VyZSB0aGUgc29mdHdhcmUgaXMgZnJlZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFRoaXMKR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBsaWVzIHRvIG1vc3Qgb2YgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbidzIHNvZnR3YXJlIGFuZCB0byBhbnkgb3RoZXIgcHJvZ3JhbSB3aG9zZSBhdXRob3JzIGNvbW1pdCB0bwp1c2luZyBpdC4gIChTb21lIG90aGVyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBzb2Z0d2FyZSBpcyBjb3ZlcmVkIGJ5CnRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoMCgkJICAgIEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCiAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTgoKICAwLiBUaGlzIExpY2Vuc2UgYXBwbGllcyB0byBhbnkgcHJvZ3JhbSBvciBvdGhlciB3b3JrIHdoaWNoIGNvbnRhaW5zCmEgbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVkCnVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGUgIlByb2dyYW0iLCBiZWxvdywKcmVmZXJzIHRvIGFueSBzdWNoIHByb2dyYW0gb3Igd29yaywgYW5kIGEgIndvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0iCm1lYW5zIGVpdGhlciB0aGUgUHJvZ3JhbSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyIGNvcHlyaWdodCBsYXc6CnRoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgUHJvZ3JhbSBvciBhIHBvcnRpb24gb2YgaXQsCmVpdGhlciB2ZXJiYXRpbSBvciB3aXRoIG1vZGlmaWNhdGlvbnMgYW5kL29yIHRyYW5zbGF0ZWQgaW50byBhbm90aGVyCmxhbmd1YWdlLiAgKEhlcmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcyBpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4KdGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKSAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuCgpBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdApjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mCnJ1bm5pbmcgdGhlIFByb2dyYW0gaXMgbm90IHJlc3RyaWN0ZWQsIGFuZCB0aGUgb3V0cHV0IGZyb20gdGhlIFByb2dyYW0KaXMgY292ZXJlZCBvbmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSAoaW5kZXBlbmRlbnQgb2YgaGF2aW5nIGJlZW4gbWFkZSBieSBydW5uaW5nIHRoZSBQcm9ncmFtKS4KV2hldGhlciB0aGF0IGlzIHRydWUgZGVwZW5kcyBvbiB3aGF0IHRoZSBQcm9ncmFtIGRvZXMuCgogIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncwpzb3VyY2UgY29kZSBhcyB5b3UgcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UKY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZQpjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdCBhbGwgdGhlCm5vdGljZXMgdGhhdCByZWZlciB0byB0aGlzIExpY2Vuc2UgYW5kIHRvIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsKYW5kIGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFByb2dyYW0gYSBjb3B5IG9mIHRoaXMgTGljZW5zZQphbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKWW91IG1heSBjaGFyZ2UgYSBmZWUgZm9yIHRoZSBwaHlzaWNhbCBhY3Qgb2YgdHJhbnNmZXJyaW5nIGEgY29weSwgYW5kCnlvdSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYSBmZWUuCgogIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIFByb2dyYW0gb3IgYW55IHBvcnRpb24Kb2YgaXQsIHRodXMgZm9ybWluZyBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIGFuZCBjb3B5IGFuZApkaXN0cmlidXRlIHN1Y2ggbW9kaWZpY2F0aW9ucyBvciB3b3JrIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDEKYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKCiAgICBhKSBZb3UgbXVzdCBjYXVzZSB0aGUgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCgogICAgYikgWW91IG11c3QgY2F1c2UgYW55IHdvcmsgdGhhdCB5b3UgZGlzdHJpYnV0ZSBvciBwdWJsaXNoLCB0aGF0IGluCiAgICB3aG9sZSBvciBpbiBwYXJ0IGNvbnRhaW5zIG9yIGlzIGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSBvciBhbnkKICAgIHBhcnQgdGhlcmVvZiwgdG8gYmUgbGljZW5zZWQgYXMgYSB3aG9sZSBhdCBubyBjaGFyZ2UgdG8gYWxsIHRoaXJkCiAgICBwYXJ0aWVzIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuCgogICAgYykgSWYgdGhlIG1vZGlmaWVkIHByb2dyYW0gbm9ybWFsbHkgcmVhZHMgY29tbWFuZHMgaW50ZXJhY3RpdmVseQogICAgd2hlbiBydW4sIHlvdSBtdXN0IGNhdXNlIGl0LCB3aGVuIHN0YXJ0ZWQgcnVubmluZyBmb3Igc3VjaAogICAgaW50ZXJhY3RpdmUgdXNlIGluIHRoZSBtb3N0IG9yZGluYXJ5IHdheSwgdG8gcHJpbnQgb3IgZGlzcGxheSBhbgogICAgYW5ub3VuY2VtZW50IGluY2x1ZGluZyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBhCiAgICBub3RpY2UgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSAob3IgZWxzZSwgc2F5aW5nIHRoYXQgeW91IHByb3ZpZGUKICAgIGEgd2FycmFudHkpIGFuZCB0aGF0IHVzZXJzIG1heSByZWRpc3RyaWJ1dGUgdGhlIHByb2dyYW0gdW5kZXIKICAgIHRoZXNlIGNvbmRpdGlvbnMsIGFuZCB0ZWxsaW5nIHRoZSB1c2VyIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzCiAgICBMaWNlbnNlLiAgKEV4Y2VwdGlvbjogaWYgdGhlIFByb2dyYW0gaXRzZWxmIGlzIGludGVyYWN0aXZlIGJ1dAogICAgZG9lcyBub3Qgbm9ybWFsbHkgcHJpbnQgc3VjaCBhbiBhbm5vdW5jZW1lbnQsIHlvdXIgd29yayBiYXNlZCBvbgogICAgdGhlIFByb2dyYW0gaXMgbm90IHJlcXVpcmVkIHRvIHByaW50IGFuIGFubm91bmNlbWVudC4pCgwKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoMCiAgNC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCmV4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQKb3RoZXJ3aXNlIHRvIGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGlzCnZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4KSG93ZXZlciwgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIKdGhpcyBMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIgbGljZW5zZXMgdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2gKcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgoKICA1LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlLCBzaW5jZSB5b3UgaGF2ZSBub3QKc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBvciBpdHMgZGVyaXZhdGl2ZSB3b3Jrcy4gIFRoZXNlIGFjdGlvbnMgYXJlCnByb2hpYml0ZWQgYnkgbGF3IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkKbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0pLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzbywgYW5kCmFsbCBpdHMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcKdGhlIFByb2dyYW0gb3Igd29ya3MgYmFzZWQgb24gaXQuCgogIDYuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUKb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSBvciBtb2RpZnkgdGhlIFByb2dyYW0gc3ViamVjdCB0bwp0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlcgpyZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCllvdSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHRvCnRoaXMgTGljZW5zZS4KCiAgNy4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAppbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLApjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QKZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91Cm1heSBub3QgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQKbGljZW5zZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieQphbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bwpyZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtLgoKSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCmFueSBwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8KYXBwbHkgYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIKY2lyY3Vtc3RhbmNlcy4KCkl0IGlzIG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5nZSBhbnkKcGF0ZW50cyBvciBvdGhlciBwcm9wZXJ0eSByaWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2YWxpZGl0eSBvZiBhbnkKc3VjaCBjbGFpbXM7IHRoaXMgc2VjdGlvbiBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5nIHRoZQppbnRlZ3JpdHkgb2YgdGhlIGZyZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSwgd2hpY2ggaXMKaW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2ZSBtYWRlCmdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKdGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZwp0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKaW1wb3NlIHRoYXQgY2hvaWNlLgoKVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCmJlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgoMCiAgOC4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBQcm9ncmFtIGlzIHJlc3RyaWN0ZWQgaW4KY2VydGFpbiBjb3VudHJpZXMgZWl0aGVyIGJ5IHBhdGVudHMgb3IgYnkgY29weXJpZ2h0ZWQgaW50ZXJmYWNlcywgdGhlCm9yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIExpY2Vuc2UKbWF5IGFkZCBhbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nCnRob3NlIGNvdW50cmllcywgc28gdGhhdCBkaXN0cmlidXRpb24gaXMgcGVybWl0dGVkIG9ubHkgaW4gb3IgYW1vbmcKY291bnRyaWVzIG5vdCB0aHVzIGV4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzCnRoZSBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLgoKICA5LiBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucwpvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gIFN1Y2ggbmV3IHZlcnNpb25zIHdpbGwKYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvCmFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgoKRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUgUHJvZ3JhbQpzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQgImFueQpsYXRlciB2ZXJzaW9uIiwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCmVpdGhlciBvZiB0aGF0IHZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlClNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YKdGhpcyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLgoKICAxMC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIFByb2dyYW0gaW50byBvdGhlciBmcmVlCnByb2dyYW1zIHdob3NlIGRpc3RyaWJ1dGlvbiBjb25kaXRpb25zIGFyZSBkaWZmZXJlbnQsIHdyaXRlIHRvIHRoZSBhdXRob3IKdG8gYXNrIGZvciBwZXJtaXNzaW9uLiAgRm9yIHNvZnR3YXJlIHdoaWNoIGlzIGNvcHlyaWdodGVkIGJ5IHRoZSBGcmVlClNvZnR3YXJlIEZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcwptYWtlIGV4Y2VwdGlvbnMgZm9yIHRoaXMuICBPdXIgZGVjaXNpb24gd2lsbCBiZSBndWlkZWQgYnkgdGhlIHR3byBnb2FscwpvZiBwcmVzZXJ2aW5nIHRoZSBmcmVlIHN0YXR1cyBvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kCm9mIHByb21vdGluZyB0aGUgc2hhcmluZyBhbmQgcmV1c2Ugb2Ygc29mdHdhcmUgZ2VuZXJhbGx5LgoKCQkJICAgIE5PIFdBUlJBTlRZCgogIDExLiBCRUNBVVNFIFRIRSBQUk9HUkFNIElTIExJQ0VOU0VEIEZSRUUgT0YgQ0hBUkdFLCBUSEVSRSBJUyBOTyBXQVJSQU5UWQpGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4KT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUwpQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRApPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgpNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTClRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTSBJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUKUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsClJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxMi4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTiBXUklUSU5HCldJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTUFZIE1PRElGWSBBTkQvT1IKUkVESVNUUklCVVRFIFRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywKSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HCk9VVCBPRiBUSEUgVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKVE8gTE9TUyBPRiBEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZCllPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSClBST0dSQU1TKSwgRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCgoJCSAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgwKCSAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgIG5hbWUgb2YgYXV0aG9yCiAgICBHbm9tb3Zpc2lvbiBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHRoZSBjb21tYW5kcyB5b3UgdXNlIG1heQpiZSBjYWxsZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYHNob3cgdycgYW5kIGBzaG93IGMnOyB0aGV5IGNvdWxkIGV2ZW4gYmUKbW91c2UtY2xpY2tzIG9yIG1lbnUgaXRlbXMtLXdoYXRldmVyIHN1aXRzIHlvdXIgcHJvZ3JhbS4KCllvdSBzaG91bGQgYWxzbyBnZXQgeW91ciBlbXBsb3llciAoaWYgeW91IHdvcmsgYXMgYSBwcm9ncmFtbWVyKSBvciB5b3VyCnNjaG9vbCwgaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmCm5lY2Vzc2FyeS4gIEhlcmUgaXMgYSBzYW1wbGU7IGFsdGVyIHRoZSBuYW1lczoKCiAgWW95b2R5bmUsIEluYy4sIGhlcmVieSBkaXNjbGFpbXMgYWxsIGNvcHlyaWdodCBpbnRlcmVzdCBpbiB0aGUgcHJvZ3JhbQogIGBHbm9tb3Zpc2lvbicgKHdoaWNoIG1ha2VzIHBhc3NlcyBhdCBjb21waWxlcnMpIHdyaXR0ZW4gYnkgSmFtZXMgSGFja2VyLgoKICA8c2lnbmF0dXJlIG9mIFR5IENvb24+LCAxIEFwcmlsIDE5ODkKICBUeSBDb29uLCBQcmVzaWRlbnQgb2YgVmljZQoKVGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGRvZXMgbm90IHBlcm1pdCBpbmNvcnBvcmF0aW5nIHlvdXIgcHJvZ3JhbSBpbnRvCnByb3ByaWV0YXJ5IHByb2dyYW1zLiAgSWYgeW91ciBwcm9ncmFtIGlzIGEgc3Vicm91dGluZSBsaWJyYXJ5LCB5b3UgbWF5CmNvbnNpZGVyIGl0IG1vcmUgdXNlZnVsIHRvIHBlcm1pdCBsaW5raW5nIHByb3ByaWV0YXJ5IGFwcGxpY2F0aW9ucyB3aXRoIHRoZQpsaWJyYXJ5LiAgSWYgdGhpcyBpcyB3aGF0IHlvdSB3YW50IHRvIGRvLCB1c2UgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwKUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/delete.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEQAYAOYAADk6PM7OxY270qOioIiMlC6AwOLl5mKixWJth8XFxby8vm59mKCuxdjc3u7w8F1ia7i5uomxy8zR3ff370dNW7DG2KartMHH15mZmVKSx3h+g73DyNDe6ZjK393j7Kqzx3yKpa3A1dDV2Nzf542SnNTZ3f///7zD1mFndKaprOjx/vDy9rW1t8TO3XKkwtDX367U5lpbXZOTlM7R1Nvh8IG51uPn7sXJy6jG4KC+1T+GvXyCi5q4zt/f3vr6/MTO1rO+0K2trYCOrK6xtfP19+bn6dPT05GZqGZxinup0FyYy5aXm83U5tTe7rzG3b7EzXGBnrfA1mxwd5G80bW3u4OFh6Krw4CKnF6fxPb398nT19fd5ujs7dbZ47/L1czMzMrR5I+Rkry/wpS1zMXM0afM3rW9xa+wsqerrqSlp2JjaGxucqq73j09P26iyIqSpHGoyrjW5N7e90GNwJqeoWx2ipS91v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAHcALAAAAAARABgAAAf/gHeCdz1iLGlLYRhfg40JaENPW10ST0NhYYyDMiQXYE0qHmQiIw1mUkGCEAQcJ1pdHmJ0aSs3G1s7gkUWZjM9NykPUhosMkNUaoNkS0MNPkRLMmhiX1UAKIM0PWEazAlDdFUxMWdOg2AmJg1BS3RUClRfKyYn5ybPDjY/DisO/kQXzmVZMULLjxIOijSYUWSFhEFMbIzY8uLJCC5cSGXh8lBQRBg1sIx5YqBIjwYrbLwYtEVCGQEu5mgxwKWECAceRgzqwiPODy8R7FxsUITIFg8sc3TQ0mNMgQozyMwgIoHLIAMhyoh48iQDjh5kyBBp0cjBhykHcrhRwiFLiYYdXQd9aAFnjI4kRbjMQBil0R0rZAxsaNFgxFZSVqwOOmKGK5kSIy48kUDjTYIGgyBcYcAASIsWJ9iwQbImgZFBK+g8qANCCJQFCCi0OTPD7x0jA4IckiEjSA/bwIMHAgA7]]></data>
	</file>
	<file>
	  <filename>/images/dir.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAQAPcAAP///////v///f///P//+/7+///+/P//7f/+9P79+v79+f379/789v378f/66/z68Pr5+/r59/r49vv48Pn38/z44/v46Pv44vr36Pr35vv36fj19Pn14Pj24fr14vv13Pn03vb06vj13vj02/rx3Pny0ffy3vrxzPnyz/fx3fjy0Pjx2Pjwz/jxzvfvy/Tv1/Pv1+/v6PnvzO3v8u/u4/juxOru8fftyfPt0vXrwfDr1u7r2vfsvO/q1fXqvu3p1eXp7PPovunn3efm5e/mxPjmo+/lvPXmpujl2Ofk3+bk3evjve3itenivM7i9e/hqfHgnfHflNLf6uffuejds+Xeu9Pd5s7c7M/d6uzboerboO7bkvHafOfYr/HaiOPYouHZpebXnODXqODWoODVn+3VfOTTkfLSXt3RltfTkuDRiN7QjODQja/U1uzOWdLKs8bQoODMgePMa+7LUujLXeXLY+fLYbvK5ezLTpXS9Xnim+HIYuPHUqjJ6+TFUePFUeHGWOHFYd7GX+DGUd7GVeHFU9vFZeHETN3EVaPG6NvDX93DUtvEVtzDU9vCUuDCS9zCVKPIwrfBw9jCW8HAuNnCVNrCUdrAULTBi9S9UJ2/48a9dpu938m6eMm4fnvD837D8NS6T4LA8IDA8NK3S8u2VsmyVY604XW58quurp20o3O37na44Xa15mu27mm38bmtZnew5r6pWm+x7KatYWqx7Wex6L+kP2is7Wau5Gis5buiN16p5Faq71+l3mqg4WKogFah5XSdtKGTXl6Z3ZuSYZWTU0qa4UeW51GS25KKXkSQ4VKIyD2K2ot8JntuMf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHANAALAAAAAAVABAAAAj/AKFBw2FCoEAEBhMqhCbAwo4XE6AtIHEAwEKFCSrEUAKDxZ1knKRIEGDx4gMPHlI40AOMWbNgsRJdsTEgAIACBjVw4FBCBiZawnrZ4nVMVx9NWCgQiAABGggQLVpU8SQLlipWr3L5coJrGbFTQDYwGIGiRhMxajKVKrUpEihXrVbVQvZrhoEMKnIsAUNmDSNGlkLVSdPm0yhUs5AEgebCB5EpY9CwmeSIEKE/c87AySPKShYdAjEYYULlixlDly414sMHzy1jkrr0ULjiiZYwcRQpggTp0CFnxd78uKjgBpQtcgAFCuRm1zNKQi4abMAjShk7fugoSzVEukILR7xwEiE1LIn3ix+KdKJxXnqCENIDAgA7]]></data>
	</file>
	<file>
	  <filename>/images/fileicon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDwAPANUAAHR0dODk7cXdx8LBwa6trZCQkPf39+nf6Za/f////8zMzIWFhd7d3pjBoIGseb6+vtbW1pipmu/v79fl39be1sXFxdPI05C6jH19fenm4rSzs6CgoKDJos3izuLk5vf3/+bm5u/y997h587FxcW9xf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHACUALAAAAAAPAA8AAAZ0wJIBRCwSGaCSsiRJOJ0SRYWhYCw9hqyBwdAAIFSJEpINBUSMAeAxIFhLCoPEWMEsChuI8jE3EisWB28PfkUTAh16JXwSjY6PHEoMj5SNDUoeIZqbnCEXmFqhoQigoqIOY0+qqhFKCp2wA3sKtLVSFbgKJUEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/imagecorrupt.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhYABAAMQAAPbU1OS3t3EAAO3GxowrK6ZVVYMcHMqNja9jY55HR9Kbm3oODsF/f5U5ObhxcdupqX8AAP/////i4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5M0YxQ0U5QjE0NTgxMUUyOTc1M0M0QUM2ODQwMzJBQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5M0YxQ0U5QzE0NTgxMUUyOTc1M0M0QUM2ODQwMzJBQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkzRjFDRTk5MTQ1ODExRTI5NzUzQzRBQzY4NDAzMkFBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkzRjFDRTlBMTQ1ODExRTI5NzUzQzRBQzY4NDAzMkFBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJy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]]></data>
	</file>
	<file>
	  <filename>/images/imgicon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDwAPALMAAP///9/f4JzL8p3QFJqbmmaZAAGbASVjAJw4Kj04KQAAAAAAAAAAAAAAAAAAAAAAACH5BAAHAP8ALAAAAAAPAA8AAARREMhJKxA46yx3EQWhddg3DEUaYGRxvsfHXuA7HMZ4yW+Kz4JAaiAwFIyFQ2CSUhkCiICxUgAgjIiUhYJIbAG2UwIRljRT2exZYsC523Dc9xsBADs=]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/pp_button.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/img/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/img/close.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEQAACxEBf2RfkQAAAAd0SU1FB9IKEgsHLSVJtWIAAANtSURBVHjatZZNaF1FFMd/M/e++5ImC2nDc2UWRfEj2nXc2I0gVYoWJC6kIG78BKnuXHTtRlE3KkJBXEQsCF1IpbiRpi6ycCMEoaTdiNDSqtEk796Z8+Ei792+l5cYLDhw4TDM/f1nzv8MZ+B/HgGg1+udqKrqmRDCG91ulxACAO6OmeHuAG08/IZzqkpd14jIJymlSznni0AGrBwInVleXn5ycXERVcXMWpiItEIi0s6PrgkhUFUVq6urrywtLc0BPwIbQAoA8/Pzvr6+zvaFz/Arl6m3EioZz5ntFAm5DwoxJqwRbNvI0REzJBheZ+Tk0/ReeI2FhQXqun4Y+A3YLAGqqkJV8R8uYxWUUyV4idEhRrCmRFVprIM0YHOCJyVnR4OiqpRfX6A6/RZFUQDMAB2ACBBCwMxo/u5j2RAHQ8jZEQFVRUV34HESLgHcduLB6AzYoRw1M3WMzghcVVEPuCgSbV+4ZCOEOFYQwxGHwdC0UbgUgAoSDWnYF66mmMsEvBUYlpps1GxH6BeBfgxkUR75/Fvuf/djzIWE8dh7n/LE+Ss0Dikb2Zxszma149NukbEUaUehEVy1TcvWtV+YOfoQxz76CneYmuvx59U1JGfEwXMmByduprH7MXaCoUBp8Y6hg7SsnX2d5vZNukd6TM316N+6wcqZ02Nwy4ai+6doKBDqPAa3KEiyiZ92w3NwcvSDTZZkY3BPyrH3z9E90qO+fZP+rRtMz93L8Q++GIOrKlnDnicoR01OKWHSxRykb2hhzNx3lI2ra6y88xJJhOMffsnhBx+l8QLDUQO1gBUcbLLXmdyMlGKjfHdqsTU0a+bSq0vtrkUHlzAqmvPBHmTziTpXtTbnoykZhZsKGvn3KnJ3crXXJfLW0P3gIqDonv2gBBCRHaMbmbihan6nFG0feKE00wUxxr09aJqG7a0t8rMnKc5/g2WnjEYISl2DVaDuuCZIgVxGgmdy3CmQpio48txTzM7OYmaTAimli9euXz/xwKmXOfTim201uHvbgIbxaEcb7rYoCmZmZlhZWXEz+wlQwAEPgwVvxxifL4ri8Rjj2A5GQbtN3N06zexn4HvgHPAr8FcYrJ0GDgP3AIeA4i57vAJ94A/gd6AeChRABXQHaQt3KeCAAA2QAA27Xhhhr1fHf4CPxg7wD8S8aYqOtvexAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/img/dir.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAQAPcAAP///////v///f///P//+/7+///+/P//7f/+9P79+v79+f379/789v378f/66/z68Pr5+/r59/r49vv48Pn38/z44/v46Pv44vr36Pr35vv36fj19Pn14Pj24fr14vv13Pn03vb06vj13vj02/rx3Pny0ffy3vrxzPnyz/fx3fjy0Pjx2Pjwz/jxzvfvy/Tv1/Pv1+/v6PnvzO3v8u/u4/juxOru8fftyfPt0vXrwfDr1u7r2vfsvO/q1fXqvu3p1eXp7PPovunn3efm5e/mxPjmo+/lvPXmpujl2Ofk3+bk3evjve3itenivM7i9e/hqfHgnfHflNLf6uffuejds+Xeu9Pd5s7c7M/d6uzboerboO7bkvHafOfYr/HaiOPYouHZpebXnODXqODWoODVn+3VfOTTkfLSXt3RltfTkuDRiN7QjODQja/U1uzOWdLKs8bQoODMgePMa+7LUujLXeXLY+fLYbvK5ezLTpXS9Xnim+HIYuPHUqjJ6+TFUePFUeHGWOHFYd7GX+DGUd7GVeHFU9vFZeHETN3EVaPG6NvDX93DUtvEVtzDU9vCUuDCS9zCVKPIwrfBw9jCW8HAuNnCVNrCUdrAULTBi9S9UJ2/48a9dpu938m6eMm4fnvD837D8NS6T4LA8IDA8NK3S8u2VsmyVY604XW58quurp20o3O37na44Xa15mu27mm38bmtZnew5r6pWm+x7KatYWqx7Wex6L+kP2is7Wau5Gis5buiN16p5Faq71+l3mqg4WKogFah5XSdtKGTXl6Z3ZuSYZWTU0qa4UeW51GS25KKXkSQ4VKIyD2K2ot8JntuMf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHANAALAAAAAAVABAAAAj/AKFBw2FCoEAEBhMqhCbAwo4XE6AtIHEAwEKFCSrEUAKDxZ1knKRIEGDx4gMPHlI40AOMWbNgsRJdsTEgAIACBjVw4FBCBiZawnrZ4nVMVx9NWCgQiAABGggQLVpU8SQLlipWr3L5coJrGbFTQDYwGIGiRhMxajKVKrUpEihXrVbVQvZrhoEMKnIsAUNmDSNGlkLVSdPm0yhUs5AEgebCB5EpY9CwmeSIEKE/c87AySPKShYdAjEYYULlixlDly414sMHzy1jkrr0ULjiiZYwcRQpggTp0CFnxd78uKjgBpQtcgAFCuRm1zNKQi4abMAjShk7fugoSzVEukILR7xwEiE1LIn3ix+KdKJxXnqCENIDAgA7]]></data>
	</file>
	<file>
	  <filename>/img/home.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH1QoOFCUTUyrSOwAAAetJREFUOMuVk79rU1EUgL97+95L00DyJKBVh2RRexNoVawRXByMQhOnh9RKJ5GioxhcOrRuwan+GOrUJYv1x2AT8A/wPxB5W1zEWtvwYlGJIXnXIfbZl1AhZ7pczvfdcw7nwgHhKVWsgK6A9pR6yDCxB3tKaU+pPUlxaHixOKPLN2/8VyL64ZrrbhSUYv3cWbYnTnHk8DgnvCZTa2vUXJeCUtcOuW51QLAfflOcYff4MZTKMhaN0mq1GNv8SrZcHpCIfrh6+xadZJJ0Kk0qlQJAa2i32+zW65wslUISsR9+96BExzDJ5S5g23bQmtYaAN/3+bm1RXJuLpCICuiCUrx/VMZrNjk/nSMejyOECAl83w/OhhCM5vPUXBcDuAOsTp0+w/3SPTaqbwPwycozVh4/RYsRdKeFMEbR3d8sLy3R7qXMynl4vjCZIRFPAKDUBJmMIpvN9F4UkpH0ld7EU3mQFlprFiYzzMO67O/TsixM08QwjOD+S+MHAB/qO3S7fpALMCCQUiKlxJKfAehg8fFTA4Bv3i86IhJaJGNgs/4Oz+coAJcuTnM1GkPqcS5Lk+1NQhUY/RX8m37vpe/eDqLZOHD1A0EkEsG2bRKJBAKJEBCLxXAcZwCyLCv8F67POq8Ah+Fi9eWL13f/AFb41aOFu4AaAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/img/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/img/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/img/reload.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMiSURBVDiNbVJNbFRlFD33e++V+a0zbQdbqLYKhhKmoaIzjX/RmEY3xGBYqLxEjJCB8LNhBxsMTQwRdGGi4AOjMUwlmDQBN/wEIZLUwqtx0dCS1NLGAUY7tB3ozLTz3vu+66LzkllwkpvcxT0nJ+dcYmb4SGWyzzTo2hEQ3vSkatWEmCfCuOPKEwAu2Jbp1t0eBHCCfIF0JrtF08RAT9cqfV1ns9HWFAGYUShWMDJ2v3xn+qEnFe+2LfNselc2w4zvAMSImZHKZNcbuhjZ2tcdiseC0InQHA0gHNARDRkIGgIzxUUczw5XCsWKHQ019D4uVw1mNBEz49U9Z0/1rGv7NBgwxK3RHKquB0PX5JrVscW+9PPh3vWtpAmCEIRfrk2ot15sFwe+vuo4rmzRAYCZP7wzXRCup1gxLzLjM8eVZ8anZ5MT9+aPXu9o7tq3dVMoEQvh43e7RC0GAqAEAEipwlXH85IvPPuDlOoRgEHbMvO2ZV7549uPXhqdLOzdfewS7j8sYXqmDKkYAAMACyyvqumpSH9jJPBVZ/vKbgBTdWnruiZ2bnsn6XY+HUWicQU0Qb4D1mt38V8/37yAJ+O0J9VrF4cnq1ftqSXfvOOqAAD2W6gCMGoErpvfAOwE4D5BWLct854v4J0/+r4GEJgZF+1/1Knzf+WkVD22ZRbrWYezY6tK5aWO30fGbwCI6QBABBAR7v5XhiEYJwf/JABf1JNTmWyYiO72blx7Jj8zlwKgAagKABBEBAAdiRBWt4Tx5f63qa0lcuyVPT/fSmWy6ZrG9hWGrufyswfyheLrmkaubZmuWHZAeFxxcWFoij2P0b4yisM73gh90Jd8ubU5ci29a8A1dPGNVDI+92gBTY1B0oQYBAD/kaj/x6Glidzc5KXhyc7Mlk3hRCyI7rUJeq49HiqWXfw7W4LjeBQJGjh3ebTiSXUEAJYfSTFN5OZO3zy5LfmgsPBJ//c35o8P3CwN384jP1tG1ZUQRCjMl+S5y6OLUqmMbZljAOC38BOA7bZlci0wA8B7DYa2VzFvkFLFDV2bIcJQ1ZGHbMv82w/3fy5VdmoTZczGAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cg==]]></data>
	</file>
	<file>
	  <filename>/JMFilePicker.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokY2ZnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQpkZWZpbmUoJ0pNRlBfVEhVTUJOQUlMU19QQVRIJywgY21zX2pvaW5fcGF0aCgkY2ZnWyd1cGxvYWRzX3BhdGgnXSAsICdKTUZpbGVQaWNrZXJUaHVtYnMnKSk7DQoNCi8qKg0KICogQ2xhc3MgZGVmaW5pdGlvbiBhbmQgbWV0aG9kcyBmb3IgSk1GaWxlUGlja2VyDQogKg0KICogQHBhY2thZ2UgQ01TTW9kdWxlDQogKiBAbGljZW5zZSBHUEwNCiAqLw0KDQovKioNCiAqIE1haW4gY2xhc3Mgb2YgdGhlIEpNRmlsZVBpY2tlciBNb2R1bGUNCiAqDQogKiBAYXV0aG9yIEdlb3JnIEJ1c2NoIChOYU4pDQogKiBAY29weXJpZ2h0IDIwMTAtMjAxMiBHZW9yZyBCdXNjaCAoTmFOKQ0KICogQHZlcnNpb24gMS4zLjMNCiAqDQogKiBAcGFja2FnZSBDTVNNb2R1bGUNCiAqIEBsaWNlbnNlIEdQTA0KICovDQpjbGFzcyBKTUZpbGVQaWNrZXIgZXh0ZW5kcyBDTVNNb2R1bGUNCnsNCgkvKioNCgkgKiBAYWNjZXNzIHByb3RlY3RlZA0KCSAqIEB2YXIgYm9vbGVhbg0KCSAqIEBpZ25vcmUNCgkgKi8NCglwcm90ZWN0ZWQgJF9pc0FkbWluOw0KCQ0KCS8qKg0KCSAqIEBhY2Nlc3MgcHJvdGVjdGVkDQoJICogQHZhciBib29sZWFuDQoJICogQGlnbm9yZQ0KCSAqLw0KCXByb3RlY3RlZCAkX2xvYWRlZDsNCgkNCgkvKioNCgkgKiBAYWNjZXNzIHByb3RlY3RlZA0KCSAqIEB2YXIgc3RyaW5nDQoJICogQGlnbm9yZQ0KCSAqLw0KCXByb3RlY3RlZCAkX3VzZXJuYW1lOw0KDQogIHByaXZhdGUgZnVuY3Rpb24gX2luaXRpYWxpemUoKQ0KICB7DQogICAgJHRoaXMtPl9hdXRvbG9hZF9yZWdpc3RlcigpOw0KICAgICR0aGlzLT5fbG9hZGVkID0gZmFsc2U7DQogIH0NCg0KICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2F1dG9sb2FkX3JlZ2lzdGVyKCkNCiAgew0KICAgIHNwbF9hdXRvbG9hZF9yZWdpc3RlcihhcnJheSgkdGhpcywgJ19hdXRvX2xvYWQnKSk7ICAgIA0KICB9DQogICAgDQoNCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9hdXRvX2xvYWQoJGNsYXNzKQ0KICB7DQogICAgJF9mbiA9IGNtc19qb2luX3BhdGgoDQogICAgICAgICAgICAgICAgICAgICAgICAgIGRpcm5hbWUoX19GSUxFX18pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAnbGliJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgImNsYXNzLnskY2xhc3N9LnBocCINCiAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICBpZiggZmlsZV9leGlzdHMoJF9mbikgKQ0KICAgIHsNCiAgICAgIHJlcXVpcmVfb25jZSgkX2ZuKTsNCiAgICAgIHJldHVybjsNCiAgICB9DQogICAgDQogICAgcmV0dXJuOw0KICB9DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvcg0KCSAqIEBpZ25vcmUNCgkgKi8NCglmdW5jdGlvbiBfX2NvbnN0cnVjdCgpDQoJew0KICAgICR0aGlzLT5faW5pdGlhbGl6ZSgpOw0KICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignam1mcF9qc2xvYWRlcicsIGFycmF5KCdqbWZwX3NtYXJ0eV9wbHVnaW5zJywgJ2ptZnBfanNsb2FkZXInKSk7DQogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2ptZnBfY21zMicsIGFycmF5KCdqbWZwX3NtYXJ0eV9wbHVnaW5zJywgJ2ptZnBfY21zMicpKTsNCiAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignam1mcCcsIGFycmF5KCdqbWZwX3NtYXJ0eV9wbHVnaW5zJywgJ0pNRmlsZVBpY2tlcicpKTsNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOw0KCX0NCgkNCgkvKioNCgkgKiBAbGluayBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnL2FwaWRvYy9DTVMvQ01TTW9kdWxlLmh0bWwjR2V0TmFtZQ0KCSAqIEBpZ25vcmUNCgkgKi8NCglmdW5jdGlvbiBHZXROYW1lKCkNCgl7DQoJCXJldHVybiAnSk1GaWxlUGlja2VyJzsNCgl9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI0dldEZyaWVuZGx5TmFtZQ0KCSAqIEBpZ25vcmUNCgkgKi8NCglmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQ0KCXsNCgkJcmV0dXJuICR0aGlzLT5MYW5nKCdKTUZpbGVQaWNrZXInKTsNCgl9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI0dldFZlcnNpb24NCgkgKiBAaWdub3JlDQoJICovDQoJZnVuY3Rpb24gR2V0VmVyc2lvbigpDQoJew0KCQlyZXR1cm4gJzEuMC4xJzsNCgl9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI0dldEhlbHANCgkgKiBAaWdub3JlDQoJICovDQoJZnVuY3Rpb24gR2V0SGVscCgpDQoJew0KICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdyb290X3VybCcsICRjb25maWdbJ3Jvb3RfdXJsJ10pOw0KICAgIHJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdoZWxwLnRwbCcpOw0KCX0NCgkNCgkvKioNCgkgKiBAbGluayBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnL2FwaWRvYy9DTVMvQ01TTW9kdWxlLmh0bWwjR2V0QXV0aG9yDQoJICogQGlnbm9yZQ0KCSAqLw0KCWZ1bmN0aW9uIEdldEF1dGhvcigpDQoJew0KCQlyZXR1cm4gJ0pvIE1vcmcnOw0KCX0NCgkNCgkvKioNCgkgKiBAbGluayBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnL2FwaWRvYy9DTVMvQ01TTW9kdWxlLmh0bWwjR2V0Q2hhbmdlTG9nDQoJICogQGlnbm9yZQ0KCSAqLw0KCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpDQoJew0KICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICByZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY2hhbmdlbG9nLnRwbCcpOw0KCX0NCgkNCgkvKioNCgkgKiBAbGluayBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnL2FwaWRvYy9DTVMvQ01TTW9kdWxlLmh0bWwjSGFzQWRtaW4NCgkgKiBAaWdub3JlDQoJICovDQoJZnVuY3Rpb24gSGFzQWRtaW4oKQ0KCXsNCgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBKTUZpbGVQaWNrZXInKTsNCgl9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI0dldEFkbWluU2VjdGlvbg0KCSAqIEBpZ25vcmUNCgkgKi8NCglmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQ0KCXsNCgkJcmV0dXJuICdleHRlbnNpb25zJzsNCgl9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI0dldEFkbWluRGVzY3JpcHRpb24NCgkgKiBAaWdub3JlDQoJICovDQoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpDQoJew0KCQlyZXR1cm4gJHRoaXMtPmxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsNCgl9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI1Zpc2libGVUb0FkbWluVXNlcg0KCSAqIEBpZ25vcmUNCgkgKi8NCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQ0KCXsNCgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBKTUZpbGVQaWNrZXInKTsNCgl9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI01pbmltdW1DTVNWZXJzaW9uDQoJICogQGlnbm9yZQ0KCSAqLw0KCWZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkNCgl7DQoJCXJldHVybiAiMS4xMiI7DQoJfQ0KCQ0KCQ0KCS8qKg0KCSAqIEBsaW5rIGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcvYXBpZG9jL0NNUy9DTVNNb2R1bGUuaHRtbCNJbnN0YWxsUG9zdE1lc3NhZ2UNCgkgKiBAaWdub3JlDQoJICovDQoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdF9pbnN0YWxsJywgJHRoaXMtPkdldFZlcnNpb24oKSk7DQoJfQ0KCQ0KCS8qKg0KCSAqIEBsaW5rIGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcvYXBpZG9jL0NNUy9DTVNNb2R1bGUuaHRtbCNVbmluc3RhbGxQb3N0TWVzc2FnZQ0KCSAqIEBpZ25vcmUNCgkgKi8NCglmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RfdW5pbnN0YWxsJywgJHRoaXMtPkdldFZlcnNpb24oKSk7DQoJfQ0KCQ0KCS8qKg0KCSAqIEBsaW5rIGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcvYXBpZG9jL0NNUy9DTVNNb2R1bGUuaHRtbCNVbmluc3RhbGxQcmVNZXNzYWdlDQoJICogQGlnbm9yZQ0KCSAqLw0KCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQ0KCXsNCgkJcmV0dXJuICR0aGlzLT5MYW5nKCdjb25maXJtX3VuaW5zdGFsbCcpOw0KCX0NCgkNCgkvKioNCgkgKiBAbGluayBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnL2FwaWRvYy9DTVMvQ01TTW9kdWxlLmh0bWwjSGFuZGxlc0V2ZW50cw0KCSAqIEBpZ25vcmUNCgkgKi8NCglmdW5jdGlvbiBIYW5kbGVzRXZlbnRzKCkNCgl7DQoJCXJldHVybiBmYWxzZTsNCgl9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI0lzUGx1Z2luTW9kdWxlDQoJICogQGlnbm9yZQ0KCSAqLw0KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkNCgl7DQoJCXJldHVybiBmYWxzZTsNCgl9DQogIA0KICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQ0KICB7DQogICAgaWYoIWlzX2RpcihKTUZQX1RIVU1CTkFJTFNfUEFUSCkpDQogICAgew0KICAgICAgQG1rZGlyKEpNRlBfVEhVTUJOQUlMU19QQVRILCAwNzU1KTsNCiAgICB9DQogICAgDQogICAgJHVzZXJvcHMgICAgICAgID0gY21zbXMoKS0+R2V0VXNlck9wZXJhdGlvbnMoKTsNCiAgICAkdGhpcy0+X2lzQWRtaW4gPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdqbWZwX2R1bW15X3Blcm1pc3Npb24nKTsNCiAgICANCiAgICBpZigkdXNlciA9ICR1c2Vyb3BzLT5Mb2FkVXNlckJ5SWQoZ2V0X3VzZXJpZChmYWxzZSkpKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fdXNlcm5hbWUgPSAkdXNlci0+dXNlcm5hbWU7DQogICAgfQ0KICAgIA0KICB9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI0RvQWN0aW9uDQoJICogQGlnbm9yZQ0KCSAqLw0KCWZ1bmN0aW9uIERvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkID0gJycpDQoJew0KCQlzd2l0Y2goJGFjdGlvbikNCgkJew0KCQkJY2FzZSAndXBsb2FkJzoNCgkJCWNhc2UgJ3NhdmVQcmVmcyc6DQoJCQljYXNlICdmaWxlQnJvd3Nlcic6DQoJCQljYXNlICdmaWxlcGlja2VyJzoNCgkJCWNhc2UgJ2RlZmF1bHRhZG1pbic6DQoJCQljYXNlICdyZWxvYWREcm9wZG93bic6DQoJCQkJcGFyZW50OjpEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdkZWxldGUnOg0KCQkJCXVuc2V0KCRwYXJhbXNbJ2FjdGlvbiddKTsNCgkJCQlwYXJlbnQ6OkRvQWN0aW9uKCdmaWxlQnJvd3NlcicsICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsNCgkJCQlicmVhazsNCgkJCWRlZmF1bHQ6IGJyZWFrOw0KCQl9DQoJfQ0KCQ0KCS8qKg0KCSAqIEBsaW5rIGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcvYXBpZG9jL0NNUy9DTVNNb2R1bGUuaHRtbCNIYXNDYXBhYmlsaXR5DQoJICogQGlnbm9yZQ0KCSAqLw0KCWZ1bmN0aW9uIEhhc0NhcGFiaWxpdHkoJGNhcGFiaWxpdHksJHBhcmFtcyA9IGFycmF5KCkpDQoJew0KCQlzd2l0Y2goICRjYXBhYmlsaXR5ICkNCgkJew0KCQkJY2FzZSAnY29udGVudGJsb2Nrcyc6DQoJCQljYXNlICdjb250ZW50X2F0dHJpYnV0ZXMnOg0KIAkJCQlyZXR1cm4gVFJVRTsNCgkJCWRlZmF1bHQ6DQoJCQkJcmV0dXJuIEZBTFNFOw0KCQl9DQoJfQ0KICANCiAgZnVuY3Rpb24gR2V0Q29udGVudEJsb2NrRmllbGRJbnB1dCgkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsIENvbnRlbnRCYXNlICRjb250ZW50X29iaikNCiAgew0KICAgIC8vJGFkZGluZyA9ICgkYWRkaW5nIHx8ICgkY29udGVudF9vYmotPklkKCkgPCAxKSkgPyBUUlVFIDogRkFMU0U7IC8vIGhhY2sgZm9yIHRoZSBjb3JlLg0KICAgIGlmKCBlbXB0eSgkYmxvY2tOYW1lKSApIHJldHVybiBGQUxTRTsNCg0KICAgIGlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBKTUZpbGVQaWNrZXInKSkNCiAgICB7DQogICAgICBpZihpc3NldCgkcGFyYW1zWydzbWFydHknXSkgJiYgam1mcF91dGlsczo6SXNUcnVlKCRwYXJhbXNbJ3NtYXJ0eSddKSkNCiAgICAgIHsNCiAgICAgICAgZm9yZWFjaCgkcGFyYW1zIGFzICRrPT4kdikNCiAgICAgICAgew0KICAgICAgICAgICRwYXJhbXNbJGtdID0gJHRoaXMtPkRvU21hcnR5KCR2KTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgDQogICAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUZpbGVQaWNrZXJJbnB1dCgkdGhpcywgJycsIHN0cl9yZXBsYWNlKCcgJywgJ18nLCAkYmxvY2tOYW1lKSwgJHZhbHVlLCAkcGFyYW1zKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuOw0KICB9DQoJDQoJLyoqDQoJICogQGxpbmsgaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9hcGlkb2MvQ01TL0NNU01vZHVsZS5odG1sI0dldENvbnRlbnRCbG9ja0lucHV0DQoJICogQGlnbm9yZQ0KCSAqLw0KCWZ1bmN0aW9uIEdldENvbnRlbnRCbG9ja0lucHV0KCRibG9ja25hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZyA9IGZhbHNlKQ0KICAgIHsNCgkJaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEpNRmlsZVBpY2tlcicpKQ0KCQl7DQoJCQlpZihpc3NldCgkcGFyYW1zWydzbWFydHknXSkgJiYgam1mcF91dGlsczo6SXNUcnVlKCRwYXJhbXNbJ3NtYXJ0eSddKSkNCgkJCXsNCgkJCQlmb3JlYWNoKCRwYXJhbXMgYXMgJGs9PiR2KQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1ska10gPSAkdGhpcy0+RG9TbWFydHkoJHYpOw0KCQkJCX0NCgkJCX0NCgkJCXJldHVybiAkdGhpcy0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCR0aGlzLCAnJywgc3RyX3JlcGxhY2UoJyAnLCdfJywkYmxvY2tuYW1lKSwgJHZhbHVlLCAkcGFyYW1zKTsNCgkJfQ0KCQlyZXR1cm47DQoJfQ0KCQ0KCQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTm90IHBhcnQgb2YgdGhlIENNU21zIG1vZHVsZSBBUEkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJDQoJLyoqDQoJICogQ3JlYXRlcyB0aGUgZmlsZXBpY2tlciBpbnB1dC4NCgkgKg0KCSAqIEBzaW5jZSAxLjANCgkgKiBAYWNjZXNzIHB1YmxpYw0KCSAqIEBkZXByZWNhdGVkDQoJICoNCgkgKiBAcGFyYW0gb2JqZWN0ICYkbW9kdWxlIC0gZGVwcmVjYXRlZA0KCSAqIEBwYXJhbSBzdHJpbmcgJGlkIC0gdGhlIGlkIG9mIHRoZSBtb2R1bGVpbnN0YW5jZSB0aGF0IGNyZWF0ZXMgdGhlIGZpbGVwaWNrZXIgaW5wdXQNCgkgKiBAcGFyYW0gc3RyaW5nICRuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGlucHV0IGZpZWxkDQoJICogQHBhcmFtIHN0cmluZyAkdmFsdWUgLSB0aGUgcHJlc2VsZWN0ZWQgdmFsdWUNCgkgKiBAcGFyYW0gYXJyYXkgJHBhcmFtcyAtIHRoZSBpbnB1dCBwYXJhbXMgKHBhcmFtX25hbWUgPT4gcGFyYW1fdmFsdWUpOjxiciAvPjx1bD4NCgkgKiAgICAgICAgPGxpPihzdHJpbmcpICAnZmV1X2FjY2VzcycgICAgICAgICAgICAgICA9PiBhIGNzdiBvZiBncm91cCBpZHMgb2YgdGhlIGZyb250ZW5kIHVzZXJzIG1vZHVsZSw8L2xpPg0KCSAqICAgICAgICA8bGk+KGJvb2xlYW4pICdyZXN0cmljdF91c2Vyc19kaXJhY2Nlc3MnID0+IHNldCB0byB0cnVlIGlmIHVzZXIgbWF5IG9ubHkgYWNjZXNzIGEgZGlyIG9mIGhpcyB1c2VybmFtZSAobm90aWNlOiB0aGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbjsgaW4gZnJvbnRlbmQgdGhpcyB3aWxsIGFsd2F5cyBiZSB0cnVlKSw8L2xpPg0KCSAqICAgICAgICA8bGk+KHN0cmluZykgICdoZWFkZXJfdGVtcGxhdGUnICAgICAgICAgID0+IHNwZWNpZnkgd2ljaCB0ZW1wbGF0ZSBzaG91bGQgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGh0bWwgb3V0cHV0IHRoYXQgd2lsbCBiZSBwbGFjZWQgaW4gdGhlICZsdDtoZWFkJmd0OyBzZWN0aW9uIChkZWZhdWx0IGlzIGhlYWRlci50cGwgb2YgdGhlIHNlbGVjdGVkIHRoZW1lIG9mIEpNRmlsZVBpY2tlcnMgcHJlZmVyZW5jZXMpLDwvbGk+DQoJICogICAgICAgIDxsaT4oc3RyaW5nKSAgJ2lucHV0X3RlbXBsYXRlJyAgICAgICAgICAgPT4gc3BlY2lmeSB3aWNoIHRlbXBsYXRlIHNob3VsZCBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgaW5wdXQgZWxlbWVudHMgKGRlZmF1bHQgaXMgaW5wdXQudHBsIG9mIHRoZSBzZWxlY3RlZCB0aGVtZSBvZiBKTUZpbGVQaWNrZXJzIHByZWZlcmVuY2VzKSw8L2xpPg0KCSAqICAgICAgICA8bGk+KHN0cmluZykgICd1cGxvYWRfdGVtcGxhdGUnICAgICAgICAgID0+IHNwZWNpZnkgd2ljaCB0ZW1wbGF0ZSBzaG91bGQgYmUgdXNlZCB0byBjcmVhdGUgdGhlIHVwbG9hZCBmb3JtIG9mIG1vZGUgZHJvcGRvd24gKGRlZmF1bHQgaXMgdXBsb2FkLnRwbCBvZiB0aGUgc2VsZWN0ZWQgdGhlbWUgb2YgSk1GaWxlUGlja2VycyBwcmVmZXJlbmNlcyksPC9saT4NCgkgKiAgICAgICAgPGxpPihzdHJpbmcpICAnZmlsZWJyb3dzZXJfdGVtcGxhdGUnICAgICA9PiBzcGVjaWZ5IHdpY2ggdGVtcGxhdGUgc2hvdWxkIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBmaWxlYnJvd3NlciBvdXRwdXQgKGRlZmF1bHQgaXMgZmlsZWJyb3dzZXIudHBsIG9mIHRoZSBzZWxlY3RlZCB0aGVtZSBvZiBKTUZpbGVQaWNrZXJzIHByZWZlcmVuY2VzKSw8L2xpPg0KCSAqICAgICAgICA8bGk+KHN0cmluZykgICdwcm9tcHQnICAgICAgICAgICAgICAgICAgID0+IHRoZSBwcm9tcHQgb2YgdGhlIGlucHV0IGZpZWxkLDwvbGk+DQoJICogICAgICAgIDxsaT4oc3RyaW5nKSAgJ21lZGlhX3R5cGUnICAgICAgICAgICAgICAgPT4gdGhlIG1lZGlhIHR5cGUgKGF0IHRoZSBtb21lbnQgb25seSBpbWFnZSAvIGZpbGUgYXJlIHN1cHBvcnRlZCksPC9saT4NCgkgKiAgICAgICAgPGxpPihtaXhlZCkgICAnZmlsZV9leHRlbnNpb25zJyAgICAgICAgICA9PiBhbiBhcnJheSBvciBhIGNzdiBvZiBhbGxvd2VkIGZpbGUgZXh0ZW5zaW9ucyAoZGVwcmVjYXRlZCksPC9saT4NCgkgKiAgICAgICAgPGxpPihtaXhlZCkgICAnZXhjbHVkZV9wcmVmaXgnICAgICAgICAgICA9PiBhbiBhcnJheSBvciBhIGNzdiBvZiBmaWxlIHByZWZpeGVzIHRoYXQgd2lsbCBiZSBleGNsdWRlZCAoZGVwcmVjYXRlZCksPC9saT4NCgkgKiAgICAgICAgPGxpPihtaXhlZCkgICAnZXhjbHVkZV9zdWZpeCcgICAgICAgICAgICA9PiBhbiBhcnJheSBvciBhIGNzdiBvZiBmaWxlIHN1ZmZpeGVzIHRoYXQgd2lsbCBiZSBleGNsdWRlZCAoZGVwcmVjYXRlZCksPC9saT4NCgkgKiAgICAgICAgPGxpPihtaXhlZCkgICAnaW5jbHVkZV9wcmVmaXgnICAgICAgICAgICA9PiBhbiBhcnJheSBvciBhIGNzdiBvZiBmaWxlIHByZWZpeGVzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCAoZGVwcmVjYXRlZCksPC9saT4NCgkgKiAgICAgICAgPGxpPihtaXhlZCkgICAnaW5jbHVkZV9zdWZpeCcgICAgICAgICAgICA9PiBhbiBhcnJheSBvciBhIGNzdiBvZiBmaWxlIHN1ZmZpeGVzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCAoZGVwcmVjYXRlZCksPC9saT4NCgkgKiAgICAgICAgPGxpPihib29sZWFuKSAnc2hvd19zdWJkaXJzJyAgICAgICAgICAgICA9PiBzZXQgdG8gdHJ1ZSBpZiB1c2VyIG1heSBicm93c2Ugc3ViZGlycyAobm90aWNlOiB0aGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbik8L2xpPg0KCSAqICAgICAgICA8bGk+KHN0cmluZykgICdtb2RlJyAgICAgICAgICAgICAgICAgICAgID0+IGRyb3Bkb3duL2Jyb3dzZXIsPC9saT4NCgkgKiAgICAgICAgPGxpPihib29sZWFuKSAnYWxsb3dfbm9uZScgICAgICAgICAgICAgICA9PiBzZXQgdG8gZmFsc2UgaWYgdGhlIG9wdGlvbiAibm9uZSIgc2hvdWxkIG5vdCBiZSBzaG93biAobm90aWNlOiB0aGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbiksPC9saT4NCgkgKiAgICAgICAgPGxpPihib29sZWFuKSAnbG9ja19pbnB1dCcgICAgICAgICAgICAgICA9PiBzZXQgdG8gZmFsc2UgaWYgdXNlciBtYXkgZW50ZXIgdGhlIHBhdGggaW4gdGhlIGlucHV0ZmllbGQgKCdtb2RlJz0+J2Jyb3dzZXInLCAnbWVkaWFfdHlwZScgPT4gJ2ZpbGUnKSAobm90aWNlOiB0aGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbiksPC9saT4NCgkgKiAgICAgICAgPGxpPihib29sZWFuKSAndXBsb2FkJyAgICAgICAgICAgICAgICAgICA9PiBzZXQgdG8gdHJ1ZSBpZiB1c2VyIG1heSB1cGxvYWQgZmlsZXMgKG5vdGljZTogdGhpcyBoYXMgbm8gZWZmZWN0IGlmIHlvdSBhcmUgYWRtaW4gb3IgaGF2ZSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBmaWxlcyksPC9saT4NCgkgKiAgICAgICAgPGxpPihib29sZWFuKSAnZGVsZXRlJyAgICAgICAgICAgICAgICAgICA9PiBzZXQgdG8gdHJ1ZSBpZiB1c2VyIG1heSBkZWxldGUgZmlsZXMvZGlycyAobm90aWNlOiB0aGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbiBvciBoYXZlIHBlcm1pc3Npb24gdG8gbW9kaWZ5IGZpbGVzKSw8L2xpPg0KCSAqICAgICAgICA8bGk+KGJvb2xlYW4pICdjcmVhdGVfZGlycycgICAgICAgICAgICAgID0+IHNldCB0byB0cnVlIGlmIHVzZXIgbWF5IGNyZWF0ZSBkaXJzIChub3RpY2U6IHRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluIG9yIGhhdmUgcGVybWlzc2lvbiB0byBtb2RpZnkgZmlsZXMpLDwvbGk+DQoJICogICAgICAgIDxsaT4oc3RyaW5nKSAgJ2FkZF90eHQnICAgICAgICAgICAgICAgICAgPT4gYW55IGFkZGl0aW9uYWwgdGV4dCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGh0bWwgaW5wdXQgd2hlbiB0YWcgaXMgcmVuZGVyZWQsPC9saT4NCgkgKiAgICAgICAgPGxpPihpbnRlZ2VyKSAnc2l6ZScgICAgICAgICAgICAgICAgICAgICA9PiB0aGUgc2l6ZSBvZiB0aGUgdGV4dGlucHV0ICgnbW9kZScgPT4gJ2Jyb3dzZXInLCAnbWVkaWFfdHlwZScgPT4gJ2ZpbGUnIG9ubHkpLDwvbGk+DQoJICogICAgICAgIDxsaT4oaW50ZWdlcikgJ21heGxlbmd0aCcgICAgICAgICAgICAgICAgPT4gdGhlIG1heCBsZW5ndGggb2YgdGhlIHRleHRpbnB1dCAoJ21vZGUnID0+ICdicm93c2VyJywgJ21lZGlhX3R5cGUnID0+ICdmaWxlJyBvbmx5KSw8L2xpPg0KCSAqICAgICAgICA8bGk+KGludGVnZXIpICdzY2FsaW5nX3dpZHRoJyAgICAgICAgICAgID0+IHRoZSBkZWZhdWx0IHdpZHRoIG9mIGltYWdlcyB3aGVuIGFsbG93X3NjYWxpbmcgaXMgdHJ1ZSw8L2xpPg0KCSAqICAgICAgICA8bGk+KGludGVnZXIpICdzY2FsaW5nX2hlaWdodCcgICAgICAgICAgID0+IHRoZSBkZWZhdWx0IGhlaWdodCBvZiBpbWFnZXMgd2hlbiBhbGxvd19zY2FsaW5nIGlzIHRydWUsPC9saT4NCgkgKiAgICAgICAgPGxpPihib29sZWFuKSAnc2hvd190aHVtYmZpbGVzJyAgICAgICAgICA9PiBzZXQgdG8gdHJ1ZSBpZiB0aHVtYnMgc2hvdWxkIGFsc28gYmUgc2hvd24gYXMgcmVndWxhciBmaWxlcyw8L2xpPg0KCSAqICAgICAgICA8bGk+KGJvb2xlYW4pICdhbGxvd19zY2FsaW5nJyAgICAgICAgICAgID0+IHNldCB0byBmYWxzZSBpZiB1c2VyIG1heSBub3Qgc2NhbGUgdGhlIGltYWdlcyBvbiB1cGxvYWQsPC9saT4NCgkgKiAgICAgICAgPGxpPihib29sZWFuKSAnY3JlYXRlX3RodW1icycgICAgICAgICAgICA9PiBzZXQgdG8gZmFsc2UgaWYgdGhlIG1vZHVsZSBtYXkgbm90IGNyZWF0ZSB0aHVtYnMgZm9yIHRoZSBpbnB1dCw8L2xpPg0KCSAqICAgICAgICA8bGk+KGJvb2xlYW4pICdhbGxvd191cHNjYWxpbmcnICAgICAgICAgID0+IHNldCB0byB0cnVlIGlmIHVzZXIgbWF5IGVubGFyZ2UgdGhlIGltYWdlczwvbGk+DQoJICogICAgICAgIDxsaT4oYm9vbGVhbikgJ2ZvcmNlX3NjYWxpbmcnICAgICAgICAgICAgPT4gc2V0IHRvIHRydWUgdG8gZm9yY2UgcmVzaXppbmcgb2YgaW1hZ2UgdG8gYSBnaXZlbiBzaXplIGlmIHVzZXIgbWF5IG5vdCByZXNpemUgaW1hZ2VzPC9saT4NCgkgKiAgICAgICAgPGxpPihib29sZWFuKSAna2VlcF9hc3BlY3RyYXRpbycgICAgICAgICA9PiBzZXQgdG8gZmFsc2UgdG8gY2hhbmdlIGFzcGVjdCByYXRpbyB0byB0aGF0IG9uZSBvZiB0aGUgc2NhbGluZyBzaXplIG9uIHJlc2l6aW5nIGltYWdlczwvbGk+PC91bD4NCgkgKiBAcGFyYW0gaW50ZWdlciAkcmV0dXJuaWQgLSB0aGUgcGFnZSBpZCB0byByZXR1cm4gdG8gYW5kIHRvIHByaW50IG91dCB0aGUgcmVzdWx0IGFmdGVyIG1vZHVsZSBoYXMgZmluaXNoZWQgaXRzIHRhc2s7PGJyIC8+dXN1YWxseSB0aGlzIGhhcyBub3RoaW5nIHRvIHNheSBidXQgaXMgcmVxdWlyZWQgZm9yIGZyb250ZW5kIHVzYWdlIChtdXN0IGJlIGFuIGV4aXN0aW5nIGNvbnRlbnQgaWQpDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyAtIHRoZSBIVE1MIG91dHB1dCBvZiB0aGUgZmlsZXBpY2tlcg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBDcmVhdGVGaWxlUGlja2VySW5wdXQoDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkkbW9kdWxlLA0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJJGlkLA0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJJG5hbWUsDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkkdmFsdWUgPSAnJywNCgkJCQkJCQkJCQkJCQkJCQkJCQkJCSRwYXJhbXMgPSBhcnJheSgpLA0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJJHJldHVybmlkID0gJycNCgkJCQkJCQkJCQkJCQkJCQkJCQkJKQ0KCXsNCiAgICAkY2FjaGVfaWQgPSAnfG5zJy5tZDUoc2VyaWFsaXplKGZ1bmNfZ2V0X2FyZ3MoKSkpOw0KICAgIA0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCSRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICAkb3V0cHV0ID0gJyc7DQoJCQ0KCQlpZigNCgkJICAgIGNsYXNzX2V4aXN0cygnY21zX3V0aWxzJykgJiYNCiAgICAgICAgY21zX3V0aWxzOjpnZXRfY3VycmVudF9wYWdlaWQoKSAmJg0KICAgICAgICAkcmV0dXJuaWQgPT0gJycNCiAgICApDQoJCQkkcmV0dXJuaWQgPSBjbXNfdXRpbHM6OmdldF9jdXJyZW50X3BhZ2VpZCgpOw0KCQkNCgkJJG5hbWUgPSBzdHJfcmVwbGFjZSgnICcsICdfJywgJG5hbWUpOw0KICANCgkJaWYoISRwYXJhbXMgPSYgJHRoaXMtPlNldElucHV0UGFyYW1zKCcnLCAkaWQsICRuYW1lLCAkcGFyYW1zKSkNCgkJCXJldHVybiAkb3V0cHV0Ow0KCQkNCgkJJHZhbHVlICA9IGptZnBfdXRpbHM6OkNsZWFuVVJMKCR2YWx1ZSwgZmFsc2UpOw0KCQkNCg0KCQkNCgkJJHNtYXJ0eS0+YXNzaWduKCd0aHVtYl93aWR0aCcsIGNtc19zaXRlcHJlZnM6OmdldCgndGh1bWJuYWlsX3dpZHRoJywgOTYpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCd0aHVtYl9oZWlnaHQnLCBjbXNfc2l0ZXByZWZzOjpnZXQoJ3RodW1ibmFpbF9oZWlnaHQnLCA5NikpOw0KCQkNCgkJaWYoJHBhcmFtc1snbWVkaWFfdHlwZSddID09ICdpbWFnZScpDQoJCXsNCgkJCSR0aHVtYm5haWxfc2l6ZSA9IGptZnBfdXRpbHM6OkdldFRodW1ibmFpbFNpemUoJHZhbHVlKTsNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF90aHVtYl93aWR0aCcsICR0aHVtYm5haWxfc2l6ZVswXSk7DQoJCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfdGh1bWJfaGVpZ2h0JywgJHRodW1ibmFpbF9zaXplWzFdKTsNCgkJCSRzbWFydHktPmFzc2lnbignam1mcF90aHVtYnVybCcsIGptZnBfdXRpbHM6OkdldFRodW1ibmFpbCgkdmFsdWUsICRwYXJhbXNbJ2NyZWF0ZV90aHVtYnMnXSx0cnVlKSk7DQoJCX0NCgkJDQoJCSRzbWFydHktPmFzc2lnbignam1mcF92YWx1ZScsICR2YWx1ZSk7DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9sb2FkZWQnLCAkdGhpcy0+X2xvYWRlZCk7DQoJCQ0KCQkkaW5wdXQgICAgICAgPSAnJzsNCgkJJHVwbG9hZF9saW5rID0gJyc7DQoJCSRicm93c2VfbGluayA9ICcnOw0KCQkkY2xlYXJfbGluayAgPSAnJzsNCgkJJHJlbG9hZF9saW5rID0gJyc7DQoJCSR1cGxvYWRfdXJsICA9ICcnOw0KCQkkYnJvd3NlX3VybCAgPSAnJzsNCgkJJHJlbG9hZF91cmwgID0gJyc7DQoJCQ0KCQkkZmlsZWJyb3dzZXJfdXJsID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJHRoaXMtPkNyZWF0ZUxpbmsoKCRpZCA9PSAnJyA/ICdtMV8nIDogJGlkKSwgJ2ZpbGVCcm93c2VyJywgJHJldHVybmlkLCAnJyxhcnJheSgnbmFtZScgPT4kbmFtZSwnZGlyJz0+KCR0aGlzLT5faXNBZG1pbj8kcGFyYW1zWydkaXInXTonJykpLCcnLCB0cnVlKSk7DQoJCQ0KCQlpZigkcGFyYW1zWydtb2RlJ10gPT0gJ2Ryb3Bkb3duJykNCgkJew0KCQkJJGlucHV0ID0gam1mcF91dGlsczo6Q3JlYXRlRmlsZURyb3Bkb3duKA0KCQkJCSRpZCwNCgkJCQkkbmFtZSwNCgkJCQkkcGFyYW1zWydkaXInXSwNCgkJCQkkdmFsdWUsDQoJCQkJJHBhcmFtc1snZXhjbHVkZV9wcmVmaXgnXSwNCgkJCQkkcGFyYW1zWydpbmNsdWRlX3ByZWZpeCddLA0KCQkJCSRwYXJhbXNbJ2V4Y2x1ZGVfc3VmaXgnXSwNCgkJCQkkcGFyYW1zWydpbmNsdWRlX3N1Zml4J10sDQoJCQkJJHBhcmFtc1snZmlsZV9leHRlbnNpb25zJ10sDQoJCQkJJHBhcmFtc1snbWVkaWFfdHlwZSddLA0KCQkJCSRwYXJhbXNbJ2FsbG93X25vbmUnXSwNCgkJCQkkcGFyYW1zWydhZGRfdHh0J10pOw0KCQkJDQoJCQlpZigkcGFyYW1zWyd1cGxvYWQnXSkNCgkJCXsNCgkJCQkkdXBsb2FkX3VybCAgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdGhpcy0+Q3JlYXRlTGluaygoJGlkID09ICcnID8gJ20xXycgOiAkaWQpLCAndXBsb2FkJywgJHJldHVybmlkLCAkdGhpcy0+bGFuZygndXBsb2FkJyksYXJyYXkoJ25hbWUnID0+JG5hbWUsJ2Rpcic9PigkdGhpcy0+X2lzQWRtaW4/JHBhcmFtc1snZGlyJ106JycpKSwnJywgdHJ1ZSkpOw0KCQkJCSR1cGxvYWRfbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCgkaWQgPT0gJycgPyAnbTFfJyA6ICRpZCksICd1cGxvYWQnLCAkcmV0dXJuaWQsICR0aGlzLT5sYW5nKCd1cGxvYWQnKSwgYXJyYXkoJ25hbWUnID0+JG5hbWUpLCAnJywgZmFsc2UsIGZhbHNlLCAnaWQ9IicuJGlkLm11bmdlX3N0cmluZ190b191cmwoJG5hbWUpLidfSk1GUF91cGxvYWQiIGNsYXNzPSJKTUZQX2xpbmsgSk1GUF91cGxvYWQiJyk7DQoJCQl9DQoJCQkNCgkJCSRyZWxvYWRfdXJsICA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR0aGlzLT5DcmVhdGVMaW5rKCgkaWQgPT0gJycgPyAnbTFfJyA6ICRpZCksJ3JlbG9hZERyb3Bkb3duJywkcmV0dXJuaWQsJHRoaXMtPmxhbmcoJ3JlbG9hZF9kcm9wZG93bicpLGFycmF5KCduYW1lJyA9PiRuYW1lLCdkaXInPT4oJHRoaXMtPl9pc0FkbWluPyRwYXJhbXNbJ2RpciddOicnKSksJycsdHJ1ZSkpOw0KCQkJJHJlbG9hZF9saW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoKCRpZCA9PSAnJyA/ICdtMV8nIDogJGlkKSwgJ3JlbG9hZERyb3Bkb3duJywgJHJldHVybmlkLCAkdGhpcy0+bGFuZygncmVsb2FkX2Ryb3Bkb3duJyksIGFycmF5KCduYW1lJyA9PiRuYW1lKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2lkPSInLiRpZC5tdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lKS4nX0pNRlBfcmVsb2FkX2Ryb3Bkb3duIiBjbGFzcz0iSk1GUF9saW5rIEpNRlBfcmVsb2FkX2Ryb3Bkb3duIicpOw0KCQl9DQoJCWVsc2UgaWYoJHBhcmFtc1snbW9kZSddID09ICdicm93c2VyJykNCgkJew0KCQkJaWYoJHBhcmFtc1snbWVkaWFfdHlwZSddID09ICdpbWFnZScpDQoJCQkJJGlucHV0ID0gJzxpbnB1dCBpZD0iJy4kaWQubXVuZ2Vfc3RyaW5nX3RvX3VybCgkbmFtZSkuJyIgY2xhc3M9IkpNRlBfaW5wdXQgSk1GUF9oaWRkZW5pbnB1dCIgdHlwZT0iaGlkZGVuIiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJyAuICR2YWx1ZSAuICciIC8+JzsNCgkJCWVsc2UgaWYoJHBhcmFtc1snbWVkaWFfdHlwZSddID09ICdmaWxlJykNCgkJCQkkaW5wdXQgPSAnPGlucHV0IGlkPSInLiRpZC5tdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lKS4nIiBjbGFzcz0iSk1GUF9pbnB1dCBKTUZQX3RleHRpbnB1dCIgdHlwZT0idGV4dCInIC4gKCRwYXJhbXNbJ2xvY2tfaW5wdXQnXT8nIGRpc2FibGVkPSJkaXNhYmxlZCInOicnKSAuICgkcGFyYW1zWydhZGRfdHh0J10gIT0gJyc/ICcgJy4kcGFyYW1zWydhZGRfdHh0J10uJyAnOicnKSAuICgkcGFyYW1zWydzaXplJ10gIT0gJyc/JyBzaXplPSInIC4gJHBhcmFtc1snc2l6ZSddIC4gJyInOicnKSAuICgkcGFyYW1zWydtYXhsZW5ndGgnXSAhPSAnJz8nIG1heGxlbmd0aD0iJyAuICRwYXJhbXNbJ21heGxlbmd0aCddIC4gJyInOicnKSAuICcgbmFtZT0iJyAuICRpZC4kbmFtZSAuICciIHZhbHVlPSInIC4gJHZhbHVlIC4gJyIgLz4nOw0KCQkJDQoJCQkkYnJvd3NlX3VybCAgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdGhpcy0+Q3JlYXRlTGluaygoJGlkID09ICcnID8gJ20xXycgOiAkaWQpLCAnZmlsZUJyb3dzZXInLCAkcmV0dXJuaWQsICR0aGlzLT5sYW5nKCdicm93c2VfJy4kcGFyYW1zWydtZWRpYV90eXBlJ10pLGFycmF5KCduYW1lJyA9PiRuYW1lLCdkaXInPT4oJHRoaXMtPl9pc0FkbWluPyRwYXJhbXNbJ2RpciddOicnKSksJycsIHRydWUpKTsNCgkJCSRicm93c2VfbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCgkaWQgPT0gJycgPyAnbTFfJyA6ICRpZCksICdmaWxlQnJvd3NlcicsICRyZXR1cm5pZCwgJHRoaXMtPmxhbmcoJ2Jyb3dzZV8nLiRwYXJhbXNbJ21lZGlhX3R5cGUnXSksIGFycmF5KCduYW1lJyA9PiRuYW1lLCdkaXInPT4oJHRoaXMtPl9pc0FkbWluPyRwYXJhbXNbJ2RpciddOicnKSksICcnLCBmYWxzZSwgZmFsc2UsICdpZD0iJy4kaWQubXVuZ2Vfc3RyaW5nX3RvX3VybCgkbmFtZSkuJ19KTUZQX2Jyb3dzZSIgY2xhc3M9IkpNRlBfbGluayBKTUZQX2Jyb3dzZSInKTsNCgkJCWlmKCRwYXJhbXNbJ2FsbG93X25vbmUnXSkNCgkJCQkkY2xlYXJfbGluayA9ICc8YSBocmVmPSIjIiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJycuJGlkLm11bmdlX3N0cmluZ190b191cmwoJG5hbWUpLidcJykudmFsdWUgPSBcJ1wnO3JldHVybiBmYWxzZTsiIGlkPSInLiRpZC5tdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lKS4nX0pNRlBfY2xlYXIiIGNsYXNzPSJKTUZQX2xpbmsgSk1GUF9jbGVhciI+Jy4kdGhpcy0+bGFuZygnbm9uZScpLic8L2E+JzsNCgkJfQ0KCQkNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2ZpbGVicm93c2VyX3VybCcsICRmaWxlYnJvd3Nlcl91cmwpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfaW5wdXQnLCAkaW5wdXQpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfdXBsb2FkX3VybCcsICR1cGxvYWRfdXJsKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3VwbG9hZF9saW5rJywgJHVwbG9hZF9saW5rKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX3JlbG9hZF9kcm9wZG93bl91cmwnLCAkcmVsb2FkX3VybCk7DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9yZWxvYWRfZHJvcGRvd25fbGluaycsICRyZWxvYWRfbGluayk7DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9icm93c2VfdXJsJywgJGJyb3dzZV91cmwpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfYnJvd3NlX2xpbmsnLCAkYnJvd3NlX2xpbmspOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfY2xlYXJfbGluaycsICRjbGVhcl9saW5rKTsNCiAgDQoJCSRzbWFydHktPmFzc2lnbignam1mcF90aXRsZScsICR0aGlzLT5MYW5nKCdicm93c2VyX3RpdGxlJykpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2RlYnVnJywkY29uZmlnWydkZWJ1ZyddID8gJ3RydWUnIDogJ1wnXCcnKTsNCgkJDQoJCWZvcmVhY2goJHBhcmFtcyBhcyAkayA9PiAkdikNCgkJew0KCQkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwXycgLiAkaywgJHYpOw0KCQl9DQogICAgDQogICAgJHNtYXJ0eS0+YXNzaWduKCdqbWZwX25hbWUnLCAkbmFtZSk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2lucHV0aWQnLCAkaWQuJG5hbWUpOw0KICAgICRzbWFydHktPmFzc2lnbignam1mcF9jc3NpZCcsICRpZC5tdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lKSk7DQoNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2lkJywgKCRpZCA9PSAnJyA/ICdtMV8nIDogJGlkKSk7DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9yZWxvYWRfZGlyX3RleHQnLCAkdGhpcy0+bGFuZygncmVsb2FkX2RpcicpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX2NsZWFyX2NhY2hlX3RleHQnLCAkdGhpcy0+bGFuZygnY2xlYXJfY2FjaGUnKSk7DQoJCSRzbWFydHktPmFzc2lnbignam1mcF9jbG9zZV90ZXh0JywgJHRoaXMtPmxhbmcoJ2Nsb3NlJykpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfdXBsb2FkX3RleHQnLCAkdGhpcy0+bGFuZygndXBsb2FkJykpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2ptZnBfYnJvd3NlX3RleHQnLCAkdGhpcy0+bGFuZygnYnJvd3NlXycuJHBhcmFtc1snbWVkaWFfdHlwZSddKSk7DQoNCg0KICAgIGlmKCEkdGhpcy0+X2xvYWRlZCkNCgkJew0KDQogICAgICAkdGhlbWVOYW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCktPnRoZW1lTmFtZTsNCiAgICAgICRhZG1pbl91cmwgPSAkY29uZmlnWydhZG1pbl91cmwnXTsNCgkJCQkNCgkJCSRzbWFydHktPmFzc2lnbignZXhwYW5kX2ltZycsIA0KCQkJCSRhZG1pbl91cmwgLiAnL3RoZW1lcy8nIC4gJHRoZW1lTmFtZSAuICcvaW1hZ2VzL2ljb25zL3N5c3RlbS9leHBhbmQuZ2lmJywNCgkJCQknJywnJywnJywnc3lzdGVtaWNvbicNCgkJCSk7DQoJCQkkc21hcnR5LT5hc3NpZ24oJ2NvbnRyYWN0X2ltZycsIA0KCQkJCSRhZG1pbl91cmwgLiAnL3RoZW1lcy8nIC4gJHRoZW1lTmFtZSAuICcvaW1hZ2VzL2ljb25zL3N5c3RlbS9jb250cmFjdC5naWYnLA0KCQkJCScnLCcnLCcnLCdzeXN0ZW1pY29uJw0KCQkJKTsNCiAgICAgIA0KICAgICAgJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJ2hlYWRlci50cGwnKTsNCiAgICAgICR0ZW1wbGF0ZV9vYmogPSAkc21hcnR5LT5jcmVhdGVUZW1wbGF0ZSgkdGVtcGxhdGUsICRjYWNoZV9pZCk7DQogICAgICAkb3V0cHV0ID0gJHRlbXBsYXRlX29iai0+ZmV0Y2goKTsNCiAgICAgIA0KCQkJJHRoaXMtPl9sb2FkZWQgPSB0cnVlOw0KCQl9DQogICAgJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJ2lucHV0LnRwbCcpOw0KICAgICR0ZW1wbGF0ZV9vYmogPSAkc21hcnR5LT5jcmVhdGVUZW1wbGF0ZSgkdGVtcGxhdGUsICRjYWNoZV9pZCk7DQogICAgJG91dHB1dCAuPSAkdGVtcGxhdGVfb2JqLT5mZXRjaCgpOw0KICAgIA0KCQlyZXR1cm4gJG91dHB1dDsNCiAgDQoJfQ0KCQ0KCQ0KCS8qKg0KCSAqIEBzaW5jZSAxLjENCgkgKiBAYWNjZXNzIHByaXZhdGUNCgkgKiBAaWdub3JlDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiAmU2V0SW5wdXRQYXJhbXMoJG1vZHVsZSwgJGlkLCAkbmFtZSwgJHBhcmFtcyA9IGFycmF5KCkpDQoJew0KCQlnbG9iYWwgJENNU19BRE1JTl9QQUdFOw0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCUBzZXNzaW9uX3N0YXJ0KCk7DQoJCSRfU0VTU0lPTlsnSk1GUF8nIC4gKCRpZCA9PSAnJyA/ICdtMV8nIDogJGlkKS4kbmFtZV0gPSBhcnJheSgpOw0KCQkkcmVzdWx0ID0gZmFsc2U7DQoJCSRuYW1lID0gc3RyX3JlcGxhY2UoJyAnLCdfJywkbmFtZSk7DQoJCWlmKCEkc2Vzc2lvbl9wYXJhbXMgPSYgJHRoaXMtPkdldElucHV0UGFyYW1zKCRpZCwgJG5hbWUpKQ0KCQkJcmV0dXJuICRyZXN1bHQ7DQoJCQ0KCQlpZihpc3NldCgkcGFyYW1zWydwcm9tcHQnXSkpDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ3Byb21wdCddID0gJHBhcmFtc1sncHJvbXB0J107DQoJCQ0KCQlpZihpc3NldCgkcGFyYW1zWydoZWFkZXJfdGVtcGxhdGUnXSkpDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ2hlYWRlcl90ZW1wbGF0ZSddID0gJHBhcmFtc1snaGVhZGVyX3RlbXBsYXRlJ107DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3RlbXBsYXRlJ10pKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydpbnB1dF90ZW1wbGF0ZSddID0gJHBhcmFtc1snaW5wdXRfdGVtcGxhdGUnXTsNCgkJaWYoaXNzZXQoJHBhcmFtc1sndXBsb2FkX3RlbXBsYXRlJ10pKQ0KCQkJJHNlc3Npb25fcGFyYW1zWyd1cGxvYWRfdGVtcGxhdGUnXSA9ICRwYXJhbXNbJ3VwbG9hZF90ZW1wbGF0ZSddOw0KCQlpZihpc3NldCgkcGFyYW1zWydmaWxlYnJvd3Nlcl90ZW1wbGF0ZSddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snZmlsZWJyb3dzZXJfdGVtcGxhdGUnXSA9ICRwYXJhbXNbJ2ZpbGVicm93c2VyX3RlbXBsYXRlJ107DQoJCQ0KCQkkc2Vzc2lvbl9wYXJhbXNbJ21vZHVsZSddID0gJHRoaXMtPkdldE5hbWUoKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1snZmV1X2FjY2VzcyddKSkNCgkJew0KCQkJaWYoIWlzX2FycmF5KCRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSkpDQoJCQkJJHNlc3Npb25fcGFyYW1zWydmZXVfYWNjZXNzJ10gPSBqbWZwX3V0aWxzOjpDbGVhbkFycmF5KGV4cGxvZGUoJywnLCRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSkpOw0KCQkJZWxzZQ0KCQkJCSRzZXNzaW9uX3BhcmFtc1snZmV1X2FjY2VzcyddID0gam1mcF91dGlsczo6Q2xlYW5BcnJheSgkcGFyYW1zWydmZXVfYWNjZXNzJ10pOw0KCQl9DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcyddKSAmJiBqbWZwX3V0aWxzOjpJc0ZhbHNlKCRwYXJhbXNbJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcyddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1sncmVzdHJpY3RfdXNlcnNfZGlyYWNjZXNzJ10gPSBmYWxzZTsNCgkJDQoJCSRkaXIgPSAkc2Vzc2lvbl9wYXJhbXNbJ3N0YXJ0X2RpciddOw0KCQlpZihpc3NldCgkcGFyYW1zWydkaXInXSkgJiYgJHBhcmFtc1snZGlyJ10gIT0gJycpDQoJCXsNCgkJCSRkaXIgPSBqbWZwX3V0aWxzOjpDbGVhblVSTCgkcGFyYW1zWydkaXInXSxmYWxzZSk7DQoJCQlpZighJHRoaXMtPl9pc0FkbWluKQ0KCQkJCSRzZXNzaW9uX3BhcmFtc1snc3RhcnRfZGlyJ10gPSAkZGlyOw0KCQl9DQoJCQ0KCQlpZihpc3NldCgkQ01TX0FETUlOX1BBR0UpICYmICRDTVNfQURNSU5fUEFHRSA9PSAxKQ0KCQl7DQoJCQljaGVja19sb2dpbigpOw0KCQkJaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBKTUZpbGVQaWNrZXInKSkNCgkJCQlyZXR1cm4gJHJlc3VsdDsNCgkJCQ0KCQkJJHVzZXJuYW1lID0gJHRoaXMtPl91c2VybmFtZTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCWlmKCAhJGZldXNlcnMgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycgKSApDQoJCQkJcmV0dXJuICRyZXN1bHQ7DQoJCQlpZighJHVzZXJpZCA9ICRmZXVzZXJzLT5Mb2dnZWRJbklkKCkpDQoJCQkJcmV0dXJuICRyZXN1bHQ7DQoJCQlpZighJGdyb3VwcyA9ICRmZXVzZXJzLT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdXNlcmlkKSkNCgkJCQlyZXR1cm4gJHJlc3VsdDsNCgkJCSRhY2Nlc3MgPSBmYWxzZTsNCgkJCWZvcmVhY2goJGdyb3VwcyBhcyAkX2dyb3VwKQ0KCQkJew0KCQkJCWlmKGluX2FycmF5KCRfZ3JvdXBbJ2dyb3VwaWQnXSwkc2Vzc2lvbl9wYXJhbXNbJ2ZldV9hY2Nlc3MnXSkpDQoJCQkJew0KCQkJCQkkYWNjZXNzID0gdHJ1ZTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KCQkJaWYoISRhY2Nlc3MpDQoJCQkJcmV0dXJuICRyZXN1bHQ7DQoJCQkNCgkJCSR1c2VybmFtZSA9ICRmZXVzZXJzLT5HZXRVc2VyTmFtZSgkdXNlcmlkKTsNCgkJCSRwYXJhbXNbJ21lZGlhX3R5cGUnXSA9ICdpbWFnZSc7DQoJCQkkcGFyYW1zWydyZXN0cmljdF91c2Vyc19kaXJhY2Nlc3MnXSA9IHRydWU7DQoJCX0NCgkJDQoJCWlmKCEkdGhpcy0+X2lzQWRtaW4gJiYgJHNlc3Npb25fcGFyYW1zWydyZXN0cmljdF91c2Vyc19kaXJhY2Nlc3MnXSkNCgkJew0KCQkJaWYoIWluX2FycmF5KCR1c2VybmFtZSwgam1mcF91dGlsczo6Q2xlYW5BcnJheShleHBsb2RlKCcvJywkZGlyKSkpKQ0KCQkJCSRzZXNzaW9uX3BhcmFtc1snc3RhcnRfZGlyJ10gLj0gJy8nIC4gJGRpcjsNCgkJCWVsc2UNCgkJCQkkc2Vzc2lvbl9wYXJhbXNbJ3N0YXJ0X2RpciddID0gJGRpcjsNCgkJCQ0KCQkJJF9kaXIgPSBqbWZwX3V0aWxzOjpDbGVhblBhdGgoJHNlc3Npb25fcGFyYW1zWydzdGFydF9kaXInXSk7DQoJCQlAbWtkaXIoJF9kaXIsIDA3NTUsIHRydWUpOw0KCQkJaWYoIWlzX2RpcigkX2RpcikgfHwgIWlzX3JlYWRhYmxlKCRfZGlyKSkNCgkJCQlyZXR1cm4gJHJlc3VsdDsNCgkJfQ0KCQkNCgkJaWYoaXNzZXQoJHBhcmFtc1snbWVkaWFfdHlwZSddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snbWVkaWFfdHlwZSddID0gc3RydG9sb3dlcigkcGFyYW1zWydtZWRpYV90eXBlJ10pOw0KCQkNCgkJaWYoJHNlc3Npb25fcGFyYW1zWydtZWRpYV90eXBlJ10gPT0gJ2ZpbGUnKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXSA9IGFycmF5KCk7DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2ZpbGVfZXh0ZW5zaW9ucyddKSAmJiAkcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXSAhPSAnJykNCgkJew0KCQkJJF9maWxlX2V4dCA9IGptZnBfdXRpbHM6OkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsc3RydG9sb3dlcigkcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXSkpKTsNCgkJCWlmKCRzZXNzaW9uX3BhcmFtc1snbWVkaWFfdHlwZSddID09ICdpbWFnZScpDQoJCQkJJF9maWxlX2V4dCA9IGptZnBfdXRpbHM6OkNsZWFuQXJyYXkoYXJyYXlfaW50ZXJzZWN0KCRfZmlsZV9leHQsIGFycmF5KCdqcGcnLCdqcGVnJywnZ2lmJywncG5nJykpKTsNCgkJCWlmKGVtcHR5KCRfZmlsZV9leHQpKQ0KCQkJCSRfZmlsZV9leHQgPSAkc2Vzc2lvbl9wYXJhbXNbJ2ZpbGVfZXh0ZW5zaW9ucyddOw0KCQkJJHNlc3Npb25fcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXSA9ICRfZmlsZV9leHQ7DQoJCX0NCgkJaWYoaXNzZXQoJHBhcmFtc1snZXhjbHVkZV9wcmVmaXgnXSkpDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ2V4Y2x1ZGVfcHJlZml4J10gPSB0cmltKCRwYXJhbXNbJ2V4Y2x1ZGVfcHJlZml4J10pOw0KCQlpZihpc3NldCgkcGFyYW1zWydleGNsdWRlX3N1Zml4J10pKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydleGNsdWRlX3N1Zml4J10gPSB0cmltKCRwYXJhbXNbJ2V4Y2x1ZGVfc3VmaXgnXSk7DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2luY2x1ZGVfcHJlZml4J10pKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydpbmNsdWRlX3ByZWZpeCddID0gdHJpbSgkcGFyYW1zWydpbmNsdWRlX3ByZWZpeCddKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1snaW5jbHVkZV9zdWZpeCddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snaW5jbHVkZV9zdWZpeCddID0gdHJpbSgkcGFyYW1zWydpbmNsdWRlX3N1Zml4J10pOw0KCQkNCgkJaWYoaXNzZXQoJHBhcmFtc1snc2hvd19zdWJkaXJzJ10pICYmIGptZnBfdXRpbHM6OklzVHJ1ZSgkcGFyYW1zWydzaG93X3N1YmRpcnMnXSkpDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ3Nob3dfc3ViZGlycyddID0gdHJ1ZTsNCgkJZWxzZSBpZihpc3NldCgkcGFyYW1zWydzaG93X3N1YmRpcnMnXSkgJiYgam1mcF91dGlsczo6SXNGYWxzZSgkcGFyYW1zWydzaG93X3N1YmRpcnMnXSkgJiYgISR0aGlzLT5faXNBZG1pbikNCgkJCSRzZXNzaW9uX3BhcmFtc1snc2hvd19zdWJkaXJzJ10gPSBmYWxzZTsNCgkJDQoJCWlmKGlzc2V0KCRwYXJhbXNbJ21vZGUnXSkpDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ21vZGUnXSA9IHN0cnRvbG93ZXIoJHBhcmFtc1snbW9kZSddKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1snYWxsb3dfbm9uZSddKSAmJiBqbWZwX3V0aWxzOjpJc0ZhbHNlKCRwYXJhbXNbJ2FsbG93X25vbmUnXSkgJiYgISR0aGlzLT5faXNBZG1pbikNCgkJCSRzZXNzaW9uX3BhcmFtc1snYWxsb3dfbm9uZSddID0gZmFsc2U7DQoJCQ0KCQlpZihpc3NldCgkcGFyYW1zWydsb2NrX2lucHV0J10pICYmIGptZnBfdXRpbHM6OklzRmFsc2UoJHBhcmFtc1snbG9ja19pbnB1dCddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snbG9ja19pbnB1dCddID0gZmFsc2U7DQoJCWVsc2UgaWYoaXNzZXQoJHBhcmFtc1snbG9ja19pbnB1dCddKSAmJiBqbWZwX3V0aWxzOjpJc1RydWUoJHBhcmFtc1snbG9ja19pbnB1dCddKSAmJiAhJHRoaXMtPl9pc0FkbWluKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydsb2NrX2lucHV0J10gPSB0cnVlOw0KCQkNCgkJaWYoaXNzZXQoJHBhcmFtc1sndXBsb2FkJ10pICYmIGptZnBfdXRpbHM6OklzVHJ1ZSgkcGFyYW1zWyd1cGxvYWQnXSkgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmlsZW1hbmFnZW1lbnQnKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1sndXBsb2FkJ10gPSB0cnVlOw0KCQllbHNlIGlmKGlzc2V0KCRwYXJhbXNbJ3VwbG9hZCddKSAmJiBqbWZwX3V0aWxzOjpJc0ZhbHNlKCRwYXJhbXNbJ3VwbG9hZCddKSAmJiAhJHRoaXMtPl9pc0FkbWluKQ0KCQkJJHNlc3Npb25fcGFyYW1zWyd1cGxvYWQnXSA9IGZhbHNlOw0KCQkNCgkJaWYoaXNzZXQoJHBhcmFtc1snZGVsZXRlJ10pICYmIGptZnBfdXRpbHM6OklzVHJ1ZSgkcGFyYW1zWydkZWxldGUnXSkgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmlsZW1hbmFnZW1lbnQnKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snZGVsZXRlJ10gPSB0cnVlOw0KCQllbHNlIGlmKGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZSddKSAmJiBqbWZwX3V0aWxzOjpJc0ZhbHNlKCRwYXJhbXNbJ2RlbGV0ZSddKSAmJiAhJHRoaXMtPl9pc0FkbWluKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydkZWxldGUnXSA9IGZhbHNlOw0KCQkNCgkJaWYoaXNzZXQoJHBhcmFtc1snY3JlYXRlX2RpcnMnXSkgJiYgam1mcF91dGlsczo6SXNUcnVlKCRwYXJhbXNbJ2NyZWF0ZV9kaXJzJ10pICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpbGVtYW5hZ2VtZW50JykpDQoJCXsNCgkJCSRzZXNzaW9uX3BhcmFtc1snY3JlYXRlX2RpcnMnXSAgPSB0cnVlOw0KCQkJJHNlc3Npb25fcGFyYW1zWydzaG93X3N1YmRpcnMnXSA9IHRydWU7DQoJCX0NCgkJZWxzZSBpZihpc3NldCgkcGFyYW1zWydjcmVhdGVfZGlycyddKSAmJiBqbWZwX3V0aWxzOjpJc0ZhbHNlKCRwYXJhbXNbJ2NyZWF0ZV9kaXJzJ10pICYmICEkdGhpcy0+X2lzQWRtaW4pDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ2NyZWF0ZV9kaXJzJ10gPSBmYWxzZTsNCgkJDQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2FkZF90eHQnXSkpDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ2FkZF90eHQnXSA9IHRyaW0oJHBhcmFtc1snYWRkX3R4dCddKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1snc2l6ZSddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snc2l6ZSddID0gaW50dmFsKCRwYXJhbXNbJ3NpemUnXSk7DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ21heGxlbmd0aCddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snbWF4bGVuZ3RoJ10gPSBpbnR2YWwoJHBhcmFtc1snbWF4bGVuZ3RoJ10pOw0KCQlpZihpc3NldCgkcGFyYW1zWydzY2FsaW5nX3dpZHRoJ10pKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydzY2FsaW5nX3dpZHRoJ10gPSBpbnR2YWwoJHBhcmFtc1snc2NhbGluZ193aWR0aCddKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1snc2NhbGluZ19oZWlnaHQnXSkpDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ3NjYWxpbmdfaGVpZ2h0J10gPSBpbnR2YWwoJHBhcmFtc1snc2NhbGluZ19oZWlnaHQnXSk7DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ3Nob3dfdGh1bWJmaWxlcyddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snc2hvd190aHVtYmZpbGVzJ10gPSBpbnR2YWwoJHBhcmFtc1snc2hvd190aHVtYmZpbGVzJ10pOw0KCQlpZihpc3NldCgkcGFyYW1zWydhbGxvd19zY2FsaW5nJ10pKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydhbGxvd19zY2FsaW5nJ10gPSBpbnR2YWwoJHBhcmFtc1snYWxsb3dfc2NhbGluZyddKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1snY3JlYXRlX3RodW1icyddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snY3JlYXRlX3RodW1icyddID0gaW50dmFsKCRwYXJhbXNbJ2NyZWF0ZV90aHVtYnMnXSk7DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2FsbG93X3Vwc2NhbGluZyddKSkNCgkJCSRzZXNzaW9uX3BhcmFtc1snYWxsb3dfdXBzY2FsaW5nJ10gPSBpbnR2YWwoJHBhcmFtc1snYWxsb3dfdXBzY2FsaW5nJ10pOw0KCQlpZihpc3NldCgkcGFyYW1zWydmb3JjZV9zY2FsaW5nJ10pKQ0KCQkJJHNlc3Npb25fcGFyYW1zWydmb3JjZV9zY2FsaW5nJ10gPSBpbnR2YWwoJHBhcmFtc1snZm9yY2Vfc2NhbGluZyddKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1sna2VlcF9hc3BlY3RfcmF0aW8nXSkpDQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ2tlZXBfYXNwZWN0X3JhdGlvJ10gPSBpbnR2YWwoJHBhcmFtc1sna2VlcF9hc3BlY3RfcmF0aW8nXSk7DQoJCQ0KCQlpZigkc2Vzc2lvbl9wYXJhbXNbJ21vZGUnXSA9PSAnZHJvcGRvd24nKQ0KCQl7DQoJCQkkc2Vzc2lvbl9wYXJhbXNbJ2RpciddICAgICAgID0gJGRpcjsNCgkJCSRzZXNzaW9uX3BhcmFtc1snc3RhcnRfZGlyJ10gPSAkZGlyOw0KCQl9DQoJCQ0KCQkkX1NFU1NJT05bJ0pNRlBfaWRfJy4kbmFtZV0gPSAoJGlkID09ICcnID8gJ20xXycgOiAkaWQpOw0KCQkNCgkJJF9TRVNTSU9OWydKTUZQXycgLiAoJGlkID09ICcnID8gJ20xXycgOiAkaWQpLiRuYW1lXSA9ICRzZXNzaW9uX3BhcmFtczsNCgkJDQoJCSRzZXNzaW9uX3BhcmFtc1snZGlyJ10gPSAkZGlyOw0KCQlyZXR1cm4gJHNlc3Npb25fcGFyYW1zOw0KCX0NCgkNCgkNCgkvKioNCgkgKiBAc2luY2UgMS4xDQoJICogQGFjY2VzcyBwcm90ZWN0ZWQNCgkgKiBAaWdub3JlDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uICZHZXRJbnB1dFBhcmFtcygkaWQsICRuYW1lKQ0KCXsNCgkJJG5hbWUgICA9IHN0cl9yZXBsYWNlKCcgJywnXycsJG5hbWUpOw0KCQkkcGFyYW1zID0gYXJyYXkoDQoJCQknaWQnICAgICAgICAgICAgICAgICAgICAgICA9PiAkaWQsDQoJCQknbmFtZScgICAgICAgICAgICAgICAgICAgICA9PiAkbmFtZSwNCgkJCSdtb2R1bGUnICAgICAgICAgICAgICAgICAgID0+ICR0aGlzLT5HZXROYW1lKCksDQoJCQknc3RhcnRfZGlyJyAgICAgICAgICAgICAgICA9PiAnJywNCgkJCSdmZXVfYWNjZXNzJyAgICAgICAgICAgICAgID0+IGptZnBfdXRpbHM6OkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmZXVfYWNjZXNzJykpKSwNCgkJCSdyZXN0cmljdF91c2Vyc19kaXJhY2Nlc3MnID0+IGludHZhbCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVzdHJpY3RfdXNlcnNfZGlyYWNjZXNzJywgZmFsc2UpKSwNCgkJCSdwcm9tcHQnICAgICAgICAgICAgICAgICAgID0+ICcnLA0KCQkJJ21lZGlhX3R5cGUnICAgICAgICAgICAgICAgPT4gJ2ltYWdlJywNCgkJCSdmaWxlX2V4dGVuc2lvbnMnICAgICAgICAgID0+IGFycmF5KCdqcGcnLCdqcGVnJywnZ2lmJywncG5nJyksDQoJCQknZXhjbHVkZV9wcmVmaXgnICAgICAgICAgICA9PiAnJywNCgkJCSdleGNsdWRlX3N1Zml4JyAgICAgICAgICAgID0+ICcnLA0KCQkJJ2luY2x1ZGVfcHJlZml4JyAgICAgICAgICAgPT4gJycsDQoJCQknaW5jbHVkZV9zdWZpeCcgICAgICAgICAgICA9PiAnJywNCgkJCSdzaG93X3N1YmRpcnMnICAgICAgICAgICAgID0+IGludHZhbCgkdGhpcy0+X2lzQWRtaW4pLA0KCQkJJ21vZGUnICAgICAgICAgICAgICAgICAgICAgPT4gJ2Ryb3Bkb3duJywNCgkJCSdhbGxvd19ub25lJyAgICAgICAgICAgICAgID0+IHRydWUsDQoJCQknbG9ja19pbnB1dCcgICAgICAgICAgICAgICA9PiBpbnR2YWwoISR0aGlzLT5faXNBZG1pbiksDQoJCQkndXBsb2FkJyAgICAgICAgICAgICAgICAgICA9PiBpbnR2YWwoJHRoaXMtPl9pc0FkbWluIHx8ICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWxlbWFuYWdlbWVudCcsIGZhbHNlKSAmJiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRmlsZXMnKSkpLA0KCQkJJ2RlbGV0ZScgICAgICAgICAgICAgICAgICAgPT4gaW50dmFsKCR0aGlzLT5faXNBZG1pbiB8fCAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmlsZW1hbmFnZW1lbnQnLCBmYWxzZSkgJiYgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEZpbGVzJykpKSwNCgkJCSdjcmVhdGVfZGlycycgICAgICAgICAgICAgID0+IGludHZhbCgkdGhpcy0+X2lzQWRtaW4gfHwgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpbGVtYW5hZ2VtZW50JywgZmFsc2UpICYmICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBGaWxlcycpKSksDQoJCQknYWRkX3R4dCcgICAgICAgICAgICAgICAgICA9PiAnJywNCgkJCSdzaXplJyAgICAgICAgICAgICAgICAgICAgID0+ICcnLA0KCQkJJ21heGxlbmd0aCcgICAgICAgICAgICAgICAgPT4gJycsDQoJCQknc2NhbGluZ193aWR0aCcgICAgICAgICAgICA9PiBpbnR2YWwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NjYWxpbmdfd2lkdGgnLCAnJykpLA0KCQkJJ3NjYWxpbmdfaGVpZ2h0JyAgICAgICAgICAgPT4gaW50dmFsKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzY2FsaW5nX2hlaWdodCcsICcnKSksDQoJCQknc2hvd190aHVtYmZpbGVzJyAgICAgICAgICA9PiBpbnR2YWwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfdGh1bWJmaWxlcycsIGZhbHNlKSksDQoJCQknYWxsb3dfc2NhbGluZycgICAgICAgICAgICA9PiBpbnR2YWwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93X3NjYWxpbmcnLCBmYWxzZSkgfHwgJHRoaXMtPl9pc0FkbWluKSwNCgkJCSdjcmVhdGVfdGh1bWJzJyAgICAgICAgICAgID0+IGludHZhbCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3RodW1icycsIHRydWUpKSwNCgkJCSdhbGxvd191cHNjYWxpbmcnICAgICAgICAgID0+IGludHZhbCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfdXBzY2FsaW5nJywgZmFsc2UpIHx8ICR0aGlzLT5faXNBZG1pbiksDQoJCQknZm9yY2Vfc2NhbGluZycgICAgICAgICAgICA9PiBpbnR2YWwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZvcmNlX3NjYWxpbmcnLGZhbHNlKSksDQoJCQkna2VlcF9hc3BlY3RfcmF0aW8nICAgICAgICA9PiBpbnR2YWwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tlZXBfYXNwZWN0cmF0aW8nLHRydWUpKSk7DQoJCQ0KCQlnbG9iYWwgJENNU19BRE1JTl9QQUdFOw0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCSRyZXN1bHQgPSBmYWxzZTsNCgkJaWYoaXNzZXQoJENNU19BRE1JTl9QQUdFKSAmJiAkQ01TX0FETUlOX1BBR0UgPT0gMSkNCgkJew0KCQkJY2hlY2tfbG9naW4oKTsNCgkJCWlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgSk1GaWxlUGlja2VyJykpDQoJCQkJcmV0dXJuICRyZXN1bHQ7DQoJCQlpZighJHRoaXMtPl9pc0FkbWluICYmICRwYXJhbXNbJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcyddKQ0KCQkJCSRwYXJhbXNbJ3N0YXJ0X2RpciddID0gJHRoaXMtPl91c2VybmFtZTsNCgkJCQ0KCQkJJHBhcmFtc1snaW5wdXRfdGVtcGxhdGUnXSA9ICd0aGVtZXMvJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9hZG1pbl90aGVtZScsJ0RlZmF1bHQtQUpBWCcpLicvaW5wdXQudHBsJzsNCgkJCSRwYXJhbXNbJ2ZpbGVicm93c2VyX3RlbXBsYXRlJ10gPSAndGhlbWVzLycuJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfYWRtaW5fdGhlbWUnLCdEZWZhdWx0LUFKQVgnKS4nL2ZpbGVicm93c2VyLnRwbCc7DQoJCQkkcGFyYW1zWyd1cGxvYWRfdGVtcGxhdGUnXSA9ICd0aGVtZXMvJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9hZG1pbl90aGVtZScsJ0RlZmF1bHQtQUpBWCcpLicvdXBsb2FkLnRwbCc7DQoJCQkkcGFyYW1zWydoZWFkZXJfdGVtcGxhdGUnXSA9ICd0aGVtZXMvJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9hZG1pbl90aGVtZScsJ0RlZmF1bHQtQUpBWCcpLicvaGVhZGVyLnRwbCc7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlpZiggISRmZXVzZXJzID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnICkgKQ0KCQkJCXJldHVybiAkcmVzdWx0Ow0KCQkJaWYoISR1c2VyaWQgPSAkZmV1c2Vycy0+TG9nZ2VkSW5JZCgpKQ0KCQkJCXJldHVybiAkcmVzdWx0Ow0KCQkJaWYoISRncm91cHMgPSAkZmV1c2Vycy0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoJHVzZXJpZCkpDQoJCQkJcmV0dXJuICRyZXN1bHQ7DQoJCQkNCgkJCSRhY2Nlc3MgPSBmYWxzZTsNCgkJCWZvcmVhY2goJGdyb3VwcyBhcyAkX2dyb3VwKQ0KCQkJew0KCQkJCWlmKGluX2FycmF5KCRfZ3JvdXBbJ2dyb3VwaWQnXSwgJHBhcmFtc1snZmV1X2FjY2VzcyddKSkNCgkJCQl7DQoJCQkJCSRhY2Nlc3MgPSB0cnVlOw0KCQkJCQlicmVhazsNCgkJCQl9DQoJCQl9DQoJCQlpZighJGFjY2VzcykNCgkJCQlyZXR1cm4gJHJlc3VsdDsNCgkJCQ0KCQkJJHBhcmFtc1snaW5wdXRfdGVtcGxhdGUnXSA9ICd0aGVtZXMvJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9mcm9udGVuZF90aGVtZScsJ0RlZmF1bHQtQUpBWCcpLicvaW5wdXQudHBsJzsNCgkJCSRwYXJhbXNbJ2ZpbGVicm93c2VyX3RlbXBsYXRlJ10gPSAndGhlbWVzLycuJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfZnJvbnRlbmRfdGhlbWUnLCdEZWZhdWx0LUFKQVgnKS4nL2ZpbGVicm93c2VyLnRwbCc7DQoJCQkkcGFyYW1zWyd1cGxvYWRfdGVtcGxhdGUnXSA9ICd0aGVtZXMvJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9mcm9udGVuZF90aGVtZScsJ0RlZmF1bHQtQUpBWCcpLicvdXBsb2FkLnRwbCc7DQoJCQkkcGFyYW1zWydoZWFkZXJfdGVtcGxhdGUnXSA9ICd0aGVtZXMvJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9mcm9udGVuZF90aGVtZScsJ0RlZmF1bHQtQUpBWCcpLicvaGVhZGVyLnRwbCc7DQoJCQkkcGFyYW1zWydyZXN0cmljdF91c2Vyc19kaXJhY2Nlc3MnXSA9IHRydWU7DQoJCQkkcGFyYW1zWydzdGFydF9kaXInXSA9ICRmZXVzZXJzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywgJ2ZldXNlcnMnKSAuICcvJyAuICRmZXVzZXJzLT5HZXRVc2VyTmFtZSgkdXNlcmlkKTsNCgkJfQ0KCQkNCgkJaWYoaXNzZXQoJF9TRVNTSU9OWydKTUZQXycgLiAoJGlkID09ICcnID8gJ20xXycgOiAkaWQpLiRuYW1lXSkpDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheV9tZXJnZSgkcGFyYW1zLCAkX1NFU1NJT05bJ0pNRlBfJyAuICgkaWQgPT0gJycgPyAnbTFfJyA6ICRpZCkuJG5hbWVdKTsNCgkJCXJldHVybiAkcGFyYW1zOw0KCQl9DQoJCQ0KCQlyZXR1cm4gJHBhcmFtczsNCgl9DQoJDQoJDQoJLyoqDQoJICogUmV0dXJuIGFuIGFycmF5IGNvbnRhaW5pbmcgYSBsaXN0IG9mIGZpbGVzIGluIGEgZGlyZWN0b3J5IHJlbGF0ZWQgdG8gYSBjZXJ0YWluIGlucHV0LjxiciAvPg0KCSAqIFBlcmZvcm1zIGEgbm9uIHJlY3Vyc2l2ZSBzZWFyY2guDQoJICoNCgkgKiBAc2luY2UgMS4xDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGlkIC0gdGhlIGlkIG9mIHRoZSBtb2R1bGVpbnN0YW5jZSB0aGF0IGNyZWF0ZXMgdGhlIGZpbGVwaWNrZXIgaW5wdXQNCgkgKiBAcGFyYW0gc3RyaW5nICRuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGlucHV0IGZpZWxkDQoJICogQHBhcmFtIHN0cmluZyAkZGlyIC0gdGhlIGRpcmVjdG9yeSB0byBsaXN0IHRoZSBmaWxlcyBvZiAobWF5IGJlIHJlbGF0aXZlIHRvIHVwbG9hZHMgZGlyIG9yIGFic29sdXRlIHBhdGgpDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5DQoJICovDQoJcHVibGljIGZ1bmN0aW9uICZHZXRJbnB1dEZpbGVzKCRpZCwgJG5hbWUsICRkaXIpDQoJew0KCQkkcGFyYW1zID0mICR0aGlzLT5HZXRJbnB1dFBhcmFtcygkaWQsICRuYW1lKTsNCgkJcmV0dXJuIGptZnBfdXRpbHM6OkdldEZpbGVzKCRkaXIsICRwYXJhbXNbJ2V4Y2x1ZGVfcHJlZml4J10sDQoJCQkkcGFyYW1zWydpbmNsdWRlX3ByZWZpeCddLCAkcGFyYW1zWydleGNsdWRlX3N1Zml4J10sDQoJCQkkcGFyYW1zWydpbmNsdWRlX3N1Zml4J10sICRwYXJhbXNbJ2ZpbGVfZXh0ZW5zaW9ucyddLA0KCQkJJHBhcmFtc1snbWVkaWFfdHlwZSddLCAoJHBhcmFtc1snbW9kZSddID09ICdkcm9wZG93bicgPyB0cnVlIDogISRwYXJhbXNbJ3Nob3dfc3ViZGlycyddKSwgJHBhcmFtc1snc2hvd190aHVtYmZpbGVzJ10sDQoJCQkkcGFyYW1zWydjcmVhdGVfdGh1bWJzJ10pOw0KCX0NCgkNCgkNCgkvKioNCgkgKiBJbmRpY2F0ZXMgaWYgSk1GaWxlUGlja2VyIG91dHB1dCBpcyBhbHJlYWR5IGRvbmU8YnIgLz4NCgkgKiBjYW4gYmUgdXNlZnVsIHRvIGF2b2lkIG91cHV0IG9mIGphdmFzY3JpcHQgYW5kIGNzcyB0d2ljZQ0KCSAqDQoJICogQHNpbmNlIDEuMQ0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wgLSB0cnVlIGlmIG91dHB1dCBkb25lOyBmYWxzZSBpZiBub3QNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gTG9hZGVkKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+X2xvYWRlZDsNCgl9DQoJDQoJDQoJLyoqDQoJICogUHJvY2Vzc2VzIGdpdmVuIHZhbHVlIHVzaW5nIHNtYXJ0eQ0KCSAqIEBzaW5jZSAxLjIuOQ0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICR0cGwgLSB0aGUgdmFsdWUgdG8gcHJvY2VzcyBieSBzbWFydHkNCgkgKiBAcmV0dXJuIHN0cmluZyAtIHRoZSBwcm9jZXNzZWQgdmFsdWUNCgkgKiBAaWdub3JlDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIERvU21hcnR5KCR0cGwpDQoJew0KCSAgDQoJCWlmKCFpc19hcnJheSgkdHBsKSAmJiAhaXNfb2JqZWN0KCR0cGwpICYmIHByZWdfbWF0Y2hfYWxsKCcvOjo6KFteOl0rKTo6Oi8nLCAkdHBsLCAkbWF0Y2hlcykpDQoJCXsNCgkJCWlmKGlzc2V0KCRfR0VUWydjb250ZW50X2lkJ10pKQ0KCQkJew0KCQkJCSRtYW5hZ2VyID0mIGNtc21zKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsNCgkJCQkkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJF9HRVRbJ2NvbnRlbnRfaWQnXSk7DQoJCQl9DQoJCQlpZihpc3NldCgkbm9kZSkgJiYgaXNfb2JqZWN0KCRub2RlKSkNCgkJCXsNCgkJCQkkY29udGVudCA9JiAkbm9kZS0+R2V0Q29udGVudCgpOw0KCQkJfQ0KCQkJaWYoaXNzZXQoJGNvbnRlbnQpICYmIGlzX29iamVjdCgkY29udGVudCkgJiYgJGNvbnRlbnQtPlR5cGUoKSAhPSAnY29udGVudDInKQ0KCQkJew0KCQkJCSRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCgkJCQkkc21hcnR5LT5hc3NpZ24oJ2NvbnRlbnRfb2JqJywgJGNvbnRlbnQpOw0KCQkJCSRzbWFydHktPmFzc2lnbignY29udGVudF9pZCcsICRjb250ZW50LT5JZCgpKTsNCgkJCQkkc21hcnR5LT5hc3NpZ24oJ2NvbnRlbnRfYWxpYXMnLCAkY29udGVudC0+QWxpYXMoKSk7DQoJCQkJJHNtYXJ0eS0+YXNzaWduKCdwYWdlJywgJGNvbnRlbnQtPkFsaWFzKCkpOw0KCQkJCSRzbWFydHktPmFzc2lnbigncGFnZV9pZCcsICRjb250ZW50LT5BbGlhcygpKTsNCgkJCQkkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfYWxpYXMnLCAkY29udGVudC0+QWxpYXMoKSk7DQoJCQkJJHNtYXJ0eS0+YXNzaWduKCdwYWdlX25hbWUnLCAkY29udGVudC0+QWxpYXMoKSk7DQoJCQkJJHNtYXJ0eS0+YXNzaWduKCdwb3NpdGlvbicsICRjb250ZW50LT5IaWVyYXJjaHkoKSk7DQoJCQkJJHNtYXJ0eS0+YXNzaWduKCdmcmllbmRseV9wb3NpdGlvbicsIGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCktPkNyZWF0ZUZyaWVuZGx5SGllcmFyY2h5UG9zaXRpb24oJGNvbnRlbnQtPkhpZXJhcmNoeSgpKSk7DQoJCQl9DQoJCQkkdHBsID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKHByZWdfcmVwbGFjZSgnLzo6OihbXjpdKyk6OjovJywgJ3skMX0nLCAkdHBsKSk7DQoJCQkjJHRwbCA9ICRzbWFydHktPmZldGNoKCdzdHJpbmc6JyAuIHByZWdfcmVwbGFjZSgnLzo6OihbXjpdKyk6OjovJywgJ3skMX0nLCAkdHBsKSk7DQoJCX0NCgkJcmV0dXJuICR0cGw7DQoJfQ0KCQ0KCQ0KCS8qKg0KCSAqIFJldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSB0aGVtZXMNCgkgKiBAc2luY2UgMS4yLjkNCgkgKiBAYWNjZXNzIHB1YmxpYw0KCSAqIEByZXR1cm4gYXJyYXkgLSB0aGUgdGhlbWVzDQoJICogQGRlcHJlY2F0ZWQNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gR2V0VGhlbWVzTGlzdCgpDQoJew0KCQkkZGlyID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwgJ3RlbXBsYXRlcycsICd0aGVtZXMnKSAuIERJUkVDVE9SWV9TRVBBUkFUT1I7DQoJCSRkICAgPSBkaXIoJGRpcik7DQoJCSRkZWZhdWx0X3RoZW1lcyA9IGFycmF5KCk7DQoJCXdoaWxlICgkZW50cnkgPSAkZC0+cmVhZCgpKQ0KCQl7DQoJCQlpZiAoJGVudHJ5WzBdID09ICcuJyANCgkJCQl8fCAhaXNfZGlyKCRkaXIuJGVudHJ5KQ0KCQkJCXx8ICFmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRkaXIuJGVudHJ5LCdpbnB1dC50cGwnKSkNCgkJCQl8fCAhZmlsZV9leGlzdHMoY21zX2pvaW5fcGF0aCgkZGlyLiRlbnRyeSwnZmlsZWJyb3dzZXIudHBsJykpDQoJCQkJfHwgIWZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJGRpci4kZW50cnksJ2hlYWRlci50cGwnKSkpDQoJCQl7DQoJCQkJY29udGludWU7DQoJCQl9DQoJCQkkZGVmYXVsdF90aGVtZXNbJGVudHJ5XSA9ICRlbnRyeTsNCgkJfQ0KCQkkZC0+Y2xvc2UoKTsNCgkJYXNvcnQoJGRlZmF1bHRfdGhlbWVzKTsNCgkJcmV0dXJuICRkZWZhdWx0X3RoZW1lczsNCgl9DQp9DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/filebrowser.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[OyggZnVuY3Rpb24oZ2xvYmFsLCAkKSB7J3VzZSBzdHJpY3QnOw0KLypqc2xpbnQgbm9tZW46IHRydWUgLCBkZXZlbDogdHJ1ZSovDQoNCiAgICB2YXIgTVRGQiA9IGdsb2JhbC5NVEZCIHx8IHt9LA0KICAgICAgICB3aW4sDQogICAgICAgIGVsLA0KICAgICAgICBpbmZvID0ge307DQoNCiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNCiAgICAgICAgTVRGQi5sb2FkKCk7DQogICAgfSk7DQoNCiAgICBNVEZCLmxvYWQgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgTVRGQi5zZW5kVmFsdWUoKTsNCiAgICAgICAgTVRGQi50b2dnbGVHcmlkKCk7DQoNCiAgICAgICAgaWYgKCQoJy5maWxlcGlja2VyLXR5cGUtZmlsdGVyJykubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgTVRGQi5maWxldHlwZUZpbHRlcigpOw0KICAgICAgICB9DQogICAgfTsNCg0KICAgIE1URkIuc2VuZFZhbHVlID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgJCgnYS5qcy10cmlnZ2VyLWluc2VydCcpLmNsaWNrKGZ1bmN0aW9uKGUpIHsNCg0KICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwNCiAgICAgICAgICAgICAgICAkZWxtID0gJHRoaXMuY2xvc2VzdCgnbGknKSwNCiAgICAgICAgICAgICAgICAkZGF0YSA9ICRlbG0uZGF0YSgpLA0KICAgICAgICAgICAgICAgICRleHQgPSAkZGF0YS5mYkV4dCwNCiAgICAgICAgICAgICAgICBmaWxlID0gJHRoaXMuYXR0cignaHJlZicpOw0KDQogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQoNCiAgICAgICAgICAgIGlmIChmaWxlYnJvd3Nlcl9nbG9iYWwuZmllbGRfaWQubGVuZ3RoID4gMCkgew0KDQogICAgICAgICAgICAgICAgd2luID0gcGFyZW50LnRpbnltY2UuYWN0aXZlRWRpdG9yLndpbmRvd01hbmFnZXIuZ2V0UGFyYW1zKCkud2luZG93Ow0KICAgICAgICAgICAgICAgIGVsID0gd2luLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZpbGVicm93c2VyX2dsb2JhbC5maWVsZF9pZCk7DQogICAgICAgICAgICAgICAgZWwudmFsdWUgPSBmaWxlOw0KICAgICAgICAgICAgICAgIGVsLnNlbGVjdGlvblN0YXJ0ID0gZWwuc2VsZWN0aW9uRW5kID0gZWwudmFsdWUubGVuZ3RoOw0KDQogICAgICAgICAgICAgICAgcGFyZW50LnRpbnltY2UuYWN0aXZlRWRpdG9yLndpbmRvd01hbmFnZXIuY2xvc2UoKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgICAgICAgICBNVEZCLnNhdmVGaWxlKCRleHQsIGZpbGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9Ow0KDQogICAgTVRGQi5fc2V0RmlsZVR5cGUgPSBmdW5jdGlvbihleHQpIHsNCg0KICAgICAgICB2YXIgaW1hZ2VzID0gWydqcGcnLCAnanBlZycsICdwbmcnLCAnZ2lmJywgJ2JtcCcsICd0aWZmJywgJ3N2ZycsICd3Ym1wJywgJ3dlYnAnXSwgLy8gaW1hZ2UgZXh0ZW5zaW9uIGFycmF5DQogICAgICAgICAgICB2aWRlb3MgPSBbJ21wNCcsICd3ZWJtJywgJ29nZyddLCAvLyB2aWRlbyBleHRlbnNpb24gYXJyYXkNCiAgICAgICAgICAgIGZsYXNoID0gWydmbHYnLCAnc3dmJ10sIC8vIHZpZGVvIGV4dGVuc2lvbiBhcnJheQ0KICAgICAgICAgICAgc291bmRzID0gWydtcDMnLCAnd2F2J107IC8vIG11c2ljIGV4dGVuc2lvbiBhcnJheSAoaG93IHRvIGRlZmVyIGJldHdlZW4gc291bmQgYW5kIHZpZGVvIG9nZz8/KQ0KDQogICAgICAgICAgICBpbmZvLnR5cGUgPSAnZmlsZSc7DQogICAgICAgICAgICBpbmZvLm1pbWUgPSAnJzsNCg0KICAgICAgICAgICAgaWYgKCQuaW5BcnJheShleHQsIGltYWdlcykgPiAtMSkgew0KICAgICAgICAgICAgICAgIGluZm8udHlwZSA9ICdpbWFnZSc7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICgkLmluQXJyYXkoZXh0LCB2aWRlb3MpID4gLTEpIHsNCiAgICAgICAgICAgICAgICBpbmZvLnR5cGUgPSAndmlkZW8nOw0KICAgICAgICAgICAgICAgIGluZm8ubWltZSA9ICd2aWRlby8nICsgZXh0Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoJC5pbkFycmF5KGV4dCwgZmxhc2gpID4gLTEpIHsNCiAgICAgICAgICAgICAgICBpbmZvLnR5cGUgPSAnZmxhc2gnOw0KICAgICAgICAgICAgICAgIGluZm8ubWltZSA9ICdhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCc7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICgkLmluQXJyYXkoZXh0LCBzb3VuZHMpID4gLTEpIHsNCiAgICAgICAgICAgICAgICBpbmZvLnR5cGUgPSAnc291bmQnOw0KICAgICAgICAgICAgICAgIGluZm8ubWltZSA9ICdhdWRpby8nICsgZXh0Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZXh0ID09PSAnanMnKSB7DQogICAgICAgICAgICAgICAgaW5mby50eXBlID0gJ2ZpbGUnOw0KICAgICAgICAgICAgICAgIGluZm8ubWltZSA9ICd0ZXh0L2phdmFzY3JpcHQnOw0KICAgICAgICAgICAgfQ0KICAgIH07DQoNCiAgICBNVEZCLl9jcmVhdGVNYXJrdXAgPSBmdW5jdGlvbihleHQsIGZpbGUpIHsNCg0KICAgICAgICBNVEZCLl9zZXRGaWxlVHlwZShleHQpOw0KDQogICAgICAgIHZhciB0eXBlID0gaW5mby50eXBlLA0KICAgICAgICAgICAgbWltZSA9IGluZm8ubWltZSwNCiAgICAgICAgICAgIGh0bWwgPSAnJywNCiAgICAgICAgICAgIHRleHQsDQogICAgICAgICAgICBkYXRhLA0KICAgICAgICAgICAgc3JjLA0KICAgICAgICAgICAgYWx0LA0KICAgICAgICAgICAgdGl0bGUsDQogICAgICAgICAgICB3aWR0aCwNCiAgICAgICAgICAgIGhlaWdodCwNCiAgICAgICAgICAgIGNzc2NsYXNzLA0KICAgICAgICAgICAgaWQsDQogICAgICAgICAgICBzZWxlY3Rpb24gPSBwYXJlbnQudGlueW1jZS5hY3RpdmVFZGl0b3Iuc2VsZWN0aW9uLmdldE5vZGUoKTsNCg0KICAgICAgICAvLyBjaGVjayBzZWxlY3RlZCBmaWxlIGF0dHJpYnV0ZXMNCiAgICAgICAgZGF0YSA9IE1URkIuX3NlbGVjdGlvblRvRGF0YShzZWxlY3Rpb24pOw0KDQogICAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdGV4dCA9IHNlbGVjdGlvbjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHRleHQgPSBmaWxlLnNwbGl0KCcvJykucG9wKCk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoZGF0YS5hbHQgIT09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgYWx0ID0gJyBhbHQ9IicgKyBkYXRhLmFsdCArICciICc7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBhbHQgPSBmaWxlLnNwbGl0KCcvJykucG9wKCk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoZGF0YS50aXRsZSAhPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0aXRsZSA9ICcgdGl0bGU9IicgKyBkYXRhLnRpdGxlICsgJyIgJzsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHRpdGxlID0gZmlsZS5zcGxpdCgnLycpLnBvcCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGRhdGEud2lkdGggIT09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgd2lkdGggPSAnIHdpZHRoPSInICsgZGF0YS53aWR0aCArICciICc7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoZGF0YS5oZWlnaHQgIT09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgaGVpZ2h0ID0gJyBoZWlnaHQ9IicgKyBkYXRhLmhlaWdodCArICciICc7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoZGF0YS5jc3NjbGFzcyAhPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBjc3NjbGFzcyA9ICcgY2xhc3M9IicgKyBkYXRhWydjbGFzcyddICsgJyIgJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChkYXRhLmlkICE9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGlkID0gJyBpZD0iJyArIGRhdGEuaWQgKyAnIiAnOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gY3JlYXRlIGh0bWwgbWFya3VwDQogICAgICAgIGlmICh0eXBlID09PSAndmlkZW8nKSB7DQogICAgICAgICAgICBodG1sID0gJzx2aWRlbyBjb250cm9scz0iY29udHJvbHMiJyArIHdpZHRoICsgaGVpZ2h0ICsgdGl0bGUgKyBjc3NjbGFzcyArIGlkICsnPlxuJyArDQogICAgICAgICAgICAgICAgICAgICAgICc8c291cmNlIHNyYz0iJyArIGZpbGUgKyAnIicgKyAnIHR5cGU9IicgKyBtaW1lICsgJyIgLz5cbicgKw0KICAgICAgICAgICAgICAgICAgICc8L3ZpZGVvPic7DQogICAgICAgIH0NCg0KICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnZmxhc2gnKSB7DQogICAgICAgICAgICBodG1sID0gJzxvYmplY3Qgc3JjPSInICsgZmlsZSArICciJyArICcgdHlwZT0iJyArIG1pbWUgKyAnIicgKyB3aWR0aCArIGhlaWdodCArIGNzc2NsYXNzICsgaWQgKyAnPjwvb2JqZWN0Pic7DQogICAgICAgIH0NCg0KICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnc291bmQnKSB7DQogICAgICAgICAgICBodG1sID0gJzxhdWRpbyBzcmM9IicgKyBmaWxlICsgJyInICsgJyBjb250cm9scz0iY29udHJvbHMiIHR5cGU9IicgKyBtaW1lICsgJyInICsgd2lkdGggKyBoZWlnaHQgKyB0aXRsZSArIGNzc2NsYXNzICsgaWQgKyc+PC9hdWRpbz4nOw0KICAgICAgICB9DQoNCiAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2ltYWdlJykgew0KICAgICAgICAgICAgaHRtbCA9ICc8aW1nIHNyYz0iJyArIGZpbGUgKyAnIicgKyBhbHQgKyBoZWlnaHQgKyB3aWR0aCArIHRpdGxlICsgY3NzY2xhc3MgKyBpZCArICcgLz4nOw0KICAgICAgICB9DQoNCiAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2ZpbGUnICYmIG1pbWUgPT09ICd0ZXh0L2phdmFzY3JpcHQnKSB7DQogICAgICAgICAgICBodG1sID0gJzxzY3JpcHQgc3JjPSInICsgZmlsZSArICciJyArICcgdHlwZT0iJyArIG1pbWUgKyAnIj48L3NjcmlwdD4nOw0KICAgICAgICB9DQoNCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBodG1sID0gJzxhIGhyZWY9IicgKyBmaWxlICsgJyInICsgY3NzY2xhc3MgKyBpZCArIHRpdGxlICsgJz4nICsgdGV4dCArICc8L2E+JzsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBodG1sOw0KICAgIH07DQoNCiAgICBNVEZCLl9zZWxlY3Rpb25Ub0RhdGEgPSBmdW5jdGlvbihlbG0pIHsNCg0KICAgICAgICB2YXIgY29udGVudCA9IHBhcmVudC50aW55bWNlLmFjdGl2ZUVkaXRvci5zZWxlY3Rpb24uc2VyaWFsaXplci5zZXJpYWxpemUoZWxtLCB7c2VsZWN0aW9uOiB0cnVlfSksDQogICAgICAgICAgICBkYXRhID0ge307DQoNCiAgICAgICAgbmV3IHBhcmVudC50aW55bWNlLmh0bWwuU2F4UGFyc2VyKHsNCiAgICAgICAgICAgIHZhbGlkYXRlOiBmYWxzZSwNCiAgICAgICAgICAgIGFsbG93X2NvbmRpdGlvbmFsX2NvbW1lbnRzOiB0cnVlLA0KICAgICAgICAgICAgc3BlY2lhbDogJ3NjcmlwdCxub3NjcmlwdCcsDQogICAgICAgICAgICBzdGFydDogZnVuY3Rpb24obmFtZSwgYXR0cnMpIHsNCiAgICAgICAgICAgICAgICBkYXRhID0gew0KICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IGF0dHJzLm1hcC5zcmMsDQogICAgICAgICAgICAgICAgICAgIGFsdDogYXR0cnMubWFwLmFsdCwNCiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGF0dHJzLm1hcC50aXRsZSwNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF0dHJzLm1hcC53aWR0aCwNCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdHRycy5tYXAuaGVpZ2h0LA0KICAgICAgICAgICAgICAgICAgICBjc3NjbGFzczogYXR0cnMubWFwLmNzc2NsYXNzLA0KICAgICAgICAgICAgICAgICAgICBpZDogYXR0cnMubWFwLmlkDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkucGFyc2UoY29udGVudCk7DQoNCiAgICAgICAgcmV0dXJuIGRhdGE7DQogICAgfTsNCg0KICAgIE1URkIuc2F2ZUZpbGUgPSBmdW5jdGlvbihleHQsIGZpbGUpIHsNCg0KICAgICAgICB2YXIgbWFya3VwID0gTVRGQi5fY3JlYXRlTWFya3VwKGV4dCwgZmlsZSk7DQoNCiAgICAgICAgLy9wYXJlbnQudGlueW1jZS5hY3RpdmVFZGl0b3Iuc2VsZWN0aW9uLnNldENvbnRlbnQobWFya3VwKTsNCiAgICAgICAgcGFyZW50LnRpbnltY2UuYWN0aXZlRWRpdG9yLmluc2VydENvbnRlbnQobWFya3VwKTsNCiAgICAgICAgcGFyZW50LnRpbnltY2UuYWN0aXZlRWRpdG9yLndpbmRvd01hbmFnZXIuY2xvc2UoKTsNCiAgICB9Ow0KDQogICAgTVRGQi50b2dnbGVHcmlkID0gZnVuY3Rpb24oKXsNCg0KICAgICAgICQoJy5maWxlcGlja2VyLXZpZXctb3B0aW9uIC5qcy10cmlnZ2VyJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkgew0KICAgICAgICAgICB2YXIgJHRyaWdnZXIgPSAkKHRoaXMpLA0KICAgICAgICAgICAgICAgJGNvbnRhaW5lciA9ICQoJyNmaWxlcGlja2VyLWl0ZW1zJyksDQogICAgICAgICAgICAgICAkaW5mbyA9ICQoJy5maWxlcGlja2VyLWZpbGUtZGV0YWlscycpOw0KDQogICAgICAgICAgICQoJy5maWxlcGlja2VyLXZpZXctb3B0aW9uIC5qcy10cmlnZ2VyJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOw0KICAgICAgICAgICAkdHJpZ2dlci5hZGRDbGFzcygnYWN0aXZlJyk7DQoNCiAgICAgICAgICAgaWYgKCR0cmlnZ2VyLmhhc0NsYXNzKCd2aWV3LWdyaWQnKSkgew0KICAgICAgICAgICAgICAgICRjb250YWluZXIucmVtb3ZlQ2xhc3MoJ2xpc3QtdmlldycpLmFkZENsYXNzKCdncmlkLXZpZXcnKTsNCiAgICAgICAgICAgICAgICAkaW5mby5hZGRDbGFzcygndmlzdWFsbHloaWRkZW4nKTsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoJHRyaWdnZXIuaGFzQ2xhc3MoJ3ZpZXctbGlzdCcpKSB7DQogICAgICAgICAgICAgICAgJGNvbnRhaW5lci5yZW1vdmVDbGFzcygnZ3JpZC12aWV3JykuYWRkQ2xhc3MoJ2xpc3QtdmlldycpOw0KICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKCd2aXN1YWxseWhpZGRlbicpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9Ow0KDQogICAgTVRGQi5maWxldHlwZUZpbHRlciA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciAkaXRlbXMgPSAkKCcjZmlsZXBpY2tlci1pdGVtcyA+IGxpOm5vdCguZmlsZXBpY2tlci1pdGVtLWhlYWRpbmcpOm5vdCguZGlyKScpLA0KICAgICAgICAgICAgJGNvbnRhaW5lciA9ICQoJyNmaWxlcGlja2VyLWl0ZW1zJyksDQogICAgICAgICAgICAkdHJpZ2dlciwNCiAgICAgICAgICAgICRkYXRhOw0KDQogICAgICAgICQoJy5maWxlcGlja2VyLXR5cGUtZmlsdGVyIC5qcy10cmlnZ2VyJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkgew0KICAgICAgICAgICAgdmFyICR0cmlnZ2VyID0gJCh0aGlzKSwNCiAgICAgICAgICAgICAgICAkZGF0YSA9ICR0cmlnZ2VyLmRhdGEoKTsNCg0KICAgICAgICAgICAgICAgICQoJy5maWxlcGlja2VyLXR5cGUtZmlsdGVyIC5qcy10cmlnZ2VyJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOw0KICAgICAgICAgICAgICAgICR0cmlnZ2VyLmFkZENsYXNzKCdhY3RpdmUnKTsNCg0KICAgICAgICAgICAgICAgIGlmICgkdHJpZ2dlci5oYXNDbGFzcygnYWN0aXZlJykgJiYgJGRhdGEuZmJUeXBlICE9PSAncmVzZXQnKSB7DQogICAgICAgICAgICAgICAgICAgICRpdGVtcy5oaWRlKDIwMCkucmVtb3ZlQ2xhc3MoJ3Zpc2libGUnKTsNCiAgICAgICAgICAgICAgICAgICAgJCgnbGkuJyArICRkYXRhLmZiVHlwZSkuc2hvdygyMDApLmFkZENsYXNzKCd2aXNpYmxlJyk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgJGl0ZW1zLnNob3coMjAwKS5hZGRDbGFzcygndmlzaWJsZScpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfTsNCg0KfSh0aGlzLCBqUXVlcnkpKTsNCg==]]></data>
	</file>
	<file>
	  <filename>/js/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/js/JMFP.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8KLy8gTW9kdWxlIDogSk1GaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2ggKGdlb3JnLmJ1c2NoQGdteC5uZXQpCi8vICAgICAgICAgIGEgZmlsZXBpY2tlciB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKLy8gICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXIKLy8gICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTIgYnkgVGVkIEt1bHAKLy8gICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzOiBjbXNtYWRlc2ltcGxlLm9yZwovLyBWZXJzaW9uOiAxLjMuMwovLyBGaWxlICAgOiBKTUZQLmpzCi8vIExpY2Vuc2U6IEdQTAovLwovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSk1GUCA9IHsKCW9wdGlvbnM6IHsKCQl0aXRsZTonRmlsZVBpY2tlcicsCgkJbW9kdWxlSWQ6JycsCgkJZHJhZ2dhYmxlOnRydWUsCgkJZHJhZ0F4aXM6J3gnLAoJCXJlc2l6YWJsZTp0cnVlLAoJCXJlc2l6YWJsZUhhbmRsZXM6J2UsdycsCgkJY2xvc2VUZXh0OidDbG9zZScsCgkJcmVsb2FkVGV4dDonUmVsb2FkJywKCQl0aHVtYm5haWxXaWR0aDo5NiwKCQl0aHVtYm5haWxIZWlnaHQ6OTYsCgkJcm9vdFVybDonLi4nLAoJCWZhZGVTcGVlZDozMDAsCgkJYW5pbWF0ZVNwZWVkOjMwMCwKCQlkZWJ1ZzpmYWxzZQoJfSwKCWZpbGVCcm93c2VyOiBmdW5jdGlvbigpewoJCXJldHVybiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0pNRlBfaGVhZGVyJykgIT0gbnVsbCk7Cgl9LAoJZ2V0Q3VycmVudFBpY2tlcklkOmZ1bmN0aW9uKCl7CgkJcmV0dXJuIEpNRlAudG1wLmN1cnJlbnRQaWNrZXJJZDsKCX0sCglnZXRDdXJyZW50RGlyOmZ1bmN0aW9uKCl7CgkJcmV0dXJuIEpNRlAudG1wLmN1cnJlbnREaXI7Cgl9LAoJZ2V0Q3VycmVudFVybDpmdW5jdGlvbigpewoJCXJldHVybiBKTUZQLnRtcC5jdXJyZW50VXJsOwoJfSwKCXRtcDogewoJCWN1cnJlbnRQaWNrZXJJZDonJywKCQljdXJyZW50RGlyOicnLAoJCWN1cnJlbnRVcmw6JycsCgkJaGVpZ2h0OjAsCgkJZmlsZUxpc3RIZWlnaHQ6MCwKCQlpbnB1dHM6e30sCgkJdGVtcGxhdGU6e30KCX0sCglpbnB1dHM6IHt9LAoJaW5pdDogZnVuY3Rpb24oKSB7CgkJaWYoYXJndW1lbnRzWzBdICYmIEpNRlAudHlwZU9mKGFyZ3VtZW50c1swXSkgPT0gJ29iamVjdCcpIHsKCQkJZm9yICh2YXIgaSBpbiBhcmd1bWVudHNbMF0pIHsKCQkJCWlmKHR5cGVvZiBKTUZQLm9wdGlvbnNbaV0gIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQlKTUZQLm9wdGlvbnNbaV0gPSBhcmd1bWVudHNbMF1baV07CgkJCQl9CgkJCQllbHNlIGlmIChpID09ICdpbnB1dHMnICYmIHR5cGVvZiBhcmd1bWVudHNbMF1baV0gPT0gJ29iamVjdCcpIHsKCQkJCQlmb3IodmFyIGogaW4gYXJndW1lbnRzWzBdW2ldKSB7CgkJCQkJCUpNRlAucmVnaXN0ZXJJbnB1dChhcmd1bWVudHNbMF1baV1bal0pOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0sCglyZWdpc3RlcklucHV0OiBmdW5jdGlvbihvYmopIHsKCQl2YXIgaW5wdXQgPSB7CgkJCWlkOicnLAoJCQltb2R1bGVJZDpKTUZQLm9wdGlvbnMubW9kdWxlSWQsCgkJCXRpdGxlOiBKTUZQLm9wdGlvbnMudGl0bGUsCgkJCWRyYWdnYWJsZTogSk1GUC5vcHRpb25zLmRyYWdnYWJsZSwKCQkJZHJhZ0F4aXM6IEpNRlAub3B0aW9ucy5kcmFnQXhpcywKCQkJcmVzaXphYmxlOiBKTUZQLm9wdGlvbnMucmVzaXphYmxlLAoJCQlyZXNpemFibGVIYW5kbGVzOiBKTUZQLm9wdGlvbnMucmVzaXphYmxlSGFuZGxlcywKCQkJY2xvc2VUZXh0OiBKTUZQLm9wdGlvbnMuY2xvc2VUZXh0LAoJCQlyZWxvYWRUZXh0OiBKTUZQLm9wdGlvbnMucmVsb2FkVGV4dCwKCQkJdGh1bWJuYWlsV2lkdGg6IEpNRlAub3B0aW9ucy50aHVtYm5haWxXaWR0aCwKCQkJdGh1bWJuYWlsSGVpZ2h0OiBKTUZQLm9wdGlvbnMudGh1bWJuYWlsSGVpZ2h0LAoJCQlhbmltYXRlU3BlZWQ6Sk1GUC5vcHRpb25zLmFuaW1hdGVTcGVlZCwKCQkJZmFkZVNwZWVkOkpNRlAub3B0aW9ucy5mYWRlU3BlZWQsCgkJCWRlYnVnOkpNRlAub3B0aW9ucy5kZWJ1ZywKCQkJZGlyOm51bGwsCgkJCW1vZGU6bnVsbCwKCQkJYnJvd3NlVXJsOicnLAoJCQl1cGxvYWRVcmw6JycKCQl9OwoJCWlmKHR5cGVvZiBvYmouaWQgIT0gJ3VuZGVmaW5lZCcgJiYgb2JqLmlkICE9ICcnKSB7CgkJCWZvciAodmFyIGkgaW4gb2JqKSB7CgkJCQlpZih0eXBlb2YgaW5wdXRbaV0gIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQlpbnB1dFtpXSA9IG9ialtpXTsKCQkJCX0KCQkJfQoJCQlKTUZQLmlucHV0c1tpbnB1dC5pZF0gPSBpbnB1dDsKCQkJSk1GUC5pbnB1dHNbaW5wdXQuaWRdLnRpdGxlYmFyID0gZnVuY3Rpb24oKSB7CgkJCQlyZXR1cm4gJzxzcGFuIGlkPSJKTUZQX2xvYWRpbmdfaW1nX3dyYXBwZXIiPjxpbWcgaWQ9IkpNRlBfbG9hZGluZ19pbWciIGFsdD0iIiBzcmM9IicrIEpNRlAub3B0aW9ucy5yb290VXJsICsnL21vZHVsZXMvSk1GaWxlUGlja2VyL3RlbXBsYXRlcy90aGVtZXMvRGVmYXVsdC1BSkFYL2ltZy9sb2FkaW5nLmdpZiIgLz48L3NwYW4+PGgzIGlkPSJKTUZQX3RpdGxlIj4nICsgdGhpcy50aXRsZSArICc8L2gzPjxkaXYgaWQ9IkpNRlBfbWVudSI+PGEgaWQ9IkpNRlBfcmVsb2FkX2RpciIgdGl0bGU9IicgKyB0aGlzLnJlbG9hZFRleHQgKyAnIiBocmVmPSIjIiBvbmNsaWNrPSJKTUZQLnJlbG9hZERpcigpO3JldHVybiBmYWxzZTsiPicrIHRoaXMucmVsb2FkVGV4dCArJzwvYT48YSBpZD0iSk1GUF9jbG9zZSIgdGl0bGU9IicgKyB0aGlzLmNsb3NlVGV4dCArICciIGhyZWY9IiMiIG9uY2xpY2s9IkpNRlAuY2xvc2UoSk1GUC5nZXRDdXJyZW50UGlja2VySWQoKSk7cmV0dXJuIGZhbHNlOyI+W1hdPC9hPjxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4nOwoJCQl9OwoJCX0KCX0sCglnZXRUZW1wbGF0ZTogZnVuY3Rpb24ocGlja2VySWQpIHsKCQkKCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJYWxlcnQoJ2NyZWF0aW5nIHRlbXBsYXRlIC4uLiAnKTsKCQl9CgkJCgkJaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0pNRlBfY29udGVudCcpICE9IG51bGwpIHsKCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uaHRtbChKTUZQLmlucHV0c1twaWNrZXJJZF0udGl0bGViYXIoKSk7CgkJCQoJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCWFsZXJ0KCdjcmVhdGVkIHRpdGxlYmFyJyk7CgkJCX0KCQkJCgkJfQoJCWVsc2UgewoJCQlqUXVlcnkoJ2JvZHknKS5hcHBlbmQoJzxkaXYgaWQ9IkpNRlBfd3JhcHBlciIgY2xhc3M9InBhZ2Vjb250YWluZXIiPjxkaXYgaWQ9IkpNRlBfYmFja2dyb3VuZCIgb25jbGljaz0iSk1GUC5jbG9zZShKTUZQLmdldEN1cnJlbnRQaWNrZXJJZCgpKSI+PC9kaXY+PGRpdiBpZD0iSk1GUCI+PGRpdiBpZD0iSk1GUF90aXRsZWJhciI+JyArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS50aXRsZWJhcigpICsgJzwvZGl2PjxkaXYgaWQ9IkpNRlBfY29udGVudCI+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7CgkJCQoJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCWFsZXJ0KCdhcHBlbmRlZCB3cmFwcGVyIHRvIGJvZHknKTsKCQkJfQoJCQkKCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3dyYXBwZXInXSAgICAgPSBqUXVlcnkoJyNKTUZQX3dyYXBwZXInKTsKCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10gICAgICAgICAgICAgPSBqUXVlcnkoIiNKTUZQIik7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9jb250ZW50J10gICAgID0galF1ZXJ5KCIjSk1GUF9jb250ZW50Iik7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddICAgID0galF1ZXJ5KCIjSk1GUF90aXRsZWJhciIpOwoJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfYmFja2dyb3VuZCddICA9IGpRdWVyeSgnI0pNRlBfYmFja2dyb3VuZCcpOwoJCX0KCQkKCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfbG9hZGluZ19pbWcnXSA9IGpRdWVyeSgiI0pNRlBfbG9hZGluZ19pbWciKTsKCQkKCQlqUXVlcnkod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKSB7CgkJCUpNRlAucmVzaXplKCk7CgkJfSk7CgkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3dyYXBwZXInXS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpLmNzcygnei1pbmRleCcsOTk5OSkuY3NzKCdvcGFjaXR5JywxKTsKCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZHJhZ2dhYmxlKSB7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmRyYWdnYWJsZSh7aGFuZGxlOiAnI0pNRlBfdGl0bGViYXInLCBjb250YWlubWVudDogInBhcmVudCIsIGN1cnNvcjogIm1vdmUiLCBheGlzOkpNRlAuaW5wdXRzW3BpY2tlcklkXS5kcmFnQXhpc30pOwoJCX0KCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0ucmVzaXphYmxlKSB7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLnJlc2l6YWJsZSh7aGFuZGxlczogSk1GUC5pbnB1dHNbcGlja2VySWRdLnJlc2l6YWJsZUhhbmRsZXN9KTsKCQl9CgkJcmV0dXJuOwoJfSwKCXJlbG9hZERpcjogZnVuY3Rpb24oKSB7CgkJSk1GUC5sb2FkRGlyKEpNRlAudG1wLmN1cnJlbnRVcmwsSk1GUC50bXAuY3VycmVudFBpY2tlcklkLEpNRlAudG1wLmN1cnJlbnREaXIpOwoJfSwKCXRvZ2dsZVRodW1ibmFpbDogZnVuY3Rpb24gKHBpY2tlcklkLCB1cmwsIHRpdGxlLCBhbHQpIHsKCQlpZih0eXBlb2YgSk1GUC5pbnB1dHNbcGlja2VySWRdID09ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAucmVnaXN0ZXJJbnB1dCh7aWQ6cGlja2VySWR9KTsKCQl9CgkJdmFyIHRodW1ibmFpbFdyYXBwZXIgPSBqUXVlcnkoJyMnICsgcGlja2VySWQgKyAnX0pNRlBfdGh1bWJuYWlsX3dyYXBwZXInKTsKCQlpZih0eXBlb2YgdGh1bWJuYWlsV3JhcHBlci5hdHRyKCdpZCcpID09ICd1bmRlZmluZWQnKSB7CgkJCXJldHVybjsKCQl9CgkJdGh1bWJuYWlsV3JhcHBlci5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwgMCwgZnVuY3Rpb24gKCkgewoJCQl0aHVtYm5haWxXcmFwcGVyLmh0bWwoJycpOwoJCQlpZih1cmwgIT0gJycpIHsKCQkJCXZhciBhbHRUeHQgICAgPSAnJywKCQkJCQl0aXRsZVR4dCAgPSAnJywKCQkJCQlhbHRBdHRyICAgPSAnJywKCQkJCQl0aXRsZUF0dHIgPSAnJzsKCQkJCWlmKHR5cGVvZih0aXRsZSkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQl0aXRsZVR4dCA9IHRpdGxlOwoJCQkJfQoJCQkJaWYodHlwZW9mKGFsdCkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQlhbHRUeHQgPSBhbHQ7CgkJCQl9CgkJCQlpZih0aXRsZVR4dCAhPSAnJykgewoJCQkJCXRpdGxlQXR0ciA9ICcgdGl0bGU9IicgKyB0aXRsZVR4dCArICciJzsKCQkJCX0KCQkJCWlmKGFsdFR4dCAhPSAnJykgewoJCQkJCWFsdEF0dHIgPSAnIGFsdD0iJyArIGFsdFR4dCArICciJzsKCQkJCX0KCQkJCXRodW1ibmFpbFdyYXBwZXIuaHRtbCgnPGltZyBjbGFzcz0iSk1GUF90aHVtYm5haWwiIGlkPSInICsgcGlja2VySWQgKyAnX0pNRlBfdGh1bWJuYWlsIiBzcmM9IicgKyB1cmwgKyAnIicgKyB0aXRsZUF0dHIgKyBhbHRBdHRyICsgJyAvPicpLm9uSW1hZ2VzTG9hZCh7CgkJCQkJY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3Q6dHJ1ZSwKCQkJCQlhbGw6IGZ1bmN0aW9uKGVsbSkgewoJCQkJCQl2YXIgdGh1bWJuYWlsU2l6ZSA9IEpNRlAuZ2V0VGh1bWJuYWlsU2l6ZShwaWNrZXJJZCk7CgkJCQkJCS8valF1ZXJ5KCcjJyArIHBpY2tlcklkICsgJ19KTUZQX3RodW1ibmFpbCcpLmF0dHIoJ3dpZHRoJyx0aHVtYm5haWxTaXplWzBdKS5hdHRyKCdoZWlnaHQnLHRodW1ibmFpbFNpemVbMV0pOwoJCQkJCQl2YXIgaW1nICAgICAgICAgICAgICAgPSBqUXVlcnkoJyMnICsgdGh1bWJuYWlsV3JhcHBlci5hdHRyKCdpZCcpLnJlcGxhY2UoJ193cmFwcGVyJywgJycpKSwKCQkJCQkJCS8vdGh1bWJIZWlnaHQgICAgICAgPSBwYXJzZUludChpbWcuaGVpZ2h0KCkpLAoJCQkJCQkJdGh1bWJIZWlnaHQgICAgICAgPSBKTUZQLmlucHV0c1twaWNrZXJJZF0udGh1bWJuYWlsSGVpZ2h0LAoJCQkJCQkJdGh1bWJNYXJnaW5Ub3AgICAgPSBwYXJzZUludChpbWcuY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSksCgkJCQkJCQl0aHVtYk1hcmdpbkJvdHRvbSA9IHBhcnNlSW50KGltZy5jc3MoJ21hcmdpbi1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpKSwKCQkJCQkJCXRodW1iUGFkZGluZ1RvcCAgID0gcGFyc2VJbnQoaW1nLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpKSwKCQkJCQkJCXRodW1iUGFkZGluQm90dG9tID0gcGFyc2VJbnQoaW1nLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpKSwKCQkJCQkJCXRodW1iQm9yZGVyVG9wICAgID0gcGFyc2VJbnQoaW1nLmNzcygnYm9yZGVyLXRvcC13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJykpLAoJCQkJCQkJdGh1bWJCb3JkZXJCb3R0b20gPSBwYXJzZUludChpbWcuY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSksCgkJCQkJCQluZXdIZWlnaHQgICAgICAgICA9IGV2YWwoKGlzTmFOKHRodW1iSGVpZ2h0KSB8fCB0eXBlb2YgdGh1bWJIZWlnaHQgPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJIZWlnaHQpICsgKGlzTmFOKHRodW1iTWFyZ2luVG9wKSB8fCB0eXBlb2YgdGh1bWJNYXJnaW5Ub3AgPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJNYXJnaW5Ub3ApICsgKGlzTmFOKHRodW1iTWFyZ2luQm90dG9tKSB8fCB0eXBlb2YgdGh1bWJNYXJnaW5Cb3R0b20gPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJNYXJnaW5Cb3R0b20pICsgKGlzTmFOKHRodW1iUGFkZGluZ1RvcCkgfHwgdHlwZW9mIHRodW1iUGFkZGluZ1RvcCA9PSAndW5kZWZpbmVkJyA/IDAgOiB0aHVtYlBhZGRpbmdUb3ApICsgKGlzTmFOKHRodW1iUGFkZGluQm90dG9tKSB8fCB0eXBlb2YgdGh1bWJQYWRkaW5Cb3R0b20gPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJQYWRkaW5Cb3R0b20pICsgKGlzTmFOKHRodW1iQm9yZGVyVG9wKSB8fCB0eXBlb2YgdGh1bWJCb3JkZXJUb3AgPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJCb3JkZXJUb3ApICsgKGlzTmFOKHRodW1iQm9yZGVyQm90dG9tKSB8fCB0eXBlb2YgdGh1bWJCb3JkZXJCb3R0b20gPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJCb3JkZXJCb3R0b20pKTsKCQkJCQkJdGh1bWJuYWlsV3JhcHBlci5hbmltYXRlKHtoZWlnaHQ6bmV3SGVpZ2h0KydweCd9LCBKTUZQLmlucHV0c1twaWNrZXJJZF0uYW5pbWF0ZVNwZWVkLCAnc3dpbmcnLCBmdW5jdGlvbigpIHsKCQkJCQkJCXRodW1ibmFpbFdyYXBwZXIuZmFkZVRvKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5mYWRlU3BlZWQsIDEpOwoJCQkJCQl9KTsKCQkJCQl9CgkJCQl9KTsKCQkJfQoJCQllbHNlIHsKCQkJCXRodW1ibmFpbFdyYXBwZXIuYW5pbWF0ZSh7aGVpZ2h0OicwcHgnfSk7CgkJCX0KCQl9KTsKCX0sCglnZXRUaHVtYm5haWxTaXplOiBmdW5jdGlvbihwaWNrZXJJZCkgewoJCXZhciB0aHVtYkltZyAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHBpY2tlcklkICsgJ19KTUZQX3RodW1ibmFpbCcpLAoJCQlvcmlnV2lkdGggICA9IHRodW1iSW1nLndpZHRoLAoJCQlvcmlnSGVpZ2h0ICA9IHRodW1iSW1nLmhlaWdodCwKCQkJYXNwZWN0cmF0aW8gPSBldmFsKG9yaWdXaWR0aCAvIG9yaWdIZWlnaHQpLAoJCQluZXdXaWR0aCAgICA9IE1hdGguZmxvb3IoSk1GUC5pbnB1dHNbcGlja2VySWRdLnRodW1ibmFpbFdpZHRoKSwKCQkJbmV3SGVpZ2h0ICAgPSBNYXRoLmZsb29yKEpNRlAuaW5wdXRzW3BpY2tlcklkXS50aHVtYm5haWxIZWlnaHQpOwoJCQoJCWlmKG5ld1dpZHRoIDw9IDApIHsKCQkJbmV3V2lkdGggPSA5NjsKCQl9CgkJaWYobmV3SGVpZ2h0IDw9IDApIHsKCQkJbmV3SGVpZ2h0ID0gOTY7CgkJfQoJCWlmKG5ld1dpZHRoID4gb3JpZ1dpZHRoKSB7CgkJCW5ld1dpZHRoID0gb3JpZ1dpZHRoOwoJCX0KCQlpZihuZXdIZWlnaHQgPiBvcmlnSGVpZ2h0KSB7CgkJCW5ld0hlaWdodCA9IG9yaWdIZWlnaHQ7CgkJfQoJCQoJCXZhciBuZXdBc3BlY3RyYXRpbyA9IGV2YWwobmV3V2lkdGggLyBuZXdIZWlnaHQpOwoJCQoJCWlmKGFzcGVjdHJhdGlvID4gMSAmJiBuZXdBc3BlY3RyYXRpbyA8IDEpIHsgLy8gbGFuZHNjYXBlIHRvIHBvcnRyYWl0CgkJCXZhciBfdG1wID0gTWF0aC5mbG9vcihldmFsKG5ld1dpZHRoIC8gYXNwZWN0cmF0aW8pKTsKCQkJaWYoX3RtcCA+IDAgJiYgX3RtcCA8PSBuZXdIZWlnaHQpIHsKCQkJCW5ld0hlaWdodCA9IF90bXA7CgkJCX0KCQl9CgkJZWxzZSBpZihhc3BlY3RyYXRpbyA8IDEgJiYgbmV3QXNwZWN0cmF0aW8gPiAxKSB7IC8vIHBvcnRyYWl0IHRvIGxhbmRzY2FwZQoJCQl2YXIgX3RtcCA9IE1hdGguZmxvb3IoZXZhbChuZXdIZWlnaHQgKiBhc3BlY3RyYXRpbykpOwoJCQlpZihfdG1wID4gMCAmJiBfdG1wIDw9IG5ld1dpZHRoKSB7CgkJCQluZXdXaWR0aCA9IF90bXA7CgkJCX0KCQl9CgkJZWxzZSB7CgkJCWlmKG5ld0FzcGVjdHJhdGlvIDwgYXNwZWN0cmF0aW8pIHsKCQkJCXZhciBfdG1wID0gTWF0aC5mbG9vcihldmFsKG5ld1dpZHRoIC8gYXNwZWN0cmF0aW8pKTsKCQkJCWlmKF90bXAgPiAwICYmIF90bXAgPD0gbmV3SGVpZ2h0KSB7CgkJCQkJbmV3SGVpZ2h0ID0gX3RtcDsKCQkJCX0KCQkJfQoJCQllbHNlIGlmKG5ld0FzcGVjdHJhdGlvID4gYXNwZWN0cmF0aW8pIHsKCQkJCXZhciBfdG1wID0gTWF0aC5mbG9vcihldmFsKG5ld0hlaWdodCAqIGFzcGVjdHJhdGlvKSk7CgkJCQlpZihfdG1wID4gMCAmJiBfdG1wIDw9IG5ld1dpZHRoKSB7CgkJCQkJbmV3V2lkdGggPSBfdG1wOwoJCQkJfQoJCQl9CgkJfQoJCWlmKG5ld1dpZHRoIDwgMSkgewoJCQluZXdXaWR0aCA9IDE7CgkJfQoJCWlmKG5ld0hlaWdodCA8IDEpIHsKCQkJbmV3SGVpZ2h0ID0gMTsKCQl9CgkJcmV0dXJuIG5ldyBBcnJheShuZXdXaWR0aCwgbmV3SGVpZ2h0KTsKCX0sCgljbG9zZTogZnVuY3Rpb24gKHBpY2tlcklkKSB7CgkJalF1ZXJ5KHdpbmRvdykudW5iaW5kKCdyZXNpemUnKTsKCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfbG9hZGluZ19pbWcnXS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7CgkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3dyYXBwZXInXS5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwwLGZ1bmN0aW9uKCl7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF93cmFwcGVyJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpLmNzcygnei1pbmRleCcsLTk5OTkpOwoJCQlpZihKTUZQLmllVmVyc2lvbigpIDwgOCkgewoJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3dyYXBwZXInXS5yZW1vdmUoKTsKCQkJfQoJCQllbHNlIHsKCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9iYWNrZ3JvdW5kJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpLmNzcygnb3BhY2l0eScsMCk7CgkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmh0bWwoJycpLmNzcygnb3BhY2l0eScsMCk7CgkJCQl2YXIgYXR0cmlicyA9IHsKCQkJCQl0aXRsZUJhckhlaWdodDogICAgICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmhlaWdodCgpLAoJCQkJCXRpdGxlQmFyUGFkZGluZ1RvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdwYWRkaW5nLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJdGl0bGVCYXJQYWRkaW5nQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQl0aXRsZUJhck1hcmdpblRvcDogICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygnbWFyZ2luLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJdGl0bGVCYXJNYXJnaW5Cb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ21hcmdpbi1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCXRpdGxlQmFyQm9yZGVyVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQl0aXRsZUJhckJvcmRlckJvdHRvbTogIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygnYm9yZGVyLWJvdHRvbS13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJam1mcFBhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBQYWRkaW5nQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwTWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwTWFyZ2luQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdtYXJnaW4tYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwQm9yZGVyVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwQm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKQoJCQkJfQoJCQkJCgkJCQl2YXIgam1mcEhlaWdodCA9IDA7CgkJCQlmb3IodmFyIGkgaW4gYXR0cmlicykgewoJCQkJCWF0dHJpYnNbaV0gPSBwYXJzZUludChhdHRyaWJzW2ldKTsKCQkJCQlpZih0eXBlb2YgYXR0cmlic1tpXSA9PSAndW5kZWZpbmVkJyB8fCBhdHRyaWJzW2ldID09ICd1bmRlZmluZWQnIHx8IGlzTmFOKGF0dHJpYnNbaV0pKSB7CgkJCQkJCWF0dHJpYnNbaV0gPSAwOwoJCQkJCX0KCQkJCQkKCQkJCQlqbWZwSGVpZ2h0ID0gZXZhbChqbWZwSGVpZ2h0ICsgYXR0cmlic1tpXSk7CgkJCQl9CgkJCQkKCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnaGVpZ2h0Jywgam1mcEhlaWdodCArICdweCcpLmNzcygnZGlzcGxheScsJ25vbmUnKS5jc3MoJ29wYWNpdHknLDApOwoJCQkJCgkJCX0KCQkJSk1GUC50bXAuY3VycmVudFVybCAgICAgID0gJyc7CgkJCUpNRlAudG1wLmN1cnJlbnREaXIgICAgICA9ICcnOwoJCQlKTUZQLnRtcC5jdXJyZW50UGlja2VySWQgPSAnJzsKCQkJSk1GUC50bXAuaGVpZ2h0ICAgICAgICAgID0gMDsKCQkJSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQgID0gMDsKCQl9KTsKCQlyZXR1cm4gZmFsc2U7Cgl9LAoJbG9hZERpcjogZnVuY3Rpb24gKHVybCwgcGlja2VySWQpIHsKCQlpZih0eXBlb2YgSk1GUC5pbnB1dHNbcGlja2VySWRdID09ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAucmVnaXN0ZXJJbnB1dCh7aWQ6cGlja2VySWR9KTsKCQl9CgkJdmFyIGRpcjsKCQlpZih0eXBlb2YgYXJndW1lbnRzWzJdICE9ICd1bmRlZmluZWQnKSB7CgkJCWRpciA9IGFyZ3VtZW50c1syXTsKCQl9CgkJaWYoSk1GUC5maWxlQnJvd3NlcigpID09IGZhbHNlKSB7CgkJCQoJCQkvKioKCQkJICogb3BlbiBmaWxlcGlja2VyCgkJCSAqLwoJCQkKCQkJSk1GUC5nZXRUZW1wbGF0ZShwaWNrZXJJZCk7CgkJCQoJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfYmFja2dyb3VuZCddLmNzcygnZGlzcGxheScsJ2Jsb2NrJykuZmFkZVRvKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5mYWRlU3BlZWQsIDAuNjUsIGZ1bmN0aW9uICgpIHsKCQkJCQoJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJYWxlcnQoJ2ZhZGVkIGluIGJhY2tncm91bmQnKTsKCQkJCX0KCQkJCQoJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdkaXNwbGF5JywnYmxvY2snKS5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKSB7CgkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5JywnYmxvY2snKTsKCQkJCQkJCgkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCWFsZXJ0KCdsb2FkaW5nIGZyb20gc2VydmVyJyk7CgkJCQkJfQoJCQkJCQoJCQkJCWpRdWVyeS5nZXQodXJsICsgJyYnICsgSk1GUC5pbnB1dHNbcGlja2VySWRdLm1vZHVsZUlkICsgJ3Nob3d0ZW1wbGF0ZT1mYWxzZSYnICArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5tb2R1bGVJZCArICdkaXNhYmxlX3RoZW1lPTEmJyArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5tb2R1bGVJZCArICdhamF4PTEnLCBmdW5jdGlvbihkYXRhKSB7CgkJCQkJCQoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCWFsZXJ0KCdjb250ZW50IGxvYWRlZCcpOwoJCQkJCQl9CgkJCQkJCQoJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2hlaWdodCcsSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uaGVpZ2h0KCkgKyAncHgnKTsKCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5odG1sKGRhdGEpOwoJCQkJCQkKCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQlhbGVydCgncmVwbGFjZWQgY29udGVudCB3aXRoIGxvYWRlZCBkYXRhJyk7CgkJCQkJCX0KCQkJCQkJCgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9oZWFkZXInXSAgID0galF1ZXJ5KCIjSk1GUF9oZWFkZXIiKTsKCQkJCQkJSk1GUC5hamF4Rm9ybSgpOwoJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXSA9IGpRdWVyeSgiI0pNRlBfZmlsZWxpc3QiKTsKCQkJCQkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddICAgICAgICA9IGpRdWVyeSgnI0pNRlBfZmlsZW9wZXJhdGlvbnMnKTsKCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMnXSA9IGpRdWVyeSgnI0pNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zJyk7CgkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ21heC1oZWlnaHQnLCcnKS5jc3MoJ29wYWNpdHknLDEpOzsKCQkJCQkJCQoJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJYWxlcnQoJ3NldCBtYXgtaGVpZ2h0IHRvICIiICsgZmFkZWQgaW4gZmlsZWxpc3QnKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQkKCQkJCQkJaWYoalF1ZXJ5KCcjSk1GUF9jb250ZW50IGltZycpLmxlbmd0aCkgewoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5vbkltYWdlc0xvYWQoewoJCQkJCQkJCWNhbGxiYWNrSWZOb0ltYWdlc0V4aXN0OnRydWUsCgkJCQkJCQkJYWxsOiBmdW5jdGlvbiAoZWxtKSB7CgkJCQkJCQkJCQoJCQkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQkJCWFsZXJ0KCdpbWFnZXMgbG9hZGVkOyBKTUZQLnRtcC5oZWlnaHQ6JyArIEpNRlAudG1wLmhlaWdodCk7CgkJCQkJCQkJCX0KCQkJCQkJCQkJCgkJCQkJCQkJCUpNRlAuZ2V0SGVpZ2h0KCk7CgkJCQkJCQkJCWlmKHR5cGVvZiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ21heC1oZWlnaHQnLCBKTUZQLnRtcC5maWxlTGlzdEhlaWdodCArICdweCcpOwoJCQkJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJCQkJYWxlcnQoJ3NldCBtYXgtaGVpZ2h0IHRvICcgKyBKTUZQLnRtcC5maWxlTGlzdEhlaWdodCArICc7IEpNRlAudG1wLmhlaWdodDonICsgSk1GUC50bXAuaGVpZ2h0KTsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJfQoJCQkJCQkJCQlpZihKTUZQLmllVmVyc2lvbigpIDwgOCkgewoJCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7CgkJCQkJCQkJCX0KCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uYW5pbWF0ZSh7aGVpZ2h0OiBKTUZQLnRtcC5oZWlnaHQgKyAoSk1GUC50bXAuaGVpZ2h0ICE9ICdhdXRvJyA/ICdweCcgOiAnJyl9LCBKTUZQLmlucHV0c1twaWNrZXJJZF0uYW5pbWF0ZVNwZWVkICwgJ3N3aW5nJywgZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQkKCQkJCQkJCQkJCWlmKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5kZWJ1ZykgewoJCQkJCQkJCQkJCWFsZXJ0KCdhbmltYXRlZCBoZWlnaHQ7IEpNRlAudG1wLmhlaWdodDonICsgSk1GUC50bXAuaGVpZ2h0KTsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJCQoJCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpOwoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCWlmKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5kZWJ1ZykgewoJCQkJCQkJCQkJCQlhbGVydCgnZmFkZWQgaW4gY29udGVudCcpOwoJCQkJCQkJCQkJCX0KCQkJCQkJCQkJCQkKCQkJCQkJCQkJCX0pOwoJCQkJCQkJCQl9KTsKCQkJCQkJCQl9CgkJCQkJCQl9KTsKCQkJCQkJfQoJCQkJCQllbHNlIHsKCQkJCQkJCUpNRlAuZ2V0SGVpZ2h0KCk7CgkJCQkJCQlpZih0eXBlb2YgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ICsgJ3B4Jyk7CgkJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJCWFsZXJ0KCdzZXQgbWF4LWhlaWdodCB0byAnICsgSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJCWlmKEpNRlAuaWVWZXJzaW9uKCkgPCA4KSB7CgkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7CgkJCQkJCQl9CgkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5hbmltYXRlKHtoZWlnaHQ6IEpNRlAudG1wLmhlaWdodCArIChKTUZQLnRtcC5oZWlnaHQgIT0gJ2F1dG8nID8gJ3B4JyA6ICcnKX0sIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5hbmltYXRlU3BlZWQgLCAnc3dpbmcnLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkKCQkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQkJYWxlcnQoJ2FuaW1hdGVkIGhlaWdodCcpOwoJCQkJCQkJCX0KCQkJCQkJCQkKCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmZhZGVUbyhKTUZQLmlucHV0c1twaWNrZXJJZF0uZmFkZVNwZWVkLCAxLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpOwoJCQkJCQkJCQkKCQkJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJCQlhbGVydCgnZmFkZWQgaW4gY29udGVudCcpOwoJCQkJCQkJCQl9CgkJCQkJCQkJCQoJCQkJCQkJCX0pOwoJCQkJCQkJfSk7CgkJCQkJCX0KCQkJCQl9KTsKCQkJCX0pOwoJCQl9KTsKCQl9CgkJZWxzZSB7CgkJCQoJCQkvKioKCQkJICogbG9hZGluZyBzZWxlY3RlZCBkaXIKCQkJICovCgkJCQoJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfbG9hZGluZ19pbWcnXS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOwoJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCWFsZXJ0KCdsb2FkaW5nIGZyb20gc2VydmVyJyk7CgkJCX0KCQkJCgkJCWpRdWVyeS5nZXQodXJsICsgJyYnICsgSk1GUC5pbnB1dHNbcGlja2VySWRdLm1vZHVsZUlkICsgJ3Nob3d0ZW1wbGF0ZT1mYWxzZSYnICArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5tb2R1bGVJZCArICdkaXNhYmxlX3RoZW1lPTEmJyArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5tb2R1bGVJZCArICdhamF4PTEnLCBmdW5jdGlvbihkYXRhKSB7CgkJCQkJCgkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQlhbGVydCgnY29udGVudCBsb2FkZWQnKTsKCQkJCX0KCQkJCQoJCQkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQl2YXIgZmFkZUlkID0gJyNKTUZQX2ZpbGVsaXN0JzsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCXZhciBmYWRlSWQgPSAnI0pNRlBfY29udGVudCc7CgkJCQl9CgkJCQlKTUZQLnRtcC50ZW1wbGF0ZVtmYWRlSWRdLmZhZGVUbyhKTUZQLmlucHV0c1twaWNrZXJJZF0uZmFkZVNwZWVkLCAwLCBmdW5jdGlvbigpIHsKCQkJCQkKCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJYWxlcnQoJ2ZhZGVkIG91dCBmaWxlbGlzdCcpOwoJCQkJCX0KCQkJCQkKCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2hlaWdodCcsSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uaGVpZ2h0KCkgKyAncHgnKTsKCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmh0bWwoZGF0YSk7CgkJCQkJCgkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCWFsZXJ0KCdyZXBsYWNlZCBjb250ZW50IHdpdGggbG9hZGVkIGRhdGEnKTsKCQkJCQl9CgkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddICAgPSBqUXVlcnkoIiNKTUZQX2hlYWRlciIpOwoJCQkJCUpNRlAuYWpheEZvcm0oKTsKCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXSA9IGpRdWVyeSgiI0pNRlBfZmlsZWxpc3QiKTsKCQkJCQlpZih0eXBlb2YgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZW9wZXJhdGlvbnMnXSAgICAgICAgPSBqUXVlcnkoJyNKTUZQX2ZpbGVvcGVyYXRpb25zJyk7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMnXSA9IGpRdWVyeSgnI0pNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zJyk7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsJycpOwoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCWFsZXJ0KCdzZXQgbWF4LWhlaWdodCB0byAiIicpOwoJCQkJCQl9CgkJCQkJfQoJCQkJCWlmKGpRdWVyeSgnI0pNRlBfY29udGVudCBpbWcnKS5sZW5ndGgpIHsKCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5vbkltYWdlc0xvYWQoewoJCQkJCQkJY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3Q6dHJ1ZSwKCQkJCQkJCWFsbDogZnVuY3Rpb24gKGVsbSkgewoJCQkJCQkJCQoJCQkJCQkJCWlmKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5kZWJ1ZykgewoJCQkJCQkJCQlhbGVydCgnaW1hZ2VzIGxvYWRlZCcpOwoJCQkJCQkJCX0KCQkJCQkJCQkKCQkJCQkJCQlKTUZQLmdldEhlaWdodCgpOwoJCQkJCQkJCWlmKHR5cGVvZiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ICsgJ3B4Jyk7CgkJCQkJCQkJCQoJCQkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQkJCWFsZXJ0KCdzZXQgbWF4LWhlaWdodCB0byAnICsgSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpOwoJCQkJCQkJCQl9CgkJCQkJCQkJfQoJCQkJCQkJCWlmKEpNRlAuaWVWZXJzaW9uKCkgPCA4KSB7CgkJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnaGVpZ2h0JywnYXV0bycpOwoJCQkJCQkJCX0KCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5hbmltYXRlKHtoZWlnaHQ6IEpNRlAudG1wLmhlaWdodCArIChKTUZQLnRtcC5oZWlnaHQgIT0gJ2F1dG8nID8gJ3B4JyA6ICcnKX0sIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5hbmltYXRlU3BlZWQgLCAnc3dpbmcnLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCQoJCQkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQkJCWFsZXJ0KCdhbmltYXRlZCBoZWlnaHQnKTsKCQkJCQkJCQkJfQoJCQkJCQkJCQkKCQkJCQkJCQkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCQkJCXZhciBmYWRlSWQgPSAnI0pNRlBfZmlsZWxpc3QnOwoJCQkJCQkJCQl9CgkJCQkJCQkJCWVsc2UgewoJCQkJCQkJCQkJdmFyIGZhZGVJZCA9ICcjSk1GUF9jb250ZW50JzsKCQkJCQkJCQkJfQoJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVtmYWRlSWRdLmZhZGVUbyhKTUZQLmlucHV0c1twaWNrZXJJZF0uZmFkZVNwZWVkLCAxLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9sb2FkaW5nX2ltZyddLmNzcygnZGlzcGxheScsJ25vbmUnKTsKCQkJCQkJCQkJCQoJCQkJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJCQkJYWxlcnQoJ2ZhZGVkIGluIGZpbGVsaXN0Jyk7CgkJCQkJCQkJCQl9CgkJCQkJCQkJCQkKCQkJCQkJCQkJfSk7CgkJCQkJCQkJfSk7CgkJCQkJCQl9CgkJCQkJCX0pOwoJCQkJCX0KCQkJCQllbHNlIHsKCQkJCQkJSk1GUC5nZXRIZWlnaHQoKTsKCQkJCQkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ICsgJ3B4Jyk7CgkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQlhbGVydCgnc2V0IG1heC1oZWlnaHQgdG8gJyArIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0KTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlpZihKTUZQLmllVmVyc2lvbigpIDwgOCkgewoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7CgkJCQkJCX0KCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uYW5pbWF0ZSh7aGVpZ2h0OiBKTUZQLnRtcC5oZWlnaHQgKyAoSk1GUC50bXAuaGVpZ2h0ICE9ICdhdXRvJyA/ICdweCcgOiAnJyl9LCBKTUZQLmlucHV0c1twaWNrZXJJZF0uYW5pbWF0ZVNwZWVkICwgJ3N3aW5nJywgZnVuY3Rpb24oKSB7CgkJCQkJCQkJCgkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQlhbGVydCgnYW5pbWF0ZWQgaGVpZ2h0Jyk7CgkJCQkJCQl9CgkJCQkJCQkKCQkJCQkJCWlmKHR5cGVvZiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCQkJCQkJdmFyIGZhZGVJZCA9ICcjSk1GUF9maWxlbGlzdCc7CgkJCQkJCQl9CgkJCQkJCQllbHNlIHsKCQkJCQkJCQl2YXIgZmFkZUlkID0gJyNKTUZQX2NvbnRlbnQnOwoJCQkJCQkJfQoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbZmFkZUlkXS5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKSB7CgkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpOwoJCQkJCQkJCQoJCQkJCQkJCWlmKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5kZWJ1ZykgewoJCQkJCQkJCQlhbGVydCgnZmFkZWQgaW4gZmlsZWxpc3QnKTsKCQkJCQkJCQl9CgkJCQkJCQkJCgkJCQkJCQl9KTsKCQkJCQkJfSk7CgkJCQkJfQoJCQkJfSk7CgkJCX0pOwoJCX0KCQlKTUZQLnRtcC5jdXJyZW50UGlja2VySWQgPSBwaWNrZXJJZDsKCQlKTUZQLnRtcC5jdXJyZW50RGlyICAgICAgPSBkaXI7CgkJSk1GUC50bXAuY3VycmVudFVybCAgICAgID0gdXJsOwoJCXJldHVybiBmYWxzZTsKCX0sCglnZXRIZWlnaHQ6IGZ1bmN0aW9uICgpIHsKCQkKCQl2YXIgZSA9ICdhbGwnOwoJCWlmKGFyZ3VtZW50c1swXSkgewoJCQllID0gYXJndW1lbnRzWzBdOwoJCX0KCQkKCQlpZihlID09ICdmaWxlb3BlcmF0aW9ucycgJiYgdHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJdmFyIGhlYWRlckhlaWdodCA9IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9oZWFkZXInXS5oZWlnaHQoKTsKCQkJCWF0dHJpYnMgPSB7CgkJCQkJZmlsZU9wZXJhdGlvbnNIZWlnaHQ6ICAgICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZW9wZXJhdGlvbnMnXS5oZWlnaHQoKSwKCQkJCQlmaWxlT3BlcmF0aW9uc1BhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWZpbGVPcGVyYXRpb25zUGFkZGluZ0JvdHRvbTogSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVvcGVyYXRpb25zJ10uY3NzKCdwYWRkaW5nLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJZmlsZU9wZXJhdGlvbnNNYXJnaW5Ub3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZW9wZXJhdGlvbnMnXS5jc3MoJ21hcmdpbi10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWZpbGVPcGVyYXRpb25zTWFyZ2luQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVvcGVyYXRpb25zJ10uY3NzKCdtYXJnaW4tYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlmaWxlT3BlcmF0aW9uc0JvcmRlclRvcDogICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddLmNzcygnYm9yZGVyLXRvcC13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJZmlsZU9wZXJhdGlvbnNCb3JkZXJCb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZW9wZXJhdGlvbnMnXS5jc3MoJ2JvcmRlci1ib3R0b20td2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpCgkJCQl9OwoJCQlpZihKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zJ10uYXR0cignY2xhc3MnKSA9PSAnbm90aWZpY2F0aW9ucy1zaG93JykgewoJCQkJZm9yKHZhciBpIGluIGF0dHJpYnMpIHsKCQkJCQlhdHRyaWJzW2ldID0gcGFyc2VJbnQoYXR0cmlic1tpXSk7CgkJCQkJaWYodHlwZW9mIGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgYXR0cmlic1tpXSA9PSAndW5kZWZpbmVkJyB8fCBpc05hTihhdHRyaWJzW2ldKSkgewoJCQkJCQlhdHRyaWJzW2ldID0gMDsKCQkJCQl9CgkJCQkJaGVhZGVySGVpZ2h0ID0gZXZhbChoZWFkZXJIZWlnaHQgLSBhdHRyaWJzW2ldKTsKCQkJCX0KCQkJfQoJCQllbHNlIGlmKEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMnXS5hdHRyKCdjbGFzcycpID09ICdub3RpZmljYXRpb25zLWhpZGUnKSB7CgkJCQlhdHRyaWJzLmZvbyA9IDA7IC8vIGR1bm5vIHdoeSBpIG5lZWQgdG8gZG8gdGhpcwoJCQkJZm9yKHZhciBpIGluIGF0dHJpYnMpIHsKCQkJCQlhdHRyaWJzW2ldID0gcGFyc2VJbnQoYXR0cmlic1tpXSk7CgkJCQkJaWYodHlwZW9mIGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgYXR0cmlic1tpXSA9PSAndW5kZWZpbmVkJyB8fCBpc05hTihhdHRyaWJzW2ldKSkgewoJCQkJCQlhdHRyaWJzW2ldID0gMDsKCQkJCQl9CgkJCQkJaGVhZGVySGVpZ2h0ID0gZXZhbChoZWFkZXJIZWlnaHQgKyBhdHRyaWJzW2ldKTsKCQkJCX0KCQkJfQoJCX0KCQkKCQlpZiAoKGUgPT0gJ2ZpbGVsaXN0JyB8fCBlID09ICdhbGwnIHx8IGUgPT0gJ2ZpbGVvcGVyYXRpb25zJykgJiYgdHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCgkJCWlmKHR5cGVvZiBoZWFkZXJIZWlnaHQgPT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXZhciBoZWFkZXJIZWlnaHQgPSBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfaGVhZGVyJ10uaGVpZ2h0KCk7CgkJCX0KCQkJdmFyIGF0dHJpYnMgPSB7CgkJCQkJaGVhZGVySGVpZ2h0OiAgICAgICAgaGVhZGVySGVpZ2h0LAoJCQkJCWhlYWRlclBhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9oZWFkZXInXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQloZWFkZXJQYWRkaW5nQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfaGVhZGVyJ10uY3NzKCdwYWRkaW5nLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJaGVhZGVyTWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddLmNzcygnbWFyZ2luLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJaGVhZGVyTWFyZ2luQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJaGVhZGVyQm9yZGVyVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddLmNzcygnYm9yZGVyLXRvcC13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJaGVhZGVyQm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddLmNzcygnYm9yZGVyLWJvdHRvbS13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJZmlsZWxpc3RQYWRkaW5nVG9wOiAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlmaWxlbGlzdFBhZGRpbmdCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWZpbGVsaXN0TWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlmaWxlbGlzdE1hcmdpbkJvdHRvbTogIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJZmlsZWxpc3RCb3JkZXJUb3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ2JvcmRlci10b3Atd2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWZpbGVsaXN0Qm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQljb250ZW50UGFkZGluZ1RvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQljb250ZW50UGFkZGluZ0JvdHRvbTogSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQljb250ZW50TWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ21hcmdpbi10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWNvbnRlbnRNYXJnaW5Cb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJY29udGVudEJvcmRlclRvcDogICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9jb250ZW50J10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQljb250ZW50Qm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ2JvcmRlci1ib3R0b20td2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCXRpdGxlYmFySGVpZ2h0OiAgICAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uaGVpZ2h0KCksCgkJCQkJdGl0bGViYXJQYWRkaW5nVG9wOiAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQl0aXRsZWJhclBhZGRpbmdCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCXRpdGxlYmFyTWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQl0aXRsZWJhck1hcmdpbkJvdHRvbTogIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJdGl0bGViYXJCb3JkZXJUb3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ2JvcmRlci10b3Atd2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCXRpdGxlYmFyQm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwUGFkZGluZ1RvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdwYWRkaW5nLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJam1mcFBhZGRpbmdCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBNYXJnaW5Ub3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ21hcmdpbi10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBNYXJnaW5Cb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ21hcmdpbi1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBCb3JkZXJUb3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2JvcmRlci10b3Atd2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBCb3JkZXJCb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2JvcmRlci1ib3R0b20td2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpCgkJCQl9LAoJCQkJbWluSGVpZ2h0ID0gcGFyc2VJbnQoSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uY3NzKCdtaW4taGVpZ2h0JykucmVwbGFjZSgvW15cZF0qL2csJycpKTsKCQkJCgkJCW1pbkhlaWdodCA9IHR5cGVvZiBtaW5IZWlnaHQgPT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4obWluSGVpZ2h0KSA/IDAgOiBtaW5IZWlnaHQ7CgkJCQoJCQlKTUZQLnRtcC5maWxlTGlzdEhlaWdodCA9IHBhcnNlSW50KGpRdWVyeSh3aW5kb3cpLmhlaWdodCgpKTsKCQkJSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQgPSB0eXBlb2YgSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQgPT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4oSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpID8gMCA6IEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0OwoJCQkKCQkJZm9yKHZhciBpIGluIGF0dHJpYnMpIHsKCQkJCWF0dHJpYnNbaV0gPSBwYXJzZUludChhdHRyaWJzW2ldKTsKCQkJCWlmKHR5cGVvZiBhdHRyaWJzW2ldID09ICd1bmRlZmluZWQnIHx8IGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4oYXR0cmlic1tpXSkpIHsKCQkJCQlhdHRyaWJzW2ldID0gMDsKCQkJCX0KCQkJCUpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ID0gZXZhbChKTUZQLnRtcC5maWxlTGlzdEhlaWdodCAtIGF0dHJpYnNbaV0pOwoJCQl9CgkJCQoJCQlpZihKTUZQLnRtcC5maWxlTGlzdEhlaWdodCA8PSBtaW5IZWlnaHQpIHsKCQkJCUpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ID0gbWluSGVpZ2h0OwoJCQl9CgkJfQoJCWlmKGUgPT0gJ2ptZnAnIHx8IGUgPT0gJ2FsbCcgfHwgZSA9PSAnZmlsZW9wZXJhdGlvbnMnKSB7CgkJCWlmKEpNRlAuaWVWZXJzaW9uKCkgPCA4KSB7CgkJCQlKTUZQLnRtcC5oZWlnaHQgPSAnYXV0byc7CgkJCQlyZXR1cm47CgkJCX0KCQkJdmFyIGNvbnRlbnRIZWlnaHQgID0gSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5oZWlnaHQoKSwKCQkJCWZpbGVMaXN0SGVpZ2h0ID0gSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uaGVpZ2h0KCk7CgkJCQoJCQljb250ZW50SGVpZ2h0ICA9IHR5cGVvZiBjb250ZW50SGVpZ2h0ID09ICd1bmRlZmluZWQnIHx8IGlzTmFOKGNvbnRlbnRIZWlnaHQpID8gMCA6IGNvbnRlbnRIZWlnaHQ7CgkJCWZpbGVMaXN0SGVpZ2h0ID0gdHlwZW9mIGZpbGVMaXN0SGVpZ2h0ID09ICd1bmRlZmluZWQnIHx8IGlzTmFOKGZpbGVMaXN0SGVpZ2h0KSA/IDAgOiBmaWxlTGlzdEhlaWdodDsKCQkJCgkJCWlmKGZpbGVMaXN0SGVpZ2h0ID4gSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpIHsKCQkJCUpNRlAudG1wLmhlaWdodCA9IGV2YWwoY29udGVudEhlaWdodCAtIGZpbGVMaXN0SGVpZ2h0ICsgSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpOwoJCQl9CgkJCWVsc2UgewoJCQkJSk1GUC50bXAuaGVpZ2h0ID0gY29udGVudEhlaWdodDsKCQkJfQoJCQkvLyBkdW5ubyB3aHkgaSBuZWVkIHRvIGRvIHRoaXMKCQkJaWYoIWZpbGVMaXN0SGVpZ2h0ICYmICFKTUZQLnRtcC5maWxlTGlzdEhlaWdodCkgewoJCQkJSk1GUC50bXAuaGVpZ2h0ID0gZXZhbChKTUZQLnRtcC5oZWlnaHQgKyA1KTsKCQkJfQoJCQkvLy0tLQoJCQl2YXIgYXR0cmlicyA9IHsKCQkJCXRpdGxlYmFySGVpZ2h0OiAgICAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uaGVpZ2h0KCksCgkJCQl0aXRsZWJhclBhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJdGl0bGViYXJQYWRkaW5nQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCXRpdGxlYmFyTWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCXRpdGxlYmFyTWFyZ2luQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdtYXJnaW4tYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCXRpdGxlYmFyQm9yZGVyVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCXRpdGxlYmFyQm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBDb250ZW50UGFkZGluZ1RvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBDb250ZW50UGFkZGluZ0JvdHRvbTogSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBDb250ZW50TWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ21hcmdpbi10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJam1mcENvbnRlbnRNYXJnaW5Cb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQlqbWZwQ29udGVudEJvcmRlclRvcDogICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9jb250ZW50J10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBDb250ZW50Qm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ2JvcmRlci1ib3R0b20td2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJam1mcFBhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJam1mcFBhZGRpbmdCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJZm9vOjEwIC8vIGR1bm5vIHdoeSBpIG5lZWQgdG8gZG8gdGhpcwoJCQl9OwoJCQlmb3IodmFyIGkgaW4gYXR0cmlicykgewoJCQkJYXR0cmlic1tpXSA9IHBhcnNlSW50KGF0dHJpYnNbaV0pOwoJCQkJaWYodHlwZW9mIGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgYXR0cmlic1tpXSA9PSAndW5kZWZpbmVkJyB8fCBpc05hTihhdHRyaWJzW2ldKSkgewoJCQkJCWF0dHJpYnNbaV0gPSAwOwoJCQkJfQoJCQkJSk1GUC50bXAuaGVpZ2h0ID0gZXZhbChKTUZQLnRtcC5oZWlnaHQgKyBhdHRyaWJzW2ldKTsKCQkJfQoJCQkKCQkJYXR0cmlicyA9IHsKCQkJCWptZnBNYXJnaW5Ub3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnbWFyZ2luLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQlqbWZwTWFyZ2luQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ21hcmdpbi1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJam1mcEJvcmRlclRvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBCb3JkZXJCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnYm9yZGVyLWJvdHRvbS13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJykKCQkJfTsKCQkJZm9yKHZhciBpIGluIGF0dHJpYnMpIHsKCQkJCWF0dHJpYnNbaV0gPSBwYXJzZUludChhdHRyaWJzW2ldKTsKCQkJCWlmKHR5cGVvZiBhdHRyaWJzW2ldID09ICd1bmRlZmluZWQnIHx8IGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4oYXR0cmlic1tpXSkpIHsKCQkJCQlhdHRyaWJzW2ldID0gMDsKCQkJCX0KCQkJCUpNRlAudG1wLmhlaWdodCA9IGV2YWwoSk1GUC50bXAuaGVpZ2h0IC0gYXR0cmlic1tpXSk7CgkJCX0KCQl9Cgl9LAoJcmVzaXplOiBmdW5jdGlvbigpIHsKCQl2YXIgZSA9ICdmaWxlbGlzdCc7CgkJaWYodHlwZW9mIGFyZ3VtZW50c1swXSAhPSAndW5kZWZpbmVkJykgewoJCQllID0gYXJndW1lbnRzWzBdOwoJCX0KCQlKTUZQLmdldEhlaWdodChlKTsKCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2hlaWdodCcsICdhdXRvJyk7CgkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddICE9ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ICsgJ3B4Jyk7CgkJfQoJCXJldHVybiBmYWxzZTsKCX0sCglwaWNrRmlsZTogZnVuY3Rpb24gKHVybCwgcGlja2VySWQpIHsKCQlpZih0eXBlb2YgSk1GUC5pbnB1dHNbcGlja2VySWRdID09ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAucmVnaXN0ZXJJbnB1dCh7aWQ6cGlja2VySWR9KTsKCQl9CgkJalF1ZXJ5KCcjJyArIHBpY2tlcklkKS52YWwodXJsKTsKCQlKTUZQLmNsb3NlKHBpY2tlcklkKTsKCQlqUXVlcnkoJyMnICsgcGlja2VySWQpLnRyaWdnZXIoJ2NoYW5nZScpOwoJCXJldHVybiBmYWxzZTsKCX0sCglyZWxvYWREcm9wZG93bjogZnVuY3Rpb24gKHVybCwgdGFyZ2V0SWQpIHsKCQkKCQlpZih0eXBlb2YgSk1GUC5pbnB1dHNbdGFyZ2V0SWRdID09ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAucmVnaXN0ZXJJbnB1dCh7aWQ6dGFyZ2V0SWR9KTsKCQl9CgkJCgkJdmFyIHRhcmdldFdyYXBwZXIgPSBqUXVlcnkoJyMnICsgdGFyZ2V0SWQgKyAnX0pNRlBfZHJvcGRvd25fd3JhcHBlcicpLAoJCQlyZWxvYWRMaW5rICAgID0galF1ZXJ5KCcjJyArIHRhcmdldElkICsgJ19KTUZQX3JlbG9hZF9kcm9wZG93bicpLAoJCQl1cGxvYWRMaW5rICAgID0galF1ZXJ5KCcjJyArIHRhcmdldElkICsgJ19KTUZQX3VwbG9hZCcpLAoJCQlpbnB1dCAgICAgICAgID0galF1ZXJ5KCcjJyArIHRhcmdldElkKTsKCQkKCQlpZih0eXBlb2YgdGFyZ2V0V3JhcHBlci5hdHRyKCdpZCcpID09ICd1bmRlZmluZWQnKSB7CgkJCXJldHVybjsKCQl9CgkJdmFyIHNlbE9wdCA9IGpRdWVyeSgnIycgKyB0YXJnZXRJZCArICcgb3B0aW9uOnNlbGVjdGVkOmZpcnN0Jyk7CgkJdGFyZ2V0V3JhcHBlci5jbG9zZXN0KCcuSk1GUF9pbnB1dF93cmFwcGVyJykuY2hpbGRyZW4oJ2ltZy5KTUZQX2xvYWRpbmdfaW1nOmZpcnN0JykucmVtb3ZlQXR0cignc3R5bGUnKTsKCQl0YXJnZXRXcmFwcGVyLmNsb3Nlc3QoJy5KTUZQX2lucHV0X3dyYXBwZXInKS5maW5kKCcuSk1GUF9saW5rJykuYWRkQ2xhc3MoJ0pNRlBfZGlzYWJsZWQnKS51bmJpbmQoJ2NsaWNrJykuY2xpY2soZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2U7fSk7CgkJaW5wdXQuYXR0cignZGlzYWJsZWQnLCdkaXNhYmxlZCcpLmFkZENsYXNzKCdKTUZQX2Rpc2FibGVkJykudW5iaW5kKCdjaGFuZ2UnKTsKCQl0YXJnZXRXcmFwcGVyLmFkZENsYXNzKCdKTUZQX2Rpc2FibGVkJykuZmFkZVRvKEpNRlAuaW5wdXRzW3RhcmdldElkXS5mYWRlU3BlZWQsIDAsIGZ1bmN0aW9uICgpIHsKCQkJalF1ZXJ5LmdldCh1cmwgKyAnJicgKyBKTUZQLmlucHV0c1t0YXJnZXRJZF0ubW9kdWxlSWQgKyAnc2hvd3RlbXBsYXRlPWZhbHNlJicgICsgSk1GUC5pbnB1dHNbdGFyZ2V0SWRdLm1vZHVsZUlkICsgJ2Rpc2FibGVfdGhlbWU9MSYnICsgSk1GUC5pbnB1dHNbdGFyZ2V0SWRdLm1vZHVsZUlkICsgJ2FqYXg9MSYnICsgSk1GUC5pbnB1dHNbdGFyZ2V0SWRdLm1vZHVsZUlkICsgJ3ZhbHVlPScgKyBzZWxPcHQuYXR0cigndmFsdWUnKSwgZnVuY3Rpb24oZGF0YSkgewoJCQkJLy8gcmVwbGFjZQoJCQkJdGFyZ2V0V3JhcHBlci5odG1sKGRhdGEpOwoJCQkJLy8gdG9nZ2xlIHRodW1ibmFpbAoJCQkJdmFyIHNlbE9wdCA9IGpRdWVyeSgnIycgKyB0YXJnZXRJZCArICcgb3B0aW9uOnNlbGVjdGVkOmZpcnN0Jyk7CgkJCQlKTUZQLnRvZ2dsZVRodW1ibmFpbCh0YXJnZXRJZCxzZWxPcHQuYXR0cigndGh1bWJuYWlsJyksc2VsT3B0LmF0dHIoJ3ZhbHVlJyksc2VsT3B0LmF0dHIoJ3ZhbHVlJykpOwoJCQkJLy8gZmFkZSBpbgoJCQkJdGFyZ2V0V3JhcHBlci5mYWRlVG8oSk1GUC5pbnB1dHNbdGFyZ2V0SWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKXsKCQkJCQlyZWxvYWRMaW5rLnJlbW92ZUNsYXNzKCdKTUZQX2Rpc2FibGVkJykudW5iaW5kKCdjbGljaycpLmNsaWNrKGZ1bmN0aW9uKCl7CgkJCQkJCXZhciBwaWNrZXJJZCA9IHRoaXMuaWQuc3Vic3RyKDAsdGhpcy5pZC5sYXN0SW5kZXhPZignX0pNRlBfcmVsb2FkX2Ryb3Bkb3duJykpOwoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uYnJvd3NlVXJsICE9ICcnKQoJCQkJCQkJSk1GUC5yZWxvYWREcm9wZG93bihKTUZQLmlucHV0c1twaWNrZXJJZF0uYnJvd3NlVXJsLCBwaWNrZXJJZCk7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9KTsKCQkJCQl1cGxvYWRMaW5rLnJlbW92ZUNsYXNzKCdKTUZQX2Rpc2FibGVkJykudW5iaW5kKCdjbGljaycpLmNsaWNrKGZ1bmN0aW9uKCl7CgkJCQkJCXZhciBwaWNrZXJJZCA9IHRoaXMuaWQuc3Vic3RyKDAsdGhpcy5pZC5sYXN0SW5kZXhPZignX0pNRlBfdXBsb2FkJykpOwoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0udXBsb2FkVXJsICE9ICcnKQoJCQkJCQkJSk1GUC5sb2FkRGlyKEpNRlAuaW5wdXRzW3BpY2tlcklkXS51cGxvYWRVcmwsIHBpY2tlcklkKTsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0pOwoJCQkJCWpRdWVyeSgnIycgKyB0YXJnZXRJZCkucmVtb3ZlQXR0cignZGlzYWJsZWQnKS5yZW1vdmVDbGFzcygnSk1GUF9kaXNhYmxlZCcpLmNoYW5nZShmdW5jdGlvbigpewoJCQkJCQlKTUZQLnRvZ2dsZVRodW1ibmFpbCh0aGlzLmlkLCBqUXVlcnkoJyMnK3RoaXMuaWQrJyBvcHRpb246c2VsZWN0ZWQ6Zmlyc3QnKS5hdHRyKCd0aHVtYm5haWwnKSx0aGlzLnZhbHVlLHRoaXMudmFsdWUpOwoJCQkJCX0pOwoJCQkJCXRhcmdldFdyYXBwZXIuY2xvc2VzdCgnLkpNRlBfaW5wdXRfd3JhcHBlcicpLmNoaWxkcmVuKCdpbWcuSk1GUF9sb2FkaW5nX2ltZzpmaXJzdCcpLmNzcygnZGlzcGxheScsJ25vbmUnKTsKCQkJCX0pOwoJCQl9KTsKCQl9KTsKCX0sCglzZWxlY3RBbGw6IGZ1bmN0aW9uIChvYmopIHsKCQlpZiAob2JqLnZhbHVlID09IDEpIHsKCQkJalF1ZXJ5KCdpbnB1dFtuYW1lXj0iJytvYmouaWQrJy0iXScpLmF0dHIoJ2NoZWNrZWQnLCdjaGVja2VkJyk7CgkJCW9iai52YWx1ZSA9IDA7CgkJfQoJCWVsc2UgewoJCQlqUXVlcnkoJ2lucHV0W25hbWVePSInK29iai5pZCsnLSJdJykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwoJCQlvYmoudmFsdWUgPSAxOwoJCX0KCX0sCgl0eXBlT2Y6IGZ1bmN0aW9uICh2YWx1ZSkgewoJCXZhciB0eXBlID0gdHlwZW9mIHZhbHVlOwoJCWlmICh0eXBlID09PSAnb2JqZWN0JykgewoJCQlpZiAodmFsdWUpIHsKCQkJCWlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7CgkJCQkJdHlwZSA9ICdhcnJheSc7CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQl0eXBlID0gJ251bGwnOwoJCQl9CgkJfQoJCXJldHVybiB0eXBlOwoJfSwKCWFqYXhGb3JtOiBmdW5jdGlvbiAoKSB7CgkJdmFyIGZvcm0gPSBqUXVlcnkoJyNKTUZQX2hlYWRlciBmb3JtOmZpcnN0Jyk7CgkJaWYoZm9ybS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCWZvcm0uYXBwZW5kKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInK0pNRlAuaW5wdXRzW0pNRlAudG1wLmN1cnJlbnRQaWNrZXJJZF0ubW9kdWxlSWQrJ2Rpc2FibGVfdGhlbWUiIHZhbHVlPSIxIiAvPicpOwoJCQlmb3JtLmFwcGVuZCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJytKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLm1vZHVsZUlkKydzaG93dGVtcGxhdGUiIHZhbHVlPSJmYWxzZSIgLz4nKTsKCQkJZm9ybS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicrSk1GUC5pbnB1dHNbSk1GUC50bXAuY3VycmVudFBpY2tlcklkXS5tb2R1bGVJZCsnYWpheCIgdmFsdWU9IjEiIC8+Jyk7CgkJCQoJCQl2YXIgb3B0aW9ucyA9IHsKCQkJCWJlZm9yZVN1Ym1pdDogZnVuY3Rpb24oZm9ybURhdGEsIGpxRm9ybSwgb3B0aW9ucyl7CgkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5JywnYmxvY2snKTsKCQkJCQlqcUZvcm0uZmluZCgnaW5wdXQnKS5hZGRDbGFzcygnSk1GUF9kaXNhYmxlZCcpOwoJCQkJCXJldHVybiB0cnVlOwoJCQkJfSwKCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKHJlc3BvbnNlVGV4dCkgewoJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9jb250ZW50J10uZmFkZVRvKEpNRlAuaW5wdXRzW0pNRlAudG1wLmN1cnJlbnRQaWNrZXJJZF0uZmFkZVNwZWVkLCAwLCBmdW5jdGlvbigpIHsKCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5odG1sKHJlc3BvbnNlVGV4dCk7CgkJCQkJCQoJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfaGVhZGVyJ10gICA9IGpRdWVyeSgiI0pNRlBfaGVhZGVyIik7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddID0galF1ZXJ5KCIjSk1GUF9maWxlbGlzdCIpOwoJCQkJCQlpZih0eXBlb2YgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVvcGVyYXRpb25zJ10gICAgICAgID0galF1ZXJ5KCcjSk1GUF9maWxlb3BlcmF0aW9ucycpOwoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RvZ2dsZV9maWxlb3BlcmF0aW9ucyddID0galF1ZXJ5KCcjSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMnKTsKCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsICcnKS5jc3MoJ29wYWNpdHknLCcxJyk7CgkJCQkJCX0KCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5vbkltYWdlc0xvYWQoewoJCQkJCQkJY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3Q6dHJ1ZSwKCQkJCQkJCWFsbDogZnVuY3Rpb24oKSB7CgkJCQkJCQkJSk1GUC5nZXRIZWlnaHQoKTsKCQkJCQkJCQlpZih0eXBlb2YgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ21heC1oZWlnaHQnLCBKTUZQLnRtcC5maWxlTGlzdEhlaWdodCArICdweCcpOwoJCQkJCQkJCX0KCQkJCQkJCQlpZihKTUZQLmllVmVyc2lvbigpIDwgOCkgewoJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2hlaWdodCcsJ2F1dG8nKTsKCQkJCQkJCQl9CgkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uYW5pbWF0ZSh7aGVpZ2h0OiBKTUZQLnRtcC5oZWlnaHQgKyAoSk1GUC50bXAuaGVpZ2h0ICE9ICdhdXRvJyA/ICdweCcgOiAnJyl9LCBKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLmFuaW1hdGVTcGVlZCAsICdzd2luZycsIGZ1bmN0aW9uKCkgewoJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmZhZGVUbyhKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQkKCQkJCQkJCQkJCWZvcih2YXIgaSBpbiBKTUZQLmlucHV0cykKCQkJCQkJCQkJCQlKTUZQLnJlbG9hZERyb3Bkb3duKEpNRlAuaW5wdXRzW2ldLmJyb3dzZVVybCwgaSk7CgkJCQkJCQkJCQkKCQkJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9sb2FkaW5nX2ltZyddLmNzcygnZGlzcGxheScsJ25vbmUnKTsKCQkJCQkJCQkJCUpNRlAuYWpheEZvcm0oKTsKCQkJCQkJCQkJfSk7CgkJCQkJCQkJfSk7CgkJCQkJCQl9CgkJCQkJCX0pOwoJCQkJCX0pOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfTsKCQkJZm9ybS5hamF4Rm9ybShvcHRpb25zKTsKCQl9Cgl9LAoJZGVsZXRlRmlsZTogZnVuY3Rpb24gKHVybCwgY29uZmlybU1zZywgdmFsdWUpIHsKCQl2YXIgY29uZiA9IGNvbmZpcm0oY29uZmlybU1zZyk7CgkJaWYoY29uZikgewoJCQl2YXIgX3VybCA9IEpNRlAudG1wLmN1cnJlbnRVcmw7CgkJCUpNRlAubG9hZERpcih1cmwgKyAnJicgKyBKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLm1vZHVsZUlkICsgJ3Nob3d0ZW1wbGF0ZT1mYWxzZSYnICArIEpNRlAuaW5wdXRzW0pNRlAudG1wLmN1cnJlbnRQaWNrZXJJZF0ubW9kdWxlSWQgKyAnZGlzYWJsZV90aGVtZT0xJicgKyBKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLm1vZHVsZUlkICsgJ2FqYXg9MScsSk1GUC50bXAuY3VycmVudFBpY2tlcklkLEpNRlAudG1wLmN1cnJlbnREaXIpOwoJCQlmb3IodmFyIGkgaW4gSk1GUC5pbnB1dHMpCgkJCQlKTUZQLnJlbG9hZERyb3Bkb3duKEpNRlAuaW5wdXRzW2ldLmJyb3dzZVVybCwgaSk7CgkJCUpNRlAudG1wLmN1cnJlbnRVcmwgPSBfdXJsOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9LAoJaWVWZXJzaW9uOiBmdW5jdGlvbigpIHsKCQl2YXIgdmVyc2lvbiA9IDk5OTsKCQlpZiAobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIpICE9IC0xKSB7CgkJCXZlcnNpb24gPSBwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uLnNwbGl0KCJNU0lFIilbMV0pOwoJCX0KCQlyZXR1cm4gdmVyc2lvbjsKCX0KfTsKam1mcF9vbmxvYWQucHVzaChmdW5jdGlvbigpewoJanNMb2FkZXIubG9hZCgKCQl7CgkJCXVybDogSk1GUC5vcHRpb25zLnJvb3RVcmwgKyAnL21vZHVsZXMvSk1GaWxlUGlja2VyL2pzL2pxLm1pbi5qcycsCgkJCWxvYWRUeXBlOiAnZGVmZXInLAoJCQlyZWFkeTpmdW5jdGlvbigpIHsKCQkJCXJldHVybiAodHlwZW9mIGpRdWVyeSA9PSAnZnVuY3Rpb24nKTsKCQkJfSwKCQkJY2FsbEJhY2s6IGZ1bmN0aW9uKHJlYWR5KSB7CgkJCQlpZihyZWFkeSkgewoJCQkJCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJCQkJCWpRdWVyeSgnLkpNRlBfaW5wdXQnKS5hdHRyKCdkaXNhYmxlZCcsJ2Rpc2FibGVkJykuYWRkQ2xhc3MoJ0pNRlBfZGlzYWJsZWQnKS5jbGljayhmdW5jdGlvbigpIHtyZXR1cm4gZmFsc2U7fSk7CgkJCQkJCWpRdWVyeSgnLkpNRlBfbGluaycpLmNsaWNrKGZ1bmN0aW9uKCkge3JldHVybiBmYWxzZTt9KS5hZGRDbGFzcygnSk1GUF9kaXNhYmxlZCcpOwoJCQkJCX0pOwoJCQkJCWpzTG9hZGVyLmxvYWQoW3sKCQkJCQkJdXJsOiBKTUZQLm9wdGlvbnMucm9vdFVybCArICcvbW9kdWxlcy9KTUZpbGVQaWNrZXIvanMvanEudWkuY29yZS5taW4uanMnLAoJCQkJCQlsb2FkVHlwZTogJ2RlZmVyJywKCQkJCQkJcmVhZHk6IGZ1bmN0aW9uKCkgewoJCQkJCQkJcmV0dXJuICh0eXBlb2YgalF1ZXJ5ID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGpRdWVyeS51aSAhPSAndW5kZWZpbmVkJykKCQkJCQkJfSwKCQkJCQkJY2FsbEJhY2s6IGZ1bmN0aW9uIChyZWFkeSkgewoJCQkJCQkJaWYocmVhZHkpIHsKCQkJCQkJCQlqc0xvYWRlci5sb2FkKAoJCQkJCQkJCQl7CgkJCQkJCQkJCQl1cmw6IEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qcS51aS53aWRnZXQubWluLmpzJywKCQkJCQkJCQkJCWxvYWRUeXBlOiAnZGVmZXInLAoJCQkJCQkJCQkJcmVhZHk6IGZ1bmN0aW9uKCkgewoJCQkJCQkJCQkJCXJldHVybiAodHlwZW9mIGpRdWVyeSA9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBqUXVlcnkudWkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeS53aWRnZXQgIT0gJ3VuZGVmaW5lZCcpCgkJCQkJCQkJCQl9LAoJCQkJCQkJCQkJY2FsbEJhY2s6IGZ1bmN0aW9uKHJlYWR5KSB7CgkJCQkJCQkJCQkJaWYocmVhZHkpIHsKCQkJCQkJCQkJCQkJanNMb2FkZXIubG9hZCgKCQkJCQkJCQkJCQkJCXsKCQkJCQkJCQkJCQkJCQl1cmw6IEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qcS51aS5tb3VzZS5taW4uanMnLAoJCQkJCQkJCQkJCQkJCWxvYWRUeXBlOiAnZGVmZXInLAoJCQkJCQkJCQkJCQkJCXJlYWR5OiBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCQkJCQkJcmV0dXJuICh0eXBlb2YgalF1ZXJ5ICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBqUXVlcnkudWkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeS51aS5tb3VzZSAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgalF1ZXJ5LndpZGdldCAhPSAndW5kZWZpbmVkJykKCQkJCQkJCQkJCQkJCQl9CgkJCQkJCQkJCQkJCQl9LAoJCQkJCQkJCQkJCQkJZnVuY3Rpb24gKHJlYWR5KSB7CgkJCQkJCQkJCQkJCQkJanNMb2FkZXIubG9hZChbCgkJCQkJCQkJCQkJCQkJCXsKCQkJCQkJCQkJCQkJCQkJCXVybDogSk1GUC5vcHRpb25zLnJvb3RVcmwgKyAnL21vZHVsZXMvSk1GaWxlUGlja2VyL2pzL2pxLnVpLmRyYWdnYWJsZS5taW4uanMnLAoJCQkJCQkJCQkJCQkJCQkJbG9hZFR5cGU6ICdkZWZlcicsCgkJCQkJCQkJCQkJCQkJCQlyZWFkeTogZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQkJCQkJCQkJcmV0dXJuICh0eXBlb2YgalF1ZXJ5ICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBqUXVlcnkudWkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeSgpLmRyYWdnYWJsZSAhPSAndW5kZWZpbmVkJykKCQkJCQkJCQkJCQkJCQkJCX0KCQkJCQkJCQkJCQkJCQkJfSwKCQkJCQkJCQkJCQkJCQkJewoJCQkJCQkJCQkJCQkJCQkJdXJsOiBKTUZQLm9wdGlvbnMucm9vdFVybCArICcvbW9kdWxlcy9KTUZpbGVQaWNrZXIvanMvanEudWkucmVzaXphYmxlLm1pbi5qcycsCgkJCQkJCQkJCQkJCQkJCQlsb2FkVHlwZTogJ2RlZmVyJywKCQkJCQkJCQkJCQkJCQkJCXJlYWR5OiBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCQkJCQkJCQlyZXR1cm4gKHR5cGVvZiBqUXVlcnkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeS51aSAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgalF1ZXJ5KCkucmVzaXphYmxlICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBqUXVlcnkud2lkZ2V0ICE9ICd1bmRlZmluZWQnKQoJCQkJCQkJCQkJCQkJCQkJfQoJCQkJCQkJCQkJCQkJCQl9CgkJCQkJCQkJCQkJCQkJXSk7CgkJCQkJCQkJCQkJCQl9CgkJCQkJCQkJCQkJCSk7CgkJCQkJCQkJCQkJfQoJCQkJCQkJCQkJfQoJCQkJCQkJCQl9CgkJCQkJCQkJKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJewoJCQkJCQl1cmw6IEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qcS5vbkltZ0xvYWQubWluLmpzJywKCQkJCQkJbG9hZFR5cGU6ICdkZWZlcicsCgkJCQkJCXJlYWR5OiBmdW5jdGlvbigpIHsKCQkJCQkJCXJldHVybiAodHlwZW9mIGpRdWVyeSAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgalF1ZXJ5KCkub25JbWFnZXNMb2FkICE9ICd1bmRlZmluZWQnKQoJCQkJCQl9LAoJCQkJCQljYWxsQmFjazogZnVuY3Rpb24ocmVhZHkpewoJCQkJCQkJaWYocmVhZHkpIHsKCQkJCQkJCQkkLmZuLm9uSW1hZ2VzTG9hZC5kZWZhdWx0cy5vbkVycm9yID0gZnVuY3Rpb24ob2JqKSB7CgkJCQkJCQkJCWpRdWVyeShvYmopLmF0dHIoJ3NyYycsIEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9pbWFnZXMvaW1hZ2Vjb3JydXB0LmdpZicpOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJewoJCQkJCQl1cmw6IEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qcS5mb3JtLm1pbi5qcycsCgkJCQkJCWxvYWRUeXBlOiAnZGVmZXInLAoJCQkJCQlyZWFkeTogZnVuY3Rpb24oKSB7CgkJCQkJCQlyZXR1cm4gKHR5cGVvZiBqUXVlcnkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeSgpLmFqYXhTdWJtaXQgIT0gJ3VuZGVmaW5lZCcpCgkJCQkJCX0KCQkJCQl9CgkJCQkJXSk7CgkJCQl9CgkJCX0KCQl9LAoJCWZ1bmN0aW9uIChyZWFkeSkgewoJCQlpZihyZWFkeSkgewoJCQkJalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewoJCQkJCWpRdWVyeSgnLmptZnBfY29udHJhY3QsIC5qbWZwX2V4cGFuZCcpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnaGVpZ2h0JywnYXV0bycpOwoJCQkJCQlpZih0aGlzLmNsYXNzTmFtZSA9PSAnam1mcF9leHBhbmQnKQoJCQkJCQkJalF1ZXJ5KCcjSk1GUF9maWxlb3BlcmF0aW9uc193cmFwcGVyJykucmVtb3ZlQ2xhc3MoJ2ptZnBfbm8tYm9yZGVyJyk7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddCgkJCQkJCQkuc2xpZGVUb2dnbGUoZnVuY3Rpb24oKXsKCQkJCQkJCQlKTUZQLnJlc2l6ZSgpOwoJCQkJCQkJCWlmKEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddLmNzcygnZGlzcGxheScpID09ICdub25lJykKCQkJCQkJCQkJalF1ZXJ5KCcjSk1GUF9maWxlb3BlcmF0aW9uc193cmFwcGVyJykuYWRkQ2xhc3MoJ2ptZnBfbm8tYm9yZGVyJyk7CgkJCQkJCQl9KQoJCQkJCQk7CgkJCQkJCQoJCQkJCQl0aGlzLmNsYXNzTmFtZSA9ICh0aGlzLmNsYXNzTmFtZSA9PSAnam1mcF9jb250cmFjdCcgPyAnam1mcF9leHBhbmQnIDogJ2ptZnBfY29udHJhY3QnKTsKCQkJCQkJalF1ZXJ5LmdldCh0aGlzLmhyZWYgKyBKTUZQLm9wdGlvbnMubW9kdWxlSWQgKyAnZGlzcGxheT0nICsgKHRoaXMuY2xhc3NOYW1lID09ICdqbWZwX2NvbnRyYWN0JyA/IDEgOiAwKSArICcmJyArIEpNRlAub3B0aW9ucy5tb2R1bGVJZCArICdkaXNhYmxlX3RoZW1lPTEmJyArIEpNRlAub3B0aW9ucy5tb2R1bGVJZCArICdzaG93dGVtcGxhdGU9ZmFsc2UmJyArIEpNRlAub3B0aW9ucy5tb2R1bGVJZCArICdhamF4PTEnKTsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0pOwoJCQkJCQoJCQkJCWpRdWVyeSgnLkpNRlBfbG9hZGluZ19pbWcnKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7CgkJCQkJalF1ZXJ5KCcuSk1GUF9pbnB1dCcpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJykucmVtb3ZlQ2xhc3MoJ0pNRlBfZGlzYWJsZWQnKS51bmJpbmQoJ2NsaWNrJyk7CgkJCQkJalF1ZXJ5KCcuSk1GUF9saW5rJykucmVtb3ZlQ2xhc3MoJ0pNRlBfZGlzYWJsZWQnKS51bmJpbmQoJ2NsaWNrJyk7CgkJCQkJalF1ZXJ5KCcuSk1GUF9icm93c2UnKS5saXZlKCdjbGljaycsIGZ1bmN0aW9uKCkgewoJCQkJCQl2YXIgcGlja2VySWQgPSB0aGlzLmlkLnN1YnN0cigwLHRoaXMuaWQubGFzdEluZGV4T2YoJ19KTUZQX2Jyb3dzZScpKTsKCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmJyb3dzZVVybCAhPSAnJykKCQkJCQkJCUpNRlAubG9hZERpcihKTUZQLmlucHV0c1twaWNrZXJJZF0uYnJvd3NlVXJsLCBwaWNrZXJJZCk7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9KTsKCQkJCQlqUXVlcnkoJy5KTUZQX3VwbG9hZCcpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CgkJCQkJCXZhciBwaWNrZXJJZCA9IHRoaXMuaWQuc3Vic3RyKDAsdGhpcy5pZC5sYXN0SW5kZXhPZignX0pNRlBfdXBsb2FkJykpOwoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0udXBsb2FkVXJsICE9ICcnKQoJCQkJCQkJSk1GUC5sb2FkRGlyKEpNRlAuaW5wdXRzW3BpY2tlcklkXS51cGxvYWRVcmwsIHBpY2tlcklkKTsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0pOwoJCQkJCWpRdWVyeSgnLkpNRlBfcmVsb2FkX2Ryb3Bkb3duJykubGl2ZSgnY2xpY2snLCBmdW5jdGlvbigpewoJCQkJCQl2YXIgcGlja2VySWQgPSB0aGlzLmlkLnN1YnN0cigwLHRoaXMuaWQubGFzdEluZGV4T2YoJ19KTUZQX3JlbG9hZF9kcm9wZG93bicpKTsKCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmJyb3dzZVVybCAhPSAnJykKCQkJCQkJCUpNRlAucmVsb2FkRHJvcGRvd24oSk1GUC5pbnB1dHNbcGlja2VySWRdLmJyb3dzZVVybCwgcGlja2VySWQpOwoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfSk7CgkJCQkJalF1ZXJ5KCkuYWpheEVycm9yKGZ1bmN0aW9uKGV2ZW50LCByZXF1ZXN0LCBzZXR0aW5ncyl7CgkJCQkJCWFsZXJ0KCdFcnJvcjogcmVxdWVzdGluZyBwYWdlICcgKyBzZXR0aW5ncy51cmwpOwoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfSk7CgkJCQkJalF1ZXJ5KCcuSk1GUF9jbGVhcicpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24oKXsKCQkJCQkJdmFyIGlkID0gdGhpcy5pZC5zdWJzdHIoMCx0aGlzLmlkLmxhc3RJbmRleE9mKCdfSk1GUF9jbGVhcicpKTsKCQkJCQkJalF1ZXJ5KCcjJytpZCkudmFsKCcnKTsKCQkJCQkJSk1GUC50b2dnbGVUaHVtYm5haWwoaWQsJycpOwoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfSk7CgkJCQkJalF1ZXJ5KCdzZWxlY3QuSk1GUF9kcm9wZG93bi5KTUZQX2ltYWdlJykudW5iaW5kKCdjaGFuZ2UnKS5saXZlKCdjaGFuZ2UnLCBmdW5jdGlvbigpewoJCQkJCQlKTUZQLnRvZ2dsZVRodW1ibmFpbCh0aGlzLmlkLCBqUXVlcnkoJyMnK3RoaXMuaWQrJyBvcHRpb246c2VsZWN0ZWQ6Zmlyc3QnKS5hdHRyKCd0aHVtYm5haWwnKSx0aGlzLnZhbHVlLHRoaXMudmFsdWUpOwoJCQkJCX0pOwoJCQkJfSk7CgkJCX0KCQl9LAoJCScnLCcnLCcnLEpNRlAub3B0aW9ucy5kZWJ1ZwoJKTsKfSk7CmlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCWZvcih2YXIgaSA9IDA7IGk8am1mcF9vbmxvYWQubGVuZ3RoOyBpKyspIHsKCQlqbWZwX29ubG9hZFtpXSgpOwoJCWptZnBfb25sb2FkW2ldID0gbnVsbDsKCQlkZWxldGUgam1mcF9vbmxvYWRbaV07Cgl9CglqbWZwX29ubG9hZCA9IG51bGw7CglkZWxldGUgd2luZG93WydqbWZwX29ubG9hZCddOwp9IGVsc2UgewoJaWYgKGF0dGFjaEV2ZW50KSB7CgkJYXR0YWNoRXZlbnQoJ29ubG9hZCcsIGZ1bmN0aW9uKGUpewoJCQlmb3IodmFyIGkgPSAwOyBpPGptZnBfb25sb2FkLmxlbmd0aDsgaSsrKSB7CgkJCQlqbWZwX29ubG9hZFtpXSgpOwoJCQkJam1mcF9vbmxvYWRbaV0gPSBudWxsOwoJCQkJZGVsZXRlIGptZnBfb25sb2FkW2ldOwoJCQl9CgkJCWptZnBfb25sb2FkID0gbnVsbDsKCQkJZGVsZXRlIHdpbmRvd1snam1mcF9vbmxvYWQnXTsKCQl9KTsKCX0gZWxzZSBpZiAoYWRkRXZlbnRMaXN0ZW5lcikgewoJCWFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbihlKXsKCQkJZm9yKHZhciBpID0gMDsgaTxqbWZwX29ubG9hZC5sZW5ndGg7IGkrKykgewoJCQkJam1mcF9vbmxvYWRbaV0oKTsKCQkJCWptZnBfb25sb2FkW2ldID0gbnVsbDsKCQkJCWRlbGV0ZSBqbWZwX29ubG9hZFtpXTsKCQkJfQoJCQlqbWZwX29ubG9hZCA9IG51bGw7CgkJCWRlbGV0ZSB3aW5kb3dbJ2ptZnBfb25sb2FkJ107CgkJfSwgZmFsc2UpOwoJfQp9]]></data>
	</file>
	<file>
	  <filename>/js/jq.form.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpRdWVyeSBGb3JtIFBsdWdpbgogKiB2ZXJzaW9uOiAyLjg0ICgxMi1BVUctMjAxMSkKICogQHJlcXVpcmVzIGpRdWVyeSB2MS4zLjIgb3IgbGF0ZXIKICoKICogRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9tYWxzdXAuY29tL2pxdWVyeS9mb3JtLwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgYW5kIEdQTCBsaWNlbnNlczoKICogICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogKiAgIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbAogKi8KOyhmdW5jdGlvbigkKSB7JC5mbi5hamF4U3VibWl0PWZ1bmN0aW9uKG9wdGlvbnMpe2lmKCF0aGlzLmxlbmd0aCl7bG9nKCdhamF4U3VibWl0OiBza2lwcGluZyBzdWJtaXQgcHJvY2VzcyAtIG5vIGVsZW1lbnQgc2VsZWN0ZWQnKTtyZXR1cm4gdGhpc312YXIgbWV0aG9kLGFjdGlvbix1cmwsJGZvcm09dGhpcztpZih0eXBlb2Ygb3B0aW9ucz09J2Z1bmN0aW9uJyl7b3B0aW9ucz17c3VjY2VzczpvcHRpb25zfX1tZXRob2Q9dGhpcy5hdHRyKCdtZXRob2QnKTthY3Rpb249dGhpcy5hdHRyKCdhY3Rpb24nKTt1cmw9KHR5cGVvZiBhY3Rpb249PT0nc3RyaW5nJyk/JC50cmltKGFjdGlvbik6Jyc7dXJsPXVybHx8d2luZG93LmxvY2F0aW9uLmhyZWZ8fCcnO2lmKHVybCl7dXJsPSh1cmwubWF0Y2goL14oW14jXSspLyl8fFtdKVsxXX1vcHRpb25zPSQuZXh0ZW5kKHRydWUse3VybDp1cmwsc3VjY2VzczokLmFqYXhTZXR0aW5ncy5zdWNjZXNzLHR5cGU6bWV0aG9kfHwnR0VUJyxpZnJhbWVTcmM6L15odHRwcy9pLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWZ8fCcnKT8namF2YXNjcmlwdDpmYWxzZSc6J2Fib3V0OmJsYW5rJ30sb3B0aW9ucyk7dmFyIHZldG89e307dGhpcy50cmlnZ2VyKCdmb3JtLXByZS1zZXJpYWxpemUnLFt0aGlzLG9wdGlvbnMsdmV0b10pO2lmKHZldG8udmV0byl7bG9nKCdhamF4U3VibWl0OiBzdWJtaXQgdmV0b2VkIHZpYSBmb3JtLXByZS1zZXJpYWxpemUgdHJpZ2dlcicpO3JldHVybiB0aGlzfWlmKG9wdGlvbnMuYmVmb3JlU2VyaWFsaXplJiZvcHRpb25zLmJlZm9yZVNlcmlhbGl6ZSh0aGlzLG9wdGlvbnMpPT09ZmFsc2Upe2xvZygnYWpheFN1Ym1pdDogc3VibWl0IGFib3J0ZWQgdmlhIGJlZm9yZVNlcmlhbGl6ZSBjYWxsYmFjaycpO3JldHVybiB0aGlzfXZhciBuLHYsYT10aGlzLmZvcm1Ub0FycmF5KG9wdGlvbnMuc2VtYW50aWMpO2lmKG9wdGlvbnMuZGF0YSl7b3B0aW9ucy5leHRyYURhdGE9b3B0aW9ucy5kYXRhO2ZvcihuIGluIG9wdGlvbnMuZGF0YSl7aWYoJC5pc0FycmF5KG9wdGlvbnMuZGF0YVtuXSkpe2Zvcih2YXIgayBpbiBvcHRpb25zLmRhdGFbbl0pe2EucHVzaCh7bmFtZTpuLHZhbHVlOm9wdGlvbnMuZGF0YVtuXVtrXX0pfX1lbHNle3Y9b3B0aW9ucy5kYXRhW25dO3Y9JC5pc0Z1bmN0aW9uKHYpP3YoKTp2O2EucHVzaCh7bmFtZTpuLHZhbHVlOnZ9KX19fWlmKG9wdGlvbnMuYmVmb3JlU3VibWl0JiZvcHRpb25zLmJlZm9yZVN1Ym1pdChhLHRoaXMsb3B0aW9ucyk9PT1mYWxzZSl7bG9nKCdhamF4U3VibWl0OiBzdWJtaXQgYWJvcnRlZCB2aWEgYmVmb3JlU3VibWl0IGNhbGxiYWNrJyk7cmV0dXJuIHRoaXN9dGhpcy50cmlnZ2VyKCdmb3JtLXN1Ym1pdC12YWxpZGF0ZScsW2EsdGhpcyxvcHRpb25zLHZldG9dKTtpZih2ZXRvLnZldG8pe2xvZygnYWpheFN1Ym1pdDogc3VibWl0IHZldG9lZCB2aWEgZm9ybS1zdWJtaXQtdmFsaWRhdGUgdHJpZ2dlcicpO3JldHVybiB0aGlzfXZhciBxPSQucGFyYW0oYSk7aWYob3B0aW9ucy50eXBlLnRvVXBwZXJDYXNlKCk9PSdHRVQnKXtvcHRpb25zLnVybCs9KG9wdGlvbnMudXJsLmluZGV4T2YoJz8nKT49MD8nJic6Jz8nKStxO29wdGlvbnMuZGF0YT1udWxsfWVsc2V7b3B0aW9ucy5kYXRhPXF9dmFyIGNhbGxiYWNrcz1bXTtpZihvcHRpb25zLnJlc2V0Rm9ybSl7Y2FsbGJhY2tzLnB1c2goZnVuY3Rpb24oKXskZm9ybS5yZXNldEZvcm0oKX0pfWlmKG9wdGlvbnMuY2xlYXJGb3JtKXtjYWxsYmFja3MucHVzaChmdW5jdGlvbigpeyRmb3JtLmNsZWFyRm9ybSgpfSl9aWYoIW9wdGlvbnMuZGF0YVR5cGUmJm9wdGlvbnMudGFyZ2V0KXt2YXIgb2xkU3VjY2Vzcz1vcHRpb25zLnN1Y2Nlc3N8fGZ1bmN0aW9uKCl7fTtjYWxsYmFja3MucHVzaChmdW5jdGlvbihkYXRhKXt2YXIgZm49b3B0aW9ucy5yZXBsYWNlVGFyZ2V0PydyZXBsYWNlV2l0aCc6J2h0bWwnOyQob3B0aW9ucy50YXJnZXQpW2ZuXShkYXRhKS5lYWNoKG9sZFN1Y2Nlc3MsYXJndW1lbnRzKX0pfWVsc2UgaWYob3B0aW9ucy5zdWNjZXNzKXtjYWxsYmFja3MucHVzaChvcHRpb25zLnN1Y2Nlc3MpfW9wdGlvbnMuc3VjY2Vzcz1mdW5jdGlvbihkYXRhLHN0YXR1cyx4aHIpe3ZhciBjb250ZXh0PW9wdGlvbnMuY29udGV4dHx8b3B0aW9ucztmb3IodmFyIGk9MCxtYXg9Y2FsbGJhY2tzLmxlbmd0aDtpPG1heDtpKyspe2NhbGxiYWNrc1tpXS5hcHBseShjb250ZXh0LFtkYXRhLHN0YXR1cyx4aHJ8fCRmb3JtLCRmb3JtXSl9fTt2YXIgZmlsZUlucHV0cz0kKCdpbnB1dDpmaWxlJyx0aGlzKS5sZW5ndGg+MDt2YXIgbXA9J211bHRpcGFydC9mb3JtLWRhdGEnO3ZhciBtdWx0aXBhcnQ9KCRmb3JtLmF0dHIoJ2VuY3R5cGUnKT09bXB8fCRmb3JtLmF0dHIoJ2VuY29kaW5nJyk9PW1wKTtpZihvcHRpb25zLmlmcmFtZSE9PWZhbHNlJiYoZmlsZUlucHV0c3x8b3B0aW9ucy5pZnJhbWV8fG11bHRpcGFydCkpe2lmKG9wdGlvbnMuY2xvc2VLZWVwQWxpdmUpeyQuZ2V0KG9wdGlvbnMuY2xvc2VLZWVwQWxpdmUsZnVuY3Rpb24oKXtmaWxlVXBsb2FkKGEpfSl9ZWxzZXtmaWxlVXBsb2FkKGEpfX1lbHNle2lmKCQuYnJvd3Nlci5tc2llJiZtZXRob2Q9PSdnZXQnKXt2YXIgaWVNZXRoPSRmb3JtWzBdLmdldEF0dHJpYnV0ZSgnbWV0aG9kJyk7aWYodHlwZW9mIGllTWV0aD09PSdzdHJpbmcnKW9wdGlvbnMudHlwZT1pZU1ldGh9JC5hamF4KG9wdGlvbnMpfXRoaXMudHJpZ2dlcignZm9ybS1zdWJtaXQtbm90aWZ5JyxbdGhpcyxvcHRpb25zXSk7cmV0dXJuIHRoaXM7ZnVuY3Rpb24gZmlsZVVwbG9hZChhKXt2YXIgZm9ybT0kZm9ybVswXSxlbCxpLHMsZyxpZCwkaW8saW8seGhyLHN1YixuLHRpbWVkT3V0LHRpbWVvdXRIYW5kbGU7dmFyIHVzZVByb3A9ISEkLmZuLnByb3A7aWYoYSl7Zm9yKGk9MDtpPGEubGVuZ3RoO2krKyl7ZWw9JChmb3JtW2FbaV0ubmFtZV0pO2VsW3VzZVByb3A/J3Byb3AnOidhdHRyJ10oJ2Rpc2FibGVkJyxmYWxzZSl9fWlmKCQoJzppbnB1dFtuYW1lPXN1Ym1pdF0sOmlucHV0W2lkPXN1Ym1pdF0nLGZvcm0pLmxlbmd0aCl7YWxlcnQoJ0Vycm9yOiBGb3JtIGVsZW1lbnRzIG11c3Qgbm90IGhhdmUgbmFtZSBvciBpZCBvZiAic3VibWl0Ii4nKTtyZXR1cm59cz0kLmV4dGVuZCh0cnVlLHt9LCQuYWpheFNldHRpbmdzLG9wdGlvbnMpO3MuY29udGV4dD1zLmNvbnRleHR8fHM7aWQ9J2pxRm9ybUlPJysobmV3IERhdGUoKS5nZXRUaW1lKCkpO2lmKHMuaWZyYW1lVGFyZ2V0KXskaW89JChzLmlmcmFtZVRhcmdldCk7bj0kaW8uYXR0cignbmFtZScpO2lmKG49PW51bGwpJGlvLmF0dHIoJ25hbWUnLGlkKTtlbHNlIGlkPW59ZWxzZXskaW89JCgnPGlmcmFtZSBuYW1lPSInK2lkKyciIHNyYz0iJytzLmlmcmFtZVNyYysnIiAvPicpOyRpby5jc3Moe3Bvc2l0aW9uOidhYnNvbHV0ZScsdG9wOictMTAwMHB4JyxsZWZ0OictMTAwMHB4J30pfWlvPSRpb1swXTt4aHI9e2Fib3J0ZWQ6MCxyZXNwb25zZVRleHQ6bnVsbCxyZXNwb25zZVhNTDpudWxsLHN0YXR1czowLHN0YXR1c1RleHQ6J24vYScsZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7fSxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbigpe30sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbigpe30sYWJvcnQ6ZnVuY3Rpb24oc3RhdHVzKXt2YXIgZT0oc3RhdHVzPT09J3RpbWVvdXQnPyd0aW1lb3V0JzonYWJvcnRlZCcpO2xvZygnYWJvcnRpbmcgdXBsb2FkLi4uICcrZSk7dGhpcy5hYm9ydGVkPTE7JGlvLmF0dHIoJ3NyYycscy5pZnJhbWVTcmMpO3hoci5lcnJvcj1lO3MuZXJyb3ImJnMuZXJyb3IuY2FsbChzLmNvbnRleHQseGhyLGUsc3RhdHVzKTtnJiYkLmV2ZW50LnRyaWdnZXIoImFqYXhFcnJvciIsW3hocixzLGVdKTtzLmNvbXBsZXRlJiZzLmNvbXBsZXRlLmNhbGwocy5jb250ZXh0LHhocixlKX19O2c9cy5nbG9iYWw7aWYoZyYmISQuYWN0aXZlKyspeyQuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iil9aWYoZyl7JC5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsW3hocixzXSl9aWYocy5iZWZvcmVTZW5kJiZzLmJlZm9yZVNlbmQuY2FsbChzLmNvbnRleHQseGhyLHMpPT09ZmFsc2Upe2lmKHMuZ2xvYmFsKXskLmFjdGl2ZS0tfXJldHVybn1pZih4aHIuYWJvcnRlZCl7cmV0dXJufXN1Yj1mb3JtLmNsaztpZihzdWIpe249c3ViLm5hbWU7aWYobiYmIXN1Yi5kaXNhYmxlZCl7cy5leHRyYURhdGE9cy5leHRyYURhdGF8fHt9O3MuZXh0cmFEYXRhW25dPXN1Yi52YWx1ZTtpZihzdWIudHlwZT09ImltYWdlIil7cy5leHRyYURhdGFbbisnLngnXT1mb3JtLmNsa194O3MuZXh0cmFEYXRhW24rJy55J109Zm9ybS5jbGtfeX19fXZhciBDTElFTlRfVElNRU9VVF9BQk9SVD0xO3ZhciBTRVJWRVJfQUJPUlQ9MjtmdW5jdGlvbiBnZXREb2MoZnJhbWUpe3ZhciBkb2M9ZnJhbWUuY29udGVudFdpbmRvdz9mcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50OmZyYW1lLmNvbnRlbnREb2N1bWVudD9mcmFtZS5jb250ZW50RG9jdW1lbnQ6ZnJhbWUuZG9jdW1lbnQ7cmV0dXJuIGRvY31mdW5jdGlvbiBkb1N1Ym1pdCgpe3ZhciB0PSRmb3JtLmF0dHIoJ3RhcmdldCcpLGE9JGZvcm0uYXR0cignYWN0aW9uJyk7Zm9ybS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsaWQpO2lmKCFtZXRob2Qpe2Zvcm0uc2V0QXR0cmlidXRlKCdtZXRob2QnLCdQT1NUJyl9aWYoYSE9cy51cmwpe2Zvcm0uc2V0QXR0cmlidXRlKCdhY3Rpb24nLHMudXJsKX1pZighcy5za2lwRW5jb2RpbmdPdmVycmlkZSYmKCFtZXRob2R8fC9wb3N0L2kudGVzdChtZXRob2QpKSl7JGZvcm0uYXR0cih7ZW5jb2Rpbmc6J211bHRpcGFydC9mb3JtLWRhdGEnLGVuY3R5cGU6J211bHRpcGFydC9mb3JtLWRhdGEnfSl9aWYocy50aW1lb3V0KXt0aW1lb3V0SGFuZGxlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aW1lZE91dD10cnVlO2NiKENMSUVOVF9USU1FT1VUX0FCT1JUKX0scy50aW1lb3V0KX1mdW5jdGlvbiBjaGVja1N0YXRlKCl7dHJ5e3ZhciBzdGF0ZT1nZXREb2MoaW8pLnJlYWR5U3RhdGU7bG9nKCdzdGF0ZSA9ICcrc3RhdGUpO2lmKHN0YXRlLnRvTG93ZXJDYXNlKCk9PSd1bmluaXRpYWxpemVkJylzZXRUaW1lb3V0KGNoZWNrU3RhdGUsNTApfWNhdGNoKGUpe2xvZygnU2VydmVyIGFib3J0OiAnLGUsJyAoJyxlLm5hbWUsJyknKTtjYihTRVJWRVJfQUJPUlQpO3RpbWVvdXRIYW5kbGUmJmNsZWFyVGltZW91dCh0aW1lb3V0SGFuZGxlKTt0aW1lb3V0SGFuZGxlPXVuZGVmaW5lZH19dmFyIGV4dHJhSW5wdXRzPVtdO3RyeXtpZihzLmV4dHJhRGF0YSl7Zm9yKHZhciBuIGluIHMuZXh0cmFEYXRhKXtleHRyYUlucHV0cy5wdXNoKCQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicrbisnIiAvPicpLmF0dHIoJ3ZhbHVlJyxzLmV4dHJhRGF0YVtuXSkuYXBwZW5kVG8oZm9ybSlbMF0pfX1pZighcy5pZnJhbWVUYXJnZXQpeyRpby5hcHBlbmRUbygnYm9keScpO2lvLmF0dGFjaEV2ZW50P2lvLmF0dGFjaEV2ZW50KCdvbmxvYWQnLGNiKTppby5hZGRFdmVudExpc3RlbmVyKCdsb2FkJyxjYixmYWxzZSl9c2V0VGltZW91dChjaGVja1N0YXRlLDE1KTtmb3JtLnN1Ym1pdCgpfWZpbmFsbHl7Zm9ybS5zZXRBdHRyaWJ1dGUoJ2FjdGlvbicsYSk7aWYodCl7Zm9ybS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsdCl9ZWxzZXskZm9ybS5yZW1vdmVBdHRyKCd0YXJnZXQnKX0kKGV4dHJhSW5wdXRzKS5yZW1vdmUoKX19aWYocy5mb3JjZVN5bmMpe2RvU3VibWl0KCl9ZWxzZXtzZXRUaW1lb3V0KGRvU3VibWl0LDEwKX12YXIgZGF0YSxkb2MsZG9tQ2hlY2tDb3VudD01MCxjYWxsYmFja1Byb2Nlc3NlZDtmdW5jdGlvbiBjYihlKXtpZih4aHIuYWJvcnRlZHx8Y2FsbGJhY2tQcm9jZXNzZWQpe3JldHVybn10cnl7ZG9jPWdldERvYyhpbyl9Y2F0Y2goZXgpe2xvZygnY2Fubm90IGFjY2VzcyByZXNwb25zZSBkb2N1bWVudDogJyxleCk7ZT1TRVJWRVJfQUJPUlR9aWYoZT09PUNMSUVOVF9USU1FT1VUX0FCT1JUJiZ4aHIpe3hoci5hYm9ydCgndGltZW91dCcpO3JldHVybn1lbHNlIGlmKGU9PVNFUlZFUl9BQk9SVCYmeGhyKXt4aHIuYWJvcnQoJ3NlcnZlciBhYm9ydCcpO3JldHVybn1pZighZG9jfHxkb2MubG9jYXRpb24uaHJlZj09cy5pZnJhbWVTcmMpe2lmKCF0aW1lZE91dClyZXR1cm59aW8uZGV0YWNoRXZlbnQ/aW8uZGV0YWNoRXZlbnQoJ29ubG9hZCcsY2IpOmlvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLGNiLGZhbHNlKTt2YXIgc3RhdHVzPSdzdWNjZXNzJyxlcnJNc2c7dHJ5e2lmKHRpbWVkT3V0KXt0aHJvdyd0aW1lb3V0J312YXIgaXNYbWw9cy5kYXRhVHlwZT09J3htbCd8fGRvYy5YTUxEb2N1bWVudHx8JC5pc1hNTERvYyhkb2MpO2xvZygnaXNYbWw9Jytpc1htbCk7aWYoIWlzWG1sJiZ3aW5kb3cub3BlcmEmJihkb2MuYm9keT09bnVsbHx8ZG9jLmJvZHkuaW5uZXJIVE1MPT0nJykpe2lmKC0tZG9tQ2hlY2tDb3VudCl7bG9nKCdyZXF1ZWluZyBvbkxvYWQgY2FsbGJhY2ssIERPTSBub3QgYXZhaWxhYmxlJyk7c2V0VGltZW91dChjYiwyNTApO3JldHVybn19dmFyIGRvY1Jvb3Q9ZG9jLmJvZHk/ZG9jLmJvZHk6ZG9jLmRvY3VtZW50RWxlbWVudDt4aHIucmVzcG9uc2VUZXh0PWRvY1Jvb3Q/ZG9jUm9vdC5pbm5lckhUTUw6bnVsbDt4aHIucmVzcG9uc2VYTUw9ZG9jLlhNTERvY3VtZW50P2RvYy5YTUxEb2N1bWVudDpkb2M7aWYoaXNYbWwpcy5kYXRhVHlwZT0neG1sJzt4aHIuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24oaGVhZGVyKXt2YXIgaGVhZGVycz17J2NvbnRlbnQtdHlwZSc6cy5kYXRhVHlwZX07cmV0dXJuIGhlYWRlcnNbaGVhZGVyXX07aWYoZG9jUm9vdCl7eGhyLnN0YXR1cz1OdW1iZXIoZG9jUm9vdC5nZXRBdHRyaWJ1dGUoJ3N0YXR1cycpKXx8eGhyLnN0YXR1czt4aHIuc3RhdHVzVGV4dD1kb2NSb290LmdldEF0dHJpYnV0ZSgnc3RhdHVzVGV4dCcpfHx4aHIuc3RhdHVzVGV4dH12YXIgZHQ9cy5kYXRhVHlwZXx8Jyc7dmFyIHNjcj0vKGpzb258c2NyaXB0fHRleHQpLy50ZXN0KGR0LnRvTG93ZXJDYXNlKCkpO2lmKHNjcnx8cy50ZXh0YXJlYSl7dmFyIHRhPWRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGV4dGFyZWEnKVswXTtpZih0YSl7eGhyLnJlc3BvbnNlVGV4dD10YS52YWx1ZTt4aHIuc3RhdHVzPU51bWJlcih0YS5nZXRBdHRyaWJ1dGUoJ3N0YXR1cycpKXx8eGhyLnN0YXR1czt4aHIuc3RhdHVzVGV4dD10YS5nZXRBdHRyaWJ1dGUoJ3N0YXR1c1RleHQnKXx8eGhyLnN0YXR1c1RleHR9ZWxzZSBpZihzY3Ipe3ZhciBwcmU9ZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmUnKVswXTt2YXIgYj1kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXTtpZihwcmUpe3hoci5yZXNwb25zZVRleHQ9cHJlLnRleHRDb250ZW50P3ByZS50ZXh0Q29udGVudDpwcmUuaW5uZXJIVE1MfWVsc2UgaWYoYil7eGhyLnJlc3BvbnNlVGV4dD1iLmlubmVySFRNTH19fWVsc2UgaWYocy5kYXRhVHlwZT09J3htbCcmJiF4aHIucmVzcG9uc2VYTUwmJnhoci5yZXNwb25zZVRleHQhPW51bGwpe3hoci5yZXNwb25zZVhNTD10b1htbCh4aHIucmVzcG9uc2VUZXh0KX10cnl7ZGF0YT1odHRwRGF0YSh4aHIscy5kYXRhVHlwZSxzKX1jYXRjaChlKXtzdGF0dXM9J3BhcnNlcmVycm9yJzt4aHIuZXJyb3I9ZXJyTXNnPShlfHxzdGF0dXMpfX1jYXRjaChlKXtsb2coJ2Vycm9yIGNhdWdodDogJyxlKTtzdGF0dXM9J2Vycm9yJzt4aHIuZXJyb3I9ZXJyTXNnPShlfHxzdGF0dXMpfWlmKHhoci5hYm9ydGVkKXtsb2coJ3VwbG9hZCBhYm9ydGVkJyk7c3RhdHVzPW51bGx9aWYoeGhyLnN0YXR1cyl7c3RhdHVzPSh4aHIuc3RhdHVzPj0yMDAmJnhoci5zdGF0dXM8MzAwfHx4aHIuc3RhdHVzPT09MzA0KT8nc3VjY2Vzcyc6J2Vycm9yJ31pZihzdGF0dXM9PT0nc3VjY2Vzcycpe3Muc3VjY2VzcyYmcy5zdWNjZXNzLmNhbGwocy5jb250ZXh0LGRhdGEsJ3N1Y2Nlc3MnLHhocik7ZyYmJC5ldmVudC50cmlnZ2VyKCJhamF4U3VjY2VzcyIsW3hocixzXSl9ZWxzZSBpZihzdGF0dXMpe2lmKGVyck1zZz09dW5kZWZpbmVkKWVyck1zZz14aHIuc3RhdHVzVGV4dDtzLmVycm9yJiZzLmVycm9yLmNhbGwocy5jb250ZXh0LHhocixzdGF0dXMsZXJyTXNnKTtnJiYkLmV2ZW50LnRyaWdnZXIoImFqYXhFcnJvciIsW3hocixzLGVyck1zZ10pfWcmJiQuZXZlbnQudHJpZ2dlcigiYWpheENvbXBsZXRlIixbeGhyLHNdKTtpZihnJiYhLS0kLmFjdGl2ZSl7JC5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfXMuY29tcGxldGUmJnMuY29tcGxldGUuY2FsbChzLmNvbnRleHQseGhyLHN0YXR1cyk7Y2FsbGJhY2tQcm9jZXNzZWQ9dHJ1ZTtpZihzLnRpbWVvdXQpY2xlYXJUaW1lb3V0KHRpbWVvdXRIYW5kbGUpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZighcy5pZnJhbWVUYXJnZXQpJGlvLnJlbW92ZSgpO3hoci5yZXNwb25zZVhNTD1udWxsfSwxMDApfXZhciB0b1htbD0kLnBhcnNlWE1MfHxmdW5jdGlvbihzLGRvYyl7aWYod2luZG93LkFjdGl2ZVhPYmplY3Qpe2RvYz1uZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTERPTScpO2RvYy5hc3luYz0nZmFsc2UnO2RvYy5sb2FkWE1MKHMpfWVsc2V7ZG9jPShuZXcgRE9NUGFyc2VyKCkpLnBhcnNlRnJvbVN0cmluZyhzLCd0ZXh0L3htbCcpfXJldHVybihkb2MmJmRvYy5kb2N1bWVudEVsZW1lbnQmJmRvYy5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWUhPSdwYXJzZXJlcnJvcicpP2RvYzpudWxsfTt2YXIgcGFyc2VKU09OPSQucGFyc2VKU09OfHxmdW5jdGlvbihzKXtyZXR1cm4gd2luZG93WydldmFsJ10oJygnK3MrJyknKX07dmFyIGh0dHBEYXRhPWZ1bmN0aW9uKHhocix0eXBlLHMpe3ZhciBjdD14aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ2NvbnRlbnQtdHlwZScpfHwnJyx4bWw9dHlwZT09PSd4bWwnfHwhdHlwZSYmY3QuaW5kZXhPZigneG1sJyk+PTAsZGF0YT14bWw/eGhyLnJlc3BvbnNlWE1MOnhoci5yZXNwb25zZVRleHQ7aWYoeG1sJiZkYXRhLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZT09PSdwYXJzZXJlcnJvcicpeyQuZXJyb3ImJiQuZXJyb3IoJ3BhcnNlcmVycm9yJyl9aWYocyYmcy5kYXRhRmlsdGVyKXtkYXRhPXMuZGF0YUZpbHRlcihkYXRhLHR5cGUpfWlmKHR5cGVvZiBkYXRhPT09J3N0cmluZycpe2lmKHR5cGU9PT0nanNvbid8fCF0eXBlJiZjdC5pbmRleE9mKCdqc29uJyk+PTApe2RhdGE9cGFyc2VKU09OKGRhdGEpfWVsc2UgaWYodHlwZT09PSJzY3JpcHQifHwhdHlwZSYmY3QuaW5kZXhPZigiamF2YXNjcmlwdCIpPj0wKXskLmdsb2JhbEV2YWwoZGF0YSl9fXJldHVybiBkYXRhfX19OyQuZm4uYWpheEZvcm09ZnVuY3Rpb24ob3B0aW9ucyl7aWYodGhpcy5sZW5ndGg9PT0wKXt2YXIgbz17czp0aGlzLnNlbGVjdG9yLGM6dGhpcy5jb250ZXh0fTtpZighJC5pc1JlYWR5JiZvLnMpe2xvZygnRE9NIG5vdCByZWFkeSwgcXVldWluZyBhamF4Rm9ybScpOyQoZnVuY3Rpb24oKXskKG8ucyxvLmMpLmFqYXhGb3JtKG9wdGlvbnMpfSk7cmV0dXJuIHRoaXN9bG9nKCd0ZXJtaW5hdGluZzsgemVybyBlbGVtZW50cyBmb3VuZCBieSBzZWxlY3RvcicrKCQuaXNSZWFkeT8nJzonIChET00gbm90IHJlYWR5KScpKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5hamF4Rm9ybVVuYmluZCgpLmJpbmQoJ3N1Ym1pdC5mb3JtLXBsdWdpbicsZnVuY3Rpb24oZSl7aWYoIWUuaXNEZWZhdWx0UHJldmVudGVkKCkpe2UucHJldmVudERlZmF1bHQoKTskKHRoaXMpLmFqYXhTdWJtaXQob3B0aW9ucyl9fSkuYmluZCgnY2xpY2suZm9ybS1wbHVnaW4nLGZ1bmN0aW9uKGUpe3ZhciB0YXJnZXQ9ZS50YXJnZXQ7dmFyICRlbD0kKHRhcmdldCk7aWYoISgkZWwuaXMoIjpzdWJtaXQsaW5wdXQ6aW1hZ2UiKSkpe3ZhciB0PSRlbC5jbG9zZXN0KCc6c3VibWl0Jyk7aWYodC5sZW5ndGg9PTApe3JldHVybn10YXJnZXQ9dFswXX12YXIgZm9ybT10aGlzO2Zvcm0uY2xrPXRhcmdldDtpZih0YXJnZXQudHlwZT09J2ltYWdlJyl7aWYoZS5vZmZzZXRYIT11bmRlZmluZWQpe2Zvcm0uY2xrX3g9ZS5vZmZzZXRYO2Zvcm0uY2xrX3k9ZS5vZmZzZXRZfWVsc2UgaWYodHlwZW9mICQuZm4ub2Zmc2V0PT0nZnVuY3Rpb24nKXt2YXIgb2Zmc2V0PSRlbC5vZmZzZXQoKTtmb3JtLmNsa194PWUucGFnZVgtb2Zmc2V0LmxlZnQ7Zm9ybS5jbGtfeT1lLnBhZ2VZLW9mZnNldC50b3B9ZWxzZXtmb3JtLmNsa194PWUucGFnZVgtdGFyZ2V0Lm9mZnNldExlZnQ7Zm9ybS5jbGtfeT1lLnBhZ2VZLXRhcmdldC5vZmZzZXRUb3B9fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmb3JtLmNsaz1mb3JtLmNsa194PWZvcm0uY2xrX3k9bnVsbH0sMTAwKX0pfTskLmZuLmFqYXhGb3JtVW5iaW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5iaW5kKCdzdWJtaXQuZm9ybS1wbHVnaW4gY2xpY2suZm9ybS1wbHVnaW4nKX07JC5mbi5mb3JtVG9BcnJheT1mdW5jdGlvbihzZW1hbnRpYyl7dmFyIGE9W107aWYodGhpcy5sZW5ndGg9PT0wKXtyZXR1cm4gYX12YXIgZm9ybT10aGlzWzBdO3ZhciBlbHM9c2VtYW50aWM/Zm9ybS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpOmZvcm0uZWxlbWVudHM7aWYoIWVscyl7cmV0dXJuIGF9dmFyIGksaixuLHYsZWwsbWF4LGptYXg7Zm9yKGk9MCxtYXg9ZWxzLmxlbmd0aDtpPG1heDtpKyspe2VsPWVsc1tpXTtuPWVsLm5hbWU7aWYoIW4pe2NvbnRpbnVlfWlmKHNlbWFudGljJiZmb3JtLmNsayYmZWwudHlwZT09ImltYWdlIil7aWYoIWVsLmRpc2FibGVkJiZmb3JtLmNsaz09ZWwpe2EucHVzaCh7bmFtZTpuLHZhbHVlOiQoZWwpLnZhbCgpfSk7YS5wdXNoKHtuYW1lOm4rJy54Jyx2YWx1ZTpmb3JtLmNsa194fSx7bmFtZTpuKycueScsdmFsdWU6Zm9ybS5jbGtfeX0pfWNvbnRpbnVlfXY9JC5maWVsZFZhbHVlKGVsLHRydWUpO2lmKHYmJnYuY29uc3RydWN0b3I9PUFycmF5KXtmb3Ioaj0wLGptYXg9di5sZW5ndGg7ajxqbWF4O2orKyl7YS5wdXNoKHtuYW1lOm4sdmFsdWU6dltqXX0pfX1lbHNlIGlmKHYhPT1udWxsJiZ0eXBlb2YgdiE9J3VuZGVmaW5lZCcpe2EucHVzaCh7bmFtZTpuLHZhbHVlOnZ9KX19aWYoIXNlbWFudGljJiZmb3JtLmNsayl7dmFyICRpbnB1dD0kKGZvcm0uY2xrKSxpbnB1dD0kaW5wdXRbMF07bj1pbnB1dC5uYW1lO2lmKG4mJiFpbnB1dC5kaXNhYmxlZCYmaW5wdXQudHlwZT09J2ltYWdlJyl7YS5wdXNoKHtuYW1lOm4sdmFsdWU6JGlucHV0LnZhbCgpfSk7YS5wdXNoKHtuYW1lOm4rJy54Jyx2YWx1ZTpmb3JtLmNsa194fSx7bmFtZTpuKycueScsdmFsdWU6Zm9ybS5jbGtfeX0pfX1yZXR1cm4gYX07JC5mbi5mb3JtU2VyaWFsaXplPWZ1bmN0aW9uKHNlbWFudGljKXtyZXR1cm4gJC5wYXJhbSh0aGlzLmZvcm1Ub0FycmF5KHNlbWFudGljKSl9OyQuZm4uZmllbGRTZXJpYWxpemU9ZnVuY3Rpb24oc3VjY2Vzc2Z1bCl7dmFyIGE9W107dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5uYW1lO2lmKCFuKXtyZXR1cm59dmFyIHY9JC5maWVsZFZhbHVlKHRoaXMsc3VjY2Vzc2Z1bCk7aWYodiYmdi5jb25zdHJ1Y3Rvcj09QXJyYXkpe2Zvcih2YXIgaT0wLG1heD12Lmxlbmd0aDtpPG1heDtpKyspe2EucHVzaCh7bmFtZTpuLHZhbHVlOnZbaV19KX19ZWxzZSBpZih2IT09bnVsbCYmdHlwZW9mIHYhPSd1bmRlZmluZWQnKXthLnB1c2goe25hbWU6dGhpcy5uYW1lLHZhbHVlOnZ9KX19KTtyZXR1cm4gJC5wYXJhbShhKX07JC5mbi5maWVsZFZhbHVlPWZ1bmN0aW9uKHN1Y2Nlc3NmdWwpe2Zvcih2YXIgdmFsPVtdLGk9MCxtYXg9dGhpcy5sZW5ndGg7aTxtYXg7aSsrKXt2YXIgZWw9dGhpc1tpXTt2YXIgdj0kLmZpZWxkVmFsdWUoZWwsc3VjY2Vzc2Z1bCk7aWYodj09PW51bGx8fHR5cGVvZiB2PT0ndW5kZWZpbmVkJ3x8KHYuY29uc3RydWN0b3I9PUFycmF5JiYhdi5sZW5ndGgpKXtjb250aW51ZX12LmNvbnN0cnVjdG9yPT1BcnJheT8kLm1lcmdlKHZhbCx2KTp2YWwucHVzaCh2KX1yZXR1cm4gdmFsfTskLmZpZWxkVmFsdWU9ZnVuY3Rpb24oZWwsc3VjY2Vzc2Z1bCl7dmFyIG49ZWwubmFtZSx0PWVsLnR5cGUsdGFnPWVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKTtpZihzdWNjZXNzZnVsPT09dW5kZWZpbmVkKXtzdWNjZXNzZnVsPXRydWV9aWYoc3VjY2Vzc2Z1bCYmKCFufHxlbC5kaXNhYmxlZHx8dD09J3Jlc2V0J3x8dD09J2J1dHRvbid8fCh0PT0nY2hlY2tib3gnfHx0PT0ncmFkaW8nKSYmIWVsLmNoZWNrZWR8fCh0PT0nc3VibWl0J3x8dD09J2ltYWdlJykmJmVsLmZvcm0mJmVsLmZvcm0uY2xrIT1lbHx8dGFnPT0nc2VsZWN0JyYmZWwuc2VsZWN0ZWRJbmRleD09LTEpKXtyZXR1cm4gbnVsbH1pZih0YWc9PSdzZWxlY3QnKXt2YXIgaW5kZXg9ZWwuc2VsZWN0ZWRJbmRleDtpZihpbmRleDwwKXtyZXR1cm4gbnVsbH12YXIgYT1bXSxvcHM9ZWwub3B0aW9uczt2YXIgb25lPSh0PT0nc2VsZWN0LW9uZScpO3ZhciBtYXg9KG9uZT9pbmRleCsxOm9wcy5sZW5ndGgpO2Zvcih2YXIgaT0ob25lP2luZGV4OjApO2k8bWF4O2krKyl7dmFyIG9wPW9wc1tpXTtpZihvcC5zZWxlY3RlZCl7dmFyIHY9b3AudmFsdWU7aWYoIXYpe3Y9KG9wLmF0dHJpYnV0ZXMmJm9wLmF0dHJpYnV0ZXNbJ3ZhbHVlJ10mJiEob3AuYXR0cmlidXRlc1sndmFsdWUnXS5zcGVjaWZpZWQpKT9vcC50ZXh0Om9wLnZhbHVlfWlmKG9uZSl7cmV0dXJuIHZ9YS5wdXNoKHYpfX1yZXR1cm4gYX1yZXR1cm4gJChlbCkudmFsKCl9OyQuZm4uY2xlYXJGb3JtPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeyQoJ2lucHV0LHNlbGVjdCx0ZXh0YXJlYScsdGhpcykuY2xlYXJGaWVsZHMoKX0pfTskLmZuLmNsZWFyRmllbGRzPSQuZm4uY2xlYXJJbnB1dHM9ZnVuY3Rpb24oKXt2YXIgcmU9L14oPzpjb2xvcnxkYXRlfGRhdGV0aW1lfGVtYWlsfG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2VlaykkL2k7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXRoaXMudHlwZSx0YWc9dGhpcy50YWdOYW1lLnRvTG93ZXJDYXNlKCk7aWYocmUudGVzdCh0KXx8dGFnPT0ndGV4dGFyZWEnKXt0aGlzLnZhbHVlPScnfWVsc2UgaWYodD09J2NoZWNrYm94J3x8dD09J3JhZGlvJyl7dGhpcy5jaGVja2VkPWZhbHNlfWVsc2UgaWYodGFnPT0nc2VsZWN0Jyl7dGhpcy5zZWxlY3RlZEluZGV4PS0xfX0pfTskLmZuLnJlc2V0Rm9ybT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5yZXNldD09J2Z1bmN0aW9uJ3x8KHR5cGVvZiB0aGlzLnJlc2V0PT0nb2JqZWN0JyYmIXRoaXMucmVzZXQubm9kZVR5cGUpKXt0aGlzLnJlc2V0KCl9fSl9OyQuZm4uZW5hYmxlPWZ1bmN0aW9uKGIpe2lmKGI9PT11bmRlZmluZWQpe2I9dHJ1ZX1yZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZD0hYn0pfTskLmZuLnNlbGVjdGVkPWZ1bmN0aW9uKHNlbGVjdCl7aWYoc2VsZWN0PT09dW5kZWZpbmVkKXtzZWxlY3Q9dHJ1ZX1yZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50eXBlO2lmKHQ9PSdjaGVja2JveCd8fHQ9PSdyYWRpbycpe3RoaXMuY2hlY2tlZD1zZWxlY3R9ZWxzZSBpZih0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09J29wdGlvbicpe3ZhciAkc2VsPSQodGhpcykucGFyZW50KCdzZWxlY3QnKTtpZihzZWxlY3QmJiRzZWxbMF0mJiRzZWxbMF0udHlwZT09J3NlbGVjdC1vbmUnKXskc2VsLmZpbmQoJ29wdGlvbicpLnNlbGVjdGVkKGZhbHNlKX10aGlzLnNlbGVjdGVkPXNlbGVjdH19KX07ZnVuY3Rpb24gbG9nKCl7dmFyIG1zZz0nW2pxdWVyeS5mb3JtXSAnK0FycmF5LnByb3RvdHlwZS5qb2luLmNhbGwoYXJndW1lbnRzLCcnKTtpZih3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nKXt3aW5kb3cuY29uc29sZS5sb2cobXNnKX1lbHNlIGlmKHdpbmRvdy5vcGVyYSYmd2luZG93Lm9wZXJhLnBvc3RFcnJvcil7d2luZG93Lm9wZXJhLnBvc3RFcnJvcihtc2cpfX19KShqUXVlcnkpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/jq.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSB2MS43LjIganF1ZXJ5LmNvbSB8IGpxdWVyeS5vcmcvbGljZW5zZSAqLwooZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjeShhKXtyZXR1cm4gZi5pc1dpbmRvdyhhKT9hOmEubm9kZVR5cGU9PT05P2EuZGVmYXVsdFZpZXd8fGEucGFyZW50V2luZG93OiExfWZ1bmN0aW9uIGN1KGEpe2lmKCFjalthXSl7dmFyIGI9Yy5ib2R5LGQ9ZigiPCIrYSsiPiIpLmFwcGVuZFRvKGIpLGU9ZC5jc3MoImRpc3BsYXkiKTtkLnJlbW92ZSgpO2lmKGU9PT0ibm9uZSJ8fGU9PT0iIil7Y2t8fChjaz1jLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGNrLmZyYW1lQm9yZGVyPWNrLndpZHRoPWNrLmhlaWdodD0wKSxiLmFwcGVuZENoaWxkKGNrKTtpZighY2x8fCFjay5jcmVhdGVFbGVtZW50KWNsPShjay5jb250ZW50V2luZG93fHxjay5jb250ZW50RG9jdW1lbnQpLmRvY3VtZW50LGNsLndyaXRlKChmLnN1cHBvcnQuYm94TW9kZWw/IjwhZG9jdHlwZSBodG1sPiI6IiIpKyI8aHRtbD48Ym9keT4iKSxjbC5jbG9zZSgpO2Q9Y2wuY3JlYXRlRWxlbWVudChhKSxjbC5ib2R5LmFwcGVuZENoaWxkKGQpLGU9Zi5jc3MoZCwiZGlzcGxheSIpLGIucmVtb3ZlQ2hpbGQoY2spfWNqW2FdPWV9cmV0dXJuIGNqW2FdfWZ1bmN0aW9uIGN0KGEsYil7dmFyIGM9e307Zi5lYWNoKGNwLmNvbmNhdC5hcHBseShbXSxjcC5zbGljZSgwLGIpKSxmdW5jdGlvbigpe2NbdGhpc109YX0pO3JldHVybiBjfWZ1bmN0aW9uIGNzKCl7Y3E9Yn1mdW5jdGlvbiBjcigpe3NldFRpbWVvdXQoY3MsMCk7cmV0dXJuIGNxPWYubm93KCl9ZnVuY3Rpb24gY2koKXt0cnl7cmV0dXJuIG5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX1mdW5jdGlvbiBjaCgpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYil7fX1mdW5jdGlvbiBjYihhLGMpe2EuZGF0YUZpbHRlciYmKGM9YS5kYXRhRmlsdGVyKGMsYS5kYXRhVHlwZSkpO3ZhciBkPWEuZGF0YVR5cGVzLGU9e30sZyxoLGk9ZC5sZW5ndGgsaixrPWRbMF0sbCxtLG4sbyxwO2ZvcihnPTE7ZzxpO2crKyl7aWYoZz09PTEpZm9yKGggaW4gYS5jb252ZXJ0ZXJzKXR5cGVvZiBoPT0ic3RyaW5nIiYmKGVbaC50b0xvd2VyQ2FzZSgpXT1hLmNvbnZlcnRlcnNbaF0pO2w9ayxrPWRbZ107aWYoaz09PSIqIilrPWw7ZWxzZSBpZihsIT09IioiJiZsIT09ayl7bT1sKyIgIitrLG49ZVttXXx8ZVsiKiAiK2tdO2lmKCFuKXtwPWI7Zm9yKG8gaW4gZSl7aj1vLnNwbGl0KCIgIik7aWYoalswXT09PWx8fGpbMF09PT0iKiIpe3A9ZVtqWzFdKyIgIitrXTtpZihwKXtvPWVbb10sbz09PSEwP249cDpwPT09ITAmJihuPW8pO2JyZWFrfX19fSFuJiYhcCYmZi5lcnJvcigiTm8gY29udmVyc2lvbiBmcm9tICIrbS5yZXBsYWNlKCIgIiwiIHRvICIpKSxuIT09ITAmJihjPW4/bihjKTpwKG8oYykpKX19cmV0dXJuIGN9ZnVuY3Rpb24gY2EoYSxjLGQpe3ZhciBlPWEuY29udGVudHMsZj1hLmRhdGFUeXBlcyxnPWEucmVzcG9uc2VGaWVsZHMsaCxpLGosaztmb3IoaSBpbiBnKWkgaW4gZCYmKGNbZ1tpXV09ZFtpXSk7d2hpbGUoZlswXT09PSIqIilmLnNoaWZ0KCksaD09PWImJihoPWEubWltZVR5cGV8fGMuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpKTtpZihoKWZvcihpIGluIGUpaWYoZVtpXSYmZVtpXS50ZXN0KGgpKXtmLnVuc2hpZnQoaSk7YnJlYWt9aWYoZlswXWluIGQpaj1mWzBdO2Vsc2V7Zm9yKGkgaW4gZCl7aWYoIWZbMF18fGEuY29udmVydGVyc1tpKyIgIitmWzBdXSl7aj1pO2JyZWFrfWt8fChrPWkpfWo9anx8a31pZihqKXtqIT09ZlswXSYmZi51bnNoaWZ0KGopO3JldHVybiBkW2pdfX1mdW5jdGlvbiBiXyhhLGIsYyxkKXtpZihmLmlzQXJyYXkoYikpZi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHxiRC50ZXN0KGEpP2QoYSxlKTpiXyhhKyJbIisodHlwZW9mIGU9PSJvYmplY3QiP2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKCFjJiZmLnR5cGUoYik9PT0ib2JqZWN0Iilmb3IodmFyIGUgaW4gYiliXyhhKyJbIitlKyJdIixiW2VdLGMsZCk7ZWxzZSBkKGEsYil9ZnVuY3Rpb24gYiQoYSxjKXt2YXIgZCxlLGc9Zi5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihkIGluIGMpY1tkXSE9PWImJigoZ1tkXT9hOmV8fChlPXt9KSlbZF09Y1tkXSk7ZSYmZi5leHRlbmQoITAsYSxlKX1mdW5jdGlvbiBiWihhLGMsZCxlLGYsZyl7Zj1mfHxjLmRhdGFUeXBlc1swXSxnPWd8fHt9LGdbZl09ITA7dmFyIGg9YVtmXSxpPTAsaj1oP2gubGVuZ3RoOjAsaz1hPT09YlMsbDtmb3IoO2k8aiYmKGt8fCFsKTtpKyspbD1oW2ldKGMsZCxlKSx0eXBlb2YgbD09InN0cmluZyImJigha3x8Z1tsXT9sPWI6KGMuZGF0YVR5cGVzLnVuc2hpZnQobCksbD1iWihhLGMsZCxlLGwsZykpKTsoa3x8IWwpJiYhZ1siKiJdJiYobD1iWihhLGMsZCxlLCIqIixnKSk7cmV0dXJuIGx9ZnVuY3Rpb24gYlkoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7dHlwZW9mIGIhPSJzdHJpbmciJiYoYz1iLGI9IioiKTtpZihmLmlzRnVuY3Rpb24oYykpe3ZhciBkPWIudG9Mb3dlckNhc2UoKS5zcGxpdChiTyksZT0wLGc9ZC5sZW5ndGgsaCxpLGo7Zm9yKDtlPGc7ZSsrKWg9ZFtlXSxqPS9eXCsvLnRlc3QoaCksaiYmKGg9aC5zdWJzdHIoMSl8fCIqIiksaT1hW2hdPWFbaF18fFtdLGlbaj8idW5zaGlmdCI6InB1c2giXShjKX19fWZ1bmN0aW9uIGJCKGEsYixjKXt2YXIgZD1iPT09IndpZHRoIj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGU9Yj09PSJ3aWR0aCI/MTowLGc9NDtpZihkPjApe2lmKGMhPT0iYm9yZGVyIilmb3IoO2U8ZztlKz0yKWN8fChkLT1wYXJzZUZsb2F0KGYuY3NzKGEsInBhZGRpbmciK2J4W2VdKSl8fDApLGM9PT0ibWFyZ2luIj9kKz1wYXJzZUZsb2F0KGYuY3NzKGEsYytieFtlXSkpfHwwOmQtPXBhcnNlRmxvYXQoZi5jc3MoYSwiYm9yZGVyIitieFtlXSsiV2lkdGgiKSl8fDA7cmV0dXJuIGQrInB4In1kPWJ5KGEsYik7aWYoZDwwfHxkPT1udWxsKWQ9YS5zdHlsZVtiXTtpZihidC50ZXN0KGQpKXJldHVybiBkO2Q9cGFyc2VGbG9hdChkKXx8MDtpZihjKWZvcig7ZTxnO2UrPTIpZCs9cGFyc2VGbG9hdChmLmNzcyhhLCJwYWRkaW5nIitieFtlXSkpfHwwLGMhPT0icGFkZGluZyImJihkKz1wYXJzZUZsb2F0KGYuY3NzKGEsImJvcmRlciIrYnhbZV0rIldpZHRoIikpfHwwKSxjPT09Im1hcmdpbiImJihkKz1wYXJzZUZsb2F0KGYuY3NzKGEsYytieFtlXSkpfHwwKTtyZXR1cm4gZCsicHgifWZ1bmN0aW9uIGJvKGEpe3ZhciBiPWMuY3JlYXRlRWxlbWVudCgiZGl2Iik7YmguYXBwZW5kQ2hpbGQoYiksYi5pbm5lckhUTUw9YS5vdXRlckhUTUw7cmV0dXJuIGIuZmlyc3RDaGlsZH1mdW5jdGlvbiBibihhKXt2YXIgYj0oYS5ub2RlTmFtZXx8IiIpLnRvTG93ZXJDYXNlKCk7Yj09PSJpbnB1dCI/Ym0oYSk6YiE9PSJzY3JpcHQiJiZ0eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZSE9InVuZGVmaW5lZCImJmYuZ3JlcChhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpLGJtKX1mdW5jdGlvbiBibShhKXtpZihhLnR5cGU9PT0iY2hlY2tib3gifHxhLnR5cGU9PT0icmFkaW8iKWEuZGVmYXVsdENoZWNrZWQ9YS5jaGVja2VkfWZ1bmN0aW9uIGJsKGEpe3JldHVybiB0eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZSE9InVuZGVmaW5lZCI/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpOnR5cGVvZiBhLnF1ZXJ5U2VsZWN0b3JBbGwhPSJ1bmRlZmluZWQiP2EucXVlcnlTZWxlY3RvckFsbCgiKiIpOltdfWZ1bmN0aW9uIGJrKGEsYil7dmFyIGM7Yi5ub2RlVHlwZT09PTEmJihiLmNsZWFyQXR0cmlidXRlcyYmYi5jbGVhckF0dHJpYnV0ZXMoKSxiLm1lcmdlQXR0cmlidXRlcyYmYi5tZXJnZUF0dHJpYnV0ZXMoYSksYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksYz09PSJvYmplY3QiP2Iub3V0ZXJIVE1MPWEub3V0ZXJIVE1MOmMhPT0iaW5wdXQifHxhLnR5cGUhPT0iY2hlY2tib3giJiZhLnR5cGUhPT0icmFkaW8iP2M9PT0ib3B0aW9uIj9iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOmM9PT0iaW5wdXQifHxjPT09InRleHRhcmVhIj9iLmRlZmF1bHRWYWx1ZT1hLmRlZmF1bHRWYWx1ZTpjPT09InNjcmlwdCImJmIudGV4dCE9PWEudGV4dCYmKGIudGV4dD1hLnRleHQpOihhLmNoZWNrZWQmJihiLmRlZmF1bHRDaGVja2VkPWIuY2hlY2tlZD1hLmNoZWNrZWQpLGIudmFsdWUhPT1hLnZhbHVlJiYoYi52YWx1ZT1hLnZhbHVlKSksYi5yZW1vdmVBdHRyaWJ1dGUoZi5leHBhbmRvKSxiLnJlbW92ZUF0dHJpYnV0ZSgiX3N1Ym1pdF9hdHRhY2hlZCIpLGIucmVtb3ZlQXR0cmlidXRlKCJfY2hhbmdlX2F0dGFjaGVkIikpfWZ1bmN0aW9uIGJqKGEsYil7aWYoYi5ub2RlVHlwZT09PTEmJiEhZi5oYXNEYXRhKGEpKXt2YXIgYyxkLGUsZz1mLl9kYXRhKGEpLGg9Zi5fZGF0YShiLGcpLGk9Zy5ldmVudHM7aWYoaSl7ZGVsZXRlIGguaGFuZGxlLGguZXZlbnRzPXt9O2ZvcihjIGluIGkpZm9yKGQ9MCxlPWlbY10ubGVuZ3RoO2Q8ZTtkKyspZi5ldmVudC5hZGQoYixjLGlbY11bZF0pfWguZGF0YSYmKGguZGF0YT1mLmV4dGVuZCh7fSxoLmRhdGEpKX19ZnVuY3Rpb24gYmkoYSxiKXtyZXR1cm4gZi5ub2RlTmFtZShhLCJ0YWJsZSIpP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF18fGEuYXBwZW5kQ2hpbGQoYS5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5IikpOmF9ZnVuY3Rpb24gVShhKXt2YXIgYj1WLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfWZ1bmN0aW9uIFQoYSxiLGMpe2I9Ynx8MDtpZihmLmlzRnVuY3Rpb24oYikpcmV0dXJuIGYuZ3JlcChhLGZ1bmN0aW9uKGEsZCl7dmFyIGU9ISFiLmNhbGwoYSxkLGEpO3JldHVybiBlPT09Y30pO2lmKGIubm9kZVR5cGUpcmV0dXJuIGYuZ3JlcChhLGZ1bmN0aW9uKGEsZCl7cmV0dXJuIGE9PT1iPT09Y30pO2lmKHR5cGVvZiBiPT0ic3RyaW5nIil7dmFyIGQ9Zi5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZVR5cGU9PT0xfSk7aWYoTy50ZXN0KGIpKXJldHVybiBmLmZpbHRlcihiLGQsIWMpO2I9Zi5maWx0ZXIoYixkKX1yZXR1cm4gZi5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4gZi5pbkFycmF5KGEsYik+PTA9PT1jfSl9ZnVuY3Rpb24gUyhhKXtyZXR1cm4hYXx8IWEucGFyZW50Tm9kZXx8YS5wYXJlbnROb2RlLm5vZGVUeXBlPT09MTF9ZnVuY3Rpb24gSygpe3JldHVybiEwfWZ1bmN0aW9uIEooKXtyZXR1cm4hMX1mdW5jdGlvbiBuKGEsYixjKXt2YXIgZD1iKyJkZWZlciIsZT1iKyJxdWV1ZSIsZz1iKyJtYXJrIixoPWYuX2RhdGEoYSxkKTtoJiYoYz09PSJxdWV1ZSJ8fCFmLl9kYXRhKGEsZSkpJiYoYz09PSJtYXJrInx8IWYuX2RhdGEoYSxnKSkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXshZi5fZGF0YShhLGUpJiYhZi5fZGF0YShhLGcpJiYoZi5yZW1vdmVEYXRhKGEsZCwhMCksaC5maXJlKCkpfSwwKX1mdW5jdGlvbiBtKGEpe2Zvcih2YXIgYiBpbiBhKXtpZihiPT09ImRhdGEiJiZmLmlzRW1wdHlPYmplY3QoYVtiXSkpY29udGludWU7aWYoYiE9PSJ0b0pTT04iKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGwoYSxjLGQpe2lmKGQ9PT1iJiZhLm5vZGVUeXBlPT09MSl7dmFyIGU9ImRhdGEtIitjLnJlcGxhY2UoaywiLSQxIikudG9Mb3dlckNhc2UoKTtkPWEuZ2V0QXR0cmlidXRlKGUpO2lmKHR5cGVvZiBkPT0ic3RyaW5nIil7dHJ5e2Q9ZD09PSJ0cnVlIj8hMDpkPT09ImZhbHNlIj8hMTpkPT09Im51bGwiP251bGw6Zi5pc051bWVyaWMoZCk/K2Q6ai50ZXN0KGQpP2YucGFyc2VKU09OKGQpOmR9Y2F0Y2goZyl7fWYuZGF0YShhLGMsZCl9ZWxzZSBkPWJ9cmV0dXJuIGR9ZnVuY3Rpb24gaChhKXt2YXIgYj1nW2FdPXt9LGMsZDthPWEuc3BsaXQoL1xzKy8pO2ZvcihjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKWJbYVtjXV09ITA7cmV0dXJuIGJ9dmFyIGM9YS5kb2N1bWVudCxkPWEubmF2aWdhdG9yLGU9YS5sb2NhdGlvbixmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gSigpe2lmKCFlLmlzUmVhZHkpe3RyeXtjLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKGEpe3NldFRpbWVvdXQoSiwxKTtyZXR1cm59ZS5yZWFkeSgpfX12YXIgZT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgZS5mbi5pbml0KGEsYixoKX0sZj1hLmpRdWVyeSxnPWEuJCxoLGk9L14oPzpbXiM8XSooPFtcd1xXXSs+KVtePl0qJHwjKFtcd1wtXSopJCkvLGo9L1xTLyxrPS9eXHMrLyxsPS9ccyskLyxtPS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sbj0vXltcXSw6e31cc10qJC8sbz0vXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLHA9LyJbXiJcXFxuXHJdKiJ8dHJ1ZXxmYWxzZXxudWxsfC0/XGQrKD86XC5cZCopPyg/OltlRV1bK1wtXT9cZCspPy9nLHE9Lyg/Ol58OnwsKSg/OlxzKlxbKSsvZyxyPS8od2Via2l0KVsgXC9dKFtcdy5dKykvLHM9LyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9dKFtcdy5dKykvLHQ9Lyhtc2llKSAoW1x3Ll0rKS8sdT0vKG1vemlsbGEpKD86Lio/IHJ2OihbXHcuXSspKT8vLHY9Ly0oW2Etel18WzAtOV0pL2lnLHc9L14tbXMtLyx4PWZ1bmN0aW9uKGEsYil7cmV0dXJuKGIrIiIpLnRvVXBwZXJDYXNlKCl9LHk9ZC51c2VyQWdlbnQseixBLEIsQz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLEQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxFPUFycmF5LnByb3RvdHlwZS5wdXNoLEY9QXJyYXkucHJvdG90eXBlLnNsaWNlLEc9U3RyaW5nLnByb3RvdHlwZS50cmltLEg9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsST17fTtlLmZuPWUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjplLGluaXQ6ZnVuY3Rpb24oYSxkLGYpe3ZhciBnLGgsaixrO2lmKCFhKXJldHVybiB0aGlzO2lmKGEubm9kZVR5cGUpe3RoaXMuY29udGV4dD10aGlzWzBdPWEsdGhpcy5sZW5ndGg9MTtyZXR1cm4gdGhpc31pZihhPT09ImJvZHkiJiYhZCYmYy5ib2R5KXt0aGlzLmNvbnRleHQ9Yyx0aGlzWzBdPWMuYm9keSx0aGlzLnNlbGVjdG9yPWEsdGhpcy5sZW5ndGg9MTtyZXR1cm4gdGhpc31pZih0eXBlb2YgYT09InN0cmluZyIpe2EuY2hhckF0KDApIT09IjwifHxhLmNoYXJBdChhLmxlbmd0aC0xKSE9PSI+Inx8YS5sZW5ndGg8Mz9nPWkuZXhlYyhhKTpnPVtudWxsLGEsbnVsbF07aWYoZyYmKGdbMV18fCFkKSl7aWYoZ1sxXSl7ZD1kIGluc3RhbmNlb2YgZT9kWzBdOmQsaz1kP2Qub3duZXJEb2N1bWVudHx8ZDpjLGo9bS5leGVjKGEpLGo/ZS5pc1BsYWluT2JqZWN0KGQpPyhhPVtjLmNyZWF0ZUVsZW1lbnQoalsxXSldLGUuZm4uYXR0ci5jYWxsKGEsZCwhMCkpOmE9W2suY3JlYXRlRWxlbWVudChqWzFdKV06KGo9ZS5idWlsZEZyYWdtZW50KFtnWzFdXSxba10pLGE9KGouY2FjaGVhYmxlP2UuY2xvbmUoai5mcmFnbWVudCk6ai5mcmFnbWVudCkuY2hpbGROb2Rlcyk7cmV0dXJuIGUubWVyZ2UodGhpcyxhKX1oPWMuZ2V0RWxlbWVudEJ5SWQoZ1syXSk7aWYoaCYmaC5wYXJlbnROb2RlKXtpZihoLmlkIT09Z1syXSlyZXR1cm4gZi5maW5kKGEpO3RoaXMubGVuZ3RoPTEsdGhpc1swXT1ofXRoaXMuY29udGV4dD1jLHRoaXMuc2VsZWN0b3I9YTtyZXR1cm4gdGhpc31yZXR1cm4hZHx8ZC5qcXVlcnk/KGR8fGYpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihkKS5maW5kKGEpfWlmKGUuaXNGdW5jdGlvbihhKSlyZXR1cm4gZi5yZWFkeShhKTthLnNlbGVjdG9yIT09YiYmKHRoaXMuc2VsZWN0b3I9YS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9YS5jb250ZXh0KTtyZXR1cm4gZS5tYWtlQXJyYXkoYSx0aGlzKX0sc2VsZWN0b3I6IiIsanF1ZXJ5OiIxLjcuMiIsbGVuZ3RoOjAsc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBGLmNhbGwodGhpcywwKX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsP3RoaXMudG9BcnJheSgpOmE8MD90aGlzW3RoaXMubGVuZ3RoK2FdOnRoaXNbYV19LHB1c2hTdGFjazpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5jb25zdHJ1Y3RvcigpO2UuaXNBcnJheShhKT9FLmFwcGx5KGQsYSk6ZS5tZXJnZShkLGEpLGQucHJldk9iamVjdD10aGlzLGQuY29udGV4dD10aGlzLmNvbnRleHQsYj09PSJmaW5kIj9kLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrKHRoaXMuc2VsZWN0b3I/IiAiOiIiKStjOmImJihkLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK2IrIigiK2MrIikiKTtyZXR1cm4gZH0sZWFjaDpmdW5jdGlvbihhLGIpe3JldHVybiBlLmVhY2godGhpcyxhLGIpfSxyZWFkeTpmdW5jdGlvbihhKXtlLmJpbmRSZWFkeSgpLEEuYWRkKGEpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXthPSthO3JldHVybiBhPT09LTE/dGhpcy5zbGljZShhKTp0aGlzLnNsaWNlKGEsYSsxKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soRi5hcHBseSh0aGlzLGFyZ3VtZW50cyksInNsaWNlIixGLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpFLHNvcnQ6W10uc29ydCxzcGxpY2U6W10uc3BsaWNlfSxlLmZuLmluaXQucHJvdG90eXBlPWUuZm4sZS5leHRlbmQ9ZS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxjLGQsZixnLGgsaT1hcmd1bWVudHNbMF18fHt9LGo9MSxrPWFyZ3VtZW50cy5sZW5ndGgsbD0hMTt0eXBlb2YgaT09ImJvb2xlYW4iJiYobD1pLGk9YXJndW1lbnRzWzFdfHx7fSxqPTIpLHR5cGVvZiBpIT0ib2JqZWN0IiYmIWUuaXNGdW5jdGlvbihpKSYmKGk9e30pLGs9PT1qJiYoaT10aGlzLC0taik7Zm9yKDtqPGs7aisrKWlmKChhPWFyZ3VtZW50c1tqXSkhPW51bGwpZm9yKGMgaW4gYSl7ZD1pW2NdLGY9YVtjXTtpZihpPT09Ziljb250aW51ZTtsJiZmJiYoZS5pc1BsYWluT2JqZWN0KGYpfHwoZz1lLmlzQXJyYXkoZikpKT8oZz8oZz0hMSxoPWQmJmUuaXNBcnJheShkKT9kOltdKTpoPWQmJmUuaXNQbGFpbk9iamVjdChkKT9kOnt9LGlbY109ZS5leHRlbmQobCxoLGYpKTpmIT09YiYmKGlbY109Zil9cmV0dXJuIGl9LGUuZXh0ZW5kKHtub0NvbmZsaWN0OmZ1bmN0aW9uKGIpe2EuJD09PWUmJihhLiQ9ZyksYiYmYS5qUXVlcnk9PT1lJiYoYS5qUXVlcnk9Zik7cmV0dXJuIGV9LGlzUmVhZHk6ITEscmVhZHlXYWl0OjEsaG9sZFJlYWR5OmZ1bmN0aW9uKGEpe2E/ZS5yZWFkeVdhaXQrKzplLnJlYWR5KCEwKX0scmVhZHk6ZnVuY3Rpb24oYSl7aWYoYT09PSEwJiYhLS1lLnJlYWR5V2FpdHx8YSE9PSEwJiYhZS5pc1JlYWR5KXtpZighYy5ib2R5KXJldHVybiBzZXRUaW1lb3V0KGUucmVhZHksMSk7ZS5pc1JlYWR5PSEwO2lmKGEhPT0hMCYmLS1lLnJlYWR5V2FpdD4wKXJldHVybjtBLmZpcmVXaXRoKGMsW2VdKSxlLmZuLnRyaWdnZXImJmUoYykudHJpZ2dlcigicmVhZHkiKS5vZmYoInJlYWR5Iil9fSxiaW5kUmVhZHk6ZnVuY3Rpb24oKXtpZighQSl7QT1lLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKTtpZihjLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXJldHVybiBzZXRUaW1lb3V0KGUucmVhZHksMSk7aWYoYy5hZGRFdmVudExpc3RlbmVyKWMuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQiwhMSksYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixlLnJlYWR5LCExKTtlbHNlIGlmKGMuYXR0YWNoRXZlbnQpe2MuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsQiksYS5hdHRhY2hFdmVudCgib25sb2FkIixlLnJlYWR5KTt2YXIgYj0hMTt0cnl7Yj1hLmZyYW1lRWxlbWVudD09bnVsbH1jYXRjaChkKXt9Yy5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJmImJkooKX19fSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKGEpe3JldHVybiBlLnR5cGUoYSk9PT0iZnVuY3Rpb24ifSxpc0FycmF5OkFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGEpe3JldHVybiBlLnR5cGUoYSk9PT0iYXJyYXkifSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gYSE9bnVsbCYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4haXNOYU4ocGFyc2VGbG9hdChhKSkmJmlzRmluaXRlKGEpfSx0eXBlOmZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsP1N0cmluZyhhKTpJW0MuY2FsbChhKV18fCJvYmplY3QifSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe2lmKCFhfHxlLnR5cGUoYSkhPT0ib2JqZWN0Inx8YS5ub2RlVHlwZXx8ZS5pc1dpbmRvdyhhKSlyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIUQuY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhRC5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9dmFyIGQ7Zm9yKGQgaW4gYSk7cmV0dXJuIGQ9PT1ifHxELmNhbGwoYSxkKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0sZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKGEpfSxwYXJzZUpTT046ZnVuY3Rpb24oYil7aWYodHlwZW9mIGIhPSJzdHJpbmcifHwhYilyZXR1cm4gbnVsbDtiPWUudHJpbShiKTtpZihhLkpTT04mJmEuSlNPTi5wYXJzZSlyZXR1cm4gYS5KU09OLnBhcnNlKGIpO2lmKG4udGVzdChiLnJlcGxhY2UobywiQCIpLnJlcGxhY2UocCwiXSIpLnJlcGxhY2UocSwiIikpKXJldHVybihuZXcgRnVuY3Rpb24oInJldHVybiAiK2IpKSgpO2UuZXJyb3IoIkludmFsaWQgSlNPTjogIitiKX0scGFyc2VYTUw6ZnVuY3Rpb24oYyl7aWYodHlwZW9mIGMhPSJzdHJpbmcifHwhYylyZXR1cm4gbnVsbDt2YXIgZCxmO3RyeXthLkRPTVBhcnNlcj8oZj1uZXcgRE9NUGFyc2VyLGQ9Zi5wYXJzZUZyb21TdHJpbmcoYywidGV4dC94bWwiKSk6KGQ9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxkLmFzeW5jPSJmYWxzZSIsZC5sb2FkWE1MKGMpKX1jYXRjaChnKXtkPWJ9KCFkfHwhZC5kb2N1bWVudEVsZW1lbnR8fGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIikubGVuZ3RoKSYmZS5lcnJvcigiSW52YWxpZCBYTUw6ICIrYyk7cmV0dXJuIGR9LG5vb3A6ZnVuY3Rpb24oKXt9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmai50ZXN0KGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2FsbChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKHcsIm1zLSIpLnJlcGxhY2Uodix4KX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT09Yi50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZixnPTAsaD1hLmxlbmd0aCxpPWg9PT1ifHxlLmlzRnVuY3Rpb24oYSk7aWYoZCl7aWYoaSl7Zm9yKGYgaW4gYSlpZihjLmFwcGx5KGFbZl0sZCk9PT0hMSlicmVha31lbHNlIGZvcig7ZzxoOylpZihjLmFwcGx5KGFbZysrXSxkKT09PSExKWJyZWFrfWVsc2UgaWYoaSl7Zm9yKGYgaW4gYSlpZihjLmNhbGwoYVtmXSxmLGFbZl0pPT09ITEpYnJlYWt9ZWxzZSBmb3IoO2c8aDspaWYoYy5jYWxsKGFbZ10sZyxhW2crK10pPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRyaW06Rz9mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD8iIjpHLmNhbGwoYSl9OmZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOihhKyIiKS5yZXBsYWNlKGssIiIpLnJlcGxhY2UobCwiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFtdO2lmKGEhPW51bGwpe3ZhciBkPWUudHlwZShhKTthLmxlbmd0aD09bnVsbHx8ZD09PSJzdHJpbmcifHxkPT09ImZ1bmN0aW9uInx8ZD09PSJyZWdleHAifHxlLmlzV2luZG93KGEpP0UuY2FsbChjLGEpOmUubWVyZ2UoYyxhKX1yZXR1cm4gY30saW5BcnJheTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7aWYoYil7aWYoSClyZXR1cm4gSC5jYWxsKGIsYSxjKTtkPWIubGVuZ3RoLGM9Yz9jPDA/TWF0aC5tYXgoMCxkK2MpOmM6MDtmb3IoO2M8ZDtjKyspaWYoYyBpbiBiJiZiW2NdPT09YSlyZXR1cm4gY31yZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxjKXt2YXIgZD1hLmxlbmd0aCxlPTA7aWYodHlwZW9mIGMubGVuZ3RoPT0ibnVtYmVyIilmb3IodmFyIGY9Yy5sZW5ndGg7ZTxmO2UrKylhW2QrK109Y1tlXTtlbHNlIHdoaWxlKGNbZV0hPT1iKWFbZCsrXT1jW2UrK107YS5sZW5ndGg9ZDtyZXR1cm4gYX0sZ3JlcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZTtjPSEhYztmb3IodmFyIGY9MCxnPWEubGVuZ3RoO2Y8ZztmKyspZT0hIWIoYVtmXSxmKSxjIT09ZSYmZC5wdXNoKGFbZl0pO3JldHVybiBkfSxtYXA6ZnVuY3Rpb24oYSxjLGQpe3ZhciBmLGcsaD1bXSxpPTAsaj1hLmxlbmd0aCxrPWEgaW5zdGFuY2VvZiBlfHxqIT09YiYmdHlwZW9mIGo9PSJudW1iZXIiJiYoaj4wJiZhWzBdJiZhW2otMV18fGo9PT0wfHxlLmlzQXJyYXkoYSkpO2lmKGspZm9yKDtpPGo7aSsrKWY9YyhhW2ldLGksZCksZiE9bnVsbCYmKGhbaC5sZW5ndGhdPWYpO2Vsc2UgZm9yKGcgaW4gYSlmPWMoYVtnXSxnLGQpLGYhPW51bGwmJihoW2gubGVuZ3RoXT1mKTtyZXR1cm4gaC5jb25jYXQuYXBwbHkoW10saCl9LGd1aWQ6MSxwcm94eTpmdW5jdGlvbihhLGMpe2lmKHR5cGVvZiBjPT0ic3RyaW5nIil7dmFyIGQ9YVtjXTtjPWEsYT1kfWlmKCFlLmlzRnVuY3Rpb24oYSkpcmV0dXJuIGI7dmFyIGY9Ri5jYWxsKGFyZ3VtZW50cywyKSxnPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYyxmLmNvbmNhdChGLmNhbGwoYXJndW1lbnRzKSkpfTtnLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8Zy5ndWlkfHxlLmd1aWQrKztyZXR1cm4gZ30sYWNjZXNzOmZ1bmN0aW9uKGEsYyxkLGYsZyxoLGkpe3ZhciBqLGs9ZD09bnVsbCxsPTAsbT1hLmxlbmd0aDtpZihkJiZ0eXBlb2YgZD09Im9iamVjdCIpe2ZvcihsIGluIGQpZS5hY2Nlc3MoYSxjLGwsZFtsXSwxLGgsZik7Zz0xfWVsc2UgaWYoZiE9PWIpe2o9aT09PWImJmUuaXNGdW5jdGlvbihmKSxrJiYoaj8oaj1jLGM9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwoZShhKSxjKX0pOihjLmNhbGwoYSxmKSxjPW51bGwpKTtpZihjKWZvcig7bDxtO2wrKyljKGFbbF0sZCxqP2YuY2FsbChhW2xdLGwsYyhhW2xdLGQpKTpmLGkpO2c9MX1yZXR1cm4gZz9hOms/Yy5jYWxsKGEpOm0/YyhhWzBdLGQpOmh9LG5vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfSx1YU1hdGNoOmZ1bmN0aW9uKGEpe2E9YS50b0xvd2VyQ2FzZSgpO3ZhciBiPXIuZXhlYyhhKXx8cy5leGVjKGEpfHx0LmV4ZWMoYSl8fGEuaW5kZXhPZigiY29tcGF0aWJsZSIpPDAmJnUuZXhlYyhhKXx8W107cmV0dXJue2Jyb3dzZXI6YlsxXXx8IiIsdmVyc2lvbjpiWzJdfHwiMCJ9fSxzdWI6ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJuIG5ldyBhLmZuLmluaXQoYixjKX1lLmV4dGVuZCghMCxhLHRoaXMpLGEuc3VwZXJjbGFzcz10aGlzLGEuZm49YS5wcm90b3R5cGU9dGhpcygpLGEuZm4uY29uc3RydWN0b3I9YSxhLnN1Yj10aGlzLnN1YixhLmZuLmluaXQ9ZnVuY3Rpb24oZCxmKXtmJiZmIGluc3RhbmNlb2YgZSYmIShmIGluc3RhbmNlb2YgYSkmJihmPWEoZikpO3JldHVybiBlLmZuLmluaXQuY2FsbCh0aGlzLGQsZixiKX0sYS5mbi5pbml0LnByb3RvdHlwZT1hLmZuO3ZhciBiPWEoYyk7cmV0dXJuIGF9LGJyb3dzZXI6e319KSxlLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtJWyJbb2JqZWN0ICIrYisiXSJdPWIudG9Mb3dlckNhc2UoKX0pLHo9ZS51YU1hdGNoKHkpLHouYnJvd3NlciYmKGUuYnJvd3Nlclt6LmJyb3dzZXJdPSEwLGUuYnJvd3Nlci52ZXJzaW9uPXoudmVyc2lvbiksZS5icm93c2VyLndlYmtpdCYmKGUuYnJvd3Nlci5zYWZhcmk9ITApLGoudGVzdCgiwqAiKSYmKGs9L15bXHNceEEwXSsvLGw9L1tcc1x4QTBdKyQvKSxoPWUoYyksYy5hZGRFdmVudExpc3RlbmVyP0I9ZnVuY3Rpb24oKXtjLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEIsITEpLGUucmVhZHkoKX06Yy5hdHRhY2hFdmVudCYmKEI9ZnVuY3Rpb24oKXtjLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiJiYoYy5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixCKSxlLnJlYWR5KCkpfSk7cmV0dXJuIGV9KCksZz17fTtmLkNhbGxiYWNrcz1mdW5jdGlvbihhKXthPWE/Z1thXXx8aChhKTp7fTt2YXIgYz1bXSxkPVtdLGUsaSxqLGssbCxtLG49ZnVuY3Rpb24oYil7dmFyIGQsZSxnLGgsaTtmb3IoZD0wLGU9Yi5sZW5ndGg7ZDxlO2QrKylnPWJbZF0saD1mLnR5cGUoZyksaD09PSJhcnJheSI/bihnKTpoPT09ImZ1bmN0aW9uIiYmKCFhLnVuaXF1ZXx8IXAuaGFzKGcpKSYmYy5wdXNoKGcpfSxvPWZ1bmN0aW9uKGIsZil7Zj1mfHxbXSxlPSFhLm1lbW9yeXx8W2IsZl0saT0hMCxqPSEwLG09a3x8MCxrPTAsbD1jLmxlbmd0aDtmb3IoO2MmJm08bDttKyspaWYoY1ttXS5hcHBseShiLGYpPT09ITEmJmEuc3RvcE9uRmFsc2Upe2U9ITA7YnJlYWt9aj0hMSxjJiYoYS5vbmNlP2U9PT0hMD9wLmRpc2FibGUoKTpjPVtdOmQmJmQubGVuZ3RoJiYoZT1kLnNoaWZ0KCkscC5maXJlV2l0aChlWzBdLGVbMV0pKSl9LHA9e2FkZDpmdW5jdGlvbigpe2lmKGMpe3ZhciBhPWMubGVuZ3RoO24oYXJndW1lbnRzKSxqP2w9Yy5sZW5ndGg6ZSYmZSE9PSEwJiYoaz1hLG8oZVswXSxlWzFdKSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe2lmKGMpe3ZhciBiPWFyZ3VtZW50cyxkPTAsZT1iLmxlbmd0aDtmb3IoO2Q8ZTtkKyspZm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspaWYoYltkXT09PWNbZl0pe2omJmY8PWwmJihsLS0sZjw9bSYmbS0tKSxjLnNwbGljZShmLS0sMSk7aWYoYS51bmlxdWUpYnJlYWt9fXJldHVybiB0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7aWYoYyl7dmFyIGI9MCxkPWMubGVuZ3RoO2Zvcig7YjxkO2IrKylpZihhPT09Y1tiXSlyZXR1cm4hMH1yZXR1cm4hMX0sZW1wdHk6ZnVuY3Rpb24oKXtjPVtdO3JldHVybiB0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7Yz1kPWU9YjtyZXR1cm4gdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hY30sbG9jazpmdW5jdGlvbigpe2Q9YiwoIWV8fGU9PT0hMCkmJnAuZGlzYWJsZSgpO3JldHVybiB0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hZH0sZmlyZVdpdGg6ZnVuY3Rpb24oYixjKXtkJiYoaj9hLm9uY2V8fGQucHVzaChbYixjXSk6KCFhLm9uY2V8fCFlKSYmbyhiLGMpKTtyZXR1cm4gdGhpc30sZmlyZTpmdW5jdGlvbigpe3AuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpO3JldHVybiB0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhaX19O3JldHVybiBwfTt2YXIgaT1bXS5zbGljZTtmLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9Zi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksYz1mLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxkPWYuQ2FsbGJhY2tzKCJtZW1vcnkiKSxlPSJwZW5kaW5nIixnPXtyZXNvbHZlOmIscmVqZWN0OmMsbm90aWZ5OmR9LGg9e2RvbmU6Yi5hZGQsZmFpbDpjLmFkZCxwcm9ncmVzczpkLmFkZCxzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBlfSxpc1Jlc29sdmVkOmIuZmlyZWQsaXNSZWplY3RlZDpjLmZpcmVkLHRoZW46ZnVuY3Rpb24oYSxiLGMpe2kuZG9uZShhKS5mYWlsKGIpLnByb2dyZXNzKGMpO3JldHVybiB0aGlzfSxhbHdheXM6ZnVuY3Rpb24oKXtpLmRvbmUuYXBwbHkoaSxhcmd1bWVudHMpLmZhaWwuYXBwbHkoaSxhcmd1bWVudHMpO3JldHVybiB0aGlzfSxwaXBlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5EZWZlcnJlZChmdW5jdGlvbihkKXtmLmVhY2goe2RvbmU6W2EsInJlc29sdmUiXSxmYWlsOltiLCJyZWplY3QiXSxwcm9ncmVzczpbYywibm90aWZ5Il19LGZ1bmN0aW9uKGEsYil7dmFyIGM9YlswXSxlPWJbMV0sZztmLmlzRnVuY3Rpb24oYyk/aVthXShmdW5jdGlvbigpe2c9Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyksZyYmZi5pc0Z1bmN0aW9uKGcucHJvbWlzZSk/Zy5wcm9taXNlKCkudGhlbihkLnJlc29sdmUsZC5yZWplY3QsZC5ub3RpZnkpOmRbZSsiV2l0aCJdKHRoaXM9PT1pP2Q6dGhpcyxbZ10pfSk6aVthXShkW2VdKX0pfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpYT1oO2Vsc2UgZm9yKHZhciBiIGluIGgpYVtiXT1oW2JdO3JldHVybiBhfX0saT1oLnByb21pc2Uoe30pLGo7Zm9yKGogaW4gZylpW2pdPWdbal0uZmlyZSxpW2orIldpdGgiXT1nW2pdLmZpcmVXaXRoO2kuZG9uZShmdW5jdGlvbigpe2U9InJlc29sdmVkIn0sYy5kaXNhYmxlLGQubG9jaykuZmFpbChmdW5jdGlvbigpe2U9InJlamVjdGVkIn0sYi5kaXNhYmxlLGQubG9jayksYSYmYS5jYWxsKGksaSk7cmV0dXJuIGl9LHdoZW46ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gbShhKXtyZXR1cm4gZnVuY3Rpb24oYil7ZVthXT1hcmd1bWVudHMubGVuZ3RoPjE/aS5jYWxsKGFyZ3VtZW50cywwKTpiLGoubm90aWZ5V2l0aChrLGUpfX1mdW5jdGlvbiBsKGEpe3JldHVybiBmdW5jdGlvbihjKXtiW2FdPWFyZ3VtZW50cy5sZW5ndGg+MT9pLmNhbGwoYXJndW1lbnRzLDApOmMsLS1nfHxqLnJlc29sdmVXaXRoKGosYil9fXZhciBiPWkuY2FsbChhcmd1bWVudHMsMCksYz0wLGQ9Yi5sZW5ndGgsZT1BcnJheShkKSxnPWQsaD1kLGo9ZDw9MSYmYSYmZi5pc0Z1bmN0aW9uKGEucHJvbWlzZSk/YTpmLkRlZmVycmVkKCksaz1qLnByb21pc2UoKTtpZihkPjEpe2Zvcig7YzxkO2MrKyliW2NdJiZiW2NdLnByb21pc2UmJmYuaXNGdW5jdGlvbihiW2NdLnByb21pc2UpP2JbY10ucHJvbWlzZSgpLnRoZW4obChjKSxqLnJlamVjdCxtKGMpKTotLWc7Z3x8ai5yZXNvbHZlV2l0aChqLGIpfWVsc2UgaiE9PWEmJmoucmVzb2x2ZVdpdGgoaixkP1thXTpbXSk7cmV0dXJuIGt9fSksZi5zdXBwb3J0PWZ1bmN0aW9uKCl7dmFyIGIsZCxlLGcsaCxpLGosayxsLG0sbixvLHA9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKSxxPWMuZG9jdW1lbnRFbGVtZW50O3Auc2V0QXR0cmlidXRlKCJjbGFzc05hbWUiLCJ0IikscC5pbm5lckhUTUw9IiAgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYScgc3R5bGU9J3RvcDoxcHg7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41NTsnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixkPXAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxlPXAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighZHx8IWQubGVuZ3RofHwhZSlyZXR1cm57fTtnPWMuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksaD1nLmFwcGVuZENoaWxkKGMuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLGk9cC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxiPXtsZWFkaW5nV2hpdGVzcGFjZTpwLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0zLHRib2R5OiFwLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhcC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovdG9wLy50ZXN0KGUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDplLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5Oi9eMC41NS8udGVzdChlLnN0eWxlLm9wYWNpdHkpLGNzc0Zsb2F0OiEhZS5zdHlsZS5jc3NGbG9hdCxjaGVja09uOmkudmFsdWU9PT0ib24iLG9wdFNlbGVjdGVkOmguc2VsZWN0ZWQsZ2V0U2V0QXR0cmlidXRlOnAuY2xhc3NOYW1lIT09InQiLGVuY3R5cGU6ISFjLmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGh0bWw1Q2xvbmU6Yy5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCE9PSI8Om5hdj48LzpuYXY+IixzdWJtaXRCdWJibGVzOiEwLGNoYW5nZUJ1YmJsZXM6ITAsZm9jdXNpbkJ1YmJsZXM6ITEsZGVsZXRlRXhwYW5kbzohMCxub0Nsb25lRXZlbnQ6ITAsaW5saW5lQmxvY2tOZWVkc0xheW91dDohMSxzaHJpbmtXcmFwQmxvY2tzOiExLHJlbGlhYmxlTWFyZ2luUmlnaHQ6ITAscGl4ZWxNYXJnaW46ITB9LGYuYm94TW9kZWw9Yi5ib3hNb2RlbD1jLmNvbXBhdE1vZGU9PT0iQ1NTMUNvbXBhdCIsaS5jaGVja2VkPSEwLGIubm9DbG9uZUNoZWNrZWQ9aS5jbG9uZU5vZGUoITApLmNoZWNrZWQsZy5kaXNhYmxlZD0hMCxiLm9wdERpc2FibGVkPSFoLmRpc2FibGVkO3RyeXtkZWxldGUgcC50ZXN0fWNhdGNoKHIpe2IuZGVsZXRlRXhwYW5kbz0hMX0hcC5hZGRFdmVudExpc3RlbmVyJiZwLmF0dGFjaEV2ZW50JiZwLmZpcmVFdmVudCYmKHAuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uKCl7Yi5ub0Nsb25lRXZlbnQ9ITF9KSxwLmNsb25lTm9kZSghMCkuZmlyZUV2ZW50KCJvbmNsaWNrIikpLGk9Yy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGkudmFsdWU9InQiLGkuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxiLnJhZGlvVmFsdWU9aS52YWx1ZT09PSJ0IixpLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSxpLnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKSxwLmFwcGVuZENoaWxkKGkpLGo9Yy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksai5hcHBlbmRDaGlsZChwLmxhc3RDaGlsZCksYi5jaGVja0Nsb25lPWouY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkLGIuYXBwZW5kQ2hlY2tlZD1pLmNoZWNrZWQsai5yZW1vdmVDaGlsZChpKSxqLmFwcGVuZENoaWxkKHApO2lmKHAuYXR0YWNoRXZlbnQpZm9yKG4gaW57c3VibWl0OjEsY2hhbmdlOjEsZm9jdXNpbjoxfSltPSJvbiIrbixvPW0gaW4gcCxvfHwocC5zZXRBdHRyaWJ1dGUobSwicmV0dXJuOyIpLG89dHlwZW9mIHBbbV09PSJmdW5jdGlvbiIpLGJbbisiQnViYmxlcyJdPW87ai5yZW1vdmVDaGlsZChwKSxqPWc9aD1wPWk9bnVsbCxmKGZ1bmN0aW9uKCl7dmFyIGQsZSxnLGgsaSxqLGwsbSxuLHEscixzLHQsdT1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07IXV8fChtPTEsdD0icGFkZGluZzowO21hcmdpbjowO2JvcmRlcjoiLHI9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDsiLHM9dCsiMDt2aXNpYmlsaXR5OmhpZGRlbjsiLG49InN0eWxlPSciK3IrdCsiNXB4IHNvbGlkICMwMDA7IixxPSI8ZGl2ICIrbisiZGlzcGxheTpibG9jazsnPjxkaXYgc3R5bGU9JyIrdCsiMDtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjsnPjwvZGl2PjwvZGl2PiIrIjx0YWJsZSAiK24rIicgY2VsbHBhZGRpbmc9JzAnIGNlbGxzcGFjaW5nPScwJz4iKyI8dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPiIsZD1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD1zKyJ3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOnN0YXRpYzt0b3A6MDttYXJnaW4tdG9wOiIrbSsicHgiLHUuaW5zZXJ0QmVmb3JlKGQsdS5maXJzdENoaWxkKSxwPWMuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5hcHBlbmRDaGlsZChwKSxwLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQgc3R5bGU9JyIrdCsiMDtkaXNwbGF5Om5vbmUnPjwvdGQ+PHRkPnQ8L3RkPjwvdHI+PC90YWJsZT4iLGs9cC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKSxvPWtbMF0ub2Zmc2V0SGVpZ2h0PT09MCxrWzBdLnN0eWxlLmRpc3BsYXk9IiIsa1sxXS5zdHlsZS5kaXNwbGF5PSJub25lIixiLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cz1vJiZrWzBdLm9mZnNldEhlaWdodD09PTAsYS5nZXRDb21wdXRlZFN0eWxlJiYocC5pbm5lckhUTUw9IiIsbD1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGwuc3R5bGUud2lkdGg9IjAiLGwuc3R5bGUubWFyZ2luUmlnaHQ9IjAiLHAuc3R5bGUud2lkdGg9IjJweCIscC5hcHBlbmRDaGlsZChsKSxiLnJlbGlhYmxlTWFyZ2luUmlnaHQ9KHBhcnNlSW50KChhLmdldENvbXB1dGVkU3R5bGUobCxudWxsKXx8e21hcmdpblJpZ2h0OjB9KS5tYXJnaW5SaWdodCwxMCl8fDApPT09MCksdHlwZW9mIHAuc3R5bGUuem9vbSE9InVuZGVmaW5lZCImJihwLmlubmVySFRNTD0iIixwLnN0eWxlLndpZHRoPXAuc3R5bGUucGFkZGluZz0iMXB4IixwLnN0eWxlLmJvcmRlcj0wLHAuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIscC5zdHlsZS5kaXNwbGF5PSJpbmxpbmUiLHAuc3R5bGUuem9vbT0xLGIuaW5saW5lQmxvY2tOZWVkc0xheW91dD1wLm9mZnNldFdpZHRoPT09MyxwLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixwLnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIixwLmlubmVySFRNTD0iPGRpdiBzdHlsZT0nd2lkdGg6NXB4Oyc+PC9kaXY+IixiLnNocmlua1dyYXBCbG9ja3M9cC5vZmZzZXRXaWR0aCE9PTMpLHAuc3R5bGUuY3NzVGV4dD1yK3MscC5pbm5lckhUTUw9cSxlPXAuZmlyc3RDaGlsZCxnPWUuZmlyc3RDaGlsZCxpPWUubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkLGo9e2RvZXNOb3RBZGRCb3JkZXI6Zy5vZmZzZXRUb3AhPT01LGRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzOmkub2Zmc2V0VG9wPT09NX0sZy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGcuc3R5bGUudG9wPSIyMHB4IixqLmZpeGVkUG9zaXRpb249Zy5vZmZzZXRUb3A9PT0yMHx8Zy5vZmZzZXRUb3A9PT0xNSxnLnN0eWxlLnBvc2l0aW9uPWcuc3R5bGUudG9wPSIiLGUuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGouc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPWcub2Zmc2V0VG9wPT09LTUsai5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldD11Lm9mZnNldFRvcCE9PW0sYS5nZXRDb21wdXRlZFN0eWxlJiYocC5zdHlsZS5tYXJnaW5Ub3A9IjElIixiLnBpeGVsTWFyZ2luPShhLmdldENvbXB1dGVkU3R5bGUocCxudWxsKXx8e21hcmdpblRvcDowfSkubWFyZ2luVG9wIT09IjElIiksdHlwZW9mIGQuc3R5bGUuem9vbSE9InVuZGVmaW5lZCImJihkLnN0eWxlLnpvb209MSksdS5yZW1vdmVDaGlsZChkKSxsPXA9ZD1udWxsLGYuZXh0ZW5kKGIsaikpfSk7cmV0dXJuIGJ9KCk7dmFyIGo9L14oPzpcey4qXH18XFsuKlxdKSQvLGs9LyhbQS1aXSkvZztmLmV4dGVuZCh7Y2FjaGU6e30sdXVpZDowLGV4cGFuZG86ImpRdWVyeSIrKGYuZm4uanF1ZXJ5K01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLG5vRGF0YTp7ZW1iZWQ6ITAsb2JqZWN0OiJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiLGFwcGxldDohMH0saGFzRGF0YTpmdW5jdGlvbihhKXthPWEubm9kZVR5cGU/Zi5jYWNoZVthW2YuZXhwYW5kb11dOmFbZi5leHBhbmRvXTtyZXR1cm4hIWEmJiFtKGEpfSxkYXRhOmZ1bmN0aW9uKGEsYyxkLGUpe2lmKCEhZi5hY2NlcHREYXRhKGEpKXt2YXIgZyxoLGksaj1mLmV4cGFuZG8saz10eXBlb2YgYz09InN0cmluZyIsbD1hLm5vZGVUeXBlLG09bD9mLmNhY2hlOmEsbj1sP2Fbal06YVtqXSYmaixvPWM9PT0iZXZlbnRzIjtpZigoIW58fCFtW25dfHwhbyYmIWUmJiFtW25dLmRhdGEpJiZrJiZkPT09YilyZXR1cm47bnx8KGw/YVtqXT1uPSsrZi51dWlkOm49aiksbVtuXXx8KG1bbl09e30sbHx8KG1bbl0udG9KU09OPWYubm9vcCkpO2lmKHR5cGVvZiBjPT0ib2JqZWN0Inx8dHlwZW9mIGM9PSJmdW5jdGlvbiIpZT9tW25dPWYuZXh0ZW5kKG1bbl0sYyk6bVtuXS5kYXRhPWYuZXh0ZW5kKG1bbl0uZGF0YSxjKTtnPWg9bVtuXSxlfHwoaC5kYXRhfHwoaC5kYXRhPXt9KSxoPWguZGF0YSksZCE9PWImJihoW2YuY2FtZWxDYXNlKGMpXT1kKTtpZihvJiYhaFtjXSlyZXR1cm4gZy5ldmVudHM7az8oaT1oW2NdLGk9PW51bGwmJihpPWhbZi5jYW1lbENhc2UoYyldKSk6aT1oO3JldHVybiBpfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIsYyl7aWYoISFmLmFjY2VwdERhdGEoYSkpe3ZhciBkLGUsZyxoPWYuZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP2YuY2FjaGU6YSxrPWk/YVtoXTpoO2lmKCFqW2tdKXJldHVybjtpZihiKXtkPWM/altrXTpqW2tdLmRhdGE7aWYoZCl7Zi5pc0FycmF5KGIpfHwoYiBpbiBkP2I9W2JdOihiPWYuY2FtZWxDYXNlKGIpLGIgaW4gZD9iPVtiXTpiPWIuc3BsaXQoIiAiKSkpO2ZvcihlPTAsZz1iLmxlbmd0aDtlPGc7ZSsrKWRlbGV0ZSBkW2JbZV1dO2lmKCEoYz9tOmYuaXNFbXB0eU9iamVjdCkoZCkpcmV0dXJufX1pZighYyl7ZGVsZXRlIGpba10uZGF0YTtpZighbShqW2tdKSlyZXR1cm59Zi5zdXBwb3J0LmRlbGV0ZUV4cGFuZG98fCFqLnNldEludGVydmFsP2RlbGV0ZSBqW2tdOmpba109bnVsbCxpJiYoZi5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8/ZGVsZXRlIGFbaF06YS5yZW1vdmVBdHRyaWJ1dGU/YS5yZW1vdmVBdHRyaWJ1dGUoaCk6YVtoXT1udWxsKX19LF9kYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5kYXRhKGEsYixjLCEwKX0sYWNjZXB0RGF0YTpmdW5jdGlvbihhKXtpZihhLm5vZGVOYW1lKXt2YXIgYj1mLm5vRGF0YVthLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldO2lmKGIpcmV0dXJuIGIhPT0hMCYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKT09PWJ9cmV0dXJuITB9fSksZi5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxjKXt2YXIgZCxlLGcsaCxpLGo9dGhpc1swXSxrPTAsbT1udWxsO2lmKGE9PT1iKXtpZih0aGlzLmxlbmd0aCl7bT1mLmRhdGEoaik7aWYoai5ub2RlVHlwZT09PTEmJiFmLl9kYXRhKGosInBhcnNlZEF0dHJzIikpe2c9ai5hdHRyaWJ1dGVzO2ZvcihpPWcubGVuZ3RoO2s8aTtrKyspaD1nW2tdLm5hbWUsaC5pbmRleE9mKCJkYXRhLSIpPT09MCYmKGg9Zi5jYW1lbENhc2UoaC5zdWJzdHJpbmcoNSkpLGwoaixoLG1baF0pKTtmLl9kYXRhKGosInBhcnNlZEF0dHJzIiwhMCl9fXJldHVybiBtfWlmKHR5cGVvZiBhPT0ib2JqZWN0IilyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zi5kYXRhKHRoaXMsYSl9KTtkPWEuc3BsaXQoIi4iLDIpLGRbMV09ZFsxXT8iLiIrZFsxXToiIixlPWRbMV0rIiEiO3JldHVybiBmLmFjY2Vzcyh0aGlzLGZ1bmN0aW9uKGMpe2lmKGM9PT1iKXttPXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK2UsW2RbMF1dKSxtPT09YiYmaiYmKG09Zi5kYXRhKGosYSksbT1sKGosYSxtKSk7cmV0dXJuIG09PT1iJiZkWzFdP3RoaXMuZGF0YShkWzBdKTptfWRbMV09Yyx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1mKHRoaXMpO2IudHJpZ2dlckhhbmRsZXIoInNldERhdGEiK2UsZCksZi5kYXRhKHRoaXMsYSxjKSxiLnRyaWdnZXJIYW5kbGVyKCJjaGFuZ2VEYXRhIitlLGQpfSl9LG51bGwsYyxhcmd1bWVudHMubGVuZ3RoPjEsbnVsbCwhMSl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSksZi5leHRlbmQoe19tYXJrOmZ1bmN0aW9uKGEsYil7YSYmKGI9KGJ8fCJmeCIpKyJtYXJrIixmLl9kYXRhKGEsYiwoZi5fZGF0YShhLGIpfHwwKSsxKSl9LF91bm1hcms6ZnVuY3Rpb24oYSxiLGMpe2EhPT0hMCYmKGM9YixiPWEsYT0hMSk7aWYoYil7Yz1jfHwiZngiO3ZhciBkPWMrIm1hcmsiLGU9YT8wOihmLl9kYXRhKGIsZCl8fDEpLTE7ZT9mLl9kYXRhKGIsZCxlKTooZi5yZW1vdmVEYXRhKGIsZCwhMCksbihiLGMsIm1hcmsiKSl9fSxxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7aWYoYSl7Yj0oYnx8ImZ4IikrInF1ZXVlIixkPWYuX2RhdGEoYSxiKSxjJiYoIWR8fGYuaXNBcnJheShjKT9kPWYuX2RhdGEoYSxiLGYubWFrZUFycmF5KGMpKTpkLnB1c2goYykpO3JldHVybiBkfHxbXX19LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9Zi5xdWV1ZShhLGIpLGQ9Yy5zaGlmdCgpLGU9e307ZD09PSJpbnByb2dyZXNzIiYmKGQ9Yy5zaGlmdCgpKSxkJiYoYj09PSJmeCImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGYuX2RhdGEoYSxiKyIucnVuIixlKSxkLmNhbGwoYSxmdW5jdGlvbigpe2YuZGVxdWV1ZShhLGIpfSxlKSksYy5sZW5ndGh8fChmLnJlbW92ZURhdGEoYSxiKyJxdWV1ZSAiK2IrIi5ydW4iLCEwKSxuKGEsYiwicXVldWUiKSl9fSksZi5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYyl7dmFyIGQ9Mjt0eXBlb2YgYSE9InN0cmluZyImJihjPWEsYT0iZngiLGQtLSk7aWYoYXJndW1lbnRzLmxlbmd0aDxkKXJldHVybiBmLnF1ZXVlKHRoaXNbMF0sYSk7cmV0dXJuIGM9PT1iP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Zi5xdWV1ZSh0aGlzLGEsYyk7YT09PSJmeCImJmJbMF0hPT0iaW5wcm9ncmVzcyImJmYuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlbGF5OmZ1bmN0aW9uKGEsYil7YT1mLmZ4P2YuZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiO3JldHVybiB0aGlzLnF1ZXVlKGIsZnVuY3Rpb24oYixjKXt2YXIgZD1zZXRUaW1lb3V0KGIsYSk7Yy5zdG9wPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGQpfX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGF8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGEsYyl7ZnVuY3Rpb24gbSgpey0taHx8ZC5yZXNvbHZlV2l0aChlLFtlXSl9dHlwZW9mIGEhPSJzdHJpbmciJiYoYz1hLGE9YiksYT1hfHwiZngiO3ZhciBkPWYuRGVmZXJyZWQoKSxlPXRoaXMsZz1lLmxlbmd0aCxoPTEsaT1hKyJkZWZlciIsaj1hKyJxdWV1ZSIsaz1hKyJtYXJrIixsO3doaWxlKGctLSlpZihsPWYuZGF0YShlW2ddLGksYiwhMCl8fChmLmRhdGEoZVtnXSxqLGIsITApfHxmLmRhdGEoZVtnXSxrLGIsITApKSYmZi5kYXRhKGVbZ10saSxmLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwhMCkpaCsrLGwuYWRkKG0pO20oKTtyZXR1cm4gZC5wcm9taXNlKGMpfX0pO3ZhciBvPS9bXG5cdFxyXS9nLHA9L1xzKy8scT0vXHIvZyxyPS9eKD86YnV0dG9ufGlucHV0KSQvaSxzPS9eKD86YnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpJC9pLHQ9L15hKD86cmVhKT8kL2ksdT0vXig/OmF1dG9mb2N1c3xhdXRvcGxheXxhc3luY3xjaGVja2VkfGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkfHNlbGVjdGVkKSQvaSx2PWYuc3VwcG9ydC5nZXRTZXRBdHRyaWJ1dGUsdyx4LHk7Zi5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZi5hY2Nlc3ModGhpcyxmLmF0dHIsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YucmVtb3ZlQXR0cih0aGlzLGEpfSl9LHByb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZi5hY2Nlc3ModGhpcyxmLnByb3AsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oYSl7YT1mLnByb3BGaXhbYV18fGE7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3RyeXt0aGlzW2FdPWIsZGVsZXRlIHRoaXNbYV19Y2F0Y2goYyl7fX0pfSxhZGRDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxnLGgsaTtpZihmLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtmKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLGIsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGEmJnR5cGVvZiBhPT0ic3RyaW5nIil7Yj1hLnNwbGl0KHApO2ZvcihjPTAsZD10aGlzLmxlbmd0aDtjPGQ7YysrKXtlPXRoaXNbY107aWYoZS5ub2RlVHlwZT09PTEpaWYoIWUuY2xhc3NOYW1lJiZiLmxlbmd0aD09PTEpZS5jbGFzc05hbWU9YTtlbHNle2c9IiAiK2UuY2xhc3NOYW1lKyIgIjtmb3IoaD0wLGk9Yi5sZW5ndGg7aDxpO2grKyl+Zy5pbmRleE9mKCIgIitiW2hdKyIgIil8fChnKz1iW2hdKyIgIik7ZS5jbGFzc05hbWU9Zi50cmltKGcpfX19cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe3ZhciBjLGQsZSxnLGgsaSxqO2lmKGYuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2YodGhpcykucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoYSYmdHlwZW9mIGE9PSJzdHJpbmcifHxhPT09Yil7Yz0oYXx8IiIpLnNwbGl0KHApO2ZvcihkPTAsZT10aGlzLmxlbmd0aDtkPGU7ZCsrKXtnPXRoaXNbZF07aWYoZy5ub2RlVHlwZT09PTEmJmcuY2xhc3NOYW1lKWlmKGEpe2g9KCIgIitnLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UobywiICIpO2ZvcihpPTAsaj1jLmxlbmd0aDtpPGo7aSsrKWg9aC5yZXBsYWNlKCIgIitjW2ldKyIgIiwiICIpO2cuY2xhc3NOYW1lPWYudHJpbShoKX1lbHNlIGcuY2xhc3NOYW1lPSIifX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYSxkPXR5cGVvZiBiPT0iYm9vbGVhbiI7aWYoZi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7Zih0aGlzKS50b2dnbGVDbGFzcyhhLmNhbGwodGhpcyxjLHRoaXMuY2xhc3NOYW1lLGIpLGIpfSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKGM9PT0ic3RyaW5nIil7dmFyIGUsZz0wLGg9Zih0aGlzKSxpPWIsaj1hLnNwbGl0KHApO3doaWxlKGU9altnKytdKWk9ZD9pOiFoLmhhc0NsYXNzKGUpLGhbaT8iYWRkQ2xhc3MiOiJyZW1vdmVDbGFzcyJdKGUpfWVsc2UgaWYoYz09PSJ1bmRlZmluZWQifHxjPT09ImJvb2xlYW4iKXRoaXMuY2xhc3NOYW1lJiZmLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHRoaXMuY2xhc3NOYW1lKSx0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZXx8YT09PSExPyIiOmYuX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIn0pfSxoYXNDbGFzczpmdW5jdGlvbihhKXt2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7Zm9yKDtjPGQ7YysrKWlmKHRoaXNbY10ubm9kZVR5cGU9PT0xJiYoIiAiK3RoaXNbY10uY2xhc3NOYW1lKyIgIikucmVwbGFjZShvLCIgIikuaW5kZXhPZihiKT4tMSlyZXR1cm4hMDtyZXR1cm4hMX0sdmFsOmZ1bmN0aW9uKGEpe3ZhciBjLGQsZSxnPXRoaXNbMF07e2lmKCEhYXJndW1lbnRzLmxlbmd0aCl7ZT1mLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihkKXt2YXIgZz1mKHRoaXMpLGg7aWYodGhpcy5ub2RlVHlwZT09PTEpe2U/aD1hLmNhbGwodGhpcyxkLGcudmFsKCkpOmg9YSxoPT1udWxsP2g9IiI6dHlwZW9mIGg9PSJudW1iZXIiP2grPSIiOmYuaXNBcnJheShoKSYmKGg9Zi5tYXAoaCxmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD8iIjphKyIifSkpLGM9Zi52YWxIb29rc1t0aGlzLnR5cGVdfHxmLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV07aWYoIWN8fCEoInNldCJpbiBjKXx8Yy5zZXQodGhpcyxoLCJ2YWx1ZSIpPT09Yil0aGlzLnZhbHVlPWh9fSl9aWYoZyl7Yz1mLnZhbEhvb2tzW2cudHlwZV18fGYudmFsSG9va3NbZy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXTtpZihjJiYiZ2V0ImluIGMmJihkPWMuZ2V0KGcsInZhbHVlIikpIT09YilyZXR1cm4gZDtkPWcudmFsdWU7cmV0dXJuIHR5cGVvZiBkPT0ic3RyaW5nIj9kLnJlcGxhY2UocSwiIik6ZD09bnVsbD8iIjpkfX19fSksZi5leHRlbmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLmF0dHJpYnV0ZXMudmFsdWU7cmV0dXJuIWJ8fGIuc3BlY2lmaWVkP2EudmFsdWU6YS50ZXh0fX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZz1hLnNlbGVjdGVkSW5kZXgsaD1bXSxpPWEub3B0aW9ucyxqPWEudHlwZT09PSJzZWxlY3Qtb25lIjtpZihnPDApcmV0dXJuIG51bGw7Yz1qP2c6MCxkPWo/ZysxOmkubGVuZ3RoO2Zvcig7YzxkO2MrKyl7ZT1pW2NdO2lmKGUuc2VsZWN0ZWQmJihmLnN1cHBvcnQub3B0RGlzYWJsZWQ/IWUuZGlzYWJsZWQ6ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIik9PT1udWxsKSYmKCFlLnBhcmVudE5vZGUuZGlzYWJsZWR8fCFmLm5vZGVOYW1lKGUucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2I9ZihlKS52YWwoKTtpZihqKXJldHVybiBiO2gucHVzaChiKX19aWYoaiYmIWgubGVuZ3RoJiZpLmxlbmd0aClyZXR1cm4gZihpW2ddKS52YWwoKTtyZXR1cm4gaH0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9Zi5tYWtlQXJyYXkoYik7ZihhKS5maW5kKCJvcHRpb24iKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZD1mLmluQXJyYXkoZih0aGlzKS52YWwoKSxjKT49MH0pLGMubGVuZ3RofHwoYS5zZWxlY3RlZEluZGV4PS0xKTtyZXR1cm4gY319fSxhdHRyRm46e3ZhbDohMCxjc3M6ITAsaHRtbDohMCx0ZXh0OiEwLGRhdGE6ITAsd2lkdGg6ITAsaGVpZ2h0OiEwLG9mZnNldDohMH0sYXR0cjpmdW5jdGlvbihhLGMsZCxlKXt2YXIgZyxoLGksaj1hLm5vZGVUeXBlO2lmKCEhYSYmaiE9PTMmJmohPT04JiZqIT09Mil7aWYoZSYmYyBpbiBmLmF0dHJGbilyZXR1cm4gZihhKVtjXShkKTtpZih0eXBlb2YgYS5nZXRBdHRyaWJ1dGU9PSJ1bmRlZmluZWQiKXJldHVybiBmLnByb3AoYSxjLGQpO2k9aiE9PTF8fCFmLmlzWE1MRG9jKGEpLGkmJihjPWMudG9Mb3dlckNhc2UoKSxoPWYuYXR0ckhvb2tzW2NdfHwodS50ZXN0KGMpP3g6dykpO2lmKGQhPT1iKXtpZihkPT09bnVsbCl7Zi5yZW1vdmVBdHRyKGEsYyk7cmV0dXJufWlmKGgmJiJzZXQiaW4gaCYmaSYmKGc9aC5zZXQoYSxkLGMpKSE9PWIpcmV0dXJuIGc7YS5zZXRBdHRyaWJ1dGUoYywiIitkKTtyZXR1cm4gZH1pZihoJiYiZ2V0ImluIGgmJmkmJihnPWguZ2V0KGEsYykpIT09bnVsbClyZXR1cm4gZztnPWEuZ2V0QXR0cmlidXRlKGMpO3JldHVybiBnPT09bnVsbD9iOmd9fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGcsaCxpPTA7aWYoYiYmYS5ub2RlVHlwZT09PTEpe2Q9Yi50b0xvd2VyQ2FzZSgpLnNwbGl0KHApLGc9ZC5sZW5ndGg7Zm9yKDtpPGc7aSsrKWU9ZFtpXSxlJiYoYz1mLnByb3BGaXhbZV18fGUsaD11LnRlc3QoZSksaHx8Zi5hdHRyKGEsZSwiIiksYS5yZW1vdmVBdHRyaWJ1dGUodj9lOmMpLGgmJmMgaW4gYSYmKGFbY109ITEpKX19LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoci50ZXN0KGEubm9kZU5hbWUpJiZhLnBhcmVudE5vZGUpZi5lcnJvcigidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIik7ZWxzZSBpZighZi5zdXBwb3J0LnJhZGlvVmFsdWUmJmI9PT0icmFkaW8iJiZmLm5vZGVOYW1lKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7YS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpO3JldHVybiBifX19LHZhbHVlOntnZXQ6ZnVuY3Rpb24oYSxiKXtpZih3JiZmLm5vZGVOYW1lKGEsImJ1dHRvbiIpKXJldHVybiB3LmdldChhLGIpO3JldHVybiBiIGluIGE/YS52YWx1ZTpudWxsfSxzZXQ6ZnVuY3Rpb24oYSxiLGMpe2lmKHcmJmYubm9kZU5hbWUoYSwiYnV0dG9uIikpcmV0dXJuIHcuc2V0KGEsYixjKTthLnZhbHVlPWJ9fX0scHJvcEZpeDp7dGFiaW5kZXg6InRhYkluZGV4IixyZWFkb25seToicmVhZE9ubHkiLCJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUiLG1heGxlbmd0aDoibWF4TGVuZ3RoIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNlbGxwYWRkaW5nOiJjZWxsUGFkZGluZyIscm93c3Bhbjoicm93U3BhbiIsY29sc3BhbjoiY29sU3BhbiIsdXNlbWFwOiJ1c2VNYXAiLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciIsY29udGVudGVkaXRhYmxlOiJjb250ZW50RWRpdGFibGUifSxwcm9wOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZSxnLGgsaT1hLm5vZGVUeXBlO2lmKCEhYSYmaSE9PTMmJmkhPT04JiZpIT09Mil7aD1pIT09MXx8IWYuaXNYTUxEb2MoYSksaCYmKGM9Zi5wcm9wRml4W2NdfHxjLGc9Zi5wcm9wSG9va3NbY10pO3JldHVybiBkIT09Yj9nJiYic2V0ImluIGcmJihlPWcuc2V0KGEsZCxjKSkhPT1iP2U6YVtjXT1kOmcmJiJnZXQiaW4gZyYmKGU9Zy5nZXQoYSxjKSkhPT1udWxsP2U6YVtjXX19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihhKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoInRhYmluZGV4Iik7cmV0dXJuIGMmJmMuc3BlY2lmaWVkP3BhcnNlSW50KGMudmFsdWUsMTApOnMudGVzdChhLm5vZGVOYW1lKXx8dC50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDpifX19fSksZi5hdHRySG9va3MudGFiaW5kZXg9Zi5wcm9wSG9va3MudGFiSW5kZXgseD17Z2V0OmZ1bmN0aW9uKGEsYyl7dmFyIGQsZT1mLnByb3AoYSxjKTtyZXR1cm4gZT09PSEwfHx0eXBlb2YgZSE9ImJvb2xlYW4iJiYoZD1hLmdldEF0dHJpYnV0ZU5vZGUoYykpJiZkLm5vZGVWYWx1ZSE9PSExP2MudG9Mb3dlckNhc2UoKTpifSxzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2I9PT0hMT9mLnJlbW92ZUF0dHIoYSxjKTooZD1mLnByb3BGaXhbY118fGMsZCBpbiBhJiYoYVtkXT0hMCksYS5zZXRBdHRyaWJ1dGUoYyxjLnRvTG93ZXJDYXNlKCkpKTtyZXR1cm4gY319LHZ8fCh5PXtuYW1lOiEwLGlkOiEwLGNvb3JkczohMH0sdz1mLnZhbEhvb2tzLmJ1dHRvbj17Z2V0OmZ1bmN0aW9uKGEsYyl7dmFyIGQ7ZD1hLmdldEF0dHJpYnV0ZU5vZGUoYyk7cmV0dXJuIGQmJih5W2NdP2Qubm9kZVZhbHVlIT09IiI6ZC5zcGVjaWZpZWQpP2Qubm9kZVZhbHVlOmJ9LHNldDpmdW5jdGlvbihhLGIsZCl7dmFyIGU9YS5nZXRBdHRyaWJ1dGVOb2RlKGQpO2V8fChlPWMuY3JlYXRlQXR0cmlidXRlKGQpLGEuc2V0QXR0cmlidXRlTm9kZShlKSk7cmV0dXJuIGUubm9kZVZhbHVlPWIrIiJ9fSxmLmF0dHJIb29rcy50YWJpbmRleC5zZXQ9dy5zZXQsZi5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSxmdW5jdGlvbihhLGIpe2YuYXR0ckhvb2tzW2JdPWYuZXh0ZW5kKGYuYXR0ckhvb2tzW2JdLHtzZXQ6ZnVuY3Rpb24oYSxjKXtpZihjPT09IiIpe2Euc2V0QXR0cmlidXRlKGIsImF1dG8iKTtyZXR1cm4gY319fSl9KSxmLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e2dldDp3LmdldCxzZXQ6ZnVuY3Rpb24oYSxiLGMpe2I9PT0iIiYmKGI9ImZhbHNlIiksdy5zZXQoYSxiLGMpfX0pLGYuc3VwcG9ydC5ocmVmTm9ybWFsaXplZHx8Zi5lYWNoKFsiaHJlZiIsInNyYyIsIndpZHRoIiwiaGVpZ2h0Il0sZnVuY3Rpb24oYSxjKXtmLmF0dHJIb29rc1tjXT1mLmV4dGVuZChmLmF0dHJIb29rc1tjXSx7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBkPWEuZ2V0QXR0cmlidXRlKGMsMik7cmV0dXJuIGQ9PT1udWxsP2I6ZH19KX0pLGYuc3VwcG9ydC5zdHlsZXx8KGYuYXR0ckhvb2tzLnN0eWxlPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dC50b0xvd2VyQ2FzZSgpfHxifSxzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0PSIiK2J9fSksZi5zdXBwb3J0Lm9wdFNlbGVjdGVkfHwoZi5wcm9wSG9va3Muc2VsZWN0ZWQ9Zi5leHRlbmQoZi5wcm9wSG9va3Muc2VsZWN0ZWQse2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7YiYmKGIuc2VsZWN0ZWRJbmRleCxiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KTtyZXR1cm4gbnVsbH19KSksZi5zdXBwb3J0LmVuY3R5cGV8fChmLnByb3BGaXguZW5jdHlwZT0iZW5jb2RpbmciKSxmLnN1cHBvcnQuY2hlY2tPbnx8Zi5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7Zi52YWxIb29rc1t0aGlzXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgidmFsdWUiKT09PW51bGw/Im9uIjphLnZhbHVlfX19KSxmLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtmLnZhbEhvb2tzW3RoaXNdPWYuZXh0ZW5kKGYudmFsSG9va3NbdGhpc10se3NldDpmdW5jdGlvbihhLGIpe2lmKGYuaXNBcnJheShiKSlyZXR1cm4gYS5jaGVja2VkPWYuaW5BcnJheShmKGEpLnZhbCgpLGIpPj0wfX0pfSk7dmFyIHo9L14oPzp0ZXh0YXJlYXxpbnB1dHxzZWxlY3QpJC9pLEE9L14oW15cLl0qKT8oPzpcLiguKykpPyQvLEI9Lyg/Ol58XHMpaG92ZXIoXC5cUyspP1xiLyxDPS9ea2V5LyxEPS9eKD86bW91c2V8Y29udGV4dG1lbnUpfGNsaWNrLyxFPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxGPS9eKFx3KikoPzojKFtcd1wtXSspKT8oPzpcLihbXHdcLV0rKSk/JC8sRz1mdW5jdGlvbigKYSl7dmFyIGI9Ri5leGVjKGEpO2ImJihiWzFdPShiWzFdfHwiIikudG9Mb3dlckNhc2UoKSxiWzNdPWJbM10mJm5ldyBSZWdFeHAoIig/Ol58XFxzKSIrYlszXSsiKD86XFxzfCQpIikpO3JldHVybiBifSxIPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5hdHRyaWJ1dGVzfHx7fTtyZXR1cm4oIWJbMV18fGEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWJbMV0pJiYoIWJbMl18fChjLmlkfHx7fSkudmFsdWU9PT1iWzJdKSYmKCFiWzNdfHxiWzNdLnRlc3QoKGNbImNsYXNzIl18fHt9KS52YWx1ZSkpfSxJPWZ1bmN0aW9uKGEpe3JldHVybiBmLmV2ZW50LnNwZWNpYWwuaG92ZXI/YTphLnJlcGxhY2UoQiwibW91c2VlbnRlciQxIG1vdXNlbGVhdmUkMSIpfTtmLmV2ZW50PXthZGQ6ZnVuY3Rpb24oYSxjLGQsZSxnKXt2YXIgaCxpLGosayxsLG0sbixvLHAscSxyLHM7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTh8fCFjfHwhZHx8IShoPWYuX2RhdGEoYSkpKSl7ZC5oYW5kbGVyJiYocD1kLGQ9cC5oYW5kbGVyLGc9cC5zZWxlY3RvciksZC5ndWlkfHwoZC5ndWlkPWYuZ3VpZCsrKSxqPWguZXZlbnRzLGp8fChoLmV2ZW50cz1qPXt9KSxpPWguaGFuZGxlLGl8fChoLmhhbmRsZT1pPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgZiE9InVuZGVmaW5lZCImJighYXx8Zi5ldmVudC50cmlnZ2VyZWQhPT1hLnR5cGUpP2YuZXZlbnQuZGlzcGF0Y2guYXBwbHkoaS5lbGVtLGFyZ3VtZW50cyk6Yn0saS5lbGVtPWEpLGM9Zi50cmltKEkoYykpLnNwbGl0KCIgIik7Zm9yKGs9MDtrPGMubGVuZ3RoO2srKyl7bD1BLmV4ZWMoY1trXSl8fFtdLG09bFsxXSxuPShsWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCkscz1mLmV2ZW50LnNwZWNpYWxbbV18fHt9LG09KGc/cy5kZWxlZ2F0ZVR5cGU6cy5iaW5kVHlwZSl8fG0scz1mLmV2ZW50LnNwZWNpYWxbbV18fHt9LG89Zi5leHRlbmQoe3R5cGU6bSxvcmlnVHlwZTpsWzFdLGRhdGE6ZSxoYW5kbGVyOmQsZ3VpZDpkLmd1aWQsc2VsZWN0b3I6ZyxxdWljazpnJiZHKGcpLG5hbWVzcGFjZTpuLmpvaW4oIi4iKX0scCkscj1qW21dO2lmKCFyKXtyPWpbbV09W10sci5kZWxlZ2F0ZUNvdW50PTA7aWYoIXMuc2V0dXB8fHMuc2V0dXAuY2FsbChhLGUsbixpKT09PSExKWEuYWRkRXZlbnRMaXN0ZW5lcj9hLmFkZEV2ZW50TGlzdGVuZXIobSxpLCExKTphLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrbSxpKX1zLmFkZCYmKHMuYWRkLmNhbGwoYSxvKSxvLmhhbmRsZXIuZ3VpZHx8KG8uaGFuZGxlci5ndWlkPWQuZ3VpZCkpLGc/ci5zcGxpY2Uoci5kZWxlZ2F0ZUNvdW50KyssMCxvKTpyLnB1c2gobyksZi5ldmVudC5nbG9iYWxbbV09ITB9YT1udWxsfX0sZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBnPWYuaGFzRGF0YShhKSYmZi5fZGF0YShhKSxoLGksaixrLGwsbSxuLG8scCxxLHIscztpZighIWcmJiEhKG89Zy5ldmVudHMpKXtiPWYudHJpbShJKGJ8fCIiKSkuc3BsaXQoIiAiKTtmb3IoaD0wO2g8Yi5sZW5ndGg7aCsrKXtpPUEuZXhlYyhiW2hdKXx8W10saj1rPWlbMV0sbD1pWzJdO2lmKCFqKXtmb3IoaiBpbiBvKWYuZXZlbnQucmVtb3ZlKGEsaitiW2hdLGMsZCwhMCk7Y29udGludWV9cD1mLmV2ZW50LnNwZWNpYWxbal18fHt9LGo9KGQ/cC5kZWxlZ2F0ZVR5cGU6cC5iaW5kVHlwZSl8fGoscj1vW2pdfHxbXSxtPXIubGVuZ3RoLGw9bD9uZXcgUmVnRXhwKCIoXnxcXC4pIitsLnNwbGl0KCIuIikuc29ydCgpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpOm51bGw7Zm9yKG49MDtuPHIubGVuZ3RoO24rKylzPXJbbl0sKGV8fGs9PT1zLm9yaWdUeXBlKSYmKCFjfHxjLmd1aWQ9PT1zLmd1aWQpJiYoIWx8fGwudGVzdChzLm5hbWVzcGFjZSkpJiYoIWR8fGQ9PT1zLnNlbGVjdG9yfHxkPT09IioqIiYmcy5zZWxlY3RvcikmJihyLnNwbGljZShuLS0sMSkscy5zZWxlY3RvciYmci5kZWxlZ2F0ZUNvdW50LS0scC5yZW1vdmUmJnAucmVtb3ZlLmNhbGwoYSxzKSk7ci5sZW5ndGg9PT0wJiZtIT09ci5sZW5ndGgmJigoIXAudGVhcmRvd258fHAudGVhcmRvd24uY2FsbChhLGwpPT09ITEpJiZmLnJlbW92ZUV2ZW50KGEsaixnLmhhbmRsZSksZGVsZXRlIG9bal0pfWYuaXNFbXB0eU9iamVjdChvKSYmKHE9Zy5oYW5kbGUscSYmKHEuZWxlbT1udWxsKSxmLnJlbW92ZURhdGEoYSxbImV2ZW50cyIsImhhbmRsZSJdLCEwKSl9fSxjdXN0b21FdmVudDp7Z2V0RGF0YTohMCxzZXREYXRhOiEwLGNoYW5nZURhdGE6ITB9LHRyaWdnZXI6ZnVuY3Rpb24oYyxkLGUsZyl7aWYoIWV8fGUubm9kZVR5cGUhPT0zJiZlLm5vZGVUeXBlIT09OCl7dmFyIGg9Yy50eXBlfHxjLGk9W10saixrLGwsbSxuLG8scCxxLHIscztpZihFLnRlc3QoaCtmLmV2ZW50LnRyaWdnZXJlZCkpcmV0dXJuO2guaW5kZXhPZigiISIpPj0wJiYoaD1oLnNsaWNlKDAsLTEpLGs9ITApLGguaW5kZXhPZigiLiIpPj0wJiYoaT1oLnNwbGl0KCIuIiksaD1pLnNoaWZ0KCksaS5zb3J0KCkpO2lmKCghZXx8Zi5ldmVudC5jdXN0b21FdmVudFtoXSkmJiFmLmV2ZW50Lmdsb2JhbFtoXSlyZXR1cm47Yz10eXBlb2YgYz09Im9iamVjdCI/Y1tmLmV4cGFuZG9dP2M6bmV3IGYuRXZlbnQoaCxjKTpuZXcgZi5FdmVudChoKSxjLnR5cGU9aCxjLmlzVHJpZ2dlcj0hMCxjLmV4Y2x1c2l2ZT1rLGMubmFtZXNwYWNlPWkuam9pbigiLiIpLGMubmFtZXNwYWNlX3JlPWMubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2kuam9pbigiXFwuKD86LipcXC4pPyIpKyIoXFwufCQpIik6bnVsbCxvPWguaW5kZXhPZigiOiIpPDA/Im9uIitoOiIiO2lmKCFlKXtqPWYuY2FjaGU7Zm9yKGwgaW4gailqW2xdLmV2ZW50cyYmaltsXS5ldmVudHNbaF0mJmYuZXZlbnQudHJpZ2dlcihjLGQsaltsXS5oYW5kbGUuZWxlbSwhMCk7cmV0dXJufWMucmVzdWx0PWIsYy50YXJnZXR8fChjLnRhcmdldD1lKSxkPWQhPW51bGw/Zi5tYWtlQXJyYXkoZCk6W10sZC51bnNoaWZ0KGMpLHA9Zi5ldmVudC5zcGVjaWFsW2hdfHx7fTtpZihwLnRyaWdnZXImJnAudHJpZ2dlci5hcHBseShlLGQpPT09ITEpcmV0dXJuO3I9W1tlLHAuYmluZFR5cGV8fGhdXTtpZighZyYmIXAubm9CdWJibGUmJiFmLmlzV2luZG93KGUpKXtzPXAuZGVsZWdhdGVUeXBlfHxoLG09RS50ZXN0KHMraCk/ZTplLnBhcmVudE5vZGUsbj1udWxsO2Zvcig7bTttPW0ucGFyZW50Tm9kZSlyLnB1c2goW20sc10pLG49bTtuJiZuPT09ZS5vd25lckRvY3VtZW50JiZyLnB1c2goW24uZGVmYXVsdFZpZXd8fG4ucGFyZW50V2luZG93fHxhLHNdKX1mb3IobD0wO2w8ci5sZW5ndGgmJiFjLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7bCsrKW09cltsXVswXSxjLnR5cGU9cltsXVsxXSxxPShmLl9kYXRhKG0sImV2ZW50cyIpfHx7fSlbYy50eXBlXSYmZi5fZGF0YShtLCJoYW5kbGUiKSxxJiZxLmFwcGx5KG0sZCkscT1vJiZtW29dLHEmJmYuYWNjZXB0RGF0YShtKSYmcS5hcHBseShtLGQpPT09ITEmJmMucHJldmVudERlZmF1bHQoKTtjLnR5cGU9aCwhZyYmIWMuaXNEZWZhdWx0UHJldmVudGVkKCkmJighcC5fZGVmYXVsdHx8cC5fZGVmYXVsdC5hcHBseShlLm93bmVyRG9jdW1lbnQsZCk9PT0hMSkmJihoIT09ImNsaWNrInx8IWYubm9kZU5hbWUoZSwiYSIpKSYmZi5hY2NlcHREYXRhKGUpJiZvJiZlW2hdJiYoaCE9PSJmb2N1cyImJmghPT0iYmx1ciJ8fGMudGFyZ2V0Lm9mZnNldFdpZHRoIT09MCkmJiFmLmlzV2luZG93KGUpJiYobj1lW29dLG4mJihlW29dPW51bGwpLGYuZXZlbnQudHJpZ2dlcmVkPWgsZVtoXSgpLGYuZXZlbnQudHJpZ2dlcmVkPWIsbiYmKGVbb109bikpO3JldHVybiBjLnJlc3VsdH19LGRpc3BhdGNoOmZ1bmN0aW9uKGMpe2M9Zi5ldmVudC5maXgoY3x8YS5ldmVudCk7dmFyIGQ9KGYuX2RhdGEodGhpcywiZXZlbnRzIil8fHt9KVtjLnR5cGVdfHxbXSxlPWQuZGVsZWdhdGVDb3VudCxnPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGg9IWMuZXhjbHVzaXZlJiYhYy5uYW1lc3BhY2UsaT1mLmV2ZW50LnNwZWNpYWxbYy50eXBlXXx8e30saj1bXSxrLGwsbSxuLG8scCxxLHIscyx0LHU7Z1swXT1jLGMuZGVsZWdhdGVUYXJnZXQ9dGhpcztpZighaS5wcmVEaXNwYXRjaHx8aS5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYykhPT0hMSl7aWYoZSYmKCFjLmJ1dHRvbnx8Yy50eXBlIT09ImNsaWNrIikpe249Zih0aGlzKSxuLmNvbnRleHQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzO2ZvcihtPWMudGFyZ2V0O20hPXRoaXM7bT1tLnBhcmVudE5vZGV8fHRoaXMpaWYobS5kaXNhYmxlZCE9PSEwKXtwPXt9LHI9W10sblswXT1tO2ZvcihrPTA7azxlO2srKylzPWRba10sdD1zLnNlbGVjdG9yLHBbdF09PT1iJiYocFt0XT1zLnF1aWNrP0gobSxzLnF1aWNrKTpuLmlzKHQpKSxwW3RdJiZyLnB1c2gocyk7ci5sZW5ndGgmJmoucHVzaCh7ZWxlbTptLG1hdGNoZXM6cn0pfX1kLmxlbmd0aD5lJiZqLnB1c2goe2VsZW06dGhpcyxtYXRjaGVzOmQuc2xpY2UoZSl9KTtmb3Ioaz0wO2s8ai5sZW5ndGgmJiFjLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7aysrKXtxPWpba10sYy5jdXJyZW50VGFyZ2V0PXEuZWxlbTtmb3IobD0wO2w8cS5tYXRjaGVzLmxlbmd0aCYmIWMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKTtsKyspe3M9cS5tYXRjaGVzW2xdO2lmKGh8fCFjLm5hbWVzcGFjZSYmIXMubmFtZXNwYWNlfHxjLm5hbWVzcGFjZV9yZSYmYy5uYW1lc3BhY2VfcmUudGVzdChzLm5hbWVzcGFjZSkpYy5kYXRhPXMuZGF0YSxjLmhhbmRsZU9iaj1zLG89KChmLmV2ZW50LnNwZWNpYWxbcy5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fHMuaGFuZGxlcikuYXBwbHkocS5lbGVtLGcpLG8hPT1iJiYoYy5yZXN1bHQ9byxvPT09ITEmJihjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSkpfX1pLnBvc3REaXNwYXRjaCYmaS5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGMpO3JldHVybiBjLnJlc3VsdH19LHByb3BzOiJhdHRyQ2hhbmdlIGF0dHJOYW1lIHJlbGF0ZWROb2RlIHNyY0VsZW1lbnQgYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXthLndoaWNoPT1udWxsJiYoYS53aGljaD1iLmNoYXJDb2RlIT1udWxsP2IuY2hhckNvZGU6Yi5rZXlDb2RlKTtyZXR1cm4gYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsZCl7dmFyIGUsZixnLGg9ZC5idXR0b24saT1kLmZyb21FbGVtZW50O2EucGFnZVg9PW51bGwmJmQuY2xpZW50WCE9bnVsbCYmKGU9YS50YXJnZXQub3duZXJEb2N1bWVudHx8YyxmPWUuZG9jdW1lbnRFbGVtZW50LGc9ZS5ib2R5LGEucGFnZVg9ZC5jbGllbnRYKyhmJiZmLnNjcm9sbExlZnR8fGcmJmcuc2Nyb2xsTGVmdHx8MCktKGYmJmYuY2xpZW50TGVmdHx8ZyYmZy5jbGllbnRMZWZ0fHwwKSxhLnBhZ2VZPWQuY2xpZW50WSsoZiYmZi5zY3JvbGxUb3B8fGcmJmcuc2Nyb2xsVG9wfHwwKS0oZiYmZi5jbGllbnRUb3B8fGcmJmcuY2xpZW50VG9wfHwwKSksIWEucmVsYXRlZFRhcmdldCYmaSYmKGEucmVsYXRlZFRhcmdldD1pPT09YS50YXJnZXQ/ZC50b0VsZW1lbnQ6aSksIWEud2hpY2gmJmghPT1iJiYoYS53aGljaD1oJjE/MTpoJjI/MzpoJjQ/MjowKTtyZXR1cm4gYX19LGZpeDpmdW5jdGlvbihhKXtpZihhW2YuZXhwYW5kb10pcmV0dXJuIGE7dmFyIGQsZSxnPWEsaD1mLmV2ZW50LmZpeEhvb2tzW2EudHlwZV18fHt9LGk9aC5wcm9wcz90aGlzLnByb3BzLmNvbmNhdChoLnByb3BzKTp0aGlzLnByb3BzO2E9Zi5FdmVudChnKTtmb3IoZD1pLmxlbmd0aDtkOyllPWlbLS1kXSxhW2VdPWdbZV07YS50YXJnZXR8fChhLnRhcmdldD1nLnNyY0VsZW1lbnR8fGMpLGEudGFyZ2V0Lm5vZGVUeXBlPT09MyYmKGEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGUpLGEubWV0YUtleT09PWImJihhLm1ldGFLZXk9YS5jdHJsS2V5KTtyZXR1cm4gaC5maWx0ZXI/aC5maWx0ZXIoYSxnKTphfSxzcGVjaWFsOntyZWFkeTp7c2V0dXA6Zi5iaW5kUmVhZHl9LGxvYWQ6e25vQnViYmxlOiEwfSxmb2N1czp7ZGVsZWdhdGVUeXBlOiJmb2N1c2luIn0sYmx1cjp7ZGVsZWdhdGVUeXBlOiJmb2N1c291dCJ9LGJlZm9yZXVubG9hZDp7c2V0dXA6ZnVuY3Rpb24oYSxiLGMpe2YuaXNXaW5kb3codGhpcykmJih0aGlzLm9uYmVmb3JldW5sb2FkPWMpfSx0ZWFyZG93bjpmdW5jdGlvbihhLGIpe3RoaXMub25iZWZvcmV1bmxvYWQ9PT1iJiYodGhpcy5vbmJlZm9yZXVubG9hZD1udWxsKX19fSxzaW11bGF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1mLmV4dGVuZChuZXcgZi5FdmVudCxjLHt0eXBlOmEsaXNTaW11bGF0ZWQ6ITAsb3JpZ2luYWxFdmVudDp7fX0pO2Q/Zi5ldmVudC50cmlnZ2VyKGUsbnVsbCxiKTpmLmV2ZW50LmRpc3BhdGNoLmNhbGwoYixlKSxlLmlzRGVmYXVsdFByZXZlbnRlZCgpJiZjLnByZXZlbnREZWZhdWx0KCl9fSxmLmV2ZW50LmhhbmRsZT1mLmV2ZW50LmRpc3BhdGNoLGYucmVtb3ZlRXZlbnQ9Yy5yZW1vdmVFdmVudExpc3RlbmVyP2Z1bmN0aW9uKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfTpmdW5jdGlvbihhLGIsYyl7YS5kZXRhY2hFdmVudCYmYS5kZXRhY2hFdmVudCgib24iK2IsYyl9LGYuRXZlbnQ9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBmLkV2ZW50KSlyZXR1cm4gbmV3IGYuRXZlbnQoYSxiKTthJiZhLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHxhLnJldHVyblZhbHVlPT09ITF8fGEuZ2V0UHJldmVudERlZmF1bHQmJmEuZ2V0UHJldmVudERlZmF1bHQoKT9LOkopOnRoaXMudHlwZT1hLGImJmYuZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fGYubm93KCksdGhpc1tmLmV4cGFuZG9dPSEwfSxmLkV2ZW50LnByb3RvdHlwZT17cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1LO3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDshYXx8KGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPUs7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50OyFhfHwoYS5zdG9wUHJvcGFnYXRpb24mJmEuc3RvcFByb3BhZ2F0aW9uKCksYS5jYW5jZWxCdWJibGU9ITApfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPUssdGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOkosaXNQcm9wYWdhdGlvblN0b3BwZWQ6Sixpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpKfSxmLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSxmdW5jdGlvbihhLGIpe2YuZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVUeXBlOmIsYmluZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGM9dGhpcyxkPWEucmVsYXRlZFRhcmdldCxlPWEuaGFuZGxlT2JqLGc9ZS5zZWxlY3RvcixoO2lmKCFkfHxkIT09YyYmIWYuY29udGFpbnMoYyxkKSlhLnR5cGU9ZS5vcmlnVHlwZSxoPWUuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWI7cmV0dXJuIGh9fX0pLGYuc3VwcG9ydC5zdWJtaXRCdWJibGVzfHwoZi5ldmVudC5zcGVjaWFsLnN1Ym1pdD17c2V0dXA6ZnVuY3Rpb24oKXtpZihmLm5vZGVOYW1lKHRoaXMsImZvcm0iKSlyZXR1cm4hMTtmLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fc3VibWl0IGtleXByZXNzLl9zdWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBjPWEudGFyZ2V0LGQ9Zi5ub2RlTmFtZShjLCJpbnB1dCIpfHxmLm5vZGVOYW1lKGMsImJ1dHRvbiIpP2MuZm9ybTpiO2QmJiFkLl9zdWJtaXRfYXR0YWNoZWQmJihmLmV2ZW50LmFkZChkLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZT0hMH0pLGQuX3N1Ym1pdF9hdHRhY2hlZD0hMCl9KX0scG9zdERpc3BhdGNoOmZ1bmN0aW9uKGEpe2EuX3N1Ym1pdF9idWJibGUmJihkZWxldGUgYS5fc3VibWl0X2J1YmJsZSx0aGlzLnBhcmVudE5vZGUmJiFhLmlzVHJpZ2dlciYmZi5ldmVudC5zaW11bGF0ZSgic3VibWl0Iix0aGlzLnBhcmVudE5vZGUsYSwhMCkpfSx0ZWFyZG93bjpmdW5jdGlvbigpe2lmKGYubm9kZU5hbWUodGhpcywiZm9ybSIpKXJldHVybiExO2YuZXZlbnQucmVtb3ZlKHRoaXMsIi5fc3VibWl0Iil9fSksZi5zdXBwb3J0LmNoYW5nZUJ1YmJsZXN8fChmLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe2lmKHoudGVzdCh0aGlzLm5vZGVOYW1lKSl7aWYodGhpcy50eXBlPT09ImNoZWNrYm94Inx8dGhpcy50eXBlPT09InJhZGlvIilmLmV2ZW50LmFkZCh0aGlzLCJwcm9wZXJ0eWNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXthLm9yaWdpbmFsRXZlbnQucHJvcGVydHlOYW1lPT09ImNoZWNrZWQiJiYodGhpcy5fanVzdF9jaGFuZ2VkPSEwKX0pLGYuZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpe3RoaXMuX2p1c3RfY2hhbmdlZCYmIWEuaXNUcmlnZ2VyJiYodGhpcy5fanVzdF9jaGFuZ2VkPSExLGYuZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKSl9KTtyZXR1cm4hMX1mLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDt6LnRlc3QoYi5ub2RlTmFtZSkmJiFiLl9jaGFuZ2VfYXR0YWNoZWQmJihmLmV2ZW50LmFkZChiLCJjaGFuZ2UuX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiYhYS5pc1NpbXVsYXRlZCYmIWEuaXNUcmlnZ2VyJiZmLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMucGFyZW50Tm9kZSxhLCEwKX0pLGIuX2NoYW5nZV9hdHRhY2hlZD0hMCl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O2lmKHRoaXMhPT1ifHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8Yi50eXBlIT09InJhZGlvIiYmYi50eXBlIT09ImNoZWNrYm94IilyZXR1cm4gYS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7Zi5ldmVudC5yZW1vdmUodGhpcywiLl9jaGFuZ2UiKTtyZXR1cm4gei50ZXN0KHRoaXMubm9kZU5hbWUpfX0pLGYuc3VwcG9ydC5mb2N1c2luQnViYmxlc3x8Zi5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBkPTAsZT1mdW5jdGlvbihhKXtmLmV2ZW50LnNpbXVsYXRlKGIsYS50YXJnZXQsZi5ldmVudC5maXgoYSksITApfTtmLmV2ZW50LnNwZWNpYWxbYl09e3NldHVwOmZ1bmN0aW9uKCl7ZCsrPT09MCYmYy5hZGRFdmVudExpc3RlbmVyKGEsZSwhMCl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7LS1kPT09MCYmYy5yZW1vdmVFdmVudExpc3RlbmVyKGEsZSwhMCl9fX0pLGYuZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGMsZCxlLGcpe3ZhciBoLGk7aWYodHlwZW9mIGE9PSJvYmplY3QiKXt0eXBlb2YgYyE9InN0cmluZyImJihkPWR8fGMsYz1iKTtmb3IoaSBpbiBhKXRoaXMub24oaSxjLGQsYVtpXSxnKTtyZXR1cm4gdGhpc31kPT1udWxsJiZlPT1udWxsPyhlPWMsZD1jPWIpOmU9PW51bGwmJih0eXBlb2YgYz09InN0cmluZyI/KGU9ZCxkPWIpOihlPWQsZD1jLGM9YikpO2lmKGU9PT0hMSllPUo7ZWxzZSBpZighZSlyZXR1cm4gdGhpcztnPT09MSYmKGg9ZSxlPWZ1bmN0aW9uKGEpe2YoKS5vZmYoYSk7cmV0dXJuIGguYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlLmd1aWQ9aC5ndWlkfHwoaC5ndWlkPWYuZ3VpZCsrKSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YuZXZlbnQuYWRkKHRoaXMsYSxlLGQsYyl9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGMsZCl7aWYoYSYmYS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmope3ZhciBlPWEuaGFuZGxlT2JqO2YoYS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGUubmFtZXNwYWNlP2Uub3JpZ1R5cGUrIi4iK2UubmFtZXNwYWNlOmUub3JpZ1R5cGUsZS5zZWxlY3RvcixlLmhhbmRsZXIpO3JldHVybiB0aGlzfWlmKHR5cGVvZiBhPT0ib2JqZWN0Iil7Zm9yKHZhciBnIGluIGEpdGhpcy5vZmYoZyxjLGFbZ10pO3JldHVybiB0aGlzfWlmKGM9PT0hMXx8dHlwZW9mIGM9PSJmdW5jdGlvbiIpZD1jLGM9YjtkPT09ITEmJihkPUopO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmLmV2ZW50LnJlbW92ZSh0aGlzLGEsZCxjKX0pfSxiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5vbihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub2ZmKGEsbnVsbCxiKX0sbGl2ZTpmdW5jdGlvbihhLGIsYyl7Zih0aGlzLmNvbnRleHQpLm9uKGEsdGhpcy5zZWxlY3RvcixiLGMpO3JldHVybiB0aGlzfSxkaWU6ZnVuY3Rpb24oYSxiKXtmKHRoaXMuY29udGV4dCkub2ZmKGEsdGhpcy5zZWxlY3Rvcnx8IioqIixiKTtyZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMub24oYixhLGMsZCl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT0xP3RoaXMub2ZmKGEsIioqIik6dGhpcy5vZmYoYixhLGMpfSx0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YuZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXtpZih0aGlzWzBdKXJldHVybiBmLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXNbMF0sITApfSx0b2dnbGU6ZnVuY3Rpb24oYSl7dmFyIGI9YXJndW1lbnRzLGM9YS5ndWlkfHxmLmd1aWQrKyxkPTAsZT1mdW5jdGlvbihjKXt2YXIgZT0oZi5fZGF0YSh0aGlzLCJsYXN0VG9nZ2xlIithLmd1aWQpfHwwKSVkO2YuX2RhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkLGUrMSksYy5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBiW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8ITF9O2UuZ3VpZD1jO3doaWxlKGQ8Yi5sZW5ndGgpYltkKytdLmd1aWQ9YztyZXR1cm4gdGhpcy5jbGljayhlKX0saG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSksZi5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgbG9hZCByZXNpemUgc2Nyb2xsIHVubG9hZCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGVycm9yIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7Zi5mbltiXT1mdW5jdGlvbihhLGMpe2M9PW51bGwmJihjPWEsYT1udWxsKTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfSxmLmF0dHJGbiYmKGYuYXR0ckZuW2JdPSEwKSxDLnRlc3QoYikmJihmLmV2ZW50LmZpeEhvb2tzW2JdPWYuZXZlbnQua2V5SG9va3MpLEQudGVzdChiKSYmKGYuZXZlbnQuZml4SG9va3NbYl09Zi5ldmVudC5tb3VzZUhvb2tzKX0pLGZ1bmN0aW9uKCl7ZnVuY3Rpb24geChhLGIsYyxlLGYsZyl7Zm9yKHZhciBoPTAsaT1lLmxlbmd0aDtoPGk7aCsrKXt2YXIgaj1lW2hdO2lmKGope3ZhciBrPSExO2o9althXTt3aGlsZShqKXtpZihqW2RdPT09Yyl7az1lW2ouc2l6c2V0XTticmVha31pZihqLm5vZGVUeXBlPT09MSl7Z3x8KGpbZF09YyxqLnNpenNldD1oKTtpZih0eXBlb2YgYiE9InN0cmluZyIpe2lmKGo9PT1iKXtrPSEwO2JyZWFrfX1lbHNlIGlmKG0uZmlsdGVyKGIsW2pdKS5sZW5ndGg+MCl7az1qO2JyZWFrfX1qPWpbYV19ZVtoXT1rfX19ZnVuY3Rpb24gdyhhLGIsYyxlLGYsZyl7Zm9yKHZhciBoPTAsaT1lLmxlbmd0aDtoPGk7aCsrKXt2YXIgaj1lW2hdO2lmKGope3ZhciBrPSExO2o9althXTt3aGlsZShqKXtpZihqW2RdPT09Yyl7az1lW2ouc2l6c2V0XTticmVha31qLm5vZGVUeXBlPT09MSYmIWcmJihqW2RdPWMsai5zaXpzZXQ9aCk7aWYoai5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yil7az1qO2JyZWFrfWo9althXX1lW2hdPWt9fX12YXIgYT0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXlxbXF1dKlxdfFsnIl1bXiciXSpbJyJdfFteXFtcXSciXSspK1xdfFxcLnxbXiA+K34sKFxbXFxdKykrfFs+K35dKShccyosXHMqKT8oKD86LnxccnxcbikqKS9nLGQ9InNpemNhY2hlIisoTWF0aC5yYW5kb20oKSsiIikucmVwbGFjZSgiLiIsIiIpLGU9MCxnPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaD0hMSxpPSEwLGo9L1xcL2csaz0vXHJcbi9nLGw9L1xXLztbMCwwXS5zb3J0KGZ1bmN0aW9uKCl7aT0hMTtyZXR1cm4gMH0pO3ZhciBtPWZ1bmN0aW9uKGIsZCxlLGYpe2U9ZXx8W10sZD1kfHxjO3ZhciBoPWQ7aWYoZC5ub2RlVHlwZSE9PTEmJmQubm9kZVR5cGUhPT05KXJldHVybltdO2lmKCFifHx0eXBlb2YgYiE9InN0cmluZyIpcmV0dXJuIGU7dmFyIGksaixrLGwsbixxLHIsdCx1PSEwLHY9bS5pc1hNTChkKSx3PVtdLHg9Yjtkb3thLmV4ZWMoIiIpLGk9YS5leGVjKHgpO2lmKGkpe3g9aVszXSx3LnB1c2goaVsxXSk7aWYoaVsyXSl7bD1pWzNdO2JyZWFrfX19d2hpbGUoaSk7aWYody5sZW5ndGg+MSYmcC5leGVjKGIpKWlmKHcubGVuZ3RoPT09MiYmby5yZWxhdGl2ZVt3WzBdXSlqPXkod1swXSt3WzFdLGQsZik7ZWxzZXtqPW8ucmVsYXRpdmVbd1swXV0/W2RdOm0ody5zaGlmdCgpLGQpO3doaWxlKHcubGVuZ3RoKWI9dy5zaGlmdCgpLG8ucmVsYXRpdmVbYl0mJihiKz13LnNoaWZ0KCkpLGo9eShiLGosZil9ZWxzZXshZiYmdy5sZW5ndGg+MSYmZC5ub2RlVHlwZT09PTkmJiF2JiZvLm1hdGNoLklELnRlc3Qod1swXSkmJiFvLm1hdGNoLklELnRlc3Qod1t3Lmxlbmd0aC0xXSkmJihuPW0uZmluZCh3LnNoaWZ0KCksZCx2KSxkPW4uZXhwcj9tLmZpbHRlcihuLmV4cHIsbi5zZXQpWzBdOm4uc2V0WzBdKTtpZihkKXtuPWY/e2V4cHI6dy5wb3AoKSxzZXQ6cyhmKX06bS5maW5kKHcucG9wKCksdy5sZW5ndGg9PT0xJiYod1swXT09PSJ+Inx8d1swXT09PSIrIikmJmQucGFyZW50Tm9kZT9kLnBhcmVudE5vZGU6ZCx2KSxqPW4uZXhwcj9tLmZpbHRlcihuLmV4cHIsbi5zZXQpOm4uc2V0LHcubGVuZ3RoPjA/az1zKGopOnU9ITE7d2hpbGUody5sZW5ndGgpcT13LnBvcCgpLHI9cSxvLnJlbGF0aXZlW3FdP3I9dy5wb3AoKTpxPSIiLHI9PW51bGwmJihyPWQpLG8ucmVsYXRpdmVbcV0oayxyLHYpfWVsc2Ugaz13PVtdfWt8fChrPWopLGt8fG0uZXJyb3IocXx8Yik7aWYoZy5jYWxsKGspPT09IltvYmplY3QgQXJyYXldIilpZighdSllLnB1c2guYXBwbHkoZSxrKTtlbHNlIGlmKGQmJmQubm9kZVR5cGU9PT0xKWZvcih0PTA7a1t0XSE9bnVsbDt0Kyspa1t0XSYmKGtbdF09PT0hMHx8a1t0XS5ub2RlVHlwZT09PTEmJm0uY29udGFpbnMoZCxrW3RdKSkmJmUucHVzaChqW3RdKTtlbHNlIGZvcih0PTA7a1t0XSE9bnVsbDt0Kyspa1t0XSYma1t0XS5ub2RlVHlwZT09PTEmJmUucHVzaChqW3RdKTtlbHNlIHMoayxlKTtsJiYobShsLGgsZSxmKSxtLnVuaXF1ZVNvcnQoZSkpO3JldHVybiBlfTttLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7aWYodSl7aD1pLGEuc29ydCh1KTtpZihoKWZvcih2YXIgYj0xO2I8YS5sZW5ndGg7YisrKWFbYl09PT1hW2ItMV0mJmEuc3BsaWNlKGItLSwxKX1yZXR1cm4gYX0sbS5tYXRjaGVzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG0oYSxudWxsLG51bGwsYil9LG0ubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG0oYixudWxsLG51bGwsW2FdKS5sZW5ndGg+MH0sbS5maW5kPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aWYoIWEpcmV0dXJuW107Zm9yKGU9MCxmPW8ub3JkZXIubGVuZ3RoO2U8ZjtlKyspe2g9by5vcmRlcltlXTtpZihnPW8ubGVmdE1hdGNoW2hdLmV4ZWMoYSkpe2k9Z1sxXSxnLnNwbGljZSgxLDEpO2lmKGkuc3Vic3RyKGkubGVuZ3RoLTEpIT09IlxcIil7Z1sxXT0oZ1sxXXx8IiIpLnJlcGxhY2UoaiwiIiksZD1vLmZpbmRbaF0oZyxiLGMpO2lmKGQhPW51bGwpe2E9YS5yZXBsYWNlKG8ubWF0Y2hbaF0sIiIpO2JyZWFrfX19fWR8fChkPXR5cGVvZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lIT0idW5kZWZpbmVkIj9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIik6W10pO3JldHVybntzZXQ6ZCxleHByOmF9fSxtLmZpbHRlcj1mdW5jdGlvbihhLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLHAscT1hLHI9W10scz1jLHQ9YyYmY1swXSYmbS5pc1hNTChjWzBdKTt3aGlsZShhJiZjLmxlbmd0aCl7Zm9yKGggaW4gby5maWx0ZXIpaWYoKGY9by5sZWZ0TWF0Y2hbaF0uZXhlYyhhKSkhPW51bGwmJmZbMl0pe2s9by5maWx0ZXJbaF0sbD1mWzFdLGc9ITEsZi5zcGxpY2UoMSwxKTtpZihsLnN1YnN0cihsLmxlbmd0aC0xKT09PSJcXCIpY29udGludWU7cz09PXImJihyPVtdKTtpZihvLnByZUZpbHRlcltoXSl7Zj1vLnByZUZpbHRlcltoXShmLHMsZCxyLGUsdCk7aWYoIWYpZz1pPSEwO2Vsc2UgaWYoZj09PSEwKWNvbnRpbnVlfWlmKGYpZm9yKG49MDsoaj1zW25dKSE9bnVsbDtuKyspaiYmKGk9ayhqLGYsbixzKSxwPWVeaSxkJiZpIT1udWxsP3A/Zz0hMDpzW25dPSExOnAmJihyLnB1c2goaiksZz0hMCkpO2lmKGkhPT1iKXtkfHwocz1yKSxhPWEucmVwbGFjZShvLm1hdGNoW2hdLCIiKTtpZighZylyZXR1cm5bXTticmVha319aWYoYT09PXEpaWYoZz09bnVsbCltLmVycm9yKGEpO2Vsc2UgYnJlYWs7cT1hfXJldHVybiBzfSxtLmVycm9yPWZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIithKX07dmFyIG49bS5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGMsZD1hLm5vZGVUeXBlLGU9IiI7aWYoZCl7aWYoZD09PTF8fGQ9PT05fHxkPT09MTEpe2lmKHR5cGVvZiBhLnRleHRDb250ZW50PT0ic3RyaW5nIilyZXR1cm4gYS50ZXh0Q29udGVudDtpZih0eXBlb2YgYS5pbm5lclRleHQ9PSJzdHJpbmciKXJldHVybiBhLmlubmVyVGV4dC5yZXBsYWNlKGssIiIpO2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyllKz1uKGEpfWVsc2UgaWYoZD09PTN8fGQ9PT00KXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIGZvcihiPTA7Yz1hW2JdO2IrKyljLm5vZGVUeXBlIT09OCYmKGUrPW4oYykpO3JldHVybiBlfSxvPW0uc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKVxzKig/OihcUz89KVxzKig/OihbJyJdKSguKj8pXDN8KCM/KD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKil8KXwpXHMqXF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpcLV18XFwuKSspLyxDSElMRDovOihvbmx5fG50aHxsYXN0fGZpcnN0KS1jaGlsZCg/OlwoXHMqKGV2ZW58b2RkfCg/OlsrXC1dP1xkK3woPzpbK1wtXT9cZCopP25ccyooPzpbK1wtXVxzKlxkKyk/KSlccypcKSk/LyxQT1M6LzoobnRofGVxfGd0fGx0fGZpcnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8oPz1bXlwtXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15cKV0rXCl8W15cKFwpXSopKylcMlwpKT8vfSxsZWZ0TWF0Y2g6e30sYXR0ck1hcDp7ImNsYXNzIjoiY2xhc3NOYW1lIiwiZm9yIjoiaHRtbEZvciJ9LGF0dHJIYW5kbGU6e2hyZWY6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJocmVmIil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJ0eXBlIil9fSxyZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGEsYil7dmFyIGM9dHlwZW9mIGI9PSJzdHJpbmciLGQ9YyYmIWwudGVzdChiKSxlPWMmJiFkO2QmJihiPWIudG9Mb3dlckNhc2UoKSk7Zm9yKHZhciBmPTAsZz1hLmxlbmd0aCxoO2Y8ZztmKyspaWYoaD1hW2ZdKXt3aGlsZSgoaD1oLnByZXZpb3VzU2libGluZykmJmgubm9kZVR5cGUhPT0xKTthW2ZdPWV8fGgmJmgubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWI/aHx8ITE6aD09PWJ9ZSYmbS5maWx0ZXIoYixhLCEwKX0sIj4iOmZ1bmN0aW9uKGEsYil7dmFyIGMsZD10eXBlb2YgYj09InN0cmluZyIsZT0wLGY9YS5sZW5ndGg7aWYoZCYmIWwudGVzdChiKSl7Yj1iLnRvTG93ZXJDYXNlKCk7Zm9yKDtlPGY7ZSsrKXtjPWFbZV07aWYoYyl7dmFyIGc9Yy5wYXJlbnROb2RlO2FbZV09Zy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yj9nOiExfX19ZWxzZXtmb3IoO2U8ZjtlKyspYz1hW2VdLGMmJihhW2VdPWQ/Yy5wYXJlbnROb2RlOmMucGFyZW50Tm9kZT09PWIpO2QmJm0uZmlsdGVyKGIsYSwhMCl9fSwiIjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj1lKyssZz14O3R5cGVvZiBiPT0ic3RyaW5nIiYmIWwudGVzdChiKSYmKGI9Yi50b0xvd2VyQ2FzZSgpLGQ9YixnPXcpLGcoInBhcmVudE5vZGUiLGIsZixhLGQsYyl9LCJ+IjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj1lKyssZz14O3R5cGVvZiBiPT0ic3RyaW5nIiYmIWwudGVzdChiKSYmKGI9Yi50b0xvd2VyQ2FzZSgpLGQ9YixnPXcpLGcoInByZXZpb3VzU2libGluZyIsYixmLGEsZCxjKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGEsYixjKXtpZih0eXBlb2YgYi5nZXRFbGVtZW50QnlJZCE9InVuZGVmaW5lZCImJiFjKXt2YXIgZD1iLmdldEVsZW1lbnRCeUlkKGFbMV0pO3JldHVybiBkJiZkLnBhcmVudE5vZGU/W2RdOltdfX0sTkFNRTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRzQnlOYW1lIT0idW5kZWZpbmVkIil7dmFyIGM9W10sZD1iLmdldEVsZW1lbnRzQnlOYW1lKGFbMV0pO2Zvcih2YXIgZT0wLGY9ZC5sZW5ndGg7ZTxmO2UrKylkW2VdLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09YVsxXSYmYy5wdXNoKGRbZV0pO3JldHVybiBjLmxlbmd0aD09PTA/bnVsbDpjfX0sVEFHOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPSJ1bmRlZmluZWQiKXJldHVybiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lKGFbMV0pfX0scHJlRmlsdGVyOntDTEFTUzpmdW5jdGlvbihhLGIsYyxkLGUsZil7YT0iICIrYVsxXS5yZXBsYWNlKGosIiIpKyIgIjtpZihmKXJldHVybiBhO2Zvcih2YXIgZz0wLGg7KGg9YltnXSkhPW51bGw7ZysrKWgmJihlXihoLmNsYXNzTmFtZSYmKCIgIitoLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoL1tcdFxuXHJdL2csIiAiKS5pbmRleE9mKGEpPj0wKT9jfHxkLnB1c2goaCk6YyYmKGJbZ109ITEpKTtyZXR1cm4hMX0sSUQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV0ucmVwbGFjZShqLCIiKX0sVEFHOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbMV0ucmVwbGFjZShqLCIiKS50b0xvd2VyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihhKXtpZihhWzFdPT09Im50aCIpe2FbMl18fG0uZXJyb3IoYVswXSksYVsyXT1hWzJdLnJlcGxhY2UoL15cK3xccyovZywiIik7dmFyIGI9LygtPykoXGQqKSg/Om4oWytcLV0/XGQqKSk/Ly5leGVjKGFbMl09PT0iZXZlbiImJiIybiJ8fGFbMl09PT0ib2RkIiYmIjJuKzEifHwhL1xELy50ZXN0KGFbMl0pJiYiMG4rIithWzJdfHxhWzJdKTthWzJdPWJbMV0rKGJbMl18fDEpLTAsYVszXT1iWzNdLTB9ZWxzZSBhWzJdJiZtLmVycm9yKGFbMF0pO2FbMF09ZSsrO3JldHVybiBhfSxBVFRSOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1hWzFdPWFbMV0ucmVwbGFjZShqLCIiKTshZiYmby5hdHRyTWFwW2ddJiYoYVsxXT1vLmF0dHJNYXBbZ10pLGFbNF09KGFbNF18fGFbNV18fCIiKS5yZXBsYWNlKGosIiIpLGFbMl09PT0ifj0iJiYoYVs0XT0iICIrYVs0XSsiICIpO3JldHVybiBhfSxQU0VVRE86ZnVuY3Rpb24oYixjLGQsZSxmKXtpZihiWzFdPT09Im5vdCIpaWYoKGEuZXhlYyhiWzNdKXx8IiIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KGJbM10pKWJbM109bShiWzNdLG51bGwsbnVsbCxjKTtlbHNle3ZhciBnPW0uZmlsdGVyKGJbM10sYyxkLCEwXmYpO2R8fGUucHVzaC5hcHBseShlLGcpO3JldHVybiExfWVsc2UgaWYoby5tYXRjaC5QT1MudGVzdChiWzBdKXx8by5tYXRjaC5DSElMRC50ZXN0KGJbMF0pKXJldHVybiEwO3JldHVybiBifSxQT1M6ZnVuY3Rpb24oYSl7YS51bnNoaWZ0KCEwKTtyZXR1cm4gYX19LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMSYmYS50eXBlIT09ImhpZGRlbiJ9LGRpc2FibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITB9LGNoZWNrZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2hlY2tlZD09PSEwfSxzZWxlY3RlZDpmdW5jdGlvbihhKXthLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBhLnNlbGVjdGVkPT09ITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hIWEuZmlyc3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oYSl7cmV0dXJuIWEuZmlyc3RDaGlsZH0saGFzOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4hIW0oY1szXSxhKS5sZW5ndGh9LGhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4vaFxkL2kudGVzdChhLm5vZGVOYW1lKX0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpLGM9YS50eXBlO3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYidGV4dCI9PT1jJiYoYj09PWN8fGI9PT1udWxsKX0scmFkaW86ZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJiJyYWRpbyI9PT1hLnR5cGV9LGNoZWNrYm94OmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYiY2hlY2tib3giPT09YS50eXBlfSxmaWxlOmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYiZmlsZSI9PT1hLnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYicGFzc3dvcmQiPT09YS50eXBlfSxzdWJtaXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybihiPT09ImlucHV0Inx8Yj09PSJidXR0b24iKSYmInN1Ym1pdCI9PT1hLnR5cGV9LGltYWdlOmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYiaW1hZ2UiPT09YS50eXBlfSxyZXNldDpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKGI9PT0iaW5wdXQifHxiPT09ImJ1dHRvbiIpJiYicmVzZXQiPT09YS50eXBlfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiPT09ImlucHV0IiYmImJ1dHRvbiI9PT1hLnR5cGV8fGI9PT0iYnV0dG9uIn0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGEubm9kZU5hbWUpfSxmb2N1czpmdW5jdGlvbihhKXtyZXR1cm4gYT09PWEub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50fX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PTB9LGxhc3Q6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIGI9PT1kLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGIlMj09PTB9LG9kZDpmdW5jdGlvbihhLGIpe3JldHVybiBiJTI9PT0xfSxsdDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI8Y1szXS0wfSxndDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI+Y1szXS0wfSxudGg6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjWzNdLTA9PT1ifSxlcTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGNbM10tMD09PWJ9fSxmaWx0ZXI6e1BTRVVETzpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iWzFdLGY9by5maWx0ZXJzW2VdO2lmKGYpcmV0dXJuIGYoYSxjLGIsZCk7aWYoZT09PSJjb250YWlucyIpcmV0dXJuKGEudGV4dENvbnRlbnR8fGEuaW5uZXJUZXh0fHxuKFthXSl8fCIiKS5pbmRleE9mKGJbM10pPj0wO2lmKGU9PT0ibm90Iil7dmFyIGc9YlszXTtmb3IodmFyIGg9MCxpPWcubGVuZ3RoO2g8aTtoKyspaWYoZ1toXT09PWEpcmV0dXJuITE7cmV0dXJuITB9bS5lcnJvcihlKX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxoLGksaixrPWJbMV0sbD1hO3N3aXRjaChrKXtjYXNlIm9ubHkiOmNhc2UiZmlyc3QiOndoaWxlKGw9bC5wcmV2aW91c1NpYmxpbmcpaWYobC5ub2RlVHlwZT09PTEpcmV0dXJuITE7aWYoaz09PSJmaXJzdCIpcmV0dXJuITA7bD1hO2Nhc2UibGFzdCI6d2hpbGUobD1sLm5leHRTaWJsaW5nKWlmKGwubm9kZVR5cGU9PT0xKXJldHVybiExO3JldHVybiEwO2Nhc2UibnRoIjpjPWJbMl0sZT1iWzNdO2lmKGM9PT0xJiZlPT09MClyZXR1cm4hMDtmPWJbMF0sZz1hLnBhcmVudE5vZGU7aWYoZyYmKGdbZF0hPT1mfHwhYS5ub2RlSW5kZXgpKXtpPTA7Zm9yKGw9Zy5maXJzdENoaWxkO2w7bD1sLm5leHRTaWJsaW5nKWwubm9kZVR5cGU9PT0xJiYobC5ub2RlSW5kZXg9KytpKTtnW2RdPWZ9aj1hLm5vZGVJbmRleC1lO3JldHVybiBjPT09MD9qPT09MDpqJWM9PT0wJiZqL2M+PTB9fSxJRDpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVUeXBlPT09MSYmYS5nZXRBdHRyaWJ1dGUoImlkIik9PT1ifSxUQUc6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PSIqIiYmYS5ub2RlVHlwZT09PTF8fCEhYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn0sQ0xBU1M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4oIiAiKyhhLmNsYXNzTmFtZXx8YS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihiKT4tMX0sQVRUUjpmdW5jdGlvbihhLGIpe3ZhciBjPWJbMV0sZD1tLmF0dHI/bS5hdHRyKGEsYyk6by5hdHRySGFuZGxlW2NdP28uYXR0ckhhbmRsZVtjXShhKTphW2NdIT1udWxsP2FbY106YS5nZXRBdHRyaWJ1dGUoYyksZT1kKyIiLGY9YlsyXSxnPWJbNF07cmV0dXJuIGQ9PW51bGw/Zj09PSIhPSI6IWYmJm0uYXR0cj9kIT1udWxsOmY9PT0iPSI/ZT09PWc6Zj09PSIqPSI/ZS5pbmRleE9mKGcpPj0wOmY9PT0ifj0iPygiICIrZSsiICIpLmluZGV4T2YoZyk+PTA6Zz9mPT09IiE9Ij9lIT09ZzpmPT09Il49Ij9lLmluZGV4T2YoZyk9PT0wOmY9PT0iJD0iP2Uuc3Vic3RyKGUubGVuZ3RoLWcubGVuZ3RoKT09PWc6Zj09PSJ8PSI/ZT09PWd8fGUuc3Vic3RyKDAsZy5sZW5ndGgrMSk9PT1nKyItIjohMTplJiZkIT09ITF9LFBPUzpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iWzJdLGY9by5zZXRGaWx0ZXJzW2VdO2lmKGYpcmV0dXJuIGYoYSxjLGIsZCl9fX0scD1vLm1hdGNoLlBPUyxxPWZ1bmN0aW9uKGEsYil7cmV0dXJuIlxcIisoYi0wKzEpfTtmb3IodmFyIHIgaW4gby5tYXRjaClvLm1hdGNoW3JdPW5ldyBSZWdFeHAoby5tYXRjaFtyXS5zb3VyY2UrLyg/IVteXFtdKlxdKSg/IVteXChdKlwpKS8uc291cmNlKSxvLmxlZnRNYXRjaFtyXT1uZXcgUmVnRXhwKC8oXig/Oi58XHJ8XG4pKj8pLy5zb3VyY2Urby5tYXRjaFtyXS5zb3VyY2UucmVwbGFjZSgvXFwoXGQrKS9nLHEpKTtvLm1hdGNoLmdsb2JhbFBPUz1wO3ZhciBzPWZ1bmN0aW9uKGEsYil7YT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLDApO2lmKGIpe2IucHVzaC5hcHBseShiLGEpO3JldHVybiBifXJldHVybiBhfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYy5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywwKVswXS5ub2RlVHlwZX1jYXRjaCh0KXtzPWZ1bmN0aW9uKGEsYil7dmFyIGM9MCxkPWJ8fFtdO2lmKGcuY2FsbChhKT09PSJbb2JqZWN0IEFycmF5XSIpQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZCxhKTtlbHNlIGlmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpZm9yKHZhciBlPWEubGVuZ3RoO2M8ZTtjKyspZC5wdXNoKGFbY10pO2Vsc2UgZm9yKDthW2NdO2MrKylkLnB1c2goYVtjXSk7cmV0dXJuIGR9fXZhciB1LHY7Yy5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24/dT1mdW5jdGlvbihhLGIpe2lmKGE9PT1iKXtoPSEwO3JldHVybiAwfWlmKCFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9ufHwhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbilyZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxO3JldHVybiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjQ/LTE6MX06KHU9ZnVuY3Rpb24oYSxiKXtpZihhPT09Yil7aD0hMDtyZXR1cm4gMH1pZihhLnNvdXJjZUluZGV4JiZiLnNvdXJjZUluZGV4KXJldHVybiBhLnNvdXJjZUluZGV4LWIuc291cmNlSW5kZXg7dmFyIGMsZCxlPVtdLGY9W10sZz1hLnBhcmVudE5vZGUsaT1iLnBhcmVudE5vZGUsaj1nO2lmKGc9PT1pKXJldHVybiB2KGEsYik7aWYoIWcpcmV0dXJuLTE7aWYoIWkpcmV0dXJuIDE7d2hpbGUoaillLnVuc2hpZnQoaiksaj1qLnBhcmVudE5vZGU7aj1pO3doaWxlKGopZi51bnNoaWZ0KGopLGo9ai5wYXJlbnROb2RlO2M9ZS5sZW5ndGgsZD1mLmxlbmd0aDtmb3IodmFyIGs9MDtrPGMmJms8ZDtrKyspaWYoZVtrXSE9PWZba10pcmV0dXJuIHYoZVtrXSxmW2tdKTtyZXR1cm4gaz09PWM/dihhLGZba10sLTEpOnYoZVtrXSxiLDEpfSx2PWZ1bmN0aW9uKGEsYixjKXtpZihhPT09YilyZXR1cm4gYzt2YXIgZD1hLm5leHRTaWJsaW5nO3doaWxlKGQpe2lmKGQ9PT1iKXJldHVybi0xO2Q9ZC5uZXh0U2libGluZ31yZXR1cm4gMX0pLGZ1bmN0aW9uKCl7dmFyIGE9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpLGU9Yy5kb2N1bWVudEVsZW1lbnQ7YS5pbm5lckhUTUw9IjxhIG5hbWU9JyIrZCsiJy8+IixlLmluc2VydEJlZm9yZShhLGUuZmlyc3RDaGlsZCksYy5nZXRFbGVtZW50QnlJZChkKSYmKG8uZmluZC5JRD1mdW5jdGlvbihhLGMsZCl7aWYodHlwZW9mIGMuZ2V0RWxlbWVudEJ5SWQhPSJ1bmRlZmluZWQiJiYhZCl7dmFyIGU9Yy5nZXRFbGVtZW50QnlJZChhWzFdKTtyZXR1cm4gZT9lLmlkPT09YVsxXXx8dHlwZW9mIGUuZ2V0QXR0cmlidXRlTm9kZSE9InVuZGVmaW5lZCImJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKS5ub2RlVmFsdWU9PT1hWzFdP1tlXTpiOltdfX0sby5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYS5nZXRBdHRyaWJ1dGVOb2RlIT0idW5kZWZpbmVkIiYmYS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiBhLm5vZGVUeXBlPT09MSYmYyYmYy5ub2RlVmFsdWU9PT1ifSksZS5yZW1vdmVDaGlsZChhKSxlPWE9bnVsbH0oKSxmdW5jdGlvbigpe3ZhciBhPWMuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5hcHBlbmRDaGlsZChjLmNyZWF0ZUNvbW1lbnQoIiIpKSxhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3RoPjAmJihvLmZpbmQuVEFHPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhWzFdKTtpZihhWzFdPT09IioiKXt2YXIgZD1bXTtmb3IodmFyIGU9MDtjW2VdO2UrKyljW2VdLm5vZGVUeXBlPT09MSYmZC5wdXNoKGNbZV0pO2M9ZH1yZXR1cm4gY30pLGEuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IixhLmZpcnN0Q2hpbGQmJnR5cGVvZiBhLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlIT0idW5kZWZpbmVkIiYmYS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiJiYoby5hdHRySGFuZGxlLmhyZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJocmVmIiwyKX0pLGE9bnVsbH0oKSxjLnF1ZXJ5U2VsZWN0b3JBbGwmJmZ1bmN0aW9uKCl7dmFyIGE9bSxiPWMuY3JlYXRlRWxlbWVudCgiZGl2IiksZD0iX19zaXp6bGVfXyI7Yi5pbm5lckhUTUw9IjxwIGNsYXNzPSdURVNUJz48L3A+IjtpZighYi5xdWVyeVNlbGVjdG9yQWxsfHxiLnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoIT09MCl7bT1mdW5jdGlvbihiLGUsZixnKXtlPWV8fGM7aWYoIWcmJiFtLmlzWE1MKGUpKXt2YXIgaD0vXihcdyskKXxeXC4oW1x3XC1dKyQpfF4jKFtcd1wtXSskKS8uZXhlYyhiKTtpZihoJiYoZS5ub2RlVHlwZT09PTF8fGUubm9kZVR5cGU9PT05KSl7aWYoaFsxXSlyZXR1cm4gcyhlLmdldEVsZW1lbnRzQnlUYWdOYW1lKGIpLGYpO2lmKGhbMl0mJm8uZmluZC5DTEFTUyYmZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBzKGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShoWzJdKSxmKX1pZihlLm5vZGVUeXBlPT09OSl7aWYoYj09PSJib2R5IiYmZS5ib2R5KXJldHVybiBzKFtlLmJvZHldLGYpO2lmKGgmJmhbM10pe3ZhciBpPWUuZ2V0RWxlbWVudEJ5SWQoaFszXSk7aWYoIWl8fCFpLnBhcmVudE5vZGUpcmV0dXJuIHMoW10sZik7aWYoaS5pZD09PWhbM10pcmV0dXJuIHMoW2ldLGYpfXRyeXtyZXR1cm4gcyhlLnF1ZXJ5U2VsZWN0b3JBbGwoYiksZil9Y2F0Y2goail7fX1lbHNlIGlmKGUubm9kZVR5cGU9PT0xJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0ib2JqZWN0Iil7dmFyIGs9ZSxsPWUuZ2V0QXR0cmlidXRlKCJpZCIpLG49bHx8ZCxwPWUucGFyZW50Tm9kZSxxPS9eXHMqWyt+XS8udGVzdChiKTtsP249bi5yZXBsYWNlKC8nL2csIlxcJCYiKTplLnNldEF0dHJpYnV0ZSgiaWQiLG4pLHEmJnAmJihlPWUucGFyZW50Tm9kZSk7dHJ5e2lmKCFxfHxwKXJldHVybiBzKGUucXVlcnlTZWxlY3RvckFsbCgiW2lkPSciK24rIiddICIrYiksZil9Y2F0Y2gocil7fWZpbmFsbHl7bHx8ay5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gYShiLGUsZixnKX07Zm9yKHZhciBlIGluIGEpbVtlXT1hW2VdO2I9bnVsbH19KCksZnVuY3Rpb24oKXt2YXIgYT1jLmRvY3VtZW50RWxlbWVudCxiPWEubWF0Y2hlc1NlbGVjdG9yfHxhLm1vek1hdGNoZXNTZWxlY3Rvcnx8YS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGEubXNNYXRjaGVzU2VsZWN0b3I7aWYoYil7dmFyIGQ9IWIuY2FsbChjLmNyZWF0ZUVsZW1lbnQoImRpdiIpLCJkaXYiKSxlPSExO3RyeXtiLmNhbGwoYy5kb2N1bWVudEVsZW1lbnQsIlt0ZXN0IT0nJ106c2l6emxlIil9Y2F0Y2goZil7ZT0hMH1tLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihhLGMpe2M9Yy5yZXBsYWNlKC9cPVxzKihbXiciXF1dKilccypcXS9nLCI9JyQxJ10iKTtpZighbS5pc1hNTChhKSl0cnl7aWYoZXx8IW8ubWF0Y2guUFNFVURPLnRlc3QoYykmJiEvIT0vLnRlc3QoYykpe3ZhciBmPWIuY2FsbChhLGMpO2lmKGZ8fCFkfHxhLmRvY3VtZW50JiZhLmRvY3VtZW50Lm5vZGVUeXBlIT09MTEpcmV0dXJuIGZ9fWNhdGNoKGcpe31yZXR1cm4gbShjLG51bGwsbnVsbCxbYV0pLmxlbmd0aD4wfX19KCksZnVuY3Rpb24oKXt2YXIgYT1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7aWYoISFhLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aCE9PTApe2EubGFzdENoaWxkLmNsYXNzTmFtZT0iZSI7aWYoYS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MSlyZXR1cm47by5vcmRlci5zcGxpY2UoMSwwLCJDTEFTUyIpLG8uZmluZC5DTEFTUz1mdW5jdGlvbihhLGIsYyl7aWYodHlwZW9mIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9InVuZGVmaW5lZCImJiFjKXJldHVybiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYVsxXSl9LGE9bnVsbH19KCksYy5kb2N1bWVudEVsZW1lbnQuY29udGFpbnM/bS5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybiBhIT09YiYmKGEuY29udGFpbnM/YS5jb250YWlucyhiKTohMCl9OmMuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP20uY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4hIShhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjE2KX06bS5jb250YWlucz1mdW5jdGlvbigpe3JldHVybiExfSxtLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPShhP2Eub3duZXJEb2N1bWVudHx8YTowKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIGI/Yi5ub2RlTmFtZSE9PSJIVE1MIjohMX07dmFyIHk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9W10sZj0iIixnPWIubm9kZVR5cGU/W2JdOmI7d2hpbGUoZD1vLm1hdGNoLlBTRVVETy5leGVjKGEpKWYrPWRbMF0sYT1hLnJlcGxhY2Uoby5tYXRjaC5QU0VVRE8sIiIpO2E9by5yZWxhdGl2ZVthXT9hKyIqIjphO2Zvcih2YXIgaD0wLGk9Zy5sZW5ndGg7aDxpO2grKyltKGEsZ1toXSxlLGMpO3JldHVybiBtLmZpbHRlcihmLGUpfTttLmF0dHI9Zi5hdHRyLG0uc2VsZWN0b3JzLmF0dHJNYXA9e30sZi5maW5kPW0sZi5leHByPW0uc2VsZWN0b3JzLGYuZXhwclsiOiJdPWYuZXhwci5maWx0ZXJzLGYudW5pcXVlPW0udW5pcXVlU29ydCxmLnRleHQ9bS5nZXRUZXh0LGYuaXNYTUxEb2M9bS5pc1hNTCxmLmNvbnRhaW5zPW0uY29udGFpbnN9KCk7dmFyIEw9L1VudGlsJC8sTT0vXig/OnBhcmVudHN8cHJldlVudGlsfHByZXZBbGwpLyxOPS8sLyxPPS9eLlteOiNcW1wuLF0qJC8sUD1BcnJheS5wcm90b3R5cGUuc2xpY2UsUT1mLmV4cHIubWF0Y2guZ2xvYmFsUE9TLFI9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07Zi5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjLGQ7aWYodHlwZW9mIGEhPSJzdHJpbmciKXJldHVybiBmKGEpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihjPTAsZD1iLmxlbmd0aDtjPGQ7YysrKWlmKGYuY29udGFpbnMoYltjXSx0aGlzKSlyZXR1cm4hMH0pO3ZhciBlPXRoaXMucHVzaFN0YWNrKCIiLCJmaW5kIixhKSxnLGgsaTtmb3IoYz0wLGQ9dGhpcy5sZW5ndGg7YzxkO2MrKyl7Zz1lLmxlbmd0aCxmLmZpbmQoYSx0aGlzW2NdLGUpO2lmKGM+MClmb3IoaD1nO2g8ZS5sZW5ndGg7aCsrKWZvcihpPTA7aTxnO2krKylpZihlW2ldPT09ZVtoXSl7ZS5zcGxpY2UoaC0tLDEpO2JyZWFrfX1yZXR1cm4gZX0saGFzOmZ1bmN0aW9uKGEpe3ZhciBiPWYoYSk7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBhPTAsYz1iLmxlbmd0aDthPGM7YSsrKWlmKGYuY29udGFpbnModGhpcyxiW2FdKSlyZXR1cm4hMH0pfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFQodGhpcyxhLCExKSwibm90IixhKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhUKHRoaXMsYSwhMCksImZpbHRlciIsYSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhYSYmKHR5cGVvZiBhPT0ic3RyaW5nIj9RLnRlc3QoYSk/ZihhLHRoaXMuY29udGV4dCkuaW5kZXgodGhpc1swXSk+PTA6Zi5maWx0ZXIoYSx0aGlzKS5sZW5ndGg+MDp0aGlzLmZpbHRlcihhKS5sZW5ndGg+MCl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkLGUsZz10aGlzWzBdO2lmKGYuaXNBcnJheShhKSl7dmFyIGg9MTt3aGlsZShnJiZnLm93bmVyRG9jdW1lbnQmJmchPT1iKXtmb3IoZD0wO2Q8YS5sZW5ndGg7ZCsrKWYoZykuaXMoYVtkXSkmJmMucHVzaCh7c2VsZWN0b3I6YVtkXSxlbGVtOmcsbGV2ZWw6aH0pO2c9Zy5wYXJlbnROb2RlLGgrK31yZXR1cm4gY312YXIgaT1RLnRlc3QoYSl8fHR5cGVvZiBhIT0ic3RyaW5nIj9mKGEsYnx8dGhpcy5jb250ZXh0KTowO2ZvcihkPTAsZT10aGlzLmxlbmd0aDtkPGU7ZCsrKXtnPXRoaXNbZF07d2hpbGUoZyl7aWYoaT9pLmluZGV4KGcpPi0xOmYuZmluZC5tYXRjaGVzU2VsZWN0b3IoZyxhKSl7Yy5wdXNoKGcpO2JyZWFrfWc9Zy5wYXJlbnROb2RlO2lmKCFnfHwhZy5vd25lckRvY3VtZW50fHxnPT09Ynx8Zy5ub2RlVHlwZT09PTExKWJyZWFrfX1jPWMubGVuZ3RoPjE/Zi51bmlxdWUoYyk6YztyZXR1cm4gdGhpcy5wdXNoU3RhY2soYywiY2xvc2VzdCIsYSl9LGluZGV4OmZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiB0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5wcmV2QWxsKCkubGVuZ3RoOi0xO2lmKHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gZi5pbkFycmF5KHRoaXNbMF0sZihhKSk7cmV0dXJuIGYuaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyl9LGFkZDpmdW5jdGlvbihhLGIpe3ZhciBjPXR5cGVvZiBhPT0ic3RyaW5nIj9mKGEsYik6Zi5tYWtlQXJyYXkoYSYmYS5ub2RlVHlwZT9bYV06YSksZD1mLm1lcmdlKHRoaXMuZ2V0KCksYyk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMoY1swXSl8fFMoZFswXSk/ZDpmLnVuaXF1ZShkKSl9LGFuZFNlbGY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGQodGhpcy5wcmV2T2JqZWN0KX19KSxmLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJmIubm9kZVR5cGUhPT0xMT9iOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIGYuZGlyKGEsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5kaXIoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGYubnRoKGEsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gZi5udGgoYSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gZi5kaXIoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gZi5kaXIoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGYuZGlyKGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5kaXIoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGYuc2libGluZygoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIGYuc2libGluZyhhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gZi5ub2RlTmFtZShhLCJpZnJhbWUiKT9hLmNvbnRlbnREb2N1bWVudHx8YS5jb250ZW50V2luZG93LmRvY3VtZW50OmYubWFrZUFycmF5KGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe2YuZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1mLm1hcCh0aGlzLGIsYyk7TC50ZXN0KGEpfHwoZD1jKSxkJiZ0eXBlb2YgZD09InN0cmluZyImJihlPWYuZmlsdGVyKGQsZSkpLGU9dGhpcy5sZW5ndGg+MSYmIVJbYV0/Zi51bmlxdWUoZSk6ZSwodGhpcy5sZW5ndGg+MXx8Ti50ZXN0KGQpKSYmTS50ZXN0KGEpJiYoZT1lLnJldmVyc2UoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUsYSxQLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikpfX0pLGYuZXh0ZW5kKHtmaWx0ZXI6ZnVuY3Rpb24oYSxiLGMpe2MmJihhPSI6bm90KCIrYSsiKSIpO3JldHVybiBiLmxlbmd0aD09PTE/Zi5maW5kLm1hdGNoZXNTZWxlY3RvcihiWzBdLGEpP1tiWzBdXTpbXTpmLmZpbmQubWF0Y2hlcyhhLGIpfSxkaXI6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPVtdLGc9YVtjXTt3aGlsZShnJiZnLm5vZGVUeXBlIT09OSYmKGQ9PT1ifHxnLm5vZGVUeXBlIT09MXx8IWYoZykuaXMoZCkpKWcubm9kZVR5cGU9PT0xJiZlLnB1c2goZyksZz1nW2NdO3JldHVybiBlfSxudGg6ZnVuY3Rpb24oYSxiLGMsZCl7Yj1ifHwxO3ZhciBlPTA7Zm9yKDthO2E9YVtjXSlpZihhLm5vZGVUeXBlPT09MSYmKytlPT09YilicmVhaztyZXR1cm4gYX0sc2libGluZzpmdW5jdGlvbihhLGIpe3ZhciBjPVtdO2Zvcig7YTthPWEubmV4dFNpYmxpbmcpYS5ub2RlVHlwZT09PTEmJmEhPT1iJiZjLnB1c2goYSk7cmV0dXJuIGN9fSk7dmFyIFY9ImFiYnJ8YXJ0aWNsZXxhc2lkZXxhdWRpb3xiZGl8Y2FudmFzfGRhdGF8ZGF0YWxpc3R8ZGV0YWlsc3xmaWdjYXB0aW9ufGZpZ3VyZXxmb290ZXJ8aGVhZGVyfGhncm91cHxtYXJrfG1ldGVyfG5hdnxvdXRwdXR8cHJvZ3Jlc3N8c2VjdGlvbnxzdW1tYXJ5fHRpbWV8dmlkZW8iLFc9LyBqUXVlcnlcZCs9Iig/OlxkK3xudWxsKSIvZyxYPS9eXHMrLyxZPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vaWcsWj0vPChbXHc6XSspLywkPS88dGJvZHkvaSxfPS88fCYjP1x3KzsvLGJhPS88KD86c2NyaXB0fHN0eWxlKS9pLGJiPS88KD86c2NyaXB0fG9iamVjdHxlbWJlZHxvcHRpb258c3R5bGUpL2ksYmM9bmV3IFJlZ0V4cCgiPCg/OiIrVisiKVtcXHMvPl0iLCJpIiksYmQ9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksYmU9L1wvKGphdmF8ZWNtYSlzY3JpcHQvaSxiZj0vXlxzKjwhKD86XFtDREFUQVxbfFwtXC0pLyxiZz17b3B0aW9uOlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sbGVnZW5kOlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfSxiaD1VKGMpO2JnLm9wdGdyb3VwPWJnLm9wdGlvbixiZy50Ym9keT1iZy50Zm9vdD1iZy5jb2xncm91cD1iZy5jYXB0aW9uPWJnLnRoZWFkLGJnLnRoPWJnLnRkLGYuc3VwcG9ydC5odG1sU2VyaWFsaXplfHwoYmcuX2RlZmF1bHQ9WzEsImRpdjxkaXY+IiwiPC9kaXY+Il0pLGYuZm4uZXh0ZW5kKHt0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBmLmFjY2Vzcyh0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiBhPT09Yj9mLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxjKS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sd3JhcEFsbDpmdW5jdGlvbihhKXtpZihmLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtmKHRoaXMpLndyYXBBbGwoYS5jYWxsKHRoaXMsYikpfSk7aWYodGhpc1swXSl7dmFyIGI9ZihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzO3doaWxlKGEuZmlyc3RDaGlsZCYmYS5maXJzdENoaWxkLm5vZGVUeXBlPT09MSlhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe2lmKGYuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2YodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1mKHRoaXMpLGM9Yi5jb250ZW50cygpO2MubGVuZ3RoP2Mud3JhcEFsbChhKTpiLmFwcGVuZChhKX0pfSx3cmFwOmZ1bmN0aW9uKGEpe3ZhciBiPWYuaXNGdW5jdGlvbihhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMpe2YodGhpcykud3JhcEFsbChiP2EuY2FsbCh0aGlzLGMpOmEpfSl9LHVud3JhcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKXtmLm5vZGVOYW1lKHRoaXMsImJvZHkiKXx8Zih0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5kKCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywhMCxmdW5jdGlvbihhKXt0aGlzLm5vZGVUeXBlPT09MSYmdGhpcy5hcHBlbmRDaGlsZChhKX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCEwLGZ1bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLmluc2VydEJlZm9yZShhLHRoaXMuZmlyc3RDaGlsZCl9KX0sYmVmb3JlOmZ1bmN0aW9uKCl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlKXJldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywhMSxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KTtpZihhcmd1bWVudHMubGVuZ3RoKXt2YXIgYT1mCi5jbGVhbihhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLHRoaXMudG9BcnJheSgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYSwiYmVmb3JlIixhcmd1bWVudHMpfX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCExLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5nKX0pO2lmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBhPXRoaXMucHVzaFN0YWNrKHRoaXMsImFmdGVyIixhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLGYuY2xlYW4oYXJndW1lbnRzKSk7cmV0dXJuIGF9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MCxkOyhkPXRoaXNbY10pIT1udWxsO2MrKylpZighYXx8Zi5maWx0ZXIoYSxbZF0pLmxlbmd0aCkhYiYmZC5ub2RlVHlwZT09PTEmJihmLmNsZWFuRGF0YShkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpLGYuY2xlYW5EYXRhKFtkXSkpLGQucGFyZW50Tm9kZSYmZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpO3JldHVybiB0aGlzfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYT0wLGI7KGI9dGhpc1thXSkhPW51bGw7YSsrKXtiLm5vZGVUeXBlPT09MSYmZi5jbGVhbkRhdGEoYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTt3aGlsZShiLmZpcnN0Q2hpbGQpYi5yZW1vdmVDaGlsZChiLmZpcnN0Q2hpbGQpfXJldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihhLGIpe2E9YT09bnVsbD8hMTphLGI9Yj09bnVsbD9hOmI7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGYuY2xvbmUodGhpcyxhLGIpfSl9LGh0bWw6ZnVuY3Rpb24oYSl7cmV0dXJuIGYuYWNjZXNzKHRoaXMsZnVuY3Rpb24oYSl7dmFyIGM9dGhpc1swXXx8e30sZD0wLGU9dGhpcy5sZW5ndGg7aWYoYT09PWIpcmV0dXJuIGMubm9kZVR5cGU9PT0xP2MuaW5uZXJIVE1MLnJlcGxhY2UoVywiIik6bnVsbDtpZih0eXBlb2YgYT09InN0cmluZyImJiFiYS50ZXN0KGEpJiYoZi5zdXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNlfHwhWC50ZXN0KGEpKSYmIWJnWyhaLmV4ZWMoYSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXthPWEucmVwbGFjZShZLCI8JDE+PC8kMj4iKTt0cnl7Zm9yKDtkPGU7ZCsrKWM9dGhpc1tkXXx8e30sYy5ub2RlVHlwZT09PTEmJihmLmNsZWFuRGF0YShjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpLGMuaW5uZXJIVE1MPWEpO2M9MH1jYXRjaChnKXt9fWMmJnRoaXMuZW1wdHkoKS5hcHBlbmQoYSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oYSl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlKXtpZihmLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXt2YXIgYz1mKHRoaXMpLGQ9Yy5odG1sKCk7Yy5yZXBsYWNlV2l0aChhLmNhbGwodGhpcyxiLGQpKX0pO3R5cGVvZiBhIT0ic3RyaW5nIiYmKGE9ZihhKS5kZXRhY2goKSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPXRoaXMubmV4dFNpYmxpbmcsYz10aGlzLnBhcmVudE5vZGU7Zih0aGlzKS5yZW1vdmUoKSxiP2YoYikuYmVmb3JlKGEpOmYoYykuYXBwZW5kKGEpfSl9cmV0dXJuIHRoaXMubGVuZ3RoP3RoaXMucHVzaFN0YWNrKGYoZi5pc0Z1bmN0aW9uKGEpP2EoKTphKSwicmVwbGFjZVdpdGgiLGEpOnRoaXN9LGRldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yZW1vdmUoYSwhMCl9LGRvbU1hbmlwOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZSxnLGgsaSxqPWFbMF0saz1bXTtpZighZi5zdXBwb3J0LmNoZWNrQ2xvbmUmJmFyZ3VtZW50cy5sZW5ndGg9PT0zJiZ0eXBlb2Ygaj09InN0cmluZyImJmJkLnRlc3QoaikpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YodGhpcykuZG9tTWFuaXAoYSxjLGQsITApfSk7aWYoZi5pc0Z1bmN0aW9uKGopKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIGc9Zih0aGlzKTthWzBdPWouY2FsbCh0aGlzLGUsYz9nLmh0bWwoKTpiKSxnLmRvbU1hbmlwKGEsYyxkKX0pO2lmKHRoaXNbMF0pe2k9aiYmai5wYXJlbnROb2RlLGYuc3VwcG9ydC5wYXJlbnROb2RlJiZpJiZpLm5vZGVUeXBlPT09MTEmJmkuY2hpbGROb2Rlcy5sZW5ndGg9PT10aGlzLmxlbmd0aD9lPXtmcmFnbWVudDppfTplPWYuYnVpbGRGcmFnbWVudChhLHRoaXMsayksaD1lLmZyYWdtZW50LGguY2hpbGROb2Rlcy5sZW5ndGg9PT0xP2c9aD1oLmZpcnN0Q2hpbGQ6Zz1oLmZpcnN0Q2hpbGQ7aWYoZyl7Yz1jJiZmLm5vZGVOYW1lKGcsInRyIik7Zm9yKHZhciBsPTAsbT10aGlzLmxlbmd0aCxuPW0tMTtsPG07bCsrKWQuY2FsbChjP2JpKHRoaXNbbF0sZyk6dGhpc1tsXSxlLmNhY2hlYWJsZXx8bT4xJiZsPG4/Zi5jbG9uZShoLCEwLCEwKTpoKX1rLmxlbmd0aCYmZi5lYWNoKGssZnVuY3Rpb24oYSxiKXtiLnNyYz9mLmFqYXgoe3R5cGU6IkdFVCIsZ2xvYmFsOiExLHVybDpiLnNyYyxhc3luYzohMSxkYXRhVHlwZToic2NyaXB0In0pOmYuZ2xvYmFsRXZhbCgoYi50ZXh0fHxiLnRleHRDb250ZW50fHxiLmlubmVySFRNTHx8IiIpLnJlcGxhY2UoYmYsIi8qJDAqLyIpKSxiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX0pfXJldHVybiB0aGlzfX0pLGYuYnVpbGRGcmFnbWVudD1mdW5jdGlvbihhLGIsZCl7dmFyIGUsZyxoLGksaj1hWzBdO2ImJmJbMF0mJihpPWJbMF0ub3duZXJEb2N1bWVudHx8YlswXSksaS5jcmVhdGVEb2N1bWVudEZyYWdtZW50fHwoaT1jKSxhLmxlbmd0aD09PTEmJnR5cGVvZiBqPT0ic3RyaW5nIiYmai5sZW5ndGg8NTEyJiZpPT09YyYmai5jaGFyQXQoMCk9PT0iPCImJiFiYi50ZXN0KGopJiYoZi5zdXBwb3J0LmNoZWNrQ2xvbmV8fCFiZC50ZXN0KGopKSYmKGYuc3VwcG9ydC5odG1sNUNsb25lfHwhYmMudGVzdChqKSkmJihnPSEwLGg9Zi5mcmFnbWVudHNbal0saCYmaCE9PTEmJihlPWgpKSxlfHwoZT1pLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxmLmNsZWFuKGEsaSxlLGQpKSxnJiYoZi5mcmFnbWVudHNbal09aD9lOjEpO3JldHVybntmcmFnbWVudDplLGNhY2hlYWJsZTpnfX0sZi5mcmFnbWVudHM9e30sZi5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtmLmZuW2FdPWZ1bmN0aW9uKGMpe3ZhciBkPVtdLGU9ZihjKSxnPXRoaXMubGVuZ3RoPT09MSYmdGhpc1swXS5wYXJlbnROb2RlO2lmKGcmJmcubm9kZVR5cGU9PT0xMSYmZy5jaGlsZE5vZGVzLmxlbmd0aD09PTEmJmUubGVuZ3RoPT09MSl7ZVtiXSh0aGlzWzBdKTtyZXR1cm4gdGhpc31mb3IodmFyIGg9MCxpPWUubGVuZ3RoO2g8aTtoKyspe3ZhciBqPShoPjA/dGhpcy5jbG9uZSghMCk6dGhpcykuZ2V0KCk7ZihlW2hdKVtiXShqKSxkPWQuY29uY2F0KGopfXJldHVybiB0aGlzLnB1c2hTdGFjayhkLGEsZS5zZWxlY3Rvcil9fSksZi5leHRlbmQoe2Nsb25lOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGcsaD1mLnN1cHBvcnQuaHRtbDVDbG9uZXx8Zi5pc1hNTERvYyhhKXx8IWJjLnRlc3QoIjwiK2Eubm9kZU5hbWUrIj4iKT9hLmNsb25lTm9kZSghMCk6Ym8oYSk7aWYoKCFmLnN1cHBvcnQubm9DbG9uZUV2ZW50fHwhZi5zdXBwb3J0Lm5vQ2xvbmVDaGVja2VkKSYmKGEubm9kZVR5cGU9PT0xfHxhLm5vZGVUeXBlPT09MTEpJiYhZi5pc1hNTERvYyhhKSl7YmsoYSxoKSxkPWJsKGEpLGU9YmwoaCk7Zm9yKGc9MDtkW2ddOysrZyllW2ddJiZiayhkW2ddLGVbZ10pfWlmKGIpe2JqKGEsaCk7aWYoYyl7ZD1ibChhKSxlPWJsKGgpO2ZvcihnPTA7ZFtnXTsrK2cpYmooZFtnXSxlW2ddKX19ZD1lPW51bGw7cmV0dXJuIGh9LGNsZWFuOmZ1bmN0aW9uKGEsYixkLGUpe3ZhciBnLGgsaSxqPVtdO2I9Ynx8Yyx0eXBlb2YgYi5jcmVhdGVFbGVtZW50PT0idW5kZWZpbmVkIiYmKGI9Yi5vd25lckRvY3VtZW50fHxiWzBdJiZiWzBdLm93bmVyRG9jdW1lbnR8fGMpO2Zvcih2YXIgaz0wLGw7KGw9YVtrXSkhPW51bGw7aysrKXt0eXBlb2YgbD09Im51bWJlciImJihsKz0iIik7aWYoIWwpY29udGludWU7aWYodHlwZW9mIGw9PSJzdHJpbmciKWlmKCFfLnRlc3QobCkpbD1iLmNyZWF0ZVRleHROb2RlKGwpO2Vsc2V7bD1sLnJlcGxhY2UoWSwiPCQxPjwvJDI+Iik7dmFyIG09KFouZXhlYyhsKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSxuPWJnW21dfHxiZy5fZGVmYXVsdCxvPW5bMF0scD1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHE9YmguY2hpbGROb2RlcyxyO2I9PT1jP2JoLmFwcGVuZENoaWxkKHApOlUoYikuYXBwZW5kQ2hpbGQocCkscC5pbm5lckhUTUw9blsxXStsK25bMl07d2hpbGUoby0tKXA9cC5sYXN0Q2hpbGQ7aWYoIWYuc3VwcG9ydC50Ym9keSl7dmFyIHM9JC50ZXN0KGwpLHQ9bT09PSJ0YWJsZSImJiFzP3AuZmlyc3RDaGlsZCYmcC5maXJzdENoaWxkLmNoaWxkTm9kZXM6blsxXT09PSI8dGFibGU+IiYmIXM/cC5jaGlsZE5vZGVzOltdO2ZvcihpPXQubGVuZ3RoLTE7aT49MDstLWkpZi5ub2RlTmFtZSh0W2ldLCJ0Ym9keSIpJiYhdFtpXS5jaGlsZE5vZGVzLmxlbmd0aCYmdFtpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRbaV0pfSFmLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJlgudGVzdChsKSYmcC5pbnNlcnRCZWZvcmUoYi5jcmVhdGVUZXh0Tm9kZShYLmV4ZWMobClbMF0pLHAuZmlyc3RDaGlsZCksbD1wLmNoaWxkTm9kZXMscCYmKHAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwKSxxLmxlbmd0aD4wJiYocj1xW3EubGVuZ3RoLTFdLHImJnIucGFyZW50Tm9kZSYmci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpKSl9dmFyIHU7aWYoIWYuc3VwcG9ydC5hcHBlbmRDaGVja2VkKWlmKGxbMF0mJnR5cGVvZiAodT1sLmxlbmd0aCk9PSJudW1iZXIiKWZvcihpPTA7aTx1O2krKylibihsW2ldKTtlbHNlIGJuKGwpO2wubm9kZVR5cGU/ai5wdXNoKGwpOmo9Zi5tZXJnZShqLGwpfWlmKGQpe2c9ZnVuY3Rpb24oYSl7cmV0dXJuIWEudHlwZXx8YmUudGVzdChhLnR5cGUpfTtmb3Ioaz0wO2pba107aysrKXtoPWpba107aWYoZSYmZi5ub2RlTmFtZShoLCJzY3JpcHQiKSYmKCFoLnR5cGV8fGJlLnRlc3QoaC50eXBlKSkpZS5wdXNoKGgucGFyZW50Tm9kZT9oLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaCk6aCk7ZWxzZXtpZihoLm5vZGVUeXBlPT09MSl7dmFyIHY9Zi5ncmVwKGguZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGcpO2ouc3BsaWNlLmFwcGx5KGosW2srMSwwXS5jb25jYXQodikpfWQuYXBwZW5kQ2hpbGQoaCl9fX1yZXR1cm4gan0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZD1mLmNhY2hlLGU9Zi5ldmVudC5zcGVjaWFsLGc9Zi5zdXBwb3J0LmRlbGV0ZUV4cGFuZG87Zm9yKHZhciBoPTAsaTsoaT1hW2hdKSE9bnVsbDtoKyspe2lmKGkubm9kZU5hbWUmJmYubm9EYXRhW2kubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pY29udGludWU7Yz1pW2YuZXhwYW5kb107aWYoYyl7Yj1kW2NdO2lmKGImJmIuZXZlbnRzKXtmb3IodmFyIGogaW4gYi5ldmVudHMpZVtqXT9mLmV2ZW50LnJlbW92ZShpLGopOmYucmVtb3ZlRXZlbnQoaSxqLGIuaGFuZGxlKTtiLmhhbmRsZSYmKGIuaGFuZGxlLmVsZW09bnVsbCl9Zz9kZWxldGUgaVtmLmV4cGFuZG9dOmkucmVtb3ZlQXR0cmlidXRlJiZpLnJlbW92ZUF0dHJpYnV0ZShmLmV4cGFuZG8pLGRlbGV0ZSBkW2NdfX19fSk7dmFyIGJwPS9hbHBoYVwoW14pXSpcKS9pLGJxPS9vcGFjaXR5PShbXildKikvLGJyPS8oW0EtWl18Xm1zKS9nLGJzPS9eW1wtK10/KD86XGQqXC4pP1xkKyQvaSxidD0vXi0/KD86XGQqXC4pP1xkKyg/IXB4KVteXGRcc10rJC9pLGJ1PS9eKFtcLStdKT0oW1wtKy5cZGVdKykvLGJ2PS9ebWFyZ2luLyxidz17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sYng9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxieSxieixiQTtmLmZuLmNzcz1mdW5jdGlvbihhLGMpe3JldHVybiBmLmFjY2Vzcyh0aGlzLGZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gZCE9PWI/Zi5zdHlsZShhLGMsZCk6Zi5jc3MoYSxjKX0sYSxjLGFyZ3VtZW50cy5sZW5ndGg+MSl9LGYuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9YnkoYSwib3BhY2l0eSIpO3JldHVybiBjPT09IiI/IjEiOmN9cmV0dXJuIGEuc3R5bGUub3BhY2l0eX19fSxjc3NOdW1iZXI6e2ZpbGxPcGFjaXR5OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0IjpmLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCJ9LHN0eWxlOmZ1bmN0aW9uKGEsYyxkLGUpe2lmKCEhYSYmYS5ub2RlVHlwZSE9PTMmJmEubm9kZVR5cGUhPT04JiYhIWEuc3R5bGUpe3ZhciBnLGgsaT1mLmNhbWVsQ2FzZShjKSxqPWEuc3R5bGUsaz1mLmNzc0hvb2tzW2ldO2M9Zi5jc3NQcm9wc1tpXXx8aTtpZihkPT09Yil7aWYoayYmImdldCJpbiBrJiYoZz1rLmdldChhLCExLGUpKSE9PWIpcmV0dXJuIGc7cmV0dXJuIGpbY119aD10eXBlb2YgZCxoPT09InN0cmluZyImJihnPWJ1LmV4ZWMoZCkpJiYoZD0rKGdbMV0rMSkqK2dbMl0rcGFyc2VGbG9hdChmLmNzcyhhLGMpKSxoPSJudW1iZXIiKTtpZihkPT1udWxsfHxoPT09Im51bWJlciImJmlzTmFOKGQpKXJldHVybjtoPT09Im51bWJlciImJiFmLmNzc051bWJlcltpXSYmKGQrPSJweCIpO2lmKCFrfHwhKCJzZXQiaW4gayl8fChkPWsuc2V0KGEsZCkpIT09Yil0cnl7altjXT1kfWNhdGNoKGwpe319fSxjc3M6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlLGc7Yz1mLmNhbWVsQ2FzZShjKSxnPWYuY3NzSG9va3NbY10sYz1mLmNzc1Byb3BzW2NdfHxjLGM9PT0iY3NzRmxvYXQiJiYoYz0iZmxvYXQiKTtpZihnJiYiZ2V0ImluIGcmJihlPWcuZ2V0KGEsITAsZCkpIT09YilyZXR1cm4gZTtpZihieSlyZXR1cm4gYnkoYSxjKX0sc3dhcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9e30sZSxmO2ZvcihmIGluIGIpZFtmXT1hLnN0eWxlW2ZdLGEuc3R5bGVbZl09YltmXTtlPWMuY2FsbChhKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09ZFtmXTtyZXR1cm4gZX19KSxmLmN1ckNTUz1mLmNzcyxjLmRlZmF1bHRWaWV3JiZjLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJihiej1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxnLGg9YS5zdHlsZTtiPWIucmVwbGFjZShiciwiLSQxIikudG9Mb3dlckNhc2UoKSwoZD1hLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpJiYoZT1kLmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSkmJihjPWUuZ2V0UHJvcGVydHlWYWx1ZShiKSxjPT09IiImJiFmLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYSkmJihjPWYuc3R5bGUoYSxiKSkpLCFmLnN1cHBvcnQucGl4ZWxNYXJnaW4mJmUmJmJ2LnRlc3QoYikmJmJ0LnRlc3QoYykmJihnPWgud2lkdGgsaC53aWR0aD1jLGM9ZS53aWR0aCxoLndpZHRoPWcpO3JldHVybiBjfSksYy5kb2N1bWVudEVsZW1lbnQuY3VycmVudFN0eWxlJiYoYkE9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1hLmN1cnJlbnRTdHlsZSYmYS5jdXJyZW50U3R5bGVbYl0sZz1hLnN0eWxlO2Y9PW51bGwmJmcmJihlPWdbYl0pJiYoZj1lKSxidC50ZXN0KGYpJiYoYz1nLmxlZnQsZD1hLnJ1bnRpbWVTdHlsZSYmYS5ydW50aW1lU3R5bGUubGVmdCxkJiYoYS5ydW50aW1lU3R5bGUubGVmdD1hLmN1cnJlbnRTdHlsZS5sZWZ0KSxnLmxlZnQ9Yj09PSJmb250U2l6ZSI/IjFlbSI6ZixmPWcucGl4ZWxMZWZ0KyJweCIsZy5sZWZ0PWMsZCYmKGEucnVudGltZVN0eWxlLmxlZnQ9ZCkpO3JldHVybiBmPT09IiI/ImF1dG8iOmZ9KSxieT1ienx8YkEsZi5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihhLGIpe2YuY3NzSG9va3NbYl09e2dldDpmdW5jdGlvbihhLGMsZCl7aWYoYylyZXR1cm4gYS5vZmZzZXRXaWR0aCE9PTA/YkIoYSxiLGQpOmYuc3dhcChhLGJ3LGZ1bmN0aW9uKCl7cmV0dXJuIGJCKGEsYixkKX0pfSxzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYnMudGVzdChiKT9iKyJweCI6Yn19fSksZi5zdXBwb3J0Lm9wYWNpdHl8fChmLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBicS50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/cGFyc2VGbG9hdChSZWdFeHAuJDEpLzEwMCsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9Zi5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IitiKjEwMCsiKSI6IiIsZz1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xO2lmKGI+PTEmJmYudHJpbShnLnJlcGxhY2UoYnAsIiIpKT09PSIiKXtjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIik7aWYoZCYmIWQuZmlsdGVyKXJldHVybn1jLmZpbHRlcj1icC50ZXN0KGcpP2cucmVwbGFjZShicCxlKTpnKyIgIitlfX0pLGYoZnVuY3Rpb24oKXtmLnN1cHBvcnQucmVsaWFibGVNYXJnaW5SaWdodHx8KGYuY3NzSG9va3MubWFyZ2luUmlnaHQ9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBmLnN3YXAoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sZnVuY3Rpb24oKXtyZXR1cm4gYj9ieShhLCJtYXJnaW4tcmlnaHQiKTphLnN0eWxlLm1hcmdpblJpZ2h0fSl9fSl9KSxmLmV4cHImJmYuZXhwci5maWx0ZXJzJiYoZi5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0V2lkdGgsYz1hLm9mZnNldEhlaWdodDtyZXR1cm4gYj09PTAmJmM9PT0wfHwhZi5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyYmKGEuc3R5bGUmJmEuc3R5bGUuZGlzcGxheXx8Zi5jc3MoYSwiZGlzcGxheSIpKT09PSJub25lIn0sZi5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hZi5leHByLmZpbHRlcnMuaGlkZGVuKGEpfSksZi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtmLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXt2YXIgZCxlPXR5cGVvZiBjPT0ic3RyaW5nIj9jLnNwbGl0KCIgIik6W2NdLGY9e307Zm9yKGQ9MDtkPDQ7ZCsrKWZbYStieFtkXStiXT1lW2RdfHxlW2QtMl18fGVbMF07cmV0dXJuIGZ9fX0pO3ZhciBiQz0vJTIwL2csYkQ9L1xbXF0kLyxiRT0vXHI/XG4vZyxiRj0vIy4qJC8sYkc9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9tZyxiSD0vXig/OmNvbG9yfGRhdGV8ZGF0ZXRpbWV8ZGF0ZXRpbWUtbG9jYWx8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2VlaykkL2ksYkk9L14oPzphYm91dHxhcHB8YXBwXC1zdG9yYWdlfC4rXC1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxiSj0vXig/OkdFVHxIRUFEKSQvLGJLPS9eXC9cLy8sYkw9L1w/LyxiTT0vPHNjcmlwdFxiW148XSooPzooPyE8XC9zY3JpcHQ+KTxbXjxdKikqPFwvc2NyaXB0Pi9naSxiTj0vXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSxiTz0vXHMrLyxiUD0vKFs/Jl0pXz1bXiZdKi8sYlE9L14oW1x3XCtcLlwtXSs6KSg/OlwvXC8oW15cLz8jOl0qKSg/OjooXGQrKSk/KT8vLGJSPWYuZm4ubG9hZCxiUz17fSxiVD17fSxiVSxiVixiVz1bIiovIl0rWyIqIl07dHJ5e2JVPWUuaHJlZn1jYXRjaChiWCl7YlU9Yy5jcmVhdGVFbGVtZW50KCJhIiksYlUuaHJlZj0iIixiVT1iVS5ocmVmfWJWPWJRLmV4ZWMoYlUudG9Mb3dlckNhc2UoKSl8fFtdLGYuZm4uZXh0ZW5kKHtsb2FkOmZ1bmN0aW9uKGEsYyxkKXtpZih0eXBlb2YgYSE9InN0cmluZyImJmJSKXJldHVybiBiUi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoIXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBlPWEuaW5kZXhPZigiICIpO2lmKGU+PTApe3ZhciBnPWEuc2xpY2UoZSxhLmxlbmd0aCk7YT1hLnNsaWNlKDAsZSl9dmFyIGg9IkdFVCI7YyYmKGYuaXNGdW5jdGlvbihjKT8oZD1jLGM9Yik6dHlwZW9mIGM9PSJvYmplY3QiJiYoYz1mLnBhcmFtKGMsZi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLGg9IlBPU1QiKSk7dmFyIGk9dGhpcztmLmFqYXgoe3VybDphLHR5cGU6aCxkYXRhVHlwZToiaHRtbCIsZGF0YTpjLGNvbXBsZXRlOmZ1bmN0aW9uKGEsYixjKXtjPWEucmVzcG9uc2VUZXh0LGEuaXNSZXNvbHZlZCgpJiYoYS5kb25lKGZ1bmN0aW9uKGEpe2M9YX0pLGkuaHRtbChnP2YoIjxkaXY+IikuYXBwZW5kKGMucmVwbGFjZShiTSwiIikpLmZpbmQoZyk6YykpLGQmJmkuZWFjaChkLFtjLGIsYV0pfX0pO3JldHVybiB0aGlzfSxzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnRzP2YubWFrZUFycmF5KHRoaXMuZWxlbWVudHMpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuY2hlY2tlZHx8Yk4udGVzdCh0aGlzLm5vZGVOYW1lKXx8YkgudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihhLGIpe3ZhciBjPWYodGhpcykudmFsKCk7cmV0dXJuIGM9PW51bGw/bnVsbDpmLmlzQXJyYXkoYyk/Zi5tYXAoYyxmdW5jdGlvbihhLGMpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoYkUsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKGJFLCJcclxuIil9fSkuZ2V0KCl9fSksZi5lYWNoKCJhamF4U3RhcnQgYWpheFN0b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe2YuZm5bYl09ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMub24oYixhKX19KSxmLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oYSxjKXtmW2NdPWZ1bmN0aW9uKGEsZCxlLGcpe2YuaXNGdW5jdGlvbihkKSYmKGc9Z3x8ZSxlPWQsZD1iKTtyZXR1cm4gZi5hamF4KHt0eXBlOmMsdXJsOmEsZGF0YTpkLHN1Y2Nlc3M6ZSxkYXRhVHlwZTpnfSl9fSksZi5leHRlbmQoe2dldFNjcmlwdDpmdW5jdGlvbihhLGMpe3JldHVybiBmLmdldChhLGIsYywic2NyaXB0Iil9LGdldEpTT046ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmLmdldChhLGIsYywianNvbiIpfSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtiP2IkKGEsZi5hamF4U2V0dGluZ3MpOihiPWEsYT1mLmFqYXhTZXR0aW5ncyksYiQoYSxiKTtyZXR1cm4gYX0sYWpheFNldHRpbmdzOnt1cmw6YlUsaXNMb2NhbDpiSS50ZXN0KGJWWzFdKSxnbG9iYWw6ITAsdHlwZToiR0VUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04Iixwcm9jZXNzRGF0YTohMCxhc3luYzohMCxhY2NlcHRzOnt4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGh0bWw6InRleHQvaHRtbCIsdGV4dDoidGV4dC9wbGFpbiIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0IiwiKiI6Yld9LGNvbnRlbnRzOnt4bWw6L3htbC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjphLlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpmLnBhcnNlSlNPTiwidGV4dCB4bWwiOmYucGFyc2VYTUx9LGZsYXRPcHRpb25zOntjb250ZXh0OiEwLHVybDohMH19LGFqYXhQcmVmaWx0ZXI6YlkoYlMpLGFqYXhUcmFuc3BvcnQ6YlkoYlQpLGFqYXg6ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiB3KGEsYyxsLG0pe2lmKHMhPT0yKXtzPTIscSYmY2xlYXJUaW1lb3V0KHEpLHA9YixuPW18fCIiLHYucmVhZHlTdGF0ZT1hPjA/NDowO3ZhciBvLHIsdSx3PWMseD1sP2NhKGQsdixsKTpiLHksejtpZihhPj0yMDAmJmE8MzAwfHxhPT09MzA0KXtpZihkLmlmTW9kaWZpZWQpe2lmKHk9di5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpKWYubGFzdE1vZGlmaWVkW2tdPXk7aWYoej12LmdldFJlc3BvbnNlSGVhZGVyKCJFdGFnIikpZi5ldGFnW2tdPXp9aWYoYT09PTMwNCl3PSJub3Rtb2RpZmllZCIsbz0hMDtlbHNlIHRyeXtyPWNiKGQseCksdz0ic3VjY2VzcyIsbz0hMH1jYXRjaChBKXt3PSJwYXJzZXJlcnJvciIsdT1BfX1lbHNle3U9dztpZighd3x8YSl3PSJlcnJvciIsYTwwJiYoYT0wKX12LnN0YXR1cz1hLHYuc3RhdHVzVGV4dD0iIisoY3x8dyksbz9oLnJlc29sdmVXaXRoKGUsW3Isdyx2XSk6aC5yZWplY3RXaXRoKGUsW3Ysdyx1XSksdi5zdGF0dXNDb2RlKGopLGo9Yix0JiZnLnRyaWdnZXIoImFqYXgiKyhvPyJTdWNjZXNzIjoiRXJyb3IiKSxbdixkLG8/cjp1XSksaS5maXJlV2l0aChlLFt2LHddKSx0JiYoZy50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFt2LGRdKSwtLWYuYWN0aXZlfHxmLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpfX10eXBlb2YgYT09Im9iamVjdCImJihjPWEsYT1iKSxjPWN8fHt9O3ZhciBkPWYuYWpheFNldHVwKHt9LGMpLGU9ZC5jb250ZXh0fHxkLGc9ZSE9PWQmJihlLm5vZGVUeXBlfHxlIGluc3RhbmNlb2YgZik/ZihlKTpmLmV2ZW50LGg9Zi5EZWZlcnJlZCgpLGk9Zi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksaj1kLnN0YXR1c0NvZGV8fHt9LGssbD17fSxtPXt9LG4sbyxwLHEscixzPTAsdCx1LHY9e3JlYWR5U3RhdGU6MCxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7aWYoIXMpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTthPW1bY109bVtjXXx8YSxsW2FdPWJ9cmV0dXJuIHRoaXN9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBzPT09Mj9uOm51bGx9LGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBjO2lmKHM9PT0yKXtpZighbyl7bz17fTt3aGlsZShjPWJHLmV4ZWMobikpb1tjWzFdLnRvTG93ZXJDYXNlKCldPWNbMl19Yz1vW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIGM9PT1iP251bGw6Y30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtzfHwoZC5taW1lVHlwZT1hKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7YT1hfHwiYWJvcnQiLHAmJnAuYWJvcnQoYSksdygwLGEpO3JldHVybiB0aGlzfX07aC5wcm9taXNlKHYpLHYuc3VjY2Vzcz12LmRvbmUsdi5lcnJvcj12LmZhaWwsdi5jb21wbGV0ZT1pLmFkZCx2LnN0YXR1c0NvZGU9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI7aWYoczwyKWZvcihiIGluIGEpaltiXT1baltiXSxhW2JdXTtlbHNlIGI9YVt2LnN0YXR1c10sdi50aGVuKGIsYil9cmV0dXJuIHRoaXN9LGQudXJsPSgoYXx8ZC51cmwpKyIiKS5yZXBsYWNlKGJGLCIiKS5yZXBsYWNlKGJLLGJWWzFdKyIvLyIpLGQuZGF0YVR5cGVzPWYudHJpbShkLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkuc3BsaXQoYk8pLGQuY3Jvc3NEb21haW49PW51bGwmJihyPWJRLmV4ZWMoZC51cmwudG9Mb3dlckNhc2UoKSksZC5jcm9zc0RvbWFpbj0hKCFyfHxyWzFdPT1iVlsxXSYmclsyXT09YlZbMl0mJihyWzNdfHwoclsxXT09PSJodHRwOiI/ODA6NDQzKSk9PShiVlszXXx8KGJWWzFdPT09Imh0dHA6Ij84MDo0NDMpKSkpLGQuZGF0YSYmZC5wcm9jZXNzRGF0YSYmdHlwZW9mIGQuZGF0YSE9InN0cmluZyImJihkLmRhdGE9Zi5wYXJhbShkLmRhdGEsZC50cmFkaXRpb25hbCkpLGJaKGJTLGQsYyx2KTtpZihzPT09MilyZXR1cm4hMTt0PWQuZ2xvYmFsLGQudHlwZT1kLnR5cGUudG9VcHBlckNhc2UoKSxkLmhhc0NvbnRlbnQ9IWJKLnRlc3QoZC50eXBlKSx0JiZmLmFjdGl2ZSsrPT09MCYmZi5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKTtpZighZC5oYXNDb250ZW50KXtkLmRhdGEmJihkLnVybCs9KGJMLnRlc3QoZC51cmwpPyImIjoiPyIpK2QuZGF0YSxkZWxldGUgZC5kYXRhKSxrPWQudXJsO2lmKGQuY2FjaGU9PT0hMSl7dmFyIHg9Zi5ub3coKSx5PWQudXJsLnJlcGxhY2UoYlAsIiQxXz0iK3gpO2QudXJsPXkrKHk9PT1kLnVybD8oYkwudGVzdChkLnVybCk/IiYiOiI/IikrIl89Iit4OiIiKX19KGQuZGF0YSYmZC5oYXNDb250ZW50JiZkLmNvbnRlbnRUeXBlIT09ITF8fGMuY29udGVudFR5cGUpJiZ2LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsZC5jb250ZW50VHlwZSksZC5pZk1vZGlmaWVkJiYoaz1rfHxkLnVybCxmLmxhc3RNb2RpZmllZFtrXSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsZi5sYXN0TW9kaWZpZWRba10pLGYuZXRhZ1trXSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixmLmV0YWdba10pKSx2LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsZC5kYXRhVHlwZXNbMF0mJmQuYWNjZXB0c1tkLmRhdGFUeXBlc1swXV0/ZC5hY2NlcHRzW2QuZGF0YVR5cGVzWzBdXSsoZC5kYXRhVHlwZXNbMF0hPT0iKiI/IiwgIitiVysiOyBxPTAuMDEiOiIiKTpkLmFjY2VwdHNbIioiXSk7Zm9yKHUgaW4gZC5oZWFkZXJzKXYuc2V0UmVxdWVzdEhlYWRlcih1LGQuaGVhZGVyc1t1XSk7aWYoZC5iZWZvcmVTZW5kJiYoZC5iZWZvcmVTZW5kLmNhbGwoZSx2LGQpPT09ITF8fHM9PT0yKSl7di5hYm9ydCgpO3JldHVybiExfWZvcih1IGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbdV0oZFt1XSk7cD1iWihiVCxkLGMsdik7aWYoIXApdygtMSwiTm8gVHJhbnNwb3J0Iik7ZWxzZXt2LnJlYWR5U3RhdGU9MSx0JiZnLnRyaWdnZXIoImFqYXhTZW5kIixbdixkXSksZC5hc3luYyYmZC50aW1lb3V0PjAmJihxPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2LmFib3J0KCJ0aW1lb3V0Iil9LGQudGltZW91dCkpO3RyeXtzPTEscC5zZW5kKGwsdyl9Y2F0Y2goeil7aWYoczwyKXcoLTEseik7ZWxzZSB0aHJvdyB6fX1yZXR1cm4gdn0scGFyYW06ZnVuY3Rpb24oYSxjKXt2YXIgZD1bXSxlPWZ1bmN0aW9uKGEsYil7Yj1mLmlzRnVuY3Rpb24oYik/YigpOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYil9O2M9PT1iJiYoYz1mLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCk7aWYoZi5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIWYuaXNQbGFpbk9iamVjdChhKSlmLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IodmFyIGcgaW4gYSliXyhnLGFbZ10sYyxlKTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZShiQywiKyIpfX0pLGYuZXh0ZW5kKHthY3RpdmU6MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fX0pO3ZhciBjYz1mLm5vdygpLGNkPS8oXD0pXD8oJnwkKXxcP1w/L2k7Zi5hamF4U2V0dXAoe2pzb25wOiJjYWxsYmFjayIsanNvbnBDYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiBmLmV4cGFuZG8rIl8iK2NjKyt9fSksZi5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihiLGMsZCl7dmFyIGU9dHlwZW9mIGIuZGF0YT09InN0cmluZyImJi9eYXBwbGljYXRpb25cL3hcLXd3d1wtZm9ybVwtdXJsZW5jb2RlZC8udGVzdChiLmNvbnRlbnRUeXBlKTtpZihiLmRhdGFUeXBlc1swXT09PSJqc29ucCJ8fGIuanNvbnAhPT0hMSYmKGNkLnRlc3QoYi51cmwpfHxlJiZjZC50ZXN0KGIuZGF0YSkpKXt2YXIgZyxoPWIuanNvbnBDYWxsYmFjaz1mLmlzRnVuY3Rpb24oYi5qc29ucENhbGxiYWNrKT9iLmpzb25wQ2FsbGJhY2soKTpiLmpzb25wQ2FsbGJhY2ssaT1hW2hdLGo9Yi51cmwsaz1iLmRhdGEsbD0iJDEiK2grIiQyIjtiLmpzb25wIT09ITEmJihqPWoucmVwbGFjZShjZCxsKSxiLnVybD09PWomJihlJiYoaz1rLnJlcGxhY2UoY2QsbCkpLGIuZGF0YT09PWsmJihqKz0oL1w/Ly50ZXN0KGopPyImIjoiPyIpK2IuanNvbnArIj0iK2gpKSksYi51cmw9aixiLmRhdGE9ayxhW2hdPWZ1bmN0aW9uKGEpe2c9W2FdfSxkLmFsd2F5cyhmdW5jdGlvbigpe2FbaF09aSxnJiZmLmlzRnVuY3Rpb24oaSkmJmFbaF0oZ1swXSl9KSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtnfHxmLmVycm9yKGgrIiB3YXMgbm90IGNhbGxlZCIpO3JldHVybiBnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiI7cmV0dXJuInNjcmlwdCJ9fSksZi5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9qYXZhc2NyaXB0fGVjbWFzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe2YuZ2xvYmFsRXZhbChhKTtyZXR1cm4gYX19fSksZi5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe2EuY2FjaGU9PT1iJiYoYS5jYWNoZT0hMSksYS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIixhLmdsb2JhbD0hMSl9KSxmLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oYSl7aWYoYS5jcm9zc0RvbWFpbil7dmFyIGQsZT1jLmhlYWR8fGMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8Yy5kb2N1bWVudEVsZW1lbnQ7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZixnKXtkPWMuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksZC5hc3luYz0iYXN5bmMiLGEuc2NyaXB0Q2hhcnNldCYmKGQuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGQuc3JjPWEudXJsLGQub25sb2FkPWQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7aWYoY3x8IWQucmVhZHlTdGF0ZXx8L2xvYWRlZHxjb21wbGV0ZS8udGVzdChkLnJlYWR5U3RhdGUpKWQub25sb2FkPWQub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsZSYmZC5wYXJlbnROb2RlJiZlLnJlbW92ZUNoaWxkKGQpLGQ9YixjfHxnKDIwMCwic3VjY2VzcyIpfSxlLmluc2VydEJlZm9yZShkLGUuZmlyc3RDaGlsZCl9LGFib3J0OmZ1bmN0aW9uKCl7ZCYmZC5vbmxvYWQoMCwxKX19fX0pO3ZhciBjZT1hLkFjdGl2ZVhPYmplY3Q/ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gY2cpY2dbYV0oMCwxKX06ITEsY2Y9MCxjZztmLmFqYXhTZXR0aW5ncy54aHI9YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmY2goKXx8Y2koKX06Y2gsZnVuY3Rpb24oYSl7Zi5leHRlbmQoZi5zdXBwb3J0LHthamF4OiEhYSxjb3JzOiEhYSYmIndpdGhDcmVkZW50aWFscyJpbiBhfSl9KGYuYWpheFNldHRpbmdzLnhocigpKSxmLnN1cHBvcnQuYWpheCYmZi5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGMpe2lmKCFjLmNyb3NzRG9tYWlufHxmLnN1cHBvcnQuY29ycyl7dmFyIGQ7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSxnKXt2YXIgaD1jLnhocigpLGksajtjLnVzZXJuYW1lP2gub3BlbihjLnR5cGUsYy51cmwsYy5hc3luYyxjLnVzZXJuYW1lLGMucGFzc3dvcmQpOmgub3BlbihjLnR5cGUsYy51cmwsYy5hc3luYyk7aWYoYy54aHJGaWVsZHMpZm9yKGogaW4gYy54aHJGaWVsZHMpaFtqXT1jLnhockZpZWxkc1tqXTtjLm1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUmJmgub3ZlcnJpZGVNaW1lVHlwZShjLm1pbWVUeXBlKSwhYy5jcm9zc0RvbWFpbiYmIWVbIlgtUmVxdWVzdGVkLVdpdGgiXSYmKGVbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTt0cnl7Zm9yKGogaW4gZSloLnNldFJlcXVlc3RIZWFkZXIoaixlW2pdKX1jYXRjaChrKXt9aC5zZW5kKGMuaGFzQ29udGVudCYmYy5kYXRhfHxudWxsKSxkPWZ1bmN0aW9uKGEsZSl7dmFyIGosayxsLG0sbjt0cnl7aWYoZCYmKGV8fGgucmVhZHlTdGF0ZT09PTQpKXtkPWIsaSYmKGgub25yZWFkeXN0YXRlY2hhbmdlPWYubm9vcCxjZSYmZGVsZXRlIGNnW2ldKTtpZihlKWgucmVhZHlTdGF0ZSE9PTQmJmguYWJvcnQoKTtlbHNle2o9aC5zdGF0dXMsbD1oLmdldEFsbFJlc3BvbnNlSGVhZGVycygpLG09e30sbj1oLnJlc3BvbnNlWE1MLG4mJm4uZG9jdW1lbnRFbGVtZW50JiYobS54bWw9bik7dHJ5e20udGV4dD1oLnJlc3BvbnNlVGV4dH1jYXRjaChhKXt9dHJ5e2s9aC5zdGF0dXNUZXh0fWNhdGNoKG8pe2s9IiJ9IWomJmMuaXNMb2NhbCYmIWMuY3Jvc3NEb21haW4/aj1tLnRleHQ/MjAwOjQwNDpqPT09MTIyMyYmKGo9MjA0KX19fWNhdGNoKHApe2V8fGcoLTEscCl9bSYmZyhqLGssbSxsKX0sIWMuYXN5bmN8fGgucmVhZHlTdGF0ZT09PTQ/ZCgpOihpPSsrY2YsY2UmJihjZ3x8KGNnPXt9LGYoYSkudW5sb2FkKGNlKSksY2dbaV09ZCksaC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZCl9LGFib3J0OmZ1bmN0aW9uKCl7ZCYmZCgwLDEpfX19fSk7dmFyIGNqPXt9LGNrLGNsLGNtPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxjbj0vXihbK1wtXT0pPyhbXGQrLlwtXSspKFthLXolXSopJC9pLGNvLGNwPVtbImhlaWdodCIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIl0sWyJ3aWR0aCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0Il0sWyJvcGFjaXR5Il1dLGNxO2YuZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO2lmKGF8fGE9PT0wKXJldHVybiB0aGlzLmFuaW1hdGUoY3QoInNob3ciLDMpLGEsYixjKTtmb3IodmFyIGc9MCxoPXRoaXMubGVuZ3RoO2c8aDtnKyspZD10aGlzW2ddLGQuc3R5bGUmJihlPWQuc3R5bGUuZGlzcGxheSwhZi5fZGF0YShkLCJvbGRkaXNwbGF5IikmJmU9PT0ibm9uZSImJihlPWQuc3R5bGUuZGlzcGxheT0iIiksKGU9PT0iIiYmZi5jc3MoZCwiZGlzcGxheSIpPT09Im5vbmUifHwhZi5jb250YWlucyhkLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGQpKSYmZi5fZGF0YShkLCJvbGRkaXNwbGF5IixjdShkLm5vZGVOYW1lKSkpO2ZvcihnPTA7ZzxoO2crKyl7ZD10aGlzW2ddO2lmKGQuc3R5bGUpe2U9ZC5zdHlsZS5kaXNwbGF5O2lmKGU9PT0iInx8ZT09PSJub25lIilkLnN0eWxlLmRpc3BsYXk9Zi5fZGF0YShkLCJvbGRkaXNwbGF5Iil8fCIifX1yZXR1cm4gdGhpc30saGlkZTpmdW5jdGlvbihhLGIsYyl7aWYoYXx8YT09PTApcmV0dXJuIHRoaXMuYW5pbWF0ZShjdCgiaGlkZSIsMyksYSxiLGMpO3ZhciBkLGUsZz0wLGg9dGhpcy5sZW5ndGg7Zm9yKDtnPGg7ZysrKWQ9dGhpc1tnXSxkLnN0eWxlJiYoZT1mLmNzcyhkLCJkaXNwbGF5IiksZSE9PSJub25lIiYmIWYuX2RhdGEoZCwib2xkZGlzcGxheSIpJiZmLl9kYXRhKGQsIm9sZGRpc3BsYXkiLGUpKTtmb3IoZz0wO2c8aDtnKyspdGhpc1tnXS5zdHlsZSYmKHRoaXNbZ10uc3R5bGUuZGlzcGxheT0ibm9uZSIpO3JldHVybiB0aGlzfSxfdG9nZ2xlOmYuZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dHlwZW9mIGE9PSJib29sZWFuIjtmLmlzRnVuY3Rpb24oYSkmJmYuaXNGdW5jdGlvbihiKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpOmE9PW51bGx8fGQ/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ZD9hOmYodGhpcykuaXMoIjpoaWRkZW4iKTtmKHRoaXMpW2I/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZShjdCgidG9nZ2xlIiwzKSxhLGIsYyk7cmV0dXJuIHRoaXN9LGZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoIjpoaWRkZW4iKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxkKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBnKCl7ZS5xdWV1ZT09PSExJiZmLl9tYXJrKHRoaXMpO3ZhciBiPWYuZXh0ZW5kKHt9LGUpLGM9dGhpcy5ub2RlVHlwZT09PTEsZD1jJiZmKHRoaXMpLmlzKCI6aGlkZGVuIiksZyxoLGksaixrLGwsbSxuLG8scCxxO2IuYW5pbWF0ZWRQcm9wZXJ0aWVzPXt9O2ZvcihpIGluIGEpe2c9Zi5jYW1lbENhc2UoaSksaSE9PWcmJihhW2ddPWFbaV0sZGVsZXRlIGFbaV0pO2lmKChrPWYuY3NzSG9va3NbZ10pJiYiZXhwYW5kImluIGspe2w9ay5leHBhbmQoYVtnXSksZGVsZXRlIGFbZ107Zm9yKGkgaW4gbClpIGluIGF8fChhW2ldPWxbaV0pfX1mb3IoZyBpbiBhKXtoPWFbZ10sZi5pc0FycmF5KGgpPyhiLmFuaW1hdGVkUHJvcGVydGllc1tnXT1oWzFdLGg9YVtnXT1oWzBdKTpiLmFuaW1hdGVkUHJvcGVydGllc1tnXT1iLnNwZWNpYWxFYXNpbmcmJmIuc3BlY2lhbEVhc2luZ1tnXXx8Yi5lYXNpbmd8fCJzd2luZyI7aWYoaD09PSJoaWRlIiYmZHx8aD09PSJzaG93IiYmIWQpcmV0dXJuIGIuY29tcGxldGUuY2FsbCh0aGlzKTtjJiYoZz09PSJoZWlnaHQifHxnPT09IndpZHRoIikmJihiLm92ZXJmbG93PVt0aGlzLnN0eWxlLm92ZXJmbG93LHRoaXMuc3R5bGUub3ZlcmZsb3dYLHRoaXMuc3R5bGUub3ZlcmZsb3dZXSxmLmNzcyh0aGlzLCJkaXNwbGF5Iik9PT0iaW5saW5lIiYmZi5jc3ModGhpcywiZmxvYXQiKT09PSJub25lIiYmKCFmLnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dHx8Y3UodGhpcy5ub2RlTmFtZSk9PT0iaW5saW5lIj90aGlzLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayI6dGhpcy5zdHlsZS56b29tPTEpKX1iLm92ZXJmbG93IT1udWxsJiYodGhpcy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIik7Zm9yKGkgaW4gYSlqPW5ldyBmLmZ4KHRoaXMsYixpKSxoPWFbaV0sY20udGVzdChoKT8ocT1mLl9kYXRhKHRoaXMsInRvZ2dsZSIraSl8fChoPT09InRvZ2dsZSI/ZD8ic2hvdyI6ImhpZGUiOjApLHE/KGYuX2RhdGEodGhpcywidG9nZ2xlIitpLHE9PT0ic2hvdyI/ImhpZGUiOiJzaG93IiksaltxXSgpKTpqW2hdKCkpOihtPWNuLmV4ZWMoaCksbj1qLmN1cigpLG0/KG89cGFyc2VGbG9hdChtWzJdKSxwPW1bM118fChmLmNzc051bWJlcltpXT8iIjoicHgiKSxwIT09InB4IiYmKGYuc3R5bGUodGhpcyxpLChvfHwxKStwKSxuPShvfHwxKS9qLmN1cigpKm4sZi5zdHlsZSh0aGlzLGksbitwKSksbVsxXSYmKG89KG1bMV09PT0iLT0iPy0xOjEpKm8rbiksai5jdXN0b20obixvLHApKTpqLmN1c3RvbShuLGgsIiIpKTtyZXR1cm4hMH12YXIgZT1mLnNwZWVkKGIsYyxkKTtpZihmLmlzRW1wdHlPYmplY3QoYSkpcmV0dXJuIHRoaXMuZWFjaChlLmNvbXBsZXRlLFshMV0pO2E9Zi5leHRlbmQoe30sYSk7cmV0dXJuIGUucXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5xdWV1ZShlLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYyxkKXt0eXBlb2YgYSE9InN0cmluZyImJihkPWMsYz1hLGE9YiksYyYmYSE9PSExJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBoKGEsYixjKXt2YXIgZT1iW2NdO2YucmVtb3ZlRGF0YShhLGMsITApLGUuc3RvcChkKX12YXIgYixjPSExLGU9Zi50aW1lcnMsZz1mLl9kYXRhKHRoaXMpO2R8fGYuX3VubWFyayghMCx0aGlzKTtpZihhPT1udWxsKWZvcihiIGluIGcpZ1tiXSYmZ1tiXS5zdG9wJiZiLmluZGV4T2YoIi5ydW4iKT09PWIubGVuZ3RoLTQmJmgodGhpcyxnLGIpO2Vsc2UgZ1tiPWErIi5ydW4iXSYmZ1tiXS5zdG9wJiZoKHRoaXMsZyxiKTtmb3IoYj1lLmxlbmd0aDtiLS07KWVbYl0uZWxlbT09PXRoaXMmJihhPT1udWxsfHxlW2JdLnF1ZXVlPT09YSkmJihkP2VbYl0oITApOmVbYl0uc2F2ZVN0YXRlKCksYz0hMCxlLnNwbGljZShiLDEpKTsoIWR8fCFjKSYmZi5kZXF1ZXVlKHRoaXMsYSl9KX19KSxmLmVhY2goe3NsaWRlRG93bjpjdCgic2hvdyIsMSksc2xpZGVVcDpjdCgiaGlkZSIsMSksc2xpZGVUb2dnbGU6Y3QoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbihhLGIpe2YuZm5bYV09ZnVuY3Rpb24oYSxjLGQpe3JldHVybiB0aGlzLmFuaW1hdGUoYixhLGMsZCl9fSksZi5leHRlbmQoe3NwZWVkOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hJiZ0eXBlb2YgYT09Im9iamVjdCI/Zi5leHRlbmQoe30sYSk6e2NvbXBsZXRlOmN8fCFjJiZifHxmLmlzRnVuY3Rpb24oYSkmJmEsZHVyYXRpb246YSxlYXNpbmc6YyYmYnx8YiYmIWYuaXNGdW5jdGlvbihiKSYmYn07ZC5kdXJhdGlvbj1mLmZ4Lm9mZj8wOnR5cGVvZiBkLmR1cmF0aW9uPT0ibnVtYmVyIj9kLmR1cmF0aW9uOmQuZHVyYXRpb24gaW4gZi5meC5zcGVlZHM/Zi5meC5zcGVlZHNbZC5kdXJhdGlvbl06Zi5meC5zcGVlZHMuX2RlZmF1bHQ7aWYoZC5xdWV1ZT09bnVsbHx8ZC5xdWV1ZT09PSEwKWQucXVldWU9ImZ4IjtkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oYSl7Zi5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlP2YuZGVxdWV1ZSh0aGlzLGQucXVldWUpOmEhPT0hMSYmZi5fdW5tYXJrKHRoaXMpfTtyZXR1cm4gZH0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHN3aW5nOmZ1bmN0aW9uKGEpe3JldHVybi1NYXRoLmNvcyhhKk1hdGguUEkpLzIrLjV9fSx0aW1lcnM6W10sZng6ZnVuY3Rpb24oYSxiLGMpe3RoaXMub3B0aW9ucz1iLHRoaXMuZWxlbT1hLHRoaXMucHJvcD1jLGIub3JpZz1iLm9yaWd8fHt9fX0pLGYuZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksKGYuZnguc3RlcFt0aGlzLnByb3BdfHxmLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpfSxjdXI6ZnVuY3Rpb24oKXtpZih0aGlzLmVsZW1bdGhpcy5wcm9wXSE9bnVsbCYmKCF0aGlzLmVsZW0uc3R5bGV8fHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdPT1udWxsKSlyZXR1cm4gdGhpcy5lbGVtW3RoaXMucHJvcF07dmFyIGEsYj1mLmNzcyh0aGlzLmVsZW0sdGhpcy5wcm9wKTtyZXR1cm4gaXNOYU4oYT1wYXJzZUZsb2F0KGIpKT8hYnx8Yj09PSJhdXRvIj8wOmI6YX0sY3VzdG9tOmZ1bmN0aW9uKGEsYyxkKXtmdW5jdGlvbiBoKGEpe3JldHVybiBlLnN0ZXAoYSl9dmFyIGU9dGhpcyxnPWYuZng7dGhpcy5zdGFydFRpbWU9Y3F8fGNyKCksdGhpcy5lbmQ9Yyx0aGlzLm5vdz10aGlzLnN0YXJ0PWEsdGhpcy5wb3M9dGhpcy5zdGF0ZT0wLHRoaXMudW5pdD1kfHx0aGlzLnVuaXR8fChmLmNzc051bWJlclt0aGlzLnByb3BdPyIiOiJweCIpLGgucXVldWU9dGhpcy5vcHRpb25zLnF1ZXVlLGguZWxlbT10aGlzLmVsZW0saC5zYXZlU3RhdGU9ZnVuY3Rpb24oKXtmLl9kYXRhKGUuZWxlbSwiZnhzaG93IitlLnByb3ApPT09YiYmKGUub3B0aW9ucy5oaWRlP2YuX2RhdGEoZS5lbGVtLCJmeHNob3ciK2UucHJvcCxlLnN0YXJ0KTplLm9wdGlvbnMuc2hvdyYmZi5fZGF0YShlLmVsZW0sImZ4c2hvdyIrZS5wcm9wLGUuZW5kKSl9LGgoKSYmZi50aW1lcnMucHVzaChoKSYmIWNvJiYoY289c2V0SW50ZXJ2YWwoZy50aWNrLGcuaW50ZXJ2YWwpKX0sc2hvdzpmdW5jdGlvbigpe3ZhciBhPWYuX2RhdGEodGhpcy5lbGVtLCJmeHNob3ciK3RoaXMucHJvcCk7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1hfHxmLnN0eWxlKHRoaXMuZWxlbSx0aGlzLnByb3ApLHRoaXMub3B0aW9ucy5zaG93PSEwLGEhPT1iP3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksYSk6dGhpcy5jdXN0b20odGhpcy5wcm9wPT09IndpZHRoInx8dGhpcy5wcm9wPT09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpLGYodGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWYuX2RhdGEodGhpcy5lbGVtLCJmeHNob3ciK3RoaXMucHJvcCl8fGYuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCksdGhpcy5vcHRpb25zLmhpZGU9ITAsdGhpcy5jdXN0b20odGhpcy5jdXIoKSwwKX0sc3RlcDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT1jcXx8Y3IoKSxnPSEwLGg9dGhpcy5lbGVtLGk9dGhpcy5vcHRpb25zO2lmKGF8fGU+PWkuZHVyYXRpb24rdGhpcy5zdGFydFRpbWUpe3RoaXMubm93PXRoaXMuZW5kLHRoaXMucG9zPXRoaXMuc3RhdGU9MSx0aGlzLnVwZGF0ZSgpLGkuYW5pbWF0ZWRQcm9wZXJ0aWVzW3RoaXMucHJvcF09ITA7Zm9yKGIgaW4gaS5hbmltYXRlZFByb3BlcnRpZXMpaS5hbmltYXRlZFByb3BlcnRpZXNbYl0hPT0hMCYmKGc9ITEpO2lmKGcpe2kub3ZlcmZsb3chPW51bGwmJiFmLnN1cHBvcnQuc2hyaW5rV3JhcEJsb2NrcyYmZi5lYWNoKFsiIiwiWCIsIlkiXSxmdW5jdGlvbihhLGIpe2guc3R5bGVbIm92ZXJmbG93IitiXT1pLm92ZXJmbG93W2FdfSksaS5oaWRlJiZmKGgpLmhpZGUoKTtpZihpLmhpZGV8fGkuc2hvdylmb3IoYiBpbiBpLmFuaW1hdGVkUHJvcGVydGllcylmLnN0eWxlKGgsYixpLm9yaWdbYl0pLGYucmVtb3ZlRGF0YShoLCJmeHNob3ciK2IsITApLGYucmVtb3ZlRGF0YShoLCJ0b2dnbGUiK2IsITApO2Q9aS5jb21wbGV0ZSxkJiYoaS5jb21wbGV0ZT0hMSxkLmNhbGwoaCkpfXJldHVybiExfWkuZHVyYXRpb249PUluZmluaXR5P3RoaXMubm93PWU6KGM9ZS10aGlzLnN0YXJ0VGltZSx0aGlzLnN0YXRlPWMvaS5kdXJhdGlvbix0aGlzLnBvcz1mLmVhc2luZ1tpLmFuaW1hdGVkUHJvcGVydGllc1t0aGlzLnByb3BdXSh0aGlzLnN0YXRlLGMsMCwxLGkuZHVyYXRpb24pLHRoaXMubm93PXRoaXMuc3RhcnQrKHRoaXMuZW5kLXRoaXMuc3RhcnQpKnRoaXMucG9zKSx0aGlzLnVwZGF0ZSgpO3JldHVybiEwfX0sZi5leHRlbmQoZi5meCx7dGljazpmdW5jdGlvbigpe3ZhciBhLGI9Zi50aW1lcnMsYz0wO2Zvcig7YzxiLmxlbmd0aDtjKyspYT1iW2NdLCFhKCkmJmJbY109PT1hJiZiLnNwbGljZShjLS0sMSk7Yi5sZW5ndGh8fGYuZnguc3RvcCgpfSxpbnRlcnZhbDoxMyxzdG9wOmZ1bmN0aW9uKCl7Y2xlYXJJbnRlcnZhbChjbyksY289bnVsbH0sc3BlZWRzOntzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LHN0ZXA6e29wYWNpdHk6ZnVuY3Rpb24oYSl7Zi5zdHlsZShhLmVsZW0sIm9wYWNpdHkiLGEubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7YS5lbGVtLnN0eWxlJiZhLmVsZW0uc3R5bGVbYS5wcm9wXSE9bnVsbD9hLmVsZW0uc3R5bGVbYS5wcm9wXT1hLm5vdythLnVuaXQ6YS5lbGVtW2EucHJvcF09YS5ub3d9fX0pLGYuZWFjaChjcC5jb25jYXQuYXBwbHkoW10sY3ApLGZ1bmN0aW9uKGEsYil7Yi5pbmRleE9mKCJtYXJnaW4iKSYmKGYuZnguc3RlcFtiXT1mdW5jdGlvbihhKXtmLnN0eWxlKGEuZWxlbSxiLE1hdGgubWF4KDAsYS5ub3cpK2EudW5pdCl9KX0pLGYuZXhwciYmZi5leHByLmZpbHRlcnMmJihmLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gZi5ncmVwKGYudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofSk7dmFyIGN2LGN3PS9edCg/OmFibGV8ZHxoKSQvaSxjeD0vXig/OmJvZHl8aHRtbCkkL2k7ImdldEJvdW5kaW5nQ2xpZW50UmVjdCJpbiBjLmRvY3VtZW50RWxlbWVudD9jdj1mdW5jdGlvbihhLGIsYyxkKXt0cnl7ZD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKGUpe31pZighZHx8IWYuY29udGFpbnMoYyxhKSlyZXR1cm4gZD97dG9wOmQudG9wLGxlZnQ6ZC5sZWZ0fTp7dG9wOjAsbGVmdDowfTt2YXIgZz1iLmJvZHksaD1jeShiKSxpPWMuY2xpZW50VG9wfHxnLmNsaWVudFRvcHx8MCxqPWMuY2xpZW50TGVmdHx8Zy5jbGllbnRMZWZ0fHwwLGs9aC5wYWdlWU9mZnNldHx8Zi5zdXBwb3J0LmJveE1vZGVsJiZjLnNjcm9sbFRvcHx8Zy5zY3JvbGxUb3AsbD1oLnBhZ2VYT2Zmc2V0fHxmLnN1cHBvcnQuYm94TW9kZWwmJmMuc2Nyb2xsTGVmdHx8Zy5zY3JvbGxMZWZ0LG09ZC50b3Aray1pLG49ZC5sZWZ0K2wtajtyZXR1cm57dG9wOm0sbGVmdDpufX06Y3Y9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9YS5vZmZzZXRQYXJlbnQsZz1hLGg9Yi5ib2R5LGk9Yi5kZWZhdWx0VmlldyxqPWk/aS5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCk6YS5jdXJyZW50U3R5bGUsaz1hLm9mZnNldFRvcCxsPWEub2Zmc2V0TGVmdDt3aGlsZSgoYT1hLnBhcmVudE5vZGUpJiZhIT09aCYmYSE9PWMpe2lmKGYuc3VwcG9ydC5maXhlZFBvc2l0aW9uJiZqLnBvc2l0aW9uPT09ImZpeGVkIilicmVhaztkPWk/aS5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCk6YS5jdXJyZW50U3R5bGUsay09YS5zY3JvbGxUb3AsbC09YS5zY3JvbGxMZWZ0LGE9PT1lJiYoays9YS5vZmZzZXRUb3AsbCs9YS5vZmZzZXRMZWZ0LGYuc3VwcG9ydC5kb2VzTm90QWRkQm9yZGVyJiYoIWYuc3VwcG9ydC5kb2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxsc3x8IWN3LnRlc3QoYS5ub2RlTmFtZSkpJiYoays9cGFyc2VGbG9hdChkLmJvcmRlclRvcFdpZHRoKXx8MCxsKz1wYXJzZUZsb2F0KGQuYm9yZGVyTGVmdFdpZHRoKXx8MCksZz1lLGU9YS5vZmZzZXRQYXJlbnQpLGYuc3VwcG9ydC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUmJmQub3ZlcmZsb3chPT0idmlzaWJsZSImJihrKz1wYXJzZUZsb2F0KGQuYm9yZGVyVG9wV2lkdGgpfHwwLGwrPXBhcnNlRmxvYXQoZC5ib3JkZXJMZWZ0V2lkdGgpfHwwKSxqPWR9aWYoai5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fGoucG9zaXRpb249PT0ic3RhdGljIilrKz1oLm9mZnNldFRvcCxsKz1oLm9mZnNldExlZnQ7Zi5zdXBwb3J0LmZpeGVkUG9zaXRpb24mJmoucG9zaXRpb249PT0iZml4ZWQiJiYoays9TWF0aC5tYXgoYy5zY3JvbGxUb3AsaC5zY3JvbGxUb3ApLGwrPU1hdGgubWF4KGMuc2Nyb2xsTGVmdCxoLnNjcm9sbExlZnQpKTtyZXR1cm57dG9wOmssbGVmdDpsfX0sZi5mbi5vZmZzZXQ9ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gYT09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oYil7Zi5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsYSxiKX0pO3ZhciBjPXRoaXNbMF0sZD1jJiZjLm93bmVyRG9jdW1lbnQ7aWYoIWQpcmV0dXJuIG51bGw7aWYoYz09PWQuYm9keSlyZXR1cm4gZi5vZmZzZXQuYm9keU9mZnNldChjKTtyZXR1cm4gY3YoYyxkLGQuZG9jdW1lbnRFbGVtZW50KX0sZi5vZmZzZXQ9e2JvZHlPZmZzZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5vZmZzZXRUb3AsYz1hLm9mZnNldExlZnQ7Zi5zdXBwb3J0LmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0JiYoYis9cGFyc2VGbG9hdChmLmNzcyhhLCJtYXJnaW5Ub3AiKSl8fDAsYys9cGFyc2VGbG9hdChmLmNzcyhhLCJtYXJnaW5MZWZ0IikpfHwwKTtyZXR1cm57dG9wOmIsbGVmdDpjfX0sc2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1mLmNzcyhhLCJwb3NpdGlvbiIpO2Q9PT0ic3RhdGljIiYmKGEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIik7dmFyIGU9ZihhKSxnPWUub2Zmc2V0KCksaD1mLmNzcyhhLCJ0b3AiKSxpPWYuY3NzKGEsImxlZnQiKSxqPShkPT09ImFic29sdXRlInx8ZD09PSJmaXhlZCIpJiZmLmluQXJyYXkoImF1dG8iLFtoLGldKT4tMSxrPXt9LGw9e30sbSxuO2o/KGw9ZS5wb3NpdGlvbigpLG09bC50b3Asbj1sLmxlZnQpOihtPXBhcnNlRmxvYXQoaCl8fDAsbj1wYXJzZUZsb2F0KGkpfHwwKSxmLmlzRnVuY3Rpb24oYikmJihiPWIuY2FsbChhLGMsZykpLGIudG9wIT1udWxsJiYoay50b3A9Yi50b3AtZy50b3ArbSksYi5sZWZ0IT1udWxsJiYoay5sZWZ0PWIubGVmdC1nLmxlZnQrbiksInVzaW5nImluIGI/Yi51c2luZy5jYWxsKGEsayk6ZS5jc3Moayl9fSxmLmZuLmV4dGVuZCh7cG9zaXRpb246ZnVuY3Rpb24oKXtpZighdGhpc1swXSlyZXR1cm4gbnVsbDt2YXIgYT10aGlzWzBdLGI9dGhpcy5vZmZzZXRQYXJlbnQoKSxjPXRoaXMub2Zmc2V0KCksZD1jeC50ZXN0KGJbMF0ubm9kZU5hbWUpP3t0b3A6MCxsZWZ0OjB9OmIub2Zmc2V0KCk7Yy50b3AtPXBhcnNlRmxvYXQoZi5jc3MoYSwibWFyZ2luVG9wIikpfHwwLGMubGVmdC09cGFyc2VGbG9hdChmLmNzcyhhLCJtYXJnaW5MZWZ0IikpfHwwLGQudG9wKz1wYXJzZUZsb2F0KGYuY3NzKGJbMF0sImJvcmRlclRvcFdpZHRoIikpfHwwLGQubGVmdCs9cGFyc2VGbG9hdChmLmNzcyhiWzBdLCJib3JkZXJMZWZ0V2lkdGgiKSl8fDA7cmV0dXJue3RvcDpjLnRvcC1kLnRvcCxsZWZ0OmMubGVmdC1kLmxlZnR9fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudHx8Yy5ib2R5O3doaWxlKGEmJiFjeC50ZXN0KGEubm9kZU5hbWUpJiZmLmNzcyhhLCJwb3NpdGlvbiIpPT09InN0YXRpYyIpYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gYX0pfX0pLGYuZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGMpe3ZhciBkPS9ZLy50ZXN0KGMpO2YuZm5bYV09ZnVuY3Rpb24oZSl7cmV0dXJuIGYuYWNjZXNzKHRoaXMsZnVuY3Rpb24oYSxlLGcpe3ZhciBoPWN5KGEpO2lmKGc9PT1iKXJldHVybiBoP2MgaW4gaD9oW2NdOmYuc3VwcG9ydC5ib3hNb2RlbCYmaC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbZV18fGguZG9jdW1lbnQuYm9keVtlXTphW2VdO2g/aC5zY3JvbGxUbyhkP2YoaCkuc2Nyb2xsTGVmdCgpOmcsZD9nOmYoaCkuc2Nyb2xsVG9wKCkpOmFbZV09Z30sYSxlLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksZi5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24oYSxjKXt2YXIgZD0iY2xpZW50IithLGU9InNjcm9sbCIrYSxnPSJvZmZzZXQiK2E7Zi5mblsiaW5uZXIiK2FdPWZ1bmN0aW9uKCl7dmFyIGE9dGhpc1swXTtyZXR1cm4gYT9hLnN0eWxlP3BhcnNlRmxvYXQoZi5jc3MoYSxjLCJwYWRkaW5nIikpOnRoaXNbY10oKTpudWxsfSxmLmZuWyJvdXRlciIrYV09ZnVuY3Rpb24oYSl7dmFyIGI9dGhpc1swXTtyZXR1cm4gYj9iLnN0eWxlP3BhcnNlRmxvYXQoZi5jc3MoYixjLGE/Im1hcmdpbiI6ImJvcmRlciIpKTp0aGlzW2NdKCk6bnVsbH0sZi5mbltjXT1mdW5jdGlvbihhKXtyZXR1cm4gZi5hY2Nlc3ModGhpcyxmdW5jdGlvbihhLGMsaCl7dmFyIGksaixrLGw7aWYoZi5pc1dpbmRvdyhhKSl7aT1hLmRvY3VtZW50LGo9aS5kb2N1bWVudEVsZW1lbnRbZF07cmV0dXJuIGYuc3VwcG9ydC5ib3hNb2RlbCYmanx8aS5ib2R5JiZpLmJvZHlbZF18fGp9aWYoYS5ub2RlVHlwZT09PTkpe2k9YS5kb2N1bWVudEVsZW1lbnQ7aWYoaVtkXT49aVtlXSlyZXR1cm4gaVtkXTtyZXR1cm4gTWF0aC5tYXgoYS5ib2R5W2VdLGlbZV0sYS5ib2R5W2ddLGlbZ10pfWlmKGg9PT1iKXtrPWYuY3NzKGEsYyksbD1wYXJzZUZsb2F0KGspO3JldHVybiBmLmlzTnVtZXJpYyhsKT9sOmt9ZihhKS5jc3MoYyxoKX0sYyxhLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksYS5qUXVlcnk9YS4kPWYsdHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZCYmZGVmaW5lLmFtZC5qUXVlcnkmJmRlZmluZSgianF1ZXJ5IixbXSxmdW5jdGlvbigpe3JldHVybiBmfSl9KSh3aW5kb3cpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/jq.onImgLoad.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIGpRdWVyeSAnb25JbWFnZXNMb2FkZWQnIHBsdWdpbiB2MS4yLjAgKFVwZGF0ZWQgRGVjZW1iZXIgMSwgMjAxMSkKICogRmlyZXMgY2FsbGJhY2sgZnVuY3Rpb25zIHdoZW4gaW1hZ2VzIGhhdmUgbG9hZGVkIHdpdGhpbiBhIHBhcnRpY3VsYXIgc2VsZWN0b3IuCiAqCiAqIENvcHlyaWdodCAoYykgQ2lya3VpdCBOZXR3b3JrcywgSW5jLiAoaHR0cDovL3d3dy5jaXJrdWl0Lm5ldCksIDIwMDgtMjAxMS4KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXM6CiAqICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKICogICBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwKICoKICogRm9yIGRvY3VtZW50YXRpb24gYW5kIHVzYWdlLCB2aXNpdCAiaHR0cDovL3d3dy5jaXJrdWl0Lm5ldC9wcm9qZWN0cy9qcXVlcnkvb25JbWFnZXNMb2FkLyIKICovCihmdW5jdGlvbigkKXsKICAgICQuZm4ub25JbWFnZXNMb2FkID0gZnVuY3Rpb24ob3B0aW9ucyl7CgkJLy92ZXJzaW9uIDEuMi4wIC0gaWYgJ29wdGlvbnMnIHBhcmFtZXRlciBpcyBhIGZ1bmN0aW9uLCB0cmVhdCBpdCBhcyB0aGUgImFsbCIgY2FsbGJhY2sKCQlpZih0eXBlb2Yob3B0aW9ucyk9PSJmdW5jdGlvbiIpewoJCQlvcHRpb25zID0gewoJCQkJYWxsIDogb3B0aW9ucwoJCQl9OwoJCX0KCQkKCQkvL21lcmdlIGluIGRlZmF1bHQgb3B0aW9ucwogICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICBzZWxmLm9wdHMgPSAkLmV4dGVuZCh7fSwgJC5mbi5vbkltYWdlc0xvYWQuZGVmYXVsdHMsIG9wdGlvbnMpOwoJCQoJCS8vcmV2ZXJzZSBjb21wYXRpYmlsaXR5IGZ1bmN0aW9uIG5hbWVzCgkJLy92ZXJzaW9uIDEuMi4wIC0gcmVuYW1lZCAic2VsZWN0b3JDYWxsYmFjayIgdG8gImFsbCIKCQlpZihzZWxmLm9wdHMuc2VsZWN0b3JDYWxsYmFjayAmJiAhc2VsZi5vcHRzLmFsbCl7CgkJCXNlbGYub3B0cy5hbGwgPSBzZWxmLm9wdHMuc2VsZWN0b3JDYWxsYmFjazsgCgkJfQoJCS8vdmVyc2lvbiAxLjIuMCAtIHJlbmFtZWQgIml0ZW1DYWxsYmFjayIgdG8gImVhY2giCgkJaWYoc2VsZi5vcHRzLml0ZW1DYWxsYmFjayAmJiAhc2VsZi5vcHRzLmVhY2gpewoJCQlzZWxmLm9wdHMuZWFjaCA9IHNlbGYub3B0cy5pdGVtQ2FsbGJhY2s7IAoJCX0KCQkKICAgICAgICBzZWxmLmJpbmRFdmVudHMgPSBmdW5jdGlvbigkaW1ncywgY29udGFpbmVyLCBjYWxsYmFjayl7CiAgICAgICAgICAgIGlmICgkaW1ncy5sZW5ndGggPT09IDApeyAvL25vIGltYWdlcyB3ZXJlIGluIHNlbGVjdGlvbi4gY2FsbGJhY2sgYmFzZWQgb24gb3B0aW9ucwogICAgICAgICAgICAgICAgaWYgKHNlbGYub3B0cy5jYWxsYmFja0lmTm9JbWFnZXNFeGlzdCAmJiBjYWxsYmFjayl7IGNhbGxiYWNrKGNvbnRhaW5lcik7IH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBsb2FkZWRJbWFnZXMgPSBbXTsKICAgICAgICAgICAgICAgIGlmICghJGltZ3MuanF1ZXJ5KXsgJGltZ3MgPSAkKCRpbWdzKTsgfQogICAgICAgICAgICAgICAgJGltZ3MuZWFjaChmdW5jdGlvbihpKXsKICAgICAgICAgICAgICAgICAgICAvL3dlYmtpdCBmaXggaW5zcGlyYXRpb24gdGhhbmtzIHRvIGJtc3Rlcmxpbmc6IGh0dHA6Ly9wbHVnaW5zLmpxdWVyeS5jb20vbm9kZS8xMDMxMgogICAgICAgICAgICAgICAgICAgIHZhciBvcmdTcmMgPSB0aGlzLnNyYzsKICAgICAgICAgICAgICAgICAgICBpZiAoISQuYnJvd3Nlci5tc2llKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3JjID0gImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8veXdBQUFBQUFRQUJBQUFDQVV3QU93PT0iOyAvL2llIHdpbGwgZG8gZnVua3kgdGhpbmdzIGlmIHRoaXMgaXMgaGVyZSAoc2hvdyB0aGUgaW1hZ2UgYXMgYW4gWCwgb25seSBzaG93IGhhbGYgb2YgdGhlIGltYWdlLCBldGMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICQodGhpcykKICAgICAgICAgICAgICAgICAgICAgICAgLmJpbmQoJ2Vycm9yJywgZnVuY3Rpb24oKSB7ICAvLyBlcnJvciBoYW5kbGluZyBhZGRlZCBieSBHZW9yZyBCdXNjaAoJCQkJCQkJaWYodHlwZW9mIHNlbGYub3B0cy5vbkVycm9yID09ICdmdW5jdGlvbicpCgkJCQkJCQkJc2VsZi5vcHRzLm9uRXJyb3IodGhpcyk7CgkJCQkJCQllbHNlCgkJCQkJCQkJJCh0aGlzKS5sb2FkKCk7CgkJCQkJCX0pCiAgICAgICAgICAgICAgICAgICAgICAgIC5iaW5kKCdsb2FkJywgZnVuY3Rpb24oKXsKCQkJCQkJCWlmIChqUXVlcnkuaW5BcnJheShpLCBsb2FkZWRJbWFnZXMpIDwgMCl7IC8vZG9uJ3QgZG91YmxlIGNvdW50IGltYWdlcwoJCQkJCQkJCWxvYWRlZEltYWdlcy5wdXNoKGkpOyAvL2tlZXAgYSByZWNvcmQgb2YgaW1hZ2VzIHdlJ3ZlIHNlZW4KCQkJCQkJCQlpZiAobG9hZGVkSW1hZ2VzLmxlbmd0aCA9PSAkaW1ncy5sZW5ndGgpewoJCQkJCQkJCQlpZiAoY2FsbGJhY2speyBjYWxsYmFjay5jYWxsKGNvbnRhaW5lciwgY29udGFpbmVyKTsgfQoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfSkKCQkJCQk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCEkLmJyb3dzZXIubXNpZSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNyYyA9IG9yZ1NyYzsgLy9uZWVkZWQgZm9yIHBvdGVudGlhbCBjYWNoZWQgaW1hZ2VzCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuY29tcGxldGUgfHwgdGhpcy5jb21wbGV0ZSA9PT0gdW5kZWZpbmVkKXsgdGhpcy5zcmMgPSBvcmdTcmM7IH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgdmFyIGltZ0FyeSA9IFtdOyAvL29ubHkgdXNlZCBpZiBzZWxmLm9wdHMuYWxsIGV4aXN0cwogICAgICAgIHNlbGYuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICBpZiAoc2VsZi5vcHRzLmVhY2gpewogICAgICAgICAgICAgICAgdmFyICRpbWdzOwogICAgICAgICAgICAgICAgaWYgKHRoaXMudGFnTmFtZSA9PSAiSU1HIil7ICRpbWdzID0gdGhpczsgfSAvL2lzIGFuIGltYWdlCiAgICAgICAgICAgICAgICBlbHNlIHsgJGltZ3MgPSAkKCdpbWcnLCB0aGlzKTsgfSAvL2NvbnRhaW5zIGltYWdlKHMpCiAgICAgICAgICAgICAgICBzZWxmLmJpbmRFdmVudHMoJGltZ3MsIHRoaXMsIHNlbGYub3B0cy5lYWNoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc2VsZi5vcHRzLmFsbCl7CiAgICAgICAgICAgICAgICBpZiAodGhpcy50YWdOYW1lID09ICJJTUciKXsgaW1nQXJ5LnB1c2godGhpcyk7IH0gLy9pcyBhbiBpbWFnZQogICAgICAgICAgICAgICAgZWxzZSB7IC8vY29udGFpbnMgaW1hZ2UocykKICAgICAgICAgICAgICAgICAgICAkKCdpbWcnLCB0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7IGltZ0FyeS5wdXNoKHRoaXMpOyB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIGlmIChzZWxmLm9wdHMuYWxsKXsgc2VsZi5iaW5kRXZlbnRzKGltZ0FyeSwgdGhpcywgc2VsZi5vcHRzLmFsbCk7IH0KCiAgICAgICAgcmV0dXJuIHNlbGYuZWFjaChmdW5jdGlvbigpe30pOyAvL2RvbnQgYnJlYWsgdGhlIGNoYWluCiAgICB9OwoKICAgIC8vREVGQVVMVCBPUFRPSU5TCiAgICAkLmZuLm9uSW1hZ2VzTG9hZC5kZWZhdWx0cyA9IHsKCQlvbkVycm9yOiBudWxsLAkJCQkJLy8gZXJyb3IgaGFuZGxpbmcgaWYgaW1hZ2UgY2Fubm90IGJlIGxvYWRlZDsgYWRkZWQgYnkgR2VvcmcgQnVzY2gKICAgICAgICBhbGw6IG51bGwsCQkJCQkJLy9mdW5jdGlvbiAtIHRoZSBmdW5jdGlvbiB0byBpbnZva2Ugd2hlbiBhbGwgaW1hZ2VzIHRoYXQgJCh5b3VyU2VsZWN0b3IpIGVuY2Fwc3VsdGFlcyBoYXZlIGxvYWRlZCAoaW52b2tlZCBvbmx5IG9uY2UgcGVyIHNlbGVjdG9yLiBzZWUgZG9jdW1lbnRhdGlvbikKICAgICAgICBlYWNoOiBudWxsLAkJCQkJCS8vZnVuY3Rpb24gLSB0aGUgZnVuY3Rpb24gdG8gaW52b2tlIHdoZW4gZWFjaCBpdGVtIHRoYXQgJCh5b3VyU2VsZWN0b3IpIGVuY2Fwc3VsdGFlcyBoYXMgbG9hZGVkIChpbnZva2VkIG9uZSBvciBtb3JlIHRpbWVzIGRlcGVuZGluZyBvbiBzZWxlY3Rvci4gc2VlIGRvY3VtZW50YXRpb24pCiAgICAgICAgY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3Q6IGZhbHNlCS8vYm9vbGVhbiAtIGlmIHRydWUsIHRoZSBjYWxsYmFja3Mgd2lsbCBiZSBpbnZva2VkIGV2ZW4gaWYgbm8gaW1hZ2VzIGV4aXN0IHdpdGhpbiAkKHlvdXJTZWxlY3RvcikuCgkJCQkJCQkJCQkvLwkJCWlmIGZhbHNlLCB0aGUgY2FsbGJhY2tzIHdpbGwgbm90IGJlIGludm9rZWQgaWYgbm8gaW1hZ2VzIGV4aXN0IHdpdGhpbiAkKHlvdXJTZWxlY3RvcikuCiAgICB9Owp9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/js/jq.onImgLoad.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIGpRdWVyeSAnb25JbWFnZXNMb2FkZWQnIHBsdWdpbiB2MS4yLjAgKFVwZGF0ZWQgRGVjZW1iZXIgMSwgMjAxMSkKICogRmlyZXMgY2FsbGJhY2sgZnVuY3Rpb25zIHdoZW4gaW1hZ2VzIGhhdmUgbG9hZGVkIHdpdGhpbiBhIHBhcnRpY3VsYXIgc2VsZWN0b3IuCiAqCiAqIENvcHlyaWdodCAoYykgQ2lya3VpdCBOZXR3b3JrcywgSW5jLiAoaHR0cDovL3d3dy5jaXJrdWl0Lm5ldCksIDIwMDgtMjAxMS4KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXM6CiAqICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKICogICBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwKICoKICogRm9yIGRvY3VtZW50YXRpb24gYW5kIHVzYWdlLCB2aXNpdCAiaHR0cDovL3d3dy5jaXJrdWl0Lm5ldC9wcm9qZWN0cy9qcXVlcnkvb25JbWFnZXNMb2FkLyIKICogTW9kaWZpZWQgYnkgR2VvcmcgQnVzY2ggKGFkZGVkIGVycm9yIGhhbmRsaW5nIGlmIGltYWdlIGlzdCBjb3JydXB0ZWQpCiAqLwooZnVuY3Rpb24oJCl7JC5mbi5vbkltYWdlc0xvYWQ9ZnVuY3Rpb24ob3B0aW9ucyl7aWYodHlwZW9mKG9wdGlvbnMpPT0iZnVuY3Rpb24iKXtvcHRpb25zPXthbGw6b3B0aW9uc319dmFyIHNlbGY9dGhpcztzZWxmLm9wdHM9JC5leHRlbmQoe30sJC5mbi5vbkltYWdlc0xvYWQuZGVmYXVsdHMsb3B0aW9ucyk7aWYoc2VsZi5vcHRzLnNlbGVjdG9yQ2FsbGJhY2smJiFzZWxmLm9wdHMuYWxsKXtzZWxmLm9wdHMuYWxsPXNlbGYub3B0cy5zZWxlY3RvckNhbGxiYWNrfWlmKHNlbGYub3B0cy5pdGVtQ2FsbGJhY2smJiFzZWxmLm9wdHMuZWFjaCl7c2VsZi5vcHRzLmVhY2g9c2VsZi5vcHRzLml0ZW1DYWxsYmFja31zZWxmLmJpbmRFdmVudHM9ZnVuY3Rpb24oJGltZ3MsY29udGFpbmVyLGNhbGxiYWNrKXtpZigkaW1ncy5sZW5ndGg9PT0wKXtpZihzZWxmLm9wdHMuY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3QmJmNhbGxiYWNrKXtjYWxsYmFjayhjb250YWluZXIpfX1lbHNle3ZhciBsb2FkZWRJbWFnZXM9W107aWYoISRpbWdzLmpxdWVyeSl7JGltZ3M9JCgkaW1ncyl9JGltZ3MuZWFjaChmdW5jdGlvbihpKXt2YXIgb3JnU3JjPXRoaXMuc3JjO2lmKCEkLmJyb3dzZXIubXNpZSl7dGhpcy5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8veXdBQUFBQUFRQUJBQUFDQVV3QU93PT0ifSQodGhpcykuYmluZCgnZXJyb3InLGZ1bmN0aW9uKCl7aWYodHlwZW9mIHNlbGYub3B0cy5vbkVycm9yPT0nZnVuY3Rpb24nKXNlbGYub3B0cy5vbkVycm9yKHRoaXMpO2Vsc2UgJCh0aGlzKS5sb2FkKCl9KS5iaW5kKCdsb2FkJyxmdW5jdGlvbigpe2lmKGpRdWVyeS5pbkFycmF5KGksbG9hZGVkSW1hZ2VzKTwwKXtsb2FkZWRJbWFnZXMucHVzaChpKTtpZihsb2FkZWRJbWFnZXMubGVuZ3RoPT0kaW1ncy5sZW5ndGgpe2lmKGNhbGxiYWNrKXtjYWxsYmFjay5jYWxsKGNvbnRhaW5lcixjb250YWluZXIpfX19fSk7aWYoISQuYnJvd3Nlci5tc2llKXt0aGlzLnNyYz1vcmdTcmN9ZWxzZSBpZih0aGlzLmNvbXBsZXRlfHx0aGlzLmNvbXBsZXRlPT09dW5kZWZpbmVkKXt0aGlzLnNyYz1vcmdTcmN9fSl9fTt2YXIgaW1nQXJ5PVtdO3NlbGYuZWFjaChmdW5jdGlvbigpe2lmKHNlbGYub3B0cy5lYWNoKXt2YXIgJGltZ3M7aWYodGhpcy50YWdOYW1lPT0iSU1HIil7JGltZ3M9dGhpc31lbHNleyRpbWdzPSQoJ2ltZycsdGhpcyl9c2VsZi5iaW5kRXZlbnRzKCRpbWdzLHRoaXMsc2VsZi5vcHRzLmVhY2gpfWlmKHNlbGYub3B0cy5hbGwpe2lmKHRoaXMudGFnTmFtZT09IklNRyIpe2ltZ0FyeS5wdXNoKHRoaXMpfWVsc2V7JCgnaW1nJyx0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7aW1nQXJ5LnB1c2godGhpcyl9KX19fSk7aWYoc2VsZi5vcHRzLmFsbCl7c2VsZi5iaW5kRXZlbnRzKGltZ0FyeSx0aGlzLHNlbGYub3B0cy5hbGwpfXJldHVybiBzZWxmLmVhY2goZnVuY3Rpb24oKXt9KX07JC5mbi5vbkltYWdlc0xvYWQuZGVmYXVsdHM9e29uRXJyb3I6bnVsbCxhbGw6bnVsbCxlYWNoOm51bGwsY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3Q6ZmFsc2V9fSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.button.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwDQoqIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LXVpDQoqIEluY2x1ZGVzOiBqcXVlcnkudWkuYnV0dG9uLmpzDQoqIENvcHlyaWdodCAoYykgMjAxMiBBVVRIT1JTLnR4dDsgTGljZW5zZWQgTUlULCBHUEwgKi8NCihmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIixoPSJ1aS1zdGF0ZS1ob3ZlciB1aS1zdGF0ZS1hY3RpdmUgIixpPSJ1aS1idXR0b24taWNvbnMtb25seSB1aS1idXR0b24taWNvbi1vbmx5IHVpLWJ1dHRvbi10ZXh0LWljb25zIHVpLWJ1dHRvbi10ZXh0LWljb24tcHJpbWFyeSB1aS1idXR0b24tdGV4dC1pY29uLXNlY29uZGFyeSB1aS1idXR0b24tdGV4dC1vbmx5IixqPWZ1bmN0aW9uKCl7dmFyIGI9YSh0aGlzKS5maW5kKCI6dWktYnV0dG9uIik7c2V0VGltZW91dChmdW5jdGlvbigpe2IuYnV0dG9uKCJyZWZyZXNoIil9LDEpfSxrPWZ1bmN0aW9uKGIpe3ZhciBjPWIubmFtZSxkPWIuZm9ybSxlPWEoW10pO3JldHVybiBjJiYoZD9lPWEoZCkuZmluZCgiW25hbWU9JyIrYysiJ10iKTplPWEoIltuYW1lPSciK2MrIiddIixiLm93bmVyRG9jdW1lbnQpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiF0aGlzLmZvcm19KSksZX07YS53aWRnZXQoInVpLmJ1dHRvbiIse29wdGlvbnM6e2Rpc2FibGVkOm51bGwsdGV4dDohMCxsYWJlbDpudWxsLGljb25zOntwcmltYXJ5Om51bGwsc2Vjb25kYXJ5Om51bGx9fSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LmNsb3Nlc3QoImZvcm0iKS51bmJpbmQoInJlc2V0LmJ1dHRvbiIpLmJpbmQoInJlc2V0LmJ1dHRvbiIsaiksdHlwZW9mIHRoaXMub3B0aW9ucy5kaXNhYmxlZCE9ImJvb2xlYW4iP3RoaXMub3B0aW9ucy5kaXNhYmxlZD0hIXRoaXMuZWxlbWVudC5wcm9wQXR0cigiZGlzYWJsZWQiKTp0aGlzLmVsZW1lbnQucHJvcEF0dHIoImRpc2FibGVkIix0aGlzLm9wdGlvbnMuZGlzYWJsZWQpLHRoaXMuX2RldGVybWluZUJ1dHRvblR5cGUoKSx0aGlzLmhhc1RpdGxlPSEhdGhpcy5idXR0b25FbGVtZW50LmF0dHIoInRpdGxlIik7dmFyIGI9dGhpcyxoPXRoaXMub3B0aW9ucyxpPXRoaXMudHlwZT09PSJjaGVja2JveCJ8fHRoaXMudHlwZT09PSJyYWRpbyIsbD0idWktc3RhdGUtaG92ZXIiKyhpPyIiOiIgdWktc3RhdGUtYWN0aXZlIiksbT0idWktc3RhdGUtZm9jdXMiO2gubGFiZWw9PT1udWxsJiYoaC5sYWJlbD10aGlzLmJ1dHRvbkVsZW1lbnQuaHRtbCgpKSx0aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoZykuYXR0cigicm9sZSIsImJ1dHRvbiIpLmJpbmQoIm1vdXNlZW50ZXIuYnV0dG9uIixmdW5jdGlvbigpe2lmKGguZGlzYWJsZWQpcmV0dXJuO2EodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWhvdmVyIiksdGhpcz09PWMmJmEodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSkuYmluZCgibW91c2VsZWF2ZS5idXR0b24iLGZ1bmN0aW9uKCl7aWYoaC5kaXNhYmxlZClyZXR1cm47YSh0aGlzKS5yZW1vdmVDbGFzcyhsKX0pLmJpbmQoImNsaWNrLmJ1dHRvbiIsZnVuY3Rpb24oYSl7aC5kaXNhYmxlZCYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKX0pLHRoaXMuZWxlbWVudC5iaW5kKCJmb2N1cy5idXR0b24iLGZ1bmN0aW9uKCl7Yi5idXR0b25FbGVtZW50LmFkZENsYXNzKG0pfSkuYmluZCgiYmx1ci5idXR0b24iLGZ1bmN0aW9uKCl7Yi5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKG0pfSksaSYmKHRoaXMuZWxlbWVudC5iaW5kKCJjaGFuZ2UuYnV0dG9uIixmdW5jdGlvbigpe2lmKGYpcmV0dXJuO2IucmVmcmVzaCgpfSksdGhpcy5idXR0b25FbGVtZW50LmJpbmQoIm1vdXNlZG93bi5idXR0b24iLGZ1bmN0aW9uKGEpe2lmKGguZGlzYWJsZWQpcmV0dXJuO2Y9ITEsZD1hLnBhZ2VYLGU9YS5wYWdlWX0pLmJpbmQoIm1vdXNldXAuYnV0dG9uIixmdW5jdGlvbihhKXtpZihoLmRpc2FibGVkKXJldHVybjtpZihkIT09YS5wYWdlWHx8ZSE9PWEucGFnZVkpZj0hMH0pKSx0aGlzLnR5cGU9PT0iY2hlY2tib3giP3RoaXMuYnV0dG9uRWxlbWVudC5iaW5kKCJjbGljay5idXR0b24iLGZ1bmN0aW9uKCl7aWYoaC5kaXNhYmxlZHx8ZilyZXR1cm4hMTthKHRoaXMpLnRvZ2dsZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSxiLmJ1dHRvbkVsZW1lbnQuYXR0cigiYXJpYS1wcmVzc2VkIixiLmVsZW1lbnRbMF0uY2hlY2tlZCl9KTp0aGlzLnR5cGU9PT0icmFkaW8iP3RoaXMuYnV0dG9uRWxlbWVudC5iaW5kKCJjbGljay5idXR0b24iLGZ1bmN0aW9uKCl7aWYoaC5kaXNhYmxlZHx8ZilyZXR1cm4hMTthKHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSxiLmJ1dHRvbkVsZW1lbnQuYXR0cigiYXJpYS1wcmVzc2VkIiwidHJ1ZSIpO3ZhciBjPWIuZWxlbWVudFswXTtrKGMpLm5vdChjKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzKS5idXR0b24oIndpZGdldCIpWzBdfSkucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsImZhbHNlIil9KToodGhpcy5idXR0b25FbGVtZW50LmJpbmQoIm1vdXNlZG93bi5idXR0b24iLGZ1bmN0aW9uKCl7aWYoaC5kaXNhYmxlZClyZXR1cm4hMTthKHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSxjPXRoaXMsYShkb2N1bWVudCkub25lKCJtb3VzZXVwIixmdW5jdGlvbigpe2M9bnVsbH0pfSkuYmluZCgibW91c2V1cC5idXR0b24iLGZ1bmN0aW9uKCl7aWYoaC5kaXNhYmxlZClyZXR1cm4hMTthKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0pLmJpbmQoImtleWRvd24uYnV0dG9uIixmdW5jdGlvbihiKXtpZihoLmRpc2FibGVkKXJldHVybiExOyhiLmtleUNvZGU9PWEudWkua2V5Q29kZS5TUEFDRXx8Yi5rZXlDb2RlPT1hLnVpLmtleUNvZGUuRU5URVIpJiZhKHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0pLmJpbmQoImtleXVwLmJ1dHRvbiIsZnVuY3Rpb24oKXthKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0pLHRoaXMuYnV0dG9uRWxlbWVudC5pcygiYSIpJiZ0aGlzLmJ1dHRvbkVsZW1lbnQua2V5dXAoZnVuY3Rpb24oYil7Yi5rZXlDb2RlPT09YS51aS5rZXlDb2RlLlNQQUNFJiZhKHRoaXMpLmNsaWNrKCl9KSksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsaC5kaXNhYmxlZCksdGhpcy5fcmVzZXRCdXR0b24oKX0sX2RldGVybWluZUJ1dHRvblR5cGU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuaXMoIjpjaGVja2JveCIpP3RoaXMudHlwZT0iY2hlY2tib3giOnRoaXMuZWxlbWVudC5pcygiOnJhZGlvIik/dGhpcy50eXBlPSJyYWRpbyI6dGhpcy5lbGVtZW50LmlzKCJpbnB1dCIpP3RoaXMudHlwZT0iaW5wdXQiOnRoaXMudHlwZT0iYnV0dG9uIjtpZih0aGlzLnR5cGU9PT0iY2hlY2tib3gifHx0aGlzLnR5cGU9PT0icmFkaW8iKXt2YXIgYT10aGlzLmVsZW1lbnQucGFyZW50cygpLmZpbHRlcigiOmxhc3QiKSxiPSJsYWJlbFtmb3I9JyIrdGhpcy5lbGVtZW50LmF0dHIoImlkIikrIiddIjt0aGlzLmJ1dHRvbkVsZW1lbnQ9YS5maW5kKGIpLHRoaXMuYnV0dG9uRWxlbWVudC5sZW5ndGh8fChhPWEubGVuZ3RoP2Euc2libGluZ3MoKTp0aGlzLmVsZW1lbnQuc2libGluZ3MoKSx0aGlzLmJ1dHRvbkVsZW1lbnQ9YS5maWx0ZXIoYiksdGhpcy5idXR0b25FbGVtZW50Lmxlbmd0aHx8KHRoaXMuYnV0dG9uRWxlbWVudD1hLmZpbmQoYikpKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSIpO3ZhciBjPXRoaXMuZWxlbWVudC5pcygiOmNoZWNrZWQiKTtjJiZ0aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLGMpfWVsc2UgdGhpcy5idXR0b25FbGVtZW50PXRoaXMuZWxlbWVudH0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnV0dG9uRWxlbWVudH0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiksdGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKGcrIiAiK2grIiAiK2kpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVBdHRyKCJhcmlhLXByZXNzZWQiKS5odG1sKHRoaXMuYnV0dG9uRWxlbWVudC5maW5kKCIudWktYnV0dG9uLXRleHQiKS5odG1sKCkpLHRoaXMuaGFzVGl0bGV8fHRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVBdHRyKCJ0aXRsZSIpLGEuV2lkZ2V0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyl9LF9zZXRPcHRpb246ZnVuY3Rpb24oYixjKXthLldpZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoYj09PSJkaXNhYmxlZCIpe2M/dGhpcy5lbGVtZW50LnByb3BBdHRyKCJkaXNhYmxlZCIsITApOnRoaXMuZWxlbWVudC5wcm9wQXR0cigiZGlzYWJsZWQiLCExKTtyZXR1cm59dGhpcy5fcmVzZXRCdXR0b24oKX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciBiPXRoaXMuZWxlbWVudC5pcygiOmRpc2FibGVkIik7YiE9PXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsYiksdGhpcy50eXBlPT09InJhZGlvIj9rKHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe2EodGhpcykuaXMoIjpjaGVja2VkIik/YSh0aGlzKS5idXR0b24oIndpZGdldCIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik6YSh0aGlzKS5idXR0b24oIndpZGdldCIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpfSk6dGhpcy50eXBlPT09ImNoZWNrYm94IiYmKHRoaXMuZWxlbWVudC5pcygiOmNoZWNrZWQiKT90aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsInRydWUiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsImZhbHNlIikpfSxfcmVzZXRCdXR0b246ZnVuY3Rpb24oKXtpZih0aGlzLnR5cGU9PT0iaW5wdXQiKXt0aGlzLm9wdGlvbnMubGFiZWwmJnRoaXMuZWxlbWVudC52YWwodGhpcy5vcHRpb25zLmxhYmVsKTtyZXR1cm59dmFyIGI9dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKGkpLGM9YSgiPHNwYW4+PC9zcGFuPiIsdGhpcy5lbGVtZW50WzBdLm93bmVyRG9jdW1lbnQpLmFkZENsYXNzKCJ1aS1idXR0b24tdGV4dCIpLmh0bWwodGhpcy5vcHRpb25zLmxhYmVsKS5hcHBlbmRUbyhiLmVtcHR5KCkpLnRleHQoKSxkPXRoaXMub3B0aW9ucy5pY29ucyxlPWQucHJpbWFyeSYmZC5zZWNvbmRhcnksZj1bXTtkLnByaW1hcnl8fGQuc2Vjb25kYXJ5Pyh0aGlzLm9wdGlvbnMudGV4dCYmZi5wdXNoKCJ1aS1idXR0b24tdGV4dC1pY29uIisoZT8icyI6ZC5wcmltYXJ5PyItcHJpbWFyeSI6Ii1zZWNvbmRhcnkiKSksZC5wcmltYXJ5JiZiLnByZXBlbmQoIjxzcGFuIGNsYXNzPSd1aS1idXR0b24taWNvbi1wcmltYXJ5IHVpLWljb24gIitkLnByaW1hcnkrIic+PC9zcGFuPiIpLGQuc2Vjb25kYXJ5JiZiLmFwcGVuZCgiPHNwYW4gY2xhc3M9J3VpLWJ1dHRvbi1pY29uLXNlY29uZGFyeSB1aS1pY29uICIrZC5zZWNvbmRhcnkrIic+PC9zcGFuPiIpLHRoaXMub3B0aW9ucy50ZXh0fHwoZi5wdXNoKGU/InVpLWJ1dHRvbi1pY29ucy1vbmx5IjoidWktYnV0dG9uLWljb24tb25seSIpLHRoaXMuaGFzVGl0bGV8fGIuYXR0cigidGl0bGUiLGMpKSk6Zi5wdXNoKCJ1aS1idXR0b24tdGV4dC1vbmx5IiksYi5hZGRDbGFzcyhmLmpvaW4oIiAiKSl9fSksYS53aWRnZXQoInVpLmJ1dHRvbnNldCIse29wdGlvbnM6e2l0ZW1zOiI6YnV0dG9uLCA6c3VibWl0LCA6cmVzZXQsIDpjaGVja2JveCwgOnJhZGlvLCBhLCA6ZGF0YShidXR0b24pIn0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYnV0dG9uc2V0Iil9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oYixjKXtiPT09ImRpc2FibGVkIiYmdGhpcy5idXR0b25zLmJ1dHRvbigib3B0aW9uIixiLGMpLGEuV2lkZ2V0LnByb3RvdHlwZS5fc2V0T3B0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciBiPXRoaXMuZWxlbWVudC5jc3MoImRpcmVjdGlvbiIpPT09InJ0bCI7dGhpcy5idXR0b25zPXRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuZmlsdGVyKCI6dWktYnV0dG9uIikuYnV0dG9uKCJyZWZyZXNoIikuZW5kKCkubm90KCI6dWktYnV0dG9uIikuYnV0dG9uKCkuZW5kKCkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcykuYnV0dG9uKCJ3aWRnZXQiKVswXX0pLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItYWxsIHVpLWNvcm5lci1sZWZ0IHVpLWNvcm5lci1yaWdodCIpLmZpbHRlcigiOmZpcnN0IikuYWRkQ2xhc3MoYj8idWktY29ybmVyLXJpZ2h0IjoidWktY29ybmVyLWxlZnQiKS5lbmQoKS5maWx0ZXIoIjpsYXN0IikuYWRkQ2xhc3MoYj8idWktY29ybmVyLWxlZnQiOiJ1aS1jb3JuZXItcmlnaHQiKS5lbmQoKS5lbmQoKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktYnV0dG9uc2V0IiksdGhpcy5idXR0b25zLm1hcChmdW5jdGlvbigpe3JldHVybiBhKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktY29ybmVyLWxlZnQgdWktY29ybmVyLXJpZ2h0IikuZW5kKCkuYnV0dG9uKCJkZXN0cm95IiksYS5XaWRnZXQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKX19KX0pKGpRdWVyeSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.core.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwCiogaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkKKiBJbmNsdWRlczoganF1ZXJ5LnVpLmNvcmUuanMKKiBDb3B5cmlnaHQgKGMpIDIwMTIgQVVUSE9SUy50eHQ7IExpY2Vuc2VkIE1JVCwgR1BMICovCihmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYixjKXt2YXIgZT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoImFyZWEiPT09ZSl7dmFyIGY9Yi5wYXJlbnROb2RlLGc9Zi5uYW1lLGg7cmV0dXJuIWIuaHJlZnx8IWd8fGYubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PSJtYXAiPyExOihoPWEoImltZ1t1c2VtYXA9IyIrZysiXSIpWzBdLCEhaCYmZChoKSl9cmV0dXJuKC9pbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9ufG9iamVjdC8udGVzdChlKT8hYi5kaXNhYmxlZDoiYSI9PWU/Yi5ocmVmfHxjOmMpJiZkKGIpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIWEoYikucGFyZW50cygpLmFuZFNlbGYoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gYS5jdXJDU1ModGhpcywidmlzaWJpbGl0eSIpPT09ImhpZGRlbiJ8fGEuZXhwci5maWx0ZXJzLmhpZGRlbih0aGlzKX0pLmxlbmd0aH1hLnVpPWEudWl8fHt9O2lmKGEudWkudmVyc2lvbilyZXR1cm47YS5leHRlbmQoYS51aSx7dmVyc2lvbjoiMS44LjIwIixrZXlDb2RlOntBTFQ6MTgsQkFDS1NQQUNFOjgsQ0FQU19MT0NLOjIwLENPTU1BOjE4OCxDT01NQU5EOjkxLENPTU1BTkRfTEVGVDo5MSxDT01NQU5EX1JJR0hUOjkzLENPTlRST0w6MTcsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LElOU0VSVDo0NSxMRUZUOjM3LE1FTlU6OTMsTlVNUEFEX0FERDoxMDcsTlVNUEFEX0RFQ0lNQUw6MTEwLE5VTVBBRF9ESVZJREU6MTExLE5VTVBBRF9FTlRFUjoxMDgsTlVNUEFEX01VTFRJUExZOjEwNixOVU1QQURfU1VCVFJBQ1Q6MTA5LFBBR0VfRE9XTjozNCxQQUdFX1VQOjMzLFBFUklPRDoxOTAsUklHSFQ6MzksU0hJRlQ6MTYsU1BBQ0U6MzIsVEFCOjksVVA6MzgsV0lORE9XUzo5MX19KSxhLmZuLmV4dGVuZCh7cHJvcEF0dHI6YS5mbi5wcm9wfHxhLmZuLmF0dHIsX2ZvY3VzOmEuZm4uZm9jdXMsZm9jdXM6ZnVuY3Rpb24oYixjKXtyZXR1cm4gdHlwZW9mIGI9PSJudW1iZXIiP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe2EoZCkuZm9jdXMoKSxjJiZjLmNhbGwoZCl9LGIpfSk6dGhpcy5fZm9jdXMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxzY3JvbGxQYXJlbnQ6ZnVuY3Rpb24oKXt2YXIgYjtyZXR1cm4gYS5icm93c2VyLm1zaWUmJi8oc3RhdGljfHJlbGF0aXZlKS8udGVzdCh0aGlzLmNzcygicG9zaXRpb24iKSl8fC9hYnNvbHV0ZS8udGVzdCh0aGlzLmNzcygicG9zaXRpb24iKSk/Yj10aGlzLnBhcmVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4vKHJlbGF0aXZlfGFic29sdXRlfGZpeGVkKS8udGVzdChhLmN1ckNTUyh0aGlzLCJwb3NpdGlvbiIsMSkpJiYvKGF1dG98c2Nyb2xsKS8udGVzdChhLmN1ckNTUyh0aGlzLCJvdmVyZmxvdyIsMSkrYS5jdXJDU1ModGhpcywib3ZlcmZsb3cteSIsMSkrYS5jdXJDU1ModGhpcywib3ZlcmZsb3cteCIsMSkpfSkuZXEoMCk6Yj10aGlzLnBhcmVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4vKGF1dG98c2Nyb2xsKS8udGVzdChhLmN1ckNTUyh0aGlzLCJvdmVyZmxvdyIsMSkrYS5jdXJDU1ModGhpcywib3ZlcmZsb3cteSIsMSkrYS5jdXJDU1ModGhpcywib3ZlcmZsb3cteCIsMSkpfSkuZXEoMCksL2ZpeGVkLy50ZXN0KHRoaXMuY3NzKCJwb3NpdGlvbiIpKXx8IWIubGVuZ3RoP2EoZG9jdW1lbnQpOmJ9LHpJbmRleDpmdW5jdGlvbihjKXtpZihjIT09YilyZXR1cm4gdGhpcy5jc3MoInpJbmRleCIsYyk7aWYodGhpcy5sZW5ndGgpe3ZhciBkPWEodGhpc1swXSksZSxmO3doaWxlKGQubGVuZ3RoJiZkWzBdIT09ZG9jdW1lbnQpe2U9ZC5jc3MoInBvc2l0aW9uIik7aWYoZT09PSJhYnNvbHV0ZSJ8fGU9PT0icmVsYXRpdmUifHxlPT09ImZpeGVkIil7Zj1wYXJzZUludChkLmNzcygiekluZGV4IiksMTApO2lmKCFpc05hTihmKSYmZiE9PTApcmV0dXJuIGZ9ZD1kLnBhcmVudCgpfX1yZXR1cm4gMH0sZGlzYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJpbmQoKGEuc3VwcG9ydC5zZWxlY3RzdGFydD8ic2VsZWN0c3RhcnQiOiJtb3VzZWRvd24iKSsiLnVpLWRpc2FibGVTZWxlY3Rpb24iLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKX0pfSxlbmFibGVTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmJpbmQoIi51aS1kaXNhYmxlU2VsZWN0aW9uIil9fSksYS5lYWNoKFsiV2lkdGgiLCJIZWlnaHQiXSxmdW5jdGlvbihjLGQpe2Z1bmN0aW9uIGgoYixjLGQsZil7cmV0dXJuIGEuZWFjaChlLGZ1bmN0aW9uKCl7Yy09cGFyc2VGbG9hdChhLmN1ckNTUyhiLCJwYWRkaW5nIit0aGlzLCEwKSl8fDAsZCYmKGMtPXBhcnNlRmxvYXQoYS5jdXJDU1MoYiwiYm9yZGVyIit0aGlzKyJXaWR0aCIsITApKXx8MCksZiYmKGMtPXBhcnNlRmxvYXQoYS5jdXJDU1MoYiwibWFyZ2luIit0aGlzLCEwKSl8fDApfSksY312YXIgZT1kPT09IldpZHRoIj9bIkxlZnQiLCJSaWdodCJdOlsiVG9wIiwiQm90dG9tIl0sZj1kLnRvTG93ZXJDYXNlKCksZz17aW5uZXJXaWR0aDphLmZuLmlubmVyV2lkdGgsaW5uZXJIZWlnaHQ6YS5mbi5pbm5lckhlaWdodCxvdXRlcldpZHRoOmEuZm4ub3V0ZXJXaWR0aCxvdXRlckhlaWdodDphLmZuLm91dGVySGVpZ2h0fTthLmZuWyJpbm5lciIrZF09ZnVuY3Rpb24oYyl7cmV0dXJuIGM9PT1iP2dbImlubmVyIitkXS5jYWxsKHRoaXMpOnRoaXMuZWFjaChmdW5jdGlvbigpe2EodGhpcykuY3NzKGYsaCh0aGlzLGMpKyJweCIpfSl9LGEuZm5bIm91dGVyIitkXT1mdW5jdGlvbihiLGMpe3JldHVybiB0eXBlb2YgYiE9Im51bWJlciI/Z1sib3V0ZXIiK2RdLmNhbGwodGhpcyxiKTp0aGlzLmVhY2goZnVuY3Rpb24oKXthKHRoaXMpLmNzcyhmLGgodGhpcyxiLCEwLGMpKyJweCIpfSl9fSksYS5leHRlbmQoYS5leHByWyI6Il0se2RhdGE6ZnVuY3Rpb24oYixjLGQpe3JldHVybiEhYS5kYXRhKGIsZFszXSl9LGZvY3VzYWJsZTpmdW5jdGlvbihiKXtyZXR1cm4gYyhiLCFpc05hTihhLmF0dHIoYiwidGFiaW5kZXgiKSkpfSx0YWJiYWJsZTpmdW5jdGlvbihiKXt2YXIgZD1hLmF0dHIoYiwidGFiaW5kZXgiKSxlPWlzTmFOKGQpO3JldHVybihlfHxkPj0wKSYmYyhiLCFlKX19KSxhKGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuYm9keSxjPWIuYXBwZW5kQ2hpbGQoYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7Yy5vZmZzZXRIZWlnaHQsYS5leHRlbmQoYy5zdHlsZSx7bWluSGVpZ2h0OiIxMDBweCIsaGVpZ2h0OiJhdXRvIixwYWRkaW5nOjAsYm9yZGVyV2lkdGg6MH0pLGEuc3VwcG9ydC5taW5IZWlnaHQ9Yy5vZmZzZXRIZWlnaHQ9PT0xMDAsYS5zdXBwb3J0LnNlbGVjdHN0YXJ0PSJvbnNlbGVjdHN0YXJ0ImluIGMsYi5yZW1vdmVDaGlsZChjKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pLGEuZXh0ZW5kKGEudWkse3BsdWdpbjp7YWRkOmZ1bmN0aW9uKGIsYyxkKXt2YXIgZT1hLnVpW2JdLnByb3RvdHlwZTtmb3IodmFyIGYgaW4gZCllLnBsdWdpbnNbZl09ZS5wbHVnaW5zW2ZdfHxbXSxlLnBsdWdpbnNbZl0ucHVzaChbYyxkW2ZdXSl9LGNhbGw6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEucGx1Z2luc1tiXTtpZighZHx8IWEuZWxlbWVudFswXS5wYXJlbnROb2RlKXJldHVybjtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKylhLm9wdGlvbnNbZFtlXVswXV0mJmRbZV1bMV0uYXBwbHkoYS5lbGVtZW50LGMpfX0sY29udGFpbnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZG9jdW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNjphIT09YiYmYS5jb250YWlucyhiKX0saGFzU2Nyb2xsOmZ1bmN0aW9uKGIsYyl7aWYoYShiKS5jc3MoIm92ZXJmbG93Iik9PT0iaGlkZGVuIilyZXR1cm4hMTt2YXIgZD1jJiZjPT09ImxlZnQiPyJzY3JvbGxMZWZ0Ijoic2Nyb2xsVG9wIixlPSExO3JldHVybiBiW2RdPjA/ITA6KGJbZF09MSxlPWJbZF0+MCxiW2RdPTAsZSl9LGlzT3ZlckF4aXM6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhPmImJmE8YitjfSxpc092ZXI6ZnVuY3Rpb24oYixjLGQsZSxmLGcpe3JldHVybiBhLnVpLmlzT3ZlckF4aXMoYixkLGYpJiZhLnVpLmlzT3ZlckF4aXMoYyxlLGcpfX0pfSkoalF1ZXJ5KTsK]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.dialog.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwDQoqIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LXVpDQoqIEluY2x1ZGVzOiBqcXVlcnkudWkuZGlhbG9nLmpzDQoqIENvcHlyaWdodCAoYykgMjAxMiBBVVRIT1JTLnR4dDsgTGljZW5zZWQgTUlULCBHUEwgKi8NCihmdW5jdGlvbihhLGIpe3ZhciBjPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgIixkPXtidXR0b25zOiEwLGhlaWdodDohMCxtYXhIZWlnaHQ6ITAsbWF4V2lkdGg6ITAsbWluSGVpZ2h0OiEwLG1pbldpZHRoOiEwLHdpZHRoOiEwfSxlPXttYXhIZWlnaHQ6ITAsbWF4V2lkdGg6ITAsbWluSGVpZ2h0OiEwLG1pbldpZHRoOiEwfSxmPWEuYXR0ckZufHx7dmFsOiEwLGNzczohMCxodG1sOiEwLHRleHQ6ITAsZGF0YTohMCx3aWR0aDohMCxoZWlnaHQ6ITAsb2Zmc2V0OiEwLGNsaWNrOiEwfTthLndpZGdldCgidWkuZGlhbG9nIix7b3B0aW9uczp7YXV0b09wZW46ITAsYnV0dG9uczp7fSxjbG9zZU9uRXNjYXBlOiEwLGNsb3NlVGV4dDoiY2xvc2UiLGRpYWxvZ0NsYXNzOiIiLGRyYWdnYWJsZTohMCxoaWRlOm51bGwsaGVpZ2h0OiJhdXRvIixtYXhIZWlnaHQ6ITEsbWF4V2lkdGg6ITEsbWluSGVpZ2h0OjE1MCxtaW5XaWR0aDoxNTAsbW9kYWw6ITEscG9zaXRpb246e215OiJjZW50ZXIiLGF0OiJjZW50ZXIiLGNvbGxpc2lvbjoiZml0Iix1c2luZzpmdW5jdGlvbihiKXt2YXIgYz1hKHRoaXMpLmNzcyhiKS5vZmZzZXQoKS50b3A7YzwwJiZhKHRoaXMpLmNzcygidG9wIixiLnRvcC1jKX19LHJlc2l6YWJsZTohMCxzaG93Om51bGwsc3RhY2s6ITAsdGl0bGU6IiIsd2lkdGg6MzAwLHpJbmRleDoxZTN9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLm9yaWdpbmFsVGl0bGU9dGhpcy5lbGVtZW50LmF0dHIoInRpdGxlIiksdHlwZW9mIHRoaXMub3JpZ2luYWxUaXRsZSE9InN0cmluZyImJih0aGlzLm9yaWdpbmFsVGl0bGU9IiIpLHRoaXMub3B0aW9ucy50aXRsZT10aGlzLm9wdGlvbnMudGl0bGV8fHRoaXMub3JpZ2luYWxUaXRsZTt2YXIgYj10aGlzLGQ9Yi5vcHRpb25zLGU9ZC50aXRsZXx8IiYjMTYwOyIsZj1hLnVpLmRpYWxvZy5nZXRUaXRsZUlkKGIuZWxlbWVudCksZz0oYi51aURpYWxvZz1hKCI8ZGl2PjwvZGl2PiIpKS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KS5oaWRlKCkuYWRkQ2xhc3MoYytkLmRpYWxvZ0NsYXNzKS5jc3Moe3pJbmRleDpkLnpJbmRleH0pLmF0dHIoInRhYkluZGV4IiwtMSkuY3NzKCJvdXRsaW5lIiwwKS5rZXlkb3duKGZ1bmN0aW9uKGMpe2QuY2xvc2VPbkVzY2FwZSYmIWMuaXNEZWZhdWx0UHJldmVudGVkKCkmJmMua2V5Q29kZSYmYy5rZXlDb2RlPT09YS51aS5rZXlDb2RlLkVTQ0FQRSYmKGIuY2xvc2UoYyksYy5wcmV2ZW50RGVmYXVsdCgpKX0pLmF0dHIoe3JvbGU6ImRpYWxvZyIsImFyaWEtbGFiZWxsZWRieSI6Zn0pLm1vdXNlZG93bihmdW5jdGlvbihhKXtiLm1vdmVUb1RvcCghMSxhKX0pLGg9Yi5lbGVtZW50LnNob3coKS5yZW1vdmVBdHRyKCJ0aXRsZSIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIpLmFwcGVuZFRvKGcpLGk9KGIudWlEaWFsb2dUaXRsZWJhcj1hKCI8ZGl2PjwvZGl2PiIpKS5hZGRDbGFzcygidWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCB1aS1oZWxwZXItY2xlYXJmaXgiKS5wcmVwZW5kVG8oZyksaj1hKCc8YSBocmVmPSIjIj48L2E+JykuYWRkQ2xhc3MoInVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIikuYXR0cigicm9sZSIsImJ1dHRvbiIpLmhvdmVyKGZ1bmN0aW9uKCl7ai5hZGRDbGFzcygidWktc3RhdGUtaG92ZXIiKX0sZnVuY3Rpb24oKXtqLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfSkuZm9jdXMoZnVuY3Rpb24oKXtqLmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSkuYmx1cihmdW5jdGlvbigpe2oucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIil9KS5jbGljayhmdW5jdGlvbihhKXtyZXR1cm4gYi5jbG9zZShhKSwhMX0pLmFwcGVuZFRvKGkpLGs9KGIudWlEaWFsb2dUaXRsZWJhckNsb3NlVGV4dD1hKCI8c3Bhbj48L3NwYW4+IikpLmFkZENsYXNzKCJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayIpLnRleHQoZC5jbG9zZVRleHQpLmFwcGVuZFRvKGopLGw9YSgiPHNwYW4+PC9zcGFuPiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGUiKS5hdHRyKCJpZCIsZikuaHRtbChlKS5wcmVwZW5kVG8oaSk7YS5pc0Z1bmN0aW9uKGQuYmVmb3JlY2xvc2UpJiYhYS5pc0Z1bmN0aW9uKGQuYmVmb3JlQ2xvc2UpJiYoZC5iZWZvcmVDbG9zZT1kLmJlZm9yZWNsb3NlKSxpLmZpbmQoIioiKS5hZGQoaSkuZGlzYWJsZVNlbGVjdGlvbigpLGQuZHJhZ2dhYmxlJiZhLmZuLmRyYWdnYWJsZSYmYi5fbWFrZURyYWdnYWJsZSgpLGQucmVzaXphYmxlJiZhLmZuLnJlc2l6YWJsZSYmYi5fbWFrZVJlc2l6YWJsZSgpLGIuX2NyZWF0ZUJ1dHRvbnMoZC5idXR0b25zKSxiLl9pc09wZW49ITEsYS5mbi5iZ2lmcmFtZSYmZy5iZ2lmcmFtZSgpfSxfaW5pdDpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5hdXRvT3BlbiYmdGhpcy5vcGVuKCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3JldHVybiBhLm92ZXJsYXkmJmEub3ZlcmxheS5kZXN0cm95KCksYS51aURpYWxvZy5oaWRlKCksYS5lbGVtZW50LnVuYmluZCgiLmRpYWxvZyIpLnJlbW92ZURhdGEoImRpYWxvZyIpLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIpLmhpZGUoKS5hcHBlbmRUbygiYm9keSIpLGEudWlEaWFsb2cucmVtb3ZlKCksYS5vcmlnaW5hbFRpdGxlJiZhLmVsZW1lbnQuYXR0cigidGl0bGUiLGEub3JpZ2luYWxUaXRsZSksYX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudWlEaWFsb2d9LGNsb3NlOmZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMsZCxlO2lmKCExPT09Yy5fdHJpZ2dlcigiYmVmb3JlQ2xvc2UiLGIpKXJldHVybjtyZXR1cm4gYy5vdmVybGF5JiZjLm92ZXJsYXkuZGVzdHJveSgpLGMudWlEaWFsb2cudW5iaW5kKCJrZXlwcmVzcy51aS1kaWFsb2ciKSxjLl9pc09wZW49ITEsYy5vcHRpb25zLmhpZGU/Yy51aURpYWxvZy5oaWRlKGMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7Yy5fdHJpZ2dlcigiY2xvc2UiLGIpfSk6KGMudWlEaWFsb2cuaGlkZSgpLGMuX3RyaWdnZXIoImNsb3NlIixiKSksYS51aS5kaWFsb2cub3ZlcmxheS5yZXNpemUoKSxjLm9wdGlvbnMubW9kYWwmJihkPTAsYSgiLnVpLWRpYWxvZyIpLmVhY2goZnVuY3Rpb24oKXt0aGlzIT09Yy51aURpYWxvZ1swXSYmKGU9YSh0aGlzKS5jc3MoInotaW5kZXgiKSxpc05hTihlKXx8KGQ9TWF0aC5tYXgoZCxlKSkpfSksYS51aS5kaWFsb2cubWF4Wj1kKSxjfSxpc09wZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNPcGVufSxtb3ZlVG9Ub3A6ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzLGU9ZC5vcHRpb25zLGY7cmV0dXJuIGUubW9kYWwmJiFifHwhZS5zdGFjayYmIWUubW9kYWw/ZC5fdHJpZ2dlcigiZm9jdXMiLGMpOihlLnpJbmRleD5hLnVpLmRpYWxvZy5tYXhaJiYoYS51aS5kaWFsb2cubWF4Wj1lLnpJbmRleCksZC5vdmVybGF5JiYoYS51aS5kaWFsb2cubWF4Wis9MSxkLm92ZXJsYXkuJGVsLmNzcygiei1pbmRleCIsYS51aS5kaWFsb2cub3ZlcmxheS5tYXhaPWEudWkuZGlhbG9nLm1heFopKSxmPXtzY3JvbGxUb3A6ZC5lbGVtZW50LnNjcm9sbFRvcCgpLHNjcm9sbExlZnQ6ZC5lbGVtZW50LnNjcm9sbExlZnQoKX0sYS51aS5kaWFsb2cubWF4Wis9MSxkLnVpRGlhbG9nLmNzcygiei1pbmRleCIsYS51aS5kaWFsb2cubWF4WiksZC5lbGVtZW50LmF0dHIoZiksZC5fdHJpZ2dlcigiZm9jdXMiLGMpLGQpfSxvcGVuOmZ1bmN0aW9uKCl7aWYodGhpcy5faXNPcGVuKXJldHVybjt2YXIgYj10aGlzLGM9Yi5vcHRpb25zLGQ9Yi51aURpYWxvZztyZXR1cm4gYi5vdmVybGF5PWMubW9kYWw/bmV3IGEudWkuZGlhbG9nLm92ZXJsYXkoYik6bnVsbCxiLl9zaXplKCksYi5fcG9zaXRpb24oYy5wb3NpdGlvbiksZC5zaG93KGMuc2hvdyksYi5tb3ZlVG9Ub3AoITApLGMubW9kYWwmJmQuYmluZCgia2V5ZG93bi51aS1kaWFsb2ciLGZ1bmN0aW9uKGIpe2lmKGIua2V5Q29kZSE9PWEudWkua2V5Q29kZS5UQUIpcmV0dXJuO3ZhciBjPWEoIjp0YWJiYWJsZSIsdGhpcyksZD1jLmZpbHRlcigiOmZpcnN0IiksZT1jLmZpbHRlcigiOmxhc3QiKTtpZihiLnRhcmdldD09PWVbMF0mJiFiLnNoaWZ0S2V5KXJldHVybiBkLmZvY3VzKDEpLCExO2lmKGIudGFyZ2V0PT09ZFswXSYmYi5zaGlmdEtleSlyZXR1cm4gZS5mb2N1cygxKSwhMX0pLGEoYi5lbGVtZW50LmZpbmQoIjp0YWJiYWJsZSIpLmdldCgpLmNvbmNhdChkLmZpbmQoIi51aS1kaWFsb2ctYnV0dG9ucGFuZSA6dGFiYmFibGUiKS5nZXQoKS5jb25jYXQoZC5nZXQoKSkpKS5lcSgwKS5mb2N1cygpLGIuX2lzT3Blbj0hMCxiLl90cmlnZ2VyKCJvcGVuIiksYn0sX2NyZWF0ZUJ1dHRvbnM6ZnVuY3Rpb24oYil7dmFyIGM9dGhpcyxkPSExLGU9YSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IiksZz1hKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctYnV0dG9uc2V0IikuYXBwZW5kVG8oZSk7Yy51aURpYWxvZy5maW5kKCIudWktZGlhbG9nLWJ1dHRvbnBhbmUiKS5yZW1vdmUoKSx0eXBlb2YgYj09Im9iamVjdCImJmIhPT1udWxsJiZhLmVhY2goYixmdW5jdGlvbigpe3JldHVybiEoZD0hMCl9KSxkJiYoYS5lYWNoKGIsZnVuY3Rpb24oYixkKXtkPWEuaXNGdW5jdGlvbihkKT97Y2xpY2s6ZCx0ZXh0OmJ9OmQ7dmFyIGU9YSgnPGJ1dHRvbiB0eXBlPSJidXR0b24iPjwvYnV0dG9uPicpLmNsaWNrKGZ1bmN0aW9uKCl7ZC5jbGljay5hcHBseShjLmVsZW1lbnRbMF0sYXJndW1lbnRzKX0pLmFwcGVuZFRvKGcpO2EuZWFjaChkLGZ1bmN0aW9uKGEsYil7aWYoYT09PSJjbGljayIpcmV0dXJuO2EgaW4gZj9lW2FdKGIpOmUuYXR0cihhLGIpfSksYS5mbi5idXR0b24mJmUuYnV0dG9uKCl9KSxlLmFwcGVuZFRvKGMudWlEaWFsb2cpKX0sX21ha2VEcmFnZ2FibGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiBmKGEpe3JldHVybntwb3NpdGlvbjphLnBvc2l0aW9uLG9mZnNldDphLm9mZnNldH19dmFyIGI9dGhpcyxjPWIub3B0aW9ucyxkPWEoZG9jdW1lbnQpLGU7Yi51aURpYWxvZy5kcmFnZ2FibGUoe2NhbmNlbDoiLnVpLWRpYWxvZy1jb250ZW50LCAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIixoYW5kbGU6Ii51aS1kaWFsb2ctdGl0bGViYXIiLGNvbnRhaW5tZW50OiJkb2N1bWVudCIsc3RhcnQ6ZnVuY3Rpb24oZCxnKXtlPWMuaGVpZ2h0PT09ImF1dG8iPyJhdXRvIjphKHRoaXMpLmhlaWdodCgpLGEodGhpcykuaGVpZ2h0KGEodGhpcykuaGVpZ2h0KCkpLmFkZENsYXNzKCJ1aS1kaWFsb2ctZHJhZ2dpbmciKSxiLl90cmlnZ2VyKCJkcmFnU3RhcnQiLGQsZihnKSl9LGRyYWc6ZnVuY3Rpb24oYSxjKXtiLl90cmlnZ2VyKCJkcmFnIixhLGYoYykpfSxzdG9wOmZ1bmN0aW9uKGcsaCl7Yy5wb3NpdGlvbj1baC5wb3NpdGlvbi5sZWZ0LWQuc2Nyb2xsTGVmdCgpLGgucG9zaXRpb24udG9wLWQuc2Nyb2xsVG9wKCldLGEodGhpcykucmVtb3ZlQ2xhc3MoInVpLWRpYWxvZy1kcmFnZ2luZyIpLmhlaWdodChlKSxiLl90cmlnZ2VyKCJkcmFnU3RvcCIsZyxmKGgpKSxhLnVpLmRpYWxvZy5vdmVybGF5LnJlc2l6ZSgpfX0pfSxfbWFrZVJlc2l6YWJsZTpmdW5jdGlvbihjKXtmdW5jdGlvbiBoKGEpe3JldHVybntvcmlnaW5hbFBvc2l0aW9uOmEub3JpZ2luYWxQb3NpdGlvbixvcmlnaW5hbFNpemU6YS5vcmlnaW5hbFNpemUscG9zaXRpb246YS5wb3NpdGlvbixzaXplOmEuc2l6ZX19Yz1jPT09Yj90aGlzLm9wdGlvbnMucmVzaXphYmxlOmM7dmFyIGQ9dGhpcyxlPWQub3B0aW9ucyxmPWQudWlEaWFsb2cuY3NzKCJwb3NpdGlvbiIpLGc9dHlwZW9mIGM9PSJzdHJpbmciP2M6Im4sZSxzLHcsc2Usc3csbmUsbnciO2QudWlEaWFsb2cucmVzaXphYmxlKHtjYW5jZWw6Ii51aS1kaWFsb2ctY29udGVudCIsY29udGFpbm1lbnQ6ImRvY3VtZW50IixhbHNvUmVzaXplOmQuZWxlbWVudCxtYXhXaWR0aDplLm1heFdpZHRoLG1heEhlaWdodDplLm1heEhlaWdodCxtaW5XaWR0aDplLm1pbldpZHRoLG1pbkhlaWdodDpkLl9taW5IZWlnaHQoKSxoYW5kbGVzOmcsc3RhcnQ6ZnVuY3Rpb24oYixjKXthKHRoaXMpLmFkZENsYXNzKCJ1aS1kaWFsb2ctcmVzaXppbmciKSxkLl90cmlnZ2VyKCJyZXNpemVTdGFydCIsYixoKGMpKX0scmVzaXplOmZ1bmN0aW9uKGEsYil7ZC5fdHJpZ2dlcigicmVzaXplIixhLGgoYikpfSxzdG9wOmZ1bmN0aW9uKGIsYyl7YSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksZS5oZWlnaHQ9YSh0aGlzKS5oZWlnaHQoKSxlLndpZHRoPWEodGhpcykud2lkdGgoKSxkLl90cmlnZ2VyKCJyZXNpemVTdG9wIixiLGgoYykpLGEudWkuZGlhbG9nLm92ZXJsYXkucmVzaXplKCl9fSkuY3NzKCJwb3NpdGlvbiIsZikuZmluZCgiLnVpLXJlc2l6YWJsZS1zZSIpLmFkZENsYXNzKCJ1aS1pY29uIHVpLWljb24tZ3JpcC1kaWFnb25hbC1zZSIpfSxfbWluSGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zO3JldHVybiBhLmhlaWdodD09PSJhdXRvIj9hLm1pbkhlaWdodDpNYXRoLm1pbihhLm1pbkhlaWdodCxhLmhlaWdodCl9LF9wb3NpdGlvbjpmdW5jdGlvbihiKXt2YXIgYz1bXSxkPVswLDBdLGU7aWYoYil7aWYodHlwZW9mIGI9PSJzdHJpbmcifHx0eXBlb2YgYj09Im9iamVjdCImJiIwImluIGIpYz1iLnNwbGl0P2Iuc3BsaXQoIiAiKTpbYlswXSxiWzFdXSxjLmxlbmd0aD09PTEmJihjWzFdPWNbMF0pLGEuZWFjaChbImxlZnQiLCJ0b3AiXSxmdW5jdGlvbihhLGIpeytjW2FdPT09Y1thXSYmKGRbYV09Y1thXSxjW2FdPWIpfSksYj17bXk6Yy5qb2luKCIgIiksYXQ6Yy5qb2luKCIgIiksb2Zmc2V0OmQuam9pbigiICIpfTtiPWEuZXh0ZW5kKHt9LGEudWkuZGlhbG9nLnByb3RvdHlwZS5vcHRpb25zLnBvc2l0aW9uLGIpfWVsc2UgYj1hLnVpLmRpYWxvZy5wcm90b3R5cGUub3B0aW9ucy5wb3NpdGlvbjtlPXRoaXMudWlEaWFsb2cuaXMoIjp2aXNpYmxlIiksZXx8dGhpcy51aURpYWxvZy5zaG93KCksdGhpcy51aURpYWxvZy5jc3Moe3RvcDowLGxlZnQ6MH0pLnBvc2l0aW9uKGEuZXh0ZW5kKHtvZjp3aW5kb3d9LGIpKSxlfHx0aGlzLnVpRGlhbG9nLmhpZGUoKX0sX3NldE9wdGlvbnM6ZnVuY3Rpb24oYil7dmFyIGM9dGhpcyxmPXt9LGc9ITE7YS5lYWNoKGIsZnVuY3Rpb24oYSxiKXtjLl9zZXRPcHRpb24oYSxiKSxhIGluIGQmJihnPSEwKSxhIGluIGUmJihmW2FdPWIpfSksZyYmdGhpcy5fc2l6ZSgpLHRoaXMudWlEaWFsb2cuaXMoIjpkYXRhKHJlc2l6YWJsZSkiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoIm9wdGlvbiIsZil9LF9zZXRPcHRpb246ZnVuY3Rpb24oYixkKXt2YXIgZT10aGlzLGY9ZS51aURpYWxvZztzd2l0Y2goYil7Y2FzZSJiZWZvcmVjbG9zZSI6Yj0iYmVmb3JlQ2xvc2UiO2JyZWFrO2Nhc2UiYnV0dG9ucyI6ZS5fY3JlYXRlQnV0dG9ucyhkKTticmVhaztjYXNlImNsb3NlVGV4dCI6ZS51aURpYWxvZ1RpdGxlYmFyQ2xvc2VUZXh0LnRleHQoIiIrZCk7YnJlYWs7Y2FzZSJkaWFsb2dDbGFzcyI6Zi5yZW1vdmVDbGFzcyhlLm9wdGlvbnMuZGlhbG9nQ2xhc3MpLmFkZENsYXNzKGMrZCk7YnJlYWs7Y2FzZSJkaXNhYmxlZCI6ZD9mLmFkZENsYXNzKCJ1aS1kaWFsb2ctZGlzYWJsZWQiKTpmLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctZGlzYWJsZWQiKTticmVhaztjYXNlImRyYWdnYWJsZSI6dmFyIGc9Zi5pcygiOmRhdGEoZHJhZ2dhYmxlKSIpO2cmJiFkJiZmLmRyYWdnYWJsZSgiZGVzdHJveSIpLCFnJiZkJiZlLl9tYWtlRHJhZ2dhYmxlKCk7YnJlYWs7Y2FzZSJwb3NpdGlvbiI6ZS5fcG9zaXRpb24oZCk7YnJlYWs7Y2FzZSJyZXNpemFibGUiOnZhciBoPWYuaXMoIjpkYXRhKHJlc2l6YWJsZSkiKTtoJiYhZCYmZi5yZXNpemFibGUoImRlc3Ryb3kiKSxoJiZ0eXBlb2YgZD09InN0cmluZyImJmYucmVzaXphYmxlKCJvcHRpb24iLCJoYW5kbGVzIixkKSwhaCYmZCE9PSExJiZlLl9tYWtlUmVzaXphYmxlKGQpO2JyZWFrO2Nhc2UidGl0bGUiOmEoIi51aS1kaWFsb2ctdGl0bGUiLGUudWlEaWFsb2dUaXRsZWJhcikuaHRtbCgiIisoZHx8IiYjMTYwOyIpKX1hLldpZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5hcHBseShlLGFyZ3VtZW50cyl9LF9zaXplOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5vcHRpb25zLGMsZCxlPXRoaXMudWlEaWFsb2cuaXMoIjp2aXNpYmxlIik7dGhpcy5lbGVtZW50LnNob3coKS5jc3Moe3dpZHRoOiJhdXRvIixtaW5IZWlnaHQ6MCxoZWlnaHQ6MH0pLGIubWluV2lkdGg+Yi53aWR0aCYmKGIud2lkdGg9Yi5taW5XaWR0aCksYz10aGlzLnVpRGlhbG9nLmNzcyh7aGVpZ2h0OiJhdXRvIix3aWR0aDpiLndpZHRofSkuaGVpZ2h0KCksZD1NYXRoLm1heCgwLGIubWluSGVpZ2h0LWMpO2lmKGIuaGVpZ2h0PT09ImF1dG8iKWlmKGEuc3VwcG9ydC5taW5IZWlnaHQpdGhpcy5lbGVtZW50LmNzcyh7bWluSGVpZ2h0OmQsaGVpZ2h0OiJhdXRvIn0pO2Vsc2V7dGhpcy51aURpYWxvZy5zaG93KCk7dmFyIGY9dGhpcy5lbGVtZW50LmNzcygiaGVpZ2h0IiwiYXV0byIpLmhlaWdodCgpO2V8fHRoaXMudWlEaWFsb2cuaGlkZSgpLHRoaXMuZWxlbWVudC5oZWlnaHQoTWF0aC5tYXgoZixkKSl9ZWxzZSB0aGlzLmVsZW1lbnQuaGVpZ2h0KE1hdGgubWF4KGIuaGVpZ2h0LWMsMCkpO3RoaXMudWlEaWFsb2cuaXMoIjpkYXRhKHJlc2l6YWJsZSkiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoIm9wdGlvbiIsIm1pbkhlaWdodCIsdGhpcy5fbWluSGVpZ2h0KCkpfX0pLGEuZXh0ZW5kKGEudWkuZGlhbG9nLHt2ZXJzaW9uOiIxLjguMjAiLHV1aWQ6MCxtYXhaOjAsZ2V0VGl0bGVJZDpmdW5jdGlvbihhKXt2YXIgYj1hLmF0dHIoImlkIik7cmV0dXJuIGJ8fCh0aGlzLnV1aWQrPTEsYj10aGlzLnV1aWQpLCJ1aS1kaWFsb2ctdGl0bGUtIitifSxvdmVybGF5OmZ1bmN0aW9uKGIpe3RoaXMuJGVsPWEudWkuZGlhbG9nLm92ZXJsYXkuY3JlYXRlKGIpfX0pLGEuZXh0ZW5kKGEudWkuZGlhbG9nLm92ZXJsYXkse2luc3RhbmNlczpbXSxvbGRJbnN0YW5jZXM6W10sbWF4WjowLGV2ZW50czphLm1hcCgiZm9jdXMsbW91c2Vkb3duLG1vdXNldXAsa2V5ZG93bixrZXlwcmVzcyxjbGljayIuc3BsaXQoIiwiKSxmdW5jdGlvbihhKXtyZXR1cm4gYSsiLmRpYWxvZy1vdmVybGF5In0pLmpvaW4oIiAiKSxjcmVhdGU6ZnVuY3Rpb24oYil7dGhpcy5pbnN0YW5jZXMubGVuZ3RoPT09MCYmKHNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnVpLmRpYWxvZy5vdmVybGF5Lmluc3RhbmNlcy5sZW5ndGgmJmEoZG9jdW1lbnQpLmJpbmQoYS51aS5kaWFsb2cub3ZlcmxheS5ldmVudHMsZnVuY3Rpb24oYil7aWYoYShiLnRhcmdldCkuekluZGV4KCk8YS51aS5kaWFsb2cub3ZlcmxheS5tYXhaKXJldHVybiExfSl9LDEpLGEoZG9jdW1lbnQpLmJpbmQoImtleWRvd24uZGlhbG9nLW92ZXJsYXkiLGZ1bmN0aW9uKGMpe2Iub3B0aW9ucy5jbG9zZU9uRXNjYXBlJiYhYy5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5rZXlDb2RlJiZjLmtleUNvZGU9PT1hLnVpLmtleUNvZGUuRVNDQVBFJiYoYi5jbG9zZShjKSxjLnByZXZlbnREZWZhdWx0KCkpfSksYSh3aW5kb3cpLmJpbmQoInJlc2l6ZS5kaWFsb2ctb3ZlcmxheSIsYS51aS5kaWFsb2cub3ZlcmxheS5yZXNpemUpKTt2YXIgYz0odGhpcy5vbGRJbnN0YW5jZXMucG9wKCl8fGEoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLXdpZGdldC1vdmVybGF5IikpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLmNzcyh7d2lkdGg6dGhpcy53aWR0aCgpLGhlaWdodDp0aGlzLmhlaWdodCgpfSk7cmV0dXJuIGEuZm4uYmdpZnJhbWUmJmMuYmdpZnJhbWUoKSx0aGlzLmluc3RhbmNlcy5wdXNoKGMpLGN9LGRlc3Ryb3k6ZnVuY3Rpb24oYil7dmFyIGM9YS5pbkFycmF5KGIsdGhpcy5pbnN0YW5jZXMpO2MhPS0xJiZ0aGlzLm9sZEluc3RhbmNlcy5wdXNoKHRoaXMuaW5zdGFuY2VzLnNwbGljZShjLDEpWzBdKSx0aGlzLmluc3RhbmNlcy5sZW5ndGg9PT0wJiZhKFtkb2N1bWVudCx3aW5kb3ddKS51bmJpbmQoIi5kaWFsb2ctb3ZlcmxheSIpLGIucmVtb3ZlKCk7dmFyIGQ9MDthLmVhY2godGhpcy5pbnN0YW5jZXMsZnVuY3Rpb24oKXtkPU1hdGgubWF4KGQsdGhpcy5jc3MoInotaW5kZXgiKSl9KSx0aGlzLm1heFo9ZH0saGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGIsYztyZXR1cm4gYS5icm93c2VyLm1zaWUmJmEuYnJvd3Nlci52ZXJzaW9uPDc/KGI9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCxkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCksYz1NYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0LGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0KSxiPGM/YSh3aW5kb3cpLmhlaWdodCgpKyJweCI6YisicHgiKTphKGRvY3VtZW50KS5oZWlnaHQoKSsicHgifSx3aWR0aDpmdW5jdGlvbigpe3ZhciBiLGM7cmV0dXJuIGEuYnJvd3Nlci5tc2llPyhiPU1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aCxkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoKSxjPU1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCxkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoKSxiPGM/YSh3aW5kb3cpLndpZHRoKCkrInB4IjpiKyJweCIpOmEoZG9jdW1lbnQpLndpZHRoKCkrInB4In0scmVzaXplOmZ1bmN0aW9uKCl7dmFyIGI9YShbXSk7YS5lYWNoKGEudWkuZGlhbG9nLm92ZXJsYXkuaW5zdGFuY2VzLGZ1bmN0aW9uKCl7Yj1iLmFkZCh0aGlzKX0pLGIuY3NzKHt3aWR0aDowLGhlaWdodDowfSkuY3NzKHt3aWR0aDphLnVpLmRpYWxvZy5vdmVybGF5LndpZHRoKCksaGVpZ2h0OmEudWkuZGlhbG9nLm92ZXJsYXkuaGVpZ2h0KCl9KX19KSxhLmV4dGVuZChhLnVpLmRpYWxvZy5vdmVybGF5LnByb3RvdHlwZSx7ZGVzdHJveTpmdW5jdGlvbigpe2EudWkuZGlhbG9nLm92ZXJsYXkuZGVzdHJveSh0aGlzLiRlbCl9fSl9KShqUXVlcnkpOw0K]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.draggable.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwCiogaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkKKiBJbmNsdWRlczoganF1ZXJ5LnVpLmRyYWdnYWJsZS5qcwoqIENvcHlyaWdodCAoYykgMjAxMiBBVVRIT1JTLnR4dDsgTGljZW5zZWQgTUlULCBHUEwgKi8KKGZ1bmN0aW9uKGEsYil7YS53aWRnZXQoInVpLmRyYWdnYWJsZSIsYS51aS5tb3VzZSx7d2lkZ2V0RXZlbnRQcmVmaXg6ImRyYWciLG9wdGlvbnM6e2FkZENsYXNzZXM6ITAsYXBwZW5kVG86InBhcmVudCIsYXhpczohMSxjb25uZWN0VG9Tb3J0YWJsZTohMSxjb250YWlubWVudDohMSxjdXJzb3I6ImF1dG8iLGN1cnNvckF0OiExLGdyaWQ6ITEsaGFuZGxlOiExLGhlbHBlcjoib3JpZ2luYWwiLGlmcmFtZUZpeDohMSxvcGFjaXR5OiExLHJlZnJlc2hQb3NpdGlvbnM6ITEscmV2ZXJ0OiExLHJldmVydER1cmF0aW9uOjUwMCxzY29wZToiZGVmYXVsdCIsc2Nyb2xsOiEwLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjIwLHNuYXA6ITEsc25hcE1vZGU6ImJvdGgiLHNuYXBUb2xlcmFuY2U6MjAsc3RhY2s6ITEsekluZGV4OiExfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLmhlbHBlcj09Im9yaWdpbmFsIiYmIS9eKD86cnxhfGYpLy50ZXN0KHRoaXMuZWxlbWVudC5jc3MoInBvc2l0aW9uIikpJiYodGhpcy5lbGVtZW50WzBdLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpLHRoaXMub3B0aW9ucy5hZGRDbGFzc2VzJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZSIpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUtZGlzYWJsZWQiKSx0aGlzLl9tb3VzZUluaXQoKX0sZGVzdHJveTpmdW5jdGlvbigpe2lmKCF0aGlzLmVsZW1lbnQuZGF0YSgiZHJhZ2dhYmxlIikpcmV0dXJuO3JldHVybiB0aGlzLmVsZW1lbnQucmVtb3ZlRGF0YSgiZHJhZ2dhYmxlIikudW5iaW5kKCIuZHJhZ2dhYmxlIikucmVtb3ZlQ2xhc3MoInVpLWRyYWdnYWJsZSB1aS1kcmFnZ2FibGUtZHJhZ2dpbmcgdWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fbW91c2VEZXN0cm95KCksdGhpc30sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbihiKXt2YXIgYz10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuaGVscGVyfHxjLmRpc2FibGVkfHxhKGIudGFyZ2V0KS5pcygiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKT8hMToodGhpcy5oYW5kbGU9dGhpcy5fZ2V0SGFuZGxlKGIpLHRoaXMuaGFuZGxlPyhjLmlmcmFtZUZpeCYmYShjLmlmcmFtZUZpeD09PSEwPyJpZnJhbWUiOmMuaWZyYW1lRml4KS5lYWNoKGZ1bmN0aW9uKCl7YSgnPGRpdiBjbGFzcz0idWktZHJhZ2dhYmxlLWlmcmFtZUZpeCIgc3R5bGU9ImJhY2tncm91bmQ6ICNmZmY7Ij48L2Rpdj4nKS5jc3Moe3dpZHRoOnRoaXMub2Zmc2V0V2lkdGgrInB4IixoZWlnaHQ6dGhpcy5vZmZzZXRIZWlnaHQrInB4Iixwb3NpdGlvbjoiYWJzb2x1dGUiLG9wYWNpdHk6IjAuMDAxIix6SW5kZXg6MWUzfSkuY3NzKGEodGhpcykub2Zmc2V0KCkpLmFwcGVuZFRvKCJib2R5Iil9KSwhMCk6ITEpfSxfbW91c2VTdGFydDpmdW5jdGlvbihiKXt2YXIgYz10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuaGVscGVyPXRoaXMuX2NyZWF0ZUhlbHBlcihiKSx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksYS51aS5kZG1hbmFnZXImJihhLnVpLmRkbWFuYWdlci5jdXJyZW50PXRoaXMpLHRoaXMuX2NhY2hlTWFyZ2lucygpLHRoaXMuY3NzUG9zaXRpb249dGhpcy5oZWxwZXIuY3NzKCJwb3NpdGlvbiIpLHRoaXMuc2Nyb2xsUGFyZW50PXRoaXMuaGVscGVyLnNjcm9sbFBhcmVudCgpLHRoaXMub2Zmc2V0PXRoaXMucG9zaXRpb25BYnM9dGhpcy5lbGVtZW50Lm9mZnNldCgpLHRoaXMub2Zmc2V0PXt0b3A6dGhpcy5vZmZzZXQudG9wLXRoaXMubWFyZ2lucy50b3AsbGVmdDp0aGlzLm9mZnNldC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0fSxhLmV4dGVuZCh0aGlzLm9mZnNldCx7Y2xpY2s6e2xlZnQ6Yi5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDpiLnBhZ2VZLXRoaXMub2Zmc2V0LnRvcH0scGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9KSx0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5wb3NpdGlvbj10aGlzLl9nZW5lcmF0ZVBvc2l0aW9uKGIpLHRoaXMub3JpZ2luYWxQYWdlWD1iLnBhZ2VYLHRoaXMub3JpZ2luYWxQYWdlWT1iLnBhZ2VZLGMuY3Vyc29yQXQmJnRoaXMuX2FkanVzdE9mZnNldEZyb21IZWxwZXIoYy5jdXJzb3JBdCksYy5jb250YWlubWVudCYmdGhpcy5fc2V0Q29udGFpbm1lbnQoKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsYik9PT0hMT8odGhpcy5fY2xlYXIoKSwhMSk6KHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKSxhLnVpLmRkbWFuYWdlciYmIWMuZHJvcEJlaGF2aW91ciYmYS51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModGhpcyxiKSx0aGlzLmhlbHBlci5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRyYWdnaW5nIiksdGhpcy5fbW91c2VEcmFnKGIsITApLGEudWkuZGRtYW5hZ2VyJiZhLnVpLmRkbWFuYWdlci5kcmFnU3RhcnQodGhpcyxiKSwhMCl9LF9tb3VzZURyYWc6ZnVuY3Rpb24oYixjKXt0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24oYiksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKTtpZighYyl7dmFyIGQ9dGhpcy5fdWlIYXNoKCk7aWYodGhpcy5fdHJpZ2dlcigiZHJhZyIsYixkKT09PSExKXJldHVybiB0aGlzLl9tb3VzZVVwKHt9KSwhMTt0aGlzLnBvc2l0aW9uPWQucG9zaXRpb259aWYoIXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLm9wdGlvbnMuYXhpcyE9InkiKXRoaXMuaGVscGVyWzBdLnN0eWxlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCI7aWYoIXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLm9wdGlvbnMuYXhpcyE9IngiKXRoaXMuaGVscGVyWzBdLnN0eWxlLnRvcD10aGlzLnBvc2l0aW9uLnRvcCsicHgiO3JldHVybiBhLnVpLmRkbWFuYWdlciYmYS51aS5kZG1hbmFnZXIuZHJhZyh0aGlzLGIpLCExfSxfbW91c2VTdG9wOmZ1bmN0aW9uKGIpe3ZhciBjPSExO2EudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJihjPWEudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyxiKSksdGhpcy5kcm9wcGVkJiYoYz10aGlzLmRyb3BwZWQsdGhpcy5kcm9wcGVkPSExKTt2YXIgZD10aGlzLmVsZW1lbnRbMF0sZT0hMTt3aGlsZShkJiYoZD1kLnBhcmVudE5vZGUpKWQ9PWRvY3VtZW50JiYoZT0hMCk7aWYoIWUmJnRoaXMub3B0aW9ucy5oZWxwZXI9PT0ib3JpZ2luYWwiKXJldHVybiExO2lmKHRoaXMub3B0aW9ucy5yZXZlcnQ9PSJpbnZhbGlkIiYmIWN8fHRoaXMub3B0aW9ucy5yZXZlcnQ9PSJ2YWxpZCImJmN8fHRoaXMub3B0aW9ucy5yZXZlcnQ9PT0hMHx8YS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5yZXZlcnQpJiZ0aGlzLm9wdGlvbnMucmV2ZXJ0LmNhbGwodGhpcy5lbGVtZW50LGMpKXt2YXIgZj10aGlzO2EodGhpcy5oZWxwZXIpLmFuaW1hdGUodGhpcy5vcmlnaW5hbFBvc2l0aW9uLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnREdXJhdGlvbiwxMCksZnVuY3Rpb24oKXtmLl90cmlnZ2VyKCJzdG9wIixiKSE9PSExJiZmLl9jbGVhcigpfSl9ZWxzZSB0aGlzLl90cmlnZ2VyKCJzdG9wIixiKSE9PSExJiZ0aGlzLl9jbGVhcigpO3JldHVybiExfSxfbW91c2VVcDpmdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5vcHRpb25zLmlmcmFtZUZpeD09PSEwJiZhKCJkaXYudWktZHJhZ2dhYmxlLWlmcmFtZUZpeCIpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcyl9KSxhLnVpLmRkbWFuYWdlciYmYS51aS5kZG1hbmFnZXIuZHJhZ1N0b3AodGhpcyxiKSxhLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VVcC5jYWxsKHRoaXMsYil9LGNhbmNlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlbHBlci5pcygiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpP3RoaXMuX21vdXNlVXAoe30pOnRoaXMuX2NsZWFyKCksdGhpc30sX2dldEhhbmRsZTpmdW5jdGlvbihiKXt2YXIgYz0hdGhpcy5vcHRpb25zLmhhbmRsZXx8IWEodGhpcy5vcHRpb25zLmhhbmRsZSx0aGlzLmVsZW1lbnQpLmxlbmd0aD8hMDohMTtyZXR1cm4gYSh0aGlzLm9wdGlvbnMuaGFuZGxlLHRoaXMuZWxlbWVudCkuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09Yi50YXJnZXQmJihjPSEwKX0pLGN9LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5vcHRpb25zLGQ9YS5pc0Z1bmN0aW9uKGMuaGVscGVyKT9hKGMuaGVscGVyLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbYl0pKTpjLmhlbHBlcj09ImNsb25lIj90aGlzLmVsZW1lbnQuY2xvbmUoKS5yZW1vdmVBdHRyKCJpZCIpOnRoaXMuZWxlbWVudDtyZXR1cm4gZC5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxkLmFwcGVuZFRvKGMuYXBwZW5kVG89PSJwYXJlbnQiP3RoaXMuZWxlbWVudFswXS5wYXJlbnROb2RlOmMuYXBwZW5kVG8pLGRbMF0hPXRoaXMuZWxlbWVudFswXSYmIS8oZml4ZWR8YWJzb2x1dGUpLy50ZXN0KGQuY3NzKCJwb3NpdGlvbiIpKSYmZC5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKSxkfSxfYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcjpmdW5jdGlvbihiKXt0eXBlb2YgYj09InN0cmluZyImJihiPWIuc3BsaXQoIiAiKSksYS5pc0FycmF5KGIpJiYoYj17bGVmdDorYlswXSx0b3A6K2JbMV18fDB9KSwibGVmdCJpbiBiJiYodGhpcy5vZmZzZXQuY2xpY2subGVmdD1iLmxlZnQrdGhpcy5tYXJnaW5zLmxlZnQpLCJyaWdodCJpbiBiJiYodGhpcy5vZmZzZXQuY2xpY2subGVmdD10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLWIucmlnaHQrdGhpcy5tYXJnaW5zLmxlZnQpLCJ0b3AiaW4gYiYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD1iLnRvcCt0aGlzLm1hcmdpbnMudG9wKSwiYm90dG9tImluIGImJih0aGlzLm9mZnNldC5jbGljay50b3A9dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtYi5ib3R0b20rdGhpcy5tYXJnaW5zLnRvcCl9LF9nZXRQYXJlbnRPZmZzZXQ6ZnVuY3Rpb24oKXt0aGlzLm9mZnNldFBhcmVudD10aGlzLmhlbHBlci5vZmZzZXRQYXJlbnQoKTt2YXIgYj10aGlzLm9mZnNldFBhcmVudC5vZmZzZXQoKTt0aGlzLmNzc1Bvc2l0aW9uPT0iYWJzb2x1dGUiJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9ZG9jdW1lbnQmJmEudWkuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pJiYoYi5sZWZ0Kz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCksYi50b3ArPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpKTtpZih0aGlzLm9mZnNldFBhcmVudFswXT09ZG9jdW1lbnQuYm9keXx8dGhpcy5vZmZzZXRQYXJlbnRbMF0udGFnTmFtZSYmdGhpcy5vZmZzZXRQYXJlbnRbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT0iaHRtbCImJmEuYnJvd3Nlci5tc2llKWI9e3RvcDowLGxlZnQ6MH07cmV0dXJue3RvcDpiLnRvcCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCksbGVmdDpiLmxlZnQrKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKX19LF9nZXRSZWxhdGl2ZU9mZnNldDpmdW5jdGlvbigpe2lmKHRoaXMuY3NzUG9zaXRpb249PSJyZWxhdGl2ZSIpe3ZhciBhPXRoaXMuZWxlbWVudC5wb3NpdGlvbigpO3JldHVybnt0b3A6YS50b3AtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygidG9wIiksMTApfHwwKSt0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSxsZWZ0OmEubGVmdC0ocGFyc2VJbnQodGhpcy5oZWxwZXIuY3NzKCJsZWZ0IiksMTApfHwwKSt0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCl9fXJldHVybnt0b3A6MCxsZWZ0OjB9fSxfY2FjaGVNYXJnaW5zOmZ1bmN0aW9uKCl7dGhpcy5tYXJnaW5zPXtsZWZ0OnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSwxMCl8fDAsdG9wOnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCxyaWdodDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5SaWdodCIpLDEwKXx8MCxib3R0b206cGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luQm90dG9tIiksMTApfHwwfX0sX2NhY2hlSGVscGVyUHJvcG9ydGlvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlbHBlclByb3BvcnRpb25zPXt3aWR0aDp0aGlzLmhlbHBlci5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuaGVscGVyLm91dGVySGVpZ2h0KCl9fSxfc2V0Q29udGFpbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLm9wdGlvbnM7Yi5jb250YWlubWVudD09InBhcmVudCImJihiLmNvbnRhaW5tZW50PXRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUpO2lmKGIuY29udGFpbm1lbnQ9PSJkb2N1bWVudCJ8fGIuY29udGFpbm1lbnQ9PSJ3aW5kb3ciKXRoaXMuY29udGFpbm1lbnQ9W2IuY29udGFpbm1lbnQ9PSJkb2N1bWVudCI/MDphKHdpbmRvdykuc2Nyb2xsTGVmdCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsYi5jb250YWlubWVudD09ImRvY3VtZW50Ij8wOmEod2luZG93KS5zY3JvbGxUb3AoKS10aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcCwoYi5jb250YWlubWVudD09ImRvY3VtZW50Ij8wOmEod2luZG93KS5zY3JvbGxMZWZ0KCkpK2EoYi5jb250YWlubWVudD09ImRvY3VtZW50Ij9kb2N1bWVudDp3aW5kb3cpLndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCwoYi5jb250YWlubWVudD09ImRvY3VtZW50Ij8wOmEod2luZG93KS5zY3JvbGxUb3AoKSkrKGEoYi5jb250YWlubWVudD09ImRvY3VtZW50Ij9kb2N1bWVudDp3aW5kb3cpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0KS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXTtpZighL14oZG9jdW1lbnR8d2luZG93fHBhcmVudCkkLy50ZXN0KGIuY29udGFpbm1lbnQpJiZiLmNvbnRhaW5tZW50LmNvbnN0cnVjdG9yIT1BcnJheSl7dmFyIGM9YShiLmNvbnRhaW5tZW50KSxkPWNbMF07aWYoIWQpcmV0dXJuO3ZhciBlPWMub2Zmc2V0KCksZj1hKGQpLmNzcygib3ZlcmZsb3ciKSE9ImhpZGRlbiI7dGhpcy5jb250YWlubWVudD1bKHBhcnNlSW50KGEoZCkuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChhKGQpLmNzcygicGFkZGluZ0xlZnQiKSwxMCl8fDApLChwYXJzZUludChhKGQpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChhKGQpLmNzcygicGFkZGluZ1RvcCIpLDEwKXx8MCksKGY/TWF0aC5tYXgoZC5zY3JvbGxXaWR0aCxkLm9mZnNldFdpZHRoKTpkLm9mZnNldFdpZHRoKS0ocGFyc2VJbnQoYShkKS5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KGEoZCkuY3NzKCJwYWRkaW5nUmlnaHQiKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQtdGhpcy5tYXJnaW5zLnJpZ2h0LChmP01hdGgubWF4KGQuc2Nyb2xsSGVpZ2h0LGQub2Zmc2V0SGVpZ2h0KTpkLm9mZnNldEhlaWdodCktKHBhcnNlSW50KGEoZCkuY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KGEoZCkuY3NzKCJwYWRkaW5nQm90dG9tIiksMTApfHwwKS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wLXRoaXMubWFyZ2lucy5ib3R0b21dLHRoaXMucmVsYXRpdmVfY29udGFpbmVyPWN9ZWxzZSBiLmNvbnRhaW5tZW50LmNvbnN0cnVjdG9yPT1BcnJheSYmKHRoaXMuY29udGFpbm1lbnQ9Yi5jb250YWlubWVudCl9LF9jb252ZXJ0UG9zaXRpb25UbzpmdW5jdGlvbihiLGMpe2N8fChjPXRoaXMucG9zaXRpb24pO3ZhciBkPWI9PSJhYnNvbHV0ZSI/MTotMSxlPXRoaXMub3B0aW9ucyxmPXRoaXMuY3NzUG9zaXRpb249PSJhYnNvbHV0ZSImJih0aGlzLnNjcm9sbFBhcmVudFswXT09ZG9jdW1lbnR8fCFhLnVpLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKSk/dGhpcy5vZmZzZXRQYXJlbnQ6dGhpcy5zY3JvbGxQYXJlbnQsZz0vKGh0bWx8Ym9keSkvaS50ZXN0KGZbMF0udGFnTmFtZSk7cmV0dXJue3RvcDpjLnRvcCt0aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AqZCt0aGlzLm9mZnNldC5wYXJlbnQudG9wKmQtKGEuYnJvd3Nlci5zYWZhcmkmJmEuYnJvd3Nlci52ZXJzaW9uPDUyNiYmdGhpcy5jc3NQb3NpdGlvbj09ImZpeGVkIj8wOih0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKTpnPzA6Zi5zY3JvbGxUb3AoKSkqZCksbGVmdDpjLmxlZnQrdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCpkK3RoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KmQtKGEuYnJvd3Nlci5zYWZhcmkmJmEuYnJvd3Nlci52ZXJzaW9uPDUyNiYmdGhpcy5jc3NQb3NpdGlvbj09ImZpeGVkIj8wOih0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk6Zz8wOmYuc2Nyb2xsTGVmdCgpKSpkKX19LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMub3B0aW9ucyxkPXRoaXMuY3NzUG9zaXRpb249PSJhYnNvbHV0ZSImJih0aGlzLnNjcm9sbFBhcmVudFswXT09ZG9jdW1lbnR8fCFhLnVpLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKSk/dGhpcy5vZmZzZXRQYXJlbnQ6dGhpcy5zY3JvbGxQYXJlbnQsZT0vKGh0bWx8Ym9keSkvaS50ZXN0KGRbMF0udGFnTmFtZSksZj1iLnBhZ2VYLGc9Yi5wYWdlWTtpZih0aGlzLm9yaWdpbmFsUG9zaXRpb24pe3ZhciBoO2lmKHRoaXMuY29udGFpbm1lbnQpe2lmKHRoaXMucmVsYXRpdmVfY29udGFpbmVyKXt2YXIgaT10aGlzLnJlbGF0aXZlX2NvbnRhaW5lci5vZmZzZXQoKTtoPVt0aGlzLmNvbnRhaW5tZW50WzBdK2kubGVmdCx0aGlzLmNvbnRhaW5tZW50WzFdK2kudG9wLHRoaXMuY29udGFpbm1lbnRbMl0raS5sZWZ0LHRoaXMuY29udGFpbm1lbnRbM10raS50b3BdfWVsc2UgaD10aGlzLmNvbnRhaW5tZW50O2IucGFnZVgtdGhpcy5vZmZzZXQuY2xpY2subGVmdDxoWzBdJiYoZj1oWzBdK3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQpLGIucGFnZVktdGhpcy5vZmZzZXQuY2xpY2sudG9wPGhbMV0mJihnPWhbMV0rdGhpcy5vZmZzZXQuY2xpY2sudG9wKSxiLnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+aFsyXSYmKGY9aFsyXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSxiLnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD5oWzNdJiYoZz1oWzNdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCl9aWYoYy5ncmlkKXt2YXIgaj1jLmdyaWRbMV0/dGhpcy5vcmlnaW5hbFBhZ2VZK01hdGgucm91bmQoKGctdGhpcy5vcmlnaW5hbFBhZ2VZKS9jLmdyaWRbMV0pKmMuZ3JpZFsxXTp0aGlzLm9yaWdpbmFsUGFnZVk7Zz1oP2otdGhpcy5vZmZzZXQuY2xpY2sudG9wPGhbMV18fGotdGhpcy5vZmZzZXQuY2xpY2sudG9wPmhbM10/ai10aGlzLm9mZnNldC5jbGljay50b3A8aFsxXT9qK2MuZ3JpZFsxXTpqLWMuZ3JpZFsxXTpqOmo7dmFyIGs9Yy5ncmlkWzBdP3RoaXMub3JpZ2luYWxQYWdlWCtNYXRoLnJvdW5kKChmLXRoaXMub3JpZ2luYWxQYWdlWCkvYy5ncmlkWzBdKSpjLmdyaWRbMF06dGhpcy5vcmlnaW5hbFBhZ2VYO2Y9aD9rLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8aFswXXx8ay10aGlzLm9mZnNldC5jbGljay5sZWZ0PmhbMl0/ay10aGlzLm9mZnNldC5jbGljay5sZWZ0PGhbMF0/aytjLmdyaWRbMF06ay1jLmdyaWRbMF06azprfX1yZXR1cm57dG9wOmctdGhpcy5vZmZzZXQuY2xpY2sudG9wLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wKyhhLmJyb3dzZXIuc2FmYXJpJiZhLmJyb3dzZXIudmVyc2lvbjw1MjYmJnRoaXMuY3NzUG9zaXRpb249PSJmaXhlZCI/MDp0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKTplPzA6ZC5zY3JvbGxUb3AoKSksbGVmdDpmLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQtdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVmdCsoYS5icm93c2VyLnNhZmFyaSYmYS5icm93c2VyLnZlcnNpb248NTI2JiZ0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPzA6dGhpcy5jc3NQb3NpdGlvbj09ImZpeGVkIj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOmU/MDpkLnNjcm9sbExlZnQoKSl9fSxfY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmhlbHBlci5yZW1vdmVDbGFzcygidWktZHJhZ2dhYmxlLWRyYWdnaW5nIiksdGhpcy5oZWxwZXJbMF0hPXRoaXMuZWxlbWVudFswXSYmIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbCYmdGhpcy5oZWxwZXIucmVtb3ZlKCksdGhpcy5oZWxwZXI9bnVsbCx0aGlzLmNhbmNlbEhlbHBlclJlbW92YWw9ITF9LF90cmlnZ2VyOmZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gZD1kfHx0aGlzLl91aUhhc2goKSxhLnVpLnBsdWdpbi5jYWxsKHRoaXMsYixbYyxkXSksYj09ImRyYWciJiYodGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSksYS5XaWRnZXQucHJvdG90eXBlLl90cmlnZ2VyLmNhbGwodGhpcyxiLGMsZCl9LHBsdWdpbnM6e30sX3VpSGFzaDpmdW5jdGlvbihhKXtyZXR1cm57aGVscGVyOnRoaXMuaGVscGVyLHBvc2l0aW9uOnRoaXMucG9zaXRpb24sb3JpZ2luYWxQb3NpdGlvbjp0aGlzLm9yaWdpbmFsUG9zaXRpb24sb2Zmc2V0OnRoaXMucG9zaXRpb25BYnN9fX0pLGEuZXh0ZW5kKGEudWkuZHJhZ2dhYmxlLHt2ZXJzaW9uOiIxLjguMjAifSksYS51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJjb25uZWN0VG9Tb3J0YWJsZSIse3N0YXJ0OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKSxlPWQub3B0aW9ucyxmPWEuZXh0ZW5kKHt9LGMse2l0ZW06ZC5lbGVtZW50fSk7ZC5zb3J0YWJsZXM9W10sYShlLmNvbm5lY3RUb1NvcnRhYmxlKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YS5kYXRhKHRoaXMsInNvcnRhYmxlIik7YyYmIWMub3B0aW9ucy5kaXNhYmxlZCYmKGQuc29ydGFibGVzLnB1c2goe2luc3RhbmNlOmMsc2hvdWxkUmV2ZXJ0OmMub3B0aW9ucy5yZXZlcnR9KSxjLnJlZnJlc2hQb3NpdGlvbnMoKSxjLl90cmlnZ2VyKCJhY3RpdmF0ZSIsYixmKSl9KX0sc3RvcDpmdW5jdGlvbihiLGMpe3ZhciBkPWEodGhpcykuZGF0YSgiZHJhZ2dhYmxlIiksZT1hLmV4dGVuZCh7fSxjLHtpdGVtOmQuZWxlbWVudH0pO2EuZWFjaChkLnNvcnRhYmxlcyxmdW5jdGlvbigpe3RoaXMuaW5zdGFuY2UuaXNPdmVyPyh0aGlzLmluc3RhbmNlLmlzT3Zlcj0wLGQuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCx0aGlzLmluc3RhbmNlLmNhbmNlbEhlbHBlclJlbW92YWw9ITEsdGhpcy5zaG91bGRSZXZlcnQmJih0aGlzLmluc3RhbmNlLm9wdGlvbnMucmV2ZXJ0PSEwKSx0aGlzLmluc3RhbmNlLl9tb3VzZVN0b3AoYiksdGhpcy5pbnN0YW5jZS5vcHRpb25zLmhlbHBlcj10aGlzLmluc3RhbmNlLm9wdGlvbnMuX2hlbHBlcixkLm9wdGlvbnMuaGVscGVyPT0ib3JpZ2luYWwiJiZ0aGlzLmluc3RhbmNlLmN1cnJlbnRJdGVtLmNzcyh7dG9wOiJhdXRvIixsZWZ0OiJhdXRvIn0pKToodGhpcy5pbnN0YW5jZS5jYW5jZWxIZWxwZXJSZW1vdmFsPSExLHRoaXMuaW5zdGFuY2UuX3RyaWdnZXIoImRlYWN0aXZhdGUiLGIsZSkpfSl9LGRyYWc6ZnVuY3Rpb24oYixjKXt2YXIgZD1hKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLGU9dGhpcyxmPWZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMub2Zmc2V0LmNsaWNrLnRvcCxkPXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQsZT10aGlzLnBvc2l0aW9uQWJzLnRvcCxmPXRoaXMucG9zaXRpb25BYnMubGVmdCxnPWIuaGVpZ2h0LGg9Yi53aWR0aCxpPWIudG9wLGo9Yi5sZWZ0O3JldHVybiBhLnVpLmlzT3ZlcihlK2MsZitkLGksaixnLGgpfTthLmVhY2goZC5zb3J0YWJsZXMsZnVuY3Rpb24oZil7dGhpcy5pbnN0YW5jZS5wb3NpdGlvbkFicz1kLnBvc2l0aW9uQWJzLHRoaXMuaW5zdGFuY2UuaGVscGVyUHJvcG9ydGlvbnM9ZC5oZWxwZXJQcm9wb3J0aW9ucyx0aGlzLmluc3RhbmNlLm9mZnNldC5jbGljaz1kLm9mZnNldC5jbGljayx0aGlzLmluc3RhbmNlLl9pbnRlcnNlY3RzV2l0aCh0aGlzLmluc3RhbmNlLmNvbnRhaW5lckNhY2hlKT8odGhpcy5pbnN0YW5jZS5pc092ZXJ8fCh0aGlzLmluc3RhbmNlLmlzT3Zlcj0xLHRoaXMuaW5zdGFuY2UuY3VycmVudEl0ZW09YShlKS5jbG9uZSgpLnJlbW92ZUF0dHIoImlkIikuYXBwZW5kVG8odGhpcy5pbnN0YW5jZS5lbGVtZW50KS5kYXRhKCJzb3J0YWJsZS1pdGVtIiwhMCksdGhpcy5pbnN0YW5jZS5vcHRpb25zLl9oZWxwZXI9dGhpcy5pbnN0YW5jZS5vcHRpb25zLmhlbHBlcix0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGVscGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGMuaGVscGVyWzBdfSxiLnRhcmdldD10aGlzLmluc3RhbmNlLmN1cnJlbnRJdGVtWzBdLHRoaXMuaW5zdGFuY2UuX21vdXNlQ2FwdHVyZShiLCEwKSx0aGlzLmluc3RhbmNlLl9tb3VzZVN0YXJ0KGIsITAsITApLHRoaXMuaW5zdGFuY2Uub2Zmc2V0LmNsaWNrLnRvcD1kLm9mZnNldC5jbGljay50b3AsdGhpcy5pbnN0YW5jZS5vZmZzZXQuY2xpY2subGVmdD1kLm9mZnNldC5jbGljay5sZWZ0LHRoaXMuaW5zdGFuY2Uub2Zmc2V0LnBhcmVudC5sZWZ0LT1kLm9mZnNldC5wYXJlbnQubGVmdC10aGlzLmluc3RhbmNlLm9mZnNldC5wYXJlbnQubGVmdCx0aGlzLmluc3RhbmNlLm9mZnNldC5wYXJlbnQudG9wLT1kLm9mZnNldC5wYXJlbnQudG9wLXRoaXMuaW5zdGFuY2Uub2Zmc2V0LnBhcmVudC50b3AsZC5fdHJpZ2dlcigidG9Tb3J0YWJsZSIsYiksZC5kcm9wcGVkPXRoaXMuaW5zdGFuY2UuZWxlbWVudCxkLmN1cnJlbnRJdGVtPWQuZWxlbWVudCx0aGlzLmluc3RhbmNlLmZyb21PdXRzaWRlPWQpLHRoaXMuaW5zdGFuY2UuY3VycmVudEl0ZW0mJnRoaXMuaW5zdGFuY2UuX21vdXNlRHJhZyhiKSk6dGhpcy5pbnN0YW5jZS5pc092ZXImJih0aGlzLmluc3RhbmNlLmlzT3Zlcj0wLHRoaXMuaW5zdGFuY2UuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCx0aGlzLmluc3RhbmNlLm9wdGlvbnMucmV2ZXJ0PSExLHRoaXMuaW5zdGFuY2UuX3RyaWdnZXIoIm91dCIsYix0aGlzLmluc3RhbmNlLl91aUhhc2godGhpcy5pbnN0YW5jZSkpLHRoaXMuaW5zdGFuY2UuX21vdXNlU3RvcChiLCEwKSx0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGVscGVyPXRoaXMuaW5zdGFuY2Uub3B0aW9ucy5faGVscGVyLHRoaXMuaW5zdGFuY2UuY3VycmVudEl0ZW0ucmVtb3ZlKCksdGhpcy5pbnN0YW5jZS5wbGFjZWhvbGRlciYmdGhpcy5pbnN0YW5jZS5wbGFjZWhvbGRlci5yZW1vdmUoKSxkLl90cmlnZ2VyKCJmcm9tU29ydGFibGUiLGIpLGQuZHJvcHBlZD0hMSl9KX19KSxhLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsImN1cnNvciIse3N0YXJ0OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSgiYm9keSIpLGU9YSh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25zO2QuY3NzKCJjdXJzb3IiKSYmKGUuX2N1cnNvcj1kLmNzcygiY3Vyc29yIikpLGQuY3NzKCJjdXJzb3IiLGUuY3Vyc29yKX0sc3RvcDpmdW5jdGlvbihiLGMpe3ZhciBkPWEodGhpcykuZGF0YSgiZHJhZ2dhYmxlIikub3B0aW9ucztkLl9jdXJzb3ImJmEoImJvZHkiKS5jc3MoImN1cnNvciIsZC5fY3Vyc29yKX19KSxhLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsIm9wYWNpdHkiLHtzdGFydDpmdW5jdGlvbihiLGMpe3ZhciBkPWEoYy5oZWxwZXIpLGU9YSh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25zO2QuY3NzKCJvcGFjaXR5IikmJihlLl9vcGFjaXR5PWQuY3NzKCJvcGFjaXR5IikpLGQuY3NzKCJvcGFjaXR5IixlLm9wYWNpdHkpfSxzdG9wOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25zO2QuX29wYWNpdHkmJmEoYy5oZWxwZXIpLmNzcygib3BhY2l0eSIsZC5fb3BhY2l0eSl9fSksYS51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJzY3JvbGwiLHtzdGFydDpmdW5jdGlvbihiLGMpe3ZhciBkPWEodGhpcykuZGF0YSgiZHJhZ2dhYmxlIik7ZC5zY3JvbGxQYXJlbnRbMF0hPWRvY3VtZW50JiZkLnNjcm9sbFBhcmVudFswXS50YWdOYW1lIT0iSFRNTCImJihkLm92ZXJmbG93T2Zmc2V0PWQuc2Nyb2xsUGFyZW50Lm9mZnNldCgpKX0sZHJhZzpmdW5jdGlvbihiLGMpe3ZhciBkPWEodGhpcykuZGF0YSgiZHJhZ2dhYmxlIiksZT1kLm9wdGlvbnMsZj0hMTtpZihkLnNjcm9sbFBhcmVudFswXSE9ZG9jdW1lbnQmJmQuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWUhPSJIVE1MIil7aWYoIWUuYXhpc3x8ZS5heGlzIT0ieCIpZC5vdmVyZmxvd09mZnNldC50b3ArZC5zY3JvbGxQYXJlbnRbMF0ub2Zmc2V0SGVpZ2h0LWIucGFnZVk8ZS5zY3JvbGxTZW5zaXRpdml0eT9kLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3A9Zj1kLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3ArZS5zY3JvbGxTcGVlZDpiLnBhZ2VZLWQub3ZlcmZsb3dPZmZzZXQudG9wPGUuc2Nyb2xsU2Vuc2l0aXZpdHkmJihkLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3A9Zj1kLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3AtZS5zY3JvbGxTcGVlZCk7aWYoIWUuYXhpc3x8ZS5heGlzIT0ieSIpZC5vdmVyZmxvd09mZnNldC5sZWZ0K2Quc2Nyb2xsUGFyZW50WzBdLm9mZnNldFdpZHRoLWIucGFnZVg8ZS5zY3JvbGxTZW5zaXRpdml0eT9kLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0PWY9ZC5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdCtlLnNjcm9sbFNwZWVkOmIucGFnZVgtZC5vdmVyZmxvd09mZnNldC5sZWZ0PGUuc2Nyb2xsU2Vuc2l0aXZpdHkmJihkLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0PWY9ZC5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdC1lLnNjcm9sbFNwZWVkKX1lbHNle2lmKCFlLmF4aXN8fGUuYXhpcyE9IngiKWIucGFnZVktYShkb2N1bWVudCkuc2Nyb2xsVG9wKCk8ZS5zY3JvbGxTZW5zaXRpdml0eT9mPWEoZG9jdW1lbnQpLnNjcm9sbFRvcChhKGRvY3VtZW50KS5zY3JvbGxUb3AoKS1lLnNjcm9sbFNwZWVkKTphKHdpbmRvdykuaGVpZ2h0KCktKGIucGFnZVktYShkb2N1bWVudCkuc2Nyb2xsVG9wKCkpPGUuc2Nyb2xsU2Vuc2l0aXZpdHkmJihmPWEoZG9jdW1lbnQpLnNjcm9sbFRvcChhKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlLnNjcm9sbFNwZWVkKSk7aWYoIWUuYXhpc3x8ZS5heGlzIT0ieSIpYi5wYWdlWC1hKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCk8ZS5zY3JvbGxTZW5zaXRpdml0eT9mPWEoZG9jdW1lbnQpLnNjcm9sbExlZnQoYShkb2N1bWVudCkuc2Nyb2xsTGVmdCgpLWUuc2Nyb2xsU3BlZWQpOmEod2luZG93KS53aWR0aCgpLShiLnBhZ2VYLWEoZG9jdW1lbnQpLnNjcm9sbExlZnQoKSk8ZS5zY3JvbGxTZW5zaXRpdml0eSYmKGY9YShkb2N1bWVudCkuc2Nyb2xsTGVmdChhKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkrZS5zY3JvbGxTcGVlZCkpfWYhPT0hMSYmYS51aS5kZG1hbmFnZXImJiFlLmRyb3BCZWhhdmlvdXImJmEudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKGQsYil9fSksYS51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJzbmFwIix7c3RhcnQ6ZnVuY3Rpb24oYixjKXt2YXIgZD1hKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLGU9ZC5vcHRpb25zO2Quc25hcEVsZW1lbnRzPVtdLGEoZS5zbmFwLmNvbnN0cnVjdG9yIT1TdHJpbmc/ZS5zbmFwLml0ZW1zfHwiOmRhdGEoZHJhZ2dhYmxlKSI6ZS5zbmFwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9YSh0aGlzKSxjPWIub2Zmc2V0KCk7dGhpcyE9ZC5lbGVtZW50WzBdJiZkLnNuYXBFbGVtZW50cy5wdXNoKHtpdGVtOnRoaXMsd2lkdGg6Yi5vdXRlcldpZHRoKCksaGVpZ2h0OmIub3V0ZXJIZWlnaHQoKSx0b3A6Yy50b3AsbGVmdDpjLmxlZnR9KX0pfSxkcmFnOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKSxlPWQub3B0aW9ucyxmPWUuc25hcFRvbGVyYW5jZSxnPWMub2Zmc2V0LmxlZnQsaD1nK2QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgsaT1jLm9mZnNldC50b3Asaj1pK2QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0O2Zvcih2YXIgaz1kLnNuYXBFbGVtZW50cy5sZW5ndGgtMTtrPj0wO2stLSl7dmFyIGw9ZC5zbmFwRWxlbWVudHNba10ubGVmdCxtPWwrZC5zbmFwRWxlbWVudHNba10ud2lkdGgsbj1kLnNuYXBFbGVtZW50c1trXS50b3Asbz1uK2Quc25hcEVsZW1lbnRzW2tdLmhlaWdodDtpZighKGwtZjxnJiZnPG0rZiYmbi1mPGkmJmk8bytmfHxsLWY8ZyYmZzxtK2YmJm4tZjxqJiZqPG8rZnx8bC1mPGgmJmg8bStmJiZuLWY8aSYmaTxvK2Z8fGwtZjxoJiZoPG0rZiYmbi1mPGomJmo8bytmKSl7ZC5zbmFwRWxlbWVudHNba10uc25hcHBpbmcmJmQub3B0aW9ucy5zbmFwLnJlbGVhc2UmJmQub3B0aW9ucy5zbmFwLnJlbGVhc2UuY2FsbChkLmVsZW1lbnQsYixhLmV4dGVuZChkLl91aUhhc2goKSx7c25hcEl0ZW06ZC5zbmFwRWxlbWVudHNba10uaXRlbX0pKSxkLnNuYXBFbGVtZW50c1trXS5zbmFwcGluZz0hMTtjb250aW51ZX1pZihlLnNuYXBNb2RlIT0iaW5uZXIiKXt2YXIgcD1NYXRoLmFicyhuLWopPD1mLHE9TWF0aC5hYnMoby1pKTw9ZixyPU1hdGguYWJzKGwtaCk8PWYscz1NYXRoLmFicyhtLWcpPD1mO3AmJihjLnBvc2l0aW9uLnRvcD1kLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6bi1kLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCxsZWZ0OjB9KS50b3AtZC5tYXJnaW5zLnRvcCkscSYmKGMucG9zaXRpb24udG9wPWQuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDpvLGxlZnQ6MH0pLnRvcC1kLm1hcmdpbnMudG9wKSxyJiYoYy5wb3NpdGlvbi5sZWZ0PWQuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDowLGxlZnQ6bC1kLmhlbHBlclByb3BvcnRpb25zLndpZHRofSkubGVmdC1kLm1hcmdpbnMubGVmdCkscyYmKGMucG9zaXRpb24ubGVmdD1kLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6MCxsZWZ0Om19KS5sZWZ0LWQubWFyZ2lucy5sZWZ0KX12YXIgdD1wfHxxfHxyfHxzO2lmKGUuc25hcE1vZGUhPSJvdXRlciIpe3ZhciBwPU1hdGguYWJzKG4taSk8PWYscT1NYXRoLmFicyhvLWopPD1mLHI9TWF0aC5hYnMobC1nKTw9ZixzPU1hdGguYWJzKG0taCk8PWY7cCYmKGMucG9zaXRpb24udG9wPWQuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDpuLGxlZnQ6MH0pLnRvcC1kLm1hcmdpbnMudG9wKSxxJiYoYy5wb3NpdGlvbi50b3A9ZC5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOm8tZC5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsbGVmdDowfSkudG9wLWQubWFyZ2lucy50b3ApLHImJihjLnBvc2l0aW9uLmxlZnQ9ZC5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsfSkubGVmdC1kLm1hcmdpbnMubGVmdCkscyYmKGMucG9zaXRpb24ubGVmdD1kLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6MCxsZWZ0Om0tZC5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aH0pLmxlZnQtZC5tYXJnaW5zLmxlZnQpfSFkLnNuYXBFbGVtZW50c1trXS5zbmFwcGluZyYmKHB8fHF8fHJ8fHN8fHQpJiZkLm9wdGlvbnMuc25hcC5zbmFwJiZkLm9wdGlvbnMuc25hcC5zbmFwLmNhbGwoZC5lbGVtZW50LGIsYS5leHRlbmQoZC5fdWlIYXNoKCkse3NuYXBJdGVtOmQuc25hcEVsZW1lbnRzW2tdLml0ZW19KSksZC5zbmFwRWxlbWVudHNba10uc25hcHBpbmc9cHx8cXx8cnx8c3x8dH19fSksYS51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJzdGFjayIse3N0YXJ0OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25zLGU9YS5tYWtlQXJyYXkoYShkLnN0YWNrKSkuc29ydChmdW5jdGlvbihiLGMpe3JldHVybihwYXJzZUludChhKGIpLmNzcygiekluZGV4IiksMTApfHwwKS0ocGFyc2VJbnQoYShjKS5jc3MoInpJbmRleCIpLDEwKXx8MCl9KTtpZighZS5sZW5ndGgpcmV0dXJuO3ZhciBmPXBhcnNlSW50KGVbMF0uc3R5bGUuekluZGV4KXx8MDthKGUpLmVhY2goZnVuY3Rpb24oYSl7dGhpcy5zdHlsZS56SW5kZXg9ZithfSksdGhpc1swXS5zdHlsZS56SW5kZXg9ZitlLmxlbmd0aH19KSxhLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInpJbmRleCIse3N0YXJ0OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YShjLmhlbHBlciksZT1hKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLm9wdGlvbnM7ZC5jc3MoInpJbmRleCIpJiYoZS5fekluZGV4PWQuY3NzKCJ6SW5kZXgiKSksZC5jc3MoInpJbmRleCIsZS56SW5kZXgpfSxzdG9wOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25zO2QuX3pJbmRleCYmYShjLmhlbHBlcikuY3NzKCJ6SW5kZXgiLGQuX3pJbmRleCl9fSl9KShqUXVlcnkpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.mouse.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwCiogaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkKKiBJbmNsdWRlczoganF1ZXJ5LnVpLm1vdXNlLmpzCiogQ29weXJpZ2h0IChjKSAyMDEyIEFVVEhPUlMudHh0OyBMaWNlbnNlZCBNSVQsIEdQTCAqLwooZnVuY3Rpb24oYSxiKXt2YXIgYz0hMTthKGRvY3VtZW50KS5tb3VzZXVwKGZ1bmN0aW9uKGEpe2M9ITF9KSxhLndpZGdldCgidWkubW91c2UiLHtvcHRpb25zOntjYW5jZWw6IjppbnB1dCxvcHRpb24iLGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciBiPXRoaXM7dGhpcy5lbGVtZW50LmJpbmQoIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihhKXtyZXR1cm4gYi5fbW91c2VEb3duKGEpfSkuYmluZCgiY2xpY2suIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oYyl7aWYoITA9PT1hLmRhdGEoYy50YXJnZXQsYi53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSlyZXR1cm4gYS5yZW1vdmVEYXRhKGMudGFyZ2V0LGIud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksYy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSwhMX0pLHRoaXMuc3RhcnRlZD0hMX0sX21vdXNlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC51bmJpbmQoIi4iK3RoaXMud2lkZ2V0TmFtZSksYShkb2N1bWVudCkudW5iaW5kKCJtb3VzZW1vdmUuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLnVuYmluZCgibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpfSxfbW91c2VEb3duOmZ1bmN0aW9uKGIpe2lmKGMpcmV0dXJuO3RoaXMuX21vdXNlU3RhcnRlZCYmdGhpcy5fbW91c2VVcChiKSx0aGlzLl9tb3VzZURvd25FdmVudD1iO3ZhciBkPXRoaXMsZT1iLndoaWNoPT0xLGY9dHlwZW9mIHRoaXMub3B0aW9ucy5jYW5jZWw9PSJzdHJpbmciJiZiLnRhcmdldC5ub2RlTmFtZT9hKGIudGFyZ2V0KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aDohMTtpZighZXx8Znx8IXRoaXMuX21vdXNlQ2FwdHVyZShiKSlyZXR1cm4hMDt0aGlzLm1vdXNlRGVsYXlNZXQ9IXRoaXMub3B0aW9ucy5kZWxheSx0aGlzLm1vdXNlRGVsYXlNZXR8fCh0aGlzLl9tb3VzZURlbGF5VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2QubW91c2VEZWxheU1ldD0hMH0sdGhpcy5vcHRpb25zLmRlbGF5KSk7aWYodGhpcy5fbW91c2VEaXN0YW5jZU1ldChiKSYmdGhpcy5fbW91c2VEZWxheU1ldChiKSl7dGhpcy5fbW91c2VTdGFydGVkPXRoaXMuX21vdXNlU3RhcnQoYikhPT0hMTtpZighdGhpcy5fbW91c2VTdGFydGVkKXJldHVybiBiLnByZXZlbnREZWZhdWx0KCksITB9cmV0dXJuITA9PT1hLmRhdGEoYi50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSYmYS5yZW1vdmVEYXRhKGIudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuX21vdXNlTW92ZShhKX0sdGhpcy5fbW91c2VVcERlbGVnYXRlPWZ1bmN0aW9uKGEpe3JldHVybiBkLl9tb3VzZVVwKGEpfSxhKGRvY3VtZW50KS5iaW5kKCJtb3VzZW1vdmUuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLmJpbmQoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKSxiLnByZXZlbnREZWZhdWx0KCksYz0hMCwhMH0sX21vdXNlTW92ZTpmdW5jdGlvbihiKXtyZXR1cm4hYS5icm93c2VyLm1zaWV8fGRvY3VtZW50LmRvY3VtZW50TW9kZT49OXx8ISFiLmJ1dHRvbj90aGlzLl9tb3VzZVN0YXJ0ZWQ/KHRoaXMuX21vdXNlRHJhZyhiKSxiLnByZXZlbnREZWZhdWx0KCkpOih0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGIpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KGIpJiYodGhpcy5fbW91c2VTdGFydGVkPXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsYikhPT0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/dGhpcy5fbW91c2VEcmFnKGIpOnRoaXMuX21vdXNlVXAoYikpLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpOnRoaXMuX21vdXNlVXAoYil9LF9tb3VzZVVwOmZ1bmN0aW9uKGIpe3JldHVybiBhKGRvY3VtZW50KS51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLGIudGFyZ2V0PT10aGlzLl9tb3VzZURvd25FdmVudC50YXJnZXQmJmEuZGF0YShiLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIsITApLHRoaXMuX21vdXNlU3RvcChiKSksITF9LF9tb3VzZURpc3RhbmNlTWV0OmZ1bmN0aW9uKGEpe3JldHVybiBNYXRoLm1heChNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWC1hLnBhZ2VYKSxNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWS1hLnBhZ2VZKSk+PXRoaXMub3B0aW9ucy5kaXN0YW5jZX0sX21vdXNlRGVsYXlNZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubW91c2VEZWxheU1ldH0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oYSl7fSxfbW91c2VEcmFnOmZ1bmN0aW9uKGEpe30sX21vdXNlU3RvcDpmdW5jdGlvbihhKXt9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oYSl7cmV0dXJuITB9fSl9KShqUXVlcnkpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.position.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwDQoqIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LXVpDQoqIEluY2x1ZGVzOiBqcXVlcnkudWkucG9zaXRpb24uanMNCiogQ29weXJpZ2h0IChjKSAyMDEyIEFVVEhPUlMudHh0OyBMaWNlbnNlZCBNSVQsIEdQTCAqLw0KKGZ1bmN0aW9uKGEsYil7YS51aT1hLnVpfHx7fTt2YXIgYz0vbGVmdHxjZW50ZXJ8cmlnaHQvLGQ9L3RvcHxjZW50ZXJ8Ym90dG9tLyxlPSJjZW50ZXIiLGY9e30sZz1hLmZuLnBvc2l0aW9uLGg9YS5mbi5vZmZzZXQ7YS5mbi5wb3NpdGlvbj1mdW5jdGlvbihiKXtpZighYnx8IWIub2YpcmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpO2I9YS5leHRlbmQoe30sYik7dmFyIGg9YShiLm9mKSxpPWhbMF0saj0oYi5jb2xsaXNpb258fCJmbGlwIikuc3BsaXQoIiAiKSxrPWIub2Zmc2V0P2Iub2Zmc2V0LnNwbGl0KCIgIik6WzAsMF0sbCxtLG47cmV0dXJuIGkubm9kZVR5cGU9PT05PyhsPWgud2lkdGgoKSxtPWguaGVpZ2h0KCksbj17dG9wOjAsbGVmdDowfSk6aS5zZXRUaW1lb3V0PyhsPWgud2lkdGgoKSxtPWguaGVpZ2h0KCksbj17dG9wOmguc2Nyb2xsVG9wKCksbGVmdDpoLnNjcm9sbExlZnQoKX0pOmkucHJldmVudERlZmF1bHQ/KGIuYXQ9ImxlZnQgdG9wIixsPW09MCxuPXt0b3A6Yi5vZi5wYWdlWSxsZWZ0OmIub2YucGFnZVh9KToobD1oLm91dGVyV2lkdGgoKSxtPWgub3V0ZXJIZWlnaHQoKSxuPWgub2Zmc2V0KCkpLGEuZWFjaChbIm15IiwiYXQiXSxmdW5jdGlvbigpe3ZhciBhPShiW3RoaXNdfHwiIikuc3BsaXQoIiAiKTthLmxlbmd0aD09PTEmJihhPWMudGVzdChhWzBdKT9hLmNvbmNhdChbZV0pOmQudGVzdChhWzBdKT9bZV0uY29uY2F0KGEpOltlLGVdKSxhWzBdPWMudGVzdChhWzBdKT9hWzBdOmUsYVsxXT1kLnRlc3QoYVsxXSk/YVsxXTplLGJbdGhpc109YX0pLGoubGVuZ3RoPT09MSYmKGpbMV09alswXSksa1swXT1wYXJzZUludChrWzBdLDEwKXx8MCxrLmxlbmd0aD09PTEmJihrWzFdPWtbMF0pLGtbMV09cGFyc2VJbnQoa1sxXSwxMCl8fDAsYi5hdFswXT09PSJyaWdodCI/bi5sZWZ0Kz1sOmIuYXRbMF09PT1lJiYobi5sZWZ0Kz1sLzIpLGIuYXRbMV09PT0iYm90dG9tIj9uLnRvcCs9bTpiLmF0WzFdPT09ZSYmKG4udG9wKz1tLzIpLG4ubGVmdCs9a1swXSxuLnRvcCs9a1sxXSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGQ9Yy5vdXRlcldpZHRoKCksZz1jLm91dGVySGVpZ2h0KCksaD1wYXJzZUludChhLmN1ckNTUyh0aGlzLCJtYXJnaW5MZWZ0IiwhMCkpfHwwLGk9cGFyc2VJbnQoYS5jdXJDU1ModGhpcywibWFyZ2luVG9wIiwhMCkpfHwwLG89ZCtoKyhwYXJzZUludChhLmN1ckNTUyh0aGlzLCJtYXJnaW5SaWdodCIsITApKXx8MCkscD1nK2krKHBhcnNlSW50KGEuY3VyQ1NTKHRoaXMsIm1hcmdpbkJvdHRvbSIsITApKXx8MCkscT1hLmV4dGVuZCh7fSxuKSxyO2IubXlbMF09PT0icmlnaHQiP3EubGVmdC09ZDpiLm15WzBdPT09ZSYmKHEubGVmdC09ZC8yKSxiLm15WzFdPT09ImJvdHRvbSI/cS50b3AtPWc6Yi5teVsxXT09PWUmJihxLnRvcC09Zy8yKSxmLmZyYWN0aW9uc3x8KHEubGVmdD1NYXRoLnJvdW5kKHEubGVmdCkscS50b3A9TWF0aC5yb3VuZChxLnRvcCkpLHI9e2xlZnQ6cS5sZWZ0LWgsdG9wOnEudG9wLWl9LGEuZWFjaChbImxlZnQiLCJ0b3AiXSxmdW5jdGlvbihjLGUpe2EudWkucG9zaXRpb25baltjXV0mJmEudWkucG9zaXRpb25baltjXV1bZV0ocSx7dGFyZ2V0V2lkdGg6bCx0YXJnZXRIZWlnaHQ6bSxlbGVtV2lkdGg6ZCxlbGVtSGVpZ2h0OmcsY29sbGlzaW9uUG9zaXRpb246cixjb2xsaXNpb25XaWR0aDpvLGNvbGxpc2lvbkhlaWdodDpwLG9mZnNldDprLG15OmIubXksYXQ6Yi5hdH0pfSksYS5mbi5iZ2lmcmFtZSYmYy5iZ2lmcmFtZSgpLGMub2Zmc2V0KGEuZXh0ZW5kKHEse3VzaW5nOmIudXNpbmd9KSl9KX0sYS51aS5wb3NpdGlvbj17Zml0OntsZWZ0OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSh3aW5kb3cpLGU9Yy5jb2xsaXNpb25Qb3NpdGlvbi5sZWZ0K2MuY29sbGlzaW9uV2lkdGgtZC53aWR0aCgpLWQuc2Nyb2xsTGVmdCgpO2IubGVmdD1lPjA/Yi5sZWZ0LWU6TWF0aC5tYXgoYi5sZWZ0LWMuY29sbGlzaW9uUG9zaXRpb24ubGVmdCxiLmxlZnQpfSx0b3A6ZnVuY3Rpb24oYixjKXt2YXIgZD1hKHdpbmRvdyksZT1jLmNvbGxpc2lvblBvc2l0aW9uLnRvcCtjLmNvbGxpc2lvbkhlaWdodC1kLmhlaWdodCgpLWQuc2Nyb2xsVG9wKCk7Yi50b3A9ZT4wP2IudG9wLWU6TWF0aC5tYXgoYi50b3AtYy5jb2xsaXNpb25Qb3NpdGlvbi50b3AsYi50b3ApfX0sZmxpcDp7bGVmdDpmdW5jdGlvbihiLGMpe2lmKGMuYXRbMF09PT1lKXJldHVybjt2YXIgZD1hKHdpbmRvdyksZj1jLmNvbGxpc2lvblBvc2l0aW9uLmxlZnQrYy5jb2xsaXNpb25XaWR0aC1kLndpZHRoKCktZC5zY3JvbGxMZWZ0KCksZz1jLm15WzBdPT09ImxlZnQiPy1jLmVsZW1XaWR0aDpjLm15WzBdPT09InJpZ2h0Ij9jLmVsZW1XaWR0aDowLGg9Yy5hdFswXT09PSJsZWZ0Ij9jLnRhcmdldFdpZHRoOi1jLnRhcmdldFdpZHRoLGk9LTIqYy5vZmZzZXRbMF07Yi5sZWZ0Kz1jLmNvbGxpc2lvblBvc2l0aW9uLmxlZnQ8MD9nK2graTpmPjA/ZytoK2k6MH0sdG9wOmZ1bmN0aW9uKGIsYyl7aWYoYy5hdFsxXT09PWUpcmV0dXJuO3ZhciBkPWEod2luZG93KSxmPWMuY29sbGlzaW9uUG9zaXRpb24udG9wK2MuY29sbGlzaW9uSGVpZ2h0LWQuaGVpZ2h0KCktZC5zY3JvbGxUb3AoKSxnPWMubXlbMV09PT0idG9wIj8tYy5lbGVtSGVpZ2h0OmMubXlbMV09PT0iYm90dG9tIj9jLmVsZW1IZWlnaHQ6MCxoPWMuYXRbMV09PT0idG9wIj9jLnRhcmdldEhlaWdodDotYy50YXJnZXRIZWlnaHQsaT0tMipjLm9mZnNldFsxXTtiLnRvcCs9Yy5jb2xsaXNpb25Qb3NpdGlvbi50b3A8MD9nK2graTpmPjA/ZytoK2k6MH19fSxhLm9mZnNldC5zZXRPZmZzZXR8fChhLm9mZnNldC5zZXRPZmZzZXQ9ZnVuY3Rpb24oYixjKXsvc3RhdGljLy50ZXN0KGEuY3VyQ1NTKGIsInBvc2l0aW9uIikpJiYoYi5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKTt2YXIgZD1hKGIpLGU9ZC5vZmZzZXQoKSxmPXBhcnNlSW50KGEuY3VyQ1NTKGIsInRvcCIsITApLDEwKXx8MCxnPXBhcnNlSW50KGEuY3VyQ1NTKGIsImxlZnQiLCEwKSwxMCl8fDAsaD17dG9wOmMudG9wLWUudG9wK2YsbGVmdDpjLmxlZnQtZS5sZWZ0K2d9OyJ1c2luZyJpbiBjP2MudXNpbmcuY2FsbChiLGgpOmQuY3NzKGgpfSxhLmZuLm9mZnNldD1mdW5jdGlvbihiKXt2YXIgYz10aGlzWzBdO3JldHVybiFjfHwhYy5vd25lckRvY3VtZW50P251bGw6Yj90aGlzLmVhY2goZnVuY3Rpb24oKXthLm9mZnNldC5zZXRPZmZzZXQodGhpcyxiKX0pOmguY2FsbCh0aGlzKX0pLGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQsZSxnLGgsaTtkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYj8iZGl2IjoiYm9keSIpLGc9e3Zpc2liaWxpdHk6ImhpZGRlbiIsd2lkdGg6MCxoZWlnaHQ6MCxib3JkZXI6MCxtYXJnaW46MCxiYWNrZ3JvdW5kOiJub25lIn0sYiYmYS5leHRlbmQoZyx7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiItMTAwMHB4Iix0b3A6Ii0xMDAwcHgifSk7Zm9yKHZhciBqIGluIGcpZC5zdHlsZVtqXT1nW2pdO2QuYXBwZW5kQ2hpbGQoYyksZT1ifHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZS5pbnNlcnRCZWZvcmUoZCxlLmZpcnN0Q2hpbGQpLGMuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMC43NDMyMjIycHg7IHRvcDogMTAuNDMyMzI1cHg7IGhlaWdodDogMzBweDsgd2lkdGg6IDIwMXB4OyIsaD1hKGMpLm9mZnNldChmdW5jdGlvbihhLGIpe3JldHVybiBifSkub2Zmc2V0KCksZC5pbm5lckhUTUw9IiIsZS5yZW1vdmVDaGlsZChkKSxpPWgudG9wK2gubGVmdCsoYj8yZTM6MCksZi5mcmFjdGlvbnM9aT4yMSYmaTwyMn0oKX0pKGpRdWVyeSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.resizable.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwCiogaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkKKiBJbmNsdWRlczoganF1ZXJ5LnVpLnJlc2l6YWJsZS5qcwoqIENvcHlyaWdodCAoYykgMjAxMiBBVVRIT1JTLnR4dDsgTGljZW5zZWQgTUlULCBHUEwgKi8KKGZ1bmN0aW9uKGEsYil7YS53aWRnZXQoInVpLnJlc2l6YWJsZSIsYS51aS5tb3VzZSx7d2lkZ2V0RXZlbnRQcmVmaXg6InJlc2l6ZSIsb3B0aW9uczp7YWxzb1Jlc2l6ZTohMSxhbmltYXRlOiExLGFuaW1hdGVEdXJhdGlvbjoic2xvdyIsYW5pbWF0ZUVhc2luZzoic3dpbmciLGFzcGVjdFJhdGlvOiExLGF1dG9IaWRlOiExLGNvbnRhaW5tZW50OiExLGdob3N0OiExLGdyaWQ6ITEsaGFuZGxlczoiZSxzLHNlIixoZWxwZXI6ITEsbWF4SGVpZ2h0Om51bGwsbWF4V2lkdGg6bnVsbCxtaW5IZWlnaHQ6MTAsbWluV2lkdGg6MTAsekluZGV4OjFlM30sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBiPXRoaXMsYz10aGlzLm9wdGlvbnM7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1yZXNpemFibGUiKSxhLmV4dGVuZCh0aGlzLHtfYXNwZWN0UmF0aW86ISFjLmFzcGVjdFJhdGlvLGFzcGVjdFJhdGlvOmMuYXNwZWN0UmF0aW8sb3JpZ2luYWxFbGVtZW50OnRoaXMuZWxlbWVudCxfcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50czpbXSxfaGVscGVyOmMuaGVscGVyfHxjLmdob3N0fHxjLmFuaW1hdGU/Yy5oZWxwZXJ8fCJ1aS1yZXNpemFibGUtaGVscGVyIjpudWxsfSksdGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLm1hdGNoKC9jYW52YXN8dGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbnxpbWcvaSkmJih0aGlzLmVsZW1lbnQud3JhcChhKCc8ZGl2IGNsYXNzPSJ1aS13cmFwcGVyIiBzdHlsZT0ib3ZlcmZsb3c6IGhpZGRlbjsiPjwvZGl2PicpLmNzcyh7cG9zaXRpb246dGhpcy5lbGVtZW50LmNzcygicG9zaXRpb24iKSx3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSx0b3A6dGhpcy5lbGVtZW50LmNzcygidG9wIiksbGVmdDp0aGlzLmVsZW1lbnQuY3NzKCJsZWZ0Iil9KSksdGhpcy5lbGVtZW50PXRoaXMuZWxlbWVudC5wYXJlbnQoKS5kYXRhKCJyZXNpemFibGUiLHRoaXMuZWxlbWVudC5kYXRhKCJyZXNpemFibGUiKSksdGhpcy5lbGVtZW50SXNXcmFwcGVyPSEwLHRoaXMuZWxlbWVudC5jc3Moe21hcmdpbkxlZnQ6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5MZWZ0IiksbWFyZ2luVG9wOnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luVG9wIiksbWFyZ2luUmlnaHQ6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5SaWdodCIpLG1hcmdpbkJvdHRvbTp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkJvdHRvbSIpfSksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHttYXJnaW5MZWZ0OjAsbWFyZ2luVG9wOjAsbWFyZ2luUmlnaHQ6MCxtYXJnaW5Cb3R0b206MH0pLHRoaXMub3JpZ2luYWxSZXNpemVTdHlsZT10aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIpLHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIiwibm9uZSIpLHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMucHVzaCh0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe3Bvc2l0aW9uOiJzdGF0aWMiLHpvb206MSxkaXNwbGF5OiJibG9jayJ9KSksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHttYXJnaW46dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW4iKX0pLHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCkpLHRoaXMuaGFuZGxlcz1jLmhhbmRsZXN8fChhKCIudWktcmVzaXphYmxlLWhhbmRsZSIsdGhpcy5lbGVtZW50KS5sZW5ndGg/e246Ii51aS1yZXNpemFibGUtbiIsZToiLnVpLXJlc2l6YWJsZS1lIixzOiIudWktcmVzaXphYmxlLXMiLHc6Ii51aS1yZXNpemFibGUtdyIsc2U6Ii51aS1yZXNpemFibGUtc2UiLHN3OiIudWktcmVzaXphYmxlLXN3IixuZToiLnVpLXJlc2l6YWJsZS1uZSIsbnc6Ii51aS1yZXNpemFibGUtbncifToiZSxzLHNlIik7aWYodGhpcy5oYW5kbGVzLmNvbnN0cnVjdG9yPT1TdHJpbmcpe3RoaXMuaGFuZGxlcz09ImFsbCImJih0aGlzLmhhbmRsZXM9Im4sZSxzLHcsc2Usc3csbmUsbnciKTt2YXIgZD10aGlzLmhhbmRsZXMuc3BsaXQoIiwiKTt0aGlzLmhhbmRsZXM9e307Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPWEudHJpbShkW2VdKSxnPSJ1aS1yZXNpemFibGUtIitmLGg9YSgnPGRpdiBjbGFzcz0idWktcmVzaXphYmxlLWhhbmRsZSAnK2crJyI+PC9kaXY+Jyk7aC5jc3Moe3pJbmRleDpjLnpJbmRleH0pLCJzZSI9PWYmJmguYWRkQ2xhc3MoInVpLWljb24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiKSx0aGlzLmhhbmRsZXNbZl09Ii51aS1yZXNpemFibGUtIitmLHRoaXMuZWxlbWVudC5hcHBlbmQoaCl9fXRoaXMuX3JlbmRlckF4aXM9ZnVuY3Rpb24oYil7Yj1ifHx0aGlzLmVsZW1lbnQ7Zm9yKHZhciBjIGluIHRoaXMuaGFuZGxlcyl7dGhpcy5oYW5kbGVzW2NdLmNvbnN0cnVjdG9yPT1TdHJpbmcmJih0aGlzLmhhbmRsZXNbY109YSh0aGlzLmhhbmRsZXNbY10sdGhpcy5lbGVtZW50KS5zaG93KCkpO2lmKHRoaXMuZWxlbWVudElzV3JhcHBlciYmdGhpcy5vcmlnaW5hbEVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL3RleHRhcmVhfGlucHV0fHNlbGVjdHxidXR0b24vaSkpe3ZhciBkPWEodGhpcy5oYW5kbGVzW2NdLHRoaXMuZWxlbWVudCksZT0wO2U9L3N3fG5lfG53fHNlfG58cy8udGVzdChjKT9kLm91dGVySGVpZ2h0KCk6ZC5vdXRlcldpZHRoKCk7dmFyIGY9WyJwYWRkaW5nIiwvbmV8bnd8bi8udGVzdChjKT8iVG9wIjovc2V8c3d8cy8udGVzdChjKT8iQm90dG9tIjovXmUkLy50ZXN0KGMpPyJSaWdodCI6IkxlZnQiXS5qb2luKCIiKTtiLmNzcyhmLGUpLHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCl9aWYoIWEodGhpcy5oYW5kbGVzW2NdKS5sZW5ndGgpY29udGludWV9fSx0aGlzLl9yZW5kZXJBeGlzKHRoaXMuZWxlbWVudCksdGhpcy5faGFuZGxlcz1hKCIudWktcmVzaXphYmxlLWhhbmRsZSIsdGhpcy5lbGVtZW50KS5kaXNhYmxlU2VsZWN0aW9uKCksdGhpcy5faGFuZGxlcy5tb3VzZW92ZXIoZnVuY3Rpb24oKXtpZighYi5yZXNpemluZyl7aWYodGhpcy5jbGFzc05hbWUpdmFyIGE9dGhpcy5jbGFzc05hbWUubWF0Y2goL3VpLXJlc2l6YWJsZS0oc2V8c3d8bmV8bnd8bnxlfHN8dykvaSk7Yi5heGlzPWEmJmFbMV0/YVsxXToic2UifX0pLGMuYXV0b0hpZGUmJih0aGlzLl9oYW5kbGVzLmhpZGUoKSxhKHRoaXMuZWxlbWVudCkuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpLmhvdmVyKGZ1bmN0aW9uKCl7aWYoYy5kaXNhYmxlZClyZXR1cm47YSh0aGlzKS5yZW1vdmVDbGFzcygidWktcmVzaXphYmxlLWF1dG9oaWRlIiksYi5faGFuZGxlcy5zaG93KCl9LGZ1bmN0aW9uKCl7aWYoYy5kaXNhYmxlZClyZXR1cm47Yi5yZXNpemluZ3x8KGEodGhpcykuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpLGIuX2hhbmRsZXMuaGlkZSgpKX0pKSx0aGlzLl9tb3VzZUluaXQoKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX21vdXNlRGVzdHJveSgpO3ZhciBiPWZ1bmN0aW9uKGIpe2EoYikucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZSB1aS1yZXNpemFibGUtZGlzYWJsZWQgdWktcmVzaXphYmxlLXJlc2l6aW5nIikucmVtb3ZlRGF0YSgicmVzaXphYmxlIikudW5iaW5kKCIucmVzaXphYmxlIikuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKS5yZW1vdmUoKX07aWYodGhpcy5lbGVtZW50SXNXcmFwcGVyKXtiKHRoaXMuZWxlbWVudCk7dmFyIGM9dGhpcy5lbGVtZW50O2MuYWZ0ZXIodGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHtwb3NpdGlvbjpjLmNzcygicG9zaXRpb24iKSx3aWR0aDpjLm91dGVyV2lkdGgoKSxoZWlnaHQ6Yy5vdXRlckhlaWdodCgpLHRvcDpjLmNzcygidG9wIiksbGVmdDpjLmNzcygibGVmdCIpfSkpLnJlbW92ZSgpfXJldHVybiB0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlKSxiKHRoaXMub3JpZ2luYWxFbGVtZW50KSx0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKGIpe3ZhciBjPSExO2Zvcih2YXIgZCBpbiB0aGlzLmhhbmRsZXMpYSh0aGlzLmhhbmRsZXNbZF0pWzBdPT1iLnRhcmdldCYmKGM9ITApO3JldHVybiF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJmN9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMub3B0aW9ucyxlPXRoaXMuZWxlbWVudC5wb3NpdGlvbigpLGY9dGhpcy5lbGVtZW50O3RoaXMucmVzaXppbmc9ITAsdGhpcy5kb2N1bWVudFNjcm9sbD17dG9wOmEoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLGxlZnQ6YShkb2N1bWVudCkuc2Nyb2xsTGVmdCgpfSwoZi5pcygiLnVpLWRyYWdnYWJsZSIpfHwvYWJzb2x1dGUvLnRlc3QoZi5jc3MoInBvc2l0aW9uIikpKSYmZi5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOmUudG9wLGxlZnQ6ZS5sZWZ0fSksdGhpcy5fcmVuZGVyUHJveHkoKTt2YXIgZz1jKHRoaXMuaGVscGVyLmNzcygibGVmdCIpKSxoPWModGhpcy5oZWxwZXIuY3NzKCJ0b3AiKSk7ZC5jb250YWlubWVudCYmKGcrPWEoZC5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpfHwwLGgrPWEoZC5jb250YWlubWVudCkuc2Nyb2xsVG9wKCl8fDApLHRoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMucG9zaXRpb249e2xlZnQ6Zyx0b3A6aH0sdGhpcy5zaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6Zi5vdXRlcldpZHRoKCksaGVpZ2h0OmYub3V0ZXJIZWlnaHQoKX06e3dpZHRoOmYud2lkdGgoKSxoZWlnaHQ6Zi5oZWlnaHQoKX0sdGhpcy5vcmlnaW5hbFNpemU9dGhpcy5faGVscGVyP3t3aWR0aDpmLm91dGVyV2lkdGgoKSxoZWlnaHQ6Zi5vdXRlckhlaWdodCgpfTp7d2lkdGg6Zi53aWR0aCgpLGhlaWdodDpmLmhlaWdodCgpfSx0aGlzLm9yaWdpbmFsUG9zaXRpb249e2xlZnQ6Zyx0b3A6aH0sdGhpcy5zaXplRGlmZj17d2lkdGg6Zi5vdXRlcldpZHRoKCktZi53aWR0aCgpLGhlaWdodDpmLm91dGVySGVpZ2h0KCktZi5oZWlnaHQoKX0sdGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb249e2xlZnQ6Yi5wYWdlWCx0b3A6Yi5wYWdlWX0sdGhpcy5hc3BlY3RSYXRpbz10eXBlb2YgZC5hc3BlY3RSYXRpbz09Im51bWJlciI/ZC5hc3BlY3RSYXRpbzp0aGlzLm9yaWdpbmFsU2l6ZS53aWR0aC90aGlzLm9yaWdpbmFsU2l6ZS5oZWlnaHR8fDE7dmFyIGk9YSgiLnVpLXJlc2l6YWJsZS0iK3RoaXMuYXhpcykuY3NzKCJjdXJzb3IiKTtyZXR1cm4gYSgiYm9keSIpLmNzcygiY3Vyc29yIixpPT0iYXV0byI/dGhpcy5heGlzKyItcmVzaXplIjppKSxmLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKSx0aGlzLl9wcm9wYWdhdGUoInN0YXJ0IixiKSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbihiKXt2YXIgYz10aGlzLmhlbHBlcixkPXRoaXMub3B0aW9ucyxlPXt9LGY9dGhpcyxnPXRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uLGg9dGhpcy5heGlzLGk9Yi5wYWdlWC1nLmxlZnR8fDAsaj1iLnBhZ2VZLWcudG9wfHwwLGs9dGhpcy5fY2hhbmdlW2hdO2lmKCFrKXJldHVybiExO3ZhciBsPWsuYXBwbHkodGhpcyxbYixpLGpdKSxtPWEuYnJvd3Nlci5tc2llJiZhLmJyb3dzZXIudmVyc2lvbjw3LG49dGhpcy5zaXplRGlmZjt0aGlzLl91cGRhdGVWaXJ0dWFsQm91bmRhcmllcyhiLnNoaWZ0S2V5KTtpZih0aGlzLl9hc3BlY3RSYXRpb3x8Yi5zaGlmdEtleSlsPXRoaXMuX3VwZGF0ZVJhdGlvKGwsYik7cmV0dXJuIGw9dGhpcy5fcmVzcGVjdFNpemUobCxiKSx0aGlzLl9wcm9wYWdhdGUoInJlc2l6ZSIsYiksYy5jc3Moe3RvcDp0aGlzLnBvc2l0aW9uLnRvcCsicHgiLGxlZnQ6dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIsd2lkdGg6dGhpcy5zaXplLndpZHRoKyJweCIsaGVpZ2h0OnRoaXMuc2l6ZS5oZWlnaHQrInB4In0pLCF0aGlzLl9oZWxwZXImJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpLHRoaXMuX3VwZGF0ZUNhY2hlKGwpLHRoaXMuX3RyaWdnZXIoInJlc2l6ZSIsYix0aGlzLnVpKCkpLCExfSxfbW91c2VTdG9wOmZ1bmN0aW9uKGIpe3RoaXMucmVzaXppbmc9ITE7dmFyIGM9dGhpcy5vcHRpb25zLGQ9dGhpcztpZih0aGlzLl9oZWxwZXIpe3ZhciBlPXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMsZj1lLmxlbmd0aCYmL3RleHRhcmVhL2kudGVzdChlWzBdLm5vZGVOYW1lKSxnPWYmJmEudWkuaGFzU2Nyb2xsKGVbMF0sImxlZnQiKT8wOmQuc2l6ZURpZmYuaGVpZ2h0LGg9Zj8wOmQuc2l6ZURpZmYud2lkdGgsaT17d2lkdGg6ZC5oZWxwZXIud2lkdGgoKS1oLGhlaWdodDpkLmhlbHBlci5oZWlnaHQoKS1nfSxqPXBhcnNlSW50KGQuZWxlbWVudC5jc3MoImxlZnQiKSwxMCkrKGQucG9zaXRpb24ubGVmdC1kLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGwsaz1wYXJzZUludChkLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCkrKGQucG9zaXRpb24udG9wLWQub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsO2MuYW5pbWF0ZXx8dGhpcy5lbGVtZW50LmNzcyhhLmV4dGVuZChpLHt0b3A6ayxsZWZ0Omp9KSksZC5oZWxwZXIuaGVpZ2h0KGQuc2l6ZS5oZWlnaHQpLGQuaGVscGVyLndpZHRoKGQuc2l6ZS53aWR0aCksdGhpcy5faGVscGVyJiYhYy5hbmltYXRlJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpfXJldHVybiBhKCJib2R5IikuY3NzKCJjdXJzb3IiLCJhdXRvIiksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKSx0aGlzLl9wcm9wYWdhdGUoInN0b3AiLGIpLHRoaXMuX2hlbHBlciYmdGhpcy5oZWxwZXIucmVtb3ZlKCksITF9LF91cGRhdGVWaXJ0dWFsQm91bmRhcmllczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLm9wdGlvbnMsYyxlLGYsZyxoO2g9e21pbldpZHRoOmQoYi5taW5XaWR0aCk/Yi5taW5XaWR0aDowLG1heFdpZHRoOmQoYi5tYXhXaWR0aCk/Yi5tYXhXaWR0aDpJbmZpbml0eSxtaW5IZWlnaHQ6ZChiLm1pbkhlaWdodCk/Yi5taW5IZWlnaHQ6MCxtYXhIZWlnaHQ6ZChiLm1heEhlaWdodCk/Yi5tYXhIZWlnaHQ6SW5maW5pdHl9O2lmKHRoaXMuX2FzcGVjdFJhdGlvfHxhKWM9aC5taW5IZWlnaHQqdGhpcy5hc3BlY3RSYXRpbyxmPWgubWluV2lkdGgvdGhpcy5hc3BlY3RSYXRpbyxlPWgubWF4SGVpZ2h0KnRoaXMuYXNwZWN0UmF0aW8sZz1oLm1heFdpZHRoL3RoaXMuYXNwZWN0UmF0aW8sYz5oLm1pbldpZHRoJiYoaC5taW5XaWR0aD1jKSxmPmgubWluSGVpZ2h0JiYoaC5taW5IZWlnaHQ9ZiksZTxoLm1heFdpZHRoJiYoaC5tYXhXaWR0aD1lKSxnPGgubWF4SGVpZ2h0JiYoaC5tYXhIZWlnaHQ9Zyk7dGhpcy5fdkJvdW5kYXJpZXM9aH0sX3VwZGF0ZUNhY2hlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub3B0aW9uczt0aGlzLm9mZnNldD10aGlzLmhlbHBlci5vZmZzZXQoKSxkKGEubGVmdCkmJih0aGlzLnBvc2l0aW9uLmxlZnQ9YS5sZWZ0KSxkKGEudG9wKSYmKHRoaXMucG9zaXRpb24udG9wPWEudG9wKSxkKGEuaGVpZ2h0KSYmKHRoaXMuc2l6ZS5oZWlnaHQ9YS5oZWlnaHQpLGQoYS53aWR0aCkmJih0aGlzLnNpemUud2lkdGg9YS53aWR0aCl9LF91cGRhdGVSYXRpbzpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMub3B0aW9ucyxlPXRoaXMucG9zaXRpb24sZj10aGlzLnNpemUsZz10aGlzLmF4aXM7cmV0dXJuIGQoYS5oZWlnaHQpP2Eud2lkdGg9YS5oZWlnaHQqdGhpcy5hc3BlY3RSYXRpbzpkKGEud2lkdGgpJiYoYS5oZWlnaHQ9YS53aWR0aC90aGlzLmFzcGVjdFJhdGlvKSxnPT0ic3ciJiYoYS5sZWZ0PWUubGVmdCsoZi53aWR0aC1hLndpZHRoKSxhLnRvcD1udWxsKSxnPT0ibnciJiYoYS50b3A9ZS50b3ArKGYuaGVpZ2h0LWEuaGVpZ2h0KSxhLmxlZnQ9ZS5sZWZ0KyhmLndpZHRoLWEud2lkdGgpKSxhfSxfcmVzcGVjdFNpemU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmhlbHBlcixlPXRoaXMuX3ZCb3VuZGFyaWVzLGY9dGhpcy5fYXNwZWN0UmF0aW98fGIuc2hpZnRLZXksZz10aGlzLmF4aXMsaD1kKGEud2lkdGgpJiZlLm1heFdpZHRoJiZlLm1heFdpZHRoPGEud2lkdGgsaT1kKGEuaGVpZ2h0KSYmZS5tYXhIZWlnaHQmJmUubWF4SGVpZ2h0PGEuaGVpZ2h0LGo9ZChhLndpZHRoKSYmZS5taW5XaWR0aCYmZS5taW5XaWR0aD5hLndpZHRoLGs9ZChhLmhlaWdodCkmJmUubWluSGVpZ2h0JiZlLm1pbkhlaWdodD5hLmhlaWdodDtqJiYoYS53aWR0aD1lLm1pbldpZHRoKSxrJiYoYS5oZWlnaHQ9ZS5taW5IZWlnaHQpLGgmJihhLndpZHRoPWUubWF4V2lkdGgpLGkmJihhLmhlaWdodD1lLm1heEhlaWdodCk7dmFyIGw9dGhpcy5vcmlnaW5hbFBvc2l0aW9uLmxlZnQrdGhpcy5vcmlnaW5hbFNpemUud2lkdGgsbT10aGlzLnBvc2l0aW9uLnRvcCt0aGlzLnNpemUuaGVpZ2h0LG49L3N3fG53fHcvLnRlc3QoZyksbz0vbnd8bmV8bi8udGVzdChnKTtqJiZuJiYoYS5sZWZ0PWwtZS5taW5XaWR0aCksaCYmbiYmKGEubGVmdD1sLWUubWF4V2lkdGgpLGsmJm8mJihhLnRvcD1tLWUubWluSGVpZ2h0KSxpJiZvJiYoYS50b3A9bS1lLm1heEhlaWdodCk7dmFyIHA9IWEud2lkdGgmJiFhLmhlaWdodDtyZXR1cm4gcCYmIWEubGVmdCYmYS50b3A/YS50b3A9bnVsbDpwJiYhYS50b3AmJmEubGVmdCYmKGEubGVmdD1udWxsKSxhfSxfcHJvcG9ydGlvbmFsbHlSZXNpemU6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLm9wdGlvbnM7aWYoIXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoKXJldHVybjt2YXIgYz10aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50O2Zvcih2YXIgZD0wO2Q8dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5sZW5ndGg7ZCsrKXt2YXIgZT10aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzW2RdO2lmKCF0aGlzLmJvcmRlckRpZil7dmFyIGY9W2UuY3NzKCJib3JkZXJUb3BXaWR0aCIpLGUuY3NzKCJib3JkZXJSaWdodFdpZHRoIiksZS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksZS5jc3MoImJvcmRlckxlZnRXaWR0aCIpXSxnPVtlLmNzcygicGFkZGluZ1RvcCIpLGUuY3NzKCJwYWRkaW5nUmlnaHQiKSxlLmNzcygicGFkZGluZ0JvdHRvbSIpLGUuY3NzKCJwYWRkaW5nTGVmdCIpXTt0aGlzLmJvcmRlckRpZj1hLm1hcChmLGZ1bmN0aW9uKGEsYil7dmFyIGM9cGFyc2VJbnQoYSwxMCl8fDAsZD1wYXJzZUludChnW2JdLDEwKXx8MDtyZXR1cm4gYytkfSl9aWYoIWEuYnJvd3Nlci5tc2llfHwhYShjKS5pcygiOmhpZGRlbiIpJiYhYShjKS5wYXJlbnRzKCI6aGlkZGVuIikubGVuZ3RoKWUuY3NzKHtoZWlnaHQ6Yy5oZWlnaHQoKS10aGlzLmJvcmRlckRpZlswXS10aGlzLmJvcmRlckRpZlsyXXx8MCx3aWR0aDpjLndpZHRoKCktdGhpcy5ib3JkZXJEaWZbMV0tdGhpcy5ib3JkZXJEaWZbM118fDB9KTtlbHNlIGNvbnRpbnVlfX0sX3JlbmRlclByb3h5OmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9dGhpcy5vcHRpb25zO3RoaXMuZWxlbWVudE9mZnNldD1iLm9mZnNldCgpO2lmKHRoaXMuX2hlbHBlcil7dGhpcy5oZWxwZXI9dGhpcy5oZWxwZXJ8fGEoJzxkaXYgc3R5bGU9Im92ZXJmbG93OmhpZGRlbjsiPjwvZGl2PicpO3ZhciBkPWEuYnJvd3Nlci5tc2llJiZhLmJyb3dzZXIudmVyc2lvbjw3LGU9ZD8xOjAsZj1kPzI6LTE7dGhpcy5oZWxwZXIuYWRkQ2xhc3ModGhpcy5faGVscGVyKS5jc3Moe3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCkrZixoZWlnaHQ6dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCkrZixwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6dGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtZSsicHgiLHRvcDp0aGlzLmVsZW1lbnRPZmZzZXQudG9wLWUrInB4Iix6SW5kZXg6KytjLnpJbmRleH0pLHRoaXMuaGVscGVyLmFwcGVuZFRvKCJib2R5IikuZGlzYWJsZVNlbGVjdGlvbigpfWVsc2UgdGhpcy5oZWxwZXI9dGhpcy5lbGVtZW50fSxfY2hhbmdlOntlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm57d2lkdGg6dGhpcy5vcmlnaW5hbFNpemUud2lkdGgrYn19LHc6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMub3B0aW9ucyxlPXRoaXMub3JpZ2luYWxTaXplLGY9dGhpcy5vcmlnaW5hbFBvc2l0aW9uO3JldHVybntsZWZ0OmYubGVmdCtiLHdpZHRoOmUud2lkdGgtYn19LG46ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMub3B0aW9ucyxlPXRoaXMub3JpZ2luYWxTaXplLGY9dGhpcy5vcmlnaW5hbFBvc2l0aW9uO3JldHVybnt0b3A6Zi50b3ArYyxoZWlnaHQ6ZS5oZWlnaHQtY319LHM6ZnVuY3Rpb24oYSxiLGMpe3JldHVybntoZWlnaHQ6dGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0K2N9fSxzZTpmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGEuZXh0ZW5kKHRoaXMuX2NoYW5nZS5zLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jaGFuZ2UuZS5hcHBseSh0aGlzLFtiLGMsZF0pKX0sc3c6ZnVuY3Rpb24oYixjLGQpe3JldHVybiBhLmV4dGVuZCh0aGlzLl9jaGFuZ2Uucy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLncuYXBwbHkodGhpcyxbYixjLGRdKSl9LG5lOmZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYS5leHRlbmQodGhpcy5fY2hhbmdlLm4uYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS5lLmFwcGx5KHRoaXMsW2IsYyxkXSkpfSxudzpmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGEuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jaGFuZ2Uudy5hcHBseSh0aGlzLFtiLGMsZF0pKX19LF9wcm9wYWdhdGU6ZnVuY3Rpb24oYixjKXthLnVpLnBsdWdpbi5jYWxsKHRoaXMsYixbYyx0aGlzLnVpKCldKSxiIT0icmVzaXplIiYmdGhpcy5fdHJpZ2dlcihiLGMsdGhpcy51aSgpKX0scGx1Z2luczp7fSx1aTpmdW5jdGlvbigpe3JldHVybntvcmlnaW5hbEVsZW1lbnQ6dGhpcy5vcmlnaW5hbEVsZW1lbnQsZWxlbWVudDp0aGlzLmVsZW1lbnQsaGVscGVyOnRoaXMuaGVscGVyLHBvc2l0aW9uOnRoaXMucG9zaXRpb24sc2l6ZTp0aGlzLnNpemUsb3JpZ2luYWxTaXplOnRoaXMub3JpZ2luYWxTaXplLG9yaWdpbmFsUG9zaXRpb246dGhpcy5vcmlnaW5hbFBvc2l0aW9ufX19KSxhLmV4dGVuZChhLnVpLnJlc2l6YWJsZSx7dmVyc2lvbjoiMS44LjIwIn0pLGEudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYWxzb1Jlc2l6ZSIse3N0YXJ0OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKSxlPWQub3B0aW9ucyxmPWZ1bmN0aW9uKGIpe2EoYikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWEodGhpcyk7Yi5kYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIse3dpZHRoOnBhcnNlSW50KGIud2lkdGgoKSwxMCksaGVpZ2h0OnBhcnNlSW50KGIuaGVpZ2h0KCksMTApLGxlZnQ6cGFyc2VJbnQoYi5jc3MoImxlZnQiKSwxMCksdG9wOnBhcnNlSW50KGIuY3NzKCJ0b3AiKSwxMCl9KX0pfTt0eXBlb2YgZS5hbHNvUmVzaXplPT0ib2JqZWN0IiYmIWUuYWxzb1Jlc2l6ZS5wYXJlbnROb2RlP2UuYWxzb1Jlc2l6ZS5sZW5ndGg/KGUuYWxzb1Jlc2l6ZT1lLmFsc29SZXNpemVbMF0sZihlLmFsc29SZXNpemUpKTphLmVhY2goZS5hbHNvUmVzaXplLGZ1bmN0aW9uKGEpe2YoYSl9KTpmKGUuYWxzb1Jlc2l6ZSl9LHJlc2l6ZTpmdW5jdGlvbihiLGMpe3ZhciBkPWEodGhpcykuZGF0YSgicmVzaXphYmxlIiksZT1kLm9wdGlvbnMsZj1kLm9yaWdpbmFsU2l6ZSxnPWQub3JpZ2luYWxQb3NpdGlvbixoPXtoZWlnaHQ6ZC5zaXplLmhlaWdodC1mLmhlaWdodHx8MCx3aWR0aDpkLnNpemUud2lkdGgtZi53aWR0aHx8MCx0b3A6ZC5wb3NpdGlvbi50b3AtZy50b3B8fDAsbGVmdDpkLnBvc2l0aW9uLmxlZnQtZy5sZWZ0fHwwfSxpPWZ1bmN0aW9uKGIsZCl7YShiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9YSh0aGlzKSxlPWEodGhpcykuZGF0YSgicmVzaXphYmxlLWFsc29yZXNpemUiKSxmPXt9LGc9ZCYmZC5sZW5ndGg/ZDpiLnBhcmVudHMoYy5vcmlnaW5hbEVsZW1lbnRbMF0pLmxlbmd0aD9bIndpZHRoIiwiaGVpZ2h0Il06WyJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiXTthLmVhY2goZyxmdW5jdGlvbihhLGIpe3ZhciBjPShlW2JdfHwwKSsoaFtiXXx8MCk7YyYmYz49MCYmKGZbYl09Y3x8bnVsbCl9KSxiLmNzcyhmKX0pfTt0eXBlb2YgZS5hbHNvUmVzaXplPT0ib2JqZWN0IiYmIWUuYWxzb1Jlc2l6ZS5ub2RlVHlwZT9hLmVhY2goZS5hbHNvUmVzaXplLGZ1bmN0aW9uKGEsYil7aShhLGIpfSk6aShlLmFsc29SZXNpemUpfSxzdG9wOmZ1bmN0aW9uKGIsYyl7YSh0aGlzKS5yZW1vdmVEYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIpfX0pLGEudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYW5pbWF0ZSIse3N0b3A6ZnVuY3Rpb24oYixjKXt2YXIgZD1hKHRoaXMpLmRhdGEoInJlc2l6YWJsZSIpLGU9ZC5vcHRpb25zLGY9ZC5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cyxnPWYubGVuZ3RoJiYvdGV4dGFyZWEvaS50ZXN0KGZbMF0ubm9kZU5hbWUpLGg9ZyYmYS51aS5oYXNTY3JvbGwoZlswXSwibGVmdCIpPzA6ZC5zaXplRGlmZi5oZWlnaHQsaT1nPzA6ZC5zaXplRGlmZi53aWR0aCxqPXt3aWR0aDpkLnNpemUud2lkdGgtaSxoZWlnaHQ6ZC5zaXplLmhlaWdodC1ofSxrPXBhcnNlSW50KGQuZWxlbWVudC5jc3MoImxlZnQiKSwxMCkrKGQucG9zaXRpb24ubGVmdC1kLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGwsbD1wYXJzZUludChkLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCkrKGQucG9zaXRpb24udG9wLWQub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsO2QuZWxlbWVudC5hbmltYXRlKGEuZXh0ZW5kKGosbCYmaz97dG9wOmwsbGVmdDprfTp7fSkse2R1cmF0aW9uOmUuYW5pbWF0ZUR1cmF0aW9uLGVhc2luZzplLmFuaW1hdGVFYXNpbmcsc3RlcDpmdW5jdGlvbigpe3ZhciBjPXt3aWR0aDpwYXJzZUludChkLmVsZW1lbnQuY3NzKCJ3aWR0aCIpLDEwKSxoZWlnaHQ6cGFyc2VJbnQoZC5lbGVtZW50LmNzcygiaGVpZ2h0IiksMTApLHRvcDpwYXJzZUludChkLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCksbGVmdDpwYXJzZUludChkLmVsZW1lbnQuY3NzKCJsZWZ0IiksMTApfTtmJiZmLmxlbmd0aCYmYShmWzBdKS5jc3Moe3dpZHRoOmMud2lkdGgsaGVpZ2h0OmMuaGVpZ2h0fSksZC5fdXBkYXRlQ2FjaGUoYyksZC5fcHJvcGFnYXRlKCJyZXNpemUiLGIpfX0pfX0pLGEudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiY29udGFpbm1lbnQiLHtzdGFydDpmdW5jdGlvbihiLGQpe3ZhciBlPWEodGhpcykuZGF0YSgicmVzaXphYmxlIiksZj1lLm9wdGlvbnMsZz1lLmVsZW1lbnQsaD1mLmNvbnRhaW5tZW50LGk9aCBpbnN0YW5jZW9mIGE/aC5nZXQoMCk6L3BhcmVudC8udGVzdChoKT9nLnBhcmVudCgpLmdldCgwKTpoO2lmKCFpKXJldHVybjtlLmNvbnRhaW5lckVsZW1lbnQ9YShpKTtpZigvZG9jdW1lbnQvLnRlc3QoaCl8fGg9PWRvY3VtZW50KWUuY29udGFpbmVyT2Zmc2V0PXtsZWZ0OjAsdG9wOjB9LGUuY29udGFpbmVyUG9zaXRpb249e2xlZnQ6MCx0b3A6MH0sZS5wYXJlbnREYXRhPXtlbGVtZW50OmEoZG9jdW1lbnQpLGxlZnQ6MCx0b3A6MCx3aWR0aDphKGRvY3VtZW50KS53aWR0aCgpLGhlaWdodDphKGRvY3VtZW50KS5oZWlnaHQoKXx8ZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodH07ZWxzZXt2YXIgaj1hKGkpLGs9W107YShbIlRvcCIsIlJpZ2h0IiwiTGVmdCIsIkJvdHRvbSJdKS5lYWNoKGZ1bmN0aW9uKGEsYil7a1thXT1jKGouY3NzKCJwYWRkaW5nIitiKSl9KSxlLmNvbnRhaW5lck9mZnNldD1qLm9mZnNldCgpLGUuY29udGFpbmVyUG9zaXRpb249ai5wb3NpdGlvbigpLGUuY29udGFpbmVyU2l6ZT17aGVpZ2h0OmouaW5uZXJIZWlnaHQoKS1rWzNdLHdpZHRoOmouaW5uZXJXaWR0aCgpLWtbMV19O3ZhciBsPWUuY29udGFpbmVyT2Zmc2V0LG09ZS5jb250YWluZXJTaXplLmhlaWdodCxuPWUuY29udGFpbmVyU2l6ZS53aWR0aCxvPWEudWkuaGFzU2Nyb2xsKGksImxlZnQiKT9pLnNjcm9sbFdpZHRoOm4scD1hLnVpLmhhc1Njcm9sbChpKT9pLnNjcm9sbEhlaWdodDptO2UucGFyZW50RGF0YT17ZWxlbWVudDppLGxlZnQ6bC5sZWZ0LHRvcDpsLnRvcCx3aWR0aDpvLGhlaWdodDpwfX19LHJlc2l6ZTpmdW5jdGlvbihiLGMpe3ZhciBkPWEodGhpcykuZGF0YSgicmVzaXphYmxlIiksZT1kLm9wdGlvbnMsZj1kLmNvbnRhaW5lclNpemUsZz1kLmNvbnRhaW5lck9mZnNldCxoPWQuc2l6ZSxpPWQucG9zaXRpb24saj1kLl9hc3BlY3RSYXRpb3x8Yi5zaGlmdEtleSxrPXt0b3A6MCxsZWZ0OjB9LGw9ZC5jb250YWluZXJFbGVtZW50O2xbMF0hPWRvY3VtZW50JiYvc3RhdGljLy50ZXN0KGwuY3NzKCJwb3NpdGlvbiIpKSYmKGs9ZyksaS5sZWZ0PChkLl9oZWxwZXI/Zy5sZWZ0OjApJiYoZC5zaXplLndpZHRoPWQuc2l6ZS53aWR0aCsoZC5faGVscGVyP2QucG9zaXRpb24ubGVmdC1nLmxlZnQ6ZC5wb3NpdGlvbi5sZWZ0LWsubGVmdCksaiYmKGQuc2l6ZS5oZWlnaHQ9ZC5zaXplLndpZHRoL2QuYXNwZWN0UmF0aW8pLGQucG9zaXRpb24ubGVmdD1lLmhlbHBlcj9nLmxlZnQ6MCksaS50b3A8KGQuX2hlbHBlcj9nLnRvcDowKSYmKGQuc2l6ZS5oZWlnaHQ9ZC5zaXplLmhlaWdodCsoZC5faGVscGVyP2QucG9zaXRpb24udG9wLWcudG9wOmQucG9zaXRpb24udG9wKSxqJiYoZC5zaXplLndpZHRoPWQuc2l6ZS5oZWlnaHQqZC5hc3BlY3RSYXRpbyksZC5wb3NpdGlvbi50b3A9ZC5faGVscGVyP2cudG9wOjApLGQub2Zmc2V0LmxlZnQ9ZC5wYXJlbnREYXRhLmxlZnQrZC5wb3NpdGlvbi5sZWZ0LGQub2Zmc2V0LnRvcD1kLnBhcmVudERhdGEudG9wK2QucG9zaXRpb24udG9wO3ZhciBtPU1hdGguYWJzKChkLl9oZWxwZXI/ZC5vZmZzZXQubGVmdC1rLmxlZnQ6ZC5vZmZzZXQubGVmdC1rLmxlZnQpK2Quc2l6ZURpZmYud2lkdGgpLG49TWF0aC5hYnMoKGQuX2hlbHBlcj9kLm9mZnNldC50b3Atay50b3A6ZC5vZmZzZXQudG9wLWcudG9wKStkLnNpemVEaWZmLmhlaWdodCksbz1kLmNvbnRhaW5lckVsZW1lbnQuZ2V0KDApPT1kLmVsZW1lbnQucGFyZW50KCkuZ2V0KDApLHA9L3JlbGF0aXZlfGFic29sdXRlLy50ZXN0KGQuY29udGFpbmVyRWxlbWVudC5jc3MoInBvc2l0aW9uIikpO28mJnAmJihtLT1kLnBhcmVudERhdGEubGVmdCksbStkLnNpemUud2lkdGg+PWQucGFyZW50RGF0YS53aWR0aCYmKGQuc2l6ZS53aWR0aD1kLnBhcmVudERhdGEud2lkdGgtbSxqJiYoZC5zaXplLmhlaWdodD1kLnNpemUud2lkdGgvZC5hc3BlY3RSYXRpbykpLG4rZC5zaXplLmhlaWdodD49ZC5wYXJlbnREYXRhLmhlaWdodCYmKGQuc2l6ZS5oZWlnaHQ9ZC5wYXJlbnREYXRhLmhlaWdodC1uLGomJihkLnNpemUud2lkdGg9ZC5zaXplLmhlaWdodCpkLmFzcGVjdFJhdGlvKSl9LHN0b3A6ZnVuY3Rpb24oYixjKXt2YXIgZD1hKHRoaXMpLmRhdGEoInJlc2l6YWJsZSIpLGU9ZC5vcHRpb25zLGY9ZC5wb3NpdGlvbixnPWQuY29udGFpbmVyT2Zmc2V0LGg9ZC5jb250YWluZXJQb3NpdGlvbixpPWQuY29udGFpbmVyRWxlbWVudCxqPWEoZC5oZWxwZXIpLGs9ai5vZmZzZXQoKSxsPWoub3V0ZXJXaWR0aCgpLWQuc2l6ZURpZmYud2lkdGgsbT1qLm91dGVySGVpZ2h0KCktZC5zaXplRGlmZi5oZWlnaHQ7ZC5faGVscGVyJiYhZS5hbmltYXRlJiYvcmVsYXRpdmUvLnRlc3QoaS5jc3MoInBvc2l0aW9uIikpJiZhKHRoaXMpLmNzcyh7bGVmdDprLmxlZnQtaC5sZWZ0LWcubGVmdCx3aWR0aDpsLGhlaWdodDptfSksZC5faGVscGVyJiYhZS5hbmltYXRlJiYvc3RhdGljLy50ZXN0KGkuY3NzKCJwb3NpdGlvbiIpKSYmYSh0aGlzKS5jc3Moe2xlZnQ6ay5sZWZ0LWgubGVmdC1nLmxlZnQsd2lkdGg6bCxoZWlnaHQ6bX0pfX0pLGEudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiZ2hvc3QiLHtzdGFydDpmdW5jdGlvbihiLGMpe3ZhciBkPWEodGhpcykuZGF0YSgicmVzaXphYmxlIiksZT1kLm9wdGlvbnMsZj1kLnNpemU7ZC5naG9zdD1kLm9yaWdpbmFsRWxlbWVudC5jbG9uZSgpLGQuZ2hvc3QuY3NzKHtvcGFjaXR5Oi4yNSxkaXNwbGF5OiJibG9jayIscG9zaXRpb246InJlbGF0aXZlIixoZWlnaHQ6Zi5oZWlnaHQsd2lkdGg6Zi53aWR0aCxtYXJnaW46MCxsZWZ0OjAsdG9wOjB9KS5hZGRDbGFzcygidWktcmVzaXphYmxlLWdob3N0IikuYWRkQ2xhc3ModHlwZW9mIGUuZ2hvc3Q9PSJzdHJpbmciP2UuZ2hvc3Q6IiIpLGQuZ2hvc3QuYXBwZW5kVG8oZC5oZWxwZXIpfSxyZXNpemU6ZnVuY3Rpb24oYixjKXt2YXIgZD1hKHRoaXMpLmRhdGEoInJlc2l6YWJsZSIpLGU9ZC5vcHRpb25zO2QuZ2hvc3QmJmQuZ2hvc3QuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLGhlaWdodDpkLnNpemUuaGVpZ2h0LHdpZHRoOmQuc2l6ZS53aWR0aH0pfSxzdG9wOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9YSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKSxlPWQub3B0aW9ucztkLmdob3N0JiZkLmhlbHBlciYmZC5oZWxwZXIuZ2V0KDApLnJlbW92ZUNoaWxkKGQuZ2hvc3QuZ2V0KDApKX19KSxhLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImdyaWQiLHtyZXNpemU6ZnVuY3Rpb24oYixjKXt2YXIgZD1hKHRoaXMpLmRhdGEoInJlc2l6YWJsZSIpLGU9ZC5vcHRpb25zLGY9ZC5zaXplLGc9ZC5vcmlnaW5hbFNpemUsaD1kLm9yaWdpbmFsUG9zaXRpb24saT1kLmF4aXMsaj1lLl9hc3BlY3RSYXRpb3x8Yi5zaGlmdEtleTtlLmdyaWQ9dHlwZW9mIGUuZ3JpZD09Im51bWJlciI/W2UuZ3JpZCxlLmdyaWRdOmUuZ3JpZDt2YXIgaz1NYXRoLnJvdW5kKChmLndpZHRoLWcud2lkdGgpLyhlLmdyaWRbMF18fDEpKSooZS5ncmlkWzBdfHwxKSxsPU1hdGgucm91bmQoKGYuaGVpZ2h0LWcuaGVpZ2h0KS8oZS5ncmlkWzFdfHwxKSkqKGUuZ3JpZFsxXXx8MSk7L14oc2V8c3xlKSQvLnRlc3QoaSk/KGQuc2l6ZS53aWR0aD1nLndpZHRoK2ssZC5zaXplLmhlaWdodD1nLmhlaWdodCtsKTovXihuZSkkLy50ZXN0KGkpPyhkLnNpemUud2lkdGg9Zy53aWR0aCtrLGQuc2l6ZS5oZWlnaHQ9Zy5oZWlnaHQrbCxkLnBvc2l0aW9uLnRvcD1oLnRvcC1sKTovXihzdykkLy50ZXN0KGkpPyhkLnNpemUud2lkdGg9Zy53aWR0aCtrLGQuc2l6ZS5oZWlnaHQ9Zy5oZWlnaHQrbCxkLnBvc2l0aW9uLmxlZnQ9aC5sZWZ0LWspOihkLnNpemUud2lkdGg9Zy53aWR0aCtrLGQuc2l6ZS5oZWlnaHQ9Zy5oZWlnaHQrbCxkLnBvc2l0aW9uLnRvcD1oLnRvcC1sLGQucG9zaXRpb24ubGVmdD1oLmxlZnQtayl9fSk7dmFyIGM9ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlSW50KGEsMTApfHwwfSxkPWZ1bmN0aW9uKGEpe3JldHVybiFpc05hTihwYXJzZUludChhLDEwKSl9fSkoalF1ZXJ5KTsK]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.selectable.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwDQoqIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LXVpDQoqIEluY2x1ZGVzOiBqcXVlcnkudWkuc2VsZWN0YWJsZS5qcw0KKiBDb3B5cmlnaHQgKGMpIDIwMTIgQVVUSE9SUy50eHQ7IExpY2Vuc2VkIE1JVCwgR1BMICovDQooZnVuY3Rpb24oYSxiKXthLndpZGdldCgidWkuc2VsZWN0YWJsZSIsYS51aS5tb3VzZSx7b3B0aW9uczp7YXBwZW5kVG86ImJvZHkiLGF1dG9SZWZyZXNoOiEwLGRpc3RhbmNlOjAsZmlsdGVyOiIqIix0b2xlcmFuY2U6InRvdWNoIn0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBiPXRoaXM7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zZWxlY3RhYmxlIiksdGhpcy5kcmFnZ2VkPSExO3ZhciBjO3RoaXMucmVmcmVzaD1mdW5jdGlvbigpe2M9YShiLm9wdGlvbnMuZmlsdGVyLGIuZWxlbWVudFswXSksYy5hZGRDbGFzcygidWktc2VsZWN0ZWUiKSxjLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGM9Yi5vZmZzZXQoKTthLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIix7ZWxlbWVudDp0aGlzLCRlbGVtZW50OmIsbGVmdDpjLmxlZnQsdG9wOmMudG9wLHJpZ2h0OmMubGVmdCtiLm91dGVyV2lkdGgoKSxib3R0b206Yy50b3ArYi5vdXRlckhlaWdodCgpLHN0YXJ0c2VsZWN0ZWQ6ITEsc2VsZWN0ZWQ6Yi5oYXNDbGFzcygidWktc2VsZWN0ZWQiKSxzZWxlY3Rpbmc6Yi5oYXNDbGFzcygidWktc2VsZWN0aW5nIiksdW5zZWxlY3Rpbmc6Yi5oYXNDbGFzcygidWktdW5zZWxlY3RpbmciKX0pfSl9LHRoaXMucmVmcmVzaCgpLHRoaXMuc2VsZWN0ZWVzPWMuYWRkQ2xhc3MoInVpLXNlbGVjdGVlIiksdGhpcy5fbW91c2VJbml0KCksdGhpcy5oZWxwZXI9YSgiPGRpdiBjbGFzcz0ndWktc2VsZWN0YWJsZS1oZWxwZXInPjwvZGl2PiIpfSxkZXN0cm95OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWVzLnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZSIpLnJlbW92ZURhdGEoInNlbGVjdGFibGUtaXRlbSIpLHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0YWJsZSB1aS1zZWxlY3RhYmxlLWRpc2FibGVkIikucmVtb3ZlRGF0YSgic2VsZWN0YWJsZSIpLnVuYmluZCgiLnNlbGVjdGFibGUiKSx0aGlzLl9tb3VzZURlc3Ryb3koKSx0aGlzfSxfbW91c2VTdGFydDpmdW5jdGlvbihiKXt2YXIgYz10aGlzO3RoaXMub3Bvcz1bYi5wYWdlWCxiLnBhZ2VZXTtpZih0aGlzLm9wdGlvbnMuZGlzYWJsZWQpcmV0dXJuO3ZhciBkPXRoaXMub3B0aW9uczt0aGlzLnNlbGVjdGVlcz1hKGQuZmlsdGVyLHRoaXMuZWxlbWVudFswXSksdGhpcy5fdHJpZ2dlcigic3RhcnQiLGIpLGEoZC5hcHBlbmRUbykuYXBwZW5kKHRoaXMuaGVscGVyKSx0aGlzLmhlbHBlci5jc3Moe2xlZnQ6Yi5jbGllbnRYLHRvcDpiLmNsaWVudFksd2lkdGg6MCxoZWlnaHQ6MH0pLGQuYXV0b1JlZnJlc2gmJnRoaXMucmVmcmVzaCgpLHRoaXMuc2VsZWN0ZWVzLmZpbHRlcigiLnVpLXNlbGVjdGVkIikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtkLnN0YXJ0c2VsZWN0ZWQ9ITAsIWIubWV0YUtleSYmIWIuY3RybEtleSYmKGQuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVkIiksZC5zZWxlY3RlZD0hMSxkLiRlbGVtZW50LmFkZENsYXNzKCJ1aS11bnNlbGVjdGluZyIpLGQudW5zZWxlY3Rpbmc9ITAsYy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLGIse3Vuc2VsZWN0aW5nOmQuZWxlbWVudH0pKX0pLGEoYi50YXJnZXQpLnBhcmVudHMoKS5hbmRTZWxmKCkuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtpZihkKXt2YXIgZT0hYi5tZXRhS2V5JiYhYi5jdHJsS2V5fHwhZC4kZWxlbWVudC5oYXNDbGFzcygidWktc2VsZWN0ZWQiKTtyZXR1cm4gZC4kZWxlbWVudC5yZW1vdmVDbGFzcyhlPyJ1aS11bnNlbGVjdGluZyI6InVpLXNlbGVjdGVkIikuYWRkQ2xhc3MoZT8idWktc2VsZWN0aW5nIjoidWktdW5zZWxlY3RpbmciKSxkLnVuc2VsZWN0aW5nPSFlLGQuc2VsZWN0aW5nPWUsZC5zZWxlY3RlZD1lLGU/Yy5fdHJpZ2dlcigic2VsZWN0aW5nIixiLHtzZWxlY3Rpbmc6ZC5lbGVtZW50fSk6Yy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLGIse3Vuc2VsZWN0aW5nOmQuZWxlbWVudH0pLCExfX0pfSxfbW91c2VEcmFnOmZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7dGhpcy5kcmFnZ2VkPSEwO2lmKHRoaXMub3B0aW9ucy5kaXNhYmxlZClyZXR1cm47dmFyIGQ9dGhpcy5vcHRpb25zLGU9dGhpcy5vcG9zWzBdLGY9dGhpcy5vcG9zWzFdLGc9Yi5wYWdlWCxoPWIucGFnZVk7aWYoZT5nKXt2YXIgaT1nO2c9ZSxlPWl9aWYoZj5oKXt2YXIgaT1oO2g9ZixmPWl9cmV0dXJuIHRoaXMuaGVscGVyLmNzcyh7bGVmdDplLHRvcDpmLHdpZHRoOmctZSxoZWlnaHQ6aC1mfSksdGhpcy5zZWxlY3RlZXMuZWFjaChmdW5jdGlvbigpe3ZhciBpPWEuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtpZighaXx8aS5lbGVtZW50PT1jLmVsZW1lbnRbMF0pcmV0dXJuO3ZhciBqPSExO2QudG9sZXJhbmNlPT0idG91Y2giP2o9IShpLmxlZnQ+Z3x8aS5yaWdodDxlfHxpLnRvcD5ofHxpLmJvdHRvbTxmKTpkLnRvbGVyYW5jZT09ImZpdCImJihqPWkubGVmdD5lJiZpLnJpZ2h0PGcmJmkudG9wPmYmJmkuYm90dG9tPGgpLGo/KGkuc2VsZWN0ZWQmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEpLGkudW5zZWxlY3RpbmcmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS11bnNlbGVjdGluZyIpLGkudW5zZWxlY3Rpbmc9ITEpLGkuc2VsZWN0aW5nfHwoaS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0aW5nIiksaS5zZWxlY3Rpbmc9ITAsYy5fdHJpZ2dlcigic2VsZWN0aW5nIixiLHtzZWxlY3Rpbmc6aS5lbGVtZW50fSkpKTooaS5zZWxlY3RpbmcmJigoYi5tZXRhS2V5fHxiLmN0cmxLZXkpJiZpLnN0YXJ0c2VsZWN0ZWQ/KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIiksaS5zZWxlY3RlZD0hMCk6KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuc3RhcnRzZWxlY3RlZCYmKGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIiksaS51bnNlbGVjdGluZz0hMCksYy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLGIse3Vuc2VsZWN0aW5nOmkuZWxlbWVudH0pKSksaS5zZWxlY3RlZCYmIWIubWV0YUtleSYmIWIuY3RybEtleSYmIWkuc3RhcnRzZWxlY3RlZCYmKGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVkIiksaS5zZWxlY3RlZD0hMSxpLiRlbGVtZW50LmFkZENsYXNzKCJ1aS11bnNlbGVjdGluZyIpLGkudW5zZWxlY3Rpbmc9ITAsYy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLGIse3Vuc2VsZWN0aW5nOmkuZWxlbWVudH0pKSl9KSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbihiKXt2YXIgYz10aGlzO3RoaXMuZHJhZ2dlZD0hMTt2YXIgZD10aGlzLm9wdGlvbnM7cmV0dXJuIGEoIi51aS11bnNlbGVjdGluZyIsdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO2QuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXVuc2VsZWN0aW5nIiksZC51bnNlbGVjdGluZz0hMSxkLnN0YXJ0c2VsZWN0ZWQ9ITEsYy5fdHJpZ2dlcigidW5zZWxlY3RlZCIsYix7dW5zZWxlY3RlZDpkLmVsZW1lbnR9KX0pLGEoIi51aS1zZWxlY3RpbmciLHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtkLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RpbmciKS5hZGRDbGFzcygidWktc2VsZWN0ZWQiKSxkLnNlbGVjdGluZz0hMSxkLnNlbGVjdGVkPSEwLGQuc3RhcnRzZWxlY3RlZD0hMCxjLl90cmlnZ2VyKCJzZWxlY3RlZCIsYix7c2VsZWN0ZWQ6ZC5lbGVtZW50fSl9KSx0aGlzLl90cmlnZ2VyKCJzdG9wIixiKSx0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX19KSxhLmV4dGVuZChhLnVpLnNlbGVjdGFibGUse3ZlcnNpb246IjEuOC4yMCJ9KX0pKGpRdWVyeSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/js/jq.ui.widget.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSBVSSAtIHYxLjguMjAgLSAyMDEyLTA0LTMwCiogaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkKKiBJbmNsdWRlczoganF1ZXJ5LnVpLndpZGdldC5qcwoqIENvcHlyaWdodCAoYykgMjAxMiBBVVRIT1JTLnR4dDsgTGljZW5zZWQgTUlULCBHUEwgKi8KKGZ1bmN0aW9uKGEsYil7aWYoYS5jbGVhbkRhdGEpe3ZhciBjPWEuY2xlYW5EYXRhO2EuY2xlYW5EYXRhPWZ1bmN0aW9uKGIpe2Zvcih2YXIgZD0wLGU7KGU9YltkXSkhPW51bGw7ZCsrKXRyeXthKGUpLnRyaWdnZXJIYW5kbGVyKCJyZW1vdmUiKX1jYXRjaChmKXt9YyhiKX19ZWxzZXt2YXIgZD1hLmZuLnJlbW92ZTthLmZuLnJlbW92ZT1mdW5jdGlvbihiLGMpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gY3x8KCFifHxhLmZpbHRlcihiLFt0aGlzXSkubGVuZ3RoKSYmYSgiKiIsdGhpcykuYWRkKFt0aGlzXSkuZWFjaChmdW5jdGlvbigpe3RyeXthKHRoaXMpLnRyaWdnZXJIYW5kbGVyKCJyZW1vdmUiKX1jYXRjaChiKXt9fSksZC5jYWxsKGEodGhpcyksYixjKX0pfX1hLndpZGdldD1mdW5jdGlvbihiLGMsZCl7dmFyIGU9Yi5zcGxpdCgiLiIpWzBdLGY7Yj1iLnNwbGl0KCIuIilbMV0sZj1lKyItIitiLGR8fChkPWMsYz1hLldpZGdldCksYS5leHByWyI6Il1bZl09ZnVuY3Rpb24oYyl7cmV0dXJuISFhLmRhdGEoYyxiKX0sYVtlXT1hW2VdfHx7fSxhW2VdW2JdPWZ1bmN0aW9uKGEsYil7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGEsYil9O3ZhciBnPW5ldyBjO2cub3B0aW9ucz1hLmV4dGVuZCghMCx7fSxnLm9wdGlvbnMpLGFbZV1bYl0ucHJvdG90eXBlPWEuZXh0ZW5kKCEwLGcse25hbWVzcGFjZTplLHdpZGdldE5hbWU6Yix3aWRnZXRFdmVudFByZWZpeDphW2VdW2JdLnByb3RvdHlwZS53aWRnZXRFdmVudFByZWZpeHx8Yix3aWRnZXRCYXNlQ2xhc3M6Zn0sZCksYS53aWRnZXQuYnJpZGdlKGIsYVtlXVtiXSl9LGEud2lkZ2V0LmJyaWRnZT1mdW5jdGlvbihjLGQpe2EuZm5bY109ZnVuY3Rpb24oZSl7dmFyIGY9dHlwZW9mIGU9PSJzdHJpbmciLGc9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLGg9dGhpcztyZXR1cm4gZT0hZiYmZy5sZW5ndGg/YS5leHRlbmQuYXBwbHkobnVsbCxbITAsZV0uY29uY2F0KGcpKTplLGYmJmUuY2hhckF0KDApPT09Il8iP2g6KGY/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YS5kYXRhKHRoaXMsYyksZj1kJiZhLmlzRnVuY3Rpb24oZFtlXSk/ZFtlXS5hcHBseShkLGcpOmQ7aWYoZiE9PWQmJmYhPT1iKXJldHVybiBoPWYsITF9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hLmRhdGEodGhpcyxjKTtiP2Iub3B0aW9uKGV8fHt9KS5faW5pdCgpOmEuZGF0YSh0aGlzLGMsbmV3IGQoZSx0aGlzKSl9KSxoKX19LGEuV2lkZ2V0PWZ1bmN0aW9uKGEsYil7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGEsYil9LGEuV2lkZ2V0LnByb3RvdHlwZT17d2lkZ2V0TmFtZToid2lkZ2V0Iix3aWRnZXRFdmVudFByZWZpeDoiIixvcHRpb25zOntkaXNhYmxlZDohMX0sX2NyZWF0ZVdpZGdldDpmdW5jdGlvbihiLGMpe2EuZGF0YShjLHRoaXMud2lkZ2V0TmFtZSx0aGlzKSx0aGlzLmVsZW1lbnQ9YShjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoITAse30sdGhpcy5vcHRpb25zLHRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSxiKTt2YXIgZD10aGlzO3RoaXMuZWxlbWVudC5iaW5kKCJyZW1vdmUuIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oKXtkLmRlc3Ryb3koKX0pLHRoaXMuX2NyZWF0ZSgpLHRoaXMuX3RyaWdnZXIoImNyZWF0ZSIpLHRoaXMuX2luaXQoKX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gYS5tZXRhZGF0YSYmYS5tZXRhZGF0YS5nZXQodGhpcy5lbGVtZW50WzBdKVt0aGlzLndpZGdldE5hbWVdfSxfY3JlYXRlOmZ1bmN0aW9uKCl7fSxfaW5pdDpmdW5jdGlvbigpe30sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC51bmJpbmQoIi4iK3RoaXMud2lkZ2V0TmFtZSkucmVtb3ZlRGF0YSh0aGlzLndpZGdldE5hbWUpLHRoaXMud2lkZ2V0KCkudW5iaW5kKCIuIit0aGlzLndpZGdldE5hbWUpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKS5yZW1vdmVDbGFzcyh0aGlzLndpZGdldEJhc2VDbGFzcysiLWRpc2FibGVkICIrInVpLXN0YXRlLWRpc2FibGVkIil9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnR9LG9wdGlvbjpmdW5jdGlvbihjLGQpe3ZhciBlPWM7aWYoYXJndW1lbnRzLmxlbmd0aD09PTApcmV0dXJuIGEuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyk7aWYodHlwZW9mIGM9PSJzdHJpbmciKXtpZihkPT09YilyZXR1cm4gdGhpcy5vcHRpb25zW2NdO2U9e30sZVtjXT1kfXJldHVybiB0aGlzLl9zZXRPcHRpb25zKGUpLHRoaXN9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7cmV0dXJuIGEuZWFjaChiLGZ1bmN0aW9uKGEsYil7Yy5fc2V0T3B0aW9uKGEsYil9KSx0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub3B0aW9uc1thXT1iLGE9PT0iZGlzYWJsZWQiJiZ0aGlzLndpZGdldCgpW2I/ImFkZENsYXNzIjoicmVtb3ZlQ2xhc3MiXSh0aGlzLndpZGdldEJhc2VDbGFzcysiLWRpc2FibGVkIisiICIrInVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsYiksdGhpc30sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbigiZGlzYWJsZWQiLCExKX0sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXRPcHRpb24oImRpc2FibGVkIiwhMCl9LF90cmlnZ2VyOmZ1bmN0aW9uKGIsYyxkKXt2YXIgZSxmLGc9dGhpcy5vcHRpb25zW2JdO2Q9ZHx8e30sYz1hLkV2ZW50KGMpLGMudHlwZT0oYj09PXRoaXMud2lkZ2V0RXZlbnRQcmVmaXg/Yjp0aGlzLndpZGdldEV2ZW50UHJlZml4K2IpLnRvTG93ZXJDYXNlKCksYy50YXJnZXQ9dGhpcy5lbGVtZW50WzBdLGY9Yy5vcmlnaW5hbEV2ZW50O2lmKGYpZm9yKGUgaW4gZillIGluIGN8fChjW2VdPWZbZV0pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcihjLGQpLCEoYS5pc0Z1bmN0aW9uKGcpJiZnLmNhbGwodGhpcy5lbGVtZW50WzBdLGMsZCk9PT0hMXx8Yy5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl9fX0pKGpRdWVyeSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/jsLoader.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpzTG9hZGVyIC0gQSBKYXZhU2NyaXB0IGNsYXNzIHRvIGR5bmFtaWNhbGx5IGxvYWQganMgZmlsZXMgd2hlbiBuZWVkZWQKICogQGF1dGhvciBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKICogQGNvcHlyaWdodCAyMDExLTIwMTIgR2VvcmcgQnVzY2ggKGdlb3JnLmJ1c2NoQGdteC5uZXQpCiAqIEB2ZXJzaW9uIDEuMy4zCiAqIEBsaWNlbnNlIEdQTAogKiBwYWNrZWQgd2l0aCBodHRwOi8vd3d3Lm1pbmlmeWphdmFzY3JpcHQuY29tLyAKICogc2V0dGluZ3M6IG5vcm1hbGl6ZWQsIHNwZWNpYWwgY2hhcnMsIGZhc3QgZGVjb2RlCiAqLwpldmFsKGZ1bmN0aW9uKHAsYSxjLGssZSxkKXtlPWZ1bmN0aW9uKGMpe3JldHVybihjPGE/Jyc6ZShwYXJzZUludChjL2EpKSkrKChjPWMlYSk+MzU/U3RyaW5nLmZyb21DaGFyQ29kZShjKzI5KTpjLnRvU3RyaW5nKDM2KSl9O2lmKCEnJy5yZXBsYWNlKC9eLyxTdHJpbmcpKXt3aGlsZShjLS0pe2RbZShjKV09a1tjXXx8ZShjKX1rPVtmdW5jdGlvbihlKXtyZXR1cm4gZFtlXX1dO2U9ZnVuY3Rpb24oKXtyZXR1cm4nXFx3Kyd9O2M9MX07d2hpbGUoYy0tKXtpZihrW2NdKXtwPXAucmVwbGFjZShuZXcgUmVnRXhwKCdcXGInK2UoYykrJ1xcYicsJ2cnKSxrW2NdKX19cmV0dXJuIHB9KCdvPXtIOjEwLEM6MWQsejoxMCxwOnt9LFQ6MCx1OmsoKXs3KDYueDwxKWggcztiIGw9KDZbMV0mJmQgNlsxXT09XCdrXCc/NlsxXTprKCl7fSksSD0oNlsyXSYmKChkIDZbMl09PVwnQVwnJiYhWChGKDZbMl0pKSl8fGQgNlsyXT09XCdXXCcpP0YoNlsyXSk6NS5IKSxDPSg2WzNdJiYoKGQgNlszXT09XCdBXCcmJiFYKEYoNlszXSkpKXx8ZCA2WzNdPT1cJ1dcJyk/Rig2WzNdKTo1LkMpLHo9KDZbNF0mJigoZCA2WzRdPT1cJ0FcJyYmIVgoRig2WzRdKSkpfHxkIDZbNF09PVwnV1wnKT9GKDZbNF0pOjUueiksbT0xNigrRyAxYygpKzUuVCksYT17fSxNPWsoKXtiIG49KDZbMF0mJmQgNlswXT09XCdBXCc/NlswXTpcJ1wnKSwxOD01OzUuOD17SDpILEM6Qyx6OnosbDprKCl7fSxuOm4scTprKCl7aCAxOC5OKCl9LFA6XCdcJ307NS55PW07NS5OPWsoKXtiIE89Wi4xYShcJzlcJyk7dChiIGk9MDtpPE8ueDtpKyspe3QoYiBqPTA7ajxPW2ldLncueDtqKyspezcoT1tpXS53W2pdLjExPT1cJzEyXCcmJk9baV0ud1tqXS5CPT01Ljgubil7aCBmfX19aCBzfTs1Lkk9MDs1LmM9czs1LlU9aygpezcoNS5jKWg7ciA3KDUuOC5xKCkpezUuOC5sKGYpOzUuYz1mfXIgNyg1Lkk8PTUuOC5DKVYoIm8ucFsiKzUueSsiXS5hW1wnIis1LjgubisiXCddLlUoKSIsNS44LnopO3J7NS44Lmwocyk7NS5jPWZ9NyhvLnBbNS55XS5xKCkmJiFvLnBbNS55XS5jKXtvLnBbNS55XS5sKGYpO28ucFs1LnldLmM9Zn19O2ggNX07Nyg2WzBdJiY1LksoNlswXSk9PVwnMTNcJyl7dChiIGk9MDtpPDZbMF0ueDtpKyspezcoNS5LKDZbMF1baV0pPT1cJzE0XCcmJmQgNlswXVtpXS5uPT1cJ0FcJyl7YiA5PUcgTSgpO3QoYiBqIFIgNlswXVtpXSl7NyhkIDkuOFtqXSE9XCdKXCcpOS44W2pdPTZbMF1baV1bal19fXIgNyhkIDZbMF1baV09PVwnQVwnKWIgOT1HIE0oNlswXVtpXSk7YVs5Ljgubl09OX19ciA3KDZbMF0mJjUuSyg2WzBdKT09XCcxNFwnJiZkIDZbMF0ubj09XCdBXCcpe2IgOT1HIE0oKTt0KGIgaSBSIDZbMF0pezcoZCA5LjhbaV0hPVwnSlwnKTkuOFtpXT02WzBdW2ldfWFbOS44Lm5dPTl9ciA3KDZbMF0mJmQgNlswXT09XCdBXCcpYVs2WzBdXT1HIE0oNlswXSk7ciBoIHM7NS5UKys7NS5wW21dPUcgNS55KG0sYSxsKX0sSzprKEIpe2IgRT1kIEI7NyhFPT09XCcxNFwnKXs3KEIpezcoQiAxZyAxaylFPVwnMTNcJ31yIEU9XCdMXCd9aCBFfSx5OmsobSxhLGwpezUubT1tOzUuYT1hOzUubD1sOzUuYz1zOzUucT1rKCl7dChiIGkgUiA1LmEpezcoITUuYVtpXS44LnEoKSloIHM7NyghNS5hW2ldLmMpaCBzfWggZn07NS51PWsoOSl7NyhkIDk9PSJKIiloOzcoITkuOC5xKCkpezcoOS5JPD05LjguQyl7NS5hWzkuOC5uXS5JPTE2KDkuSSs5Ljgueik7Vigiby5wWyIrNS5tKyJdLnUoby5wWyIrNS5tKyJdLmFbXCciKzkuOC5uKyJcJ10pIiw5Ljgueik7aH1yezcoITkuYyl7OS44Lmwocyk7OS5jPWZ9aH19cns3KCE5LmMpezkuOC5sKGYpOzkuYz1mfTcoNS5xKCkmJiE1LmMpezUubChmKTs1LmM9Zn19fTt0KGIgaSBSIDUuYSl7YiBxPTUuYVtpXS44LnEoKTs3KCFxKXtiIE49NS5hW2ldLk4oKSx1PSghcSYmIU4pOzcodSl7YiB2PVouMW0oXCc5XCcpO3YuUSgiRSIsIjFsLzFuIik7di5RKCIxMiIsNS5hW2ldLjgubik7di5RKCIxOSIsNS5tKTs3KDUuYVtpXS44LlAhPVwnXCcpdi5RKDUuYVtpXS44LlAsNS5hW2ldLjguUCk7di4xNz12LjFlPWsoKXs3KCg1LlkmJjUuWT09XCcxaVwnKXx8ITUuWSl7dChiIGk9MDtpPDUudy54O2krKyl7Nyg1LndbaV0uMTE9PVwnMTJcJyliIG49NS53W2ldLkI7Nyg1LndbaV0uMTE9PVwnMTlcJyliIG09NS53W2ldLkJ9by5wW21dLmFbbl0uVSgpfX07NyhkIHYhPSJKIilaLjFhKCIxZiIpWzBdLjFqKHYpfVYoIm8ucFsiKzUubSsiXS51KG8ucFsiKzUubSsiXS5hW1wnIitpKyJcJ10pIiw1LmFbaV0uOC5IKTsxaH03KCE1LmFbaV0uYyl7NS5hW2ldLjgubChmKTs1LmFbaV0uYz1mfX03KDUucSgpJiYhNS5jKXs1LmwoZik7NS5jPWZ9aCA1fX07NyhkIGchPVwnSlwnJiZvLksoZyk9PVwnMTNcJyYmZy54KXs3KEQuMWIpe0QuMWIoXCcxN1wnLGsoZSl7dChiIGk9MDtpPGcueDtpKyspe28udShnW2ldKTtnW2ldPUw7UyBnW2ldfWc9TDtTIERbXCdnXCddfSl9ciA3KEQuMTUpe0QuMTUoXCd1XCcsayhlKXt0KGIgaT0wO2k8Zy54O2krKyl7by51KGdbaV0pO2dbaV09TDtTIGdbaV19Zz1MO1MgRFtcJ2dcJ119LHMpfX0nLDYyLDg2LCd8fHx8fHRoaXN8YXJndW1lbnRzfGlmfG9wdGlvbnN8c2NyaXB0fHNjcmlwdHN8dmFyfGNhbGxCYWNrQ2FsbGVkfHR5cGVvZnx8dHJ1ZXxqc0xvYWRlcl9zY3JpcHRzfHJldHVybnx8fGZ1bmN0aW9ufGNhbGxCYWNrfGlkfHVybHxqc0xvYWRlcnxsb2FkZXJzfHJlYWR5fGVsc2V8ZmFsc2V8Zm9yfGxvYWR8c2NyaXB0RWxtfGF0dHJpYnV0ZXN8bGVuZ3RofGxvYWRlcnxpbnRlcnZhbHxzdHJpbmd8dmFsdWV8bG9hZFRpbWVPdXR8d2luZG93fHR5cGV8cGFyc2VJbnR8bmV3fGluaXRUaW1lT3V0fHRpbWVFbGFwc2VkfHVuZGVmaW5lZHx0eXBlT2Z8bnVsbHxzY3JpcHRPYmp8bG9hZGVkfHNjcmlwdEVsbXN8bG9hZFR5cGV8c2V0QXR0cmlidXRlfGlufGRlbGV0ZXxsb2FkZXJzTGVuZ3RofGRvQ2FsbEJhY2t8c2V0VGltZW91dHxudW1iZXJ8aXNOYU58cmVhZHlTdGF0ZXxkb2N1bWVudHx8bmFtZXxzcmN8YXJyYXl8b2JqZWN0fGFkZEV2ZW50TGlzdGVuZXJ8ZXZhbHxvbmxvYWR8c2VsZnxjbGFzc3xnZXRFbGVtZW50c0J5VGFnTmFtZXxhdHRhY2hFdmVudHxEYXRlfDEwMDAwfG9ucmVhZHlzdGF0ZWNoYW5nZXxoZWFkfGluc3RhbmNlb2Z8Y29udGludWV8Y29tcGxldGV8YXBwZW5kQ2hpbGR8QXJyYXl8dGV4dHxjcmVhdGVFbGVtZW50fGphdmFzY3JpcHQnLnNwbGl0KCd8JyksMCx7fSkpCg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0pNRmlsZVBpY2tlciddID0gIkpNRmlsZVBpY2tlciI7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICJNb2R1bGUgSk1GaWxlUGlja2VyICVzIGluc3RhbGxlZCI7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gIk1vZHVsZSBKTUZpbGVQaWNrZXIgJXMgdW5pbnN0YWxsZWQiOwokbGFuZ1sndXBncmFkZWQnXSA9ICJNb2R1bGUgSk1GaWxlUGlja2VyIHVwZ3JhZGVkIHRvICVzIjsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gIk1vZHVsZSBKTUZpbGVQaWNrZXIgJXMgaW5zdGFsbGVkLiI7CiRsYW5nWydwb3N0X3VuaW5zdGFsbCddID0gIk1vZHVsZSBKTUZpbGVQaWNrZXIgJXMgdW5pbnN0YWxsZWQuIjsKJGxhbmdbJ2NvbmZpcm1fdW5pbnN0YWxsJ10gPSAiRG8geW91IHJlYWxseSB3YW50IHVuaW5zdGFsbCB0aGUgSk1GaWxlUGlja2VyIG1vZHVsZT8iOwokbGFuZ1snY3VycmVudGRpciddID0gIkN1cnJlbnQgZGlyZWN0b3J5IjsKJGxhbmdbJ2ltYWdlX3NpemUnXSA9ICJJbWFnZXNpemUiOwokbGFuZ1snZmlsZV9zaXplJ10gPSAiRmlsZXNpemUiOwokbGFuZ1snbm9uZSddID0gIm5vbmUiOwokbGFuZ1sncHJlZnNfdXBkYXRlZCddID0gIlByZWZlcmVuY2VzIHVwZGF0ZWQiOwokbGFuZ1snZmlsZW9wZXJhdGlvbnMnXSA9ICJGaWxlIG9wZXJhdGlvbnMiOwokbGFuZ1sndG9nZ2xlX2ZpbGVvcGVyYXRpb25zJ10gPSAiVG9nZ2xlIGZpbGUgb3BlcmF0aW9ucyI7CiRsYW5nWydmaWxldXBsb2FkJ10gPSAiVXBsb2FkIGEgbmV3IGZpbGUiOwokbGFuZ1snY3JlYXRlX2RpciddID0gIkNyZWF0ZSBhIG5ldyBkaXJlY3RvcnkiOwokbGFuZ1sndXBsb2FkJ10gPSAiVXBsb2FkIjsKJGxhbmdbJ2NyZWF0ZSddID0gIkNyZWF0ZSI7CiRsYW5nWydzdWNjZXNzJ10gPSAiT2siOwokbGFuZ1snZXJyb3InXSA9ICJFcnJvciI7CiRsYW5nWydmaWxlX3VwbG9hZGVkJ10gPSAiRmlsZSAnJXMnIHVwbG9hZGVkIjsKJGxhbmdbJ25vX2Rpcm5hbWUnXSA9ICJObyBkaXJuYW1lIHByb3ZpZGVkIjsKJGxhbmdbJ2Rpcl9leGlzdHMnXSA9ICJEaXJuYW1lICclcycgYWxyZWFkeSBleGlzdHMiOwokbGFuZ1snZGlyX2NyZWF0ZWQnXSA9ICJOZXcgZGlyICclcycgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQiOwokbGFuZ1snY3JlYXRlX2Rpcl9mYWlsZWQnXSA9ICJBbiBlcnJvciBvY2N1cmVkIHRyeWluZyB0byBjcmVhdGUgZGlyICclcyciOwokbGFuZ1snbm9fZmlsZV91cGxvYWRlZCddID0gIk5vIGZpbGUgd2FzIHVwbG9hZGVkIjsKJGxhbmdbJ2ZpbGVfdG9vX2JpZyddID0gIlVwbG9hZGVkIGZpbGUgJyVzJyBpcyB0b28gYmlnIjsKJGxhbmdbJ2NvbnRhaW5zX2lsbGVnYWxjaGFycyddID0gIkZpbGVuYW1lICclcycgY29udGFpbnMgb25lIG9yIG1vcmUgaWxsZWdhbCBjaGFyYWN0ZXJzICgnLFwiLCssKixcXCwvLCYsJCkiOwokbGFuZ1sndXBsb2FkX2ZhaWxlZCddID0gIkVycm9yIG1vdmluZyB1cGxvYWRlZCBmaWxlICclcycgaW50byBwbGFjZSI7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9maWxlJ10gPSAiQXJlIHlvdSBzdXJlIHRvIGRlbGV0ZSB0aGlzIGZpbGU6ICVzID8iOwokbGFuZ1snZmlsZV9kZWxldGVkJ10gPSAiRmlsZSAnJXMnIHdhcyBzdWNjZXNzZnVsbHkgZGVsZXRlZCI7CiRsYW5nWydkZWxldGVfZmlsZV9mYWlsZWQnXSA9ICJGaWxlICclcycgY291bGQgbm90IGJlIGRlbGV0ZWQiOwokbGFuZ1snZGVsZXRlX2Rpcl9mYWlsZWQnXSA9ICJEaXIgJyVzJyBjb3VsZCBub3QgYmUgZGVsZXRlZCI7CiRsYW5nWydkaXJfZGVsZXRlZCddID0gIkRpciAnJXMnIHdhcyBzdWNjZXNzZnVsbHkgZGVsZXRlZCI7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9kaXInXSA9ICJBcmUgeW91IHN1cmUgdG8gZGVsZXRlIHRoaXMgZGlyZWN0b3J5OiAlcyA/IjsKJGxhbmdbJ2RlbGV0ZV9kaXInXSA9ICJEZWxldGUgZW1wdHkgc3ViZGlyIjsKJGxhbmdbJ2RlbGV0ZV9maWxlJ10gPSAiRGVsZXRlIEZpbGUiOwokbGFuZ1snZGVsZXRlJ10gPSAiRGVsZXRlIjsKJGxhbmdbJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcyddID0gIlJlc3RyaWN0IHVzZXIncyBkaXIgYWNjZXNzIjsKJGxhbmdbJ3Nob3dfZmlsZW1hbmFnZW1lbnQnXSA9ICJTaG93IGZpbGVtYW5hZ2VtZW50IG9wdGlvbnMiOwokbGFuZ1snYWxsb3dfc2NhbGluZyddID0gIkFsbG93IHJlc2l6aW5nIG9mIHVwbG9hZGVkIGltYWdlcyI7CiRsYW5nWydzY2FsaW5nX3dpZHRoJ10gPSAiU2NhbGluZyB3aWR0aCI7CiRsYW5nWydzY2FsaW5nX2hlaWdodCddID0gIlNjYWxpbmcgaGVpZ2h0IjsKJGxhbmdbJ2RlZmF1bHRfaW1hZ2VzaXplJ10gPSAiRGVmYXVsdCBpbWFnZSBzaXplIjsKJGxhbmdbJ3Nob3dfdGh1bWJmaWxlcyddID0gIlNob3cgdGh1bWJuYWlsIGZpbGVzIGFzIHJlZ3VsYXIgZmlsZXMiOwokbGFuZ1snc2NhbGluZ19oZWlnaHQnXSA9ICJTY2FsaW5nIGhlaWdodCI7CiRsYW5nWydjcmVhdGVfdGh1bWJzJ10gPSAiQ3JlYXRlIHRodW1ibmFpbHMiOwokbGFuZ1sncmVzaXplX2ltYWdlJ10gPSAiUmVzaXplIGltYWdlIjsKJGxhbmdbJ2tlZXBfYXNwZWN0cmF0aW8nXSA9ICJLZWVwIGFzcGVjdCByYXRpbyI7CiRsYW5nWydhbGxvd191cHNjYWxpbmcnXSA9ICJBbGxvdyB1cHNjYWxpbmciOwokbGFuZ1snZm9yY2VfdXBzY2FsaW5nJ10gPSAiRm9yY2UgdXBzY2FsaW5nIjsKJGxhbmdbJ2RlY2ltYWxfZGVsaW1pdGVyJ10gPSAiLiI7CiRsYW5nWyd0aG91c2FuZF9kZWxpbWl0ZXInXSA9ICIsIjsKJGxhbmdbJ3RodW1iX3ByZWZpeF9yZXBsYWNlbWVudCddID0gIlRodW1ibmFpbCBwcmVmaXggcmVwbGFjZW1lbnQiOwokbGFuZ1sndGh1bWJfdXBsb2FkX2FjdGlvbiddID0gIlJlbmFtZSBmaWxlbmFtZXMgb2YgdXBsb2FkZWQgZmlsZXMgdGhhdCBzdGFydCB3aXRoIHRodW1ibmFpbCBwcmVmaXggKHRodW1iXyk/IjsKJGxhbmdbJ2Rpcl9ub3Rmb3VuZCddID0gIkRpcmVjdG9yeSAnJXMnIG5vdCBmb3VuZCEiOwokbGFuZ1snYnJvd3NlX2ltYWdlJ10gPSAiQnJvd3NlIGltYWdlcyI7CiRsYW5nWydicm93c2VfZmlsZSddID0gIkJyb3dzZSBmaWxlcyI7CiRsYW5nWyd1c2VfbWltZXR5cGUnXSA9ICJVc2UgbWltZS10eXBlIHRvIGdldCBmaWxlIHR5cGUiOwokbGFuZ1snbm9fbWltZXR5cGUnXSA9ICJObyBtaW1lLXR5cGUgZnVuY3Rpb24gYXZhaWxhYmxlIG9yIG5vdCBjb25maWd1cmVkIHByb3Blcmx5LiBUaGlzIGZlYXR1cmUgaXMgZGlzYWJsZWQuIjsKJGxhbmdbJ25vX2ltYWdlZmlsZSddID0gIiclcycgaXMgbm90IGFuIGltYWdlIGZpbGUiOwokbGFuZ1snZmlsZXR5cGVfbm90YWxsb3dlZCddID0gIkZpbGV0eXBlICclcycgaXMgbm90IGFsbG93ZWQiOwokbGFuZ1snaW1hZ2Vkcm9wZG93bl9leGFtcGxlJ10gPSAiSW1hZ2Vkcm9wZG93biAoc2hvd2luZyBpbWFnZSBmaWxlcyBpbiAnJXMnIHVzaW5nIGRpcj0naW1hZ2VzJykiOwokbGFuZ1snaW1hZ2Vicm93c2VyX2V4YW1wbGUnXSA9ICJJbWFnZWJyb3dzZXIgKHNob3dpbmcgaW1hZ2UgZmlsZXMgaW4gJyVzJyB1c2luZyBkaXI9J2ltYWdlcycgYW5kIG1vZGU9J2Jyb3dzZXInKSI7CiRsYW5nWydmaWxlZHJvcGRvd25fZXhhbXBsZSddID0gIkZpbGVkcm9wZG93biAoc2hvd2luZyBmaWxlcyBpbiAnJXMnIHVzaW5nIHR5cGU9J2ZpbGUnKSI7CiRsYW5nWydmaWxlYnJvd3Nlcl9leGFtcGxlJ10gPSAiRmlsZWJyb3dzZXIgKHNob3dpbmcgZmlsZXMgaW4gJyVzJyB1c2luZyB0eXBlPSdmaWxlJyBhbmQgbW9kZT0nYnJvd3NlciknIjsKJGxhbmdbJ2Rpcl9lbXB0eSddID0gIlRoaXMgZGlyZWN0b3J5IGlzIGVtcHR5IjsKJGxhbmdbJ3N0YXJ0ZGlyJ10gPSAiR28gdG8gc3RhcnQgZGlyIjsKJGxhbmdbJ2Jyb3dzZXJfdGl0bGUnXSA9ICJGaWxlYnJvd3NlciI7CiRsYW5nWydhZG1pbmRlc2NyaXB0aW9uJ10gPSAiQSBzaW1wbGUgZmlsZXBpY2tlciB0b29sIHRvIGNyZWF0ZSBhbiBpbnB1dCB0aGF0IGFsbG93cyB0byBzZWxlY3QgZmlsZXMgZnJvbSBhIGdpdmVuIGRpciB1c2luZyBhIGRyb3Bkb3duIG9yIGEgZmlsZWJyb3dzZXIuIjsKJGxhbmdbJ3JlbG9hZF9kaXInXSA9ICJSZWxvYWQgZGlyZWN0b3J5IjsKJGxhbmdbJ2NsZWFyX2NhY2hlJ10gPSAiQ2xlYXIgY2FjaGUiOwokbGFuZ1sncmVsb2FkX2Ryb3Bkb3duJ10gPSAiVXBkYXRlIGRyb3Bkb3duIjsKJGxhbmdbJ2Nsb3NlJ10gPSAiQ2xvc2UiOwokbGFuZ1snZGVtbyddID0gIkRlbW8iOwokbGFuZ1snZmV1X2FjY2VzcyddID0gIkZyb250ZW5kdXNlciBncm91cHMgdGhhdCBtYXkgdXNlIHRoZSBmaWxlcGlja2VyIGluIGZyb250ZW5kLiI7CiRsYW5nWydzZXR0aW5ncyddID0gIkZpbGUgYnJvd3NlciBzZXR0aW5ncyI7CiRsYW5nWydmb3JjZV9zY2FsaW5nJ10gPSAiRm9yY2Ugc2NhbGluZyI7CiRsYW5nWydkZWZhdWx0X2FkbWluX3RoZW1lJ10gPSAiRGVmYXVsdCBBZG1pbiBUaGVtZSI7CiRsYW5nWydkZWZhdWx0X2Zyb250ZW5kX3RoZW1lJ10gPSAiRGVmYXVsdCBGcm9udGVuZCBUaGVtZSI7CiRsYW5nWydwcmVmcyddID0gIlByZWZlcmVuY2VzIjsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.jmfp_smarty_plugins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZmluYWwgY2xhc3Mgam1mcF9zbWFydHlfcGx1Z2lucw0Kew0KCS8qKg0KCSAqIEBpZ25vcmUNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGptZnBfanNsb2FkZXIoKSANCgl7DQoJCXN0YXRpYyAkbG9hZGVkID0gZmFsc2U7DQoJCWlmKCRsb2FkZWQpDQoJCQlyZXR1cm47DQoJCSRsb2FkZWQgPSB0cnVlOw0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCXJldHVybiAnPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicgLiAkY29uZmlnWydyb290X3VybCddIC4gJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qc0xvYWRlci5qcyIgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4nOw0KCX0NCgkNCgkvKioNCgkgKiBTbWFydHkgUGx1Z2luIDoge0pNRmlsZVBpY2tlcn0NCgkgKiBQdXJwb3NlICAgICAgIDogY3JlYXRlcyBhIGZpbGVwaWNrZXIgaW5wdXQgDQoJICogQXV0aG9yICAgICAgICA6IEdlb3JnIEJ1c2NoIChOYU4pDQoJICogVmVyc2lvbiAgICAgICA6IDEuMA0KCSAqIExpY2Vuc2UgICAgICAgOiBHUEwNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEpNRmlsZVBpY2tlcigkcGFyYW1zLCAmJHRlbXBsYXRlKQ0KCXsNCgkJJG91dHB1dCA9ICcnOw0KCQkNCgkJaWYodmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCAnMS4xMScpIDwgMCkNCgkJCSRzbWFydHkgPSAkdGVtcGxhdGU7ICMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQ0KCQllbHNlDQoJCQkkc21hcnR5ID0gJHRlbXBsYXRlLT5zbWFydHk7DQoJCQ0KCQkkaWQgPSAnJzsNCgkJaWYoaXNzZXQoJHBhcmFtc1snaWQnXSkpDQoJCQkkaWQgPSAkcGFyYW1zWydpZCddOw0KCQkNCgkJJHZhbHVlICA9ICcnOw0KCQlpZihpc3NldCgkcGFyYW1zWyd2YWx1ZSddKSkNCgkJCSR2YWx1ZSA9ICRwYXJhbXNbJ3ZhbHVlJ107DQoJCQ0KCQkkbmFtZSA9ICdqbWZwJzsNCgkJaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfbmFtZSddKSkNCgkJCSRuYW1lID0gJHBhcmFtc1snaW5wdXRfbmFtZSddOw0KCQkNCgkJJHJldHVybmlkID0gY21zX3V0aWxzOjpnZXRfY3VycmVudF9wYWdlaWQoKTsNCgkJDQoJCWlmKCRqbWZwID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdKTUZpbGVQaWNrZXInKSkNCgkJCSRvdXRwdXQgPSAkam1mcC0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCRqbWZwLCAkaWQsICRuYW1lLCAkdmFsdWUsICRwYXJhbXMsICRyZXR1cm5pZCk7DQoJCQ0KCQlpZihpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkpDQoJCQkkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sICRvdXRwdXQpOw0KCQllbHNlDQoJCQllY2hvICRvdXRwdXQ7DQoJfQ0KCQ0KCS8qKg0KCSAqIFNtYXJ0eSBQbHVnaW4gOiB7am1mcF9maWxlbGlzdH0NCgkgKiBQdXJwb3NlICAgICAgIDogZGlzcGxheXMgYSBsaXN0IG9mIGZpbGVzDQoJICogQXV0aG9yICAgICAgICA6IEdlb3JnIEJ1c2NoIChOYU4pDQoJICogVmVyc2lvbiAgICAgICA6IDEuMA0KCSAqIExpY2Vuc2UgICAgICAgOiBHUEwNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGptZnBfZmlsZWxpc3QoJHBhcmFtcywgJiR0ZW1wbGF0ZSkNCgl7DQoJCWlmKHZlcnNpb25fY29tcGFyZShDTVNfVkVSU0lPTiwgJzEuMTEnKSA8IDApDQoJCQkkc21hcnR5ID0gJHRlbXBsYXRlOyAjIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkNCgkJZWxzZQ0KCQkJJHNtYXJ0eSA9ICYkdGVtcGxhdGUtPnNtYXJ0eTsNCgkJDQoJCSRqbWZwID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdKTUZpbGVQaWNrZXInKTsNCgkJDQoJCS8vIG1vZHVsZSBwYXJhbXM6DQoJCSRkaXIgICAgICAgICA9IGlzc2V0KCRwYXJhbXNbJ2RpciddKSAgICAgICAgID8gJHBhcmFtc1snZGlyJ10gICAgICAgICA6ICcnOw0KCQkkZXhjbF9wcmVmaXggPSBpc3NldCgkcGFyYW1zWydleGNsX3ByZWZpeCddKSA/ICRwYXJhbXNbJ2V4Y2xfcHJlZml4J10gOiAnJzsNCgkJJGV4Y2xfc3VmaXggID0gaXNzZXQoJHBhcmFtc1snZXhjbF9zdWZpeCddKSAgPyAkcGFyYW1zWydleGNsX3N1Zml4J10gIDogJyc7DQoJCSRpbmNsX3ByZWZpeCA9IGlzc2V0KCRwYXJhbXNbJ2luY2xfcHJlZml4J10pID8gJHBhcmFtc1snaW5jbF9wcmVmaXgnXSA6ICcnOw0KCQkkaW5jbF9zdWZpeCAgPSBpc3NldCgkcGFyYW1zWydpbmNsX3N1Zml4J10pICA/ICRwYXJhbXNbJ2luY2xfc3VmaXgnXSAgOiAnJzsNCgkJJGZpbGVfZXh0ICAgID0gaXNzZXQoJHBhcmFtc1snZmlsZV9leHQnXSkgICAgPyAkcGFyYW1zWydmaWxlX2V4dCddICAgIDogJyc7DQoJCSRtZWRpYV90eXBlICA9IGlzc2V0KCRwYXJhbXNbJ21lZGlhX3R5cGUnXSkgID8gJHBhcmFtc1snbWVkaWFfdHlwZSddICA6ICdpbWFnZSc7DQoJCQ0KCQkkZXhjbF9kaXJzICAgICAgID0gaXNzZXQoJHBhcmFtc1snZXhjbF9kaXJzJ10pICYmICRqbWZwLT5Jc1RydWUoJHBhcmFtc1snZXhjbF9kaXJzJ10pOw0KCQkkc2hvd190aHVtYmZpbGVzID0gaXNzZXQoJHBhcmFtc1snc2hvd190aHVtYmZpbGVzJ10pICYmICRqbWZwLT5Jc1RydWUoJHBhcmFtc1snc2hvd190aHVtYmZpbGVzJ10pOw0KCQkkY3JlYXRlX3RodW1icyAgID0gaXNzZXQoJHBhcmFtc1snY3JlYXRlX3RodW1icyddKSAmJiAkam1mcC0+SXNUcnVlKCRwYXJhbXNbJ2NyZWF0ZV90aHVtYnMnXSk7DQoJCQ0KCQkvLyBwbHVnaW4gcGFyYW1zOg0KCQkkZXhjbF9maWxlcyA9IGlzc2V0KCRwYXJhbXNbJ2V4Y2xfZmlsZXMnXSkgJiYgJGptZnAtPklzVHJ1ZSgkcGFyYW1zWydleGNsX2ZpbGVzJ10pOw0KCQkkb3V0cHV0ICAgICA9IGlzc2V0KCRwYXJhbXNbJ291dHB1dCddKSA/ICRwYXJhbXNbJ291dHB1dCddIDogJ2ZpbGVuYW1lJzsNCgkJJGFzc2lnbl9hcyAgPSBpc3NldCgkcGFyYW1zWydhc3NpZ25fYXMnXSkgPyAkcGFyYW1zWydhc3NpZ25fYXMnXSA6ICdzdHJpbmcnOw0KCQkkZGVsaW1pdGVyICA9IGlzc2V0KCRwYXJhbXNbJ2RlbGltaXRlciddKSA/ICRwYXJhbXNbJ2RlbGltaXRlciddOiAnPGJyIC8+JzsNCgkJDQoJCS8vIGdldCBmaWxlcw0KCQkkZmlsZXMgPSYgJGptZnAtPkdldEZpbGVzKCRkaXIsJGV4Y2xfcHJlZml4LCRpbmNsX3ByZWZpeCwkZXhjbF9zdWZpeCwkaW5jbF9zdWZpeCwkZmlsZV9leHQsJG1lZGlhX3R5cGUsJGV4Y2xfZGlycywkc2hvd190aHVtYmZpbGVzLCRjcmVhdGVfdGh1bWJzKTsNCgkJDQoJCSRmaWxlX2FycmF5ID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkZmlsZXMgYXMgJG9uZWZpbGUpDQoJCXsNCgkJCWlmKCRleGNsX2ZpbGVzICYmICEkb25lZmlsZS0+aXNfZGlyKSBjb250aW51ZTsNCgkJCXN3aXRjaCgkb3V0cHV0KQ0KCQkJew0KCQkJCWNhc2UgJ2Z1bGxfb2JqZWN0JzoNCgkJCQkJJGZpbGVfYXJyYXlbXSA9ICRvbmVmaWxlOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdyZWx1cmwnOg0KCQkJCQkkZmlsZV9hcnJheVtdID0gJG9uZWZpbGUtPnJlbHVybDsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnZnVsbHVybCc6DQoJCQkJCSRmaWxlX2FycmF5W10gPSAkb25lZmlsZS0+ZnVsbHVybDsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnZmlsZW5hbWUnOg0KCQkJCWRlZmF1bHQ6DQoJCQkJCSRmaWxlX2FycmF5W10gPSAkb25lZmlsZS0+YmFzZW5hbWU7DQoJCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoJCQ0KCQlpZihpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkpDQoJCXsNCgkJCWlmKCRhc3NpZ25fYXMgPT0gImFycmF5Iikgew0KCQkJCSRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkZmlsZV9hcnJheSk7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkJJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLGltcGxvZGUoJGRlbGltaXRlciwgJGZpbGVfYXJyYXkpKTsNCgkJCXJldHVybjsNCgkJfQ0KCQlyZXR1cm4gaW1wbG9kZSgkZGVsaW1pdGVyLCAkZmlsZV9hcnJheSk7DQoJfQ0KCQ0KCS8qKg0KCSAqIFNtYXJ0eSBQbHVnaW4gOiB7am1mcF9yZWFzc2lnbl9uZXdzX2N1c3RvbV9maWVsZHN9DQoJICogUHVycG9zZSAgICAgICA6IHJlLWFzc2lnbnMgdGhlIGN1c3RvbSBmaWVsZHMgb2YgdGhlIG5ld3MgbW9kdWxlIHRvIHNtYXJ0eSANCgkgKiAgICAgICAgICAgICAgICAgdG8gdXNlIEpNRmlsZVBpY2tlciAtIG5lZWRzIG1vZHVsZV9jdXN0b20gZm9sZGVyDQoJICogICAgICAgICAgICAgICAgIChjb2RlIGJhc2VkIG9uIG5ld3MgbW9kdWxlIGFjdGlvbi5lZGl0YXJ0aWNsZS5waHAgJiBhY3Rpb24uYWRkYXJ0aWNsZS5waHApDQoJICogQXV0aG9yICAgICAgICA6IEdlb3JnIEJ1c2NoIChOYU4pDQoJICogVmVyc2lvbiAgICAgICA6IDEuMA0KCSAqIExpY2Vuc2UgICAgICAgOiBHUEwNCiAgICogQGRlcHJlY2F0ZWQNCgkgKi8NCglmdW5jdGlvbiBqbWZwX3JlYXNzaWduX25ld3NfY3VzdG9tX2ZpZWxkcygkcGFyYW1zLCAmJHRlbXBsYXRlKSANCgl7DQoJCWlmKCEkbmV3cyA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ05ld3MnKSkNCgkJCXJldHVybjsNCgkJDQoJCWlmKHZlcnNpb25fY29tcGFyZShDTVNfVkVSU0lPTiwgJzEuMTEnKSA8IDApDQoJCQkkc21hcnR5ID0gJiR0ZW1wbGF0ZTsgIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5DQoJCWVsc2UNCgkJCSRzbWFydHkgPSAmJHRlbXBsYXRlLT5zbWFydHk7DQoJCQ0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCSRpZCAgICAgICAgPSAnbTFfJzsNCgkJJGRiICAgICAgICA9IGNtc21zKCktPkdldERiKCk7DQoJCSRhcnRpY2xlaWQgPSAoaXNzZXQoJF9HRVRbJGlkLidhcnRpY2xlaWQnXSkgPyAkX0dFVFskaWQuJ2FydGljbGVpZCddOicnKTsNCgkJDQoJCS8vDQoJCS8vIERpc3BsYXkgY3VzdG9tIGZpZWxkcw0KCQkvLw0KCQkNCgkJLy8gR2V0IHRoZSBmaWVsZCB2YWx1ZXMNCgkJJGZpZWxkdmFscyA9IGFycmF5KCk7DQoJCWlmKCRhcnRpY2xlaWQpIA0KCQl7DQoJCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX25ld3NfZmllbGR2YWxzDQoJCQkJV0hFUkUgbmV3c19pZCA9ID8nOw0KCQkJJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRhcnRpY2xlaWQpKTsNCgkJCWlmKCBpc19hcnJheSgkdG1wKSApDQoJCQl7DQoJCQkJZm9yZWFjaCggJHRtcCBhcyAkb25lICkNCgkJCQl7DQoJCQkJCSRmaWVsZHZhbHNbJG9uZVsnZmllbGRkZWZfaWQnXV0gPSAkb25lOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkNCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX25ld3NfZmllbGRkZWZzIE9SREVSIEJZIGl0ZW1fb3JkZXInOw0KCQkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoJCSRjdXN0b21fZmxkcyA9IGFycmF5KCk7DQoJCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKQ0KCQl7DQoJCQkkdmFsdWUgPSAnJzsNCgkJCWlmKCBpc3NldCgkZmllbGR2YWxzWyRyb3dbJ2lkJ11dKSApDQoJCQkJJHZhbHVlID0gJGZpZWxkdmFsc1skcm93WydpZCddXVsndmFsdWUnXTsNCgkJCQ0KCQkJJHZhbHVlID0gaXNzZXQoJF9QT1NUWyRpZC4nY3VzdG9tZmllbGQnXVskcm93WydpZCddXSkgJiYgaW5fYXJyYXkoJF9QT1NUWyRpZC4nY3VzdG9tZmllbGQnXVskcm93WydpZCddXSwkX1BPU1RbJGlkLidjdXN0b21maWVsZCddKSA/ICRfUE9TVFskaWQuJ2N1c3RvbWZpZWxkJ11bJHJvd1snaWQnXV06JHZhbHVlOw0KCQkJJG9iaiAgID0gbmV3IFN0ZENsYXNzKCk7DQoJCQkkbmFtZSAgPSAiY3VzdG9tZmllbGRbIi4kcm93WydpZCddLiJdIjsNCgkJCSRvYmotPnByb21wdCA9ICRyb3dbJ25hbWUnXTsNCgkJCXN3aXRjaCggJHJvd1sndHlwZSddICkNCgkJCXsNCgkJCQljYXNlICd0ZXh0Ym94JzoNCgkJCQkJaWYoc3RhcnRzd2l0aCgkcm93WyduYW1lJ10sICdKTUZQXycpICYmICRqbWZwID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdKTUZpbGVQaWNrZXInKSkNCgkJCQkJew0KCQkJCQkJJG9iai0+cHJvbXB0ID0gc3Vic3RyKCRyb3dbJ25hbWUnXSw1KTsNCgkJCQkJCSRvYmotPmZpZWxkICA9ICRqbWZwLT5DcmVhdGVGaWxlUGlja2VySW5wdXQoJGptZnAsICRpZCwgJG5hbWUsICR2YWx1ZSwgJHBhcmFtcyk7DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQkkc2l6ZSAgICAgICA9IG1pbig1MCwkcm93WydtYXhfbGVuZ3RoJ10pOw0KCQkJCQkJJG9iai0+ZmllbGQgPSAkbmV3cy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwkbmFtZSwkdmFsdWUsJHNpemUsJHJvd1snbWF4X2xlbmd0aCddKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQljYXNlICdjaGVja2JveCc6DQoJCQkJCSRvYmotPmZpZWxkID0gJG5ld3MtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwkbmFtZSwkdmFsdWUhPScxJz8kdmFsdWU6JzAnKS4kbmV3cy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJG5hbWUsJzEnLCR2YWx1ZSE9JzEnPyR2YWx1ZTonMCcpOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICd0ZXh0YXJlYSc6DQoJCQkJCSRvYmotPmZpZWxkID0gJG5ld3MtPkNyZWF0ZVRleHRBcmVhKHRydWUsJGlkLCR2YWx1ZSwkbmFtZSk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2ZpbGUnOg0KCQkJCQkkbmFtZSA9ICJjdXN0b21maWVsZF8iLiRyb3dbJ2lkJ107DQoJCQkJCWlmKCAkdmFsdWUgIT0gJycgKQ0KCQkJCQl7DQoJCQkJCQkkZGVsbiA9ICdkZWxldGVfY3VzdG9tZmllbGRbJy4kcm93WydpZCddLiddJzsNCgkJCQkJCSRkZWwgID0gJyZuYnNwOycuJG5ld3MtPkxhbmcoJ2RlbGV0ZScpLiRuZXdzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwkZGVsbiwnZGVsZXRlJyk7DQoJCQkJCX0NCgkJCQkJJG9iai0+ZmllbGQgPSAkdmFsdWUuJyZuYnNwOycuJG5ld3MtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJG5hbWUpLiRkZWw7Ow0KCQkJCQlicmVhazsNCgkJCX0NCgkJCSRjdXN0b21fZmxkc1tdID0gJG9iajsNCgkJfQ0KCQlpZiggY291bnQoJGN1c3RvbV9mbGRzKSA+IDAgKQ0KCQkJJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21fZmllbGRzJywkY3VzdG9tX2ZsZHMpOw0KCX0NCgkNCgkvKioNCgkgKiBTbWFydHkgUGx1Z2luIDoge2ptZnBfbmV3c19jdXN0b21fZmllbGRzfQ0KCSAqIFB1cnBvc2UgICAgICAgOiByZS1hc3NpZ25zIHRoZSBjdXN0b20gZmllbGRzIG9mIHRoZSBuZXdzIG1vZHVsZSB0byBzbWFydHkgDQoJICogICAgICAgICAgICAgICAgIHRvIHVzZSBKTUZpbGVQaWNrZXIgLSBuZWVkcyBtb2R1bGVfY3VzdG9tIGZvbGRlcg0KCSAqICAgICAgICAgICAgICAgICAoY29kZSBiYXNlZCBvbiBVRFQgYnkgd2lzaGJvbmUpDQoJICogQXV0aG9yICAgICAgICA6IEdlb3JnIEJ1c2NoIChOYU4pDQoJICogVmVyc2lvbiAgICAgICA6IDEuMA0KCSAqIExpY2Vuc2UgICAgICAgOiBHUEwNCgkgKi8NCglmdW5jdGlvbiBqbWZwX25ld3NfY3VzdG9tZmllbGRzKCRwYXJhbXMsICYkdGVtcGxhdGUpIA0KCXsNCgkJaWYoISRuZXdzID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnTmV3cycpKQ0KCQkJcmV0dXJuOw0KCQkNCgkJaWYodmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCAnMS4xMScpIDwgMCkNCgkJCSRzbWFydHkgPSAmJHRlbXBsYXRlOyAjIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkNCgkJZWxzZQ0KCQkJJHNtYXJ0eSA9ICYkdGVtcGxhdGUtPnNtYXJ0eTsNCgkJDQoJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCgkJZm9yZWFjaCgkcGFyYW1zWydmaWVsZHMnXSBhcyAmJGZpZWxkKQ0KCQl7DQoJCQlpZihzdGFydHN3aXRoKCRmaWVsZC0+cHJvbXB0LCdKTUZQXycpKQ0KCQkJew0KCQkJCSNpZihwcmVnX21hdGNoKCcvaWQ9WyJcJ10oW15cJ14iXSpcW1x3KlxdKVsiXCddLycsJGZpZWxkLT5maWVsZCwkbWF0Y2hlczEpICYmIHByZWdfbWF0Y2goJy9uYW1lPVsiXCddKFteXCdeIl0qXFtcdypcXSlbIlwnXS8nLCRmaWVsZC0+ZmllbGQsJG1hdGNoZXMyKSkgDQoJCQkJaWYocHJlZ19tYXRjaCgnL25hbWU9WyJcJ10oW15cJ14iXSpcW1x3KlxdKVsiXCddLycsJGZpZWxkLT5maWVsZCwkbWF0Y2hlczIpICYmIHByZWdfbWF0Y2goJy92YWx1ZT1bIlwnXShbXlwnXiJdKilbIlwnXS8nLCRmaWVsZC0+ZmllbGQsJG1hdGNoZXMzKSkNCgkJCQl7DQoJCQkJCSMkZmllbGRfaWQgICAgICA9IG11bmdlX3N0cmluZ190b191cmwoJG1hdGNoZXMxWzFdKTsNCgkJCQkJJGZpZWxkX25hbWUgICAgPSAkbWF0Y2hlczJbMV07DQoJCQkJCSRmaWVsZF92YWx1ZSAgID0gJG1hdGNoZXMzWzFdOw0KCQkJCQkkam1mcCAgICAgICAgICA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0pNRmlsZVBpY2tlcicpOw0KCQkJCQkkZmllbGQtPnByb21wdCA9IHN0cl9yZXBsYWNlKCdKTUZQXycsICcnLCRmaWVsZC0+cHJvbXB0KTsNCgkJCQkJJGZpZWxkLT5maWVsZCAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0pNRmlsZVBpY2tlcicpLT5DcmVhdGVGaWxlUGlja2VySW5wdXQoJGptZnAsICcnLCAkZmllbGRfbmFtZSwgJGZpZWxkX3ZhbHVlLCAkcGFyYW1zKTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJJHNtYXJ0eS0+YXNzaWduKCdqbWZwX25ld3NfdHBsX3BhdGgnLCRjb25maWdbJ3Jvb3RfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdtb2R1bGVzJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnTmV3cycgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RlbXBsYXRlcycgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2VkaXRhcnRpY2xlLnRwbCcpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ2N1c3RvbV9maWVsZHMnLCRwYXJhbXNbJ2ZpZWxkcyddKTsNCgl9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGptZnBfY21zMigpDQogIHsNCiAgICAgcmV0dXJuIChib29sKWptZnBfdXRpbHM6OmlzQ01TMigpOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEZFVV9Mb2FkZWQoKQ0KICB7DQogICAgcmV0dXJuIChib29sKWptZnA6OkZFVV9Mb2FkZWQoKTsNCiAgfQ0KfQ0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.jmfp_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3Mgam1mcF91dGlscw0Kew0KICBwdWJsaWMgc3RhdGljIGZpbmFsIGZ1bmN0aW9uIGlzQ01TMigpDQogIHsNCiAgICByZXR1cm4gKGJvb2wpKHZlcnNpb25fY29tcGFyZShDTVNfVkVSU0lPTiwgJzIuMCcpID4gLTEpOw0KICB9IA0KICANCiAgCS8qKg0KCSAqIEdldHMgdGhlIGZpbGUgdHlwZSBvZiBhIGZpbGUuDQoJICoNCgkgKiBAc2luY2UgMS4wDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGZpbGUgLSB0aGUgcGF0aCB0byBhIGZpbGUNCgkgKiBAcGFyYW0gc3RyaW5nICR1c2VfbWltZSAtIHNldCB0byB0cnVlIHRvIGRldGVjdCBmaWxlIHR5cGUgYnkgbWltZSB0eXBlDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyAtIHRoZSBtaW1lLXR5cGUgb3IgZmlsZSBleHRlbnNpb24NCgkgKi8NCglwdWJsaWMgc3RhdGljIGZpbmFsIGZ1bmN0aW9uIEdldEZpbGVUeXBlKCRmaWxlLCAkdXNlX21pbWUgPSAnJykNCgl7DQoJCSRmaWxldHlwZSA9ICcnOw0KCQlpZigkdXNlX21pbWUgPT0gJycpDQoJCXsNCgkJICAkam1mcCA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdKTUZpbGVQaWNrZXInKTsNCgkJICAkdXNlX21pbWUgPSAkam1mcC0+R2V0UHJlZmVyZW5jZSgndXNlX21pbWV0eXBlJyxmYWxzZSk7DQoJCX0NCgkJaWYoJHVzZV9taW1lKQ0KCQl7DQoJCQlpZiAodmVyc2lvbl9jb21wYXJlKFBIUF9WRVJTSU9OLCAnNS4zLjAnKSA+PSAwICYmIGZ1bmN0aW9uX2V4aXN0cygnZmluZm9fb3BlbicpKQ0KCQkJew0KCQkJCSRmaW5mbyAgICA9IGZpbmZvX29wZW4oRklMRUlORk9fTUlNRV9UWVBFKTsNCgkJCQkkZmlsZXR5cGUgPSBmaW5mb19maWxlKCRmaW5mbywgJGZpbGUpOw0KCQkJCWZpbmZvX2Nsb3NlKCRmaW5mbyk7DQoJCQl9DQoJCQllbHNlIGlmKGZ1bmN0aW9uX2V4aXN0cygnbWltZV9jb250ZW50X3R5cGUnKSkNCgkJCQkkZmlsZXR5cGUgPSBtaW1lX2NvbnRlbnRfdHlwZSgkZmlsZSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkZmlsZWluZm8gPSBwYXRoaW5mbygkZmlsZSk7DQoJCQlpZihpc3NldCgkZmlsZWluZm9bJ2V4dGVuc2lvbiddKSkNCgkJCQkkZmlsZXR5cGUgPSAkZmlsZWluZm9bJ2V4dGVuc2lvbiddOw0KCQl9DQoJCXJldHVybiBzdHJ0b2xvd2VyKCRmaWxldHlwZSk7DQoJfQ0KDQoJDQoJLyoqDQoJICogUmV0dXJuIGFuIGFycmF5IGNvbnRhaW5pbmcgYSBsaXN0IG9mIGZpbGVzIGluIGEgZGlyZWN0b3J5Lg0KCSAqIFBlcmZvcm1zIGEgbm9uIHJlY3Vyc2l2ZSBzZWFyY2guDQoJICoNCgkgKiBAc2luY2UgMS4wDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGRpciAtIHRoZSBkaXJlY3RvcnkgdG8gbGlzdCB0aGUgZmlsZXMgb2YgKG1heSBiZSByZWxhdGl2ZSB0byB1cGxvYWRzIGRpciBvciBhYnNvbHV0ZSBwYXRoKQ0KCSAqIEBwYXJhbSBhcnJheXxzdHJpbmcgJGV4Y2xfcHJlZml4IC0gZmlsZXByZWZpeGVzIHRvIGV4Y2x1ZGUgKGFycmF5KCdmb28nLCdiYXInLC4uLikgb3IgY3N2KQ0KCSAqIEBwYXJhbSBhcnJheXxzdHJpbmcgJGluY2xfcHJlZml4IC0gZmlsZXByZWZpeGVzIHRvIGluY2x1ZGUgKGFycmF5KCdmb28nLCdiYXInLC4uLikgb3IgY3N2KQ0KCSAqIEBwYXJhbSBhcnJheXxzdHJpbmcgJGV4Y2xfc3VmaXggLSBmaWxlc3VmaXhlcyB0byBleGNsdWRlIChhcnJheSgnZm9vJywnYmFyJywuLi4pIG9yIGNzdikNCgkgKiBAcGFyYW0gYXJyYXl8c3RyaW5nICRpbmNsX3N1Zml4IC0gZmlsZXN1Zml4ZXMgdG8gaW5jbHVkZSAoYXJyYXkoJ2ZvbycsJ2JhcicsLi4uKSBvciBjc3YpDQoJICogQHBhcmFtIGFycmF5fHN0cmluZyAkZmlsZV9leHQgLSBmaWxlc3VmaXhlcyB0byBpbmNsdWRlIChhcnJheSgnZm9vJywnYmFyJywuLi4pIG9yIGNzdikNCgkgKiBAcGFyYW0gc3RyaW5nICRtZWRpYV90eXBlIC0gZmlsZSBvciBpbWFnZQ0KCSAqIEBwYXJhbSBib29sZWFuICRleGNsX2RpcnMgLSBzZXQgdG8gdHJ1ZSB0byBleGNsdWRlIGRpcmVjdG9yaWVzDQoJICogQHBhcmFtIGJvb2xlYW4gJHNob3dfdGh1bWJmaWxlcw0KCSAqIEBwYXJhbSBib29sZWFuICRjcmVhdGVfdGh1bWJzID0gdHJ1ZQ0KCSAqDQoJICogQHJldHVybiBhcnJheQ0KCSAqIEBkZXByZWNhdGVkDQoJICovDQoJcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiAmR2V0RmlsZXMoJGRpciA9ICcnLCAkZXhjbF9wcmVmaXggPSAnJywgJGluY2xfcHJlZml4ID0gJycsICRleGNsX3N1Zml4ID0gJycsDQoJCSRpbmNsX3N1Zml4ID0gJycsICRmaWxlX2V4dCA9ICcnLCAkbWVkaWFfdHlwZSA9ICdpbWFnZScsICRleGNsX2RpcnMgPSBmYWxzZSwgJHNob3dfdGh1bWJmaWxlcyA9IGZhbHNlLCAkY3JlYXRlX3RodW1icyA9IHRydWUpDQoJew0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCSRmaWxlcyAgPSBBcnJheSgpOw0KCQkkZGlyICAgID0gc2VsZjo6Q2xlYW5QYXRoKCRkaXIpOw0KCQlpZighaXNfcmVhZGFibGUoJGRpcikpDQoJCXsNCgkJCXJldHVybiAkZmlsZXM7IC8vIFRvRG86IGRpc3BsYXkgZXJyb3IgbWVzc2FnZT8NCgkJfQ0KCQkkdXJsICAgID0gc2VsZjo6Q2xlYW5VUkwoJGRpcik7DQoJCQ0KCQlpZighZmlsZV9leGlzdHMoJGRpcikgfHwgIWlzX2RpcigkZGlyKSkNCgkJew0KCQkJcmV0dXJuICRmaWxlczsNCgkJfQ0KCQkNCgkJaWYoIWlzX2FycmF5KCRleGNsX3ByZWZpeCkpDQoJCXsNCgkJCSRleGNsX3ByZWZpeCA9IHNlbGY6OkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsJGV4Y2xfcHJlZml4KSk7DQoJCX0NCgkJDQoJCWlmKCFpc19hcnJheSgkaW5jbF9wcmVmaXgpKQ0KCQl7DQoJCQkkaW5jbF9wcmVmaXggPSBzZWxmOjpDbGVhbkFycmF5KGV4cGxvZGUoJywnLCRpbmNsX3ByZWZpeCkpOw0KCQl9DQoJCQ0KCQlpZighaXNfYXJyYXkoJGV4Y2xfc3VmaXgpKQ0KCQl7DQoJCQkkZXhjbF9zdWZpeCA9IHNlbGY6OkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsJGV4Y2xfc3VmaXgpKTsNCgkJfQ0KCQkNCgkJaWYoIWlzX2FycmF5KCRpbmNsX3N1Zml4KSkNCgkJew0KCQkJJGluY2xfc3VmaXggPSBzZWxmOjpDbGVhbkFycmF5KGV4cGxvZGUoJywnLCRpbmNsX3N1Zml4KSk7DQoJCX0NCgkJDQoJCWlmKCFpc19hcnJheSgkZmlsZV9leHQpKQ0KCQl7DQoJCQkkZmlsZV9leHQgPSBzZWxmOjpDbGVhbkFycmF5KGV4cGxvZGUoJywnLCRmaWxlX2V4dCkpOw0KCQl9DQoJCQ0KCQkkX2ZpbGVfZXh0ID0gYXJyYXkoJ2pwZycsJ2pwZWcnLCdnaWYnLCdwbmcnKTsNCgkJaWYoJG1lZGlhX3R5cGUgPT0gJ2ltYWdlJykNCgkJew0KCQkJJGZpbGVfZXh0ID0gc2VsZjo6Q2xlYW5BcnJheShhcnJheV9pbnRlcnNlY3QoJF9maWxlX2V4dCwgJGZpbGVfZXh0KSk7DQoJCQlpZihlbXB0eSgkZmlsZV9leHQpKQ0KCQkJew0KCQkJCSRmaWxlX2V4dCA9ICRfZmlsZV9leHQ7DQoJCQl9DQoJCX0NCgkJDQoJCSRleGNsX3ByZWZpeCA9IHNlbGY6OkNsZWFuQXJyYXkoYXJyYXlfZGlmZigkZXhjbF9wcmVmaXgsICRpbmNsX3ByZWZpeCkpOw0KCQkkZXhjbF9zdWZpeCAgPSBzZWxmOjpDbGVhbkFycmF5KGFycmF5X2RpZmYoJGV4Y2xfc3VmaXgsICRpbmNsX3N1Zml4KSk7DQoJCQ0KCQkkZCA9IGRpcigkZGlyKTsNCgkJd2hpbGUgKCRlbnRyeSA9ICRkLT5yZWFkKCkpDQoJCXsNCgkJCWlmICgkZW50cnlbMF0gPT0gJy4nIHx8IChpc19kaXIoJGRpci4kZW50cnkpICYmICRleGNsX2RpcnMpIHx8ICFpc19yZWFkYWJsZSgkZGlyLiRlbnRyeSkpDQoJCQl7DQoJCQkJY29udGludWU7IC8vIFRvRG86IGhvdyB0byBkaXNwbGF5IGZpbGVzL2RpcnMgd2l0aCBsaW1pdGVkIHBlcm1pc3Npb24/DQoJCQl9DQoJCQkNCgkJCSRza2lwICAgICAgICA9IGZhbHNlOw0KCQkJJGluY2xfdGh1bWJzID0gZmFsc2U7DQoJCQkNCgkJCSRmaWxlICAgICAgICAgPSBuZXcgc3RkQ2xhc3MoKTsNCgkJCSRmaWxlLT5pc19kaXIgPSBpc19kaXIoJGRpci4kZW50cnkpOw0KCQkJJGZpbGVpbmZvICAgICA9IHBhdGhpbmZvKCRkaXIuJGVudHJ5KTsNCgkJCWZvcmVhY2goJGZpbGVpbmZvIGFzICRrPT4kdikNCgkJCXsNCgkJCQkkZmlsZS0+JGsgPSAkdjsNCgkJCX0NCgkJCWlmKCEkZmlsZS0+aXNfZGlyKQ0KCQkJew0KCQkJCWZvcmVhY2goJGV4Y2xfcHJlZml4IGFzICRzdHIpDQoJCQkJew0KCQkJCQlpZihzdGFydHN3aXRoKCRmaWxlLT5maWxlbmFtZSwkc3RyKSkNCgkJCQkJew0KCQkJCQkJJHNraXAgPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYoJHNraXApIGNvbnRpbnVlOw0KCQkJCQ0KCQkJCWZvcmVhY2goJGluY2xfcHJlZml4IGFzICRzdHIpDQoJCQkJew0KCQkJCQlpZihzdGFydHN3aXRoKCRzdHIsJ3RodW1iXycpKQ0KCQkJCQl7DQoJCQkJCQkkaW5jbF90aHVtYnMgPSB0cnVlOw0KCQkJCQl9DQoJCQkJCWlmKCFzdGFydHN3aXRoKCRmaWxlLT5maWxlbmFtZSwkc3RyKSkNCgkJCQkJew0KCQkJCQkJJHNraXAgPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYoJHNraXApIGNvbnRpbnVlOw0KCQkJCQ0KCQkJCWZvcmVhY2goJGV4Y2xfc3VmaXggYXMgJHN0cikNCgkJCQl7DQoJCQkJCWlmKGVuZHN3aXRoKCRmaWxlLT5maWxlbmFtZSwkc3RyKSkNCgkJCQkJew0KCQkJCQkJJHNraXAgPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYoJHNraXApIGNvbnRpbnVlOw0KCQkJCQ0KCQkJCWZvcmVhY2goJGluY2xfc3VmaXggYXMgJHN0cikNCgkJCQl7DQoJCQkJCWlmKCFlbmRzd2l0aCgkZmlsZS0+ZmlsZW5hbWUsJHN0cikpDQoJCQkJCXsNCgkJCQkJCSRza2lwID0gdHJ1ZTsNCgkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWlmKCRza2lwKQ0KCQkJCQljb250aW51ZTsNCgkJCX0NCgkJCQ0KCQkJaWYoc3RhcnRzd2l0aCgkZW50cnksJ3RodW1iXycpICYmICEkc2hvd190aHVtYmZpbGVzICYmICEkaW5jbF90aHVtYnMpDQoJCQl7DQoJCQkJY29udGludWU7DQoJCQl9DQoJCQkNCgkJCSRmaWxldHlwZSA9IHNlbGY6OkdldEZpbGVUeXBlKCRkaXIuJGVudHJ5KTsNCgkJCWlmICghJGZpbGUtPmlzX2RpciAmJiAkbWVkaWFfdHlwZSA9PSAnaW1hZ2UnICYmICFpbl9hcnJheShzdHJfcmVwbGFjZSgnaW1hZ2UvJywnJywkZmlsZXR5cGUpLCRmaWxlX2V4dCkpDQoJCQl7DQoJCQkJY29udGludWU7DQoJCQl9DQoJCQllbHNlIGlmKCEkZmlsZS0+aXNfZGlyICYmICRtZWRpYV90eXBlICE9ICdpbWFnZScgJiYgIWluX2FycmF5KCRmaWxlLT5leHRlbnNpb24sJGZpbGVfZXh0KSAmJiAhZW1wdHkoJGZpbGVfZXh0KSkNCgkJCXsNCgkJCQljb250aW51ZTsNCgkJCX0NCgkJCQ0KCQkJJGZpbGUtPmZ1bGx1cmwgICAgICA9ICR1cmwuJGVudHJ5Ow0KCQkJJGZpbGUtPnJlbHVybCAgICAgICA9IHRyaW0oc3RyX3JlcGxhY2UoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwnJywkZmlsZS0+ZnVsbHVybCksJy8nKTsNCgkJCSRmaWxlLT5pZCAgICAgICAgICAgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRmaWxlLT5yZWx1cmwpOw0KCQkJJGZpbGUtPmxhc3RfbW9kaWZlZCA9IGZpbGVtdGltZSgkZGlyLiRlbnRyeSk7DQoJCQkNCgkJCWlmICghJGZpbGUtPmlzX2RpcikNCgkJCXsNCgkJCQkkZmlsZS0+aXNfaW1hZ2UgPSBmYWxzZTsNCgkJCQlpZiAoISRmaWxlLT5pc19kaXIgJiYgaW5fYXJyYXkoc3RyX3JlcGxhY2UoJ2ltYWdlLycsJycsJGZpbGV0eXBlKSxhcnJheSgnanBnJywnanBlZycsJ2dpZicsJ3BuZycpKSkNCgkJCQl7DQoJCQkJCSRmaWxlLT5pc19pbWFnZSA9IHRydWU7DQoJCQkJfQ0KCQkJCSRmaWxlLT5maWxldHlwZSA9ICRmaWxldHlwZTsNCgkJCQlpZigkZmlsZS0+aXNfaW1hZ2UpDQoJCQkJew0KCQkJCQkkZmlsZS0+dGh1bWJuYWlsID0gJyc7DQoJCQkJCSRmaWxlLT50aHVtYnVybCAgPSAnJzsNCgkJCQkJaWYgKCRzaG93X3RodW1iZmlsZXMgfHwgJGluY2xfdGh1bWJzKQ0KCQkJCQl7DQoJCQkJCQkkZmlsZS0+dGh1bWJuYWlsID0gc2VsZjo6R2V0VGh1bWJuYWlsKCRkaXIuc3RyX3JlcGxhY2UoJ3RodW1iXycsICcnLCAkZW50cnkpLCAkY3JlYXRlX3RodW1icyk7DQoJCQkJCQkkZmlsZS0+dGh1bWJ1cmwgID0gc2VsZjo6R2V0VGh1bWJuYWlsKCRkaXIuc3RyX3JlcGxhY2UoJ3RodW1iXycsICcnLCAkZW50cnkpLCAkY3JlYXRlX3RodW1icyx0cnVlKTsNCgkJCQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCSRmaWxlLT50aHVtYm5haWwgPSBzZWxmOjpHZXRUaHVtYm5haWwoJGRpci4kZW50cnksICRjcmVhdGVfdGh1bWJzKTsNCgkJCQkJCSRmaWxlLT50aHVtYnVybCAgPSBzZWxmOjpHZXRUaHVtYm5haWwoJGRpci4kZW50cnksICRjcmVhdGVfdGh1bWJzLHRydWUpOw0KCQkJCQl9DQoJCQkJCQ0KCQkJCQkkZmlsZS0+aW1nc2l6ZSA9ICcnOw0KCQkJCQkkaW1nc2l6ZSA9IEBnZXRpbWFnZXNpemUoJGRpci4kZW50cnkpOw0KCQkJCQlpZiAoJGltZ3NpemUpDQoJCQkJCXsNCgkJCQkJCSRmaWxlLT5pbWdzaXplID0gJGltZ3NpemVbMF0gLiAnIHggJyAuICRpbWdzaXplWzFdOw0KCQkJCQl9DQoJCQkJCWVsc2UNCgkJCQkJew0KCQkJCQkJJGZpbGUtPmltZ3NpemUgPSAnJm5ic3A7JzsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkkZmlsZS0+ZmlsZXNpemUgPSAnJzsNCgkJCQkkaW5mbyA9IEBzdGF0KCRkaXIuJGVudHJ5KTsNCgkJCQlpZiAoJGluZm8pDQoJCQkJew0KCQkJCQkkZmlsZS0+ZmlsZXNpemUgPSAkaW5mb1snc2l6ZSddOw0KCQkJCX0NCgkJCQkkZmlsZS0+ZmlsZWljb24gPSBzZWxmOjpHZXRGaWxlSWNvbigkZmlsZS0+ZXh0ZW5zaW9uLGZhbHNlLHRydWUpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRmaWxlLT5maWxlaWNvbiA9IHNlbGY6OkdldEZpbGVJY29uKCcnLHRydWUpOw0KCQkJfQ0KCQkJJGZpbGVzW10gPSAkZmlsZTsNCgkJfQ0KCQkkZC0+Y2xvc2UoKTsNCgkJdXNvcnQoJGZpbGVzLCBhcnJheSgnam1mcF91dGlscycsICdTb3J0RmlsZXMnKSk7DQoJCXJldHVybiAkZmlsZXM7DQoJfQ0KDQoJLyoqDQoJICogUmVwbGFjZXMgYWxsIG11bHRpcGxlIERJUkVDVE9SWV9TRVBBUkFUT1IsIGRvdHMgYW5kIChtdWx0aXBsZSkgc2xhc2hlcyB3aXRoIG9uZSBzaW5nbGUgRElSRUNUT1JZX1NFUEFSQVRPUiB0byBtYWtlIGEgY2xlYW4gc2VjdXJlIHBhdGggcGFyYW1ldGVyDQoJICoNCgkgKiBAc2luY2UgMS4wDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJHBhdGggLSB0aGUgcGF0aCB0byBjbGVhbg0KCSAqIEBwYXJhbSBzdHJpbmcgJGZ1bGxfcGF0aCAtIHRydWUgdG8gcHJlcGVuZCB1cGxvYWRzIHBhdGggb24gcmV0dXJuLCBmYWxzZSB0byByZXR1cm4gb25seSB0aGUgY2xlYW5lZCAkcGF0aA0KCSAqDQoJICogQHJldHVybiBzdHJpbmcgLSB0aGUgY2xlYW4gcGF0aA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZmluYWwgZnVuY3Rpb24gQ2xlYW5QYXRoKCRwYXRoLCAkZnVsbF9wYXRoID0gdHJ1ZSkNCgl7DQoJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCgkJJHBhdGggPSB0cmltKHN0cl9yZXBsYWNlKGFycmF5KCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCRjb25maWdbJ3VwbG9hZHNfdXJsJ10pLCAnJywgJHBhdGgpLCcvJy5ESVJFQ1RPUllfU0VQQVJBVE9SKTsNCgkJJHBhdGggPSBzdHJfcmVwbGFjZShESVJFQ1RPUllfU0VQQVJBVE9SLCcvJywkcGF0aCk7DQoJCSRwYXRoID0gdHJpbShwcmVnX3JlcGxhY2UoJy8oXC9cLil8KFwuXC8pfChcLz9cLlwuXC8/KS8nLCcvJywkcGF0aCksJy8nKTsNCgkJaWYoJGZ1bGxfcGF0aCkNCgkJew0KCQkJJHBhdGggPSBwcmVnX3JlcGxhY2UoJy9bXFwvXSsvJyxESVJFQ1RPUllfU0VQQVJBVE9SLCAnLycgLiAkcGF0aCAuICcvJyk7DQoJCQkkcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gJHBhdGg7DQoJCQlyZXR1cm4gJHBhdGg7DQoJCX0NCgkJcmV0dXJuIHRyaW0ocHJlZ19yZXBsYWNlKCcvW1xcL10rLycsRElSRUNUT1JZX1NFUEFSQVRPUiwgJHBhdGgpICwgRElSRUNUT1JZX1NFUEFSQVRPUik7DQoJfQ0KCQ0KCS8qKg0KCSAqIENyZWF0ZSBhIGRyb3Bkb3duIGZvcm0gZWxlbWVudCBjb250YWluaW5nIGEgbGlzdCBvZiBmaWxlcyB0aGF0IG1hdGNoIGNlcnRhaW4gY29uZGl0aW9ucw0KCSAqDQoJICogQHNpbmNlIDEuMA0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRpZCAtIHRoZSBpZCBvZiB0aGUgbW9kdWxlaW5zdGFuY2UgdGhhdCBjcmVhdGVzIHRoZSBmaWxlcGlja2VyIGlucHV0DQoJICogQHBhcmFtIHN0cmluZyAkbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBpbnB1dCBmaWVsZA0KCSAqIEBwYXJhbSBzdHJpbmcgJGRpciAtIHRoZSBkaXJlY3RvcnkgdG8gbGlzdCB0aGUgZmlsZXMgb2YgKG1heSBiZSByZWxhdGl2ZSB0byB1cGxvYWRzIGRpciBvciBhYnNvbHV0ZSBwYXRoKQ0KCSAqIEBwYXJhbSBzdHJpbmcgJHNlbGVjdGVkIC0gdGhlIHByZXNlbGVjdGVkIHZhbHVlDQoJICogQHBhcmFtIGFycmF5fHN0cmluZyAkZXhjbF9wcmVmaXggLSBmaWxlcHJlZml4ZXMgdG8gZXhjbHVkZSAoYXJyYXkoJ2ZvbycsJ2JhcicsLi4uKSBvciBjc3YpDQoJICogQHBhcmFtIGFycmF5fHN0cmluZyAkaW5jbF9wcmVmaXggLSBmaWxlcHJlZml4ZXMgdG8gaW5jbHVkZSAoYXJyYXkoJ2ZvbycsJ2JhcicsLi4uKSBvciBjc3YpDQoJICogQHBhcmFtIGFycmF5fHN0cmluZyAkZXhjbF9zdWZpeCAtIGZpbGVzdWZpeGVzIHRvIGV4Y2x1ZGUgKGFycmF5KCdmb28nLCdiYXInLC4uLikgb3IgY3N2KQ0KCSAqIEBwYXJhbSBhcnJheXxzdHJpbmcgJGluY2xfc3VmaXggLSBmaWxlc3VmaXhlcyB0byBpbmNsdWRlIChhcnJheSgnZm9vJywnYmFyJywuLi4pIG9yIGNzdikNCgkgKiBAcGFyYW0gYXJyYXl8c3RyaW5nICRmaWxlX2V4dCAtIGZpbGVzdWZpeGVzIHRvIGluY2x1ZGUgKGFycmF5KCdmb28nLCdiYXInLC4uLikgb3IgY3N2KQ0KCSAqIEBwYXJhbSBzdHJpbmcgJG1lZGlhX3R5cGUgLSBmaWxlIG9yIGltYWdlDQoJICogQHBhcmFtIGJvb2xlYW4gJGFsbG93X25vbmUgLSBzZXQgdG8gZmFsc2UgdG8gaGlkZSB0aGUgb3B0aW9uICdub25lJw0KCSAqIEBwYXJhbSBzdHJpbmcgJGFkZF90eHQgLSBhbnkgYWRkaXRpb25hbCB0ZXh0IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgaHRtbCBpbnB1dCB3aGVuIHRhZyBpcyByZW5kZXJlZA0KCSAqDQoJICogQHJldHVybiBzdHJpbmcgLSB0aGUgSFRNTCBvdXRwdXQgb2YgYSBzZWxlY3QgZWxlbWVudCB3aXRoIG9wdGlvbnMNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZpbmFsIGZ1bmN0aW9uIENyZWF0ZUZpbGVEcm9wZG93bigNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRpciA9ICcnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxlY3RlZCA9ICcnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRleGNsX3ByZWZpeCA9ICcnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbmNsX3ByZWZpeCA9ICcnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRleGNsX3N1Zml4ID0gJycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGluY2xfc3VmaXggPSAnJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZV9leHQgPSAnJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWVkaWFfdHlwZSA9ICcnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbGxvd19ub25lID0gdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRkX3R4dCA9ICcnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCgl7DQoJICAkam1mcCA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdKTUZpbGVQaWNrZXInKTsNCgkgIA0KCQkkZmlsZXMgPSYgJGptZnAtPkdldElucHV0RmlsZXMoJGlkLCAkbmFtZSwgJGRpcik7DQoJCQ0KCQlpZihlbXB0eSgkZmlsZXMpICYmICEkYWxsb3dfbm9uZSkNCgkJCXJldHVybiAkam1mcC0+bGFuZygnZGlyX2VtcHR5Jyk7DQoJCQ0KCQkkZHJvcGRvd24gPSAnPHNlbGVjdCBjbGFzcz0iSk1GUF9pbnB1dCBKTUZQX2Ryb3Bkb3duIEpNRlBfJy4kbWVkaWFfdHlwZS4nIiBuYW1lPSInLiRpZC4kbmFtZS4nIiBpZD0iJy4kaWQubXVuZ2Vfc3RyaW5nX3RvX3VybCgkbmFtZSkuJyInOw0KCQlpZigkYWRkX3R4dCAhPSAnJykNCgkJCSRkcm9wZG93biAuPSAnICcuJGFkZF90eHQ7DQoJCQ0KCQkkZHJvcGRvd24gLj0gJz4nOw0KCQlpZiggJGFsbG93X25vbmUgKQ0KCQl7DQoJCQkkZHJvcGRvd24gLj0gJzxvcHRpb24gdmFsdWU9IiInOw0KCQkJaWYoJHNlbGVjdGVkID09ICcnKQ0KCQkJCSRkcm9wZG93biAuPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCInOw0KCQkJDQoJCQkkZHJvcGRvd24gLj0gJyB0aHVtYm5haWw9IiI+LS0tICcubGFuZygnbm9uZScpLicgLS0tPC9vcHRpb24+JzsNCgkJfQ0KCQlmb3JlYWNoKCAkZmlsZXMgYXMgJGZpbGUgKQ0KCQl7DQoJCQkkZHJvcGRvd24gLj0gJzxvcHRpb24gdmFsdWU9IicuJGZpbGUtPnJlbHVybC4nIic7DQoJCQlpZigkZmlsZS0+cmVsdXJsID09ICRzZWxlY3RlZCkNCgkJCQkkZHJvcGRvd24gLj0gJyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzsNCgkJCQ0KCQkJaWYoJGZpbGUtPmlzX2ltYWdlICYmICRtZWRpYV90eXBlID09ICdpbWFnZScpDQoJCQkJJGRyb3Bkb3duIC49ICcgdGh1bWJuYWlsPSInLihpc3NldCgkZmlsZS0+dGh1bWJ1cmwpICYmICRmaWxlLT50aHVtYnVybCE9Jyc/JGZpbGUtPnRodW1idXJsOiRmaWxlLT5mdWxsdXJsKS4nIic7DQoJCQkNCgkJCSRkcm9wZG93biAuPSAnPicuJGZpbGUtPmJhc2VuYW1lLic8L29wdGlvbj4nOw0KCQl9DQoJCSRkcm9wZG93biAuPSAiPC9zZWxlY3Q+IjsNCgkJcmV0dXJuICRkcm9wZG93bjsNCgl9DQoNCgkvKioNCgkgKiBSZXBsYWNlcyBhbGwgbXVsdGlwbGUgc2xhc2hlcywgZG90cyBhbmQgKG11bHRpcGxlKSBiYWNrc2xhc2hlcyB3aXRoIG9uZSBzaW5nbGUgc2xhc2ggdG8gbWFrZSBhIGNsZWFuIHNlY3VyZSB1cmwgcGFyYW1ldGVyDQoJICoNCgkgKiBAc2luY2UgMS4wDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJHVybCAtIHRoZSB1cmwgdG8gY2xlYW4NCgkgKiBAcGFyYW0gc3RyaW5nICRmdWxsX3VybCAtIHRydWUgdG8gcHJlcGVuZCB1cGxvYWRzIHVybCBvbiByZXR1cm4sIGZhbHNlIHRvIHJldHVybiBvbmx5IHRoZSBjbGVhbmVkICR1cmwNCgkgKg0KCSAqIEByZXR1cm4gc3RyaW5nIC0gdGhlIGNsZWFuIHVybA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZmluYWwgZnVuY3Rpb24gQ2xlYW5VUkwoJHVybCwgJGZ1bGxfdXJsID0gdHJ1ZSkNCgl7DQoJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCgkJJHVybCA9IHRyaW0oc3RyX3JlcGxhY2UoYXJyYXkoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJGNvbmZpZ1sndXBsb2Fkc191cmwnXSksICcnLCAkdXJsKSwnLycuRElSRUNUT1JZX1NFUEFSQVRPUik7DQoJCSR1cmwgPSBzdHJfcmVwbGFjZShESVJFQ1RPUllfU0VQQVJBVE9SLCcvJywkdXJsKTsNCgkJJHVybCA9IHRyaW0ocHJlZ19yZXBsYWNlKCcvKFwvXC4pfChcLlwvKXwoXC8/XC5cLlwvPykvJywnLycsJHVybCksJy8nKTsNCgkJaWYoJGZ1bGxfdXJsKQ0KCQl7DQoJCQkkdXJsID0gcHJlZ19yZXBsYWNlKCcvXC8rLycsJy8nLCAnLycgLiBzdHJfcmVwbGFjZShhcnJheSgnaHR0cDovLycsICdodHRwczovLycsJ3d3dy4nKSwnJywkdXJsKSAuICcvJyk7DQoJCQkkdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXSAuICR1cmw7DQoJCQlyZXR1cm4gJHVybDsNCgkJfQ0KCQlyZXR1cm4gdHJpbShwcmVnX3JlcGxhY2UoJy9cLysvJywnLycsJHVybCksJy8nKTsNCgl9DQoJDQoNCgkvKioNCgkgKiBSZXR1cm5zIHRoZSB0aHVtYm5haWwgb2YgYSBnaXZlbiBpbWFnZSBmaWxlLg0KCSAqDQoJICogQHNpbmNlIDEuMA0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRwYXRoIC0gdGhlIHBhdGggb2YgdGhlIGZpbGUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIG9mIChjYW4gYmUgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyIG9yIGFic29sdXRlKQ0KCSAqIEBwYXJhbSBzdHJpbmcgJGNyZWF0ZV90aHVtYiAtIHNldCB0byBmYWxzZSBpZiB0aHVtYm5haWwgbWF5IG5vdCBiZSBjcmVhdGVkIGlmIG5vdCBleGlzdHMNCgkgKiBAcGFyYW0gc3RyaW5nICR1cmxvbmx5IC0gc2V0IHRvIHRydWUgdG8gZ2V0IG9ubHkgdGhlIHVybCB0byB0aGUgdGh1bWJuYWlsDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyAtIEhUTUwgaW1nIGVsZW1lbnQgb3IgdXJsDQoJICovDQoJcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBHZXRUaHVtYm5haWwoJHBhdGgsICRjcmVhdGVfdGh1bWIgPSB0cnVlLCAkdXJsb25seSA9IGZhbHNlKQ0KCXsNCgkJaWYoJHBhdGggPT0gJycpDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCSRmaWxlbmFtZSA9IGJhc2VuYW1lKCRwYXRoKTsNCgkJJHBhdGggICAgID0gc2VsZjo6Q2xlYW5QYXRoKHN0cl9yZXBsYWNlKCRmaWxlbmFtZSwnJywkcGF0aCkpOw0KCQkkdXJsICAgICAgPSBzZWxmOjpDbGVhblVSTChzdHJfcmVwbGFjZSgkZmlsZW5hbWUsJycsJHBhdGgpKTsNCgkJDQoJCWlmKCFzdGFydHN3aXRoKCRwYXRoLCBKTUZQX1RIVU1CTkFJTFNfUEFUSCkpDQoJCXsNCgkJCSMgdGVtcG9yYXJ5IHVudGlsIGEgcHJvcHBlciBmaXggaXMgZm91bmQ6IEBmaWxlY3RpbWUuLi4gdGhlIEAgaXMgdG8gYmUgcmVtb3ZlZCAoSk0pDQoJCQkkdGh1bWJuYWlsID0gY21zX2pvaW5fcGF0aChKTUZQX1RIVU1CTkFJTFNfUEFUSCAsICd0aHVtYl8nIC4gbXVuZ2Vfc3RyaW5nX3RvX3VybChzdHJfcmVwbGFjZSgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJycsICRwYXRoKSkgLiAnXycgLiAkZmlsZW5hbWUpOw0KCQkJaWYoKCFpc19maWxlKCR0aHVtYm5haWwpIHx8IEBmaWxlY3RpbWUoJHBhdGggLiAkZmlsZW5hbWUpID4gZmlsZWN0aW1lKCR0aHVtYm5haWwpKSAmJiAkY3JlYXRlX3RodW1iKQ0KCQkJew0KCQkJCXNlbGY6OkhhbmRsZUZpbGVSZXNpemluZygkcGF0aCAuICRmaWxlbmFtZSwgJHRodW1ibmFpbCwgZ2V0X3NpdGVfcHJlZmVyZW5jZSgndGh1bWJuYWlsX3dpZHRoJywgOTYpLCBnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0aHVtYm5haWxfaGVpZ2h0Jyw5NiksdHJ1ZSxmYWxzZSw2MCxmYWxzZSk7DQoJCQkJZGVidWdfYnVmZmVyKCAnVXNlZCBzcGFjZSBhZnRlciBpbWFnZSBwcm9jZXNpbmcgLi4uICcgLiBtZW1vcnlfZ2V0X3VzYWdlKCkgLCAnSk1GaWxlUGlja2VyJyk7DQoJCQkJDQoJCQl9DQoJCQlpZihpc19maWxlKCR0aHVtYm5haWwpKQ0KCQkJew0KCQkJCSR0aHVtYlVybCA9ICRjb25maWdbJ3Jvb3RfdXJsJ10gLiAnLycgLiBzZWxmOjpDbGVhblVSTChzdHJfcmVwbGFjZSgkY29uZmlnWydyb290X3BhdGgnXSwgJycsICR0aHVtYm5haWwpLCBmYWxzZSk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJHRodW1iVXJsID0gJHVybCAuICRmaWxlbmFtZTsNCgkJCQkkdGh1bWJuYWlsX3NpemUgPSBzZWxmOjpHZXRUaHVtYm5haWxTaXplKCRwYXRoIC4gJGZpbGVuYW1lKTsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSRmaWxlbmFtZSA9ICd0aHVtYl8nIC4gJGZpbGVuYW1lOw0KCQkJJHRodW1iVXJsID0gJHVybCAuICRmaWxlbmFtZTsNCgkJfQ0KCQlpZigkdXJsb25seSkNCgkJew0KCQkJcmV0dXJuICR0aHVtYlVybDsNCgkJfQ0KCQlyZXR1cm4gJzxpbWcgY2xhc3M9IkpNRlBfdGh1bWJuYWlsIicgLiAoaXNzZXQoJHRodW1ibmFpbF9zaXplKSAmJiBpc19hcnJheSgkdGh1bWJuYWlsX3NpemUpID8gJyB3aWR0aD0iJy4kdGh1bWJuYWlsX3NpemVbMF0uJyIgaGVpZ2h0PSInLiR0aHVtYm5haWxfc2l6ZVsxXS4nIicgOiAnJykgLiAnIGlkPSInIC4gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkZmlsZW5hbWUpIC4gJ19KTUZQX3RodW1ibmFpbCIgc3JjPSInIC4gJHRodW1iVXJsIC4gJyIgYWx0PSInIC4gc3RyX3JlcGxhY2UoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwnJywkdXJsKSAuICRmaWxlbmFtZSAuICciIHRpdGxlPSInIC4gc3RyX3JlcGxhY2UoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwnJywkdXJsKSAuICRmaWxlbmFtZSAuICciIC8+JzsNCgl9DQoJDQoJLyoqDQoJICogQ3JlYXRlcyB0aGUgdGh1bWJuYWlsIG9mIGEgZ2l2ZW4gaW1hZ2UgZmlsZS4NCgkgKg0KCSAqIEBzaW5jZSAxLjIuOQ0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRwYXRoIC0gdGhlIHBhdGggb2YgdGhlIGZpbGUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIGZyb20gKGNhbiBiZSByZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXIgb3IgYWJzb2x1dGUpDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyAtIGFic29sdXRlIHBhdGggb2YgdGhlIHRodW1ibmFpbA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZmluYWwgZnVuY3Rpb24gQ3JlYXRlVGh1bWJuYWlsKCRwYXRoKQ0KCXsNCgkJaWYoJHBhdGggPT0gJycpDQoJCXsNCgkJCXJldHVybjsNCgkJfQ0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCSRmaWxlbmFtZSA9IGJhc2VuYW1lKCRwYXRoKTsNCgkJJHBhdGggICAgID0gc2VsZjo6Q2xlYW5QYXRoKHN0cl9yZXBsYWNlKCRmaWxlbmFtZSwnJywkcGF0aCkpOw0KCQkkdGh1bWJuYWlsPSBjbXNfam9pbl9wYXRoKEpNRlBfVEhVTUJOQUlMU19QQVRIICwgJ3RodW1iXycgLiBtdW5nZV9zdHJpbmdfdG9fdXJsKHN0cl9yZXBsYWNlKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCAnJywgJHBhdGgpKSAuICdfJyAuICRmaWxlbmFtZSk7DQoJCQ0KCQlpZighaXNfZmlsZSgkdGh1bWJuYWlsKSB8fCBmaWxlY3RpbWUoJHBhdGggLiAkZmlsZW5hbWUpID4gZmlsZWN0aW1lKCR0aHVtYm5haWwpKQ0KCQl7DQoJCQlpZighc2VsZjo6SGFuZGxlRmlsZVJlc2l6aW5nKCRwYXRoIC4gJGZpbGVuYW1lLCAkdGh1bWJuYWlsLCBnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0aHVtYm5haWxfd2lkdGgnLCA5NiksIGdldF9zaXRlX3ByZWZlcmVuY2UoJ3RodW1ibmFpbF9oZWlnaHQnLDk2KSx0cnVlLGZhbHNlLDYwLGZhbHNlKSkNCgkJCXsNCgkJCQlkZWJ1Z19idWZmZXIoICdVc2VkIHNwYWNlIGFmdGVyIGltYWdlIHByb2Nlc2luZyAuLi4gJyAuIG1lbW9yeV9nZXRfdXNhZ2UoKSAsICdKTUZpbGVQaWNrZXInKTsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCX0NCgkJcmV0dXJuICR0aHVtYm5haWw7DQoJfQ0KCQ0KCS8qKg0KCSAqIEdldHMgdGhlIGljb24gZm9yIGEgZmlsZS4NCgkgKiBJZiBGaWxlTWFuYWdlciBpcyBpbnN0YWxsZWQgaXQgdXNlcyBGaWxlTWFuYWdlciBpY29ucy4NCgkgKiBPdGhlcndpc2UgaXQgdXNlcyBvd24gaWNvbnMuDQoJICoNCgkgKiBAc2luY2UgMS4wDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGV4dCAtIHRoZSBmaWxlIGV4dGVuc2lvbg0KCSAqIEBwYXJhbSBib29sICRpc19kaXINCgkgKiBAcGFyYW0gYm9vbCAkaXNfaW1hZ2UNCgkgKiBAcmV0dXJuIHN0cmluZyAtIHRoZSBIVE1MIG91cHV0IG9mIGFuIGltYWdlDQoJICovDQoJcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBHZXRGaWxlSWNvbigkZXh0ID0gJycsICRpc19kaXIgPSBmYWxzZSwgJGlzX2ltYWdlID0gZmFsc2UpDQoJew0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCWlmKCRmbSA9JiBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnRmlsZU1hbmFnZXInKSkNCgkJCXJldHVybiAkZm0tPkdldEZpbGVJY29uKCRleHQsICRpc19kaXIpOw0KCQlpZigkaXNfZGlyKQ0KCQkJcmV0dXJuICc8aW1nIGNsYXNzPSJKTUZQX2ZpbGVpY29uIiBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvSk1GaWxlUGlja2VyL2ltYWdlcy9kaXIuZ2lmIiBhbHQ9IiIgLz4nOw0KCQlpZiAoJGlzX2ltYWdlKQ0KCQkJcmV0dXJuICc8aW1nIGNsYXNzPSJKTUZQX2ZpbGVpY29uIiBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvSk1GaWxlUGlja2VyL2ltYWdlcy9pbWFnZXMuZ2lmIiBhbHQ9IiIgLz4nOw0KCQlyZXR1cm4gJzxpbWcgY2xhc3M9IkpNRlBfZmlsZWljb24iIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy9KTUZpbGVQaWNrZXIvaW1hZ2VzL2ZpbGVpY29uLmdpZiIgYWx0PSIiIC8+JzsNCgl9DQoJDQoJLyoqDQoJICogR2V0cyB0aGUgaWNvbiBmb3IgdGhlIGZpbGUgb3BlcmF0aW9uLiANCgkgKiBJZiBGaWxlTWFuYWdlciBpcyBpbnN0YWxsZWQgaXQgdXNlcyBGaWxlTWFuYWdlciBpY29ucy4gDQoJICogT3RoZXJ3aXNlIGl0IHVzZXMgb3duIGljb25zDQoJICoNCgkgKiBAc2luY2UgMS4wDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGFjdGlvbiAtIHRoZSBmaWxlIG9wZXJhdGlvbiAoZS5nLiAnZGVsZXRlJykNCgkgKiBAcmV0dXJuIHN0cmluZyAtIHRoZSBIVE1MIG91cHV0IG9mIGFuIGltYWdlDQoJICovDQoJcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBHZXRBY3Rpb25JY29uKCRhY3Rpb24pDQoJew0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCWlmKCRmbSA9JiBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnRmlsZU1hbmFnZXInKSkNCgkJCXJldHVybiAkZm0tPkdldEFjdGlvbkljb24oJGFjdGlvbik7DQoJCWVsc2UNCgkJCXJldHVybiAnPGltZyBjbGFzcz0iSk1GUF9hY3Rpb25pY29uIiBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvSk1GaWxlUGlja2VyL2ltYWdlcy8nLiRhY3Rpb24uJy5naWYiIHRpdGxlPSInLiRhY3Rpb24uJyIgYWx0PSInLiRhY3Rpb24uJyIgLz4nOw0KCX0NCgkNCgkvKioNCgkgKiBDaGVja3MgaWYgYSBkaXJlY3RvcnkgaXMgZW1wdHkNCgkgKiBUYWtlbiBmcm9tIFRpbnlNQ0UgTW9kdWxlIChleHRyYWN0ZWQgZnJvbSBmaWxlcGlja2VyKS4NCgkgKiBAc2luY2UgMS4wDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKiBAcGFyYW0gc3RyaW5nICRkaXIgLSB0aGUgcGF0aCB0byBhIGRpcmVjdG9yeQ0KCSAqIEByZXR1cm4gYm9vbGVhbg0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZmluYWwgZnVuY3Rpb24gSXNEaXJFbXB0eSgkZGlyKQ0KCXsNCgkJJGQgPSBkaXIoc2VsZjo6Q2xlYW5QYXRoKCRkaXIpKTsNCgkJd2hpbGUgKCRlbnRyeSA9ICRkLT5yZWFkKCkpDQoJCXsNCgkJCWlmICgkZW50cnkgPT0gJy4nKQ0KCQkJCWNvbnRpbnVlOw0KCQkJaWYgKCRlbnRyeSA9PSAnLi4nKQ0KCQkJCWNvbnRpbnVlOw0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCXJldHVybiB0cnVlOw0KCX0NCgkNCgkvKioNCgkgKiBTb3J0cyB0aGUgZmlsZXMgYnkgZmlsZW5hbWU7IHNob3dzIGRpcmVjdG9yaWVzIGZpcnN0DQoJICogdGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBiZSBjYWxsZWQgZnJvbSB0aGUgcGhwIHVzb3J0KCkgZnVuY3Rpb246IHVzb3J0KCRhcnJheSxhcnJheSgnam1mcF91dGlscycsJ1NvcnRGaWxlcycpDQoJICogVGFrZW4gZnJvbSBUaW55TUNFIGZpbGVwaWNrZXIuDQoJICogQHNpbmNlIDEuMA0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICogQHBhcmFtIG9iamVjdCAkZmlsZTEgLSBvbmUgZmlsZSB0byBjb21wYXJlIGEgcGhwIHN0ZENsYXNzIHdpdGggcHJvcGVydGllcyAoYm9vbGVhbikgJGlzX2RpciAtIGEgZmxhZyB0aGF0IHNwZWNpZnlzIGlmIGl0IGlzIGEgZGlyIG9yIGEgZmlsZTsoc3RyaW5nKSAkYmFzZW5hbWUgLSB0aGUgYmFzZW5hbWUgb2YgdGhlIGZpbGU7DQoJICogQHBhcmFtIG9iamVjdCAkZmlsZTIgLSB0aGUgb3RoZXIgZmlsZSB0byBjb21wYXJlIGEgcGhwIHN0ZENsYXNzIHdpdGggcHJvcGVydGllcyAoYm9vbGVhbikgJGlzX2RpciAtIGEgZmxhZyB0aGF0IHNwZWNpZnlzIGlmIGl0IGlzIGEgZGlyIG9yIGEgZmlsZTsoc3RyaW5nKSAkYmFzZW5hbWUgLSB0aGUgYmFzZW5hbWUgb2YgdGhlIGZpbGU7DQoJICogQHJldHVybiBpbnRlZ2VyIC0xIG9yIDENCgkgKi8NCglwdWJsaWMgc3RhdGljIGZpbmFsIGZ1bmN0aW9uIFNvcnRGaWxlcygkZmlsZTEsICRmaWxlMikNCgl7DQoJCWlmICgkZmlsZTEtPmlzX2RpciAmJiAhJGZpbGUyLT5pc19kaXIpIHJldHVybiAtMTsNCgkJaWYgKCEkZmlsZTEtPmlzX2RpciAmJiAkZmlsZTItPmlzX2RpcikgcmV0dXJuIDE7DQoJCXJldHVybiBzdHJuYXRjYXNlY21wKCRmaWxlMS0+YmFzZW5hbWUsICRmaWxlMi0+YmFzZW5hbWUpOw0KCX0NCgkNCgkvKioNCgkgKiByZXNpemVzIGltYWdlcw0KCSAqIEFkYXB0ZWQgZnJvbSBUaW55TUNFIGZpbGVwaWNrZXIuDQoJICogQHNpbmNlIDEuMA0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRzb3VyY2UgLSB0aGUgc291cmNlIHBhdGggb2YgdGhlIGltYWdlDQoJICogQHBhcmFtIHN0cmluZyAkb3V0cHV0IC0gdGhlIGRlc3RpbmF0aW9uIHBhdGggb2YgdGhlIHJlc2l6ZWQgaW1hZ2UNCgkgKiBAcGFyYW0gaW50ZWdlciAkbmV3X3dpZHRoIC0gdGhlIG5ldyB3ZHRoIHRvIHNjYWxlIHRoZSBpbWFnZSB0byAoaWYgJGtlZXBfYXNwZWN0cmF0aW8gaXMgc2V0IHRvIHRydWUgdGhpcyB3aWxsIGJlIGp1c3Qgc29tZSBraW5kIG9mIG1heCB2YWx1ZSkNCgkgKiBAcGFyYW0gaW50ZWdlciAkbmV3X2hlaWdodCAtIHRoZSBuZXcgaGVpZ2h0IHRvIHNjYWxlIHRoZSBpbWFnZSB0byAoaWYgJGtlZXBfYXNwZWN0cmF0aW8gaXMgc2V0IHRvIHRydWUgdGhpcyB3aWxsIGJlIGp1c3Qgc29tZSBraW5kIG9mIG1heCB2YWx1ZSkNCgkgKiBAcGFyYW0gYm9vbGVhbiAka2VlcF9hc3BlY3RyYXRpbyAtIHNldCB0byBmYWxzZSBpZiBpbWFnZSBhc3BlY3QgcmF0aW8gbWF5IGJlIGNoYW5nZWQNCgkgKiBAcGFyYW0gYm9vbGVhbiAkYWxsb3dfdXBzY2FsaW5nIC0gc2V0IHRvIHRydWUgaWYgdXNlciBtYXkgZW5sYXJnZSB0aGUgaW1hZ2UNCgkgKiBAcGFyYW0gaW50ZWdlciAkcXVhbGl0eSAtIHRoZSBxdWFsaXR5IG9mIHRoZSBuZXcgaW1hZ2UgKGpwZyBvbmx5KQ0KCSAqIEBwYXJhbSBib29sZWFuICRjbGVhbl9wYXRoIC0gc2V0IHRvIGZhbHNlIGlmIHNvdXJjZSBpcyB0aGUgdXBsb2FkX3RtcF9kaXINCgkgKg0KCSAqIEB0b2RvIGVuYWJsZSBmb3JtYXQgY2hhbmdlPw0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZmluYWwgZnVuY3Rpb24gSGFuZGxlRmlsZVJlc2l6aW5nKCRzb3VyY2UsICRvdXRwdXQsICRuZXdfd2lkdGgsICRuZXdfaGVpZ2h0LCANCgkJJGtlZXBfYXNwZWN0cmF0aW8gPSB0cnVlLCAkYWxsb3dfdXBzY2FsaW5nID0gZmFsc2UsICRxdWFsaXR5ID0gMTAwLCAkY2xlYW5fcGF0aCA9IHRydWUpDQoJew0KCQlkZWJ1Z19idWZmZXIoIA0KCQkJJ1Byb2Nlc3NpbmcgaW1hZ2UgLi4uIA0KCQkJRmlsZSA6ICcgLiBiYXNlbmFtZSgkc291cmNlKSAuICcNCgkJCU1lbW9yeSBMaW1pdCA6ICcgLiBAaW5pX2dldCgibWVtb3J5X2xpbWl0IikgLiAnDQoJCQlVc2VkIFNwYWNlIGJlZm9yZSBpbWFnZSBwcm9jZXNzaW5nIDogJyAuIG1lbW9yeV9nZXRfdXNhZ2UoKSwgDQoJCQknSk1GaWxlUGlja2VyJw0KCQkpOw0KCQkNCgkJaWYoQGluaV9nZXQoInVwbG9hZF90bXBfZGlyIikgJiYgIXN0YXJ0c3dpdGgoJHNvdXJjZSwgQGluaV9nZXQoInVwbG9hZF90bXBfZGlyIikpICYmICRjbGVhbl9wYXRoKQ0KCQkJJHNvdXJjZSA9IHNlbGY6OkNsZWFuUGF0aChzdHJfcmVwbGFjZShiYXNlbmFtZSgkc291cmNlKSwnJywkc291cmNlKSkuYmFzZW5hbWUoJHNvdXJjZSk7DQoJCQ0KCQlpZigkY2xlYW5fcGF0aCkNCgkJCSRvdXRwdXQgPSBzZWxmOjpDbGVhblBhdGgoc3RyX3JlcGxhY2UoYmFzZW5hbWUoJG91dHB1dCksJycsJG91dHB1dCkpLmJhc2VuYW1lKCRvdXRwdXQpOw0KCQkNCgkJJGltZ19kYXRhID0gQGdldGltYWdlc2l6ZSgkc291cmNlKTsNCgkJDQoJCWlmICghJGltZ19kYXRhKQ0KCQkJcmV0dXJuIGZhbHNlOw0KCQkNCgkJJHJlcXVpcmVkX3NwYWNlID0gJGltZ19kYXRhWzBdICogJGltZ19kYXRhWzFdICogNDsNCgkJJGZpbmZvID0gQHN0YXQoJHNvdXJjZSk7DQoJCWlmKCRmaW5mbykNCgkJCSRyZXF1aXJlZF9zcGFjZSA9ICRyZXF1aXJlZF9zcGFjZSArICRmaW5mb1snc2l6ZSddOw0KCQkNCgkJZGVidWdfYnVmZmVyKCAnUmVxdWlyZWQgU3BhY2UgOiAnIC4gJHJlcXVpcmVkX3NwYWNlLCAnSk1GaWxlUGlja2VyJyk7DQoJCQ0KCQlpZighc2VsZjo6Y2hlY2tfbWVtb3J5X2xpbWl0KCRyZXF1aXJlZF9zcGFjZSkpDQoJCQlyZXR1cm4gZmFsc2U7DQoJCQ0KCQlzd2l0Y2goJGltZ19kYXRhWydtaW1lJ10pDQoJCXsNCgkJCWNhc2UgJ2ltYWdlL2pwZWcnOg0KCQkJCSRvcmlnX2ltYWdlID0gQGltYWdlY3JlYXRlZnJvbWpwZWcoJHNvdXJjZSk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdpbWFnZS9naWYnIDoNCgkJCQkkb3JpZ19pbWFnZSA9IEBpbWFnZWNyZWF0ZWZyb21naWYoJHNvdXJjZSk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdpbWFnZS9wbmcnIDoNCgkJCQkkb3JpZ19pbWFnZSA9IEBpbWFnZWNyZWF0ZWZyb21wbmcoJHNvdXJjZSk7DQoJCQkJYnJlYWs7DQoJCQlkZWZhdWx0Og0KCQkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQkNCgkJaWYoISRvcmlnX2ltYWdlKQ0KCQkJcmV0dXJuIGZhbHNlOw0KCQkNCgkJZGVidWdfYnVmZmVyKCdVc2VkIHNwYWNlIGR1cmluZyBpbWFnZSBwcm9jZXNpbmcgLi4uIChMaW5lICcgLiBfX0xJTkVfXyAuICcpOiAnIC4gbWVtb3J5X2dldF91c2FnZSgpLCAnSk1GaWxlUGlja2VyJyk7DQoJCQ0KCQkkb3JpZ193aWR0aCAgPSBAaW1hZ2VzeCgkb3JpZ19pbWFnZSk7DQoJCSRvcmlnX2hlaWdodCA9IEBpbWFnZXN5KCRvcmlnX2ltYWdlKTsNCgkJDQoJCSRhc3BlY3RyYXRpbyA9ICRvcmlnX3dpZHRoIC8gJG9yaWdfaGVpZ2h0Ow0KCQkNCgkJJG5ld193aWR0aCAgPSBmbG9vcigkbmV3X3dpZHRoKTsNCgkJJG5ld19oZWlnaHQgPSBmbG9vcigkbmV3X2hlaWdodCk7DQoJCQ0KCQlpZigkbmV3X3dpZHRoIDw9IDAgJiYgJG5ld19oZWlnaHQgPiAwKSB7IC8vIGZvcmNlIGhlaWdodA0KCQkJJG5ld193aWR0aCA9ICRvcmlnX3dpZHRoOw0KCQkJaWYoJG5ld19oZWlnaHQgPiAkb3JpZ19oZWlnaHQgJiYgISRhbGxvd191cHNjYWxpbmcpDQoJCQl7DQoJCQkJJG5ld19oZWlnaHQgPSAkb3JpZ19oZWlnaHQ7DQoJCQl9DQoJCQlpZigka2VlcF9hc3BlY3RyYXRpbykNCgkJCXsNCgkJCQkkbmV3X3dpZHRoID0gZmxvb3IoJG5ld19oZWlnaHQgKiAkYXNwZWN0cmF0aW8pOw0KCQkJfQ0KCQl9DQoJCWVsc2UgaWYoJG5ld19oZWlnaHQgPD0gMCAmJiAkbmV3X3dpZHRoID4gMCkgeyAvLyBmb3JjZSB3aWR0aA0KCQkJJG5ld19oZWlnaHQgPSAkb3JpZ19oZWlnaHQ7DQoJCQlpZigkbmV3X3dpZHRoID4gJG9yaWdfd2lkdGggJiYgISRhbGxvd191cHNjYWxpbmcpDQoJCQl7DQoJCQkJJG5ld193aWR0aCA9ICRvcmlnX3dpZHRoOw0KCQkJfQ0KCQkJaWYoJGtlZXBfYXNwZWN0cmF0aW8pDQoJCQl7DQoJCQkJJG5ld19oZWlnaHQgPSBmbG9vcigkbmV3X3dpZHRoIC8gJGFzcGVjdHJhdGlvKTsNCgkJCX0NCgkJfQ0KCQllbHNlIGlmKCRuZXdfaGVpZ2h0ID4gMCAmJiAkbmV3X3dpZHRoID4gMCkgeyAvLyBib3RoDQoJCQlpZigkbmV3X3dpZHRoID4gJG9yaWdfd2lkdGggJiYgISRhbGxvd191cHNjYWxpbmcpDQoJCQl7DQoJCQkJJG5ld193aWR0aCA9ICRvcmlnX3dpZHRoOw0KCQkJfQ0KCQkJaWYoJG5ld19oZWlnaHQgPiAkb3JpZ19oZWlnaHQgJiYgISRhbGxvd191cHNjYWxpbmcpDQoJCQl7DQoJCQkJJG5ld19oZWlnaHQgPSAkb3JpZ19oZWlnaHQ7DQoJCQl9DQoJCQkkbmV3X2FzcGVjdHJhdGlvID0gJG5ld193aWR0aCAvICRuZXdfaGVpZ2h0Ow0KCQkJaWYoJGtlZXBfYXNwZWN0cmF0aW8pDQoJCQl7DQoJCQkJaWYoJGFzcGVjdHJhdGlvID4gMSAmJiAkbmV3X2FzcGVjdHJhdGlvIDwgMSkNCgkJCQl7IC8vIGxhbmRzY2FwZSB0byBwb3J0cmFpdA0KCQkJCQkkX3RtcCA9IGZsb29yKCRuZXdfd2lkdGggLyAkYXNwZWN0cmF0aW8pOw0KCQkJCQlpZigkX3RtcCA+IDAgJiYgJF90bXAgPD0gJG5ld19oZWlnaHQpDQoJCQkJCXsNCgkJCQkJCSRuZXdfaGVpZ2h0ID0gJF90bXA7DQoJCQkJCX0NCgkJCQl9DQoJCQkJZWxzZSBpZigkYXNwZWN0cmF0aW8gPCAxICYmICRuZXdfYXNwZWN0cmF0aW8gPiAxKQ0KCQkJCXsgLy8gcG9ydHJhaXQgdG8gbGFuZHNjYXBlDQoJCQkJCSRfdG1wID0gZmxvb3IoJG5ld19oZWlnaHQgKiAkYXNwZWN0cmF0aW8pOw0KCQkJCQlpZigkX3RtcCA+IDAgJiYgJF90bXAgPD0gJG5ld193aWR0aCkNCgkJCQkJew0KCQkJCQkJJG5ld193aWR0aCA9ICRfdG1wOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCWlmKCRuZXdfYXNwZWN0cmF0aW8gPCAkYXNwZWN0cmF0aW8pDQoJCQkJCXsNCgkJCQkJCSRfdG1wID0gZmxvb3IoJG5ld193aWR0aCAvICRhc3BlY3RyYXRpbyk7DQoJCQkJCQlpZigkX3RtcCA+IDAgJiYgJF90bXAgPD0gJG5ld19oZWlnaHQpDQoJCQkJCQl7DQoJCQkJCQkJJG5ld19oZWlnaHQgPSAkX3RtcDsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQllbHNlIGlmKCRuZXdfYXNwZWN0cmF0aW8gPiAkYXNwZWN0cmF0aW8pDQoJCQkJCXsNCgkJCQkJCSRfdG1wID0gZmxvb3IoJG5ld19oZWlnaHQgKiAkYXNwZWN0cmF0aW8pOw0KCQkJCQkJaWYoJF90bXAgPiAwICYmICRfdG1wIDw9ICRuZXdfd2lkdGgpDQoJCQkJCQl7DQoJCQkJCQkJJG5ld193aWR0aCA9ICRfdG1wOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJG5ld19oZWlnaHQgPSAkb3JpZ19oZWlnaHQ7DQoJCQkkbmV3X3dpZHRoICA9ICRvcmlnX3dpZHRoOw0KCQl9DQoJCQ0KCQlpZigkbmV3X3dpZHRoIDwgMSkNCgkJew0KCQkJJG5ld193aWR0aCA9IDE7DQoJCX0NCgkJaWYoJG5ld19oZWlnaHQgPCAxKQ0KCQl7DQoJCQkkbmV3X2hlaWdodCA9IDE7DQoJCX0NCgkJDQoJCSRuZXdfaW1hZ2UgPSBAaW1hZ2VjcmVhdGV0cnVlY29sb3IoZmxvb3IoJG5ld193aWR0aCksIGZsb29yKCRuZXdfaGVpZ2h0KSk7DQoJCQ0KCQlkZWJ1Z19idWZmZXIoJ1VzZWQgc3BhY2UgZHVyaW5nIGltYWdlIHByb2Nlc2luZyAuLi4gKExpbmUgJyAuIF9fTElORV9fIC4gJyk6ICcgLiBtZW1vcnlfZ2V0X3VzYWdlKCksICdKTUZpbGVQaWNrZXInKTsNCgkJDQoJCS8vIGhhbmRsZSB0cmFuc3BhcmVuY3kgKGFkYXB0ZWQgZnJvbSBzdXBlcnNpemVyIHBsdWdpbikNCgkJaWYoJGltZ19kYXRhWydtaW1lJ10gPT0gJ2ltYWdlL2dpZicpDQoJCXsNCgkJCUBpbWFnZXRydWVjb2xvcnRvcGFsZXR0ZSgkbmV3X2ltYWdlLCB0cnVlLCAyNTYpOw0KCQkJQGltYWdlYWxwaGFibGVuZGluZygkbmV3X2ltYWdlLCBmYWxzZSk7DQoJCQlAaW1hZ2VzYXZlYWxwaGEoJG5ld19pbWFnZSx0cnVlKTsNCgkJCSR0cmFuc3BhcmVudCA9IEBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkbmV3X2ltYWdlLCAyNTUsIDI1NSwgMjU1LCAxMjcpOw0KCQkJQGltYWdlZmlsbGVkcmVjdGFuZ2xlKCRuZXdfaW1hZ2UsIDAsIDAsICRuZXdfd2lkdGgsICRuZXdfaGVpZ2h0LCAkdHJhbnNwYXJlbnQpOw0KCQkJQGltYWdlY29sb3J0cmFuc3BhcmVudCgkbmV3X2ltYWdlLCAkdHJhbnNwYXJlbnQpOw0KCQl9DQoJCWVsc2UgaWYgKCRpbWdfZGF0YVsnbWltZSddID09ICdpbWFnZS9wbmcnKQ0KCQl7DQoJCQlAaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRuZXdfaW1hZ2UsIEBpbWFnZWNvbG9yYWxsb2NhdGUoJG5ld19pbWFnZSwgMCwgMCwgMCkpOyAgIA0KCQkJQGltYWdlYWxwaGFibGVuZGluZygkbmV3X2ltYWdlLCBmYWxzZSk7DQoJCQkkY29sb3IgPSBAaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJG5ld19pbWFnZSwgMCwgMCwgMCwgMTI3KTsNCgkJCUBpbWFnZWZpbGwoJG5ld19pbWFnZSwgMCwgMCwgJGNvbG9yKTsNCgkJCUBpbWFnZXNhdmVhbHBoYSgkbmV3X2ltYWdlLCB0cnVlKTsNCgkJfQ0KCQkNCgkJQGltYWdlY29weXJlc2FtcGxlZCgkbmV3X2ltYWdlLCAkb3JpZ19pbWFnZSwgMCwgMCwgMCwgMCwgJG5ld193aWR0aCwgJG5ld19oZWlnaHQsICRvcmlnX3dpZHRoLCAkb3JpZ19oZWlnaHQpOw0KCQkNCgkJQGltYWdlZGVzdHJveSgkb3JpZ19pbWFnZSk7DQoJCQ0KCQlzd2l0Y2goJGltZ19kYXRhWydtaW1lJ10pDQoJCXsNCgkJCWNhc2UgJ2ltYWdlL2pwZWcnOiANCgkJCQkkcmVzdWx0ID0gQGltYWdlanBlZygkbmV3X2ltYWdlLCAkb3V0cHV0LCAkcXVhbGl0eSk7YnJlYWs7DQoJCQljYXNlICdpbWFnZS9naWYnIDogDQoJCQkJJHJlc3VsdCA9IEBpbWFnZWdpZigkbmV3X2ltYWdlLCAkb3V0cHV0KTticmVhazsNCgkJCWNhc2UgJ2ltYWdlL3BuZycgOiANCgkJCQkkcmVzdWx0ID0gQGltYWdlcG5nKCRuZXdfaW1hZ2UsICRvdXRwdXQpO2JyZWFrOw0KCQkJZGVmYXVsdDogDQoJCQkJJHJlc3VsdCA9IGZhbHNlOw0KCQl9DQoJCQ0KCQlAaW1hZ2VkZXN0cm95KCRuZXdfaW1hZ2UpOw0KCQkNCgkJcmV0dXJuICRyZXN1bHQ7DQoJfQ0KCQ0KCS8qKg0KCSAqIHJldHVybnMgdGhlIGNhbGN1bGF0ZWQgc2l6ZSBvZiB0aGUgdGh1bWJuYWlsDQoJICoNCgkgKiBAc2luY2UgMS4yDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJHBhdGggLSB0aGUgc291cmNlIHBhdGggb2YgdGhlIGltYWdlDQoJICogQHJldHVybiBhcnJheSAtIGFycmF5KHdpZHRoLGhlaWdodCkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZpbmFsIGZ1bmN0aW9uIEdldFRodW1ibmFpbFNpemUoJHBhdGgpDQoJew0KCQkkcGF0aCA9IHNlbGY6OkNsZWFuUGF0aChzdHJfcmVwbGFjZShiYXNlbmFtZSgkcGF0aCksJycsJHBhdGgpKS5iYXNlbmFtZSgkcGF0aCk7DQoJCSRpbWdfZGF0YSA9IEBnZXRpbWFnZXNpemUoJHBhdGgpOw0KCQkNCgkJaWYgKCEkaW1nX2RhdGEpDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQkNCgkJJG9yaWdfd2lkdGggID0gJGltZ19kYXRhWzBdOw0KCQkkb3JpZ19oZWlnaHQgPSAkaW1nX2RhdGFbMV07DQoJCSRhc3BlY3RyYXRpbyA9ICRvcmlnX3dpZHRoIC8gJG9yaWdfaGVpZ2h0Ow0KCQkNCgkJJG5ld193aWR0aCAgPSBmbG9vcihnZXRfc2l0ZV9wcmVmZXJlbmNlKCd0aHVtYm5haWxfd2lkdGgnLCA5NikpOw0KCQkkbmV3X2hlaWdodCA9IGZsb29yKGdldF9zaXRlX3ByZWZlcmVuY2UoJ3RodW1ibmFpbF9oZWlnaHQnLCA5NikpOw0KCQkNCgkJaWYoJG5ld193aWR0aCA8PSAwKQ0KCQl7DQoJCQkkbmV3X3dpZHRoID0gOTY7DQoJCX0NCgkJDQoJCWlmKCRuZXdfaGVpZ2h0IDw9IDApDQoJCXsNCgkJCSRuZXdfaGVpZ2h0ID0gOTY7DQoJCX0NCgkJDQoJCWlmKCRuZXdfd2lkdGggPiAkb3JpZ193aWR0aCkNCgkJew0KCQkJJG5ld193aWR0aCA9ICRvcmlnX3dpZHRoOw0KCQl9DQoJCWlmKCRuZXdfaGVpZ2h0ID4gJG9yaWdfaGVpZ2h0KQ0KCQl7DQoJCQkkbmV3X2hlaWdodCA9ICRvcmlnX2hlaWdodDsNCgkJfQ0KCQkkbmV3X2FzcGVjdHJhdGlvID0gJG5ld193aWR0aCAvICRuZXdfaGVpZ2h0Ow0KCQkNCgkJaWYoJGFzcGVjdHJhdGlvID4gMSAmJiAkbmV3X2FzcGVjdHJhdGlvIDwgMSkNCgkJeyAvLyBsYW5kc2NhcGUgdG8gcG9ydHJhaXQNCgkJCSRfdG1wID0gZmxvb3IoJG5ld193aWR0aCAvICRhc3BlY3RyYXRpbyk7DQoJCQlpZigkX3RtcCA+IDAgJiYgJF90bXAgPD0gJG5ld19oZWlnaHQpDQoJCQl7DQoJCQkJJG5ld19oZWlnaHQgPSAkX3RtcDsNCgkJCX0NCgkJfQ0KCQllbHNlIGlmKCRhc3BlY3RyYXRpbyA8IDEgJiYgJG5ld19hc3BlY3RyYXRpbyA+IDEpDQoJCXsgLy8gcG9ydHJhaXQgdG8gbGFuZHNjYXBlDQoJCQkkX3RtcCA9IGZsb29yKCRuZXdfaGVpZ2h0ICogJGFzcGVjdHJhdGlvKTsNCgkJCWlmKCRfdG1wID4gMCAmJiAkX3RtcCA8PSAkbmV3X3dpZHRoKQ0KCQkJew0KCQkJCSRuZXdfd2lkdGggPSAkX3RtcDsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCWlmKCRuZXdfYXNwZWN0cmF0aW8gPCAkYXNwZWN0cmF0aW8pDQoJCQl7DQoJCQkJJF90bXAgPSBmbG9vcigkbmV3X3dpZHRoIC8gJGFzcGVjdHJhdGlvKTsNCgkJCQlpZigkX3RtcCA+IDAgJiYgJF90bXAgPD0gJG5ld19oZWlnaHQpDQoJCQkJew0KCQkJCQkkbmV3X2hlaWdodCA9ICRfdG1wOw0KCQkJCX0NCgkJCX0NCgkJCWVsc2UgaWYoJG5ld19hc3BlY3RyYXRpbyA+ICRhc3BlY3RyYXRpbykNCgkJCXsNCgkJCQkkX3RtcCA9IGZsb29yKCRuZXdfaGVpZ2h0ICogJGFzcGVjdHJhdGlvKTsNCgkJCQlpZigkX3RtcCA+IDAgJiYgJF90bXAgPD0gJG5ld193aWR0aCkNCgkJCQl7DQoJCQkJCSRuZXdfd2lkdGggPSAkX3RtcDsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJDQoJCWlmKCRuZXdfd2lkdGggPCAxKQ0KCQl7DQoJCQkkbmV3X3dpZHRoID0gMTsNCgkJfQ0KCQlpZigkbmV3X2hlaWdodCA8IDEpDQoJCXsNCgkJCSRuZXdfaGVpZ2h0ID0gMTsNCgkJfQ0KCQlyZXR1cm4gYXJyYXkoJG5ld193aWR0aCwgJG5ld19oZWlnaHQpOw0KCX0NCgkNCgkvKioNCgkgKiBDaGVja3MgaWYgYSBmaWxlbmFtZSBjb250YWlucyBpbGxlZ2FsIGNoYXJzDQoJICogVGFrZW4gZnJvbSBUaW55TUNFIE1vZHVsZS4NCgkgKiBAc2luY2UgMS4wDQoJICogQGFjY2VzcyBwdWJsaWMNCgkgKiBAcGFyYW0gc3RyaW5nICRmaWxlbmFtZSAtIHRoZSBmaWxlbmFtZSB0byBjaGVjaw0KCSAqIEByZXR1cm4gYm9vbGVhbg0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZmluYWwgZnVuY3Rpb24gQ29udGFpbnNJbGxlZ2FsQ2hhcnMoJGZpbGVuYW1lKQ0KCXsNCgkJaWYgKHN0cnBvcygkZmlsZW5hbWUsICdcJycpICE9PSBmYWxzZSkgcmV0dXJuIHRydWU7DQoJCWlmIChzdHJwb3MoJGZpbGVuYW1lLCAnIicgKSAhPT0gZmFsc2UpIHJldHVybiB0cnVlOw0KCQlpZiAoc3RycG9zKCRmaWxlbmFtZSwgJy8nICkgIT09IGZhbHNlKSByZXR1cm4gdHJ1ZTsNCgkJaWYgKHN0cnBvcygkZmlsZW5hbWUsICdcXCcpICE9PSBmYWxzZSkgcmV0dXJuIHRydWU7DQoJCWlmIChzdHJwb3MoJGZpbGVuYW1lLCAnJicgKSAhPT0gZmFsc2UpIHJldHVybiB0cnVlOw0KCQlpZiAoc3RycG9zKCRmaWxlbmFtZSwgJ1wkJykgIT09IGZhbHNlKSByZXR1cm4gdHJ1ZTsNCgkJaWYgKHN0cnBvcygkZmlsZW5hbWUsICcrJyApICE9PSBmYWxzZSkgcmV0dXJuIHRydWU7DQoJCXJldHVybiBmYWxzZTsNCgl9DQoJDQoJLyoqDQoJICogQ2hlY2tzIGlmIGEgdmFyIGlzIGVtcHR5Lg0KCSAqIElmICR2YXIgaXMgYW4gYXJyYXkgaXQgcmVjdXJzaXZsZXkgY2hlY2tzIGFsbCBlbGVtZW50cy4NCgkgKg0KCSAqIEBzaW5jZSAxLjANCgkgKiBAYWNjZXNzIHB1YmxpYw0KCSAqDQoJICogQHBhcmFtIG1peGVkICYkdmFyIC0gdGhlIHZhciB0byBjaGVjayBmb3IgZW1wdHkgdmFsdWUocykNCgkgKiBAcGFyYW0gYm9vbGVhbiAkdHJpbSAtIHRydWUgdG8gdHJpbSBvZmYgc3BhY2VzDQoJICogQHBhcmFtIGJvb2xlYW4gJHVuc2V0X2VtcHR5X2luZGV4ZXMgLSB0cnVlIHRvIGRlbGV0ZSBlbXB0eSBlbGVtZW50cyBmcm9tIGFycmF5DQoJICogQHJldHVybiBib29sZWFuIC0gdHJ1ZSBpZiBlbXB0eSwgZmFsc2UgaWYgbm90DQoJICovDQoJcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBJc1ZhckVtcHR5KCYkdmFyLCAkdHJpbSA9IHRydWUsICR1bnNldF9lbXB0eV9pbmRleGVzID0gZmFsc2UpDQoJew0KCQlpZiAoaXNfYXJyYXkoJHZhcikpDQoJCXsNCgkJCWZvcmVhY2ggKCR2YXIgYXMgJGs9PiR2KQ0KCQkJew0KCQkJCWlmICghc2VsZjo6SXNWYXJFbXB0eSgkdikpDQoJCQkJew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJCQ0KCQkJCWlmKCR1bnNldF9lbXB0eV9pbmRleGVzKQ0KCQkJCXsNCgkJCQkJdW5zZXQoJHZhclska10pOw0KCQkJCX0NCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJfQ0KCQllbHNlIGlmKCR0cmltICYmICFpc19vYmplY3QoJHZhcikgJiYgdHJpbSgkdmFyKSA9PSAnJykNCgkJew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCgkJZWxzZSBpZigkdmFyID09ICcnKQ0KCQl7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KCQ0KCS8qKg0KCSAqIFJlbW92ZXMgZW1wdHkgZWxlbWVudHMgZnJvbSBhbiBhcnJheS4gDQoJICogKGNhbiBiZSB1c2VmdWwgd2hlbiB1c2luZyBmdW5jdGlvbiBleHBsb2RlIHRvIGNyZWF0ZSB0aGUgYXJyYXkgZnJvbSBhIGNzdikNCgkgKg0KCSAqIEBzaW5jZSAxLjANCgkgKiBAYWNjZXNzIHB1YmxpYw0KCSAqDQoJICogQHBhcmFtIGFycmF5ICRhcnJheSAtIHRoZSBhcnJheSB0byBjbGVhbiB1cA0KCSAqIEByZXR1cm4gYXJyYXkgLSBhbiBhcnJheSB3aXRob3V0IGVtcHR5IGVsZW1lbnRzIG9yIGFuIGVtcHR5IGFycmF5DQoJICovDQoJcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBDbGVhbkFycmF5KCRhcnJheSkNCgl7DQoJCWlmIChpc19hcnJheSgkYXJyYXkpKQ0KCQl7DQoJCQlmb3JlYWNoICgkYXJyYXkgYXMgJGs9PiR2KQ0KCQkJew0KCQkJCWlmIChzZWxmOjpJc1ZhckVtcHR5KCR2LHRydWUsdHJ1ZSkpDQoJCQkJew0KCQkJCQl1bnNldCgkYXJyYXlbJGtdKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJaWYoaXNfYXJyYXkoJHYpKQ0KCQkJCQl7DQoJCQkJCQkkdiA9IHNlbGY6OkNsZWFuQXJyYXkoJHYpOw0KCQkJCQkJaWYoc2VsZjo6SXNWYXJFbXB0eSgkdix0cnVlLHRydWUpKQ0KCQkJCQkJew0KCQkJCQkJCXVuc2V0KCRhcnJheVska10pOw0KCQkJCQkJfQ0KCQkJCQkJZWxzZQ0KCQkJCQkJew0KCQkJCQkJCSRhcnJheVska10gPSAkdjsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJCXJldHVybiAkYXJyYXk7DQoJCX0NCgkJcmV0dXJuIGFycmF5KCk7DQoJfQ0KCQ0KCS8qKg0KCSAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIHJlYWxseSBtZWFudCB0byBiZSAidHJ1ZSIuDQoJICogQ2FuIGJlIHVzZWZ1bGwgd2hlbiBjaGVja2luZyBzbWFydHkgcGFyYW1zIGZvciB0aGUgdmFsdWUgdHJ1ZQ0KCSAqDQoJICogQHNpbmNlIDEuMA0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlIC0gdGhlIHZhbHVlIHRvIGNoZWNrDQoJICogQHJldHVybiBib29sDQoJICovDQoJcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBJc1RydWUoJHZhbHVlKQ0KCXsNCgkJcmV0dXJuIChzdHJ0b2xvd2VyKCR2YWx1ZSkgPT09ICd0cnVlJyB8fCAkdmFsdWUgPT09IDEgfHwgJHZhbHVlID09PSAnMScgfHwgJHZhbHVlID09PSB0cnVlKTsNCgl9DQoNCgkvKioNCgkgKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyByZWFsbHkgbWVhbnQgdG8gYmUgImZhbHNlIi4gDQoJICogQ2FuIGJlIHVzZWZ1bGwgd2hlbiBjaGVja2luZyBzbWFydHkgcGFyYW1zIGZvciB0aGUgdmFsdWUgZmFsc2UNCgkgKg0KCSAqIEBzaW5jZSAxLjANCgkgKiBAYWNjZXNzIHB1YmxpYw0KCSAqDQoJICogQHBhcmFtIG1peGVkICR2YWx1ZSAtIHRoZSB2YWx1ZSB0byBjaGVjaw0KCSAqIEByZXR1cm4gYm9vbA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZmluYWwgZnVuY3Rpb24gSXNGYWxzZSgkdmFsdWUpDQoJew0KCQlyZXR1cm4gKHN0cnRvbG93ZXIoJHZhbHVlKSA9PT0gJ2ZhbHNlJyB8fCAkdmFsdWUgPT09ICcwJyB8fCAkdmFsdWUgPT09IDAgfHwgJHZhbHVlID09PSBmYWxzZSB8fCAkdmFsdWUgPT09ICcnKTsNCgl9DQoNCgkvKioNCgkgKiBAc2luY2UgMS4wDQoJICogQGlnbm9yZQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZmluYWwgZnVuY3Rpb24gY2hlY2tfbWVtb3J5X2xpbWl0KCRyZXF1aXJlZF9zcGFjZSwgJGFkanVzdCA9IHRydWUpDQoJew0KCQkkb2xkX21lbW9yeV9saW1pdCA9IEBpbmlfZ2V0KCJtZW1vcnlfbGltaXQiKTsNCgkJaWYoJG9sZF9tZW1vcnlfbGltaXQgPT09IEZBTFNFICYmICRvbGRfbWVtb3J5X2xpbWl0ICE9PSBOVUxMKSAjID8/Pw0KCQkJcmV0dXJuIGZhbHNlOw0KCQkNCgkJaWYoIXByZWdfbWF0Y2goJy8oXGQrKVtcc10qKFthLXpdKykvaScsICRvbGRfbWVtb3J5X2xpbWl0LCAkbWF0Y2hlcykpDQoJCQlyZXR1cm4gZmFsc2U7ICMgVG9EbzogdW5saW1pdGVkPz8/DQoJCQ0KCQkkdW5pdCAgICAgICAgID0gaXNzZXQoJG1hdGNoZXNbMl0pID8gc3RydG9sb3dlcigkbWF0Y2hlc1syXSkgOiAnJzsNCgkJJG1lbW9yeV9saW1pdCA9IGlzc2V0KCRtYXRjaGVzWzFdKSA/IGludHZhbCgkbWF0Y2hlc1sxXSkgOiAwOw0KCQkNCgkJc3dpdGNoKCR1bml0KQ0KCQl7DQoJCQljYXNlICdnJzoNCgkJCWNhc2UgJ2diJzoNCgkJCQkkbWVtb3J5X2xpbWl0ICo9IDEwNzM3NDE4MjQ7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdtJzoNCgkJCWNhc2UgJ21iJzoNCgkJCQkkbWVtb3J5X2xpbWl0ICo9IDEwNDg1NzY7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdrJzoNCgkJCWNhc2UgJ2tiJzoNCgkJCQkkbWVtb3J5X2xpbWl0ICo9IDEwMjQ7DQoJCQkJYnJlYWs7DQoJCX0NCgkJDQoJCWRlYnVnX2J1ZmZlcignQXZhaWxhYmxlIHNwYWNlIDogJyAuICgkbWVtb3J5X2xpbWl0IC0gbWVtb3J5X2dldF91c2FnZSgpKSwgJ0pNRmlsZVBpY2tlcicpOw0KCQkNCgkJaWYoJG1lbW9yeV9saW1pdCA+IDAgJiYgKCRtZW1vcnlfbGltaXQgLSBtZW1vcnlfZ2V0X3VzYWdlKCkgPD0gJHJlcXVpcmVkX3NwYWNlKSkNCgkJew0KCQkJaWYoJGFkanVzdCkNCgkJCXsNCgkJCQkkbWVtb3J5X2xpbWl0ID0gKGNlaWwoKG1lbW9yeV9nZXRfdXNhZ2UoKSArICRyZXF1aXJlZF9zcGFjZSkgLyAxMDQ4NTc2KSArIDE2KSAuICdNJzsgIyArIDE2ID0gcmVxdWlyZWQgbWVtb3J5IGZvciBDTVNtcw0KCQkJCWRlYnVnX2J1ZmZlciggJ05vdCBlbm91Z2ggbWVtb3J5LiBUcnkgdG8gYWRqdXN0IG1lbW9yeSBsaW1pdCB0byA6ICcgLiAkbWVtb3J5X2xpbWl0LCAnSk1GaWxlUGlja2VyJyk7DQoJCQkJJGluaV9zZXQgPSBAaW5pX3NldCgnbWVtb3J5X2xpbWl0JywgJG1lbW9yeV9saW1pdCk7DQoJCQkJaWYoJGluaV9zZXQgPT09IE5VTEwgfHwgJGluaV9zZXQgPT09IEZBTFNFIHx8ICRvbGRfbWVtb3J5X2xpbWl0ID09IEBpbmlfZ2V0KCJtZW1vcnlfbGltaXQiKSkNCgkJCQl7DQoJCQkJCWRlYnVnX2J1ZmZlciggJ0NvdWxkIG5vdCBhZGp1c3QgbWVtb3J5IGxpbWl0LiBTa2lwcGluZyB3aGF0ZXZlciBpXCdtIGFib3V0IHRvIGRvIC4uLicsICdKTUZpbGVQaWNrZXInKTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJCWRlYnVnX2J1ZmZlciggJ05vdCBlbm91Z2ggbWVtb3J5LiBTa2lwcGluZyB3aGF0ZXZlciBpXCdtIGFib3V0IHRvIGRvIC4uLicsICdKTUZpbGVQaWNrZXInKTsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEZFVV9Mb2FkZWQoKQ0KICB7DQogICAgcmV0dXJuIGlzX29iamVjdCggY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKSApOw0KICB9DQp9DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZighZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpIHx8ICFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7DQokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoNCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNYW5hZ2UgSk1GaWxlUGlja2VyJywgJ01hbmFnZSBKTUZpbGVQaWNrZXInKTsNCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdVc2UgSk1GaWxlUGlja2VyJywgJ1VzZSBKTUZpbGVQaWNrZXInKTsNCg0KIyR0aGlzLT5BZGRFdmVudEhhbmRsZXIoICdDb3JlJywgJ0NvbnRlbnRQb3N0UmVuZGVyJywgZmFsc2UgKTsgLy8gZm9yIGZyb250ZW5kIHVzYWdlDQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXN0cmljdF91c2Vyc19kaXJhY2Nlc3MnLCBmYWxzZSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd19maWxlbWFuYWdlbWVudCcsIGZhbHNlKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X3RodW1iZmlsZXMnLCBmYWxzZSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfc2NhbGluZycsIHRydWUpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NjYWxpbmdfd2lkdGgnLCAnJyk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2NhbGluZ19oZWlnaHQnLCAnJyk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3JlYXRlX3RodW1icycsIHRydWUpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X3Vwc2NhbGluZycsIGZhbHNlKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VfbWltZXR5cGUnLCBmYWxzZSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmV1X2FjY2VzcycsJycpOw0KDQpAbWtkaXIoY21zX2pvaW5fcGF0aCgkY29uZmlnWydwcmV2aWV3c19wYXRoJ10gLCAnSk1GaWxlUGlja2VyVGh1bWJzJyksIDA3NTUpOw0KDQokdGhpcy0+QXVkaXQoIDAsICdKTUZpbGVQaWNrZXInLA0KCSR0aGlzLT5MYW5nKCdpbnN0YWxsZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZighZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpIHx8ICFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7DQokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoNCi8vIHJlbW92ZSBwZXJtaXNzaW9ucw0KJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01hbmFnZSBKTUZpbGVQaWNrZXInKTsNCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdVc2UgSk1GaWxlUGlja2VyJyk7DQoNCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdBZGQgSk1GaWxlUGlja2VyIFRlbXBsYXRlcycpOw0KJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0RlbGV0ZSBKTUZpbGVQaWNrZXIgVGVtcGxhdGVzJyk7DQokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignRWRpdCBKTUZpbGVQaWNrZXIgVGVtcGxhdGVzJyk7DQoNCi8vIHJlbW92ZSBwcmVmZXJlbmNlcw0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsNCiR0aGlzLT5EZWxldGVUZW1wbGF0ZSgpOw0KDQokdGhpcy0+QXVkaXQoIDAsICdKTUZpbGVQaWNrZXInLA0KCSR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEpNRmlsZVBpY2tlcg0KIyBWZXJzaW9uIDEuMA0KIyAoYykgMjAxNiBieSBGZXJuYW5kbyBNb3JnYWRvIGFrYSBKbyBNb3JnIDxqb21vcmdAY21zbWFkZXNpbXBsZS5vcmc+DQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvDQojDQojIEEgZm9yayBvZjogR0JGaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2gNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE9yaWdpbmFsIEF1dGhvcjogR2VvcmcgQnVzY2ggPGdlb3JnLmJ1c2NoQGdteC5uZXQ+DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBKTUZpbGVQaWNrZXIgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBKTUZpbGVQaWNrZXINCiMgSk1GaWxlUGlja2VyIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBKTUZpbGVQaWNrZXIgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZighZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpIHx8ICFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7DQoNCiRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsNCg0Kc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pIHsNCgljYXNlICcxJzoNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jlc3RyaWN0X3VzZXJzX2RpcmFjY2VzcycsIGZhbHNlKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Nob3dfZmlsZW1hbmFnZW1lbnQnLCB0cnVlKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Nob3dfdGh1bWJmaWxlcycsIGZhbHNlKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X3NjYWxpbmcnLCB0cnVlKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NjYWxpbmdfd2lkdGgnLCAnJyk7DQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzY2FsaW5nX2hlaWdodCcsICcnKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NyZWF0ZV90aHVtYnMnLCB0cnVlKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X3Vwc2NhbGluZycsIGZhbHNlKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9taW1ldHlwZScsIGZhbHNlKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZldV9hY2Nlc3MnLCcnKTsNCgkJDQoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMS4xJzsNCgkJDQoJY2FzZSAnMS4xJzoNCgkJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KCQlAbWtkaXIoY21zX2pvaW5fcGF0aCgkY29uZmlnWydwcmV2aWV3c19wYXRoJ10gLCAnSk1GaWxlUGlja2VyVGh1bWJzJyksIDA3NTUpOw0KCQkNCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcxLjInOw0KCQ0KCWNhc2UgJzEuMic6DQoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMS4zJzsNCgkJDQoJY2FzZSAnMS4zJzoNCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcxLjMuMSc7DQoJDQoJY2FzZSAnMS4zLjEnOg0KCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9hZG1pbl90aGVtZScsJ0RlZmF1bHQtQUpBWCcpID09ICdEZWZhdWx0IChBSkFYKScpDQoJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9hZG1pbl90aGVtZScsJ0RlZmF1bHQtQUpBWCcpOw0KCQkkY3VycmVudF92ZXJzaW9uID0gJzEuMy4yJzsNCn0NCg0KJG9sZHZlcnNpb24gPSAkY3VycmVudF92ZXJzaW9uOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IEpNRmlsZVBpY2tlcgp2ZXJzaW9uID0gMS4wLjEKZGVzY3JpcHRpb24gPSAiIgphdXRob3IgPSBKbyBNb3JnCmF1dGhvcmVtYWlsID0gCm1pbmNtc3ZlcnNpb24gPSAxLjEyCmxhenlsb2FkYWRtaW4gPSAwCmxhenlsb2FkZnJvbnRlbmQgPSAwCg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KICA8bGk+DQogICAgPHN0cm9uZz5KTUZpbGVQaWNrZXIgMS4wLjEgKEp1bHkgMjAxNyk6PC9zdHJvbmc+Og0KICAgIDx1bD4NCiAgICAgIDxsaT5maXhlZCBCUiMxMTQ5NDogTm90IGZ1bmN0aW9uYWwgaW4gQ01TTVMgdmVyc2lvbiAyLjIuMjwvbGk+DQogICAgICA8bGk+Zml4ZWQgQlIjMTEwMjU6IGJ1ZyB3aGVuIG1vcmUgdGhhbiBvbmUgZmlsZXBpY2tlciB1c2VkIHBlciBMSVNFaW5zdGFuY2U8L2xpPg0KICAgIDwvdWw+DQogIDwvbGk+DQogIDxsaT4NCiAgICA8c3Ryb25nPkpNRmlsZVBpY2tlciAxLjAgKEZlYnJ1YXJ5IDIwMTYpOjwvc3Ryb25nPiBJbml0aWFsIHJlbGVhc2U7DQogIDwvbGk+DQo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/templates/defaultadmin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICR0YWJzfGNvdW50fQ0KCXtpZiAhe2ptZnBfY21zMn19eyRzdGFydF90YWJoZWFkZXJzfXsvaWZ9DQoJCXtmb3JlYWNoICR0YWJzIGFzICR0YWJ9DQoJCQl7JHRhYi50YWJoZWFkZXJ8cHJpbnRfcjoxfQ0KCQl7L2ZvcmVhY2h9DQoJe2lmICF7am1mcF9jbXMyfX17JGVuZF90YWJoZWFkZXJzfQ0KCXskc3RhcnRfdGFiY29udGVudH17L2lmfQ0KCQl7Zm9yZWFjaCAkdGFicyBhcyAkdGFifQ0KCQkJeyR0YWIudGFiY29udGVudH0NCgkJey9mb3JlYWNofQ0KCXtpZiAhe2ptZnBfY21zMn19eyRlbmRfdGFiY29udGVudH17L2lmfQ0Key9pZn0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/demotab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgoJPGxlZ2VuZD57JGRlbW9fdGV4dH08L2xlZ2VuZD4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGltYWdlZHJvcGRvd25fdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW1hZ2Vkcm9wZG93bl9pbnB1dH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGltYWdlYnJvd3Nlcl90ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbWFnZWJyb3dzZXJfaW5wdXR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWxlZHJvcGRvd25fdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmlsZWRyb3Bkb3duX2lucHV0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZmlsZWJyb3dzZXJfdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmlsZWJyb3dzZXJfaW5wdXR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyokZmlsZWJyb3dzZXJfdGV4dCp9IFNtYXJ0eTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+e2ptZnB9PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/filebrowser.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQ0KeyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICBNb2R1bGUgOiBKTUZpbGVQaWNrZXIgKGMpIDIwMTAtMjAxMiBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkNCiAgICAgICAgICAgYSBmaWxlcGlja2VyIHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQ0KICAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2diZmlsZXBpY2tlcg0KICAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscA0KICAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGNtc21hZGVzaW1wbGUub3JnDQogIFZlcnNpb246IDEuMy4yDQogIEZpbGUgICA6IHByZWZzdGFiDQogIExpY2Vuc2U6IEdQTA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qfQ0KDQo8ZGl2IGlkPSJKTUZQX2hlYWRlciI+DQoNCntpZiBpc3NldCgkam1mcF9jdXJyZW50ZGlyKX0NCg0KCTxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4NCgkJPHAgY2xhc3M9ImJyZWFkY3J1bWJzIj4NCgkJDQoJe2lmIGlzc2V0KCRqbWZwX3N0YXJ0dXJsKX0NCgkJCQ0KCQkJPGEgaHJlZj0ieyRqbWZwX3N0YXJ0dXJsfSIgaWQ9IkpNRlBfZ290b19yb290IiB0aXRsZT0ieyRqbWZwX3N0YXJ0ZGlyX3RleHR9IiBvbmNsaWNrPSJKTUZQLmxvYWREaXIodGhpcy5ocmVmLCd7JGptZnBfY3NzaWR9JywneyRqbWZwX3N0YXJ0ZGlyfScpOyByZXR1cm4gZmFsc2U7Ij57JGptZnBfc3RhcnRkaXJfdGV4dH08L2E+DQoJCQkNCgkJCSZuYnNwO3skam1mcF9jdXJyZW50ZGlyX3RleHR9OiZuYnNwOw0KCQkJDQoJCQl7YXNzaWduIHZhcj0iY3VycmVudF9icmVhZGNydW1iIiB2YWx1ZT0iJGptZnBfc3RhcnRkaXIifQ0KCQkJe2ZvcmVhY2ggZnJvbT0kam1mcF9icmVhZGNydW1icyBpdGVtPWJyZWFkY3J1bWIgbmFtZT1jdXJyZW50fQ0KCQkJCXthc3NpZ24gdmFyPSJjdXJyZW50X2JyZWFkY3J1bWIiIHZhbHVlPSRjdXJyZW50X2JyZWFkY3J1bWJ8Y2F0OicvJ3xjYXQ6JGJyZWFkY3J1bWItPmZpbGVuYW1lfEB0cmltOicvJ30NCgkJCQl7aWYgJGptZnBfY3VycmVudGRpciAhPSAkY3VycmVudF9icmVhZGNydW1ifQ0KCQkJDQoJCQk8YSBocmVmPSJ7JGJyZWFkY3J1bWItPmZpbGV1cmx9IiBvbmNsaWNrPSJKTUZQLmxvYWREaXIodGhpcy5ocmVmLCd7JGptZnBfY3NzaWR9JywneyRicmVhZGNydW1iLT5pZH0nKTsgcmV0dXJuIGZhbHNlOyI+eyRicmVhZGNydW1iLT5maWxlbmFtZX08L2E+DQoJCQkNCgkJCQl7ZWxzZX0NCgkJCQkJeyRicmVhZGNydW1iLT5maWxlbmFtZX0NCgkJCQl7L2lmfQ0KCQkJCXtpZiAhJHNtYXJ0eS5mb3JlYWNoLmN1cnJlbnQubGFzdH0gLyB7L2lmfQ0KCQkJey9mb3JlYWNofQ0KCXtlbHNlfQ0KCQkJDQoJCQk8aW1nIHNyYz0ie3Jvb3RfdXJsfS9tb2R1bGVzL0pNRmlsZVBpY2tlci9pbWFnZXMvZGlyLmdpZiIgYWx0PSIiIC8+DQoJCQkNCgkJCSZuYnNwO3skam1mcF9jdXJyZW50ZGlyX3RleHR9OiZuYnNwO3skam1mcF9jdXJyZW50ZGlyfQ0KCQkJDQoJey9pZn0NCgkNCgkJPC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9ImhzdGlwcGxlZCI+Jm5ic3A7PC9kaXY+DQoJDQp7L2lmfQ0KDQp7aWYgaXNzZXQoJGptZnBfZm9ybXN0YXJ0KX0NCnskam1mcF9mb3Jtc3RhcnR9DQoJPGZpZWxkc2V0IGlkPSJKTUZQX2ZpbGVvcGVyYXRpb25zX3dyYXBwZXIiIGNsYXNzPSJqbWZwX2ZpZWxkc2V0e2lmICEkam1mcF9maWxlb3BlcmF0aW9uc19kaXNwbGF5fSBqbWZwX25vLWJvcmRlcnsvaWZ9Ij4NCgl7aWYgJGptZnBfbW9kZSAhPSAnZHJvcGRvd24nfQ0KCQk8bGVnZW5kPjxhIGhyZWY9Inskam1mcF9wcmVmdXJsfXtpZiAhJGptZnBfZmlsZW9wZXJhdGlvbnNfZGlzcGxheX0xe2Vsc2V9MHsvaWZ9IiBjbGFzcz0ie2lmICEkam1mcF9maWxlb3BlcmF0aW9uc19kaXNwbGF5fWptZnBfZXhwYW5ke2Vsc2V9am1mcF9jb250cmFjdHsvaWZ9IiBpZD0iSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMiPnskam1mcF9maWxlb3BlcmF0aW9uc190ZXh0fTwvYT48L2xlZ2VuZD4NCgl7L2lmfQ0KCQkNCgkJPGRpdiB7aWYgJGptZnBfbW9kZSAhPSAnZHJvcGRvd24nfWlkPSJKTUZQX2ZpbGVvcGVyYXRpb25zIiBzdHlsZT0iZGlzcGxheTp7aWYgISRqbWZwX2ZpbGVvcGVyYXRpb25zX2Rpc3BsYXkgJiYgJGptZnBfbW9kZSAhPSAnZHJvcGRvd24nfW5vbmV7ZWxzZX1ibG9ja3svaWZ9InsvaWZ9Pg0KCQkJPHRhYmxlPg0KCQkJCTx0Ym9keT4NCgkJCQkJPHRyPg0KCQkJCQl7aWYgJGptZnBfdXBsb2FkfQ0KCQkJCQkJPHRkPnskam1mcF9maWxldXBsb2FkX3RleHR9OjwvdGQ+DQoJCQkJCXsvaWZ9DQoJCQkJCXtpZiAkam1mcF9jcmVhdGVfZGlyc30NCgkJCQkJCTx0ZD57JGptZnBfY3JlYXRlZGlyX3RleHR9OjwvdGQ+DQoJCQkJCXsvaWZ9DQoJCQkJCTwvdHI+DQoJCQkJCTx0cj4NCgkJCQkJe2lmICRqbWZwX3VwbG9hZH0NCgkJCQkJCTx0ZD57JGptZnBfZmlsZXVwbG9hZF9pbnB1dH08L3RkPg0KCQkJCQl7L2lmfQ0KCQkJCQl7aWYgJGptZnBfY3JlYXRlX2RpcnN9DQoJCQkJCQk8dGQ+eyRqbWZwX2NyZWF0ZWRpcl9pbnB1dH08L3RkPg0KCQkJCQl7L2lmfQ0KCQkJCQk8L3RyPg0KCQkJCQk8dHI+DQoJCQkJCXtpZiAkam1mcF91cGxvYWQgJiYgJGptZnBfYWxsb3dfc2NhbGluZ30NCgkJCQkJCTx0ZD57JGptZnBfcmVzaXplaW1hZ2VfdGV4dH06Jm5ic3A7eyRqbWZwX3Jlc2l6ZWltYWdlX2lucHV0fTwvdGQ+DQoJCQkJCXsvaWZ9DQoJCQkJCXtpZiAkam1mcF9jcmVhdGVfZGlyc30NCgkJCQkJCTx0ZD57JGptZnBfY3JlYXRlZGlyX3N1Ym1pdH08L3RkPg0KCQkJCQl7L2lmfQ0KCQkJCQk8L3RyPg0KCQkJCQl7aWYgJGptZnBfdXBsb2FkICYmICRqbWZwX2FsbG93X3NjYWxpbmd9DQoJCQkJCTx0cj4NCgkJCQkJCTx0ZD57JGptZnBfaW1hZ2VzaXplX3hfaW5wdXR9Jm5ic3A7eCZuYnNwO3skam1mcF9pbWFnZXNpemVfeV9pbnB1dH08L3RkPg0KCQkJCQk8L3RyPg0KCQkJCQk8dHI+DQoJCQkJCQk8dGQ+eyRqbWZwX2tlZXBhc3BlY3RyYXRpb190ZXh0fTombmJzcDt7JGptZnBfa2VlcGFzcGVjdHJhdGlvX2lucHV0fTwvdGQ+DQoJCQkJCTwvdHI+DQoJCQkJCQl7aWYgJGptZnBfYWxsb3dfdXBzY2FsaW5nfQ0KCQkJCQk8dHI+DQoJCQkJCQk8dGQ+eyRqbWZwX2ZvcmNldXBzY2FsaW5nX3RleHR9OiZuYnNwO3skam1mcF9mb3JjZXVwc2NhbGluZ19pbnB1dH08L3RkPg0KCQkJCQk8L3RyPg0KCQkJCQkJey9pZn0NCgkJCQkJey9pZn0NCgkJCQkJe2lmICRqbWZwX3VwbG9hZH0NCgkJCQkJPHRyPg0KCQkJCQkJPHRkPnskam1mcF9maWxldXBsb2FkX3N1Ym1pdH08L3RkPg0KCQkJCQk8L3RyPg0KCQkJCQl7L2lmfQ0KCQkJCTwvdGJvZHk+DQoJCQk8L3RhYmxlPg0KCQk8L2Rpdj4NCgk8L2ZpZWxkc2V0Pg0KeyRqbWZwX2Zvcm1lbmR9DQp7L2lmfQ0KDQp7aWYgaXNzZXQoJGptZnBfZXJyb3JtZXNzYWdlKSAmJiAkam1mcF9lcnJvcm1lc3NhZ2UhPSIifQ0KCTxmaWVsZHNldCBjbGFzcz0iSk1GUF9tZXNzYWdlIiBpZD0iSk1GUF9lcnJvciIgb25jbGljaz0iSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7alF1ZXJ5KHRoaXMpLmZhZGVUbyhKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLmZhZGVTcGVlZCwwLGZ1bmN0aW9uKCl7bGl0ZXJhbH17ey9saXRlcmFsfWpRdWVyeSh0aGlzKS5hbmltYXRlKHtsaXRlcmFsfXt7L2xpdGVyYWx9aGVpZ2h0OiAnMHB4J3tsaXRlcmFsfX17L2xpdGVyYWx9LCBKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLmFuaW1hdGVTcGVlZCAsICdzd2luZycsIGZ1bmN0aW9uKCl7bGl0ZXJhbH17ey9saXRlcmFsfWpRdWVyeSh0aGlzKS5yZW1vdmUoKTtKTUZQLnJlc2l6ZSgpO3tsaXRlcmFsfX17L2xpdGVyYWx9KXtsaXRlcmFsfX17L2xpdGVyYWx9KTsiIHN0eWxlPSJjdXJzb3I6cG9pbnRlciI+DQoJCTxsZWdlbmQ+eyRqbWZwX2Vycm9yX3RleHR9PC9sZWdlbmQ+DQoJCXskam1mcF9lcnJvcm1lc3NhZ2V9DQoJPC9maWVsZHNldD4NCnsvaWZ9DQoNCntpZiBpc3NldCgkam1mcF9tZXNzYWdlKSAmJiAkam1mcF9tZXNzYWdlIT0iIn0NCgk8ZmllbGRzZXQgY2xhc3M9IkpNRlBfbWVzc2FnZSIgaWQ9IkpNRlBfc3VjY2VzcyIgb25jbGljaz0iSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7alF1ZXJ5KHRoaXMpLmZhZGVUbyhKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLmZhZGVTcGVlZCwwLGZ1bmN0aW9uKCl7bGl0ZXJhbH17ey9saXRlcmFsfWpRdWVyeSh0aGlzKS5hbmltYXRlKHtsaXRlcmFsfXt7L2xpdGVyYWx9aGVpZ2h0OiAnMHB4J3tsaXRlcmFsfX17L2xpdGVyYWx9LCBKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLmFuaW1hdGVTcGVlZCAsICdzd2luZycsIGZ1bmN0aW9uKCl7bGl0ZXJhbH17ey9saXRlcmFsfWpRdWVyeSh0aGlzKS5yZW1vdmUoKTtKTUZQLnJlc2l6ZSgpO3tsaXRlcmFsfX17L2xpdGVyYWx9KXtsaXRlcmFsfX17L2xpdGVyYWx9KTsiIHN0eWxlPSJjdXJzb3I6cG9pbnRlciI+DQoJCTxsZWdlbmQ+eyRqbWZwX3N1Y2Nlc3NfdGV4dH08L2xlZ2VuZD4NCgkJeyRqbWZwX21lc3NhZ2V9DQoJPC9maWVsZHNldD4NCnsvaWZ9DQoNCjwvZGl2Pg0KDQp7aWYgJGptZnBfbW9kZSAhPSAnZHJvcGRvd24nICYmIGlzc2V0KCRqbWZwX2ZpbGVzKX0NCg0KPGRpdiBpZD0iSk1GUF9maWxlbGlzdCI+DQoNCgl7aWYgJGptZnBfZmlsZXN8QGNvdW50fQ0KCQ0KCTx0YWJsZSBzdHlsZT0id2lkdGg6MTAwJTsiIGlkPSJKTUZQX2ZpbGV0YWJsZSIgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPg0KCQk8dGJvZHk+DQoJCXtmb3JlYWNoIGZyb209JGptZnBfZmlsZXMgaXRlbT1maWxlfQ0KCQkNCgkJPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIifSB7JGZpbGUtPmlkfSI+DQoJCQ0KCQkJe2lmICRmaWxlLT5pc19kaXJ9DQoJCQk8dGQgY2xhc3M9InBhZ2Vwb3MiIHN0eWxlPSJ3aWR0aDp7JGptZnBfdGh1bWJfd2lkdGh9cHgiPnskZmlsZS0+ZmlsZWljb259PC90ZD4NCgkJCTx0ZD4NCgkJCQk8YSB0aXRsZT0ieyRmaWxlLT5yZWx1cmx9IiBzdHlsZT0icGFkZGluZzowLjhlbTtkaXNwbGF5OmJsb2NrIiBocmVmPSJ7JGZpbGUtPmZpbGV1cmx9IiBvbmNsaWNrPSJKTUZQLmxvYWREaXIodGhpcy5ocmVmLCd7JGptZnBfY3NzaWR9JywneyRmaWxlLT5yZWx1cmx9Jyk7IHJldHVybiBmYWxzZTsiPg0KCQkJCQl7JGZpbGUtPmJhc2VuYW1lfQ0KCQkJCTwvYT4NCgkJCTwvdGQ+DQoJCQkNCgkJCQl7aWYgJGptZnBfbWVkaWFfdHlwZT09J2ZpbGUnfQ0KCQkJPHRkPiZuYnNwOzwvdGQ+DQoJCQkJey9pZn0NCgkJCQ0KCQkJPHRkPiZuYnNwOzwvdGQ+DQoJCQkNCgkJCTx0ZCBjbGFzcz0icGFnZXBvcyI+DQoJCQkJe2lmICRqbWZwX2RlbGV0ZSAmJiBpc3NldCgkZmlsZS0+ZGVsZXRldXJsKX0NCgkJCQk8YSBocmVmPSJ7JGZpbGUtPmRlbGV0ZXVybH0iIG9uY2xpY2s9IkpNRlAuZGVsZXRlRmlsZSh0aGlzLmhyZWYsJ3skZmlsZS0+Y29uZmlybWRlbGV0ZX0nLCAneyRmaWxlLT5yZWx1cmx9Jyk7IHJldHVybiBmYWxzZTsiPg0KCQkJCQl7JGptZnBfZGVsZXRlaWNvbn0NCgkJCQk8L2E+DQoJCQkJey9pZn0NCgkJCTwvdGQ+DQoJCQkNCgkJCXtlbHNlfQ0KCQkJDQoJCQk8dGQgY2xhc3M9InBhZ2Vwb3MiIHN0eWxlPSJ3aWR0aDp7JGptZnBfdGh1bWJfd2lkdGh9cHgiPg0KCQkJCXtpZiAkZmlsZS0+aXNfaW1hZ2UgJiYgJGZpbGUtPnRodW1ibmFpbH0NCgkJCQk8ZGl2IGNsYXNzPSJKTUZQX3RodW1ibmFpbF93cmFwcGVyIj4NCgkJCQkJPGEgdGl0bGU9InskZmlsZS0+cmVsdXJsfSIgaWQ9InskZmlsZS0+aWR9IiBocmVmPSd7JGZpbGUtPmZ1bGx1cmx9JyBvbmNsaWNrPSJ7aWYgJGZpbGUtPmlzX2ltYWdlICYmICRmaWxlLT50aHVtYnVybH1KTUZQLnRvZ2dsZVRodW1ibmFpbCgneyRqbWZwX2Nzc2lkfScsJ3skZmlsZS0+dGh1bWJ1cmx9JywneyRmaWxlLT5yZWx1cmx9JywgJ3skZmlsZS0+cmVsdXJsfScpO3svaWZ9Sk1GUC5waWNrRmlsZSgneyRmaWxlLT5yZWx1cmx9JywgJ3skam1mcF9jc3NpZH0nKTsgcmV0dXJuIGZhbHNlOyI+DQoJCQkJCQkNCgkJCQkJCXskZmlsZS0+dGh1bWJuYWlsfQ0KCQkJCQkJDQoJCQkJCTwvYT4NCgkJCQk8L2Rpdj4NCgkJCQl7ZWxzZX0NCgkJCQkJeyRmaWxlLT5maWxlaWNvbn0NCgkJCQl7L2lmfQ0KCQkJPC90ZD4NCgkJCTx0ZD4NCgkJCQk8YSB7aWYgJGZpbGUtPmlzX2ltYWdlICYmICRmaWxlLT50aHVtYm5haWx9c3R5bGU9InBhZGRpbmc6MC44ZW07ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDp7JGptZnBfdGh1bWJfaGVpZ2h0fXB4OyJ7L2lmfSB0aXRsZT0ieyRmaWxlLT5iYXNlbmFtZX0iIGhyZWY9J3skZmlsZS0+ZnVsbHVybH0nIG9uY2xpY2s9IntpZiAkZmlsZS0+aXNfaW1hZ2UgJiYgJGZpbGUtPnRodW1idXJsfUpNRlAudG9nZ2xlVGh1bWJuYWlsKCd7JGptZnBfY3NzaWR9JywneyRmaWxlLT50aHVtYnVybH0nLCd7JGZpbGUtPnJlbHVybH0nLCAneyRmaWxlLT5yZWx1cmx9Jyk7ey9pZn1KTUZQLnBpY2tGaWxlKCd7JGZpbGUtPnJlbHVybH0nLCAneyRqbWZwX2Nzc2lkfScpOyByZXR1cm4gZmFsc2U7Ij4NCgkJCQkJeyRmaWxlLT5iYXNlbmFtZX0NCgkJCQk8L2E+DQoJCQkJDQoJCQk8L3RkPg0KCQkJDQoJCQkJe2lmICRqbWZwX21lZGlhX3R5cGU9PSdmaWxlJ30NCgkJCTx0ZD57JGZpbGUtPmZpbGV0eXBlfTwvdGQ+DQoJCQkJey9pZn0NCgkJCQkNCgkJCTx0ZCBhbGlnbj0icmlnaHQiIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOiBub3dyYXA7bGluZS1oZWlnaHQ6MTMwJSI+DQoJCQkJeyRmaWxlLT5maWxlc2l6ZX0NCgkJCQl7aWYgJGZpbGUtPmlzX2ltYWdlfQ0KCQkJCTxiciAvPnskZmlsZS0+aW1nc2l6ZX0NCgkJCQl7L2lmfQ0KCQkJPC90ZD4NCgkJCQ0KCQkJPHRkIGNsYXNzPSJwYWdlcG9zIiBhbGlnbj0icmlnaHQiPg0KCQkJCXtpZiAkam1mcF9kZWxldGUgJiYgaXNzZXQoJGZpbGUtPmRlbGV0ZXVybCl9DQoJCQkJPGEgaHJlZj0ieyRmaWxlLT5kZWxldGV1cmx9IiBvbmNsaWNrPSJKTUZQLmRlbGV0ZUZpbGUodGhpcy5ocmVmLCd7JGZpbGUtPmNvbmZpcm1kZWxldGV9JywgJ3skZmlsZS0+cmVsdXJsfScpOyByZXR1cm4gZmFsc2U7Ij4NCgkJCQkJeyRqbWZwX2RlbGV0ZWljb259DQoJCQkJPC9hPg0KCQkJCXsvaWZ9DQoJCQk8L3RkPg0KCQkJDQoJCQl7L2lmfQ0KCQk8L3RyPg0KCQl7L2ZvcmVhY2h9DQoJCTwvdGJvZHk+DQoJPC90YWJsZT4NCgl7L2lmfQ0KPC9kaXY+DQp7L2lmfQ0KDQp7L3N0cmlwfQ0K]]></data>
	</file>
	<file>
	  <filename>/templates/filepicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCTxoZWFkPgoJCTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KCQk8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PXV0Zi04Ii8+CgkJPHRpdGxlPnskbW9kLT5MYW5nKCdmaWxlcGlja2VydGl0bGUnKX08L3RpdGxlPgoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InskbW9kLT5HZXRNb2R1bGVVUkxQYXRoKCl9L2Nzcy9maWxlcGlja2VyLm1pbi5jc3MiIC8+Cgk8L2hlYWQ+Cgl7c3RyaXB9Cgk8Ym9keSBjbGFzcz0iY21zbXMtZmlsZXBpY2tlciI+CgkJPGRpdiBpZD0iZnVsbC1mcCI+CgkJCTxkaXYgY2xhc3M9ImZpbGVwaWNrZXItbmF2YmFyIj4KCQkJCTxkaXYgY2xhc3M9ImZpbGVwaWNrZXItbmF2YmFyLWlubmVyIj4KCQkJCQk8ZGl2IGNsYXNzPSJmaWxlcGlja2VyLXZpZXctb3B0aW9uIj4KCQkJCQkJPHA+PHNwYW4gY2xhc3M9ImZpbGVwaWNrZXItb3B0aW9uLXRpdGxlIj57JG1vZC0+TGFuZygnZmlsZXZpZXcnKX06Jm5ic3A7PC9zcGFuPgoJCQkJCQkJPHNwYW4gY2xhc3M9ImpzLXRyaWdnZXIgdmlldy1saXN0IGZpbGVwaWNrZXItYnV0dG9uIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3N3aXRjaGxpc3QnKX0iPjxpIGNsYXNzPSJjbXNtcy1mcC10aC1saXN0Ij48L2k+PC9zcGFuPiZuYnNwOwoJCQkJCQkJPHNwYW4gY2xhc3M9ImpzLXRyaWdnZXIgdmlldy1ncmlkIGZpbGVwaWNrZXItYnV0dG9uIGFjdGl2ZSIgdGl0bGU9InskbW9kLT5MYW5nKCdzd2l0Y2hncmlkJyl9Ij48aSBjbGFzcz0iY21zbXMtZnAtdGgiPjwvaT48L3NwYW4+CgkJCQkJCTwvcD4KCQkJCQk8L2Rpdj4KCQkJCQl7aWYgIWlzc2V0KCR0eXBlKSB8fCAoaXNzZXQoJHR5cGUpICYmICgkdHlwZSA9PSAnZmlsZScgfHwgJHR5cGUgPT0gJ2FueScpKX0KCQkJCQk8ZGl2IGNsYXNzPSJmaWxlcGlja2VyLXR5cGUtZmlsdGVyIj4KCQkJCQkJPHA+PHNwYW4gY2xhc3M9ImZpbGVwaWNrZXItb3B0aW9uLXRpdGxlIj57JG1vZC0+TGFuZygnZmlsdGVyYnknKX06Jm5ic3A7PC9zcGFuPgoJCQkJCQkJPHNwYW4gY2xhc3M9ImpzLXRyaWdnZXIgZmlsZXBpY2tlci1idXR0b24iIGRhdGEtZmItdHlwZT0naW1hZ2UnIHRpdGxlPSJ7JG1vZC0+TGFuZygnc3dpdGNoaW1hZ2UnKX0iPjxpIGNsYXNzPSJjbXNtcy1mcC1waWN0dXJlIj48L2k+PC9zcGFuPiZuYnNwOwoJCQkJCQkJPHNwYW4gY2xhc3M9ImpzLXRyaWdnZXIgZmlsZXBpY2tlci1idXR0b24iIGRhdGEtZmItdHlwZT0ndmlkZW8nIHRpdGxlPSJ7JG1vZC0+TGFuZygnc3dpdGNodmlkZW8nKX0iPjxpIGNsYXNzPSJjbXNtcy1mcC1maWxtIj48L2k+PC9zcGFuPiZuYnNwOwoJCQkJCQkJPHNwYW4gY2xhc3M9ImpzLXRyaWdnZXIgZmlsZXBpY2tlci1idXR0b24iIGRhdGEtZmItdHlwZT0nYXVkaW8nIHRpdGxlPSJ7JG1vZC0+TGFuZygnc3dpdGNoYXVkaW8nKX0iPjxpIGNsYXNzPSJjbXNtcy1mcC1tdXNpYyI+PC9pPjwvc3Bhbj4mbmJzcDsKCQkJCQkJCTxzcGFuIGNsYXNzPSJqcy10cmlnZ2VyIGZpbGVwaWNrZXItYnV0dG9uIiBkYXRhLWZiLXR5cGU9J2FyY2hpdmUnIHRpdGxlPSJ7JG1vZC0+TGFuZygnc3dpdGNoYXJjaGl2ZScpfSI+PGkgY2xhc3M9ImNtc21zLWZwLXppcCI+PC9pPjwvc3Bhbj4mbmJzcDsKCQkJCQkJCTxzcGFuIGNsYXNzPSJqcy10cmlnZ2VyIGZpbGVwaWNrZXItYnV0dG9uIiBkYXRhLWZiLXR5cGU9J2ZpbGUnIHRpdGxlPSJ7JG1vZC0+TGFuZygnc3dpdGNoZmlsZXMnKX0iPjxpIGNsYXNzPSJjbXNtcy1mcC1maWxlIj48L2k+PC9zcGFuPiZuYnNwOwoJCQkJCQkJPHNwYW4gY2xhc3M9ImpzLXRyaWdnZXIgZmlsZXBpY2tlci1idXR0b24gYWN0aXZlIiBkYXRhLWZiLXR5cGU9J3Jlc2V0JyB0aXRsZT0ieyRtb2QtPkxhbmcoJ3N3aXRjaHJlc2V0Jyl9Ij48aSBjbGFzcz0iY21zbXMtZnAtcmVvcmRlciI+PC9pPjwvc3Bhbj4KCQkJCQkJPC9wPgoJCQkJCTwvZGl2PgoJCQkJCXsvaWZ9CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImZpbGVwaWNrZXItY29udGFpbmVyIj4KCQkJCTxkaXYgY2xhc3M9ImZpbGVwaWNrZXItYnJlYWRjcnVtYiI+CgkJCQkJPHAgdGl0bGU9InskbW9kLT5MYW5nKCd5b3VhcmVpbnRleHQnKX06Ij48aSBjbGFzcz0iY21zbXMtZnAtZm9sZGVyLW9wZW4gZmlsZXBpY2tlci1pY29uIj48L2k+IHskc3RhcnRwYXRofTwvcD4KCQkJCTwvZGl2PgoJCQkJPGRpdiBpZD0iZmlsZWxpc3QiPgoJCQkJCTx1bCBjbGFzcz0iZmlsZXBpY2tlci1saXN0IiBpZD0iZmlsZXBpY2tlci1pdGVtcyI+CgkJCQkJCTxsaSBjbGFzcz0iZmlsZXBpY2tlci1pdGVtIGZpbGVwaWNrZXItaXRlbS1oZWFkaW5nIj4KCQkJCQkJCTxkaXYgY2xhc3M9ImZpbGVwaWNrZXItdGh1bWIgbm8tYmFja2dyb3VuZCI+Jm5ic3A7PC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtaW5mb3JtYXRpb24iPgoJCQkJCQkJCTxoNCBjbGFzcz0iZmlsZXBpY2tlci1maWxlLXRpdGxlIj57JG1vZC0+TGFuZygnZmlsZW5hbWUnKX08L2g0PgoJCQkJCQkJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtZGV0YWlscyI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9ImZpbGVwaWNrZXItZmlsZS1kaW1lbnNpb24iPgoJCQkJCQkJCQl7JG1vZC0+TGFuZygnZGltZW5zaW9uJyl9CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtc2l6ZSI+CgkJCQkJCQkJCXskbW9kLT5MYW5nKCdzaXplJyl9CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtZXh0Ij4KCQkJCQkJCQkJeyRtb2QtPkxhbmcoJ3R5cGUnKX0KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9saT4KCQkJCQkJe2ZvcmVhY2ggJGZpbGVzIGFzICRmaWxlfQoJCQkJCQk8bGkgY2xhc3M9ImZpbGVwaWNrZXItaXRlbXtpZiAkZmlsZS5pc2Rpcn0gZGlye2Vsc2V9IHskZmlsZS5maWxldHlwZX17L2lmfSIgdGl0bGU9IntpZiAkZmlsZS5pc2Rpcn17JG1vZC0+TGFuZygnZGlyaW5mbycpfTogey9pZn17JGZpbGUubmFtZX0iIGRhdGEtZmItZXh0PSd7JGZpbGUuZXh0fSc+CgkJCQkJCQk8ZGl2IGNsYXNzPSJmaWxlcGlja2VyLXRodW1ie2lmIChpc3NldCgkZmlsZS50aHVtYm5haWwpICYmICRmaWxlLnRodW1ibmFpbCAhPSAnJykgfHwgJGZpbGUuaXNkaXJ9IG5vLWJhY2tncm91bmR7L2lmfSI+CgkJCQkJCQl7aWYgJHNob3d0aHVtYm5haWxzICYmIGlzc2V0KCRmaWxlLnRodW1ibmFpbCkgJiYgJGZpbGUudGh1bWJuYWlsICE9ICcnfQoJCQkJCQkJCTxhIGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtYWN0aW9uIGpzLXRyaWdnZXItaW5zZXJ0IiBocmVmPSJ7JGZpbGUuZnVsbHVybH0iIHRpdGxlPSJ7aWYgJGZpbGUuaXNkaXJ9eyRtb2QtPkxhbmcoJ2RpcmluZm8nKX06IHsvaWZ9eyRmaWxlLm5hbWV9Ij57JGZpbGUudGh1bWJuYWlsfTwvYT4KCQkJCQkJCXtlbHNlaWYgJGZpbGUuaXNkaXJ9CgkJCQkJCQkJPGEgY2xhc3M9Imljb24tbm8tdGh1bWIiIGhyZWY9InskZmlsZS5jaGRpcl91cmx9IiB0aXRsZT0ie2lmICRmaWxlLmlzZGlyfXskbW9kLT5MYW5nKCdkaXJpbmZvJyl9OiB7L2lmfXskZmlsZS5uYW1lfSI+PGkgY2xhc3M9ImNtc21zLWZwLWZvbGRlci1jbG9zZSI+PC9pPjwvYT4KCQkJCQkJCXtlbHNlfQoJCQkJCQkJCTxhIGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtYWN0aW9uIGpzLXRyaWdnZXItaW5zZXJ0IGljb24tbm8tdGh1bWIiIHRpdGxlPSJ7aWYgJGZpbGUuaXNkaXJ9eyRtb2QtPkxhbmcoJ2RpcmluZm8nKX06IHsvaWZ9eyRmaWxlLm5hbWV9IiBocmVmPSJ7JGZpbGUuZnVsbHVybH0iPgoJCQkJCQkJCQl7aWYgJGZpbGUuZmlsZXR5cGUgPT0gJ2ltYWdlJ30KCQkJCQkJCQkJCTxpIGNsYXNzPSJjbXNtcy1mcC1waWN0dXJlIj48L2k+CgkJCQkJCQkJCXtlbHNlaWYgJGZpbGUuZmlsZXR5cGUgPT0gJ3ZpZGVvJ30KCQkJCQkJCQkJCTxpIGNsYXNzPSJjbXNtcy1mcC1mYWNldGltZS12aWRlbyI+PC9pPgoJCQkJCQkJCQl7ZWxzZWlmICRmaWxlLmZpbGV0eXBlID09ICdhdWRpbyd9CgkJCQkJCQkJCQk8aSBjbGFzcz0iY21zbXMtZnAtbXVzaWMiPjwvaT4KCQkJCQkJCQkJe2Vsc2VpZiAkZmlsZS5maWxldHlwZSA9PSAnYXJjaGl2ZSd9CgkJCQkJCQkJCQk8aSBjbGFzcz0iY21zbXMtZnAtemlwIj48L2k+CgkJCQkJCQkJCXtlbHNlfQoJCQkJCQkJCQkJPGkgY2xhc3M9ImNtc21zLWZwLWZpbGUiPjwvaT4KCQkJCQkJCQkJey9pZn0KCQkJCQkJCQk8L2E+CgkJCQkJCQl7L2lmfQoJCQkJCQkJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtaW5mb3JtYXRpb24iPgoJCQkJCQkJCTxoNCBjbGFzcz0iZmlsZXBpY2tlci1maWxlLXRpdGxlIj4KCQkJCQkJCQl7aWYgJGZpbGUuaXNkaXJ9CgkJCQkJCQkJCTxhIGNsYXNzPSJmaWxlcGlja2VyLWRpci1hY3Rpb24iIGhyZWY9InskZmlsZS5jaGRpcl91cmx9IiB0aXRsZT0ie2lmICRmaWxlLmlzZGlyfXskbW9kLT5MYW5nKCdkaXJpbmZvJyl9OiB7L2lmfXskZmlsZS5uYW1lfSI+eyRmaWxlLm5hbWV9PC9hPgoJCQkJCQkJCXtlbHNlfQoJCQkJCQkJCQk8YSBjbGFzcz0iZmlsZXBpY2tlci1maWxlLWFjdGlvbiBqcy10cmlnZ2VyLWluc2VydCIgaHJlZj0ieyRmaWxlLmZ1bGx1cmx9IiB0aXRsZT0ie2lmICRmaWxlLmlzZGlyfXskbW9kLT5MYW5nKCdkaXJpbmZvJyl9OiB7L2lmfXskZmlsZS5uYW1lfSIgZGF0YS1mYi1maWxldHlwZT0neyRmaWxlLmZpbGV0eXBlfSc+eyRmaWxlLm5hbWV9PC9hPgoJCQkJCQkJCXsvaWZ9CgkJCQkJCQkJPC9oND4KCQkJCQkJCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZmlsZXBpY2tlci1maWxlLWRldGFpbHMgdmlzdWFsbHloaWRkZW4iPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtZGltZW5zaW9uIj4KCQkJCQkJCQkJeyRmaWxlLmRpbWVuc2lvbnN9CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSJmaWxlcGlja2VyLWZpbGUtc2l6ZSI+CgkJCQkJCQkJCXtpZiAhJGZpbGUuaXNkaXJ9eyRmaWxlLnNpemV9ey9pZn0KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gY2xhc3M9ImZpbGVwaWNrZXItZmlsZS1leHQiPgoJCQkJCQkJCQl7aWYgISRmaWxlLmlzZGlyfXskZmlsZS5leHR9e2Vsc2V9ZGlyey9pZn0KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9saT4KCQkJCQkJey9mb3JlYWNofQoJCQkJCTwvdWw+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+Cgl7L3N0cmlwfQoJe2Ntc19qcXVlcnkgZXhjbHVkZT0ndWksY21zX2pzX3NldHVwLHVpX3RvdWNoX3B1bmNoLG5lc3RlZFNvcnRhYmxlLGpzb24sbWlncmF0ZSxjbXNfYWRtaW4sY21zX2F1dG9yZWZyZXNoLGNtc19kaXJ0eWZvcm0sY21zX2hpZXJzZWwsY21zX2xvY2snIGFwcGVuZD0iYCRtb2QtPkdldE1vZHVsZVVSTFBhdGgoKWAvanMvZmlsZWJyb3dzZXIuanMifQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCXZhciBmaWxlYnJvd3Nlcl9nbG9iYWwgPSB7CgkJCWZpZWxkX2lkIDogJ3skZmllbGR9JwoJCX07Cgk8L3NjcmlwdD4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/templates/header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQp7Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBNb2R1bGUgOiBKTUZpbGVQaWNrZXIgKGMpIDIwMTAtMjAxMiBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKICAgICAgICAgICBhIGZpbGVwaWNrZXIgdG9vbCBmb3IgQ01TIE1hZGUgU2ltcGxlCiAgICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXIKICAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscAogICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpczogY21zbWFkZXNpbXBsZS5vcmcKICBWZXJzaW9uOiAxLjMuMgogIEZpbGUgICA6IGhlYWRlci50cGwKICBMaWNlbnNlOiBHUEwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSp9Cgo8IS0tIHN0YXJ0IGptZnAgaGVhZCAtLT4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5qbWZwX2NvbnRyYWN0IHsKCWJhY2tncm91bmQtaW1hZ2U6IHVybCgieyRjb250cmFjdF9pbWd9IikgIWltcG9ydGFudDsKfQouam1mcF9leHBhbmQgewoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCJ7JGV4cGFuZF9pbWd9IikgIWltcG9ydGFudDsKfQo8L3N0eWxlPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpqbWZwX29ubG9hZCA9IFsKCWZ1bmN0aW9uKCl7CgkJSk1GUC5pbml0KHsKCQkJdGl0bGU6ICd7JGptZnBfdGl0bGV9JywKCQkJY2xvc2VUZXh0OiAneyRqbWZwX2Nsb3NlX3RleHR9JywKCQkJcmVsb2FkVGV4dDogJ3skam1mcF9yZWxvYWRfZGlyX3RleHR9JywKCQkJY2xlYXJDYWNoZVRleHQ6ICd7JGptZnBfY2xlYXJfY2FjaGVfdGV4dH0nLAoJCQlyb290VXJsOiAne3Jvb3RfdXJsfScsCgkJCXRodW1ibmFpbFdpZHRoOiB7JHRodW1iX3dpZHRofSwKCQkJdGh1bWJuYWlsSGVpZ2h0OiB7JHRodW1iX2hlaWdodH0sCgkJCW1vZHVsZUlkOiAneyRqbWZwX2lkfScKCQl9KTsKCX0KXTsKaWYodHlwZW9mIGpzTG9hZGVyX3NjcmlwdHMgPT0gJ3VuZGVmaW5lZCcpCglqc0xvYWRlcl9zY3JpcHRzID0gW107CmpzTG9hZGVyX3NjcmlwdHMucHVzaCh7Cgl1cmw6J3tyb290X3VybH0vbW9kdWxlcy9KTUZpbGVQaWNrZXIvanMvSk1GUC5qcycsCglsb2FkVHlwZTonZGVmZXInCn0pOwo8L3NjcmlwdD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0ic2NyZWVuIiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ie3Jvb3RfdXJsfS9tb2R1bGVzL0pNRmlsZVBpY2tlci9jc3MvSk1GUC5jc3MiIC8+CntqbWZwX2pzbG9hZGVyfQoKPCEtLSBlbmQgam1mcCBoZWFkIC0tPgoKey9zdHJpcH0K]]></data>
	</file>
	<file>
	  <filename>/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KPGRpdiBpZD0icGFnZV90YWJzIj4NCiAgPGRpdiBpZD0iZ2VuZXJhbCI+DQogICAgICBXaGF0IGlzIGl0DQogIDwvZGl2PiAgICANCiAgPGRpdiBpZD0iZGVzaWduZXJzIj4NCiAgICBGb3IgRGVzaWduZXJzDQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJkZXZlbG9wZXJzIj4NCiAgICBGb3IgRGV2ZWxvcGVycw0KICA8L2Rpdj4NCnsqICAgIA0KICA8ZGl2IGlkPSJ3aGF0c25ldyI+DQogICAgIHskbW9kLT5Nb2RMYW5nKCd3aGF0c25ldycpfQ0KICA8L2Rpdj4gICANCiAgKn0gIA0KICA8ZGl2IGlkPSJhYm91dCI+DQogICAgIEFib3V0DQogIDwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pg0KPGRpdiBpZD0icGFnZV9jb250ZW50Ij4NCiAgPGRpdiBpZD0iZ2VuZXJhbF9jIj4NCiAgICA8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4NCiAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIGZpbGVwaWNrZXIgdG8gbW9kdWxlIGRldmVsb3BlcnMgYXMgd2VsbCBhcyB3ZWJkZXNpZ25lcnMuPC9wPg0KICAgIDxoMz5Ib3cgaXMgaXQgdXNlZD88L2gzPg0KICAgIDxwPkFmdGVyIGluc3RhbGxhdGlvbiB0aGUgbW9kdWxlIHNldHRpbmdzIGNhbiBiZSBmb3VuZCBpbiAiRXh0ZW5zaW9ucyA+IEpNRmlsZVBpY2tlciIuPC9wPg0KICA8L2Rpdj4gICAgDQogIDxkaXYgaWQ9ImRlc2lnbmVyc19jIj4NCiAgIDxwPjxzdHJvbmc+Rm9yIGRlc2lnbmVyczo8L3N0cm9uZz48L3A+DQogICAgPHA+WW91IGNhbiB1c2UgdGhpcyBtb2R1bGUgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUge2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlfXsvbGl0ZXJhbH0gdGFnIG9mIHRoZSBDTVNtcyBjb3JlLjxiciAvPg0KICAgIEp1c3QgcGxhY2UgdGhpcyBpbiB5b3VyIHRlbXBsYXRlIHRvIGdldCBhbiBhZGRpdGlvbmFsIGNvbnRlbnQgYmxvY2sgdGhhdCBzaG93cyBhIGZpbGVwaWNrZXIgaW4gYmFja2VuZCB3aGVuIGVkaXRpbmcgdGhlIHBhZ2U6PC9wPg0KICAgIDxwcmU+PGNvZGU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIGJsb2NrPSJmaWxlcGlja2VyX2Jsb2NrIiBtb2R1bGU9IkpNRmlsZVBpY2tlciJ9ey9saXRlcmFsfTwvY29kZT48L3ByZT4NCiAgICA8aDM+V2hhdCBwYXJhbWV0ZXJzIGFyZSBhdmFpbGFibGU/PC9oMz4NCiAgICA8cD5BbGwgcGFyYW1zIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHVzZWQgd2l0aCB7bGl0ZXJhbH17Y29udGVudF9tb2R1bGV9ey9saXRlcmFsfSB0YWcgYXMgd2VsbCB3aXRoIHRoZSBhcGkgZnVuY3Rpb24uIDxiciAvPg0KICAgIE5vdGljZSB0aGF0IHNvbWUgcGFyYW1zIHdpbGwgaGF2ZSBubyBlZmZlY3QgaWYgeW91IGFyZSB0aGUgYWRtaW4uIFRoYXQgbWVhbnMgdGhlIGFkbWluIGhhcyBhbHdheXMgYW55IHBlcm1pc3Npb25zLjxiciAvPkUuZzogeW91IGNhbm5vdCBkZW55IGZpbGVtYW5hZ2VtZW50IG9yIGltYWdlIHJlc2l6aW5nIG9uIHVwbG9hZCB0byB0aGUgYWRtaW4gYnV0IG9ubHkgdG8gb3RoZXIgdXNlcnMuPC9wPg0KICAgIDx1bD4NCiAgICAgIDxsaT4NCiAgICAgICAgPHR0Pm1lZGlhX3R5cGU8L3R0PiA8ZW0+KGZpbGUsaW1hZ2UpPC9lbT4NCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT5BbGxvd3MgeW91IHRvIHNwZWNpZnkgd2hhdCBtZWRpYSB0eXBlIGlzIGRpc3BsYXllZC4gKHN1cHBvcnRzIG9ubHkgaW1hZ2VzIGFuZCBhbGwgZmlsZXMgYXQgdGhlIG1vbWVudCk8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8YnIgLz4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDx0dD5tb2RlPC90dD4gKGJyb3dzZXIvZHJvcGRvd24pDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+DQogICAgICAgICAgICBCeSBkZWZhdWx0IGEgZHJvcGRvd24gd2lsbCBiZSB1c2VkLiBTZXQgdG8gImJyb3dzZXIiIGlmIHVzZXIgbWF5IGJyb3dzZSB0aGUgZmlsZXMuPGJyIC8+DQogICAgICAgICAgICA8Y29kZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPSJKTUZpbGVQaWNrZXIiIGJsb2NrPSJzb21lX2ltYWdlIiBtb2RlPSJicm93c2VyIn17L2xpdGVyYWx9PC9jb2RlPg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgICAgIDxiciAvPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgPHR0PmRpcjwvdHQ+IChzdHJpbmcpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+DQogICAgICAgICAgICBUaGUgbmFtZSBvZiBhIGRpcmVjdG9yeSAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5IGZyb20gd2hpY2ggdG8gc2VsZWN0IGltYWdlcy9maWxlcy4gSWYgbm90IHNwZWNpZmllZCwgdGhlIHVwbG9hZHMgZGlyZWN0b3J5IHdpbGwgYmUgdXNlZC48YnIgLz4NCiAgICAgICAgICAgIEUuZy46IFRoaXMgd2lsbCBkaXNwbGF5IHRoZSBkaXIgIlt5b3VyIHVwbG9hZHMgZGlyXS9pbWFnZXMvIi48YnIgLz4NCiAgICAgICAgICAgIDxjb2RlPntsaXRlcmFsfXtjb250ZW50X21vZHVsZSBtb2R1bGU9IkpNRmlsZVBpY2tlciIgYmxvY2s9InNvbWVfaW1hZ2UiIGRpcj0iaW1hZ2VzIn17L2xpdGVyYWx9PC9jb2RlPg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgICAgIDxiciAvPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgPHR0PnNob3dfc3ViZGlyczwvdHQ+ICh0cnVlL2ZhbHNlKQ0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPg0KICAgICAgICAgICAgU2V0IHRvIHRydWUgaWYgdXNlciBtYXkgYnJvd3NlIHN1YmRpcmVjdG9yaWVzLiAobW9kZT0iYnJvd3NlciIgb25seSk8YnIgLz4NCiAgICAgICAgICAgIEUuZy46IDxjb2RlPntsaXRlcmFsfXtjb250ZW50X21vZHVsZSBtb2R1bGU9IkpNRmlsZVBpY2tlciIgYmxvY2s9InNvbWVfZmlsZSIgbWVkaWFfdHlwZT0iZmlsZSIgc2hvd19zdWJkaXJzPSJ0cnVlIn17L2xpdGVyYWx9PC9jb2RlPjxiciAvPg0KICAgICAgICAgICAgPGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBwYXJhbSB3aWxsIGJlIGlnbm9yZWQgaWYgdGhlIHVzZXIgYmVsb25ncyB0byB0aGUgYWRtaW4gZ3JvdXAuPGJyIC8+PC9lbT4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8YnIgLz4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDx0dD51cGxvYWQ8L3R0PiAodHJ1ZS9mYWxzZSkNCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgIFNldCB0byB0cnVlIGlmIHVzZXIgbWF5IHVwbG9hZCBmaWxlcy48YnIgLz4NCiAgICAgICAgICAgIFNldCB0byBmYWxzZSB0byBkZW55IHVwbG9hZC48YnIgLz4NCiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEJ5IGRlZmF1bHQgdGhpcyBwYXJhbSBkZXBlbmRzIG9uIHRoZSB1c2VyIHBlcm1pc3Npb24gIk1vZGlmeSBGaWxlcyIuPGJyIC8+DQogICAgICAgICAgICBJZiBzZXQgdG8gdHJ1ZSB5b3UgY2FuIGdyYW50IHVwbG9hZCBvZiBmaWxlcyB0byBjZXJ0YWluIGJsb2NrcyBldmVuIHRvIHVzZXJzIHdpdGhvdXQgYXByb3ByaWF0ZSBwZXJtaXNzaW9uLjxiciAvPg0KICAgICAgICAgICAgVmlzZSB2ZXJzYSB5b3UgY2FuIGRlbnkgZmlsZSB1cGxvYWQgZXZlbiB0byB1c2VycyB3aXRoICJNb2RpZnkgRmlsZXMiIHBlcm1pc3Npb24uPGJyIC8+DQogICAgICAgICAgICBUaGlzIG9ubHkgd29ya3MgaWYgdGhlIG1vZHVsZSBzZXR0aW5nICJTaG93IGZpbGVtYW5hZ2VtZW50IG9wdGlvbnMiIGlzIHNldC48YnIgLz48L2VtPg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgICAgIDxiciAvPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgPHR0PmRlbGV0ZTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPg0KICAgICAgICAgICAgU2V0IHRvIHRydWUgaWYgdXNlciBtYXkgZGVsZXRlIGZpbGVzLjxiciAvPg0KICAgICAgICAgICAgU2V0IHRvIGZhbHNlIHRvIGRlbnkgZGVsZXRpbmcgZmlsZXMuPGJyIC8+DQogICAgICAgICAgICA8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBCeSBkZWZhdWx0IHRoaXMgcGFyYW0gZGVwZW5kcyBvbiB0aGUgdXNlciBwZXJtaXNzaW9uICJNb2RpZnkgRmlsZXMiLjxiciAvPg0KICAgICAgICAgICAgSWYgc2V0IHRvIHRydWUgeW91IGNhbiBncmFudCBkZWxldGluZyBmaWxlcyBvciBkaXJlY3RvcmllcyB0byBjZXJ0YWluIGJsb2NrcyBldmVuIHRvIHVzZXJzIHdpdGhvdXQgYXByb3ByaWF0ZSBwZXJtaXNzaW9uLjxiciAvPg0KICAgICAgICAgICAgVmlzZSB2ZXJzYSB5b3UgY2FuIGRlbnkgZGVsZXRpbmcgYW55dGhpbmcgZXZlbiB0byB1c2VycyB3aXRoICJNb2RpZnkgRmlsZXMiIHBlcm1pc3Npb24uPGJyIC8+DQogICAgICAgICAgICBUaGlzIG9ubHkgd29ya3MgaWYgdGhlIG1vZHVsZSBzZXR0aW5nICJTaG93IGZpbGVtYW5hZ2VtZW50IG9wdGlvbnMiIGlzIHNldC48YnIgLz48L2VtPg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgICAgIDxiciAvPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgPHR0PmNyZWF0ZV9kaXJzPC90dD4gKHRydWUvZmFsc2UpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+DQogICAgICAgICAgICBTZXQgdG8gdHJ1ZSBpZiB1c2VycyBtYXkgY3JlYXRlIGRpcmVjdG9yaWVzLjxiciAvPg0KICAgICAgICAgICAgU2V0IHRvIGZhbHNlIHRvIGRlbnkgZGlyZWN0b3J5IGNyZWF0aW9uLjxiciAvPg0KICAgICAgICAgICAgPGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQnkgZGVmYXVsdCB0aGlzIHBhcmFtIGRlcGVuZHMgb24gdGhlIHVzZXIgcGVybWlzc2lvbiAiTW9kaWZ5IEZpbGVzIi48YnIgLz4NCiAgICAgICAgICAgIElmIHNldCB0byB0cnVlIHlvdSBjYW4gZ3JhbnQgY3JlYXRpb24gb2YgZGlyZWN0b3JpZXMgdG8gY2VydGFpbiBibG9ja3MgZXZlbiB0byB1c2VycyB3aXRob3V0IGFwcm9wcmlhdGUgcGVybWlzc2lvbi48YnIgLz4NCiAgICAgICAgICAgIFZpc2UgdmVyc2EgeW91IGNhbiBkZW55IGRpcmVjdG9yeSBjcmVhdGlvbiBldmVuIHRvIHVzZXJzIHdpdGggIk1vZGlmeSBGaWxlcyIgcGVybWlzc2lvbi48YnIgLz4NCiAgICAgICAgICAgIFRoaXMgb25seSB3b3JrcyBpZiB0aGUgbW9kdWxlIHNldHRpbmcgIlNob3cgZmlsZW1hbmFnZW1lbnQgb3B0aW9ucyIgaXMgc2V0LjxiciAvPg0KICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gYWxsb3cgdG8gY3JlYXRlIGRpcmVjdG9yaWVzIHRvIG5vbi1hZG1pbiB1c2VycyB5b3UgbmVlZCB0byBzZXQgc2hvd19zdWJkaXJzPXRydWUuPC9lbT4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8YnIgLz4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDx0dD5sb2NrX2lucHV0PC90dD4gKHRydWUvZmFsc2UpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+DQogICAgICAgICAgICBTZXQgdG8gZmFsc2UgaWYgdXNlciBtYXkgZW50ZXIgdGhlIGZpbGUgcGF0aCBpbiB0aGUgZmlsZSBpbnB1dCAoYmxvY2tfdHlwZT0iZmlsZSIgb25seSk8YnIgLz4NCiAgICAgICAgICAgIEJ5IGRlZmF1bHQgdGhpcyBpcyBhbHdheXMgdHJ1ZSBpZiB0aGUgdXNlciBpcyBubyBhZG1pbi4NCiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgcGFyYW0gd2lsbCBiZSBpZ25vcmVkIGlmIHRoZSB1c2VyIGJlbG9uZ3MgdG8gdGhlIGFkbWluIGdyb3VwLjxiciAvPjwvZW0+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgICAgPGJyIC8+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8dHQ+ZXhjbHVkZV9wcmVmaXg8L3R0PiAoc3RyaW5nKQ0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPg0KICAgICAgICAgICAgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwcmVmaXhlcyB0byBleGNsdWRlIGZpbGVzIHRoYXQgc3RhcnRzIHdpdGggdGhlIHNldCBwcmVmaXguPGJyLz4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8YnIgLz4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDx0dD5pbmNsdWRlX3ByZWZpeDwvdHQ+IChzdHJpbmcpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+DQogICAgICAgICAgICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHByZWZpeGVzIHRvIHNob3cgb25seSBmaWxlcyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBzZXQgcHJlZml4Ljxici8+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgICAgPGJyIC8+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8dHQ+ZXhjbHVkZV9zdWZpeDwvdHQ+IChzdHJpbmcpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+DQogICAgICAgICAgICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN1Zml4ZXMgdG8gZXhjbHVkZSBmaWxlcyB0aGF0IGVuZHMgd2l0aCB0aGUgc2V0IHN1Zml4Ljxici8+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgICAgPGJyIC8+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8dHQ+aW5jbHVkZV9zdWZpeDwvdHQ+IChzdHJpbmcpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+DQogICAgICAgICAgICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN1Zml4ZXMgdG8gc2hvdyBvbmx5IGZpbGVzIHRoYXQgZW5kcyB3aXRoIHRoZSBzZXQgc3VmaXguPGJyLz4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8YnIgLz4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDx0dD5maWxlX2V4dGVuc2lvbnM8L3R0PiAoc3RyaW5nKQ0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPkEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWxsb3dlZCBmaWxlIGV4dGVuc2lvbnMgb2YgZmlsZXMgdG8gZGlzcGxheSAoZXhjbHVkaW5nIHRoZSBkb3QpPC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgICAgPGJyIC8+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8dHQ+cmVzdHJpY3RfdXNlcnNfZGlyYWNjZXNzPC90dD4gKHRydWUvZmFsc2UpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+VXN1YWxseSB0aGlzIGlzIGEgcHJlZmVyZW5jZSB0aGF0IGNhbiBiZSBzZXQgdXAgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwuIEl0IGdyYW50cyBhY2Nlc3Mgb25seSB0byBhIGRpcmVjdG9yeSB0aGF0IGlzIG5hbWVkIGxpa2UgdGhlIHVzZXJuYW1lLjxiciAvPg0KICAgICAgICAgICAgTGV0J3MgYXNzdW1lIHRoZSB1c2VybmFtZSBpcyBGb28uIFNvIHRoZSBtb2R1bGUgbG9va3MgZm9yIGEgZGlyIGluICJbeW91ciB1cGxvYWRzIGRpcl0vRm9vLyIuPGJyIC8+DQogICAgICAgICAgICBJZiBpdCBkb2VzIG5vdCBleGlzdCBpdCB3aWxsIGJlIGNyZWF0ZWQuIElmIHNldCB0byB0cnVlIGV2ZXJ5dGhpbmcgd2lsbCBiZSByZWxhdGl2ZSB0byB0aGUgdXNlcm5hbWUgZGlyLiA8YnIgLz4NCiAgICAgICAgICAgIFRoYXQgbWVhbnMgdGhpcyBleGFtcGxlIHdpbGwgbG9vayBmb3IgaW1hZ2VzIGluICJbeW91ciB1cGxvYWRzIGRpcl0vRm9vL2ltYWdlcy8iOjxiciAvPg0KICAgICAgICAgICAgPGNvZGU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT0iSk1GaWxlUGlja2VyIiBibG9jaz0ic29tZV9pbWFnZSIgZGlyPSJpbWFnZXMiIHJlc3RyaWN0X3VzZXJzX2RpcmFjY2Vzcz10cnVlfXsvbGl0ZXJhbH08L2NvZGU+PGJyIC8+DQogICAgICAgICAgICBXaXRoIHRoaXMgcGFyYW0geW91IGNhbiBvdmVycmlkZSB0aGlzIHNldHRpbmcgdG8gc3BlY2lmeSBjZXJ0YWluIHByZWZlcmVuY2VzIGZvciBlYWNoIGJsb2NrIGluZGl2aWR1YWxseS48YnIgLz4NCiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluLjwvZW0+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgICAgPGJyIC8+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8dHQ+YWxsb3dfbm9uZTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPg0KICAgICAgICAgICAgVGhpcyBpcyBmb3IgbW9kZSBkcm9wZG93biBvbmx5LiBJZiBzZXQgdG8gZmFsc2UgdGhlcmUgaXMgbm8gIm5vbmUiIG9wdGlvbiBpbiB0aGUgZHJvcGRvd24uPGJyIC8+DQogICAgICAgICAgICA8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGhhcyBubyBlZmZlY3QgaWYgeW91IGFyZSBhZG1pbi48L2VtPg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgICAgIDxiciAvPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgPHR0PmFsbG93X3NjYWxpbmc8L3R0PiAodHJ1ZS9mYWxzZSkNCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT5Vc3VhbGx5IHRoaXMgaXMgYSBwcmVmZXJlbmNlIHRoYXQgY2FuIGJlIHNldCB1cCBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbC4gSXQgc3BlY2lmaWVzIGlmIGltYWdlcyBtYXkgYmUgcmVzaXplZCBvbiB1cGxvYWQuPGJyIC8+DQogICAgICAgICAgICBXaXRoIHRoaXMgcGFyYW0geW91IGNhbiBvdmVycmlkZSB0aGlzIHNldHRpbmcgdG8gc3BlY2lmeSBjZXJ0YWluIHByZWZlcmVuY2VzIGZvciBlYWNoIGJsb2NrIGluZGl2aWR1YWxseS48YnIgLz4NCiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluLjwvZW0+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgICAgPGJyIC8+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8dHQ+Zm9yY2Vfc2NhbGluZzwvdHQ+ICh0cnVlL2ZhbHNlKQ0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPlVzdWFsbHkgdGhpcyBpcyBhIHByZWZlcmVuY2UgdGhhdCBjYW4gYmUgc2V0IHVwIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiA8YnIgLz4NCiAgICAgICAgICAgIElmIHNldCBpbWFnZXMgd2lsbCBiZSByZXNpemVkIHRvIGEgZ2l2ZW4gc2l6ZSBpZiB1c2VyIG1heSBub3QgcmVzaXplIGltYWdlcy48YnIgLz4NCiAgICAgICAgICAgIFdpdGggdGhpcyBwYXJhbSB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyB0byBzcGVjaWZ5IGNlcnRhaW4gcHJlZmVyZW5jZXMgZm9yIGVhY2ggYmxvY2sgaW5kaXZpZHVhbGx5LjxiciAvPg0KICAgICAgICAgICAgPGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBoYXMgbm8gZWZmZWN0IGlmIHlvdSBhcmUgYWRtaW4uPC9lbT4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8YnIgLz4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDx0dD5zY2FsaW5nX3dpZHRoPC90dD4gKGludCkNCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT5Vc3VhbGx5IHRoaXMgaXMgYSBwcmVmZXJlbmNlIHRoYXQgY2FuIGJlIHNldCB1cCBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbC4gSXQgc3BlY2lmaWVzIHRoZSBkZWZhdWx0IGltYWdlIHdpZHRoIHRvIHJlc2l6ZSBhbiBpbWFnZSB0byBvbiB1cGxvYWQuPGJyIC8+DQogICAgICAgICAgICBXaXRoIHRoaXMgcGFyYW0geW91IGNhbiBvdmVycmlkZSB0aGlzIHNldHRpbmcgdG8gc3BlY2lmeSBjZXJ0YWluIHByZWZlcmVuY2VzIGZvciBlYWNoIGJsb2NrIGluZGl2aWR1YWxseS4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8YnIgLz4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDx0dD5zY2FsaW5nX2hlaWdodDwvdHQ+IChpbnQpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+VXN1YWxseSB0aGlzIGlzIGEgcHJlZmVyZW5jZSB0aGF0IGNhbiBiZSBzZXQgdXAgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwuIEl0IHNwZWNpZmllcyB0aGUgZGVmYXVsdCBpbWFnZSBoZWlnaHQgdG8gcmVzaXplIGFuIGltYWdlIHRvIG9uIHVwbG9hZC48YnIgLz4NCiAgICAgICAgICAgIFdpdGggdGhpcyBwYXJhbSB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyB0byBzcGVjaWZ5IGNlcnRhaW4gcHJlZmVyZW5jZXMgZm9yIGVhY2ggYmxvY2sgaW5kaXZpZHVhbGx5Lg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgICAgIDxiciAvPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgPHR0PmFsbG93X3Vwc2NhbGluZzwvdHQ+ICh0cnVlL2ZhbHNlKQ0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPlVzdWFsbHkgdGhpcyBpcyBhIHByZWZlcmVuY2UgdGhhdCBjYW4gYmUgc2V0IHVwIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiBJdCBzcGVjaWZpZXMgaWYgaW1hZ2VzIG1heSBiZSBlbmxhcmdlZCB3aGVuIHJlc2l6ZWQuPGJyIC8+DQogICAgICAgICAgICBXaXRoIHRoaXMgcGFyYW0geW91IGNhbiBvdmVycmlkZSB0aGlzIHNldHRpbmcgdG8gc3BlY2lmeSBjZXJ0YWluIHByZWZlcmVuY2VzIGZvciBlYWNoIGJsb2NrIGluZGl2aWR1YWxseS48YnIgLz4NCiAgICAgICAgICAgIDxlbT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaGFzIG5vIGVmZmVjdCBpZiB5b3UgYXJlIGFkbWluLjwvZW0+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgICAgPGJyIC8+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8dHQ+Y3JlYXRlX3RodW1iczwvdHQ+ICh0cnVlL2ZhbHNlKQ0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPlVzdWFsbHkgdGhpcyBpcyBhIHByZWZlcmVuY2UgdGhhdCBjYW4gYmUgc2V0IHVwIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiBJdCBzcGVjaWZpZXMgaWYgdGhlIG1vZHVsZSB3aWxsIGNyZWF0ZSB0aHVtYm5haWxzIG9mIGltYWdlcyB3aGVuIHJlYWRpbmcgdGhlIGRpcmVjdG9yeS48YnIgLz4NCiAgICAgICAgICAgIFdpdGggdGhpcyBwYXJhbSB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyB0byB0dXJuIG9mZiB0aHVtYmFpbCBjcmVhdGlvbiBmb3IgYSBjZXJ0YWluIGlucHV0IGJsb2NrIGluZGl2aWR1YWxseS4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8YnIgLz4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDx0dD5zaG93X3RodW1iZmlsZXM8L3R0PiAodHJ1ZS9mYWxzZSkNCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT5Vc3VhbGx5IHRoaXMgaXMgYSBwcmVmZXJlbmNlIHRoYXQgY2FuIGJlIHNldCB1cCBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbC4gSXQgc3BlY2lmaWVzIGlmIHRoZSBtb2R1bGUgd2lsbCBzaG93IGV2ZW4gdGhlIHRodW1ibmFpbHMgYXMgcmVndWxhciBmaWxlcy48YnIgLz4NCiAgICAgICAgICAgIFdpdGggdGhpcyBwYXJhbSB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyB0byBzcGVjaWZ5IGNlcnRhaW4gcHJlZmVyZW5jZXMgZm9yIGVhY2ggYmxvY2sgaW5kaXZpZHVhbGx5Lg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgICAgIDxiciAvPg0KICAgICAgPC9saT4NCiAgICA8L3VsPg0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iZGV2ZWxvcGVyc19jIj4NCiAgICA8cD48c3Ryb25nPkZvciBkZXZlbG9wZXJzOjwvc3Ryb25nPjwvcD4NCiAgICA8cD5BY3R1YWxseSBhdCB0aGUgbW9tZW50IHRoZXJlIGlzIGp1c3Qgb25lIGZ1bmN0aW9uIHRoYXQgbWlnaHQgYmUgb2YgaW50ZXJlc3QgZm9yIG1vZHVsZSBkZXZlbG9wZXJzOiA8L3A+DQogICAgPHA+PGNvZGU+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCRtb2R1bGUsICRpZCwgJG5hbWUsICR2YWx1ZSA9ICcnLCAkcGFyYW1zID0gYXJyYXkoKSk8L2NvZGU+PC9wPg0KICAgIDxwPkhlcmUgaXMgYW4gZXhhbXBsZSBob3cgdG8gaW50ZWdyYXRlIHRoZSBmaWxlcGlja2VyIGlucHV0IGluIG90aGVyIG1vZHVsZXM6PC9wPg0KICAgIDxwcmU+PGNvZGU+DQogICAgaWYoJGptZnAgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnSk1GaWxlUGlja2VyJykpIA0KICAgIHsNCiAgICAgIC8vIHByaW50cyBvdXQgYSBmaWxlIGRyb3Bkb3duIHNob3dpbmcgb25seSBpbWFnZXMgaW4gIlt5b3VyIHVwbG9hZHMgZGlyXS9pbWFnZXMiOw0KICAgICAgLy8gc2VsZWN0ZWQgaW1hZ2VzIHdpbGwgYXBwZWFyIGFzIHRodW1ibmFpbCBwcmV2aWV3IGJlbG93IHRoZSBkcm9wZG93bg0KICAgICAgDQogICAgICBlY2hvICRqbWZwLT5DcmVhdGVGaWxlUGlja2VySW5wdXQoICcnLCAkaWQsJ2ZpbGVwaWNrZXJfaW5wdXRfMScsICcnLCBhcnJheSgnZGlyJyA9PiAnaW1hZ2VzJykgKTsNCiAgICAgIA0KICAgICAgDQogICAgICAvLyBwcmludHMgb3V0IGEgYnV0dG9uIGFuZCBhIGhpZGRlbiBpbnB1dCBmaWVsZCB0byBicm93c2UgaW1hZ2VzIGluICJbeW91ciB1cGxvYWRzIGRpcl0vaW1hZ2VzIiB1c2luZyB0aGUgYnVpbHQgaW4gZmlsZWJyb3dzZXINCiAgICAgIC8vIHNlbGVjdGVkIGltYWdlcyB3aWxsIGFwcGVhciBhcyB0aHVtYm5haWwgcHJldmlldyBiZWxvdyB0aGUgYnV0dG9uOw0KICAgICAgLy8gdmFsdWUgaXMgc3RvcmVkIGluIHRoZSBoaWRkZW4gaW5wdXQgZmllbGQNCiAgICAgIA0KICAgICAgZWNobyAkam1mcC0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCcnLCAkaWQsICdmaWxlcGlja2VyX2lucHV0XzInLCAnJywgYXJyYXkoJ2Rpcic9PidpbWFnZXMnLCdtb2RlJz0+J2Jyb3dzZXInKSk7DQogICAgICANCiAgICAgIA0KICAgICAgLy8gcHJpbnRzIG91dCBhIGZpbGUgZHJvcGRvd24gc2hvd2luZyBhbGwgZmlsZXMgaW4gdXBsb2FkcyBkaXINCiAgICAgIGVjaG8gJGptZnAtPkNyZWF0ZUZpbGVQaWNrZXJJbnB1dCgnJywgJGlkLCAnZmlsZXBpY2tlcl9pbnB1dF8zJywgJycsIGFycmF5KCdtZWRpYV90eXBlJz0+J2ZpbGUnKSk7DQogICAgICANCiAgICAgIA0KICAgICAgLy8gcHJpbnRzIG91dCBhIGJ1dHRvbiBhbmQgYSB0ZXh0IGlucHV0IGZpZWxkIHRvIGJyb3dzZSBpbWFnZXMgaW4gdXBsb2Fkcy9pbWFnZXMgdXNpbmcgdGhlIGJ1aWx0IGluIGZpbGVicm93c2VyDQogICAgICAvLyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHRleHQgaW5wdXQgZmllbGQNCiAgICAgIA0KICAgICAgZWNobyAkam1mcC0+Q3JlYXRlRmlsZVBpY2tlcklucHV0KCcnLCRpZCwgJ2ZpbGVwaWNrZXJfaW5wdXRfNCcsJycsYXJyYXkoJ21lZGlhX3R5cGUnPT4nZmlsZScsJ21vZGUnPT4nYnJvd3NlcicpKTsNCiAgICAgIA0KICAgIH08L2NvZGU+PC9wcmU+DQogICAgeyogPHA+PGEgaHJlZj0iLi4vbW9kdWxlcy9KTUZpbGVQaWNrZXIvZG9jL2FwaS9pbmRleC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+Q2xpY2sgaGVyZSB0byB2aWV3IHRoZSBnZW5lcmF0ZWQgQVBJIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy48L2E+PC9wPiAqfQ0KICA8L2Rpdj4NCiB7Kg0KICA8ZGl2IGlkPSJ3aGF0c25ld19jIj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KIA0KICAgICAgPGgzPldoYXQncyBuZXc8L2gzPg0KICAgICAgPHA+VGhlc2UgYXJlIHNvbWUgb2YgdGhlIG5ldyBmZWF0dXJlcyBvZiB0aGlzIHJlbGVhc2U6PC9wPg0KICAgICAgPHVsPg0KICAgICAgICA8bGk+PC9saT4NCiAgICAgIDwvdWw+DQogICAgPC9kaXY+ICANCiAgPC9kaXY+DQogICp9DQogIDxkaXYgaWQ9ImFib3V0X2MiPg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogDQogICAgICA8aDM+QWJvdXQgdGhpcyBtb2R1bGU8L2gzPg0KICAgICAgPHA+T3JpZ2luIG9mIHRoaXMgbW9kdWxlIGNvbWVzIGZyb20gPHN0cm9uZz5HQkZpbGVQaWNrZXI8L3N0cm9uZz4gZGV2ZWxvcGVkIGJ5IDxzdHJvbmc+R2VvcmcgQnVzY2g8L3N0cm9uZz4uPC9wPg0KICAgICAgDQogICAgICA8aDM+U3VwcG9ydDwvaDM+DQogICAgICA8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQogICAgICA8dWw+DQogICAgICAgIDxsaT5UaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9qbWZpbGVwaWNrZXIvPC9hPjwvbGk+DQogICAgICAgIDxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIENNUyBNYWRlIFNpbXBsZSBGb3J1bXM6PGJyIC8+DQogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZzwvYT48L2xpPg0KICAgICAgPC91bD4NCiAgICAgIDxiciAvPg0KICAgICAgPHA+UGxlYXNlIHJlcG9ydCBhbnkga2luZCBvZiBmZWVkYmFjay48L3A+DQogICAgICA8cD5JZiB3YW50IHRvIGhlbHAgdGhlIGRldmVsb3BtZW50IGFuZCBtYWludGVuYW5jZSBvZiB0aGlzIG1vZHVsZSwgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nLiA8YnIgLz4gPGJyIC8+DQogICAgICAgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyP2NtZD1fcy14Y2xpY2smaG9zdGVkX2J1dHRvbl9pZD1QQks0WDNYS01BU1pDIj4gDQogICAgICAgIDxpbWcgc3JjPSJ7JHJvb3RfdXJsfS9tb2R1bGVzL0pNRmlsZVBpY2tlci9pbWFnZXMvcHBfYnV0dG9uLnBuZyIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIOKAkyBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZS4iIC8+DQogICAgICA8L2E+DQogICAgICA8L3A+DQoNCiAgICAgIDxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KDQogICAgICA8cD5UaGUgTW9kdWxlIGlzIGN1cnJlbnRseSBiZWluZyBkZXZlbG9wZWQgYnkgPHN0cm9uZz5GZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKTwvc3Ryb25nPg0KICAgICAgPGJyIC8+DQogICAgICBXZWI6IDxhIGhyZWY9Imh0dHBzOi8vd3d3LnNtLWFydC1sYWIuY29tIiByZWw9ImV4dGVybmFsIiB0YXJnZXQ9Il9ibGFuayI+d3d3LnNtLWFydC1sYWIuY29tPC9hPg0KICAgICAgPGJyIC8+DQogICAgICBFbWFpbDogPGEgaHJlZj0ibWFpbHRvOmpvbW9yZ0BzbS1hcnQtbGFiLmNvbSI+am9tb3JnQHNtLWFydC1sYWIuY29tPC9hPg0KICAgICAgPC9wPg0KICAgICAge2lmICRzbWFydHkubm93fGRhdGVfZm9ybWF0OiIlWSIgPT0gJzIwMTYnfXskY3IgPSAnMjAxNid9e2Vsc2V9eyRjciA9ICIyMDE2IC0geyRzbWFydHkubm93fGRhdGVfZm9ybWF0OiclWSd9In17L2lmfQ0KICAgICAgPHA+Q29weXJpZ2h0ICZjb3B5OyB7JGNyfSAuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjxiciAvPjwvcD4NCg0KICAgICAgPHA+PHN0cm9uZz5KTUZpbGVQaWNrZXI8L3N0cm9uZz4gaXMgZnJlZSBzb2Z0d2FyZTs8YnIgLz4geW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIDxzdHJvbmc+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3N0cm9uZz4gYXMgcHVibGlzaGVkIGJ5IHRoZSA8c3Ryb25nPkZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjwvc3Ryb25nPjs8YnIgLz4gZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+DQogICAgICA8cD48c3Ryb25nPkpNRmlsZVBpY2tlcjwvc3Ryb25nPiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgPHN0cm9uZz5XSVRIT1VUIEFOWSBXQVJSQU5UWTwvc3Ryb25nPjs8YnIgLz4gd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIDxzdHJvbmc+TUVSQ0hBTlRBQklMSVRZPC9zdHJvbmc+IG9yIDxzdHJvbmc+RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0U8L3N0cm9uZz4uPC9wPg0KICAgICAgPHA+U2VlIHRoZUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPC9wPg0KICAgICAgIDxwPllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIDxzdHJvbmc+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3N0cm9uZz4gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07PGJyIC8+IGlmIG5vdCwgd3JpdGUgdG8gdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQTwvc3Ryb25nPiBvciA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5yZWFkIGl0IG9ubGluZTwvYT4uPC9wPg0KICAgICAgPHA+PHN0cm9uZz5Zb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIDxzdHJvbmc+Sk1GaWxlUGlja2VyPC9zdHJvbmc+Ljwvc3Ryb25nPjwvcD4gIA0KDQogICAgICA8cD5Db3B5cmlnaHQgJmNvcHk7IHskY3J9LCBGZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKS4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KICAgICAgPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCIgdGFyZ2V0PSJfYmxhbmsiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQogICAgICA8aDQ+Q29udHJpYnV0b3JzPC9oND4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjxzdHJvbmc+R2VvcmcgQnVzY2ggKG5hbik8L3N0cm9uZz4gZ2VvcmcuYnVzY2hAZ214Lm5ldCAtIG9yaWdpbmFsIGRldmVsb3BlciAoR0JmaWxlUGlja2VyKTs8L2xpPg0KICAgICAgICA8bGk+PHN0cm9uZz5KZWZmIEJvc2NoIChhanByb2cpPC9zdHJvbmc+IGplZmZAYWpwcm9ncmFtbWluZy5jb20gLSBjb2RlLCBzdWdnZXN0aW9ucyBhbmQgZml4ZXM7PC9saT4NCiAgICAgIDwvdWw+DQogICAgPC9kaXY+DQogIDwvZGl2PiAgDQogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+DQo8L2Rpdj4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/input.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQp7Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBNb2R1bGUgOiBKTUZpbGVQaWNrZXIgKGMpIDIwMTAtMjAxMiBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKICAgICAgICAgICBhIGZpbGVwaWNrZXIgdG9vbCBmb3IgQ01TIE1hZGUgU2ltcGxlCiAgICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXIKICAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscAogICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpczogY21zbWFkZXNpbXBsZS5vcmcKICBWZXJzaW9uOiAxLjMuMgogIEZpbGUgICA6IGlucHV0LnRwbAogIExpY2Vuc2U6IEdQTAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0KPHNwYW4gY2xhc3M9IkpNRlBfaW5wdXRfd3JhcHBlciBKTUZQX3skam1mcF9tZWRpYV90eXBlfSBKTUZQX3skam1mcF9tb2RlfSIgaWQ9IkpNRlBfeyRqbWZwX2Nzc2lkfSI+CntsaXRlcmFsfQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpqbWZwX29ubG9hZC5wdXNoKGZ1bmN0aW9uKCl7CglKTUZQLnJlZ2lzdGVySW5wdXQoe3svbGl0ZXJhbH0KCQlpZDogJ3skam1mcF9jc3NpZH0nLAoJCW1vZHVsZUlkOiAneyRqbWZwX2lkfScsCgkJZGlyOid7JGptZnBfZGlyfScsCgkJbW9kZToneyRqbWZwX21vZGV9JywKCQlicm93c2VVcmw6J3tpZiAkam1mcF9tb2RlID09ICJkcm9wZG93biJ9eyRqbWZwX3JlbG9hZF9kcm9wZG93bl91cmx9e2Vsc2V9eyRqbWZwX2Jyb3dzZV91cmx9ey9pZn0ne2lmICRqbWZwX3VwbG9hZF91cmx9LAoJCXVwbG9hZFVybDoneyRqbWZwX3VwbG9hZF91cmx9J3svaWZ9Cgl7bGl0ZXJhbH19KTsKfSk7Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CntpZiAkam1mcF9wcm9tcHR9Cgk8bGFiZWwgZm9yPSJ7JGptZnBfY3NzaWR9Ij57JGptZnBfcHJvbXB0fTo8L2xhYmVsPiZuYnNwOwp7L2lmfQo8c3BhbiBpZD0ieyRqbWZwX2Nzc2lkfV9KTUZQX3skam1mcF9tb2RlfV93cmFwcGVyIiBjbGFzcz0iSk1GUF97JGptZnBfbW9kZX1fd3JhcHBlciI+Cgl7JGptZnBfaW5wdXR9Cjwvc3Bhbj4Ke2lmICRqbWZwX2Jyb3dzZV9saW5rfQoJPGEgaHJlZj0iIyIgY2xhc3M9IkpNRlBfbGluayBKTUZQX2Jyb3dzZSIgaWQ9Inskam1mcF9jc3NpZH1fSk1GUF9icm93c2UiIG9uY2xpY2s9InJldHVybiBmYWxzZTsiPnskam1mcF9icm93c2VfdGV4dH08L2E+CnsvaWZ9CntpZiAkam1mcF9jbGVhcl9saW5rfQoJJm5ic3A7fCZuYnNwO3skam1mcF9jbGVhcl9saW5rfQp7L2lmfQp7aWYgJGptZnBfdXBsb2FkX2xpbmt9CgkmbmJzcDt8Jm5ic3A7Cgk8YSBocmVmPSIjIiBjbGFzcz0iSk1GUF9saW5rIEpNRlBfdXBsb2FkIiBpZD0ieyRqbWZwX2Nzc2lkfV9KTUZQX3VwbG9hZCIgb25jbGljaz0icmV0dXJuIGZhbHNlOyI+eyRqbWZwX3VwbG9hZF90ZXh0fTwvYT4Key9pZn0Ke2lmICRqbWZwX21vZGUgPT0gJ2Ryb3Bkb3duJyAmJiAkam1mcF9yZWxvYWRfZHJvcGRvd25fbGlua30KCSZuYnNwO3wmbmJzcDt7JGptZnBfcmVsb2FkX2Ryb3Bkb3duX2xpbmt9CnsvaWZ9CgombmJzcDs8aW1nIGNsYXNzPSJKTUZQX2xvYWRpbmdfaW1nIiBzcmM9Intyb290X3VybH0vbW9kdWxlcy9KTUZpbGVQaWNrZXIvaW1nL2xvYWRpbmcuZ2lmIiBhbHQ9IiIgLz4KCntpZiAkam1mcF9tZWRpYV90eXBlID09ICdpbWFnZSd9Cgk8YnIgLz4KCTxzcGFuIGlkPSJ7JGptZnBfY3NzaWR9X0pNRlBfdGh1bWJuYWlsX3dyYXBwZXIiIGNsYXNzPSJKTUZQX3RodW1ibmFpbF93cmFwcGVyIj4KCQl7aWYgJGptZnBfdmFsdWUgIT0gJyd9CgkJPGltZyBjbGFzcz0iSk1GUF90aHVtYm5haWwiIGlkPSJ7JGptZnBfY3NzaWR9X0pNRlBfdGh1bWJuYWlsIiBzcmM9Inskam1mcF90aHVtYnVybH0iIHdpZHRoPSJ7JGptZnBfdGh1bWJfd2lkdGh9IiBoZWlnaHQ9Inskam1mcF90aHVtYl9oZWlnaHR9IiBhbHQ9Inskam1mcF92YWx1ZX0iIHRpdGxlPSJ7JGptZnBfdmFsdWV9IiAvPgoJCXsvaWZ9Cgk8L3NwYW4+CnsvaWZ9Cjwvc3Bhbj4Key9zdHJpcH0K]]></data>
	</file>
	<file>
	  <filename>/templates/prefstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQooZnVuY3Rpb24oJCl7DQoJdmFyIHNlbGVjdG9ycyA9IFsnam1mcF90aHVtYl91cGxvYWRfYWN0aW9uJ107DQoJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCgkJZm9yKHZhciBpPTA7IGk8c2VsZWN0b3JzLmxlbmd0aDsgaSsrKSB7DQoJCQkkKCIjIiArIHNlbGVjdG9yc1tpXSkuY2hhbmdlKGZ1bmN0aW9uKCkgew0KCQkJCXZhciB2ID0gdGhpcy52YWx1ZTsNCgkJCQkkKCcuJyArIHRoaXMuaWQpLmVhY2goZnVuY3Rpb24oKXsNCgkJCQkJdmFyICR0aGlzID0gJCh0aGlzKSwNCgkJCQkJCWEgPSAkdGhpcy5oYXNDbGFzcygnam1mcF92YWx1ZV8nICsgdiksDQoJCQkJCQltID0gKGEgJiYgdiAhPSAnJyk7DQoJCQkJCWlmKG0pIHsNCgkJCQkJCSR0aGlzLmZpbmQoJ2lucHV0JykucmVtb3ZlQXR0cignZGlzYWJsZWQnKTsNCgkJCQkJCSR0aGlzLnNsaWRlRG93bigpOw0KCQkJCQl9DQoJCQkJCWVsc2Ugew0KCQkJCQkJJHRoaXMuc2xpZGVVcCgpOw0KCQkJCQkJJHRoaXMuZmluZCgnaW5wdXQnKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9KTsNCgkJfQ0KCX0pOw0KfSkoalF1ZXJ5KTsNCjwvc2NyaXB0Pg0Key9saXRlcmFsfQ0KeyRzdGFydEZvcm19DQo8ZmllbGRzZXQ+DQoJPGxlZ2VuZD57JHNldHRpbmdzX3RleHR9PC9sZWdlbmQ+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNob3dfZmlsZW1hbmFnZW1lbnRfdGV4dH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNob3dfZmlsZW1hbmFnZW1lbnRfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRzaG93X3RodW1iZmlsZXNfdGV4dH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNob3dfdGh1bWJmaWxlc19pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsbG93X3NjYWxpbmdfdGV4dH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGFsbG93X3NjYWxpbmdfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmb3JjZV9zY2FsaW5nX3RleHR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmb3JjZV9zY2FsaW5nX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskc2NhbGluZ193aWR0aF90ZXh0fTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc2NhbGluZ193aWR0aF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNjYWxpbmdfaGVpZ2h0X3RleHR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzY2FsaW5nX2hlaWdodF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsbG93X3Vwc2NhbGluZ190ZXh0fTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWxsb3dfdXBzY2FsaW5nX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcmVzdHJpY3RfdXNlcnNfZGlyYWNjZXNzX3RleHR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRyZXN0cmljdF91c2Vyc19kaXJhY2Nlc3NfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjcmVhdGVfdGh1bWJzX3RleHR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjcmVhdGVfdGh1bWJzX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdXNlX21pbWV0eXBlX3RleHR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR1c2VfbWltZXR5cGVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aHVtYl91cGxvYWRfYWN0aW9uX3RleHR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0aHVtYl91cGxvYWRfYWN0aW9uX2lucHV0fTwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCBqbWZwX3RodW1iX3VwbG9hZF9hY3Rpb24gam1mcF92YWx1ZV8xIntpZiAhJHRodW1iX3VwbG9hZF9hY3Rpb259IHN0eWxlPSJkaXNwbGF5Om5vbmUiey9pZn0+DQoJCQl7JHRodW1iX3ByZWZpeF9yZXBsYWNlbWVudF90ZXh0fTogeyR0aHVtYl9wcmVmaXhfcmVwbGFjZW1lbnRfaW5wdXR9DQoJCTwvcD4NCgk8L2Rpdj4NCiAgeyoNCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZGVmYXVsdF9hZG1pbl90aGVtZV90ZXh0fTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVmYXVsdF9hZG1pbl90aGVtZV9pbnB1dH08L3A+DQoJPC9kaXY+DQogICp9DQoJe2lmIGlzc2V0KCRmZXVfYWNjZXNzX3RleHQpfQ0KCSAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmV1X2FjY2Vzc190ZXh0fTo8L3A+DQoJCSAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmZXVfYWNjZXNzX2lucHV0fTwvcD4NCgkgIDwvZGl2Pg0KICAgIHsqDQoJICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQkgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRkZWZhdWx0X2Zyb250ZW5kX3RoZW1lX3RleHR9OjwvcD4NCgkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRlZmF1bHRfZnJvbnRlbmRfdGhlbWVfaW5wdXR9PC9wPg0KCSAgPC9kaXY+DQogICAgKn0NCgl7L2lmfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+DQoJPC9kaXY+DQo8L2ZpZWxkc2V0Pg0KeyRlbmRGb3JtfQ0K]]></data>
	</file>
	<file>
	  <filename>/templates/themes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/css/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/css/JMFP.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIE1vZHVsZSA6IEdCRmlsZVBpY2tlciAoYykgMjAxMC0yMDEyIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQ0KICAgICAgICAgIGEgZmlsZSBwaWNrZXIgdG9vbCBmb3IgQ01TIE1hZGUgU2ltcGxlDQogICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXINCiAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscA0KICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIFZlcnNpb246IDEuMy4yDQogRmlsZSAgIDogZmlsZXBpY2tlci5jc3MNCiBQdXJwb3NlOiBzdHlsZSBvZiB0aGUgZmlsZXBpY2tlciBpbnB1dCBhbmQgYnJvd3Nlcg0KIExpY2Vuc2U6IEdQTA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KDQojSk1GUF93cmFwcGVyIHsNCglwb3NpdGlvbiA6IGZpeGVkOw0KCWxlZnQgICAgIDogMHB4Ow0KCXRvcCAgICAgIDogMHB4Ow0KCXdpZHRoICAgIDogMTAwJTsNCgloZWlnaHQgICA6IDEwMCU7DQoJei1pbmRleCAgOiAtOTk5OTsNCglkaXNwbGF5ICA6IG5vbmU7DQoJb3BhY2l0eSAgOiAwOw0KCW1hcmdpbiAgIDogMDsNCglwYWRkaW5nICA6IDA7DQp9DQoNCiNKTUZQX2JhY2tncm91bmQgew0KCXBvc2l0aW9uICAgICAgICAgOiBmaXhlZDsNCglsZWZ0ICAgICAgICAgICAgIDogMHB4Ow0KCXRvcCAgICAgICAgICAgICAgOiAwcHg7DQoJd2lkdGggICAgICAgICAgICA6IDEwMCU7DQoJaGVpZ2h0ICAgICAgICAgICA6IDEwMCU7DQoJYmFja2dyb3VuZC1jb2xvciA6ICMwMDA7DQoJZGlzcGxheSAgICAgICAgICA6IG5vbmU7DQoJb3BhY2l0eSAgICAgICAgICA6IDA7DQp9DQoNCiNKTUZQIHsNCgltaW4td2lkdGggICAgICAgICAgOiA2MDBweDsNCgl3aWR0aCAgICAgICAgICAgICAgOiA2MDBweDsNCglkaXNwbGF5ICAgICAgICAgICAgOiBub25lOw0KCW9wYWNpdHkgICAgICAgICAgICA6IDA7DQoJYmFja2dyb3VuZC1jb2xvciAgIDogI0ZGRjsNCglsaW5lLWhlaWdodCAgICAgICAgOiAxMDAlOw0KCW1hcmdpbiAgICAgICAgICAgICA6IGF1dG87DQoJbWFyZ2luLWJvdHRvbSAgICAgIDogNXB4Ow0KCXBvc2l0aW9uICAgICAgICAgICA6IHJlbGF0aXZlOw0KCS1tb3otYm9yZGVyLXJhZGl1cyA6IDEwcHg7DQoJLXdlYmtpdC1ib3JkZXItcmFkaXVzIDogMTBweDsNCglib3JkZXItcmFkaXVzICAgICAgOiAxMHB4Ow0KCS1tb3otYm94LXNoYWRvdyAgICA6IDAgMCAzMnB4ICMwMDAwMDA7DQoJLXdlYmtpdC1ib3gtc2hhZG93IDogMCAwIDMycHggIzAwMDAwMDsNCglib3gtc2hhZG93ICAgICAgICAgOiAwIDAgMzJweCAjMDAwMDAwOw0KCWhlaWdodCAgICAgICAgICAgICA6IDM2cHg7DQoJbWluLWhlaWdodCAgICAgICAgIDogMzZweDsNCglvdmVyZmxvdyAgICAgICAgICAgOiBoaWRkZW47DQp9DQoNCiNKTUZQX2NvbnRlbnQgew0KCWRpc3BsYXkgOiBibG9jazsNCglvcGFjaXR5IDogMDsNCn0NCg0KI0pNRlBfdGl0bGViYXIgew0KCXBhZGRpbmcgICAgICAgICAgOiA1cHg7DQoJY29sb3IgICAgICAgICAgICA6ICMzMzM7DQoJYmFja2dyb3VuZC1jb2xvciA6ICNDQ0M7DQp9DQoNCiNKTUZQX3RpdGxlYmFyIGgzIHsNCgljdXJzb3I6IG1vdmU7DQogICAgaGVpZ2h0OiAyNnB4Ow0KICAgIGxlZnQ6IDI2cHg7DQogICAgbGluZS1oZWlnaHQ6IDI2cHg7DQogICAgbWFyZ2luOiAwOw0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICByaWdodDogMDsNCiAgICB0b3A6IDA7DQp9DQoNCiNKTUZQX21lbnUgew0KCXBhZGRpbmc6IDVweCAwIDVweCAwOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglyaWdodDogMDsNCgl0b3A6IDA7DQp9DQoNCiNKTUZQX2Nsb3NlLA0KI0pNRlBfcmVsb2FkX2RpciwNCiNKTUZQX2NsZWFyX2NhY2hlIHsNCglkaXNwbGF5ICAgICAgICAgOiBibG9jazsNCglmbG9hdCAgICAgICAgICAgOiBsZWZ0Ow0KCWhlaWdodCAgICAgICAgICA6IDE2cHg7DQoJbWFyZ2luICAgICAgICAgIDogMCA1cHg7DQoJb3ZlcmZsb3cgICAgICAgIDogaGlkZGVuOw0KCXRleHQtZGVjb3JhdGlvbiA6IG5vbmU7DQoJdGV4dC1pbmRlbnQgICAgIDogLTk5OWVtOw0KCXdpZHRoICAgICAgICAgICA6IDE2cHg7DQp9DQoNCiNKTUZQX2dvdG9fcm9vdCB7DQoJb3ZlcmZsb3cgICAgICAgIDogaGlkZGVuOw0KCXRleHQtZGVjb3JhdGlvbiA6IG5vbmU7DQoJdGV4dC1pbmRlbnQgICAgIDogLTk5OWVtOw0KCXdpZHRoICAgICAgICAgICA6IDIxcHg7DQoJaGVpZ2h0ICAgICAgICAgIDogMTZweDsNCglkaXNwbGF5ICAgICAgICAgOiBibG9jazsNCglmbG9hdCAgICAgICAgICAgOiBsZWZ0Ow0KCW1hcmdpbiAgICAgICAgICA6IDAgNXB4Ow0KCWJhY2tncm91bmQgICAgICA6IHVybCgnLi4vaW1nL2Rpci5naWYnKSBuby1yZXBlYXQgY2VudGVyOw0KfQ0KDQojSk1GUF9jbG9zZSB7DQoJYmFja2dyb3VuZCA6IHVybCgnLi4vaW1nL2Nsb3NlLnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7DQp9DQoNCiNKTUZQX3JlbG9hZF9kaXIgew0KCWJhY2tncm91bmQgOiB1cmwoJy4uL2ltZy9yZWxvYWQucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQojSk1GUF9jbGVhcl9jYWNoZSB7DQoJYmFja2dyb3VuZCA6IHVybCgnLi4vaW1nL2NsZWFyX2NhY2hlLnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KDQojSk1GUF9oZWFkZXIgZm9ybSBwIHsNCglsaW5lLWhlaWdodCA6IDEzMCU7DQoJcGFkZGluZyAgICAgOiA1cHggMCAwIDA7DQp9DQoNCiNKTUZQX2hlYWRlciB7DQoJbWFyZ2luICAgICAgICAgICA6IDBweDsNCglwYWRkaW5nICAgICAgICAgIDogMHB4Ow0KfQ0KDQojSk1GUF9oZWFkZXIgZmllbGRzZXQgew0KCW1hcmdpbiAgIDogNXB4Ow0KCWNsZWFyICAgIDogYm90aDsNCglvdmVyZmxvdyA6IGhpZGRlbjsNCn0NCg0KI0pNRlBfaGVhZGVyIGZpZWxkc2V0IGxlZ2VuZCB7DQoJZm9udC1zaXplICAgICAgOiAxMDAlOw0KCW1hcmdpbi1ib3R0b20gIDogMDsNCgltYXJnaW4tdG9wICAgICA6IDA7DQoJcGFkZGluZy1ib3R0b20gOiAwOw0KCXBhZGRpbmctdG9wICAgIDogMDsNCn0NCg0KYS5qbWZwX2NvbnRyYWN0LA0KYS5qbWZwX2V4cGFuZCB7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50Ow0KCXRleHQtaW5kZW50Oi05MDAlICFpbXBvcnRhbnQ7DQoJb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7DQoJb3V0bGluZTpub25lICFpbXBvcnRhbnQ7DQoJcGFkZGluZy1sZWZ0OjEuOGVtICFpbXBvcnRhbnQ7DQp9DQoNCi5qbWZwX25vLW92ZXJmbG93IHsNCglvdmVyZmxvdzpoaWRkZW4NCn0NCg0KLmptZnBfZmllbGRzZXQgew0KfQ0KDQojSk1GUF9oZWFkZXIgLmptZnBfbm8tYm9yZGVyIHsNCglwYWRkaW5nLXRvcDoxcHg7DQoJcGFkZGluZy1ib3R0b206MXB4Ow0KCW1hcmdpbi1sZWZ0OjZweDsNCglib3JkZXI6bm9uZTsNCn0NCg0KDQojSk1GUF9maWxlb3BlcmF0aW9ucyB7DQoJIG92ZXJmbG93OmhpZGRlbjsNCgkgd2lkdGg6MTAwJTsNCn0NCg0KI0pNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zIHsNCn0NCg0KI0pNRlAgZGl2LmJyZWFkY3J1bWJzIHsNCglwYWRkaW5nLWxlZnQgOiAxMHB4Ow0KfQ0KDQojSk1GUF9maWxlbGlzdCB7DQoJbWFyZ2luICAgICAgICAgICA6IDVweCA1cHggNXB4Ow0KCWJvcmRlciAgICAgICAgICAgOiAxcHggc29saWQgIzk3QjFCOTsNCgliYWNrZ3JvdW5kLWNvbG9yIDogI2ZmZjsNCglvdmVyZmxvdyAgICAgICAgIDogYXV0bzsNCgltaW4td2lkdGggICAgICAgIDogNTM4cHg7DQoJb3BhY2l0eSAgICAgICAgICA6IDA7DQp9DQojSk1GUF9maWxlbGlzdCB0YWJsZSB0ciB0ZHsNCglwYWRkaW5nLXRvcCAgIDogNXB4Ow0KCXBhZGRpbmctcmlnaHQgOiA1cHg7DQoJZW1wdHktY2VsbHMgICA6IHNob3c7DQp9DQoNCi5KTUZQX3RodW1ibmFpbF93cmFwcGVyIHsNCgltYXJnaW4gICAgICAgICA6IDJweDsNCgl0ZXh0LWFsaWduICAgICA6IGNlbnRlcjsNCgl2ZXJ0aWNhbC1hbGlnbiA6IG1pZGRsZTsNCglvdmVyZmxvdyAgICAgICA6IGhpZGRlbjsNCglkaXNwbGF5ICAgICAgICA6IGJsb2NrOw0KCWZsb2F0ICAgICAgICAgIDogbGVmdDsNCn0NCg0KI0pNRlBfZmlsZWxpc3QgLkpNRlBfdGh1bWJuYWlsX3dyYXBwZXIgew0KCWhlaWdodCAgIDogYXV0bzsNCglvdmVyZmxvdyA6IHZpc2libGU7DQoJZmxvYXQgICAgOiBub25lOw0KfQ0KDQouSk1GUF90aHVtYm5haWxfd3JhcHBlciBpbWcuSk1GUF90aHVtYm5haWwgew0KICAgbWFyZ2luICA6IDJweDsNCiAgIHBhZGRpbmcgOiAycHg7DQogICBib3JkZXIgIDogMXB4IHNvbGlkICM5OTk5OTk7DQp9DQovKkZpbGUgb3BlcmF0aW9ucyovDQovKmVycm9yKi8NCiNKTUZQX2Vycm9yew0KICAgCXBhZGRpbmcgICAgIDogNXB4IDVweCAxMHB4IDEwcHg7DQoJYm9yZGVyICAgICAgOiAxcHggc29saWQgI0ZEOTk5OTsNCgljb2xvciAgICAgICA6ICMwMDA7DQoJYmFja2dyb3VuZCAgOiAjRkVEQURBOw0KCWZvbnQtd2VpZ2h0IDogYm9sZDsNCn0NCiNKTUZQX2Vycm9yIGxlZ2VuZHsNCgljb2xvciAgICAgICA6ICNDQzAwMDA7DQoJZm9udC13ZWlnaHQgOiBib2xkOw0KCWZvbnQtc2l6ZSAgIDogMS4xZW07DQp9DQovKnN1Y2VzcyovDQojSk1GUF9zdWNjZXNzew0KICAgCXBhZGRpbmcgICAgIDogNXB4IDVweCAxMHB4IDEwcHg7DQoJY29sb3IgICAgICAgOiAjMDAwOw0KCWZvbnQtd2VpZ2h0IDogYm9sZDsNCglib3JkZXIgICAgICA6IDFweCBzb2xpZCAjQkREM0EzOw0KCWJhY2tncm91bmQgIDogI0Q2RTRDNTsNCn0NCiNKTUZQX3N1Y2Nlc3MgbGVnZW5kew0KCWNvbG9yICAgICAgIDogIzQzNTgyOTsNCglmb250LXdlaWdodCA6IGJvbGQ7DQoJZm9udC1zaXplICAgOiAxLjFlbTsNCn0NCg0KLkpNRlBfbGluayB7DQoJcGFkZGluZzozcHg7DQp9DQoNCi8qZm9ybSBpbnB1dCdzIGluIG5vcm1hbCBjc3MqLw0KaW5wdXQuSk1GUF9idXR0b24uSk1GUF9kaXNhYmxlZCwNCmlucHV0LkpNRlBfYnV0dG9uLkpNRlBfZGlzYWJsZWQ6aG92ZXIsDQouSk1GUF9pbnB1dF93cmFwcGVyIC5KTUZQX2Rpc2FibGVkLA0KLkpNRlBfaW5wdXRfd3JhcHBlciAuSk1GUF9kaXNhYmxlZDpob3ZlciB7DQoJY29sb3IgICAgICA6ICNDQ0M7DQoJY3Vyc29yICAgICA6IGRlZmF1bHQ7DQoJYm9yZGVyICAgICA6IG5vbmU7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KDQojSk1GUF9sb2FkaW5nX2ltZ193cmFwcGVyIHsNCgloZWlnaHQgICAgICAgIDogMTZweDsNCgl3aWR0aCAgICAgICAgIDogMTZweDsNCglmbG9hdCAgICAgICAgIDogbGVmdDsNCglwYWRkaW5nLXJpZ2h0IDogNXB4Ow0KCWRpc3BsYXk6IGJsb2NrOw0KfQ0KI0pNRlBfbG9hZGluZ19pbWcgew0KCWhlaWdodCAgICAgICAgOiAxNnB4Ow0KCXdpZHRoICAgICAgICAgOiAxNnB4Ow0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCiNKTUZQIC51aS1yZXNpemFibGUtZSB7DQoJY3Vyc29yOiBlLXJlc2l6ZTsNCgloZWlnaHQ6IDEwMCU7DQoJcmlnaHQ6IDBweDsNCgl0b3A6IDI2cHg7DQoJd2lkdGg6IDEwcHg7DQoJcG9zaXRpb246YWJzb2x1dGU7DQoJei1pbmRleDo5OTk5Ow0KfQ0KDQojSk1GUCAudWktcmVzaXphYmxlLXcgew0KCWN1cnNvcjogdy1yZXNpemU7DQoJaGVpZ2h0OiAxMDAlOw0KCWxlZnQ6IDBweDsNCgl0b3A6IDI2cHg7DQoJd2lkdGg6IDEwcHg7DQoJcG9zaXRpb246YWJzb2x1dGU7DQoJei1pbmRleDo5OTk5Ow0KfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/fileBrowser.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQ0KeyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICBNb2R1bGUgOiBKTUZpbGVQaWNrZXIgKGMpIDIwMTAtMjAxMiBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkNCiAgICAgICAgICAgYSBmaWxlcGlja2VyIHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQ0KICAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2diZmlsZXBpY2tlcg0KICAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscA0KICAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGNtc21hZGVzaW1wbGUub3JnDQogIFZlcnNpb246IDEuMy4yDQogIEZpbGUgICA6IGZpbGVicm93c2VyLnRwbA0KICBMaWNlbnNlOiBHUEwNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0NCg0KPGRpdiBpZD0iSk1GUF9oZWFkZXIiPg0KDQp7aWYgaXNzZXQoJGptZnBfY3VycmVudGRpcil9DQoNCgk8ZGl2IGNsYXNzPSJicmVhZGNydW1icyI+DQoJCTxwIGNsYXNzPSJicmVhZGNydW1icyI+DQoJCQ0KCXtpZiBpc3NldCgkam1mcF9zdGFydHVybCl9DQoJCQkNCgkJCTxhIGhyZWY9Inskam1mcF9zdGFydHVybH0iIGlkPSJKTUZQX2dvdG9fcm9vdCIgdGl0bGU9Inskam1mcF9zdGFydGRpcl90ZXh0fSIgb25jbGljaz0iSk1GUC5sb2FkRGlyKHRoaXMuaHJlZiwneyRqbWZwX2Nzc2lkfScsJ3skam1mcF9zdGFydGRpcn0nKTsgcmV0dXJuIGZhbHNlOyI+eyRqbWZwX3N0YXJ0ZGlyX3RleHR9PC9hPg0KCQkJDQoJCQkmbmJzcDt7JGptZnBfY3VycmVudGRpcl90ZXh0fTombmJzcDsNCgkJCQ0KCQkJe2Fzc2lnbiB2YXI9ImN1cnJlbnRfYnJlYWRjcnVtYiIgdmFsdWU9IiRqbWZwX3N0YXJ0ZGlyIn0NCgkJCXtmb3JlYWNoIGZyb209JGptZnBfYnJlYWRjcnVtYnMgaXRlbT1icmVhZGNydW1iIG5hbWU9Y3VycmVudH0NCgkJCQl7YXNzaWduIHZhcj0iY3VycmVudF9icmVhZGNydW1iIiB2YWx1ZT0kY3VycmVudF9icmVhZGNydW1ifGNhdDonLyd8Y2F0OiRicmVhZGNydW1iLT5maWxlbmFtZXxAdHJpbTonLyd9DQoJCQkJe2lmICRqbWZwX2N1cnJlbnRkaXIgIT0gJGN1cnJlbnRfYnJlYWRjcnVtYn0NCgkJCQ0KCQkJPGEgaHJlZj0ieyRicmVhZGNydW1iLT5maWxldXJsfSIgb25jbGljaz0iSk1GUC5sb2FkRGlyKHRoaXMuaHJlZiwneyRqbWZwX2Nzc2lkfScsJ3skYnJlYWRjcnVtYi0+aWR9Jyk7IHJldHVybiBmYWxzZTsiPnskYnJlYWRjcnVtYi0+ZmlsZW5hbWV9PC9hPg0KCQkJDQoJCQkJe2Vsc2V9DQoJCQkJCXskYnJlYWRjcnVtYi0+ZmlsZW5hbWV9DQoJCQkJey9pZn0NCgkJCQl7aWYgISRzbWFydHkuZm9yZWFjaC5jdXJyZW50Lmxhc3R9IC8gey9pZn0NCgkJCXsvZm9yZWFjaH0NCgl7ZWxzZX0NCgkJCQ0KCQkJPGltZyBzcmM9Intyb290X3VybH0vbW9kdWxlcy9KTUZpbGVQaWNrZXIvaW1hZ2VzL2Rpci5naWYiIGFsdD0iIiAvPg0KCQkJDQoJCQkmbmJzcDt7JGptZnBfY3VycmVudGRpcl90ZXh0fTombmJzcDt7JGptZnBfY3VycmVudGRpcn0NCgkJCQ0KCXsvaWZ9DQoJDQoJCTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJoc3RpcHBsZWQiPiZuYnNwOzwvZGl2Pg0KCQ0Key9pZn0NCg0Ke2lmIGlzc2V0KCRqbWZwX2Zvcm1zdGFydCl9DQp7JGptZnBfZm9ybXN0YXJ0fQ0KCTxmaWVsZHNldCBpZD0iSk1GUF9maWxlb3BlcmF0aW9uc193cmFwcGVyIiBjbGFzcz0iam1mcF9maWVsZHNldHtpZiAhJGptZnBfZmlsZW9wZXJhdGlvbnNfZGlzcGxheX0gam1mcF9uby1ib3JkZXJ7L2lmfSI+DQoJe2lmICRqbWZwX21vZGUgIT0gJ2Ryb3Bkb3duJ30NCgkJPGxlZ2VuZD48YSBocmVmPSJ7JGptZnBfcHJlZnVybH17aWYgISRqbWZwX2ZpbGVvcGVyYXRpb25zX2Rpc3BsYXl9MXtlbHNlfTB7L2lmfSIgY2xhc3M9IntpZiAhJGptZnBfZmlsZW9wZXJhdGlvbnNfZGlzcGxheX1qbWZwX2V4cGFuZHtlbHNlfWptZnBfY29udHJhY3R7L2lmfSIgaWQ9IkpNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zIj57JGptZnBfZmlsZW9wZXJhdGlvbnNfdGV4dH08L2E+PC9sZWdlbmQ+DQoJey9pZn0NCgkJDQoJCTxkaXYge2lmICRqbWZwX21vZGUgIT0gJ2Ryb3Bkb3duJ31pZD0iSk1GUF9maWxlb3BlcmF0aW9ucyIgc3R5bGU9ImRpc3BsYXk6e2lmICEkam1mcF9maWxlb3BlcmF0aW9uc19kaXNwbGF5ICYmICRqbWZwX21vZGUgIT0gJ2Ryb3Bkb3duJ31ub25le2Vsc2V9YmxvY2t7L2lmfSJ7L2lmfT4NCgkJCTx0YWJsZT4NCgkJCQk8dGJvZHk+DQoJCQkJCTx0cj4NCgkJCQkJe2lmICRqbWZwX3VwbG9hZH0NCgkJCQkJCTx0ZD57JGptZnBfZmlsZXVwbG9hZF90ZXh0fTo8L3RkPg0KCQkJCQl7L2lmfQ0KCQkJCQl7aWYgJGptZnBfY3JlYXRlX2RpcnN9DQoJCQkJCQk8dGQ+eyRqbWZwX2NyZWF0ZWRpcl90ZXh0fTo8L3RkPg0KCQkJCQl7L2lmfQ0KCQkJCQk8L3RyPg0KCQkJCQk8dHI+DQoJCQkJCXtpZiAkam1mcF91cGxvYWR9DQoJCQkJCQk8dGQ+eyRqbWZwX2ZpbGV1cGxvYWRfaW5wdXR9PC90ZD4NCgkJCQkJey9pZn0NCgkJCQkJe2lmICRqbWZwX2NyZWF0ZV9kaXJzfQ0KCQkJCQkJPHRkPnskam1mcF9jcmVhdGVkaXJfaW5wdXR9PC90ZD4NCgkJCQkJey9pZn0NCgkJCQkJPC90cj4NCgkJCQkJPHRyPg0KCQkJCQl7aWYgJGptZnBfdXBsb2FkICYmICRqbWZwX2FsbG93X3NjYWxpbmd9DQoJCQkJCQk8dGQ+eyRqbWZwX3Jlc2l6ZWltYWdlX3RleHR9OiZuYnNwO3skam1mcF9yZXNpemVpbWFnZV9pbnB1dH08L3RkPg0KCQkJCQl7L2lmfQ0KCQkJCQl7aWYgJGptZnBfY3JlYXRlX2RpcnN9DQoJCQkJCQk8dGQ+eyRqbWZwX2NyZWF0ZWRpcl9zdWJtaXR9PC90ZD4NCgkJCQkJey9pZn0NCgkJCQkJPC90cj4NCgkJCQkJe2lmICRqbWZwX3VwbG9hZCAmJiAkam1mcF9hbGxvd19zY2FsaW5nfQ0KCQkJCQk8dHI+DQoJCQkJCQk8dGQ+eyRqbWZwX2ltYWdlc2l6ZV94X2lucHV0fSZuYnNwO3gmbmJzcDt7JGptZnBfaW1hZ2VzaXplX3lfaW5wdXR9PC90ZD4NCgkJCQkJPC90cj4NCgkJCQkJPHRyPg0KCQkJCQkJPHRkPnskam1mcF9rZWVwYXNwZWN0cmF0aW9fdGV4dH06Jm5ic3A7eyRqbWZwX2tlZXBhc3BlY3RyYXRpb19pbnB1dH08L3RkPg0KCQkJCQk8L3RyPg0KCQkJCQkJe2lmICRqbWZwX2FsbG93X3Vwc2NhbGluZ30NCgkJCQkJPHRyPg0KCQkJCQkJPHRkPnskam1mcF9mb3JjZXVwc2NhbGluZ190ZXh0fTombmJzcDt7JGptZnBfZm9yY2V1cHNjYWxpbmdfaW5wdXR9PC90ZD4NCgkJCQkJPC90cj4NCgkJCQkJCXsvaWZ9DQoJCQkJCXsvaWZ9DQoJCQkJCXtpZiAkam1mcF91cGxvYWR9DQoJCQkJCTx0cj4NCgkJCQkJCTx0ZD57JGptZnBfZmlsZXVwbG9hZF9zdWJtaXR9PC90ZD4NCgkJCQkJPC90cj4NCgkJCQkJey9pZn0NCgkJCQk8L3Rib2R5Pg0KCQkJPC90YWJsZT4NCgkJPC9kaXY+DQoJPC9maWVsZHNldD4NCnskam1mcF9mb3JtZW5kfQ0Key9pZn0NCg0Ke2lmIGlzc2V0KCRqbWZwX2Vycm9ybWVzc2FnZSkgJiYgJGptZnBfZXJyb3JtZXNzYWdlIT0iIn0NCgk8ZmllbGRzZXQgY2xhc3M9IkpNRlBfbWVzc2FnZSIgaWQ9IkpNRlBfZXJyb3IiIG9uY2xpY2s9IkpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnaGVpZ2h0JywnYXV0bycpO2pRdWVyeSh0aGlzKS5mYWRlVG8oSk1GUC5pbnB1dHNbSk1GUC50bXAuY3VycmVudFBpY2tlcklkXS5mYWRlU3BlZWQsMCxmdW5jdGlvbigpe2xpdGVyYWx9e3svbGl0ZXJhbH1qUXVlcnkodGhpcykuYW5pbWF0ZSh7bGl0ZXJhbH17ey9saXRlcmFsfWhlaWdodDogJzBweCd7bGl0ZXJhbH19ey9saXRlcmFsfSwgSk1GUC5pbnB1dHNbSk1GUC50bXAuY3VycmVudFBpY2tlcklkXS5hbmltYXRlU3BlZWQgLCAnc3dpbmcnLCBmdW5jdGlvbigpe2xpdGVyYWx9e3svbGl0ZXJhbH1qUXVlcnkodGhpcykucmVtb3ZlKCk7Sk1GUC5yZXNpemUoKTt7bGl0ZXJhbH19ey9saXRlcmFsfSl7bGl0ZXJhbH19ey9saXRlcmFsfSk7IiBzdHlsZT0iY3Vyc29yOnBvaW50ZXIiPg0KCQk8bGVnZW5kPnskam1mcF9lcnJvcl90ZXh0fTwvbGVnZW5kPg0KCQl7JGptZnBfZXJyb3JtZXNzYWdlfQ0KCTwvZmllbGRzZXQ+DQp7L2lmfQ0KDQp7aWYgaXNzZXQoJGptZnBfbWVzc2FnZSkgJiYgJGptZnBfbWVzc2FnZSE9IiJ9DQoJPGZpZWxkc2V0IGNsYXNzPSJKTUZQX21lc3NhZ2UiIGlkPSJKTUZQX3N1Y2Nlc3MiIG9uY2xpY2s9IkpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnaGVpZ2h0JywnYXV0bycpO2pRdWVyeSh0aGlzKS5mYWRlVG8oSk1GUC5pbnB1dHNbSk1GUC50bXAuY3VycmVudFBpY2tlcklkXS5mYWRlU3BlZWQsMCxmdW5jdGlvbigpe2xpdGVyYWx9e3svbGl0ZXJhbH1qUXVlcnkodGhpcykuYW5pbWF0ZSh7bGl0ZXJhbH17ey9saXRlcmFsfWhlaWdodDogJzBweCd7bGl0ZXJhbH19ey9saXRlcmFsfSwgSk1GUC5pbnB1dHNbSk1GUC50bXAuY3VycmVudFBpY2tlcklkXS5hbmltYXRlU3BlZWQgLCAnc3dpbmcnLCBmdW5jdGlvbigpe2xpdGVyYWx9e3svbGl0ZXJhbH1qUXVlcnkodGhpcykucmVtb3ZlKCk7Sk1GUC5yZXNpemUoKTt7bGl0ZXJhbH19ey9saXRlcmFsfSl7bGl0ZXJhbH19ey9saXRlcmFsfSk7IiBzdHlsZT0iY3Vyc29yOnBvaW50ZXIiPg0KCQk8bGVnZW5kPnskam1mcF9zdWNjZXNzX3RleHR9PC9sZWdlbmQ+DQoJCXskam1mcF9tZXNzYWdlfQ0KCTwvZmllbGRzZXQ+DQp7L2lmfQ0KDQo8L2Rpdj4NCg0Ke2lmICRqbWZwX21vZGUgIT0gJ2Ryb3Bkb3duJyAmJiBpc3NldCgkam1mcF9maWxlcyl9DQoNCjxkaXYgaWQ9IkpNRlBfZmlsZWxpc3QiPg0KDQoJe2lmICRqbWZwX2ZpbGVzfEBjb3VudH0NCgkNCgk8dGFibGUgc3R5bGU9IndpZHRoOjEwMCU7IiBpZD0iSk1GUF9maWxldGFibGUiIGNsYXNzPSJwYWdldGFibGUiIGNlbGxzcGFjaW5nPSIwIj4NCgkJPHRib2R5Pg0KCQl7Zm9yZWFjaCBmcm9tPSRqbWZwX2ZpbGVzIGl0ZW09ZmlsZX0NCgkJDQoJCTx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0geyRmaWxlLT5pZH0iPg0KCQkNCgkJCXtpZiAkZmlsZS0+aXNfZGlyfQ0KCQkJPHRkIGNsYXNzPSJwYWdlcG9zIiBzdHlsZT0id2lkdGg6eyRqbWZwX3RodW1iX3dpZHRofXB4Ij57JGZpbGUtPmZpbGVpY29ufTwvdGQ+DQoJCQk8dGQ+DQoJCQkJPGEgdGl0bGU9InskZmlsZS0+cmVsdXJsfSIgc3R5bGU9InBhZGRpbmc6MC44ZW07ZGlzcGxheTpibG9jayIgaHJlZj0ieyRmaWxlLT5maWxldXJsfSIgb25jbGljaz0iSk1GUC5sb2FkRGlyKHRoaXMuaHJlZiwneyRqbWZwX2Nzc2lkfScsJ3skZmlsZS0+cmVsdXJsfScpOyByZXR1cm4gZmFsc2U7Ij4NCgkJCQkJeyRmaWxlLT5iYXNlbmFtZX0NCgkJCQk8L2E+DQoJCQk8L3RkPg0KCQkJDQoJCQkJe2lmICRqbWZwX21lZGlhX3R5cGU9PSdmaWxlJ30NCgkJCTx0ZD4mbmJzcDs8L3RkPg0KCQkJCXsvaWZ9DQoJCQkNCgkJCTx0ZD4mbmJzcDs8L3RkPg0KCQkJDQoJCQk8dGQgY2xhc3M9InBhZ2Vwb3MiPg0KCQkJCXtpZiAkam1mcF9kZWxldGUgJiYgaXNzZXQoJGZpbGUtPmRlbGV0ZXVybCl9DQoJCQkJPGEgaHJlZj0ieyRmaWxlLT5kZWxldGV1cmx9IiBvbmNsaWNrPSJKTUZQLmRlbGV0ZUZpbGUodGhpcy5ocmVmLCd7JGZpbGUtPmNvbmZpcm1kZWxldGV9JywgJ3skZmlsZS0+cmVsdXJsfScpOyByZXR1cm4gZmFsc2U7Ij4NCgkJCQkJeyRqbWZwX2RlbGV0ZWljb259DQoJCQkJPC9hPg0KCQkJCXsvaWZ9DQoJCQk8L3RkPg0KCQkJDQoJCQl7ZWxzZX0NCgkJCQ0KCQkJPHRkIGNsYXNzPSJwYWdlcG9zIiBzdHlsZT0id2lkdGg6eyRqbWZwX3RodW1iX3dpZHRofXB4Ij4NCgkJCQl7aWYgJGZpbGUtPmlzX2ltYWdlICYmICRmaWxlLT50aHVtYm5haWx9DQoJCQkJPGRpdiBjbGFzcz0iSk1GUF90aHVtYm5haWxfd3JhcHBlciI+DQoJCQkJCTxhIHRpdGxlPSJ7JGZpbGUtPnJlbHVybH0iIGlkPSJ7JGZpbGUtPmlkfSIgaHJlZj0neyRmaWxlLT5mdWxsdXJsfScgb25jbGljaz0ie2lmICRmaWxlLT5pc19pbWFnZSAmJiAkZmlsZS0+dGh1bWJ1cmx9Sk1GUC50b2dnbGVUaHVtYm5haWwoJ3skam1mcF9jc3NpZH0nLCd7JGZpbGUtPnRodW1idXJsfScsJ3skZmlsZS0+cmVsdXJsfScsICd7JGZpbGUtPnJlbHVybH0nKTt7L2lmfUpNRlAucGlja0ZpbGUoJ3skZmlsZS0+cmVsdXJsfScsICd7JGptZnBfY3NzaWR9Jyk7IHJldHVybiBmYWxzZTsiPg0KCQkJCQkJDQoJCQkJCQl7JGZpbGUtPnRodW1ibmFpbH0NCgkJCQkJCQ0KCQkJCQk8L2E+DQoJCQkJPC9kaXY+DQoJCQkJe2Vsc2V9DQoJCQkJCXskZmlsZS0+ZmlsZWljb259DQoJCQkJey9pZn0NCgkJCTwvdGQ+DQoJCQk8dGQ+DQoJCQkJPGEge2lmICRmaWxlLT5pc19pbWFnZSAmJiAkZmlsZS0+dGh1bWJuYWlsfXN0eWxlPSJwYWRkaW5nOjAuOGVtO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6eyRqbWZwX3RodW1iX2hlaWdodH1weDsiey9pZn0gdGl0bGU9InskZmlsZS0+YmFzZW5hbWV9IiBocmVmPSd7JGZpbGUtPmZ1bGx1cmx9JyBvbmNsaWNrPSJ7aWYgJGZpbGUtPmlzX2ltYWdlICYmICRmaWxlLT50aHVtYnVybH1KTUZQLnRvZ2dsZVRodW1ibmFpbCgneyRqbWZwX2Nzc2lkfScsJ3skZmlsZS0+dGh1bWJ1cmx9JywneyRmaWxlLT5yZWx1cmx9JywgJ3skZmlsZS0+cmVsdXJsfScpO3svaWZ9Sk1GUC5waWNrRmlsZSgneyRmaWxlLT5yZWx1cmx9JywgJ3skam1mcF9jc3NpZH0nKTsgcmV0dXJuIGZhbHNlOyI+DQoJCQkJCXskZmlsZS0+YmFzZW5hbWV9DQoJCQkJPC9hPg0KCQkJCQ0KCQkJPC90ZD4NCgkJCQ0KCQkJCXtpZiAkam1mcF9tZWRpYV90eXBlPT0nZmlsZSd9DQoJCQk8dGQ+eyRmaWxlLT5maWxldHlwZX08L3RkPg0KCQkJCXsvaWZ9DQoJCQkJDQoJCQk8dGQgYWxpZ249InJpZ2h0IiBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDt3aGl0ZS1zcGFjZTogbm93cmFwO2xpbmUtaGVpZ2h0OjEzMCUiPg0KCQkJCXskZmlsZS0+ZmlsZXNpemV9DQoJCQkJe2lmICRmaWxlLT5pc19pbWFnZX0NCgkJCQk8YnIgLz57JGZpbGUtPmltZ3NpemV9DQoJCQkJey9pZn0NCgkJCTwvdGQ+DQoJCQkNCgkJCTx0ZCBjbGFzcz0icGFnZXBvcyIgYWxpZ249InJpZ2h0Ij4NCgkJCQl7aWYgJGptZnBfZGVsZXRlICYmIGlzc2V0KCRmaWxlLT5kZWxldGV1cmwpfQ0KCQkJCTxhIGhyZWY9InskZmlsZS0+ZGVsZXRldXJsfSIgb25jbGljaz0iSk1GUC5kZWxldGVGaWxlKHRoaXMuaHJlZiwneyRmaWxlLT5jb25maXJtZGVsZXRlfScsICd7JGZpbGUtPnJlbHVybH0nKTsgcmV0dXJuIGZhbHNlOyI+DQoJCQkJCXskam1mcF9kZWxldGVpY29ufQ0KCQkJCTwvYT4NCgkJCQl7L2lmfQ0KCQkJPC90ZD4NCgkJCQ0KCQkJey9pZn0NCgkJPC90cj4NCgkJey9mb3JlYWNofQ0KCQk8L3Rib2R5Pg0KCTwvdGFibGU+DQoJey9pZn0NCjwvZGl2Pg0Key9pZn0NCg0Key9zdHJpcH0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQp7Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBNb2R1bGUgOiBKTUZpbGVQaWNrZXIgKGMpIDIwMTAtMjAxMiBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKICAgICAgICAgICBhIGZpbGVwaWNrZXIgdG9vbCBmb3IgQ01TIE1hZGUgU2ltcGxlCiAgICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXIKICAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscAogICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpczogY21zbWFkZXNpbXBsZS5vcmcKICBWZXJzaW9uOiAxLjMuMgogIEZpbGUgICA6IGhlYWRlci50cGwKICBMaWNlbnNlOiBHUEwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSp9Cgo8IS0tIHN0YXJ0IGptZnAgaGVhZCAtLT4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5qbWZwX2NvbnRyYWN0IHsKCWJhY2tncm91bmQtaW1hZ2U6IHVybCgieyRjb250cmFjdF9pbWd9IikgIWltcG9ydGFudDsKfQouam1mcF9leHBhbmQgewoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCJ7JGV4cGFuZF9pbWd9IikgIWltcG9ydGFudDsKfQo8L3N0eWxlPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpqbWZwX29ubG9hZCA9IFsKCWZ1bmN0aW9uKCl7CgkJSk1GUC5pbml0KHsKCQkJdGl0bGU6ICd7JGptZnBfdGl0bGV9JywKCQkJY2xvc2VUZXh0OiAneyRqbWZwX2Nsb3NlX3RleHR9JywKCQkJcmVsb2FkVGV4dDogJ3skam1mcF9yZWxvYWRfZGlyX3RleHR9JywKCQkJY2xlYXJDYWNoZVRleHQ6ICd7JGptZnBfY2xlYXJfY2FjaGVfdGV4dH0nLAoJCQlyb290VXJsOiAne3Jvb3RfdXJsfScsCgkJCXRodW1ibmFpbFdpZHRoOiB7JHRodW1iX3dpZHRofSwKCQkJdGh1bWJuYWlsSGVpZ2h0OiB7JHRodW1iX2hlaWdodH0sCgkJCW1vZHVsZUlkOiAneyRqbWZwX2lkfScKCQl9KTsKCX0KXTsKaWYodHlwZW9mIGpzTG9hZGVyX3NjcmlwdHMgPT0gJ3VuZGVmaW5lZCcpCglqc0xvYWRlcl9zY3JpcHRzID0gW107CmpzTG9hZGVyX3NjcmlwdHMucHVzaCh7Cgl1cmw6J3tyb290X3VybH0vbW9kdWxlcy9KTUZpbGVQaWNrZXIvdGVtcGxhdGVzL3RoZW1lcy9EZWZhdWx0LUFKQVgvanMvSk1GUC5qcycsIAoJbG9hZFR5cGU6J2RlZmVyJwp9KTsKPC9zY3JpcHQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InNjcmVlbiIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Intyb290X3VybH0vbW9kdWxlcy9KTUZpbGVQaWNrZXIvdGVtcGxhdGVzL3RoZW1lcy9EZWZhdWx0LUFKQVgvY3NzL0pNRlAuY3NzIiAvPgp7am1mcF9qc2xvYWRlcn0KCjwhLS0gZW5kIGptZnAgaGVhZCAtLT4KCnsvc3RyaXB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/img/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/img/close.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEQAACxEBf2RfkQAAAAd0SU1FB9IKEgsHLSVJtWIAAANtSURBVHjatZZNaF1FFMd/M/e++5ImC2nDc2UWRfEj2nXc2I0gVYoWJC6kIG78BKnuXHTtRlE3KkJBXEQsCF1IpbiRpi6ycCMEoaTdiNDSqtEk796Z8+Ei792+l5cYLDhw4TDM/f1nzv8MZ+B/HgGg1+udqKrqmRDCG91ulxACAO6OmeHuAG08/IZzqkpd14jIJymlSznni0AGrBwInVleXn5ycXERVcXMWpiItEIi0s6PrgkhUFUVq6urrywtLc0BPwIbQAoA8/Pzvr6+zvaFz/Arl6m3EioZz5ntFAm5DwoxJqwRbNvI0REzJBheZ+Tk0/ReeI2FhQXqun4Y+A3YLAGqqkJV8R8uYxWUUyV4idEhRrCmRFVprIM0YHOCJyVnR4OiqpRfX6A6/RZFUQDMAB2ACBBCwMxo/u5j2RAHQ8jZEQFVRUV34HESLgHcduLB6AzYoRw1M3WMzghcVVEPuCgSbV+4ZCOEOFYQwxGHwdC0UbgUgAoSDWnYF66mmMsEvBUYlpps1GxH6BeBfgxkUR75/Fvuf/djzIWE8dh7n/LE+Ss0Dikb2Zxszma149NukbEUaUehEVy1TcvWtV+YOfoQxz76CneYmuvx59U1JGfEwXMmByduprH7MXaCoUBp8Y6hg7SsnX2d5vZNukd6TM316N+6wcqZ02Nwy4ai+6doKBDqPAa3KEiyiZ92w3NwcvSDTZZkY3BPyrH3z9E90qO+fZP+rRtMz93L8Q++GIOrKlnDnicoR01OKWHSxRykb2hhzNx3lI2ra6y88xJJhOMffsnhBx+l8QLDUQO1gBUcbLLXmdyMlGKjfHdqsTU0a+bSq0vtrkUHlzAqmvPBHmTziTpXtTbnoykZhZsKGvn3KnJ3crXXJfLW0P3gIqDonv2gBBCRHaMbmbihan6nFG0feKE00wUxxr09aJqG7a0t8rMnKc5/g2WnjEYISl2DVaDuuCZIgVxGgmdy3CmQpio48txTzM7OYmaTAimli9euXz/xwKmXOfTim201uHvbgIbxaEcb7rYoCmZmZlhZWXEz+wlQwAEPgwVvxxifL4ri8Rjj2A5GQbtN3N06zexn4HvgHPAr8FcYrJ0GDgP3AIeA4i57vAJ94A/gd6AeChRABXQHaQt3KeCAAA2QAA27Xhhhr1fHf4CPxg7wD8S8aYqOtvexAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/img/dir.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAQAPcAAP///////v///f///P//+/7+///+/P//7f/+9P79+v79+f379/789v378f/66/z68Pr5+/r59/r49vv48Pn38/z44/v46Pv44vr36Pr35vv36fj19Pn14Pj24fr14vv13Pn03vb06vj13vj02/rx3Pny0ffy3vrxzPnyz/fx3fjy0Pjx2Pjwz/jxzvfvy/Tv1/Pv1+/v6PnvzO3v8u/u4/juxOru8fftyfPt0vXrwfDr1u7r2vfsvO/q1fXqvu3p1eXp7PPovunn3efm5e/mxPjmo+/lvPXmpujl2Ofk3+bk3evjve3itenivM7i9e/hqfHgnfHflNLf6uffuejds+Xeu9Pd5s7c7M/d6uzboerboO7bkvHafOfYr/HaiOPYouHZpebXnODXqODWoODVn+3VfOTTkfLSXt3RltfTkuDRiN7QjODQja/U1uzOWdLKs8bQoODMgePMa+7LUujLXeXLY+fLYbvK5ezLTpXS9Xnim+HIYuPHUqjJ6+TFUePFUeHGWOHFYd7GX+DGUd7GVeHFU9vFZeHETN3EVaPG6NvDX93DUtvEVtzDU9vCUuDCS9zCVKPIwrfBw9jCW8HAuNnCVNrCUdrAULTBi9S9UJ2/48a9dpu938m6eMm4fnvD837D8NS6T4LA8IDA8NK3S8u2VsmyVY604XW58quurp20o3O37na44Xa15mu27mm38bmtZnew5r6pWm+x7KatYWqx7Wex6L+kP2is7Wau5Gis5buiN16p5Faq71+l3mqg4WKogFah5XSdtKGTXl6Z3ZuSYZWTU0qa4UeW51GS25KKXkSQ4VKIyD2K2ot8JntuMf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHANAALAAAAAAVABAAAAj/AKFBw2FCoEAEBhMqhCbAwo4XE6AtIHEAwEKFCSrEUAKDxZ1knKRIEGDx4gMPHlI40AOMWbNgsRJdsTEgAIACBjVw4FBCBiZawnrZ4nVMVx9NWCgQiAABGggQLVpU8SQLlipWr3L5coJrGbFTQDYwGIGiRhMxajKVKrUpEihXrVbVQvZrhoEMKnIsAUNmDSNGlkLVSdPm0yhUs5AEgebCB5EpY9CwmeSIEKE/c87AySPKShYdAjEYYULlixlDly414sMHzy1jkrr0ULjiiZYwcRQpggTp0CFnxd78uKjgBpQtcgAFCuRm1zNKQi4abMAjShk7fugoSzVEukILR7xwEiE1LIn3ix+KdKJxXnqCENIDAgA7]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/img/home.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH1QoOFCUTUyrSOwAAAetJREFUOMuVk79rU1EUgL97+95L00DyJKBVh2RRexNoVawRXByMQhOnh9RKJ5GioxhcOrRuwan+GOrUJYv1x2AT8A/wPxB5W1zEWtvwYlGJIXnXIfbZl1AhZ7pczvfdcw7nwgHhKVWsgK6A9pR6yDCxB3tKaU+pPUlxaHixOKPLN2/8VyL64ZrrbhSUYv3cWbYnTnHk8DgnvCZTa2vUXJeCUtcOuW51QLAfflOcYff4MZTKMhaN0mq1GNv8SrZcHpCIfrh6+xadZJJ0Kk0qlQJAa2i32+zW65wslUISsR9+96BExzDJ5S5g23bQmtYaAN/3+bm1RXJuLpCICuiCUrx/VMZrNjk/nSMejyOECAl83w/OhhCM5vPUXBcDuAOsTp0+w/3SPTaqbwPwycozVh4/RYsRdKeFMEbR3d8sLy3R7qXMynl4vjCZIRFPAKDUBJmMIpvN9F4UkpH0ld7EU3mQFlprFiYzzMO67O/TsixM08QwjOD+S+MHAB/qO3S7fpALMCCQUiKlxJKfAehg8fFTA4Bv3i86IhJaJGNgs/4Oz+coAJcuTnM1GkPqcS5Lk+1NQhUY/RX8m37vpe/eDqLZOHD1A0EkEsG2bRKJBAKJEBCLxXAcZwCyLCv8F67POq8Ah+Fi9eWL13f/AFb41aOFu4AaAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/img/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/img/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/img/reload.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMiSURBVDiNbVJNbFRlFD33e++V+a0zbQdbqLYKhhKmoaIzjX/RmEY3xGBYqLxEjJCB8LNhBxsMTQwRdGGi4AOjMUwlmDQBN/wEIZLUwqtx0dCS1NLGAUY7tB3ozLTz3vu+66LzkllwkpvcxT0nJ+dcYmb4SGWyzzTo2hEQ3vSkatWEmCfCuOPKEwAu2Jbp1t0eBHCCfIF0JrtF08RAT9cqfV1ns9HWFAGYUShWMDJ2v3xn+qEnFe+2LfNselc2w4zvAMSImZHKZNcbuhjZ2tcdiseC0InQHA0gHNARDRkIGgIzxUUczw5XCsWKHQ019D4uVw1mNBEz49U9Z0/1rGv7NBgwxK3RHKquB0PX5JrVscW+9PPh3vWtpAmCEIRfrk2ot15sFwe+vuo4rmzRAYCZP7wzXRCup1gxLzLjM8eVZ8anZ5MT9+aPXu9o7tq3dVMoEQvh43e7RC0GAqAEAEipwlXH85IvPPuDlOoRgEHbMvO2ZV7549uPXhqdLOzdfewS7j8sYXqmDKkYAAMACyyvqumpSH9jJPBVZ/vKbgBTdWnruiZ2bnsn6XY+HUWicQU0Qb4D1mt38V8/37yAJ+O0J9VrF4cnq1ftqSXfvOOqAAD2W6gCMGoErpvfAOwE4D5BWLct854v4J0/+r4GEJgZF+1/1Knzf+WkVD22ZRbrWYezY6tK5aWO30fGbwCI6QBABBAR7v5XhiEYJwf/JABf1JNTmWyYiO72blx7Jj8zlwKgAagKABBEBAAdiRBWt4Tx5f63qa0lcuyVPT/fSmWy6ZrG9hWGrufyswfyheLrmkaubZmuWHZAeFxxcWFoij2P0b4yisM73gh90Jd8ubU5ci29a8A1dPGNVDI+92gBTY1B0oQYBAD/kaj/x6Glidzc5KXhyc7Mlk3hRCyI7rUJeq49HiqWXfw7W4LjeBQJGjh3ebTiSXUEAJYfSTFN5OZO3zy5LfmgsPBJ//c35o8P3CwN384jP1tG1ZUQRCjMl+S5y6OLUqmMbZljAOC38BOA7bZlci0wA8B7DYa2VzFvkFLFDV2bIcJQ1ZGHbMv82w/3fy5VdmoTZczGAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/input.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQp7Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBNb2R1bGUgOiBKTUZpbGVQaWNrZXIgKGMpIDIwMTAtMjAxMiBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKICAgICAgICAgICBhIGZpbGVwaWNrZXIgdG9vbCBmb3IgQ01TIE1hZGUgU2ltcGxlCiAgICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXIKICAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscAogICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpczogY21zbWFkZXNpbXBsZS5vcmcKICBWZXJzaW9uOiAxLjMuMgogIEZpbGUgICA6IGlucHV0LnRwbAogIExpY2Vuc2U6IEdQTAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0KCjxzcGFuIGNsYXNzPSJKTUZQX2lucHV0X3dyYXBwZXIgSk1GUF97JGptZnBfbWVkaWFfdHlwZX0gSk1GUF97JGptZnBfbW9kZX0iIGlkPSJKTUZQX3skam1mcF9jc3NpZH0iPgp7bGl0ZXJhbH0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Kam1mcF9vbmxvYWQucHVzaChmdW5jdGlvbigpewoJSk1GUC5yZWdpc3RlcklucHV0KHt7L2xpdGVyYWx9CgkJaWQ6ICd7JGptZnBfY3NzaWR9JywKCQltb2R1bGVJZDogJ3skam1mcF9pZH0nLAoJCWRpcjoneyRqbWZwX2Rpcn0nLAoJCW1vZGU6J3skam1mcF9tb2RlfScsCgkJYnJvd3NlVXJsOid7aWYgJGptZnBfbW9kZSA9PSAiZHJvcGRvd24ifXskam1mcF9yZWxvYWRfZHJvcGRvd25fdXJsfXtlbHNlfXskam1mcF9icm93c2VfdXJsfXsvaWZ9J3tpZiAkam1mcF91cGxvYWRfdXJsfSwKCQl1cGxvYWRVcmw6J3skam1mcF91cGxvYWRfdXJsfSd7L2lmfQoJe2xpdGVyYWx9fSk7Cn0pOwo8L3NjcmlwdD4Key9saXRlcmFsfQp7aWYgJGptZnBfcHJvbXB0fQoJPGxhYmVsIGZvcj0ieyRqbWZwX2Nzc2lkfSI+eyRqbWZwX3Byb21wdH06PC9sYWJlbD4mbmJzcDsKey9pZn0KPHNwYW4gaWQ9Inskam1mcF9jc3NpZH1fSk1GUF97JGptZnBfbW9kZX1fd3JhcHBlciIgY2xhc3M9IkpNRlBfeyRqbWZwX21vZGV9X3dyYXBwZXIiPgoJeyRqbWZwX2lucHV0fQo8L3NwYW4+CntpZiAkam1mcF9icm93c2VfbGlua30KCTxhIGhyZWY9IiMiIGNsYXNzPSJKTUZQX2xpbmsgSk1GUF9icm93c2UiIGlkPSJ7JGptZnBfY3NzaWR9X0pNRlBfYnJvd3NlIiBvbmNsaWNrPSJyZXR1cm4gZmFsc2U7Ij57JGptZnBfYnJvd3NlX3RleHR9PC9hPgp7L2lmfQp7aWYgJGptZnBfY2xlYXJfbGlua30KCSZuYnNwO3wmbmJzcDt7JGptZnBfY2xlYXJfbGlua30Key9pZn0Ke2lmICRqbWZwX3VwbG9hZF9saW5rfQoJJm5ic3A7fCZuYnNwOwoJPGEgaHJlZj0iIyIgY2xhc3M9IkpNRlBfbGluayBKTUZQX3VwbG9hZCIgaWQ9Inskam1mcF9jc3NpZH1fSk1GUF91cGxvYWQiIG9uY2xpY2s9InJldHVybiBmYWxzZTsiPnskam1mcF91cGxvYWRfdGV4dH08L2E+CnsvaWZ9CntpZiAkam1mcF9tb2RlID09ICdkcm9wZG93bicgJiYgJGptZnBfcmVsb2FkX2Ryb3Bkb3duX2xpbmt9CgkmbmJzcDt8Jm5ic3A7eyRqbWZwX3JlbG9hZF9kcm9wZG93bl9saW5rfQp7L2lmfQoKJm5ic3A7PGltZyBjbGFzcz0iSk1GUF9sb2FkaW5nX2ltZyIgc3JjPSJ7cm9vdF91cmx9L21vZHVsZXMvSk1GaWxlUGlja2VyL3RlbXBsYXRlcy90aGVtZXMvRGVmYXVsdC1BSkFYL2ltZy9sb2FkaW5nLmdpZiIgYWx0PSIiIC8+Cgp7aWYgJGptZnBfbWVkaWFfdHlwZSA9PSAnaW1hZ2UnfQoJPGJyIC8+Cgk8c3BhbiBpZD0ieyRqbWZwX2Nzc2lkfV9KTUZQX3RodW1ibmFpbF93cmFwcGVyIiBjbGFzcz0iSk1GUF90aHVtYm5haWxfd3JhcHBlciI+CgkJe2lmICRqbWZwX3ZhbHVlICE9ICcnfQoJCTxpbWcgY2xhc3M9IkpNRlBfdGh1bWJuYWlsIiBpZD0ieyRqbWZwX2Nzc2lkfV9KTUZQX3RodW1ibmFpbCIgc3JjPSJ7JGptZnBfdGh1bWJ1cmx9IiB3aWR0aD0ieyRqbWZwX3RodW1iX3dpZHRofSIgaGVpZ2h0PSJ7JGptZnBfdGh1bWJfaGVpZ2h0fSIgYWx0PSJ7JGptZnBfdmFsdWV9IiB0aXRsZT0ieyRqbWZwX3ZhbHVlfSIgLz4KCQl7L2lmfQoJPC9zcGFuPgp7L2lmfQo8L3NwYW4+Cnsvc3RyaXB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/js/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/js/JMFP.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8KLy8gTW9kdWxlIDogSk1GaWxlUGlja2VyIChjKSAyMDEwLTIwMTIgYnkgR2VvcmcgQnVzY2ggKGdlb3JnLmJ1c2NoQGdteC5uZXQpCi8vICAgICAgICAgIGEgZmlsZXBpY2tlciB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKLy8gICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGRldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYmZpbGVwaWNrZXIKLy8gICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTIgYnkgVGVkIEt1bHAKLy8gICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzOiBjbXNtYWRlc2ltcGxlLm9yZwovLyBWZXJzaW9uOiAxLjMuMwovLyBGaWxlICAgOiBKTUZQLmpzCi8vIExpY2Vuc2U6IEdQTAovLwovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSk1GUCA9IHsKCW9wdGlvbnM6IHsKCQl0aXRsZTonRmlsZVBpY2tlcicsCgkJbW9kdWxlSWQ6JycsCgkJZHJhZ2dhYmxlOnRydWUsCgkJZHJhZ0F4aXM6J3gnLAoJCXJlc2l6YWJsZTp0cnVlLAoJCXJlc2l6YWJsZUhhbmRsZXM6J2UsdycsCgkJY2xvc2VUZXh0OidDbG9zZScsCgkJcmVsb2FkVGV4dDonUmVsb2FkJywKCQl0aHVtYm5haWxXaWR0aDo5NiwKCQl0aHVtYm5haWxIZWlnaHQ6OTYsCgkJcm9vdFVybDonLi4nLAoJCWZhZGVTcGVlZDozMDAsCgkJYW5pbWF0ZVNwZWVkOjMwMCwKCQlkZWJ1ZzpmYWxzZQoJfSwKCWZpbGVCcm93c2VyOiBmdW5jdGlvbigpewoJCXJldHVybiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0pNRlBfaGVhZGVyJykgIT0gbnVsbCk7Cgl9LAoJZ2V0Q3VycmVudFBpY2tlcklkOmZ1bmN0aW9uKCl7CgkJcmV0dXJuIEpNRlAudG1wLmN1cnJlbnRQaWNrZXJJZDsKCX0sCglnZXRDdXJyZW50RGlyOmZ1bmN0aW9uKCl7CgkJcmV0dXJuIEpNRlAudG1wLmN1cnJlbnREaXI7Cgl9LAoJZ2V0Q3VycmVudFVybDpmdW5jdGlvbigpewoJCXJldHVybiBKTUZQLnRtcC5jdXJyZW50VXJsOwoJfSwKCXRtcDogewoJCWN1cnJlbnRQaWNrZXJJZDonJywKCQljdXJyZW50RGlyOicnLAoJCWN1cnJlbnRVcmw6JycsCgkJaGVpZ2h0OjAsCgkJZmlsZUxpc3RIZWlnaHQ6MCwKCQlpbnB1dHM6e30sCgkJdGVtcGxhdGU6e30KCX0sCglpbnB1dHM6IHt9LAoJaW5pdDogZnVuY3Rpb24oKSB7CgkJaWYoYXJndW1lbnRzWzBdICYmIEpNRlAudHlwZU9mKGFyZ3VtZW50c1swXSkgPT0gJ29iamVjdCcpIHsKCQkJZm9yICh2YXIgaSBpbiBhcmd1bWVudHNbMF0pIHsKCQkJCWlmKHR5cGVvZiBKTUZQLm9wdGlvbnNbaV0gIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQlKTUZQLm9wdGlvbnNbaV0gPSBhcmd1bWVudHNbMF1baV07CgkJCQl9CgkJCQllbHNlIGlmIChpID09ICdpbnB1dHMnICYmIHR5cGVvZiBhcmd1bWVudHNbMF1baV0gPT0gJ29iamVjdCcpIHsKCQkJCQlmb3IodmFyIGogaW4gYXJndW1lbnRzWzBdW2ldKSB7CgkJCQkJCUpNRlAucmVnaXN0ZXJJbnB1dChhcmd1bWVudHNbMF1baV1bal0pOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0sCglyZWdpc3RlcklucHV0OiBmdW5jdGlvbihvYmopIHsKCQl2YXIgaW5wdXQgPSB7CgkJCWlkOicnLAoJCQltb2R1bGVJZDpKTUZQLm9wdGlvbnMubW9kdWxlSWQsCgkJCXRpdGxlOiBKTUZQLm9wdGlvbnMudGl0bGUsCgkJCWRyYWdnYWJsZTogSk1GUC5vcHRpb25zLmRyYWdnYWJsZSwKCQkJZHJhZ0F4aXM6IEpNRlAub3B0aW9ucy5kcmFnQXhpcywKCQkJcmVzaXphYmxlOiBKTUZQLm9wdGlvbnMucmVzaXphYmxlLAoJCQlyZXNpemFibGVIYW5kbGVzOiBKTUZQLm9wdGlvbnMucmVzaXphYmxlSGFuZGxlcywKCQkJY2xvc2VUZXh0OiBKTUZQLm9wdGlvbnMuY2xvc2VUZXh0LAoJCQlyZWxvYWRUZXh0OiBKTUZQLm9wdGlvbnMucmVsb2FkVGV4dCwKCQkJdGh1bWJuYWlsV2lkdGg6IEpNRlAub3B0aW9ucy50aHVtYm5haWxXaWR0aCwKCQkJdGh1bWJuYWlsSGVpZ2h0OiBKTUZQLm9wdGlvbnMudGh1bWJuYWlsSGVpZ2h0LAoJCQlhbmltYXRlU3BlZWQ6Sk1GUC5vcHRpb25zLmFuaW1hdGVTcGVlZCwKCQkJZmFkZVNwZWVkOkpNRlAub3B0aW9ucy5mYWRlU3BlZWQsCgkJCWRlYnVnOkpNRlAub3B0aW9ucy5kZWJ1ZywKCQkJZGlyOm51bGwsCgkJCW1vZGU6bnVsbCwKCQkJYnJvd3NlVXJsOicnLAoJCQl1cGxvYWRVcmw6JycKCQl9OwoJCWlmKHR5cGVvZiBvYmouaWQgIT0gJ3VuZGVmaW5lZCcgJiYgb2JqLmlkICE9ICcnKSB7CgkJCWZvciAodmFyIGkgaW4gb2JqKSB7CgkJCQlpZih0eXBlb2YgaW5wdXRbaV0gIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQlpbnB1dFtpXSA9IG9ialtpXTsKCQkJCX0KCQkJfQoJCQlKTUZQLmlucHV0c1tpbnB1dC5pZF0gPSBpbnB1dDsKCQkJSk1GUC5pbnB1dHNbaW5wdXQuaWRdLnRpdGxlYmFyID0gZnVuY3Rpb24oKSB7CgkJCQlyZXR1cm4gJzxzcGFuIGlkPSJKTUZQX2xvYWRpbmdfaW1nX3dyYXBwZXIiPjxpbWcgaWQ9IkpNRlBfbG9hZGluZ19pbWciIGFsdD0iIiBzcmM9IicrIEpNRlAub3B0aW9ucy5yb290VXJsICsnL21vZHVsZXMvSk1GaWxlUGlja2VyL3RlbXBsYXRlcy90aGVtZXMvRGVmYXVsdC1BSkFYL2ltZy9sb2FkaW5nLmdpZiIgLz48L3NwYW4+PGgzIGlkPSJKTUZQX3RpdGxlIj4nICsgdGhpcy50aXRsZSArICc8L2gzPjxkaXYgaWQ9IkpNRlBfbWVudSI+PGEgaWQ9IkpNRlBfcmVsb2FkX2RpciIgdGl0bGU9IicgKyB0aGlzLnJlbG9hZFRleHQgKyAnIiBocmVmPSIjIiBvbmNsaWNrPSJKTUZQLnJlbG9hZERpcigpO3JldHVybiBmYWxzZTsiPicrIHRoaXMucmVsb2FkVGV4dCArJzwvYT48YSBpZD0iSk1GUF9jbG9zZSIgdGl0bGU9IicgKyB0aGlzLmNsb3NlVGV4dCArICciIGhyZWY9IiMiIG9uY2xpY2s9IkpNRlAuY2xvc2UoSk1GUC5nZXRDdXJyZW50UGlja2VySWQoKSk7cmV0dXJuIGZhbHNlOyI+W1hdPC9hPjxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4nOwoJCQl9OwoJCX0KCX0sCglnZXRUZW1wbGF0ZTogZnVuY3Rpb24ocGlja2VySWQpIHsKCQkKCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJYWxlcnQoJ2NyZWF0aW5nIHRlbXBsYXRlIC4uLiAnKTsKCQl9CgkJCgkJaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0pNRlBfY29udGVudCcpICE9IG51bGwpIHsKCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uaHRtbChKTUZQLmlucHV0c1twaWNrZXJJZF0udGl0bGViYXIoKSk7CgkJCQoJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCWFsZXJ0KCdjcmVhdGVkIHRpdGxlYmFyJyk7CgkJCX0KCQkJCgkJfQoJCWVsc2UgewoJCQlqUXVlcnkoJ2JvZHknKS5hcHBlbmQoJzxkaXYgaWQ9IkpNRlBfd3JhcHBlciIgY2xhc3M9InBhZ2Vjb250YWluZXIiPjxkaXYgaWQ9IkpNRlBfYmFja2dyb3VuZCIgb25jbGljaz0iSk1GUC5jbG9zZShKTUZQLmdldEN1cnJlbnRQaWNrZXJJZCgpKSI+PC9kaXY+PGRpdiBpZD0iSk1GUCI+PGRpdiBpZD0iSk1GUF90aXRsZWJhciI+JyArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS50aXRsZWJhcigpICsgJzwvZGl2PjxkaXYgaWQ9IkpNRlBfY29udGVudCI+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7CgkJCQoJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCWFsZXJ0KCdhcHBlbmRlZCB3cmFwcGVyIHRvIGJvZHknKTsKCQkJfQoJCQkKCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3dyYXBwZXInXSAgICAgPSBqUXVlcnkoJyNKTUZQX3dyYXBwZXInKTsKCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10gICAgICAgICAgICAgPSBqUXVlcnkoIiNKTUZQIik7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9jb250ZW50J10gICAgID0galF1ZXJ5KCIjSk1GUF9jb250ZW50Iik7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddICAgID0galF1ZXJ5KCIjSk1GUF90aXRsZWJhciIpOwoJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfYmFja2dyb3VuZCddICA9IGpRdWVyeSgnI0pNRlBfYmFja2dyb3VuZCcpOwoJCX0KCQkKCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfbG9hZGluZ19pbWcnXSA9IGpRdWVyeSgiI0pNRlBfbG9hZGluZ19pbWciKTsKCQkKCQlqUXVlcnkod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKSB7CgkJCUpNRlAucmVzaXplKCk7CgkJfSk7CgkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3dyYXBwZXInXS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpLmNzcygnei1pbmRleCcsOTk5OSkuY3NzKCdvcGFjaXR5JywxKTsKCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZHJhZ2dhYmxlKSB7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmRyYWdnYWJsZSh7aGFuZGxlOiAnI0pNRlBfdGl0bGViYXInLCBjb250YWlubWVudDogInBhcmVudCIsIGN1cnNvcjogIm1vdmUiLCBheGlzOkpNRlAuaW5wdXRzW3BpY2tlcklkXS5kcmFnQXhpc30pOwoJCX0KCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0ucmVzaXphYmxlKSB7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLnJlc2l6YWJsZSh7aGFuZGxlczogSk1GUC5pbnB1dHNbcGlja2VySWRdLnJlc2l6YWJsZUhhbmRsZXN9KTsKCQl9CgkJcmV0dXJuOwoJfSwKCXJlbG9hZERpcjogZnVuY3Rpb24oKSB7CgkJSk1GUC5sb2FkRGlyKEpNRlAudG1wLmN1cnJlbnRVcmwsSk1GUC50bXAuY3VycmVudFBpY2tlcklkLEpNRlAudG1wLmN1cnJlbnREaXIpOwoJfSwKCXRvZ2dsZVRodW1ibmFpbDogZnVuY3Rpb24gKHBpY2tlcklkLCB1cmwsIHRpdGxlLCBhbHQpIHsKCQlpZih0eXBlb2YgSk1GUC5pbnB1dHNbcGlja2VySWRdID09ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAucmVnaXN0ZXJJbnB1dCh7aWQ6cGlja2VySWR9KTsKCQl9CgkJdmFyIHRodW1ibmFpbFdyYXBwZXIgPSBqUXVlcnkoJyMnICsgcGlja2VySWQgKyAnX0pNRlBfdGh1bWJuYWlsX3dyYXBwZXInKTsKCQlpZih0eXBlb2YgdGh1bWJuYWlsV3JhcHBlci5hdHRyKCdpZCcpID09ICd1bmRlZmluZWQnKSB7CgkJCXJldHVybjsKCQl9CgkJdGh1bWJuYWlsV3JhcHBlci5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwgMCwgZnVuY3Rpb24gKCkgewoJCQl0aHVtYm5haWxXcmFwcGVyLmh0bWwoJycpOwoJCQlpZih1cmwgIT0gJycpIHsKCQkJCXZhciBhbHRUeHQgICAgPSAnJywKCQkJCQl0aXRsZVR4dCAgPSAnJywKCQkJCQlhbHRBdHRyICAgPSAnJywKCQkJCQl0aXRsZUF0dHIgPSAnJzsKCQkJCWlmKHR5cGVvZih0aXRsZSkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQl0aXRsZVR4dCA9IHRpdGxlOwoJCQkJfQoJCQkJaWYodHlwZW9mKGFsdCkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQlhbHRUeHQgPSBhbHQ7CgkJCQl9CgkJCQlpZih0aXRsZVR4dCAhPSAnJykgewoJCQkJCXRpdGxlQXR0ciA9ICcgdGl0bGU9IicgKyB0aXRsZVR4dCArICciJzsKCQkJCX0KCQkJCWlmKGFsdFR4dCAhPSAnJykgewoJCQkJCWFsdEF0dHIgPSAnIGFsdD0iJyArIGFsdFR4dCArICciJzsKCQkJCX0KCQkJCXRodW1ibmFpbFdyYXBwZXIuaHRtbCgnPGltZyBjbGFzcz0iSk1GUF90aHVtYm5haWwiIGlkPSInICsgcGlja2VySWQgKyAnX0pNRlBfdGh1bWJuYWlsIiBzcmM9IicgKyB1cmwgKyAnIicgKyB0aXRsZUF0dHIgKyBhbHRBdHRyICsgJyAvPicpLm9uSW1hZ2VzTG9hZCh7CgkJCQkJY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3Q6dHJ1ZSwKCQkJCQlhbGw6IGZ1bmN0aW9uKGVsbSkgewoJCQkJCQl2YXIgdGh1bWJuYWlsU2l6ZSA9IEpNRlAuZ2V0VGh1bWJuYWlsU2l6ZShwaWNrZXJJZCk7CgkJCQkJCS8valF1ZXJ5KCcjJyArIHBpY2tlcklkICsgJ19KTUZQX3RodW1ibmFpbCcpLmF0dHIoJ3dpZHRoJyx0aHVtYm5haWxTaXplWzBdKS5hdHRyKCdoZWlnaHQnLHRodW1ibmFpbFNpemVbMV0pOwoJCQkJCQl2YXIgaW1nICAgICAgICAgICAgICAgPSBqUXVlcnkoJyMnICsgdGh1bWJuYWlsV3JhcHBlci5hdHRyKCdpZCcpLnJlcGxhY2UoJ193cmFwcGVyJywgJycpKSwKCQkJCQkJCS8vdGh1bWJIZWlnaHQgICAgICAgPSBwYXJzZUludChpbWcuaGVpZ2h0KCkpLAoJCQkJCQkJdGh1bWJIZWlnaHQgICAgICAgPSBKTUZQLmlucHV0c1twaWNrZXJJZF0udGh1bWJuYWlsSGVpZ2h0LAoJCQkJCQkJdGh1bWJNYXJnaW5Ub3AgICAgPSBwYXJzZUludChpbWcuY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSksCgkJCQkJCQl0aHVtYk1hcmdpbkJvdHRvbSA9IHBhcnNlSW50KGltZy5jc3MoJ21hcmdpbi1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpKSwKCQkJCQkJCXRodW1iUGFkZGluZ1RvcCAgID0gcGFyc2VJbnQoaW1nLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpKSwKCQkJCQkJCXRodW1iUGFkZGluQm90dG9tID0gcGFyc2VJbnQoaW1nLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpKSwKCQkJCQkJCXRodW1iQm9yZGVyVG9wICAgID0gcGFyc2VJbnQoaW1nLmNzcygnYm9yZGVyLXRvcC13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJykpLAoJCQkJCQkJdGh1bWJCb3JkZXJCb3R0b20gPSBwYXJzZUludChpbWcuY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSksCgkJCQkJCQluZXdIZWlnaHQgICAgICAgICA9IGV2YWwoKGlzTmFOKHRodW1iSGVpZ2h0KSB8fCB0eXBlb2YgdGh1bWJIZWlnaHQgPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJIZWlnaHQpICsgKGlzTmFOKHRodW1iTWFyZ2luVG9wKSB8fCB0eXBlb2YgdGh1bWJNYXJnaW5Ub3AgPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJNYXJnaW5Ub3ApICsgKGlzTmFOKHRodW1iTWFyZ2luQm90dG9tKSB8fCB0eXBlb2YgdGh1bWJNYXJnaW5Cb3R0b20gPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJNYXJnaW5Cb3R0b20pICsgKGlzTmFOKHRodW1iUGFkZGluZ1RvcCkgfHwgdHlwZW9mIHRodW1iUGFkZGluZ1RvcCA9PSAndW5kZWZpbmVkJyA/IDAgOiB0aHVtYlBhZGRpbmdUb3ApICsgKGlzTmFOKHRodW1iUGFkZGluQm90dG9tKSB8fCB0eXBlb2YgdGh1bWJQYWRkaW5Cb3R0b20gPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJQYWRkaW5Cb3R0b20pICsgKGlzTmFOKHRodW1iQm9yZGVyVG9wKSB8fCB0eXBlb2YgdGh1bWJCb3JkZXJUb3AgPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJCb3JkZXJUb3ApICsgKGlzTmFOKHRodW1iQm9yZGVyQm90dG9tKSB8fCB0eXBlb2YgdGh1bWJCb3JkZXJCb3R0b20gPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGh1bWJCb3JkZXJCb3R0b20pKTsKCQkJCQkJdGh1bWJuYWlsV3JhcHBlci5hbmltYXRlKHtoZWlnaHQ6bmV3SGVpZ2h0KydweCd9LCBKTUZQLmlucHV0c1twaWNrZXJJZF0uYW5pbWF0ZVNwZWVkLCAnc3dpbmcnLCBmdW5jdGlvbigpIHsKCQkJCQkJCXRodW1ibmFpbFdyYXBwZXIuZmFkZVRvKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5mYWRlU3BlZWQsIDEpOwoJCQkJCQl9KTsKCQkJCQl9CgkJCQl9KTsKCQkJfQoJCQllbHNlIHsKCQkJCXRodW1ibmFpbFdyYXBwZXIuYW5pbWF0ZSh7aGVpZ2h0OicwcHgnfSk7CgkJCX0KCQl9KTsKCX0sCglnZXRUaHVtYm5haWxTaXplOiBmdW5jdGlvbihwaWNrZXJJZCkgewoJCXZhciB0aHVtYkltZyAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHBpY2tlcklkICsgJ19KTUZQX3RodW1ibmFpbCcpLAoJCQlvcmlnV2lkdGggICA9IHRodW1iSW1nLndpZHRoLAoJCQlvcmlnSGVpZ2h0ICA9IHRodW1iSW1nLmhlaWdodCwKCQkJYXNwZWN0cmF0aW8gPSBldmFsKG9yaWdXaWR0aCAvIG9yaWdIZWlnaHQpLAoJCQluZXdXaWR0aCAgICA9IE1hdGguZmxvb3IoSk1GUC5pbnB1dHNbcGlja2VySWRdLnRodW1ibmFpbFdpZHRoKSwKCQkJbmV3SGVpZ2h0ICAgPSBNYXRoLmZsb29yKEpNRlAuaW5wdXRzW3BpY2tlcklkXS50aHVtYm5haWxIZWlnaHQpOwoJCQoJCWlmKG5ld1dpZHRoIDw9IDApIHsKCQkJbmV3V2lkdGggPSA5NjsKCQl9CgkJaWYobmV3SGVpZ2h0IDw9IDApIHsKCQkJbmV3SGVpZ2h0ID0gOTY7CgkJfQoJCWlmKG5ld1dpZHRoID4gb3JpZ1dpZHRoKSB7CgkJCW5ld1dpZHRoID0gb3JpZ1dpZHRoOwoJCX0KCQlpZihuZXdIZWlnaHQgPiBvcmlnSGVpZ2h0KSB7CgkJCW5ld0hlaWdodCA9IG9yaWdIZWlnaHQ7CgkJfQoJCQoJCXZhciBuZXdBc3BlY3RyYXRpbyA9IGV2YWwobmV3V2lkdGggLyBuZXdIZWlnaHQpOwoJCQoJCWlmKGFzcGVjdHJhdGlvID4gMSAmJiBuZXdBc3BlY3RyYXRpbyA8IDEpIHsgLy8gbGFuZHNjYXBlIHRvIHBvcnRyYWl0CgkJCXZhciBfdG1wID0gTWF0aC5mbG9vcihldmFsKG5ld1dpZHRoIC8gYXNwZWN0cmF0aW8pKTsKCQkJaWYoX3RtcCA+IDAgJiYgX3RtcCA8PSBuZXdIZWlnaHQpIHsKCQkJCW5ld0hlaWdodCA9IF90bXA7CgkJCX0KCQl9CgkJZWxzZSBpZihhc3BlY3RyYXRpbyA8IDEgJiYgbmV3QXNwZWN0cmF0aW8gPiAxKSB7IC8vIHBvcnRyYWl0IHRvIGxhbmRzY2FwZQoJCQl2YXIgX3RtcCA9IE1hdGguZmxvb3IoZXZhbChuZXdIZWlnaHQgKiBhc3BlY3RyYXRpbykpOwoJCQlpZihfdG1wID4gMCAmJiBfdG1wIDw9IG5ld1dpZHRoKSB7CgkJCQluZXdXaWR0aCA9IF90bXA7CgkJCX0KCQl9CgkJZWxzZSB7CgkJCWlmKG5ld0FzcGVjdHJhdGlvIDwgYXNwZWN0cmF0aW8pIHsKCQkJCXZhciBfdG1wID0gTWF0aC5mbG9vcihldmFsKG5ld1dpZHRoIC8gYXNwZWN0cmF0aW8pKTsKCQkJCWlmKF90bXAgPiAwICYmIF90bXAgPD0gbmV3SGVpZ2h0KSB7CgkJCQkJbmV3SGVpZ2h0ID0gX3RtcDsKCQkJCX0KCQkJfQoJCQllbHNlIGlmKG5ld0FzcGVjdHJhdGlvID4gYXNwZWN0cmF0aW8pIHsKCQkJCXZhciBfdG1wID0gTWF0aC5mbG9vcihldmFsKG5ld0hlaWdodCAqIGFzcGVjdHJhdGlvKSk7CgkJCQlpZihfdG1wID4gMCAmJiBfdG1wIDw9IG5ld1dpZHRoKSB7CgkJCQkJbmV3V2lkdGggPSBfdG1wOwoJCQkJfQoJCQl9CgkJfQoJCWlmKG5ld1dpZHRoIDwgMSkgewoJCQluZXdXaWR0aCA9IDE7CgkJfQoJCWlmKG5ld0hlaWdodCA8IDEpIHsKCQkJbmV3SGVpZ2h0ID0gMTsKCQl9CgkJcmV0dXJuIG5ldyBBcnJheShuZXdXaWR0aCwgbmV3SGVpZ2h0KTsKCX0sCgljbG9zZTogZnVuY3Rpb24gKHBpY2tlcklkKSB7CgkJalF1ZXJ5KHdpbmRvdykudW5iaW5kKCdyZXNpemUnKTsKCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfbG9hZGluZ19pbWcnXS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7CgkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3dyYXBwZXInXS5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwwLGZ1bmN0aW9uKCl7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF93cmFwcGVyJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpLmNzcygnei1pbmRleCcsLTk5OTkpOwoJCQlpZihKTUZQLmllVmVyc2lvbigpIDwgOCkgewoJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3dyYXBwZXInXS5yZW1vdmUoKTsKCQkJfQoJCQllbHNlIHsKCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9iYWNrZ3JvdW5kJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpLmNzcygnb3BhY2l0eScsMCk7CgkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmh0bWwoJycpLmNzcygnb3BhY2l0eScsMCk7CgkJCQl2YXIgYXR0cmlicyA9IHsKCQkJCQl0aXRsZUJhckhlaWdodDogICAgICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmhlaWdodCgpLAoJCQkJCXRpdGxlQmFyUGFkZGluZ1RvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdwYWRkaW5nLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJdGl0bGVCYXJQYWRkaW5nQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQl0aXRsZUJhck1hcmdpblRvcDogICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygnbWFyZ2luLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJdGl0bGVCYXJNYXJnaW5Cb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ21hcmdpbi1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCXRpdGxlQmFyQm9yZGVyVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQl0aXRsZUJhckJvcmRlckJvdHRvbTogIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygnYm9yZGVyLWJvdHRvbS13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJam1mcFBhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBQYWRkaW5nQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwTWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwTWFyZ2luQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdtYXJnaW4tYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwQm9yZGVyVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwQm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKQoJCQkJfQoJCQkJCgkJCQl2YXIgam1mcEhlaWdodCA9IDA7CgkJCQlmb3IodmFyIGkgaW4gYXR0cmlicykgewoJCQkJCWF0dHJpYnNbaV0gPSBwYXJzZUludChhdHRyaWJzW2ldKTsKCQkJCQlpZih0eXBlb2YgYXR0cmlic1tpXSA9PSAndW5kZWZpbmVkJyB8fCBhdHRyaWJzW2ldID09ICd1bmRlZmluZWQnIHx8IGlzTmFOKGF0dHJpYnNbaV0pKSB7CgkJCQkJCWF0dHJpYnNbaV0gPSAwOwoJCQkJCX0KCQkJCQkKCQkJCQlqbWZwSGVpZ2h0ID0gZXZhbChqbWZwSGVpZ2h0ICsgYXR0cmlic1tpXSk7CgkJCQl9CgkJCQkKCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnaGVpZ2h0Jywgam1mcEhlaWdodCArICdweCcpLmNzcygnZGlzcGxheScsJ25vbmUnKS5jc3MoJ29wYWNpdHknLDApOwoJCQkJCgkJCX0KCQkJSk1GUC50bXAuY3VycmVudFVybCAgICAgID0gJyc7CgkJCUpNRlAudG1wLmN1cnJlbnREaXIgICAgICA9ICcnOwoJCQlKTUZQLnRtcC5jdXJyZW50UGlja2VySWQgPSAnJzsKCQkJSk1GUC50bXAuaGVpZ2h0ICAgICAgICAgID0gMDsKCQkJSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQgID0gMDsKCQl9KTsKCQlyZXR1cm4gZmFsc2U7Cgl9LAoJbG9hZERpcjogZnVuY3Rpb24gKHVybCwgcGlja2VySWQpIHsKCQlpZih0eXBlb2YgSk1GUC5pbnB1dHNbcGlja2VySWRdID09ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAucmVnaXN0ZXJJbnB1dCh7aWQ6cGlja2VySWR9KTsKCQl9CgkJdmFyIGRpcjsKCQlpZih0eXBlb2YgYXJndW1lbnRzWzJdICE9ICd1bmRlZmluZWQnKSB7CgkJCWRpciA9IGFyZ3VtZW50c1syXTsKCQl9CgkJaWYoSk1GUC5maWxlQnJvd3NlcigpID09IGZhbHNlKSB7CgkJCQoJCQkvKioKCQkJICogb3BlbiBmaWxlcGlja2VyCgkJCSAqLwoJCQkKCQkJSk1GUC5nZXRUZW1wbGF0ZShwaWNrZXJJZCk7CgkJCQoJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfYmFja2dyb3VuZCddLmNzcygnZGlzcGxheScsJ2Jsb2NrJykuZmFkZVRvKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5mYWRlU3BlZWQsIDAuNjUsIGZ1bmN0aW9uICgpIHsKCQkJCQoJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJYWxlcnQoJ2ZhZGVkIGluIGJhY2tncm91bmQnKTsKCQkJCX0KCQkJCQoJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdkaXNwbGF5JywnYmxvY2snKS5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKSB7CgkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5JywnYmxvY2snKTsKCQkJCQkJCgkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCWFsZXJ0KCdsb2FkaW5nIGZyb20gc2VydmVyJyk7CgkJCQkJfQoJCQkJCQoJCQkJCWpRdWVyeS5nZXQodXJsICsgJyYnICsgSk1GUC5pbnB1dHNbcGlja2VySWRdLm1vZHVsZUlkICsgJ3Nob3d0ZW1wbGF0ZT1mYWxzZSYnICArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5tb2R1bGVJZCArICdkaXNhYmxlX3RoZW1lPTEmJyArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5tb2R1bGVJZCArICdhamF4PTEnLCBmdW5jdGlvbihkYXRhKSB7CgkJCQkJCQoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCWFsZXJ0KCdjb250ZW50IGxvYWRlZCcpOwoJCQkJCQl9CgkJCQkJCQoJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2hlaWdodCcsSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uaGVpZ2h0KCkgKyAncHgnKTsKCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5odG1sKGRhdGEpOwoJCQkJCQkKCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQlhbGVydCgncmVwbGFjZWQgY29udGVudCB3aXRoIGxvYWRlZCBkYXRhJyk7CgkJCQkJCX0KCQkJCQkJCgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9oZWFkZXInXSAgID0galF1ZXJ5KCIjSk1GUF9oZWFkZXIiKTsKCQkJCQkJSk1GUC5hamF4Rm9ybSgpOwoJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXSA9IGpRdWVyeSgiI0pNRlBfZmlsZWxpc3QiKTsKCQkJCQkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddICAgICAgICA9IGpRdWVyeSgnI0pNRlBfZmlsZW9wZXJhdGlvbnMnKTsKCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMnXSA9IGpRdWVyeSgnI0pNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zJyk7CgkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ21heC1oZWlnaHQnLCcnKS5jc3MoJ29wYWNpdHknLDEpOzsKCQkJCQkJCQoJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJYWxlcnQoJ3NldCBtYXgtaGVpZ2h0IHRvICIiICsgZmFkZWQgaW4gZmlsZWxpc3QnKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQkKCQkJCQkJaWYoalF1ZXJ5KCcjSk1GUF9jb250ZW50IGltZycpLmxlbmd0aCkgewoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5vbkltYWdlc0xvYWQoewoJCQkJCQkJCWNhbGxiYWNrSWZOb0ltYWdlc0V4aXN0OnRydWUsCgkJCQkJCQkJYWxsOiBmdW5jdGlvbiAoZWxtKSB7CgkJCQkJCQkJCQoJCQkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQkJCWFsZXJ0KCdpbWFnZXMgbG9hZGVkOyBKTUZQLnRtcC5oZWlnaHQ6JyArIEpNRlAudG1wLmhlaWdodCk7CgkJCQkJCQkJCX0KCQkJCQkJCQkJCgkJCQkJCQkJCUpNRlAuZ2V0SGVpZ2h0KCk7CgkJCQkJCQkJCWlmKHR5cGVvZiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ21heC1oZWlnaHQnLCBKTUZQLnRtcC5maWxlTGlzdEhlaWdodCArICdweCcpOwoJCQkJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJCQkJYWxlcnQoJ3NldCBtYXgtaGVpZ2h0IHRvICcgKyBKTUZQLnRtcC5maWxlTGlzdEhlaWdodCArICc7IEpNRlAudG1wLmhlaWdodDonICsgSk1GUC50bXAuaGVpZ2h0KTsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJfQoJCQkJCQkJCQlpZihKTUZQLmllVmVyc2lvbigpIDwgOCkgewoJCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7CgkJCQkJCQkJCX0KCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uYW5pbWF0ZSh7aGVpZ2h0OiBKTUZQLnRtcC5oZWlnaHQgKyAoSk1GUC50bXAuaGVpZ2h0ICE9ICdhdXRvJyA/ICdweCcgOiAnJyl9LCBKTUZQLmlucHV0c1twaWNrZXJJZF0uYW5pbWF0ZVNwZWVkICwgJ3N3aW5nJywgZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQkKCQkJCQkJCQkJCWlmKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5kZWJ1ZykgewoJCQkJCQkJCQkJCWFsZXJ0KCdhbmltYXRlZCBoZWlnaHQ7IEpNRlAudG1wLmhlaWdodDonICsgSk1GUC50bXAuaGVpZ2h0KTsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJCQoJCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpOwoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCWlmKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5kZWJ1ZykgewoJCQkJCQkJCQkJCQlhbGVydCgnZmFkZWQgaW4gY29udGVudCcpOwoJCQkJCQkJCQkJCX0KCQkJCQkJCQkJCQkKCQkJCQkJCQkJCX0pOwoJCQkJCQkJCQl9KTsKCQkJCQkJCQl9CgkJCQkJCQl9KTsKCQkJCQkJfQoJCQkJCQllbHNlIHsKCQkJCQkJCUpNRlAuZ2V0SGVpZ2h0KCk7CgkJCQkJCQlpZih0eXBlb2YgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ICsgJ3B4Jyk7CgkJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJCWFsZXJ0KCdzZXQgbWF4LWhlaWdodCB0byAnICsgSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJCWlmKEpNRlAuaWVWZXJzaW9uKCkgPCA4KSB7CgkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7CgkJCQkJCQl9CgkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5hbmltYXRlKHtoZWlnaHQ6IEpNRlAudG1wLmhlaWdodCArIChKTUZQLnRtcC5oZWlnaHQgIT0gJ2F1dG8nID8gJ3B4JyA6ICcnKX0sIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5hbmltYXRlU3BlZWQgLCAnc3dpbmcnLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkKCQkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQkJYWxlcnQoJ2FuaW1hdGVkIGhlaWdodCcpOwoJCQkJCQkJCX0KCQkJCQkJCQkKCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmZhZGVUbyhKTUZQLmlucHV0c1twaWNrZXJJZF0uZmFkZVNwZWVkLCAxLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpOwoJCQkJCQkJCQkKCQkJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJCQlhbGVydCgnZmFkZWQgaW4gY29udGVudCcpOwoJCQkJCQkJCQl9CgkJCQkJCQkJCQoJCQkJCQkJCX0pOwoJCQkJCQkJfSk7CgkJCQkJCX0KCQkJCQl9KTsKCQkJCX0pOwoJCQl9KTsKCQl9CgkJZWxzZSB7CgkJCQoJCQkvKioKCQkJICogbG9hZGluZyBzZWxlY3RlZCBkaXIKCQkJICovCgkJCQoJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfbG9hZGluZ19pbWcnXS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOwoJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCWFsZXJ0KCdsb2FkaW5nIGZyb20gc2VydmVyJyk7CgkJCX0KCQkJCgkJCWpRdWVyeS5nZXQodXJsICsgJyYnICsgSk1GUC5pbnB1dHNbcGlja2VySWRdLm1vZHVsZUlkICsgJ3Nob3d0ZW1wbGF0ZT1mYWxzZSYnICArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5tb2R1bGVJZCArICdkaXNhYmxlX3RoZW1lPTEmJyArIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5tb2R1bGVJZCArICdhamF4PTEnLCBmdW5jdGlvbihkYXRhKSB7CgkJCQkJCgkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQlhbGVydCgnY29udGVudCBsb2FkZWQnKTsKCQkJCX0KCQkJCQoJCQkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQl2YXIgZmFkZUlkID0gJyNKTUZQX2ZpbGVsaXN0JzsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCXZhciBmYWRlSWQgPSAnI0pNRlBfY29udGVudCc7CgkJCQl9CgkJCQlKTUZQLnRtcC50ZW1wbGF0ZVtmYWRlSWRdLmZhZGVUbyhKTUZQLmlucHV0c1twaWNrZXJJZF0uZmFkZVNwZWVkLCAwLCBmdW5jdGlvbigpIHsKCQkJCQkKCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJYWxlcnQoJ2ZhZGVkIG91dCBmaWxlbGlzdCcpOwoJCQkJCX0KCQkJCQkKCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2hlaWdodCcsSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uaGVpZ2h0KCkgKyAncHgnKTsKCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmh0bWwoZGF0YSk7CgkJCQkJCgkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCWFsZXJ0KCdyZXBsYWNlZCBjb250ZW50IHdpdGggbG9hZGVkIGRhdGEnKTsKCQkJCQl9CgkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddICAgPSBqUXVlcnkoIiNKTUZQX2hlYWRlciIpOwoJCQkJCUpNRlAuYWpheEZvcm0oKTsKCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXSA9IGpRdWVyeSgiI0pNRlBfZmlsZWxpc3QiKTsKCQkJCQlpZih0eXBlb2YgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZW9wZXJhdGlvbnMnXSAgICAgICAgPSBqUXVlcnkoJyNKTUZQX2ZpbGVvcGVyYXRpb25zJyk7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMnXSA9IGpRdWVyeSgnI0pNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zJyk7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsJycpOwoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCWFsZXJ0KCdzZXQgbWF4LWhlaWdodCB0byAiIicpOwoJCQkJCQl9CgkJCQkJfQoJCQkJCWlmKGpRdWVyeSgnI0pNRlBfY29udGVudCBpbWcnKS5sZW5ndGgpIHsKCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5vbkltYWdlc0xvYWQoewoJCQkJCQkJY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3Q6dHJ1ZSwKCQkJCQkJCWFsbDogZnVuY3Rpb24gKGVsbSkgewoJCQkJCQkJCQoJCQkJCQkJCWlmKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5kZWJ1ZykgewoJCQkJCQkJCQlhbGVydCgnaW1hZ2VzIGxvYWRlZCcpOwoJCQkJCQkJCX0KCQkJCQkJCQkKCQkJCQkJCQlKTUZQLmdldEhlaWdodCgpOwoJCQkJCQkJCWlmKHR5cGVvZiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ICsgJ3B4Jyk7CgkJCQkJCQkJCQoJCQkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQkJCWFsZXJ0KCdzZXQgbWF4LWhlaWdodCB0byAnICsgSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpOwoJCQkJCQkJCQl9CgkJCQkJCQkJfQoJCQkJCQkJCWlmKEpNRlAuaWVWZXJzaW9uKCkgPCA4KSB7CgkJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnaGVpZ2h0JywnYXV0bycpOwoJCQkJCQkJCX0KCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5hbmltYXRlKHtoZWlnaHQ6IEpNRlAudG1wLmhlaWdodCArIChKTUZQLnRtcC5oZWlnaHQgIT0gJ2F1dG8nID8gJ3B4JyA6ICcnKX0sIEpNRlAuaW5wdXRzW3BpY2tlcklkXS5hbmltYXRlU3BlZWQgLCAnc3dpbmcnLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCQoJCQkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQkJCWFsZXJ0KCdhbmltYXRlZCBoZWlnaHQnKTsKCQkJCQkJCQkJfQoJCQkJCQkJCQkKCQkJCQkJCQkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCQkJCXZhciBmYWRlSWQgPSAnI0pNRlBfZmlsZWxpc3QnOwoJCQkJCQkJCQl9CgkJCQkJCQkJCWVsc2UgewoJCQkJCQkJCQkJdmFyIGZhZGVJZCA9ICcjSk1GUF9jb250ZW50JzsKCQkJCQkJCQkJfQoJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVtmYWRlSWRdLmZhZGVUbyhKTUZQLmlucHV0c1twaWNrZXJJZF0uZmFkZVNwZWVkLCAxLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9sb2FkaW5nX2ltZyddLmNzcygnZGlzcGxheScsJ25vbmUnKTsKCQkJCQkJCQkJCQoJCQkJCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmRlYnVnKSB7CgkJCQkJCQkJCQkJYWxlcnQoJ2ZhZGVkIGluIGZpbGVsaXN0Jyk7CgkJCQkJCQkJCQl9CgkJCQkJCQkJCQkKCQkJCQkJCQkJfSk7CgkJCQkJCQkJfSk7CgkJCQkJCQl9CgkJCQkJCX0pOwoJCQkJCX0KCQkJCQllbHNlIHsKCQkJCQkJSk1GUC5nZXRIZWlnaHQoKTsKCQkJCQkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ICsgJ3B4Jyk7CgkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQlhbGVydCgnc2V0IG1heC1oZWlnaHQgdG8gJyArIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0KTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlpZihKTUZQLmllVmVyc2lvbigpIDwgOCkgewoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7CgkJCQkJCX0KCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uYW5pbWF0ZSh7aGVpZ2h0OiBKTUZQLnRtcC5oZWlnaHQgKyAoSk1GUC50bXAuaGVpZ2h0ICE9ICdhdXRvJyA/ICdweCcgOiAnJyl9LCBKTUZQLmlucHV0c1twaWNrZXJJZF0uYW5pbWF0ZVNwZWVkICwgJ3N3aW5nJywgZnVuY3Rpb24oKSB7CgkJCQkJCQkJCgkJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uZGVidWcpIHsKCQkJCQkJCQlhbGVydCgnYW5pbWF0ZWQgaGVpZ2h0Jyk7CgkJCQkJCQl9CgkJCQkJCQkKCQkJCQkJCWlmKHR5cGVvZiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCQkJCQkJdmFyIGZhZGVJZCA9ICcjSk1GUF9maWxlbGlzdCc7CgkJCQkJCQl9CgkJCQkJCQllbHNlIHsKCQkJCQkJCQl2YXIgZmFkZUlkID0gJyNKTUZQX2NvbnRlbnQnOwoJCQkJCQkJfQoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbZmFkZUlkXS5mYWRlVG8oSk1GUC5pbnB1dHNbcGlja2VySWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKSB7CgkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpOwoJCQkJCQkJCQoJCQkJCQkJCWlmKEpNRlAuaW5wdXRzW3BpY2tlcklkXS5kZWJ1ZykgewoJCQkJCQkJCQlhbGVydCgnZmFkZWQgaW4gZmlsZWxpc3QnKTsKCQkJCQkJCQl9CgkJCQkJCQkJCgkJCQkJCQl9KTsKCQkJCQkJfSk7CgkJCQkJfQoJCQkJfSk7CgkJCX0pOwoJCX0KCQlKTUZQLnRtcC5jdXJyZW50UGlja2VySWQgPSBwaWNrZXJJZDsKCQlKTUZQLnRtcC5jdXJyZW50RGlyICAgICAgPSBkaXI7CgkJSk1GUC50bXAuY3VycmVudFVybCAgICAgID0gdXJsOwoJCXJldHVybiBmYWxzZTsKCX0sCglnZXRIZWlnaHQ6IGZ1bmN0aW9uICgpIHsKCQkKCQl2YXIgZSA9ICdhbGwnOwoJCWlmKGFyZ3VtZW50c1swXSkgewoJCQllID0gYXJndW1lbnRzWzBdOwoJCX0KCQkKCQlpZihlID09ICdmaWxlb3BlcmF0aW9ucycgJiYgdHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJdmFyIGhlYWRlckhlaWdodCA9IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9oZWFkZXInXS5oZWlnaHQoKTsKCQkJCWF0dHJpYnMgPSB7CgkJCQkJZmlsZU9wZXJhdGlvbnNIZWlnaHQ6ICAgICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZW9wZXJhdGlvbnMnXS5oZWlnaHQoKSwKCQkJCQlmaWxlT3BlcmF0aW9uc1BhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWZpbGVPcGVyYXRpb25zUGFkZGluZ0JvdHRvbTogSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVvcGVyYXRpb25zJ10uY3NzKCdwYWRkaW5nLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJZmlsZU9wZXJhdGlvbnNNYXJnaW5Ub3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZW9wZXJhdGlvbnMnXS5jc3MoJ21hcmdpbi10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWZpbGVPcGVyYXRpb25zTWFyZ2luQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVvcGVyYXRpb25zJ10uY3NzKCdtYXJnaW4tYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlmaWxlT3BlcmF0aW9uc0JvcmRlclRvcDogICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddLmNzcygnYm9yZGVyLXRvcC13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJZmlsZU9wZXJhdGlvbnNCb3JkZXJCb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZW9wZXJhdGlvbnMnXS5jc3MoJ2JvcmRlci1ib3R0b20td2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpCgkJCQl9OwoJCQlpZihKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zJ10uYXR0cignY2xhc3MnKSA9PSAnbm90aWZpY2F0aW9ucy1zaG93JykgewoJCQkJZm9yKHZhciBpIGluIGF0dHJpYnMpIHsKCQkJCQlhdHRyaWJzW2ldID0gcGFyc2VJbnQoYXR0cmlic1tpXSk7CgkJCQkJaWYodHlwZW9mIGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgYXR0cmlic1tpXSA9PSAndW5kZWZpbmVkJyB8fCBpc05hTihhdHRyaWJzW2ldKSkgewoJCQkJCQlhdHRyaWJzW2ldID0gMDsKCQkJCQl9CgkJCQkJaGVhZGVySGVpZ2h0ID0gZXZhbChoZWFkZXJIZWlnaHQgLSBhdHRyaWJzW2ldKTsKCQkJCX0KCQkJfQoJCQllbHNlIGlmKEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMnXS5hdHRyKCdjbGFzcycpID09ICdub3RpZmljYXRpb25zLWhpZGUnKSB7CgkJCQlhdHRyaWJzLmZvbyA9IDA7IC8vIGR1bm5vIHdoeSBpIG5lZWQgdG8gZG8gdGhpcwoJCQkJZm9yKHZhciBpIGluIGF0dHJpYnMpIHsKCQkJCQlhdHRyaWJzW2ldID0gcGFyc2VJbnQoYXR0cmlic1tpXSk7CgkJCQkJaWYodHlwZW9mIGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgYXR0cmlic1tpXSA9PSAndW5kZWZpbmVkJyB8fCBpc05hTihhdHRyaWJzW2ldKSkgewoJCQkJCQlhdHRyaWJzW2ldID0gMDsKCQkJCQl9CgkJCQkJaGVhZGVySGVpZ2h0ID0gZXZhbChoZWFkZXJIZWlnaHQgKyBhdHRyaWJzW2ldKTsKCQkJCX0KCQkJfQoJCX0KCQkKCQlpZiAoKGUgPT0gJ2ZpbGVsaXN0JyB8fCBlID09ICdhbGwnIHx8IGUgPT0gJ2ZpbGVvcGVyYXRpb25zJykgJiYgdHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCgkJCWlmKHR5cGVvZiBoZWFkZXJIZWlnaHQgPT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXZhciBoZWFkZXJIZWlnaHQgPSBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfaGVhZGVyJ10uaGVpZ2h0KCk7CgkJCX0KCQkJdmFyIGF0dHJpYnMgPSB7CgkJCQkJaGVhZGVySGVpZ2h0OiAgICAgICAgaGVhZGVySGVpZ2h0LAoJCQkJCWhlYWRlclBhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9oZWFkZXInXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQloZWFkZXJQYWRkaW5nQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfaGVhZGVyJ10uY3NzKCdwYWRkaW5nLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJaGVhZGVyTWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddLmNzcygnbWFyZ2luLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJaGVhZGVyTWFyZ2luQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJaGVhZGVyQm9yZGVyVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddLmNzcygnYm9yZGVyLXRvcC13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJaGVhZGVyQm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2hlYWRlciddLmNzcygnYm9yZGVyLWJvdHRvbS13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJZmlsZWxpc3RQYWRkaW5nVG9wOiAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlmaWxlbGlzdFBhZGRpbmdCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWZpbGVsaXN0TWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlmaWxlbGlzdE1hcmdpbkJvdHRvbTogIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJZmlsZWxpc3RCb3JkZXJUb3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ2JvcmRlci10b3Atd2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWZpbGVsaXN0Qm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQljb250ZW50UGFkZGluZ1RvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQljb250ZW50UGFkZGluZ0JvdHRvbTogSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQljb250ZW50TWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ21hcmdpbi10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWNvbnRlbnRNYXJnaW5Cb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJY29udGVudEJvcmRlclRvcDogICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9jb250ZW50J10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQljb250ZW50Qm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ2JvcmRlci1ib3R0b20td2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCXRpdGxlYmFySGVpZ2h0OiAgICAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uaGVpZ2h0KCksCgkJCQkJdGl0bGViYXJQYWRkaW5nVG9wOiAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQl0aXRsZWJhclBhZGRpbmdCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCXRpdGxlYmFyTWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQl0aXRsZWJhck1hcmdpbkJvdHRvbTogIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJdGl0bGViYXJCb3JkZXJUb3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ2JvcmRlci10b3Atd2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCXRpdGxlYmFyQm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCQlqbWZwUGFkZGluZ1RvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdwYWRkaW5nLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQkJam1mcFBhZGRpbmdCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBNYXJnaW5Ub3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ21hcmdpbi10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBNYXJnaW5Cb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ21hcmdpbi1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBCb3JkZXJUb3A6ICAgICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2JvcmRlci10b3Atd2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJCWptZnBCb3JkZXJCb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2JvcmRlci1ib3R0b20td2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpCgkJCQl9LAoJCQkJbWluSGVpZ2h0ID0gcGFyc2VJbnQoSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uY3NzKCdtaW4taGVpZ2h0JykucmVwbGFjZSgvW15cZF0qL2csJycpKTsKCQkJCgkJCW1pbkhlaWdodCA9IHR5cGVvZiBtaW5IZWlnaHQgPT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4obWluSGVpZ2h0KSA/IDAgOiBtaW5IZWlnaHQ7CgkJCQoJCQlKTUZQLnRtcC5maWxlTGlzdEhlaWdodCA9IHBhcnNlSW50KGpRdWVyeSh3aW5kb3cpLmhlaWdodCgpKTsKCQkJSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQgPSB0eXBlb2YgSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQgPT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4oSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpID8gMCA6IEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0OwoJCQkKCQkJZm9yKHZhciBpIGluIGF0dHJpYnMpIHsKCQkJCWF0dHJpYnNbaV0gPSBwYXJzZUludChhdHRyaWJzW2ldKTsKCQkJCWlmKHR5cGVvZiBhdHRyaWJzW2ldID09ICd1bmRlZmluZWQnIHx8IGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4oYXR0cmlic1tpXSkpIHsKCQkJCQlhdHRyaWJzW2ldID0gMDsKCQkJCX0KCQkJCUpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ID0gZXZhbChKTUZQLnRtcC5maWxlTGlzdEhlaWdodCAtIGF0dHJpYnNbaV0pOwoJCQl9CgkJCQoJCQlpZihKTUZQLnRtcC5maWxlTGlzdEhlaWdodCA8PSBtaW5IZWlnaHQpIHsKCQkJCUpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ID0gbWluSGVpZ2h0OwoJCQl9CgkJfQoJCWlmKGUgPT0gJ2ptZnAnIHx8IGUgPT0gJ2FsbCcgfHwgZSA9PSAnZmlsZW9wZXJhdGlvbnMnKSB7CgkJCWlmKEpNRlAuaWVWZXJzaW9uKCkgPCA4KSB7CgkJCQlKTUZQLnRtcC5oZWlnaHQgPSAnYXV0byc7CgkJCQlyZXR1cm47CgkJCX0KCQkJdmFyIGNvbnRlbnRIZWlnaHQgID0gSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5oZWlnaHQoKSwKCQkJCWZpbGVMaXN0SGVpZ2h0ID0gSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uaGVpZ2h0KCk7CgkJCQoJCQljb250ZW50SGVpZ2h0ICA9IHR5cGVvZiBjb250ZW50SGVpZ2h0ID09ICd1bmRlZmluZWQnIHx8IGlzTmFOKGNvbnRlbnRIZWlnaHQpID8gMCA6IGNvbnRlbnRIZWlnaHQ7CgkJCWZpbGVMaXN0SGVpZ2h0ID0gdHlwZW9mIGZpbGVMaXN0SGVpZ2h0ID09ICd1bmRlZmluZWQnIHx8IGlzTmFOKGZpbGVMaXN0SGVpZ2h0KSA/IDAgOiBmaWxlTGlzdEhlaWdodDsKCQkJCgkJCWlmKGZpbGVMaXN0SGVpZ2h0ID4gSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpIHsKCQkJCUpNRlAudG1wLmhlaWdodCA9IGV2YWwoY29udGVudEhlaWdodCAtIGZpbGVMaXN0SGVpZ2h0ICsgSk1GUC50bXAuZmlsZUxpc3RIZWlnaHQpOwoJCQl9CgkJCWVsc2UgewoJCQkJSk1GUC50bXAuaGVpZ2h0ID0gY29udGVudEhlaWdodDsKCQkJfQoJCQkvLyBkdW5ubyB3aHkgaSBuZWVkIHRvIGRvIHRoaXMKCQkJaWYoIWZpbGVMaXN0SGVpZ2h0ICYmICFKTUZQLnRtcC5maWxlTGlzdEhlaWdodCkgewoJCQkJSk1GUC50bXAuaGVpZ2h0ID0gZXZhbChKTUZQLnRtcC5oZWlnaHQgKyA1KTsKCQkJfQoJCQkvLy0tLQoJCQl2YXIgYXR0cmlicyA9IHsKCQkJCXRpdGxlYmFySGVpZ2h0OiAgICAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uaGVpZ2h0KCksCgkJCQl0aXRsZWJhclBhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF90aXRsZWJhciddLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJdGl0bGViYXJQYWRkaW5nQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfdGl0bGViYXInXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCXRpdGxlYmFyTWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCXRpdGxlYmFyTWFyZ2luQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdtYXJnaW4tYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCXRpdGxlYmFyQm9yZGVyVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCXRpdGxlYmFyQm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RpdGxlYmFyJ10uY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBDb250ZW50UGFkZGluZ1RvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBDb250ZW50UGFkZGluZ0JvdHRvbTogSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBDb250ZW50TWFyZ2luVG9wOiAgICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ21hcmdpbi10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJam1mcENvbnRlbnRNYXJnaW5Cb3R0b206ICBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmNzcygnbWFyZ2luLWJvdHRvbScpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQlqbWZwQ29udGVudEJvcmRlclRvcDogICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9jb250ZW50J10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBDb250ZW50Qm9yZGVyQm90dG9tOiAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5jc3MoJ2JvcmRlci1ib3R0b20td2lkdGgnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJam1mcFBhZGRpbmdUb3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygncGFkZGluZy10b3AnKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJam1mcFBhZGRpbmdCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJZm9vOjEwIC8vIGR1bm5vIHdoeSBpIG5lZWQgdG8gZG8gdGhpcwoJCQl9OwoJCQlmb3IodmFyIGkgaW4gYXR0cmlicykgewoJCQkJYXR0cmlic1tpXSA9IHBhcnNlSW50KGF0dHJpYnNbaV0pOwoJCQkJaWYodHlwZW9mIGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgYXR0cmlic1tpXSA9PSAndW5kZWZpbmVkJyB8fCBpc05hTihhdHRyaWJzW2ldKSkgewoJCQkJCWF0dHJpYnNbaV0gPSAwOwoJCQkJfQoJCQkJSk1GUC50bXAuaGVpZ2h0ID0gZXZhbChKTUZQLnRtcC5oZWlnaHQgKyBhdHRyaWJzW2ldKTsKCQkJfQoJCQkKCQkJYXR0cmlicyA9IHsKCQkJCWptZnBNYXJnaW5Ub3A6ICAgIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnbWFyZ2luLXRvcCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJyksCgkJCQlqbWZwTWFyZ2luQm90dG9tOiBKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ21hcmdpbi1ib3R0b20nKS5yZXBsYWNlKC9bXlxkXSovZywgJycpLAoJCQkJam1mcEJvcmRlclRvcDogICAgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uY3NzKCdib3JkZXItdG9wLXdpZHRoJykucmVwbGFjZSgvW15cZF0qL2csICcnKSwKCQkJCWptZnBCb3JkZXJCb3R0b206IEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnYm9yZGVyLWJvdHRvbS13aWR0aCcpLnJlcGxhY2UoL1teXGRdKi9nLCAnJykKCQkJfTsKCQkJZm9yKHZhciBpIGluIGF0dHJpYnMpIHsKCQkJCWF0dHJpYnNbaV0gPSBwYXJzZUludChhdHRyaWJzW2ldKTsKCQkJCWlmKHR5cGVvZiBhdHRyaWJzW2ldID09ICd1bmRlZmluZWQnIHx8IGF0dHJpYnNbaV0gPT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4oYXR0cmlic1tpXSkpIHsKCQkJCQlhdHRyaWJzW2ldID0gMDsKCQkJCX0KCQkJCUpNRlAudG1wLmhlaWdodCA9IGV2YWwoSk1GUC50bXAuaGVpZ2h0IC0gYXR0cmlic1tpXSk7CgkJCX0KCQl9Cgl9LAoJcmVzaXplOiBmdW5jdGlvbigpIHsKCQl2YXIgZSA9ICdmaWxlbGlzdCc7CgkJaWYodHlwZW9mIGFyZ3VtZW50c1swXSAhPSAndW5kZWZpbmVkJykgewoJCQllID0gYXJndW1lbnRzWzBdOwoJCX0KCQlKTUZQLmdldEhlaWdodChlKTsKCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2hlaWdodCcsICdhdXRvJyk7CgkJaWYodHlwZW9mIEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddICE9ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEpNRlAudG1wLmZpbGVMaXN0SGVpZ2h0ICsgJ3B4Jyk7CgkJfQoJCXJldHVybiBmYWxzZTsKCX0sCglwaWNrRmlsZTogZnVuY3Rpb24gKHVybCwgcGlja2VySWQpIHsKCQlpZih0eXBlb2YgSk1GUC5pbnB1dHNbcGlja2VySWRdID09ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAucmVnaXN0ZXJJbnB1dCh7aWQ6cGlja2VySWR9KTsKCQl9CgkJalF1ZXJ5KCcjJyArIHBpY2tlcklkKS52YWwodXJsKTsKCQlKTUZQLmNsb3NlKHBpY2tlcklkKTsKCQlqUXVlcnkoJyMnICsgcGlja2VySWQpLnRyaWdnZXIoJ2NoYW5nZScpOwoJCXJldHVybiBmYWxzZTsKCX0sCglyZWxvYWREcm9wZG93bjogZnVuY3Rpb24gKHVybCwgdGFyZ2V0SWQpIHsKCQkKCQlpZih0eXBlb2YgSk1GUC5pbnB1dHNbdGFyZ2V0SWRdID09ICd1bmRlZmluZWQnKSB7CgkJCUpNRlAucmVnaXN0ZXJJbnB1dCh7aWQ6dGFyZ2V0SWR9KTsKCQl9CgkJCgkJdmFyIHRhcmdldFdyYXBwZXIgPSBqUXVlcnkoJyMnICsgdGFyZ2V0SWQgKyAnX0pNRlBfZHJvcGRvd25fd3JhcHBlcicpLAoJCQlyZWxvYWRMaW5rICAgID0galF1ZXJ5KCcjJyArIHRhcmdldElkICsgJ19KTUZQX3JlbG9hZF9kcm9wZG93bicpLAoJCQl1cGxvYWRMaW5rICAgID0galF1ZXJ5KCcjJyArIHRhcmdldElkICsgJ19KTUZQX3VwbG9hZCcpLAoJCQlpbnB1dCAgICAgICAgID0galF1ZXJ5KCcjJyArIHRhcmdldElkKTsKCQkKCQlpZih0eXBlb2YgdGFyZ2V0V3JhcHBlci5hdHRyKCdpZCcpID09ICd1bmRlZmluZWQnKSB7CgkJCXJldHVybjsKCQl9CgkJdmFyIHNlbE9wdCA9IGpRdWVyeSgnIycgKyB0YXJnZXRJZCArICcgb3B0aW9uOnNlbGVjdGVkOmZpcnN0Jyk7CgkJdGFyZ2V0V3JhcHBlci5jbG9zZXN0KCcuSk1GUF9pbnB1dF93cmFwcGVyJykuY2hpbGRyZW4oJ2ltZy5KTUZQX2xvYWRpbmdfaW1nOmZpcnN0JykucmVtb3ZlQXR0cignc3R5bGUnKTsKCQl0YXJnZXRXcmFwcGVyLmNsb3Nlc3QoJy5KTUZQX2lucHV0X3dyYXBwZXInKS5maW5kKCcuSk1GUF9saW5rJykuYWRkQ2xhc3MoJ0pNRlBfZGlzYWJsZWQnKS51bmJpbmQoJ2NsaWNrJykuY2xpY2soZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2U7fSk7CgkJaW5wdXQuYXR0cignZGlzYWJsZWQnLCdkaXNhYmxlZCcpLmFkZENsYXNzKCdKTUZQX2Rpc2FibGVkJykudW5iaW5kKCdjaGFuZ2UnKTsKCQl0YXJnZXRXcmFwcGVyLmFkZENsYXNzKCdKTUZQX2Rpc2FibGVkJykuZmFkZVRvKEpNRlAuaW5wdXRzW3RhcmdldElkXS5mYWRlU3BlZWQsIDAsIGZ1bmN0aW9uICgpIHsKCQkJalF1ZXJ5LmdldCh1cmwgKyAnJicgKyBKTUZQLmlucHV0c1t0YXJnZXRJZF0ubW9kdWxlSWQgKyAnc2hvd3RlbXBsYXRlPWZhbHNlJicgICsgSk1GUC5pbnB1dHNbdGFyZ2V0SWRdLm1vZHVsZUlkICsgJ2Rpc2FibGVfdGhlbWU9MSYnICsgSk1GUC5pbnB1dHNbdGFyZ2V0SWRdLm1vZHVsZUlkICsgJ2FqYXg9MSYnICsgSk1GUC5pbnB1dHNbdGFyZ2V0SWRdLm1vZHVsZUlkICsgJ3ZhbHVlPScgKyBzZWxPcHQuYXR0cigndmFsdWUnKSwgZnVuY3Rpb24oZGF0YSkgewoJCQkJLy8gcmVwbGFjZQoJCQkJdGFyZ2V0V3JhcHBlci5odG1sKGRhdGEpOwoJCQkJLy8gdG9nZ2xlIHRodW1ibmFpbAoJCQkJdmFyIHNlbE9wdCA9IGpRdWVyeSgnIycgKyB0YXJnZXRJZCArICcgb3B0aW9uOnNlbGVjdGVkOmZpcnN0Jyk7CgkJCQlKTUZQLnRvZ2dsZVRodW1ibmFpbCh0YXJnZXRJZCxzZWxPcHQuYXR0cigndGh1bWJuYWlsJyksc2VsT3B0LmF0dHIoJ3ZhbHVlJyksc2VsT3B0LmF0dHIoJ3ZhbHVlJykpOwoJCQkJLy8gZmFkZSBpbgoJCQkJdGFyZ2V0V3JhcHBlci5mYWRlVG8oSk1GUC5pbnB1dHNbdGFyZ2V0SWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKXsKCQkJCQlyZWxvYWRMaW5rLnJlbW92ZUNsYXNzKCdKTUZQX2Rpc2FibGVkJykudW5iaW5kKCdjbGljaycpLmNsaWNrKGZ1bmN0aW9uKCl7CgkJCQkJCXZhciBwaWNrZXJJZCA9IHRoaXMuaWQuc3Vic3RyKDAsdGhpcy5pZC5sYXN0SW5kZXhPZignX0pNRlBfcmVsb2FkX2Ryb3Bkb3duJykpOwoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0uYnJvd3NlVXJsICE9ICcnKQoJCQkJCQkJSk1GUC5yZWxvYWREcm9wZG93bihKTUZQLmlucHV0c1twaWNrZXJJZF0uYnJvd3NlVXJsLCBwaWNrZXJJZCk7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9KTsKCQkJCQl1cGxvYWRMaW5rLnJlbW92ZUNsYXNzKCdKTUZQX2Rpc2FibGVkJykudW5iaW5kKCdjbGljaycpLmNsaWNrKGZ1bmN0aW9uKCl7CgkJCQkJCXZhciBwaWNrZXJJZCA9IHRoaXMuaWQuc3Vic3RyKDAsdGhpcy5pZC5sYXN0SW5kZXhPZignX0pNRlBfdXBsb2FkJykpOwoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0udXBsb2FkVXJsICE9ICcnKQoJCQkJCQkJSk1GUC5sb2FkRGlyKEpNRlAuaW5wdXRzW3BpY2tlcklkXS51cGxvYWRVcmwsIHBpY2tlcklkKTsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0pOwoJCQkJCWpRdWVyeSgnIycgKyB0YXJnZXRJZCkucmVtb3ZlQXR0cignZGlzYWJsZWQnKS5yZW1vdmVDbGFzcygnSk1GUF9kaXNhYmxlZCcpLmNoYW5nZShmdW5jdGlvbigpewoJCQkJCQlKTUZQLnRvZ2dsZVRodW1ibmFpbCh0aGlzLmlkLCBqUXVlcnkoJyMnK3RoaXMuaWQrJyBvcHRpb246c2VsZWN0ZWQ6Zmlyc3QnKS5hdHRyKCd0aHVtYm5haWwnKSx0aGlzLnZhbHVlLHRoaXMudmFsdWUpOwoJCQkJCX0pOwoJCQkJCXRhcmdldFdyYXBwZXIuY2xvc2VzdCgnLkpNRlBfaW5wdXRfd3JhcHBlcicpLmNoaWxkcmVuKCdpbWcuSk1GUF9sb2FkaW5nX2ltZzpmaXJzdCcpLmNzcygnZGlzcGxheScsJ25vbmUnKTsKCQkJCX0pOwoJCQl9KTsKCQl9KTsKCX0sCglzZWxlY3RBbGw6IGZ1bmN0aW9uIChvYmopIHsKCQlpZiAob2JqLnZhbHVlID09IDEpIHsKCQkJalF1ZXJ5KCdpbnB1dFtuYW1lXj0iJytvYmouaWQrJy0iXScpLmF0dHIoJ2NoZWNrZWQnLCdjaGVja2VkJyk7CgkJCW9iai52YWx1ZSA9IDA7CgkJfQoJCWVsc2UgewoJCQlqUXVlcnkoJ2lucHV0W25hbWVePSInK29iai5pZCsnLSJdJykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwoJCQlvYmoudmFsdWUgPSAxOwoJCX0KCX0sCgl0eXBlT2Y6IGZ1bmN0aW9uICh2YWx1ZSkgewoJCXZhciB0eXBlID0gdHlwZW9mIHZhbHVlOwoJCWlmICh0eXBlID09PSAnb2JqZWN0JykgewoJCQlpZiAodmFsdWUpIHsKCQkJCWlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7CgkJCQkJdHlwZSA9ICdhcnJheSc7CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQl0eXBlID0gJ251bGwnOwoJCQl9CgkJfQoJCXJldHVybiB0eXBlOwoJfSwKCWFqYXhGb3JtOiBmdW5jdGlvbiAoKSB7CgkJdmFyIGZvcm0gPSBqUXVlcnkoJyNKTUZQX2hlYWRlciBmb3JtOmZpcnN0Jyk7CgkJaWYoZm9ybS5hdHRyKCdpZCcpICE9ICd1bmRlZmluZWQnKSB7CgkJCWZvcm0uYXBwZW5kKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInK0pNRlAuaW5wdXRzW0pNRlAudG1wLmN1cnJlbnRQaWNrZXJJZF0ubW9kdWxlSWQrJ2Rpc2FibGVfdGhlbWUiIHZhbHVlPSIxIiAvPicpOwoJCQlmb3JtLmFwcGVuZCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJytKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLm1vZHVsZUlkKydzaG93dGVtcGxhdGUiIHZhbHVlPSJmYWxzZSIgLz4nKTsKCQkJZm9ybS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicrSk1GUC5pbnB1dHNbSk1GUC50bXAuY3VycmVudFBpY2tlcklkXS5tb2R1bGVJZCsnYWpheCIgdmFsdWU9IjEiIC8+Jyk7CgkJCQoJCQl2YXIgb3B0aW9ucyA9IHsKCQkJCWJlZm9yZVN1Ym1pdDogZnVuY3Rpb24oZm9ybURhdGEsIGpxRm9ybSwgb3B0aW9ucyl7CgkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5JywnYmxvY2snKTsKCQkJCQlqcUZvcm0uZmluZCgnaW5wdXQnKS5hZGRDbGFzcygnSk1GUF9kaXNhYmxlZCcpOwoJCQkJCXJldHVybiB0cnVlOwoJCQkJfSwKCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKHJlc3BvbnNlVGV4dCkgewoJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9jb250ZW50J10uZmFkZVRvKEpNRlAuaW5wdXRzW0pNRlAudG1wLmN1cnJlbnRQaWNrZXJJZF0uZmFkZVNwZWVkLCAwLCBmdW5jdGlvbigpIHsKCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5odG1sKHJlc3BvbnNlVGV4dCk7CgkJCQkJCQoJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfaGVhZGVyJ10gICA9IGpRdWVyeSgiI0pNRlBfaGVhZGVyIik7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddID0galF1ZXJ5KCIjSk1GUF9maWxlbGlzdCIpOwoJCQkJCQlpZih0eXBlb2YgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVvcGVyYXRpb25zJ10gICAgICAgID0galF1ZXJ5KCcjSk1GUF9maWxlb3BlcmF0aW9ucycpOwoJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX3RvZ2dsZV9maWxlb3BlcmF0aW9ucyddID0galF1ZXJ5KCcjSk1GUF90b2dnbGVfZmlsZW9wZXJhdGlvbnMnKTsKCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsICcnKS5jc3MoJ29wYWNpdHknLCcxJyk7CgkJCQkJCX0KCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2NvbnRlbnQnXS5vbkltYWdlc0xvYWQoewoJCQkJCQkJY2FsbGJhY2tJZk5vSW1hZ2VzRXhpc3Q6dHJ1ZSwKCQkJCQkJCWFsbDogZnVuY3Rpb24oKSB7CgkJCQkJCQkJSk1GUC5nZXRIZWlnaHQoKTsKCQkJCQkJCQlpZih0eXBlb2YgSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQX2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfZmlsZWxpc3QnXS5jc3MoJ21heC1oZWlnaHQnLCBKTUZQLnRtcC5maWxlTGlzdEhlaWdodCArICdweCcpOwoJCQkJCQkJCX0KCQkJCQkJCQlpZihKTUZQLmllVmVyc2lvbigpIDwgOCkgewoJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlAnXS5jc3MoJ2hlaWdodCcsJ2F1dG8nKTsKCQkJCQkJCQl9CgkJCQkJCQkJSk1GUC50bXAudGVtcGxhdGVbJyNKTUZQJ10uYW5pbWF0ZSh7aGVpZ2h0OiBKTUZQLnRtcC5oZWlnaHQgKyAoSk1GUC50bXAuaGVpZ2h0ICE9ICdhdXRvJyA/ICdweCcgOiAnJyl9LCBKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLmFuaW1hdGVTcGVlZCAsICdzd2luZycsIGZ1bmN0aW9uKCkgewoJCQkJCQkJCQlKTUZQLnRtcC50ZW1wbGF0ZVsnI0pNRlBfY29udGVudCddLmZhZGVUbyhKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLmZhZGVTcGVlZCwgMSwgZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQkKCQkJCQkJCQkJCWZvcih2YXIgaSBpbiBKTUZQLmlucHV0cykKCQkJCQkJCQkJCQlKTUZQLnJlbG9hZERyb3Bkb3duKEpNRlAuaW5wdXRzW2ldLmJyb3dzZVVybCwgaSk7CgkJCQkJCQkJCQkKCQkJCQkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9sb2FkaW5nX2ltZyddLmNzcygnZGlzcGxheScsJ25vbmUnKTsKCQkJCQkJCQkJCUpNRlAuYWpheEZvcm0oKTsKCQkJCQkJCQkJfSk7CgkJCQkJCQkJfSk7CgkJCQkJCQl9CgkJCQkJCX0pOwoJCQkJCX0pOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfTsKCQkJZm9ybS5hamF4Rm9ybShvcHRpb25zKTsKCQl9Cgl9LAoJZGVsZXRlRmlsZTogZnVuY3Rpb24gKHVybCwgY29uZmlybU1zZywgdmFsdWUpIHsKCQl2YXIgY29uZiA9IGNvbmZpcm0oY29uZmlybU1zZyk7CgkJaWYoY29uZikgewoJCQl2YXIgX3VybCA9IEpNRlAudG1wLmN1cnJlbnRVcmw7CgkJCUpNRlAubG9hZERpcih1cmwgKyAnJicgKyBKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLm1vZHVsZUlkICsgJ3Nob3d0ZW1wbGF0ZT1mYWxzZSYnICArIEpNRlAuaW5wdXRzW0pNRlAudG1wLmN1cnJlbnRQaWNrZXJJZF0ubW9kdWxlSWQgKyAnZGlzYWJsZV90aGVtZT0xJicgKyBKTUZQLmlucHV0c1tKTUZQLnRtcC5jdXJyZW50UGlja2VySWRdLm1vZHVsZUlkICsgJ2FqYXg9MScsSk1GUC50bXAuY3VycmVudFBpY2tlcklkLEpNRlAudG1wLmN1cnJlbnREaXIpOwoJCQlmb3IodmFyIGkgaW4gSk1GUC5pbnB1dHMpCgkJCQlKTUZQLnJlbG9hZERyb3Bkb3duKEpNRlAuaW5wdXRzW2ldLmJyb3dzZVVybCwgaSk7CgkJCUpNRlAudG1wLmN1cnJlbnRVcmwgPSBfdXJsOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9LAoJaWVWZXJzaW9uOiBmdW5jdGlvbigpIHsKCQl2YXIgdmVyc2lvbiA9IDk5OTsKCQlpZiAobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIpICE9IC0xKSB7CgkJCXZlcnNpb24gPSBwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uLnNwbGl0KCJNU0lFIilbMV0pOwoJCX0KCQlyZXR1cm4gdmVyc2lvbjsKCX0KfTsKam1mcF9vbmxvYWQucHVzaChmdW5jdGlvbigpewoJanNMb2FkZXIubG9hZCgKCQl7CgkJCXVybDogSk1GUC5vcHRpb25zLnJvb3RVcmwgKyAnL21vZHVsZXMvSk1GaWxlUGlja2VyL2pzL2pxLm1pbi5qcycsCgkJCWxvYWRUeXBlOiAnZGVmZXInLAoJCQlyZWFkeTpmdW5jdGlvbigpIHsKCQkJCXJldHVybiAodHlwZW9mIGpRdWVyeSA9PSAnZnVuY3Rpb24nKTsKCQkJfSwKCQkJY2FsbEJhY2s6IGZ1bmN0aW9uKHJlYWR5KSB7CgkJCQlpZihyZWFkeSkgewoJCQkJCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJCQkJCWpRdWVyeSgnLkpNRlBfaW5wdXQnKS5hdHRyKCdkaXNhYmxlZCcsJ2Rpc2FibGVkJykuYWRkQ2xhc3MoJ0pNRlBfZGlzYWJsZWQnKS5jbGljayhmdW5jdGlvbigpIHtyZXR1cm4gZmFsc2U7fSk7CgkJCQkJCWpRdWVyeSgnLkpNRlBfbGluaycpLmNsaWNrKGZ1bmN0aW9uKCkge3JldHVybiBmYWxzZTt9KS5hZGRDbGFzcygnSk1GUF9kaXNhYmxlZCcpOwoJCQkJCX0pOwoJCQkJCWpzTG9hZGVyLmxvYWQoW3sKCQkJCQkJdXJsOiBKTUZQLm9wdGlvbnMucm9vdFVybCArICcvbW9kdWxlcy9KTUZpbGVQaWNrZXIvanMvanEudWkuY29yZS5taW4uanMnLAoJCQkJCQlsb2FkVHlwZTogJ2RlZmVyJywKCQkJCQkJcmVhZHk6IGZ1bmN0aW9uKCkgewoJCQkJCQkJcmV0dXJuICh0eXBlb2YgalF1ZXJ5ID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGpRdWVyeS51aSAhPSAndW5kZWZpbmVkJykKCQkJCQkJfSwKCQkJCQkJY2FsbEJhY2s6IGZ1bmN0aW9uIChyZWFkeSkgewoJCQkJCQkJaWYocmVhZHkpIHsKCQkJCQkJCQlqc0xvYWRlci5sb2FkKAoJCQkJCQkJCQl7CgkJCQkJCQkJCQl1cmw6IEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qcS51aS53aWRnZXQubWluLmpzJywKCQkJCQkJCQkJCWxvYWRUeXBlOiAnZGVmZXInLAoJCQkJCQkJCQkJcmVhZHk6IGZ1bmN0aW9uKCkgewoJCQkJCQkJCQkJCXJldHVybiAodHlwZW9mIGpRdWVyeSA9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBqUXVlcnkudWkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeS53aWRnZXQgIT0gJ3VuZGVmaW5lZCcpCgkJCQkJCQkJCQl9LAoJCQkJCQkJCQkJY2FsbEJhY2s6IGZ1bmN0aW9uKHJlYWR5KSB7CgkJCQkJCQkJCQkJaWYocmVhZHkpIHsKCQkJCQkJCQkJCQkJanNMb2FkZXIubG9hZCgKCQkJCQkJCQkJCQkJCXsKCQkJCQkJCQkJCQkJCQl1cmw6IEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qcS51aS5tb3VzZS5taW4uanMnLAoJCQkJCQkJCQkJCQkJCWxvYWRUeXBlOiAnZGVmZXInLAoJCQkJCQkJCQkJCQkJCXJlYWR5OiBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCQkJCQkJcmV0dXJuICh0eXBlb2YgalF1ZXJ5ICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBqUXVlcnkudWkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeS51aS5tb3VzZSAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgalF1ZXJ5LndpZGdldCAhPSAndW5kZWZpbmVkJykKCQkJCQkJCQkJCQkJCQl9CgkJCQkJCQkJCQkJCQl9LAoJCQkJCQkJCQkJCQkJZnVuY3Rpb24gKHJlYWR5KSB7CgkJCQkJCQkJCQkJCQkJanNMb2FkZXIubG9hZChbCgkJCQkJCQkJCQkJCQkJCXsKCQkJCQkJCQkJCQkJCQkJCXVybDogSk1GUC5vcHRpb25zLnJvb3RVcmwgKyAnL21vZHVsZXMvSk1GaWxlUGlja2VyL2pzL2pxLnVpLmRyYWdnYWJsZS5taW4uanMnLAoJCQkJCQkJCQkJCQkJCQkJbG9hZFR5cGU6ICdkZWZlcicsCgkJCQkJCQkJCQkJCQkJCQlyZWFkeTogZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQkJCQkJCQkJcmV0dXJuICh0eXBlb2YgalF1ZXJ5ICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBqUXVlcnkudWkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeSgpLmRyYWdnYWJsZSAhPSAndW5kZWZpbmVkJykKCQkJCQkJCQkJCQkJCQkJCX0KCQkJCQkJCQkJCQkJCQkJfSwKCQkJCQkJCQkJCQkJCQkJewoJCQkJCQkJCQkJCQkJCQkJdXJsOiBKTUZQLm9wdGlvbnMucm9vdFVybCArICcvbW9kdWxlcy9KTUZpbGVQaWNrZXIvanMvanEudWkucmVzaXphYmxlLm1pbi5qcycsCgkJCQkJCQkJCQkJCQkJCQlsb2FkVHlwZTogJ2RlZmVyJywKCQkJCQkJCQkJCQkJCQkJCXJlYWR5OiBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCQkJCQkJCQlyZXR1cm4gKHR5cGVvZiBqUXVlcnkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeS51aSAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgalF1ZXJ5KCkucmVzaXphYmxlICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBqUXVlcnkud2lkZ2V0ICE9ICd1bmRlZmluZWQnKQoJCQkJCQkJCQkJCQkJCQkJfQoJCQkJCQkJCQkJCQkJCQl9CgkJCQkJCQkJCQkJCQkJXSk7CgkJCQkJCQkJCQkJCQl9CgkJCQkJCQkJCQkJCSk7CgkJCQkJCQkJCQkJfQoJCQkJCQkJCQkJfQoJCQkJCQkJCQl9CgkJCQkJCQkJKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJewoJCQkJCQl1cmw6IEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qcS5vbkltZ0xvYWQubWluLmpzJywKCQkJCQkJbG9hZFR5cGU6ICdkZWZlcicsCgkJCQkJCXJlYWR5OiBmdW5jdGlvbigpIHsKCQkJCQkJCXJldHVybiAodHlwZW9mIGpRdWVyeSAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgalF1ZXJ5KCkub25JbWFnZXNMb2FkICE9ICd1bmRlZmluZWQnKQoJCQkJCQl9LAoJCQkJCQljYWxsQmFjazogZnVuY3Rpb24ocmVhZHkpewoJCQkJCQkJaWYocmVhZHkpIHsKCQkJCQkJCQkkLmZuLm9uSW1hZ2VzTG9hZC5kZWZhdWx0cy5vbkVycm9yID0gZnVuY3Rpb24ob2JqKSB7CgkJCQkJCQkJCWpRdWVyeShvYmopLmF0dHIoJ3NyYycsIEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9pbWFnZXMvaW1hZ2Vjb3JydXB0LmdpZicpOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJewoJCQkJCQl1cmw6IEpNRlAub3B0aW9ucy5yb290VXJsICsgJy9tb2R1bGVzL0pNRmlsZVBpY2tlci9qcy9qcS5mb3JtLm1pbi5qcycsCgkJCQkJCWxvYWRUeXBlOiAnZGVmZXInLAoJCQkJCQlyZWFkeTogZnVuY3Rpb24oKSB7CgkJCQkJCQlyZXR1cm4gKHR5cGVvZiBqUXVlcnkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGpRdWVyeSgpLmFqYXhTdWJtaXQgIT0gJ3VuZGVmaW5lZCcpCgkJCQkJCX0KCQkJCQl9CgkJCQkJXSk7CgkJCQl9CgkJCX0KCQl9LAoJCWZ1bmN0aW9uIChyZWFkeSkgewoJCQlpZihyZWFkeSkgewoJCQkJalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewoJCQkJCWpRdWVyeSgnLmptZnBfY29udHJhY3QsIC5qbWZwX2V4cGFuZCcpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUCddLmNzcygnaGVpZ2h0JywnYXV0bycpOwoJCQkJCQlpZih0aGlzLmNsYXNzTmFtZSA9PSAnam1mcF9leHBhbmQnKQoJCQkJCQkJalF1ZXJ5KCcjSk1GUF9maWxlb3BlcmF0aW9uc193cmFwcGVyJykucmVtb3ZlQ2xhc3MoJ2ptZnBfbm8tYm9yZGVyJyk7CgkJCQkJCUpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddCgkJCQkJCQkuc2xpZGVUb2dnbGUoZnVuY3Rpb24oKXsKCQkJCQkJCQlKTUZQLnJlc2l6ZSgpOwoJCQkJCQkJCWlmKEpNRlAudG1wLnRlbXBsYXRlWycjSk1GUF9maWxlb3BlcmF0aW9ucyddLmNzcygnZGlzcGxheScpID09ICdub25lJykKCQkJCQkJCQkJalF1ZXJ5KCcjSk1GUF9maWxlb3BlcmF0aW9uc193cmFwcGVyJykuYWRkQ2xhc3MoJ2ptZnBfbm8tYm9yZGVyJyk7CgkJCQkJCQl9KQoJCQkJCQk7CgkJCQkJCQoJCQkJCQl0aGlzLmNsYXNzTmFtZSA9ICh0aGlzLmNsYXNzTmFtZSA9PSAnam1mcF9jb250cmFjdCcgPyAnam1mcF9leHBhbmQnIDogJ2ptZnBfY29udHJhY3QnKTsKCQkJCQkJalF1ZXJ5LmdldCh0aGlzLmhyZWYgKyBKTUZQLm9wdGlvbnMubW9kdWxlSWQgKyAnZGlzcGxheT0nICsgKHRoaXMuY2xhc3NOYW1lID09ICdqbWZwX2NvbnRyYWN0JyA/IDEgOiAwKSArICcmJyArIEpNRlAub3B0aW9ucy5tb2R1bGVJZCArICdkaXNhYmxlX3RoZW1lPTEmJyArIEpNRlAub3B0aW9ucy5tb2R1bGVJZCArICdzaG93dGVtcGxhdGU9ZmFsc2UmJyArIEpNRlAub3B0aW9ucy5tb2R1bGVJZCArICdhamF4PTEnKTsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0pOwoJCQkJCQoJCQkJCWpRdWVyeSgnLkpNRlBfbG9hZGluZ19pbWcnKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7CgkJCQkJalF1ZXJ5KCcuSk1GUF9pbnB1dCcpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJykucmVtb3ZlQ2xhc3MoJ0pNRlBfZGlzYWJsZWQnKS51bmJpbmQoJ2NsaWNrJyk7CgkJCQkJalF1ZXJ5KCcuSk1GUF9saW5rJykucmVtb3ZlQ2xhc3MoJ0pNRlBfZGlzYWJsZWQnKS51bmJpbmQoJ2NsaWNrJyk7CgkJCQkJalF1ZXJ5KCcuSk1GUF9icm93c2UnKS5saXZlKCdjbGljaycsIGZ1bmN0aW9uKCkgewoJCQkJCQl2YXIgcGlja2VySWQgPSB0aGlzLmlkLnN1YnN0cigwLHRoaXMuaWQubGFzdEluZGV4T2YoJ19KTUZQX2Jyb3dzZScpKTsKCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmJyb3dzZVVybCAhPSAnJykKCQkJCQkJCUpNRlAubG9hZERpcihKTUZQLmlucHV0c1twaWNrZXJJZF0uYnJvd3NlVXJsLCBwaWNrZXJJZCk7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9KTsKCQkJCQlqUXVlcnkoJy5KTUZQX3VwbG9hZCcpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CgkJCQkJCXZhciBwaWNrZXJJZCA9IHRoaXMuaWQuc3Vic3RyKDAsdGhpcy5pZC5sYXN0SW5kZXhPZignX0pNRlBfdXBsb2FkJykpOwoJCQkJCQlpZihKTUZQLmlucHV0c1twaWNrZXJJZF0udXBsb2FkVXJsICE9ICcnKQoJCQkJCQkJSk1GUC5sb2FkRGlyKEpNRlAuaW5wdXRzW3BpY2tlcklkXS51cGxvYWRVcmwsIHBpY2tlcklkKTsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0pOwoJCQkJCWpRdWVyeSgnLkpNRlBfcmVsb2FkX2Ryb3Bkb3duJykubGl2ZSgnY2xpY2snLCBmdW5jdGlvbigpewoJCQkJCQl2YXIgcGlja2VySWQgPSB0aGlzLmlkLnN1YnN0cigwLHRoaXMuaWQubGFzdEluZGV4T2YoJ19KTUZQX3JlbG9hZF9kcm9wZG93bicpKTsKCQkJCQkJaWYoSk1GUC5pbnB1dHNbcGlja2VySWRdLmJyb3dzZVVybCAhPSAnJykKCQkJCQkJCUpNRlAucmVsb2FkRHJvcGRvd24oSk1GUC5pbnB1dHNbcGlja2VySWRdLmJyb3dzZVVybCwgcGlja2VySWQpOwoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfSk7CgkJCQkJalF1ZXJ5KCkuYWpheEVycm9yKGZ1bmN0aW9uKGV2ZW50LCByZXF1ZXN0LCBzZXR0aW5ncyl7CgkJCQkJCWFsZXJ0KCdFcnJvcjogcmVxdWVzdGluZyBwYWdlICcgKyBzZXR0aW5ncy51cmwpOwoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfSk7CgkJCQkJalF1ZXJ5KCcuSk1GUF9jbGVhcicpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24oKXsKCQkJCQkJdmFyIGlkID0gdGhpcy5pZC5zdWJzdHIoMCx0aGlzLmlkLmxhc3RJbmRleE9mKCdfSk1GUF9jbGVhcicpKTsKCQkJCQkJalF1ZXJ5KCcjJytpZCkudmFsKCcnKTsKCQkJCQkJSk1GUC50b2dnbGVUaHVtYm5haWwoaWQsJycpOwoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfSk7CgkJCQkJalF1ZXJ5KCdzZWxlY3QuSk1GUF9kcm9wZG93bi5KTUZQX2ltYWdlJykudW5iaW5kKCdjaGFuZ2UnKS5saXZlKCdjaGFuZ2UnLCBmdW5jdGlvbigpewoJCQkJCQlKTUZQLnRvZ2dsZVRodW1ibmFpbCh0aGlzLmlkLCBqUXVlcnkoJyMnK3RoaXMuaWQrJyBvcHRpb246c2VsZWN0ZWQ6Zmlyc3QnKS5hdHRyKCd0aHVtYm5haWwnKSx0aGlzLnZhbHVlLHRoaXMudmFsdWUpOwoJCQkJCX0pOwoJCQkJfSk7CgkJCX0KCQl9LAoJCScnLCcnLCcnLEpNRlAub3B0aW9ucy5kZWJ1ZwoJKTsKfSk7CmlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCWZvcih2YXIgaSA9IDA7IGk8am1mcF9vbmxvYWQubGVuZ3RoOyBpKyspIHsKCQlqbWZwX29ubG9hZFtpXSgpOwoJCWptZnBfb25sb2FkW2ldID0gbnVsbDsKCQlkZWxldGUgam1mcF9vbmxvYWRbaV07Cgl9CglqbWZwX29ubG9hZCA9IG51bGw7CglkZWxldGUgd2luZG93WydqbWZwX29ubG9hZCddOwp9IGVsc2UgewoJaWYgKGF0dGFjaEV2ZW50KSB7CgkJYXR0YWNoRXZlbnQoJ29ubG9hZCcsIGZ1bmN0aW9uKGUpewoJCQlmb3IodmFyIGkgPSAwOyBpPGptZnBfb25sb2FkLmxlbmd0aDsgaSsrKSB7CgkJCQlqbWZwX29ubG9hZFtpXSgpOwoJCQkJam1mcF9vbmxvYWRbaV0gPSBudWxsOwoJCQkJZGVsZXRlIGptZnBfb25sb2FkW2ldOwoJCQl9CgkJCWptZnBfb25sb2FkID0gbnVsbDsKCQkJZGVsZXRlIHdpbmRvd1snam1mcF9vbmxvYWQnXTsKCQl9KTsKCX0gZWxzZSBpZiAoYWRkRXZlbnRMaXN0ZW5lcikgewoJCWFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbihlKXsKCQkJZm9yKHZhciBpID0gMDsgaTxqbWZwX29ubG9hZC5sZW5ndGg7IGkrKykgewoJCQkJam1mcF9vbmxvYWRbaV0oKTsKCQkJCWptZnBfb25sb2FkW2ldID0gbnVsbDsKCQkJCWRlbGV0ZSBqbWZwX29ubG9hZFtpXTsKCQkJfQoJCQlqbWZwX29ubG9hZCA9IG51bGw7CgkJCWRlbGV0ZSB3aW5kb3dbJ2ptZnBfb25sb2FkJ107CgkJfSwgZmFsc2UpOwoJfQp9]]></data>
	</file>
	<file>
	  <filename>/templates/themes/Default-AJAX/upload.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQ0KeyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICBNb2R1bGUgOiBKTUZpbGVQaWNrZXIgKGMpIDIwMTAtMjAxMiBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkNCiAgICAgICAgICAgYSBmaWxlcGlja2VyIHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQ0KICAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2diZmlsZXBpY2tlcg0KICAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscA0KICAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGNtc21hZGVzaW1wbGUub3JnDQogIFZlcnNpb246IDEuMy4yDQogIEZpbGUgICA6IGZpbGVicm93c2VyLnRwbA0KICBMaWNlbnNlOiBHUEwNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0NCg0KPGRpdiBpZD0iSk1GUF9oZWFkZXIiPg0Ke2lmIGlzc2V0KCRqbWZwX2Vycm9ybWVzc2FnZSkgJiYgJGptZnBfZXJyb3JtZXNzYWdlIT0iIn0NCgk8ZmllbGRzZXQgY2xhc3M9IkpNRlBfbWVzc2FnZSIgaWQ9IkpNRlBfZXJyb3IiPg0KCQk8bGVnZW5kPnskam1mcF9lcnJvcl90ZXh0fTwvbGVnZW5kPg0KCQl7JGptZnBfZXJyb3JtZXNzYWdlfQ0KCTwvZmllbGRzZXQ+DQp7L2lmfQ0Ke2lmIGlzc2V0KCRqbWZwX21lc3NhZ2UpICYmICRqbWZwX21lc3NhZ2UhPSIifQ0KCTxmaWVsZHNldCBjbGFzcz0iSk1GUF9tZXNzYWdlIiBpZD0iSk1GUF9zdWNjZXNzIj4NCgkJPGxlZ2VuZD57JGptZnBfc3VjY2Vzc190ZXh0fTwvbGVnZW5kPg0KCQl7JGptZnBfbWVzc2FnZX0NCgk8L2ZpZWxkc2V0Pg0Key9pZn0NCntpZiBpc3NldCgkam1mcF9mb3Jtc3RhcnQpfQ0KCTxmaWVsZHNldD4NCnskam1mcF9mb3Jtc3RhcnR9DQoJCTxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjUlIj4NCgkJCTxwPnskam1mcF9maWxldXBsb2FkX3RleHR9OjwvcD4NCgkJCTxwPnskam1mcF9maWxldXBsb2FkX2lucHV0fTwvcD4NCgl7aWYgJGptZnBfYWxsb3dfc2NhbGluZ30NCgkJCTxwPnskam1mcF9yZXNpemVpbWFnZV90ZXh0fTombmJzcDt7JGptZnBfcmVzaXplaW1hZ2VfaW5wdXR9PC9wPg0KCQkJPHA+eyRqbWZwX2ltYWdlc2l6ZV94X2lucHV0fSZuYnNwO3gmbmJzcDt7JGptZnBfaW1hZ2VzaXplX3lfaW5wdXR9PC9wPg0KCQkJPHA+eyRqbWZwX2tlZXBhc3BlY3RyYXRpb190ZXh0fTombmJzcDt7JGptZnBfa2VlcGFzcGVjdHJhdGlvX2lucHV0fTwvcD4NCgkJCXtpZiAkam1mcF9hbGxvd191cHNjYWxpbmd9DQoJCQk8cD57JGptZnBfZm9yY2V1cHNjYWxpbmdfdGV4dH06Jm5ic3A7eyRqbWZwX2ZvcmNldXBzY2FsaW5nX2lucHV0fTwvcD4NCgkJCXsvaWZ9DQoJey9pZn0NCgkJCTxwPnskam1mcF9maWxldXBsb2FkX3N1Ym1pdH08L3A+DQoJCTwvZGl2Pg0KeyRqbWZwX2Zvcm1lbmR9DQoJPC9maWVsZHNldD4NCnsvaWZ9DQo8L2Rpdj4NCnsvc3RyaXB9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/themes/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/templates/upload.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQ0KeyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICBNb2R1bGUgOiBKTUZpbGVQaWNrZXIgKGMpIDIwMTAtMjAxMiBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkNCiAgICAgICAgICAgYSBmaWxlcGlja2VyIHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQ0KICAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2diZmlsZXBpY2tlcg0KICAgICAgICAgICBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMiBieSBUZWQgS3VscA0KICAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGNtc21hZGVzaW1wbGUub3JnDQogIFZlcnNpb246IDEuMy4yDQogIEZpbGUgICA6IGZpbGVicm93c2VyLnRwbA0KICBMaWNlbnNlOiBHUEwNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0NCg0KPGRpdiBpZD0iSk1GUF9oZWFkZXIiPg0Ke2lmIGlzc2V0KCRqbWZwX2Vycm9ybWVzc2FnZSkgJiYgJGptZnBfZXJyb3JtZXNzYWdlIT0iIn0NCgk8ZmllbGRzZXQgY2xhc3M9IkpNRlBfbWVzc2FnZSIgaWQ9IkpNRlBfZXJyb3IiPg0KCQk8bGVnZW5kPnskam1mcF9lcnJvcl90ZXh0fTwvbGVnZW5kPg0KCQl7JGptZnBfZXJyb3JtZXNzYWdlfQ0KCTwvZmllbGRzZXQ+DQp7L2lmfQ0Ke2lmIGlzc2V0KCRqbWZwX21lc3NhZ2UpICYmICRqbWZwX21lc3NhZ2UhPSIifQ0KCTxmaWVsZHNldCBjbGFzcz0iSk1GUF9tZXNzYWdlIiBpZD0iSk1GUF9zdWNjZXNzIj4NCgkJPGxlZ2VuZD57JGptZnBfc3VjY2Vzc190ZXh0fTwvbGVnZW5kPg0KCQl7JGptZnBfbWVzc2FnZX0NCgk8L2ZpZWxkc2V0Pg0Key9pZn0NCntpZiBpc3NldCgkam1mcF9mb3Jtc3RhcnQpfQ0KCTxmaWVsZHNldD4NCnskam1mcF9mb3Jtc3RhcnR9DQoJCTxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjUlIj4NCgkJCTxwPnskam1mcF9maWxldXBsb2FkX3RleHR9OjwvcD4NCgkJCTxwPnskam1mcF9maWxldXBsb2FkX2lucHV0fTwvcD4NCgl7aWYgJGptZnBfYWxsb3dfc2NhbGluZ30NCgkJCTxwPnskam1mcF9yZXNpemVpbWFnZV90ZXh0fTombmJzcDt7JGptZnBfcmVzaXplaW1hZ2VfaW5wdXR9PC9wPg0KCQkJPHA+eyRqbWZwX2ltYWdlc2l6ZV94X2lucHV0fSZuYnNwO3gmbmJzcDt7JGptZnBfaW1hZ2VzaXplX3lfaW5wdXR9PC9wPg0KCQkJPHA+eyRqbWZwX2tlZXBhc3BlY3RyYXRpb190ZXh0fTombmJzcDt7JGptZnBfa2VlcGFzcGVjdHJhdGlvX2lucHV0fTwvcD4NCgkJCXtpZiAkam1mcF9hbGxvd191cHNjYWxpbmd9DQoJCQk8cD57JGptZnBfZm9yY2V1cHNjYWxpbmdfdGV4dH06Jm5ic3A7eyRqbWZwX2ZvcmNldXBzY2FsaW5nX2lucHV0fTwvcD4NCgkJCXsvaWZ9DQoJey9pZn0NCgkJCTxwPnskam1mcF9maWxldXBsb2FkX3N1Ym1pdH08L3A+DQoJCTwvZGl2Pg0KeyRqbWZwX2Zvcm1lbmR9DQoJPC9maWVsZHNldD4NCnsvaWZ9DQo8L2Rpdj4NCnsvc3RyaXB9DQo=]]></data>
	</file>
</module>
